diff --git a/entity-types/infra-container/golden_metrics.stg.yml b/entity-types/infra-container/golden_metrics.stg.yml new file mode 100644 index 000000000..eb5280949 --- /dev/null +++ b/entity-types/infra-container/golden_metrics.stg.yml @@ -0,0 +1,46 @@ +cpuUsage: + title: CPU usage (cores) + queries: + newRelic: + select: max(docker.container.cpuUsedCores) or max(k8s.container.cpuUsedCores) as 'CPU used cores' + opentelemetry: + # Emulate a rate calculation using timestamps to get CPU cores used + # container.cpu.usage.total is in nanoseconds, divide by 1E9 to get seconds, then by time delta for cores + # See: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/dockerstatsreceiver/metadata.yaml + select: (sum(container.cpu.usage.total) / 1E9) / sum((endTimestamp - timestamp) / 1000) AS 'CPU usage (cores)' +cpuUtilization: + title: CPU utilization (%) + unit: PERCENTAGE + queries: + newRelic: + select: max(docker.container.cpuPercent) or max(k8s.container.cpuCoresUtilization) AS 'CPU Utilization (%)' + opentelemetry: + # via dockerstatsreceiver & kubeletstatsreceiver – which send equivalent value named container.cpu.usage, container.cpu.utilization (deprecated) + select: max(container.cpu.usage or container.cpu.utilization) AS 'CPU Utilization (%)' +memoryUsage: + title: Memory usage (bytes) + unit: BYTES + queries: + newRelic: + select: max(docker.container.memoryUsageBytes) or max(docker.container.memoryPrivateWorkingSet) or max(k8s.container.memoryWorkingSetBytes) AS 'Memory used (bytes)' + opentelemetry: + # via dockerstatsreceiver OR kubeletstatsreceiver respectively + select: max(container.memory.usage.total) or max(container.memory.usage) AS 'Memory used (bytes)' +storageUsage: + title: Storage usage (bytes) + unit: BYTES + queries: + newRelic: + select: max(docker.container.ioTotalBytes) or max(k8s.container.fsUsedPercent) AS 'Storage used (bytes)' + opentelemetry: + # via dockerstatsreceiver OR kubeletstatsreceiver respectively + select: max(container.blockio.io_service_bytes_recursive) or max(container.filesystem.usage) AS 'Storage used (bytes)' +networkTrafficTotal: + title: Network traffic (bytes per second) + unit: BYTES_PER_SECOND + queries: + newRelic: + select: max(docker.container.networkRxBytesPerSecond) + max(docker.container.networkTxBytesPerSecond) AS 'Network traffic (bytes per second)' + opentelemetry: + # Emulate a rate calculation using timestamps to get bytes per second + select: (sum(container.network.io.usage.rx_bytes) / sum((endTimestamp - timestamp) / 1000)) + (sum(container.network.io.usage.tx_bytes) / sum((endTimestamp - timestamp) / 1000)) AS 'Network traffic (bytes per second)' diff --git a/entity-types/infra-container/summary_metrics.stg.yml b/entity-types/infra-container/summary_metrics.stg.yml new file mode 100644 index 000000000..9ff2d34dc --- /dev/null +++ b/entity-types/infra-container/summary_metrics.stg.yml @@ -0,0 +1,25 @@ +containerState: + title: Container state + unit: STRING + tag: + key: container.state +cpuUsage: + goldenMetric: cpuUsage + title: CPU usage (cores) + unit: COUNT +cpuUtilization: + goldenMetric: cpuUtilization + unit: PERCENTAGE + title: CPU utilization (%) +storageUsage: + goldenMetric: storageUsage + title: Storage usage (bytes) + unit: BYTES +memoryUsage: + goldenMetric: memoryUsage + title: Memory usage (bytes) + unit: BYTES +networkTrafficTotal: + goldenMetric: networkTrafficTotal + title: Network traffic (bytes per second) + unit: BYTES_PER_SECOND