Datadog サービスカタログ

概要

Datadog サービスカタログは、組織内のすべてのサービスに関する重要な情報にアクセスするための一元的な場所です。大規模なエンドツーエンドのサービスオーナシップの実現、リアルタイムのパフォーマンスインサイトの取得、信頼性とセキュリティリスクの検出と対処、アプリケーションの依存関係の管理などをすべて 1 箇所で行うことができます。Slack などのチームコミュニケーションツール、GitHub などのソース管理、Datadog ダッシュボード、各サービスのテレメトリーデータを受信して監視する Datadog ビューにアクセスできます。

APM サービスリストと比較して、サービスカタログには、トレースメトリクスを積極的に放出しないサービスが含まれているため、サービスを表示するためにインスツルメンテーションする必要がないことを意味します。また、トレースデータを持つべきサービスのインスツルメンテーションの問題を調べることもできます。

サービスカタログは、以下のような場合に有効です。

  • すべてのサービス、その構造、詳細情報へのリンクをわかりやすく表示することで、新しい開発者やサイトの信頼性エンジニアを育成する。
  • 正しい所有者情報とコミュニケーションチャンネルを確立し、モニタリングとトラブルシューティングの詳細へのアクセスを容易にすることで、すべての人のオンコール経験を向上させる。
  • エンジニアが既に使用している可観測性ツールに、ランブックやドキュメントなどのソリューションやトラブルシューティングツールへのリンクを直接埋め込む。
  • 信頼性を高め、上流と下流のサービスや依存関係の所有者を簡単に特定することで、インシデントの復旧をスピードアップする。
  • 可観測性データを報告していないサービスや、そのデータを監視していないサービスを検出する。
  • テレメトリー間のインサイトを最適化するために、良いタグ付けの実践を促進する。
  • エンジニアリングリーダーシップに、チームやサービス全体の信頼性プラクティスの概要を提供する。
  • SLO、モニター、オーナーシップのないサービスなどの問題を発見する。
  • アプリケーション攻撃にさらされるサービスをプロアクティブに特定します。

サービスカタログの閲覧

サービスカタログページでは、収集したデータから検出された、または誰かがサービスを登録して定義した Datadog 組織内のサービスの一覧を見ることができます。特定のサービスを見つけるには、その名前で検索します。リストをフィルターするには、1 つまたは複数のファセットを選択します。例えば、まだサービス定義がない検出されたサービスを見るには、Ownership Info > Telemetry Only ファセットをクリックします。リスト内の一致するサービスのみを表示するために、チーム名でフィルターをかけたり、表示されるメトリクスを特定の環境やクラスターにスコープすると便利な場合があります。

サービスカタログのリストは、サービスタイプ、サービス名、および他の多くの列でソート可能です。Ownership ビューでチームごとにソートし、空白を探すことで、所有権の欠落を見つけることができます。また、Reliability ビューで緊急度別にソートして、最もトリガーされたモニターがあるサービスを見ることができます。

サービス定義や可観測性データを収集する Datadog 製品によって提供されるサービスに関する情報は、Ownership、Reliability、Performance、Security のビューに整理されます。

Ownership ビュー

Ownership タブでは、Contact</> 列のアイコンをクリックすると、サービス定義で指定されたツールやプロジェクトに移動することができます。例えば、所有するチームの Slack チャンネルや、サービスコードを含む GitHub リポジトリにアクセスすることができます。

Telemetry 列には、Datadog がサービスに対して収集しているテレメトリーデータの種類が表示されます。アイコンをクリックすると、対応する Datadog 製品のビューに誘導されます。例えば、Agent は Datadog にトレースを送信し、Traces アイコンをクリックすると APM でそれらを表示することができます。

右側のケバブメニューをクリックして、サービス定義を編集するか (存在する場合)、サービスが定義されていない場合は、サービスにリンクします。最初にソースコードシステムとのインテグレーションをセットアップする必要があるかもしれません。

Team または On Call の列で表を並べ替えると、各チームがどのサービスを担当しているかがわかり、所有権と責任がまだ特定されていないサービスを特定できます。

Reliability ビュー

Reliability タブには、サービスの安定性に関する情報が表示されます。リスト内の列をクリックして表をソートすると、以下のことがわかります。

  • 最近デプロイされたサービス、または長い間デプロイされていないサービスはどれか。
  • どのサービスでエラーが多く報告されているか、またそれが新しい問題であるかどうか。
  • どのサービスでインシデントが発生しているか。
  • どのサービスがトリガーされるモニターを持っているか。

右側の設定アイコンをクリックすると、サービスリストから列を非表示にすることができます。

PagerDuty インテグレーション

サービスカタログに PagerDuty のメタデータを追加して、Reliability ビューを完成させることができます。

schema-version: v2
dd-service: product-recommendation-lite
team: Shopist
integrations:
  pagerduty: https://www.pagerduty.com/service-directory/shopping-cart
tags: []

Performance ビュー

Performance タブでは、サービスのパフォーマンスや最も注意を払う必要があるものを表示する方法がいくつか用意されています。列をクリックして表をソートすると、以下のことがわかります。

  • 最近デプロイされたサービス、または長い間デプロイされていないサービス
  • 1 秒間に最も多くのリクエストを受信している、またはトラフィックを受信していないサービス
  • 様々なパーセンタイルで最も高いレイテンシーを持つサービス
  • 最も高いエラー数またはエラー率を持っているサービス
  • 最も多くのポッド、ホスト、またはサーバーレス環境上で動作しているサービス
  • 関連するダッシュボードがあるサービス。関連するダッシュボードでは、より多くのパフォーマンスデータの内訳を確認でき、サービス定義にダッシュボードを追加する必要があるものを特定することができます
  • Apdex スコアが最高または最低であるサービス
  • トリガーされるモニターを持つサービス

