Use public metrics (#1093)

This commit is contained in:
Diego Hurtado
2022-05-16 22:06:08 -06:00
committed by GitHub
parent 80969a06da
commit 9cb853e522
3 changed files with 30 additions and 23 deletions

View File

@ -6,7 +6,7 @@ on:
- 'release/*' - 'release/*'
pull_request: pull_request:
env: env:
CORE_REPO_SHA: f367ec2045b2588be95dfa11913868c1d4fcbbc2 CORE_REPO_SHA: 741389585b5d6d1af808a8939c5348113158f969
jobs: jobs:
build: build:
@ -37,7 +37,7 @@ jobs:
run: pip install -U tox-factor run: pip install -U tox-factor
- name: Cache tox environment - name: Cache tox environment
# Preserves .tox directory between runs for faster installs # Preserves .tox directory between runs for faster installs
uses: actions/cache@v2 uses: actions/cache@v1
with: with:
path: | path: |
.tox .tox
@ -113,7 +113,7 @@ jobs:
run: sudo apt-get install -y libsnappy-dev run: sudo apt-get install -y libsnappy-dev
- name: Cache tox environment - name: Cache tox environment
# Preserves .tox directory between runs for faster installs # Preserves .tox directory between runs for faster installs
uses: actions/cache@v2 uses: actions/cache@v1
with: with:
path: | path: |
.tox .tox

View File

@ -42,10 +42,10 @@ Usage
.. code:: python .. 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.instrumentation.system_metrics import SystemMetricsInstrumentor
from opentelemetry.sdk._metrics import MeterProvider from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk._metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader from opentelemetry.sdk.metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader
exporter = ConsoleMetricExporter() exporter = ConsoleMetricExporter()
@ -76,13 +76,12 @@ from typing import Collection, Dict, Iterable, List, Optional
import psutil import psutil
from opentelemetry._metrics import CallbackOptions, Observation, get_meter
# FIXME Remove this pyling disabling line when Github issue is cleared # FIXME Remove this pyling disabling line when Github issue is cleared
# pylint: disable=no-name-in-module # pylint: disable=no-name-in-module
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
from opentelemetry.instrumentation.system_metrics.package import _instruments from opentelemetry.instrumentation.system_metrics.package import _instruments
from opentelemetry.instrumentation.system_metrics.version import __version__ 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 from opentelemetry.sdk.util import get_dict_as_key
_DEFAULT_CONFIG = { _DEFAULT_CONFIG = {

View File

@ -21,8 +21,8 @@ from unittest import mock
from opentelemetry.instrumentation.system_metrics import ( from opentelemetry.instrumentation.system_metrics import (
SystemMetricsInstrumentor, SystemMetricsInstrumentor,
) )
from opentelemetry.sdk._metrics import MeterProvider from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk._metrics.export import InMemoryMetricReader from opentelemetry.sdk.metrics.export import InMemoryMetricReader
from opentelemetry.test.test_base import TestBase from opentelemetry.test.test_base import TestBase
@ -70,8 +70,11 @@ class TestSystemMetrics(TestBase):
meter_provider = MeterProvider(metric_readers=[reader]) meter_provider = MeterProvider(metric_readers=[reader])
system_metrics = SystemMetricsInstrumentor() system_metrics = SystemMetricsInstrumentor()
system_metrics.instrument(meter_provider=meter_provider) system_metrics.instrument(meter_provider=meter_provider)
metrics = reader.get_metrics() metric_names = []
metric_names = list({x.name for x in metrics}) 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) self.assertEqual(len(metric_names), 17)
observer_names = [ observer_names = [
@ -100,14 +103,19 @@ class TestSystemMetrics(TestBase):
def _assert_metrics(self, observer_name, reader, expected): def _assert_metrics(self, observer_name, reader, expected):
assertions = 0 assertions = 0
for metric in reader.get_metrics(): # pylint: disable=protected-access # 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: for expect in expected:
if ( if (
metric.attributes == expect.attributes dict(data_point.attributes)
== expect.attributes
and metric.name == observer_name and metric.name == observer_name
): ):
self.assertEqual( self.assertEqual(
metric.point.value, data_point.value,
expect.value, expect.value,
) )
assertions += 1 assertions += 1