Skip to content

Commit 969b7f0

Browse files
authored
Added metric mapping for Traefik v3 metric change (DataDog#23025)
* update to add a v3 metric * changelog * changelog
1 parent 3cc26b7 commit 969b7f0

7 files changed

Lines changed: 284 additions & 4 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Include mapping for Traefik v3 metric

traefik_mesh/datadog_checks/traefik_mesh/metrics.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
'traefik_config_reloads': 'config.reloads',
4646
'traefik_config_reloads_failure': 'config.reloads.failure',
4747
'traefik_tls_certs_not_after': 'tls.certs.not_after',
48+
# https://doc.traefik.io/traefik/v3.3/observability/metrics/overview/
49+
# In Traefik v3, open_connections is a single metric with entrypoint/router/service labels
50+
'traefik_open_connections': 'open_connections',
4851
# https://doc.traefik.io/traefik/v2.11/observability/metrics/overview/#entrypoint-metrics
4952
'traefik_entrypoint_open_connections': 'entrypoint.open_connections',
5053
'traefik_entrypoint_request_duration_seconds': 'entrypoint.request.duration.seconds',

traefik_mesh/manifest.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@
3737
},
3838
"metrics": {
3939
"prefix": "traefik_mesh.",
40-
"check": "traefik_mesh.entrypoint.open_connections",
40+
"check": [
41+
"traefik_mesh.entrypoint.open_connections",
42+
"traefik_mesh.open_connections"
43+
],
4144
"metadata_path": "metadata.csv"
4245
},
4346
"process_signatures": [

traefik_mesh/metadata.csv

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ traefik_mesh.config.last_reload.failure,gauge,,,,The last config reload failure,
33
traefik_mesh.config.last_reload.success,gauge,,,,The last config reload success,0,traefik_mesh,,,
44
traefik_mesh.config.reloads.count,count,,,,The total count of configuration reloads,0,traefik_mesh,,,
55
traefik_mesh.config.reloads.failure.count,count,,,,The total count of configuration reload failures,0,traefik_mesh,,,
6-
traefik_mesh.entrypoint.open_connections,gauge,,,,The current count of open connections on an entrypoint,0,traefik_mesh,,,
6+
traefik_mesh.entrypoint.open_connections,gauge,,,,Deprecated in Traefik v3. Use traefik_mesh.open_connections instead. The current count of open connections on an entrypoint,0,traefik_mesh,,,
77
traefik_mesh.entrypoint.request.duration.seconds.bucket,count,,second,,Request processing duration histogram on an entrypoint,0,traefik_mesh,,,
88
traefik_mesh.entrypoint.request.duration.seconds.count,count,,second,,Request processing duration histogram on an entrypoint,0,traefik_mesh,,,
99
traefik_mesh.entrypoint.request.duration.seconds.sum,count,,second,,Request processing duration histogram on an entrypoint,0,traefik_mesh,,,
@@ -42,22 +42,23 @@ traefik_mesh.go.memstats.stack.sys_bytes,gauge,,byte,,The number of bytes obtain
4242
traefik_mesh.go.memstats.sys_bytes,gauge,,byte,,The number of bytes obtained from system in the Traefik Mesh instance,0,traefik_mesh,,,
4343
traefik_mesh.go.threads,gauge,,thread,,The number of OS threads created in the Traefik Mesh instance,0,traefik_mesh,,,
4444
traefik_mesh.node.ready,gauge,,,,The current count of ready nodes in the Traefik Mesh instance,0,traefik_mesh,,,
45+
traefik_mesh.open_connections,gauge,,,,Traefik v3 only. The current count of open connections partitioned by entrypoint router and service,0,traefik_mesh,,,
4546
traefik_mesh.process.cpu.seconds.count,count,,second,,The total user and system CPU time spent in seconds in the Traefik Mesh instance,0,traefik_mesh,,,
4647
traefik_mesh.process.max_fds,gauge,,file,,The maximum number of open file descriptors in the Traefik Mesh instance,0,traefik_mesh,,,
4748
traefik_mesh.process.open_fds,gauge,,file,,The number of open file descriptors in the Traefik Mesh instance,0,traefik_mesh,,,
4849
traefik_mesh.process.resident_memory.bytes,gauge,,byte,,The resident memory size in bytes in the Traefik Mesh instance,0,traefik_mesh,,,
4950
traefik_mesh.process.start_time.seconds,gauge,,second,,The start time of the process since unix epoch in seconds in the Traefik Mesh instance,0,traefik_mesh,,,
5051
traefik_mesh.process.virtual_memory.bytes,gauge,,byte,,The virtual memory size in bytes in the Traefik Mesh instance,0,traefik_mesh,,,
5152
traefik_mesh.process.virtual_memory.max_bytes,gauge,,byte,,The maximum amount of virtual memory available in bytes in the Traefik Mesh instance,0,traefik_mesh,,,
52-
traefik_mesh.router.open_connections,gauge,,,,The current count of open connections for a router,0,traefik_mesh,,,
53+
traefik_mesh.router.open_connections,gauge,,,,Deprecated in Traefik v3. Use traefik_mesh.open_connections instead. The current count of open connections for a router,0,traefik_mesh,,,
5354
traefik_mesh.router.request.duration.seconds.bucket,count,,second,,Request processing duration histogram for a router,0,traefik_mesh,,,
5455
traefik_mesh.router.request.duration.seconds.count,count,,second,,Request processing duration histogram for a router,0,traefik_mesh,,,
5556
traefik_mesh.router.request.duration.seconds.sum,count,,second,,Request processing duration histogram for a router,0,traefik_mesh,,,
5657
traefik_mesh.router.requests.bytes.count,count,,byte,,The total size of HTTP requests in bytes handled by a router,0,traefik_mesh,,,
5758
traefik_mesh.router.requests.count,count,,,,The total count of HTTP requests handled by a router,0,traefik_mesh,,,
5859
traefik_mesh.router.requests.tls.count,count,,,,The total count of HTTPS requests handled by a router,0,traefik_mesh,,,
5960
traefik_mesh.router.responses.bytes.count,count,,byte,,The total size of HTTP responses in bytes handled by a router,0,traefik_mesh,,,
60-
traefik_mesh.service.open_connections,gauge,,,,The current count of open connections for a service,0,traefik_mesh,,,
61+
traefik_mesh.service.open_connections,gauge,,,,Deprecated in Traefik v3. Use traefik_mesh.open_connections instead. The current count of open connections for a service,0,traefik_mesh,,,
6162
traefik_mesh.service.request.duration.seconds.bucket,count,,second,,Request processing duration histogram for a service,0,traefik_mesh,,,
6263
traefik_mesh.service.request.duration.seconds.count,count,,second,,Request processing duration histogram for a service,0,traefik_mesh,,,
6364
traefik_mesh.service.request.duration.seconds.sum,count,,second,,Request processing duration histogram for a service,0,traefik_mesh,,,

traefik_mesh/tests/common.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,83 @@
8484
'traefik_mesh.service.server.up',
8585
]
8686

