Skip to content

Commit 54d65c1

Browse files
authored
Setup eventloggerprovider in azure monitor distro (Azure#38543)
1 parent 02c88cf commit 54d65c1

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

sdk/monitor/azure-monitor-opentelemetry/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
### Features Added
66

7+
- Distro to automatically configure event logger provider
8+
([#38543](https://github.com/Azure/azure-sdk-for-python/pull/38543))
9+
710
### Breaking Changes
811

912
### Bugs Fixed

sdk/monitor/azure-monitor-opentelemetry/azure/monitor/opentelemetry/_configure.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from logging import getLogger
88
from typing import Dict, List, cast
99

10+
from opentelemetry._events import set_event_logger_provider
1011
from opentelemetry._logs import set_logger_provider
1112
from opentelemetry.instrumentation.dependencies import (
1213
get_dist_dependency_conflicts,
@@ -15,6 +16,7 @@
1516
BaseInstrumentor,
1617
)
1718
from opentelemetry.metrics import set_meter_provider
19+
from opentelemetry.sdk._events import EventLoggerProvider
1820
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
1921
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
2022
from opentelemetry.sdk.metrics import MeterProvider
@@ -172,6 +174,10 @@ def _setup_logging(configurations: Dict[str, ConfigurationValue]):
172174
logger_name: str = configurations[LOGGER_NAME_ARG] # type: ignore
173175
getLogger(logger_name).addHandler(handler)
174176

177+
# Setup EventLoggerProvider
178+
event_provider = EventLoggerProvider(logger_provider)
179+
set_event_logger_provider(event_provider)
180+
175181

176182
def _setup_metrics(configurations: Dict[str, ConfigurationValue]):
177183
resource: Resource = configurations[RESOURCE_ARG] # type: ignore

sdk/monitor/azure-monitor-opentelemetry/dev_requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ pytest
33
django
44
fastapi-slim
55
flask
6-
psycopg2-binary; python_version >= '3.9'
6+
psycopg2-binary
77
requests
88
urllib3

sdk/monitor/azure-monitor-opentelemetry/tests/instrumentation/test_psycopg2.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
# Licensed under the MIT License. See License in the project root for
44
# license information.
55
# --------------------------------------------------------------------------
6-
import platform
6+
import os
77
import pytest
88
import sys
99
import unittest
1010

1111
# Skip for Python v3.13 until https://github.com/psycopg/psycopg2/pull/1729 is resolved
1212
# Skip for Python v3.8 on windows due to https://github.com/psycopg/psycopg/issues/936
13-
if not (platform.system() == "Windows" and sys.version_info < (3, 9)) and sys.implementation.name != "pypy":
13+
if (os.name != "nt" or sys.version_info > (3, 8)) and sys.implementation.name != "pypy":
1414
from opentelemetry.instrumentation.psycopg2 import (
1515
Psycopg2Instrumentor,
1616
)
@@ -19,7 +19,7 @@
1919
class TestPsycopg2Instrumentation(unittest.TestCase):
2020

2121
@pytest.mark.skipif(
22-
platform.system() == "Windows" and sys.version_info < (3, 9) or sys.implementation.name == "pypy",
22+
(os.name == "nt" and sys.version_info < (3, 9)) or sys.implementation.name == "pypy",
2323
reason="Psycopg2 not supported for pypy, Windows Py3.8",
2424
)
2525
def test_instrument(self):

sdk/monitor/azure-monitor-opentelemetry/tests/test_configure.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,13 @@ def test_setup_tracing(
303303
tp_init_mock.add_span_processor.assert_has_calls([call(custom_sp), call(bsp_init_mock)])
304304
self.assertEqual(azure_core_mock.tracing_implementation, OpenTelemetrySpan)
305305

306+
@patch(
307+
"azure.monitor.opentelemetry._configure.set_event_logger_provider",
308+
)
309+
@patch(
310+
"azure.monitor.opentelemetry._configure.EventLoggerProvider",
311+
autospec=True,
312+
)
306313
@patch(
307314
"azure.monitor.opentelemetry._configure.getLogger",
308315
)
@@ -330,10 +337,14 @@ def test_setup_logging(
330337
blrp_mock,
331338
logging_handler_mock,
332339
get_logger_mock,
340+
elp_mock,
341+
set_elp_mock,
333342
):
334343
lp_init_mock = Mock()
335344
lp_mock.return_value = lp_init_mock
336345
log_exp_init_mock = Mock()
346+
elp_init_mock = Mock()
347+
elp_mock.return_value = elp_init_mock
337348
log_exporter_mock.return_value = log_exp_init_mock
338349
blrp_init_mock = Mock()
339350
blrp_mock.return_value = blrp_init_mock
@@ -359,6 +370,8 @@ def test_setup_logging(
359370
logging_handler_mock.assert_called_once_with(logger_provider=lp_init_mock)
360371
get_logger_mock.assert_called_once_with("test")
361372
logger_mock.addHandler.assert_called_once_with(logging_handler_init_mock)
373+
elp_mock.assert_called_once_with(lp_init_mock)
374+
set_elp_mock.assert_called_once_with(elp_init_mock)
362375

363376
@patch(
364377
"azure.monitor.opentelemetry._configure.PeriodicExportingMetricReader",

0 commit comments

Comments
 (0)