Skip to content

Commit 762bf57

Browse files
committed
Configure OTEL instrumentation for Jaeger
1 parent 35927ef commit 762bf57

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

cohd/app.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import logging.config
22

3-
from flask import Flask, request, redirect
3+
from flask import Flask
44
from flask_cors import CORS
55
from flask_caching import Cache
66

7+
from opentelemetry.instrumentation.flask import FlaskInstrumentor
8+
from opentelemetry import trace
9+
from opentelemetry.sdk.resources import SERVICE_NAME as telemetery_service_name_key, Resource
10+
from opentelemetry.sdk.trace import TracerProvider
11+
from opentelemetry.sdk.trace.export import BatchSpanProcessor
12+
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
13+
714
from .google_analytics import GoogleAnalytics
815

916
#########
@@ -40,3 +47,31 @@
4047
'handlers': ['wsgi', 'file']
4148
}
4249
})
50+
51+
logging.info('About to instrument app for OTEL')
52+
# set the service name for our trace provider
53+
# this will tag every trace with the service name given
54+
tp = TracerProvider(
55+
resource=Resource.create({telemetery_service_name_key: 'COHD'})
56+
)
57+
# create an exporter to jaeger
58+
jaeger_host = 'localhost'
59+
deployment_env = app.config.get('DEPLOYMENT_ENV', 'dev')
60+
if deployment_env[:4] == 'ITRB':
61+
jaeger_host = 'jaeger-otel-agent.sri'
62+
# jaeger_exporter = OTLPSpanExporter(endpoint=jaeger_host)
63+
jaeger_exporter = JaegerExporter(
64+
agent_host_name=jaeger_host,
65+
agent_port=6831,
66+
)
67+
# here we use the exporter to export each span in a trace
68+
tp.add_span_processor(
69+
BatchSpanProcessor(jaeger_exporter)
70+
)
71+
trace.set_tracer_provider(
72+
tp
73+
)
74+
otel_excluded_urls = 'health,api/health'
75+
tracer = trace.get_tracer(__name__)
76+
FlaskInstrumentor().instrument_app(app)
77+
logging.info('Finished instrumenting app for OTEL')

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ apscheduler
1111
bmt
1212
reasoner-validator>=3.8
1313
linkml-runtime<1.6.0
14+
opentelemetry-sdk
15+
opentelemetry-instrumentation-flask
16+
opentelemetry-exporter-jaeger

0 commit comments

Comments
 (0)