/heroku-buildpack-otelcol

Heroku Buildpack that bootstraps a otel-collector in your dyno

Primary LanguageShellMIT LicenseMIT

OpenTelemetry Collector Heroku Buildpack

This Heroku buildpack installs OpenTelemetry Collector in your Heroku dyno to collect app metrics and traces.

Configuration

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

Credits

Most of the code and inspiration comes from the excellent sendsonar's Prometheus Heroku Buildpack