News KrakenD Enterprise v2.6 released with OpenTelemetry, FIPS-140, gRPC server and more

Enterprise Documentation

Recent changes

Granular OpenTelemetry by endpoint

Document updated on Apr 18, 2024

The OpenTelemetry configuration is declared at the service level, but in the Enterprise edition you have more granularity and you can override metrics and traces per endpoint and per backend as follows.

Endpoint Override of metrics and traces

The following example overrides properties that could be declared at the service level.

{
    "endpoints": [
        {
            "endpoint": "/example",
            "backend": [
                {
                    "host": [
                        "example.com"
                    ],
                    "url_pattern": "/example"
                }
            ],
            "extra_config": {
                "telemetry/opentelemetry": {
                    "proxy": {
                        "disable_metrics": false,
                        "disable_traces": false
                    },
                    "exporters_override": {
                        "metric_reporting_period": 10,
                        "trace_sample_rate": 1,
                        "metric_exporters": [
                            "local_prometheus"
                        ],
                        "trace_exporters": [
                            "debug_jaeger",
                            "newrelic",
                            "local_tempo"
                        ]
                    }
                }
            }
        }
    ]
}

Exporter names must be typed exactly as in the service level. The options are:

Fields of OpenTelemetry Endpoint Override
* required fields
exporters_override

object
Override exporter configuration for this endpoint
metric_exporters

array
Overrides the metrics exporters used in this endpoint
Example: ["local_prometheus"]
metric_reporting_period

integer
Override how often you want to report and flush the metrics in seconds.
trace_exporters

array
Overrides the trace exporters used in this endpoint
Example: ["debug_jaeger","newrelic","local_tempo"]
trace_sample_rate

number
Overrides the sample rate for traces defines the percentage of reported traces. This option is key to reduce the amount of data generated (and resource usage), while you still can debug and troubleshoot issues. For instance, a number of 0.25 will report a 25% of the traces seen in the system.
Example: 0.25
proxy

object
Reports the activity at the beginning of the proxy layer, including spawning the required requests to multiple backends, merging, endpoint transformation and any other internals of the proxy between the request processing and the backend communication
disable_metrics

boolean
Whether you want to disable all metrics in this endpoint or not.
Defaults to false
disable_traces

boolean
Whether you want to disable all traces in this endpoint or not.
Defaults to false

Backend Override of metrics and traces

For instance, you have a specific backend that is adding noise to your dashboards and you’d like to disable all layers:

{
    "backend": [
        {
            "extra_config": {
                "telemetry/opentelemetry": {
                    "proxy": {
                        "disable_metrics": true,
                        "disable_traces": true
                    },
                    "backend": {
                        "metrics": {
                            "disable_stage": true
                        },
                        "traces": {
                            "disable_stage": true
                        }
                    }
                }
            },
            "url_pattern": "/noise",
            "host": [
                "example.com"
            ]
        }
    ]
}

These are the options:

Fields of OpenTelemetry Backend Override
* required fields
backend

object
Reports the activity between KrakenD and each of your backend services. This is the more granular layer.
metrics

object
disable_stage

boolean
Whether to turn off the metrics or not. Setting this to true means stop reporting any data.
Defaults to false
traces

object
disable_stage

boolean
Whether to turn off the traces or not. Setting this to true means stop reporting any data.
Defaults to false
proxy

object
Reports the activity at the beginning of the proxy layer, including spawning the required requests to multiple backends, merging, endpoint transformation and any other internals of the proxy between the request processing and the backend communication
disable_metrics

boolean
Whether you want to disable all metrics in this endpoint or not.
Defaults to false
disable_traces

boolean
Whether you want to disable all traces in this endpoint or not.
Defaults to false
Scarf

Unresolved issues?

The documentation is only a piece of the help you can get! Whether you are looking for Open Source or Enterprise support, see more support channels that can help you.