-
Notifications
You must be signed in to change notification settings - Fork 0
docs: add distributed tracing section to production deployment guide #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -2,7 +2,7 @@ | |||||
| layout: default | ||||||
| title: "Production Deployment" | ||||||
| parent: "How To" | ||||||
| description: "Deploy ColdBrew Go services to production with Kubernetes manifests, health probes, Prometheus, and graceful shutdown" | ||||||
| description: "Deploy ColdBrew Go services to production with Kubernetes manifests, health probes, Prometheus, distributed tracing, and graceful shutdown" | ||||||
| --- | ||||||
| ## Table of contents | ||||||
| {: .no_toc .text-delta } | ||||||
|
|
@@ -129,6 +129,7 @@ type: Opaque | |||||
| stringData: | ||||||
| NEW_RELIC_LICENSE_KEY: "your-license-key" | ||||||
| SENTRY_DSN: "https://your-dsn@sentry.io/123" | ||||||
| OTLP_HEADERS: "x-honeycomb-team=your-api-key" # if your OTLP backend needs auth | ||||||
| ``` | ||||||
|
|
||||||
| ### Service | ||||||
|
|
@@ -260,6 +261,79 @@ env: | |||||
| value: "0.005,0.01,0.025,0.05,0.1,0.25,0.5,1,2.5,5,10" | ||||||
| ``` | ||||||
|
|
||||||
| ## Distributed tracing | ||||||
|
|
||||||
| ColdBrew sends traces via OpenTelemetry to any OTLP-compatible backend (Jaeger, Grafana Tempo, Honeycomb, Datadog, etc.) or New Relic. | ||||||
|
|
||||||
| ### OTLP backend (Jaeger, Tempo, Honeycomb, etc.) | ||||||
|
|
||||||
| ```yaml | ||||||
| env: | ||||||
| - name: OTLP_ENDPOINT | ||||||
| value: "otel-collector.monitoring:4317" # your OTLP collector | ||||||
| - name: OTLP_SAMPLING_RATIO | ||||||
| value: "0.1" # sample 10% of traces in production | ||||||
| ``` | ||||||
|
|
||||||
| For backends that require authentication headers: | ||||||
|
|
||||||
| ```yaml | ||||||
| env: | ||||||
| - name: OTLP_ENDPOINT | ||||||
| value: "api.honeycomb.io:443" | ||||||
| - name: OTLP_HEADERS | ||||||
| value: "x-honeycomb-team=your-api-key" | ||||||
| - name: OTLP_SAMPLING_RATIO | ||||||
| value: "0.1" | ||||||
| ``` | ||||||
|
|
||||||
| {: .note } | ||||||
| For local development, set `OTLP_INSECURE=true` and point to a local Jaeger instance (`localhost:4317`). See the [config reference](/config-reference#example-local-development-with-jaeger-via-otlp) for a full example. | ||||||
|
|
||||||
| ### New Relic | ||||||
|
|
||||||
| New Relic tracing is configured separately and can run alongside OTLP: | ||||||
|
||||||
| New Relic tracing is configured separately and can run alongside OTLP: | |
| New Relic tracing is configured separately. It can be enabled in the same service as OTLP, but when `OTLP_ENDPOINT` is set it takes precedence over the New Relic OpenTelemetry exporter, so traces are not dual-exported. See the [config reference](/config-reference#distributed-tracing) for details: |
Copilot
AI
Mar 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Recommended ratio” cell uses inline-code to show a range (0.001–0.01). Since OTLP_SAMPLING_RATIO is a single float, readers may copy/paste the range literally and end up with an invalid value. Consider expressing this as plain text (e.g., “0.001 to 0.01”) or splitting into min/max guidance.
| | 70,000+ | `0.001–0.01` | 70–700 | | |
| | 70,000+ | 0.001 to 0.01 | 70–700 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This example includes an API key inline in the manifest (
OTLP_HEADERS: "x-honeycomb-team=your-api-key"). Elsewhere on this page you recommend putting secrets in Kubernetes Secrets; consider showingvalueFrom.secretKeyRefhere (or explicitly noting the header value should come from a Secret) to avoid encouraging in-repo/plaintext configs.