From a4f312db8656e1bd8698ece7e6e4f9d60b54e17c Mon Sep 17 00:00:00 2001 From: Carlos Castro Date: Fri, 13 Oct 2023 07:17:19 +0100 Subject: [PATCH] [receiver/dockerstats] Disable deprecated cpu metric (#24183) 2nd step for the deprecation of `container.cpu.percent` According to the deprecation plan in the [docs](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.79.0/receiver/dockerstatsreceiver#transition-to-cpu-utilization-metric-name-aligned-with-opentelemetry-specification), this PR disables the old metric by default, to be released in v0.83.0 tracking issue: https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/21807 --------- Co-authored-by: Christian --- .chloggen/disable_deprecated_cpu_metric.yaml | 23 +++++++++++++ receiver/dockerstatsreceiver/README.md | 6 ++-- receiver/dockerstatsreceiver/documentation.md | 32 +++++++++---------- .../internal/metadata/generated_config.go | 4 +-- .../internal/metadata/generated_metrics.go | 9 ++---- .../metadata/generated_metrics_test.go | 12 +++---- receiver/dockerstatsreceiver/metadata.yaml | 13 ++++---- receiver/dockerstatsreceiver/receiver_test.go | 2 +- .../mock/cgroups_v2/expected_metrics.yaml | 16 +++++----- .../mock/no_pids_stats/expected_metrics.yaml | 16 +++++----- .../mock/pids_stats_max/expected_metrics.yaml | 16 +++++----- .../single_container/expected_metrics.yaml | 16 +++++----- .../expected_metrics.yaml | 16 +++++----- .../mock/two_containers/expected_metrics.yaml | 32 +++++++++---------- 14 files changed, 115 insertions(+), 98 deletions(-) create mode 100755 .chloggen/disable_deprecated_cpu_metric.yaml diff --git a/.chloggen/disable_deprecated_cpu_metric.yaml b/.chloggen/disable_deprecated_cpu_metric.yaml new file mode 100755 index 000000000000..bdf68c673d88 --- /dev/null +++ b/.chloggen/disable_deprecated_cpu_metric.yaml @@ -0,0 +1,23 @@ +# Use this changelog template to create an entry for release notes. +# If your change doesn't affect end users, such as a test fix or a tooling change, +# you should instead start your pull request title with [chore] or use the "Skip Changelog" label. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: deprecation + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: dockerstatsreceiver + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: "cpu.container.percent metric will be deprecated in v0.79.0 in favor of container.cpu.utilization" + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [21807] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: | + The metric `container.cpu.percentage` is now disabled by default and will be removed in v0.88.0. + As a replacement, the following metric is now enabled by default: `container.cpu.utilization`. + For details, see the [docs](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/dockerstatsreceiver#transition-to-cpu-utilization-metric-name-aligned-with-opentelemetry-specification). diff --git a/receiver/dockerstatsreceiver/README.md b/receiver/dockerstatsreceiver/README.md index 3c5230af0da6..559af5b05941 100644 --- a/receiver/dockerstatsreceiver/README.md +++ b/receiver/dockerstatsreceiver/README.md @@ -87,10 +87,10 @@ which defines [container.cpu.utilization] as the name for this metric. To align the emitted metric names with the OpenTelemetry specification, the following process will be followed to phase out the old metrics: -- Between `v0.79.0` and `v0.81.0`, the new metric is introduced and the old metric is marked as deprecated. +- Between `v0.79.0` and `v0.86.0`, the new metric is introduced and the old metric is marked as deprecated. Only the old metric are emitted by default. -- Between `v0.82.0` and `v0.84.0`, the old metric is disabled and the new one enabled by default. -- In `v0.85.0` and up, the old metric is removed. +- In `v0.87.0`, the old metric is disabled and the new one enabled by default. +- In `v0.88.0` and up, the old metric is removed. To change the enabled state for the specific metrics, use the standard configuration options that are available for all metrics. diff --git a/receiver/dockerstatsreceiver/documentation.md b/receiver/dockerstatsreceiver/documentation.md index c4e6f1c315a8..7061ebf4b294 100644 --- a/receiver/dockerstatsreceiver/documentation.md +++ b/receiver/dockerstatsreceiver/documentation.md @@ -30,14 +30,6 @@ More docs for [cgroups v1](https://www.kernel.org/doc/Documentation/cgroup-v1/bl | device_minor | Device minor number for block IO operations. | Any Str | | operation | Type of BlockIO operation. | Any Str | -### container.cpu.percent - -Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container. - -| Unit | Metric Type | Value Type | -| ---- | ----------- | ---------- | -| 1 | Gauge | Double | - ### container.cpu.usage.kernelmode Time spent by tasks of the cgroup in kernel mode (Linux). Time spent by all container processes in kernel mode (Windows). @@ -62,6 +54,14 @@ Time spent by tasks of the cgroup in user mode (Linux). Time spent by all conta | ---- | ----------- | ---------- | ----------------------- | --------- | | ns | Sum | Int | Cumulative | true | +### container.cpu.utilization + +Percent of CPU used by the container. + +| Unit | Metric Type | Value Type | +| ---- | ----------- | ---------- | +| 1 | Gauge | Double | + ### container.memory.file Amount of memory used to cache filesystem data, including tmpfs and shared memory (Only available with cgroups v2). @@ -296,6 +296,14 @@ Number of sectors transferred to/from disk by the group and descendant groups (O | device_minor | Device minor number for block IO operations. | Any Str | | operation | Type of BlockIO operation. | Any Str | +### container.cpu.percent + +[DEPRECATED] Use `container.cpu.utilization` metric instead. Percent of CPU used by the container. + +| Unit | Metric Type | Value Type | +| ---- | ----------- | ---------- | +| 1 | Gauge | Double | + ### container.cpu.throttling_data.periods Number of periods with throttling active. @@ -344,14 +352,6 @@ Note this is the usage for the system, not the container. | ---- | ----------- | ---------- | ----------------------- | --------- | | ns | Sum | Int | Cumulative | true | -### container.cpu.utilization - -Percent of CPU used by the container. - -| Unit | Metric Type | Value Type | -| ---- | ----------- | ---------- | -| 1 | Gauge | Double | - ### container.memory.active_anon The amount of anonymous memory that has been identified as active by the kernel. diff --git a/receiver/dockerstatsreceiver/internal/metadata/generated_config.go b/receiver/dockerstatsreceiver/internal/metadata/generated_config.go index fdc7c4fc5c0d..aed596f0ba2f 100644 --- a/receiver/dockerstatsreceiver/internal/metadata/generated_config.go +++ b/receiver/dockerstatsreceiver/internal/metadata/generated_config.go @@ -121,7 +121,7 @@ func DefaultMetricsConfig() MetricsConfig { Enabled: false, }, ContainerCPUPercent: MetricConfig{ - Enabled: true, + Enabled: false, }, ContainerCPUThrottlingDataPeriods: MetricConfig{ Enabled: false, @@ -148,7 +148,7 @@ func DefaultMetricsConfig() MetricsConfig { Enabled: true, }, ContainerCPUUtilization: MetricConfig{ - Enabled: false, + Enabled: true, }, ContainerMemoryActiveAnon: MetricConfig{ Enabled: false, diff --git a/receiver/dockerstatsreceiver/internal/metadata/generated_metrics.go b/receiver/dockerstatsreceiver/internal/metadata/generated_metrics.go index 36a79b0b36ce..eda8611eb694 100644 --- a/receiver/dockerstatsreceiver/internal/metadata/generated_metrics.go +++ b/receiver/dockerstatsreceiver/internal/metadata/generated_metrics.go @@ -461,7 +461,7 @@ type metricContainerCPUPercent struct { // init fills container.cpu.percent metric with initial data. func (m *metricContainerCPUPercent) init() { m.data.SetName("container.cpu.percent") - m.data.SetDescription("Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.") + m.data.SetDescription("[DEPRECATED] Use `container.cpu.utilization` metric instead. Percent of CPU used by the container.") m.data.SetUnit("1") m.data.SetEmptyGauge() } @@ -3559,11 +3559,8 @@ func WithStartTime(startTime pcommon.Timestamp) metricBuilderOption { } func NewMetricsBuilder(mbc MetricsBuilderConfig, settings receiver.CreateSettings, options ...metricBuilderOption) *MetricsBuilder { - if mbc.Metrics.ContainerCPUPercent.Enabled { - settings.Logger.Warn("[WARNING] `container.cpu.percent` should not be enabled: This metric will be disabled in v0.82.0 and removed in v0.85.0.") - } - if !mbc.Metrics.ContainerCPUUtilization.enabledSetByUser { - settings.Logger.Warn("[WARNING] Please set `enabled` field explicitly for `container.cpu.utilization`: This metric will be enabled by default in v0.82.0.") + if mbc.Metrics.ContainerCPUPercent.enabledSetByUser { + settings.Logger.Warn("[WARNING] `container.cpu.percent` should not be configured: The metric is deprecated and will be removed in v0.88.0. Please use `container.cpu.utilization` instead. See https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/dockerstatsreceiver#transition-to-cpu-utilization-metric-name-aligned-with-opentelemetry-specification for more details.") } mb := &MetricsBuilder{ config: mbc, diff --git a/receiver/dockerstatsreceiver/internal/metadata/generated_metrics_test.go b/receiver/dockerstatsreceiver/internal/metadata/generated_metrics_test.go index 81c825261108..be5d790ef0ec 100644 --- a/receiver/dockerstatsreceiver/internal/metadata/generated_metrics_test.go +++ b/receiver/dockerstatsreceiver/internal/metadata/generated_metrics_test.go @@ -49,12 +49,8 @@ func TestMetricsBuilder(t *testing.T) { mb := NewMetricsBuilder(loadMetricsBuilderConfig(t, test.name), settings, WithStartTime(start)) expectedWarnings := 0 - if test.configSet == testSetDefault || test.configSet == testSetAll { - assert.Equal(t, "[WARNING] `container.cpu.percent` should not be enabled: This metric will be disabled in v0.82.0 and removed in v0.85.0.", observedLogs.All()[expectedWarnings].Message) - expectedWarnings++ - } - if test.configSet == testSetDefault { - assert.Equal(t, "[WARNING] Please set `enabled` field explicitly for `container.cpu.utilization`: This metric will be enabled by default in v0.82.0.", observedLogs.All()[expectedWarnings].Message) + if test.configSet == testSetAll || test.configSet == testSetNone { + assert.Equal(t, "[WARNING] `container.cpu.percent` should not be configured: The metric is deprecated and will be removed in v0.88.0. Please use `container.cpu.utilization` instead. See https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/dockerstatsreceiver#transition-to-cpu-utilization-metric-name-aligned-with-opentelemetry-specification for more details.", observedLogs.All()[expectedWarnings].Message) expectedWarnings++ } @@ -88,7 +84,6 @@ func TestMetricsBuilder(t *testing.T) { allMetricsCount++ mb.RecordContainerBlockioSectorsRecursiveDataPoint(ts, 1, "device_major-val", "device_minor-val", "operation-val") - defaultMetricsCount++ allMetricsCount++ mb.RecordContainerCPUPercentDataPoint(ts, 1) @@ -119,6 +114,7 @@ func TestMetricsBuilder(t *testing.T) { allMetricsCount++ mb.RecordContainerCPUUsageUsermodeDataPoint(ts, 1) + defaultMetricsCount++ allMetricsCount++ mb.RecordContainerCPUUtilizationDataPoint(ts, 1) @@ -497,7 +493,7 @@ func TestMetricsBuilder(t *testing.T) { validatedMetrics["container.cpu.percent"] = true assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type()) assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len()) - assert.Equal(t, "Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.", ms.At(i).Description()) + assert.Equal(t, "[DEPRECATED] Use `container.cpu.utilization` metric instead. Percent of CPU used by the container.", ms.At(i).Description()) assert.Equal(t, "1", ms.At(i).Unit()) dp := ms.At(i).Gauge().DataPoints().At(0) assert.Equal(t, start, dp.StartTimestamp()) diff --git a/receiver/dockerstatsreceiver/metadata.yaml b/receiver/dockerstatsreceiver/metadata.yaml index 1cd889050aca..c45aa65231a6 100644 --- a/receiver/dockerstatsreceiver/metadata.yaml +++ b/receiver/dockerstatsreceiver/metadata.yaml @@ -132,19 +132,20 @@ metrics: monotonic: true aggregation_temporality: cumulative container.cpu.utilization: - enabled: false + enabled: true description: "Percent of CPU used by the container." unit: "1" - warnings: - if_enabled_not_set: This metric will be enabled by default in v0.82.0. gauge: value_type: double container.cpu.percent: - enabled: true - description: "Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container." + enabled: false + description: "[DEPRECATED] Use `container.cpu.utilization` metric instead. Percent of CPU used by the container." unit: "1" warnings: - if_enabled: This metric will be disabled in v0.82.0 and removed in v0.85.0. + if_configured: >- + The metric is deprecated and will be removed in v0.88.0. Please use `container.cpu.utilization` instead. See + https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/dockerstatsreceiver#transition-to-cpu-utilization-metric-name-aligned-with-opentelemetry-specification + for more details. gauge: value_type: double diff --git a/receiver/dockerstatsreceiver/receiver_test.go b/receiver/dockerstatsreceiver/receiver_test.go index 2ab55b93519b..ea898c700cc2 100644 --- a/receiver/dockerstatsreceiver/receiver_test.go +++ b/receiver/dockerstatsreceiver/receiver_test.go @@ -43,7 +43,7 @@ var ( ContainerBlockioIoTimeRecursive: metricEnabled, ContainerBlockioIoWaitTimeRecursive: metricEnabled, ContainerBlockioSectorsRecursive: metricEnabled, - ContainerCPUPercent: metricEnabled, + ContainerCPUUtilization: metricEnabled, ContainerCPUThrottlingDataPeriods: metricEnabled, ContainerCPUThrottlingDataThrottledPeriods: metricEnabled, ContainerCPUThrottlingDataThrottledTime: metricEnabled, diff --git a/receiver/dockerstatsreceiver/testdata/mock/cgroups_v2/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/cgroups_v2/expected_metrics.yaml index c4a3d1246f03..1192f4e4f89c 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/cgroups_v2/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/cgroups_v2/expected_metrics.yaml @@ -52,14 +52,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: By - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0.041326615629205886 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -130,6 +122,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0.041326615629205886 + startTimeUnixNano: "1687762436307743000" + timeUnixNano: "1687762436315926000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: diff --git a/receiver/dockerstatsreceiver/testdata/mock/no_pids_stats/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/no_pids_stats/expected_metrics.yaml index dcfe6bc744e5..801ada31b154 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/no_pids_stats/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/no_pids_stats/expected_metrics.yaml @@ -195,14 +195,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: '{operations}' - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0.0002888012543185477 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -336,6 +328,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0.0002888012543185477 + startTimeUnixNano: "1687762436220246000" + timeUnixNano: "1687762436230155000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: diff --git a/receiver/dockerstatsreceiver/testdata/mock/pids_stats_max/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/pids_stats_max/expected_metrics.yaml index e76e6fe22bb2..9c6d8fbfa31a 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/pids_stats_max/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/pids_stats_max/expected_metrics.yaml @@ -104,14 +104,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: By - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -182,6 +174,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0 + startTimeUnixNano: "1687762436274253000" + timeUnixNano: "1687762436282542000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: diff --git a/receiver/dockerstatsreceiver/testdata/mock/single_container/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/single_container/expected_metrics.yaml index c9343ed9b1a0..02c317151ac0 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/single_container/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/single_container/expected_metrics.yaml @@ -201,14 +201,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: '{operations}' - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0.0002888012543185477 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -342,6 +334,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0.0002888012543185477 + startTimeUnixNano: "1687762436059456000" + timeUnixNano: "1687762436071484000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: diff --git a/receiver/dockerstatsreceiver/testdata/mock/single_container_with_optional_resource_attributes/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/single_container_with_optional_resource_attributes/expected_metrics.yaml index c681d1437dda..52e89413f0ed 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/single_container_with_optional_resource_attributes/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/single_container_with_optional_resource_attributes/expected_metrics.yaml @@ -201,14 +201,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: '{operations}' - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0.0002888012543185477 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -342,6 +334,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0.0002888012543185477 + startTimeUnixNano: "1687762436337809000" + timeUnixNano: "1687762436345613000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: diff --git a/receiver/dockerstatsreceiver/testdata/mock/two_containers/expected_metrics.yaml b/receiver/dockerstatsreceiver/testdata/mock/two_containers/expected_metrics.yaml index 5163742d1d56..fa5d9a5a5285 100644 --- a/receiver/dockerstatsreceiver/testdata/mock/two_containers/expected_metrics.yaml +++ b/receiver/dockerstatsreceiver/testdata/mock/two_containers/expected_metrics.yaml @@ -195,14 +195,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: '{operations}' - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -287,6 +279,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0 + startTimeUnixNano: "1687762436124732000" + timeUnixNano: "1687762436137493000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: @@ -946,14 +946,6 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: '{operations}' - - description: 'Deprecated: use `container.cpu.utilization` metric instead. Percent of CPU used by the container.' - gauge: - dataPoints: - - asDouble: 0 - startTimeUnixNano: "1000000" - timeUnixNano: "2000000" - name: container.cpu.percent - unit: "1" - description: Number of periods with throttling active. name: container.cpu.throttling_data.periods sum: @@ -1038,6 +1030,14 @@ resourceMetrics: timeUnixNano: "2000000" isMonotonic: true unit: ns + - description: 'Percent of CPU used by the container.' + gauge: + dataPoints: + - asDouble: 0 + startTimeUnixNano: "1687762436124732000" + timeUnixNano: "1687762436137493000" + name: container.cpu.utilization + unit: "1" - description: The amount of anonymous memory that has been identified as active by the kernel. name: container.memory.active_anon sum: