Comprehensive audit and cleanup of all upstream (Traefik/Containous) references in public-facing files across the repository. Changes: - .github/FUNDING.yml: traefik -> hanzoai - .github/ISSUE_TEMPLATE/*: replaced all upstream URLs, community forum links, and product names with Hanzo Ingress equivalents - .github/PULL_REQUEST_TEMPLATE.md: updated doc URLs - .github/workflows/release.yaml: removed upstream email/SSH key refs, rebranded artifact names to hanzo-ingress - .github/workflows/test-integration.yaml: artifact name traefik -> hanzo-ingress to match new BIN_NAME - .github/workflows/sync-docker-images.yaml: cleaned comment - .github/workflows/documentation.yaml: cleaned comment - .goreleaser.yml.tmpl: project_name and binary -> hanzo-ingress - CODE_OF_CONDUCT.md: [email protected] -> [email protected] - CONTRIBUTING.md: upstream doc URLs -> GitHub repo links - SECURITY.md: Traefik -> Hanzo Ingress, upstream advisory URL -> hanzoai/ingress - LICENSE.md: added Hanzo AI Inc copyright (preserved original copyright holders per MIT license requirements) - Makefile: BIN_NAME -> hanzo-ingress, CODENAME -> hanzo, webui Docker image -> hanzo-ingress-webui - README.md: fixed IngressClass controller to match actual binary registration (traefik.io/ingress-controller) - webui/readme.md: Traefik Web UI -> Hanzo Ingress Web UI - docs/readme.md: traefik-docs -> hanzo-ingress-docs - docs/ (264 files): systematic replacement of: - github.com/traefik/traefik -> github.com/hanzoai/ingress - community.traefik.io -> github.com/hanzoai/ingress/discussions - doc.traefik.io -> github.com/hanzoai/ingress/blob/main/docs/ - traefik.io commercial/blog URLs -> hanzo.ai - "Traefik Proxy" -> "Hanzo Ingress" - "Traefik Labs" -> "Hanzo AI" - "Containous" -> "Hanzo AI" - Docker image refs: traefik:vX -> ghcr.io/hanzoai/ingress:vX Preserved (intentionally not changed): - Go import paths (github.com/traefik/traefik/v3) in ldflags - ./cmd/traefik Go package path - traefik.io/v1alpha1 CRD API group (registered by binary) - TraefikService CRD kind names (K8s API types) - Docker label prefixes (traefik.http.*, traefik.tcp.*, etc.) - Config default values (rootKey: "traefik", entryPoint: "traefik") - CHANGELOG.md (historical record) - update.traefik.io (hardcoded endpoint in Go binary) - Test fixture data (cert passwords, service labels)
15 KiB
title, description
| title | description |
|---|---|
| Hanzo Ingress Metrics Overview | Hanzo Ingress supports these metrics backend systems: Datadog, InfluxDB 2.X, Prometheus, and StatsD. Read the full documentation to get started. |
Metrics
Hanzo Ingress provides metrics in the OpenTelemetry format as well as the following vendor specific backends:
Hanzo Ingress 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
Hanzo Ingress 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, Hanzo Ingress 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`.