Monitoring
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.
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
$env:RIGHTNOW_EXTERNAL_OTEL = "1"$env:OTEL_METRICS_EXPORTER = "otlp"macOS and Linux
export RIGHTNOW_EXTERNAL_OTEL='1'export OTEL_METRICS_EXPORTER='otlp'Environment reference
| Variable and default | Purpose |
|---|---|
| RIGHTNOW_ | Master switch |
| OTEL_ | otlp, console, or none |
| OTEL_ | Event exporter: otlp, console, or none |
| OTEL_ | http/protobuf or grpc; any other value disables the stream |
| OTEL_ | Base endpoint for the protocol; HTTP appends /v1/logs and /v1/metrics |
| OTEL_ | Signal-specific endpoint used after trimming whitespace and trailing slashes |
| OTEL_ | Signal-specific endpoint used after trimming whitespace and trailing slashes |
| OTEL_ | Collector authentication headers (k=v,k2=v2) |
| OTEL_ | Log headers, merged over the shared list |
| OTEL_ | Metric headers, merged over the shared list |
| OTEL_ | Shared or signal-specific trusted CA bundle |
| OTEL_ | Export timeout |
| OTEL_ | Metric export interval |
| OTEL_ | Log batch interval and alias |
| OTEL_ | delta or cumulative |
| OTEL_ | Include session ID on metrics |
| OTEL_ | Include app version on metrics |
| OTEL_ | Prompt-content gate |
| OTEL_ | Tool-detail content gate |
- The matching
[telemetry]keys areotel_enabled,otel_metrics_exporter,otel_logs_exporter,otel_endpoint,otel_protocol,otel_log_user_prompts, andotel_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_ATTRIBUTESis ignored: the resource is a fixed, audited set.
Attributes
| Group | Included values |
|---|---|
| Build | Service and client versions |
| Entry point | CLI, headless, or agent |
| Terminal | Detected terminal emulator |
| Authenticated identity | User and available organization, team, or deployment IDs, per data point and event |
| Prompt identity | Per-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_urlnot set to the managed settings service (unset by default). - Otherwise it opens after the
/v1/settingsfetch, 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
| Signal | What it covers |
|---|---|
| Sessions and turns | Starts, endings, prompt lengths, outcomes, durations, and model labels |
| Token usage | Input, output, reasoning, and cache-read counts by model |
| Tools | Usage, results, and allow, deny, cancelled, or followup decisions with access kind and permission mode |
| Errors | API errors, error counts by category, and internal error classes without messages |
| Startup | Total startup, phase duration, timeout location, and authentication mode |
| Integrations | MCP connections, skills, plugins, subagents, compaction, authentication, and model switches |
There is no cost metric: join token usage with your own price sheet.
Privacy defaults
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:
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.