タグは、インフラストラクチャー全体の監視データを集約してコンテキスト化するために不可欠です。システム全体を高レベルで監視し、個々のサービスにドリルダウンしてより包括的な分析を行い、すべてのアプリケーションコンポーネントからのデータを簡単に関連付けることができます。
アプリケーションに一貫性のある効果的なタグスキーマを実装することは、特に複雑さが増すにつれて、困難になる場合があります。たとえば、チームはすべてのアプリケーションサービス、ホスト、コンテナコンフィギュレーションに手動でタグを追加する必要がある場合があります。これにより、個々のコンポーネントを高レベルで分類する方法 (タグ名、スペル、大文字と小文字など) に不整合が生じ、データの収集がより困難になる場合があります。
Datadog は、アプリケーションにキー識別子を追加し、すべてのアプリケーションサービス、ホスト、コンテナなどに一貫してそれを適用するための標準コンフィギュレーションである統合サービスタグ付けを通じて、これらの問題点のいくつかを軽減します。
この投稿では、統合サービスタグ付けが次のことに役立つことをご紹介します。
タグを一度に適用する
統合サービスタグ付けは、アプリケーションコンポーネントを分類するためのベースラインを提供します。これは、Datadog が、アプリケーション用に 3 つの標準タグ env
、service
、version
を予約することによって実現しています。予約済みタグは、Datadog のさまざまなデータ型を自動的に接続し、アプリケーションからのデータストリーミングを監視するための信頼できる唯一の情報源を提供します。たとえば、これらのタグを使用すると、特定の Web サービスの最新バージョンのすべての本番ログを検索できます。
これらの標準タグをアプリケーションに追加すると、Datadog はそれをサービス全体に伝播します。これにより、アプリケーションのパフォーマンスを 1 か所で監視し、インフラストラクチャーメトリクス、ログ、トレース間でピボットするための一貫した参照ポイントを簡単に作成することができます。
統合サービスタグ付けにより、開発者は独自のサービスのテレメトリを構成するための簡単で柔軟なプロセスを実現し、Datadog Agent を管理するチーム (DevOps など) から独立して作業できます。
ホストごとに複数のサービスを実行している非コンテナ化環境の場合、これらのタグをサービスの実行可能ファイルの環境変数 (例: DD_ENV
、DD_SERVICE
、DD_VERSION
) としてエクスポートするか、Chef などのオーケストレーションツールを使用してサービスコンフィギュレーションを自動的に設定できます。次に、環境変数を使用して APM トレーサーを構成でき、Datadog はそれをタグとしてトレースに追加します。トレーサーがログ挿入で有効になっている場合、Datadog は同じ env
、service
、version
タグをログに自動的に追加できます。これにより、トレースから関連するすべてのログにシームレスにピボットして、トラブルシューティングを高速化できます。
Datadog には、コンテナ化環境 (例: Kubernetes、Docker) の独自のサービスに環境、サービス、バージョンタグを追加する柔軟性もあります。これらのタグは、Kubernetes デプロイテンプレートや ECS タスク定義などのサービスのコンフィギュレーションファイルの環境変数に設定できます。これにより、オーケストレーションツールまたは CI/CD システムによって生成された変数値をタグ付けの目的で使用できます。
以下の Kubernetes デプロイテンプレートの例では、環境変数を使用して、デプロイレベルとポッドレベルの両方で env
、service
、version
タグを設定しています。
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
...
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
containers:
- ...
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
このコンフィギュレーションでは、DD_ENV
、DD_SERVICE
、DD_VERSION
環境変数の値は、手動、オーケストレーションツール、または CI/CD システムによって設定され、デプロイ内のすべてのコンテナにタグとして伝播されます。これにより、Datadog は、これらのタグをポッドレベルおよび状態メトリクス (CPU やメモリ使用量など)、コンテナログ、トレースに自動的にマッピングできます。Datadog は、Kubernetes、Docker、ECS 環境に対してさまざまなコンフィギュレーションを提供しているため、統合サービスタグ付けを使用したセットアップの詳細については、ドキュメントを確認してください。
タグをどこでも使用できます (メトリクス、トレース、ログ、プロファイル)
Datadog が統合サービスタグ付け用に予約している標準化されたタグは、アプリケーションに割り当てられている他のタグとともに、Datadog のホストおよびコンテナマップで使用して、環境の概要を把握し、ドリルダウンしてアプリケーションのパフォーマンスを詳しく調べることができます 。
たとえば、ホストマップでステージング環境と本番環境の両方の CPU 使用率を比較して、ホストに同等の計算能力があることを確認できます。または、環境のアベイラビリティゾーン全体のホストを表示して、CPU 使用率に基づいてリソースを追加 (または削除) する必要があるかどうかを確認できます。
コンテナ化環境では、コンテナのバージョン管理を使用すると、コンテナの更新をアプリケーションコードの特定のバージョンにリンクすることで、新しいサービスの更新を追跡できます。統合サービスタグ付けの一部として、サービスに version
タグを追加して、アプリケーションサービスに対する新しいコードのデプロイの影響を簡単に監視できます。たとえば、コンテナマップでこのタグを使用して、すべてのサービスコンテナバージョンの CPU 使用率を比較できます。
新しいデプロイによってサービスの CPU 使用率が異常に増加する場合、コンテナマップは、影響を受けたコンテナを判別するのに役立ちます。
バージョンタグを使用して、問題のあるデプロイを特定する
コンテナマップはデプロイアクティビティの概要を提供しますが、Datadog APM はデプロイの問題の根本原因を特定するのに役立ちます。たとえば、オーケストレーションツールまたは CI/CD ワークフローによって生成されたバージョンタグを使用して、リリース番号ごとのリクエストの内訳を表示できるため、ローリングアップデート、シャドウデプロイ、ブルー/グリーンデプロイ、カナリアリリースなど、さまざまなデプロイ戦略のパフォーマンスを簡単に監視できます。
上のグラフの例は、ローリングアップデート中のリクエストの減少を示しています。これは、アップデートで新しいバグがもたらされたことを示している可能性があります。リクエストのこの突然の減少をバージョンごとのエラー数と比較して、新しいコードのデプロイが時間の経過とともにサービスパフォーマンスにどのように影響するかを視覚化し、エラーをリクエスト数の減少と関連付けることができます。
リクエストの減少と同時にアプリケーションサービスのエラーが急増した場合は、例外がスローされたときに何が起こったかのレポートであるスタックトレースを調べることで、原因を特定できる可能性があります。統合サービスタグ付けを使用すると、影響を受けているバージョンに対応するトレースにすぐにドリルダウンして、エラーのスタックトレースなど、リクエストに関する詳細を確認できます。
このビューから、Datadog が予約済みの service
タグを使用してトレースをログに自動的に接続するため、影響を受けるデプロイから生成されたログに簡単にピボットできます。これにより、アプリケーションサービスで高率のエラーが発生した原因をすばやく特定し、問題を解決できます。
Datadog はまた、トレースをインフラストラクチャーメトリクスとシームレスに関連付けるため、個々のサービスとともにインフラストラクチャーのパフォーマンスを簡単に監視できます。これにより、最近のリリースが個々のサービスとアプリケーション全体のパフォーマンスにどのように影響するかを 1 か所で判断できます。
タグ付けをシンプルに
Datadog の統合サービスタグ付けでサービスに一貫してタグを適用すれば、重要なサービスメトリクス、ログ、またはトレースを見逃すことはありません。さらに、開発者は必要に応じて独自のサービスのテレメトリを構成できるため、他のチームから独立してパフォーマンスを監視できます。タグの統合またはアプリケーションにタグを割り当てる他の方法について詳しくは、ドキュメントをご覧ください。また、Datadog アカウントをまだお持ちでない場合は、ぜひ 14 日間の無料トライアルにご登録ください。