1313
1414from .common import EXPECTED_METRICS
1515
16- # These require an actual reconcile/workqueue event to fire, which doesn't happen against an
17- # idle test cluster with no GitRepository/Kustomization/HelmRelease objects configured.
18- IGNORED_METRICS = {
19- 'fluxcd.controller.runtime.reconcile.count' ,
20- 'fluxcd.controller.runtime.reconcile.errors.count' ,
21- 'fluxcd.controller.runtime.reconcile.time.seconds.bucket' ,
22- 'fluxcd.controller.runtime.reconcile.time.seconds.count' ,
23- 'fluxcd.controller.runtime.reconcile.time.seconds.sum' ,
24- 'fluxcd.gotk.reconcile.condition' ,
25- 'fluxcd.gotk.reconcile.duration.seconds.bucket' ,
26- 'fluxcd.gotk.reconcile.duration.seconds.count' ,
27- 'fluxcd.gotk.reconcile.duration.seconds.sum' ,
28- # Emitted by kube-state-metrics (Flux 2.1+), not Flux controller /metrics endpoints.
29- 'fluxcd.gotk.resource.info' ,
30- 'fluxcd.gotk.suspend.status' ,
31- 'fluxcd.process.cpu_seconds.count' ,
32- 'fluxcd.workqueue.adds.count' ,
33- 'fluxcd.workqueue.retries.count' ,
34- }
16+
17+ def assert_metrics (aggregator ):
18+ IGNORED_METRICS = {
19+ 'fluxcd.controller.runtime.reconcile.count' ,
20+ 'fluxcd.controller.runtime.reconcile.errors.count' ,
21+ 'fluxcd.controller.runtime.reconcile.time.seconds.bucket' ,
22+ 'fluxcd.controller.runtime.reconcile.time.seconds.count' ,
23+ 'fluxcd.controller.runtime.reconcile.time.seconds.sum' ,
24+ 'fluxcd.gotk.reconcile.condition' ,
25+ 'fluxcd.gotk.reconcile.duration.seconds.bucket' ,
26+ 'fluxcd.gotk.reconcile.duration.seconds.count' ,
27+ 'fluxcd.gotk.reconcile.duration.seconds.sum' ,
28+ # Emitted by kube-state-metrics (Flux 2.1+), not Flux controller /metrics endpoints.
29+ 'fluxcd.gotk.resource.info' ,
30+ 'fluxcd.gotk.suspend.status' ,
31+ 'fluxcd.process.cpu_seconds.count' ,
32+ 'fluxcd.workqueue.adds.count' ,
33+ 'fluxcd.workqueue.retries.count' ,
34+ }
35+ for metric_name in set (EXPECTED_METRICS ['v2' ]) - IGNORED_METRICS :
36+ aggregator .assert_metric (metric_name )
37+ aggregator .assert_all_metrics_covered ()
38+ aggregator .assert_metrics_using_metadata (get_metadata_metrics ())
3539
3640
3741def test_source_controller_metrics (dd_agent_check ):
@@ -41,22 +45,15 @@ def test_source_controller_metrics(dd_agent_check):
4145 Version 1 is in maintenance mode, all our users are on version 2.
4246 """
4347 aggregator = dd_agent_check ()
44- for metric_name in set (EXPECTED_METRICS ['v2' ]) - IGNORED_METRICS :
45- aggregator .assert_metric (metric_name )
46- aggregator .assert_all_metrics_covered ()
47- aggregator .assert_metrics_using_metadata (get_metadata_metrics ())
48+ assert_metrics (aggregator )
4849
4950
5051@pytest .mark .e2e
5152def test_e2e_discovery (aggregator , datadog_agent ):
5253 # Kubelet Autodiscovery is expected to find all four flux-system controller pods exercised by
5354 # the non-discovery E2E test above (source, helm, kustomize, notification-controller).
5455 run_discovery_check_kubernetes (aggregator , datadog_agent , discovery_min_instances = 4 )
55-
56- for metric_name in set (EXPECTED_METRICS ['v2' ]) - IGNORED_METRICS :
57- aggregator .assert_metric (metric_name )
58- aggregator .assert_all_metrics_covered ()
59- aggregator .assert_metrics_using_metadata (get_metadata_metrics ())
56+ assert_metrics (aggregator )
6057
6158
6259@pytest .mark .e2e
0 commit comments