Skip to content

Telemetry

Electric provides telemetry data — such as traces, logs, and metrics — for real-time system monitoring.

Metrics

Metrics are reported in StatsD and Prometheus formats. To configure Electric to expose metric information in those formats use the following environment variables.

VARIABLEDescription
STATSD_HOSTThe address of the StatsD server
PROMETHEUS_PORTThe scrape port for Prometheus

You can get the current status of the service by calling the http://electric-hostname:PROMETHUES_PORT/metrics endpoint.

OpenTelemetry

Metrics, traces and logs are exported using the OpenTelemetry Protocol (OTLP). You can configure the OpenTelemetry Exporter for Electric using the following environment variables.

VARIABLEDescription
OTEL_EXPORTdebug outputs telemetry data to stdout. otlp sends the telemetry data to an OTLP endpoint
OTLP_ENDPOINTThe exporter endpoint url

Electric always adds the following resource attributes to events:

elixir
%{service: %{name: service_name, version: version}, instance: %{id: instance_id}}

Attributes service_name and instance_id can be overridden with ELECTRIC_SERVICE_NAME and ELECTRIC_INSTANCE_ID respectively. By default, instance_id is an uuid.

Electric will also load additional resource attributes from OTEL_RESOURCE_ATTRIBUTES. Learn more about resource attributes in the OpenTelemetry documentation.

Example

You can find an example of a docker compose that runs Electric with an OpenTelemetry Collector agent that sends telemetry data to Honeycomb under packages/sync-service/dev.

Set HNY_DATASET and HNY_API_KEY with your Honeycomb information and start the compose file like:

shell
docker compose -f docker-compose-otel.yml up