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
- Proceed to Prometheus Setup to configure metric storage and querying
- Return to Monitoring Overview