From 9cb853e522f53116e94582d9370acd143d2dba57 Mon Sep 17 00:00:00 2001 From: Diego Hurtado Date: Mon, 16 May 2022 22:06:08 -0600 Subject: [PATCH] Use public metrics (#1093) --- .github/workflows/test.yml | 6 +-- .../system_metrics/__init__.py | 9 ++--- .../tests/test_system_metrics.py | 38 +++++++++++-------- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03d0047c5..1119b8de0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,7 +6,7 @@ on: - 'release/*' pull_request: env: - CORE_REPO_SHA: f367ec2045b2588be95dfa11913868c1d4fcbbc2 + CORE_REPO_SHA: 741389585b5d6d1af808a8939c5348113158f969 jobs: build: @@ -37,7 +37,7 @@ jobs: run: pip install -U tox-factor - name: Cache tox environment # Preserves .tox directory between runs for faster installs - uses: actions/cache@v2 + uses: actions/cache@v1 with: path: | .tox @@ -113,7 +113,7 @@ jobs: run: sudo apt-get install -y libsnappy-dev - name: Cache tox environment # Preserves .tox directory between runs for faster installs - uses: actions/cache@v2 + uses: actions/cache@v1 with: path: | .tox diff --git a/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/__init__.py b/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/__init__.py index 8d76e5fcc..a089d1bc6 100644 --- a/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-system-metrics/src/opentelemetry/instrumentation/system_metrics/__init__.py @@ -42,10 +42,10 @@ Usage .. code:: python - from opentelemetry._metrics import set_meter_provider + from opentelemetry.metrics import set_meter_provider from opentelemetry.instrumentation.system_metrics import SystemMetricsInstrumentor - from opentelemetry.sdk._metrics import MeterProvider - from opentelemetry.sdk._metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader + from opentelemetry.sdk.metrics import MeterProvider + from opentelemetry.sdk.metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader exporter = ConsoleMetricExporter() @@ -76,13 +76,12 @@ from typing import Collection, Dict, Iterable, List, Optional import psutil -from opentelemetry._metrics import CallbackOptions, Observation, get_meter - # FIXME Remove this pyling disabling line when Github issue is cleared # pylint: disable=no-name-in-module from opentelemetry.instrumentation.instrumentor import BaseInstrumentor from opentelemetry.instrumentation.system_metrics.package import _instruments from opentelemetry.instrumentation.system_metrics.version import __version__ +from opentelemetry.metrics import CallbackOptions, Observation, get_meter from opentelemetry.sdk.util import get_dict_as_key _DEFAULT_CONFIG = { diff --git a/instrumentation/opentelemetry-instrumentation-system-metrics/tests/test_system_metrics.py b/instrumentation/opentelemetry-instrumentation-system-metrics/tests/test_system_metrics.py index aeee669f9..04d7674db 100644 --- a/instrumentation/opentelemetry-instrumentation-system-metrics/tests/test_system_metrics.py +++ b/instrumentation/opentelemetry-instrumentation-system-metrics/tests/test_system_metrics.py @@ -21,8 +21,8 @@ from unittest import mock from opentelemetry.instrumentation.system_metrics import ( SystemMetricsInstrumentor, ) -from opentelemetry.sdk._metrics import MeterProvider -from opentelemetry.sdk._metrics.export import InMemoryMetricReader +from opentelemetry.sdk.metrics import MeterProvider +from opentelemetry.sdk.metrics.export import InMemoryMetricReader from opentelemetry.test.test_base import TestBase @@ -70,8 +70,11 @@ class TestSystemMetrics(TestBase): meter_provider = MeterProvider(metric_readers=[reader]) system_metrics = SystemMetricsInstrumentor() system_metrics.instrument(meter_provider=meter_provider) - metrics = reader.get_metrics() - metric_names = list({x.name for x in metrics}) + metric_names = [] + for resource_metrics in reader.get_metrics_data().resource_metrics: + for scope_metrics in resource_metrics.scope_metrics: + for metric in scope_metrics.metrics: + metric_names.append(metric.name) self.assertEqual(len(metric_names), 17) observer_names = [ @@ -100,17 +103,22 @@ class TestSystemMetrics(TestBase): def _assert_metrics(self, observer_name, reader, expected): assertions = 0 - for metric in reader.get_metrics(): # pylint: disable=protected-access - for expect in expected: - if ( - metric.attributes == expect.attributes - and metric.name == observer_name - ): - self.assertEqual( - metric.point.value, - expect.value, - ) - assertions += 1 + # pylint: disable=too-many-nested-blocks + for resource_metrics in reader.get_metrics_data().resource_metrics: + for scope_metrics in resource_metrics.scope_metrics: + for metric in scope_metrics.metrics: + for data_point in metric.data.data_points: + for expect in expected: + if ( + dict(data_point.attributes) + == expect.attributes + and metric.name == observer_name + ): + self.assertEqual( + data_point.value, + expect.value, + ) + assertions += 1 self.assertEqual(len(expected), assertions) def _test_metrics(self, observer_name, expected):