clari / heroku-buildpack-otelcol

Heroku Buildpack that bootstraps a otel-collector in your dyno

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Heroku Buildpack that bootstraps a otel-collector in your dyno

License:MIT License


Languages

Language:Shell 100.0%