Proxy telemetry reference
The Espresso AI proxy emits OpenTelemetry metrics, and logs over OTLP. When deployed with chart v0.3.0 / proxy-tf v0.4.0 or later, that traffic flows through the in-pod OTEL Collector sidecar and can be mirrored to a customer-owned OTLP backend (see otelCollector for Helm and otel_collector for Terraform).
This page lists what to expect on that customer-side stream so you can build dashboards and alerts against it.
Resource attributes
The following resource attributes are attached to every signal emitted by the proxy:
service.name
proxy
Baked into the proxy image.
deployment.environment
prod
Derived from the ENV env var, which the chart and Terraform module set to PROD.
customer
The customer identifier you supplied during onboarding.
Derived from the CUSTOMER env var, which the chart and Terraform module wire from the customer value.
Standard OpenTelemetry SDK resource attributes (telemetry.sdk.name, telemetry.sdk.language=python, telemetry.sdk.version, process.runtime.*, host attributes) are also present.
Metrics
The proxy emits two custom metrics on top of any standard runtime metrics produced by the OpenTelemetry Python SDK.
proxy_httpx_pool_connections
Observable gauge
{connection}
Snapshot of the httpx connection pool used to talk to Snowflake, sliced by connection state.
pool (logical pool name), state ∈ open, active, idle
proxy_httpx_pool_requests
Observable gauge
{request}
Snapshot of the httpx pool's request queue. Emitted only when the pool exposes its request queue.
pool, state = queued
proxy_endpoint_responses
counter
{response}
Status Code counter for the Proxy service's responses.
status_code
Use these to alert on pool saturation (state=queued rising, or state=active approaching the pool's configured limit).
Logs
The proxy ships Python logging records as OTLP log records. Each log record carries the resource attributes above, the standard severity_text / severity_number and the originating logger name.
How to subscribe
To receive these signals at your own OTLP backend, set the customer exporter on the OTEL Collector sidecar:
Helm — set
otelCollector.customer.endpoint(and optionallycustomer.protocol,customer.signals,customer.authSecret,customer.tls.insecure). See Telemetry collector.
By default the customer exporter mirrors all three signals (metrics, logs); narrow with customer.signals / customer_signals if you only want a subset.
Last updated