Skip to content

Monitoring

Release status

RightNow Agent is coming soon for Windows, macOS and Linux. Installation commands and workflows in these guides are reference material until the public release is available.

External OpenTelemetry sends usage metrics and events to your organization's collector, independently of the model provider, product telemetry, trace upload, and coding-data sharing. It is off by default and needs a double opt-in: the master switch and at least one real exporter.

Alpha schema

Additive fields can appear without notice; renames or removals require a schema-version change and a changelog entry. Service and schema identifiers stay stable within schema v1.

Enable exporters

Set both in the shell that starts RightNow, then the collector endpoint and any authentication headers the same way.

Windows

powershell
$env:RIGHTNOW_EXTERNAL_OTEL = "1"
powershell
$env:OTEL_METRICS_EXPORTER = "otlp"

macOS and Linux

text
export RIGHTNOW_EXTERNAL_OTEL='1'
text
export OTEL_METRICS_EXPORTER='otlp'

Environment reference

Variable and defaultPurpose
RIGHTNOW_EXTERNAL_OTELDefault: 0Master switch
OTEL_METRICS_EXPORTERDefault: noneotlp, console, or none
OTEL_LOGS_EXPORTERDefault: noneEvent exporter: otlp, console, or none
OTEL_EXPORTER_OTLP_PROTOCOLDefault: http/protobufhttp/protobuf or grpc; any other value disables the stream
OTEL_EXPORTER_OTLP_ENDPOINTDefault: http://localhost:4318 or http://localhost:4317Base endpoint for the protocol; HTTP appends /v1/logs and /v1/metrics
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTDefault: unsetSignal-specific endpoint used after trimming whitespace and trailing slashes
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTDefault: unsetSignal-specific endpoint used after trimming whitespace and trailing slashes
OTEL_EXPORTER_OTLP_HEADERSDefault: unsetCollector authentication headers (k=v,k2=v2)
OTEL_EXPORTER_OTLP_LOGS_HEADERSDefault: unsetLog headers, merged over the shared list
OTEL_EXPORTER_OTLP_METRICS_HEADERSDefault: unsetMetric headers, merged over the shared list
OTEL_EXPORTER_OTLP_CERTIFICATE / OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE / OTEL_EXPORTER_OTLP_METRICS_CERTIFICATEDefault: unsetShared or signal-specific trusted CA bundle
OTEL_EXPORTER_OTLP_TIMEOUTDefault: 10000 msExport timeout
OTEL_METRIC_EXPORT_INTERVALDefault: 60000 msMetric export interval
OTEL_BLRP_SCHEDULE_DELAY / OTEL_LOGS_EXPORT_INTERVALDefault: 5000 msLog batch interval and alias
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCEDefault: deltadelta or cumulative
OTEL_METRICS_INCLUDE_SESSION_IDDefault: 1Include session ID on metrics
OTEL_METRICS_INCLUDE_VERSIONDefault: 0Include app version on metrics
OTEL_LOG_USER_PROMPTSDefault: 0Prompt-content gate
OTEL_LOG_TOOL_DETAILSDefault: 0Tool-detail content gate
  • The matching [telemetry] keys are otel_enabled, otel_metrics_exporter, otel_logs_exporter, otel_endpoint, otel_protocol, otel_log_user_prompts, and otel_log_tool_details.
  • Requirements can pin the master switch and content gates; otherwise environment values override the config file.
  • Collector headers have no config-file key, so tokens stay off disk.
  • OTEL_RESOURCE_ATTRIBUTES is ignored: the resource is a fixed, audited set.

Attributes

GroupIncluded values
BuildService and client versions
Entry pointCLI, headless, or agent
TerminalDetected terminal emulator
Authenticated identityUser and available organization, team, or deployment IDs, per data point and event
Prompt identityPer-prompt ID on events only, never metrics

Startup

  • The stream stays closed until any fleet policy is known. It opens at once when none can arrive: [features] remote_fetch = false (shipped), or [endpoints] cli_chat_proxy_base_url not set to the managed settings service (unset by default).
  • Otherwise it opens after the /v1/settings fetch, within 30 seconds. A policy can only tighten the local result: disable the stream or lock the content gates off.
  • A deprecated setup in which product analytics already consumed shared OTEL variables suppresses this external stream; debug logging records the reason.

Signals

SignalWhat it covers
Sessions and turnsStarts, endings, prompt lengths, outcomes, durations, and model labels
Token usageInput, output, reasoning, and cache-read counts by model
ToolsUsage, results, and allow, deny, cancelled, or followup decisions with access kind and permission mode
ErrorsAPI errors, error counts by category, and internal error classes without messages
StartupTotal startup, phase duration, timeout location, and authentication mode
IntegrationsMCP connections, skills, plugins, subagents, compaction, authentication, and model switches

There is no cost metric: join token usage with your own price sheet.

Privacy defaults

Content gates are off by default

Prompt text, code, full file paths, tool arguments, and identifying integration names are excluded by default. Bash command text is never exported, including when tool-detail logging is enabled.

The exporter also applies a closed attribute schema, secret and home-directory scrubbing, length caps, and export-time validation; records that fail are dropped.

Debugging

Start RightNow with debug logging and inspect entries for the external exporter's resolved or suppressed state:

text
rightnow --debug
  • Per-session logs go to <RIGHTNOW_HOME>/debug/; --debug-file <FILE> writes one file instead. Export errors never appear in the TUI.
  • Console exporters write redacted records to stderr, except in agent and headless entry points where console output is suppressed.
  • If nothing arrives, confirm both opt-ins, the protocol-specific endpoint, collector trust, and authentication header, then see Troubleshooting and the configuration reference.