インデックス
Datadog の調査レポート: サーバーレスの状態 レポート: サーバーレスの状態

インデックス

インデックスは、Configuration ページの Indexes セクションにあります。インデックスをダブルクリックするか、Edit ボタンをクリックすると、過去 3 日間にインデックス化されたログの数とそれらの保存期間に関する情報が表示されます。

インデックス化されたログは、ファセット検索パターン分析ダッシュボード、および監視に使用できます。

インデックス

デフォルトで、ログエクスプローラーは一意なログインデックスを 1 つ持ちますが、Datadog で以下の要件を満たすために、複数のインデックスを使用することもできます。

複数のインデックス機能は非公開ベータ版です。ご使用のアカウントでこの機能を有効にしたい場合は、Datadog のサポートチームにお問い合わせください

インデックスフィルター

インデックスフィルターを使用すると、どのログをどのインデックスに流し入れるかを動的に管理できます。たとえば、最初のインデックスは status:notice 属性で絞り込まれるように設定し、2 つめのインデックスは status:error 属性で絞り込まれるように設定し、最後のインデックスはフィルターなしで作成した場合 (* と同じ)、status:notice ログはすべて最初のインデックスに、status:error ログはすべて 2 つめのインデックスに、その他のログは最後のインデックスに入ります。

: ログは、フィルターに一致する最初のインデックスに保存されます。ドラッグアンドドロップを使用し、リストにあるインデックスの順番を用途に合わせて変更することができます。

除外フィルター

デフォルトでは、ログインデックスに除外フィルターは設定されません。つまり、インデックスフィルターに一致するログがすべてインデックス化されます。

ですが、すべてのログに同等の価値があるわけではないため、インデックスに流し入れたログの中でどれを削除するかを、除外フィルターを使用して制御することができます。除外したログはインデックスから破棄されますが、Livetail には残るので、メトリクスの生成アーカイブに使用できます。

除外フィルターは、クエリ、サンプリング規則、および active/inactive のトグルで定義します。

  • デフォルトのクエリ* です。つまり、インデックスに入るすべてのログが除外されます。ログクエリを使用して、一部のログだけが除外されるように除外フィルターを設定します。
  • デフォルトのサンプリング規則Exclude 100% of logs であり、クエリに一致する 100% のログが除外されます。サンプリングレートを 0% から 100% の間で調節し、さらに、そのサンプリングレートを個々のログに適用するか、それとも属性の一意の値によって定義されるロググループに適用するかを決めます。
  • デフォルトのトグルは active であり、インデックスに入れられたログが、除外フィルターのコンフィギュレーションに従って実際に破棄されます。このトグルを inactive にすると、インデックスに新しく入れられるログに対して除外フィルターが無視されます。

: ログのインデックスフィルターは、最初に一致した active な除外フィルターだけを処理します。ログが除外フィルターに一致すると、(たとえサンプルとして抽出されなくても) その後の一連の除外フィルターがすべて無視されます。

ドラッグアンドドロップを使用し、リストにある除外フィルターの順番を用途に合わせて変更することができます。

除外フィルターの例

オンとオフを切り替える

プラットフォームにインシデントが発生するまでデバッグログが必要ないこともあれば、クリティカルバージョンのアプリケーションのデプロイを注意深く監視したいこともあります。status:DEBUG に 100% の除外フィルターをセットアップすると、Datadog の UI から、あるいは必要なら API を使用して、トグルのオンとオフを切り替えることができます。

傾向を注視する

たとえば、Web アクセスサーバーリクエストからのすべてのログを保持するのではなく、3xx、4xx、5xx のログをすべてインデックス化し、2xx のログの 95% を除外したい場合は、source:nginx AND http.status_code:[200 TO 299] を設定することで全体の傾向を追跡できます。 ヒント: ログから生成されるメトリクスを使用し、リクエストの数をカウントして、ステータスコード、ブラウザでタグ付けすることにより、Web アクセスログを有益な KPI に変換することができます。

高レベルなエンティティを一貫してサンプリングする

1 日に何百万というユーザーが Web サイトにアクセスするとします。すべてのユーザーを監視する必要はないが、一部のユーザーから全体像を把握しておきたい場合は、すべてのプロダクションログ (env:production) に対して除外フィルターをセットアップし、@user.email のログの 90% を除外します。

トレース ID をログに挿入できるので、APM をログと併用することができます。ユーザーに関するログをすべて保持する必要はありませんが、ログによってトレースに必要な全体像を常に入手できるようにしておくことが、トラブルシューティングのために非常に重要です。 計測するサービスからのログ (service:my_python_app) に適用される除外フィルターをセットアップし、Trace ID の 50% のログを除外してください。トレース ID リマッパーをパイプラインのアップストリームで必ず使用してください。

日別の割り当てを設定する

1 日の割り当てを設定して、インデックスに格納されるログの数を日別に制限することができます。この割り当ては、格納されるべき (除外フィルターが適用された後の) すべてのログに対して適用されます。 1 日の割り当て数に到達したら、ログはインデックス化されなくなりますが、livetail では利用できるほか、アーカイブにも送信されるので、ログからメトリクスを生成するために使用できます。

この割り当ては、インデックスを編集していつでも更新または削除できます。

: インデックスの 1 日の割り当ては、UTC 時間の 2:00pm (CET 4:00pm、EDT 10:00am、PDT 7:00am) に自動的にリセットされます。

その他の参考資料


*Logging without Limits は Datadog, Inc. の商標です。