Skip to content

Commit

Permalink
Cleanup static mode after the otel upgrade, fix bug with Jaeger remot…
Browse files Browse the repository at this point in the history
…e sampling (#4640)

* Cleanup static mode after the otel upgrade

* Fix linter issues

* Update docs/sources/flow/upgrade-guide.md

Co-authored-by: Robert Fratto <robertfratto@gmail.com>

* Move breaking change note to static mode doc, add example configs

---------

Co-authored-by: Robert Fratto <robertfratto@gmail.com>
  • Loading branch information
ptodev and rfratto committed Aug 4, 2023
1 parent beb5dea commit 4632f36
Show file tree
Hide file tree
Showing 7 changed files with 316 additions and 68 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ v0.35.2 (2023-07-27)

- Fix a bug which prevented the `app_agent_receiver` integration from processing traces. (@ptodev)

- (Agent static mode) Jaeger remote sampling works again, through a new `jaeger_remote_sampling`
entry in the traces config. It is no longer configurable through the jaeger receiver.
Support Jaeger remote sampling was removed accidentally in v0.35, and it is now restored,
albeit via a different config entry.

v0.35.2 (2023-07-27)
--------------------

Expand Down Expand Up @@ -100,6 +105,10 @@ v0.35.0 (2023-07-18)

- The `remote_sampling` block has been removed from `otelcol.receiver.jaeger`. (@ptodev)

- (Agent static mode) Jaeger remote sampling used to be configured using the Jaeger receiver configuration.
This receiver was updated to a new version, where support for remote sampling in the receiver was removed.
Jaeger remote sampling is available as a separate configuration field starting in v0.35.3. (@ptodev)

### Deprecations

- `otelcol.exporter.jaeger` has been deprecated and will be removed in Agent v0.38.0. (@ptodev)
Expand Down
93 changes: 73 additions & 20 deletions docs/sources/static/configuration/traces-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ name: <string>
[ batch: <batch.config> ]

remote_write:
# host:port to send traces to
# host:port to send traces to.
# Here must be the port of gRPC receiver, not the Tempo default port.
# Example for cloud instances: `tempo-us-central1.grafana.net:443`
# Example for cloud instances: `tempo-us-central1.grafana.net:443`
# For local / on-premises instances: `localhost:55680` or `tempo.example.com:14250`
# Note: for non-encrypted connections you must also set `insecure: true`
- endpoint: <string>
Expand Down Expand Up @@ -77,30 +77,55 @@ remote_write:

# Configures opentelemetry exporters to use the OpenTelemetry auth extension `oauth2clientauthextension`.
# Can not be used in combination with `basic_auth`.
# See https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/extension/oauth2clientauthextension/README.md
# See https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.80.0/extension/oauth2clientauthextension/README.md
oauth2:
# Configures the TLS settings specific to the oauth2 client
# The client identifier issued to the oauth client
[ client_id: <string> ]
# The secret string associated with the oauth client
[ client_secret: <string> ]
# Additional parameters for requests to the token endpoint
[ endpoint_params: <string> ]
# The resource server's token endpoint URL
[ token_url: <string> ]
# Optional, requested permissions associated with the oauth client
[ scopes: [<string>] ]
# Optional, specifies the timeout fetching tokens from the token_url. Default: no timeout
[ timeout: <duration> ]
# TLS client configuration for the underneath client to authorization server.
# https://github.com/open-telemetry/opentelemetry-collector/blob/v0.80.0/config/configtls/README.md
tls:
# Disable validation of the server certificate.
[ insecure: <bool> | default = false ]
# InsecureSkipVerify will enable TLS but not verify the certificate.
[ insecure_skip_verify: <bool> | default = false ]
# ServerName requested by client for virtual hosting.
# This sets the ServerName in the TLSConfig. Please refer to
# https://godoc.org/crypto/tls#Config for more information.
[ server_name_override: <string> ]
# Path to the CA cert. For a client this verifies the server certificate. If empty uses system root CA.
[ ca_file: <string> ]
# In memory PEM encoded cert.
[ ca_pem: <string> ]
# Path to the TLS cert to use for TLS required connections
[ cert_file: <string> ]
# In memory PEM encoded TLS cert to use for TLS required connections.
[ cert_pem: <string> ]
# Path to the TLS key to use for TLS required connections
[ key_file: <string> ]

# Controls TLS settings of the exporter's client. See https://github.com/open-telemetry/opentelemetry-collector/blob/v0.21.0/config/configtls/README.md
# In memory PEM encoded TLS key to use for TLS required connections.
[ key_pem: <string> ]
# Minimum acceptable TLS version.
[ min_version: <string> | default = "1.2" ]
# Maximum acceptable TLS version.
# If not set, it is handled by crypto/tls - currently it is "1.3".
[ max_version: <string> | default = "" ]
# ReloadInterval specifies the duration after which the certificate will be reloaded.
# If not set, it will never be reloaded.
[ reload_interval: <duration> ]

# Controls TLS settings of the exporter's client:
# https://prometheus.io/docs/prometheus/2.45/configuration/configuration/#tls_config
# This should be used only if `insecure` is set to false
tls_config:
# Path to the CA cert. For a client this verifies the server certificate. If empty uses system root CA.
Expand Down Expand Up @@ -163,7 +188,7 @@ automatic_logging:

# Receiver configurations are mapped directly into the OpenTelemetry receivers
# block. At least one receiver is required.
# The Agent uses OpenTelemetry v0.36.0. Refer to the corresponding receiver's config.
# The Agent uses OpenTelemetry v0.80.0. Refer to the corresponding receiver's config.
#
# Supported receivers: otlp, jaeger, kafka, opencensus and zipkin.
receivers: <receivers>
Expand Down Expand Up @@ -292,7 +317,16 @@ load_balancing:
[ - <string> ... ]
dns:
hostname: <string>
[ port: <int> ]
[ port: <int> | default = 4317 ]
# Resolver interval
[ interval: <duration> | default = 5s ]
# Resolver timeout
[ timeout: <duration> | default = 1s ]

# routing_key can be either "traceID" or "service":
# * "service": exports spans based on their service name.
# * "traceID": exports spans based on their traceID.
[ routing_key: <string> | default = "traceID" ]

# receiver_port is the port the instance will use to receive load balanced traces
receiver_port: [ <int> | default = 4318 ]
Expand Down Expand Up @@ -374,22 +408,41 @@ service_graphs:
# grpc status codes not to be considered as failure
grpc:
[ - <int> ... ]

# jaeger_remote_sampling configures one or more jaeger remote sampling extensions.
# For more details about the configuration please consult the OpenTelemetry documentation:
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/extension/jaegerremotesampling
#
# Example config:
#
# jaeger_remote_sampling:
# - source:
# remote:
# endpoint: jaeger-collector:14250
# tls:
# insecure: true
# - source:
# reload_interval: 1s
# file: /etc/otelcol/sampling_strategies.json
#
jaeger_remote_sampling:
[ - <jaeger_remote_sampling> ... ]
```
> **Note:** More information on the following types can be found on the
> documentation for their respective projects:
>
* [`attributes.config`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/processor/attributesprocessor)
* [`batch.config`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/1f5dd9f9a566a937ec15093ca3bc377fba86f5f9/processor/batchprocessor)
* [`otlpexporter.sending_queue`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/1f5dd9f9a566a937ec15093ca3bc377fba86f5f9/exporter/otlpexporter)
* [`otlpexporter.retry_on_failure`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/1f5dd9f9a566a937ec15093ca3bc377fba86f5f9/exporter/otlpexporter)
* [`attributes.config`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/processor/attributesprocessor)
* [`batch.config`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/v0.80.0/processor/batchprocessor)
* [`otlpexporter.sending_queue`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/v0.80.0/exporter/otlpexporter)
* [`otlpexporter.retry_on_failure`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/v0.80.0/exporter/otlpexporter)
* `receivers`:
* [`jaegerreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/receiver/jaegerreceiver)
* [`kafkareceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/receiver/kafkareceiver)
* [`otlpreceiver`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/1f5dd9f9a566a937ec15093ca3bc377fba86f5f9/receiver/otlpreceiver)
* [`opencensusreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/receiver/opencensusreceiver)
* [`zipkinreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/receiver/zipkinreceiver)
* [`scrape_config`: Prometheus](https://prometheus.io/docs/prometheus/2.42/configuration/configuration/#scrape_config)
* [`spanmetricsprocessor.latency_histogram_buckets`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/processor/spanmetricsprocessor/config.go#L38-L47)
* [`spanmetricsprocessor.dimensions`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/processor/spanmetricsprocessor/config.go#L38-L47)
* [`tailsamplingprocessor.policies`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/b2327211df976e0a57ef0425493448988772a16b/processor/tailsamplingprocessor)
* [`jaegerreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/receiver/jaegerreceiver)
* [`kafkareceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/receiver/kafkareceiver)
* [`otlpreceiver`: OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector/tree/v0.80.0/receiver/otlpreceiver)
* [`opencensusreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/receiver/opencensusreceiver)
* [`zipkinreceiver`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/receiver/zipkinreceiver)
* [`scrape_config`: Prometheus](https://prometheus.io/docs/prometheus/2.45/configuration/configuration/#scrape_config)
* [`spanmetricsprocessor.latency_histogram_buckets`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.80.0/processor/spanmetricsprocessor/config.go#L37-L39)
* [`spanmetricsprocessor.dimensions`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.80.0/processor/spanmetricsprocessor/config.go#L41-L48)
* [`tailsamplingprocessor.policies`: OpenTelemetry-Collector-Contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.80.0/processor/tailsamplingprocessor)
27 changes: 27 additions & 0 deletions docs/sources/static/upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,33 @@ static mode.
## v0.35

### Breaking change: Jaeger remote sampling no longer configurable using the Jaeger receiver

Jaeger remote sampling used to be configured using the Jaeger receiver configuration. This receiver was updated to a new version, where support for remote sampling in the receiver was removed.

Jaeger remote sampling is available as a separate configuration field starting in v0.35.3.

Old configuration example:

```yaml
receivers:
jaeger:
protocols:
grpc:
remote_sampling:
strategy_file: /etc/agent/strategies.json
strategy_file_reload_interval: 1s
```
New configuration example:
```yaml
jaeger_remote_sampling:
- source:
file: /etc/agent/strategies.json
reload_interval: 1s
```
### Breaking change: `auth` and `version` attributes from `walk_params` block of SNMP integration have been removed

The SNMP integrations (both v1 and v2) wrap a new version of SNMP exporter which introduces a new configuration file format.
Expand Down
5 changes: 3 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.80.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.80.0
Expand Down Expand Up @@ -550,8 +551,8 @@ require (
github.com/snowflakedb/gosnowflake v1.6.22 // indirect
github.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/afero v1.9.3 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/afero v1.9.5 // indirect
github.com/spf13/cast v1.5.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.15.0 // indirect
Expand Down
5 changes: 4 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2551,6 +2551,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokena
github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.80.0/go.mod h1:1uefCMOB5VnqgP5F22GeSoqkm8pYbWUmxFHBUg54WnE=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.80.0 h1:1g6IDFOWzDpZScQRb+80G54DlPaCckkITJ3l0gUS/dk=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.80.0/go.mod h1:j6U+t0w0uKYSltgY3s+4BskNVOj7E3+OxGFs3FPOTZs=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.80.0 h1:hglhSIcQRNd/5yuak0LFd1rsH4/rP3hTIaU8/LaOaHY=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.80.0/go.mod h1:C677/QL+Oav+yqeLaCIFOXw7qQAw1Pm4sqTmVwIM7M0=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.80.0 h1:4+k4uS/pDLbkh2yMmMXSycKHq6oEycWpJToh/SUxLIM=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.80.0/go.mod h1:YJrHRLfgBQBt8RT5p61Fbkx01KuesGlrpZzOTIE3Mfw=
github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.80.0 h1:bDOzezMdoK2m5Q7h/kzd5qBZRqX1B4hrIIzxKiDuFLE=
Expand Down Expand Up @@ -2988,8 +2990,9 @@ github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk=
github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
Expand Down
Loading

0 comments on commit 4632f36

Please sign in to comment.