feat: otel-collector pushing curated metrics to Grafana Cloud - #12
Draft
jonathandieu wants to merge 2 commits into
Draft
feat: otel-collector pushing curated metrics to Grafana Cloud#12jonathandieu wants to merge 2 commits into
jonathandieu wants to merge 2 commits into
Conversation
Helm template diffdiff -u --recursive --label base --label head base head
--- base
+++ head
@@ -1239,7 +1239,7 @@
listenLocal: false
enableOTLPReceiver: false
enableAdminAPI: false
- retention: 10d
+ retention: 30d
tsdb:
outOfOrderTimeWindow: 0s
walCompression: true
@@ -1260,15 +1260,6 @@
release: release
probeNamespaceSelector: {}
- remoteWrite:
- - basicAuth:
- password:
- key: password
- name: grafana-cloud-credentials
- username:
- key: username
- name: grafana-cloud-credentials
- url: https://prometheus-prod-66-prod-us-east-3.grafana.net/api/prom/push
securityContext:
fsGroup: 2000
runAsGroup: 2000
@@ -1286,6 +1277,15 @@
release: release
scrapeConfigNamespaceSelector: {}
+ storage:
+ volumeClaimTemplate:
+ spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 20Gi
+ storageClassName: do-block-storage
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
Only in /tmp/head: otel-collector.yaml |
Owner
Author
|
Splitting into separate platform vs. workloads PRs for clearer review — closing in favor of those. |
jonathandieu
force-pushed
the
workload-and-platform-charts
branch
from
July 2, 2026 12:41
bdbaebc to
def8529
Compare
Replaces Prometheus's direct remoteWrite to Grafana Cloud with an in-cluster OTel Collector that scrapes Prometheus federation and exports via OTLP. Avoids exposing Prometheus itself (deferred to Tailscale, see dieubernetes#15) while keeping the same curated allowlist of series for the outage canary.
jonathandieu
force-pushed
the
workload-and-platform-charts
branch
from
July 2, 2026 13:56
def8529 to
f412861
Compare
…LP credentials Values need to sit under opentelemetry-collector: since it's a chart dependency, same pattern as kube-prometheus-stack's own values.yaml. Without it, none of the custom config reached the subchart and it fell back to its own defaults (empty image.repository), rendering 0 resources. Also adds a dedicated grafana-cloud-otlp-credentials secret rather than reusing grafana-cloud-credentials — confirmed via 1Password that the existing secret is scoped specifically to Prometheus remote write (a different Grafana Cloud instance ID), not valid for the OTLP gateway.
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.
Replaces Prometheus's direct remoteWrite to Grafana Cloud with an in-cluster OTel
Collector: it scrapes Prometheus's /federate endpoint for the same curated allowlist
of series (outage canary: up, pod status, node memory, apiserver requests) and exports
via OTLP to Grafana Cloud, reusing the existing grafana-cloud-credentials secret.
Deliberately avoids exposing Prometheus itself for now — that's deferred to Tailscale
(dieubernetes#15). No HTTPRoute, no basic-auth, no network policy in this PR.
Deployed via the infrastructure appset (all clusters), same tier as kube-prometheus-stack.
Note: config.exporters.otlphttp/grafana_cloud.endpoint is an empty placeholder — needs
the real Grafana Cloud OTLP gateway URL filled in before this can actually export data.