mcpField
S
send-data

send-data

github.com/grafanaクラウド・DevOps2954.3k 回インストール1 日前に更新
リポジトリ

send-data について

Grafana Cloud にテレメトリーを送る運用・開発チーム向けのガイドです。Alloy、直接書き込み、OpenTelemetry、クラウド連携、Kubernetes の設定方法を扱います。

主な機能

  1. 01Alloy による複数シグナルの送信
  2. 02Prometheus と Loki の直接書き込み設定
  3. 03OpenTelemetry によるデータのエクスポート
  4. 04インフラ連携の導入
  5. 05Kubernetes 監視の設定

活用シーン

  1. 01アプリケーションのメトリクス、ログ、トレースの Grafana Cloud への送信
  2. 02AWS、Kubernetes、データベースの監視データ取り込み
  3. 03テレメトリー送信用 API キーの作成と設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/grafana/skills --skill send-data

インストール後、Claude Code で/send-dataを入力して読み込まれたか確認します。

詳細

Grafana Cloud へのデータ送信

ドキュメント: https://grafana.com/docs/grafana-cloud/send-data/

クイックスタート:認証情報を確認する

Grafana Cloud ポータル → マイアカウント → スタック → 詳細:

シグナル認証情報フィールド
メトリクスPrometheus リモート書き込み URL、ユーザー名、パスワード/API キー
ログLoki URL、ユーザー名、パスワード/API キー
トレースTempo OTLP エンドポイント、ユーザー名、パスワード/API キー
プロファイルPyroscope URL、ユーザー名、パスワード/API キー

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")
    }
  }
}

// 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")
    }
  }
}

// TRACES (OTLP receive → forward)
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 リモート書き込みを直接利用する

# 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   # optional: drop high-cardinality metrics

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

# Environment variables for OTLP export
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)

クラウド統合

一般的なインフラストラクチャ向けの事前構築済み統合(Grafana Cloud UI または API からインストール):

# List available integrations
curl https://integrations-api-prod.grafana.net/api/v1/integrations \
  -H "Authorization: Bearer <api-key>"

# Install AWS CloudWatch integration
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

# values.yaml for grafana/k8s-monitoring Helm chart
cluster:
  name: production

externalServices:
  prometheus:
    host: https://prometheus-prod-xx.grafana.net
    basicAuth:
      username: "123456"
      password:
        secretName: grafana-cloud-secret
        secretKey: api-key

  loki:
    host: https://logs-prod-xx.grafana.net
    basicAuth:
      username: "234567"
      password:
        secretName: grafana-cloud-secret
        secretKey: api-key

metrics:
  enabled: true
  podMonitors:
    enabled: true
  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 キーの管理

# Create API key via Grafana API
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

コメント