Compare commits

..

5 Commits

Author SHA1 Message Date
Naman Verma
845c88ec45 Merge branch 'main' into nv/schema-changes 2026-06-15 16:55:36 +05:30
Ashwin Bhatkal
e206625e5f feat(dashboard-v2): public dashboard settings section (#11696)
* feat(dashboard-v2): add public dashboard settings section

Add a self-contained Public Dashboard settings section for the V2 dashboard
drawer, reusing the existing /dashboards/{id}/public endpoint via the generated
client (useGetPublicDashboard / useCreatePublicDashboard /
useUpdatePublicDashboard / useDeletePublicDashboard).

Broken into small components: a usePublicDashboard hook owning the query, the
create/update/delete mutations and the time-range form state; plus presentational
status, settings-form, URL, callout and actions pieces. Publishing a dashboard
exposes a shareable URL and lets the viewer default time range be configured.

* feat(dashboard-v2): wire public dashboard tab in settings drawer

Render the Public Dashboard section in the Publish tab in place of the
placeholder, and drop the now-unused SettingsTabPlaceholder util (the Publish tab
was its last consumer).

* fix: format failure
2026-06-15 10:59:56 +00:00
Naman Verma
9b53561c31 fix: change schema properties based on UI integration review 2026-06-15 15:37:29 +05:30
Nikhil Mantri
4f3b7647d3 feat(infra-monitoring): v2 daemonsets integration tests (#11442)
* chore: updated logic and use centralized function in the module

* chore: filter metric groups

* chore: filter metric groups

* chore: formula correction

* chore: added step flooring note

* chore: comment correction

* chore: comment correction

* chore: removed function

* chore: renamed variables

* chore: added happy test

* chore: added test 2 for accuracy and test 3 for missing metrics check

* chore: added filter test 4

* chore: added 5th test for filterByStatus

* chore: added group by tests

* chore: pagination test added

* chore: added validation tests

* chore: added auth test

* chore: added all tests

* chore: fix for surfacing meta for pods custom group by

* chore: added nodes integration test suite

* chore: namespaces integration tests

* ci: register inframonitoring suite + ruff format 01_hosts

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: added integration tests for clusters

* chore: formatting changed

* chore: formatting changed

* chore: formatting changed

* chore: added volumes integration tests

* chore: added deployments

* chore: added tests

* chore: added integration tests for jobs api

* chore: added integration tests for v2 daemonsets api

* chore: added order by host.name test

* refactor(infra-monitoring): address review comments on hosts integration tests

- inline _post helper at call sites
- combine filter operator tests into parametrized test_hosts_filter
- combine bad attr/grammar tests into parametrized test_hosts_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_hosts_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align pods integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_pods_filter
- combine bad attr/grammar tests into parametrized test_pods_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_pods_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align nodes integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_nodes_filter
- combine bad attr/grammar tests into parametrized test_nodes_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_nodes_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align namespaces integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_namespaces_filter
- combine bad attr/grammar tests into parametrized test_namespaces_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_namespaces_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align clusters integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_clusters_filter
- combine bad attr/grammar tests into parametrized test_clusters_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_clusters_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align volumes integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_volumes_filter
- combine bad attr/grammar tests into parametrized test_volumes_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_volumes_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align deployments integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_deployments_filter
- combine bad attr/grammar tests into parametrized test_deployments_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_deployments_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align statefulsets integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_statefulsets_filter
- combine bad attr/grammar tests into parametrized test_statefulsets_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_statefulsets_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align jobs integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_jobs_filter
- combine bad attr/grammar tests into parametrized test_jobs_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_jobs_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align daemonsets integration tests with review feedback

- inline _post helper at call sites
- combine filter operator tests into parametrized test_daemonsets_filter
- combine bad attr/grammar tests into parametrized test_daemonsets_filter_invalid
- convert orderby total-invariant nested loop to stacked parametrize
- drop redundant test_daemonsets_auth (auth covered globally)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine hosts groupby tests into parametrized test

- merge test_hosts_groupby_hostname + test_hosts_groupby_os_type into
  test_hosts_groupby parametrized on (dataset, group key, expected counts/values)
- preserves all assertions incl hostName populated-vs-empty branch coverage

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine hosts orderby tests into parametrized test

- merge total_invariant_across_orderby + orderby_correctness + orderby_by_host_name
  into test_hosts_orderby parametrized on (column, record_field) x direction
- each case asserts both the total/len invariant and sortedness; sortedness now
  covered for all metric columns, not just cpu
- single dataset (hosts_orderby.jsonl) + CONTAINS 'order-' guard on all cases

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine hosts pagination tests

- fold offset-beyond-total case into the test_hosts_pagination page walk
  (offset K+5 expects 0 records via max(0, min(limit, K-offset)); total
  invariant covers the beyond-total page's total == K)
- single seed instead of two

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): merge hosts happy_path into test_hosts_accuracy

- happy_path and value_accuracy datasets were structurally identical
  (same 4 metrics, same sample counts, 2 hosts); one test now asserts
  shape/contract + exact metric values in a single seed/request
- drop unused hosts_happy_path.jsonl

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine pods integration tests logically

- merge happy_path into test_pods_accuracy (datasets structurally identical);
  drop unused pods_happy_path.jsonl
- merge groupby namespace/deployment into parametrized test_pods_groupby
- merge orderby invariant + correctness + by-pod-name into test_pods_orderby
  ((column, record_field) x direction; sortedness now covered for all columns)
- fold offset-beyond-total into test_pods_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine nodes integration tests logically

- merge happy_path into test_nodes_accuracy; drop unused nodes_happy_path.jsonl
- merge orderby invariant + correctness + by-node-name into test_nodes_orderby
  ((column, record_field) x direction; sortedness now covered for all columns)
- fold offset-beyond-total into test_nodes_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine namespaces integration tests logically

- merge happy_path into test_namespaces_accuracy; drop unused namespaces_happy_path.jsonl
- merge orderby invariant + correctness + by-namespace-name into test_namespaces_orderby
- fold offset-beyond-total into test_namespaces_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine clusters integration tests logically

- merge happy_path into test_clusters_accuracy; drop unused clusters_happy_path.jsonl
- merge orderby invariant + correctness + by-cluster-name into test_clusters_orderby
- fold offset-beyond-total into test_clusters_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine volumes integration tests logically

- merge happy_path into test_volumes_accuracy; drop unused volumes_happy_path.jsonl
- merge orderby invariant + correctness + by-pvc-name into test_volumes_orderby
- fold offset-beyond-total into test_volumes_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine deployments integration tests logically

- merge happy_path into test_deployments_accuracy; drop unused deployments_happy_path.jsonl
- merge orderby invariant + correctness + by-deployment-name into test_deployments_orderby
- fold offset-beyond-total into test_deployments_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine statefulsets integration tests logically

- merge happy_path into test_statefulsets_accuracy; drop unused statefulsets_happy_path.jsonl
- merge orderby invariant + correctness + by-statefulset-name into test_statefulsets_orderby
- fold offset-beyond-total into test_statefulsets_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine jobs integration tests logically

- merge happy_path into test_jobs_accuracy; drop unused jobs_happy_path.jsonl
- merge orderby invariant + correctness + by-job-name into test_jobs_orderby
- fold offset-beyond-total into test_jobs_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): combine daemonsets integration tests logically

- merge happy_path into test_daemonsets_accuracy; drop unused daemonsets_happy_path.jsonl
- merge orderby invariant + correctness + by-daemonset-name into test_daemonsets_orderby
- fold offset-beyond-total into test_daemonsets_pagination page walk

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in hosts filter tests

- regenerate hosts_filter_dataset.jsonl so every host mirrors the acc-h1
  sample pattern from hosts_value_accuracy.jsonl (CI-proven expected values)
- test_hosts_filter now asserts cpu/memory/wait/load15/diskUsage per filtered
  record against FILTER_DATASET_EXPECTED (1e-9), proving filters don't
  distort aggregation

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): scope filter expected values inside test_hosts_filter

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in pods filter tests

- regenerate pods_filter_dataset.jsonl so every pod mirrors the acc-p1
  sample pattern from pods_value_accuracy.jsonl (CI-proven expected values)
- test_pods_filter now asserts the 6 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in nodes filter tests

- regenerate nodes_filter_dataset.jsonl so every node mirrors the acc-n1
  sample pattern from nodes_value_accuracy.jsonl (CI-proven expected values)
- test_nodes_filter now asserts the 4 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in namespaces filter tests

- regenerate namespaces_filter_dataset.jsonl so every namespace mirrors the
  acc-ns-1 sample pattern (2 pods) from namespaces_value_accuracy.jsonl
- test_namespaces_filter now asserts namespaceCPU/namespaceMemory per record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in clusters filter tests

- regenerate clusters_filter_dataset.jsonl so every cluster mirrors the
  acc-cluster-1 sample pattern (2 nodes) from clusters_value_accuracy.jsonl
- test_clusters_filter now asserts the 4 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in volumes filter tests

- regenerate volumes_filter_dataset.jsonl so every PVC mirrors the acc-pvc-1
  sample pattern from volumes_value_accuracy.jsonl (CI-proven expected values)
- test_volumes_filter now asserts all 6 volume fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in deployments filter tests

- regenerate deployments_filter_dataset.jsonl so every deployment mirrors the
  acc-dep-1 sample pattern (2 pods) from deployments_value_accuracy.jsonl
- test_deployments_filter now asserts the 6 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in statefulsets filter tests

- regenerate statefulsets_filter_dataset.jsonl so every statefulset mirrors
  the acc-ss-1 sample pattern (2 pods) from statefulsets_value_accuracy.jsonl
- test_statefulsets_filter now asserts the 6 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in jobs filter tests

- regenerate jobs_filter_dataset.jsonl so every job mirrors the acc-job-1
  sample pattern (2 pods) from jobs_value_accuracy.jsonl
- test_jobs_filter now asserts the 6 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(infra-monitoring): assert metric value accuracy in daemonsets filter tests

- regenerate daemonsets_filter_dataset.jsonl so every daemonset mirrors the
  acc-ds-1 sample pattern (2 pods) from daemonsets_value_accuracy.jsonl
- test_daemonsets_filter now asserts the 6 CPU/memory fields per filtered record

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align nodes groupby + pod-phase tests with structure

- merge pod_phase_counts_list_mode + _no_pods_on_node into parametrized
  test_nodes_pod_phase_counts ((dataset, node, filter, expected) cases)
- rename groupby_cluster -> test_nodes_groupby, parametrize over
  k8s.node.name + k8s.cluster.name; adds the node-name-in-groupBy branch
  (nodeName populated, condition derived) that hosts/pods both cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align namespaces groupby with structure

- rename groupby_cluster -> test_namespaces_groupby, parametrize over
  k8s.namespace.name + k8s.cluster.name; adds the namespace-name-in-groupBy
  branch (namespaceName populated) that hosts/pods/nodes all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align clusters groupby with structure

- rename groupby_cloud_provider -> test_clusters_groupby, parametrize over
  k8s.cluster.name + cloud.provider; adds the cluster-name-in-groupBy branch
  (clusterName populated) that hosts/pods/nodes/namespaces all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align volumes groupby with structure

- rename groupby_namespace -> test_volumes_groupby, parametrize over
  k8s.persistentvolumeclaim.name + k8s.namespace.name; adds the
  pvc-name-in-groupBy branch (persistentVolumeClaimName populated) that the
  other endpoints all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align deployments groupby with structure

- rename groupby_namespace -> test_deployments_groupby, parametrize over
  k8s.deployment.name + k8s.namespace.name; adds the deployment-name-in-groupBy
  branch (deploymentName populated) that the other endpoints all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align statefulsets groupby with structure

- rename groupby_namespace -> test_statefulsets_groupby, parametrize over
  k8s.statefulset.name + k8s.namespace.name; adds the statefulset-name-in-groupBy
  branch (statefulSetName populated) that the other endpoints all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align jobs groupby with structure

- rename groupby_namespace -> test_jobs_groupby, parametrize over
  k8s.job.name + k8s.namespace.name; adds the job-name-in-groupBy branch
  (jobName populated) that the other endpoints all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor(infra-monitoring): align daemonsets groupby with structure

