概要
ファセットは、インデックス付きログのユーザー定義のタグと属性です。これらは、定性的または定量的なデータ分析を目的としています。そのため、ログエクスプローラーでこれらを使用して、次のことができます。
ファセットを使用すると、ログモニターのログ、ダッシュボードのログウィジェット、ノートブックを操作することもできます。
注: ログ処理、ライブテイル検索、ログエクスプローラー検索、ログからのメトリクス生成、アーカイブ転送、またはリハイドレーションをサポートするためのファセットは必要ありません。また、フィルターを使用してパイプラインやインデックスにログをルーティングする場合や、除外フィルターを使用してインデックスからログを除外またはサンプリングする場合にもファセットは必要ありません。
これらすべてのコンテキストで、オートコンプリート機能は既存のファセットに依存しますが、入力ログに一致する入力はすべて機能します。
定性的ファセット
ディメンション
次が必要な場合は、定性的ファセットを使用します。
- 値の相対的なインサイトを取得する。たとえば、
http.network.client.geoip.country.iso_code
のファセットを作成して、NGINX ウェブアクセスログの 5XX エラーの数ごとに最も影響を受ける上位の国を確認し、Datadog GeoIP Processor で加工します。 - 一意の値をカウントする。たとえば、Kong ログから
user.email
のファセットを作成して、ウェブサイトに毎日接続しているユーザー数を把握します。 - 特定の値に対してログを頻繁にフィルタリングする。たとえば、
environment
タグのファセットを作成して、トラブルシューティングを開発、ステージング、または本番環境にまで絞り込みます。
注: 属性の値に対してフィルタリングするためのファセットの作成は必須ではありませんが、調査でよく使用する属性に対し定義しておくと、解決の時間を削減できます。
種類
定性的ファセットには、文字列または数値(整数)型を指定できます。文字列型をディメンションに割り当てるとすべてのケースで機能しますが、ディメンションで整数型を使用すると、前述のすべての機能に加えて範囲フィルタリングが有効になります。たとえば、http.status_code:[200 TO 299]
は整数型のディメンションで使用する有効なクエリです。参考として検索構文を参照してください。
定量的ファセット
メジャー
次が必要な場合は、メジャーを使用します。
- 複数のログから値を集計する。たとえば、マップサーバーの Varnish キャッシュが提供するタイルのサイズのメジャーを作成し、1 日の平均スループット、またはリクエストされたタイルサイズの合計ごとに最上位の参照元を追跡します。
- ログを範囲フィルターする。たとえば、Ansible タスクの実行時間のメジャーを作成し、10 秒以上かかった実行が最も多いサーバーのリストを確認します。
- その値に対してログを並べ替える。たとえば、Python マイクロサービスで実行された支払い額のメジャーを作成します。その後、最も金額の高いログから順に、すべてのログを検索できます。
種類
メジャーには、同等の機能のために、(長)整数またはダブル値が付属しています。
単位
メジャーは、クエリ時間と表示時間の桁数を簡単に処理するための時間またはサイズの単位をサポートします。
type | 単位 |
---|
バイト | bit / byte / kibibyte / mebibyte / gibibyte / tebibyte / pebibyte / exbibyte |
時間 | nanosecond / microsecond / millisecond / second / minute / hour / day / week |
単位は、フィールドではなく、メジャー自体のプロパティです。たとえば、ナノ秒単位の duration
メジャーを考えてみます。duration:1000
が 1000 ミリ秒を表す service:A
からのログと、duration:500
が 500 マイクロ秒を表す service:B
からの他のログがあるとします。
- 算術演算プロセッサーで流入するすべてのログの期間をナノ秒にスケーリングします。
service:A
のログには *1000000
乗数を使用し、service:B
のログには *1000
乗数を使用します。 duration:>20ms
(検索構文を参照)を使用して、両方のサービスから一度に一貫してログにクエリを実行し、最大 1 min
の集計結果を確認します。
ファセットパネル
検索バーを使うと、包括的かつインタラクティブにデータをフィルタリングしグループ化することができます。ただし、ほとんどの場合は、ファセットパネルを使った方がよりわかりやすくデータに移動できます。ファセットを開くと、現在のクエリのスコープのコンテンツのサマリーが表示されます
**ファセット(定性的)**には、一意の値の上位リストと、それぞれに一致するログの数が用意されています。
いずれかの値をクリックして、検索クエリのスコープを設定します。値をクリックすると、この一意の値とすべての値の検索が切り替わります。チェックボックスをクリックすると、この特定の値がすべての値のリストに追加または削除されます。また、その内容を検索することもできます。
メジャーには、最小値と最大値を示すスライダーが付いています。スライダーを使用するか、数値を入力して、検索クエリを別の範囲に絞り込みます。
ファセットを非表示にする
ログを使用するすべてのチームのあらゆるユースケースに対処する必要があるため、組織が持つファセットは膨大になるものです。しかし、特定のトラブルシューティングのコンテキストで必要となるのは、こうしたファセットの一部のみであることが大半でしょう。トラブルシューティングセッションで最も関連性の高いファセットのみを保持するために、必要のないファセットを定期的に非表示にします。
- Logs Explorer で、非表示にしたいファセットを見つけます。
- ファセットの隣にある歯車アイコンをクリックします。
- Hide Facet を選択します。
必要に応じて、ファセットは非表示にしてもファセット検索に表示されます(ファセットのフィルターセクションを参照)。そこから非表示のファセットを再表示します。
非表示のファセットは、検索バーのオートコンプリートと、ログエクスプローラーの分析のドロップダウン(メジャー、グループ化など)からも非表示になります。ただし、ファセットは非表示にしても検索クエリでは有効です(たとえば、ログエクスプローラーのリンクをコピーして貼り付けた場合)。
非表示のファセットはログエクスプローラー以外には影響を与えません (例: Live Tail、モニター、ダッシュボードのウィジェットの定義)。
非表示のファセットとチームメイト
ファセットの非表示は、自身のトラブルシューティングコンテキストに固有の操作で、保存ビューを更新しない限り、チームメイトのビューには影響を与えません。非表示のファセットは、保存ビューに保存されたコンテキストの一部です。
ファセットをグループ化
ファセットは、ファセット一覧でのナビゲーションを容易にするために、意味のあるテーマにグループ化されます。ファセットのグループの割り当てや再割り当ては、ファセット一覧の表示にのみ影響し、検索や分析機能には影響しません。
ファセットをグループ化するには
- ファセットの歯車をクリックします。
- Edit facet を選択します。
- Advanced options セクションをクリックして展開します。
- Group フィールドに、ファセットを所属させたいグループ名を入力します。
- Update をクリックします。
ファセットをフィルター
ファセットの検索ボックスを使用して、ファセットリスト全体を絞り込み、操作する必要があるものにすばやく移動することができます。ファセット検索では、ファセット表示名とファセットフィールド名の両方を使用して、結果の範囲を絞り込みます。
エイリアスが設定されたファセット
一部のファセットにはエイリアスが設定されている場合があります(ファセットのエイリアス設定セクションを参照)。ファセットはエイリアスが設定されても分類できますが、組織では非推奨と見なされます。
トラブルシューティングを行う場合、_エイリアス設定された_ファセットではなく_標準_ファセットで他のチームのコンテンツを(自分のチームのコンテンツと共に)見つけることが多いでしょう。これにより、さまざまな発信元からのコンテンツの関連付けがより簡単になります。
ファセットリストにエイリアス設定されたファセットが表示される場合は、switch to alias メニュー項目をクリックして、_標準_ファセットを使用することを検討してください。この操作により、エイリアス設定されたファセットが非表示になり、標準ファセットが再表示されます。この時に保存ビューを更新する場合は、保存ビューを保存して、この保存ビューを使用するすべてのユーザーにエイリアス設定が適用されるようにすることを検討してください。
古いコンテンツに対するトラブルシューティングを行う場合は、ファセットの非標準の_エイリアス設定された_バージョンを保持することをお勧めします(このファセットのエイリアス設定が組織によってセットアップされる前)。
ファセットを管理
すぐに使えるファセット
Host
や Service
などの最も一般的なファセットはすぐに使用できるため、ログがログインデックスに流れたら即座にトラブルシューティングを開始できます。
予約済み属性およびほとんどの標準属性のファセットがデフォルトで使用可能です。
インデックスファセット
インデックスファセットは、組織に複数のインデックスがある場合や、アクティブな履歴ビューがある場合にのみ表示される特定のファセットです。クエリのスコープをインデックスのサブセットに絞り込む場合は、このファセットを使用します。
ファセットを作成
新しいファセットを作成するのではなく、常に既存のファセットを使用することを習慣にすると良いでしょう(ファセットのエイリアス設定セクションを参照)。類似した性質の情報に一意のファセットを使用すると、チーム間のコラボレーションが促されます。
JSON オブジェクトの配列にファセットを作成するには、まず grok パーサーを使って属性を抽出し、その属性のファセットを作成します。
注: ファセットが作成されると、そのコンテンツはすべての新しいログに対して反映されます。ログ管理ソリューションの最適な利用のために、Datadog では最大で 1000 のファセットの使用を推奨しています。
ログサイドパネル
ファセットを作成する最も簡単な方法は、ログのサイドパネルから追加することです。フィールド名や基底のデータのタイプなど、ファセットの詳細のほとんどは事前に入力されており、再確認するだけで済みます。ログエクスプローラーで、ファセットを作成するフィールドを持つ関心のあるログに移動します。このログのサイドパネルを開き、対応するフィールド(タグまたは属性内)をクリックして、そこからファセットを作成します。
- フィールドに文字列値がある場合、ファセットの作成のみが可能です。
- フィールドに数値がある場合、ファセットとメジャーの両方を作成できます。
注: ベストプラクティスとして、1000 ファセット以下で使用することが推奨されます。
ファセットリスト
一致するログを見つけることができない場合は、_ファセットの追加_ボタンを使用して、ファセットパネルから直接新しいファセットを作成します。
このファセットの基底のフィールド(キー)名を定義します。
- タグにはタグキー名を使用します。
- プレフィックス
@
がある、属性の属性パスを使用します。
現在のビューのログの内容に基づいてオートコンプリート機能が働くためは、適切なフィールド名を定義しやすくなっています。ただしここでは、特にインデックスに一致するログがまだ流れていない場合は、実際はどんな値でも使用できます。
エイリアスが設定されたファセット
一意のファセットで類似するコンテンツを収集すると、チーム間の分析が可能になり、チーム間のトラブルシューティングが容易になります。命名規則を参照してください。
オプションとしてエイリアス設定を使用すると、一貫性のない命名規則に依存するチームをスムーズに再編成できます。エイリアス設定を使用すると、組織に出現する標準ファセットを使用してそれらすべてを使用できます。
ファセットのファセットへのエイリアス設定
これは、組織内の複数のチームが類似するコンテンツに対して複数のファセットを既に作成している場合に最適なオプションです。
_エイリアス設定された_ファセットを_標準_ファセットにエイリアス設定する場合
- ユーザーは、トラブルシューティングにエイリアス設定されたファセットと標準ファセットのどちらかを使用できます。多様で、場合によっては異種のソースから流れるコンテンツの相関が容易になる標準ファセットの方が好ましいかもしれません。
- ユーザーは、エイリアス設定されたファセットの代わりに標準ファセットを使用するように促されます。
ファセットを標準ファセットにエイリアス設定するには、ファセットメニューの Alias to...
アクション項目を選択します。組織に存在するすべての標準ファセットから宛先ファセットを選択します。
属性のファセットへのエイリアス設定
これは、新しいソースから流れるログをオンボードする場合に最適なオプションです。このログの一部のフィールドにファセットを作成するのではなく、標準ファセットにエイリアス設定してこのファセットを非推奨にした直後に、フィールドを既存のファセットに直接エイリアス設定します。
ファセットを削除する
インデックス、モニター、ダッシュボード、制限クエリ、または他のチームで使用されているファセットを削除すると、構成が壊れることがあります。
ファセットを削除するには、次の手順に従います。
- ファセットパネルの上部にある Showing xx of xx をクリックします。
- ファセットを検索します。
- ファセットの鉛筆アイコンをクリックします。
- Delete をクリックします。
その他の参考資料