The Candela Sidecar is a lightweight Go proxy (< 5MB) built for production container environments. It provides LLM request proxying, OpenTelemetry tracing, and cost calculation with minimal overhead. Budget enforcement is optionally available.
Zero-config GCP auth via Application Default Credentials (ADC)
W3C Trace Context propagation — traceparent/tracestate headers
Async span export via Google Cloud Pub/Sub or OTLP
Cost calculation with the shared costcalc engine
Budget enforcement (optional) — enable for per-user spending limits, or omit for observability-only mode
Single static binary — < 5MB, no runtime dependencies
Route
Provider
Auth
/proxy/google/*
Google Gemini (native format)
ADC
/proxy/openai/*
OpenAI API
API key in config
/proxy/anthropic/*
Anthropic (via Vertex AI)
ADC
/proxy/anthropic-vertex/*
Anthropic (native Vertex AI, for Claude Code)
ADC
/proxy/anthropic-direct/*
Anthropic (direct to api.anthropic.com)
Client API key
/proxy/gemini-oai/*
Google Gemini (OpenAI-compatible format)
ADC
Environment variables:
Variable
Required
Description
GCP_PROJECT
✅
GCP project for Vertex AI and Pub/Sub
GCP_REGION
Vertex AI region (default: us-central1)
PUBSUB_TOPIC
Pub/Sub topic for span export
OTLP_ENDPOINT
OTLP HTTP endpoint for span export
PORT
Listen port (default: 8080)
BUDGET_DB
Budget store connection string (omit to disable budget enforcement)
docker run -p 8080:8080 \
-e GCP_PROJECT=my-project \
-e PUBSUB_TOPIC=candela-spans \
ghcr.io/candelahq/candela-sidecar:latest
value : " http://localhost:8080/proxy/google "
image : ghcr.io/candelahq/candela-sidecar:latest
apiVersion : serving.knative.dev/v1
- image : ghcr.io/candelahq/candela-sidecar:latest
candela-sidecar
candela-server
Best for
Containers, CI, production
Local dev with UI
Size
< 5MB binary
Full server
Storage
Pub/Sub + OTLP export
DuckDB, SQLite, BigQuery
Budget enforcement
Optional
Yes
UI
None
Dashboard at :3000
Default port
:8080
:8181
curl http://localhost:8080/healthz