- rename groupby_namespace -> test_daemonsets_groupby, parametrize over
  k8s.daemonset.name + k8s.namespace.name; adds the daemonset-name-in-groupBy
  branch (daemonSetName populated) that the other endpoints all cover

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 06:51:47 +00:00
Ashwin Bhatkal
76ab0f25c0 feat(dashboard-v2): consolidate dashboard detail header, toolbar & settings (#11713)
* feat(dashboard-v2): consolidate dashboard page header & breadcrumbs

Replace DashboardHeader/DashboardBreadcrumbs with a single DashboardPageHeader
(title + image + breadcrumbs) under components/DashboardPageHeader.

* feat(dashboard-v2): consolidate dashboard detail toolbar

Fold the old DashboardDescription (title/meta) into a DashboardPageToolbar with
DashboardInfo (inline-editable title, tags, public/lock badges), DashboardActions
and the settings drawer; drop the separate DashboardMeta/DashboardTitle pieces.

* feat(dashboard-v2): rename General settings to Overview with shared settings card

Rename the General settings tab to Overview, extract DashboardInfoForm and a
reusable SegmentedControl, and restructure the settings drawer tabs onto the
shared settings-card layout. Publish tab stays a placeholder.

* feat(dashboard-v2): wire consolidated header & toolbar into the container

Render DashboardPageHeader + DashboardPageToolbar from DashboardContainer and
drop the removed header/description wiring.
2026-06-15 05:34:53 +00:00
72 changed files with 3648 additions and 3149 deletions

View File

@@ -2769,9 +2769,16 @@ components:
type: string
nullable: true
type: object
mode:
$ref: '#/components/schemas/DashboardtypesLegendMode'
position:
$ref: '#/components/schemas/DashboardtypesLegendPosition'
type: object
DashboardtypesLegendMode:
enum:
- list
- table
type: string
DashboardtypesLegendPosition:
enum:
- bottom
@@ -3321,8 +3328,13 @@ components:
DashboardtypesSpanGaps:
properties:
fillLessThan:
description: The maximum gap size to connect when fillOnlyBelow is true.
Gaps larger than this duration are left disconnected.
type: string
fillOnlyBelow:
description: Controls whether lines connect across null values. When false
(default), all gaps are connected. When true, only gaps smaller than fillLessThan
are connected.
type: boolean
type: object
DashboardtypesStorableDashboardData:
@@ -3389,7 +3401,6 @@ components:
required:
- value
- color
- label
type: object
DashboardtypesTimePreference:
enum:

View File

@@ -3208,6 +3208,10 @@ export interface DashboardtypesPanelFormattingDTO {
unit?: string;
}
export enum DashboardtypesLegendModeDTO {
list = 'list',
table = 'table',
}
export enum DashboardtypesLegendPositionDTO {
bottom = 'bottom',
right = 'right',
@@ -3227,6 +3231,7 @@ export interface DashboardtypesLegendDTO {
* @type object,null
*/
customColors?: DashboardtypesLegendDTOCustomColors;
mode?: DashboardtypesLegendModeDTO;
position?: DashboardtypesLegendPositionDTO;
}
@@ -3238,7 +3243,7 @@ export interface DashboardtypesThresholdWithLabelDTO {
/**
* @type string
*/
label: string;
label?: string;
/**
* @type string
*/
@@ -3903,10 +3908,12 @@ export enum DashboardtypesLineStyleDTO {
export interface DashboardtypesSpanGapsDTO {
/**
* @type string
* @description The maximum gap size to connect when fillOnlyBelow is true. Gaps larger than this duration are left disconnected.
*/
fillLessThan?: string;
/**
* @type boolean
* @description Controls whether lines connect across null values. When false (default), all gaps are connected. When true, only gaps smaller than fillLessThan are connected.
*/
fillOnlyBelow?: boolean;
}

View File

@@ -1,210 +0,0 @@
.dashboardDescriptionContainer {
box-shadow: none;
border: none;
background: unset;
color: var(--l2-foreground);
:global(.ant-card-body) {
padding: 0px;
}
.dashboardDetails {
display: flex;
justify-content: space-between;
gap: 8px;
padding: 16px 16px 0px 16px;
align-items: flex-start;
.leftSection {
display: flex;
align-items: center;
gap: 8px;
width: 45%;
height: 40px;
.dashboardImg {
height: 16px;
width: 16px;
}
.dashboardTitle {
color: var(--l1-foreground);
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 24px; /* 150% */
letter-spacing: -0.08px;
max-width: 80%;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.clickableTitle {
cursor: pointer;
}
.titleEdit {
display: flex;
align-items: center;
gap: 4px;
width: 100%;
min-width: 0;
}
.titleInput {
flex: 1;
min-width: 0;
max-width: 70%;
}
.titleEditActionButton {
--button-height: auto;
--button-padding: 4px;
flex-shrink: 0;
}
.titleSaveActionButton {
--button-border-color: var(--text-forest-700);
--button-outlined-foreground: var(--text-forest-700);
}
.publicDashboardIcon {
margin-right: 4px;
}
}
.rightSection {
display: flex;
width: 55%;
justify-content: flex-end;
flex-wrap: wrap;
align-items: center;
gap: 14px;
height: 40px;
.icons {
display: flex;
align-items: center;
width: 32px;
height: 34px;
padding: 6px;
justify-content: center;
border-radius: 2px;
border: 1px solid var(--l1-border);
background: var(--l3-background);
color: var(--l2-foreground);
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: 10px; /* 83.333% */
letter-spacing: 0.12px;
}
.icons:hover {
background-color: unset;
}
}
}
.dashboardTags {
display: flex;
gap: 6px;
padding: 16px 16px 0px 16px;
flex-wrap: wrap;
.tag {
display: flex;
padding: 4px 8px;
justify-content: center;
align-items: center;
border-radius: 20px;
border: 1px solid color-mix(in srgb, var(--bg-sienna-500) 20%, transparent);
background: color-mix(in srgb, var(--bg-sienna-500) 10%, transparent);
color: var(--bg-sienna-400);
text-align: center;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: 20px; /* 142.857% */
letter-spacing: -0.07px;
margin-inline-end: 0px;
}
}
.dashboardDescriptionSection {
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px; /* 157.143% */
letter-spacing: -0.07px;
padding: 20px 16px 0px 16px;
}
}
.dashboardSettings {
width: 191px;
height: 302px;
flex-shrink: 0;
:global(.ant-popover-inner) {
padding: 0px;
border-radius: 4px;
border: 1px solid var(--l1-border);
background: linear-gradient(
139deg,
color-mix(in srgb, var(--card) 80%, transparent) 0%,
color-mix(in srgb, var(--card) 90%, transparent) 98.68%
) !important;
box-shadow: 4px 10px 16px 2px rgba(0, 0, 0, 0.2);
backdrop-filter: blur(20px);
}
.menuContent {
display: flex;
flex-direction: column;
section {
display: flex;
flex-direction: column;
align-items: start;
button {
display: flex;
width: 100%;
height: unset;
padding: 8px;
align-items: center;
gap: 12px;
color: var(--l2-foreground);
font-family: Inter;
font-size: 13px;
font-style: normal;
font-weight: 400;
line-height: normal;
letter-spacing: 0.14px;
border-top: none;
}
}
.section1,
.section2 {
border-bottom: 1px solid var(--l1-border);
}
.deleteDashboard button {
color: var(--bg-cherry-400) !important;
}
}
}
.deleteModal :global(.ant-modal-confirm-body) {
align-items: center;
}

View File

@@ -1,32 +0,0 @@
import { Badge } from '@signozhq/ui/badge';
import { isEmpty } from 'lodash-es';
import styles from '../DashboardDescription.module.scss';
interface DashboardMetaProps {
tags: string[];
description: string;
}
function DashboardMeta({ tags, description }: DashboardMetaProps): JSX.Element {
return (
<>
{tags.length > 0 && (
<div className={styles.dashboardTags}>
{tags.map((tag) => (
<Badge key={tag} className={styles.tag}>
{tag}
</Badge>
))}
</div>
)}
{!isEmpty(description) && (
<section className={styles.dashboardDescriptionSection}>
{description}
</section>
)}
</>
);
}
export default DashboardMeta;

View File

@@ -1,116 +0,0 @@
import { KeyboardEvent } from 'react';
import { Check, Globe, LockKeyhole, X } from '@signozhq/icons';
import { Button } from '@signozhq/ui/button';
import { Input } from '@signozhq/ui/input';
import { TooltipSimple } from '@signozhq/ui/tooltip';
import { Typography } from '@signozhq/ui/typography';
import cx from 'classnames';
import styles from '../DashboardDescription.module.scss';
interface DashboardTitleProps {
title: string;
image: string;
isPublicDashboard: boolean;
isDashboardLocked: boolean;
isEditable: boolean;
isEditing: boolean;
draft: string;
onDraftChange: (value: string) => void;
onStartEdit: () => void;
onCommit: () => void;
onCancel: () => void;
}
function DashboardTitle({
title,
image,
isPublicDashboard,
isDashboardLocked,
isEditable,
isEditing,
draft,
onDraftChange,
onStartEdit,
onCommit,
onCancel,
}: DashboardTitleProps): JSX.Element {
const canEdit = isEditable && !isDashboardLocked;
const onKeyDown = (event: KeyboardEvent<HTMLInputElement>): void => {
if (event.key === 'Enter') {
event.preventDefault();
onCommit();
} else if (event.key === 'Escape') {
onCancel();
}
};
return (
<div className={styles.leftSection}>
<img src={image} alt="dashboard-img" className={styles.dashboardImg} />
{isEditing ? (
<div className={styles.titleEdit}>
<Input
autoFocus
value={draft}
testId="dashboard-title-input"
maxLength={120}
className={styles.titleInput}
onChange={(e): void => onDraftChange(e.target.value)}
onKeyDown={onKeyDown}
/>
<Button
type="button"
variant="outlined"
size="icon"
className={cx(styles.titleEditActionButton, styles.titleSaveActionButton)}
aria-label="Save title"
testId="dashboard-title-save"
onClick={onCommit}
>
<Check size={14} />
</Button>
<Button
type="button"
variant="outlined"
color="destructive"
size="icon"
className={styles.titleEditActionButton}
aria-label="Cancel title edit"
testId="dashboard-title-cancel"
onClick={onCancel}
>
<X size={14} />
</Button>
</div>
) : (
<TooltipSimple title={title.length > 30 ? title : ''}>
<Typography.Text
className={cx(styles.dashboardTitle, {
[styles.clickableTitle]: canEdit,
})}
data-testid="dashboard-title"
onClick={canEdit ? onStartEdit : undefined}
>
{title}
</Typography.Text>
</TooltipSimple>
)}
{isPublicDashboard && (
<TooltipSimple title="This dashboard is publicly accessible">
<Globe size={14} className={styles.publicDashboardIcon} />
</TooltipSimple>
)}
{isDashboardLocked && (
<TooltipSimple title="This dashboard is locked">
<LockKeyhole size={14} />
</TooltipSimple>
)}
</div>
);
}
export default DashboardTitle;

View File

@@ -0,0 +1,11 @@
.dashboardActionsContainer {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 12px;
}
.dashboardActionsSecondary {
display: flex;
gap: 12px;
}

View File

@@ -28,43 +28,40 @@ import { USER_ROLES } from 'types/roles';
import ConfirmDeleteDialog from '../../components/ConfirmDeleteDialog/ConfirmDeleteDialog';
import DashboardSettings from '../../DashboardSettings';
import SettingsDrawer from '../SettingsDrawer';
import styles from '../DashboardDescription.module.scss';
import styles from './DashboardActions.module.scss';
import { useDashboardStore } from '../../store/useDashboardStore';
interface DashboardActionsProps {
title: string;
dashboard: DashboardtypesGettableDashboardV2DTO;
handle: FullScreenHandle;
isDashboardLocked: boolean;
editDashboard: boolean;
isAuthor: boolean;
addPanelPermission: boolean;
onAddPanel: () => void;
onLockToggle: () => void;
onOpenRename: () => void;
}
function DashboardActions({
title,
dashboard,
handle,
isDashboardLocked,
editDashboard,
isAuthor,
addPanelPermission,
onAddPanel,
onLockToggle,
onOpenRename,
}: DashboardActionsProps): JSX.Element {
const canEdit = useDashboardStore((s) => s.isEditable);
const { user } = useAppContext();
const { t } = useTranslation(['dashboard', 'common']);
const id = dashboard.id ?? '';
const title = dashboard.spec?.display?.name ?? '';
const [isSettingsDrawerOpen, setIsSettingsDrawerOpen] =
useState<boolean>(false);
const [state, setCopy] = useCopyToClipboard();
const [isDeleteOpen, setIsDeleteOpen] = useState<boolean>(false);
const deleteDashboardMutation = useDeleteDashboard(id);
const deleteDashboardMutation = useDeleteDashboard(dashboard.id);
useEffect(() => {
if (state.error) {
@@ -103,7 +100,7 @@ function DashboardActions({
const menuItems = useMemo<MenuItem[]>(() => {
const editGroup: MenuItem[] = [];
if (!isDashboardLocked && editDashboard) {
if (canEdit) {
editGroup.push({
key: 'rename',
label: 'Rename',
@@ -159,7 +156,6 @@ function DashboardActions({
);
}, [
isDashboardLocked,
editDashboard,
isAuthor,
user.role,
dashboard.createdBy,
@@ -169,58 +165,60 @@ function DashboardActions({
exportJSON,
setCopy,
dashboardDataJSON,
canEdit,
]);
return (
<div className={styles.rightSection}>
<div className={styles.dashboardActionsContainer}>
<DateTimeSelectionV2 showAutoRefresh hideShareModal />
<DropdownMenuSimple menu={{ items: menuItems }}>
<Button
variant="ghost"
color="secondary"
size="icon"
prefix={<Ellipsis size={14} />}
className={styles.icons}
testId="options"
/>
</DropdownMenuSimple>
{!isDashboardLocked && editDashboard && (
<>
<div className={styles.dashboardActionsSecondary}>
<DropdownMenuSimple menu={{ items: menuItems }}>
<Button
variant="solid"
color="secondary"
prefix={<Configure size="md" />}
testId="show-drawer"
onClick={(): void => setIsSettingsDrawerOpen(true)}
size="icon"
prefix={<Ellipsis size="md" />}
testId="options"
/>
</DropdownMenuSimple>
{canEdit && (
<>
<Button
variant="solid"
color="secondary"
prefix={<Configure size="md" />}
testId="show-drawer"
onClick={(): void => setIsSettingsDrawerOpen(true)}
size="md"
>
Configure
</Button>
<SettingsDrawer
drawerTitle="Dashboard Configuration"
isOpen={isSettingsDrawerOpen}
onClose={(): void => setIsSettingsDrawerOpen(false)}
>
<DashboardSettings dashboard={dashboard} />
</SettingsDrawer>
</>
)}
{!isDashboardLocked && (
<Button
variant="solid"
color="primary"
onClick={onAddPanel}
prefix={<Plus size="md" />}
testId="add-panel-header"
size="md"
>
Configure
New Panel
</Button>
<SettingsDrawer
drawerTitle="Dashboard Configuration"
isOpen={isSettingsDrawerOpen}
onClose={(): void => setIsSettingsDrawerOpen(false)}
>
<DashboardSettings dashboard={dashboard} />
</SettingsDrawer>
</>
)}
{!isDashboardLocked && addPanelPermission && (
<Button
variant="solid"
color="primary"
onClick={onAddPanel}
prefix={<Plus size="md" />}
testId="add-panel-header"
size="md"
>
New Panel
</Button>
)}
)}
</div>
<ConfirmDeleteDialog
open={isDeleteOpen}
title={`Delete dashboard "${title}"?`}
description="This action cannot be undone."
title={`Delete dashboard"?`}
description={`Are you sure you want to delete this dashboard - "${title}"? This action cannot be undone.`}
isLoading={deleteDashboardMutation.isLoading}
onConfirm={handleConfirmDelete}
onClose={(): void => setIsDeleteOpen(false)}

View File

@@ -0,0 +1,61 @@
.dashboardInfo {
display: flex;
flex-direction: column;
gap: 8px;
width: 40%;
@media (min-width: 1280px) {
width: 30%;
}
}
.dashboardTitleContainer {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
}
.dashboardImage {
flex-shrink: 0;
}
.dashboardTitle {
flex: 1;
min-width: 0;
max-width: fit-content;
color: var(--l1-foreground);
font-size: 18px;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dashboardTitleHover {
cursor: text !important;
}
.dashboardTitleEditor {
display: flex;
align-items: center;
gap: 4px;
flex: 1;
min-width: 0;
}
.dashboardTitleInput {
flex: 1;
min-width: 0;
}
.dashboardTitleActionButton {
flex-shrink: 0;
}
.dashboardTags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}

View File

@@ -0,0 +1,141 @@
import { KeyboardEvent } from 'react';
import { Check, Globe, LockKeyhole, X } from '@signozhq/icons';
import { Badge } from '@signozhq/ui/badge';
import { Button } from '@signozhq/ui/button';
import { Input } from '@signozhq/ui/input';
import { TooltipSimple } from '@signozhq/ui/tooltip';
import { Typography } from '@signozhq/ui/typography';
import cx from 'classnames';
import { isEmpty } from 'lodash-es';
import styles from './DashboardInfo.module.scss';
import { useDashboardStore } from '../../store/useDashboardStore';
interface DashboardInfoProps {
title: string;
image: string;
tags: string[];
description: string;
isPublicDashboard: boolean;
isDashboardLocked: boolean;
isEditing: boolean;
draft: string;
onDraftChange: (value: string) => void;
onStartEdit: () => void;
onCommit: () => void;
onCancel: () => void;
}
function DashboardInfo({
title,
image,
tags,
description,
isPublicDashboard,
isDashboardLocked,
isEditing,
draft,
onDraftChange,
onStartEdit,
onCommit,
onCancel,
}: DashboardInfoProps): JSX.Element {
const canEdit = useDashboardStore((s) => s.isEditable);
const hasTags = tags.length > 0;
const hasDescription = !isEmpty(description);
const onKeyDown = (event: KeyboardEvent<HTMLInputElement>): void => {
if (event.key === 'Enter') {
event.preventDefault();
onCommit();
} else if (event.key === 'Escape') {
onCancel();
}
};
return (
<div className={styles.dashboardInfo}>
<div className={styles.dashboardTitleContainer}>
<img src={image} alt={title} className={styles.dashboardImage} />
{isEditing ? (
<div className={styles.dashboardTitleEditor}>
<Input
autoFocus
value={draft}
testId="dashboard-title-input"
maxLength={120}
className={styles.dashboardTitleInput}
onChange={(e): void => onDraftChange(e.target.value)}
onKeyDown={onKeyDown}
/>
<Button
type="button"
variant="outlined"
color="primary"
size="icon"
className={styles.dashboardTitleActionButton}
aria-label="Save title"
testId="dashboard-title-save"
onClick={onCommit}
>
<Check size={14} />
</Button>
<Button
type="button"
variant="outlined"
color="secondary"
size="icon"
className={styles.dashboardTitleActionButton}
aria-label="Cancel title edit"
testId="dashboard-title-cancel"
onClick={onCancel}
>
<X size={14} />
</Button>
</div>
) : (
<TooltipSimple title={title}>
<Typography.Text
className={cx(styles.dashboardTitle, {
[styles.dashboardTitleHover]: canEdit,
})}
data-testid="dashboard-title"
onClick={canEdit ? onStartEdit : undefined}
>
{title}
</Typography.Text>
</TooltipSimple>
)}
{isPublicDashboard && (
<TooltipSimple title="This dashboard is publicly accessible">
<Globe size={14} />
</TooltipSimple>
)}
{isDashboardLocked && (
<TooltipSimple title="This dashboard is locked">
<LockKeyhole size={14} />
</TooltipSimple>
)}
</div>
{hasTags && (
<div className={styles.dashboardTags}>
{tags.map((tag) => (
<Badge key={tag} color="warning" variant="outline">
{tag}
</Badge>
))}
</div>
)}
{hasDescription && (
<Typography.Text color="muted">{description}</Typography.Text>
)}
</div>
);
}
export default DashboardInfo;

View File

@@ -0,0 +1,20 @@
.dashboardPageToolbarContainer {
position: sticky;
top: 0;
z-index: 10;
color: var(--l2-foreground);
background-color: var(--l1-background);
padding: 16px;
box-shadow: 0 2px 2px 0px var(--l2-border);
}
.dashboardPageToolbarSubContainer {
width: 100%;
}
.dashboardInfoWithActions {
display: flex;
align-items: flex-start;
justify-content: space-between;
width: 100%;
}

View File

@@ -1,6 +1,5 @@
import { useCallback, useMemo } from 'react';
import { FullScreenHandle } from 'react-full-screen';
import { Card } from 'antd';
import { toast } from '@signozhq/ui/sonner';
import logEvent from 'api/common/logEvent';
import {
@@ -13,34 +12,31 @@ import type {
DashboardtypesJSONPatchOperationDTO,
} from 'api/generated/services/sigNoz.schemas';
import { Base64Icons } from 'container/DashboardContainer/DashboardSettings/General/utils';
import useComponentPermission from 'hooks/useComponentPermission';
import { useAppContext } from 'providers/App/App';
import { usePanelTypeSelectionModalStore } from 'providers/Dashboard/helpers/panelTypeSelectionModalHelper';
import { useErrorModal } from 'providers/ErrorModalProvider';
import APIError from 'types/api/error';
import DashboardHeader from '../components/DashboardHeader/DashboardHeader';
import DashboardActions from './DashboardActions/DashboardActions';
import DashboardMeta from './DashboardMeta/DashboardMeta';
import DashboardTitle from './DashboardTitle/DashboardTitle';
import { useEditableTitle } from './DashboardTitle/useEditableTitle';
import DashboardInfo from './DashboardInfo/DashboardInfo';
import { useEditableTitle } from './DashboardInfo/useEditableTitle';
import styles from './DashboardDescription.module.scss';
import styles from './DashboardPageToolbar.module.scss';
interface DashboardDescriptionProps {
interface DashboardPageToolbarProps {
dashboard: DashboardtypesGettableDashboardV2DTO;
handle: FullScreenHandle;
refetch: () => void;
}
function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
function DashboardPageToolbar(props: DashboardPageToolbarProps): JSX.Element {
const { dashboard, handle, refetch } = props;
const id = dashboard.id;
const isDashboardLocked = !!dashboard.locked;
const title = dashboard.spec?.display?.name ?? '';
const description = dashboard.spec?.display?.description ?? '';
const title = dashboard.spec.display.name;
const description = dashboard.spec.display.description ?? '';
const image = dashboard.image || Base64Icons[0];
const tags = useMemo(
() =>
@@ -51,7 +47,6 @@ function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
);
const { user } = useAppContext();
const [editDashboard] = useComponentPermission(['edit_dashboard'], user.role);
const { showErrorModal } = useErrorModal();
const setIsPanelTypeSelectionModalOpen = usePanelTypeSelectionModalStore(
(s) => s.setIsPanelTypeSelectionModalOpen,
@@ -59,9 +54,6 @@ function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
const isAuthor =
!!user?.email && !!dashboard.createdBy && dashboard.createdBy === user.email;
const addPanelPermission = !isDashboardLocked;
// V2 public dashboard wiring lives separately; treat as not-public for chrome.
const isPublicDashboard = false;
const handleLockDashboardToggle = useCallback(async (): Promise<void> => {
if (!id) {
@@ -110,7 +102,7 @@ function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
onSave: onNameSave,
});
const onEmptyWidgetHandler = useCallback((): void => {
const onAddPanel = useCallback((): void => {
void logEvent('Dashboard Detail V2: Add new panel clicked', {
dashboardId: id,
});
@@ -118,15 +110,15 @@ function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
}, [id, setIsPanelTypeSelectionModalOpen]);
return (
<Card className={styles.dashboardDescriptionContainer}>
<DashboardHeader title={title} image={image} />
<section className={styles.dashboardDetails}>
<DashboardTitle
<section className={styles.dashboardPageToolbarContainer}>
<div className={styles.dashboardInfoWithActions}>
<DashboardInfo
title={title}
image={image}
isPublicDashboard={isPublicDashboard}
tags={tags}
description={description}
isPublicDashboard={false}
isDashboardLocked={isDashboardLocked}
isEditable={editDashboard}
isEditing={isEditing}
draft={draft}
onDraftChange={setDraft}
@@ -135,20 +127,18 @@ function DashboardDescription(props: DashboardDescriptionProps): JSX.Element {
onCancel={cancel}
/>
<DashboardActions
title={title}
dashboard={dashboard}
handle={handle}
isDashboardLocked={isDashboardLocked}
editDashboard={editDashboard}
isAuthor={isAuthor}
addPanelPermission={addPanelPermission}
onAddPanel={onEmptyWidgetHandler}
onAddPanel={onAddPanel}
onLockToggle={handleLockDashboardToggle}
onOpenRename={startEdit}
/>
</section>
<DashboardMeta tags={tags} description={description} />
</Card>
</div>
</section>
);
}
export default DashboardDescription;
export default DashboardPageToolbar;

View File

@@ -1,3 +1,8 @@
.tabsContent {
padding-left: 0 !important;
padding-right: 0 !important;
}
.placeholder {
padding: 24px;
}
@@ -9,3 +14,10 @@
line-height: 1;
padding-top: 4px;
}
// shared "settings card" wrapper, used by the dashboard-info form and cross-panel sync
.settingsCard {
padding: 24px 16px;
border-radius: 3px;
border: 1px solid var(--l2-border);
}

View File

@@ -1,85 +0,0 @@
import { Dispatch, SetStateAction } from 'react';
// eslint-disable-next-line signoz/no-antd-components -- TODO: migrate Select/Input to @signozhq/ui
import { Col, Input, Select, Space } from 'antd';
import { Typography } from '@signozhq/ui/typography';
import AddTags from 'container/DashboardContainer/DashboardSettings/General/AddBadges';
import { Base64Icons } from '../utils';
import styles from '../GeneralSettings.module.scss';
const { Option } = Select;
interface GeneralFormProps {
title: string;
description: string;
image: string;
tags: string[];
onTitleChange: (value: string) => void;
onDescriptionChange: (value: string) => void;
onImageChange: (value: string) => void;
onTagsChange: Dispatch<SetStateAction<string[]>>;
}
function GeneralForm({
title,
description,
image,
tags,
onTitleChange,
onDescriptionChange,
onImageChange,
onTagsChange,
}: GeneralFormProps): JSX.Element {
return (
<Col className={styles.overviewSettings}>
<Space direction="vertical" className={styles.formSpace}>
<div>
<Typography className={styles.dashboardName}>Dashboard Name</Typography>
<section className={styles.nameIconInput}>
<Select
defaultActiveFirstOption
data-testid="dashboard-image"
suffixIcon={null}
rootClassName={styles.dashboardImageInput}
value={image}
onChange={onImageChange}
>
{Base64Icons.map((icon) => (
<Option value={icon} key={icon}>
<img
src={icon}
alt="dashboard-icon"
className={styles.listItemImage}
/>
</Option>
))}
</Select>
<Input
data-testid="dashboard-name"
className={styles.dashboardNameInput}
value={title}
onChange={(e): void => onTitleChange(e.target.value)}
/>
</section>
</div>
<div>
<Typography className={styles.dashboardName}>Description</Typography>
<Input.TextArea
data-testid="dashboard-desc"
rows={6}
value={description}
className={styles.descriptionTextArea}
onChange={(e): void => onDescriptionChange(e.target.value)}
/>
</div>
<div>
<Typography className={styles.dashboardName}>Tags</Typography>
<AddTags tags={tags} setTags={onTagsChange} />
</div>
</Space>
</Col>
);
}
export default GeneralForm;

View File

@@ -1,238 +0,0 @@
.overviewContent {
display: flex;
flex-direction: column;
gap: 24px;
padding: 20px 16px;
}
.overviewSettings {
padding: 16px;
border-radius: 3px;
border: 1px solid var(--l1-border);
}
.crossPanelSyncGroup {
display: flex;
flex-direction: column;
gap: 16px;
}
.formSpace {
width: 100%;
display: flex;
flex-direction: column;
gap: 21px;
}
.crossPanelSyncSectionTitle {
color: var(--l1-foreground);
font-family: Inter;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.crossPanelSyncSectionHeader {
display: flex;
align-items: center;
gap: 6px;
align-self: flex-start;
}
.crossPanelSyncInfoIcon {
cursor: help;
color: var(--l3-foreground);
}
.crossPanelSyncTooltipContent {
display: flex;
flex-direction: column;
gap: 8px;
max-width: 300px;
}
.crossPanelSyncTooltipTitle {
font-size: 14px;
}
.crossPanelSyncTooltipDescription {
font-size: 12px;
line-height: 1.5;
}
.crossPanelSyncTooltipDocLink {
display: flex;
align-items: center;
gap: 4px;
color: var(--primary-background);
font-size: 12px;
margin-top: 4px;
}
.crossPanelSyncRow {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 16px;
& + & {
padding-top: 16px;
border-top: 1px solid var(--l1-border);
}
}
.crossPanelSyncInfo {
display: flex;
flex-direction: column;
gap: 4px;
}
.crossPanelSyncTitle {
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
font-weight: 400;
line-height: 20px;
}
.crossPanelSyncDescription {
color: var(--l3-foreground);
font-family: Inter;
font-size: 13px;
font-weight: 400;
line-height: 20px;
}
.nameIconInput {
display: flex;
}
.dashboardImageInput {
:global(.ant-select-selector) {
display: flex;
width: 32px;
height: 32px;
padding: 6px;
justify-content: center;
align-items: center;
border-radius: 2px 0px 0px 2px;
border: 1px solid var(--l1-border) !important;
background: var(--l3-background) !important;
:global(.ant-select-selection-item) {
display: flex;
align-items: center;
}
}
&:global(.ant-select-dropdown) {
padding: 0px !important;
}
:global(.ant-select-item) {
padding: 0px;
align-items: center;
justify-content: center;
:global(.ant-select-item-option-content) {
display: flex;
align-items: center;
justify-content: center;
}
}
}
.listItemImage {
height: 16px;
width: 16px;
}
.dashboardNameInput {
border-radius: 0px 2px 2px 0px;
border: 1px solid var(--l1-border);
background: var(--l3-background);
}
.dashboardName {
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px;
margin-bottom: 0.5rem;
}
.descriptionTextArea {
padding: 6px 6px 6px 8px;
border-radius: 2px;
border: 1px solid var(--l1-border);
background: var(--l3-background);
}
.overviewSettingsFooter {
display: flex;
justify-content: space-between;
align-items: center;
width: -webkit-fill-available;
padding: 12px 16px 12px 0px;
position: fixed;
bottom: 0;
height: 32px;
border-top: 1px solid var(--l1-border);
background: var(--l2-background);
}
.unsaved {
display: flex;
align-items: center;
gap: 8px;
}
.unsavedDot {
width: 6px;
height: 6px;
border-radius: 50px;
background: var(--primary-background);
box-shadow: 0px 0px 6px 0px
color-mix(in srgb, var(--primary-background) 40%, transparent);
}
.unsavedChanges {
color: var(--bg-robin-400);
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 24px;
letter-spacing: -0.07px;
}
.footerActionBtns {
display: flex;
gap: 8px;
}
.discardBtn {
display: flex;
align-items: center;
color: var(--l1-foreground);
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: 24px;
}
.saveBtn {
display: flex;
align-items: center;
margin: 0px !important;
color: var(--l1-foreground);
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: 24px;
}

View File

@@ -0,0 +1,86 @@
.crossPanelSyncGroup {
display: flex;
flex-direction: column;
gap: 20px;
}
.crossPanelSyncSectionHeader {
display: flex;
align-items: center;
gap: 6px;
}
.crossPanelsSyncSectionTitle {
color: var(--l1-foreground);
font-size: 14px;
font-weight: 500;
}
.crossPanelSyncInfoIcon {
cursor: help;
}
.crossPanelSyncTooltipContent {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px;
max-width: 200px;
}
.crossPanelSyncTooltipTitle {
font-size: 14px;
}
.crossPanelSyncTooltipDescription {
font-size: 12px;
}
.crossPanelSyncTooltipDocLink {
color: var(--primary-background);
font-size: 12px;
margin-top: 16px;
vertical-align: middle;
// typography override
--typography-text-display: inline-flex;
align-items: center;
gap: 5px;
}
.crossPanelSyncRow {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 16px;
& + & {
padding-top: 16px;
border-top: 1px dashed var(--l2-border);
}
}
.crossPanelSyncInfo {
display: flex;
flex: 1 1 80px;
min-width: 0;
flex-direction: column;
gap: 4px;
}
.crossPanelSyncTitle {
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
font-weight: 400;
line-height: 20px;
}
.crossPanelSyncDescription {
color: var(--l3-foreground);
font-family: Inter;
font-size: 13px;
font-weight: 400;
line-height: 20px;
}

View File

@@ -1,6 +1,5 @@
// eslint-disable-next-line signoz/no-antd-components -- TODO: migrate Radio to @signozhq/ui/radio-group
import { Col, Radio, Tooltip } from 'antd';
import { ExternalLink, SolidInfoCircle } from '@signozhq/icons';
import { TooltipSimple } from '@signozhq/ui/tooltip';
import { Typography } from '@signozhq/ui/typography';
import logEvent from 'api/common/logEvent';
import { Events } from 'constants/events';
@@ -13,7 +12,9 @@ import {
import { getAbsoluteUrl } from 'utils/basePath';
import cx from 'classnames';
import styles from '../GeneralSettings.module.scss';
import SegmentedControl from '../SegmentedControl/SegmentedControl';
import settingsStyles from '../../DashboardSettings.module.scss';
import styles from './CrossPanelSync.module.scss';
interface CrossPanelSyncProps {
dashboardId: string;
@@ -26,12 +27,15 @@ function CrossPanelSync({ dashboardId }: CrossPanelSyncProps): JSX.Element {
useSyncTooltipFilterMode(dashboardId);
return (
<Col className={cx(styles.overviewSettings, styles.crossPanelSyncGroup)}>
<div className={cx(settingsStyles.settingsCard, styles.crossPanelSyncGroup)}>
<div className={styles.crossPanelSyncSectionHeader}>
<Typography.Text className={styles.crossPanelSyncSectionTitle}>
<Typography.Text className={styles.crossPanelsSyncSectionTitle}>
Cross-Panel Sync
</Typography.Text>
<Tooltip
<TooltipSimple
side="top"
withPortal={false}
title={
<div className={styles.crossPanelSyncTooltipContent}>
<strong className={styles.crossPanelSyncTooltipTitle}>
@@ -40,7 +44,7 @@ function CrossPanelSync({ dashboardId }: CrossPanelSyncProps): JSX.Element {
<span className={styles.crossPanelSyncTooltipDescription}>
Sync crosshair and tooltip across all the dashboard panels
</span>
<a
<Typography.Link
href="https://signoz.io/docs/dashboards/interactivity/#cross-panel-sync"
target="_blank"
rel="noopener noreferrer"
@@ -48,15 +52,14 @@ function CrossPanelSync({ dashboardId }: CrossPanelSyncProps): JSX.Element {
>
Learn more
<ExternalLink size={12} />
</a>
</Typography.Link>
</div>
}
placement="top"
mouseEnterDelay={0.5}
>
<SolidInfoCircle size="md" className={styles.crossPanelSyncInfoIcon} />
</Tooltip>
</TooltipSimple>
</div>
<div className={styles.crossPanelSyncRow}>
<div className={styles.crossPanelSyncInfo}>
<Typography.Text className={styles.crossPanelSyncTitle}>
@@ -66,19 +69,18 @@ function CrossPanelSync({ dashboardId }: CrossPanelSyncProps): JSX.Element {
Sync crosshair and tooltip across all the dashboard panels
</Typography.Text>
</div>
<Radio.Group
<SegmentedControl
testId="cursor-sync-mode"
value={cursorSyncMode}
onChange={(e): void => {
setCursorSyncMode(e.target.value as DashboardCursorSync);
}}
>
<Radio.Button value={DashboardCursorSync.None}>No Sync</Radio.Button>
<Radio.Button value={DashboardCursorSync.Crosshair}>
Crosshair
</Radio.Button>
<Radio.Button value={DashboardCursorSync.Tooltip}>Tooltip</Radio.Button>
</Radio.Group>
onChange={setCursorSyncMode}
options={[
{ label: 'No Sync', value: DashboardCursorSync.None },
{ label: 'Crosshair', value: DashboardCursorSync.Crosshair },
{ label: 'Tooltip', value: DashboardCursorSync.Tooltip },
]}
/>
</div>
{cursorSyncMode === DashboardCursorSync.Tooltip && (
<div className={styles.crossPanelSyncRow}>
<div className={styles.crossPanelSyncInfo}>
@@ -90,24 +92,25 @@ function CrossPanelSync({ dashboardId }: CrossPanelSyncProps): JSX.Element {
matching ones highlighted
</Typography.Text>
</div>
<Radio.Group
<SegmentedControl
testId="sync-tooltip-filter-mode"
value={syncTooltipFilterMode}
onChange={(e): void => {
onChange={(value): void => {
void logEvent(Events.TOOLTIP_SYNC_MODE_CHANGED, {
path: getAbsoluteUrl(window.location.pathname),
mode: e.target.value,
mode: value,
});
setSyncTooltipFilterMode(e.target.value as SyncTooltipFilterMode);
setSyncTooltipFilterMode(value);
}}
>
<Radio.Button value={SyncTooltipFilterMode.All}>All</Radio.Button>
<Radio.Button value={SyncTooltipFilterMode.Filtered}>
Filtered
</Radio.Button>
</Radio.Group>
options={[
{ label: 'All', value: SyncTooltipFilterMode.All },
{ label: 'Filtered', value: SyncTooltipFilterMode.Filtered },
]}
/>
</div>
)}
</Col>
</div>
);
}

View File

@@ -0,0 +1,80 @@
.formSpace {
display: flex;
flex-direction: column;
gap: 20px;
}
.infoItemContainer {
display: flex;
flex-direction: column;
gap: 4px;
}
.infoTitle {
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
}
.nameIconInput {
display: flex;
gap: 4px;
[data-radix-popper-content-wrapper] {
z-index: 1100 !important;
}
}
.dashboardImageInput {
display: flex;
width: 32px;
min-width: 32px;
height: 32px;
padding: 6px;
justify-content: center;
align-items: center;
border-radius: 2px 0px 0px 2px;
background: var(--l3-background);
// icon-only trigger: drop the dropdown chevron, keep just the selected icon
svg {
display: none;
}
}
.dashboardImageOptions {
min-width: min-content;
}
.dashboardImageSelectItem {
width: min-content;
span {
vertical-align: middle;
}
}
.listItemImage {
height: 16px;
width: 16px;
}
.dashboardNameInput {
border-radius: 0px 2px 2px 0px;
border: 1px solid var(--l2-border);
}
.descriptionTextArea {
border-radius: 2px;
border: 1px solid var(--l2-border);
}
// the V1 tags input ships borderless; give the field a visible box to match
.tagsField {
display: flex;
align-items: center;
padding: 6px 8px;
border-radius: 2px;
border: 1px solid var(--l2-border);
// background: var(--l3-background);
}

View File

@@ -0,0 +1,101 @@
import { Dispatch, SetStateAction } from 'react';
import { Input } from '@signozhq/ui/input';
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
} from '@signozhq/ui/select';
import { Typography } from '@signozhq/ui/typography';
// eslint-disable-next-line signoz/no-antd-components -- multiline TextArea has no @signozhq/ui equivalent yet
import { Input as AntdInput } from 'antd';
import AddTags from 'container/DashboardContainer/DashboardSettings/General/AddBadges';
import { Base64Icons } from '../utils';
import settingsStyles from '../../DashboardSettings.module.scss';
import styles from './DashboardInfoForm.module.scss';
interface DashboardInfoFormProps {
title: string;
description: string;
image: string;
tags: string[];
onTitleChange: (value: string) => void;
onDescriptionChange: (value: string) => void;
onImageChange: (value: string) => void;
onTagsChange: Dispatch<SetStateAction<string[]>>;
}
function DashboardInfoForm({
title,
description,
image,
tags,
onTitleChange,
onDescriptionChange,
onImageChange,
onTagsChange,
}: DashboardInfoFormProps): JSX.Element {
return (
<div className={settingsStyles.settingsCard}>
<div className={styles.formSpace}>
<div className={styles.infoItemContainer}>
<Typography className={styles.infoTitle}>Dashboard Name</Typography>
<section className={styles.nameIconInput}>
<Select
value={image}
onChange={(value): void => onImageChange(value as string)}
>
<SelectTrigger className={styles.dashboardImageInput} />
<SelectContent
className={styles.dashboardImageOptions}
withPortal={false}
>
{Base64Icons.map((icon) => (
<SelectItem
key={icon}
value={icon}
className={styles.dashboardImageSelectItem}
>
<img
src={icon}
alt="dashboard-icon"
className={styles.listItemImage}
/>
</SelectItem>
))}
</SelectContent>
</Select>
<Input
testId="dashboard-name"
className={styles.dashboardNameInput}
value={title}
onChange={(e): void => onTitleChange(e.target.value)}
/>
</section>
</div>
<div className={styles.infoItemContainer}>
<Typography className={styles.infoTitle}>Description</Typography>
<AntdInput.TextArea
data-testid="dashboard-desc"
rows={6}
value={description}
className={styles.descriptionTextArea}
onChange={(e): void => onDescriptionChange(e.target.value)}
/>
</div>
<div className={styles.infoItemContainer}>
<Typography className={styles.infoTitle}>Tags</Typography>
<div className={styles.tagsField}>
<AddTags tags={tags} setTags={onTagsChange} />
</div>
</div>
</div>
</div>
);
}
export default DashboardInfoForm;

View File

@@ -0,0 +1,5 @@
.overviewContent {
display: flex;
flex-direction: column;
gap: 24px;
}

View File

@@ -0,0 +1,61 @@
.segmented {
// override RadioGroup's default vertical grid; lay segments out connected
display: inline-flex;
grid-auto-flow: column;
gap: 0;
flex-shrink: 0;
border: 1px solid var(--l2-border);
border-radius: 2px;
}
.segment {
position: relative;
display: flex;
align-items: center;
&:not(:last-child) {
border-right: 1px solid var(--l2-border);
}
// the visible segment is the radio's label (htmlFor-wired, so clicks register)
label {
display: flex;
align-items: center;
min-height: 24px;
padding: 6px 14px;
font-family: Inter;
font-size: 13px;
line-height: 20px;
color: var(--l2-foreground);
white-space: nowrap;
cursor: pointer;
user-select: none;
}
}
// collapse the radio circle into a transparent full-cell click target
.segmentInput {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: none;
background: transparent;
cursor: pointer;
// hide the default radio dot/indicator
* {
display: none;
}
}
// highlight the selected segment as a raised, lighter pill (data-state is a
// stable Radix attribute). --l3-background is the lightest layer, so lift it
// further with a subtle foreground tint rather than going darker.
.segmentInput[data-state='checked'] + label {
background: var(--l3-background);
color: var(--l1-foreground);
font-weight: 500;
}

View File

@@ -0,0 +1,51 @@
import { RadioGroup, RadioGroupItem } from '@signozhq/ui/radio-group';
import styles from './SegmentedControl.module.scss';
export interface SegmentedControlOption<T extends string> {
label: string;
value: T;
}
interface SegmentedControlProps<T extends string> {
value: T;
options: SegmentedControlOption<T>[];
onChange: (value: T) => void;
testId?: string;
}
/**
* Connected pill segmented control composed on top of @signozhq/ui RadioGroup:
* the radio circle is collapsed into a transparent full-cell click target and
* the label becomes the visible segment (highlighted via the radio's stable
* `data-state="checked"`). Keeps radio semantics + keyboard nav.
*/
function SegmentedControl<T extends string>({
value,
options,
onChange,
testId,
}: SegmentedControlProps<T>): JSX.Element {
return (
<RadioGroup
className={styles.segmented}
value={value}
onChange={(next): void => onChange(next as T)}
testId={testId}
>
{options.map((option) => (
<RadioGroupItem
key={option.value}
value={option.value}
containerClassName={styles.segment}
className={styles.segmentInput}
testId={testId ? `${testId}-${option.value}` : undefined}
>
{option.label}
</RadioGroupItem>
))}
</RadioGroup>
);
}
export default SegmentedControl;

View File

@@ -0,0 +1,39 @@
.overviewSettingsFooter {
display: flex;
justify-content: space-between;
align-items: center;
width: -webkit-fill-available;
padding: 12px 16px 12px 16px;
position: fixed;
bottom: 0;
background: var(--l2-background);
}
.unsaved {
display: flex;
align-items: center;
gap: 8px;
}
.unsavedDot {
width: 6px;
height: 6px;
border-radius: 50px;
background: var(--primary-background);
box-shadow: 0px 0px 6px 0px
color-mix(in srgb, var(--primary-background) 40%, transparent);
}
.unsavedChanges {
color: var(--bg-robin-400);
font-family: Inter;
font-size: 14px;
font-weight: 400;
line-height: 24px;
letter-spacing: -0.07px;
}
.footerActionButtons {
display: flex;
gap: 8px;
}

View File

@@ -3,7 +3,7 @@ import { Button } from '@signozhq/ui/button';
import { Check, X } from '@signozhq/icons';
import { Typography } from '@signozhq/ui/typography';
import styles from '../GeneralSettings.module.scss';
import styles from './UnsavedChangesFooter.module.scss';
interface UnsavedChangesFooterProps {
count: number;
@@ -29,13 +29,13 @@ function UnsavedChangesFooter({
{count > 1 && 's'}
</Typography.Text>
</div>
<div className={styles.footerActionBtns}>
<div className={styles.footerActionButtons}>
<Button
variant="ghost"
color="secondary"
disabled={isSaving}
prefix={<X size={14} />}
onClick={onDiscard}
className={styles.discardBtn}
>
Discard
</Button>
@@ -47,7 +47,6 @@ function UnsavedChangesFooter({
prefix={<Check size={14} />}
testId="save-dashboard-config"
onClick={onSave}
className={styles.saveBtn}
>
{t('save')}
</Button>

View File

@@ -11,22 +11,22 @@ import APIError from 'types/api/error';
import { useDashboardStore } from '../../store/useDashboardStore';
import CrossPanelSync from './CrossPanelSync/CrossPanelSync';
import GeneralForm from './GeneralForm/GeneralForm';
import DashboardInfoForm from './DashboardInfoForm/DashboardInfoForm';
import UnsavedChangesFooter from './UnsavedChangesFooter/UnsavedChangesFooter';
import { Base64Icons, stringsToTags, tagsToStrings } from './utils';
import styles from './GeneralSettings.module.scss';
import styles from './Overview.module.scss';
interface GeneralSettingsProps {
interface OverviewProps {
dashboard: DashboardtypesGettableDashboardV2DTO;
}
function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
function Overview({ dashboard }: OverviewProps): JSX.Element {
const id = dashboard.id;
const refetch = useDashboardStore((s) => s.refetch);
const title = dashboard.spec?.display?.name ?? '';
const description = dashboard.spec?.display?.description ?? '';
const title = dashboard.spec.display.name;
const description = dashboard.spec.display.description ?? '';
const image = dashboard.image || Base64Icons[0];
const tagsAsStrings = useMemo(
() => tagsToStrings(dashboard.tags ?? []),
@@ -64,7 +64,7 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
value,
});
if (updatedTitle !== title) {
if (updatedTitle !== title && updatedTitle !== '') {
ops.push(replace('/spec/display/name', updatedTitle));
}
if (updatedDescription !== description) {
@@ -89,9 +89,6 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
]);
const onSaveHandler = useCallback(async (): Promise<void> => {
if (!id) {
return;
}
const ops = buildPatch();
if (ops.length === 0) {
return;
@@ -110,7 +107,7 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
}, [id, buildPatch, refetch, showErrorModal]);
useEffect(() => {
let n = 0;
let numberOfUnsavedChanges = 0;
const initialValues = [title, description, tagsAsStrings, image];
const updatedValues = [
updatedTitle,
@@ -120,10 +117,10 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
];
initialValues.forEach((val, index) => {
if (!isEqual(val, updatedValues[index])) {
n += 1;
numberOfUnsavedChanges += 1;
}
});
setNumberOfUnsavedChanges(n);
setNumberOfUnsavedChanges(numberOfUnsavedChanges);
}, [
description,
image,
@@ -144,7 +141,7 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
return (
<div className={styles.overviewContent}>
<GeneralForm
<DashboardInfoForm
title={updatedTitle}
description={updatedDescription}
image={updatedImage}
@@ -167,4 +164,4 @@ function GeneralSettings({ dashboard }: GeneralSettingsProps): JSX.Element {
);
}
export default GeneralSettings;
export default Overview;

View File

@@ -0,0 +1,106 @@
// settings card wrapper — mirrors the V1 public dashboard treatment
.publicDashboardCard {
display: flex;
flex-direction: column;
gap: 8px;
padding: 16px;
border-radius: 3px;
border: 1px solid var(--l2-border);
}
.statusTitle {
margin-bottom: 16px;
color: var(--l1-foreground);
font-family: Inter;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.checkbox {
margin-bottom: 8px;
}
.timeRangeSelectGroup {
display: flex;
flex-direction: column;
gap: 4px;
margin-bottom: 8px;
}
.timeRangeSelectLabel {
color: var(--l2-foreground);
font-family: Inter;
font-size: 12px;
font-weight: 500;
line-height: 18px;
}
.timeRangeSelect {
width: 200px;
}
.urlGroup {
display: flex;
flex-direction: column;
gap: 4px;
}
.urlLabel {
color: var(--l2-foreground);
font-family: Inter;
font-size: 12px;
font-weight: 500;
line-height: 18px;
}
.urlContainer {
display: flex;
align-items: center;
gap: 8px;
padding: 0 4px;
border-radius: 4px;
border: 1px solid var(--l1-border);
background: var(--l3-background);
}
.urlText {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--l2-foreground);
font-family: Inter;
font-size: 13px;
line-height: 32px;
}
.callout {
display: flex;
align-items: center;
gap: 8px;
margin-top: 12px;
padding: 12px 8px;
border-radius: 3px;
background: color-mix(in srgb, var(--primary-background) 10%, transparent);
}
.calloutIcon {
flex-shrink: 0;
color: var(--text-robin-300);
}
.calloutText {
color: var(--text-robin-300);
font-family: Inter;
font-size: 11px;
font-weight: 400;
line-height: 16px;
}
.actions {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 32px;
}

View File

@@ -0,0 +1,71 @@
import { Globe, Trash } from '@signozhq/icons';
import { Button } from '@signozhq/ui/button';
import styles from './PublicDashboard.module.scss';
interface PublicDashboardActionsProps {
isPublic: boolean;
disabled: boolean;
isPublishing: boolean;
isUpdating: boolean;
isUnpublishing: boolean;
onPublish: () => void;
onUpdate: () => void;
onUnpublish: () => void;
}
function PublicDashboardActions({
isPublic,
disabled,
isPublishing,
isUpdating,
isUnpublishing,
onPublish,
onUpdate,
onUnpublish,
}: PublicDashboardActionsProps): JSX.Element {
return (
<div className={styles.actions}>
{isPublic ? (
<>
<Button
variant="outlined"
color="destructive"
disabled={disabled}
loading={isUnpublishing}
prefix={<Trash size={14} />}
testId="public-dashboard-unpublish"
onClick={onUnpublish}
>
Unpublish dashboard
</Button>
<Button
variant="solid"
color="primary"
disabled={disabled}
loading={isUpdating}
prefix={<Globe size={14} />}
testId="public-dashboard-update"
onClick={onUpdate}
>
Update published dashboard
</Button>
</>
) : (
<Button
variant="solid"
color="primary"
disabled={disabled}
loading={isPublishing}
prefix={<Globe size={14} />}
testId="public-dashboard-publish"
onClick={onPublish}
>
Publish dashboard
</Button>
)}
</div>
);
}
export default PublicDashboardActions;

View File

@@ -0,0 +1,17 @@
import { Info } from '@signozhq/icons';
import { Typography } from '@signozhq/ui/typography';
import styles from './PublicDashboard.module.scss';
function PublicDashboardCallout(): JSX.Element {
return (
<div className={styles.callout}>
<Info size={12} className={styles.calloutIcon} />
<Typography.Text className={styles.calloutText}>
Dashboard variables won&apos;t work in public dashboards
</Typography.Text>
</div>
);
}
export default PublicDashboardCallout;

View File

@@ -0,0 +1,54 @@
import { Checkbox } from '@signozhq/ui/checkbox';
import { SelectSimple } from '@signozhq/ui/select';
import { Typography } from '@signozhq/ui/typography';
import { TIME_RANGE_PRESETS_OPTIONS } from './constants';
import styles from './PublicDashboard.module.scss';
interface PublicDashboardSettingsFormProps {
timeRangeEnabled: boolean;
defaultTimeRange: string;
disabled: boolean;
onTimeRangeEnabledChange: (value: boolean) => void;
onDefaultTimeRangeChange: (value: string) => void;
}
function PublicDashboardSettingsForm({
timeRangeEnabled,
defaultTimeRange,
disabled,
onTimeRangeEnabledChange,
onDefaultTimeRangeChange,
}: PublicDashboardSettingsFormProps): JSX.Element {
return (
<>
<Checkbox
id="public-dashboard-enable-time-range"
className={styles.checkbox}
testId="public-dashboard-time-range-toggle"
value={timeRangeEnabled}
disabled={disabled}
onChange={(checked): void => onTimeRangeEnabledChange(checked === true)}
>
Enable time range
</Checkbox>
<div className={styles.timeRangeSelectGroup}>
<Typography.Text className={styles.timeRangeSelectLabel}>
Default time range
</Typography.Text>
<SelectSimple
className={styles.timeRangeSelect}
testId="public-dashboard-default-time-range"
placeholder="Select default time range"
items={TIME_RANGE_PRESETS_OPTIONS}
value={defaultTimeRange}
disabled={disabled}
onChange={(value): void => onDefaultTimeRangeChange(value as string)}
/>
</div>
</>
);
}
export default PublicDashboardSettingsForm;

View File

@@ -0,0 +1,21 @@
import { Typography } from '@signozhq/ui/typography';
import styles from './PublicDashboard.module.scss';
interface PublicDashboardStatusProps {
isPublic: boolean;
}
function PublicDashboardStatus({
isPublic,
}: PublicDashboardStatusProps): JSX.Element {
return (
<Typography.Text className={styles.statusTitle}>
{isPublic
? 'This dashboard is publicly accessible. Anyone with the link can view it.'
: 'This dashboard is private. Publish it to make it accessible to anyone with the link.'}
</Typography.Text>
);
}
export default PublicDashboardStatus;

View File

@@ -0,0 +1,49 @@
import { Copy, ExternalLink } from '@signozhq/icons';
import { Button } from '@signozhq/ui/button';
import { Typography } from '@signozhq/ui/typography';
import styles from './PublicDashboard.module.scss';
interface PublicDashboardUrlProps {
url: string;
onCopy: () => void;
onOpen: () => void;
}
function PublicDashboardUrl({
url,
onCopy,
onOpen,
}: PublicDashboardUrlProps): JSX.Element {
return (
<div className={styles.urlGroup}>
<Typography.Text className={styles.urlLabel}>
Public dashboard URL
</Typography.Text>
<div className={styles.urlContainer}>
<Typography.Text className={styles.urlText}>{url}</Typography.Text>
<Button
variant="ghost"
size="icon"
aria-label="Copy public dashboard URL"
testId="public-dashboard-copy-url"
onClick={onCopy}
>
<Copy size={14} />
</Button>
<Button
variant="ghost"
size="icon"
aria-label="Open public dashboard in new tab"
testId="public-dashboard-open-url"
onClick={onOpen}
>
<ExternalLink size={14} />
</Button>
</div>
</div>
);
}
export default PublicDashboardUrl;

View File

@@ -0,0 +1,14 @@
export interface TimeRangePresetOption {
label: string;
value: string;
}
// Default time-range presets offered for the public dashboard viewer.
export const TIME_RANGE_PRESETS_OPTIONS: TimeRangePresetOption[] = [
{ label: 'Last 5 minutes', value: '5m' },
{ label: 'Last 15 minutes', value: '15m' },
{ label: 'Last 30 minutes', value: '30m' },
{ label: 'Last 1 hour', value: '1h' },
{ label: 'Last 6 hours', value: '6h' },
{ label: 'Last 1 day', value: '24h' },
];

View File

@@ -0,0 +1,71 @@
import type { DashboardtypesGettableDashboardV2DTO } from 'api/generated/services/sigNoz.schemas';
import PublicDashboardActions from './PublicDashboardActions';
import PublicDashboardCallout from './PublicDashboardCallout';
import PublicDashboardSettingsForm from './PublicDashboardSettingsForm';
import PublicDashboardStatus from './PublicDashboardStatus';
import PublicDashboardUrl from './PublicDashboardUrl';
import { usePublicDashboard } from './usePublicDashboard';
import styles from './PublicDashboard.module.scss';
interface PublicDashboardSettingsProps {
dashboard: DashboardtypesGettableDashboardV2DTO;
}
function PublicDashboardSettings({
dashboard,
}: PublicDashboardSettingsProps): JSX.Element {
const {
isPublic,
isAdmin,
isLoading,
isPublishing,
isUpdating,
isUnpublishing,
timeRangeEnabled,
defaultTimeRange,
publicUrl,
setTimeRangeEnabled,
setDefaultTimeRange,
onPublish,
onUpdate,
onUnpublish,
onCopyUrl,
onOpenUrl,
} = usePublicDashboard(dashboard.id);
const controlsDisabled = isLoading || !isAdmin;
return (
<div className={styles.publicDashboardCard}>
<PublicDashboardStatus isPublic={isPublic} />
<PublicDashboardSettingsForm
timeRangeEnabled={timeRangeEnabled}
defaultTimeRange={defaultTimeRange}
disabled={controlsDisabled}
onTimeRangeEnabledChange={setTimeRangeEnabled}
onDefaultTimeRangeChange={setDefaultTimeRange}
/>
{isPublic && (
<PublicDashboardUrl url={publicUrl} onCopy={onCopyUrl} onOpen={onOpenUrl} />
)}
<PublicDashboardCallout />
<PublicDashboardActions
isPublic={isPublic}
disabled={controlsDisabled}
isPublishing={isPublishing}
isUpdating={isUpdating}
isUnpublishing={isUnpublishing}
onPublish={onPublish}
onUpdate={onUpdate}
onUnpublish={onUnpublish}
/>
</div>
);
}
export default PublicDashboardSettings;

View File

@@ -0,0 +1,197 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import { useQueryClient } from 'react-query';
import { useCopyToClipboard } from 'react-use';
import { toast } from '@signozhq/ui/sonner';
import {
invalidateGetPublicDashboard,
useCreatePublicDashboard,
useDeletePublicDashboard,
useGetPublicDashboard,
useUpdatePublicDashboard,
} from 'api/generated/services/dashboard';
import { DEFAULT_TIME_RANGE } from 'container/TopNav/DateTimeSelectionV2/constants';
import { useAppContext } from 'providers/App/App';
import { useErrorModal } from 'providers/ErrorModalProvider';
import APIError from 'types/api/error';
import { USER_ROLES } from 'types/roles';
import { getAbsoluteUrl } from 'utils/basePath';
import { openInNewTab } from 'utils/navigation';
export interface UsePublicDashboardReturn {
isPublic: boolean;
isAdmin: boolean;
isLoading: boolean;
isPublishing: boolean;
isUpdating: boolean;
isUnpublishing: boolean;
timeRangeEnabled: boolean;
defaultTimeRange: string;
publicUrl: string;
setTimeRangeEnabled: (value: boolean) => void;
setDefaultTimeRange: (value: string) => void;
onPublish: () => void;
onUpdate: () => void;
onUnpublish: () => void;
onCopyUrl: () => void;
onOpenUrl: () => void;
}
/**
* Encapsulates the public-dashboard query, the create/update/delete mutations and the
* local form state for the V2 publish settings section. Targets the same
* `/dashboards/{id}/public` endpoint as V1 via the generated client.
*/
export function usePublicDashboard(
dashboardId: string,
): UsePublicDashboardReturn {
const queryClient = useQueryClient();
const { showErrorModal } = useErrorModal();
const { user } = useAppContext();
const isAdmin = user?.role === USER_ROLES.ADMIN;
const [, copyToClipboard] = useCopyToClipboard();
const [timeRangeEnabled, setTimeRangeEnabled] = useState<boolean>(true);
const [defaultTimeRange, setDefaultTimeRange] =
useState<string>(DEFAULT_TIME_RANGE);
const {
data,
isLoading: isLoadingMeta,
isFetching,
error,
refetch,
} = useGetPublicDashboard(
{ id: dashboardId },
{ query: { enabled: !!dashboardId, retry: false } },
);
// react-query retains the last successful `data` even after a refetch errors, so
// after unpublishing (the refetch 404s) `data` still holds the old publicPath.
// Gate on `!error` so the UI flips back to the private state.
const publicMeta = error ? undefined : data?.data;
const isPublic = !!publicMeta?.publicPath;
// Seed form state from the server config when published.
useEffect(() => {
if (publicMeta) {
setTimeRangeEnabled(publicMeta.timeRangeEnabled ?? false);
setDefaultTimeRange(publicMeta.defaultTimeRange || DEFAULT_TIME_RANGE);
}
}, [publicMeta]);
// A 404 (dashboard not published) surfaces as an error — reset to defaults.
useEffect(() => {
if (error) {
setTimeRangeEnabled(true);
setDefaultTimeRange(DEFAULT_TIME_RANGE);
}
}, [error]);
const publicUrl = useMemo(
() => getAbsoluteUrl(publicMeta?.publicPath ?? ''),
[publicMeta?.publicPath],
);
const handleError = useCallback(
(err: unknown): void => {
showErrorModal(err as APIError);
},
[showErrorModal],
);
const handleSuccess = useCallback(
(message: string): void => {
toast.success(message);
void invalidateGetPublicDashboard(queryClient, { id: dashboardId });
void refetch();
},
[queryClient, dashboardId, refetch],
);
const { mutate: createPublicDashboard, isLoading: isPublishing } =
useCreatePublicDashboard({
mutation: {
onSuccess: () => handleSuccess('Dashboard published successfully'),
onError: handleError,
},
});
const { mutate: updatePublicDashboard, isLoading: isUpdating } =
useUpdatePublicDashboard({
mutation: {
onSuccess: () => handleSuccess('Public dashboard updated successfully'),
onError: handleError,
},
});
const { mutate: deletePublicDashboard, isLoading: isUnpublishing } =
useDeletePublicDashboard({
mutation: {
onSuccess: () => handleSuccess('Dashboard unpublished successfully'),
onError: handleError,
},
});
const onPublish = useCallback((): void => {
if (!dashboardId) {
return;
}
createPublicDashboard({
pathParams: { id: dashboardId },
data: { timeRangeEnabled, defaultTimeRange },
});
}, [createPublicDashboard, dashboardId, timeRangeEnabled, defaultTimeRange]);
const onUpdate = useCallback((): void => {
if (!dashboardId) {
return;
}
updatePublicDashboard({
pathParams: { id: dashboardId },
data: { timeRangeEnabled, defaultTimeRange },
});
}, [updatePublicDashboard, dashboardId, timeRangeEnabled, defaultTimeRange]);
const onUnpublish = useCallback((): void => {
if (!dashboardId) {
return;
}
deletePublicDashboard({ pathParams: { id: dashboardId } });
}, [deletePublicDashboard, dashboardId]);
const onCopyUrl = useCallback((): void => {
if (!publicUrl) {
return;
}
copyToClipboard(publicUrl);
toast.success('Copied public dashboard URL successfully');
}, [copyToClipboard, publicUrl]);
const onOpenUrl = useCallback((): void => {
if (publicUrl) {
openInNewTab(publicUrl);
}
}, [publicUrl]);
const isLoading =
isLoadingMeta || isFetching || isPublishing || isUpdating || isUnpublishing;
return {
isPublic,
isAdmin,
isLoading,
isPublishing,
isUpdating,
isUnpublishing,
timeRangeEnabled,
defaultTimeRange,
publicUrl,
setTimeRangeEnabled,
setDefaultTimeRange,
onPublish,
onUpdate,
onUnpublish,
onCopyUrl,
onOpenUrl,
};
}

View File

@@ -1,45 +1,91 @@
import { useMemo } from 'react';
import { Braces, Globe, Table } from '@signozhq/icons';
import { TabItemProps, Tabs } from '@signozhq/ui/tabs';
import {
TabItemProps,
TabsContent,
TabsList,
TabsRoot,
TabsTrigger,
} from '@signozhq/ui/tabs';
import type { DashboardtypesGettableDashboardV2DTO } from 'api/generated/services/sigNoz.schemas';
import GeneralSettings from './General';
import { SettingsTabPlaceholder } from './utils';
import Overview from './Overview';
import PublicDashboardSettings from './PublicDashboard';
import VariablesSettings from './Variables';
import { useAppContext } from 'providers/App/App';
import { useGetTenantLicense } from 'hooks/useGetTenantLicense';
import { USER_ROLES } from 'types/roles';
import styles from './DashboardSettings.module.scss';
interface DashboardSettingsProps {
dashboard: DashboardtypesGettableDashboardV2DTO;
}
enum TabKeys {
OVERVIEW = 'Overview',
VARIABLES = 'Variables',
PUBLISH = 'Publish',
}
const prefixIcons: Record<TabKeys, JSX.Element> = {
[TabKeys.OVERVIEW]: <Table size={14} />,
[TabKeys.VARIABLES]: <Braces size={14} />,
[TabKeys.PUBLISH]: <Globe size={14} />,
};
function DashboardSettings({ dashboard }: DashboardSettingsProps): JSX.Element {
const { user } = useAppContext();
const { isCloudUser, isEnterpriseSelfHostedUser } = useGetTenantLicense();
const enablePublicDashboard = isCloudUser || isEnterpriseSelfHostedUser;
const items: TabItemProps[] = useMemo(
() => [
{
key: 'general',
label: 'General',
children: <GeneralSettings dashboard={dashboard} />,
prefixIcon: <Table size={14} />,
key: TabKeys.OVERVIEW,
label: TabKeys.OVERVIEW,
children: <Overview dashboard={dashboard} />,
},
{
key: 'variables',
label: 'Variables',
key: TabKeys.VARIABLES,
label: TabKeys.VARIABLES,
children: <VariablesSettings dashboard={dashboard} />,
prefixIcon: <Braces size={14} />,
},
{
key: 'public-dashboard',
label: 'Publish',
children: (
<SettingsTabPlaceholder message="V2 public dashboard publishing coming next." />
),
prefixIcon: <Globe size={14} />,
},
...(enablePublicDashboard
? [
{
key: TabKeys.PUBLISH,
label: TabKeys.PUBLISH,
children: <PublicDashboardSettings dashboard={dashboard} />,
disabled: user?.role !== USER_ROLES.ADMIN,
},
]
: []),
],
[dashboard],
[enablePublicDashboard, dashboard, user?.role],
);
return <Tabs defaultValue="general" items={items} />;
return (
<TabsRoot defaultValue={TabKeys.OVERVIEW}>
<TabsList variant="primary">
{Object.values(TabKeys).map((key) => (
<TabsTrigger value={key} key={key}>
{prefixIcons[key]}
{key}
</TabsTrigger>
))}
</TabsList>
{items.map((item) => (
<TabsContent value={item.key} key={item.key} className={styles.tabsContent}>
{item.children}
</TabsContent>
))}
</TabsRoot>
);
}
export default DashboardSettings;

View File

@@ -1,23 +0,0 @@
import { Empty } from 'antd';
import { Typography } from '@signozhq/ui/typography';
import styles from './DashboardSettings.module.scss';
/**
* TEMPORARY: stand-in for the not-yet-built Variables / Publish settings tabs.
* Will be cleaned up later once those tabs ship their real content.
*/
export function SettingsTabPlaceholder({
message,
}: {
message: string;
}): JSX.Element {
return (
<div className={styles.placeholder}>
<Empty
image={Empty.PRESENTED_IMAGE_SIMPLE}
description={<Typography.Text>{message}</Typography.Text>}
/>
</div>
);
}

View File

@@ -1,57 +0,0 @@
.dashboardBreadcrumbs {
width: 100%;
height: 48px;
display: flex;
gap: 6px;
align-items: center;
max-width: 80%;
padding-left: 8px;
.linkToPreviousPage {
// Collapse the design-system Button's fixed-height/padding box so it hugs
// the label like inline text (the breadcrumb is text, not a chunky button).
--button-height: auto;
--button-padding: 0;
--button-gap: 4px;
color: var(--l2-foreground);
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
letter-spacing: -0.07px;
}
.currentPage {
display: flex;
align-items: center;
gap: 4px;
padding: 0px 2px;
border-radius: 2px;
background: color-mix(in srgb, var(--bg-robin-400) 10%, transparent);
color: var(--bg-robin-400);
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px; /* 142.857% */
height: 20px;
max-width: calc(100% - 120px);
span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.currentPage:hover {
background: color-mix(in srgb, var(--bg-robin-400) 10%, transparent);
color: var(--bg-robin-300);
}
.dashboardIconImage {
height: 14px;
width: 14px;
}
}

View File

@@ -1,63 +0,0 @@
import { useCallback } from 'react';
import { LayoutGrid } from '@signozhq/icons';
import { Button } from '@signozhq/ui/button';
import { Typography } from '@signozhq/ui/typography';
import getSessionStorageApi from 'api/browser/sessionstorage/get';
import ROUTES from 'constants/routes';
import { DASHBOARDS_LIST_QUERY_PARAMS_STORAGE_KEY } from 'hooks/dashboard/useDashboardsListQueryParams';
import { useSafeNavigate } from 'hooks/useSafeNavigate';
import styles from './DashboardBreadcrumbs.module.scss';
interface DashboardBreadcrumbsProps {
title: string;
image: string;
}
function DashboardBreadcrumbs({
title,
image,
}: DashboardBreadcrumbsProps): JSX.Element {
const { safeNavigate } = useSafeNavigate();
const goToListPage = useCallback(() => {
const dashboardsListQueryParamsString = getSessionStorageApi(
DASHBOARDS_LIST_QUERY_PARAMS_STORAGE_KEY,
);
if (dashboardsListQueryParamsString) {
safeNavigate({
pathname: ROUTES.ALL_DASHBOARD,
search: `?${dashboardsListQueryParamsString}`,
});
} else {
safeNavigate(ROUTES.ALL_DASHBOARD);
}
}, [safeNavigate]);
return (
<div className={styles.dashboardBreadcrumbs}>
<Button
variant="ghost"
color="secondary"
prefix={<LayoutGrid size={14} />}
onClick={goToListPage}
className={styles.linkToPreviousPage}
testId="dashboard-breadcrumb-list"
>
Dashboard
</Button>
<div>/</div>
<div className={styles.currentPage}>
<img
src={image}
alt="dashboard-icon"
className={styles.dashboardIconImage}
/>
<Typography.Text>{title}</Typography.Text>
</div>
</div>
);
}
export default DashboardBreadcrumbs;

View File

@@ -1,9 +0,0 @@
.dashboardHeader {
border-bottom: 1px solid var(--l1-border);
display: flex;
justify-content: space-between;
gap: 16px;
align-items: center;
padding: 0 8px;
box-sizing: border-box;
}

View File

@@ -1,22 +0,0 @@
import { memo } from 'react';
import HeaderRightSection from 'components/HeaderRightSection/HeaderRightSection';
import DashboardBreadcrumbs from './DashboardBreadcrumbs';
import styles from './DashboardHeader.module.scss';
interface DashboardHeaderProps {
title: string;
image: string;
}
function DashboardHeader({ title, image }: DashboardHeaderProps): JSX.Element {
return (
<div className={styles.dashboardHeader}>
<DashboardBreadcrumbs title={title} image={image} />
<HeaderRightSection enableAnnouncements={false} enableShare enableFeedback />
</div>
);
}
export default memo(DashboardHeader);

View File

@@ -0,0 +1,53 @@
import { useMemo } from 'react';
import { LayoutGrid } from '@signozhq/icons';
import getSessionStorageApi from 'api/browser/sessionstorage/get';
import ROUTES from 'constants/routes';
import { DASHBOARDS_LIST_QUERY_PARAMS_STORAGE_KEY } from 'hooks/dashboard/useDashboardsListQueryParams';
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbSeparator,
} from '@signozhq/ui/breadcrumb';
interface DashboardPageBreadcrumbsProps {
title: string;
image: string;
}
function DashboardPageBreadcrumbs({
title,
image,
}: DashboardPageBreadcrumbsProps): JSX.Element {
const dashboardPageLink = useMemo(() => {
const dashboardsListQueryParamsString = getSessionStorageApi(
DASHBOARDS_LIST_QUERY_PARAMS_STORAGE_KEY,
);
return dashboardsListQueryParamsString
? `${ROUTES.ALL_DASHBOARD}?${dashboardsListQueryParamsString}`
: ROUTES.ALL_DASHBOARD;
}, []);
return (
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink icon={<LayoutGrid size={14} />} href={dashboardPageLink}>
Dashboard
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>/</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbLink icon={<img src={image} alt="dashboard-icon" />}>
{title}
</BreadcrumbLink>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
);
}
export default DashboardPageBreadcrumbs;

View File

@@ -0,0 +1,9 @@
.dashboardPageHeader {
border-bottom: 1px solid var(--l2-border);
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 14px;
height: 48px;
width: 100%;
}

View File

@@ -0,0 +1,25 @@
import { memo } from 'react';
import HeaderRightSection from 'components/HeaderRightSection/HeaderRightSection';
import DashboardPageBreadcrumbs from './DashboardPageBreadcrumbs';
import styles from './DashboardPageHeader.module.scss';
interface DashboardPageHeaderProps {
title: string;
image: string;
}
function DashboardPageHeader({
title,
image,
}: DashboardPageHeaderProps): JSX.Element {
return (
<div className={styles.dashboardPageHeader}>
<DashboardPageBreadcrumbs title={title} image={image} />
<HeaderRightSection enableAnnouncements={false} enableShare enableFeedback />
</div>
);
}
export default memo(DashboardPageHeader);

View File

@@ -1,4 +1,4 @@
import { useEffect, useMemo } from 'react';
import { useEffect } from 'react';
import { FullScreen, useFullScreenHandle } from 'react-full-screen';
import type { DashboardtypesGettableDashboardV2DTO } from 'api/generated/services/sigNoz.schemas';
@@ -6,10 +6,12 @@ import PanelTypeSelectionModal from 'container/DashboardContainer/PanelTypeSelec
import useComponentPermission from 'hooks/useComponentPermission';
import { useAppContext } from 'providers/App/App';
import DashboardDescription from './DashboardDescription';
import DashboardPageToolbar from './DashboardPageToolbar';
import PanelsAndSectionsLayout from './PanelsAndSectionsLayout';
import { useDashboardStore } from './store/useDashboardStore';
import styles from './DashboardContainer.module.scss';
import DashboardPageHeader from './components/DashboardPageHeader/DashboardPageHeader';
import { Base64Icons } from './DashboardSettings/Overview/utils';
interface DashboardContainerProps {
dashboard: DashboardtypesGettableDashboardV2DTO;
@@ -20,32 +22,49 @@ function DashboardContainer({
dashboard,
refetch,
}: DashboardContainerProps): JSX.Element {
useEffect(() => {
document.title = dashboard.name;
}, [dashboard.name]);
const fullScreenHandle = useFullScreenHandle();
const { user } = useAppContext();
const [editDashboard] = useComponentPermission(['edit_dashboard'], user.role);
const isEditable = !dashboard.locked && editDashboard;
const [editDashboardPermission] = useComponentPermission(
['edit_dashboard'],
user.role,
);
// Publish edit context to the store so hooks/components read it from there
// instead of receiving dashboardId/isEditable/refetch as props down the tree.
const setEditContext = useDashboardStore((s) => s.setEditContext);
useEffect(() => {
setEditContext({ dashboardId: dashboard.id ?? '', isEditable, refetch });
}, [dashboard.id, isEditable, refetch, setEditContext]);
setEditContext({
dashboardId: dashboard.id,
isEditable: !dashboard.locked && editDashboardPermission,
refetch,
});
}, [
dashboard.id,
dashboard.locked,
editDashboardPermission,
refetch,
setEditContext,
]);
const { spec } = dashboard;
const layouts = useMemo(() => spec?.layouts ?? [], [spec?.layouts]);
const panels = useMemo(() => spec?.panels ?? {}, [spec?.panels]);
const spec = dashboard.spec;
const image = dashboard.image || Base64Icons[0];
const name = spec.display.name;
return (
<FullScreen handle={fullScreenHandle}>
<div className={styles.container}>
<DashboardDescription
<DashboardPageHeader title={name} image={image} />
<DashboardPageToolbar
dashboard={dashboard}
handle={fullScreenHandle}
refetch={refetch}
/>
<PanelsAndSectionsLayout layouts={layouts} panels={panels} />
<PanelsAndSectionsLayout layouts={spec.layouts} panels={spec.panels} />
</div>
{/* Shared panel-type picker (V1 component): opened from any "New Panel"
trigger; navigates to the widget editor route on selection. */}

View File

@@ -13,7 +13,7 @@ import type { GridItem } from './utils';
* intentionally side-effect-free (no React, no network) so they can be unit
* tested and reused by the layout hooks. JSON pointers target the postable
* shape: `/spec/layouts/...`, `/spec/panels/...` (matches the existing V2
* patches in DashboardSettings/General and DashboardDescription).
* patches in DashboardSettings/Overview and DashboardDescription).
*/
const { add, replace, remove } = DashboardtypesPatchOpDTO;

View File

@@ -1,4 +1,3 @@
import { useEffect } from 'react';
import { useParams } from 'react-router-dom';
import { Typography } from '@signozhq/ui/typography';
@@ -16,13 +15,6 @@ function DashboardPageV2(): JSX.Element {
});
const dashboard = data?.data;
const name = dashboard?.spec?.display?.name;
useEffect(() => {
if (name) {
document.title = name;
}
}, [name]);
if (isLoading) {
return <Spinner tip="Loading dashboard..." />;

View File

@@ -38,7 +38,7 @@ func newTestDashboardV2(t *testing.T, orgID valuer.UUID, source Source) *Dashboa
FillMode: FillModeSolid,
SpanGaps: SpanGaps{FillLessThan: valuer.MustParseTextDuration("60s")},
},
Legend: Legend{Position: LegendPositionBottom},
Legend: Legend{Position: LegendPositionBottom, Mode: LegendModeList},
},
},
Queries: []Query{

View File

@@ -569,6 +569,24 @@ func TestInvalidateBadPanelSpecValues(t *testing.T) {
}`,
wantContain: "legend position",
},
{
name: "bad legend mode",
data: `{
"panels": {
"p1": {
"kind": "Panel",
"spec": {
"plugin": {
"kind": "signoz/BarChartPanel",
"spec": {"legend": {"mode": "grid"}}
}
}
}
},
"layouts": []
}`,
wantContain: "legend mode",
},
{
name: "bad threshold format",
data: `{
@@ -634,6 +652,39 @@ func TestInvalidateBadPanelSpecValues(t *testing.T) {
}
}
// Label on ThresholdWithLabel is optional — the backend never reads it, so a
// threshold with an omitted or empty label must validate cleanly.
func TestThresholdLabelOptional(t *testing.T) {
for _, tt := range []struct {
name string
threshold string
}{
{name: "label omitted", threshold: `{"value": 100, "color": "Red"}`},
{name: "label empty", threshold: `{"value": 100, "color": "Red", "label": ""}`},
} {
t.Run(tt.name, func(t *testing.T) {
data := []byte(`{
"panels": {
"p1": {
"kind": "Panel",
"spec": {
"plugin": {"kind": "signoz/TimeSeriesPanel", "spec": {"thresholds": [` + tt.threshold + `]}},
"queries": [{"kind": "time_series", "spec": {"plugin": {"kind": "signoz/PromQLQuery", "spec": {"name": "A", "query": "up"}}}}]
}
}
},
"layouts": []
}`)
d, err := unmarshalDashboard(data)
require.NoError(t, err, "threshold without a label should validate")
spec := d.Panels["p1"].Spec.Plugin.Spec.(*TimeSeriesPanelSpec)
require.Len(t, spec.Thresholds, 1)
require.Empty(t, spec.Thresholds[0].Label, "label should remain empty")
})
}
}
func TestInvalidatePanelWithoutQueries(t *testing.T) {
data := []byte(`{
"panels": {
@@ -749,11 +800,6 @@ func TestValidateRequiredFields(t *testing.T) {
data: wrapPanel("signoz/TimeSeriesPanel", `{"thresholds": [{"value": 100, "label": "high", "color": ""}]}`),
wantContain: "Color",
},
{
name: "ThresholdWithLabel missing label",
data: wrapPanel("signoz/TimeSeriesPanel", `{"thresholds": [{"value": 100, "color": "Red", "label": ""}]}`),
wantContain: "Label",
},
{
name: "ComparisonThreshold missing value",
data: wrapPanel("signoz/NumberPanel", `{"thresholds": [{"operator": "above", "format": "text", "color": "Red"}]}`),
@@ -811,10 +857,11 @@ func TestTimeSeriesPanelDefaults(t *testing.T) {
require.Equal(t, "2", spec.Formatting.DecimalPrecision.ValueOrDefault(), "expected DecimalPrecision default 2")
require.Equal(t, "spline", spec.ChartAppearance.LineInterpolation.ValueOrDefault(), "expected LineInterpolation default spline")
require.Equal(t, "solid", spec.ChartAppearance.LineStyle.ValueOrDefault(), "expected LineStyle default solid")
require.Equal(t, "solid", spec.ChartAppearance.FillMode.ValueOrDefault(), "expected FillMode default solid")
require.Equal(t, "none", spec.ChartAppearance.FillMode.ValueOrDefault(), "expected FillMode default none")
require.False(t, spec.ChartAppearance.SpanGaps.FillOnlyBelow, "expected SpanGaps.FillOnlyBelow default false")
require.Equal(t, "global_time", spec.Visualization.TimePreference.ValueOrDefault(), "expected TimePreference default global_time")
require.Equal(t, "bottom", spec.Legend.Position.ValueOrDefault(), "expected LegendPosition default bottom")
require.Equal(t, "list", spec.Legend.Mode.ValueOrDefault(), "expected LegendMode default list")
// Re-marshal the full dashboard (what we'd store in DB / return in API response)
// and verify the output contains the default values.
@@ -825,9 +872,10 @@ func TestTimeSeriesPanelDefaults(t *testing.T) {
"decimalPrecision": `"2"`,
"lineInterpolation": `"spline"`,
"lineStyle": `"solid"`,
"fillMode": `"solid"`,
"fillMode": `"none"`,
"timePreference": `"global_time"`,
"position": `"bottom"`,
"mode": `"list"`,
} {
assert.Contains(t, outputStr, `"`+field+`":`+want, "expected stored/response JSON to contain %s:%s", field, want)
}
@@ -930,7 +978,7 @@ func TestStorageRoundTrip(t *testing.T) {
assert.Equal(t, "2", tsSpec.Formatting.DecimalPrecision.ValueOrDefault())
assert.Equal(t, "spline", tsSpec.ChartAppearance.LineInterpolation.ValueOrDefault())
assert.Equal(t, "solid", tsSpec.ChartAppearance.LineStyle.ValueOrDefault())
assert.Equal(t, "solid", tsSpec.ChartAppearance.FillMode.ValueOrDefault())
assert.Equal(t, "none", tsSpec.ChartAppearance.FillMode.ValueOrDefault())
assert.Equal(t, "global_time", tsSpec.Visualization.TimePreference.ValueOrDefault())
assert.Equal(t, "bottom", tsSpec.Legend.Position.ValueOrDefault())
numSpec := d.Panels["p2"].Spec.Plugin.Spec.(*NumberPanelSpec)
@@ -950,7 +998,7 @@ func TestStorageRoundTrip(t *testing.T) {
assert.Equal(t, "2", tsLoaded.Formatting.DecimalPrecision.ValueOrDefault(), "after load")
assert.Equal(t, "spline", tsLoaded.ChartAppearance.LineInterpolation.ValueOrDefault(), "after load")
assert.Equal(t, "solid", tsLoaded.ChartAppearance.LineStyle.ValueOrDefault(), "after load")
assert.Equal(t, "solid", tsLoaded.ChartAppearance.FillMode.ValueOrDefault(), "after load")
assert.Equal(t, "none", tsLoaded.ChartAppearance.FillMode.ValueOrDefault(), "after load")
assert.Equal(t, "global_time", tsLoaded.Visualization.TimePreference.ValueOrDefault(), "after load")
assert.Equal(t, "bottom", tsLoaded.Legend.Position.ValueOrDefault(), "after load")
numLoaded := loaded.Panels["p2"].Spec.Plugin.Spec.(*NumberPanelSpec)
@@ -966,7 +1014,7 @@ func TestStorageRoundTrip(t *testing.T) {
"decimalPrecision": `"2"`,
"lineInterpolation": `"spline"`,
"lineStyle": `"solid"`,
"fillMode": `"solid"`,
"fillMode": `"none"`,
"timePreference": `"global_time"`,
"position": `"bottom"`,
"format": `"text"`,

View File

@@ -241,6 +241,7 @@ type TableFormatting struct {
type Legend struct {
Position LegendPosition `json:"position"`
Mode LegendMode `json:"mode"`
CustomColors map[string]string `json:"customColors"`
}
@@ -248,7 +249,7 @@ type ThresholdWithLabel struct {
Value float64 `json:"value" validate:"required" required:"true"`
Unit string `json:"unit"`
Color string `json:"color" validate:"required" required:"true"`
Label string `json:"label" validate:"required" required:"true"`
Label string `json:"label"`
}
type ComparisonThreshold struct {
@@ -358,6 +359,47 @@ func (l *LegendPosition) UnmarshalJSON(data []byte) error {
}
}
type LegendMode struct{ valuer.String }
var (
LegendModeList = LegendMode{valuer.NewString("list")} // default
LegendModeTable = LegendMode{valuer.NewString("table")}
)
func (LegendMode) Enum() []any {
return []any{LegendModeList, LegendModeTable}
}
func (m LegendMode) ValueOrDefault() string {
if m.IsZero() {
return LegendModeList.StringValue()
}
return m.StringValue()
}
func (m LegendMode) MarshalJSON() ([]byte, error) {
return json.Marshal(m.ValueOrDefault())
}
func (m *LegendMode) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return errors.WrapInvalidInputf(err, ErrCodeDashboardInvalidInput, "invalid legend mode: must be a string, one of `list` or `table`")
}
if v == "" {
*m = LegendModeList
return nil
}
lm := LegendMode{valuer.NewString(v)}
switch lm {
case LegendModeList, LegendModeTable:
*m = lm
return nil
default:
return errors.NewInvalidInputf(ErrCodeDashboardInvalidInput, "invalid legend mode %q: must be `list` or `table`", v)
}
}
type ThresholdFormat struct{ valuer.String }
var (
@@ -534,9 +576,9 @@ func (ls *LineStyle) UnmarshalJSON(data []byte) error {
type FillMode struct{ valuer.String }
var (
FillModeSolid = FillMode{valuer.NewString("solid")} // default
FillModeSolid = FillMode{valuer.NewString("solid")}
FillModeGradient = FillMode{valuer.NewString("gradient")}
FillModeNone = FillMode{valuer.NewString("none")}
FillModeNone = FillMode{valuer.NewString("none")} // default
)
func (FillMode) Enum() []any {
@@ -545,7 +587,7 @@ func (FillMode) Enum() []any {
func (fm FillMode) ValueOrDefault() string {
if fm.IsZero() {
return FillModeSolid.StringValue()
return FillModeNone.StringValue()
}
return fm.StringValue()
}
@@ -560,7 +602,7 @@ func (fm *FillMode) UnmarshalJSON(data []byte) error {
return errors.WrapInvalidInputf(err, ErrCodeDashboardInvalidInput, "invalid fill mode: must be a string, one of `solid`, `gradient`, or `none`")
}
if v == "" {
*fm = FillModeSolid
*fm = FillModeNone
return nil
}
val := FillMode{valuer.NewString(v)}
@@ -573,12 +615,9 @@ func (fm *FillMode) UnmarshalJSON(data []byte) error {
}
}
// SpanGaps controls whether lines connect across null values.
// When FillOnlyBelow is false (default), all gaps are connected.
// When FillOnlyBelow is true, only gaps smaller than FillLessThan are connected.
type SpanGaps struct {
FillOnlyBelow bool `json:"fillOnlyBelow"`
FillLessThan valuer.TextDuration `json:"fillLessThan"`
FillOnlyBelow bool `json:"fillOnlyBelow" description:"Controls whether lines connect across null values. When false (default), all gaps are connected. When true, only gaps smaller than fillLessThan are connected."`
FillLessThan valuer.TextDuration `json:"fillLessThan" description:"The maximum gap size to connect when fillOnlyBelow is true. Gaps larger than this duration are left disconnected."`
}
type PrecisionOption struct{ valuer.String }

View File

@@ -1,67 +0,0 @@
package dashboardtypes
import (
"github.com/SigNoz/signoz/pkg/errors"
)
// V1 → V2 migration. The v1 storable shape is the frontend's `DashboardData`
// (see frontend/src/types/api/dashboard/getAll.ts); v2 is DashboardV2 /
// DashboardSpec.
//
// Assumes the v1 widget query data has already been migrated to v5 shape
// (transition.dashboardMigrateV5). Pre-v5 builder queries will produce
// invalid v2 envelopes — run the v4→v5 migration first.
//
// The conversion is split across sibling files by concern:
// - perses_v1_to_v2_tags.go tags
// - perses_v1_to_v2_panels.go widgets → panels (+ panel field mappers)
// - perses_v1_to_v2_queries.go widget queries
// - perses_v1_to_v2_layouts.go grid layouts and sections
// - perses_v1_to_v2_variables.go variables
// - perses_v1_to_v2_helpers.go generic map/slice accessors
// ══════════════════════════════════════════════
// Entry point
// ══════════════════════════════════════════════
func (storable StorableDashboard) IsV2() bool {
metadata, _ := storable.Data["metadata"].(map[string]any)
if metadata == nil {
return false
}
version, _ := metadata["schemaVersion"].(string)
return version == SchemaVersion
}
func (storable StorableDashboard) ConvertV1ToV2() (*DashboardV2, error) {
if storable.IsV2() {
return nil, errors.Newf(errors.TypeInvalidInput, ErrCodeDashboardInvalidData, "dashboard %s is already in %s schema", storable.ID, SchemaVersion)
}
image, _ := storable.Data["image"].(string)
title, _ := storable.Data["title"].(string)
description, _ := storable.Data["description"].(string)
spec := DashboardSpec{
Display: Display{Name: title, Description: description},
Variables: convertV1Variables(storable.Data["variables"]),
Panels: convertV1Panels(storable.Data["widgets"]),
Layouts: convertV1Layouts(storable.Data),
}
return &DashboardV2{
Identifiable: storable.Identifiable,
TimeAuditable: storable.TimeAuditable,
UserAuditable: storable.UserAuditable,
OrgID: storable.OrgID,
Locked: storable.Locked,
Source: storable.Source,
DashboardV2MetadataBase: DashboardV2MetadataBase{
SchemaVersion: SchemaVersion,
Image: image,
},
Name: storable.Name,
Tags: convertV1TagsForOrg(storable.OrgID, storable.Data["tags"]),
Spec: spec,
}, nil
}

View File

@@ -1,85 +0,0 @@
package dashboardtypes
import "encoding/json"
// ══════════════════════════════════════════════
// Generic helpers
// ══════════════════════════════════════════════
// ptrValueAt is the pointer-returning sibling of valueAt: it returns *T so the
// caller can tell "absent / wrong type" (nil) apart from a present zero value.
// Used for optional fields like soft axis bounds and histogram bucket sizing.
func ptrValueAt[T any](raw any, key string) *T {
m, ok := raw.(map[string]any)
if !ok {
return nil
}
v, ok := m[key].(T)
if !ok {
return nil
}
return &v
}
func readStringMap(raw any) map[string]string {
m, ok := raw.(map[string]any)
if !ok || len(m) == 0 {
return nil
}
out := make(map[string]string, len(m))
for k, v := range m {
if s, ok := v.(string); ok {
out[k] = s
}
}
return out
}
func readSliceOfMaps(raw any) []map[string]any {
rawSlice, ok := raw.([]any)
if !ok {
return nil
}
out := make([]map[string]any, 0, len(rawSlice))
for _, item := range rawSlice {
if m, ok := item.(map[string]any); ok {
out = append(out, m)
}
}
return out
}
// valueAt reads key from raw (when raw is a map[string]any) and returns its
// value as T, or the zero value of T if raw isn't a map, the key is absent, or
// the stored value isn't a T. Used to pull typed fields out of the untyped v1
// dashboard blob.
func valueAt[T any](raw any, key string) T {
var zero T
m, ok := raw.(map[string]any)
if !ok {
return zero
}
v, _ := m[key].(T)
return v
}
// intAt is a thin wrapper over valueAt: JSON decodes numbers as float64, so an
// integer field must be read as float64 and narrowed.
func intAt(raw any, key string) int {
return int(valueAt[float64](raw, key))
}
// decodeMapInto converts an untyped map[string]any into a typed T by
// round-tripping through JSON, letting encoding/json (struct tags, custom
// UnmarshalJSON) do the field mapping instead of hand-copying out of the map.
func decodeMapInto[T any](src map[string]any) (T, error) {
var dst T
bytes, err := json.Marshal(src)
if err != nil {
return dst, err
}
if err := json.Unmarshal(bytes, &dst); err != nil {
return dst, err
}
return dst, nil
}

View File

@@ -1,138 +0,0 @@
package dashboardtypes
import (
"fmt"
"sort"
"github.com/perses/spec/go/common"
"github.com/perses/spec/go/dashboard"
)
// ══════════════════════════════════════════════
// Layouts (data.layout + data.panelMap)
// ══════════════════════════════════════════════
// convertV1Layouts groups v1 react-grid-layout entries by section. Each row
// widget (panelTypes == "row") in `widgets` plus its `panelMap` entry becomes
// a separate v2 grid layout with a collapsible display. Widgets that are not
// part of any section land in a default unnamed grid (added only if any such
// widgets exist).
func convertV1Layouts(data StorableDashboardData) []Layout {
layoutsRaw := readSliceOfMaps(data["layout"])
if len(layoutsRaw) == 0 {
return nil
}
panelMap, _ := data["panelMap"].(map[string]any)
rows, widgetIDToRow := indexRows(data["widgets"], panelMap)
type bucket struct {
title string
open bool
isRow bool
layouts []map[string]any
ordering int
}
rootBucket := &bucket{}
rowBuckets := make(map[string]*bucket, len(rows))
for _, row := range rows {
rowBuckets[row.id] = &bucket{
title: row.title,
open: !row.collapsed,
isRow: true,
ordering: row.ordering,
}
}
for _, item := range layoutsRaw {
widgetID, _ := item["i"].(string)
if widgetID == "" {
continue
}
if rowID, ok := widgetIDToRow[widgetID]; ok {
if b, ok := rowBuckets[rowID]; ok {
b.layouts = append(b.layouts, item)
continue
}
}
// row widgets themselves shouldn't end up as items in the root grid;
// they exist only to anchor their section.
if _, isRow := rowBuckets[widgetID]; isRow {
continue
}
rootBucket.layouts = append(rootBucket.layouts, item)
}
out := make([]Layout, 0, len(rows)+1)
if len(rootBucket.layouts) > 0 {
out = append(out, gridLayoutFromBucket("", true, false, rootBucket.layouts))
}
rowKeys := make([]string, 0, len(rowBuckets))
for id := range rowBuckets {
rowKeys = append(rowKeys, id)
}
sort.SliceStable(rowKeys, func(i, j int) bool {
return rowBuckets[rowKeys[i]].ordering < rowBuckets[rowKeys[j]].ordering
})
for _, id := range rowKeys {
b := rowBuckets[id]
out = append(out, gridLayoutFromBucket(b.title, b.open, true, b.layouts))
}
return out
}
type rowInfo struct {
id string
title string
collapsed bool
ordering int
}
func indexRows(widgetsRaw any, panelMap map[string]any) ([]rowInfo, map[string]string) {
widgets := readSliceOfMaps(widgetsRaw)
rows := make([]rowInfo, 0)
widgetToRow := make(map[string]string)
for i, w := range widgets {
if t, _ := w["panelTypes"].(string); t != "row" {
continue
}
id, _ := w["id"].(string)
if id == "" {
continue
}
title, _ := w["title"].(string)
row := rowInfo{id: id, title: title, ordering: i}
if pm, ok := panelMap[id].(map[string]any); ok {
row.collapsed = valueAt[bool](pm, "collapsed")
for _, child := range readSliceOfMaps(pm["widgets"]) {
if childID, _ := child["i"].(string); childID != "" {
widgetToRow[childID] = id
}
}
}
rows = append(rows, row)
}
return rows, widgetToRow
}
func gridLayoutFromBucket(title string, open, isRow bool, items []map[string]any) Layout {
spec := dashboard.GridLayoutSpec{Items: make([]dashboard.GridItem, 0, len(items))}
if title != "" || isRow {
spec.Display = &dashboard.GridLayoutDisplay{Title: title}
if isRow {
spec.Display.Collapse = &dashboard.GridLayoutCollapse{Open: open}
}
}
for _, item := range items {
widgetID, _ := item["i"].(string)
spec.Items = append(spec.Items, dashboard.GridItem{
X: intAt(item, "x"),
Y: intAt(item, "y"),
Width: intAt(item, "w"),
Height: intAt(item, "h"),
Content: &common.JSONRef{Ref: fmt.Sprintf("#/spec/panels/%s", widgetID)},
})
}
return Layout{Kind: dashboard.KindGridLayout, Spec: &spec}
}

View File

@@ -1,449 +0,0 @@
package dashboardtypes
import (
"encoding/json"
"strconv"
"strings"
"time"
"github.com/SigNoz/signoz/pkg/types/telemetrytypes"
"github.com/SigNoz/signoz/pkg/valuer"
)
// ══════════════════════════════════════════════
// Widgets → Panels
// ══════════════════════════════════════════════
// convertV1Panels walks the v1 `widgets` array and produces v2 panels keyed by
// the v1 widget id. WidgetRow entries (panelTypes == "row") are dropped here
// and consumed by convertV1Layouts as section headers.
func convertV1Panels(raw any) map[string]*Panel {
rawSlice, ok := raw.([]any)
if !ok {
return nil
}
panels := make(map[string]*Panel, len(rawSlice))
for _, item := range rawSlice {
widget, ok := item.(map[string]any)
if !ok {
continue
}
id, _ := widget["id"].(string)
if id == "" {
continue
}
panelType, _ := widget["panelTypes"].(string)
var panel *Panel
switch panelType {
case "graph":
panel = convertGraphWidget(widget)
case "bar":
panel = convertBarWidget(widget)
case "value":
panel = convertValueWidget(widget)
case "pie":
panel = convertPieWidget(widget)
case "table":
panel = convertTableWidget(widget)
case "histogram":
panel = convertHistogramWidget(widget)
case "list":
panel = convertListWidget(widget)
default:
// "row" (section header) is handled by the layout pass; unknown kinds skipped.
continue
}
if panel == nil {
continue
}
panels[id] = panel
}
return panels
}
func convertGraphWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindTimeSeries,
Spec: &TimeSeriesPanelSpec{
Visualization: TimeSeriesVisualization{
BasicVisualization: basicVisualization(w),
FillSpans: valueAt[bool](w, "fillSpans"),
},
Formatting: panelFormatting(w),
ChartAppearance: TimeSeriesChartAppearance{
LineInterpolation: mapV1Enum(w["lineInterpolation"], LineInterpolationSpline,
LineInterpolationLinear, LineInterpolationSpline, LineInterpolationStepAfter, LineInterpolationStepBefore),
ShowPoints: valueAt[bool](w, "showPoints"),
LineStyle: mapV1Enum(w["lineStyle"], LineStyleSolid, LineStyleSolid, LineStyleDashed),
FillMode: mapV1Enum(w["fillMode"], FillModeSolid, FillModeSolid, FillModeGradient, FillModeNone),
SpanGaps: mapV1SpanGaps(w["spanGaps"]),
},
Axes: axesFromWidget(w),
Legend: legendFromWidget(w),
Thresholds: mapV1ThresholdsWithLabel(w["thresholds"]),
},
},
Queries: convertV1WidgetQuery(w, PanelKindTimeSeries),
},
}
}
func convertBarWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindBarChart,
Spec: &BarChartPanelSpec{
Visualization: BarChartVisualization{
BasicVisualization: basicVisualization(w),
FillSpans: valueAt[bool](w, "fillSpans"),
StackedBarChart: valueAt[bool](w, "stackedBarChart"),
},
Formatting: panelFormatting(w),
Axes: axesFromWidget(w),
Legend: legendFromWidget(w),
Thresholds: mapV1ThresholdsWithLabel(w["thresholds"]),
},
},
Queries: convertV1WidgetQuery(w, PanelKindBarChart),
},
}
}
func convertValueWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindNumber,
Spec: &NumberPanelSpec{
Visualization: basicVisualization(w),
Formatting: panelFormatting(w),
Thresholds: mapV1ComparisonThresholds(w["thresholds"]),
},
},
Queries: convertV1WidgetQuery(w, PanelKindNumber),
},
}
}
func convertPieWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindPieChart,
Spec: &PieChartPanelSpec{
Visualization: basicVisualization(w),
Formatting: panelFormatting(w),
Legend: legendFromWidget(w),
},
},
Queries: convertV1WidgetQuery(w, PanelKindPieChart),
},
}
}
func convertTableWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindTable,
Spec: &TablePanelSpec{
Visualization: basicVisualization(w),
Formatting: TableFormatting{
ColumnUnits: readStringMap(w["columnUnits"]),
DecimalPrecision: mapV1Precision(w["decimalPrecision"]),
},
Thresholds: mapV1TableThresholds(w["thresholds"]),
},
},
Queries: convertV1WidgetQuery(w, PanelKindTable),
},
}
}
func convertHistogramWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindHistogram,
Spec: &HistogramPanelSpec{
HistogramBuckets: HistogramBuckets{
BucketCount: ptrValueAt[float64](w, "bucketCount"),
BucketWidth: ptrValueAt[float64](w, "bucketWidth"),
MergeAllActiveQueries: valueAt[bool](w, "mergeAllActiveQueries"),
},
Legend: legendFromWidget(w),
},
},
Queries: convertV1WidgetQuery(w, PanelKindHistogram),
},
}
}
func convertListWidget(w map[string]any) *Panel {
return &Panel{
Kind: "Panel",
Spec: PanelSpec{
Display: widgetDisplay(w),
Plugin: PanelPlugin{
Kind: PanelKindList,
Spec: &ListPanelSpec{
SelectFields: mapV1SelectFields(w),
},
},
Queries: convertV1WidgetQuery(w, PanelKindList),
},
}
}
// ══════════════════════════════════════════════
// Panel-spec shared helpers
// ══════════════════════════════════════════════
func widgetDisplay(w map[string]any) Display {
title, _ := w["title"].(string)
description, _ := w["description"].(string)
return Display{Name: title, Description: description}
}
func basicVisualization(w map[string]any) BasicVisualization {
return BasicVisualization{TimePreference: mapV1TimePreference(w["timePreferance"])}
}
func panelFormatting(w map[string]any) PanelFormatting {
unit, _ := w["yAxisUnit"].(string)
return PanelFormatting{Unit: unit, DecimalPrecision: mapV1Precision(w["decimalPrecision"])}
}
func axesFromWidget(w map[string]any) Axes {
return Axes{
SoftMin: ptrValueAt[float64](w, "softMin"),
SoftMax: ptrValueAt[float64](w, "softMax"),
IsLogScale: valueAt[bool](w, "isLogScale"),
}
}
func legendFromWidget(w map[string]any) Legend {
return Legend{
Position: mapV1Enum(w["legendPosition"], LegendPositionBottom, LegendPositionBottom, LegendPositionRight),
CustomColors: readStringMap(w["customLegendColors"]),
}
}
func mapV1SelectFields(w map[string]any) []telemetrytypes.TelemetryFieldKey {
if raw, ok := w["selectedLogFields"].([]any); ok && len(raw) > 0 {
return decodeTelemetryFields(raw)
}
if raw, ok := w["selectedTracesFields"].([]any); ok && len(raw) > 0 {
return decodeTelemetryFields(raw)
}
return nil
}
func decodeTelemetryFields(raw []any) []telemetrytypes.TelemetryFieldKey {
bytes, err := json.Marshal(raw)
if err != nil {
return nil
}
var fields []telemetrytypes.TelemetryFieldKey
if err := json.Unmarshal(bytes, &fields); err != nil {
return nil
}
return fields
}
// ══════════════════════════════════════════════
// Panel field mappers
// ══════════════════════════════════════════════
// v1 stores timePreferance as `GLOBAL_TIME`, `LAST_5_MIN`, … (see
// frontend/src/container/NewWidget/RightContainer/timeItems.ts). v2 uses the
// lowercase form, so the translation is just downcase.
func mapV1TimePreference(raw any) TimePreference {
s, ok := raw.(string)
if !ok || s == "" {
return TimePreferenceGlobalTime
}
candidate := TimePreference{valuer.NewString(strings.ToLower(s))}
for _, allowed := range candidate.Enum() {
if allowed == candidate {
return candidate
}
}
return TimePreferenceGlobalTime
}
func mapV1Precision(raw any) PrecisionOption {
switch v := raw.(type) {
case string:
candidate := PrecisionOption{valuer.NewString(v)}
for _, allowed := range candidate.Enum() {
if allowed == candidate {
return candidate
}
}
case float64:
n := int(v)
if n >= 0 && n <= 4 {
return PrecisionOption{valuer.NewString(strconv.Itoa(n))}
}
}
return PrecisionOption2
}
// mapV1Enum picks the v1 string value if it matches one of the allowed v2
// values, otherwise returns the fallback. v1 frontend enums (lineInterpolation,
// lineStyle, fillMode, legendPosition) already use the v2 lowercase form.
func mapV1Enum[T interface{ StringValue() string }](raw any, fallback T, allowed ...T) T {
s, ok := raw.(string)
if !ok || s == "" {
return fallback
}
for _, a := range allowed {
if a.StringValue() == s {
return a
}
}
return fallback
}
// v1 spanGaps is `boolean | number`. true → span every gap; false → never span;
// a number is interpreted (per frontend SeriesProps.spanGaps docs) as an
// X-axis threshold in seconds.
func mapV1SpanGaps(raw any) SpanGaps {
switch v := raw.(type) {
case bool:
if v {
return SpanGaps{FillOnlyBelow: false}
}
return SpanGaps{FillOnlyBelow: true}
case float64:
dur, err := valuer.ParseTextDuration(time.Duration(v * float64(time.Second)).String())
if err != nil {
return SpanGaps{FillOnlyBelow: false}
}
return SpanGaps{FillOnlyBelow: true, FillLessThan: dur}
}
return SpanGaps{FillOnlyBelow: false}
}
func mapV1ThresholdsWithLabel(raw any) []ThresholdWithLabel {
rawSlice := readSliceOfMaps(raw)
if len(rawSlice) == 0 {
return nil
}
out := make([]ThresholdWithLabel, 0, len(rawSlice))
for _, t := range rawSlice {
color, _ := t["thresholdColor"].(string)
label, _ := t["thresholdLabel"].(string)
if color == "" || label == "" {
// v2 ThresholdWithLabel requires both; drop entries that wouldn't validate.
continue
}
value, _ := t["thresholdValue"].(float64)
unit, _ := t["thresholdUnit"].(string)
out = append(out, ThresholdWithLabel{Value: value, Unit: unit, Color: color, Label: label})
}
if len(out) == 0 {
return nil
}
return out
}
func mapV1ComparisonThresholds(raw any) []ComparisonThreshold {
rawSlice := readSliceOfMaps(raw)
if len(rawSlice) == 0 {
return nil
}
out := make([]ComparisonThreshold, 0, len(rawSlice))
for _, t := range rawSlice {
color, _ := t["thresholdColor"].(string)
if color == "" {
continue
}
out = append(out, ComparisonThreshold{
Value: valueAt[float64](t, "thresholdValue"),
Operator: mapV1ComparisonOperator(t["thresholdOperator"]),
Unit: valueAt[string](t, "thresholdUnit"),
Color: color,
Format: mapV1ThresholdFormat(t["thresholdFormat"]),
})
}
if len(out) == 0 {
return nil
}
return out
}
func mapV1TableThresholds(raw any) []TableThreshold {
rawSlice := readSliceOfMaps(raw)
if len(rawSlice) == 0 {
return nil
}
out := make([]TableThreshold, 0, len(rawSlice))
for _, t := range rawSlice {
color, _ := t["thresholdColor"].(string)
columnName, _ := t["thresholdTableOptions"].(string)
if color == "" || columnName == "" {
continue
}
out = append(out, TableThreshold{
ComparisonThreshold: ComparisonThreshold{
Value: valueAt[float64](t, "thresholdValue"),
Operator: mapV1ComparisonOperator(t["thresholdOperator"]),
Unit: valueAt[string](t, "thresholdUnit"),
Color: color,
Format: mapV1ThresholdFormat(t["thresholdFormat"]),
},
ColumnName: columnName,
})
}
if len(out) == 0 {
return nil
}
return out
}
func mapV1ComparisonOperator(raw any) ComparisonOperator {
s, _ := raw.(string)
switch s {
case ">":
return ComparisonOperatorAbove
case ">=":
return ComparisonOperatorAboveOrEqual
case "<":
return ComparisonOperatorBelow
case "<=":
return ComparisonOperatorBelowOrEqual
case "=":
return ComparisonOperatorEqual
case "!=":
return ComparisonOperatorNotEqual
}
return ComparisonOperatorAbove
}
func mapV1ThresholdFormat(raw any) ThresholdFormat {
s, _ := raw.(string)
switch strings.ToLower(s) {
case "background":
return ThresholdFormatBackground
case "text":
return ThresholdFormatText
}
return ThresholdFormatText
}

View File

@@ -1,249 +0,0 @@
package dashboardtypes
import (
"encoding/json"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/transition"
qb "github.com/SigNoz/signoz/pkg/types/querybuildertypes/querybuildertypesv5"
"github.com/SigNoz/signoz/pkg/types/telemetrytypes"
)
// ══════════════════════════════════════════════
// Queries
// ══════════════════════════════════════════════
// convertV1WidgetQuery returns exactly one Query (per Spec.Validate). The
// kind chosen depends on the v1 widget query shape:
// - single promql → signoz/PromQLQuery
// - single clickhouse_sql → signoz/ClickHouseSQL
// - exactly one builder query → signoz/BuilderQuery (PanelKindList only)
// - everything else → signoz/CompositeQuery wrapping all envelopes
//
// Builder queries are routed through transition.WrapInV5Envelope, which
// translates v4 builder-field names (orderBy/selectColumns/dataSource) into
// their v5 equivalents and adds the `signal` field required by
// BuilderQuerySpec's per-signal dispatch.
func convertV1WidgetQuery(widget map[string]any, panelKind PanelPluginKind) []Query {
envelopes, signal := collectV1QueryEnvelopes(widget)
if len(envelopes) == 0 {
return nil
}
requestType := requestTypeForPanel(panelKind)
// List panels must use signoz/BuilderQuery (the only kind in
// allowedQueryKinds[PanelKindList]).
if panelKind == PanelKindList {
first := envelopes[0]
if t, _ := first["type"].(string); t == string(qb.QueryTypeBuilder.StringValue()) {
spec := parseBuilderQuerySpec(first["spec"], signal)
if spec == nil {
return nil
}
return []Query{{
Kind: requestType,
Spec: QuerySpec{
Name: valueAt[string](first["spec"], "name"),
Plugin: QueryPlugin{
Kind: QueryKindBuilder,
Spec: &BuilderQuerySpec{Spec: spec},
},
},
}}
}
}
// Single non-builder query → use its native kind directly. Cleaner JSON
// than wrapping in CompositeQuery for the common single-query case.
if len(envelopes) == 1 {
if q := singleQueryFromEnvelope(envelopes[0], requestType); q != nil {
return []Query{*q}
}
}
// Default: wrap in CompositeQuery.
composite, err := parseCompositeFromEnvelopes(envelopes)
if err != nil || composite == nil {
return nil
}
return []Query{{
Kind: requestType,
Spec: QuerySpec{
Plugin: QueryPlugin{Kind: QueryKindComposite, Spec: composite},
},
}}
}
// requestTypeForPanel maps a v2 panel plugin kind to the request type (result
// shape) its queries produce. Mirrors the shape each visualization consumes:
// time series for line/bar, scalar for number/pie/table, distribution for
// histogram, raw rows for list.
func requestTypeForPanel(panelKind PanelPluginKind) qb.RequestType {
switch panelKind {
case PanelKindTimeSeries, PanelKindBarChart:
return qb.RequestTypeTimeSeries
case PanelKindNumber, PanelKindPieChart, PanelKindTable:
return qb.RequestTypeScalar
case PanelKindHistogram:
return qb.RequestTypeDistribution
case PanelKindList:
return qb.RequestTypeRaw
}
return qb.RequestTypeTimeSeries
}
// collectV1QueryEnvelopes inspects widget.query.queryType and produces a
// flattened list of v5-shaped envelopes. The returned signal is the dominant
// builder signal (if any), used for typed builder-query dispatch.
func collectV1QueryEnvelopes(widget map[string]any) ([]map[string]any, telemetrytypes.Signal) {
queryMap, ok := widget["query"].(map[string]any)
if !ok {
return nil, telemetrytypes.Signal{}
}
queryType, _ := queryMap["queryType"].(string)
switch queryType {
case "promql":
var out []map[string]any
for _, q := range readSliceOfMaps(queryMap["promql"]) {
out = append(out, promQLEnvelope(q))
}
return out, telemetrytypes.Signal{}
case "clickhouse_sql":
var out []map[string]any
for _, q := range readSliceOfMaps(queryMap["clickhouse_sql"]) {
out = append(out, clickhouseEnvelope(q))
}
return out, telemetrytypes.Signal{}
case "builder":
builder, _ := queryMap["builder"].(map[string]any)
if builder == nil {
return nil, telemetrytypes.Signal{}
}
var out []map[string]any
var signal telemetrytypes.Signal
wrap := transition.NewMigrateCommon(nil)
for _, q := range readSliceOfMaps(builder["queryData"]) {
name := valueAt[string](q, "queryName")
out = append(out, wrap.WrapInV5Envelope(name, q, string(qb.QueryTypeBuilder.StringValue())))
if signal.IsZero() {
signal = signalFromDataSource(q["dataSource"])
}
}
for _, f := range readSliceOfMaps(builder["queryFormulas"]) {
name := valueAt[string](f, "queryName")
out = append(out, wrap.WrapInV5Envelope(name, f, string(qb.QueryTypeFormula.StringValue())))
}
for _, op := range readSliceOfMaps(builder["queryTraceOperator"]) {
name := valueAt[string](op, "queryName")
out = append(out, wrap.WrapInV5Envelope(name, op, string(qb.QueryTypeTraceOperator.StringValue())))
}
return out, signal
}
return nil, telemetrytypes.Signal{}
}
func promQLEnvelope(q map[string]any) map[string]any {
return map[string]any{
"type": qb.QueryTypePromQL.StringValue(),
"spec": map[string]any{
"name": q["name"],
"query": q["query"],
"disabled": q["disabled"],
"legend": q["legend"],
},
}
}
func clickhouseEnvelope(q map[string]any) map[string]any {
return map[string]any{
"type": qb.QueryTypeClickHouseSQL.StringValue(),
"spec": map[string]any{
"name": q["name"],
"query": q["query"],
"disabled": q["disabled"],
"legend": q["legend"],
},
}
}
// singleQueryFromEnvelope returns a typed Query for an envelope whose type is
// promql/clickhouse_sql. Builder envelopes always fall through to Composite so
// composite-only panel kinds (TimeSeries/BarChart/etc.) get uniform queries.
func singleQueryFromEnvelope(envelope map[string]any, requestType qb.RequestType) *Query {
t, _ := envelope["type"].(string)
spec, _ := envelope["spec"].(map[string]any)
switch t {
case qb.QueryTypePromQL.StringValue():
prom, err := decodeMapInto[qb.PromQuery](spec)
if err != nil {
return nil
}
return &Query{
Kind: requestType,
Spec: QuerySpec{
Name: prom.Name,
Plugin: QueryPlugin{Kind: QueryKindPromQL, Spec: &prom},
},
}
case qb.QueryTypeClickHouseSQL.StringValue():
ch, err := decodeMapInto[qb.ClickHouseQuery](spec)
if err != nil {
return nil
}
return &Query{
Kind: requestType,
Spec: QuerySpec{
Name: ch.Name,
Plugin: QueryPlugin{Kind: QueryKindClickHouseSQL, Spec: &ch},
},
}
}
return nil
}
func parseCompositeFromEnvelopes(envelopes []map[string]any) (*CompositeQuerySpec, error) {
bytes, err := json.Marshal(envelopes)
if err != nil {
return nil, errors.WrapInternalf(err, errors.CodeInternal, "marshal v1 query envelopes")
}
var parsed []qb.QueryEnvelope
if err := json.Unmarshal(bytes, &parsed); err != nil {
return nil, errors.WrapInvalidInputf(err, ErrCodeDashboardInvalidWidgetQuery, "decode v5 query envelopes")
}
return &CompositeQuerySpec{Queries: parsed}, nil
}
func parseBuilderQuerySpec(rawSpec any, signal telemetrytypes.Signal) any {
spec, ok := rawSpec.(map[string]any)
if !ok {
return nil
}
if !signal.IsZero() {
spec["signal"] = signal.StringValue()
}
bytes, err := json.Marshal(spec)
if err != nil {
return nil
}
parsed, err := qb.UnmarshalBuilderQueryBySignal(bytes)
if err != nil {
return nil
}
return parsed
}
func signalFromDataSource(raw any) telemetrytypes.Signal {
s, _ := raw.(string)
switch s {
case "traces":
return telemetrytypes.SignalTraces
case "logs":
return telemetrytypes.SignalLogs
case "metrics":
return telemetrytypes.SignalMetrics
}
return telemetrytypes.Signal{}
}

View File

@@ -1,110 +0,0 @@
package dashboardtypes
import (
"strings"
"github.com/SigNoz/signoz/pkg/types/coretypes"
"github.com/SigNoz/signoz/pkg/types/tagtypes"
"github.com/SigNoz/signoz/pkg/valuer"
)
// ══════════════════════════════════════════════
// Tags
// ══════════════════════════════════════════════
// v1 carries tags as a flat []string; v2 tags are (key, value) pairs. Each v1
// string is normalized into a pair following the rules in pkg/types/migration.md
// (separator split, empty-side fallback, reserved-key prefix, `/` scrub). Tags
// that normalize to the same (lower(key), lower(value)) within a dashboard are
// collapsed, first occurrence winning the display casing.
//
// Characters still illegal after normalization (e.g. spaces) are left intact:
// such tags fail tag validation downstream and are logged for the customer to
// fix, per the migration's dry-run plan.
// defaultV1TagKey is the key assigned when a v1 tag string has no usable
// separator (or one side of the split is empty).
const defaultV1TagKey = "tag"
func convertV1TagsForOrg(orgID valuer.UUID, raw any) []*tagtypes.Tag {
rawSlice, ok := raw.([]any)
if !ok {
return nil
}
seen := make(map[string]struct{}, len(rawSlice))
out := make([]*tagtypes.Tag, 0, len(rawSlice))
for _, item := range rawSlice {
s, ok := item.(string)
if !ok {
continue
}
key, value, ok := normalizeV1Tag(s)
if !ok {
continue
}
dedupKey := strings.ToLower(key) + "\x00" + strings.ToLower(value)
if _, dup := seen[dedupKey]; dup {
continue
}
seen[dedupKey] = struct{}{}
out = append(out, tagtypes.NewTag(orgID, coretypes.KindDashboard, key, value))
}
return out
}
// normalizeV1Tag derives a (key, value) pair from one v1 tag string per the
// ordered rules in pkg/types/migration.md. ok is false when the string has no
// usable content (empty after trimming, or a bare separator).
func normalizeV1Tag(s string) (string, string, bool) {
s = strings.TrimSpace(s)
if s == "" {
return "", "", false
}
var key, value string
var ok bool
switch {
case strings.Contains(s, ":"):
key, value, ok = splitV1Tag(s, ":")
// Only the first ":" separates key from value; collapse the rest.
value = strings.ReplaceAll(value, ":", "_")
case strings.Contains(s, "/"):
key, value, ok = splitV1Tag(s, "/")
default:
key, value, ok = defaultV1TagKey, s, true
}
if !ok {
return "", "", false
}
// Reserved-key collision: prefix with "_" so the list-query DSL stays
// unambiguous. Matched case-insensitively against the DSL column names.
if _, reserved := reservedDSLKeys[DSLKey(strings.ToLower(key))]; reserved {
key = "_" + key
}
// Stored tags must never contain "/" (input validation forbids it).
key = strings.ReplaceAll(key, "/", "_")
value = strings.ReplaceAll(value, "/", "_")
return key, value, true
}
// splitV1Tag splits s at the first occurrence of sep, trimming each side. An
// empty side collapses to the default key with the non-empty side as the value;
// if both sides are empty (a bare separator) ok is false.
func splitV1Tag(s, sep string) (string, string, bool) {
left, right, _ := strings.Cut(s, sep)
left = strings.TrimSpace(left)
right = strings.TrimSpace(right)
switch {
case left == "" && right == "":
return "", "", false
case left == "":
return defaultV1TagKey, right, true
case right == "":
return defaultV1TagKey, left, true
default:
return left, right, true
}
}

View File

@@ -1,766 +0,0 @@
package dashboardtypes
import (
"testing"
"time"
"github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/types/coretypes"
qb "github.com/SigNoz/signoz/pkg/types/querybuildertypes/querybuildertypesv5"
"github.com/SigNoz/signoz/pkg/valuer"
"github.com/perses/spec/go/dashboard"
"github.com/perses/spec/go/dashboard/variable"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestConvertV1TagsForOrg(t *testing.T) {
orgID := valuer.GenerateUUID()
type kv struct{ key, value string }
cases := []struct {
scenario string
rawTags any
expectedTags []kv
}{
{
scenario: "no separator uses the default key",
rawTags: []any{"apm", "latency", "throughput"},
expectedTags: []kv{{"tag", "apm"}, {"tag", "latency"}, {"tag", "throughput"}},
},
{
scenario: "colon splits into key and value",
rawTags: []any{"env:prod", "team : backend"},
expectedTags: []kv{{"env", "prod"}, {"team", "backend"}},
},
{
scenario: "slash splits into key and value when no colon present",
rawTags: []any{"team/backend"},
expectedTags: []kv{{"team", "backend"}},
},
{
scenario: "colon takes precedence over slash and slash is scrubbed",
rawTags: []any{"team/eng:prod", "team/eng:my/path"},
expectedTags: []kv{{"team_eng", "prod"}, {"team_eng", "my_path"}},
},
{
scenario: "empty left side falls back to the default key",
rawTags: []any{":prod"},
expectedTags: []kv{{"tag", "prod"}},
},
{
scenario: "empty right side keeps the left side as the value",
rawTags: []any{"env:"},
expectedTags: []kv{{"tag", "env"}},
},
{
scenario: "extra colons in the value collapse to underscores",
rawTags: []any{"a:b:c"},
expectedTags: []kv{{"a", "b_c"}},
},
{
scenario: "extra slashes in the value are scrubbed",
rawTags: []any{"a/b/c"},
expectedTags: []kv{{"a", "b_c"}},
},
{
scenario: "reserved key gets an underscore prefix",
rawTags: []any{"name:foo", "Source:bar"},
expectedTags: []kv{{"_name", "foo"}, {"_Source", "bar"}},
},
{
scenario: "drops empty, whitespace-only, and bare-separator entries",
rawTags: []any{"", " ", ":", "/", "apm"},
expectedTags: []kv{{"tag", "apm"}},
},
{
scenario: "dedupes case-insensitive duplicates, first casing wins",
rawTags: []any{"Env:Prod", "env:PROD"},
expectedTags: []kv{{"Env", "Prod"}},
},
{
scenario: "returns nil for missing tags field",
rawTags: nil,
expectedTags: nil,
},
{
scenario: "ignores non-string elements",
rawTags: []any{"apm", 42, true, "logs"},
expectedTags: []kv{{"tag", "apm"}, {"tag", "logs"}},
},
}
for _, tc := range cases {
t.Run(tc.scenario, func(t *testing.T) {
tags := convertV1TagsForOrg(orgID, tc.rawTags)
require.Len(t, tags, len(tc.expectedTags))
for i, expected := range tc.expectedTags {
assert.Equal(t, expected.key, tags[i].Key)
assert.Equal(t, expected.value, tags[i].Value)
assert.Equal(t, orgID, tags[i].OrgID)
assert.Equal(t, coretypes.KindDashboard, tags[i].Kind)
}
})
}
}
func TestConvertGraphWidgetToTimeSeriesPanel(t *testing.T) {
widget := map[string]any{
"id": "widget-1",
"panelTypes": "graph",
"title": "Request rate",
"description": "RPS over time",
"timePreferance": "LAST_1_HR",
"fillSpans": true,
"yAxisUnit": "reqps",
"decimalPrecision": float64(3),
"lineInterpolation": "linear",
"lineStyle": "dashed",
"fillMode": "gradient",
"showPoints": true,
"spanGaps": float64(60),
"softMin": float64(0),
"softMax": float64(100),
"isLogScale": true,
"legendPosition": "right",
"customLegendColors": map[string]any{"A": "#ff0000", "B": "#00ff00"},
"thresholds": []any{
map[string]any{
"thresholdValue": float64(90),
"thresholdUnit": "reqps",
"thresholdColor": "#ff0000",
"thresholdLabel": "high",
},
map[string]any{
"thresholdValue": float64(50),
"thresholdColor": "", // missing — must be dropped
"thresholdLabel": "missing-color",
},
},
}
panel := convertGraphWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindPanel, panel.Kind)
assert.Equal(t, "Request rate", panel.Spec.Display.Name)
assert.Equal(t, "RPS over time", panel.Spec.Display.Description)
assert.Equal(t, PanelKindTimeSeries, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*TimeSeriesPanelSpec)
require.True(t, ok, "panel plugin spec should be *TimeSeriesPanelSpec")
assert.Equal(t, TimePreferenceLast1Hr, spec.Visualization.TimePreference)
assert.True(t, spec.Visualization.FillSpans)
assert.Equal(t, "reqps", spec.Formatting.Unit)
assert.Equal(t, PrecisionOption3, spec.Formatting.DecimalPrecision)
assert.Equal(t, LineInterpolationLinear, spec.ChartAppearance.LineInterpolation)
assert.True(t, spec.ChartAppearance.ShowPoints)
assert.Equal(t, LineStyleDashed, spec.ChartAppearance.LineStyle)
assert.Equal(t, FillModeGradient, spec.ChartAppearance.FillMode)
assert.True(t, spec.ChartAppearance.SpanGaps.FillOnlyBelow)
assert.Equal(t, "1m0s", spec.ChartAppearance.SpanGaps.FillLessThan.StringValue())
require.NotNil(t, spec.Axes.SoftMin)
assert.Equal(t, float64(0), *spec.Axes.SoftMin)
require.NotNil(t, spec.Axes.SoftMax)
assert.Equal(t, float64(100), *spec.Axes.SoftMax)
assert.True(t, spec.Axes.IsLogScale)
assert.Equal(t, LegendPositionRight, spec.Legend.Position)
assert.Equal(t, map[string]string{"A": "#ff0000", "B": "#00ff00"}, spec.Legend.CustomColors)
require.Len(t, spec.Thresholds, 1, "threshold with missing color should be dropped")
assert.Equal(t, ThresholdWithLabel{Value: 90, Unit: "reqps", Color: "#ff0000", Label: "high"}, spec.Thresholds[0])
}
func TestConvertGraphWidgetDefaultsForMissingFields(t *testing.T) {
widget := map[string]any{
"id": "widget-1",
"panelTypes": "graph",
"title": "minimal",
}
panel := convertGraphWidget(widget)
require.NotNil(t, panel)
spec, ok := panel.Spec.Plugin.Spec.(*TimeSeriesPanelSpec)
require.True(t, ok)
assert.Equal(t, TimePreferenceGlobalTime, spec.Visualization.TimePreference)
assert.Equal(t, PrecisionOption2, spec.Formatting.DecimalPrecision)
assert.Equal(t, LineInterpolationSpline, spec.ChartAppearance.LineInterpolation)
assert.Equal(t, LineStyleSolid, spec.ChartAppearance.LineStyle)
assert.Equal(t, FillModeSolid, spec.ChartAppearance.FillMode)
assert.Equal(t, LegendPositionBottom, spec.Legend.Position)
assert.False(t, spec.ChartAppearance.SpanGaps.FillOnlyBelow)
assert.Nil(t, spec.Axes.SoftMin)
assert.Nil(t, spec.Axes.SoftMax)
assert.Empty(t, spec.Thresholds)
}
func TestConvertV1ToV2HappyPath(t *testing.T) {
orgID := valuer.GenerateUUID()
storable := &StorableDashboard{
Identifiable: types.Identifiable{ID: valuer.GenerateUUID()},
TimeAuditable: types.TimeAuditable{CreatedAt: time.Now(), UpdatedAt: time.Now()},
UserAuditable: types.UserAuditable{CreatedBy: "alice", UpdatedBy: "bob"},
OrgID: orgID,
Source: SourceUser,
Name: "apm-metrics",
Data: StorableDashboardData{
"title": "APM Metrics",
"description": "service overview",
"image": "data:image/png;base64,abc",
"tags": []any{"apm", "team:platform"},
"widgets": []any{
// section header — owned by the layout pass, not a panel
map[string]any{"id": "row-1", "panelTypes": "row", "title": "Overview"},
// graph widget → TimeSeries panel
map[string]any{
"id": "panel-1",
"panelTypes": "graph",
"title": "Latency",
},
// table widget → Table panel
map[string]any{"id": "panel-2", "panelTypes": "table"},
// widget with missing id — dropped
map[string]any{"panelTypes": "graph", "title": "no id"},
// unknown panel kind — silently dropped
map[string]any{"id": "panel-3", "panelTypes": "totally-new"},
},
},
}
dashboard, err := storable.ConvertV1ToV2()
require.NoError(t, err)
require.NotNil(t, dashboard)
assert.Equal(t, storable.ID, dashboard.ID)
assert.Equal(t, storable.OrgID, dashboard.OrgID)
assert.Equal(t, storable.Source, dashboard.Source)
assert.Equal(t, storable.Name, dashboard.Name)
assert.Equal(t, SchemaVersion, dashboard.SchemaVersion)
assert.Equal(t, "data:image/png;base64,abc", dashboard.Image)
assert.Equal(t, "APM Metrics", dashboard.Spec.Display.Name)
assert.Equal(t, "service overview", dashboard.Spec.Display.Description)
require.Len(t, dashboard.Tags, 2)
assert.Equal(t, "tag", dashboard.Tags[0].Key)
assert.Equal(t, "apm", dashboard.Tags[0].Value)
assert.Equal(t, "team", dashboard.Tags[1].Key)
assert.Equal(t, "platform", dashboard.Tags[1].Value)
require.Len(t, dashboard.Spec.Panels, 2, "graph and table map; row, no-id, and unknown kinds are dropped")
require.Contains(t, dashboard.Spec.Panels, "panel-1")
require.Contains(t, dashboard.Spec.Panels, "panel-2")
assert.Equal(t, PanelKindTimeSeries, dashboard.Spec.Panels["panel-1"].Spec.Plugin.Kind)
assert.Equal(t, PanelKindTable, dashboard.Spec.Panels["panel-2"].Spec.Plugin.Kind)
}
func TestConvertV1ToV2RejectsAlreadyV2(t *testing.T) {
storable := &StorableDashboard{
Identifiable: types.Identifiable{ID: valuer.GenerateUUID()},
OrgID: valuer.GenerateUUID(),
Source: SourceUser,
Name: "already-v2",
Data: StorableDashboardData{
"metadata": map[string]any{"schemaVersion": SchemaVersion},
"spec": map[string]any{},
},
}
dashboard, err := storable.ConvertV1ToV2()
assert.Nil(t, dashboard)
require.Error(t, err)
assert.Contains(t, err.Error(), "already in")
}
func TestSpanGapsMapping(t *testing.T) {
cases := []struct {
scenario string
rawSpanGaps any
expectedFillOnlyBelow bool
expectedFillLessThan string
}{
{scenario: "true spans every gap", rawSpanGaps: true, expectedFillOnlyBelow: false, expectedFillLessThan: "0s"},
{scenario: "false spans no gaps", rawSpanGaps: false, expectedFillOnlyBelow: true, expectedFillLessThan: "0s"},
{scenario: "number is seconds threshold", rawSpanGaps: float64(30), expectedFillOnlyBelow: true, expectedFillLessThan: "30s"},
{scenario: "missing defaults to span all", rawSpanGaps: nil, expectedFillOnlyBelow: false, expectedFillLessThan: "0s"},
}
for _, tc := range cases {
t.Run(tc.scenario, func(t *testing.T) {
got := mapV1SpanGaps(tc.rawSpanGaps)
assert.Equal(t, tc.expectedFillOnlyBelow, got.FillOnlyBelow)
assert.Equal(t, tc.expectedFillLessThan, got.FillLessThan.StringValue())
})
}
}
// ══════════════════════════════════════════════
// Other panel-kind converters
// ══════════════════════════════════════════════
func TestConvertBarWidgetToBarChartPanel(t *testing.T) {
widget := map[string]any{
"id": "bar-1",
"panelTypes": "bar",
"title": "Requests by status",
"fillSpans": true,
"stackedBarChart": true,
"yAxisUnit": "reqps",
"softMin": float64(0),
"isLogScale": true,
"legendPosition": "right",
}
panel := convertBarWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindBarChart, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*BarChartPanelSpec)
require.True(t, ok)
assert.True(t, spec.Visualization.FillSpans)
assert.True(t, spec.Visualization.StackedBarChart)
assert.Equal(t, "reqps", spec.Formatting.Unit)
require.NotNil(t, spec.Axes.SoftMin)
assert.Equal(t, float64(0), *spec.Axes.SoftMin)
assert.True(t, spec.Axes.IsLogScale)
assert.Equal(t, LegendPositionRight, spec.Legend.Position)
}
func TestConvertValueWidgetToNumberPanel(t *testing.T) {
widget := map[string]any{
"id": "val-1",
"panelTypes": "value",
"title": "Active services",
"yAxisUnit": "count",
"thresholds": []any{
map[string]any{
"thresholdValue": float64(100),
"thresholdOperator": ">=",
"thresholdColor": "#ff0000",
"thresholdFormat": "Background",
"thresholdUnit": "count",
},
map[string]any{
// missing color — must be dropped
"thresholdValue": float64(10),
},
},
}
panel := convertValueWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindNumber, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*NumberPanelSpec)
require.True(t, ok)
require.Len(t, spec.Thresholds, 1)
assert.Equal(t, float64(100), spec.Thresholds[0].Value)
assert.Equal(t, ComparisonOperatorAboveOrEqual, spec.Thresholds[0].Operator)
assert.Equal(t, "#ff0000", spec.Thresholds[0].Color)
assert.Equal(t, ThresholdFormatBackground, spec.Thresholds[0].Format)
}
func TestConvertTableWidgetToTablePanel(t *testing.T) {
widget := map[string]any{
"id": "tbl-1",
"panelTypes": "table",
"title": "Top services",
"columnUnits": map[string]any{
"latency": "ms",
"errors": "count",
},
"thresholds": []any{
map[string]any{
"thresholdValue": float64(500),
"thresholdColor": "#ff0000",
"thresholdTableOptions": "latency",
"thresholdOperator": ">",
},
map[string]any{
// missing columnName — dropped
"thresholdValue": float64(1),
"thresholdColor": "#00ff00",
},
},
}
panel := convertTableWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindTable, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*TablePanelSpec)
require.True(t, ok)
assert.Equal(t, "ms", spec.Formatting.ColumnUnits["latency"])
assert.Equal(t, "count", spec.Formatting.ColumnUnits["errors"])
require.Len(t, spec.Thresholds, 1)
assert.Equal(t, "latency", spec.Thresholds[0].ColumnName)
assert.Equal(t, ComparisonOperatorAbove, spec.Thresholds[0].Operator)
}
func TestConvertPieWidgetToPieChartPanel(t *testing.T) {
widget := map[string]any{
"id": "pie-1",
"panelTypes": "pie",
"title": "Share",
"legendPosition": "right",
}
panel := convertPieWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindPieChart, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*PieChartPanelSpec)
require.True(t, ok)
assert.Equal(t, LegendPositionRight, spec.Legend.Position)
}
func TestConvertHistogramWidget(t *testing.T) {
bucketCount := float64(20)
widget := map[string]any{
"id": "hist-1",
"panelTypes": "histogram",
"title": "Latency distribution",
"bucketCount": bucketCount,
"mergeAllActiveQueries": true,
}
panel := convertHistogramWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindHistogram, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*HistogramPanelSpec)
require.True(t, ok)
require.NotNil(t, spec.HistogramBuckets.BucketCount)
assert.Equal(t, bucketCount, *spec.HistogramBuckets.BucketCount)
assert.Nil(t, spec.HistogramBuckets.BucketWidth)
assert.True(t, spec.HistogramBuckets.MergeAllActiveQueries)
}
func TestConvertListWidget(t *testing.T) {
widget := map[string]any{
"id": "list-1",
"panelTypes": "list",
"title": "Recent logs",
"selectedLogFields": []any{
map[string]any{"name": "body", "fieldDataType": "string", "fieldContext": "log"},
map[string]any{"name": "severity_text", "fieldDataType": "string", "fieldContext": "log"},
},
}
panel := convertListWidget(widget)
require.NotNil(t, panel)
assert.Equal(t, PanelKindList, panel.Spec.Plugin.Kind)
spec, ok := panel.Spec.Plugin.Spec.(*ListPanelSpec)
require.True(t, ok)
require.Len(t, spec.SelectFields, 2)
assert.Equal(t, "body", spec.SelectFields[0].Name)
}
// ══════════════════════════════════════════════
// Query translation
// ══════════════════════════════════════════════
func TestConvertV1WidgetQuerySinglePromQL(t *testing.T) {
widget := map[string]any{
"id": "p-1",
"panelTypes": "graph",
"query": map[string]any{
"queryType": "promql",
"promql": []any{
map[string]any{"name": "A", "query": "up", "legend": "{{job}}"},
},
},
}
queries := convertV1WidgetQuery(widget, PanelKindTimeSeries)
require.Len(t, queries, 1)
assert.Equal(t, qb.RequestTypeTimeSeries, queries[0].Kind)
assert.Equal(t, QueryKindPromQL, queries[0].Spec.Plugin.Kind)
prom, ok := queries[0].Spec.Plugin.Spec.(*qb.PromQuery)
require.True(t, ok)
assert.Equal(t, "A", prom.Name)
assert.Equal(t, "up", prom.Query)
assert.Equal(t, "{{job}}", prom.Legend)
}
func TestConvertV1WidgetQuerySingleClickHouse(t *testing.T) {
widget := map[string]any{
"id": "c-1",
"panelTypes": "table",
"query": map[string]any{
"queryType": "clickhouse_sql",
"clickhouse_sql": []any{
map[string]any{"name": "Q", "query": "SELECT 1", "legend": "x"},
},
},
}
queries := convertV1WidgetQuery(widget, PanelKindTable)
require.Len(t, queries, 1)
assert.Equal(t, qb.RequestTypeScalar, queries[0].Kind)
assert.Equal(t, QueryKindClickHouseSQL, queries[0].Spec.Plugin.Kind)
ch, ok := queries[0].Spec.Plugin.Spec.(*qb.ClickHouseQuery)
require.True(t, ok)
assert.Equal(t, "Q", ch.Name)
assert.Equal(t, "SELECT 1", ch.Query)
}
func TestConvertV1WidgetQueryMultipleBuilderWrapsInComposite(t *testing.T) {
widget := map[string]any{
"id": "b-1",
"panelTypes": "graph",
"query": map[string]any{
"queryType": "builder",
"builder": map[string]any{
"queryData": []any{
map[string]any{
"queryName": "A",
"expression": "A",
"dataSource": "metrics",
"aggregations": []any{map[string]any{"metricName": "signoz_calls_total"}},
},
map[string]any{
"queryName": "B",
"expression": "B",
"dataSource": "logs",
"aggregations": []any{map[string]any{"expression": "count()"}},
},
},
"queryFormulas": []any{
map[string]any{"queryName": "F1", "expression": "A + B"},
},
},
},
}
queries := convertV1WidgetQuery(widget, PanelKindTimeSeries)
require.Len(t, queries, 1)
assert.Equal(t, qb.RequestTypeTimeSeries, queries[0].Kind)
assert.Equal(t, QueryKindComposite, queries[0].Spec.Plugin.Kind)
composite, ok := queries[0].Spec.Plugin.Spec.(*CompositeQuerySpec)
require.True(t, ok)
require.Len(t, composite.Queries, 3)
assert.Equal(t, qb.QueryTypeBuilder, composite.Queries[0].Type)
assert.Equal(t, qb.QueryTypeBuilder, composite.Queries[1].Type)
assert.Equal(t, qb.QueryTypeFormula, composite.Queries[2].Type)
}
func TestConvertV1WidgetQueryListPanelUsesBuilderDirectly(t *testing.T) {
widget := map[string]any{
"id": "l-1",
"panelTypes": "list",
"query": map[string]any{
"queryType": "builder",
"builder": map[string]any{
"queryData": []any{
map[string]any{
"queryName": "A",
"expression": "A",
"dataSource": "logs",
},
},
},
},
}
queries := convertV1WidgetQuery(widget, PanelKindList)
require.Len(t, queries, 1)
assert.Equal(t, qb.RequestTypeRaw, queries[0].Kind)
assert.Equal(t, QueryKindBuilder, queries[0].Spec.Plugin.Kind)
wrapper, ok := queries[0].Spec.Plugin.Spec.(*BuilderQuerySpec)
require.True(t, ok)
spec, ok := wrapper.Spec.(qb.QueryBuilderQuery[qb.LogAggregation])
require.True(t, ok, "list builder query should dispatch to LogAggregation, got %T", wrapper.Spec)
assert.Equal(t, "A", spec.Name)
}
func TestConvertV1WidgetQueryNoQuery(t *testing.T) {
widget := map[string]any{"id": "x", "panelTypes": "graph"}
queries := convertV1WidgetQuery(widget, PanelKindTimeSeries)
assert.Nil(t, queries)
}
// ══════════════════════════════════════════════
// Layouts and sections
// ══════════════════════════════════════════════
func TestConvertV1LayoutsRootOnly(t *testing.T) {
data := StorableDashboardData{
"layout": []any{
map[string]any{"i": "p-1", "x": float64(0), "y": float64(0), "w": float64(6), "h": float64(6)},
map[string]any{"i": "p-2", "x": float64(6), "y": float64(0), "w": float64(6), "h": float64(6)},
},
"widgets": []any{
map[string]any{"id": "p-1", "panelTypes": "graph"},
map[string]any{"id": "p-2", "panelTypes": "graph"},
},
}
layouts := convertV1Layouts(data)
require.Len(t, layouts, 1)
assert.Equal(t, dashboard.KindGridLayout, layouts[0].Kind)
spec, ok := layouts[0].Spec.(*dashboard.GridLayoutSpec)
require.True(t, ok)
require.Len(t, spec.Items, 2)
assert.Equal(t, "#/spec/panels/p-1", spec.Items[0].Content.Ref)
assert.Equal(t, 6, spec.Items[1].Width)
assert.Nil(t, spec.Display, "root-only grid should have no display block")
}
func TestConvertV1LayoutsWithCollapsedSection(t *testing.T) {
data := StorableDashboardData{
"widgets": []any{
map[string]any{"id": "row-1", "panelTypes": "row", "title": "Latency"},
map[string]any{"id": "p-1", "panelTypes": "graph"},
map[string]any{"id": "p-2", "panelTypes": "graph"},
},
"layout": []any{
map[string]any{"i": "row-1", "x": float64(0), "y": float64(0), "w": float64(12), "h": float64(1)},
map[string]any{"i": "p-1", "x": float64(0), "y": float64(1), "w": float64(6), "h": float64(6)},
map[string]any{"i": "p-2", "x": float64(0), "y": float64(7), "w": float64(6), "h": float64(6)},
},
"panelMap": map[string]any{
"row-1": map[string]any{
"collapsed": true,
"widgets": []any{
map[string]any{"i": "p-1", "x": float64(0), "y": float64(1), "w": float64(6), "h": float64(6)},
},
},
},
}
layouts := convertV1Layouts(data)
require.Len(t, layouts, 2, "one root grid (p-2) + one section grid (row-1 with p-1)")
rootSpec, ok := layouts[0].Spec.(*dashboard.GridLayoutSpec)
require.True(t, ok)
require.Len(t, rootSpec.Items, 1)
assert.Equal(t, "#/spec/panels/p-2", rootSpec.Items[0].Content.Ref)
assert.Nil(t, rootSpec.Display)
sectionSpec, ok := layouts[1].Spec.(*dashboard.GridLayoutSpec)
require.True(t, ok)
require.NotNil(t, sectionSpec.Display)
assert.Equal(t, "Latency", sectionSpec.Display.Title)
require.NotNil(t, sectionSpec.Display.Collapse)
assert.False(t, sectionSpec.Display.Collapse.Open, "collapsed=true → open=false")
require.Len(t, sectionSpec.Items, 1)
assert.Equal(t, "#/spec/panels/p-1", sectionSpec.Items[0].Content.Ref)
}
func TestConvertV1LayoutsEmpty(t *testing.T) {
assert.Nil(t, convertV1Layouts(StorableDashboardData{}))
}
// ══════════════════════════════════════════════
// Variables
// ══════════════════════════════════════════════
func TestConvertV1VariablesAllTypes(t *testing.T) {
raw := map[string]any{
"u-1": map[string]any{
"name": "service.name",
"description": "the service",
"type": "QUERY",
"queryValue": "SELECT name FROM s",
"multiSelect": true,
"showALLOption": true,
"sort": "ASC",
"order": float64(1),
},
"u-2": map[string]any{
"name": "env",
"type": "CUSTOM",
"customValue": "prod,staging,dev",
"order": float64(2),
"selectedValue": "prod",
},
"u-3": map[string]any{
"name": "deployment.environment",
"type": "DYNAMIC",
"dynamicVariablesAttribute": "deployment.environment",
"dynamicVariablesSource": "traces",
"order": float64(0),
},
"u-4": map[string]any{
"name": "freetext",
"type": "TEXTBOX",
"textboxValue": "hello",
"order": float64(3),
},
}
vars := convertV1Variables(raw)
require.Len(t, vars, 4)
// Ordered by `order` ascending: u-3 (0), u-1 (1), u-2 (2), u-4 (3)
assert.Equal(t, variable.KindList, vars[0].Kind)
dyn, ok := vars[0].Spec.(*ListVariableSpec)
require.True(t, ok)
assert.Equal(t, "deployment.environment", dyn.Name)
assert.Equal(t, VariableKindDynamic, dyn.Plugin.Kind)
q, ok := vars[1].Spec.(*ListVariableSpec)
require.True(t, ok)
assert.Equal(t, "service.name", q.Name)
assert.Equal(t, VariableKindQuery, q.Plugin.Kind)
assert.True(t, q.AllowMultiple)
assert.True(t, q.AllowAllValue)
require.NotNil(t, q.Sort)
assert.Equal(t, variable.SortAlphabeticalAsc, *q.Sort)
c, ok := vars[2].Spec.(*ListVariableSpec)
require.True(t, ok)
assert.Equal(t, "env", c.Name)
assert.Equal(t, VariableKindCustom, c.Plugin.Kind)
require.NotNil(t, c.DefaultValue)
assert.Equal(t, "prod", c.DefaultValue.SingleValue)
assert.Equal(t, variable.KindText, vars[3].Kind)
text, ok := vars[3].Spec.(*dashboard.TextVariableSpec)
require.True(t, ok)
assert.Equal(t, "freetext", text.Name)
assert.Equal(t, "hello", text.Value)
}
func TestConvertV1VariablesSkipsUnnamedAndUnknownTypes(t *testing.T) {
raw := map[string]any{
"u-1": map[string]any{"name": "", "type": "QUERY"},
"u-2": map[string]any{"name": "ok", "type": "WHATEVER"},
"u-3": map[string]any{"name": "good", "type": "CUSTOM", "customValue": "a"},
}
vars := convertV1Variables(raw)
require.Len(t, vars, 1)
spec := vars[0].Spec.(*ListVariableSpec)
assert.Equal(t, "good", spec.Name)
}
func TestConvertV1VariablesDefaultFromSelectedSlice(t *testing.T) {
raw := map[string]any{
"u-1": map[string]any{
"name": "svc",
"type": "QUERY",
"queryValue": "SELECT 1",
"selectedValue": []any{"foo", "", "bar"},
},
}
vars := convertV1Variables(raw)
require.Len(t, vars, 1)
spec := vars[0].Spec.(*ListVariableSpec)
require.NotNil(t, spec.DefaultValue)
assert.Equal(t, []string{"foo", "bar"}, spec.DefaultValue.SliceValues)
}

View File

@@ -1,170 +0,0 @@
package dashboardtypes
import (
"sort"
"github.com/perses/spec/go/dashboard"
"github.com/perses/spec/go/dashboard/variable"
)
// ══════════════════════════════════════════════
// Variables
// ══════════════════════════════════════════════
// convertV1Variables walks the v1 `variables` map (UUID-keyed) and produces an
// ordered []Variable. Variables sort by `order` first, then by id for stable
// output. v1 variable types map as follows:
//
// QUERY → ListVariable + signoz/QueryVariable
// CUSTOM → ListVariable + signoz/CustomVariable
// DYNAMIC → ListVariable + signoz/DynamicVariable
// TEXTBOX → TextVariable
func convertV1Variables(raw any) []Variable {
rawMap, ok := raw.(map[string]any)
if !ok || len(rawMap) == 0 {
return nil
}
type ordered struct {
key string
val map[string]any
ord float64
}
entries := make([]ordered, 0, len(rawMap))
for key, value := range rawMap {
m, ok := value.(map[string]any)
if !ok {
continue
}
ord, _ := m["order"].(float64)
entries = append(entries, ordered{key: key, val: m, ord: ord})
}
sort.SliceStable(entries, func(i, j int) bool {
if entries[i].ord != entries[j].ord {
return entries[i].ord < entries[j].ord
}
return entries[i].key < entries[j].key
})
out := make([]Variable, 0, len(entries))
for _, e := range entries {
v, ok := convertV1Variable(e.val)
if !ok {
continue
}
out = append(out, v)
}
return out
}
func convertV1Variable(v map[string]any) (Variable, bool) {
name, _ := v["name"].(string)
if name == "" {
return Variable{}, false
}
description, _ := v["description"].(string)
kind, _ := v["type"].(string)
switch kind {
case "TEXTBOX":
value, _ := v["textboxValue"].(string)
spec := &dashboard.TextVariableSpec{
TextSpec: variable.TextSpec{
Display: &variable.Display{Name: name, Description: description},
Value: value,
},
Name: name,
}
return Variable{Kind: variable.KindText, Spec: spec}, true
case "QUERY", "CUSTOM", "DYNAMIC":
listSpec := &ListVariableSpec{
Display: Display{Name: name, Description: description},
AllowAllValue: valueAt[bool](v, "showALLOption"),
AllowMultiple: valueAt[bool](v, "multiSelect"),
CustomAllValue: valueAt[string](v, "customAllValue"),
CapturingRegexp: valueAt[string](v, "capturingRegexp"),
Sort: mapV1Sort(v["sort"]),
Plugin: variablePluginFor(kind, v),
Name: name,
}
if dv := mapV1VariableDefault(v); dv != nil {
listSpec.DefaultValue = dv
}
return Variable{Kind: variable.KindList, Spec: listSpec}, true
}
return Variable{}, false
}
func variablePluginFor(kind string, v map[string]any) VariablePlugin {
switch kind {
case "QUERY":
return VariablePlugin{
Kind: VariableKindQuery,
Spec: &QueryVariableSpec{QueryValue: valueAt[string](v, "queryValue")},
}
case "CUSTOM":
return VariablePlugin{
Kind: VariableKindCustom,
Spec: &CustomVariableSpec{CustomValue: valueAt[string](v, "customValue")},
}
case "DYNAMIC":
spec := &DynamicVariableSpec{Name: valueAt[string](v, "dynamicVariablesAttribute")}
if signal := signalFromDataSource(v["dynamicVariablesSource"]); !signal.IsZero() {
spec.Signal = signal
}
return VariablePlugin{Kind: VariableKindDynamic, Spec: spec}
}
return VariablePlugin{}
}
func mapV1VariableDefault(v map[string]any) *variable.DefaultValue {
if raw, ok := v["selectedValue"]; ok {
return defaultValueFromAny(raw)
}
if raw, ok := v["defaultValue"]; ok {
return defaultValueFromAny(raw)
}
return nil
}
func defaultValueFromAny(raw any) *variable.DefaultValue {
switch v := raw.(type) {
case string:
if v == "" {
return nil
}
return &variable.DefaultValue{SingleValue: v}
case []any:
if len(v) == 0 {
return nil
}
values := make([]string, 0, len(v))
for _, item := range v {
if s, ok := item.(string); ok && s != "" {
values = append(values, s)
}
}
if len(values) == 0 {
return nil
}
return &variable.DefaultValue{SliceValues: values}
}
return nil
}
func mapV1Sort(raw any) *variable.Sort {
s, _ := raw.(string)
var sort variable.Sort
switch s {
case "ASC":
sort = variable.SortAlphabeticalAsc
case "DESC":
sort = variable.SortAlphabeticalDesc
case "DISABLED", "":
return nil // SortNone is the implicit default
default:
return nil
}
return &sort
}

View File

@@ -1,66 +0,0 @@
### Phases
1. **Pre-migration (dev)**: new tables `tag`, `tag_relations`, `pinned_dashboard`,  `dashboard_view`
2. **Validation**: run the migration script against a few prod snapshots locally. Verify counts match, spot-check shapes, time the run to estimate downtime.
3. **Dry-run in cloud prod (cloud only).** Ship a build that runs the migration script in read-only
mode against live prod data. Whenever the v1 get API is called for a dashboard, we dry-run the migration script for it in an async process. If there is a failure, schema mismatches, tag normalization rejections, etc, it is logged. Reach out to affected customers to fix their dashboards before the real migration. Re-run closer to migration day to confirm resolution.
4. **Migration deploy**: script runs, FF flips on. Integration dashboards materialized in the `dashboard` table using an internal system account with `Locked = true`.
5. **Post-migration**: v1 APIs deprecated but still respond.
#### **Rejected idea: dry run in a background job**
In the above plan, we only check the dashboards that the users access. However, that should be enough to cover enough dashboards to be able to find out possible issues. The extra effort of a background job doesn't have enough ROI.
### What gets migrated
Existing v1 dashboards → full v2 data shape (tags extracted from `data.tags` into `tag` and `tag_relations`; the field is removed from the blob). Integration dashboards → materialized rows. Pinned dashboards and saved views start empty.
### Tag normalization (v1 strings → v2 tag rows)
Each v1 dashboard `data.tags` is `[]string`. For every string `s`, derive `(key, value)`.
**Order of rules:**
1. **Trim** leading/trailing whitespace from `s`. If empty after trim → **skip silently** (log dashboard id + index, continue).
2. **If `s` contains `:`** → split at the **first** `:`. Let `k` = left side, `v` = right side.
- If `k` is empty (input was `:val`) → `key = "tag"`, `value = val`.
- If `v` is empty (input was `key:`) → `key = "tag"`, `value = k` (the literal left side becomes the value).
- Otherwise → `key = k`, `value = v`.
- Other `:` are replaced with `_`.
3. **Else if `s` contains `/`** → split at the **first** `/`. Let `k` = left side, `v` = right side.
- Same empty-side handling: empty left → `key="tag", value=v`; empty right → `key="tag", value=k`. Otherwise → `key=k, value=v`.
4. **Else** (no separator) → `key = "tag"`, `value = s`.
5. Reserved-key collision. After steps 24, if the resulting key (case-insensitively) matches a reserved DSL key (name, description, created_at, updated_at, created_by, locked, public), prefix it with _ (e.g. name → _name). Silent — extremely unlikely in practice, but the rename keeps the dashboard alive without ambiguating the query DSL.
6. **`/` scrub.** Output tags must never contain `/` (input validation forbids it). After the above steps, replace any remaining `/` in `key` and `value` with `_`:
- `a/b/c` → step 3 splits at first `/` → `key="a", value="b/c"` → after scrub → `key="a", value="b_c"`
- `team/eng:prod` → step 2 splits at `:` → `key="team/eng", value="prod"` → after scrub → `key="team_eng", value="prod"`
- `team/eng:my/path` → step 2 → `key="team/eng", value="my/path"` → scrub → `key="team_eng", value="my_path"`
Trailing/leading whitespace within `key` and `value` after split is also trimmed; if either side becomes empty after that, apply the empty-side rules above. If both sides are effectively empty (e.g. input was `:` or `/`), skip silently.
**Case-collision dedup:**
Multiple v1 strings can normalize to the same `(LOWER(key), LOWER(value))` across an org (e.g. `Env:Prod` and `env:PROD`). The functional unique index ensures only one row exists. Display casing is taken from the variant on the dashboard with the **earliest `created_at`** (ties broken by `dashboard.id`) — same rule as the previous spec, just applied to `(key, value)` instead of `name`.
**Tag relations:**
After tag rows are upserted, build `tag_relations` from each (dashboard, tag-id-after-dedup) pair. `ON CONFLICT` clause in the query makes this idempotent.
### Script properties
- Per-dashboard transactional. One failure logs the dashboard id and continues.
- Idempotent: `ON CONFLICT DO NOTHING` on tag and tag_relations upserts; dashboards already in v2 shape are skipped.
- Progress logged every N dashboards; final summary includes totals and failure list.
### Rollback
Forward-only — no v2→v1 reverse script. The FF is the kill-switch pre-frontend-cutover. After cutover, rollback = another deploy with the fix.
### What about dashboards that fail to migrate after all this?
In Get API (v2) there will be a check on the dashboard fetched.
- `v2` → normal flow.
- `v1` → return `422 Unprocessable Entity`.
The deprecated v1 APIs will still exist, so if any support ticket comes, we can check via the v1 API and see whats wrong.

View File

@@ -0,0 +1,48 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p1-uid","k8s.pod.name":"dc-p1","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"dc-p2-uid","k8s.pod.name":"dc-p2","k8s.daemonset.name":"dc-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"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":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"dc-ds","k8s.namespace.name":"ns-dc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,384 @@
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p1-uid", "k8s.pod.name": "logs-a-prod-acc-1-p1", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-prod-acc-1-p2-uid", "k8s.pod.name": "logs-a-prod-acc-1-p2", "k8s.daemonset.name": "logs-a-prod", "k8s.node.name": "logs-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p1-uid", "k8s.pod.name": "logs-a-dev-acc-1-p1", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-a-dev-acc-1-p2-uid", "k8s.pod.name": "logs-a-dev-acc-1-p2", "k8s.daemonset.name": "logs-a-dev", "k8s.node.name": "logs-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p1", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-a-prod-acc-1-p2", "k8s.daemonset.name": "metrics-a-prod", "k8s.node.name": "metrics-a-prod-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-a-prod", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p1", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-a", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-a-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-a-dev-acc-1-p2", "k8s.daemonset.name": "metrics-a-dev", "k8s.node.name": "metrics-a-dev-node-b", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-a-dev", "k8s.namespace.name": "ns-a", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p1-uid", "k8s.pod.name": "logs-b-prod-acc-1-p1", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-prod-acc-1-p2-uid", "k8s.pod.name": "logs-b-prod-acc-1-p2", "k8s.daemonset.name": "logs-b-prod", "k8s.node.name": "logs-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "logs-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p1-uid", "k8s.pod.name": "logs-b-dev-acc-1-p1", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "logs-b-dev-acc-1-p2-uid", "k8s.pod.name": "logs-b-dev-acc-1-p2", "k8s.daemonset.name": "logs-b-dev", "k8s.node.name": "logs-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "logs-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p1-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p1", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-prod-acc-1-p2-uid", "k8s.pod.name": "metrics-b-prod-acc-1-p2", "k8s.daemonset.name": "metrics-b-prod", "k8s.node.name": "metrics-b-prod-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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": "metrics-b-prod", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "prod"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 100000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.4, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.3, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p1-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p1", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-a", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu.usage", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.cpu_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 200000000.0, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory.working_set", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.6, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_request_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 0.5, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.memory_limit_utilization", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:00:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:02:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}
{"metric_name": "k8s.pod.phase", "labels": {"k8s.pod.uid": "metrics-b-dev-acc-1-p2-uid", "k8s.pod.name": "metrics-b-dev-acc-1-p2", "k8s.daemonset.name": "metrics-b-dev", "k8s.node.name": "metrics-b-dev-node-b", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "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": "metrics-b-dev", "k8s.namespace.name": "ns-b", "k8s.cluster.name": "cluster-x", "env": "dev"}, "timestamp": "2025-01-10T10:04:00+00:00", "value": 2, "temporality": "Unspecified", "type_": "Gauge", "is_monotonic": false}

View File

@@ -0,0 +1,108 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a1-p1-uid","k8s.pod.name":"gb-ds-a1-p1","k8s.daemonset.name":"gb-ds-a1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a1","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-a2-p1-uid","k8s.pod.name":"gb-ds-a2-p1","k8s.daemonset.name":"gb-ds-a2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-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":"gb-ds-a2","k8s.namespace.name":"gb-ns-a","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b1-p1-uid","k8s.pod.name":"gb-ds-b1-p1","k8s.daemonset.name":"gb-ds-b1","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b1","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"gb-ds-b2-p1-uid","k8s.pod.name":"gb-ds-b2-p1","k8s.daemonset.name":"gb-ds-b2","k8s.node.name":"node-x","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-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":"gb-ds-b2","k8s.namespace.name":"gb-ns-b","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,3 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"miss-p1-uid","k8s.pod.name":"miss-p1","k8s.daemonset.name":"miss-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-miss","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"miss-p1-uid","k8s.pod.name":"miss-p1","k8s.daemonset.name":"miss-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-miss","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"miss-p1-uid","k8s.pod.name":"miss-p1","k8s.daemonset.name":"miss-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-miss","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,90 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-ds-p1-uid","k8s.pod.name":"nd-ds-p1","k8s.daemonset.name":"nd-ds","k8s.node.name":"node-x","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-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":"nd-ds","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-standalone-uid","k8s.pod.name":"nd-standalone","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-dep-uid","k8s.pod.name":"nd-dep-pod","k8s.deployment.name":"nd-dep","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"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.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"nd-ss-uid","k8s.pod.name":"nd-ss-pod","k8s.statefulset.name":"nd-ss","k8s.namespace.name":"ns-nd","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,135 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.05,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.04,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-1-p1-uid","k8s.pod.name":"order-1-p1","k8s.daemonset.name":"order-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-1","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.08,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-2-p1-uid","k8s.pod.name":"order-2-p1","k8s.daemonset.name":"order-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-2","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.15000000000000002,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.12,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-3-p1-uid","k8s.pod.name":"order-3-p1","k8s.daemonset.name":"order-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-3","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":3.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":400000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":400000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":400000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.16,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-4-p1-uid","k8s.pod.name":"order-4-p1","k8s.daemonset.name":"order-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":4.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-4","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":2.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":500000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.25,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"order-5-p1-uid","k8s.pod.name":"order-5-p1","k8s.daemonset.name":"order-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"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":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.desired_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":5.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"order-ds-5","k8s.namespace.name":"ns-order","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,189 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-1-p1-uid","k8s.pod.name":"page-1-p1","k8s.daemonset.name":"page-ds-1","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-1","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-2-p1-uid","k8s.pod.name":"page-2-p1","k8s.daemonset.name":"page-ds-2","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-2","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.30000000000000004,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-3-p1-uid","k8s.pod.name":"page-3-p1","k8s.daemonset.name":"page-ds-3","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-3","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-4-p1-uid","k8s.pod.name":"page-4-p1","k8s.daemonset.name":"page-ds-4","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-4","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-5-p1-uid","k8s.pod.name":"page-5-p1","k8s.daemonset.name":"page-ds-5","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-5","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-6-p1-uid","k8s.pod.name":"page-6-p1","k8s.daemonset.name":"page-ds-6","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-6","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.7000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.7000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.7000000000000001,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"page-7-p1-uid","k8s.pod.name":"page-7-p1","k8s.daemonset.name":"page-ds-7","k8s.node.name":"node-x","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-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":"page-ds-7","k8s.namespace.name":"ns-page","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,153 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-1-uid","k8s.pod.name":"pp-run-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-1","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-2-uid","k8s.pod.name":"pp-run-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-2","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-3-uid","k8s.pod.name":"pp-run-3","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-3","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-run-4-uid","k8s.pod.name":"pp-run-4","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-4","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":1,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-pen-1-uid","k8s.pod.name":"pp-pen-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-5","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-1-uid","k8s.pod.name":"pp-fail-1","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-6","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"pp-fail-2-uid","k8s.pod.name":"pp-fail-2","k8s.daemonset.name":"pp-ds","k8s.node.name":"node-7","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"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":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":7,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.daemonset.current_scheduled_nodes","labels":{"k8s.daemonset.name":"pp-ds","k8s.namespace.name":"ns-pp","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,117 @@
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-1-p1-uid","k8s.pod.name":"acc-1-p1","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-1-p2-uid","k8s.pod.name":"acc-1-p2","k8s.daemonset.name":"acc-ds-1","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-1","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":100000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p1-uid","k8s.pod.name":"acc-2-p1","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-a","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":200000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.3,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p2-uid","k8s.pod.name":"acc-2-p2","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-b","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu.usage","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_request_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.cpu_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":300000000.0,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory.working_set","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.6,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_request_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":0.5,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.memory_limit_utilization","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:00:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:02:00+00:00","value":2,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}
{"metric_name":"k8s.pod.phase","labels":{"k8s.pod.uid":"acc-2-p3-uid","k8s.pod.name":"acc-2-p3","k8s.daemonset.name":"acc-ds-2","k8s.node.name":"node-c","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"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":"acc-ds-2","k8s.namespace.name":"ns-acc","k8s.cluster.name":"cluster-x"},"timestamp":"2025-01-10T10:04:00+00:00","value":4,"temporality":"Unspecified","type_":"Gauge","is_monotonic":false}

View File

@@ -0,0 +1,40 @@
{
"records": [
{
"daemonSetName": "acc-ds-1",
"daemonSetCPU": 1.0,
"daemonSetCPURequest": 0.5,
"daemonSetCPULimit": 0.4,
"daemonSetMemory": 300000000.0,
"daemonSetMemoryRequest": 0.5,
"daemonSetMemoryLimit": 0.4,
"desiredNodes": 3,
"currentNodes": 2,
"podCountsByPhase": {
"pending": 0,
"running": 2,
"succeeded": 0,
"failed": 0,
"unknown": 0
}
},
{
"daemonSetName": "acc-ds-2",
"daemonSetCPU": 1.2,
"daemonSetCPURequest": 0.4,
"daemonSetCPULimit": 0.3,
"daemonSetMemory": 600000000.0,
"daemonSetMemoryRequest": 0.4,
"daemonSetMemoryLimit": 0.3,
"desiredNodes": 4,
"currentNodes": 4,
"podCountsByPhase": {
"pending": 0,
"running": 3,
"succeeded": 0,
"failed": 0,
"unknown": 0
}
}
]
}

View File

@@ -0,0 +1,683 @@
"""Integration tests for v2 infra-monitoring daemonsets endpoint."""
import json
from datetime import UTC, datetime, timedelta
from http import HTTPStatus
import pytest
import requests
from fixtures import types
from fixtures.auth import USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD
from fixtures.fs import get_testdata_file_path
from fixtures.metrics import Metrics
from fixtures.querier import compare_values
ENDPOINT = "/api/v2/infra_monitoring/daemonsets"
# Required metrics for the v2 daemonsets endpoint
# (pkg/modules/inframonitoring/implinframonitoring/daemonsets_constants.go:24-34).
REQUIRED_METRICS = {
"k8s.pod.phase",
"k8s.pod.cpu.usage",
"k8s.pod.cpu_request_utilization",
"k8s.pod.cpu_limit_utilization",
"k8s.pod.memory.working_set",
"k8s.pod.memory_request_utilization",
"k8s.pod.memory_limit_utilization",
"k8s.daemonset.desired_scheduled_nodes",
"k8s.daemonset.current_scheduled_nodes",
}
def test_daemonsets_accuracy(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""Assert response shape/contract + exact per-DS metric values, node
counts, and phase counts against precomputed expected output.
Locks in Sum vs Avg split across pod-level metrics
(daemonsets_constants.go:79-198): A/D = SpaceAggregationSum across pods;
B/C/E/F = SpaceAggregationAvg. Node counts (H/I) are latest-summed.
"""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_value_accuracy.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
with open(
get_testdata_file_path("inframonitoring/daemonsets_value_accuracy_expected.json"),
encoding="utf-8",
) as f:
expected = json.load(f)
exp_by_name = {r["daemonSetName"]: r for r in expected["records"]}
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,
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
# Shape/contract.
assert data["total"] == len(expected["records"])
assert len(data["records"]) == len(expected["records"])
assert data["requiredMetricsCheck"]["missingMetrics"] == []
assert data["endTimeBeforeRetention"] is False
assert {r["daemonSetName"] for r in data["records"]} == set(exp_by_name.keys())
for record in data["records"]:
for field in (
"daemonSetName",
"daemonSetCPU",
"daemonSetCPURequest",
"daemonSetCPULimit",
"daemonSetMemory",
"daemonSetMemoryRequest",
"daemonSetMemoryLimit",
"desiredNodes",
"currentNodes",
"podCountsByPhase",
"meta",
):
assert field in record, f"missing {field} in {record!r}"
# ints (not floats) for node counts.
assert isinstance(record["desiredNodes"], int)
assert isinstance(record["currentNodes"], int)
for bucket in ("pending", "running", "succeeded", "failed", "unknown"):
assert bucket in record["podCountsByPhase"]
assert isinstance(record["podCountsByPhase"][bucket], int)
assert record["meta"].get("k8s.daemonset.name") == record["daemonSetName"]
assert "k8s.namespace.name" in record["meta"]
assert "k8s.cluster.name" in record["meta"]
# Exact values.
exp = exp_by_name[record["daemonSetName"]]
for field in (
"daemonSetCPU",
"daemonSetCPURequest",
"daemonSetCPULimit",
"daemonSetMemory",
"daemonSetMemoryRequest",
"daemonSetMemoryLimit",
):
assert compare_values(record[field], exp[field], 1e-6), f"{record['daemonSetName']}.{field}: got {record[field]}, expected {exp[field]}"
assert record["desiredNodes"] == exp["desiredNodes"]
assert record["currentNodes"] == exp["currentNodes"]
assert record["podCountsByPhase"] == exp["podCountsByPhase"]
def test_daemonsets_missing_metrics(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""Seed only k8s.pod.cpu.usage; assert other 8 required metrics flagged missing."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_missing_metrics.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert set(data["requiredMetricsCheck"]["missingMetrics"]) == (REQUIRED_METRICS - {"k8s.pod.cpu.usage"})
assert data["records"] == []
assert data["total"] == 0
@pytest.mark.parametrize(
"expression,expected",
[
pytest.param(
"k8s.namespace.name = 'ns-a' AND env = 'prod'",
{"logs-a-prod", "metrics-a-prod"},
id="and",
),
pytest.param(
"k8s.daemonset.name IN ('logs-a-prod', 'metrics-b-dev')",
{"logs-a-prod", "metrics-b-dev"},
id="in",
),
# NOT IN on the partition key (k8s.daemonset.name) returns the rest.
# NOT IN on non-partition labels is unreliable in QB v5; covered indirectly
# via the and_not_in combo. Same workaround as clusters/volumes/deployments/SS/jobs.
pytest.param(
"k8s.daemonset.name NOT IN ('logs-a-prod', 'logs-a-dev', 'metrics-a-prod', 'metrics-a-dev')",
{"logs-b-prod", "logs-b-dev", "metrics-b-prod", "metrics-b-dev"},
id="not_in",
),
pytest.param(
"k8s.daemonset.name CONTAINS 'logs'",
{"logs-a-prod", "logs-a-dev", "logs-b-prod", "logs-b-dev"},
id="contains",
),
pytest.param(
"k8s.namespace.name = 'ns-a' AND k8s.daemonset.name IN ('logs-a-prod', 'metrics-a-prod')",
{"logs-a-prod", "metrics-a-prod"},
id="and_in",
),
pytest.param(
"k8s.namespace.name = 'ns-a' AND k8s.daemonset.name NOT IN ('logs-a-prod', 'logs-a-dev')",
{"metrics-a-prod", "metrics-a-dev"},
id="and_not_in",
),
pytest.param(
"env = 'prod' AND k8s.daemonset.name CONTAINS 'logs'",
{"logs-a-prod", "logs-b-prod"},
id="and_contains",
),
pytest.param(
"k8s.daemonset.name IN ('logs-a-prod', 'logs-b-prod', 'metrics-a-prod') AND k8s.daemonset.name CONTAINS 'logs'",
{"logs-a-prod", "logs-b-prod"},
id="in_contains",
),
],
)
def test_daemonsets_filter(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
expression: str,
expected: set,
) -> None:
"""Filter operators (=, IN, NOT IN, CONTAINS) and their AND-combinations
return exactly the matching daemonsets, with undistorted per-DS metric
values."""
# Every daemonset in daemonsets_filter_dataset.jsonl carries the same
# sample pattern as acc-ds-1 in daemonsets_value_accuracy.jsonl (2 pods),
# so all filtered records must resolve to these exact values (mirrors
# daemonsets_value_accuracy_expected.json acc-ds-1).
expected_values = {
"daemonSetCPU": 1.0,
"daemonSetCPURequest": 0.5,
"daemonSetCPULimit": 0.4,
"daemonSetMemory": 300000000.0,
"daemonSetMemoryRequest": 0.5,
"daemonSetMemoryLimit": 0.4,
}
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_filter_dataset.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
"filter": {"expression": expression},
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert {r["daemonSetName"] for r in data["records"]} == expected
assert data["total"] == len(expected)
# Filtering must not distort per-daemonset aggregation values.
for record in data["records"]:
for field in expected_values:
assert compare_values(record[field], expected_values[field], 1e-6), f"{record['daemonSetName']}.{field}: got {record[field]}, expected {expected_values[field]}"
@pytest.mark.parametrize(
"expression,err_substr",
[
pytest.param("k8s.daemonset.namee = 'logs-a-prod'", "k8s.daemonset.namee", id="bad_attr_name"),
pytest.param("k8s.daemonset.name =", None, id="trailing_op"),
pytest.param("(k8s.daemonset.name = 'logs-a-prod'", None, id="unclosed_paren"),
],
)
def test_daemonsets_filter_invalid(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
expression: str,
err_substr,
) -> None:
"""Invalid filter expressions (typo'd attribute key, malformed grammar) return
400 invalid_input with structured errors; bad attribute keys are named in them."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_filter_dataset.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
"filter": {"expression": expression},
},
timeout=5,
)
assert response.status_code == HTTPStatus.BAD_REQUEST, f"expected 400, got {response.status_code}: {response.text}"
body = response.json()
assert body["status"] == "error"
assert body["error"]["code"] == "invalid_input"
assert len(body["error"]["errors"]) > 0
if err_substr is not None:
assert any(err_substr in e["message"] for e in body["error"]["errors"]), f"{err_substr!r} not surfaced: {body['error']['errors']!r}"
def test_daemonsets_pod_phase_aggregation(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""DaemonSet with mixed pod phases: 4 Running + 1 Pending + 2 Failed."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_pod_phases.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
"filter": {"expression": "k8s.daemonset.name = 'pp-ds'"},
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == 1
rec = data["records"][0]
assert rec["daemonSetName"] == "pp-ds"
assert rec["podCountsByPhase"] == {
"pending": 1,
"running": 4,
"succeeded": 0,
"failed": 2,
"unknown": 0,
}
def test_daemonsets_desired_current_counts(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""desired=5, current=3 from k8s.daemonset.* metrics; 2 Running pods seeded.
Models node-scheduling lag (DS targets 5 nodes, 3 currently scheduled,
pod metrics from 2 of them only). Distinguishes node counts from phase counts."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_desired_current.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
"filter": {"expression": "k8s.daemonset.name = 'dc-ds'"},
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == 1
rec = data["records"][0]
assert rec["daemonSetName"] == "dc-ds"
assert isinstance(rec["desiredNodes"], int)
assert isinstance(rec["currentNodes"], int)
assert rec["desiredNodes"] == 5
assert rec["currentNodes"] == 3
assert rec["podCountsByPhase"]["running"] == 2
def test_daemonsets_base_filter_drops_non_daemonset_pods(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""Locks in daemonSetsBaseFilterExpr (daemonsets_constants.go:10, :63-69):
standalone pods (no k8s.daemonset.name), Deployment pods (k8s.deployment.name only),
and StatefulSet pods (k8s.statefulset.name only) are all dropped.
Only the real DS row appears, total=1, no empty-name group."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_non_ds_pods.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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,
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
assert data["total"] == 1, f"expected only the real DS row; got {[r['daemonSetName'] for r in data['records']]}"
rec = data["records"][0]
assert rec["daemonSetName"] == "nd-ds"
assert all(r["daemonSetName"] != "" for r in data["records"])
@pytest.mark.parametrize(
"group_key,expected_running",
[
# groupBy=[k8s.daemonset.name]: one record per daemonset,
# daemonSetName populated (daemonsets.go:28-31). 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},
id="daemonset_name",
),
# groupBy=[k8s.namespace.name]: aggregated across each namespace's 2
# daemonsets, daemonSetName cleared. 2 x 1 = 2 running pods each.
pytest.param(
"k8s.namespace.name",
{"gb-ns-a": 2, "gb-ns-b": 2},
id="namespace",
),
],
)
def test_daemonsets_groupby(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
group_key: str,
expected_running: 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."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_groupby.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
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",
}
],
},
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())
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 test_daemonsets_pagination(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
) -> None:
"""Pagination: per-page len matches min(limit, total-offset), total invariant,
pages cover the full set with no overlap. The final offset is beyond total:
it returns empty records while total still reflects dataset size."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_pagination.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
K, limit = 7, 3
seen_names: list[str] = []
seen_totals: set[int] = set()
for offset in (0, 3, 6, K + 5):
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": limit,
"offset": offset,
"filter": {"expression": "k8s.daemonset.name CONTAINS 'page-'"},
},
timeout=5,
)
assert response.status_code == HTTPStatus.OK, response.text
data = response.json()["data"]
seen_totals.add(data["total"])
expected_len = max(0, min(limit, K - offset))
assert len(data["records"]) == expected_len, f"offset={offset}: expected {expected_len}, got {len(data['records'])}"
seen_names.extend(r["daemonSetName"] for r in data["records"])
assert seen_totals == {K}
assert len(seen_names) == K
assert set(seen_names) == {f"page-ds-{i}" for i in range(1, K + 1)}
# orderBy keys per daemonsets_constants.go:5-14 (snake_case request keys,
# camelCase response fields). k8s.daemonset.name sorts via the metadata-name
# branch (PaginateMetadataByName) and is only allowed when groupBy is empty.
@pytest.mark.parametrize(
"column,record_field",
[
pytest.param("cpu", "daemonSetCPU", id="cpu"),
pytest.param("cpu_request", "daemonSetCPURequest", id="cpu_request"),
pytest.param("cpu_limit", "daemonSetCPULimit", id="cpu_limit"),
pytest.param("memory", "daemonSetMemory", id="memory"),
pytest.param("memory_request", "daemonSetMemoryRequest", id="memory_request"),
pytest.param("memory_limit", "daemonSetMemoryLimit", id="memory_limit"),
pytest.param("desired_nodes", "desiredNodes", id="desired_nodes"),
pytest.param("current_nodes", "currentNodes", id="current_nodes"),
pytest.param("k8s.daemonset.name", "daemonSetName", id="daemonset_name"),
],
)
@pytest.mark.parametrize("direction", ["asc", "desc"])
def test_daemonsets_orderby( # pylint: disable=too-many-arguments,too-many-positional-arguments
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
insert_metrics,
column: str,
record_field: str,
direction: str,
) -> None:
"""Every orderBy column x direction: total/len stay K (invariant under
sort) and records come back sorted by the requested column."""
now = datetime.now(tz=UTC).replace(microsecond=0)
insert_metrics(
Metrics.load_from_file(
get_testdata_file_path("inframonitoring/daemonsets_orderby.jsonl"),
base_time=now - timedelta(minutes=4),
)
)
token = get_token(USER_ADMIN_EMAIL, USER_ADMIN_PASSWORD)
K = 5
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,
"orderBy": {"key": {"name": column}, "direction": direction},
# Guards against daemonsets seeded by other tests in the shared backend.
"filter": {"expression": "k8s.daemonset.name CONTAINS 'order-'"},
},
timeout=5,
)
ctx = f"orderBy={column} {direction}"
assert response.status_code == HTTPStatus.OK, f"{ctx}: {response.text}"
data = response.json()["data"]
assert data["total"] == K, f"{ctx}: total={data['total']}"
assert len(data["records"]) == K, f"{ctx}: len(records)={len(data['records'])}"
values = [r[record_field] for r in data["records"]]
expected = sorted(values, reverse=(direction == "desc"))
assert values == expected, f"{ctx} not sorted; got {values}"
@pytest.mark.parametrize(
"payload_override,err_substr",
[
pytest.param({"start": 0}, "start must be greater than 0", id="start_zero"),
pytest.param({"start": -1}, "start must be greater than 0", id="start_negative"),
pytest.param({"end": 0}, "end must be greater than 0", id="end_zero"),
pytest.param({"end": -1}, "end must be greater than 0", id="end_negative"),
pytest.param({"_use_end_eq_start": True}, "must be less than end", id="start_equals_end"),
pytest.param({"_use_start_gt_end": True}, "must be less than end", id="start_greater_than_end"),
pytest.param({"limit": 0}, "limit must be between", id="limit_zero"),
pytest.param({"limit": 5001}, "limit must be between", id="limit_too_large"),
pytest.param({"offset": -1}, "offset cannot be negative", id="offset_negative"),
pytest.param(
{"orderBy": {"key": {"name": "bogus_col"}, "direction": "desc"}},
"invalid order by key",
id="orderby_invalid_key",
),
pytest.param(
{"orderBy": {"key": {"name": "cpu"}, "direction": "up"}},
"invalid order by direction",
id="orderby_invalid_direction",
),
pytest.param(
{
"orderBy": {"key": {"name": "k8s.daemonset.name"}, "direction": "desc"},
"groupBy": [
{
"name": "k8s.namespace.name",
"fieldDataType": "string",
"fieldContext": "resource",
}
],
},
"is only allowed when groupBy is empty",
id="orderby_dsname_with_groupby",
),
],
)
def test_daemonsets_validation_errors(
signoz: types.SigNoz,
create_user_admin: None, # pylint: disable=unused-argument
get_token,
payload_override: dict,
err_substr: str,
) -> None:
"""All PostableDaemonSets.Validate() rules reject with 400 + descriptive error.
See pkg/types/inframonitoringtypes/daemonsets.go:46-97."""
now = datetime.now(tz=UTC).replace(microsecond=0)
body: dict = {
"start": int((now - timedelta(minutes=5)).timestamp() * 1000),
"end": int(now.timestamp() * 1000),
"limit": 50,
}
if payload_override.pop("_use_end_eq_start", False):
body["end"] = body["start"]
if payload_override.pop("_use_start_gt_end", False):
body["start"] = body["end"] + 1
body.update(payload_override)
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=body,
timeout=5,
)
assert response.status_code == HTTPStatus.BAD_REQUEST, response.text
error = response.json()["error"]
assert error["code"] == "invalid_input"
assert err_substr.lower() in error["message"].lower(), f"expected substring {err_substr!r} not found in: {error['message']!r}"