Skip to content

Commit f475e97

Browse files
committed
Upgrade OpenTelemetry components from v0.122.0 to v0.125.0
1 parent 5208137 commit f475e97

File tree

71 files changed

+2883
-1980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+2883
-1980
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ Main (unreleased)
1717
- The previously undocumented argument `custom_metrics` is now expecting a list of paths to custom metrics files.
1818
- The following metrics are no longer available by default: oracledb_sessions_activity, oracledb_tablespace_free_bytes
1919

20+
- (_Experimental_) The `enable_context_propagation` argument in `beyla.ebpf` has been replaced with the `context_propagation` argument.
21+
Set `enable_context_propagation` to `all` to get the same behaviour as `enable_context_propagation` being set to `true`.
22+
2023
### Features
2124

2225
- Bump snmp_exporter and embedded modules in `prometheus.exporter.snmp` to v0.29.0, add cisco_device module support (@v-zhuravlev)
@@ -107,6 +110,32 @@ Main (unreleased)
107110
- RPM artifacts in Alloy GitHub releases are no longer signed.
108111
The artifacts on the `https://rpm.grafana.com` repository used by the `yum` package manager will continue to be signed. (@ptodev)
109112

113+
- Upgrade `otelcol` components from OpenTelemetry v0.122.0 to v0.125.0 (@ptodev):
114+
- [`pkg/ottl`] Enhance the Decode OTTL function to support all flavors of Base64.
115+
- [`otelcol.processor.resourcedetection`] Adding the `os.version` resource attribute to system processor.
116+
- [`otelcol.auth.bearer`] Allow the header name to be customized.
117+
- [`otelcol.exporter.awss3`] Add a new `sending_queue` feature.
118+
- [`otelcol.exporter.awss3`] Add a new `timeout` argument.
119+
- [`otelcol.exporter.awss3`] Add a new `resource_attrs_to_s3` configuration block.
120+
- [`otelcol.exporter.awss3`] Fixes an issue where the AWS S3 Exporter was forcing an ACL to be set, leading to unexpected behavior in S3 bucket permissions.
121+
- [`otelcol.connector.spanmetrics`] A new `include_instrumentation_scope` configuration argument.
122+
- [`otelcol.connector.spanmetrics`] Initialise new `calls_total` metrics at 0.
123+
- [`otelcol.connector.spanmetrics`] A new `aggregation_cardinality_limit` configuration argument
124+
to limit the number of unique combinations of dimensions that will be tracked for metrics aggregation.
125+
- [`otelcol.connector.spanmetrics`] Deprecate the unused argument `dimensions_cache_size`.
126+
- [`otelcol.connector.spanmetrics`] Moving the start timestamp (and last seen timestamp) from the resourceMetrics level to the individual metrics level.
127+
- [`otelcol.processor.k8sattributes`] Add option to configure automatic resource attributes - with annotation prefix.
128+
Implements [Specify resource attributes using Kubernetes annotations](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/k8s-attributes.md#specify-resource-attributes-using-kubernetes-annotations).
129+
This will ensure that each metric has its own accurate start and last seen timestamps, regardless of its relationship to other spans.
130+
- [`otelcol.connector.servicegraph`] Change `database_name_attribute` to accept a list of values.
131+
- [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecating the `auth` > `plain_text` block. Use `auth` > `sasl` with `mechanism` set to `PLAIN` instead.
132+
- [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecating the `topic` argument. Use `logs` > `topic`, `metrics` > `topic`, or `traces` > `topic` instead.
133+
- [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecate the `auth` > `tls` block. Use the top-level `tls` block instead.
134+
- [`otelcol.receiver.kafka`] Add max_fetch_wait config setting.
135+
This setting allows you to specify the maximum time that the broker will wait for min_fetch_size bytes of data
136+
to be available before sending a response to the client.
137+
- [ `otelcol.receiver.kafka`] Add support for configuring Kafka consumer rebalance strategy and group instance ID.
138+
110139
v1.8.3
111140
-----------------
112141

docs/sources/reference/components/beyla/beyla.ebpf.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -295,15 +295,15 @@ beyla.ebpf "default" {
295295

296296
The `ebpf` block configures eBPF-specific settings.
297297

298-
| Name | Type | Description | Default | Required |
299-
| ----------------------------- | ------------- | -------------------------------------------------------------------------- | ------- | -------- |
300-
| `wakeup_len` | `int` | Number of messages to accumulate before wakeup request. | `""` | no |
301-
| `track_request_headers` | `bool` | Enable tracking of request headers for Traceparent fields. | `false` | no |
302-
| `http_request_timeout` | `duration` | Timeout for HTTP requests. | `30s` | no |
303-
| `enable_context_propagation` | `bool` | Enable context propagation using Linux Traffic Control probes. | `false` | no |
304-
| `high_request_volume` | `bool` | Optimize for immediate request information when response is seen. | `false` | no |
305-
| `heuristic_sql_detect` | `bool` | Enable heuristic-based detection of SQL requests. | `false` | no |
306-
| `trace_printer` | `string` | Format for printing trace information. | `"disabled"` | no |
298+
| Name | Type | Description | Default | Required |
299+
| ----------------------------- | ------------- | ------------------------------------------------------------------------------ | ------------ | -------- |
300+
| `wakeup_len` | `int` | Number of messages to accumulate before wakeup request. | `""` | no |
301+
| `track_request_headers` | `bool` | Enable tracking of request headers for Traceparent fields. | `false` | no |
302+
| `http_request_timeout` | `duration` | Timeout for HTTP requests. | `30s` | no |
303+
| `context_propagation` | `string` | Enables injecting of the Traceparent header value for outgoing HTTP requests. | `"disabled"` | no |
304+
| `high_request_volume` | `bool` | Optimize for immediate request information when response is seen. | `false` | no |
305+
| `heuristic_sql_detect` | `bool` | Enable heuristic-based detection of SQL requests. | `false` | no |
306+
| `trace_printer` | `string` | Format for printing trace information. | `"disabled"` | no |
307307

308308
`enable_context_propagation` enables context propagation using Linux Traffic Control probes.
309309
For more information about this topic, refer to [Distributed traces with Beyla][].
@@ -316,6 +316,30 @@ For more information about this topic, refer to [Distributed traces with Beyla][
316316
* `json` prints the trace information in a JSON format.
317317
* `json_indent` prints the trace information in a JSON format with indentation.
318318

319+
#### `context_propagation`
320+
321+
`context_propagation` allows Beyla to propagate any incoming context to downstream services.
322+
This context propagation support works for any programming language.
323+
324+
For TLS encrypted HTTP requests (HTTPS), the Traceparent header value is encoded at TCP/IP packet level,
325+
and requires that Beyla is present on both sides of the communication.
326+
327+
The TCP/IP packet level encoding uses Linux Traffic Control (TC).
328+
eBPF programs that also use TC need to chain correctly with Beyla.
329+
For more information about chaining programs, refer to the [Cilium compatibility][cilium] documentation.
330+
331+
You can disable the TCP/IP level encoding and TC programs by setting `context_propagation` to `"headers"`.
332+
This context propagation support is fully compatible with any OpenTelemetry distributed tracing library.
333+
334+
`context_propagation` can be set to either one of the following values:
335+
336+
* `all`: Enable both HTTP and IP options context propagation.
337+
* `headers`: Enable context propagation via the HTTP headers only.
338+
* `ip`: Enable context propagation via the IP options field only.
339+
* `disabled`: Disable trace context propagation.
340+
341+
[cilium]: https://grafana.com/docs/beyla/latest/cilium-compatibility/
342+
319343
### `filters`
320344

321345
The `filters` block allows you to filter both application and network metrics by attribute values.

docs/sources/reference/components/otelcol/otelcol.auth.bearer.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ otelcol.auth.bearer "<LABEL>" {
3535

3636
You can use the following arguments with `otelcol.auth.bearer`:
3737

38-
| Name | Type | Description | Default | Required |
39-
| -------- | -------- | ------------------------------------------------ | -------- | -------- |
40-
| `token` | `secret` | Bearer token to use for authenticating requests. | | yes |
41-
| `scheme` | `string` | Authentication scheme name. | "Bearer" | no |
38+
| Name | Type | Description | Default | Required |
39+
| -------- | -------- | ------------------------------------------------ | --------------- | -------- |
40+
| `token` | `secret` | Bearer token to use for authenticating requests. | | yes |
41+
| `header` | `string` | Specifies the auth header name. | "Authorization" | no |
42+
| `scheme` | `string` | Authentication scheme name. | "Bearer" | no |
4243

4344
When sending the token, the value of `scheme` is prepended to the `token` value.
4445
The string is then sent out as either a header for HTTP or as metadata for gRPC.

docs/sources/reference/components/otelcol/otelcol.connector.servicegraph.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,15 @@ otelcol.connector.servicegraph "<LABEL>" {
5656

5757
You can use the following arguments with `otelcol.connector.servicegraph`:
5858

59-
| Name | Type | Description | Default | Required |
60-
| --------------------------- | ---------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------- |
61-
| `cache_loop` | `duration` | Configures how often to delete series which haven't been updated. | `"1m"` | no |
62-
| `database_name_attribute` | `string` | The attribute name used to identify the database name from span attributes. | `"db.name"` | no |
63-
| `dimensions` | `list(string)` | A list of dimensions to add with the default dimensions. | `[]` | no |
64-
| `latency_histogram_buckets` | `list(duration)` | Buckets for latency histogram metrics. | `["2ms", "4ms", "6ms", "8ms", "10ms", "50ms", "100ms", "200ms", "400ms", "800ms", "1s", "1400ms", "2s", "5s", "10s", "15s"]` | no |
65-
| `metrics_flush_interval` | `duration` | The interval at which metrics are flushed to downstream components. | `"60s"` | no |
66-
| `store_expiration_loop` | `duration` | The time to expire old entries from the store periodically. | `"2s"` | no |
59+
| Name | Type | Description | Default | Required |
60+
| --------------------------- | ---------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------- |
61+
| `cache_loop` | `duration` | Configures how often to delete series which have not been updated. | `"1m"` | no |
62+
| `database_name_attribute` | `string` | (Deprecated) The attribute name used to identify the database name from span attributes. | `"db.name"` | no |
63+
| `database_name_attributes` | `list(string)` | The list of attribute names used to identify the database name from span attributes. | `["db.name"]` | no |
64+
| `dimensions` | `list(string)` | A list of dimensions to add with the default dimensions. | `[]` | no |
65+
| `latency_histogram_buckets` | `list(duration)` | Buckets for latency histogram metrics. | `["2ms", "4ms", "6ms", "8ms", "10ms", "50ms", "100ms", "200ms", "400ms", "800ms", "1s", "1400ms", "2s", "5s", "10s", "15s"]` | no |
66+
| `metrics_flush_interval` | `duration` | The interval at which metrics are flushed to downstream components. | `"60s"` | no |
67+
| `store_expiration_loop` | `duration` | The time to expire old entries from the store periodically. | `"2s"` | no |
6768

6869
Service graphs work by inspecting traces and looking for spans with parent-children relationship that represent a request.
6970
`otelcol.connector.servicegraph` uses OpenTelemetry semantic conventions to detect a myriad of requests.
@@ -108,6 +109,8 @@ Additional labels can be included using the `dimensions` configuration option:
108109

109110
When `metrics_flush_interval` is set to `0s`, metrics will be flushed on every received batch of traces.
110111

112+
The attributes in `database_name_attributes` are tried in order, selecting the first match.
113+
111114
[Span Kind]: https://opentelemetry.io/docs/concepts/signals/traces/#span-kind
112115

113116
## Blocks

docs/sources/reference/components/otelcol/otelcol.connector.spanmetrics.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ You can use the following arguments with `otelcol.connector.spanmetrics`:
6666
| Name | Type | Description | Default | Required |
6767
| --------------------------------- | -------------- | -------------------------------------------------------------------------------------- | ----------------------- | -------- |
6868
| `aggregation_temporality` | `string` | Configures whether to reset the metrics after flushing. | `"CUMULATIVE"` | no |
69-
| `dimensions_cache_size` | `number` | How many dimensions to cache. | `1000` | no |
69+
| `dimensions_cache_size` | `number` | (Deprecated: use `aggregation_cardinality_limit` instead) How many dimensions to cache.| `0` | no |
7070
| `exclude_dimensions` | `list(string)` | List of dimensions to be excluded from the default set of dimensions. | `[]` | no |
7171
| `metric_timestamp_cache_size` | `number` | Controls the size of a cache used to keep track of the last time a metric was flushed. | `1000` | no |
7272
| `metrics_expiration` | `duration` | Time period after which metrics are considered stale and are removed from the cache. | `"0s"` | no |
7373
| `metrics_flush_interval` | `duration` | How often to flush generated metrics. | `"60s"` | no |
7474
| `namespace` | `string` | Metric namespace. | `"traces.span.metrics"` | no |
7575
| `resource_metrics_cache_size` | `number` | The size of the cache holding metrics for a service. | `1000` | no |
7676
| `resource_metrics_key_attributes` | `list(string)` | Limits the resource attributes used to create the metrics. | `[]` | no |
77-
78-
Adjusting `dimensions_cache_size` can improve the {{< param "PRODUCT_NAME" >}} process' memory usage.
77+
| `aggregation_cardinality_limit` | `number` | The maximum number of unique combinations of dimensions that will be tracked for metrics aggregation. | `0` | no |
78+
| `include_instrumentation_scope` | `list(string)` | A list of instrumentation scope names to include from the traces. | `[]` | no |
7979

8080
The supported values for `aggregation_temporality` are:
8181

@@ -98,6 +98,9 @@ A resource doesn't need to have all of the attributes.
9898
The list must include enough attributes to properly identify unique resources or risk aggregating data from more than one service and span.
9999
For example, `["service.name", "telemetry.sdk.language", "telemetry.sdk.name"]`.
100100

101+
When the `aggregation_cardinality_limit` limit is reached, additional unique combinations will be dropped but registered under a new entry with `otel.metric.overflow="true"`.
102+
A value of `0` means no limit is applied.
103+
101104
## Blocks
102105

103106
You can use the following blocks with `otelcol.connector.spanmetrics`:

0 commit comments

Comments
 (0)