From 04adf0b16d2368d8cd066a5d0d489a05b81f401a Mon Sep 17 00:00:00 2001 From: aprasad Date: Tue, 21 Jul 2026 13:45:40 +0530 Subject: [PATCH 1/2] feat: Add OCINATGATEWAY entity definition (staging) Add OCI NAT Gateway entity definition with: - Entity definition with synthesis rules - Golden metrics - Summary metrics - Test data - Using .stg.yml/.stg.json suffix (staging only) Co-Authored-By: Claude Opus 4.8 --- .../infra-ocinatgateway/definition.stg.yml | 31 ++++++++++++++++ .../golden_metrics.stg.yml | 36 +++++++++++++++++++ .../summary_metrics.stg.yml | 21 +++++++++++ .../infra-ocinatgateway/tests/Metric.stg.json | 25 +++++++++++++ 4 files changed, 113 insertions(+) create mode 100644 entity-types/infra-ocinatgateway/definition.stg.yml create mode 100644 entity-types/infra-ocinatgateway/golden_metrics.stg.yml create mode 100644 entity-types/infra-ocinatgateway/summary_metrics.stg.yml create mode 100644 entity-types/infra-ocinatgateway/tests/Metric.stg.json diff --git a/entity-types/infra-ocinatgateway/definition.stg.yml b/entity-types/infra-ocinatgateway/definition.stg.yml new file mode 100644 index 000000000..c6e9181f0 --- /dev/null +++ b/entity-types/infra-ocinatgateway/definition.stg.yml @@ -0,0 +1,31 @@ +domain: INFRA +type: OCINATGATEWAY +goldenTags: +- oci.compartmentId +- oci.displayName +- oci.lifecycleState +- oci.region +configuration: + entityExpirationTime: DAILY + alertable: true +synthesis: + tags: + newrelic.cloudIntegrations.providerAccountName: + entityTagNames: [newrelic.cloudIntegrations.providerAccountName, providerAccountName] + multiValue: false + rules: + - ruleName: infra_ocinatgateway_oci_resourceId + identifier: oci.resourceId + name: oci.resourceName + legacyFeatures: + overrideGuidType: true + encodeIdentifierInGUID: true + conditions: + - attribute: oci.resourceId + prefix: "ocid1.natgateway" + - attribute: oci.namespace + value: "oci_nat_gateway" + +ownership: + primaryOwner: + teamName: "Cloud Monitoring Platform" diff --git a/entity-types/infra-ocinatgateway/golden_metrics.stg.yml b/entity-types/infra-ocinatgateway/golden_metrics.stg.yml new file mode 100644 index 000000000..e1ea0b404 --- /dev/null +++ b/entity-types/infra-ocinatgateway/golden_metrics.stg.yml @@ -0,0 +1,36 @@ +bytesFromNatGateway: + title: Bytes From NAT Gateway + unit: BYTES + queries: + oci: + select: sum(oci.nat.gateway.bytes.from.natgw) + from: Metric + eventId: entity.guid + eventName: entity.name +bytesToNatGateway: + title: Bytes To NAT Gateway + unit: BYTES + queries: + oci: + select: sum(oci.nat.gateway.bytes.to.natgw) + from: Metric + eventId: entity.guid + eventName: entity.name +connectionsEstablished: + title: Connections Established + unit: COUNT + queries: + oci: + select: sum(oci.nat.gateway.connections.established) + from: Metric + eventId: entity.guid + eventName: entity.name +dropsToNatGateway: + title: Drops To NAT Gateway + unit: COUNT + queries: + oci: + select: sum(oci.nat.gateway.drops.to.natgw) + from: Metric + eventId: entity.guid + eventName: entity.name diff --git a/entity-types/infra-ocinatgateway/summary_metrics.stg.yml b/entity-types/infra-ocinatgateway/summary_metrics.stg.yml new file mode 100644 index 000000000..8a07f0e9a --- /dev/null +++ b/entity-types/infra-ocinatgateway/summary_metrics.stg.yml @@ -0,0 +1,21 @@ +providerAccountName: + tag: + key: providerAccountName + title: OCI account + unit: STRING +bytesFromNatGateway: + goldenMetric: bytesFromNatGateway + unit: BYTES + title: Bytes From NAT Gateway +bytesToNatGateway: + goldenMetric: bytesToNatGateway + unit: BYTES + title: Bytes To NAT Gateway +connectionsEstablished: + goldenMetric: connectionsEstablished + unit: COUNT + title: Connections Established +dropsToNatGateway: + goldenMetric: dropsToNatGateway + unit: COUNT + title: Drops To NAT Gateway diff --git a/entity-types/infra-ocinatgateway/tests/Metric.stg.json b/entity-types/infra-ocinatgateway/tests/Metric.stg.json new file mode 100644 index 000000000..22f482e2c --- /dev/null +++ b/entity-types/infra-ocinatgateway/tests/Metric.stg.json @@ -0,0 +1,25 @@ +[ + { + "oci.compartmentId": "ocid1.compartment.oc1..aaaaaaaabbbbbbccccccccdddddddeeeeeeefffffffgggggggghhhhhhhhiiiiiiiiijjjjjjjj", + "oci.namespace": "oci_nat_gateway", + "oci.region": "us-ashburn-1", + "oci.resourceId": "ocid1.natgateway.oc1.us-ashburn-1.aaaaaaaabbbbbbccccccccdddddddeeeeeeefffffffgggggggghhhhhhhhiiiiiiiiijjjjjjjj", + "oci.resourceName": "test-nat-gateway", + "oci.lifecycleState": "AVAILABLE", + "collector.name": "oci-monitor", + "collector.version": "release-007", + "displayName": "test-nat-gateway", + "endTimestamp": 1746680903, + "instrumentation.provider": "oci", + "metricName": "oci.nat.gateway.bytes.from.natgw", + "newrelic.cloudIntegrations.integrationId": "1", + "newrelic.cloudIntegrations.integrationName": "OCI Monitor metrics", + "newrelic.cloudIntegrations.providerAccountId": "1", + "newrelic.cloudIntegrations.providerAccountName": "oci-dev-all-metrics", + "newrelic.cloudIntegrations.providerExternalId": "9bcb5134-f0a6-11ed-a05b-0242ac120003", + "newrelic.source": "metricAPI", + "nr.entity.id": "-2281987194047346712", + "tags.owner": "test", + "timestamp": 1746680903 + } +] From 74131e3a286329538a971ac5d057cd1f53b2e6d5 Mon Sep 17 00:00:00 2001 From: aprasad Date: Thu, 23 Jul 2026 19:08:44 +0530 Subject: [PATCH 2/2] fix: Backtick OCINATGATEWAY golden metric names (reserved-word segments) The NR metric names contain 'from'/'to' as dotted segments (e.g. oci.nat.gateway.bytes.from.natgw), which are reserved NRQL keywords and fail golden-metric query validation when unquoted. Backtick the metric names in each select, matching the dotted-lowercase precedent set by infra-gcprouternatgateway. Co-Authored-By: Claude Opus 4.8 --- entity-types/infra-ocinatgateway/golden_metrics.stg.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/entity-types/infra-ocinatgateway/golden_metrics.stg.yml b/entity-types/infra-ocinatgateway/golden_metrics.stg.yml index e1ea0b404..dae4aced5 100644 --- a/entity-types/infra-ocinatgateway/golden_metrics.stg.yml +++ b/entity-types/infra-ocinatgateway/golden_metrics.stg.yml @@ -3,7 +3,7 @@ bytesFromNatGateway: unit: BYTES queries: oci: - select: sum(oci.nat.gateway.bytes.from.natgw) + select: sum(`oci.nat.gateway.bytes.from.natgw`) from: Metric eventId: entity.guid eventName: entity.name @@ -12,7 +12,7 @@ bytesToNatGateway: unit: BYTES queries: oci: - select: sum(oci.nat.gateway.bytes.to.natgw) + select: sum(`oci.nat.gateway.bytes.to.natgw`) from: Metric eventId: entity.guid eventName: entity.name @@ -21,7 +21,7 @@ connectionsEstablished: unit: COUNT queries: oci: - select: sum(oci.nat.gateway.connections.established) + select: sum(`oci.nat.gateway.connections.established`) from: Metric eventId: entity.guid eventName: entity.name @@ -30,7 +30,7 @@ dropsToNatGateway: unit: COUNT queries: oci: - select: sum(oci.nat.gateway.drops.to.natgw) + select: sum(`oci.nat.gateway.drops.to.natgw`) from: Metric eventId: entity.guid eventName: entity.name