From bfd2e0b92c3047c17805210ba2b6a1cb40d40227 Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Tue, 7 Jul 2026 19:35:37 +0530 Subject: [PATCH 1/6] feat: Add GCPCLOUDTASKSQUEUE entity definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds golden_metrics.yml, summary_metrics.yml, and dashboard.json for GCP Cloud Tasks Queue. Updates definition.yml with goldenTags (gcp.projectId, gcp.region — queues are region-scoped). Golden metrics: queue depth (max), task attempt count (sum), task attempt delay (average, ms). Dashboard adds 3 additional widgets faceted by response code, API method, and max delay. --- .../infra-gcpcloudtasksqueue/dashboard.json | 186 ++++++++++++++++++ .../infra-gcpcloudtasksqueue/definition.yml | 4 +- .../golden_metrics.yml | 27 +++ .../summary_metrics.yml | 22 +++ 4 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 entity-types/infra-gcpcloudtasksqueue/dashboard.json create mode 100644 entity-types/infra-gcpcloudtasksqueue/golden_metrics.yml create mode 100644 entity-types/infra-gcpcloudtasksqueue/summary_metrics.yml diff --git a/entity-types/infra-gcpcloudtasksqueue/dashboard.json b/entity-types/infra-gcpcloudtasksqueue/dashboard.json new file mode 100644 index 0000000000..d6a225a4c4 --- /dev/null +++ b/entity-types/infra-gcpcloudtasksqueue/dashboard.json @@ -0,0 +1,186 @@ +{ + "name": "GCP Cloud Tasks Queue", + "description": null, + "pages": [ + { + "name": "Summary", + "description": null, + "widgets": [ + { + "title": "Queue Depth", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT max(`gcp.cloudtasks.queue.depth`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Task Attempt Count", + "layout": { + "column": 5, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.cloudtasks.queue.task_attempt_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Task Attempt Delay (avg ms)", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT average(`gcp.cloudtasks.queue.task_attempt_delays`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Task Attempts by Response Code", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.cloudtasks.queue.task_attempt_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.response_code` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "API Requests by Method", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.cloudtasks.api.request_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.api_method` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Task Attempt Delay (max ms)", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT max(`gcp.cloudtasks.queue.task_attempt_delays`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + } + ] + } + ] +} diff --git a/entity-types/infra-gcpcloudtasksqueue/definition.yml b/entity-types/infra-gcpcloudtasksqueue/definition.yml index 600cadd8e2..dbb7983056 100644 --- a/entity-types/infra-gcpcloudtasksqueue/definition.yml +++ b/entity-types/infra-gcpcloudtasksqueue/definition.yml @@ -1,9 +1,11 @@ domain: INFRA type: GCPCLOUDTASKSQUEUE +goldenTags: +- gcp.projectId +- gcp.region configuration: entityExpirationTime: DAILY alertable: true - ownership: primaryOwner: teamName: "Cloud Monitoring Platform" diff --git a/entity-types/infra-gcpcloudtasksqueue/golden_metrics.yml b/entity-types/infra-gcpcloudtasksqueue/golden_metrics.yml new file mode 100644 index 0000000000..e70871bb1e --- /dev/null +++ b/entity-types/infra-gcpcloudtasksqueue/golden_metrics.yml @@ -0,0 +1,27 @@ +queueDepth: + title: Queue Depth + unit: COUNT + queries: + gcp: + select: max(gcp.cloudtasks.queue.depth) + from: Metric + eventId: entity.guid + eventName: entity.name +taskAttemptCount: + title: Task Attempt Count + unit: COUNT + queries: + gcp: + select: sum(gcp.cloudtasks.queue.task_attempt_count) + from: Metric + eventId: entity.guid + eventName: entity.name +taskAttemptDelay: + title: Task Attempt Delay + unit: MS + queries: + gcp: + select: average(gcp.cloudtasks.queue.task_attempt_delays) + from: Metric + eventId: entity.guid + eventName: entity.name diff --git a/entity-types/infra-gcpcloudtasksqueue/summary_metrics.yml b/entity-types/infra-gcpcloudtasksqueue/summary_metrics.yml new file mode 100644 index 0000000000..fbb2b6c92f --- /dev/null +++ b/entity-types/infra-gcpcloudtasksqueue/summary_metrics.yml @@ -0,0 +1,22 @@ +providerAccountName: + tag: + key: providerAccountName + title: GCP account + unit: STRING +gcpProjectId: + tag: + key: gcp.projectId + title: GCP Project ID + unit: STRING +queueDepth: + goldenMetric: queueDepth + unit: COUNT + title: Queue Depth +taskAttemptCount: + goldenMetric: taskAttemptCount + unit: COUNT + title: Task Attempt Count +taskAttemptDelay: + goldenMetric: taskAttemptDelay + unit: MS + title: Task Attempt Delay From 641ded11fb642fe83d945966865c4667d250b469 Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Tue, 7 Jul 2026 19:37:09 +0530 Subject: [PATCH 2/6] feat: Add GCPAIPLATFORMPIPELINEJOB Metric-based entity definition - Add goldenTags (gcp.projectId, gcp.region) - Add Metric-based queries to golden_metrics.yml alongside legacy Sample entries - Update summary_metrics.yml formatting - Add dashboard.json with 4 widgets (duration + task_completed_count) --- .../dashboard.json | 86 +++++++++++++++++++ .../definition.yml | 4 + .../golden_metrics.yml | 14 ++- .../summary_metrics.yml | 2 +- 4 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 entity-types/infra-gcpaiplatformpipelinejob/dashboard.json diff --git a/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json b/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json new file mode 100644 index 0000000000..5036836c0a --- /dev/null +++ b/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json @@ -0,0 +1,86 @@ +{ + "name": "GCP AI Platform Pipeline Job", + "pages": [ + { + "name": "GCP AI Platform Pipeline Job", + "widgets": [ + { + "visualization": { + "id": "viz.line" + }, + "layout": { + "column": 1, + "row": 1, + "height": 3, + "width": 6 + }, + "title": "Pipeline Job Duration (s)", + "rawConfiguration": { + "nrqlQueries": [ + { + "query": "FROM Metric SELECT average(`gcp.aiplatform.pipelinejob.duration`) AS 'Duration (s)' WHERE entity.guid = {{entity.id}} TIMESERIES AUTO", + "accountId": 0} + ] + } + }, + { + "visualization": { + "id": "viz.line" + }, + "layout": { + "column": 7, + "row": 1, + "height": 3, + "width": 6 + }, + "title": "Pipeline Task Completion Rate", + "rawConfiguration": { + "nrqlQueries": [ + { + "query": "FROM Metric SELECT rate(sum(`gcp.aiplatform.pipelinejob.task_completed_count`), 1 second) AS 'Tasks/s' WHERE entity.guid = {{entity.id}} TIMESERIES AUTO", + "accountId": 0} + ] + } + }, + { + "visualization": { + "id": "viz.billboard" + }, + "layout": { + "column": 1, + "row": 4, + "height": 3, + "width": 6 + }, + "title": "Pipeline Task Completion Rate (1h)", + "rawConfiguration": { + "nrqlQueries": [ + { + "query": "FROM Metric SELECT rate(sum(`gcp.aiplatform.pipelinejob.task_completed_count`), 1 second) AS 'Tasks/s' WHERE entity.guid = {{entity.id}} SINCE 1 hour ago", + "accountId": 0} + ] + } + }, + { + "visualization": { + "id": "viz.billboard" + }, + "layout": { + "column": 7, + "row": 4, + "height": 3, + "width": 6 + }, + "title": "Latest Runtime (s)", + "rawConfiguration": { + "nrqlQueries": [ + { + "query": "FROM Metric SELECT latest(`gcp.aiplatform.pipelinejob.duration`) AS 'Latest Runtime (s)' WHERE entity.guid = {{entity.id}} SINCE 1 hour ago", + "accountId": 0} + ] + } + } + ] + } + ] +} diff --git a/entity-types/infra-gcpaiplatformpipelinejob/definition.yml b/entity-types/infra-gcpaiplatformpipelinejob/definition.yml index 8e5756983f..5e8ed6fb0c 100644 --- a/entity-types/infra-gcpaiplatformpipelinejob/definition.yml +++ b/entity-types/infra-gcpaiplatformpipelinejob/definition.yml @@ -4,6 +4,10 @@ configuration: entityExpirationTime: DAILY alertable: true +goldenTags: + - gcp.projectId + - gcp.region + ownership: primaryOwner: teamName: "Cloud Monitoring Platform" diff --git a/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml b/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml index 145c1f8486..558967842b 100644 --- a/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml +++ b/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml @@ -2,6 +2,11 @@ jobDuration: title: Runtime seconds of the pipeline job being executed (from creation to end) unit: SECONDS queries: + provider: + select: average(`gcp.aiplatform.pipelinejob.duration`) + from: Metric + eventId: entity.guid + eventName: entity.name gcpSample: select: average(`pipelinejob.Duration`) from: GcpVertexAiPipelineJobSample @@ -9,10 +14,15 @@ jobDuration: eventName: entityName taskCompletedCount: title: Total number of completed PipelineTasks - unit: COUNT + unit: COUNT queries: + provider: + select: sum(`gcp.aiplatform.pipelinejob.task_completed_count`) + from: Metric + eventId: entity.guid + eventName: entity.name gcpSample: select: sum(`pipelinejob.TaskCompletedCount`) from: GcpVertexAiPipelineJobSample eventId: entityGuid - eventName: entityName \ No newline at end of file + eventName: entityName diff --git a/entity-types/infra-gcpaiplatformpipelinejob/summary_metrics.yml b/entity-types/infra-gcpaiplatformpipelinejob/summary_metrics.yml index 06b94d0059..fa2d80842f 100644 --- a/entity-types/infra-gcpaiplatformpipelinejob/summary_metrics.yml +++ b/entity-types/infra-gcpaiplatformpipelinejob/summary_metrics.yml @@ -15,4 +15,4 @@ jobDuration: taskCompletedCount: goldenMetric: taskCompletedCount unit: COUNT - title: Total number of completed PipelineTasks \ No newline at end of file + title: Total number of completed PipelineTasks From 74f9df6c94e0b682c23f968a33fd3cce9fecde28 Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Wed, 8 Jul 2026 10:36:39 +0530 Subject: [PATCH 3/6] feat: Add GCPFIREBASESTORAGEBUCKET entity definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds golden metrics, summary metrics, dashboard and goldenTags for Firebase Storage. Uses the Firebase-specific metric gcp.firebasestorage.rules.evaluation_count (GA, DELTA) — the sole firebasestorage.googleapis.com metric on gcs_bucket resource. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../dashboard.json | 144 ++++++++++++++++++ .../definition.yml | 3 + .../golden_metrics.yml | 30 ++++ .../summary_metrics.yml | 26 ++++ 4 files changed, 203 insertions(+) create mode 100644 entity-types/infra-gcpfirebasestoragebucket/dashboard.json create mode 100644 entity-types/infra-gcpfirebasestoragebucket/golden_metrics.yml create mode 100644 entity-types/infra-gcpfirebasestoragebucket/summary_metrics.yml diff --git a/entity-types/infra-gcpfirebasestoragebucket/dashboard.json b/entity-types/infra-gcpfirebasestoragebucket/dashboard.json new file mode 100644 index 0000000000..063135b0e2 --- /dev/null +++ b/entity-types/infra-gcpfirebasestoragebucket/dashboard.json @@ -0,0 +1,144 @@ +{ + "name": "GCP Firebase Storage", + "description": null, + "pages": [ + { + "name": "GCP Firebase Storage", + "description": null, + "widgets": [ + { + "title": "Rule evaluations", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' TIMESERIES AUTO" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Rule evaluations by result", + "layout": { + "column": 5, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.result` TIMESERIES AUTO" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Rule evaluations by request method", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.request_method` TIMESERIES AUTO" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Rule evaluations by ruleset label", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.ruleset_label` TIMESERIES AUTO" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Denied evaluations", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) AS 'Denied' FROM Metric WHERE entity.guid = '{{entity.guid}}' AND `metric.result` = 'DENY'" + } + ] + } + }, + { + "title": "Errored evaluations", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) AS 'Errored' FROM Metric WHERE entity.guid = '{{entity.guid}}' AND `metric.result` = 'ERROR'" + } + ] + } + } + ] + } + ] +} diff --git a/entity-types/infra-gcpfirebasestoragebucket/definition.yml b/entity-types/infra-gcpfirebasestoragebucket/definition.yml index b2f3f4dd9f..952ff2d1fb 100644 --- a/entity-types/infra-gcpfirebasestoragebucket/definition.yml +++ b/entity-types/infra-gcpfirebasestoragebucket/definition.yml @@ -1,5 +1,8 @@ domain: INFRA type: GCPFIREBASESTORAGEBUCKET +goldenTags: +- gcp.projectId +- gcp.region configuration: entityExpirationTime: DAILY alertable: true diff --git a/entity-types/infra-gcpfirebasestoragebucket/golden_metrics.yml b/entity-types/infra-gcpfirebasestoragebucket/golden_metrics.yml new file mode 100644 index 0000000000..b6f5191aeb --- /dev/null +++ b/entity-types/infra-gcpfirebasestoragebucket/golden_metrics.yml @@ -0,0 +1,30 @@ +ruleEvaluations: + title: Rule evaluations + unit: COUNT + queries: + gcp: + select: sum(gcp.firebasestorage.rules.evaluation_count) + from: Metric + eventId: entity.guid + eventName: entity.name + +denyRate: + title: Deny rate + unit: PERCENTAGE + queries: + gcp: + select: filter(sum(gcp.firebasestorage.rules.evaluation_count), WHERE `metric.result` = 'DENY') * 100 / sum(gcp.firebasestorage.rules.evaluation_count) + from: Metric + eventId: entity.guid + eventName: entity.name + +errorCount: + title: Rule evaluation errors + unit: COUNT + queries: + gcp: + select: sum(gcp.firebasestorage.rules.evaluation_count) + from: Metric + where: "`metric.result` = 'ERROR'" + eventId: entity.guid + eventName: entity.name diff --git a/entity-types/infra-gcpfirebasestoragebucket/summary_metrics.yml b/entity-types/infra-gcpfirebasestoragebucket/summary_metrics.yml new file mode 100644 index 0000000000..e80638a50f --- /dev/null +++ b/entity-types/infra-gcpfirebasestoragebucket/summary_metrics.yml @@ -0,0 +1,26 @@ +providerAccountName: + tag: + key: providerAccountName + title: GCP account + unit: STRING + +gcpProjectId: + tag: + key: gcp.projectId + title: GCP Project ID + unit: STRING + +ruleEvaluations: + goldenMetric: ruleEvaluations + title: Rule evaluations + unit: COUNT + +denyRate: + goldenMetric: denyRate + title: Deny rate + unit: PERCENTAGE + +errorCount: + goldenMetric: errorCount + title: Rule evaluation errors + unit: COUNT From 41a742cb628482589b0789cc32ae4fcbc70f2296 Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Wed, 8 Jul 2026 10:42:54 +0530 Subject: [PATCH 4/6] feat: Add GCPINTERCONNECTATTACHMENT entity definition Adds golden_metrics.yml, summary_metrics.yml, and dashboard.json for GCP Interconnect Attachment. All 11 GA metrics under interconnect.googleapis.com/network/attachment/* are covered: 5 golden (Capacity, Ingress/Egress Bytes and Packets) plus dropped packets and by-L3-protocol variants on the dashboard. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../dashboard.json | 331 ++++++++++++++++++ .../golden_metrics.yml | 45 +++ .../summary_metrics.yml | 30 ++ 3 files changed, 406 insertions(+) create mode 100644 entity-types/infra-gcpinterconnectattachment/dashboard.json create mode 100644 entity-types/infra-gcpinterconnectattachment/golden_metrics.yml create mode 100644 entity-types/infra-gcpinterconnectattachment/summary_metrics.yml diff --git a/entity-types/infra-gcpinterconnectattachment/dashboard.json b/entity-types/infra-gcpinterconnectattachment/dashboard.json new file mode 100644 index 0000000000..b1c106c7d2 --- /dev/null +++ b/entity-types/infra-gcpinterconnectattachment/dashboard.json @@ -0,0 +1,331 @@ +{ + "name": "GCP Interconnect Attachment", + "description": null, + "pages": [ + { + "name": "Summary", + "description": null, + "widgets": [ + { + "title": "Network Capacity", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT max(`gcp.interconnect.network.attachment.capacity`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Ingress Bytes", + "layout": { + "column": 5, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.received_bytes_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Egress Bytes", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_bytes_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Ingress Packets", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.received_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Egress Packets", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Egress Dropped Packets by Drop Reason", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.egress_dropped_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.drop_reason` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Ingress Dropped Packets by Drop Reason", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.ingress_dropped_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.drop_reason` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Ingress Bytes by L3 Protocol", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.received_bytes_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Egress Bytes by L3 Protocol", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_bytes_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Ingress Packets by L3 Protocol", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.received_packets_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Egress Packets by L3 Protocol", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_packets_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" + } + ], + "yAxisLeft": { + "zero": true + } + } + } + ] + } + ] +} diff --git a/entity-types/infra-gcpinterconnectattachment/golden_metrics.yml b/entity-types/infra-gcpinterconnectattachment/golden_metrics.yml new file mode 100644 index 0000000000..5490ffe706 --- /dev/null +++ b/entity-types/infra-gcpinterconnectattachment/golden_metrics.yml @@ -0,0 +1,45 @@ +capacity: + title: Network Capacity + unit: BYTES + queries: + gcp: + select: max(`gcp.interconnect.network.attachment.capacity`) + from: Metric + eventId: entity.guid + eventName: entity.name +receivedBytes: + title: Ingress Bytes + unit: BYTES + queries: + gcp: + select: sum(`gcp.interconnect.network.attachment.received_bytes_count`) + from: Metric + eventId: entity.guid + eventName: entity.name +sentBytes: + title: Egress Bytes + unit: BYTES + queries: + gcp: + select: sum(`gcp.interconnect.network.attachment.sent_bytes_count`) + from: Metric + eventId: entity.guid + eventName: entity.name +receivedPackets: + title: Ingress Packets + unit: COUNT + queries: + gcp: + select: sum(`gcp.interconnect.network.attachment.received_packets_count`) + from: Metric + eventId: entity.guid + eventName: entity.name +sentPackets: + title: Egress Packets + unit: COUNT + queries: + gcp: + select: sum(`gcp.interconnect.network.attachment.sent_packets_count`) + from: Metric + eventId: entity.guid + eventName: entity.name diff --git a/entity-types/infra-gcpinterconnectattachment/summary_metrics.yml b/entity-types/infra-gcpinterconnectattachment/summary_metrics.yml new file mode 100644 index 0000000000..49c88baa62 --- /dev/null +++ b/entity-types/infra-gcpinterconnectattachment/summary_metrics.yml @@ -0,0 +1,30 @@ +providerAccountName: + tag: + key: providerAccountName + title: GCP account + unit: STRING +gcpProjectId: + tag: + key: gcp.projectId + title: GCP Project ID + unit: STRING +capacity: + goldenMetric: capacity + unit: BYTES + title: Network Capacity +receivedBytes: + goldenMetric: receivedBytes + unit: BYTES + title: Ingress Bytes +sentBytes: + goldenMetric: sentBytes + unit: BYTES + title: Egress Bytes +receivedPackets: + goldenMetric: receivedPackets + unit: COUNT + title: Ingress Packets +sentPackets: + goldenMetric: sentPackets + unit: COUNT + title: Egress Packets From 01b605ce28fc2a92deca473d8a9fbe65034d0d8e Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Thu, 9 Jul 2026 12:42:48 +0530 Subject: [PATCH 5/6] chore: Remove dashboard.json files from four GCP entity folders Drops dashboard.json from: - entity-types/infra-gcpaiplatformpipelinejob/ - entity-types/infra-gcpcloudtasksqueue/ - entity-types/infra-gcpfirebasestoragebucket/ - entity-types/infra-gcpinterconnectattachment/ Dashboard definitions are now maintained solely in infra-summary templates; entity-definitions no longer carries per-entity dashboards. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../dashboard.json | 86 ----- .../infra-gcpcloudtasksqueue/dashboard.json | 186 ---------- .../dashboard.json | 144 -------- .../dashboard.json | 331 ------------------ 4 files changed, 747 deletions(-) delete mode 100644 entity-types/infra-gcpaiplatformpipelinejob/dashboard.json delete mode 100644 entity-types/infra-gcpcloudtasksqueue/dashboard.json delete mode 100644 entity-types/infra-gcpfirebasestoragebucket/dashboard.json delete mode 100644 entity-types/infra-gcpinterconnectattachment/dashboard.json diff --git a/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json b/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json deleted file mode 100644 index 5036836c0a..0000000000 --- a/entity-types/infra-gcpaiplatformpipelinejob/dashboard.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "GCP AI Platform Pipeline Job", - "pages": [ - { - "name": "GCP AI Platform Pipeline Job", - "widgets": [ - { - "visualization": { - "id": "viz.line" - }, - "layout": { - "column": 1, - "row": 1, - "height": 3, - "width": 6 - }, - "title": "Pipeline Job Duration (s)", - "rawConfiguration": { - "nrqlQueries": [ - { - "query": "FROM Metric SELECT average(`gcp.aiplatform.pipelinejob.duration`) AS 'Duration (s)' WHERE entity.guid = {{entity.id}} TIMESERIES AUTO", - "accountId": 0} - ] - } - }, - { - "visualization": { - "id": "viz.line" - }, - "layout": { - "column": 7, - "row": 1, - "height": 3, - "width": 6 - }, - "title": "Pipeline Task Completion Rate", - "rawConfiguration": { - "nrqlQueries": [ - { - "query": "FROM Metric SELECT rate(sum(`gcp.aiplatform.pipelinejob.task_completed_count`), 1 second) AS 'Tasks/s' WHERE entity.guid = {{entity.id}} TIMESERIES AUTO", - "accountId": 0} - ] - } - }, - { - "visualization": { - "id": "viz.billboard" - }, - "layout": { - "column": 1, - "row": 4, - "height": 3, - "width": 6 - }, - "title": "Pipeline Task Completion Rate (1h)", - "rawConfiguration": { - "nrqlQueries": [ - { - "query": "FROM Metric SELECT rate(sum(`gcp.aiplatform.pipelinejob.task_completed_count`), 1 second) AS 'Tasks/s' WHERE entity.guid = {{entity.id}} SINCE 1 hour ago", - "accountId": 0} - ] - } - }, - { - "visualization": { - "id": "viz.billboard" - }, - "layout": { - "column": 7, - "row": 4, - "height": 3, - "width": 6 - }, - "title": "Latest Runtime (s)", - "rawConfiguration": { - "nrqlQueries": [ - { - "query": "FROM Metric SELECT latest(`gcp.aiplatform.pipelinejob.duration`) AS 'Latest Runtime (s)' WHERE entity.guid = {{entity.id}} SINCE 1 hour ago", - "accountId": 0} - ] - } - } - ] - } - ] -} diff --git a/entity-types/infra-gcpcloudtasksqueue/dashboard.json b/entity-types/infra-gcpcloudtasksqueue/dashboard.json deleted file mode 100644 index d6a225a4c4..0000000000 --- a/entity-types/infra-gcpcloudtasksqueue/dashboard.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "name": "GCP Cloud Tasks Queue", - "description": null, - "pages": [ - { - "name": "Summary", - "description": null, - "widgets": [ - { - "title": "Queue Depth", - "layout": { - "column": 1, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT max(`gcp.cloudtasks.queue.depth`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Task Attempt Count", - "layout": { - "column": 5, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.cloudtasks.queue.task_attempt_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Task Attempt Delay (avg ms)", - "layout": { - "column": 9, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT average(`gcp.cloudtasks.queue.task_attempt_delays`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Task Attempts by Response Code", - "layout": { - "column": 1, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.cloudtasks.queue.task_attempt_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.response_code` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "API Requests by Method", - "layout": { - "column": 5, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.cloudtasks.api.request_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.api_method` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Task Attempt Delay (max ms)", - "layout": { - "column": 9, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT max(`gcp.cloudtasks.queue.task_attempt_delays`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - } - ] - } - ] -} diff --git a/entity-types/infra-gcpfirebasestoragebucket/dashboard.json b/entity-types/infra-gcpfirebasestoragebucket/dashboard.json deleted file mode 100644 index 063135b0e2..0000000000 --- a/entity-types/infra-gcpfirebasestoragebucket/dashboard.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "name": "GCP Firebase Storage", - "description": null, - "pages": [ - { - "name": "GCP Firebase Storage", - "description": null, - "widgets": [ - { - "title": "Rule evaluations", - "layout": { - "column": 1, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' TIMESERIES AUTO" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Rule evaluations by result", - "layout": { - "column": 5, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.result` TIMESERIES AUTO" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Rule evaluations by request method", - "layout": { - "column": 9, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.request_method` TIMESERIES AUTO" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Rule evaluations by ruleset label", - "layout": { - "column": 1, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) FROM Metric WHERE entity.guid = '{{entity.guid}}' FACET `metric.ruleset_label` TIMESERIES AUTO" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Denied evaluations", - "layout": { - "column": 5, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.billboard" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) AS 'Denied' FROM Metric WHERE entity.guid = '{{entity.guid}}' AND `metric.result` = 'DENY'" - } - ] - } - }, - { - "title": "Errored evaluations", - "layout": { - "column": 9, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.billboard" - }, - "rawConfiguration": { - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.firebasestorage.rules.evaluation_count`) AS 'Errored' FROM Metric WHERE entity.guid = '{{entity.guid}}' AND `metric.result` = 'ERROR'" - } - ] - } - } - ] - } - ] -} diff --git a/entity-types/infra-gcpinterconnectattachment/dashboard.json b/entity-types/infra-gcpinterconnectattachment/dashboard.json deleted file mode 100644 index b1c106c7d2..0000000000 --- a/entity-types/infra-gcpinterconnectattachment/dashboard.json +++ /dev/null @@ -1,331 +0,0 @@ -{ - "name": "GCP Interconnect Attachment", - "description": null, - "pages": [ - { - "name": "Summary", - "description": null, - "widgets": [ - { - "title": "Network Capacity", - "layout": { - "column": 1, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT max(`gcp.interconnect.network.attachment.capacity`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Ingress Bytes", - "layout": { - "column": 5, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.received_bytes_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Egress Bytes", - "layout": { - "column": 9, - "row": 1, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_bytes_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Ingress Packets", - "layout": { - "column": 1, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.received_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Egress Packets", - "layout": { - "column": 5, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Egress Dropped Packets by Drop Reason", - "layout": { - "column": 9, - "row": 4, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.egress_dropped_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.drop_reason` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Ingress Dropped Packets by Drop Reason", - "layout": { - "column": 1, - "row": 7, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.ingress_dropped_packets_count`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.drop_reason` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Ingress Bytes by L3 Protocol", - "layout": { - "column": 5, - "row": 7, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.received_bytes_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Egress Bytes by L3 Protocol", - "layout": { - "column": 9, - "row": 7, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_bytes_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Ingress Packets by L3 Protocol", - "layout": { - "column": 1, - "row": 10, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.received_packets_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - }, - { - "title": "Egress Packets by L3 Protocol", - "layout": { - "column": 5, - "row": 10, - "width": 4, - "height": 3 - }, - "visualization": { - "id": "viz.line" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "legend": { - "enabled": true - }, - "nrqlQueries": [ - { - "accountId": 0, - "query": "SELECT sum(`gcp.interconnect.network.attachment.sent_packets_count_by_l3_protocol`) FROM Metric WHERE entity.guid = '{{entity.id}}' FACET `metric.l3_protocol` TIMESERIES auto" - } - ], - "yAxisLeft": { - "zero": true - } - } - } - ] - } - ] -} From 47f1f0ecec9e33a3c9d1988b7dfd96bac788e38b Mon Sep 17 00:00:00 2001 From: sparsi17 Date: Thu, 9 Jul 2026 17:10:16 +0530 Subject: [PATCH 6/6] fix(gcpaiplatformpipelinejob): rename golden metric query key `provider` -> `gcp` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Metric-based query blocks in golden_metrics.yml were keyed under `provider:` — this file used `gcp:` consistently before but the two new entries drifted. Rename both to `gcp:` to match the sibling GCP entity convention (single query key per data source). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../infra-gcpaiplatformpipelinejob/golden_metrics.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml b/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml index 558967842b..db061a437b 100644 --- a/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml +++ b/entity-types/infra-gcpaiplatformpipelinejob/golden_metrics.yml @@ -2,7 +2,7 @@ jobDuration: title: Runtime seconds of the pipeline job being executed (from creation to end) unit: SECONDS queries: - provider: + gcp: select: average(`gcp.aiplatform.pipelinejob.duration`) from: Metric eventId: entity.guid @@ -16,7 +16,7 @@ taskCompletedCount: title: Total number of completed PipelineTasks unit: COUNT queries: - provider: + gcp: select: sum(`gcp.aiplatform.pipelinejob.task_completed_count`) from: Metric eventId: entity.guid