docs: add OTEL trace / metrics headers doc and fixes the pushed metrics list - #5942
Merged
akshaydeo merged 5 commits intoAug 10, 2026
Conversation
Contributor
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe OpenTelemetry documentation now covers independent trace control, conditional collector settings, shared and per-signal headers, metrics-only profiles, metrics connection behavior, and additional metrics. ChangesOpenTelemetry documentation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This was referenced Aug 7, 2026
Contributor
Author
Contributor
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/features/observability/otel.mdx`:
- Line 41: Align the documented transport configuration requirements with
transports/config.schema.json: in docs/features/observability/otel.mdx at lines
41-41, state that protocol is required only when tracing or metrics is enabled;
in docs/deployment-guides/config-json/plugins.mdx at lines 132-135, document the
same conditional protocol requirement and mark metrics_endpoint required when
metrics_enabled is true; in docs/deployment-guides/helm/plugins.mdx at lines
263-266, document the conditional requirements for trace_type when tracing is
enabled, shared protocol when tracing or metrics is enabled, and
metrics_endpoint when metrics is enabled.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 59af9222-af74-4bce-89be-a834b8c335b5
📒 Files selected for processing (3)
docs/deployment-guides/config-json/plugins.mdxdocs/deployment-guides/helm/plugins.mdxdocs/features/observability/otel.mdx
roroghost17
force-pushed
the
08-07-chore_update_helm-charts_for_otel_trace___metrics_headers_changes
branch
from
August 7, 2026 09:49
e718291 to
8bf75e3
Compare
roroghost17
force-pushed
the
08-07-docs_add_otel_trace___metrics_headers_doc_and_fixes_the_pushed_metrics_list
branch
from
August 7, 2026 09:49
0a8c411 to
8946b18
Compare
Contributor
Merge activity
|
akshaydeo
changed the base branch from
08-07-chore_update_helm-charts_for_otel_trace___metrics_headers_changes
to
graphite-base/5942
August 10, 2026 15:20
akshaydeo
dismissed
coderabbitai[bot]’s stale review
August 10, 2026 15:20
The base branch was changed.
akshaydeo
deleted the
08-07-docs_add_otel_trace___metrics_headers_doc_and_fixes_the_pushed_metrics_list
branch
August 10, 2026 15:21
akshaydeo
pushed a commit
that referenced
this pull request
Aug 10, 2026
…cs list (#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
akshaydeo
pushed a commit
that referenced
this pull request
Aug 13, 2026
…cs list (#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
akshaydeo
pushed a commit
that referenced
this pull request
Aug 13, 2026
…cs list (#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
akshaydeo
pushed a commit
that referenced
this pull request
Aug 14, 2026
…cs list (#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
akshaydeo
pushed a commit
that referenced
this pull request
Aug 19, 2026
…cs list (#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
akhsaul
pushed a commit
to akhsaul/bifrost
that referenced
this pull request
Aug 27, 2026
…cs list (maximhq#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
occcat
pushed a commit
to occcat/bifrost
that referenced
this pull request
Sep 2, 2026
…cs list (maximhq#5942) ## Summary Documents two new OTel plugin capabilities: per-signal headers (`trace_headers` and `metrics_headers`) and a `traces_enabled` flag that enables a metrics-only mode where `collector_url` is not required. ## Changes - Added `traces_enabled` field documentation — when set to `false`, the trace client is never built and `collector_url`/`trace_type` become optional, enabling metrics-only profiles - Added `trace_headers` and `metrics_headers` fields — these are overlaid on top of the shared `headers` field for their respective endpoints, with per-signal values winning on key collision - Clarified that `headers` is sent to both trace and metrics endpoints, and that `protocol` is shared between both signals - Added a "Per-signal headers" section with a worked example showing `Authorization` shared via `headers` and `X-Databricks-Table` scoped to the metrics endpoint via `metrics_headers` - Added a "Metrics-only mode" section with a full JSON configuration example - Expanded the pushed metrics table to include `bifrost_cache_read_input_tokens_total`, `bifrost_cache_write_input_tokens_total`, `bifrost_cache_write_input_tokens_5m_total`, `bifrost_cache_write_input_tokens_1h_total`, `bifrost_request_retries`, and `mcp.client.operation.duration` - Added a note clarifying that an unreachable metrics endpoint never blocks Bifrost startup - Updated env-var substitution docs to include `trace_headers` and `metrics_headers` - Applied the same changes to both the `config-json` and Helm plugin reference pages ## Type of change - [ ] Bug fix - [ ] Feature - [ ] Refactor - [x] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [ ] UI (React) - [x] Docs ## How to test Review the rendered documentation for the OTel plugin pages: - `docs/features/observability/otel.mdx` - `docs/deployment-guides/config-json/plugins.mdx` - `docs/deployment-guides/helm/plugins.mdx` Verify that: 1. The `traces_enabled: false` example produces a valid metrics-only config with no `collector_url` 2. The per-signal headers example correctly shows `Authorization` on both endpoints and `X-Databricks-Table` only on the metrics endpoint 3. All new metrics in the pushed metrics table are accurately described ## Breaking changes - [ ] Yes - [x] No ## Related issues ## Security considerations `trace_headers` and `metrics_headers` support the `env.` prefix for environment variable substitution, consistent with the existing `headers` field. No new secrets are stored in configuration. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [x] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Documents two new OTel plugin capabilities: per-signal headers (
trace_headersandmetrics_headers) and atraces_enabledflag that enables a metrics-only mode wherecollector_urlis not required.Changes
traces_enabledfield documentation — when set tofalse, the trace client is never built andcollector_url/trace_typebecome optional, enabling metrics-only profilestrace_headersandmetrics_headersfields — these are overlaid on top of the sharedheadersfield for their respective endpoints, with per-signal values winning on key collisionheadersis sent to both trace and metrics endpoints, and thatprotocolis shared between both signalsAuthorizationshared viaheadersandX-Databricks-Tablescoped to the metrics endpoint viametrics_headersbifrost_cache_read_input_tokens_total,bifrost_cache_write_input_tokens_total,bifrost_cache_write_input_tokens_5m_total,bifrost_cache_write_input_tokens_1h_total,bifrost_request_retries, andmcp.client.operation.durationtrace_headersandmetrics_headersconfig-jsonand Helm plugin reference pagesType of change
Affected areas
How to test
Review the rendered documentation for the OTel plugin pages:
docs/features/observability/otel.mdxdocs/deployment-guides/config-json/plugins.mdxdocs/deployment-guides/helm/plugins.mdxVerify that:
traces_enabled: falseexample produces a valid metrics-only config with nocollector_urlAuthorizationon both endpoints andX-Databricks-Tableonly on the metrics endpointBreaking changes
Related issues
Security considerations
trace_headersandmetrics_headerssupport theenv.prefix for environment variable substitution, consistent with the existingheadersfield. No new secrets are stored in configuration.Checklist
docs/contributing/README.mdand followed the guidelines