Skip to main content

Env var reference

Complete list. See Environment variables for where to set them and how precedence works. The HERMES_OTEL_* table is generated from HermesOtelConfig by scripts/gen_config_docs.py; a test fails if it drifts.

Backend selection​

Generated from hermes_otel/backend_specs.py by scripts/gen_config_docs.py; a test fails if it drifts. The OTEL_* spelling of a vendor's key is the env-var-mode opt-in (why); the vendor's own variable is a fallback value.

VarBackendEffect
OTEL_PHOENIX_ENDPOINTPhoenixSingle-backend mode: Phoenix OTLP traces URL
OTEL_LANGFUSE_ENDPOINTLangfuseSingle-backend mode: Langfuse OTLP traces URL
LANGFUSE_BASE_URLLangfuseLangfuse base URL (alternative to the endpoint)
LANGFUSE_PUBLIC_KEYLangfuseLangfuse public key fallback
LANGFUSE_SECRET_KEYLangfuseLangfuse secret key fallback
OTEL_LANGFUSE_PUBLIC_API_KEYLangfuseLangfuse public key (preferred name)
OTEL_LANGFUSE_SECRET_API_KEYLangfuseLangfuse secret key (preferred name)
OTEL_SIGNOZ_ENDPOINTSigNozSingle-backend mode: SigNoz OTLP URL
OTEL_SIGNOZ_INGESTION_KEYSigNozSigNoz Cloud ingestion key
OTEL_JAEGER_ENDPOINTJaegerSingle-backend mode: Jaeger OTLP URL
OTEL_ZIPKIN_ENDPOINTZipkinSingle-backend mode: Zipkin OTLP URL (zipkin-otel image)
OTEL_GREPTIME_ENDPOINTGreptimeDBSingle-backend mode: GreptimeDB HTTP origin (OTLP under /v1/otlp)
OTEL_GREPTIME_DBGreptimeDBGreptimeDB database for all three signals (X-Greptime-DB-Name; default public)
OTEL_GREPTIME_USERGreptimeDBGreptimeDB user for Basic auth (only with a user provider)
OTEL_GREPTIME_PASSWORDGreptimeDBGreptimeDB password for Basic auth
OTEL_CLICKSTACK_ENDPOINTClickStackSingle-backend mode: ClickStack Collector OTLP/HTTP base
OTEL_CLICKSTACK_API_KEYClickStackClickStack ingestion API key (bare authorization header; preferred name)
HYPERDX_API_KEYClickStackClickStack / HyperDX ingestion API key fallback (the vendor SDK variable)
OTEL_VICTORIA_ENDPOINTVictoriaSingle-backend mode: VictoriaTraces origin (OTLP at /insert/opentelemetry/v1/traces)
OTEL_VICTORIA_METRICS_ENDPOINTVictoriaVictoriaMetrics origin (OTLP at /opentelemetry/v1/metrics); metrics off without it
OTEL_VICTORIA_LOGS_ENDPOINTVictoriaVictoriaLogs origin (OTLP at /insert/opentelemetry/v1/logs); logs off without it
OTEL_VICTORIA_USERVictoriaBasic auth user for the Victoria stores (only with -httpAuth.*)
OTEL_VICTORIA_PASSWORDVictoriaBasic auth password for the Victoria stores
OTEL_ASPIRE_ENDPOINTAspire DashboardSingle-backend mode: Aspire Dashboard OTLP/HTTP base
OTEL_ASPIRE_API_KEYAspire DashboardAspire Dashboard OTLP API key (x-otlp-api-key); only in ApiKey auth mode
OTEL_GIGAPIPE_ENDPOINTGigapipeSingle-backend mode: Gigapipe (qryn) OTLP/HTTP base
OTEL_GIGAPIPE_USERGigapipeBasic auth user for Gigapipe (only with GIGAPIPE_LOGIN/PASSWORD)
OTEL_GIGAPIPE_PASSWORDGigapipeBasic auth password for Gigapipe
OTEL_AGENTA_ENDPOINTAgentaAgenta origin for a self-hosted stack (cloud by default)
OTEL_AGENTA_API_KEYAgentaAgenta project API key (Authorization: ApiKey; preferred name)
AGENTA_API_KEYAgentaAgenta project API key fallback (the SDK variable)
AGENTA_HOSTAgentaAgenta origin fallback (the SDK variable)
OTEL_TEMPO_ENDPOINTTempoSingle-backend mode: Tempo / LGTM OTLP URL
OTEL_UPTRACE_ENDPOINTUptraceSingle-backend mode: Uptrace OTLP URL
OTEL_UPTRACE_DSNUptraceUptrace DSN (preferred name)
UPTRACE_DSNUptraceUptrace DSN fallback
UPTRACE_USER_TOKENUptraceUptrace user token fallback for the dashboard's query API
OTEL_OPENOBSERVE_ENDPOINTOpenObserveSingle-backend mode: OpenObserve OTLP URL
OTEL_OPENOBSERVE_STREAMOpenObserveOpenObserve stream name (default default)
OTEL_OPENOBSERVE_ORGOpenObserveOpenObserve org that completes an endpoint given as a bare origin (default default)
OTEL_OPENOBSERVE_USEROpenObserveOpenObserve user (preferred name)
OTEL_OPENOBSERVE_PASSWORDOpenObserveOpenObserve password (preferred name)
OPENOBSERVE_USEROpenObserveOpenObserve user fallback
OPENOBSERVE_PASSWORDOpenObserveOpenObserve password fallback
OTEL_PARSEABLE_ENDPOINTParseableSingle-backend mode: Parseable OTLP URL
OTEL_PARSEABLE_API_KEYParseableParseable API key (preferred name)
PARSEABLE_API_KEYParseableParseable API key fallback
PARSEABLE_TRACES_DATASETParseableParseable dataset for traces (default hermes-traces)
PARSEABLE_METRICS_DATASETParseableParseable dataset for metrics (default hermes-metrics)
PARSEABLE_LOGS_DATASETParseableParseable dataset for logs (default hermes-logs)
OTEL_HONEYCOMB_ENDPOINTHoneycombSingle-backend mode: Honeycomb OTLP URL
OTEL_HONEYCOMB_API_KEYHoneycombHoneycomb API key (preferred name)
HONEYCOMB_API_KEYHoneycombHoneycomb API key fallback
OTEL_ELASTIC_ENDPOINTElasticSingle-backend mode: Elastic OTLP URL (mOTLP or EDOT Collector)
OTEL_ELASTIC_API_KEYElasticElastic API key (preferred name; needs the endpoint too)
ELASTIC_API_KEYElasticElastic API key fallback
OTEL_OPENLIT_ENDPOINTOpenLITSingle-backend mode: OpenLIT OTLP/HTTP URL
OTEL_OPENLIT_API_KEYOpenLITOpenLIT API key (preferred name; needs the endpoint too)
OPENLIT_API_KEYOpenLITOpenLIT API key fallback
OTEL_MLFLOW_ENDPOINTMLflowSingle-backend mode: MLflow tracking server URL
OTEL_MLFLOW_EXPERIMENT_IDMLflowMLflow experiment id for the x-mlflow-experiment-id header (preferred name)
MLFLOW_EXPERIMENT_IDMLflowMLflow experiment id fallback
OTEL_MLFLOW_API_KEYMLflowMLflow tracking token (preferred name; needs the endpoint too)
MLFLOW_TRACKING_TOKENMLflowMLflow tracking token fallback
OTEL_OPIK_ENDPOINTComet OpikSingle-backend mode: Opik base URL (default: Comet cloud)
OTEL_OPIK_API_KEYComet OpikOpik API key (preferred name; enables Opik in env-var mode)
OPIK_API_KEYComet OpikOpik API key fallback
OPIK_URL_OVERRIDEComet OpikOpik SDK base URL fallback (…/api form accepted)
OPIK_WORKSPACEComet OpikOpik workspace for the Comet-Workspace header (cloud)
OPIK_PROJECT_NAMEComet OpikOpik project for the projectName header
OTEL_LAMINAR_ENDPOINTLaminarSingle-backend mode: Laminar app-server URL (default: Laminar cloud)
OTEL_LAMINAR_API_KEYLaminarLaminar project API key (preferred name; enables Laminar in env-var mode)
LMNR_PROJECT_API_KEYLaminarLaminar project API key fallback
LMNR_BASE_URLLaminarLaminar SDK base URL fallback
OTEL_LANGWATCH_ENDPOINTLangWatchSingle-backend mode: LangWatch base URL (default: LangWatch cloud)
OTEL_LANGWATCH_API_KEYLangWatchLangWatch project API key (preferred name; enables LangWatch in env-var mode)
LANGWATCH_API_KEYLangWatchLangWatch API key fallback
LANGWATCH_ENDPOINTLangWatchLangWatch SDK base URL fallback
LANGWATCH_PROJECT_IDLangWatchLangWatch project id for the X-Project-Id header (service keys)
OTEL_LATITUDE_ENDPOINTLatitudeSingle-backend mode: Latitude ingest URL (default: Latitude cloud)
OTEL_LATITUDE_API_KEYLatitudeLatitude API key (preferred name; enables Latitude in env-var mode)
LATITUDE_API_KEYLatitudeLatitude API key fallback
LATITUDE_PROJECTLatitudeLatitude project slug for the mandatory X-Latitude-Project header
LATITUDE_INGEST_URLLatitudeLatitude ingest URL fallback
OTEL_WEAVE_ENDPOINTW&B WeaveSingle-backend mode: W&B Weave OTLP URL
WANDB_OTLP_ENDPOINTW&B WeaveWeave OTLP URL fallback
OTEL_WEAVE_BASE_URLW&B WeaveWeave base URL
WANDB_BASE_URLW&B WeaveWeave base URL fallback
OTEL_WEAVE_API_KEYW&B WeaveWeave API key (preferred name)
WANDB_API_KEYW&B WeaveWeave API key fallback
WANDB_ENTITYW&B WeaveWeave entity
WANDB_PROJECTW&B WeaveWeave project
DEFAULT_WANDB_ENTITYW&B WeaveWeave entity fallback
DEFAULT_WANDB_PROJECTW&B WeaveWeave project fallback
OTEL_LANGSMITH_API_KEYLangSmithLangSmith API key (preferred name; the env opt-in)
OTEL_LANGSMITH_ENDPOINTLangSmithLangSmith endpoint override (default https://api.smith.langchain.com/otel/v1/traces; region: eu picks the EU host)
OTEL_LANGSMITH_PROJECTLangSmithLangSmith project (the Langsmith-Project header)
LANGSMITH_API_KEYLangSmithLangSmith API key fallback
LANGSMITH_ENDPOINTLangSmithLangSmith API base fallback (/otel/v1/traces is appended)
LANGSMITH_PROJECTLangSmithLangSmith project fallback

HERMES_OTEL_* overrides​

Every scalar or list field of the config file can be overridden by HERMES_OTEL_<FIELD> (upper-case field name). A list field takes a comma-separated value (HERMES_OTEL_DISABLE_SPANS=tool,approval); whitespace around each entry is stripped and empty entries are dropped. Maps (headers, global_tags, resource_attributes, common_attributes, log_logger_levels) and backends are yaml-only. An empty variable counts as unset. A value that cannot be parsed as the field's type logs a warning and is ignored.

Env varMaps toTypeDefault
HERMES_OTEL_ENABLEDenabledbooltrue
HERMES_OTEL_SAMPLE_RATEsample_ratefloatnull
HERMES_OTEL_ROOT_SPAN_TTL_MSroot_span_ttl_msint600000
HERMES_OTEL_SUBAGENT_SPAN_TTL_MSsubagent_span_ttl_msint86400000
HERMES_OTEL_FLUSH_INTERVAL_MSflush_interval_msint60000
HERMES_OTEL_PREVIEW_MAX_CHARSpreview_max_charsint1200
HERMES_OTEL_CAPTURE_PREVIEWScapture_previewsbooltrue
HERMES_OTEL_TOOL_INPUT_PREVIEW_MAX_CHARStool_input_preview_max_charsintnull
HERMES_OTEL_TOOL_OUTPUT_PREVIEW_MAX_CHARStool_output_preview_max_charsintnull
HERMES_OTEL_LLM_INPUT_PREVIEW_MAX_CHARSllm_input_preview_max_charsintnull
HERMES_OTEL_LLM_OUTPUT_PREVIEW_MAX_CHARSllm_output_preview_max_charsintnull
HERMES_OTEL_PROJECT_NAMEproject_namestring(unset)
HERMES_OTEL_SERVICE_NAME_FROM_PROFILEservice_name_from_profileboolfalse
HERMES_OTEL_SPAN_BATCH_MAX_QUEUE_SIZEspan_batch_max_queue_sizeint2048
HERMES_OTEL_SPAN_BATCH_SCHEDULE_DELAY_MSspan_batch_schedule_delay_msint1000
HERMES_OTEL_SPAN_BATCH_MAX_EXPORT_BATCH_SIZEspan_batch_max_export_batch_sizeintnull
HERMES_OTEL_SPAN_BATCH_EXPORT_TIMEOUT_MSspan_batch_export_timeout_msint30000
HERMES_OTEL_FORCE_FLUSH_ON_SESSION_ENDforce_flush_on_session_endbooltrue
HERMES_OTEL_FORCE_FLUSH_WAIT_MSforce_flush_wait_msint1500
HERMES_OTEL_CAPTURE_CONVERSATION_HISTORYcapture_conversation_historyboolfalse
HERMES_OTEL_CONVERSATION_HISTORY_MAX_CHARSconversation_history_max_charsint20000
HERMES_OTEL_CONTENT_CAPTUREcontent_capturestring"full"
HERMES_OTEL_CAPTURE_FULL_PROMPTScapture_full_promptsbooltrue
HERMES_OTEL_CAPTURE_FULL_RESPONSEScapture_full_responsesbooltrue
HERMES_OTEL_CAPTURE_SENDER_IDcapture_sender_idboolfalse
HERMES_OTEL_CAPTURE_LOGScapture_logsboolfalse
HERMES_OTEL_LOG_LEVELlog_levelstring"INFO"
HERMES_OTEL_LOG_ATTACH_LOGGERlog_attach_loggerstring(unset)
HERMES_OTEL_LOG_EXCLUDE_LOGGERSlog_exclude_loggerscomma-separated strings[opentelemetry, urllib3, httpx, httpcore, requests, openai, asyncio, hpack, grpc, websockets, charset_normalizer, markdown_it]
HERMES_OTEL_LOG_ONLY_IN_TURNlog_only_in_turnboolfalse
HERMES_OTEL_LOG_MAX_ATTRIBUTE_LENGTHlog_max_attribute_lengthint4096
HERMES_OTEL_LOG_BATCH_SCHEDULE_DELAY_MSlog_batch_schedule_delay_msint1000
HERMES_OTEL_LOG_BATCH_MAX_QUEUE_SIZElog_batch_max_queue_sizeint2048
HERMES_OTEL_LOG_BATCH_MAX_EXPORT_BATCH_SIZElog_batch_max_export_batch_sizeint512
HERMES_OTEL_LOG_BATCH_EXPORT_TIMEOUT_MSlog_batch_export_timeout_msint30000
HERMES_OTEL_LOG_LIVE_MIN_LEVELlog_live_min_levelstring"INFO"
HERMES_OTEL_LOG_EVENTSlog_eventsboolfalse
HERMES_OTEL_LOG_EVENTS_CONTENTlog_events_contentstring"inherit"
HERMES_OTEL_EMIT_GENAI_METRICSemit_genai_metricsbooltrue
HERMES_OTEL_METRICS_TEMPORALITYmetrics_temporalitystring(unset)
HERMES_OTEL_METRICS_HISTOGRAMmetrics_histogramstring"explicit"
HERMES_OTEL_METRICS_LABEL_LIMITmetrics_label_limitint100
HERMES_OTEL_METRIC_NAME_COMPATmetric_name_compatstring"off"
HERMES_OTEL_METRIC_NAME_COMPAT_SESSION_IDmetric_name_compat_session_idboolfalse
HERMES_OTEL_DISABLE_METRICSdisable_metricscomma-separated strings[]
HERMES_OTEL_DISABLE_SPANSdisable_spanscomma-separated strings[]
HERMES_OTEL_SKILL_SPANSskill_spansbooltrue
HERMES_OTEL_REMOTE_PARENTremote_parentbooltrue
HERMES_OTEL_PROBE_BACKENDSprobe_backendsbooltrue
HERMES_OTEL_DISCOVERY_PROMPTdiscovery_promptboolfalse
HERMES_OTEL_DASHBOARD_LIVEdashboard_livebooltrue
HERMES_OTEL_DASHBOARD_LIVE_MAX_SPANSdashboard_live_max_spansint1000
HERMES_OTEL_DASHBOARD_LIVE_RETENTION_HOURSdashboard_live_retention_hoursfloat168.0
HERMES_OTEL_HOST_METRICShost_metricsboolfalse
HERMES_OTEL_HOST_METRICS_GPUhost_metrics_gpustring"auto"
HERMES_OTEL_HOST_METRICS_INTERVAL_MShost_metrics_interval_msint1000
HERMES_OTEL_SUPPRESS_MCP_PING_SPANSsuppress_mcp_ping_spansbooltrue

Join an outer trace​

VarEffect
HERMES_OTEL_TRACEPARENTA W3C traceparent (00-<trace id>-<span id>-<flags>) exported by whatever launched Hermes (a CI job, a script, another agent). Every turn root of the process is parented under that span, so the Hermes run shows up inside the launcher's trace, with hermes.trace.remote_parent=true on the root. A malformed value is reported once and ignored. remote_parent: false turns this off. The kanban worker hand-off uses plain TRACEPARENT and only inside a worker; the two do not interact (#474)
HERMES_OTEL_TRACESTATEA W3C tracestate carried along with the parent above

Paths​

VarEffect
HERMES_OTEL_CONFIGExplicit path to the config file; highest precedence — see Where does the config live?
HERMES_HOMEHermes' home (default ~/.hermes); the plugin resolves hermes_otel.yaml, the live store and the debug log under it. Inside a multiplexed gateway each profile's plugin uses that profile's home instead, via Hermes's own resolver (profiles)
HERMES_OTEL_LIVE_DBPath of the live dashboard's SQLite store (default $HERMES_HOME/hermes_otel_live.db)

OpenTelemetry SDK​

VarEffect
OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_TRACES_HEADERS, OTEL_EXPORTER_OTLP_METRICS_HEADERS, OTEL_EXPORTER_OTLP_LOGS_HEADERSIgnored since 1.30.1 (#472). The SDK adds them to every exporter built without headers, so a token exported for another tool reached every credential-less backend in a multi-backend file. Put headers in the file instead: top-level headers: for all backends, a backend entry's headers: for one
OTEL_SERVICE_NAMENo effect. The plugin sets service.name itself (hermes-agent, or the profile name with service_name_from_profile), and explicit resource attributes win over the SDK's environment detector. To rename the service set resource_attributes: {service.name: my-name} in hermes_otel.yaml, which wins over both; the Settings tab marks the variable as overridden
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCEMetric temporality (cumulative / delta) for a backend when neither its entry, its type preset nor the top-level metrics_temporality sets one; read by the OTLP exporter itself and shown on the Settings tab

Debug​

VarValueEffect
HERMES_OTEL_DEBUGtrue / 1 / yes / onWrites a verbose debug log to $HERMES_HOME/plugins/hermes_otel/debug.log (~/.hermes by default). Any other value leaves it off

Boolean accepted values​

TrueFalse
true / 1 / yes / onfalse / 0 / no / off

Case-insensitive. An empty value counts as unset. Anything else logs a warning naming the variable and is ignored (the yaml value or default is kept).