Honeycombとは?高カーディナリティのオブザーバビリティを解説
Honeycombは、幅広く高カーディナリティなイベントと、高速でインタラクティブなクエリを中心に設計されたオブザーバビリティプラットフォームで、既知の問題を単に監視するのではなく、未知の問題を調査するために作られています。
Honeycombは、従来のメトリクスとdashboardによる監視が、複雑な分散システムでは破綻するという主張のもとに設立されました。何を測定するかを事前に決めることを強いるからです。そのアプローチは、後からどのフィールドででも切り分けられる豊富なイベントを中心に据えており、メトリクス第一のツールに対する有用な対比となります。
事前集計されたメトリクスではなくイベント
データを固定のメトリクスに事前集計する代わりに、Honeycombは幅広いイベントを取り込みます。それぞれ多数のフィールドを持つ構造化されたレコードです。生の詳細が保持されるため、事前に追跡すると決めたディメンションに限定されるのではなく、任意のフィールドでグルーピングやフィルタリングを行って、後から新しい問いを立てられます。
高カーディナリティを受け入れる
Honeycombは、従来のメトリクスシステムを破綻させるような、ユーザーIDやリクエストIDといった高カーディナリティのフィールドを扱えるように作られています。こうした一意の識別子でデータを分解できることこそ、正常なトラフィックの海の中から1人の顧客や1つの不具合のあるdeployを切り分けられる理由です。
高速で探索的な分析
このプロダクトは、迅速で反復的なクエリを重視します。問いを立て、結果を見て、絞り込み、繰り返す。この探索的なループは、予期しなかった問題を調査するというオブザーバビリティの中核的な目標に適しています。そこでは固定のdashboardを読むのではなく、データが導く先へどこまでも追う必要があります。
第一級としてのtracing
Honeycombは分散トレースを主要なビューとして扱い、そのイベントモデルはspanに自然にマッピングされます。集計分析と個々のトレースの間を滑らかに移動でき、「このリクエスト群が遅い」から、その理由を説明する正確なトレースへとズームインできます。
Honeycombとデリバリー
Honeycombはbuildやreleaseの識別子を含む任意のフィールドで相関させるため、デリバリーに関する調査に適しています。ある特定のdeployでレイテンシが変化したか、あるrunnerやbuildのバリアントが異なる挙動を示していないか。イベントをreleaseのコンテキストとともに計装すれば、それらは1つのクエリで済む調査になります。
重要なポイント
- Honeycombは幅広く高カーディナリティなイベントを中心に構築されています。
- 生の詳細を保持することで、後から新しい問いを立てられます。
- メトリクスシステムを破綻させる高カーディナリティのフィールドを受け入れます。
- その探索的でトレース第一のモデルは、未知の問題の調査に適しています。