traefik/docs/content/observability/metrics/overview.md
2024-05-16 09:52:06 +02:00

15 KiB

title description
Traefik Metrics Overview Traefik Proxy supports these metrics backend systems: Datadog, InfluxDB 2.X, Prometheus, and StatsD. Read the full documentation to get started.

Metrics

Traefik provides metrics in the OpenTelemetry format as well as the following vendor specific backends:

Traefik Proxy hosts an official Grafana dashboard for both on-premises and Kubernetes deployments.

Common Options

addInternals

Optional, Default="false"

Enables metrics for internal resources (e.g.: ping@internals).

metrics:
  addInternals: true
[metrics]
addInternals = true
--metrics.addinternals

Global Metrics

Metric Type Labels Description
Config reload total Count The total count of configuration reloads.
Config reload last success Gauge The timestamp of the last configuration reload success.
Open connections Gauge entrypoint, protocol The current count of open connections, by entrypoint and protocol.
TLS certificates not after Gauge The expiration date of certificates.
traefik_config_reloads_total
traefik_config_last_reload_success
traefik_open_connections
traefik_tls_certs_not_after
traefik_config_reloads_total
traefik_config_last_reload_success
traefik_open_connections
traefik_tls_certs_not_after
config.reload.total
config.reload.lastSuccessTimestamp
open.connections
tls.certs.notAfterTimestamp
traefik.config.reload.total
traefik.config.reload.lastSuccessTimestamp
traefik.open.connections
traefik.tls.certs.notAfterTimestamp
# Default prefix: "traefik"
{prefix}.config.reload.total
{prefix}.config.reload.lastSuccessTimestamp
{prefix}.open.connections
{prefix}.tls.certs.notAfterTimestamp

Labels

Here is a comprehensive list of labels that are provided by the global metrics:

Label Description example
entrypoint Entrypoint that handled the connection "example_entrypoint"
protocol Connection protocol "TCP"

OpenTelemetry Semantic Conventions

Traefik Proxy follows official OpenTelemetry semantic conventions v1.23.1.

HTTP Server

Metric Type Labels Description
http.server.request.duration Histogram error.type, http.request.method, http.response.status_code, network.protocol.name, server.address, server.port, url.scheme Duration of HTTP server requests

Labels

Here is a comprehensive list of labels that are provided by the metrics:

Label Description example
error.type Describes a class of error the operation ended with "500"
http.request.method HTTP request method "GET"
http.response.status_code HTTP response status code "200"
network.protocol.name OSI application layer or non-OSI equivalent "http/1.1"
network.protocol.version Version of the protocol specified in network.protocol.name "1.1"
server.address Name of the local HTTP server that received the request "example.com"
server.port Port of the local HTTP server that received the request "80"
url.scheme The URI scheme component identifying the used protocol "http"

HTTP Client

Metric Type Labels Description
http.client.request.duration Histogram error.type, http.request.method, http.response.status_code, network.protocol.name, server.address, server.port, url.scheme Duration of HTTP client requests

Labels

Here is a comprehensive list of labels that are provided by the metrics:

Label Description example
error.type Describes a class of error the operation ended with "500"
http.request.method HTTP request method "GET"
http.response.status_code HTTP response status code "200"
network.protocol.name OSI application layer or non-OSI equivalent "http/1.1"
network.protocol.version Version of the protocol specified in network.protocol.name "1.1"
server.address Name of the local HTTP server that received the request "example.com"
server.port Port of the local HTTP server that received the request "80"
url.scheme The URI scheme component identifying the used protocol "http"

HTTP Metrics

On top of the official OpenTelemetry semantic conventions, Traefik provides its own metrics to monitor the incoming traffic.

EntryPoint Metrics

Metric Type Labels Description
Requests total Count code, method, protocol, entrypoint The total count of HTTP requests received by an entrypoint.
Requests TLS total Count tls_version, tls_cipher, entrypoint The total count of HTTPS requests received by an entrypoint.
Request duration Histogram code, method, protocol, entrypoint Request processing duration histogram on an entrypoint.
Requests bytes total Count code, method, protocol, entrypoint The total size of HTTP requests in bytes handled by an entrypoint.
Responses bytes total Count code, method, protocol, entrypoint The total size of HTTP responses in bytes handled by an entrypoint.
traefik_entrypoint_requests_total
traefik_entrypoint_requests_tls_total
traefik_entrypoint_request_duration_seconds
traefik_entrypoint_requests_bytes_total
traefik_entrypoint_responses_bytes_total
traefik_entrypoint_requests_total
traefik_entrypoint_requests_tls_total
traefik_entrypoint_request_duration_seconds
traefik_entrypoint_requests_bytes_total
traefik_entrypoint_responses_bytes_total
entrypoint.request.total
entrypoint.request.tls.total
entrypoint.request.duration
entrypoint.requests.bytes.total
entrypoint.responses.bytes.total
traefik.entrypoint.requests.total
traefik.entrypoint.requests.tls.total
traefik.entrypoint.request.duration
traefik.entrypoint.requests.bytes.total
traefik.entrypoint.responses.bytes.total
# Default prefix: "traefik"
{prefix}.entrypoint.request.total
{prefix}.entrypoint.request.tls.total
{prefix}.entrypoint.request.duration
{prefix}.entrypoint.requests.bytes.total
{prefix}.entrypoint.responses.bytes.total

