|
24 | 24 |
|
25 | 25 | # Initialize custom OTEL metrics export pipeline - OTLP approach (OTEL/Span export 1) Agent based |
26 | 26 | custom_resource = Resource.create({ |
27 | | - "service.name": os.getenv("OTEL_SERVICE_NAME", "python-sample-application"), |
28 | | - "deployment.environment.name": os.getenv("DEPLOYMENT_ENV", "test"), |
| 27 | + "service.name": "OTEL_SERVICE_NAME", |
| 28 | + "deployment.environment.name": "custom_export", |
29 | 29 | #"test" being overridden by python-sample-application-${var.test_id} in main.tf |
30 | 30 | }) |
31 | 31 | custom_otlp_exporter = OTLPMetricExporter( |
|
46 | 46 |
|
47 | 47 | # Custom Export Pipeline - HTTP Direct |
48 | 48 | resource = Resource.create({ |
49 | | - "service.name": os.getenv("OTEL_SERVICE_NAME", "python-sample-application"), |
50 | | - "deployment.environment.name": os.getenv("DEPLOYMENT_ENV", "test") |
51 | | - })#"test" being overridden by python-sample-application-${var.test_id} in main.tf |
| 49 | + "service.name": "OTEL_SERVICE_NAME", |
| 50 | + "deployment.environment.name": "agent_export", |
| 51 | + }) |
52 | 52 |
|
53 | | -# OtlpHttpMetricExporter.builder().setEndpoint().build() |
| 53 | +# Python version of 'OtlpHttpMetricExporter.builder().setEndpoint().build()' |
54 | 54 | metricExporter = HTTPMetricExporter( |
55 | 55 | endpoint="http://localhost:4318/v1/metrics" |
56 | 56 | ) |
57 | 57 |
|
58 | | -# PeriodicMetricReader.builder(metricExporter).setInterval(Duration.ofSeconds(10)).build() |
| 58 | +# 'Python version of 'PeriodicMetricReader.builder(metricExporter).setInterval(Duration.ofSeconds(10)).build()' |
59 | 59 | metricReader = PeriodicExportingMetricReader( |
60 | 60 | exporter=metricExporter, |
61 | 61 | export_interval_millis=5000 |
62 | 62 | ) |
63 | 63 |
|
64 | | -# SdkMeterProvider.builder().setResource(resource).registerMetricReader(metricReader).build() |
| 64 | +# Python version of 'SdkMeterProvider.builder().setResource(resource).registerMetricReader(metricReader).build()' |
65 | 65 | meterProvider = MeterProvider( |
66 | 66 | resource=resource, |
67 | 67 | metric_readers=[metricReader] |
68 | 68 | ) |
69 | 69 |
|
70 | | -# meterProvider.get("myMeter") |
71 | | -meter = meterProvider.get_meter("myMeter") |
72 | | - |
73 | | - |
74 | 70 | # Create meter provider with both exporters |
75 | 71 | custom_meter_provider = MeterProvider( |
76 | 72 | resource=custom_resource, |
77 | 73 | metric_readers=[custom_otlp_reader, custom_console_reader] |
78 | 74 | ) |
79 | 75 |
|
80 | | -# Initialize span metrics using custom meter provider |
| 76 | +# Initialize counters/meters using custom meter provider. Python version of 'meterProvider.get("myMeter")' |
81 | 77 | custom_meter = custom_meter_provider.get_meter("custom-metrics") |
82 | | -custom_request_counter = custom_meter.create_counter("cloud_watch_counter", description="Total requests") |
83 | | -http_counter = meter.create_counter("http_counter", description="Total requests") |
| 78 | +meter = meterProvider.get_meter("myMeter") |
| 79 | +custom_export_counter = custom_meter.create_counter("custom_export_counter", description="Total requests") |
| 80 | +agent_export_counter = meter.create_counter("agent_export_counter", description="Total requests") |
84 | 81 |
|
85 | 82 | should_send_local_root_client_call = False |
86 | 83 | lock = threading.Lock() |
@@ -117,8 +114,8 @@ def healthcheck(request): |
117 | 114 |
|
118 | 115 | def aws_sdk_call(request): |
119 | 116 | # Setup Span Attributes And Initialize Counter/Histogram To Recieve Custom Metrics |
120 | | - custom_request_counter.add(1, {"operation.type": "aws_sdk_call"}) # Agent-based export |
121 | | - http_counter.add(1, {"operation.type": "aws_sdk_call"}) # Custom export pipeline |
| 117 | + custom_export_counter.add(1, {"operation.type": "custom_export_1"}) # Agent-based export |
| 118 | + agent_export_counter.add(1, {"operation.type": "agent_export_1"}) # Custom export pipeline |
122 | 119 |
|
123 | 120 | bucket_name = "e2e-test-bucket-name" |
124 | 121 |
|
|
0 commit comments