|
4 | 4 |
|
5 | 5 | import pytest |
6 | 6 |
|
| 7 | +from datadog_checks.base.stubs import tagger |
7 | 8 | from datadog_checks.dev.utils import get_metadata_metrics |
8 | 9 | from datadog_checks.kueue import KueueCheck |
9 | 10 | from datadog_checks.kueue.check import OTHER_RESOURCE_NAME, RESOURCE_NAME_MAP |
@@ -64,6 +65,48 @@ def test_check(dd_run_check, aggregator, instance, mock_http_response): |
64 | 65 | ) |
65 | 66 |
|
66 | 67 |
|
| 68 | +def test_queue_tagger_tags(dd_run_check, aggregator, instance, mock_http_response): |
| 69 | + mock_http_response(file_path=get_fixture_path('metrics.txt')) |
| 70 | + tagger.set_tags( |
| 71 | + { |
| 72 | + 'kubernetes_kueue_queue://clusterqueue//cluster-queue': ['cluster_queue_tag:value'], |
| 73 | + 'kubernetes_kueue_queue://localqueue/default/user-queue': ['local_queue_tag:value'], |
| 74 | + 'kueue_resource_flavor://default-flavor': ['resource_flavor_tag:value'], |
| 75 | + } |
| 76 | + ) |
| 77 | + |
| 78 | + check = KueueCheck('kueue', {}, [instance]) |
| 79 | + dd_run_check(check) |
| 80 | + |
| 81 | + aggregator.assert_metric_has_tag('kueue.pending_workloads', 'cluster_queue_tag:value') |
| 82 | + aggregator.assert_metric_has_tag('kueue.cluster_queue.resource_usage.gpu', 'cluster_queue_tag:value') |
| 83 | + aggregator.assert_metric_has_tag('kueue.cluster_queue.resource_usage.gpu', 'resource_flavor_tag:value') |
| 84 | + aggregator.assert_metric_has_tag('kueue.local_queue.pending_workloads', 'cluster_queue_tag:value') |
| 85 | + aggregator.assert_metric_has_tag('kueue.local_queue.pending_workloads', 'local_queue_tag:value') |
| 86 | + aggregator.assert_metric_has_tag('kueue.local_queue.resource_reservation.cpu', 'local_queue_tag:value') |
| 87 | + aggregator.assert_metric_has_tag('kueue.local_queue.resource_usage.cpu', 'local_queue_tag:value') |
| 88 | + tagger.assert_called('kubernetes_kueue_queue://clusterqueue//cluster-queue', tagger.ORCHESTRATOR) |
| 89 | + tagger.assert_called('kubernetes_kueue_queue://localqueue/default/user-queue', tagger.ORCHESTRATOR) |
| 90 | + tagger.assert_called('kueue_resource_flavor://default-flavor', tagger.ORCHESTRATOR) |
| 91 | + |
| 92 | + |
| 93 | +def test_queue_tagger_tags_are_scoped(dd_run_check, aggregator, instance, mock_http_response): |
| 94 | + mock_http_response(file_path=get_fixture_path('metrics.txt')) |
| 95 | + tagger.set_tags( |
| 96 | + { |
| 97 | + 'kubernetes_kueue_queue://clusterqueue//cluster-queue': ['cluster_queue_tag:value'], |
| 98 | + } |
| 99 | + ) |
| 100 | + |
| 101 | + check = KueueCheck('kueue', {}, [instance]) |
| 102 | + dd_run_check(check) |
| 103 | + |
| 104 | + go_goroutines_tags = _get_metric_tags(aggregator, 'kueue.go.goroutines') |
| 105 | + local_queue_tags = _get_metric_tags(aggregator, 'kueue.local_queue.pending_workloads') |
| 106 | + assert 'cluster_queue_tag:value' not in go_goroutines_tags |
| 107 | + assert 'local_queue_tag:value' not in local_queue_tags |
| 108 | + |
| 109 | + |
67 | 110 | def test_resource_name_map(dd_run_check, aggregator, instance, mock_http_response): |
68 | 111 | mock_http_response(file_path=get_fixture_path('metrics.txt')) |
69 | 112 | instance = { |
@@ -95,3 +138,7 @@ def test_empty_instance(dd_run_check): |
95 | 138 | ): |
96 | 139 | check = KueueCheck('kueue', {}, [{}]) |
97 | 140 | dd_run_check(check) |
| 141 | + |
| 142 | + |
| 143 | +def _get_metric_tags(aggregator, metric_name): |
| 144 | + return {tag for metric in aggregator.metrics(metric_name) for tag in metric.tags} |
0 commit comments