Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions sdk/monitor/azure-monitor-opentelemetry/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

### Features Added

- Enable live metrics by default
([#44902](https://github.com/Azure/azure-sdk-for-python/pull/44902))

### Breaking Changes

### Bugs Fixed
Expand Down
2 changes: 1 addition & 1 deletion sdk/monitor/azure-monitor-opentelemetry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ You can use `configure_azure_monitor` to set up instrumentation for your app to
| Parameter | Description | Environment Variable |
|-------------------|----------------------------------------------------|----------------------|
| `connection_string` | The [connection string][connection_string_doc] for your Application Insights resource. The connection string will be automatically populated from the `APPLICATIONINSIGHTS_CONNECTION_STRING` environment variable if not explicitly passed in. | `APPLICATIONINSIGHTS_CONNECTION_STRING` |
| `enable_live_metrics` | Enable [live metrics][application_insights_live_metrics] feature. Defaults to `False`. | `N/A` |
| `enable_live_metrics` | Enable [live metrics][application_insights_live_metrics] feature. Defaults to `True`. | `N/A` |
| `enable_performance_counters` | Enable [performance counters][application_insights_performance_counters]. Defaults to `True`. | `N/A` |
| `logging_formatter` | A Python logging [formatter][python_logging_formatter] that will be used to format collected logs. | `PYTHON_APPLICATIONINSIGHTS_LOGGING_FORMAT` - accepts a STRING field used for formatting, not a [formatter][python_logging_formatter] |
| `logger_name` | The name of the [Python logger][python_logger] under which telemetry is collected. Setting this value is imperative so logs created from the SDK itself are not tracked. | `PYTHON_APPLICATIONINSIGHTS_LOGGER_NAME` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def configure_azure_monitor(**kwargs) -> None: # pylint: disable=C4758
:keyword list[~opentelemetry.sdk.metrics.MetricReader] metric_readers: List of MetricReader objects to read and
export metrics. Each reader can have its own exporter and collection interval.
:keyword bool enable_live_metrics: Boolean value to determine whether to enable live metrics feature.
Defaults to `False`.
Defaults to `True`.
:keyword bool enable_performance_counters: Boolean value to determine whether to enable performance counters.
Defaults to `True`.
:keyword str storage_directory: Storage directory in which to store retry files. Defaults to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ def _default_metric_readers(configurations):


def _default_enable_live_metrics(configurations):
configurations.setdefault(ENABLE_LIVE_METRICS_ARG, False)
configurations.setdefault(ENABLE_LIVE_METRICS_ARG, True)


def _default_enable_performance_counters(configurations):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
# --------------------------------------------------------------------------

"""
This example shows how configure live metrics to be enabled. It sets up a minimal example of sending dependency,
This example sets up a minimal example of sending dependency through live metrics,
trace and exception telemetry to demonstrate the capabilities and collection set of live metrics.
Live metrics is enabled by default, it can be disabled by setting `enable_live_metrics` to `False`
"""
import logging
import requests # type: ignore[import-untyped]
import time

from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace

from opentelemetry.sdk.resources import Resource

configure_azure_monitor(
Expand All @@ -25,7 +25,7 @@
}
),
logger_name=__name__,
enable_live_metrics=True, # Enable live metrics configuration
# enable_live_metrics=False, # To disable live metrics configuration
)

tracer = trace.get_tracer(__name__)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def test_configure_azure_monitor(
tracing_mock.assert_called_once()
logging_mock.assert_called_once()
metrics_mock.assert_called_once()
live_metrics_mock.assert_not_called()
live_metrics_mock.assert_called_once()
instrumentation_mock.assert_called_once()
detect_attach_mock.assert_called_once()

Expand Down Expand Up @@ -109,7 +109,7 @@ def test_configure_azure_monitor_disable_tracing(
"django": {"enabled": False},
"requests": {"enabled": False},
},
"enable_live_metrics": False,
"enable_live_metrics": True,
"enable_performance_counters": True,
"resource": TEST_RESOURCE,
}
Expand All @@ -123,7 +123,7 @@ def test_configure_azure_monitor_disable_tracing(
tracing_mock.assert_not_called()
logging_mock.assert_called_once_with(configurations)
metrics_mock.assert_called_once_with(configurations)
live_metrics_mock.assert_not_called()
live_metrics_mock.assert_called_once_with(configurations)
instrumentation_mock.assert_called_once_with(configurations)
# Assert setup_metrics is called before setup_logging
self.assertLess(call_order.index("metrics"), call_order.index("logging"))
Expand Down Expand Up @@ -160,7 +160,7 @@ def test_configure_azure_monitor_disable_logging(
"disable_tracing": False,
"disable_logging": True,
"disable_metrics": False,
"enable_live_metrics": False,
"enable_live_metrics": True,
"enable_performance_counters": True,
"resource": TEST_RESOURCE,
}
Expand All @@ -174,7 +174,7 @@ def test_configure_azure_monitor_disable_logging(
tracing_mock.assert_called_once_with(configurations)
logging_mock.assert_not_called()
metrics_mock.assert_called_once_with(configurations)
live_metrics_mock.assert_not_called()
live_metrics_mock.assert_called_once_with(configurations)
instrumentation_mock.assert_called_once_with(configurations)
# Assert setup_metrics is called before setup_tracing
self.assertLess(call_order.index("metrics"), call_order.index("tracing"))
Expand Down Expand Up @@ -211,7 +211,7 @@ def test_configure_azure_monitor_disable_metrics(
"disable_tracing": False,
"disable_logging": False,
"disable_metrics": True,
"enable_live_metrics": False,
"enable_live_metrics": True,
"enable_performance_counters": True,
"resource": TEST_RESOURCE,
}
Expand All @@ -220,7 +220,7 @@ def test_configure_azure_monitor_disable_metrics(
tracing_mock.assert_called_once_with(configurations)
logging_mock.assert_called_once_with(configurations)
metrics_mock.assert_not_called()
live_metrics_mock.assert_not_called()
live_metrics_mock.assert_called_once_with(configurations)
instrumentation_mock.assert_called_once_with(configurations)

@patch(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def test_get_configurations(self, resource_create_mock):
"enabled": False,
}
},
enable_live_metrics=True,
enable_live_metrics=False,
enable_performance_counters=False,
views=["test_view"],
logger_name="test_logger",
Expand Down Expand Up @@ -117,7 +117,7 @@ def test_get_configurations(self, resource_create_mock):
},
)
self.assertEqual(configurations["storage_directory"], "test_directory")
self.assertEqual(configurations["enable_live_metrics"], True)
self.assertEqual(configurations["enable_live_metrics"], False)
self.assertEqual(configurations["enable_performance_counters"], False)
self.assertEqual(configurations["views"], ["test_view"])
self.assertEqual(configurations["logger_name"], "test_logger")
Expand Down Expand Up @@ -154,7 +154,7 @@ def test_get_configurations_defaults(self, resource_create_mock):
self.assertEqual(configurations["sampling_ratio"], 1.0)
self.assertTrue("credential" not in configurations)
self.assertTrue("storage_directory" not in configurations)
self.assertEqual(configurations["enable_live_metrics"], False)
self.assertEqual(configurations["enable_live_metrics"], True)
self.assertEqual(configurations["enable_performance_counters"], True)
self.assertEqual(configurations["logger_name"], "")
self.assertEqual(configurations["span_processors"], [])
Expand Down