87+
OM_V3_METRICS = [
88+
# General Metrics
89+
'traefik_mesh.go.info',
90+
'traefik_mesh.go.gc.duration.seconds.count',
91+
'traefik_mesh.go.gc.duration.seconds.quantile',
92+
'traefik_mesh.go.gc.duration.seconds.sum',
93+
'traefik_mesh.go.goroutines',
94+
'traefik_mesh.go.memstats.alloc_bytes',
95+
'traefik_mesh.go.memstats.alloc_bytes.count',
96+
'traefik_mesh.go.memstats.buck_hash.sys_bytes',
97+
'traefik_mesh.go.memstats.frees.count',
98+
'traefik_mesh.go.memstats.gc.cpu_fraction',
99+
'traefik_mesh.go.memstats.gc.sys_bytes',
100+
'traefik_mesh.go.memstats.heap.alloc_bytes',
101+
'traefik_mesh.go.memstats.heap.idle_bytes',
102+
'traefik_mesh.go.memstats.heap.inuse_bytes',
103+
'traefik_mesh.go.memstats.heap.objects',
104+
'traefik_mesh.go.memstats.heap.released_bytes',
105+
'traefik_mesh.go.memstats.heap.sys_bytes',
106+
'traefik_mesh.go.memstats.last_gc_time.seconds',
107+
'traefik_mesh.go.memstats.lookups.count',
108+
'traefik_mesh.go.memstats.mallocs.count',
109+
'traefik_mesh.go.memstats.mcache.inuse_bytes',
110+
'traefik_mesh.go.memstats.mcache.sys_bytes',
111+
'traefik_mesh.go.memstats.mspan.inuse_bytes',
112+
'traefik_mesh.go.memstats.mspan.sys_bytes',
113+
'traefik_mesh.go.memstats.next.gc_bytes',
114+
'traefik_mesh.go.memstats.other.sys_bytes',
115+
'traefik_mesh.go.memstats.stack.inuse_bytes',
116+
'traefik_mesh.go.memstats.stack.sys_bytes',
117+
'traefik_mesh.go.memstats.sys_bytes',
118+
'traefik_mesh.go.threads',
119+
'traefik_mesh.process.cpu.seconds.count',
120+
'traefik_mesh.process.max_fds',
121+
'traefik_mesh.process.open_fds',
122+
'traefik_mesh.process.resident_memory.bytes',
123+
'traefik_mesh.process.start_time.seconds',
124+
'traefik_mesh.process.virtual_memory.bytes',
125+
'traefik_mesh.process.virtual_memory.max_bytes',
126+
# Global Metrics
127+
'traefik_mesh.config.last_reload.failure',
128+
'traefik_mesh.config.last_reload.success',
129+
'traefik_mesh.config.reloads.count',
130+
'traefik_mesh.config.reloads.failure.count',
131+
# Traefik v3 consolidated open_connections
132+
'traefik_mesh.open_connections',
133+
# Entrypoint Metrics
134+
'traefik_mesh.entrypoint.request.duration.seconds.bucket',
135+
'traefik_mesh.entrypoint.request.duration.seconds.count',
136+
'traefik_mesh.entrypoint.request.duration.seconds.sum',
137+
'traefik_mesh.entrypoint.requests.count',
138+
# Service Metrics
139+
'traefik_mesh.service.request.duration.seconds.bucket',
140+
'traefik_mesh.service.request.duration.seconds.count',
141+
'traefik_mesh.service.request.duration.seconds.sum',
142+
'traefik_mesh.service.requests.count',
143+
]
144+
145+
OM_V3_OPTIONAL_METRICS = {
146+
'traefik_mesh.tls.certs.not_after',
147+
'traefik_mesh.entrypoint.requests.bytes.count',
148+
'traefik_mesh.entrypoint.requests.tls.count',
149+
'traefik_mesh.entrypoint.responses.bytes.count',
150+
'traefik_mesh.router.request.duration.seconds.bucket',
151+
'traefik_mesh.router.request.duration.seconds.count',
152+
'traefik_mesh.router.request.duration.seconds.sum',
153+
'traefik_mesh.router.requests.bytes.count',
154+
'traefik_mesh.router.requests.count',
155+
'traefik_mesh.router.requests.tls.count',
156+
'traefik_mesh.router.responses.bytes.count',
157+
'traefik_mesh.service.tls.requests.count',
158+
'traefik_mesh.service.requests.bytes.count',
159+
'traefik_mesh.service.responses.bytes.count',
160+
'traefik_mesh.service.retries.count',
161+
'traefik_mesh.service.server.up',
162+
}
163+
87164
OM_MOCKED_INSTANCE = {
88165
'openmetrics_endpoint': 'http://localhost:8080/metrics',
89166
'tags': ['test:traefik_mesh'],

0 commit comments

Comments
 (0)