后端与接口
接入 Grafana Cloud…
当需要把指标、日志、链路或 profile 数据发送到 Grafana Cloud 时,按本文选择并配置 Alloy、remote write、OTLP、云集成或 Kubernetes 监控。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
接入 Grafana Cloud 发送遥特定
解决思路
- 在 Grafana Cloud portal → My Account → Stack → Details 获取各信号凭据:Metrics 用 Prometheus remote write URL、username、password/API key;Logs 用 Loki URL、username、password/API key;Traces 用 Tempo OTLP endpoint、username、password/API key;Profiles 用 Pyroscope URL、username、password/API key。
- 推荐用 Alloy 发送所有信号。metrics 配置:prometheus.scrape "app" { targets = [{"__address__" = "localhost:8080"}] forward_to = [prometheus.remote_write.cloud.receiver] };prometheus.remote_write "cloud" { endpoint { url = "https://prometheus-prod-xx.grafana.net/api/prom/push" basic_auth { username = sys.env("PROM_USER") password = sys.env("GRAFANA_CLOUD_API_KEY") } } }。
- Alloy logs 配置:loki.source.file "app" { targets = [{__path__ = "/var/log/app/*.log", job = "app"}] forward_to = [loki.write.cloud.receiver] };loki.write "cloud" { endpoint { url = "https://logs-prod-xx.grafana.net/loki/api/v1/push" basic_auth { username = sys.env("LOKI_USER") password = sys.env("GRAFANA_CLOUD_API_KEY") } } }。
- Alloy traces 配置:otelcol.receiver.otlp "default" { grpc { endpoint = "0.0.0.0:4317" } http { endpoint = "0.0.0.0:4318" } output { traces = [otelcol.exporter.otlp.cloud.input] } };otelcol.exporter.otlp "cloud" { client { endpoint = "tempo-prod-xx.grafana.net:443" auth = otelcol.auth.basic.cloud.handler } };otelcol.auth.basic "cloud" { username = sys.env("TEMPO_USER") password = sys.env("GRAFANA_CLOUD_API_KEY") }。
- 直接用 Prometheus remote write:在 prometheus.yml 中配置 remote_write: - url: https://prometheus-prod-xx.grafana.net/api/prom/push basic_auth: username: "123456" password: "your-api-key";可选 write_relabel_configs: - source_labels: [__name__] regex: "go_.*" action: drop 以丢弃高基数指标。
- 直接用 Loki Push (curl):curl -X POST https://logs-prod-xx.grafana.net/loki/api/v1/push -H "Content-Type: application/json" -u "123456:your-api-key" -d '{"streams":[{"stream":{"app":"myapp","env":"prod"},"values":[["1706745600000000000","application started"]]}]}'。
- OpenTelemetry SDK → Grafana Cloud:设置 export OTEL_EXPORTER_OTLP_ENDPOINT="https://otlp-gateway-prod-xx.grafana.net/otlp";export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic $(echo -n '123456:your-api-key' | base64)";export OTEL_SERVICE_NAME="my-service"。Python 示例:from opentelemetry import trace; from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter; from opentelemetry.sdk.trace import TracerProvider; from opentelemetry.sdk.trace.export import BatchSpanProcessor; provider = TracerProvider(); exporter = OTLPSpanExporter() # reads OTEL_EXPORTER_OTLP_* env vars; provider.add_span_processor(BatchSpanProcessor(exporter)); trace.set_tracer_provider(provider)。
- Cloud Integrations:从 Grafana Cloud UI 或 API 安装预构建集成。列出可用集成:curl https://integrations-api-prod.grafana.net/api/v1/integrations -H "Authorization: Bearer <api-key>";安装 AWS CloudWatch:curl -X POST https://integrations-api-prod.grafana.net/api/v1/integrations/cloudwatch -H "Authorization: Bearer <api-key>" -H "Content-Type: application/json" -d '{"name": "aws-prod", "config": {...}}'。常见集成:AWS CloudWatch、Azure Monitor、GCP、Kubernetes、Docker、MySQL、PostgreSQL、Redis、Nginx、Apache、JVM、Node.js、Python、.NET。
- Kubernetes Agent Operator / Helm chart grafana/k8s-monitoring:在 values.yaml 设置 cluster.name: production;externalServices.prometheus.host: https://prometheus-prod-xx.grafana.net,basicAuth.username: "123456",basicAuth.password.secretName: grafana-cloud-secret,basicAuth.password.secretKey: api-key;externalServices.loki.host: https://logs-prod-xx.grafana.net,basicAuth.username: "234567",basicAuth.password.secretName: grafana-cloud-secret,basicAuth.password.secretKey: api-key;metrics.enabled: true,metrics.podMonitors.enabled: true,metrics.serviceMonitors.enabled: true;logs.pod_logs.enabled: true;traces.enabled: true。然后运行 helm install k8s-monitoring grafana/k8s-monitoring --version 4.1.4 -n monitoring --create-namespace -f values.yaml。
- API Key 管理:用 Grafana API 创建 API key:curl -X POST https://yourstack.grafana.net/api/auth/keys -H "Content-Type: application/json" -u "admin:adminpassword" -d '{"name": "alloy-writer", "role": "MetricsPublisher", "secondsToLive": 0}'。数据摄入角色:MetricsPublisher、LogsPublisher、TracesPublisher、ProfilesPublisher。
适用边界 · 注意事项
- 未使用 Grafana Cloud 或使用其他自托管/托管可观测性后端时,不应照搬 Grafana Cloud 的 URL、凭据和 API。
- 没有 Grafana Cloud 账号、Stack 详情或 API key 时,无法完成凭据获取、remote write/push 和 API 调用。
- 若只需要本地开发调试或不需要长期存储遥测数据,可不接入远程写入。