feat: OpenTelemetry module integration (#9062)
* OpenTelemetry module integration * e2e test * e2e test fix * default OpentelemetryConfig * e2e values * mount otel module for otel test only * propagate IS_CHROOT * propagate IS_CHROOT e2e test * code doc * comments * golint * opentelemetry doc * zipkin * zipkin * typo * update e2e test OpenTelemetry value * use opentelemetry value * revert merge conflict * fix * format * review comments * clean
This commit is contained in:
parent
c075793ae5
commit
c8cb9167d3
23 changed files with 1131 additions and 2 deletions
|
|
@ -121,6 +121,8 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz
|
|||
|[nginx.ingress.kubernetes.io/enable-access-log](#enable-access-log)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/enable-opentracing](#enable-opentracing)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/opentracing-trust-incoming-span](#opentracing-trust-incoming-span)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/enable-opentelemetry](#enable-opentelemetry)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-spans)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/enable-influxdb](#influxdb)|"true" or "false"|
|
||||
|[nginx.ingress.kubernetes.io/influxdb-measurement](#influxdb)|string|
|
||||
|[nginx.ingress.kubernetes.io/influxdb-port](#influxdb)|string|
|
||||
|
|
@ -821,6 +823,24 @@ sometimes need to be overridden to enable it or disable it for a specific ingres
|
|||
nginx.ingress.kubernetes.io/opentracing-trust-incoming-span: "true"
|
||||
```
|
||||
|
||||
### Enable Opentelemetry
|
||||
|
||||
Opentelemetry can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden
|
||||
to enable it or disable it for a specific ingress (e.g. to turn off telemetry of external health check endpoints)
|
||||
|
||||
```yaml
|
||||
nginx.ingress.kubernetes.io/enable-opentelemetry: "true"
|
||||
```
|
||||
|
||||
### Opentelemetry Trust Incoming Span
|
||||
|
||||
The option to trust incoming trace spans can be enabled or disabled globally through the ConfigMap but this will
|
||||
sometimes need to be overridden to enable it or disable it for a specific ingress (e.g. only enable on a private endpoint)
|
||||
|
||||
```yaml
|
||||
nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-spans: "true"
|
||||
```
|
||||
|
||||
### X-Forwarded-Prefix Header
|
||||
To add the non-standard `X-Forwarded-Prefix` header to the upstream request with a string value, the following annotation can be used:
|
||||
|
||||
|
|
|
|||
53
docs/user-guide/nginx-configuration/configmap.md
Executable file → Normal file
53
docs/user-guide/nginx-configuration/configmap.md
Executable file → Normal file
|
|
@ -157,6 +157,19 @@ The following table shows a configuration option's name, type, and the default v
|
|||
|[datadog-operation-name-override](#datadog-operation-name-override)|string|"nginx.handle"|
|
||||
|[datadog-priority-sampling](#datadog-priority-sampling)|bool|"true"|
|
||||
|[datadog-sample-rate](#datadog-sample-rate)|float|1.0|
|
||||
|[enable-opentelemetry](#enable-opentelemetry)|bool|"false"|
|
||||
|[opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-span)|bool|"true"|
|
||||
|[opentelemetry-operation-name](#opentelemetry-operation-name)|string|""|
|
||||
|[opentelemetry-config](#/etc/nginx/opentelemetry.toml)|string|"/etc/nginx/opentelemetry.toml"|
|
||||
|[otlp-collector-host](#otlp-collector-host)|string|""|
|
||||
|[otlp-collector-port](#otlp-collector-port)|int|4317|
|
||||
|[otel-max-queuesize](#otel-max-queuesize)|int||
|
||||
|[otel-schedule-delay-millis](#otel-schedule-delay-millis)|int||
|
||||
|[otel-max-export-batch-size](#otel-max-export-batch-size)|int||
|
||||
|[otel-service-name](#otel-service-name)|string|"nginx"|
|
||||
|[otel-sampler](#otel-sampler)|string|"AlwaysOff"|
|
||||
|[otel-sampler-parent-based](#otel-sampler-parent-based)|bool|"false"|
|
||||
|[otel-sampler-ratio](#otel-sampler-ratio)|float|0.01|
|
||||
|[main-snippet](#main-snippet)|string|""|
|
||||
|[http-snippet](#http-snippet)|string|""|
|
||||
|[server-snippet](#server-snippet)|string|""|
|
||||
|
|
@ -1009,6 +1022,46 @@ If true disables client-side sampling (thus ignoring `sample_rate`) and enables
|
|||
Specifies sample rate for any traces created.
|
||||
This is effective only when `datadog-priority-sampling` is `false` _**default:**_ 1.0
|
||||
|
||||
## enable-opentelemetry
|
||||
|
||||
Enables the nginx OpenTelemetry extension. _**default:**_ is disabled
|
||||
|
||||
_References:_
|
||||
[https://github.com/open-telemetry/opentelemetry-cpp-contrib](https://github.com/open-telemetry/opentelemetry-cpp-contrib/tree/main/instrumentation/nginx)
|
||||
|
||||
## opentelemetry-operation-name
|
||||
|
||||
Specifies a custom name for the server span. _**default:**_ is empty
|
||||
|
||||
For example, set to "HTTP $request_method $uri".
|
||||
|
||||
## otlp-collector-host
|
||||
|
||||
Specifies the host to use when uploading traces. It must be a valid URL.
|
||||
|
||||
## otlp-collector-port
|
||||
|
||||
Specifies the port to use when uploading traces. _**default:**_ 4317
|
||||
|
||||
## otel-service-name
|
||||
|
||||
Specifies the service name to use for any traces created. _**default:**_ nginx
|
||||
|
||||
## opentelemetry-trust-incoming-span: "true"
|
||||
Enables or disables using spans from incoming requests as parent for created ones. _**default:**_ true
|
||||
|
||||
## otel-sampler-parent-based
|
||||
|
||||
Uses sampler implementation which by default will take a sample if parent Activity is sampled. _**default:**_ false
|
||||
|
||||
## otel-sampler-ratio
|
||||
|
||||
Specifies sample rate for any traces created. _**default:**_ 0.01
|
||||
|
||||
## otel-sampler
|
||||
|
||||
Specifies the sampler to be used when sampling traces. The available samplers are: AlwaysOff, AlwaysOn, TraceIdRatioBased, remote. _**default:**_ AlwaysOff
|
||||
|
||||
## main-snippet
|
||||
|
||||
Adds custom configuration to the main section of the nginx configuration.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue