Skip to content

Commit 3c92f60

Browse files
committed
add otlp export option
1 parent 9ab9c7f commit 3c92f60

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

Dockerfile.consumer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update \
77
&& apt-get -y autoremove \
88
&& apt-get -y clean
99

10-
RUN pip3 install --break-system-packages opentelemetry-distro
10+
RUN pip3 install --break-system-packages opentelemetry-distro opentelemetry-exporter-otlp-proto-http
1111
# Above, `--break-system-packages` flag overrides the
1212
# "This environment is externally managed" error that calling pip
1313
# would otherwise incur here.

Dockerfile.exporter

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update \
77
&& apt-get -y autoremove \
88
&& apt-get -y clean
99

10-
RUN pip3 install --break-system-packages opentelemetry-distro
10+
RUN pip3 install --break-system-packages opentelemetry-distro opentelemetry-exporter-otlp-proto-http
1111
# Above, `--break-system-packages` flag overrides the
1212
# "This environment is externally managed" error that calling pip
1313
# would otherwise incur here.

Dockerfile.redoer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update \
77
&& apt-get -y autoremove \
88
&& apt-get -y clean
99

10-
RUN pip3 install --break-system-packages opentelemetry-distro
10+
RUN pip3 install --break-system-packages opentelemetry-distro opentelemetry-exporter-otlp-proto-http
1111
# Above, `--break-system-packages` flag overrides the
1212
# "This environment is externally managed" error that calling pip
1313
# would otherwise incur here.

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ _Environment variables (see docker-compose.yaml):_
204204
`add_record` to complete before bailing and moving on.
205205
- `RUNTIME_ENV` -- the runtime enviroment (e.g., "Dev", "Prod", etc.). Optional;
206206
defaults to "unknown".
207+
- `OTEL_USE_OTLP_EXPORTER` -- 'true' or 'false' (default is false)
208+
- `OTEL_EXPORTER_OTLP_ENDPOINT`
207209

208210
_Mounts in docker-compose.yaml:_
209211

@@ -247,6 +249,8 @@ _Environment variables:_
247249
attemping the next Senzing op.
248250
- `RUNTIME_ENV` -- the runtime enviroment (e.g., "Dev", "Prod", etc.). Optional;
249251
defaults to "unknown".
252+
- `OTEL_USE_OTLP_EXPORTER` -- 'true' or 'false' (default is false)
253+
- `OTEL_EXPORTER_OTLP_ENDPOINT`
250254

251255
### Exporter
252256

@@ -267,6 +271,8 @@ docker compose run --env AWS_PROFILE=localstack --env S3_BUCKET_NAME=sqs-senzing
267271
- `LOG_LEVEL` -- optional; defaults to `INFO`.
268272
- `RUNTIME_ENV` -- the runtime enviroment (e.g., "Dev", "Prod", etc.). Optional;
269273
defaults to "unknown".
274+
- `OTEL_USE_OTLP_EXPORTER` -- 'true' or 'false' (default is false)
275+
- `OTEL_EXPORTER_OTLP_ENDPOINT`
270276

271277
_Mounts in docker-compose.yaml:_
272278

middleware/otel.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,25 @@
33
# https://opentelemetry.io/docs/languages/python/exporters/#console
44
# https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/
55

6+
import os
7+
68
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
79
from opentelemetry import metrics
810
from opentelemetry.sdk.metrics import MeterProvider
911
from opentelemetry.sdk.metrics.export import (
1012
ConsoleMetricExporter,
1113
PeriodicExportingMetricReader)
14+
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
15+
16+
INTERVAL_MS = 5000
1217

1318
def init(service_name):
1419
'''Perform general OTel setup and return meter obj.'''
1520
resource = Resource.create(attributes={SERVICE_NAME: service_name})
16-
metric_reader = PeriodicExportingMetricReader(ConsoleMetricExporter(), export_interval_millis=5000)
21+
if os.getenv('OTEL_USE_OTLP_EXPORTER', 'false').lower() == 'true':
22+
metric_reader = PeriodicExportingMetricReader(OTLPMetricExporter(), export_interval_millis=INTERVAL_MS)
23+
else:
24+
metric_reader = PeriodicExportingMetricReader(ConsoleMetricExporter(), export_interval_millis=INTERVAL_MS)
1725
meter_provider = MeterProvider(resource=resource,
1826
metric_readers=[metric_reader])
1927

0 commit comments

Comments
 (0)