Router Metrics

Metric Type Labels Description
Requests total Count code, method, protocol, router, service The total count of HTTP requests handled by a router.
Requests TLS total Count tls_version, tls_cipher, router, service The total count of HTTPS requests handled by a router.
Request duration Histogram code, method, protocol, router, service Request processing duration histogram on a router.
Requests bytes total Count code, method, protocol, router, service The total size of HTTP requests in bytes handled by a router.
Responses bytes total Count code, method, protocol, router, service The total size of HTTP responses in bytes handled by a router.
traefik_router_requests_total
traefik_router_requests_tls_total
traefik_router_request_duration_seconds
traefik_router_requests_bytes_total
traefik_router_responses_bytes_total
traefik_router_requests_total
traefik_router_requests_tls_total
traefik_router_request_duration_seconds
traefik_router_requests_bytes_total
traefik_router_responses_bytes_total
router.request.total
router.request.tls.total
router.request.duration
router.requests.bytes.total
router.responses.bytes.total
traefik.router.requests.total
traefik.router.requests.tls.total
traefik.router.request.duration
traefik.router.requests.bytes.total
traefik.router.responses.bytes.total
# Default prefix: "traefik"
{prefix}.router.request.total
{prefix}.router.request.tls.total
{prefix}.router.request.duration
{prefix}.router.requests.bytes.total
{prefix}.router.responses.bytes.total

Service Metrics

Metric Type Labels Description
Requests total Count code, method, protocol, service The total count of HTTP requests processed on a service.
Requests TLS total Count tls_version, tls_cipher, service The total count of HTTPS requests processed on a service.
Request duration Histogram code, method, protocol, service Request processing duration histogram on a service.
Retries total Count service The count of requests retries on a service.
Server UP Gauge service, url Current service's server status, 0 for a down or 1 for up.
Requests bytes total Count code, method, protocol, service The total size of requests in bytes received by a service.
Responses bytes total Count code, method, protocol, service The total size of responses in bytes returned by a service.
traefik_service_requests_total
traefik_service_requests_tls_total
traefik_service_request_duration_seconds
traefik_service_retries_total
traefik_service_server_up
traefik_service_requests_bytes_total
traefik_service_responses_bytes_total
traefik_service_requests_total
traefik_service_requests_tls_total
traefik_service_request_duration_seconds
traefik_service_retries_total
traefik_service_server_up
traefik_service_requests_bytes_total
traefik_service_responses_bytes_total
service.request.total
router.service.tls.total
service.request.duration
service.retries.total
service.server.up
service.requests.bytes.total
service.responses.bytes.total
traefik.service.requests.total
traefik.service.requests.tls.total
traefik.service.request.duration
traefik.service.retries.total
traefik.service.server.up
traefik.service.requests.bytes.total
traefik.service.responses.bytes.total
# Default prefix: "traefik"
{prefix}.service.request.total
{prefix}.service.request.tls.total
{prefix}.service.request.duration
{prefix}.service.retries.total
{prefix}.service.server.up
{prefix}.service.requests.bytes.total
{prefix}.service.responses.bytes.total

Labels

Here is a comprehensive list of labels that are provided by the metrics:

Label Description example
cn Certificate Common Name "example.com"
code Request code "200"
entrypoint Entrypoint that handled the request "example_entrypoint"
method Request Method "GET"
protocol Request protocol "http"
router Router that handled the request "example_router"
sans Certificate Subject Alternative NameS "example.com"
serial Certificate Serial Number "123..."
service Service that handled the request "example_service@provider"
tls_cipher TLS cipher used for the request "TLS_FALLBACK_SCSV"
tls_version TLS version used for the request "1.0"
url Service server url "http://example.com"

!!! info "method label value"

If the HTTP method verb on a request is not one defined in the set of common methods for [`HTTP/1.1`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)
or the [`PRI`](https://datatracker.ietf.org/doc/html/rfc7540#section-11.6) verb (for `HTTP/2`),
then the value for the method label becomes `EXTENSION_METHOD`.