Skip to content

Commit 6903510

Browse files
jinja2Copilot
andauthored
[chore] Update testK8sClusterReceiverMetrics (#2135)
* update cluster metrics test * update cluster metrics test * Update functional_tests/functional/functional_test.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * undo precommit --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 51a0c1a commit 6903510

File tree

1 file changed

+35
-65
lines changed

1 file changed

+35
-65
lines changed

functional_tests/functional/functional_test.go

Lines changed: 35 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -929,65 +929,44 @@ func testK8sClusterReceiverMetrics(t *testing.T) {
929929
metricsConsumer := globalSinks.k8sclusterReceiverMetricsConsumer
930930
expectedMetricsFile := filepath.Join(testDir, expectedValuesDir, "expected_cluster_receiver.yaml")
931931
expectedMetrics, err := golden.ReadMetrics(expectedMetricsFile)
932-
require.NoError(t, err)
932+
require.NoError(t, err, "Failed to read expected metrics from expected_cluster_receiver.yaml")
933933

934-
metricNames := []string{"k8s.node.condition_ready", "k8s.namespace.phase", "k8s.pod.phase", "k8s.replicaset.desired", "k8s.replicaset.available", "k8s.daemonset.ready_nodes", "k8s.daemonset.misscheduled_nodes", "k8s.daemonset.desired_scheduled_nodes", "k8s.daemonset.current_scheduled_nodes", "k8s.container.ready", "k8s.container.memory_request", "k8s.container.memory_limit", "k8s.container.cpu_request", "k8s.container.cpu_limit", "k8s.deployment.desired", "k8s.deployment.available", "k8s.container.restarts", "k8s.container.cpu_request", "k8s.container.memory_request", "k8s.container.memory_limit"}
935-
replaceWithStar := func(string) string { return "*" }
934+
targetMetric := "k8s.pod.phase"
935+
selectedMetrics := internal.SelectMetricSetWithTimeout(t, expectedMetrics, targetMetric, metricsConsumer, false, 3*time.Minute, 10*time.Second)
936+
require.NotNil(t, selectedMetrics, "No metrics batch found containing target metric: %s", targetMetric)
936937

937-
var selectedMetrics *pmetric.Metrics
938-
for h := len(metricsConsumer.AllMetrics()) - 1; h >= 0; h-- {
939-
m := metricsConsumer.AllMetrics()[h]
940-
941-
err = pmetrictest.CompareMetrics(expectedMetrics, m,
942-
pmetrictest.IgnoreTimestamp(),
943-
pmetrictest.IgnoreStartTimestamp(),
944-
pmetrictest.IgnoreMetricAttributeValue("container.id", metricNames...),
945-
pmetrictest.IgnoreMetricAttributeValue("k8s.daemonset.uid", metricNames...),
946-
pmetrictest.IgnoreMetricAttributeValue("k8s.deployment.uid", metricNames...),
947-
pmetrictest.IgnoreMetricAttributeValue("k8s.pod.uid", metricNames...),
948-
pmetrictest.IgnoreMetricAttributeValue("k8s.pod.name", metricNames...),
949-
pmetrictest.IgnoreMetricAttributeValue("k8s.node.name", metricNames...),
950-
pmetrictest.IgnoreMetricAttributeValue("k8s.replicaset.uid", metricNames...),
951-
pmetrictest.IgnoreMetricAttributeValue("k8s.replicaset.name", metricNames...),
952-
pmetrictest.IgnoreMetricAttributeValue("k8s.namespace.uid", metricNames...),
953-
pmetrictest.IgnoreMetricAttributeValue("container.image.name", metricNames...),
954-
pmetrictest.IgnoreMetricAttributeValue("container.image.tag", metricNames...),
955-
pmetrictest.IgnoreMetricAttributeValue("k8s.node.uid", metricNames...),
956-
pmetrictest.IgnoreMetricAttributeValue("k8s.kubelet.version", metricNames...),
957-
pmetrictest.IgnoreMetricAttributeValue("k8s.container.status.last_terminated_reason", metricNames...),
958-
pmetrictest.IgnoreMetricValues(metricNames...),
959-
pmetrictest.ChangeResourceAttributeValue("k8s.deployment.name", shortenNames),
960-
pmetrictest.ChangeResourceAttributeValue("k8s.pod.name", shortenNames),
961-
pmetrictest.ChangeResourceAttributeValue("k8s.replicaset.name", shortenNames),
962-
pmetrictest.ChangeResourceAttributeValue("k8s.deployment.uid", replaceWithStar),
963-
pmetrictest.ChangeResourceAttributeValue("k8s.pod.uid", replaceWithStar),
964-
pmetrictest.ChangeResourceAttributeValue("k8s.replicaset.uid", replaceWithStar),
965-
pmetrictest.ChangeResourceAttributeValue("container.id", replaceWithStar),
966-
pmetrictest.ChangeResourceAttributeValue("container.image.tag", replaceWithStar),
967-
pmetrictest.ChangeResourceAttributeValue("k8s.node.uid", replaceWithStar),
968-
pmetrictest.ChangeResourceAttributeValue("k8s.namespace.uid", replaceWithStar),
969-
pmetrictest.ChangeResourceAttributeValue("k8s.daemonset.uid", replaceWithStar),
970-
pmetrictest.ChangeResourceAttributeValue("container.image.name", containerImageShorten),
971-
pmetrictest.ChangeResourceAttributeValue("container.id", replaceWithStar),
972-
pmetrictest.ChangeResourceAttributeValue("host.name", replaceWithStar),
973-
pmetrictest.ChangeResourceAttributeValue("k8s.kubelet.version", replaceWithStar),
974-
pmetrictest.ChangeResourceAttributeValue("k8s.container.status.last_terminated_reason", replaceWithStar),
975-
pmetrictest.IgnoreScopeVersion(),
976-
pmetrictest.IgnoreResourceMetricsOrder(),
977-
pmetrictest.IgnoreMetricsOrder(),
978-
pmetrictest.IgnoreScopeMetricsOrder(),
979-
pmetrictest.IgnoreMetricDataPointsOrder(),
980-
pmetrictest.IgnoreSubsequentDataPoints("k8s.container.ready", "k8s.container.restarts", "k8s.pod.phase"),
981-
)
982-
if err == nil {
983-
selectedMetrics = &m
984-
break
985-
}
938+
metricNames := internal.GetMetricNames(&expectedMetrics)
939+
err = pmetrictest.CompareMetrics(expectedMetrics, *selectedMetrics,
940+
pmetrictest.IgnoreTimestamp(),
941+
pmetrictest.IgnoreStartTimestamp(),
942+
pmetrictest.IgnoreMetricAttributeValue("container.id", metricNames...),
943+
pmetrictest.IgnoreMetricAttributeValue("k8s.daemonset.uid", metricNames...),
944+
pmetrictest.IgnoreMetricAttributeValue("k8s.deployment.uid", metricNames...),
945+
pmetrictest.IgnoreMetricAttributeValue("k8s.pod.uid", metricNames...),
946+
pmetrictest.IgnoreMetricAttributeValue("k8s.pod.name", metricNames...),
947+
pmetrictest.IgnoreMetricAttributeValue("k8s.node.name", metricNames...),
948+
pmetrictest.IgnoreMetricAttributeValue("k8s.replicaset.uid", metricNames...),
949+
pmetrictest.IgnoreMetricAttributeValue("k8s.replicaset.name", metricNames...),
950+
pmetrictest.IgnoreMetricAttributeValue("k8s.namespace.uid", metricNames...),
951+
pmetrictest.IgnoreMetricAttributeValue("container.image.name", metricNames...),
952+
pmetrictest.IgnoreMetricAttributeValue("container.image.tag", metricNames...),
953+
pmetrictest.IgnoreMetricAttributeValue("k8s.node.uid", metricNames...),
954+
pmetrictest.IgnoreMetricAttributeValue("k8s.kubelet.version", metricNames...),
955+
pmetrictest.IgnoreMetricAttributeValue("k8s.container.status.last_terminated_reason", metricNames...),
956+
pmetrictest.IgnoreMetricValues(metricNames...),
957+
pmetrictest.IgnoreScopeVersion(),
958+
pmetrictest.IgnoreResourceMetricsOrder(),
959+
pmetrictest.IgnoreMetricsOrder(),
960+
pmetrictest.IgnoreScopeMetricsOrder(),
961+
pmetrictest.IgnoreMetricDataPointsOrder(),
962+
pmetrictest.IgnoreSubsequentDataPoints("k8s.container.ready", "k8s.container.restarts", "k8s.pod.phase"),
963+
)
964+
if err != nil {
965+
internal.MaybeUpdateExpectedMetricsResults(t, expectedMetricsFile, selectedMetrics)
966+
require.NoError(t, err, "K8s cluster receiver metrics comparison failed. Error: %v", err)
986967
}
987968

988-
require.NotNil(t, selectedMetrics)
989-
require.NoError(t, err)
990-
internal.MaybeUpdateExpectedMetricsResults(t, expectedMetricsFile, selectedMetrics)
969+
t.Logf("K8s cluster receiver metrics comparison passed for %d metrics", selectedMetrics.MetricCount())
991970
}
992971

993972
func testAgentLogs(t *testing.T) {
@@ -1232,16 +1211,7 @@ func testAgentMetricsTemplate(t *testing.T, metricsSink *consumertest.MetricsSin
12321211
// tryMetricsComparison performs metric comparison using pmetrictest.CompareMetrics and returns error
12331212
func tryMetricsComparison(expected pmetric.Metrics, actual pmetric.Metrics) error {
12341213
replaceWithStar := func(string) string { return "*" }
1235-
1236-
var metricNames []string
1237-
for i := 0; i < expected.ResourceMetrics().Len(); i++ {
1238-
for j := 0; j < expected.ResourceMetrics().At(i).ScopeMetrics().Len(); j++ {
1239-
for k := 0; k < expected.ResourceMetrics().At(i).ScopeMetrics().At(j).Metrics().Len(); k++ {
1240-
metric := expected.ResourceMetrics().At(i).ScopeMetrics().At(j).Metrics().At(k)
1241-
metricNames = append(metricNames, metric.Name())
1242-
}
1243-
}
1244-
}
1214+
metricNames := internal.GetMetricNames(&expected)
12451215

12461216
return pmetrictest.CompareMetrics(expected, actual,
12471217
pmetrictest.IgnoreTimestamp(),

0 commit comments

Comments
 (0)