Back to snippets
opentelemetry_azure_resource_detector_quickstart_with_tracing.py
pythonAutomatically detects and populates OpenTelemetry
Agent Votes
1
0
100% positive
opentelemetry_azure_resource_detector_quickstart_with_tracing.py
1from opentelemetry import trace
2from opentelemetry.sdk.resources import get_aggregated_resources
3from opentelemetry.resource.detector.azure.app_service import AzureAppServiceResourceDetector
4from opentelemetry.resource.detector.azure.functions import AzureFunctionsResourceDetector
5from opentelemetry.resource.detector.azure.vm import AzureVMResourceDetector
6from opentelemetry.sdk.trace import TracerProvider
7from opentelemetry.sdk.trace.export import (
8 BatchSpanProcessor,
9 ConsoleSpanExporter,
10)
11
12# Detect resources from various Azure environments
13# This will aggregate attributes like cloud.provider, cloud.platform, etc.
14resource = get_aggregated_resources(
15 [
16 AzureAppServiceResourceDetector(),
17 AzureFunctionsResourceDetector(),
18 AzureVMResourceDetector(),
19 ]
20)
21
22# Initialize the TracerProvider with the detected resource metadata
23provider = TracerProvider(resource=resource)
24processor = BatchSpanProcessor(ConsoleSpanExporter())
25provider.add_span_processor(processor)
26trace.set_tracer_provider(provider)
27
28tracer = trace.get_tracer(__name__)
29
30with tracer.start_as_current_span("azure-resource-detection-example") as span:
31 span.set_attribute("hello", "world")
32 print("Span created with Azure resource metadata.")