diff --git a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/microsoft/opentelemetry/exporter/azuremonitor/export/trace/__init__.py b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/microsoft/opentelemetry/exporter/azuremonitor/export/trace/__init__.py index c1aad0f248a3..05969d3d99ee 100644 --- a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/microsoft/opentelemetry/exporter/azuremonitor/export/trace/__init__.py +++ b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/microsoft/opentelemetry/exporter/azuremonitor/export/trace/__init__.py @@ -8,7 +8,7 @@ from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult from opentelemetry.sdk.util import ns_to_iso_str from opentelemetry.trace import Span, SpanKind -from opentelemetry.trace.status import StatusCanonicalCode +from opentelemetry.trace.status import StatusCode from microsoft.opentelemetry.exporter.azuremonitor import utils from microsoft.opentelemetry.exporter.azuremonitor._generated.models import ( @@ -80,9 +80,9 @@ def convert_span_to_envelope(span: Span) -> TelemetryItem: data = RequestData( id="{:016x}".format(span.context.span_id), duration=utils.ns_to_duration(span.end_time - span.start_time), - response_code=str(span.status.canonical_code.value), - success=span.status.canonical_code - == StatusCanonicalCode.OK, # Modify based off attributes or Status + response_code=str(span.status.status_code.value), + success=span.status.status_code + == StatusCode.OK, # Modify based off attributes or Status properties={}, ) envelope.data = MonitorBase(base_data=data, base_type="RequestData") @@ -108,10 +108,10 @@ def convert_span_to_envelope(span: Span) -> TelemetryItem: data = RemoteDependencyData( name=span.name, id="{:016x}".format(span.context.span_id), - result_code=str(span.status.canonical_code.value), + result_code=str(span.status.status_code.value), duration=utils.ns_to_duration(span.end_time - span.start_time), - success=span.status.canonical_code - == StatusCanonicalCode.OK, # Modify based off attributes or Status + success=span.status.status_code + == StatusCode.OK, # Modify based off attributes or Status properties={}, ) envelope.data = MonitorBase( diff --git a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/setup.py b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/setup.py index c6f58c4d5d02..de3dee6031ef 100644 --- a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/setup.py +++ b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/setup.py @@ -75,7 +75,7 @@ install_requires=[ "azure-core<2.0.0,>=1.6.0", "msrest>=0.6.10", - "opentelemetry-api == 0.13b0", - "opentelemetry-sdk == 0.13b0" + "opentelemetry-api == 0.15b0", + "opentelemetry-sdk == 0.15b0" ], ) diff --git a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/tests/trace/test_trace.py b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/tests/trace/test_trace.py index cd504813b18f..8605299089b3 100644 --- a/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/tests/trace/test_trace.py +++ b/sdk/monitor/microsoft-opentelemetry-exporter-azuremonitor/tests/trace/test_trace.py @@ -9,10 +9,10 @@ from unittest import mock # pylint: disable=import-error -from opentelemetry.sdk.trace import Span +from opentelemetry.sdk import trace from opentelemetry.sdk.trace.export import SpanExportResult from opentelemetry.trace import Link, SpanContext, SpanKind -from opentelemetry.trace.status import Status, StatusCanonicalCode +from opentelemetry.trace.status import Status, StatusCode from microsoft.opentelemetry.exporter.azuremonitor.export import ExportResult from microsoft.opentelemetry.exporter.azuremonitor.export.trace import ( @@ -100,7 +100,7 @@ def test_export_failure(self): with mock.patch( "microsoft.opentelemetry.exporter.azuremonitor.export.trace.AzureMonitorSpanExporter._transmit" ) as transmit: # noqa: E501 - test_span = Span( + test_span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -117,7 +117,7 @@ def test_export_failure(self): def test_export_success(self): exporter = self._exporter - test_span = Span( + test_span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -136,11 +136,14 @@ def test_export_success(self): exporter.export([test_span]) self.assertEqual(len(exporter._telemetry_processors), 1) self.assertEqual(storage_mock.call_count, 1) - self.assertEqual(len(os.listdir(exporter.storage.path)), 0) + try: + self.assertEqual(len(os.listdir(exporter.storage.path)), 0) + except FileNotFoundError as ex: + pass @mock.patch("microsoft.opentelemetry.exporter.azuremonitor.export.trace.logger") def test_export_exception(self, logger_mock): - test_span = Span( + test_span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -161,7 +164,7 @@ def test_export_exception(self, logger_mock): def test_export_not_retryable(self): exporter = self._exporter - test_span = Span( + test_span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -219,7 +222,7 @@ def test_span_to_envelope(self): end_time = start_time + 1001000000 # SpanKind.CLIENT HTTP - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -242,7 +245,7 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.instrumentation_key, "12345678-1234-5678-abcd-12345678abcd") @@ -270,7 +273,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RemoteDependencyData") # SpanKind.CLIENT unknown type - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -286,7 +289,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -310,7 +313,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RemoteDependencyData") # SpanKind.CLIENT missing method - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -330,7 +333,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -360,7 +363,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RemoteDependencyData") # SpanKind.SERVER HTTP - 200 request - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -383,7 +386,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.SERVER, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -415,7 +418,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RequestData") # SpanKind.SERVER HTTP - Failed request - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -438,7 +441,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.SERVER, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -470,7 +473,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RequestData") # SpanKind.SERVER unknown type - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -493,7 +496,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.SERVER, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -515,7 +518,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RequestData") # SpanKind.INTERNAL - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -531,7 +534,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.INTERNAL, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -555,7 +558,7 @@ def test_span_to_envelope(self): self.assertEqual(envelope.data.base_type, "RemoteDependencyData") # Attributes - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -577,7 +580,7 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -598,7 +601,7 @@ def test_span_to_envelope(self): ) ) ) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -619,7 +622,7 @@ def test_span_to_envelope(self): links=links, kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) @@ -630,7 +633,7 @@ def test_span_to_envelope(self): self.assertEqual(json_dict["id"], "a6f5d48acb4d31da") # Status - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -651,14 +654,14 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.SERVER, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.data.base_data.response_code, "500") self.assertFalse(envelope.data.base_data.success) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -679,14 +682,14 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.data.base_data.result_code, "500") self.assertFalse(envelope.data.base_data.success) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -706,14 +709,14 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.SERVER, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.data.base_data.response_code, "0") self.assertTrue(envelope.data.base_data.success) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -733,14 +736,14 @@ def test_span_to_envelope(self): links=[], kind=SpanKind.CLIENT, ) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) span.start(start_time=start_time) span.end(end_time=end_time) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.data.base_data.result_code, "0") self.assertTrue(envelope.data.base_data.success) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -762,12 +765,12 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.UNKNOWN) + span.status = Status(status_code=StatusCode.UNSET) envelope = exporter._span_to_envelope(span) - self.assertEqual(envelope.data.base_data.response_code, "2") + self.assertEqual(envelope.data.base_data.response_code, "1") self.assertFalse(envelope.data.base_data.success) - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -789,13 +792,13 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.UNKNOWN) + span.status = Status(status_code=StatusCode.UNSET) envelope = exporter._span_to_envelope(span) - self.assertEqual(envelope.data.base_data.result_code, "2") + self.assertEqual(envelope.data.base_data.result_code, "1") self.assertFalse(envelope.data.base_data.success) # Server route attribute - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -820,7 +823,7 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertEqual( envelope.data.base_data.properties["request.name"], @@ -832,7 +835,7 @@ def test_span_to_envelope(self): ) # Server method attribute missing - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -855,12 +858,12 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertIsNone(envelope.data.base_data.name) # Server route attribute missing - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -884,7 +887,7 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertEqual(envelope.data.base_data.name, "GET") self.assertEqual( @@ -897,7 +900,7 @@ def test_span_to_envelope(self): ) # Server route and path attribute missing - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -920,7 +923,7 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertIsNone( envelope.data.base_data.properties.get("request.name") @@ -931,7 +934,7 @@ def test_span_to_envelope(self): ) # Server http.url missing - span = Span( + span = trace._Span( name="test", context=SpanContext( trace_id=36873507687745823477771305566750195431, @@ -955,7 +958,7 @@ def test_span_to_envelope(self): ) span.start(start_time=start_time) span.end(end_time=end_time) - span.status = Status(canonical_code=StatusCanonicalCode.OK) + span.status = Status(status_code=StatusCode.OK) envelope = exporter._span_to_envelope(span) self.assertIsNone(envelope.data.base_data.url) self.assertIsNone(