右側の設定アイコンをクリックすると、サービスリストからメトリクス列を非表示にすることができます。

Security ビュー

Security タブでは、サービスが攻撃者からどのように狙われているかを確認するためのいくつかの方法が用意されています。列をクリックして表をソートすると、以下のことがわかります。

  • 攻撃を最も多く受けているサービス。
  • 最も多くの攻撃者に狙われているサービス。
  • 最も重大な脅威があるサービスで、サービスが攻撃によって影響を受ける。
  • Application Security Management によって監視され、保護されているサービス

右側の設定アイコンをクリックすると、サービスリストからメトリクス列を非表示にすることができます。

サービスを調査する

サービスをクリックすると、サイドパネルが開き、以下のような詳細が表示されます。

  • チームの連絡先、ソースコード、ドキュメントやダッシュボードなどの補足情報へのリンクなど、サービス定義にある所有権情報
  • デプロイステータス、SLO、進行中のインシデント、エラー情報などの信頼性情報
  • リクエスト、エラー、レイテンシー、ダウンストリームサービスが費やした時間を示すパフォーマンスグラフ
  • 攻撃の時期や種類、攻撃者の特定、サービスに影響を及ぼすセキュリティの脅威などのセキュリティ情報
  • サービスのデータを収集できる Datadog 製品の構成の完全性ステータス
  • YAML によるサービス定義と、そのサービスのソースコードへのリンク。
  • このサービスの上流と下流にあるサービスを表示するインタラクティブなサービスマップ。

View Related をクリックし、ドロップダウンメニューからページを選択すると、APM サービスページやこのサービスのサービスマップなど、Datadog の関連ページ、または分散型トレーシング、インフラストラクチャー、ネットワークパフォーマンス、ログ管理、RUM、Continuous Profiler などの関連テレメトリーデータページにナビゲートします。

サービス定義

サービスとは、独立した、デプロイ可能なソフトウェアの単位です。Datadog 統合サービスタグ付けDD_SERVICE タグは、インフラストラクチャーのメトリクス、ログ、トレースなど複数のテレメトリータイプで一貫してサービスを管理・監視するための標準的な方法を提供します。追加の基準を使用してサービスを定義するには、アーキテクチャーのスタイルに合うようにサービス定義をカスタマイズすることができます。

サービス定義には以下の要素が含まれ、すべて任意です (サービス名を除く)。

Service name
サービスの識別子で、Datadog 内で一意のもの。デフォルトでは、受信データの DD_SERVICE の値です。
Team
サービスの開発・保守を担当するチーム名。
Contacts
Slack チャンネルやメールアドレスなど、チームと連絡を取るための 1 つ以上の方法。
Links
ランブックなど、サービスに関する重要なリソースへのリンクのリスト。
Repos
サービスの保守、テスト、デプロイのためのソースコードと関連ファイルを含むソースコントロールリポジトリーのリスト。
Docs
サービスに関するドキュメントへのリンク。
Tags
Datadog の他のタグと同様に、サービス定義など、適用されるものの検索、フィルター、グループ化を支援します。
Integrations
PagerDuty などのインテグレーションを接続し、オンコールサービスを特定するためのカスタム文字列。

既存の APM サービスを充実させる

すでに APM を使用してアプリケーションを追跡している場合は、それらのサービスに関する情報を追加します。初期状態では、Service Catalog ページにリストされた APM 監視対象サービスにはグレーのチェックマークがあります。

チーム名、Slack チャンネル、ソースコードリポジトリなどのサービス所有権情報を、POST エンドポイントを用いて YAML ファイルを Service Definition API にプッシュすることで追加します。詳しくは、サービスカタログの設定をお読みください。

新規サービスの登録

Service Definition API を使って Datadog テレメトリー (APM トレースなど) を発信していないサービスでも、Service Catalog でサービスの所有権情報を管理することができます。YAML ファイルでサービスの所有権、オンコール情報、カスタムタグを指定すると、その情報が Service Catalog に反映されます。詳しくは、サービスカタログの設定をお読みください。

ロールベースアクセスおよび権限

一般的な情報は、ロールベースアクセスコントロールおよびロール権限を参照してください。

読み取り権限

サービスカタログの読み取り権限により、サービスカタログのデータを読み取ることができ、以下の機能が有効になります。

  • サービスカタログ一覧
  • Discover UI
  • サービス定義エンドポイント: /api/v2/services/definition/<service_name>

この権限は、Datadog Read Only Role および Datadog Standard Role でデフォルトで有効になっています。

書き込み権限

サービスカタログの書き込み権限は、ユーザーがサービスカタログのデータを変更することを許可します。書き込み権限は、以下の機能に対して必要です。

  • POST /api/v2/services/definitions エンドポイントを使ったサービス定義の挿入または更新
  • DELETE /api/v2/services/definition/<service_name> エンドポイントを使ったサービス定義の削除
  • Discover Services UI でオンボーディングプロセスを完了する

この権限は、Datadog Admin Role および Datadog Standard Role でデフォルトで有効になっています。

その他の参考資料