Commit 3114c9b
authored
[AGTHEAL-223] http-sd: apply check template rename_labels to SD target tags (#53774)
### What does this PR do?
This PR makes the OpenMetrics `rename_labels` configuration apply consistently to labels coming from Prometheus HTTP Service Discovery.
The HTTP SD provider converts labels returned by the service discovery endpoint into instance tags on the generated OpenMetrics check. Because those tags are added outside the OpenMetrics scraping pipeline, they previously bypassed rename_labels, which only handled labels found in the scraped metrics payload.
This change extracts the existing rename_labels map from the check template and applies it to HTTP SD labels before converting them into tags. No new configuration is introduced.
For example:
```
prometheus_http_sd:
configs:
- url: "http://my-sd-service:8080/service_instances"
check_template: |
{
"name": "openmetrics",
"init_config": {},
"instances": [
{
"openmetrics_endpoint": "http://%%host%%:%%port%%/metrics",
"namespace": "app",
"metrics": [".*"],
"rename_labels": { "experiment": "appXYZ.experiment" }
}
]
}
```
An HTTP SD response containing:
```
labels:
experiment: test123
```
now produces tag: `appXYZ.experiment:test123`
### Motivation
Previously, `rename_labels` in OM check was only applied to labels parsed from the scraped `/metrics` payload. Labels provided by the HTTP Service Discovery endpoint were converted directly into instance tags by the provider and therefore bypassed the same renaming logic.
The difference came from where the labels entered the generated check:
scraped metric labels were processed by the OpenMetrics check
HTTP SD labels were converted directly into instance tags by the provider
This PR closes that gap so a single `rename_labels` configuration applies consistently to both scraped metric labels and HTTP SD target labels.
### Describe how you validated your changes
```
clusterAgent:
enabled: true
env:
- name: DD_PROMETHEUS_HTTP_SD_URL
value: "http://my-sd-service:8080/service_instances"
- name: DD_PROMETHEUS_HTTP_SD_CHECK_TEMPLATE
value: '{"name":"openmetrics","init_config":{},"instances":[{"openmetrics_endpoint":"http://%%host%%:%%port%%/metrics","namespace":"app","metrics":[".*"],"rename_labels":{"experiment":"appXYZ.experiment"}}]}'
```
With the SD service returning:
```
[
{
"targets": ["10.0.10.2:9100", "10.0.10.3:9100", "10.0.10.4:9100", "10.0.10.5:9100"],
"labels": {
"experiment":"test123"
}
}
...
]
```
the generated OM check gets tag `appXYZ.experiment:test123` (renamed).
### Tag de-duplication behavior
`rename_labels` in the provider can rename an SD label to a key that also arrives from scraped /metrics endpoint.The [de-duplication process](https://github.com/DataDog/datadog-agent/blob/9b52f96ec484f74e39d4020c57b77d1c04972e52/pkg/tagset/hash_generator.go#L10-L16) is done by the aggregator when it builds the metric's context key. For instance, there are two identical renamed tags from SD and scraped metrics endpoint, the aggregator will collapse the identical strings before sending to backend.
Co-authored-by: minyi.zhu <minyi.zhu@datadoghq.com>1 parent 643d479 commit 3114c9b
3 files changed
Lines changed: 180 additions & 4 deletions
File tree
- comp/core/autodiscovery/providers
- releasenotes-dca/notes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
72 | 77 | | |
73 | 78 | | |
74 | 79 | | |
| |||
113 | 118 | | |
114 | 119 | | |
115 | 120 | | |
| 121 | + | |
116 | 122 | | |
117 | 123 | | |
118 | 124 | | |
| |||
269 | 275 | | |
270 | 276 | | |
271 | 277 | | |
272 | | - | |
| 278 | + | |
273 | 279 | | |
274 | 280 | | |
275 | 281 | | |
| |||
359 | 365 | | |
360 | 366 | | |
361 | 367 | | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
362 | 373 | | |
363 | | - | |
| 374 | + | |
364 | 375 | | |
365 | 376 | | |
366 | 377 | | |
| |||
369 | 380 | | |
370 | 381 | | |
371 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
372 | 386 | | |
373 | 387 | | |
374 | 388 | | |
375 | 389 | | |
376 | 390 | | |
377 | 391 | | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
378 | 417 | | |
379 | 418 | | |
380 | 419 | | |
| |||
Lines changed: 129 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| |||
180 | 181 | | |
181 | 182 | | |
182 | 183 | | |
183 | | - | |
| 184 | + | |
184 | 185 | | |
185 | 186 | | |
186 | 187 | | |
| |||
195 | 196 | | |
196 | 197 | | |
197 | 198 | | |
198 | | - | |
| 199 | + | |
199 | 200 | | |
200 | 201 | | |
201 | 202 | | |
| |||
792 | 793 | | |
793 | 794 | | |
794 | 795 | | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments