Step 1: Install the OpenTelemetry SDK
Install the relevant OpenTelemetry packages:Terminal
Step 2: Initialize the instrumentation
Based on the web server you are using, you need to initialize the OpenTelemetry SDK and set up the necessary instrumentation.Gunicorn
Open yourgunicorn.config.py
file and add the following code. This will initialize the OpenTelemetry SDK and set up the necessary
instrumentation.
Notice the HttpHeaderSampler
class. This is a custom, head-based sampler that will only sample spans that are generated
by Checkly by inspecting the trace state. This way you only pay for the egress traffic generated by Checkly and not for
any other traffic.
Note the code in the post_fork
function. This will instrument your Django app with OpenTelemetry.
gunicorn.config.py
uWSGI
When using uWSGI, you can use thepost_fork
hook to instrument your Django app with OpenTelemetry.
Note you will need to install the uwsgidecorators
package.
Terminal
wsgi.py
file.
wsgi.py
Step 3: Start your app with the instrumentation
Toggle on Import Traces and grab your OTel API key in the OTel API keys section of the Traces page in the Checkly app and take a note of the endpoint for the region you want to use.
OTEL_EXPORTER_OTLP_HEADERS
environment variable.
Variable | Description |
---|---|
OTEL_EXPORTER_OTLP_HEADERS | The Authorization HTTP header containing your Checkly OTel API key. |
OTEL_EXPORTER_OTLP_ENDPOINT | The Checkly OTel API endpoint for the region you want to use. |
OTEL_EXPORTER_OTLP_PROTOCOL | The protocol to use for the OTLP exporter. |
OTEL_SERVICE_NAME | The name of your service to identify it among the spans in the web UI. |
Terminal
Terminal