本文へ移動
Telemetry
ドキュメントを見る
SDK更新日: 2026年7月29日Telemetry 編集チームと製品チームによるレビュー2 最小読み取り時間

コーディング エージェントでこのドキュメントを使用してください

Claude Code、Codex、Cursor、または別のコーディング エージェント用の集中プロンプト パックを開き、それをここで説明するワークフローに適応させます。

このページの内容
  1. キーを設定する
  2. 1 つのイベントを送信する
  3. 互換性のあるバッチを送信する
  4. SQLを実行します
  5. より大きな結果をエクスポートする
  6. テーブルを検査して検証する
  7. 再試行および終了コードのポリシー

cURL および HTTP API の例

cURL を使用して、API キーの検証、SDK リクエストの再現、サーバー側スクリプトの自動化、またはアプリケーションにインストルメンテーションを追加する前に障害処理をテストします。

キーを設定する

シークレット値を記録しないシェルでキーをエクスポートします。

export TELEMETRY_API_KEY="YOUR_API_KEY"

取り込みには書き込みスコープのキーを使用し、クエリまたはレポートには別の読み取りスコープのキーを使用します。キーを展開するコマンド周辺のシェル トレースを無効にします。

1 つのイベントを送信する

curl --fail-with-body \
  --connect-timeout 2 \
  --max-time 10 \
  --request POST \
  "https://api.telemetry.sh/log" \
  --header "Authorization: ${TELEMETRY_API_KEY}" \
  --header "Content-Type: application/json" \
  --data @- <<'JSON'
{
  "table": "api_request_completed",
  "data": {
    "event_id": "evt_request_101",
    "route_template": "/api/projects/:id",
    "method": "GET",
    "status_code": 200,
    "status": "success",
    "latency_ms": 184
  }
}
JSON

Telemetry が追加 timestamp_utc。 APIキー、認証ヘッダー、Cookie、生のリクエスト本文、プロンプト、顧客の非公開情報をイベントフィールドとして送信しないでください.

互換性のあるバッチを送信する

data フィールドには配列を指定できます。

curl --fail-with-body \
  --connect-timeout 2 \
  --max-time 10 \
  --request POST \
  "https://api.telemetry.sh/log" \
  --header "Authorization: ${TELEMETRY_API_KEY}" \
  --header "Content-Type: application/json" \
  --data @- <<'JSON'
{
  "table": "job_completed",
  "data": [
    {
      "event_id": "evt_job_101",
      "job_name": "invoice_sync",
      "status": "success",
      "duration_ms": 912
    },
    {
      "event_id": "evt_job_102",
      "job_name": "invoice_sync",
      "status": "failed",
      "duration_ms": 2401,
      "error_type": "provider_timeout"
    }
  ]
}
JSON

すべてのオブジェクトと同じテーブル スキーマとの互換性を維持します。バッチによりリクエストのオーバーヘッドは軽減されますが、1 つの失敗したリクエストによって影響を受けるイベントの数は増加します。

SQLを実行します

curl --fail-with-body \
  --connect-timeout 2 \
  --max-time 30 \
  --request POST \
  "https://api.telemetry.sh/query" \
  --header "Authorization: ${TELEMETRY_API_KEY}" \
  --header "Content-Type: application/json" \
  --data @- <<'JSON'
{
  "query": "SELECT route_template, COUNT(*) AS requests, ROUND(AVG(latency_ms), 0) AS avg_latency_ms FROM api_request_completed WHERE timestamp_utc >= now() - INTERVAL '24 hours' GROUP BY route_template ORDER BY requests DESC;"
}
JSON

チェックしてください status, data、そして key_order 空ではない結果を仮定する代わりに、フィールドを使用します。

より大きな結果をエクスポートする

非同期 Parquet エクスポートを開始します。

curl --fail-with-body \
  --connect-timeout 2 \
  --max-time 30 \
  --request POST \
  "https://api.telemetry.sh/query/async" \
  --header "Authorization: ${TELEMETRY_API_KEY}" \
  --header "Content-Type: application/json" \
  --data @- <<'JSON'
{
  "query": "SELECT * FROM api_request_completed WHERE timestamp_utc >= now() - INTERVAL '30 days' ORDER BY timestamp_utc DESC;",
  "format": "parquet"
}
JSON

返されたものをポーリングする status_url 同じ認証ヘッダーを持つ。いつ query_status です completedをダウンロードしてください。 download_url。ポーリングを停止する failed 全体的な期限を強制します。

テーブルを検査して検証する

curl --fail-with-body \
  --connect-timeout 2 \
  --max-time 10 \
  "https://api.telemetry.sh/tables/api_request_completed/schema" \
  --header "Authorization: ${TELEMETRY_API_KEY}"

合成成功、失敗、再試行、およびタイムアウトのケースを送信します。ダッシュボードまたはアラートを作成する前に、フィールドのタイプ、単位、UTC タイムスタンプ、機密フィールドが存在しないことを確認してください。

再試行および終了コードのポリシー

--fail-with-body 安全な診断のために応答本文を保存しながら、HTTP エラーの場合はゼロ以外で終了します。

  • 終了 6: DNS 解決に失敗しました。
  • 終了 7: 接続に失敗しました。
  • 終了 28: タイムアウト;サーバーはリクエストを受け入れたかもしれませんし、受け入れていないかもしれません。
  • HTTP 400: リクエストを修正します。変更せずに再試行しないでください。
  • HTTP 401 または 403: 資格情報を置き換えるか、その範囲を修正してください。
  • HTTP 429, 502, 503、または 504: 制限された指数バックオフとジッターを使用して再試行します。

同じものを再利用する event_id 論理的なイベントの場合。使用しないでください --retry-all-errors 重複配信を考慮せずに。

を参照してください。 ログ API, クエリ API, テーブル API、そして イベント配信ガイド.

関連製品の機能

安定したイベント名、型指定されたフィールド、プライバシーがレビューされたコンテキストをキャプチャします。

所有権と技術リファレンス

Telemetry 編集チームがこの説明を所有しています。製品チームは動作、例、境界をレビューします。

編集基準を見直す