Skip to content

Commit 477a9e9

Browse files
authored
Various fixes (aws-observability#13)
In this commit we are fixing various things: * Update project path to start with amazon, not opentelemetry. * Update isort to consider amazon first party. * Fix imports with project path and isort update. * Update some modules/classes to be internal, based on package private classes in Java implementation. * Add basic unit tests to ensure imports are working as expected and setting up the foundation to implement full unit tests later. By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
2 parents a377af6 + 7c08b06 commit 477a9e9

13 files changed

+46
-20
lines changed

.isort.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ profile=black
1515
multi_line_output=3
1616
skip=target
1717
skip_glob=**/gen/*,.venv*/*,venv*/*,.tox/*
18-
known_first_party=opentelemetry
18+
known_first_party=opentelemetry,amazon
1919
known_third_party=psutil,pytest

aws-opentelemetry-distro/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ dependencies = [
2121
test = []
2222

2323
[project.entry-points.opentelemetry_configurator]
24-
aws_configurator = "opentelemetry.distro.aws_opentelemetry_configurator:AwsOpenTelemetryConfigurator"
24+
aws_configurator = "amazon.opentelemetry.distro.aws_opentelemetry_configurator:AwsOpenTelemetryConfigurator"
2525

2626
[project.entry-points.opentelemetry_distro]
27-
aws_distro = "opentelemetry.distro.aws_opentelemetry_distro:AwsOpenTelemetryDistro"
27+
aws_distro = "amazon.opentelemetry.distro.aws_opentelemetry_distro:AwsOpenTelemetryDistro"
2828

2929
[project.urls]
3030
Homepage = "https://github.com/aws-observability/aws-otel-python-instrumentation/tree/main/aws-opentelemetry-distro"
@@ -39,4 +39,4 @@ include = [
3939
]
4040

4141
[tool.hatch.build.targets.wheel]
42-
packages = ["src/amazon/opentelemetry"]
42+
packages = ["src/amazon"]

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_metric_attribute_generator.py renamed to aws-opentelemetry-distro/src/amazon/opentelemetry/distro/_aws_metric_attribute_generator.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
from metric_attribute_generator import MetricAttributeGenerator
4-
3+
from amazon.opentelemetry.distro.metric_attribute_generator import MetricAttributeGenerator
54
from opentelemetry.sdk.resources import Resource
65
from opentelemetry.sdk.trace import BoundedAttributes, ReadableSpan
76

87

9-
class AwsMetricAttributeGenerator(MetricAttributeGenerator):
8+
class _AwsMetricAttributeGenerator(MetricAttributeGenerator):
109
"""AwsMetricAttributeGenerator generates specific metric attributes for incoming and outgoing traffic.
1110
1211
AwsMetricAttributeGenerator generates very specific metric attributes based on low-cardinality span and resource

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_opentelemetry_configurator.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
43
from opentelemetry.sdk._configuration import _BaseConfigurator
54
from opentelemetry.sdk.trace import TracerProvider
65
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_opentelemetry_distro.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
43
from logging import getLogger
54

65
from opentelemetry.instrumentation.distro import BaseDistro

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_span_metrics_processor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# SPDX-License-Identifier: Apache-2.0
33
from typing import Optional
44

5-
from metric_attribute_generator import MetricAttributeGenerator
65
from typing_extensions import override
76

7+
from amazon.opentelemetry.distro.metric_attribute_generator import MetricAttributeGenerator
88
from opentelemetry.context import Context
99
from opentelemetry.metrics import Histogram
1010
from opentelemetry.sdk.resources import Resource

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_span_metrics_processor_builder.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
from aws_metric_attribute_generator import AwsMetricAttributeGenerator
4-
from aws_span_metrics_processor import AwsSpanMetricsProcessor
5-
from metric_attribute_generator import MetricAttributeGenerator
6-
3+
from amazon.opentelemetry.distro._aws_metric_attribute_generator import _AwsMetricAttributeGenerator
4+
from amazon.opentelemetry.distro.aws_span_metrics_processor import AwsSpanMetricsProcessor
5+
from amazon.opentelemetry.distro.metric_attribute_generator import MetricAttributeGenerator
76
from opentelemetry.sdk.metrics import Histogram, Meter, MeterProvider
87
from opentelemetry.sdk.resources import Resource
98

@@ -14,7 +13,7 @@
1413
_LATENCY_UNITS: str = "Milliseconds"
1514

1615
# Defaults
17-
_DEFAULT_GENERATOR: MetricAttributeGenerator = AwsMetricAttributeGenerator()
16+
_DEFAULT_GENERATOR: MetricAttributeGenerator = _AwsMetricAttributeGenerator()
1817
_DEFAULT_SCOPE_NAME: str = "AwsSpanMetricsProcessor"
1918

2019

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
from unittest import TestCase
4+
5+
from amazon.opentelemetry.distro._aws_metric_attribute_generator import _AwsMetricAttributeGenerator
6+
7+
8+
class TestAwsMetricAttributeGenerator(TestCase):
9+
def test_basic(self):
10+
generator: _AwsMetricAttributeGenerator = _AwsMetricAttributeGenerator()
11+
self.assertEqual(generator.generate_metric_attributes_dict_from_span(None, None), {})
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
43
from unittest import TestCase
54

6-
from opentelemetry.distro.aws_opentelemetry_configurator import AwsOpenTelemetryConfigurator, AwsTracerProvider
5+
from amazon.opentelemetry.distro.aws_opentelemetry_configurator import AwsOpenTelemetryConfigurator, AwsTracerProvider
76

87

98
class TestAwsOpenTelemetryConfigurator(TestCase):
10-
# pylint: disable=no-self-use
119
def test_default_configuration(self):
1210
configurator = AwsOpenTelemetryConfigurator()
1311
configurator.configure()
1412
trace_provider = configurator.get_trace_provider()
15-
assert isinstance(trace_provider, AwsTracerProvider)
13+
self.assertTrue(isinstance(trace_provider, AwsTracerProvider))

aws-opentelemetry-distro/tests/amazon/opentelemetry/distro/test_aws_opentelemetry_distro.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
43
from unittest import TestCase
54

65
from pkg_resources import DistributionNotFound, require
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
from unittest import TestCase
4+
5+
from amazon.opentelemetry.distro.aws_span_metrics_processor import AwsSpanMetricsProcessor
6+
7+
8+
class TestAwsSpanMetricsProcessor(TestCase):
9+
def test_basic(self):
10+
processor: AwsSpanMetricsProcessor = AwsSpanMetricsProcessor(None, None, None, None, None)
11+
self.assertTrue(processor.force_flush)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
from unittest import TestCase
4+
5+
from amazon.opentelemetry.distro.aws_span_metrics_processor_builder import AwsSpanMetricsProcessorBuilder
6+
7+
8+
class TestAwsSpanMetricsProcessorBuilder(TestCase):
9+
def test_basic(self):
10+
builder: AwsSpanMetricsProcessorBuilder = AwsSpanMetricsProcessorBuilder(None, None)
11+
self.assertIs(builder.set_scope_name("test"), builder)

0 commit comments

Comments
 (0)