This Heroku buildpack installs OpenTelemetry Collector in your Heroku dyno to collect app metrics and traces.
This buildpack assumes that otel collector config file is located at /otelcol/config.yml
in your application.
By default, this buildpack installs OpenTelemetry Collector Core, to install OpenTelemetry Collector Contrib, set OTELCOL_CONTRIB
to true
in your enviroment variables.
In addition, you can include a prerun script, /otelcol/prerun.sh
, in your application.
The prerun script runs after all of the standard configuration actions and immediately before starting OpenTelemetry Collector.
This allows you to modify the environment variables (for example: $DISABLE_OTELCOL), perform additional configurations, etc.
#!/usr/bin/env bash
# Disable based on dyno type
if [ "$DYNOTYPE" == "run" ]; then
DISABLE_OTELCOL="true"
fi
# Update configuration placeholder using the Heroku application environment variable
if [ -n "$RUNTIME_URL" ]; then
sed -i "s/<URL>/$RUNTIME_URL/" "$APP_OTELCOL/config.yml"
fi
Most of the code and inspiration comes from the excellent sendsonar's Prometheus Heroku Buildpack