Skip to main content
Version: v2.0.2

OpenTelemetry Collector Setup

Overview

The OpenTelemetry Collector receives metrics from your Aztec node and exports them to Prometheus for storage and analysis.

Prerequisites

  • A running Aztec node with Docker Compose
  • Basic understanding of Docker networking

Setup Steps

Step 1: Create Configuration File

Create an otel-collector-config.yml file in the same directory of your existing docker-compose.yml:

receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
grpc:
endpoint: 0.0.0.0:4317

exporters:
prometheus:
endpoint: "0.0.0.0:8889"
metric_expiration: 5m

processors:
batch:

service:
pipelines:
metrics:
receivers: [otlp]
exporters:
- prometheus

This configuration:

  • Receives metrics via OTLP (OpenTelemetry Protocol) on ports 4317 (gRPC) and 4318 (HTTP)
  • Exports metrics to Prometheus format on port 8889
  • Uses batch processing for efficiency

Step 2: Add OTEL Collector to Docker Compose

Add the following to your existing docker-compose.yml file:

services:
# ... existing services ...
otel-collector:
image: otel/opentelemetry-collector
container_name: aztec-otel
ports:
- 8888:8888 # OTEL collector metrics endpoint
- 8889:8889 # Prometheus exporter endpoint
- 4317:4317 # OTLP gRPC receiver
- 4318:4318 # OTLP HTTP receiver
volumes:
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
command: >-
--config=/etc/otel-collector-config.yaml
networks:
- aztec
restart: always

Step 3: Configure Node to Export Metrics

Update your Aztec node's environment variables to export metrics to the OTEL collector.

Step 3a: Add to .env file

Add these variables to your .env file:

OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://otel-collector:4318/v1/metrics

Step 3b: Update docker-compose.yml

Add these environment variables to your node's service in docker-compose.yml:

services:
aztec-node: # or aztec-sequencer, prover-node, etc.
# ... existing configuration ...
environment:
# ... existing environment variables ...
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: ${OTEL_EXPORTER_OTLP_METRICS_ENDPOINT}

Network configuration: As your node and OTEL collector are in the same Docker Compose file and share the aztec network, you can use the service name otel-collector in the endpoint URL (as shown above).

Step 4: Start Services

# Start or restart all services
docker compose up -d

Step 5: Verify Metrics Collection

Check that metrics are being collected:

# View OTEL collector logs
docker compose logs -f otel-collector

# Query Prometheus endpoint
curl http://localhost:8889/metrics

You should see metrics in Prometheus format.

Next Steps