ログストリーミング: Honeycomb

Fastly のリアルタイムログストリーミング機能は、JSON フォーマットのログを Honeycomb に送信することができます。Honeycomb は、デベロッパーが複雑なシステムやマイクロサービス、データベースの操作を調査するためのツールです。

注意

Fastly ではサードパーティのサービスに関する直接のサポートは行っておりません。詳細については、Fastly のご利用規約をご覧ください。

前提条件

Honeycomb を Fastly サービスのログエンドポイントとして追加する前に、以下の手順を実行する必要があります。

  • Honeycomb アカウントを持っていない場合はアカウントを作成してください。
  • Honeycomb の Account page で、チームの Write Key を取得します。
  • Dataset 名を選択します。複数の環境 (本番環境、開発環境、ステージング環境など) からデータを収集する予定の場合、Honeycomb では環境ごとに Dataset を作成し、それに応じて Datasets に名前を付けることをおすすめします (例: prod.queriesdev.queriesstaging.queries)。Dataset が存在しない場合、Honeycomb は自動的に作成します。

ログエンドポイントとしての Honeycomb の追加

  1. Deliver サービス
  2. Compute サービス
  1. リモートログストリーミングの設定に関するガイドをご確認ください。
  2. Honeycomb エリアで、Create endpoint をクリックします。
  3. Create a Honeycomb endpoint フィールドを以下のように記入します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご覧ください。
    • Log format フィールドには、Honeycomb に送信するデータを入力します。詳細はフォーマットの例のセクションを参照してください。
    • Write Key フィールドに、Honeycomb チームの Write キーを入力します。これは Honeycomb Account page で確認できます。
    • Dataset フィールドに、Honeycomb Dataset の名前を入力します (例: myDataset)。
  4. Create をクリックして新規のログエンドポイントを作成します。
  5. Activate をクリックして設定への変更をデプロイします。

フォーマットの例

Honeycomb に送られるデータは JSON オブジェクトとしてシリアル化されている必要があります。以下は Honeycomb にデータを送信する書式指定文字列の例です。

1{
2 "time":"%{begin:%Y-%m-%dT%H:%M:%SZ}t",
3 "data": {
4 "service_id":"%{req.service_id}V",
5 "time_elapsed":%D,
6 "request":"%m",
7 "host":"%{if(req.http.Fastly-Orig-Host, req.http.Fastly-Orig-Host, req.http.Host)}V",
8 "url":"%{cstr_escape(req.url)}V",
9 "protocol":"%H",
10 "is_ipv6":%{if(req.is_ipv6, "true", "false")}V,
11 "is_tls":%{if(req.is_ssl, "true", "false")}V,
12 "is_h2":%{if(fastly_info.is_h2, "true", "false")}V,
13 "client_ip":"%h",
14 "geo_city":"%{client.geo.city.utf8}V",
15 "geo_country_code":"%{client.geo.country_code}V",
16 "server_datacenter":"%{server.datacenter}V",
17 "request_referer":"%{Referer}i",
18 "request_user_agent":"%{User-Agent}i",
19 "request_accept_content":"%{Accept}i",
20 "request_accept_language":"%{Accept-Language}i",
21 "request_accept_charset":"%{Accept-Charset}i",
22 "cache_status":"%{regsub(fastly_info.state, "^(HIT-(SYNTH)|(HITPASS|HIT|MISS|PASS|ERROR|PIPE)).*", "\\2\\3") }V",
23 "status":"%s",
24 "content_type":"%{Content-Type}o",
25 "req_header_size":%{req.header_bytes_read}V,
26 "req_body_size":%{req.body_bytes_read}V,
27 "resp_header_size":%{resp.header_bytes_written}V,
28 "resp_body_size":%{resp.body_bytes_written}V
29 }
30}

翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。