Compare commits

...

8 Commits

Author SHA1 Message Date
nikhilmantri0902
42045a619b chore: fix py fmt for integration tests 2026-06-15 14:41:49 +05:30
nikhilmantri0902
ea8c789514 chore: added group by clustername for all workloads and integration tests for the same 2026-06-15 13:49:27 +05:30
nikhilmantri0902
bec3191811 chore: namespace group by for daemonsets 2026-06-15 12:55:08 +05:30
nikhilmantri0902
169bf8680c Merge branch 'main' into infraM/add_additional_default_group_bys 2026-06-15 12:31:01 +05:30
nikhilmantri0902
e4b4e77f2c chore: namespace group by for jobs 2026-06-15 12:21:05 +05:30
nikhilmantri0902
0e11e5b6b9 Merge branch 'main' into infraM/add_additional_default_group_bys 2026-06-15 11:25:32 +05:30
nikhilmantri0902
b022484aee chore: added integration tests for statefulsets 2026-06-14 12:25:23 +05:30
nikhilmantri0902
9628810121 chore: deployments -> add default namespace group by 2026-06-14 11:41:57 +05:30
10 changed files with 1140 additions and 164 deletions

View File

@@ -269,6 +269,67 @@ func TestCompositeKeyFromLabels(t *testing.T) {
groupBy: []qbtypes.GroupByKey{groupByKey("a"), groupByKey("m"), groupByKey("z")},
expected: "first\x00middle\x00last",
},
{
// deployments default group identity: (deployment, namespace).
name: "deployment and namespace group-by",
labels: map[string]string{
"k8s.deployment.name": "web-1",
"k8s.namespace.name": "ns-x",
},
groupBy: []qbtypes.GroupByKey{deploymentNameGroupByKey, namespaceNameGroupByKey},
expected: "web-1\x00ns-x",
},
{
// statefulsets default group identity: (statefulset, namespace).
name: "statefulset and namespace group-by",
labels: map[string]string{
"k8s.statefulset.name": "web-1",
"k8s.namespace.name": "ns-x",
},
groupBy: []qbtypes.GroupByKey{statefulSetNameGroupByKey, namespaceNameGroupByKey},
expected: "web-1\x00ns-x",
},
{
// jobs default group identity: (job, namespace).
name: "job and namespace group-by",
labels: map[string]string{
"k8s.job.name": "web-1",
"k8s.namespace.name": "ns-x",
},
groupBy: []qbtypes.GroupByKey{jobNameGroupByKey, namespaceNameGroupByKey},
expected: "web-1\x00ns-x",
},
{
// daemonsets default group identity: (daemonset, namespace).
name: "daemonset and namespace group-by",
labels: map[string]string{
"k8s.daemonset.name": "web-1",
"k8s.namespace.name": "ns-x",
},
groupBy: []qbtypes.GroupByKey{daemonSetNameGroupByKey, namespaceNameGroupByKey},
expected: "web-1\x00ns-x",
},
{
// workload default group identity with cluster: (name, namespace, cluster).
name: "name, namespace and cluster group-by",
labels: map[string]string{
"k8s.deployment.name": "web-1",
"k8s.namespace.name": "ns-x",
"k8s.cluster.name": "cluster-a",
},
groupBy: []qbtypes.GroupByKey{deploymentNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey},
expected: "web-1\x00ns-x\x00cluster-a",
},
{
// absent cluster label -> empty trailing segment (Helm-less / self-configured collector).
name: "missing cluster label yields empty trailing segment",
labels: map[string]string{
"k8s.deployment.name": "web-1",
"k8s.namespace.name": "ns-x",
},
groupBy: []qbtypes.GroupByKey{deploymentNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey},
expected: "web-1\x00ns-x\x00",
},
}
for _, tt := range tests {

View File

@@ -620,7 +620,7 @@ func (m *module) ListDeployments(ctx context.Context, orgID valuer.UUID, req *in
}
if len(req.GroupBy) == 0 {
req.GroupBy = []qbtypes.GroupByKey{deploymentNameGroupByKey}
req.GroupBy = []qbtypes.GroupByKey{deploymentNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey}
resp.Type = inframonitoringtypes.ResponseTypeList
} else {
resp.Type = inframonitoringtypes.ResponseTypeGroupedList
@@ -710,7 +710,7 @@ func (m *module) ListStatefulSets(ctx context.Context, orgID valuer.UUID, req *i
}
if len(req.GroupBy) == 0 {
req.GroupBy = []qbtypes.GroupByKey{statefulSetNameGroupByKey}
req.GroupBy = []qbtypes.GroupByKey{statefulSetNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey}
resp.Type = inframonitoringtypes.ResponseTypeList
} else {
resp.Type = inframonitoringtypes.ResponseTypeGroupedList
@@ -802,7 +802,7 @@ func (m *module) ListJobs(ctx context.Context, orgID valuer.UUID, req *inframoni
}
if len(req.GroupBy) == 0 {
req.GroupBy = []qbtypes.GroupByKey{jobNameGroupByKey}
req.GroupBy = []qbtypes.GroupByKey{jobNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey}
resp.Type = inframonitoringtypes.ResponseTypeList
} else {
resp.Type = inframonitoringtypes.ResponseTypeGroupedList
@@ -894,7 +894,7 @@ func (m *module) ListDaemonSets(ctx context.Context, orgID valuer.UUID, req *inf
}
if len(req.GroupBy) == 0 {
req.GroupBy = []qbtypes.GroupByKey{daemonSetNameGroupByKey}
req.GroupBy = []qbtypes.GroupByKey{daemonSetNameGroupByKey, namespaceNameGroupByKey, clusterNameGroupByKey}
resp.Type = inframonitoringtypes.ResponseTypeList
} else {
resp.Type = inframonitoringtypes.ResponseTypeGroupedList

View File

@@ -0,0 +1,108 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g1-p1-uid","k8s.pod.name":"dup-ds-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ds-g2-p1-uid","k8s.pod.name":"dup-ds-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ds-g3-p1-uid","k8s.pod.name":"dup-ds-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ds-g4-p1-uid","k8s.pod.name":"dup-ds-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dup-ds","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,108 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g1-p1-uid","k8s.pod.name":"dup-dep-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-dep-g2-p1-uid","k8s.pod.name":"dup-dep-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-dep-g3-p1-uid","k8s.pod.name":"dup-dep-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-dep-g4-p1-uid","k8s.pod.name":"dup-dep-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.desired","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.deployment.available","labels":{"k8s.deployment.name":"dup-dep","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,132 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g1-p1-uid","k8s.pod.name":"dup-job-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-job-g2-p1-uid","k8s.pod.name":"dup-job-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-job-g3-p1-uid","k8s.pod.name":"dup-job-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-job-g4-p1-uid","k8s.pod.name":"dup-job-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.desired_successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.active_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.failed_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.job.successful_pods","labels":{"k8s.job.name":"dup-job","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,108 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g1-p1-uid","k8s.pod.name":"dup-ss-g1-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.9,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a","k8s.pod.uid":"dup-ss-g2-p1-uid","k8s.pod.name":"dup-ss-g2-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-y","k8s.cluster.name":"cluster-a"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b","k8s.pod.uid":"dup-ss-g3-p1-uid","k8s.pod.name":"dup-ss-g3-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.cluster.name":"cluster-b"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x","k8s.pod.uid":"dup-ss-g4-p1-uid","k8s.pod.name":"dup-ss-g4-p1"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.desired_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.statefulset.current_pods","labels":{"k8s.statefulset.name":"dup-ss","k8s.namespace.name":"ns-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -424,23 +424,128 @@ def test_deployments_base_filter_drops_non_deployment_pods(
assert all(r["deploymentName"] != "" for r in data["records"])
# Float record fields compared with tolerance; everything else compared with ==.
_GROUPBY_FLOAT_FIELDS = {
"deploymentCPU",
"deploymentCPURequest",
"deploymentCPULimit",
"deploymentMemory",
"deploymentMemoryRequest",
"deploymentMemoryLimit",
}
def _phase(pending=0, running=0, succeeded=0, failed=0, unknown=0) -> dict:
return {"pending": pending, "running": running, "succeeded": succeeded, "failed": failed, "unknown": unknown}
@pytest.mark.parametrize(
"group_key,expected_running",
"scenario",
[
# groupBy=[k8s.deployment.name]: one record per deployment,
# deploymentName populated (deployments.go:28-31). 1 running pod each.
# Explicit groupBy=[k8s.deployment.name]: one record per deployment,
# deploymentName populated (deployments.go:28-31), response grouped_list.
# 1 running pod each.
pytest.param(
"k8s.deployment.name",
{"gb-dep-a1": 1, "gb-dep-a2": 1, "gb-dep-b1": 1, "gb-dep-b2": 1},
{
"fixture": "deployments_groupby.jsonl",
"group_by": "k8s.deployment.name",
"filter": None,
"group_meta_keys": ["k8s.deployment.name"],
"expected_type": "grouped_list",
"groups": {
"gb-dep-a1": {"deploymentName": "gb-dep-a1", "podCountsByPhase": _phase(running=1)},
"gb-dep-a2": {"deploymentName": "gb-dep-a2", "podCountsByPhase": _phase(running=1)},
"gb-dep-b1": {"deploymentName": "gb-dep-b1", "podCountsByPhase": _phase(running=1)},
"gb-dep-b2": {"deploymentName": "gb-dep-b2", "podCountsByPhase": _phase(running=1)},
},
},
id="deployment_name",
),
# groupBy=[k8s.namespace.name]: aggregated across each namespace's 2
# deployments, deploymentName cleared. 2 x 1 = 2 running pods each.
# Explicit groupBy=[k8s.namespace.name]: aggregated across each namespace's
# 2 deployments, deploymentName cleared, response grouped_list. 2 running each.
pytest.param(
"k8s.namespace.name",
{"gb-ns-a": 2, "gb-ns-b": 2},
{
"fixture": "deployments_groupby.jsonl",
"group_by": "k8s.namespace.name",
"filter": None,
"group_meta_keys": ["k8s.namespace.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ns-a": {"deploymentName": "", "podCountsByPhase": _phase(running=2)},
"gb-ns-b": {"deploymentName": "", "podCountsByPhase": _phase(running=2)},
},
},
id="namespace",
),
# Default groupBy (no groupBy in request) => [k8s.deployment.name,
# k8s.namespace.name, k8s.cluster.name] (module.go ListDeployments),
# response list. Same workload name must NOT collapse across namespaces OR
# clusters; the empty-cluster group (k8s.cluster.name label absent on the
# source pods) must appear as its own row with real metrics, not be dropped.
# Single pod per group => SpaceAggregationSum == Avg == seeded value.
# Fails on the pre-cluster default (name+ns) — the three ns-x groups would
# collapse into one summed row.
pytest.param(
{
"fixture": "deployments_same_name_across_ns_and_clusters.jsonl",
"group_by": None,
"filter": "k8s.deployment.name = 'dup-dep'",
"group_meta_keys": ["k8s.deployment.name", "k8s.namespace.name", "k8s.cluster.name"],
"expected_type": "list",
"groups": {
("dup-dep", "ns-x", "cluster-a"): {
"deploymentName": "dup-dep",
"deploymentCPU": 0.3,
"deploymentCPURequest": 0.6,
"deploymentCPULimit": 0.7,
"deploymentMemory": 100000000.0,
"deploymentMemoryRequest": 0.6,
"deploymentMemoryLimit": 0.7,
"desiredPods": 2,
"availablePods": 2,
"podCountsByPhase": _phase(running=1),
},
("dup-dep", "ns-y", "cluster-a"): {
"deploymentName": "dup-dep",
"deploymentCPU": 0.9,
"deploymentCPURequest": 0.2,
"deploymentCPULimit": 0.3,
"deploymentMemory": 500000000.0,
"deploymentMemoryRequest": 0.2,
"deploymentMemoryLimit": 0.3,
"desiredPods": 3,
"availablePods": 1,
"podCountsByPhase": _phase(failed=1),
},
("dup-dep", "ns-x", "cluster-b"): {
"deploymentName": "dup-dep",
"deploymentCPU": 0.5,
"deploymentCPURequest": 0.4,
"deploymentCPULimit": 0.5,
"deploymentMemory": 300000000.0,
"deploymentMemoryRequest": 0.4,
"deploymentMemoryLimit": 0.5,
"desiredPods": 4,
"availablePods": 4,
"podCountsByPhase": _phase(running=1),
},
# empty-cluster group: k8s.cluster.name label absent on the source pods.
("dup-dep", "ns-x", ""): {
"deploymentName": "dup-dep",
"deploymentCPU": 0.1,
"deploymentCPURequest": 0.1,
"deploymentCPULimit": 0.1,
"deploymentMemory": 200000000.0,
"deploymentMemoryRequest": 0.1,
"deploymentMemoryLimit": 0.1,
"desiredPods": 1,
"availablePods": 0,
"podCountsByPhase": _phase(pending=1),
},
},
},
id="default_disambiguates_ns_and_cluster",
),
],
)
def test_deployments_groupby(
@@ -448,55 +553,64 @@ def test_deployments_groupby(
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
group_key: str,
expected_running: dict,
scenario: dict,
) -> None:
"""groupBy returns one record per distinct group with aggregated pod-phase
counts. deploymentName is populated only when grouping by k8s.deployment.name
(deployments.go:28-31 list-vs-grouped branch); meta surfaces the groupBy key."""
"""groupBy determines row identity. Explicit groupBy returns one grouped_list
record per distinct group (deploymentName populated only when grouping by
k8s.deployment.name; deployments.go:28-31). With no groupBy the default is
[k8s.deployment.name, k8s.namespace.name, k8s.cluster.name] (module.go
ListDeployments), so same-named deployments across namespaces/clusters stay as
separate, un-collapsed list rows (incl. an absent-cluster group keyed by "").
meta always surfaces the grouping key(s)."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/deployments_groupby.jsonl"),
get_testdata_file_path(f"inframonitoring/{scenario['fixture']}"),
base_time=now - timedelta(minutes=4),
)
)
body: dict = {
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
}
if scenario["group_by"] is not None:
body["groupBy"] = [{"name": scenario["group_by"], "fieldDataType": "string", "fieldContext": "resource"}]
if scenario["filter"] is not None:
body["filter"] = {"expression": scenario["filter"]}
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
response = requests.post(
signoz.self.host_configs["8080"].get(ENDPOINT),
headers={"authorization": f"Bearer {token}"},
json={
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
"groupBy": [
{
"name": group_key,
"fieldDataType": "string",
"fieldContext": "resource",
}
],
},
json=body,
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == len(expected_running)
is_dep_group = group_key == "k8s.deployment.name"
group_of = lambda r: r["deploymentName"] if is_dep_group else r["meta"][group_key] # noqa: E731 # pylint: disable=unnecessary-lambda-assignment
by_group = {group_of(r): r for r in data["records"]}
assert set(by_group.keys()) == set(expected_running.keys())
groups = scenario["groups"]
meta_keys = scenario["group_meta_keys"]
assert data["type"] == scenario["expected_type"]
assert data["total"] == len(groups)
for group, running in expected_running.items():
rec = by_group[group]
# deploymentName populated per deployment when grouping by it, empty otherwise.
assert rec["deploymentName"] == (group if is_dep_group else "")
assert rec["podCountsByPhase"]["running"] == running
for other in ("pending", "succeeded", "failed", "unknown"):
assert rec["podCountsByPhase"][other] == 0
assert group_key in rec["meta"], rec["meta"]
def _gid(rec: dict):
vals = [rec["meta"][k] for k in meta_keys]
return vals[0] if len(vals) == 1 else tuple(vals)
by_group = {_gid(r): r for r in data["records"]}
assert set(by_group.keys()) == set(groups.keys())
for gid, exp in groups.items():
rec = by_group[gid]
for k in meta_keys:
assert k in rec["meta"], rec["meta"]
for field, val in exp.items():
if field in _GROUPBY_FLOAT_FIELDS:
assert compare_values(rec[field], val, 1e-6), f"{gid}.{field}: got {rec[field]}, expected {val}"
else:
assert rec[field] == val, f"{gid}.{field}: got {rec[field]}, expected {val}"
def test_deployments_pagination(

View File

@@ -424,23 +424,128 @@ def test_statefulsets_base_filter_drops_non_statefulset_pods(
assert all(r["statefulSetName"] != "" for r in data["records"])
# Float record fields compared with tolerance; everything else compared with ==.
_GROUPBY_FLOAT_FIELDS = {
"statefulSetCPU",
"statefulSetCPURequest",
"statefulSetCPULimit",
"statefulSetMemory",
"statefulSetMemoryRequest",
"statefulSetMemoryLimit",
}
def _phase(pending=0, running=0, succeeded=0, failed=0, unknown=0) -> dict:
return {"pending": pending, "running": running, "succeeded": succeeded, "failed": failed, "unknown": unknown}
@pytest.mark.parametrize(
"group_key,expected_running",
"scenario",
[
# groupBy=[k8s.statefulset.name]: one record per statefulset,
# statefulSetName populated (statefulsets.go:28-31). 1 running pod each.
# Explicit groupBy=[k8s.statefulset.name]: one record per statefulset,
# statefulSetName populated (statefulsets.go:28-31), response grouped_list.
# 1 running pod each.
pytest.param(
"k8s.statefulset.name",
{"gb-ss-a1": 1, "gb-ss-a2": 1, "gb-ss-b1": 1, "gb-ss-b2": 1},
{
"fixture": "statefulsets_groupby.jsonl",
"group_by": "k8s.statefulset.name",
"filter": None,
"group_meta_keys": ["k8s.statefulset.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ss-a1": {"statefulSetName": "gb-ss-a1", "podCountsByPhase": _phase(running=1)},
"gb-ss-a2": {"statefulSetName": "gb-ss-a2", "podCountsByPhase": _phase(running=1)},
"gb-ss-b1": {"statefulSetName": "gb-ss-b1", "podCountsByPhase": _phase(running=1)},
"gb-ss-b2": {"statefulSetName": "gb-ss-b2", "podCountsByPhase": _phase(running=1)},
},
},
id="statefulset_name",
),
# groupBy=[k8s.namespace.name]: aggregated across each namespace's 2
# statefulsets, statefulSetName cleared. 2 x 1 = 2 running pods each.
# Explicit groupBy=[k8s.namespace.name]: aggregated across each namespace's
# 2 statefulsets, statefulSetName cleared, response grouped_list. 2 running each.
pytest.param(
"k8s.namespace.name",
{"gb-ns-a": 2, "gb-ns-b": 2},
{
"fixture": "statefulsets_groupby.jsonl",
"group_by": "k8s.namespace.name",
"filter": None,
"group_meta_keys": ["k8s.namespace.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ns-a": {"statefulSetName": "", "podCountsByPhase": _phase(running=2)},
"gb-ns-b": {"statefulSetName": "", "podCountsByPhase": _phase(running=2)},
},
},
id="namespace",
),
# Default groupBy (no groupBy in request) => [k8s.statefulset.name,
# k8s.namespace.name, k8s.cluster.name] (module.go ListStatefulSets),
# response list. Same workload name must NOT collapse across namespaces OR
# clusters; the empty-cluster group (k8s.cluster.name label absent on the
# source pods) must appear as its own row with real metrics, not be dropped.
# Single pod per group => SpaceAggregationSum == Avg == seeded value.
# Fails on the pre-cluster default (name+ns) — the three ns-x groups would
# collapse into one summed row.
pytest.param(
{
"fixture": "statefulsets_same_name_across_ns_and_clusters.jsonl",
"group_by": None,
"filter": "k8s.statefulset.name = 'dup-ss'",
"group_meta_keys": ["k8s.statefulset.name", "k8s.namespace.name", "k8s.cluster.name"],
"expected_type": "list",
"groups": {
("dup-ss", "ns-x", "cluster-a"): {
"statefulSetName": "dup-ss",
"statefulSetCPU": 0.3,
"statefulSetCPURequest": 0.6,
"statefulSetCPULimit": 0.7,
"statefulSetMemory": 100000000.0,
"statefulSetMemoryRequest": 0.6,
"statefulSetMemoryLimit": 0.7,
"desiredPods": 2,
"currentPods": 2,
"podCountsByPhase": _phase(running=1),
},
("dup-ss", "ns-y", "cluster-a"): {
"statefulSetName": "dup-ss",
"statefulSetCPU": 0.9,
"statefulSetCPURequest": 0.2,
"statefulSetCPULimit": 0.3,
"statefulSetMemory": 500000000.0,
"statefulSetMemoryRequest": 0.2,
"statefulSetMemoryLimit": 0.3,
"desiredPods": 3,
"currentPods": 1,
"podCountsByPhase": _phase(failed=1),
},
("dup-ss", "ns-x", "cluster-b"): {
"statefulSetName": "dup-ss",
"statefulSetCPU": 0.5,
"statefulSetCPURequest": 0.4,
"statefulSetCPULimit": 0.5,
"statefulSetMemory": 300000000.0,
"statefulSetMemoryRequest": 0.4,
"statefulSetMemoryLimit": 0.5,
"desiredPods": 4,
"currentPods": 4,
"podCountsByPhase": _phase(running=1),
},
# empty-cluster group: k8s.cluster.name label absent on the source pods.
("dup-ss", "ns-x", ""): {
"statefulSetName": "dup-ss",
"statefulSetCPU": 0.1,
"statefulSetCPURequest": 0.1,
"statefulSetCPULimit": 0.1,
"statefulSetMemory": 200000000.0,
"statefulSetMemoryRequest": 0.1,
"statefulSetMemoryLimit": 0.1,
"desiredPods": 1,
"currentPods": 0,
"podCountsByPhase": _phase(pending=1),
},
},
},
id="default_disambiguates_ns_and_cluster",
),
],
)
def test_statefulsets_groupby(
@@ -448,55 +553,63 @@ def test_statefulsets_groupby(
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
group_key: str,
expected_running: dict,
scenario: dict,
) -> None:
"""groupBy returns one record per distinct group with aggregated pod-phase
counts. statefulSetName is populated only when grouping by k8s.statefulset.name
(statefulsets.go:28-31 list-vs-grouped branch); meta surfaces the groupBy key."""
"""groupBy determines row identity. Explicit groupBy returns one grouped_list
record per distinct group (statefulSetName populated only when grouping by
k8s.statefulset.name; statefulsets.go:28-31). With no groupBy the default is
[k8s.statefulset.name, k8s.namespace.name] (module.go ListStatefulSets), so
same-named statefulsets across namespaces stay as separate, un-collapsed list
rows. meta always surfaces the grouping key(s)."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/statefulsets_groupby.jsonl"),
get_testdata_file_path(f"inframonitoring/{scenario['fixture']}"),
base_time=now - timedelta(minutes=4),
)
)
body: dict = {
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
}
if scenario["group_by"] is not None:
body["groupBy"] = [{"name": scenario["group_by"], "fieldDataType": "string", "fieldContext": "resource"}]
if scenario["filter"] is not None:
body["filter"] = {"expression": scenario["filter"]}
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
response = requests.post(
signoz.self.host_configs["8080"].get(ENDPOINT),
headers={"authorization": f"Bearer {token}"},
json={
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
"groupBy": [
{
"name": group_key,
"fieldDataType": "string",
"fieldContext": "resource",
}
],
},
json=body,
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == len(expected_running)
is_ss_group = group_key == "k8s.statefulset.name"
group_of = lambda r: r["statefulSetName"] if is_ss_group else r["meta"][group_key] # noqa: E731 # pylint: disable=unnecessary-lambda-assignment
by_group = {group_of(r): r for r in data["records"]}
assert set(by_group.keys()) == set(expected_running.keys())
groups = scenario["groups"]
meta_keys = scenario["group_meta_keys"]
assert data["type"] == scenario["expected_type"]
assert data["total"] == len(groups)
for group, running in expected_running.items():
rec = by_group[group]
# statefulSetName populated per statefulset when grouping by it, empty otherwise.
assert rec["statefulSetName"] == (group if is_ss_group else "")
assert rec["podCountsByPhase"]["running"] == running
for other in ("pending", "succeeded", "failed", "unknown"):
assert rec["podCountsByPhase"][other] == 0
assert group_key in rec["meta"], rec["meta"]
def _gid(rec: dict):
vals = [rec["meta"][k] for k in meta_keys]
return vals[0] if len(vals) == 1 else tuple(vals)
by_group = {_gid(r): r for r in data["records"]}
assert set(by_group.keys()) == set(groups.keys())
for gid, exp in groups.items():
rec = by_group[gid]
for k in meta_keys:
assert k in rec["meta"], rec["meta"]
for field, val in exp.items():
if field in _GROUPBY_FLOAT_FIELDS:
assert compare_values(rec[field], val, 1e-6), f"{gid}.{field}: got {rec[field]}, expected {val}"
else:
assert rec[field] == val, f"{gid}.{field}: got {rec[field]}, expected {val}"
def test_statefulsets_pagination(

View File

@@ -480,23 +480,135 @@ def test_jobs_base_filter_drops_non_job_pods(
assert all(r["jobName"] != "" for r in data["records"])
# Float record fields compared with tolerance; everything else compared with ==.
_GROUPBY_FLOAT_FIELDS = {
"jobCPU",
"jobCPURequest",
"jobCPULimit",
"jobMemory",
"jobMemoryRequest",
"jobMemoryLimit",
}
def _phase(pending=0, running=0, succeeded=0, failed=0, unknown=0) -> dict:
return {"pending": pending, "running": running, "succeeded": succeeded, "failed": failed, "unknown": unknown}
@pytest.mark.parametrize(
"group_key,expected_running",
"scenario",
[
# groupBy=[k8s.job.name]: one record per job, jobName populated
# (jobs.go:28-31). 1 running pod each.
# Explicit groupBy=[k8s.job.name]: one record per job, jobName populated
# (jobs.go:28-31), response grouped_list. 1 running pod each.
pytest.param(
"k8s.job.name",
{"gb-job-a1": 1, "gb-job-a2": 1, "gb-job-b1": 1, "gb-job-b2": 1},
{
"fixture": "jobs_groupby.jsonl",
"group_by": "k8s.job.name",
"filter": None,
"group_meta_keys": ["k8s.job.name"],
"expected_type": "grouped_list",
"groups": {
"gb-job-a1": {"jobName": "gb-job-a1", "podCountsByPhase": _phase(running=1)},
"gb-job-a2": {"jobName": "gb-job-a2", "podCountsByPhase": _phase(running=1)},
"gb-job-b1": {"jobName": "gb-job-b1", "podCountsByPhase": _phase(running=1)},
"gb-job-b2": {"jobName": "gb-job-b2", "podCountsByPhase": _phase(running=1)},
},
},
id="job_name",
),
# groupBy=[k8s.namespace.name]: aggregated across each namespace's 2
# jobs, jobName cleared. 2 x 1 = 2 running pods each.
# Explicit groupBy=[k8s.namespace.name]: aggregated across each namespace's
# 2 jobs, jobName cleared, response grouped_list. 2 running each.
pytest.param(
"k8s.namespace.name",
{"gb-ns-a": 2, "gb-ns-b": 2},
{
"fixture": "jobs_groupby.jsonl",
"group_by": "k8s.namespace.name",
"filter": None,
"group_meta_keys": ["k8s.namespace.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ns-a": {"jobName": "", "podCountsByPhase": _phase(running=2)},
"gb-ns-b": {"jobName": "", "podCountsByPhase": _phase(running=2)},
},
},
id="namespace",
),
# Default groupBy (no groupBy in request) => [k8s.job.name,
# k8s.namespace.name, k8s.cluster.name] (module.go ListJobs), response
# list. Same workload name must NOT collapse across namespaces OR clusters;
# the empty-cluster group (k8s.cluster.name label absent on the source pods)
# must appear as its own row with real metrics, not be dropped. Single pod
# per group => SpaceAggregationSum == Avg == seeded value. Fails on the
# pre-cluster default (name+ns) — the three ns-x groups would collapse into
# one summed row.
pytest.param(
{
"fixture": "jobs_same_name_across_ns_and_clusters.jsonl",
"group_by": None,
"filter": "k8s.job.name = 'dup-job'",
"group_meta_keys": ["k8s.job.name", "k8s.namespace.name", "k8s.cluster.name"],
"expected_type": "list",
"groups": {
("dup-job", "ns-x", "cluster-a"): {
"jobName": "dup-job",
"jobCPU": 0.3,
"jobCPURequest": 0.6,
"jobCPULimit": 0.7,
"jobMemory": 100000000.0,
"jobMemoryRequest": 0.6,
"jobMemoryLimit": 0.7,
"desiredSuccessfulPods": 2,
"activePods": 2,
"failedPods": 0,
"successfulPods": 0,
"podCountsByPhase": _phase(running=1),
},
("dup-job", "ns-y", "cluster-a"): {
"jobName": "dup-job",
"jobCPU": 0.9,
"jobCPURequest": 0.2,
"jobCPULimit": 0.3,
"jobMemory": 500000000.0,
"jobMemoryRequest": 0.2,
"jobMemoryLimit": 0.3,
"desiredSuccessfulPods": 3,
"activePods": 1,
"failedPods": 1,
"successfulPods": 1,
"podCountsByPhase": _phase(failed=1),
},
("dup-job", "ns-x", "cluster-b"): {
"jobName": "dup-job",
"jobCPU": 0.5,
"jobCPURequest": 0.4,
"jobCPULimit": 0.5,
"jobMemory": 300000000.0,
"jobMemoryRequest": 0.4,
"jobMemoryLimit": 0.5,
"desiredSuccessfulPods": 4,
"activePods": 2,
"failedPods": 1,
"successfulPods": 1,
"podCountsByPhase": _phase(running=1),
},
# empty-cluster group: k8s.cluster.name label absent on the source pods.
("dup-job", "ns-x", ""): {
"jobName": "dup-job",
"jobCPU": 0.1,
"jobCPURequest": 0.1,
"jobCPULimit": 0.1,
"jobMemory": 200000000.0,
"jobMemoryRequest": 0.1,
"jobMemoryLimit": 0.1,
"desiredSuccessfulPods": 1,
"activePods": 1,
"failedPods": 0,
"successfulPods": 0,
"podCountsByPhase": _phase(pending=1),
},
},
},
id="default_disambiguates_ns_and_cluster",
),
],
)
def test_jobs_groupby(
@@ -504,55 +616,62 @@ def test_jobs_groupby(
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
group_key: str,
expected_running: dict,
scenario: dict,
) -> None:
"""groupBy returns one record per distinct group with aggregated pod-phase
counts. jobName is populated only when grouping by k8s.job.name
(jobs.go:28-31 list-vs-grouped branch); meta surfaces the groupBy key."""
"""groupBy determines row identity. Explicit groupBy returns one grouped_list
record per distinct group (jobName populated only when grouping by k8s.job.name;
jobs.go:28-31). With no groupBy the default is [k8s.job.name, k8s.namespace.name]
(module.go ListJobs), so same-named jobs across namespaces stay as separate,
un-collapsed list rows. meta always surfaces the grouping key(s)."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/jobs_groupby.jsonl"),
get_testdata_file_path(f"inframonitoring/{scenario['fixture']}"),
base_time=now - timedelta(minutes=4),
)
)
body: dict = {
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
}
if scenario["group_by"] is not None:
body["groupBy"] = [{"name": scenario["group_by"], "fieldDataType": "string", "fieldContext": "resource"}]
if scenario["filter"] is not None:
body["filter"] = {"expression": scenario["filter"]}
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
response = requests.post(
signoz.self.host_configs["8080"].get(ENDPOINT),
headers={"authorization": f"Bearer {token}"},
json={
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
"groupBy": [
{
"name": group_key,
"fieldDataType": "string",
"fieldContext": "resource",
}
],
},
json=body,
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == len(expected_running)
is_job_group = group_key == "k8s.job.name"
group_of = lambda r: r["jobName"] if is_job_group else r["meta"][group_key] # noqa: E731 # pylint: disable=unnecessary-lambda-assignment
by_group = {group_of(r): r for r in data["records"]}
assert set(by_group.keys()) == set(expected_running.keys())
groups = scenario["groups"]
meta_keys = scenario["group_meta_keys"]
assert data["type"] == scenario["expected_type"]
assert data["total"] == len(groups)
for group, running in expected_running.items():
rec = by_group[group]
# jobName populated per job when grouping by it, empty otherwise.
assert rec["jobName"] == (group if is_job_group else "")
assert rec["podCountsByPhase"]["running"] == running
for other in ("pending", "succeeded", "failed", "unknown"):
assert rec["podCountsByPhase"][other] == 0
assert group_key in rec["meta"], rec["meta"]
def _gid(rec: dict):
vals = [rec["meta"][k] for k in meta_keys]
return vals[0] if len(vals) == 1 else tuple(vals)
by_group = {_gid(r): r for r in data["records"]}
assert set(by_group.keys()) == set(groups.keys())
for gid, exp in groups.items():
rec = by_group[gid]
for k in meta_keys:
assert k in rec["meta"], rec["meta"]
for field, val in exp.items():
if field in _GROUPBY_FLOAT_FIELDS:
assert compare_values(rec[field], val, 1e-6), f"{gid}.{field}: got {rec[field]}, expected {val}"
else:
assert rec[field] == val, f"{gid}.{field}: got {rec[field]}, expected {val}"
def test_jobs_pagination(

View File

@@ -425,23 +425,128 @@ def test_daemonsets_base_filter_drops_non_daemonset_pods(
assert all(r["daemonSetName"] != "" for r in data["records"])
# Float record fields compared with tolerance; everything else compared with ==.
_GROUPBY_FLOAT_FIELDS = {
"daemonSetCPU",
"daemonSetCPURequest",
"daemonSetCPULimit",
"daemonSetMemory",
"daemonSetMemoryRequest",
"daemonSetMemoryLimit",
}
def _phase(pending=0, running=0, succeeded=0, failed=0, unknown=0) -> dict:
return {"pending": pending, "running": running, "succeeded": succeeded, "failed": failed, "unknown": unknown}
@pytest.mark.parametrize(
"group_key,expected_running",
"scenario",
[
# groupBy=[k8s.daemonset.name]: one record per daemonset,
# daemonSetName populated (daemonsets.go:28-31). 1 running pod each.
# Explicit groupBy=[k8s.daemonset.name]: one record per daemonset,
# daemonSetName populated (daemonsets.go:28-31), response grouped_list.
# 1 running pod each.
pytest.param(
"k8s.daemonset.name",
{"gb-ds-a1": 1, "gb-ds-a2": 1, "gb-ds-b1": 1, "gb-ds-b2": 1},
{
"fixture": "daemonsets_groupby.jsonl",
"group_by": "k8s.daemonset.name",
"filter": None,
"group_meta_keys": ["k8s.daemonset.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ds-a1": {"daemonSetName": "gb-ds-a1", "podCountsByPhase": _phase(running=1)},
"gb-ds-a2": {"daemonSetName": "gb-ds-a2", "podCountsByPhase": _phase(running=1)},
"gb-ds-b1": {"daemonSetName": "gb-ds-b1", "podCountsByPhase": _phase(running=1)},
"gb-ds-b2": {"daemonSetName": "gb-ds-b2", "podCountsByPhase": _phase(running=1)},
},
},
id="daemonset_name",
),
# groupBy=[k8s.namespace.name]: aggregated across each namespace's 2
# daemonsets, daemonSetName cleared. 2 x 1 = 2 running pods each.
# Explicit groupBy=[k8s.namespace.name]: aggregated across each namespace's
# 2 daemonsets, daemonSetName cleared, response grouped_list. 2 running each.
pytest.param(
"k8s.namespace.name",
{"gb-ns-a": 2, "gb-ns-b": 2},
{
"fixture": "daemonsets_groupby.jsonl",
"group_by": "k8s.namespace.name",
"filter": None,
"group_meta_keys": ["k8s.namespace.name"],
"expected_type": "grouped_list",
"groups": {
"gb-ns-a": {"daemonSetName": "", "podCountsByPhase": _phase(running=2)},
"gb-ns-b": {"daemonSetName": "", "podCountsByPhase": _phase(running=2)},
},
},
id="namespace",
),
# Default groupBy (no groupBy in request) => [k8s.daemonset.name,
# k8s.namespace.name, k8s.cluster.name] (module.go ListDaemonSets),
# response list. Same workload name must NOT collapse across namespaces OR
# clusters; the empty-cluster group (k8s.cluster.name label absent on the
# source pods) must appear as its own row with real metrics, not be dropped.
# Single pod per group => SpaceAggregationSum == Avg == seeded value.
# Fails on the pre-cluster default (name+ns) — the three ns-x groups would
# collapse into one summed row.
pytest.param(
{
"fixture": "daemonsets_same_name_across_ns_and_clusters.jsonl",
"group_by": None,
"filter": "k8s.daemonset.name = 'dup-ds'",
"group_meta_keys": ["k8s.daemonset.name", "k8s.namespace.name", "k8s.cluster.name"],
"expected_type": "list",
"groups": {
("dup-ds", "ns-x", "cluster-a"): {
"daemonSetName": "dup-ds",
"daemonSetCPU": 0.3,
"daemonSetCPURequest": 0.6,
"daemonSetCPULimit": 0.7,
"daemonSetMemory": 100000000.0,
"daemonSetMemoryRequest": 0.6,
"daemonSetMemoryLimit": 0.7,
"desiredNodes": 2,
"currentNodes": 2,
"podCountsByPhase": _phase(running=1),
},
("dup-ds", "ns-y", "cluster-a"): {
"daemonSetName": "dup-ds",
"daemonSetCPU": 0.9,
"daemonSetCPURequest": 0.2,
"daemonSetCPULimit": 0.3,
"daemonSetMemory": 500000000.0,
"daemonSetMemoryRequest": 0.2,
"daemonSetMemoryLimit": 0.3,
"desiredNodes": 3,
"currentNodes": 1,
"podCountsByPhase": _phase(failed=1),
},
("dup-ds", "ns-x", "cluster-b"): {
"daemonSetName": "dup-ds",
"daemonSetCPU": 0.5,
"daemonSetCPURequest": 0.4,
"daemonSetCPULimit": 0.5,
"daemonSetMemory": 300000000.0,
"daemonSetMemoryRequest": 0.4,
"daemonSetMemoryLimit": 0.5,
"desiredNodes": 4,
"currentNodes": 4,
"podCountsByPhase": _phase(running=1),
},
# empty-cluster group: k8s.cluster.name label absent on the source pods.
("dup-ds", "ns-x", ""): {
"daemonSetName": "dup-ds",
"daemonSetCPU": 0.1,
"daemonSetCPURequest": 0.1,
"daemonSetCPULimit": 0.1,
"daemonSetMemory": 200000000.0,
"daemonSetMemoryRequest": 0.1,
"daemonSetMemoryLimit": 0.1,
"desiredNodes": 1,
"currentNodes": 0,
"podCountsByPhase": _phase(pending=1),
},
},
},
id="default_disambiguates_ns_and_cluster",
),
],
)
def test_daemonsets_groupby(
@@ -449,55 +554,63 @@ def test_daemonsets_groupby(
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
group_key: str,
expected_running: dict,
scenario: dict,
) -> None:
"""groupBy returns one record per distinct group with aggregated pod-phase
counts. daemonSetName is populated only when grouping by k8s.daemonset.name
(daemonsets.go:28-31 list-vs-grouped branch); meta surfaces the groupBy key."""
"""groupBy determines row identity. Explicit groupBy returns one grouped_list
record per distinct group (daemonSetName populated only when grouping by
k8s.daemonset.name; daemonsets.go:28-31). With no groupBy the default is
[k8s.daemonset.name, k8s.namespace.name] (module.go ListDaemonSets), so
same-named daemonsets across namespaces stay as separate, un-collapsed list
rows. meta always surfaces the grouping key(s)."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_groupby.jsonl"),
get_testdata_file_path(f"inframonitoring/{scenario['fixture']}"),
base_time=now - timedelta(minutes=4),
)
)
body: dict = {
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
}
if scenario["group_by"] is not None:
body["groupBy"] = [{"name": scenario["group_by"], "fieldDataType": "string", "fieldContext": "resource"}]
if scenario["filter"] is not None:
body["filter"] = {"expression": scenario["filter"]}
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
response = requests.post(
signoz.self.host_configs["8080"].get(ENDPOINT),
headers={"authorization": f"Bearer {token}"},
json={
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
"groupBy": [
{
"name": group_key,
"fieldDataType": "string",
"fieldContext": "resource",
}
],
},
json=body,
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == len(expected_running)
is_ds_group = group_key == "k8s.daemonset.name"
group_of = lambda r: r["daemonSetName"] if is_ds_group else r["meta"][group_key] # noqa: E731 # pylint: disable=unnecessary-lambda-assignment
by_group = {group_of(r): r for r in data["records"]}
assert set(by_group.keys()) == set(expected_running.keys())
groups = scenario["groups"]
meta_keys = scenario["group_meta_keys"]
assert data["type"] == scenario["expected_type"]
assert data["total"] == len(groups)
for group, running in expected_running.items():
rec = by_group[group]
# daemonSetName populated per daemonset when grouping by it, empty otherwise.
assert rec["daemonSetName"] == (group if is_ds_group else "")
assert rec["podCountsByPhase"]["running"] == running
for other in ("pending", "succeeded", "failed", "unknown"):
assert rec["podCountsByPhase"][other] == 0
assert group_key in rec["meta"], rec["meta"]
def _gid(rec: dict):
vals = [rec["meta"][k] for k in meta_keys]
return vals[0] if len(vals) == 1 else tuple(vals)
by_group = {_gid(r): r for r in data["records"]}
assert set(by_group.keys()) == set(groups.keys())
for gid, exp in groups.items():
rec = by_group[gid]
for k in meta_keys:
assert k in rec["meta"], rec["meta"]
for field, val in exp.items():
if field in _GROUPBY_FLOAT_FIELDS:
assert compare_values(rec[field], val, 1e-6), f"{gid}.{field}: got {rec[field]}, expected {val}"
else:
assert rec[field] == val, f"{gid}.{field}: got {rec[field]}, expected {val}"
def test_daemonsets_pagination(