Honeycomb は、高カーディナリティデータ向けに作られたオブザーバビリティプラットフォームです。アプリケーションの理解とデバッグに使えます。Cloudflare Workers のアプリケーションテレメトリを Honeycomb にエクスポートすると、次のことができます。
- トレースを可視化し、リクエストの流れを把握してパフォーマンスのボトルネックを特定する
- 任意の属性にわたって次元の制限なくログをクエリし、分析する
- カスタムクエリとダッシュボードを作成し、Workers を監視する
このガイドでは、Cloudflare Worker アプリケーションを設定し、OpenTelemetry 準拠のトレースとログを Honeycomb へエクスポートする手順を説明します。
始める前に、次を用意してください。
- 有効な Honeycomb アカウント ↗(無料プランあり)
- 監視したい、デプロイ済みの Worker
- Honeycomb アカウント ↗ にログインします
- 右上のプロフィールアイコンをクリックし、アカウント設定を開きます
- Team Settings を選択します
- 左サイドバーで Environments をクリックし、歯車アイコンをクリックします
- 環境(例:
production、test)を探すか、新しい環境を作成します - API Keys で Create Ingest API Key をクリックします
- API キーを設定します。
- Name: わかりやすい名前を入力します(例:
cloudflare-workers-otel) - Permissions: Can create services/datasets を選択します(OTLP 取り込みに必要です)
- Name: わかりやすい名前を入力します(例:
- Create をクリックします
- 重要: API キーはすぐコピーし、安全に保管してください。あとから再表示できません
API キーは次のような形式です: hcaik_01hq...
次に、Cloudflare ダッシュボードで Honeycomb を指す送信先を作成します。
Honeycomb はトレース用とログ用に別々の OTLP エンドポイントを提供します。
- Traces:
https://api.honeycomb.io/v1/traces - Logs:
https://api.honeycomb.io/v1/logs
- Cloudflare アカウントの Workers Observability ↗ を開きます
- Add destination をクリックします
- トレース送信先を設定します。
- Destination Name:
honeycomb-traces(または任意のわかりやすい名前) - Destination Type: Traces を選択します
- OTLP Endpoint:
https://api.honeycomb.io/v1/traces - Custom Headers: 認証ヘッダーを追加します。
- Header name:
x-honeycomb-team - Header value: Honeycomb API キー(例:
hcaik_01hq...)
- Header name:
- Destination Name:
- Save をクリックします
ログについても同じ手順を繰り返します。
- もう一度 Add destination をクリックします
- ログ送信先を設定します。
- Destination Name:
honeycomb-logs(または任意のわかりやすい名前) - Destination Type: Logs を選択します
- OTLP Endpoint:
https://api.honeycomb.io/v1/logs - Custom Headers: 認証ヘッダーを追加します。
- Header name:
x-honeycomb-team - Header value: 上記と同じ Honeycomb API キー
- Header name:
- Destination Name:
- Save をクリックします
Cloudflare ダッシュボードで送信先を作成したら、Worker の設定を更新してテレメトリのエクスポートを有効にします。
{
"observability": {
"traces": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["honeycomb-traces"]
},
"logs": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["honeycomb-logs"]
}
}
}[observability.traces]
enabled = true
destinations = [ "honeycomb-traces" ]
[observability.logs]
enabled = true
destinations = [ "honeycomb-logs" ]設定を更新したら、Worker をデプロイして変更を反映します。