Skip to content

Commit 848f1c2

Browse files
authored
Exporter Release 1.0.0b43: Add CONSUMER to perf counters (#43261)
* Add CONSUMER to perf counters and release * changelog * update date
1 parent 7b49744 commit 848f1c2

File tree

3 files changed

+34
-8
lines changed

3 files changed

+34
-8
lines changed

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release History
22

3-
## 1.0.0b43 (Unreleased)
3+
## 1.0.0b43 (2025-10-08)
44

55
### Features Added
66
- OneSettings control plane: Add live metrics feature control
@@ -11,8 +11,8 @@
1111
([#43147](https://github.com/Azure/azure-sdk-for-python/pull/43147))
1212
- Performance Counters
1313
([#43024](https://github.com/Azure/azure-sdk-for-python/pull/43024))
14-
15-
### Breaking Changes
14+
- Performance Counters: Include Consumer spans
15+
([#43261](https://github.com/Azure/azure-sdk-for-python/pull/43261))
1616

1717
### Bugs Fixed
1818
- Fixes issues #42897 - TypeError in _transmit_from_storage: LocalFileBlob.get() returns None
@@ -26,8 +26,6 @@
2626
- Revert #43060
2727
([#43087](https://github.com/Azure/azure-sdk-for-python/pull/43087))
2828

29-
### Other Changes
30-
3129
## 1.0.0b42 (2025-09-17)
3230

3331
### Features Added

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_performance_counters/_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,8 @@ def _record_span(self, span: ReadableSpan) -> None:
616616
global _REQUESTS_COUNT
617617
# pylint: disable=global-statement
618618
global _EXCEPTIONS_COUNT
619-
# Requests only
620-
if span.kind != SpanKind.SERVER:
619+
# Requests and Consumer only
620+
if span.kind not in (SpanKind.SERVER, SpanKind.CONSUMER):
621621
return
622622
_REQUESTS_COUNT += 1
623623
duration_ms = 0

sdk/monitor/azure-monitor-opentelemetry-exporter/tests/performance_counters/test_performance_counters.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,34 @@ def test_manager_singleton_behavior(self):
448448

449449
self.assertIs(manager1, manager2)
450450

451+
@mock.patch("azure.monitor.opentelemetry.exporter._performance_counters._manager.metrics.get_meter_provider")
452+
def test_record_span_consumer(self, mock_get_meter_provider):
453+
"""Test recording span for requests."""
454+
mock_meter_provider = MagicMock()
455+
mock_meter = MagicMock()
456+
mock_meter_provider.get_meter.return_value = mock_meter
457+
mock_get_meter_provider.return_value = mock_meter_provider
458+
459+
manager = _PerformanceCountersManager()
460+
manager._request_duration_histogram = MagicMock()
461+
462+
# Create a mock span
463+
mock_span = MagicMock(spec=ReadableSpan)
464+
mock_span.kind = SpanKind.CONSUMER
465+
mock_span.start_time = 1000000000 # 1 second in nanoseconds
466+
mock_span.end_time = 2000000000 # 2 seconds in nanoseconds
467+
mock_span.events = []
468+
469+
# Import to access global counter
470+
import azure.monitor.opentelemetry.exporter._performance_counters._manager as manager_module
471+
initial_count = manager_module._REQUESTS_COUNT
472+
473+
manager._record_span(mock_span)
474+
475+
# Check that request was counted and duration recorded
476+
self.assertEqual(manager_module._REQUESTS_COUNT, initial_count + 1)
477+
manager._request_duration_histogram.record.assert_called_once_with(1.0) # 1 second duration
478+
451479
@mock.patch("azure.monitor.opentelemetry.exporter._performance_counters._manager.metrics.get_meter_provider")
452480
def test_record_span_request(self, mock_get_meter_provider):
453481
"""Test recording span for requests."""
@@ -506,7 +534,7 @@ def test_record_span_with_exception(self, mock_get_meter_provider):
506534
# Check that exception was counted
507535
self.assertEqual(manager_module._EXCEPTIONS_COUNT, initial_exceptions + 1)
508536

509-
def test_record_span_non_server_kind(self):
537+
def test_record_span_non_server_consumer_kind(self):
510538
"""Test recording span that's not a server/consumer kind."""
511539
manager = _PerformanceCountersManager()
512540

0 commit comments

Comments
 (0)