From 4af8b07b137dce9faead9c33794817f78b764625 Mon Sep 17 00:00:00 2001 From: "webops-guacbot[bot]" <214537265+webops-guacbot[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:28:46 +0000 Subject: [PATCH 1/8] Updates 42 translation(s) --- content/ja/account_management/api-app-keys.md | 171 +- .../ja/agent/configuration/agent-commands.md | 116 +- .../ja/agent/supported_platforms/windows.md | 216 +- content/ja/bits_ai/mcp_server/setup.md | 771 +++++++ content/ja/dashboards/_index.md | 116 +- content/ja/extend/dogstatsd/_index.md | 635 ++++++ content/ja/getting_started/_index.md | 125 +- content/ja/getting_started/tagging/_index.md | 169 +- .../tagging/unified_service_tagging.md | 201 +- content/ja/infrastructure/_index.md | 30 +- content/ja/logs/explorer/search_syntax.md | 203 +- content/ja/logs/log_configuration/parsing.md | 313 +-- content/ja/metrics/types.md | 195 +- content/ja/monitors/notify/_index.md | 245 ++- content/ja/opentelemetry/_index.md | 121 +- content/ja/real_user_monitoring/_index.md | 196 +- .../browser/advanced_configuration.mdoc.md | 1899 ++++++++++++++++ .../guide/proxy-rum-data.mdoc.md | 233 ++ .../static_analysis_rules/_index.md | 472 ++-- content/ja/standard-attributes/_index.md | 1237 ++++++----- content/ja/synthetics/_index.md | 135 +- .../single-step-apm/kubernetes.md | 896 ++++++++ .../ja/universal_service_monitoring/_index.md | 54 +- content/ko/account_management/_index.md | 137 +- content/ko/agent/_index.md | 111 +- .../ko/agent/configuration/agent-commands.md | 114 +- content/ko/bits_ai/mcp_server/setup.md | 771 +++++++ .../ko/containers/kubernetes/prometheus.md | 300 +-- content/ko/extend/dogstatsd/_index.md | 635 ++++++ content/ko/getting_started/_index.md | 137 +- .../tagging/unified_service_tagging.md | 403 +++- content/ko/glossary/_index.md | 5 +- content/ko/infrastructure/_index.md | 34 +- content/ko/logs/explorer/search_syntax.md | 205 +- content/ko/logs/log_collection/_index.md | 128 +- content/ko/logs/log_configuration/parsing.md | 277 +-- .../browser/advanced_configuration.mdoc.md | 1900 +++++++++++++++++ .../guide/proxy-rum-data.mdoc.md | 233 ++ .../single-step-apm/kubernetes.md | 896 ++++++++ .../trace_pipeline/ingestion_mechanisms.md | 899 ++++++++ .../ko/universal_service_monitoring/_index.md | 70 +- data/partials/home.ko.yaml | 493 +++-- 42 files changed, 13619 insertions(+), 2878 deletions(-) create mode 100644 content/ja/bits_ai/mcp_server/setup.md create mode 100644 content/ja/extend/dogstatsd/_index.md create mode 100644 content/ja/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md create mode 100644 content/ja/real_user_monitoring/guide/proxy-rum-data.mdoc.md create mode 100644 content/ja/tracing/trace_collection/single-step-apm/kubernetes.md create mode 100644 content/ko/bits_ai/mcp_server/setup.md create mode 100644 content/ko/extend/dogstatsd/_index.md create mode 100644 content/ko/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md create mode 100644 content/ko/real_user_monitoring/guide/proxy-rum-data.mdoc.md create mode 100644 content/ko/tracing/trace_collection/single-step-apm/kubernetes.md create mode 100644 content/ko/tracing/trace_pipeline/ingestion_mechanisms.md diff --git a/content/ja/account_management/api-app-keys.md b/content/ja/account_management/api-app-keys.md index 80a68682dc2..5251305b45f 100644 --- a/content/ja/account_management/api-app-keys.md +++ b/content/ja/account_management/api-app-keys.md @@ -1,112 +1,162 @@ --- algolia: tags: - - API キー + - api key aliases: - /ja/account_management/faq/how-do-i-reset-my-application-keys/ - /ja/agent/faq/how-do-i-reset-my-datadog-api-keys/ - /ja/account_management/faq/api-app-key-management/ +description: ブラウザアプリケーションの API キー、アプリケーションキー、およびクライアントトークン、そしてセキュリティ機能を管理します。 title: API キーとアプリケーションキー --- +## API キー {#api-keys} -## API キー +API キーは組織に固有のものです。Datadog Agent でメトリクスとイベントを Datadog に送信するには、[API キー][1] が必要です。 -API キーは組織に固有で、Datadog Agent でメトリクスとイベントを Datadog に送信するには、[API キー][1]が必要です。 +## アプリケーションキー {#application-keys} -## アプリケーションキー +[アプリケーションキー][2] は、組織の API キーとの連携により、Datadog のプログラムで利用する API へのアクセスをユーザーに提供します。アプリケーションキーは、それを作成したユーザーアカウントに関連付けられており、デフォルトではそれを作成したユーザーの権限を付与されています。 -組織の API キーと組み合わせて[アプリケーションキー][2]を使用すると、ユーザーは Datadog のプログラム API にアクセスできます。アプリケーションキーは、これを作成したユーザーアカウントに関連付けられており、デフォルトで作成したユーザーの権限とスコープを持っています。 +### 1 回限り読み取りモード {#one-time-read-mode} -### スコープ +1 回限り読み取り (OTR) モードは、アプリケーションキーのシークレットの可視性を、作成時のみに制限するセキュリティ機能です。OTR モードが有効になっている場合、アプリケーションキーのシークレットは作成時に一度表示されるだけであり、セキュリティ上の理由から後で取得することはできません。 -アプリケーションの保護と安全性を高めるために、アプリケーションキーに認可スコープを指定して、より細かい権限を定義し、アプリケーションが Datadog のデータにアクセスできる範囲を最小化することが可能です。これにより、アプリケーションに対するきめ細かなアクセス制御が可能になり、余計なアクセスを制限することでセキュリティの脆弱性を最小限に抑えることができます。例えば、ダッシュボードを読むだけのアプリケーションには、ユーザーを管理したり、組織のデータを削除したりするための管理者権限は必要ありません。 +#### 新しい組織の場合 {#for-new-organizations} -アプリケーションキーのスコープに関する推奨されるベストプラクティスは、アプリケーションが意図したとおりに機能するために必要な最小限の特権と最小限の権限をキーに与えることです。スコープされたアプリケーションキーには、ユーザーが指定したスコープのみが与えられ、それ以外の追加的な許可は与えられません。アプリケーションキーの認可スコープはいつでも変更できますが、 その変更がアプリケーションの既存の機能やアクセスにどのような影響を及ぼすかを考慮してください。 +2025 年 8 月 20 日より後に作成された新しい親組織 (およびその子組織) のすべてのアプリケーションキーでは、デフォルトでOTRモードが有効になっています。この設定は恒久的であり、変更できません。 + +#### 既存の組織の場合 {#for-existing-organizations} + +組織の管理者は、[**組織設定** > **アプリケーションキー**][2] から、OTR モードを有効または無効にすることができます。OTR モードを有効にした後: + +- アプリケーションキーのシークレットは、作成時に一度表示されるだけです +- それらを UI または API を通じて再取得することはできません +- この設定は、有効にした後 3 か月の間、組織の管理者によってオンまたはオフに切り替えることができます +- 連続して 3 か月間有効の状態が継続すると、OTR モードは恒久的になり、トグルは削除されます。 + +**権限**: ユーザーが自分の組織の OTR モードを有効または無効にするには、`org_app_keys_write` と `org_management` の両方の権限を付与されている必要があります。 + +### スコープ {#scopes} + +アプリケーションをより良く保護し、安全性を確保するには、アプリケーションキーにスコープを指定して、より詳細な権限を定義し、アプリケーションから Datadog データへのアクセスを最小限に抑えることができます。これにより、アプリケーションに対する細かいアクセス制御が可能になり、余分なアクセスを制限することでセキュリティの脆弱性を最小限に抑えることができます。たとえば、ダッシュボードを読み取るだけのアプリケーションの場合、ユーザーを管理したり組織のデータを削除したりするための管理者権限は不要です。 + +アプリケーションキーのスコープ設定に関して推奨されるベストプラクティスは、アプリケーションが意図通りに機能するために必要な最小限の特権と権限をキーに付与することです。スコープ設定したアプリケーションキーに付与されるスコープは、ユーザーによって指定されるものだけであり、他の追加の権限は付与されません。アプリケーションキーの認証スコープはいつでも変更できますが、その変更がアプリケーションの既存の機能やアクセスにどのように影響するかを考慮してください。 **注:** -- アプリケーションキーの作成または編集の[権限][4]を持つユーザーまたはサービスアカウントは、アプリケーションキーのスコープを行うことができます。ユーザーは自分のアプリケーションキーをスコープするためには `user_app_keys` 権限、または自分の組織内の任意のユーザーが所有するアプリケーションキーをスコープするためには `org_app_keys_write` 権限が必要です。サービスアカウントのアプリケーションキーをスコープするには、`service_account_write` 権限が必要です。 +- アプリケーションキーを作成または編集する[権限][3] を付与されているユーザーまたはサービスアカウントは、アプリケーションキーのスコープを設定できます。ユーザーが自分のアプリケーションキーのスコープを設定するには、`user_app_keys` の権限が必要です。または、ユーザーが組織内の任意のユーザーが所有するアプリケーションキーのスコープを設定するには、`org_app_keys_write` の権限が必要です。ユーザーがサービスアカウントのアプリケーションキーのスコープを設定するには、`service_account_write` の権限が必要です。 - アプリケーションの所有者は、必要な権限が不足している場合、自分が持っていない認可スコープでアプリケーションキーをスコープしても、アプリケーションを認可することができません。 -- アプリケーションキーの書き込みやアプリケーションの認可時に権限が不足していることによるエラーは、`403 Forbidden` エラーを表示します。様々なエラーレスポンスについての詳細は、[Datadog API][5] のドキュメントを参照してください。 +- アプリケーションキー作成時やアプリケーション認証時に権限が不足しているためにエラーが発生した場合、`403 Forbidden` エラーが表示されます。さまざまなエラー応答について詳しくは、[Datadog API][4] のドキュメントに記載されています。 - ユーザーのロールや権限が変更されても、アプリケーションキーに指定された認可スコープは変更されません。 -## クライアントトークン +### アクション API アクセス {#actions-api-access} + +アクション API には以下のものが含まれます。 +- [App Builder][5] +- [Actions Connections][6] +- [Workflow Automation][7] + +これらの API でアプリケーションキーを使用するには、アプリケーションキーに対するアクション API アクセスを有効にする必要があります。これは、[UI により][2]、または [API][21] により設定できます。デフォルトの場合、アプリケーションキーをこれらの API で使用することはできません。 + +{{< img src="account_management/click-enable-actions-api-access.png" alt="[アクション API アクセスを有効にする] をクリックします。" style="width:80%;" >}} + +**注**: {{< ui >}}Last used{{< /ui >}} セクションが表示されるのは、アカウントで [Audit Trail が有効][22]に なっていて、かつ [`Audit Trail Read`][23] の権限が付与されている場合だけです。 + +## クライアントトークン {#client-tokens} セキュリティ上の理由から、API キーはクライアント側で公開されるため、ブラウザ、モバイル、TV アプリからのデータ送信には使用できません。その代わりに、エンドユーザー向けのアプリケーションでは、クライアントトークンを使用して Datadog にデータを送信します。 -以下の例を含む、いくつかのタイプのクライアントが、クライアントトークンを必要とするデータを送信します。 -- [Web ブラウザ][6]、[Android][7]、[iOS][8]、[React Native][9]、[Flutter][10]、[Roku][11] のログコレクターがログを送信します。 -- [リアルユーザーモニタリング][12]アプリケーションがイベントとログを送信する。 + 以下の例を含む、いくつかのタイプのクライアントが、クライアントトークンを必要とするデータを送信します。 +- [Web ブラウザ][8]、[Android][9]、[iOS][10]、[React Native][11]、[Flutter][12]、[Roku][13] のログコレクターがログを送信します。 +- [Real User Monitoring][14]アプリケーションがイベントとログを送信します。 -クライアントトークンは、組織に固有のものです。クライアントトークンを管理するには、**Organization Settings** に移動し、**Client Tokens** タブをクリックします。 +クライアントトークンは、組織ごとに固有です。クライアントトークンを管理するには、{{< ui >}}Organization Settings{{< /ui >}} に移動して、{{< ui >}}Client Tokens{{< /ui >}} タブをクリックします。 **注**: クライアントトークンを作成したユーザーが非アクティブ化されても、クライアントトークンはアクティブなままです。 -## API キーまたはクライアントトークンを追加する +## API キーまたはクライアントトークンを追加する {#add-an-api-key-or-client-token} Datadog API キーまたはクライアントトークンを追加するには -1. 組織設定に移動し、[**API keys**][1] または [**Client Tokens**][13] タブをクリックします。 -2. 作成するものに応じて、**New Key** (新しいキー) または **New Client Token** (新しいクライアントトークン) ボタンをクリックします。 +1. 組織の設定に移動し、[**API keys**][1] または [**Client Tokens**][15] タブをクリックします。 +2. 何を作成するかに応じて、{{< ui >}}New Key{{< /ui >}} または {{< ui >}}New Client Token{{< /ui >}} のボタンをクリックします。 3. キーまたはトークンの名前を入力します。 -4. **Create API key** (API キーの作成) または **Create Client Token** (クライアントトークンの作成) をクリックします。 +4. {{< ui >}}Create API key{{< /ui >}} または {{< ui >}}Create Client Token{{< /ui >}} をクリックします。 -{{< img src="account_management/api-key.png" alt="Datadog で組織の API Keys ページに移動する" style="width:80%;" >}} +{{< img src="account_management/api-key.png" alt="Datadog の中の、自分の組織の API キーのページに移動します。" style="width:80%;" >}} **注:** - 組織には、少なくとも最低 1 つ、最大 50 の API キーが必要です。 - キー名は、組織全体で一意である必要があります。 -## API キーまたはクライアントトークンを削除する +## API キーまたはクライアントトークンを削除する {#remove-api-keys-or-client-tokens} + +Datadog API キーまたはクライアントトークンを削除するには、キーまたはトークンのリストに移動し、削除するキーまたはトークンの横にある {{< ui >}}Delete{{< /ui >}}{{< img src="icons/delete.png" inline="true" style="width:14px;">}} アイコンをクリックします。 -Datadog API キーまたはクライアントトークンを削除するには、キーまたはトークンのリストに移動し、削除するキーまたはトークンの横にある **Revoke** のある**ごみ箱**アイコンをクリックします。 +## アプリケーションキーを追加する {#add-application-keys} -## アプリケーションキーを追加する +Datadog アプリケーションキーを追加するには、[**組織の設定** > **アプリケーションキー**][2] に移動します。アプリケーションキーを作成する[権限][3] がある場合は、{{< ui >}}New Key{{< /ui >}}をクリックします。 -Datadog アプリケーションキーを追加するには、[**Organization Settings** > **Application Keys**][2] に移動します。アプリケーションキーを作成するための[権限][4]がある場合は、**New Key** をクリックします。 +{{< img src="account_management/app-key.png" alt="Datadog の中の、自分の組織のアプリケーションキーのページに移動します。" style="width:80%;" >}} -{{< img src="account_management/app-key.png" alt="Datadog で組織の Application Keys ページに移動する" style="width:80%;" >}} +{{< site-region region="ap2,gov,gov2" >}} +
アプリケーションキーは、作成後すぐに、安全性が確保される方法で保管してください。シークレットを後で取得することはできません。
+{{< /site-region >}} + +
組織で 1 回限り読み取り (OTR) モードが有効になっている場合、アプリケーションキーは、作成後すぐに、安全性が確保される方法で保管してください。シークレットを後で取得することはできません。
**注:** - アプリケーションキー名を空白にすることはできません。 -## アプリケーションキーを削除する +## アプリケーションキーを削除する {#remove-application-keys} + +Datadog アプリケーションキーを削除するには、[**組織の設定** > **アプリケーションキー**][2] に移動します。アプリケーションキーを作成および管理する[権限][3] が付与されている場合は、自分のキーが表示され、取り消すキーの横にある {{< ui >}}Revoke{{< /ui >}} をクリックできます。組織アプリケーションキーのすべてを管理する権限が付与されている場合は、取り消すキーを検索し、その横にある {{< ui >}}Revoke{{< /ui >}} をクリックできます。 + +## キーの伝播遅延と最終整合性 {#key-propagation-delay-and-eventual-consistency} + +Datadog の API とアプリケーションキーは、最終整合性モデルに従います。Datadog は分散型のシステムなので、キーの作成や取り消しなどの更新が完全に伝播するまでに数秒かかる場合があります。 + +その結果として、以下のようになります。 + +- 重要なワークフローでは、新しい API またはアプリケーションキーをすぐに使用しないようにしてください。伝播の時間を考慮して数秒間待ってください。伝播時間枠内での一時的なエラーを処理するために、短い指数関数的バックオフを伴う再試行戦略を実装できます。 +- API キーがアクティブで使用可能かどうかを検証するには、[/api/v1/validate][16] エンドポイントを呼び出してください。 +- アプリケーションキーがアクティブであることを確認するには、適切なキー ペアを使用して `/api/v2/validate_keys` エンドポイントを利用してください。 -Datadog アプリケーションキーを削除するには、[**Organization Settings** > **Application Keys**][2] に移動します。アプリケーションキーを作成、管理するための[権限][4]がある場合は、自分のキーを表示して、取り消すキーの横にある **Revoke** をクリックできます。すべての組織アプリケーションキーを管理する権限がある場合は、取り消すキーを検索して、その横にある **Revoke** をクリックできます。 +新しく作成されたキーを、それが完全に伝播する前に使用しようとすると、403 Forbidden や 401 Unauthorized などの一時的な認証エラーが発生する可能性があります。 -## アプリケーションキーのスコープ +## アプリケーションキーのスコープ {#scope-application-keys} -アプリケーションキーの認可スコープを指定するには、[Datadog API にリクエスト][5]するか、UI を使用してアプリケーションキーを作成または編集してください。 スコープは、[現在のユーザー][14]または[サービスアカウント][15]が所有するアプリケーションキーに対して指定することができます。このフィールドが指定されていない場合、アプリケーションキーはデフォルトで、作成したユーザーと同じスコープと権限をすべて持っています。 +アプリケーションキーの認証スコープを指定するには、[Datadog API][4] または UI にリクエストを送信して、アプリケーションキーを作成または編集してください。スコープは、[現在のユーザー][17] または [サービスアカウント][18] が所有するアプリケーションキーに対して指定できます。このフィールドが指定されていない場合、アプリケーションキーのスコープと権限は、デフォルトとして、それらを作成したユーザーと同じスコープおよび権限になります。 **注:** - スコープ名の大文字と小文字は区別されます。 -## 複数の API キーの使用 +## 複数の API キーの使用 {#using-multiple-api-keys} -組織に複数の API キーを設定することを検討します。たとえば、デプロイ方法ごとに異なる API キーを使用します(たとえば、AWS の Kubernetes に Agent をデプロイする用、Chef を使用してオンプレミスでデプロイする用、ダッシュボードやモニターを自動化する Terraform スクリプト用、ローカルでデプロイする開発者用など)。 +組織に複数の API キーを設定することを検討してください。たとえば、デプロイ方法ごとに異なる API キーを使用します (たとえば、AWS の Kubernetes に Agent をデプロイする用、Chef を使用してオンプレミスでデプロイする用、ダッシュボードやモニターを自動化する Terraform スクリプト用、ローカルでデプロイする開発者用など)。 複数の API キーを使用することで、セキュリティ対策の一環としてキーをローテーションしたり、特定のキーが誤って公開された場合やそのキーに関連づけられたサービスを停止したい場合に取り消すことができます。 -API キーが定められた上限の 50 を超えて必要な場合は、上限の引き上げについて[サポートチーム][16]までお問い合わせください。 +API キーが定められた上限の 50 を超えて必要な場合は、上限の引き上げについて[サポートチーム][19] までお問い合わせください。 -## ユーザーアカウントの無効化 +## ユーザーアカウントを無効にする {#disabling-a-user-account} -ユーザーのアカウントが無効になった場合、ユーザーが作成したアプリケーションキーはすべて取り消されます。無効なアカウントによって作成された API キーは削除されず、引き続き有効です。 +ユーザーのアカウントが無効にされると、そのユーザーが作成したアプリケーションキーはすべて取り消されます。無効にされたアカウントによって作成された API キーは削除されず、有効なままです。 -## キーの転送 +## キーの転送 {#transferring-keys} -セキュリティ上の理由から、Datadog はアプリケーションキーをユーザー間で転送しません。アプリケーションキーを共有する必要がある場合は、[サービスアカウント][17]を使用します。 +セキュリティ上の理由から、Datadog がアプリケーションキーをユーザー間で転送することはありません。アプリケーションキーを共有する必要がある場合は、[サービスアカウント][20] を使用してください。 -## API キーやアプリケーションキーが流出した場合の対処法 +## API キーやアプリケーションキーが流出した場合の対処法 {#what-to-do-if-an-api-or-application-key-was-exposed} -プライベートキーが漏洩したり、一般に公開された場合、アカウントのセキュリティを確保するために、できるだけ早く措置を講じる必要があります。GitHub などの公開サイトからキーの入ったファイルを削除しても、それがすでに他の者によってアクセスされていないことを保証するものでは**ありません**。 +プライベートキーが侵害されたり公開されたりした場合は、アカウントのセキュリティを確保するために、できるだけ早く対策を講じる必要があります。GitHub のような公開サイトからキーを含むファイルを削除しても、第三者から既にアクセスされてはいないことが保証されるわけでは**ありません**。 以下の手順で、アカウントを保護してください。 -**注:** 有効なキーを無効にすると、サービスに影響を与える可能性があります。使用範囲が広い場合や未確定の場合は、対象となるキーを無効にする**前に**、手順 2~5 の検討をお願いします。 +**注:** アクティブなキーを無効にすると、サービスに影響を与える可能性があります。使用範囲が大きい場合や不明の場合は、影響を受けるキーを無効にする**前に**、ステップ 2~5 を検討してください。 1. 影響を受けるキーを無効にします。 2. 一般にアクセス可能なファイルから、プライベートキーを含むコードを削除します。 @@ -119,25 +169,32 @@ API キーが定められた上限の 50 を超えて必要な場合は、上限 - 新しいリソース - ロールまたは権限の変更 -異常な行動が確認された場合、またはアカウントの安全確保にさらに支援が必要な場合は、[Datadog サポート][16]に連絡してください。 +異常な行動が確認された場合、またはアカウントの安全確保にさらに支援が必要な場合は、[Datadog サポート][19] に連絡してください。 -## トラブルシューティング +## トラブルシューティング {#troubleshooting} -ご不明な点は、[Datadog のサポートチーム][16]までお問合せください。 +お困りですか?[Datadog サポート][19] にお問い合わせください。 [1]: https://app.datadoghq.com/organization-settings/api-keys -[2]: https://app.datadoghq.com/access/application-keys -[4]: /ja/account_management/rbac/permissions -[5]: /ja/api/latest/key-management/ -[6]: /ja/logs/log_collection/javascript/ -[7]: /ja/logs/log_collection/android/ -[8]: /ja/logs/log_collection/ios/ -[9]: /ja/logs/log_collection/reactnative/ -[10]: /ja/logs/log_collection/flutter/ -[11]: /ja/logs/log_collection/roku/ -[12]: /ja/real_user_monitoring/ -[13]: https://app.datadoghq.com/organization-settings/client-tokens -[14]: /ja/api/latest/key-management/#create-an-application-key-for-current-user -[15]: /ja/api/latest/service-accounts/ -[16]: /ja/help/ -[17]: /ja/account_management/org_settings/service_accounts/ \ No newline at end of file +[2]: https://app.datadoghq.com/organization-settings/application-keys +[3]: /ja/account_management/rbac/permissions +[4]: /ja/api/latest/key-management/ +[5]: /ja/api/latest/app-builder/ +[6]: /ja/api/latest/action-connection/ +[7]: /ja/api/latest/workflow-automation/ +[8]: /ja/logs/log_collection/javascript/ +[9]: /ja/logs/log_collection/android/ +[10]: /ja/logs/log_collection/ios/ +[11]: /ja/logs/log_collection/reactnative/ +[12]: /ja/logs/log_collection/flutter/ +[13]: /ja/logs/log_collection/roku/ +[14]: /ja/real_user_monitoring/ +[15]: https://app.datadoghq.com/organization-settings/client-tokens +[16]: /ja/api/latest/authentication/#validate-api-key +[17]: /ja/api/latest/key-management/#create-an-application-key-for-current-user +[18]: /ja/api/latest/service-accounts/ +[19]: /ja/help/ +[20]: /ja/account_management/org_settings/service_accounts/ +[21]: /ja/api/latest/action-connection/#register-a-new-app-key +[22]: /ja/account_management/audit_trail/#setup +[23]: /ja/account_management/rbac/permissions/#compliance \ No newline at end of file diff --git a/content/ja/agent/configuration/agent-commands.md b/content/ja/agent/configuration/agent-commands.md index 98c52edd971..b5a9d97f13d 100644 --- a/content/ja/agent/configuration/agent-commands.md +++ b/content/ja/agent/configuration/agent-commands.md @@ -1,86 +1,85 @@ --- algolia: tags: - - Agent status コマンド + - agent status command aliases: - /ja/agent/faq/agent-status-and-information - /ja/agent/faq/start-stop-restart-the-datadog-agent - /ja/agent/faq/agent-commands - /ja/agent/guide/agent-commands -description: Datadog Agent を起動・停止・トラブルシュートし、Agent を管理するための Agent コマンドの完全なリファレンスです。 +description: Datadog Agent の起動、停止、トラブルシューティング、および管理に関する完全なリファレンスです。 further_reading: - link: /agent/troubleshooting/ tag: ドキュメント text: Agent のトラブルシューティング title: Agent のコマンド --- -
-service ラッパーコマンドを使用できない Linux ベースのシステムをご使用の場合は、代替リストを参照してください。 +Linux ベースのシステムで service ラッパーコマンドが利用できない場合は、代替リストをご参照ください
-## Agent の起動/停止/再起動 +## Agent の起動/停止/再起動 {#start-stop-and-restart-the-agent} -### Agent の起動 +### Agent の起動 {#start-the-agent} Datadog Agent を起動するためのコマンドを以下に示します。 | プラットフォーム | コマンド | |------------|--------------------------------------------------------------------| | AIX | `startsrc -s datadog-agent` | -| Linux | OS については、[Agent に関するドキュメント][1]をご参照ください。 | -| Docker | [インストールコマンド][2]を使用します。 | +| Linux | ご使用の OS に対応する [Agent documentation][1] を参照してください。 | +| Docker | [installation command][2] を使用します。 | | Kubernetes | `kubectl create -f datadog-agent.yaml` | -| macOS | `launchctl start com.datadoghq.agent` *または* systray アプリを使用 | +| macOS | `launchctl start com.datadoghq.agent` * または * システムトレイアプリを通じた | | ソース | `sudo service datadog-agent start` | -| Windows | [Windows Agent ドキュメントを参照してください][3]。 | +| Windows | [Windows Agent documentation][3] を参照してください。 | -### Agent の停止 +### Agent を停止します {#stop-the-agent} Datadog Agent を停止するためのコマンドを以下に示します。 | プラットフォーム | コマンド | |------------|----------------------------------------------------------------------------------| | AIX | `stopsrc -s datadog-agent` | -| Linux | OS については、[Agent に関するドキュメント][1]をご参照ください。 | -| Docker | `docker exec -it <コンテナ名> agent stop` | -| Kubernetes | `kubectl delete pod `—注: ポッドは自動的にリスケジュールされます | -| macOS | `launchctl stop com.datadoghq.agent` *または* systray アプリを使用 | +| Linux | ご使用の OS に対応する [Agent documentation][1] を参照してください。 | +| Docker | `docker exec -it agent stop` | +| Kubernetes | `kubectl delete pod `注意: Pod は自動的に再スケジュールされます | +| macOS | `launchctl stop com.datadoghq.agent` * またはシステムトレイアプリを通じた* | | ソース | `sudo service datadog-agent stop` | -| Windows | [Windows Agent ドキュメントを参照してください][3]。 | +| Windows | [Windows Agent documentation][3] を参照してください。 | -### Agent を再起動します。 +### Agent を再起動します {#restart-the-agent} Datadog Agent を再起動するためのコマンドを以下に示します。 | プラットフォーム | コマンド | |------------|----------------------------------------------------------------------------------| -| Linux | OS については、[Agent に関するドキュメント][1]をご参照ください。 | -| Docker | [インストールコマンド][2]を使用します。 | -| Kubernetes | `kubectl delete pod `—注: ポッドは自動的にリスケジュールされます | -| macOS | 以下で Agent を停止し、起動します。
`launchctl stop com.datadoghq.agent`
`launchctl start com.datadoghq.agent`
または systray アプリを使用します | -| ソース | サポートされないプラットフォーム | -| Windows | [Windows Agent ドキュメントを参照してください][3]。 | +| Linux | ご使用の OS に対応する [Agent documentation][1] を参照してください。 | +| Docker | [installation command][2] を使用します。 | +| Kubernetes | `kubectl delete pod `注意: Pod は自動的に再スケジュールされます | +| macOS | Agent を停止してから、次のコマンドで起動:
`launchctl stop com.datadoghq.agent`
`launchctl start com.datadoghq.agent`
または、システムトレイアプリを使用 | +| ソース | *サポートされないプラットフォーム* | +| Windows | [Windows Agent documentation][3] を参照してください。 | -## Agent のステータスと情報 +## Agent のステータスと情報 {#agent-status-and-information} -### サービスのステータス +### サービスのステータス {#service-status} Datadog Agent のステータスを表示するためのコマンドを以下に示します。 | プラットフォーム | コマンド | |-----------------|-------------------------------------------------------------------------------| | AIX | `lssrc -s datadog-agent` | -| Linux | OS については、[Agent に関するドキュメント][1]をご参照ください。 | +| Linux | ご使用の OS に対応する [Agent documentation][1] を参照してください。 | | Docker (Debian) | `sudo docker exec -it s6-svstat /var/run/s6/services/agent/` | | Kubernetes | `kubectl exec -it -- s6-svstat /var/run/s6/services/agent/` | -| macOS | `launchctl list com.datadoghq.agent` *または* systray アプリを使用 | -| ソース | `sudo service datadog-agent status` | -| Windows | [Windows Agent ドキュメント][4] を参照してください。 | +| macOS | `launchctl list com.datadoghq.agent` システムアプリを通じた * または * | +| ソース | `sudo service datadog-agent status` | +| Windows | [Windows Agent documentation][4] を参照してください。 | | [Cluster Agent (Kubernetes)][5] | `datadog-cluster-agent status` | -### Agent の情報 +### Agent の情報 {#agent-information} Datadog Agent と有効なインテグレーションのステータスを表示するためのコマンドを以下に示します。 @@ -90,9 +89,9 @@ Datadog Agent と有効なインテグレーションのステータスを表示 | Linux | `sudo datadog-agent status` | | Docker | `sudo docker exec -it agent status` | | Kubernetes | `kubectl exec -it -- agent status` | -| macOS | `datadog-agent status` または [Web GUI][6] から | +| macOS | `datadog-agent status` または [web GUI][6] を通じて | | ソース | `sudo datadog-agent status` | -| Windows | [Windows Agent ドキュメント][4] を参照してください。 | +| Windows | [Windows Agent documentation][4] を参照してください。 | | [Cluster Agent (Kubernetes)][5] | `datadog-cluster-agent status` | 以下に示すように、適切に構成されたインテグレーションは、**Running Checks** の下に警告やエラーなしで表示されます。 @@ -109,43 +108,46 @@ Running Checks Average Execution Time : 0ms ``` -## その他のコマンド +## その他のコマンド {#other-commands} + +Agent のコマンドラインインターフェースはサブコマンドベースです。利用可能なサブコマンドのリストを表示するには、次のコマンドを実行してください: -Agent のコマンドライン インターフェイスはサブコマンド ベースです。利用可能なサブコマンドの一覧を表示するには、次を実行します: ```shell -<エージェント_バイナリ> --help + --help ``` サブコマンドを実行するには、Agent バイナリを呼び出す必要があります: + ```shell -<エージェントバイナリ> <サブコマンド> <オプション> + ``` -一部のオプションにはフラグとオプションがあり、`--help` で詳細に説明されています。たとえば、`check` サブコマンドのヘルプを使用するには、次を実行します。 +いくつかのオプションには、`--help` の下に詳細なフラグとオプションがあります。たとえば、`check` サブコマンドのヘルプを表示します。 + ```shell -<エージェント_バイナリ> check --help + check --help ``` -| サブコマンド | 注 | +| サブコマンド | 備考 | |-------------------|-----------------------------------------------------------------------------| -| `check` | 指定されたチェックを実行します。 | -| `config` | [ランタイム構成管理][7]。 | -| `configcheck` | 実行中の Agent のうち、ロード済みで解決済みの構成をすべて出力します。 | -| `diagnose` | システムに対して接続診断を実行します。 | -| `flare` | [フレアを収集して Datadog に送信][8]。 | -| `health` | 現在の Agent の状態を出力します。 | -| `help` | 任意のコマンドのヘルプ。 | -| `hostname` | Agent が使用するホスト名を出力します。 | -| `import` | 以前のバージョンの Agent から構成ファイルをインポートして変換します。 | -| `jmx` | JMX トラブルシューティング。 | -| `launch-gui` | Datadog Agent GUI を起動します。 | -| `restart-service` | サービスコントロールマネージャー内で Agent を再起動します。Windows のみです。 | -| `start-service` | サービスコントロールマネージャー内で Agent を起動します。Windows のみです。 | -| `stream-logs` | 実行中の Agent が処理するログをストリーミング表示します。 | -| `stopservice` | サービスコントロールマネージャー内で Agent を停止します。Windows のみです。 | -| `version` | バージョン情報を出力します。 | - -## 参考資料 +| `check` | 指定されたチェックを実行します。 | +| `config` | [ランタイム構成管理][7]。 | +| `configcheck` | 実行中の Agent のうちロード済みかつ解決済みの構成をすべて出力します。 | +| `diagnose` | システムで接続診断を実行します。 | +| `flare` | [フレアを収集して Datadog に送信][8]。 | +| `health` | 現在の Agent の状態を出力します。 | +| `help` | 任意のコマンドのヘルプ。 | +| `hostname` | Agent が使用するホスト名を出力します。 | +| `import` | 以前のバージョンの Agent から構成ファイルをインポートして変換します。| +| `jmx` | JMX トラブルシューティング。 | +| `launch-gui` | Datadog Agent GUI を起動します。 | +| `restart-service` | サービスコントロールマネージャー内で Agent を再起動します。Windows のみ。 | +| `start-service` | サービスコントロールマネージャー内で Agent を起動します。Windows のみ。 | +| `stream-logs` | 実行中の Agent が処理しているログをストリーミングします。 | +| `stopservice` | サービスコントロールマネージャー内で Agent を停止します。Windows のみ。 | +| `version` | バージョン情報を出力します。 | + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/agent/supported_platforms/windows.md b/content/ja/agent/supported_platforms/windows.md index 52ca1363f09..586f8dae9fb 100644 --- a/content/ja/agent/supported_platforms/windows.md +++ b/content/ja/agent/supported_platforms/windows.md @@ -9,150 +9,150 @@ algolia: aliases: - /ja/guides/basic_agent_usage/windows/ - /ja/agent/basic_agent_usage/windows/ -description: Windows プラットフォームにおける Datadog Agent の基本機能。 +description: Windows プラットフォームの Datadog Agent の基本機能 further_reading: - link: /logs/ - tag: Documentation + tag: ドキュメント text: ログの収集 - link: /infrastructure/process/ - tag: Documentation + tag: ドキュメント text: プロセスの収集 - link: /tracing/ - tag: Documentation + tag: ドキュメント text: トレースの収集 - link: /agent/architecture/#agent-architecture - tag: Documentation - text: Agent のアーキテクチャに関する詳細 + tag: ドキュメント + text: Agent のアーキテクチャを詳しく見る - link: /agent/configuration/network#configure-ports - tag: Documentation - text: インバウンドポートの設定 + tag: ドキュメント + text: インバウンドポートの構成 - link: /agent/guide/windows-agent-ddagent-user - tag: Documentation - text: Datadog Windows Agent ユーザーの詳細 + tag: ドキュメント + text: Datadog Windows Agent ユーザーについて詳しく学ぶ platform: Windows title: Windows --- ## 概要 {#overview} -このページでは、Windows 用 Datadog Agent の基本機能の概要を説明します。Agent をまだインストールしていない場合は、下記のインストール手順を参照するか、[アプリ内の指示][1]に従ってください。 +このページでは、Datadog Agent for Windows の基本的な機能について概説します。まだ Agent をインストールしていない場合は、下記のインストール手順を参照するか、[アプリ内の指示に従ってください][1]。 -サポートされている Windows バージョンの完全なリストについては、[サポート対象プラットフォーム][15] を参照してください。 +サポートされている Windows バージョンの全一覧は、[サポートされているプラットフォーム][15]を参照してください。 -##インストール {#installation} +## インストール {#installation} -Windows ホストに Datadog Agent をインストールするには、[Fleet Automation 内のガイド付きアプリ内フロー][16]に従い、インストールコマンドをコピーして実行します。Datadog Agent は `ddagentuser` の下で実行されます。詳細については、[Datadog Windows Agent ユーザー][17]のドキュメントを参照してください。 +Windows ホストに Datadog Agent をインストールするには、[Fleet Automation 内のガイド付きアプリ内フロー][16]に従い、インストールコマンドをコピーして実行してください。Datadog Agent は `ddagentuser` の下で実行されます。詳細については、[Datadog Windows Agent ユーザー][17]のドキュメントを参照してください。 -{{< img src="/agent/basic_agent_usage/windows_img2_july_25.png" alt="Windows ホストへの Datadog Agent のアプリ内インストール手順。" style="width:90%;">}} +{{< img src="/agent/basic_agent_usage/windows_img2_july_25.png" alt="Windows ホストの Datadog Agent のアプリ内インストール手順。" style="width:90%;">}} -## その他のインストール方法 {#alternative-installation-methods} +## 代替インストール方法 {#alternative-installation-methods} -### Agent Manager GUI を使用したインストール {#install-with-the-agent-manager-gui} +### Agent Manager GUI を使用するインストール {#install-with-the-agent-manager-gui} -
Agent のデフォルトのインストール場所は %ProgramFiles%\Datadog\Datadog Agent です。カスタムのインストール場所を使用する場合は、Datadog ファイル用に Datadog サブディレクトリを指定してください。
+
Agent のデフォルトのインストール先は %ProgramFiles%\Datadog\Datadog Agentです。カスタムインストール場所を使用する場合は、Datadog ファイルを収容する Datadog サブディレクトリを指定してください。
-1. [Datadog Agent インストーラー][400]をダウンロードして、最新バージョンの Agent をインストールします。 -2.`datadog-agent-7-latest.amd64.msi` を開いてインストーラーを実行します。プロンプトが表示されたら、管理者資格情報を入力します。 -3.プロンプトに従い、使用許諾契約に同意して、[Datadog API キー][500]を入力します。 +1. [Datadog Agent インストーラー][400]をダウンロードし、最新バージョンの Agent をインストールします。 +2. `datadog-agent-7-latest.amd64.msi`を開いてインストーラーを実行します。プロンプトが表示されたら、管理者の資格情報を入力します。 +3. プロンプトに従ってライセンス契約に同意し、[Datadog API キー][500]を入力します。 -インストールが完了すると、Datadog Agent Manager を起動するオプションが表示されます。 +インストールが終了したら、オプションから Datadog Agent Manager を起動できます。 -####インストール設定オプション {#installation-configuration-options} +#### インストール構成オプション {#installation-configuration-options} -下記の各設定オプションは、Windows に Agent をインストールする際に、コマンドラインのプロパティとして追加できます。その他の Agent 設定オプションについては、[その他の Agent 設定オプション](#more-agent-configuration-options)を参照してください。 +Windows に Agent をインストールする際、下記の各構成オプションをコマンドラインのプロパティとして追加することができます。他の Agent 構成オプションについては、[Agent 構成オプションの詳細](#more-agent-configuration-options)を参照してください。 -|変数 | 型 | 説明 | +| 変数 | 型 | 説明 | |---------------------------- |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `APIKEY` | 文字列 | 設定ファイルに Datadog API キーを追加します。 | -| `SITE` | 文字列 | Datadog インテークサイトを設定します。例: `SITE=datadoghq.com` | -| `TAGS` | 文字列 | 設定ファイルで割り当てるタグのカンマ区切りリスト。例: `TAGS="key_1:val_1,key_2:val_2"` | -| `HOSTNAME` | 文字列 | Agent が Datadog に報告するホスト名を設定します (実行時に計算されたホスト名を上書きします)。 | -| `DDAGENTUSER_NAME` | 文字列 | Agent のインストール中に使用されるデフォルトの `ddagentuser` ユーザー名を上書きします _(v6.11.0+)_。[Datadog Windows Agent ユーザーの詳細][3]。 | -| `DDAGENTUSER_PASSWORD` | 文字列 | Agent のインストール中に `ddagentuser` ユーザーに対して生成された暗号的に安全なパスワードを上書きします _(v6.11.0+)_。ドメインサーバーへのインストールでは指定する必要があります。[Datadog Windows Agent ユーザーの詳細][3]。 | -| `APPLICATIONDATADIRECTORY` | パス | 設定ファイルのディレクトリツリーに使用するディレクトリを上書きします。新規インストール時にのみ指定可能です。アップグレード時には無効です。デフォルト: `C:\ProgramData\Datadog`。_(v6.11.0+)_ | -| `PROJECTLOCATION` | パス | バイナリファイルのディレクトリツリーに使用するディレクトリを上書きします。新規インストール時にのみ指定可能です。アップグレード時には無効です。デフォルト: `%ProgramFiles%\Datadog\Datadog Agent`。_(v6.11.0+)_

デフォルトのディレクトリを上書きする場合は、Datadog ファイル用の `Datadog` サブディレクトリを必ず指定してください。 | +| `APIKEY` | 文字列 | Datadog API キーを構成ファイルに追加します。 | +| `SITE` | 文字列 | Datadog の取り込みサイトを設定します。例: `SITE=datadoghq.com` | +| `TAGS` | 文字列 | 構成ファイルで割り当てるタグのカンマ区切りリスト。例: `TAGS="key_1:val_1,key_2:val_2"` | +| `HOSTNAME` | 文字列 | Agent から Datadog に報告されるホスト名を設定します (実行時に計算されたホスト名をオーバーライド)。 | +| `DDAGENTUSER_NAME` | 文字列 | Agent インストール時に使用されるデフォルトの `ddagentuser` ユーザー名をオーバーライドします _(v6.11.0 以上)_。[Datadog Windows Agent ユーザーについての詳細][3]。 | +| `DDAGENTUSER_PASSWORD` | 文字列 | `ddagentuser` ユーザーのために生成された暗号的に安全なパスワードをオーバーライドします _(v6.11.0 以上)_。ドメインサーバーへのインストールには必ず指定する必要があります。[Datadog Windows Agent ユーザーについての詳細][3]。 | +| `APPLICATIONDATADIRECTORY` | パス | 構成ファイルのディレクトリツリーに使用するディレクトリを上書きします。初回インストール時のみ指定可能; アップグレードでは無効です。デフォルト: `C:\ProgramData\Datadog`。_(v6.11.0 以上)_ | +| `PROJECTLOCATION` | パス | バイナリファイルのディレクトリツリーに使用するディレクトリを上書きします。初回インストール時のみ指定可能; アップグレードでは無効です。デフォルト: `%ProgramFiles%\Datadog\Datadog Agent`。_(v6.11.0 以上)_

デフォルトのディレクトリを上書きすることを選択した場合は、Datadog ファイルを格納する `Datadog` サブディレクトリを指定してください。 | **注** -- `/qn` オプションは、サイレントインストールを実行します。GUI プロンプトを表示するには、これを削除します。 --一部の Agent バージョンでは、強制的な再起動が発生する場合があります。これを防ぐには、パラメーター `REBOOT=ReallySuppress` を追加します。 --一部の Agent コンポーネントでは、データを収集するためにカーネルドライバーが必要です。コンポーネントにカーネルドライバーが必要かどうかを確認するには、そのドキュメントページを参照するか、関連する Agent 設定ファイルで `kernel driver` を検索してください。 --有効な `datadog.yaml` が見つかった場合、そのファイルは指定されたすべてのコマンドラインオプションよりも優先されます。 +- `/qn` オプションは、サイレントインストールを実行します。GUI プロンプトを表示するには、これを削除してください。 +- 一部の Agent バージョンでは、強制的に再起動が発生する可能性があります。これを防ぐには、パラメーター `REBOOT=ReallySuppress` を追加してください。 +- 一部の Agent コンポーネントはデータを収集するためにカーネルドライバーを必要とします。お使いのコンポーネントにカーネルドライバーが必要かどうかを知るには、そのドキュメントページを参照するか、関連する Agent 構成ファイルで `kernel driver` を検索してください。 +- 有効な `datadog.yaml` が見つかった場合、そのファイルが、指定されているすべてのコマンドラインオプションより優先されます。 -####その他の Agent 設定オプション {#more-agent-configuration-options} +#### その他の Agent 構成オプション {#more-agent-configuration-options} -下記の各設定オプションは、Windows に Agent をインストールする際に、コマンドラインのプロパティとして追加できます。 +Windows に Agent をインストールする際、下記の各構成オプションをコマンドラインのプロパティとして追加することができます。 -**注**: 有効な `datadog.yaml` が見つかった場合、そのファイルは指定されたすべてのコマンドラインオプションよりも優先されます。 +**注**: 有効な `datadog.yaml` が見つかった場合、そのファイルが、指定されているすべてのコマンドラインオプションより優先されます。 -|変数 | 型 | 説明 | +| 変数 | 型 | 説明 | |---------------------------- |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `LOGS_ENABLED` | 文字列 | 設定ファイルでログ収集機能を有効化 (`"true"`) または無効化 (`"false"`) します。ログはデフォルトで無効になっています。 | -| `APM_ENABLED` | 文字列 | 設定ファイルで APM Agent を有効化 (`"true"`) または無効化 (`"false"`) します。APM はデフォルトで有効になっています。 | -| `PROCESS_ENABLED` | 文字列 | 設定ファイルで Process Agent を有効化 (`"true"`) または無効化 (`"false"`) します。Process Agent はデフォルトで無効になっています。 | -| `HOSTNAME_FQDN_ENABLED` | 文字列 | Agent ホスト名への FQDN の使用を有効化 (`"true"`) または無効化 (`"false"`) します。これは、Agent 設定ファイルで `hostname_fqdn` を設定するのと同等です。ホスト名への FQDN の使用はデフォルトで無効になっています。_(v6.20.0+)_ | -| `CMD_PORT` | 数値 | 0 ~ 65534 の有効なポート番号。Datadog Agent はポート 5001 でコマンド API を公開します。そのポートが既に別のプログラムで使用されている場合は、ここでデフォルトを上書きできます。 | -| `PROXY_HOST` | 文字列 | (プロキシを使用する場合) プロキシホストを設定します。[Datadog Agent でのプロキシの使用に関する詳細][4]。 | -| `PROXY_PORT` | 数値 | (プロキシを使用する場合) プロキシポートを設定します。[Datadog Agent でのプロキシの使用に関する詳細][4]。 | -| `PROXY_USER` | 文字列 | (プロキシを使用する場合) プロキシユーザーを設定します。[Datadog Agent でのプロキシの使用に関する詳細][4]。 | -| `PROXY_PASSWORD` | 文字列 | (プロキシを使用する場合) プロキシパスワードを設定します。プロセス/コンテナ Agent の場合、この変数は認証パスワードを渡すために必要であり、名前を変更することはできません。[Datadog Agent でのプロキシの使用に関する詳細][4]。| -| `EC2_USE_WINDOWS_PREFIX_DETECTION` | ブール値 | EC2 上の Windows ホストに EC2 インスタンス ID を使用します。 _(v7.28.0+)_ | +| `LOGS_ENABLED` | 文字列 | 構成ファイルでログ収集機能を有効 (`"true"`) または無効 (`"false"`) にします。デフォルトでは、ログは無効です。 | +| `APM_ENABLED` | 文字列 | 構成ファイルで APM Agent を有効 (`"true"`) または無効 (`"false"`) にします。デフォルトでは、APM は有効です。 | +| `PROCESS_ENABLED` | 文字列 | 構成ファイルで Process Agent を有効 (`"true"`) または無効 (`"false"`) にします。デフォルトでは、Process Agent は無効です。 | +| `HOSTNAME_FQDN_ENABLED` | 文字列 | Agent ホスト名に FQDN を使用することを有効 (`"true"`) または無効 (`"false"`) にします。これは、Agent 構成ファイルで `hostname_fqdn` を設定することに相当します。ホスト名に FQDN を使用することはデフォルトでは無効です。_(v6.20.0 以上)_ | +| `CMD_PORT` | 数値 | 0 ~ 65534 の有効なポート番号。Datadog Agent はコマンド API をポート 5001 で公開します。このポートが既に別のプログラムで使用されている場合は、この変数でデフォルトを上書きできます。 | +| `PROXY_HOST` | 文字列 | (プロキシを使用する場合) プロキシホストを設定します。[Datadog Agent でプロキシを使用する方法の詳細][4]。 | +| `PROXY_PORT` | 数値 | (プロキシを使用する場合) プロキシポートを設定します。[Datadog Agent でプロキシを使用する方法の詳細][4]。 | +| `PROXY_USER` | 文字列 | (プロキシを使用する場合) プロキシユーザーを設定します。[Datadog Agent でプロキシを使用する方法の詳細][4]。 | +| `PROXY_PASSWORD` | 文字列 | (プロキシを使用する場合) プロキシユーザーを設定します。プロセス/コンテナ Agent の場合、この変数は認証パスワードを渡すために必須であり、名前を変更することはできません。[Datadog Agent でプロキシを使用する方法の詳細][4]。| +| `EC2_USE_WINDOWS_PREFIX_DETECTION` | ブール値 | EC2 上の Windows ホストの EC2 インスタンス ID を使用します。_(v7.28.0 以上)_ | #### インストールログファイル {#installation-log-files} -インストールログファイルを設定するには、`/log ` msiexec オプションを指定します。このオプションが設定されていない場合、msiexec はデフォルトで `%TEMP%\MSI*.LOG` にログを書き込みます。 +`/log ` msiexec オプションを設定してインストールログファイルを構成します。このオプションが設定されていない場合、msiexec はデフォルトで `%TEMP%\MSI*.LOG` にログを書き込みます。 -##設定 {#configuration} +## 構成 {#configuration} -メインの Agent 設定ファイルの場所は下記のとおりです。 -`C:\ProgramData\Datadog\datadog.yaml`。このファイルは、API キー、選択した Datadog サイト、プロキシパラメーター、ホストタグ、ログレベルなど、ホスト全体の設定に使用されます。 +メイン Agent 構成ファイルは +`C:\ProgramData\Datadog\datadog.yaml` にあります。このファイルは、API キー、選択した Datadog サイト、プロキシパラメーター、ホストタグ、ログレベルなどのホスト全体の設定に使用されます。 -同じディレクトリには `datadog.yaml.example` ファイルもあります。これは利用可能なすべての設定オプションを網羅したコメント付きのリファレンスで、参照や特定の設定のコピーに役立ちます。 +同じディレクトリに `datadog.yaml.example` ファイルもあります。このファイルには、使用可能なすべての構成オプションを示すリファレンスがコメントとしてフルで付けられており、特定の構成を参照したりコピーしたりするのに便利です。 -インテグレーションの設定ファイルの場所は下記のとおりです。 -`C:\ProgramData\Datadog\conf.d\` また、代わりにレガシーな場所である `C:\Documents and Settings\All Users\Application Data\Datadog\conf.d\` に存在する場合もあります。 +インテグレーション用の構成ファイルは +`C:\ProgramData\Datadog\conf.d\` にあります。代替のレガシー場所がある場合もあります: `C:\Documents and Settings\All Users\Application Data\Datadog\conf.d\`。 -各インテグレーションには、下記を含むサブディレクトリ `.d\` があります。 +各インテグレーションには、下記のものを格納するサブディレクトリ `.d\` があります。 - `conf.yaml`: インテグレーションのアクティブな設定 -* `conf.yaml.example`: サポートされている設定キーを示すサンプルファイル +* `conf.yaml.example`: サポートされている構成キーを示すサンプルファイル -設定を変更した後は、変更を確実に反映させるために必ず Agent を再起動してください。 +構成変更を行う際は、変更が反映されるように Agent を再起動してください。 -[Datadog Agent Manager GUI][6] を使用して、チェックの有効化、無効化、および設定ができます。変更を反映させるには、Agent を再起動する必要があります。 +[Datadog Agent Manager GUI][6] を使用して、チェックを有効化、無効化、構成できます。変更を反映させるためには、Agent を再起動する必要があります。 **注**: `ProgramData` は隠しフォルダーです。 -##Agent コマンド {#agent-commands} +## Agent のコマンド {#agent-commands} -Agent の実行は、Windows サービスコントロールマネージャーによって制御されます。 +Agent の実行は、Windows サービスコントロールマネージャーによって制御されています。 -*メインの実行ファイル名は `agent.exe` です。 -*設定 GUI は、ブラウザベースの設定アプリケーションです (Windows 64 ビット版のみ)。 -*コマンドは、**昇格した (管理者として実行)** コマンドライン (PowerShell またはコマンドプロンプト) から、構文 ` ` を使用して実行できます。 -*コマンドラインオプションは下記のとおりです。 +* メインの実行可能ファイル名は `agent.exe` です。 +* 構成 GUI は、ブラウザベースの構成アプリケーションです (Windows 64 ビット版のみ)。 +* コマンドは**管理者特権 (管理者として実行)** のコマンドライン (PowerShell またはコマンドプロンプト) から、構文 ` ` を使用して実行できます。 +* コマンドラインのオプションは次の通りです。 | コマンド | 説明 | |-----------------|----------------------------------------------------------------------------------| | check | 指定されたチェックを実行します。 | -| diagnose | システム上で接続診断を実行します。 | +| diagnose | システムに対して接続診断を実行します。 | | flare | フレアを収集して Datadog に送信します。 | -| help | コマンドに関するヘルプを表示します。 | -| hostname | Agent が使用しているホスト名を表示します。 | -| import | 以前のバージョンの Agent から設定ファイルをインポートして変換します。 | +| help | コマンドのヘルプを表示します。 | +| hostname | Agent が使用するホスト名を出力します。 | +| import | 以前のバージョンの Agent から構成ファイルをインポートして変換します。 | | launch-gui | Datadog Agent Manager を起動します。 | | restart-service | サービスコントロールマネージャー内で Agent を再起動します。 | | run | Agent を起動します。 | -| start | Agent を起動します。(非推奨ですが、受け入れられます。代わりに `run` を使用してください。)| +| start | Agent を起動します。(非推奨ですが、使用はできます。代わりに `run` を使用してください。)| | start-service | サービスコントロールマネージャー内で Agent を起動します。 | -| status | 現在のステータスを表示します。 | +| status | 現在のステータスを出力します。 | | stopservice | サービスコントロールマネージャー内で Agent を停止します。 | -| version | バージョン情報を表示します。 | +| バージョン | バージョン情報を出力します。 | **例**: - PowerShell (`powershell.exe`) @@ -173,19 +173,19 @@ Agent の実行は、Windows サービスコントロールマネージャーに ## Agent のアンインストール {#uninstall-the-agent} -Windows で Agent をアンインストールするには、2 つの異なる方法があります。どちらの方法でも Agent は削除されますが、ホスト上の `C:\ProgramData\Datadog` 設定フォルダーは削除されません。 +Windows で Agent をアンインストールする方法は 2 つあります。どちらの方法も Agent を削除しますが、ホスト上の `C:\ProgramData\Datadog` 構成フォルダーは削除しません。 -###プログラムの追加と削除 {#add-or-remove-programs} +### プログラムの追加と削除 {#add-or-remove-programs} -1. **Ctrl** キーと **Esc** キーを同時に押すか、Windows キーを使用して Windows 検索を実行します。 -1.`add` を検索し、[**プログラムの追加と削除**] をクリックします。 -1.`Datadog Agent` を検索し、[**アンインストール**] をクリックします。 +1. **CTRL**キーと**Esc**キーを押すか、Windowsキーで Windows Search を実行します。 +1. `add`を検索し、{{< ui >}}Add or remove programs{{< /ui >}}をクリックします。 +1. `Datadog Agent`を検索し、{{< ui >}}Uninstall{{< /ui >}}をクリックします。 -###PowerShell {#powershell} +### PowerShell {#powershell} -**注:** 次のコマンドを使用するには、WinRM を有効にしてください。 +**注:** 下記のコマンドを使用する場合は、WinRM を有効にしてください。 -再起動せずに Agent をアンインストールするには、次の PowerShell コマンドを使用します。 +下記の PowerShell コマンドを使用して、再起動せずに Agent をアンインストールします。 {{< code-block lang="powershell" >}} $productCode = (@(Get-ChildItem -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse) | Where {$_.GetValue("DisplayName") -like "Datadog Agent" }).PSChildName @@ -194,30 +194,30 @@ start-process msiexec -Wait -ArgumentList ('/log', 'C:\uninst.log', '/q', '/x', ## トラブルシューティング {#troubleshooting} -トラブルシューティングの手順については、[Agent のトラブルシューティングドキュメント][18]を参照してください。 +トラブルシューティング手順については、[Agent トラブルシューティングのドキュメント][18]を参照してください。 -###Agent のステータスと情報 {#agent-status-and-information} +### Agent のステータスと情報 {#agent-status-and-information} -Agent が実行されていることを確認するには、[サービス] パネルで `DatadogAgent` サービスが [*開始*] と表示されているか確認します。タスクマネージャーに *Datadog Metrics Agent* (`agent.exe`) というプロセスも存在している必要があります。 +Agent が実行中であることを確認するには、サービスパネルで `DatadogAgent` サービスが *Started* と表示されているかチェックしてください。*Datadog Metrics Agent* (`agent.exe`) というプロセスもタスクマネージャーに存在するはずです。 -Agent の状態に関する詳細情報を取得するには、Datadog Agent Manager を起動します。 +Agent の状態に関する情報をさらに受け取るには、次のようにして Datadog Agent Manager を起動します。 -* Datadog Agent のシステムトレイアイコンを右クリックして [Configure] (設定) を選択するか、 -* **昇格した (管理者として実行)** コマンドラインから `launch-gui` コマンドを実行します。 +* Datadog Agentのシステムトレイアイコンを右クリックし、{{< ui >}}Configure{{< /ui >}} を選択します。または +* **管理者特権 (管理者として実行)** コマンドラインから `launch-gui` コマンドを実行します - PowerShell: `& "" launch-gui` - cmd: `"" launch-gui` -次に、[*Status*] (ステータス) -> [*General*] (全般) の順に移動して、ステータスページを開きます。 -実行中のチェックに関する詳細は、[*Status*] -> [*Collector*] (コレクター) および [*Checks*] (チェック) -> [*Summary*] (サマリー) で確認できます。 +次に、{{< ui >}}Status{{< /ui >}} > {{< ui >}}General{{< /ui >}} に移動してステータスページを開きます。 +チェックを実行する方法については、{{< ui >}}Status{{< /ui >}} > {{< ui >}}Collector{{< /ui >}} および {{< ui >}}Checks{{< /ui >}} > {{< ui >}}Summary{{< /ui >}} を参照してください。 -status コマンドは PowerShell で使用できます。 +PowerShell では、次の status コマンドを使用できます。 ```powershell & "$env:ProgramFiles\Datadog\Datadog Agent\bin\agent.exe" status ``` -または cmd.exe: +cmd.exe では、次のようにします。 ```cmd "%ProgramFiles%\Datadog\Datadog Agent\bin\agent.exe" status @@ -225,37 +225,37 @@ status コマンドは PowerShell で使用できます。 ### ログの場所 {#logs-location} -Agent のログは `C:\ProgramData\Datadog\logs\agent.log` にあります。 +エージェントのログは `C:\ProgramData\Datadog\logs\agent.log` にあります。 **注**: `ProgramData` は隠しフォルダーです。 -##ユースケース {#use-cases} +## ユースケース {#use-cases} -### Windows サービスのモニタリング {#monitoring-a-windows-service} +### Windows サービスの監視 {#monitoring-a-windows-service} -対象のホストで Datadog Agent Manager を起動し、リストから "Windows Service" インテグレーションを選択します。標準で用意されている例がありますが、この例では DHCP を使用しています。 +ターゲットホストで Datadog Agent Manager を起動し、リストから {{< ui >}}Windows Service{{< /ui >}} インテグレーションを選択します。すぐに使える例がありますが、この例では DHCP を使用します。 -サービス名を取得するには、`services.msc` を開き、対象のサービスを見つけます。DHCP を対象とする場合、サービスのプロパティウィンドウの上部にサービス名が表示されます。 +サービスの名前を取得するには、`services.msc` を開き、ターゲットサービスを見つけます。DHCP をターゲットとして使用すると、サービスプロパティウィンドウの上部にサービス名が表示されます。 {{< img src="agent/faq/DHCP.png" alt="DHCP" style="width:75%;">}} -独自のサービスを追加するときは、必ず示されているとおりの形式に従ってください。形式が正しくない場合、インテグレーションは失敗します。**注**: サービス名に含まれる特殊文字はエスケープする必要があります。たとえば、名前 `MSSQL$BILLING` は `MSSQL\$BILLING` で追加できます。 +独自のサービスを追加する際は、表示されているフォーマットに正確に従ってください。フォーマットが正しくない場合、インテグレーションは失敗します。**注**: サービス名に特殊文字が含まれている場合はエスケープする必要があります。たとえば、`MSSQL$BILLING` という名前は `MSSQL\$BILLING` で追加できます。 {{< img src="agent/faq/windows_DHCP_service.png" alt="Windows DHCP サービス" style="width:75%;">}} -また、インテグレーションを変更した場合は、そのたびに Datadog サービスを再起動する必要があります。これは services.msc または UI のサイドバーから行えます。 +また、インテグレーションを変更するたびに、Datadog サービスを再起動する必要があります。これは services.msc または UI サイドバーから行うことができます。 -サービスの場合、Datadog はメトリクスを追跡せず、可用性のみを追跡します。(メトリクスの場合は、[プロセス](#monitoring-windows-processes)または [WMI][7] インテグレーションを使用します)。モニターをセットアップするには、[インテグレーションモニタータイプ][8]を選択し、**Windows Service** を検索します。*[Integration Status] (インテグレーションのステータス) -> [Pick Monitor Scope] (モニタースコープの選択)* から、モニタリングするサービスを選択します。 +サービスについて、Datadog はメトリクスを追跡せず、可用性のみを追跡します。(メトリクスの場合は、[Process](#monitoring-windows-processes) または [WMI][7] 統合を使用してください)。モニターを設定するには、[インテグレーションモニタータイプ][8]を選択し、{{< ui >}}Windows Service{{< /ui >}} を検索します。{{< ui >}}Integration Status{{< /ui >}} > {{< ui >}}Pick Monitor Scope{{< /ui >}} から、監視するサービスを選択します。 -###Windows のシステム負荷のモニタリング {#monitoring-system-load-for-windows} +### Windows のシステム負荷のモニタリング {#monitoring-system-load-for-windows} -Datadog Agent は、デフォルトで多数のシステムメトリクスを収集します。特に一般的に使用されるシステムメトリクスは `system.load.*` ですが、これらのメトリクスは **Unix** 固有のものです。 +Datadog Agent は、デフォルトで多数のシステムメトリクスを収集します。最も一般的に使用されるシステムメトリクスは `system.load.*` ですが、これらのメトリクスは **Unix** 特有です。 -Windows では `system.load.*` メトリクスは提供されませんが、デフォルトで利用可能な同等のオプションとして `system.proc.queue.length` があります。このメトリクスは、プロセッサーのレディキューで遅延し、実行を待機しているスレッドの数を示します。 +Windows は `system.load.*` メトリクスを提供していませんが、デフォルトで利用可能な同等のオプションは `system.proc.queue.length` です。このメトリクスは、実行待ちのプロセッサ準備キューで遅延として観察されたスレッドの数を示します。 -###Windows プロセスのモニタリング {#monitoring-windows-processes} +### Windows プロセスの監視 {#monitoring-windows-processes} -[ライブプロセスモニタリング][9]を使用して Windows プロセスをモニタリングできます。Windows でこれを有効にするには、[Agent のメイン設定ファイル][10]を編集し、次のパラメーターを true に設定します。 +[ライブプロセスのモニタリング][9]を使用して Windows プロセスをモニターできます。これを Windows で有効にするには、次のパラメーターを true に設定することにより、[Agent メイン構成ファイル][10]を編集します。 `datadog.yaml`: @@ -264,9 +264,9 @@ process_config: enabled: "true" ``` -設定が完了したら、[Agent を再起動][11]します。 +構成が完了したら、[Agent を再起動][11]します。 -##その他の参考資料 {#further-reading} +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/bits_ai/mcp_server/setup.md b/content/ja/bits_ai/mcp_server/setup.md new file mode 100644 index 00000000000..02e355d28f0 --- /dev/null +++ b/content/ja/bits_ai/mcp_server/setup.md @@ -0,0 +1,771 @@ +--- +algolia: + rank: 75 + tags: + - mcp + - mcp server + - setup +description: AI エージェントを Datadog MCP サーバーに接続する方法を学びます。 +further_reading: +- link: bits_ai/mcp_server + tag: ドキュメント + text: Datadog MCP サーバー +- link: bits_ai/mcp_server/tools + tag: ドキュメント + text: Datadog MCP サーバーツール +- link: ide_plugins/vscode/?tab=cursor + tag: ドキュメント + text: カーソル用の Datadog 拡張機能 +title: Datadog MCP サーバーを設定する +--- +Datadog MCP サーバーを設定および構成する方法を学びます。これにより、AI 搭載クライアントから直接テレメトリのインサイトを取得し、プラットフォーム機能を管理できます。クライアントを選択してください。 + +{{< tabs >}} +{{% tab "Claude" %}} + +クロード (クロード・コワーカーを含む) を、リモートMCP URL を使用して {{< ui >}}custom connector{{< /ui >}} として追加し、Datadog MCP サーバーに接続します。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. 新しいカスタムコネクタを追加するには、[カスタムコネクタ][1]に関するクロードヘルプセンターガイドに従ってください。 + +1. URLの入力を求められたら、あなたの[Datadogサイト][2]のDatadog MCPサーバーエンドポイントを入力してください ({{< region-param key="dd_site_name" >}})。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 +
{{< region-param key="mcp_server_endpoint" >}}
+ + [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. プロンプトが表示されたら、OAuthログインフローを完了してください。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +[1]: https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp +[2]: /ja/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
Datadog MCP サーバーは、選択した Datadog サイト ではサポートされていません({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +{{% /tab %}} + +{{% tab "Claude Code" %}} + +AIエージェントを、地域の[Datadogサイト][1]のMCPサーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. ターミナルで実行: +
claude mcp add --transport http datadog-mcp {{< region-param key="mcp_server_endpoint" >}}
+ + または、`~/.claude.json`に追加してください。 +
{
+      "mcpServers": {
+        "datadog": {
+          "type": "http",
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+         }
+       }
+    }
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +
リモート認証が利用できない場合は、ローカルバイナリ認証を代わりに使用してください。
+ +[1]: /ja/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} + +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+ +{{< /site-region >}} + +[1]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "Codex" %}} + +AIエージェントを、地域の[Datadogサイト][1]のMCPサーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +`~/.codex/config.toml`Datadog MCP サーバーを HTTP トランスポートとサイトのエンドポイント URL で追加するには、1. (または Codex CLI 構成ファイル) を編集してください。たとえば、次のとおりです。 + +
[mcp_servers.datadog]
+   url = "{{< region-param key="mcp_server_endpoint" >}}"
+   
+ + [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadog MCP サーバーにログインします。 + + ```shell + codex mcp login datadog + ``` + + これにより、OAuth フローを完了するためにブラウザが開きます。Codex は、トークンが期限切れになるまで再度ログインする必要がないように、取得した資格情報を保存します。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "カーソル" %}} + +[Datadog プラグイン][1] を Cursor Marketplace からインストールします。このプラグインには Datadog MCP サーバーなどのリソースが含まれています。以前に手動で Datadog MCP サーバーをインストールした場合は、競合を避けるために IDE の設定から削除してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. プラグインは Cursor Marketplace から、または Cursor 内からインストールできます。 + - Cursor Marketplace から [Datadog プラグイン][1] を開き、**Cursor に追加** をクリックします。 + - Cursor で、**Curso のr設定** > **プラグイン** に移動し、Datadog プラグインを検索して **Cursor に追加** をクリックします。 + +1. プラグインをインストールしたら、エージェントチャットに `/ddsetup` と入力して初回セットアップをします。 +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +[1]: https://cursor.com/marketplace/datadog +[2]: /ja/ide_plugins/vscode/?tab=cursor#installation +[3]: /ja/bits_ai/mcp_server/tools +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: https://cursor.com/marketplace/datadog +{{% /tab %}} + +{{% tab "Devin" %}} + +Devin の MCP Marketplace から Datadog MCP サーバーを有効にすることにより、それを接続します。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. デビンで、{{< ui >}}Settings{{< /ui >}} > {{< ui >}}MCP Marketplace{{< /ui >}}に移動し、`Datadog`を検索します。 +1. {{< ui >}}Server URL{{< /ui >}} のための Datadog サイトを選択してください。選択するサイトの例: {{< region-param key="dd_site_name" code="true" >}}。 +1. Datadog API とアプリケーションキーを入力します。 +1. サーバーをインストールして有効にし、プロンプトに従って OAuth ログインフローを完了します。 +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +
製品固有のツールセットを使用するには、Devin でカスタム MCP サーバーを設定し、 toolsets クエリをエンドポイント URL の末尾に含めてください。詳細については、ツールセットを参照してください。 +
+ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +{{% /tab %}} + +{{% tab "Gemini CLI" %}} + +AIエージェントを、地域の[Datadogサイト][1]のMCPサーバーエンドポイントに向けてください。正しい手順を得るには、このドキュメントページの右側にある **Datadog サイト** セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. ターミナルで実行: +
gemini mcp add --transport http datadog {{< region-param key="mcp_server_endpoint" >}}
+ + または、`~/.gemini/settings.json`に追加してください。 +
{
+      "mcpServers": {
+        "datadog": {
+          "httpUrl": "{{< region-param key="mcp_server_endpoint" >}}"
+        }
+      }
+    }
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +
リモート認証が利用できない場合は、ローカルバイナリ認証を代わりに使用してください。
+ +[1]: /ja/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "Goose" %}} + +AIエージェントを、地域の[Datadogサイト][3]のMCPサーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. 次のいずれかの方法を使用して、Goose に Datadog MCP サーバーを追加します。 + - **ワンクリックインストール (推奨):**Datadog MCPサーバーを使用します {{< region-param key="goose_mcp_install_deeplink" link="true" text="install deeplink" >}}。 + - **手動設定:** このセクションに記載されているエンドポイントをストリーミング可能 HTTP サーバーURL として使用して、Goose で [MCP サーバーを追加する][2] ための手順に従ってください。設定を直接編集するには、`~/.config/goose/config.yaml` を修正します。 + +1. [製品固有のツール][1] を有効にするには、エンドポイント URL の末尾に `toolsets` クエリパラメータを含めます。たとえば、この URL で有効になるのは、APM と LLM Observability のツール_だけ_です。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ + To enable all generally available toolsets, use `toolsets=all`. This works best for clients that support tool filtering. + +1. 初回セッション起動時に認証を求められたら、Datadog アカウントを選択してください。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +[1]: /ja/bits_ai/mcp_server#toolsets +[2]: https://goose-docs.ai/docs/getting-started/using-extensions#mcp-servers +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[3]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "JetBrains IDE" %}} + +JetBrains は、さまざまな IDE 向けに [Junie][1] および [AI Assistant][2] プラグインを提供しています。GitHub は [Copilot][4] プラグインを提供しています。また、多くの開発者は、IDE と一緒に Claude Code、Codex、または Gemini CLI などのエージェント CLI を使用しています。 + +プラグインを地域の [Datadogサイト][3] の MCP サーバーエンドポイントに向けます。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +{{% collapse-content title="Junie" level="h4" expanded=false id="jetbrains-junie" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}Junie{{< /ui >}} > {{< ui >}}MCP Settings{{< /ui >}} に移動し、次のブロックを追加します。 + +
{
+      "mcpServers": {
+        "datadog": {
+          "type": "http",
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+        }
+      }
+    }
+    
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. OAuthを通じてログインするように求められます。設定のステータスインジケーターは、接続が成功すると緑のチェックマークを表示します。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{% /collapse-content %}} + +{{% collapse-content title="JetBrains AI Assistant" level="h4" expanded=false id="jetbrains-ai-assistant" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}AI Assistant{{< /ui >}} > {{< ui >}}Model Context Protocol (MCP){{< /ui >}} に移動し、次のブロックを追加します。 + +
{
+      "mcpServers": {
+        "datadog": {
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+          "headers": {
+            "DD_API_KEY": "<YOUR_API_KEY>",
+            "DD_APPLICATION_KEY": "<YOUR_APP_KEY>"
+          }
+        }
+      }
+    }
+    
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. 設定のステータスインジケーターは、接続が成功すると緑のチェックマークを表示します。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{% /collapse-content %}} + +{{% collapse-content title="GitHub Copilot" level="h4" expanded=false id="github-copilot" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}GitHub Copilot{{< /ui >}} > {{< ui >}}Model Context Protocol (MCP){{< /ui >}} に移動し、次のブロックを追加します。 + +
{
+      "servers": {
+        "datadog": {
+          "type": "http",
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+        }
+      }
+    }
+    
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. エディターに表示される `Start` 要素をクリックしてサーバーを起動します。OAuthを通じてログインするように求められます。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{% /collapse-content %}} + +{{% collapse-content title="エージェント CLI" level="h4" expanded=false id="jetbrains-agent-clis" %}} +多くの開発者は、JetBrains IDE と一緒に Claude Code、Codex、または Gemini CLI などのエージェント CLI を使用しています。これらの CLI ツールの設定を参照してください。 +- [Claude Code][4] +- [Codex][5] +- [Gemini CLI][6] + +[JetBrains IDE 用の Datadogプラグイン][3] は、これらのエージェント CLI と統合されています。中断のない体験のために、Datadog MCP サーバーを設定する際にプラグインを同時にインストールしてください。 + +[3]: /ja/ide_plugins/idea/ +[4]: /ja/bits_ai/mcp_server/setup/?tab=claudecode +[5]: /ja/bits_ai/mcp_server/setup/?tab=codex +[6]: /ja/bits_ai/mcp_server/setup/?tab=geminicli +{{% /collapse-content %}} +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: https://plugins.jetbrains.com/plugin/26104-junie-the-ai-coding-agent-by-jetbrains +[2]: https://plugins.jetbrains.com/plugin/22282-jetbrains-ai-assistant +[3]: /ja/getting_started/site/ +[4]: https://plugins.jetbrains.com/plugin/17718-github-copilot--your-ai-pair-programmer +{{% /tab %}} + +{{% tab "Kiro" %}} + +AIエージェントを、地域の[Datadogサイト][3]のMCPサーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. 次の内容を[Kiro MCP設定ファイル][2]に追加してください (`~/.kiro/settings/mcp.json`はユーザー範囲の設定用)。 + +
{
+      "mcpServers": {
+        "datadog": {
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+        }
+      }
+    }
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +[2]: https://kiro.dev/docs/mcp/configuration/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[3]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "OpenCode" %}} + +公式の [Datadog OpenCode Plugin][2] (プレビュー中) を使用して、[OpenCode][3] を Datadog MCP サーバーに接続します。プラグインは、`opencode.json` 内の MCP サーバーエントリを作成および維持し、エージェントがセットアップ、サイト変更、および [ツールセット](#toolsets) の選択を処理するために使用する`ddsetup`、`ddconfig`、および `ddtoolsets` のツールを公開します。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} + +1. プラグインを `opencode.json` 設定ファイルに追加します。このファイルが存在しない場合は、それを作成します。 + +
{
+     "plugin": ["@datadog/opencode-plugin"]
+   }
+ + If a `plugin` array already exists, add `"@datadog/opencode-plugin"` to it. + + If you previously configured the Datadog MCP Server manually in `opencode.json`, remove or disable that entry to avoid conflicts with the plugin. + +1. OpenCode を再起動してください。パッケージは起動時に npm から取得されます。 + +1. `ddsetup` を実行するよう、エージェントに依頼します。プラグインにより、サイト選択が処理されます。 + +1. MCP サーバーを有効にするためにもう一度 OpenCode を再起動し、プロンプトが表示されたら OAuth ログインフローを完了してください。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +1. 製品固有のツール[ を有効にするには、](#toolsets) を実行するようにエージェントに依頼してください。`ddtoolsets` + +セットアップ後、`ddconfig`を実行するようエージェントに依頼して、Datadog サイトを変更するか、接続のトラブルシューティングを実行してください。 + +{{% collapse-content title="手動構成" level="h4" expanded=false id="opencode-manual" %}} +プラグインなしで MCP サーバーを構成するには、`opencode.json` 設定ファイルに次の内容を追加します。 + +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +
{
+  "mcp": {
+    "datadog": {
+      "type": "remote",
+      "url": "{{< region-param key="mcp_server_endpoint" >}}",
+      "enabled": true
+    }
+  }
+}
+ +[製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、この URL で有効になるのは、APM と LLM Observability のツール_だけ_です。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +一般に利用可能なすべてのツールセットを有効にするには、`toolsets=all` を使用します。これは、ツールフィルタリングをサポートするクライアントに最適です。 +{{% /collapse-content %}} + +[1]: /ja/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[2]: https://github.com/datadog-labs/opencode-plugin +[3]: https://opencode.ai/ +{{% /tab %}} + +{{% tab "VS コード" %}} + +Datadog の [カーソルと VS Code 拡張機能][1] には、管理された Datadog MCP サーバーへの組み込みアクセスが含まれています。GitHub Copilot は、VS Code で Datadog MCP サーバーにアクセスすることもできます (アクティブな GitHub Copilot サブスクリプションが必要)。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. 拡張機能をインストールします (`--profile` とプロファイル名を省略して、デフォルトの VS Code プロファイルにインストールします)。 + ```shell + code --install-extension datadog.datadog-vscode --profile + ``` + または、[Datadog 拡張機能][2] をインストールします。すでに拡張機能がインストールされている場合は、最新バージョンであることを確認してください。 +1. Datadog アカウントにサインインします。 +1. **IDE を再起動します。** +1. Datadog MCP サーバーが利用可能であり、[ツール][3] がリストされていることを確認してください: ャットパネルを開き、エージェントモードを選択し、{{< ui >}}Configure Tools{{< /ui >}} ボタンをクリックします。 + {{< img src="bits_ai/mcp_server/vscode_configure_tools_button.png" alt="VS Code の Configure Tools button を設定します。" style="width:70%;" >}} +1. 以前に手動で Datadog MCP サーバーをインストールした場合は、競合を避けるために IDE の設定から削除してください。コマンドパレット (`Shift` + `Cmd/Ctrl` + `P`) を開き、`MCP: Open User Configuration`を実行します。 +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +[2]: /ja/ide_plugins/vscode/?tab=vscode#installation +[3]: /ja/bits_ai/mcp_server/tools +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: /ja/ide_plugins/vscode/ +{{% /tab %}} + +{{% tab "Warp" %}} + +[Warp][1] は、組み込みの MCP サポートを持つエージェント端末です。Warp エージェントを、地域の [Datadog サイト][2] の MCP サーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. Warp アプリで、{{< ui >}}Settings{{< /ui >}} > {{< ui >}}MCP Servers{{< /ui >}} に移動し、{{< ui >}}+ Add{{< /ui >}} をクリックします。 + +1. 次の構成を貼り付けます。 + +
{
+      "Datadog": {
+        "url": "{{< region-param key="mcp_server_endpoint" >}}"
+      }
+    }
+ + To enable [product-specific tools](#toolsets), include the `toolsets` query parameter at the end of the endpoint URL. For example, this URL enables _only_ APM and LLM Observability tools (use `toolsets=all` to enable all generally available toolsets, best for clients that support tool filtering): + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadog サーバーで {{< ui >}}Start{{< /ui >}} をクリックします。Warp は、OAuth ログインフローを完了するためにブラウザを開きます。資格情報はデバイスに安全に保存され、将来のセッションで再利用されます。 + +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+{{< /site-region >}} + +[1]: https://www.warp.dev/ +[2]: /ja/getting_started/site/ +{{% /tab %}} + +{{% tab "その他" %}} + +ほとんどの他の[サポートされているクライアント](#supported-clients)については、リモート認証のためのこれらの指示を使用してください。Clineまたはリモート認証が信頼できない、または利用できない場合は、[ローカルバイナリ認証](#local-binary-authentication)を使用してください。 + +AIエージェントを、地域の[Datadogサイト][1]のMCPサーバーエンドポイントに向けてください。正しい手順については、このドキュメントページの右側にある{{< ui >}}Datadog Site{{< /ui >}}セレクターを使用して、サイトを選択してください。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +選択したエンドポイント ({{< region-param key="dd_site_name" >}}):{{< region-param key="mcp_server_endpoint" >}}。 + +1. HTTP トランスポートとあなたのサイトのエンドポイント URL を使用して、クライアントの設定ファイルに Datadog MCP サーバーを追加します。たとえば、次のとおりです。 + +
{
+      "mcpServers": {
+        "datadog": {
+          "type": "http",
+          "url": "{{< region-param key="mcp_server_endpoint" >}}"
+        }
+      }
+    }
+ +1. [製品特有のツール](#toolsets)を有効にするには、エンドポイントURLの末尾に`toolsets`クエリパラメータを含めてください。たとえば、このURLは_のみ_APMおよびLLM Observabilityツールを有効にします (すべての一般に利用可能なツールセットを有効にするには`toolsets=all`を使用してください。これは、ツールフィルタリングをサポートするクライアントに最適です)。 + +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
+ +1. Datadogリソースにアクセスするために必要な[権限](#required-permissions)があることを確認してください。 + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
選択したサイトでは Datadog MCP サーバーはサポートされていません ({{< region-param key="dd_site_name" >}})。
+ +{{< /site-region >}} + +[1]: /ja/getting_started/site/ +{{% /tab %}} +{{< /tabs >}} + +## ツールセット {#toolsets} + +Datadog MCPサーバーは、_ツールセット_をサポートしており、必要な[MCPツール][49]のみを使用できるようにし、貴重なコンテキストウィンドウのスペースを節約します。ツールセットを使用するには、MCPサーバーに接続する際にエンドポイントURLに`toolsets`クエリパラメータを含めてください ([リモート認証](#authentication)のみ)。`toolsets=all`を使用して、一般に利用可能なすべてのツールセットを一度に有効にします。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +たとえば、選択した[Datadogサイト][17]に基づいて({{< region-param key="dd_site_name" >}}): + +- コアツールのみを取得します (`toolsets`が指定されていない場合はこれがデフォルトです)。 +
{{< region-param key="mcp_server_endpoint" >}}
+ +- Synthetic Testing 関連のツールのみを取得します。 +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=synthetics
+ +- コア、Synthetic Testing、およびソフトウェア配信ツールを取得します。 +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=core,synthetics,software-delivery
+ +- 一般に利用可能なすべてのツールを取得します。 +
{{< region-param key="mcp_server_endpoint" >}}?toolsets=all
+ +
すべてのツールセットを有効にすると、AI クライアントに送信されるツール定義の数が増加し、コンテキストウィンドウのスペースを消費します。toolsets=all ツールフィルタリングをサポートするクライアント (例: Claude Code) で最適に動作します。
+ +[17]: /ja/getting_started/site/#navigate-the-datadog-documentation-by-site +{{< /site-region >}} + +### 利用可能なツールセット {#available-toolsets} + +これらのツールセットは一般に利用可能です。利用可能なツールの完全なリファレンスは、ツールセットごとに整理され、例のプロンプトが含まれている[Datadog MCPサーバーツール][49]を参照してください。 + +- `core`: ログ、メトリクス、トレース、ダッシュボード、モニター、インシデント、ホスト、サービス、イベント、およびノートブックのデフォルトツールセット +- `alerting`: モニターの検証と作成、モニターグループの検索、モニターテンプレートの取得、モニターのカバレッジ分析、およびSLOの検索のためのツール +- `cases`: [Case Management][42] 用のツール。case の作成、検索、更新、プロジェクトの管理、および Jira の課題のリンクを含みます。 +- `dashboards`: [ダッシュボード][46]の取得、作成、更新、削除のためのツール、ウィジェットスキーマのリファレンスと検証も含む +- `dbm`: [Database Monitoring][33]と対話するためのツール +- `ddsql`: インフラリソース、ログ、メトリクス、RUM、スパン、その他のDatadogデータソースをサポートするSQL方言である[ DDSQL][44]を使用してDatadogデータをクエリするためのツール +- `error-tracking`: Datadog [Error Tracking][32]と対話するためのツール +- `feature-flags`: [feature flags][35]を管理するためのツール、フラグとその環境の作成、リスト表示、更新を含む +- `kubernetes`: すべてのクラスターの中から [Kubernetes][51] リソースを検索し、説明し、マニフェストを取得するためのツール +- `llmobs`: [LLM Observability][36]のスパンと実験を検索および分析するためのツール +- `networks`: [Cloud Network Monitoring][37]分析および[Network Device Monitoring][38]のためのツール +- `onboarding`: エージェント的なオンボーディングツールによるDatadogのセットアップと構成のガイド +- `product-analytics`: [Product Analytics][41]クエリと対話するためのツール +- `reference-tables`: [Reference Tables][48]を管理するためのツール、テーブルのリスト表示、行の読み取り、行の追加、クラウドストレージからのテーブル作成を含む +- `security`: コードセキュリティスキャンと[security signals][39]および[security findings][40]を検索するためのツール +- `software-delivery`: ソフトウェアデリバリー ([CI Visibility][30]および[Test Optimization][31]) と対話するためのツール +- `synthetics`: Datadogの[Synthetic tests][29]と対話するためのツール +- `workflows`: [Workflow Automation][43]のためのツール、エージェント使用のためのワークフローのリスト表示、検査、実行、構成を含む + +### プレビュー用ツールセット {#preview-toolsets} + +これらのツールセットはプレビュー中です。ツールセットにサインアップするには、プロダクトプレビューフォームを完成させるか、[Datadogサポート][47]に連絡してアクセスをリクエストしてください。 +- `apm`: ([Sign up][45]) [APM][34]トレース分析、スパン検索、Watchdogインサイト、パフォーマンス調査のためのツール + +## サポートされているクライアント {#supported-clients} + +| クライアント | 開発者 | ノート | +|--------|------|------| +| [カーソル][3] | カーソル | Datadog [カーソルと VS Code 拡張機能][15] を推奨。| +| [Claude Code][4] | Anthropic | | +| [Claude][19] | Anthropic | [カスタムコネクタのセットアップ](?tab=claude#installation) を使用します。Claude Cowork が含まれています。| +| [Codex CLI][6] | OpenAI | | +| [Gemini CLI][50] | Google | | +| [Warp][28] | Warp | | +| [VS Code][7] | マイクロソフト | Datadog [カーソルとVS Code拡張][16] を推奨。| +| [JetBrains IDEs][18] | JetBrains | [Datadog plugin][18] を推奨。| +| [Kiro][9]、[Kiro CLI][10] | Amazon Web Services | | +| [Goose][8] | Agentic AI Foundation | | +| [OpenCode][52] | SST | Datadog [OpenCode plugin][53] を推奨。| +| [Cline][11] | Various | 上記の {{< ui >}}Other{{< /ui >}} タブを参照してください。リモート認証が信頼できない場合は、Clineでローカルバイナリ認証を使用してください。| + +
Datadog MCPサーバーは大規模な開発中であり、追加のサポートクライアントが利用可能になる場合があります。
+ +## 必要な権限 {#required-permissions} + +MCP サーバーツールには、以下の [Datadog ユーザーロール権限][22] が必要です。 + +| 権限 | |では必須 +|------------|-------------| +| mcp_read | Datadogからデータを読み取るツール (例: モニターのクエリ、ログの検索、ダッシュボードの取得) | +| mcp_write | Datadog内のリソースを作成または変更するツール (例: モニターの作成、ホストのミュート) | + +`mcp_read`または`mcp_write`に加えて、ユーザーは基盤となるリソースの標準Datadog権限が必要です。たとえば、モニターを読み取るMCPツールを使用するには、`mcp_read`と[Monitors Read][24]権限の両方が必要です。リソースレベルの権限の完全なリストについては、[Datadogロール権限][25]を参照してください。 + +**Datadog標準ロール**を持つユーザーは、デフォルトで両方のMCPサーバー権限を持っています。組織が[カスタムロール][23]を使用している場合は、権限を手動で追加してください。 +1. 管理者として [**組織設定 > ロール**][26] に移動し、更新したいロールをクリックします。 +1. {{< ui >}}Edit Role{{< /ui >}} (鉛筆アイコン) をクリックします。 +1. 権限リストの下で、{{< ui >}}MCP Read{{< /ui >}} と {{< ui >}}MCP Write{{< /ui >}} のチェックボックスを選択します。 +1. ロールに必要な他のリソースレベルの権限を選択してください。 +1. {{< ui >}}Save{{< /ui >}} をクリックします。 + +組織の管理者は、[組織設定][27] からグローバル MCP アクセスと書き込み機能を管理できます。 + +## 認証 {#authentication} + +MCP サーバーは、[認証][14] のために OAuth 2.0 を使用します。OAuthフローを通過できない場合 (たとえば、サーバー上で)、`DD_API_KEY`および`DD_APPLICATION_KEY`のHTTPヘッダーとしてDatadogの[API キー and application key][1]を提供できます。 + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +たとえば、選択した[Datadogサイト][17]に基づいて({{< region-param key="dd_site_name" >}}): + +
{
+  "mcpServers": {
+    "datadog": {
+      "type": "http",
+      "url": "{{< region-param key="mcp_server_endpoint" >}}",
+      "headers": {
+          "DD_API_KEY": "<YOUR_API_KEY>",
+          "DD_APPLICATION_KEY": "<YOUR_APPLICATION_KEY>"
+      }
+    }
+  }
+}
+
+ +[17]: /ja/getting_started/site/#navigate-the-datadog-documentation-by-site +{{< /site-region >}} + +セキュリティのために、必要な権限だけを持つ[service account][13] からスコープが設定された API キーとアプリケーションキーを使用してください。 + +### ローカルバイナリ認証 {#local-binary-authentication} + +Clineの場合、またはリモート認証が信頼できない、あるいは利用できない場合、ローカル認証の利用が推奨されます。インストール後、通常はMCPサーバーの更新の恩恵を受けるためにローカルバイナリを更新する必要はありません。ツールはリモートで動作します。 + +{{% collapse-content title="Datadog MCPサーバーのローカルバイナリを設定する" level="h5" expanded=false id="mcp-local-binary" %}} + +1. Datadog MCP サーバーバイナリをインストールします (macOS と Linux)。 + ```bash + curl -sSL https://coterm.datadoghq.com/mcp-cli/install.sh | bash + ``` + これにより、バイナリが`~/.local/bin/datadog_mcp_cli`にインストールされます。 + + Windowsの場合、[Windowsバージョン][20]をダウンロードします。 + +2. `datadog_mcp_cli login` を手動で実行して OAuth ログインフローを実施し、[Datadogサイト][21] を選択します。 + +3. AI クライアントを設定することにより、`datadog_mcp_cli` をコマンドとして stdio トランスポートを使用するようにします。たとえば、macOS の場合 (`` を自分の OS ユーザー名に置き換えます): + ```json + { + "mcpServers": { + "datadog": { + "type": "stdio", + "command": "/Users//.local/bin/datadog_mcp_cli", + "args": [], + "env": {} + } + } + } + ``` + + 他のオペレーティングシステムの場合、`command`パスをダウンロードしたバイナリの場所に置き換えます: + - Linux: `/home//.local/bin/datadog_mcp_cli` + - Windows: `\bin\datadog_mcp_cli.exe` + +
Claude Codeの場合は、次のように実行できます。 +
claude mcp add datadog --scope user -- ~/.local/bin/datadog_mcp_cli
+ +4. 設定を適用し、MCP サーバーをロードするには、AIクライアントを完全に再起動してください。 +{{% /collapse-content %}} + +## MCP サーバーへのアクセスをテストします {#test-access-to-the-mcp-server} + +1. [MCPインスペクター][2] をインストールします。これは、MCP サーバーのテストとデバッグのための開発者ツールです。 + + ```bash + npx @modelcontextprotocol/inspector + ``` +2. インスペクターの Web UI で、{{< ui >}}Transport Type{{< /ui >}} については、{{< ui >}}Streamable HTTP{{< /ui >}} を選択します。 +3. {{< ui >}}URL{{< /ui >}} については、地域の Datadog サイト用の MCP サーバーエンドポイントを入力します。 + {{< site-region region="us,us3,us5,eu,ap1,ap2" >}} + 例: {{< region-param key="dd_site_name" >}}: {{< region-param key="mcp_server_endpoint" >}} + {{< /site-region >}} +4. {{< ui >}}Connect{{< /ui >}} をクリックした後、{{< ui >}}Tools{{< /ui >}} > {{< ui >}}List Tools{{< /ui >}} に移動します。 +5. [利用可能なツール][12] が表示されるか確認してください。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/account_management/api-app-keys/ +[2]: https://github.com/modelcontextprotocol/inspector +[3]: https://cursor.com +[4]: https://claude.com/product/claude-code +[5]: https://claude.com/download +[6]: https://chatgpt.com/codex +[7]: https://code.visualstudio.com/ +[8]: https://github.com/block/goose +[9]: https://kiro.dev/ +[10]: https://kiro.dev/cli/ +[11]: https://cline.bot/ +[12]: /ja/bits_ai/mcp_server/tools +[13]: /ja/account_management/org_settings/service_accounts/ +[14]: https://modelcontextprotocol.io/specification/draft/basic/authorization +[15]: /ja/ide_plugins/vscode/?tab=cursor +[16]: /ja/ide_plugins/vscode/ +[17]: /ja/getting_started/site/#navigate-the-datadog-documentation-by-site +[18]: /ja/ide_plugins/idea/ +[19]: https://claude.ai +[20]: https://coterm.datadoghq.com/mcp-cli/datadog_mcp_cli.exe +[21]: /ja/getting_started/site/ +[22]: /ja/account_management/rbac/permissions/#mcp +[23]: /ja/account_management/rbac/?tab=datadogapplication#custom-roles +[24]: /ja/account_management/rbac/permissions/#monitors +[25]: /ja/account_management/rbac/permissions/ +[26]: https://app.datadoghq.com/organization-settings/roles +[27]: https://app.datadoghq.com/organization-settings/preferences +[28]: https://www.warp.dev/ +[29]: /ja/synthetics/ +[30]: /ja/continuous_integration/ +[31]: /ja/tests/ +[32]: /ja/error_tracking/ +[33]: /ja/database_monitoring/ +[34]: /ja/tracing/ +[35]: /ja/feature_flags/ +[36]: /ja/llm_observability/mcp_server/ +[37]: /ja/network_monitoring/cloud_network_monitoring/ +[38]: /ja/network_monitoring/devices/ +[39]: /ja/security/threats/security_signals/ +[40]: /ja/security/misconfigurations/findings/ +[41]: /ja/product_analytics +[42]: /ja/service_management/case_management/ +[43]: /ja/actions/workflows/ +[44]: /ja/ddsql_editor/ +[45]: https://www.datadoghq.com/product-preview/apm-mcp-toolset/ +[46]: /ja/dashboards/ +[47]: /ja/help/ +[48]: /ja/reference_tables/ +[49]: /ja/bits_ai/mcp_server/tools +[50]: https://github.com/google-gemini/gemini-cli +[51]: /ja/containers/monitoring/kubernetes_explorer/ +[52]: https://opencode.ai/ +[53]: https://github.com/datadog-labs/opencode-plugin \ No newline at end of file diff --git a/content/ja/dashboards/_index.md b/content/ja/dashboards/_index.md index 493c8e47886..ec4aa72f793 100644 --- a/content/ja/dashboards/_index.md +++ b/content/ja/dashboards/_index.md @@ -14,74 +14,78 @@ cascade: algolia: rank: 70 tags: - - スナップショット - - ダッシュボード -description: データを可視化して詳細な情報を把握 + - snapshot + - dashboards +description: データを可視化してインサイトを得る further_reading: -- link: https://app.datadoghq.com/release-notes?category=Dashboards - tag: リリースノート - text: Datadog ダッシュボードの最新リリースをチェック! (アプリログインが必要です)。 - link: /dashboards/sharing/ tag: ドキュメント - text: Datadogの外部でグラフを共有 -- link: https://www.datadoghq.com/blog/datadog-clipboard/ - tag: ブログ - text: ダッシュボードウィジェットをクリップボードに追加する -- link: https://www.datadoghq.com/blog/datadog-dashboards/ - tag: ブログ - text: 新しい Datadog ダッシュボードエクスペリエンス + text: Datadog 以外とグラフを共有 - link: https://datadoghq.dev/integrations-core/guidelines/dashboards/#best-practices tag: ベストプラクティス text: 優れたインテグレーションダッシュボードを作成する - link: https://dtdg.co/fe tag: Foundation Enablement text: ダッシュボードで視覚化を改善するためのインタラクティブセッションにご参加ください +- link: https://www.datadoghq.com/blog/datadog-clipboard/ + tag: ブログ + text: ダッシュボードウィジェットをクリップボードに追加する +- link: https://www.datadoghq.com/blog/datadog-dashboards/ + tag: ブログ + text: 新しい Datadog ダッシュボードエクスペリエンス +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: ブログ + text: Datadog を使用して効果的なエグゼクティブ向けダッシュボードを設計する +- link: https://app.datadoghq.com/release-notes?category=Dashboards + tag: リリースノート + text: 最新の Datadog ダッシュボードのリリースをチェック!(アプリログインが必要です) title: ダッシュボード --- +## 概要 {#overview} -## 概要 +ダッシュボードは、組織内のシステムやアプリケーションのパフォーマンスと健全性に関するインサイトをリアルタイムで提供します。それらを利用することによりユーザーは、データを視覚的に分析し、主要パフォーマンス指標 (KPI) を追跡したり、トレンドを効率的に監視したりすることができます。ダッシュボードを使用することでチームは、異常を特定し、問題を優先し、問題を事前に検出し、根本原因を診断し、信頼性目標が達成されることを確保できます。チームが情報に基づいた意思決定をし、システムの運用を最適化し、ビジネスの成功を促進できるように、重要な指標やパフォーマンス指標を監視・分析するための集中化された使いやすいインターフェースを提供します。 -ダッシュボードは、組織内のシステムとアプリケーションのパフォーマンスと健全性に関するリアルタイムの洞察を提供します。これにより、ユーザーはデータを視覚的に分析し、キーパフォーマンス指標 (KPI) を追跡し、傾向を効率的に監視できます。ダッシュボードを使用することで、チームは異常の特定、問題の優先順位付け、問題のプロアクティブな検出、根本原因の診断、信頼性目標の達成を確実にすることができます。重要なメトリクスとパフォーマンス指標をモニタリングおよび分析するための一元化された使いやすいインターフェイスを提供することで、十分な情報に基づいた意思決定、システム運用の最適化、ビジネスの成功へと導く力をチームに与えます。 - -{{< whatsnext desc="ダッシュボード機能:">}} - {{< nextlink href="/dashboards/configure" >}}Configure: ダッシュボードの構成オプションの概要{{< /nextlink >}} - {{< nextlink href="/dashboards/list" >}}Dashboard List: ダッシュボードやリストを検索、表示、作成{{< /nextlink >}} - {{< nextlink href="/dashboards/template_variables" >}}Template Variable: ダッシュボードのウィジェットを動的にフィルタリング{{< /nextlink >}} - {{< nextlink href="/service_management/incident_management/datadog_clipboard/" >}}Datadog Clipboard{{< /nextlink >}} - {{< nextlink href="/api/latest/dashboards" >}}API: ダッシュボードをプログラムで管理{{< /nextlink >}} +{{< whatsnext desc="ダッシュボードの機能:">}} + {{< nextlink href="/dashboards/configure" >}}構成: ダッシュボードの構成オプションの概要{{< /nextlink >}} + {{< nextlink href="/dashboards/list" >}}Dashboard List: ダッシュボードやリストを検索、表示、作成する{{< /nextlink >}} + {{< nextlink href="/dashboards/template_variables" >}}テンプレート変数: ダッシュボード内のウィジェットを動的にフィルタリングする{{< /nextlink >}} + {{< nextlink href="/dashboards/guide/datadog_clipboard/" >}}Datadog クリップボード{{< /nextlink >}} + {{< nextlink href="/api/latest/dashboards" >}}API: プログラムでダッシュボードを管理する{{< /nextlink >}} {{< /whatsnext >}} {{< whatsnext desc="グラフ機能:">}} - {{< nextlink href="/dashboards/widgets" >}}ウィジェット: さまざまな視覚化の構成を学ぶ{{< /nextlink >}} - {{< nextlink href="/dashboards/querying" >}}クエリ: グラフクエリのフォーマットオプションを参照{{< /nextlink >}} - {{< nextlink href="/dashboards/functions" >}}関数: メトリクスクエリとその結果のグラフを修正{{< /nextlink >}} - {{< nextlink href="/dashboards/change_overlays" >}}オーバーレイ: 変更イベントを自動的にグラフにオーバーレイ{{< /nextlink >}} + {{< nextlink href="/dashboards/widgets" >}}ウィジェット: さまざまな視覚化の設定を学ぶ{{< /nextlink >}} + {{< nextlink href="/dashboards/querying" >}}クエリ: グラフクエリのフォーマットオプションを見る{{< /nextlink >}} + {{< nextlink href="/dashboards/functions" >}}関数: メトリクスクエリと結果のグラフを修正する{{< /nextlink >}} + {{< nextlink href="/dashboards/change_overlays" >}}オーバーレイ: グラフに変更イベントを自動的にオーバーレイする{{< /nextlink >}} {{< /whatsnext >}} -## 詳細はこちら - -{{< whatsnext desc="以下のリソースをご覧ください:" >}} - {{< nextlink href="/getting_started/dashboards/" >}}ダッシュボードを始める{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/intro-dashboards" >}}学習コース: ダッシュボード入門{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/building-better-dashboards" >}}学習コース: より良いダッシュボードの構築{{< /nextlink >}} -{{< /whatsnext >}} +## 始める {#get-started} -ダッシュボードを作成するには、[ダッシュボードリスト][4]ページの **+New Dashboard** をクリックするか、ナビゲーションメニューから **New Dashboard** をクリックします。ダッシュボード名を入力し、レイアウトオプションを選択します。 +ダッシュボードを作成するには、次のようにします。 +1. [Dashboard List][4] ページで、**+新しいダッシュボード**をクリックするか、ナビゲーションメニューから**新しいダッシュボード**を選択します。 +2. ダッシュボードの名前を入力し、レイアウトオプションを選択します。 {{< img src="dashboards/create-dashboard.png" alt="新しいダッシュボードの追加" style="width:70%;">}} -ダッシュボード -: 画像、グラフ、ログなどのさまざまなオブジェクトを含めることができるグリッドベースのレイアウト。これは通常、ステータスボードやストーリーテリングビューとして使用され、リアルタイムで更新され、過去の定点を表すことができます。グリッドの幅は最大 12 マスで、デバッグにも適しています。 +ダッシュボード +: 画像、グラフ、ログなどのさまざまなオブジェクトを含めることができるグリッドベースのレイアウト。これらは、リアルタイムで更新されるステータスボードやストーリーテリングビューとして広く使用されます。これにより過去の固定時点を表すことができます。最大幅は 12 グリッド平方であり、デバッグにも適しています。 タイムボード -: ダッシュボード全体を定刻またはリアルタイムで表示する自動レイアウト。通常、トラブルシューティング、共同作業、一般データの調査に使用します。 +: ダッシュボード全体で、固定またはリアルタイムのいずれかの単一時点を表す自動レイアウト。これらは、トラブルシューティング、相関関係、一般的なデータ探索のために広く使用されます。 スクリーンボード -: 画像やグラフ、ログなど、様々なオブジェクトを含めることができる自由形式のレイアウトのダッシュボード。リアルタイムに更新されたり、過去の定点を示すステータスボードやストーリーテリングビューとして使われるのが一般的です。 +: 画像、グラフ、ログなどのさまざまなオブジェクトを含めることができる自由形式のレイアウトのダッシュボード。これらは、リアルタイムで更新されるステータスボードや過去の固定ポイントを表すストーリーテリングビューとして広く使用されます。 + +{{< whatsnext desc="次の資料をご覧ください。" >}} + {{< nextlink href="/getting_started/dashboards/" >}}ダッシュボードの概要{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/intro-dashboards" >}}学習コース: ダッシュボードの紹介{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/building-better-dashboards" >}}学習コース: ダッシュボードの高度な活用法{{< /nextlink >}} +{{< /whatsnext >}} -## リフレッシュレート +## リフレッシュレート {#refresh-rate} -プライベートダッシュボードのリフレッシュレートは、表示している時間枠によって異なります。時間枠が短ければ短いほど、データの更新頻度は高くなります。公開共有ダッシュボードは、選択した時間枠に関係なく、30 秒ごとに更新されます。 +プライベートダッシュボードのリフレッシュレートは、表示している時間枠に依存します。時間枠が短いほど、データがより頻繁に更新されます。公開共有ダッシュボードは、選択された時間枠に関係なく、30 秒ごとに更新されます。 | 時間枠 | リフレッシュレート | |--------------|--------------| @@ -90,28 +94,28 @@ title: ダッシュボード | 5 分 | 10 秒 | | 10 分 | 10 秒 | | 30 分 | 20 秒 | -| 1 時間 | 20 秒 | -| 3 時間 | 1 分 | -| 4 時間 | 1 分 | -| 1 日 | 3 分 | -| 2 日 | 10 分 | -| 1 週間 | 1 時間 | -| 1 か月 | 1 時間 | -| 3 か月 | 1 時間 | -| 6 か月 | 1 時間 | -| 1 年 | 1 時間 | +| 1 時間 | 20 秒 | +| 3 時間 | 1 分 | +| 4 時間 | 1 分 | +| 1 日 | 3 分 | +| 2 日 | 10 分 | +| 1 週間 | 1 時間 | +| 1 か月 | 1 時間 | +| 3 か月 | 1 時間 | +| 6 か月 | 1 時間 | +| 1 年 | 1 時間 | -## モバイルデバイスでダッシュボードを表示する +## モバイルデバイスでダッシュボードを表示する {#view-dashboards-on-mobile-devices} -[Apple App Store][2] および [Google Play Store][3] で入手可能な Datadog モバイルアプリを使用すると、モバイルフレンドリーな形式でダッシュボードを表示できます。モバイルアプリには、モバイルアプリを開かなくてもサービスの健全性やインフラストラクチャーを監視できるモバイルホームスクリーンウィジェットが装備されています。 +[Apple App Store][2] や [Google Play Store][3] で提供されている Datadog モバイルアプリにより、モバイルフレンドリーなフォーマットでダッシュボードを表示することができます。モバイルアプリには、モバイルアプリを開かずにサービスの健全性やインフラストラクチャーを監視できるモバイルホーム画面ウィジェットが装備されています。 -**注**: ダッシュボードをセットアップまたは編集するには、Datadog ブラウザ UI にログインする必要があります。アプリのインストールの詳細については、[Datadog モバイルアプリ][1]のドキュメントを参照してください。 +**注**: ダッシュボードの設定や編集を実行するには、Datadog のブラウザ UI にログインする必要があります。アプリのインストールに関する詳細は、[Datadog モバイルアプリ][1]のドキュメントを参照してください。 -## その他の参考資料 +## 参考資料 {#further-reading} -{{< learning-center-callout header="Datadog ラーニングセンターでグラフウィジェットを作成してみる" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/dashboard-graph-widgets">}} 時系列、クエリ値、トップリスト、テーブル、分布、および円グラフのウィジェットを探索します。ウィジェットの構成方法を学び、各ウィジェットタイプをどのような場合に利用すべきかを理解します。 {{< /learning-center-callout >}} +{{< learning-center-callout header="Datadog ラーニングセンターでグラフウィジェットを作成してみてください。" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/dashboard-graph-widgets">}} 時系列、値のクエリ、トップリスト、テーブル、分布、円グラフのウィジェットを試してみてください。ウィジェットを設定する方法を学び、各ウィジェットタイプはどんな場面で使うのかを理解してください。{{< /learning-center-callout >}} -{{< learning-center-callout header="Datadog ラーニングセンターでテーブル、リスト、SLO、アーキテクチャのウィジェットを作成してみる" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/discovering-table-list-widgets">}} テーブル、リスト、SLO、アーキテクチャのウィジェットを探索します。Web アプリケーションのメトリクスとパフォーマンスを追跡する方法を学び、重要なデータをどのように表示するかを理解します。 {{< /learning-center-callout >}} +{{< learning-center-callout header="Datadog 学習センターでテーブル、リスト、SLO、アーキテクチャウィジェットを作成してみてください。" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/discovering-table-list-widgets">}} テーブル、リスト、SLO、アーキテクチャウィジェットを試してみてください。ウェブアプリケーションのメトリクスとパフォーマンスを追跡する方法、重要なデータをどのように提示するのかについて、詳細をご確認ください。{{< /learning-center-callout >}} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/extend/dogstatsd/_index.md b/content/ja/extend/dogstatsd/_index.md new file mode 100644 index 00000000000..4eafdf1b17c --- /dev/null +++ b/content/ja/extend/dogstatsd/_index.md @@ -0,0 +1,635 @@ +--- +aliases: +- /ja/guides/dogstatsd/ +- /ja/guides/DogStatsD/ +- /ja/developers/faq/how-to-remove-the-host-tag-when-submitting-metrics-via-dogstatsd/ +- /ja/integrations/faq/dogstatsd-and-docker +- /ja/agent/kubernetes/dogstatsd +- /ja/developers/dogstatsd/ +description: データタイプ、タグ付けなど、DogStatsD の機能の概要 +further_reading: +- link: integrations/node + tag: ドキュメント + text: Node.js インテグレーションを利用して Node.js 用の DogStatsD を有効にします +- link: extend/dogstatsd + tag: ドキュメント + text: DogStatsD 入門 +- link: extend/libraries + tag: ドキュメント + text: 公式/コミュニティ作成の API および DogStatsD クライアントライブラリ +- link: https://www.datadoghq.com/blog/monitor-azure-app-service-linux/ + tag: ブログ + text: Datadog で Azure App Service 上の Linux Web アプリを監視する +- link: https://www.datadoghq.com/blog/datadog-csi-driver/ + tag: ブログ + text: Datadog の CSI ドライバーにより、高パフォーマンスの監視可能性を提供して Kubernetes 環境のセキュリティを確保する +- link: https://learn.datadoghq.com/courses/create-custom-metrics-dogstatsd + tag: ラーニングセンター + text: DogStatsD を使用して Custom Metrics を作成する +title: DogStatsD +--- +DogStatsD は、Datadog Agent に付属するメトリクス集計サービスです。カスタムアプリケーションメトリクスを最も簡単に Datadog に取り込むには、メトリクスを DogStatsD に送信します。DogStatsD は [StatsD][1] プロトコルを実装すると共に、Datadog 固有の以下の拡張機能を提供します。 + +- ヒストグラムメトリクスタイプ +- サービスチェック +- イベント +- タグ付け + +準拠する StatsD クライアントは、DogStatsD および Agent で動作しますが、その場合、[Datadog 固有の拡張機能](#dive-into-dogstatsd)は含まれません。 + +**注**: DogStatsD は、StatsD のタイマーをネイティブメトリクスタイプとして実装しません (ただし、[ヒストグラム経由でサポートします][2])。 + +DogStatsD は Datadog コンテナレジストリ、GAR、ECR、Azure ACR、および Docker Hub で利用可能です。 + +| レジストリ | イメージ | +| -------------------------- | --------------------------------------- | +| Datadog Container Registry | [registry.datadoghq.com/dogstatsd][33] | +| Google Artifact Registry | [gcr.io/datadoghq/dogstatsd][4] | +| Amazon ECR | [public.ecr.aws/datadog/dogstatsd][34] | +| Azure ACR | datadoghq.azurecr.io/dogstatsd | +| Docker Hub | [hub.docker.com/r/datadog/dogstatsd][3] | + +
Docker Hub はイメージプルレート制限の対象です。Docker Hub のカスタマーでない場合、Datadog では、Datadog コンテナレジストリまたはクラウドプロバイダーのレジストリを使用することが推奨されています。その手順については、コンテナのレジストリを変更するを参照してください。
+ +## 仕組み {#how-it-works} + +DogStatsD は、UDP 経由で[カスタムメトリクス][5]、[イベント][6]、および[サービスチェック][7]を受け入れ、それらを定期的に集計して Datadog に転送します。 + +UDP を使用することによりアプリケーションは、DogStatsD にメトリクスを送信し、応答を待たずに作業を再開できます。DogStatsD が利用できなくなった場合でも、アプリケーションは中断されません。 + +{{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/dogstatsd.png" alt="DogStatsD" >}} + +DogStatsD は、データを受け取ると共に、_フラッシュ間隔_と呼ばれる時間間隔 (デフォルトで 10 秒) でメトリクスごとに複数のデータポイントを 1 つのデータポイントに集計します。DogStatsD では、フラッシュインターバルとして 10 秒が使用されています。 + +## セットアップ {#setup} + +DogStatsD は、Datadog Agent にバンドルされたサーバーと、複数の言語で利用可能なクライアントライブラリとで構成されています。DogStatsD サーバーは、Agent v6+ の UDP ポート `8125` を通じて、デフォルトで有効になっています。必要に応じて、サーバーのカスタムポートを設定できます。Datadog Agent DogStatsD サーバーのアドレスとポートに合わせて、クライアントを設定してください。 + +### Datadog Agent DogStatsD サーバー {#datadog-agent-dogstatsd-server} + +{{< tabs >}} +{{% tab "ホスト Agent" %}} + +ポートを変更する必要がある場合は、メインの [Agent 構成ファイル][1] で `dogstatsd_port` オプションを構成してから、Agent を再起動してください。DogStatsD を [UNIX ドメインソケット][2] で使用するように設定することもできます。 + +独自の Agent DogStatsD サーバーの UDP ポートを有効にするには、次のようにします。 + +1. `dogstatsd_port` パラメータを設定します。 + + ```yaml + ## @param dogstatsd_port - integer - optional - default: 8125 + ## Override the Agent DogStatsD port. + ## Note: Make sure your client is sending to the same UDP port. + # + dogstatsd_port: 8125 + ``` + +2. [Agent を再起動します][3]。 + +[1]: /ja/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[2]: /ja/extend/dogstatsd/unix_socket/ +[3]: /ja/agent/configuration/agent-commands/ +{{% /tab %}} +{{% tab "コンテナ Agent" %}} + +デフォルトの場合、DogStatsD は、UDP ポート **8125** をリッスンしているため、コンテナ内で Agent を実行する際にはこのポートをホストポートにバインドする必要があります。StatsD メトリクスが `localhost` の外部からの場合は、メトリクス収集を許可するために `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` を `true` に設定する必要があります。DogStatsD サーバーを起動した状態で Agent を実行するには、次のコマンドを実行します: + +```shell +docker run -d --cgroupns host \ + --pid host \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -e DD_API_KEY= \ + -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC="true" \ + -p 8125:8125/udp \ + registry.datadoghq.com/agent:latest +``` + +StatsD メトリクスの収集に使用するポートを変更する必要がある場合は、`DD_DOGSTATSD_PORT="` 環境変数を使用してください。DogStatsD を [UNIX ドメインソケット][1] で使用するように設定することもできます。 + +[1]: /ja/extend/dogstatsd/unix_socket/ +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +StatsD メトリクスの収集は、[UNIX ドメインソケット][1]において、デフォルトで有効になっています。UDP 経由で StatsD メトリクスの収集を開始するには、Operator 設定で DogStatsD 機能を有効にする必要があります。 + +1. `features.dogstatsd.hostPortConfig.enabled` を `datadog-agent.yaml` マニフェストに追加します。 + + ```yaml + features: + dogstatsd: + hostPortConfig: + enabled: true + ``` + + This is an example `datadog-agent.yaml` manifest: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + global: + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + features: + dogstatsd: + hostPortConfig: + enabled: true + ``` + + This enables the Agent to collect StatsD metrics over UDP on port `8125`. + +2. 変更を適用します。 + + ```shell + kubectl apply -f datadog-agent.yaml + ``` + +**警告**: `features.dogstatsd.hostPortConfig.hostPort` パラメーターはホスト上のポートを開きます。ファイアウォールが、アプリケーションまたは信頼できるソースからのアクセスのみ許可することを確認してください。ネットワークプラグインで `hostPorts` がサポートされていない場合は、Agent Pod の仕様に `hostNetwork: true` を追加してください。これにより、ホストのネットワークネームスペースが Datadog Agent と共有されます。これは、コンテナ上で開かれるすべてのポートがホスト上でも開かれることを意味します。ホストとコンテナの両方でポートが使用されている場合、それらは競合することにより (同じネットワークネームスペースを共有しているため)、Pod は起動しません。一部の Kubernetes インストールでは、これが許可されません。 + +### StatsD メトリクスを Agent に送信する {#send-statsd-metrics-to-the-agent} + +アプリケーションには、ホストの IP アドレスを特定するための信頼できる手段が必要です。Kubernetes 1.7 ではそれが簡単に実現されています。これにより、Pod に環境変数として渡すことができる属性のセットが拡張されます。バージョン 1.7 以降では、PodSpec に環境変数を追加することで、ホスト IP を任意の Pod に渡すことができます。たとえば、アプリケーションのマニフェストは次のようになります。 + +```yaml +env: + - name: DD_AGENT_HOST + valueFrom: + fieldRef: + fieldPath: status.hostIP +``` + +これにより、アプリケーションを実行している Pod は、`$DD_AGENT_HOST` のポート `8125` で DogStatsD メトリクスを送信できるようになります。 + +**注**: ベストプラクティスとして、Datadog では属性を割り当てる際に統合サービスタグ付けを使用することが推奨されています。unified service tagging は、`env`、`service`、および `version` の 3 つの標準タグを使用して Datadog テレメトリを結び付けます。環境を統一する方法については、[unified service tagging][4]を参照してください。 + +[1]: /ja/extend/dogstatsd/unix_socket/ +[2]: https://github.com/containernetworking/cni +[3]: https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#hostport-services-do-not-work +[4]: /ja/getting_started/tagging/unified_service_tagging +{{% /tab %}} +{{% tab "Helm" %}} + +[DogStatsD][1] で helm を使用してカスタムメトリクスを収集するには: + +1. [datadog-values.yaml][2] ファイルを更新して DogStatsD を有効にします。 + + ```yaml + dogstatsd: + port: 8125 + useHostPort: true + nonLocalTraffic: true + ``` + + **Note**: `hostPort` functionality requires a networking provider that adheres to the [CNI specification][3], such as Calico, Canal, or Flannel. For more information, including a workaround for non-CNI network providers, see the Kubernetes documentation: [HostPort services do not work][4]. + + **Warning**: The `hostPort` parameter opens a port on your host. Make sure your firewall only allows access from your applications or trusted sources. If your network plugin doesn't support `hostPorts`, so add `hostNetwork: true` in your Agent pod specifications. This shares the network namespace of your host with the Datadog Agent. It also means that all ports opened on the container are opened on the host. If a port is used both on the host and in your container, they conflict (since they share the same network namespace) and the pod does not start. Some Kubernetes installations do not allow this. + +2. Agent コンフィギュレーションをアップグレードします。 + + ``` shell + helm upgrade -f datadog-values.yaml datadog/datadog + ``` + +3. アプリケーション Pod を更新する: アプリケーションには、ホストの IP アドレスを特定するための信頼できる手段が必要です。Kubernetes 1.7 ではそれが簡単に実現されています。これにより、Pod に環境変数として渡すことができる属性のセットが拡張されます。バージョン 1.7 以降では、PodSpec に環境変数を追加することで、ホスト IP を任意の Pod に渡すことができます。たとえば、アプリケーションのマニフェストは次のようになります。 + + ```yaml + env: + - name: DD_AGENT_HOST + valueFrom: + fieldRef: + fieldPath: status.hostIP + ``` + + With this, any pod running your application is able to send DogStatsD metrics through port `8125` on `$DD_AGENT_HOST`. + +[1]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/ +[2]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml +[3]: https://github.com/containernetworking/cni +[4]: https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#hostport-services-do-not-work +{{% /tab %}} +{{< /tabs >}} + +### 発信点検出 {#origin-detection} + +Datadog Agent v6.10.0 では、_発信点検出_の機能がサポートされています。これにより、DogStatsD はコンテナメトリクスの発信元を検出し、自動的にメトリクスにタグを付けることができます。発信点検出が有効になっている場合、UDP 経由で受信したすべてのメトリクスには同一の Pod タグが付与されます。 +Autodiscovery メトリクスとしてのタグ。 + +#### DogStatsD クライアント{#in-a-dogstatsd-client} + +すべての DogStatsD クライアントにおいて、発信点検出はデフォルトで有効になっています。 + +クライアントで**発信点検出を無効にする**には、次のいずれかの操作を実行します。 +- 環境変数 `DD_ORIGIN_DETECTION_ENABLED=false` を設定します。 +- 発信点検出を無効にするよう、DogStatsD ライブラリを構成します。その手順については、[特定の DogStatsD ライブラリのドキュメント][10]を参照してください。 + +#### Datadog Agent{#in-the-datadog-agent} +Datadog Agent において、発信点検出はデフォルトでは有効になっていません。Datadog Agent で**発信点検出を有効にする**には、`DD_DOGSTATSD_ORIGIN_DETECTION_CLIENT` 環境変数を `true` に設定します。 + +Agent による EKS Fargate での発信点検出を支援するように、[Pod 仕様で `shareProcessNamespace:true`][12] を設定します。 + +#### 発信点検出方法 {#how-origins-are-detected} + +発信点検出はさまざまな方法で実現できます。デフォルトでは、cgroups を通じた発信点検出が有効になっています。UDP 経由の発信点検出または `DD_EXTERNAL_ENV` については、構成が必要です。 + +{{< tabs >}} +{{% tab "cgroups" %}} +Linux の場合、コンテナ ID は `procfs` に関連するエントリから `cgroups` を抽出することで取得できます。クライアントは `/proc/self/cgroup` または `/proc/self/mountinfo` から読み取って、コンテナ ID の解析を試みます。 + +cgroup v2 では、`/proc/self/cgroup` から cgroup パスを解決し、`/proc/self/mountinfo` からの cgroup マウントポイントと組み合わせることによりコンテナ ID を推測できます。結果として得られるディレクトリの inode が Datadog Agent に送信されます。Datadog Agent がクライアントと同じノードにある場合、この情報を使用して Pod の UID を特定できます。 +{{% /tab %}} + +{{% tab "UDP" %}} +UDP 経由の発信点検出を有効にするには、アプリケーションマニフェストに次の行を追加します。 + +```yaml +env: +- name: DD_ENTITY_ID + valueFrom: + fieldRef: + fieldPath: metadata.uid +``` + +DogStatsD クライアントが内部タグ `entity_id` を追加します。このタグの値は `DD_ENTITY_ID` 環境変数の内容であり、それは Pod の UID です。 + +
UDP の場合、pod_name タグは、デフォルトでは追加されません。カスタムメトリクスが多くなりすぎないようにするためです。
+{{% /tab %}} + +{{% tab "DD_EXTERNAL_ENV" %}} +自分の Pod に以下のラベルを追加します。 + +``` +admission.datadoghq.com/enabled: "true" +``` + +Pod にこのラベルがある場合、[Admissions Controller][1] により環境変数 `DD_EXTERNAL_ENV` が注入されます。この変数の値がメトリクスと共にフィールドに入れられて送信されます。Datadog Agent は、これを使用してメトリクスの発信点を特定できます。 + +[1]: /ja/containers/cluster_agent/admission_controller +{{% /tab %}} +{{< /tabs >}} + +#### タグのカーディナリティ {#tag-cardinality} + +タグのカーディナリティについて詳しくは、[タグの付け方: タグのカーディナリティ][11]をお読みください。 + +##### グローバルに {#globally} + +`DD_CARDINALITY` 環境変数を設定するか、またはコンストラクタに `'cardinality'` フィールドを渡すことにより、タグのカーディナリティをグローバルに指定できます。 + +##### メトリクスごとに {#per-metric} + +`cardinality` パラメーターに値を渡すことにより、メトリクスごとにタグのカーディナリティを指定できます。このパラメーターの有効な値は `"none"`、`"low"`、`"orchestrator"` または `"high"` です。 + +### DogStatsD クライアント {#dogstatsd-client} + +使用するプログラミング言語向けの DogStatsD クライアントライブラリをインストールし、Datadog Agent DogStatsD サーバーのアドレスとポートに合わせて構成してください。 + +#### DogStatsD クライアントをインストールする {#install-the-dogstatsd-client} + +公式の Datadog-DogStatsD クライアントライブラリは、以下の言語で利用可能です。準拠する StatsD クライアントは、DogStatsD および Agent で動作しますが、前述の Datadog 固有の拡張機能は含まれません。 +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} + +{{< programming-lang lang="python" >}} + +```shell +pip install datadog +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="ruby" >}} + +```shell +gem install dogstatsd-ruby +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="go" >}} + +```shell +go get github.com/DataDog/datadog-go/v5/statsd +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="java" >}} + +Java DataDog StatsD Client は maven central とともに配布され、[Maven からダウンロード][1]できます。まず、`pom.xml` に次の構成を追加します。 + +```xml + + com.datadoghq + java-dogstatsd-client + 4.2.1 + +``` + +[1]: https://search.maven.org/search?q=g:com.datadoghq%20a:java-dogstatsd-client +{{< /programming-lang >}} + +{{< programming-lang lang="PHP" >}} + +`composer.json` に次の内容を追加します。 + +```text +"datadog/php-datadogstatsd": "1.6.*" +``` + +**注**: Composer に付属している最初のバージョンは _0.0.3_ です。 + +または、[github.com/DataDog/php-datadogstatsd][1] でリポジトリのクローンを手動で作成し、`require './src/DogStatsd.php'` でそれをセットアップします。 + + + +[1]: https://github.com/DataDog/php-datadogstatsd#php-datadog-statsd-client +{{< /programming-lang >}} + +{{< programming-lang lang=".NET" >}} + +Nuget CLI を使用してパッケージを直接インストールするか、[NuGet から PackageReference][1] を取得します。 + +```shell +dotnet add package DogStatsD-CSharp-Client +``` + +[1]: https://www.nuget.org/packages/DogStatsD-CSharp-Client +{{< /programming-lang >}} + +{{< /programming-lang-wrapper >}} + + +#### DogStatsD クライアントをインスタンス化する {#instantiate-the-dogstatsd-client} + +DogStatsD クライアントをインストールしたら、コードでインスタンス化します。 +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} + +{{< programming-lang lang="python" >}} + +```python +from datadog import initialize, statsd + +options = { + 'statsd_host':'127.0.0.1', + 'statsd_port':8125 +} + +initialize(**options) +``` + +
+ デフォルトの場合、Python DogStatsD クライアントインスタンス ( statsd グローバルインスタンスを含む)をプロセス間で共有することはできませんが、それらはスレッドセーフです。このため、親プロセスと各子プロセスは、クライアントの独自インスタンスを作成するか、 disable_bufferingTrueに設定して、バッファリングを明示的に無効にする必要があります。詳細については、datadog.dogstatsd のドキュメントを参照してください。 +
+ +{{< /programming-lang >}} + +{{< programming-lang lang="ruby" >}} + +```ruby +# Import the library +require 'datadog/statsd' + +# Create a DogStatsD client instance. +statsd = Datadog::Statsd.new('localhost', 8125) +``` + +
+ DogStatsD をコンテナ Agent と共に、または Kubernetes で使用する場合、UNIX ドメインソケットを使用しているなら $DD_DOGSTATSD_SOCKET 環境変数を、あるいはホストポートバインディング方式を使用している場合は $DD_AGENT_HOST 環境変数を使用して、StatsD メトリクスの転送先のホストをインスタンス化する必要があります。 +
+ +{{< /programming-lang >}} + +{{< programming-lang lang="go" >}} + +```go +dogstatsd_client, err := statsd.New("127.0.0.1:8125") +if err != nil { + log.Fatal(err) +} +``` + +その他のオプションについては、[Datadog の GoDoc][1] を参照してください。 + + + +[1]: https://pkg.go.dev/github.com/DataDog/datadog-go/v5/statsd +{{< /programming-lang >}} + +{{< programming-lang lang="java" >}} + +```java +import com.timgroup.statsd.NonBlockingStatsDClientBuilder; +import com.timgroup.statsd.StatsDClient; + +public class DogStatsdClient { + + public static void main(String[] args) throws Exception { + + StatsDClient statsd = new NonBlockingStatsDClientBuilder() + .prefix("statsd") + .hostname("localhost") + .port(8125) + .build(); + + + // alternatively + StatsDClient statsdAlt = new NonBlockingStatsDClient( + new NonBlockingStatsDClientBuilder( + .prefix("statsd") + .hostname("localhost") + .port(8125) + .resolve())); + + } +} +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="PHP" >}} + +composer を使用して、新しい DogStatsd オブジェクトをインスタンス化します。 + +```php + '127.0.0.1', + 'port' => 8125, + ) + ); +``` + +{{< /programming-lang >}} + +{{< programming-lang lang=".NET" >}} + +DogStatsd クラスを構成します。 + +```csharp +// The code is located under the StatsdClient namespace +using StatsdClient; + +// ... + +var dogstatsdConfig = new StatsdConfig +{ + StatsdServerName = "127.0.0.1", + StatsdPort = 8125, +}; + +using (var dogStatsdService = new DogStatsdService()) +{ + if (!dogStatsdService.Configure(dogstatsdConfig)) + throw new InvalidOperationException("Cannot initialize DogstatsD. Set optionalExceptionHandler argument in the `Configure` method for more information."); + // ... +} // Flush metrics not yet sent +``` + +{{< /programming-lang >}} + +{{< /programming-lang-wrapper >}} + +### クライアントのインスタンス化パラメーター {#client-instantiation-parameters} + +**注**: ベストプラクティスとして、Datadog はタグを割り当てるときに統合サービスタグ付けを使用することをお勧めします。unified service tagging は、`env`、`service`、および `version` の 3 つの標準タグを使用して Datadog テレメトリを結び付けます。環境を統一する方法については、[unified service tagging][8]を参照してください。 + +必須の DogStatsD 構成 (`url` と `port`) に加えて、DogStatsD クライアントでは次のオプションのパラメーターを使用できます。 + +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} +{{< programming-lang lang="python" >}} +| パラメーター | 型 | デフォルト | 説明 | +| ---------------------- | --------------- | ----------- | -------------------------------------------------------------------------------------------------------------- | +| `statsd_host` | 文字列 | `localhost` | DogStatsD サーバーのホスト。 | +| `statsd_port` | 整数 | `8125` | DogStatsD サーバーのポート。 | +| `statsd_socket_path` | 文字列 | `null` | DogStatsD UNIX ドメインソケットのパス (`host` と `port` をオーバーライド。Agent v6 以上でのみサポート)。| +| `statsd_constant_tags` | 文字列のリスト | `null` | すべてのメトリクス、イベント、サービスチェックに適用するタグ。 | +| `statsd_namespace` | 文字列 | `null` | すべてのメトリクス、イベント、サービスチェックの前に付けるネームスペース。 | + +`datadog.initialize()` で使用できるオプションのパラメーターと、`datadog.dogstatsd.DogStatsd` インスタンスを明示的にインスタンス化する場合にのみ使用できるパラメーターの完全なリストについては、[Datadog Python ライブラリ][1]を参照してください。 + + +[1]: https://datadogpy.readthedocs.io/en/latest +{{< /programming-lang >}} +{{< programming-lang lang="ruby" >}} + +| パラメーター | 型 | デフォルト | 説明 | +| --------------- | --------------- | ----------- | -------------------------------------------------------------------------------------------------------------- | +| `host` | 文字列 | `localhost` | DogStatsD サーバーのホスト。 | +| `port` | 整数 | `8125` | DogStatsD サーバーのポート。 | +| `socket_path` | 文字列 | `null` | DogStatsD UNIX ドメインソケットのパス (`host` と `port` をオーバーライド。Agent v6 以上でのみサポート)。| +| `tags` | 文字列のリスト | `null` | すべてのメトリクス、イベント、サービスチェックに適用するタグ。 | +| `namespace` | 文字列 | `null` | すべてのメトリクス、イベント、サービスチェックの前に付けるネームスペース。 | +| `single_thread` | ブール値 | `false` | コンパニオンスレッドではなく、有効になっている場合、クライアントがメインスレッドでメトリクスを送信するようにします。 | + +オプションのパラメーターの完全なリストについては、GitHub の [dogstatsd-ruby リポジトリ][1]を参照してください。 + + +[1]: https://github.com/DataDog/dogstatsd-ruby +{{< /programming-lang >}} +{{< programming-lang lang="go" >}} + +Go クライアントには、クライアントの動作を設定するための複数のオプションがあります。 + +| パラメーター | 型 | 説明 | +| ----------------- | --------------- | --------------------------------------------------------------------------- | +| `WithNamespace()` | 文字列 | すべてのメトリクス、イベント、サービスチェックの前に付けるネームスペースを構成します。| +| `WithTags()` | 文字列のリスト | すべてのメトリクス、イベント、サービスチェックに適用されるグローバルタグ。 | + +利用可能なすべてのオプションについては、[Datadog の GoDoc][1] を参照してください。 + + +[1]: https://pkg.go.dev/github.com/DataDog/datadog-go/v5/statsd#Option +{{< /programming-lang >}} +{{< programming-lang lang="java" >}} + +v2.10.0 以降では、NonBlockingStatsDClientBuilder を使ってクライアントをインスタンス化することを推奨します。以下の +ビルダーメソッドを使用して、クライアントのパラメータを定義することができます。次のビルダーメソッドを使用してクライアントパラメーターを定義できます。 + +| ビルダーメソッド | 型 | デフォルト | 説明 | +| -------------------------------------------- | -------------- | --------- | ---------------------------------------------------------------------------------- | +| `prefix(String val)` | 文字列 | null | すべてのメトリクス、イベント、サービスチェックに適用するプレフィックス。 | +| `hostname(String val)` | 文字列 | localhost | ターゲット StatsD サーバーのホスト名。 | +| `port(int val)` | 整数 | 8125 | ターゲット StatsD サーバーのポート。 | +| `constantTags(String... val)` | 文字列 varargs | null | すべてのメトリクス、イベント、サービスチェックに適用されるグローバルタグ。 | +| `blocking(boolean val)` | ブール値 | false | インスタンス化するクライアントのタイプ: ブロッキングか非ブロッキングか。 | +| `socketBufferSize(int val)` | 整数I | -1 | 基礎となるソケットバッファのサイズ。 | +| `enableTelemetry(boolean val)` | ブール値 | false | クライアントテレメトリーレポート。 | +| `entityID(String val)` | 文字列 | null | 発信点検出のためのエンティティ ID。 | +| `errorHandler(StatsDClientErrorHandler val)` | 整数 | null | クライアント内部でエラーが発生した場合のエラーハンドラー。 | +| `maxPacketSizeBytes(int val)` | 整数 | 8192/1432 | 最大パケットサイズ、UDS で 8192、UDP で 1432。 | +| `processorWorkers(int val)` | 整数 | 1 | 送信のためにバッファを組み立てているプロセッサーワーカスレッドの数。 | +| `senderWorkers(int val)` | 整数 | 1 | ソケットにバッファを送信している送信側ワーカスレッドの数。 | +| `poolSize(int val)` | 整数 | 512 | ネットワークパケットバッファプールのサイズ。 | +| `queueSize(int val)` | 整数 | 4096 | キュー内の未処理メッセージの最大数。 | +| `timeout(int val)` | 整数 | 100 | ブロック操作のタイムアウト (ミリ秒単位)。unix ソケットにのみ適用されます。| + +詳細は、Java DogStatsD [パッケージ][1]の NonBlockingStatsDClient Class と NonBlockingStatsDClientBuilder Class を検索してください。ご利用のクライアントリリースに対応したバージョンであることを確認してください。 + + +[1]: https://javadoc.io/doc/com.datadoghq/java-dogstatsd-client/latest/index.html +{{< /programming-lang >}} +{{< programming-lang lang="PHP" >}} + +| パラメーター | 型 | デフォルト | 説明 | +| ------------------ | --------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `host` | 文字列 | `localhost` | DogStatsD サーバーのホスト。これが設定されていない場合、Agent は環境変数 `DD_AGENT_HOST` または `DD_DOGSTATSD_URL` を参照します。 | +| `port` | 整数 | `8125` | DogStatsD サーバーのポート。これが設定されていない場合、Agent は環境変数 `DD_DOGSTATSD_PORT` または `DD_DOGSTATSD_URL` を参照します。 | +| `socket_path` | 文字列 | `null` | DogStatsD UNIX ドメインソケットのパス (`host` と `port` をオーバーライド)。Agent v6 以上でのみサポート。これが設定されていない場合、Agent は環境変数 `DD_DOGSTATSD_URL` を参照します。| +| `global_tags` | 文字列のリスト | `null` | すべてのメトリクス、イベント、サービスチェックに適用するタグ。`@dd.internal.entity_id` タグは、`DD_ENTITY_ID` 環境変数の global_tags に追加されます。 | +| `origin_detection` | ブール値 | true | 各メトリクスに発信点検出フィールドを追加するかどうか | +| `container_id` | 文字列 | `null` | 発信点検出のためにすべてのメトリクスにタグ付けするコンテナ ID。 | + +{{< /programming-lang >}} +{{< programming-lang lang=".NET" >}} + +| パラメーター | 型 | デフォルト | 説明 | +| ------------------ | --------------- | ----------- | -------------------------------------------------------------------- | +| `StatsdServerName` | 文字列 | `localhost` | ターゲット StatsD サーバーのホスト名。 | +| `StatsdPort` | 整数 | `8125` | ターゲット StatsD サーバーのポート。 | +| `Prefix` | 文字列 | `null` | すべてのメトリクス、イベント、サービスチェックに適用するプレフィックス。 | +| `ConstantTags` | 文字列のリスト | `null` | すべてのメトリクス、イベント、サービスチェックに適用されるグローバルタグ。| +| `OriginDetection` | ブール値 | true | 各メトリクスに発信点検出フィールドを追加するかどうか | +| `ContainerID` | 文字列 | `null` | 発信点検出のためにすべてのメトリクスにタグ付けするコンテナ ID。 | + +{{< /programming-lang >}} +{{< /programming-lang-wrapper >}} + +## DogStatsD の詳細 {#dive-into-dogstatsd} + +DogStatsD と StatsD はほぼ同じですが、DogStatsD には、使用可能なデータ型、イベント、サービスチェック、タグなど、Datadog に固有の高度な機能が含まれています。 + +{{< whatsnext desc="">}} +{{< nextlink href="/metrics/custom_metrics/dogstatsd_metrics_submission/" >}}DogStatsD により Datadogにメトリクスを送信します。{{< /nextlink >}} +{{< nextlink href="/events/guides/dogstatsd/" >}}DogStatsD により Datadogにイベントを送信します。{{< /nextlink >}} +{{< nextlink href="/extend/service_checks/dogstatsd_service_checks_submission/" >}}DogStatsD により Datadogにサービスチェックを送信します。{{< /nextlink >}} +{{< /whatsnext >}} + +DogStatsD が使用するデータグラム形式についてさらに理解を深めたい場合、または独自の Datadog ライブラリを開発したい場合は、[データグラムとシェルの使用状況][9]を参照してください。ここでは、メトリクスとイベントをコマンドラインから直接送信する方法についても説明しています。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/statsd/statsd +[2]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/ +[3]: https://hub.docker.com/r/datadog/dogstatsd +[4]: https://gcr.io/datadoghq/dogstatsd +[5]: /ja/metrics/custom_metrics/ +[6]: /ja/events/guides/dogstatsd/ +[7]: /ja/extend/service_checks/dogstatsd_service_checks_submission/ +[8]: /ja/getting_started/tagging/unified_service_tagging +[9]: /ja/extend/dogstatsd/datagram_shell/ +[10]: /ja/extend/community/libraries/ +[11]: /ja/getting_started/tagging/assigning_tags/?tab=containerizedenvironments#tags-cardinality +[12]: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/ +[33]: https://registry.datadoghq.com/v2/dogstatsd/tags/list +[34]: https://gallery.ecr.aws/datadog/dogstatsd \ No newline at end of file diff --git a/content/ja/getting_started/_index.md b/content/ja/getting_started/_index.md index 487b023b19d..bc6df625a2d 100644 --- a/content/ja/getting_started/_index.md +++ b/content/ja/getting_started/_index.md @@ -4,8 +4,9 @@ aliases: - /ja/getting_started/faq/ cascade: algolia: - category: はじめに + category: Getting Started rank: 50 +description: Datadog の可観測性プラットフォームの概要と、インストール、構成、主要機能の使用方法を紹介します。 disable_sidebar: true further_reading: - link: https://learn.datadoghq.com/ @@ -15,16 +16,18 @@ further_reading: tag: ブログ text: Datadog の新しい製品や機能、インテグレーションについて学びましょう - link: https://app.datadoghq.com/help/quick_start - tag: アプリ + tag: App text: クイックスタートガイドを見る +- link: https://learn.datadoghq.com/courses/introduction-to-observability + tag: ラーニングセンター + text: 観測可能性の紹介 title: はじめに --- +## Datadog とは{#what-is-datadog} -## Datadog とは? - -Datadog は、任意のスタックでのソフトウェア開発の各フェーズを支援する可観測性プラットフォームです。このプラットフォームは、ビルド、テスト、監視、デバッグ、最適化、セキュリティ確保のための多様な製品から構成されており、これらは単独で使用することも、カスタマイズされたソリューションとして組み合わせることも可能です。 +Datadog は、テクノロジースタックの種類を問わず、ソフトウェア開発のあらゆるフェーズをサポートする可観測性プラットフォームです。このプラットフォームは、ソフトウェアの構築、テスト、監視、デバッグ、最適化、セキュリティ保護に役立つ多くの製品で構成されています。これらの製品は個別に使用することも、組み合わせてカスタマイズされたソリューションとして使用することもできます。 -以下の表は、Datadog 製品の例をいくつか列挙したものです。 +以下の表に、Datadog 製品の例をいくつか示します。 @@ -35,26 +38,26 @@ Datadog は、任意のスタックでのソフトウェア開発の各フェー - + @@ -62,79 +65,89 @@ Datadog は、任意のスタックでのソフトウェア開発の各フェー - +

開発

    -
  • Code Analysis を使って、テキストエディタや GitHub 上でコードの脆弱性を明示します。
  • -
  • CoScreen を使って遠隔ペアプログラミングセッションを促進します。
+
  • Code Security を使用して、テキストエディターまたは GitHub でコードの脆弱性を強調表示します。
  • +
  • CoScreen を使用して、リモートペアプログラミングセッションを円滑に実施します。
  • テスト

      -
    • Quality Gates を使って、欠陥のあるコードが本番環境にデプロイされるのをブロックします。
    • -
    • Synthetic Monitoring を使って、世界中のユーザーをシミュレートし、Web アプリ、API、モバイルアプリケーションをテストします。
    • +
    • PR Gates を使用して、問題のあるコードが本番環境にデプロイされるのをブロックします。
    • +
    • Synthetic Monitoring を使用して、世界中のユーザーをシミュレートし、Web アプリ、API、モバイルアプリケーションをテストします。

    監視

    モニター

    トラブルシューティング

    セキュリティ

    セキュリティ

    -さらに、何百もの[インテグレーション][1]により、既に使用しているテクノロジーに Datadog の機能を統合することができます。例えば、[AWS インテグレーション][2]は、90 以上の AWS サービスからログ、イベント、メトリクスを収集します。 +さらに、数百種類の[インテグレーション][1] により、すでに使用しているテクノロジーに Datadog の機能を追加できます。たとえば、[AWS インテグレーション][2] では、90 を超える AWS サービスからログ、イベント、メトリクスが収集されます。 -## 詳細を見る +## 詳細はこちら {#learn-more} -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/session/datadog-overview/">}} - この基礎セミナーでは、「Datadog とは何か、そしてそれが自分にとって何をしてくれるのか?」という重要な質問に答える手助けをします。Datadog にデータを送信する方法や、さまざまな環境、アプリケーション、インフラストラクチャーの状態をよりよく理解するためにどのページを訪れるべきかを学びます。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/session/datadog-overview/">}} + この基本的なイネーブルセッションでは、「Datadog とは何か、何ができるのか」という疑問に答えます。Datadog にデータを送信する方法と、さまざまな環境、アプリケーション、インフラストラクチャーの状態を把握するために確認すべきページについて学習します。 {{< /learning-center-callout >}} -### コースを受講 -Datadog ラーニングセンターでは、Datadog プラットフォームを実際に体験することができます。[はじめにコース][3]では、可観測性の実践や Datadog のキーコンセプトなどを学ぶことができます。 +### コースを受講する {#take-a-course} +Datadog ラーニングセンターでは、Datadog プラットフォームを実際に体験できます。[Getting Started コース][3] では、可観測性のベストプラクティスや Datadog の主なコンセプトなどについて解説します。 Datadog を操作するための最速の入門コースとして、[クイックスタートコース][4]が用意されています。 -### 製品エリアをさらに深掘りする -{{< whatsnext desc="Get started with one of the guides below:">}} -{{< nextlink href="/getting_started/application" >}}Datadog: ダッシュボード、インフラストラクチャーリスト、マップなど、Datadog UI の使い方をご紹介します。{{< /nextlink >}} +### 製品分野をさらに詳しく見る {#dive-deeper-into-a-product-area} +{{< whatsnext desc="以下のガイドのいずれかから始めてください。">}} +{{< nextlink href="/getting_started/application" >}}Datadog: Datadog UI の使用方法を学びます。ダッシュボード、インフラストラクチャーリスト、マップなど。{{< /nextlink >}} {{< nextlink href="/getting_started/site" >}}Datadog サイト: 地域とセキュリティ要件に適した Datadog サイトを選択します。{{< /nextlink >}} -{{< nextlink href="/getting_started/devsecops" >}}DevSecOps バンドル: APM DevSecOps およびインフラストラクチャー DevSecOps バンドルで始めましょう。{{< /nextlink >}} +{{< nextlink href="/getting_started/devsecops" >}}DevSecOps バンドル: Infrastructure DevSecOps バンドルの使用を開始します。{{< /nextlink >}} {{< nextlink href="/getting_started/agent" >}}Agent: ホストから Datadog にメトリクスとイベントを送信します。{{< /nextlink >}} -{{< nextlink href="/getting_started/api" >}}API: Datadog HTTP API を使い始めましょう。{{< /nextlink >}} -{{< nextlink href="/getting_started/integrations" >}}インテグレーション: Datadog インテグレーションによるメトリクス、トレース、ログの収集方法をご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/tagging" >}}タグ: メトリクス、ログ、トレースのタグ付けを始めましょう。{{< /nextlink >}} -{{< nextlink href="/getting_started/opentelemetry" >}}OpenTelemetry: OpenTelemetry のメトリクス、トレース、ログを Datadog に送信する方法をご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/learning_center" >}}ラーニングセンター: ラーニングパスをたどったり、セルフガイドのクラスやラボを受講したり、Datadog 認定プログラムを探したりすることができます。{{< /nextlink >}} +{{< nextlink href="/getting_started/api" >}}API: Datadog HTTP API の使用を開始します。{{< /nextlink >}} +{{< nextlink href="/getting_started/integrations" >}}Integrations: Datadog インテグレーションを使用して、メトリクス、トレース、ログを収集する方法を学びます。{{< /nextlink >}} +{{< nextlink href="/getting_started/search" >}}検索: Datadog 製品全体の検索とフィルタリングの基礎を学びます。{{< /nextlink >}} +{{< nextlink href="/getting_started/tagging" >}}タグ: メトリクス、ログ、トレースのタグ付けを開始します。{{< /nextlink >}} +{{< nextlink href="/getting_started/opentelemetry" >}}OpenTelemetry: OpenTelemetry のメトリクス、トレース、ログを Datadog に送信する方法を学びます。{{< /nextlink >}} +{{< nextlink href="/getting_started/learning_center" >}}ラーニングセンター: 学習パスに従って、セルフガイドのクラスまたはラボを受講します。Datadog 認定プログラムについて調べることもできます。{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="Platform Services:">}} -{{< nextlink href="/getting_started/dashboards" >}}ダッシュボード: 重要な業務質問に答えるためのダッシュボードを作成、共有、維持します。{{< /nextlink >}} -{{< nextlink href="/getting_started/monitors" >}}モニター: アラートと通知をセットアップして、重要な変更が発生したときにチームに通知します。{{< /nextlink >}} -{{< nextlink href="/getting_started/incident_management" >}}Incident Management: システムの問題を伝え、追跡します。{{< /nextlink >}} -{{< nextlink href="/getting_started/workflow_automation" >}}Workflow Automation: アラートやセキュリティシグナルへの対応として、エンドツーエンドプロセスを自動化します。{{< /nextlink >}} +{{< whatsnext desc="プラットフォームサービス:">}} +{{< nextlink href="/getting_started/dashboards" >}}ダッシュボード: 業務上の重要な疑問を解決できるダッシュボードを作成、共有、維持します。{{< /nextlink >}} +{{< nextlink href="/getting_started/incident_management" >}}Incident Management: システム内の問題を伝達および追跡します。{{< /nextlink >}} +{{< nextlink href="/getting_started/monitors" >}}モニター: 重要な変更の発生をチームに知らせるために、アラートと通知を設定します。{{< /nextlink >}} +{{< nextlink href="/getting_started/notebooks" >}}ノートブック: ライブグラフ、メトリクス、ログ、モニターを組み合わせて問題を切り分け、インタラクティブガイドを作成します。{{< /nextlink >}} +{{< nextlink href="/getting_started/organization_topology" >}}組織トポロジ―: 単一組織と複数組織の Datadog デプロイメントを選択し、アクセス制御により分離を管理します。{{< /nextlink >}} +{{< nextlink href="/getting_started/teams" >}}Teams: アイデンティティプロバイダー、GitHub、その他のソースと Datadog とでチームデータの同期を取ることにより、信頼性の高い所有モデルを構築します。{{< /nextlink >}} +{{< nextlink href="/getting_started/workflow_automation" >}}Workflow Automation: アラートやセキュリティシグナルに応じて、エンドツーエンドの処理を自動化します。{{< /nextlink >}} {{< /whatsnext >}} {{< whatsnext desc="製品:">}} -{{< nextlink href="/getting_started/containers" >}}コンテナ: Agent オートディスカバリーと Datadog オペレーターの使用方法をご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/serverless" >}}Serverless for AWS Lambda: サーバーレスインフラストラクチャーからメトリクス、ログ、トレースを収集する方法をご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/service_catalog" >}}サービスカタログ: サービスカタログで、サービスの所有権、信頼性、パフォーマンスを大規模に管理します。 {{< /nextlink >}} -{{< nextlink href="/getting_started/tracing" >}}トレーシング: Agent をセットアップして、小さなアプリケーションをトレースします。{{< /nextlink >}} -{{< nextlink href="/getting_started/profiler" >}}Profiler: Continuous Profiler を使用して、コードのパフォーマンス問題を発見し、修正します。{{< /nextlink >}} +{{< nextlink href="/getting_started/containers" >}}コンテナ: Agent Autodiscovery と Datadog Operator の使用方法を学習します。{{< /nextlink >}} +{{< nextlink href="/getting_started/serverless" >}}Serverless for AWS Lambda: サーバーレスインフラストラクチャーからメトリクス、ログ、トレースを収集する方法を学びます。{{< /nextlink >}} +{{< nextlink href="/getting_started/internal_developer_portal" >}}Internal Developer Portal: テレメトリ、メタデータ、ワークフローを統合してデリバリーを加速します。{{< /nextlink >}} +{{< nextlink href="/getting_started/tracing" >}}トレース: 小規模なアプリケーションをトレースするために Agent を設定します。{{< /nextlink >}} +{{< nextlink href="/getting_started/profiler" >}}Profiler: Continuous Profiler を使用してコード内のパフォーマンスの問題を発見し、修正します。{{< /nextlink >}} {{< nextlink href="/getting_started/database_monitoring" >}}Database Monitoring: データベースの健全性とパフォーマンスを表示し、発生した問題を迅速にトラブルシューティングします。{{< /nextlink >}} -{{< nextlink href="/getting_started/synthetics" >}}Synthetic Monitoring: Synthetic テストを使って、API エンドポイントと主要なビジネスジャーニーのテストと監視を開始します。{{< /nextlink >}} -{{< nextlink href="/getting_started/continuous_testing" >}}Continuous Testing: CI パイプラインや IDE でエンドツーエンドの Synthetic テストを実行します。{{< /nextlink >}} -{{< nextlink href="/getting_started/session_replay" >}}Session Replay: Session Replay を利用して、ユーザーが製品とどのようにやり取りしているかを詳細に確認します。{{< /nextlink >}} -{{< nextlink href="/getting_started/application_security" >}}Application Security Management: ASM を利用してチームが本格的に運用を開始できるようにするためのベストプラクティスをご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/cloud_security_management" >}}Cloud Security Management: CSM を利用してチームが本格的に運用を開始できるようにするためのベストプラクティスをご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/cloud_siem" >}}Cloud SIEM: Cloud SIEM を利用してチームが本格的に運用を開始できるようにするためのベストプラクティスをご紹介します。{{< /nextlink >}} -{{< nextlink href="/getting_started/logs" >}}Logs: 最初のログを送信し、ログ処理を使ってログを充実させましょう。{{< /nextlink >}} -{{< nextlink href="/getting_started/ci_visibility" >}}CI Visibility: CI プロバイダーとのインテグレーションをセットアップすることで、CI パイプラインデータを収集します。{{< /nextlink >}} -{{< nextlink href="/getting_started/test_optimization" >}}Test Optimization: Datadog でテストサービスをセットアップして、CI テストデータを収集します。{{< /nextlink >}} -{{< nextlink href="/getting_started/test_impact_analysis" >}}Test Impact Analysis: コード変更に関連するテストのみを実行することで、テストスイートを最適化し、CI コストを削減します。{{< /nextlink >}} -{{< nextlink href="/getting_started/code_analysis" >}}Code Analysis: リポジトリに品質やセキュリティ上の問題がないか分析します。{{< /nextlink >}} +{{< nextlink href="/getting_started/synthetics" >}}Synthetic Monitoring: Synthetic テストを使用して、API エンドポイントと主要なビジネスジャーニーのテストと監視を開始します。{{< /nextlink >}} +{{< nextlink href="/getting_started/continuous_testing" >}}Continuous Testing: CI パイプラインと IDE でエンドツーエンドの Synthetic テストを実行します。{{< /nextlink >}} +{{< nextlink href="/getting_started/session_replay" >}}Session Replay: Session Replay を使用して、ユーザーが製品をどのように操作しているかを詳しく確認できます。{{< /nextlink >}} +{{< nextlink href="/getting_started/application_security" >}}App and API Protection: AAP を導入して運用を開始するためのベストプラクティスを紹介します。{{< /nextlink >}} +{{< nextlink href="/getting_started/cloud_security_management" >}}Cloud Security: Cloud Security の導入と運用のためのベストプラクティスを説明します。{{< /nextlink >}} +{{< nextlink href="/getting_started/cloud_siem" >}}Cloud SIEM: Cloud SIEM を導入して運用を開始するためのベストプラクティスを紹介します。{{< /nextlink >}} +{{< nextlink href="/getting_started/logs" >}}ログ: 最初のログを送信し、ログ処理を使用してログを充実させます。{{< /nextlink >}} +{{< nextlink href="/getting_started/ci_visibility" >}}CI Visibility: CI プロバイダーとのインテグレーションを設定して、CI パイプラインデータを収集します。{{< /nextlink >}} +{{< nextlink href="/getting_started/feature_flags" >}}Feature Flag: 組み込みの可観測性を使用して、機能の提供を管理し、ユーザーエクスペリエンスをパーソナライズします。{{< /nextlink >}} +{{< nextlink href="/getting_started/test_optimization" >}}Test Optimization: Datadog でテストサービスを設定して CI テストデータを収集します。{{< /nextlink >}} +{{< nextlink href="/getting_started/test_impact_analysis" >}}Test Impact Analysis: コードの変更に関連するテストのみを実行することで、テストスイートを最適化し、CI コストを削減します。{{< /nextlink >}} +{{< nextlink href="/getting_started/code_security" >}}Code Security: 開発から実行まで、アプリケーション内のファーストパーティコードとオープンソースライブラリを分析します。{{< /nextlink >}} {{< /whatsnext >}} -## その他の参考資料 +## プレビュー中の製品または機能を試す {#try-a-preview-product-or-feature} + +Datadog の製品チームは、お客様の役に立つ可能性のある新機能を頻繁に追加しています。これらの機能は、一般に提供される前に試用して役立つかどうかを確認したうえで、改善のためのフィードバックを提供することができます。現在実施中のプレビューの完全なリストを確認し、詳細情報を入手して参加登録するには、[Datadog 製品プレビュープログラム][5] にアクセスしてください。 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/getting_started/integrations/ [2]: /ja/integrations/amazon_web_services/ [3]: https://learn.datadoghq.com/collections/getting-started -[4]: https://learn.datadoghq.com/courses/course-quickstart \ No newline at end of file +[4]: https://learn.datadoghq.com/courses/course-quickstart +[5]: https://www.datadoghq.com/product-preview/ \ No newline at end of file diff --git a/content/ja/getting_started/tagging/_index.md b/content/ja/getting_started/tagging/_index.md index 857423586fd..dc4220fb17a 100644 --- a/content/ja/getting_started/tagging/_index.md +++ b/content/ja/getting_started/tagging/_index.md @@ -1,7 +1,7 @@ --- algolia: tags: - - タグ付け + - tagging aliases: - /ja/getting_started/getting_started_with_tags - /ja/guides/getting_started/tagging/ @@ -12,110 +12,147 @@ aliases: description: Datadog でタグを割り当て、使用する方法について説明します。 further_reading: - link: /getting_started/tagging/assigning_tags/ - tag: Documentation + tag: ドキュメント text: タグの割り当て方法 - link: /getting_started/tagging/unified_service_tagging/ - tag: Documentation + tag: ドキュメント text: 統合サービスタグ付けの構成方法を学ぶ - link: /getting_started/tagging/using_tags/ - tag: Documentation + tag: ドキュメント text: タグの使用方法について - link: https://dtdg.co/fe tag: Foundation Enablement - text: Datadog を使った効果的なタグ付けに関するインタラクティブなセッションに参加できます + text: Datadog を使用した効果的なタグ付けに関するインタラクティブセッションに参加する。 +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: ブログ + text: Datadog を使用して効果的なエグゼクティブ向けダッシュボードを設計する +- link: https://learn.datadoghq.com/courses/tagging-best-practices + tag: ラーニングセンター + text: タグ付けのベストプラクティス title: タグの使用を開始する --- +## 概要 {#overview} -## 概要 +タグは、Datadog のテレメトリに次元を追加するための手段であり、これにより Datadog の可視化においてフィルタリング、集約、比較が可能になります。[タグを使用することにより][1]、複数のホストにわたる集約パフォーマンスを観察することができ、さらには (オプションとして) 特定の要素に基づいてセットをさらに絞り込むことができます。要約すると、タグ付けは集約データポイントを観察するための 1 つの手段です。 -タグは、Datadog テレメトリーにディメンションを追加する方法のひとつで、Datadog の可視化機能によって絞り込み、集計、比較できます。[タグを使用][1]すると、複数のホストの集計パフォーマンスを観察でき、必要に応じて、特定の要素に基づいて設定をさらに絞り込むこともできます。つまり、タグ付けは集計データポイントを観察する手段です。 +タグの形式には、`:` と `` があります。Datadog では `:` 形式の使用を推奨しています。そのほうが意味がより明確であり、より豊かなクエリ機能 (たとえば、キーによるグルーピング) が可能です。`:` ペアを使用する場合: -タグ付けにより、Datadog のさまざまなデータタイプをバインドし、メトリクス、トレース、ログの間でアクションを関連付け、呼び出すことができます。これは、**予約済み**タグキーを使用して実現されます。 +- タグ**キー**は識別子です。一般的に使用されるタグキーとして `env`、`instance`、および `name` があります。 +- タグの**値** は、キーに関連付けられた特定のデータまたは情報です。タグ値はリソースごとに一意ではなく、`:` ペア内の多くのリソースで使用できます。 -| タグ キー | 可能な操作 | -| --------- | --------------------------------------------------------------------- | -| `host` | メトリクス、トレース、プロセス、ログの間の関連付け。 | -| `device` | デバイスまたはディスクごとのメトリクス、トレース、プロセス、ログの分離。 | -| `source` | ログ管理のためのスパンの絞り込みと自動パイプライン。 | -| `service` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。 | -| `env` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。 | -| `version` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。 | -| `team` | 任意のリソースに所有権を割り当てる | +タグ付けにより、Datadog のさまざまなデータタイプをバインドし、メトリクス、トレース、ログの間でアクションを関連付け、呼び出すことができます。これは **予約済み** タグキーを使用して実現されます。 +| タグキー | 可能になる機能 | +|-----------|------------------------------------------------------------------------| +| `host` | メトリクス、トレース、プロセス、ログの間の関連付け。 | +| `device` | デバイスまたはディスクごとのメトリクス、トレース、プロセス、ログの分離。| +| `source` | Log Management のためのスパンの絞り込みと自動パイプライン。 | +| `service` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。| +| `env` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。| +| `version` | メトリクス、トレース、ログにおけるアプリケーション固有データのスコーピング。| +| `team` | リソースに所有権を割り当てる。 | -Datadog は、集計の `サービス` レベルでコンテナー、VM、クラウドインフラストラクチャーに注目することを推奨しています。たとえば、サーバー A とサーバー B で個別に CPU 使用率を確認するよりも、サービスを表すホストのコレクション全体で CPU 使用率を見ます。 +Datadog では、`service` レベルでコンテナ、VM、およびクラウドインフラストラクチャーを集約して見ることを推奨しています。たとえば、サーバー A やサーバー B の CPU 使用率を個別に見るのではなく、サービスを表すホストコレクション全体の CPU 使用率を見るということです。 コンテナやクラウド環境では、定期的にホストが入れ替わるため、タグを使用してメトリクスを集計することが重要です。 -## タグの定義 +## タグの定義 {#define-tags} -以下は、Datadog のタグ付け要件です。 +タグ文字列 (`:` または `` の内容全体) は、以下の要件を満たす必要があります。 -1. タグの**先頭は文字にする**必要があり、その後は以下の文字を使用できます。 +- タグ文字列は**英字**で始まる必要があります (タグの形式が `:` かそれとも `` かに関係なく適用)。先頭の文字の後、タグ文字列には以下の文字を含めることができます。 - - 英数字 - - アンダースコア + - 英字 (a、ó、気、녕、ك、ดีなど、すべての Unicode 英字がサポートされます) + - 数字 + - アンダースコア (先頭と末尾のアンダースコアは削除され、連続するアンダースコアは1つにまとめられます) - マイナス - コロン - ピリオド - スラッシュ - - その他の特殊文字は、アンダースコアに変換されます。 - -2. タグの長さは**最大 200 文字**で、Unicode 文字 (日本語などの言語を含むほとんどの文字セットを含む) をサポートします。 -3. タグは小文字に変換されます。そのため、`CamelCase (キャメル ケース)` 形式のタグは推奨されません。認証 (クローラー) ベースのインテグレーションでは、タグのキャメル ケース部分はアンダースコアに変換されます。たとえば、`TestTag` は `test_tag` となります。 -4. タグは `value` または `:` の形式にすることができます。よく使用されるタグ キーは、`env`、`instance`、`name` です。キーの後ろには常に、グローバルタグ定義の最初のコロンが付きます。例: - - | タグ | キー | 値 | + - ([HTTP 経由で取り込まれた][28]ログのタグのみ) アットマーク (`@`) + + 他のすべての文字 (カンマ、絵文字、バックスラッシュ、スペースなど) はアンダースコアに変換されます。 + + **注**: + - Agent レベルで設定された `env` タグなど、一部のコンテキストでは、数字で始まるタグが受け入れられる場合があります。ただし、標準の命名規則に従わないタグは、すべての Datadog 製品で一貫して機能しない可能性があり、タグのカーディナリティが増加する可能性があります。特定の製品で明示的にサポートされているのでない限り、タグは英字で始めてください。 + - `DD_TAGS` 環境変数では、タグ間の区切りとして空白が使用されます。`DD_TAGS` の値に含まれる空白は**アンダースコア**に変換されません。たとえば、`DD_TAGS="test:this is a test"` では `test:this`、`is`、`a`、および `test` の 4 つの別々のタグが生成されます。スペースを含むタグ値を設定するには、YAML 構成ファイルまたは統合アノテーションを使用してください。その場合、空白がアンダースコアに変換されます。 + +- タグは**最大200文字**まで使用できます。タグが `:` 形式の場合、キー、`:`、および値は、すべて文字制限のカウントに含まれます。 +- [スパンタグ][26]およびメトリックタグは小文字に正規化されるため、タグキーにはキャメルケースを使用しないでください。さまざまなクラウドプロバイダーを通じて、キャメルケースの正規化は一貫していません。たとえば、AWS では `TestTag` を `testtag` に変換し、Alibaba Cloud では `TestTag` を `test_tag` に変換します。 + - タグとは異なり、[スパン属性][27]とログ属性では大文字と小文字が区別され、正規化されません。 +- 形式 `:` を使用する場合、常にグローバルタグ定義の最初のコロンまでがキーです。たとえば、以下のとおりです。 + + | タグ | キー | 値 | | ------------------ | ------------- | -------------- | - | `env:staging:east` | `env` | `staging:east` | - | `env_staging:east` | `env_staging` | `east` | + | `env:staging:east` | `env` | `staging:east` | + | `env_staging:east` | `env_staging` | `east` | + +- エポックタイムスタンプ、ユーザー ID、リクエスト ID などを、むやみにタグの生成源として採用しないようにしてください。そのようにすると、[メトリクス][2]の数が無制限に増加する可能性があります。 -5. タグは、EPOCH タイムスタンプ、ユーザー ID、リクエスト ID などのバインドされていないソースをベースにすることはできません。実行すると、組織の[メトリクス数が無限に増加][2]し、請求に問題が発生します。 -6. 制限 (ダウンケースなど) はメトリクスタグにのみ適用され、ログ属性やスパンタグには適用されません。 -## タグ付けの方法 +## タグの付け方 {#assign-tags} -### タグ付けの方法 +### タグ付けの方法 {#tagging-methods} タグ付けは、次のいずれか (またはすべて) の方法を使用して実行できます。 -| メソッド | タグ付けの方法 | +| 方法 | タグ付けの方法 | | ------------------------ | --------------------------------------------------------------- | -| [コンフィギュレーションファイル][3] | メインの Agent またはインテグレーションのコンフィギュレーションファイルで手動で行います。 | -| [UI][4] | Datadog サイトで。 | -| [API][5] | Datadog の API を使用するとき。 | -| [DogStatsD][6] | DogStatsD でメトリクスを送信するとき。 | +| [構成ファイル][3] | メインの Agent または統合構成ファイルで手動。| +| [UI][4] | Datadog サイトで。 | +| [API][5] | Datadog の API を使用する場合。 | +| [DogStatsD][6] | DogStatsD でメトリクスを送信する際。 | 詳しくは、[タグの付け方][7]をご覧ください。 -#### 統合サービスタグ付け -Datadog では、タグを付ける際のベストプラクティスとして、統合サービスタグ付けを使用することをおすすめしています。統合サービスタグ付けは、`env`、`service`、`version` の 3 つの標準タグを使用して Datadog テレメトリーと結合します。ご使用環境で統合タグ付けを構成する方法に関する詳細は、[統合サービスタグ付け][8]をご参照ください。 +#### 統合サービスタグ付け {#unified-service-tagging} + +ベストプラクティスとして、Datadog はタグを割り当てるときに統合サービスタグ付けを使用することをお勧めします。unified service tagging は、`env`、`service`、および `version` の 3 つの標準タグを使用して Datadog テレメトリを結び付けます。unified service tagging で環境を構成する方法については、[統合サービスタグ付け][8]を参照してください。 + +### タグの継承 {#tag-inheritance} + +すべてのメトリクス、ログ、トレース、および統合は、データが Datadog に取り込まれる際に `host-tag` 継承のプロセスを経ます。データは特定のホスト名に関連付けられているため、それらのコンポーネントは、そのホストに関連付けられているすべての `host-level` タグを継承します。これらのタグは、クラウドプロバイダーまたは Datadog Agent に由来する特定のホストの [インフラストラクチャーリスト][12] に表示されます.詳細については、[新しいホストまたはノードの `host-level` タグが欠落][25] を参照してください。 + +タグは複数のソースから継承される可能性があるため、ソース間で重複しないように固有かつ具体的なキー名を選択してください。たとえば、ホスト (`service:my-host`) で `service` キーを設定し、そのホスト上で実行されている Pod (`service:my-service`)で `service` キーを設定した場合、データは両方のタグを継承します。タグキーの重複を避けるために、より差別化されたキー名 (`infra_service` など) を選択してください。 + +### タグの優先度 {#tag-precedence} + +Datadog Agent では、さまざまなソースに由来するタグについて優先順位が強制適用**されません**。その代わり、Agent はあらゆる利用可能なソースからすべてのタグを収集し、特定のタグキーに対してそれぞれ固有の値を保存し、それらすべてをテレメトリと共に送信します。 + +したがって、単一のタグキーの設定が複数ソース間で異なる場合、値が複数個になる可能性があります。たとえば、`service` タグが環境変数の中では `payments` に、Agent YAML では `checkout` に、トレースクライアント構成では `orders` に設定されている場合、そのサービスのテレメトリには次の内容が含まれる可能性があります。 + +``` +service:payments +service:checkout +service:orders +``` + +下流のフィルターやダッシュボードで、値が 1 つだけであることが期待されている場合、明示的にその値でフィルタリングする必要があります。 -## 使用方法 +## 使用方法 {#usage} -ホストと[インテグレーション][9] レベルで[タグを割り当てた][7]後、メトリクス、トレース、ログを絞り込みグループ化するためにタグの使用を開始します。タグは、Datadog プラットフォームの次の領域で使用されます。 +ホストレベルとインテグレーションレベルで[タグを割り当てた後][9]、それらを使用することにより、メトリクス、トレース、ログのフィルタリングとグループ化を開始します。タグは、Datadog プラットフォームの以下の領域で使用されます。 -| 領域 | タグを使用して実行すること | +| 領域 | タグの用途 | | -------------------- | ------------------------------------------------------------------------------------------------ | -| [イベント][10] | イベントストリームの絞り込み。 | -| [ダッシュボード][11] | グラフでのメトリクスの絞り込みおよびグループ化。 | -| [インフラストラクチャー][12] | ホストマップ、インフラストラクチャー リスト、ライブ コンテナ、ライブプロセス ビューの絞り込みとグループ化。 | -| [モニター][13] | モニターの管理、モニターの作成、ダウンタイムの管理。 | -| [メトリクス][14] | メトリクスエクスプローラーでの絞り込みとグループ化。 | -| [インテグレーション][15] | AWS、Google Cloud、Azure のメトリクスをオプションで制限。 | -| [APM][16] | サービス、トレース、プロファイルをフィルターにかける。サービスマップを使って他のエリアに移動する。 | -| [RUM & セッションリプレイ][17] | RUM エクスプローラーで、イベント検索、分析、パターン、リプレイ、問題をフィルターにかける。 | -| [Synthetic Monitoring & Continuous Testing][18] | Synthetic Monitoring & Testing Results Explorer を使用して、Synthetic テストや CI パイプラインで実行中のテストをフィルタリングおよびグループ化します。 | -| [ノートブック][19] | グラフでのメトリクスの絞り込みおよびグループ化。 | -| [ログ][20] | ログ検索、分析、パターン、Live Tail、パイプラインの絞り込み。 | -| [SLO][21] | SLO、グループ化されたメトリクスベース SLO、グループ化されたモニターベース SLO の検索。 | -| [開発者][22] | API を使用して情報を取得、または UI のさまざまな領域をセットアップ。 | -| [請求][23] | 3 つのタグを選択することで Datadog の使用量を報告します。たとえば、`env`、`team`、`account_id` のように選択できます。 | -| [CI Visibility][24] | CI Visibility Explorer を使用して、テスト実行またはパイプライン実行をフィルタリングおよびグループ化します。 | +| [イベント][10] | イベントストリームの絞り込み。 | +| [ダッシュボード][11] | グラフでのメトリクスの絞り込みおよびグループ化。 | +| [インフラストラクチャー][12] | ホストマップ、インフラストラクチャーリスト、ライブコンテナ、ライブプロセスビューの絞り込みとグループ化。| +| [モニター][13] | モニターの管理、モニターの作成、またはダウンタイムの管理。 | +| [メトリクス][14] | メトリクスエクスプローラーでの絞り込みとグループ化。 | +| [Integrations][15] | AWS、Google Cloud、Azure のメトリクスをオプションで制限。 | +| [APM][16] | サービス、トレース、プロファイルをフィルターにかける。Service Map を使って他のエリアに移動する。 | +| [RUM とセッションリプレイ][17] | RUM エクスプローラーで、イベント検索、分析、パターン、リプレイ、問題をフィルターにかける。 | +| [Synthetic Monitoring & Continuous Testing][18] | Synthetic Monitoring & Testing Results エクスプローラーを使用して、Synthetic テストや CI パイプラインで実行中のテストをフィルタリングおよびグループ化する。 | +| [Notebooks][19] | グラフでのメトリクスの絞り込みおよびグループ化。 | +| [ログ][20] | ログ検索、分析、パターン、テール、パイプラインの絞り込み。 | +| [SLO][21] | SLO、グループ化されたメトリクスベース SLO、グループ化されたモニターベース SLO の検索。 | +| [開発者][22] | API を使用して情報を取得、または UI のさまざまな領域をセットアップ。 | +| [Billing][23] | 3 つのタグを選択することで Datadog の使用量を報告します。たとえば、`env`、`team`、`account_id`のように選択できます。| +| [CI Visibility][24] | CI Visibility エクスプローラーを使用して、テスト実行またはパイプライン実行をフィルタリングおよびグループ化します。| 詳しくは、[タグの使用方法][1]をご覧ください。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -142,4 +179,8 @@ Datadog では、タグを付ける際のベストプラクティスとして、 [21]: /ja/getting_started/tagging/using_tags/?tab=manageslos#service-level-objectives [22]: /ja/getting_started/tagging/using_tags/#developers [23]: /ja/account_management/billing/usage_attribution/ -[24]: /ja/getting_started/tagging/using_tags/#ci-visibility \ No newline at end of file +[24]: /ja/getting_started/tagging/using_tags/#ci-visibility +[25]: /ja/containers/troubleshooting/log-collection?tab=datadogoperator#missing-host-level-tags-on-new-hosts-or-nodes +[26]: /ja/tracing/trace_collection/tracing_naming_convention/#span-tags +[27]: /ja/tracing/trace_collection/tracing_naming_convention/#span-attributes +[28]: /ja/api/latest/logs/#send-logs \ No newline at end of file diff --git a/content/ja/getting_started/tagging/unified_service_tagging.md b/content/ja/getting_started/tagging/unified_service_tagging.md index ed99b9bab64..5a297191fea 100644 --- a/content/ja/getting_started/tagging/unified_service_tagging.md +++ b/content/ja/getting_started/tagging/unified_service_tagging.md @@ -1,24 +1,24 @@ --- algolia: tags: - - 統合サービスタグ - - 統合 - - 統合サービス - - サービスタグ + - unified service tags + - unified + - unified service + - service tags +description: トレース、メトリクス、ログに通じてテレメトリを、標準化された env、service、version のタグを使って接続し、一貫した監視を実現します。 further_reading: - link: /getting_started/tagging/using_tags - tag: Documentation + tag: ドキュメント text: Datadog アプリでのタグの使用方法 - link: /tracing/version_tracking - tag: Documentation + tag: ドキュメント text: Datadog APM 内の Version タグを使用してデプロイを監視する - link: https://www.datadoghq.com/blog/autodiscovery-docker-monitoring/ tag: ブログ text: オートディスカバリーの詳細 title: 統合サービスタグ付け --- - -## 概要 +## 概要 {#overview} 統合サービスタグ付けは、3 つの[予約済みタグ][1]である `env`、`service`、`version` を使用して Datadog テレメトリを結び付けます。 @@ -32,61 +32,61 @@ title: 統合サービスタグ付け **注**: -- `version` タグは、新しいアプリケーションのデプロイごとに変更されることが期待されています。アプリケーションのコードに異なる 2 つのバージョンがある場合、それぞれに異なる `version` タグが付けられるべきです。 -- オートディスカバリーログの構成が存在しない場合、ログの公式サービスはデフォルトでコンテナのショートイメージになります。ログの公式サービスを上書きするには、オートディスカバリーの [Docker ラベル/ポッドアノテーション][2]を追加します。例: `"com.datadoghq.ad.logs"='[{"service": "service-name"}]'` -- スパンに関連付けられたホストはデータベース/キャッシュホストではないため、ホスト情報はデータベースとキャッシュスパンでは除外されます。 +- `version` タグは、新しいアプリケーションのデプロイごとに変更されることが期待されています。アプリケーションのコードに異なる 2 つのバージョンがあるなら、それらの `version` タグは異なっていなければなりません。 +- Autodiscovery ログ構成が存在しない場合、ログの公式サービスは、デフォルトで、コンテナのショートイメージになります。ログの公式サービスをオーバーライドするには、Autodiscovery [Docker ラベル/Pod アノテーション][2] を追加します。たとえば: `"com.datadoghq.ad.logs"='[{"service": "service-name"}]'` +- スパンに関連付けられているホストはデータベース/キャッシュホストではないため、データベースとキャッシュのスパンでは、ホスト情報が除外されます。 -### 要件 +### 要件 {#requirements} - 統合サービスタグ付けには、[Datadog Agent][3] 6.19.x/7.19.x 以上のセットアップが必要です。 -- 統合サービスタグ付けには、[予約済みタグ][1]の新しい構成に対応するトレーサーのバージョンが必要です。詳細は、言語別の[セットアップ手順][4]をご覧ください。 +- Unified service tagging には、[予約済みタグ][1] の新しい構成をサポートする SDK バージョンが必要です。詳しい情報については、[セットアップ手順][4] に言語ごとに記載されています。 -| 言語 | トレーサー最小バージョン | +| 言語 | 最小 SDK バージョン | |--------------|------------| | .NET | 1.17.0+ | | C++ | 0.1.0+ | | Go | 1.24.0+ | | Java | 0.50.0+ | | Node | 0.20.3+ | -| PHP | 0.47.0 以降 | +| PHP | 0.47.0+ | | Python | 0.38.0+ | | Ruby | 0.34.0+ | -- 統合サービスタグ付けには、タグの構成に関する知識が必要です。タグの構成方法がわからない場合は、構成に進む前に、[タグの概要][1]および[タグの付け方][5]のドキュメントをお読みください。 +- 統合サービスタグ付けでは、タグの構成に関する知識が必要です。タグの構成方法がわからない場合は、構成に進む前に、[タグの概要][1] および [タグの付け方][5] のドキュメントをお読みください。 -## 構成 +## 構成 {#configuration} 統合サービスタグ付けの構成を開始するには、環境を選択します。 - [コンテナ化](#containerized-environment) - [非コンテナ化](#non-containerized-environment) -- [サーバーレス](#serverless-environment) +- [Serverless](#serverless-environment) - [OpenTelemetry](#opentelemetry) -### コンテナ化環境 +### コンテナ化環境 {#containerized-environment} -コンテナ化環境では、`env`、`service`、`version` は、サービスの環境変数またはラベル(Kubernetes のデプロイやポッドラベル、Docker コンテナラベルなど)を介して設定されます。Datadog Agent はこのタグ付け構成を検出し、コンテナから収集するデータに適用します。 +コンテナ化環境において、`env`、`service`、および `version` は、サービスの環境変数またはラベル (Kubernetes の デプロイメントと Pod ラベル、Docker コンテナラベルなど) を通じて設定します。Datadog Agent がこのタグ付け構成を検出し、コンテナから収集したデータに適用します。 コンテナ化環境で統合サービスタグ付けをセットアップするには -1. [オートディスカバリー][6]を有効にします。これにより、Datadog Agent は特定のコンテナで実行されているサービスを自動的に識別し、そのサービスからデータを収集して、環境変数を `env`、`service`、`version` タグにマッピングできます。 +1. [オートディスカバリー][6] を有効にするこれにより、Datadog Agent は特定のコンテナで実行されているサービスを自動的に識別し、そのサービスからデータを収集して、環境変数を `env`、`service,`、`version` のタグにマッピングできます。 -2. [Docker][2] を使用している場合は、Agent がコンテナの [Docker ソケット][7]にアクセスできることを確認してください。これにより、Agent は環境変数を検出し、それを標準タグにマッピングできます。 +2. [Docker][2]を使用している場合は、Agent がコンテナの[Docker ソケット][7]にアクセスできることを確認してください。これにより、Agent は環境変数を検出し、それらを標準のタグにマッピングできます。 3. コンテナオーケストレーションサービスに対応する環境は、以下のように完全構成または部分構成のいずれかに基づいて構成します。 -#### 構成 +#### 構成 {#configuration-1} {{< tabs >}} {{% tab "Kubernetes" %}} -[Admission Controller][1] を有効にして Datadog Cluster Agent をデプロイした場合、Admission Controller はポッドマニフェストを変更し、(構成された変更条件に基づいて) 必要なすべての環境変数を注入します。その場合、ポッドマニフェスト内の `DD_` 環境変数の手動設定は不要になります。詳細は [Admission Controller のドキュメント][1] を参照してください。 +[Admission Controller][1] を有効にして Datadog クラスターエージェントをデプロイした場合、Admission Controller はPodマニフェストに変更を加え、必須環境変数のすべてを取り込みます (設定されている変更条件に基づく)。その場合、Podマニフェスト内の `DD_` 環境変数の手動設定は不要です。詳しくは、[Admission Controller のドキュメント][1]を参照してください。 -##### 完全な構成 +##### 完全な構成 {#full-configuration} -Kubernetes の使用時に全範囲の統合サービスタグ付けを取得するには、デプロイオブジェクトレベルとポッドテンプレート仕様レベルの両方に環境変数を追加します。 +Kubernetes の使用時にすべての統合サービスタグ付けを取得するには、デプロイオブジェクトレベルとポッドテンプレート仕様レベルの両方に環境変数を追加します。 ```yaml apiVersion: apps/v1 @@ -120,7 +120,7 @@ template: fieldPath: metadata.labels['tags.datadoghq.com/version'] ``` -また、OpenTelemetry Resource Attributes の環境変数を使用して、`env`、`service`、`version` タグを設定することもできます。 +OpenTelemetry のリソース属性の環境変数を使用することにより、`env`、`service`、および `version` のタグを設定することもできます。 ```yaml containers: @@ -131,11 +131,11 @@ template: - name: OTEL_SERVICE_NAME value: "" ``` -
    : OTEL_SERVICE_NAME 環境変数は、OTEL_RESOURCE_ATTRIBUTES 環境変数内の service.name 属性より優先されます。
    +
    OTEL_SERVICE_NAME 環境変数は、 service.name 属性 ( OTEL_RESOURCE_ATTRIBUTES 環境変数) よりも優先されます。
    -##### 部分構成 +##### 部分的構成 {#partial-configuration} -###### ポッドレベルのメトリクス +###### ポッドレベルのメトリクス {#pod-level-metrics} ポッドレベルのメトリクスを構成するには、次の標準ラベル (`tags.datadoghq.com`) を Deployment、StatefulSet、または Job のポッド仕様に追加します。 @@ -147,7 +147,7 @@ template: tags.datadoghq.com/service: "" tags.datadoghq.com/version: "" ``` -これらのラベルは、ポッドレベルの Kubernetes CPU、メモリ、ネットワーク、ディスクメトリクスをカバーし、[Kubernetes の Downward API][2] を介してサービスのコンテナに `DD_ENV`、`DD_SERVICE`、`DD_VERSION` を注入するために使用できます。 +これらのラベルは、ポッドレベルの Kubernetes CPU、メモリ、ネットワーク、ディスクメトリクスをカバーし、[Kubernetes の Downward API][2] を介してサービスのコンテナに `DD_ENV`、`DD_SERVICE`、`DD_VERSION` を取り込むために使用できます。 ポッドごとに複数のコンテナがある場合は、コンテナごとに標準ラベルを指定できます。 @@ -157,11 +157,11 @@ tags.datadoghq.com/.service tags.datadoghq.com/.version ``` -###### ステートメトリクス +###### ステートメトリクス {#state-metrics} [Kubernetes ステートメトリクス][3]を構成するには: -1. コンフィギュレーションファイルで、`join_standard_tags` を `true` に設定します。設定場所については、こちらの[コンフィギュレーションファイルの例][4]を参照してください。 +1. 構成ファイルの中で `join_standard_tags` を `true` に設定します。設定場所については、この [例の構成ファイル][4] を参照してください。 2. 同じ標準ラベルを親リソース (`Deployment` など) のラベルのコレクションに追加します。 @@ -182,9 +182,9 @@ tags.datadoghq.com/.version tags.datadoghq.com/version: "" ``` -###### APM トレーサー / StatsD クライアント +###### Datadog SDK と StatsD クライアント {#datadog-sdk-and-statsd-client} -[APM トレーサー][5]および [StatsD クライアント][6]の環境変数を構成するには、[Kubernetes の Downward API][2] を以下の形式で使用します。 +[Datadog SDK][5]および [StatsD クライアント][6]の環境変数を構成するには、[Kubernetes の Downward API][2] を以下の形式で使用します。 ```yaml containers: @@ -204,24 +204,24 @@ containers: fieldPath: metadata.labels['tags.datadoghq.com/version'] ``` -##### コンテナ化された環境での APM データに対する自動バージョンタグ付け +##### コンテナ化された環境での APM データに対する自動バージョンタグ付け {#automatic-version-tagging-for-apm-data-in-containerized-environments} -
    この機能は、Application Performance Monitoring (APM) データでのみ有効です。
    +
    この機能は、Application Performance Monitoring (APM) データに対してのみ有効です。
    APM で `version` タグを使用して[デプロイを監視][7]したり、[自動障害デプロイ検出][8]を通じて不良なコードデプロイを特定したりできます。 -APM データに対して、Datadog は以下の優先順位で `version` タグを設定します。もし手動で `version` を設定している場合、Datadog はその `version` 値をオーバーライドしません。 +APM データの場合、Datadog は次の優先順位で `version` タグを設定します。手動で `version` を設定した場合、Datadog がその `version` 値をオーバーライドすることはありません。 -| 優先度 | バージョン値 | +| 優先順位 | バージョン値 | |--------------|------------| -| 1 | {your version value} | +| 1 | {バージョン値} | | 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | | 3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) | 要件: - Datadog Agent バージョン 7.52.0 以上 - サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには `image_tag` で十分な場合、これ以上の構成は不要です -- サービスがコンテナ化された環境で実行されていない場合、または git SHA も含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][9] +- サービスがコンテナ化された環境で実行されていない場合、または Git SHA を含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][9]。 [1]: /ja/agent/cluster_agent/admission_controller/ @@ -237,11 +237,11 @@ APM データに対して、Datadog は以下の優先順位で `version` タグ {{% /tab %}} {{% tab "Docker" %}} -##### 完全な構成 +##### 完全な構成 {#full-configuration-1} -コンテナの `DD_ENV`、`DD_SERVICE`、`DD_VERSION` 環境変数と対応する Docker ラベルを設定して、統合サービスタグ付けの全範囲を取得します。 +コンテナの ``DD_ENV`、`DD_SERVICE`、`DD_VERSION` 環境変数、および対応する Docker ラベルを設定することにより、統合サービスタグ付けの全範囲を取得します。 -`service` と `version` の値は Dockerfile で指定できます。 +Dockerfile には、`service` と `version` の値を指定できます。 ```yaml ENV DD_SERVICE @@ -269,7 +269,7 @@ docker run -e DD_ENV="" \ ... ``` -##### 部分構成 +##### 部分的構成 {#partial-configuration-1} サービスが Datadog 環境変数を必要としない場合 (例えば、Redis、PostgreSQL、NGINX などのサードパーティソフトウェアや、APM によってトレースされないアプリケーション)、Docker ラベルを使用できます。 @@ -281,25 +281,25 @@ com.datadoghq.tags.version 完全な構成で説明したように、これらのラベルは Dockerfile で設定するか、コンテナを起動するための引数として設定できます。 -##### コンテナ化された環境での APM データに対する自動バージョンタグ付け +##### コンテナ化された環境での APM データに対する自動バージョンタグ付け {#automatic-version-tagging-for-apm-data-in-containerized-environments-1} -
    この機能は、Application Performance Monitoring (APM) データでのみ有効です。
    +
    この機能は、Application Performance Monitoring (APM) データに対してのみ有効です。
    APM で `version` タグを使用して[デプロイを監視][1]したり、[自動障害デプロイ検出][2]を通じて不良なコードデプロイを特定したりできます。 -APM データに対して、Datadog は以下の優先順位で `version` タグを設定します。もし手動で `version` を設定している場合、Datadog はその `version` 値をオーバーライドしません。 +APM データの場合、Datadog は次の優先順位で `version` タグを設定します。手動で `version` を設定した場合、Datadog がその `version` 値をオーバーライドすることはありません。 -| 優先度 | バージョン値 | +| 優先順位 | バージョン値 | |--------------|------------| -| 1 | {your version value} | +| 1 | {バージョン値} | | 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | | 3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) | 要件: - Datadog Agent バージョン 7.52.0 以上 - サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには `image_tag` で十分な場合、これ以上の構成は不要です -- サービスがコンテナ化された環境で実行されていない場合、または git SHA を含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][3] - +- サービスがコンテナ化された環境で実行されていない場合、または Git SHA を含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][3]。 + [1]: /ja/tracing/services/deployment_tracking/ [2]: /ja/watchdog/faulty_deployment_detection/ @@ -313,7 +313,7 @@ APM データに対して、Datadog は以下の優先順位で `version` タグ ECS Fargate 上で Fluent Bit や FireLens を使用する場合、統合サービスタグ付けはメトリクスとトレースに対してのみ利用可能で、ログ収集には対応していません。 -##### 完全な構成 +##### 完全な構成 {#full-configuration-2} 各サービスのコンテナのランタイム環境で、`DD_ENV`、`DD_SERVICE`、`DD_VERSION` (自動バージョンタグ付けでオプション) 環境変数と対応する Docker ラベルを設定して、統合サービスタグ付けの全範囲を取得します。たとえば、ECS タスク定義を通じて、この構成をすべて 1 か所で設定できます。 @@ -331,7 +331,7 @@ ECS Fargate 上で Fluent Bit や FireLens を使用する場合、統合サー "name": "DD_VERSION", "value": "" } - + ], "dockerLabels": { "com.datadoghq.tags.env": "", @@ -339,8 +339,11 @@ ECS Fargate 上で Fluent Bit や FireLens を使用する場合、統合サー "com.datadoghq.tags.version": "" } ``` +
    +ECS Fargateでは、これらのタグを Datadog Agent コンテナではなく、アプリケーションコンテナに追加する必要があります。 +
    -##### 部分構成 +##### 部分的構成 {#partial-configuration-2} サービスが Datadog 環境変数を必要としない場合 (たとえば、Redis、PostgreSQL、NGINX などのサードパーティソフトウェアや、APM によってトレースされないアプリケーション)、ECS タスク定義で Docker ラベルを使用できます。 @@ -352,24 +355,24 @@ ECS Fargate 上で Fluent Bit や FireLens を使用する場合、統合サー } ``` -##### コンテナ化された環境での APM データに対する自動バージョンタグ付け +##### コンテナ化された環境での APM データに対する自動バージョンタグ付け {#automatic-version-tagging-for-apm-data-in-containerized-environments-2} -
    この機能は、Application Performance Monitoring (APM) データでのみ有効です。
    +
    この機能は、Application Performance Monitoring (APM) データに対してのみ有効です。
    APM で `version` タグを使用して[デプロイを監視][1]したり、[自動障害デプロイ検出][2]を通じて不良なコードデプロイを特定したりできます。 -APM データに対して、Datadog は以下の優先順位で `version` タグを設定します。もし手動で `version` を設定している場合、Datadog はその `version` 値をオーバーライドしません。 +APM データの場合、Datadog は次の優先順位で `version` タグを設定します。手動で `version` を設定した場合、Datadog がその `version` 値をオーバーライドすることはありません。 -| 優先度 | バージョン値 | +| 優先順位 | バージョン値 | |--------------|------------| -| 1 | {your version value} | +| 1 | {バージョン値} | | 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | | 3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) | 要件: - Datadog Agent バージョン 7.52.0 以上 - サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには `image_tag` で十分な場合、これ以上の構成は不要です -- サービスがコンテナ化された環境で実行されていない場合、または git SHA を含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][3] +- サービスがコンテナ化された環境で実行されていない場合、または Git SHA を含めたい場合は、[ビルド成果物に Git 情報を埋め込んでください][3]。 [1]: /ja/tracing/services/deployment_tracking/ [2]: /ja/watchdog/faulty_deployment_detection/ @@ -378,9 +381,9 @@ APM データに対して、Datadog は以下の優先順位で `version` タグ {{% /tab %}} {{% /tabs %}} -### 非コンテナ化環境 +### 非コンテナ化環境 {#non-containerized-environment} -サービスのバイナリまたは実行可能ファイルをどのように構築およびデプロイするかによって、環境変数を設定するためのオプションをいくつか利用できる場合があります。ホストごとに 1 つ以上のサービスを実行する可能性があるため、Datadog ではこれらの環境変数のスコープを単一プロセスにすることをお勧めします。 +サービスのバイナリまたは実行可能ファイルを構築したりデプロイしたりする方法に応じて、環境変数を設定するためのオプションを利用できる場合があります。ホストごとに 1 つ以上のサービスを実行する可能性があるため、Datadog では、これらの環境変数の範囲を単一プロセスに限定することが推奨されています。 [トレース][8]、[ログ][9]、[RUMリソース][10]、[Synthetic テスト][11]、[StatsD メトリクス][12]、またはシステムメトリクスのサービスのランタイムから直接送信されるすべてのテレメトリーの構成の単一ポイントを形成するには、次のいずれかを実行します。 @@ -397,64 +400,64 @@ APM データに対して、Datadog は以下の優先順位で `version` タグ 統合サービスタグ付けのトレースを構成する場合 - 1. `DD_ENV` で [APM トレーサー][1]を構成し、トレースを生成しているアプリケーションに `env` の定義を近づけます。このメソッドを使用すると、`env` タグをスパンメタデータのタグから自動的に取得できます。 + 1. `DD_ENV` で [Datadog SDK][1]を構成することにより、`env` の定義が、トレースを生成しているアプリケーションに近くなるようにしてください。この方法では、`env` タグがスパンメタデータのタグから自動的に取得されるようになります。 - 2. `DD_VERSION` でスパンを構成して、トレーサーに属するサービス (通常は `DD_SERVICE`) に属するすべてのスパンにバージョンを追加します。これは、サービスが外部サービスの名前でスパンを作成する場合、そのスパンはタグとして `version` を受信しないことを意味します。 + 2. `DD_VERSION` でスパンを構成することにより、SDK に属するサービスに該当するすべてのスパンにバージョンを追加します (一般的に `DD_SERVICE`)。したがって、サービスにより外部サービスの名前でスパンが作成された場合、それらのスパンには `version` がタグとして追加されません。 - バージョンがスパンに存在する限り、そのスパンから生成されたメトリクスをトレースするために追加されます。バージョンは、手動でコード内に追加するか、APM トレーサーによって自動的に追加できます。構成すると、これらは APM および [DogStatsD クライアント][2]によって使用され、トレースデータと StatsD メトリクスに `env`、`service`、`version` でタグ付けします。有効にすると、APM トレーサーはこの変数の値もログに注入します。 + バージョンがスパンに存在する限り、それらのスパンから生成されるトレースメトリクスにはそれが追加されます。バージョンは、コード内で手動で追加できます。または、Datadog SDK によって自動的に追加されます。構成されているなら、それらは、トレースデータと StatsD メトリクスに `env`、`service`、および `version` のタグを付けるために、APM および [DogStatsDクライアント][2]によって使用されます。有効にされている場合、Datadog SDK はこれらの変数の値をログに取り込みます。 - **注**: **スパンごとに 1 つのサービス**しか存在できません。トレースメトリクスには、通常、単一のサービスもあります。ただし、ホストのタグで異なるサービスが定義されている場合、その構成されたサービスタグは、そのホストから発行されたすべてのトレースメトリクスに表示されます。 + **注**: スパンごとに **1 つのサービスのみ**可能です。また、一般にトレースメトリクスでもサービスは単一サービスです。ただし、ホストのタグで異なるサービスが定義されている場合、その構成されたサービスタグは、そのホストから発行されたすべてのトレースメトリクスに表示されます。 [1]: /ja/tracing/setup/ -[2]: /ja/developers/dogstatsd/ +[2]: /ja/extend/dogstatsd/ {{% /tab %}} {{% tab "ログ" %}} -[接続されたログとトレース][1]を使用している場合、APM トレーサーでサポートされている場合は、自動ログ注入を有効にします。そうすれば、APM トレーサーは、自動的に `env`、`service`、`version` をログに注入するため、他の場所でこれらのフィールドを手動で構成する必要がなくなります。 + [接続されているログとトレース][1]を使用している場合、Datadog SDK が自動ログ取り込みをサポートしているなら、それを有効にしてください。その場合、Datadog SDK は`env`、`service`、および `version` をログに自動的に取り込むため、他の場所でこれらのフィールドを手動で構成する必要はありません。 [1]: /ja/tracing/other_telemetry/connect_logs_and_traces/ {{% /tab %}} -{{% tab "RUM とセッションリプレイ" %}} + {{% tab "RUM およびセッションリプレイ" %}} -[接続された RUM とトレース][1]を使用する場合、初期化ファイルの `service` フィールドにブラウザアプリケーションを指定し、`env` フィールドに環境を定義し、`version` フィールドにバージョンを記載します。 + [接続された RUM とトレース][1]を使用する場合、初期化ファイルの `service` フィールドにブラウザアプリケーションを指定し、`env` フィールドに環境を定義し、`version` フィールドにバージョンを記載します。 -[RUM アプリケーションを作成する][2]際に、`env` と `service` の名前を確認します。 + [RUM アプリケーションを作成する][2]際に、`env` と `service` の名前を確認します。 -[1]: /ja/real_user_monitoring/platform/connect_rum_and_traces/ -[2]: /ja/real_user_monitoring/browser/setup/ +[1]: /ja/real_user_monitoring/correlate_with_other_telemetry/apm/ +[2]: /ja/real_user_monitoring/application_monitoring/browser/setup/ {{% /tab %}} - {{% tab "Synthetics" %}} + {{% tab "Synthetic" %}} -[接続された Synthetic ブラウザのテストとトレース][1]をご利用の場合、[Integration Settings ページ][2]の **APM Integration for Browser Tests** セクションでヘッダー送信先 URL を指定してください。 + [接続された Synthetic ブラウザのテストとトレース][1]をご利用の場合、[Integration Settings ページ][2]の **APM Integration for Browser Tests** のセクションでヘッダー送信先 URL を指定してください。 -ワイルドカードとして `*` を使用することができます。例えば、`https://*.datadoghq.com` のように指定します。 + ワイルドカードとして `*` を使用することができます (例: `https://*.datadoghq.com`)。 [1]: /ja/synthetics/apm/ [2]: https://app.datadoghq.com/synthetics/settings/integrations {{% /tab %}} -{{% tab "カスタムメトリクス" %}} + {{% tab "Custom Metrics" %}} -タグは、[カスタム StatsD メトリクス][1]の付加のみの方法で追加されます。たとえば、`env` に 2 つの異なる値がある場合、メトリクスは両方の環境でタグ付けされます。1 つのタグが同じ名前の別のタグをオーバーライドする順序はありません。 + [カスタム StatsD メトリクス][1]には、付加のみという形でタグが追加されます。たとえば、`env` に異なる 2 つの値がある場合、メトリクスには両方の環境がタグ付けされます。同じ名前のタグが他のタグをオーバーライドする順序はありません。 -サービスが `DD_ENV`、`DD_SERVICE`、`DD_VERSION` にアクセスできる場合、DogStatsD クライアントは対応するタグをカスタムメトリクスに自動的に追加します。 + サービスが `DD_ENV`、`DD_SERVICE`、`DD_VERSION` にアクセスできる場合、DogStatsD クライアントは対応するタグをカスタムメトリクスに自動的に追加します。 -**注**: .NET および PHP 用の Datadog DogStatsD クライアントは、この機能をサポートしていません。 + **注**: .NET および PHP 用の Datadog DogStatsD クライアントは、この機能をサポートしていません。 [1]: /ja/metrics/ {{% /tab %}} -{{% tab "システムメトリクス" %}} + {{% tab "システムメトリクス" %}} -インフラストラクチャーメトリクスには、`env` タグと `service` タグを追加することができます。コンテナ化されていないコンテキストでは、サービスメトリクスのタグ付けは Agent レベルで構成されます。 + インフラストラクチャーメトリクスに `env` と `service` のタグを追加できます。コンテナ化されていない環境の場合、サービスメトリクスのタグ付けは Agent レベルで構成されます。 -この構成はサービスのプロセスを呼び出すたびに変更されるわけではないので、`version` を追加することは推奨されません。 + この構成はサービスのプロセスを呼び出すたびに変更されるわけではないので、`version` を追加することは推奨されません。 -#### ホスト毎の単一サービス +#### ホスト毎の単一サービス {#single-service-per-host} Agent の[メインコンフィギュレーションファイル][1]に、以下の構成を適用します。 @@ -464,9 +467,9 @@ tags: - service: ``` -この設定により、Agent が送信するすべてのデータに対する `env` と `service` のタグ付けの一貫性が保証されます。 +この設定により、Agent が送信するすべてのデータに対して `env` と `service` のタグ付けの一貫性が保証されます。 -#### ホスト毎の複数のサービス +#### ホスト毎の複数のサービス {#multiple-services-per-host} Agent の[メインコンフィギュレーションファイル][1]に、以下の構成を適用します。 @@ -474,7 +477,7 @@ Agent の[メインコンフィギュレーションファイル][1]に、以下 env: ``` -CPU、メモリ、ディスク I/O のメトリクスに一意の `service` タグをプロセスレベルで取得するには、Agent の構成フォルダ (例えば、`process.d/conf.yaml` 下の `conf.d` フォルダ) で[プロセスチェック][2]を構成します。 +CPU、メモリ、ディスク I/O のメトリクスに一意の `service` タグをプロセスレベルで取得するには、Agent の構成フォルダ (`process.d/conf.yaml` の下の `conf.d` フォルダなど) で[プロセスチェック][2]を構成します。 ```yaml init_config: @@ -489,32 +492,32 @@ instances: service: nginx-web-app ``` -**注**: Agent のメインコンフィギュレーションファイルで既に `service` タグをグローバルに設定している場合は、プロセスのメトリクスが 2 つのサービスにタグ付けされます。これによってメトリクスの解釈に相違が生じることがあるため、`service` タグはプロセスチェックの構成のみで構成することをお勧めします。 +**注**: Agent のメイン構成ファイルでグローバルに `service` タグが設定されている場合、プロセスメトリクスには 2 つのサービスがタグ付けされます。これによりメトリクスの解釈に混乱を招く可能性があるため、`service` タグはプロセスチェックの構成でのみ設定することをお勧めします。 [1]: /ja/agent/configuration/agent-configuration-files [2]: /ja/integrations/process {{% /tab %}} {{< /tabs >}} -### サーバーレス環境 +### サーバーレス環境 {#serverless-environment} AWS Lambda 関数については、[タグを使った Lambda のテレメトリー接続方法][15]を参照してください。 -### OpenTelemetry +### OpenTelemetry {#opentelemetry} OpenTelemetry を使用する場合、以下の[リソース属性][16] を、対応する Datadog 規則にマッピングします。 -| OpenTelemetry 規則 | Datadog 規則 | +| OpenTelemetry 規約 | Datadog 規約 | | --- | --- | | `deployment.environment` 1 | `env` | | `deployment.environment.name` 2 | `env` | | `service.name` | `service` | | `service.version` | `version` | -1: `deployment.environment` は [OpenTelemetry セマンティック規約 v1.27.0][17] において `deployment.environment.name` が推奨されるため非推奨となります。 -2: `deployment.environment.name` は Datadog Agent 7.58.0+ および Datadog Exporter v0.110.0+ でサポートされています。 +1: `deployment.environment` は [OpenTelemetry セマンティック規約 v1.27.0][17] で非推奨となっており、代わりに `deployment.environment.name` を使うことが推奨されています。 +2: `deployment.environment.name` は Datadog Agent 7.58.0 以上および Datadog Exporter v0.110.0 以上でサポートされています。 -
    DD_SERVICEDD_ENVDD_VERSION のような Datadog 固有の環境変数は、OpenTelemetry 構成では既定ではサポートされていません。
    +
    Datadog 固有の環境変数 ( DD_SERVICEDD_ENVDD_VERSION など) は、OpenTelemetry の構成においてデフォルトではサポートされていません。
    {{< tabs >}} {{% tab "環境変数" %}} @@ -529,7 +532,7 @@ export OTEL_RESOURCE_ATTRIBUTES="service.name=my-service,deployment.environment= {{% tab "SDK" %}} -アプリケーションコードでリソース属性を設定するには、必要な属性を持つ `Resource` を作成し、`TracerProvider` に関連付けます。 +アプリケーションコードでリソース属性を設定するには、必要な属性を指定して `Resource` を作成し、`TracerProvider` に関連付けます。 Python を使った例を次に示します。 @@ -549,7 +552,7 @@ tracer_provider = TracerProvider(resource=resource) {{% tab "コレクター" %}} -OpenTelemetry コレクターからリソース属性を設定するには、コレクターコンフィギュレーションファイルの[変換プロセッサ][100]を使用します。変換プロセッサを使用すると、収集したテレメトリーデータを Datadog エクスポーターに送信する前に、その属性を変更できます。 +OpenTelemetry Collector からリソース属性を設定するには、Collector の設定ファイルで[変換プロセッサー (transform processor)][100]を使用します。変換プロセッサーを使用すると、収集したテレメトリデータの属性を Datadog エクスポーターに送信する前に、属性に変更を加えることができます。 ```yaml processors: @@ -568,7 +571,7 @@ processors: {{% /tab %}} {{< /tabs >}} -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -581,7 +584,7 @@ processors: [7]: /ja/agent/docker/?tab=standard#optional-collection-agents [8]: /ja/getting_started/tracing/ [9]: /ja/getting_started/logs/ -[10]: /ja/real_user_monitoring/platform/connect_rum_and_traces/ +[10]: /ja/real_user_monitoring/correlate_with_other_telemetry/apm/ [11]: /ja/getting_started/synthetics/ [12]: /ja/integrations/statsd/ [13]: https://www.chef.io/ diff --git a/content/ja/infrastructure/_index.md b/content/ja/infrastructure/_index.md index 439c58f8bdb..37b48d8a564 100644 --- a/content/ja/infrastructure/_index.md +++ b/content/ja/infrastructure/_index.md @@ -15,34 +15,36 @@ cascade: further_reading: - link: https://app.datadoghq.com/release-notes?category=Infrastructure%20Monitoring tag: リリースノート - text: Datadog Infrastructure Monitoring の最新リリースをチェック! (アプリログインが必要です)。 + text: Datadog Infrastructure Monitoring の最新リリースをチェック!(アプリログインが必要です) - link: https://dtdg.co/fe tag: Foundation Enablement - text: インフラストラクチャーモニタリングをパワーアップさせるインタラクティブなセッションに参加できます + text: インフラストラクチャー監視を強化するためのインタラクティブセッションに参加してください。 +- link: https://learn.datadoghq.com/courses/getting-started-infra-cnm + tag: ラーニングセンター + text: Infrastructure および Cloud Network Monitoring (CNM) の製品概要 title: インフラストラクチャー --- - -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Infrastructure+Monitoring">}} - Foundation Enablement セッションを調べて登録しましょう。Datadog の SaaS ベースのインフラストラクチャー監視が、メトリクスの提供、可視化、アラート機能を通じて、エンジニアリングチームがクラウドやハイブリッド環境を維持・最適化する方法を学べます。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Infrastructure+Monitoring">}} + Foundation Enablement セッションを探索し、登録してください。Datadog の SaaS ベース Infrastructure Monitoring を活用することにより、メトリクス、ビジュアライゼーション、およびアラートを提供して、エンジニアリングチームがクラウドまたはハイブリッド環境を維持および最適化できるする方法について、詳細をご確認ください。 {{< /learning-center-callout >}} -## 概要 +## 概要 {#overview} -{{< img src="infrastructure/Hostmap-compressed.mp4" alt="ホストマップを Nginx ホストにフィルターするビデオ" video="true">}} +{{< img src="infrastructure/Hostmap-compressed.mp4" alt="Nginx ホストに絞り込んだホストマップの動画" video="true">}} インフラストラクチャーモニタリングには、ホスト、コンテナ、プロセスのパフォーマンスを視覚化、監視、測定する Datadog のコア機能が含まれています。 -## コンポーネント +## コンポーネント {#components} -{{< whatsnext desc="このセクションには、以下のトピックがあります。">}} - {{< nextlink href="/infrastructure/list" >}}インフラストラクチャーリスト - Datadog が監視しているすべてのホストの一覧を表示します。{{< /nextlink >}} - {{< nextlink href="/infrastructure/hostmap" >}}ホストマップとコンテナマップ - カスタマイズされたグループ化、フィルター、色や形によって理解しやすくなったメトリクスによって、ホストを 1 つの画面にまとめて視覚化します。{{< /nextlink >}} - {{< nextlink href="/infrastructure/containers" >}}コンテナビュー - 環境全体のコンテナをリアルタイムに視覚化して監視します。{{< /nextlink >}} - {{< nextlink href="/infrastructure/process" >}}プロセスビュー - デプロイの最も細かい要素をリアルタイムに視覚化し、プロセスを監視します。{{< /nextlink >}} +{{< whatsnext desc="このセクションには下記のトピックが含まれています。">}} + {{< nextlink href="/infrastructure/list" >}}Infrastructure List - Datadog の監視するすべてのホストのリストを表示します。{{< /nextlink >}} + {{< nextlink href="/infrastructure/hostmap" >}}ホストおよびコンテナのマップ - カスタマイズされたグループ化、フィルタ、および色と形で理解しやすくしたメトリクスを使用して、1 つの画面でホストをまとめて視覚化します。{{< /nextlink >}} + {{< nextlink href="/infrastructure/containers" >}}コンテナビュー - 環境全体を通じてコンテナをリアルタイムで監視します。{{< /nextlink >}} + {{< nextlink href="/infrastructure/process" >}}プロセスビュー - デプロイメント内の最も細かい要素を把握しながら、プロセスをリアルタイム監視します。{{< /nextlink >}} {{< /whatsnext >}} -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/ja/logs/explorer/search_syntax.md b/content/ja/logs/explorer/search_syntax.md index 3091afadb25..a4a929fea17 100644 --- a/content/ja/logs/explorer/search_syntax.md +++ b/content/ja/logs/explorer/search_syntax.md @@ -2,141 +2,154 @@ aliases: - /ja/logs/search-syntax - /ja/logs/search_syntax/ -description: すべてのログを検索する +description: すべてのログを検索します。 further_reading: +- link: /getting_started/search/ + tag: ドキュメント + text: Datadog での検索の開始 - link: /logs/explorer/#visualize tag: ドキュメント text: ログを視覚化する方法 - link: /logs/explorer/#patterns tag: ドキュメント - text: ログ内のパターン検出 + text: ログ内のパターンの検出 - link: /logs/log_configuration/processors tag: ドキュメント text: ログの処理方法 - link: /logs/explorer/saved_views/ tag: ドキュメント - text: 保存ビューについて -- link: /logs/explorer/calculated_fields/expression_language + text: 保存済みビューについて +- link: /logs/explorer/calculated_fields/formulas tag: ドキュメント - text: Calculated Fields Expression Language について + text: 計算フィールドの数式について詳しく学ぶ +- link: https://learn.datadoghq.com/courses/log-explorer + tag: ラーニングセンター + text: ログエクスプローラーの概要 title: ログ検索構文 --- +## 概要 {#overview} -## 概要 - -クエリフィルターは、用語と演算子で構成されます。 +クエリフィルターは条件と演算子で構成されます。 -用語には 2 種類あります。 +条件には 2 種類あります。 -* **単一条件**は、1 つの単語です (`test`、`hello` など)。 +* **単一用語**は、`test` や `hello` のような単語です。 -* **シーケンス**は、二重引用符で囲まれた単語のグループです (`"hello dolly"` など)。 +* **シーケンス**は、二重引用符で囲まれた単語のグループです。たとえば、`"hello dolly"` のようなものです。 複合クエリで複数の条件を組み合わせるには、以下の大文字と小文字を区別するブール演算子を使用します。 | | | | |--------------|--------------------------------------------------------------------------------------------------------|------------------------------| | **演算子** | **説明** | **例** | -| `AND` | **積**: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルトで採用されます)。 | authentication AND failure | -| `OR` | **和**: いずれかの条件を含むイベントが選択されます。 | authentication OR password | -| `-` | **除外**: 以下の用語はイベントに含まれません (個々の生テキスト検索に適用されます)。 | authentication AND -password | +| `AND` | **AND 条件**: 両方の用語が選択されたイベントに含まれます (何も追加しなければ、AND がデフォルト)| 認証 AND 失敗| +| `OR` | **OR 条件**: いずれかの用語が選択されたイベントに含まれます | 認証 OR パスワード| +| `-` | **除外**: 以下の用語はイベントに含まれません (個々の生テキスト検索に適用されます)| 認証 AND -パスワード| -## 全文検索 +## 全文検索 {#full-text-search} -
    全文検索機能は Log Management でのみ利用可能で、モニター、ダッシュボード、およびノートブックのクエリで動作します。全文検索構文は、インデックスフィルター、アーカイブフィルター、ログパイプラインフィルター、リハイドレーションフィルター、または Live Tail では使用することはできません。
    +
    全文検索機能は、Log Managementでのみ利用可能で、ログモニター、ダッシュボード、およびノートブックのクエリで機能します。全文検索構文は、インデックスフィルター、アーカイブフィルター、ログパイプラインフィルター、再水和フィルター、または Live Tail で定義する際には使用できません。
    構文 `*:search_term` を使用して、ログメッセージを含むすべてのログ属性にわたって全文検索を実行します。 -### 単一の用語の例 +### 単一の用語の例 {#single-term-example} -| 検索構文 | 検索タイプ | 説明 | +| 検索構文 | 検索タイプ | 説明 | | ------------- | ----------- | --------------------------------------------------------- | -| `*:hello` | 全文 | すべてのログ属性から `hello` という文字列を検索します。 | -| `hello` | フリーテキスト | ログ メッセージのみを対象に、文字列 `hello` を完全一致で検索します。 | +| `*:hello` | 全文 | すべてのログ属性から正確な文字列 `hello` を検索します。| +| `hello` | 自由テキスト | 正確な文字列 `hello` を検索するために、`message`、`@title`、`@error.message`、および `@error.stack` の属性だけを検索します。 | -### ワイルドカードを使った検索例 +### ワイルドカードを使った検索例 {#search-term-with-wildcard-example} -| 検索構文 | 検索タイプ | 説明 | +| 検索構文 | 検索タイプ | 説明 | | ------------- | ----------- | ------------------------------------------------------------------------------------------- | -| `*:hello` | 全文 | すべてのログ属性から `hello` という文字列を検索します。 | -| `*:hello*` | 全文 | すべてのログ属性で、`hello` で始まる文字列を検索します。例: `hello_world`。 | +| `*:hello` | 全文 | すべてのログ属性から正確な文字列 `hello` を検索します。 | +| `*:hello*` | 全文 | すべてのログ属性から `hello` で始まる文字列を検索します。たとえば、 `hello_world`。 | -### 完全一致の複数用語の例 +### 完全一致の複数用語の例 {#multiple-terms-with-exact-match-example} -| 検索構文 | 検索タイプ | 説明 | +| 検索構文 | 検索タイプ | 説明 | | ------------------- | ----------- |--------------------------------------------------------------------------------------------------- | -| `*:"hello world"` | 全文 | すべてのログ属性で、文字列 `hello world` を完全一致で検索します。 | -| `hello world` | フリーテキスト | ログ メッセージ内の `hello` と `world` という単語のみを検索します。例: `hello beautiful world`。 | +| `*:"hello world"` | 全文 | すべてのログ属性から正確な文字列 `hello world` を検索します。 | +| `hello world` | フリーテキスト | `hello` および `world` の単語をログメッセージ内でのみ検索します。たとえば `hello beautiful world`。 | -## 特殊文字とスペースのエスケープ +## 特殊文字とスペースのエスケープ {#escape-special-characters-and-spaces} -次の文字は特殊文字と見なされ、`\` 文字でエスケープする必要があります: `-` `!` `&&` `||` `>` `>=` `<` `<=` `(` `)` `{` `}` `[` `]` `"` `*` `?` `:` `\` `#`、およびスペース。 -- `/` は特殊文字とは見なされないため、エスケープは不要です。 -- Logs Explorer 内の検索クエリでは `@` は使用できません。これは [属性検索](#attributes-search) に予約されているためです。 +次の文字は特殊文字と見なされ、`\` 文字を使用してエスケープする必要があります: `=` `-` `!` `&&` `||` `>` `>=` `<` `<=` `(` `)` `{` `}` `[` `]` `"` `*` `?` `:` `\` `#`、およびスペース。 +- `/`は特殊文字とは見なされず、エスケープする必要はありません。 +- `@`は、[Attribute Search](#attributes-search)のために予約されているため、ログエクスプローラー内の検索クエリで使用することはできません。 -ログメッセージ内の特殊文字を検索することはできません。特殊文字が属性の中にある場合は、検索することができます。 +ログメッセージ内で特殊文字を検索することはできません。属性内にある場合は、特殊文字を検索することができます。 特殊文字を検索するには、[Grok Parser][1] で特殊文字を属性にパースし、その属性を含むログを検索してください。 +## 属性検索 {#attributes-search} -## 属性検索 +特定の属性を検索するには、`@` を追加して属性検索であることを明示します。 -特定の属性を検索するには、`@` を付けて属性検索であることを明示します。 - -たとえば、属性名が **url** で、**url** の値 `www.datadoghq.com` で絞り込む場合は、次のように入力します。 +たとえば、属性名が **url** で、**url** の値 `www.datadoghq.com` で絞り込む場合は、次のように入力します: ``` @url:www.datadoghq.com ``` +### 予約済み属性 {#reserved-attributes} + +[Reserved attributes][8] のような `host`, `source`, `status`, `service`, `trace_id`, `message` は、`@` のプレフィックスを必要としません。これらの属性を直接検索することができます: + +``` +service:web-app +status:error +host:i-1234567890abcdef0 +``` **注**: -1. 属性やタグを検索するためのファセットの定義は**不要です**。 +1. 属性やタグを検索するためにファセットを定義する必要は**ありません**。 -2. 属性検索は大文字と小文字を区別します。 [全文検索](#full-text-search)を使うと大文字と小文字を区別せずに検索できます。また、検索時に大文字と小文字を区別しない結果を得るために、Grok パーサーで `lowercase` フィルターを使用してパースすることもできます。 +2. 属性の検索は大文字と小文字を区別します。[全文検索](#full-text-search)を使用して、大文字と小文字を区別しない結果を取得します。別のオプションは、検索中に大文字と小文字を区別しない結果を得るために、Grokパーサーを使用して`lowercase`フィルターを使用することです。 3. 特殊文字を含む属性値を検索するには、エスケープ処理または二重引用符が必要です。 - - たとえば、値が `hello:world` の属性 `my_attribute` は、`@my_attribute:hello\:world` または `@my_attribute:"hello:world"` を使用して検索します。 - - 単一の特殊文字またはスペースに一致させるには、`?` ワイルドカードを使用します。たとえば、値が `hello world` の属性 `my_attribute` は、`@my_attribute:hello?world` を使用して検索します。 + - たとえば、属性 `my_attribute` の値が `hello:world` の場合、`@my_attribute:hello\:world` または `@my_attribute:"hello:world"` を使って検索します。 + - 単一の特殊文字またはスペースに一致させるには、ワイルドカード `?` を使用します。たとえば、属性`my_attribute`の値が`hello world`の場合、次のように検索します: `@my_attribute:hello?world`。 例: | 検索クエリ | 説明 | |----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `@http.url_details.path:"/api/v1/test"` | 属性 `http.url_details.path` に `/api/v1/test` と一致するすべてのログを検索します。 | -| `@http.url:/api\-v1/*` | `http.url` 属性に `/api-v1/` で始まる値を含むすべてのログを検索します。 | -| `@http.status_code:[200 TO 299] @http.url_details.path:/api\-v1/*` | `http.status_code` の値が 200 から 299 で、`http.url_details.path` 属性に `/api-v1/` で始まる値を含むすべてのログを検索します。 | -| `-@http.status_code:*` | `http.status_code` 属性を含まないすべてのログを検索します | +| `@http.url_details.path:"/api/v1/test"` | 属性 `http.url_details.path` で `/api/v1/test` に一致するすべてのログを検索します。 | +| `@http.url:/api\-v1/*` | 属性 `http.url` に `/api-v1/` | で始まる値を含むすべてのログを検索します。 +| `@http.status_code:[200 TO 299] @http.url_details.path:/api\-v1/*` | `http.status_code` の値が 200 から 299 の間であり、属性 `http.url_details.path` の値が `/api-v1/` |で始まるログを検索します。 +| `-@http.status_code:*` | `http.status_code`属性 | を含まないすべてのログを検索します。 -### CIDR 表記による検索 -CIDR (Classless Inter Domain Routing) は、IP アドレスの範囲 (CIDR ブロックとも呼ばれる) を簡潔に定義することができる表記法です。CIDR は、ネットワーク (VPC など) またはサブネットワーク (VPC 内のパブリック/プライベートサブネットなど) を定義するために最もよく使用されます。 +### CIDR表記による検索 {#search-using-cidr-notation} +クラスレスインタードメインルーティング (CIDR) は、ユーザーがIPアドレスの範囲 (CIDRブロックとも呼ばれる) を簡潔に定義できる表記法です。CIDRは、ネットワーク (VPCなど) やサブネット (VPC内のパブリック/プライベートサブネットなど) を定義するために最も一般的に使用されます。 -ユーザーは `CIDR()` 関数を使用して、CIDR 表記を使用してログの属性をクエリすることができます。`CIDR()` 関数は、フィルタリングのパラメーターとしてログ属性を渡し、その後に 1 つまたは複数の CIDR ブロックを渡す必要があります。 +ユーザーは、CIDR表記を使用してログ内の属性をクエリするために`CIDR()`関数を使用できます。`CIDR()`関数は、フィルタリング対象のログ属性をパラメータとして渡し、その後に1つまたは複数のCIDRブロックを続ける必要があります。 -#### 例 -- `CIDR(@network.client.ip,13.0.0.0/8)` は、フィールド `network.client.ip` の IP アドレスが 13.0.0.0/8 CIDR ブロックに該当するログにマッチしてフィルターをかけます。 -- `CIDR(@network.ip.list,13.0.0.0/8, 15.0.0.0/8)` は、配列属性 `network.ip.list` の IP アドレスが 13.0.0.0/8 または 15.0.0.0/8 CIDR ブロックに該当するログにマッチしてフィルターをかけます。 -- `source:pan.firewall evt.name:reject CIDR(@network.client.ip, 13.0.0.0/8)` は、13.0.0.0/8 サブネットで発信されるパロアルトファイアウォールの拒否イベントにマッチしてフィルターにかけます。 -- `source:vpc NOT(CIDR(@network.client.ip, 13.0.0.0/8)) CIDR(@network.destination.ip, 15.0.0.0/8)` は、サブネット間で環境内のネットワークトラフィックを分析するため、サブネット 13.0.0.0/8 から発生していないが、宛先サブネット 15.0.0.0/8 へ向けられている VPC ログをすべて表示します。 +#### 例{#examples} +- `CIDR(@network.client.ip,13.0.0.0/8)`は、フィールド`network.client.ip`にあるIPアドレスが13.0.0.0/8 CIDRブロックに該当するログにマッチしてフィルターをかけます。 +- `CIDR(@network.ip.list,13.0.0.0/8, 15.0.0.0/8)``network.ip.list` 配列属性にあるIPアドレスが13.0.0.0/8または15.0.0.0/8 CIDRブロックに該当するログにマッチしてフィルターをかけます。 +- `source:pan.firewall evt.name:reject CIDR(@network.client.ip, 13.0.0.0/8)`13.0.0.0/8 サブネットから発生する Palo Alto ファイアウォールの拒否イベントにマッチしてフィルターをかけます。 +- `source:vpc NOT(CIDR(@network.client.ip, 13.0.0.0/8)) CIDR(@network.destination.ip, 15.0.0.0/8)` は、サブネット 13.0.0.0/8 から発生していないが、宛先サブネット 15.0.0.0/8 へ向けられている VPC ログをすべて表示します。これは、サブネット間で環境内のネットワークトラフィックを分析したいためです。 -`CIDR()` 関数は、IPv4 と IPv6 の CIDR 表記をサポートし、ログエクスプローラー、Live Tail、ダッシュボードのログウィジェット、ログモニター、およびログ構成で動作します。 +`CIDR()` 関数は、IPv4 と IPv6 の CIDR 表記をサポートし、Log Explorer、Live Tail、ダッシュボードのログウィジェット、ログモニター、およびログ構成で動作します。 -## ワイルドカード +## ワイルドカード {#wildcards} -フリーテキスト検索ではワイルドカードを使用することができます。ただし、ログエクスプローラーの `content` 列のテキストであるログメッセージ内の用語のみを検索します。ログ属性の値を検索したい場合は、[全文検索](#full-text-search)を参照してください。 +自由なテキスト検索にワイルドカードを使用できます。ただし、ログメッセージ内の用語のみを検索し、ログエクスプローラーの `content` 列のテキストを検索します。ログ属性内の値を検索したい場合は、[全文検索](#full-text-search)を参照してください。 -### 複数文字のワイルドカード +### 複数文字のワイルドカード {#multi-character-wildcard} -ログメッセージ (ログエクスプローラーの `content` 列) で複数文字のワイルドカード検索を行うには、以下のように `*` 記号を使用します。 +ログメッセージ (Log Explorerの `content` 列) で複数文字のワイルドカード検索を行うには、以下のように `*` 記号を使用します。 * `service:web*` は、`web` で始まるサービスを持つすべてのログメッセージに一致します。 -* `web*` は、`web` で始まるすべてのログメッセージに一致します。 -* `*web` は、`web` で終わるすべてのログメッセージに一致します。 +* `web*``web` で始まるすべてのログメッセージに一致します。 +* `*web``web` で終わるすべてのログメッセージに一致します。 -**注**: ワイルドカードは、二重引用符の外側にあるワイルドカードとしてのみ機能します。例えば、`"*test*"` は、メッセージの中に `*test*` という文字列があるログにマッチします。`*test*` は、メッセージのどこかに test という文字列を持つログにマッチします。 +**注意**: ワイルドカードは、二重引用符の外側でのみワイルドカードとして機能します。たとえば、`"*test*"` は、メッセージ内に文字列 `*test*` を含むログに一致します。`*test*` は、メッセージ内の任意の場所に文字列 test を含むログに一致します。 -ワイルドカード検索は、この構文を使用してタグおよび属性 (ファセット使用の有無を問わない) 内で機能します。次のクエリは、文字列 `mongo` で終わるすべてのサービスを返します。 +ワイルドカード検索は、この構文でタグや属性 (ファセット化されていないものも含む) 内で機能します。このクエリは、文字列 `mongo` で終わるすべてのサービスを返します。

    @@ -144,73 +157,86 @@ CIDR (Classless Inter Domain Routing) は、IP アドレスの範囲 (CIDR ブ service:*mongo ``` -ワイルドカード検索は、ログ属性の一部ではないログのプレーンテキストを検索するためにも使用できます。例えば、このクエリは文字列 `NETWORK` を含むコンテナ (メッセージ) を持つすべてのログを返します。 +Wildcard検索は、ログ属性の一部でないログのプレーンテキスト内を検索するためにも使用できます。たとえば、このクエリは、文字列 `NETWORK` を含むコンテンツ (メッセージ) を持つすべてのログを返します。 ``` *NETWORK* ``` -しかし、この検索語は、文字列 `NETWORK` がログ属性内にあり、ログメッセージの一部でない場合は、それを含むログを返しません。 +ただし、この検索語は、文字列 `NETWORK` がログ属性内にあり、ログメッセージの一部でない場合は、それを含むログを返しません。 -### ワイルドカードを検索 +### 検索ワイルドカード {#search-wildcard} -特殊文字を含む属性値またはタグ値を検索する場合や、エスケープまたは二重引用符を必要とする場合は、`?` ワイルドカードを使用して 1 つの特殊文字またはスペースに一致させます。たとえば、値が `hello world` の属性 `my_attribute` を検索するには: `@my_attribute:hello?world` +特殊文字を含む属性やタグの値を検索する場合、またはエスケープや二重引用符が必要な場合は、`?` Wildcardを使用して単一の特殊文字またはスペースに一致させます。たとえば、値が `hello world` の属性 `my_attribute` を検索するには: `@my_attribute:hello?world`。

    -## 数値 +## 数値 {#numerical-values} -数値属性を検索するには、まず[その属性をファセットとして追加][2]します。次に、数値演算子 (`<`、`>`、`<=`、または `>=`) を使用して、数値ファセットの検索を行うことができます。 -例えば、応答時間が 100ms 超のログをすべて取得するには、次のようにします。 +数値属性で検索するには、まず [ファセットとして追加してください][2]。その後、数値ファセットに対して検索を行うために、数値演算子 (`<`,`>`, `<=`, または `>=`) を使用できます。 +たとえば、応答時間が 100ms を超えるすべてのログを取得するには:

    ``` @http.response_time:>100 ``` -特定の範囲内にある数値属性を検索することができます。たとえば、4xx エラーをすべて取得するには、次のようにします。 +特定の範囲内で数値属性を検索できます。たとえば、すべての 4xx エラーを取得するには: ``` @http.status_code:[400 TO 499] ``` -## タグ +## タグ {#tags} -ログは、タグを生成する[ホスト][3]と[インテグレーション][4]からタグを引き継ぎます。これらも、ファセットとして検索で使用できます。 +ログは、それらを生成する [ホスト][3] および [インテグレーション][4] からタグを継承します。検索やファセットとしても使用できます: -* `test` は文字列「test」を検索します。 -* `env:(prod OR test)` は、タグ `env:prod` またはタグ `env:test` を含むすべてのログに一致します。 -* `(env:prod AND -version:beta)` は、タグ `env:prod` を含み、タグ `version:beta` は含まないすべてのログに一致します。 +* `test` は文字列 "test" を検索しています。 +* `env:(prod OR test)`タグ `env:prod` またはタグ `env:test` を持つすべてのログに一致します。 +* `(env:prod AND -version:beta)` はタグ `env:prod` を含み、タグ `version:beta` を含まないすべてのログに一致します。 -タグが[タグのベストプラクティス][5]に従わず、`key:value` 構文も使用していない場合は、次の検索クエリを使用します。 +タグが [タグのベストプラクティス][5] に従わず、`key:value` 構文も使用していない場合は、次の検索クエリを使用します: * `tags:` -## 配列 +## 配列 {#arrays} -次の例では、ファセットで `Peter` 値をクリックすると、`users.names` 属性の値が `Peter` であるか、`Peter` を含む配列であるすべてのログが返されます。 +次の例では、ファセット内の `Peter` の値をクリックすると、`users.names` 属性を持つすべてのログが返され、その値は `Peter` か、または `Peter` を含む配列となります。 {{< img src="logs/explorer/search/array_search.png" alt="配列とファセット" style="width:80%;">}} **注**: 同等の構文を使用して、検索をファセットではない配列属性にも使用することができます。 -以下の例では、Windows 用の CloudWatch ログは、`@Event.EventData.Data` の下に JSON オブジェクトの配列が含まれています。JSON オブジェクトの配列にファセットを作成することはできませんが、以下の構文で検索することができます。 +次の例では、Windows 用 CloudWatch ログの `@Event.EventData.Data` の下に JSON オブジェクトの配列が含まれています。JSONオブジェクトの配列にファセットを作成することはできませんが、次の構文を使用して検索できます。 -* `@Event.EventData.Data.Name:ObjectServer` はキー`Name` と値 `ObjectServer` ですべてのログに一致します。 +* `@Event.EventData.Data.Name:ObjectServer`キー `Name` と値 `ObjectServer` を持つすべてのログに一致します。 -{{< img src="logs/explorer/search/facetless_query_json_arrray2.png" alt="JSON オブジェクト配列上のファセットなしクエリ" style="width:80%;">}} -

    +{{< img src="logs/explorer/search/facetless_query_json_arrray2.png" alt="JSONオブジェクトの配列に対するファセットなしのクエリ" style="width:80%;">}} + +### ネストされた配列検索 {#nested-array-search} + +配列属性内のネストされたフィールドを検索するには、完全な属性パスに `@` プレフィックスを使用します。ログエクスプローラーは配列内の任意のアイテムに一致します: + +* `@network.ip.attributes.ip:2a02\:1810*` は、`network.ip.attributes` 配列内の少なくとも1つのアイテムが `ip` フィールドで `2a02:1810` で始まるすべてのログに一致します。 + +配列が複数の特定の値を含むログに一致させるには、値を括弧内にリストします: + +* `@user_perms:(4 6)` は、`user_perms` 配列が `4` と `6` の両方を含むすべてのログに一致します。 + +配列が範囲内の任意の値を含むログに一致させるには、範囲クエリを使用します: + +* `@user_perms:[2 TO 6]` は、`user_perms` 配列が `2` と `6` の間に少なくとも1つの値を含むすべてのログに一致します。 -## 計算フィールド +## 計算フィールド {#calculated-fields} 計算フィールドはログ属性のように機能し、検索、集計、可視化、さらには他の計算フィールドの定義にも使用できます。計算フィールド名を参照するには、`#` プレフィックスを使用してください。 -{{< img src="logs/explorer/calculated_fields/calculated_field.png" alt="Log Explorer で結果をフィルタリングするために使用される request_duration という計算フィールド" style="width:100%;" >}} +{{< img src="logs/explorer/calculated_fields/calculated_field.png" alt="ログエクスプローラーで結果をフィルタリングするために使用されるrequest_durationという計算フィールド" style="width:100%;" >}} -## 検索の保存 +## 検索の保存 {#saved-searches} -[保存ビュー][6]に、検索クエリ、列、対象期間、およびファセットが格納されます。 +[Saved Views][6] に、検索クエリ、列、対象期間、およびファセットが格納されます。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -220,4 +246,5 @@ service:*mongo [4]: /ja/integrations/#cat-log-collection [5]: /ja/getting_started/tagging/#tags-best-practices [6]: /ja/logs/explorer/saved_views/ -[7]: /ja/logs/explorer/facets/#facet-panel \ No newline at end of file +[7]: /ja/logs/explorer/facets/#facet-panel +[8]: /ja/logs/log_configuration/attributes_naming_convention/#reserved-attributes \ No newline at end of file diff --git a/content/ja/logs/log_configuration/parsing.md b/content/ja/logs/log_configuration/parsing.md index e380b3fd837..1e433445ce8 100644 --- a/content/ja/logs/log_configuration/parsing.md +++ b/content/ja/logs/log_configuration/parsing.md @@ -10,46 +10,49 @@ algolia: aliases: - /ja/logs/parsing/ - /ja/logs/processing/parsing -description: Grok プロセッサーを使用したログのパース +description: Grok プロセッサーを使用してログをパースする further_reading: - link: https://learn.datadoghq.com/courses/log-pipelines - tag: Learning Center - text: ログパイプラインの構築と変更の方法 + tag: ラーニングセンター + text: ログパイプラインの構築と変更方法について - link: /logs/log_configuration/processors - tag: Documentation + tag: ドキュメント text: ログの処理方法 - link: https://www.youtube.com/watch?v=AwW70AUmaaQ&list=PLdh-RwQzDsaM9Sq_fi-yXuzhmE7nOlqLE&index=3 - tag: Video + tag: ビデオ text: 'Datadog のヒントとコツ: Grok パースを使用してログからフィールドを抽出する' - link: /logs/faq/how-to-investigate-a-log-parsing-issue/ - tag: FAQ - text: ログパースの問題を調査する方法 + tag: よくあるご質問 + text: ログのパースに関する問題を調査する方法 - link: /logs/guide/log-parsing-best-practice/ - tag: FAQ - text: ログパース - ベストプラクティス + tag: よくあるご質問 + text: ログのパース - ベストプラクティス - link: /logs/logging_without_limits/ - tag: Documentation - text: Datadog によってインデックス化されるログのボリュームの制御 + tag: ドキュメント + text: Datadog でインデックス化するログの量を制御します +- link: https://learn.datadoghq.com/courses/debugging-log-pipelines + tag: ラーニングセンター + text: ログパイプラインのデバッグ title: パース --- -{{< learning-center-callout header="ラーニングセンターで Grok パースを試す" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} - ログパイプラインの構築と変更、パイプラインスキャナーによる管理、および一貫性を保つための処理済みログ全体での属性名の標準化について学びます。 +{{< learning-center-callout header="学習センターで Grok パースを試す" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} + ログパイプラインの構築と修正を学び、Pipeline Scanner で管理し、一貫性を得られるよう処理されたログ全体で属性名を標準化します。 {{< /learning-center-callout >}} ## 概要 {#overview} -Datadog は JSON 形式のログを自動的にパースします。その他の形式については、Datadog では Grok パーサーを使用してログを強化できます。 -Grok 構文を使用すると、純粋な正規表現よりも簡単にログをパースできます。Grok パーサーを使用すると、半構造化テキストメッセージから属性を抽出できます。 +Datadog は自動的に JSON 形式のログをパースします。他の形式については、Datadog で Grok Parser の助けを借りてログを強化することができます。 +Grok 構文により、純粋な正規表現よりも簡単にログをパースすることができます。Grok Parser を使用して、半構造化テキストメッセージから属性を抽出できます。 -Grok には、整数、IP アドレス、ホスト名などをパースするための再利用可能なパターンが用意されています。これらの値は、文字列として Grok パーサーに送信する必要があります。 +Grok には、整数、IP アドレス、ホスト名などをパースするための再利用可能なパターンが付属しています。これらの値は文字列として grok パーサーに送られなければなりません。 -次の `%{MATCHER:EXTRACT:FILTER}` 構文を使用してパースルールを記述できます。 +パースルールは、`%{MATCHER:EXTRACT:FILTER}` の構文で記述できます。 -* **Matcher**: 何を期待するか (数値、単語、空白以外など) を記述するルール (別のトークンルールへの参照の場合もあります)。 +* **Matcher**: 期待する内容 (数値、単語、スペース以外など) を記述する規則 (または別のトークン規則への参照) -* **Extract** (オプション): *Matcher* によって一致したテキスト部分のキャプチャ先を表す識別子。 +* **Extract** (オプション): *マッチャー*と一致するテキストをキャプチャする対象を表す識別子 -* **Filter** (オプション): 一致した内容を変換するためのポストプロセッサー。 +* **Filter** (オプション): 一致したテキストを変換するためのポストプロセッサー 典型的な非構造化ログの例: @@ -57,13 +60,13 @@ Grok には、整数、IP アドレス、ホスト名などをパースするた john connected on 11/08/2017 ``` -次のパースルールを使用します。 +これに次のパース規則を使用します。 ```text MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} ``` -処理後、次の構造化ログが生成されます。 +処理後は、次のような構造化ログが生成されます。 ```json { @@ -74,72 +77,83 @@ MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} **注**: -* 1 つの Grok パーサー内に複数のパースルールがある場合: - * 任意のログに一致できるのは 1 つのみです。上から下へ向かって最初に一致したルールによってパースが実行されます。 - * 各ルールは、リスト内でそのルールより上の行で定義されているパースルールを参照できます。 -*同じ Grok パーサー内では、一意のルール名を使用する必要があります。 -*ルール名に使用できるのは、英数字、`_`、および `.` のみです。先頭は英数字である必要があります。 -*値が null または空のプロパティは表示されません。 -*各ルールはログの最初から最後まで適用されるため、ログエントリ全体に一致するようにパースルールを定義する必要があります。 -*特定のログでは、大きな空白が生じることがあります。改行と空白を考慮するには、`\n` と `\s+` を使用します。 +* 1 つの Grok パーサーに複数のパース規則がある場合: + * 特定のログに一致するルールは 1 つだけです。上から下の順で最初に一致するルールが、パースを行うルールになります。 + * 各ルールは上記のリストに定義されたパースルールを参照します。 +* 同一の Grok パーサー内では同じ規則名を複数使用できません。 +* ルール名に含めることができるのは、英数字、`_`、および `.` だけです。英数字で始まる必要があります。 +* 値がヌルまたは空欄のプロパティは表示されません。 +* パーシング ルールはログ エントリ全体にマッチするよう定義する必要があります。各ルールはログの先頭から末尾まで適用されるためです。 +* 特定のログは大きな空白のギャップを生成することがあります。改行と空白には、それぞれ `\n` と `\s+` を使います。 -###マッチャーとフィルター {#matcher-and-filter} +### マッチャーとフィルター{#matcher-and-filter} -
    クエリ時 (ログエクスプローラー内) で利用可能な Grok パース機能は、マッチャー (dataintegernotSpacenumber、および word) とフィルター (number および integer) の限定されたサブセットをサポートします。

    -次のマッチャーとフィルターのフルセットは、取り込み時Grok パーサー機能に特有のものです。
    +
    Grok パース機能は、クエリ時 (ログエクスプローラー内) で利用可能であり、限られたサブセットのマッチャー (dataintegernotSpacenumber、および word) とフィルター (numberinteger) をサポートしています。

    +次のフルセットのマッチャーとフィルターは、取り込み時 Grok Parser 機能に固有のものです。
    -Datadog によってネイティブにインプリメントされているすべてのマッチャーとフィルターのリストは次のとおりです。 +以下に、Datadog でネイティブに実装されるすべてのマッチャーとフィルターを示します。 {{< tabs >}} {{% tab "マッチャー" %}} -`date("pattern"[, "timezoneId"[, "localeId"]])` -: 指定されたパターンで日付に一致し、パースして Unix タイムスタンプを生成します。[date マッチャーの例を参照してください](#parsing-dates)。 +**クエリ時および取り込み時のマッチャー:** -`regex("pattern")` -: 正規表現に一致します。[regex マッチャーの例を確認してください](#regex)。 +次のマッチャーは、クエリ時パース (ログエクスプローラー) と取り込み時パース (Grok Parser) の両方で利用可能です。 + +`word` +: _単語_に一致します。つまり、単語境界で始まり、a-z、A-Z、0-9 の文字と `_` (アンダースコア) 文字を含み、単語境界で終わります。正規表現では `\b\w+\b` に相当します。 `notSpace` -: 次のスペースまでの任意の文字列に一致します。 +: 次のスペースまでの文字列に一致します。 + +`number` +: 10 進浮動小数点数に一致し、それを倍精度数としてパースします。 + +`integer` +: 整数に一致し、それを整数としてパースします。 + +`data` +: スペースと改行を含め、任意の文字列に一致します。正規表現では `.*` に相当します。上記のパターンがどれも該当しない場合に使用します。 + +**取り込み時専用のマッチャー:** + +次のマッチャーは、Grok Parser プロセッサーを使用した取り込み時パース専用であり、ログエクスプローラーでは使用できません。 + +`date("pattern"[, "timezoneId"[, "localeId"]])` +: たパターンの日付に一致し、Unix タイムスタンプを生成するようにパースします。[日付マッチャーの例を参照してください](#parsing-dates)。 + +`regex("pattern")` +: 正規表現に一致します。[正規表現マッチャーの例をチェックしてください](#regex)。 `boolean("truePattern", "falsePattern")` -: ブール値に一致してパースします。true と false のパターンをオプションで定義できます (デフォルトは `true` と `false`、大文字と小文字は区別されません)。 +: ブール値に一致してパースします。オプションとして、true と false のパターンを定義できます (デフォルトは `true` と `false`、大文字と小文字は区別されません)。 `numberStr` -: 10 進浮動小数点数に一致し、文字列としてパースします。 - -`number` -: 10 進浮動小数点数に一致し、倍精度数としてパースします。 +: 10 進浮動小数点数に一致し、それを文字列としてパースします。 `numberExtStr` -: 浮動小数点数 (指数表記をサポート) に一致し、文字列としてパースします。 +: (指数表記の) 浮動小数点数に一致し、それを文字列としてパースします。 `numberExt` -: 浮動小数点数 (指数表記をサポート) に一致し、倍精度数としてパースします。 +: (指数表記の) 浮動小数点数に一致し、それを倍精度数としてパースします。 `integerStr` -: 整数に一致し、文字列としてパースします。 - -`integer` -: 整数に一致し、整数としてパースします。 +: 整数に一致し、それを文字列としてパースします。 `integerExtStr` -: 整数 (指数表記をサポート) に一致し、文字列としてパースします。 +: (指数表記の) 整数に一致し、それを文字列としてパースします。 `integerExt` -: 整数 (指数表記をサポート) に一致し、整数としてパースします。 - -`word` -: _単語_に一致します。これは単語の境界で始まり、a-z、A-Z、0-9、および `_` (アンダースコア) 文字を含み、単語の境界で終わります。正規表現の `\b\w+\b` に相当します。 +: (指数表記の) 整数に一致し、それを整数としてパースします。 `doubleQuotedString` : 二重引用符で囲まれた文字列に一致します。 `singleQuotedString` -: 一重引用符で囲まれた文字列に一致します。 +: 単一引用符で囲まれた文字列に一致します。 `quotedString` -: 二重引用符または一重引用符で囲まれた文字列に一致します。 +: 二重引用符または単一引用符で囲まれた文字列に一致します。 `uuid` : UUID に一致します。 @@ -148,10 +162,10 @@ Datadog によってネイティブにインプリメントされているすべ : MAC アドレスに一致します。 `ipv4` -: IPv4 に一致します。 +: IPV4 に一致します。 `ipv6` -: IPv6 に一致します。 +: IPV6 に一致します。 `ip` : IP (v4 または v6) に一致します。 @@ -165,83 +179,88 @@ Datadog によってネイティブにインプリメントされているすべ `port` : ポート番号に一致します。 -`data` -: スペースと改行を含む任意の文字列に一致します。正規表現の `.*` に相当します。上記のパターンのいずれも適切でない場合に使用します。 - {{% /tab %}} {{% tab "フィルター" %}} +**クエリ時および取り込み時のフィルター:** + +次のフィルターは、クエリ時パース (ログエクスプローラー) と取り込み時パース (Grok Parser) の両方で利用可能です。 + `number` -: 一致した内容を倍精度数としてパースします。 +: 一致部分を倍精度数としてパースします。 `integer` -: 一致した内容を整数としてパースします。 +: 一致部分を整数としてパースします。 + +**取り込み時専用のフィルター:** + +次のフィルターは、Grok Parser プロセッサーを使用した取り込み時パース専用であり、ログエクスプローラーでは使用できません。 `boolean` -: 大文字小文字を区別せず、'true' および 'false' 文字列をブール値としてパースします。 +: 大文字と小文字を区別しないで、'true' および 'false' 文字列をブール値としてパースします。 `nullIf("value")` -: 一致した内容が指定された値と等しい場合に null を返します。 +: 一致部分が指定された値に等しい場合は null を返します。 `json` -: 正しくフォーマットされた JSON をパースします。 +: 適切にフォーマットされた JSON をパースします。 `rubyhash` -: `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}` のような、正しくフォーマットされた Ruby ハッシュをパースします。 +: `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}`など、適切な形式の Ruby ハッシュをパースします。 `useragent([decodeuricomponent:true/false])` -: user-agent をパースし、そのエージェントが表すデバイス、OS、ブラウザを含む JSON オブジェクトを返します。[User Agent プロセッサーを確認してください][1]。 +: user-agent をパースし、Agent によって表されるデバイス、OS、およびブラウザを含む JSON オブジェクトを返します。[User Agent プロセッサーをチェックしてください][1]。 `querystring` -: 一致する URL クエリ文字列 (例: `?productId=superproduct&promotionCode=superpromo`) 内のすべてのキーと値のペアを抽出します。 +: 一致する URL クエリ文字列内に含まれる、キーと値のペアすべてを抽出します (`?productId=superproduct&promotionCode=superpromo` など)。 `decodeuricomponent` : URI コンポーネントをデコードします。たとえば、`%2Fservice%2Ftest` を `/service/test` に変換します。 `lowercase` -: 小文字に変換された文字列を返します。 +: 小文字に変換した文字列を返します。 `uppercase` -: 大文字に変換された文字列を返します。 +: 大文字に変換した文字列を返します。 `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` -: キーと値のパターンを抽出し、JSON オブジェクトを返します。[キーと値のフィルターの例](#key-value-or-logfmt)を参照してください。 +: キーと値のパターンを抽出して JSON オブジェクトを返します。[キーと値のフィルターの例](#key-value-or-logfmt) を参照してください。 `xml` -: 正しくフォーマットされた XML をパースします。[XML フィルターの例](#parsing-xml)を参照してください。 +: 適切な形式の XML をパースします。[XML フィルターの例](#parsing-xml) を参照してください。 `csv(headers[, separator[, quotingcharacter]])` -: 正しくフォーマットされた CSV または TSV の行をパースします。[CSV フィルターの例](#parsing-csv)を参照してください。 +: 適切にフォーマットされた CSV または TSV 行をパースします。[CSV フィルターの例](#parsing-csv) を参照してください。 `scale(factor)` -: 期待される数値を指定された係数で乗算します。 +: 抽出された数値を指定された係数で乗算します。 `array([[openCloseStr, ] separator][, subRuleOrFilter)` -: トークンの文字列シーケンスをパースし、配列として返します。[リストから配列へ](#list-to-array)の例を参照してください。 +: トークンの文字列シーケンスをパースして、配列として返します。[リストを配列に](#list-to-array) の例を参照してください。 `url` -: URL をパースし、トークン化されたすべてのメンバー (ドメイン、クエリパラメーター、ポートなど) を JSON オブジェクトで返します。[URL のパース方法に関する詳細][2]。 +: URL をパースし、トークン化されたすべてのメンバー (ドメイン、クエリパラメーター、ポートなど) を 1 つの JSON オブジェクトとして返します。[URL のパース方法を参照してください][2]。 -[1]: /ja/logs/log_configuration/processors/#user-agent-parser -[2]: /ja/logs/log_configuration/processors/#url-parser +[1]: /ja/logs/log_configuration/processors/user_agent_parser/ +[2]: /ja/logs/log_configuration/processors/url_parser/ {{% /tab %}} {{< /tabs >}} ## 高度な設定 {#advanced-settings} -Grok プロセッサーの下部にある [**Advanced Settings**] (高度な設定) セクションを使用すると、デフォルトの `message` 属性の代わりに特定の属性をパースしたり、複数のパースルールで共通のパターンを再利用するヘルパールールを定義したりできます。 +Grok プロセッサの下部にある **高度な設定** セクションを使用して、デフォルトの `message` 属性ではなく特定の属性をパースするか、複数のパースルールで共通のパターンを再利用するヘルパールールを定義します。 -###特定のテキスト属性のパース {#parsing-a-specific-text-attribute} +### 特定のテキスト属性をパース {#parsing-a-specific-text-attribute} -デフォルトの `message` 属性の代わりに、指定したテキスト属性に Grok プロセッサーを適用するには、**Extract from** フィールドを使用します。 +**Extract from** フィールドを使用して、デフォルトの `message` 属性ではなく、指定されたテキスト属性に Grok プロセッサを適用します。 -たとえば、キーと値としてパースする必要がある `command.line` 属性を含むログを考えてみましょう。`command.line` から抽出してその内容をパースし、コマンドデータから構造化された属性を作成します。 +たとえば、キー-値としてパースする `command.line` 属性を含むログを考慮します。`command.line` から抽出して、その内容をパースし、そのコマンドデータから構造化された属性を作成します。 -{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="command.line 属性からの抽出を使用した高度な設定の例" style="width:80%;">}} +{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="command.line 属性から抽出する高度な設定の例" style="width:80%;">}} ### 共通パターンを再利用するためのヘルパールールの使用 {#using-helper-rules-to-reuse-common-patterns} -パースルールのトークンを定義するには、**Helper Rules** フィールドを使用します。ヘルパールールを使用すると、パースルール全体で共通の Grok パターンを再利用できます。これは、同じ Grok パーサー内に同じトークンを使用するルールが複数ある場合に便利です。 +**Helper Rules** フィールドを使用して、パースルールのトークンを定義します。ヘルパールールを使用すると、パースルール全体で共通する Grok パターンを再利用できます。これは、同じ Grok パーサー内にある複数のルールが同じトークンを使用する場合に便利です。 典型的な非構造化ログの例: @@ -249,13 +268,13 @@ Grok プロセッサーの下部にある [**Advanced Settings**] (高度な設 john id:12345 connected on 11/08/2017 on server XYZ in production ``` -次のパースルールを使用します。 +次のパース規則を使用します。 ```text MyParsingRule %{user} %{connection} %{server} ``` -次のヘルパーを使用します。 +次のヘルパーと組み合わせます。 ```text user %{word:user.name} id:%{integer:user.id} @@ -265,31 +284,31 @@ server on server %{notSpace:server.name} in %{notSpace:server.env} ## 例 {#examples} -パーサーの使用方法を示す例: +以下に、パーサーの具体的な使用例をいくつか挙げます。 -* [キーと値または logfmt](#key-value-or-logfmt) +* [キー値または logfmt](#key-value-or-logfmt) * [日付のパース](#parsing-dates) * [交互パターン](#alternating-pattern) * [オプションの属性](#optional-attribute) * [ネストされた JSON](#nested-json) * [正規表現](#regex) * [リストと配列](#list-to-array) -* [glog 形式](#glog-format) +* [Glog 形式](#glog-format) * [XML](#parsing-xml) * [CSV](#parsing-csv) -### キーと値または logfmt {#key-value-or-logfmt} +### キー値または logfmt {#key-value-or-logfmt} -これはキーと値のコアフィルター `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` です。次のように指定します。 +これはキー-値コアフィルターです: `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])`。ここで: -* `separatorStr`: キーと値の間のセパレーターを定義します。デフォルトは `=` です。 -* `characterAllowList`: デフォルトの `\\w.\\-_@` に加えて、エスケープされない追加の値を定義します。引用符で囲まれていない値 (たとえば `key=@valueStr`) にのみ使用されます。 -* `quotingStr`: 引用符を定義し、デフォルトの引用符検出 (`<>`、`""`、`''`) を置き換えます。 -* `delimiter`: 異なるキーと値のペアの間のセパレーターを定義します (たとえば、`key1=value1|key2=value2` では `|` が区切り文字です)。デフォルトは ` ` (通常のスペース)、`,`、および `;` です。 +* `separatorStr`: キーと値を区切るセパレーターを定義します。デフォルトは `=` です。 +* `characterAllowList`: デフォルトの `\\w.\\-_@` に加えて、エスケープされない値の文字を追加で定義します。非引用符の値のみに使用されます (例: `key=@valueStr`)。 +* `quotingStr`: 引用符を定義し、デフォルトの引用符検出 `<>`、`""`、`''` を置き換えます。 +* `delimiter`: 異なるキー値ペアのセパレーターを定義します (例: `|` は `key1=value1|key2=value2` の区切り文字)。デフォルトは ` ` (通常のスペース)、`,` および `;` です。 -**keyvalue** などのフィルターを使用すると、キーと値または logfmt 形式の文字列を属性に簡単にマッピングできます。 +**keyvalue** などのフィルターを使用すると、keyvalue または logfmt 形式の属性に文字列をより簡単にマップできます。 -**ログ:** +**ログ**: ```text user=john connect_date=11/08/2017 id=123 action=click @@ -301,8 +320,8 @@ user=john connect_date=11/08/2017 id=123 action=click rule %{data::keyvalue} ``` -パラメーター名はすでにログに含まれているため、指定する必要はありません。 -ルールパターンに **extract** 属性 `my_attribute` を追加すると、次のように表示されます。 +パラメーター名を指定する必要はありません。すでにログに含まれています。 +ルールパターンに **extract** の属性 `my_attribute` を追加すると、次のように表示されます。 ```json { @@ -314,9 +333,9 @@ rule %{data::keyvalue} } ``` -`=` がキーと値の間のデフォルトのセパレーターではない場合は、セパレーターを指定してパースルールにパラメーターを追加します。 +`=` がキーと値の間のデフォルトのセパレーターでない場合は、セパレーターを指定してパースルールにパラメーターを追加してください。 -**ログ:** +**ログ**: ```text user: john connect_date: 11/08/2017 id: 123 action: click @@ -328,9 +347,9 @@ user: john connect_date: 11/08/2017 id: 123 action: click rule %{data::keyvalue(": ")} ``` -ログの属性値に特殊文字 (たとえば URL 内の `/` など) が含まれている場合は、パースルールの許可リストに追加します。 +ログに、URL の `/` のような特殊文字が属性値に含まれている場合は、それをパースルールの許可リストに追加してください: -**ログ:** +**ログ**: ```text url=https://app.datadoghq.com/event/stream user=john @@ -344,7 +363,7 @@ rule %{data::keyvalue("=","/:")} その他の例: -| **生の文字列** | **パースルール** | **結果** | +| **生文字列** | **パースルール** | **結果** | |:-----------------------------|:------------------------------------------------------|:--------------------------------------| | key=valueStr | `%{data::keyvalue}` | {"key": "valueStr"} | | key=\ | `%{data::keyvalue}` | {"key": "valueStr"} | @@ -356,8 +375,8 @@ rule %{data::keyvalue("=","/:")} | key1=value1\|key2=value2 | %{data::keyvalue("=", "", "", "|")} | {"key1": "value1", "key2": "value2"} | | key1="value1"\|key2="value2" | %{data::keyvalue("=", "", "", "|")} | {"key1": "value1", "key2": "value2"} | -**複数の引用文字列の例**: 複数の引用文字列が定義されている場合、デフォルトの動作は定義された引用文字に置き換えられます。 -キーと値は、`quotingStr` で指定されている内容に関わらず、引用文字のない入力に常に一致します。引用文字が使用されている場合、引用文字の間のすべてが抽出されるため、`characterAllowList` は無視されます。 +**複数の引用文字列の例**: 複数の引用文字列が定義されている場合、デフォルトの動作は定義されている引用符文字に置き換えられます。 +キー値は、`quotingStr` に指定された内容に関係なく、引用符文字がない入力と常に一致します。引用符文字が使用されている場合、`characterAllowList` は無視され、引用符文字の間にあるすべてが抽出されます。 **ログ:** @@ -380,14 +399,14 @@ rule %{data::keyvalue("=","/:")} **注**: * 空の値 (`key=`) または `null` 値 (`key=null`) は、出力 JSON に表示されません。 -*`data` オブジェクトで *keyvalue* フィルターを定義し、このフィルターが一致しない場合、空の JSON `{}` が返されます (たとえば、入力: `key:=valueStr`、パースルール: `rule_test %{data::keyvalue("=")}`、出力: `{}`)。 -*`""` を `quotingStr` として定義すると、引用に関するデフォルト設定が維持されます。 +* `data` オブジェクトで *keyvalue* フィルターを定義する場合にこのフィルターが一致しないなら、空の JSON `{}` が返されます (例: 入力: `key:=valueStr`、パースルール: `rule_test %{data::keyvalue("=")}`、出力: `{}`)。 +* `""` を `quotingStr` と定義すると、引用符のデフォルト設定が保持されます。 -###日付のパース {#parsing-dates} +### 日付のパース{#parsing-dates} -日付マッチャーは、タイムスタンプを EPOCH 形式 (測定単位: **ミリ秒**) に変換します。 +日付マッチャーは、タイムスタンプを EPOCH 形式 (**ミリ秒**計測単位) に変換します。 -| **生の文字列** | **パースルール** | **結果** | +| **生文字列** | **パースルール** | **結果** | |:-------------------------------------|:----------------------------------------------------------|:------------------------| | 14:20:15 | `%{date("HH:mm:ss"):date}` | {"date": 51615000} | | 02:20:15 PM | `%{date("hh:mm:ss a"):date}` | {"date": 51615000} | @@ -403,19 +422,19 @@ rule %{data::keyvalue("=","/:")} | Thu Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","UTC+5"):date}` | {"date": 1466047743000} | | Thu Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","+3"):date}` | {"date": 1466054943000} | -1 独自のローカライズを行い、タイムスタンプが UTC _ではない_場合は、`timezone` パラメーターを使用します。 +1 独自のローカライズを実行し、タイムスタンプが UTC で_ない_場合は、`timezone` パラメーターを使用してください。 サポートされているタイムゾーンの形式は次のとおりです。 -* `GMT`、`UTC`、`UT`、または `Z` -* `+hh:mm`、`-hh:mm`、`+hhmm`、`-hhmm`。サポートされている最大範囲は、+18:00 から -18:00 まで (両端を含む) です。 -*`UTC+`、`UTC-`、`GMT+`、`GMT-`、`UT+`、または `UT-` で始まるタイムゾーン。サポートされている最大範囲は、+18:00 から -18:00 まで (両端を含む) です。 -*TZ データベースから取得されたタイムゾーン ID。詳細については、[TZ データベース名][2]を参照してください。 +* `GMT`、`UTC`、`UT`、または`Z` +* `+hh:mm`、`-hh:mm`、`+hhmm`、`-hhmm`。最大サポート範囲は +18:00 から 18:00 まで (両端を含む) です。 +* `UTC+`、`UTC-`、`GMT+`、`GMT-`、`UT+`、または `UT-` で始まるタイムゾーン。最大サポート範囲は +18:00 から 18:00 まで (両端を含む) です。 +* TZ データベースから取得したタイムゾーン ID。詳細については、[TZ データベース名][2]を参照してください。 -**注**: 日付をパースしても、その値がログの公式な日付として設定される**わけではありません**。これを行うには、後続のプロセッサーで [ログ日付リマッパー][3]を使用します。 +**注**: 日付をパースしても、その値がログの公式日付として設定されることは**ありません**。公式日付にするには、後続のプロセッサで[ログ日付リマッパー][3]を使用してください。 -###交互パターン {#alternating-pattern} +### 交互パターン {#alternating-pattern} -1 つの属性のみが異なる 2 つの形式の可能性があるログがある場合は、`(|)` を使用した交互設定で単一のルールを設定します。このルールは、ブール演算の OR に相当します。 +ログの形式が 2 通りあり、1 つの属性だけで異なる場合は、交互に `(|)` を使用して 1 つのルールを設定します。このルールは、ブール OR に相当します。 **ログ**: @@ -425,7 +444,7 @@ john connected on 11/08/2017 ``` **ルール**: -"id" は文字列ではなく整数であることに注意してください。 +"id" は整数であり、文字列ではないことに注意してください。 ```text MyParsingRule (%{integer:user.id}|%{word:user.firstname}) connected on %{date("MM/dd/yyyy"):connect_date} @@ -455,7 +474,7 @@ MyParsingRule (%{integer:user.id}|%{word:user.firstname}) connected on %{date("M ### オプションの属性 {#optional-attribute} -ログによっては、一部の時間帯にのみ表示される値が含まれる場合があります。この場合、`()?` を使用して属性の抽出をオプションにします。 +一部のログには、常には表示されない値が含まれています。この場合、`()?` を使用して属性抽出をオプションにします。 **ログ**: @@ -470,7 +489,7 @@ john connected on 11/08/2017 MyParsingRule %{word:user.firstname} (%{integer:user.id} )?connected on %{date("MM/dd/yyyy"):connect_date} ``` -**注**: オプションセクションの最初の単語の後にスペースを入れると、ルールは一致しません。 +**注**: 任意のセクションで先頭の単語の後ろにスペースを含めると、ルールは一致しません。 **結果**:
    `(%{integer:user.id} )?` @@ -498,7 +517,7 @@ MyParsingRule %{word:user.firstname} (%{integer:user.id} )?connected on %{date(" ### ネストされた JSON {#nested-json} -生のテキストプレフィックスの後にネストされた JSON オブジェクトをパースするには、`json` フィルターを使用します。 +生のテキストプレフィックスの後でネストされている JSON オブジェクトをパースするには、`json` フィルターを使用します。 **ログ**: @@ -552,7 +571,7 @@ MyParsingRule %{regex("[a-z]*"):user.firstname}_%{regex("[a-zA-Z0-9]*"):user.id} ### リストから配列へ {#list-to-array} -リストを単一の属性内の配列に抽出するには、`array([[openCloseStr, ] separator][, subRuleOrFilter)` フィルターを使用します。`subRuleOrFilter` はオプションであり、これらの [フィルター][4]を使用できます。 +`array([[openCloseStr, ] separator][, subRuleOrFilter)` フィルターを使い、リストを 1 つの属性の配列形式でリストを取り出します。`subRuleOrFilter` はオプションであり、これらの [フィルター][4] を受け入れます。 **ログ**: @@ -591,23 +610,23 @@ Users {John-Oliver-Marc-Tom} have been added to the database myParsingRule Users %{data:users:array("{}","-")} have been added to the database ``` -**`subRuleOrFilter`** を使用したルール: +**ルールで使用するもの`subRuleOrFilter`**: ```text myParsingRule Users %{data:users:array("{}","-", uppercase)} have been added to the database ``` -### glog 形式 {#glog-format} +### Glog 形式 {#glog-format} -Kubernetes コンポーネントは `glog` 形式でログを記録することがあります。この例は、パイプラインライブラリの Kube Scheduler アイテムのものです。 +Kubernetes コンポーネントは時々 `glog` 形式でログを記録します。この例は、パイプラインライブラリの Kube Scheduler アイテムからのものです。 -ログ行の例: +ログラインの例: ```text W0424 11:47:41.605188 1 authorization.go:47] Authorization is disabled ``` -パースルール: +パースの例: ```text kube_scheduler %{regex("\\w"):level}%{date("MMdd HH:mm:ss.SSSSSS"):timestamp}\s+%{number:logger.thread_id} %{notSpace:logger.name}:%{number:logger.lineno}\] %{data:msg} @@ -666,25 +685,25 @@ rule %{data::xml} **注**: -* XML の 2 つのタグの間に属性と文字列値の両方を持つタグが含まれている場合、`value` 属性が生成されます。例: `Harry Potter` は `{"title": {"lang": "en", "value": "Harry Potter" } }` に変換されます。 -* 繰り返されるタグは自動的に配列に変換されます。例: `Harry PotterEveryday Italian` は `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }` に変換されます。 +* XML の 2 つのタグの間に属性と文字列値の両方を持つタグが含まれている場合、`value` 属性が生成されます。たとえば、`Harry Potter` は `{"title": {"lang": "en", "value": "Harry Potter" } }` に変換されます。 +* 繰り返しタグは自動的に配列に変換されます。たとえば、`Harry PotterEveryday Italian` は `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }` に変換されます。 ### CSV のパース {#parsing-csv} -**CSV** フィルターを使用すると、特定の文字 (デフォルトは `,`) で区切られている場合に、文字列を属性に簡単にマッピングできます。 +**CSV** フィルターを使用して、文字列を属性に簡単にマップできます。対象のデータは任意の文字で区切る必要があります (デフォルトでは `,`)。 -CSV フィルターは `csv(headers[, separator[, quotingcharacter]])` として定義されます。次のように指定します。 +CSV フィルターは `csv(headers[, separator[, quotingcharacter]])` として定義されています。ここで、 -* `headers`: `,` で区切られたキー名を定義します。キー名は英字で始まる必要があり、任意の英数字および `_` を含めることができます。 -* `separator`: 異なる値を区切るために使用されるセパレーターを定義します。1 文字のみ使用できます。デフォルト: `,`。**注**: TSV のタブ文字を表すには、`separator` に `tab` を使用します。 -* `quotingcharacter`: 引用符を定義します。1 文字のみ使用できます。デフォルト: `"` +* `headers`: キーの名前を `,` で区切って定義します。キー名はアルファベットで始まり、`_` に加えて任意の英数字を含むことができます。 +* `separator`: 異なる値を区切るために使用される区切り文字を定義します。1 文字のみが受け入れられます。デフォルト: `,`。**注**: TSV のタブ文字を表す `tab` を `separator` として使用します。 +* `quotingcharacter`: 引用符文字を定義します。1 文字のみが受け入れられます。デフォルト: `"` **注**: -* セパレーター文字を含む値は、引用符で囲む必要があります。 -*引用符を含む引用値は、引用符でエスケープする必要があります。たとえば、引用値内の `""` は `"` を表します。 -*ログに含まれる値の数がヘッダーのキーの数と一致しない場合、CSV パーサーは最初の値を照合します。 -*整数と倍精度数は、可能な場合は自動的にキャストされます。 +* 区切り文字を含む値は引用符で囲む必要があります。 +* 引用符文字を含む引用された値は、引用符文字でエスケープする必要があります。たとえば、引用された値内にある `""` は `"` を表します。 +* ヘッダーに含まれるキー数と同じ個数の値がログに含まれていない場合、CSV パーサーは最初に出現する値とマッチさせます。 +* 整数と浮動小数点数は、可能な場合、自動的にキャストされます。 **ログ**: @@ -714,7 +733,7 @@ myParsingRule %{data:user:csv("first_name,name,st_nb,st_name,city")} その他の例: -| **生の文字列** | **パースルール** | **結果** | +| **生文字列** | **パースルール** | **結果** | |:-----------------------------|:-------------------------------------------------------------------------|:------------------------------------------------| | `John,Doe` | `%{data::csv("firstname,name")}` | {"firstname": "John", "name":"Doe"} | | `"John ""Da Man""",Doe` | `%{data::csv("firstname,name")}` | {"firstname": "John \"Da Man\"", "name":"Doe"} | @@ -727,7 +746,7 @@ myParsingRule %{data:user:csv("first_name,name,st_nb,st_name,city")} ### データマッチャーを使用して不要なテキストを破棄する {#use-data-matcher-to-discard-unneeded-text} -必要な部分をパースした後、それ以降のテキストを破棄しても安全であることがわかっているログがある場合は、データマッチャーを使用して破棄できます。次のログの例では、`data` マッチャーを使用して末尾の `%` を破棄できます。 +ログに必要な部分を解析した後、その後のテキストが破棄しても安全であることがわかっている場合、データマッチャーを使用して破棄することができます。次のログの例では、`data` マッチャーを使用して、末尾の `%` を削除することができます。 **ログ**: @@ -752,13 +771,13 @@ MyParsingRule Usage\:\s+%{number:usage}%{data:ignore} ### ASCII 制御文字 {#ascii-control-characters} -ログに ASCII 制御文字が含まれている場合、それらは取り込み時にシリアル化されます。これらは、grok パーサー内でシリアル化された値を明示的にエスケープすることで処理できます。 +ログに ASCII 制御文字が含まれている場合、それらは取り込み時にシリアライズされます。これらは、grok パーサー内でシリアライズされた値を明示的にエスケープすることで処理できます。 -##その他の参考資料 {#further-reading} +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://github.com/google/re2/wiki/Syntax [2]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -[3]: /ja/logs/log_configuration/processors/#log-date-remapper +[3]: /ja/logs/log_configuration/processors/log_date_remapper/ [4]: /ja/logs/log_configuration/parsing/?tab=filters&tabs=filters#matcher-and-filter \ No newline at end of file diff --git a/content/ja/metrics/types.md b/content/ja/metrics/types.md index 9d343502587..053b5b4a90e 100644 --- a/content/ja/metrics/types.md +++ b/content/ja/metrics/types.md @@ -1,7 +1,7 @@ --- algolia: tags: - - メトリクスタイプ + - metric types aliases: - /ja/developers/metrics/counts/ - /ja/developers/metrics/distributions/ @@ -13,21 +13,20 @@ aliases: - /ja/developers/metrics/metrics_type/ - /ja/developers/metrics/types/ further_reading: -- link: developers/dogstatsd +- link: extend/dogstatsd tag: ドキュメント text: DogStatsD について - link: /metrics/units tag: ドキュメント - text: メトリクス単位 -- link: developers/libraries + text: メトリクスのユニット +- link: extend/libraries tag: ドキュメント text: 公式/コミュニティ作成の API および DogStatsD クライアントライブラリ title: メトリクスタイプ --- +## 概要 {#overview} -## 概要 - -Datadog に送信される各メトリクスにはタイプが必要です。メトリクスのタイプは、クエリ時のメトリクス値の表示方法、および追加の[修飾子][1]および[関数][2]を使用した Datadog 内の関連するグラフ化の可能性に影響します。メトリクスのタイプは、[メトリクスの概要ページ][3]の特定のメトリクスの詳細サイドパネルに表示されます。 +Datadogに送信される各メトリクスには、タイプが必要です。メトリクスのタイプは、クエリ時にメトリクス値が表示される方法に影響します。さらに、Datadog 内で追加の[修飾子][1]や[関数][2]を使用して関連グラフを作成する可能性にも影響を与えます。メトリクスのタイプは、[メトリクス概要ページ][3]の該当メトリクスの詳細サイドパネルに表示されます。 **注**: この詳細サイドパネルでメトリクスタイプを変更すると、既存のすべての視覚化およびモニターのメトリクスの動作が変更され、履歴データが無意味なものになる可能性があります。 @@ -40,16 +39,16 @@ Datadog に送信される各メトリクスにはタイプが必要です。メ - [HISTOGRAM](?tab=histogram#metric-types) - [DISTRIBUTION](?tab=distribution#metric-types) -次の各種メトリクス送信タイプは、Datadog ウェブアプリケーション内にある 4 つのアプリ内メトリクスタイプにマッピングされます。 +次の各種メトリクス送信タイプは、Datadog ウェブアプリケーション内にある 4 つのアプリ内メトリクスタイプにマップされます。 - COUNT - RATE - GAUGE - DISTRIBUTION -**注**: タイプなしでメトリクスを Datadog に送信すると、メトリクスタイプは Datadog 内で `Not Assigned` と表示されます。`Not Assigned` メトリクスタイプは、最初のメトリクスタイプが送信されるまで、別のアプリ内タイプに変更できません。 +**注**: タイプなしで Datadog にメトリクスを送信すると、メトリクスタイプは Datadog 内で `Not Assigned` として表示されます。`Not Assigned` メトリクスタイプは、初期メトリクスタイプが送信されるまで、他のアプリ内タイプに変更できません。 -## 送信とアプリ内タイプ +## 送信とアプリ内タイプ {#submission-vs-in-app-type} メトリクスは、主に次の 3 つの方法で Datadog に送信されます。 @@ -57,66 +56,66 @@ Datadog に送信される各メトリクスにはタイプが必要です。メ - [DogStatsD][6] - [Datadog の HTTP API][7] -Datadog が受信するデータの大部分は、Agent チェックまたは DogStatsD を介して、Agent によって送信されます。これらの送信方法の場合、メトリクスのタイプにより、[フラッシュ時間間隔][8]で Agent で収集された複数の値の集計方法が決まります。Agent は、これらの値を組み合わせて、その間隔の単一の代表的なメトリクス値にします。この組み合わせた値は、単一のタイムスタンプとともに Datadog に保存されます。 +Datadog が受信するデータの大部分は、Agent から Agent チェックまたは DogStatsD を通じて送信されます。これらの送信方法では、[フラッシュ時間間隔][8]内で 1 つの Agent について収集される複数値の集計方法がメトリクスのタイプによって決まります。Agent は、これらの値を結合し、その間隔の単一の代表メトリクス値にします。結合後の値が、単一のタイムスタンプで Datadog に保存されます。 Datadog API に直接送信されたデータは、ディストリビューションメトリクスを除いて Datadog によって集計されません。Datadog に送信された生の値はそのまま保存されます。 -[送信タイプと Datadog アプリ内タイプ](#submission-types-and-datadog-in-app-types)セクションを読んで、各種メトリクス送信タイプが対応するアプリ内タイプにどのようにマッピングされるかを確認してください。 +[送信タイプと Datadog アプリ内タイプ](#submission-types-and-datadog-in-app-types)のセクションを読んで、各種メトリクス送信タイプが対応するアプリ内タイプにどのようにマッピングされるかを確認してください。 -## メトリクスタイプ +## メトリクスタイプ {#metric-types} -### 定義 +### 定義 {#definition} {{< tabs >}} -{{% tab "COUNT" %}} +{{% tab "カウント (COUNT)" %}} -COUNT メトリクス送信タイプは、ある時間間隔内のイベント発生の合計数を表します。COUNT は、データベースへの接続数やエンドポイントへのリクエスト数を追跡するために使用できます。このイベント数は、時間の経過とともに累積または減少する可能性があり、単調に増加するわけではありません。 +COUNT メトリクス送信タイプは特定の時間間隔内のイベント発生の合計数を表します。COUNT は、データベースへのコネクションの合計数やエンドポイントへのリクエストの合計数を追跡するために使用できます。このイベント数は、時間の経過とともに蓄積または減少する可能性があり、単調増加ではありません。 **注**: この COUNT とは異なり、RATE は定義された時間間隔で正規化される 1 秒あたりのイベントの数を表します。 {{% /tab %}} -{{% tab "RATE" %}} +{{% tab "レート (RATE)" %}} -RATE メトリクス送信タイプは、ある時間間隔の 1 秒あたりのイベント発生の合計数を表します。RATE を使用して、データベースへの接続頻度やエンドポイントへのリクエストフローなど、何かが発生している頻度を追跡できます。 +RATE メトリクス送信タイプは 1 秒あたりのイベント発生の合計数を表します。RATE は、データベースへのコネクションの頻度やエンドポイントへのリクエストのフローなど、何かがどれくらいの頻度で発生しているかを追跡するために使用できます。 **注**: この RATE とは異なり、COUNT メトリクス送信タイプは特定の時間間隔内のイベント発生の合計数を表します。 {{% /tab %}} -{{% tab "GAUGE" %}} +{{% tab "ゲージ (GAUGE)" %}} -GAUGE メトリクス送信タイプは、ある時間間隔のイベントのスナップショットを表します。この代表的なスナップショット値は、時間間隔中に Agent に送信された最後の値です。GAUGE を使用して、使用可能なディスク容量や使用中のメモリなど、継続的にレポートする何かの測定を行うことができます。 +GAUGE メトリクス送信タイプは、1 つの時間間隔内のイベントのスナップショットを表します。この代表スナップショット値は、1 つの時間間隔内に Agent に送信された最後の値です。GAUGE は、使用可能なディスクスペースや使用中のメモリなど、継続的に報告されるものを測定するために使用できます。 {{% /tab %}} -{{% tab "HISTOGRAM" %}} +{{% tab "ヒストグラム" %}} -HISTOGRAM メトリクス送信タイプは、ある時間間隔の Agent 側で計算された一連の値の統計分布を表します。Datadog の HISTOGRAM メトリクスタイプは、StatsD タイミングメトリクスタイプの拡張機能です。Agent は、定義された時間間隔で送信される値を集計し、一連の値を表すさまざまなメトリクスを生成します。 +HISTOGRAM メトリクス送信タイプは、1 つの時間間隔内で Agent 側で計算された値セットの統計分布を表します。Datadog の HISTOGRAM メトリックタイプは、StatsD タイミングメトリックタイプの拡張です。Agent は、定義された時間間隔内に送信された値を集約し、値セットを表す複数の異なるメトリクスを生成します。 -ある時間間隔内に HISTOGRAM メトリクス `<メトリクス名>` に対して `X` 個の値を送信した場合、次のメトリクスが Agent によってデフォルトで生成されます。 +ある時間間隔内に HISTOGRAM メトリクス `` に対して `X` 個の送信した場合、デフォルトでは、次のメトリクスが Agent によって生成されます。 `.avg` -: 時間間隔内の `X` 個の値の平均値を表します。
    -**Datadog In-App Type**: GAUGE +: 時間間隔内に送信された `X` 個の値の平均値を表します。
    +**Datadog アプリ内タイプ**: GAUGE `.count` -: 間隔内に送信された値の数 (つまり `X`) を表します。Agent はその数を RATE として送信することで、アプリ内で値 `X/interval` として表示します。
    -**Datadog In-App Type**: RATE +: 時間間隔内に送信された値の数 `X` を表します。Agent はこの数を RATE として送信するため、アプリ内で表示される値は `X/interval` です。
    +**Datadog アプリ内タイプ**: RATE `.median` -: 時間間隔内の `X` 個の値の中央値を表します。
    -**Datadog In-App Type**: GAUGE +: 時間間隔内に送信された `X` 個の値の中央値を表します。
    +**Datadog アプリ内タイプ**: GAUGE -`.95percentile` -: 時間間隔内の `X` 個の値の 95 パーセンタイルを表します。
    -**Datadog In-App Type**: GAUGE +`.95percentile` +時間間隔内に送信された `X` 個の値の 95 パーセンタイルを表します。
    +**Datadog アプリ内タイプ**: GAUGE `.max` : 時間間隔内に送信された `X` 個の値の最大値を表します。
    -**Datadog In-App Type**: GAUGE +**Datadog アプリ内タイプ**: GAUGE **注**: -- どの集計を Datadog に送信するかは、[`datadog.yaml` 構成ファイル][1]の `histogram_aggregates` パラメーターで構成します。デフォルトでは、`max`、`median`、`avg`、`count` の集計だけが Datadog に送信されます。`sum` および `min` も利用できます。 -- どのパーセンタイル集計を Datadog に送信するかは、[`datadog.yaml` 構成ファイル][2]の `histogram_percentiles` パラメーターで構成します。デフォルトでは、`95percentile` のパーセンタイルだけが Datadog に送信されます。 +- [`datadog.yaml` 構成ファイル][1] の `histogram_aggregates` パラメーターで、Datadog にどの集約を送信するかを構成します。デフォルトでは、`max`、`median`、`avg`、および `count` の集約だけが Datadog に送信されます。`sum` と `min` も利用可能です。 +- [`datadog.yaml` 構成ファイル][2] の `histogram_percentiles` パラメーターで、Datadog にどのパーセンタイル集約を送信するかを構成します。デフォルトでは、`95percentile` だけが Datadog に送信されます。 [1]: https://github.com/DataDog/datadog-agent/blob/04d8ae9dd4bc6c7a64a8777e8a38127455ae3886/pkg/config/config_template.yaml#L106-L114 @@ -124,65 +123,67 @@ HISTOGRAM メトリクス送信タイプは、ある時間間隔の Agent 側で {{% /tab %}} {{% tab "DISTRIBUTION" %}} -DISTRIBUTION メトリクス送信タイプは、ある時間間隔内に分散インフラストラクチャー全体で計算された一連の値のグローバルな統計分布を表します。DISTRIBUTION は、基底のホストから独立してサービスなどの論理オブジェクトをインスツルメントするために使用できます。 +DISTRIBUTION メトリクス送信タイプは、分散インフラストラクチャー全体で計算された値セットのグローバル統計分布を表します。DISTRIBUTION は、基盤となるホストとは独立して、サービスのような論理オブジェクトをインスツルメントするために使用できます。 -Agent で特定の時間間隔内の集計を行う HISTOGRAM メトリクスタイプと異なり、DISTRIBUTION メトリクスは、時間間隔内に収集されたすべての未加工データを Datadog に送信します。サーバー側で集計を行います。基になるデータ構造は集計されておらず、未加工データを表すため、ディストリビューションは次の 2 つの主要な機能を提供します。 +HISTOGRAM メトリクスタイプが特定の時間間隔内で Agent に対して集計するのに対し、DISTRIBUTION メトリクスは特定の時間間隔内のすべての生データを Datadog に送信します。集計はサーバー側でなされます。基礎となるデータ構造が生未集計データを表すため、分布は 2 つの主要な機能を提供します。 - パーセンタイル集計の計算 - タグ付けのカスタマイズ -ある時間間隔内に DISTRIBUTION メトリクス `<メトリクス名>` に対して `X` 個の値を送信した場合、デフォルトで次の集計をクエリに利用できます。 +ある時間間隔内に DISTRIBUTION メトリクス `` に対して `X` 個の値を送信した場合、デフォルトで次の集計をクエリに利用できます。 `avg:` -: 時間間隔内の `X` 個の値の平均値を表します。
    -**Datadog In-App Type**: GAUGE +: 時間間隔内に送信された `X` 個の値の平均値を表します。
    +**Datadog アプリ内タイプ**: GAUGE `count:` -: 時間間隔内に送信されたポイントの数 (つまり `X`) を表します。Agent はその数を COUNT として送信します。
    -**Datadog In-App Type**: COUNT +: 時間間隔内に送信されたポイントの数を表します。`X`Agent はその数を COUNT として送信します。
    +**Datadog アプリ内タイプ**: COUNT `max:` : 時間間隔内に送信された `X` 個の値の最大値を表します。
    -**Datadog In-App Type**: GAUGE +**Datadog アプリ内タイプ**: GAUGE `min:` -: 時間間隔内に送信された `X` 個の値の最小値を表します。
    -**Datadog In-App Type**: GAUGE +: 時間間隔内に送信された `X` の最小値を表します。
    +**Datadog アプリ内タイプ**: GAUGE `sum:` -: 時間間隔内に送信された `X` 個の値すべての合計を表します。
    -**Datadog In-App Type**: COUNT +時間間隔内に送信された `X` 個の値の合計値を表します。
    +**Datadog アプリ内タイプ**: COUNT + +**注**: 分布メトリクス値の異なる複数の集計値はアプリ内でゲージまたはカウントとして_表され_ますが、メトリクス自体はタイプ `DISTRIBUTION` を保持します。 {{% /tab %}} {{< /tabs >}} -### 例 +### 例 {#example} {{< tabs >}} -{{% tab "COUNT" %}} +{{% tab "カウント (COUNT)" %}} -Datadog Agent を実行している単一のホストから COUNT メトリクス、`notifications.sent` を送信するとします。このホストは、フラッシュ時間間隔で次の値を出力します: `[1,1,1,2,2,2,3,3]`。 +Datadog Agent を実行している単一のホストから COUNT メトリクス `notifications.sent` を送信しているとします。このホストが、フラッシュ時間間隔内に次の値を出力します: `[1,1,1,2,2,2,3,3]`。 -Agent は、ある時間間隔で受信したすべての値を合計します。その後、合計数 (この場合は `15`) を COUNT メトリクスの値として送信します。 +Agent は、1つの時間間隔内で受信したすべての値を加算します。次に、合計数値 (この場合は `15`) を COUNT メトリクスの値として送信します。 {{% /tab %}} -{{% tab "RATE" %}} +{{% tab "レート (RATE)" %}} -Datadog Agent を実行している単一のホストから RATE メトリクス、`queue_messages.rate` を送信するとします。このホストは、フラッシュ時間間隔で次の値を出力します: `[1,1,1,2,2,2,3,3]`。 +Datadog Agent を実行している単一のホストから、RATE メトリクス `queue_messages.rate` を送信しているとします。このホストが、フラッシュ時間間隔内に次の値を出力します: `[1,1,1,2,2,2,3,3]`。 -Agent は、ある時間間隔で受信したすべての値を合計します。その後、この時間間隔の総秒数で割った値を送信します。この場合、フラッシュ間隔が 10 秒であれば、RATE メトリクスの値として送信される値は `1.5` になります。 +Agent は、1つの時間間隔内で受信したすべての値を加算します。そして、この時間間隔の総秒数で割った合計数値を送信します。この場合、フラッシュ間隔が 10 秒であれば、送信される値は RATE メトリクスの値として `1.5` になります。 {{% /tab %}} -{{% tab "GAUGE" %}} +{{% tab "ゲージ (GAUGE)" %}} -Datadog Agent を実行している単一のホストから GAUGE メトリクス、`temperature` を送信するとします。このホストは、フラッシュ時間間隔で次の値を出力します: `[71,71,71,71,71,71,71.5]`。 +Datadog Agent を実行している単一のホストから、GAUGE メトリクス `temperature` を送信しているとします。このホストが、フラッシュ時間間隔内に次の値を出力します: `[71,71,71,71,71,71,71.5]`。 Agent は、最後に報告された数値 (この場合は `71.5`) を GAUGE メトリクスの値として送信します。 {{% /tab %}} -{{% tab "HISTOGRAM" %}} +{{% tab "ヒストグラム" %}} -たとえば、10 秒のフラッシュ時間間隔で値 `[1,1,1,2,2,2,3,3]` を報告するウェブサーバーから HISTOGRAM メトリクス `request.response_time.histogram` を送信するとします。デフォルトでは、Agent は、この時間間隔のこれらの値の統計分布を表す以下のメトリクスを Datadog に送信します。 +たとえば、10 秒のフラッシュ時間間隔で値 `[1,1,1,2,2,2,3,3]` を報告する Web サーバーから、HISTOGRAM メトリクス `request.response_time.histogram` を送信しているとします。デフォルトの場合 Agent は、この時間間隔内のこれらの値の統計分布を表す次のメトリクスを Datadog に送信します。 | メトリクス名 | 値 | Datadog アプリ内タイプ | | ---------------------------------------------- | ------ | ------------------- | @@ -195,9 +196,9 @@ Agent は、最後に報告された数値 (この場合は `71.5`) を GAUGE {{% /tab %}} {{% tab "DISTRIBUTION" %}} -2 つのウェブサーバー `webserver:web_1` と `webserver:web_2` から DISTRIBUTION メトリクス、`request.response_time.distribution` を送信するとします。特定のフラッシュ時間間隔で、`webserver:web_1` が値 `[1,1,1,2,2,2,3,3]` を持つメトリクスを報告し、`webserver:web_2` が値 `[1,1,2]` を持つ同じメトリクスを報告するとします。この時間間隔で、次の 5 つの集計は、両方のウェブサーバーから収集されたすべての値のグローバルな統計分布を表します。 +2 つの Web サーバー `webserver:web_1` と `webserver:web_2` から、DISTRIBUTION メトリクス `request.response_time.distribution` を送信しているとします。あるフラッシュ時間間隔において、`webserver:web_1` がメトリクスを値 `[1,1,1,2,2,2,3,3]` で報告し、`webserver:web_2` が同じメトリクスを値 `[1,1,2]` で報告しているとします。この時間間隔において、次の 5 つの集約が両方の Web サーバーから収集されたすべての値のグローバルな統計分布を表します。 -| メトリクス名 | 値 | Datadog アプリ内タイプ | +| メトリクス名 | 値 | Datadogアプリ内タイプ | | ------------------------------------------ | ------ | ------------------- | | `avg:request.response_time.distribution` | `1.73` | GAUGE | | `count:request.response_time.distribution` | `11` | COUNT | @@ -205,13 +206,13 @@ Agent は、最後に報告された数値 (この場合は `71.5`) を GAUGE | `min:request.response_time.distribution` | `1` | GAUGE | | `sum:request.response_time.distribution` | `19` | COUNT | -#### パーセンタイル集計の計算 +#### パーセンタイル集計の計算 {#calculation-of-percentile-aggregations} -GAUGE、HISTOGRAM などのメトリクスタイプと同様に、DISTRIBUTION メトリクスタイプでは `count`、`min`、`max`、`sum`、`avg` の集計を利用できます。ディストリビューションメトリクスは、まず他のメトリクスと同じ方法で (コードで設定されたカスタムタグを使用して) タグ付けられます。 +GUAGE や HISTOGRAM などの他のメトリクスタイプと同じように、ディストリビューションメトリクスタイプでは次の集計が利用可能です: `count`、`min`、`max`、`sum`、および`avg`。ディストリビューションメトリクスのタグ付け方法は、当初は他のメトリクスと同じです (コード内で設定されたカスタムタグによる)。 -パーセンタイル集計(p50`、`p75`、`p90`、`p95`、`p99`)をディストリビューションメトリクスに追加できます。アプリ内のディストリビューションメトリクスにパーセンタイル集計を追加する場合、次の 5 つの追加集計をクエリに使用できます。 +追加のパーセンタイル集計 (`p50`、`p75`、`p90`、`p95`、`p99`) は、メトリクスの[詳細サイドパネル][2]からディストリビューションメトリクスに追加できます。アプリ内のディストリビューションメトリクスにパーセンタイル集計を追加する場合、次の 5 つの追加集計をクエリに使用できます。 -| メトリクス名 | 値 | Datadog アプリ内タイプ | +| メトリクス名 | 値 | Datadogアプリ内タイプ | | ---------------------------------------- | ----- | ------------------- | | `p50:request.response_time.distribution` | `2` | GAUGE | | `p75:request.response_time.distribution` | `2` | GAUGE | @@ -219,26 +220,29 @@ GAUGE、HISTOGRAM などのメトリクスタイプと同様に、DISTRIBUTION | `p95:request.response_time.distribution` | `3` | GAUGE | | `p99:request.response_time.distribution` | `3` | GAUGE | -つまり、特定の時間間隔内にパーセンタイル集計を指定したディストリビューションメトリクスでは、`count`、`sum`、`min`、`max`、`avg`、`p50`、`p75`、`p90`、`p95`、`p99` の 10 個の集計を使用できます。 +つまり、特定の時間間隔内にパーセンタイル集計を指定したディストリビューションメトリクスでは、`count`、`sum`、`min`、`max`、`avg`、`p50`、`p75`、`p90`、`p95`、および `p99` の 10 個の集計を使用できます。 + +**注**: 分布メトリクス値の異なる複数の集計値はアプリ内でゲージまたはカウントとして_表され_ますが、メトリクス自体はタイプ `DISTRIBUTION` を保持します。 -#### タグ付けのカスタマイズ +#### タグ付けのカスタマイズ {#customization-of-tagging} この機能を使用すると、ホストレベルの粒度を必要としない場合に、メトリクスのタグ付けを制御できます。[Metrics without Limits™][1] の詳細についてはこちらをご覧ください。 -**注**: 許可リストベースのタグのカスタマイズでは、タグの除外はサポートされていません。`!` で始まるタグは追加できません。 +**注**: 許可リストベースのタグのカスタマイズでは、タグの除外はサポートされていません。`!`で始まるタグは追加できません。 [1]: /ja/metrics/metrics-without-limits/ +[2]: /ja/metrics/summary/#metric-details-sidepanel {{% /tab %}} {{< /tabs >}} -### 送信 +### 送信 {#submission} {{< tabs >}} -{{% tab "COUNT" %}} +{{% tab "カウント (COUNT)" %}} 次のソースのいずれかから COUNT タイプのメトリクスを送信します。 -| 送信元 | 送信方法 (Python) | 送信タイプ | Datadog アプリ内タイプ | +| 送信元 | 送信方法 (python) | 送信タイプ | Datadog アプリ内タイプ | | ----------------- | ------------------------------------ | --------------- | ------------------- | | [Agent チェック][1] | `self.count(...)` | COUNT | COUNT | | [Agent チェック][2] | `self.monotonic_count(...)` | COUNT | COUNT | @@ -247,30 +251,30 @@ GAUGE、HISTOGRAM などのメトリクスタイプと同様に、DISTRIBUTION | [DogStatsD][4] | `dog.increment(...)` | COUNT | RATE | | [DogStatsD][4] | `dog.decrement(...)` | COUNT | RATE | -**注**: DogStatsD を介して COUNT メトリクスタイプを送信する場合、メトリクスは異なる Agent 間の関連する比較を確保するためにアプリ内に RATE として表示されます。その結果、StatsD カウントは Datadog 内に 10 進数値で表示される場合があります(1 秒あたりの単位を報告するために時間間隔で正規化されるため)。 +**注**: DogStatsD を介して COUNT メトリクスタイプを送信する場合、メトリクスは異なる Agent 間の関連する比較を確保するためにアプリ内に RATE として表示されます。したがって、StatsD のカウントは Datadog 内で小数として表示されることがあります (1 つの時間間隔で正規化してから 1 秒あたりの単位数を報告するため)。 [1]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=count#count [2]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=count#monotonic-count -[3]: /ja/api/v1/metrics/#submit-metrics +[3]: /ja/api/latest/metrics/#submit-metrics [4]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#count {{% /tab %}} -{{% tab "RATE" %}} +{{% tab "レート (RATE)" %}} 次のソースのいずれかから RATE タイプのメトリクスを送信します。 -| 送信元 | 送信方法 (Python) | 送信タイプ | Datadog アプリ内タイプ | +| 送信元 | 送信方法 (python) | 送信タイプ | Datadog アプリ内タイプ | | ----------------- | ----------------------------------- | --------------- | ------------------- | | [Agent チェック][1] | `self.rate(...)` | RATE | GAUGE | | [API][2] | `api.Metric.send(type="rate", ...)` | RATE | RATE | -**注**: DogStatsD を介して RATE メトリクスタイプを送信する場合、メトリクスは異なる Agent 間の関連する比較を確保するためにアプリ内に GAUGE として表示されます。 +**注**: DogStatsD を通じて RATE メトリクスを取得するには、[COUNT][16] または [HISTOGRAM][18] メトリクスを送信してください。COUNT メトリクスの値と `.count` の値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 [1]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=rate -[2]: /ja/api/v1/metrics/#submit-metrics +[2]: /ja/api/latest/metrics/#submit-metrics {{% /tab %}} -{{% tab "GAUGE" %}} +{{% tab "ゲージ (GAUGE)" %}} 次のソースのいずれかから GAUGE タイプのメトリクスを送信します。 @@ -282,19 +286,19 @@ GAUGE、HISTOGRAM などのメトリクスタイプと同様に、DISTRIBUTION [1]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=gauge -[2]: /ja/api/v1/metrics/#submit-metrics +[2]: /ja/api/latest/metrics/#submit-metrics [3]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#gauge {{% /tab %}} -{{% tab "HISTOGRAM" %}} +{{% tab "ヒストグラム" %}} 次のソースのいずれかから HISTOGRAM タイプのメトリクスを送信します。 | 送信元 | 送信方法 (Python) | 送信タイプ | Datadog アプリ内タイプ | | ----------------- | -------------------------- | --------------- | -------------------- | -| [Agent チェック][1] | `self.histogram(...)` | HISTOGRAM | GAUGE、RATE | -| [DogStatsD][2] | `dog.histogram(...)` | HISTOGRAM | GAUGE、RATE | +| [Agent チェック][1] | `self.histogram(...)` | HISTOGRAM | GAUGE, RATE | +| [DogStatsD][2] | `dog.histogram(...)` | HISTOGRAM | GAUGE, RATE | -TIMER メトリクスを Datadog Agent に送信することは、DogStatsD 内で HISTOGRAM メトリクスタイプを送信することと同等です(標準 StatsD のタイマーと混同しないでください)。[DogStatsD `TIMER`][3] は期間データのみを表します。たとえば、コードのセクションの実行にかかる時間や、ページを完全にレンダリングするのにかかる時間などです。 +Datadog Agent に TIMER メトリックを送信することは、DogStatsD 内で HISTOGRAM メトリックタイプを送信することと同等です (標準の StatsD のタイマーと混同しないようにしてください)。[DogStatsD `TIMER`][3] が表すのは期間データだけです。たとえば、コードのセクションが実行されるのにかかる時間です。 [1]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=histogram @@ -307,35 +311,41 @@ TIMER メトリクスを Datadog Agent に送信することは、DogStatsD 内 | 送信元 | 送信方法 (Python) | 送信タイプ | Datadog アプリ内タイプ | | ----------------- | -------------------------- | --------------- | -------------------- | -| [DogStatsD][1] | `dog.distribution(...)` | DISTRIBUTION | GAUGE、COUNT | +| [DogStatsD][1] | `dog.distribution(...)` | DISTRIBUTION | GAUGE, COUNT | +| [API][2] | `api_instance.submit_distribution_points(...)` | DISTRIBUTION | GAUGE, COUNT | +**注**: 分布メトリクス値の異なる複数の集計値はアプリ内でゲージまたはカウントとして_表され_ますが、メトリクス自体はタイプ `DISTRIBUTION` を保持します。 [1]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#distribution +[2]: /ja/api/latest/metrics/#submit-distribution-points {{% /tab %}} {{< /tabs >}} -## 送信タイプと Datadog アプリ内タイプ +## 送信タイプと Datadog アプリ内タイプ {#submission-types-and-datadog-in-app-types} -以下に、利用可能なすべてのメトリクス送信のソースと方法の概要を示します。この表は、対応するメトリクス送信タイプとアプリ内タイプ間のマッピングを表しています。 +以下は、利用可能なすべてのメトリック送信元と送信方法の概要です。この表は、対応するメトリック送信タイプとアプリ内タイプとの対応を示しています。 | 送信元 | 送信方法 (Python) | 送信タイプ | Datadog アプリ内タイプ | | ----------------- | ------------------------------------ | --------------- | -------------------- | | [Agent チェック][9] | `self.count(...)` | COUNT | COUNT | | [Agent チェック][10] | `self.monotonic_count(...)` | COUNT | COUNT | | [Agent チェック][11] | `self.gauge(...)` | GAUGE | GAUGE | -| [Agent チェック][12] | `self.histogram(...)` | HISTOGRAM | GAUGE、RATE | +| [Agent チェック][12] | `self.histogram(...)` | HISTOGRAM | GAUGE, RATE | | [Agent チェック][13] | `self.rate(...)` | RATE | GAUGE | | [API][7] | `api.Metric.send(type="count", ...)` | COUNT | COUNT | | [API][7] | `api.Metric.send(type="gauge", ...)` | GAUGE | GAUGE | | [API][7] | `api.Metric.send(type="rate", ...)` | RATE | RATE | | [DogStatsD][14] | `dog.gauge(...)` | GAUGE | GAUGE | -| [DogStatsD][15] | `dog.distribution(...)` | DISTRIBUTION | GAUGE、COUNT | +| [DogStatsD][15] | `dog.distribution(...)` | DISTRIBUTION | DISTRIBUTION | | [DogStatsD][16] | `dog.count(...)` | COUNT | RATE | | [DogStatsD][16] | `dog.increment(...)` | COUNT | RATE | | [DogStatsD][16] | `dog.decrement(...)` | COUNT | RATE | | [DogStatsD][17] | `dog.set(...)` | SET | GAUGE | -| [DogStatsD][18] | `dog.histogram(...)` | HISTOGRAM | GAUGE、RATE | -## 参考資料 +| [DogStatsD][18] | `dog.histogram(...)` | HISTOGRAM | GAUGE, RATE | + +**注**: 分布メトリクス値の異なる複数の集計値はアプリ内でゲージまたはカウントとして_表され_ますが、メトリクス自体はタイプ `DISTRIBUTION` を保持します。詳しくは、このページの[定義][19]セクションを参照してください。 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -345,8 +355,8 @@ TIMER メトリクスを Datadog Agent に送信することは、DogStatsD 内 [4]: https://statsd.readthedocs.io/en/v3.3/types.html#sets [5]: /ja/metrics/custom_metrics/agent_metrics_submission/ [6]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/ -[7]: /ja/api/v1/metrics/#submit-metrics -[8]: /ja/developers/dogstatsd/#how-it-works +[7]: /ja/api/latest/metrics/#submit-metrics +[8]: /ja/extend/dogstatsd/#how-it-works [9]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=count#count [10]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=count#monotonic-count [11]: /ja/metrics/custom_metrics/agent_metrics_submission/?tab=gauge @@ -356,4 +366,5 @@ TIMER メトリクスを Datadog Agent に送信することは、DogStatsD 内 [15]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#distribution [16]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#count [17]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#set -[18]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#histogram \ No newline at end of file +[18]: /ja/metrics/custom_metrics/dogstatsd_metrics_submission/#histogram +[19]: /ja/metrics/types/?tab=distribution#definition \ No newline at end of file diff --git a/content/ja/monitors/notify/_index.md b/content/ja/monitors/notify/_index.md index 60f82aa99da..d5a5c2024fc 100644 --- a/content/ja/monitors/notify/_index.md +++ b/content/ja/monitors/notify/_index.md @@ -15,165 +15,200 @@ further_reading: - link: https://learn.datadoghq.com/courses/alert-monitor-notifications tag: ラーニングセンター text: アラートモニター通知をカスタマイズするコースを受講する +- link: https://www.datadoghq.com/blog/monitor-notification-rules/ + tag: ブログ + text: Datadog モニター通知ルールでモニター アラートをルーティングする title: 通知 --- +## 概要 {#overview} -## 概要 - -通知は、チームに問題を知らせ、トラブルシューティングをサポートするモニターの重要なコンポーネントです。[モニターを作成する][1]場合は、**Configure notifications and automations** (通知と自動化の構成) セクションに追加します。 - -## 通知と自動化の構成 - -**Configure notifications and automations** (通知と自動化の構成) セクションを使用して、以下を行います。 -- メール、Slack、PagerDuty、その他のインテグレーションでチームに通知を送ります。 +通知は、チームに問題を知らせ、トラブルシューティングをサポートするモニターの重要なコンポーネントです。[モニターを作成する][1]場合は、次のように応答を構成します。 +- 実行可能なメッセージを作成します。 - ワークフローをトリガーしたり、モニターからワークフローを作成します。 -- モニターにケースを追加します。 - -### タイトル +- [自動的にケースを作成する][2] +- 自動的にインシデントを作成します。 -モニターに一意のタイトルを追加します(必須)。マルチアラートモニターの場合、トリガースコープを識別するいくつかのタグが自動的に挿入されます。また、[タグ変数][2]を使用できます。 +## 効果的なタイトルとメッセージの構築 {#constructing-effective-titles-and-messages} -### メッセージ +このアプローチは、モニターのタイトルとメッセージが明確で実行可能であり、対象のニーズに合わせて調整されていることを保証するのに役立ちます。 +- **固有タイトル**: モニターに固有タイトルを追加します (必須)。マルチアラートモニターの場合、トリガーしているスコープを識別するタグの一部は自動的に挿入されます。[タグ変数][3]を使用して具体性を高めることができます。 +- **メッセージフィールド**: メッセージフィールドでは、標準の[Markdownフォーマット][4]および[変数][5]がサポートされています。[条件付き変数][6]を使用することにより、[@notifications](#notifications)でさまざまな連絡先に送る通知テキストを調整します。[合成テンプレート変数][23]を使用することにより、合成失敗のコンテキストでアラートメッセージの機能を拡張します。 -メッセージフィールドでは、標準の[マークダウンフォーマット][3]と[変数][4]を使用できます。別の連絡先に送信される通知テキストを調整するには、[@通知](#notifications)と[条件付き変数][5]を使用します。 +
    Markdown 形式のサポートは、通知方法に応じて異なります。一部のチャンネルでは、Markdown 構文のサブセットのみをサポートしています。 +
      +
    • Slack 通知: 本的な書式設定 (太字、イタリック、インラインコード、リンク) がサポートされています。Markdown ヘッダー (例えば、#,##) および表はレンダリングされず、プレーンテキストとして表示されます。 +
    • メール通知: 基本的な書式設定 (太字、イタリック、インラインコード、リンク) がサポートされています。表は Markdown 表としてはレンダリングされず、メッセージ本文にプレーンテキストとして表示されます。 +
    +
    +{{% collapse-content title="サンプルモニターメッセージ" level="h4" expanded=false %}} モニターメッセージの一般的な使用例は、問題を解決するための段階的な方法を含めることです。次に例を示します。 ```text -Steps to free up disk space: +{{#is_alert}} <-- conditional variable + +Steps to free up disk space on {{host.name}}: <-- tag variable + 1. Remove unused packages 2. Clear APT cache 3. Uninstall unnecessary applications 4. Remove duplicate files -``` -### 通知 +@slack-incident-response <-- channel to send notification -`@notification` を使用して、チームメンバー、インテグレーション、ワークフロー、またはケースを通知に追加します。入力すると、Datadog がドロップダウンメニューで既存のオプションをお勧めします。オプションをクリックして、通知に追加します。または、**@ Add Mention**、**Add Workflow**、**Add Case** をクリックします。 - -**注**: `@通知` は最後の行文字との間にスペースが必要です。次に例を示します。 +{{/is_alert}} -```text -Disk space is low @ops-team@company.com ``` -`@通知`は以下に送信できます。 -#### Email +{{% /collapse-content %}} -{{% notifications-email %}} -#### チーム +## 通知受信者 {#notification-recipients} +Datadog では、モニター通知を管理するために[モニター通知ルール][22]の使用が推奨されています。通知ルールを使用すると、事前定義された条件セットに基づいて、モニターに追加される通知受信者を自動化できます。モニター通知のタグに基づいてモニターアラートをルーティングするために異なるルールを作成すれば、各モニタの受信者や通知ルーティングロジックを手動で設定する必要がなくなります。 + +通知ルールと個々のモニターの両方で、`@notification` を使用することにより、チームメンバー、インテグレーション、ワークフロー、またはケースを通知に追加できます。入力時に、ドロップダウンメニューで既存のオプションが Datadog からの自動推奨事項として示されます。オプションをクリックすると、それが通知に追加されます。または、**@ Add Mention**、**Add Workflow**、または **Add Case** をクリックしてください。 -通知チャンネルが設定されている場合、通知を特定のチームにルーティングできます。@team-handle をターゲットにしたモニターアラートは、選択した通信チャンネルにリダイレクトされます。チームへの通知チャンネルの設定の詳細については、[Teams][6] ドキュメントを参照してください。 +@notification では、最後の行文字との間にスペースが必要です。 -#### インテグレーション +| 正しいフォーマット | 誤ったフォーマット | +|------------------|-------------------| +| `Disk space is low @ops-team@company.com` | `Disk space is low@ops-team@company.com` | +{{% collapse-content title="Integrations" level="h4" expanded=false %}} {{% notifications-integrations %}} +{{% /collapse-content %}} -### ワークフロー -[ワークフローの自動化][7]をトリガーしたり、モニターから新しいワークフローを作成することができます。 +{{% collapse-content title="Teams" level="h4" expanded=false %}} +{{% notifications-teams %}} +{{% /collapse-content %}} -ワークフローをモニターに追加する前に、[ワークフローにモニタートリガーを追加][17]します。 +{{% collapse-content title="ケース" level="h4" expanded=false %}} +{{% notifications-cases %}} +{{% /collapse-content %}} -モニタートリガーを追加した後、[モニターに既存のワークフローを追加][8]するか、新しいワークフローを作成します。モニターページから新しいワークフローを作成するには +{{% collapse-content title="Email" level="h4" expanded=false %}} +{{% notifications-email %}} +{{% /collapse-content %}} -1. **Add Workflow** をクリックします。 -1. **+** アイコンをクリックし、ブループリントを選択するか、**Start From Scratch** を選択します。 - {{< img src="/monitors/notifications/create-workflow.png" alt="+ ボタンをクリックして、新しいワークフローを追加する" style="width:90%;">}} +### モニターの @ ハンドルを一括編集 {#bulk-editing-monitor-handles} +Datadog では、複数のモニターでアラートメッセージの受信者を一度に編集する機能がサポートされています。この機能を使用することにより、モニターメッセージ本文内の `@-handles` を効率的に追加、削除、または置き換えることができます。次のような使用例があります。 -ワークフローの構築については、[ワークフローを構築する][9]を参照してください。 +- **ハンドルを交換**: 複数のモニターで 1 つのハンドルを別のハンドルに置き換えます。たとえば、`@pagerduty-sre` を `@oncall-sre` に変更します。単一のハンドルを複数のハンドルと入れ替えることもできます。たとえば、`@pagerduty-sre` を `@pagerduty-sre` と `@oncall-sre` の両方に置き換えて、デュアルページングや拡張アラートカバレッジをサポートできます。 +- **ハンドルを追加**: 既存の受信者を削除せずに新しい受信者を追加します。たとえば、すべての選択したモニターに `@slack-infra-leads` を追加します。 +- **ハンドルを削除**: モニターメッセージから特定のハンドルを削除します。たとえば、`@webhook-my-legacy-event-intake` を削除します。 -### 優先度 +## ワークフロー {#workflows} +[ワークフローの自動化][8]をトリガーしたり、モニターから新しいワークフローを作成することができます。 -モニターに関連付けられた優先度 (オプション) を追加します。値の範囲は P1 から P5 で、P1 が最高の優先度、P5 が最低の優先度です。通知メッセージでモニターの優先度を上書きするには、`{{override_priority 'Pi'}}` を使用し、`Pi` を P1 から P5 の間で設定します。 +ワークフローをモニターに追加する前に、[ワークフローにモニタートリガーを追加][9]します。 -たとえば、`alert` および `warning` 通知を異なる優先度で設定できます。 +モニタートリガーを追加した後、[モニターに既存のワークフローを追加][10]するか、新しいワークフローを作成します。モニターページから新しいワークフローを作成するには、次のようにします。 -``` -{{#is_alert}} -{{override_priority 'P1'}} - ... -{{/is_alert}} -{{#is_warning}} -{{override_priority 'P4'}} -... -{{/is_warning}} -``` +1. **ワークフローを追加**をクリックします。 +1. **+** アイコンをクリックし、ブループリントを選択するか、**Start From Scratch** を選択します。 + {{< img src="/monitors/notifications/create-workflow.png" alt="新しいワークフローを追加するには、[+] ボタンをクリックします。" style="width:90%;">}} -### 追加コンテンツのトグル +ワークフローの構築については、[ワークフローを構築する][11]を参照してください。 -モニター通知には、モニターのクエリ、使用された @メンション、メトリクススナップショット (メトリクスモニターの場合)、Datadog の関連ページへのリンクなどが含まれます。個々のモニターの通知に含める、または除外するコンテンツを選択することができます。 +## インシデント {#incidents} +インシデントは、モニターが `alert`、`warn`、または `no data` の状態に遷移した時点で自動的に作成されます。**インシデントを追加**をクリックし、`@incident-` オプションを選択します。管理者は、[インシデント設定][12]で `@incident-` オプションを作成できます。 -
    パーセンタイルアグリゲーターを持つディストリビューションメトリクス (`p50`、`p75`、`p95`、`p99` など) は、通知でスナップショットグラフを生成しません。
    +モニターからインシデントが作成されると、インシデントの[フィールド値][13]はモニターのタグに基づいて自動的に入力されます。たとえば、モニターにタグ `service:payments` がある場合、インシデントのサービスフィールドは "payments" に設定されます。これらのインシデントに関する通知を受け取るには、モニターのタグがインシデント通知ルールと一致していることを確認してください。**注**: インシデント通知ルールはモニター通知ルールとは別に設定され、独立して構成する必要があります。詳細については、[インシデント通知][14]を参照してください。 -{{< img src="monitors/notifications/monitor_notification_presets.png" alt="モニタープリセットを設定する" style="width:70%;" >}} +## 追加コンテンツのトグル {#toggle-additional-content} -オプションは、以下の通りです。 +モニター通知には、モニターのクエリ、使用される @メンション、メトリクススナップショット (メトリクスモニターの場合)、およびDatadogの関連ページへのリンクなどのコンテンツが含まれます。個々のモニターに対して、通知に含めるか除外するかを選択するオプションがあります。 -- **Default**: コンテンツが隠れることはありません。 -- **Hide Query**: 通知メッセージからモニターのクエリを削除します。 -- **Hide Handles**: 通知メッセージで使用されている @メンションを削除します。 -- **Hide All**: 通知メッセージには、クエリ、ハンドル、スナップショット (メトリクスモニター用)、フッターの追加リンクは含まれません。 +
    パーセンタイルアグリゲーターを伴うディストリビューションメトリクス (`p50`、`p75`、`p95`、`p99` など) は、通知でスナップショットグラフを生成しません。
    -**注**: インテグレーションによっては、一部のコンテンツがデフォルトで表示されない場合があります。 +{{< img src="monitors/notifications/monitor_notification_presets.png" alt="モニタープリセットを設定する" style="width:70%;" >}} -### メタデータ +オプションは、以下の通りです。 -モニターにメタデータ (優先度、タグ、Datadog チーム) を追加します。モニターの優先度を P レベル (P1 から P5) で設定できます。モニタータグ (メトリクスタグとは異なります) は、UI でモニターをグループ化して検索するために使用されます。タグポリシーが構成されている場合は、必要なタグとタグ値を追加する必要があります。詳しくは、[タグポリシー][10]を参照してください。Datadog Teams を使用すると、このモニターに所有者のレイヤーを設定し、チームにリンクされているすべてのモニターを表示することができます。詳細については、[Datadog Teams][11] を参照してください。 +- **デフォルト**: コンテンツが隠れることはありません。 +- **クエリを隠す**: 通知メッセージからモニターのクエリを削除します。 +- **ハンドルを隠す**: 通知メッセージで使用されている @メンションを削除します。 +- **すべて隠す**: 通知メッセージには、クエリ、ハンドル、スナップショット (メトリクスモニター用)、フッターの追加リンクは含まれません。 -{{< img src="monitors/notifications/notifications_metadata.png" alt="ポリシータグ構成の表示。'Policy tags' の下には、'Select value' のドロップダウンの横に、cost_center、product_id、env の 3 つのタグの例が示されています。" style="width:100%;" >}} +**注**: インテグレーションによっては、一部のコンテンツがデフォルトで表示されない場合があります。 -### 再通知 +## 再通知 {#renotify} モニターの再通知 (オプション) を有効にすると、問題の未解決をチームに知らせることができます。 - {{< img src="monitors/notifications/renotify_options.png" alt="再通知の有効化" style="width:90%;" >}} + {{< img src="monitors/notifications/renotify_options.png" alt="再通知を有効にする" style="width:90%;" >}} 再通知の間隔、再通知の対象となるモニターの状態 (`alert`、`no data`、`warn`) を構成し、オプションで再通知メッセージの送信数の制限を設定します。 -例えば、`stop renotifying after 1 occurrence` (1 回発生したら再通知を停止する) ようにモニターを設定すると、メインのアラートの後に 1 回のエスカレーションメッセージを受信することができます。 -**注:** 再通知の[属性とタグの変数][2]には、再通知期間中にモニターが利用できるデータが入力されます。 +たとえば、メインアラートの後に単一のエスカレーションメッセージを受け取るには、モニターを `stop renotifying after 1 occurrence` に構成します。 +**注:** 再通知内の[属性およびタグ変数][3]には、再通知の期間中にモニターから利用可能なデータが設定されます。 再通知が有効になっている場合、モニターが指定した時間、選択した状態のいずれかに留まっている場合に送信されるエスカレーションメッセージを含めるオプションが提供されます。 - エスカレーションメッセージは次の方法で追加できます。 -* 元の通知メッセージの `{{#is_renotify}}` ブロック (推奨)。 +* 元の通知メッセージの `{{#is_renotify}}` ブロック内 (推奨)。 * `Configure notifications and automations` セクションの *Renotification message* フィールド。 -* API の `escalation_message` 属性。 +* API の`escalation_message` 属性。 -`{{#is_renotify}}` ブロックを使用する場合、元の通知メッセージも再通知に含まれるため、 +``{{#is_renotify}}` ブロックを使用する場合、元の通知メッセージも再通知に含まれるため、次のようになります。 1. `{{#is_renotify}}` ブロックには余分な詳細のみを含め、元のメッセージの詳細は繰り返さないでください。 -2. グループの一部にエスカレーションメッセージを送信します。 +2. グループの一部にエスカレーションメッセージを送信します。 -[サンプルセクション][12]で、これらのユースケースに合わせてモニターを構成する方法を学びましょう。 +[サンプルセクション][15]で、これらのユースケースに合わせてモニターを構成する方法を学びましょう。 +## メタデータ {#metadata} -## 監査通知 +モニターにメタデータ (優先度、タグ、Datadog チーム) を追加します。モニターの優先度により、P レベル (P1 ~ P5) を通じてモニターの重要性を設定できます。モニタータグ -- メトリックタグとは異なり、UI でモニターをグループ化および検索するために使用されます。タグポリシーが構成されている場合、必須タグとタグ値を追加する必要があります。詳細については、[タグポリシー][16]を参照してください。Datadog Teams を使用すると、このモニターに所有権のレイヤーを設定し、チームにリンクされているすべてのモニターを表示できます。詳細については、[Datadog Teams][17]を参照してください。 -モニターが作成、変更、サイレンス、または削除されるたびに監査[イベント][13]が生成されます。**Define permissions and audit notifications** (権限と監査通知の定義) セクションで **Notify** を選択して、これらのイベントをチームメンバー、チャットサービス、モニター作成者に通知します。 +{{< img src="monitors/notifications/notifications_metadata.png" alt="ポリシータグ構成のビュー。「ポリシータグ」の下には、cost_center、product_id、および env の 3 つのサンプルタグがあり、その横に [値を選択] ドロップダウンがあります。" style="width:100%;" >}} -## テスト通知 +{{% collapse-content title="優先度" level="h4" expanded=false %}} -テスト通知は、ホスト、メトリクス、異常、外れ値、予測値、ログ、RUM、APM、インテグレーション(チェックのみ)、プロセス(チェックのみ)、ネットワーク(チェックのみ)、カスタムチェック、イベント、複合条件の[モニターの種類][14]でサポートされています。 +モニターに関連付けられている優先度 (オプション) を追加します。値は P1 ~ P5 の範囲であり、P1 が優先度最高、P5 が優先度最低です。 +通知メッセージのモニター優先度をオーバーライドするには、次のものを使います: `{{override_priority 'Pi'}}` where `Pi` は P1 ~ P5 の間です。 -### テストを実行する +たとえば、`alert` と `warning` の通知を異なる優先度で設定できます。 -1. モニターを定義したら、モニターページの右下にある **Test Notifications** ボタンを使用して通知をテストします。 +``` +{{#is_alert}} +{{override_priority 'P1'}} + ... +{{/is_alert}} +{{#is_warning}} +{{override_priority 'P4'}} +... +{{/is_warning}} +``` +{{% /collapse-content %}} + + +## 集計 {#aggregation} + +モニターのクエリがグループ化されている場合、通知のグループ化から 1 つ以上の次元を削除するか、すべてを削除してシンプルアラートとして通知できます。 -2. テスト通知のポップアップから、テストするモニターの遷移状態とグループ (クエリに[グループ化][15]がある場合のみ利用可能) を選択します。テストできるのは、アラート条件で指定されたしきい値に対して、モニターの構成で利用可能な状態のみです。ただし、[回復しきい値][16]は例外です。Datadog は、モニターがアラート状態でなくなるか、警告条件がなくなったときに回復通知を送信します。 +{{< img src="monitors/notifications/notifications_aggregation.png" alt="マルチアラートに設定された集計構成のビュー。" style="width:100%;" >}} - {{< img src="/monitors/notifications/test_notification_modal.png" alt="このモニターの通知をテストする" style="width:70%;" >}} +この機能に関する詳細は、[モニターの構成][18]を参照してください。 -3. **Run Test** をクリックして、モニターにリストされている人とサービスに通知を送信します。 +## テスト通知 {#test-notifications} -### イベント +モニターを定義したら、モニターページの右下にある**テスト通知**ボタンを使用して通知をテストします。 -テスト通知は、イベントエクスプローラー内で検索できるイベントを生成します。テストを開始したユーザーをメッセージ本文で示し、通知のタイトルに `[TEST]` が付きます。 +テスト通知は、ホスト、メトリクス、異常、外れ値、予測値、ログ、RUM、APM、インテグレーション (チェックのみ)、プロセス (チェックのみ)、ネットワーク (チェックのみ)、カスタムチェック、イベント、複合条件の[モニターの種類][19]でサポートされています。 -タグ変数は、Datadog 子イベントのテキストにのみ入力されます。親イベントは、集計サマリーのみを表示します。 +1. テスト通知ポップアップから、テストするモニターの遷移とグループを選択します (クエリに[grouping][20]がある場合のみ利用可能)。テストできるのは、アラート条件で指定されるしきい値のモニター構成で利用可能な状態だけです。[回復しきい値][21]は例外であり、Datadog はモニターがアラート状態でなくなった場合、または警告条件がない場合に回復通知を送信します。 + + {{< img src="/monitors/notifications/test_notification_modal.png" alt="このモニターの通知をテストします。" style="width:70%;" >}} + +1. **テストを実行**をクリックして、モニターにリストされている人とサービスに通知を送信します。 + +### イベント {#events} + +テスト通知は、イベントエクスプローラー内で検索可能なイベントを生成します。これらの通知は、通知タイトルに `[TEST]` を含めて、メッセージ本文でテストを開始した人を示します。 + +タグ変数は、Datadog の子イベントのテキストにのみ埋め込まれます。親イベントには集約サマリーのみが表示されます。 ### 変数 {#variables-test-notification} @@ -181,27 +216,33 @@ Disk space is low @ops-team@company.com ```text {{#is_alert}} -{{host.name}} <-- これが入力されます +{{host.name}} <-- will populate {{/is_alert}} ``` -## その他の参考資料 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/monitors/configuration -[2]: /ja/monitors/notify/variables/?tabs=is_alert#attribute-and-tag-variables -[3]: http://daringfireball.net/projects/markdown/syntax -[4]: /ja/monitors/notify/variables/ -[5]: /ja/monitors/notify/variables/#conditional-variables -[6]: /ja/account_management/teams/#send-notifications-to-a-specific-communication-channel -[7]: /ja/service_management/workflows/ -[8]: /ja/service_management/workflows/trigger/#add-the-workflow-to-your-monitor -[9]: /ja/service_management/workflows/build/ -[10]: /ja/monitors/settings/#tag-policies -[11]: /ja/account_management/teams/ -[12]: /ja/monitors/notify/variables/?tab=is_renotify#examples -[13]: /ja/events/ -[14]: /ja/monitors/types -[15]: /ja/monitors/configuration/ -[16]: /ja/monitors/guide/recovery-thresholds/ -[17]: /ja/service_management/workflows/trigger/#add-a-monitor-trigger-to-your-workflow \ No newline at end of file +[2]: /ja/incident_response/case_management/create_case/#automatic-case-creation +[3]: /ja/monitors/notify/variables/?tabs=is_alert#attribute-and-tag-variables +[4]: http://daringfireball.net/projects/markdown/syntax +[5]: /ja/monitors/notify/variables/ +[6]: /ja/monitors/notify/variables/#conditional-variables +[8]: /ja/service_management/workflows/ +[9]: /ja/service_management/workflows/trigger/#add-a-monitor-trigger-to-your-workflow +[10]: /ja/service_management/workflows/trigger/#add-the-workflow-to-your-monitor +[11]: /ja/service_management/workflows/build/ +[12]: https://app.datadoghq.com/incidents/settings?section=global-settings +[13]: /ja/incident_response/incident_management/setup_and_configuration/property_fields +[14]: /ja/incident_response/incident_management/notification +[15]: /ja/monitors/notify/variables/?tab=is_renotify#examples +[16]: /ja/monitors/settings/#tag-policies +[17]: /ja/account_management/teams/ +[18]: /ja/monitors/configuration/#set-alert-aggregation +[19]: /ja/monitors/types +[20]: /ja/monitors/configuration/ +[21]: /ja/monitors/guide/recovery-thresholds/ +[22]: /ja/monitors/notify/notification_rules +[23]: /ja/synthetics/notifications/template_variables/ \ No newline at end of file diff --git a/content/ja/opentelemetry/_index.md b/content/ja/opentelemetry/_index.md index 0545c8a19b3..e2c12d9e7f3 100644 --- a/content/ja/opentelemetry/_index.md +++ b/content/ja/opentelemetry/_index.md @@ -6,24 +6,34 @@ algolia: - otel aliases: - /ja/tracing/setup_overview/open_standards/ +- /ja/opentelemetry/interoperability/ cascade: algolia: rank: 70 further_reading: +- link: /opentelemetry/compatibility/ + tag: ドキュメント + text: Feature Compatibility +- link: /opentelemetry/instrument/ + tag: ドキュメント + text: アプリケーションのインスツルメンテーション +- link: /opentelemetry/setup/ + tag: ドキュメント + text: データを Datadog に送信する - link: https://www.datadoghq.com/blog/opentelemetry-instrumentation/ - tag: GitHub + tag: ブログ text: Datadog と OpenTelemetry のパートナーシップ - link: https://www.datadoghq.com/blog/monitor-otel-with-w3c-trace-context/ - tag: GitHub + tag: ブログ text: W3C Trace Context に対応した OpenTelemetry インスツルメンテーションされたアプリのモニタリング - link: https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/ - tag: GitHub + tag: ブログ text: OpenTelemetry コレクターから Datadog エクスポーター経由で Datadog にメトリクスとトレースを送信する - link: https://www.datadoghq.com/blog/opentelemetry-logs-datadog-exporter/ - tag: GitHub + tag: ブログ text: Datadog Exporter で OpenTelemetry Collector からログを転送する - link: https://www.datadoghq.com/about/latest-news/press-releases/datadog-announces-opentelemetry-protocol-support/ - tag: GitHub + tag: ブログ text: Agent における OTLP の取り込み - link: https://www.datadoghq.com/blog/aws-opentelemetry-lambda-layer-datadog/ tag: ブログ @@ -34,36 +44,103 @@ further_reading: - link: https://www.datadoghq.com/blog/opentelemetry-runtime-metrics-datadog/ tag: ブログ text: Datadog APM で OTel インスツルメンテーションさ れたアプリのランタイムメトリクスを監視する +- link: https://www.datadoghq.com/blog/otel-deployments/ + tag: ブログ + text: OpenTelemetry のデプロイメントを選択する方法 +- link: https://learn.datadoghq.com/courses/otel-with-datadog + tag: ラーニングセンター + text: Datadog を利用した OpenTelemetry の紹介 +- link: https://learn.datadoghq.com/courses/understanding-opentelemetry + tag: ラーニングセンター + text: OpenTelemetry について理解する title: Datadog の OpenTelemetry --- +{{< learning-center-callout hide_image="true" header="学習センターで「Datadog を利用した OpenTelemetry の紹介」をお試しくださいer" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/otel-with-datadog">}} + OpenTelemetry を構成して、Datadog にメトリクス、トレース、ログをエクスポートし、プラットフォームで収集したデータを探索する方法について説明します。 +{{< /learning-center-callout >}} + +## 概要 {#overview} + +[OpenTelemetry][1] (OTel) は、テレメトリデータを収集し、ルーティングするための標準化されたプロトコルを提供します。既存の Datadog インフラストラクチャーを使用している場合であっても、ベンダーに依存しないセットアップを好む場合であっても、Datadog では、OpenTelemetry でインスツルメンテーションされたアプリケーションからテレメトリデータを収集し分析するための複数の方法がサポートされています。 + +### なぜ Datadog と OpenTelemetry か?{#why-opentelemetry-with-datadog} + +Datadog では、ソースに関係なく、すべてのアプリケーションテレメトリに対して高度な監視可能性が提供されています。OpenTelemetry をサポートすることにより、Datadog では以下のものが提供されています。 + +- **柔軟性と選択肢**: 標準化されたインスツルメンテーションを使用しながら、技術ニーズの進化に応じて適応する自由を維持します。 +- **包括的な言語サポート**: テクノロジースタック全体を通じてアプリケーションが一貫して監視されます。 +- **統一インスツルメンテーション**: システム全体でインスツルメンテーションに対する単一のアプローチが維持されます。 +- **強力な分析**: OpenTelemetry の標準化が Datadog の堅牢な分析、視覚化、アラート機能と組み合わされています。 + +OpenTelemetry をすでに使用しているか、または導入を検討しているかのどちらの場合であっても、Datadog はニーズに応じた柔軟なオプションを提供します。 + +### 重要な決定{#key-decisions} + +Datadog 利用を伴う OpenTelemetry を使用する際には、2つの重要な決定を下す必要があります。 + +- [アプリケーションにインスツルメンテーションを施す方法](#instrument-your-applications) +- [データを Datadog に送信する方法](#send-opentelemetry-data-to-datadog) + +利用可能な機能は、これらの選択に依存します。たとえば、Datadog SDK と共に OpenTelemetry API を使用する場合、OpenTelemetry SDK だけを使用するよりも多くの Datadog 機能にアクセスできます。 + +詳細については、[機能の互換性][9]をお読みください。 + +## アプリケーションのインスツルメンテーション {#instrument-your-applications} + +OpenTelemetry と Datadog を使ってアプリケーションにインスツルメンテーションを施す方法はいくつかあります。アプローチごとには、提供される機能とベンダー中立性のレベルが異なります。 + +- **フル OpenTelemetry**: ベンダー中立セットアップのために OpenTelemetry SDK と API を使用します。 +- **OpenTelemetry API**: Datadog の SDK 実装と共に OpenTelemetry API を使用します。 +- **OpenTelemetry インスツルメンテーションライブラリ**: Datadog の監視可能性を追加のフレームワークや技術に拡張します。 + +詳細については、[アプリケーションのインスツルメンテーション][8]をご覧ください。 + +## OpenTelemetry のデータを Datadog に送信する {#send-opentelemetry-data-to-datadog} + +アプリケーションやサービスが OpenTelemetry ライブラリでインスツルメントされている場合、トレース、メトリクス、ログのデータを Datadog に取り込む方法を選択することができます。 + +
    自分にとってどのセットアップが最適か分からない場合
    機能の互換性の表を見て、どの Datadog 機能がサポートされているかを理解してください。
    + +### オプション 1: Datadog Agent と DDOT コレクターを使用する (推奨) {#option-1-use-the-datadog-agent-with-ddot-collector-recommended} + +{{< img src="/opentelemetry/setup/ddot-collector-2.png" alt="Datadog Agent 組み込みの DDOT コレクターのアーキテクチャの概要。" style="width:100%;" >}} + +**最適用途**: OpenTelemetry のベンダー中立性と Datadog エコシステムの革新性を両方活用したいユーザー向け、たとえば、 -
    - Important: OpenTelemetry Collector Contrib v0.95.0 introduces a breaking change that disables Trace Metrics computation in the Datadog Exporter. Follow Datadog's migration guide when upgrading. -
    +- Fleet Automation +- ライブ Container Monitoring +- Kubernetes エクスプローラー +- Live Processes +- Cloud Network Monitoring +- Universal Service Monitoring +- {{< translate key="integration_count" >}}+ Datadog インテグレーション -## 概要 +{{< whatsnext desc=" " >}} + {{< nextlink href="/opentelemetry/setup/ddot_collector/" >}}DDOT Collector で Datadog Agent を使用する方法の詳細{{< /nextlink >}} +{{< /whatsnext >}} -[OpenTelemetry][1] は、オープンソースの観測可能性フレームワークで、IT チームにテレメトリーデータを収集しルーティングするための標準化されたプロトコルとツールを提供します。[Cloud Native Computing Foundation][2] (CNCF) によってインキュベータープロジェクトとして作成された OpenTelemetry は、アプリケーションテレメトリーデータ (メトリクス、ログ、トレースなど) をインスツルメント、生成、収集、エクスポートし、分析および洞察するための監視プラットフォームに対して一貫したフォーマットを提供するものです。 +### オプション 2: OpenTelemetry Collector を使用する場合 {#option-2-use-the-opentelemetry-collector} -アプリケーションやサービスが OpenTelemetry ライブラリでインスツルメントされている場合、トレース、メトリクス、ログのデータを Datadog バックエンドに取得する方法を選択することができます。 +{{< img src="/opentelemetry/setup/otel-collector.png" alt="図: コード内で OpenTelemetry SDK から OTLP 経由でデータが、Datadog エクスポーターを使用して OpenTelemetry コレクターを実行しているホストに転送され、次にそこから Datadog の監視可能性プラットフォームに転送されます。" style="width:100%;" >}} -1. [データを OpenTelemetry コレクターに送信し、Datadog エクスポーターで Datadog に転送する][3]、または +**最適用途**: 完全にベンダー中立なセットアップを望む新規または既存の OpenTelemetry ユーザー。 -2. [Ingest data with the Datadog Agent, which collects it for Datadog][4]. +- Datadog に OpenTelemetry データを送信するための完全なベンダー中立性 +- テールベースのサンプリングやデータ変換などの柔軟な構成オプション -{{< img src="tracing/setup/open_standards/otel-flow.png" alt="テレメトリーデータを生成し、観測可能性製品に送信するためのマップオプション。">}} +{{< whatsnext desc=" " >}} + {{< nextlink href="/opentelemetry/setup/collector_exporter/" >}}OpenTelemetry コレクターの使用についての詳細{{< /nextlink >}} +{{< /whatsnext >}} -
    Custom Instrumentation with the OpenTelemetry API
    You can configure OpenTelemetry instrumented applications to use the Datadog APM SDK to process spans and traces. For more information, read Custom Instrumentation with the OpenTelemetry API.
    +### 追加のセットアップオプション {#additional-setup-options} -Datadog supports the [W3C Trace Context standard][6], ensuring complete traces are captured even when a request travels between services that have been instrumented with different tools. Services need only be instrumented with any system, such as an OpenTelemetry library or Datadog tracing library, that follows the W3C Trace Context standard. Read [Propagating Trace Context][5] for more information. +直接 OTLP 取り込みなど、その他のセットアップオプションについて詳しくは、[データを Datadog に送信する][7]を参照してください。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://opentelemetry.io/ -[2]: https://www.cncf.io/ -[3]: /ja/opentelemetry/collector_exporter/ -[4]: /ja/opentelemetry/otlp_ingest_in_the_agent/ -[5]: /ja/tracing/trace_collection/trace_context_propagation/ -[6]: https://www.w3.org/TR/trace-context/ +[7]: /ja/opentelemetry/setup +[8]: /ja/opentelemetry/instrument/ +[9]: /ja/opentelemetry/compatibility/ \ No newline at end of file diff --git a/content/ja/real_user_monitoring/_index.md b/content/ja/real_user_monitoring/_index.md index 67b3ecf9523..12eeafc42ef 100644 --- a/content/ja/real_user_monitoring/_index.md +++ b/content/ja/real_user_monitoring/_index.md @@ -2,7 +2,7 @@ algolia: tags: - rum - - リアルユーザーモニタリング + - real user monitoring aliases: - /ja/real_user_monitoring/installation - /ja/real_user_monitoring/faq/ @@ -12,12 +12,12 @@ cascade: description: ユーザーから見たフロントエンドアプリケーションのパフォーマンスを視覚化、観察、分析します。 disable_sidebar: true further_reading: -- link: https://app.datadoghq.com/release-notes?category=Real%20User%20Monitoring - tag: リリースノート - text: Datadog RUM の最新リリースをチェック! (アプリログインが必要です) +- link: /real_user_monitoring/application_monitoring/browser/data_collected/ + tag: ドキュメント + text: 収集された RUM ブラウザデータ - link: https://dtdg.co/fe tag: Foundation Enablement - text: リアルユーザーモニタリングによるインサイトを得るためのインタラクティブなセッションに参加できます + text: 対話形式のセッションに参加して、Real User Monitoring による洞察を得る - link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ tag: ブログ text: Datadog リアルユーザーモニタリングのご紹介 @@ -32,7 +32,7 @@ further_reading: text: Datadog Error Tracking で、アプリケーションの問題を解明 - link: https://www.datadoghq.com/blog/unify-apm-rum-datadog/ tag: ブログ - text: APMとRUMのデータを統合し、フルスタックの可視性を実現 + text: スタック全体の可視性のために APM と RUM データを統合する - link: https://www.datadoghq.com/blog/datadog-geomaps/ tag: ブログ text: ジオマップを使用して、場所ごとにアプリデータを視覚化する @@ -48,81 +48,98 @@ further_reading: - link: https://www.datadoghq.com/blog/static-web-application-monitoring-best-practices/ tag: ブログ text: 静的 Web アプリケーションを監視するためのベストプラクティス -- link: /real_user_monitoring/browser/data_collected/ - tag: ドキュメント - text: 収集された RUM ブラウザデータ - link: https://www.datadoghq.com/blog/progressive-web-application-monitoring/ tag: ブログ - text: プログレッシブ Web アプリケーションをモニタリングするためのベストプラクティス -title: RUM & セッションリプレイ + text: Best practices for monitoring progressive web applications +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: ブログ + text: Datadog を使用して効果的なエグゼクティブ向けダッシュボードを設計する +- link: https://www.datadoghq.com/blog/rum-product-analytics-bridging-teams + tag: ブログ + text: 'パフォーマンスから影響へ: 有コンテキストを通じてフロントエンドチームをつなぐ' +- link: https://app.datadoghq.com/release-notes?category=Real%20User%20Monitoring + tag: リリースノート + text: Datadog RUM の最新リリースをチェック!(アプリログインが必要です) +- link: https://learn.datadoghq.com/courses/intro-to-rum + tag: ラーニングセンター + text: Real User Monitoring (RUM) の紹介 +title: RUM およびセッションリプレイ --- - - -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=RUM">}} - 特定のビジネスニーズに合わせてカスタマイズされたユーザーアクションを作成する方法を発見し、ユーザー行動の正確な追跡を可能にします。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=RUM">}} + 特定のビジネスニーズに合わせたカスタムユーザーアクションを作成する方法を発見し、ユーザーの行動を正確に追跡できるようにします。 {{< /learning-center-callout >}} -## リアルユーザーモニタリングとは? +## Real User Monitoring とは?{#what-is-real-user-monitoring} {{< img src="real_user_monitoring/performance-summary-browser.png" alt="RUM ダッシュボード" >}} -Datadog の*リアルユーザーモニタリング (RUM)* は、個々のユーザーのリアルタイムのアクティビティとエクスペリエンスをエンドツーエンドで可視化します。RUM は Web およびモバイルアプリケーションを監視するための 4 種類のユースケースを解決します。 +Datadog の*リアルユーザーモニタリング (RUM)* は、個々のユーザーのリアルタイムのアクティビティとエクスペリエンスをエンドツーエンドで可視化します。RUMは、Web およびモバイルアプリケーションの 4 種類のユースケースを解決するように設計されています。 + +* **パフォーマンス**: Web ページ、モバイルアプリケーション画面、ユーザーアクション、ネットワークリクエスト、フロントエンドコードのパフォーマンスを追跡します。 +* **エラー管理**: 進行中のバグと問題を監視し、時間とバージョンにわたってそれを追跡します。 +* **分析/使用**: アプリケーションを使用しているユーザーを理解し (国、デバイス、OS)、個々のユーザージャーニーを監視し、ユーザーによるアプリケーションの操作を分析します (アクセスされた最も一般的なページ、クリック、インタラクション、機能の使用)。 +* **サポート**: 1 つのユーザーセッションに関連するすべての情報を取得して、問題をトラブルシューティングします (セッションの継続時間、アクセスしたページ、インタラクション、読み込まれたリソース、エラー)。 + +### セッション定義 {#session-definition} + +ユーザーセッションは、Web またはモバイルアプリケーションについてのユーザージャーニーです。セッションには、関連するすべてのナビゲーションイベント (RUMビュー)、ユーザーアクション (RUM アクション)、ネットワークリクエスト (RUM リソース)、クラッシュとエラー (RUM エラー)、およびユーザー エクスペリエンスの忠実な表現を生成する他のイベントやシグナルが含まれます。 + +1 つの RUM セッションは最大 4 時間継続し、非アクティブ状態が 15 分間続くと期限切れになります。そのどちらかの制限を超えた後に、ユーザーがアプリケーションとやり取りすると、自動的に新しいセッションが開始されます。 + +### 技術的な制限 {#technical-limitations} -* **Performance**: Web ページ、モバイルアプリケーション画面、ユーザーアクション、ネットワークリクエスト、フロントエンドコードのパフォーマンスを追跡します。 -* **Error Management**: 進行中のバグと問題を監視し、時間とバージョンにわたってそれを追跡します。 -* **Analytics / Usage**: アプリケーションを使用しているユーザーを理解し (国、デバイス、OS)、個々のユーザージャーニーを監視し、ユーザーによるアプリケーションの操作を分析します (アクセスされた最も一般的なページ、クリック、インタラクション、機能の使用)。 -* **Support**: 1 つのユーザーセッションに関連するすべての情報を取得して、問題をトラブルシューティングします (セッションの継続時間、アクセスしたページ、インタラクション、読み込まれたリソース、エラー)。 +| プロパティ | 制限 | +| ------------------------------------------ | ------------------------ | +| セッションの最大持続時間 | 4 時間 | +| セッションのタイムアウト | 15 分の非アクティブ状態 | +| セッションあたりの最大イベント数 | 1,000 万 | +| 1 イベントあたりの最大属性数 | 1,000 | +| 1 イベントあたりの最大属性深度 | 20 | +| 最大イベントサイズ | 1MB | +| 最大インテークペイロードサイズ | 5 MB | +| 最大ソースマップおよびマッピングファイルサイズ | ファイルあたり 500 MB | +| 最大 dSYM ファイルサイズ | ファイルあたり 2 GB | +| 取り込み時の最大遅延 | 24 時間 | -ユーザーセッションとは、Web アプリケーションまたはモバイルアプリケーションでのユーザーの活動で、最長 4 時間続くものを指します。セッションには通常、ページビューと関連するテレメトリーが含まれます。ユーザーが 15 分間アプリケーションと対話しなかった場合、そのセッションは完了したとみなされます。ユーザーがアプリケーションと再び対話すると、新しいセッションが開始されます。 +イベントが上記の技術的な制限を超える場合、Datadog のインテークによって拒否されます。 -## セッションリプレイとは +## セッションリプレイとは{#what-is-session-replay} Datadog の*セッションリプレイ*は、ユーザーの Web ブラウジング体験をキャプチャし、視覚的に再生することができます。 セッションリプレイを RUM パフォーマンスデータと組み合わせることで、エラーの特定、再現、解決に役立ち、Web アプリケーションの使用パターンや設計上の落とし穴を把握することができます。 -## 開始する +## 始める {#get-started} アプリケーションタイプを選択して、RUM データの収集を開始します。 -{{< card-grid card_width="210" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/browser/" src="integrations_logos/javascript_large.svg" alt="browser" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/android/setup" src="integrations_logos/android_large.svg" alt="android" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/ios/setup" src="integrations_logos/ios_large.svg" alt="ios" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/react_native/setup" src="integrations_logos/react-native_large.svg" alt="react native" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/flutter/setup" src="integrations_logos/flutter_large.svg" alt="flutter" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/android/setup" src="integrations_logos/android_tv_large.svg" alt="android tv" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/ios/setup" src="integrations_logos/tv_os_large.svg" alt="tv OS" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/roku/setup" src="integrations_logos/roku_large.svg" alt="Roku" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/unity/setup" src="integrations_logos/rum-unity_large.svg" alt="rum-unity" >}} - {{< image-card href="/real_user_monitoring/application_monitoring/kotlin_multiplatform/setup" src="integrations_logos/kotlin-multiplatform_large.svg" alt="Kotlin Multiplatform" >}} -{{< /card-grid >}} +{{< partial name="rum/rum-getting-started.html" >}}
    -### 機能とプラットフォームのサポート +### 機能とプラットフォームのサポート {#capabilities-and-platform-support} **注**: Datadog Flutter SDK は MacOS、Windows、Linux には対応していません。 次の表に、各プラットフォームでサポートされている RUM 機能を示します。 -| 機能 | ブラウザ | Android | iOS | Flutter | React Native | Roku | 注 | -| ------------------------------------- | --------|---------|---------|---------|--------------|------|-------| -| ログを Datadog に送信する方法 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| ネットワークリクエストの分散型トレーシング | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | **Datadog Roku SDK** は、一部の HTTP リクエストのみを追跡することができます。 | -| ビューとアクションの追跡 (RUM) | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | - **Flutter Web** で追跡されるすべてのアクションは `custom` として記録されます
    - **Roku** は手動アクション追跡のみをサポートしています。 | -| 機能フラグの追跡とリリースの追跡 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | -| エラー追跡とソースマッピング | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | **React Native** は部分的にサポートされています | -| クラッシュ追跡、シンボル化、難読化解除 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| セッションを停止 (Kiosk Monitoring) | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | -| WebView でイベントを追跡 | | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | -| プラットフォーム固有のバイタルを監視 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | -| ログのグローバルコンテキスト/属性追跡 | {{< X >}} | | | | | | | -| クライアント側のトレース | | {{< X >}} | {{< X >}}| | | | | | -| セッション リプレイ | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | | | -| フラストレーションシグナル | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | すべての**モバイル**および **Roku** デバイスは部分的にサポートされています | - -## SDK ドメインでサポートされるエンドポイント +| 機能 | ブラウザ | Android | iOS | Flutter | React Native | Roku | KMP | Unity | 備考 | +| ------------------------------------- | --------|---------|---------|---------|--------------|------|-----|-------|--------| +| Datadog へのログの送信 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| ネットワークリクエストの分散型トレーシング | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | - **Roku** は、一部の HTTP リクエストのみを追跡することができます。
    - **Unity** は、`UnityWebRequest` のラッパーを使用してリクエスト追跡を実行します。| +| ビューとアクションの追跡 (RUM) | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | - **Flutter Web** で追跡したすべてのアクションは `custom` として記録されます。
    - **Roku** と **Unity** でサポートされるのは手動アクション追跡だけです。| +| 機能フラグの追跡とリリースの追跡 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | {{< X >}} | | +| エラー追跡とソースマッピング | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | **React Native** は部分的にサポートされています。| +| クラッシュ追跡、シンボル化、難読化解除 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| セッションを停止 (Kiosk Monitoring) | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | {{< X >}} | | +| WebView でイベントを追跡 | | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | | | +| プラットフォーム固有のバイタルを監視 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | | | +| ログのグローバルコンテキスト/属性追跡 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | {{< X >}} | | +| クライアント側のトレース | | {{< X >}} | {{< X >}}| | | | | | | | +| セッションリプレイ | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} | | **Flutter** のセッションリプレイは Preview 中です。| +| フラストレーションシグナル | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | すべての**モバイル**および **Roku** デバイスは部分的にのみサポートされています。| + +## SDK ドメインでサポートされるエンドポイント {#supported-endpoints-for-sdk-domains} Datadog SDK のトラフィックはすべて SSL (デフォルト 443) で以下のドメインに送信されます。 @@ -133,81 +150,82 @@ Datadog SDK のトラフィックはすべて SSL (デフォルト 443) で以 | US5 | `https://browser-intake-us5-datadoghq.com` | | EU1 | `https://browser-intake-datadoghq.eu` | | US1-FED | `https://browser-intake-ddog-gov.com` | +| US2-FED | `https://browser-intake-us2-ddog-gov.com` | | AP1 | `https://browser-intake-ap1-datadoghq.com` | | AP2 | `https://browser-intake-ap2-datadoghq.com` | -## Datadog RUM を探索する +## Datadog RUM を詳しく見る {#explore-datadog-rum} [**Digital Experience > Performance Summary**][1] に移動して、RUM にアクセスします。 上部ナビゲーションからアプリケーションを選択するか、[ブラウザ][15]または[モバイル][16]のセットアップ手順に従って、最初のアプリケーションを追加してください。 -{{< img src="real_user_monitoring/rum-performance-application-selector.png" alt="RUM アプリケーションを選択" >}} +{{< img src="real_user_monitoring/rum-performance-application-selector.png" alt="RUM アプリケーションを選択します。" >}} -**ヒント**: Datadog のグローバル検索で RUM を開くには、Cmd/Ctrl + K を押し、`real user monitoring` と入力して検索してください。 +**ヒント**: Datadog のグローバル検索から RUM を開くには、Cmd/Ctrl + K を押して `real user monitoring` を検索します。 -## パフォーマンスモニタリングの概要 +## パフォーマンスモニタリングの概要 {#performance-monitoring-summary} -| ブラウザパフォーマンスの概要 | モバイルパフォーマンスの概要 | +| ブラウザパフォーマンスの概要 | モバイルのパフォーマンスの概要 | |---------|---------| -| {{< img src="real_user_monitoring/performance-summary-browser.png" alt="ブラウザアプリケーション向けの RUM パフォーマンスモニタリング概要ページ" >}} | {{< img src="real_user_monitoring/performance-summary-mobile-2.png" alt="モバイルアプリケーション向けの RUM パフォーマンスモニタリング概要ページ" >}} | +| {{< img src="real_user_monitoring/performance-summary-browser.png" alt="ブラウザアプリケーションの RUM パフォーマンスモニタリングの概要ページ" >}} | {{< img src="real_user_monitoring/performance-summary-mobile-2.png" alt="モバイルアプリケーションの RUM パフォーマンスモニタリングの概要ページ" >}} | [RUM パフォーマンスモニタリング概要][1]ページは、Web およびモバイルアプリケーション双方に関連性が高く実用的なインサイトを提供します。また、各プラットフォームに合わせたエクスペリエンスによって、以下が可能となります。 -- **プラットフォームごとの主要データポイントにフォーカス** (例: Web の UI レイテンシ、モバイル クラッシュ) -- **アプリケーションの健全性をモニタリング**: Core Web Vitals (Web アプリ) やハング率 (iOS) などの馴染みのある KPI を用いて、アプリの信頼性を評価できます。 +プラットフォームごとの- **主要データポイントにフォーカス** (例: Web の UI レイテンシ、モバイル クラッシュ) +- **アプリケーションの健全性をモニタリング**: Core Web Vitals (Web アプリ) やハング率 (iOS) などの馴染みのある KPI により、アプリの信頼性を評価できます。 - **直接調査を開始**: ページを離れることなく、インタラクティブなウィジェットから直ちに問題の原因究明に取りかかれます。 **Web アプリ**の場合: 検索バーでデータをフィルタリングし、遅いページを特定したうえで UI ガイドに従い、[RUM Optimization Inspect][17] ページにアクセスできます。 **モバイルアプリ**の場合: ページ下部で最近のクラッシュを確認し、[Error Tracking][6] サイドパネルを活用してトラブルシューティングを行えます。 -### すぐに使えるダッシュボード +### すぐに使えるダッシュボード {#out-of-the-box-dashboards} [すぐに使える RUM ダッシュボード][2]で自動的に収集されたユーザーセッション、パフォーマンス、モバイルアプリケーション、フラストレーションシグナル、ネットワークリソース、エラーに関する情報を分析することができます。 {{< img src="real_user_monitoring/rum-out-of-the-box-dashboard.png" alt="RUM ダッシュボード" >}} -### RUM エクスプローラーと視覚化 +### RUM エクスプローラーと視覚化 {#rum-explorer-and-visualizations} -[視覚化][3]を使用して、レイテンシーがプレミアム顧客に影響を与えるタイミングを確認するなど、ユーザーセッションをセグメントで表示します。カスタマイズした検索で、データを探索し、ビューを保存し、[モニター][4]を作成します。 +[視覚化][3]を使用して、レイテンシーがプレミアム顧客に影響を与えるタイミングを確認するなど、ユーザーセッションをセグメントで表示します。カスタマイズした検索で、データを探索し、ビューを保存し、[モニター][4] を作成します。 {{< img src="real_user_monitoring/explorer/analytics/rum_analytics.mp4" alt="RUM 分析" video=true >}} -### ログ、APM、プロファイラーとのインテグレーション +### ログ、APM、プロファイラーとのインテグレーション {#integration-with-logs-apm-and-profiler} [バックエンドトレース、ログ、インフラストラクチャーメトリクス][5]を、ユーザーエクスペリエンスと報告された問題に対応して、アプリケーションのパフォーマンスに影響を与えるコードの正確な行まで表示します。 {{< img src="real_user_monitoring/connect_rum_and_traces/rum_apm_logs-2.png" alt="RUM と APM" >}} -### エラー追跡とクラッシュレポート +### エラー追跡とクラッシュレポート {#error-tracking-and-crash-reporting} [Error Tracking][6] を使用して、外れ値、エラー、タイムアウト、およびクラッシュのグループに関する自動アラートを取得し、MTTR を大幅に削減します。 {{< img src="real_user_monitoring/error_tracking/errors_rum.mp4" alt="RUM エラー追跡" video=true >}} -### Web とモバイルバイタル +### Web とモバイルバイタル {#web-and-mobile-vitals} [iOS および tvOS][8] または [Android および Android TV アプリケーション][9]の Core Web Vitals および Mobile Vitals などの[ブラウザアプリケーション][7]のパフォーマンススコアとテレメトリーを表示します。 -### Web ビュー追跡 +### Web ビュー追跡 {#web-view-tracking} [iOS と tvOS][10] または [Android と Android TV][11] 用の Web ビュー追跡を使用して、ネイティブ Web アプリケーションから情報を収集し、ハイブリッドビューを調査します。 -{{< img src="real_user_monitoring/webview_tracking/webview_tracking_light.png" alt="RUM エクスプローラーのユーザーセッションで取得した Web ビュー" >}} +{{< img src="real_user_monitoring/webview_tracking/webview_tracking_light.png" alt="RUM エクスプローラーでユーザーセッション中にキャプチャされた Web ビュー" >}} -## Datadog のセッションリプレイを見る +## Datadog のセッションリプレイを見る {#explore-datadog-session-replay} -### セッションリプレイ +### セッションリプレイ {#session-replays} Web サイトを利用する実際のユーザーの[ブラウザ記録][12]を見て、組織の[プライバシーコントロール][13]を設定します。 -### 開発ツール +### 開発ツール {#developer-tools} [ブラウザ開発ツール][14]を使用してアプリケーションの問題をトラブルシューティングする際に、トリガーされたログ、エラー、およびパフォーマンス情報にアクセスできます。 -## 権限 +## 権限 {#permissions} デフォルトでは、すべてのユーザーがアプリケーションの RUM 構成を変更できます。 @@ -215,22 +233,22 @@ Web サイトを利用する実際のユーザーの[ブラウザ記録][12]を 1. アプリケーションの RUM 構成を表示している状態で、画面上部の **Edit application** ボタンをクリックします。ドロップダウンが表示されます。 1. **Manage App Permissions** を選択します。 1. **Restrict Access** をクリックします。 -1. ダイアログボックスが更新され、組織のメンバーはデフォルトで **Viewer** アクセス権を持っていることが表示されます。 +1. ダイアログボックスが更新され、組織のメンバーはデフォルトで **Viewer** アクセス権を付与されていることが表示されます。 1. ドロップダウンを使用して、ノートブックを編集できる 1 つまたは複数のロール、チーム、ユーザーを選択します。 1. **Add** をクリックします。 1. ダイアログボックスが更新され、選択したロールに **Editor** 権限があることが表示されます。 -1. **Save** をクリックします。 +1. **Save**をクリックします。 **注:** 編集アクセスを維持するため、保存前に自分がメンバーであるロールを少なくとも 1 つ含める必要があります。 -制限されたアプリケーションへの一般アクセスを復元するには、編集アクセスが必要です。次の手順を実行します: +制限されたアプリケーションへの一般アクセスを復元するには、編集アクセスが必要です。以下のステップを完了します。 1. アプリケーションの RUM 構成を表示している状態で、画面上部の **Edit application** ボタンをクリックします。ドロップダウンが表示されます。 1. **Manage App Permissions** を選択します。 1. **Restore Full Access** をクリックします。 -1. **Save** をクリックします。 +1. **Save**をクリックします。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -240,15 +258,15 @@ Web サイトを利用する実際のユーザーの[ブラウザ記録][12]を [4]: /ja/monitors/types/real_user_monitoring/ [5]: /ja/real_user_monitoring/correlate_with_other_telemetry/apm/ [6]: /ja/real_user_monitoring/error_tracking/ -[7]: /ja/real_user_monitoring/browser/monitoring_page_performance/#event-timings-and-core-web-vitals -[8]: /ja/real_user_monitoring/ios/mobile_vitals/ -[9]: /ja/real_user_monitoring/android/mobile_vitals/ -[10]: /ja/real_user_monitoring/ios/web_view_tracking/ -[11]: /ja/real_user_monitoring/android/web_view_tracking/ -[12]: /ja/real_user_monitoring/session_replay/browser/ -[13]: /ja/real_user_monitoring/session_replay/browser/privacy_options/ -[14]: /ja/real_user_monitoring/session_replay/browser/developer_tools/ -[15]: /ja/real_user_monitoring/browser/setup/ -[16]: /ja/real_user_monitoring/mobile_and_tv_monitoring/ +[7]: /ja/real_user_monitoring/application_monitoring/browser/monitoring_page_performance/#event-timings-and-core-web-vitals +[8]: /ja/real_user_monitoring/application_monitoring/ios/mobile_vitals/ +[9]: /ja/real_user_monitoring/application_monitoring/android/mobile_vitals/ +[10]: /ja/real_user_monitoring/application_monitoring/ios/web_view_tracking/ +[11]: /ja/real_user_monitoring/application_monitoring/android/web_view_tracking/ +[12]: /ja/session_replay/browser/ +[13]: /ja/session_replay/browser/privacy_options/ +[14]: /ja/session_replay/browser/dev_tools/ +[15]: /ja/real_user_monitoring/application_monitoring/browser/setup/ +[16]: /ja/real_user_monitoring/application_monitoring/ [17]: https://app.datadoghq.com/rum/optimization/inspect [18]: /ja/account_management/rbac/ \ No newline at end of file diff --git a/content/ja/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md b/content/ja/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md new file mode 100644 index 00000000000..a5e634fc978 --- /dev/null +++ b/content/ja/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md @@ -0,0 +1,1899 @@ +--- +aliases: +- /ja/real_user_monitoring/installation/advanced_configuration/ +- /ja/real_user_monitoring/browser/modifying_data_and_context/ +- /ja/real_user_monitoring/browser/advanced_configuration/ +content_filters: +- option_group_id: rum_browser_sdk_source_options + trait_id: lib_src +- option_group_id: rum_browser_sdk_version_for_advanced_config_options + trait_id: rum_browser_sdk_version +description: RUM ブラウザ SDK を構成して、アプリケーションのニーズに対応できるよう、データ収集に変更を加え、ビュー名をオーバーライドし、ユーザーセッションを管理し、サンプリングを制御します。 +further_reading: +- link: /real_user_monitoring/application_monitoring/browser/tracking_user_actions + tag: ドキュメント + text: ユーザーアクションの追跡 +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: ブログ + text: Real User Monitoring +- link: /real_user_monitoring/application_monitoring/browser/data_collected/ + tag: ドキュメント + text: RUM ブラウザデータ収集 +- link: /real_user_monitoring/explorer/ + tag: ドキュメント + text: Datadog でビューを検索する +- link: /real_user_monitoring/explorer/visualize/ + tag: ドキュメント + text: イベントへの視覚化の適用 +- link: /logs/log_configuration/attributes_naming_convention + tag: ドキュメント + text: Datadog 標準属性 +- link: https://learn.datadoghq.com/courses/configure-rum-javascript + tag: ラーニングセンター + text: JavaScript Web アプリケーション向けに RUM (Real User Monitoring) を構成します。 +title: 高度なコンフィギュレーション +--- +## 概要 {% #overview %} + +RUM によって[収集されたデータおよびコンテキスト][1]を、次のニーズをサポートするために変更する方法は、さまざまあります。 + +- 個人を特定できる情報などの機密データを保護します。 +- サポートを支援するために、ユーザーセッションをそのユーザーの内部 ID に接続します。 +- データをサンプリングすることにより、収集する RUM データの量を削減します。 +- データの送信元について、デフォルトの属性が提供するものよりも多くのコンテキストを提供します。 + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} + +## デフォルトの RUM ビュー名をオーバーライドする {% #override-default-rum-view-names %} + +[バージョン 2.17.0][3] からは、`trackViewsManually` オプションでビューイベントを手動で追跡することにより、ビュー名を追加して、チームが所有する専用サービスに割り当てることができます。 + +RUM ブラウザ SDK は、ユーザーが訪れた新しいページごとに[ビューイベント][2]を自動生成します。また、ページ URL が変更された場合 (シングルページアプリケーションの場合) にも生成されます。ビュー名は現在のページ URL から計算され、可変 ID は自動的に削除されます。少なくとも 1 つの数字を含むパスセグメントは、可変 ID と見なされます。たとえば、`/dashboard/1234` と `/dashboard/9a` は `/dashboard/?` になります。 + +デフォルトの RUM ビュー名をオーバーライドするには、次のようにします。 + +1. RUM ブラウザ SDK を初期化する際に、`trackViewsManually` を true に設定します。 + + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + trackViewsManually: true, + ... + }); + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + trackViewsManually: true, + ... + }) + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + trackViewsManually: true, + ... + }); + ``` + {% /if %} + +2. 新しいページまたはルート変更 (シングルページアプリケーションの場合) のたびにビューを開始する必要があります。ビューが開始されると、RUM データが収集されます。 +{% /if %} + + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "4.13.0") %} + +### サービス名とバージョンを定義する {% #define-service-name-and-version %} + +[バージョン 4.13.0][16] 以降は、関連するサービス名とバージョンもオプションとして定義できます。 + +- **ビュー名**: デフォルトはページの URL パスです。 +- **サービス**: デフォルトは、RUM アプリケーションの作成時に指定されたデフォルトのサービスです。 +- **バージョン**: デフォルトは、RUM アプリケーションの作成時に指定されたデフォルトのバージョンです。 +{% /if %} + + + + + +{% if includes($rum_browser_sdk_version, ["lt_2_13_0", "gte_2_13_0", "gte_2_17_0"]) %} + +## ページビューを手動で追跡する {% #manually-track-pageviews %} + +次の例は、RUM アプリケーションの `checkout` ページでページビューを手動で追跡します。サービスとバージョンはどちらも指定できません。 + + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.startView('checkout') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.startView('checkout') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.startView('checkout') +``` +{% /if %} +{% /if %} + + + +{% if includes($rum_browser_sdk_version, ["gte_4_13_0", "gte_4_49_0", "gte_5_22_0"]) %} + +次の例は、RUM アプリケーションの `checkout` ページでページビューを手動で追跡します。ビュー名には `checkout` を使用し、`purchase` サービスをバージョン `1.2.3` に関連付けます。 + + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' +}) +``` +{% /if %} +{% /if %} + + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "5.28.0") %} + +- **コンテキスト**: [バージョン 5.28.0][19] から、ビューおよびその子イベントにコンテキストを追加できます。 + +次の例は、RUM アプリケーションの `checkout` ページでページビューを手動で追跡します。ビュー名には `checkout` を使用し、`purchase` サービスをバージョン `1.2.3` に関連付けます。 + + + {% if equals($lib_src, "npm") %} + ```javascript + datadogRum.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + ``` + {% /if %} + +{% /if %} + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} + +### React ルーターのインスツルメンテーション {% #react-router-instrumentation %} + +React、Angular、Vue、またはその他のフロントエンドフレームワークを使用している場合、Datadog はフレームワークルーターレベルで `startView` ロジックを実装することをお勧めします。 + +デフォルトの RUM ビュー名をオーバーライドして、React アプリケーションで定義したビュー名と一致させるには、以下の手順に従う必要があります。 + +**注**: これらの手順は、**React Router v6** ライブラリに固有のものです。 + +1. [前述](#override-default-rum-view-names)のようにして、RUM ブラウザ SDK を初期化する際に、`trackViewsManually` を `true` に設定します。 + +2. ルート変更ごとのビューを開始します。 + + {% if equals($lib_src, "npm") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + import { datadogRum } from "@datadog/browser-rum"; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + datadogRum.startView({name: viewName}); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + DD_RUM.onReady(function() { + DD_RUM.startView({name: viewName}); + }); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + window.DD_RUM && + window.DD_RUM.startView({name: viewName}); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} +{% /if %} + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} +### ビュー名を設定する {% #set-view-name %} + +現在のビューの名前を更新するには、`setViewName(name: string)` を使用します。これにより、新しいビューを開始することなく、ビュー表示中にビュー名を変更できます。 + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.setViewName(''); + + // Code example + datadogRum.setViewName('Checkout'); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.setViewName(''); + }) + + // Code example + window.DD_RUM.onReady(function() { + window.DD_RUM.setViewName('Checkout'); + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && window.DD_RUM.setViewName(''); + + // Code example + window.DD_RUM && window.DD_RUM.setViewName('Checkout'); + ``` + {% /if %} + +**注**: ビュー名を変更すると、そのメソッドが呼び出された後、当該時点以降のビューおよびその子イベントに影響します。 +{% /if %} + + +詳しくは、[ブラウザモニタリングの設定][4]をご覧ください。 + + +## RUM データを強化および制御する {% #enrich-and-control-rum-data %} + +RUM ブラウザ SDK は RUM イベントをキャプチャし、主要な属性を設定します。コールバック関数 `beforeSend` を使用することにより、RUM SDK によって収集されたすべてのイベントを Datadog に送信する前に、それにアクセスすることができます。 + +RUM イベントをインターセプトすると、次のことが可能になります。 + +- 追加のコンテキスト属性で RUM イベントを強化する +- RUM イベントを変更してコンテンツを変更するか、機密性の高いシーケンスを編集する ([編集可能なプロパティのリスト](#modify-the-content-of-a-rum-event)を参照) +- 選択した RUM イベントを破棄する + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.13.0") %} +[バージョン 2.13.0][5] 以降、`beforeSend` は 2 つの引数を取ります。RUM ブラウザ SDK によって生成された `event` と、RUM イベントの作成をトリガーした `context` です。 + +```javascript +function beforeSend(event, context) +``` + +潜在的な `context` 値は次のとおりです。 + +| RUM イベントタイプ | コンテキスト | +|------------------|---------------------------| +| ビュー | [場所][6] | +| アクション | [イベント][7] とハンドリングスタック | +| リソース (XHR) | [XMLHttpRequest][8]、[PerformanceResourceTiming][9]、およびハンドリングスタック | +| リソース (フェッチ) | [リクエスト][10]、[応答][11]、[PerformanceResourceTiming][9]、およびハンドリングスタック | +| リソース (その他) | [PerformanceResourceTiming][9] | +| エラー | [エラー][12] | +| Long Task | [PerformanceLongTaskTiming][13] | + +詳細については、[RUM データの強化と制御ガイド][14]を参照してください。 +{% /if %} + + +### RUM イベントを強化する {% #enrich-rum-events %} + +イベントには、[グローバルコンテキスト API](#global-context) または [Feature Flag データ収集](#enrich-rum-events-with-feature-flags)で追加された属性に加えて、追加のコンテキスト属性を設定できます。たとえば、RUM リソースイベントに、フェッチ応答オブジェクトから抽出したデータのタグを付けます。 + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }) + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }); + ``` + {% /if %} + +ユーザーが複数のチームに所属している場合は、グローバルコンテキスト API を呼び出す際に、Key-Value ペアを追加してください。 + +RUM Browser SDK は `event.context` 以外に追加された属性を無視します。 + +### 機能フラグで RUM イベントをリッチ化する {% #enrich-rum-events-with-feature-flags %} + +[フィーチャーフラグで RUM イベントデータを強化する][14]ことにより、パフォーマンスモニタリングについての追加のコンテキストや可視性を得ることができます。これにより、どのユーザーに特定のユーザーエクスペリエンスが表示されるかを判別でき、またそれがユーザーのパフォーマンスに悪影響を与えているかどうかを判断することができます。 + +### RUM イベントのコンテンツを変更 {% #modify-the-content-of-a-rum-event %} + +たとえば、Web アプリケーションの URL からメールアドレスを編集するには + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }) + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }); + ``` + {% /if %} + +次のイベントプロパティを更新できます。 + +| 属性 | 型 | 説明 | +| ------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `view.url` | 文字列 | アクティブな Web ページの URL。 | +| `view.referrer` | 文字列 | 現在リクエストされているページへのリンクがたどられた前のウェブページの URL。 | +| `view.name` | 文字列 | 現在のビューの名前。 | +| `view.performance.lcp.resource_url` | 文字列 | Largest Contentful Paint のリソース URL。 | +| `service` | 文字列 | アプリケーションのサービス名。 | +| `version` | 文字列 | アプリケーションのバージョン。たとえば: 1.2.3、6c44da20、または2020.02.13。 | +| `action.target.name` | 文字列 | ユーザーがやり取りした要素。自動的に収集されたアクションのみ。 | +| `error.message` | 文字列 | エラーについて簡潔にわかりやすく説明する 1 行メッセージ。 | +| `error.stack` | 文字列 | スタックトレースまたはエラーに関する補足情報。 | +| `error.resource.url` | 文字列 | エラーをトリガーしたリソース URL。 | +| `resource.url` | 文字列 | リソース URL。 | +| `long_task.scripts.source_url` | 文字列 | スクリプト リソース URL | +| `long_task.scripts.invoker` | 文字列 | スクリプトがどのように呼び出されたかを示す意味のある名前 | +| `context` | オブジェクト | [Global Context API](#global-context)、[View Context API](#view-context)、またはイベントを手動で生成する際 (`addError` や **`addAction`**) に追加される属性。| + +RUM ブラウザ SDK は、上記のリストにないイベントプロパティに加えられる変更を無視します。イベントプロパティについて詳しくは、[RUM ブラウザ SDK GitHub リポジトリ][15]を参照してください。 + +**注**: 他のイベントとは異なり、ビューのイベントはライフサイクル中に発生する更新を反映するために Datadog に複数回送信されます。新しいビューがアクティブな間も、過去のビューイベントに関する更新を送信することが可能です。Datadog では、ビューイベントの内容を変更する際にこの動作に注意することが推奨されています。 + +```javascript +beforeSend: (event) => { + // discouraged, as the current view name could be applied to both the active view and the previous views + event.view.name = getCurrentViewName() + + // recommended + event.view.name = getViewNameForUrl(event.view.url) +} +``` + +### RUM イベントを破棄 {% #discard-a-rum-event %} + +`beforeSend` API で、`false` を返し RUM イベントを破棄します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + } + ... + }, + ... +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + }, + ... + }, + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + } + ... + }, + ... + }); +``` +{% /if %} + +**注**: ビューイベントは破棄できません。 + +## ユーザーセッション {% #user-session %} + +RUM セッションにユーザー情報を追加することで、以下が可能になります。 + +- 特定のユーザーのジャーニーをたどる +- エラーの影響を最も受けているユーザーを把握する +- 最も重要なユーザーのパフォーマンスを監視する + +{% img src="real_user_monitoring/browser/advanced_configuration/user-api.png" alt="RUM UI 内のユーザー API" /%} + + +{% if semverIsAtLeast($rum_browser_sdk_version, "6.4.0") %} +バージョン6.4.0 以上では、以下の属性が利用可能です。 + +| 属性 | 型 | 必須 | 説明 | +|------------|------|------|----------------------------------------------------------------------------------------------------| +| `usr.id` | 文字列 | Yes | 一意のユーザー識別子。 | +| `usr.name` | 文字列 | No| RUM UI にデフォルトで表示されるユーザーフレンドリーな名前。 | +| `usr.email` | 文字列 | No | ユーザーのメール。ユーザー名が存在しない場合に RUM UI に表示されます。Gravatars を取得するためにも使用されます。| +{% /if %} + + + +{% if not(semverIsAtLeast($rum_browser_sdk_version, "6.4.0")) %} +以下の属性は、バージョン6.4.0 より前はオプションでしたが、Datadog では少なくとも 1 つを指定することが強く推奨されています。たとえば、一部のデフォルト RUM ダッシュボードで関連データを表示する場合、クエリの一部として `usr.id` に依存するため、セッションにユーザー ID を設定する必要があります。 + +| 属性 | 型 | 説明 | +|------------|------|----------------------------------------------------------------------------------------------------| +| `usr.id` | 文字列 | 一意のユーザー識別子。 | +| `usr.name` | 文字列 | RUM UI にデフォルトで表示されるユーザーフレンドリーな名前。 | +| `usr.email` | 文字列 | ユーザーのメール。ユーザー名が存在しない場合に RUM UI に表示されます。Gravatars を取得するためにも使用されます。| + +**注**: `usr.name` が設定されていない場合は、`usr.email` や `usr.id` が定義されていても、RUM UI には 'Public User' と表示されます。 + +推奨される属性に加えて、追加属性を加えることでフィルタリング機能を向上させてください。たとえば、ユーザープランや所属するユーザーグループに関する情報を追加します。 + +ユーザーセッションオブジェクトに変更を加えた場合、変更後に収集されるすべての RUM イベントには、更新された情報が含まれます。 + +**注**: ログアウトのようにユーザーセッション情報を削除すると、ログアウト前の最後のビューではユーザー情報が保持されますが、それ以降のビューやセッションレベルでは、セッションデータは最後のビューの値を使用するため保持されません。 +{% /if %} + + +### ユーザーセッションを特定する {% #identify-user-session %} + +`datadogRum.setUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... +}) +``` +{% /if %} + +### ユーザーセッションにアクセスする {% #access-user-session %} + +`datadogRum.getUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.getUser() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.getUser() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getUser() +``` +{% /if %} + +### ユーザーセッションプロパティの追加/オーバーライド {% #addoverride-user-session-property %} + +`datadogRum.setUserProperty('', )` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setUserProperty('name', 'John Doe') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setUserProperty('name', 'John Doe') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setUserProperty('name', 'John Doe') +``` +{% /if %} + +### ユーザーセッションプロパティを削除する {% #remove-user-session-property %} + +`datadogRum.removeUserProperty('')` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.removeUserProperty('name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeUserProperty('name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.removeUserProperty('name') +``` +{% /if %} + +### ユーザーセッションプロパティをクリアする {% #clear-user-session-property %} + +`datadogRum.clearUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.clearUser() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearUser() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearUser() +``` +{% /if %} + +## アカウント {% #account %} + +ユーザーを別のセットに分類するには、アカウントの概念を使用します。 + +次の属性を利用できます: + +| 属性 | 型 | 必須 | 説明 | +|----------------|--------|----------|------------------------------------------------------------| +| `account.id` | 文字列 | Yes | 一意のアカウント識別子。 | +| `account.name` | 文字列 | No | RUM UI にデフォルトで表示されるユーザーフレンドリーなアカウント。| + +### アカウントを特定する {% #identify-account %} + +`datadogRum.setAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setAccount({ + id: '1234', + name: 'My Company Name', + ... +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setAccount({ + id: '1234', + name: 'My Company Name', + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setAccount({ + id: '1234', + name: 'My Company Name', + ... +}) +``` +{% /if %} + +### アカウントにアクセスする {% #access-account %} + +`datadogRum.getAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.getAccount() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.getAccount() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getAccount() +``` +{% /if %} + +### アカウントプロパティの追加/オーバーライド {% #addoverride-account-property %} + +`datadogRum.setAccountProperty('', )` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setAccountProperty('name', 'My Company Name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setAccountProperty('name', 'My Company Name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setAccountProperty('name', 'My Company Name') +``` +{% /if %} + +### アカウントプロパティを削除する {% #remove-account-property %} + +`datadogRum.removeAccountProperty('')` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.removeAccountProperty('name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeAccountProperty('name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.removeAccountProperty('name') +``` +{% /if %} + +### アカウントプロパティをクリアする {% #clear-account-properties %} + +`datadogRum.clearAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.clearAccount() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearAccount() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearAccount() +``` +{% /if %} + +## サンプリング {% #sampling %} + +デフォルトの場合、収集されたセッションの数にはサンプリングが適用されません。収集されたセッションの数に対して相対サンプリング (パーセント) を適用するには、RUM 初期化時に `sessionSampleRate` パラメーターを使用します。 + +下記の例では、RUM アプリケーションの全セッションの 90% のみを収集します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '', + sessionSampleRate: 90, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + site: '', + sessionSampleRate: 90, + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + site: '', + sessionSampleRate: 90, + }); +``` +{% /if %} + +サンプルとして抽出したセッションでは、すべてのページビューとそのセッションに紐付くテレメトリーは収集されません。 + +## ユーザー追跡の同意 {% #user-tracking-consent %} + +GDPR、CCPA、および同様の規制に準拠するために、RUM Browser SDK では初期化時に追跡に関する同意を提供できます。追跡に関する同意について詳しくは、[データセキュリティ][17]を参照してください。 + +`trackingConsent` の初期化パラメーターは次のいずれかの値で示されます。 + +1. `"granted"` (デフォルト): RUM Browser SDK はデータの収集を開始し、それをDatadog に送信します。 +2. `"not-granted"`: RUM Browser SDK はデータを収集しません。 + +RUM Browser SDK の初期化後に追跡同意値を変更するには、`setTrackingConsent()` API 呼び出しを使用します。RUM Browser SDK は新しい値に応じて動作を変更します。 + +- `"granted"` から `"not-granted"` に変更すると、RUM セッションは停止し、データは Datadog に送信されなくなります。 +- `"not-granted"` から `"granted"` に変更すると、以前のセッションがアクティブでない場合、新しい RUM セッションが作成され、データ収集が再開されます。 + +この状態はタブ間で同期されず、ナビゲーション間で永続化されません。RUM Browser SDK の初期化時や、`setTrackingConsent()` を使用して、ユーザーの決定を提供するのはユーザーの責任です。 + +`setTrackingConsent()` が `init()` の前に使用された場合、指定された値が初期化パラメーターよりも優先されます。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + ..., + trackingConsent: 'not-granted' +}); + +acceptCookieBannerButton.addEventListener('click', function() { + datadogRum.setTrackingConsent('granted'); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + trackingConsent: 'not-granted' + }); +}); + +acceptCookieBannerButton.addEventListener('click', () => { + window.DD_RUM.onReady(function() { + window.DD_RUM.setTrackingConsent('granted'); + }); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.init({ + ..., + trackingConsent: 'not-granted' +}); + +acceptCookieBannerButton.addEventListener('click', () => { + window.DD_RUM && window.DD_RUM.setTrackingConsent('granted'); +}); +``` +{% /if %} + +## ビューコンテキスト {% #view-context %} + + +[バージョン 5.28.0][20] 以降、ビューイベントのコンテキストは変更可能です。コンテキストは現在のビューにのみ追加でき、その子イベント (`action`、`error`、`timing` など) が `startView`、`setViewContext`、および `setViewContextProperty` 関数を使用して設定されます。 + +### コンテキストを使用してビューを開始 {% #start-view-with-context %} + +オプションとして、[`startView` のオプション ](#override-default-rum-view-names) を使用することにより、ビュー開始時にコンテキストを定義できます。 + +### ビューコンテキストを追加 {% #add-view-context %} + +`setViewContextProperty(key: string, value: any)` API を使用して、RUM ビューイベントおよび対応する子イベントのコンテキストを拡充または変更します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.setViewContextProperty('', ''); + +// Code example +datadogRum.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContextProperty('', ''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 + }); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setViewContextProperty('', ''); + +// Code example +window.DD_RUM && window.DD_RUM.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + +### ビューコンテキストを置き換える {% #replace-view-context %} + +`setViewContext(context: Context)` API を使用して、RUM ビューイベントおよび対応する子イベントのコンテキストを置換します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.setViewContext({ '': '' }); + +// Code example +datadogRum.setViewContext({ + originalUrl: 'shopist.io/department/chairs', +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContext({ '': '' }); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContext({ + originalUrl: 'shopist.io/department/chairs', + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.setViewContext({ '': '' }); + +// Code example +window.DD_RUM && + window.DD_RUM.setViewContext({ + originalUrl: 'shopist.io/department/chairs', + }); +``` +{% /if %} + +## エラー コンテキスト {% #error-context %} + +### dd_context を使用したローカル エラー コンテキストの添付 {% #attaching-local-error-context-with-dd-context %} + +エラーをキャプチャする際、エラー生成時点で追加のコンテキストを提供できます。`addError()` APIを通じて追加情報を渡す代わりに、`dd_context` プロパティをエラーインスタンスに直接添付できます。RUM Browser SDK がこのプロパティを自動的に検出し、最終的なエラーイベントコンテキストに統合します。 + +```javascript +const error = new Error('Something went wrong') +error.dd_context = { component: 'Menu', param: 123, } +throw error +``` + +## グローバルコンテキスト {% #global-context %} + +### グローバルコンテキストプロパティを追加する {% #add-global-context-property %} + +RUM を初期化した後、`setGlobalContextProperty(key: string, value: any)` API を使用してアプリケーションから収集したすべての RUM イベントにコンテキストを追加します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.setGlobalContextProperty('', ); + +// Code example +datadogRum.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` + +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContextProperty('', ''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 + }); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setGlobalContextProperty('', ''); + +// Code example +window.DD_RUM && window.DD_RUM.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + +### グローバルコンテキストプロパティを削除する {% #remove-global-context-property %} + +以前に定義したグローバルコンテキストプロパティを削除することができます。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.removeGlobalContextProperty(''); + +// Code example +datadogRum.removeGlobalContextProperty('codeVersion'); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeGlobalContextProperty(''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.removeGlobalContextProperty('codeVersion'); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.removeGlobalContextProperty(''); + +// Code example +window.DD_RUM && + window.DD_RUM.removeGlobalContextProperty('codeVersion'); +``` +{% /if %} + +### グローバルコンテキストを置換 {% #replace-global-context %} + +`setGlobalContext(context: Context)` API を使用してすべての RUM イベントのデフォルトコンテキストを置換します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.setGlobalContext({ '': '' }); + +// Code example +datadogRum.setGlobalContext({ + codeVersion: 34, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContext({ '': '' }); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContext({ + codeVersion: 34, + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.setGlobalContext({ '': '' }); + +// Code example +window.DD_RUM && + window.DD_RUM.setGlobalContext({ + codeVersion: 34, + }); +``` +{% /if %} + +### グローバルコンテキストをクリアする {% #clear-global-context %} + +グローバルコンテキストをクリアするには、`clearGlobalContext` を使用します。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.clearGlobalContext(); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearGlobalContext(); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearGlobalContext(); +``` +{% /if %} + +### グローバルコンテキストを読み取る {% #read-global-context %} + +RUM を初期化したら、`getGlobalContext()` API を使用してグローバルコンテキストを読み取ります。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +const context = datadogRum.getGlobalContext(); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + const context = window.DD_RUM.getGlobalContext(); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +const context = window.DD_RUM && window.DD_RUM.getGlobalContext(); +``` +{% /if %} + +## コンテキストのライフサイクル {% #contexts-life-cycle %} + +デフォルトでは、グローバルコンテキストとユーザーコンテキストは現在のページメモリに格納されます。つまり、これらは + +- ページのフルリロード後に保持されません +- 同じセッションの異なるタブまたはウィンドウ間で共有されません + +セッションのすべてのイベントに追加するには、すべてのページにアタッチする必要があります。 + + +{% if semverIsAtLeast($rum_browser_sdk_version, "4.49.0") %} +バージョン 4.49.0 で `storeContextsAcrossPages` 構成オプションが導入されたことにより、これらのコンテキストは [`localStorage`][18] に保存でき、以下の動作が可能になります。 + +- フルリロード後にコンテキストが保持される +- 同じオリジンで開かれたタブ間でコンテキストが同期される + +しかし、この機能にはいくつかの**制限**があります。 + +- `localStorage` に格納されたデータはユーザーセッションよりも長続きするため、これらのコンテキストで個人を特定できる情報 (PII) を設定することは推奨されません +- この機能は `trackSessionAcrossSubdomains` のオプションと互換性がありません。なぜなら `localStorage` のデータは同じオリジン間 (login.site.com ≠ app.site.com) でしか共有されないからです +- `localStorage` はオリジンごとに 5 MiB に制限されているため、ローカルストレージに格納されているアプリケーション固有のデータ、 Datadog コンテキスト、およびその他のサードパーティデータは、問題を避けるためにこの制限内に収める必要があります + +{% /if %} + + +## 内部コンテキスト {% #internal-context %} + +Datadog ブラウザ RUM SDK が初期化されると、SDK の内部コンテキストにアクセスすることができます。これにより、SDK が内部で使用するセッション ID やアプリケーションの詳細などのコア識別子とメタデータが提供されます。 + +以下の属性を調べることができます。 + +| 属性 | 説明 | +| -------------- | ----------------------------------------------------------------- | +| application_id | アプリケーションの ID。 | +| session_id | セッションの ID。 | +| user_action | アクション ID を含むオブジェクト (アクションが見つからなかった場合は未定義)。| +| ビュー | 現在のビューイベントに関する詳細を含むオブジェクト。 | + +詳細については、[RUM ブラウザデータ収集][2]を参照してください。 + +### 例 {% #example %} + +```json +{ + application_id : "xxx", + session_id : "xxx", + user_action: { id: "xxx" }, + view : { + id : "xxx", + referrer : "", + url: "http://localhost:8080/", + name: "homepage" + } +} +``` + +オプションで、`startTime` パラメーターを使用して、特定の時間のコンテキストを取得することができます。パラメーターが省略された場合、現在のコンテキストが返されます。 + +```typescript +getInternalContext (startTime?: 'number' | undefined) +``` + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum' + +datadogRum.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function () { + window.DD_RUM.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +``` +{% /if %} + + +## マイクロフロントエンド {% #micro-frontend %} + +RUM Browser SDKは、`service` と `version` の属性を使用して特定のマイクロフロントエンドにイベントを割り当てることにより、マイクロフロントエンドアーキテクチャをサポートします。単一の RUM SDK インスタンスは、シェルレベルで実行されます。イベントは `service` と `version` によってセグメント化されるので、チームはダッシュボードをフィルタリングし、アラートを設定し、マイクロフロントエンドごとのパフォーマンスを追跡することができます。 + +Datadog には、RUM イベントをマイクロフロントエンドに割り当てるために、以下の2つのアプローチが用意されています。 + +1. **自動割り当て**: ソースコードコンテキストを取り込むビルドプラグインを使用し、手動のスタックトレース解析を排除します。 +2. **手動割り当て**: `beforeSend` コールバックを使用してスタックトレースを解析し、サービス情報を抽出します。 + + +### 自動サービスとバージョン割り当て {% #automatic-service-and-version-attribution %} + +このアプローチでは、ビルドプラグインを使用してソースコードコンテキストをバンドルに取り込み、RUM SDK が自動的に読み取って適切な `service` および `version` によりイベントを強化します。 + +#### 前提条件とサポートされているセットアップ {% #prerequisites-and-supported-setups %} + +- **別個のバンドル**: 各マイクロフロントエンドには、[モジュールフェデレーション][21]を使うなど、ファイルパスが異なる独自のバンドルがあります。 +- **サポートされているバンドラー**: [Datadog ビルドプラグインによってサポートされている][22]バンドラーを使用します。 +- **ブラウザ SDK**: Browser SDK バージョンv6.30.1 以上。 + +#### セットアップガイド {% #setup-guide %} + +**ステップ 1 - [マイクロフロントエンドごとにビルドプラグイン][23]を構成する** + +各マイクロフロントエンドのビルド構成で、ソースコードコンテキストの取り込みを有効にします。 + +{% tabs %} +{% tab label="Webpack" %} + +```javascript +const { datadogWebpackPlugin } = require('@datadog/webpack-plugin'); + +module.exports = { + plugins: [ + new datadogWebpackPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="Vite" %} + +```javascript +import { datadogVitePlugin } from '@datadog/vite-plugin'; + +export default { + plugins: [ + datadogVitePlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="esbuild" %} + +```javascript +const { datadogEsbuildPlugin } = require('@datadog/esbuild-plugin'); + +require('esbuild').build({ + plugins: [ + datadogEsbuildPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}); +``` +{% /tab %} + +{% tab label="Rollup" %} + +```javascript +import { datadogRollupPlugin } from '@datadog/rollup-plugin'; + +export default { + plugins: [ + datadogRollupPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="Rspack" %} + +```javascript +const { datadogRspackPlugin } = require('@datadog/rspack-plugin'); + +module.exports = { + plugins: [ + new datadogRspackPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} +{% /tabs %} + +**ステップ2 - シェルレベルで Browser SDK をセットアップする** + +シェルアプリケーション (メインエントリポイント) で[ブラウザのモニタリングをセットアップ][4]します。Browser SDK は、コンテキストマップからの `service` と `version` を使用することにより、RUM イベント (エラー、カスタムアクション、XHR/Fetch リソース、長時間タスク、バイタル) を自動的に機能拡張します。 + +{% alert level="warning" %} +マイクロフロントエンドに一致しないイベントは、シェルレベルのサービスおよびバージョンにフォールバックします。 +{% /alert %} + +**ステップ 3 - [Datadog でマイクロフロントエンドデータを探索する](#explore-micro-frontend-data-in-datadog)** + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "5.22") %} + +### サービスとバージョンの手動割り当て {% #manual-service-and-version-attribution %} + +`beforeSend` プロパティで、サービスとバージョンのプロパティをオーバーライドできます。`context.handlingStack` プロパティを使用すれば、イベントの発生元を特定する助けになります。 + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +datadogRum.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, + }); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +window.DD_RUM && window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, +}); +``` +{% /if %} + +正規表現は、アプリケーションのファイルパス構造と一致する必要があります。バンドル URL からサービスとバージョンを抽出するよう、パターンを調整してください。RUM エクスプローラー内のクエリでは、サービス属性を使用してイベントをフィルタリングできます。 + + +{% /if %} + +### 制限事項 {% #limitations %} + +#### 発生元が割り当てられていないイベント {% #events-without-an-attributed-origin %} + +一部のイベントには関連するハンドリングスタックがないため、発生元に割り当てることができません。 + +- 自動的に収集されたアクションイベント +- XHR および Fetch 以外のリソースイベント +- 自動的に収集されたビューイベント +- CORS や CSP の違反 + +#### 複数マイクロフロントエンド間でのソースマップ解決 {% #source-map-resolution-across-micro-frontends %} + +スタックトレース内に複数のマイクロフロントエンドのフレームが含まれている場合、イベントは、(エラー送出元の) 最上位フレームから、単一の `service` と `version` を受け取ります。その単一のサービスではイベントのソースマップが解決されるため、他のマイクロフロントエンドのフレームは、それぞれの `service` の下でソースマップが正しくアップロードされていた場合でも、縮小化されたままになります。 + +どのマイクロフロントエンドのソースマップを使用するかを制御するには、[手動割り当て](#manual-service-and-version-attribution)アプローチを使用し、`beforeSend` により `event.service` と `event.version` を設定します。縮小化解除されるのは、選択されたマイクロフロントエンドに属するフレームだけです。 + +### Datadog でマイクロフロントエンドデータを探索する {% #explore-micro-frontend-data-in-datadog %} + +セットアップ後、RUM イベントの `service` と `version` により、どのマイクロフロントエンドが各イベントを生成したかが特定されます。これらの属性は Datadog のさまざまな場所で使用されます。 + +- **サイドパネル**: `service` と `version` の属性は、RUM エクスプローラーのセッション、ビュー、エラー、リソース、アクション、長時間タスクのサイドパネルに表示されます。 +- **RUM サマリーダッシュボード**: RUM サマリーダッシュボードで `service` と `version` を使用することにより、パフォーマンスメトリクスをフィルタリングしてそのスコープを限定し、特定のマイクロフロントエンドに絞り込みます。 +- **カスタムダッシュボード**: `service` と `version` を使用することにより、各マイクロフロントエンドを個別にモニターできるダッシュボードを作成します。 + +各マイクロフロントエンドを表す `service` と `version` のタグは、以下の[無制限 RUM][24] メトリクスにも含まれています。 + +- `rum.measure.error` +- `rum.measure.operation` +- `rum.measure.operation.duration` + +[1]: /ja/real_user_monitoring/application_monitoring/browser/data_collected/ +[2]: /ja/real_user_monitoring/application_monitoring/browser/monitoring_page_performance/ +[3]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v2170 +[4]: /ja/real_user_monitoring/application_monitoring/browser/setup/ +[5]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v2130 +[6]: https://developer.mozilla.org/en-US/docs/Web/API/Location +[7]: https://developer.mozilla.org/en-US/docs/Web/API/Event +[8]: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest +[9]: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming +[10]: https://developer.mozilla.org/en-US/docs/Web/API/Request +[11]: https://developer.mozilla.org/en-US/docs/Web/API/Response +[12]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error +[13]: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming +[14]: /ja/real_user_monitoring/guide/enrich-and-control-rum-data +[15]: https://github.com/DataDog/browser-sdk/blob/main/packages/rum-core/src/rumEvent.types.ts +[16]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v4130 +[17]: /ja/data_security/real_user_monitoring/#browser-rum-use-of-cookies +[18]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage +[19]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v5280 +[20]: /ja/real_user_monitoring/application_monitoring/browser/advanced_configuration#override-default-rum-view-names +[21]: https://module-federation.io/ +[22]: https://github.com/DataDog/build-plugins?tab=readme-ov-file#usage +[23]: https://github.com/DataDog/build-plugins +[24]: /ja/real_user_monitoring/rum_without_limits/ \ No newline at end of file diff --git a/content/ja/real_user_monitoring/guide/proxy-rum-data.mdoc.md b/content/ja/real_user_monitoring/guide/proxy-rum-data.mdoc.md new file mode 100644 index 00000000000..8ce0d61c6c1 --- /dev/null +++ b/content/ja/real_user_monitoring/guide/proxy-rum-data.mdoc.md @@ -0,0 +1,233 @@ +--- +aliases: +- /ja/real_user_monitoring/faq/proxy_rum_data/ +content_filters: +- label: SDK source + option_group_id: rum_browser_sdk_source_options + trait_id: lib_src +- option_group_id: rum_browser_sdk_version_for_proxying_options + trait_id: rum_browser_sdk_version +description: SDK のソースオプションおよびバージョン固有の設定を使用して、カスタムネットワークルーティングのためにブラウザ RUM データのプロキシ経由の送信を構成します。 +further_reading: +- link: /real_user_monitoring/ + tag: ドキュメント + text: Real User Monitoring について +title: ブラウザの RUM データをプロキシする +--- +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +{% alert level="danger" %} +プロキシ設定のセキュリティ脆弱性を回避するために、Browser SDK `4.34.0` 以降にアップグレードしてください。 +{% /alert %} +{% /if %} + +## 概要 {% #overview %} + +RUM ブラウザ SDK は、プロキシを介してリクエストを送信するように構成できます。SDK の `proxy` [初期化パラメータ][1] を `https://www.example-proxy.com/any-endpoint` のような URL に設定すると、すべての RUM データが POST メソッドを使用してその URL に送信されます。RUM データは、プロキシから Datadog に転送する必要があります。 + +## 前提条件プロキシ設定 {% #prerequisite-proxy-setup %} + +リクエストを Datadog に正常に転送するには、プロキシが次の要件を満たしている必要があります。 + +1. [Datadog インテイク URL を構築します](#build-the-datadog-intake-url)。 +2. 正確な geoIP のために、リクエストクライアント IP アドレスを含む `X-Forwarded-For` ヘッダーを追加します。 +3. POST メソッドで Datadog インテーク URL にリクエストを転送します。 +4. リクエスト本文は変更しないでください。 + +{% alert level="warning" %} +- セキュリティ上の理由から、`cookie` ヘッダーなど、機密情報を含む可能性のある HTTP ヘッダーは削除してください。 +- リクエストボディにはバイナリデータを含めることができ、文字列に変換してはいけません。プロキシの実装が変換なしで生のボディを転送することを確認してください。 +- プロキシの実装が悪意のあるアクターが異なるサーバーにリクエストを送信することを許可しないことを確認してください。たとえば: `https://browser-intake-datadoghq.com.malicious.com`。 +{% /alert %} + +### Datadog インテイク URL {% #build-the-datadog-intake-url %} を構築します。 + +Datadog インテイク URL は `/` の形式である必要があります (例: `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser&...`)。 + +{% table %} +--- +* インテイクオリジン +* + Datadog インテイクオリジンは、あなたの `site` [初期化パラメータ][1] に対応します。サイトパラメーターに対応する Datadog インテークオリジンは、プロキシ実装で定義する必要があります。 + + {% site-region region="us" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.com`. + {% /site-region %} + + {% site-region region="us3" %} + The intake origin for your Datadog site is `https://browser-intake-us3-datadoghq.com`. + {% /site-region %} + + {% site-region region="us5" %} + The intake origin for your Datadog site is `https://browser-intake-us5-datadoghq.com`. + {% /site-region %} + + {% site-region region="eu" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.eu`. + {% /site-region %} + + {% site-region region="ap1" %} + The intake origin for your Datadog site is `https://browser-intake-ap1-datadoghq.com`. + {% /site-region %} + + {% site-region region="ap2" %} + The intake origin for your Datadog site is `https://browser-intake-ap2-datadoghq.com`. + {% /site-region %} + + {% site-region region="gov" %} + The intake origin for your Datadog site is `https://browser-intake-ddog-gov.com`. + {% /site-region %} + + {% site-region region="gov2" %} + The intake origin for your Datadog site is `https://browser-intake-us2-ddog-gov.com`. + {% /site-region %} +--- +* パス +* + パスには API バージョンと製品が含まれています (例えば、RUM データの場合は `/api/v2/rum`、セッションリプレイデータの場合は `/api/v2/replay`)。 + + The path for each request can be accessed in the request's `ddforward` parameter (for example, `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`). +--- +* パラメーター +* + リクエストパラメータ (例えば、`ddsource=browser&...`) は、リクエストの `ddforward` パラメータからアクセスできます (例えば、`https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`)。 + +{% /table %} + +## SDK セットアップ {% #sdk-setup %} + + +{% if includes($rum_browser_sdk_version, ["gte_5_4_0", "gte_4_34_0"]) %} + +`proxy`初期化パラメーターにプロキシのURLを設定してください: + + +{% if equals($lib_src, "npm") %} + +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: '', +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '', + }); +}); +``` + +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '' + }); +``` +{% /if %} + + +RUM Browser SDK は、すべてのリクエストに `ddforward` クエリパラメーターを追加します。このクエリパラメーターには、すべてのデータが転送されるべきURLパスとパラメーターが含まれています。 + +例えば、`site`が`datadoghq.eu`に設定され、`proxy`が`https://example.org/datadog-intake-proxy`に設定されている場合、RUM Browser SDK は次のような URL にリクエストを送信します:`https://example.org/datadog-intake-proxy?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`。プロキシはリクエストを`https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser`に転送します。 + + +{% if equals($rum_browser_sdk_version, "gte_5_4_0") %} +### `proxy` 初期化パラメーター {% #passing-a-function-to-the-proxy-initialization-parameter %} に関数を渡す + +`proxy` 初期化パラメーターは関数入力もサポートしています。この関数を使用すると、パスとパラメータをプロキシ URL に追加する方法をより制御できます。 + +この関数は、次のプロパティを持つオブジェクトを受け取ります: + +- `path`: Datadog リクエストのパス (例: `/api/v2/rum`) +- `parameters`: Datadog リクエストのパラメータ (例: `ddsource=browser&...`) + + +{% if equals($lib_src, "npm") %} + +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, + }) +}) +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}` + }); +``` +{% /if %} + + +**注:** +- 一部のプライバシーブロッカーはすでにインテーク [URL パターン][2] をターゲットにしているため、プロキシ URL を構築する際にそれを考慮することをお勧めします。 +- `proxy` 関数は各リクエストに対して呼び出されるため、重い計算を避けるべきです。 +- **JSP ウェブアプリケーション** は、これらのパラメータをブラウザに適切に伝播させるために `\` エスケープ文字を使用する必要があります。たとえば、次のとおりです。 + ```javascript + proxy: (options) => 'http://proxyURL:proxyPort\${options.path}?\${options.parameters}', + ``` +{% /if %} + + +{% /if %} + + + +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +Browser SDK v4.34.0 より前は、`proxyUrl` 初期化パラメータが使用され、Datadog インテークオリジンは `ddforward` 属性に含まれていました。プロキシ実装はこのホストの検証を担当しており、これを行わないとさまざまな脆弱性が発生しました。 + +Datadog インテークオリジンは、セキュリティを確保するために、プロキシ実装で定義する必要があります。 + +**セキュリティの脆弱性を避けるために、Browser SDK `4.34.0` 以降にアップグレードする必要があります。** +{% /if %} + + +[1]: /ja/real_user_monitoring/application_monitoring/browser/setup/client/?tab=rum#initialization-parameters +[2]: https://github.com/easylist/easylist/blob/997fb6533c719a015c21723b34e0cedefcc0d83d/easyprivacy/easyprivacy_general.txt#L3840 \ No newline at end of file diff --git a/content/ja/security/code_security/static_analysis/static_analysis_rules/_index.md b/content/ja/security/code_security/static_analysis/static_analysis_rules/_index.md index ccc8e106233..bbf244f2105 100644 --- a/content/ja/security/code_security/static_analysis/static_analysis_rules/_index.md +++ b/content/ja/security/code_security/static_analysis/static_analysis_rules/_index.md @@ -1,269 +1,333 @@ --- -title: SAST ルール -description: 静的コード解析向けの複数言語に対応したルールを表示します。 aliases: -- /continuous_integration/static_analysis/rules -- /static_analysis/rules -- /code_analysis/static_analysis_rules -- /security/code_security/static_analysis_rules +- /ja/continuous_integration/static_analysis/rules +- /ja/static_analysis/rules +- /ja/code_analysis/static_analysis_rules +- /ja/security/code_security/static_analysis_rules +cascade: + banner: + link: + name: Datadog Code Security + url: https://www.datadoghq.com/product/code-security/ + title: シームレスな連携。 Datadog Code Security をお試しください + modal: + bottom_boxes: + - cta_title: 拡張機能のダウンロード + cta_url: https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode + icon: vscode + subtitle: VS Code エディターで
    直接コードの脆弱性を特定する + title: VS Code 拡張機能 + - cta_title: プラグインのダウンロード + cta_url: https://plugins.jetbrains.com/plugin/19495-datadog + icon: jetbrains + subtitle: JetBrains 製品で
    直接コードの脆弱性を特定する + title: JetBrains プラグイン + footer: + link: + name: Datadog Code Security + url: https://www.datadoghq.com/product/code-security/ + text: Datadog Code Security を使用して、開発プロセスのあらゆるステップでコードの問題を検出します + title: このルールを試して、Datadog Code Security でコードを分析してみましょう + top_box: + footer: 詳細については、Code Security のドキュメントをお読みください + steps: + - リポジトリのルートに、上記内容を含む static-analysis.datadog.yml を作成します + - 無料の IDE Plugins を使用するか、Code Security スキャンを CI パイプラインに追加します + - コードに関するフィードバックを受け取る + title: このルールの使用方法 +description: 複数言語に対応した Static Code Analysis のルールを表示します。 +further_reading: +- link: /security/code_security/ + tag: ドキュメント + text: Datadog Code Security について学びましょう is_beta: false -type: static-analysis rulesets: + apex-code-style: + description: '確立されたコーディング規約に従った Apex のルールを記述するための Code Security ルールです。 + + ' + title: Apex コードスタイルとベストプラクティスを徹底するためのルールです。 + apex-security: + description: 'Apex コードのセキュリティ問題を発見するためのルールです。 + + ' + title: Apex のセキュリティルール + bash-code-quality: + description: 'Bash スクリプトのコード品質を強制するルールです。 + + ' + title: Bash スクリプトのコード品質ルールです。 + bash-security: + description: 'Bash スクリプトのセキュリティベストプラクティスを徹底するためのルールです。 + + ' + title: Bash スクリプトのセキュリティルール csharp-best-practices: - title: "C# のベスト プラクティス" - description: | - C# のベスト プラクティスを強制するルール。 + description: 'C# のベストプラクティスを徹底するためのルールです。 + + ' + title: C# のベストプラクティス csharp-code-style: - title: "C# のコード スタイル パターンに従う" - description: | - C# のコード スタイルを強制するルール。 + description: 'C# コードスタイルを強制するルールです。 + + ' + title: C# コードスタイルパターンに従いましょう csharp-inclusive: - title: "C# でインクルーシブな言語を使用する" - description: | - C# コードをよりインクルーシブにするためのルール。 + description: 'C# コードをよりインクルーシブにするためのルールです。 + + ' + title: C# でインクルーシブな表現を使用する csharp-security: - title: "安全でセキュアな C# コードを書く" - description: | - C# コードのセキュリティ上の問題の検出に特化したルール。 + description: 'C# コードのセキュリティ問題を発見するためのルールです。 + + ' + title: 安全でセキュアな C# コードを書く docker-best-practices: - title: Docker のベスト プラクティスに従う - description: | - Docker の使用に関するベスト プラクティス。 + description: 'Docker を使うためのベストプラクティス。 + + ' + title: Docker を使用する際のベストプラクティスに従う github-actions: - title: GitHub Actions をセキュアにする - description: | - GitHub Actions をチェックし、権限やバージョン固定などの危険なパターンを検出するルール。 + description: 'GitHub Actions をチェックし、権限やバージョンピンニングなどの安全でないパターンを検出するためのルールです。 + + ' + title: GitHub Actions を安全に保つ go-best-practices: - title: Go のベスト プラクティス - description: | - Go コードの記述をより高速かつ容易にするためのルール。コード スタイルからバグ防止まで、開発者が高性能で、保守性と効率性に優れた Go コードを書くのを支援します。 + description: 'Go コードをより速く、簡単に書くためのルールです。コードスタイルからバグの防止まで、このルールセットは、開発者がパフォーマンスに優れ、保守性が高く、効率的な + Go コードを書くための支援をします。 + + ' + title: Go のベストプラクティス go-inclusive: - title: Go でインクルーシブな言語を使用する - description: | - Go コードの言い回しの問題をチェックするルール。 + description: 'Go コードの表現に問題がないか確認します。 + + ' + title: Go でインクルーシブな表現を使用する go-security: - title: Go コードが安全かつセキュアであることを確保する - description: | - Go のコード ベースで一般的なセキュリティ上の問題 (SQL インジェクション、XSS、シェル インジェクションなど) を検出するルール。 + description: 'Go コードベースにおける一般的なセキュリティ問題 (SQL インジェクション、XSS、シェルインジェクションなど) を検出します。 + + ' + title: Go コードの安全性とセキュリティを確保 java-best-practices: - title: Java のベスト プラクティスに従う - description: | - Java のベスト プラクティスを強制するルール。 + description: 'Java のベストプラクティスを徹底するためのルールです。 + + ' + title: Java におけるベストプラクティスに従う java-code-style: - title: Java のコード スタイル パターンに従う - description: | - Java のコード スタイルを強制するルール。 + description: 'Java コードスタイルを強制するルールです。 + + ' + title: Java コードスタイルのパターンに従う java-inclusive: - title: Java でインクルーシブな言語を使用する - description: | - コードやコメントにおける不適切な表現を避けるための Java 向けのルール。 + description: 'Java のコードとコメントで不適切な表現を避けるためのルールです。 + + ' + title: Java でインクルーシブな表現を使用する java-security: - title: Java コードのセキュリティを確保する - description: | - Java コードのセキュリティ上の問題の検出に特化したルール。 + description: 'Java コードのセキュリティ問題を発見するためのルールです。 + + ' + title: Java コードが安全であることを確認する javascript-best-practices: - title: JavaScript コード作成のベスト プラクティスに従う - description: | - JavaScript のベスト プラクティスを強制するルール。 + description: 'JavaScript のベストプラクティスを強制するためのルール。 + + ' + title: JavaScript コードを書くためのベストプラクティスに従う javascript-browser-security: - title: JavaScript Web アプリケーション向けのセキュリティ ルール - description: | - JavaScript Web アプリケーションのセキュリティ上の問題の検出に特化したルール。 + description: 'JavaScript Web アプリケーションのセキュリティ問題を見つけることに焦点を当てたルール。 + + ' + title: JavaScript Web アプリケーションのセキュリティルール javascript-code-style: - title: JavaScript のコード スタイルを強制する - description: | - JavaScript のコード スタイルを強制するルール。 + description: 'JavaScript コードスタイルを強制するためのルール。 + + ' + title: JavaScript コードスタイルの強制 javascript-common-security: - title: JavaScript の一般的なセキュリティ ルール - description: | - JavaScript コードのセキュリティ上の問題の検出に特化したルール。 + description: 'JavaScript コードのセキュリティ問題を見つけることに焦点を当てたルール。 + + ' + title: JavaScript の一般的なセキュリティルール javascript-express: - title: Express.js のベスト プラクティスとセキュリティをチェックする - description: | - Express.js のベスト プラクティスとセキュリティ向けのルール。 + description: 'Express.js のベストプラクティスとセキュリティに特化したルール。 + + ' + title: チェックExpress.js のベストプラクティスとセキュリティをチェックする javascript-inclusive: - title: JavaScript コードの表現上の問題をチェックする - description: | - コードやコメントにおける不適切な表現を避けるための JavaScript 向けのルール。 + description: 'JavaScript のコードとコメントで不適切な表現を避けるためのルール。 + + ' + title: 表現に問題がないか JavaScript コードをチェックする javascript-node-security: - title: Node における潜在的なセキュリティ ホット スポットを特定する - description: | - Node における潜在的なセキュリティ ホット スポットを特定するルール。追加のトリアージを要する誤検知が含まれる場合があります。 + description: 'Node における潜在的なセキュリティホットスポットを特定するためのルールです。これには、さらなるトリアージが必要な誤検知が含まれる場合があります。 + + ' + title: Node における潜在的なセキュリティホットスポットを特定する jsx-react: - title: React 固有のリント ルール - description: | - このプラグインは React のベスト プラクティスを強制する `recommended` 構成をエクスポートします。 + description: 'このプラグインは、React のグッドプラクティスを強制する `recommended` 構成をエクスポートします。 + + ' + title: React 固有のリンティングルール kotlin-best-practices: - title: Kotlin コード作成のベスト プラクティスに従う - description: | - Kotlin のベスト プラクティスを強制するルール。 + description: 'Kotlin のベストプラクティスを徹底するためのルールです。 + + ' + title: Kotlin コードを書くためのベストプラクティスに従う kotlin-code-style: - title: Kotlin のコード スタイルを強制する - description: | - Kotlin のコード スタイルを強制するルール。 + description: 'Kotlin コードスタイルを強制するためのルール。 + + ' + title: Kotlin コードスタイルを強制する。 kotlin-security: - title: 安全な Kotlin コーディングを強制する - description: | - Kotlin コードのセキュリティ上の問題の検出に特化したルール。 + description: 'Kotlin コードのセキュリティ問題を発見するためのルール。 + + ' + title: 安全な Kotlin コーディングを強制する。 php-best-practices: - title: PHP コード作成のベスト プラクティスに従う - description: | - コード スタイルの改善、バグ防止、高性能・保守性・効率性に優れた PHP コードの実現のために、PHP のベスト プラクティスを強制するルール。 + description: 'PHP のベストプラクティスを徹底し、コードスタイルを向上させ、バグを防止し、パフォーマンス、保守性、効率性に優れた PHP コードを書くためのルールです。 + + ' + title: PHP コードの記述におけるベストプラクティスに従う php-code-style: - title: PHP のコード スタイルを強制する - description: | - PHP のコード スタイルを強制するルール。 + description: 'PHP コードスタイルを強制するルールです。 + + ' + title: PHP コードスタイルの強化 php-security: - title: PHP 向けのセキュリティ ルール - description: | - PHP コードのセキュリティ上の問題の検出に特化したルール。 + description: 'PHP コードのセキュリティ問題を発見するためのルールです。 + + ' + title: PHP のセキュリティルール python-best-practices: - title: Python コード作成のベスト プラクティスに従う - description: | - 効率的でバグのないコードを書くための Python のベスト プラクティス。 + description: '効率的でバグのないコードを書くための Python のベストプラクティス。 + + ' + title: Python コードを書くためのベストプラクティスに従う python-code-style: - title: Python のコード スタイルを強制する - description: | - Python のコード スタイルを強制するルール。 + description: 'Python コードスタイルを強制するルール。 + + ' + title: Python コードスタイルの強制 python-design: - title: Python プログラムの構造をチェックする - description: | - 入れ子のループなどを含む、Python プログラムの構造をチェックするルール。 + description: 'ネストされたループのようなものを含む、Python プログラムの構造をチェックするためのルール。 + + ' + title: Python プログラムの構造チェック python-django: - title: Django のベスト プラクティスとセキュリティをチェックする - description: | - Django のベスト プラクティスとセキュリティ向けのルール。 + description: 'Django のベストプラクティスとセキュリティに特化したルール。 + + ' + title: Django のベストプラクティスとセキュリティをチェックする python-flask: - title: Flask のベスト プラクティスとセキュリティをチェックする - description: | - Flask のベスト プラクティスとセキュリティ向けのルール。 + description: 'Flask のベストプラクティスとセキュリティに特化したルール。 + + ' + title: Flask のベストプラクティスとセキュリティをチェックする python-inclusive: - title: Python コードの表現上の問題をチェックする - description: | - コードやコメントにおける不適切な表現を避けるための Python 向けのルール。 - python-pandas: - title: pandas を用いたデータ サイエンスの推奨プラクティス - description: | - pandas コードが適切に使用されているかをチェックするためのルール セット。 + description: 'Python のコードとコメントで不適切な表現を避けるためのルール。 - - `import` 宣言がコーディング ガイドラインに従っていることを保証します。 - - 非推奨のコードやメソッドを避けます。 - - 可能な限り非効率なコードを避けます。 + ' + title: 表現に問題がないか Python コードをチェックする + python-pandas: + description: "pandas コードが適切に使用されていることを確認するための一連のルール。\n\n - `import` 宣言がコーディングガイドラインに従っていることを確認する。\n\ + \ - 非推奨のコードやメソッドを避ける。\n - 可能な限り非効率なコードを避ける。\n" + title: pandas を使ったデータサイエンスのグッドプラクティス python-security: - title: Python コードが安全かつセキュアであることを確保する - description: | - Python コードにおけるセキュリティおよび脆弱性の問題の検出に特化したルール。OWASP Top 10 や SANS Top 25 に含まれる問題も対象にします。 - - - 不適切な暗号化およびハッシュ プロトコルの使用 - - アクセス コントロールの欠如 - - セキュリティ 構成不備 - - SQL インジェクション - - ハード コーディングされた認証情報 - - シェル インジェクション - - 安全でないデシリアライゼーション + description: "OWASP10 および SANS25 に記載されているものを含め、Python コード内のセキュリティや脆弱性の問題を発見することに焦点を当てたルール。\n\ + \n - 粗悪な暗号化およびハッシュ化プロトコルの使用\n - アクセス制御の欠如\n - セキュリティの誤構成\n - SQL インジェクション\n\ + \ - 資格情報のハードコーディング\n - シェルインジェクション\n - 安全でない逆シリアル化\n" + title: Python コードが安全でセキュアなことを確認する rails-best-practices: + description: 'Ruby on Rails コードを書くためのベストプラクティス。 + + ' title: Ruby on Rails コミュニティで広く採用されているパターン - description: | - Ruby on Rails コードを書くためのベスト プラクティス。 ruby-best-practices: - title: Ruby のベスト プラクティスに従う - description: | - Ruby のベスト プラクティスを強制するルール。 + description: 'Ruby のベストプラクティスを徹底するためのルールです。 + + ' + title: Ruby におけるベストプラクティスに従う ruby-code-style: - title: Ruby のコード スタイルを強制する - description: | - 確立されたコーディング標準に準拠した Ruby コード スタイルのための Code Security のルール。 + description: 'Code Security のルールは、確立されたコーディング規約に従う Ruby のルールを作成するためのものです。 + + ' + title: Ruby コードスタイルを強制するルールです。 ruby-inclusive: + description: 'インクルーシブな Ruby コードを書く + + ' title: インクルーシブな Ruby コードのためのルール - description: | - インクルーシブな Ruby コードを書く ruby-security: - title: Ruby 向けのセキュリティ ルール - description: | - Ruby コードのセキュリティ上の問題の検出に特化したルール。 + description: 'Ruby コードのセキュリティ問題を発見するためのルールです。 + + ' + title: Ruby のセキュリティルール + swift-code-style: + description: 'Code Security のルールは、確立されたコーディング規約に従う Swift のルールを作成するためのものです。 + + ' + title: Swift コードスタイルとベストプラクティスを強制するためのルール。 + swift-security: + description: 'Swift コードのセキュリティ問題を発見するためのルール。 + + ' + title: Swift のセキュリティルール。 terraform-aws: + description: 'AWS のための Terraform ベストプラクティスを強制するためのルール。 + + ' title: Terraform AWS - description: | - AWS 向けの Terraform ベスト プラクティスを強制するルール。 tsx-react: + description: 'このプラグインは、React のグッドプラクティスを強制する `recommended` 構成をエクスポートします。 + + ' title: TypeScript React のコード品質 - description: | - このプラグインは React のベスト プラクティスを強制する `recommended` 構成をエクスポートします。 typescript-best-practices: - title: TypeScript コード作成のベスト プラクティスに従う - description: | - TypeScript のベスト プラクティスを強制するルール。 + description: 'TypeScript のベストプラクティスを強制するためのルール。 + + ' + title: TypeScript コードを書くためのベストプラクティスに従う typescript-browser-security: - title: TypeScript Web アプリケーション向けのセキュリティ ルール - description: | - TypeScript Web アプリケーションにおけるセキュリティ上の問題の検出に特化したルール。 + description: 'TypeScript Web アプリケーションのセキュリティ問題を見つけることに焦点を当てたルール。 + + ' + title: TypeScript Web アプリケーションのセキュリティルール typescript-code-style: - title: TypeScript の意見の強いコード パターン - description: | - 現代的な TypeScript コード ベースにおけるベスト プラクティスと考えられるが、プログラム ロジックには影響しないルール。これらのルールは、よりシンプルなコード パターンの適用について一般に意見が強いものです。 + description: '現代の TypeScript コードベースにおけるベストプラクティスと見なされるルールですが、プログラムのロジックには影響しません。これらのルールは、一般的によりシンプルなコードパターンを強制することに関して意見が分かれています。 + + ' + title: TypeScript の意見主義的コードパターン typescript-common-security: - title: TypeScript の一般的なセキュリティ ルール - description: | - TypeScript コードのセキュリティ上の問題の検出に特化したルール。 + description: 'TypeScript コードのセキュリティ問題を見つけることに焦点を当てたルール。 + + ' + title: TypeScript の一般的なセキュリティルール typescript-express: - title: Express.js TypeScript のベスト プラクティスとセキュリティをチェックする - description: | - Express.js TypeScript のベスト プラクティスとセキュリティ向けのルール。 + description: 'Express.js TypeScript のベストプラクティスとセキュリティに特化したルール。 + + ' + title: Express.js TypeScript のベストプラクティスとセキュリティをチェックする typescript-inclusive: - title: TypeScript コードの表現上の問題をチェックする - description: | - コードやコメントにおける不適切な表現を避けるための TypeScript 向けのルール。 - typescript-node-security: - title: Node における潜在的なセキュリティ ホット スポットを特定する - description: | - Node における潜在的なセキュリティ ホット スポットを特定するルール。追加のトリアージを要する誤検知が含まれる場合があります。 -cascade: - modal: - title: このルールを試し、Datadog Code Security でコードを解析する - top_box: - title: このルールの使用方法 - steps: - - リポジトリのルートに、上記の内容で static-analysis.datadog.yml を作成する - - 無償の IDE プラグインを使用するか、CI パイプラインに Code Security のスキャンを追加する - - コードに関するフィードバックを受け取る - footer: 詳細については、Code Security ドキュメント を参照してください - bottom_boxes: - - title: VS Code Extension - icon: vscode - subtitle: あなたの
    VS Code エディタ内で直接コードの脆弱性を特定 - cta_title: Download Extension - cta_url: "https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode" - - title: JetBrains Plugin - icon: jetbrains - subtitle: JetBrains 製品内で直接コードの脆弱性を特定 - cta_title: Download Plugin - cta_url: "https://plugins.jetbrains.com/plugin/19495-datadog" - footer: - text: 開発プロセスのあらゆる段階でコードの問題を検出するために Datadog Code Security を使用する - link: - name: Datadog Code Security - url: "https://www.datadoghq.com/product/code-security/" + description: 'TypeScript のコードやコメントにおける不適切な表現を避けるためのルールです。 - banner: - title: シームレスな統合。 Datadog Code Security をお試しください - link: - name: Datadog Code Security - url: "https://www.datadoghq.com/product/code-security/" + ' + title: TypeScript コードの表現の問題をチェック + typescript-node-security: + description: 'Node における潜在的なセキュリティホットスポットを特定するためのルールです。これには、さらなるトリアージが必要な誤検知が含まれる場合があります。 -further_reading: - - link: /security/code_security/ - tag: ドキュメント - text: Datadog Code Security について学ぶ + ' + title: Node における潜在的なセキュリティホットスポットを特定する +title: SAST ルール +type: static-analysis --- - -{{% site-region region="gov" %}} +{{% site-region region="gov,gov2" %}}
    - Code Security は {{< region-param key="dd_site_name" >}} サイトでは利用できません。 + Code Security は、このサイトでは利用 {{< region-param key="dd_site_name" >}} できません。
    {{% /site-region %}} -## 概要 +## 概要 {#overview} -Datadog Static Code Analysis は、コード ベースにおけるセキュリティ 脆弱性、バグ、保守性の問題を検出するのに役立つ、すぐに使えるルールを提供します。詳細は [セットアップ ドキュメント][1] を参照してください。 +Datadog 静的コード分析は、コードベース内のセキュリティ脆弱性、バグ、および保守性の問題を検出するための即時利用可能なルールを提供します。詳細については、[Setup documentation][1] を参照してください。 -[1]: /security/code_security/static_analysis/setup/ +[1]: /ja/security/code_security/static_analysis/setup/ \ No newline at end of file diff --git a/content/ja/standard-attributes/_index.md b/content/ja/standard-attributes/_index.md index f0ec17dc3f3..96c799b3e3c 100644 --- a/content/ja/standard-attributes/_index.md +++ b/content/ja/standard-attributes/_index.md @@ -1,1612 +1,1710 @@ --- attributes: -- description: メトリクスに定義されている送信元ホストの名前。Datadog は Datadog 内の一致するホストから対応するホストタグを自動的に取得し、そしてそれらをあなたのテレメトリーに適用します。Agent +- description: メトリクスで定義されている発信元ホストの名前です。Datadog は、Datadog 内の一致するホストから対応するホストタグを自動的に取得し、それをテレメトリに適用します。Agent はこの値を自動的に設定します。 - domain: 予約済み - name: ホスト + domain: Reserved + name: host product_source: - icon-log - icon-apm - type: 文字列 + type: string - description: 送信元デバイスのタイプ。 - domain: 予約済み - name: デバイス + domain: Reserved + name: device product_source: - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 -- description: これは、インテグレーション名 (データが生じる技術) に対応します。インテグレーション名と一致する場合、対応するパーサーとファセットが自動的にインストールされます。例えば、`nginx`、`postgresql` + type: string +- description: これは、データの発生元技術である統合名に対応します。統合名と一致する場合、Datadog は対応するパーサーとファセットを自動的にインストールします。たとえば、`nginx`、`postgresql` などです。 - domain: 予約済み + domain: Reserved name: source product_source: - icon-log - type: 文字列 -- description: これはデータのレベルや重大度に対応します。ログについては、[ログパターン](/logs/explorer/patterns/)を定義するために使用され、ログ管理 - UI に専用のレイアウトがあります。 - domain: 予約済み + type: string +- description: これは、データのレベルまたは重大度に対応します。ログの場合、[ログパターン](/logs/explorer/patterns/)を定義するために使用され、Log + Management UI には専用のレイアウトがあります。 + domain: Reserved name: status product_source: - icon-log - icon-apm - type: 文字列 -- description: データを生成しているアプリケーションまたはサービスの [統一サービス名](/getting_started/tagging/unified_service_tagging/) - で、ユーザー セッションを相関付けるために使用します。APM から他の製品に切り替えるためにも使用されるため、APM と他の製品の両方を使用する場合は同じ値を定義してください。RUM - Browser SDK では、service はブラウザー アプリケーション内で特定の機能を提供する、チームによって構築されたページの集合を表します。 [手動ビュー - トラッキング](/real_user_monitoring/application_monitoring/browser/advanced_configuration/?tab=npm#override-default-rum-view-names) - を使用して、Web ページを service に割り当てることができます。 - domain: 予約済み - name: サービス + type: string +- description: データを生成しているアプリケーションまたはサービスのための[統一サービス名](/getting_started/tagging/unified_service_tagging/)で、ユーザーセッションを相関させるために使用されます。APM + から他の製品に切り替えるために使用されるため、両方の製品を使用する際には同じ値を定義してください。RUM Browser SDK では、サービスは特定の機能を提供するチームによって構築されたページ群を指します。[手動ビュー追跡](/real_user_monitoring/application_monitoring/browser/advanced_configuration/?tab=npm#override-default-rum-view-names)を使用して、ウェブページをサービスに割り当てることができます。 + domain: Reserved + name: service product_source: - icon-log - icon-rum - icon-apm - android - ios - - ブラウザ + - browser - roku - type: 文字列 -- description: トレースに使用されるトレース ID。ログを含む他のデータとトレースを相関付けるために使用されます。 - domain: 予約済み + type: string +- description: トレースに使用されるトレース ID です。これは、トレースを、ログを含む他のデータと相関させるために使用されます。 + domain: Reserved name: trace_id product_source: - icon-log - icon-apm - type: 数値 + type: number - description: Logs Live Tail でハイライトして表示されるログエントリの本文。全文検索のためにインデックス化されています。 - domain: 予約済み + domain: Reserved name: message product_source: - icon-log - type: 文字列 + type: string - description: ログの送信時にクライアントからサーバーに転送された合計バイト数。 - domain: ネットワーク通信 + domain: Network communications name: network.bytes_read product_source: - icon-log - type: 数値 + type: number - description: ログの送信時にサーバーからクライアントに転送された合計バイト数。 - domain: ネットワーク通信 + domain: Network communications name: network.bytes_written product_source: - icon-log - type: 数値 + type: number - description: 国名。 - domain: 位置情報 + domain: Geolocation name: network.client.geoip.country.name product_source: - icon-log - type: 文字列 -- description: '国の [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) - (例: アメリカ合衆国は `US`、フランスは `FR`)。' - domain: 位置情報 + type: string +- description: 国の [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) + (たとえば、アメリカなら `US`、フランスなら `FR`)。 + domain: Geolocation name: network.client.geoip.country.iso_code product_source: - icon-log - type: 文字列 + type: string - description: 大陸の ISO コード (`EU`、`AS`、`NA`、`AF`、`AN`、`SA`、`OC`)。 - domain: 位置情報 + domain: Geolocation name: network.client.geoip.continent.code product_source: - icon-log - type: 文字列 + type: string - description: 大陸名 (`Europe`、`Australia`、`North America`、`Africa`、`Antartica`、`South America`、`Oceania`)。 - domain: 位置情報 + domain: Geolocation name: network.client.geoip.continent.name product_source: - icon-log - type: 文字列 + type: string - description: その国で最大規模の地方区分 (米国は `California` 州、フランスは `Sarthe` 県など)。 - domain: 位置情報 + domain: Geolocation name: network.client.geoip.subdivision.name product_source: - icon-log - type: 文字列 -- description: '国の第 1 レベルの行政区の [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) - (例: アメリカ合衆国では `CA`、フランスでは `SA` 県)。' - domain: 位置情報 + type: string +- description: 国の第1次行政区画レベルの [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) + (たとえば、アメリカなら `CA`、フランスなら `SA` 部門)。 + domain: Geolocation name: network.client.geoip.subdivision.iso_code product_source: - icon-log - type: 文字列 + type: string - description: 都市名 (`Paris`、`New York` など)。 - domain: 位置情報 + domain: Geolocation name: network.client.geoip.city.name product_source: - icon-log - type: 文字列 + type: string - description: リクエスト中のリソースにリンクした Web ページのアドレスを識別する HTTP ヘッダーフィールド。 domain: HTTP name: http.referer product_source: - icon-log - type: 文字列 + type: string - description: HTTP リクエストの ID。 domain: HTTP name: http.request_id product_source: - icon-log - type: 文字列 + type: string - description: URL の HTTP ホスト部分。 domain: HTTP, URL Details name: http.url_details.host product_source: - icon-log - icon-apm - type: 文字列 + type: string - description: URL の HTTP ポート部分。 domain: HTTP, URL Details name: http.url_details.port product_source: - icon-log - icon-apm - type: 数値 + type: number - description: URL の HTTP パス部分。 domain: HTTP, URL Details name: http.url_details.path product_source: - icon-log - icon-apm - type: 文字列 + type: string - description: クエリパラメーターの key/value 属性として分解された、URL の HTTP クエリ文字列部分。 domain: HTTP, URL Details name: http.url_details.queryString product_source: - icon-log - icon-apm - type: オブジェクト + type: object - description: URL のプロトコル名 (HTTP または HTTPS)。 domain: HTTP, URL Details name: http.url_details.scheme product_source: - icon-log - icon-apm - type: 文字列 + type: string - description: User-Agent によって報告された OS ファミリー。 domain: User-Agent name: http.useragent_details.os.family product_source: - icon-log - type: 文字列 + type: string - description: User-Agent によって報告されたブラウザファミリー。 domain: User-Agent name: http.useragent_details.browser.family product_source: - icon-log - type: 文字列 + type: string - description: User-Agent によって報告されたデバイスファミリー。 domain: User-Agent name: http.useragent_details.device.family product_source: - icon-log - type: 文字列 + type: string - description: ロガーの名前。 - domain: ソースコード + domain: Source code name: logger.name product_source: - icon-log - type: 文字列 + type: string - description: ログの生成時の現在のスレッドの名前。 - domain: ソースコード + domain: Source code name: logger.thread_name product_source: - icon-log - type: 文字列 + type: string - description: クラスメソッド名。 - domain: ソースコード + domain: Source code name: logger.method_name product_source: - icon-log - type: 文字列 + type: string - description: ロガーのバージョン。 - domain: ソースコード + domain: Source code name: logger.version product_source: - icon-log - type: 文字列 + type: string - description: エラーのタイプまたは種類 (場合によってはコード)。 - domain: ソースコード + domain: Source code name: error.kind product_source: - icon-log - type: 文字列 -- description: 接続先のデータベース名。例えば、 Java の場合、 `jdbc.url="jdbc:mysql://127.0.0.1:3306/customers"` - であれば、インスタンス名は `customers` です。 - domain: データベース + type: string +- description: 接続中のデータベースの名前。たとえば、Java で `jdbc.url="jdbc:mysql://127.0.0.1:3306/customers"` + の場合、インスタンス名は `customers` です。 + domain: Database name: db.instance product_source: - icon-apm - icon-log - type: 文字列 -- description: 指定されたデータベースタイプのデータベースステートメント。例えば、mySQL の場合は `'SELECT * FROM wuser_table';` - 、Redis の場合は `'SET mykey 'WuValue''` です。 - domain: データベース + type: string +- description: '指定されたデータベースタイプのデータベースステートメントです。たとえば、mySQL の場合: `''SELECT * FROM wuser_table'';`、Redis + の場合: `''SET mykey ''WuValue''''`。' + domain: Database name: db.statement product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: 処理を実行するユーザー。 - domain: データベース + domain: Database name: db.user product_source: - icon-apm - icon-log - type: 文字列 -- description: '**ナノ秒**単位の持続時間: HTTP 応答時間、データベースクエリ時間、レイテンシーなど。Datadog は、トレース検索のためのデフォルトのメジャーとしてこれを表示、使用するため、ログ内の任意の持続時間をこの属性に[再マップ](/logs/log_configuration/processors/#remapper)してください。' - domain: パフォーマンス + type: string +- description: '**nanoseconds** 単位の任意の種類の時間。HTTP 応答時間、データベースクエリ時間、レイテンシーなどがあります。[リマップ](/logs/log_configuration/processors/remapper) + して、ログ内のすべての期間をこの属性に割り当ててください。Datadog はこれをトレース検索のデフォルトの測定値として表示および使用します。' + domain: Performance name: duration product_source: - icon-log - type: 数値 + type: number - description: ユーザーの識別子。 - domain: ユーザー + domain: User name: usr.id product_source: - icon-log - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 + type: string - description: わかりやすい名前。 - domain: ユーザー + domain: User name: usr.name product_source: - icon-log - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 + type: string - description: ユーザーの電子メール。 - domain: ユーザー + domain: User name: usr.email product_source: - icon-log - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 + type: string - description: ホスト名。 - domain: Syslog とログシッパー + domain: Syslog and log shippers name: syslog.hostname product_source: - icon-log - type: 文字列 + type: string - description: アプリケーション名。通常は、予約済み属性 `service` に再マップされます。 - domain: Syslog とログシッパー + domain: Syslog and log shippers name: syslog.appname product_source: - icon-log - type: 文字列 + type: string - description: ログの重大度。通常は、予約済み属性 `status` に再マップされます。 - domain: Syslog とログシッパー + domain: Syslog and log shippers name: syslog.severity product_source: - icon-log - type: 数値 + type: number - description: ログのタイムスタンプ。通常は、予約済み属性 `date` に再マップされます。 - domain: Syslog とログシッパー + domain: Syslog and log shippers name: syslog.timestamp product_source: - icon-log - type: 文字列 + type: string - description: ログのソースが由来する環境名。 - domain: Syslog とログシッパー + domain: Syslog and log shippers name: syslog.env product_source: - icon-log - type: 文字列 + type: string - description: DNS のクエリ識別子。 domain: DNS name: dns.id product_source: - icon-log - type: 文字列 + type: string - description: クエリ対象のドメイン名。 domain: DNS name: dns.question.name product_source: - icon-log - type: 文字列 + type: string - description: DNS のクエリタイプを指定する [2 オクテットコード](https://en.wikipedia.org/wiki/List_of_DNS_record_types)。 domain: DNS name: dns.question.type product_source: - icon-log - type: 文字列 + type: string - description: DNS の質問で検索されるクラス (インターネットを使用する場合は IP など) 。 domain: DNS name: dns.question.class product_source: - icon-log - type: 文字列 + type: string - description: DNS 質問のバイトサイズ。 domain: DNS name: dns.question.size product_source: - icon-log - type: 数値 + type: number - description: DNS で回答する際の IP アドレス。 domain: DNS name: dns.answer.name product_source: - icon-log - type: 文字列 + type: string - description: DNS の回答タイプを指定する [2 オクテットコード](https://en.wikipedia.org/wiki/List_of_DNS_record_types)。 domain: DNS name: dns.answer.type product_source: - icon-log - type: 文字列 + type: string - description: DNS によって回答されるクラス。 domain: DNS name: dns.answer.class product_source: - icon-log - type: 文字列 + type: string - description: DNS 回答のバイトサイズ。 domain: DNS name: dns.answer.size product_source: - icon-log - type: 数値 + type: number - description: DNS の返答コード。 domain: DNS name: dns.flags.rcode product_source: - icon-log - type: 文字列 + type: string - description: '同じアクティビティ (例: 認証) によって生成されたイベント間での共有名。' - domain: イベント + domain: Events name: evt.name product_source: - icon-log - type: 文字列 + type: string - description: 'イベントの結果 (例: `success`、`failure`)。' - domain: イベント + domain: Events name: evt.outcome product_source: - icon-log - type: 文字列 + type: string - description: Epoch からのイベント開始時間 (ミリ秒) - domain: RUM のコア属性 + domain: RUM core attributes name: date product_source: - icon-rum - android - ios - roku - type: 整数 + type: integer - description: イベントのタイプ (`view` や `resource` など)。 - domain: RUM のコア属性 + domain: RUM core attributes name: type product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: RUM アプリケーションを作成する際に生成される Datadog アプリケーション ID。 - domain: RUM のコア属性 + domain: RUM core attributes name: application.id product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: Datadog アプリケーション名。 - domain: RUM のコア属性 + domain: RUM core attributes name: application.name product_source: - icon-rum - android - - ブラウザ + - browser - ios - type: 文字列 -- description: デバイスにより報告されたデバイスタイプ (System User-Agent)。 - domain: デバイス (Android、iOS、Roku) + type: string +- description: デバイスにより報告されたデバイスタイプ (システムユーザーエージェント)。 + domain: Device (Android, iOS, Roku) name: device.type product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: デバイスにより報告されたデバイスのブランド (System User-Agent)。 - domain: デバイス (Android、iOS、Roku) + type: string +- description: デバイスにより報告されたデバイスのブランド (システムユーザーエージェント)。 + domain: Device (Android, iOS, Roku) name: device.brand product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: デバイスにより報告されたデバイスモデル (System User-Agent)。 - domain: デバイス (Android、iOS、Roku) + type: string +- description: デバイスにより報告されたデバイスモデル (システムユーザーエージェント)。 + domain: Device (Android, iOS, Roku) name: device.model product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: デバイスにより報告されたデバイス名 (System User-Agent)。 - domain: デバイス (Android、iOS、Roku) + type: string +- description: デバイスにより報告されたデバイス名 (システムユーザーエージェント)。 + domain: Device (Android, iOS, Roku) name: device.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: デバイスのネットワーク到達可能性の状態 (`connected`、`not connected`、または `maybe`)。 - domain: 接続性 (Android、iOS) + domain: Connectivity (Android, iOS) name: connectivity.status product_source: - icon-rum - android - ios - type: 文字列 + type: string - description: 利用可能なネットワークインターフェースのリスト (`bluetooth`、`cellular`、`ethernet`、または `wifi` など)。 - domain: 接続性 (Android、iOS) + domain: Connectivity (Android, iOS) name: connectivity.interfaces product_source: - icon-rum - android - ios - type: 文字列 + type: string - description: 携帯電話の接続に使用される無線技術のタイプ。 - domain: 接続性 (Android、iOS) + domain: Connectivity (Android, iOS) name: connectivity.cellular.technology product_source: - icon-rum - android - ios - type: 文字列 + type: string - description: SIMを取り扱う事業者名。 - domain: 接続性 (Android、iOS) + domain: Connectivity (Android, iOS) name: connectivity.cellular.carrier_name product_source: - icon-rum - android - ios - type: 文字列 + type: string - description: デバイスにより報告された OS 名 (System User-Agent)。 - domain: オペレーティングシステム (Android、iOS、Roku) + domain: Operating System (Android, iOS, Roku) name: os.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: デバイスにより報告される OS バージョン (System User-Agent)。 - domain: オペレーティングシステム (Android、iOS、Roku) + domain: Operating System (Android, iOS, Roku) name: os.version product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: デバイスにより報告される OS バージョンメジャー (System User-Agent)。 - domain: オペレーティングシステム (Android、iOS、Roku) + domain: Operating System (Android, iOS, Roku) name: os.version_major product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: 国名。 - domain: 地理的位置 + domain: Geolocation name: geo.country product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: 国の [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) - (例えば、アメリカなら `US`、フランスなら `FR`)。 - domain: 地理的位置 + (たとえば、アメリカなら `US`、フランスなら `FR`)。 + domain: Geolocation name: geo.country_iso_code product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: その国で最大規模の地方区分 (米国は `California` 州、フランスは `Sarthe` 県など)。 - domain: 地理的位置 + domain: Geolocation name: geo.country_subdivision product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: 大陸の ISO コード (`EU`、`AS`、`NA`、`AF`、`AN`、`SA`、または `OC`)。 - domain: 地理的位置 + domain: Geolocation name: geo.continent_code product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: 大陸名 (`Europe`、`Australia`、`North America`、`Africa`、`Antarctica`、`South America`、または `Oceania`)。 - domain: 地理的位置 + domain: Geolocation name: geo.continent product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: 都市名 (`San Francisco`、`Paris`、`New York` など)。 - domain: 地理的位置 + domain: Geolocation name: geo.city product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: ユーザーの識別子。 - domain: RUM のユーザー属性 (Android、Roku) - name: user.id - product_source: - - icon-rum - - android - - roku - type: 文字列 -- description: ユーザーの識別子。 - domain: RUM ユーザー属性 (iOS, Browser) + domain: RUM user attributes name: usr.id product_source: - icon-rum + - android - ios - - ブラウザ - type: 文字列 + - browser + - roku + type: string - description: ユーザーの名前。 - domain: グローバル ユーザー属性 (Android, iOS, Browser, Roku) + domain: Global user attributes (Android, iOS, Browser, Roku) name: usr.name product_source: - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 + type: string - description: ユーザーのメールアドレス。 - domain: グローバル ユーザー属性 (Android, iOS, Browser, Roku) + domain: Global user attributes (Android, iOS, Browser, Roku) name: usr.email product_source: - icon-rum - android - ios - - ブラウザ + - browser - roku - type: 文字列 + type: string - description: セッションのユニーク ID。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.id product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: セッションのタイプ (`user`)。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.type product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: セッションが現在アクティブであるかどうかを示します。セッションは、ユーザーがアプリケーションから移動したり、ブラウザウィンドウを閉じたりすると終了し、4 - 時間の活動または 15 分の非活動時間が経過すると失効します。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + type: string +- description: セッションが現在アクティブかどうかを示します。ユーザーがアプリケーションから移動したり、ブラウザウィンドウを閉じたりするとセッションは終了します。また、4時間の活動または15分の非活動時間が経過するとセッションは失効します。 + domain: Session (Android events, iOS events, Roku events) name: session.is_active product_source: - icon-rum - android - ios - roku - type: ブール値 + type: boolean - description: セッションの初期ビューの URL。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.initial_view.url product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: セッションの初期ビューの名前。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.initial_view.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: セッションの最後のビューの URL。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.last_view.url product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: セッションの最後のビューの名前。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.last_view.name product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: 受信時の TCP 接続から抽出されたセッションの IP アドレス。この属性の収集を停止したい場合は、[アプリケーションの詳細](/data_security/real_user_monitoring/#ip-address)で設定を変更してください。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + type: string +- description: インテークの TCP 接続から抽出されたセッションの IP アドレス。この属性の収集を停止したい場合は、[アプリケーションの詳細](/data_security/real_user_monitoring/#ip-address)で設定を変更してください。 + domain: Session (Android events, iOS events, Roku events) name: session.ip product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: デバイスの情報を解釈するためのシステム `User-Agent` 情報。 - domain: セッション (Android イベント、iOS イベント、Roku イベント) + domain: Session (Android events, iOS events, Roku events) name: session.useragent product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: イベントに対応する初期ビューのユニーク ID。 - domain: ビュー (Android イベント、iOS イベント、Roku イベント) + domain: View (Android events, iOS events, Roku events) name: view.id product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: イベントに対応するクラスの標準名。iOS の場合は、イベントに対応する `UIViewController` クラスの URL。 - domain: ビュー (Android イベント、iOS イベント、Roku イベント) + type: string +- description: イベントに対応するクラスの正規の名前。iOSの場合、イベントに対応する `UIViewController` クラスのURL。 + domain: View (Android events, iOS events, Roku events) name: view.url product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: イベントに対応する、カスタマイズ可能なビューの名前。 - domain: ビュー (Android イベント、iOS イベント、Roku イベント) + domain: View (Android events, iOS events, Roku events) name: view.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースの一意の識別子。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.id product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: 収集されるリソースのタイプ (`xhr`、`image`、`font`、`css`、または `js` など)。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.type product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: HTTP メソッド (`POST`、`GET` `PATCH`、または `DELETE` など)。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.method product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: 応答ステータスコード。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + type: string +- description: 応答ステータスコード + domain: Resource (Android events, iOS events, Roku events) name: resource.status_code product_source: - icon-rum - android - ios - roku - type: 数値 + type: number - description: リソースの URL。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.url product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: リソースプロバイダー名。デフォルトは `unknown` となります。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + type: string +- description: リソースプロバイダー名。デフォルトは `unknown` です。 + domain: Resource (Android events, iOS events, Roku events) name: resource.provider.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースプロバイダーのドメイン。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.provider.domain product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースプロバイダーのタイプ (`first-party`、`cdn`、`ad`、または `analytics` など)。 - domain: リソース (Android イベント、iOS イベント、Roku イベント) + domain: Resource (Android events, iOS events, Roku events) name: resource.provider.type product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: エラーの発生元 (`webview`、`logger`、`network` など)。 - domain: エラー (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Error (Browser events, Android events, iOS events, Roku events) name: error.source product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: エラーのタイプ (場合によってはエラーコード)。 - domain: エラー (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Error (Browser events, Android events, iOS events, Roku events) name: error.type product_source: - icon-apm - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: イベントについて簡潔にわかりやすく説明する 1 行メッセージ。 - domain: エラー (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Error (Browser events, Android events, iOS events, Roku events) name: error.message product_source: - icon-apm - icon-log - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: スタックトレースまたはエラーに関する補足情報。 - domain: エラー (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Error (Browser events, Android events, iOS events, Roku events) name: error.stack product_source: - icon-apm - icon-log - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 -- description: スタックトレースまたはエラーに関する補足情報。 - domain: エラー (Android イベント、iOS イベント、Roku イベント) - name: error.issue_id + type: string +- description: エラーの UUID。 + domain: Error (Android events, iOS events, Roku events) + name: error.id product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: 応答ステータスコード。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + type: string +- description: 応答ステータスコード + domain: Network error (Android events, iOS events, Roku events) name: error.resource.status_code product_source: - icon-rum - android - ios - roku - type: 数値 + type: number - description: HTTP メソッド (`POST` または `GET` など)。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + domain: Network error (Android events, iOS events, Roku events) name: error.resource.method product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースの URL。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + domain: Network error (Android events, iOS events, Roku events) name: error.resource.url product_source: - icon-rum - android - ios - roku - type: 文字列 -- description: リソースプロバイダー名。デフォルトは `unknown` となります。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + type: string +- description: リソースプロバイダー名。デフォルトは `unknown` です。 + domain: Network error (Android events, iOS events, Roku events) name: error.resource.provider.name product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースプロバイダーのドメイン。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + domain: Network error (Android events, iOS events, Roku events) name: error.resource.provider.domain product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: リソースプロバイダーのタイプ (`first-party`、`cdn`、`ad`、または `analytics` など)。 - domain: ネットワークエラー (Android イベント、iOS イベント、Roku イベント) + domain: Network error (Android events, iOS events, Roku events) name: error.resource.provider.type product_source: - icon-rum - android - ios - roku - type: 文字列 + type: string - description: ユーザーアクションの UUID。 - domain: アクション (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Action (Browser events, Android events, iOS events, Roku events) name: action.id product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 -- description: ユーザーアクションのタイプ (例えば、`tap` や `application_start` など)。[カスタムブラウザユーザーアクション](/real_user_monitoring/application_monitoring/browser/tracking_user_actions/?tab=npm#custom-actions)の場合には、`custom` + type: string +- description: ユーザーアクションのタイプ (`tap` または `application_start` など)。[カスタムブラウザユーザーアクション](/real_user_monitoring/application_monitoring/browser/tracking_user_actions/?tab=npm#custom-actions)の場合には、`custom` に設定されます。 - domain: アクション (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + domain: Action (Browser events, Android events, iOS events, Roku events) name: action.type product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 -- description: わかりやすい名前 (例えば、`Click on checkout`)。[カスタムブラウザユーザーアクション](/real_user_monitoring/application_monitoring/browser/tracking_user_actions/?tab=npm#custom-actions)の場合には、API - コールで指定されたアクション名。 - domain: アクション (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) - name: action.name - product_source: - - icon-rum - - android - - ブラウザ - - ios - - roku - type: 文字列 -- description: ユーザーが操作したエレメント。自動収集されたアクションのみ対象。 - domain: アクション (ブラウザイベント、Android イベント、iOS イベント、Roku イベント) + type: string +- description: 自動収集されたアクションの場合、ユーザーが操作した要素の名前。カスタムアクションの場合、API コールで指定された名前 (たとえば、`チェックアウトをクリック`)。 + domain: Action (Browser events, Android events, iOS events, Roku events) name: action.target.name product_source: - icon-rum - android - - ブラウザ + - browser - ios - roku - type: 文字列 + type: string - description: ページビューごとにランダムに生成された ID。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.id product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 'ページ読み込みのタイプ: `initial_load` または `route_change`。詳細については、[シングルページアプリケーションサポートドキュメント](/real_user_monitoring/application_monitoring/browser/monitoring_page_performance/#monitoring-single-page-applications-spa)を参照してください。' - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.loading_type product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 現在リクエストされているページへのリンクがたどられた前のウェブページの URL。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.referrer product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: ビューの URL。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のハッシュ部分。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_hash product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のホスト部分。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_host product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のパス部分。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_path product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 同様の URL に対して生成された自動 URL グループ。( `/dashboard/123` と `/dashboard/456` に対する `/dashboard/?` など)。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_path_group product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: クエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_query product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: URL のスキーム部分。 - domain: ビュー (ブラウザ) + domain: View (Browser) name: view.url_scheme product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: デバイスによって報告されたデバイスタイプ (User-Agent HTTP ヘッダー)。 - domain: デバイス (ブラウザ) + domain: Device (Browser) name: device.type product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告されたデバイスブランド (User-Agent HTTP ヘッダー)。 - domain: デバイス (ブラウザ) + domain: Device (Browser) name: device.brand product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告されたデバイスモデル (User-Agent HTTP ヘッダー)。 - domain: デバイス (ブラウザ) + domain: Device (Browser) name: device.model product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告されたデバイス名 (User-Agent HTTP ヘッダー)。 - domain: デバイス (ブラウザ) + domain: Device (Browser) name: device.name product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告された OS 名 (User-Agent HTTP ヘッダー)。 - domain: オペレーティングシステム (ブラウザ) + domain: Operating system (Browser) name: os.name product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告された OS バージョン (User-Agent HTTP ヘッダー)。 - domain: オペレーティングシステム (ブラウザ) + domain: Operating system (Browser) name: os.version product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: デバイスによって報告された OS バージョンメジャー (User-Agent HTTP ヘッダー)。 - domain: オペレーティングシステム (ブラウザ) + domain: Operating system (Browser) name: os.version_major product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: セッションごとにランダムに生成された ID。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.id product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: クライアントの IP アドレス。この属性の収集を停止したい場合は、[アプリケーションの詳細](/data_security/real_user_monitoring/#ip-address)で設定を変更してください。 - domain: セッション (ブラウザイベント) + - browser + type: string +- description: クライアントのIPアドレス。この属性の収集を停止したい場合は、[アプリケーションの詳細](/data_security/real_user_monitoring/#ip-address)で設定を変更してください。 + domain: Session (Browser events) name: session.ip product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: セッションが現在アクティビティであるかどうかを示します。セッションは、4 時間のアクティビティまたは 15 分の非アクティブの後に終了します。 - domain: セッション (ブラウザイベント) + - browser + type: string +- description: セッションが現在アクティブかどうかを示します。セッションは、4 時間のアクティビティまたは 15 分の非アクティブの後に終了します。 + domain: Session (Browser events) name: session.is_active product_source: - icon-rum - - ブラウザ - type: ブール値 -- description: 'セッションのタイプ: `user` または `synthetics`。[Synthetic ブラウザテスト](/synthetics/browser_tests/)からのセッションは請求から除外されます。' - domain: セッション (ブラウザイベント) + - browser + type: boolean +- description: セッションの種類、`user` または `synthetics`。[Synthetic Browser Tests](/synthetics/browser_tests/) + からのセッションは請求の対象外です。 + domain: Session (Browser events) name: session.type product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 現在リクエストされているページへのリンクがたどられた前のウェブページの URL。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.referrer product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: ユーザーによって生成された最初の RUM ビューの ID。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.id product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のホスト部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.url_host product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のパス部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.url_path product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 同様の URL に対して生成された自動 URL グループ。( `/dashboard/123` と `/dashboard/456` に対する `/dashboard/?` など)。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.url_path_group product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: クエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.url_query product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: URL のスキーム部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.initial_view.url_scheme product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: ユーザーによって生成された最後の RUM ビューの ID。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.id product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のホスト部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.url_host product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のパス部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.url_path product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: 同様の URL に対して生成された自動 URL グループ。( `/dashboard/123` と `/dashboard/456` に対する `/dashboard/?` など)。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.url_path_group product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: クエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.url_query product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: URL のスキーム部分。 - domain: セッション (ブラウザイベント) + domain: Session (Browser events) name: session.last_view.url_scheme product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: 収集されるリソースのタイプ (`css`、`javascript`、`media`、`XHR`、または `image` など)。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.type product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: HTTP メソッド (`POST` または `GET` など)。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.method product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: 応答ステータスコード。 - domain: リソース (ブラウザイベント) + - browser + type: string +- description: 応答ステータスコード + domain: Resource (Browser events) name: resource.status_code product_source: - icon-rum - - ブラウザ - type: 数値 + - browser + type: number - description: リソースの URL。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.url product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のホスト部分。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.url_host product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: URL のパス部分。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.url_path product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: クエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.url_query product_source: - icon-rum - - ブラウザ - type: オブジェクト + - browser + type: object - description: URL のプロトコル名 (HTTP または HTTPS)。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.url_scheme product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: リソースプロバイダー名。デフォルトは `unknown` となります。 - domain: リソース (ブラウザイベント) + - browser + type: string +- description: リソースプロバイダー名。デフォルトは `unknown` です。 + domain: Resource (Browser events) name: resource.provider.name product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: リソースプロバイダーのドメイン。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.provider.domain product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: リソースプロバイダーのタイプ (`first-party`、`cdn`、`ad`、または `analytics` など)。 - domain: リソース (ブラウザイベント) + domain: Resource (Browser events) name: resource.provider.type product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: RUM ブラウザ SDK で検出されたデッドクリック。 - domain: フラストレーションシグナル (ブラウザイベント) - name: action.frustration.type:dead_click - product_source: - - icon-rum - - ブラウザ - type: 文字列 -- description: RUM ブラウザ SDK で検出されたレイジークリック。 - domain: フラストレーションシグナル (ブラウザイベント) - name: action.frustration.type:rage_click + - browser + type: string +- description: RUM Browser SDK によって検出されたフラストレーションシグナルのタイプ (`rage_click`、`dead_click`、または + `error_click`)。 + domain: Frustration signals (Browser events) + name: action.frustration.type product_source: - icon-rum - - ブラウザ - type: 文字列 -- description: RUM ブラウザ SDK で検出されたエラークリック。 - domain: フラストレーションシグナル (ブラウザイベント) - name: action.frustration.type:error_click - product_source: - - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: トラフィックのソースを追跡する URL のパラメーター。 - domain: UTM (ブラウザイベント) + domain: UTM (Browser events) name: view.url_query.utm_source product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: トラフィックの発信元チャンネルを追跡する URL のパラメーター。 - domain: UTM (ブラウザイベント) + domain: UTM (Browser events) name: view.url_query.utm_medium product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: そのビューに紐づく特定のマーケティングキャンペーンを識別する URL のパラメーター。 - domain: UTM (ブラウザイベント) + domain: UTM (Browser events) name: view.url_query.utm_campaign product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: マーケティングキャンペーン内でユーザーがクリックした特定の要素を特定する URL 内のパラメーター。 - domain: UTM (ブラウザイベント) + domain: UTM (Browser events) name: view.url_query.utm_content product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: ユーザーが特定のキャンペーンをトリガーするために検索したキーワードを追跡する URL のパラメーター。 - domain: UTM (ブラウザイベント) + domain: UTM (Browser events) name: view.url_query.utm_term product_source: - icon-rum - - ブラウザ - type: 文字列 + - browser + type: string - description: スパンを生成するために使用されるクライアント SDK の言語。`cpp`、`dotnet`、`go`、`jvm`、`javascript`、`php`、`python`、`ruby` - のいずれかになります。 - domain: APM コア + のいずれかです。 + domain: APM core name: language product_source: - icon-apm - type: 文字列 + type: string - description: 実行中のプロセスの `DD_ENV` 環境変数の値、またはユーザー定義の `env` の値。 - domain: APM コア (予約済み) + domain: APM core (Reserved) name: env product_source: - icon-apm - type: 文字列 + type: string - description: 実行中のプロセスの `DD_VERSION` 環境変数の値、またはユーザー定義の `version` の値。 - domain: APM コア (予約済み) + domain: APM core (Reserved) name: version product_source: - icon-apm - type: 文字列 -- description: スパンが扱う作業単位のタイプを表す文字列。server、client、producer、consumer、internal のいずれかになります。詳細は、[OpenTelemetry - SpanKind のドキュメント](https://opentelemetry.io/docs/specs/otel/trace/api/#spankind)を参照してください。 - domain: APM コア + type: string +- description: スパンが処理する作業単位の種類を表す文字列。サーバー、クライアント、プロデューサー、コンシューマー、または内部のいずれかです。詳細については、[OpenTelemetry + SpanKind ドキュメント](https://opentelemetry.io/docs/specs/otel/trace/api/#spankind)を参照してください。 + domain: APM core name: span.kind product_source: - icon-apm - type: 文字列 + type: string - description: スパンを作成したライブラリまたはインテグレーションの名前。 - domain: APM コア + domain: APM core name: component product_source: - icon-apm - type: 文字列 + type: string - description: インバウンド接続を開始したクライアントの IP アドレス。 - domain: ネットワーク通信 + domain: Network communications name: network.client.ip product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: アウトバウンド接続が行われる IP アドレス。 - domain: ネットワーク通信 + domain: Network communications name: network.destination.ip product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: ローカルホストの IP アドレス。 - domain: ネットワーク通信 + domain: Network communications name: network.host.ip product_source: - icon-apm - type: 文字列 + type: string - description: 接続を開始したクライアントのポート。 - domain: ネットワーク通信 + domain: Network communications name: network.client.port product_source: - icon-apm - icon-log - type: 数値 + type: number - description: アウトバウンド接続のリモートポート番号。 - domain: ネットワーク通信 + domain: Network communications name: network.destination.port product_source: - icon-apm - icon-log - type: 数値 + type: number - description: インバウンド接続を開始したクライアントのホスト名。 - domain: ネットワーク通信 + domain: Network communications name: network.client.name product_source: - icon-apm - type: 文字列 + type: string - description: ローカルホスト名。 - domain: ネットワーク通信 + domain: Network communications name: network.host.name product_source: - icon-apm - type: 文字列 + type: string - description: インバウンド接続に使用されるトランスポートプロトコル。 - domain: ネットワーク通信 + domain: Network communications name: network.client.transport product_source: - icon-apm - type: 文字列 + type: string - description: アウトバウンド接続に使用されるトランスポートプロトコル。 - domain: ネットワーク通信 + domain: Network communications name: network.destination.transport product_source: - icon-apm - type: 文字列 + type: string - description: HTTP 応答ステータスコード。 - domain: HTTP リクエスト + domain: HTTP requests name: http.status_code product_source: - icon-apm - icon-log - type: 文字列 -- description: 難読化されたクエリ文字列を含む、 HTTP リクエストの URL。難読化の詳細については、 [データ セキュリティの構成](https://docs.datadoghq.com/tracing/configure_data_security/) - を参照してください。 - domain: HTTP リクエスト + type: string +- description: HTTP リクエストの URL、難読化されたクエリ文字列を含む。難読化に関する詳細は、[データセキュリティの構成](https://docs.datadoghq.com/tracing/configure_data_security/)を参照してください。 + domain: HTTP requests name: http.url product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: リクエストに使用された HTTP のバージョン。 - domain: HTTP リクエスト + domain: HTTP requests name: http.version product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: 接続を開始したクライアントのポート。 - domain: HTTP リクエスト + domain: HTTP requests name: http.method product_source: - icon-apm - icon-log - type: 文字列 -- description: '一致したルート (パステンプレート)。例: `/users/:userID`' - domain: HTTP リクエスト + type: string +- description: マッチしたルート (パステンプレート)。たとえば、`/users/:userID`。 + domain: HTTP requests name: http.route product_source: - icon-apm - type: 文字列 -- description: すべてのプロキシの背後にいるオリジナルのクライアントの IP アドレス (既知の場合)。`X-Forwarded-For` のようなヘッダーから取得します。 - domain: HTTP リクエスト + type: string +- description: すべてのプロキシの背後にいる元のクライアントの IP アドレス、もし知られている場合。`X-Forwarded-For` などのヘッダーから発見されました。 + domain: HTTP requests name: http.client_ip product_source: - icon-apm - type: 文字列 + type: string +- description: IP アドレスのタイプ (`public`、`private`、`reserved` など)。 + domain: HTTP client IP details + name: http.client_ip_details.type + product_source: + - icon-apm + type: string +- description: クライアント IP の解決結果の国の名前。 + domain: HTTP client IP details + name: http.client_ip_details.country.name + product_source: + - icon-apm + type: string +- description: 国の [ISO コード](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) + (たとえば、アメリカなら `US`、フランスなら `FR`)。 + domain: HTTP client IP details + name: http.client_ip_details.country.iso_code + product_source: + - icon-apm + type: string +- description: 大陸の ISO コード (`EU`、`AS`、`NA`、`AF`、`AN`、`SA`、`OC`)。 + domain: HTTP client IP details + name: http.client_ip_details.continent.code + product_source: + - icon-apm + type: string +- description: クライアント IP の解決結果の大陸の名前。 + domain: HTTP client IP details + name: http.client_ip_details.continent.name + product_source: + - icon-apm + type: string +- description: クライアント IP の解決結果の第一階層行政区 (州や地域など) の名前。 + domain: HTTP client IP details + name: http.client_ip_details.subdivision.name + product_source: + - icon-apm + type: string +- description: 第一階層行政区の [ISO コード](https://en.wikipedia.org/wiki/ISO_3166-2) (たとえば、カナダのオンタリオ州なら + `CA-ON`)。 + domain: HTTP client IP details + name: http.client_ip_details.subdivision.iso_code + product_source: + - icon-apm + type: string +- description: クライアント IP の解決結果の都市の名前。 + domain: HTTP client IP details + name: http.client_ip_details.city.name + product_source: + - icon-apm + type: string +- description: クライアント IP の解決結果の場所の緯度。 + domain: HTTP client IP details + name: http.client_ip_details.location.latitude + product_source: + - icon-apm + type: number +- description: クライアント IP の解決結果の場所の経度。 + domain: HTTP client IP details + name: http.client_ip_details.location.longitude + product_source: + - icon-apm + type: number +- description: クライアント IP に関連付けられた IANA タイムゾーン識別子 (`America/Toronto` など)。 + domain: HTTP client IP details + name: http.client_ip_details.timezone + product_source: + - icon-apm + type: string +- description: クライアント IP が属する自律システムの番号 (ASN) (`AS577` など)。 + domain: HTTP client IP details + name: http.client_ip_details.as.number + product_source: + - icon-apm + type: string +- description: 自律システムの運営組織の名前 (`Bell Canada` など)。 + domain: HTTP client IP details + name: http.client_ip_details.as.name + product_source: + - icon-apm + type: string +- description: 自律システムに関連付けられている主要ドメイン (`bell.ca` など)。 + domain: HTTP client IP details + name: http.client_ip_details.as.domain + product_source: + - icon-apm + type: string +- description: 自律システムの公表する IP プレフィックス (`65.95.0.0/16` など)。 + domain: HTTP client IP details + name: http.client_ip_details.as.route + product_source: + - icon-apm + type: string +- description: 自律システムの分類 (`isp`、`hosting`、`business`、`education` など)。 + domain: HTTP client IP details + name: http.client_ip_details.as.type + product_source: + - icon-apm + type: string - description: リクエストとともに受け取った `User-Agent` ヘッダー。 - domain: HTTP リクエスト + domain: HTTP requests name: http.useragent product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: リクエストペイロード本文のサイズ (バイト単位)。 - domain: HTTP リクエスト + domain: HTTP requests name: http.request.content_length product_source: - icon-apm - type: 数値 + type: number - description: レスポンスペイロード本文のサイズ (バイト単位)。 - domain: HTTP リクエスト + domain: HTTP requests name: http.response.content_length product_source: - icon-apm - type: 数値 + type: number - description: トランスポートデコード後の非圧縮リクエストペイロードのサイズ。 - domain: HTTP リクエスト + domain: HTTP requests name: http.request.content_length_uncompressed product_source: - icon-apm - type: 数値 + type: number - description: トランスポートデコード後の非圧縮レスポンスペイロードのサイズ。 - domain: HTTP リクエスト + domain: HTTP requests name: http.response.content_length_uncompressed product_source: - icon-apm - type: 数値 + type: number - description: リクエストの HTTP ヘッダー。デフォルトでは何も収集されませんが、オプションで `DD_TRACE_HEADER_TAGS` を用いて構成することができます。 - domain: HTTP リクエスト + domain: HTTP requests name: http.request.headers.* product_source: - icon-apm - type: 文字列 + type: string - description: 使用しているデータベース管理システム (DBMS) 製品の識別子。 - domain: データベーススパン + domain: Database spans name: db.system product_source: - icon-apm - type: 文字列 -- description: レスポンス HTTP ヘッダー。デフォルトでは収集されませんが、 `DD_TRACE_HEADER_TAGS` で任意に設定できます。 - domain: HTTP リクエスト + type: string +- description: レスポンスの HTTP ヘッダー。デフォルトでは何も収集されませんが、オプションで `DD_TRACE_HEADER_TAGS` を用いて構成することができます。 + domain: HTTP requests name: http.response.headers.* product_source: - icon-apm - type: 文字列 + type: string - description: データベースへの接続に使用する接続文字列。 - domain: データベーススパン + domain: Database spans name: db.connection_string product_source: - icon-apm - type: 文字列 -- description: '実行中の操作の名前。例: `SELECT`、`findAndModify`、`HMSET`' - domain: データベーススパン + type: string +- description: 実行されている操作の名前。たとえば、`SELECT`、`findAndModify`、`HMSET`。 + domain: Database spans name: db.operation product_source: - icon-apm - icon-log - type: 文字列 + type: string - description: データベース名 (該当する場合) を含む、操作の対象となる主テーブルの名前。 - domain: データベーススパン + domain: Database spans name: db.sql.table product_source: - icon-apm - type: 文字列 + type: string - description: クエリまたは操作の行数/結果数。 - domain: データベーススパン + domain: Database spans name: db.row_count product_source: - icon-apm - type: 数値 + type: number - description: メッセージングシステムの識別子。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.system product_source: - icon-apm - type: 文字列 + type: string - description: メッセージの宛先名。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.destination product_source: - icon-apm - type: 文字列 + type: string - description: メッセージの宛先の種類。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.destination_kind product_source: - icon-apm - type: 文字列 + type: string - description: トランスポートプロトコルの名前。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.protocol product_source: - icon-apm - type: 文字列 + type: string - description: トランスポートプロトコルのバージョン。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.protocol_version product_source: - icon-apm - type: 文字列 + type: string - description: メッセージングシステムへの接続文字列。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.url product_source: - icon-apm - type: 文字列 + type: string - description: メッセージングシステムがメッセージの識別子として使用する値で、文字列として表される。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.message_id product_source: - icon-apm - type: 文字列 + type: string - description: メッセージが属する会話を識別する会話の ID で、文字列として表現される。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.conversation_id product_source: - icon-apm - type: 文字列 + type: string - description: 圧縮されていないメッセージペイロードのサイズ (バイト数)。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.message_payload_size product_source: - icon-apm - type: 数値 -- description: '消費メッセージの種類を示す文字列。例: `send` (メッセージをプロデューサーに送信)、`receive` (コンシューマーがメッセージを受け取る)、または - `process` (コンシューマーが以前に受け取ったメッセージを処理)。' - domain: メッセージキュースパン + type: number +- description: 消費メッセージの種類を示す文字列。たとえば、`send` (プロデューサーに送るメッセージ)、`receive` (コンシューマーが受け取るメッセージ)、または + `process` (以前に受け取ったメッセージをコンシューマーが処理する)。 + domain: Message queue spans name: messaging.operation product_source: - icon-apm - type: 文字列 + type: string - description: メッセージを受信するコンシューマーの識別子。 - domain: メッセージキュースパン + domain: Message queue spans name: messaging.consumer_id product_source: - icon-apm - type: 文字列 + type: string - description: リモートシステムの識別子。 - domain: リモートプロシージャコール + domain: Remote procedure calls name: rpc.system product_source: - icon-apm - type: 文字列 + type: string - description: 呼び出されるサービスの名前。 - domain: リモートプロシージャコール + domain: Remote procedure calls name: rpc.service product_source: - icon-apm - type: 文字列 + type: string - description: 呼び出されるメソッドの名前。 - domain: リモートプロシージャコール + domain: Remote procedure calls name: rpc.method product_source: - icon-apm - type: 文字列 -content: 以下の表は、RUM、Logs、APM の各製品が Agent によって Datadog に送信されるデータにデータドメインに応じて自動的に適用される属性の一覧です。製品別にリストをフィルタリングするか、キーワードや説明テキストで検索することもできます。 -description: RUM、Logs、APM の各製品が Agent によって Datadog に送信されるデータにデータドメインに応じて自動的に適用される属性の表です。 + type: string +- description: リクエストで検出されたセキュリティ活動の種類を、`.`の形式で表記したもの (`attack_attempt.sql_injection`、`business_logic.users.login.failure` + など)。複数のルールが一致する場合、スパンには複数の値が可能です。 + domain: Application & API Protection (AAP) + name: appsec.security_activity + product_source: + - icon-apm + type: string +- description: 検出されたセキュリティ活動の最上位分類 (`attack_attempt`、`business_logic` など)。 + domain: Application & API Protection (AAP) + name: appsec.category + product_source: + - icon-apm + type: string +- description: カテゴリ内の特定の脅威またはイベントの種類 (`sql_injection`、`xss`、`users.login.failure` + など)。 + domain: Application & API Protection (AAP) + name: appsec.type + product_source: + - icon-apm + type: string +- description: リクエストに一致した AAP ルールの識別子 (`crs-942-100` など)。複数のルールがトリガーされる場合、ルールには複数の値が可能です。 + domain: Application & API Protection (AAP) + name: appsec.rule_id + product_source: + - icon-apm + type: string +- description: リクエストが AAP によってブロックされたかどうか。リクエストがブロックされた場合 `true`、そうでない場合 `false`。 + domain: Application & API Protection (AAP) + name: appsec.blocked + product_source: + - icon-apm + type: string +content: 以下の表は、エージェントが Datadog に送信するデータに対して、データドメインに応じて自動適用される属性を、RUM、Logs、および APM + 製品ごとに示したものです。オプション機能として、このリストは、製品でフィルタリングしたり、キーワードや説明文で検索して目的の属性を見つけたりすることができます。 +description: エージェントによってDatadogに送信されるデータに自動的に適用される属性のテーブルで、RUM、ログ、およびAPM製品ごとにデータドメインに応じて適用されます。 disable_sidebar: true filter_all: All further_reading: @@ -1618,9 +1716,6 @@ further_reading: text: スパンタグのセマンティクス title: デフォルトの標準属性 --- - - - -## 関連情報 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/ja/synthetics/_index.md b/content/ja/synthetics/_index.md index d9013ca1f8f..87977213b27 100644 --- a/content/ja/synthetics/_index.md +++ b/content/ja/synthetics/_index.md @@ -1,110 +1,151 @@ --- algolia: tags: - - 外形監視 + - synthetics aliases: - /ja/integrations/synthetics/ cascade: algolia: rank: 70 description: 自動テストを使用して、システムとアプリケーションの最も重要な部分が世界各地で正常に稼働していることを確認します。 -disable_sidebar: true further_reading: -- link: https://app.datadoghq.com/release-notes?category=Synthetic%20Monitoring - tag: リリースノート - text: Datadog Synthetic Monitoring の最新リリースをチェック! (アプリログインが必要です) -- link: https://www.datadoghq.com/blog/introducing-synthetic-monitoring/ - tag: ブログ - text: Datadog Synthetic モニタリングの紹介 -- link: https://www.datadoghq.com/blog/monitor-cdn-performance-with-synthetic-testing/ - tag: ブログ - text: Synthetic テスト内の CDN パフォーマンスの監視 -- link: https://www.datadoghq.com/blog/static-web-application-monitoring-best-practices/ - tag: ブログ - text: 静的 Web アプリケーションを監視するためのベストプラクティス -- link: https://www.datadoghq.com/blog/api-test-coverage-monitoring-datadog-synthetics/ - tag: ブログ - text: Datadog Synthetic Monitoring で API テストカバレッジを向上させる +- link: /synthetics/guide/ + tag: よくあるご質問 + text: Synthetics モニタリングガイド - link: https://learn.datadoghq.com/courses/getting-started-with-synthetic-browser-testing tag: ラーニングセンター text: 'Datadog ラーニングセンター: Synthetic ブラウザテストを始める' -- link: /synthetics/guide/ - tag: ドキュメント - text: Synthetic モニタリングガイド - link: https://dtdg.co/fe tag: Foundation Enablement text: Synthetic テスト能力を高めるためのインタラクティブなセッションに参加できます +- link: https://www.datadoghq.com/blog/http-security-headers-synthetic-tests/ + tag: ブログ + text: Synthetic テストを使用して HTTP ヘッダーを保護する方法 +- link: https://www.datadoghq.com/blog/synthetic-monitoring-updates/ + tag: ブログ + text: Datadog Synthetic Monitoring を使用して、ユーザー体験に関する重要な洞察をより迅速に得ることができます +- link: https://www.datadoghq.com/blog/smoke-testing-synthetic-monitoring/ + tag: ブログ + text: Synthetic Monitoring を使用して効率的な UX スモークテストを作成する方法 +- link: https://www.datadoghq.com/blog/slo-synthetic-monitoring/ + tag: ブログ + text: Datadog Synthetic Monitoring を使用して SLO の精度とパフォーマンスを向上させる +- link: https://www.datadoghq.com/blog/mobile-apps-synthetic-tests/ + tag: ブログ + text: モバイルアプリ向けの信頼性が高く正確な Synthetic テストを構築する方法 +- link: https://www.datadoghq.com/blog/ambassador-browser-tests/ + tag: ブログ + text: Datadog を使用してクライアントのブラウザテストをスケールさせる手助けをした方法 +- link: https://www.datadoghq.com/blog/datadog-terraform-synthetic-testing/ + tag: ブログ + text: Datadog Synthetic Monitoring と Terraform を使用して Synthetic テストインフラストラクチャーを自動化する +- link: https://www.datadoghq.com/blog/simplifying-troubleshooting-with-synthetic-monitoring + tag: ブログ + text: Datadog Synthetic Monitoring を使用してユーザージャーニー全体のトラブルシューティングを簡素化する +- link: https://www.datadoghq.com/blog/rum-product-analytics-bridging-teams + tag: ブログ + text: 'パフォーマンスから影響へ: 有コンテキストを通じてフロントエンドチームをつなぐ' +- link: https://app.datadoghq.com/release-notes?category=Synthetic%20Monitoring + tag: リリースノート + text: Datadog Synthetic Monitoring の最新リリースをチェック!(アプリログインが必要です) title: Synthetic テストとモニター --- - -{{< vimeo url="https://player.vimeo.com/progressive_redirect/playback/447241955/rendition/1080p/file.mp4?loc=external&signature=47f0bf6adc93cbbd62e4939228c964c19227a2e0aec2d61822417cd2af985c97" poster="/images/poster/synthetics.png" >}} - -
    - - -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} - Foundation Enablement セッションを確認し、登録しましょう。Datadog Synthetic Monitoring は、コード不要で API、ブラウザ、モバイルのテストを作成し、アプリケーション、主要なエンドポイント、ネットワーク層へのユーザーフローとリクエストを自動的にシミュレートする先進的なモニタリングソリューションであることを学びましょう。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} + Foundation Enablement セッションを探索し、登録してください。Datadog Synthetic Monitoring が、コードなしで API、ブラウザ、モバイルテストを作成し、ユーザーフローやアプリケーション、主要エンドポイント、ネットワーク層へのリクエストを自動的にシミュレートするプロアクティブな監視ソリューションであることを学びましょう。 {{< /learning-center-callout >}} -Synthetic テストでは、**世界中からのシミュレートされたリクエストとアクション**を使用して、システムとアプリケーションがどのように実行されているかを観察できます。Datadog は、バックエンドからフロントエンドまで、さまざまなネットワークレベル (`HTTP`、`SSL`、`DNS`、`WebSocket`、`TCP`、`UDP`、`ICMP`、`gRPC`) で、制御された安定した方法で Web ページと API のパフォーマンスを追跡します。障害のある動作 (リグレッション、機能の破損、応答時間の長さ、予期しないステータスコードなど) を警告します。 +Synthetic テストを使用すると、**世界中からのシミュレートされたリクエストとアクション**を使用して、システムやアプリケーションのパフォーマンスを観察できます。Datadog は、バックエンドからフロントエンドまで、さまざまなネットワークレベル (`HTTP`、`SSL`、`DNS`、`WebSocket`、`TCP`、`UDP`、`ICMP`、および `gRPC`) で、制御された安定した方法でウェブページや API のパフォーマンスを追跡し、回帰、壊れた機能、高い応答時間、予期しないステータスコードなどの異常な動作について警告します。 -キーエンドポイントとユーザージャーニーで **SLO を計算**することで、アプリケーションのパフォーマンス目標を達成しやすくなり、最終的に一貫したカスタマーエクスペリエンスを提供することができます。 +キーエンドポイントとユーザージャーニーで**SLO を計算**することで、アプリケーションのパフォーマンス目標を達成しやすくなり、最終的に一貫したカスタマーエクスペリエンスを提供することができます。 Synthetic テストは、[Datadog アプリケーション][1]、[API][2]、[Terraform][3] で作成することが可能です。 -## API テストとマルチステップ API テストのセットアップ +## API テストとマルチステップ API テストをセットアップする {#set-up-api-tests-and-multistep-api-tests} API テストを使用すると、[シングル][4]または[チェーン][5]リクエストを起動して、さまざまなネットワークレベル ([HTTP テスト][6]、[SSL テスト][7]、[DNS テスト][8]、[WebSocket テスト][9]、[TCP テスト][10]、[UDP テスト][11]、[ICMP テスト][12]、[gRPC テスト][13]) で主要システムの検証を実行できます。 {{< img src="synthetics/api_test.png" alt="API テスト" style="width:100%;">}} -## ブラウザテストを記録する +## ブラウザテストを記録する {#record-browser-tests} [Synthetic ブラウザテスト][14]を使用して、世界中の Web ページを顧客がどのように体験しているかをエンドツーエンドで監視します。 {{< img src="synthetics/browser_test.mp4" alt="ブラウザテスト" video=true style="width:100%;">}} -## モバイルアプリケーションテストを記録する +## モバイルアプリケーションテストを記録する {#record-mobile-application-tests} [Synthetic モバイルアプリケーションテスト][21]を使用して、顧客が異なるデバイスタイプから iOS と Android アプリケーションをエンドツーエンドでどのように体験するかを監視します。 -{{< img src="synthetics/mobile_app_tests.png" alt="Synthetic モバイルテストの記録ワークフローの例" style="width:100%;">}} +{{< img src="synthetics/mobile_app_tests.png" alt="Synthetic Mobile テストの録画ワークフローの例" style="width:100%;">}} + +## ネットワークパステストを作成 {#create-network-path-tests} + +管理されたロケーションから[Synthetic network path tests][25]を作成し、TCP、UDP、ICMPチェックを実行し、グローバルエンドポイント間のパケットルートを可視化します。 + +{{< img src="synthetics/network_tests/syn_network_path.png" alt="Synthetic TCPネットワークテストの例" style="width:100%;">}} +## テストスイート {#test-suites} + +[Synthetic テストスイート][26]を使用して、ユーザージャーニー、環境、ロケーション、サービス、またはチームごとに論理的にグループ化された複数のテストを整理し、管理とトラブルシューティングを効率化します。 + +{{< img src="synthetics/test_suites/test_suite_summary.png" alt="Synthetic Monitoring Test Suiteの概要ページ" style="width:100%;">}} -## プライベートロケーションを起動する +## プライベートロケーションを起動する {#launch-private-locations} [Synthetic プライベートロケーション][15]を使用すれば、内部 API と Web サイトを監視したり、ビジネスにミッションクリティカルな領域にカスタムロケーションを作成したりすることができます。 {{< img src="synthetics/private_locations.png" alt="プライベートロケーション" style="width:100%;">}} -## データとトレースを接続する +## データとトレースを接続する {#connect-data-and-traces} [Synthetics テストと APM トレース間のインテグレーション][16]を利用すれば、フロントエンド、ネットワーク、バックエンドリクエスト全体の障害の根本的な原因を見つけることができます。 -{{< img src="synthetics/synthetics_traces.mp4" alt="Synthetic モニタリング" video=true style="width:100%;">}} +{{< img src="synthetics/synthetics_traces.mp4" alt="Synthetic Monitoring" video=true style="width:100%;">}} -## すぐに使えるダッシュボードにアクセスする +## すぐに使えるダッシュボードにアクセスする {#access-out-of-the-box-dashboards} API テスト、マルチステップ API テスト、ブラウザテスト、プライベートロケーションのパフォーマンス情報や、Datadog のイベントを[すぐに使える Synthetic ダッシュボード][17]で分析します。 -{{< img src="synthetics/dashboards/test_dashboard.png" alt="Synthetic Monitoring & Continuous Testing サマリーダッシュボード" style="width:100%;">}} +{{< img src="synthetics/dashboards/test_dashboard.png" alt="Synthetic Monitoring と Continuous Testing の概要ダッシュボード" style="width:100%;">}} -## Synthetic Monitoring & Testing Results Explorer を使用する +## Synthetic Monitoring と Testing Results Explorer を使用する {#use-the-synthetic-monitoring-testing-results-explorer} Synthetic テストの実行や、CI/CD パイプラインで実行されているテストのバッチに対して、[検索クエリおよび視覚化][20]を作成します。 {{< img src="continuous_testing/explorer_ci_batches_1.png" alt="Continuous Testing Explorer" style="width:100%;">}} -## テストカバレッジの追跡 +## テストカバレッジを追跡する {#track-testing-coverage} [アプリケーションの最も重要なワークフローを確実にテストする][22]ことで、テストスイートを最適化します。 {{< img src="synthetics/test_coverage/test_coverage.png" alt="Continuous Testing Explorer" style="width:100%;">}} -## 準備はいいですか? +## Synthetic Monitoring 通知 {#synthetic-monitoring-notifications} + +Synthetic モニターを使用して、Synthetic Monitoring テストが失敗したときに通知を送信するように強化します。以下の機能が利用可能です: + +事前入力されたモニターメッセージ +: 事前入力されたモニターメッセージは、Synthetic テストアラートのための構造化された出発点を提供します。各メッセージには、標準化されたタイトル、要約、およびテストメタデータを含むフッターが含まれており、一目でアラートを理解しやすくなっています。 + +テンプレート変数 +: テンプレート変数を使用すると、モニター通知にテスト固有のデータを動的に挿入できます。これらの変数は、`synthetics.attributes`オブジェクトから取得されます。 + +高度な使用方法 +: 高度な使用法には、より深いテストの洞察を引き出したり、Handlebars テンプレートを使用して複雑なメッセージを構造化する技術が含まれます。 + +条件付きアラート +: 条件付きアラートを使用すると、特定のテスト結果や失敗条件に基づいてモニター通知の内容を変更できます。 + +詳しくは、[Synthetic Monitoring notifications][24]をご覧ください。 + +## バージョン履歴 {#version-history} + +[Version History in Synthetic Monitoring][23]を使用して、テストの以前のバージョンを実行したり、テストを保存された任意のバージョンに復元したり、新しいSynthetic Monitoringテストを作成するためにバージョンをクローンしたりできます。 + +## 準備はいいですか?{#ready-to-start} -最初の Synthetic テストを作成して Web アプリケーションを監視する手順については、[Synthetic モニタリングの概要][18]を参照してください。次に、[プライベートロケーションの概要][19]を参照して、プライベートロケーションを作成し、プライベートロケーションで Synthetic テストを実行する手順を確認してください。 +最初のSynthetic テストを作成し、Webアプリケーションの監視を行う方法については、[Getting Started with Synthetic Monitoring][18]をご覧ください。次に、[プライベートロケーションの始め方][19]を参照して、プライベートロケーションを作成し、プライベートロケーションでSynthetic テストを実行する方法を確認してください。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -130,4 +171,8 @@ Synthetic テストの実行や、CI/CD パイプラインで実行されてい [19]: /ja/getting_started/synthetics/private_location [20]: /ja/continuous_testing/explorer/ [21]: /ja/mobile_testing -[22]: /ja/synthetics/test_coverage \ No newline at end of file +[22]: /ja/synthetics/test_coverage +[23]: /ja/synthetics/guide/version_history/ +[24]: /ja/synthetics/notifications/ +[25]: /ja/synthetics/network_path_tests/ +[26]: /ja/synthetics/test_suites/ \ No newline at end of file diff --git a/content/ja/tracing/trace_collection/single-step-apm/kubernetes.md b/content/ja/tracing/trace_collection/single-step-apm/kubernetes.md new file mode 100644 index 00000000000..c40b4f4729a --- /dev/null +++ b/content/ja/tracing/trace_collection/single-step-apm/kubernetes.md @@ -0,0 +1,896 @@ +--- +aliases: +- /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/kubernetes +code_lang: kubernetes +code_lang_weight: 20 +further_reading: +- link: /tracing/metrics/runtime_metrics/ + tag: ドキュメント + text: ランタイムメトリクスを有効にする +- link: /tracing/guide/init_resource_calc/ + tag: ドキュメント + text: init コンテナのリソース使用量の詳細 +- link: /tracing/guide/local_sdk_injection + tag: ドキュメント + text: ローカル SDK 注入を使用してアプリケーションをインスツルメントする +- link: https://learn.datadoghq.com/courses/configuring-ssi-k8s + tag: ラーニングセンター + text: Kubernetes でのシングルステップインスツルメンテーションの構成 +title: Kubernetes での Single Step APM インスツルメンテーション +type: multi-code-lang +--- +## 概要 {#overview} + +Kubernetes 環境では、APM 用のシングルステップインスツルメンテーション (SSI) を利用して Datadog Agent をインストールし、Datadog SDK を使ってアプリケーションを 1 ステップで[インスツルメント][3]します。 + +## 要件 {#requirements} + +- Kubernetes v1.20 以降。 +- [`Helm`][1] (Datadog Operator デプロイ用)。 +- [`Kubectl` CLI][2] (Datadog Agent インストール用)。 +- [シングルステップインスツルメンテーション互換性環境][36] に基づいて環境互換性確認済み。 + + +## アプリケーションで APM を有効にする {#enable-apm-on-your-applications} + +
    シングルステップインスツルメンテーションは、Datadog Agent がインストールされているネームスペースのアプリケーションをインスツルメントしません。アプリケーションを実行していない別のネームスペースに Agent をインストールしてください。
    + +クラスター全体でシングルステップインスツルメンテーションを有効にするための手順に従ってください。これにより、サポートされている言語で作成されたすべてのアプリケーションからトレースが自動的に送信されます。 + +**注:** 特定のネームスペースや Pod だけをインスツルメントするには、[高度なオプション](#advanced-options)のワークロードターゲティングを参照してください。 + +1. Datadog で、[Kubernetes に Datadog Agent をインストールする][11]のページに移動します。 +1. 画面の指示に従ってインストール方法を選択し、API キーを選択して、Operator または Helm のリポジトリをセットアップします。 +1. **構成`datadog-agent.yaml`**セクションで、**追加構成** >**アプリケーションの監視可能性**に移動し、**APM インスツルメンテーション**をオンにします。 + + {{< img src="tracing/trace_collection/k8s-apm-instrumentation-toggle.jpg" alt="Datadog アプリを通じて Kubernetes に Datadog Agent をインストールするための構成ブロック" style="width:100%;" >}} + +1. 生成される構成ファイルを使用して Agent をデプロイします。 +1. アプリケーションを再起動します。 + +
    SSI は、インスツルメントされたアプリケーションに若干の起動時間を追加します。このオーバーヘッドが実際の状況で受け入れられない場合は、Datadog サポートに連絡してください。
    + +## 統合サービスタグを構成する {#configure-unified-service-tags} + +統合サービスタグ (UST) は、トレース、メトリクス、ログを通じて一貫したタグを適用し、監視可能性データのナビゲートと相関を容易にします。UST は、自動ラベル抽出 (推奨)、`ddTraceConfigs` による明示的な構成、またはデプロイメントマニフェストで構成できます。 + +
    +Remote Configuration を使用している場合、自動ラベル抽出には互換性がありません。次のものを使用して、UST を明示的に構成する必要があります: ddTraceConfigs。 +
    + +### (推奨) 自動ラベル抽出を通じて UST を構成する {#recommended-configure-usts-through-automatic-label-extraction} + +SSI を使用すると、個々のデプロイメントに変更を加えることなく、Pod ラベルとメタデータから UST 値を自動的に抽出できます。そのためには、既存の Kubernetes ラベルを Datadog サービスタグにマッピングするように `kubernetesResourcesLabelsAsTags` を構成します。 + +**注:** この方法は Remote Configuration と互換性がありません。Remote Configuration を使用している場合は、[ddTraceConfigs で UST を明示的に構成する](#configure-usts-explicitly-with-ddtraceconfigs)を参照してください。 + +#### 前提条件 {#prerequisites} + +| コンポーネント | 最小バージョン | +|-----------|------------------| +| `datadog-agent` | 7.69 | +| `datadog-operator` | 1.16.0 | +| `datadog-helm-chart` | 3.120.0 | + +#### 構成 {#configuration} + +次の例では、`app.kubernetes.io/name` を、サービス名が含まれる任意のラベルに置き換えてください (例:`service.kubernetes.io/name` や `component`)。この方法で複数のラベルを構成できます。 + +```yaml +datadog: + # Automatically extract service names from Kubernetes labels + kubernetesResourcesLabelsAsTags: + pods: + app.kubernetes.io/name: service # Modern Kubernetes label + deployments.apps: + app.kubernetes.io/name: service + replicasets.apps: + app.kubernetes.io/name: service + + # Set environment globally for the entire cluster + tags: + - "env:production" + + apm: + instrumentation: + enabled: true +``` + +この構成により、Datadogはこのラベルを含むインスツルメントされた任意のワークロードに対して、`app.kubernetes.io/name` ラベルの値を使用することにより、`service` タグを自動的に設定します。 + +### ddTraceConfigs を使用して UST を明示的に構成する {#configure-usts-explicitly-with-ddtraceconfigs} + +ほとんどの場合、自動構成で十分です。とはいえ、特定のワークロードの設定を詳細に制御する必要がある場合は、`ddTraceConfigs` を使用することにより、明示的にラベルをサービス構成にマッピングします。 + +```yaml +datadog: + kubernetesResourcesLabelsAsTags: + pods: + app.kubernetes.io/name: service + deployments.apps: + app.kubernetes.io/name: service + + # Set environment globally for the entire cluster + tags: + - "env:production" + + apm: + instrumentation: + enabled: true + targets: + - name: frontend-services + podSelector: + matchLabels: + tier: frontend + ddTraceConfigs: + - name: DD_SERVICE # Explicitly override service name + valueFrom: + fieldRef: + fieldPath: metadata.labels['app.kubernetes.io/name'] + # DD_ENV inherited from cluster-level tags above + # DD_VERSION automatically extracted from image tags +``` + + +### デプロイメントマニフェストで UST を構成する {#configure-usts-in-deployment-manifests} + +UST 抽出に適したラベルを使用していないセットアップの場合は、環境変数を使用してデプロイメントマニフェストの中で直接 UST を設定できます。この方法では各デプロイメントに個別に変更を加える必要がありますが、細かい制御が可能になります。 + +手順について詳しくは、[Kubernetesサービスの UST 設定][5]を参照してください。 + +## SDK に依存する製品と機能を有効にする {#enable-sdk-dependent-products-and-features} + +SSI がアプリケーションに Datadog SDK をロードし、分散トレーシングを有効にした後、SDK に依存する追加の製品を構成できます。 + +{{< ssi-products >}} + +以下のいずれかのセットアップ方法を使用します。 + +- **[ワークロードターゲティングで構成する (推奨)](#target-specific-workloads)**: + + デフォルトの場合、シングルステップインスツルメンテーションはすべてのネームスペースのすべてのサービスをインスツルメントします。ワークロードターゲティングを使用して、インスツルメンテーションを特定のネームスペース、Pod、またはワークロードに制限し、カスタム構成を適用します。 + +- **[環境変数を設定する][7]**: + + アプリケーション構成で環境変数を直接設定することにより製品を有効にします。 + +## 高度なオプション {#advanced-options} + +以下の高度なオプションを使用することにより、シングルステップインスツルメンテーションが環境内でどのように動作するかをカスタマイズできます。これらの設定はオプションであり、通常、それらが必要になるのは特別なセットアップの場合だけです。 + +### 注入モードを構成する {#configure-injection-modes} + +SSI で複数の注入モードがサポートされており、それらは、インジェクターと APM ライブラリファイルがアプリケーションコンテナにどのように配信されるかを制御します。通常、この設定を手動で構成する必要はありません。Pod の初期化中に、顕著な Pod 起動遅延や予想以上のリソース消費 (CPU、メモリ) に気付いた場合は、調整を検討してください。インジェクターの動作について詳しくは、[シングルステップインスツルメンテーションによるインジェクターの動作][41]を参照してください。 + + +| モード | 説明 | 要件 | +|------|-------------|--------------| +| `init_container` | init コンテナは、アプリケーションコンテナにインジェクターと APM ライブラリファイルをコピーするために使用します。| Helm チャートまたは Datadog Operator でデプロイされたエージェント | +| `csi` | **プレビュー中。**[Datadog CSI ドライバー][37]を使用して、インジェクターと APM ライブラリファイルをマウントします。init コンテナモードと比較して、Pod の起動時間を短縮します。| Agent 7.76.0 以上、CSI ドライバー 1.2.0 以上、Helm Chart 3.178.1 以上、または Datadog Operator 1.25.0 以上| + +`csi` モードを使用する前に、Datadog CSI ドライバーをインストールし、アクティブにしてください。Helm でデプロイする場合は、`datadog.csi.enabled: true` を `datadog-values.yaml` に設定してください。インストール手順や GKE オートパイロットなど、環境固有の要件については、[CSI ドライバーのドキュメント][37]を参照してください。 + +#### 注入モードをグローバルに構成する {#configure-injection-mode-globally} + +{{< tabs >}} +{{% tab "Helm" %}} + +クラスター全体で注入モードを設定するには、`injectionMode` を `datadog-values.yaml` に追加します。 + +```yaml +datadog: + apm: + instrumentation: + injectionMode: +``` + +サポートされている値: `init_container`、`csi`。 + +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +クラスター全体で注入モードを設定するには、`injectionMode` を `datadog-agent.yaml` に追加します。 + +```yaml +features: + apm: + instrumentation: + injectionMode: +``` + +サポートされている値: `init_container`、`csi`。 + +Datadog Operator のバージョンが 1.25.0 未満の場合は、特定の Pod のインジェクションモードをオーバーライドするために、[Pod アノテーション](#configure-injection-mode-per-pod)を使用してください。 + +{{% /tab %}} +{{< /tabs >}} + +#### Pod ごとにインジェクションモードを構成する {#configure-injection-mode-per-pod} + +特定の Pod のインジェクションモードをオーバーライドするには、Pod の指定に次のアノテーションを追加します。 + +```yaml +metadata: + annotations: + admission.datadoghq.com/apm-inject.injection-mode: "" +``` + +サポートされている値: `init_container`、`csi`。 + +### 特定のワークロードをターゲットにする {#target-specific-workloads} + +デフォルトの場合、SSI はクラスター内のすべてのネームスペースのすべてのサービスをインスツルメントします。Agent のバージョンに応じて、インスツルメンテーションするサービスとその方法を微調整するために、以下の構成方法のいずれかを使用してください。 + +{{< tabs >}} + +{{% tab "Agent v7.64 以上 (推奨)" %}} + +`targets` ラベルを使用してターゲティングブロックを作成し、インスツルメンテーションするワークロードと適用する構成を指定します。 + +各ターゲットブロックには以下のキーがあります。 + +| キー | 説明 | +|------------------|-------------| +| `name` | ターゲットブロックの名前。これは監視状態には影響せず、メタデータとしてのみ使用されます。| +| `namespaceSelector` | インスツルメンテーションするネームスペース。以下のいずれかを使用して指定します:
    ~ `matchNames`: 1 つ以上のネームスペース名のリスト。
    ~ `matchLabels`: `{key,value}` のペアで定義される 1 つ以上のラベルのリスト。
    ~ `matchExpressions`: ネームスペースセレクタ要件のリスト。

    ネームスペースはすべての基準を満たす必要があります。詳細については、[Kubernetes セレクタのドキュメント][10]を参照してください。| +| `podSelector` | インスツルメンテーションする Pod。以下のいずれかを使用して指定します:
    ~ `matchLabels`: `{key,value}` のペアで定義される 1 つ以上のラベルのリスト。
    ~ `matchExpressions`: Pod セレクタ要件のリスト。

    Pod はすべての基準を満たす必要があります。詳細については、[Kubernetes セレクタのドキュメント][10]を参照してください。| +| `ddTraceVersions` | 各言語で使用する [Datadog APM SDK][9] のバージョン。| +| `ddTraceConfigs` | [統合サービスタグ][8]を設定できる APM SDK 構成、トレースを超えた [SDK 依存製品](#enable-sdk-dependent-products-and-features)を有効にし、他の [APM 設定][14]をカスタマイズします。| + +構成する必要があるファイルは、Single Step Instrumentation を有効にした方法によって異なります: +- Datadog Operator で SSI を有効にした場合は、`datadog-agent.yaml` を編集します。 +- Helm で SSI を有効にした場合は、`datadog-values.yaml` を編集します。 + +**注**: ターゲットは順番に評価され、最初の一致が優先されます。 + +#### 構成例 {#example-configurations} + +特定のサービスを選択する方法を示す以下の例をご確認ください。 + +{{< collapse-content title="例 1: 1 つを除くすべてのネームスペースを有効にする" level="h4" >}} + +この構成: +- は `jenkins` ネームスペースを除くすべてのネームスペースに対して APM を有効にします。 + - **注**: リストに記載されているネームスペース以外のすべてのネームスペースで無効にするには、`enabledNamespaces` を使用します。 +- は、デフォルトの Java SDK を使用してJavaアプリケーションを、また `v.3.1.0` の Python SDK を使用して Python アプリケーションをインスツルメントするよう、Datadog に対して指示します。 + +{{< highlight yaml "hl_lines=4-10" >}} + apm: + instrumentation: + enabled: true + disabledNamespaces: + - "jenkins" + targets: + - name: "all-remaining-services" + ddTraceVersions: + java: "default" + python: "3.1.0" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="例 2: 名前とラベルに基づいてネームスペースのサブセットをインスツルメントする" level="h4" >}} + +この構成は 2 つのターゲットブロックを作成します。 + +- 最初のブロック (名前は `login-service_namespace`): + - はネームスペース `login-service` 内のサービスに対して APM を有効にします。 + - は、このネームスペース内のサービスをデフォルトの Java SDK のバージョンでインスツルメントするよう、Datadog に対して指示します。 + - は、このターゲットグループの環境変数 `DD_PROFILING_ENABLED` を設定します。 +- 2 番目のブロック (名前は `billing-service_apps`) + - は、ラベル `app:billing-service` のネームスペース内のサービスに対して APM を有効にします。 + - は、このサービスセットを `v3.1.0` の Python SDK でインスツルメントするよう、Datadog に対して指示します。 + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "login-service_namespace" + namespaceSelector: + matchNames: + - "login-service" + ddTraceVersions: + java: "default" + ddTraceConfigs: + - name: "DD_PROFILING_ENABLED" ## profiling is enabled for all services in this namespace + value: "auto" + - name: "billing-service_apps" + namespaceSelector: + matchLabels: + app: "billing-service" + ddTraceVersions: + python: "3.1.0" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="例 3: 異なるトレーサーで異なるワークロードをインスツルメントする" level="h4" >}} + +この構成は次のことをします。 +- は、次のラベルの Pod に APM を有効にします。 + - `app:db-user` は、`db-user` アプリケーションを実行している Pod をマークします。 + - `webserver:routing` は、`request-router` アプリケーションを実行している Pod をマークします。 +- は、Datadog Tracer SDK のデフォルトバージョンを使用するよう、Datadog に対して指示します。 +- は、各ターゲットグループに適用される Datadog 環境変数を設定し、SDK を構成します。 + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "db-user" + podSelector: + matchLabels: + app: "db-user" + ddTraceVersions: + java: "default" + ddTraceConfigs: ## trace configs set for services in matching pods + - name: "DD_DATA_STREAMS_ENABLED" + value: "true" + - name: "user-request-router" + podSelector: + matchLabels: + webserver: "user" + ddTraceVersions: + php: "default" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="例 4: ネームスペース内の Pod をインスツルメントする" level="h4" >}} + +この構成: +- は、`login-service` ネームスペース内で、`app:password-resolver` のラベルの付いた Pod に対して APM を有効にします。 +- は、Datadog Java Tracer SDK のデフォルトバージョンを使用するよう、Datadog に対して指示します。 +- は、このターゲットに適用する Datadog 環境変数を設定します。 + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "login-service-namespace" + namespaceSelector: + matchNames: + - "login-service" + podSelector: + matchLabels: + app: "password-resolver" + ddTraceVersions: + java: "default" + ddTraceConfigs: + - name: "DD_PROFILING_ENABLED" + value: "auto" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="例 5: 一部の Pod をインスツルメントする matchExpressions" level="h4" >}} + +この構成は、`app=app1` または `app=app2` のいずれかのラベルの付いた Pod を除くすべての Pod に対して APM を有効にします。 + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "default-target" + podSelector: + matchExpressions: + - key: app + operator: NotIn + values: + - app1 + - app2 +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="例 6: 追加の製品を有効にする ddTraceConfigs" level="h4" >}} + +この構成は、`web-apps` ネームスペース内のサービスに [App and API protection (AAP)][12] および [Continuous Profiler][11] を有効にし、`ddTraceConfigs` を使用することにより必要な環境変数を設定します。 + +{{< highlight yaml "hl_lines=4-20" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "web-apps-with-security" + namespaceSelector: + matchNames: + - "web-apps" + ddTraceVersions: + java: "default" + python: "default" + ddTraceConfigs: + - name: "DD_APPSEC_ENABLED" + value: "true" + - name: "DD_PROFILING_ENABLED" + value: "auto" +{{< /highlight >}} + +SSI を通じて有効にできる製品の完全なリストについては、[SDK 依存の製品と機能を有効にする](#enable-sdk-dependent-products-and-features)を参照してください。 + +{{< /collapse-content >}} + +[8]: /ja/getting_started/tagging/unified_service_tagging/?tab=kubernetes +[9]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility/#tracer-libraries +[10]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements +[11]: /ja/profiler/ +[12]: /ja/security/application_security/ +[14]: /ja/tracing/trace_collection/library_config/ + +{{% /tab %}} + +{{% tab "Agent <=v7.63 (レガシー)" %}} + +#### ネームスペースのインスツルメンテーションを有効または無効にする {#enable-or-disable-instrumentation-for-namespaces} + +特定のネームスペース内のアプリケーションに対してインスツルメンテーションを有効または無効にすることができます。enabledNamespaces または disabledNamespaces のいずれか一方のみを設定できます。両方を設定することはできません。 + +どのファイルを編集するかは、Datadog Operator か Helm で Single Step Instrumentation を有効にしたかによって異なります。 + +{{< collapse-content title="Datadog Operator" level="h5" >}} + +特定のネームスペースでインスツルメンテーションを有効にするには、`enabledNamespaces` の構成を `datadog-agent.yaml` に追加します: + +{{< highlight yaml "hl_lines=5-7" >}} + features: + apm: + instrumentation: + enabled: true + enabledNamespaces: # Add namespaces to instrument + - default + - applications +{{< /highlight >}} + +特定のネームスペースでインスツルメンテーションを無効にするには、`disabledNamespaces` の構成を `datadog-agent.yaml` に追加します: + +{{< highlight yaml "hl_lines=5-7" >}} + features: + apm: + instrumentation: + enabled: true + disabledNamespaces: # Add namespaces to not instrument + - default + - applications +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="Helm" level="h5" >}} + +特定のネームスペースでインスツルメンテーションを有効にするには、`enabledNamespaces` の構成を `datadog-values.yaml` に追加します: + +{{< highlight yaml "hl_lines=5-7" >}} + datadog: + apm: + instrumentation: + enabled: true + enabledNamespaces: # Add namespaces to instrument + - namespace_1 + - namespace_2 +{{< /highlight >}} + +特定のネームスペースでインスツルメンテーションを無効にするには、`disabledNamespaces` の構成を `datadog-values.yaml` に追加します: + +{{< highlight yaml "hl_lines=5-7" >}} + datadog: + apm: + instrumentation: + enabled: true + disabledNamespaces: # Add namespaces to not instrument + - namespace_1 + - namespace_2 +{{< /highlight >}} + +{{< /collapse-content >}} + +#### SDK バージョンを指定する {#specify-sdk-versions} + +
    Datadog Cluster Agent v7.52.0 以上の場合、指定する SDK に基づいて、一部のアプリケーションのみを自動的にインスツルメントできます。
    + +それらの言語で作成されたアプリケーションを自動的にインスツルメントするには、Datadog SDK とそのバージョンを指定します。これは、次の優先順位で適用される 2 つの方法で構成できます。 + +1. [サービスレベルで指定する](#specify-at-the-service-level)、または +2. [クラスターレベルで指定する](#specify-at-the-cluster-level)。 + +**デフォルト**: ライブラリバージョンを一切指定しない場合、サポートされている言語で作成されたアプリケーションは、最新の SDK バージョンを使用して自動的にインスツルメントされます。 + +##### サービスレベルで指定する {#specify-at-the-service-level} + +特定のポッドで動作するアプリケーションを自動的にインスツルメントするには、Pod の仕様にアプリケーション対応の言語アノテーションとライブラリバージョンを追加してください。 + +| 言語 | Pod アノテーション | +|------------|-----------------------------------------------------------------------| +| Java | `admission.datadoghq.com/java-lib.version: ""` | +| Node.js | `admission.datadoghq.com/js-lib.version: ""` | +| Python | `admission.datadoghq.com/python-lib.version: ""` | +| .NET | `admission.datadoghq.com/dotnet-lib.version: ""` | +| Ruby | `admission.datadoghq.com/ruby-lib.version: ""` | +| PHP | `admission.datadoghq.com/php-lib.version: ""` | + +`` を、目的のライブラリのバージョンに置き換えてください。利用可能なライブラリのバージョンは、[Datadog コンテナレジストリ](#change-the-default-image-registry)、および各言語のトレーサーソースリポジトリに記載されています。 + +- [Java][34] +- [Node.js][35] +- [Python][36] +- [.NET][37] +- [Ruby][38] +- [PHP][39] + +
    注意が必要な場合として、 latest タグを使う場合があります。ライブラリのリリースの多くでは、それによって破壊的な変更をもたらされる可能性があります。
    + +たとえば、Java アプリケーションを自動的にインスツルメントする場合は以下のようになります。 + +{{< highlight yaml "hl_lines=10" >}} +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + # ... +spec: + template: + metadata: + annotations: + admission.datadoghq.com/java-lib.version: "" + spec: + containers: + - # ... +{{< /highlight >}} + +##### クラスターレベルで指定する {#specify-at-the-cluster-level} + +特定のPod に対してアノテーションを使用して自動インスツルメンテーションを有効にしていない場合、SSI 構成を使用してクラスター全体でインスツルメンテーションする言語を指定できます。`apm.instrumentation.libVersions` が設定されている場合、指定されたライブラリのバージョンを使用してインスツルメンテーションされるのは、指定された言語で作成されたアプリケーションだけです。 + +どのファイルを編集するかは、Datadog Operator か Helm で Single Step Instrumentation を有効にしたかによって異なります。 + +{{< collapse-content title="Datadog Operator" level="h5" >}} + +たとえば、.NET、Python、Node.js のアプリケーションをインスツルメントする場合、`datadog-agent.yaml` ファイルに以下の構成を追加します。 + +{{< highlight yaml "hl_lines=5-8" >}} + features: + apm: + instrumentation: + enabled: true + libVersions: # Add any libraries and versions you want to set + dotnet: "x.x.x" + python: "x.x.x" + js: "x.x.x" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="Helm" level="h5" >}} + +たとえば、.NET、Python、Node.js のアプリケーションをインスツルメントする場合、`datadog-values.yaml` ファイルに以下の構成を追加します。 + +{{< highlight yaml "hl_lines=5-8" >}} + datadog: + apm: + instrumentation: + enabled: true + libVersions: # Add any libraries and versions you want to set + dotnet: "x.x.x" + python: "x.x.x" + js: "x.x.x" +{{< /highlight >}} + +{{< /collapse-content >}} + + +[34]: https://github.com/DataDog/dd-trace-java/releases +[35]: https://github.com/DataDog/dd-trace-js/releases +[36]: https://github.com/DataDog/dd-trace-py/releases +[37]: https://github.com/DataDog/dd-trace-dotnet/releases +[38]: https://github.com/DataDog/dd-trace-rb/releases +[39]: https://github.com/DataDog/dd-trace-php/releases + + +{{% /tab %}} +{{< /tabs >}} + +### デフォルトのイメージレジストリを変更する {#change-the-default-image-registry} + +Datadog は、以下の gcr.io、Docker Hub、Amazon ECR にインスツルメンテーションライブラリのイメージを公開しています。 + +| 言語 | gcr.io | hub.docker.com | gallery.ecr.aws | +|------------|-------------------------------------|---------------------------------------------|-------------------------------------------| +| Java | [gcr.io/datadoghq/dd-lib-java-init][15] | [hub.docker.com/r/datadog/dd-lib-java-init][16] | [gallery.ecr.aws/datadog/dd-lib-java-init][17] | +| Node.js | [gcr.io/datadoghq/dd-lib-js-init][18] | [hub.docker.com/r/datadog/dd-lib-js-init][19] | [gallery.ecr.aws/datadog/dd-lib-js-init][20] | +| Python | [gcr.io/datadoghq/dd-lib-python-init][21] | [hub.docker.com/r/datadog/dd-lib-python-init][22] | [gallery.ecr.aws/datadog/dd-lib-python-init][23] | +| .NET | [gcr.io/datadoghq/dd-lib-dotnet-init][24] | [hub.docker.com/r/datadog/dd-lib-dotnet-init][25] | [gallery.ecr.aws/datadog/dd-lib-dotnet-init][26] | +| Ruby | [gcr.io/datadoghq/dd-lib-ruby-init][27] | [hub.docker.com/r/datadog/dd-lib-ruby-init][28] | [gallery.ecr.aws/datadog/dd-lib-ruby-init][29] | +| PHP | [gcr.io/datadoghq/dd-lib-php-init][30] | [hub.docker.com/r/datadog/dd-lib-php-init][31] | [gallery.ecr.aws/datadog/dd-lib-php-init][32] | + +Datadog Cluster Agent の構成の中の `DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY` 環境変数は、Admission Controller が使用するレジストリを指定します。デフォルト値は `gcr.io/datadoghq` です。 + +ローカルコンテナレジストリでイメージをホストしている場合は、`docker.io/datadog`、`public.ecr.aws/datadog`、または他の URL に変更することによって、別のレジストリから SDK をプルできます。 + +コンテナレジストリを変更する手順については、[コンテナレジストリの変更][33]を参照してください。 + +### プライベートコンテナレジストリを使用する {#use-a-private-container-registry} + +組織で公開レジストリ (`gcr.io`、`docker.io`、`public.ecr.aws` など) からの直接プルが許可されていない場合は、必要な Datadog イメージを内部でホスティングし、Admission Controller がそれらを使用するように構成できます。 + +プライベートコンテナレジストリで SSI を使用するには、次のようにします。 + +1. Datadog のコンテナイメージをプライベートレジストリにミラーリングするには、[これらの手順][34]に従ってください。 + + 必要なのは、インスツルメントする言語のイメージだけです。どのイメージが必要か不明な場合、ほとんどのケースをカバーする基本的なラインを以下に示します。 + + - `apm-inject` + - `dd-lib-java-init` + - `dd-lib-python-init` + - `dd-lib-dotnet-init` + - `dd-lib-php-init` + - `dd-lib-ruby-init` + - `dd-lib-js-init` + + これらのイメージは、[gcr.io][12]、[Docker Hub][13]、または [Amazon ECR Public Gallery][14] にあります。 + +2. イメージを構成に従ってタグ付けします。 + + ミラーリングするバージョンは、ワークロードで設定されているバージョンと一致している必要があります。これらは以下のいずれかの方法で設定されていることがあります。 + - `ddTraceVersions` を使用してAgent の設定でグローバルに、または + - `admission.datadoghq.com/java-lib.version` のようにアノテーションを使用して Pod ごとに。 + + 明示的にバージョンが設定されていない場合は、デフォルトバージョン (`0`) が使用されます。 + + たとえば、次のとおりです。 + + ``` + apm: + instrumentation: + enabled: true + targets: + - name: "default-target" + ddTraceVersions: + java: "1" + python: "3" + ``` + + この構成には、以下のイメージタグが必要です。 + - `apm-inject:0` + - `dd-lib-java-init:1` + - `dd-lib-python-init:3` + +3. プライベートレジストリを使用するよう、クラスター Agent 構成を更新します。 + + プライベートレジストリを使用するように、クラスター Agent 構成の中で `DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY` 環境変数を設定します。 + +コンテナレジストリを変更する詳細については、[コンテナレジストリの変更][33]を参照してください。 + +### EKS でのコンテナネットワークインターフェースの使用 {#using-a-container-network-interface-on-eks} + +Calicoのような CNI を使用する場合、コントロールプレーンノードは Datadog の Admission Controller へのネットワーク接続を開始できず、「アドレスが許可されていない」というエラーが報告されます。 +シングルステップインスツルメンテーションを使用するには、`useHostNetwork: true`パラメーターにより Datadog のクラスターエージェントに変更を加えます。 + +``` +datadog: + ... + +clusterAgent: + useHostNetwork: true + + admissionController: + ... +``` + +## シングルステップ APM インスツルメンテーションを Agent から削除する {#remove-single-step-apm-instrumentation-from-your-agent} + +特定のサービス、ホスト、VM、またはコンテナでトレースデータを収集したくない場合は、以下の手順を実行してください。 + +### 特定のサービスのインスツルメンテーションを削除する {#remove-instrumentation-for-specific-services} + +特定のサービスの APM インスツルメンテーションを削除してトレース送信を停止する場合は、以下のいずれかのようにすることができます。 + +#### インスツルメンテーションルールを使用して、特定のワークロードをターゲットにします (推奨)。{#use-instrumentation-rules-to-target-specific-workloads-recommended} + +インスツルメンテーションルール (Agent v7.64 以上で利用可能) を使用すると、特定のアプリケーションのトレースを有効または無効にできます。[構成の詳細についてはこちらでご確認ください](#advanced-options)。 + +#### Datadog Admission Controller を使用する {#use-the-datadog-admission-controller} + +代替手段として、またはインスツルメンテーションルールをサポートしていないエージェントバージョンの場合、Pod にラベルを追加することにより、Pod の変更を無効にすることもできます。 + +
    SSI を無効にすることに加えて、以下の手順により他の変更操作 Webhook は無効になります。注意して使用してください。
    + +1. Pod 指定で `admission.datadoghq.com/enabled:` ラベルを `"false"` に設定します。 + ```yaml + spec: + template: + metadata: + labels: + admission.datadoghq.com/enabled: "false" + ``` +2. 構成を適用します。 + ```shell + kubectl apply -f /path/to/your/deployment.yaml + ``` +3. インスツルメンテーションを削除したいサービスを再起動します。 + +### インフラストラクチャー上のすべてのサービスについて APM を削除する {#remove-apm-for-all-services-on-the-infrastructure} + +トレースの送信を停止するには、APM をアンインストールしてインフラストラクチャーを再起動してください: + +どのファイルを編集するかは、Datadog Operator か Helm で Single Step Instrumentation を有効にしたかによって異なります。 + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +1. `datadog-agent.yaml` の中で `instrumentation.enabled=false` を設定します。 + ```yaml + features: + apm: + instrumentation: + enabled: false + ``` + +2. 更新したコンフィギュレーションファイルで Datadog Agent をデプロイします。 + ```shell + kubectl apply -f /path/to/your/datadog-agent.yaml + ``` +{{% /tab %}} + +{{% tab "Helm" %}} + +1. `datadog-values.yaml` の中で `instrumentation.enabled=false` を設定します。 + ```yaml + datadog: + apm: + instrumentation: + enabled: false + ``` + +2. 次のコマンドを実行します。 + ```shell + helm upgrade datadog-agent -f datadog-values.yaml datadog/datadog + ``` +{{% /tab %}} +{{< /tabs >}} + +## ベストプラクティス {#best-practices} + +SSI を有効にすると、クラスターのうちサポートされているすべてのプロセスが自動的にインスツルメントされ、数分以内にトレース生成が開始されます。 + +どこで APM を有効にするかを制御して、オーバーヘッドを削減するため、以下のベストプラクティスを考慮してください。 + +{{% collapse-content title="制御された APM 展開のためにオプトインラベルを使用します。" level="h3" expanded=false id="id-for-anchoring" %}} + +#### デフォルトとオプトインインスツルメンテーション {#default-vs-opt-in-instrumentation} +| モード | 動作 | 使用する場合 | +| --- | ----------- | ----------- | +| デフォルト | クラスター内のサポートされている全プロセスがインスツルメントされます。| 小さなクラスターまたはプロトタイプ。| +| オプトイン | インスツルメンテーションを特定のネームスペースまたは Pod に制限するために、[インスツルメンテーションルール][4]を使用します。| プロダクションクラスター、段階的ロールアウト、またはコストが大きな問題となるユースケース。| + +#### 特定の Pod のインスツルメンテーションを有効にする {#example-enable-instrumentation-for-specific-pods} + +1. デプロイメントメタデータと Pod テンプレートの両方にとって意味のあるラベル (`datadoghq.com/apm-instrumentation: "enabled"` など) を追加します。 + + ``` + apiVersion: apps/v1 + kind: Deployment + metadata: + name: checkout-api + labels: + app: checkout-api + datadoghq.com/apm-instrumentation: "enabled" # opt-in label (cluster-wide) + spec: + replicas: 3 + selector: + matchLabels: + app: checkout-api + template: + metadata: + labels: + app: checkout-api + datadoghq.com/apm-instrumentation: "enabled" # opt-in label must be on *template*, too + # Unified Service Tags (recommended) + tags.datadoghq.com/service: "checkout-api" + tags.datadoghq.com/env: "prod" + tags.datadoghq.com/version: "2025-06-10" + spec: + containers: + - name: api + image: my-registry/checkout:latest + ports: + - containerPort: 8080 + ``` + +2. Datadog Agent Helm の構成で、SSI を有効にし、`podSelector` を使用することにより、オプトインラベルが一致する Pod のみに注入します。 + + ``` + apm: + instrumentation: + enabled: true + targets: + - name: apm-instrumented + podSelector: + matchLabels: + datadoghq.com/apm-instrumentation: "enabled" + ``` + +追加の例については、[インスツルメンテーションルール][4]を参照してください。 + +{{% /collapse-content %}} + + +{{% collapse-content title="どの Datadog SDK がロードされるかを制御する" level="h3" expanded=false id="id-for-anchoring" %}} + +Agent Helm の構成で `ddTraceVersions` を使用することにより、Datadog SDK の言語とバージョンの両方を制御します。これにより、不必要な SDK がダウンロードされるのを防ぎ、init コンテナのフットプリントを最小限に抑え、イメージサイズを削減し、より意図的なトレースのアップグレードが可能になります (たとえば、コンプライアンス要件を満たすため、またはデバッグを簡素化するため)。 + +#### 例: ネームスペースの Java SDK を指定する {#example-specify-a-java-sdk-for-a-namespace} + +`login-service` ネームスペースで、Java アプリケーションだけが実行されます。他の SDK のダウンロードを避けるため、そのネームスペースをターゲットとするように Agent を構成し、Java SDK バージョン 1.48.2 のみを注入します。 + + +``` +targets: + - name: login-service + namespaceSelector: + matchNames: ["login-service"] + ddTraceVersions: + java: "1.48.2" # pin version +``` + +#### デフォルトの構成 {#default-configuration} + +Pod が `ddTraceVersions` ルールに一致しない場合、デフォルトのターゲットが適用されます。 + +``` +targets: + - name: default-target # tag any pod *without* an override + ddTraceVersions: + java: "1" # stay on latest v1.x + python: "3" # stay on latest v3.x + js: "5" # NodeJS + php: "1" + dotnet: "3" +``` + +{{% /collapse-content %}} + +## トラブルシューティング {#troubleshooting} + +SSI で APM を有効にする際に問題が発生した場合は、[SSI トラブルシューティングガイド][35]を参照してください。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://v3.helm.sh/docs/intro/install/ +[2]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[3]: /ja/tracing/glossary/#instrumentation +[4]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/kubernetes/?tab=agentv764recommended#configure-instrumentation-for-namespaces-and-pods +[5]: /ja/getting_started/tagging/unified_service_tagging/?tab=kubernetes#containerized-environment +[7]: /ja/tracing/trace_collection/library_config/ +[11]: https://app.datadoghq.com/fleet/install-agent/latest?platform=kubernetes +[12]: https://gcr.io/datadoghq +[13]: https://hub.docker.com/u/datadog +[14]: https://gallery.ecr.aws/datadog +[15]: http://gcr.io/datadoghq/dd-lib-java-init +[16]: http://hub.docker.com/r/datadog/dd-lib-java-init +[17]: http://gallery.ecr.aws/datadog/dd-lib-java-init +[18]: http://gcr.io/datadoghq/dd-lib-js-init +[19]: http://hub.docker.com/r/datadog/dd-lib-js-init +[20]: http://gallery.ecr.aws/datadog/dd-lib-js-init +[21]: http://gcr.io/datadoghq/dd-lib-python-init +[22]: http://hub.docker.com/r/datadog/dd-lib-python-init +[23]: http://gallery.ecr.aws/datadog/dd-lib-python-init +[24]: http://gcr.io/datadoghq/dd-lib-dotnet-init +[25]: http://hub.docker.com/r/datadog/dd-lib-dotnet-init +[26]: http://gallery.ecr.aws/datadog/dd-lib-dotnet-init +[27]: http://gcr.io/datadoghq/dd-lib-ruby-init +[28]: http://hub.docker.com/r/datadog/dd-lib-ruby-init +[29]: http://gallery.ecr.aws/datadog/dd-lib-ruby-init +[30]: http://gcr.io/datadoghq/dd-lib-php-init +[31]: http://hub.docker.com/r/datadog/dd-lib-php-init +[32]: http://gallery.ecr.aws/datadog/dd-lib-php-init +[33]: /ja/containers/guide/changing_container_registry/ +[34]: /ja/containers/guide/sync_container_images/#copy-an-image-to-another-registry-using-crane +[35]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/troubleshooting +[36]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility/ +[37]: /ja/containers/kubernetes/csi_driver/ +[41]: /ja/tracing/guide/injectors/ \ No newline at end of file diff --git a/content/ja/universal_service_monitoring/_index.md b/content/ja/universal_service_monitoring/_index.md index a1dfe68340c..51935b5d8b8 100644 --- a/content/ja/universal_service_monitoring/_index.md +++ b/content/ja/universal_service_monitoring/_index.md @@ -4,17 +4,18 @@ aliases: cascade: algolia: rank: 70 +description: Universal Service Monitoring と Datadog Agent を使用することにより、コードインスツルメンテーションなしで、スタック全体のサービスの健全性メトリクスを監視します。 further_reading: - link: /universal_service_monitoring/setup/ tag: ドキュメント - text: ユニバーサルサービスモニタリングのセットアップ + text: Universal Service Monitoring の設定 - link: https://www.datadoghq.com/blog/universal-service-monitoring-datadog/ tag: ブログ text: ユニバーサルサービスモニタリングで数秒のうちにゴールデンシグナル - link: /getting_started/tagging/unified_service_tagging/ tag: ドキュメント text: 統合サービスタグ付け -- link: /tracing/service_catalog/ +- link: /tracing/software_catalog/ tag: ドキュメント text: Datadog に報告するサービスの発見とカタログ化 - link: /tracing/services/service_page/ @@ -23,42 +24,49 @@ further_reading: - link: /tracing/services/services_map/ tag: ドキュメント text: サービスマップについて読む -title: ユニバーサル サービス モニタリング +- link: https://www.datadoghq.com/blog/monitor-connection-churn-datadog/ + tag: ブログ + text: コネクションチャーンを監視し、改善するためのベストプラクティス +- link: https://www.datadoghq.com/blog/software-catalog/ + tag: ブログ + text: Software Catalog でデベロッパー エクスペリエンスとコラボレーションを向上させる +- link: https://learn.datadoghq.com/courses/getting-started-usm + tag: ラーニングセンター + text: Universal Service Monitoring (USM) の概要 +title: Universal Service Monitoring --- +## 概要 {#overview} -## 概要 - -ユニバーサルサービスモニタリング (USM) は、_コードをインスツルメンテーションすることなく_、スタック全体にわたってサービスの健全性メトリクスを一元的に視覚化します。USM は、構成された Datadog Agent と[統合サービスタグ付け][1]の存在のみに依存し、インスツルメンテーションされていないサービスのパフォーマンスデータをサービスカタログやサービスマップなどのビューに取り込みます。USM は、[デプロイ追跡][2]、モニター、ダッシュボード、および SLO とも連携します。 - -{{< img src="universal_service_monitoring/usm-demo.mp4" alt="ユニバーサルサービスモニタリングのデモビデオ。サービスの概要には、サービスマップでサービスをクリックし、View service overview を選択することでアクセスできます。" video="true" >}} +Universal Service Monitoring (USM) は、スタック全体のサービスの健全性メトリクスを、_コードのインスツルメンテーションなしで_可視化します。これは、構成されている Datadog Agent と [Unified Service Tagging][1] の存在のみに依存します。インスツルメンテーションがなされていないサービスのパフォーマンスデータを Software Catalog や Service Map などのビューに取り込みます。USM は、[デプロイ追跡][2]、モニター、ダッシュボード、SLO とも連携します。 -## セットアップ +{{< img src="universal_service_monitoring/usm-demo.mp4" alt="Universal Service Monitoring の紹介動画。サービスマップ上でサービスをクリックし、サービス概要の表示を選択することにより、サービスの概要を確認できます。" video="true" >}} -サポートされているプラットフォームとプロトコル、および開始手順については、[ユニバーサルサービスモニタリングのセットアップ][7]をお読みください。 +## セットアップ {#setup} -
    ベータ版: 追加のプロトコルと暗号化方式

    USM は、クラウドサービスの検出と、追加プロトコルとトラフィック暗号化方式のデコードをベータ版でサポートしています。詳細および非公開ベータ版へのアクセスリクエストについては、クラウドサービスの検出と追加プロトコルを参照してください。

    +サポートされているプラットフォームとプロトコルに関する情報、および利用開始の手順については、[Universal Service Monitoring のセットアップ][7]をお読みください。 +
    プレビュー: 追加のプロトコルと暗号化方式

    USM は、クラウドサービスの発見と追加のプロトコルおよびトラフィック暗号化方式のデコードに向けてプレビュー中です。詳細情報について、またはアクセスをリクエストすることについては、クラウドサービスの発見と追加のプロトコルをお読みください。

    -## 自動サービスタグ付け +## 自動サービスタグ付け {#automatic-service-tagging} -ユニバーサルサービスモニタリングは、インフラストラクチャーで稼働しているサービスを自動的に検出します。[統合サービスタグ付け][1]が見つからない場合、タグの 1 つ (`app`、`short_image`、`kube_container_name`、`container_name`、`kube_deployment`、`kube_service`) に基づいて名前を付けます。 +Universal Service Monitoring は、インフラストラクチャー内で実行されているサービスを自動的に検出します。[unified service tags][1] が見つからない場合は、次のタグのいずれかに基づいて名前が割り当てられます: `app`, `short_image`, `kube_container_name`, `container_name`, `kube_deployment`, `kube_service`。 サービス名を更新するには、[統合サービスタグ付け][1]を設定します。 -{{< img src="universal_service_monitoring/automatic-service-tagging.png" alt="Datadog がサービスを自動検出すると、その際に使用されるタグがサービスページの上部に表示されます" style="width:80%;" >}} +{{< img src="universal_service_monitoring/automatic-service-tagging.png" alt="Datadog がサービスを自動的に検出すると、そのために使用されるタグがサービスページの上部に表示されます。" style="width:80%;" >}} -## サービスの確認 +## サービスの確認 {#exploring-your-services} -Agent を構成した後、サービスカタログにサービスが表示されるまで約 5 分間待ちます。サービスをクリックすると、サービスの詳細ページが表示されます。左上の操作名 `universal.http.server` または `universal.http.client` は、サービスのテレメトリーがユニバーサルサービスモニタリングから来ることを示します。 +エージェントを設定した後、サービスが Software Catalog に表示されるまで約 5 分間待ちます。サービスをクリックして、サービスの詳細ページを表示します。左上に `universal.http.server` または `universal.http.client` の操作名が表示されている場合、サービスのテレメトリは Universal Service Monitoring からのものです。 -`universal.http.server` という操作名で、サービスへのインバウンドトラフィックのヘルスメトリクスを取得します。対応する `universal.http.client` 操作名は、他の宛先へのアウトバウンドトラフィックを表します。 +`universal.http.server` の操作名は、サービスへの受信トラフィックの健全性メトリクスが反映されます。対応する `universal.http.client` の操作名は、他の宛先への送信トラフィックを表します。 -{{< img src="universal_service_monitoring/select_service_operation_cropped.png" alt="The operation dropdown menu on the Services tab shows the available operation names" style="width:100%;" >}} +{{< img src="universal_service_monitoring/select_service_operation_cropped.png" alt="サービスタブの操作ドロップダウンメニューには、利用可能な操作の名前が表示されます。" style="width:100%;" >}} ユニバーサルサービスモニタリングを有効にすると、次のことが可能になります。 -- **APM** > **Service Catalog** または **APM** > **Service Map** に移動して、[サービスとその依存関係を視覚化します][3]。 +- **APM** > **Software Catalog** または **APM** > **Service Map** に移動して、[サービスとその依存関係を視覚化します][3]。 - 特定の Service ページをクリックして、ゴールデンシグナルメトリクス (リクエスト、エラー、期間) を確認し、[デプロイ追跡][2]で最近のコード変更と相関させることができます。 @@ -66,14 +74,14 @@ Agent を構成した後、サービスカタログにサービスが表示さ -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/getting_started/tagging/unified_service_tagging [2]: /ja/tracing/services/deployment_tracking/ -[3]: /ja/tracing/service_catalog/ +[3]: /ja/tracing/software_catalog/ [4]: /ja/monitors/types/apm/?tab=apmmetrics [5]: /ja/dashboards/ -[6]: /ja/service_management/service_level_objectives/metric/ -[7]: /ja/universal_service_monitoring/setup/ +[6]: /ja/service_level_objectives/metric/ +[7]: /ja/universal_service_monitoring/setup/ \ No newline at end of file diff --git a/content/ko/account_management/_index.md b/content/ko/account_management/_index.md index 2af3ec20902..19434beaa4a 100644 --- a/content/ko/account_management/_index.md +++ b/content/ko/account_management/_index.md @@ -5,97 +5,139 @@ aliases: cascade: algolia: rank: 70 -description: Datadog 계정과 조직을 관리하세요 +description: Datadog 계정 및 조직 관리 further_reading: - link: https://www.datadoghq.com/blog/volkswagen-organizations/ tag: 블로그 - text: 대규모 Datadog 조직 관리 모범 사례 + text: 대규모 Datadog 조직 관리의 모범 사례 title: 계정 관리 --- -{{< site-region region="gov" >}} -
    정부 사이트용 Datadog는 SAML 로그인만을 지원합니다.
    +{{< site-region region="gov,gov2" >}} +
    Datadog for Government 플랫폼은 SAML 또는 사용자 이름/이메일 및 비밀번호를 사용하는 기본 인증만 지원합니다. SAML 인증을 구성하기 전에, 하나 이상의 사용자 이름/이메일 및 비밀번호 계정이 설정되어 있어야 설정 프로세스 동안 액세스를 유지할 수 있습니다. Datadog에서는 비밀번호 기반 계정의 경우 다단계 인증(MFA)을 활성화할 것을 권장합니다. + +평가판 계정에 SAML을 활성화해야 하는 경우, Datadog 지원팀에 문의하세요.
    + {{< /site-region >}} -## 개인 설정 +## 개인 설정 {#personal-settings} -Datadog의 개인 설정 페이지를 사용하면 조직에서 다른 사람들에게 어떻게 표시되는지를 관리하고, 조직을 전환하거나 떠날 수 있습니다. 알림 설정 역시 관리할 수 있습니다. +Datadog의 개인 설정 페이지를 사용하면 사용자가 조직에서 다른 사용자들에게 어떻게 표시되는지 제어하고, 조직을 전환하거나 떠날 수 있으며 알림 기본 설정을 관리할 수 있습니다. -### 프로필 +### 프로필 {#profile} -사용자의 프로필은 조직에 소속된 다른 사람들이 Datadog에서 고객님을 인지하는 방식입니다. 이름, 이메일 주소, 직함을 **개인 설정** 페이지의 [프로필 탭][11]에서 설정하거나 갱신하세요. +프로필은 조직의 다른 사용자들이 Datadog에서 사용자를 알아보는 방식입니다. {{< ui >}}Personal Settings{{< /ui >}} 페이지의 [프로필 탭][11]에서 이름, 이메일 주소 및 직함을 설정하거나 업데이트하세요. -사진을 업데이트하려면 [Gravatar][1] 계정을 만든 다음 이메일 주소와 연동하세요. +사진을 업데이트하려면 [Gravatar][1]에 계정을 생성하여 이메일 주소와 연결합니다. -Google Authentication을 사용해 Datadog에 로그인하는 경우 이메일 주소는 Google 계정으로 설정되며 Datadog에서 편집할 수 **없습니다**. Google 이메일 주소를 변경하려면 [Google 설명서][2]를 참조하세요. +Google 인증을 사용하여 Datadog에 로그인하면 Google 계정이 이메일 주소를 제공하며, Datadog 내에서는 편집할 수 **없습니다**. Google에서 이메일 주소를 변경하는 방법은 [Google 설명서][2]를 참조하세요. -### 선호 사항 +### 기본 설정 {#preferences} -{{% site-region region="us,us3,us5,eu,ap1" %}} -**개인 설정** 페이지의 [기본 설정 탭][3]에서 시간대, 시각 접근성 설정, 이메일 구독을 관리할 수 있습니다. +{{% site-region region="us,us3,us5,eu,ap1,ap2" %}} +{{< ui >}}Personal Settings{{< /ui >}} 페이지의 [기본 설정 탭][3]에서 표준 시간대, 시간 형식, 시각 접근성 기본 설정과 이메일 구독을 관리할 수 있습니다. -#### 이메일 구독 +#### 이메일 구독 {#email-subscriptions} -이메일을 구독하면 다음 보고서에 액세스할 수 있습니다. -{{< site-region region="us3,us5,gov,ap1" >}} -
    이메일 다이제스트는 선택한 사이트 ({{< region-param key="dd_site_name" >}})에서 사용할 수 없습니다.
    +이메일 구독 아래에서 다음 보고서에 액세스할 수 있습니다. +{{< site-region region="us3,us5,gov,gov2,ap1,ap2" >}} +
    이메일 다이제스트는 몇몇 사이트에서는 사용할 수 없습니다({{< region-param key="dd_site_name" >}}).
    {{< /site-region >}} -* 일간 다이제스트 +* 일일 다이제스트 * 주간 다이제스트 -이메일 다이제스트가 관련성이 있는지 확실하지 않다면 각 이메일 구독 옆의 **예시** 링크를 클릭해 예시를 살펴보세요. 또 **모든 구독 해제** 버튼을 선택해 이메일 구독을 모두 해제할 수 있습니다. +이메일 다이제스트가 본인과 관련이 있는지 잘 모르는 경우, 각 이메일 구독 옆에 있는 {{< ui >}}Example{{< /ui >}} 링크를 클릭하여 예시를 조회할 수 있습니다. {{< ui >}}Unsubscribe From All{{< /ui >}} 버튼을 사용하여 모든 이메일 구독을 구독 취소할 수도 있습니다. {{% /site-region %}} -{{% site-region region="gov" %}} -**개인 설정** 페이지의 [**기본 설정** 탭][3]에서 시간대, 시각 접근성 설정을 관리할 수 있습니다. +{{% site-region region="gov,gov2" %}} +{{< ui >}}Personal Settings{{< /ui >}} 페이지의 [**기본 설정** 탭][3]에서 표준 시간대, 시간 형식, 시각 접근성 기본 설정을 관리할 수 있습니다. {{% /site-region %}} -#### 시각 접근성 +#### 시간 형식 {#time-format} + +Datadog에 시간이 12시간 형식 또는 24시간 형식 중 무엇으로 표시될지 선택합니다(예: "2:30 pm" 또는 "14:30"). 새 계정은 기본적으로 12시간 형식으로 설정됩니다. 그래프 및 특정 표 형식 데이터는 항상 24시간 형식으로 표시됩니다. + +#### 시각 접근성 {#visual-accessibility} + +시각 접근성 기본 설정에는 다섯 가지 설정이 있어 색각 이상, 저시력 및 밝은 색상에 대한 민감증에 대처합니다. 접근성이 우수한 색상 설정을 옵트인하면 Datadog이 일반적인 색상판을 사용하는 모든 그래프를 사용자의 시각적 필요에 맞춰 조정된, 접근성이 우수한 색상 세트로 변환합니다. + +**참고**: 시각 접근성 기본 설정은 브라우저에 로컬로 저장됩니다. 다른 브라우저를 사용하거나 캐시를 지우면 해당 기본 설정은 기본값 설정으로 설정됩니다. + +### 조직 {#organizations} + +{{< ui >}}Personal Settings{{< /ui >}}의 [조직 탭][12]에 사용자와 연결된 모든 조직이 목록으로 나열됩니다. 이 페이지에서 이러한 조직을 전환하거나 왼쪽 탐색 창의 계정 메뉴 위에 마우스 커서를 올리세요. + +**참고**: 조직을 떠나면 해당 조직의 관리자가 초대해 주지 않는 이상 다시 참여할 수 없습니다. + +기존 조직에 참여하려면 관리자가 초대해 주어야 합니다. 초대되고 나면 제목이 "<조직 이름>에 참여하도록\초대됨"인 이메일이 발송됩니다. 이메일의 {{< ui >}}Join Account{{< /ui >}} 버튼을 클릭하세요. + +조직 관리자인 경우, 다음에 관한 추가 설명서를 참조하세요. + +* [조직의 사용자 관리][4] +* [SAML을 사용한 Single Sign On(SSO) 구성][5] +* [조직 이름 바꾸기][6] +* [다중 조직 계정 관리][7] +* [Datadog 요금제 변경 및 사용량과 청구 기록 조회][8] +* [조직 토폴로지 선택(단일 조직 vs. 다중 조직)][15] + +### 보안 {#security} + +#### 애플리케이션 키 {#application-keys} + +{{< ui >}}Personal Settings{{< /ui >}}의 [애플리케이션 키 탭][13]을 사용하면 애플리케이션 키를 관리할 수 있습니다. 키를 복사하려면 복사하고자 하는 키에 마우스 커서를 올리고 키 오른쪽에 {{< ui >}}Copy Key{{< /ui >}} 아이콘이 표시되면 해당 아이콘을 클릭합니다. 특정 키를 클릭해 이름을 편집하고, 언제 생성되었는지 조회하고, 키 소유자의 프로필을 조회하고, 키를 복사하거나 취소할 수도 있습니다. -시각 접근성 환경설정에는 색약, 저시력, 밝은 색 민감도를 해결해 드리는 5가지 설정이 있습니다. 컬러 접근성 설정을 선택하면 Datadog은 클래식 색상표를 사용하는 모든 그래프를 고객님의 시각적 요구 사항에 맞는 컬러 접근성 설정으로 변환합니다. +#### 앱 {#apps} -**참고**: 시각 접근성 환경설정은 브라우저에 로컬 저장됩니다. 다른 브라우저를 사용하거나 캐시를 삭제하면 기본 설정이 적용됩니다. +{{< ui >}}Personal Settings{{< /ui >}}의 [앱 탭][14]을 사용하면 조직 구성원이 설치했거나 생성한 앱을 관리할 수 있습니다. 검색 문자열로 앱을 필터링하거나, 체크박스를 사용하여 활성화된 앱이나 비활성화된 앱만 조회할 수도 있습니다. -### 조직 +앱 위에 마우스 커서를 올리면 앱 목록 오른쪽에 해당 앱을 활성화 또는 비활성화하는 옵션이 표시됩니다. -**개인 설정**의 [조직 탭][12]은 사용자가 소속된 모든 조직의 목록을 표시합니다. 본 페이지에서 조직 간 전환하거나, 왼쪽 내비게이션의 계정 메뉴 위에 커서를 올려 전환합니다. +#### 이메일 확인 {#email-verification} +이메일 주소를 확인하여 계정 보안을 강화하고 더 많은 관리 기능에 액세스하세요. 확인된 사용자는 자신의 계정 보안을 더 주도적으로 제어할 수 있고 자신이 속한 모든 조직을 볼 수 있습니다. -**참조**: 더 이상 조직 소속이 아닌 경우, 조직 관리자가 초대하지 않는 이상 다시 조직에 참여할 수 없습니다. +- **Google 로그인 사용자**는 처음 로그인할 때 자동으로 확인됩니다. +- **비밀번호 기반 사용자**는 비밀번호를 처음 설정할 때 이메일을 확인합니다. +- **SAML 사용자**는 반드시 Datadog을 통해 이메일을 수동으로 확인해야 합니다. -기존 조직에 참여하려면 관리자가 초대해야 합니다. 초대를 받았다면 \"에 참여하도록 초대받았습니다'라는 제목의 이메일이 발송됩니다. 이메일의 **계정 참여** 버튼을 클릭합니다. +확인하고 나면 다음과 같은 기능에 액세스할 수 있게 됩니다. +- 여러 장치 전체에서 **모든 활성 웹 세션에서 로그아웃**할 수 있어 자격 증명 침해 시 보안이 보장됩니다. +- 현재 조직 계층 구조 외부의 **조직을 조회하고 조직 간에 전환**할 수 있습니다. -사용자가 조직 관리자인 경우 다음의 추가 설명서를 확인하시기 바랍니다. +확인되지 않은 사용자도 Datadog에 액세스할 수는 있지만, 자신의 계층구조 내에 속한 조직을 조회하는 데만 제한되며 활성 세션을 취소할 수 없습니다. -* [조직 사용자 관리하기][4] -* [SAML 싱글 사인온 설정하기][5] -* [조직 이름 변경하기][6] -* [여러 조직의 계정 관리하기][7] -* [Datadog 요금제 변경 및 사용량, 요금 청구 내역 확인하기][8] +#### 이메일 확인하기 {#verify-your-email} -### 보안 +이메일을 확인하는 방법: +1. {{< ui >}}Profile Settings{{< /ui >}}로 이동합니다. +2. {{< ui >}}Verify Account{{< /ui >}}를 클릭합니다. +3. 등록 이메일로 발송된 **확인 코드**를 입력합니다. +4. {{< ui >}}Submit{{< /ui >}}을 클릭하여 확인 프로세스를 완료합니다. -#### 애플리케이션 키 +#### 모든 활성 웹 세션에서 로그아웃 {#log-out-of-all-active-web-sessions} -**개인 설정**의 [애플리케이션 키 탭][13]에서는 애플리케이션 키를 관리할 수 있습니다. 키를 복사하려면 오른쪽에 **키 복사하기** 아이콘이 나타날 때까지 커서를 올렸다가 클릭하세요. 특정 키를 클릭하여 이름 수정, 생성일시 확인, 키 소유자의 프로필 조회, 복사, 권한 취소를 할 수 있습니다. +모든 활성 웹 세션에서 로그아웃하는 방법: +모든 활성 웹 세션에서 로그아웃하면 사용 중인 것을 포함한 장치 전체의 모든 현재 세션에서 로그아웃됩니다. -#### 앱 -**개인 설정**의 [앱 탭][14]에서는 조직 구성원이 설치 또는 생성한 앱을 관리할 수 있습니다. 검색 문자열로 앱을 필터링하거나 체크박스를 사용해 활성화 또는 비활성화된 앱만 확인하도록 선택할 수 있습니다. +모든 활성 세션에서 로그아웃하는 방법: +1. {{< ui >}}Personal Settings{{< /ui >}}로 이동합니다. +2. {{< ui >}}Log Out of All Web Sessions{{< /ui >}}를 클릭합니다. +3. 액션을 확인합니다. -앱 위로 마우스를 올리면 앱 목록의 오른쪽에 활성화 또는 비활성화 옵션이 표시됩니다. +확인하고 나면 모든 장치에서 로그아웃되며 다시 로그인해야 합니다. -## 디스플레이 +## 디스플레이 {#appearance} -사이드바의 아바타 위에 커서를 두거나 `Ctrl+Opt+D` / `Ctrl+Alt+D` 키를 누르면 Datadog를 어두운 모드로 볼 수 있습니다. +Datadog을 다크 모드로 보려면 사이드바의 아바타 위로 마우스 커서를 올리거나 `Ctrl+Opt+D`/`Ctrl+Alt+D`를 누르세요. -컴퓨터 디스플레이 설정에 맞게 조정하려면 *System* 옵션을 선택하세요. 이는 Datadog의 디스플레이를 OS 수준에서 설정한 테마와 자동으로 일치시킵니다. +컴퓨터의 디스플레이 설정에 따라 맞추려면 {{< ui >}}System{{< /ui >}} 옵션을 선택합니다. 이렇게 하면 Datadog의 디스플레이를 사용자가 OS 수준에서 설정한 테마에 자동으로 일치시킵니다. -## GitHub에 연결 +## GitHub에 연결 {#connecting-to-github} -Datadog에서 이벤트를 생성하기 위해 [GitHub 통합][9]를 설치한 경우, 개인 GitHub 계정을 Datadog 사용자 계정에 연결합니다. 계정을 연결하면 Datadog에서 GitHub 이벤트에 게시한 모든 댓글이 자동으로 GitHub의 해당 이슈 또는 풀 리퀘스트에 재게시됩니다. +Datadog에 이벤트를 생성하려고 [GitHub 통합][9]을 설치한 경우, 개인 GitHub 계정을 Datadog 사용자 계정에 연결하세요. 계정을 연결하면 Datadog의 GitHub 이벤트에 게시하는 모든 코멘트가 GitHub의 해당 문제 또는 풀 요청에 자동으로 게시됩니다. -## 조직의 계정 비활성화하기 +## 조직의 계정 비활성화 {#disabling-your-organizations-account} Datadog 조직 계정을 비활성화하려면 [Datadog 지원 팀][10]에 문의하세요. @@ -112,4 +154,5 @@ Datadog 조직 계정을 비활성화하려면 [Datadog 지원 팀][10]에 문 [11]: https://app.datadoghq.com/personal-settings/profile [12]: https://app.datadoghq.com/personal-settings/organizations [13]: https://app.datadoghq.com/personal-settings/application-keys -[14]: https://app.datadoghq.com/personal-settings/apps \ No newline at end of file +[14]: https://app.datadoghq.com/personal-settings/apps +[15]: /ko/getting_started/organization_topology/ \ No newline at end of file diff --git a/content/ko/agent/_index.md b/content/ko/agent/_index.md index aff76fd13f4..fda5b82f8cb 100644 --- a/content/ko/agent/_index.md +++ b/content/ko/agent/_index.md @@ -24,20 +24,23 @@ cascade: description: Agent 설치 및 구성을 통한 데이터 수집 further_reading: - link: /logs/ - tag: Documentation + tag: 설명서 text: 로그 수집 - link: /infrastructure/process/ - tag: Documentation + tag: 설명서 text: 프로세스 수집 - link: /tracing/ - tag: Documentation + tag: 설명서 text: 트레이스 수집 - link: /agent/faq/why-should-i-install-the-agent-on-my-cloud-instances/ - tag: Documentation + tag: 설명서 text: 클라우드 인스턴스에 Agent를 설치하는 이유가 무엇인가요? - link: https://www.datadoghq.com/blog/dont-fear-the-agent/ - tag: Blog - text: 손쉽게 활용 가능한 Agent + tag: 블로그 + text: Agent를 두려워하지 마세요. +- link: https://learn.datadoghq.com/courses/agent-on-host + tag: 학습 센터 + text: 호스트의 Agent title: Agent ---
    @@ -53,58 +56,58 @@ Datadog Agent는 호스트에서 실행되는 소프트웨어입니다. 호스 {{< partial name="platforms/platforms.html" links="platforms" >}}

    -Datadog은 Datadog Agent를 마이너 릴리스와 패치 릴리스별로, 또는 적어도 매월 업데이트하시길 권장합니다.

    +Datadog에서는 Datadog Agent를 마이너 릴리스 및 패치 릴리스별로, 또는 적어도 매월 업데이트하도록 권장합니다.

    -주요 Datadog Agent 버전으로 업그레이드하고 업데이트를 유지하는 것이 최신 Datadog Agent 기능과 수정 사항을 이용할 수 있는 유일한 지원 방법입니다.

    -

    Agent를 완전히 설치하는 것이 좋습니다. 그러나 Amazon Linux, CentOS, Debian, Fedora, Red Hat, SUSE 및 Ubuntu에서 독립 실행형 DogStatsD 패키지를 사용할 수 있습니다. 이 패키지는 DogStatsD가 사이드카로 실행되는 컨테이너화된 환경이나 전체 Agent 기능 없이 DogStatsD 서버를 실행하는 환경에서 사용됩니다.

    +주요 Datadog Agent 버전으로 업그레이드하고 업데이트된 상태를 유지하는 것이 최신 Datadog Agent 기능과 수정 사항을 이용하기 위해 지원되는 유일한 방법입니다.

    +

    Agent를 완전히 설치하는 것이 좋습니다. 그러나 Amazon Linux, CentOS, Debian, Fedora, Red Hat, SUSE 및 Ubuntu에서 독립 실행형 DogStatsD 패키지도 사용할 수 있습니다. 이 패키지는 DogStatsD가 사이드카로 실행되는 컨테이너화된 환경이나 전체 Agent 기능 없이 DogStatsD 서버를 실행하는 환경에서 사용됩니다.

    ## Agent 관리 {#managing-the-agent} -### Fleet Automation을 통한 Agent 관리(권장) {#managing-the-agent-with-fleet-automation-recommended} -[Fleet Automation][15]은 대규모로 Datadog Agent를 설치, 업그레이드, 구성 및 문제를 해결하는 기본적인 인앱 워크플로입니다. +### Fleet Automation으로 Agent 관리(권장) {#managing-the-agent-with-fleet-automation-recommended} +[Fleet Automation][15]은 Datadog Agent를 대규모로 설치, 업그레이드, 구성 및 문제 해결하는 기본적인 인앱 워크플로입니다. -{{< img src="/agent/basic_agent_usage/basic_agent_2_july_25.png" alt="Fleet Automation 뷰를 통해 한 곳에서 Datadog Agent를 중앙에서 관리할 수 있습니다." style="width:100%;">}} +{{< img src="/agent/basic_agent_usage/basic_agent_2_july_25.png" alt="Fleet Automation 뷰를 통해 한곳에서 Datadog Agent를 중앙에서 관리할 수 있습니다." style="width:100%;">}} -- **구성 및 이력 보기**: 한 페이지에서 플릿에 있는 모든 Agent와 그 버전, 활성화된 제품, 구성 파일 및 변경 내역을 확인하세요. +- **{{< ui >}}View configuration & history{{< /ui >}}**: 플릿의 모든 Agent, 해당 버전, 활성화된 제품, 구성 파일 및 변경 기록을 한 페이지에서 확인하세요. - **[오래된 Agent 업그레이드][13]**: 몇 번의 클릭으로 Agent를 원격으로 업그레이드하여 플릿을 최신 상태로 유지하세요. -- **[지원을 위한 플레어 전송][14]**: 호스트의 Support 탭에서 플레어를 생성하고 명령줄을 사용할 필요 없이 기존 또는 새로운 지원 케이스에 첨부하세요. -- **API-키 사용 감사**: 특정 API 키를 사용하는 Agent를 파악하고 안전하게 키를 로테이션하세요. +- **[지원을 위한 flare 전송][14]**: 호스트의 {{< ui >}}Support{{< /ui >}} 탭에서 flare를 생성하고 명령줄을 사용할 필요 없이 기존 또는 신규 지원 케이스에 첨부하세요. +- **API 키 사용량 감사**: 어느 Agent가 특정 API 키를 사용 중인지 파악하여 안전하게 키를 회전합니다. ### Datadog Agent Manager GUI {#datadog-agent-manager-gui} -
    Agent GUI는 32비트 Windows 플랫폼에서 지원되지 않습니다.
    +
    Agent GUI는 32비트 Windows 플랫폼에서는 지원되지 않습니다.
    다음에 Datadog Agent Manager GUI를 사용합니다. -- Agent용 상태 정보 보기 -- 모든 실행 중인 검사 보기 +- Agent의 상태 정보 보기 +- 실행 중인 검사 모두 보기 - Agent 로그 보기 -- Agent 구성 파일(`datadog.yaml`) 수정 -- Agent 검사 추가 또는 수정 -- 플레어 전송 +- Agent 구성 파일(`datadog.yaml`) 편집 +- Agent 검사 추가 또는 편집 +- flare 전송 -Datadog Agent Manager GUI는 기본적으로 Windows 및 macOS에서 활성화되어 있으며, 포트 `5002`에서 실행됩니다. 기본 웹 브라우저에서 GUI를 열려면 `datadog-agent launch-gui` 명령을 사용하세요. +Datadog Agent Manager GUI는 Windows 및 macOS에서 기본적으로 활성화되며, 포트 `5002`에서 실행됩니다. 기본 웹 브라우저에서 GUI를 열려면 `datadog-agent launch-gui` 명령을 사용하세요. -GUI의 기본 포트는 `datadog.yaml` 구성 파일에서 변경할 수 있습니다. GUI를 비활성화하려면 포트 값을 `-1`로 설정하세요. Linux에서는 기본적으로 GUI가 비활성화되어 있습니다. +GUI의 기본 포트는 `datadog.yaml` 구성 파일에서 변경할 수 있습니다. GUI를 비활성화하려면 포트의 값을 `-1`로 설정하세요. Linux에서는 기본적으로 GUI가 비활성화되어 있습니다. GUI 요구 사항: -- 브라우저에서 쿠키를 활성화한 상태여야 합니다. GUI는 브라우저에서 토큰을 생성하고 저장합니다. 이 토큰은 GUI 서버와의 모든 커뮤니케이션을 인증하는 데 사용됩니다. -- GUI를 시작하려면 사용자에게 필수 권한이 있어야 합니다. `datadog.yaml`을 열 수 있으면 GUI를 사용할 수 있는 것입니다. -- 보안상의 이유로 **오직** 로컬 네트워크 인터페이스(`localhost`/`127.0.0.1`)에서만 GUI에 액세스할 수 있으므로 Agent가 실행 중인 호스트에서 작업해야 합니다. VM이나 컨테이너에서 Agent를 실행하고 호스트 시스템에서 액세스할 수 없습니다. +- 브라우저에서 쿠키를 활성화해야 합니다. GUI는 브라우저에서 토큰을 생성하고 저장하는데, 이를 활용해 GUI 서버와의 모든 커뮤니케이션을 인증합니다. +- GUI를 시작하려면 사용자에게 필수 권한이 있어야 합니다. `datadog.yaml`을 열 수 있으면 GUI를 사용할 수 있습니다. +- 보안상의 이유로 GUI는 로컬 네트워크 인터페이스**에서만** 액세스할 수 있으므로(`localhost`/`127.0.0.1`), Agent를 실행 중인 호스트에서 작업해야 합니다. VM이나 컨테이너에서 Agent를 실행하고 호스트 시스템에서 액세스할 수 없습니다. ### 명령줄 인터페이스 {#command-line-interface} -Agent 6 이상 버전부터 Agent 명령줄 인터페이스는 하위 명령을 기반으로 합니다. Agent 하위 명령의 전체 목록은 [Agent 명령][2]을 참조하세요. +Agent 6 이후 버전부터는 Agent 명령줄 인터페이스가 하위 명령 기반입니다. Agent 하위 명령의 전체 목록을 보려면 [Agent 명령어][2]를 참조하세요. -## Datadog Agent로 더 나아가기 {#getting-further-with-the-datadog-agent} +## Datadog Agent 더 자세히 알아보기{#getting-further-with-the-datadog-agent} ### Agent 업데이트 {#update-the-agent} -지정된 호스트의 부차 버전 두 개 사이에서 Datadog Agent 코어를 수동으로 업데이트하려면 [플랫폼에 해당하는 설치 명령][7]을 실행합니다. +지정된 호스트의 부차 버전 두 개 사이에 Datadog Agent 코어를 수동으로 업데이트하려면 [플랫폼에 해당하는 설치 명령][7]을 실행합니다. -**참고**: 특정 Agent 통합을 수동으로 업데이트하려면 [통합 관리 가이드][8]를 참조하세요. +**참고**: 하나의 특정 Agent 통합을 수동으로 업데이트하려면, [통합 관리 가이드][8]를 참조하세요. ### 구성 파일 {#configuration-files} @@ -112,7 +115,7 @@ Agent 6 이상 버전부터 Agent 명령줄 인터페이스는 하위 명령을 ### Datadog 사이트 {#datadog-site} -[Agent 주 구성 파일][10] `datadog.yaml`을 수정해 `site` 파라미터를 설정하세요(기본값: `datadoghq.com`). +[Agent의 메인 구성 파일][10]인 `datadog.yaml`을 편집하여 `site` 파라미터를 설정합니다(기본값은 `datadoghq.com`임). ```yaml site: {{< region-param key="dd_site" >}} @@ -126,41 +129,41 @@ site: {{< region-param key="dd_site" >}} ## Agent 오버헤드 {#agent-overhead} -다음은 Datadog Agent 리소스 소비량 예시입니다. 테스트는 Amazon EC2 머신 `c5.xlarge` 인스턴스(4 VCPU/8GB RAM)에서 수행되었으며 유사한 리소스를 가진 ARM64 기반 인스턴스에서도 비슷한 성능이 관찰되었습니다. Agent 자체를 모니터링하기 위해 기본 `datadog-agent`가 프로세스 검사와 함께 실행되었습니다. 통합을 더 활성화하면 Agent 리소스 소비량이 늘어날 수 있습니다. -JMX 검사를 활성화하면 모니터링 중인 JVM이 노출하는 빈의 개수에 따라 Agent의 메모리 사용량이 늘어납니다. 트레이스 및 프로세스 Agent를 활성화해도 리소스 소비량이 늘어납니다. +다음은 Datadog Agent 리소스 사용량 예시입니다. 테스트는 Amazon EC2 머신 `c5.xlarge` 인스턴스(4 VCPU/ 8GB RAM)에서 진행했으며, 비슷한 리소스를 갖춘 ARM64 기반 인스턴스에서 그에 필적하는 성능이 확인되었습니다. 기본 `datadog-agent`가 Agent 자체를 모니터링하기 위해 프로세스 검사와 함께 실행 중이었습니다. 더 많은 통합을 활성화하면 Agent 리소스 소비량이 늘어날 수 있습니다. +JMX 점검을 활성화하면 모니터링 중인 JVM으로 노출되는 빈의 개수에 따라 Agent의 메모리 사용량이 늘어납니다. 트레이스 및 프로세스 Agent를 활성화하면 리소스 사용량도 늘어납니다. -* Agent 테스트 버전: 7.34.0 +* Agent Test 버전: 7.34.0 * CPU: 평균적으로 CPU의 약 0.08% 사용 * 메모리: RAM 약 130MB 사용(RSS 메모리) * 네트워크 대역폭: 약 140B/s ▼ | 800B/s ▲ * 디스크: - * Linux 830MB~880MB(분포에 따라 결정됨) + * Linux 830MB~880MB(배포에 따라 다름) * Windows: 870MB **로그 수집**: -아래는 파일 하나에서 [HTTP 포워더][6]를 활성화하여 *초당 로그 110KB*를 수집해 얻은 결과입니다. 리소스 사용량의 변화를 사용할 수 있는 여러 압축 수준에서 보여줍니다. +아래의 결과는 [HTTP 포워더][6]를 활성화한 상태로 파일 하나에서 *초당 로그 110KB*를 수집하여 얻은 것입니다. 리소스 사용량의 변화를 사용할 수 있는 여러 압축 수준에서 보여줍니다. {{< tabs >}} {{% tab "HTTP 압축 수준 6" %}} -* Agent 테스트 버전: 6.15.0 -* CPU: 평균적으로 CPU의 약 1.5% 사용 -* 메모리: RAM 약 95MB 사용 +* Agent Test 버전: 6.15.0 +* CPU: 평균적으로 CPU의 약 1.5% +* 메모리: RAM 약 95MB 사용. * 네트워크 대역폭: 약 14KB/s ▲ {{% /tab %}} {{% tab "HTTP 압축 수준 1" %}} -* Agent 테스트 버전: 6.15.0 +* Agent Test 버전: 6.15.0 * CPU: 평균적으로 CPU의 약 1% 사용 -* 메모리: RAM 약 95MB 사용 +* 메모리: RAM 약 95MB 사용. * 네트워크 대역폭: 약 20KB/s ▲ {{% /tab %}} {{% tab "HTTP 비압축" %}} -* Agent 테스트 버전: 6.15.0 +* Agent Test 버전: 6.15.0 * CPU: 평균적으로 CPU의 약 0.7% 사용 * 메모리: RAM 약 90MB 사용(RSS 메모리) * 네트워크 대역폭: 약 200KB/s ▲ @@ -171,21 +174,21 @@ JMX 검사를 활성화하면 모니터링 중인 JVM이 노출하는 빈의 개 ## 추가 리소스 {#additional-resources} {{< whatsnext desc="이 섹션에는 다음 주제가 포함되어 있습니다.">}} - {{< nextlink href="/agent/kubernetes">}}Kubernetes: Kubernetes에 Datadog Agent를 설치하고 구성합니다.{{< /nextlink >}} - {{< nextlink href="/agent/cluster_agent">}}Cluster Agent: 오케스트레이션된 클러스터에서 모니터링 데이터를 효율적으로 수집하기 위해 구축된 Datadog Agent의 버전인 Kubernetes용 Cluster Agent를 설치하고 구성합니다.{{< /nextlink >}} - {{< nextlink href="/agent/amazon_ecs">}}Amazon ECS: Amazon ECS에 Datadog Agent를 설치하고 구성합니다.{{< /nextlink >}} - {{< nextlink href="integrations/ecs_fargate/">}}AWS Fargate: AWS Fargate에서 Amazon ECS로 Datadog Agent를 설치하고 구성합니다.{{< /nextlink >}} - {{< nextlink href="/agent/iot">}}IoT: IoT 장치 및 임베디드 애플리케이션 모니터링에 최적화된 Datadog Agent 버전인 Datadog IoT Agent를 설치하고 구성합니다.{{< /nextlink >}} + {{< nextlink href="/agent/kubernetes">}}Kubernetes: Datadog Agent를 Kubernetes에 설치하고 구성합니다.{{< /nextlink >}} + {{< nextlink href="/agent/cluster_agent">}}Cluster Agent: Cluster Agent for Kubernetes를 설치하고 구성합니다. 이것은 오케스트레이션된 클러스터 전체에서 모니터링 데이터를 효율적으로 수집하도록 구축된 Datadog Agent 버전입니다.{{< /nextlink >}} + {{< nextlink href="/agent/amazon_ecs">}}Amazon ECS: Datadog Agent를 Amazon ECS에 설치하고 구성합니다.{{< /nextlink >}} + {{< nextlink href="integrations/ecs_fargate/">}}AWS Fargate: Datadog Agent를 AWS Fargate 기반 Aamzon ECS를 사용하여 설치하고 구성합니다.{{< /nextlink >}} + {{< nextlink href="/agent/iot">}}IoT: Datadog IoT Agent를 설치하고 구성합니다. 이것은 IoT 장치 및 임베디드 애플리케이션 모니터링에 최적화된 Datadog Agent 버전입니다.{{< /nextlink >}} {{< nextlink href="/agent/logs">}}로그 수집: Datadog Agent에서 로그 수집을 활성화하고 구성합니다.{{< /nextlink >}} - {{< nextlink href="/agent/configuration/proxy">}}프록시: 네트워크 구성으로 인해 아웃바운드 트래픽이 제한되는 경우 Agent 트래픽에 프록시를 사용합니다.{{< /nextlink >}} - {{< nextlink href="/agent/versions/">}}버전: Agent 7은 Datadog Agent의 최신 주요 버전입니다. 주요 Agent 버전 간의 변경 사항과 업그레이드 방법을 알아보세요.{{< /nextlink >}} - {{< nextlink href="/agent/troubleshooting">}}문제 해결: Datadog Agent에 대한 문제 해결 정보를 찾습니다.{{< /nextlink >}} - {{< nextlink href="/agent/guide">}}가이드: Agent 사용에 관한 상세한 단계별 튜토리얼입니다.{{< /nextlink >}} - {{< nextlink href="/agent/security">}}보안: 고객이 환경을 안전하게 유지하기 위해 사용할 수 있는 주요 보안 기능 및 특징에 대한 정보입니다.{{< /nextlink >}} - {{< nextlink href="/getting_started/observability_pipelines">}}Observability Pipelines 및 Datadog 구성: Observability Pipelines Worker를 애그리게이터로 배포하여 모든 로그와 메트릭을 수집 및 변환하고 원하는 대상으로 라우팅합니다.{{< /nextlink >}} + {{< nextlink href="/agent/configuration/proxy">}}프록시: 네트워크 구성이 아웃바운드 트래픽을 제한하는 경우, Agent 트래픽에 프록시를 사용하세요.{{< /nextlink >}} + {{< nextlink href="/agent/versions/">}}버전: Agent 7이 Datadog Agent의 최신 주 버전입니다. 여러 Agent 주 버전 간 변경 사항과 업그레이드 방법을 알아보세요.{{< /nextlink >}} + {{< nextlink href="/agent/troubleshooting">}}문제 해결: Datadog Agent의 문제 해결 정보를 찾아보세요.{{< /nextlink >}} + {{< nextlink href="/agent/guide">}}가이드: Agent 사용에 관한 심층적, 단계별 튜토리얼입니다.{{< /nextlink >}} + {{< nextlink href="/agent/security">}}보안: 고객 환경의 보안을 확보하기 위해 고객이 사용할 수 있는 주요 보안 성능 및 기능에 관한 정보입니다.{{< /nextlink >}} + {{< nextlink href="/getting_started/observability_pipelines">}}Observability Pipelines 및 Datadog 구성: Observability Pipelines Worker를 애그리게이터로 배포하여 모든 로그와 메트릭을 수집, 변환하고, 원하는 대상으로 라우팅합니다.{{< /nextlink >}} {{< /whatsnext >}} -## 참고 자료 {#further-reading} +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/agent/configuration/agent-commands.md b/content/ko/agent/configuration/agent-commands.md index da315fab0ac..3332d080b03 100644 --- a/content/ko/agent/configuration/agent-commands.md +++ b/content/ko/agent/configuration/agent-commands.md @@ -7,95 +7,94 @@ aliases: - /ko/agent/faq/start-stop-restart-the-datadog-agent - /ko/agent/faq/agent-commands - /ko/agent/guide/agent-commands -description: Agent 시작, 중지, 문제 해결 및 관리를 위한 Datadog Agent 명령의 전체 참조입니다. +description: Agent를 시작, 중지, 문제 해결 및 관리하기 위한 Datadog Agent 명령의 전체 참조 자료입니다. further_reading: - link: /agent/troubleshooting/ tag: 설명서 - text: Agent 트러블슈팅 + text: Agent 문제 해결 title: Agent 명령 --- -
    -서비스 래퍼 명령을 사용할 수 없는 Linux 기반 시스템의 경우 문의해 주시면 대체 목록을 알려드립니다. +Linux 기반 시스템이고 service 래퍼 명령을 사용할 수 없는 경우, 대안 목록을 참조하세요.
    -## Agent 시작/중지/다시 시작 +## Agent 시작, 중지 및 재시작 {#start-stop-and-restart-the-agent} -### Agent 시작 +### Agent 시작 {#start-the-agent} Datadog Agent를 시작하는 명령 목록: -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |------------|--------------------------------------------------------------------| | AIX | `startsrc -s datadog-agent` | -| Linux | 사용 중인 OS에 대한 [Agent 문서][1]를 참고하세요. | -| 도커(Docker) | [설치 명령][2]을 사용합니다. | +| Linux | 해당하는 OS의 [Agent 설명서][1] 참조. | +| Docker | [설치 명령][2] 사용. | | Kubernetes | `kubectl create -f datadog-agent.yaml` | | macOS | `launchctl start com.datadoghq.agent` *또는* systray 앱 사용 | | 소스 | `sudo service datadog-agent start` | -| 윈도우즈(Windows) | [Windows Agent 문서][3]를 참고하세요. | +| Windows | [Windows Agent 설명서][3] 참조. | -### Agent 중지 +### Agent 중지 {#stop-the-agent} Datadog Agent를 중지하는 명령 목록: -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |------------|----------------------------------------------------------------------------------| | AIX | `stopsrc -s datadog-agent` | -| Linux | 사용 중인 OS에 대한 [Agent 문서][1]를 참고하세요. | -| 도커(Docker) | `docker exec -it agent stop` | -| Kubernetes | `kubectl delete pod `—참고: 파드가 자동으로 재예약됩니다 | +| Linux | 해당하는 OS의 [Agent 설명서][1] 참조. | +| Docker | `docker exec -it agent stop` | +| Kubernetes | `kubectl delete pod `—참고: 포드는 자동으로 다시 예약됨 | | macOS | `launchctl stop com.datadoghq.agent` *또는* systray 앱 사용 | | 소스 | `sudo service datadog-agent stop` | -| 윈도우즈(Windows) | [Windows Agent 문서][3]를 참고하세요. | +| Windows | [Windows Agent 설명서][3] 참조. | -### 에이전트 재시작 +### Agent 재시작 {#restart-the-agent} -Datadog Agent를 다시 시작하는 명령 목록: +Datadog Agent를 재시작하는 명령 목록: -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |------------|----------------------------------------------------------------------------------| -| Linux | 사용 중인 OS에 대한 [Agent 문서][1]를 참고하세요. | -| 도커(Docker) | [설치 명령][2]을 사용합니다. | -| Kubernetes | `kubectl delete pod `—참고: 파드가 자동으로 재예약됩니다 | -| macOS | 에이전트를 중지한 후 다음으로 시작:
    `launchctl stop com.datadoghq.agent`
    `launchctl start com.datadoghq.agent`
    또는 Systray 앱 사용 | +| Linux | 해당하는 OS의 [Agent 설명서][1] 참조. | +| Docker | [설치 명령][2] 사용. | +| Kubernetes | `kubectl delete pod `—참고: 포드는 자동으로 다시 예약됨 | +| macOS | 다음을 사용하여 Agent를 중지하고 시작:
    `launchctl stop com.datadoghq.agent`
    `launchctl start com.datadoghq.agent`
    또는 systray 앱 사용 | | 소스 | *지원되지 않는 플랫폼* | -| 윈도우즈(Windows) | [Windows Agent 문서][3]를 참고하세요. | +| Windows | [Windows Agent 설명서][3] 참조. | -## 에이전트 상태 및 정보 +## Agent 상태 및 정보 {#agent-status-and-information} -### 서비스 상태 +### 서비스 상태 {#service-status} Datadog Agent의 상태를 표시하는 명령 목록: -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |-----------------|-------------------------------------------------------------------------------| | AIX | `lssrc -s datadog-agent` | -| Linux | 사용 중인 OS에 대한 [Agent 문서][1]를 참고하세요. | -| Docker (Debian) | `sudo docker exec -it s6-svstat /var/run/s6/services/agent/` | +| Linux | 해당하는 OS의 [Agent 설명서][1] 참조. | +| Docker(Debian) | `sudo docker exec -it s6-svstat /var/run/s6/services/agent/` | | Kubernetes | `kubectl exec -it -- s6-svstat /var/run/s6/services/agent/` | | macOS | `launchctl list com.datadoghq.agent` *또는* systray 앱 사용 | | 소스 | `sudo service datadog-agent status` | -| 윈도우즈(Windows) | [Windows Agent 문서][4]를 참고하세요. | -| [Cluster Agent (Kubernetes)][5] | `datadog-cluster-agent status` | +| Windows | [Windows Agent 설명서][4] 참조. | +| [클러스터 에이전트(Kubernetes)][5] | `datadog-cluster-agent status` | -### Agent 정보 +### Agent 정보 {#agent-information} -Datadog Agent와 활성화된 통합의 상태를 표시하는 명령 목록: +Datadog Agent 및 활성화된 통합의 상태를 표시하는 명령 목록입니다. -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |------------|------------------------------------------------------| | AIX | `datadog-agent status` | | Linux | `sudo datadog-agent status` | -| 도커(Docker) | `sudo docker exec -it agent status` | +| Docker | `sudo docker exec -it agent status` | | Kubernetes | `kubectl exec -it -- agent status` | -| macOS | `datadog-agent status` 또는 [web GUI][6]에서 | +| macOS | `datadog-agent status` 또는 [웹 GUI][6] 사용 | | 소스 | `sudo datadog-agent status` | -| 윈도우즈(Windows) | [Windows Agent 문서][4]를 참고하세요. | -| [Cluster Agent (Kubernetes)][5] | `datadog-cluster-agent status` | +| Windows | [Windows Agent 설명서][4] 참조. | +| [클러스터 에이전트(Kubernetes)][5] | `datadog-cluster-agent status` | -올바르게 구성된 통합은 아래에서 볼 수 있듯이 경고나 오류 없이 **Running Checks**에 표시됩니다. +적절하게 구성된 통합은 아래와 같이 경고나 오류 없이 **Running Checks** 아래에 표시됩니다: ```text Running Checks @@ -109,43 +108,46 @@ Running Checks Average Execution Time : 0ms ``` -## 기타 명령 +## 기타 명령 {#other-commands} + +Agent 명령줄 인터페이스는 하위 명령 기반입니다. 사용 가능한 하위 명령의 목록을 보려면 다음 실행: -Agent 명령줄 인터페이스는 하위 명령 기반입니다. 사용 가능한 하위 명령 목록을 보려면 다음을 실행하세요. ```shell --help ``` -서브 명령어를 실행하려면 Agent 바이너리를 호출해야 합니다. +하위 명령을 실행하려면 Agent 바이너리를 호출해야 함: + ```shell ``` -일부 옵션에는 플래그와 옵션이 있으며, '--help'에서 상세하게 설명하고 있습니다. 예를 들어, 'check' 서브 명령어를 사용하려면 다음을 수행하세요. +일부 옵션에는 플래그 및 옵션이 있습니다(자세한 내용은 `--help` 참조). 예를 들어 도움말을 `check` 하위 명령과 함께 사용: + ```shell check --help ``` -| 하위 명령 | 참고 | +| 하위 명령 | 참고 사항 | |-------------------|-----------------------------------------------------------------------------| -| `check` | 지정된 점검을 실행합니다. | +| `check` | 지정된 검사를 실행합니다. | | `config` | [런타임 구성 관리][7]. | -| `configcheck` | 실행 중인 Agent에서 로드되고 해결된 구성을 모두 출력합니다. | -| `diagnose` | 시스템에 대한 연결 진단을 실행합니다. | -| `flare` | [플레어를 수집하여 Datadog에 보냅니다][8]. | +| `configcheck` | 실행 중인 Agent의 로드된 구성 및 해결된 구성을 모두 출력합니다. | +| `diagnose` | 시스템에서 연결 진단을 실행합니다. | +| `flare` | [flare를 수집하여 Datadog으로 보냅니다][8]. | | `health` | 현재 Agent 상태를 출력합니다. | -| `help` | 모든 명령과 관련한 도움말. | +| `help` | 모든 명령에 관한 도움말입니다. | | `hostname` | Agent가 사용하는 호스트 이름을 출력합니다. | -| `import` | 이전 버전의 Agent에서 구성 파일을 가져와 변환합니다. | -| `jmx` | JMX 트러블슈팅. | +| `import` | Agent의 이전 버전에서 구성 파일을 가져오고 변환합니다. | +| `jmx` | JMX 문제 해결입니다. | | `launch-gui` | Datadog Agent GUI를 시작합니다. | -| `restart-service` | 서비스 컨트롤 관리자에서 Agent를 다시 시작합니다. Windows만 해당. | -| `start-service` | 서비스 컨트롤 관리자에서 Agent를 시작합니다. Windows만 해당. | -| `stream-logs` | 실행 중인 Agent가 처리하는 로그를 스트리밍합니다. | -| `stopservice` | 서비스 컨트롤 관리자에서 Agent를 중지합니다. Windows만 해당. | +| `restart-service` | 서비스 제어 관리자 내에서 Agent를 재시작합니다. Windows 전용입니다. | +| `start-service` | 서비스 제어 관리자 내에서 Agent를 재시작합니다. Windows 전용입니다. | +| `stream-logs` | 실행 중인 에이전트가 처리하고 있는 로그를 스트리밍합니다. | +| `stopservice` | 서비스 제어 관리자 내에서 Agent를 중지합니다. Windows 전용입니다. | | `version` | 버전 정보를 출력합니다. | -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/bits_ai/mcp_server/setup.md b/content/ko/bits_ai/mcp_server/setup.md new file mode 100644 index 00000000000..5cbf406fc49 --- /dev/null +++ b/content/ko/bits_ai/mcp_server/setup.md @@ -0,0 +1,771 @@ +--- +algolia: + rank: 75 + tags: + - mcp + - mcp server + - setup +description: AI 에이전트를 Datadog MCP 서버에 연결하는 방법을 알아보세요. +further_reading: +- link: bits_ai/mcp_server + tag: 설명서 + text: Datadog MCP 서버 +- link: bits_ai/mcp_server/tools + tag: 설명서 + text: Datadog MCP 서버 도구 +- link: ide_plugins/vscode/?tab=cursor + tag: 설명서 + text: Cursor용 Datadog 확장 +title: Datadog MCP 서버 설정 +--- +Datadog MCP 서버를 설정하고 구성하는 방법을 알아보세요. 이 서버를 사용하면 텔레메트리 인사이트를 검색하고 AI 기반 클라이언트에서 직접 플랫폼 기능을 관리할 수 있습니다. 클라이언트 선택: + +{{< tabs >}} +{{% tab "Claude" %}} + +Claude(Claude Cowork 포함)를 Datadog MCP 서버에 연결하려면, 원격 MCP URL을 사용하여 {{< ui >}}custom connector{{< /ui >}}로 추가합니다. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. 새 사용자 지정 커넥터를 추가하려면 Claude 도움말 센터의 [사용자 지정 커넥터][1] 가이드를 참조하세요. + +1. URL을 입력하라는 메시지가 표시되면 [Datadog 사이트][2]의 Datadog MCP 서버 엔드포인트를 입력합니다({{< region-param key="dd_site_name" >}}). 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. +
    {{< region-param key="mcp_server_endpoint" >}}
    + + [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 메시지가 표시되면 OAuth 로그인 플로를 완료합니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +[1]: https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp +[2]: /ko/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 Datadog 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +{{% /tab %}} + +{{% tab "Claude Code" %}} + +AI 에이전트가 지역 [Datadog 사이트][1]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. 터미널에서 실행: +
    claude mcp add --transport http datadog-mcp {{< region-param key="mcp_server_endpoint" >}}
    + + 또는 `~/.claude.json`에 다음 추가: +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "type": "http",
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +         }
    +       }
    +    }
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +
    원격 인증을 사용할 수 없는 경우, 대신 로컬 바이너리 인증을 사용하세요.
    + +[1]: /ko/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} + +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    + +{{< /site-region >}} + +[1]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "Codex" %}} + +AI 에이전트가 지역 [Datadog 사이트][1]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. 사이트 HTTP 전송 및 엔드포인트 URL을 사용하여 Datadog MCP 서버를 추가하려면 `~/.codex/config.toml`(또는 Codex CLI 구성 파일)을 편집합니다. 예: + +
    [mcp_servers.datadog]
    +   url = "{{< region-param key="mcp_server_endpoint" >}}"
    +   
    + + [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. Datadog MCP 서버에 로그인: + + ```shell + codex mcp login datadog + ``` + + 이렇게 하면 브라우저가 열려 OAuth 플로를 완료할 수 있습니다. 그 결과로 얻게 되는 자격 증명을 Codex가 저장하기 때문에 토큰이 만료될 때까지 다시 로그인할 필요가 없습니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "Cursor" %}} + +Cursor Marketplace에서 [Datadog 플러그인][1]을 설치합니다. 해당 플러그인에 Datadog MCP 서버 및 기타 리소스가 포함되어 있습니다. 이전에 수동으로 Datadog MCP 서버를 설치한 경우, IDE의 구성에서 해당 서버를 제거해야 충돌을 피할 수 있습니다. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. 플러그인은 Cursor Marketplace에서나, Cursor 안에서 설치할 수 있습니다. + - Cursor Marketplace에서 [Datadog 플러그인][1]을 열고 **Cursor에 추가**를 클릭합니다. + - Cursor에서는 **Cursor 설정** > **플러그인**으로 이동한 다음 Datadog 플러그인을 검색하고 **Cursor에 추가**를 클릭합니다. + +1. 플러그인을 설치한 다음, 에이전트 채팅에 `/ddsetup`을 입력하여 첫 설정을 수행합니다. +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +[1]: https://cursor.com/marketplace/datadog +[2]: /ko/ide_plugins/vscode/?tab=cursor#installation +[3]: /ko/bits_ai/mcp_server/tools +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: https://cursor.com/marketplace/datadog +{{% /tab %}} + +{{% tab "Devin" %}} + +Devin을 Datadog MCP 서버에 연결하려면 Devin의 MCP Marketplace에서 해당 서버를 활성화합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. Devin에서 {{< ui >}}Settings{{< /ui >}} > {{< ui >}}MCP Marketplace{{< /ui >}}로 이동하여 `Datadog`을 검색합니다. +1. {{< ui >}}Server URL{{< /ui >}}에 사용할 Datadog 사이트를 선택합니다. 예를 들어, 선택한 사이트가 다음과 같습니다. {{< region-param key="dd_site_name" code="true" >}}. +1. Datadog API 및 애플리케이션 키를 입력합니다. +1. 서버를 설치하고 활성화한 다음, 메시지가 표시되면 OAuth 로그인 플로를 완료합니다. +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +
    제품별 도구 세트를 사용하려면 Devin에서 사용자 지정 MCP 서버를 설정한 다음 엔드포인트 URL 끝에 toolsets 쿼리를 포함합니다. 자세한 정보는 도구 세트를 참조하세요. +
    + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +{{% /tab %}} + +{{% tab "Gemini CLI" %}} + +AI 에이전트가 지역 [Datadog 사이트][1]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 **Datadog 사이트** 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. 터미널에서 실행: +
    gemini mcp add --transport http datadog {{< region-param key="mcp_server_endpoint" >}}
    + + 또는 `~/.gemini/settings.json`에 다음 추가: +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "httpUrl": "{{< region-param key="mcp_server_endpoint" >}}"
    +        }
    +      }
    +    }
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +
    원격 인증을 사용할 수 없는 경우, 대신 로컬 바이너리 인증을 사용하세요.
    + +[1]: /ko/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "Goose" %}} + +AI 에이전트가 지역 [Datadog 사이트][3]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. 다음 중 한 가지 방법을 사용하여 Datadog MCP 서버를 Goose에 추가합니다. + - **원클릭 설치(권장):** Datadog MCP 서버 사용 {{< region-param key="goose_mcp_install_deeplink" link="true" text="install deeplink" >}}. + - **수동 구성:** Goose의 [MCP 서버 추가][2] 지침을 따르되, 이 섹션에 나열된 엔드포인트를 스트림 가능한 HTTP 서버 URL로 사용합니다. 구성을 직접 편집하려면 `~/.config/goose/config.yaml`을 수정하세요. + +1. [제품별 도구][1]를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다. + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + + To enable all generally available toolsets, use `toolsets=all`. This works best for clients that support tool filtering. + +1. 첫 번째 세션 시작 시, 인증하라는 메시지가 표시되면 Datadog 계정을 선택합니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +[1]: /ko/bits_ai/mcp_server#toolsets +[2]: https://goose-docs.ai/docs/getting-started/using-extensions#mcp-servers +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[3]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "JetBrains IDE" %}} + +JetBrains는 다양한 자사 IDE에서 사용할 수 있는 [Junie][1] 및 [AI Assistant][2] 플러그인을 제공합니다. GitHub는 [Copilot][4] 플러그인을 제공합니다. 한편, 많은 개발자가 IDE와 함께 Claude Code, Codex 또는 Gemini CLI와 같은 에이전트 CLI를 사용합니다. + +플러그인이 지역 [Datadog 사이트][3]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +{{% collapse-content title="Junie" level="h4" expanded=false id="jetbrains-junie" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}Junie{{< /ui >}} > {{< ui >}}MCP Settings{{< /ui >}}로 이동하여 다음 블록 추가: + +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "type": "http",
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +        }
    +      }
    +    }
    +    
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. OAuth를 통해 로그인하라는 메시지가 표시됩니다. 연결에 성공하면 설정의 상태 표시기에 녹색 체크 표시가 표시됩니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{% /collapse-content %}} + +{{% collapse-content title="JetBrains AI Assistant" level="h4" expanded=false id="jetbrains-ai-assistant" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}AI Assistant{{< /ui >}} > {{< ui >}}Model Context Protocol (MCP){{< /ui >}}로 이동하여 다음 블록 추가: + +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +          "headers": {
    +            "DD_API_KEY": "<YOUR_API_KEY>",
    +            "DD_APPLICATION_KEY": "<YOUR_APP_KEY>"
    +          }
    +        }
    +      }
    +    }
    +    
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 연결에 성공하면 설정의 상태 표시기에 녹색 체크 표시가 표시됩니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{% /collapse-content %}} + +{{% collapse-content title="GitHub Copilot" level="h4" expanded=false id="github-copilot" %}} +1. {{< ui >}}Tools{{< /ui >}} > {{< ui >}}GitHub Copilot{{< /ui >}} > {{< ui >}}Model Context Protocol (MCP){{< /ui >}}로 이동하여 다음 블록 추가: + +
    {
    +      "servers": {
    +        "datadog": {
    +          "type": "http",
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +        }
    +      }
    +    }
    +    
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 편집기에 표시되는 `Start` 요소를 클릭하여 서버를 시작합니다. OAuth를 통해 로그인하라는 메시지가 표시됩니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{% /collapse-content %}} + +{{% collapse-content title="에이전트 CLI" level="h4" expanded=false id="jetbrains-agent-clis" %}} +많은 개발자가 JetBrains IDE와 함께 Claude Code, Codex 또는 Gemini CLI와 같은 에이전트 CLI를 사용합니다. 그러한 CLI 도구의 구성 참조: +- [Claude Code][4] +- [Codex][5] +- [Gemini CLI][6] + +[JetBrains IDE용 Datadog 플러그인][3]은 이러한 에이전트 CLI와 통합됩니다. 무중단 경험을 보장하려면 Datadog MCP 서버를 구성할 때 플러그인을 동시에 설치하세요. + +[3]: /ko/ide_plugins/idea/ +[4]: /ko/bits_ai/mcp_server/setup/?tab=claudecode +[5]: /ko/bits_ai/mcp_server/setup/?tab=codex +[6]: /ko/bits_ai/mcp_server/setup/?tab=geminicli +{{% /collapse-content %}} +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: https://plugins.jetbrains.com/plugin/26104-junie-the-ai-coding-agent-by-jetbrains +[2]: https://plugins.jetbrains.com/plugin/22282-jetbrains-ai-assistant +[3]: /ko/getting_started/site/ +[4]: https://plugins.jetbrains.com/plugin/17718-github-copilot--your-ai-pair-programmer +{{% /tab %}} + +{{% tab "Kiro" %}} + +AI 에이전트가 지역 [Datadog 사이트][3]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. [Kiro MCP 구성 파일][2]에 다음 추가(사용자 범위 구성용 `~/.kiro/settings/mcp.json`): + +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +        }
    +      }
    +    }
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +[2]: https://kiro.dev/docs/mcp/configuration/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[3]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "OpenCode" %}} + +공식 [Datadog OpenCode 플러그인][2](미리 보기)을 사용하여 [OpenCode][3]를 Datadog MCP 서버에 연결하세요. 이 플러그인이 MCP 서버 항목을 `opencode.json`에 쓰고 유지 관리하며 에이전트가 설정, 사이트 변경 사항 및 [도구 세트](#toolsets) 선택을 처리하는 데 사용하는 `ddsetup`, `ddconfig`, `ddtoolsets` 도구를 노출합니다. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} + +1. 플러그인을 `opencode.json` 구성 파일에 추가합니다. 파일 생성(파일이 없는 경우): + +
    {
    +     "plugin": ["@datadog/opencode-plugin"]
    +   }
    + + If a `plugin` array already exists, add `"@datadog/opencode-plugin"` to it. + + If you previously configured the Datadog MCP Server manually in `opencode.json`, remove or disable that entry to avoid conflicts with the plugin. + +1. OpenCode를 재시작합니다. 시작 시 npm에서 패키지를 가져옵니다. + +1. 에이전트에게 `ddsetup`을 실행하도록 요청합니다. 플러그인이 사이트 선택을 안내해 줍니다. + +1. OpenCode를 한 번 더 재시작하여 MCP 서버를 활성화하고, 메시지가 표시되면 OAuth 로그인 플로를 완료합니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +1. [제품별 도구](#toolsets)를 활성화하려면 에이전트에게 `ddtoolsets` 실행을 요청하세요. + +설정한 이후, 에이전트에게 `ddconfig`를 실행하도록 요청하여 Datadog 사이트를 변경하거나 연결 문제를 해결합니다. + +{{% collapse-content title="수동 설정" level="h4" expanded=false id="opencode-manual" %}} +플러그인 없이 MCP 서버를 구성하려면 `opencode.json` 구성 파일에 다음을 추가합니다. + +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +
    {
    +  "mcp": {
    +    "datadog": {
    +      "type": "remote",
    +      "url": "{{< region-param key="mcp_server_endpoint" >}}",
    +      "enabled": true
    +    }
    +  }
    +}
    + +[제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다. + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all`을 사용하세요. 이것은 도구 필터링을 지원하는 클라이언트에서 가장 효과적입니다. +{{% /collapse-content %}} + +[1]: /ko/getting_started/site/ +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[2]: https://github.com/datadog-labs/opencode-plugin +[3]: https://opencode.ai/ +{{% /tab %}} + +{{% tab "VS Code" %}} + +Datadog의 [Cursor 및 VS Code 확장][1]에 관리형 Datadog MCP 서버에 대한 기본 제공 액세스가 포함되어 있습니다. GitHub Copilot은 VS Code의 Datadog MCP 서버에도 액세스할 수 있습니다(활성 GitHub Copilot 구독 필요). + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +1. 확장 설치(`--profile` 및 프로필 이름을 생략하면 기본 VS Code 프로필에 설치됨): + ```shell + code --install-extension datadog.datadog-vscode --profile + ``` + 또는 [Datadog 확장][2]을 설치합니다. 이미 확장이 설치된 경우, 최신 버전인지 확인하세요. +1. Datadog 계정에 로그인합니다. +1. **IDE를 재시작합니다.** +1. Datadog MCP 서버를 사용할 수 있고 [도구][3]가 목록으로 나열되는지 확인합니다. 채팅 패널을 열고 에이전트 모드를 선택한 다음 {{< ui >}}Configure Tools{{< /ui >}} 버튼을 클릭합니다. + {{< img src="bits_ai/mcp_server/vscode_configure_tools_button.png" alt="VS Code의 도구 구성 버튼" style="width:70%;" >}} +1. 이전에 수동으로 Datadog MCP 서버를 설치한 경우, IDE의 구성에서 해당 서버를 제거해야 충돌을 피할 수 있습니다. 명령 팔레트를 열고(`Shift` + `Cmd/Ctrl` + `P`) `MCP: Open User Configuration`을 실행합니다. +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +[2]: /ko/ide_plugins/vscode/?tab=vscode#installation +[3]: /ko/bits_ai/mcp_server/tools +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: /ko/ide_plugins/vscode/ +{{% /tab %}} + +{{% tab "Warp" %}} + +[Warp][1]는 기본 제공 MCP 지원이 포함된 에이전틱 터미널입니다. Warp 에이전트가 지역 [Datadog 사이트][2]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. Warp 앱에서 {{< ui >}}Settings{{< /ui >}} > {{< ui >}}MCP Servers{{< /ui >}}로 이동하고 {{< ui >}}+ Add{{< /ui >}}를 클릭합니다. + +1. 다음 구성 붙여 넣기: + +
    {
    +      "Datadog": {
    +        "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +      }
    +    }
    + + To enable [product-specific tools](#toolsets), include the `toolsets` query parameter at the end of the endpoint URL. For example, this URL enables _only_ APM and LLM Observability tools (use `toolsets=all` to enable all generally available toolsets, best for clients that support tool filtering): + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. Datadog 서버에서 {{< ui >}}Start{{< /ui >}}를 클릭합니다. Warp가 브라우저를 열어 OAuth 로그인 플로를 완료하게 합니다. 자격 증명은 사용자의 장치에 안전하게 저장되며 향후 세션에서 다시 사용됩니다. + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +[1]: https://www.warp.dev/ +[2]: /ko/getting_started/site/ +{{% /tab %}} + +{{% tab "기타" %}} + +대부분의 다른 [지원되는 클라이언트](#supported-clients)의 경우, 이러한 지침을 사용해 원격 인증합니다. Cline을 사용하는 경우 또는 원격 인증을 신뢰할 수 없거나 사용할 수 없는 경우, [로컬 바이너리 인증](#local-binary-authentication)을 사용하세요. + +AI 에이전트가 지역 [Datadog 사이트][1]의 MCP 서버 엔드포인트를 가리키게 합니다. 올바른 지침을 사용하려면 이 설명서 페이지 오른쪽의 {{< ui >}}Datadog Site{{< /ui >}} 선택기를 사용하여 사이트를 선택하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +선택한 엔드포인트({{< region-param key="dd_site_name" >}}): {{< region-param key="mcp_server_endpoint" >}}. + +1. HTTP 전송 및 사이트의 엔드포인트 URL을 사용하여 클라이언트의 구성 파일에 Datadog MCP 서버를 추가합니다. 예: + +
    {
    +      "mcpServers": {
    +        "datadog": {
    +          "type": "http",
    +          "url": "{{< region-param key="mcp_server_endpoint" >}}"
    +        }
    +      }
    +    }
    + +1. [제품별 도구](#toolsets)를 활성화하려면 엔드포인트 URL 끝에 `toolsets` 쿼리 파라미터를 포함합니다. 예를 들어 이 URL은 APM 및 LLM Observability 도구_만_ 활성화합니다(정식 출시된 도구 세트를 모두 활성화하려면 `toolsets=all` 사용 – 도구 필터링을 지원하는 클라이언트에 가장 적합). + +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=apm,llmobs
    + +1. 액세스하고자 하는 Datadog 리소스에 대한 필수 [권한](#required-permissions)이 있는지 확인합니다. + +{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
    선택한 사이트에서 Datadog MCP 서버가 지원되지 않습니다({{< region-param key="dd_site_name" >}}).
    + +{{< /site-region >}} + +[1]: /ko/getting_started/site/ +{{% /tab %}} +{{< /tabs >}} + +## 도구 세트 {#toolsets} + +Datadog MCP 서버는 _도구 세트_를 지원하므로, 필요한 [MCP 도구][49]만 사용할 수 있어 귀중한 컨텍스트 윈도 공간이 절약됩니다. 도구 세트를 사용하려면 MCP 서버에 연결할 때 엔드포인트 URL에 `toolsets` 쿼리 파라미터를 포함합니다([원격 인증](#authentication)만 해당). 정식 출시된 도구 세트를 한꺼번에 활성화하려면 `toolsets=all`을 사용하세요. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +예를 들어 선택한 [Datadog 사이트][17] 기준({{< region-param key="dd_site_name" >}}): + +- 코어 도구만 검색(`toolsets`를 지정하지 않은 경우 이것이 기본값): +
    {{< region-param key="mcp_server_endpoint" >}}
    + +- Synthetic Testing 관련 도구만 검색: +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=synthetics
    + +- 코어, Synthetic Testing 및 소프트웨어 배포 도구 검색: +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=core,synthetics,software-delivery
    + +- 정식 출시된 모든 도구를 검색: +
    {{< region-param key="mcp_server_endpoint" >}}?toolsets=all
    + +
    모든 도구 세트를 활성화하면 AI 클라이언트로 전송되는 도구 정의의 수가 늘어나고, 이로 인해 컨텍스트 윈도 공간이 사용됩니다. toolsets=all Claude Code와 같이 도구 필터링을 지원하는 클라이언트에서 가장 효과적입니다.
    + +[17]: /ko/getting_started/site/#navigate-the-datadog-documentation-by-site +{{< /site-region >}} + +### 사용 가능한 도구 세트 {#available-toolsets} + +이러한 도구 세트는 정식 출시되었습니다. 사용 가능한 도구 전체 목록(도구 세트별로 정리, 예시 프롬프트 포함)은 [Datadog MCP 서버 도구][49]에서 확인할 수 있습니다. + +- `core`: 로그, 메트릭, 트레이스, 대시보드, 모니터, 인시던트, 호스트, 서비스, 이벤트 및 노트북의 기본 도구 세트 +- `alerting`: 모니터 검증 및 생성, 모니터 그룹 검색, 모니터 템플릿 검색, 모니터 커버리지 분석 및 SLO 검색용 도구 +- `cases`: [Case Management][42] 도구(케이스 생성, 검색 및 업데이트, 프로젝트 관리, Jira 문제 연결 포함). +- `dashboards`: [대시보드][46]를 검색, 생성, 업데이트 및 삭제하기 위한 도구(위젯 스키마 참조 및 검증 포함) +- `dbm`: [Database Monitoring][33]과의 상호작용을 위한 도구 +- `ddsql`: [DDSQL][44]을 사용하여 Datadog 데이터를 쿼리하기 위한 도구 - DDSQL은 인프라 리소스, 로그, 메트릭, RUM, 스팬 및 기타 Datadog 데이터 소스를 지원하는 SQL 방언 +- `error-tracking`: Datadog [Error Tracking][32]과의 상호작용을 위한 도구 +- `feature-flags`: 플래그 및 플래그 환경 생성, 나열, 업데이트 등 [기능 플래그][35] 관리 도구 +- `kubernetes`: 모든 클러스터에서 [Kubernetes][51] 리소스를 검색 및 설명하고 매니페스트를 검색하는 도구 +- `llmobs`: [LLM Observability][36] 스팬 및 실험을 검색 및 분석하는 도구 +- `networks`: [Cloud Network Monitoring][37] 분석 및 [Network Device Monitoring][38]을 위한 도구 +- `onboarding`: 가이드가 있는 Datadog 설정 및 구성을 위한 에이전틱 온보딩 도구 +- `product-analytics`: [Product Analytics][41] 쿼리와의 상호작용을 위한 도구 +- `reference-tables`: 표 나열, 행 읽기, 행 추가, 클라우드 스토리지에서 표 생성을 포함한 [참조표][48] 관리 도구 +- `security`: 코드 보안을 스캔하고 [보안 신호][39] 및 [보안 발견 사항][40]을 검색하기 위한 도구 +- `software-delivery`: 소프트웨어 배포([CI Visibility][30] 및 [Test Optimization][31])과의 상호작용을 위한 도구 +- `synthetics`: Datadog [Synthetic 테스트][29]와의 상호작용을 위한 도구 +- `workflows`: 에이전트 사용을 위한 워크플로 나열, 조사, 실행 및 구성을 포함한 [Workflow Automation][43] 도구 + +### 미리 보기 도구 세트 {#preview-toolsets} + +이러한 도구 세트는 미리 보기 상태입니다. 제품 미리 보기 양식을 작성하여 도구 세트에 등록하거나 [Datadog 지원팀][47]에 문의해 액세스를 요청하세요. +- `apm`: ([등록][45]) 심층 [APM][34] 트레이스 분석, 스팬 검색, Watchdog 인사이트, 성능 조사를 위한 도구 + +## 지원되는 클라이언트 {#supported-clients} + +| 클라이언트 | 개발자 | 참고 사항 | +|--------|------|------| +| [Cursor][3] | Cursor | Datadog [Cursor & VS Code 확장][15] 권장. | +| [Claude Code][4] | Anthropic | | +| [Claude][19] | Anthropic | [사용자 지정 커넥터 설정](?tab=claude#installation) 사용. Claude Cowork를 포함합니다. | +| [Codex CLI][6] | OpenAI | | +| [Gemini CLI][50] | Google | | +| [Warp][28] | Warp | | +| [VS Code][7] | Microsoft | Datadog [Cursor & VS Code 확장][16] 권장. | +| [JetBrains IDEs][18] | JetBrains | [Datadog 플러그인][18] 권장. | +| [Kiro][9], [Kiro CLI][10] | Amazon Web Services | | +| [Goose][8] | Agentic AI Foundation | | +| [OpenCode][52] | SST | Datadog [OpenCode 플러그인][53] 권장. | +| [Cline][11] | 다양 | 위의 {{< ui >}}Other{{< /ui >}} 탭 참조. 원격 인증을 신뢰할 수 없는 경우 Cline에 로컬 바이너리 인증을 사용하세요. | + +
    Datadog MCP 서버는 중요한 개발 과정을 진행 중이며, 추가적으로 지원되는 클라이언트가 제공될 수 있습니다.
    + +## 필수 권한 {#required-permissions} + +MCP 서버 도구에는 다음과 같은 [Datadog 사용자 역할 권한][22]이 필요합니다. + +| 권한 | 다음에 필요 | +|------------|-------------| +| mcp_read | Datadog에서 데이터를 읽는 도구(예: 모니터 쿼리, 로그 검색, 대시보드 검색) | +| mcp_write | Datadog에서 리소스를 생성 또는 수정하는 도구(예: 모니터 생성, 호스트 음소거) | + +`mcp_read` 또는 `mcp_write` 외에, 사용자에게 기본 리소스에 대한 표준 Datadog 권한도 필요합니다. 예를 들어 모니터를 읽는 MCP 도구를 사용하려면 `mcp_read` 및 [모니터 읽기][24] 권한이 모두 필요합니다. 리소스 수준 권한의 전체 목록은 [Datadog 역할 권한][25]을 참조하세요. + +**Datadog 표준 역할**이 있는 사용자는 기본적으로 두 MCP 서버 권한을 모두 보유합니다. 조직에서 [사용자 지정 역할][23]을 사용하는 경우, 권한을 수동으로 추가하세요. +1. 관리자 자격으로 [**조직 설정 > 역할**][26]로 이동하여 업데이트하고자 하는 역할을 클릭합니다. +1. {{< ui >}}Edit Role{{< /ui >}}(연필 아이콘)을 클릭합니다. +1. 권한 목록 아래에서 {{< ui >}}MCP Read{{< /ui >}} 및 {{< ui >}}MCP Write{{< /ui >}} 체크박스를 선택합니다. +1. 역할에 필요한 기타 모든 리소스 수준 권한을 선택합니다. +1. {{< ui >}}Save{{< /ui >}}를 클릭합니다. + +조직 관리자는 [조직 설정][27]에서 전역 MCP 액세스 및 쓰기 기능을 관리할 수 있습니다. + +## 인증 {#authentication} + +MCP 서버는 [인증][14]에 OAuth 2.0을 사용합니다. OAuth 플로를 진행할 수 없는 경우(예를 들어 서버에서) Datadog [API 키 및 애플리케이션 키][1]를 `DD_API_KEY` 및 `DD_APPLICATION_KEY` HTTP 헤더로 제공할 수 있습니다. + +{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} +예를 들어 선택한 [Datadog 사이트][17] 기준({{< region-param key="dd_site_name" >}}): + +
    {
    +  "mcpServers": {
    +    "datadog": {
    +      "type": "http",
    +      "url": "{{< region-param key="mcp_server_endpoint" >}}",
    +      "headers": {
    +          "DD_API_KEY": "<YOUR_API_KEY>",
    +          "DD_APPLICATION_KEY": "<YOUR_APPLICATION_KEY>"
    +      }
    +    }
    +  }
    +}
    +
    + +[17]: /ko/getting_started/site/#navigate-the-datadog-documentation-by-site +{{< /site-region >}} + +보안을 위해 필수 권한만 있는 [서비스 계정][13]의 범위가 지정된 API 키 및 애플리케이션 키를 사용하세요. + +### 로컬 바이너리 인증 {#local-binary-authentication} + +Cline을 사용하는 경우 및 원격 인증을 신뢰할 수 없거나 사용할 수 없는 경우에는 로컬 인증을 권장합니다. 설치한 이후에는, 도구가 원격이기 때문에 MCP 서버 업데이트의 이점을 누리기 위해 로컬 바이너리를 업데이트할 필요가 없는 것이 일반적입니다. + +{{% collapse-content title="Datadog MCP 서버 로컬 바이너리 설정" level="h5" expanded=false id="mcp-local-binary" %}} + +1. Datadog MCP 서버 바이너리 설치(macOS 및 Linux): + ```bash + curl -sSL https://coterm.datadoghq.com/mcp-cli/install.sh | bash + ``` + 이렇게 하면 바이너리가 `~/.local/bin/datadog_mcp_cli`에 설치됩니다. + + Windows의 경우, [Windows 버전][20]을 다운로드하세요. + +2. 수동으로 `datadog_mcp_cli login`을 실행하여 OAuth 로그인 플로를 진행하고 [Datadog 사이트][21]를 선택합니다. + +3. AI 클라이언트가 `datadog_mcp_cli`를 명령어로 사용하여 stdio 전송을 사용하도록 구성합니다. 예를 들어 macOS의 경우(``를 사용자의 OS 사용자 이름으로 바꾸기): + ```json + { + "mcpServers": { + "datadog": { + "type": "stdio", + "command": "/Users//.local/bin/datadog_mcp_cli", + "args": [], + "env": {} + } + } + } + ``` + + 다른 운영 체제의 경우 `command` 경로를 다운로드된 바이너리의 위치로 대체: + - Linux: `/home//.local/bin/datadog_mcp_cli` + - Windows: `\bin\datadog_mcp_cli.exe` + +
    Claude Code의 경우, 다음을 대신 실행할 수 있습니다. +
    claude mcp add datadog --scope user -- ~/.local/bin/datadog_mcp_cli
    + +4. AI 클라이언트를 완전히 재시작해야 구성이 적용되고 MCP 서버가 로드됩니다. +{{% /collapse-content %}} + +## MCP 서버에 대한 액세스 테스트 {#test-access-to-the-mcp-server} + +1. MCP 서버 테스트 및 디버깅용 개발자 도구인 [MCP 검사기][2]를 설치합니다. + + ```bash + npx @modelcontextprotocol/inspector + ``` +2. 검사기의 웹 UI에서 {{< ui >}}Transport Type{{< /ui >}}에 {{< ui >}}Streamable HTTP{{< /ui >}}를 선택합니다. +3. {{< ui >}}URL{{< /ui >}}에는 지역 Datadog 사이트의 MCP 서버 엔드포인트를 입력합니다. + {{< site-region region="us,us3,us5,eu,ap1,ap2" >}} + 예를 들어 다음의 경우 {{< region-param key="dd_site_name" >}}: {{< region-param key="mcp_server_endpoint" >}} + {{< /site-region >}} +4. {{< ui >}}Connect{{< /ui >}}를 클릭한 다음 {{< ui >}}Tools{{< /ui >}} > {{< ui >}}List Tools{{< /ui >}}로 이동합니다. +5. [사용 가능한 도구][12]가 표시되는지 확인합니다. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/account_management/api-app-keys/ +[2]: https://github.com/modelcontextprotocol/inspector +[3]: https://cursor.com +[4]: https://claude.com/product/claude-code +[5]: https://claude.com/download +[6]: https://chatgpt.com/codex +[7]: https://code.visualstudio.com/ +[8]: https://github.com/block/goose +[9]: https://kiro.dev/ +[10]: https://kiro.dev/cli/ +[11]: https://cline.bot/ +[12]: /ko/bits_ai/mcp_server/tools +[13]: /ko/account_management/org_settings/service_accounts/ +[14]: https://modelcontextprotocol.io/specification/draft/basic/authorization +[15]: /ko/ide_plugins/vscode/?tab=cursor +[16]: /ko/ide_plugins/vscode/ +[17]: /ko/getting_started/site/#navigate-the-datadog-documentation-by-site +[18]: /ko/ide_plugins/idea/ +[19]: https://claude.ai +[20]: https://coterm.datadoghq.com/mcp-cli/datadog_mcp_cli.exe +[21]: /ko/getting_started/site/ +[22]: /ko/account_management/rbac/permissions/#mcp +[23]: /ko/account_management/rbac/?tab=datadogapplication#custom-roles +[24]: /ko/account_management/rbac/permissions/#monitors +[25]: /ko/account_management/rbac/permissions/ +[26]: https://app.datadoghq.com/organization-settings/roles +[27]: https://app.datadoghq.com/organization-settings/preferences +[28]: https://www.warp.dev/ +[29]: /ko/synthetics/ +[30]: /ko/continuous_integration/ +[31]: /ko/tests/ +[32]: /ko/error_tracking/ +[33]: /ko/database_monitoring/ +[34]: /ko/tracing/ +[35]: /ko/feature_flags/ +[36]: /ko/llm_observability/mcp_server/ +[37]: /ko/network_monitoring/cloud_network_monitoring/ +[38]: /ko/network_monitoring/devices/ +[39]: /ko/security/threats/security_signals/ +[40]: /ko/security/misconfigurations/findings/ +[41]: /ko/product_analytics +[42]: /ko/service_management/case_management/ +[43]: /ko/actions/workflows/ +[44]: /ko/ddsql_editor/ +[45]: https://www.datadoghq.com/product-preview/apm-mcp-toolset/ +[46]: /ko/dashboards/ +[47]: /ko/help/ +[48]: /ko/reference_tables/ +[49]: /ko/bits_ai/mcp_server/tools +[50]: https://github.com/google-gemini/gemini-cli +[51]: /ko/containers/monitoring/kubernetes_explorer/ +[52]: https://opencode.ai/ +[53]: https://github.com/datadog-labs/opencode-plugin \ No newline at end of file diff --git a/content/ko/containers/kubernetes/prometheus.md b/content/ko/containers/kubernetes/prometheus.md index 5f6fc1e8821..0ae60721950 100644 --- a/content/ko/containers/kubernetes/prometheus.md +++ b/content/ko/containers/kubernetes/prometheus.md @@ -5,7 +5,12 @@ aliases: - /ko/agent/openmetrics - /ko/agent/prometheus - /ko/agent/kubernetes/prometheus +description: Datadog Agent와 Autodiscovery를 사용하여 Kubernetes 워크로드에서 Prometheus 및 OpenMetrics + 수집 further_reading: +- link: https://www.datadoghq.com/blog/kubernetes-operator-performance + tag: 블로그 + text: Kubernetes 연산자를 모니터링하여 애플리케이션이 원활하게 실행되도록 유지 - link: /agent/kubernetes/log/ tag: 설명서 text: 애플리케이션 로그 수집 @@ -23,43 +28,40 @@ further_reading: text: 컨테이너에서 내보내는 모든 데이터에 태그 할당 - link: /integrations/guide/prometheus-metrics/ tag: 설명서 - text: Prometheus 메트릭을 Datadog 메트릭에 매핑하기 -title: 쿠버네티스 Prometheus 및 OpenMetrics 메트릭 수집 + text: Prometheus 메트릭을 Datadog 메트릭에 매핑 +title: Kubernetes Prometheus 및 OpenMetrics 메트릭 수집 --- +## 개요 {#overview} -Datadog 에이전트와 [Datadog-OpenMetrics][1] 또는 [Datadog-Prometheus][2] 통합을 사용하여 쿠버네티스 내부 애플리케이션에서 노출된 Prometheus 및 OpenMetrics 메트릭을 수집합니다. +Datadog Agent와 [OpenMetrics][1] 또는 [Prometheus][2] 통합을 사용하여 Kubernetes 내부 애플리케이션에서 노출된 Prometheus 및 OpenMetrics 메트릭을 수집합니다. 기본적으로 일반 Prometheus 검사에서 검색된 모든 메트릭은 사용자 지정 메트릭으로 간주됩니다. -**참고**: 기본적으로 일반 Prometheus 검사에서 검색된 모든 메트릭은 커스텀 메트릭으로 간주됩니다. +버전 6.5.0부터 Agent에 Prometheus 엔드포인트를 스크레이핑할 수 있는 [OpenMetrics][3] 및 [Prometheus][4] 검사가 포함됩니다. 사용자 지정 검사 작성을 비롯한 `OpenMetricsCheck` 인터페이스의 고급 사용법을 자세히 알아보려면 [개발자 도구][5] 섹션을 참조하세요. -## 개요 +이 페이지에는 Prometheus 엔드포인트에서 사용자 지정 메트릭을 스크레이핑하게 해주는 이러한 검사의 기본적인 사용법을 설명했습니다. Prometheus 및 OpenMetrics 메트릭이 Datadog 메트릭에 매핑되는 방식에 대한 자세한 설명은 [Prometheus 메트릭을 Datadog 메트릭에 매핑][6] 가이드를 참조하세요. -버전 6.5.0부터 Prometheus 엔드포인트를 스크래핑할 수 있는 [OpenMetrics][3] 및 [Prometheus][4] 검사가 에이전트에 포함되어 있습니다. Datadog은 더 효율적이고 Prometheus 텍스트 형식을 완벽하게 지원하는 OpenMetrics 검사를 사용할 것을 권장합니다. 커스텀 검사 작성 등 `OpenMetricsCheck` 인터페이스의 고급 사용법은 [개발자 도구][5] 섹션을 참조하세요. 또한, 메트릭 엔드포인트가 텍스트 형식을 지원하지 않는 경우에만 Prometheus 검사를 사용하세요. +**참고**: OpenMetrics 검사가 더 효율적이고 Prometheus 텍스트 형식을 완전히 지원하기 때문에 Datadog에서는 이 검사 사용을 권장합니다. Prometheus 검사는 메트릭 엔드포인트가 텍스트 형식을 지원하지 않는 경우에만 사용하세요. -이 페이지에서는 Prometheus 엔드포인트에서 커스텀 메트릭을 모을 수 있는 검사에 대한 기본 사용법을 설명합니다. +## 설정 {#setup} -Prometheus 및 OpenMetrics 메트릭이 Datadog 메트릭에 매핑되는 방식은 [Prometheus 메트릭을 Datadog 메트릭에 매핑하기][6] 가이드를 참조하세요. +### 설치 {#installation} -## 설정 +[Kubernetes 클러스터에 Datadog Agent를 배포합니다][7]. OpenMetrics 및 Prometheus 검사는 [Datadog Agent][8] 패키지에 포함되어 있으므로 컨테이너나 호스트에 다른 것을 설치할 필요가 없습니다. -### 설치 +### 구성 {#configuration} -[쿠버네티스 클러스터에서 Datadog 에이전트를 배포합니다][7]. OpenMetrics 및 Prometheus 검사는 [Datadog 에이전트][8] 패키지에 포함되어 있으므로 컨테이너나 호스트에 다른 것을 설치할 필요가 없습니다. - -### 설정 - -자동 탐지를 사용하여 OpenMetrics 또는 Prometheus 검사를 설정하려면 OpenMetrics/Prometheus 메트릭을 노출하는 **포드**에 다음 `annotations`를 적용하세요: +Autodiscovery를 사용하여 OpenMetrics 또는 Prometheus 검사를 구성하는 경우, OpenMetrics/Prometheus 메트릭을 노출하는 **포드**에 다음 `annotations`를 적용하세요. {{< tabs >}} -{{% tab "Kubernetes (AD v2)" %}} +{{% tab "Kubernetes(AD v2)" %}} -**참고: 통합 설정 간소화를 위해 Datadog 에이전트 7.36에 AD Annotations v2가 도입되었습니다. 이전 버전의 Datadog 에이전트에 대해서는 AD Annotations v1을 사용하세요. +**참고:** AD Annotations v2는 통합 구성을 간소화하기 위해 Datadog Agent 버전 7.36에 도입되었습니다. 이전 버전의 Datadog Agent에서는 AD Annotations v1을 사용하세요. ```yaml # (...) metadata: #(...) annotations: - ad.datadoghq.com/.checks: | + ad.datadoghq.com/.checks: | { "openmetrics": { "init_config": {}, @@ -75,22 +77,22 @@ metadata: spec: containers: - - name: '' + - name: '' ``` {{% /tab %}} -{{% tab "Kubernetes (AD v1)" %}} +{{% tab "Kubernetes(AD v1)" %}} ```yaml # (...) metadata: #(...) annotations: - ad.datadoghq.com/.check_names: | + ad.datadoghq.com/.check_names: | ["openmetrics"] - ad.datadoghq.com/.init_configs: | + ad.datadoghq.com/.init_configs: | [{}] - ad.datadoghq.com/.instances: | + ad.datadoghq.com/.instances: | [ { "openmetrics_endpoint": "http://%%host%%:%%port%%/ ", @@ -100,40 +102,42 @@ metadata: ] spec: containers: - - name: '' + - name: '' ``` {{% /tab %}} {{< /tabs >}} -다음 설정 플레이스홀더 값을 사용합니다: +다음 자리 표시자 설정 값을 사용합니다. -| 플레이스홀더 | 설명 | +| 자리 표시자 | 설명 | |------------------------------------------|----------------------------------------------------------------------------------------------------| -| `` | `annotations`에 사용된 식별자는 메트릭을 노출하는 `name` 컨테이너와 일치해야 합니다. | -| `` | Prometheus 형식으로 컨테이너에서 제공하는 메트릭 URL 경로입니다. | -| `` | Datadog에서 모든 메트릭의 앞에 표시될 네임스페이스를 설정합니다. | +| `` | 메트릭을 노출하는 컨테이너 이름과 일치합니다. | +| `` | 컨테이너가 제공하는 메트릭의 URL 경로입니다(Prometheus 형식으로). | +| `` | Datadog에서 볼 때 모든 메트릭에 접두사가 붙도록 네임스페이스를 설정합니다. | | `` | Prometheus 엔드포인트에서 가져올 Prometheus 메트릭 키입니다. | -| `` | Datadog에서 `` 메트릭 키를 ``로 변환합니다. | +| `` | Datadog에서`` 메트릭 키를 ``으로 변환합니다. | -`metrics` 설정은 커스텀 메트릭으로 검색할 메트릭 목록입니다. 가져올 각 메트릭과 원하는 메트릭 이름을 `{"":""}`과 같이 키-값 쌍으로 Datadog에 포함합니다. 또는 정규식으로 해석되는 메트릭 이름 문자열 목록을 제공하여 원하는 메트릭을 현재 이름으로 가져올 수 있습니다. **모든** 메트릭을 사용하려면 `"*"` 대신 `".*"`를 사용합니다. +`metrics` 구성은 사용자 지정 메트릭으로 검색할 메트릭 목록입니다. 가져올 각 메트릭과 Datadog에서 원하는 메트릭 이름을 키 값 쌍으로 포함합니다(예: `{"":""}`). 과도한 사용자 지정 메트릭 요금을 방지하기 위해 Datadog에서는 필요한 메트릭만 포함하도록 범위를 제한할 것을 권장합니다. 대신 원하는 메트릭을 정규식으로 해석한 메트릭 이름 문자열 목록으로 제공하여 원하는 메트릭과 그 메트릭의 현재 이름을 가져올 수 있습니다. **모든** 메트릭을 원하는 경우, `"*"`가 아니라 `".*"`를 사용하세요. -**참고: 정규식은 잠재적으로 많은 커스텀 메트릭을 전송할 수 있습니다. +**참고:** 정규식은 많은 수의 사용자 지정 메트릭을 보낼 수 있습니다. -`namespace` 및 `metrics`를 포함하여 인스턴스에 사용할 수 있는 매개 변수 전체 목록은 [sample configuration openmetrics.d/conf.yaml][9]을 참조하세요. +`namespace` 및 `metrics` 등 인스턴스에 사용할 수 있는 파라미터 전체 목록은 [sample configuration openmetrics.d/conf.yaml][9]을 참조하세요. -## 시작하기 +**참고**: 검사는 기본적으로 메트릭 2,000개로 제한됩니다. 이 한도를 수정하려면 선택 사항인 `max_returned_metrics` 파라미터를 지정하세요. -### 단순 메트릭 수집 +## 시작하기 {#getting-started} -1. [Datadog 에이전트 실행][10]. +### 단순 메트릭 수집(OpenMetrics 검사) {#simple-metric-collection-openmetrics-check} -2. 포드에서 자동 탐지 설정을 통한 Prometheus 배포 예제를 실행하기 위해 [Prometheus `prometheus.yaml`][11]을 사용합니다: +1. [Datadog Agent를 실행합니다][10]. + +2. [Prometheus `prometheus.yaml`][11]를 사용하여 포드에서 Autodiscovery 구성을 사용해 Prometheus 배포 예시를 실행합니다. {{< tabs >}} - {{% tab "Kubernetes (AD v2)" %}} + {{% tab "Kubernetes(AD v2)" %}} - **참고: 통합 설정 간소화를 위해 Datadog 에이전트 7.36에 AD Annotations v2가 도입되었습니다. 이전 버전의 Datadog 에이전트에 대해서는 AD Annotations v1을 사용하세요. + **참고:** AD Annotations v2는 통합 구성을 간소화하기 위해 Datadog Agent 버전 7.36에 도입되었습니다. 이전 버전의 Datadog Agent에서는 AD Annotations v1을 사용하세요. ```yaml # (...) @@ -162,8 +166,8 @@ spec: - name: prometheus-example # (...) ``` - {{< /tabs >}} - {{% tab "Kubernetes (AD v1)" %}} + {{% /tab %}} + {{% tab "Kubernetes(AD v1)" %}} ```yaml # (...) @@ -193,31 +197,35 @@ spec: # (...) ``` - {{< /tabs >}} + {{% /tab %}} {{< /tabs >}} - Prometheus 배포를 생성하는 명령: + Command to create the Prometheus Deployment: ```shell kubectl create -f prometheus.yaml ``` -3. [메트릭 요약][12] 페이지로 이동하여 예제 포드에서 수집한 메트릭을 확인합니다. 이 설정은 `promhttp_metric_handler_requests`, `promhttp_metric_handler_requests_in_flight` 메트릭 및 `go_memory`로 시작하는 모든 노출된 메트릭을 수집합니다. +3. [Fleet Automation][16] 페이지로 이동하여 `openmetrics` 통합을 필터링해 검사의 상태에 관한 상세한 정보를 조회합니다. + +4. [메트릭 요약][12] 페이지로 이동하여 이 예시 포드에서 수집된 메트릭을 확인합니다. 이 구성은 메트릭 `promhttp_metric_handler_requests`, `promhttp_metric_handler_requests_in_flight` 및 `go_memory`로 시작하는 모든 노출된 메트릭을 수집합니다. + + {{< img src="integrations/guide/prometheus_kubernetes/openmetrics_v2_collected_metric_kubernetes.png" alt="Prometheus 메트릭 수집 kubernetes">}} - {{< img src="integrations/guide/prometheus_kubernetes/openmetrics_v2_collected_metric_kubernetes.png" alt="Prometheus metric collected kubernetes">}} +## Prometheus 어노테이션으로 메트릭 수집(Prometheus 검사) {#metric-collection-with-prometheus-annotations-prometheus-check} -## Prometheus 어노테이션으로 메트릭 수집 +Datadog Agent는 Prometheus Autodiscovery를 사용해 네이티브 Prometheus 어노테이션을 감지하고(예: `prometheus.io/scrape`, `prometheus.io/path`, `prometheus.io/port`) 자동으로 OpenMetrics 검사를 예약하여 Kubernetes에서 Prometheus 메트릭을 수집할 수 있습니다. -Prometheus 자동 탐지를 통해 Datadog 에이전트는 기본 Prometheus 어노테이션(예: `prometheus.io/scrape`, `prometheus.io/path`, `prometheus.io/port`)을 감지하고 OpenMetrics 검사를 자동으로 예약하여 쿠버네티스에서 Prometheus 메트릭을 수집할 수 있습니다. +**참고**: OpenMetrics 검사가 더 효율적이고 Prometheus 텍스트 형식을 완전히 지원하기 때문에 Datadog에서는 이 검사 사용을 권장합니다. Prometheus 검사는 메트릭 엔드포인트가 텍스트 형식을 지원하지 않는 경우에만 사용하세요. -### 요건 +### 요구 사항 {#requirements} -- Datadog 에이전트 v7.27+ 또는 v6.27+ (포드 검사용) -- Datadog 클러스터 에이전트 v1.11+ (서비스 및 엔드포인트 검사용) +- Datadog Agent v7.27+ 또는 v6.27+(포드 검사용) +- Datadog Cluster Agent v1.11+(서비스 및 엔드포인트 검사용) -### 설정 +### 구성 {#configuration-1} -이 기능을 활성화하기 전에 어떤 포드와 서비스에 `prometheus.io/scrape=true` 어노테이션이 있는지 확인하는 것이 좋습니다. 다음 명령어로 확인할 수 있습니다: +이 기능을 활성화하기 전에 어느 포드와 서비스에 `prometheus.io/scrape=true` 어노테이션이 있는지 검사하는 것이 좋습니다. 이 작업은 다음 명령으로 수행할 수 있습니다. ```shell kubectl get pods -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces @@ -225,132 +233,172 @@ kubectl get pods -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/sc kubectl get services -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces ``` -Prometheus 스크랩 기능이 활성화되면 Datadog 에이전트는 이러한 리소스에서 커스텀 메트릭을 수집합니다. 이 리소스로부터 커스텀 메트릭을 수집하지 않으려면 어노테이션을 제거하거나 [고급 설정 섹션](#advanced-configuration)에 설명된 대로 자동 탐지 규칙을 업데이트하면 됩니다. +Prometheus 스크레이프 기능이 활성화되면 Datadog Agent가 이러한 리소스에서 사용자 지정 메트릭을 수집합니다. 이러한 리소스에서 사용자 지정 메트릭을 수집하고 싶지 않은 경우, 이 어노테이션을 제거하거나 [고급 구성 섹션](#advanced-configuration)에 설명된 것과 같이 Autodiscovery 규칙을 업데이트할 수 있습니다. -#### 기본 설정 +**참고**: 고급 구성 없이 이 기능을 활성화하면 사용자 지정 메트릭이 대폭 증가하여 청구에 영향이 발생할 수 있습니다. 컨테이너/포드/서비스의 일부에서만 메트릭을 수집하는 방법은 [고급 구성 섹션](#advanced-configuration)을 참조하세요. + +#### 기본 구성 {#basic-configuration} {{< tabs >}} +{{% tab "Datadog Operator" %}} + +Datadog Operator 구성이 다음을 포함하도록 업데이트하세요. + +{{< code-block lang="yaml" filename="datadog-agent.yaml" >}} +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + credentials: + apiKey: + + features: + prometheusScrape: + enabled: true + enableServiceEndpoints: true +{{< /code-block >}} + +{{% k8s-operator-redeploy %}} + +{{% /tab %}} {{% tab "Helm" %}} -Helm `values.yaml`에 다음을 추가합니다: +Helm 구성이 다음을 포함하도록 업데이트하세요. -```yaml +{{< code-block lang="yaml" filename="datadog-values.yaml" >}} datadog: # (...) prometheusScrape: enabled: true serviceEndpoints: true # (...) -``` +{{< /code-block >}} + +{{% k8s-helm-redeploy %}} + {{% /tab %}} -{{% tab "DaemonSet" %}} +{{% tab "수동(DaemonSet)" %}} + +Agent `daemonset.yaml`의 DaemonSet 매니페스트에서 Agent 컨테이너에 다음 환경 변수 추가: -`daemonset.yaml` 에이전트의 데몬셋 매니페스트에서 해당 에이전트 컨테이너에 대한 다음 환경 변수를 추가합니다: ```yaml - name: DD_PROMETHEUS_SCRAPE_ENABLED value: "true" - name: DD_PROMETHEUS_SCRAPE_VERSION value: "2" ``` -클러스터 에이전트가 활성화된 경우, `cluster-agent-deployment.yaml` 매니페스트 내에서 해당 클러스터 에이전트 컨테이너에 대해 다음 환경 변수를 추가합니다: +Cluster Agent가 활성화된 경우, 해당 매니페스트 `cluster-agent-deployment.yaml` 안에 Cluster Agent 컨테이너에 대한 다음 환경 변수 추가: + ```yaml - name: DD_PROMETHEUS_SCRAPE_ENABLED value: "true" - name: DD_PROMETHEUS_SCRAPE_SERVICE_ENDPOINTS - value: "true" + value: "true" ``` {{% /tab %}} {{< /tabs >}} -이를 통해 Datadog 에이전트가 기본 Prometheus 어노테이션이 있는 포드를 감지하고 해당 OpenMetrics 검사를 생성하도록 지시합니다. +이를 통해 Datadog Agent가 기본 Prometheus 어노테이션이 있는 포드를 감지하고 해당 OpenMetrics 검사를 생성하도록 지시합니다. -또한, (활성화된 경우) Datadog 클러스터 에이전트가 기본 Prometheus 어노테이션이 있는 서비스를 감지하고 해당 OpenMetrics 검사를 생성하도록 지시합니다. +또한, (활성화된 경우) Datadog Cluster Agent가 기본 Prometheus 어노테이션이 있는 서비스를 감지하고 해당 OpenMetrics 검사를 생성하도록 지시합니다. -- `prometheus.io/scrape=true`: 필수 -- `prometheus.io/path`: 선택 사항, 기본값 `/metrics`. -- `prometheus.io/port`: 선택 사항, 기본값 `%%port%%`, 컨테이너/서비스 포트로 대체되는 [템플릿 변수][13]. +- `prometheus.io/scrape=true`: 필수입니다. +- `prometheus.io/path`: 선택 사항이며, 기본적으로 `/metrics`로 설정됩니다. +- `prometheus.io/port`: 선택 사항이며, 기본값은 `%%port%%`입니다(컨테이너/서비스 포트로 대체되는 [템플릿 변수][13]). -이 설정은 [OpenMetrics 통합][1] 기본 설정을 사용하여 노출된 모든 메트릭을 수집하는 검사를 생성합니다. +이 구성은 [OpenMetrics 통합][1]의 기본 구성을 사용하여 모든 노출된 메트릭을 수집하는 검사를 생성합니다. -#### 고급 설정 +#### 고급 구성 {#advanced-configuration} -{{< tabs >}} -{{% tab "Helm" %}} +`additionalConfigs` 필드를 사용하여 (기본 Prometheus 어노테이션 이상의) 메트릭 수집을 더 구성할 수 있습니다. -`values.yaml`의 `additionalConfigs` 설정 필드를 사용하여 기본 Prometheus 어노테이션이 아닌 고급 OpenMetrics 검사 설정 또는 사용자 지정 자동 탐지 규칙을 정의할 수 있습니다. +##### 추가 OpenMetrics 검사 구성 {#additional-openmetrics-check-configurations} -`additionalConfigs`는 OpenMetrics 검사 설정 및 자동 탐지 규칙이 포함된 구조 목록입니다. +추가 OpenMetrics 검사 구성을 정의하려면 `additionalConfigs.configurations`를 사용하세요. `additionalConfigs`에서 전달할 수 있는 [지원되는 OpenMetrics 파라미터 목록][15]을 참조하세요. -[이 페이지][2]에 있는 매개 변수만 자동 탐지 기능이 있는 OpenMetrics v2에서 지원되며, 설정 목록에서 전달됩니다. +##### 사용자 지정 Autodiscovery 규칙 {#custom-autodiscovery-rules} -자동 탐지 설정은 컨테이너 이름, 쿠버네티스 어노테이션 또는 둘 다를 기반으로 할 수 있습니다. `kubernetes_container_names`와 `kubernetes_annotations` 둘 다 정의된 경우 AND 로직을 사용합니다(두 규칙이 모두 일치해야 함). +사용자 지정 Autodiscovery 규칙을 정의하려면 `additionalConfigs.autodiscovery`를 사용합니다. 이러한 규칙은 컨테이너 이름, Kubernetes 어노테이션 또는 둘 모두를 기반으로 할 수 있습니다. -`kubernetes_container_names`는 목표가 될 컨테이너 이름의 목록이며 `*` 와일드카드를 지원합니다. +`additionalConfigs.autodiscovery.kubernetes_container_names` +: 대상으로 지정할 컨테이너 이름 목록을 정규식 형식으로 표시한 것입니다. -`kubernetes_annotations`는 검색 규칙을 정의하는 두 개의 어노테이션 맵인 `include`와 `exclude`를 포함합니다. +`additionalConfigs.autodiscovery.kubernetes_annotations` +: 검색 규칙을 정의할 어노테이션 맵 두 가지(`include` 및 `exclude`)입니다. -**참고: Datadog 에이전트 설정에서 `kubernetes_annotations`의 기본값은 다음과 같습니다: - -```yaml -kubernetes_annotations: + 기본값: + ```yaml include: prometheus.io/scrape: "true" exclude: prometheus.io/scrape: "false" -``` + ``` -**예시:** +`kubernetes_container_names` 및 `kubernetes_annotations`가 모두 정의된 경우, **AND** 로직이 사용됩니다(두 규칙이 일치해야 함). -이 예시는 `app=my-app` 어노테이션과 함께 포드에서 실행 중인 `my-app` 컨테이너를 대상으로 고급 설정을 정의합니다. `send_distribution_buckets` 옵션을 활성화하고 시간 제한을 5초로 정의하여 사용자 지정 OpenMetrics 검사를 설정합니다. +##### 예시 {#examples} -```yaml +다음 구성은 이름이 `my-app`이고 어노테이션 `app=my-app`을 사용해 포드에서 실행 중인 컨테이너를 대상으로 지정합니다. OpenMetrics 검사 구성은 `send_distribution_buckets` 옵션을 활성화하고 5초의 사용자 지정 시간 제한을 정의하도록 사용자 지정할 수 있습니다. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +Datadog Operator 구성이 다음을 포함하도록 업데이트하세요. + +{{< code-block lang="yaml" filename="datadog-agent.yaml" >}} +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + credentials: + apiKey: + + features: + prometheusScrape: + enabled: true + enableServiceEndpoints: true + additionalConfigs: |- + - autodiscovery: + kubernetes_container_names: + - my-app + kubernetes_annotations: + include: + app: my-app + configurations: + - timeout: 5 + send_distribution_buckets: true +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Helm" %}} + +{{< code-block lang="yaml" filename="datadog-values.yaml" >}} datadog: # (...) prometheusScrape: enabled: true serviceEndpoints: true additionalConfigs: - - - configurations: - - timeout: 5 - send_distribution_buckets: true - autodiscovery: + - autodiscovery: kubernetes_container_names: - my-app kubernetes_annotations: include: app: my-app -``` - + configurations: + - timeout: 5 + send_distribution_buckets: true -[1]: https://github.com/DataDog/integrations-core/blob/master/openmetrics/datadog_checks/openmetrics/data/conf.yaml.example -[2]: https://github.com/DataDog/datadog-agent/blob/main/pkg/autodiscovery/common/types/prometheus.go#L92-L100 +{{< /code-block >}} {{% /tab %}} -{{% tab "DaemonSet" %}} - -에이전트 및 클러스터 에이전트 매니페스트의 `DD_PROMETHEUS_SCRAPE_CHECKS` 환경 변수를 사용하여 기본 Prometheus 어노테이션이 아닌 고급 OpenMetrics 검사 설정 또는 사용자 지정 자동 탐지 규칙을 정의할 수 있습니다. - -`DD_PROMETHEUS_SCRAPE_CHECKS`는 OpenMetrics 검사 설정 및 자동 탐지 규칙이 포함된 구조 목록입니다. - -[이 페이지][2]에 있는 매개 변수만 자동 탐지 기능이 있는 OpenMetrics v2에서 지원되며 설정 목록에서 전달할 수 있습니다. - -자동 탐지 설정은 컨테이너 이름, 쿠버네티스 어노테이션 또는 둘 다를 기반으로 할 수 있습니다. `kubernetes_container_names`와 `kubernetes_annotations` 둘 다 정의된 경우 AND 로직을 사용합니다(두 규칙이 모두 일치해야 함). - -`kubernetes_container_names`는 목표가 될 컨테이너 이름의 목록이며 `*` 와일드카드를 지원합니다. - -`kubernetes_annotations`는 검색 규칙을 정의하는 두 개의 어노테이션 맵인 `include`와 `exclude`를 포함합니다. - -**참고: Datadog 에이전트 설정에서 `kubernetes_annotations`의 기본값은 다음과 같습니다: - -```yaml -- name: DD_PROMETHEUS_SCRAPE_CHECKS - value: "[{\"autodiscovery\":{\"kubernetes_annotations\":{\"exclude\":{\"prometheus.io/scrape\":\"false\"},\"include\":{\"prometheus.io/scrape\":\"true\"}}}}]" -``` - -**예시:** +{{% tab "수동(DaemonSet)" %}} -이 예시에서는 `app=my-app` 어노테이션과 함께 포드에서 실행 중인 `my-app` 컨테이너를 대상으로 고급 설정을 정의합니다. `send_distribution_buckets` 옵션을 활성화하고 시간 제한을 5초로 정의하여 사용자 지정 OpenMetrics 검사를 설정합니다. +DaemonSet의 경우, 고급 구성이 `additionalConfigs` 필드가 아니라 `DD_PROMETHEUS_SCRAPE_CHECKS` 환경 변수에서 정의됩니다. ```yaml - name: DD_PROMETHEUS_SCRAPE_ENABLED @@ -363,17 +411,17 @@ datadog: [1]: https://github.com/DataDog/integrations-core/blob/master/openmetrics/datadog_checks/openmetrics/data/conf.yaml.example -[2]: https://github.com/DataDog/datadog-agent/blob/main/pkg/autodiscovery/common/types/prometheus.go#L92-L100 +[2]: https://github.com/DataDog/datadog-agent/blob/main/comp/core/autodiscovery/common/types/prometheus.go#L99-L123 {{% /tab %}} {{< /tabs >}} -## 사용자 지정에서 공식 통합까지 +## 사용자 지정부터 공식 통합까지 {#from-custom-to-official-integration} -기본적으로 일반 Prometheus 검사에서 검색된 모든 메트릭은 커스텀 메트릭으로 간주됩니다. 기성 소프트웨어에 대한 공식 통합이 필요할 경우 주저하지 마시고 [참여][5]해 주세요! +기본적으로 일반 Prometheus 검사에서 검색된 모든 메트릭은 사용자 지정 메트릭으로 간주됩니다. 상용 소프트웨어를 모니터링 중이고, 공식 통합할 가치가 있다고 생각되는 경우 망설이지 말고 [기여][5]하세요! -공식 통합 서비스에는 전용 디렉토리가 있습니다. 일반 검사에는 기본 설정 및 메트릭 메타데이터를 하드코딩하기 위한 기본 인스턴스 메커니즘이 있습니다. 예를 들어, [kube-proxy][14] 통합을 참조하세요. +공식 통합에는 자체적인 전용 디렉터리가 있습니다. 일반 검사에 기본 구성 및 메트릭 메타데이터를 하드코딩하기 위한 기본 인스턴스 메커니즘이 있습니다. 예를 들어 [kube-proxy][14] 통합을 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -381,13 +429,15 @@ datadog: [2]: /ko/integrations/prometheus/ [3]: https://github.com/DataDog/integrations-core/tree/master/openmetrics [4]: https://github.com/DataDog/integrations-core/tree/master/prometheus -[5]: /ko/developers/custom_checks/prometheus/ +[5]: /ko/extend/custom_checks/prometheus/ [6]: /ko/integrations/guide/prometheus-metrics [7]: /ko/agent/kubernetes/#installation [8]: /ko/getting_started/tagging/ [9]: https://github.com/DataDog/integrations-core/blob/master/openmetrics/datadog_checks/openmetrics/data/conf.yaml.example -[10]: https://app.datadoghq.com/account/settings#agent/kubernetes -[11]: /resources/yaml/prometheus.yaml +[10]: https://app.datadoghq.com/account/settings/agent/latest?platform=kubernetes +[11]: /ko/resources/yaml/prometheus.yaml [12]: https://app.datadoghq.com/metric/summary [13]: /ko/agent/faq/template_variables/ -[14]: https://github.com/DataDog/integrations-core/tree/master/kube_proxy \ No newline at end of file +[14]: https://github.com/DataDog/integrations-core/tree/master/kube_proxy +[15]: https://github.com/DataDog/datadog-agent/blob/main/comp/core/autodiscovery/common/types/prometheus.go#L57-L123 +[16]: https://app.datadoghq.com/fleet?query=integration:openmetrics \ No newline at end of file diff --git a/content/ko/extend/dogstatsd/_index.md b/content/ko/extend/dogstatsd/_index.md new file mode 100644 index 00000000000..8f8d69b4b22 --- /dev/null +++ b/content/ko/extend/dogstatsd/_index.md @@ -0,0 +1,635 @@ +--- +aliases: +- /ko/guides/dogstatsd/ +- /ko/guides/DogStatsD/ +- /ko/developers/faq/how-to-remove-the-host-tag-when-submitting-metrics-via-dogstatsd/ +- /ko/integrations/faq/dogstatsd-and-docker +- /ko/agent/kubernetes/dogstatsd +- /ko/developers/dogstatsd/ +description: 데이터 유형 및 태깅을 포함하는 DogStatsD 기능에 대한 개요입니다. +further_reading: +- link: integrations/node + tag: 설명서 + text: Node.js 통합으로 Node.js용 DogStatsD 활성화 +- link: extend/dogstatsd + tag: 설명서 + text: DogStatsD 소개 +- link: extend/libraries + tag: 설명서 + text: 공식 및 커뮤니티에서 생성한 API 및 DogStatsD 클라이언트 라이브러리 +- link: https://www.datadoghq.com/blog/monitor-azure-app-service-linux/ + tag: 블로그 + text: Datadog를 통해 Azure App Service에서 Linux 웹 앱 모니터링 +- link: https://www.datadoghq.com/blog/datadog-csi-driver/ + tag: 블로그 + text: Datadog의 CSI 드라이버로 보안 Kubernetes 환경에 고성능 관측 가능성 실현 +- link: https://learn.datadoghq.com/courses/create-custom-metrics-dogstatsd + tag: 학습 센터 + text: DogStatsD로 Custom Metrics 생성 +title: DogStatsD +--- +사용자 지정 애플리케이션 메트릭을 Datadog으로 가져오는 가장 쉬운 방법은 Datadog Agent와 함께 번들로 제공되는 메트릭 집계 서비스인 DogStatsD로 보내는 것입니다. DogStatsD는 [StatsD][1] 프로토콜을 구현하고 몇 가지 Datadog 전용 확장을 추가합니다. + +- 히스토그램 메트릭 유형 +- 서비스 검사 +- 이벤트 +- 태깅 + +호환되는 모든 StatsD 클라이언트는 DogStatsD 및 Agent와 함께 작동하지만, [Datadog 전용 확장](#dive-into-dogstatsd)은 포함하지 않습니다. + +**참고**: DogStatsD는 StatsD의 타이머를 네이티브 메트릭 유형으로 구현하지 않습니다([히스토그램][2]을 통해서는 지원함). + +DogStatsD는 Datadog 컨테이너 레지스트리, GAR, ECR, Azure ACR 및 Docker Hub에서 사용할 수 있습니다. + +| 레지스트리 | 이미지 | +| -------------------------- | --------------------------------------- | +| Datadog 컨테이너 레지스트리 | [registry.datadoghq.com/dogstatsd][33] | +| Google Artifact Registry | [gcr.io/datadoghq/dogstatsd][4] | +| Amazon ECR | [public.ecr.aws/datadog/dogstatsd][34] | +| Azure ACR | datadoghq.azurecr.io/dogstatsd | +| Docker Hub | [hub.docker.com/r/datadog/dogstatsd][3] | + +
    Docker Hub에는 이미지 풀 속도 제한이 적용됩니다. Docker Hub 고객이 아닌 경우, Datadog은 Datadog 컨테이너 레지스트리를 사용하거나 클라우드 공급자 레지스트리를 사용하는 것을 권장합니다. 관련 지침은 컨테이너 레지스트리 변경을 참조하세요.
    + +## 작동 방식 {#how-it-works} + +DogStatsD는 UDP를 통해 [Custom Metrics][5], [이벤트][6] 및 [서비스 검사][7]를 수락하고 이를 주기적으로 집계하여 Datadog으로 전달합니다. + +이것은 UDP를 사용하기 때문에 애플리케이션이 메트릭을 DogStatsD로 보내고, 응답을 기다리지 않고 작업을 재개할 수 있습니다. DogStatsD를 사용할 수 없게 되더라도 애플리케이션에 중단이 발생하지 않습니다. + +{{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/dogstatsd.png" alt="dogstatsd" >}} + +DogStatsD는 데이터를 수신할 때 _Flush 간격_이라는 기간 동안 각각의 고유한 메트릭에 대한 데이터 포인트 여러 개를 데이터 포인트 하나로 집계합니다. DogStatsD는 10초의 Flush 간격을 사용합니다. + +## 설정 {#setup} + +DogStatsD는 서버(Datadog Agent와 번들됨)와 클라이언트 라이브러리(여러 언어로 사용 가능)로 구성됩니다. DogStatsD 서버는 Agent v6+에 대하여 UDP 포트 `8125`에서 기본적으로 활성화되어 있습니다. 필요한 경우 서버에 사용자 지정 포트를 설정할 수 있습니다. 클라이언트를 Datadog Agent DogStatsD 서버의 주소 및 포트와 일치하도록 구성하세요. + +### Datadog Agent DogStatsD 서버 {#datadog-agent-dogstatsd-server} + +{{< tabs >}} +{{% tab "Host Agent" %}} + +포트를 변경해야 하는 경우, 기본 [Agent 구성 파일][1]의 `dogstatsd_port` 옵션을 구성한 다음 Agnet를 재시작합니다. DogStatsD가 [UNIX 도메인 소켓][2]을 사용하도록 구성할 수도 있습니다. + +사용자 지정 Agent DogStatsD 서버 UDP 포트를 활성화하는 방법: + +1. `dogstatsd_port` 파라미터 설정: + + ```yaml + ## @param dogstatsd_port - integer - optional - default: 8125 + ## Override the Agent DogStatsD port. + ## Note: Make sure your client is sending to the same UDP port. + # + dogstatsd_port: 8125 + ``` + +2. [Agent를 재시작합니다][3]. + +[1]: /ko/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[2]: /ko/extend/dogstatsd/unix_socket/ +[3]: /ko/agent/configuration/agent-commands/ +{{% /tab %}} +{{% tab "Container Agent" %}} + +기본적으로 DogStatsD는 UDP 포트 **8125**에서 수신하므로, Agent를 컨테이너에서 수행하는 경우 이 포트를 호스트 포트에 바인딩해야 합니다. StatsD 메트릭이 `localhost` 외부에서 오는 경우, `DD_DOGSTATSD_NON_LOCAL_TRAFFIC`을 `true`로 설정하여 메트릭 수집을 허용해야 합니다. DogStatsD 서버를 가동하는 상태로 Agent를 실행하려면 다음 명령 실행: + +```shell +docker run -d --cgroupns host \ + --pid host \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -e DD_API_KEY= \ + -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC="true" \ + -p 8125:8125/udp \ + registry.datadoghq.com/agent:latest +``` + +StatsD 메트릭을 수집하는 데 사용되는 포트를 변경해야 하는 경우, `DD_DOGSTATSD_PORT="` 환경 변수를 사용하세요. DogStatsD가 [UNIX 도메인 소켓][1]을 사용하도록 구성할 수도 있습니다. + +[1]: /ko/extend/dogstatsd/unix_socket/ +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +StatsD 메트릭 수집은 [UNIX 도메인 소켓][1]에서 기본적으로 활성화되어 있습니다. UDP를 통해 StatsD 메트릭 수집을 시작하려면 Operator 설정에서 DogStatsD 기능을 활성화해야 합니다. + +1. `datadog-agent.yaml` 매니페스트에 `features.dogstatsd.hostPortConfig.enabled` 추가: + + ```yaml + features: + dogstatsd: + hostPortConfig: + enabled: true + ``` + + This is an example `datadog-agent.yaml` manifest: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + global: + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + features: + dogstatsd: + hostPortConfig: + enabled: true + ``` + + This enables the Agent to collect StatsD metrics over UDP on port `8125`. + +2. 변경 사항 적용: + + ```shell + kubectl apply -f datadog-agent.yaml + ``` + +**경고**: `features.dogstatsd.hostPortConfig.hostPort` 파라미터는 호스트에서 포트를 엽니다. 방화벽이 애플리케이션 또는 신뢰할 수 있는 소스에서만 액세스를 허용하도록 해야 합니다. 네트워크 플러그인이`hostPorts`를 지원하지 않는 경우, Agent 포드 사양에 `hostNetwork: true`를 추가하세요. 이렇게 하면 호스트의 네트워크 네임스페이스를 Datadog Agent와 공유합니다. 또한 컨테이너에서 열린 모든 포트나 호스트에서 열린다는 의미이기도 합니다. 포트가 호스트 및 컨테이너 양쪽 모두에서 사용되는 경우, 충돌이 발생하며(동일한 네트워크 네임스페이스를 공유하기 때문에) 포드가 시작되지 않습니다. 일부 Kubernetes 설치는 이것을 허용하지 않습니다. + +### StatsD 메트릭을 Agent로 전송 {#send-statsd-metrics-to-the-agent} + +애플리케이션에는 호스트의 IP 주소를 판별할 신뢰할 수 있는 방법이 필요합니다. 이것은 Kubernetes 1.7에서는 포드에 환경 변수로 전달할 수 있는 속성 세트가 확장되어 간편해졌습니다. 1.7 이상 버전에서는 PodSpec에 환경 변수를 추가하여 어느 포드에든 호스트 IP를 전달할 수 있습니다. 예를 들어 애플리케이션 매니페스트는 다음과 같을 수 있습니다. + +```yaml +env: + - name: DD_AGENT_HOST + valueFrom: + fieldRef: + fieldPath: status.hostIP +``` + +이 기능을 사용하면 애플리케이션을 실행하는 모든 포드가 `$DD_AGENT_HOST`에서 포트 `8125`를 사용해 DogStatsD 메트릭을 전송할 수 있습니다. + +**참고**: Datadog은 속성을 할당할 때 unified service tagging을 사용하는 것을 모범 사례로 권장합니다. Unified service tagging은 Datadog `env`, `service`, `version`의 세 가지 표준 태그를 사용하여 Datadog 텔레메트리를 연결합니다. 환경을 통합하는 방법은 [unified service tagging][4]을 참조하세요. + +[1]: /ko/extend/dogstatsd/unix_socket/ +[2]: https://github.com/containernetworking/cni +[3]: https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#hostport-services-do-not-work +[4]: /ko/getting_started/tagging/unified_service_tagging +{{% /tab %}} +{{% tab "Helm" %}} + +Helm을 사용하여 [DogStatsD][1]로 Custom Metrics을 수집하는 방법: + +1. [datadog-values.yaml][2] 파일을 업데이트하여 DogStatsD 활성화: + + ```yaml + dogstatsd: + port: 8125 + useHostPort: true + nonLocalTraffic: true + ``` + + **Note**: `hostPort` functionality requires a networking provider that adheres to the [CNI specification][3], such as Calico, Canal, or Flannel. For more information, including a workaround for non-CNI network providers, see the Kubernetes documentation: [HostPort services do not work][4]. + + **Warning**: The `hostPort` parameter opens a port on your host. Make sure your firewall only allows access from your applications or trusted sources. If your network plugin doesn't support `hostPorts`, so add `hostNetwork: true` in your Agent pod specifications. This shares the network namespace of your host with the Datadog Agent. It also means that all ports opened on the container are opened on the host. If a port is used both on the host and in your container, they conflict (since they share the same network namespace) and the pod does not start. Some Kubernetes installations do not allow this. + +2. Agent 구성 업그레이드: + + ``` shell + helm upgrade -f datadog-values.yaml datadog/datadog + ``` + +3. 애플리케이션 포드 업데이트: 애플리케이션에 호스트의 IP 주소를 판별할 신뢰할 수 있는 방법이 필요합니다. 이것은 Kubernetes 1.7에서는 포드에 환경 변수로 전달할 수 있는 속성 세트가 확장되어 간편해졌습니다. 1.7 이상 버전에서는 PodSpec에 환경 변수를 추가하여 어느 포드에든 호스트 IP를 전달할 수 있습니다. 예를 들어 애플리케이션 매니페스트는 다음과 같을 수 있습니다. + + ```yaml + env: + - name: DD_AGENT_HOST + valueFrom: + fieldRef: + fieldPath: status.hostIP + ``` + + With this, any pod running your application is able to send DogStatsD metrics through port `8125` on `$DD_AGENT_HOST`. + +[1]: /ko/metrics/custom_metrics/dogstatsd_metrics_submission/ +[2]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml +[3]: https://github.com/containernetworking/cni +[4]: https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#hostport-services-do-not-work +{{% /tab %}} +{{< /tabs >}} + +### 출처 감지 {#origin-detection} + +Datadog Agent v6.10.0은 _출처 감지_를 지원하며, DogStatsD는 이를 통해 컨테이너 메트릭의 출처가 어디인지 감지하고 메트릭을 자동으로 태그합니다. 출처 감지가 활성화되면 UDP를 통해 수신된 모든 메트릭은 +Autodiscovery 메트릭과 같은 포드 태그로 태그됩니다. + +#### DogStatsD 클라이언트에서 {#in-a-dogstatsd-client} + +모든 DogStatsD 클라이언트에서는 기본적으로 출처 감지가 활성화되어 있습니다. + +클라이언트에서 출처 감지를 **비활성화**하려면 다음 액션 중 한 가지를 수행하세요. +- 환경 변수 `DD_ORIGIN_DETECTION_ENABLED=false` 설정 +- DogStatsD 라이브러리가 출처 감지를 비활성화하도록 구성합니다. 자세한 지침은 [DogStatsD 라이브러리별 설명서][10]를 참조하세요. + +#### Datadog Agent에서 {#in-the-datadog-agent} +Datadog Agent에서는 출처 감지가 기본적으로 활성화되어 있지 않습니다. Datadog Agent에서 출처 감지를 **활성화**하려면 `DD_DOGSTATSD_ORIGIN_DETECTION_CLIENT` 환경 변수를 `true`로 설정하세요. + +[포드 사양에서 `shareProcessNamespace:true`를 설정하면][12] Agent가 EKS Fargate에서 출처를 감지하는 데 도움이 됩니다. + +#### 출처가 감지되는 방식 {#how-origins-are-detected} + +출처 감지는 여러 가지 방식으로 실현됩니다. cgroups를 통한 출처 감지는 기본적으로 활성화되어 있습니다. UDP 또는 `DD_EXTERNAL_ENV`를 통한 출처 감지는 구성이 필요합니다. + +{{< tabs >}} +{{% tab "cgroups" %}} +Linux에서는 `cgroups`와 관련된 `procfs` 항목에서 컨테이너 ID를 추출할 수 있습니다. 클라이언트는 `/proc/self/cgroup` 또는 `/proc/self/mountinfo`에서 데이터를 읽어 컨테이너 ID 파싱을 시도합니다. + +cgroup v2에서는 `/proc/self/cgroup`에서 cgroup 경로를 리졸브하고, 이를 `/proc/self/mountinfo`의 cgroup 마운트 지점과 결합하여 컨테이너 ID를 추론할 수 있습니다. 그 결과로 생성되는 디렉터리의 inode가 Datadog Agent로 전송됩니다. Datadog Agent가 클라이언트와 동일한 노드에 있는 경우, 이 정보를 사용하여 포드의 UID를 식별할 수 있습니다. +{{% /tab %}} + +{{% tab "UDP" %}} +UDP를 통해 출처 감지를 활성화하려면, 애플리케이션 매니페스트에 다음 행을 추가합니다. + +```yaml +env: +- name: DD_ENTITY_ID + valueFrom: + fieldRef: + fieldPath: metadata.uid +``` + +DogStatsD 클라이언트는 내부 태그 `entity_id`를 추가합니다. 이 태그의 값은 `DD_ENTITY_ID` 환경 변수의 내용이며, 이것이 포드의 UID입니다. + +
    UDP의 경우, pod_name Custom Metrics가 너무 많이 생성되지 않도록 하기 위해 태그가 기본적으로 추가되지 않습니다.
    +{{% /tab %}} + +{{% tab "DD_EXTERNAL_ENV" %}} +포드에 다음 레이블 추가: + +``` +admission.datadoghq.com/enabled: "true" +``` + +포드에 이 레이블이 있으면 [Admissions Controller][1]가 환경 변수 `DD_EXTERNAL_ENV`를 주입합니다. 이 변수의 값이 메트릭과 함께 필드로 전송되고, Datadog Agent가 이것을 사용하여 메트릭의 출처를 파악할 수 있습니다. + +[1]: /ko/containers/cluster_agent/admission_controller +{{% /tab %}} +{{< /tabs >}} + +#### 캐그 카디널리티 {#tag-cardinality} + +태그 카디널리티에 관한 자세한 정보는 [태그 할당: 태그 카디널리티][11]를 참조하세요. + +##### 전역적으로 {#globally} + +전역적으로 태그 카디널리티를 지정하려면 `DD_CARDINALITY` 환경 변수를 설정하거나, 생성자에 `'cardinality'` 필드를 전달하면 됩니다. + +##### 메트릭당 {#per-metric} + +메트릭당 태그 카디널리티를 지정하려면 `cardinality` 파라미터의 값을 전달하세요. 이 파라미터의 유효한 값은 `"none"`, `"low"`, `"orchestrator"` 또는 `"high"`입니다. + +### DogStatsD 클라이언트 {#dogstatsd-client} + +원하는 언어로 DogStatsD 클라이언트 라이브러리를 설치하고 Datadog 에이전트 DogStatsD 서버의 주소 및 포트와 일치하도록 구성합니다. + +#### DogStatsD 클라이언트 설치 {#install-the-dogstatsd-client} + +공식 Datadog-DogStatsD 클라이언트 라이브러리는 다음 언어로 사용할 수 있습니다. 호환되는 모든 StatsD 클라이언트는 DogStatsD 및 Agent와 함께 작동하지만, 위에 언급한 Datadog 전용 기능은 포함하지 않습니다. +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} + +{{< programming-lang lang="python" >}} + +```shell +pip install datadog +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="ruby" >}} + +```shell +gem install dogstatsd-ruby +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="go" >}} + +```shell +go get github.com/DataDog/datadog-go/v5/statsd +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="java" >}} + +Java DataDog StatsD C클라이언트는 Maven Central과 함께 배포되며, [Maven에서 다운로드][1]할 수 있습니다. 다음 구성을 `pom.xml`에 추가하여 시작: + +```xml + + com.datadoghq + java-dogstatsd-client + 4.2.1 + +``` + +[1]: https://search.maven.org/search?q=g:com.datadoghq%20a:java-dogstatsd-client +{{< /programming-lang >}} + +{{< programming-lang lang="PHP" >}} + +다음 내용을 `composer.json`에 추가: + +```text +"datadog/php-datadogstatsd": "1.6.*" +``` + +**참고**: Composer에서 제공되는 첫 번째 버전은 _0.0.3_입니다. + +또는 [github.com/DataDog/php-datadogstatsd][1]에서 리포지토리를 수동으로 복제하고 `require './src/DogStatsd.php'`를 사용하여 설정하세요. + + + +[1]: https://github.com/DataDog/php-datadogstatsd#php-datadog-statsd-client +{{< /programming-lang >}} + +{{< programming-lang lang=".NET" >}} + +Nuget CLI를 사용하여 패키지를 직접 설치하거나 [NuGet에서 PackageReference][1]를 가져옵니다. + +```shell +dotnet add package DogStatsD-CSharp-Client +``` + +[1]: https://www.nuget.org/packages/DogStatsD-CSharp-Client +{{< /programming-lang >}} + +{{< /programming-lang-wrapper >}} + + +#### DogStatsD 클라이언트 인스턴스화 {#instantiate-the-dogstatsd-client} + +DogStatsD 클라이언트가 설치되고 나면 코드에서 인스턴스화: +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} + +{{< programming-lang lang="python" >}} + +```python +from datadog import initialize, statsd + +options = { + 'statsd_host':'127.0.0.1', + 'statsd_port':8125 +} + +initialize(**options) +``` + +
    + 기본적으로 Python DogStatsD 클라이언트 인스턴스(글로벌 statsd 인스턴스 포함)는 프로세스 전체에서 공유할 수 없지만, 스레드 안전(thread-safe)합니다. 이 때문에, 상위 프로세스와 각 하위 프로세스가 클라이언트의 자체 인스턴스를 생성하거나 명시적으로 버퍼링을 비활성화해야 합니다( disable_bufferingTrue로 설정). 자세한 내용은 datadog.dogstatsd 설명서를 참조하세요. +
    + +{{< /programming-lang >}} + +{{< programming-lang lang="ruby" >}} + +```ruby +# Import the library +require 'datadog/statsd' + +# Create a DogStatsD client instance. +statsd = Datadog::Statsd.new('localhost', 8125) +``` + +
    + DogStatsD를 Containger Agent와 함께 사용하거나 Kubernetes에서 사용하는 경우, StatsD 메트릭스를 전달할 대상 호스트를 $DD_DOGSTATSD_SOCKET 환경 변수로 인스턴스화하거나(UNIX 도메인 소켓을 사용하는 경우), $DD_AGENT_HOST 환경 변수를 사용해 인스턴스화해야 합니다(호스트 포트 바인딩 방법을 사용하는 경우). +
    + +{{< /programming-lang >}} + +{{< programming-lang lang="go" >}} + +```go +dogstatsd_client, err := statsd.New("127.0.0.1:8125") +if err != nil { + log.Fatal(err) +} +``` + +자세한 옵션은 [Datadog의 GoDoc][1]을 참조하세요. + + + +[1]: https://pkg.go.dev/github.com/DataDog/datadog-go/v5/statsd +{{< /programming-lang >}} + +{{< programming-lang lang="java" >}} + +```java +import com.timgroup.statsd.NonBlockingStatsDClientBuilder; +import com.timgroup.statsd.StatsDClient; + +public class DogStatsdClient { + + public static void main(String[] args) throws Exception { + + StatsDClient statsd = new NonBlockingStatsDClientBuilder() + .prefix("statsd") + .hostname("localhost") + .port(8125) + .build(); + + + // alternatively + StatsDClient statsdAlt = new NonBlockingStatsDClient( + new NonBlockingStatsDClientBuilder( + .prefix("statsd") + .hostname("localhost") + .port(8125) + .resolve())); + + } +} +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="PHP" >}} + +composer를 사용해 새 DogStatsd 개체 인스턴스화: + +```php + '127.0.0.1', + 'port' => 8125, + ) + ); +``` + +{{< /programming-lang >}} + +{{< programming-lang lang=".NET" >}} + +DogStatsd 클래스 구성: + +```csharp +// The code is located under the StatsdClient namespace +using StatsdClient; + +// ... + +var dogstatsdConfig = new StatsdConfig +{ + StatsdServerName = "127.0.0.1", + StatsdPort = 8125, +}; + +using (var dogStatsdService = new DogStatsdService()) +{ + if (!dogStatsdService.Configure(dogstatsdConfig)) + throw new InvalidOperationException("Cannot initialize DogstatsD. Set optionalExceptionHandler argument in the `Configure` method for more information."); + // ... +} // Flush metrics not yet sent +``` + +{{< /programming-lang >}} + +{{< /programming-lang-wrapper >}} + +### 클라이언트 인스턴스화 파라미터 {#client-instantiation-parameters} + +**참고**: Datadog에서는 태그를 할 당할 때 unified service tagging을 사용하는 것을 모범 사례로 권장합니다. Unified service tagging은 Datadog `env`, `service`, `version`의 세 가지 표준 태그를 사용하여 Datadog 텔레메트리를 연결합니다. 환경을 통합하는 방법은 [unified service tagging][8]을 참조하세요. + +필수 DogStatsD 구성(`url` 및 `port`) 외에 DogStatsD 클라이언트에 사용할 수 있는 옵션 파라미터는 다음과 같습니다. + +{{< programming-lang-wrapper langs="python,ruby,go,java,PHP,.NET" >}} +{{< programming-lang lang="python" >}} +| 파라미터 | 유형 | 기본값 | 설명 | +| ---------------------- | --------------- | ----------- | -------------------------------------------------------------------------------------------------------------- | +| `statsd_host` | 문자열 | `localhost` | DogStatsD 서버의 호스트입니다. | +| `statsd_port` | 정수 | `8125` | DogStatsD 서버의 포트입니다. | +| `statsd_socket_path` | 문자열 | `null` | DogStatsD UNIX 도메인 소켓의 경로입니다(`host` 및 `port`를 재정의함, Agent v6+에서만 지원됨). | +| `statsd_constant_tags` | 문자열 목록 | `null` | 모든 메트릭, 이벤트, 서비스 검사에 적용되는 태그입니다. | +| `statsd_namespace` | 문자열 | `null` | 모든 메트릭, 이벤트, 서비스 검사에서 접두사로 사용할 네임스페이스입니다. | + +`datadog.initialize()`에 사용할 수 있는 선택 사항 파라미터와 `datadog.dogstatsd.DogStatsd` 인스턴스를 명시적으로 인스턴스화하는 경우에만 사용할 수 있는 파라미터 전체 목록은 [Datadog Python 라이브러리][1]를 참조하세요. + + +[1]: https://datadogpy.readthedocs.io/en/latest +{{< /programming-lang >}} +{{< programming-lang lang="ruby" >}} + +| 파라미터 | 유형 | 기본값 | 설명 | +| --------------- | --------------- | ----------- | -------------------------------------------------------------------------------------------------------------- | +| `host` | 문자열 | `localhost` | DogStatsD 서버의 호스트입니다. | +| `port` | 정수 | `8125` | DogStatsD 서버의 포트입니다. | +| `socket_path` | 문자열 | `null` | DogStatsD UNIX 도메인 소켓의 경로입니다(`host` 및 `port`를 재정의함, Agent v6+에서만 지원됨). | +| `tags` | 문자열 목록 | `null` | 모든 메트릭, 이벤트, 서비스 검사에 적용되는 태그입니다. | +| `namespace` | 문자열 | `null` | 모든 메트릭, 이벤트, 서비스 검사에서 접두사로 사용할 네임스페이스입니다. | +| `single_thread` | 부울 | `false` | 활성화된 상태에서 클라이언트가 메트릭을 컴패니언 스레드가 아니라 메인 스레드에서 전송하게 합니다. | + +옵션 파라미터의 전체 목록은 GitHub의 [dogstatsd-ruby repo][1]를 참조하세요. + + +[1]: https://github.com/DataDog/dogstatsd-ruby +{{< /programming-lang >}} +{{< programming-lang lang="go" >}} + +Go 클라이언트에는 클라이언트의 동작을 설정할 수 있는 여러 옵션이 있습니다. + +| 파라미터 | 유형 | 설명 | +| ----------------- | --------------- | --------------------------------------------------------------------------- | +| `WithNamespace()` | 문자열 | 모든 메트릭, 이벤트, 서비스 검사에서 접두사로 사용할 네임스페이스를 구성합니다. | +| `WithTags()` | 문자열 목록 | 모든 메트릭, 이벤트 및 서비스 검사에 적용되는 전역 태그입니다. | + +사용 가능한 모든 옵션은 [Datadog의 GoDoc][1]을 참조하세요. + + +[1]: https://pkg.go.dev/github.com/DataDog/datadog-go/v5/statsd#Option +{{< /programming-lang >}} +{{< programming-lang lang="java" >}} + +v2.10.0부터 권장되는 클라이언트 인스턴스화 방식은 NonBlockingStatsDClientBuilder를 사용하는 것입니다. 다음 +빌더 메서드를 사용하여 클라이언트 파라미터를 정의할 수 있습니다. + +| 빌더 메서드 | 유형 | 기본값 | 설명 | +| -------------------------------------------- | -------------- | --------- | ---------------------------------------------------------------------------------- | +| `prefix(String val)` | 문자열 | null | 모든 메트릭, 이벤트, 서비스 검사에 적용되는 접두사입니다. | +| `hostname(String val)` | 문자열 | localhost | 대상으로 지정된 StatsD 서버의 호스트 이름입니다. | +| `port(int val)` | 정수 | 8125 | 대상으로 지정된 StatsD 서버의 포트입니다. | +| `constantTags(String... val)` | 문자열 varargs | null | 모든 메트릭, 이벤트 및 서비스 검사에 적용될 전역 태그입니다. | +| `blocking(boolean val)` | 부울 | false | 인스턴스화할 클라이언트의 유형(차단 대 비차단)입니다. | +| `socketBufferSize(int val)` | 정수 | -1 | 기본 소켓 버퍼의 크기입니다. | +| `enableTelemetry(boolean val)` | 부울 | false | 텔레메트리를 보고하는 클라이언트입니다. | +| `entityID(String val)` | 문자열 | null | 출처 감지를 위한 엔터티 ID입니다. | +| `errorHandler(StatsDClientErrorHandler val)` | 정수 | null | 내부 클라이언트 오류 발생 시 오류 처리기입니다. | +| `maxPacketSizeBytes(int val)` | 정수 | 8192/1432 | 최대 패킷 크기입니다(UDS에서 8192, UDP에서는 1432). | +| `processorWorkers(int val)` | 정수 | 1 | 제출을 위해 버퍼를 조립하는 프로세스 작업자 스레드 수입니다. | +| `senderWorkers(int val)` | 정수 | 1 | 소켓에 버퍼를 제출하는 발신자 작업자 스레드 수입니다. | +| `poolSize(int val)` | 정수 | 512 | 네트워크 패킷 버퍼 풀 크기입니다. | +| `queueSize(int val)` | 정수 | 4096 | 대기열에서 처리되지 않은 최대 메시지 수입니다. | +| `timeout(int val)` | 정수 | 100 | 차단 작업의 시간 제한(밀리초)입니다. Unix 소켓에만 적용됩니다. | + +자세한 내용을 보려면Java DogStatsD [패키지][1]에서 NonBlockingStatsDClient 클래스 및 NonBlockingStatsDClientBuilder 클래스를 검색하세요. 클라이언트 릴리스와 일치하는 버전을 조회해야 합니다. + + +[1]: https://javadoc.io/doc/com.datadoghq/java-dogstatsd-client/latest/index.html +{{< /programming-lang >}} +{{< programming-lang lang="PHP" >}} + +| 파라미터 | 유형 | 기본값 | 설명 | +| ------------------ | --------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `host` | 문자열 | `localhost` | DogStatsD 서버의 호스트입니다. 이것이 설정되지 않은 경우, Agent는 `DD_AGENT_HOST` 또는 `DD_DOGSTATSD_URL` 환경 변수를 확인합니다. | +| `port` | 정수 | `8125` | DogStatsD 서버의 포트입니다. 이것이 설정되지 않은 경우, Agent는 `DD_DOGSTATSD_PORT` 또는 `DD_DOGSTATSD_URL` 환경 변수를 확인합니다. | +| `socket_path` | 문자열 | `null` | DogStatsD UNIX 도메인 소켓의 경로입니다(`host` 및 `port`를 재정의함). 이것은 Agent v6+에서만 지원됩니다. 이것이 설정되지 않은 경우, Agent는 `DD_DOGSTATSD_URL` 환경 변수를 확인합니다. | +| `global_tags` | 문자열 목록 | `null` | 모든 메트릭, 이벤트, 서비스 검사에 적용되는 태그입니다. `@dd.internal.entity_id` 태그는 `DD_ENTITY_ID` 환경 변수의 global_tags에 추가됩니다. | +| `origin_detection` | 부울 | True | 각 메트릭에 출처 감지 필드를 추가해야 합니까? | +| `container_id` | 문자열 | `null` | 출처 감지를 위해 모든 메트릭에 태그할 컨테이너 id입니다. | + +{{< /programming-lang >}} +{{< programming-lang lang=".NET" >}} + +| 파라미터 | 유형 | 기본값 | 설명 | +| ------------------ | --------------- | ----------- | -------------------------------------------------------------------- | +| `StatsdServerName` | 문자열 | `localhost` | 대상으로 지정된 StatsD 서버의 호스트 이름입니다. | +| `StatsdPort` | 정수 | `8125` | 대상으로 지정된 StatsD 서버의 포트입니다. | +| `Prefix` | 문자열 | `null` | 모든 메트릭, 이벤트 및 서비스 검사에 적용할 접두사입니다. | +| `ConstantTags` | 문자열 목록 | `null` | 모든 메트릭, 이벤트 및 서비스 검사에 적용될 전역 태그입니다. | +| `OriginDetection` | 부울 | True | 각 메트릭에 출처 감지 필드를 추가해야 합니까? | +| `ContainerID` | 문자열 | `null` | 출처 감지를 위해 모든 메트릭에 태그할 컨테이너 id입니다. | + +{{< /programming-lang >}} +{{< /programming-lang-wrapper >}} + +## DogStatsD 자세히 알아보기 {#dive-into-dogstatsd} + +DogStatsD와 StatsD는 대체로 유사하지만, DogStatsD에는 사용 가능한 데이터 유형, 이벤트, 서비스 검사 및 태그를 포함한 Datadog 관련 고급 기능이 포함되어 있습니다. + +{{< whatsnext desc="">}} +{{< nextlink href="/metrics/custom_metrics/dogstatsd_metrics_submission/" >}}DogStatsD를 사용하여 Datadog에 메트릭을 전송합니다.{{< /nextlink >}} +{{< nextlink href="/events/guides/dogstatsd/" >}}DogStatsD를 사용하여 Datadog에 이벤트를 전송합니다.{{< /nextlink >}} +{{< nextlink href="/extend/service_checks/dogstatsd_service_checks_submission/" >}}DogStatsD를 사용하여 Datadog에 서비스 검사를 전송합니다.{{< /nextlink >}} +{{< /whatsnext >}} + +DogStatsD에서 사용하는 데이터그램 형식에 대해 자세히 알고 싶거나 자체 Datadog 라이브러리를 개발하려면 [데이터그램과 셸 사용량][9] 섹션을 참조하세요. 명령줄에서 직접 메트릭과 이벤트를 보내는 방법도 확인할 수 있습니다. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/statsd/statsd +[2]: /ko/metrics/custom_metrics/dogstatsd_metrics_submission/ +[3]: https://hub.docker.com/r/datadog/dogstatsd +[4]: https://gcr.io/datadoghq/dogstatsd +[5]: /ko/metrics/custom_metrics/ +[6]: /ko/events/guides/dogstatsd/ +[7]: /ko/extend/service_checks/dogstatsd_service_checks_submission/ +[8]: /ko/getting_started/tagging/unified_service_tagging +[9]: /ko/extend/dogstatsd/datagram_shell/ +[10]: /ko/extend/community/libraries/ +[11]: /ko/getting_started/tagging/assigning_tags/?tab=containerizedenvironments#tags-cardinality +[12]: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/ +[33]: https://registry.datadoghq.com/v2/dogstatsd/tags/list +[34]: https://gallery.ecr.aws/datadog/dogstatsd \ No newline at end of file diff --git a/content/ko/getting_started/_index.md b/content/ko/getting_started/_index.md index edbcfb5c119..ec3a4b42c7a 100644 --- a/content/ko/getting_started/_index.md +++ b/content/ko/getting_started/_index.md @@ -4,27 +4,30 @@ aliases: - /ko/getting_started/faq/ cascade: algolia: - category: 시작하기 + category: Getting Started rank: 50 +description: Datadog의 Observability 플랫폼 설치, 구성 및 주요 기능 시작하기 가이드를 포함한 소개입니다. disable_sidebar: true further_reading: - link: https://learn.datadoghq.com/ tag: 학습 센터 - text: Datadog 시작 코스 수강하기 + text: Datadog 시작 과정 듣기 - link: https://datadoghq.com/blog/ tag: 블로그 - text: Datadog 제품, 기능, 통합 등에 관해 더 알아보기 + text: Datadog의 새로운 제품 및 기능, 통합 등에 관해 알아보기 - link: https://app.datadoghq.com/help/quick_start tag: 앱 - text: 빠른 시작 가이드 탐색하기 + text: 빠른 시작 가이드 둘러보기 +- link: https://learn.datadoghq.com/courses/introduction-to-observability + tag: 학습 센터 + text: Observability 소개 title: 시작하기 --- +## Datadog이란? {#what-is-datadog} -## Datadog란 무엇인가요? - -Datadog는 모든 스택에서 소프트웨어 개발 단계를 관찰할 수 있는 플랫폼입니다. Datadog 플랫폼은 소프트웨어 빌드, 테스트, 모니터링, 디버그, 최적화, 보안을 지원하는 제품으로 구성되어 있습니다. 이 제품을 별도로 사용하거나 맞춤형으로 조합해 사용할 수 있습니다. +Datadog은 스택에 관계없이 소프트웨어 개발의 모든 단계를 지원하는 가시성 플랫폼입니다. 이 플랫폼은 소프트웨어를 빌드, 테스트, 모니터링, 디버그, 최적화, 보안을 확보하는 데 도움이 되는 수많은 제품으로 구성되어 있습니다. 이러한 제품은 개별로 사용하거나, 여럿을 합쳐서 맞춤형 솔루션으로 사용할 수 있습니다. -다음은 Datadog 제품 예시를 보여주는 표입니다. +아래 표에 Datadog 제품을 몇 가지 예를 들어 나열했습니다. @@ -35,16 +38,16 @@ Datadog는 모든 스택에서 소프트웨어 개발 단계를 관찰할 수 - + @@ -52,18 +55,18 @@ Datadog는 모든 스택에서 소프트웨어 개발 단계를 관찰할 수 - + @@ -71,70 +74,80 @@ Datadog는 모든 스택에서 소프트웨어 개발 단계를 관찰할 수

    개발

      -
    • 코드 보안으로 텍스트 편집기나 GitHub의 코드 취약성을 강조 표시.
    • -
    • CoScreen으로 원격 페어 프로그래밍 세션을 가능하게 함.
    +
  • 텍스트 편집기나 GitHub에서 Code Security로 코드 취약성을 강조 표시합니다.
  • +
  • CoScreen을 사용해 원격 페어 프로그래밍 세션을 쉽게 진행합니다.
  • 테스팅

    테스트

      -
    • Quality Gates로 결함이 있는 코드가 프로덕션으로 배포되는 것을 차단
    • -
    • 신서틱 모니터링으로 전 세계 사용자로 시뮬레이션하여 웹 앱, API, 또는 모바일 애플리케이션 테스트
    • +
    • PR Gate를 사용하여 잘못된 코드가 프로덕션에 배포되는 것을 차단합니다.
    • +
    • Synthetic Monitoring을 사용해 전 세계 사용자를 시뮬레이션하여 웹 앱, API 또는 모바일 애플리케이션을 테스트합니다.

    모니터링

    트러블슈팅

    문제 해결

    보안

    -또한 사용할 수 있는 [통합][1]이 수백 개가 되기 때문에 이미 사용 중인 기술에 Datadog를 적용할 수 있습니다. 에를 들어 [AWS 통합][2]의 경우 90개가 넘는 AWS 서비스에서 로그, 이벤트, 메트릭을 수집합니다. +또한 수백 가지 [통합][1]을 이용해 이미 사용 중인 기술과 Datadog 기능을 연동할 수 있습니다. 예를 들어 [AWS 통합][2]은 90여 가지 AWS 서비스에서 로그, 이벤트 및 메트릭을 수집합니다. -## 자세히 알아보기 +## 자세히 알아보기 {#learn-more} -{{< learning-center-callout header="활성화 웨비나 세션 참여하기" hide_image="true" btn_title="신청하기" btn_url="https://www.datadoghq.com/technical-enablement/session/datadog-overview/">}} - 이 기초 활성화 세션에 참여하면 "Datadog란 무엇이고 어떤 일을 할 수 있나요?"와 같은 핵심 질문에 답을 얻을 수 있습니다. Datadog에 데이터를 보내는 방법과 다양한 환경, 애플리케이션, 인프라스트럭처의 상태를 알아보려면 어떤 페이지를 방문해야 하는지 알아봅니다. +{{< learning-center-callout header="활성화 웨비나 세션에 참가하기" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/session/datadog-overview/">}} + 이 기반 활성화 세션을 수강하면 "Datadog이란 무엇이고, 나에게 어떤 도움이 될까?"라는 핵심적인 질문에 답할 수 있습니다. Datadog으로 데이터를 보내는 방법은 물론 사용자의 다양한 환경, 애플리케이션, 인프라의 상태를 더 잘 이해하려면 어떤 페이지를 방문해야 하는지도 배우게 됩니다. {{< /learning-center-callout >}} -### 코스 듣기 -Datadog 학습 센터에서 Datadog 플랫폼 사용 실습을 할 수 있습니다. [코스 시작하기][3]에서는 관측 실습을 해보고 핵심 Datadog 개념 등을 배웁니다. +### 과정 듣기 {#take-a-course} +Datadog 학습 센터에서 Datadog 플랫폼 실습 경험을 제공합니다. [시작 과정][3]에서는 관측 가능성 실무, 주요 Datadog 개념 등을 다룹니다. Datadog 탐색 방법을 빠르게 배울 좋은 방법은 [빠르게 시작하기 코스][4]를 듣는 것입니다. -### 제품 분야 자세히 배우기 -{{< whatsnext desc="아래 가이드로 시작해 보세요.">}} -{{< nextlink href="/getting_started/application" >}}Datadog: 대시보드, 인프라스트럭처 목록, 맵 등 Datadog UI 사용 방법 배우기{{< /nextlink >}} -{{< nextlink href="/getting_started/site" >}}Datadog Site: 내 리전에 맞는 Datadog 사이트와 보안 요구 사항을 선택하기{{< /nextlink >}} -{{< nextlink href="/getting_started/devsecops" >}}DevSecOps 번들: APM DevSecOps와 Infrastructure DevSecOps 번들 시작하기{{< /nextlink >}} -{{< nextlink href="/getting_started/agent" >}}Agent: 내 호스트에서 Datadog로 메트릭과 이벤트 보내기{{< /nextlink >}} -{{< nextlink href="/getting_started/api" >}}API: Datadog HTTP API 시작하기{{< /nextlink >}} -{{< nextlink href="/getting_started/integrations" >}}통합: Datadog 통합으로 메트릭, 트레이스, 로그 수집 방법 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/tagging" >}}태그: 메트릭, 로그, 트레이스 태깅 시작하기{{< /nextlink >}} -{{< nextlink href="/getting_started/opentelemetry" >}}OpenTelemetry: Datadog로 OpenTelemetry 메트릭, 트레이스, 로그 전송 방법 배우기{{< /nextlink >}} -{{< nextlink href="/getting_started/learning_center" >}}학습 센터: 학습 경로에 따라 자기 학습형 수업이나 랩을 듣고 Datadog 인증 프로그램 알아보기{{< /nextlink >}} +### 제품 분야 심층 탐구 {#dive-deeper-into-a-product-area} +{{< whatsnext desc="아래의 가이드 중 하나로 시작하기:">}} +{{< nextlink href="/getting_started/application" >}}Datadog: 대시보드, 인프라 목록, 맵 등 Datadog UI 사용법을 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/site" >}}Datadog 사이트: 지역 및 보안 요구 사항에 적절한 Datadog 사이트를 선택합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/devsecops" >}}DevSecOps 번들: 인프라 DevSecOps 번들로 시작합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/agent" >}}Agent: 호스트의 메트릭과 이벤트를 Datadog으로 보냅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/api" >}}API: Datadog HTTP API로 시작하세요.{{< /nextlink >}} +{{< nextlink href="/getting_started/integrations" >}}Integrations: Datadog 통합을 사용해 메트릭, 트레이스, 로그를 수집하는 방법을 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/search" >}}검색: Datadog 제품 전반에 걸친 검색 및 필터링의 기초를 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/tagging" >}}태그: 메트릭, 로그, 트레이스를 태그하세요.{{< /nextlink >}} +{{< nextlink href="/getting_started/opentelemetry" >}}OpenTelemetry: OpenTelemetry 메트릭, 트레이스, 로그를 Datadog으로 보내는 방법을 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/learning_center" >}}학습 센터: 학습 경로를 따르거나, 자체 주도형 수업 또는 랩을 수강하고 Datadog 인증 프로그램을 둘러봅니다.{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="플랫폼 서비스">}} -{{< nextlink href="/getting_started/dashboards" >}}대시보드: 나에게 중요한 작업 관련 정보가 있는 대시보드를 생성하고, 공유하고, 저장하기{{< /nextlink >}} -{{< nextlink href="/getting_started/monitors" >}}모니터: 중요한 변경 사항이 있을 때 팀에서 알 수 있도록 알림과 공지사항을 설정하기{{< /nextlink >}} -{{< nextlink href="/getting_started/incident_management" >}}인시던트 관리: 시스템 내 문제에 관해 소통하고 문제를 추적하기{{< /nextlink >}} -{{< nextlink href="/getting_started/workflow_automation" >}}워크플로우 자동화: 알림 및 보안 신호에 대응하는 엔드 투 엔드 과정을 자동화하기{{< /nextlink >}} +{{< whatsnext desc="플랫폼 서비스:">}} +{{< nextlink href="/getting_started/dashboards" >}}Dashboards: 사용자가 중시하는 작업 질문에 답해 주는 대시보드를 생성, 공유, 유지 관리합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/incident_management" >}}Incident Management: 시스템의 문제에 관해 소통하고 문제를 추적합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/monitors" >}}Monitors: 중대한 변경 사항이 발생하면 팀에서 알 수 있도록 경보와 알림을 설정합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/notebooks" >}}Notebooks: 실시간 그래프, 메트릭, 로그, 모니터를 결합해 문제를 격리하고 인터랙티브 가이드를 만듭니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/organization_topology" >}}Organization Topology: 단일 조직 및 다중 조직 Datadog 배포 중에서 선택하고 액세스 제어로 격리를 관리합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/teams" >}}Teams: ID 제공업체, GitHub 및 기타 소스에서 얻은 팀 데이터를 Datadog에 동기화하여 신뢰할 수 있는 소유권 모델을 구축합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/workflow_automation" >}}Workflow Automation: 경보 및 보안 신호에 대응한 엔드투엔드 프로세스를 자동화합니다.{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="제품">}} -{{< nextlink href="/getting_started/containers" >}}컨테이너: 에이전트 자동 탐지와 Datadog 연산자 사용 방법 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/serverless" >}}AWS Lambda용 서버리스: 서버리스 인프라스트럭처에서 메트릭, 로그, 트레이스를 수집하는 방법 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/software_catalog" >}}Software Catalog: Software Catalog에서 대규모 서비스 소유권, 신뢰성, 성능 관리하기{{< /nextlink >}} -{{< nextlink href="/getting_started/tracing" >}}추적: 소규모 애플리케이션을 추적하도록 에이전트 설정하기{{< /nextlink >}} -{{< nextlink href="/getting_started/profiler" >}}프로파일러: 연속적 프로파일러를 사용해 코드의 성능 문제를 찾고 수정하기{{< /nextlink >}} -{{< nextlink href="/getting_started/database_monitoring" >}}데이터베이스 모니터링: 데이터베이스의 상태와 성능을 확인하고 발생한 오류를 빠르게 트러블슈팅하기{{< /nextlink >}} -{{< nextlink href="/getting_started/synthetics" >}}신서틱 모니터링: 신서틱 모니터링으로 내 API 엔드포인트와 핵심 비즈니스 여정 테스트 및 모니터링하기{{< /nextlink >}} -{{< nextlink href="/getting_started/continuous_testing" >}}연속적 테스팅: CI 파이프라인과 IDE에서 엔드 투 엔드 신서틱 테스트 실행하기{{< /nextlink >}} -{{< nextlink href="/getting_started/session_replay" >}}세션 재생: 세션 재생으로 사용자가 제품과 어떻게 상호 작용하는지 심도 있게 관찰하기{{< /nextlink >}} -{{< nextlink href="/getting_started/application_security" >}}애플리케이션 보안 관리: 팀에서 ASM 사용하기 전에 모범 사례 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/cloud_security_management" >}}클라우드 보안 관리: 팀에서 CSM 사용하기 전에 모범 사례 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/cloud_siem" >}}Cloud SIEM: 팀에서 Cloud SIEM 사용하기 전에 모범 사례 알아보기{{< /nextlink >}} -{{< nextlink href="/getting_started/logs" >}}로그: 첫 로그를 전송하고 로그 처리를 사용해 로그 보강하기{{< /nextlink >}} -{{< nextlink href="/getting_started/ci_visibility" >}}CI 가시성: CI 공급자 통합을 설정해 CI 파이프라인 데이터 수집하기{{< /nextlink >}} -{{< nextlink href="/getting_started/test_optimization" >}}테스트 최적화: Datadog에 테스트 서비스를 설정해 CI 테스트 데이터 수집하기{{< /nextlink >}} -{{< nextlink href="/getting_started/test_impact_analysis" >}}테스트 영향 분석: 코드 변경과 관련된 테스트만 실행해 스위트를 최적화하고 CI 비용 줄이기{{< /nextlink >}} -{{< nextlink href="/getting_started/code_security" >}}코드 보안: 개발에서 런타임까지 애플리케이션에서 자사 코드와 오픈 소스 라이브러리 분석하기{{< /nextlink >}} +{{< whatsnext desc="제품:">}} +{{< nextlink href="/getting_started/containers" >}}Containers: Agent Autodiscovery 및 Datadog 연산자 사용법을 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/serverless" >}}Serverless for AWS Lambda: 서버리스 인프라에서 메트릭, 로그, 트레이스를 수집하는 방법을 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/internal_developer_portal" >}}Internal Developer Portal: 텔레메트리, 메타데이터, 워크플로를 통합해 전달 속도를 높입니다. {{< /nextlink >}} +{{< nextlink href="/getting_started/tracing" >}}Tracing: Agent가 소형 애플리케이션을 추적하도록 설정합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/profiler" >}}Profiler: Continuous Profiler를 사용하여 코드의 성능 문제를 찾아서 해결합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/database_monitoring" >}}Database Monitoring: 데이터베이스의 상태와 성능을 조회하고 발생하는 문제를 신속하게 해결합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/synthetics" >}}Synthetic Monitoring: Synthetic 테스트로 API 엔드포인트 테스트 및 모니터링과 주요 비즈니스 여정을 시작하세요.{{< /nextlink >}} +{{< nextlink href="/getting_started/continuous_testing" >}}Continuous Testing: CI 파이프라인 및 IDE에서 엔드투엔드 Synthetic 테스트를 실행하세요.{{< /nextlink >}} +{{< nextlink href="/getting_started/session_replay" >}}세션 리플레이: 세션 리플레이를 사용해 사용자가 귀사 제품과 어떻게 상호작용하는지 심층적으로 살펴봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/application_security" >}}App and API Protection: AAP로 팀을 구성하고 운영하는 모범 사례를 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/cloud_security_management" >}}Cloud Security: Cloud Security로 팀을 구성하고 운영하는 모범 사례를 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/cloud_siem" >}}Cloud SIEM: Cloud SIEM으로 팀을 구성하고 운영하는 모범 사례를 알아봅니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/logs" >}}Logs: 첫 로그를 보내고 로그 처리를 사용하여 강화합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/ci_visibility" >}}CI Visibility: CI 제공업체와 통합을 설정하여 CI 파이프라인 데이터를 수집합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/feature_flags" >}}Feature Flag: 기본 제공되는 관측 가능성을 사용해 기능 제공을 관리하고 사용자 경험을 개인화합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/test_optimization" >}}Test Optimization: Datadog에서 테스트 서비스를 설정하여 CI 테스트 데이터를 수집합니다.{{< /nextlink >}} +{{< nextlink href="/getting_started/test_impact_analysis" >}}Test Impact Analysis: 코드 변경과 관련 있는 테스트만 실행하여 테스트 모음을 최적화하고 CI 비용을 절감하세요.{{< /nextlink >}} +{{< nextlink href="/getting_started/code_security" >}}Code Security: 개발부터 런타임까지 애플리케이션 내 퍼스트파티 코드 및 오픈소스 라이브러리를 분석합니다.{{< /nextlink >}} {{< /whatsnext >}} -## 참고 자료 +## 미리 보기 제품 또는 기능 사용해 보기 {#try-a-preview-product-or-feature} + +Datadog 제품 팀에서는 고객에게 도움이 될 만한 새로운 기능을 자주 추가하고 있습니다. 이러한 몇몇 기능이 정식 출시되기 전에 사용해 보고 도움이 되는지 알아본 다음, Datadog에 개선할 방법에 관한 피드백을 주실 수 있습니다. 진행 중인 미리 보기의 전체 목록을 확인하고 자세한 정보를 알아보거나 참여자로 등록하려면 [Datadog 제품 미리 보기 프로그램][5]으로 이동하세요. + +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ko/getting_started/integrations/ [2]: /ko/integrations/amazon_web_services/ [3]: https://learn.datadoghq.com/collections/getting-started -[4]: https://learn.datadoghq.com/courses/course-quickstart \ No newline at end of file +[4]: https://learn.datadoghq.com/courses/course-quickstart +[5]: https://www.datadoghq.com/product-preview/ \ No newline at end of file diff --git a/content/ko/getting_started/tagging/unified_service_tagging.md b/content/ko/getting_started/tagging/unified_service_tagging.md index e1923f8aad2..afa21b341d2 100644 --- a/content/ko/getting_started/tagging/unified_service_tagging.md +++ b/content/ko/getting_started/tagging/unified_service_tagging.md @@ -1,10 +1,11 @@ --- algolia: tags: - - 통합 서비스 태그 - - 통합 - - 통합 서비스 - - 서비스 태그 + - unified service tags + - unified + - unified service + - service tags +description: 표준화된 환경, 서비스 및 버전 태그를 사용하여 트레이스, 메트릭 및 로그 전체에 텔레메트리를 연결해 일관된 모니터링을 수행하세요. further_reading: - link: /getting_started/tagging/using_tags tag: 설명서 @@ -14,35 +15,38 @@ further_reading: text: Datadog APM에서 버전 태그로 배포 모니터링하기 - link: https://www.datadoghq.com/blog/autodiscovery-docker-monitoring/ tag: 블로그 - text: 자동탐지에 대해 자세히 알아보기 -title: 통합 서비스 태깅 + text: Autodiscovery에 대해 자세히 알아보기 +title: Unified Service Tagging --- +## 개요 {#overview} -## 개요 +Unified service tagging은 `env`, `service`, `version`의 세 가지 [예약된 태그][1]를 사용해 Datadog 텔레메트리를 묶어 줍니다. -통합 서비스 태깅은 세 가지 [예약된 태그][1](`env`,`service`, `version`)를 사용해 Datadog 텔레메트리를 하나로 묶습니다. +이 세 가지 태그를 사용해 할 수 있는 일은 다음과 같습니다. -세 가지 태그를 사용해 다음을 할 수 있습니다. +- 버전별로 필터링된 트레이스 및 컨테이너 메트릭으로 배포 영향 파악 +- 일관된 태그로 트레이스, 메트릭, 로그를 원활하게 탐색 +- 통일된 방식으로 환경 또는 버전에 따라 서비스 데이터 조회 -- 버전별로 필터링된 트레이스 및 컨테이너 메트릭으로 배포가 미치는 영향을 알아봅니다. -- 일관성 있는 태그를 사용하여 트레이스, 메트릭, 로그 사이에서 원활하게 이동합니다. -- 통일된 방식으로 환경 또는 버전에 따라 서비스 데이터를 표시합니다. +{{< img src="tagging/unified_service_tagging/overview.mp4" alt="Unified Service Tagging" video=true >}} -{{< img src="tagging/unified_service_tagging/overview.mp4" alt="통합 서비스 태깅" video=true >}} +**참고**: -**참조**: 자동탐지 로그 설정이 존재하지 않는 경우, 로그의 공식 서비스 기본값이 컨테이너의 짧은 이미지가 됩니다. 로그 공식 서비스를 재정의하려면 자동탐지 [Docker 레이블/Pod 주석][2]을 추가하세요(예: `"com.datadoghq.ad.logs"='[{"service": "service-name"}]'`). +- `version` 태그는 새 애플리케이션 배포마다 변경될 것으로 예상됩니다. 애플리케이션 코드의 두 가지 버전에는 서로 다른 `version` 태그가 있어야 합니다. +- Autodiscovery 로그 구성이 없는 경우, 로그의 공식 서비스는 컨테이너 단축 이미지로 기본 설정됩니다. 로그의 공식 서비스를 재정의하려면 Autodiscovery [Docker 레이블/포드 어노테이션][2]을 추가하세요. 예: `"com.datadoghq.ad.logs"='[{"service": "service-name"}]'` +- 호스트 정보가 데이터베이스 및 캐시 스팬에서 제외되는 이유는 스팬과 연결된 호스트가 데이터베이스/캐시 호스트가 아니기 때문입니다. -### 필수 조건 +### 요구 사항 {#requirements} -- 통합 서비스 태깅을 사용하려면 [Datadog 에이전트][3] 6.19.x/7.19.x 이상을 설치해야 합니다. +- Unified service tagging을 사용하려면 [Datadog Agent][3] 6.19.x/7.19.x 이상 설정이 필요합니다. -- 통합 서비스 태깅을 사용하려면 [전용 태그][1]의 새 설정을 지원하는 트레이서 버전이 필요합니다. 언어별로 자세한 정보는 [설정 안내][4] 가이드에서 찾아볼 수 있습니다. +- Unified service tagging에는 [예약된 태그][1]의 새 구성을 지원하는 SDK 버전이 필요합니다. 언어별 자세한 정보는 [설정 지침][4]을 참조하세요. -| 언어 | 최소 트레이서 버전 | +| 언어 | 최소 SDK 버전 | |--------------|------------| | .NET | 1.17.0+ | -| C++ | 1.1.4+ | +| C++ | 0.1.0+ | | Go | 1.24.0+ | | Java | 0.50.0+ | | Node | 0.20.3+ | @@ -50,37 +54,39 @@ title: 통합 서비스 태깅 | Python | 0.38.0+ | | Ruby | 0.34.0+ | -- 통합 서비스 태깅을 사용하려면 태그 설정과 관련된 지식이 있어야 합니다. 태그 설정법을 잘 모르겠다면 [태그 시작하기][1] 가이드와 [태그 할당][5] 설명서를 읽은 후 다음 설정을 진행하세요. +- Unified service tagging을 사용하려면 태그 구성에 관한 지식이 있어야 합니다. 태그를 구성하는 방법을 잘 모르는 경우, [태깅 시작하기][1] 및 [태그 할당][5] 설명서를 읽어본 다음에 구성으로 계속 진행하세요. -## 설정 +## 구성 {#configuration} -통합 서비스 태깅 설정을 시작하려면 환경을 선택하세요. +unified service tagging 구성을 시작하려면 환경을 선택하세요. -- [컨테이너화 됨](#containerized-environment) +- [컨테이너화됨](#containerized-environment) - [컨테이너화되지 않음](#non-containerized-environment) +- [Serverless](#serverless-environment) +- [OpenTelemetry](#opentelemetry) -### 컨테이너화된 환경 +### 컨테이너화된 환경 {#containerized-environment} -컨테이너화된 환경에서 `env`, `service`, `version`은 서비스 환경 변수나 레이블을 통해(예: Kubernetes 배포, Pod 레이블, Docker 컨테이 레이블) 설정됩니다. Datadog 에이전트에서는 태그 설정을 감지하여 컨테이너에서 수집한 데이터에 적용합니다. +컨테이너화된 환경에서는 `env`, `service`, `version`이 서비스의 환경 변수 또는 레이블을 통해 설정됩니다(예를 들어 Kubernetes 배포 및 포드 레이블, Docker 컨테이너 레이블). Datadog Agent가 이 태깅 구성을 감지하고 컨테이너에서 수집하는 데이터에 이 구성을 적용합니다. -통합 서비스 태깅을 컨테이너화 환경에서 설정하는 방법: +컨테이너화된 환경에서 unified service tagging을 설정하는 방법: -1. [자동탐지][6]를 활성화합니다. 자동탐지를 사용하면 Datadog 에이전트가 자동으로 특정 컨테이너에서 실행 중인 서비스를 식별하고, 해당 서비스에서 데이터를 수집하여 환경 변수를 `env`, `service,`, `version` 태그에 매핑할 수 있습니다. +1. [Autodiscovery][6]를 활성화합니다. 이렇게 하면 Datadog Agent가 특정 컨테이너에서 실행되는 서비스를 자동으로 식별하고 그러한 서비스의 데이터를 수집해 환경 변수를 `env`, `service,` `version` 태그에 매핑할 수 있습니다. -2. [Docker][2]를 사용한다면 에이전트가 컨테이너 [Docker 소켓][7]에 액세스할 수 있는지 확인하세요. 이렇게 하면 에이전트가 환경 변수를 탐지하고 표준 태그에 매핑합니다. +2. [Docker][2]를 사용하는 경우, Agent가 컨테이너의 [Docker 소켓][7]에 액세스할 수 있어야 합니다. 그래야 Agent가 환경 변수를 감지하여 표준 태그에 매핑할 수 있습니다. -3. 아래와 같이 전체 설정이나 부분 설정을 기준으로 컨테이너 오케스트레이션 서비스에 해당하는 환경을 설정하세요. +3. 전체 구성 또는 부분 구성에 따라 컨테이너 오케스트레이션 서비스에 해당하는 환경을 구성합니다(자세한 내용은 아래 참조). -#### 설정 +#### 구성 {#configuration-1} {{< tabs >}} {{% tab "Kubernetes" %}} -[Admission Controller][1]를 활성화하여 Datadog 클러스터 에이전트를 배포한 경우, Admission Controller에서 Pod 매니페스트를 변이시키고(설정된 변이 조건에 따라) 필요한 모든 환경 변수를 삽입합니다. 이 경우, Pod 매니페스트 내 환경 변수 `DD_`를 직접 설정할 필요가 없습니다. 자세한 내용은 [Admission Controller 설명서][1]를 참고하세요. +[Admission Controller][1]를 활성화한 상태로 Datadog Cluster Agent를 배포한 경우, Admission Controller가 포드 매니페스트를 변형하고 필수 환경 변수를 모두 주입합니다(구성된 변형 조건을 따름). 이 경우, 포드 매니페스트의 `DD_` 환경 변수를 수동으로 구성할 필요가 없습니다. 자세한 내용은 [Admission Controller 설명서][1]를 참조하세요. -##### 전체 설정 +##### 전체 구성 {#full-configuration} -Kubernetes 사용 시 통합 서비스 태그를 전부 활용하려면 배포 개체 수준과 Pod 템플릿 스펙 수준 모두에 환경 변수를 추가하세요. +Kubernetes를 사용할 때 unified service tagging 전체 범위를 이용하려면 배포 개체 수준 및 포드 템플릿 사양 수준 둘 모두에 환경 변수를 추가하세요. ```yaml apiVersion: apps/v1 @@ -89,14 +95,14 @@ metadata: labels: tags.datadoghq.com/env: "" tags.datadoghq.com/service: "" - tags.datadoghq.com/version: "" + tags.datadoghq.com/version: "" ... template: metadata: labels: tags.datadoghq.com/env: "" tags.datadoghq.com/service: "" - tags.datadoghq.com/version: "" + tags.datadoghq.com/version: "" containers: - ... env: @@ -108,17 +114,30 @@ template: valueFrom: fieldRef: fieldPath: metadata.labels['tags.datadoghq.com/service'] - - name: DD_VERSION - valueFrom: - fieldRef: + - name: DD_VERSION + valueFrom: + fieldRef: fieldPath: metadata.labels['tags.datadoghq.com/version'] ``` -##### 부분 설정 +OpenTelemetry Resource Attributes 환경 변수를 사용하여 `env`, `service`, `version` 태그를 설정할 수도 있습니다. + +```yaml + containers: + - ... + env: + - name: OTEL_RESOURCE_ATTRIBUTES + value: "service.name=,service.version=,deployment.environment=" + - name: OTEL_SERVICE_NAME + value: "" +``` +
    OTEL_SERVICE_NAME 환경 변수는 service.name 환경 변수의 OTEL_RESOURCE_ATTRIBUTES 속성보다 우선합니다.
    + +##### 부분 구성 {#partial-configuration} -###### Pod 수준 메트릭 +###### 포드 수준 메트릭 {#pod-level-metrics} -Pod 수준 메트릭을 설정하려면 다음의 표준 레이블(`tags.datadoghq.com`)을 Deployment, StatefulSet, 또는 Job의 Pod 스펙에 추가하세요. +포드 수준 메트릭을 구성하려면 다음 표준 레이블(`tags.datadoghq.com`)을 Deployment, StatefulSet 또는 Job의 포드 사양에 추가합니다. ```yaml template: @@ -126,25 +145,25 @@ template: labels: tags.datadoghq.com/env: "" tags.datadoghq.com/service: "" - tags.datadoghq.com/version: "" + tags.datadoghq.com/version: "" ``` -이 레이블은 Pod 수준 Kubernetes CPU, 메모리, 네트워크, 디스크 메트릭을 포괄하며, [Kubernetes의 하향 API][2]를 통해 `DD_ENV`, `DD_SERVICE`, `DD_VERSION`을 서비스 컨테이너에 삽입할 때 사용됩니다. +이러한 레이블은 포드 수준 Kubernetes CPU, 메모리, 네트워크 및 디스크 메트릭에 적용되며 [Kubernete의 downward API][2]를 통해 `DD_ENV`, `DD_SERVICE`, `DD_VERSION`을 서비스의 컨테이너에 주입하는 데 사용할 수 있습니다. -Pod마다 여러 컨테이너를 사용한다면 컨테이너별로 표준 레이블을 지정할 수 있습니다. +포드당 컨테이너가 여러 개인 경우, 컨테이너별로 표준 레이블을 지정할 수 있습니다. ```yaml tags.datadoghq.com/.env tags.datadoghq.com/.service -tags.datadoghq.com/.version +tags.datadoghq.com/.version ``` -###### 상태 메트릭 +###### 상태 메트릭 {#state-metrics} -[Kubernetes 상태 메트릭][3]을 설정하는 방법은 다음과 같습니다. +[Kubernetes 상태 메트릭][3]을 구성하는 방법: -1. 설정 파일에 `join_standard_tags`를 `true`로 설정합니다. 설정 위치에 대해서는 [설정 파일 예시][4]를 참고하세요. +1. 구성 파일에서 `join_standard_tags`를 `true`로 설정합니다. 설정 위치는 이 [구성 파일 예시][4]를 참조하세요. -2. 동일한 표준 레이블을 상위 리소스용 레이블 컬렉션에 추가합니다(예: `Deployment`). +2. 동일한 표준 레이블을 상위 리소스의 레이블 컬렉션에 추가합니다(예: `Deployment`). ```yaml apiVersion: apps/v1 @@ -153,19 +172,19 @@ tags.datadoghq.com/.version labels: tags.datadoghq.com/env: "" tags.datadoghq.com/service: "" - tags.datadoghq.com/version: "" + tags.datadoghq.com/version: "" spec: template: metadata: labels: tags.datadoghq.com/env: "" tags.datadoghq.com/service: "" - tags.datadoghq.com/version: "" + tags.datadoghq.com/version: "" ``` -###### APM 트레이서와 StatsD 클라이언트 +###### Datadog SDK 및 StatsD 클라이언트 {#datadog-sdk-and-statsd-client} -[APM 트레이서][5]와 [StatsD 클라이언트][6] 환경 변수를 설정하려면 다음 형식에서 [쿠버네티스 Downward API][2]를 사용하세요. +[Datadog SDK][5] 및 [StatsD client][6] 환경 변수를 구성하려면 [Kubernetes의 downward API][2]를 아래의 형식으로 사용하세요. ```yaml containers: @@ -179,12 +198,31 @@ containers: valueFrom: fieldRef: fieldPath: metadata.labels['tags.datadoghq.com/service'] - - name: DD_VERSION - valueFrom: - fieldRef: - fieldPath: metadata.labels['tags.datadoghq.com/version'] + - name: DD_VERSION + valueFrom: + fieldRef: + fieldPath: metadata.labels['tags.datadoghq.com/version'] ``` +##### 컨테이너화된 환경에서 APM 데이터 자동 버전 태깅 {#automatic-version-tagging-for-apm-data-in-containerized-environments} + +
    이 기능은 Application Performance Monitoring(APM) 데이터에만 활성화됩니다.
    + +APM에서 `version` 태그를 사용하여 [배포를 모니터링][7]하고 [잘못된 배포 자동 탐지][8]를 사용해 오류 코드 배포를 식별할 수 있습니다. + +APM 데이터의 경우, Datadog은 `version` 태그를 다음과 같은 우선순위 순서로 설정합니다. `version`을 수동으로 설정하면 Datadog이 사용자의 `version` 값을 재정의하지 않습니다. + +| 우선순위 | 버전 값 | +|--------------|------------| +| 1 | {your version value} | +| 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | +| 3 | {image_tag} 또는 {first_7_digits_of_git_commit_sha}(하나만 사용 가능한 경우) | + +요구 사항: +- Datadog Agent 버전 7.52.0 이상 +- 서비스가 컨테이너화된 환경에서 실행되고 `image_tag`만으로 새 버전 배포를 추적하는 데 충분하면 추가적인 구성이 필요하지 않습니다. +- 서비스가 컨테이너화된 환경에서 실행되지 않거나, Git SHA도 포함하고자 하는 경우 [빌드 아티팩트에 Git 정보를 임베드][9]하세요. + [1]: /ko/agent/cluster_agent/admission_controller/ [2]: https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#capabilities-of-the-downward-api @@ -192,59 +230,92 @@ containers: [4]: https://github.com/DataDog/integrations-core/blob/master/kubernetes_state/datadog_checks/kubernetes_state/data/conf.yaml.example [5]: /ko/tracing/send_traces/ [6]: /ko/integrations/statsd/ -{{< /tabs >}} +[7]: /ko/tracing/services/deployment_tracking/ +[8]: /ko/watchdog/faulty_deployment_detection/ +[9]: /ko/integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts -{{% tab "도커" %}} -##### 전체 설정 +{{% /tab %}} + +{{% tab "Docker" %}} +##### 전체 구성 {#full-configuration-1} -`DD_ENV`, `DD_SERVICE`, `DD_VERSION` 환경 변수를 설정하고, 컨테이너에 해당하는 Docker 레이블을 구성해 통합 서비스 태깅의 모든 기능을 이용할 수 있습니다. +unified service tagging 전체 범위를 이용하려면 `DD_ENV`, `DD_SERVICE`, `DD_VERSION` 환경 변수 및 해당하는 Docker 레이블을 컨테이너에 맞게 설정하세요. -`service` 및 `version`의 값은 Dockerfile에서 알 수 있습니다. +`service` 및 `version`의 값을 Dockerfile에 제공할 수 있습니다. ```yaml ENV DD_SERVICE -ENV DD_VERSION +ENV DD_VERSION LABEL com.datadoghq.tags.service="" -LABEL com.datadoghq.tags.version="" +LABEL com.datadoghq.tags.version="" ``` -`env`는 배포 시점에 결정되므로, 환경 변수와 레이블을 나중에 삽입할 수 있습니다. +`env`는 배포 시점에 결정될 가능성이 크기 때문에, 환경 변수와 레이블은 나중에 주입할 수 있습니다. ```shell docker run -e DD_ENV= -l com.datadoghq.tags.env= ... ``` -배포 시점에 모든 것을 설정하시길 선호할 수도 있습니다. +배포 시 모든 설정을 완료하는 편을 선호할 수도 있습니다. ```shell docker run -e DD_ENV="" \ -e DD_SERVICE="" \ - -e DD_VERSION="" \ + -e DD_VERSION="" \ -l com.datadoghq.tags.env="" \ -l com.datadoghq.tags.service="" \ - -l com.datadoghq.tags.version="" \ + -l com.datadoghq.tags.version="" \ ... ``` -##### 부분 설정 +##### 부분 구성 {#partial-configuration-1} -서비스에서 Datadog 환경 변수가 필요하지 않은 경우(예를 들어 Redis, PostgreSQL, NGINX 같은 서드파티 소프트웨어와 APM에서 추적하지 않는 애플리케이션의 경우) Docker 레이블을 사용하면 됩니다. +서비스에 Datadog 환경 변수가 필요하지 않은 경우(예를 들어 Redis, PostgreSQL, NGINX와 같은 타사 소프트웨어 및 APM이 추적하지 않는 애플리케이션) Docker 레이블을 사용하면 됩니다. ```yaml com.datadoghq.tags.env com.datadoghq.tags.service -com.datadoghq.tags.version +com.datadoghq.tags.version ``` -전체 설정에서 설명했듯, 이러한 라벨은 Dockerfile에서 설정하거나 컨테이너 시작 시 인수로 설정할 수 있습니다. +전체 구성에서 설명한 것과 같이, 이러한 레이블은 Dockerfile에 설정할 수도 있고 컨테이너 실행을 위해 인수로 설정할 수도 있습니다. -{{< /tabs >}} +##### 컨테이너화된 환경에서 APM 데이터 자동 버전 태깅 {#automatic-version-tagging-for-apm-data-in-containerized-environments-1} + +
    이 기능은 Application Performance Monitoring(APM) 데이터에만 활성화됩니다.
    + +APM에서 `version` 태그를 사용하여 [배포를 모니터링][1]하고 [잘못된 배포 자동 탐지][2]를 사용해 오류 코드 배포를 식별할 수 있습니다. + +APM 데이터의 경우, Datadog은 `version` 태그를 다음과 같은 우선순위 순서로 설정합니다. `version`을 수동으로 설정하면 Datadog이 사용자의 `version` 값을 재정의하지 않습니다. + +| 우선순위 | 버전 값 | +|--------------|------------| +| 1 | {your version value} | +| 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | +| 3 | {image_tag} 또는 {first_7_digits_of_git_commit_sha}(하나만 사용 가능한 경우) | + +요구 사항: +- Datadog Agent 버전 7.52.0 이상 +- 서비스가 컨테이너화된 환경에서 실행되고 `image_tag`만으로 새 버전 배포를 추적하는 데 충분하면 추가적인 구성이 필요하지 않습니다. +- 서비스가 컨테이너화된 환경에서 실행되지 않거나, Git SHA도 포함하고자 하는 경우 [빌드 아티팩트에 Git 정보를 임베드][3]하세요. + + +[1]: /ko/tracing/services/deployment_tracking/ +[2]: /ko/watchdog/faulty_deployment_detection/ +[3]: /ko/integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts + +{{% /tab %}} {{% tab "ECS" %}} -##### 전체 설정 -`DD_ENV`, `DD_SERVICE`, `DD_VERSION` 환경 변수와 해당하는 Docker 레이블을 각 서비스 컨테이너의 런타임 환경에서 설정하여 통합 서비스 태깅의 모든 기능을 이용할 수 있습니다. 예를 들어, ECS 작업 정의를 통해 이 설정의 모든 요소를 한 곳에서 설정할 수 있습니다. +
    +Fluent Bit 또는 FireLens를 사용하는 ECS Fargate에서는, unified service tagging을 로그 수집이 아닌 메트릭과 트레이스에만 사용할 수 있습니다. +
    + +##### 전체 구성 {#full-configuration-2} + +unified service tagging 전체 범위를 이용하려면 `DD_ENV`, `DD_SERVICE`, `DD_VERSION`(자동 버전 태깅 포함, 선택 사항) 환경 변수 및 해당하는 Docker 레이블을 각 서비스의 컨테이너 런타임 환경에서 설정하세요. 예를 들어 ECS 작업 정의를 통해 이 모든 구성을 한곳에서 설정할 수 있습니다. ``` "environment": [ @@ -260,6 +331,7 @@ com.datadoghq.tags.version "name": "DD_VERSION", "value": "" } + ], "dockerLabels": { "com.datadoghq.tags.env": "", @@ -267,10 +339,13 @@ com.datadoghq.tags.version "com.datadoghq.tags.version": "" } ``` +
    +ECS Fargate에서는 이러한 태그를 Datadog Agent 컨테이너가 아니라 애플리케이션 컨테이너에 추가해야 합니다. +
    -##### 부분 설정 +##### 부분 구성 {#partial-configuration-2} -서비스에서 Datadog 환경 변수가 필요하지 않은 경우(예를 들어 Redis, PostgreSQL, NGINX 같은 서드파티 소프트웨어와 APM에서 트레이싱하지 않는 애플리케이션의 경우) ECS 작업 정의의 Docker 레이블을 사용하세요. +서비스에 Datadog 환경 변수가 필요하지 않은 경우(예를 들어 Redis, PostgreSQL, NGINX와 같은 타사 소프트웨어 및 APM이 추적하지 않는 애플리케이션) ECS 작업 정의에서 Docker 레이블을 사용하면 됩니다. ``` "dockerLabels": { @@ -280,90 +355,111 @@ com.datadoghq.tags.version } ``` +##### 컨테이너화된 환경에서 APM 데이터 자동 버전 태깅 {#automatic-version-tagging-for-apm-data-in-containerized-environments-2} + +
    이 기능은 Application Performance Monitoring(APM) 데이터에만 활성화됩니다.
    + +APM에서 `version` 태그를 사용하여 [배포를 모니터링][1]하고 [잘못된 배포 자동 탐지][2]를 사용해 오류 코드 배포를 식별할 수 있습니다. + +APM 데이터의 경우, Datadog은 `version` 태그를 다음과 같은 우선순위 순서로 설정합니다. `version`을 수동으로 설정하면 Datadog이 사용자의 `version` 값을 재정의하지 않습니다. + +| 우선순위 | 버전 값 | +|--------------|------------| +| 1 | {your version value} | +| 2 | {image_tag}_{first_7_digits_of_git_commit_sha} | +| 3 | {image_tag} 또는 {first_7_digits_of_git_commit_sha}(하나만 사용 가능한 경우) | + +요구 사항: +- Datadog Agent 버전 7.52.0 이상 +- 서비스가 컨테이너화된 환경에서 실행되고 `image_tag`만으로 새 버전 배포를 추적하는 데 충분하면 추가적인 구성이 필요하지 않습니다. +- 서비스가 컨테이너화된 환경에서 실행되지 않거나, Git SHA도 포함하고자 하는 경우 [빌드 아티팩트에 Git 정보를 임베드][3]하세요. + +[1]: /ko/tracing/services/deployment_tracking/ +[2]: /ko/watchdog/faulty_deployment_detection/ +[3]: /ko/integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts + {{% /tab %}} -{{< /tabs >}} +{{% /tabs %}} -### 컨테이너화 되지 않은 환경 +### 컨테이너화되지 않은 환경 {#non-containerized-environment} -서비스 바이너리나 실행 파일을 빌드하고 배포한 방법에 따라, 사용할 수 있는 설정 환경 변수의 옵션도 여러 가지가 존재합니다. 사용자가 호스트별로 하나 이상의 서비스를 실행할 수 있으므로, Datadog는 이러한 환경 변수를 하나의 프로세스로 관리하시길 권장합니다. +서비스의 바이너리 또는 실행 파일을 어떻게 구축하고 배포하는지에 따라, 설정 환경 변수에 몇 가지 옵션을 사용할 수 있습니다. 호스트당 서비스를 하나 이상 실행할 가능성이 있으므로, Datadog에서는 이러한 환경 변수의 범위를 단일 프로세스로 지정하는 편을 권장합니다. -[트레이스][8], [로그][9], [RUM 리소스][10], [신서틱 테스트][11], [StatsD 메트릭][12] 또는 시스템 메트릭의 서비스 런타임에서 수집한 모든 텔레메트리를 대상으로 하나의 설정 포인트를 구성하려면 다음 단계를 따르세요. +서비스의 런타임에서 [트레이스][8], [로그][9], [RUM 리소스][10], [Synthetic 테스트][11], [StatsD metrics][12]에 대하여 직접 발생하는 모든 텔레메트리의 구성 지점을 하나만 형성하려면 다음 중 한 가지를 선택합니다. -1. 실행 가능 파일 명령어로 환경 변수를 내보냅니다. +1. 실행 파일의 명령에 있는 환경 변수 내보내기: ``` DD_ENV= DD_SERVICE= DD_VERSION= /bin/my-service ``` -2. 또는 [Chef][13], [Ansible][14]이나 다른 오케스트레이션 도구를 사용하여 서비스의 systemd 또는 initd 설정 파일에 DD 환경 변수를 설정합니다. 서비스 프로세스가 시작되면 해당 변수에 액세스할 수 있습니다. +2. 또는 [Chef][13], [Ansible][14]이나 다른 오케스트레이션 도구를 사용하여 시스템의 systmd 또는 initd 구성 파일을 `DD` 환경 변수로 채웁니다. 서비스 프로세스가 시작되면 그러한 변수에 액세스할 수 있습니다. {{< tabs >}} {{% tab "트레이스" %}} - 통합 서비스 태깅을 위해 트레이스를 설정할 때: + unified service tagging에 대하여 트레이스를 구성하는 경우: - 1. `DD_ENV`에서 [APM 트레이서][1]를 설정하고, 트레이스를 생성하는 애플리케이션에 `env` 정의를 근접하게 둡니다. 이 방법을 사용하면 스팬(span) 메타데이터 태그에서 `env` 태그를 자동으로 얻을 수 있습니다. + 1. [Datadog SDK][1]를 `DD_ENV`로 구성해야 `env`의 정의를 트레이스를 생성 중인 애플리케이션에 더 가깝게 유지할 수 있습니다. 이 방식을 이용하면 `env` 태그를 스팬 메타데이터의 태그에서 자동으로 소싱할 수 있습니다. - 2. `DD_VERSION`에서 스팬을 설정하여, 트레이서에 속하는 서비스(보통 `DD_SERVICE`)의 모든 스팬에 버전을 추가합니다. 이는 서비스가 외부 서비스 이름으로 스팬을 생성할 경우 해당 스팬은 `version`을 태그로 수신하지 않는다는 의미입니다. + 2. 스팬을 `DD_VERSION`으로 구성하여 SDK에 속하는 서비스에 해당하는 모든 스팬에 버전을 추가합니다(일반적으로 `DD_SERVICE`). 이렇게 하면 서비스가 외부 서비스와 이름이 같은 스팬을 생성하는 경우, 그러한 스팬이 `version`을 태그로 수신하지 않게 됩니다. - 스팬에 버전이 존재하는 한, 해당 스팬에서 생성된 메트릭을 트레이스하기 위해 버전 정보가 추가됩니다. 버전은 수동으로 코드 내에 추가하거나 APM 트레이서를 통해 자동 추가할 수 있습니다. 설정을 완료하면 APM 및 [DogStatsD 클라이언트][2]에서 이를 사용하며, 트레이스 데이터와 StatsD 메트릭에 `env`, `service`, `version` 태그를 붙입니다. APM 트레이서를 활성화한 경우에는 이 변수의 값도 로그에 삽입됩니다. + 스팬에 버전이 있는 한, 해당 버전이 그러한 스팬에서 생성된 트레이스 메트릭에 추가됩니다. 버전은 코드에 수동으로 추가할 수도 있고, Datadog SDK가 자동으로 추가할 수도 있습니다. 구성된 경우, APM 및 [DogStatsD 클라이언트][2]가 이것을 사용하여 트레이스 데이터 및 StatsD 메트릭을 `env`, `service`, `version`으로 태그합니다. 활성화된 경우, Datadog SDK는 이러한 변수의 값도 로그에 주입합니다. - **참조**: **스팬당 서비스는 1개**밖에 존재할 수 없습니다. 트레이스 메트릭에는 보통 싱글 서비스도 있습니다. 그러나 호스트의 태그에서 서로 다른 서비스를 정의한 경우, 설정된 서비스 태그가 해당 호스트에서 발생한 모든 트레이스 메트릭에 표시됩니다. + **참고**: **스팬당 서비스 하나**만 있을 수 있습니다. 일반적으로 트레이스 메트릭에도 서비스가 한 개 있습니다. 하지만 호스트의 태그에 다른 서비스가 정의되어 있는 경우, 그러한 구성된 서비스 태그가 해당 호스트에서 발생한 모든 트레이스 메트릭에 표시됩니다. [1]: /ko/tracing/setup/ -[2]: /ko/developers/dogstatsd/ +[2]: /ko/extend/dogstatsd/ {{% /tab %}} {{% tab "로그" %}} - [연결된 로그와 트레이스][1]를 사용 중이라면, APM 트레이서에서 지원되는 경우 자동 로그 삽입을 활성화합니다. APM 트레이서는 자동으로 `env`, `service`, `version`을 로그에 삽입하므로 다른 곳에서 필드를 수동으로 설정할 필요가 없습니다. - - **참조**: PHP 트레이서는 로그용 통합 서비스 태깅 설정을 지원하지 않습니다. + [연결된 로그 및 트레이스][1]를 사용하는 경우, Datadog SDK에 자동 로그 주입이 지원되면 자동 로그 주입을 활성화하세요. 그러면 Datadog SDK가 `env`, `service`, `version`를 로그에 자동으로 주입하기 때문에 그러한 필드에 대한 다른 곳의 수동 구성이 제거됩니다. [1]: /ko/tracing/other_telemetry/connect_logs_and_traces/ {{% /tab %}} - {{% tab "RUM & 세션 리플레이" %}} + {{% tab "RUM 및 세션 리플레이" %}} - [연결된 RUM 및 트레이스][1]를 사용하는 경우, `service` 필드에서 브라우저 애플리케이션을 지정하고 `env` 필드에서 환경을 정의하세요. 그리고 초기화 파일의 `version` 필드에서 버전 목록을 작성하면 됩니다. + [연결된 RUM 및 트레이스][1]를 사용하는 경우, `service` 필드에서 브라우저 애플리케이션을 지정하고 `env` 필드에서 환경을 정의하고 초기화 파일의 `version` 필드에 버전을 나열하세요. - [RUM 애플리케이션을 생성][2]할 때는 `env` 및 `service` 이름을 확정하세요. + [RUM 애플리케이션을 생성][2]할 때 `env` 및 `service` 이름을 확인하세요. -[1]: /ko/real_user_monitoring/connect_rum_and_traces/ -[2]: /ko/real_user_monitoring/browser/#setup +[1]: /ko/real_user_monitoring/correlate_with_other_telemetry/apm/ +[2]: /ko/real_user_monitoring/application_monitoring/browser/setup/ {{% /tab %}} - {{% tab "신서틱" %}} + {{% tab "Synthetics" %}} - [연결된 신서틱 브라우저 테스트와 트레이스][1]를 사용 중이라면 [통합 설정 페이지][2]의 **APM Integration for Browser Tests** 섹션에서 헤더 발송 URL을 지정하세요. + [연결된 Synthetic 브라우저 테스트 및 트레이스][1]를 사용하는 경우, 헤더를 보낼 대상 URL을 [통합 설정 페이지][2]의 **브라우저 테스트용 APM 통합** 섹션 아래로 지정하세요. -와일드카드로 `*`를 사용하실 수 있습니다(예: `https://*.datadoghq.com`). + 와일드카드로 `*`을 사용할 수 있습니다(예: `https://*.datadoghq.com`). [1]: /ko/synthetics/apm/ [2]: https://app.datadoghq.com/synthetics/settings/integrations {{% /tab %}} - {{% tab "커스텀 메트릭" %}} + {{% tab "Custom Metrics" %}} - 태그는 [커스텀 StatsD 메트릭][1]에 변경이 불가능하고 덧붙이기만 가능한(Append-only) 방식으로 추가됩니다. 예를 들어, `env`에 서로 다른 값 두 개가 있는 경우 메트릭은 두 환경 모두에서 태깅됩니다. 한 태그가 같은 이름의 다른 태그를 덮어쓸 수는 없습니다. + [사용자 지정 StatsD 메트릭][1]에는 태그가 추가 전용 방식으로 추가됩니다. 예를 들어 `env`에 서로 다른 값이 두 개 있는 경우, 해당 메트릭은 두 환경 모두로 태그됩니다. 한 태그가 이름이 같은 다른 태그를 재정의하는 순서는 없습니다. -서비스가 `DD_ENV`, `DD_SERVICE`, `DD_VERSION`에 액세스할 수 있는 경우 DogStatsD 클라이언트는 지원 태그를 커스텀 메트릭에 자동으로 추가합니다. + 서비스에 `DD_ENV`, `DD_SERVICE`, `DD_VERSION`에 대한 액세스 권한이 있으면 DogStatsD 클라이언트가 해당하는 태그를 자동으로 사용자 지정 메트릭에 추가합니다. - **참조**: .NET 및 PHP용 DatadogDogStatsD 클라이언트는 이 기능을 지원하지 않습니다. + **참고**: .NET 및 PHP용 Datadog DogStatsD 클라이언트는 이 기능을 지원하지 않습니다. [1]: /ko/metrics/ {{% /tab %}} {{% tab "시스템 메트릭" %}} -인프라스트럭처 메트릭에는 `env` 태그와 `service` 태그를 추가할 수 있습니다. 컨테이너화되지 않은 컨텍스트에서 서비스 메트릭의 태깅은 에이전트 수준에서 설정됩니다. + 인프라 메트릭에 `env` 및 `service` 태그를 추가할 수 있습니다. 컨테이너화되지 않은 상황에서는 서비스 메트릭 태깅이 Agent 수준에서 구성됩니다. -이 설정은 서비스 프로세스를 시작할 때마다 변경되지 않습니다. 따라서 `version` 추가를 권장하지 않습니다. + 이 구성은 서비스의 프로세스를 호출할 때마다 변경되지 않으므로, `version`을 추가하지 않는 것이 좋습니다. -#### 호스트별 싱글 서비스 +#### 호스트당 단일 서비스 {#single-service-per-host} -에이전트 [주요 설정 파일][1]에 다음과 같은 설정을 적용합니다. +Agent의 [메인 구성 파일][1]에서 다음 구성 설정: ```yaml env: @@ -371,17 +467,17 @@ tags: - service: ``` -이렇게 설정하면 에이전트에서 전송하는 모든 데이터에 `env` 및 `service` 태깅의 일관성이 보장됩니다. +이렇게 설정하면 Agent에서 발생한 모든 데이터에 `env` 및 `service`의 일관된 태깅을 보장합니다. -#### 호스트별 멀티 서비스 +#### 호스트당 복수 서비스 {#multiple-services-per-host} -에이전트 [주요 설정 파일][1]에 다음과 같은 설정을 적용합니다. +Agent의 [메인 구성 파일][1]에서 다음 구성 설정: ```yaml env: ``` -CPU, 메모리, 디스크 I/O 메트릭의 고유 `service` 태그를 프로세스 수준으로 가져오려면 에이전트 설정 폴더에서(예: `process.d/conf.yaml` 아래의 `conf.d` 폴더) [프로세스 점검][2]을 구성합니다. +프로세스 수준에서 CPU, 메모리 및 디스크 I/O 메트릭에 고유한 `service` 태그를 얻으려면 Agent의 구성 폴더에 [프로세스 검사][2]를 구성하세요(예를 들어 `process.d/conf.yaml` 아래 `conf.d` 폴더에). ```yaml init_config: @@ -396,17 +492,86 @@ instances: service: nginx-web-app ``` -**참조**: 에이전트 주요 설정 파일에서 이미 `service` 태그를 글로벌한 범위로 설정한 경우, 프로세스 메트릭이 두 가지 서비스에 태깅됩니다. 이로 인해 메트릭의 해석에 차이가 발생할 수 있으므로 `service` 태그는 프로세스 점검 설정만으로 구성하는 것이 좋습니다. +**참고**: Agent의 메인 구성 파일에 이미 `service` 태그 세트가 전역으로 설정된 경우, 프로세스 메트릭이 두 개의 서비스로 태그됩니다. 이렇게 하면 메트릭을 해석할 때 혼동될 수 있기 때문에, `service` 태그는 프로세스 검사의 구성에서만 구성하는 것이 좋습니다. [1]: /ko/agent/configuration/agent-configuration-files [2]: /ko/integrations/process {{% /tab %}} {{< /tabs >}} -### 서버리스 환경 +### Serverless 환경 {#serverless-environment} + +AWS Lambda 함수에 대한 자세한 정보는 [태그를 사용하여 Lambda 텔레메트리를 연결하는 방법][15]을 참조하세요. + +### OpenTelemetry {#opentelemetry} + +OpenTelemetry를 사용할 때는 다음 [리소스 속성][16]을 해당하는 Datadog 규약에 매핑합니다. + +| OpenTelemetry 규약 | Datadog 규약 | +| --- | --- | +| `deployment.environment` 1 | `env` | +| `deployment.environment.name` 2 | `env` | +| `service.name` | `service` | +| `service.version` | `version` | + +1: `deployment.environment`는 [OpenTelemetry 시맨틱 규약 v1.27.0][17]에서 사용이 중단되었고 대신 `deployment.environment.name`이 사용됩니다. +2: `deployment.environment.name`은 Datadog Agent 7.58.0+ 및 Datadog Exporter v0.110.0+에서 지원됩니다. + +
    다음과 같은 Datadog 전용 환경 변수 DD_SERVICE, DD_ENV 또는 DD_VERSION 은 OpenTelemetry 구성에서 바로 지원되지 않습니다.
    + +{{< tabs >}} +{{% tab "환경 변수" %}} + +환경 변수를 사용하여 리소스 속성을 설정하려면 `OTEL_RESOURCE_ATTRIBUTES`를 적절한 값으로 설정하세요. + +```shell +export OTEL_RESOURCE_ATTRIBUTES="service.name=my-service,deployment.environment=production,service.version=1.2.3" +``` + +{{% /tab %}} + +{{% tab "SDK" %}} + +애플리케이션의 리소스 속성을 설정하려면 원하는 속성을 포함한 `Resource`를 생성한 다음 이를 `TracerProvider`에 연결합니다. + +Python을 사용하는 경우의 예시: + +```python +from opentelemetry.sdk.resources import Resource +from opentelemetry.sdk.trace import TracerProvider + +resource = Resource(attributes={ + "service.name": "", + "deployment.environment": "", + "service.version": "" +}) +tracer_provider = TracerProvider(resource=resource) +``` + +{{% /tab %}} + +{{% tab "Collector" %}} + +OpenTelemetry Collector에서 리소스 속성을 설정하려면 Collector 구성 파일의 [변환 프로세서][100]를 사용하세요. 변환 프로세서를 사용하면 수집한 텔레메트리 데이터를 Datadog 익스포터로 보내기 전에 데이터의 속성을 수정할 수 있습니다. + +```yaml +processors: + transform: + trace_statements: + - context: resource + statements: + - set(attributes["service.name"], "my-service") + - set(attributes["deployment.environment"], "production") + - set(attributes["service.version"], "1.2.3") +... +``` + +[100]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor + +{{% /tab %}} +{{< /tabs >}} -AWS Lambda 기능을 더 자세히 알아보고 싶으신 분은 [태그를 사용해 Lambda 텔레메트리를 연결하는 법]]15]을 참고하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -419,9 +584,11 @@ AWS Lambda 기능을 더 자세히 알아보고 싶으신 분은 [태그를 사 [7]: /ko/agent/docker/?tab=standard#optional-collection-agents [8]: /ko/getting_started/tracing/ [9]: /ko/getting_started/logs/ -[10]: /ko/real_user_monitoring/connect_rum_and_traces/ +[10]: /ko/real_user_monitoring/correlate_with_other_telemetry/apm/ [11]: /ko/getting_started/synthetics/ [12]: /ko/integrations/statsd/ [13]: https://www.chef.io/ [14]: https://www.ansible.com/ -[15]: /ko/serverless/configuration/#connect-telemetry-using-tags \ No newline at end of file +[15]: /ko/serverless/configuration/#connect-telemetry-using-tags +[16]: https://opentelemetry.io/docs/languages/js/resources/ +[17]: https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.27.0 \ No newline at end of file diff --git a/content/ko/glossary/_index.md b/content/ko/glossary/_index.md index f6d1f25e60e..8d74d9d822f 100644 --- a/content/ko/glossary/_index.md +++ b/content/ko/glossary/_index.md @@ -3,13 +3,12 @@ aliases: - /ko/glossary/terms/wall_time/ cascade: disable_toc: true -filter_all: 전체 +filter_all: All scrollspy: offset: 5 target: '#glossary-nav' title: 용어 --- - {{< jqmath-vanilla >}} -
    용어집에 오신 것을 환영합니다! 용어집 구축 작업이 현재 진행 중이며, 시간이 걸리더라도 완전한 용어집을 구축하기 위해 적극적으로 노력하고 있습니다. 본 용어집 적용법에 대한 의견이 있거나 정의하고 싶은 용어가 있으면 피드백을 클릭하여 알려주세요.
    \ No newline at end of file +
    Datadog 용어집에 오신 것을 환영합니다! 이 용어집은 작성 중이며, 완전한 용어 목록을 구축하는 중이지만 완성하려면 시간이 걸립니다. 이 용어집의 작동 방식에 관한 피드백을 제공하고자 하거나 정의를 확인하고자 하는 용어가 있으면 피드백를 클릭해 알려주세요.
    \ No newline at end of file diff --git a/content/ko/infrastructure/_index.md b/content/ko/infrastructure/_index.md index 6be23b862e0..8afe4294801 100644 --- a/content/ko/infrastructure/_index.md +++ b/content/ko/infrastructure/_index.md @@ -15,34 +15,36 @@ cascade: further_reading: - link: https://app.datadoghq.com/release-notes?category=Infrastructure%20Monitoring tag: 릴리스 노트 - text: 최신 Datadog 인프라스트럭처 모니터링 릴리스를 확인하세요! (앱 로그인 필요). + text: 최신 Datadog Infrastructure Monitoring 릴리스를 확인하세요! (앱에 로그인해야 함). - link: https://dtdg.co/fe - tag: 기본 구축 + tag: 기반 활성화 text: 대화형 세션에 참여하여 인프라스트럭처 모니터링 강화 -title: 인프라스트럭처 +- link: https://learn.datadoghq.com/courses/getting-started-infra-cnm + tag: 학습 센터 + text: Infrastructure 및 Cloud Network Monitoring(CNM) 시작하기 +title: Infrastructure --- - -{{< learning-center-callout header="활성화 웨비나 세션 참가하기" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Infrastructure+Monitoring">}} - 기본 활성화 세션을 알아보고 등록하세요. Datadog의 SaaS 기반 인프라스트럭처 모니터링을 사용하면 메트릭, 시각화, 알림 기능을 이용해 엔지니어 팀이 클라우드나 하이브리드 환경을 최적화하고 최적화된 상태를 유지할 수 있습니다. +{{< learning-center-callout header="활성화 웨비나 세션에 참가하기" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Infrastructure+Monitoring">}} + 기반 활성화 세션을 탐색하고 등록하세요. Datadog의 SaaS 기반 Infrastructure Monitoring이 메트릭, 시각화, 경보를 제공하여 엔지니어링 팀이 클라우드 또는 하이브리드 환경을 유지 관리하고 최적화하는 데 어떤 도움이 되는지 알아보세요. {{< /learning-center-callout >}} -## 개요 +## 개요 {#overview} -{{< img src="infrastructure/Hostmap-compressed.mp4" alt="Nginx 호스트로 필터링된 호스트 맵 비디오" video="true">}} +{{< img src="infrastructure/Hostmap-compressed.mp4" alt="Nginx 호스트로 필터링되는 호스트 맵에 대한 비디오" video="true">}} -인프라스트럭처 모니터링에는 호스트, 컨테이너 및 프로세스의 성능을 시각화, 모니터링 및 측정하는 핵심 Datadog 기능이 포함되어 있습니다. +Infrastructure Monitoring에는 호스트, 컨테이너 및 프로세스의 성능을 시각화, 모니터링 및 측정하는 핵심 Datadog 기능이 포함되어 있습니다. -## 구성 요소 +## 구성 요소 {#components} -{{< whatsnext desc="이 섹션에는 다음 항목이 포함됩니다.">}} - {{< nextlink href="/infrastructure/list" >}}인프라스트럭처 리스트 - Datadog이 모니터링하는 모든 호스트 목록을 확인하세요.{{< /nextlink >}} - {{< nextlink href="/infrastructure/hostmap" >}}호스트 및 컨테이너 맵 - 색상과 모양으로 이해하기 쉬운 사용자 지정 그룹, 필터 및 메트릭을 통해 호스트를 한 화면에서 함께 시각화하세요.{{< /nextlink >}} - {{< nextlink href="/infrastructure/containers" >}}컨테이너 보기 - 실시간 가시성을 통해 환경 전체의 컨테이너를 모니터링하세요.{{< /nextlink >}} - {{< nextlink href="/infrastructure/process" >}}프로세스 보기 - 배포에서 가장 세부적인 요소를 실시간으로 확인하여 프로세스를 모니터링하세요.{{< /nextlink >}} +{{< whatsnext desc="이 섹션에는 다음 주제가 포함되어 있습니다.">}} + {{< nextlink href="/infrastructure/list" >}}인프라스트럭처 목록 - Datadog이 모니터링하는 모든 호스트 목록을 봅니다.{{< /nextlink >}} + {{< nextlink href="/infrastructure/hostmap" >}}호스트 및 컨테이너 맵 - 사용자 지정 그룹화, 필터링, 색상 및 형태로 이해하기 쉽게 표시한 메트릭을 사용해 호스트를 한 화면에 시각화합니다.{{< /nextlink >}} + {{< nextlink href="/infrastructure/containers" >}}컨테이너 조회 - 환경 전체의 컨테이너를 실시간 가시성으로 모니터링합니다.{{< /nextlink >}} + {{< nextlink href="/infrastructure/process" >}}프로세스 조회 - 배포에서 가장 세분화된 요소에 대한 실시간 가시성을 확보하여 프로세스를 모니터링합니다.{{< /nextlink >}} {{< /whatsnext >}} -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/ko/logs/explorer/search_syntax.md b/content/ko/logs/explorer/search_syntax.md index d85f82f7309..318eb03a859 100644 --- a/content/ko/logs/explorer/search_syntax.md +++ b/content/ko/logs/explorer/search_syntax.md @@ -2,8 +2,11 @@ aliases: - /ko/logs/search-syntax - /ko/logs/search_syntax/ -description: 모든 로그를 검색하세요. +description: 로그 전체를 검색합니다. further_reading: +- link: /getting_started/search/ + tag: 설명서 + text: Datadog에서 검색 시작하기 - link: /logs/explorer/#visualize tag: 설명서 text: 로그를 시각화하는 방법 알아보기 @@ -12,131 +15,141 @@ further_reading: text: 로그 내 패턴 감지 - link: /logs/log_configuration/processors tag: 설명서 - text: 로그 처리하는 방법 배우기 + text: 로그 처리 방법 알아보기 - link: /logs/explorer/saved_views/ tag: 설명서 - text: 저장된 보기에 대해 알아보기 -- link: /logs/explorer/calculated_fields/expression_language + text: Saved Views에 대해 알아보기 +- link: /logs/explorer/calculated_fields/formulas tag: 설명서 - text: 계산된 필드 표현식 언어 알아보기 -title: 검색 구문 로그 + text: 계산된 필드 수식에 대해 자세히 알아보기 +- link: https://learn.datadoghq.com/courses/log-explorer + tag: 학습 센터 + text: Log Explorer 시작하기 +title: 로그 검색 구문 --- +## 개요 {#overview} -## 개요 - -쿼리 필터는 용어와 연산자로 구성되어 있습니다. +쿼리 필터는 용어와 연산자로 구성됩니다. 용어에는 다음과 같은 두 가지 유형이 있습니다. -* **단일 용어**는 `test` 또는 `hello` 과 같은 하나의 단어입니다. +* **단일 용어**는 `test` 또는 `hello`와 같은 한 단어입니다. -* **시퀀스**는 `"hello dolly"`와 같이 큰 따옴표로 묶인 단어의 그룹입니다. +* **시퀀스**는 `"hello dolly"`와 같이 큰따옴표로 묶인 단어의 그룹입니다. -복잡한 쿼리로 여러 용어를 결합하려면, 대소문자를 구분해 다음 부울 연산자를 사용할 수 있습니다. +여러 용어를 복잡한 쿼리로 결합하려면, 대소문자를 구분하는 다음 부울 연산자를 사용할 수 있습니다. | | | | |--------------|--------------------------------------------------------------------------------------------------------|------------------------------| | **연산자** | **설명** | **예시** | -| `AND` | **Intersection**: 모든 용어가 선택한 이벤트에 존재합니다(추가된 것이 없으면 AND가 기본적으로 적용됨). | 인증 AND 실패 | -| `OR` | **Union** 용어 중 하나가 선택한 이벤트에 포함되어 있습니다. | 인증 OR 비밀번호 | -| `-` | **예외**: 다음 용어가 이벤트에 존재하지 않습니다(개별 원본 텍스트 검색에 적용됨). | 인증 AND -비밀번호 | +| `AND` | **교집합**: 두 용어가 모두 선택한 이벤트에 있음(아무것도 추가하지 않으면 기본적으로 AND가 적용됨) | authentication AND failure | +| `OR` | **합집합**: 두 용어 중 하나가 선택한 이벤트에 포함됨 | authentication OR password | +| `-` | **제외**: 다음 용어가 이벤트에 없음(각각의 개별 원시 텍스트 검색에 적용) | authentication AND -password | -## 전문 검색 +## 전체 텍스트 검색 {#full-text-search} -
    전체 텍스트 검색 기능은 로그 관리에서만 사용할 수 있으며 모니터, 대시보드, 노트북 쿼리에서 작동합니다. 전체 텍스트 검색 구문은 인덱스 필터, 아카이브 필터, 로그 파이프라인 필터, 재수화 필터를 정의하는 데 사용할 수 없으며 라이브 테일에서도 사용할 수 없습니다.
    +
    전체 텍스트 검색 기능은 Log Management에서만 사용할 수 있으며 모니터, 대시보드, 노트북 쿼리에서 작동합니다. 전체 텍스트 검색 구문은 인덱스 필터, 아카이브 필터, 로그 파이프라인 필터, 리하이드레이션 필터를 정의하는 데 또는 Live Tail에서는 사용할 수 없습니다.
    -`*:search_term` 구문을 사용하여 로그 메시지를 포함하는 모든 로그 속성에서 전체 텍스트 검색을 실행할 수 있습니다. +모든 로그 속성(로그 메시지 포함)에서 전체 텍스트 검색을 수행하려면 구문 `*:search_term`을 사용하세요. -### 단일 검색어 예시 +### 단일 용어 예시 {#single-term-example} | 검색 구문 | 검색 유형 | 설명 | | ------------- | ----------- | --------------------------------------------------------- | -| `*:hello` | 전체 텍스트 | 모든 로그 속성에서 정확히 `hello` 문자열을 검색합니다. | -| `hello` | 무료 텍스트 | 로그 메시지에서 정확히 `hello` 문자열만 검색합니다. | +| `*:hello` | 전체 텍스트 | 모든 로그 속성에서 정확한 문자열 `hello`를 검색합니다. | +| `hello` | 자유 텍스트 | `message`, `@title`, `@error.message`, `@error.stack` 속성에서만 정확한 문자열 `hello`를 검색합니다. | -### 와일드카드를 사용한 검색어 예시 +### 와일드카드를 사용한 검색어 예시 {#search-term-with-wildcard-example} | 검색 구문 | 검색 유형 | 설명 | | ------------- | ----------- | ------------------------------------------------------------------------------------------- | -| `*:hello` | 전체 텍스트 | 모든 로그 속성에서 정확히 `hello` 문자열을 검색합니다. | -| `*:hello*` | 전체 텍스트 | 전체 로그 속성에서 `hello`로 시작하는 문자열을 검색합니다. 예를 들어 `hello_world`가 있을 수 있습니다. | +| `*:hello` | 전체 텍스트 | 모든 로그 속성에서 정확한 문자열 `hello`를 검색합니다. | +| `*:hello*` | 전체 텍스트 | 전체 로그 속성에서 `hello`로 시작하는 문자열을 검색합니다. 예를 들어 `hello_world`입니다. | -### 정확히 일치하는 여러 검색어 예시 +### 정확히 일치하는 여러 검색어 예시 {#multiple-terms-with-exact-match-example} | 검색 구문 | 검색 유형 | 설명 | | ------------------- | ----------- |--------------------------------------------------------------------------------------------------- | -| `*:"hello world"` | 전체 텍스트 | 모든 로그 속성에서 정확히 `hello world` 문자열을 검색합니다. | -| `hello world` | 프리 텍스트 | 로그 메시지에서만 `hello` 및 `world` 단어를 검색합니다. 예로 `hello beautiful world`가 있습니다. | +| `*:"hello world"` | 전체 텍스트 | 모든 로그 속성에서 정확한 문자열 `hello world`를 검색합니다. | +| `hello world` | 자유 텍스트 | 로그 메시지에서만 `hello` 및 `world` 단어를 검색합니다. 예를 들어 `hello beautiful world`입니다. | -## 특수 문자 및 공백 이스케이프 +## 특수 문자 및 공백 이스케이프 {#escape-special-characters-and-spaces} -다음 특수 문자가 사용됩니다. `+` `-` `=` `&&` `||` `>` `<` `!` `(` `)` `{` `}` `[` `]` `^` `"` `“` `”` `~` `*` `?` `:` `\` `#` 공백은 `\` 문자로 이스케이프 처리해야 합니다. -- `/`는 특수 문자로 간주되지 않으므로 이스케이프 처리할 필요가 없습니다. -- `@`는 Log Explorer 내에 검색 쿼리로 사용할 수 없습니다. [Attribute Search](#attributes-search)에 예약되어 있기 때문입니다. +다음 문자는 특수 문자로 간주되며 `\` 문자로 이스케이프해야 함: `=` `-` `!` `&&` `||` `>` `>=` `<` `<=` `(` `)` `{` `}` `[` `]` `"` `*` `?` `:` `\` `#` 및 공백. +- `/` 는 특수 문자로 간주되지 않으며 이스케이프할 필요가 있습니다. +- `@` 는 [Attribute Search](#attributes-search)에 예약되어 있기 때문에 Log Explorer 내에서 검색 쿼리에 사용할 수 없습니다. -로그 메시지에서는 특수 문자를 검색할 수 없습니다. 특수 문자가 속성 내에 있는 경우에만 검색할 수 있습니다. +로그 메시지에서 특수 문자를 검색할 수 없습니다. 특수 문자가 속성 내에 있는 경우 해당 문자를 검색할 수 있습니다. 특수 문자를 검색하려면, [Grok 파서][1]가 포함된 속성으로 파싱한 다음 해당 속성을 포함하는 로그를 검색합니다. +## 속성 검색 {#attributes-search} -## 속성 검색 +특정 속성에 대해 검색하려면 `@`를 추가하여 속성에 대해 검색 중임을 명시합니다. -특정 속성의 검색 에 `@`를 추가하여 검색 중인 속성을 지정합니다. - -예를 들어, 속성 이름이 **URL**이고 **URL** 값을 필터링하려면 `www.datadoghq.com` 을 입력합니다: +예를 들어 속성 이름이 **url**이고 **url** 값 `www.datadoghq.com`에 대해 필터링하고자 하는 경우, 다음을 입력합니다. ``` @url:www.datadoghq.com ``` +### 예약된 속성 {#reserved-attributes} + +`host`, `source`, `status`, `service`, `trace_id`, `message`와 같은 [예약된 속성][8]에는 `@` 접두사가 필요하지 않습니다. 이러한 속성은 직접 검색할 수 있습니다. + +``` +service:web-app +status:error +host:i-1234567890abcdef0 +``` **참고**: -1. 속성의 검색 및 태그 에 패싯을 정의할 필요는 **없습니다**. +1. 속성 및 태그에 대해 검색하기 위해 패싯을 정의할 필요가 **없습니다**. -2. 속성 검색은 대소문자를 구분합니다. 대소문자를 구분하지 않는 결과를 얻으려면 [전체 텍스트 검색](#전체 텍스트-검색)를 사용하세요. 또 다른 옵션은 대소문자를 구분하지 않는 결과를 얻으려면 `lowercase` 필터를 Grok 파서와 함께 사용하고 파싱 동안 대소문자를 구분하지 않는 결과를 얻으려면 검색 을 사용하는 것입니다. +2. 속성 검색은 대소문자를 구분합니다. 대소문자를 구분하지 않는 결과를 얻으려면 [전체 텍스트 검색](#full-text-search)을 사용하세요. 또 한 가지 옵션은 구문 분석 중에 Grok 파서와 함께 `lowercase` 필터를 사용하여 검색 중에 대소문자를 구분하지 않는 결과를 얻는 것입니다. -3. 특수 문자가 포함된 속성 값을 검색하려면 이스케이프 또는 큰따옴표를 사용해야 합니다. - - 예를 들어 값이 `hello:world` 값을 포함하는 `my_attribute` 속성의 경우 `@my_attribute:hello\:world` 또는 `@my_attribute:"hello:world"`를 사용하여 검색합니다. - - 단일 특수 문자나 공백을 찾으려면 `?` 와일드카드를 사용합니다. 예를 들어 `hello world` 값이 포함된 `my_attribute` 속성의 경우 `@my_attribute:hello?world`를 사용해 검색합니다. +3. 특수 문자를 포함하는 속성 값을 검색하려면 이스케이프 처리 또는 큰따옴표가 필요합니다. + - 예를 들어 `hello:world` 값을 포함하는 `my_attribute` 속성의 경우, `@my_attribute:hello\:world` 또는 `@my_attribute:"hello:world"`를 사용하여 검색하세요. + - 단일 특수 문자 또는 공백과 일치하려면 `?` 와일드카드를 사용합니다. 예를 들어 `hello world` 값을 포함하는 `my_attribute` 속성의 경우, `@my_attribute:hello?world`를 사용하여 검색하세요. 예: | 검색 쿼리 | 설명 | |----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `@http.url_details.path:"/api/v1/test"` | `http.url_details.path` 속성에서 `/api/v1/test`와 일치하는 모든 로그를 검색합니다. | -| `@http.url:/api\-v1/*` | `/api-v1/`로 시작하는 `http.url` 속성의 값을 포함하는 모든 로그를 검색합니다. | -| `@http.status_code:[200 TO 299] @http.url_details.path:/api\-v1/*` | `http.status_code` 값이 200에서 299 사이이고 `/api-v1/`로 시작하는 `http.url_details.path` 속성 값을 포함하는 모든 로그를 검색합니다. | -| `-@http.status_code:*` | `http.status_code` 속성이 포함되지 않은 모든 로그 검색 | +| `@http.url_details.path:"/api/v1/test"` | 속성 `http.url_details.path`의 `/api/v1/test`와 일치하는 모든 로그를 검색합니다. | +| `@http.url:/api\-v1/*` | `/api-v1/` |로 시작하는 `http.url` 속성의 값을 포함하는 모든 로그를 검색합니다. +| `@http.status_code:[200 TO 299] @http.url_details.path:/api\-v1/*` | 200~299 사이의 `http.status_code` 값을 포함하고, `/api-v1/` |로 시작하는 `http.url_details.path` 속성의 값을 포함하는 모든 로그를 검색합니다. +| `-@http.status_code:*` | `http.status_code` 속성을 포함하지 않는 모든 로그 검색 | -### 검색 CIDR 표기법 사용 -클래스 없는 도메인 간 라우팅(CIDR)은 사용자가 다양한 IP 주소(CIDR 블록으로도 명명)를 간결하게 정의할 수 있는 표기법입니다. CIDR은 네트워크 (예: VPC) 또는 서브네트워크(예: VPC 내의 공용/비공용 서브넷)를 정의하는 데 가장 일반적으로 사용됩니다. +### CIDR 표기법을 사용하여 검색 {#search-using-cidr-notation} +Classless Inter Domain Routing(CIDR)은 사용자가 IP 주소 범위(CIDR 블록이라고도 함)를 간결하게 정의할 수 있게 해 주는 표기법입니다. CIDR은 네트워크(예를 들어 VPC) 또는 서브 네트워크(예를 들어 VPC 내 퍼블릭/프라이빗 서브넷)를 정의하는 데 가장 일반적으로 사용됩니다. -사용자는 CIDR 표기법을 통해 로그에서 속성을 쿼리하는 데 `CIDR()` 함수를 사용할 수 있습니다. `CIDR()` 함수는 로그을 필터링할 파라미터로 로그 속성에 전달되어야 하며 이후 하나 이상의 CIDR 블록을 사용해야 합니다. +사용자는 CIDR 표기법을 사용해 `CIDR()` 함수를 사용하여 로그의 속성을 쿼리할 수 있습니다. `CIDR()` 함수에는 필터링할 로그 속성을 파라미터로 전달해야 하며, 그 뒤에 하나 이상의 CIDR 블록이 따라와야 합니다. -#### 예시 -- `CIDR(@network.client.ip,13.0.0.0/8)`은 13.0.0.0/8 CIDR 블록에 속하는 `network.client.ip` 필드의 IP 주소를 포함하는 로그를 검색하고 필터링합니다. -- `CIDR(@network.ip.list,13.0.0.0/8, 15.0.0.0/8)`은 배열 속성 `network.ip.list`에 13.0.0.0/8 또는 15.0.0.0/8 CIDR 블록에 속하는 IP 주소가 있는 로그를 검색하고 필터링합니다. -- `source:pan.firewall evt.name:reject CIDR(@network.client.ip, 13.0.0.0/8)`은 출발지가 13.0.0.0/8 서브넷인 팔로 알토 방화벽의 거부 이벤트를 검색하고 필터링합니다. +#### 예시 {#examples} +- `CIDR(@network.client.ip,13.0.0.0/8)`은 13.0.0.0/8 CIDR 블록에 속하는 필드 `network.client.ip`에 IP 주소가 있는 로그를 검색하고 필터링합니다. +- `CIDR(@network.ip.list,13.0.0.0/8, 15.0.0.0/8)` 13.0.0.0/8 또는 15.0.0.0/8 CIDR 블록에 속하는 배열 속성 `network.ip.list`에 IP 주소가 있는 로그를 매칭 및 필터링합니다. +- `source:pan.firewall evt.name:reject CIDR(@network.client.ip, 13.0.0.0/8)` 은 13.0.0.0/8 서브넷에서 발생하는 palo alto 방화벽의 거부 이벤트를 매칭하고 필터링함 - `source:vpc NOT(CIDR(@network.client.ip, 13.0.0.0/8)) CIDR(@network.destination.ip, 15.0.0.0/8)`은 출발지 서브넷이 13.0.0.0/8이 아니며 목적지 서브넷이 15.0.0.0/8로 지정된 모든 VPC 로그를 표시합니다. 이는 서브넷 간 환경의 네트워크 트래픽을 분석하는 데 사용할 수 있습니다. -`CIDR()` 함수는 IPv4 및 IPv6 CIDR 표기법을 모두 지원하며 대시보드, 로그 모니터 및 로그 설정의 로그 탐색기, 라이브 테일, 로그 위젯에서 작동합니다. +`CIDR()` 함수는 IPv4 및 IPv6 CIDR 표기법을 둘 다 지원하며 Log Explorer, Live Tail, 대시보드의 로그 위젯, 로그 모니터, 로그 구성에서 작동합니다. -## 와일드카드 +## Wildcard {#wildcards} -와일드카드를 프리 텍스트 검색과 함께 사용할 수 있습니다. 그러나 로그 탐색기의 `content` 열에 있는 텍스트인 로그 메시지에 있는 용어만 검색합니다. 로그 속성에서 값을 검색하려면 [전체 텍스트 검색](#full-text-search)을 참조하세요. +자유 텍스트 검색에 와일드카드를 사용할 수 있습니다. 하지만 이렇게 하면 로그 메시지의 용어, Log Explorer의 `content` 열에 있는 텍스트만 검색합니다. 로그 속성에서 값을 검색하려면 [전체 텍스트 검색](#full-text-search)을 참조하세요. -### 멀티 문자 와일드카드 +### 복수 문자 와일드카드 {#multi-character-wildcard} -로그 메시지(로그 탐색기의 `content` 열)에서 복수 문자에 대한 와일드카드 검색을 수행하려면 다음과 같이 `*` 기호를 사용합니다. +로그 메시지에서 복수 문자 와일드카드 검색을 수행하려면(Log Explorer의 `content` 열), 다음과 같이 `*` 기호를 사용하세요. -* `service:web*`은 `web`으로 시작하는 서비스가 포함된 모든 로그 메시지를 찾습니다. -* `web*`은 `web`으로 시작되는 모든 로그 메시지를 찾습니다. -* `*web`은 `web`으로 끝나는 모든 로그 메시지를 찾습니다. +* `service:web*`은 `web`로 시작하는 서비스가 있는 모든 로그 메시지를 매칭합니다. +* `web*` `web`으로 시작하는 모든 로그 메시지를 매칭합니다. +* `*web` `web`으로 끝나는 모든 로그 메시지를 매칭합니다. -**참고**: 와일드카드는 큰따옴표 밖에서만 와일드카드로 작동합니다. 예를 들어 `"*test*"`는 메시지에 `*test*` 문자열이 있는 로그를 찾습니다. `*test*` 는 메시지 내에서 그 위치와 관계없이 test 문자열이 있는 로그를 찾습니다. +**참고**: 와일드카드는 큰따옴표 밖에서만 와일드카드로 작동합니다. 예를 들어 `"*test*"`는 메시지에 문자열 `*test*`가 있는 로그를 매칭합니다. `*test*`는 메시지 안 어느 곳에든 문자열 테스트가 있는 로그를 매칭합니다. -와일드카드 검색은 이 구문을 포함하는 태그 및 속성(패싯 처리/처리 안 됨) 내에서 작동합니다. 이 쿼리는 `mongo` 문자열로 끝나는 모든 서비스를 반환합니다. +와일드카드 검색은 이 구문이 있는 태그 및 속성 안에서 작동합니다(패싯 여부와 관계없음). 이 쿼리는 문자열 `mongo`로 끝나는 모든 서비스를 반환합니다.

    @@ -144,73 +157,86 @@ title: 검색 구문 로그 service:*mongo ``` -와일드카드는 로그 속성의 일부가 아닌 로그의 일반 텍스트를 검색하는 데에도 사용할 수 있습니다. 예를 들어 이 쿼리는 `NETWORK` 문자열을 포함하는 콘텐츠(메시지)가 있는 모든 로그를 반환합니다. +와일드카드 검색은 로그 속성에 속하지 않는 로그의 일반 텍스트에서 검색하는 데도 사용할 수 있습니다. 예를 들어 이 쿼리는 문자열 `NETWORK`를 포함하는 콘텐츠(메시지)가 있는 모든 로그를 반환합니다. ``` *NETWORK* ``` -그러나 이 검색어는 로그 메시지의 일부가 아니거나 로그 속성에 포함되지 않은 경우 `NETWORK` 문자열을 포함하는 로그를 반환하지 않습니다. +그러나 이 검색어는 로그 속성에 포함되어 있고 로그 메시지의 일부가 아닌 경우 `NETWORK` 문자열을 포함하는 로그를 반환하지 않습니다. -### 와일드카드 검색 +### 와일드카드 검색 {#search-wildcard} -특수 문자를 포함하거나 이스케이핑 또는 따옴표를 필요로 하는 속성 또는 태그 값을 검색하는 경우, `?` 와일드카드를 사용해 단일 특수 문자나 공백을 찾습니다. 예를 들어 `hello world` 값이 포함된 `my_attribute` 속성을 검색하려면 `@my_attribute:hello?world`를 사용합니다. +특수 문자를 포함하거나 이스케이프 처리 또는 큰따옴표가 필요한 속성 또는 태그 값을 검색할 때는 `?` 와일드카드를 사용하여 단일 특수 문자 또는 공백과 매칭합니다. 예를 들어 값 `hello world`를 포함한 속성 `my_attribute`를 검색하려면: `@my_attribute:hello?world`.

    -## 숫자 값 +## 숫자값 {#numerical-values} -숫자 속성을 검색하려면 먼저 [패싯으로 추가][2]합니다. 그런 다음 숫자 연산자(`<`,`>`, `<=`, 또는 `>=`)를 사용하여 숫자 패싯을 검색합니다. -예를 들어 다음을 사용해 응답 시간이 100ms 이상인 로그 을 모두 검색합니다. +숫자 속성에 대해 검색하려면 우선 [해당 값을 패싯으로 추가][2]합니다. 그런 다음 숫자 연산자(`<`,`>`, `<=` 또는 `>=`)를 사용하여 숫자 패싯에 대해 검색을 수행할 수 있습니다. +예를 들어 응답 시간이 100ms를 초과하는 모든 로그를 검색하려면 다음 사용:

    ``` @http.response_time:>100 ``` -특정 범위 내의 숫자 속성을 검색할 수 있습니다. 예를 들어 다음을 사용하여 4xx 오류 모두를 검색합니다. +특정 범위 이내에서 숫자 속성을 검색할 수 있습니다. 예를 들어 4xx 오류를 모두 검색하려면 다음 사용: ``` @http.status_code:[400 TO 499] ``` -## 태그 +## 태그 {#tags} -로그는 [호스트][3] 및 [통합][4]에서 태그를 상속합니다. 검색에서 패싯으로도 사용할 수 있습니다. +로그는 로그를 생성하는 [호스트][3] 및 [통합][4]에서 태그를 상속합니다. 태그는 검색에서 사용할 수도 있고, 패싯으로도 사용할 수 있습니다. * `test`는 문자열 "test"를 검색합니다. -* `env:(prod OR test)`는 `env:prod` 태그 또는 `env:test` 태그를 포함하는 모든 로그와 일치합니다. -* `(env:prod AND -version:beta)`는 `env:prod` 태그를 포함하고 `version:beta` 태그를 포함하지 않는 모든 로그와 일치합니다. +* `env:(prod OR test)` 는 태그 `env:prod` 또는 태그 `env:test`를 포함한 모든 로그를 매칭함 +* `(env:prod AND -version:beta)`는 태그 `env:prod`를 포함하고 태그 `version:beta`를 포함하지 않는 모든 로그를 매칭함 -태그가 [태그 모범 사례][5]를 따르지 않고 `key:value` 구문을 사용하지 않는 경우 이 검색 쿼리를 사용하세요. +태그가 [태그 모범 사례][5]를 따르지 않고 `key:value` 구문을 사용하지 않는 경우, 이 검색 쿼리를 사용하세요. * `tags:` -## 배열 +## 배열 {#arrays} -아래 예제에서 패싯의 `Peter` 값을 클릭하면 `users.names` 속성이 포함된 로그가 모두 반환되며, 그 값은 `Peter` 또는 `Peter`가 포함된 배열입니다. +다음 예시에서 패싯의 `Peter` 값을 클릭하면 `users.names` 속성을 포함하는 모든 로그를 반환합니다. 이 속성의 값은 `Peter` 또는 `Peter`를 포함하는 배열입니다. {{< img src="logs/explorer/search/array_search.png" alt="배열 및 패싯" style="width:80%;">}} -**참고**: 검색은 동등한 구문을 통해 패싯이 아닌 배열 속성에서도 사용할 수 있습니다. +**참고**: 패싯이 적용되지 않은 배열 속성에 대해서도 동등한 구문을 사용해 검색할 수 있습니다. -다음 예시에서 윈도우즈(Windows)에 대한 클라우드와치(CloudWatch) 로그는 `@Event.EventData.Data` 아래에 JSON 객체 배열을 포함합니다. JSON 객체 배열에서는 패싯을 만들 수 없지만 다음 구문을 사용하여 검색할 수 있습니다. +다음 예시에서 Windows용 CloudWatch 로그에는 `@Event.EventData.Data` 아래에 JSON 개체의 배열이 포함됩니다. JSON 개체의 배열에서 패싯을 생성할 수는 없지만, 다음 구문을 사용해 검색할 수 있습니다. -* `@Event.EventData.Data.Name:ObjectServer`는 `Name` 키와 `ObjectServer` 값을 포함하는 모든 로그와 일치합니다. +* `@Event.EventData.Data.Name:ObjectServer` 는 키 `Name` 및 값 `ObjectServer`를 포함한 모든 로그를 매칭합니다. -{{< img src="logs/explorer/search/facetless_query_json_arrray2.png" alt="JSON 객체 배열에서 패싯리스 쿼리" style="width:80%;">}} -

    +{{< img src="logs/explorer/search/facetless_query_json_arrray2.png" alt="JSON 개체 배열의 패싯리스 쿼리" style="width:80%;">}} + +### 중첩된 배열 검색 {#nested-array-search} + +배열 속성에서 중첩된 필드를 검색하려면 전체 속성 경로를 포함한 `@` 접두사를 사용하세요. Log Explorer가 배열의 항목을 매칭함: + +* `@network.ip.attributes.ip:2a02\:1810*`은 `network.ip.attributes` 배열에서 하나 이상의 항목에 `2a02:1810`으로 시작하는 `ip` 필드가 있는 모든 로그를 매칭합니다. + +배열에 특정 값이 여러 개 포함된 로그를 매칭하려면, 값을 괄호 안에 넣어 나열: + +* `@user_perms:(4 6)`은 `user_perms` 배열이 `4` 및 `6`을 모두 포함하는 모든 로그를 매칭합니다. + +배열에 범위 내의 값을 포함하는 로그를 매칭하려면 범위 쿼리 사용: + +* `@user_perms:[2 TO 6]`은 `user_perms` 배열이 `2` 및 `6` 사이의 값을 하나 이상 포함하는 모든 로그를 매칭합니다. -## 계산된 필드 +## 계산된 필드 {#calculated-fields} -계산된 필드는 로그 속성과 같이 기능하며, 검색, 집계, 시각화 및 기타 계산된 필드 정의에 사용할 수 있습니다. `#` 접두사를 사용하여 계산된 필드 이름을 참조합니다. +계산된 필드는 로그 속성처럼 기능하며 검색, 집계, 시각화 및 다른 계산된 필드 정의에 사용할 수 있습니다. 계산된 필드 이름을 참조하려면 `#` 접두사를 사용하세요. -{{< img src="logs/explorer/calculated_fields/calculated_field.png" alt="로그 탐색기에서 결과 필터링에 사용되는 계산된 필드인 request_duration" style="width:100%;" >}} +{{< img src="logs/explorer/calculated_fields/calculated_field.png" alt="Log Explorer에서 결과를 필터링하는 데 사용된 request_duration이라는 계산된 필드" style="width:100%;" >}} -## 저장된 검색 +## 저장된 검색 {#saved-searches} -[저장된 보기][6]에는 검색 쿼리 , 열, 시간대 및 패싯이 포함됩니다. +[Saved Views][6]는 검색 쿼리, 열, 시간대, 패싯을 포함합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -220,4 +246,5 @@ service:*mongo [4]: /ko/integrations/#cat-log-collection [5]: /ko/getting_started/tagging/#tags-best-practices [6]: /ko/logs/explorer/saved_views/ -[7]: /ko/logs/explorer/facets/#facet-panel \ No newline at end of file +[7]: /ko/logs/explorer/facets/#facet-panel +[8]: /ko/logs/log_configuration/attributes_naming_convention/#reserved-attributes \ No newline at end of file diff --git a/content/ko/logs/log_collection/_index.md b/content/ko/logs/log_collection/_index.md index dc4736fd330..b9c3afd7e47 100644 --- a/content/ko/logs/log_collection/_index.md +++ b/content/ko/logs/log_collection/_index.md @@ -11,38 +11,44 @@ aliases: - /ko/logs/faq/how-to-send-logs-to-datadog-via-external-log-shippers - /ko/logs/languages - /ko/integrations/windows_event_log/ -description: 호스트, 컨테이너 및 서비스에서 로그를 수집하도록 환경을 구성하세요. +description: 호스트, 컨테이너 및 서비스에서 로그를 수집하도록 환경을 설정하세요. further_reading: - link: https://www.datadoghq.com/blog/log-file-control-with-logrotate/ - tag: Blog + tag: 블로그 text: Logrotate를 사용하여 로그 파일을 관리하는 방법 - link: /agent/logs/advanced_log_collection - tag: Documentation - text: 고급 로그 수집 구성 + tag: 설명서 + text: 고급 로그 수집 설정 - link: /logs/log_configuration/processors - tag: Documentation + tag: 설명서 text: 로그 처리 방법 알아보기 - link: /logs/log_configuration/parsing - tag: Documentation - text: 구문 분석에 대해 자세히 알아보기 + tag: 설명서 + text: 파싱에 대해 배우기 - link: /logs/live_tail/ - tag: Documentation - text: Datadog Live Tail 기능 + tag: 설명서 + text: Datadog 라이브 테일 기능 - link: /logs/explorer/ - tag: Documentation + tag: 설명서 text: 로그 탐색 방법 보기 - link: /logs/logging_without_limits/ - tag: Documentation + tag: 설명서 text: Logging Without Limits* +- link: https://learn.datadoghq.com/courses/advanced-log-configuration + tag: 학습 센터 + text: 고급 로그 구성 +- link: https://learn.datadoghq.com/courses/log-config-docker + tag: 학습 센터 + text: 컨테이너화된 애플리케이션에 대한 로그 수집 구성 title: 로그 수집 및 통합 --- ## 개요 {#overview} -로그 수집을 시작하려면 아래 구성 옵션을 선택하세요. 이미 log-shipper 데몬을 사용하고 있다면 [Rsyslog][1], [Syslog-ng][2], [NXlog][3], [FluentD][4] 또는 [Logstash][5] 전용 설명서를 참조하세요. +로그 수집을 시작하려면 아래 구성 옵션을 선택하세요. 이미 log-shipper 데몬을 사용하고 있는 경우, [Rsyslog][1], [Syslog-ng][2], [NXlog][3], [FluentD][4] 또는 [Logstash][5] 전용 설명서를 참조하세요. 로그를 Datadog에 직접 전송하려면 [사용 가능한 Datadog 로그 수집 엔드포인트 목록](#logging-endpoints)을 참조하세요. -**참고**: JSON 형식의 로그를 Datadog에 보낼 때 Datadog 내에서 특정 의미를 갖는 예약된 특성 세트가 있습니다. 자세한 내용은 [예약된 특성 섹션](#attributes-and-tags)을 참조하세요. +**참고**: JSON 형식의 로그를 Datadog에 보낼 때 Datadog 내에서 특정 의미를 갖는 예약된 속성 세트가 있습니다. 자세한 내용은 [예약된 속성 섹션](#attributes-and-tags)을 참조하세요. ## 설정 {#setup} @@ -50,8 +56,8 @@ title: 로그 수집 및 통합 {{% tab "호스트" %}} 1. [Datadog Agent][1]를 설치합니다. -2. 로그 수집을 활성화하려면 Agent의 주요 구성 파일(`datadog.yaml`)에서 `logs_enabled: false`를 `logs_enabled: true`로 변경하세요. 자세한 내용과 예시는 [Host Agent Log 수집 설명서][5]를 참조하세요. -3. 활성화되면 Datadog Agent는 [로그 파일 테일링 또는 UDP/TCP를 통해 전송된 로그 수신][2], [로그 필터링 또는 민감한 데이터 삭제][3], [여러 행 로그 집계][4]를 위한 목적으로 구성될 수 있습니다. +2. 로그 수집을 활성화하려면 Agent의 메인 구성 파일(`datadog.yaml`)에서 `logs_enabled: false`를 `logs_enabled: true`로 변경합니다. 자세한 내용과 예시는 [Host Agent Log 수집 문서][5]를 참조하세요. +3. 활성화되면 Datadog Agent는 [로그 파일을 테일링하거나 UDP/TCP를 통해 전송된 로그 수신][2], [로그 필터링 또는 민감한 데이터 삭제][3] 및 [여러 행 로그 집계][4] 용도로 구성할 수 있습니다. [1]: https://app.datadoghq.com/account/settings/agent/latest [2]: /ko/agent/logs/#custom-log-collection @@ -63,8 +69,8 @@ title: 로그 수집 및 통합 {{% tab "애플리케이션" %}} 1. [Datadog Agent][1]를 설치합니다. -2. 로그 수집을 활성화하려면 Agent의 주요 구성 파일(`datadog.yaml`)에서 `logs_enabled: false`를 `logs_enabled: true`로 변경하세요. 자세한 내용과 예시는 [Host Agent Log 수집 설명서][2]를 참조하세요. -3. 애플리케이션 언어 설치 지침에 따라 로거를 구성하고 로그 생성을 시작하세요. +2. 로그 수집을 활성화하려면 Agent의 메인 구성 파일(`datadog.yaml`)에서 `logs_enabled: false`를 `logs_enabled: true`로 변경합니다. 자세한 내용과 예시는 [Host Agent Log 수집 문서][2]를 참조하세요. +3. 애플리케이션 언어 설치 지침에 따라 로거를 구성하고 로그 생성을 시작합니다. {{< partial name="logs/logs-languages.html" >}} @@ -74,7 +80,7 @@ title: 로그 수집 및 통합 {{% tab "컨테이너" %}} -컨테이너 또는 오케스트레이터 공급자를 선택하고 전용 로그 수집 지침을 따르세요. +컨테이너 또는 오케스트레이터 공급자를 선택하고 로그 수집 지침을 따르세요. {{< partial name="logs/logs-containers.html" >}} @@ -82,11 +88,11 @@ title: 로그 수집 및 통합 - Datadog Agent는 로깅 드라이버를 사용하지 않고도 [컨테이너 stdout/stderr에서 직접 로그를 수집][1]할 수 있습니다. Agent의 Docker 검사가 활성화되면 컨테이너 및 오케스트레이터 메타데이터가 자동으로 로그에 태그로 추가됩니다. -- 로그를 모든 컨테이너에서 수집하거나 [컨테이너 이미지, 레이블 또는 이름으로 필터링된 하위 세트에서만][2] 수집할 수 있습니다. +- 모든 컨테이너 또는 [컨테이너 이미지, 라벨 또는 이름으로 필터링된 하위 집합][2]에서 로그를 수집할 수 있습니다. - Autodiscovery를 사용하여 [컨테이너 레이블에서 직접 로그 수집을 구성][3]할 수도 있습니다. -- Kubernetes 환경에서는 [DaemonSet 설치][4]를 활용할 수도 있습니다. +- Kubernetes 환경에서는 [daemonset 설치][4]를 활용할 수도 있습니다. [1]: /ko/agent/docker/log/ [2]: /ko/agent/guide/autodiscovery-management/ @@ -94,16 +100,16 @@ title: 로그 수집 및 통합 [4]: /ko/agent/basic_agent_usage/kubernetes/#log-collection-setup {{% /tab %}} -{{% tab "서버리스" %}} +{{% tab "Serverless" %}} -환경의 로그를 Datadog으로 전송하는 AWS Lambda 함수인 Datadog Forwarder를 사용하세요. AWS 서버리스 환경에서 로그 수집을 활성화하려면 [Datadog Forwarder 설명서][1]를 참조하세요. +Datadog Forwarder는 로그를 사용자 환경에서 Datadog로 전송하는 AWS Lambda 함수입니다. AWS 서버리스 환경에서 로그 수집을 활성화하려면 [Datadog Forwarder 설명서][1]를 참조하세요. [1]: /ko/serverless/forwarder {{% /tab %}} -{{% tab "클라우드/통합" %}} +{{% tab "Cloud/Integration" %}} -로그를 자동으로 수집하여 Datadog에 전달하는 방법을 보려면 아래에서 클라우드 공급자를 선택하세요. +로그를 자동으로 수집하여 Datadog에 전달하는 방법을 보려면 아래에서 클라우드 제공업체를 선택하세요. {{< partial name="logs/logs-cloud.html" >}} @@ -114,9 +120,9 @@ Datadog 통합과 로그 수집은 서로 연결되어 있습니다. 통합의 ## 데이터 전송 수수료 절감 {#reduce-data-transfer-fees} -Datadog의 [Cloud Network Monitoring][7]을 사용하여 조직에서 처리량이 가장 많은 애플리케이션을 파악하세요. 지원되는 프라이빗 연결을 통해 Datadog에 연결하고 프라이빗 네트워크를 통해 데이터를 전송함으로써 공용 인터넷을 사용하지 않고 데이터 전송 수수료를 절감할 수 있습니다. 프라이빗 링크로 전환한 후에는 Datadog의 [Cloud Cost Management][8] 도구를 사용하여 영향을 확인하고 클라우드 비용의 감소를 모니터링하세요. +Datadog의 [Cloud Network Monitoring][7]을 사용하여 조직에서 처리량이 가장 많은 애플리케이션을 파악하세요. 지원되는 프라이빗 연결을 통해 Datadog에 연결하고 프라이빗 네트워크를 통해 데이터를 전송함으로써 공용 인터넷을 사용하지 않고 데이터 전송 수수료를 절감할 수 있습니다. 프라이빗 링크로 전환한 후에는 Datadog의 [Cloud Cost Management][8] 도구를 사용하여 클라우드 비용의 감소와 영향을 모니터링하세요. -자세한 내용은 [데이터 전송 수수료를 줄이면서 로그를 Datadog로 보내는 방법][9]을 참조하세요. +자세한 내용은 [데이터 전송 수수료를 줄이면 로그를 Datadog로 보내는 방법][9]을 참조하세요. [1]: /ko/logs/log_configuration/processors [2]: /ko/logs/log_configuration/parsing @@ -145,7 +151,7 @@ Datadog의 [Cloud Network Monitoring][7]을 사용하여 조직에서 처리량 ### 로깅 엔드포인트 {#logging-endpoints} -Datadog은 SSL 암호화 연결과 비암호화 연결 모두에 대한 로깅 엔드포인트를 제공합니다. 가능하면 암호화된 엔드포인트를 사용하세요. Datadog Agent는 암호화된 엔드포인트를 사용하여 Datadog에 로그를 보냅니다. 자세한 내용은 [Datadog 보안 설명서][6]에서 확인할 수 있습니다. +Datadog은 SSL 암호화 연결과 비암호화 연결 모두에 대한 로깅 엔드포인트를 제공합니다. 가능하면 암호화된 엔드포인트를 사용하세요. Datadog Agent는 암호화된 엔드포인트를 사용하여 Datadog에 로그를 보냅니다. 자세한 내용은 [Datadog 보안 문서][6]에서 확인할 수 있습니다. #### 지원되는 엔드포인트 {#supported-endpoints} @@ -153,31 +159,31 @@ Datadog 사이트에서 지원되는 엔드포인트를 보려면 페이지 오 | 사이트 | 유형 | 엔드포인트 | 포트 | 설명 | |------|-------|----------|------|-------------| -| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=http_endpoint >}} | 443 | 커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. [Logs HTTP API 설명서][16]를 참조하세요. | -| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=agent_http_endpoint >}} | 443 | Agent에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. [Host Agent Log 수집 설명서][17]를 참조하세요. | -| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=lambda_http_endpoint >}} | 443 | Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | -| {{< region-param key=dd_datacenter >}} | HTTPS | 로그.{{< region-param key=browser_sdk_endpoint_domain >}} | 443 | Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. | +| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=http_endpoint >}} | 443 | 사용자 지정 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. [Logs HTTP API 문서][16]를 참조하세요. | +| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=agent_http_endpoint >}} | 443 | Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. [Host Agent Log 수집 문서][17]를 참조하세요. | +| {{< region-param key=dd_datacenter >}} | HTTPS | {{< region-param key=lambda_http_endpoint >}} | 443 | Lambda 함수가 HTTPS를 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | +| {{< region-param key=dd_datacenter >}} | HTTPS | logs.{{< region-param key=browser_sdk_endpoint_domain >}} | 443 | Brower SDK가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. | -### 커스텀 로그 전달 {#custom-log-forwarding} +### 사용자 지정 로그 전달 {#custom-log-forwarding} -**HTTP**를 통해 로그를 전달할 수 있는 모든 사용자 정의 프로세스 또는 로깅 라이브러리를 Datadog Logs와 함께 사용할 수 있습니다. +**HTTP**를 통해 로그를 전달할 수 있는 모든 사용자 지정 프로세스 또는 로깅 라이브러리를 Datadog Logs와 함께 사용할 수 있습니다. -HTTP를 통해 Datadog 플랫폼에 로그를 보낼 수 있습니다. 시작하려면 [Datadog Log HTTP API 설명서][15]를 참조하세요. +HTTP를 통해 Datadog 플랫폼에 로그를 보낼 수 있습니다. 시작하려면 [Datadog Log HTTP API 문서][15]를 참조하세요. **참고**: -* HTTPS API는 최대 1MB 크기의 로그를 지원합니다. 그러나 최적의 성능을 위해서는 개별 로그가 25K바이트를 초과하지 않는 것이 좋습니다. 로깅을 위해 Datadog Agent를 사용하는 경우 로그를 900kB(900,000바이트)로 분할하도록 구성됩니다. -* 로그 이벤트에는 태그가 100개 미만이어야 하며, 각 태그는 256자를 초과할 수 없고 하루에 최대 1,000만 개의 고유 태그를 사용할 수 있습니다. -* JSON 형식으로 변환된 로그 이벤트에는 256개 미만의 특성이 포함되어야 합니다. 각 특성의 키는 50자 미만이어야 하고 20개 미만의 연속 수준에 중첩되어야 하며 패싯으로 승격된 경우 해당 값은 1,024자 미만이어야 합니다. +* HTTPS API는 최대 1MB 크기의 로그를 지원합니다. 그러나 최적의 성능을 위해서는 개별 로그가 25K바이트를 초과하지 않는 것이 좋습니다. 로깅을 위해 Datadog Agent를 사용하는 경우 로그를 900kB(900000바이트)로 분할하도록 구성됩니다. +* 로그 이벤트에는 태그가 100개 미만이어야 하며, 각 태그는 256자를 초과하면 안 되고, 하루에 최대 1천만 개의 고유한 태그를 사용할 수 있습니다. +* JSON 형식으로 변환된 로그 이벤트에는 256개 미만의 속성이 포함되어야 합니다. 각 속성의 키는 50자 미만이어야 하고 20개 미만의 연속 수준에 중첩되어야 하며 패싯으로 승격된 경우 해당 값은 1024자 미만이어야 합니다. * 로그 이벤트는 과거 최대 18시간의 [타임스탬프][14]와 함께 제출될 수 있습니다.
    -미리보기 가능: 현재의 18시간 제한 대신 지난 7일의 로그를 제출할 수 있습니다. 미리보기를 등록하세요. +미리보기 가능: 현재의 18시간 제한 대신 지난 7일간의 로그를 제출할 수 있습니다. 미리보기를 등록하세요.
    -이러한 제한을 준수하지 않는 로그 이벤트는 시스템에 의해 변환되거나 잘릴 수 있으며, 제공된 시간 범위를 벗어나는 경우 인덱싱되지 않을 수 있습니다. 그러나 Datadog은 가능한 한 많은 사용자 데이터를 보존하려고 노력합니다. +이러한 제한을 준수하지 않는 로그 이벤트는 시스템에 의해 변환되거나 잘릴 수 있으며, 제공된 시간 범위를 벗어나는 경우 색인이 생성되지 않을 수 있습니다. 그러나 Datadog은 가능한 한 많은 사용자 데이터를 보존하려고 노력합니다. -인덱싱된 로그에만 적용되는 필드에 추가 잘림이 있습니다. 메시지 필드의 경우 값이 75KiB로 잘리고 메시지 이외의 필드는 25KiB로 잘립니다. Datadog에는 여전히 전체 텍스트가 저장되며 Logs Explorer의 일반 목록 쿼리에 표시됩니다. 그러나 잘린 버전은 그룹화된 쿼리를 수행할 때 표시됩니다. 예를 들어, 잘린 필드로 로그를 그룹화하거나 특정 필드를 표시하는 유사 작업을 수행할 때 표시됩니다. +인덱싱된 로그에만 적용되는 필드에 추가 잘림이 있습니다. 메시지 필드의 경우 값이 75KiB로 잘리고 메시지 이외의 필드는 25KiB로 잘립니다. Datadog에는 전체 텍스트가 저장되며 Logs Explorer의 일반 목록 쿼리에 표시됩니다. 그러나 잘린 버전은 그룹화된 쿼리를 수행할 때 표시됩니다. 예를 들어 잘린 필드로 로그를 그룹화하거나 특정 필드를 표시하는 유사 작업을 수행할 때 표시됩니다. {{% collapse-content title="TCP" level="h3" expanded=false %}} @@ -186,48 +192,48 @@ HTTP를 통해 Datadog 플랫폼에 로그를 보낼 수 있습니다. 시작하 | 사이트 | 유형 | 엔드포인트 | 포트 | 설명 | |------|-------------|---------------------------------------------------------------------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 미국 | TCP | `agent-intake.logs.datadoghq.com` | 10514 | Agent가 TLS를 사용하지 않고 로그를 보내는 데 사용됩니다. -| 미국 | TCP 및 TLS | `agent-intake.logs.datadoghq.com` | 10516 | Agent가 TLS를 사용하여 로그를 보내는 데 사용됩니다. -| 미국 | TCP 및 TLS | `intake.logs.datadoghq.com` | 443 | 커스텀 포워더가 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | -| 미국 | TCP 및 TLS | `functions-intake.logs.datadoghq.com` | 443 | Azure 함수가 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. **참고**: 이 엔드포인트는 다른 클라우드 공급자에 유용할 수 있습니다. | -| 미국 | TCP 및 TLS | `lambda-intake.logs.datadoghq.com` | 443 | Lambda 함수가 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | -| EU | TCP 및 TLS | `agent-intake.logs.datadoghq.eu` | 443 | Agent가 SSL로 암호화된 TCP 연결을 통해 protobuf 형식으로 로그를 보내는 데 사용됩니다. | -| EU | TCP 및 TLS | `functions-intake.logs.datadoghq.eu` | 443 | Azure 함수가 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. **참고**: 이 엔드포인트는 다른 클라우드 공급자에 유용할 수 있습니다. | -| EU | TCP 및 TLS | `lambda-intake.logs.datadoghq.eu` | 443 | Lambda 함수가 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | +| US | TCP | `agent-intake.logs.datadoghq.com` | 10514 | Agent가 TLS 없이 로그를 보내는 데 사용됩니다. +| US | TCP 및 TLS | `agent-intake.logs.datadoghq.com` | 10516 | Agent가 TLS와 함께 로그를 보내는 데 사용됩니다. +| US | TCP 및 TLS | `intake.logs.datadoghq.com` | 443 | 사용자 지정 포워더가 SSL로 암호화된 TCP 연결을 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | +| US | TCP 및 TLS | `functions-intake.logs.datadoghq.com` | 443 | Azure 함수가 SSL로 암호화된 TCP 연결을 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. **참고**: 이 엔드포인트는 다른 클라우드 제공업체에 유용할 수 있습니다. | +| US | TCP 및 TLS | `lambda-intake.logs.datadoghq.com` | 443 | Lambda 함수가 SSL로 암호화된 TCP 연결을 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | +| EU | TCP 및 TLS | `agent-intake.logs.datadoghq.eu` | 443 | Agent가 SSL 암호화된 TCP 연결을 통해 protobuf 형식으로 로그를 보내는 데 사용됩니다. | +| EU | TCP 및 TLS | `functions-intake.logs.datadoghq.eu` | 443 | Azure 함수가 SSL 암호화된 TCP 연결을 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. **참고**: 이 엔드포인트는 다른 클라우드 제공업체에 유용할 수 있습니다. | +| EU | TCP 및 TLS | `lambda-intake.logs.datadoghq.eu` | 443 | Lambda 함수가 SSL 암호화된 TCP 연결을 통해 원시, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. | {{% /collapse-content %}} -### 특성 및 태그 {#attributes-and-tags} +### 속성 및 태그 {#attributes-and-tags} -특성은 Log Explorer에서 필터링 및 검색에 사용되는 [로그 패싯][9]을 규정합니다. 예약된 특성과 표준 특성 목록을 확인하고 로그 특성과 별칭을 사용하여 명명 규칙을 지원하는 방법을 알아보려면 전용 [특성 및 별칭][10] 설명서를 참조하세요. +속성은 Log Explorer에서 필터링 및 검색에 사용되는 [로그 패싯][9]을 규정합니다. 예약된 속성과 표준 속성 목록을 알아보고 로그 속성과 별칭을 사용하여 명명 규칙을 지원하는 방법을 알아보려면 전용 [속성 및 별칭][10] 문서를 참조하세요. -#### 스택 트레이스 특성 {#attributes-for-stack-traces} +#### 스택 트레이스의 속성 {#attributes-for-stack-traces} -스택 트레이스를 로깅할 때 Datadog 애플리케이션 내에 로거 이름, 현재 스레드, 오류 유형, 스택 트레이스 자체와 같은 전용 UI 표시가 있는 특정 특성이 있습니다. +스택 트레이스를 로깅할 때 Datadog 애플리케이션 내에 로거 이름, 현재 스레드, 오류 유형, 스택 트레이스 자체와 같은 전용 UI 표시가 있는 특정 속성이 있습니다. -{{< img src="logs/log_collection/stack_trace.png" style="width:80%;" alt="구문 분석된 스택 트레이스의 특성" >}} +{{< img src="logs/log_collection/stack_trace.png" style="width:80%;" alt="파싱된 스택 트레이스의 속성" >}} -이러한 기능을 활성화하려면 다음 특성 이름을 사용합니다. +이러한 기능을 활성화하려면 다음 속성 이름을 사용합니다. -| 특성 | 설명 | +| 속성 | 설명 | |----------------------|-------------------------------------------------------------------------| | `logger.name` | 로거의 이름 | | `logger.thread_name` | 현재 스레드의 이름 | | `error.stack` | 실제 스택 트레이스 | | `error.message` | 스택 트레이스에 포함된 오류 메시지 | -| `error.kind` | 오류의 유형 또는 '종류'(예: 'Exception' 또는 'OSError') | +| `error.kind` | 오류의 유형 또는 "종류"(예: "Exception" 또는 "OSError") | -**참고**: 기본적으로 통합 파이프라인은 기본 로깅 라이브러리 파라미터를 해당 특정 특성으로 리매핑하고 스택 트레이스 또는 트레이스백을 구문 분석하여 자동으로 `error.message`와 `error.kind`를 추출하려고 시도합니다. +**참고**: 기본적으로 통합 Pipelines는 기본 로깅 라이브러리 파라미터를 해당 특정 속성으로 리매핑하고 스택 트레이스 또는 트레이스백을 파싱하여 `error.message` 및 `error.kind`를 자동으로 추출하려 합니다. -자세한 내용은 전체 [소스 코드 특성 설명서][11]를 참조하세요. +자세한 내용은 전체 [소스 코드 속성 문서][11]를 참조하세요. ## 다음 단계 {#next-steps} -로그가 수집 및 수집(ingest)되면 **Log Explorer**에서 사용할 수 있습니다. Log Explorer는 로그를 검색하고, 보강하고, 관련 경보를 조회할 수 있는 곳입니다. 로그 데이터 분석을 시작하려면 [Log Explorer][12] 설명서를 참조하거나 아래의 추가 로그 관리 설명서를 참조하세요. +로그가 수집(collect) 및 유입(ingest)되면 **Log Explorer**에서 사용할 수 있습니다. Log Explorer는 로그를 검색하고, 보강하고, 경보를 조회할 수 있는 곳입니다. 로그 데이터 분석을 시작하려면 [Log Explorer][12] 문서를 참조하거나 아래의 추가 로그 관리 문서를 참조하세요. -{{< img src="logs/explore.png" alt="Log Explorer에 표시되는 로그" style="width:100%" >}} +{{< img src="logs/explore.png" alt="Log Explorer에 나타나는 로그" style="width:100%" >}} -## 참고 자료 {#further-reading} +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}}
    diff --git a/content/ko/logs/log_configuration/parsing.md b/content/ko/logs/log_configuration/parsing.md index ff0a21f91cb..ac2b99a3260 100644 --- a/content/ko/logs/log_configuration/parsing.md +++ b/content/ko/logs/log_configuration/parsing.md @@ -13,13 +13,13 @@ aliases: description: Grok 프로세서를 사용하여 로그 구문 분석 further_reading: - link: https://learn.datadoghq.com/courses/log-pipelines - tag: Learning Center + tag: 학습 센터 text: 로그 파이프라인 빌드 및 수정 방법 알아보기 - link: /logs/log_configuration/processors - tag: Documentation + tag: 설명서 text: 로그 처리 방법 알아보기 - link: https://www.youtube.com/watch?v=AwW70AUmaaQ&list=PLdh-RwQzDsaM9Sq_fi-yXuzhmE7nOlqLE&index=3 - tag: Video + tag: 비디오 text: 'Datadog 모범 사례와 사용 팁: Grok 구문 분석을 사용해 로그에서 필드 추출' - link: /logs/faq/how-to-investigate-a-log-parsing-issue/ tag: FAQ @@ -28,28 +28,31 @@ further_reading: tag: FAQ text: 로그 구문 분석 - 모범 사례 - link: /logs/logging_without_limits/ - tag: Documentation + tag: 설명서 text: Datadog로 인덱싱된 로그 볼륨 제어 +- link: https://learn.datadoghq.com/courses/debugging-log-pipelines + tag: 학습 센터 + text: 로그 파이프라인 디버깅 title: 구문 분석 --- -{{< learning-center-callout header="학습 센터에서 Grok 구문 분석 시도" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} - Pipeline Scanner를 통해 로그 파이프라인을 빌드 및 수정하고, 관리하는 방법을 알아보세요. 일관성을 위해 처리된 로그 간 특성 이름을 표준화하는 방법도 알아보세요. +{{< learning-center-callout header="학습 센터에서 Grok 구문 분석해보기" btn_title="지금 등록" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} + 로그 파이프라인을 빌드해 수정하고, Pipeline Scanner로 관리하고 처리된 로그 전체의 속성 이름을 표준화하여 일관성을 실현하는 방법을 알아보세요. {{< /learning-center-callout >}} ## 개요 {#overview} -Datadog은 JSON 형식의 로그를 자동으로 구문 분석합니다. 다른 형식의 경우, Datadog에서는 Grok 구문 분석기를 통해 로그를 보강할 수 있도록 지원합니다. -Grok 구문은 순수 정규식보다 로그를 더 쉽게 구문 분석할 수 있는 방법을 제공합니다. Grok 구문 분석기를 사용하면 반구조화된 텍스트 메시지에서 특성을 추출할 수 있습니다. +Datadog은 JSON 형식의 로그를 자동으로 구문 분석합니다. 다른 형식의 경우, Datadog에서 Grok 파서의 도움을 받아 로그를 강화할 수 있습니다. +Grok 구문은 순수 정규식보다 로그를 더 쉽게 구문 분석할 수 있는 방법을 제공합니다 Grok 파서를 사용하면 반구조화된 텍스트 메시지에서 속성을 추출할 수 있습니다. -Grok에는 정수, IP 주소, 호스트 이름 등을 구문 분석하는 재사용 가능한 패턴이 포함되어 있습니다. 이러한 값은 문자열로 Grok 구문 분석기에 보내야 합니다. +Grok에는 정수, IP 주소, 호스트 이름 등을 구문 분석할 수 있는 재사용 가능한 패턴이 포함되어 있습니다. 이러한 값을 Grok 파서에 문자열 형태로 보내야 합니다. `%{MATCHER:EXTRACT:FILTER}` 구문을 사용하여 구문 분석 규칙을 작성할 수 있습니다. -* **Matcher**: 예상되는 내용(숫자, 단어, notSpace 등)을 설명하는 규칙(다른 토큰 규칙에 대한 참조일 수 있음)입니다. +* **Matcher**: 예상되는 내용(숫자, 단어, notSpace 등)을 설명하는 규칙입니다(다른 토큰 규칙에 대한 참조일 수 있음). -* **Extract**(선택 사항): *Matcher*와 일치하는 텍스트 조각의 캡처 대상을 나타내는 식별자입니다. +* **Extract**(선택 사항): *Matcher*가 매칭한 텍스트 조각의 캡처 대상을 나타내는 식별자입니다. -* **Filter**(선택 사항): 매치를 변환하는 포스트 프로세서입니다. +* **Filter**(선택 사항): 일치 항목을 변환할 사후 프로세서입니다. 구조화되지 않은 전형적인 로그 예시: @@ -74,72 +77,83 @@ MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} **참고**: -* 단일 Grok 구문 분석기에 여러 개의 구문 분석 규칙이 있는 경우 - * 하나의 항목만 주어진 로그와 일치할 수 있습니다. 위에서부터 첫 번째 항목이 일치하면 해당 항목이 구문 분석됩니다. - * 각 규칙은 목록에서 위에 정의된 구문 분석 규칙을 참조할 수 있습니다. -* 동일한 Grok 구문 분석기 내에 고유한 규칙 이름이 있어야 합니다. -* 규칙 이름은 영숫자, `_` 및 `.`만 포함해야 하며, 반드시 영숫자로 시작해야 합니다. -* 값이 null이거나 비어 있는 속성은 표시되지 않습니다. -* 각 규칙은 로그의 시작부터 끝까지 적용되므로 전체 로그 항목과 일치하도록 구문 분석 규칙을 정의해야 합니다. -* 특정 로그에는 공백이 다수 생성될 수 있습니다. `\n` 및 `\s+`를 사용하여 줄 바꿈과 공백을 고려하세요. +* Grok 파서 하나에 구문 분석 규칙이 여러 개인 경우: + * 하나의 항목만 주어진 로그와 일치할 수 있습니다. 위에서 첫 번째로 일치하는 항목을 구문 분석합니다. + * 각 규칙이 위의 목록에 정의된 구문 분석 규칙을 참조할 수 있습니다. +* 같은 Grok 파서 내에 고유한 규칙 이름이 있어야 합니다. +* 규칙 이름에는 영숫자, `_`, `.`만 포함해야 합니다. 규칙은 반드시 영숫자로 시작해야 합니다. +* null이나 빈 값이 포함된 속성은 표시되지 않습니다. +* 구문 분석 규칙은 로그의 시작부터 끝까지 적용되므로, 각 규칙이 로그 항목 전체와 일치하도록 정의해야 합니다. +* 특정 로그는 큰 공백을 생성할 수 있습니다. `\n` 및 `\s+`를 사용하여 줄 바꿈 및 공백을 고려하세요. -### 일치기 및 필터 {#matcher-and-filter} +### 매처 및 필터 {#matcher-and-filter} -
    query-time에 사용 가능한 Grok 구문 분석 기능(Log Explorer에서)은 일치기(data, integer, notSpace, numberword)와 필터(numberinteger)의 제한된 하위 세트를 지원합니다.

    -다음 일치기 및 필터의 전체 세트는 ingest-time Grok 구문 분석기 기능에만 적용됩니다.
    +
    query-time(Log Explorer에서)에 사용 가능한 Grok 구문 분석 기능은 매처의 몇몇 하위 집합(data, integer, notSpace, number, word) 및 필터(numberinteger)를 지원합니다.

    +다음 매처 및 필터 세트 전체는 ingest-time Grok 파서 기능에만 적용됩니다.
    -다음은 Datadog에서 기본적으로 구현된 모든 일치기와 필터 목록을 보여줍니다. +다음은 Datadog에서 기본적으로 구현되는 모든 매처 및 필터의 목록입니다. {{< tabs >}} -{{% tab "일치기" %}} +{{% tab "매처" %}} -`date("pattern"[, "timezoneId"[, "localeId"]])` -: 날짜를 지정된 패턴과 매칭하고 구문 분석하여 Unix 타임스탬프를 생성합니다. [날짜 일치기 예시를 참조하세요](#parsing-dates). +**Query-time 및 ingest-time 매처:** -`regex("pattern")` -: 정규식을 매칭합니다. [정규식 일치기 예시를 확인하세요](#regex). +다음 매처는 query-time 구문 분석(Log Explorer)과 ingest-time 구문 분석(Grok 파서) 양쪽 모두에 사용할 수 있습니다. + +`word` +: 단어 경계로 시작하고, a~z, A~Z, 0~9 문자를 포함하며(`_`(밑줄) 문자 포함), 단어 경계로 끝나는 _word_를 매칭합니다. 정규식의 `\b\w+\b`에 해당합니다. `notSpace` : 다음 공백까지 모든 문자열을 매칭합니다. +`number` +: 십진수로 표현되는 부동 소수점 숫자를 매칭하고 이를 배정밀도의 수로 구문 분석합니다. + +`integer` +: 정수를 매칭하고 이를 정수로 구문 분석합니다. + +`data` +: 공백과 줄 바꿈을 포함한 모든 문자열을 매칭합니다. 정규식의 `.*`에 해당합니다. 위의 패턴 중에 적절한 것이 없을 때 사용하세요. + +**Ingest-time 전용 매처:** + +다음 매처는 Grok 파서로 ingest-time 구문 분석에만 사용할 수 있고, Log Explorer에서는 사용할 수 없습니다. + +`date("pattern"[, "timezoneId"[, "localeId"]])` +: 날짜를 지정된 패턴과 매칭하고 구문 분석하여 Unix 타임스탬프를 생성합니다. [날짜 매처 예시 참조](#parsing-dates). + +`regex("pattern")` +: 정규식을 매칭합니다. [정규식 매처 예시 참조](#regex). + `boolean("truePattern", "falsePattern")` -: 부울 연산자를 매칭하고 구문 분석합니다. 선택적으로 참/거짓 패턴을 정의합니다(기본값은 `true` 및 `false`로 대소문자 무시). +: 부울 값을 매칭하고 구문 분석하며, 선택 사항으로 참 및 거짓 패턴을 정의합니다(기본값은 `true` 및 `false`, 대소문자 구분 안 함). `numberStr` -: 십진수 부동 소수점 숫자를 매칭하고 문자열로 구문 분석합니다. - -`number` -: 십진수 부동 소수점 숫자를 매칭하고 배정밀도 숫자로 구문 분석합니다. +: 십진수 부동 소수점 숫자를 매칭하고 이를 문자열로 구문 분석합니다. `numberExtStr` -: 부동 소수점 숫자(과학 표기법 지원)를 매칭하고 문자열로 구문 분석합니다. +: 부동 소수점 숫자를 매칭하고(과학적 표기법 지원) 이를 문자열로 구문 분석합니다. `numberExt` -: 부동 소수점 숫자(과학 표기법 지원)를 매칭하고 배정밀도 숫자로 구문 분석합니다. +: 부동 소수점 숫자를 매칭하고(과학적 표기법 지원) 이를 배정밀도 숫자로 구문 분석합니다. `integerStr` -: 정수를 매칭하고 문자열로 구문 분석합니다. - -`integer` -: 정수를 매칭하고 정수로 구문 분석합니다. +: 정수를 매칭하고 이를 문자열로 구문 분석합니다. `integerExtStr` -: 정수(과학 표기법 지원 포함)를 매칭하고 문자열로 구문 분석합니다. +: 정수를 매칭하고(과학적 표기법 지원) 이를 문자열로 구문 분석합니다. `integerExt` -: 정수(과학 표기법 지원 포함)를 매칭하고 정수로 구문 분석합니다. - -`word` -: 단어 경계로 시작하고 끝나며, `_`(밑줄) 문자와 a-z, A-Z, 0-9의 문자를 포함하는 _word_를 매칭합니다. 정규식의 `\b\w+\b`에 해당합니다. +: 정수를 매칭하고(과학적 표기법 지원) 이를 정수로 구문 분석합니다. `doubleQuotedString` -: 큰따옴표로 묶인 문자열을 매칭합니다. +: 큰따옴표로 묶은 문자열을 매칭합니다. `singleQuotedString` -: 작은따옴표로 묶인 문자열을 매칭합니다. +: 작은따옴표로 묶은 문자열을 매칭합니다. `quotedString` -: 큰따옴표 또는 작은따옴표로 묶인 문자열을 매칭합니다. +: 큰따옴표 또는 작은따옴표로 묶은 문자열을 매칭합니다. `uuid` : UUID를 매칭합니다. @@ -165,35 +179,40 @@ MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} `port` : 포트 번호를 매칭합니다. -`data` -: 공백과 줄 바꿈을 포함한 모든 문자열을 매칭합니다. 정규식의 `.*`에 해당합니다. 위의 패턴 중 어느 것도 적절하지 않을 때 사용합니다. - {{% /tab %}} {{% tab "필터" %}} +**Query-time 및 ingest-time 필터:** + +다음 필터는 query-time 구문 분석(Log Explorer)과 ingest-time 구문 분석(Grok 파서) 양쪽 모두에 사용할 수 있습니다. + `number` -: 매칭 항목을 배정밀도 숫자로 구문 분석합니다. +: 일치 항목을 배정밀도 숫자로 구문 분석합니다. `integer` -: 매칭 항목을 정수로 구문 분석합니다. +: 일치 항목을 정수로 구문 분석합니다. + +**Ingest-time 전용 필터:** + +다음 필터는 Grok 파서로 ingest-time 구문 분석에만 사용할 수 있고, Log Explorer에서는 사용할 수 없습니다. `boolean` -: 대소문자를 무시하고 'true' 및 'false' 문자열을 부울로 구문 분석합니다. +: 대소문자를 구분하지 않고 'true' 및 'false' 문자열을 구문 분석합니다. `nullIf("value")` -: 매칭 항목이 제공된 값과 같으면 null을 반환합니다. +: 일치 항목이 제공된 값과 같으면 null을 반환합니다. `json` : 올바른 형식의 JSON을 구문 분석합니다. `rubyhash` -: `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}` 등 올바른 형식의 Ruby 해시를 구문 분석합니다. +: 올바른 형식의 Ruby 해시(예: `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}`)를 구문 분석합니다. `useragent([decodeuricomponent:true/false])` -: user-agent를 구문 분석하고 Agent로 표시되는 장치, OS 및 브라우저를 포함하는 JSON 객체를 반환합니다. [사용자 Agent 프로세서를 확인하세요][1]. +: user-agent를 구문 분석하고 장치, OS 및 Agent가 나타내는 브라우저를 포함한 JSON 개체를 반환합니다. [사용자 Agent 프로세서를 참조하세요][1]. `querystring` -: 매칭되는 URL 쿼리 문자열(예: `?productId=superproduct&promotionCode=superpromo`)에 있는 모든 키-값 쌍을 추출합니다. +: 일치하는 URL 쿼리 문자열에서 키-값 쌍을 모두 추출합니다(예를 들어 `?productId=superproduct&promotionCode=superpromo`). `decodeuricomponent` : URI 구성 요소를 디코딩합니다. 예를 들어, `%2Fservice%2Ftest`를 `/service/test`로 변환합니다. @@ -205,43 +224,43 @@ MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} : 대문자 문자열을 반환합니다. `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` -: 키 값 패턴을 추출하고 JSON 객체를 반환합니다. [키-값 필터 예시](#key-value-or-logfmt)를 참조하세요. +: 키 값 패턴을 추출하고 JSON 개체를 반환합니다. [키-값 필터 예시](#key-value-or-logfmt)를 참조하세요. `xml` : 올바른 형식의 XML을 구문 분석합니다. [XML 필터 예시](#parsing-xml)를 참조하세요. `csv(headers[, separator[, quotingcharacter]])` -: 올바른 형식의 CSV 또는 TSV 줄을 구문 분석합니다. [CSV 필터 예시](#parsing-csv)를 참조하세요. +: 올바른 형식의 CSV 또는 TSV 라인을 구문 분석합니다. [CSV 필터 예시](#parsing-csv)를 참조하세요. `scale(factor)` -: 예상 수치에 제공된 계수를 곱합니다. +: 예상되는 숫자 값에 제공된 인수를 곱합니다. `array([[openCloseStr, ] separator][, subRuleOrFilter)` -: 토큰의 문자열 시퀀스를 구문 분석하고 배열로 반환합니다. [배열할 목록](#list-to-array) 예시를 참조하세요. +: 토큰의 문자열 시퀀스를 구문 분석하여 배열로 반환합니다. [목록을 배열로](#list-to-array) 예시를 참조하세요. `url` -: URL을 구문 분석하여 토큰화된 모든 구성원(도메인, 쿼리 파라미터, 포트 등)을 JSON 객체로 반환합니다. [URL 구문 분석 방법에 대한 자세한 정보][2]를 참조하세요. +: URL을 구문 분석하고 토큰화된 모든 구성원(도메인, 쿼리 파라미터, 포트 등)을 JSON 개체로 반환합니다. [URL 구문 분석 방법에 대한 자세한 정보][2]를 참조하세요. -[1]: /ko/logs/log_configuration/processors/#user-agent-parser -[2]: /ko/logs/log_configuration/processors/#url-parser +[1]: /ko/logs/log_configuration/processors/user_agent_parser/ +[2]: /ko/logs/log_configuration/processors/url_parser/ {{% /tab %}} {{< /tabs >}} ## 고급 설정 {#advanced-settings} -Grok 프로세서 하단의 **Advanced Settings** 섹션을 사용하여 기본 `message` 특성 대신 특정 특성을 구문 분석하거나 여러 구문 분석 규칙에서 공통 패턴을 재사용하는 지원 규칙을 정의합니다. +Grok 프로세서 맨 밑에 있는 **고급 설정** 섹션을 사용하여 기본 `message` 속성 대신 특정 속성을 구문 분석하거나, 여러 구문 분석 규칙에서 공통 패턴을 재사용하는 도우미 규칙을 정의합니다. -### 특정 텍스트 특성 구문 분석 {#parsing-a-specific-text-attribute} +### 특정 텍스트 속성 구문 분석 {#parsing-a-specific-text-attribute} -**Extract from** 필드를 사용하여 기본 `message` 특성 대신 지정된 텍스트 특성에 Grok 프로세서를 적용합니다. +**추출 대상** 필드를 사용하여 주어진 텍스트 속성에 기본`message` 속성 대신 Grok 프로세서에 적용합니다. -예를 들어, `command.line` 특성이 키-값으로 구문 분석되어야 하는 로그를 생각해 봅니다. `command.line`에서 추출하여 그 내용을 구문 분석하고 명령 데이터에서 구조화된 특성을 생성합니다. +예를 들어 키-값으로 구문 분석해야 하는 `command.line` 속성을 포함하는 로그를 생각해 보세요. `command.line`에서 추출하여 내용을 구문 분석하고 명령 데이터로부터 구조화된 속성을 생성합니다. -{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="command.line 특성 예시에서 추출한 고급 설정" style="width:80%;">}} +{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="command.line 속성에서 추출을 사용한 고급 설정 예시" style="width:80%;">}} -### 공통 패턴을 재사용하기 위한 지원 규칙 사용 {#using-helper-rules-to-reuse-common-patterns} +### 공통 패턴을 재사용하기 위해 도우미 규칙 사용 {#using-helper-rules-to-reuse-common-patterns} -**Helper Rules** 필드를 사용하여 구문 분석 규칙에 대한 토큰을 정의하세요. 지원 규칙을 사용하면 구문 분석 규칙 전반에 걸쳐 공통 Grok 패턴을 재사용할 수 있습니다. 이 기능은 동일한 Grok 구문 분석기에 여러 개의 규칙이 있을 때 유용합니다. +**도우미 규칙** 필드를 사용하여 구문 분석 규칙의 토큰을 정의하세요. 도우미 규칙을 사용하면 구문 분석 규칙 전체에서 공통 Grok 패턴을 재사용할 수 있습니다. 이것은 같은 토큰을 사용하는 같은 Grok 파서에 규칙이 여러 개 있을 때 유용합니다. 구조화되지 않은 전형적인 로그 예시: @@ -249,13 +268,13 @@ Grok 프로세서 하단의 **Advanced Settings** 섹션을 사용하여 기본 john id:12345 connected on 11/08/2017 on server XYZ in production ``` -다음 구문 분석 규칙을 사용합니다. +다음 구문 분석 규칙 사용: ```text MyParsingRule %{user} %{connection} %{server} ``` -다음과 같은 도우미를 사용합니다. +다음 도우미 사용: ```text user %{word:user.name} id:%{integer:user.id} @@ -265,12 +284,12 @@ server on server %{notSpace:server.name} in %{notSpace:server.env} ## 예시 {#examples} -구문 분석기 사용 방법을 보여주는 몇 가지 예시입니다. +파서 사용법을 보여주는 몇 가지 예시: -* [키 값 또는 로그 형식](#key-value-or-logfmt) +* [키 값 또는 logfmt](#key-value-or-logfmt) * [날짜 구문 분석](#parsing-dates) -* [교차 패턴](#alternating-pattern) -* [선택적 특성](#optional-attribute) +* [대체 패턴](#alternating-pattern) +* [선택 속성](#optional-attribute) * [중첩된 JSON](#nested-json) * [정규식](#regex) * [목록 및 배열](#list-to-array) @@ -278,16 +297,16 @@ server on server %{notSpace:server.name} in %{notSpace:server.env} * [XML](#parsing-xml) * [CSV](#parsing-csv) -### 키 값 또는 로그 형식 {#key-value-or-logfmt} +### 키 값 또는 logfmt {#key-value-or-logfmt} -키-값 핵심 필터는 `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])`와 같습니다. 각 항목은 다음과 같습니다. +이것은 키-값 코어 필터입니다. `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` 자세한 내용 설명: -* `separatorStr`: 키와 값 사이의 구분 기호를 정의합니다. 기본값은 `=`입니다. -* `characterAllowList`: 기본값 `\\w.\\-_@` 외에 이스케이프 처리되지 않은 값 문자를 추가로 정의합니다. 따옴표로 묶지 않은 값(예: `key=@valueStr`)에만 사용됩니다. -* `quotingStr`: 따옴표를 `<>`, `""`, `''`로 정의하여 기본 따옴표 감지를 대체합니다. -* `delimiter`: 서로 다른 키 값 쌍 사이의 구분 기호를 정의합니다(예: `|`는 `key1=value1|key2=value2`의 구분 기호임). 기본값은 ` `(일반 공백), `,` 및 `;`입니다. +* `separatorStr`: 키와 값 사이 구분 기호를 정의합니다. 기본값은 `=`입니다. +* `characterAllowList`:기본 `\\w.\\-_@` 외에 이스케이프 처리되지 않은 값 문자를 추가로 정의합니다. 따옴표가 없는 값에만 사용됩니다(예를 들어 `key=@valueStr`). +* `quotingStr`: 따옴표를 정의하여 기본 따옴표 감지 `<>`, `""`, `''`를 대체합니다. +* `delimiter`: 서로 다른 키 값 쌍 사이의 구분 기호를 정의합니다(예를 들어 `|`가 `key1=value1|key2=value2`의 구분 기호임). 기본값은 ` `(일반 공백), `,` 및 `;`입니다. -**keyvalue**와 같은 필터를 사용하면 문자열을 keyvalue 또는 logfmt 형식의 특성에 더 쉽게 매핑할 수 있습니다. +**keyvalue**와 같은 필터를 사용하여 문자열을 keyvalue 또는 logfmt 형식의 속성으로 더 간편하게 매핑합니다. **로그:** @@ -301,8 +320,8 @@ user=john connect_date=11/08/2017 id=123 action=click rule %{data::keyvalue} ``` -로그에 이미 포함되어 있으므로 파라미터의 이름을 지정할 필요가 없습니다. -규칙 패턴에 **extract** 특성인 `my_attribute`를 추가하면 다음과 같이 표시됩니다. +파라미터 이름은 이미 로그에 포함되어 있으므로 지정할 필요가 없습니다. +규칙 패턴에 **추출** 속성 `my_attribute`를 추가하면 다음과 같은 내용이 표시됩니다. ```json { @@ -314,7 +333,7 @@ rule %{data::keyvalue} } ``` -키와 값 사이의 기본 구분 기호가 `=`가 아닌 경우 구문 분석 규칙에 파라미터를 구분 기호와 함께 추가하세요. +`=`가 키와 값의 기본 구분 기호가 아닌 경우, 구문 분석 규칙에 구분 기호를 포함한 파라미터를 추가하세요. **로그:** @@ -328,7 +347,7 @@ user: john connect_date: 11/08/2017 id: 123 action: click rule %{data::keyvalue(": ")} ``` -로그의 특성 값에 특수 문자가 포함된 경우(예: URL의 `/`) 구문 분석 규칙의 허용 목록에 추가합니다. +로그의 속성 값에 특수 문자가 포함된 경우(예를 들어 인스턴스 url에 `/`가 있는 경우) 이를 구문 분석 규칙의 허용 목록에 추가하세요. **로그:** @@ -356,8 +375,8 @@ rule %{data::keyvalue("=","/:")} | key1=value1\|key2=value2 | %{data::keyvalue("=", "", "", "|")} | {"key1": "value1", "key2": "value2"} | | key1="value1"\|key2="value2" | %{data::keyvalue("=", "", "", "|")} | {"key1": "value1", "key2": "value2"} | -**다중 인용 문자열 예시**: 다중 인용 문자열이 정의된 경우 기본 동작은 정의된 인용 문자로 대체됩니다. -키-값은 `quotingStr`에 지정된 내용과 관계없이 항상 따옴표 문자가 없는 입력과 매칭됩니다. 따옴표 문자를 사용하면 따옴표 문자 사이의 모든 내용이 추출되므로 `characterAllowList`는 무시됩니다. +**Multiple QuotingString 예시**: 여러 quotingstring을 정의하면 기본 동작이 정의된 따옴표로 대체됩니다. +키-값은 `quotingStr`에 정의된 내용과는 관계없이 항상 따옴표 없이 입력과 일치합니다. 따옴표를 사용하는 경우, 따옴표 사이의 모든 내용을 추출하기 때문에 `characterAllowList`는 무시됩니다. **로그:** @@ -380,12 +399,12 @@ rule %{data::keyvalue("=","/:")} **참고**: * 빈 값(`key=`) 또는 `null` 값(`key=null`)은 출력 JSON에 표시되지 않습니다. -* `data` 객체에 *keyvalue* 필터를 정의하고 이 필터가 매칭되지 않으면 빈 JSON `{}`이 반환됩니다(예: 입력: `key:=valueStr`, 구문 분석 규칙: `rule_test %{data::keyvalue("=")}`, 출력: `{}`). -* `""`를 `quotingStr`로 정의하면 인용 시 기본 구성이 유지됩니다. +* `data` 개체에서 *key-value* 필터를 정의하고 이 필터가 매칭되지 않으면 빈 JSON `{}`가 반환됩니다(예를 들어 입력: `key:=valueStr`, 구문 분석 규칙: `rule_test %{data::keyvalue("=")}`, 출력: `{}`). +* `""`를 `quotingStr`로 정의하면 인용에 대한 기본 구성이 유지됩니다. ### 날짜 구문 분석 {#parsing-dates} -날짜 일치기는 타임스탬프를 EPOCH 형식(**밀리초** 측정 단위)으로 변환합니다. +날짜 매처는 타임스탬프를 EPOCH 형식으로 변환합니다(측정 단위 **밀리초**). | **원시 문자열** | **구문 분석 규칙** | **결과** | |:-------------------------------------|:----------------------------------------------------------|:------------------------| @@ -403,19 +422,19 @@ rule %{data::keyvalue("=","/:")} | Thu Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","UTC+5"):date}` | {"date": 1466047743000} | | Thu Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","+3"):date}` | {"date": 1466054943000} | -1 자체 현지화를 수행하고 타임스탬프가 UTC가 _아닌_ 경우 `timezone` 파라미터를 사용하세요. -지원되는 시간대 형식은 다음과 같습니다. +1 자체적으로 현지화를 수행하고 타임스탬프가 UTC 기준이 _아닌_ 경우, `timezone` 파라미터를 사용하세요. +지원되는 표준 시간대 형식은 다음과 같습니다. * `GMT`, `UTC`, `UT` 또는 `Z` -* `+hh:mm`, `-hh:mm`, `+hhmm`, `-hhmm`. 지원되는 최대 범위는 +18:00부터 -18:00까지입니다. -* `UTC+`, `UTC-`, `GMT+`, `GMT-`, `UT+` 또는 `UT-`로 시작하는 표준 시간대. 지원되는 최대 범위는 +18:00부터 -18:00까지입니다. -* TZ 데이터베이스에서 가져온 표준 시간대 ID. 자세한 내용은 [TZ 데이터베이스 이름][2]을 참조하세요. +* `+hh:mm`, `-hh:mm`, `+hhmm`, `-hhmm`. 지원되는 최대 범위는 +18:00~-18:00(양쪽 끝값 포함)입니다. +* `UTC+`, `UTC-`, `GMT+`, `GMT-`, `UT+` 또는 `UT-`로 시작하는 표준 시간대입니다. 지원되는 최대 범위는 +18:00~-18:00(양쪽 끝값 포함)입니다. +* TZ 데이터베이스에서 가져온 표준 시간대 ID입니다. 자세한 내용은 [TZ 데이터베이스 이름][2]을 참조하세요. -**참고**: 날짜를 구문 분석하더라도 그 값을 로그 공식 날짜로 설정하지 **않습니다**. 공식 날짜로 설정하려면 후속 프로세서에서 [로그 날짜 재매핑기][3]를 사용하세요. +**참고**: 날짜를 구문 분석해도 그 값을 로그의 공식 날짜로 설정하지 **않습니다**. 이 경우 이후 프로세서에서 [로그 날짜 리매퍼][3]를 사용하세요. -### 교차 패턴 {#alternating-pattern} +### 대체 패턴 {#alternating-pattern} -특성이 하나만 다른 두 가지 가능한 형식의 로그가 있는 경우 `(|)`를 번갈아 사용하여 단일 규칙을 설정합니다. 이 규칙은 부울 연산자인 OR과 동일합니다. +속성이 하나만 다른 두 가지 가능한 형식의 로그가 있는 경우 `(|)`를 번갈아 사용하여 단일 규칙을 설정합니다. 이 규칙은 부울 연산자 OR에 해당합니다. **로그**: @@ -425,7 +444,7 @@ john connected on 11/08/2017 ``` **규칙**: -'id'는 문자열이 아닌 정수라는 점에 유의하세요. +"id"는 문자열이 아니고 정수입니다. ```text MyParsingRule (%{integer:user.id}|%{word:user.firstname}) connected on %{date("MM/dd/yyyy"):connect_date} @@ -453,9 +472,9 @@ MyParsingRule (%{integer:user.id}|%{word:user.firstname}) connected on %{date("M } ``` -### 선택적 특성 {#optional-attribute} +### 선택 속성 {#optional-attribute} -일부 로그에는 시간의 일부분만 표시되는 값이 포함되어 있습니다. 이 경우, `()?`를 사용하여 특성 추출을 선택 작업으로 설정하세요. +일부 로그에는 시간의 일부분만 표시되는 값을 포함합니다. 이런 경우, `()?`를 사용해 속성 추출을 선택 사항으로 설정하세요. **로그**: @@ -470,7 +489,7 @@ john connected on 11/08/2017 MyParsingRule %{word:user.firstname} (%{integer:user.id} )?connected on %{date("MM/dd/yyyy"):connect_date} ``` -**참고**: 선택적 섹션의 첫 단어 뒤에 공백을 포함하면 규칙이 매칭되지 않습니다. +**참고**:선택 사항 섹션의 첫 단어 뒤에 공백을 포함하면 규칙이 매칭되지 않습니다. **결과**:
    `(%{integer:user.id} )?` @@ -498,7 +517,7 @@ MyParsingRule %{word:user.firstname} (%{integer:user.id} )?connected on %{date(" ### 중첩된 JSON {#nested-json} -`json` 필터를 사용하여 원시 텍스트 접두사 뒤에 중첩된 JSON 객체를 구문 분석합니다. +원시 텍스트 접두사 뒤에 중첩된 JSON 개체를 구문 분석하려면 `json` 필터를 사용하세요. **로그**: @@ -550,9 +569,9 @@ MyParsingRule %{regex("[a-z]*"):user.firstname}_%{regex("[a-zA-Z0-9]*"):user.id} } ``` -### 배열할 목록 {#list-to-array} +### 목록에서 배열로 {#list-to-array} -`array([[openCloseStr, ] separator][, subRuleOrFilter)` 필터를 사용하여 목록을 단일 특성의 배열로 추출합니다. `subRuleOrFilter`는 선택 사항이며 이러한 [필터][4]를 적용합니다. +목록을 속성 한 개의 배열로 추출하려면 `array([[openCloseStr, ] separator][, subRuleOrFilter)` 필터를 사용하세요. `subRuleOrFilter`는 선택 사항이며 이러한 [필터][4]를 허용합니다. **로그**: @@ -591,7 +610,7 @@ Users {John-Oliver-Marc-Tom} have been added to the database myParsingRule Users %{data:users:array("{}","-")} have been added to the database ``` -`subRuleOrFilter`**규칙(사용:**): +**`subRuleOrFilter`**를 사용하는 규칙: ```text myParsingRule Users %{data:users:array("{}","-", uppercase)} have been added to the database @@ -599,7 +618,7 @@ myParsingRule Users %{data:users:array("{}","-", uppercase)} have been added to ### Glog 형식 {#glog-format} -Kubernetes 구성 요소는 때때로 `glog` 형식으로 로그를 남깁니다. 이 예시는 파이프라인 라이브러리의 Kube 스케줄러 항목에서 가져온 것입니다. +Kubernetes 구성 요소는 `glog` 형식으로 로깅될 때가 있습니다. 이 예시는 Pipeline Library의 Kube Scheduler 항목에서 가져온 것입니다. 예시 로그 라인: @@ -613,7 +632,7 @@ W0424 11:47:41.605188 1 authorization.go:47] Authorization is disabled kube_scheduler %{regex("\\w"):level}%{date("MMdd HH:mm:ss.SSSSSS"):timestamp}\s+%{number:logger.thread_id} %{notSpace:logger.name}:%{number:logger.lineno}\] %{data:msg} ``` -추출한 JSON: +추출된 JSON: ```json { @@ -630,7 +649,7 @@ kube_scheduler %{regex("\\w"):level}%{date("MMdd HH:mm:ss.SSSSSS"):timestamp}\s+ ### XML 구문 분석 {#parsing-xml} -XML 구문 분석기는 XML 형식의 메시지를 JSON으로 변환합니다. +XML 파서는 XML 형식 메시지를 JSON으로 변환합니다. **로그:** @@ -666,25 +685,25 @@ rule %{data::xml} **참고**: -* 태그 사이에 특성과 문자열 값이 모두 있는 태그가 XML에 포함된 경우 `value` 특성이 생성됩니다. 예: `Harry Potter`는 `{"title": {"lang": "en", "value": "Harry Potter" } }`로 변환됩니다. -* 반복되는 태그는 자동으로 배열로 변환됩니다. 예: `Harry PotterEveryday Italian`는 `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }`로 변환됩니다. +* XML에 두 개의 태그 사이에 속성과 문자열 값이 모두 있는 태그가 포함된 경우, `value` 속성이 생성됩니다. 예를 들어 `Harry Potter`는 `{"title": {"lang": "en", "value": "Harry Potter" } }`로 변환됩니다. +* 반복되는 태그는 자동으로 배열로 변환됩니다. 예를 들어 `Harry PotterEveryday Italian`은 `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }`으로 변환됩니다. ### CSV 구문 분석 {#parsing-csv} -**CSV** 필터를 사용하면 문자열을 지정된 문자로 구분할 때 특성에 더 쉽게 매핑할 수 있습니다(기본값은 `,`). +**CSV** 필터를 사용하면 주어진 문자(기본적으로 `,`)로 구분된 문자열을 속성으로 더 쉽게 매핑할 수 있습니다. -CSV 필터는 `csv(headers[, separator[, quotingcharacter]])`로 정의됩니다. 각 항목은 다음과 같습니다. +CSV 필터는 `csv(headers[, separator[, quotingcharacter]])`로 정의되며, 자세한 설명은 다음과 같습니다. -* `headers`: `,`로 구분된 키 이름을 정의합니다. 키 이름은 알파벳 문자로 시작해야 하며 `_` 외에 영숫자 문자를 포함할 수 있습니다. -* `separator`: 서로 다른 값을 구분하는 데 사용되는 구분 기호를 정의합니다. 하나의 문자만 허용되며, 기본값은 `,`입니다. **참고**: `separator`에 `tab`을 사용하여 TSV의 표 문자를 나타냅니다. -* `quotingcharacter`: 인용 문자를 정의합니다. 하나의 문자만 허용되며, 기본값은 `"`입니다. +* `headers`: `,`로 구분된 키 이름을 정의합니다. 키 이름은 알파벳 문자로 시작해야 하며 `_`와 영숫자만 포함할 수 있습니다. +* `separator`: 서로 다른 값을 구분하는 데 사용되는 구분 기호를 정의합니다. 문자 한 개만 허용됩니다. 기본값: `,`. **참고**: TSV의 표 형식 문자를 나타내려면 `separator`로 `tab`을 사용하세요. +* `quotingcharacter`: 따옴표를 정의합니다. 문자 한 개만 허용됩니다. 기본값: `"` **참고**: -* 구분 문자가 포함된 값은 따옴표로 묶어야 합니다. -* 따옴표 문자가 포함된 따옴표 값은 따옴표 문자를 사용하여 이스케이프 처리해야 합니다. 예를 들어, 따옴표로 묶인 값 내의 `""`은 `"`을 나타냅니다. -* 로그에 헤더의 키 수와 동일한 수의 값이 포함되어 있지 않으면 CSV 구문 분석기는 첫 번째 항목을 매칭합니다. -* 정수와 복수는 가능한 경우 자동으로 캐스팅됩니다. +* 구분 기호 문자를 포함하는 값은 반드시 따옴표로 묶어야 합니다. +* 따옴표를 포함한 따옴표 값은 따옴표로 이스케이프해야 합니다. 예를 들어 따옴표로 묶인 값 안의 `""`는 `"`를 나타냅니다. +* 로그에 헤더의 키 개수와 같은 숫자 값이 포함되지 않은 경우, CSV 파서는 첫 번째 항목을 매칭합니다. +* 가능한 경우, 정수와 double은 자동으로 캐스팅됩니다. **로그**: @@ -725,9 +744,9 @@ myParsingRule %{data:user:csv("first_name,name,st_nb,st_name,city")} | `value1,,value3` | `%{data::csv("key1,key2,key3")}` | {"key1": "value1", "key3":"value3"} | | Value1    Value2    Value3 (TSV) | `%{data::csv("key1,key2,key3","tab")}` | {"key1": "value1", "key2": "value2", "key3":"value3"} | -### 데이터 일치기를 사용하여 불필요한 텍스트 삭제 {#use-data-matcher-to-discard-unneeded-text} +### 데이터 매처를 사용해 불필요한 텍스트 삭제 {#use-data-matcher-to-discard-unneeded-text} -필요한 내용을 구문 분석한 후 텍스트는 삭제해도 안전하다는 것을 알고 있는 로그가 있는 경우, 데이터 일치기를 사용하여 삭제할 수 있습니다. 다음 로그 예시의 경우 `data` 일치기를 사용하여 끝에 있는 `%`를 삭제할 수 있습니다. +무엇이 필요한지 구문 분석을 마쳤고, 그 시점 이후 텍스트를 삭제해도 안전하다는 사실을 알고 있는 로그라면 데이터 매처를 사용해 삭제하면 됩니다. 다음 로그 예시의 경우, `data` 매처를 사용해 맨 끝의 `%`를 삭제할 수 있습니다. **로그**: @@ -752,13 +771,13 @@ MyParsingRule Usage\:\s+%{number:usage}%{data:ignore} ### ASCII 제어 문자 {#ascii-control-characters} -로그에 ASCII 제어 문자가 포함된 경우, 수집 시 직렬화됩니다. 이러한 문자는 Grok 구문 분석기 내에서 직렬화된 값을 명시적으로 이스케이프하여 처리할 수 있습니다. +로그에 ASCII 제어 문자가 포함된 경우, 수집 시 직렬화됩니다. 이러한 문자는 Grok 파서 내에서 직렬화된 값으로 명시적으로 이스케이프하여 처리할 수 있습니다. -## 참고 자료 {#further-reading} +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://github.com/google/re2/wiki/Syntax [2]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -[3]: /ko/logs/log_configuration/processors/#log-date-remapper +[3]: /ko/logs/log_configuration/processors/log_date_remapper/ [4]: /ko/logs/log_configuration/parsing/?tab=filters&tabs=filters#matcher-and-filter \ No newline at end of file diff --git a/content/ko/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md b/content/ko/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md new file mode 100644 index 00000000000..365cc71e6e2 --- /dev/null +++ b/content/ko/real_user_monitoring/application_monitoring/browser/advanced_configuration.mdoc.md @@ -0,0 +1,1900 @@ +--- +aliases: +- /ko/real_user_monitoring/installation/advanced_configuration/ +- /ko/real_user_monitoring/browser/modifying_data_and_context/ +- /ko/real_user_monitoring/browser/advanced_configuration/ +content_filters: +- option_group_id: rum_browser_sdk_source_options + trait_id: lib_src +- option_group_id: rum_browser_sdk_version_for_advanced_config_options + trait_id: rum_browser_sdk_version +description: RUM Browser SDK를 구성하여 데이터 수집을 수정하고 조회 이름을 재정의하고 사용자 세션을 관리하고, 애플리케이션의 + 요구 사항에 맞춰 샘플링을 제어하세요. +further_reading: +- link: /real_user_monitoring/application_monitoring/browser/tracking_user_actions + tag: 설명서 + text: 사용자 액션 추적 +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: 블로그 + text: Real User Monitoring +- link: /real_user_monitoring/application_monitoring/browser/data_collected/ + tag: 설명서 + text: 수집된 RUM 브라우저 데이터 +- link: /real_user_monitoring/explorer/ + tag: 설명서 + text: Datadog에서 조회 탐색 +- link: /real_user_monitoring/explorer/visualize/ + tag: 설명서 + text: 이벤트에 시각화 적용 +- link: /logs/log_configuration/attributes_naming_convention + tag: 설명서 + text: Datadog 표준 특성 +- link: https://learn.datadoghq.com/courses/configure-rum-javascript + tag: 학습 센터 + text: JavaScript 웹 애플리케이션에 대하여 Real User Monitoring(RUM) 구성 +title: 고급 구성 +--- +## 개요 {% #overview %} + +RUM에서 수집한 [데이터 및 컨텍스트][1]를 다양한 방법으로 수정하여 필요에 따라 지원할 수 있습니다: + +- 개인 식별 정보와 같은 민감한 데이터를 보호합니다. +- 사용자 세션을 해당 사용자의 내부 ID와 연결하여 지원합니다. +- 데이터 샘플링을 통해 수집하는 RUM 데이터 양을 줄입니다. +- 데이터의 출처에 대해 기본 속성이 제공하는 것보다 더 많은 컨텍스트를 제공합니다. + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} + +## 기본 RUM 조회 이름 재정의 {% #override-default-rum-view-names %} + +[버전 2.17.0][3]부터 `trackViewsManually` 옵션을 사용하여 조회 이벤트를 수동으로 추적함으로써 조회 이름을 추가하고 팀이 소유한 전용 서비스에 할당할 수 있습니다. + +RUM Browser SDK는 사용자가 방문한 각각의 새 페이지에 대하여, 또는 페이지 URL이 변경된 경우(단일 페이지 애플리케이션의 경우) [조회 이벤트][2]를 자동으로 생성합니다. 조회 이름은 현재 페이지 URL에서 계산되며, 여기에서 변수 ID는 자동으로 제거됩니다. 하나 이상의 숫자를 포함하는 경로 세그먼트는 변수 ID로 간주됩니다. 예를 들어 `/dashboard/1234` 및 `/dashboard/9a`는 `/dashboard/?`가 됩니다. + +기본 RUM 조회 이름을 재정의하는 방법: + +1. RUM Brower SDK를 초기화할 때 `trackViewsManually`를 true로 설정합니다. + + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + trackViewsManually: true, + ... + }); + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + trackViewsManually: true, + ... + }) + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + trackViewsManually: true, + ... + }); + ``` + {% /if %} + +2. 각 새 페이지 또는 경로 변경(단일 페이지 애플리케이션의 경우)에 대해 조회를 시작해야 합니다. 조회 시작 시 RUM 데이터가 수집됩니다. +{% /if %} + + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "4.13.0") %} + +### 서비스 이름 및 버전 정의 {% #define-service-name-and-version %} + +[버전 4.13.0][16]부터는 관련 서비스 이름 및 버전도 정의할 수 있습니다(선택 사항). + +- **View Name**: 페이지 URL 경로로 기본 설정됩니다. +- **Service**: RUM 애플리케이션을 생성할 때 지정한 기본 서비스로 기본 설정됩니다. +- **Version**: RUM 애플리케이션을 생성할 때 지정한 기본 버전으로 기본 설정됩니다. +{% /if %} + + + + + +{% if includes($rum_browser_sdk_version, ["lt_2_13_0", "gte_2_13_0", "gte_2_17_0"]) %} + +## 수동으로 페이지 조회 추적 {% #manually-track-pageviews %} + +다음 예에서는 RUM 애플리케이션의 `checkout` 페이지에서 페이지 조회를 수동으로 추적합니다. 서비스 또는 버전을 지정할 수 없습니다. + + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.startView('checkout') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.startView('checkout') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.startView('checkout') +``` +{% /if %} +{% /if %} + + + +{% if includes($rum_browser_sdk_version, ["gte_4_13_0", "gte_4_49_0", "gte_5_22_0"]) %} + +다음 예에서는 RUM 애플리케이션의 `checkout` 페이지에서 페이지 조회를 수동으로 추적합니다. 여기에서는 조회 이름으로 `checkout`을 사용하고 `purchase` 서비스를 버전 `1.2.3`과 연결합니다. + + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3' +}) +``` +{% /if %} +{% /if %} + + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "5.28.0") %} + +- **컨텍스트**: [버전 5.28.0][19]부터 조회 및 조회의 하위 이벤트에 컨텍스트를 추가할 수 있습니다. + +다음 예에서는 RUM 애플리케이션의 `checkout` 페이지에서 페이지 조회를 수동으로 추적합니다. 조회 이름으로 `checkout`을 사용하고 `purchase` 서비스를 버전 `1.2.3`과 연결합니다. + + + {% if equals($lib_src, "npm") %} + ```javascript + datadogRum.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + }) + ``` + {% /if %} + + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && window.DD_RUM.startView({ + name: 'checkout', + service: 'purchase', + version: '1.2.3', + context: { + payment: 'Done' + }, + }) + ``` + {% /if %} + +{% /if %} + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} + +### React 라우터 계측 {% #react-router-instrumentation %} + +React, Angular, Vue 또는 여타 모든 프론트엔드 프레임워크를 사용하는 경우, Datadog은 프레임워크 라우터 수준에서 `startView` 로직을 구현할 것을 권장합니다. + +기본 RUM 조회 이름을 재정의하여 사용자가 React 애플리케이션에서 정의한 방법과 일치하도록 하려면 다음 단계를 수행해야 합니다. + +**참고**: 이 지침은 **React Router v6** 라이브러리에만 적용됩니다. + +1. RUM 브라우저 SDK를 초기화할 때 [위](#override-default-rum-view-names)의 설명과 같이 `trackViewsManually`를 `true`로 설정하세요. + +2. 각 경로 변경에 대한 조회를 시작합니다. + + {% if equals($lib_src, "npm") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + import { datadogRum } from "@datadog/browser-rum"; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + datadogRum.startView({name: viewName}); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + DD_RUM.onReady(function() { + DD_RUM.startView({name: viewName}); + }); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + import { matchRoutes, useLocation } from 'react-router-dom'; + import { routes } from 'path/to/routes'; + + export default function App() { + // Track every route change with useLocation API + let location = useLocation(); + + useEffect(() => { + const routeMatches = matchRoutes(routes, location.pathname); + const viewName = routeMatches && computeViewName(routeMatches); + if (viewName) { + window.DD_RUM && + window.DD_RUM.startView({name: viewName}); + } + }, [location.pathname]); + + ... + } + + // Compute view name out of routeMatches + function computeViewName(routeMatches) { + let viewName = ""; + for (let index = 0; index < routeMatches.length; index++) { + const routeMatch = routeMatches[index]; + const path = routeMatch.route.path; + // Skip pathless routes + if (!path) { + continue; + } + + if (path.startsWith("/")) { + // Handle absolute child route paths + viewName = path; + } else { + // Handle route paths ending with "/" + viewName += viewName.endsWith("/") ? path : `/${path}`; + } + } + + return viewName || '/'; + } + ``` + {% /if %} +{% /if %} + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.17.0") %} +### 조회 이름 설정 {% #set-view-name %} + +현재 조회의 이름을 업데이트하려면 `setViewName(name: string)`을 사용하세요. 이렇게 하면 새 조회를 시작하지 않고 조회 중간에 조회 이름을 변경할 수 있습니다. + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.setViewName(''); + + // Code example + datadogRum.setViewName('Checkout'); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.setViewName(''); + }) + + // Code example + window.DD_RUM.onReady(function() { + window.DD_RUM.setViewName('Checkout'); + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && window.DD_RUM.setViewName(''); + + // Code example + window.DD_RUM && window.DD_RUM.setViewName('Checkout'); + ``` + {% /if %} + +**참고**: 조회 이름을 변경하면 해당 메서드를 호출한 시점부터 조회 및 그 하위 이벤트에 영향을 미칩니다. +{% /if %} + + +자세한 내용은 [브라우저 모니터링 설정][4]을 참조하세요. + + +## RUM 데이터 강화 및 제어 {% #enrich-and-control-rum-data %} + +RUM Browser SDK는 RUM 이벤트를 캡처하고 이벤트의 기본 속성을 채웁니다. `beforeSend` 콜백 함수를 사용하면 RUM Browser SDK가 수집한 모든 이벤트를 Datadog에 보내기 전에 그러한 이벤트에 액세스할 수 있습니다. + +RUM 이벤트를 인터셉트하면 다음과 같은 일을 할 수 있습니다. + +- 추가 컨텍스트 속성으로 RUM 이벤트 강화 +- RUM 이벤트를 수정하여 내용을 변경하거나 민감한 시퀀스 삭제([편집 가능한 속성 목록](#modify-the-content-of-a-rum-event) 참조) +- 선택한 RUM 이벤트 삭제 + + +{% if semverIsAtLeast($rum_browser_sdk_version, "2.13.0") %} +[버전 2.13.0][5]부터 `beforeSend`는 두 개의 인수를 사용합니다. 하나는 RUM Browser SDK가 생성한 `event`, 다른 하나는 RUM 이벤트 생성을 트리거한 `context`입니다. + +```javascript +function beforeSend(event, context) +``` + +가능한 `context` 값은 다음과 같습니다. + +| RUM 이벤트 유형 | 컨텍스트 | +|------------------|---------------------------| +| 조회 | [위치][6] | +| 액션 | [이벤트][7] 및 처리 스택 | +| 리소스(XHR) | [XMLHttpRequest][8], [PerformanceResourceTiming][9] 및 처리 스택 | +| 리소스(Fetch) | [요청][10], [응답][11], [PerformanceResourceTiming][9] 및 처리 스택 | +| 리소스(기타) | [PerformanceResourceTiming][9] | +| 오류 | [오류][12] | +| 긴 작업 | [PerformanceLongTaskTiming][13] | + +자세한 내용은 [RUM 데이터 강화 및 제어 가이드][14]를 참조하세요. +{% /if %} + + +### RUM 이벤트 강화 {% #enrich-rum-events %} + +[Global Context API](#global-context) 또는 [Feature Flag 데이터 수집](#enrich-rum-events-with-feature-flags)으로 추가된 속성 외에 이벤트에 더 많은 컨텍스트 속성을 추가할 수 있습니다. 예를 들어 fetch 응답 개체에서 추출한 데이터로 RUM 리소스 이벤트를 태그할 수 있습니다. + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }) + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + // collect a RUM resource's response headers + if (event.type === 'resource' && event.resource.type === 'fetch') { + event.context.responseHeaders = Object.fromEntries(context.response.headers) + } + return true + }, + ... + }); + ``` + {% /if %} + +사용자가 여러 팀에 속한 경우, 호출에 포함된 추가적인 키-값 쌍을 Global Context API에 추가합니다. + +RUM Browser SDK는 `event.context` 외부에서 추가된 속성을 무시합니다. + +### 기능 플래그를 사용하여 RUM 이벤트 강화 {% #enrich-rum-events-with-feature-flags %} + +[기능 플래그를 사용하여 RUM 이벤트 데이터를 강화][14]하면 성능 모니터링에 대한 추가적인 컨텍스트와 가시성을 얻을 수 있습니다. 이렇게 하면 어느 사용자에게 특정 사용자 경험이 표시되는지, 그 사실이 해당 사용자의 성능에 좋지 않은 영향을 미치는지 판단할 수 있습니다. + +### RUM 이벤트 내용 수정 {% #modify-the-content-of-a-rum-event %} + +예를 들어 웹 애플리케이션 URL에서 이메일 주소를 삭제하려면 다음과 같이 설정합니다. + + {% if equals($lib_src, "npm") %} + ```javascript + import { datadogRum } from '@datadog/browser-rum'; + + datadogRum.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }); + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_async") %} + ```javascript + window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }) + }) + ``` + {% /if %} + + + {% if equals($lib_src, "cdn_sync") %} + ```javascript + window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + // remove email from view url + event.view.url = event.view.url.replace(/email=[^&]*/, "email=REDACTED") + }, + ... + }); + ``` + {% /if %} + +다음 이벤트 속성을 업데이트할 수 있습니다. + +| 속성 | 유형 | 설명 | +| ------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `view.url` | 문자열 | 활성 웹 페이지의 URL입니다. | +| `view.referrer` | 문자열 | 현재 요청된 페이지로 연결된 링크가 포함되어 있던 이전 웹 페이지의 URL입니다. | +| `view.name` | 문자열 | 현재 조회의 이름입니다. | +| `view.performance.lcp.resource_url` | 문자열 | Largest Contentful Paint의 리소스 URL입니다. | +| `service` | 문자열 | 애플리케이션의 서비스 이름입니다. | +| `version` | 문자열 | 애플리케이션의 버전입니다. 예: 1.2.3, 6c44da20 또는 2020.02.13. | +| `action.target.name` | 문자열 | 사용자가 상호작용한 요소입니다. 자동으로 수집된 액션에만 해당합니다. | +| `error.message` | 문자열 | 오류를 설명하는 간결하고 사람이 읽을 수 있는 한 줄 메시지입니다. | +| `error.stack` | 문자열 | 스택 트레이스 또는 오류에 관한 보완 정보입니다. | +| `error.resource.url` | 문자열 | 오류를 트리거한 리소스 URL입니다. | +| `resource.url` | 문자열 | 리소스 URL입니다. | +| `long_task.scripts.source_url` | 문자열 | 스크립트 리소스 url | +| `long_task.scripts.invoker` | 문자열 | 스크립트가 어떻게 호출되었는지 나타내는 의미 있는 이름 | +| `context` | 개체 | [Global Context API](#global-context), [View Context API](#view-context)를 사용하여, 또는 이벤트를 수동으로 생성할 때 추가된 속성입니다(예: `addError` 및 **`addAction`**). | + +RUM Browser SDK는 위의 목록에 나열되지 않은 이벤트 속성에 적용된 수정 사항을 무시합니다. 이벤트 속성에 관한 자세한 내용은 [RUM Browser SDK GitHub 리포지토리][15]를 참조하세요. + +**참고**: 다른 이벤트와는 달리 조회 이벤트는 이벤트 수명 주기 동안 발생한 업데이트를 반영하여 Datadog에 여러 번 전송됩니다. 새 조회가 활성인 동안에도 이전 조회 이벤트에 대한 업데이트가 전송될 수 있습니다. Datadog에서는 조회 이벤트의 내용을 수정할 때 이 동작을 유의할 것을 권장합니다. + +```javascript +beforeSend: (event) => { + // discouraged, as the current view name could be applied to both the active view and the previous views + event.view.name = getCurrentViewName() + + // recommended + event.view.name = getViewNameForUrl(event.view.url) +} +``` + +### RUM 이벤트 삭제 {% #discard-a-rum-event %} + +`beforeSend` API를 사용하여 `false`를 반환하여 RUM 이벤트 삭제: + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + } + ... + }, + ... +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + }, + ... + }, + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + ..., + beforeSend: (event) => { + if (shouldDiscard(event)) { + return false + } + ... + }, + ... + }); +``` +{% /if %} + +**참고**: 조회 이벤트는 삭제할 수 없습니다. + +## 사용자 세션 {% #user-session %} + +RUM 세션에 사용자 정보를 추가하면 다음과 같은 장점이 있습니다. + +- 주어진 사용자의 여정을 따라감 +- 오류로 인해 가장 영향을 많이 받는 사용자 파악 +- 가장 중요한 사용자의 성능 모니터링 + +{% img src="real_user_monitoring/browser/advanced_configuration/user-api.png" alt="RUM UI의 사용자 API" /%} + + +{% if semverIsAtLeast($rum_browser_sdk_version, "6.4.0") %} +버전 6.4.0 이상에서는 다음 속성을 사용할 수 있습니다. + +| 속성 | 유형 | 필수 | 설명 | +|------------|------|------|----------------------------------------------------------------------------------------------------| +| `usr.id` | 문자열 | 예 | 고유한 사용자 식별자입니다. | +| `usr.name` | 문자열 | 아니요 | RUM UI에 기본적으로 표시되는 사용자 친화적인 이름입니다. | +| `usr.email` | 문자열 | 아니요 | 사용자 이름이 없는 경우 RUM UI에 표시되는 사용자 이메일입니다. Gravatars를 가져오는 데에도 이것이 사용됩니다. | +{% /if %} + + + +{% if not(semverIsAtLeast($rum_browser_sdk_version, "6.4.0")) %} +아래의 속성은 6.4.0 이전 버전에서는 선택 사항이지만, Datadog에서는 이러한 속성을 하나 이상 제공할 것을 강력히 권장합니다. 예를 들어 세션에서 사용자 ID를 설정해야 일부 기본 RUM 대시보드에서 관련 데이터를 확인할 수 있으며, 이것은 쿼리의 일부분으로 `usr.id`에 의존합니다. + +| 속성 | 유형 | 설명 | +|------------|------|----------------------------------------------------------------------------------------------------| +| `usr.id` | 문자열 | 고유한 사용자 식별자입니다. | +| `usr.name` | 문자열 | RUM UI에 기본적으로 표시되는 사용자 친화적인 이름입니다. | +| `usr.email` | 문자열 | 사용자 이름이 없는 경우 RUM UI에 표시되는 사용자 이메일입니다. Gravatars를 가져오는 데에도 이것이 사용됩니다. | + +**참고**:`usr.name`이 설정되지 않은 경우 RUM UI에는 'Public User'가 표시되며, 이는 `usr.email` 및 `usr.id`가 정의되었더라도 마찬가지입니다. + +권장 속성에 추가 속성을 더하여 필터링 기능을 강화하세요. 예를 들어 사용자 계획에 관한 정보나, 소속 사용자 그룹이 무엇인지 정보를 추가합니다. + +사용자 세션 개체를 변경할 때 변경 후 수집된 모든 RUM 이벤트에는 업데이트된 정보가 포함됩니다. + +**참고**: 로그아웃할 때와 같이 사용자 세션 정보를 삭제하면 로그아웃 전 마지막 조회의 사용자 정보는 유지되지만 이후 조회 또는 세션 수준에서는 유지되지 않습니다. 세션 데이터는 마지막 조회의 값을 사용하기 때문입니다. +{% /if %} + + +### 사용자 세션 식별 {% #identify-user-session %} + +`datadogRum.setUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setUser({ + id: '1234', + name: 'John Doe', + email: 'john@doe.com', + plan: 'premium', + ... +}) +``` +{% /if %} + +### 사용자 세션 액세스 {% #access-user-session %} + +`datadogRum.getUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.getUser() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.getUser() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getUser() +``` +{% /if %} + +### 사용자 세션 속성 추가/재정의 {% #addoverride-user-session-property %} + +`datadogRum.setUserProperty('', )` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setUserProperty('name', 'John Doe') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setUserProperty('name', 'John Doe') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setUserProperty('name', 'John Doe') +``` +{% /if %} + +### 사용자 세션 속성 제거 {% #remove-user-session-property %} + +`datadogRum.removeUserProperty('')` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.removeUserProperty('name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeUserProperty('name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.removeUserProperty('name') +``` +{% /if %} + +### 사용자 세션 속성 지우기 {% #clear-user-session-property %} + +`datadogRum.clearUser()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.clearUser() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearUser() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearUser() +``` +{% /if %} + +## 계정 {% #account %} + +여러 사용자를 다양한 세트로 그룹화하려면 계정 개념을 사용합니다. + +사용할 수 있는 속성은 다음과 같습니다. + +| 속성 | 유형 | 필수 | 설명 | +|----------------|--------|----------|------------------------------------------------------------| +| `account.id` | 문자열 | 예 | 고유한 사용자 식별자입니다. | +| `account.name` | 문자열 | 아니요 | RUM UI에 기본적으로 표시되는 계정 친화적인 이름입니다. | + +### 계정 식별 {% #identify-account %} + +`datadogRum.setAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setAccount({ + id: '1234', + name: 'My Company Name', + ... +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setAccount({ + id: '1234', + name: 'My Company Name', + ... + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setAccount({ + id: '1234', + name: 'My Company Name', + ... +}) +``` +{% /if %} + +### 계정 액세스 {% #access-account %} + +`datadogRum.getAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.getAccount() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.getAccount() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getAccount() +``` +{% /if %} + +### 계정 속성 추가/재정의 {% #addoverride-account-property %} + +`datadogRum.setAccountProperty('', )` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.setAccountProperty('name', 'My Company Name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setAccountProperty('name', 'My Company Name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setAccountProperty('name', 'My Company Name') +``` +{% /if %} + +### 계정 속성 제거 {% #remove-account-property %} + +`datadogRum.removeAccountProperty('')` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.removeAccountProperty('name') +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeAccountProperty('name') +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.removeAccountProperty('name') +``` +{% /if %} + +### 계정 속성 지우기 {% #clear-account-properties %} + +`datadogRum.clearAccount()` + +{% if equals($lib_src, "npm") %} + +```javascript +datadogRum.clearAccount() +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearAccount() +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearAccount() +``` +{% /if %} + +## 샘플링 {% #sampling %} + +기본적으로 수집된 세션의 수에는 샘플링이 적용되지 않습니다. 수집된 세션 수에 상대적 샘플링을 적용하려면(백분율로) RUM을 초기화할 때 `sessionSampleRate` 파라미터를 사용하세요. + +다음 예에서는 주어진 RUM 애플리케이션의 모든 세션 중 90%만 수집합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '', + sessionSampleRate: 90, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + site: '', + sessionSampleRate: 90, + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + site: '', + sessionSampleRate: 90, + }); +``` +{% /if %} + +샘플링된 세션의 경우 해당 세션에 대한 모든 페이지 조회 수 및 관련 텔레메트리가 수집되지 않습니다. + +## 사용자 추적 동의 {% #user-tracking-consent %} + +RUM Browser SDK는 GDPR, CCPA 및 유사한 규정을 준수하기 위해 초기화 시 추적 동의 값을 제공하게 해줍니다. 추적 동의에 관한 자세한 내용은 [Data Security][17]를 참조하세요. + +`trackingConsent` 초기화 파라미터는 다음 값 중 하나일 수 있습니다. + +1. `"granted"`(기본값): RUM Browser SDK가 데이터를 수집하기 시작하고 데이터를 Datadog으로 보냅니다. +2. `"not-granted"`: RUM Browser SDK가 데이터를 수집하지 않습니다. + +RUM Browser SDK가 초기화된 이후에 추적 동의 값을 변경하려면 `setTrackingConsent()` API 호출을 사용하세요. RUM Browser SDK는 새 값에 따라 동작을 변경합니다. + +- `"granted"`에서 `"not-granted"`로 변경되면 RUM 세션이 중지되고 데이터가 더 이상 Datadog으로 전송되지 않습니다. +- `"not-granted"`에서 `"granted"`로 변경되면 새 RUM 세션이 생성되고(활성인 이전 세션이 없는 경우), 데이터 수집이 재개됩니다. + +이 상태는 탭 간에 동기화되지 않고, 탐색 간에 지속되지도 않습니다. 사용자에게는 RUM Browser SDK 초기화 중에 또는 `setTrackingConsent()`를 사용하여 사용자 결정을 제공할 책임이 있습니다. + +`setTrackingConsent()`를 `init()` 이전에 사용한 경우, 제공된 값이 초기화 파라미터보다 우선합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + ..., + trackingConsent: 'not-granted' +}); + +acceptCookieBannerButton.addEventListener('click', function() { + datadogRum.setTrackingConsent('granted'); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + trackingConsent: 'not-granted' + }); +}); + +acceptCookieBannerButton.addEventListener('click', () => { + window.DD_RUM.onReady(function() { + window.DD_RUM.setTrackingConsent('granted'); + }); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.init({ + ..., + trackingConsent: 'not-granted' +}); + +acceptCookieBannerButton.addEventListener('click', () => { + window.DD_RUM && window.DD_RUM.setTrackingConsent('granted'); +}); +``` +{% /if %} + +## 조회 컨텍스트 {% #view-context %} + + +[버전 5.28.0][20]부터 조회 이벤트의 컨텍스트를 수정할 수 있습니다. 컨텍스트는 현재 조회에만 추가할 수 있고, 현재 조회의 하위 이벤트(예 `action`, `error`, `timing`)를 `startView`, `setViewContext`, `setViewContextProperty` 함수로 채웁니다. + +### 컨텍스트 포함 조회 시작 {% #start-view-with-context %} + +선택 사항으로, 조회를 시작하면서 [`startView` 옵션](#override-default-rum-view-names)으로 컨텍스트를 정의합니다. + +### 조회 컨텍스트 추가 {% #add-view-context %} + +`setViewContextProperty(key: string, value: any)` API.를 사용하여 RUM 조회 이벤트 및 해당 하위 이벤트의 컨텍스트를 강화하거나 수정합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.setViewContextProperty('', ''); + +// Code example +datadogRum.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContextProperty('', ''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 + }); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setViewContextProperty('', ''); + +// Code example +window.DD_RUM && window.DD_RUM.setViewContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + +### 조회 컨텍스트 교체 {% #replace-view-context %} + +`setViewContext(context: Context)` API를 사용하여 RUM 조회 이벤트 및 해당 하위 이벤트의 컨텍스트를 교체합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.setViewContext({ '': '' }); + +// Code example +datadogRum.setViewContext({ + originalUrl: 'shopist.io/department/chairs', +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContext({ '': '' }); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setViewContext({ + originalUrl: 'shopist.io/department/chairs', + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.setViewContext({ '': '' }); + +// Code example +window.DD_RUM && + window.DD_RUM.setViewContext({ + originalUrl: 'shopist.io/department/chairs', + }); +``` +{% /if %} + +## 오류 컨텍스트 {% #error-context %} + +### dd_context를 사용하여 로컬 오류 컨텍스트 연결 {% #attaching-local-error-context-with-dd-context %} + +오류를 캡처할 때 오류가 생성되는 시점에 추가적인 컨텍스트가 제공될 수 있습니다. `addError()` API를 통해 추가 정보를 전달하지 않고, 오류 인스턴스에 직접 `dd_context` 속성을 연결할 수 있습니다. RUM Browser SDK가 이 속성을 자동으로 감지하여 최종 오류 이벤트 컨텍스트에 병합합니다. + +```javascript +const error = new Error('Something went wrong') +error.dd_context = { component: 'Menu', param: 123, } +throw error +``` + +## 글로벌 컨텍스트 {% #global-context %} + +### 글로벌 컨텍스트 속성 추가 {% #add-global-context-property %} + +RUM이 초기화된 이후 애플리케이션에서 수집된 모든 RUM 이벤트에 추가 컨텍스트를 추가하려면`setGlobalContextProperty(key: string, value: any)` API를 사용합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.setGlobalContextProperty('', ); + +// Code example +datadogRum.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` + +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContextProperty('', ''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 + }); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.setGlobalContextProperty('', ''); + +// Code example +window.DD_RUM && window.DD_RUM.setGlobalContextProperty('activity', { + hasPaid: true, + amount: 23.42 +}); +``` +{% /if %} + +### 글로벌 컨텍스트 속성 제거 {% #remove-global-context-property %} + +이전에 정의된 글로벌 컨텍스트 속성을 제거할 수 있습니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.removeGlobalContextProperty(''); + +// Code example +datadogRum.removeGlobalContextProperty('codeVersion'); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.removeGlobalContextProperty(''); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.removeGlobalContextProperty('codeVersion'); +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.removeGlobalContextProperty(''); + +// Code example +window.DD_RUM && + window.DD_RUM.removeGlobalContextProperty('codeVersion'); +``` +{% /if %} + +### 글로벌 컨텍스트 교체 {% #replace-global-context %} + +모든 RUM 이벤트의 기본 컨텍스트를 `setGlobalContext(context: Context)` API로 교체합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; +datadogRum.setGlobalContext({ '': '' }); + +// Code example +datadogRum.setGlobalContext({ + codeVersion: 34, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContext({ '': '' }); +}) + +// Code example +window.DD_RUM.onReady(function() { + window.DD_RUM.setGlobalContext({ + codeVersion: 34, + }) +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.setGlobalContext({ '': '' }); + +// Code example +window.DD_RUM && + window.DD_RUM.setGlobalContext({ + codeVersion: 34, + }); +``` +{% /if %} + +### 글로벌 컨텍스트 지우기 {% #clear-global-context %} + +`clearGlobalContext`를 사용하여 글로벌 컨텍스트를 지울 수 있습니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +datadogRum.clearGlobalContext(); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.clearGlobalContext(); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.clearGlobalContext(); +``` +{% /if %} + +### 글로벌 컨텍스트 읽기 {% #read-global-context %} + +RUM이 초기화된 이후, 글로벌 컨텍스트를 읽으려면 `getGlobalContext()` API를 사용합니다. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +const context = datadogRum.getGlobalContext(); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + const context = window.DD_RUM.getGlobalContext(); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +const context = window.DD_RUM && window.DD_RUM.getGlobalContext(); +``` +{% /if %} + +## 컨텍스트 수명 주기 {% #contexts-life-cycle %} + +기본적으로 글로벌 컨텍스트 및 사용자 컨텍스트는 현재 페이지 메모리에 저장되는데 이는 다음을 의미합니다. + +- 페이지를 완전히 다시 로드한 이후 유지되지 않음 +- 동일한 세션의 다른 탭이나 창에서 공유되지 않음 + +컨텍스트를 세션의 모든 이벤트에 추가하려면 모든 페이지에 연결해야 합니다. + + +{% if semverIsAtLeast($rum_browser_sdk_version, "4.49.0") %} +버전 4.49.0에서 `storeContextsAcrossPages` 구성 옵션이 도입되어서, 그러한 컨텍스트를 [`localStorage`][18]에 저장할 수 있으므로 다음과 같은 동작이 가능합니다. + +- 전체 다시 로드 이후에도 컨텍스트가 보존됨 +- 동일한 출처에서 열린 여러 탭 간에 컨텍스트가 동기화됨 + +단, 이 기능에는 몇 가지 **제한 사항**이 있습니다. + +- `localStorage`가 사용자 세션보다 수명이 길기 때문에 그러한 컨텍스트에 개인 식별 정보(PII)를 설정하는 것은 권장되지 않음 +- `localStorage` 데이터는 동일한 출처에서만 공유되므로(login.site.com ≠ app.site.com) 이 기능은 `trackSessionAcrossSubdomains` 옵션과 호환되지 않음 +- `localStorage`는 출처별로 5MiB로 제한되므로, 로컬 스토리지에 저장된 애플리케이션별 데이터, Datadog 컨텍스트 및 기타 타사 데이터는 이 한도 이내여야만 문제 발생을 방지할 수 있음 + +{% /if %} + + +## 내부 컨텍스트 {% #internal-context %} + +Datadog 브라우저 RUM SDK가 초기화된 후 SDK에 대한 내부 컨텍스트에 액세스할 수 있습니다. 이렇게 하면 세션 ID 및 애플리케이션 세부 정보와 같이 SDK가 내부적으로 사용하는 코어 식별자와 메타데이터가 제공됩니다. + +다음 속성을 탐색할 수 있습니다. + +| 속성 | 설명 | +| -------------- | ----------------------------------------------------------------- | +| application_id | 애플리케이션의 ID입니다. | +| session_id | 세션의 ID입니다. | +| user_action | 액션 ID를 포함하는 개체입니다(또는, 액션을 찾을 수 없는 경우 undefined). | +| view | 현재 조회 이벤트에 관한 세부 정보를 포함하는 개체입니다. | + +자세한 정보는 [수집된 RUM 브라우저 데이터][2]를 참조하세요. + +### 예시 {% #example %} + +```json +{ + application_id : "xxx", + session_id : "xxx", + user_action: { id: "xxx" }, + view : { + id : "xxx", + referrer : "", + url: "http://localhost:8080/", + name: "homepage" + } +} +``` + +선택 사항으로 `startTime` 파라미터를 사용해 특정 시간의 컨텍스트를 가져올 수 있습니다. 파라미터가 생략된 경우, 현재 컨텍스트가 반환됩니다. + +```typescript +getInternalContext (startTime?: 'number' | undefined) +``` + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum' + +datadogRum.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function () { + window.DD_RUM.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +}) +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && window.DD_RUM.getInternalContext() // { session_id: "xxxx", application_id: "xxxx" ... } +``` +{% /if %} + + +## 마이크로 프론트엔드 {% #micro-frontend %} + +RUM Browser SDK는 `service` 및 `version` 속성을 사용하여 이벤트를 특정 마이크로 프론트엔드에 귀속함으로써 마이크로 프론트엔드 아키텍처를 지원합니다. RUM SDK 인스턴스 한 개가 셸 수준에서 실행됩니다. 이벤트가 `service` 및 `version` 기준으로 세분화되므로 여러 팀이 대시보드를 필터링하고 경보를 설정하고 마이크로 프론트엔드당 성능을 추적할 수 있습니다. + +Datadog은 RUM 이벤트를 마이크로 프론트엔드에 귀속하는 두 가지 방법을 제공합니다. + +1. **자동 어트리뷰션**: 소스 코드 컨텍스트를 주입하는 빌드 플러그인 사용, 수동 스택 트레이스 구문 분석 제거 +2. **수동 어트리뷰션**: `beforeSend` 콜백을 사용하여 스택 트레이스를 구문 분석하고 서비스 정보 추출 + + +### 자동 서비스 및 버전 어트리뷰션 {% #automatic-service-and-version-attribution %} + +이 방식은 빌드 플러그인을 사용하여 번들에 소스 코드 컨텍스트를 주입하며, RUM SDK가 이것을 자동으로 읽어 이벤트를 올바른 `service` 및 `version`으로 강화합니다. + +#### 전제 조건 및 지원되는 설정 {% #prerequisites-and-supported-setups %} + +- **분리된 번들**: 각 마이크로 프론트엔드에 고유한 파일 경로가 있는 자체 번들이 있습니다. 예를 들어 [모듈 페더레이션][21]을 사용합니다. +- **지원되는 bundler**: [Datadog 빌드 플러그인이 지원하는][22] bundler를 사용합니다. +- **Browser SDK**: Browser SDK 버전 v6.30.1 이상이어야 합니다. + +#### 설정 가이드 {% #setup-guide %} + +**1단계 - 각 마이크로 프론트엔드에 대하여 [빌드 플러그인][23] 구성** + +각 마이크로 프론트엔드의 빌드 구성에서 소스 코드 컨텍스트 주입 활성화: + +{% tabs %} +{% tab label="Webpack" %} + +```javascript +const { datadogWebpackPlugin } = require('@datadog/webpack-plugin'); + +module.exports = { + plugins: [ + new datadogWebpackPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="Vite" %} + +```javascript +import { datadogVitePlugin } from '@datadog/vite-plugin'; + +export default { + plugins: [ + datadogVitePlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="esbuild" %} + +```javascript +const { datadogEsbuildPlugin } = require('@datadog/esbuild-plugin'); + +require('esbuild').build({ + plugins: [ + datadogEsbuildPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}); +``` +{% /tab %} + +{% tab label="Rollup" %} + +```javascript +import { datadogRollupPlugin } from '@datadog/rollup-plugin'; + +export default { + plugins: [ + datadogRollupPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} + +{% tab label="Rspack" %} + +```javascript +const { datadogRspackPlugin } = require('@datadog/rspack-plugin'); + +module.exports = { + plugins: [ + new datadogRspackPlugin({ + rum: { + enable: true, + sourceCodeContext: { + service: 'foo-microfrontend', + version: process.env.APP_VERSION || '1.0.0' + } + } + }) + ] +}; +``` +{% /tab %} +{% /tabs %} + +**2단계 - 셸 수준에서 Browser SDK 설정** + +셸 애플리케이션(메인 진입점)에서 [브라우저 모니터링을 설정][4]합니다. Browser SDK가 컨텍스트 맵의 `service` 및 `version`을 사용하여 자동으로 RUM 이벤트를 강화합니다(오류, 사용자 지정 액션, XHR/Fetch 리소스, 긴 작업, 바이탈). + +{% alert level="warning" %} +일치하는 마이크로 프론트엔드가 없는 이벤트는 셸 수준 서비스 및 버전으로 폴백합니다. +{% /alert %} + +**3단계 - [Datadog에서 마이크로 프론트엔드 데이터 탐색](#explore-micro-frontend-data-in-datadog)** + + + +{% if semverIsAtLeast($rum_browser_sdk_version, "5.22") %} + +### 수동 서비스 및 버전 어트리뷰션 {% #manual-service-and-version-attribution %} + +`beforeSend` 속성에서 서비스 및 버전 속성을 재정의할 수 있습니다. 이벤트 출처를 알아보기 쉽도록 `context.handlingStack` 속성을 사용하세요. + +{% if equals($lib_src, "npm") %} + +```javascript +import { datadogRum } from '@datadog/browser-rum'; + +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +datadogRum.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, + }); +}); +``` +{% /if %} + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +const SERVICE_REGEX = /some-pathname\/(?\w+)\/(?\w+)\//; + +window.DD_RUM && window.DD_RUM.init({ + ..., + beforeSend: (event, context) => { + const stack = context?.handlingStack || event?.error?.stack; + const { service, version } = stack?.match(SERVICE_REGEX)?.groups; + + if (service && version) { + event.service = service; + event.version = version; + } + + return true; + }, +}); +``` +{% /if %} + +정규식이 애플리케이션의 파일 경로 구조와 일치해야 합니다. 패턴을 조정하여 번들 URL에서 서비스 및 버전을 추출하세요. RUM Explorer의 모든 쿼리는 서비스 속성을 사용하여 이벤트를 필터링할 수 있습니다. + + +{% /if %} + +### 제한 사항 {% #limitations %} + +#### 출처가 귀속되지 않은 이벤트 {% #events-without-an-attributed-origin %} + +일부 이벤트는 연결된 처리 스택이 없으므로 출처에 귀속될 수 없음: + +- 자동으로 수집된 액션 이벤트 +- XHR 및 Fetch 외의 리소스 이벤트 +- 자동으로 수집된 조회 이벤트 +- CORS 및 CSP 위반 + +#### 마이크로 프론트엔드 간 소스 맵 리졸브 {% #source-map-resolution-across-micro-frontends %} + +스택 트레이스가 마이크로 프론트엔드 여러 개의 프레임을 포함하는 경우, 이벤트는 최상위 프레임(오류가 발생한 곳)에서 `service` 및 `version`을 한 개 수신합니다. 소스 맵은 해당 서비스 아래의 이벤트에 대하여 리졸브되므로 다른 마이크로 프론트엔드의 프레임은 축소된 상태로 유지되며, 이는 해당 소스 맵이 자체 `service` 아래에 올바로 업로드되었더라도 마찬가지입니다. + +어느 마이크로 프론트엔드의 소스 맵을 사용할지 제어하려면 [수동 어트리뷰션](#manual-service-and-version-attribution) 방식을 `beforeSend`로 사용하여 `event.service` 및 `event.version`을 설정하세요. 선택한 마이크로 프론트엔드에 속하는 프레임만 축소 해제됩니다. + +### Datadog에서 마이크로 프론트엔드 데이터 탐색 {% #explore-micro-frontend-data-in-datadog %} + +설정한 이후, RUM 이벤트의 `service` 및 `version`을 보면 각 이벤트를 어느 마이크로 프론트엔드가 생성했는지 알 수 있습니다. 이러한 속성을 Datadog의 여러 장소에서 사용합니다. + +- **사이드 패널**: `service` 및 `version` 속성이 RUM Explorer의 세션, 조회, 오류, 리소스, 액션 및 긴 작업 사이드 패널에 표시됩니다. +- **RUM 요약 대시보드**: `service` 및 `version`을 사용하여 RUM 요약 대시보드를 필터링해 성능 메트릭의 범위를 특정 마이크로 프론트엔드로 지정합니다. +- **사용자 지정 대시보드**: `service` 및 `version`을 사용하여 대시보드를 생성해 각 마이크로 프론트엔드를 독립적으로 모니터링합니다. + +각 마이크로 프론트엔드를 나타내는 `service` 및 `version` 태그는 다음 [RUM without Limits][24] 메트릭에서도 찾을 수 있습니다. + +- `rum.measure.error` +- `rum.measure.operation` +- `rum.measure.operation.duration` + +[1]: /ko/real_user_monitoring/application_monitoring/browser/data_collected/ +[2]: /ko/real_user_monitoring/application_monitoring/browser/monitoring_page_performance/ +[3]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v2170 +[4]: /ko/real_user_monitoring/application_monitoring/browser/setup/ +[5]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v2130 +[6]: https://developer.mozilla.org/en-US/docs/Web/API/Location +[7]: https://developer.mozilla.org/en-US/docs/Web/API/Event +[8]: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest +[9]: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming +[10]: https://developer.mozilla.org/en-US/docs/Web/API/Request +[11]: https://developer.mozilla.org/en-US/docs/Web/API/Response +[12]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error +[13]: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming +[14]: /ko/real_user_monitoring/guide/enrich-and-control-rum-data +[15]: https://github.com/DataDog/browser-sdk/blob/main/packages/rum-core/src/rumEvent.types.ts +[16]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v4130 +[17]: /ko/data_security/real_user_monitoring/#browser-rum-use-of-cookies +[18]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage +[19]: https://github.com/DataDog/browser-sdk/blob/main/CHANGELOG.md#v5280 +[20]: /ko/real_user_monitoring/application_monitoring/browser/advanced_configuration#override-default-rum-view-names +[21]: https://module-federation.io/ +[22]: https://github.com/DataDog/build-plugins?tab=readme-ov-file#usage +[23]: https://github.com/DataDog/build-plugins +[24]: /ko/real_user_monitoring/rum_without_limits/ \ No newline at end of file diff --git a/content/ko/real_user_monitoring/guide/proxy-rum-data.mdoc.md b/content/ko/real_user_monitoring/guide/proxy-rum-data.mdoc.md new file mode 100644 index 00000000000..7982e8af9e0 --- /dev/null +++ b/content/ko/real_user_monitoring/guide/proxy-rum-data.mdoc.md @@ -0,0 +1,233 @@ +--- +aliases: +- /ko/real_user_monitoring/faq/proxy_rum_data/ +content_filters: +- label: SDK source + option_group_id: rum_browser_sdk_source_options + trait_id: lib_src +- option_group_id: rum_browser_sdk_version_for_proxying_options + trait_id: rum_browser_sdk_version +description: 사용자 지정 네트워크 라우팅을 위해 SDK 소스 옵션 및 버전별 설정을 사용해 브라우저 RUM 데이터 프록시를 구성합니다. +further_reading: +- link: /real_user_monitoring/ + tag: 설명서 + text: Real User Monitoring에 대해 알아보기 +title: 브라우저 RUM 데이터 프록시 +--- +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +{% alert level="danger" %} +프록시 구성의 보안 취약성을 피하려면 브라우저 SDK `4.34.0` 이후 버전으로 업그레이드하세요. +{% /alert %} +{% /if %} + +## 개요 {% #overview %} + +프록시를 통해 요청을 보내도록 RUM 브라우저 SDK를 구성할 수 있습니다. SDK의 `proxy` [초기화 파라미터][1]를 `https://www.example-proxy.com/any-endpoint`와 같은 URL로 설정하면 모든 RUM 데이터가 POST 메서드를 사용해 해당 URL로 전송됩니다. 그래도 RUM 데이터를 프록시에서 Datadog으로 전달해야 하기는 마찬가지입니다. + +## 프록시 설정 전제 조건 {% #prerequisite-proxy-setup %} + +Datadog에 요청을 전달하려면 프록시가 충족해야 하는 조건 + +1. [Datadog 인테이크 URL을 구축합니다](#build-the-datadog-intake-url). +2. 정확한 geoIP에 해당하는 클라이언트 IP 주소를 포함한 `X-Forwarded-For` 헤더를 추가합니다. +3. POST 메서드를 사용하여 요청을 Datadog 인테이크 URL로 전달합니다. +4. 요청 본문은 변경하지 말고 그대로 둡니다. + +{% alert level="warning" %} +- 보안상의 이유로, `cookie` 헤더와 같은 민감한 정보를 포함할 가능성이 있는 HTTP 헤더는 모두 제거합니다. +- 요청 본문은 바이너리 데이터를 포함할 수 있으며 문자열로 변환하면 안 됩니다. 프록시 구현이 변환 없이 원시 본문을 전달해야 합니다. +- 프록시 구현이 악성 행위자가 요청을 다른 서버로 보내지 못하도록 해야 합니다. 예: `https://browser-intake-datadoghq.com.malicious.com`. +{% /alert %} + +### Datadog 인테이크 URL 구축 {% #build-the-datadog-intake-url %} + +Datadog 인테이크 URL의 형식은 `/`여야 합니다(예: `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser&...`). + +{% table %} +--- +* 인테이크 출처 +* + Datadog 인테이크 출처는 `site` [초기화 파라미터][1]에 해당합니다. 프록시 구현에 사이트 파라미터에 해당하는 Datadog 인테이크 출처를 정의해야 합니다. + + {% site-region region="us" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.com`. + {% /site-region %} + + {% site-region region="us3" %} + The intake origin for your Datadog site is `https://browser-intake-us3-datadoghq.com`. + {% /site-region %} + + {% site-region region="us5" %} + The intake origin for your Datadog site is `https://browser-intake-us5-datadoghq.com`. + {% /site-region %} + + {% site-region region="eu" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.eu`. + {% /site-region %} + + {% site-region region="ap1" %} + The intake origin for your Datadog site is `https://browser-intake-ap1-datadoghq.com`. + {% /site-region %} + + {% site-region region="ap2" %} + The intake origin for your Datadog site is `https://browser-intake-ap2-datadoghq.com`. + {% /site-region %} + + {% site-region region="gov" %} + The intake origin for your Datadog site is `https://browser-intake-ddog-gov.com`. + {% /site-region %} + + {% site-region region="gov2" %} + The intake origin for your Datadog site is `https://browser-intake-us2-ddog-gov.com`. + {% /site-region %} +--- +* 경로 +* + 경로는 API 버전 및 제품을 포함합니다(예를 들어 RUM 데이터인 경우 `/api/v2/rum`, 세션 리플레이 데이터인 경우 `/api/v2/replay`). + + The path for each request can be accessed in the request's `ddforward` parameter (for example, `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`). +--- +* 파라미터 +* + 요청의 `ddforward` 파라미터(예: `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`)에서 요청 파라미터(예: `ddsource=browser&...`)에 액세스할 수 있습니다. + +{% /table %} + +## SDK 설정 {% #sdk-setup %} + + +{% if includes($rum_browser_sdk_version, ["gte_5_4_0", "gte_4_34_0"]) %} + +`proxy` 초기화 파라미터에서 프록시의 URL 구성: + + +{% if equals($lib_src, "npm") %} + +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: '', +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '', + }); +}); +``` + +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '' + }); +``` +{% /if %} + + +RUM 브라우저 SDK가 프록시에 대한 모든 요청에 `ddforward` 쿼리 파라미터를 추가합니다. 이 쿼리 파라미터는 URL 경로와 모든 데이터를 전달받아야 하는 파라미터를 포함합니다. + +예를 들어 `site`가 `datadoghq.eu`로 설정되고 `proxy`가 `https://example.org/datadog-intake-proxy`로 설정된 경우, RUM 브라우저 SDK는 `https://example.org/datadog-intake-proxy?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`와 같은 URL로 요청을 보냅니다. 프록시는 해당 요청을 `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser`로 전달합니다. + + +{% if equals($rum_browser_sdk_version, "gte_5_4_0") %} +### 함수를 `proxy` 초기화 파라미터 {% #passing-a-function-to-the-proxy-initialization-parameter %}에 전달 + +`proxy` 초기화 파라미터는 함수 입력도 지원합니다. 이 함수를 사용하면 프록시 URL에 경로와 파라미터를 추가하는 방식을 사용자가 더 주도적으로 제어할 수 있습니다. + +이 함수는 다음과 같은 속성을 포함한 개체를 수신합니다. + +- `path`: Datadog 요청에 사용할 경로(예: `/api/v2/rum`) +- `parameters`:Datadog 요청의 파라미터(예: `ddsource=browser&...`) + + +{% if equals($lib_src, "npm") %} + +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} + +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, + }) +}) +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} + +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}` + }); +``` +{% /if %} + + +**참고:** +- 일부 개인정보 보호 차단기는 이미 인테이크 [URL 패턴][2]을 대상으로 지정하므로, 프록시 URL을 구축할 때 이 점을 고려하는 것이 좋습니다. +- 각 요청에 대하여 `proxy` 함수를 호출하므로, 복잡한 계산을 피해야 합니다. +- **JSP 웹 애플리케이션**이 `\` 이스케이프 문자를 사용해야 이러한 파라미터를 브라우저에 적절하게 전파할 수 있습니다. 예: + ```javascript + proxy: (options) => 'http://proxyURL:proxyPort\${options.path}?\${options.parameters}', + ``` +{% /if %} + + +{% /if %} + + + +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +브라우저 SDK v4.34.0 전에는 `proxyUrl` 초기화 파라미터가 사용되었으며, Datadog 인테이크 출처는 `ddforward` 속성에 포함되었습니다. 이 호스트를 검증할 책임은 프록시 구현이 담당했으며, 검증이 실패하면 다양한 취약성이 발생했습니다. + +Datadog 인테이크 출처를 프록시 구현에서 정의해야 보안이 보장됩니다. + +**보안 취약성을 피하려면 브라우저 SDK `4.34.0` 이후 버전으로 업그레이드해야 합니다.** +{% /if %} + + +[1]: /ko/real_user_monitoring/application_monitoring/browser/setup/client/?tab=rum#initialization-parameters +[2]: https://github.com/easylist/easylist/blob/997fb6533c719a015c21723b34e0cedefcc0d83d/easyprivacy/easyprivacy_general.txt#L3840 \ No newline at end of file diff --git a/content/ko/tracing/trace_collection/single-step-apm/kubernetes.md b/content/ko/tracing/trace_collection/single-step-apm/kubernetes.md new file mode 100644 index 00000000000..48fc44421be --- /dev/null +++ b/content/ko/tracing/trace_collection/single-step-apm/kubernetes.md @@ -0,0 +1,896 @@ +--- +aliases: +- /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/kubernetes +code_lang: kubernetes +code_lang_weight: 20 +further_reading: +- link: /tracing/metrics/runtime_metrics/ + tag: 설명서 + text: 런타임 메트릭 활성화 +- link: /tracing/guide/init_resource_calc/ + tag: 설명서 + text: init 컨테이너 리소스 사용량에 관해 알아보기 +- link: /tracing/guide/local_sdk_injection + tag: 설명서 + text: 로컬 SDK 주입을 사용한 애플리케이션 계측 +- link: https://learn.datadoghq.com/courses/configuring-ssi-k8s + tag: 학습 센터 + text: Kubernetes에서 Single Step Instrumentation 구성 +title: Kubernetes에서 Single Step APM Instrumentation 사용 +type: multi-code-lang +--- +## 개요 {#overview} + +Kubernetes 환경에서는 APM에 Single Step Instrumentation(SSI)을 사용하여 Datadog Agent를 설치하고 Datadog SDK를 사용해 애플리케이션을 한 단계 만에 [계측][3]하세요. + +## 요구 사항 {#requirements} + +- Kubernetes v1.20+. +- Datadog Operator 배포를 위한 [`Helm`][1]. +- Datadog Agent 설치를 위한 [`Kubectl` CLI][2]. +- [Single Step Instrumentation 호환성 가이드][36]에 따라 확인된 환경 호환성. + + +## 애플리케이션에서 APM 활성화 {#enable-apm-on-your-applications} + +
    Single Step Instrumentation은 Datadog Agent가 설치된 네임스페이스의 애플리케이션을 계측하지 않습니다. Agent를 애플리케이션을 실행하지 않는 별도의 네임스페이스에 설치하세요.
    + +클러스터 전체에서 Single Step Instrumentation을 활성화하려면 다음 단계를 따르세요. 이렇게 하면 지원되는 언어로 작성된 모든 애플리케이션에서 자동으로 트레이스를 전송합니다. + +**참고:** 특정 네임스페이스 또는 포드만 계측하려면 [고급 옵션](#advanced-options)의 워크로드 대상 지정을 참조하세요. + +1. Datadog에서 [Kubernetes에 Datadog Agent 설치][11] 페이지로 이동합니다. +1. 화면의 지침에 따라 설치 방법을 선택하고, API 키를 선택하고 Operator 또는 Helm 리포지토리를 설정합니다. +1. **구성 `datadog-agent.yaml`** 섹션에서 **추가 구성** > **Application Observability**로 이동하여 **APM Instrumentation**을 켭니다. + + {{< img src="tracing/trace_collection/k8s-apm-instrumentation-toggle.jpg" alt="Datadog 앱을 통해 Kubernetes에 Datadog Agent를 설치하기 위한 구성 블록" style="width:100%;" >}} + +1. 생성된 구성 파일을 사용하여 Agent를 배포합니다. +1. 애플리케이션을 재시작하세요. + +
    SSI는 계측된 애플리케이션에 약간의 시작 시간을 추가합니다. 사용 사례에서 이 오버헤드를 수용할 수 없는 경우, Datadog 지원팀에 문의하세요.
    + +## Unified Service Tags 구성 {#configure-unified-service-tags} + +Unified Service Tags(UST)는 트레이스, 메트릭, 로그에 일관된 태그를 적용해 탐색 및 관측 가능성 데이터 상호 연계가 간편합니다. UST는 자동 레이블 추출(권장)을 통해 구성할 수도 있고, `ddTraceConfigs`를 사용한 명시적 구성을 통하거나 배포 매니페스트에서 구성할 수도 있습니다. + +
    +Remote Configuration을 사용하는 경우, 자동 레이블 추출이 호환되지 않습니다. 다음을 사용해 명시적으로 UST를 구성해야 합니다. ddTraceConfigs. +
    + +### (권장) 자동 레이블 추출을 통해 UST 구성 {#recommended-configure-usts-through-automatic-label-extraction} + +SSI를 사용하면 개별 배포를 수정하지 않고 자동으로 포드 레이블 및 메타데이터에서 UST 값을 추출할 수 있습니다. 이렇게 하려면 `kubernetesResourcesLabelsAsTags`가 기존 Kubernetes 레이블을 Datadog 서비스 태그로 매핑하도록 구성하세요. + +**참고:** 이 방법은 Remote Configuration과 호환되지 않습니다. Remote Configuration을 사용하는 경우, [ddTraceConfigs를 사용하여 명시적으로 UST 구성](#configure-usts-explicitly-with-ddtraceconfigs)을 참조하세요. + +#### 전제 조건 {#prerequisites} + +| 구성 요소| 최소 버전 | +|-----------|------------------| +| `datadog-agent` | 7.69 | +| `datadog-operator` | 1.16.0 | +| `datadog-helm-chart` | 3.120.0 | + +#### 구성 {#configuration} + +다음 예시의 `app.kubernetes.io/name`를 서비스 이름이 포함된 레이블로 교체하세요(예: `service.kubernetes.io/name` 또는 `component`). 이렇게 하면 레이블 여러 개를 구성할 수 있습니다. + +```yaml +datadog: + # Automatically extract service names from Kubernetes labels + kubernetesResourcesLabelsAsTags: + pods: + app.kubernetes.io/name: service # Modern Kubernetes label + deployments.apps: + app.kubernetes.io/name: service + replicasets.apps: + app.kubernetes.io/name: service + + # Set environment globally for the entire cluster + tags: + - "env:production" + + apm: + instrumentation: + enabled: true +``` + +이 구성을 사용하면 Datadog이 이 레이블을 포함하는 모든 계측된 워크로드의 `app.kubernetes.io/name` 레이블 값을 사용하여 `service` 태그를 자동으로 설정합니다. + +### ddTraceConfigs를 사용하여 명시적으로 UST 구성 {#configure-usts-explicitly-with-ddtraceconfigs} + +대부분의 경우, 자동 구성으로 충분합니다. 하지만 특정 워크로드에 대한 세분화된 제어가 필요한 경우, `ddTraceConfigs`를 사용하여 명시적으로 레이블을 서비스 구성에 매핑하세요. + +```yaml +datadog: + kubernetesResourcesLabelsAsTags: + pods: + app.kubernetes.io/name: service + deployments.apps: + app.kubernetes.io/name: service + + # Set environment globally for the entire cluster + tags: + - "env:production" + + apm: + instrumentation: + enabled: true + targets: + - name: frontend-services + podSelector: + matchLabels: + tier: frontend + ddTraceConfigs: + - name: DD_SERVICE # Explicitly override service name + valueFrom: + fieldRef: + fieldPath: metadata.labels['app.kubernetes.io/name'] + # DD_ENV inherited from cluster-level tags above + # DD_VERSION automatically extracted from image tags +``` + + +### 배포 매니페스트에서 UST 구성 {#configure-usts-in-deployment-manifests} + +설정에서 UST 추출에 적합한 레이블을 사용하지 않는 경우, 환경 변수를 사용해 배포 매니페스트에서 직접 UST를 설정할 수 있습니다. 이 방식으로 접근하려면 각 배포를 개별적으로 수정해야 하지만, 정밀한 제어가 가능합니다. + +지침 전문은 [Kubernetes 서비스에 UST 설정][5]을 참조하세요. + +## SDK 종속적 제품 및 기능 활성화 {#enable-sdk-dependent-products-and-features} + +SSI가 애플리케이션에 Datadog SDK를 로드하고 분산 트레이싱을 활성화하고 나면 SDK에 의존하는 추가적인 제품을 구성할 수 있습니다. + +{{< ssi-products >}} + +다음 설정 방법 중 한 가지를 사용하세요. + +- **[워크로드 대상 지정을 사용하여 구성(권장)](#target-specific-workloads)**: + + 기본적으로 Single Step Instrumentation은 모든 네임스페이스의 모든 서비스를 계측합니다. 워크로드 대상 지정을 사용하여 계측을 특정 네임스페이스, 포드 또는 워크로드로만 제한하고 사용자 지정 구성을 적용하세요. + +- **[환경 변수 설정][7]**: + + 애플리케이션 구성에서 직접 환경 변수를 설정하여 제품을 활성화합니다. + +## 고급 옵션{#advanced-options} + +다음 고급 옵션을 사용하여 Single Step Instrumentation이 환경에서 어떻게 동작할지 사용자 지정할 수 있습니다. 이러한 설정은 선택 사항이며 일반적으로 특수 설정에서만 필요합니다. + +### 주입 모드 구성 {#configure-injection-modes} + +SSI는 여러 가지 주입 모드를 지원합니다. 주입 모드는 인젝터와 APM 라이브러리 파일이 애플리케이션 컨테이너에 전송되는 방식을 제어합니다. 일반적으로 이 설정을 수동으로 구성할 필요가 없습니다. 포드 시작이 많이 지연되는 것이 눈에 띄거나, 포드 초기화 중에 리소스 사용량이(CPU, 메모리) 예상보다 많은 경우 이 설정을 조정하는 것을 고려해 보세요. 인젝터의 작동 원리에 관한 자세한 내용은 [Single Step Instrumentation 사용 시 인젝터 동작][41]을 참조하세요. + + +| 모드 | 설명 | 요구 사항 | +|------|-------------|--------------| +| `init_container` | init 컨테이너를 사용하여 인젝터 및 APM 라이브러리 파일을 애플리케이션 컨테이너로 복사합니다. | Helm Chart 또는 Datadog Operator로 배포된 Agent | +| `csi` | **미리 보기 상태입니다.** [Datadog CSI 드라이버][37]를 사용하여 인젝터 또는 APM 라이브러리 파일을 마운팅합니다. init 컨테이너 모드보다 포드 시작 시간이 단축됩니다. | Agent 7.76.0+, CSI driver 1.2.0+, Helm Chart 3.178.1+ 또는 Datadog Operator 1.25.0+ | + +`csi` 모드를 사용하기 전에 Datadog CSI 드라이버를 설치하고 활성화하세요. Helm을 사용하여 배포하는 경우, `datadog-values.yaml`에서 `datadog.csi.enabled: true`도 설정하세요. 설치 단계 및 GKE Autopilot과 같은 환경별 요구 사항은 [CSI 드라이버 설명서][37]를 참조하세요. + +#### 전역적으로 주입 모드 구성 {#configure-injection-mode-globally} + +{{< tabs >}} +{{% tab "Helm" %}} + +클러스터 전체에 주입 모드를 설정하려면 `datadog-values.yaml`에 `injectionMode` 추가: + +```yaml +datadog: + apm: + instrumentation: + injectionMode: +``` + +지원되는 값: `init_container`, `csi`. + +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +클러스터 전체에 주입 모드를 설정하려면 `datadog-agent.yaml`에 `injectionMode` 추가: + +```yaml +features: + apm: + instrumentation: + injectionMode: +``` + +지원되는 값: `init_container`, `csi`. + +Datadog Operator 1.25.0 이전 버전을 사용하는 경우, [포드 어노테이션](#configure-injection-mode-per-pod)을 사용하여 특정 포드의 주입 모드를 재정의합니다. + +{{% /tab %}} +{{< /tabs >}} + +#### 포드당 주입 모드 구성 {#configure-injection-mode-per-pod} + +특정 포드의 주입 모드를 재정의하려면 포드 사양에 다음 어노테이션 추가: + +```yaml +metadata: + annotations: + admission.datadoghq.com/apm-inject.injection-mode: "" +``` + +지원되는 값: `init_container`, `csi`. + +### 특정 워크로드 대상 {#target-specific-workloads} + +기본적으로 SSI는 클러스터의 모든 네임스페이스에 속한 모든 서비스를 계측합니다. Agent 버전에 따라 다음 구성 방법 중 하나를 사용하여 어느 서비스가 어떻게 계측될지 미세 조정하세요. + +{{< tabs >}} + +{{% tab "Agent v7.64+(권장)" %}} + +`targets` 레이블을 사용하여 대상 지정 블록을 생성해 어느 워크로드를 계측하고 어느 구성을 적용할지 지정합니다. + +각 대상 블록에 다음 키가 있습니다. + +| 키 | 설명 | +|------------------|-------------| +| `name` | 대상 블록의 이름입니다. 이것은 모니터링 상태에는 아무런 영향을 미치지 않고 메타데이터로만 사용됩니다. | +| `namespaceSelector` | 계측할 네임스페이스입니다. 다음 중 하나 이상을 사용하여 지정:
    - `matchNames`: 하나 이상의 네임스페이스 이름 목록.
    - `matchLabels`: `{key,value}` 쌍에서 정의된 하나 이상의 레이블 목록.
    - `matchExpressions`:네임스페이스 선택기 요구 사항 목록.

    네임스페이스가 일치하려면 모든 기준을 충족해야 합니다. 자세한 내용은 [Kubernetes 선택기 설명서][10]를 참조하세요.| +| `podSelector` | 계측할 포드입니다. 다음 중 하나 이상을 사용하여 지정:
    - `matchLabels`: `{key,value}` 쌍에서 정의된 하나 이상의 레이블 목록.
    - `matchExpressions`: 포드 선택기 요구 사항 목록.

    포드가 일치하려면 모든 기준을 충족해야 합니다. 자세한 내용은 [Kubernetes 선택기 설명서][10]를 참조하세요. | +| `ddTraceVersions` | 각 언어에 사용할 [Datadog APM SDK][9] 버전입니다. | +| `ddTraceConfigs` | [Unified Service Tags][8] 설정, 트레이싱 외 [SDK 종속적 제품](#enable-sdk-dependent-products-and-features) 활성화, 기타 [APM 설정][14] 사용자 지정을 지원하는 APK SDK 구성입니다. | + +구성해야 하는 파일은 Single Step Instrumentation을 활성화한 방식에 따라 다름: +- SSI를 Datadog Operator로 활성화한 경우, `datadog-agent.yaml`을 편집합니다.. +- SSI를 Helm으로 활성화한 경우, `datadog-values.yaml`을 편집합니다. + +**참고**: 대상은 순서대로 평가되며, 첫 번째 일치 항목이 우선합니다. + +#### 구성 예시{#example-configurations} + +특정 서비스를 선택하는 방법에 관한 다음 예시 참조: + +{{< collapse-content title="예 1: 하나만 빼고 모든 네임스페이스 활성화" level="h4" >}} + +이 구성: +- 사용 시 `jenkins` 네임스페이스를 제외한 모든 네임스페이스에 대하여 APM을 활성화합니다. + - **참고**: 목록에 나열된 것을 제외하고 모든 네임스페이스에 대하여 비활성화하려면 `enabledNamespaces`를 사용하세요. +- Datadog에 Java 애플리케이션은 기본 Java SDK로, Python 애플리케이션은 Python SDK의 `v.3.1.0`를 사용하여 계측하도록 지시합니다. + +{{< highlight yaml "hl_lines=4-10" >}} + apm: + instrumentation: + enabled: true + disabledNamespaces: + - "jenkins" + targets: + - name: "all-remaining-services" + ddTraceVersions: + java: "default" + python: "3.1.0" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="예 2: 이름 및 레이블이 일치하는 네임스페이스의 부분 집합을 계측" level="h4" >}} + +이 구성을 사용하면 대상 블록을 두 개 생성합니다. + +- 첫 번째 블록(이름 `login-service_namespace`): + - 네임스페이스 `login-service`의 서비스에 대하여 APM을 활성화합니다. + - Datadog에 이 네임스페이스의 서비스를 Java SDK 기본 버전으로 계측하도록 지시합니다. + - 이 대상 그룹에 대하여 환경 변수 `DD_PROFILING_ENABLED` 설정 +- 두 번째 블록(이름 `billing-service_apps`) + - 레이블 `app:billing-service`가 있는 네임스페이스의 서비스에 대하여 APM을 활성화합니다. + - Datadog에 이 서비스 세트를 Python SDK `v3.1.0`로 계측하도록 지시합니다. + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "login-service_namespace" + namespaceSelector: + matchNames: + - "login-service" + ddTraceVersions: + java: "default" + ddTraceConfigs: + - name: "DD_PROFILING_ENABLED" ## profiling is enabled for all services in this namespace + value: "auto" + - name: "billing-service_apps" + namespaceSelector: + matchLabels: + app: "billing-service" + ddTraceVersions: + python: "3.1.0" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="예 3: 다양한 워크로드를 다양한 트레이서로 계측" level="h4" >}} + +이 구성이 하는 일은 다음과 같습니다. +- 다음 레이블이 있는 포드에 대하여 APM 활성화: + - `app:db-user`, 이 레이블은 `db-user` 애플리케이션을 실행하는 포드를 나타냅니다. + - `webserver:routing`, 이 레이블은 `request-router` 애플리케이션을 실행하는 포드를 나타냅니다. +- Datadog에 Datadog Tracer SDK 기본 버전을 사용하도록 지시합니다. +- 각 대상 그룹에 적용할 Datadog 환경 변수를 설정하고 SDK를 구성합니다. + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "db-user" + podSelector: + matchLabels: + app: "db-user" + ddTraceVersions: + java: "default" + ddTraceConfigs: ## trace configs set for services in matching pods + - name: "DD_DATA_STREAMS_ENABLED" + value: "true" + - name: "user-request-router" + podSelector: + matchLabels: + webserver: "user" + ddTraceVersions: + php: "default" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="예 4: 네임스페이스 내 포드 계측" level="h4" >}} + +이 구성: +- 사용 시 `login-service` 네임스페이스 안에 있고, `app:password-resolver` 레이블이 지정된 포드에 대하여 APM을 활성화합니다. +- Datadog에 Datadog Java Tracer SDK 기본 버전을 사용하도록 지시합니다. +- 이 대상에 적용할 Datadog 환경 변수를 설정합니다. + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "login-service-namespace" + namespaceSelector: + matchNames: + - "login-service" + podSelector: + matchLabels: + app: "password-resolver" + ddTraceVersions: + java: "default" + ddTraceConfigs: + - name: "DD_PROFILING_ENABLED" + value: "auto" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="예 5: 다음을 사용하여 포드의 부분 집합 계측 matchExpressions" level="h4" >}} + +이 구성을 사용하면 레이블 `app=app1` 또는 `app=app2`가 있는 포드만 제외하고 모든 포드에 대하여 APM을 활성화합니다. + +{{< highlight yaml "hl_lines=4-28" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "default-target" + podSelector: + matchExpressions: + - key: app + operator: NotIn + values: + - app1 + - app2 +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="예 6: 다음을 사용하여 추가적인 제품 활성화 ddTraceConfigs" level="h4" >}} + +이 구성을 사용하면 `web-apps` 네임스페이스의 서비스에 대하여 [App and API Protection(AAP)][12] 및 [Continuous Profiler][11]를 활성화하고, `ddTraceConfigs`를 사용해 필수 환경 변수를 설정합니다. + +{{< highlight yaml "hl_lines=4-20" >}} + apm: + instrumentation: + enabled: true + targets: + - name: "web-apps-with-security" + namespaceSelector: + matchNames: + - "web-apps" + ddTraceVersions: + java: "default" + python: "default" + ddTraceConfigs: + - name: "DD_APPSEC_ENABLED" + value: "true" + - name: "DD_PROFILING_ENABLED" + value: "auto" +{{< /highlight >}} + +SSI를 통해 활성화할 수 있는 제품 전체 목록은 [SDK 종속적 제품 및 기능 활성화](#enable-sdk-dependent-products-and-features)를 참조하세요. + +{{< /collapse-content >}} + +[8]: /ko/getting_started/tagging/unified_service_tagging/?tab=kubernetes +[9]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility/#tracer-libraries +[10]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements +[11]: /ko/profiler/ +[12]: /ko/security/application_security/ +[14]: /ko/tracing/trace_collection/library_config/ + +{{% /tab %}} + +{{% tab "Agent <=v7.63(레거시)" %}} + +#### 네임스페이스의 계측 활성화 또는 비활성화 {#enable-or-disable-instrumentation-for-namespaces} + +특정 네임스페이스에서 애플리케이션의 계측을 활성화 또는 비활성화할 수 있습니다. enabledNamespaces 또는 disabledNamespaces 중 하나만 설정할 수 있고, 둘 다는 안 됩니다. + +구성해야 하는 파일은 Single Step Instrumentation을 Datadog Operator 또는 Helm 중 무엇으로 활성화했는지에 따라 다릅니다. + +{{< collapse-content title="Datadog Operator" level="h5" >}} + +특정 네임스페이스의 계측을 활성화하려면 `datadog-agent.yaml`에 `enabledNamespaces` 구성 추가: + +{{< highlight yaml "hl_lines=5-7" >}} + features: + apm: + instrumentation: + enabled: true + enabledNamespaces: # Add namespaces to instrument + - default + - applications +{{< /highlight >}} + +특정 네임스페이스의 계측을 비활성화하려면 `datadog-agent.yaml`에 `disabledNamespaces` 구성 추가: + +{{< highlight yaml "hl_lines=5-7" >}} + features: + apm: + instrumentation: + enabled: true + disabledNamespaces: # Add namespaces to not instrument + - default + - applications +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="Helm" level="h5" >}} + +특정 네임스페이스의 계측을 활성화하려면 `datadog-values.yaml`에 `enabledNamespaces` 구성 추가: + +{{< highlight yaml "hl_lines=5-7" >}} + datadog: + apm: + instrumentation: + enabled: true + enabledNamespaces: # Add namespaces to instrument + - namespace_1 + - namespace_2 +{{< /highlight >}} + +특정 네임스페이스의 계측을 비활성화하려면 `datadog-values.yaml`에 `disabledNamespaces` 구성 추가: + +{{< highlight yaml "hl_lines=5-7" >}} + datadog: + apm: + instrumentation: + enabled: true + disabledNamespaces: # Add namespaces to not instrument + - namespace_1 + - namespace_2 +{{< /highlight >}} + +{{< /collapse-content >}} + +#### SDK 버전 지정 {#specify-sdk-versions} + +
    Datadog Cluster Agent v7.52.0+부터 사용자가 지정하는 SDK에 따라 애플리케이션의 부분 집합을 자동으로 계측할 수 있습니다.
    + +Datadog SDK와 그 버전을 지정하면 해당 언어로 작성된 애플리케이션이 자동으로 계측됩니다. 이것은 두 가지 방식으로 구성할 수 있으며, 다음과 같은 우선순위 순서대로 적용됩니다. + +1. [서비스 수준에서 지정](#specify-at-the-service-level) 또는 +2. [클러스터 수준에서 지정](#specify-at-the-cluster-level). + +**기본값**: 라이브러리 버전을 지정하지 않으면, 지원되는 언어로 작성된 애플리케이션이 최신 SDK 버전을 사용하여 자동으로 계측됩니다. + +##### 서비스 수준에서 지정 {#specify-at-the-service-level} + +특정 포드의 애플리케이션을 자동으로 계측하려면 포드 사양의 애플리케이션에 적절한 언어 어노테이션 및 라이브러리 버전 추가: + +| 언어 | 포드 어노테이션 | +|------------|-----------------------------------------------------------------------| +| Java | `admission.datadoghq.com/java-lib.version: ""` | +| Node.js | `admission.datadoghq.com/js-lib.version: ""` | +| Python | `admission.datadoghq.com/python-lib.version: ""` | +| .NET | `admission.datadoghq.com/dotnet-lib.version: ""` | +| Ruby | `admission.datadoghq.com/ruby-lib.version: ""` | +| PHP | `admission.datadoghq.com/php-lib.version: ""` | + +``를 원하는 라이브러리 버전으로 교체하세요. 사용 가능한 버전은 [Datadog 컨테이너 레지스트리](#change-the-default-image-registry) 및 각 언어의 트레이서 소스 리포지토리에 목록으로 나열되어 있습니다. + +- [Java][34] +- [Node.js][35] +- [Python][36] +- [.NET][37] +- [Ruby][38] +- [PHP][39] + +메이저 라이브러리 릴리스로 인해 이전 버전과 호환되지 않는 변경 사항이 도입될 수 있으므로
    latest 태그를 사용할 때는 주의해야 합니다.
    + +예를 들어 Java 애플리케이션을 자동으로 계측하려면: + +{{< highlight yaml "hl_lines=10" >}} +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + # ... +spec: + template: + metadata: + annotations: + admission.datadoghq.com/java-lib.version: "" + spec: + containers: + - # ... +{{< /highlight >}} + +##### 클러스터 수준에서 지정 {#specify-at-the-cluster-level} + +어노테이션을 사용해 특정 포드의 자동 계측을 활성화하지 않은 경우, SSI 구성을 사용해 클러스터 전체를 어느 언어로 계측할지 지정할 수 있습니다. `apm.instrumentation.libVersions`가 설정된 경우, 지정된 언어로 작성된 애플리케이션만 지정된 라이브러리 버전을 사용하여 계측됩니다. + +구성해야 하는 파일은 Single Step Instrumentation을 Datadog Operator 또는 Helm 중 무엇으로 활성화했는지에 따라 다릅니다. + +{{< collapse-content title="Datadog Operator" level="h5" >}} + +예를 들어 .NET, Python, Node.js 애플리케이션을 계측하려면 `datadog-agent.yaml` 파일에 다음 구성 파일 추가: + +{{< highlight yaml "hl_lines=5-8" >}} + features: + apm: + instrumentation: + enabled: true + libVersions: # Add any libraries and versions you want to set + dotnet: "x.x.x" + python: "x.x.x" + js: "x.x.x" +{{< /highlight >}} + +{{< /collapse-content >}} + +{{< collapse-content title="Helm" level="h5" >}} + +예를 들어 .NET, Python, Node.js 애플리케이션을 계측하려면 `datadog-values.yaml` 파일에 다음 구성 파일 추가: + +{{< highlight yaml "hl_lines=5-8" >}} + datadog: + apm: + instrumentation: + enabled: true + libVersions: # Add any libraries and versions you want to set + dotnet: "x.x.x" + python: "x.x.x" + js: "x.x.x" +{{< /highlight >}} + +{{< /collapse-content >}} + + +[34]: https://github.com/DataDog/dd-trace-java/releases +[35]: https://github.com/DataDog/dd-trace-js/releases +[36]: https://github.com/DataDog/dd-trace-py/releases +[37]: https://github.com/DataDog/dd-trace-dotnet/releases +[38]: https://github.com/DataDog/dd-trace-rb/releases +[39]: https://github.com/DataDog/dd-trace-php/releases + + +{{% /tab %}} +{{< /tabs >}} + +### 기본 이미지 레지스트리 변경 {#change-the-default-image-registry} + +Datadog은 계측 라이브러리 이미지를 gcr.io, Docker Hub, Amazon ECR에 게시: + +| 언어 | gcr.io | hub.docker.com | gallery.ecr.aws | +|------------|-------------------------------------|---------------------------------------------|-------------------------------------------| +| Java | [gcr.io/datadoghq/dd-lib-java-init][15] | [hub.docker.com/r/datadog/dd-lib-java-init][16] | [gallery.ecr.aws/datadog/dd-lib-java-init][17] | +| Node.js | [gcr.io/datadoghq/dd-lib-js-init][18] | [hub.docker.com/r/datadog/dd-lib-js-init][19] | [gallery.ecr.aws/datadog/dd-lib-js-init][20] | +| Python | [gcr.io/datadoghq/dd-lib-python-init][21] | [hub.docker.com/r/datadog/dd-lib-python-init][22] | [gallery.ecr.aws/datadog/dd-lib-python-init][23] | +| .NET | [gcr.io/datadoghq/dd-lib-dotnet-init][24] | [hub.docker.com/r/datadog/dd-lib-dotnet-init][25] | [gallery.ecr.aws/datadog/dd-lib-dotnet-init][26] | +| Ruby | [gcr.io/datadoghq/dd-lib-ruby-init][27] | [hub.docker.com/r/datadog/dd-lib-ruby-init][28] | [gallery.ecr.aws/datadog/dd-lib-ruby-init][29] | +| PHP | [gcr.io/datadoghq/dd-lib-php-init][30] | [hub.docker.com/r/datadog/dd-lib-php-init][31] | [gallery.ecr.aws/datadog/dd-lib-php-init][32] | + +Datadog Cluster Agent 구성의 `DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY` 환경 변수는 Admission Controller가 사용하는 레지스트리를 지정합니다. 기본값은 `gcr.io/datadoghq`입니다. + +다른 레지스트리에서 SDK를 가져오려면 이것을 `docker.io/datadog`, `public.ecr.aws/datadog`으로 변경하면 되고, 로컬 컨테이너 레지스트리에서 이미지를 호스팅하는 경우 다른 URL로 변경하면 됩니다. + +컨테이너 레지스트리 변경 지침은 [컨테이너 레지스트리 변경][33]을 참조하세요. + +### 프라이빗 컨테이너 레지스트리 사용 {#use-a-private-container-registry} + +조직이 퍼블릭 레지스트리(예: `gcr.io`, `docker.io` 또는 `public.ecr.aws`)에서 직접 가져오기를 허용하지 않는 경우, 필수 Datadog 이미지를 내부에서 호스팅하고 Admission Controller가 이를 사용하도록 구성할 수 있습니다. + +SSI를 프라이빗 컨테이너 레지스트리와 함께 사용하는 방법: + +1. [이러한 지침][34]을 따라 Datadog의 컨테이너 이미지를 프라이빗 레지스트리에 미러링합니다. + + 계측 중인 언어에 대한 이미지만 필요합니다. 어느 것이 필요한지 확실하지 않은 경우, 아래와 같이 대부분의 사용 사례에 해당하는 기준을 참조하세요. + + - `apm-inject` + - `dd-lib-java-init` + - `dd-lib-python-init` + - `dd-lib-dotnet-init` + - `dd-lib-php-init` + - `dd-lib-ruby-init` + - `dd-lib-js-init` + + 이러한 이미지는 [gcr.io][12], [Docker Hub][13] 또는 [Amazon ECR Public Gallery][14]에 있습니다. + +2. 구성에 따라 이미지를 태그합니다. + + 미러링하는 버전이 워크로드에서 구성된 버전과 일치해야 하며, 이는 다음 중 한 가지 방법으로 설정할 수 있습니다. + - `ddTraceVersions`를 사용하여 Agent 구성에서 전역적으로, 또는 + - `admission.datadoghq.com/java-lib.version`과 같은 어노테이션을 사용하여 포드당. + + 명시적으로 구성된 버전이 없으면 기본 버전(`0`)이 사용됩니다. + + 예: + + ``` + apm: + instrumentation: + enabled: true + targets: + - name: "default-target" + ddTraceVersions: + java: "1" + python: "3" + ``` + + 이 구성에는 다음 이미지 태그가 필요합니다. + - `apm-inject:0` + - `dd-lib-java-init:1` + - `dd-lib-python-init:3` + +3. 프라이빗 레지스트리를 사용하려면 Cluster Agent 구성을 업데이트하세요. + + 프라이빗 레지스트리를 사용하려면 Cluster Agent 구성에서 `DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY` 환경 변수를 설정하세요. + +컨테이너 레지스트리 변경에 관한 자세한 내용은 [컨테이너 레지스트리 변경][33]을 참조하세요. + +### EKS에서 Container Network Interface 사용{#using-a-container-network-interface-on-eks} + +Calico와 같은 CNI를 사용하는 경우,컨트롤 플레인 노드가 Datadog의 Admission Controller로의 네트워크 연결을 시작할 수 없고 "Address is not allowed(주소가 허용되지 않음)" 오류를 보고합니다. +Single Step instrumentation을 사용하려면 Datadog의 Cluster Agent를 `useHostNetwork: true` 파라미터를 사용해 수정하세요. + +``` +datadog: + ... + +clusterAgent: + useHostNetwork: true + + admissionController: + ... +``` + +## Agent에서 Single Step APM 계측 제거 {#remove-single-step-apm-instrumentation-from-your-agent} + +특정 서비스, 호스트, VM 또는 컨테이너의 트레이스 데이터를 수집하지 않고자 하는 경우, 다음 단계를 따르세요. + +### 특정 서비스의 계측 제거 {#remove-instrumentation-for-specific-services} + +특정 서비스에서 APM 계측을 제거하고 트레이스 보내기를 중단하려면 다음 중 한 가지 작업을 수행합니다. + +#### 특정 워크로드를 대상으로 지정하는 계측 규칙 사용(권장) {#use-instrumentation-rules-to-target-specific-workloads-recommended} + +계측 규칙을 사용하면(Agent v7.64+에서 사용 가능) 특정 애플리케이션의 추적을 활성화 또는 비활성화할 수 있습니다. [여기에서 구성 세부 정보를 참조하세요](#advanced-options). + +#### Datadog Admission Controller 사용 {#use-the-datadog-admission-controller} + +대안으로, 또는 계측 규칙을 지원하지 않는 에이전트 버전인 경우, 포드에 레이블을 추가하여 포드 변형을 비활성화할 수도 있습니다. + +
    다음 단계를 따르면 SSI를 비활성화할 뿐만 아니라 다른 변형 웹훅도 비활성화합니다. 사용 시 주의하세요.
    + +1. `admission.datadoghq.com/enabled:` 레이블을 포드 사양의 `"false"`에 대하여 설정: + ```yaml + spec: + template: + metadata: + labels: + admission.datadoghq.com/enabled: "false" + ``` +2. 구성 적용: + ```shell + kubectl apply -f /path/to/your/deployment.yaml + ``` +3. 계측을 제거하고자 하는 서비스를 재시작합니다. + +### 인프라의 모든 서비스에 대하여 APM 제거 {#remove-apm-for-all-services-on-the-infrastructure} + +트레이스 생성을 중단하려면 APM을 제거하고 인프라를 재시작: + +구성해야 하는 파일은 Single Step Instrumentation을 Datadog Operator 또는 Helm 중 무엇으로 활성화했는지에 따라 다릅니다. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +1. `datadog-agent.yaml`에서 `instrumentation.enabled=false` 설정: + ```yaml + features: + apm: + instrumentation: + enabled: false + ``` + +2. Datadog Agent를 업데이트된 구성 파일로 배포: + ```shell + kubectl apply -f /path/to/your/datadog-agent.yaml + ``` +{{% /tab %}} + +{{% tab "Helm" %}} + +1. `datadog-values.yaml`에서 `instrumentation.enabled=false` 설정: + ```yaml + datadog: + apm: + instrumentation: + enabled: false + ``` + +2. 다음 명령 실행: + ```shell + helm upgrade datadog-agent -f datadog-values.yaml datadog/datadog + ``` +{{% /tab %}} +{{< /tabs >}} + +## 모범 사례 {#best-practices} + +SSI를 활성화하고 나면 몇 분 안에 클러스터의 모든 지원되는 프로세스가 자동으로 계측되며 트레이스를 생성하기 시작합니다. + +APM이 어디에서 활성화되는지 제어하고 오버헤드를 줄이려면 다음 모범 사례를 고려하세요. + +{{% collapse-content title="통제된 APM 롤아웃을 위해 옵트인 레이블 사용" level="h3" expanded=false id="id-for-anchoring" %}} + +#### 기본값 vs. 옵트인 계측 {#default-vs-opt-in-instrumentation} +| 모드 | 동작 | 사용해야 하는 경우 | +| --- | ----------- | ----------- | +| 기본값 | 클러스터에서 모든 지원되는 프로세스가 계측됩니다. | 작은 클러스터 또는 프로토타입. | +| 옵트인 | [계측 규칙][4]을 사용하여 특정 네임스페이스 또는 포드로만 계측을 제한합니다. | 프로덕션 클러스터, 단계적 롤아웃 또는 비용에 민감한 사용 사례. | + +#### 예: 특정 포드에 대하여 계측 활성화 {#example-enable-instrumentation-for-specific-pods} + +1. 배포 메타데이터와 포드 템플릿 양쪽 모두에 의미 있는 레이블(예: `datadoghq.com/apm-instrumentation: "enabled"`)을 추가합니다. + + ``` + apiVersion: apps/v1 + kind: Deployment + metadata: + name: checkout-api + labels: + app: checkout-api + datadoghq.com/apm-instrumentation: "enabled" # opt-in label (cluster-wide) + spec: + replicas: 3 + selector: + matchLabels: + app: checkout-api + template: + metadata: + labels: + app: checkout-api + datadoghq.com/apm-instrumentation: "enabled" # opt-in label must be on *template*, too + # Unified Service Tags (recommended) + tags.datadoghq.com/service: "checkout-api" + tags.datadoghq.com/env: "prod" + tags.datadoghq.com/version: "2025-06-10" + spec: + containers: + - name: api + image: my-registry/checkout:latest + ports: + - containerPort: 8080 + ``` + +2. Datadog Agent Helm 구성에서 SSI를 활성화하고 `podSelector`를 사용하여 일치하는 옵트인 레이블이 있는 포드로만 주입합니다. + + ``` + apm: + instrumentation: + enabled: true + targets: + - name: apm-instrumented + podSelector: + matchLabels: + datadoghq.com/apm-instrumentation: "enabled" + ``` + +더 많은 예시는 [계측 규칙][4]을 참조하세요. + +{{% /collapse-content %}} + + +{{% collapse-content title="로드할 Datadog SDK 제어" level="h3" expanded=false id="id-for-anchoring" %}} + +Agent Helm 구성에서 `ddTraceVersions`를 사용하여 Datadog SDK의 언어와 버전을 모두 제어합니다. 이렇게 하면 불필요한 SDK가 다운로드되는 것을 방지하므로 init 컨테이너 풋프린트가 최소화되고, 이미지 크기가 감소하며 좀 더 신중한 트레이서 업그레이드를 할 수 있습니다(예를 들어 규정 준수 요구 사항에 충족하기 위해, 또는 디버깅 간소화를 위해). + +#### 예: 네임스페이스에 대하여 Java SDK 지정 {#example-specify-a-java-sdk-for-a-namespace} + +`login-service` 네임스페이스에서 Java 애플리케이션만 실행됩니다. 다른 SDK를 다운로드하지 않으려면 Agent가 해당 네임스페이스를 대상으로 지정하고 Java SDK 버전 1.48.2만 주입하도록 구성하세요. + + +``` +targets: + - name: login-service + namespaceSelector: + matchNames: ["login-service"] + ddTraceVersions: + java: "1.48.2" # pin version +``` + +#### 기본 구성 {#default-configuration} + +포드와 일치하는 `ddTraceVersions` 규칙이 없으면 기본 대상이 적용됩니다. + +``` +targets: + - name: default-target # tag any pod *without* an override + ddTraceVersions: + java: "1" # stay on latest v1.x + python: "3" # stay on latest v3.x + js: "5" # NodeJS + php: "1" + dotnet: "3" +``` + +{{% /collapse-content %}} + +## 문제 해결 {#troubleshooting} + +SSI로 APM 활성화와 관련한 문제가 발생하는 경우, [SSI 문제 해결 가이드][35]를 참조하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://v3.helm.sh/docs/intro/install/ +[2]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[3]: /ko/tracing/glossary/#instrumentation +[4]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/kubernetes/?tab=agentv764recommended#configure-instrumentation-for-namespaces-and-pods +[5]: /ko/getting_started/tagging/unified_service_tagging/?tab=kubernetes#containerized-environment +[7]: /ko/tracing/trace_collection/library_config/ +[11]: https://app.datadoghq.com/fleet/install-agent/latest?platform=kubernetes +[12]: https://gcr.io/datadoghq +[13]: https://hub.docker.com/u/datadog +[14]: https://gallery.ecr.aws/datadog +[15]: http://gcr.io/datadoghq/dd-lib-java-init +[16]: http://hub.docker.com/r/datadog/dd-lib-java-init +[17]: http://gallery.ecr.aws/datadog/dd-lib-java-init +[18]: http://gcr.io/datadoghq/dd-lib-js-init +[19]: http://hub.docker.com/r/datadog/dd-lib-js-init +[20]: http://gallery.ecr.aws/datadog/dd-lib-js-init +[21]: http://gcr.io/datadoghq/dd-lib-python-init +[22]: http://hub.docker.com/r/datadog/dd-lib-python-init +[23]: http://gallery.ecr.aws/datadog/dd-lib-python-init +[24]: http://gcr.io/datadoghq/dd-lib-dotnet-init +[25]: http://hub.docker.com/r/datadog/dd-lib-dotnet-init +[26]: http://gallery.ecr.aws/datadog/dd-lib-dotnet-init +[27]: http://gcr.io/datadoghq/dd-lib-ruby-init +[28]: http://hub.docker.com/r/datadog/dd-lib-ruby-init +[29]: http://gallery.ecr.aws/datadog/dd-lib-ruby-init +[30]: http://gcr.io/datadoghq/dd-lib-php-init +[31]: http://hub.docker.com/r/datadog/dd-lib-php-init +[32]: http://gallery.ecr.aws/datadog/dd-lib-php-init +[33]: /ko/containers/guide/changing_container_registry/ +[34]: /ko/containers/guide/sync_container_images/#copy-an-image-to-another-registry-using-crane +[35]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/troubleshooting +[36]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility/ +[37]: /ko/containers/kubernetes/csi_driver/ +[41]: /ko/tracing/guide/injectors/ \ No newline at end of file diff --git a/content/ko/tracing/trace_pipeline/ingestion_mechanisms.md b/content/ko/tracing/trace_pipeline/ingestion_mechanisms.md new file mode 100644 index 00000000000..0383b59adb8 --- /dev/null +++ b/content/ko/tracing/trace_pipeline/ingestion_mechanisms.md @@ -0,0 +1,899 @@ +--- +aliases: +- /ko/tracing/trace_ingestion/mechanisms +description: 트레이스 수집을 제어하는 SDK 및 Agent의 메커니즘 개요입니다. +further_reading: +- link: /tracing/trace_pipeline/ingestion_controls/ + tag: 설명서 + text: Ingestion Control +- link: /tracing/trace_pipeline/trace_retention/ + tag: 설명서 + text: 트레이스 보존 +- link: /tracing/trace_pipeline/metrics/ + tag: 설명서 + text: 사용량 메트릭 +- link: https://www.datadoghq.com/blog/zendesk-cost-optimization/#improving-tracing-efficiency-through-targeted-changes + tag: 블로그 + text: '규모에 맞는 Datadog 최적화: Zendesk의 비용 효율적 관측 가능성' +- link: https://learn.datadoghq.com/courses/apm-rate-limit-retention + tag: 학습 센터 + text: APM 속도 제한 및 보존 +title: 수집 메커니즘 +--- +{{< img src="tracing/apm_lifecycle/ingestion_sampling_rules.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="수집 샘플링 규칙" >}} + + +애플리케이션이 생성한 스팬을 Datadog으로 전송할지(_ingested_) 결정하는 메커니즘은 여러 가지가 있습니다. 이러한 메커니즘의 배후 로직은 [SDK][1] 및 Datadog Agent에 기인합니다. 구성에 따라 계측된 서비스가 생성한 트래픽의 전부 또는 일부가 수집됩니다. + +각각의 수집된 스팬에는 고유한 **수집 사유**가 있고, 이는 이 페이지에서 설명하는 메커니즘 중 하나를 가리킵니다. [사용량 메트릭][2] `datadog.estimated_usage.apm.ingested_bytes` 및 `datadog.estimated_usage.apm.ingested_spans`는 `ingestion_reason`으로 태그됩니다. + +각 수집 사유의 전후 상황을 조사하고 어느 구성 옵션에 집중해야 할지 알아보려면 [수집 사유 대시보드][3]를 사용하세요. + +## 헤드 기반 샘플링 {#head-based-sampling} + +기본 샘플링 메커니즘을 _헤드 기반 샘플링_이라고 합니다. 트레이스를 유지할지 제거할지 결정은 [루트 스팬][4] 시작 시에 이루어지며, 이후 요청 컨텍스트의 일부분으로 다른 서비스에 전파됩니다(예: HTTP 요청 헤더로). + +결정이 트레이스 시작 시에 이루어지고 모든 부분으로 전달되기 때문에, 트레이스 한 개 전체가 유지되거나 제거됩니다. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/head-based-sampling.png" alt="헤드 기반 샘플링" style="width:100%;" >}} + +헤드 기반 샘플링의 샘플링 레이트는 다음의 두 곳에서 설정 가능합니다. +- **[Agent](#in-the-agent)** 수준에서(기본값) +- **[SDK](#in-sdks-user-defined-rules)** 수준에서: 모든 SDK 메커니즘이 Agent 설정을 재정의합니다. + +### Agent 설정 {#in-the-agent} +`ingestion_reason: auto` + +Datadog Agent는 트레이스의 루트에서 적용할 샘플링 레이트를 SDK에 지속적으로 전송합니다. Agent는 전체적으로 초당 10개의 트레이스를 목표로 레이트를 조정하며, 트래픽에 따라 서비스별로 분배합니다. + +예를 들어 서비스 `A`에 서비스 `B`보다 트래픽이 많은 경우, Agent가 `A`의 샘플링 비율을 변경해 `A`에 초당 트레이스가 7개 이상 유지되지 않게 하고, 마찬가지로 `B`의 샘플링 비율을 조정해 `B`가 초당 트레이스를 3개 이상 유지하지 않게 하여 합쳐서 초당 트레이스 10개가 되도록 할 수 있습니다. + +#### Remote Configuration {#remote-configuration} + +Agent의 샘플링 레이트를 원격으로 구성하려면 Agent 버전 [7.42.0][20] 이상을 사용 중이어야 합니다. 시작하려면 [Remote Configuration][21]을 설정한 다음 [Ingestion Control 페이지][5]에서 `ingestion_reason` 파라미터를 구성하세요. Remote Configuration을 사용하면 Agent를 재시작하지 않고도 파라미터를 변경할 수 있습니다. 원격으로 설정한 구성이 `datadog.yaml`의 환경 변수와 설정을 포함한 로컬 구성보다 우선합니다. + +#### 로컬 구성 {#local-configuration} + +Agent 메인 구성 파일(`datadog.yaml`)에서, 또는 환경 변수로서 Agent 목표 초당 트레이스를 설정합니다. + +``` +@param target_traces_per_second - integer - optional - default: 10 +@env DD_APM_TARGET_TPS - integer - optional - default: 10 +``` + +**참고**: +- Agent에서 설정한 초당 트레이스 샘플링 레이트는 Datadog SDK에만 적용됩니다. OpenTelemetry SDK와 같은 다른 SDK에는 영향이 없습니다. +- 목표는 고정된 값이 아닙니다. 실제로는 트래픽 스파이크 및 기타 요인에 따라 변동합니다. + +Datadog Agent의 [자동 샘플링 레이트](#in-the-agent)로 샘플링된 트레이스의 스팬은 수집 사유 `auto`로 태그됩니다. `ingestion_reason` 태그도 [사용량 메트릭][2]에서 설정됩니다. 이 기본 메커니즘을 사용하는 서비스는 [Ingestion Control 페이지][5] 구성 열에서 `Automatic`으로 레이블이 지정됩니다. + +### SDK 설정: 사용자 정의 규칙 {#in-sdks-user-defined-rules} +`ingestion_reason: rule` + +좀 더 세분화된 제어를 원하는 경우, SDK 샘플링 구성 옵션 사용: +- **트레이스의 루트에 적용할 특정 샘플링 레이트**를 서비스 또는 리소스 이름 기준으로 설정하여 Agent의 [기본 메커니즘](#in-the-agent)을 재정의합니다. +- 초당 수집된 트레이스 수에 **레이트 한도**를 설정합니다. 기본 레이트 한도는 서비스 인스턴스당 초당 트레이스 100개입니다. Agent [기본 메커니즘](#in-the-agent)을 사용하는 경우 레이트 리미터가 무시됩니다. + +**참고**: 샘플링 규칙도 헤드 기반 샘플링 제어입니다. 서비스의 트래픽이 구성된 초당 최대 트레이스 수보다 많은 경우, 트레이스가 루트에서 제거됩니다. 이는 불완전한 트레이스를 생성하지 않습니다. + +구성은 환경 변수로 설정할 수도 있고 코드에서 직접 설정할 수도 있습니다. + +{{< tabs >}} +{{% tab "Java" %}} +**Remote Configuration** + +버전 1.34.0부터 Java 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][1]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** + +Java 애플리케이션의 경우, `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용해 서비스별 및 리소스별(리소스별 샘플링의 경우 버전 [v1.26.0][3]부터) 샘플링 레이트를 설정합니다. + +예를 들어 서비스 `my-service`에서 리소스 `GET /checkout`의 트레이스를 100%, 다른 엔드포인트의 트레이스를 20% 캡처하려면 다음과 같이 설정합니다. + +``` +# using system property +java -Ddd.trace.sampling.rules='[{"service": "my-service", "resource": "GET /checkout", "sample_rate":1},{"service": "my-service", "sample_rate":0.2}]' -javaagent:dd-java-agent.jar -jar my-app.jar + +# using environment variables +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "resource":"GET /checkout", "sample_rate": 1},{"service": "my-service", "sample_rate": 0.2}]' +``` + +서비스 이름 값은 대소문자를 구분하며 실제 서비스 이름의 대소문자와 일치해야 합니다. + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +**참고**: `DD_TRACE_SAMPLE_RATE`은 사용이 중단되었습니다. 대신 `DD_TRACE_SAMPLING_RULES`를 사용하세요. 예를 들어 이미 `DD_TRACE_SAMPLE_RATE`를 `0.1`로 설정한 경우, 대신 `DD_TRACE_SAMPLING_RULES`를 `[{"sample_rate":0.1}]`로 설정합니다. + +생플링 제어에 관한 자세한 내용은 [Java SDK 설명서][2]를 참조하세요. + +[1]: /ko/tracing/guide/resource_based_sampling +[2]: /ko/tracing/trace_collection/dd_libraries/java +[3]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.26.0 +{{% /tab %}} +{{% tab "Python" %}} +**Remote Configuration** + +버전 2.9.0부터 Python 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][3]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** +Python 애플리케이션의 경우, `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용해 서비스별 및 리소스별(리소스별 샘플링의 경우 버전 [v2.8.0][1]부터) 샘플링 레이트를 설정합니다. + +예를 들어 서비스 `my-service`에서 리소스 `GET /checkout`의 트레이스를 100%, 다른 엔드포인트의 트레이스를 20% 캡처하려면 다음과 같이 설정합니다. + +``` +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "resource": "GET /checkout", "sample_rate": 1},{"service": "my-service", "sample_rate": 0.2}]' +``` + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +**참고**: `DD_TRACE_SAMPLE_RATE`은 사용이 중단되었습니다. 대신 `DD_TRACE_SAMPLING_RULES`를 사용하세요. 예를 들어 이미 `DD_TRACE_SAMPLE_RATE`를 `0.1`로 설정한 경우, 대신 `DD_TRACE_SAMPLING_RULES`를 `[{"sample_rate":0.1}]`로 설정합니다. + +생플링 제어에 관한 자세한 내용은 [Python SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-py/releases/tag/v2.8.0 +[2]: /ko/tracing/trace_collection/dd_libraries/python +[3]: /ko/tracing/guide/resource_based_sampling/ +{{% /tab %}} +{{% tab "Ruby" %}} +**Remote Configuration** + +버전 2.0.0부터 Ruby 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][1]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** +Ruby 애플리케이션의 경우, `DD_TRACE_SAMPLE_RATE` 환경 변수를 사용해 라이브러리의 전역 샘플링 레이트를 설정합니다. `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용하여 서비스별로 샘플링 레이트를 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 트레이스 50%와 나머지 트레이스의 10%를 보내려면 다음과 같이 설정합니다. + +``` +export DD_TRACE_SAMPLE_RATE=0.1 +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' +``` + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +샘플링 제어에 관한 자세한 내용은 [Ruby SDK 설명서][1]를 참조하세요. + +[1]: /ko/tracing/trace_collection/dd_libraries/ruby#sampling +{{% /tab %}} +{{% tab "Go" %}} +**Remote Configuration** + +버전 1.64.0부터 Go 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 대한 자세한 내용은 이 [문서][3]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** + +Go 애플리케이션의 경우, `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용해 서비스별 및 리소스별(리소스별 샘플링의 경우 버전 [v1.60.0][2]부터) 샘플링 레이트를 설정합니다. + +예를 들어 서비스 `my-service`에서 리소스 `GET /checkout`의 트레이스를 100%, 다른 엔드포인트의 트레이스를 20% 캡처하려면 다음과 같이 설정합니다. + +``` +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "resource": "GET /checkout", "sample_rate": 1},{"service": "my-service", "sample_rate": 0.2}]' +``` + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +**참고**: `DD_TRACE_SAMPLE_RATE`은 사용이 중단되었습니다. 대신 `DD_TRACE_SAMPLING_RULES`를 사용하세요. 예를 들어 이미 `DD_TRACE_SAMPLE_RATE`를 `0.1`로 설정한 경우, 대신 `DD_TRACE_SAMPLING_RULES`를 `[{"sample_rate":0.1}]`로 설정합니다. + +샘플링 제어에 관한 자세한 내용은 [Go SDK 설명서][1]를 참조하세요. + +[1]: /ko/tracing/trace_collection/dd_libraries/go +[2]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.60.0 +[3]: /ko/tracing/guide/resource_based_sampling +{{% /tab %}} +{{% tab "Node.js" %}} +**Remote Configuration** + +버전 5.16.0부터 Node.js 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][1]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** + +Node.js 애플리케이션의 경우, `DD_TRACE_SAMPLE_RATE` 환경 변수를 사용해 라이브러리의 전역 샘플링 레이트를 설정합니다. + +서비스별 샘플링 레이트도 설정할 수 있습니다. 예를 들어 이름이 `my-service`인 서비스의 트레이스 50%와 나머지 트레이스의 10%를 보내려면 다음과 같이 설정합니다. + +```javascript +tracer.init({ + ingestion: { + sampler: { + sampleRate: 0.1, + rules: [ + { sampleRate: 0.5, service: 'my-service' } + ] + } + } +}); +``` + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +샘플링 제어에 관한 자세한 내용은 [Node.js SDK 설명서][1]를 참조하세요. + +[1]: /ko/tracing/trace_collection/dd_libraries/nodejs +{{% /tab %}} +{{% tab "PHP" %}} +**Remote Configuration** + +버전 1.4.0부터 PHP 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][1]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** + +PHP 애플리케이션의 경우, `DD_TRACE_SAMPLE_RATE` 환경 변수를 사용해 라이브러리의 전역 샘플링 레이트를 설정합니다. `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용하여 서비스별로 샘플링 레이트를 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 트레이스 50%와 다른 엔드포인트의 트레이스 20%, 그리고 나머지 트레이스의 10%를 보내려면 다음과 같이 설정합니다. + +``` +export DD_TRACE_SAMPLE_RATE=0.1 +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "resource":"GET /checkout", "sample_rate": 1},{"service": "my-service", "sample_rate": 0.2}]' +``` + +샘플링 제어에 관한 자세한 내용은 [PHP SDK 설명서][1]를 참조하세요. + +[1]: /ko/tracing/trace_collection/dd_libraries/php +{{% /tab %}} +{{% tab "C++" %}} +**Remote Configuration** + +버전 0.2.2부터 C++ 애플리케이션의 서비스별 및 리소스별 샘플링 레이트를 Ingestion Control 페이지 UI에서 설정합니다. + +서비스 및 리소스에 따라 샘플링 레이트를 원격으로 구성하는 방법에 관한 자세한 내용은 [리소스 기반 샘플링 가이드][1]를 참조하세요. + +**참고**: 원격으로 설정된 구성이 로컬 구성보다 우선합니다. + +**로컬 구성** +Datadog C++ 라이브러리는 [v0.1.0][1]부터 다음 구성을 지원합니다. +- 전역 샘플링 레이트: `DD_TRACE_SAMPLE_RATE` 환경 변수 +- 서비스별 샘플링 레이트: `DD_TRACE_SAMPLING_RULES` 환경 변수. +- 레이트 한도 설정: `DD_TRACE_RATE_LIMIT` 환경 변수. + +예를 들어 이름이 `my-service`인 서비스의 트레이스 50%와 나머지 트레이스의 10%를 보내려면 다음과 같이 설정합니다. + +``` +export DD_TRACE_SAMPLE_RATE=0.1 +export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' +``` + +C++은 자동 계측을 위한 통합 기능을 제공하지 않지만, Envoy, Nginx, Istio와 같은 프록시 트레이싱에 사용됩니다. 프록시에 대한 샘플링을 구성하는 방법에 관한 자세한 내용은 [프록시 트레이싱][2]을 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-cpp/releases/tag/v0.1.0 +[2]: /ko/tracing/trace_collection/proxy_setup +{{% /tab %}} +{{% tab ".NET" %}} +.NET 애플리케이션의 경우, `DD_TRACE_SAMPLE_RATE` 환경 변수를 사용해 라이브러리의 전역 샘플링 레이트를 설정합니다. `DD_TRACE_SAMPLING_RULES` 환경 변수를 사용하여 서비스별로 샘플링 레이트를 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 트레이스 50%와 나머지 트레이스의 10%를 보내려면 다음과 같이 설정합니다. + +``` +#using powershell +$env:DD_TRACE_SAMPLE_RATE=0.1 +$env:DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' + +#using JSON file +{ + "DD_TRACE_SAMPLE_RATE": "0.1", + "DD_TRACE_SAMPLING_RULES": "[{\"service\": \"my-service\", \"resource\": \"GET /checkout\", \"sample_rate\": 0.5}]" +} +``` + +
    버전 2.35.0부터 서비스가 실행되는 곳에서 Agent Remote Configuration이 활성화되어 있으면 DD_TRACE_SAMPLE_RATESoftware Catalog UI에서 서비스별로 설정할 수 있습니다.
    + +환경 변수 `DD_TRACE_RATE_LIMIT`를 서비스 인스턴스당 초당 트레이스 최대 수로 설정하여 레이트 한도를 구성하세요. `DD_TRACE_RATE_LIMIT` 값을 설정하지 않으면 초당 트레이스 100개의 한도가 적용됩니다. + +샘플링 제어에 관한 자세한 내용은 [.NET SDK 설명서][1]를 참조하세요.\ +[.NET에 대한 환경 변수 구성][2]에 관해 자세히 알아보세요. + +[1]: /ko/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core +[2]: /ko/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core?tab=registryeditor#configuring-process-environment-variables +{{% /tab %}} +{{< /tabs >}} + +**참고**: SDK를 사용해 샘플링된 트레이스의 모든 스팬은 수집 사유 `rule`로 태그됩니다. 사용자 정의 샘플링으로 구성된 서비스는 [Ingestion Control 페이지][5] 구성 열에 `Configured`로 표시됩니다. + +## 오류 및 레어 트레이스 {#error-and-rare-traces} + +헤드 기반 샘플링으로 포착하지 못한 트레이스의 경우, 2개의 추가 Datadog Agent 샘플링 메커니즘이 원래는 제거됐을 수 있는 중요하고 다양한 트레이스를 포착합니다. 이러한 샘플러는 미리 결정된 태그 세트의 모든 조합을 포착해 로컬 트레이스 세트(같은 호스트의 스팬)를 유지합니다. + +- **오류 트레이스**: 오류 샘플링을 이용하면 잠재적 시스템 오류에 대한 가시성을 얻을 수 있습니다. +- **레어 트레이스**: 레어 트레이스 샘플링은 시스템 전반의 트래픽이 적은 서비스 및 리소스에 대한 가시성을 유지합니다. + +**참고**: 오류 및 레어 샘플러는 [라이브러리 샘플링 규칙](#in-sdks-user-defined-rules)을 설정한 서비스에 대해서는 무시됩니다. + +### 오류 트레이스 {#error-traces} +`ingestion_reason: error` + +오류 샘플러는 헤드 기반 샘플링이 잡아내지 못한 오류 스팬을 포함하는 트레이스 조각을 Agent당 초당 트레이스 최대 10개의 레이트로 포착합니다. 이렇게 하면 헤드 기반 샘플링 레이트가 낮을 때 오류에 대한 가시성을 유지하는 데 도움이 됩니다. + +Agent 버전 7.33 이상에서는 Agent 메인 구성 파일(`datadog.yaml`)에서나 다음 환경 변수를 사용해 오류 샘플러를 구성할 수 있습니다. + +``` +@param errors_per_second - integer - optional - default: 10 +@env DD_APM_ERROR_TPS - integer - optional - default: 10 +``` + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/error-spans-sampling.png" alt="오류 샘플링" style="width:100%;" >}} + +**참고**: +1. 오류 샘플러를 비활성화하려면 파라미터를 `0`으로 설정합니다. +2. 오류 샘플러는 Agent 수준에서 로컬 오류 트레이스를 캡처합니다. 트레이스가 분산된 경우, 완전한 트레이스가 Datadog으로 전송되지 않을 수 있습니다. +3. 기본적으로 SDK 규칙 또는 `manual.drop`과 같은 사용자 지정 로직으로 제거된 스팬은 오류 샘플러에서 **제외**됩니다. + +#### Datadog Agent 7.42.0 이상 {#datadog-agent-7420-and-higher} + +Agent 버전 [7.42.0][20] 이상을 사용 중인 경우 오류 샘플링을 원격으로 구성할 수 있습니다. Agent에서 원격 구성을 활성화하려면 [설명서][21]를 따르세요. 원격 구성을 사용하면 Datadog Agent를 재시작하지 않고도 레어 스팬 수집을 활성화할 수 있습니다. + +#### Datadog Agent 6/7.41.0 이상 {#datadog-agent-67410-and-higher} + +기본 동작을 재정의해 SDK 규칙 또는 `manual.drop`과 같은 사용자 지정 로직이 제거한 스팬을 오류 샘플러가 **포함**하게 하려면 Datadog Agent에서(또는 Kubernetes의 Datadog Agnet 포드 내 전용 Trace Agent 컨테이너에서) `DD_APM_FEATURES=error_rare_sample_tracer_drop`으로 해당 기능을 활성화하세요. + +#### Datadog Agent 6/7.33에서 6/7.40.x까지 {#datadog-agent-6733-to-6740x} + +이러한 Agent 버전에서는 오류 샘플링 기본 동작을 변경할 수 없습니다. Datadog Agent를 Datadog Agent 6/7.41.0 이상으로 업그레이드하세요. + +### 레어 트레이스 {#rare-traces} +`ingestion_reason: rare` + +레어 샘플러는 레어 스팬 세트를 Datadog에 보냅니다. 이 샘플러는 `env`, `service`, `name`, `resource`, `error.type`, `http.status`의 조합을 Agent당 초당 트레이스 최대 5개의 레이트로 포착합니다. 이렇게 하면 헤드 기반 샘플링 레이트가 낮을 때 트래픽이 적은 리소스에 대한 가시성을 유지하는 데 도움이 됩니다. + +**참고**: 레어 샘플러는 Agent 수준에서 로컬 트레이스를 캡처합니다. 트레이스가 분산된 경우, 완전한 트레이스가 Datadog으로 전송된다는 보장이 없습니다. + +#### Datadog Agent 7.42.0 이상 {#datadog-agent-7420-and-higher-1} + +Agent 버전 [7.42.0][20] 이상을 사용 중인 경우 레어 샘플링을 원격으로 구성할 수 있습니다. Agent에서 원격 구성을 활성화하려면 [설명서][21]를 따르세요. 원격 구성을 사용하면 Datadog Agent를 재시작하지 않고도 매개변수 값을 변경할 수 있습니다. + +#### Datadog Agent 6/7.41.0 이상 {#datadog-agent-67410-and-higher-1} + +기본적으로 레어 샘플러는 **활성화되지 않습니다**. + +**참고**: **활성화된** 경우, SDK 규칙이나 `manual.drop`과 같은 사용자 지정 로직이 제거한 스팬은 이 샘플러에서 **제외**됩니다. + +레어 샘플러를 구성하려면 Agent 메인 구성 파일(`datadog.yaml`)에서 또는 환경 변수`DD_APM_ENABLE_RARE_SAMPLER`를 사용하여 `apm_config.enable_rare_sampler` 설정을 업데이트하세요. + +``` +@params apm_config.enable_rare_sampler - boolean - optional - default: false +@env DD_APM_ENABLE_RARE_SAMPLER - boolean - optional - default: false +``` + +SDK 규칙이나 ,`manual.drop`과 같은 사용자 지정 로직으로 제거된 스팬을 평가하려면 Trace Agent에서 `DD_APM_FEATURES=error_rare_sample_tracer_drop`을 사용하여 해당 기능을 활성화하세요. + +#### Datadog Agent 6/7.33에서 6/7.40.x까지 {#datadog-agent-6733-to-6740x-1} + +기본적으로 레어 샘플러가 활성화되어 있습니다. + +**참고**: **활성화된** 경우, SDK 규칙이나 `manual.drop`과 같은 사용자 지정 로직이 제거한 스팬은 이 샘플러에서 **제외됩니다**. 이 로직에 이러한 스팬을 포함하려면 Datadog Agent 6.41.0/7.41.0 이상으로 업그레이드하세요. + +기본 레어 샘플러 설정을 변경하려면 Agent 메인 구성 파일(`datadog.yaml`)에서 또는 환경 변수 `DD_APM_DISABLE_RARE_SAMPLER`를 사용하여 `apm_config.disable_rare_sampler` 설정을 업데이트하세요. + +``` +@params apm_config.disable_rare_sampler - boolean - optional - default: false +@env DD_APM_DISABLE_RARE_SAMPLER - boolean - optional - default: false +``` + +## 강제 유지 및 제거 {#force-keep-and-drop} +`ingestion_reason: manual` + +헤드 기반 샘플링 메커니즘은 SDK 수준에서 재정의될 수 있습니다. 예를 들어 중요한 트랜잭션을 모니터링해야 하는 경우, 연결된 트레이스를 강제로 유지할 수 있습니다. 반면, 상태 검사와 같은 불필요하거나 반복적인 정보인 경우 트레이스를 강제로 제거할 수 있습니다. + +- 스팬에서 Manual Keep을 설정하면 해당 스팬과 모든 하위 스팸을 수집해야 함을 나타냅니다. 그 결과로 나타나는 트레이스는 문제의 스팬이 트레이스의 루트 스팬이 아닌 경우, UI에 불완전한 것으로 표시될 수 있습니다. + +- 스팬에서 Manual Drop을 설정하면 하위 스팬이 수집되지 **않도록** 보장됩니다. [오류 및 레어 샘플러](#error-and-rare-traces)는 Agent에서 무시됩니다. + +{{< programming-lang-wrapper langs="java,python,ruby,go,nodejs,.NET,php,cpp" >}} +{{< programming-lang lang="java" >}} + +트레이스 수동으로 유지: + +```java +import datadog.trace.api.DDTags; +import io.opentracing.Span; +import datadog.trace.api.Trace; +import io.opentracing.util.GlobalTracer; + +public class MyClass { + @Trace + public static void myMethod() { + // grab the active span out of the traced method + Span span = GlobalTracer.get().activeSpan(); + // Always keep the trace + span.setTag(DDTags.MANUAL_KEEP, true); + // method impl follows + } +} +``` + +트레이스 수동으로 제거: + +```java +import datadog.trace.api.DDTags; +import io.opentracing.Span; +import datadog.trace.api.Trace; +import io.opentracing.util.GlobalTracer; + +public class MyClass { + @Trace + public static void myMethod() { + // grab the active span out of the traced method + Span span = GlobalTracer.get().activeSpan(); + // Always Drop the trace + span.setTag(DDTags.MANUAL_DROP, true); + // method impl follows + } +} +``` + +{{< /programming-lang >}} +{{< programming-lang lang="python" >}} + +트레이스 수동으로 유지: + +```python +from ddtrace import tracer +from ddtrace.constants import MANUAL_DROP_KEY, MANUAL_KEEP_KEY + +@tracer.wrap() +def handler(): + span = tracer.current_span() + # Always Keep the Trace + span.set_tag(MANUAL_KEEP_KEY) + # method impl follows +``` + +트레이스 수동으로 제거: + +```python +from ddtrace import tracer +from ddtrace.constants import MANUAL_DROP_KEY, MANUAL_KEEP_KEY + +@tracer.wrap() +def handler(): + span = tracer.current_span() + # Always Drop the Trace + span.set_tag(MANUAL_DROP_KEY) + # method impl follows +``` + +{{< /programming-lang >}} +{{< programming-lang lang="ruby" >}} + +트레이스 수동으로 유지: + +```ruby +Datadog::Tracing.trace(name, options) do |span, trace| + trace.keep! # Affects the active trace + # Method implementation follows +end +``` + +트레이스 수동으로 제거: + +```ruby +Datadog::Tracing.trace(name, options) do |span, trace| + trace.reject! # Affects the active trace + # Method implementation follows +end +``` + +{{< /programming-lang >}} +{{< programming-lang lang="go" >}} + +{{% tracing-go-v2 %}} + +트레이스 수동으로 유지: + +```Go +package main + +import ( + "log" + "net/http" + "github.com/DataDog/dd-trace-go/v2/ddtrace/ext" + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" +) + +func handler(w http.ResponseWriter, r *http.Request) { + // Create a span for a web request at the /posts URL. + span := tracer.StartSpan("web.request", tracer.ResourceName("/posts")) + defer span.Finish() + + // Always keep this trace: + span.SetTag(ext.ManualKeep, true) + //method impl follows + +} +``` + +트레이스 수동으로 제거: + +```Go +package main + +import ( + "log" + "net/http" + + "github.com/DataDog/dd-trace-go/v2/ddtrace/ext" + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" +) + +func handler(w http.ResponseWriter, r *http.Request) { + // Create a span for a web request at the /posts URL. + span := tracer.StartSpan("web.request", tracer.ResourceName("/posts")) + defer span.Finish() + + // Always drop this trace: + span.SetTag(ext.ManualDrop, true) + //method impl follows +} +``` + +{{< /programming-lang >}} +{{< programming-lang lang="nodejs" >}} + +트레이스 수동으로 유지: + +```js +const tracer = require('dd-trace') +const tags = require('dd-trace/ext/tags') + +const span = tracer.startSpan('web.request') + +// Always keep the trace +span.setTag(tags.MANUAL_KEEP) +//method impl follows + +``` + +트레이스 수동으로 제거: + +```js +const tracer = require('dd-trace') +const tags = require('dd-trace/ext/tags') + +const span = tracer.startSpan('web.request') + +// Always drop the trace +span.setTag(tags.MANUAL_DROP) +//method impl follows + +``` + +{{< /programming-lang >}} +{{< programming-lang lang=".NET" >}} + +트레이스 수동으로 유지: + +```cs +using Datadog.Trace; + +using(var scope = Tracer.Instance.StartActive("my-operation")) +{ + var span = scope.Span; + + // Always keep this trace + span.SetTag(Datadog.Trace.Tags.ManualKeep, "true"); + //method impl follows +} +``` + +트레이스 수동으로 제거: + +```cs +using Datadog.Trace; + +using(var scope = Tracer.Instance.StartActive("my-operation")) +{ + var span = scope.Span; + + // Always drop this trace + span.SetTag(Datadog.Trace.Tags.ManualDrop, "true"); + //method impl follows +} +``` + +{{< /programming-lang >}} +{{< programming-lang lang="php" >}} + + +트레이스 수동으로 유지: + +```php +getActiveSpan(); + + if (null !== $span) { + // Always keep this trace + $span->setTag(\DDTrace\Tag::MANUAL_KEEP, true); + } +?> +``` + +트레이스 수동으로 제거: + +```php +getActiveSpan(); + + if (null !== $span) { + // Always drop this trace + $span->setTag(\DDTrace\Tag::MANUAL_DROP, true); + } +?> +``` + +{{< /programming-lang >}} +{{< programming-lang lang="cpp" >}} + +트레이스 수동으로 유지: + +```cpp +... +#include +#include +#include +... + +dd::SpanConfig span_cfg; +span_cfg.resource = "operation_name"; + +auto span = tracer.create_span(span_cfg); +// Always keep this trace +span.trace_segment().override_sampling_priority(int(dd::SamplingPriority::USER_KEEP)); +//method impl follows +``` + +트레이스 수동으로 제거: + +```cpp +... +#include +#include +#include +... + +using namespace dd = datadog::tracing; + +dd::SpanConfig span_cfg; +span_cfg.resource = "operation_name"; + +auto another_span = tracer.create_span(span_cfg); +// Always drop this trace +span.trace_segment().override_sampling_priority(int(dd::SamplingPriority::USER_DROP)); +//method impl follows +``` + +{{< /programming-lang >}} +{{< /programming-lang-wrapper >}} + +컨텍스트를 전파하기 전에 수동 유지를 설정하세요. 컨텍스트 전파 이후에 설정하면 여러 서비스 전반에서 전체 트레이스가 유지되지 않을 수 있습니다. 이 결정은 트레이싱 클라이언트 위치에서 설정되기 때문에 샘플링 규칙에 따라 Agent 또는 서버에서 트레이스를 제거할 수 있습니다. + + +## 단일 스팬 {#single-spans} +`ingestion_reason: single_span` + +특정 스팬을 샘플링해야 하지만 전체 트레이스가 필요하지는 않은 경우, SDK를 사용하면 스팬 하나에 대해 샘플링 레이트를 설정할 수 있습니다. + +예를 들어 특정 서비스를 모니터링하고 [스팬을 기반으로 메트릭을 빌드][6]하는 경우, 스팬 샘플링 규칙을 구성하여 그러한 메트릭이 100% 애플리케이션 트래픽에만 기반하도록 보장할 수 있고, 서비스를 통과하는 모든 요청의 트레이스를 100% 수집하지 않습니다. + +이 기능은 Datadog Agent v[7.40.0][19]+에서 이용할 수 있습니다. + +**참고**: 단일 스팬 샘플링 규칙은 [헤드 기반 샘플링](#head-based-sampling)이 유지하는 스팬을 제거하는 데 사용할 수 **없고**, 헤드 기반 샘플링이 제거한 추가적인 스팬을 유지하는 데만 사용할 수 있습니다. + +{{< tabs >}} +{{% tab "Java" %}} +SDK [버전 1.7.0][1]부터 Java 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 100%를 작업 `http.request`에 대하여 초당 스팬 최대 50개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +생플링 제어에 관한 자세한 내용은 [Java SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.7.0 +[2]: /ko/tracing/trace_collection/dd_libraries/java +{{% /tab %}} +{{% tab "Python" %}} +버전 [v1.4.0][1]부터 Python 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +생플링 제어에 관한 자세한 내용은 [Python SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-py/releases/tag/v1.4.0 +[2]: /ko/tracing/trace_collection/dd_libraries/python +{{% /tab %}} +{{% tab "Ruby" %}} +버전 [v1.5.0][1]부터 Ruby 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +샘플링 제어에 관한 자세한 내용은 [Ruby SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.5.0 +[2]: /ko/tracing/trace_collection/dd_libraries/ruby#sampling +{{% /tab %}} +{{% tab "Go" %}} +버전 [v1.41.0][1]부터 Go 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` +버전 [v1.60.0][3]부터 Go 애플리케이션의 리소스별 및 태그별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 리소스 `POST /api/create_issue`의 서비스에서 값이 `high`인 태그 `priority`의 스팬 `100%`를 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"resource": "POST /api/create_issue", "tags": { "priority":"high" }, "sample_rate":1.0}] +``` + +샘플링 제어에 관한 자세한 내용은 [Go SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.41.0 +[2]: /ko/tracing/trace_collection/dd_libraries/go +[3]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.60.0 +{{% /tab %}} +{{% tab "Node.js" %}} +Node.js 애플리케이션의 경우, 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +샘플링 제어에 관한 자세한 내용은 [Node.js SDK 설명서][1]를 참조하세요. + +[1]: /ko/tracing/trace_collection/dd_libraries/nodejs +{{% /tab %}} +{{% tab "PHP" %}} +버전 [v0.77.0][1]부터 PHP 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +샘플링 제어에 관한 자세한 내용은 [PHP SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-php/releases/tag/0.77.0 +[2]: /ko/tracing/trace_collection/dd_libraries/php +{{% /tab %}} +{{% tab "C++" %}} +버전 [v0.1.0][1]부터 C++ 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +@env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] +``` + +[1]: https://github.com/DataDog/dd-trace-cpp/releases/tag/v0.1.0 +{{% /tab %}} +{{% tab ".NET" %}} +버전 [v2.18.0][1]부터 .NET 애플리케이션의 서비스별 및 작업 이름별 **스팬** 샘플링 규칙을 `DD_SPAN_SAMPLING_RULES` 환경 변수를 사용해 설정합니다. + +예를 들어 이름이 `my-service`인 서비스의 스팬 `100%`를 작업 `http.request`에 대하여 초당 스팬 최대 `50`개의 레이트로 수집하려면 다음과 같이 설정합니다. + +``` +#using powershell +$env:DD_SPAN_SAMPLING_RULES='[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}]' + +#using JSON file +{ + "DD_SPAN_SAMPLING_RULES": "[{\"service\": \"my-service\", \"name\": \"http.request\", \"sample_rate\": 1.0, \"max_per_second\": 50}]" +} +``` + +샘플링 제어에 관한 자세한 내용은 [.NET SDK 설명서][2]를 참조하세요. + +[1]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.18.0 +[2]: /ko/tracing/trace_collection/dd_libraries/dotnet-core +{{% /tab %}} +{{< /tabs >}} + +
    레거시 App Analytics 메커니즘은 완전히 사용이 중단되었습니다. 개별 스팬을 수집하려면 단일 스팬 샘플링(위의 설명 참조)를 사용하고, 전체 트레이스를 수집하려면 헤드 기반 샘플링을 사용하세요.
    + +## 제품에서 수집된 스팬 {#product-ingested-spans} + +### RUM 트레이스 {#rum-traces} +`ingestion_reason:rum` + +웹 또는 모바일 애플리케이션에서 보낸 요청은 백엔드 서비스를 계측할 때 트레이스를 생성합니다. [Real User Monitoring과 APM의 통합][7]으로 웹 및 모바일 애플리케이션 요청을 해당 백엔드 트레이스와 연결하므로, 한눈에 프런트엔드 및 백엔드 데이터 전체를 확인할 수 있습니다. + +RUM 브라우저 SDK 버전 `4.30.0`부터 `traceSampleRate` 초기화 파라미터를 구성하여 수집되는 볼륨을 제어하고 백엔드 트레이스의 샘플링을 유지할 수 있습니다. `traceSampleRate`를 `0`~`100`의 숫자로 설정하세요. +`traceSampleRate` 값을 설정하지 않으면 브라우저 요청에서 수신되는 트레이스의 100%(기본값)가 Datadog으로 전송됩니다. + +다른 SDK의 트레이스 샘플링 레이트도 제어할 수 있음: + +| SDK | 파라미터 | 최소 버전 | +|-------------|-----------------------|--------------------| +| 브라우저 | `traceSampleRate` | [v4.30.0][8] | +| iOS | `tracingSamplingRate` | [1.11.0][9] _[1.13.0]부터 샘플링 레이트가 Ingestion Control 페이지에서 보고됨[16]_ | +| Android | `traceSampleRate` | [1.13.0][10] _[1.15.0]부터 샘플링 레이트가 Ingestion Control 페이지에서 보고됨[17]_ | +| Flutter | `tracingSamplingRate` | [1.0.0][11] | +| React Native | `tracingSamplingRate` | [1.0.0][12] _[1.2.0]부터 샘플링 레이트가 Ingestion Control 페이지에서 보고됨[18]_ | + +### Synthetic 트레이스 {#synthetic-traces} +`ingestion_reason:synthetics` 및 `ingestion_reason:synthetics-browser` + +HTTP 및 브라우저 테스트는 백엔드 서비스를 계측할 때 트레이스를 생성합니다. [Synthetic Testing과 APM의 통합][13]은 Synthetic 테스트를 해당 백엔드 트레이스와 연결합니다. 실패한 테스트 실행에서 문제의 근본 원인으로 이동하려면 해당 테스트 실행으로 생성된 트레이스를 보면 됩니다. + +기본적으로, Synthetic HTTP 및 브라우저 테스트의 100%가 백엔드 트레이스를 생성합니다. + +### 기타 제품 {#other-products} + +일부 추가적인 수집 이유는 특정 Datadog 제품에서 생성된 스팬에서 기인합니다. + +| 제품 | 수집 이유 | 수집 메커니즘 설명 | +|------------|-------------------------------------|---------------------------------| +| Serverless | `lambda` 및 `xray` | [Serverless 애플리케이션][14]에서 수신되고 Datadog SDK 또는 AWS X-Ray 통합을 사용하여 추적된 트레이스입니다. | +| App and API Protection | `appsec` | Datadog SDK에서 수집되었고 [AAP][15]가 위협으로 플래그한 트레이스입니다. | +| Data Observability: Jobs Monitoring | `data_jobs` | Datadog Java Tracer Spark 통합 또는 Databricks 통합에서 수집된 트레이스입니다. | + +## OpenTelemetry의 수집 메커니즘 {#ingestion-mechanisms-in-opentelemetry} +`ingestion_reason:otel` + +OpenTelemetry SDK 설정에 따라(OpenTelemetry Collector 또는 Datadog Agent 사용) 수집 샘플링을 제어하는 여러 가지 방법이 있습니다. 다양한 OpenTelemetry 설정의 OpenTelemetry SDK, OpenTelemetry Collector 및 Datadog Agent 수준에서 샘플링에 사용할 수 있는 옵션에 관한 자세한 내용은 [OpenTelemetry를 사용한 수집 샘플링][22]을 참조하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/tracing/trace_collection/dd_libraries/ +[2]: /ko/tracing/trace_pipeline/metrics/ +[3]: https://app.datadoghq.com/dash/integration/apm_ingestion_reasons +[4]: /ko/tracing/glossary/#trace-root-span +[5]: /ko/tracing/trace_pipeline/ingestion_controls/ +[6]: /ko/tracing/trace_pipeline/generate_metrics/ +[7]: /ko/real_user_monitoring/correlate_with_other_telemetry/apm/ +[8]: https://github.com/DataDog/browser-sdk/releases/tag/v4.30.0 +[9]: https://github.com/DataDog/dd-sdk-ios/releases/tag/1.11.0 +[10]: https://github.com/DataDog/dd-sdk-android/releases/tag/1.13.0 +[11]: https://github.com/DataDog/dd-sdk-flutter/releases/tag/datadog_flutter_plugin%2Fv1.0.0 +[12]: https://github.com/DataDog/dd-sdk-reactnative/releases/tag/1.0.0 +[13]: /ko/synthetics/apm/ +[14]: /ko/serverless/distributed_tracing/ +[15]: /ko/security/application_security/ +[16]: https://github.com/DataDog/dd-sdk-ios/releases/tag/1.13.0 +[17]: https://github.com/DataDog/dd-sdk-android/releases/tag/1.15.0 +[18]: https://github.com/DataDog/dd-sdk-reactnative/releases/tag/1.2.0 +[19]: https://github.com/DataDog/datadog-agent/releases/tag/7.40.0 +[20]: https://github.com/DataDog/datadog-agent/releases/tag/7.42.0 +[21]: /ko/tracing/guide/remote_config/ +[22]: /ko/opentelemetry/guide/ingestion_sampling_with_opentelemetry \ No newline at end of file diff --git a/content/ko/universal_service_monitoring/_index.md b/content/ko/universal_service_monitoring/_index.md index 40473c5aece..7ae566eead0 100644 --- a/content/ko/universal_service_monitoring/_index.md +++ b/content/ko/universal_service_monitoring/_index.md @@ -4,75 +4,85 @@ aliases: cascade: algolia: rank: 70 +description: Universal Service Monitoring과 Datadog Agent를 사용하여 코드를 계측하지 않고 스택 전체의 + 서비스 상태 메트릭을 모니터링하세요. further_reading: - link: /universal_service_monitoring/setup/ tag: 설명서 - text: 유니버설 서비스 모니터링 설정 + text: Universal Service Monitoring 설정 - link: https://www.datadoghq.com/blog/universal-service-monitoring-datadog/ tag: 블로그 - text: 유니버설 서비스 모니터링으로 초 단위로 핵심 신호 읽기 + text: Universal Service Monitoring을 사용한 초 단위 핵심 신호 - link: /getting_started/tagging/unified_service_tagging/ tag: 설명서 - text: 통합 서비스 태깅 -- link: /tracing/service_catalog/ + text: Unified Service Tagging +- link: /tracing/software_catalog/ tag: 설명서 - text: Datadog에 보고하는 서비스 검색 및 카탈로그 작성 + text: Datadog에 보고하는 서비스를 검색 및 카탈로그화 - link: /tracing/services/service_page/ tag: 설명서 - text: Datadog 서비스에 대해 자세히 알아보기 + text: Datadog 서비스에 관해 자세히 알아보기 - link: /tracing/services/services_map/ tag: 설명서 - text: 서비스 맵에 대해 더 알아보기 -title: 유니버설 서비스 모니터링 + text: Service Map에 관해 읽어보기 +- link: https://www.datadoghq.com/blog/monitor-connection-churn-datadog/ + tag: 블로그 + text: 모니터링 및 연결 이탈 해결을 위한 모범 사례 +- link: https://www.datadoghq.com/blog/software-catalog/ + tag: 블로그 + text: Software Catalog로 개발자 경험 및 협업 개선 +- link: https://learn.datadoghq.com/courses/getting-started-usm + tag: 학습 센터 + text: Universal Service Monitoring(USM) 시작하기 +title: Universal Service Monitoring --- +## 개요 {#overview} -## 개요 - -USM(유니버설 서비스 모니터링)를 사용하면 _코드를 계측하지 않고도_ 스택 전체에 광범위하게 서비스 상태를 가시화할 수 있습니다. Datadog 에이전트와 [통합 서비스 태깅][1]가 구성되어 있기만 하면 계측되지 않은 서비스(예: 서비스 카탈로그 및 서비스 맵)의 성능 데이터를 가시화할 수 있습니다. 또 [배포 추적][2], 모니터, 대시보드. SLO에도 USM을 사용할 수 있습니다. +Universal Service Monitoring(USM)은 _코드를 계측할 필요 없이_ 스택 전체의 서비스 상태 메트릭에 대한 가시성을 제공합니다. 이 기능은 오직 구성된 Datadog Agent 및 [Unified Service Tagging][1]만 사용하고, Software Catalog 및 Service Map과 같은 계측되지 않은 서비스에 관한 성능 데이터를 조회하게 해줍니다. USM은 [Deployment Tracking][2], 모니터, 대시보드, SLO와도 함께 작동합니다. -{{< img src="universal_service_monitoring/usm-demo.mp4" alt="유니버설 서비스 모니터링을 설명하는 비디오. 서비스 맵에서 서비스를 클릭하고 View Service Overview를 선택해 서비스 개요를 볼 수 있음." video="true" >}} +{{< img src="universal_service_monitoring/usm-demo.mp4" alt="Universal Service Monitoring 데모 비디오. Service Map에서 서비스를 클릭하고 서비스 개요 보기를 선택하면 서비스 개요에 액세스할 수 있습니다." video="true" >}} -## 설정 +## 설정 {#setup} -지원되는 플랫폼과 프로토콜, 시작하는 방법에 관한 자세한 내용은 [유니버설 서비스 모니터링 설정][7]을 참고하세요. +지원되는 플랫폼 및 프로토콜 관련 정보와 시작 지침을 보려면 [Universal Service Monitoring 설정][7]을 참조하세요. -
    베타 서비스: 추가 프로토콜 및 암호화 방법

    USM에는 클라우드 서비스를 확인하고 프로토콜 및 트래픽 암호화를 디코딩하는 방법을 추가 지원하는 서비스가 베타 서비스 중입니다. 이 베타 서비스에 액세스를 요청하려면 클라우드 서비스 확인 및 추가 프로토콜을 참고하세요.

    +
    미리 보기: 추가 프로토콜 및 암호화 방식

    USM의 클라우드 서비스 검색 기능과 추가 프로토콜 및 트래픽 암호화 방식의 디코딩 기능은 미리 보기 상태입니다. 자세한 정보를 알아보고 액세스를 요청하려면 클라우드 서비스 검색 및 추가 프로토콜을 참조하세요.

    -## 자동 서비스 태깅 +## 자동 서비스 태깅 {#automatic-service-tagging} -유니버설 서비스 모니터링에서는 인프라스트럭처에서 실행 중인 서비스를 자동으로 탐지합니다. [통합 서비스 태그][1]를 찾지 못할 경우에는 `app`, `short_image`, `kube_container_name`, `container_name`, `kube_deployment`, `kube_service` 태그 중 하나를 기반으로 이름을 지정합니다. +Universal Service Monitoring은 인프라에서 실행 중인 서비스를 자동으로 감지합니다. [통합 서비스 태그][1]를 찾지 못하면 다음 중 한 가지 태그에 따라 이름을 할당합니다. `app`, `short_image`, `kube_container_name`, `container_name`, `kube_deployment`, `kube_service`. -서비스 이름을 업데이트하려면 [통합 서비스 태깅][1]을 설정하세요. +서비스의 이름을 업데이트하려면 [Unified Service Tagging][1]을 설정하세요. -{{< img src="universal_service_monitoring/automatic-service-tagging.png" alt="Datadog에서 자동으로 서비스를 탐지하면 해당 서비스에 사용된 태그가 서비스 페이지 상단에 표시됨" style="width:80%;" >}} +{{< img src="universal_service_monitoring/automatic-service-tagging.png" alt="Datadog이 서비스를 자동으로 감지하면, 여기에 사용된 태그가 서비스 페이지 맨 위에 표시됨" style="width:80%;" >}} -## 서비스 탐색 +## 서비스 둘러보기 {#exploring-your-services} -에이전트를 구성한 후 서비스 카탈로그에 서비스가 나타날 때까지 5분 정도 기다리세요. 그 후 서비스를 클릭하면 서비스 상세 페이지가 나타납니다. 좌측 상단에 있는 `universal.http.server` 또는 `universal.http.client`는 작업 이름이며 서비스 텔레메트리가 유니버설 서비스 모니터링에서 온 것임을 알 수 있습니다. +Agent를 구성하고 나서 서비스가 Software Catalog에 표시될 때까지 약 5분 기다려 주세요. 서비스를 클릭하면 서비스 세부 정보 페이지가 표시됩니다. 왼쪽 상단에 있는 `universal.http.server` 또는 `universal.http.client` 작업 이름을 보면 서비스 텔레메트리가 Universal Service Monitoring에서 온 것임을 알 수 있습니다. -`universal.http.server` 작업 이름은 서비스에서 수신하는 트래픽의 메트릭 상태를 캡처합니다. 이에 대응하는 `universal.http.client` 작업 이름은 다른 대상으로 발신하는 트래픽 메트릭 상태를 나타냅니다. +`universal.http.server` 작업 이름에는 서비스에 대한 인바운드 트래픽의 상태 메트릭이 포함됩니다. 해당하는 `universal.http.client` 작업 이름은 다른 대상으로의 아웃바운드 트래픽을 나타냅니다. -{{< img src="universal_service_monitoring/select_service_operation_cropped.png" alt="사용 가능한 작업 이름을 보여주는 서비스 탭의 작업 드롭다운 메뉴" style="width:100%;" >}} +{{< img src="universal_service_monitoring/select_service_operation_cropped.png" alt="서비스 탭의 작업 드롭다운 메뉴에 사용 가능한 작업 이름이 표시됨" style="width:100%;" >}} -유니버설 서비스 모니터링을 활성화한 후 다음을 할 수 있습니다. +Universal Service Monitoring을 활성화하고 나면 다음과 같은 일을 할 수 있습니다. -- **APM** > **Service Catalog** 또는 **APM** > **Service Map**으로 이동해 [서비스와 종속성을 가시화][3]할 수 있습니다. +- **APM** > **Software Catalog** 또는 **APM** > **Service Map**으로 이동하여 [서비스 및 종속성을 시각화][3]합니다. -- 서비스 페이지 하나를 클릭해 핵심 신호 메트릭(요청, 오류, 지속 시간)을 확인하고 [배포 추적][2]을 사용해 이 메트릭과 최근 코드 변경 사항과의 상관 관계를 수립할 수 있습니다. +- 특정 서비스 페이지를 클릭하면 핵심 신호 메트릭(요청, 오류, 지속 시간)이 표시되고 [배포 추적][2]을 사용하여 이를 최근 코드 변경 사항과 상호 연계할 수 있습니다. -- `universal.http.*` 메트릭을 사용해 [모니터][4], [대시보드][5], [SLO][6]를 생성할 수 있습니다. +- `universal.http.*` 메트릭을 사용하여 [모니터][4], [대시보드][5], [SLO][6]를 생성합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ko/getting_started/tagging/unified_service_tagging [2]: /ko/tracing/services/deployment_tracking/ -[3]: /ko/tracing/service_catalog/ +[3]: /ko/tracing/software_catalog/ [4]: /ko/monitors/types/apm/?tab=apmmetrics [5]: /ko/dashboards/ -[6]: /ko/service_management/service_level_objectives/metric/ +[6]: /ko/service_level_objectives/metric/ [7]: /ko/universal_service_monitoring/setup/ \ No newline at end of file diff --git a/data/partials/home.ko.yaml b/data/partials/home.ko.yaml index c811ba77ba1..03ca32bf773 100644 --- a/data/partials/home.ko.yaml +++ b/data/partials/home.ko.yaml @@ -1,197 +1,302 @@ -guides: -- desc: Datadog으로 데이터를 전송하는 호스트에서 이벤트와 메트릭을 수집합니다. - link: getting_started/agent/ - link_text: 에이전트 시작하기 - title: 에이전트 설치하기 -- desc: 850개 이상의 내장 통합을 통해 메트릭, 트레이스 및 로그를 수집하여 Datadog으로 전송하세요. - link: getting_started/integrations/ - link_text: 통합 시작하기 - title: 통합 설정하기 -- desc: Datadog에서 수집한 데이터를 시각화하고 대시보드, 알림, 모니터 등을 생성합니다. - link: getting_started/application/ - link_text: Datadog 시작하기 - title: App에서 시작하기 heading: Datadog 설명서에 오신 것을 환영합니다. + +guides: + # There can be only 3 guides in this section + - title: Agent 설치하기 + desc: Datadog으로 데이터를 전송하는 호스트에서 이벤트와 메트릭을 수집합니다. + link_text: Agent 시작하기 + link: getting_started/agent/ + - title: Integrations 설정하기 + desc: "1,000개 이상의 내장 통합을 통해 메트릭, 트레이스 및 로그를 수집하여 Datadog에 전송하세요." + link_text: Integrations 시작하기 + link: getting_started/integrations/ + - title: 앱에서 시작하기 + desc: "Datadog에서 수집한 데이터를 시각화하고 대시보드, 경보, 모니터링 등을 생성합니다." + link_text: Datadog에서 시작하기 + link: getting_started/application/ + nav_sections: -- nav_section: - - name: 플랫폼 서비스 - - navtiles: - - desc: 데이터 수집 및 전송을 위한 Datadog 에이전트를 설치하고 설정합니다. - icon: agent-fill - link: agent/ - title: 에이전트 - - desc: 애플리케이션, 서비스, 시스템에 관한 데이터를 수집합니다. - icon: integrations - link: integrations/ - title: 통합 - - desc: OpenTelemetry 메트릭, 로그, 트레이스를 Datadog으로 전송합니다. - icon: open-telemetry - link: opentelemetry/ - title: OpenTelemetry - - desc: 데이터를 시각화하고 분석하여 인사이트를 생성합니다. - icon: dashboard - link: dashboards/ - title: 대시보드 - - desc: 모니터와 알림을 생성, 편집 및 관리합니다. - icon: monitor - link: monitors/ - title: 모니터 및 알람 - - desc: 애플리케이션 및 인프라스트럭처의 이상 징후를 감지하고 표면화합니다. - icon: watchdog - link: watchdog/ - title: Datadog Watchdog - - desc: 모바일 기기에서 Datadog 알림, 인시던트 등을 확인합니다. - icon: mobile - link: mobile/ - title: 모바일 애플리케이션 - - desc: 위험 요소가 있는 조직의 인시던트 식별, 분석 및 완화 - icon: incidents - link: service_management/incident_management - title: '인시던트 관리 ' - - desc: 애플리케이션 및 인프라스트럭처에서 중요한 변경 사항 및 알림을 추적합니다. - icon: events - link: events/ - title: 이벤트 - - desc: 기술 스택 전반에서 프로세스 자동화 및 오케스트레이션 - icon: workflows - link: service_management/workflows/ - title: 워크플로 자동화 - - desc: 로우코드 애플리케이션으로 내부 도구 간소화하기 - icon: app-builder - link: service_management/app_builder/ - title: 앱 빌더 -- nav_section: - - name: 제품 - - navtiles: - - desc: 호스트, 컨테이너, 프로세스 및 서버리스 기능을 추적합니다. - icon: host-map - link: infrastructure/ - title: 인프라스트럭처 - - desc: 서버리스 애플리케이션의 성능 문제를 감지하고 해결합니다. - icon: serverless - link: serverless/ - title: 서버리스 - - desc: 태그가 지정된 개체를 통해 네트워크 트래픽에 대한 데이터를 수집하고 그래프로 표시합니다. - icon: network - link: network_monitoring/ - title: 네트워크 모니터링 - - desc: 통합된 관찰 가능성 및 비용 데이터로 클라우드 지출을 관리합니다. - icon: cloud-cost-management - link: cloud_cost_management/ - title: 클라우드 비용 관리 - - desc: 즉시 사용 가능한 성능 대시보드 및 분산된 트레이스를 탐색합니다. - icon: apm - link: tracing/ - title: APM - - desc: 성능 스냅샷을 비교하고 병목 현상에 대해 자세히 살펴봅니다. - icon: profiling-1 - link: profiler/ - title: 지속적 프로파일러 - - desc: 강화된 대시보드, 쿼리 메트릭 및 쿼리 샘플을 확인합니다. - icon: database-2 - link: database_monitoring/ - title: 데이터베이스 모니터링 - - desc: 데이터 스트리밍 파이프라인의 성능 추적 및 개선 - icon: datastreams-monitoring - link: data_streams/ - title: 데이터 스트림 모니터링 - - desc: 데이터 처리 작업 모니터링 및 최적화 - icon: data-jobs-monitoring - link: data_jobs/ - title: 데이터 작업 모니터링 - - desc: 코드 변경 없이 서비스를 검색하고 매핑하며, 모니터링합니다. - icon: usm - link: universal_service_monitoring/ - title: 범용 서비스 모니터링 - - desc: 가동 시간을 보장하고, 지역적 문제를 제기하며, 애플리케이션 성능을 테스트합니다. - icon: synthetics - link: synthetics/ - title: 신서틱(Synthetic) 모니터링 - - desc: 웹, 모바일, 백엔드에서 크리티컬한 오류를 파악하고 해결하는 속도 높이기 - icon: error-tracking - link: error_tracking/ - title: 오류 추적 - - desc: 애플리케이션 사용자 경험을 수집하고 관찰 및 분석합니다. - icon: rum - link: real_user_monitoring/ - title: 실제 사용자 모니터링 - - desc: 사용자 행동에 대한 인사이트를 확보하고 데이터 기반 제품 의사 결정을 내리세요 - icon: product-analytics - link: product_analytics/ - title: 제품 분석 - - desc: 모바일 애플리케이션의 사용자 여정 및 비즈니스 거래 모니터링 - icon: mobile - link: mobile_app_testing/ - title: 모바일 애플리케이션 테스팅 - - desc: CI/CD 제공 업체와 코딩 없는 통합 및 end-to-end 테스트를 수행합니다. - icon: continuous-testing - link: continuous_testing/ - title: 지속적인 테스트 - - desc: CI 파이프라인의 상태 및 성능 모니터링 - icon: ci - link: continuous_integration/ - title: CI 가시성 - - desc: 취약한 테스트를 감지하고 취약한 테스트를 기져오는 커밋 식별 - icon: ci - link: tests/ - title: 테스트 최적화 - - desc: 위협, 취약성 및 오설정 탐지 - icon: security-platform - link: security/ - title: 보안 - - desc: 메트릭에 대한 배포를 탐색하고 생성합니다. - icon: metric - link: metrics/ - title: 메트릭 - - desc: 수집된 로그를 처리하고 모니터링 및 보관합니다. - icon: log - link: logs/ - title: 로그 관리 - - desc: 텔레메트리 파이프라인을 관리하고 모니터링합니다. - icon: pipelines - link: observability_pipelines/ - title: 관측 가능성 파이프라인 - - desc: LLM 애플리케이션 추적 및 모니터링하고 보안 유지하기 - icon: llm-observability - link: llm_observability/ - title: LLM 관찰 가능성 - - desc: 원격 측정, 메타데이터, 워크플로를 통합하여 신속하게 전달하세요 - icon: internal-developer-portal-wui - link: internal_developer_portal - title: 내부 개발자 포털 -- nav_section: - - name: 구성 - - navtiles: - - desc: Datadog API를 사용해 보세요. - icon: api - link: api/latest/ - title: API - - desc: 조직 기반 설정 및 빌링에 액세스합니다. - icon: cog-2 - link: account_management/ - title: 계정 관리 - - desc: Datadog의 데이터 보호에 대해 알아보세요. - icon: security-lock - link: data_security/ - title: 데이터 보안 - - desc: Datadog 플랫폼에서 개발합니다. - icon: dev-code - link: developers/ - title: 개발자 - - desc: 모범 사례에 대해 알아보고 고객 환경 모니터링 시작하기 - icon: colab - link: partners/ - title: 파트너 + # For a better rendering, sections should include sub-sections with multiple of 4. + - nav_section: + - name: 'Observability' + - navtiles: + - title: Infrastructure + link: infrastructure/ + icon: host-map + desc: 호스트 및 인프라 구성 요소의 상태와 성능을 봅니다. + - title: Metrics + link: metrics/ + icon: metric + desc: "메트릭에 대한 배포를 탐색, 검색 및 생성합니다." + - title: Container Monitoring + link: containers/ + icon: container + desc: "컨테이너화된 환경의 상태, 성능 및 보안을 모니터링합니다." + - title: Serverless + link: serverless/ + icon: serverless + desc: 서버리스 애플리케이션의 성능 문제를 감지하고 해결합니다. + - title: Network Monitoring + link: network_monitoring/ + icon: network + desc: 태그가 지정된 개체를 사용해 네트워크 트래픽에 대한 데이터를 수집하고 그래프로 표시합니다. + - title: Cloud Cost Management + link: cloud_cost_management/ + icon: cloud-cost-management + desc: 통합된 관찰 가능성 및 비용 데이터로 클라우드 지출을 관리합니다. + - title: Cloudcraft + link: cloudcraft/ + icon: cloudcraft + desc: 클라우드 인프라스트럭처를 실시간으로 시각화하고 다이어그램으로 표현합니다. + - title: Storage Management + link: infrastructure/storage_management/ + icon: file-wui + desc: "클라우드 스토리지 지출, 사용량 및 데이터 최신성을 최적화하고 문제를 해결합니다." + - title: APM + link: tracing/ + icon: apm + desc: 즉시 사용 가능한 성능 대시보드 및 분산된 트레이스를 탐색합니다. + - title: Universal Service Monitoring + link: universal_service_monitoring/ + icon: usm + desc: 코드 변경 없이 서비스를 검색하고 매핑하며 모니터링합니다. + - title: Continuous Profiler + link: profiler/ + icon: profiling-1 + desc: 성능 스냅샷을 비교하고 병목 현상에 대해 자세히 살펴봅니다. + - title: Database Monitoring + link: database_monitoring/ + icon: database-2 + desc: "강화된 대시보드, 쿼리 메트릭 및 쿼리 샘플을 확인합니다." + - title: Data Streams Monitoring + link: data_streams/ + icon: datastreams-monitoring + desc: 데이터 스트리밍 파이프라인의 성능을 추적 및 개선합니다. + - title: Data Observability + link: data_observability/ + icon: data-observability-wui + desc: "데이터 품질, 성능, 비용을 모니터링하여 이상을 감지하고 다운스트림 문제를 방지합니다." + - title: Log Management + link: logs/ + icon: log + desc: 수집된 로그를 처리하고 모니터링 및 보관합니다. + - title: Sensitive Data Scanner + link: security/sensitive_data_scanner/ + icon: sensitive-data-scanner + desc: "텔레메트리 전체에서 PII, API 키, 신용카드 번호와 같은 민감한 데이터를 감지하고 삭제합니다." + - title: Observability Pipelines + link: observability_pipelines/ + icon: pipelines + desc: 텔레메트리 파이프라인을 관리하고 모니터링합니다. + - title: Error Tracking + link: error_tracking/ + icon: error-tracking + desc: "웹, 모바일 및 백엔드에서 크리티컬한 오류를 파악하고 문제 해결 속도를 높입니다." + - nav_section: + - name: 'AI' + - navtiles: + - title: Bits AI Agent + link: bits_ai/ + icon: bits-ai + desc: "개발, 보안 및 운영 워크플로를 자동화하는 에이전틱 동료입니다." + - title: Watchdog + link: watchdog/ + icon: watchdog + desc: 애플리케이션 및 인프라스트럭처의 이상 징후를 감지하고 표면화합니다. + - title: LLM Observability + link: llm_observability/ + icon: llm-observability + desc: "LLM 애플리케이션을 트레이스, 모니터링하고 보안을 유지합니다." + - nav_section: + - name: '디지털 경험' + - navtiles: + - title: Real User Monitoring + link: real_user_monitoring/ + icon: rum + desc: "애플리케이션 사용자 경험을 수집, 관찰 및 분석합니다." + - title: Product Analytics + link: product_analytics/ + icon: product-analytics + desc: 사용자 행동에 대한 인사이트를 얻어 데이터에 기반한 제품 의사 결정을 내립니다. + - title: 세션 리플레이 + link: session_replay/ + icon: session-replay + desc: 사용자 경험을 캡처하여 시각적으로 리플레이합니다. + - title: Synthetic Monitoring + link: synthetics/ + icon: synthetics + desc: "가동 시간을 보장하고, 지역적 문제를 제기하며, 애플리케이션 성능을 테스트합니다." + - title: Mobile App Testing + link: mobile_app_testing/ + icon: mobile + desc: 모바일 애플리케이션의 사용자 여정 및 비즈니스 트랜잭션을 모니터링합니다. + - nav_section: + - name: '소프트웨어 제공' + - navtiles: + - title: Internal Developer Portal + link: internal_developer_portal/ + icon: internal-developer-portal-wui + desc: "텔레메트리, 메타데이터 및 워크플로를 통합해 전달 속도를 높입니다." + - title: CI Visibility + link: continuous_integration/ + icon: ci + desc: CI 파이프라인의 상태와 성능을 모니터링합니다. + - title: Test Optimization + link: tests/ + icon: flaky-test-wui + desc: 취약한 테스트를 감지하고 취약한 테스트를 가져오는 커밋을 식별합니다. + - title: Continuous Testing + link: continuous_testing/ + icon: continuous-testing + desc: CI/CD 제공업체와 코딩 없는 통합 및 엔드투엔드 테스트를 수행합니다. + - title: IDE Plugins + link: ide_plugins/ + icon: ide + desc: 코딩하면서 IDE에서 Datadog 서비스와 직접 상호 작용합니다. + - title: DORA Metrics + link: dora_metrics/ + icon: ci + desc: 조직의 소프트웨어 배포 프로세스를 측정하고 개선합니다. + - title: Feature Flag + link: feature_flags/ + icon: signpost + desc: "기능을 토글하고 A/B 테스트를 실행하고, 코드를 배포하지 않고 점진적으로 기능을 롤아웃합니다." + - title: Code Coverage + link: code_coverage/ + icon: code-3 + desc: 커버리지 데이터 추세를 시각화하고 커버리지 임계값에 따라 PR 병합을 차단합니다. + - nav_section: + - name: '보안' + - navtiles: + - title: Cloud SIEM + link: security/cloud_siem/ + icon: siem + desc: "클라우드 및 온프레미스 시스템 전체의 보안 위협을 감지, 조사하고 이에 대응합니다." + - title: Code Security + link: security/code_security/ + icon: security-code-security + desc: "코드, 종속성 및 코드형 인프라의 취약성을 감지하고 수정합니다." + - title: Cloud Security + link: security/cloud_security_management/ + icon: cloud-security-management + desc: "클라우드 인프라 전체에서 지속적으로 구성을 감사하고, ID 리스크를 식별하고 위협을 감지합니다." + - title: App and API Protection + link: security/application_security/ + icon: app-sec + desc: 프로덕션 애플리케이션 및 API를 노리는 위협을 실시간으로 감지하여 차단합니다. + - title: Workload Protection + link: security/workload_protection/ + icon: security-workload-security + desc: "파일, 네트워크, 프로세스 활동을 모니터링하여 인프라에 대한 실시간 위협을 감지합니다." + - title: Sensitive Data Scanner + link: security/sensitive_data_scanner/ + icon: sensitive-data-scanner + desc: "텔레메트리 전체에서 PII, API 키, 신용카드 번호와 같은 민감한 데이터를 감지하고 삭제합니다." + - nav_section: + - name: 'Service Management' + - navtiles: + - title: Incident Management + link: service_management/incident_management + icon: incidents + desc: "위험 요소가 있는 조직의 인시던트를 식별, 분석 및 완화합니다." + - title: OnCall + link: incident_response/on-call/ + icon: on-call + desc: 온콜 일정과 페이징을 통해 경보를 적절한 팀원에게 라우팅하고 에스컬레이션합니다. + - title: Status Pages + link: incident_response/status_pages/ + icon: status-page-wui + desc: 서비스 이용 가능 여부 및 인시던트 업데이트를 사용자 및 이해관계자에게 전달합니다. + - title: Service Level Objectives + link: service_level_objectives/ + icon: slos + desc: 성능 목표를 정의하고 추적하여 일관성 있는 고객 경험을 제공합니다. + - title: Case Management + link: incident_response/case_management/ + icon: case-management + desc: "중앙 집중형 소유권 및 팁 협업으로 문제를 분류, 추적 및 해결합니다." + - title: Workflow Automation + link: service_management/workflows/ + icon: workflows + desc: 기술 스택 전반에서 프로세스를 자동화 및 오케스트레이션합니다. + - title: App Builder + link: service_management/app_builder/ + icon: app-builder + desc: 로우코드 애플리케이션을 생성하여 내부 도구를 간소화합니다. + - nav_section: + - name: '플랫폼 기능 및 Datadog 확장' + - navtiles: + - title: Monitors and Alerting + link: monitors/ + icon: monitor + desc: "모니터링과 알림을 생성, 편집 및 관리합니다." + - title: Dashboards + link: dashboards/ + icon: dashboard + desc: 데이터를 시각화하고 분석하여 인사이트를 생성합니다. + - title: Notebooks + link: notebooks/ + icon: notebook + desc: "조사, 포스트모템 및 런북에 대한 실시간 그래프를 포함한 리치 텍스트 문서를 생성합니다." + - title: Mobile App + link: mobile/ + icon: mobile + desc: "모바일 장치에서 Datadog 경보, 인시던트 등을 조회합니다." + - title: Fleet Automation + link: agent/fleet_automation/ + icon: fleet-automation-wui + desc: "원격으로 Agent를 대규모로 구성, 업그레이드 및 관리합니다." + - title: 계정 관리 + link: account_management/ + icon: cog-2 + desc: "조직 기반 설정, 청구 및 데이터 액세스 제어를 관리합니다." + - title: Event Management + link: events/ + icon: events + desc: 애플리케이션 및 인프라스트럭처에서 중요한 변경 사항 및 경보를 추적합니다. + - title: CoScreen + link: coscreen/ + icon: coscreen + desc: 페어 프로그래밍 및 인시던트 관리를 위해 애플리케이션 창을 공유하고 창과 상호 작용합니다. + - title: OpenTelemetry + link: opentelemetry/ + icon: open-telemetry + desc: "OpenTelemetry 메트릭, 로그 및 트레이스를 Datadog으로 전송합니다." + - title: Integrations + link: integrations/ + icon: integrations + desc: "애플리케이션, 서비스 및 시스템에 관한 데이터를 수집합니다." + - title: API + link: api/latest/ + icon: api + desc: Datadog API를 사용해 보세요. + - title: Data Security + link: data_security/ + icon: security-lock + desc: Datadog의 데이터 보호에 대해 알아보세요. + - title: Client SDK + link: client_sdks/ + icon: building-block + desc: 플랫폼에 Datadog SDK를 설치하고 구성합니다. + - title: Extend Datadog + link: extend/ + icon: dev-code + desc: Datadog 플랫폼을 확장합니다. + - title: Partners + link: partners/ + icon: colab + desc: 모범 사례에 대해 알아보고 고객 환경 모니터링을 시작하세요. + popular_searches: -- link: api/ - title: "API \b설명서" - weight: 10 -- link: getting_started/agent/ - title: 에이전트 설치 - weight: 20 -- link: logs/log_collection/ - title: 로그 수집 - weight: 30 -- link: integrations/ - title: 통합 설정 - weight: 40 + - title: API 설명서 + link: api/ + weight: 10 + - title: Agent 설치 + link: getting_started/agent/ + weight: 20 + - title: 로그 수집 + link: logs/log_collection/ + weight: 30 + - title: 통합 설정 + link: integrations/ + weight: 40 From 5595fa95db7a3c9e0b5ada7095d19459f65200ef Mon Sep 17 00:00:00 2001 From: Brian Deutsch Date: Thu, 11 Jun 2026 13:22:57 -0400 Subject: [PATCH 2/8] Fix build: inline RUM card-grid in ja/real_user_monitoring/_index.md (EN deleted the partial mid-roundtrip in #36629). Co-authored-by: Cursor --- content/ja/real_user_monitoring/_index.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/ja/real_user_monitoring/_index.md b/content/ja/real_user_monitoring/_index.md index 12eeafc42ef..976b96c1881 100644 --- a/content/ja/real_user_monitoring/_index.md +++ b/content/ja/real_user_monitoring/_index.md @@ -113,7 +113,18 @@ Datadog の*セッションリプレイ*は、ユーザーの Web ブラウジ アプリケーションタイプを選択して、RUM データの収集を開始します。 -{{< partial name="rum/rum-getting-started.html" >}} +{{< card-grid card_width="210" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/browser/" src="integrations_logos/javascript_large.svg" alt="browser" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/android/setup" src="integrations_logos/android_large.svg" alt="android" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/ios/setup" src="integrations_logos/ios_large.svg" alt="ios" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/react_native/setup" src="integrations_logos/react-native_large.svg" alt="react native" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/flutter/setup" src="integrations_logos/flutter_large.svg" alt="flutter" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/android/setup" src="integrations_logos/android_tv_large.svg" alt="android tv" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/ios/setup" src="integrations_logos/tv_os_large.svg" alt="tv OS" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/roku/setup" src="integrations_logos/roku_large.svg" alt="Roku" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/unity/setup" src="integrations_logos/rum-unity_large.svg" alt="rum-unity" >}} + {{< image-card href="/real_user_monitoring/application_monitoring/kotlin_multiplatform/setup" src="integrations_logos/kotlin-multiplatform_large.svg" alt="Kotlin Multiplatform" >}} +{{< /card-grid >}}
    From da88e74f9df40ffc4b052b5d1909b080f9ea719a Mon Sep 17 00:00:00 2001 From: "webops-guacbot[bot]" <214537265+webops-guacbot[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:48:44 +0000 Subject: [PATCH 3/8] Updates 60 translation(s) --- content/es/llm_observability/lapdog.md | 168 ++++ content/es/monitors/downtimes/_index.md | 197 +++-- content/es/monitors/types/metric.md | 189 +++-- .../es/network_monitoring/devices/setup.md | 154 ++++ .../iac_security/iac_rules/_index.md | 24 + .../aws_lambda/distributed_tracing.md | 306 ++++--- content/es/service_level_objectives/_index.md | 376 +++++++++ .../es/tracing/services/inferred_services.md | 81 +- .../trace_collection/compatibility/java.md | 561 ++++++++----- .../fr/getting_started/integrations/azure.md | 439 ++++++++++ content/fr/llm_observability/lapdog.md | 168 ++++ content/fr/logs/explorer/_index.md | 43 +- content/fr/monitors/types/metric.md | 224 ++++++ .../devices/snmp_metrics.md | 233 ++++++ .../network_monitoring/network_path/setup.md | 623 ++++++++++++++ content/fr/remote_configuration/_index.md | 213 +++++ .../aws_lambda/distributed_tracing.md | 292 ++++--- content/fr/serverless/aws_lambda/metrics.md | 490 +++++++++++ content/fr/service_level_objectives/_index.md | 376 +++++++++ content/fr/tracing/glossary/_index.md | 113 +-- .../fr/tracing/services/inferred_services.md | 111 +-- .../trace_collection/compatibility/java.md | 538 +++++++++++++ .../trace_collection/library_config/java.md | 759 ++++++++++++------ content/ja/account_management/teams/_index.md | 210 +++-- .../cluster_agent/admission_controller.md | 113 +-- content/ja/dashboards/querying/_index.md | 167 ++-- .../software_catalog/entity_model/_index.md | 606 ++++++++++++++ content/ja/metrics/_index.md | 170 ++-- .../dogstatsd_metrics_submission.md | 125 +-- .../cloud_network_monitoring/setup.md | 646 +++++++++++++++ content/ja/notebooks/_index.md | 339 ++++---- content/ja/profiler/_index.md | 103 +-- content/ja/tracing/trace_collection/_index.md | 196 +++-- .../trace_context_propagation/_index.md | 507 ++++++++---- .../ja/tracing/trace_explorer/query_syntax.md | 243 +++--- .../agent-configuration-files.md | 83 +- .../agent/configuration/secrets-management.md | 466 +++++------ content/ko/containers/docker/_index.md | 429 +++++----- .../ko/containers/kubernetes/integrations.md | 256 ++++-- .../connect_dbm_and_apm.md | 450 ++++++----- .../setup_postgres/rds/_index.md | 653 +++++++++++++++ .../setup_postgres/selfhosted.md | 234 +++--- content/ko/dora_metrics/setup/_index.md | 586 +++++++++++++- .../ko/getting_started/integrations/aws.md | 310 +++---- content/ko/ide_plugins/vscode/_index.md | 218 +++++ content/ko/llm_observability/lapdog.md | 167 ++++ content/ko/logs/explorer/_index.md | 49 +- content/ko/logs/log_collection/java.md | 487 +++++------ .../logs/log_configuration/archive_search.md | 235 ++++++ content/ko/logs/log_configuration/archives.md | 309 ++++--- content/ko/monitors/types/anomaly.md | 273 +++++++ .../cloud_network_monitoring/setup.md | 647 +++++++++++++++ .../setup/collector_exporter/install.md | 311 +++++++ .../setup/otlp_ingest_in_the_agent.md | 397 +++++++++ .../browser/troubleshooting.mdoc.md | 15 + .../rum_without_limits/_index.md | 112 +++ .../aws_lambda/instrumentation/nodejs.md | 475 +++++++++++ .../ko/tracing/metrics/metrics_namespace.md | 167 ++++ .../tracing/metrics/runtime_metrics/_index.md | 314 ++++++++ content/ko/tracing/trace_collection/_index.md | 196 +++-- 60 files changed, 14492 insertions(+), 3450 deletions(-) create mode 100644 content/es/llm_observability/lapdog.md create mode 100644 content/es/network_monitoring/devices/setup.md create mode 100644 content/es/security/code_security/iac_security/iac_rules/_index.md create mode 100644 content/es/service_level_objectives/_index.md create mode 100644 content/fr/getting_started/integrations/azure.md create mode 100644 content/fr/llm_observability/lapdog.md create mode 100644 content/fr/monitors/types/metric.md create mode 100644 content/fr/network_monitoring/devices/snmp_metrics.md create mode 100644 content/fr/network_monitoring/network_path/setup.md create mode 100644 content/fr/remote_configuration/_index.md create mode 100644 content/fr/serverless/aws_lambda/metrics.md create mode 100644 content/fr/service_level_objectives/_index.md create mode 100644 content/fr/tracing/trace_collection/compatibility/java.md create mode 100644 content/ja/internal_developer_portal/software_catalog/entity_model/_index.md create mode 100644 content/ja/network_monitoring/cloud_network_monitoring/setup.md create mode 100644 content/ko/database_monitoring/setup_postgres/rds/_index.md create mode 100644 content/ko/ide_plugins/vscode/_index.md create mode 100644 content/ko/llm_observability/lapdog.md create mode 100644 content/ko/logs/log_configuration/archive_search.md create mode 100644 content/ko/monitors/types/anomaly.md create mode 100644 content/ko/network_monitoring/cloud_network_monitoring/setup.md create mode 100644 content/ko/opentelemetry/setup/collector_exporter/install.md create mode 100644 content/ko/opentelemetry/setup/otlp_ingest_in_the_agent.md create mode 100644 content/ko/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md create mode 100644 content/ko/real_user_monitoring/rum_without_limits/_index.md create mode 100644 content/ko/serverless/aws_lambda/instrumentation/nodejs.md create mode 100644 content/ko/tracing/metrics/metrics_namespace.md create mode 100644 content/ko/tracing/metrics/runtime_metrics/_index.md diff --git a/content/es/llm_observability/lapdog.md b/content/es/llm_observability/lapdog.md new file mode 100644 index 00000000000..517533c8b72 --- /dev/null +++ b/content/es/llm_observability/lapdog.md @@ -0,0 +1,168 @@ +--- +description: Ejecute un LLM Observability dashboard localmente para inspeccionar las + trazas del agente de codificación y de la aplicación en su navegador sin una cuenta + de Datadog. +further_reading: +- link: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md + tag: GitHub + text: README de Lapdog en GitHub +- link: /llm_observability/instrumentation/sdk + tag: Documentación + text: Instrumente su aplicación con LLM Observability SDK. +- link: /llm_observability/instrumentation/auto_instrumentation + tag: Documentación + text: Auto-instrumentación para LLM Observability. +title: Lapdog +--- +## Descripción general {#overview} + +Lapdog es una herramienta de desarrollo local para LLM Observability. Ejecute un agente en `localhost:8126` que capture cada span, prompt, llamada a herramienta y costo de su aplicación LLM, o de un agente de codificación como Claude Code, Codex o Pi, y transmita estos datos a un dashboard en el navegador en [lapdog.datadoghq.com](https://lapdog.datadoghq.com). No se requiere una cuenta de Datadog. + +Lapdog está construido sobre el agente de prueba de código abierto [Datadog APM test agent][1]. También puede reenviar la telemetría capturada a Datadog para que los mismos datos aparezcan en LLM Observability junto con su tráfico de producción. + +## Lo que obtiene {#what-you-get} + +- Trazas por sesión con prompts, llamadas a herramientas y respuestas +- Uso de tokens y costo estimado, desglosado por entrada, salida y aciertos de caché +- Fricción de permisos: llamadas a herramientas restringidas y tiempos de espera +- Uso de ventana de contexto y tasa de aciertos de caché durante la sesión +- Estado en vivo del agente de codificación en ejecución (ejecutándose, inactivo, bloqueado) + +## Instalar {#install} + +{{< tabs >}} +{{% tab "Homebrew (macOS)" %}} + +```shell +brew install datadog/lapdog/lapdog +``` +{{% /tab %}} +{{% tab "pip / pipx" %}} + +```shell +pipx install ddapm-test-agent +# or: pip install ddapm-test-agent +``` +{{% /tab %}} +{{< /tabs >}} + +Para Docker, desde el código fuente y otros caminos de instalación, consulta la [guía de instalación de Lapdog][1]. + +## Ejecutar un agente de codificación {#run-a-coding-agent} + +Lapdog instrumenta agentes de codificación de extremo a extremo. Cada prompt, llamada a herramienta y solicitud de permiso se convierte en un tramo en una sesión que puede reproducir desde el dashboard. + +{{< tabs >}} +{{% tab "Claude Code" %}} + +```shell +lapdog claude +``` +Inicie el agente local, instale el complemento de Lapdog Claude Code y lance Claude Code. +{{% /tab %}} +{{% tab "Codex" %}} + +```shell +lapdog codex +``` +Inicie el agente local, luego lance Codex con un proxy compatible con OpenAI y un observador JSONL que capture cada LLM request, llamada a herramienta y paso en una sesión. +{{% /tab %}} +{{% tab "Pi" %}} + +```shell +lapdog pi +``` +Inicie el agente local, instale la extensión Lapdog Pi y lance Pi con `LAPDOG_URL` configurado. +{{% /tab %}} +{{% tab "Otro" %}} + +```shell +lapdog python my_app.py +``` +Ejecute cualquier comando con `ddtrace` auto-instrumentación apuntando al agente local. Útil para instrumentar su propia aplicación impulsada por LLM durante el desarrollo. +{{% /tab %}} +{{< /tabs >}} + +**Nota**: `lapdog claude` y `lapdog codex` están respaldados por proxy: el agente local de Lapdog se encuentra en la ruta de solicitud del modelo en vivo. Mantenga Lapdog en funcionamiento hasta que el agente de codificación salga. Si detiene o finaliza Lapdog a mitad de sesión, el agente de codificación lanzado puede dejar de avanzar en las llamadas al modelo. Reinicie el agente de codificación después de reiniciar Lapdog. `lapdog pi` y las configuraciones de hook-only fallan en modo abierto si Lapdog se detiene: el agente de codificación continúa ejecutándose, pero se pierden los datos capturados. + +## Ver sesiones {#view-sessions} + +Mientras una sesión está en ejecución, abra [lapdog.datadoghq.com](https://lapdog.datadoghq.com). El dashboard lee directamente de su agente local en `localhost:8126`; no se requiere iniciar sesión ni tener una cuenta de Datadog. + +Si ha cambiado el puerto local, sustitúyalo desde la {{< ui >}}Collecting sessions{{< /ui >}} insignia en el encabezado del dashboard. + +## Reenviar eventos a Datadog {#forward-events-to-datadog} + +Para enviar eventos capturados a LLM Observability en Datadog de forma dual, configure su clave de API y pase `--forward`: + +```shell +DD_API_KEY= lapdog --forward claude +``` + +Los tramos reenviados están etiquetados `source:lapdog` para que pueda distinguir las sesiones de desarrollo del tráfico de producción. + +## Comandos útiles {#useful-commands} + +| Comando | Qué hace | +| --- | --- | +| `lapdog claude` | Lance Claude Code con la captura conectada |. +| `lapdog codex` | Lance Codex con el proxy de OpenAI y el observador JSONL conectados |. +| `lapdog pi` | Lance Pi con la extensión Lapdog instalada |. +| `lapdog python app.py` | Ejecute cualquier aplicación con instrumentación de trazado |. +| `lapdog start` | Inicie el agente local en segundo plano |. +| `lapdog stop` | Detenga el agente en segundo plano |. +| `lapdog status` | Muestre si el agente está en ejecución |. + +Para la lista completa de opciones, ejecute `lapdog --help`. + +## Desinstalar {#uninstall} + +Siga estos pasos para eliminar Lapdog y el estado que escribe en su directorio de inicio. Su gestor de paquetes (Homebrew, pip o pipx) solo limpia lo que instaló; no afecta `~/.lapdog/`, el complemento Claude Code, ni la extensión Pi. + +1. Detenga el agente local: + + ```shell + lapdog stop + ``` + +2. Elimine el complemento Claude Code (si está instalado): + + ```shell + claude plugin uninstall lapdog@lapdog + claude plugin marketplace remove lapdog + ``` + +3. Elimine la extensión Pi (solo si ejecutó `lapdog pi`): + + ```shell + rm -f ~/.pi/agent/extensions/lapdog.ts + ``` + +4. Elimine el directorio de trabajo de Lapdog: + + ```shell + rm -rf ~/.lapdog + ``` + +5. Desinstale el paquete: + + {{< tabs >}} + {{% tab "Homebrew (macOS)" %}} + ```shell + brew uninstall lapdog + brew untap datadog/lapdog + ``` + {{% /tab %}} + {{% tab "pip / pipx" %}} + ```shell + pipx uninstall ddapm-test-agent + # or: pip uninstall ddapm-test-agent + ``` + {{% /tab %}} + {{< /tabs >}} + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md \ No newline at end of file diff --git a/content/es/monitors/downtimes/_index.md b/content/es/monitors/downtimes/_index.md index dba6ec21051..23b9bd3fff4 100644 --- a/content/es/monitors/downtimes/_index.md +++ b/content/es/monitors/downtimes/_index.md @@ -3,187 +3,186 @@ aliases: - /es/monitors/notify/downtimes/ cascade: algolia: - subcategory: Tiempos de inactividad + subcategory: Downtimes tags: - - Tiempos de inactividad - - Silenciar monitores -description: Programar tiempos de inactividad en tus monitores Datadog para evitar - recibir alertas durante periodos de tiempo específicos + - downtimes + - mute monitors +description: Programe tiempos de inactividad para sus Datadog monitors para evitar + alertas durante períodos específicos. further_reading: - link: /monitors/guide/suppress-alert-with-downtimes tag: Guía text: Suprimir alertas con tiempos de inactividad - link: /monitors/guide/scoping_downtimes tag: Guía - text: Delimitar los cronogramas de tiempos de inactividad + text: Definiendo horarios de tiempos de inactividad - link: /monitors/quality/ tag: Documentación - text: Ver monitores silenciados durante un periodo prolongado + text: Ver monitors que están silenciados por un período prolongado. - link: /monitors/ tag: Documentación - text: Crear monitores + text: Crear monitors - link: /monitors/notify/ tag: Documentación - text: Notificaciones de monitores + text: Notificaciones de monitors. title: Tiempos de inactividad --- +## Resumen {#overview} -## Información general +Programe tiempos de inactividad para apagones del sistema, mantenimiento fuera de línea o actualizaciones sin activar sus monitors. Los tiempos de inactividad silencian todas las alertas y notificaciones de los monitors, pero no evitan las transiciones de estado de los monitors. -Programa tiempos de inactividad para caídas del sistema, mantenimiento fuera de línea o actualizaciones sin activar tus monitores. Los tiempos de inactividad silencian todas las alertas de monitores y notificaciones, pero no impiden las transiciones de estados del monitor. +{{< img src="/monitors/downtimes/downtime_overview.png" alt="Ejemplo de un tiempo de inactividad" style="width:100%;" >}} -{{< img src="/monitors/downtimes/downtime_overview.png" alt="Ejemplo de tiempo de inactividad" style="width:100%;" >}} +## Configuración {#setup} -## Ajustes +### Crear un horario de tiempo de inactividad {#create-a-downtime-schedule} -### Crear el cronograma de un tiempo de inactividad +Para programar un tiempo de inactividad de un monitor en Datadog, navegue a la página [**Manage Downtime**][1]. Luego, haga clic en el botón **Schedule Downtime** en la parte superior derecha. -Para programar un tiempo de inactividad del monitor en Datadog, navega hasta la página [**Manage Downtime**][1] (Gestionar tiempo de inactividad). A continuación, haz clic en el botón **Schedule Downtime** (Programar tiempo de inactividad) de la parte superior derecha. +Para silenciar un monitor individual, haga clic en el botón **Mute** en la parte superior de la página de estado del monitor. Esto crea un horario de tiempo de inactividad para ese monitor en particular. -Para silenciar un monitor individual, haz clic en el botón **Mute** (Silenciar), en la parte superior de la página de estado del monitor. Esta acción programa un tiempo de inactividad para ese monitor específico. +### Elija qué silenciar {#choose-what-to-silence} -### Para elegir qué silenciar +Aplica horarios de inactividad a monitors específicos por nombre o a un amplio rango de monitors mediante etiquetas de monitor. Aplica filtros adicionales a través del [*contexto del grupo*](#downtime-scope). Haga clic en **Preview affected monitors** para ver los monitors incluidos. Para más ejemplos y casos de uso, consulte [Scoping downtimes schedules][2]. -Aplica cronogramas de tiempos de inactividad a monitores específicos por nombre, o a un amplio rango de monitores, por etiquetas (tags) de monitor. Aplica filtros adicionales a través del [*contexto de grupo*](#downtime-scope). Haz clic en **Preview affected monitors** (Previsualizar monitores afectados) para ver los monitores incluidos. Para ver más ejemplos y casos de uso, consulta la [delimitación de cronogramas de tiempos de inactividad][2]. - -**Nota**: Cualquier monitor creado o editado después de programar el tiempo de inactividad se incluye automáticamente en el tiempo de inactividad, si coincide con el contexto. +**Nota**: Cualquier monitor creado o editado después de que se programe el tiempo de inactividad se incluye automáticamente en el mismo si coincide con el contexto. {{< tabs >}} -{{% tab "By Monitor Name" %}} +{{% tab "Por nombre de monitor" %}} -Busca o utiliza el menú desplegable para elegir qué monitores silenciar. Si el campo se deja vacío, todos los monitores se silencian por defecto. También puedes seleccionar un contexto para restringir tu tiempo de inactividad a un host, un dispositivo o una etiqueta arbitraria específica. Sólo se silencian los monitores que tienen **TODOS los contextos seleccionados**. +Busque o utilice el menú desplegable para elegir qué monitors silenciar. Si el campo se deja vacío, todos los monitors se silencian por defecto. También puede seleccionar un contexto para restringir su tiempo de inactividad a un servidor, dispositivo o etiqueta arbitraria específicos. Solo los monitors que tienen **TODOS los contextos seleccionados** son silenciados. {{% /tab %}} -{{% tab "By Monitor Tags" %}} +{{% tab "Por etiquetas de monitor." %}} -Programa un tiempo de inactividad en función de una o varias [etiquetas de monitor][3]. El número máximo de etiquetas que se pueden seleccionar para un único tiempo de inactividad es 32. Cada etiqueta puede tener un máximo de 256 caracteres. Sólo se silencian los monitores que tienen **TODAS las etiquetas seleccionadas**. También puedes seleccionar contextos para aplicar restricciones adicionales. +Programe un tiempo de inactividad basado en una o más [etiquetas de monitor][3]. El número máximo de etiquetas de monitor que se pueden seleccionar para un solo tiempo de inactividad es 32. Cada etiqueta puede tener un máximo de 256 caracteres. Solo los monitors que tienen **TODAS las etiquetas seleccionadas** son silenciados. También puede seleccionar contextos para restricciones adicionales. [3]: /es/monitors/manage/#monitor-tags {{% /tab %}} {{< /tabs >}} -#### Contexto del tiempo de inactividad -Utiliza el contexto de grupo para aplicar filtros adicionales a tu tiempo de inactividad y tener un mayor control sobre los monitores que quieres silenciar. El contexto de grupo de un tiempo de inactividad se empareja con el objetivo específico del monitor. Si seleccionas varios monitores utilizando etiquetas de monitor, se buscarán los monitores etiquetados antes del emparejamiento con el contexto de grupo. +#### Contexto de inactividad {#downtime-scope} +Utilice el contexto del grupo para aplicar filtros adicionales a su tiempo de inactividad y tener más control sobre qué monitors silenciar. El contexto de grupo de un tiempo de inactividad se evalúa después del objetivo específico del monitor. Si apunta a múltiples monitors utilizando etiquetas de monitor, se encuentran monitors que están etiquetados antes de que coincida con el contexto del grupo. -Por ejemplo, un monitor que consulte la latencia media de todos tus servicios puede encontrarse con solicitudes lentas y posibles errores al ejecutar una actualización en el servicio `web-store`. +Por ejemplo, un monitor que observa la latencia promedio de todos sus servicios puede encontrar solicitudes lentas y posibles errores al realizar una actualización en el servicio `web-store`. -Quieres asegurarte de que las notificaciones relacionadas con `service:web-store` se silencian y que las demás alertas críticas para el resto de los servicios se envían como de costumbre. Introduce `service:web-store` en el contexto de grupo del tiempo de inactividad, después de seleccionar los objetivo del monitor. +Le gustaría asegurarse de que las Notifications relacionadas con `service:web-store` estén silenciadas y que otras alertas críticas para los servicios restantes se entreguen como de costumbre. Ingrese `service:web-store` en el contexto del grupo del tiempo de inactividad después de seleccionar los monitors objetivo. -**Nota**: Esto también funciona con grupos que tienen múltiples dimensiones, por ejemplo `service` y `host`. La creación de un tiempo de inactividad en `service:web-store` silenciaría todos los grupos que incluyen dicho servicio, por ejemplo `service:web-store,host:a` o `service:web-store,host:b`. +**Nota**: esto también funciona con grupos que tienen múltiples dimensiones, por ejemplo `service` y `host`. Crear un tiempo de inactividad en `service:web-store` silenciaría todos los grupos que incluyen dicho servicio, por ejemplo `service:web-store,host:a` o `service:web-store,host:b`. -#### Sintaxis del contexto del tiempo de inactividad -La consulta del contexto del tiempo de inactividad sigue la misma [sintaxis de búsqueda][3] común que muchos otros productos compatibles de la plataforma. Para incluir todos los grupos en el contexto de un tiempo de inactividad, escribe `*` para el `Group scope`. Otros ejemplos de contextos de grupo incluyen: +#### Sintaxis del contexto de tiempo de inactividad {#downtime-scope-syntax} +La consulta del contexto de tiempo de inactividad sigue la misma [Sintaxis de Búsqueda][3] común que muchos otros productos en la plataforma admiten. Para incluir todos los grupos en el contexto de un tiempo de inactividad, escriba `*` para el `Group scope`. Ejemplos adicionales de contextos de grupo incluyen: -| Contexto de grupo del tiempo de inactividad | Explicación | +| Contexto de grupo de tiempo de inactividad | Explicación | | ------------------- | ---------------------- | -| `service:web-store` | Silencia todas los notificaciones sobre el servicio `web-store`. | -| `service:web-store AND env:dev` | Silencia todas los notificaciones sobre el servicio `web-store` que se ejecuta en el entorno`dev`. | -| `env:(dev OR staging)` | Silencia cualquier notificación relacionada con el entorno `dev` o `staging`. | -| `service:web-store AND env:(dev OR staging)` | Silencia cualquier notificación relacionada con el servicio `web-store` que se ejecuta en el entorno `dev` o `staging`. | -| `host:authentication-*` | Silencia cualquier notificación relacionada con un host cuyo nombre lleva el prefijo `authentication-`. | -| `host:*-prod-cluster` | Silencia cualquier notificación relacionada con un host cuyo nombre lleva el sufijo `-prod-clúster`. | -| `host:*-prod-cluster` | Silencia cualquier notificación relacionada con un host cuyo nombre lleva el sufijo `-prod-clúster`. | -| `service:webstore AND -env:prod` | Silencia cualquier notificación sobre el servicio `web-store` que **no** se ejecuta en el entorno `prod`. | +| `service:web-store` | Silencia todas las Notifications sobre el servicio `web-store`. | +| `service:web-store AND env:dev` | Silencia todas las Notifications sobre el servicio `web-store` que se ejecuta en el entorno `dev`. | +| `env:(dev OR staging)` | Silencia cualquier Notification relacionada con el entorno `dev` o `staging`. | +| `service:web-store AND env:(dev OR staging)` | Silencia cualquier Notification relacionada con el servicio `web-store` que se ejecuta en el entorno `dev` o `staging`. | +| `host:authentication-*` | Silencia cualquier Notification que se relacione con un host cuyo nombre esté precedido por `authentication-`. | +| `host:*-prod-cluster` | Silencia cualquier Notification que esté relacionada con un host cuyo nombre termina en `-prod-cluster`. | +| `host:*-prod-cluster` | Silencia cualquier Notification que esté relacionada con un host cuyo nombre termina en `-prod-cluster`. | +| `service:webstore AND -env:prod` | Silencia cualquier Notification sobre el servicio `web-store` que **no** se esté ejecutando en el entorno `prod`. | -#### Limitaciones en el contexto del tiempo de inactividad -Existen algunas limitaciones que **no son compatibles**, entre las que se incluyen: +#### Limitaciones del contexto de tiempo de inactividad {#downtime-scope-limitations} +Existen algunas limitaciones que **no son soportadas**, las cuales incluyen: -* No se admiten más de dos niveles de anidamiento, como `team:app AND (service:auth OR (service:graphics-writer AND (env:prod OR (type:metric AND status:ok))))`. Como máximo, los tiempos de inactividad aceptan dos niveles de anidamiento. En su lugar, utiliza tiempos de inactividad separados para descomponer la lógica. -* La negación sólo se es compatible con pares clave/valor y etiquetas con `OR`. Por ejemplo, `-key:value` and `-key(A OR B)`. Scopes such as `-service:(A AND B)`, `service:(-A OR -B)`, or `-service(A B)` no son compatibles. -* Los OR de nivel superior no son compatibles. Por ejemplo, `service:A OR service:B` es válido, pero `service:A OR host:X` no funciona. Un `OR` entre dos etiquetas de nivel superior diferentes requiere dos tiempos de inactividad distintos. -* No se admiten las etiquetas sin clave, como `prod AND service:(A or B)` o simplemente `prod`. Las etiquetas deben tener una clave, por ejemplo `env:prod` en este caso. -* No se admiten los comodines de interrogación: `service:auth?`. Si necesitas aplicar comodines, utiliza `*`. -* Caracteres no válidos dentro de la clave: `en&v:prod` no es un contexto de tiempo de inactividad válido y será rechazado. +* Más de dos niveles de anidamiento, como `team:app AND (service:auth OR (service:graphics-writer AND (env:prod OR (type:metric AND status:ok))))`, no son soportados. Como máximo, los tiempos de inactividad aceptan dos niveles de anidamiento. En su lugar, utilice tiempos de inactividad separados para desglosar la lógica. +* La negación solo es soportada para pares clave/valor y etiquetas con `OR`. Por ejemplo, `-key:value` y `-key(A OR B)`. Contextos como `-service:(A AND B)`, `service:(-A OR -B)` o `-service(A B)` no son soportados. +* Los ORs de nivel superior no son soportados. Por ejemplo, `service:A OR service:B` es válido, pero `service:A OR host:X` no funciona. Un `OR` entre dos etiquetas de nivel superior diferentes requiere dos tiempos de inactividad separados. +* Las etiquetas sin clave, como `prod AND service:(A or B)` o solo `prod`, no son soportadas. Las etiquetas necesitan tener una clave, en este caso, por ejemplo, `env:prod`. +* Los comodines de signo de interrogación: `service:auth?` no son compatibles. Utilice `*` en su lugar si necesita usar comodines. +* Caracteres inválidos dentro de la clave: `en&v:prod` no es un contexto de tiempo de inactividad válido y será rechazado. -### Programar el cronograma de un tiempo de inactividad +### Establezca un horario de tiempo de inactividad {#set-a-downtime-schedule} -#### Una vez +#### Una vez {#one-time} -Establece un tiempo de inactividad para una única vez introduciendo la fecha de inicio, la hora y la zona horaria. También puedes establecer una fecha y una hora de finalización. +Establezca un tiempo de inactividad único ingresando la fecha de inicio, la hora y la zona horaria. Opcionalmente, establezca una fecha y hora de finalización. -{{< img src="monitors/downtimes/downtime_onetime.jpg" alt="Campos para la programación de un tiempo de inactividad para una única vez" style="width:90%;">}} +{{< img src="monitors/downtimes/downtime_onetime.jpg" alt="campos para programar tiempo de inactividad único" style="width:90%;">}} -#### Recurrente +#### Recurrente {#recurring} -Los tiempos de inactividad recurrentes son útiles para los periodos de mantenimiento recurrentes. Establece un tiempo de inactividad recurrente introduciendo la fecha de inicio, la hora, la zona horaria, la repetición y la duración. También puedes especificar una fecha de finalización o el número de repeticiones. +Los tiempos de inactividad recurrentes son útiles para ventanas de mantenimiento recurrentes. Establezca un tiempo de inactividad recurrente ingresando la fecha de inicio, la hora, la zona horaria, la repetición y la duración. Opcionalmente, especifique una fecha de finalización o el número de ocurrencias. -Cuando finaliza un único tiempo de inactividad de un tiempo de inactividad recurrente, se cancela el único tiempo de inactividad y se crea un nuevo tiempo de inactividad con las mismas restricciones, y horas de inicio y fin actualizadas.
    -**Nota**: El creador original se asocia a todos los tiempos de inactividad recién creados. +Cuando un tiempo de inactividad único de un tiempo de inactividad recurrente termina, el tiempo de inactividad único se cancela y se crea un nuevo tiempo de inactividad con las mismas restricciones y tiempos de inicio y finalización actualizados.
    +**Nota**: El creador original está asociado con todos los nuevos tiempos de inactividad creados. -{{< img src="monitors/guide/downtime_business_hour_weekend.png" alt= "Configuración de tiempos de inactividad utilizando un cronograma recurrente para silenciar las alertas fuera del horario laboral y durante el fin de semana" style="width:100%;" >}} +{{< img src="monitors/guide/downtime_business_hour_weekend.png" alt="Configuración de tiempos de inactividad utilizando un horario recurrente para silenciar alertas fuera del horario laboral y durante el fin de semana." style="width:100%;" >}} -Utiliza [reglas de recurrencia][4] (RRULE) para definir los cronogramas de los tiempos de inactividad. Utiliza el [generador de reglas RRULE][5] oficial como herramienta para generar reglas recurrentes. Un caso de uso común consiste en utilizar las reglas RRULE para definir tiempos de inactividad para días específicos del mes, por ejemplo, el tercer lunes de cada mes. Para ver más casos de uso de recurrencias, consulta la guía para [suprimir alertas con tiempos de inactividad][6]. +Utilice [reglas de recurrencia][4] (RRULEs) para definir horarios de tiempo de inactividad. Utilice el [generador de RRULE oficial][5] como herramienta para generar reglas recurrentes. Un caso de uso común es utilizar RRULES para definir tiempos de inactividad en días específicos del mes, por ejemplo, el tercer lunes de cada mes. Para más casos de uso sobre recurrencia, consulte la guía para [Suppress alerts with Downtimes][6]. -**Nota**: No se admiten atributos que especifiquen la duración en RRULE (por ejemplo, `DTSTART`, `DTEND`, `DURATION`). +**Nota**: Los atributos que especifican la duración en RRULE no son compatibles (por ejemplo, `DTSTART`, `DTEND`, `DURATION`). -## Notificaciones -### Añadir un mensaje +## Notifications {#notifications} +### Agregue un mensaje {#add-a-message} -Introduce un mensaje para alertar a tu equipo sobre este tiempo de inactividad. El campo de mensaje admite el formato markdown estándar y la sintaxis de `@-notification` de Datadog. Consulta la [página de notificaciones][7] para obtener más información sobre las opciones de formato. +Ingrese un mensaje para alertar a su equipo sobre este tiempo de inactividad. El campo de mensaje permite el formato markdown estándar y la sintaxis de Datadog `@-notification`. Consulte la [Notifications page][7] para obtener más información sobre las opciones de formato. -### Configurar notificaciones y automatizaciones +### Configurar Notifications y automatizaciones {#configure-notifications-and-automations} -Configura notificaciones y automatizaciones especificando los miembros del equipo o enviando el mensaje a una [integración][8] de servicios. Datadog envía notificaciones a los destinos especificados cada vez que un tiempo de inactividad se programa, se inicia, se cancela o expira. Estas notificaciones de auditoría permiten a tu equipo estar al corriente de los tiempos de inactividad en tu sistema. +Configure Notifications y automatizaciones especificando miembros del equipo o enviando el mensaje a una [integration][8]. Datadog envía Notifications a los destinos especificados cada vez que se programa, inicia, cancela o expira el tiempo de inactividad. Estas notificaciones de auditoría permiten que su equipo esté al tanto de los tiempos de inactividad en su sistema. -### Desactivar la notificación de una primera recuperación +### Deshabilitar la primera notificación de recuperación {#disable-first-recovery-notification} -Por defecto, Datadog envía una notificación de recuperación de los monitores que se activan **antes** de un tiempo de inactividad y que terminan recuperándose **durante** un tiempo de inactividad. Esto es útil cuando se utilizan integraciones de terceros para cerrar automáticamente incidentes abiertos. Al seleccionar la casilla de verificación se silencian estas notificaciones. +Por defecto, Datadog envía una notificación de recuperación para los monitores que se activan **antes** de un tiempo de inactividad y terminan recuperándose **durante** un tiempo de inactividad. Esto es útil al usar integraciones de terceros para cerrar automáticamente incidentes abiertos. Seleccionar la casilla de verificación silencia estas notificaciones. -{{< img src="monitors/downtimes/downtime_first_recovery.png" alt="Silenciar la notificación de una primera recuperación" style="width:80%;">}} +{{< img src="monitors/downtimes/downtime_first_recovery.png" alt="silenciar la primera notificación de recuperación" style="width:80%;">}} -La opción de desactivar la notificación de una primera recuperación es aditiva entre varios tiempos de inactividad. Por ejemplo, si varios tiempos de inactividad se superponen y silencian el mismo monitor, la notificación de la primera recuperación se silencia si **al menos un** tiempo de inactividad ha seleccionado la opción para desactivarla. +La opción para deshabilitar la primera notificación de recuperación es aditiva entre múltiples tiempos de inactividad. Por ejemplo, si múltiples tiempos de inactividad se superponen y silencian el mismo monitor, la primera notificación de recuperación se silencia si **al menos uno** de los tiempos de inactividad marcó la opción para deshabilitarla. -**Nota**: Esta opción silencia la **primera** notificación de recuperación. Si un monitor se activa y se recupera nuevamente durante un tiempo de inactividad, las notificaciones correspondientes se silencian siempre, independientemente de la configuración de esta opción. +**Nota**: Esta opción silencia la **primera** notificación de recuperación. Si un monitor vuelve a activarse y recuperarse durante un tiempo de inactividad, entonces las notificaciones correspondientes siempre se silencian, independientemente de la configuración de esta opción. -## Gestionar +## Administrar {#manage} -La [página Gestionar tiempos de inactividad][1] muestra la lista de los tiempos de inactividad activos y programados. Seleccione un tiempo de inactividad para ver los detalles, editarlo o eliminarlo. Los detalles incluyen su creador, su contexto y una lista de los monitores a los que se aplica. -Utiliza el panel de facetas y la barra de búsqueda para filtrar la lista en los parámetros `Creator`, `Scope`, `Monitor Tags`, o `Active`, `Automuted`, `Recurring`. +La [Manage Downtime page][1] muestra la lista de tiempos de inactividad activos y programados. Seleccione un tiempo de inactividad para ver detalles, editar o eliminarlo. Los detalles incluyen su creador, su contexto y una lista de los monitores a los que se aplica. +Utilice el panel de facetas y la barra de búsqueda para filtrar la lista en los parámetros `Creator`, `Scope`, `Monitor Tags`, `Active`, `Automuted`, `Recurring`. -{{< img src="monitors/downtimes/downtime_manage.png" alt="Página de gestión de tiempos de inactividad" style="width:100%;">}} +{{< img src="monitors/downtimes/downtime_manage.png" alt="Manage Downtime page" style="width:100%;">}} -### Historial +### History {#history} -El historial de tiempos de inactividad se puede ver en la página [Estado del monitor][9], superpuesto al historial de transición del grupo, y en el [Explorador de eventos][10], buscando `tags:audit downtime` o un tiempo de inactividad específico por ID con `tags:audit downtime_id:`. +El historial de tiempos de inactividad se puede ver en la [Monitor Status][9] page, superpuesto en el historial de transición del grupo, y en el [Events explorer][10] buscando `tags:audit downtime`, o un tiempo de inactividad específico por ID con `tags:audit downtime_id:`. -### Silenciar +### Silenciando {#muting} -Los monitores activan eventos cuando cambian entre los siguientes estados posibles: `ALERT` `WARNING` , `RESOLVED` y `NO DATA`. Cuando un monitor está silenciado o tiene un tiempo de inactividad programado, las transiciones de `RESOLVED` a otro estado **no** activan eventos o notificaciones. +Los monitores generan eventos cuando cambian entre posibles estados: `ALERT`, `WARNING`, `RESOLVED` y `NO DATA`. Cuando un monitor está silenciado o tiene un tiempo de inactividad programado, las transiciones de `RESOLVED` a otro estado **no** generan eventos ni notificaciones. -{{< img src="monitors/downtimes/downtime_on_alert.png" alt="Gráfico de estado de un monitor que muestra que la alerta de transición de estado durante el tiempo de inactividad no crea un evento de alerta" style="width:80%;">}} +{{< img src="monitors/downtimes/downtime_on_alert.png" alt="Gráfico de estado del monitor que muestra la transición de estado a alerta durante el tiempo de inactividad, no creará un evento de alerta." style="width:80%;">}} -**Nota**: Silenciar o anular el silenciamiento de un monitor desde la página de estado del monitor no elimina los tiempos de inactividad programados asociados al monitor. Para editar o eliminar un tiempo de inactividad, utiliza la página [Gestionar tiempo de inactividad][1] o la [API][11]. +**Nota**: Silenciar o desilenciar un monitor desde la Monitor Status page no elimina los tiempos de inactividad programados asociados con el monitor. Para editar o eliminar un tiempo de inactividad, utilice la [Manage Downtime][1] page o la [API][11]. -### Finalización +### Expiración {#expiration} -Por defecto, si un monitor se encuentra en un estado de alerta (`ALERT`, `WARNING` o `NO DATA`) cuando finaliza un tiempo de inactividad, el monitor activa una nueva notificación. Esto se aplica a los monitores que cambian de estado durante los tiempos de inactividad (como por ejemplo de `OK` a `ALERT`, `WARNING` o `NO DATA`) y a los monitores que ya tienen un estado de alerta cuando se inicia el tiempo de inactividad. Si se cancela manualmente un tiempo de inactividad, no se envían notificaciones, aunque el monitor haya entrado en estado de alerta. +Por defecto, si un monitor está en un estado digno de alerta (`ALERT`, `WARNING` o `NO DATA`) cuando un tiempo de inactividad expira, el monitor genera una nueva notificación. Esto se aplica a los monitores que cambian de estado durante el tiempo de inactividad (como de `OK` a `ALERT`, `WARNING` o `NO DATA`), y a los monitores que ya tienen un estado de alerta cuando comienza el tiempo de inactividad. Si un tiempo de inactividad se cancela manualmente, no se envían notificaciones, incluso si el monitor ha entrado en un estado de alerta. -Para anular el comportamiento predeterminado, especifica qué notificaciones deben enviarse al finalizar un tiempo de inactividad, utilizando las opciones de la sección **Configurar notificaciones y automatizaciones**. En los tiempos de inactividad creados con la API, el comportamiento predeterminado es la exclusión de la opción `Is cancelled`. +Para anular el comportamiento predeterminado, especifique qué notificaciones deben enviarse al final del tiempo de inactividad con las opciones en la sección **Configure notifications and automations**. Para los tiempos de inactividad creados con la API, el comportamiento predeterminado es excluir la opción `Is cancelled`. -{{< img src="monitors/downtimes/downtime_cancel_expire_notification.png" alt="Sección de configuración de notificaciones y automatizaciones de un monitor con condiciones específicas para los tiempos de inactividad" style="width:100%;">}} +{{< img src="monitors/downtimes/downtime_cancel_expire_notification.png" alt="La sección Configure notifications and automations de un monitor con condiciones específicas de inactividad." style="width:100%;">}} -**Ejemplo 1:** Si un monitor se encuentra en estado de alerta *antes* de que se inicie un tiempo de inactividad y *continúa así* mientras dura el tiempo de inactividad: -1. Durante el tiempo de inactividad, se suprimen las notificaciones de esta alerta. -2. El monitor permanece en estado de alerta (porque se siguen cumpliendo las condiciones). -3. El tiempo de inactividad se termina. -4. Las condiciones de la alerta se siguen cumpliendo, por lo que se envía una notificación. +**Ejemplo 1:** Si un monitor está en un estado de alerta *antes* de que comience el tiempo de inactividad y *continúa* durante la duración del tiempo de inactividad: +1. Durante el tiempo de inactividad, las notificaciones para esta alerta están suprimidas. +2. El monitor permanece en un estado de alerta (porque las condiciones aún se cumplen). +3. El tiempo de inactividad termina. +4. Las condiciones de alerta aún se cumplen, por lo que se envía una notificación. -**Ejemplo 2:** Si un monitor se encuentra en estado de alerta *antes* de que se inicie un tiempo de inactividad y se recupera *durante* ese tiempo de inactividad: +**Ejemplo 2:** Si un monitor está en un estado de alerta *antes* de que comience un tiempo de inactividad y se recupera *durante* ese tiempo de inactividad: 1. El estado cambia de `ALERT` a `OK`. -2. La notificación sobre la recuperación se envía durante el tiempo de inactividad, pero sólo para la primera recuperación durante ese tiempo de inactividad. +2. La notificación de recuperación se envía durante el tiempo de inactividad, pero solo para la primera recuperación durante ese tiempo de inactividad. -### Informe del monitor +### Monitor report {#monitor-report} -Todos los estados alertados se incluyen en el [informe semanal del monitor][12], aunque el monitor se encuentre en tiempo de inactividad. +Todos los estados alertados están incluidos en el [weekly monitor report][12] incluso si el monitor está en un tiempo de inactividad. -## Auto-silenciar +## Auto-muting {#auto-muting} -Datadog puede silenciar proactivamente monitores relacionados con el apagado manual de ciertas cargas de trabajo en la nube. Para el apagado, se admiten los siguientes escenarios de auto-silenciamiento: +Datadog puede silenciar proactivamente monitores relacionados con el apagado manual de ciertas cargas de trabajo en la nube. Los siguientes escenarios de auto-silenciamiento para apagado son compatibles: -- **[Instancias de Amazon EC2][13]** y finalización de instancias mediante el escalado automático AWS, en función de los estados de host de la API CloudWatch. -- **Instancias [Google Compute Engine (GCE)][14]** y finalización de instancias activadas por el escalado automática GCE, en función de los estados de host de la API GCE. -- **[Azure VMs][15]**, tanto si el apagado se ha activado manualmente o por escalado automático Azure, en función de los estados de salud disponibles a través de la API Azure Resource Health. +- **[Amazon EC2 instances][13]** y terminación de instancias por escalado automático de AWS basado en los estados del servidor desde la API de CloudWatch. +- **[Google Compute Engine (GCE)][14]** y terminación de instancias desencadenada por escalado automático de GCE basado en los estados del servidor desde la API de GCE. +- **[Azure VMs][15]**, ya sea que el apagado haya sido desencadenado manualmente o por el escalado automático de Azure, basado en los estados de salud disponibles a través de la Azure Resource Health API. -## Para leer más +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -196,7 +195,7 @@ Datadog puede silenciar proactivamente monitores relacionados con el apagado man [7]: /es/monitors/notify/#overview [8]: /es/integrations/#cat-notification [9]: /es/monitors/status/ -[10]: /es/service_management/events/explorer +[10]: /es/events/explorer [11]: /es/api/latest/downtimes/#cancel-a-downtime [12]: /es/account_management/#preferences [13]: /es/integrations/amazon_ec2/#ec2-automuting diff --git a/content/es/monitors/types/metric.md b/content/es/monitors/types/metric.md index 6ef8e04cc74..8d9c6f80fe4 100644 --- a/content/es/monitors/types/metric.md +++ b/content/es/monitors/types/metric.md @@ -3,159 +3,158 @@ aliases: - /es/monitors/monitor_types/metric - /es/monitors/faq/what-is-the-do-not-require-a-full-window-of-data-for-evaluation-monitor-parameter - /es/monitors/create/types/metric -description: Comparar los valores de una métrica con un umbral definido por el usuario +description: Compara los valores de una métrica con un umbral definido por el usuario further_reading: - link: /monitors/notify/ tag: Documentación - text: Configurar las notificaciones de tu monitor + text: Configure las notificaciones de su monitor - link: /monitors/downtimes/ tag: Documentación - text: Programar una caída del sistema para silenciar un monitor + text: Programe un tiempo de inactividad para silenciar un monitor - link: /monitors/status/ tag: Documentación - text: Consultar el estado de tu monitor + text: Consulte el estado de su monitor - link: /monitors/types/change-alert tag: Documentación - text: Solución de problemas de los monitores de alerta de cambios -title: Monitor de métrica + text: Solucione problemas de los monitores de alerta de cambio +title: Metric Monitor --- +## Resumen {#overview} -## Información general +Los monitores de métricas son útiles para un flujo continuo de datos. Cualquier métrica enviada a Datadog puede generar alertas si supera un umbral durante un período de tiempo determinado. -Los monitores de métrica son útiles para un flujo (stream) continuo de datos. Cualquier métrica enviada a Datadog puede dar una alerta si cruza un umbral en un periodo determinado. +Para crear un Metric Monitor en Datadog, navegue a [**Monitors > New Monitor**][1] y seleccione el tipo de monitor **Metric**. -Para crear un monitor de métrica en Datadog, navega hasta [**Monitors > New Monitor**][1] (Monitores > Nuevo monitor) y selecciona el tipo de monitor **Metric** (Métrica). - -## Elegir el método de detección +## Elija el método de detección {#choose-the-detection-method} {{< tabs >}} -{{% tab "Threshold" %}} +{{% tab "Umbral" %}} -Una alerta de umbral compara los valores de métrica con un umbral estático. +Una alerta de umbral compara los valores de métricas con un umbral estático. -En cada evaluación de alerta, Datadog calcula la media, el mínimo, el máximo o la suma durante el periodo seleccionado y comprueba si está por encima, por debajo, es igual o no es igual al umbral. Esto es para casos de alerta estándar en los que se conocen los valores esperados. El [tipo de métrica de distribución][1] ofrece la opción de umbral adicional de calcular percentiles sobre el periodo seleccionado. +En cada evaluación de alerta, Datadog calcula el promedio, mínimo, máximo o suma durante el período seleccionado y verifica si está por encima, por debajo, igual o diferente al umbral. Esto es para casos de alerta estándar donde conoce los valores esperados. El [Distribution metric type][1] ofrece la opción adicional de umbral de calcular percentiles durante el período seleccionado. -Para más información, consulta la sección [Establecer condiciones de alerta](#set-alert-conditions). +Para más información, consulte la sección [Set alert conditions](#set-alert-conditions). [1]: /es/metrics/distributions/ {{% /tab %}} {{% tab "Change" %}} -Una alerta de cambio compara el cambio absoluto o relativo (%) en el valor entre `N` minutos atrás y ahora contra un umbral dado. Los puntos de datos comparados no son puntos individuales, sino que se calculan utilizando los parámetros de la sección *Definir la métrica*. +Una alerta de cambio compara el cambio absoluto o relativo (%) en el valor entre hace `N` minutos y ahora con un umbral dado. Los puntos de datos comparados no son puntos únicos, sino que se calculan utilizando los parámetros en la sección *Defina la métrica*. -En cada evaluación de alerta, Datadog calcula la diferencia bruta (un valor positivo o negativo) entre la serie actual y la de hace `N` minutos y, a continuación, calcula la media/mínimo/máximo/suma a lo largo del periodo seleccionado. Se activa una alerta cuando esta serie calculada supera el umbral. +En cada evaluación de alerta, Datadog calcula la diferencia bruta (un valor positivo o negativo) entre la serie actual y hace `N` minutos, luego calcula el promedio/mínimo/máximo/suma durante el período seleccionado. Se activa una alerta cuando esta serie calculada cruza el umbral. Este tipo de alerta es útil para rastrear picos, caídas o cambios lentos en una métrica cuando no hay un umbral inesperado. -Para más información, consulta la guía [Monitores de alerta de cambio][1]. +Para más información, consulte la guía de [monitores de alerta de cambio][1]. [1]: /es/monitors/types/change-alert/ {{% /tab %}} -{{% tab "Anomaly" %}} +{{% tab "Anomalía" %}} -Una alerta de detección de anomalía utiliza el comportamiento pasado para detectar cuándo una métrica se comporta de forma anormal. +Una alerta de detección de anomalías utiliza el comportamiento pasado para detectar cuando una métrica se comporta de manera anormal. -Las alertas de anomalía calculan un rango esperado de valores para una serie basándose en el pasado. Algunos de los algoritmos de anomalía utilizan la hora del día y el día de la semana para determinar el rango esperado, captando así anomalías que no podrían detectarse con una simple alerta de umbral. Por ejemplo, la serie es inusualmente alta a las 5 de la mañana, aunque se consideraría normal a las 10 de la mañana. +Las alertas de anomalía calculan un rango esperado de valores para una serie basado en el pasado. Algunos de los algoritmos de anomalía utilizan la hora del día y el día de la semana para determinar el rango esperado, capturando así anormalidades que no podrían ser detectadas por una alerta de umbral simple. Por ejemplo, la serie es inusualmente alta a las 5 AM, aunque se consideraría normal a las 10 AM. -En cada evaluación de alerta, Datadog calcula el porcentaje de la serie que está por encima, por debajo y fuera del rango esperado. Se activa una alerta cuando este porcentaje supera el umbral configurado. +En cada evaluación de alerta, Datadog calcula el porcentaje de la serie que se encuentra por encima, por debajo y fuera del rango esperado. Se activa una alerta cuando este porcentaje cruza el umbral configurado. -Para más información, consulta la página [Monitor de anomalía][1]. +Para más información, consulte la página de [Monitor de Anomalías][1]. [1]: /es/monitors/types/anomaly/ {{% /tab %}} -{{% tab "Outliers" %}} +{{% tab "Valores anómalos" %}} -Los monitores outlier detectan cuando un miembro de un grupo (hosts, zonas de disponibilidad, particiones, etc.) se comporta de forma inusual en comparación con el resto. +Los monitores de valores anómalos detectan cuando un miembro de un grupo (servidores, Availability Zones, particiones, etc.) se comporta de manera inusual en comparación con el resto. -En cada evaluación de alerta, Datadog comprueba si todos los grupos están unidos y presentan el mismo comportamiento. Se activa una alerta cuando uno o varios grupos divergen del resto de los grupos. +En cada evaluación de alerta, Datadog verifica si todos los grupos están agrupados en un clúster y exhiben el mismo comportamiento. Se activa una alerta cuando uno o más grupos se desvían del resto de los grupos. -Para más información, consulta la página [Monitor outlier][1]. +Para más información, consulte la página de [Outlier Monitor][1]. [1]: /es/monitors/types/outlier/ {{% /tab %}} -{{% tab "Forecast" %}} +{{% tab "Pronóstico" %}} -Una alerta de predicción predice el comportamiento futuro de una métrica y lo compara con un umbral estático. Es adecuada para métricas con fuertes tendencias o patrones recurrentes. +Una alerta de pronóstico predice el comportamiento futuro de una métrica y lo compara con un umbral estático. Es adecuada para métricas con tendencias fuertes o patrones recurrentes. -En cada evaluación de alerta, una alerta de predicción predice los valores futuros de métrica junto con los límites de desviación previstos. Se activa una alerta cuando cualquier parte de los límites supera el umbral configurado. +En cada evaluación de alerta, una alerta de pronóstico predice los valores futuros de la métrica junto con los límites de desviación esperados. Se activa una alerta cuando cualquier parte de los límites cruza el umbral configurado. -Para más información, consulta la página [Monitor de predicción][1]. +Para más información, consulte la página de [Forecast Monitor][1]. [1]: /es/monitors/types/forecasts/ {{% /tab %}} {{< /tabs >}} -## Definir la métrica +## Defina la métrica {#define-the-metric} -Cualquier métrica que informe a Datadog está disponible para monitores. Utiliza el editor y los pasos siguientes para definir la métrica. Los parámetros de consulta varían ligeramente en función del método de detección elegido. +Cualquier métrica que informe a Datadog está disponible para monitors. Utilice el editor y los pasos a continuación para definir la métrica. Los parámetros de consulta varían ligeramente según el método de detección elegido. {{< tabs >}} -{{% tab "Threshold" %}} +{{% tab "Umbral" %}} -{{< img src="monitors/monitor_types/metric/metric_threshold_config.png" alt="definir la métrica para el monitor de métrica de detección del umbral" style="width:100%;">}} +{{< img src="monitors/monitor_types/metric/metric_threshold_config.png" alt="Defina la métrica para el Threshold Detection Metric Monitor" style="width:100%;">}} -| Paso | Obligatorio | Predeterminado | Ejemplo | +| Paso | Requerido | Predeterminado | Ejemplo | |-----------------------------------|----------|----------------|-------------------| -| Selecciona una métrica | Sí | Ninguna | `system.cpu.user` | -| Definir el `from` | No | En todas partes | `env:prod` | -| Especifica la agregación de métrica | Sí | `avg by` | `sum by` | +| Seleccione una métrica | Sí | Ninguno | `system.cpu.user` | +| Defina el `from` | No | En todas partes | `env:prod` | +| Especifique la agregación de la métrica | Sí | `avg by` | `sum by` | | Agrupar por | No | Todo | `host` | -| Especifica la agregación de consultas del monitor | No | `average` | `sum` | -| Intervalo de evaluación | No | `5 minutes` | `1 day` | +| Especifique la agregación de la consulta del monitor | No | `average` | `sum` | +| Ventana de evaluación | No | `5 minutes` | `1 day` | **Definiciones** | Opción | Descripción | |------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| average | Se hace una media para obtener un único valor que se compara con el umbral. Esta opción añade la función `avg()` a la consulta de tu monitor. | -| max | Si algún valor de la serie generada supera el umbral, se activa una alerta. Añade la función max() a tu consulta de monitor. Consulta la sección Notas para conocer el comportamiento adicional del umbral. | -| min | Si todos los puntos de la ventana de evaluación de tu consulta superan el umbral, se activa una alerta. Añade la función min() a tu consulta de monitor. Consulta la sección Notas para conocer el comportamiento adicional del umbral.| -| sum | Si la suma de todos los puntos de la serie supera el umbral, se activa una alerta. Añade la función `sum()` a tu consulta de monitor. | -| percentile(pXX) | Si el porcentaje pXX de puntos del intervalo de evaluación de tu consulta supera el umbral, se activa una alerta. Esta opción añade una función `percentile` a tu consulta de monitor. Solo disponible para el tipo de métrica de distribución. -| Intervalo de evaluación| El periodo por el que evalúa el monitor. Utiliza los intervalos preestablecidos como `5 minutes`, `15 minutes`, `1 hour`, o `custom` para establecer un valor entre 1 minuto y 730 horas (1 mes). | +| promedio | La serie se promedia para producir un solo valor que se verifica contra el umbral. Se agrega la `avg()` función a su consulta de monitor. | +| máx | Si cualquier valor individual en la serie generada supera el umbral, se activa una alerta. Se agrega la función max() a su consulta de monitor. Consulte la sección de Notas para obtener un comportamiento adicional del umbral. | +| mín | Si todos los puntos en la ventana de evaluación de su consulta superan el umbral, se activa una alerta. Se agrega la función min() a su consulta de monitor. Consulte la sección de Notas para obtener un comportamiento adicional del umbral.| +| suma | Si la suma de cada punto en la serie supera el umbral, se activa una alerta. Se agrega la `sum()` función a su consulta de monitor. | +| percentil(pXX) | Si el pXX por ciento de los puntos en la ventana de evaluación de su consulta superan el umbral, se activa una alerta. Esta opción agrega una `percentile` función a su consulta de seguimiento. Solo disponible para el tipo de métrica de distribución. +| Ventana de evaluación| El período de tiempo que el monitor evalúa. Utilice ventanas de tiempo preestablecidas como `5 minutes`, `15 minutes`, `1 hour` o `custom` para establecer un valor entre 1 minuto y 730 horas (1 mes). | {{% /tab %}} {{% tab "Change" %}} -{{< img src="monitors/monitor_types/metric/metric_change_alert_config.png" alt="definir la métrica para el monitor de métrica de detección de cambio" style="width:100%;">}} +{{< img src="monitors/monitor_types/metric/metric_change_alert_config.png" alt="Defina la métrica para el Change Detection Metric Monitor" style="width:100%;">}} -| Paso | Obligatorio | Predeterminado | Ejemplo | +| Paso | Requerido | Predeterminado | Ejemplo | |-----------------------------------|----------|----------------|-------------------| -| Selecciona una métrica | Sí | Ninguna | `system.cpu.user` | -| Definir el `from` | No | En todas partes | `env:prod` | -| Especifica la agregación de métrica | No | `avg by` | `sum by` | +| Seleccione una métrica | Sí | Ninguno | `system.cpu.user` | +| Defina el `from` | No | En todas partes | `env:prod` | +| Especifique la agregación de la métrica | No | `avg by` | `sum by` | | Agrupar por | No | Todo | `host` | -| Especifica la agregación de consultas del monitor | No | `average` | `sum` | -| Selecciona un tipo de cambio | No | `change ` | `% change` | -| Intervalo de evaluación | No | `5 minutes` | `1 day` | -| Intervalo de comparación | No | `5 minutes` | `1 month` | +| Especifique la agregación de la consulta del monitor | No | `average` | `sum` | +| Seleccione un tipo de cambio | No | `change ` | `% change` | +| Ventana de evaluación | No | `5 minutes` | `1 day` | +| Ventana de comparación | No | `5 minutes` | `1 month` | **Definiciones** | Opción | Descripción | |------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | cambio | El cambio absoluto del valor. | -| Cambio porcentual | El cambio porcentual del valor comparado con su valor anterior. Por ejemplo, el cambio porcentual para un valor anterior de 2 con un valor actual de 4 es del 100%. | -| average | Se hace una media para obtener un único valor que se compara con el umbral. Esta opción añade la función `avg()` a la consulta de tu monitor. | -| max | Si algún valor de la serie generada supera el umbral, se activa una alerta. Añade la función max() a tu consulta de monitor. Consulta la sección Notas para conocer el comportamiento adicional del umbral. | -| min | Si todos los puntos de la ventana de evaluación de tu consulta superan el umbral, se activa una alerta. Añade la función min() a tu consulta de monitor. Consulta la sección Notas para conocer el comportamiento adicional del umbral. | -| sum | Si la suma de todos los puntos de la serie supera el umbral, se activa una alerta. Añade la función `sum()` a tu consulta de monitor. | -| percentile(pXX) | Si el porcentaje pXX de puntos del intervalo de evaluación de tu consulta supera el umbral, se activa una alerta. Esta opción añade una función `percentile` a tu consulta de monitor. Solo disponible para el tipo de métrica de distribución. -| Intervalo de evaluación| El periodo por el que evalúa el monitor. Utiliza los intervalos preestablecidos como `5 minutes`, `15 minutes`, `1 hour`, o `custom` para establecer un valor entre 1 minuto y 730 horas (1 mes). | +| % cambio | El cambio porcentual del valor en comparación con su valor anterior. Por ejemplo, el cambio porcentual para un valor anterior de 2 con un valor actual de 4 es del 100%. | +| promedio | La serie se promedia para producir un solo valor que se verifica contra el umbral. Agrega la función `avg()` a su consulta de monitor. | +| máx | Si algún valor individual en la serie generada cruza el umbral, se activa una alerta. Se agrega la función max() a su consulta de seguimiento. Consulte la sección de Notas para obtener un comportamiento adicional del umbral. | +| mín | Si todos los puntos en la ventana de evaluación para su consulta cruzan el umbral, se activa una alerta. Se agrega la función min() a su consulta de seguimiento. Consulte la sección de Notas para obtener un comportamiento adicional del umbral. | +| sum | Si la suma de cada punto en la serie supera el umbral, se activa una alerta. Agrega la `sum()` función a su consulta de monitor. | +| percentil(pXX) | Si el porcentaje pXX de puntos en la ventana de evaluación para su consulta de monitor supera el umbral, entonces se activa una alerta. Esta opción agrega una función `percentile` a su consulta de monitor. Solo disponible para el tipo de métrica de distribución. +| Ventana de evaluación| El período de tiempo que el monitor evalúa. Utiliza ventanas de tiempo preestablecidas como `5 minutes`, `15 minutes`, `1 hour` o `custom` para establecer un valor entre 1 minuto y 730 horas (1 mes). | {{% /tab %}} {{< /tabs >}} -**Notas** - - Si se utiliza una métrica de distribución con un agregador de percentil, se especifica automáticamente un umbral de percentil coincidente. Las métricas con agregadores de percentiles no generan un gráfico de snapshot en el mensaje de notificaciones. - - **max/min*: estas descripciones de max y min asumen que el monitor envía una alerta cuando la métrica supera el umbral. Para monitores que alertan cuando la métrica está por debajo del umbral se aplica la lógica inversa. - - La definición de métricas para monitores es similar a la definición de métricas para gráficos. Para más detalles sobre el uso de la opción `Advanced...`, consulta [Crear gráficas avanzadas][2]. - - Existen diferentes comportamientos cuando se utiliza `as_count()`. Consulta [as_count() en evaluaciones de monitor][3] para obtener más detalles. - - Los grupos `N/A` no se incluyen en los monitores, por lo que las claves de etiqueta (tag) deben tener un valor. +**Notas:** + - Si se utiliza una métrica de distribución con un agregador de percentiles, se especifica automáticamente un umbral de percentil coincidente. Las métricas con agregadores de percentiles no generan un gráfico instantáneo en el mensaje de notificaciones. + - **max/min**: Estas descripciones de max y min asumen que el monitor alerta cuando la métrica supera el umbral. Para monitores que alertan cuando están por debajo del umbral, el comportamiento de max y min se invierte. + - Definir métricas para monitores es similar a definir métricas para gráficos. Para detalles sobre el uso de la `Advanced...` opción, consulta [Gráficos avanzados][2]. + - Existen diferentes comportamientos al utilizar `as_count()`. Consulta [as_count() en Evaluaciones de Monitor][3] para más detalles. + - `N/A` los grupos no están incluidos en los monitores, por lo que las claves de etiqueta deben tener un valor. -## Definir condiciones de alerta +## Establecer condiciones de alerta {#set-alert-conditions} -Se activa cuando la métrica es una de las siguientes: +Activar cuando la métrica sea una de las siguientes: - `above` - `above or equal to` - `below` @@ -165,54 +164,54 @@ Se activa cuando la métrica es una de las siguientes: Si el valor está entre cero y uno, se requiere un cero inicial. Por ejemplo, `0.3`. -### Condiciones de alerta avanzadas +### Condiciones avanzadas de alerta {#advanced-alert-conditions} -#### Intervalo de datos +#### Ventana de datos {#data-window} -`Require` o `Do not require` un intervalo completo de datos para tu evaluación. +`Require` o `Do not require` una ventana completa de datos para evaluación. -Esta configuración te permite cambiar el momento en que el motor de alerta considera que un monitor es candidato a ser evaluado. +Esta configuración permite cambiar cuándo el motor de alertas considera un monitor como candidato para evaluación. -**Do not require** (No obligatorio) (Por defecto): un monitor se evalúa tan pronto como se reconoce. Considera el uso de este valor si tus puntos de datos pueden ser escasos. Con esta configuración, el monitor se evalúa incluso si hay un solo punto de datos en el marco temporal de evaluación. +**No requerir** (Predeterminado): Un monitor se evalúa tan pronto como es reconocido. Considere usar este valor si sus puntos de datos pueden ser escasos. Con esta configuración, el monitor se evalúa incluso si hay un solo punto de datos en el período de evaluación. -**Require** (Obligatorio): un monitor no se evalúa hasta que la ventana de evaluación se considera `filled` con datos. Para que se te notifique si hay datos durante todo el plazo de evaluación, utiliza esta opción. +**Requerir**: Un monitor no se evalúa hasta que la ventana de evaluación se considera `filled` con datos. Para ser notificado si hay datos durante todo el período de evaluación, use esta opción. -Para definir si el marco temporal de la evaluación es `filled` con datos, el marco temporal se divide en buckets más pequeños. +Para definir si el período de evaluación es `filled` con datos, el período se divide en intervalos más pequeños. -La siguiente lógica determina el tamaño del bucket: +La siguiente lógica determina el tamaño del intervalo: -* Periodo de evaluación en minutos: el tamaño del bucket es de 1 minuto -* Tiempo de evaluación en horas: el tamaño del bucket es de 10 minutos -* Periodo de evaluación en días: el tamaño del bucket es de 1 hora -* Periodo de evaluación en meses: el tamaño del bucket es de 4 horas +* Período de evaluación en minutos: el tamaño del intervalo es de 1 minuto +* Período de evaluación en horas: el tamaño del intervalo es de 10 minutos +* Período de evaluación en días: el tamaño del intervalo es de 1 hora +* Período de evaluación en mes: el tamaño del intervalo es de 4 horas -Para que se considere "intervalo completo", el monitor exige: +Para ser considerado como una "ventana completa", el monitor requiere: -1. Al menos un punto de datos en el primer bucket. El primer bucket es cronológicamente el bucket más antiguo de la ventana. -2. No más de tres buckets en total sin puntos de datos. +1. Al menos un punto de datos en el primer intervalo. El primer intervalo es cronológicamente el más antiguo en la ventana. +2. No más de tres intervalos en total sin puntos de datos. -Si se cumplen las condiciones, se evalúa el monitor. En caso contrario, se cancela la evaluación y el estado del monitor no cambia. +Si se cumplen las condiciones, se evalúa el monitor. De lo contrario, la evaluación se cancela y el estado del monitor no cambia. -Por ejemplo, un monitor que evalúa sobre las últimas `2h` se divide en 12 buckets de 10 minutos. Se considera que el monitor está lleno si el primer bucket tiene datos y como máximo tres bucket en total están vacíos. +Por ejemplo, un monitor que evalúa en los últimos `2h` se divide en 12 intervalos de 10 minutos. El monitor se considera completo si el primer intervalo tiene datos y a lo sumo tres intervalos en total están vacíos. -| datos | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 | B11 | ¿Intervalo completo?| +| datos | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 | B11 | ¿Ventana completa?| |--------|----|----|----|----|----|----|----|----|----|----|-----|-----|-------------| | caso 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Sí | | caso 2 | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | No | | caso 3 | 1 | 1 | x | x | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Sí | | caso 4 | 1 | x | x | x | 1 | 1 | 1 | 1 | x | x | 1 | 1 | No | -Para más información sobre el intervalo de evaluación, consulta la página [Configuración del monitor][5]. +Para más información sobre la Ventana de Evaluación, consulte la página de [Monitor configuration][5]. -#### Otras opciones +#### Otras opciones {#other-options} -Para obtener instrucciones sobre las opciones avanzadas de alerta (sin datos, resolución automática), consulta la página [Configuración del monitor][6]. +Para instrucciones sobre las opciones avanzadas de alerta (sin datos, resolución automática), consulte la página de [Monitor configuration][6]. -## Notificaciones +## Notifications {#notifications} -Para obtener instrucciones detalladas sobre la sección **Configure notifications and automations** (Configurar notificaciones y automatizaciones), consulta la página [Notificaciones][7] y [Configuración del monitor][8]. +Para instrucciones sobre la sección **Configurar Notifications y automatizaciones**, consulte las páginas [Notifications][7] y [Monitor configuration][8]. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/es/network_monitoring/devices/setup.md b/content/es/network_monitoring/devices/setup.md new file mode 100644 index 00000000000..cf3a5c4965f --- /dev/null +++ b/content/es/network_monitoring/devices/setup.md @@ -0,0 +1,154 @@ +--- +aliases: +- /es/network_monitoring/devices/getting_started/ +description: Comience con sus dispositivos conectados a la red, como enrutadores, + conmutadores, servidores y cortafuegos. +further_reading: +- link: /network_monitoring/devices/supported_devices + tag: doc + text: Dispositivos NDM compatibles +- link: network_monitoring/devices/data/ + tag: Doc + text: Datos NDM recopilados +- link: https://www.datadoghq.com/blog/diagnose-network-performance-with-snmp-trap-monitoring/ + tag: Blog + text: Monitoree y diagnostique problemas de rendimiento de la red con Traps SNMP +title: Configuración +--- +## Descripción general {#overview} + +El Monitoreo de Dispositivos de Red le ayuda a obtener información sobre la salud y el rendimiento de sus enrutadores, conmutadores y cortafuegos locales. Después de que el Agente de Datadog esté instalado en un host que tenga acceso a la red, el Agente puede detectar automáticamente los dispositivos de red y recopilar métricas de inmediato. + +Esta guía cubre la configuración de Network Device Monitoring en sus hosts, enriqueciendo las etiquetas de los dispositivos, configurando y visualizando perfiles de dispositivos, visualizando datos en NetFlow Monitoring y validando datos en los tableros y el Mapa de Topología de Dispositivos proporcionados. + +{{< img src="network_device_monitoring/getting_started/ndm_landing_page_2.png" alt="La página de inicio de Network Device Monitoring, mostrando gráficos e interfaces." style="width:100%;" >}} + +## Cómo funciona {#how-it-works} + +El siguiente diagrama ilustra el flujo de datos entre Syslog, traps SNMP e información de NetFlow. Los dispositivos envían la información relevante al Agente de Datadog a través de los puertos como se muestra en el diagrama (los puertos se pueden cambiar si es necesario mediante la configuración en el Agente). Para integraciones basadas en API, el Agente de Datadog se conecta con los controladores o administradores de software del proveedor de dispositivos de red en las instalaciones o en la nube según las instrucciones específicas `https` de integraciones API por proveedor. El Agente de Datadog, configurado con NDM y desplegado en las instalaciones o en la nube, consolida todos los datos de dispositivos y red recopilados de su red y los envía a Datadog a través de HTTPS en el puerto `443`. Esto proporciona una observabilidad unificada y de pila completa de métricas, registros, trazas, monitores y tableros. + + {{< img src="network_device_monitoring/getting_started/syslog_trap_netflow.png" alt="Diagrama NDM mostrando el flujo para la recopilación de Syslog, traps y Netflow." style="width:90%;" >}} + +## Próximos pasos {#next-steps} + +Siga las instrucciones a continuación para configurar Datadog para monitorear sus dispositivos de red. + +## Requisitos previos {#prerequisites} + +### Instalar el Agente {#install-the-agent} + +Navegue a la [página de instalación del Agente][1] e instale el [Agente de Datadog][2] en su host (generalmente un servidor que **no** es el dispositivo monitoreado).
    + +{{< img src="network_device_monitoring/getting_started/ndm_install_agent.png" alt="La página de configuración del Agente, destacando la instalación en Ubuntu." style="width:100%;" >}} + +## Configuración {#setup} + +### Alta Disponibilidad {#high-availability} + +{{< site-region region="gov,gov2" >}} +
    El soporte de Alta Disponibilidad del Agente de Datadog no está disponible para su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +El soporte de Alta Disponibilidad (HA) del Agente de Datadog en el Monitoreo de Dispositivos de Red le permite designar un Agente activo y un Agente en espera, asegurando un failover automático si el Agente activo encuentra un problema. Esta configuración elimina al Agente como un único punto de falla, manteniendo un monitoreo continuo durante incidentes inesperados o mantenimiento programado, como actualizaciones de sistema operativo y actualizaciones del Agente. + +Puede configurar Agentes activos y en espera para funcionar como un par de HA en NDM. Si el Agente activo falla, el Agente en espera toma el control en 90 segundos, convirtiéndose en el nuevo Agente activo. Además, puede designar un Agente activo preferido, permitiendo que NDM vuelva automáticamente a él una vez que esté disponible nuevamente. Esta función permite el cambio proactivo de Agentes antes del mantenimiento programado. + +Para más información, consulte el [soporte de Alta Disponibilidad del Agente de Datadog][20]. + +### Configuración {#configuration} + +Para comenzar a monitorear sus dispositivos de red, habilite el monitoreo SNMP utilizando uno de los siguientes métodos: + +[Dispositivos individuales][3] +: Configura el seguimiento SNMP en sus dispositivos individuales. + +[Autodiscovery][4] +: Configura el seguimiento SNMP utilizando Autodiscovery. + +[Ping][5] +: Configura la verificación SNMP para enviar pings ICMP a tus dispositivos. + +[Syslog][22] +: Configura tus dispositivos para enviar mensajes Syslog. + +[VPN Monitoring][21] +: Configura el seguimiento de VPN para comenzar a realizar el seguimiento de los túneles VPN de sus dispositivos. + +### Enriquece los dispositivos de red con etiquetas {#enrich-network-devices-with-tags} + +Después de que NDM esté configurado en tus dispositivos, puedes enriquecerlos aún más agregando etiquetas de dispositivos de red utilizando los siguientes métodos: + +[Datadog Agent][2] +: El Agente puede recopilar etiquetas de dispositivos al configurar [dispositivos individuales][3] o con [Autodiscovery][4]. + +[Device profiles][6] +: Configura el Agente para recopilar y personalizar métricas y etiquetas específicas creando perfiles de dispositivos directamente en la aplicación. + +[ServiceNow integration][7] +: Enriquece dinámicamente los dispositivos de red monitoreados por Datadog Network Device Monitoring con datos definidos en la CMDB (Base de Datos de Gestión de Configuración) de ServiceNow. + +[Network Device Monitoring API](#use-the-network-api) +: Utiliza la Network Device Monitoring API para agregar etiquetas a tus dispositivos de red de manera programática. + +### Personaliza métricas y etiquetas {#customize-metrics-and-tags} + +Personaliza métricas y etiquetas en tus dispositivos consultando la página de [Dispositivos Soportados][9] para ver los perfiles de dispositivo listos para usar. Si deseas editar o agregar más métricas, las siguientes opciones están disponibles: + +[Perfiles de dispositivo][10] +: Edita directamente métricas y etiquetas en el archivo del Datadog Agent `yaml` con perfiles de dispositivo. + +[Autorización de perfil basada en GUI][6] +: Aprovecha la experiencia de incorporación de dispositivos basada en GUI de Datadog Network Monitoring, donde puedes agregar métricas y etiquetas personalizadas a tus dispositivos. + +### NetFlow Monitoring {#netflow-monitoring} + +Configura [NetFlow Monitoring][11] para visualizar y monitorear tus registros de flujo desde tus dispositivos habilitados para NetFlow. + +{{< img src="network_device_monitoring/netflow/home.png" alt="La página de NetFlow Monitoring contiene pestañas para las principales fuentes, destinos, protocolos, puertos de origen, puertos de destino y tendencias de dispositivos." style="width:100%;" >}} + +## Valida tus datos {#validate-your-data} + +- Comienza a monitorear toda tu infraestructura de red en la página de [Dispositivos de Red][12]. +- Consulta las métricas recopiladas en los paneles listos para usar de Datadog: + - [Resumen de todos los dispositivos monitoreados][13] + - [Rendimiento de las interfaces en tus dispositivos de red][14] +- Utiliza el [Mapa de Topología de Dispositivos de Red][15] para identificar y solucionar problemas con tus dispositivos. + +## Utiliza la API de Red {#use-the-network-api} + +- Utiliza la [API de Red][8] para extraer la siguiente información sobre tus dispositivos de red: + * [Obtén la lista de interfaces para tus dispositivos.][16] + - [Obtén la lista de etiquetas para tus dispositivos.][17] + - [Actualiza la lista de etiquetas para tus dispositivos.][18] + +## Solución de problemas {#troubleshooting} + +- Consulte la página de [Solución de problemas][19] de Network Device Monitoring para obtener más información sobre cómo resolver los problemas de NDM. + + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /es/agent +[3]: /es/network_monitoring/devices/snmp_metrics/?tab=snmpv2#monitoring-individual-devices +[4]: /es/network_monitoring/devices/snmp_metrics/#autodiscovery +[5]: /es/network_monitoring/devices/ping +[6]: /es/network_monitoring/devices/guide/device_profiles/ +[7]: https://docs.datadoghq.com/es/integrations/servicenow/#network-device-tagging +[8]: /es/api/latest/network-device-monitoring/ +[9]: /es/network_monitoring/devices/supported_devices +[10]: /es/network_monitoring/devices/profiles +[11]: /es/network_monitoring/netflow/ +[12]: https://app.datadoghq.com/devices +[13]: https://app.datadoghq.com/dash/integration/30409/datacenter-overview +[14]: https://app.datadoghq.com/dash/integration/30417/interface-performance +[15]: /es/network_monitoring/devices/device_topology_map +[16]: /es/api/latest/network-device-monitoring/#get-the-list-of-interfaces-of-the-device +[17]: /es/api/latest/network-device-monitoring/#get-the-list-of-tags-for-a-device +[18]: /es/api/latest/network-device-monitoring/#update-the-tags-for-a-device +[19]: /es/network_monitoring/devices/troubleshooting +[20]: /es/integrations/guide/high_availability +[21]: /es/network_monitoring/devices/vpn_monitoring +[22]: /es/network_monitoring/devices/syslog \ No newline at end of file diff --git a/content/es/security/code_security/iac_security/iac_rules/_index.md b/content/es/security/code_security/iac_security/iac_rules/_index.md new file mode 100644 index 00000000000..fb3cc932a30 --- /dev/null +++ b/content/es/security/code_security/iac_security/iac_rules/_index.md @@ -0,0 +1,24 @@ +--- +further_reading: +- link: /security/code_security/iac_security/setup + tag: Documentación + text: Configurar la Seguridad de IaC +- link: /security/code_security/iac_security/configuration + tag: Documentación + text: Configurar la Seguridad de IaC +title: Reglas de Seguridad de IaC +type: iac_security +--- +{{% site-region region="gov,gov2" %}} +
    Este producto no es compatible con su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
    +{{% /site-region %}} + +[Seguridad de IaC][1] identifica configuraciones incorrectas y riesgos de seguridad en archivos de infraestructura como código antes de la implementación, ayudando a asegurar que los entornos en la nube permanezcan seguros y cumplan con las normativas. + +
    Para que la resolución de Helm funcione correctamente, cada directorio de chart debe incluir los charts de los que depende. Para más detalles, consulte Chart File Structure en la documentación de Helm.
    + +[1]: /es/security/code_security/iac_security/ + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/es/serverless/aws_lambda/distributed_tracing.md b/content/es/serverless/aws_lambda/distributed_tracing.md index 1afb2a02f08..c87b5101249 100644 --- a/content/es/serverless/aws_lambda/distributed_tracing.md +++ b/content/es/serverless/aws_lambda/distributed_tracing.md @@ -9,57 +9,57 @@ aliases: further_reading: - link: /tracing/ tag: Documentación - text: Explora Datadog APM + text: Explorar Datadog APM - link: /tracing/trace_search_and_analytics/#live-search-for-15-minutes tag: Documentación - text: Búsqueda dinámica + text: Búsqueda en vivo - link: https://www.datadoghq.com/blog/aws-lambda-tracing-go-java-functions/ tag: Blog - text: Rastreo distribuido en tiempo real para funciones de Lambda de Go y Java + text: Trazado distribuido en tiempo real para funciones Lambda de Go y Java - link: https://www.datadoghq.com/blog/datadog-serverless-view/ tag: Blog - text: Monitoriza tu pila serverless en la vista serverless + text: Monitoree su pila Serverless en la visualización Serverless - link: https://www.datadoghq.com/blog/monitor-aws-fully-managed-services-datadog-serverless-monitoring/ tag: Blog - text: Datadog Serverless Monitoring para servicios totalmente gestionados de AWS + text: Serverless Monitoring de Datadog para servicios completamente administrados + de AWS - link: https://www.datadoghq.com/blog/dotnet-lambda-functions-distributed-tracing/ tag: Blog - text: Rastreo distribuido en tiempo real para funciones de Lambda de .NET -title: Rastreo distribuido con aplicaciones serverless de AWS Lambda + text: Trazado distribuido en tiempo real para funciones Lambda de .NET +title: Trazado distribuido con aplicaciones Serverless de AWS Lambda --- +{{< img src="tracing/serverless_functions/ServerlessDistributedTrace.png" alt="Trace funciones Serverless" style="width:100%;">}} -{{< img src="tracing/serverless_functions/ServerlessDistributedTrace.png" alt="Rastrear funciones serverless" style="width:100%;">}} +Al conectar sus trazas Serverless con métricas, Datadog proporciona una imagen rica en contexto del rendimiento de su aplicación, permitiéndole resolver de forma más efectiva los problemas de rendimiento dada la naturaleza distribuida de las aplicaciones Serverless. -Al conectar tus trazas (traces) serverless a métricas, Datadog brinda una imagen rica en contexto del rendimiento de tu aplicación, lo que te permite solucionar mejor los problemas de rendimiento dada la naturaleza distribuida de las aplicaciones serverless. +Los SDK de Datadog para Python, Node.js, Ruby, Go, Java y .NET soportan trazado distribuido para AWS Lambda. -Las bibliotecas de rastreo de Python, Node.js, Ruby, Go, Java y .NET de Datadog admiten el rastreo distribuido para AWS Lambda. +## Envíe trazas desde su aplicación Serverless {#send-traces-from-your-serverless-application} -## Enviar trazas desde una aplicación serverless +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Diagrama de arquitectura para la traza de AWS Lambda con Datadog" >}} -{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Diagrama de la arquitectura del rastreo de AWS Lambda con Datadog" >}} +Los SDK de Datadog para Python, Node.js, Ruby, Go, Java y .NET soportan trazado distribuido para AWS Lambda. Puede instalar el SDK siguiendo las [instrucciones de instalación][5]. -Las bibliotecas de rastreo de Python, Node.js, Ruby, Go, Java y .NET de Datadog admiten el rastreo distribuido para AWS Lambda. Puedes instalar el rastreador siguiendo las [instrucciones de instalación][5]. Si ya tienes instalada la extensión, asegúrate de que la variable de entorno `DD_TRACE_ENABLED` esté definida como `true`. - -### Recomendaciones sobre el tiempo de ejecución +### Recomendaciones de tiempo de ejecución {#runtime-recommendations} {{< card-grid card_width="30%" image_width="200">}} {{< image-card href="/serverless/distributed_tracing#python-and-nodejs" src="integrations_logos/python.png" alt="Python" >}} {{< image-card href="/serverless/distributed_tracing#python-and-nodejs" src="integrations_logos/nodejs.png" alt="Node.js" >}} {{< image-card href="/serverless/distributed_tracing#ruby" src="integrations_logos/ruby.png" alt="Ruby" >}} {{< image-card href="/serverless/distributed_tracing#java" src="integrations_logos/java.png" alt="Java" >}} - {{< image-card href="/serverless/distributed_tracing#go" src="integrations_logos/go-metro.png" alt="go" >}} + {{< image-card href="/serverless/distributed_tracing#go" src="integrations_logos/go-metro.png" alt="Go" >}} {{< image-card href="/serverless/distributed_tracing#net" src="integrations_logos/dotnet_text.png" alt=".NET" >}} {{< /card-grid >}} -#### Python y Node.js +#### Python y Node.js {#python-and-nodejs} -La biblioteca Lambda de Datadog y las bibliotecas de rastreo para Python y Node.js admiten lo siguiente: -- Correlación automática de logs y trazas de Lambda con ID de traza e inyección de etiquetas. -- Instalación sin cambios en el código mediante las integraciones de Serverless Framework, AWS SAM y AWS CDK. -- Rastreo de solicitudes HTTP que invocan contenedores o funciones de Lambda. -- Rastreo de invocaciones de Lambda consecutivas realizadas a través de AWS SDK. -- Rastreo de arranque en frío -- Rastreo de invocaciones de Lambda asíncronas a través de AWS Managed Services +La biblioteca y SDKs de Datadog Lambda para Python y Node.js soportan: +- Correlación automática de registros y trazas de Lambda con ID de traza e inyección de etiquetas. +- Instalación sin cambios en el código utilizando Serverless Framework, AWS SAM e integraciones de AWS CDK. +- Trazado de solicitudes HTTP que invocan funciones Lambda o contenedores descendentes. +- Trazado de invocaciones consecutivas de Lambda realizadas a través del SDK de AWS. +- Trazado de inicio en frío +- Trazado de invocaciones asíncronas de Lambda a través de Servicios Administrados de AWS - API Gateway - SQS - SNS @@ -69,78 +69,78 @@ La biblioteca Lambda de Datadog y las bibliotecas de rastreo para Python y Node. - DynamoDB - S3 - Step Functions -- Rastreo de decenas de bibliotecas de [Python][3] y [Node.js][4] adicionales listas para usar. +- Trazado de docenas de bibliotecas adicionales listas para usar [Python][3] y [Node.js][4]. -En el caso de las aplicaciones serverless de Python y Node.js, Datadog recomienda [instalar bibliotecas de rastreo de Datadog][5]. +Para aplicaciones Serverless en Python y Node.js, Datadog recomienda que [instale los SDKs de Datadog][5]. -*¿Quieres efectuar rastreos a través de recursos serverless que no figuran en la lista anterior? [Abre una solicitud de característica][7].* +*¿Busca trazar recursos Serverless que no están listados arriba? [Abra una solicitud de función][7].* -#### Ruby +#### Ruby {#ruby} -La biblioteca Lambda de Datadog y las bibliotecas de rastreo para Ruby admiten lo siguiente: +La Biblioteca Lambda de Datadog y los SDKs para Ruby soportan: - Correlación automática de logs y trazas de Lambda con ID de traza e inyección de etiquetas. -- Rastreo de solicitudes HTTP que invocan contenedores o funciones de Lambda. -- Rastreo de decenas de bibliotecas de [Ruby][8] adicionales listas para usar. +- Trazado de solicitudes HTTP que invocan funciones Lambda o contenedores descendentes. +- Trazado de docenas de bibliotecas adicionales de [Ruby][8] listas para usar. -Puedes rastrear funciones serverless en Datadog con [bibliotecas de rastreo de Datadog][5]. +Puede trazar sus funciones Serverless en Datadog con [los SDK de Datadog][5]. -*¿Quieres efectuar rastreos a través de recursos serverless que no figuran en la lista anterior? [Abre una solicitud de característica][7].* +*¿Busca trazar recursos Serverless que no están listados arriba? [Abra una solicitud de función][7].* -#### Go +#### Go {#go} -La biblioteca Lambda de Datadog y las bibliotecas de rastreo para Go admiten lo siguiente: -- Correlación manual de logs y trazas de Lambda con ID de traza e inyección de etiquetas. -- Rastreo de solicitudes HTTP que invocan contenedores o funciones de Lambda. -- Rastreo de decenas de bibliotecas de [Go][9] adicionales listas para usar. +La Biblioteca Lambda de Datadog y los SDKs para Go soportan: +- Correlación manual de registros y trazas de Lambda con ID de traza e inyección de etiquetas. +- Trazado de solicitudes HTTP que invocan funciones Lambda o contenedores descendentes. +- Trazado de docenas de bibliotecas adicionales de [Go][9] listas para usar. -En el caso de las aplicaciones serverless de Go, Datadog recomienda instalar [bibliotecas de rastreo de Datadog][5]. +Para aplicaciones Serverless en Go, Datadog recomienda instalar [los SDK de Datadog][5]. -*¿Quieres efectuar rastreos a través de recursos serverless que no figuran en la lista anterior? [Abre una solicitud de característica][7].* +*¿Busca trazar recursos Serverless que no están listados arriba? [Abra una solicitud de función][7].* -#### Java +#### Java {#java} -La biblioteca Lambda de Datadog y las bibliotecas de rastreo para Java admiten lo siguiente: -- Correlación de logs y trazas de Lambda con ID de traza e inyección de etiquetas. Consulta [Conexión de logs y trazas de Java][10] para obtener más detalles. -- Rastreo de solicitudes HTTP que invocan contenedores o funciones de Lambda. -- Rastreo de decenas de bibliotecas de [Java][11] adicionales listas para usar. +La Biblioteca Lambda de Datadog y los SDKs para Java soportan: +- Correlación de los registros y trazas de Lambda con el ID de traza y la inyección de etiquetas. Consulte [Conectando registros y trazas de Java][10] para más detalles. +- Trazado de solicitudes HTTP que invocan funciones Lambda o contenedores descendentes. +- Trazado de docenas de bibliotecas adicionales de [Java][11] listas para usar. -En el caso de las aplicaciones serverless de Java, Datadog recomienda [instalar bibliotecas de rastreo de Datadog][5]. +Para aplicaciones Serverless en Java, Datadog recomienda [instalar los SDK de Datadog][5]. -*¿Tienes comentarios sobre las bibliotecas de rastreo de Datadog para las funciones de Lambda de Java? Asegúrate de consultar las discusiones en el canal [#serverless][12] de la [Comunidad de Slack de Datadog][13].* +*¿Tiene comentarios sobre los SDK de Datadog para funciones Lambda en Java? Asegúrese de revisar las discusiones que se están llevando a cabo en el canal [#serverless][12] de la [comunidad de Datadog en Slack][13].* -#### .NET +#### .NET {#net} -La biblioteca de rastreo para .NET admite lo siguiente: -- Rastreo de solicitudes HTTP que invocan contenedores o funciones de Lambda. -- Rastreo de decenas de bibliotecas de [.NET][14] adicionales listas para usar. +El SDK para .NET soporta: +- Trazado de solicitudes HTTP que invocan funciones Lambda o contenedores descendentes. +- Trazado de docenas de bibliotecas adicionales de [.NET][14] listas para usar. -En el caso de las aplicaciones serverless de .NET, Datadog recomienda [instalar bibliotecas de rastreo de Datadog][5]. +Para aplicaciones sin servidor en .NET, Datadog recomienda [instalar los SDK de Datadog][5]. -Obtén más información sobre el [rastreo a través de aplicaciones serverless de Azure de .NET][15]. +Aprenda más sobre [el trazado a través de aplicaciones Serverless en .NET Azure][15]. -## Enlace automático de tramos (span) -{{< img src="serverless/lambda/tracing/autolink.png" alt="En Datadog, una traza DynamoDB. En la parte superior, un mensaje dice: 'Esta traza está vinculada con otras trazas'. La pestaña Enlaces de tramos está abierta y muestra un enlace que permite hacer clic en él para ir a otra traza de DynamoDB." style="width:100%;" >}} +## Auto-enlazado de tramos {#span-auto-linking} +{{< img src="serverless/lambda/tracing/autolink.png" alt="En Datadog, una traza de DynamoDB. En la parte superior, un mensaje dice 'Esta traza está vinculada a otras trazas'. La pestaña Span Links está abierta y muestra un enlace clicable a otra traza de DynamoDB." style="width:100%;" >}} -Datadog detecta automáticamente tramos vinculados cuando los segmentos de tus solicitudes asíncronas no pueden propagar el contexto de rastreo. Por ejemplo, esto puede ocurrir cuando una solicitud activa [eventos de cambios de S3][28], o [flujos (streams) DynamoDB][29]. Puedes ver que aparecen tramos autovinculados en la pestaña [Enlaces de tramos][30]. Estos aparecen como Backward (Atrás) o **Forward** (Adelante). +Datadog detecta automáticamente los tramos vinculados cuando los segmentos de sus solicitudes asíncronas no pueden propagar el contexto de la traza. Por ejemplo, esto puede ocurrir cuando una solicitud activa un [Evento de Cambio de S3][28] o [Flujos de DynamoDB][29]. Puede ver que los tramos auto-enlazados aparecen en la pestaña [Enlaces de Tramos][30]. Estos aparecen como **Hacia Atrás** o **Hacia Adelante**. -_Backward_ (Atrás): El tramo vinculado fue generado por la traza que estás visualizando. +_Hacia Atrás_: El tramo enlazado fue causado por la traza que está visualizando. -_Forward_ (Adelante): El tramo vinculado generó la traza que estás visualizando. +_Hacia Adelante_: El tramo enlazado causó la traza que está visualizando. -
    Los filtros de muestreo y retención de trazas pueden interferir con el enlace automático. Para aumentar tus posibilidades de ver tramos de enlace automático, aumenta tu frecuencia de muestreo o ajusta tus filtros de retención.
    +
    Los filtros de muestreo y retención de trazas pueden interferir con el auto-enlazado. Para mejorar sus posibilidades de ver tramos auto-enlazados, aumente su tasa de muestreo o ajuste sus filtros de retención de trazas.
    -### Tecnologías compatibles +### Tecnologías soportadas {#supported-technologies} -El enlace automático de tramos está disponible para: -- Funciones Lambda Python AWS instrumentadas con la capa [`Datadog-lambda-Python`][33] v101 o posterior -- Aplicaciones Python instrumentadas con [`dd-rastrear-py`][31] v2.16 o posterior -- Funciones Lambda Node.js AWS instrumentadas con la capa [`Datadog-lambda-js`][34] v118 o posterior -- Aplicaciones Node.js instrumentadas con [`dd-rastrear-js`][32] v4.53.0 o posterior o v5.29.0 o posterior +El auto-enlazado de tramos está disponible para: +- Funciones de Python AWS Lambda instrumentadas con [`datadog-lambda-python`][33] capa v101+ +- Aplicaciones de Python instrumentadas con [`dd-trace-py`][31] v2.16+ +- Funciones de Node.js AWS Lambda instrumentadas con [`datadog-lambda-js`][34] capa 118+ +- Aplicaciones de Node.js instrumentadas con [`dd-trace-js`][32] v4.53.0+ o v5.29.0+ -### Enlace automático de flujos de cambios de DynamoDB +### Auto-enlazado de DynamoDB Change Stream {#dynamodb-change-stream-auto-linking} -En los [flujos de cambios de DynamoDB][29], el enlace automático de tramos admite las siguientes operaciones: +Para [DynamoDB Change Streams][29], el auto-enlazado de tramos soporta las siguientes operaciones: - `PutItem` - `UpdateItem` @@ -148,107 +148,98 @@ En los [flujos de cambios de DynamoDB][29], el enlace automático de tramos admi - `BatchWriteItem` - `TransactWriteItems` -
    La operación PutItem requiere una configuración adicional. Para obtener más información, consulta Instrumentación de aplicaciones Python serverless o Instrumentación de aplicaciones Node.js serverless.
    +
    El PutItem la operación requiere configuración adicional. Para más información, consulte Instrumentando Aplicaciones Serverless en Python o Instrumentando Aplicaciones Serverless en Node.js.
    -### Enlace automático de notificaciones de cambios de S3 +### Auto-enlazado de Notificaciones de Cambio en S3 {#s3-change-notification-auto-linking} -En las [notificaciones de cambios de S3][28], el enlace automático de tramos admite las siguientes operaciones: +Para [Notificaciones de Cambio en S3][28], el auto-enlazado de tramos soporta las siguientes operaciones: - `PutObject` - `CompleteMultipartUpload` - `CopyObject` -## Entornos híbridos - -Si instalaste las bibliotecas de rastreo de Datadog (`dd-trace`) en tus hosts y funciones de Lambda, tus trazas te mostrarán automáticamente la imagen completa de las solicitudes que cruzan los límites de la infraestructura, ya sea de AWS Lambda, contenedores, hosts on-prem o servicios gestionados. - -Si `dd-trace` está instalado en tus hosts con el Datadog Agent y tus funciones serverless se rastrean con AWS X-Ray, es necesario fusionar las trazas para ver una traza única y conectada de toda la infraestructura. Consulta la documentación [Fusión de trazas serverless][6] para obtener más información sobre la fusión de trazas de `dd-trace` y AWS X-Ray. +## Entornos híbridos {#hybrid-environments} -La [integración de AWS X-Ray][2] de Datadog solo ofrece trazas para las funciones de Lambda. Consulta la [documentación de Datadog APM][16] para obtener más información sobre el rastreo en entornos basados en contenedores o hosts. +Para visibilidad de extremo a extremo a través de funciones Lambda, hosts, contenedores y servicios administrados, instale los SDKs de Datadog (`dd-trace`) tanto en sus funciones Lambda como en sus hosts. Sus trazas mostrarán entonces una imagen completa de las solicitudes que cruzan los límites de infraestructura. -## Creación de perfiles de tus funciones Lambda +En Lambda, instale `dd-trace` con la [Extensión de Lambda de Datadog][35], que ejecuta el Agente de Datadog dentro del entorno de ejecución de Lambda y envía trazas directamente a Datadog con un mínimo de sobrecarga. La Extensión de Lambda es el método de instalación recomendado para nuevas y existentes aplicaciones Serverless. -[Continuous Profiler][27] de Datadog está disponible en Vista Previa para Python en la versión 4.62.0 y la versión de capa 62 y posteriores. Esta función opcional se activa configurando la variable de entorno `DD_PROFILING_ENABLED` como `true`. +Consulte la [documentación de APM de Datadog][16] para la configuración de trazado en entornos basados en contenedores y hosts. -Continuous Profiler genera un subproceso que se activa periódicamente y toma una snapshot de la CPU y el montículo de todo el código de Python en ejecución. Esto puede incluir el propio generador de perfiles. Si quieres que el generador de perfiles se ignore a sí mismo, define `DD_PROFILING_IGNORE_PROFILER` como `true`. +## Perfilando sus Funciones Lambda {#profiling-your-lambda-functions} -## Fusión de trazas +El [Continuous Profiler][27] de Datadog está disponible en versión preliminar para Python en la versión 4.62.0 y las versiones de capa 62 y superiores. Esta función opcional se habilita configurando la variable de entorno `DD_PROFILING_ENABLED` a `true`. -### Casos prácticos +El Continuous Profiler funciona creando un hilo que se despierta periódicamente y toma una instantánea de la CPU y el heap de todo el código Python en ejecución. Esto puede incluir el propio Continuous Profiler. Si desea que el Continuous Profiler se ignore a sí mismo, configure `DD_PROFILING_IGNORE_PROFILER` a `true`. -Datadog recomienda usar solo la biblioteca de rastreo de Datadog APM (`dd-trace`), pero en algunas situaciones avanzadas los usuarios pueden combinar el rastreo de Datadog y AWS X-Ray mediante la fusión de trazas. La fusión de trazas está disponible para las funciones de AWS Lambda de Node.js y Python. Si no estás seguro de qué biblioteca de rastreo usar, lee sobre [cómo elegir una biblioteca de rastreo][17]. +## Fusión de Trazas {#trace-merging} -Hay dos razones principales para instrumentar las bibliotecas de rastreo de `dd-trace` y AWS X-Ray: -- En un entorno serverless de AWS, ya rastreas tus funciones de Lambda con `dd-trace`, necesitas el rastreo activo de AWS X-Ray para los servicios gestionados de AWS como AppSync y Step Functions, y quieres visualizar los tramos de `dd-trace` y AWS X-Ray en una sola traza. -- En un entorno híbrido con hosts y funciones de Lambda, `dd-trace` instrumenta tus hosts, AWS X-Ray instrumenta tus funciones de Lambda, y quieres visualizar las trazas conectadas sobre las transacciones entre los hosts y las funciones de Lambda. +### Casos de uso {#use-cases} -**Nota:** Esto puede dar lugar a facturas de uso más elevadas. Los tramos de X-Ray siguen estando disponibles en tus trazas fusionadas después de 2 o 5 minutos. En muchos casos, Datadog recomienda utilizar una sola biblioteca de rastreo. Obtén más información sobre [cómo elegir una biblioteca de rastreo][17]. +Datadog recomienda usar solo la biblioteca de traza de Datadog APM (`dd-trace`), pero en algunas situaciones avanzadas, los usuarios pueden combinar Datadog tracing y AWS X-Ray utilizando la fusión de trazas. La fusión de trazas está disponible para funciones de AWS Lambda en Node.js y Python. Si no está seguro de qué SDK usar, lea sobre [elegir su SDK][17]. -A continuación se ofrecen instrucciones de configuración para cada uno de los casos de uso mencionados: +
    El trazado de AWS Step Functions es compatible de forma nativa con Datadog y ya no requiere X-Ray. Vea Serverless Monitoring para AWS Step Functions y Merge Step Functions and Lambda Traces.
    -- [Fusión de trazas en un entorno serverless](#trace-merging-in-an-AWS-serverless-environment) -- [Fusión de trazas entre AWS Lambda y hosts](#tracing-across-aws-lambda-and-hosts) +Hay dos razones principales para instrumentar tanto `dd-trace` como las bibliotecas de traza de AWS X-Ray: +- En un entorno serverless de AWS, ya está trazando sus funciones Lambda con `dd-trace`, necesita la traza activa de AWS X-Ray para un servicio administrado por AWS que Datadog APM aún no instrumenta (como AppSync), y desea visualizar los `dd-trace` y los tramos de AWS X-Ray en una sola traza. +- En un entorno híbrido con funciones Lambda y servidores, `dd-trace` instrumenta sus servidores, AWS X-Ray instrumenta sus funciones Lambda, y desea visualizar trazas conectadas para transacciones a través de funciones Lambda y servidores. -### Fusión de trazas en un entorno serverless de AWS +**Nota:** Esto puede resultar en facturas de uso más altas. Los tramos de X-Ray continúan disponibles en sus trazas fusionadas después de 2-5 minutos. En muchos casos, Datadog recomienda usar un solo SDK. Aprenda más sobre [elegir su SDK][17]. -AWS X-Ray ofrece tanto un servicio backend de AWS (el rastreo activo de AWS X-Ray) como un conjunto de bibliotecas de clientes. La [Habilitación de solo el servicio backend de AWS en la consola de Lambda][18] te otorga los tramos `Initialization` e `Invocation` para tus funciones de AWS Lambda. También puedes habilitar el rastreo activo de AWS X-Ray desde las consolas de API Gateway y Step Functions. +Puede encontrar instrucciones de configuración para cada uno de los casos de uso anteriores a continuación: -Tanto el SDK de AWS X-Ray como las bibliotecas de clientes de Datadog APM (`dd-trace`) añaden metadatos y tramos para las llamadas descendentes mediante el acceso directo a la función. Suponiendo que utilizas `dd-trace` para rastrear en el nivel de controlador, tu configuración debe ser similar a la siguiente: +- [Fusión de trazas en un entorno orientado a serverless](#trace-merging-in-an-AWS-serverless-environment) +- [Fusión de trazas entre AWS Lambda y servidores](#tracing-across-aws-lambda-and-hosts) -1. Habilitaste el [rastreo activo de AWS X-Ray][18] en tus funciones de Lambda desde la consola de AWS Lambda y nuestra [integración de AWS X-Ray dentro de Datadog][19]. -2. Instrumentaste tus funciones de Lambda con Datadog APM (`dd-trace`) siguiendo las [instrucciones de instalación de tu tiempo de ejecución de Lambda][5]. -3. `dd-trace` parchea automáticamente las bibliotecas de terceros, por lo que no es necesario instalar las bibliotecas de clientes de AWS X-Ray. -4. Define la variable de entorno `DD_MERGE_XRAY_TRACES` como `true` en tus funciones de Lambda para fusionar las trazas de X-Ray y `dd-trace` (`DD_MERGE_DATADOG_XRAY_TRACES` en Ruby). +### Fusión de trazas en un entorno serverless de AWS {#trace-merging-in-an-aws-serverless-environment} -### Rastreo entre AWS Lambda y hosts +AWS X-Ray proporciona tanto un servicio backend de AWS (AWS X-Ray active tracing) como un conjunto de bibliotecas de cliente. [Habilitar solo el servicio backend de AWS en la consola de Lambda][18] le brinda `Initialization` y `Invocation` tramos para sus funciones de AWS Lambda. También puede habilitar AWS X-Ray active tracing desde las consolas de API Gateway y Step Function. -#### Propagación de contextos con bibliotecas de rastreo de Datadog -Si instalaste las bibliotecas de rastreo de Datadog (`dd-trace`) en tus hosts y funciones de Lambda, tus trazas te mostrarán automáticamente la imagen completa de las solicitudes que cruzan los límites de la infraestructura, ya sea de AWS Lambda, contenedores, hosts on-prem o servicios gestionados. +Tanto el SDK de AWS X-Ray como las bibliotecas de clientes de Datadog APM (`dd-trace`) añaden metadatos y tramos para llamadas descendentes accediendo a la función directamente. Suponiendo que está utilizando `dd-trace` para rastrear a nivel de controlador, su configuración debería ser similar a la siguiente: -#### Propagación de contextos con la integración X-Ray -Si `dd-trace` está instalado en tus hosts con el Datadog Agent y tus funciones serverless de Node.js o Python se rastrean con AWS X-Ray, tu configuración debe ser similar a la siguiente: +1. Ha habilitado el [rastreo activo de AWS X-Ray][18] en sus funciones Lambda desde la consola de AWS Lambda y nuestra [integración de AWS X-Ray dentro de Datadog][19]. +2. Ha instrumentado sus funciones Lambda con Datadog APM (`dd-trace`) siguiendo las [instrucciones de instalación para su entorno de ejecución de Lambda][5]. +3. Las bibliotecas de terceros son parcheadas automáticamente por `dd-trace`, por lo que no es necesario instalar las bibliotecas de clientes de AWS X-Ray. +4. Establezca la variable de entorno `DD_MERGE_XRAY_TRACES` en `true` en sus funciones Lambda para fusionar las trazas de X-Ray y `dd-trace` (`DD_MERGE_DATADOG_XRAY_TRACES` en Ruby). -1. Instalaste la [integración de AWS X-Ray][18] para rastrear tus funciones de Lambda, para lo cual habilitaste el rastreo activo de AWS X-Ray e instalaste las bibliotecas de clientes de X-Ray. -2. Has instalado la [biblioteca Datadog Lambda para tu tiempo de ejecución Lambda][5] y la variable de entorno `DD_TRACE_ENABLED` está configurada como `true`. -3. [Datadog APM][20] está configurado en tu infraestructura basada en hosts y contenedores. +### Rastreo a través de AWS Lambda y servidores {#tracing-across-aws-lambda-and-hosts} -Entonces, para que las trazas de X-Ray y Datadog APM aparezcan en el mismo gráfico de llamas, todos los servicios deben tener la misma etiqueta `env`. +#### Propagación de contexto con los SDK de Datadog (recomendado) {#context-propagation-with-the-datadog-sdks-recommended} +Instale los SDK de Datadog (`dd-trace`) tanto en sus funciones Lambda como en los servidores. Sus trazas luego muestran automáticamente una imagen completa de las solicitudes que cruzan los límites de infraestructura, ya sea AWS Lambda, contenedores, servidores locales o servicios administrados. -**Nota**: El rastreo distribuido es compatible con cualquier tiempo de ejecución de las aplicaciones basadas en hosts o contenedores. No es necesario que los hosts y las funciones de Lambda estén en el mismo tiempo de ejecución. +{{< img src="integrations/amazon_lambda/lambda_host_trace.png" alt="traza de una solicitud de un servidor a una función Lambda" >}} -{{< img src="integrations/amazon_lambda/lambda_host_trace.png" alt="traza de una solicitud de un host a una función de Lambda" >}} +## Propagación de traza {#trace-propagation} +{{< img src="serverless/lambda-non-http-trace.png" alt="Traza distribuida no-HTTP en entornos Serverless" style="width:100%;" >}} -## Propagación de trazas -{{< img src="serverless/lambda-non-http-trace.png" alt="Traza serverless distribuida no HTTP" style="width:100%;" >}} +### Configuración requerida {#required-setup} -### Configuración necesaria +A veces se requiere instrumentación adicional para ver una sola traza conectada en aplicaciones Serverless de Node y Python que activan funciones Lambda de forma asíncrona. Si recién está comenzando a monitorear aplicaciones Serverless en Datadog, [siga nuestros pasos principales de instalación][21] y [lea esta página sobre cómo elegir su SDK][22]. Una vez que esté enviando trazas desde sus funciones Lambda a Datadog utilizando la [Biblioteca Lambda de Datadog][23], puede seguir estos pasos para conectar trazas entre dos funciones Lambda en casos como: +- Activando funciones Lambda a través de Step Functions +- Invocando funciones Lambda a través de protocolos no-HTTP como MQTT -A veces es necesario aplicar instrumentación adicional para ver una traza única y conectada en aplicaciones serverless de Node y Python que activan funciones de Lambda de forma asíncrona. Si recién estás empezando con la monitorización de aplicaciones serverless en Datadog, [sigue nuestros pasos de instalación principales][21] y [lee esta página sobre cómo elegir una biblioteca de rastreo][22]. Una vez que ya estés enviando trazas desde tus funciones de Lambda a Datadog mediante la [biblioteca Lambda de Datadog][23], quizás quieras seguir estos pasos para conectar trazas entre dos funciones de Lambda en casos como los siguientes: -- Activación de funciones de Lambda a través de Step Functions -- Invocación de funciones de Lambda a través de protocolos no HTTP como MQTT +El trazado de muchos servicios administrados de AWS (listados [aquí][24]) es compatible de forma predeterminada y no requiere seguir los pasos descritos en esta página. -El rastreo de muchos de los servicios gestionados de AWS (enumerados [aquí][24]) ya está listo para usar y no requiere seguir los pasos descritos en esta página. +Para conectar con éxito el contexto de traza entre los recursos que envían trazas, necesitas: +- Incluir el contexto de traza de Datadog en los eventos salientes. El evento saliente puede originarse de un host o de una función Lambda con `dd-trace` instalado. +- Extraer el contexto de traza en la función Lambda consumidora. -Para conectar correctamente el contexto de rastreo entre los recursos que envían trazas, debes hacer lo siguiente: -- Incluye el contexto de rastreo de Datadog en los eventos salientes. El evento saliente puede originarse en un host o en función de Lambda con `dd-trace` instalado. -- Extrae el contexto de rastreo en la función de Lambda del consumidor. +### Pasando el contexto de traza {#passing-trace-context} -### Traspaso del contexto de rastreo - -Los siguientes ejemplos de código describen cómo pasar el contexto de rastreo en las cargas útiles salientes a servicios que no admiten encabezados HTTP o a servicios gestionados que Datadog no admite [de forma nativa][24] en Node y Python: +Los siguientes ejemplos de código describen cómo pasar el contexto de traza en las cargas útiles salientes a servicios que no soportan encabezados HTTP, o servicios administrados que no son soportados [nativamente][24] por Datadog en Node y Python: {{< tabs >}} {{% tab "Python" %}} -En Python, puedes utilizar la función auxiliar `get_dd_trace_context` para pasar el contexto de rastreo a los eventos salientes en una función de Lambda: +En Python, puede usar la función auxiliar `get_dd_trace_context` para pasar el contexto de traza a los eventos salientes en funciones Lambda: ```py import json import boto3 import os -from datadog_lambda.tracing import get_dd_trace_context # Función auxiliar de rastreo de Datadog +from datadog_lambda.tracing import get_dd_trace_context # Datadog tracing helper function def handler(event, context): my_custom_client.sendRequest( @@ -256,7 +247,7 @@ def handler(event, context): 'myCustom': 'data', '_datadog': { 'DataType': 'String', - 'StringValue': json.dumps(get_dd_trace_context()) # Incluye el contexto de rastreo en la carga útil saliente. + 'StringValue': json.dumps(get_dd_trace_context()) # Includes trace context in outgoing payload. }, }, ) @@ -265,13 +256,13 @@ def handler(event, context): {{% /tab %}} {{% tab "Node.js" %}} -En Node, puedes utilizar la función auxiliar `getTraceHeaders` para pasar el contexto de rastreo a los eventos salientes en una función de Lambda: +En Node, puede usar la función auxiliar `getTraceHeaders` para pasar el contexto de traza a los eventos salientes en una función Lambda: ```js -const { getTraceHeaders } = require("datadog-lambda-js"); // Función auxiliar de rastreo de Datadog +const { getTraceHeaders } = require("datadog-lambda-js"); // Datadog tracing helper function module.exports.handler = async event => { - const _datadog = getTraceHeaders(); // Captura el contexto de rastreo de Datadog actual. + const _datadog = getTraceHeaders(); // Captures current Datadog trace context. var payload = JSON.stringify({ data: 'sns', _datadog }); await myCustomClient.sendRequest(payload) @@ -280,9 +271,9 @@ module.exports.handler = async event => { {{% /tab %}} {{< /tabs >}} -#### Desde hosts +#### Desde servidores {#from-hosts} -Si no pasas el contexto de rastreo desde tus funciones de Lambda, puedes utilizar la siguiente plantilla de código en lugar de las funciones auxiliares `getTraceHeaders` y `get_dd_trace_context` para obtener el contexto del tramo actual. Las instrucciones sobre cómo hacer esto según cada tiempo de ejecución se describen [aquí][25]. +Si no está pasando el contexto de traza desde sus funciones Lambda, puede usar la siguiente plantilla de código en lugar de las funciones auxiliares `getTraceHeaders` y `get_dd_trace_context` para obtener el contexto de tramo actual. Las instrucciones sobre cómo hacer esto en cada entorno de ejecución están descritas [aquí][25]. ```js const tracer = require("dd-trace"); @@ -295,20 +286,21 @@ exports.handler = async event => { // ... ``` -### Extracción del contexto de rastreo +### Extrayendo el contexto de traza {#extracting-trace-context} -Para extraer el contexto de rastreo anterior de la función de Lambda del consumidor, debes definir una función de extracción que capture el contexto de rastreo antes de la ejecución del controlador de tu función de Lambda. Para ello, configura la variable de entorno `DD_TRACE_EXTRACTOR` de modo que apunte a la localización de la función de extracción. El formato es `.`. Por ejemplo, `extractors.json` si el extractor `json` se encuentra en el archivo `extractors.js`. Datadog te recomienda colocar todos los métodos de extracción en un archivo, ya que los extractores pueden reutilizarse en múltiples funciones de Lambda. Estos extractores son completamente personalizables para adaptarse a cualquier caso de uso. +Para extraer el contexto de traza mencionado anteriormente de la función Lambda consumidora, necesita definir una función extractora que capture el contexto de traza antes de la ejecución del controlador de su función Lambda. Para hacer esto, configure la variable de entorno `DD_TRACE_EXTRACTOR` para apuntar a la ubicación de su función extractora. El formato para esto es `.`. Por ejemplo, `extractors.json` si el extractor `json` está en el archivo `extractors.js`. Datadog recomienda que coloque todos sus métodos extractores en un solo archivo, ya que los extractores pueden ser reutilizados en múltiples funciones Lambda. Estos extractores son completamente personalizables para adaptarse a cualquier caso de uso. **Notas**: -- Si usas TypeScript o un bundler como webpack, debes aplicar `import` o `require` en el módulo Node.js donde se definen los extractores. Esto garantiza que el módulo se compile y se incluya en el paquete de despliegue de Lambda. -- Si tu función de Lambda de Node.js se ejecuta en `arm64`, debes [definir el extractor en el código de tu función][26] en lugar de utilizar la variable de entorno `DD_TRACE_EXTRACTOR`. +- Si está usando TypeScript o un empaquetador como webpack, debe `import` o `require` su módulo de Node.js donde se definen los extractores. Esto asegura que el módulo se compile y se incluya en su paquete de implementación de Lambda. +- Si su función de Lambda en Node.js se ejecuta en `arm64`, debe [definir el extractor en el código de su función][26] en lugar de usar la variable de entorno `DD_TRACE_EXTRACTOR`. -#### Extractores de ejemplo +#### Extractores de muestra {#sample-extractors} -Los siguientes ejemplos de código describen extractores de ejemplo que puedes utilizar para propagar el contexto de rastreo a través de un sistema de terceros o una API que no admita encabezados HTTP estándar. +El siguiente código muestra extractores de muestra que podrías usar para propagar el contexto de traza a través de un sistema de terceros o una API que no soporta encabezados HTTP estándar. {{< tabs >}} {{% tab "Python" %}} + ```py def extractor(payload): trace_headers = json.loads(payload["_datadog"]); @@ -338,32 +330,33 @@ exports.json = (payload) => { ``` {{% /tab %}} {{% tab "Go" %}} + ```go var exampleSQSExtractor = func(ctx context.Context, ev json.RawMessage) map[string]string { - eh := events.SQSEvent{} + eh := events.SQSEvent{} - headers := map[string]string{} + headers := map[string]string{} - if err := json.Unmarshal(ev, &eh); err != nil { - return headers - } + if err := json.Unmarshal(ev, &eh); err != nil { + return headers + } - // Se usa SQS como activador con batchSize=1, por lo que es importante que verifiquemos - // esto como un solo mensaje SQS que iniciará la ejecución del controlador. - if len(eh.Records) != 1 { - return headers - } + // Using SQS as a trigger with a batchSize=1 so it's important we check + // for this as a single SQS message will drive the execution of the handler. + if len(eh.Records) != 1 { + return headers + } - record := eh.Records[0] + record := eh.Records[0] - lowercaseHeaders := map[string]string{} - for k, v := range record.MessageAttributes { - if v.StringValue != nil { - lowercaseHeaders[strings.ToLower(k)] = *v.StringValue - } - } + lowercaseHeaders := map[string]string{} + for k, v := range record.MessageAttributes { + if v.StringValue != nil { + lowercaseHeaders[strings.ToLower(k)] = *v.StringValue + } + } - return lowercaseHeaders + return lowercaseHeaders } cfg := &ddlambda.Config{ @@ -374,11 +367,11 @@ ddlambda.WrapFunction(handler, cfg) {{% /tab %}} {{< /tabs >}} -## Envío de trazas a Datadog con la integración de X-Ray +## Enviando trazas a Datadog con la integración de X-Ray {#sending-traces-to-datadog-with-the-x-ray-integration} -Si ya rastreas tu aplicación serverless con X-Ray y quieres seguir utilizándolo, puedes [instalar la integración de AWS X-Ray][2] para enviar trazas de X-Ray a Datadog. +Si tiene instrumentación de X-Ray existente y desea seguir usándola, [instale la integración de AWS X-Ray][2] para enviar trazas de X-Ray a Datadog. Para nuevas aplicaciones Serverless, Datadog recomienda instrumentar funciones Lambda con la [Datadog Lambda Extension][35] en su lugar. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -415,4 +408,5 @@ Si ya rastreas tu aplicación serverless con X-Ray y quieres seguir utilizándol [31]: https://github.com/DataDog/dd-trace-py/ [32]: https://github.com/DataDog/dd-trace-js/ [33]: https://github.com/DataDog/datadog-lambda-python -[34]: https://github.com/DataDog/datadog-lambda-js \ No newline at end of file +[34]: https://github.com/DataDog/datadog-lambda-js +[35]: /es/serverless/libraries_integrations/extension/ \ No newline at end of file diff --git a/content/es/service_level_objectives/_index.md b/content/es/service_level_objectives/_index.md new file mode 100644 index 00000000000..6075b13bd87 --- /dev/null +++ b/content/es/service_level_objectives/_index.md @@ -0,0 +1,376 @@ +--- +aliases: +- /es/monitors/monitor_uptime_widget/ +- /es/monitors/slos/ +- /es/monitors/service_level_objectives/ +- /es/service_management/service_level_objectives/ootb_dashboard +- /es/service_management/service_level_objectives/ +description: Realice un seguimiento del estado de sus SLOs +further_reading: +- link: https://learn.datadoghq.com/courses/intro-to-slo + tag: Centro de Aprendizaje + text: Introducción a los SLOs +- link: https://www.datadoghq.com/blog/service-page/ + tag: Blog + text: Telemetría de Servicio, Error Tracking, SLOs y más +- link: https://www.datadoghq.com/blog/monitor-service-performance-with-slo-alerts/ + tag: Blog + text: Monitoree proactivamente el rendimiento del servicio con alertas de SLO +- link: https://www.datadoghq.com/blog/slo-key-questions/ + tag: Blog + text: Preguntas clave que hacer al establecer SLOs +- link: https://www.datadoghq.com/blog/define-and-manage-slos/ + tag: Blog + text: Mejores prácticas para gestionar sus SLOs con Datadog +- link: https://www.datadoghq.com/blog/burn-rate-is-better-error-rate/ + tag: Blog + text: La Tasa de Quema es una Mejor Tasa de Errores +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: Blog + text: Diseña tableros ejecutivos efectivos con Datadog +- link: https://www.datadoghq.com/blog/slo-monitoring-tracking/ + tag: Blog + text: Realice un seguimiento del estado y del presupuesto de error de sus SLOs con + Datadog +- link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_level_objective + tag: Sitio Externo + text: Cree y gestione SLOs con Terraform +title: Service Level Objectives +--- +{{< jqmath-vanilla >}} + +
    + +{{< learning-center-callout header="Únase a una sesión de seminario web de habilitación" hide_image="true" btn_title="Regístrese" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=SLOs&tags.topics-1=Monitors">}} + Explore y regístrese para las sesiones de Habilitación de Fundación. Aprenda cómo puede priorizar y abordar los problemas que más importan a su negocio con el seguimiento nativo de SLO y SLA. +{{< /learning-center-callout >}} + +## Resumen {#overview} + +Los Objetivos de Nivel de Servicio, o SLOs, son una parte clave del conjunto de herramientas de ingeniería de confiabilidad del sitio. Los SLOs proporcionan un marco para definir objetivos claros en torno al rendimiento de la aplicación, lo que ayuda a los equipos a ofrecer una experiencia de cliente consistente, equilibrar el desarrollo de características con la estabilidad de la plataforma y mejorar la comunicación con los usuarios internos y externos. + +**Consejo**: Para abrir los SLOs desde la búsqueda global de Datadog, presione Cmd/Ctrl + K y busque `slo`. + +## Terminología clave {#key-terminology} + +Indicador de Nivel de Servicio (SLI) +: Una medición cuantitativa del rendimiento o la fiabilidad de un servicio. En los SLOs de Datadog, un SLI es una métrica o una agregación de uno o más monitors. + +Service Level Objective (SLO) +: Un porcentaje objetivo para un SLI durante un período de tiempo específico. + +Acuerdo de Nivel de Servicio (SLA) +: Un acuerdo explícito o implícito entre un cliente y un proveedor de servicios que estipula las expectativas de fiabilidad del cliente y las consecuencias para el proveedor de servicios por no cumplirlas. + +Presupuesto de error +: La cantidad permitida de falta de fiabilidad derivada del porcentaje objetivo de un SLO (100% - porcentaje objetivo) que se destina al desarrollo del producto. + +## Tipos de SLO {#slo-types} + +Al crear SLOs, puede elegir entre los siguientes tipos: +- **SLOs basados en métricas**: se pueden utilizar cuando desea que el cálculo del SLI sea basado en conteo, el SLI se calcula como la suma de eventos buenos dividida por la suma de eventos totales. +- **SLOs basados en monitors**: se pueden utilizar cuando desea que el cálculo del SLI sea basado en tiempo, el SLI se basa en el tiempo de actividad del monitor. Los SLOs basados en monitors deben basarse en un monitor de Datadog nuevo o existente, cualquier ajuste debe hacerse al monitor subyacente (no se puede hacer a través de la creación de SLO). +- **SLOs de Intervalo de Tiempo**: se pueden utilizar cuando desea que el cálculo del SLI sea basado en tiempo, el SLI se basa en su definición personalizada de tiempo de actividad (cantidad de tiempo que su sistema exhibe buen comportamiento dividido por el tiempo total). Los SLOs de Intervalo de Tiempo no requieren un monitor de Datadog, puede probar diferentes filtros de métricas y umbrales y explorar instantáneamente el tiempo de inactividad durante la creación de SLO. + +Para una comparación completa, consulte el gráfico de [Comparación de Tipos de SLO][1]. + +## Configuración {#setup} + +Utilice la página de [Service Level Objectives manage page][2] para crear nuevos SLOs o para ver y gestionar todos sus SLOs existentes. + +### Configuración {#configuration} + +1. En la [SLO manage page][2], seleccione **Nuevo SLO +**. +2. Seleccione el tipo de SLO. Puede crear un SLO con cualquiera de los siguientes tipos: [Basado en métricas][3], [Basado en monitors][4], o [Intervalos de tiempo][5]. +3. Establezca un objetivo y una ventana de tiempo móvil (de los últimos 7, 30 o 90 días) para el SLO. Datadog recomienda que haga el objetivo más estricto que sus SLAs estipulados. Esta ventana de tiempo se muestra en las listas de SLO. Por defecto, se selecciona la ventana de tiempo más corta. +4. Finalmente, dele un título al SLO, descríbalo con más detalle o agregue enlaces en la descripción, añada etiquetas y guárdelo. + +Después de configurar el SLO, selecciónelo de la [vista de lista de Service Level Objectives][2] para abrir el panel lateral de detalles. El panel lateral muestra el porcentaje de estado general y el presupuesto de error restante para cada uno de los objetivos del SLO, así como barras de estado (SLOs basados en monitors) o gráficos de barras (SLOs basados en métricas) de la historia del SLI. Si creó un SLO basado en monitors agrupados utilizando un [multi alert monitor][6] o un SLO basado en métricas agrupadas utilizando la [`sum by` cláusula][7], el porcentaje de estado y el presupuesto de error restante para cada grupo individual se muestran, además del porcentaje de estado general y el presupuesto de error restante. + +**Ejemplo:** Si crea un SLO basado en monitor para rastrear la latencia por Availability Zone, se muestran los porcentajes de estado y el presupuesto de error restante para el SLO general y para cada Availability Zone individual que el SLO esté rastreando. + +**Nota:** El presupuesto de error restante se muestra como un porcentaje y se calcula utilizando la siguiente fórmula: + +$$\text"presupuesto de error restante" = 100 * {\text"estado actual" - \text" objetivo"} / { 100 - \text"objetivo"}$$ + +### Estableciendo objetivos de SLO {#setting-slo-targets} + +Para aprovechar los beneficios de los presupuestos de error y las alertas de presupuesto de error, debe establecer valores de objetivo de SLO estrictamente por debajo del 100%. + +Establecer un objetivo del 100% significa tener un presupuesto de error del 0% ya que el presupuesto de error es igual al 100%—objetivo de SLO. Sin un presupuesto de error que represente un riesgo aceptable, se enfrenta a dificultades para encontrar alineación entre las prioridades conflictivas de mantener la fiabilidad orientada al cliente e invertir en el desarrollo de características. Además, los SLOs con valores objetivo del 100% conducen a errores de división por cero en la evaluación de alertas de SLO. + +**Nota:** El número de decimales que puede especificar para sus SLO varía según el tipo de SLO y las ventanas de tiempo que elija. Consulte los enlaces a continuación para obtener más información sobre cada tipo de SLO respectivo. + +[Monitor-based SLOs][8]: Up to two decimal places are allowed for 7-day and 30-day targets, up to three decimal places are allowed for 90-day targets. + +[Metric-based SLOs][9]: Up to three decimal places are allowed for all targets. + +## Editar un SLO {#edit-an-slo} + +Para editar un SLO, pase el cursor sobre la fila del SLO en la vista de lista y haga clic en el ícono de edición que aparece a la derecha de la fila, o haga clic en la fila para abrir el panel lateral de detalles y seleccione el botón de edición del icono de engranaje en la parte superior derecha del panel. + +## Permisos {#permissions} + +### Acceso basado en roles {#role-based-access} + +Todos los usuarios pueden ver los SLO y [correcciones de estado de SLO](#slo-status-corrections), independientemente de su [rol][10] asociado. Solo los usuarios asignados a roles con el `slos_write` permiso pueden crear, editar y eliminar SLOs. + +Para crear, editar y eliminar correcciones de estado, los usuarios requieren los permisos `slos_corrections`. Un usuario con este permiso puede hacer correcciones de estado, incluso si no tiene permiso para editar esos SLOs. Para la lista completa de permisos, consulte la [documentación de RBAC][11]. + +### Controles de acceso granulares {#granular-access-controls} + +Restringa el acceso a SLOs individuales especificando una lista de [roles][10] que están autorizados a editarlos. + +{{< img src="service_management/service_level_objectives/slo_set_permissions.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Opción de permisos de SLO en el menú de engranaje">}} + +1. Haga clic en el SLO para abrir el panel lateral de detalles. +1. Haga clic en el ícono de engranaje en la parte superior derecha del panel. +1. Seleccione **Permisos**. +1. Haga clic en **Restringir Acceso**. +1. El cuadro de diálogo se actualiza para mostrar que los miembros de su organización tienen acceso de **Viewer** por defecto. +1. Utilice el menú desplegable para seleccionar uno o más roles, equipos o usuarios que puedan editar el SLO. +1. Haga clic en **Agregar**. +1. El cuadro de diálogo se actualiza para mostrar que el rol que seleccionó tiene el permiso de **Editor**. +1. Haga clic en **Guardar**. + +Para mantener su acceso de edición al SLO, el sistema requiere que incluya al menos un rol del cual sea miembro antes de guardar. Los usuarios en la lista de control de acceso pueden agregar roles y solo pueden eliminar roles que no sean el suyo. + +**Nota**: Los usuarios pueden crear SLOs en cualquier monitor incluso si no tienen permisos de escritura para el monitor. De manera similar, los usuarios pueden crear alertas de SLO incluso si no tienen permisos de escritura para el SLO. Para más información sobre los permisos RBAC para Monitors, consulte la [documentación de RBAC][12] o la [guía sobre cómo configurar RBAC para Monitors][13]. + +## Buscando SLOs {#searching-slos} + +La [página de gestión de Objetivos de Nivel de Servicio][2] le permite realizar una búsqueda avanzada de todos los SLOs para que pueda encontrar, ver, editar, clonar o eliminar SLOs de los resultados de búsqueda. + +La búsqueda avanzada le permite consultar SLOs por cualquier combinación de atributos de SLO: + +* `name` y `description` - búsqueda de texto +* `time window` - 7d, 30d, 90d +* `type` - métrica, monitor +* `creator` +* `tags` - centro de datos, env, servicio, equipo, etc. + +Para realizar una búsqueda, utilice las casillas de verificación de la izquierda y la barra de búsqueda en la parte superior. Cuando marque las casillas, la barra de búsqueda se actualiza con la consulta equivalente. De igual manera, cuando modifique la consulta en la barra de búsqueda (o la escriba desde cero), las casillas de verificación se actualizan para reflejar el cambio. Los resultados de la consulta se actualizan en tiempo real a medida que edita la consulta; no hay un botón de 'Buscar' para hacer clic. + +## Viendo SLOs {#viewing-slos} + +*Agrupe sus SLOs por *cualquier etiqueta para obtener una vista resumida de sus datos. Puede analizar rápidamente cuántos SLOs hay en cada estado (incumplido, advertencia, OK y sin datos), agrupados por servicio, equipo, recorrido del usuario, nivel o cualquier otra etiqueta establecida en sus SLOs. + +{{< img src="service_management/service_level_objectives/slo_group_by_new.png" alt="Vista resumida de SLOs agrupados por Teams" style="width:100%;" >}} + +Ordene los SLOs por las columnas de *estado* y *presupuesto de error* para priorizar cuáles SLOs necesitan su atención. La lista de SLOs muestra los detalles de los SLOs durante la ventana de tiempo principal seleccionada en su [configuración](#configuration). Todas las demás ventanas de tiempo de configuración están disponibles para ver en el panel lateral individual. Abra el panel lateral de detalles de SLO haciendo clic en la fila de la tabla correspondiente. + +**Nota**: Puede ver sus SLOs desde la pantalla de inicio de su dispositivo móvil descargando la [aplicación móvil de Datadog][14], disponible en la [Apple App Store][15] y [Google Play Store][16]. + +{{< img src="service_management/service_level_objectives/slos-mobile.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="SLOs en iOS y Android">}} + +### Etiquetas de SLO {#slo-tags} + +Las etiquetas de SLO se pueden usar para filtrar en la [SLO manage page][2], crear [Saved Views][17] o agrupar SLOs para ver. Las etiquetas se pueden agregar a los SLOs de las siguientes maneras: + +- Cuando crea o edita un SLO, puede agregar etiquetas +- Desde la vista de lista de SLOs, puede agregar y actualizar etiquetas en bloque utilizando las opciones desplegables *Editar Etiquetas* y *[Edit Teams][18]* en la parte superior de la lista de SLOs. + +{{< img src="service_management/service_level_objectives/slo_bulk_tag.png" alt="La página de lista de SLOs muestra el menú desplegable Editar Etiquetas para la edición masiva de etiquetas." >}} + +### Indicador de tasa de quema SLO {#slo-burn-rate-indicator} + +Los indicadores de tasa de quema utilizan una ventana móvil de 2 horas para evaluar cuáles SLOs están consumiendo su presupuesto de error demasiado rápido. Los indicadores de tasa de quema aparecen junto a los nombres de SLO aplicables en la [SLO manage page][2]. + +{{< img src="/service_management/service_level_objectives/slo_burn_rate_indicator.png" alt="La SLO manage page en Datadog. Un ícono rojo aparece junto al nombre de un SLO en la lista. Al pasar el mouse sobre el ícono rojo, se muestra un modal con más información, una visualización de la tasa de quema y un enlace a la página de servicio correspondiente del SLO." style="width:80%;" >}} + +Hay dos tipos de indicadores posibles: +- Un ícono rojo que indica una tasa de quema crítica superior a 6 en las últimas 2 horas. +- Un ícono amarillo que indica una tasa de quema elevada entre 1 y 6 en las últimas 2 horas. + +Un gráfico visual acompaña a cada indicador para mostrar dónde se encuentra la tasa de quema en relación con los umbrales elevado y crítico, permitiendo una evaluación rápida de la gravedad. + +Los SLOs pueden filtrarse por estado de tasa de quema: Crítico, Elevado y Saludable. Para los SLOs con una etiqueta de servicio, cada indicador de tasa de quema incluye un enlace directo a la página del servicio relacionada para una investigación más profunda. + +### Vista predeterminada de SLO {#slo-default-view} + +La vista predeterminada de SLO se carga cuando accede a la vista de lista de SLO. + +La vista predeterminada incluye: + +- Una consulta de búsqueda vacía +- Una lista de todos los SLO definidos en su organización +- Una lista de facetas disponibles en la lista de facetas del lado izquierdo + +### Saved Views {#saved-views} + +Las Saved Views le permiten guardar y compartir búsquedas personalizadas en la vista de lista de SLO para los SLO que son más relevantes para usted y su equipo al compartir: + +- Una consulta de búsqueda +- Un subconjunto seleccionado de facetas + +Después de consultar un subconjunto de SLOs en la vista de lista, puede agregar esa consulta como una Saved View. + +#### Agregar una Saved View {#add-a-saved-view} + +Para agregar una Saved View: + +1. Consulte sus SLOs. +2. Haga clic en **Guardar Vista +** en la parte superior izquierda de la página. +3. Nombre su vista y guarde. + +#### Cargar una Saved View {#load-a-saved-view} + +Para cargar una Saved View, abre el panel de *Saved Views* presionando el botón **Show Views** en la parte superior izquierda de la página y selecciona una Saved View de la lista. También puede buscar Saved Views en el cuadro de búsqueda *Filter Saved Views* en la parte superior de ese mismo panel de *Saved Views*. + +#### Compartir una Saved View {#share-a-saved-view} + +Pase el cursor sobre una Saved View de la lista y seleccione el ícono de hipervínculo para copiar el enlace a la Saved View y compartirlo con sus compañeros de equipo. + +#### Manage Saved Views {#manage-saved-views} + +Una vez que esté utilizando una Saved View, puede actualizarla seleccionando esa Saved View, modificando la consulta y haciendo clic en el botón *Update* debajo de su nombre en el panel de *Saved Views*. Para cambiar el nombre de la Saved View o eliminar una Saved View, pase el cursor sobre su fila en el panel de *Saved Views* y haga clic en el ícono de lápiz o en el ícono de papelera, respectivamente. + +## Eventos de auditoría de corrección de SLO y estado de SLO {#slo-and-slo-status-correction-audit-events} + +Los eventos de auditoría de SLO le permiten rastrear el historial de sus configuraciones de SLO utilizando el [Event Explorer][27] o la pestaña de **Historial de Auditoría** en los detalles del SLO. Los eventos de auditoría se agregan a Event Explorer cada vez que se crea, se modifica o se elimina un SLO o una corrección de estado de SLO. Cada evento incluye información sobre la configuración de un SLO o una corrección de estado de SLO, y el flujo proporciona un historial de los cambios de configuración a lo largo del tiempo. + +### Eventos de auditoría de SLO {#slo-audit-events} + +Cada evento incluye la siguiente información de configuración de SLO: + +- Nombre +- Descripción +- Porcentajes objetivo y ventanas de tiempo +- Fuentes de datos (Monitor IDs o consulta de métricas) + +Tres tipos de eventos de auditoría de SLO aparecen en Event Explorer: + +- `SLO Created` los eventos muestran la información de configuración de SLO en el momento de la creación +- `SLO Modified` los eventos muestran qué información de configuración cambió durante una modificación +- `SLO Deleted` los eventos muestran la información de configuración que tenía el SLO antes de ser eliminado + +### Eventos de auditoría de corrección de estado {#status-correction-audit-events} + +Cada evento incluye la siguiente información de configuración de corrección de estado de SLO: + +- Nombre de SLO +- Tiempos de inicio y fin de la corrección de estado con zona horaria +- Categoría de corrección de estado + +Tres tipos de eventos de auditoría de corrección de estado de SLO aparecen en el Explorador de Eventos: + +- `SLO Correction Created` los eventos muestran la información de configuración de corrección de estado en el momento de la creación +- `SLO Correction Modified` los eventos muestran qué información de configuración cambió durante una modificación +- `SLO Correction Deleted` los eventos muestran la información de configuración que tenía la corrección de estado antes de ser eliminada + +Para obtener una lista completa de todos los eventos de auditoría de SLO, ingrese la consulta de búsqueda `tags:(audit AND slo)` en Event Explorer. Para ver la lista de eventos de auditoría para un SLO específico, ingrese `tags:audit,slo_id:` con el ID del SLO deseado. También puede consultar Event Explorer programáticamente utilizando la [Datadog Events API][19]. + +**Nota:** Si no ve eventos aparecer en la interfaz de usuario, asegúrese de establecer el marco de tiempo de Event Explorer a un período más largo, por ejemplo, los últimos 7 días. + +{{< img src="service_management/service_level_objectives/slo-audit-events.png" alt="Eventos de auditoría de SLO" >}} + +También puede usar la pestaña "Historial de Auditoría" en los detalles del SLO para ver todos los eventos de auditoría de un SLO individual: + +{{< img src="service_management/service_level_objectives/slo_audit_history_tab.png" alt="Pestaña de historial de auditoría de detalles del SLO" >}} + +Con [Event Monitors][28], puede configurar notificaciones para rastrear eventos de auditoría de SLO. Por ejemplo, si desea ser notificado cuando se modifique la configuración de un SLO específico, configure un Event Monitor para rastrear el texto `[SLO Modified]` sobre las etiquetas `audit,slo_id:`. + +## Widgets de SLO {#slo-widgets} + +{{< learning-center-callout header="Intente crear conocimientos críticos para el negocio utilizando Dashboards y SLOs en el Learning Center" btn_title="Inscríbase ahora" btn_url="https://learn.datadoghq.com/courses/dashboards-slos">}} + Aprenda sin costo en capacidad de computación en la nube real y una cuenta de prueba de Datadog. Inscríbase hoy para aprender más sobre cómo construir Dashboards para rastrear SLOs. +{{< /learning-center-callout >}} + +Después de crear su SLO, puede visualizar los datos a través de Dashboards y widgets. + - Utilice el widget de SLO para visualizar el estado de un solo SLO + - Utilice el SLO List widget para visualizar un conjunto de SLOs + - Grafique 15 meses de datos de SLO basados en métricas con la [SLO data source][20] en widgets tanto de series temporales como escalares (valor de consulta, lista principal, tabla, cambio). + +Para más información sobre los SLO widgets, consulte las páginas del [SLO widget][21] y [SLO List widget][22]. Para más información sobre el SLO data source, consulte la guía sobre cómo [Graph historical SLO data on Dashboards][20]. + +## Correcciones de estado de SLO {#slo-status-corrections} + +Las correcciones de estado le permiten excluir períodos de tiempo específicos de los cálculos del estado del SLO y del presupuesto de errores. De esta manera, puede: +- Prevenir que el tiempo de inactividad esperado, como el mantenimiento programado, agote su presupuesto de errores +- Ignorar las horas no laborales, en las que no se espera que cumpla con sus SLOs +- Asegurar que los problemas temporales causados por implementaciones no impacten negativamente sus SLOs + +Cuando aplique una corrección, el período de tiempo que especifique se elimina del cálculo del SLO. +- Para los SLOs basados en Monitors, la ventana de tiempo de corrección no se cuenta. +- Para los SLOs basados en métricas, todos los eventos buenos y malos en la ventana de corrección no se cuentan. +- Para los SLOs de Tiempo de Segmento, la ventana de tiempo de corrección se trata como tiempo de actividad. + +Tiene la opción de crear correcciones únicas para ajustes ad hoc, o correcciones recurrentes para ajustes predecibles que ocurren de manera regular. Las correcciones únicas requieren una hora de inicio y una hora de finalización, mientras que las correcciones recurrentes requieren una hora de inicio, duración e intervalo. Las correcciones recurrentes se basan en la especificación RRULE de [iCalendar RFC 5545][24]. Las reglas soportadas son `FREQ`, `INTERVAL`, `COUNT` y `UNTIL`. Especificar una fecha de finalización para las correcciones recurrentes es opcional en caso de que necesites que la corrección se repita indefinidamente. + +Para cualquiera de los tipos de corrección, debe seleccionar una categoría de corrección que indique por qué se está realizando la corrección. Las categorías disponibles son `Scheduled Maintenance`, `Outside Business Hours`, `Deployment` y `Other`. Puede incluir opcionalmente una descripción para proporcionar contexto adicional si es necesario. + +Cada SLO tiene un límite máximo de correcciones que se pueden configurar para asegurar el rendimiento de las consultas. Estos límites solo se aplican a los últimos 90 días por SLO, por lo que las correcciones para períodos de tiempo anteriores a los últimos 90 días no cuentan para su límite. Esto significa que: +- Si el tiempo de finalización de una corrección única es antes de los últimos 90 días, cuenta para su límite. +- Si el tiempo de finalización de la última repetición de una corrección recurrente es antes de los últimos 90 días, no cuenta para su límite. + +Los límites de 90 días por SLO son los siguientes: + +| Tipo de Corrección | Límite por SLO | +| ----------------- | ------------- | +| Única | 100 | +| Diaria recurrente | 2 | +| Semanal recurrente | 3 | +| Mensual recurrente | 5 | + +Puede configurar correcciones de estado a través de la interfaz de usuario seleccionando `Correct Status` en el panel lateral de su SLO, la [API de correcciones de estado de SLO][25], o un [recurso de Terraform][26]. + +#### Acceso en la interfaz de usuario {#access-in-the-ui} + +Para acceder a las correcciones de estado de SLO en la interfaz de usuario: + +1. Cree un nuevo SLO o haga clic en uno existente. +2. Navegue a la vista del panel lateral de detalles de un SLO. +3. Bajo el ícono de engranaje, seleccione **Correct Status** para acceder al modal de creación de **Status Corrections**. +4. Elija entre `One-Time` y `Recurring` en el **Select the Time Correction Window**, y especifique el período de tiempo que desea corregir. +5. Seleccione un **Correction Type**. +6. Opcionalmente, agregue **Notes**. +7. Haga clic en **Apply Correction**. + +{{< img src="service_management/service_level_objectives/slo-corrections-ui.png" alt="SLO Correction UI" style="width:80%;">}} + +Para ver, editar y eliminar correcciones de estado existentes, haga clic en la pestaña **Corrections** en la parte superior del panel lateral detallado de un SLO. + +#### Visualizing Status Corrections {#visualizing-status-corrections} + +Para SLOs basados en métricas y Time Slice SLOs con Status Corrections, hay un interruptor en la vista de detalles del SLO que le permite habilitar o deshabilitar correcciones en la interfaz de usuario. El interruptor controla los gráficos y los datos en la sección "History" de la vista de detalles del SLO. **Nota:** Su estado general de SLO y presupuesto de errores siempre tomarán en cuenta las correcciones de estado. + +{{< img src="service_management/service_level_objectives/correction-toggle.png" alt="Interfaz de usuario de corrección de SLO" style="width:100%;">}} + +## Visualización del calendario de SLO {#slo-calendar-view} + +La Visualización del Calendario de SLO está disponible en la [página de gestión de SLO][2]. En la esquina superior derecha, cambie de la visualización "Principal" a la "Diaria", "Semanal" o "Mensual" para ver 12 meses de datos históricos del estado del SLO. La Visualización del Calendario es compatible con SLOs basados en métricas y SLOs de intervalo de tiempo. + +{{< img src="service_management/service_level_objectives/slo-calendar-view-2.png" alt="Visualización del calendario de SLO" >}} + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/service_level_objectives/guide/slo_types_comparison/ +[2]: https://app.datadoghq.com/slo +[3]: /es/service_level_objectives/metric/ +[4]: /es/service_level_objectives/monitor/ +[5]: /es/service_level_objectives/time_slice/ +[6]: /es/monitors/types/metric/?tab=threshold#alert-grouping +[7]: /es/service_level_objectives/metric/#define-queries +[8]: /es/service_level_objectives/monitor/#set-your-slo-targets +[9]: /es/service_level_objectives/metric/#set-your-slo-targets +[10]: /es/account_management/rbac/ +[11]: /es/account_management/rbac/permissions/#service-level-objectives/ +[12]: /es/account_management/rbac/permissions/#monitors +[13]: /es/monitors/guide/how-to-set-up-rbac-for-monitors/ +[14]: /es/mobile +[15]: https://apps.apple.com/app/datadog/id1391380318 +[16]: https://play.google.com/store/apps/details?id=com.datadog.app +[17]: /es/service_level_objectives/#saved-views +[18]: /es/account_management/teams/#associate-resources-with-team-handles +[19]: /es/api/latest/events/ +[20]: /es/dashboards/guide/slo_data_source/ +[21]: /es/dashboards/widgets/slo/ +[22]: /es/dashboards/widgets/slo_list/ +[23]: /es/monitors/types/event/ +[24]: https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html +[25]: /es/api/latest/service-level-objective-corrections/ +[26]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/slo_correction +[27]: /es/events/explorer/ +[28]: /es/monitors/types/event/ \ No newline at end of file diff --git a/content/es/tracing/services/inferred_services.md b/content/es/tracing/services/inferred_services.md index 277e874b777..dccc1499ec0 100644 --- a/content/es/tracing/services/inferred_services.md +++ b/content/es/tracing/services/inferred_services.md @@ -1,36 +1,35 @@ --- aliases: - /es/tracing/guide/inferred-service-opt-in -description: Descubre automáticamente dependencias de servicios como bases de datos - y colas mediante el análisis de solicitudes salientes. +description: Descubra automáticamente las dependencias de servicio como bases de datos + y colas a través del análisis de solicitudes salientes. further_reading: - link: /tracing/services/service_page/ tag: Documentación - text: Más información sobre servicios en Datadog + text: Aprenda más sobre los servicios en Datadog title: Servicios inferidos --- +## Resumen {#overview} -## Información general +Datadog descubre automáticamente las dependencias de un servicio instrumentado, como bases de datos, colas o APIs de terceros, incluso si esa dependencia no ha sido instrumentada directamente. Al analizar las solicitudes salientes de sus servicios instrumentados, Datadog infiere la presencia de estas dependencias y recopila métricas de rendimiento asociadas. -Datadog detecta automáticamente las dependencias de un servicio instrumentado, como bases de datos, colas o API de terceros, incluso si esas dependencias no se instrumentaron directamente. A través del análisis de las solicitudes salientes de tus servicios instrumentados, Datadog infiere la presencia de las dependencias y recopila las métricas de rendimiento asociadas. - -{{< img src="tracing/visualization/service/dependencies_section.png" alt="Mapa de dependencias de la página de servicios" style="width:90%;">}} +{{< img src="tracing/visualization/service/dependencies_section.png" alt="Mapa de dependencias de la página de servicio" style="width:90%;">}} {{< site-region region="ap1,us3,us5,eu,us,ap2" >}} -Explora los servicios inferidos en el [Catálogo de software][1], filtrando las entradas por tipo de entidad, como bases de datos, colas o API de terceros. Cada [página de servicios][2] se ajusta al tipo de servicio que estás investigando. Por ejemplo, las páginas de servicios de bases de datos muestran información específica de las bases de datos y, si estás utilizando [Database Monitoring][3], incluyen datos de monitorización de estas bases de datos. +Explore los servicios inferidos en el [Catálogo][1] filtrando entradas por tipo de entidad, como base de datos, cola o API de terceros. Cada [página de servicio][2] está adaptada al tipo de servicio que está investigando. Por ejemplo, las páginas de servicio de bases de datos muestran información específica de la base de datos e incluyen datos de DBM si está utilizando [DBM][3]. -## Configurar servicios inferidos +## Configure servicios inferidos {#set-up-inferred-services} {{< tabs >}} -{{% tab "Agent v7.60.0+" %}} -A partir de la versión [7.60.0][1] del Datadog Agent, no se necesita ninguna configuración manual para ver servicios inferidos. Las configuraciones necesarias —`apm_config.compute_stats_by_span_kind` y `apm_config.peer_tags_aggregation`— están activadas por defecto. +{{% tab "Agente v7.60.0+" %}} +A partir de la versión [7.60.0][1] del Agente de Datadog, no se necesita configuración manual para ver los servicios inferidos. Las configuraciones requeridas—`apm_config.compute_stats_by_span_kind` y `apm_config.peer_tags_aggregation`—están habilitadas por defecto. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.60.0 {{% /tab %}} -{{% tab "Agent v7.55.1 - v7.59.1" %}} +{{% tab "Agente v7.55.1 - v7.59.1" %}} -Para las versiones [7.55.1][1] a [7.59.1][2] del Datadog Agent, añade lo siguiente a tu archivo de configuración `datadog.yaml`: +Para las versiones del Agente de Datadog [7.55.1][1] a [7.59.1][2], agrega lo siguiente a tu archivo de configuración `datadog.yaml`: {{< code-block lang="yaml" filename="datadog.yaml" collapsible="true" >}} @@ -40,7 +39,7 @@ apm_config: {{< /code-block >}} -Alternativamente, configura estas variables de entorno en tu configuración del Datadog Agent: +Alternativamente, establezca estas variables de entorno en la configuración de su Agente de Datadog: {{< code-block collapsible="true" lang="yaml" >}} @@ -49,15 +48,15 @@ DD_APM_PEER_TAGS_AGGREGATION=true {{< /code-block >}} -Si utilizas Helm, incluye estas variables de entorno en tu [archivo][3] `values.yaml`. +Si está utilizando Helm, incluya estas variables de entorno en su `values.yaml` [archivo][3]. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.55.1 [2]: https://github.com/DataDog/datadog-agent/releases/tag/7.59.1 [3]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml {{% /tab %}} -{{% tab "Agent v7.50.3 - v7.54.1" %}} +{{% tab "Agente v7.50.3 - v7.54.1" %}} -Para las versiones [7.50.3][1] a [7.54.1][2] del Datadog Agent, añade lo siguiente a tu archivo de configuración `datadog.yaml`: +Para las versiones del Agente de Datadog [7.50.3][1] a [7.54.1][2], agregue lo siguiente a su archivo de configuración `datadog.yaml`: {{< code-block lang="yaml" filename="datadog.yaml" collapsible="true" >}} @@ -68,7 +67,7 @@ apm_config: {{< /code-block >}} -Alternativamente, configura estas variables de entorno en tu configuración del Datadog Agent: +Alternativamente, establezca estas variables de entorno en la configuración de su Agente de Datadog: {{< code-block collapsible="true" lang="yaml" >}} @@ -78,7 +77,7 @@ DD_APM_PEER_TAGS='["_dd.base_service","amqp.destination","amqp.exchange","amqp.q {{< /code-block >}} -Si utilizas Helm, incluye estas variables de entorno en tu [archivo][3] `values.yaml`. +Si está utilizando Helm, incluya estas variables de entorno en su `values.yaml` [archivo][3]. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.50.3 [2]: https://github.com/DataDog/datadog-agent/releases/tag/7.54.1 @@ -86,7 +85,7 @@ Si utilizas Helm, incluye estas variables de entorno en tu [archivo][3] `values. {{% /tab %}} {{% tab "OpenTelemetry Collector" %}} -Para OpenTelemetry Collector, la versión mínima recomendada es [v0.95.0][1] o posterior de `opentelemetry-collector-contrib`. En ese caso, actualiza esta configuración: +Para el OpenTelemetry Collector, la versión mínima recomendada es `opentelemetry-collector-contrib` [v0.95.0][1] o posterior. En ese caso, actualice esta configuración: {{< code-block lang="yaml" collapsible="true" >}} @@ -99,7 +98,7 @@ connectors: {{< /code-block >}} -Si tu versión del Collector es anterior a v0.95.0, actualiza la siguiente configuración del Collector: +Si la versión de su Collector es inferior a v0.95.0, actualice la siguiente configuración del Collector: {{< code-block lang="yaml" collapsible="true" >}} @@ -119,13 +118,13 @@ exporters: {{% /tab %}} {{< /tabs >}} -## Nombrar entidades inferidas +## Nombramiento de entidades inferidas {#naming-inferred-entities} -Para determinar los nombres y tipos de las dependencias de servicio inferidas, Datadog utiliza atributos estándar de tramo y los asigna a atributos de `peer.*`. Por ejemplo, las API externas inferidas utilizan el esquema de nomenclatura predeterminado `net.peer.name` como `api.stripe.com`, `api.twilio.com` y `us6.api.mailchimp.com`. Las bases de datos inferidas utilizan el esquema de nomenclatura predeterminado `db.instance`. Puedes renombrar entidades inferidas creando [reglas de renombrado][5]. +Para determinar los nombres y tipos de los servicios dependientes inferidos, Datadog utiliza atributos estándar de tramo y los asocia a atributos `peer.*`. Por ejemplo, las APIs externas inferidas utilizan el esquema de nombres por defecto `net.peer.name` como `api.stripe.com`, `api.twilio.com` y `us6.api.mailchimp.com`. Las bases de datos inferidas utilizan el esquema de nombres por defecto `db.instance`. Puede renombrar entidades inferidas creando [reglas de renombrado][5]. -### Etiquetas (tags) pares +### Etiquetas de pares {#peer-tags} -Etiqueta par | Atributos de origen +Etiqueta de par | Atributos de fuente --------------------|------------------- `peer.aws.dynamodb.table` | `tablename` `peer.aws.kinesis.stream` | `streamname` @@ -143,44 +142,44 @@ Etiqueta par | Atributos de origen `peer.rpc.system` | `rpc.system` `peer.service` | `peer.service` -**Nota**: Los valores de atributos pares que coinciden con formatos de direcciones IP (por ejemplo, 127.0.0.1) se modifican y ofuscan con `blocked-ip-address` para evitar ruidos innecesarios y el etiquetado de métricas con dimensiones de alta cardinalidad. Como resultado, es posible que veas que algunos servicios `blocked-ip-address` aparecen como dependencias descendentes de tus servicios instrumentados. +**Nota**: Los valores de atributos de pares que coinciden con formatos de direcciones IP son modificados y redactados con `blocked-ip-address` para evitar ruido innecesario y el etiquetado de métricas con dimensiones de alta cardinalidad. Como resultado, puede encontrar que algunos servicios `blocked-ip-address` aparecen como dependencias descendentes de sus servicios instrumentados. -#### Prioridad de etiquetas pares +#### Precedencia de etiquetas de pares {#precedence-of-peer-tags} -Para asignar el nombre a las entidades inferidas, Datadog utiliza un orden específico de prioridad entre etiquetas pares, cuando las entidades se definen mediante una combinación de varias etiquetas. +Para asignar el nombre a entidades inferidas, Datadog utiliza un orden específico de precedencia entre etiquetas de pares, cuando las entidades se definen por una combinación de varias etiquetas. -Tipo de entidad | Orden de prioridad +Tipo de entidad | Orden de precedencia -----------|---------------- Base de datos | `peer.db.name` > `peer.aws.s3.bucket` (Para AWS S3) / `peer.aws.dynamodb.table` (Para AWS DynamoDB) / `peer.cassandra.contact.points` (Para Cassandra) / `peer.couchbase.seed.nodes` (Para Couchbase) > `peer.hostname` > `peer.db.system` -Cola | `peer.messaging.destination` > `peer.kafka.bootstrap.servers` (para Kafka) / `peer.aws.sqs.queue` (para AWS SQS) / `peer.aws.kinesis.stream` (Para AWS Kinesis) > `peer.messaging.system` +Cola | `peer.messaging.destination` > `peer.kafka.bootstrap.servers` (para Kafka) / `peer.aws.sqs.queue` (para AWS SQS) / `peer.aws.kinesis.stream` (para AWS Kinesis) > `peer.messaging.system` Servicio inferido | `peer.service` > `peer.rpc.service` > `peer.hostname` -Si la etiqueta con mayor prioridad, como `peer.db.name`, no se detecta como parte de la instrumentación, Datadog utiliza la segunda etiqueta con mayor prioridad, como `peer.hostname`, y continúa en ese orden. +Si la etiqueta de mayor prioridad, como `peer.db.name`, no se captura como parte de la instrumentación, Datadog utiliza la segunda etiqueta de mayor prioridad, como `peer.hostname`, y continúa en ese orden. -**Nota**: Datadog nunca define el `peer.service` para bases de datos y colas inferidas. `peer.service` es el atributo par con mayor prioridad. Si se define, tiene prioridad sobre todos los demás atributos. +**Nota**: Datadog nunca establece el `peer.service` para bases de datos y colas inferidas. `peer.service` es el atributo de par de mayor prioridad. Si se establece, tiene prioridad sobre todos los demás atributos. -## Migración a la nomenclatura global de servicios por defecto +## Migre a la nomenclatura global de servicios predeterminada {#migrate-to-global-default-service-naming} -Con los servicios inferidos, las dependencias de servicios se detectan automáticamente a partir de los atributos de tramo existentes. Como resultado, no es necesario cambiar los nombres de los servicios (utilizando la etiqueta `service`) para identificar estas dependencias. +Con los servicios inferidos, las dependencias de servicios se detectan automáticamente a partir de los atributos de tramo existentes. Como resultado, no es necesario cambiar los nombres de los servicios (usando la etiqueta `service`) para identificar estas dependencias. -Habilita `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` para asegurarte de que ninguna integración Datadog defina nombres de servicios diferentes del nombre global del servicio por defecto. Esto también mejora la forma en que las conexiones servicio-a-servicio y los servicios inferidos son representados en las visualizaciones de Datadog, a través de todos los lenguajes de bibliotecas de rastreo e integraciones compatibles. +Habilite `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` para asegurar que ninguna integración de Datadog establezca nombres de servicio que sean diferentes del nombre de servicio global predeterminado. Esto también mejora la forma en que se representan las conexiones de servicio a servicio y los servicios inferidos en las visualizaciones de Datadog, en todos los lenguajes compatibles con el SDK e integraciones compatibles. -
    La activación de esta opción puede afectar a las métricas existentes de APM, las métricas personalizadas de tramo, los análisis de traza, los filtros de retención, los escaneos de datos confidenciales, los monitores, los dashboards o los notebooks que hacen referencia a los antiguos nombres de servicio. Actualiza estos activos para utilizar la etiqueta de servicio global predeterminada(service:<DD_SERVICE>).
    +
    Habilitar esta opción puede afectar las métricas de APM existentes, métricas de tramo personalizadas, análisis de trazas, filtros de retención, escaneos de datos sensibles, monitores, tableros o notebooks que hagan referencia a los antiguos nombres de servicio. Actualice estos activos para usar la etiqueta de servicio predeterminada global (service:<DD_SERVICE>).
    -Para obtener instrucciones sobre cómo eliminar servicios anulados y migrar a servicios inferidos, consulta la guía [Anulación de servicios][4]. +Para instrucciones sobre cómo eliminar las sobreescrituras de servicio y migrar a servicios inferidos, consulte la [guía de sobreescrituras de servicio][4]. -[1]: /es/software_catalog/ +[1]: /es/internal_developer_portal/catalog/ [2]: /es/tracing/services/service_page [3]: /es/database_monitoring/ [4]: /es/tracing/guide/service_overrides [5]: /es/tracing/services/renaming_rules/ {{< /site-region >}} -{{< site-region region="gov" >}} -
    La función de servicios inferidos no está disponible por defecto en tu centro de datos. Rellena este formulario para solicitar acceso.
    +{{< site-region region="gov,gov2" >}} +
    La función de Servicios Inferidos no está disponible por defecto en su centro de datos. Complete este formulario para solicitar acceso.
    {{< /site-region >}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/es/tracing/trace_collection/compatibility/java.md b/content/es/tracing/trace_collection/compatibility/java.md index f5d766ab1ba..86baf519ac2 100644 --- a/content/es/tracing/trace_collection/compatibility/java.md +++ b/content/es/tracing/trace_collection/compatibility/java.md @@ -5,214 +5,231 @@ aliases: - /es/tracing/setup_overview/compatibility_requirements/java code_lang: java code_lang_weight: 0 -description: 'Requisitos de compatibilidad del rastreador Java ' +description: Requisitos de compatibilidad para el trazador de Java further_reading: - link: tracing/trace_collection/dd_libraries/java tag: Documentación - text: Instrumentación de tu aplicación -title: Requisitos de compatibilidad Java -type: lenguaje de código múltiple + text: Instrumente su aplicación +title: Requisitos de compatibilidad de Java +type: multi-code-lang --- +## Compatibilidad {#compatibility} -## Compatibilidad +La biblioteca Datadog Trace para Java es de código abierto; consulte el [repositorio de GitHub][1] para más información. -La librería de rastreo Datadog Java es de código abierto. Para obtener más información, consulta el [repositorio GitHub][1]. +### Entornos de ejecución de Java compatibles {#supported-java-runtimes} -### Tiempos de ejecución compatibles Java +El trazador de Java admite la instrumentación automática para los siguientes entornos de ejecución de Oracle JDK, OpenJDK JVM y [GraalVM](#graalvm-native-image-support). -El rastreador Java es compatible con la instrumentación automática para los siguientes tiempos de ejecución Oracle JDK, OpenJDK JVM, y [GraalVM](#graalvm-native-image-support). - -#### Rastreador Java v1 (última versión) +#### Trazador de Java v1 (última versión) {#java-tracer-v1-latest} - - + - + - + - + - +
    Versiones de Java + Versiones de Java Sistemas operativos Nivel de soporte
    desde 22 en adelantedesde 27 en adelante Windows (x86, x86-64)
    Linux (x86, x86-64, arm64)
    Mac (x86, x86-64, arm64)
    BetaVista previa
    desde 18 a 21de 18 a 26 Windows (x86, x86-64)
    Linux (x86, x86-64, arm64)
    Mac (x86, x86-64, arm64)
    GA
    desde 8 a 17de 8 a 17 Windows (x86, x86-64)
    Linux (x86, x86-64)
    Mac (x86, x86-64)
    GA
    Linux (arm64)
    Mac (arm64)
    BetaVista previa
    -Datadog no ofrece soporte oficial para ninguna versión de acceso anticipado de Java. +Datadog no soporta oficialmente ninguna versión de acceso anticipado de Java. -#### Rastreador Java v0 (mantenimiento) +#### Trazador de Java v0 {#java-tracer-v0} -| Versiones de Java | Sistemas operativos | Nivel de soporte | +| Versiones de Java | Sistemas Operativos | Nivel de soporte | |--------------------|---------------------------------------------------------------------------------|-----------------------------------| -| Sólo 7 | Windows (x86, x86-64)
    Linux (x86, x86-64)
    Mac (x86, x86-64) | [Mantenimiento](#levels-of-support) | -| Sólo 7 | Linux (arm64)
    Mac (arm64) | [Fin de vida útil](#levels-of-support) | +| Solo 7 | Windows (x86, x86-64)
    Linux (x86, x86-64)
    Mac (x86, x86-64) | [Fin de vida](#levels-of-support) | +| Solo 7 | Linux (arm64)
    Mac (arm64) | [End-of-life](#levels-of-support) | -### Niveles de soporte +### Niveles de soporte {#levels-of-support} | **Nivel** | **Soporte proporcionado** | |--------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------| -| Sin soporte | Sin implementación. Por solicitudes especiales, ponte en contacto con el [servicio de asistencia de Datadog][2]. | -| Beta | Implementación inicial. Puede que aún no contenga todas las funciones. La compatibilidad con las nuevas funciones y la corrección de errores y problemas de seguridad se realiza en la medida de lo posible. | -| Disponibilidad general (GA) | Implementación completa de todas las funciones. Soporte completo para nuevas funciones y correcciones de errores y problemas de seguridad. | -| Mantenimiento | Implementación completa de las funciones existentes. No recibe nuevas funciones. Soporte sólo para correcciones de errores y problemas de seguridad. | -| Fin de vida útil (EOL) | Sin soporte. | +| No soportado | Sin implementación. Contacte a [soporte de Datadog][2] para solicitudes especiales. | +| Vista previa | Implementación inicial. Puede que aún no contenga todas las características. El soporte para nuevas características, correcciones de errores y de seguridad se brinda bajo el principio de mejor esfuerzo. | +| Disponibilidad General (GA) | Implementación completa de todas las características. Soporte completo para nuevas características y correcciones de errores y de seguridad. | +| Mantenimiento | Implementación completa de las características existentes. No recibe nuevas características. Soporte solo para correcciones de errores y de seguridad. | +| Fin de vida (EOL) | Sin soporte. | -## Integraciones +## Integrations {#integrations} -Las integraciones Beta están deshabilitadas por defecto, pero pueden habilitarse individualmente: +Las Integrations en la vista previa están deshabilitadas por defecto, pero se pueden habilitar individualmente: -- System Property: `-Ddd.integration..enabled=true` +- Propiedad del sistema: `-Ddd.integration..enabled=true` - Variable de entorno: `DD_INTEGRATION__ENABLED=true` -### Compatibilidad con web frameworks - -`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes web frameworks. - -**El rastreo de web frameworks proporciona:** - -- temporización de solicitud a respuesta HTTP -- etiquetas (tags) para la solicitud HTTP (código de estado, método, etc.) -- captura de errores y trazas de stacks tecnológicos -- vinculación del trabajo creado dentro de una solicitud web y rastreo distribuido - -| Servidor | Versiones | Tipo de soporte | Nombres de instrumentaciones (utilizados para la configuración) | -|-------------------------|------------|-----------------------------------------------------|----------------------------------------------------------| -| Servidor Akka-Http | 10.0 o posterior | Totalmente compatible | `akka-http`, `akka-http-server` | -| Finatra Web | 2.9 o posterior | Totalmente compatible | `finatra` | -| Grizzly | 2.0 o posterior | Totalmente compatible | `grizzly` | -| Grizzly-HTTP | 2.3.20 o posterior | Totalmente compatible | `grizzly-filterchain` | -| Java Servlet compatible | 2.3, 3.0 o posterior | Totalmente compatible | `servlet`, `servlet-2`, `servlet-3` | -| Anotaciones Jax-RS | JSR311-API | Totalmente compatible | `jax-rs`, `jaxrs`, `jax-rs-annotations`, `jax-rs-filter` | -| Jetty | 7.0-12.x | Totalmente compatible | `jetty` | -| Servidor HTTP Micronaut | 2.x | Totalmente compatible | `micronaut` | -| Mulesoft | 4 | Totalmente compatible | `mule` | -| Servidor HTTP Netty | 3.8 o posterior | Totalmente compatible | `netty`, `netty-3.8`, `netty-4.0`, `netty-4.1` | -| Play | 2.3-2.8 | Totalmente compatible | `play`, `play-action` | -| Ratpack | 1.5 o posterior | Totalmente compatible | `ratpack` | -| Servidor HTTP Restlet | 2.2-2.4 | Totalmente compatible | `restlet-http`. | -| Spark Java | 2.3 o posterior | [Beta](#framework-integrations-disabled-by-default) | `sparkjava` (requiere `jetty`) | -| Spring Boot | 1.5 o posterior | Totalmente compatible | `spring-web` o `spring-webflux` | -| Spring Web (MVC) | 4.0 o posterior | Totalmente compatible | `spring-web` | -| Spring WebFlux | 5.0 o posterior | Totalmente compatible | `spring-webflux` | -| Tomcat | 5.5 o posterior | Totalmente compatible | `tomcat` | -| Vert.x | 3.4 o posterior | Totalmente compatible | `vertx`, `vertx-3.4`, `vertx-3.9`, `vertx-4.0` | +### Compatibilidad con marcos web {#web-framework-compatibility} + +`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes marcos web. + +**El rastreo de marcos web proporciona:** + +- Medición del tiempo de la solicitud HTTP a la respuesta +- etiquetas para la solicitud HTTP (código de estado, método, etc.) +- captura de errores y stacktrace +- vinculación del trabajo creado dentro de una solicitud web y Distributed Tracing + +| Servidor | Versiones | Tipo de soporte | Nombres de instrumentación (utilizados para configuración) | +|-------------------------|--------------|--------------------------------------------------------|------------------------------------------------------------| +| Servidor Akka-Http | 10.0+ | Totalmente soportado | `akka-http`, `akka-http-server` | +| Apache Pekko | 1.0+ | Totalmente soportado | `pekko-http`, `pekko-http-server` | +| Finatra Web | 2.9+ | Totalmente soportado | `finatra` | +| Grizzly | 2.0+ | Totalmente soportado | `grizzly` | +| Grizzly-HTTP | 2.3.20+ | Totalmente soportado | `grizzly-filterchain` | +| Compatible con Java Servlet | 2.3+, 3.0+ | Totalmente soportado | `servlet`, `servlet-2`, `servlet-3` | +| Anotaciones Jax-RS | JSR311-API | Totalmente soportado | `jax-rs`, `jaxrs`, `jax-rs-annotations`, `jax-rs-filter` | +| Jetty | 7.0-12.x | Totalmente soportado | `jetty` | +| Servidor HTTP de Micronaut | 2.x+ | Totalmente Soportado | `micronaut` | +| Mulesoft | 4.5.0+ | Totalmente Soportado | `mule` | +| Servidor HTTP de Netty | 3.8+ | Totalmente Soportado | `netty`, `netty-3.8`, `netty-4.0`, `netty-4.1` | +| Play | 2.3-2.8 | Totalmente Soportado | `play`, `play-action` | +| Ratpack | 1.5+ | Totalmente Soportado | `ratpack` | +| Servidor HTTP de Restlet | 2.2 - 2.4 | Totalmente Soportado | `restlet-http`. | +| Spark Java | 2.3+ | [vista previa](#framework-integrations-disabled-by-default) | `sparkjava` (requiere `jetty`) | +| Spring Boot | 1.5+ | Totalmente Soportado | `spring-web` o `spring-webflux` | +| Spring Web (MVC) | 4.0+ | Totalmente Soportado | `spring-web` | +| Spring WebFlux | 5.0+ | Totalmente Soportado | `spring-webflux` | +| Tomcat | 5.5+ | Totalmente Soportado | `tomcat` | +| Undertow | 2.0+ | Totalmente Soportado | `undertow` | +| Vert.x | 3.4 - 5.x | Totalmente Soportado | `vertx`, `vertx-3.4`, `vertx-3.9`, `vertx-4.0`, `vertx-5.0`| +| Websocket (JSR356) | 1.0+ | [vista previa](#framework-integrations-disabled-by-default) | `websocket` | **Nota**: Muchos servidores de aplicaciones son compatibles con Servlet y están cubiertos automáticamente por esa instrumentación, como Websphere, Weblogic y JBoss. -Además, los marcos como Spring Boot (versión 3) funcionan de forma inherente porque suelen utilizar un servidor de aplicaciones integrado compatible, como Tomcat, Jetty o Netty. +Además, frameworks como Spring Boot (versión 3) funcionan inherentemente porque generalmente utilizan un servidor de aplicaciones embebido soportado, como Tomcat, Jetty o Netty. -### Integraciones de marcos deshabilitadas por defecto +### Framework Integrations Desactivadas por Defecto {#framework-integrations-disabled-by-default} -Las siguientes instrumentaciones están deshabilitadas por defecto y pueden habilitarse con los siguientes parámetros: +Las siguientes instrumentaciones están desactivadas por defecto y se pueden habilitar con las siguientes configuraciones: -| Instrumentación | Para habilitar | -|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------| -| JAX-WS | `-Ddd.integration.jax-ws.enabled=true` | -| Mulesoft | `-Ddd.integration.mule.enabled=true`, `-Ddd.integration.grizzly-client.enabled=true`, `-Ddd.integration.grizzly-filterchain.enabled=true` | -| Grizzly | `-Ddd.integration.grizzly-client.enabled=true` | -| Grizzly-HTTP | `-Ddd.integration.grizzly-filterchain.enabled=true` | -| Ning | `-Ddd.integration.ning.enabled=true` | -| Spark Java | `-Ddd.integration.sparkjava.enabled=true` | -| Hazelcast | `-Ddd.integration.hazelcast.enabled=true`
    `-Ddd.integration.hazelcast_legacy.enabled=true` | -| TIBCO BusinessWorks | `-Ddd.integration.tibco.enabled=true` | +| Instrumentación | Para Habilitar | +|------------------------------|----------------------------------------------------------------------------------------------------------| +| Grizzly | `-Ddd.integration.grizzly-client.enabled=true` | +| Grizzly-HTTP | `-Ddd.integration.grizzly-filterchain.enabled=true` | +| Hazelcast (solo del lado del cliente) | `-Ddd.integration.hazelcast.enabled=true`
    `-Ddd.integration.hazelcast_legacy.enabled=true` | +| Ignite | `-Ddd.integration.ignite.enabled=true` | +| JAX-WS | `-Ddd.integration.jax-ws.enabled=true` | +| JDBC Datasource | `-Ddd.integration.jdbc-datasource.enabled=true` | +| Mulesoft | `-Ddd.integration.mule.enabled=true` | +| Netty Promise | `-Ddd.integration.netty-promise.enabled=true` | +| Ning | `-Ddd.integration.ning.enabled=true` | +| Spark Java | `-Ddd.integration.sparkjava.enabled=true` | +| TIBCO BusinessWorks | `-Ddd.integration.tibco.enabled=true` | +| Conexión URL | `-Ddd.integration.urlconnection.enabled=true`
    `-Ddd.integration.httpurlconnection.enabled=true` | +| Websocket | `-Ddd.trace.websocket.messages.enabled=true` | +| ZIO | `-Ddd.integration.zio.experimental.enabled=true` | -**Nota**: La integración JAX-WS instrumenta endpoints anotados con @WebService (JAX-WS 1.x) y @WebServiceProvider (JAX-WS 2.x). +**Nota**: La integración JAX-WS instrumenta puntos de conexión anotados con @WebService (JAX-WS 1.x) y @WebServiceProvider (JAX-WS 2.x). -¿No encuentras el marco web que buscas? Datadog añade continuamente soporte adicional. Si necesitas ayuda, ponte en contacto con el [servicio de asistencia de Datadog][2]. +¿No ve los frameworks web que desea? Datadog está continuamente agregando soporte adicional. Contacte a [Datadog support][2] si necesita ayuda. -### Compatibilidad con marcos de red +### Compatibilidad del networking framework {#networking-framework-compatibility} -`dd-java-agent` incluye soporte para rastrear automáticamente las siguientes estructuras de red. +`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes marcos de trabajo de red. -**El rastreo de redes proporciona:** +**El rastreo de red proporciona:** -- temporización de solicitud a respuesta +- tiempo entre solicitud y respuesta - etiquetas para la solicitud (por ejemplo, código de respuesta) -- captura de errores y trazas de stacks tecnológicos +- captura de errores y trazas de pila - rastreo distribuido -| Marco | Versiones | Tipo de soporte | Nombres de instrumentaciones (utilizados para la configuración) | -|------------------------------------|-------------|-----------------------------------------------------|---------------------------------------------------------| -| Cliente HTTP Apache | 4.0 o posterior | Totalmente compatible | `httpclient`, `apache-httpclient`, `apache-http-client` | -| Cliente HTTP Async Apache | 4.0 o posterior | Totalmente compatible | `httpasyncclient`, `apache-httpasyncclient` | -| SDK Java AWS | 1.11, 2.2 o posterior | Totalmente compatible | `aws-sdk` | -| Camel-OpenTelemetry | 3.12.0 o posterior | Beta | [opentelemetry-1][5] | -| Cliente HTTP Commons | 2.0 o posterior | Totalmente compatible | `commons-http-client` | -| Cliente HTTP Google | 1.19.0 o posterior | Totalmente compatible | `google-http-client` | -| Google Pub/Sub | 1.116.0 o posterior | Totalmente compatible | `google-pubsub` | -| Cliente HTTP Grizzly | 1.9 o posterior | [Beta](#framework-integrations-disabled-by-default) | `grizzly-client` | -| gRPC | 1.5 o posterior | Totalmente compatible | `grpc`, `grpc-client`, `grpc-server` | -| HttpURLConnection | todos | Totalmente compatible | `httpurlconnection`, `urlconnection` | -| Clientes Kafka | 0.11 o posterior | Totalmente compatible | `kafka` | -| Flujos Kafka | 0.11 o posterior | Totalmente compatible | `kafka`, `kafka-streams` | -| RMI Java | todos | Rastreo distribuido no soportado | `rmi`, `rmi-client`, `rmi-server` | -| Clientes Jax RS | 2.0 o posterior | Totalmente compatible | `jax-rs`, `jaxrs`, `jax-rs-client` | -| Cliente Jersey | 1.9-2.29 | Totalmente compatible | `jax-rs`, `jaxrs`, `jax-rs-client` | -| JMS / Jakarta JMS | 1-3.0 o posterior | Totalmente compatible | `jms`, `jms-1`, `jms-2`, `jakarta-jms` | -| Cliente HTTP Netty | 4.0 o posterior | Totalmente compatible | `netty`, `netty-4.0`, `netty-4.1` | -| Cliente HTTP Ning | 1.9.0 o posterior | [Beta](#framework-integrations-disabled-by-default) | `ning` | -| OkHTTP | 2.2 o posterior | Totalmente compatible | `okhttp`, `okhttp-2`,`okhttp-3` | -| Cliente Play WS | 1.0 o posterior | Totalmente compatible | `play-ws` | -| Rabbit AMQP | 2.7 o posterior | Totalmente compatible | `amqp`, `rabbitmq` | -| Spring SessionAwareMessageListener | 3.1 o posterior | Totalmente compatible | `spring-jms-3.1` | -| Cliente Spring Web | 5.0 o posterior | Totalmente compatible | `spring-webflux`, `spring-webflux-client` | - -**Nota de Kafka**: La integración Kafka de Datadog funciona con la versión de Kafka `0.11+`, que soporta la API de cabecera. Esta API se utiliza para inyectar y extraer contextos de rastreo. Si estás ejecutando un entorno de versión mixta, el broker de Kafka podría informar incorrectamente de la versión más reciente de Kafka. Esto causa un problema cuando el rastreador intenta inyectar cabeceras que no son soportadas por el productor local. Además, los consumidores más antiguos no pueden consumir el mensaje debido a la presencia de cabeceras. Para evitar estos problemas, si estás ejecutando un entorno de versión mixta de Kafka con versiones anteriores a la v0.11, deshabilita la propagación de contexto con la variable de entorno: `DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false`. - -**Nota de JMS**: La integración JMS de Datadog añade y lee automáticamente propiedades de los objetos de mensajes `x__dash__datadog__dash__trace__dash__id` y `x__dash__datadog__dash__parent__dash__id` para mantener la propagación del contexto entre los servicios del consumidor y el productor. - -**Nota de Camel**: No se admite la propagación de rastreo distribuido a través de rutas Camel. - -¿No encuentras el marco de red que buscas? Datadog añade continuamente soporte adicional. Si necesitas ayuda, ponte en contacto con el [servicio de asistencia de Datadog][2]. - -### Compatibilidad con almacenes de datos - -`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes marcos/controladores de bases de datos. - -**El rastreo del almacén de datos proporciona:** - -- temporización de solicitud a respuesta -- información de la consulta (por ejemplo, una cadena de consulta desinfectada) -- captura de errores y trazas de stacks tecnológicos - -| Base de datos | Versiones | Tipo de soporte | Nombres de instrumentaciones (utilizados para la configuración) | +| Marco de trabajo | Versiones | Tipo de Soporte | Nombres de Instrumentación (utilizados para configuración) | +|------------------------------------|-------------|--------------------------------------------------------|---------------------------------------------------------| +| Cliente HTTP de Apache | 4.0+ | Totalmente Soportado | `httpclient`, `apache-httpclient`, `apache-http-client` | +| Cliente HTTP Asíncrono de Apache | 4.0+ | Totalmente Soportado | `httpasyncclient`, `apache-httpasyncclient` | +| AWS Java SDK | 1.11+, 2.2+ | Totalmente Soportado | `aws-sdk` | +| Camel-OpenTelemetry | 3.12.0+ | Vista Previa | [opentelemetry-1][5] | +| Cliente HTTP de Commons | 2.0+ | Totalmente Soportado | `commons-http-client` | +| Cliente HTTP de Google | 1.19.0+ | Totalmente Soportado | `google-http-client` | +| Google Pub/Sub | 1.116.0+ | Totalmente Soportado | `google-pubsub` | +| Cliente HTTP de Grizzly | 1.9+ | [Vista Previa](#framework-integrations-disabled-by-default) | `grizzly-client` | +| gRPC | 1.5+ | Totalmente Soportado | `grpc`, `grpc-client`, `grpc-server` | +| HttpURLConnection | todo | Totalmente Soportado | `httpurlconnection`, `urlconnection` | +| Kafka-Clients | 0.11+ | Totalmente Soportado | `kafka` | +| Kafka-Streams | 0.11+ | Totalmente Soportado | `kafka`, `kafka-streams` | +| Java RMI | todo | El rastreo distribuido no está soportado | `rmi`, `rmi-client`, `rmi-server` | +| Jax RS Clients | 2.0+ | Totalmente Soportado | `jax-rs`, `jaxrs`, `jax-rs-client` | +| Jersey Client | 1.9-2.29 | Totalmente Soportado | `jax-rs`, `jaxrs`, `jax-rs-client` | +| JMS / Jakarta JMS | 1-3.0+ | Totalmente Soportado | `jms`, `jms-1`, `jms-2`, `jakarta-jms` | +| Netty HTTP Client | 4.0+ | Totalmente Soportado | `netty`, `netty-4.0`, `netty-4.1` | +| Ning HTTP Client | 1.9.0+ | [Vista Previa](#framework-integrations-disabled-by-default) | `ning` | +| OkHTTP | 2.2+ | Totalmente soportado | `okhttp`, `okhttp-2`, `okhttp-3` | +| Play WSClient | 1.0+ | Totalmente soportado | `play-ws` | +| Rabbit AMQP | 2.7+ | Totalmente soportado | `amqp`, `rabbitmq` | +| SOFA RPC | 5.0+ | Totalmente soportado | `sofarpc` | +| Spring SessionAwareMessageListener | 3.1+ | Totalmente soportado | `spring-jms-3.1` | +| Spring WebClient | 5.0+ | Totalmente soportado | `spring-webflux`, `spring-webflux-client` | + +**Kafka Note**: La integración de Kafka de Datadog funciona con la versión de Kafka `0.11+`, que soporta la Header API. Esta API se utiliza para inyectar y extraer el contexto de traza. Si está ejecutando un entorno de versiones mixtas, el broker de Kafka puede informar incorrectamente la versión más nueva de Kafka. Esto causa un problema cuando el SDK intenta inyectar encabezados que no son soportados por el productor local. Además, los consumidores más antiguos no pueden consumir el mensaje debido a la presencia de encabezados. Para prevenir estos problemas, si está ejecutando un entorno de Kafka de versiones mixtas con versiones anteriores a 0.11, desactive la propagación de contexto con la variable de entorno: `DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false`. + +**Nota de JMS**: La integración de JMS de Datadog agrega y lee automáticamente las propiedades del objeto de mensaje `x__dash__datadog__dash__trace__dash__id` y `x__dash__datadog__dash__parent__dash__id` para mantener la propagación del contexto entre los servicios de consumidor y productor. + +**Camel Note**: La propagación del rastreo distribuido a través de rutas de Camel no es compatible. + +**Nota de SOFA RPC**: La integración de SOFA RPC de Datadog admite los protocolos de transporte Bolt, Triple y REST. Triple utiliza transporte gRPC; el rastreo distribuido para las llamadas de Triple requiere que la `grpc` integración permanezca habilitada. + +¿No ve el marco de red que desea? Datadog está continuamente agregando soporte adicional. Contacte a [soporte de Datadog][2] si necesita ayuda. + +### Compatibilidad con Datastore {#data-store-compatibility} + +`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes marcos/drivers de bases de datos. + +**El rastreo de Datastore proporciona:** + +- tiempo entre solicitud y respuesta +- información de consulta (por ejemplo, una cadena de consulta sanitizada) +- captura de errores y trazas de pila + +| Base de datos | Versiones | Tipo de soporte | Nombres de instrumentación (utilizados para la configuración) | |-------------------------|----------|-----------------|--------------------------------------------------------------------------------------------| -| Aerospike | 4.0 o posterior | Totalmente compatible | `aerospike` | -| Couchbase | 2.0 o posterior | Totalmente compatible | `couchbase` | -| Cassandra | 3.0 o posterior | Totalmente compatible | `cassandra` | -| Elasticsearch Transport | 2.0 o posterior | Totalmente compatible | `elasticsearch`, `elasticsearch-transport`, `elasticsearch-transport-{2,5,6,7}` (elige uno) | -| Elasticsearch Rest | 5.0 o posterior | Totalmente compatible | `elasticsearch`, `elasticsearch-rest`, `elasticsearch-rest-{5,6,7}` (elige uno) | -| JDBC | N/A | Totalmente compatible | `jdbc`, `jdbc-datasource` | -| Jedis | 1.4 o posterior | Totalmente compatible | `jedis`, `redis` | -| Lettuce | 4.0 o posterior | Totalmente compatible | `lettuce`, `lettuce-4-async`, `lettuce-5-rx` | -| MongoDB | 3.0-4.0 o posterior | Totalmente compatible | `mongo` | -| OpenSearch Rest | 1.x-2.x | Totalmente compatible | `opensearch`, `opensearch-rest` | -| OpenSearch Transport | 1.x-2.x | Totalmente compatible | `opensearch`, `opensearch-transport` | -| RediScala | 1.5 o posterior | Totalmente compatible | `rediscala`, `redis` | -| Redisson | 2.x-3.x | Totalmente compatible | `redisson`, `redis` | -| SpyMemcached | 2.12 o posterior | Totalmente compatible | `spymemcached` | -| Cliente Vert.x Cassandra | 3.9 o posterior | Totalmente compatible | `cassandra` | -| Cliente Vert.x Redis | 3.9 | Totalmente compatible | `vertx-redis-client` | -| Cliente MySQL Vert.x | 3.9 o posterior | Totalmente compatible | `vertx-sql-client` | - -`dd-java-agent` también es compatible con los controladores JDBC más comunes, incluidos: +| Aerospike | 4.0+ | Totalmente soportado | `aerospike` | +| Couchbase | 2.0+ | Totalmente soportado | `couchbase` | +| Cassandra | 3.0+ | Totalmente soportado | `cassandra` | +| Elasticsearch Transport | 2.0+ | Totalmente soportado | `elasticsearch`, `elasticsearch-transport`, `elasticsearch-transport-{2,5,6,7}` (elige uno) | +| Elasticsearch Rest | 5.0+ | Totalmente soportado | `elasticsearch`, `elasticsearch-rest`, `elasticsearch-rest-{5,6,7}` (elige uno) | +| Ignite | 2.0-3.0 | [Vista Previa](#framework-integrations-disabled-by-default) | `ignite` | +| JDBC | N/A | Totalmente soportado | `jdbc`, `jdbc-datasource` | +| Jedis | 1.4+ | Totalmente soportado | `jedis`, `redis` | +| Lettuce | 4.0+ | Totalmente soportado | `lettuce`, `lettuce-4-async`, `lettuce-5-rx` | +| MongoDB | 3.0-4.0+ | Totalmente soportado | `mongo` | +| OpenSearch Rest | 1.x-2.x | Totalmente soportado | `opensearch`, `opensearch-rest` | +| OpenSearch Transport | 1.x-2.x | Totalmente soportado | `opensearch`, `opensearch-transport` | +| RediScala | 1.5+ | Totalmente soportado | `rediscala`, `redis` | +| Redisson | 2.x-3.x | Totalmente soportado | `redisson`, `redis` | +| SpyMemcached | 2.12+ | Totalmente soportado | `spymemcached` | +| Vert.x Cassandra Client | 3.9-4.x | Totalmente soportado | `cassandra` | +| Vert.x Redis Client | 3.9-4.x | Totalmente soportado | `vertx-redis-client` | +| Vert.x MySQL Client | 3.9-4.x | Totalmente soportado | `vertx-sql-client` | + +**Nota**: Redis 6.0+ soporta autenticación en línea en comandos como `HELLO`, `MIGRATE`, y `ACL SETUSER`. + + - **Datadog Trace Agent**: La versión mínima requerida y recomendada es `7.76.1` para asegurar que los parámetros de autenticación se ofusquen automáticamente en los metadatos de trazas. + - **Datadog Lambda Extension** (Serverless environments): La versión mínima requerida es `v28.0.0`. + +`dd-java-agent` también es compatible con drivers JDBC comunes, incluyendo: - Apache Derby - Firebird SQL -- Motor de base de datos H2 +- H2 Database Engine - HSQLDB - IBM DB2 - MariaDB @@ -222,113 +239,159 @@ Las siguientes instrumentaciones están deshabilitadas por defecto y pueden habi - Postgres SQL - ScalikeJDBC -### Integraciones de bases de datos deshabilitadas por defecto +### Integraciones de base de datos deshabilitadas por defecto {#database-integrations-disabled-by-default} -Las siguientes instrumentaciones están deshabilitadas por defecto y pueden habilitarse con los siguientes parámetros: +Las siguientes instrumentaciones están desactivadas por defecto y se pueden habilitar con la siguiente configuración: -| Instrumentación | Para habilitar | +| Instrumentación | Para habilitar | |-------------------|-------------------------------------------------| -| Fuente de datos JDBC | - System Property: `-Ddd.integration.jdbc-datasource.enabled=true`
    - Environment Variable: `DD_INTEGRATION_JDBC_DATASOURCE_ENABLED=true` | +| JDBC-Datasource | - Propiedad del sistema: `-Ddd.integration.jdbc-datasource.enabled=true`
    - Variable de entorno: `DD_INTEGRATION_JDBC_DATASOURCE_ENABLED=true` | -¿No encuentras los almacenes de datos que buscas? Datadog añade continuamente soporte adicional. Si necesitas ayuda, ponte en contacto con el [servicio de asistencia de Datadog][2]. +¿No ve sus almacenes de datos deseados? Datadog está continuamente agregando soporte adicional. Contacte a [soporte de Datadog][2] si necesita ayuda. -### Compatibilidad con marcos adicionales +### Compatibilidad adicional con frameworks {#additional-framework-compatibility} -`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes marcos. +`dd-java-agent` incluye soporte para rastrear automáticamente los siguientes frameworks. -| Marco | Versiones | Tipo de soporte | Nombres de instrumentaciones (utilizados para la configuración) | -|-------------------|------------|------------------------------------------------------------------|------------------------------------------------| -| Datanucleus JDO | 4.0 o posterior | Totalmente compatible | `datanucleus` | -| Vistas de Dropwizard | 0.7 o posterior | Totalmente compatible | `dropwizard`, `dropwizard-view` | -| GraphQL | 14.0 o posterior | Totalmente compatible | `graphql-java` | -| Hazelcast | 3.6 o posterior | [Beta](#framework-integrations-disabled-by-default) | `hazelcast`, `hazelcast_legacy` | -| Hibernate | 3.5 o posterior | Totalmente compatible | `hibernate`, `hibernate-core` | -| Hystrix | 1.4 o posterior | Totalmente compatible | `hystrix` | -| Renderizado JSP | 2.3 o posterior | Totalmente compatible | `jsp`, `jsp-render`, `jsp-compile` | -| JUnit | 4.1, 5.3 o posterior | Totalmente compatible | `junit`, `junit-4`, `junit-5` | -| Project Reactor | 3.1 o posterior | Totalmente compatible | `reactor-core` | -| Quartz | 2.x | Totalmente compatible | `quartz` | -| RxJava | 2.x | Totalmente compatible | `rxjava` | -| Datos de Spring | 1.8 o posterior | Totalmente compatible | `spring-data` | -| Programación de Spring | 3.1 o posterior | Totalmente compatible | `spring-scheduling` | -| TIBCO BusinessWorks | 5.14.0 o posterior | [Beta](#framework-integrations-disabled-by-default) | `tibco`, `tibco_bw` | -| SDK de Twilio | Anterior a 8.0 | Totalmente compatible | `twilio-sdk` | +| Framework | Versiones | Tipo de soporte | Nombres de instrumentación (utilizados para configuración) | +|---------------------|------------------|--------------------------------------------------------|------------------------------------------------| +| Apache CXF (Jax-WS) | 3.0+ | [Extensión OpenTelemetry][10] | `cxf` | +| Datanucleus JDO | 4.0+ | Totalmente Compatible | `datanucleus` | +| Dropwizard Views | 0.7+ | Totalmente Compatible | `dropwizard`, `dropwizard-view` | +| GraphQL | 14.0+ | Totalmente Compatible | `graphql-java` | +| Hazelcast (cliente) | 3.6+ | [Vista Previa](#framework-integrations-disabled-by-default) | `hazelcast`, `hazelcast_legacy` | +| Hibernate | 3.5+ | Totalmente Compatible | `hibernate`, `hibernate-core` | +| Hystrix | 1.4+ | Totalmente Compatible | `hystrix` | +| Renderizado JSP | 2.3+ | Totalmente Compatible | `jsp`, `jsp-render`, `jsp-compile` | +| JUnit | 4.1+, 5.3+ | Totalmente Compatible | `junit`, `junit-4`, `junit-5` | +| Corutinas de Kotlin | 1.3+ | Totalmente Compatible | `kotlin_coroutine` | +| Project Reactor | 3.1+ | Totalmente Compatible | `reactor-core` | +| Quartz | 2.x | Totalmente Compatible | `quartz` | +| RxJava | 2.x | Totalmente Compatible | `rxjava` | +| Spring Data | 1.8+ | Totalmente Compatible | `spring-data` | +| Spring Scheduling | 3.1+ | Totalmente Compatible | `spring-scheduling` | +| TIBCO BusinessWorks | 5.14.0 - 6.11.0 | [Vista Previa](#framework-integrations-disabled-by-default) | `tibco`, `tibco_bw` | +| Twilio SDK | < 8.0 | Totalmente Compatible | `twilio-sdk` | -¿No encuentras el marco que buscas? Datadog está añadiendo soporte continuamente. Para solicitar un marco, ponte en contacto con nuestro magnífico [equipo de asistencia][2]. +¿No encuentra los frameworks deseados? Datadog está continuamente agregando soporte adicional. Para solicitar un framework, contacte a nuestro excelente [equipo de soporte][2]. -Para mejorar la visibilidad de las aplicaciones que utilizan marcos no soportados, considera: +Para mejorar la visibilidad en aplicaciones que utilizan frameworks no soportados, considere: -- [Añadir una instrumentación][3]. -- [Enviar una solicitud pull][4] con instrumentación para su inclusión en una futura versión. -- Ponerte en contacto con el [servicio de asistencia de Datadog][2] y solicitar una función. +- [Agregar instrumentación personalizada][3]. +- [Enviar un pull request][4] con instrumentación para su inclusión en una futura versión. +- Contacte a [soporte de Datadog][2] y envíe una solicitud de funcionalidad. -### Deshabilitación de integraciones +### Deshabilitando integraciones {#disabling-integrations} La mayoría de las integraciones están habilitadas por defecto. La siguiente configuración puede cambiar el valor predeterminado a deshabilitado. -- System Property: `-Ddd.integrations.enabled=false` +- Propiedad del sistema: `-Ddd.integrations.enabled=false` - Variable de entorno: `DD_INTEGRATIONS_ENABLED=false` -Las integraciones pueden habilitarse o deshabilitarse individualmente (anulando el valor predeterminado anterior). +Las integraciones pueden ser habilitadas o deshabilitadas individualmente (sobrescribiendo el valor predeterminado anterior). -- System Property: `-Ddd.integration..enabled=true` +- Propiedad del sistema: `-Ddd.integration..enabled=true` - Variable de entorno: `DD_INTEGRATION__ENABLED=true` -(Consulta más arriba el nombre de cada integración.) +(Consulte arriba el nombre de cada una de las integraciones.) + +### Problemas conocidos {#known-issues} + +- No se admite la ejecución del rastreador de Java en Bitbucket. +- Cargar múltiples Agentes de Java que realicen funciones de APM/rastreo no es una configuración recomendada ni admitida. +- Al ejecutar el SDK con Java 24+, puede ver advertencias relacionadas con el acceso nativo de JNI. Suprima estas advertencias agregando el `--enable-native-access=ALL-UNNAMED` indicador. Consulte [JEP 472][13] para más información. + +## Soporte de carga y enlace de clases anticipadas (AOT) {#ahead-of-time-aot-class-loading-linking-support} + +Para mejorar el tiempo de inicio, la carga y enlace de clases anticipadas (AOT) hace que las clases de la aplicación estén instantáneamente disponibles en un estado cargado y enlazado cuando se inicia la JVM. Consulte [JEP 483][14] y [JEP 514][15] para más información. + +### Requisitos {#requirements} + +Usar: + +- Java 25 o posterior +- [Datadog Java SDK][1] 1.57.0 o posterior + +### Configuración {#setup} + +Para configurar la carga y vinculación de clases AOT para APM, agregue el Datadog Java SDK durante la ejecución de entrenamiento: + +```shell +java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCacheOutput=app.aot -jar App.jar +``` + +#### Uso {#usage} + +Durante la producción, agregue el mismo Datadog Java SDK junto con los datos de entrenamiento previamente almacenados en caché: + +```shell +java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCache=app.aot -jar App.jar +``` + +Puede ver trazas utilizando el [Trace Explorer][9]. -### Problemas conocidos +{{% collapse-content title="Resolución de problemas" level="h4" %}} +##### No adjuntar el Datadog Java SDK durante la ejecución de entrenamiento {#not-attaching-the-datadog-java-sdk-during-the-training-run} -- La ejecución del rastreador Java en Bitbucket no es compatible. -- La carga de varios Agents Java que realizan funciones de APM/rastreo no es una configuración recomendada o compatible. +Si ve esta advertencia en producción, significa que el Datadog Java SDK no fue adjuntado durante el entrenamiento: + +``` +Mismatched values for property jdk.module.addmods: java.instrument specified during runtime but not during dump time +``` +La JVM no puede utilizar la caché AOT para mejorar el tiempo de inicio. La solución es adjuntar el Datadog Java SDK durante el entrenamiento. + +{{% /collapse-content %}} -## Soporte de GraalVM Native Image +## Soporte para GraalVM Native Image {#graalvm-native-image-support} -GraalVM Native Image es una tecnología que permite compilar aplicaciones Java en ejecutables nativos. El rastreador Java de Datadog es compatible con GraalVM Native Image. Esto te permite compilar tus aplicaciones en ejecutables nativos y seguir disfrutando de las capacidades de rastreo que ofrece la librería. +GraalVM Native Image es una tecnología que permite compilar aplicaciones Java en ejecutables nativos. El Datadog Java SDK es compatible con GraalVM Native Image. Esto le permite compilar sus aplicaciones en ejecutables nativos mientras sigue beneficiándose de las capacidades de trazado que ofrece la biblioteca. -### Requisitos +### Requisitos {#requirements-1} -Utiliza: +Usar: -- [GraalVM JDK 21][7] -- [Rastreador Java de Datadog][1] +- [GraalVM JDK 21 o JDK 25][7] +- [Datadog Java SDK][1] -### Configuración +### Configuración {#setup-1} {{< tabs >}} {{% tab "GraalVM" %}} -Para configurar el rastreador Java de Datadog con GraalVM Native Image, sigue los pasos a continuación: +Para configurar el Datadog Java SDK con GraalVM Native Image, siga estos pasos: -1. Instrumenta tu aplicación, siguiendo los pasos descritos en [Rastreo de aplicaciones Java][6]. -2. Cuando crees un ejecutable nativo con el comando `native-image`, añade el argumento `-J-javaagent:/path/to/dd-java-agent.jar`. Por ejemplo: +1. Instrumente su aplicación, siguiendo los pasos descritos en [Tracing Java Applications][6]. +2. Cuando construya un ejecutable nativo con el comando `native-image`, agregue el argumento `-J-javaagent:/path/to/dd-java-agent.jar`. Por ejemplo: ```shell native-image -J-javaagent:/path/to/dd-java-agent.jar -jar App.jar ``` -3. (Opcional) Habilita la integración del generador de perfiles añadiendo el siguiente argumento: +3. (Opcional) Habilite la integración del perfilador agregando el siguiente argumento: `-J-Ddd.profiling.enabled=true --enable-monitoring=jfr`. + - Para versiones del tracer anteriores a `1.39.1`, al ejecutar el ejecutable nativo generado, asegúrese de que `DD_PROFILING_START_FORCE_FIRST=true` esté configurado como una variable de entorno. [6]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ {{% /tab %}} {{% tab "Quarkus Native" %}} -Para configurar el rastreador Java de Datadog con Quarkus Native, sigue los pasos a continuación: +Para configurar el Datadog Java SDK con Quarkus Native, siga estos pasos: -1. Instrumenta tu aplicación, siguiendo los pasos descritos en [Rastreo de aplicaciones Java][6]. -2. Cuando crees un ejecutable nativo, utiliza la propiedad `quarkus.native.additional-build-args`. Por ejemplo: +1. Instrumente su aplicación, siguiendo los pasos descritos en [Tracing Java Applications][6]. +2. Cuando construya un ejecutable nativo, utilice la propiedad `quarkus.native.additional-build-args`. Por ejemplo: ```shell ./mvnw package -Dnative -Dquarkus.native.additional-build-args='-J-javaagent:/path/to/dd-java-agent.jar' ``` -3. (Opcional) Habilita la integración del generador de perfiles añadiendo el siguiente argumento: +3. (Opcional) Habilite la integración del perfilador agregando el siguiente argumento: `-J-Ddd.profiling.enabled=true --enable-monitoring=jfr`. + - Para versiones del tracer anteriores a `1.39.1`, al ejecutar el ejecutable nativo generado, asegúrese de que `DD_PROFILING_START_FORCE_FIRST=true` esté configurado como una variable de entorno. [6]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ {{% /tab %}} {{% tab "Spring Native" %}} -Para configurar el rastreador Java de Datadog con Spring Native, sigue los pasos a continuación: +Para configurar el Datadog Java SDK con Spring Native, siga estos pasos: -1. Instrumenta tu aplicación, siguiendo los pasos descritos en [Rastreo de aplicaciones Java][6]. -2. Para compilaciones de Spring Native basadas en paquetes de compilación, activa el [paquete de compilación Paketo para Datadog][8] utilizando `BP_DATADOG_ENABLED=true`. - - Puedes hacerlo a nivel de la herramienta de compilación, como Maven: +1. Instrumente su aplicación, siguiendo los pasos descritos en [Tracing Java Applications][6]. +2. Para compilaciones de Spring Native basadas en Buildpacks, habilite el [Paketo Buildpack for Datadog][8] usando `BP_DATADOG_ENABLED=true`. + - Puede hacer esto a nivel de herramienta de construcción, como Maven: ```yaml @@ -349,8 +412,9 @@ Para configurar el rastreador Java de Datadog con Spring Native, sigue los pasos ``` - - También puedes utilizar el comando `pack build` con la opción `--env BP_DATADOG_ENABLED=true` para habilitar el paquete de compilación Datadog. -3. (Opcional) Habilita la integración del generador de perfiles configurando la siguiente variable de entorno:`BP_NATIVE_IMAGE_BUILD_ARGUMENTS=’-J-Ddd.profiling.enabled=true --enable-monitoring=jfr’` . + - Alternativamente, puede usar el comando `pack build` con la opción `--env BP_DATADOG_ENABLED=true` para habilitar el buildpack de Datadog. +3. (Opcional) Habilite la integración del perfilador configurando la variable de entorno `BP_NATIVE_IMAGE_BUILD_ARGUMENTS=’-J-Ddd.profiling.enabled=true --enable-monitoring=jfr’`. + - Para versiones del tracer anteriores a `1.39.1`, al ejecutar el ejecutable nativo generado, asegúrese de que `DD_PROFILING_START_FORCE_FIRST=true` esté configurado como una variable de entorno. [6]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ [8]: https://github.com/paketo-buildpacks/datadog @@ -358,16 +422,25 @@ Para configurar el rastreador Java de Datadog con Spring Native, sigue los pasos {{< /tabs >}} -#### Uso +
    Para GraalVM 25, puede ver errores relacionados con Use of Unsafe. Agregue -Dnet.bytebuddy.safe=false al construir el ejecutable nativo para abordar esto.
    -Una vez completada la configuración, el servicio debería enviar trazas (traces) a Datadog. +#### Uso {#usage-1} -Puedes visualizar las trazas (traces) a través del [Explorador de trazas][9]. +Después de completar la configuración, el servicio debería enviar trazas a Datadog. -{{% collapse-content title="Troubleshooting" level="h4" %}} -##### Versiones del paquete de compilación Native-Image anteriores a la v5.12.2 +Puede visualizar trazas utilizando el [Trace Explorer][9]. -Las versiones más antiguas del paquete de compilación Native-Image muestran la siguiente opción: `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM`. +{{% collapse-content title="Resolución de problemas" level="h4" %}} +##### Las características no están habilitadas o configuradas correctamente para imágenes nativas {#features-are-not-enabled-or-configured-correctly-for-native-images} + +Existen problemas conocidos al acceder a propiedades del sistema en tiempo de ejecución desde un binario construido con Graal Native Image. + +- Para la configuración en tiempo de ejecución, use variables de entorno (`DD_PROPERTY_NAME=value`), en lugar de propiedades del sistema (`-Ddd.property.name=value`). +- La excepción a esta regla es al habilitar el perfilador. En este caso, pase `-J-Ddd.profiling.enabled=true` a la herramienta `native-image` en _tiempo de construcción_. + +##### Las versiones del buildpack de imagen nativa anteriores a 5.12.2 {#native-image-buildpack-versions-older-than-5122} + +Las versiones más antiguas del buildpack de imagen nativa exponen la siguiente opción: `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM`. Cuando esta opción es `false`, pueden ocurrir excepciones como las siguientes: @@ -381,12 +454,12 @@ instantiated use --trace-object-instantiation=datadog.trace.bootstrap.DatadogCla Las soluciones a este problema son: -- Configurar `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM` explícitamente como true (verdadero) en la configuración del entorno de la imagen. -- O actualizar el paquete de compilación `native-image` a la versión 5.12.2 o superior. La mejor opción es actualizar el paquete de compilación `java-native-image` a la versión 8.13.0 o superior. +- Establezca `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM` explícitamente en verdadero en la configuración de env de la imagen, +- O actualice el buildpack `native-image` a la versión 5.12.2 o posterior. La mejor manera de hacer esto es actualizando el buildpack `java-native-image` a la versión 8.13.0 o posterior. -##### Paquete de compilación Paketo para versiones de Datadog anteriores a la v4.6.0 +##### Buildpack de Paketo para versiones de Datadog anteriores a 4.6.0 {#paketo-buildpack-for-datadog-versions-older-than-460} -El paquete de compilación Paketo para Datadog tenía un error en versiones anteriores que se ponía en evidencia a través del siguiente mensaje de error: +El buildpack de Paketo para Datadog tenía un error en versiones anteriores que se materializó con el siguiente mensaje de error: ```text disabling Datadog at launch time is unsupported for Node @@ -394,11 +467,59 @@ ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1 ``` -La solución a este problema es actualizar a la versión 4.6.0 o superior. +La solución a este problema es actualizar a la versión 4.6.0 o posterior. + +##### La compilación de Spring Native se bloquea con el error exec.d/toggle {#spring-native-build-crashes-with-execdtoggle-error} + +Puede encontrar un error similar al anterior, incluso en versiones de buildpack más recientes que 4.6.0, al construir una imagen nativa de Spring Boot: + +```text +disabling Datadog at launch time is unsupported for Node +ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers +paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1 +``` + +Esto ocurre típicamente porque el buildpack de Datadog se ejecuta antes que el buildpack de imagen nativa, por lo que no sabe que se pretende una construcción de imagen nativa. Añade de forma incorrecta un script de alternancia destinado a compilaciones de JVM, que es incompatible con el ejecutable nativo final. + +La solución es establecer explícitamente la variable de entorno `BP_NATIVE_IMAGE` en `true` en la configuración de `spring-boot-maven-plugin`. Esto asegura que todos los buildpacks sean conscientes de que es una construcción de imagen nativa desde el principio. + +```yaml + + + + org.springframework.boot + spring-boot-maven-plugin + + + ... + + ... + true + ... + + + + + + +``` + +##### Problema al activar el SDK de Datadog {#problem-activating-datadog-sdk} + +Puede encontrar errores de inicialización si su configuración de tracer depende de Unix Domain Sockets (UDS), que no son compatibles con imágenes nativas: + +```text +dd.trace 2024-12-30 08:34:43:306 +0000] [main] WARN datadog.trace.agent.tooling.nativeimage.TracerActivation - Problem activating datadog tracer +java.lang.NoClassDefFoundError: Could not initialize class jnr.unixsocket.UnixSocketChannel +``` + +La solución es configurar el tracer de Java para usar comunicación basada en servidor (`hostip` o `service` modo), en lugar de comunicación basada en socket (`socket` modo). + +Para más información, consulte [Configurar el modo de comunicación APM y DogstatsD][11]. Para configuraciones que no dependen del Admission Controller, consulte la documentación de [DD_TRACE_AGENT_URL][12]. {{% /collapse-content %}} -## Leer más +## Más información {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -409,3 +530,9 @@ La solución a este problema es actualizar a la versión 4.6.0 o superior. [5]: /es/tracing/trace_collection/otel_instrumentation/java/ [7]: https://www.graalvm.org/downloads/ [9]: /es/tracing/trace_explorer/ +[10]: /es/opentelemetry/interoperability/instrumentation_libraries/?tab=java +[11]: /es/containers/cluster_agent/admission_controller/?tab=datadogoperator#configure-apm-and-dogstatsd-communication-mode +[12]: /es/tracing/trace_collection/library_config/#agent +[13]: https://openjdk.org/jeps/472 +[14]: https://openjdk.org/jeps/483 +[15]: https://openjdk.org/jeps/514 \ No newline at end of file diff --git a/content/fr/getting_started/integrations/azure.md b/content/fr/getting_started/integrations/azure.md new file mode 100644 index 00000000000..595e940e00c --- /dev/null +++ b/content/fr/getting_started/integrations/azure.md @@ -0,0 +1,439 @@ +--- +aliases: +- /fr/integrations/guide/azure-manual-setup/ +- /fr/integrations/guide/azure-programmatic-management/ +description: Connectez Microsoft Azure avec Datadog en utilisant les options d'intégration + de l'enregistrement d'application Azure. Configurez la collecte de métriques, le + transfert de journaux et l'installation de l'Agent. +further_reading: +- link: https://www.datadoghq.com/blog/azure-integration-onboarding/ + tag: Blog + text: Accélérez la configuration de votre intégration Azure grâce à une procédure + d'initialisation guidée. +- link: https://docs.datadoghq.com/integrations/azure/#overview + tag: Documentation + text: Intégration Microsoft Azure. +- link: https://docs.datadoghq.com/agent/guide/why-should-i-install-the-agent-on-my-cloud-instances/ + tag: Guide + text: Pourquoi installer l'Agent Datadog sur mes instances dans le cloud ? +title: Commencer avec Azure. +--- +## Aperçu {#overview} + +Datadog propose plusieurs options de configuration pour l'intégration Azure. Ce guide fournit un aperçu des différentes options disponibles pour commencer avec Azure, avec des liens vers des ressources et des tutoriels Azure qui traitent des cas d'utilisation spécifiques. + +## Prérequis {#prerequisites} + +Si vous ne l'avez pas encore fait, créez un [compte Datadog][2]. + +{{% collapse-content title="Permissions requises pour la configuration de l'intégration." level="h4" expanded=false id="required-permissions" %}} + +### Dans Azure {#in-azure} + +Votre utilisateur Microsoft Entra ID a besoin des permissions suivantes : + +#### Permission de créer un enregistrement d'application {#permission-to-create-an-app-registration} + +**L'une** des conditions suivantes doit être vraie pour l'utilisateur : + +- `Users can register applications` a été défini sur `Yes` +- L'utilisateur a le rôle [Développeur d'Application][38] + +##### Rôles d'administrateur au sein de vos abonnements {#admin-roles-within-your-subscriptions} + +Au sein des abonnements que vous souhaitez surveiller, vous devez avoir soit : + +- Le rôle {{< ui >}}Owner{{< /ui >}} +- Les deux rôles {{< ui >}}Contributor{{< /ui >}} et {{< ui >}}User Access Admin{{< /ui >}} + +#### Autorisation d'ajouter et de donner son consentement pour les autorisations de l'API Graph {#permission-to-add-and-grant-consent-for-graph-api-permissions} + +Le rôle [Administrateur de rôle privilégié][25] contient les autorisations requises. + +### Dans Datadog {#in-datadog} + +Le `Datadog Admin Role`, ou tout autre rôle avec l'autorisation `azure_configurations_manage`. + +{{% /collapse-content %}} + +{{< site-region region="us3" >}} + +
    La gestion des coûts dans le cloud et les archives de journaux nécessitent la configuration de l'enregistrement de l'application. Pour les comptes Datadog utilisant l'intégration Azure Native, suivez les étapes de configuration sur cette page pour créer un enregistrement d'application. Si une souscription est connectée par les deux méthodes, un avertissement de redondance apparaît dans la tuile d'intégration Azure. Cet avertissement peut être ignoré en toute sécurité pour la gestion des coûts dans le cloud et les archives de journaux. +
    + +{{< /site-region >}} + + +## Configuration {#setup} + +Suivez les instructions sur cette page pour configurer le {{< ui >}}Azure integration{{< /ui >}} via un enregistrement d'application, disponible pour tous les sites Datadog. + +{{< img src="/getting_started/integrations/azure/GSwAzure_siteSelector.mp4" alt="Sélecteur de site pour le site US3" video=true >}} + +{{% collapse-content title="Démarrage rapide (recommandé)" level="h4" expanded=false id="quickstart-setup" %}} + +### Choisissez la méthode de configuration Démarrage rapide si... {#choose-the-quickstart-setup-method-if} + +- Vous configurez Datadog pour la première fois. +- Vous préférez un flux de travail basé sur l'interface utilisateur et souhaitez minimiser le temps nécessaire pour créer un principal de service avec les autorisations de surveillance requises. +- Vous souhaitez automatiser les étapes de configuration dans des scripts ou des pipelines CI/CD. + +### Instructions {#instructions} + +1. Dans la tuile d'intégration Azure, cliquez sur {{< ui >}}+ Add New App registration{{< /ui >}}, puis sélectionnez {{< ui >}}Quickstart{{< /ui >}}. +2. Copiez le script de configuration et exécutez-le dans le shell Azure Cloud. +3. Retournez à l'interface utilisateur de Datadog. Vous devriez voir {{< ui >}}CONNECTED{{< /ui >}} dans le coin supérieur droit du script de configuration. +4. Sélectionnez les abonnements et les groupes de gestion à partir desquels collecter des données. +5. Optionnellement, cliquez sur le commutateur de collecte de métriques pour désactiver toute collecte de métriques depuis Azure. Vous pouvez également développer le menu déroulant {{< ui >}}Advanced Configuration{{< /ui >}} pour filtrer les métriques par : + - Fournisseur de ressources + - Étiquettes + - Hôtes + - Plans de service d'application + - Container Apps + +Vous pouvez également cliquer pour activer la collecte de métriques personnalisées depuis [Azure Application Insights][36], et désactiver la collecte des métriques d'utilisation. + +6. Optionnellement, cliquez sur le commutateur de collecte de ressources pour désactiver la collecte d'informations de configuration de vos ressources Azure. +7. Activez la collecte de journaux pour configurer et paramétrer les services et les paramètres de diagnostic nécessaires pour transférer les journaux vers Datadog : + 1. Si un transmetteur de journaux existe déjà dans le locataire, il est modifié pour étendre son champ d'application. Tous les paramètres modifiés s'appliquent aux abonnements ou groupes de gestion existants ainsi qu'à ceux nouvellement sélectionnés. + 2. Si vous créez un nouveau transmetteur de journaux : + 1. Entrez un nom de groupe de ressources pour stocker le plan de contrôle du transmetteur de journaux. + 2. Sélectionnez un abonnement de plan de contrôle pour l'orchestration de transfert de journaux (LFO). + 3. Sélectionnez une région pour le plan de contrôle.
    + **Remarque** : Les champs de nom de groupe de ressources, d'abonnement de plan de contrôle et de région n'apparaissent que lors de la création d'un nouveau transmetteur de journaux. + 3. Optionnellement, ouvrez {{< ui >}}Log filtering options{{< /ui >}} pour filtrer les journaux par étiquettes, ou appliquez un filtrage pour des informations spécifiques (comme les PII) en utilisant des regex. + + Consultez la [section Architecture][34] du guide de transfert de journaux automatisé pour plus d'informations sur cette architecture. + +8. Cliquez {{< ui >}}Confirm{{< /ui >}} pour terminer la configuration. + +{{% /collapse-content %}} + +{{% collapse-content title="Terraform" expanded=false level="h4" id="terraform-setup" %}} + +### Choisissez la méthode de configuration Terraform si... {#choose-the-terraform-setup-method-if} + +- Vous gérez l'infrastructure en tant que code et souhaitez maintenir l'intégration Datadog Azure sous contrôle de version. +- Vous devez configurer plusieurs locataires ou abonnements de manière cohérente avec des blocs de fournisseur réutilisables. +- Vous souhaitez un processus de déploiement répétable et auditable qui s'intègre dans votre environnement géré par Terraform. + +### Instructions {#instructions-1} + +Suivez ces étapes pour déployer l'intégration Datadog Azure via [Terraform][23]. + +{{< tabs >}} +{{% tab "Créez un enregistrement d'application" %}} + +1. Dans la tuile [intégration Azure][100], cliquez {{< ui >}}+ Add New App registration{{< /ui >}}, puis sélectionnez {{< ui >}}Terraform{{< /ui >}}. +2. Sélectionnez les abonnements et les groupes de gestion à partir desquels collecter des données. +3. Optionnellement, cliquez sur le commutateur de collecte de métriques pour désactiver toute collecte de métriques depuis Azure. Vous pouvez également développer le menu déroulant {{< ui >}}Advanced Configuration{{< /ui >}} pour filtrer les métriques par : + - Fournisseur de ressources + - Étiquettes + - Hôtes + - Plans de service d'application + - Container Apps + + Vous pouvez également cliquer pour activer la collecte de métriques personnalisées depuis [Azure Application Insights][101], et désactiver la collecte des métriques d'utilisation. +4. Vous pouvez également cliquer sur le commutateur de collecte de ressources pour désactiver la collecte d'informations de configuration de vos ressources Azure. +5. Configurez la collecte de journaux : + - Si un transmetteur de journaux existe déjà dans le locataire, étendez son champ d'application pour inclure de nouvelles souscriptions ou groupes de gestion. + - Si vous créez un nouveau transmetteur de journaux : + 1. Entrez un nom de groupe de ressources pour stocker le plan de contrôle du transmetteur de journaux. + 1. Sélectionnez un abonnement de plan de contrôle pour l'orchestration de transfert de journaux (LFO). + 1. Sélectionnez une région pour le plan de contrôle. + + Consultez la [section Architecture][102] du guide d'expédition automatisée des journaux pour plus d'informations sur cette architecture. +6. Copiez et exécutez la commande sous {{< ui >}}Initialize and apply the Terraform{{< /ui >}}. + +[100]: https://app.datadoghq.com/integrations/azure/ +[101]: https://learn.microsoft.com/azure/azure-monitor/app/app-insights-overview +[102]: /fr/logs/guide/azure-automated-log-forwarding/#architecture +{{% /tab %}} + +{{% tab "Utilisez un enregistrement d'application existant." %}} + + + +- Vous avez déjà un enregistrement d'application configuré avec le {{< ui >}}Monitoring Reader{{< /ui >}} rôle pour Datadog afin de surveiller le champ d'application fourni (abonnements ou groupes de gestion), et vous ne souhaitez pas créer de nouvelles ressources. + +1. Configurez le [fournisseur Datadog Terraform][200] pour interagir avec l'API Datadog via une configuration Terraform. +2. Configurez votre fichier de configuration Terraform en utilisant l'exemple ci-dessous comme modèle de base. Assurez-vous de mettre à jour les paramètres suivants avant d'appliquer les modifications : + * `tenant_name` : Votre ID Azure Active Directory. + * `client_id` : Votre ID d'application Azure (client). + * `client_secret` : Votre clé secrète d'application web Azure. + + Consultez la page [ressource d'intégration Datadog Azure][201] dans le registre Terraform pour d'autres exemples d'utilisation et la liste complète des paramètres optionnels, ainsi que des ressources Datadog supplémentaires. + +{{< code-block lang="hcl" filename="" disable_copy="false" collapsible="false" >}} + +resource "datadog_integration_azure" "sandbox" { + tenant_name = "" + client_id = "" + client_secret = "" +} + +{{< /code-block >}} + +3. Exécutez `terraform apply`. Attendez jusqu'à 10 minutes pour que les données commencent à être collectées, puis consultez le tableau de bord de vue d'ensemble Azure prêt à l'emploi pour voir les métriques envoyées par vos ressources Azure. + +[200]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs +[201]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_azure +{{% /tab %}} +{{< /tabs >}} + +#### Gestion de plusieurs abonnements ou locataires {#managing-multiple-subscriptions-or-tenants} + +Vous pouvez utiliser plusieurs blocs de fournisseur avec des alias pour gérer les ressources Terraform à travers plusieurs abonnements ou locataires. Consultez [Configuration du fournisseur][22] pour plus d'informations. + +### Surveillez l'état d'intégration {#monitor-the-integration-status} + +Une fois l'intégration configurée, Datadog commence à exécuter une série continue d'appels aux API Azure pour collecter des données de surveillance critiques de votre environnement Azure. Parfois, ces appels renvoient des erreurs (par exemple, si les identifiants fournis ont expiré). Ces erreurs peuvent inhiber ou bloquer la capacité de Datadog à collecter des données de surveillance. + +Lorsque des erreurs critiques sont rencontrées, l'intégration Azure génère des événements dans l'Explorateur d'événements Datadog et les republie toutes les cinq minutes. Vous pouvez configurer un Moniteur d'événements pour se déclencher lorsque ces événements sont détectés et notifier l'équipe appropriée. + +Datadog fournit un modèle de moniteur pour vous aider à démarrer. Pour utiliser le modèle de moniteur : + +1. Dans Datadog, allez à {{< ui >}}Monitors{{< /ui >}} et cliquez sur le bouton {{< ui >}}Browse Templates{{< /ui >}}. +2. Recherchez et sélectionnez le modèle de moniteur intitulé [[Azure] Erreurs d'intégration][26]. +3. Apportez les modifications souhaitées à la requête de recherche ou aux conditions d'alerte. Par défaut, le moniteur se déclenche chaque fois qu'une nouvelle erreur est détectée et se résout lorsque l'erreur n'a pas été détectée pendant les 15 dernières minutes. +4. Mettez à jour les messages de notification et de renotification selon vos souhaits. Notez que les événements eux-mêmes contiennent des informations pertinentes sur l'événement et sont inclus dans la notification automatiquement. Cela inclut des informations détaillées sur la portée, la réponse d'erreur et les étapes courantes pour remédier à la situation. +5. [Configurer les notifications][27] via vos canaux préférés (email, Slack, PagerDuty ou autres) pour vous assurer que votre équipe est alertée des problèmes affectant la collecte de données Azure. + +{{% /collapse-content %}} + +{{% collapse-content title="Utilisez un enregistrement d'application existant." level="h4" expanded=false id="existing-app-registration-setup" %}} + +### Choisissez la méthode de configuration d'enregistrement d'application existante si.. {#choose-the-existing-app-registration-setup-method-if} + +- Vous avez déjà un enregistrement d'application configuré avec le rôle {{< ui >}}Monitoring Reader{{< /ui >}} pour que Datadog surveille la portée fournie (abonnements ou groupes de gestion), et vous ne souhaitez pas créer de nouvelles ressources. + +Si vous devez configurer un enregistrement d'application pour Datadog, consultez les méthodes de configuration [Démarrage rapide](#quickstart-setup) ou [Terraform](#terraform-setup). + +### Instructions {#instructions-2} + +1. Dans la tuile d'intégration [Datadog Azure][20], sélectionnez {{< ui >}}Add Existing{{< /ui >}}. +2. Dans le champ {{< ui >}}Tenant ID{{< /ui >}}, collez votre ID de répertoire (locataire). +3. Dans le champ {{< ui >}}Client ID{{< /ui >}}, collez l'ID de l'application (client). +4. Dans le champ {{< ui >}}Client Secret Value{{< /ui >}}, collez la valeur du secret client de l'enregistrement de l'application. +5. Optionnellement, cliquez sur le bouton {{< ui >}}Monitor Automuting{{< /ui >}} pour désactiver l'automutation du moniteur. +6. Optionnellement, cliquez sur le bouton de collecte des métriques pour désactiver toute collecte de métriques depuis Azure. Vous pouvez également développer le menu déroulant {{< ui >}}Advanced Configuration{{< /ui >}} pour filtrer les métriques par : + - Fournisseur de ressources + - Étiquettes + - Hôtes + - Plans de service d'application + - Applications conteneurisées + +Vous pouvez également cliquer pour activer la collecte de métriques personnalisées depuis [Azure Application Insights][36], et désactiver la collecte des métriques d'utilisation. + +6. Optionnellement, cliquez sur le bouton de collecte des ressources pour désactiver la collecte d'informations de configuration de vos ressources Azure. +7. Cliquez sur {{< ui >}}Create Configuration{{< /ui >}}. + +{{% /collapse-content %}} + +## Collecte de métriques {#metric-collection} + +L'intégration Azure de Datadog est conçue pour collecter toutes les métriques de [Azure Monitor][8]. La [page des intégrations][9] affiche une liste sélectionnée de sous-intégrations prédéfinies qui fournissent des tableaux de bord et des moniteurs supplémentaires prêts à l'emploi pour des services Azure spécifiques. Bon nombre de ces intégrations sont installées par défaut lorsque Datadog reconnaît des données provenant de votre compte Azure. Cependant, Datadog peut ingérer des métriques de **toute ressource prise en charge par Azure Monitor**, même si elle n'a pas de tuile de sous-intégration dédiée. + +Vous pouvez trouver vos métriques Azure dans la page de résumé des métriques sur la plateforme Datadog en naviguant vers `Metrics > Summary` et en recherchant `Azure`. + +{{< img src="/getting_started/integrations/azure/GSwAzure_metricExplorer.png" alt="Image de résumé des métriques" style="width:100%;" >}} + +### Filtrage des balises de ressources pour les métriques {#resource-tag-filtering-for-metrics} + +Utilisez des filtres de balises pour contrôler quelles ressources Azure ont leurs métriques collectées par Datadog. Configurez les filtres de balises dans l'onglet {{< ui >}}Configuration{{< /ui >}} de la tuile [intégration Azure][20]. Un filtre de balises est une liste de balises séparées par des virgules sous la forme `key:value`. Seules les ressources qui correspondent à au moins une balise dans le filtre ont leurs métriques collectées. + +Vous pouvez utiliser des caractères génériques dans vos filtres de balises : +- `?` correspond à un seul caractère. +- `*` correspond à plusieurs caractères. + +Pour exclure des ressources avec une balise donnée, préfixez la balise avec `!`. L'exclusion a la priorité sur l'inclusion. Une ressource correspond au filtre si elle correspond à une balise de la liste. + +Par exemple : `datadog:monitored,env:production,!plan_tier:basic,instance-type:c1.*` + +Ce filtre collecte des métriques à partir des ressources étiquetées avec `datadog:monitored` ou `env:production`, exclut les ressources étiquetées avec `plan_tier:basic`, et inclut les ressources avec une balise `instance-type` correspondant à `c1.*`. + +Si aucun filtre de balises n'est défini, Datadog collecte des métriques de toutes les ressources Azure. + +## Activer la collecte des journaux {#enable-log-collection} + +Vous pouvez utiliser la fonctionnalité d'envoi automatique des journaux pour configurer et paramétrer les services et les paramètres de diagnostic nécessaires pour transférer les journaux à Datadog. Si un plan de contrôle d'envoi automatique des journaux existe déjà dans le locataire, ce flux le modifie et étend son champ d'application pour inclure les abonnements ou groupes de gestion sélectionnés. Pour plus de détails, voir [Configuration de l'envoi automatique des journaux Azure][19]. + +Datadog recommande d'utiliser l'Agent ou DaemonSet pour envoyer des journaux depuis Azure. Si le streaming direct n'est pas possible, utilisez le flux {{< ui >}}Configure Log Forwarding{{< /ui >}} dans l'[intégration Azure][20] pour configurer et gérer le transfert automatisé de journaux directement dans Datadog. Vous pouvez également déployer le transfert de journaux avec un [modèle de gestion des ressources Azure (ARM)][19]. Les deux méthodes gèrent automatiquement et mettent à l'échelle les services de transfert de journaux. + +{{% collapse-content title="Automatisé (recommandé)" level="h4" expanded=false id="automated-log-forwarding-setup" %}} + +### Choisissez la méthode de configuration du transfert de journaux automatisé si... {#choose-the-automated-log-forwarding-setup-method-if} + +- Vous n'avez pas déjà configuré de journaux via la [méthode de configuration Quickstart](#azure-quickstart-setup). +- Vous préférez un flux de travail basé sur une interface utilisateur et souhaitez minimiser le temps nécessaire pour créer un principal de service avec les autorisations de surveillance requises. +- Vous souhaitez automatiser les étapes de configuration dans des scripts ou des pipelines CI/CD. + +### Instructions {#instructions-3} + +#### Configurer le transfert de journaux (recommandé) {#configure-log-forwarding-recommended} + +Utilisez le flux {{< ui >}}Configure Log Forwarding{{< /ui >}} pour configurer de nouveaux ou gérer des transmetteurs de journaux existants directement dans Datadog : + +1. Dans Datadog, accédez à [{{< ui >}}Integrations{{< /ui >}} > {{< ui >}}Azure{{< /ui >}}][20]. +1. Cliquez sur {{< ui >}}Configure Log Forwarding{{< /ui >}}. +1. Copiez la commande fournie et collez-la dans votre Azure Cloud Shell. +1. Sélectionnez les abonnements à partir desquels transférer des journaux. +1. Optionnellement, ajoutez ou supprimez des filtres de journaux. +1. Cliquez sur {{< ui >}}Confirm{{< /ui >}}. + +Pour plus de détails, consultez [Configuration automatisée du transfert de journaux Azure][19]. + +#### Modèle ARM {#arm-template} + +Alternativement, déployez le transfert de journaux avec un modèle de gestion des ressources Azure (ARM) : + +1. Ouvrez le [modèle ARM de transfert de journaux automatisé][29] dans Azure. +1. Configurez les détails de votre projet et de votre instance Azure dans l'onglet [Informations de base][30]. +1. Entrez vos identifiants Datadog dans l'onglet [Configuration Datadog][31]. +1. Reconnaissez les avertissements de déploiement dans l'onglet [Déploiement][32]. +1. Démarrez le processus de déploiement dans l'onglet [Révision + création][33]. + +{{< site-region region="us3" >}} + +
    Les Archives de journaux nécessitent la méthode de configuration de l'enregistrement d'application. Pour les comptes Datadog utilisant l'intégration Azure Native, suivez les étapes de cette page pour créer un enregistrement d'application. +
    + +{{< /site-region >}} + +Consultez l'[Architecture de transfert de journaux automatisé Azure][34] pour plus de détails. + +{{% /collapse-content %}} + +{{% collapse-content title="Application de conteneur" level="h4" expanded=false id="container-app-log-forwarding-setup" %}} + +### Choisissez la méthode de transfert de journaux de l'application de conteneur si... {#choose-the-container-app-log-forwarding-method-if} + +- Vous préférez configurer manuellement les [paramètres de diagnostic][53] sur les ressources à partir desquelles vous souhaitez transférer des journaux. + +## Instructions {#instructions-4} + +1. Cliquez sur le bouton ci-dessous et remplissez le formulaire sur le portail Azure. Datadog déploie automatiquement les ressources Azure nécessaires pour transférer des journaux dans votre compte Datadog. + + [![Déployer sur Azure](https://aka.ms/deploytoazurebutton)][52] + +2. Après la fin du déploiement du modèle, configurez les [paramètres de diagnostic][53] pour chaque source de journal afin d'envoyer les journaux de la plateforme Azure (y compris les journaux de ressources) au compte de stockage créé lors du déploiement. + +**Remarque** : Les ressources ne peuvent diffuser que vers un compte de stockage dans la même région Azure. + +{{% /collapse-content %}} + +{{% azure-log-archiving %}} + +### Filtrage des balises de ressources pour les journaux {#resource-tag-filtering-for-logs} + +Utilisez des filtres de balises pour contrôler quelles ressources Azure ont leurs journaux transférés vers Datadog. Pour configurer des filtres de balises pour les journaux, cliquez sur {{< ui >}}Configure Log Forwarding{{< /ui >}} dans la tuile d'intégration [Azure][20] et suivez le flux. Un filtre de balises est une liste de balises séparées par des virgules sous la forme `key:value`. Seules les ressources qui correspondent à au moins une balise dans le filtre ont leurs journaux transférés. + +Vous pouvez utiliser des caractères génériques dans vos filtres de balises : +- `?` correspond à un seul caractère. +- `*` correspond à plusieurs caractères. + +Pour exclure des ressources avec une balise donnée, préfixez la balise avec `!`. L'exclusion a la priorité sur l'inclusion. Une ressource correspond au filtre si elle correspond à une balise de la liste. + +Par exemple : `datadog:monitored,env:production,!plan_tier:basic,instance-type:c1.*` + +Ce filtre transfère les journaux des ressources étiquetées avec `datadog:monitored` ou `env:production`, exclut les ressources étiquetées avec `plan_tier:basic`, et inclut les ressources avec une balise `instance-type` correspondant à `c1.*`. + +Si aucun filtre de balise n'est défini, Datadog transfère les journaux de toutes les ressources Azure. + +## Obtenez plus de Datadog Platform {#get-more-from-the-datadog-platform} + +### Installez l'Agent pour une visibilité accrue sur votre application {#install-the-agent-for-greater-visibility-into-your-application} + +Après avoir configuré votre intégration Azure, les crawlers de Datadog collectent automatiquement les métriques Azure, mais vous pouvez obtenir une visibilité encore plus approfondie sur vos instances Azure avec le [Datadog Agent][1]. L'installation de l'Agent Datadog dans votre environnement vous permet de collecter des données supplémentaires, y compris, mais sans s'y limiter : +- **Santé de l'application** +- **Utilisation des processus** +- **Métriques au niveau du système** + +Vous pouvez également utiliser le client StatsD intégré pour envoyer des métriques personnalisées depuis vos applications, afin de corréler ce qui se passe avec vos applications, utilisateurs et système. Consultez le guide sur [_Pourquoi devrais-je installer le Datadog Agent sur mes instances cloud ?_][15] pour plus d'informations sur les avantages de l'installation du Datadog Agent sur vos instances. + +Utilisez l'extension Azure pour installer l'Agent Datadog sur des machines virtuelles Windows, des machines virtuelles Linux x64 et des machines virtuelles Linux basées sur ARM. Vous pouvez également utiliser l'AKS Cluster Extension pour déployer le Datadog Agent sur vos AKS Clusters. + +{{< tabs >}} +{{% tab "VM Extension" %}} + +1. Dans le [portail Azure][4], sélectionnez la VM appropriée. +2. Dans la barre latérale gauche, sous {{< ui >}}Settings{{< /ui >}}, sélectionnez {{< ui >}}Extensions + applications{{< /ui >}}. +3. Cliquez sur {{< ui >}}+ Add{{< /ui >}}. +4. Recherchez et sélectionnez l'extension {{< ui >}}Datadog Agent{{< /ui >}}. +5. Cliquez sur {{< ui >}}Next{{< /ui >}}. +6. Entrez votre [Datadog API key][2] et [Datadog site][1], puis cliquez sur {{< ui >}}OK{{< /ui >}}. + +Pour installer le Datadog Agent en fonction du système d'exploitation ou de l'outil CI/CD, consultez les [instructions d'installation du Datadog Agent][3]. + +**Remarque** : Les contrôleurs de domaine ne sont pas pris en charge lors de l'installation du Datadog Agent avec l'extension Azure. + +[1]: /fr/getting_started/site/ +[2]: https://app.datadoghq.com/organization-settings/api-keys +[3]: https://app.datadoghq.com/account/settings/agent/latest +[4]: https://portal.azure.com +{{% /tab %}} + +{{% tab "AKS Cluster Extension" %}} + +La Datadog AKS Cluster Extension vous permet de déployer le Datadog Agent nativement au sein d'Azure AKS, évitant ainsi la complexité des outils de gestion tiers. Pour installer le Datadog Agent avec la Datadog AKS Cluster Extension : + +1. Allez dans votre cluster AKS dans le portail Azure. +2. Dans la barre latérale gauche du cluster AKS, sélectionnez {{< ui >}}Extensions + applications{{< /ui >}} sous {{< ui >}}Settings{{< /ui >}}. +3. Recherchez et sélectionnez le {{< ui >}}Datadog AKS Cluster Extension{{< /ui >}}. +4. Cliquez sur {{< ui >}}Create{{< /ui >}}, et suivez les instructions dans la tuile en utilisant vos [identifiants Datadog][1] et [Datadog site][2]. + +[1]: /fr/account_management/api-app-keys/ +[2]: /fr/getting_started/site/ +{{% /tab %}} +{{< /tabs >}} + +## Dépannage {#troubleshooting} + +Consultez [Dépannage][16] dans le guide de configuration avancée Azure. + +Vous avez encore besoin d'aide ? Contactez [Datadog support][17]. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/getting_started/agent/ +[2]: https://www.datadoghq.com/ +[5]: https://learn.microsoft.com/azure/event-hubs/event-hubs-create +[8]: https://learn.microsoft.com/azure/azure-monitor/reference/supported-metrics/metrics-index +[9]: /fr/integrations/#cat-azure +[15]: /fr/agent/guide/why-should-i-install-the-agent-on-my-cloud-instances/ +[16]: /fr/integrations/guide/azure-advanced-configuration/#azure-integration-troubleshooting +[17]: /fr/help/ +[19]: /fr/logs/guide/azure-automated-log-forwarding/ +[20]: https://app.datadoghq.com/integrations/azure +[21]: https://learn.microsoft.com/cli/azure/ad/sp?view=azure-cli-latest +[22]: https://developer.hashicorp.com/terraform/language/providers/configuration +[23]: https://www.terraform.io +[25]: https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#privileged-role-administrator +[26]: https://app.datadoghq.com/monitors/templates?q=Azure%20%22integration%20errors%22&origination=all&p=1 +[27]: /fr/monitors/notify/#configure-notifications-and-automations +[28]: /fr/integrations/guide/azure-advanced-configuration/#enable-diagnostics +[29]: https://portal.azure.com/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2FcreateUiDefinition.json +[30]: /fr/logs/guide/azure-automated-log-forwarding/#basics +[31]: /fr/logs/guide/azure-automated-log-forwarding/#datadog-configuration +[32]: /fr/logs/guide/azure-automated-log-forwarding/#deployment +[33]: /fr/logs/guide/azure-automated-log-forwarding/#review--create +[34]: /fr/logs/guide/azure-automated-log-forwarding/#architecture +[35]: /fr/integrations/guide/azure-advanced-configuration/#automated-log-collection +[36]: https://learn.microsoft.com/azure/azure-monitor/app/app-insights-overview +[38]: https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#application-developer +[39]: https://azure.microsoft.com/services/storage/blobs/ +[40]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-portal +[41]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-storage-explorer +[42]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-cli +[43]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-powershell +[44]: https://learn.microsoft.com/training/modules/store-app-data-with-azure-blob-storage/ +[45]: https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp +[46]: https://learn.microsoft.com/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&pivots=programming-language-csharp +[47]: https://learn.microsoft.com/azure/storage/common/storage-configure-connection-string#configure-a-connection-string-for-an-azure-storage-account +[48]: https://learn.microsoft.com/azure/azure-functions/functions-get-started +[49]: https://github.com/DataDog/datadog-serverless-functions/blob/master/azure/blobs_logs_monitoring/index.js +[51]: https://app.datadoghq.com/logs +[52]: https://portal.azure.com/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fforwarder.json +[53]: https://learn.microsoft.com/azure/azure-monitor/platform/diagnostic-settings \ No newline at end of file diff --git a/content/fr/llm_observability/lapdog.md b/content/fr/llm_observability/lapdog.md new file mode 100644 index 00000000000..ae409901c2e --- /dev/null +++ b/content/fr/llm_observability/lapdog.md @@ -0,0 +1,168 @@ +--- +description: Exécutez un tableau de bord d'observabilité LLM localement pour inspecter + les traces de l'agent de codage et de l'application dans votre navigateur sans compte + Datadog. +further_reading: +- link: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md + tag: GitHub + text: README de Lapdog sur GitHub +- link: /llm_observability/instrumentation/sdk + tag: Documentation + text: Instrumentez votre application avec le LLM Observability SDK. +- link: /llm_observability/instrumentation/auto_instrumentation + tag: Documentation + text: Auto-instrumentation pour LLM Observability. +title: Lapdog +--- +## Aperçu {#overview} + +Lapdog est un outil de développement local pour LLM Observability. Il exécute un agent sur `localhost:8126` qui capture chaque span, prompt, appel d'outil et coût de votre application LLM, ou d'un agent de codage tel que Claude Code, Codex ou Pi, et les transmet dans un tableau de bord accessible via votre navigateur à [lapdog.datadoghq.com](https://lapdog.datadoghq.com). Aucun compte Datadog n'est requis. + +Lapdog est construit sur l'agent de test open-source [Datadog APM test agent][1]. Il peut également transférer la télémétrie capturée à Datadog afin que les mêmes données apparaissent dans LLM Observability aux côtés de votre trafic de production. + +## Ce que vous obtenez {#what-you-get} + +- Traces par session avec invites, appels d'outils et réponses +- Utilisation des jetons et coût estimé, décomposé par entrée, sortie et hits de cache +- Friction d'autorisation : appels d'outils restreints et temps d'attente. +- Utilisation de la fenêtre de contexte et taux de hits de cache au cours de la session +- État en direct de l'agent de codage en cours d'exécution (en cours, inactif, bloqué) + +## Installer {#install} + +{{< tabs >}} +{{% tab "Homebrew (macOS)" %}} + +```shell +brew install datadog/lapdog/lapdog +``` +{{% /tab %}} +{{% tab "pip / pipx" %}} + +```shell +pipx install ddapm-test-agent +# or: pip install ddapm-test-agent +``` +{{% /tab %}} +{{< /tabs >}} + +Pour Docker, pour l'installation à partir du code source et d'autres méthodes, consultez le [guide d'installation de Lapdog][1]. + +## Exécutez un agent de codage {#run-a-coding-agent} + +Lapdog instrumente les agents de codage de bout en bout. Chaque invite, appel d'outil et demande d'autorisation devient un span dans une session que vous pouvez rejouer depuis le tableau de bord. + +{{< tabs >}} +{{% tab "Claude Code" %}} + +```shell +lapdog claude +``` +Démarre l'agent local, installe le plugin Claude Code de Lapdog et lance Claude Code. +{{% /tab %}} +{{% tab "Codex" %}} + +```shell +lapdog codex +``` +Démarre l'agent local, puis lance Codex avec un proxy compatible OpenAI et un observateur JSONL qui capturent chaque demande LLM, appel d'outil et étape dans une session. +{{% /tab %}} +{{% tab "Pi" %}} + +```shell +lapdog pi +``` +Démarre l'agent local, installe l'extension Pi de Lapdog et lance Pi avec `LAPDOG_URL` configuré. +{{% /tab %}} +{{% tab "Other" %}} + +```shell +lapdog python my_app.py +``` +Exécutez n'importe quelle commande avec `ddtrace` auto-instrumentation pointée vers l'agent local. Utile pour instrumenter votre propre application alimentée par LLM pendant le développement. +{{% /tab %}} +{{< /tabs >}} + +**Remarque**: `lapdog claude` et `lapdog codex` sont soutenus par un proxy : l'agent local de Lapdog se trouve dans le chemin des requêtes de modèle en direct. Gardez Lapdog en cours d'exécution jusqu'à ce que l'agent de codage quitte. Si vous arrêtez ou tuez Lapdog en cours de session, l'agent de codage lancé peut cesser de progresser sur les appels de modèle. Redémarrez l'agent de codage après avoir redémarré Lapdog. `lapdog pi` et les configurations en mode hook uniquement échouent en mode ouvert si Lapdog tombe : l'agent de codage continue de fonctionner, mais les données de capture sont perdues. + +## Voir les sessions {#view-sessions} + +Tandis qu'une session est en cours, ouvrez [lapdog.datadoghq.com](https://lapdog.datadoghq.com). Le tableau de bord lit directement depuis votre agent local sur `localhost:8126` ; aucune connexion ou compte Datadog n'est nécessaire. + +Si vous avez changé le port local, remplacez-le depuis le badge {{< ui >}}Collecting sessions{{< /ui >}} dans l'en-tête du tableau de bord. + +## Transférez les événements vers Datadog {#forward-events-to-datadog} + +Pour expédier simultanément les événements capturés vers LLM Observability dans Datadog, définissez votre clé API et passez `--forward` : + +```shell +DD_API_KEY= lapdog --forward claude +``` + +Les spans transférés sont étiquetés `source:lapdog` afin que vous puissiez distinguer les sessions de développement du trafic de production. + +## Commandes utiles {#useful-commands} + +| Commande | Ce qu'elle fait | +| --- | --- | +| `lapdog claude` | Lancez Claude Code avec la capture configurée | +| `lapdog codex` | Lancez Codex avec le proxy OpenAI et l'observateur JSONL configurés | +| `lapdog pi` | Lancez Pi avec l'extension lapdog installée | +| `lapdog python app.py` | Exécutez n'importe quelle application avec instrumentation de traçage | +| `lapdog start` | Démarrez l'agent local en arrière-plan | +| `lapdog stop` | Arrêtez l'agent en arrière-plan | +| `lapdog status` | Affichez si l'agent est en cours d'exécution | + +Pour la liste complète des options, exécutez `lapdog --help`. + +## Désinstaller {#uninstall} + +Suivez ces étapes pour supprimer Lapdog et l'état qu'il écrit dans votre répertoire personnel. Votre gestionnaire de paquets (Homebrew, pip ou pipx) ne nettoie que ce qu'il a installé ; il ne touche pas `~/.lapdog/`, le plugin Claude Code, ou l'extension pi. + +1. Arrêtez l'agent local : + + ```shell + lapdog stop + ``` + +2. Supprimez le plugin Claude Code (si installé) : + + ```shell + claude plugin uninstall lapdog@lapdog + claude plugin marketplace remove lapdog + ``` + +3. Supprimez l'extension pi (uniquement si vous avez exécuté `lapdog pi`) : + + ```shell + rm -f ~/.pi/agent/extensions/lapdog.ts + ``` + +4. Supprimez le répertoire de travail de Lapdog : + + ```shell + rm -rf ~/.lapdog + ``` + +5. Désinstallez le paquet : + + {{< tabs >}} + {{% tab "Homebrew (macOS)" %}} + ```shell + brew uninstall lapdog + brew untap datadog/lapdog + ``` + {{% /tab %}} + {{% tab "pip / pipx" %}} + ```shell + pipx uninstall ddapm-test-agent + # or: pip uninstall ddapm-test-agent + ``` + {{% /tab %}} + {{< /tabs >}} + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md \ No newline at end of file diff --git a/content/fr/logs/explorer/_index.md b/content/fr/logs/explorer/_index.md index 5983e23f4ff..aa50abf1435 100644 --- a/content/fr/logs/explorer/_index.md +++ b/content/fr/logs/explorer/_index.md @@ -14,49 +14,54 @@ further_reading: text: Afficher un aperçu de vos logs dans la vue Live Tail - link: logs/explorer/saved_views/ tag: Documentation - text: Configurer automatiquement votre vue Log Explorer + text: Configurer automatiquement votre vue Log Explorer - link: https://www.datadoghq.com/blog/datadog-clipboard/ tag: Blog text: Ajouter une URL Log Explorer à votre presse-papiers -- link: https://www.datadoghq.com/blog/send-amazon-vpc-flow-logs-to-kinesis-firehose-and-datadog/ +- link: https://www.datadoghq.com/blog/send-amazon-vpc-flow-logs-to-data-firehose-and-datadog/ tag: Blog text: Envoyer des logs de flux Amazon VPS à Amazon Kinesis Data Firehose et Datadog -title: Log Explorer +- link: https://www.datadoghq.com/blog/ai-powered-log-parsing + tag: Blog + text: Accélérez les enquêtes avec l'analyse des journaux alimentée par l'IA +- link: https://learn.datadoghq.com/courses/log-explorer + tag: Centre d'apprentissage + text: Commencez avec Log Explorer +title: LogxmExplorer --- +## Aperçu {#overview} -## Présentation - -Accédez au [**Log Explorer**][1] pour débuter vos diagnostics et plonger au cœur de vos logs. Que vous partiez de zéro, d'une [vue enregistrée][2] ou des données de contexte associées à une notification de monitor ou un widget de dashboard, le Log Explorer vous permet de rechercher et de filtrer, de regrouper, de visualiser et d'exporter vos logs. +L'[**Log Explorer**][1] constitue votre point de départ pour le dépannage et l'exploration des journaux. Que vous commenciez de zéro, à partir d'un [Saved View][2], ou que vous arriviez ici depuis un autre contexte, tel que des monitor notifications ou des dashboard widgets, vous pouvez rechercher et filtrer, regrouper, visualiser et exporter des journaux dans Log Explorer. -{{< img src="/logs/explore.png" alt="Explorer vos logs ingérés" style="width:100%;">}} +{{< img src="/logs/explore.png" alt="Explorez vos journaux ingérés" style="width:100%;">}} -## Rechercher et filtrer des événements +## Rechercher et filtrer {#search-and-filter} -**Recherchez** et **filtrez** vos logs pour retrouver des logs précis ou généraux, ou pour vous concentrer sur un groupe spécifique de logs pertinents. +{{< ui >}}Search{{< /ui >}} et {{< ui >}}Filter{{< /ui >}} sur les journaux pour affiner, élargir ou réorienter votre attention sur un sous-ensemble de journaux adapté à votre intérêt actuel. - - Pour en savoir plus sur la recherche de logs dans le Log Explorer, consultez la section [Rechercher des logs][3]. - - Pour commencer à créer des requêtes et à utiliser des facettes dans le Log Explorer, consultez la section [Syntaxe de recherche de logs][4]. - - Pour découvrir comment la fonctionnalité [Watchdog Insights][9] vous permet de consulter les logs anormaux et singuliers au sein de votre contexte de recherche, consultez la section [Watchdog Insights pour les logs][5]. + - Pour en savoir plus sur la recherche de journaux dans Log Explorer, lisez [Search Logs][3]. + - Pour commencer à créer des requêtes et à utiliser des facettes dans Log Explorer, lisez [Log Search Syntax][4]. + - Pour apprendre comment [Watchdog Insights][9] met en évidence des journaux anormaux et des valeurs aberrantes dans les journaux d'erreurs dans votre contexte de recherche, lisez [Watchdog Insights for Logs][5]. -## Analyser +## Analysez {#analyze} -**Regroupez** vos logs interrogés au sein d'entités de plus haut niveau, telles que des champs, patterns et transactions, afin de déduire ou de consolider des informations. +{{< ui >}}Group{{< /ui >}} vos journaux interrogés en entités de niveau supérieur telles que des champs, des modèles et des transactions afin de dériver ou de consolider des informations. Pour commencer à identifier des patterns et à agréger les logs par sous-ensembles d'événements, consultez la section [Analyse de logs][6]. -## Visualiser les données +## Visualisez {#visualize} -**Visualisez** les résultats de vos filtres et agrégations pour mieux comprendre vos logs et obtenir des informations clés. Vous pouvez par exemple consulter vos logs sous forme de liste afin d'organiser les données dans des colonnes, ou sous forme de graphique de série temporelle pour mesurer l'évolution de vos données. +{{< ui >}}Visualize{{< /ui >}} le résultat de vos filtres et agrégations pour mieux comprendre vos journaux et recueillir des informations décisives. Par exemple, vous pouvez afficher vos journaux dans une liste pour organiser vos données de journaux en colonnes, ou dans un graphique temporel pour mesurer vos données de journaux au fil du temps. Pour commencer à visualiser vos données de log dans le Log Explorer, consultez la section [Visualisations de log][7]. -## Exporter +## Exportez {#export} -Vous pouvez également **exporter** votre vue Log Explorer pour la réutiliser plus tard ou dans un autre contexte. +Vous pouvez également {{< ui >}}export{{< /ui >}} votre vue de Log Explorer pour la réutiliser plus tard ou dans différents contextes. Pour découvrir comment exporter vos requêtes et visualisations de log, consultez la section [Exporter des logs][8]. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/fr/monitors/types/metric.md b/content/fr/monitors/types/metric.md new file mode 100644 index 00000000000..ae3c324b630 --- /dev/null +++ b/content/fr/monitors/types/metric.md @@ -0,0 +1,224 @@ +--- +aliases: +- /fr/monitors/monitor_types/metric +- /fr/monitors/faq/what-is-the-do-not-require-a-full-window-of-data-for-evaluation-monitor-parameter +- /fr/monitors/create/types/metric +description: Comparer les valeurs d'une métrique avec un seuil défini par un utilisateur +further_reading: +- link: /monitors/notify/ + tag: Documentation + text: Configurer les notifications de vos monitors +- link: /monitors/downtimes/ + tag: Documentation + text: Planifier un downtime pour désactiver un monitor +- link: /monitors/status/ + tag: Documentation + text: Consulter le statut de votre monitor +- link: /monitors/types/change-alert + tag: Documentation + text: Dépanner les moniteurs d'alerte de changement +title: Monitor de métrique +--- +## Aperçu : {#overview} + +Les moniteurs de métriques sont utiles pour un flux continu de données. Toute métrique envoyée à Datadog peut être alertée si elle dépasse un seuil sur une période donnée. + +Pour créer un moniteur de métriques dans Datadog, accédez à [**Moniteurs > Nouveau Moniteur**][1] et sélectionnez le type de moniteur **Métrique**. + +## Choisissez la méthode de détection {#choose-the-detection-method} + +{{< tabs >}} +{{% tab "Seuil" %}} + +Une alerte de seuil compare les valeurs de la métrique à un seuil fixe. + +À chaque évaluation d'alerte, Datadog calcule la moyenne, le minimum, le maximum ou la somme sur la période sélectionnée et vérifie si elle est supérieure, inférieure, égale ou différente du seuil. Ceci est pour les cas d'alerte standard où vous connaissez les valeurs attendues. Le [type de métrique de distribution][1] offre l'option de seuil supplémentaire de calculer des percentiles sur la période sélectionnée. + +Pour plus d'informations, consultez la section [Définir les conditions d'alerte](#set-alert-conditions). + +[1]: /fr/metrics/distributions/ +{{% /tab %}} +{{% tab "Changement" %}} + +Une alerte de changement compare le changement absolu ou relatif (%) de valeur entre `N` minutes auparavant et maintenant par rapport à un seuil donné. Les points de données comparés ne sont pas des points uniques mais sont calculés en utilisant les paramètres de la section *définir la métrique*. + +À chaque évaluation d'alerte, Datadog calcule la différence brute (une valeur positive ou négative) entre la série actuelle et `N` minutes auparavant, puis calcule la moyenne/le minimum/le maximum/la somme sur la période sélectionnée. Une alerte est déclenchée lorsque cette série calculée dépasse le seuil. + +Ce type d'alerte est utile pour suivre les pics, les baisses, ou les changements progressifs d'une métrique lorsque vous ne disposez pas d'un seuil pour un comportement « inattendu ». + +Pour plus d'informations, consultez le guide [Moniteurs d'alerte de changement][1]. + +[1]: /fr/monitors/types/change-alert/ +{{% /tab %}} +{{% tab "Anomalies" %}} + +Une alerte de détection d'anomalie utilise le comportement passé pour détecter lorsqu'une métrique a un comportement anormal. + +Les alertes d'anomalie calculent une plage de valeurs attendues pour une série basée sur le passé. Certains des algorithmes d'anomalie utilisent l'heure de la journée et le jour de la semaine pour déterminer la plage attendue, capturant ainsi des anomalies qui ne pourraient pas être détectées par une simple alerte de seuil. Par exemple, la série est anormalement élevée à 5h du matin alors qu'elle serait considérée comme normale à 10h du matin. + +À chaque évaluation d'alerte, Datadog calcule le pourcentage de la série qui se situe au-dessus, en dessous et en dehors de la plage attendue. Une alerte est déclenchée lorsque ce pourcentage dépasse le seuil configuré. + +Pour plus d'informations, consultez la page [Anomaly Monitor][1]. + +[1]: /fr/monitors/types/anomaly/ +{{% /tab %}} +{{% tab "Singularités" %}} + +Les monitors de singularité détectent lorsqu'un membre d'un groupe (hosts, zones de disponibilité, partitions, etc.) a un comportement anormal par rapport au reste. + +Lors de chaque évaluation d'alerte, Datadog vérifie si tous les groupes sont regroupés et présentent le même comportement ou non. Une alerte est déclenchée lorsqu'un ou plusieurs groupes divergent du reste des groupes. + +Pour plus d'informations, consultez la page [Outlier Monitor][1]. + +[1]: /fr/monitors/types/outlier/ +{{% /tab %}} +{{% tab "Prévision" %}} + +Une alerte de prévision prédit le comportement futur d'une métrique et le compare à un seuil statique. Elle est bien adaptée aux métriques présentant des tendances fortes ou des motifs récurrents. + +Lors de chaque évaluation d'alerte, une alerte de prévision prédit les valeurs futures de la métrique ainsi que les limites de déviation attendues. Une alerte est déclenchée lorsque n'importe quelle partie des limites franchit le seuil configuré. + +Pour plus d'informations, consultez la page [Forecast Monitor][1]. + +[1]: /fr/monitors/types/forecasts/ +{{% /tab %}} +{{< /tabs >}} + +## Définissez la métrique {#define-the-metric} + +Toute métrique rapportée à Datadog est disponible pour les moniteurs. Utilisez l'éditeur et les étapes ci-dessous pour définir la métrique. Les paramètres de requête varient légèrement en fonction de la méthode de détection choisie. + +{{< tabs >}} +{{% tab "Seuil" %}} + +{{< img src="monitors/monitor_types/metric/metric_threshold_config.png" alt="définissez la métrique pour le moniteur de détection de seuil" style="width:100%;">}} + +| Étape | Requis | Par défaut | Exemple | +|-----------------------------------|----------|----------------|-------------------| +| Sélectionner une métrique | Oui | Aucun | `system.cpu.user` | +| Définir le `from` | Non | Partout | `env:prod` | +| Spécifier l'agrégation de métrique | Oui | `avg by` | `sum by` | +| Grouper par | Non | Tout | `host` | +| Spécifier l'agrégation de requête de moniteur | Non | `average` | `sum` | +| Fenêtre d'évaluation | Non | `5 minutes` | `1 day` | + +**Définitions** + +| Option | Description | +|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| moyenne | La série est moyennée pour produire une valeur unique qui est vérifiée par rapport au seuil. Elle ajoute la fonction `avg()` à votre requête de surveillance. | +| max | Si une seule valeur dans la série générée dépasse le seuil, alors une alerte est déclenchée. Elle ajoute la fonction max() à votre requête de surveillance. Consultez la section Notes pour un comportement supplémentaire du seuil. | +| min | Si tous les points dans la fenêtre d'évaluation pour votre requête dépassent le seuil, alors une alerte est déclenchée. Elle ajoute la fonction min() à votre requête de surveillance. Consultez la section Notes pour un comportement supplémentaire du seuil.| +| somme | Si la somme de chaque point dans la série dépasse le seuil, une alerte est déclenchée. Elle ajoute la fonction `sum()` à votre requête de surveillance. | +| percentile(pXX) | Si pXX pourcentage des points dans la fenêtre d'évaluation pour votre requête dépassent le seuil, alors une alerte est déclenchée. Cette option ajoute une fonction `percentile` à votre requête de surveillance. Disponible uniquement pour le type de métrique de distribution. +| Fenêtre d'évaluation| La période de temps que le moniteur évalue. Utilisez des fenêtres de temps prédéfinies comme `5 minutes`, `15 minutes`, `1 hour`, ou `custom` pour définir une valeur entre 1 minute et 730 heures (1 mois). | + +{{% /tab %}} +{{% tab "Changement" %}} + +{{< img src="monitors/monitor_types/metric/metric_change_alert_config.png" alt="définissez la métrique pour le moniteur de détection de changement" style="width:100%;">}} + +| Étape | Requis | Par défaut | Exemple | +|-----------------------------------|----------|----------------|-------------------| +| Sélectionner une métrique | Oui | Aucun | `system.cpu.user` | +| Définir le `from` | Non | Partout | `env:prod` | +| Spécifier l'agrégation de métrique | Non | `avg by` | `sum by` | +| Grouper par | Non | Tout | `host` | +| Spécifier l'agrégation de requête de moniteur | Non | `average` | `sum` | +| Sélectionnez un type de changement | Non | `change ` | `% change` | +| Fenêtre d'évaluation | Non | `5 minutes` | `1 day` | +| Fenêtre de comparaison | Non | `5 minutes` | `1 month` | + +**Définitions** + +| Option | Description | +|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| changement | Le changement absolu de la valeur. | +| % changement | Le changement en pourcentage de la valeur par rapport à sa valeur précédente. Par exemple, le changement en pourcentage pour une valeur précédente de 2 avec une valeur actuelle de 4 est de 100%. | +| moyenne | La série est moyennée pour produire une seule valeur qui est vérifiée par rapport au seuil. Elle ajoute la `avg()` fonction à votre requête de surveillance. | +| max | Si une seule valeur dans la série générée dépasse le seuil, alors une alerte est déclenchée. Elle ajoute la fonction max() à votre requête de surveillance. Consultez la section Notes pour un comportement supplémentaire du seuil. | +| min | Si tous les points dans la fenêtre d'évaluation pour votre requête dépassent le seuil, alors une alerte est déclenchée. Elle ajoute la fonction min() à votre requête de surveillance. Consultez la section Notes pour un comportement supplémentaire du seuil. | +| somme | Si la somme de chaque point dans la série dépasse le seuil, une alerte est déclenchée. Elle ajoute la `sum()` fonction à votre requête de surveillance. | +| percentile(pXX) | Si pXX pourcentage de points dans la fenêtre d'évaluation pour votre requête dépassent le seuil, alors une alerte est déclenchée. Cette option ajoute une `percentile` fonction à votre requête de surveillance. Disponible uniquement pour le type de métrique de distribution. +| Fenêtre d'évaluation| La période de temps que le moniteur évalue. Utilisez des fenêtres de temps prédéfinies comme `5 minutes`, `15 minutes`, `1 hour`, ou `custom` pour définir une valeur entre 1 minute et 730 heures (1 mois). | + +{{% /tab %}} +{{< /tabs >}} + +**Notes:** + - Si vous utilisez une métrique de distribution avec un agrégateur de percentile, un seuil de percentile correspondant est automatiquement spécifié. Les métriques avec des agrégateurs de percentile ne génèrent pas de graphique instantané dans le message de notification. + - **max/min** : Ces descriptions de max et min supposent que le moniteur alerte lorsque la métrique dépasse le seuil. Pour les moniteurs qui alertent lorsque le seuil est en dessous, le comportement max et min est inversé. + - Définir des métriques pour les moniteurs est similaire à définir des métriques pour les graphiques. Pour des détails sur l'utilisation de l'option `Advanced...`, voir [Graphisme avancé][2]. + - Il existe différents comportements lors de l'utilisation de `as_count()`. Voir [as_count() dans les évaluations de moniteur][3] pour plus de détails. + - `N/A` Les groupes ne sont pas inclus dans les moniteurs, donc les clés de balise doivent avoir une valeur. + +## Définissez les conditions d'alerte {#set-alert-conditions} + +Déclenchez lorsque la métrique est l'une des suivantes : +- `above` +- `above or equal to` +- `below` +- `below or equal to` +- `equal to` +- `not equal to` + +Si la valeur est comprise entre zéro et un, un zéro initial est requis. Par exemple, `0.3`. + +### Conditions d'alerte avancées {#advanced-alert-conditions} + +#### Fenêtre de données {#data-window} + +`Require` ou `Do not require` une fenêtre complète de données pour l'évaluation. + +Ce paramètre vous permet de choisir à quel moment un monitor doit être évalué par le moteur d'alertes. + +**Ne pas exiger** (Par défaut) : Un moniteur est évalué dès qu'il est reconnu. Envisagez d'utiliser cette valeur si vos points de données sont peu nombreux. Avec cette configuration, le moniteur évalue même s'il n'y a qu'un seul point de données dans la période d'évaluation. + +**Exiger** : Un moniteur n'est pas évalué tant que la fenêtre d'évaluation n'est pas considérée comme `filled` avec des données. Pour être notifié s'il y a des données sur l'ensemble de la période d'évaluation, utilisez cette option. + +Pour définir si la période d'évaluation est `filled` avec des données, la période est divisée en plus petits intervalles. + +La taille des compartiments repose sur la logique suivante : + +* Période d'évaluation en minutes : la taille de l'intervalle est de 1 minute +* Période d'évaluation en heures : la taille de l'intervalle est de 10 minutes +* Période d'évaluation en jours : la taille de l'intervalle est de 1 heure +* Période d'évaluation en mois : la taille de l'intervalle est de 4 heures + +Pour que l'intervalle soit considéré comme complet, les conditions suivantes doivent être respectées : + +1. Au moins un point de données dans le premier intervalle. Le premier intervalle est chronologiquement le plus ancien dans la fenêtre. +2. Pas plus de trois intervalles au total sans points de données. + +Si les conditions sont remplies, le moniteur est évalué. Sinon, l'évaluation est annulée et l'état du moniteur reste inchangé. + +Par exemple, un moniteur qui évalue sur les `2h` derniers est divisé en 12 intervalles de 10 minutes. Le moniteur est considéré comme complet si le premier intervalle a des données et qu'au maximum trois intervalles au total sont vides. + +| données | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 | B11 | Fenêtre complète ?| +|--------|----|----|----|----|----|----|----|----|----|----|-----|-----|-------------| +| cas 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Oui | +| cas 2 | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Non | +| cas 3 | 1 | 1 | x | x | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Oui | +| cas 4 | 1 | x | x | x | 1 | 1 | 1 | 1 | x | x | 1 | 1 | Non | + +Pour plus d'informations sur la fenêtre d'évaluation, consultez la page [Configuration du moniteur][5]. + +#### Autres options {#other-options} + +Pour des instructions sur les options d'alerte avancées (pas de données, résolution automatique), consultez la page [Configuration du moniteur][6]. + +## Notifications {#notifications} + +Pour des instructions sur la section **Configurer les notifications et les automatisations**, consultez les pages [Notifications][7] et [Configuration du moniteur][8]. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/monitors/create +[2]: /fr/dashboards/querying/#advanced-graphing +[3]: /fr/monitors/guide/as-count-in-monitor-evaluations/ +[5]: /fr/monitors/configuration/?tab=thresholdalert#evaluation-window +[6]: /fr/monitors/configuration/#advanced-alert-conditions +[7]: /fr/monitors/notify/ +[8]: /fr/monitors/configuration/?tab=thresholdalert#configure-notifications-and-automations \ No newline at end of file diff --git a/content/fr/network_monitoring/devices/snmp_metrics.md b/content/fr/network_monitoring/devices/snmp_metrics.md new file mode 100644 index 00000000000..e91fcbe0e9c --- /dev/null +++ b/content/fr/network_monitoring/devices/snmp_metrics.md @@ -0,0 +1,233 @@ +--- +further_reading: +- link: /network_monitoring/devices/profiles + tag: Documentation + text: Utiliser des profils avec le Network Device Monitoring +- link: https://www.datadoghq.com/knowledge-center/network-monitoring/snmp-monitoring/ + tag: Centre de connaissances + text: Présentation de la surveillance SNMP +- link: https://www.datadoghq.com/blog/monitor-snmp-with-datadog/ + tag: Blog + text: Surveiller des périphériques SNMP avec Datadog +title: Métriques SNMP +--- +## Installation {#installation} + +La surveillance des dispositifs réseau repose sur l'intégration SNMP incluse dans le package [Datadog Agent][1] et prend en charge les trois versions de SNMP : `SNMPv1`, `SNMPv2` et `SNMPv3`. Lors de la découverte, le port SNMP (par défaut 161) est interrogé. Un dispositif est considéré comme découvert s'il y a une réponse et un profil correspondant. + +## Pré-requis {#pre-requisites} + +Agent v7.32+ + +## Comment cela fonctionne {#how-it-works} + +Le diagramme suivant illustre les ports et protocoles par défaut entre le Datadog Agent et le dispositif surveillé. Pour les métriques SNMP, le Datadog Agent interroge les dispositifs avec l'Autodécouverte ou en fonction de la configuration manuelle de l'adresse IP du dispositif. Le Datadog Agent, configuré avec NDM et déployé sur site ou dans le cloud, consolide toutes les données collectées sur les dispositifs et le réseau de votre infrastructure et les envoie à Datadog via HTTPS sur le port `443`. Cela fournit une observabilité unifiée et complète des métriques, des journaux, des traces, des moniteurs et des tableaux de bord. + +{{< img src="/network_device_monitoring/snmp/snmp_device_polling.png" alt="Diagramme NDM montrant le flux pour l'interrogation des dispositifs SNMP." style="width:90%;" >}} + +## Prochaines étapes {#next-steps} + +Suivez les instructions ci-dessous pour configurer Datadog afin de collecter des métriques SNMP à partir de vos dispositifs réseau. + +## Configuration {#configuration} + +La fonction Network Device Monitoring de Datadog permet de recueillir des métriques à partir de périphériques individuels, ou de découvrir automatiquement les périphériques (adresses IP uniques) sur un sous-réseau entier. + +Choisissez la stratégie de collecte à utiliser en fonction du nombre de périphériques présents sur votre réseau et du degré de dynamisme de celui-ci (c'est-à-dire la fréquence à laquelle des périphériques sont ajoutés ou retirés) : + +[Surveillance des dispositifs individuels](#monitoring-individual-devices) +: Pour les petits réseaux, principalement statiques. + +[Autodécouverte](#autodiscovery) +: Pour les réseaux plus grands ou dynamiques. + +Quelle que soit la stratégie de collecte utilisée, tirez parti des [profils de périphériques mappés avec un sysObjectID](#profils-de-peripheriques-mappes-avec-un-sysobjectid) de Datadog pour recueillir automatiquement les métriques pertinentes à partir de vos périphériques. + +### Surveillance des dispositifs individuels {#monitoring-individual-devices} + +Pour surveiller des périphériques individuels : + +- Incluez l'adresse IP et les métadonnées supplémentaires des dispositifs (sous forme d'étiquettes) dans le fichier `snmp.d/conf.yaml` dans le dossier `conf.d/` à la racine de votre [répertoire de configuration de l'Agent][3]. Consultez le [exemple snmp.d/conf.yaml][4] pour toutes les options de configuration disponibles. + +{{< tabs >}} +{{% tab "SNMPv2" %}} + +- Pour SNMPv2, configurez une instance en spécifiant l'adresse IP et la _chaîne de communauté_ du dispositif : + + ```yaml + init_config: + loader: core # use core check implementation of SNMP integration. recommended + use_device_id_as_hostname: true # recommended + instances: + - ip_address: '1.2.3.4' + community_string: 'sample-string' # enclose with single quote + tags: + - 'key1:val1' + - 'key2:val2' + ``` + +{{% /tab %}} +{{% tab "SNMPv3" %}} + +- Pour SNMPv3, configurez une instance en spécifiant l'adresse IP et les identifiants SNMPv3 du dispositif (selon le cas), par exemple : `user`, `authProtocol`, `authKey`, `privProtocol` et `privKey` : + + ```yaml + init_config: + loader: core # use core check implementation of SNMP integration. recommended + use_device_id_as_hostname: true # recommended + instances: + - ip_address: '1.2.3.4' + snmp_version: 3 # optional, if omitted which version of SNMP you are using is auto-detected + user: 'user' + authProtocol: 'SHA256' # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512 + authKey: 'fakeKey' # enclose with single quote + privProtocol: 'AES256' # choices: DES, AES, AES192, AES192C, AES256, AES256C + privKey: 'fakePrivKey' # enclose with single quote + tags: + - 'key1:val1' + - 'key2:val2' + ``` + +{{% /tab %}} +{{< /tabs >}} + +- [Redémarrez l'Agent][5]. + +Après la configuration, le Datadog Agent collecte des métriques pertinentes en associant vos dispositifs à l'un des [profils d'appareils pris en charge par Datadog][6]. + +Pour élargir votre configuration : + +* Ajoutez plus d'instances pour collecter des métriques à partir de plus de dispositifs sur votre réseau. +* Utilisez [l'Autodécouverte](#autodiscovery) si vous devez collecter des métriques à partir de nombreux dispositifs sur un réseau dynamique. + +### Autodécouverte {#autodiscovery} + +Une alternative à la spécification de dispositifs individuels est d'utiliser l'Autodécouverte pour découvrir automatiquement tous les dispositifs sur votre réseau. + +L'Autodécouverte interroge chaque IP du sous-réseau configuré et vérifie la réponse du dispositif. Ensuite, le Datadog Agent recherche le `sysObjectID` du dispositif découvert et le mappe à l'un des [profils d'appareils pris en charge par Datadog][6]. Les profils contiennent des listes de métriques prédéfinies à collecter pour divers types de dispositifs. + +Pour utiliser Autodiscovery avec la fonction Network Device Monitoring : + +1. Installez ou mettez à niveau l'Agent Datadog vers v7.27+. Pour des instructions spécifiques à la plateforme, consultez la documentation de l'[Agent Datadog][7]. + +2. Modifiez le fichier de configuration de l'Agent [`datadog.yaml`][8] pour inclure tous les sous-réseaux que Datadog doit analyser. L'exemple de configuration suivant indique les paramètres obligatoires, les valeurs par défaut et des exemples pour Autodiscovery. + +3. En option, activez la [dé-duplication][11] des dispositifs lors de l'Autodécouverte de l'Agent. Cette fonctionnalité est désactivée par défaut et nécessite la version de l'Agent `7.67+`. + + ```yaml + network_devices: + autodiscovery: + use_deduplication: true + ``` + +{{< tabs >}} +{{% tab "SNMPv2" %}} + +```yaml +network_devices: + autodiscovery: + ## use_deduplication - boolean - optional - default: false + workers: 100 # number of workers used to discover devices concurrently + discovery_interval: 3600 # interval between each autodiscovery in seconds + loader: core # use core check implementation of SNMP integration. recommended + use_device_id_as_hostname: true # recommended + configs: + - network_address: 10.10.0.0/24 # CIDR subnet + loader: core + snmp_version: 2 + port: 161 + community_string: '***' # enclose with single quote + tags: + - "key1:val1" + - "key2:val2" + - network_address: 10.20.0.0/24 + loader: core + snmp_version: 2 + port: 161 + community_string: '***' + tags: + - "key1:val1" + - "key2:val2" +``` + +{{% /tab %}} + +{{% tab "SNMPv3" %}} + +```yaml +network_devices: + autodiscovery: + ## use_deduplication - boolean - optional - default: false + workers: 100 # number of workers used to discover devices concurrently + discovery_interval: 3600 # interval between each autodiscovery in seconds + loader: core # use core check implementation of SNMP integration. recommended + use_device_id_as_hostname: true # recommended + configs: + - network_address: 10.10.0.0/24 # CIDR subnet + snmp_version: 3 + user: 'user' + authProtocol: 'SHA256' # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512 + authKey: 'fakeKey' # enclose with single quote + privProtocol: 'AES256' # choices: DES, AES, AES192, AES192C, AES256, AES256C + privKey: 'fakePrivKey' # enclose with single quote + tags: + - 'key1:val1' + - 'key2:val2' + - network_address: 10.20.0.0/24 + snmp_version: 3 + user: 'user' + authProtocol: 'SHA256' + authKey: 'fakeKey' + privProtocol: 'AES256' + privKey: 'fakePrivKey' + tags: + - 'key1:val1' + - 'key2:val2' +``` + +{{% /tab %}} +{{< /tabs >}} + +**Remarque** : L'Agent Datadog configure automatiquement la vérification SNMP avec chacune des adresses IP découvertes. Un dispositif découvert est une adresse IP qui répond avec succès lorsqu'elle est interrogée via SNMP. + +**Remarque** : Assurez-vous d'utiliser l'Agent 7.54 ou une version ultérieure pour cette syntaxe. Pour les versions précédentes, consultez le [config_template.yaml précédent][9]. + +### Remplacer la vitesse de l'interface {#override-interface-speed} + +Par défaut, la vérification SNMP rapporte la vitesse de l'interface telle que détectée par le dispositif. Si la vitesse du port physique diffère de la bande passante réelle du circuit, par exemple, un port physique de 1 Gbps provisionné pour un circuit de 50 Mbps, vous pouvez remplacer la vitesse entrante et sortante pour des interfaces spécifiques en utilisant `interface_configs`. + +Ajoutez `interface_configs` à la configuration de votre instance dans `snmp.d/conf.yaml` : + +```yaml +instances: + - ip_address: '1.2.3.4' + community_string: 'sample-string' + interface_configs: + - match_field: name # match by interface name or ifIndex + match_value: eth0 # case-sensitive + in_speed: 50000000 # inbound speed in bytes per second (50 Mbps) + out_speed: 50000000 # outbound speed in bytes per second (50 Mbps) +``` + +Pour toutes les options disponibles `interface_configs`, consultez le [exemple snmp.d/conf.yaml][4]. + +## Validation {#validation} + +[Exécutez la sous-commande d'état de l'Agent][10] et recherchez `snmp` dans la section Vérifications. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /fr/network_monitoring/devices/profiles#sysoid-mapped-devices +[3]: /fr/agent/configuration/agent-configuration-files/#agent-configuration-directory +[4]: https://github.com/DataDog/integrations-core/blob/master/snmp/datadog_checks/snmp/data/conf.yaml.example +[5]: /fr/agent/configuration/agent-commands/?tab=agentv6v7#start-stop-and-restart-the-agent +[6]: https://docs.datadoghq.com/fr/network_monitoring/devices/supported_devices +[7]: /fr/agent +[8]: /fr/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[9]: https://github.com/DataDog/datadog-agent/blob/51dd4482466cc052d301666628b7c8f97a07662b/pkg/config/config_template.yaml#L855 +[10]: /fr/agent/configuration/agent-commands/#agent-status-and-information +[11]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/config_template.yaml#L4036 \ No newline at end of file diff --git a/content/fr/network_monitoring/network_path/setup.md b/content/fr/network_monitoring/network_path/setup.md new file mode 100644 index 00000000000..41c62a17ee6 --- /dev/null +++ b/content/fr/network_monitoring/network_path/setup.md @@ -0,0 +1,623 @@ +--- +description: Configuration du chemin réseau +further_reading: +- link: https://www.datadoghq.com/blog/datadog-network-path-monitoring/ + tag: Blog + text: Obtenez une visibilité de bout en bout sur le réseau avec le chemin réseau + et la surveillance SD-WAN +- link: /network_monitoring/cloud_network_monitoring/guide/detecting_application_availability/ + tag: Guide + text: Détection de la disponibilité des applications à l'aide de Network Insights +- link: /network_monitoring/network_path/guide/traceroute_variants/ + tag: Guide + text: Variantes de traceroute du chemin réseau +is_beta: true +title: Implémentation +--- +## Aperçu {#overview} + +La configuration du chemin réseau implique de configurer votre environnement pour surveiller et tracer les routes réseau entre vos services et points de terminaison. Cela aide à identifier les goulets d'étranglement, les problèmes de latence et les points de défaillance potentiels dans votre infrastructure réseau. Le chemin réseau vous permet de configurer manuellement des chemins réseau individuels, de les découvrir automatiquement ou d'utiliser les deux méthodes simultanément, en fonction de vos besoins. + +**Remarque** : Si votre configuration réseau restreint le trafic sortant, suivez les instructions de configuration dans la documentation [Agent proxy configuration][2]. + +## Configuration {#setup} + +
    Cette page couvre la configuration du chemin réseau pour la configuration basée sur l'Agent dans la surveillance réseau. Pour créer des tests de chemin réseau dans la surveillance synthétique, voir Tests de chemin réseau dans la surveillance synthétique.
    + +Datadog fournit deux méthodes de collecte basées sur l'Agent. Vous pouvez utiliser l'une ou l'autre méthode seule ou combiner les deux : + +| Méthode | Quand utiliser | +|--------|-------------| +| **[Tests programmés ](#scheduled-tests)** | Surveillez des paires source-destination spécifiques que vous définissez dans la configuration de l'Agent. Idéal pour suivre un ensemble connu de points de terminaison, tels que des API critiques ou des services partenaires. | +| **[Tests dynamiques ](#dynamic-tests)** | Découvrez et surveillez automatiquement les chemins en fonction du trafic observé par [Cloud Network Monitoring][1]. Idéal pour une visibilité large sans lister manuellement chaque destination. | + +### Tests programmés {#scheduled-tests} + +Vous pouvez surveiller des chemins réseau spécifiques en les définissant dans le fichier de configuration de l'Agent situé à `/etc/datadog-agent/conf.d/network_path.d/conf.yaml`. + +Pour commencer, copiez la [configuration d'exemple][5], supprimez l'extension `.example` et mettez-la à jour avec vos paramètres souhaités, ou utilisez l'une des configurations spécifiques à l'environnement ci-dessous. Pour optimiser les performances dans de grands environnements, consultez [augmenter le nombre de workers](#increase-the-number-of-workers). + +{{< tabs >}} +{{% tab "Linux" %}} + +L'Agent `v7.59+` est requis. + +1. Activez le module `system-probe` traceroute dans `/etc/datadog-agent/system-probe.yaml` en ajoutant ce qui suit : + + ``` + traceroute: + enabled: true + ``` + +2. Activez `network_path` pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier `/etc/datadog-agent/conf.d/network_path.d/conf.yaml` : + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + + ``` + +3. Redémarrez l'Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau. + +{{% /tab %}} +{{% tab "macOS" %}} + +L'Agent `v7.75+` est requis. + +1. Activez le module `system-probe` traceroute dans `/opt/datadog-agent/etc/system-probe.yaml` en ajoutant ce qui suit : + + ``` + traceroute: + enabled: true + ``` + +2. Activez `network_path` pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier `/opt/datadog-agent/etc/conf.d/network_path.d/conf.yaml` : + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + + ``` + +3. Redémarrez l'Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau. + +{{% /tab %}} +{{% tab "Windows" %}} + +L'Agent `v7.72+` est requis. + +1. Activez le module `system-probe` traceroute dans `%ProgramData%\Datadog\system-probe.yaml` en ajoutant ce qui suit : + + ``` + traceroute: + enabled: true + ``` + +2. Activez `network_path` pour surveiller de nouvelles destinations depuis cet Agent en créant ou en modifiant le fichier `%ProgramData%\Datadog\conf.d\network_path.d\conf.yaml` : + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack, syn_socket (Windows only) + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: TCP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + ``` + + 3. Redémarrez l'Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau. + +{{% /tab %}} +{{% tab "Helm" %}} + +L'Agent `v7.59+` est requis. + +
    La version du chart Helm v3.109.1+ est requise. Pour plus d'informations, consultez la documentation du chart Helm Datadog et la documentation pour Kubernetes et les Intégrations.
    + +Pour activer le chemin réseau avec Kubernetes en utilisant Helm, ajoutez ce qui suit à votre fichier `values.yaml`. + + ```yaml + datadog: + traceroute: + enabled: true + confd: + network_path.yaml: |- + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + +``` + +{{% /tab %}} +{{% tab "Autodiscovery (Kubernetes)" %}} +Datadog Autodiscovery allows you to enable Network Path on a per-service basis through Kubernetes annotations. + +
    Helm chart v3.109.1+ is required. For more information, see the Datadog Helm Chart documentation.
    + +1. Enable the traceroute module in the Datadog `values.yaml` file, which the Network Path integration depends on. + + ```yaml + datadog: + traceroute: + enabled: true + +2. After the module is enabled, Datadog automatically detects Network Path annotations added to your Kubernetes pod. For more information, see [Kubernetes and Integrations][2]. + + ```yaml + apiVersion: v1 + kind: Pod + # (...) + metadata: + name: '' + annotations: + ad.datadoghq.com/.checks: | + { + "network_path": { + "init_config": { + "min_collection_interval": 300 + }, + "instances": [ + { + "protocol": "TCP", + "port": 443, + "source_service": "", + "tags": [ + "tag_key:tag_value", + "tag_key2:tag_value2" + ], + "hostname": "api.datadoghq.eu" + }, + { + "protocol": "UDP", + "source_service": "", + "tags": [ + "tag_key:tag_value", + "tag_key2:tag_value2" + ], + "hostname": "1.1.1.1" + }, + ] + } + } + # (...) + spec: + containers: + - name: '' + # (...) + ``` + If you define pods indirectly (with deployments, ReplicaSets, or ReplicationControllers), add pod annotations under `spec.template.metadata`. + +[1]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/README.md#enabling-system-probe-collection +[2]: https://docs.datadoghq.com/fr/containers/kubernetes/integrations/?tab=annotations#configuration + +{{% /tab %}} +{{< /tabs >}} + +#### Increase the number of workers + +Network Path monitoring for individual paths runs as an Agent Integration. The number of concurrent workers is controlled by the `check_runners` setting in the `datadog.yaml` file. + +To increase the number of workers, add the following configuration to your `datadog.yaml` file: + +```yaml +## @param check_runners - integer - optional - default: 4 +## @env DD_CHECK_RUNNERS - integer - optional - default: 4 +## The `check_runners` refers to the number of concurrent check runners available for check instance execution. +## The scheduler attempts to spread the instances over the collection interval and will _at most_ be +## running the number of check runners instances concurrently. +## +## The level of concurrency has effects on the Agent's: RSS memory, CPU load, resource contention overhead, etc. +# +check_runners: +``` + +### Dynamic tests + +**Prerequisites**: [CNM][1] must be enabled. + +Configure dynamic tests to allow the Agent to automatically discover and monitor network paths based on actual network traffic, eliminating the need to manually configure individual endpoints. See [filter syntax](#filter-syntax) to include/exclude domain or IPs. + +{{< tabs >}} +{{% tab "Linux" %}} + +L'Agent `v7.73+` est requis. + +1. Activez le module `system-probe` traceroute dans `/etc/datadog-agent/system-probe.yaml` en ajoutant ce qui suit : + + ```yaml + traceroute: + enabled: true + ``` + +2. Activez `network_path` pour surveiller les connexions CNM en créant ou en modifiant le fichier `/etc/datadog-agent/datadog.yaml` : + + ```yaml + network_path: + connections_monitoring: + enabled: true + # collector: + # workers: # default 4 + ``` + + For full configuration details, reference the [example config][3], or use the following: + + ```yaml + network_path: + connections_monitoring: + ## @param enabled - bool - required - default:false + ## Enable network path collection + # + enabled: true + collector: + ## @param workers - int - optional - default:4 + ## Number of workers that can collect paths in parallel + ## Recommendation: leave at default + # + # workers: # default 4 + + #@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m + # The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # pathtest_interval: 10m + + # @param pathtest_ttl - integer - optional - default: 35m + # @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + # The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + # The TTL is reset each time the connection is seen again. + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + + ``` + +3. Redémarrez l'Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau. + +[3]: https://github.com/DataDog/datadog-agent/blob/2c8d60b901f81768f44a798444af43ae8d338843/pkg/config/config_template.yaml#L1731 + +{{% /tab %}} +{{% tab "Windows" %}} + +L'Agent `v7.73+` est requis. + +1. Activez le module `system-probe` traceroute dans `%ProgramData%\Datadog\system-probe.yaml` en ajoutant ce qui suit : + + ```yaml + traceroute: + enabled: true + ``` + +2. Activez `network_path` pour surveiller les connexions CNM en créant ou en modifiant le fichier `%ProgramData%\Datadog\datadog.yaml` : + + ```yaml + network_path: + connections_monitoring: + enabled: true + # collector: + # workers: # default 4 + ``` + + For full configuration details, reference the [example config][3], or use the following: + + ```yaml + network_path: + connections_monitoring: + ## @param enabled - bool - required - default:false + ## Enable network path collection + # + enabled: true + collector: + ## @param workers - int - optional - default:4 + ## Number of workers that can collect paths in parallel + ## Recommendation: leave at default + # + # workers: # default 4 + + #@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m + # The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # pathtest_interval: 10m + + # @param pathtest_ttl - integer - optional - default: 35m + # @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + # The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + # The TTL is reset each time the connection is seen again. + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + ``` + +3. Redémarrez l'Agent après avoir effectué ces modifications de configuration pour commencer à voir les chemins réseau. + +[3]: https://github.com/DataDog/datadog-agent/blob/2c8d60b901f81768f44a798444af43ae8d338843/pkg/config/config_template.yaml#L1731 + +{{% /tab %}} +{{% tab "Helm" %}} + +L'Agent `v7.73+` est requis. + +Pour activer le chemin réseau avec Kubernetes en utilisant Helm, ajoutez ce qui suit à votre fichier `values.yaml`. +**Remarque :** La version du chart Helm v3.124.0+ est requise. Pour plus d'informations, consultez la [documentation du chart Helm Datadog][1] et la documentation pour [Kubernetes et les Intégrations][2]. + +```yaml +datadog: + networkPath: + connectionsMonitoring: + enabled: true + ## Set to true to enable the Traceroute Module of the System Probe + traceroute: + enabled: true + + ## @param collector - custom object - optional + ## Configuration related to Network Path Collector. + # + collector: + ## @param workers - integer - optional - default: 4 + ## @env DD_WORKERS - integer - optional - default: 4 + ## The `workers` refers to the number of concurrent workers available for network path execution. + # + # workers: 4 + + ## @param pathtest_interval - integer - optional - default: 35m + ## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 30m + ## The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # + # pathtest_interval: 30m + + ## @param pathtest_ttl - integer - optional - default: 35m + ## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + ## The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + ## The TTL is reset each time the connection is seen again. + # + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + +``` +[1]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/README.md +[2]: https://docs.datadoghq.com/fr/containers/kubernetes/integrations/?tab=helm#configuration + + +{{% /tab %}} +{{< /tabs >}} + +#### Syntaxe de filtrage {#filter-syntax} + +Configurez des filtres pour inclure ou exclure des domaines et des IP, vous permettant de : + +- Réduire la surcharge de surveillance pour les réseaux internes +- Se concentrer sur les modèles de trafic externes +- Exclure les plages d'infrastructure connues qui ne nécessitent pas de surveillance + +Pour inclure ou exclure des domaines spécifiques ou des plages d'IP des tests dynamiques, ajoutez ce qui suit à votre fichier `/etc/datadog-agent/datadog.yaml` : + +```yaml +network_path: + connections_monitoring: + enabled: true + collector: + filters: + # exclude single domain + - match_domain: 'api.slack.com' + type: exclude + + # exclude domain using `*` wildcard + - match_domain: '*.datadoghq.com' # this translates to regex '.*\.datadoghq\.com + type: exclude + - match_domain: '*.zoom.us' + match_domain_strategy: wildcard # use simple wildcard matching (wildcard matching is the default) + type: exclude + + # exclude single IP or using CIDR notation + - match_ip: 10.10.10.10 + type: exclude + - match_ip: 10.20.0.0/24 + type: exclude + + # exclude using regex + - match_domain: '.*\.zoom\.us' + match_domain_strategy: regex # use regex matching strategy + type: exclude + + # include + - match_domain: 'api.datadoghq.com' + type: include +``` + +**Remarque**: +Les filtres sont appliqués de manière séquentielle, les filtres ultérieurs ayant la priorité sur les précédents. + +Par exemple, tous les domaines correspondant à `*.datadoghq.com` sont ignorés, sauf `api.datadoghq.com`. + +```yaml +network_path: + collector: + filters: + - match_domain: '*.datadoghq.com' + type: exclude + - match_domain: 'api.datadoghq.com' + type: include +``` + +### Résolution de l'IP publique source {#source-public-ip-resolution} + +
    La résolution de l'IP publique source est disponible dans l'Agent v7.75+.
    + +Le chemin réseau résout l'adresse IP publique de l'hôte source pour fournir une visualisation précise du chemin pour le trafic sortant vers Internet. L'Agent contacte des services de vérification d'IP externes via HTTPS pour déterminer l'IP publique de l'hôte. + +Cette fonctionnalité n'est **pas requise** pour le bon fonctionnement du chemin réseau. Si ces services sont inaccessibles, le chemin réseau continue de fonctionner normalement, mais l'IP publique source n'est pas résolue et les visualisations de chemin ne montrent pas les métadonnées de l'IP source. + +Si votre réseau restreint le trafic sortant et que vous souhaitez la résolution de l'IP publique source, ajoutez les URL suivantes à votre liste blanche de pare-feu : + +| URL | Fournisseur | +|-----|----------| +| `https://icanhazip.com` | Cloudflare | +| `https://ipinfo.io/ip` | IPinfo | +| `https://checkip.amazonaws.com` | Amazon | +| `https://api.ipify.org` | ipify | +| `https://whatismyip.akamai.com` | Akamai | + +L'Agent essaie chaque service dans l'ordre et utilise la première réponse réussie. Toutes les requêtes sont effectuées via HTTPS (port 443). + +## Dépannage {#troubleshooting} + +Utilisez les directives suivantes pour résoudre les problèmes liés au chemin réseau. Si vous avez besoin d'aide supplémentaire, contactez [Datadog Support][3]. + +### Aucune donnée de chemin réseau dans l'interface utilisateur {#no-network-path-data-in-the-ui} + +Si aucune donnée n'apparaît dans l'interface utilisateur [Network Path][4], la fonctionnalité peut ne pas être entièrement activée. Le chemin réseau nécessite ce qui suit : + +1. Le module traceroute doit être activé dans votre fichier `system-probe.yaml` : + + ```yaml + traceroute: + enabled: true + ``` + +2. Au moins une fonctionnalité de chemin réseau doit être active, telle que : + + - [Des chemins individuels](#monitor-individual-paths) configurés via le fichier `conf.d/network_path.d`. + - Des chemins de trafic réseau [ expérimentaux](#network-traffic-paths-experimental) configurés en activant à la fois `network_path.connections_monitoring` et [Cloud Network Monitoring][1](CNM). + +### Erreur : code d'état : 404 {#error-status-code-404} + +Si vous rencontrez une erreur comme suit : + + ```text + Error: failed to trace path: traceroute request failed: Probe Path , url: , status code: 404 + ``` + + - Cela indique que le module traceroute n'est pas activé. Assurez-vous que le module traceroute est activé dans votre fichier `system-probe.yaml`. + + + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/network_monitoring/cloud_network_monitoring/setup/ +[2]: https://docs.datadoghq.com/fr/agent/configuration/proxy/?tab=linux +[3]: /fr/help +[4]: https://app.datadoghq.com/network/path +[5]: https://github.com/DataDog/datadog-agent/blob/main/cmd/agent/dist/conf.d/network_path.d/conf.yaml.example +[15]: /fr/synthetics/network_path_tests/ \ No newline at end of file diff --git a/content/fr/remote_configuration/_index.md b/content/fr/remote_configuration/_index.md new file mode 100644 index 00000000000..eee092da2ed --- /dev/null +++ b/content/fr/remote_configuration/_index.md @@ -0,0 +1,213 @@ +--- +algolia: + tags: + - remote config + - remote configuration +aliases: +- /fr/agent/guide/how_rc_works +- /fr/agent/guide/how_remote_config_works +- /fr/agent/remote_config +description: Configurer à distance et modifier le comportement des composants Datadog + tels que les Agents, les SDK et les Travailleurs des pipelines d'observabilité déployés + dans votre infrastructure. +further_reading: +- link: /security/application_security/how-appsec-works/#built-in-protection + tag: Documentation + text: Fonctionnement d'Application Security Monitoring +- link: /dynamic_instrumentation/?tab=configurationyaml#enable-remote-configuration + tag: Documentation + text: Instrumentation dynamique +- link: /security/workload_protection/ + tag: Documentation + text: Configuration de la protection des charges de travail +- link: https://www.datadoghq.com/blog/compliance-governance-transparency-with-datadog-audit-trail/ + tag: Blog + text: Utiliser le journal d'audit Datadog +- link: https://www.datadoghq.com/blog/remote-configuration-for-datadog/ + tag: Blog + text: Appliquer aux composants Datadog des mises à jour en temps réel grâce à la + configuration à distance +title: Configuration à distance +--- +## Aperçu {#overview} + +La configuration à distance est une fonctionnalité de Datadog qui vous permet de configurer à distance et de modifier le comportement de certaines fonctionnalités du produit dans les composants Datadog tels que les Agents, les SDK et les Travailleurs des pipelines d'observabilité déployés dans votre infrastructure. Utilisez la configuration à distance pour appliquer des configurations aux composants Datadog dans votre environnement à la demande, réduisant ainsi les coûts de gestion, diminuant les frictions entre les équipes et accélérant les temps de résolution des problèmes. + +Pour les produits de sécurité Datadog, la protection des applications et des API et la protection des charges de travail, les Agents compatibles avec la configuration à distance et les SDK compatibles fournissent des mises à jour et des réponses de sécurité en temps réel, améliorant ainsi la posture de sécurité de vos applications et de votre infrastructure cloud. + +## Comment cela fonctionne {#how-it-works} + +Lorsque la configuration à distance est activée, les composants Datadog tels que l'Agent Datadog interrogent en toute sécurité le [site Datadog][1] configuré pour les changements de configuration prêts à être appliqués. Les changements en attente sont ensuite automatiquement appliqués aux composants Datadog. Par exemple, après avoir soumis des changements de configuration dans l'interface utilisateur de Datadog pour une fonctionnalité de produit activée par la configuration à distance, les changements sont stockés dans Datadog. + +Le schéma suivant illustre le fonctionnement de la configuration à distance : + +{{Les utilisateurs configurent les fonctionnalités dans l'interface utilisateur, la configuration est stockée dans Datadog, l'Agent demande des mises à jour de configuration.}} + +1. Vous configurez certaines fonctionnalités du produit dans l'interface utilisateur de Datadog. +2. Les configurations des fonctionnalités du produit sont stockées en toute sécurité dans Datadog. +3. Les composants Datadog activés par la configuration à distance dans vos environnements interrogent en toute sécurité, reçoivent et appliquent automatiquement les mises à jour de configuration de Datadog. Les bibliothèques de traçage déployées dans vos environnements communiquent avec les Agents pour demander et recevoir des mises à jour de configuration de Datadog au lieu d'interroger directement Datadog. + +## Environnements pris en charge {#supported-environments} + +La configuration à distance fonctionne dans des environnements où des composants Datadog pris en charge sont déployés. Les composants Datadog pris en charge incluent : +- Agents +- Traceurs (indirectement) +- Travailleurs des pipelines d'observabilité +- Exécuteurs d'actions privées et services de conteneurs sans serveur tels qu'AWS Fargate. + +La configuration à distance ne prend pas en charge les applications gérées par des conteneurs sans serveur, telles qu'AWS App Runner, Azure Container Apps, Google Cloud Run ; ou les fonctions déployées sous forme de conteneur, telles qu'AWS Lambda, Azure Functions et Google Cloud Functions. + +## Produits et fonctionnalités pris en charge {#supported-products-and-features} + +Les produits et fonctionnalités suivants sont pris en charge avec la configuration à distance. + +Fleet Automation +: - [Envoyer des flares][27] directement depuis le site Datadog. Dépannez l’Agent Datadog sans avoir besoin d’accéder directement à l’hôte. +: - [Mettez à niveau vos Agents][29]. + +Protection des applications et des API (AAP) +: - [Activation AAP en 1 clic][33]: Activez AAP en 1 clic depuis l'interface utilisateur de Datadog. +: - [Mises à jour des modèles d'attaque en application][34]: Recevez automatiquement les nouveaux modèles d'attaque du pare-feu d'application Web (WAF) dès que Datadog les publie, suivant les vulnérabilités ou vecteurs d'attaque nouvellement divulgués. +: - [Protéger][34]: Bloquez les adresses IP des attaquants, les utilisateurs authentifiés et les demandes suspectes signalées dans les Signaux de sécurité et les Traces AAP temporairement ou définitivement via l'interface utilisateur de Datadog. + +Application Security Monitoring (APM) +: - Configuration à l'exécution: Modifiez le taux d'échantillonnage des traces d'un service, l'activation de l'injection de journaux et les balises d'en-tête HTTP depuis l'interface Catalog, sans avoir à redémarrer le service. Lisez [Configuration à l'exécution][22] pour plus d'informations. +: - [Définir à distance le taux d'échantillonnage de l'Agent][35]: Configurez à distance l'Agent Datadog pour modifier ses taux d'échantillonnage de traces et définissez des règles pour adapter l'ingestion des traces de votre organisation selon vos besoins, sans avoir besoin de redémarrer votre Agent Datadog. + +[Instrumentation dynamique][36] +: - Envoyez des métriques critiques, des traces et des journaux de vos applications en direct sans modifications de code. + +Protection des charges de travail +: - Mises à jour automatiques des règles par défaut de l'Agent : Recevez et mettez à jour automatiquement les règles par défaut de l'Agent maintenues par Datadog à mesure que de nouvelles détections et améliorations de l'Agent sont publiées. Consultez [Configuration de la protection des charges de travail][3] pour plus d'informations. +- Déploiement automatique de règles d'Agent personnalisées : Déployez automatiquement vos règles d'Agent personnalisées sur des hôtes désignés (tous les hôtes ou un sous-ensemble défini d'hôtes). + +Pipelines d'observabilité +- Déployez et mettez à jour à distance les [Travailleurs des Pipelines d'Observabilité][4] (OPW) : Créez et modifiez des pipelines dans l'interface utilisateur de Datadog, déployant vos modifications de configuration sur les instances OPW fonctionnant dans votre environnement. + +[Mise à l'échelle automatique][47] +- Gérez à distance les configurations de mise à l'échelle des clusters et des charges de travail pour vos environnements conteneurisés. Consultez [Mise à l'échelle automatique][47] pour plus d'informations. + +Exécuteur d'actions privé +- Exécutez des workflows et des applications Datadog qui interagissent avec des services hébergés sur votre réseau privé sans exposer vos services à l'Internet public. Pour plus d'informations, consultez [Actions Privées][30]. + +Drapeaux de fonctionnalités +- Fournissez des configurations de drapeaux (règles de ciblage et d'attribution) aux SDK côté serveur pour une attribution de variante synchrone basée sur le contexte d'évaluation. Consultez [Drapeaux de fonctionnalités][48] pour plus d'informations. + +## Considérations de sécurité {#security-considerations} + +Datadog a mis en place les mécanismes suivants pour protéger la confidentialité, l'intégrité et la disponibilité des configurations récupérées et appliquées par vos composants Datadog : + +- Les composants Datadog activés pour la configuration à distance déployés dans votre infrastructure demandent des configurations à Datadog. +
    Certains composants comme les exécuteurs d'actions privés sont toujours activés pour la configuration à distance. D'autres, comme les Agents, peuvent être activés ou désactivés à l'aide d'options de configuration sur disque.
    +- Datadog n'envoie jamais de modifications de configuration à moins qu'elles ne soient demandées par des composants Datadog. S'il envoie des modifications de configuration, Datadog n'envoie que les modifications pertinentes pour le composant demandeur. +- Les demandes de configuration sont initiées depuis votre infrastructure vers Datadog via HTTPS (port 443). C'est le même port que l'Agent utilise par défaut pour envoyer des données d'observabilité. +- La communication entre vos composants Datadog et Datadog est chiffrée à l'aide de HTTPS et est authentifiée et autorisée à l'aide de votre clé API Datadog, sauf dans le cas des exécuteurs d'actions privés où un jeton JWT est utilisé à la place. +- Seuls les utilisateurs disposant de la permission [`api_keys_write`][5] sont autorisés à activer ou désactiver la capacité de configuration à distance sur les clés API et à utiliser les fonctionnalités de produit prises en charge. +- Les modifications de configuration soumises via l'interface utilisateur de Datadog sont signées et validées par le composant Datadog demandeur, vérifiant ainsi l'intégrité de la configuration. + +### Accès basé sur les rôles {#role-based-access} + +L'activation de la Configuration à Distance impacte les produits suivants. Chaque produit définit un ensemble de contrôles d'accès basés sur les rôles qui doivent être accordés à leurs utilisateurs. Pour des informations générales sur la gestion des accès, voir [Contrôle d'Accès][37]. + + | Produit avec Configuration à Distance Activée | Contrôles d'Accès Basés sur les Rôles | + |----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Fleet Automation | `FLEET_POLICIES_WRITE`
    `AGENT_UPGRADE_WRITE`
    `FLEET_FLARE`

    Pour plus d'informations, voir [Fleet Automation][38]. | + | App and API Protection | `APPSEC_ACTIVATION_READ`
    `APPSEC_ACTIVATION_WRITE`
    `APPSEC_PROTECT_READ`
    `APPSEC_PROTECT_WRITE`

    Pour plus d'informations, voir [Access Control][39]. | + | APM | `APM_SERVICE_INGEST_READ`
    `APM_SERVICE_INGEST_WRITE`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    Pour plus d'informations, voir [Échantillonnage Adaptatif][40]. | + | Dynamic Instrumentation | `DEBUGGER_READ`
    `DEBUGGER_WRITE`
    `DEBUGGER_WRITE_PRE_PROD`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    Pour plus d'informations, voir [APM][41]. | + | Workload Protection | `SECURITY_MONITORING_CWS_AGENT_RULES_WRITE`
    `SECURITY_MONITORING_CWS_AGENT_RULES_READ`
    `SECURITY_MONITORING_CWS_AGENT_RULES_ACTIONS`

    Pour plus d'informations, voir [Security][42]. | + | CSM Side Scanning | `ORG_MANAGEMENT`
    `MANAGE_INTEGRATIONS`

    Pour plus d'informations, voir [Enable Agentless Scanning][43]. | + | Observability Pipelines | `OBSERVABILITY_PIPELINES_READ`
    `OBSERVABILITY_PIPELINES_WRITE`
    `OBSERVABILITY_PIPELINES_DELETE`
    `OBSERVABILITY_PIPELINES_DEPLOY`
    `OBSERVABILITY_PIPELINES_CAPTURE_WRITE`
    `OBSERVABILITY_PIPELINES_CAPTURE_READ`

    Pour plus d'informations, voir [Observability Pipelines][44]. | + | Private Action Runner | `ON_PREM_RUNNER_WRITE`
    `ON_PREM_RUNNER_READ`
    `ON_PREM_RUNNER_USE`

    Pour plus d'informations, voir [App Builder & Workflow Automation][45]. | + | Network Device Monitoring (NDM) | `NDM_DEVICE_PROFILES_VIEW`
    `NDM_DEVICE_PROFILES_EDIT` | + | Container Autoscaling | `ORCHESTRATION_AUTOSCALING_MANAGE`
    `ORCHESTRATION_WORKLOAD_SCALING_WRITE`
    `ORCHESTRATION_WORKLOAD_SCALING_READ` | + | Serverless Lambda Auto-instrumentation | `SERVERLESS_AWS_INSTRUMENTATION_READ`
    `SERVERLESS_AWS_INSTRUMENTATION_WRITE`

    Pour plus d'informations, voir [Serverless][46]. | + | Feature Flags | `FEATURE_FLAG_CONFIG_READ`
    `FEATURE_FLAG_CONFIG_WRITE`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_READ`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_WRITE`

    Pour plus d'informations, voir [Feature Flags][48]. | + +## Enable Remote Configuration {#enable-remote-configuration} + +Dans la plupart des cas, Remote Configuration est activé par défaut pour votre organisation. Vous pouvez vérifier si Remote Configuration est activé pour votre organisation depuis la page des paramètres de [Remote Configuration][8]. Si vous devez l'activer : +1. Assurez-vous que vos autorisations RBAC incluent [`org_management`][7], afin de pouvoir activer Remote Configuration pour votre organisation. +1. Depuis la page des paramètres de votre organisation, activez [Remote Configuration][8]. Cela permet aux composants Datadog de votre organisation de recevoir des configurations depuis Datadog. +1. Suivez les instructions de configuration [spécifiques au produit](#product-specific-configuration) ci-dessous pour terminer la configuration de Remote Configuration. + +### Configuration spécifique au produit {#product-specific-configuration} + +Consultez la documentation ci-dessous pour des instructions spécifiques au produit que vous configurez. + +| Produit | Instructions de configuration | +|-------------------------|----------------------------------------------------------------------------------------------------------------| +| Fleet Automation | [Setup Fleet Automation][31] | +| APM | [Configuration à l'exécution](/tracing/guide/remote_config/) | +| Dynamic Instrumentation | [Commencez avec Dynamic Instrumentation](/dynamic_instrumentation/#getting-started) | +| Workload Protection | [Workload Protection][3] | +| Pipelines d'observabilité | Assurez-vous que vous avez [activé Remote Configuration sur la clé API][32] que vous utilisez pour les pipelines d'observabilité. | +| Sensitive Data Scanner | [Cloud storage](/security/sensitive_data_scanner/setup/cloud_storage/?tab=newawsaccount) | +| Private Action Runner | [Private Actions Overview](/actions/private_actions/) | +| Feature Flags | [Server-Side Feature Flags](/feature_flags/server/) | + +## Meilleures pratiques {#best-practices} + +### Datadog Audit Trail {#datadog-audit-trail} + +Utilisez [Datadog Audit Trail][13] pour surveiller l'accès à l'organisation et les événements liés à Remote Configuration activée. Audit Trail permet à vos administrateurs et équipes de sécurité de suivre la création, la suppression et la modification des clés API et des clés d'application Datadog. Une fois Datadog Audit Trail configuré, vous pouvez consulter les événements liés aux fonctionnalités Remote Configuration activées et voir qui a demandé ces changements. Datadog Audit Trail vous permet de reconstruire des séquences d'événements et d'établir une surveillance robuste de Datadog pour Remote Configuration. + +### Monitors {#monitors} + +Configurez des [monitors][14] pour recevoir des notifications lorsqu'un événement intéressant se produit. + +## Se désinscrire de Remote Configuration {#opting-out-of-remote-configuration} + +Au lieu de désactiver Remote Configuration globalement, Datadog recommande de se désinscrire pour des produits Datadog spécifiques. Pour plus d'informations, consultez [la documentation du produit concerné](#product-specific-configuration). + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/getting_started/site/ +[3]: /fr/security/workload_protection/ +[4]: /fr/observability_pipelines/#observability-pipelines-worker +[5]: /fr/account_management/rbac/permissions#api-and-application-keys +[6]: /fr/security/application_security/threats/setup/compatibility/ +[7]: /fr/account_management/rbac/permissions#access-management +[8]: https://app.datadoghq.com/organization-settings/remote-config +[9]: /fr/security/default_rules/#cat-workload-security +[10]: /fr/tracing/trace_pipeline/ingestion_controls/#managing-ingestion-for-all-services-at-the-agent-level +[11]: /fr/dynamic_instrumentation/?tab=configurationyaml#enable-remote-configuration +[12]: /fr/security/application_security/how-appsec-works/#built-in-protection +[13]: /fr/account_management/audit_trail +[14]: /fr/monitors/ +[15]: /fr/help/ +[16]: /fr/remote_configuration +[17]: /fr/agent/configuration/network +[18]: /fr/agent/configuration/proxy/ +[19]: /fr/internal_developer_portal/catalog/ +[20]: /fr/dynamic_instrumentation/?tab=configurationyaml#prerequisites +[21]: /fr/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[22]: /fr/tracing/trace_collection/runtime_config/ +[23]: /fr/remote_configuration#opting-out-of-remote-configuration +[24]: https://app.datadoghq.com/organization-settings/api-keys +[25]: /fr/agent/guide/ +[26]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=org-enablement-step +[27]: /fr/agent/fleet_automation/fleet_view/#send-a-remote-flare +[28]: /fr/security/sensitive_data_scanner/?tab=usingtheagent +[29]: /fr/agent/fleet_automation/upgrade_agents/ +[30]: /fr/actions/private_actions/use_private_actions/ +[31]: /fr/agent/guide/setup_remote_config +[32]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=api-key-enablement-step&standalone=1 +[33]: /fr/security/application_security/setup/ +[34]: /fr/security/application_security/ +[35]: /fr/tracing/trace_pipeline/adaptive_sampling/ +[36]: /fr/tracing/dynamic_instrumentation/#explore-dynamic-instrumentation +[37]: /fr/account_management/rbac +[38]: /fr/agent/fleet_automation/#control-access-to-fleet-automation +[39]: /fr/security/access_control/#permissions +[40]: /fr/tracing/trace_pipeline/adaptive_sampling/#permissions +[41]: /fr/account_management/rbac/permissions/#apm +[42]: /fr/account_management/rbac/permissions/#cloud-security-platform +[43]: /fr/security/cloud_security_management/setup/#enable-agentless-scanning +[44]: /fr/account_management/rbac/permissions/#observability-pipelines +[45]: /fr/account_management/rbac/permissions/#app-builder--workflow-automation +[46]: /fr/account_management/rbac/permissions/#serverless +[47]: /fr/containers/autoscaling +[48]: /fr/feature_flags/ \ No newline at end of file diff --git a/content/fr/serverless/aws_lambda/distributed_tracing.md b/content/fr/serverless/aws_lambda/distributed_tracing.md index b5d2ad0ddff..0959a850309 100644 --- a/content/fr/serverless/aws_lambda/distributed_tracing.md +++ b/content/fr/serverless/aws_lambda/distributed_tracing.md @@ -10,9 +10,9 @@ further_reading: - link: /tracing/ tag: Documentation text: Explorer l'APM Datadog -- link: /tracing/trace_search_and_analytics/#live-search-pendant-15-minutes +- link: /tracing/trace_search_and_analytics/#live-search-for-15-minutes tag: Documentation - text: Live Search + text: Recherche en direct - link: https://www.datadoghq.com/blog/aws-lambda-tracing-go-java-functions/ tag: Blog text: Tracing distribué en temps réel pour des fonctions Lambda Go et Java @@ -27,20 +27,19 @@ further_reading: text: Tracing distribué en temps réel pour des fonctions Lambda .NET title: Tracing distribué avec des applications sans serveur AWS Lambda --- - {{< img src="tracing/serverless_functions/ServerlessDistributedTrace.png" alt="Tracer des fonctions sans serveur" style="width:100%;">}} Associez vos traces sans serveur à vos métriques pour permettre à Datadog de vous offrir une vue d'ensemble détaillée et contextualisée des performances de votre application. Compte tenu de la nature distribuée des applications sans serveur, vous pouvez ainsi résoudre plus efficacement les problèmes de performance. -Les bibliothèques de tracing Python, Node.js, Ruby, Go, Java et .NET Datadog prennent en charge le tracing distribué pour AWS Lambda. +Les SDK Datadog pour Python, Node.js, Ruby, Go, Java et .NET prennent en charge le traçage distribué pour AWS Lambda. -## Envoyer des traces à partir de votre application sans serveur +## Envoyez des traces depuis votre application sans serveur {#send-traces-from-your-serverless-application} -{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Diagramme de l'architecture de tracing d'AWS Lambda avec Datadog" >}} +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Diagramme d'architecture pour le traçage d'AWS Lambda avec Datadog" >}} -Les bibliothèques de tracing Python, Node.js, Ruby, Go, Java et .NET Datadog prennent en charge le tracing distribué pour AWS Lambda. Vous pouvez installer le traceur en suivant les [instructions d'installation][5]. Si vous avez déjà installé l'extension, vérifiez que la variable d'environnement `DD_ENABLE_ENABLED` est définie sur `true`. +Les SDK Datadog pour Python, Node.js, Ruby, Go, Java et .NET prennent en charge le traçage distribué pour AWS Lambda. Vous pouvez installer le SDK en suivant les [instructions d'installation][5]. -### Recommandations de runtime +### Recommandations d'exécution {#runtime-recommendations} {{< card-grid card_width="30%" image_width="200">}} {{< image-card href="/serverless/distributed_tracing#python-and-nodejs" src="integrations_logos/python.png" alt="Python" >}} @@ -51,160 +50,195 @@ Les bibliothèques de tracing Python, Node.js, Ruby, Go, Java et .NET Datadog pr {{< image-card href="/serverless/distributed_tracing#net" src="integrations_logos/dotnet_text.png" alt=".NET" >}} {{< /card-grid >}} -#### Python et Node.js +#### Python et Node.js {#python-and-nodejs} -La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Python et Node.js prennent en charge les fonctionnalités suivantes : -- Corrélation automatique des logs Lambda et des traces avec l'ID de trace et l'injection de traces -- Installation sans modification du code à l'aide des intégrations Serverless Framework, AWS SAM et AWS CDK -- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval -- Tracing des appels Lambda consécutifs effectués avec AWS SDK. -- Tracing des démarrages à froid -- Tracing des appels Lambda asynchrones via AWS Managed Services - - API Gateway +La Datadog Lambda Library et les SDK pour Python et Node.js prennent en charge : +- Corrélation automatique des journaux et des traces Lambda avec l'ID de trace et injection de balises. +- Installation sans aucun changement de code en utilisant les intégrations Serverless Framework, AWS SAM et AWS CDK. +- Traçage des requêtes HTTP invoquant des fonctions ou des conteneurs Lambda en aval. +- Traçage des invocations consécutives de Lambda effectuées via le SDK AWS. +- Traçage des démarrages à froid +- Traçage des invocations asynchrones de Lambda via les services gérés par AWS + - API Gateway - SQS - SNS - Intégration directe de SNS et SQS - Kinesis - EventBridge -- Tracing de dizaines de bibliothèques supplémentaires [Python][3] et [Node.js][4] prêtes à l'emploi + - DynamoDB + - S3 + - Step Functions +- Traçage de dizaines de bibliothèques supplémentaires prêtes à l'emploi [Python][3] et [Node.js][4]. -Pour les applications Python et Node.js sans serveur, Datadog vous conseille d'[installer les bibliothèques de tracing Datadog][5]. +Pour les applications sans serveur Python et Node.js, Datadog vous recommande d'[installer les SDK Datadog][5]. -*Vous souhaitez tracer d'autres ressources sans serveur ? Créez une demande de fonctionnalité sur [cette page][7].* +*Vous cherchez à tracer des ressources sans serveur non listées ci-dessus ? [Ouvrez une demande de fonctionnalité][7].* -#### Ruby +#### Ruby {#ruby} -La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Ruby prennent en charge les fonctionnalités suivantes : -- Corrélation automatique des logs Lambda et des traces avec l'ID de trace et l'injection de traces -- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval -- Tracing de dizaines de bibliothèques supplémentaires [Ruby][8] prêtes à l'emploi +La Datadog Lambda Library et les SDK pour Ruby prennent en charge : +- Corrélation automatique des journaux et des traces Lambda avec l'injection d'ID de trace et de balises. +- Traçage des requêtes HTTP invoquant des fonctions ou des conteneurs Lambda en aval. +- Traçage de dizaines de bibliothèques supplémentaires prêtes à l'emploi [Ruby][8]. -Vous pouvez tracer vos fonctions sans serveur dans Datadog grâce aux [bibliothèques de tracing Datadog][5]. +Vous pouvez tracer vos fonctions sans serveur dans Datadog avec les [SDK Datadog][5]. -*Vous souhaitez tracer d'autres ressources sans serveur ? Créez une demande de fonctionnalité sur [cette page][7].* +*Vous cherchez à tracer des ressources sans serveur non listées ci-dessus ? [Ouvrez une demande de fonctionnalité][7].* -#### Go +#### Go {#go} -La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Go prennent en charge les fonctionnalités suivantes : -- Corrélation manuelle des logs Lambda et des traces avec l'ID de trace et l'injection de traces -- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval -- Tracing de dizaines de bibliothèques supplémentaires [Go][9] prêtes à l'emploi +La Datadog Lambda Library et les SDK pour Go prennent en charge : +- Corrélation manuelle des journaux et des traces Lambda avec l'injection d'ID de trace et de balises. +- Traçage des requêtes HTTP invoquant des fonctions ou des conteneurs Lambda en aval. +- Traçage de dizaines de bibliothèques supplémentaires prêtes à l'emploi [Go][9]. -Pour les applications Go sans serveur, Datadog vous conseille d'installer les [bibliothèques de tracing Datadog][15]. +Pour les applications sans serveur Go, Datadog recommande d'installer les [SDK Datadog][5]. -*Vous souhaitez tracer d'autres ressources sans serveur ? Créez une demande de fonctionnalité sur [cette page][7].* +*Vous cherchez à tracer des ressources sans serveur non listées ci-dessus ? [Ouvrez une demande de fonctionnalité][7].* -#### Java +#### Java {#java} -La bibliothèque Lambda Datadog et les bibliothèques de tracing pour Java prennent en charge les fonctionnalités suivantes : -- Mise en corrélation des logs Lambda et des traces avec l'ID de trace et l'injection de traces (voir la section [Associer vos logs Java à vos traces][10] pour en savoir plus) -- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval -- Tracing de dizaines de bibliothèques supplémentaires [Java][11] prêtes à l'emploi +La Datadog Lambda Library et les SDK pour Java prennent en charge : +- Corrélation des journaux et des traces Lambda avec l'ID de trace et l'injection de balises. Voir [Connexion des journaux et des traces Java][10] pour plus de détails. +- Traçage des requêtes HTTP invoquant des fonctions ou des conteneurs Lambda en aval. +- Traçage de dizaines de bibliothèques supplémentaires prêtes à l'emploi [Java][11]. -Pour les applications Java sans serveur, Datadog vous conseille d'[installer les bibliothèques de tracing Datadog][5]. +Pour les applications sans serveur Java, Datadog recommande [d'installer les SDK Datadog][5]. -*Vous souhaitez partager votre avis sur les bibliothèques de tracing Datadog pour les fonctions Lambda Java ? N'hésitez pas à rejoindre le canal [#serverless][12] de la [communauté Slack Datadog][13] pour participer aux discussions.* +*Avez-vous des commentaires sur les SDK Datadog pour les fonctions Lambda Java ? Assurez-vous de consulter les discussions en cours dans le canal [#serverless][12] de la [communauté Slack Datadog][13].* -#### .NET +#### .NET {#net} -La bibliothèque de tracing pour .NET prend en charge les fonctionnalités suivantes : -- Tracing des requêtes HTTP appelant des conteneurs ou des fonctions Lambda en aval -- Tracing de dizaines de bibliothèques supplémentaires [.NET][14] prêtes à l'emploi +Le SDK pour .NET prend en charge : +- Traçage des requêtes HTTP invoquant des fonctions ou des conteneurs Lambda en aval. +- Traçage de dizaines de bibliothèques supplémentaires prêtes à l'emploi [.NET][14]. -Pour les applications .NET sans serveur, Datadog vous conseille d'[installer les bibliothèques de tracing Datadog][5]. +Pour les applications sans serveur .NET, Datadog recommande [d'installer les SDK Datadog][5]. En savoir plus sur le [tracing via des applications sans serveur Azure .NET][15]. -### Environnements hybrides +## Auto-liaison des spans {#span-auto-linking} +{{< img src="serverless/lambda/tracing/autolink.png" alt="Dans Datadog, une trace DynamoDB. En haut, un message indique 'Cette trace est liée à d'autres traces'. L'onglet Liens de spans est ouvert et affiche un lien cliquable vers une autre trace DynamoDB." style="width:100%;" >}} -Si vous avez installé les bibliothèques de tracing Datadog (`dd-trace`) sur vos fonctions Lambda et vos hosts, vos traces dressent automatiquement un tableau complet des requêtes qui franchissent les limites de votre infrastructure, qu'il s'agisse de fonctions AWS Lambda, de hosts sur site ou de services gérés. +Datadog détecte automatiquement les spans liés lorsque des segments de vos requêtes asynchrones ne peuvent pas propager le contexte de trace. Par exemple, cela peut se produire lorsqu'une requête déclenche des [Événements de changement S3][28] ou des [Flux DynamoDB][29]. Vous pouvez voir les spans auto-liés apparaître dans l'[onglet Liens de spans][30]. Ceux-ci apparaissent comme **Retour** ou **Avance**. -Si vous avez installé `dd-trace` sur vos hosts avec l'Agent Datadog, et si le tracing de vos fonctions sans serveur passe par AWS X-Ray, il est nécessaire de fusionner les traces pour afficher une trace unique et associée dans votre infrastructure. Consultez la section [Fusion de traces sans serveur][6] pour en savoir plus sur la fusion de traces entre `dd-trace` et AWS X-Ray. +_Retour_ : Le span lié a été causé par la trace que vous visualisez. -L'[intégration Datadog/AWS X-Ray][2] fournit uniquement des traces pour les fonctions Lambda. Consultez la [documentation relative à la solution APM Datadog][16] pour en savoir plus sur le tracing dans des environnements basés sur des conteneurs ou des hosts. +_Avance_ : Le span lié a causé la trace que vous visualisez. -## Profiler vos fonctions Lambda (fonctionnalité en bêta publique) -
    Durant la version bêta, le profiling est disponible gratuitement.
    +
    Les filtres d'échantillonnage et de rétention des traces peuvent interférer avec l'auto-liaison. Pour améliorer vos chances de voir des spans auto-liés, augmentez votre taux d'échantillonnage ou ajustez vos filtres de rétention.
    -Le [profileur en continu][27] de Datadog est disponible en version bêta pour la version 4.62.0 de Python et les versions 62 et ultérieures de la couche. Pour activer cette fonctionnalité facultative, définissez la variable d'environnement `DD_PROFILING_ENABLED` sur `true`. +### Technologies prises en charge {#supported-technologies} -Le profileur en continu fonctionne en générant un thread qui s'active régulièrement afin de générer un snapshot du processeur et de l'ensemble du code Python exécuté. Ce snapshot peut inclure le profileur lui-même. Si vous voulez que le profileur s'ignore, définissez `DD_PROFILING_IGNORE_PROFILER` sur `true`. +L'auto-liaison des spans est disponible pour : +- Fonctions AWS Lambda Python instrumentées avec [`datadog-lambda-python`][33] la couche v101+ +- Applications Python instrumentées avec [`dd-trace-py`][31] v2.16+ +- Fonctions AWS Lambda Node.js instrumentées avec [`datadog-lambda-js`][34] la couche 118+ +- Applications Node.js instrumentées avec [`dd-trace-js`][32] v4.53.0+ ou v5.29.0+ -## Fusion de traces +### Auto-liaison des flux de changement DynamoDB {#dynamodb-change-stream-auto-linking} -### Cas d'utilisation +Pour [Flux de changement DynamoDB][29], l'auto-liaison des spans prend en charge les opérations suivantes : -Datadog vous recommande d'utiliser uniquement la bibliothèque de tracing APM Datadog (`dd-trace`). Cependant, dans certaines situations particulières, les utilisateurs peuvent combiner le tracing Datadog et AWS X-Ray à l'aide de la fusion de traces. La fusion de traces est disponible pour les fonctions et AWS Lambda Node.js et Python. Si vous ne savez pas quelle bibliothèque de tracing utiliser, découvrez comment [choisir votre bibliothèque de tracing][17]. +- `PutItem` +- `UpdateItem` +- `DeleteItem` +- `BatchWriteItem` +- `TransactWriteItems` -Il existe deux scénarios justifiant l'instrumentation des bibliothèques de tracing `dd-trace` et AWS X-Ray : -- Dans un environnement AWS sans serveur, vous effectuez déjà le tracing de vos fonctions Lambda avec `dd-trace`. De plus, un tracing actif d'AWS X-Ray est requis pour les services AWS gérés, comme AppSync et Step Functions. Or, vous devez visualiser les spans `dd-trace` et AWS X-Ray au sein d'une unique trace. -- Dans un environnement hybride comprenant des fonctions Lambda et des hosts, `dd-trace` instrumente vos hosts, tandis qu'AWS X-Ray instrumente vos fonctions Lambda. Or, vous devez visualiser les traces connectées pour les transactions de l'ensemble de vos fonctions Lambda et de vos hosts. +
    L'opération PutItem L'opération nécessite une configuration supplémentaire. Pour plus d'informations, consultez Instrumentation des applications serverless Python ou Instrumentation des applications serverless Node.js.
    -**Remarque** : la fusion des traces peut entraîner une augmentation de vos coûts. Les spans X-Ray restent disponibles dans vos traces fusionnées pendant une durée de deux à cinq minutes. Dans la plupart des cas, Datadog vous conseille d'utiliser une seule bibliothèque de tracing. Découvrez comment [choisir votre bibliothèque de tracing][17]. +### Auto-liaison des notifications de changement S3 {#s3-change-notification-auto-linking} -Voici des instructions de configuration pour les deux scénarios évoqués ci-dessus : +Pour les [notifications de changement S3][28], la liaison automatique de Span prend en charge les opérations suivantes : + +- `PutObject` +- `CompleteMultipartUpload` +- `CopyObject` + + +## Environnements hybrides {#hybrid-environments} -- [Fusion de traces dans un environnement principalement sans serveur](#fusion-de-traces-dans-un-environnement-aws-sans-serveur) -- [Fusion de traces entre des fonctions AWS Lambda et des hosts](#configurer-le-tracing-de-fonctions-aws-lambda-et-de-hosts) +Pour une visibilité de bout en bout à travers les fonctions Lambda, les hôtes, les conteneurs et les services gérés, installez les SDK Datadog (`dd-trace`) à la fois sur vos fonctions Lambda et vos hôtes. Vos traces montrent alors une image complète des requêtes qui traversent les frontières de l'infrastructure. -### Fusion de traces dans un environnement AWS sans serveur +Sur Lambda, installez `dd-trace` avec l'[Extension Datadog Lambda][35], qui exécute l'Agent Datadog à l'intérieur de l'environnement d'exécution Lambda et envoie les traces directement à Datadog avec un minimum de surcharge. L'Extension Lambda est la méthode d'installation recommandée pour les applications sans serveur nouvelles et existantes. -AWS X-Ray propose à la fois un service AWS backend (le tracing actif d'AWS X-Ray) et un ensemble de bibliothèques client. [Lorsque le service AWS backend est activé indépendamment dans la console Lambda][18], vous disposez des spans `Initialization` et `Invocation` pour vos fonctions AWS Lambda. Vous pouvez également activer le tracing actif d'AWS X-Ray depuis les consoles API Gateway et Step Function. +Consultez la [documentation APM de Datadog][16] pour la configuration du traçage dans les environnements basés sur des conteneurs et des hôtes. -Le SDK AWS X-Ray et les bibliothèques client de l'APM Datadog (`dd-trace`) accèdent directement à la fonction pour ajouter des métadonnées et des spans aux appels en aval. Si vous utilisez `dd-trace` pour effectuer le tracing au niveau du gestionnaire, voici à quoi ressemble la configuration finale : +## Profilage de vos Fonctions Lambda {#profiling-your-lambda-functions} -1. Vous avez activé le [tracing actif d'AWS X-Ray][18] sur vos fonctions Lambda depuis la console AWS Lambda, ainsi que l'[intégration Datadog/AWS X-Ray][19]. -2. Vous avez instrumenté vos fonctions Lambda avec la solution APM Datadog (`dd-trace`) en suivant les [instructions d'installation pour votre runtime Lambda][5]. -3. Les bibliothèques tierces sont automatiquement patchées par `dd-trace` ; les bibliothèques client AWS X-Ray n'ont donc pas besoin d'être installées. -4. Vous avez défini la variable d'environnement `DD_MERGE_XRAY_TRACES` sur `true` (ou la variable d'environnement `DD_MERGE_DATADOG_XRAY_TRACES` pour Ruby) sur vos fonctions Lambda afin de fusionner les traces X-Ray et `dd-trace`. +Le [Continuous Profiler][27] de Datadog est disponible en Preview pour Python dans la version 4.62.0 et avec la couche v62 et supérieure. Cette fonctionnalité optionnelle est activée en définissant la variable d'environnement `DD_PROFILING_ENABLED` sur `true`. -### Configurer le tracing de fonctions AWS Lambda et de hosts +Le [Continuous Profiler][27] fonctionne en créant un thread qui se réveille périodiquement et prend un instantané du CPU et du tas de tout le code Python en cours d'exécution. Cela peut inclure le profiler lui-même. Si vous souhaitez que le profiler s'ignore lui-même, définissez `DD_PROFILING_IGNORE_PROFILER` sur `true`. -Si vous avez installé les bibliothèques de tracing Datadog (`dd-trace`) sur vos fonctions Lambda et vos hosts, vos traces dressent automatiquement un tableau complet des requêtes qui franchissent les limites de votre infrastructure, qu'il s'agisse de fonctions AWS Lambda, de hosts sur site ou de services gérés. +## Fusion de traces {#trace-merging} -Si vous avez installé `dd-trace` sur vos hosts avec l'Agent Datadog, et si le tracing de vos fonctions sans serveur Node.js ou Python passe par AWS X-Ray, voici à quoi ressemble la configuration finale : +### Cas d'utilisation {#use-cases} -1. Vous avez installé l'[intégration AWS X-Ray][18] pour le tracing de vos fonctions Lambda. Par la même occasion, vous avez activé le tracing actif d'AWS X-Ray et installé les bibliothèques client X-Ray. -2. Vous avez installé la [bibliothèque Lambda Datadog pour votre runtime Lambda][5] et défini la variable d'environnement `DD_TRACE_ENABLED` sur `false`. -3. La solution [APM Datadog][20] est configurée sur vos hosts et votre infrastructure à base de conteneurs. +Datadog recommande d'utiliser uniquement la [Datadog APM trace library] (`dd-trace`), mais dans certaines situations avancées, les utilisateurs peuvent combiner le traçage Datadog et AWS X-Ray en utilisant la fusion de traces. La fusion de traces est disponible pour les fonctions AWS Lambda en Node.js et Python. Si vous n'êtes pas sûr du SDK à utiliser, consultez [choisir votre SDK][17]. -Pour que les traces d'AWS X-Ray et de l'APM Datadog s'affichent dans le même flamegraph, tous les services doivent avoir le même tag `env`. +
    Le traçage des AWS Step Functions est pris en charge nativement par Datadog et ne nécessite plus X-Ray. Voir Surveillance sans serveur pour AWS Step Functions et Fusion des traces des Step Functions et Lambda.
    + +Il y a deux raisons principales d'instrumenter à la fois `dd-trace` et les bibliothèques de traçage AWS X-Ray : +- Dans un environnement sans serveur AWS, vous tracez déjà vos fonctions Lambda avec `dd-trace`, vous avez besoin du traçage actif AWS X-Ray pour un service géré par AWS que Datadog APM n'instrumente pas encore (comme AppSync), et vous souhaitez visualiser les `dd-trace` et les spans AWS X-Ray dans une seule trace. +- Dans un environnement hybride avec à la fois des fonctions Lambda et des hôtes, `dd-trace` instrumente vos hôtes, AWS X-Ray instrumente vos fonctions Lambda, et vous souhaitez visualiser les traces connectées pour les transactions à travers les fonctions Lambda et les hôtes. + +**Remarque :** Cela peut entraîner des factures d'utilisation plus élevées. Les spans X-Ray continuent d'être disponibles dans vos traces fusionnées après 2 à 5 minutes. Dans de nombreux cas, Datadog recommande d'utiliser uniquement un seul SDK. En savoir plus sur [le choix de votre SDK][17]. + +Voici des instructions de configuration pour les deux scénarios évoqués ci-dessus : -**Remarque** : le tracing distribué est pris en charge pour tout runtime d'application basée sur des hosts ou des conteneurs. Vos hosts et vos fonctions Lambda n'ont pas besoin d'être dans le même runtime. +- [Fusion des traces dans un environnement serverless-first](#trace-merging-in-an-AWS-serverless-environment) +- [Fusion des traces entre AWS Lambda et les hôtes](#tracing-across-aws-lambda-and-hosts) -{{< img src="integrations/amazon_lambda/lambda_host_trace.png" alt="tracing d'une requête entre un host et une fonction Lambda" >}} +### Fusion des traces dans un environnement sans serveur AWS {#trace-merging-in-an-aws-serverless-environment} -## Propagation des traces -{{< img src="serverless/lambda-non-http-trace.png" alt="Trace distribuée sans serveur et non HTTP" style="width:100%;" >}} +AWS X-Ray fournit à la fois un service backend AWS (traçage actif AWS X-Ray) et un ensemble de bibliothèques clientes. [Activer uniquement le service backend AWS dans la console Lambda][18] vous donne des spans `Initialization` et `Invocation` pour vos fonctions AWS Lambda. Vous pouvez également activer le traçage actif AWS X-Ray depuis les consoles API Gateway et Step Function. -### Configuration requise +Les bibliothèques clientes AWS X-Ray et Datadog APM (`dd-trace`) ajoutent des métadonnées et des spans pour les appels en aval en accédant directement à la fonction. En supposant que vous utilisez `dd-trace` pour tracer au niveau du gestionnaire, votre configuration devrait être similaire à ce qui suit : -Une instrumentation supplémentaire est parfois nécessaire pour obtenir une trace unique et connectée dans les applications sans serveur Node et Python qui déclenchent des fonctions Lambda de manière asynchrone. Si vous commencez tout juste à surveiller des applications sans serveur dans Datadog, [suivez les principales étapes d'installation][21] et [accédez à cette page pour choisir votre bibliothèque de tracing][22]. Une fois que vous envoyez des traces depuis vos fonctions Lambda à Datadog à l'aide de la [bibliothèque Lambda Datadog][23], vous pouvez choisir de suivre les étapes ci-dessous afin d'associer des traces entre deux fonctions Lambda pour l'un des scénarios suivants : -- Déclenchement de fonctions Lambda via Step Functions -- Invocation de fonctions Lambda via des protocoles non HTTP, comme MQTT +1. Vous avez activé [le traçage actif AWS X-Ray][18] sur vos fonctions Lambda depuis la console AWS Lambda et notre [intégration AWS X-Ray au sein de Datadog][19]. +2. Vous avez instrumenté vos fonctions Lambda avec Datadog APM (`dd-trace`) en suivant [les instructions d'installation pour votre runtime Lambda][5]. +3. Les bibliothèques tierces sont automatiquement patchées par `dd-trace`, donc les bibliothèques clientes AWS X-Ray n'ont pas besoin d'être installées. +4. Définissez la variable d'environnement `DD_MERGE_XRAY_TRACES` sur `true` sur vos fonctions Lambda pour fusionner les traces X-Ray et `dd-trace` (`DD_MERGE_DATADOG_XRAY_TRACES` en Ruby). + +### Traçage entre AWS Lambda et les hôtes {#tracing-across-aws-lambda-and-hosts} + +#### Propagation du contexte avec les SDK Datadog (recommandé) {#context-propagation-with-the-datadog-sdks-recommended} +Installez les SDK Datadog (`dd-trace`) sur vos fonctions Lambda et vos hôtes. Vos traces affichent alors automatiquement une vue complète des requêtes qui franchissent les limites de l'infrastructure, que ce soit AWS Lambda, des conteneurs, des hôtes sur site ou des services gérés. + +{{< img src="integrations/amazon_lambda/lambda_host_trace.png" alt="trace d'une requête d'un hôte vers une fonction Lambda" >}} + +## Propagation des traces {#trace-propagation} +{{< img src="serverless/lambda-non-http-trace.png" alt="Trace distribuée sans serveur non-HTTP" style="width:100%;" >}} + +### Configuration requise {#required-setup} + +Une instrumentation supplémentaire est parfois nécessaire pour obtenir une trace unique et connectée dans les applications sans serveur Node et Python qui déclenchent des fonctions Lambda de manière asynchrone. Si vous débutez avec la surveillance des applications sans serveur dans Datadog, [suivez nos étapes d'installation principales][21] et [lisez cette page sur le choix de votre SDK][22]. Une fois que vous envoyez des traces de vos fonctions Lambda à Datadog en utilisant la [Bibliothèque Lambda Datadog][23], vous voudrez peut-être suivre ces étapes pour relier les traces entre deux fonctions Lambda dans des cas tels que : +- Déclenchement de fonctions Lambda via Step Functions +- Invocation de fonctions Lambda via des protocoles non-HTTP tels que MQTT Le tracing d'un grand nombre de services AWS gérés ([liste complète][24]) est pris en charge par défaut. Il n'est pas nécessaire de suivre les étapes décrites sur cette page. Pour associer le contexte des traces entre plusieurs ressources générant des traces, vous devez procéder comme suit : -- Incluez le contexte des traces Datadog dans les événements sortants. Ces événements peuvent provenir d'un host ou d'une fonction Lambda doté(e) de `dd-trace`. -- Extrayez le contexte des traces dans la fonction Lambda du consommateur. +- Inclure le contexte de trace Datadog dans les événements sortants. L'événement sortant peut provenir d'un hôte ou d'une fonction Lambda avec `dd-trace` installé. +- Extraction du contexte de trace dans la fonction Lambda du consommateur. -### Transmission du contexte des traces +### Transmission du contexte de trace {#passing-trace-context} Les extraits de code suivants permettent de transmettre le contexte des traces, par le biais des charges utiles sortantes, aux services qui ne prennent par en charge les en-têtes HTTP ou aux services gérés qui ne sont pas pris en charge [de façon native][24] par Datadog en Node et Python : {{< tabs >}} {{% tab "Python" %}} -En Python, vous pouvez utiliser la fonction auxiliaire `get_dd_trace_context` pour transmettre le contexte des traces aux événements sortants dans une fonction Lambda : +En Python, vous pouvez utiliser la fonction d'aide `get_dd_trace_context` pour passer le contexte de trace aux événements sortants dans une fonction Lambda : ```py import json import boto3 import os -from datadog_lambda.tracing import get_dd_trace_context # Fonction auxiliaire de tracing Datadog +from datadog_lambda.tracing import get_dd_trace_context # Datadog tracing helper function def handler(event, context): my_custom_client.sendRequest( @@ -212,7 +246,7 @@ def handler(event, context): 'myCustom': 'data', '_datadog': { 'DataType': 'String', - 'StringValue': json.dumps(get_dd_trace_context()) # Inclure le contexte des traces dans les charges utiles sortantes + 'StringValue': json.dumps(get_dd_trace_context()) # Includes trace context in outgoing payload. }, }, ) @@ -221,13 +255,13 @@ def handler(event, context): {{% /tab %}} {{% tab "Node.js" %}} -En Node, vous pouvez utiliser la fonction auxiliaire `getTraceHeaders` pour transmettre le contexte des traces aux événements sortants dans une fonction Lambda : +En Node, vous pouvez utiliser la fonction d'aide `getTraceHeaders` pour passer le contexte de trace aux événements sortants dans une fonction Lambda : ```js -const { getTraceHeaders } = require("datadog-lambda-js"); // Fonction auxiliaire de tracing Datadog +const { getTraceHeaders } = require("datadog-lambda-js"); // Datadog tracing helper function module.exports.handler = async event => { - const _datadog = getTraceHeaders(); // Capture le contexte des traces Datadog actuel + const _datadog = getTraceHeaders(); // Captures current Datadog trace context. var payload = JSON.stringify({ data: 'sns', _datadog }); await myCustomClient.sendRequest(payload) @@ -236,9 +270,9 @@ module.exports.handler = async event => { {{% /tab %}} {{< /tabs >}} -#### À partir de hosts +#### Depuis les hôtes {#from-hosts} -Si vous ne transmettez pas le contexte des traces depuis vos fonctions Lambda, vous pouvez utiliser le modèle de code suivant à la place des fonctions auxiliaires `getTraceHeaders` et `get_dd_trace_context` pour obtenir le contexte de la span active. Consultez [cette page][25] pour obtenir les instructions permettant de récupérer ce contexte à chaque exécution. +Si vous ne passez pas le contexte de trace de vos fonctions Lambda, vous pouvez utiliser le modèle de code suivant à la place des fonctions d'aide `getTraceHeaders` et `get_dd_trace_context` pour obtenir le contexte de span actuel. Les instructions sur la façon de faire cela dans chaque runtime sont décrites [ici][25]. ```js const tracer = require("dd-trace"); @@ -251,20 +285,21 @@ exports.handler = async event => { // ... ``` -### Extraire le contexte des traces +### Extraction du contexte de trace {#extracting-trace-context} -Pour extraire le contexte des traces indiqué ci-dessus à partir de la fonction Lambda du consommateur, vous devez définir une fonction d'extraction qui capture le contexte avant l'exécution de votre gestionnaire de fonctions Lambda. Pour ce faire, pointez la variable d'environnement `DD_TRACE_EXTRACTOR` vers votre fonction d'extraction. Le format `.` doit être respecté. Par exemple, indiquez `extractors.json` si la fonction d'extraction `json` se trouve dans le fichier `extractors.js`. Datadog vous conseille de rassembler vos méthodes d'extraction au sein d'un unique fichier, afin de pouvoir les réutiliser pour plusieurs fonctions Lambda. Ces fonctions d'extraction peuvent être entièrement personnalisées selon vos besoins. +Pour extraire le contexte de trace ci-dessus de la fonction Lambda du consommateur, vous devez définir une fonction d'extraction qui capture le contexte de trace avant l'exécution de votre gestionnaire de fonction Lambda. Pour ce faire, configurez la variable d'environnement `DD_TRACE_EXTRACTOR` pour pointer vers l'emplacement de votre fonction d'extraction. Le format pour cela est `.`. Par exemple, `extractors.json` si l'extracteur `json` se trouve dans le fichier `extractors.js`. Datadog recommande de placer toutes vos méthodes d'extraction dans un seul fichier, car les extracteurs peuvent être réutilisés dans plusieurs fonctions Lambda. Ces extracteurs sont entièrement personnalisables pour s'adapter à tout cas d'utilisation. **Remarques** : -- Si vous utilisez TypeScript ou un bundler comme webpack, vous devez `import` ou `require` votre module Node.js à l'emplacement où les fonctions d'extraction sont définies. Ainsi, le module est compilé et groupé au sein de votre package de déploiement Lambda. -- Si vos fonctions Lambda Node.js s'exécutent sur `arm64`, vous devez [définir la fonction d'extraction dans le code de votre fonction][26] au lieu d'utiliser la variable d'environnement `DD_TRACE_EXTRACTOR`. +- Si vous utilisez TypeScript ou un bundler comme webpack, vous devez `import` ou `require` votre module Node.js où les extracteurs sont définis. Cela garantit que le module est compilé et inclus dans votre package de déploiement Lambda. +- Si votre fonction Lambda Node.js s'exécute sur `arm64`, vous devez [définir l'extracteur dans le code de votre fonction][26] au lieu d'utiliser la variable d'environnement `DD_TRACE_EXTRACTOR`. -#### Extraits de fonction d'extraction +#### Exemples d'extracteurs {#sample-extractors} Le code suivant comporte des extraits de fonction d'extraction que vous pouvez utiliser pour propager le contexte des traces à l'échelle d'un système tiers ou d'une API ne prenant pas en charge les en-têtes HTTP standard. {{< tabs >}} {{% tab "Python" %}} + ```py def extractor(payload): trace_headers = json.loads(payload["_datadog"]); @@ -294,32 +329,33 @@ exports.json = (payload) => { ``` {{% /tab %}} {{% tab "Go" %}} + ```go var exampleSQSExtractor = func(ctx context.Context, ev json.RawMessage) map[string]string { - eh := events.SQSEvent{} + eh := events.SQSEvent{} - headers := map[string]string{} + headers := map[string]string{} - if err := json.Unmarshal(ev, &eh); err != nil { - return headers - } + if err := json.Unmarshal(ev, &eh); err != nil { + return headers + } - // Puisque SQS est utilisé comme déclencheur avec batchSize=1, il est important d'effectuer cette vérification, - // car un seul message SQS initiera l'exécution du gestionnaire. - if len(eh.Records) != 1 { - return headers - } + // Using SQS as a trigger with a batchSize=1 so it's important we check + // for this as a single SQS message will drive the execution of the handler. + if len(eh.Records) != 1 { + return headers + } - record := eh.Records[0] + record := eh.Records[0] - lowercaseHeaders := map[string]string{} - for k, v := range record.MessageAttributes { - if v.StringValue != nil { - lowercaseHeaders[strings.ToLower(k)] = *v.StringValue - } - } + lowercaseHeaders := map[string]string{} + for k, v := range record.MessageAttributes { + if v.StringValue != nil { + lowercaseHeaders[strings.ToLower(k)] = *v.StringValue + } + } - return lowercaseHeaders + return lowercaseHeaders } cfg := &ddlambda.Config{ @@ -330,11 +366,11 @@ ddlambda.WrapFunction(handler, cfg) {{% /tab %}} {{< /tabs >}} -## Envoyer des traces à Datadog avec l'intégration X-Ray +## Envoi de traces à Datadog avec l'intégration X-Ray {#sending-traces-to-datadog-with-the-x-ray-integration} -Si vous effectuez déjà le tracing de votre application sans serveur avec X-Ray, et que vous souhaitez continuer à utiliser ce service, vous pouvez [installer l'intégration AWS X-Ray][2] afin d'envoyer des traces depuis X-Ray vers Datadog. +Si vous avez une instrumentation X-Ray existante et que vous souhaitez continuer à l'utiliser, [installez l'intégration AWS X-Ray][2] pour envoyer des traces de X-Ray à Datadog. Pour les nouvelles applications sans serveur, Datadog recommande d'instrumenter les fonctions Lambda avec l'[extension Datadog Lambda][35] à la place. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -364,4 +400,12 @@ Si vous effectuez déjà le tracing de votre application sans serveur avec X-Ray [24]: /fr/serverless/distributed_tracing#runtime-recommendations [25]: /fr/tracing/trace_collection/custom_instrumentation/ [26]: /fr/serverless/guide/handler_wrapper/ -[27]: /fr/profiler/ \ No newline at end of file +[27]: /fr/profiler/ +[28]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html +[29]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html +[30]: https://docs.datadoghq.com/fr/tracing/trace_explorer/trace_view/?tab=spanlinksbeta +[31]: https://github.com/DataDog/dd-trace-py/ +[32]: https://github.com/DataDog/dd-trace-js/ +[33]: https://github.com/DataDog/datadog-lambda-python +[34]: https://github.com/DataDog/datadog-lambda-js +[35]: /fr/serverless/libraries_integrations/extension/ \ No newline at end of file diff --git a/content/fr/serverless/aws_lambda/metrics.md b/content/fr/serverless/aws_lambda/metrics.md new file mode 100644 index 00000000000..7a2f68de837 --- /dev/null +++ b/content/fr/serverless/aws_lambda/metrics.md @@ -0,0 +1,490 @@ +--- +aliases: +- /fr/serverless/custom_metrics +- /fr/serverless/enhanced_lambda_metrics +- /fr/serverless/real-time-enhanced-metrics +- /fr/serverless/real_time_enhanced_metrics +title: Métriques AWS Lambda +--- +Cette page discute des métriques pour surveiller les applications sans serveur sur AWS Lambda. Il existe 3 façons d'obtenir des métriques d'AWS Lambda : + +- Vous pouvez obtenir des métriques Cloudwatch Lambda via l'[intégration Datadog AWS][5] +- Vous pouvez obtenir des [métriques améliorées](#enhanced-lambda-metrics) en [installing Serverless Monitoring for AWS Lambda][1] via the Datadog Lambda Extension. +- Vous pouvez [soumettre des métriques personnalisées](#submit-custom-metrics) à Datadog depuis vos fonctions Lambda. + +{{< img src="serverless/serverless_custom_metrics.png" alt="Collecte de métriques améliorées depuis AWS Lambda" >}} + +### Collectez des métriques à partir de ressources non-Lambda {#collect-metrics-from-non-lambda-resources} + +Datadog peut également vous aider à collecter des métriques pour les ressources gérées par AWS—telles que [API Gateway][2], [AppSync][3], et [SQS][4]—pour vous aider à surveiller l'ensemble de votre application sans serveur. Ces métriques sont enrichies avec les balises de ressources AWS correspondantes. + +Pour collecter ces métriques, configurez l'[intégration Datadog AWS][5]. + +[1]: /fr/serverless/aws_lambda/installation +[2]: /fr/integrations/amazon_api_gateway/#data-collected +[3]: /fr/integrations/amazon_appsync/#data-collected +[4]: /fr/integrations/amazon_sqs/#data-collected +[5]: /fr/integrations/amazon_web_services/ + +## Métriques améliorées de Lambda {#enhanced-lambda-metrics} + +{{< img src="serverless/lambda-metrics-dashboard.jpeg" alt="Tableau de bord par défaut des métriques améliorées de Lambda" width="80%">}} + +Par défaut, Datadog génère des métriques Lambda optimisées à partir de votre runtime Lambda. Ces métriques offrent une faible latence, une granularité de plusieurs secondes et des métadonnées détaillées pour les démarrages à froid et les tags personnalisés. + +Les métriques améliorées de Lambda s'ajoutent aux [métriques Lambda][6] par défaut activées avec l'intégration AWS Lambda. Les métriques améliorées se distinguent par leur présence dans le `aws.lambda.enhanced.*` espace de noms. Vous pouvez visualiser ces métriques sur le [tableau de bord par défaut des métriques améliorées de Lambda][7]. + +Les métriques améliorées de Lambda en temps réel suivantes sont disponibles, et elles sont étiquetées avec les balises correspondantes `aws_account`, `region`, `functionname`, `cold_start`, `memorysize`, `executedversion`, `resource` et `runtime`. + +Ces métriques sont des [distributions][8]: . Vous pouvez les interroger en utilisant les agrégations `count`, `min`, `max`, `sum` et `avg`. Les métriques améliorées sont activées automatiquement avec [Serverless Monitoring][1] mais peuvent être désactivées en affectant à la variable d'environnement `DD_ENHANCED_METRICS` la valeur `false` dans votre fonction Lambda. + +`aws.lambda.enhanced.invocations` +: Mesure le nombre de fois qu'une fonction est invoquée en réponse à un événement ou à une invocation d'un appel API. + +`aws.lambda.enhanced.errors` +: Mesure le nombre d'invocations qui ont échoué en raison d'erreurs dans la fonction. + +`aws.lambda.enhanced.max_memory_used` +: Mesure la quantité maximale de mémoire (Mo) utilisée par la fonction. + +`aws.lambda.enhanced.duration` +: Mesure le nombre de secondes écoulées depuis le début de l'exécution du code de la fonction à la suite d'une invocation jusqu'à son arrêt. + +`aws.lambda.enhanced.billed_duration` +: Mesure le temps facturé pendant lequel la fonction a été exécutée (par incréments de 100 ms). + +`aws.lambda.enhanced.init_duration` +: Mesure le temps d'initialisation (en secondes) d'une fonction lors d'un démarrage à froid. + +`aws.lambda.enhanced.runtime_duration` +: Mesure le nombre de millisecondes écoulées depuis le début de l'exécution du code de la fonction jusqu'à ce qu'elle renvoie la réponse au client, en excluant la durée post-exécution ajoutée par les exécutions d'extensions Lambda. + +`aws.lambda.enhanced.post_runtime_duration` +: Mesure le nombre de millisecondes écoulées depuis que le code de la fonction renvoie la réponse au client jusqu'à ce que la fonction cesse de s'exécuter, représentant la durée ajoutée par les exécutions d'extensions Lambda. + +`aws.lambda.enhanced.response_latency` +: Mesure le temps écoulé en millisecondes depuis la réception de la demande d'invocation jusqu'à l'envoi du premier octet de réponse au client. + +`aws.lambda.enhanced.response_duration` +: Mesure le temps écoulé en millisecondes depuis l'envoi du premier octet de réponse jusqu'au dernier octet de réponse envoyé au client. + +`aws.lambda.enhanced.produced_bytes` +: Mesure le nombre d'octets renvoyés par une fonction. + +`aws.lambda.enhanced.estimated_cost` +: Mesure le coût total estimé de l'invocation de la fonction (en dollars américains). + +`aws.lambda.enhanced.timeouts` +: Mesure le nombre de fois qu'une fonction dépasse le temps imparti. + +`aws.lambda.enhanced.out_of_memory` +: Mesure le nombre de fois qu'une fonction manque de mémoire. +: Étant donné qu'il existe de nombreuses variations d'erreurs de manque de mémoire, certains cas peuvent ne pas être bien gérés malgré les meilleurs efforts. Si vous rencontrez un tel cas, créez une issue dans le [répertoire GitHub de l'extension Lambda Datadog][18]. + +`aws.lambda.enhanced.cpu_total_utilization` +: Mesure l'utilisation totale du CPU de la fonction en nombre de cœurs. + +`aws.lambda.enhanced.cpu_total_utilization_pct` +: Mesure l'utilisation totale du CPU de la fonction en pourcentage. + +`aws.lambda.enhanced.cpu_max_utilization` +: Mesure l'utilisation du CPU sur le cœur le plus utilisé. + +`aws.lambda.enhanced.cpu_min_utilization` +: Mesure l'utilisation du CPU sur le cœur le moins utilisé. + +`aws.lambda.enhanced.cpu_system_time` +: Mesure le temps que le CPU a passé à s'exécuter en mode noyau. + +`aws.lambda.enhanced.cpu_user_time` +: Mesure le temps que le CPU a passé à s'exécuter en mode utilisateur. + +`aws.lambda.enhanced.cpu_total_time` +: Mesure le temps total que le CPU a passé à s'exécuter. + +`aws.lambda.enhanced.num_cores` +: Mesure le nombre de cœurs disponibles. + +`aws.lambda.enhanced.rx_bytes` +: Mesure les octets reçus par la fonction. + +`aws.lambda.enhanced.tx_bytes` +: Mesure les octets envoyés par la fonction. + +`aws.lambda.enhanced.total_network` +: Mesure les octets envoyés et reçus par la fonction. + +`aws.lambda.enhanced.tmp_max` +: Mesure l'espace total disponible dans le répertoire /tmp. + +`aws.lambda.enhanced.tmp_used` +: Mesure l'espace utilisé dans le répertoire /tmp. + +`aws.lambda.enhanced.fd_max` +: Mesure le nombre total de descripteurs de fichiers disponibles à l'utilisation. + +`aws.lambda.enhanced.fd_use` +: Mesure le nombre maximum de descripteurs de fichiers utilisés pendant la durée de l'invocation de la fonction. + +`aws.lambda.enhanced.threads_max` +: Mesure le nombre total de threads disponibles à l'utilisation. + +`aws.lambda.enhanced.threads_use` +: Mesure le nombre maximum de threads utilisés pendant la durée de l'invocation de la fonction. + +[6]: /fr/integrations/amazon_lambda/#metric-collection +[7]: https://app.datadoghq.com/screen/integration/aws_lambda_enhanced_metrics +[8]: /fr/metrics/distributions/ +[18]: https://github.com/DataDog/datadog-lambda-extension + +## Soumettre des métriques personnalisées {#submit-custom-metrics} + +### Créer des métriques personnalisées à partir des journaux ou des traces {#create-custom-metrics-from-logs-or-traces} +Si vos fonctions Lambda envoient déjà des données de trace ou de journal à Datadog, et que les données que vous souhaitez interroger sont capturées dans un journal ou une trace existante, vous pouvez générer des métriques personnalisées à partir des journaux et des traces sans redéployer ni apporter de modifications à votre code d'application. + +Avec les métriques basées sur les journaux, vous pouvez enregistrer un compte des journaux qui correspondent à une requête ou résumer une valeur numérique contenue dans un journal, telle qu'une durée de requête. Les métriques basées sur les journaux sont un moyen rentable de résumer les données de journal de l'ensemble du flux d'ingestion. En savoir plus sur [la création de métriques basées sur les journaux][9]. + +Vous pouvez également générer des métriques à partir de tous les spans ingérés, qu'ils soient indexés par un filtre de rétention ou non. En savoir plus sur [la création de métriques basées sur les spans][10]. + +### Soumettre des métriques personnalisées directement depuis une fonction Lambda {#submit-custom-metrics-directly-from-a-lambda-function} + +Toutes les métriques personnalisées sont soumises en tant que [distributions](#understanding-distribution-metrics). + +**Remarque** : Les métriques de distribution doivent être soumises avec un nouveau nom, ne réutilisez pas le nom d'une métrique précédemment soumise. + +1. [Install Serverless Monitoring for AWS Lambda][1] et assurez-vous d'avoir installé le Datadog Lambda Extension. + +2. Choisissez votre environnement d'exécution : + +{{< programming-lang-wrapper langs="python,nodeJS,go,java,dotnet,other" >}} +{{< programming-lang lang="python" >}} + +```python +from datadog_lambda.metric import lambda_metric + +def lambda_handler(event, context): + lambda_metric( + "coffee_house.order_value", # Metric name + 12.45, # Metric value + tags=['product:latte', 'order:online'] # Associated tags + ) +``` +{{< /programming-lang >}} +{{< programming-lang lang="nodeJS" >}} + +```javascript +const { sendDistributionMetric } = require('datadog-lambda-js'); + +async function myHandler(event, context) { + sendDistributionMetric( + 'coffee_house.order_value', // Metric name + 12.45, // Metric value + 'product:latte', // First tag + 'order:online' // Second tag + ); +} +``` +{{< /programming-lang >}} +{{< programming-lang lang="go" >}} + +```go +package main + +import ( + "github.com/aws/aws-lambda-go/lambda" + "github.com/DataDog/datadog-lambda-go" +) + +func main() { + lambda.Start(ddlambda.WrapFunction(myHandler, nil)) +} + +func myHandler(ctx context.Context, event MyEvent) (string, error) { + ddlambda.Distribution( + "coffee_house.order_value", // Metric name + 12.45, // Metric value + "product:latte", "order:online" // Associated tags + ) +} +``` +{{< /programming-lang >}} +{{< programming-lang lang="java" >}} + +Installez la dernière version de [`java-dogstatsd-client`][1]. + +```java +package com.datadog.lambda.sample.java; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyRequestEvent; +import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyResponseEvent; + +// import the statsd client builder +import com.timgroup.statsd.NonBlockingStatsDClientBuilder; +import com.timgroup.statsd.StatsDClient; + +public class Handler implements RequestHandler { + + // instantiate the statsd client + private static final StatsDClient Statsd = new NonBlockingStatsDClientBuilder().hostname("localhost").build(); + + @Override + public APIGatewayV2ProxyResponseEvent handleRequest(APIGatewayV2ProxyRequestEvent request, Context context) { + + // submit a distribution metric + Statsd.recordDistributionValue("my.custom.java.metric", 1, new String[]{"tag:value"}); + + APIGatewayV2ProxyResponseEvent response = new APIGatewayV2ProxyResponseEvent(); + response.setStatusCode(200); + return response; + } + + static { + // ensure all metrics are flushed before shutdown + Runtime.getRuntime().addShutdownHook(new Thread() { + @Override + public void run() { + System.out.println("[runtime] shutdownHook triggered"); + try { + Thread.sleep(300); + } catch (InterruptedException e) { + System.out.println("[runtime] sleep interrupted"); + } + System.out.println("[runtime] exiting"); + } + }); + } +} +``` + +[1]: https://github.com/DataDog/java-dogstatsd-client +{{< /programming-lang >}} +{{< programming-lang lang="dotnet" >}} + +Installez la dernière version de [`dogstatsd-csharp-client`][1]. + +```csharp +using System.IO; + +// import the statsd client +using StatsdClient; + +namespace Example +{ + public class Function + { + static Function() + { + // instantiate the statsd client + var dogstatsdConfig = new StatsdConfig + { + StatsdServerName = "127.0.0.1", + StatsdPort = 8125, + }; + if (!DogStatsd.Configure(dogstatsdConfig)) + throw new InvalidOperationException("Cannot initialize DogstatsD. Set optionalExceptionHandler argument in the `Configure` method for more information."); + } + + public Stream MyHandler(Stream stream) + { + // submit a distribution metric + DogStatsd.Distribution("my.custom.dotnet.metric", 1, tags: new[] { "tag:value" }); + // your function logic + } + } +} +``` + +[1]: https://github.com/DataDog/dogstatsd-csharp-client +{{< /programming-lang >}} +{{< programming-lang lang="other" >}} + +1. [Installez][1] le client DogStatsD pour votre environnement d'exécution +2. Suivez le [code d'exemple][2] pour soumettre vos métriques personnalisées. + +[1]: /fr/extend/dogstatsd/?tab=hostagent#install-the-dogstatsd-client +[2]: /fr/extend/dogstatsd/?tab=hostagent#instantiate-the-dogstatsd-client +{{< /programming-lang >}} +{{< /programming-lang-wrapper >}} + +### Soumettez des métriques historiques {#submit-historical-metrics} + +Utilisez l'extension Datadog Lambda pour soumettre des métriques historiques. Ces métriques peuvent avoir des horodatages allant jusqu'à une heure dans le passé. + +Commencez par [installer Serverless Monitoring for AWS Lambda][1]. Assurez-vous d'avoir installé le Datadog Lambda Extension. + +Ensuite, choisissez votre environnement d'exécution : + +{{< programming-lang-wrapper langs="python,nodeJS,go,ruby,java,other" >}} +{{< programming-lang lang="python" >}} + +```python +from datadog_lambda.metric import lambda_metric + +def lambda_handler(event, context): + lambda_metric( + "coffee_house.order_value", # Metric name + 12.45, # Metric value + tags=['product:latte', 'order:online'] # Associated tags + ) + + # Submit a metric with a timestamp that is within the last 20 minutes + lambda_metric( + "coffee_house.order_value", # Metric name + 12.45, # Metric value + timestamp=int(time.time()), # Unix epoch in seconds + tags=['product:latte', 'order:online'] # Associated tags + ) +``` +{{< /programming-lang >}} +{{< programming-lang lang="nodeJS" >}} + +```javascript +const { sendDistributionMetric } = require('datadog-lambda-js'); + +async function myHandler(event, context) { + sendDistributionMetric( + 'coffee_house.order_value', // Metric name + 12.45, // Metric value + 'product:latte', // First tag + 'order:online' // Second tag + ); + + // Submit a metric with a timestamp that is within the last 20 minutes + sendDistributionMetricWithDate( + 'coffee_house.order_value', // Metric name + 12.45, // Metric value + new Date(Date.now()), // date + 'product:latte', // First tag + 'order:online', // Second tag + ); +} +``` +{{< /programming-lang >}} +{{< programming-lang lang="go" >}} + +```go +package main + +import ( + "github.com/aws/aws-lambda-go/lambda" + "github.com/DataDog/datadog-lambda-go" +) + +func main() { + lambda.Start(ddlambda.WrapFunction(myHandler, nil)) +} + +func myHandler(ctx context.Context, event MyEvent) (string, error) { + ddlambda.Distribution( + "coffee_house.order_value", // Metric name + 12.45, // Metric value + "product:latte", "order:online" // Associated tags + ) + + // Submit a metric with a timestamp that is within the last 20 minutes + ddlambda.MetricWithTimestamp( + "coffee_house.order_value", // Metric name + 12.45, // Metric value + time.Now(), // Timestamp + "product:latte", "order:online" // Associated tags + ) +} +``` + +{{< /programming-lang >}} +{{< programming-lang lang="ruby" >}} + +```ruby +require 'datadog/lambda' + +def handler(event:, context:) + # You only need to wrap your function handler (Not helper functions). + Datadog::Lambda.wrap(event, context) do + Datadog::Lambda.metric( + 'coffee_house.order_value', # Metric name + 12.45, # Metric value + "product":"latte", "order":"online" # Associated tags + ) + + # Submit a metric with a timestamp that is within the last 20 minutes + Datadog::Lambda.metric( + 'coffee_house.order_value', # Metric name + 12.45, # Metric value + time: Time.now.utc, # Timestamp + "product":"latte", "order":"online" # Associated tags + ) + end +end +``` + +{{< /programming-lang >}} +{{< programming-lang lang="java" >}} + +```java +public class Handler implements RequestHandler { + public Integer handleRequest(APIGatewayV2ProxyRequestEvent request, Context context){ + DDLambda dd = new DDLambda(request, lambda); + + Map myTags = new HashMap(); + myTags.put("product", "latte"); + myTags.put("order", "online"); + + dd.metric( + "coffee_house.order_value", // Metric name + 12.45, // Metric value + myTags); // Associated tags + } +} +``` + +{{< /programming-lang >}} +{{< programming-lang lang="other" >}} + +Écrivez une fonction réutilisable qui enregistre vos métriques custom au format suivant : + +```json +{ + "m": "Metric name", + "v": "Metric value", + "e": "Unix timestamp (seconds)", + "t": "Array of tags" +} +``` + +Exemple : + +```json +{ + "m": "coffee_house.order_value", + "v": 12.45, + "e": 1572273854, + "t": ["product:latte", "order:online"] +} +``` + +{{< /programming-lang >}} +{{< /programming-lang-wrapper >}} + +### Comprendre les métriques de distribution {#understanding-distribution-metrics} + +Lorsque Datadog reçoit plusieurs points de métriques de comptage ou de jauge partageant le même horodatage et le même ensemble de balises, seul le plus récent est pris en compte. Cela fonctionne pour les applications basées sur des hôtes car les points de métriques sont agrégés par l'agent Datadog et étiquetés avec une balise unique `host`. + +Une fonction Lambda peut lancer de nombreux environnements d'exécution concurrents lorsque le trafic augmente. La fonction peut soumettre des points de métriques de comptage ou de jauge qui se chevauchent et entraînent des résultats sous-estimés. Pour éviter ce problème, les métriques personnalisées générées par les fonctions Lambda sont soumises en tant que [distributions][11] car les points de métriques de distribution sont agrégés sur le backend Datadog, et chaque point de métrique compte. + +Les distributions fournissent par défaut des agrégations `avg`, `sum`, `max`, `min`, `count`. Sur la page Résumé des métriques, vous pouvez activer les agrégations de percentile (p50, p75, p90, p95, p99) et également [gérer les tags][12]. Pour surveiller une distribution pour un type de métrique de jauge, utilisez `avg` pour les [agrégations de temps et d'espace][13]. Pour surveiller une distribution pour un type de métrique de comptage, utilisez `sum` pour les [agrégations de temps et d'espace][13]. Référez-vous au guide [Interroger le Graphique][14] pour comprendre comment fonctionnent les agrégations de temps et d'espace. + +### Comprendre votre utilisation des métriques, le volume et la tarification dans Datadog {#understanding-your-metrics-usage-volume-and-pricing-in-datadog} + +Datadog fournit des informations détaillées sur les métriques personnalisées que vous ingérez, la cardinalité des tags et les outils de gestion pour vos métriques personnalisées dans la [page Résumé des métriques][15] de l'application Datadog. Vous pouvez voir toutes les métriques personnalisées Serverless sous le tag 'Serverless' dans le [panneau de facettes][16] de l'Origine des métriques de distribution. Vous pouvez également contrôler les volumes et les coûts des métriques personnalisées avec [Metrics without Limits™][17]. + +[9]: /fr/logs/logs_to_metrics/ +[10]: /fr/tracing/trace_pipeline/generate_metrics/ +[11]: /fr/metrics/distributions/ +[12]: /fr/metrics/distributions/#customize-tagging +[13]: /fr/metrics/#time-and-space-aggregation +[14]: /fr/dashboards/guide/query-to-the-graph/ +[15]: https://app.datadoghq.com/metric/summary +[16]: /fr/metrics/summary/#facet-panel +[17]: /fr/metrics/summary/#metrics-without-limits \ No newline at end of file diff --git a/content/fr/service_level_objectives/_index.md b/content/fr/service_level_objectives/_index.md new file mode 100644 index 00000000000..2a54bdaeead --- /dev/null +++ b/content/fr/service_level_objectives/_index.md @@ -0,0 +1,376 @@ +--- +aliases: +- /fr/monitors/monitor_uptime_widget/ +- /fr/monitors/slos/ +- /fr/monitors/service_level_objectives/ +- /fr/service_management/service_level_objectives/ootb_dashboard +- /fr/service_management/service_level_objectives/ +description: Faire un suivi du statut de vos SLO +further_reading: +- link: https://learn.datadoghq.com/courses/intro-to-slo + tag: Centre d'apprentissage + text: Présentation des Service Level Objectives (SLO) +- link: https://www.datadoghq.com/blog/service-page/ + tag: Blog + text: Télémétrie sur les services, suivi des erreurs, SLO et plus encore +- link: https://www.datadoghq.com/blog/monitor-service-performance-with-slo-alerts/ + tag: Blog + text: Surveiller de manière proactive les performances d'un service avec des alertes + SLO +- link: https://www.datadoghq.com/blog/slo-key-questions/ + tag: Blog + text: Questions clés à poser lors de la définition des SLO +- link: https://www.datadoghq.com/blog/define-and-manage-slos/ + tag: Blog + text: Conseils à suivre pour gérer vos SLO avec Datadog +- link: https://www.datadoghq.com/blog/burn-rate-is-better-error-rate/ + tag: Blog + text: Burn Rate est un meilleur error rate. +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: Blog + text: Concevez des tableaux de bord exécutifs efficaces avec Datadog +- link: https://www.datadoghq.com/blog/slo-monitoring-tracking/ + tag: Blog + text: Surveiller le statut et la marge d'erreur de vos SLO avec Datadog +- link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_level_objective + tag: Site externe + text: Créer et gérer des SLO avec Terraform +title: Service Level Objectives +--- +{{< jqmath-vanilla >}} + +
    + +{{< learning-center-callout header="Participez à une session de webinaire d'enablement." hide_image="true" btn_title="Inscrivez-vous" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=SLOs&tags.topics-1=Monitors">}} + Explorez et inscrivez-vous aux sessions Foundation Enablement. Découvrez comment vous pouvez prioriser et traiter les problèmes qui comptent le plus pour votre entreprise avec le suivi natif des SLO et SLA. +{{< /learning-center-callout >}} + +## Aperçu {#overview} + +Les objectifs de niveau de service, ou SLOs, sont un élément clé de la boîte à outils de l'ingénierie de la fiabilité des sites. Les SLOs fournissent un cadre pour définir des objectifs clairs concernant la performance des applications, ce qui aide finalement les équipes à offrir une expérience client cohérente, à équilibrer le développement de fonctionnalités avec la stabilité de la plateforme et à améliorer la communication avec les utilisateurs internes et externes. + +**Conseil**: Pour ouvrir les objectifs de niveau de service à partir de la recherche globale de Datadog, appuyez sur Cmd/Ctrl + K et recherchez `slo`. + +## Terminologie clé {#key-terminology} + +Indicateur de niveau de service (SLI) +: Une mesure quantitative de la performance ou de la fiabilité d'un service. Dans les SLOs de Datadog, un SLI est une métrique ou une agrégation d'un ou plusieurs moniteurs. + +Service Level Objective (SLO) +: Un pourcentage cible pour un SLI sur une période de temps spécifique. + +Service Level Agreement (SLA) +: Un accord explicite ou implicite entre un client et un fournisseur de services stipulant les attentes de fiabilité du client et les conséquences pour le fournisseur de services en cas de non-respect. + +Budget d'erreur +: Le montant d'imprévisibilité autorisé dérivé du pourcentage cible d'un SLO (100 % - pourcentage cible) qui est destiné à être investi dans le développement de produits. + +## Types de SLOs {#slo-types} + +Lorsque vous créez des SLO, vous pouvez choisir parmi les types suivants : +- **SLOs basés sur des métriques** : peuvent être utilisés lorsque vous souhaitez que le calcul du SLI soit basé sur le nombre, le SLI est calculé comme la somme des bons événements divisée par la somme des événements totaux. +- **SLOs basés sur les moniteurs** : peuvent être utilisés lorsque vous souhaitez que le calcul du SLI soit basé sur le temps, le SLI est basé sur le temps de disponibilité du moniteur. Les SLOs basés sur les moniteurs doivent être basés sur un moniteur Datadog nouveau ou existant, tous les ajustements doivent être effectués sur le moniteur sous-jacent (ne peuvent pas être réalisés par la création de SLO). +- **SLOs de tranche horaire** : peuvent être utilisés lorsque vous souhaitez que le calcul du SLI soit basé sur le temps, le SLI est basé sur votre définition personnalisée de la disponibilité (montant de temps pendant lequel votre système présente un bon comportement divisé par le temps total). Les SLOs de tranche horaire ne nécessitent pas de moniteur Datadog, vous pouvez essayer différents filtres de métriques et seuils et explorer instantanément les temps d'arrêt lors de la création de SLO. + +Pour une comparaison complète, référez-vous au graphique [Comparaison des types de SLO][1]. + +## Configuration {#setup} + +Utilisez la [page de gestion des SLOs de Datadog][2] pour créer de nouveaux SLOs ou pour consulter et gérer tous vos SLOs existants. + +### Configuration {#configuration} + +1. Sur la [page de gestion des SLO][2], sélectionnez **Nouveau SLO +**. +2. Sélectionnez le type de SLO. Vous pouvez créer un SLO avec l'un des types suivants : [Metric-based][3], [Monitor-based][4], ou [Time Slices][5]. +3. Définissez un objectif et une fenêtre temporelle glissante (7, 30 ou 90 jours précédents) pour le SLO. Datadog recommande de rendre l'objectif plus strict que vos SLA stipulés. Cette fenêtre temporelle est affichée sur les listes de SLOs. Par défaut, la plus courte fenêtre temporelle est sélectionnée. +4. Enfin, donnez un titre au SLO, décrivez-le plus en détail ou ajoutez des liens dans la description, ajoutez des étiquettes et enregistrez-le. + +Après avoir configuré le SLO, sélectionnez-le dans la [vue de liste des SLOs][2] pour ouvrir le panneau latéral des détails. Le panneau latéral affiche le pourcentage d'état global et le budget d'erreur restant pour chacun des objectifs du SLO, ainsi que des barres d'état (SLOs basés sur les moniteurs) ou des graphiques à barres (SLOs basés sur les métriques) de l'historique de l'SLI. Si vous avez créé un SLO basé sur un moniteur groupé en utilisant un [moniteur multi-alerte][6] ou un SLO basé sur des métriques groupées en utilisant la [`sum by` clause][7], le pourcentage d'état et le budget d'erreur restant pour chaque groupe individuel sont affichés en plus du pourcentage d'état global et du budget d'erreur restant. + +**Exemple :** Si vous créez un SLO basé sur un moniteur pour suivre la latence par zone de disponibilité, les pourcentages d'état et le budget d'erreur restant pour le SLO global et pour chaque zone de disponibilité individuelle que le SLO suit sont affichés. + +**Remarque :** Le budget d'erreur restant est affiché en pourcentage et est calculé à l'aide de la formule suivante : + +$$\text"marge d'erreur restante" = 100 * {\text"statut actuel" - \text" cible"} / { 100 - \text"cible"}$$ + +### Définir des objectifs SLO {#setting-slo-targets} + +Pour tirer profit des marges d'erreur et des alertes associées, vous devez définir des valeurs cibles pour votre SLO strictement inférieures à 100 %. + +Fixer un objectif de 100 % signifie avoir un budget d'erreur de 0 %, puisque le budget d'erreur est égal à 100 % — objectif SLO. Sans un budget d'erreur représentant un risque acceptable, vous rencontrez des difficultés à trouver un alignement entre les priorités conflictuelles de maintien de la fiabilité orientée client et d'investissement dans le développement de fonctionnalités. De plus, des SLOs avec des valeurs cibles de 100 % entraînent des erreurs de division par zéro dans l'évaluation des alertes SLO. + +**Remarque :** Le nombre de décimales que vous pouvez spécifier pour vos SLO varie en fonction du type de SLO et des fenêtres temporelles que vous choisissez. Consultez les liens ci-dessous pour plus d'informations sur chaque type de SLO respectif. + +[Monitor-based SLOs][8]: Up to two decimal places are allowed for 7-day and 30-day targets, up to three decimal places are allowed for 90-day targets. + +[Metric-based SLOs][9]: Up to three decimal places are allowed for all targets. + +## Modifier un SLO {#edit-an-slo} + +Pour modifier un SLO, passez le curseur sur la rangée du SLO dans la liste et cliquez sur l'icône en forme de crayon qui s'affiche à droite de la rangée. Vous pouvez également cliquer sur la rangée pour ouvrir le volet latéral détaillé et sélectionner le bouton de modification à partir de l'icône en forme d'engrenage en haut à droite du volet. + +## Permissions {#permissions} + +### Accès basé sur les rôles {#role-based-access} + +Tous les utilisateurs peuvent consulter les SLOs et [corrections de statut SLO](#slo-status-corrections), quel que soit leur [rôle][10] associé. Seuls les utilisateurs rattachés à des rôles disposant de la `slos_write` permission peuvent créer, modifier et supprimer des SLOs. + +Pour créer, modifier et supprimer des corrections de statut, les utilisateurs nécessitent les `slos_corrections` permissions. Un utilisateur avec cette permission peut effectuer des corrections de statut, même s'il n'a pas la permission de modifier ces SLOs. Pour la liste complète des permissions, consultez la [documentation RBAC][11]. + +### Contrôles d'accès granulaires {#granular-access-controls} + +Pour limiter l'accès à certains SLO, définissez la liste des [rôles][10] autorisés à les modifier. + +{{< img src="service_management/service_level_objectives/slo_set_permissions.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Option de permissions SLO dans le menu des paramètres">}} + +1. Cliquez sur le SLO pour ouvrir le panneau latéral des détails. +1. Cliquez sur l'icône des paramètres en haut à droite du panneau. +1. Sélectionnez **Permissions**. +1. Cliquez sur **Restreindre l'accès**. +1. La boîte de dialogue se met à jour pour montrer que les membres de votre organisation ont par défaut un accès **Visiteur**. +1. Utilisez le menu déroulant pour sélectionner un ou plusieurs rôles, équipes ou utilisateurs qui peuvent modifier le SLO. +1. Cliquez sur **Ajouter**. +1. La boîte de dialogue se met à jour pour montrer que le rôle que vous avez sélectionné a la permission **Éditeur**. +1. Cliquez sur **Enregistrer**. + +Pour maintenir votre accès en modification au SLO, le système exige que vous incluiez au moins un rôle dont vous êtes membre avant de sauvegarder. Les utilisateurs sur la liste de contrôle d'accès peuvent ajouter des rôles et ne peuvent supprimer que des rôles autres que le leur. + +**Remarque** : Les utilisateurs peuvent créer des SLOs sur n'importe quel moniteur même s'ils n'ont pas de permissions d'écriture sur le moniteur. De même, les utilisateurs peuvent créer des alertes SLOs même s'ils n'ont pas de permissions d'écriture sur le SLO. Pour plus d'informations sur les permissions RBAC pour les Moniteurs, consultez la [documentation RBAC][12] ou le [guide sur la façon de configurer RBAC pour les Moniteurs][13]. + +## Recherche des SLOs {#searching-slos} + +La [page de gestion des SLOs][2] vous permet d'effectuer une recherche avancée de tous les SLOs afin que vous puissiez trouver, visualiser, modifier, cloner ou supprimer des SLOs à partir des résultats de recherche. + +La recherche avancée vous permet d'interroger les SLO en combinant différents attributs de SLO : + +* `name` et `description` - recherche textuelle. +* `time window` - 7j, 30j, 90j. +* `type` - métrique, moniteur. +* `creator` +* `tags` - centre de données, env, service, équipe, etc. + +Pour effectuer une recherche, utilisez les cases à cocher des facettes à gauche et la barre de recherche en haut. Lorsque vous cochez les cases, la barre de recherche se met à jour avec la requête équivalente. De même, lorsque vous modifiez la requête de la barre de recherche (ou en écrivez une de zéro), les cases à cocher se mettent à jour pour refléter le changement. Les résultats de la requête se mettent à jour en temps réel au fur et à mesure que vous modifiez la requête ; il n'y a pas de bouton 'Rechercher' à cliquer. + +## Visualisation des SLOs {#viewing-slos} + +Regroupez vos SLOs par *n'importe* quel tag pour obtenir une vue d'ensemble de vos données. Vous pouvez rapidement analyser combien de SLOs se trouvent dans chaque état (en infraction, avertissement, OK et pas de données), regroupés par service, équipe, parcours utilisateur, niveau ou tout autre tag défini sur vos SLOs. + +{{< img src="service_management/service_level_objectives/slo_group_by_new.png" alt="Vue d'ensemble des SLOs regroupés par équipe" style="width:100%;" >}} + +Triez les SLOs par les colonnes *statut* et *budget d'erreur* pour prioriser les SLOs nécessitant votre attention. La liste des SLOs affiche les détails des SLOs sur la fenêtre temporelle principale sélectionnée dans votre [configuration](#configuration). Toutes les autres fenêtres temporelles de configuration sont consultables dans le panneau latéral individuel. Ouvrez le panneau latéral des détails des SLOs en cliquant sur la ligne de tableau respective. + +**Remarque** : Vous pouvez visualiser vos SLOs depuis l'écran d'accueil de votre appareil mobile en téléchargeant l'[application mobile Datadog][14], disponible sur l'[App Store Apple][15] et le [Google Play Store][16]. + +{{< img src="service_management/service_level_objectives/slos-mobile.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="SLOs sur iOS et Android">}} + +### Tags SLO {#slo-tags} + +Les tags SLO peuvent être utilisés pour filtrer sur la [page de gestion des SLO][2], créer des [vues enregistrées SLO][17], ou regrouper les SLO afin de les visualiser. Les tags peuvent être ajoutés aux SLOs de plusieurs manières : + +- Lorsque vous créez ou modifiez un SLO, vous pouvez ajouter des tags +- Depuis la vue liste des SLOs, vous pouvez ajouter et mettre à jour des tags en masse en utilisant les options déroulantes *Modifier les tags* et *[Modifier les équipes][18]* en haut de la liste des SLOs. + +{{< img src="service_management/service_level_objectives/slo_bulk_tag.png" alt="La page de liste des SLOs affiche le menu déroulant Modifier les tags pour l'édition en masse des tags" >}} + +### Indicateur de taux de consommation des SLO {#slo-burn-rate-indicator} + +Les indicateurs de taux de consommation utilisent une fenêtre de 2 heures glissantes pour évaluer quels SLOs consomment leur budget d'erreur trop rapidement. Les indicateurs de taux de consommation apparaissent à côté des noms des SLOs applicables sur la [page de gestion des SLO][2]. + +{{< img src="/service_management/service_level_objectives/slo_burn_rate_indicator.png" alt="La page de gestion des SLO dans Datadog. Une icône rouge apparaît à côté du nom d'un SLO dans la liste. Passer la souris sur l'icône rouge affiche une fenêtre modale avec des informations supplémentaires, une visualisation du taux de consommation et un lien vers la page de service correspondante du SLO." style="width:80%;" >}} + +Il existe deux types d'indicateurs possibles : +- Une icône rouge indiquant un taux de consommation critique supérieur à 6 au cours des 2 dernières heures. +- Une icône jaune indiquant un taux de consommation élevé compris entre 1 et 6 au cours des 2 dernières heures. + +Un graphique visuel accompagne chaque indicateur pour montrer où se situe le taux de consommation par rapport aux seuils élevé et critique, permettant une évaluation rapide de la gravité. + +Les SLOs peuvent être filtrés par statut de taux de consommation : Critique, Élevé et Sain. Pour les SLOs dotés d'une étiquette de service, chaque indicateur de taux de consommation comprend un lien direct vers la page de service associée pour une analyse approfondie. + +### Vue par défaut des SLO {#slo-default-view} + +La vue par défaut des SLO apparaît lorsque vous accédez à la liste des SLO. + +La vue par défaut comprend : + +- Une requête de recherche vide +- Une liste de tous les SLO définis dans votre organisation +- Une liste des facettes disponibles dans la liste des facettes à gauche + +### Vues enregistrées {#saved-views} + +Les vues enregistrées vous permettent d'enregistrer des recherches personnalisées dans la liste des SLO et de les partager. Consultez facilement les SLO pertinentes pour votre équipe et vous-même en partageant les éléments suivants : + +- Une requête de recherche +- Un sous-ensemble sélectionné de facettes + +Après avoir filtré un sous-ensemble de SLO dans la liste, vous pouvez ajouter la requête correspondante en tant que vue enregistrée. + +#### Ajouter une vue enregistrée {#add-a-saved-view} + +Pour ajouter une vue enregistrée : + +1. Interrogez vos SLOs. +2. Cliquez sur **Enregistrer la vue +** en haut à gauche de la page. +3. Nommez votre vue et enregistrez. + +#### Charger une vue enregistrée {#load-a-saved-view} + +Pour charger une vue enregistrée, ouvrez le panneau *Vues Enregistrées* en appuyant sur le bouton **Afficher les Vues** en haut à gauche de la page et sélectionnez une vue enregistrée dans la liste. Vous pouvez également rechercher des vues enregistrées dans la zone de recherche *Filtrer les Vues Enregistrées* en haut de ce même panneau *Vues Enregistrées*. + +#### Partager une vue enregistrée {#share-a-saved-view} + +Passez le curseur sur une vue enregistrée dans la liste et sélectionnez l'icône d'hyperlien pour copier le lien vers la vue enregistrée afin de le partager avec les membres de votre équipe. + +#### Gérer les vues enregistrées {#manage-saved-views} + +Une fois que vous utilisez une vue enregistrée, vous pouvez la mettre à jour en sélectionnant cette vue enregistrée, en modifiant la requête et en cliquant sur le bouton *Mettre à jour* en dessous de son nom dans le panneau *Vues Enregistrées*. Pour changer le nom de la vue enregistrée ou supprimer une vue enregistrée, survolez sa ligne dans le panneau *Vues Enregistrées* et cliquez sur l'icône de crayon ou l'icône de poubelle, respectivement. + +## Événements d'audit de correction de SLO et de statut de SLO {#slo-and-slo-status-correction-audit-events} + +Les événements d'audit de SLO vous permettent de suivre l'historique de vos configurations de SLO en utilisant l'[Explorateur d'Événements][27] ou l'onglet **Historique d'Audit** dans les détails du SLO. Les événements d'audit sont ajoutés à l'Explorateur d'Événements chaque fois que vous créez, modifiez ou supprimez un SLO ou une correction de statut de SLO. Chaque événement inclut des informations sur la configuration d'un SLO ou d'une correction de statut de SLO, et le flux fournit un historique des changements de configuration au fil du temps. + +### Événements d'audit de SLO {#slo-audit-events} + +Chaque événement inclut les informations de configuration SLO suivantes : + +- Nom +- Description +- Pourcentages cibles et fenêtres temporelles +- Sources de données (identifiants de moniteur ou requête de métrique) + +Trois types d'événements d'audit SLO figurent dans l'Events Explorer : + +- `SLO Created` événements montrent les informations de configuration du SLO au moment de la création +- `SLO Modified` événements montrent quelles informations de configuration ont changé lors d'une modification +- `SLO Deleted` événements montrent les informations de configuration que le SLO avait avant d'être supprimé + +### Événements d'audit de correction de statut {#status-correction-audit-events} + +Chaque événement inclut les informations de configuration de la correction de statut du SLO suivantes : + +- Nom du SLO +- Heures de début et de fin de la correction de statut avec fuseau horaire +- Catégorie de correction de statut + +Trois types d'événements d'audit de correction de statut de SLO figurent dans l'Events Explorer : + +- `SLO Correction Created`Les événements affichent les informations de configuration de la correction de statut au moment de la création. +- `SLO Correction Modified` Les événements montrent quelles informations de configuration ont changé lors d'une modification +- `SLO Correction Deleted`Les événements montrent les informations de configuration que la correction de statut avait avant d'être supprimée. + +Pour obtenir une liste complète de tous les événements d'audit SLO, entrez la requête de recherche `tags:(audit AND slo)` dans l'Explorateur d'événements. Pour voir la liste des événements d'audit pour un SLO spécifique, entrez `tags:audit,slo_id:` avec l'ID du SLO souhaité. Vous pouvez également interroger l'Explorateur d'événements de manière programmatique en utilisant l'[API des événements Datadog][19]. + +**Remarque :** Si vous ne voyez pas d'événements apparaître dans l'interface utilisateur, assurez-vous de définir la période de l'Explorateur d'événements sur une période plus longue, par exemple, les 7 derniers jours. + +{{< img src="service_management/service_level_objectives/slo-audit-events.png" alt="Événements d'audit de SLO" >}} + +Vous pouvez également utiliser l'onglet « Audit History » dans les détails du SLO pour visualiser tous les événements d'audit pour un SLO particulier : + +{{< img src="service_management/service_level_objectives/slo_audit_history_tab.png" alt="Onglet historique d'audit des détails SLO" >}} + +Avec les [Moniteurs d'événements][28], vous pouvez configurer des notifications pour suivre les événements d'audit SLO. Par exemple, si vous souhaitez être informé lorsque la configuration d'un SLO spécifique est modifiée, configurez un Moniteur d'événements pour suivre le texte `[SLO Modified]` sur les balises `audit,slo_id:`. + +## Widgets SLO {#slo-widgets} + +{{< learning-center-callout header="Essayez de créer des insights critiques pour l'entreprise en utilisant des tableaux de bord et des SLO dans le Centre d'apprentissage" btn_title="Inscrivez-vous maintenant" btn_url="https://learn.datadoghq.com/courses/dashboards-slos">}} + Apprenez sans frais sur une véritable capacité de calcul cloud et un compte d'essai Datadog. Inscrivez-vous aujourd'hui pour en savoir plus sur la création de tableaux de bord pour suivre les SLO. +{{< /learning-center-callout >}} + +Une fois votre SLO créé, vous pouvez visualiser les données grâce aux dashboards et widgets. + - Utilisez le widget SLO pour visualiser l'état d'un SLO unique + - Utilisez le widget Liste SLO pour visualiser un ensemble de SLOs + - Graphique de 15 mois de données SLO basées sur des métriques avec la [source de données SLO][20] dans des widgets à la fois en séries temporelles et en scalaires (valeur de requête, liste principale, tableau, changement). + +Pour plus d'informations sur les widgets SLO, consultez les pages [widget SLO][21] et [widget de liste SLO][22]. Pour plus d'informations sur la source de données SLO, consultez le guide sur la façon d'afficher graphiquement les données historiques SLO sur les tableaux de bord. + +## Corrections de statut SLO {#slo-status-corrections} + +Les corrections de statut vous permettent d'exclure des périodes spécifiques du calcul du statut SLO et du budget d'erreur. De cette manière, vous pouvez : +- Prévenir les temps d'arrêt prévus, tels que la maintenance programmée, de réduire votre budget d'erreur +- Ignorer les heures non ouvrables, où vous n'êtes pas censé respecter vos SLOs +- S'assurer que les problèmes temporaires causés par des déploiements n'impactent pas négativement vos SLOs + +Lorsque vous appliquez une correction, la période spécifiée n'est plus incluse dans les calculs du SLO. +- Pour les SLOs basés sur la surveillance, la fenêtre de temps de correction n'est pas comptée. +- Pour les SLOs basés sur des métriques, tous les événements bons et mauvais dans la fenêtre de correction ne sont pas comptés. +- Pour les SLOs à tranche horaire, la fenêtre de temps de correction est considérée comme un temps de disponibilité. + +Vous avez la possibilité de créer des corrections ponctuelles pour des ajustements ad hoc, ou des corrections récurrentes pour des ajustements prévisibles qui se produisent à un rythme régulier. Les corrections ponctuelles nécessitent une heure de début et de fin, tandis que les corrections récurrentes nécessitent une heure de début, une durée et un intervalle. Les corrections récurrentes sont basées sur la spécification RRULE de [iCalendar RFC 5545][24]. Les règles prises en charge sont `FREQ`, `INTERVAL`, `COUNT` et `UNTIL`. Spécifier une date de fin pour les corrections récurrentes est optionnel au cas où vous auriez besoin que la correction se répète indéfiniment. + +Pour l'un ou l'autre type de correction, vous devez sélectionner une catégorie de correction qui indique pourquoi la correction est effectuée. Les catégories disponibles sont `Scheduled Maintenance`, `Outside Business Hours`, `Deployment` et `Other`. Vous pouvez également inclure une description pour fournir un contexte supplémentaire si nécessaire. + +Chaque SLO a une limite maximale de corrections qui peuvent être configurées pour garantir la performance des requêtes. Ces limites ne s'appliquent qu'aux 90 derniers jours par SLO, donc les corrections pour les périodes antérieures aux 90 derniers jours ne comptent pas dans votre limite. Cela signifie que : +- Si l'heure de fin d'une correction ponctuelle est antérieure aux 90 derniers jours, cela compte dans votre limite. +- Si l'heure de fin de la dernière répétition d'une correction récurrente est antérieure aux 90 derniers jours, cela ne compte pas dans votre limite. + +Voici les limites de correction sur 90 jours applicables par SLO : + +| Type de correction | Limite par SLO | +| ----------------- | ------------- | +| Ponctuelle | 100 | +| Récurrente quotidienne | 2 | +| Récurrente hebdomadaire | 3 | +| Récurrente mensuelle | 5 | + +Vous pouvez configurer les corrections de statut via l'interface utilisateur en sélectionnant `Correct Status` dans le panneau latéral de votre SLO, l'[API de corrections de statut SLO][25], ou une [ressource Terraform][26]. + +#### Accès dans l'interface utilisateur {#access-in-the-ui} + +Pour effectuer des corrections de statut SLO dans l'interface, procédez comme suit : + +1. Créez un nouveau SLO ou cliquez sur un SLO existant. +2. Naviguez vers la vue du panneau latéral des détails d'un SLO. +3. Sous l'icône d'engrenage, sélectionnez **Corriger le statut** pour accéder à la modal de création des **Corrections de statut**. +4. Choisissez entre `One-Time` et `Recurring` dans le **Sélectionnez la fenêtre de correction de temps**, et spécifiez la période que vous souhaitez corriger. +5. Sélectionnez un **Type de correction**. +6. Ajoutez éventuellement des **Notes**. +7. Cliquez sur **Appliquer la correction**. + +{{< img src="service_management/service_level_objectives/slo-corrections-ui.png" alt="Interface utilisateur de correction SLO" style="width:80%;">}} + +Pour visualiser, modifier et supprimer les corrections de statut existantes, cliquez sur l'onglet **Corrections** en haut de la vue détaillée du panneau latéral d'un SLO. + +#### Visualisation des corrections de statut {#visualizing-status-corrections} + +Pour les SLO basés sur des métriques et les SLO par tranche horaire avec corrections de statut, il existe un interrupteur dans la vue détaillée des SLO qui vous permet d'activer ou de désactiver les corrections dans l'interface utilisateur. L'interrupteur contrôle les graphiques et les données dans la section "Historique" de la vue détaillée des SLO. **Remarque :** Votre statut global des SLO et votre budget d'erreurs prendront toujours en compte les corrections de statut. + +{{< img src="service_management/service_level_objectives/correction-toggle.png" alt="Interface utilisateur de correction SLO" style="width:100%;">}} + +## Vue du calendrier des SLO {#slo-calendar-view} + +La vue du calendrier des SLO est disponible sur la [page de gestion des SLO][2]. Dans le coin supérieur droit, passez de la vue "Principale" à la vue "Quotidienne", "Hebdomadaire" ou "Mensuelle" pour voir 12 mois de données historiques sur le statut des SLO. La vue du calendrier est prise en charge pour les SLO basés sur des métriques et les SLO par tranche horaire. + +{{< img src="service_management/service_level_objectives/slo-calendar-view-2.png" alt="Vue Calendrier du SLO" >}} + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/service_level_objectives/guide/slo_types_comparison/ +[2]: https://app.datadoghq.com/slo +[3]: /fr/service_level_objectives/metric/ +[4]: /fr/service_level_objectives/monitor/ +[5]: /fr/service_level_objectives/time_slice/ +[6]: /fr/monitors/types/metric/?tab=threshold#alert-grouping +[7]: /fr/service_level_objectives/metric/#define-queries +[8]: /fr/service_level_objectives/monitor/#set-your-slo-targets +[9]: /fr/service_level_objectives/metric/#set-your-slo-targets +[10]: /fr/account_management/rbac/ +[11]: /fr/account_management/rbac/permissions/#service-level-objectives/ +[12]: /fr/account_management/rbac/permissions/#monitors +[13]: /fr/monitors/guide/how-to-set-up-rbac-for-monitors/ +[14]: /fr/mobile +[15]: https://apps.apple.com/app/datadog/id1391380318 +[16]: https://play.google.com/store/apps/details?id=com.datadog.app +[17]: /fr/service_level_objectives/#saved-views +[18]: /fr/account_management/teams/#associate-resources-with-team-handles +[19]: /fr/api/latest/events/ +[20]: /fr/dashboards/guide/slo_data_source/ +[21]: /fr/dashboards/widgets/slo/ +[22]: /fr/dashboards/widgets/slo_list/ +[23]: /fr/monitors/types/event/ +[24]: https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html +[25]: /fr/api/latest/service-level-objective-corrections/ +[26]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/slo_correction +[27]: /fr/events/explorer/ +[28]: /fr/monitors/types/event/ \ No newline at end of file diff --git a/content/fr/tracing/glossary/_index.md b/content/fr/tracing/glossary/_index.md index 367626bc59c..3bcdf4e7724 100644 --- a/content/fr/tracing/glossary/_index.md +++ b/content/fr/tracing/glossary/_index.md @@ -3,13 +3,16 @@ aliases: - /fr/tracing/terminology/ - /fr/tracing/faq/what-is-the-difference-between-type-service-resource-and-name - /fr/tracing/visualization/ +description: Apprenez les termes essentiels de l'APM, y compris les services, les + ressources, les traces, les spans, l'instrumentation et d'autres concepts clés pour + le traçage distribué. further_reading: - link: /tracing/trace_collection/ tag: Documentation text: Configurer le tracing d'APM avec votre application -- link: /tracing/software_catalog/ +- link: /internal_developer_portal/catalog/ tag: Documentation - text: Découvrir et cataloguer les services transmettant des données à Datadog + text: Découvrez et cataloguez les services rapportant à Datadog - link: /tracing/services/service_page/ tag: Documentation text: En savoir plus sur les services dans Datadog @@ -18,107 +21,107 @@ further_reading: text: Plonger au cœur des traces et des performances de vos ressources - link: /tracing/trace_explorer/trace_view/ tag: Documentation - text: Découvrez comment lire une trace dans Datadog + text: Apprenez à lire une trace dans Datadog - link: /monitors/types/apm/ tag: Documentation - text: En savoir plus sur les moniteurs APM -title: Termes et concepts d'APM + text: Découvrez les moniteurs APM +title: Termes et concepts de la solution APM --- - {{< jqmath-vanilla >}} -## Présentation +## Aperçu {#overview} -L'interface de l'APM fournit de nombreux outils permettant de surveiller les performances de vos applications et de les mettre en corrélation avec les données des autres solutions Datadog. Vous pouvez ainsi identifier et résoudre plus facilement les problèmes liés aux systèmes distribués. +L'interface utilisateur APM fournit de nombreux outils pour résoudre les problèmes de performance des applications et les corréler à travers le produit, vous permettant de trouver et de résoudre des problèmes dans des systèmes distribués. -Pour consulter les définitions et descriptions des termes clés d'APM comme _spans_ et _indexed_, consultez le [glossaire principal][22]. +Pour des définitions et des descriptions supplémentaires des termes APM importants tels que _spans_ et _indexés_, consultez le [glossaire principal][22]. -| Concept | Rôle | +| Concept | Description | |---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Service](#services) | Les services sont les composants d'une architecture de microservices moderne. Un service regroupe généralement des endpoints, des requêtes ou des tâches qui assurent le bon fonctionnement de votre application. | -| [Ressource](#ressources) | Les ressources représentent un domaine particulier d'une application client. Il s'agit généralement d'un endpoint web instrumenté, d'une requête de base de données ou d'une tâche en arrière-plan. | -| [Monitors][23] | Les monitors de métrique d'APM fonctionnent comme les monitors de métrique, mais proposent des commandes spécialement conçues pour l'APM. Utilisez ces monitors pour recevoir des alertes propres à chaque service concernant les hits, les erreurs et diverses mesures de latence. | -| [Trace](#trace) | Les traces servent à suivre le temps passé par une application à traiter une requête, ainsi que le statut de la requête. Chaque trace est composée d'une ou de plusieurs spans. | -| [Propagation du contexte de trace](#propagation-du-contexte-de-trace)| Méthode de transmission des identifiants de trace entre services, permettant à Datadog d'assembler les spans individuelles en une trace distribuée complète. | -| [Filtres de rétention](#filtres-de-retention) | Les filtres de rétention sont des règles basées sur des tags définies au sein de l'interface utilisateur de Datadog. Elles déterminent les spans à indexer dans Datadog pendant 15 jours. | -| [Paramètres d'ingestion](#parametres-d-ingestion) | Les paramètres d'ingestion permettent d'envoyer jusqu'à 100 % des traces à Datadog pour effectuer des recherches et des analyses en temps réel pendant 15 minutes. -| [Instrumentation](#instrumentation) | L'instrumentation est le processus qui consiste à ajouter du code à votre application afin de collecter et remonter des données d'observabilité. | -| [Bagage](#bagage) | Le bagage est une information contextuelle transmise entre les traces, les métriques et les logs sous forme de paires clé-valeur. | +| [Service](#services) | Les services constituent les éléments fondamentaux des architectures modernes de microservices – en général, un service regroupe des endpoints, des requêtes ou des jobs afin de construire votre application. | +| [Ressource](#resources) | Les ressources représentent un domaine particulier d'une application client - elles sont généralement un point de terminaison web instrumenté, une requête de base de données ou une tâche en arrière-plan. | +| [Moniteurs][23] | Les moniteurs de métriques APM fonctionnent comme des moniteurs de métriques réguliers, mais avec des contrôles spécifiquement adaptés à l'APM. Utilisez ces moniteurs pour recevoir des alertes au niveau du service sur les hits, les erreurs et une variété de mesures de latence. | +| [Trace](#trace) | Une trace est utilisée pour suivre le temps passé par une application à traiter une requête et l'état de cette requête. Chaque trace se compose d'un ou plusieurs spans. | +| [Propagation du Contexte de Trace](#trace-context-propagation)| La méthode de passage des identifiants de trace entre les services, permettant à Datadog de relier des spans individuels en une trace distribuée complète. | +| [Filtres de Rétention](#retention-filters) | Les filtres de rétention sont des contrôles basés sur des balises définis dans l'interface utilisateur de Datadog qui déterminent quels spans indexer dans Datadog pendant 15 jours. | +| [Contrôles d'Ingestion](#ingestion-controls) | Les contrôles d'ingestion sont utilisés pour envoyer jusqu'à 100 % des traces à Datadog pour une recherche et une analyse en direct pendant 15 minutes. +| [Instrumentation](#instrumentation) | L'instrumentation est le processus d'ajout de code à votre application pour capturer et rapporter des données d'observabilité. | +| [Bagages](#baggage) | Les bagages sont des informations contextuelles qui sont transmises entre les traces, les métriques et les journaux sous forme de paires clé-valeur. | -## Services +## Services {#services} -Une fois [votre application instrumentée][3], le [Software Catalog][4] devient votre point d'entrée principal pour les données APM. +Après avoir [instrumenté votre application][3], le [Catalogue][4] est votre page d'accueil principale pour les données APM. -{{< img src="tracing/visualization/software_catalog.png" alt="Software Catalog" >}} +{{< img src="tracing/visualization/software_catalog.png" alt="Catalogue" >}} -Les services sont les composants d'une architecture de microservices moderne. Un service regroupe généralement des endpoints, des requêtes ou des tâches qui procèdent au scaling de vos instances. Par exemple : +Les services représentent les éléments constitutifs des architectures de microservices modernes. En d'autres termes, un service regroupe des endpoints, des requêtes ou des tâches afin de mettre des instances à l'échelle. Quelques exemples : -* Un groupe d'endpoints d'URL formant un service d'API. -* Un groupe de requêtes de base de données formant un service de base de données. +* Un groupe de points de terminaison URL peut être regroupé sous un service API. +* Un groupe de requêtes DB qui sont regroupées au sein d'un service de base de données. * Un groupe de tâches périodiques configurées dans le service crond. -La capture d'écran ci-dessous montre un système distribué à base de microservices pour un développeur de sites de e-commerce. On observe un `web-store`, un `ad-server`, un `payment-db` et un `auth-service`, tous représentés en tant que services dans l'APM. +La capture d'écran ci-dessous est un système de microservices pour un constructeur de site e-commerce. Il y a un `web-store`, `ad-server`, `payment-db` et `auth-service` tous représentés comme des services dans APM. -{{< img src="tracing/visualization/service_map.png" alt="service map" >}} +{{< img src="tracing/visualization/service_map.png" alt="carte des services" >}} -Tous les services sont répertoriés dans le [Software Catalog][4] et représentés visuellement sur la [Service Map][5]. Chaque service dispose de sa propre [page de service][6], où vous pouvez consulter et analyser des [métriques de trace](#metriques-de-trace) telles que le débit, la latence et le taux d'erreurs. Utilisez ces métriques pour créer des widgets de tableau de bord, configurer des monitors et visualiser les performances de chaque ressource, comme un endpoint web ou une requête de base de données associée au service. +Tous les services peuvent être trouvés dans le [Catalogue][4] et représentés visuellement sur la [Carte des Services][5]. Chaque service a sa propre [page de service][6] où [les métriques de trace](#trace-metrics) comme le débit, la latence et les taux d'erreur peuvent être consultés et inspectés. Utilisez ces métriques pour créer des widgets de tableau de bord, créer des moniteurs et voir la performance de chaque ressource telle qu'un point de terminaison web ou une requête de base de données appartenant au service. -{{< img src="tracing/visualization/service_page.mp4" video="true" alt="page service" >}} +{{< img src="tracing/visualization/service_page.mp4" video="true" alt="service page" >}}
    -Vous ne voyez pas les endpoints HTTP attendus sur la page du service ? Dans la solution APM, les endpoints sont rattachés à un service non seulement par le nom du service, mais aussi via le `span.name` de la span d’entrée de la trace. Par exemple, pour le service web-store ci-dessus, `web.request` est la span d’entrée. Plus d'infos à ce sujet ici.
    +Ne voyez-vous pas les points de terminaison HTTP que vous attendiez sur la page de service ? Dans APM, les points de terminaison sont connectés à un service par plus que le nom du service. C'est également fait avec le `span.name` du span de point d'entrée de la trace. Par exemple, sur le service de boutique en ligne ci-dessus, `web.request` est le span de point d'entrée. Plus d'informations sur ce ici. +
    -## Ressources +## Ressources {#resources} -Les ressources représentent un domaine particulier d'une application client. Il s'agit généralement d'un endpoint web instrumenté, d'une requête de base de données ou d'une tâche en arrière-plan. Pour un service Web, ces ressources peuvent être des endpoints web dynamiques regroupés sous un nom de span tel que `web.request`. Pour un service de base de données, il peut s'agir de requêtes de base de données portant le nom de span `db.query`. Par exemple, le service `web-store` possède des ressources automatiquement instrumentées (endpoints web) qui gèrent les paiements, les mises à jour de panier, les ajouts d'articles, etc. Le nom d'une ressource peut correspondre à la méthode ou route HTTP, par exemple `GET /productpage` ou `ShoppingCartController#checkout`. +Les ressources représentent un domaine particulier d'une application client. Elles peuvent typiquement être un point de terminaison web instrumenté, une requête de base de données ou un travail en arrière-plan. Pour un service web, ces ressources peuvent être des points de terminaison web dynamiques regroupés par un nom de span statique - `web.request`. Dans un service de base de données, il s'agirait de requêtes de base de données avec le nom de span `db.query`. Par exemple, le `web-store` service dispose de ressources instrumentées automatiquement – des points de terminaison web – qui gèrent la finalisation des achats, la mise à jour des paniers, l'ajout d'articles, etc. Un nom de ressource peut être la méthode HTTP et la route HTTP, par exemple `GET /productpage` ou `ShoppingCartController#checkout`. -Chaque ressource possède sa propre [page de ressource][7] avec des [métriques de trace][15] ciblées sur l'endpoint concerné. Les métriques de trace peuvent être utilisées comme n'importe quelle autre métrique Datadog : elles sont exportables vers un tableau de bord ou peuvent servir à créer des monitors. La page des ressources affiche également le widget de résumé de span avec une vue agrégée des [spans][21] pour toutes les [traces](#trace), la distribution de la latence des requêtes, et les traces correspondant aux requêtes adressées à cet endpoint. +Chaque ressource a sa propre [page de ressource][7] avec des [métriques de trace][15] spécifiques au point de terminaison. Les métriques de trace peuvent être utilisées comme n'importe quelle autre métrique Datadog - elles sont exportables vers un tableau de bord ou peuvent être utilisées pour créer des moniteurs. La page de ressource montre également le widget de résumé de span avec une vue agrégée des [spans][21] pour toutes les [traces](#trace), la distribution de latence des requêtes et les traces qui montrent les requêtes effectuées vers ce point de terminaison. -{{< img src="tracing/visualization/resource_page.mp4" video="true" alt="page ressource" >}} +{{< img src="tracing/visualization/resource_page.mp4" video="true" alt="page de ressource" >}} -## Trace +## Trace {#trace} -Les traces servent à suivre le temps passé par une application à traiter une requête, ainsi que le statut de la requête en question. Chaque trace est composée d'une ou de plusieurs spans. Durant le cycle de vie de la requête, il est possible de visualiser les appels distribués au sein de vos services (grâce à [l'injection/l'extraction d'un ID de trace via les en-têtes HTTP][8]), de vos [bibliothèques instrumentées automatiquement][3] et de vos [instrumentations manuelles][9] à l'aide d'outils open source, tels que [OpenTracing][10], sous forme de flamegraph. La page Trace View présente des informations sur une trace issues d'autres solutions de la plateforme, notamment les données provenant de l'[association de vos logs à vos traces][11], de l'[ajout de tags à des spans][12] et de la [collecte de métriques runtime][13]. +Une trace est utilisée pour suivre le temps passé par une application à traiter une requête et l'état de cette requête. Chaque trace se compose d'un ou plusieurs spans. Au cours de la durée de la requête, vous pouvez voir des appels distribués à travers les services (car un [trace-id est injecté/extrait à travers les en-têtes HTTP][8]), [des bibliothèques instrumentées automatiquement][3] et [une instrumentation manuelle][9] utilisant des outils open-source comme [OpenTracing][10] dans la vue du flame graph. Dans la page de vue de trace, chaque trace collecte des informations qui la relient à d'autres parties de la plateforme, y compris [la connexion des journaux aux traces][11], [l'ajout de balises aux spans][12], et [la collecte de métriques d'exécution][13]. -{{< img src="tracing/visualization/trace_view.png" alt="vue trace" >}} +{{< img src="tracing/visualization/trace_view.png" alt="vue de trace" >}} -## Propagation du contexte de trace +## Propagation du contexte de trace {#trace-context-propagation} -La propagation du contexte de trace est la méthode qui permet de transmettre les identifiants de trace entre les services dans un système distribué. Elle permet à Datadog d'assembler les spans individuelles provenant de différents services en une trace distribuée unique. La propagation du contexte de trace fonctionne en injectant des identifiants, tels que l'ID de trace et l'ID de la span parente, dans les en-têtes HTTP à mesure que la requête circule dans le système. Le service en aval extrait ensuite ces identifiants et poursuit la trace. Cela permet à Datadog de reconstruire le chemin complet d'une requête à travers plusieurs services. +La propagation du contexte de trace est la méthode de transmission des identifiants de trace entre les services dans un système distribué. Elle permet à Datadog de relier des spans individuels provenant de différents services en une seule trace distribuée. La propagation du contexte de trace fonctionne en injectant des identifiants, tels que l'ID de trace et l'ID de span parent, dans les en-têtes HTTP au fur et à mesure que la requête circule dans le système. Le service en aval extrait ensuite ces identifiants et continue la trace. Cela permet à Datadog de reconstruire le chemin complet d'une requête à travers plusieurs services. -Pour en savoir plus, consultez [la documentation sur la propagation du contexte de trace][27] pour le langage de votre application. +Pour plus d'informations, consultez la [propagation du contexte de trace][27] pour le langage de votre application. -## Filtres de rétention +## Filtres de rétention {#retention-filters} -[Configurez des filtres basés sur des tags][19] dans l'interface pour indexer les spans pendant 15 jours en vue de leur utilisation avec la fonctionnalité d'[analyse et de recherche de traces][14]. +[Définissez des filtres basés sur des tags][19] dans l'interface utilisateur pour indexer les spans pendant 15 jours pour une utilisation avec [Trace Search and Analytics][14]. -## Paramètres d'ingestion +## Contrôles d'ingestion {#ingestion-controls} -[Envoyez toutes les traces][20] de vos services à Datadog et tirez parti des [filtres de rétention basés sur des tags](#filtres-de-retention) afin de conserver uniquement les traces qui intéressent votre entreprise pendant 15 jours. +[Envoyez 100 % des traces][20] de vos services vers Datadog et combinez-les avec [des filtres de rétention basés sur des tags](#retention-filters) pour conserver les traces qui comptent pour votre entreprise pendant 15 jours. -## Instrumentation +## Instrumentation {#instrumentation} -L'instrumentation consiste à ajouter du code à votre application pour capturer et envoyer à Datadog des données d'observabilité, telles que des traces, des métriques et des logs. Datadog fournit des bibliothèques d'instrumentation pour différents langages de programmation et frameworks. +L'instrumentation est le processus d'ajout de code à votre application pour capturer et rapporter des données d'observabilité à Datadog, telles que des traces, des métriques et des journaux. Datadog fournit des bibliothèques d'instrumentation pour divers langages de programmation et frameworks. -Vous pouvez instrumenter automatiquement votre application en installant l'Agent Datadog avec [l'instrumentation en une seule étape][24] ou en [ajoutant manuellement les bibliothèques de tracing Datadog][25] à votre code. +Vous pouvez instrumenter automatiquement votre application lorsque vous installez l'Agent Datadog avec [Single Step Instrumentation][24] ou lorsque vous [ajoutez manuellement les SDK Datadog][25] à votre code. -Vous pouvez également utiliser une instrumentation personnalisée en intégrant directement du code de tracing dans votre application. Cela vous permet de créer, modifier ou supprimer des traces par programmation avant de les envoyer à Datadog. +Vous pouvez utiliser une instrumentation personnalisée en intégrant du code de traçage directement dans le code de votre application. Cela vous permet de créer, modifier ou supprimer des traces de manière programmatique à envoyer à Datadog. -Pour en savoir plus, consultez la page [Instrumentation de l'application][26]. +Pour en savoir plus, lisez [Application Instrumentation][26]. -## Bagage +## Baggage {#baggage} -Le bagage permet de propager des paires clé-valeur (également appelées éléments de bagage) entre les services d'un système distribué. Contrairement au contexte de trace, qui se concentre sur les identifiants de trace, le bagage permet la transmission de données métier et d'autres informations contextuelles en parallèle des traces. +Le baggage permet de propager des paires clé-valeur (également appelées baggage items) à travers les frontières de service dans un système distribué. Contrairement au contexte de trace, qui se concentre sur les identifiants de trace, le baggage permet la transmission de données commerciales et d'autres informations contextuelles aux côtés des traces. -Pour en savoir plus, consultez les [formats de propagation pris en charge][28] pour le langage de votre application. +Pour en savoir plus, lisez les [formats de propagation][28] pris en charge pour le langage de votre application. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[2]: /fr/developers/guide/data-collection-resolution/ +[2]: /fr/extend/guide/data-collection-resolution/ [3]: /fr/tracing/setup/ -[4]: /fr/tracing/software_catalog/ +[4]: /fr/internal_developer_portal/catalog/ [5]: /fr/tracing/services/services_map/ [6]: /fr/tracing/services/service_page/ [7]: /fr/tracing/services/resource_page/ diff --git a/content/fr/tracing/services/inferred_services.md b/content/fr/tracing/services/inferred_services.md index f6dfdd330ad..d9855e99676 100644 --- a/content/fr/tracing/services/inferred_services.md +++ b/content/fr/tracing/services/inferred_services.md @@ -1,40 +1,41 @@ --- aliases: - /fr/tracing/guide/inferred-service-opt-in +description: Découvrez automatiquement les dépendances des services, telles que les + bases de données et les files d'attente, grâce à l'analyse des requêtes sortantes. further_reading: - link: /tracing/services/service_page/ tag: Documentation text: En savoir plus sur les services dans Datadog title: Services déduits --- +## Aperçu {#overview} -## Section Overview +Datadog découvre automatiquement les dépendances d'un service instrumenté, telles que les bases de données, les files d'attente ou les API tierces, même si cette dépendance n'a pas été directement instrumentée. En analysant les requêtes sortantes de vos services instrumentés, Datadog déduit la présence de ces dépendances et collecte les métriques de performance associées. -Datadog découvre automatiquement les dépendances d'un service instrumenté, telles que les bases de données, files d'attente ou API tierces, même si ces dépendances ne sont pas directement instrumentées. En analysant les requêtes sortantes des services instrumentés, Datadog déduit la présence de ces dépendances et collecte les métriques de performance associées. - -{{< img src="tracing/visualization/service/dependencies_section.png" alt="Carte des dépendances de la page des services" style="width:90%;">}} +{{< img src="tracing/visualization/service/dependencies_section.png" alt="Carte des dépendances de la page de service" style="width:90%;">}} {{< site-region region="ap1,us3,us5,eu,us,ap2" >}} -Explorez les services déduits dans le [Software Catalog][1] en filtrant les entrées par type d'entité, comme une base de données, une file d'attente ou une API tierce. Chaque [page des services][2] est adaptée au type de service que vous analysez. Par exemple, les pages de services de base de données affichent des informations spécifiques à la base et incluent des données de surveillance si vous utilisez [Database Monitoring][3]. +Explorez les services inférés dans le [Catalogue][1] en filtrant les entrées par type d'entité, telles que base de données, file d'attente ou API tierce. Chaque [page de service][2] est adaptée au type de service que vous examinez. Par exemple, les pages de service de base de données présentent des informations spécifiques aux bases de données et incluent des données de [Database Monitoring] si vous l'utilisez. -## Configurer les services déduits +## Configurer les services inférés {#set-up-inferred-services} {{< tabs >}} {{% tab "Agent v7.60.0+" %}} -À partir de la version [7.60.0][1] de l'Agent Datadog, aucune configuration manuelle n'est nécessaire pour visualiser les services déduits. Les options requises (`apm_config.compute_stats_by_span_kind` et `apm_config.peer_tags_aggregation`) sont activées par défaut. +À partir de la version [7.60.0][1] de l'Agent Datadog, aucune configuration manuelle n'est nécessaire pour voir les services inférés. Les configurations requises—`apm_config.compute_stats_by_span_kind` et `apm_config.peer_tags_aggregation`—sont activées par défaut. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.60.0 {{% /tab %}} {{% tab "Agent v7.55.1 - v7.59.1" %}} -Pour les versions de l'Agent Datadog allant de [7.55.1][1] à [7.59.1][2], ajoutez ce qui suit dans votre fichier de configuration `datadog.yaml` : +Pour les versions de l'Agent Datadog [7.55.1][1] à [7.59.1][2], ajoutez ce qui suit à votre fichier de configuration `datadog.yaml` : {{< code-block lang="yaml" filename="datadog.yaml" collapsible="true" >}} -apm_config : - compute_stats_by_span_kind : true - peer_tags_aggregation : true +apm_config: + compute_stats_by_span_kind: true + peer_tags_aggregation: true {{< /code-block >}} @@ -47,7 +48,7 @@ DD_APM_PEER_TAGS_AGGREGATION=true {{< /code-block >}} -Si vous utilisez Helm, incluez ces variables d'environnement dans votre [fichier][3] `values.yaml`. +Si vous utilisez Helm, incluez ces variables d'environnement dans votre `values.yaml` [fichier][3]. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.55.1 [2]: https://github.com/DataDog/datadog-agent/releases/tag/7.59.1 @@ -55,14 +56,14 @@ Si vous utilisez Helm, incluez ces variables d'environnement dans votre [fichier {{% /tab %}} {{% tab "Agent v7.50.3 - v7.54.1" %}} -Pour les versions de l'Agent Datadog allant de [7.50.3][1] à [7.54.1][2], ajoutez ce qui suit dans votre fichier de configuration `datadog.yaml` : +Pour les versions de l'Agent Datadog [7.50.3][1] à [7.54.1][2], ajoutez ce qui suit à votre fichier de configuration `datadog.yaml` : {{< code-block lang="yaml" filename="datadog.yaml" collapsible="true" >}} -apm_config : - compute_stats_by_span_kind : true - peer_tags_aggregation : true - peer_tags : ["_dd.base_service", "amqp.destination", "amqp.exchange", "amqp.queue", "aws.queue.name", "aws.s3.bucket", "bucketname", "cassandra.keyspace", "db.cassandra.contact.points", "db.couchbase.seed.nodes", "db.hostname", "db.instance", "db.name", "db.namespace", "db.system", "grpc.host", "hostname", "http.host", "http.server_name", "messaging.destination", "messaging.destination.name", "messaging.kafka.bootstrap.servers", "messaging.rabbitmq.exchange", "messaging.system", "mongodb.db", "msmq.queue.path", "net.peer.name", "network.destination.name", "peer.hostname", "peer.service", "queuename", "rpc.service", "rpc.system", "server.address", "streamname", "tablename", "topicname"] +apm_config: + compute_stats_by_span_kind: true + peer_tags_aggregation: true + peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","cassandra.keyspace","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"] {{< /code-block >}} @@ -72,28 +73,28 @@ Vous pouvez aussi définir ces variables d'environnement dans la configuration d DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true DD_APM_PEER_TAGS_AGGREGATION=true -DD_APM_PEER_TAGS='["_dd.base_service", "amqp.destination", "amqp.exchange", "amqp.queue", "aws.queue.name", "aws.s3.bucket", "bucketname", "cassandra.keyspace", "db.cassandra.contact.points", "db.couchbase.seed.nodes", "db.hostname", "db.instance", "db.name", "db.namespace", "db.system", "grpc.host", "hostname", "http.host", "http.server_name", "messaging.destination", "messaging.destination.name", "messaging.kafka.bootstrap.servers", "messaging.rabbitmq.exchange", "messaging.system", "mongodb.db", "msmq.queue.path", "net.peer.name", "network.destination.name", "peer.hostname", "peer.service", "queuename", "rpc.service", "rpc.system", "server.address", "streamname", "tablename", "topicname"]". +DD_APM_PEER_TAGS='["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","cassandra.keyspace","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]' {{< /code-block >}} -Si vous utilisez Helm, incluez ces variables d'environnement dans votre [fichier][3] `values.yaml`. +Si vous utilisez Helm, incluez ces variables d'environnement dans votre `values.yaml` [fichier][3]. [1]: https://github.com/DataDog/datadog-agent/releases/tag/7.50.3 [2]: https://github.com/DataDog/datadog-agent/releases/tag/7.54.1 [3]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml {{% /tab %}} -{{% tab "OpenTelemetry Collector" %}} +{{% tab "Collector OpenTelemetry" %}} -Pour OpenTelemetry Collector, la version minimale recommandée est `opentelemetry-collector-contrib` [v0.95.0][1] ou ultérieure. Dans ce cas, mettez à jour cette configuration : +Pour le Collecteur OpenTelemetry, la version minimale recommandée est `opentelemetry-collector-contrib` [v0.95.0][1] ou ultérieure. Dans ce cas, mettez à jour cette configuration : {{< code-block lang="yaml" collapsible="true" >}} -connecteurs : - datadog/connecteur : - traces : - compute_stats_by_span_kind : true - peer_tags_aggregation : true - peer_tags : ["_dd.base_service", "amqp.destination", "amqp.exchange", "amqp.queue", "aws.queue.name", "aws.s3.bucket", "bucketname", "db.cassandra.contact.points", "db.couchbase.seed.nodes", "db.hostname", "db.instance", "db.name", "db.namespace", "db.system", "grpc.host", "hostname", "http.host", "http.server_name", "messaging.destination", "messaging.destination.name", "messaging.kafka.bootstrap.servers", "messaging.rabbitmq.exchange", "messaging.system", "mongodb.db", "msmq.queue.path", "net.peer.name", "network.destination.name", "peer.hostname", "peer.service", "queuename", "rpc.service", "rpc.system", "server.address", "streamname", "tablename", "topicname"] +connectors: + datadog/connector: + traces: + compute_stats_by_span_kind: true + peer_tags_aggregation: true + peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"] {{< /code-block >}} @@ -101,29 +102,29 @@ Si votre version de Collector est inférieure à v0.95.0, mettez à jour la conf {{< code-block lang="yaml" collapsible="true" >}} -exportateurs : - datadog : - traces : - compute_stats_by_span_kind : true - peer_tags_aggregation : true - peer_tags : ["_dd.base_service", "amqp.destination", "amqp.exchange", "amqp.queue", "aws.queue.name", "aws.s3.bucket", "bucketname", "db.cassandra.contact.points", "db.couchbase.seed.nodes", "db.hostname", "db.instance", "db.name", "db.namespace", "db.system", "grpc.host", "hostname", "http.host", "http.server_name", "messaging.destination", "messaging.destination.name", "messaging.kafka.bootstrap.servers", "messaging.rabbitmq.exchange", "messaging.system", "mongodb.db", "msmq.queue.path", "net.peer.name", "network.destination.name", "peer.hostname", "peer.service", "queuename", "rpc.service", "rpc.system", "server.address", "streamname", "tablename", "topicname"] +exporters: + datadog: + traces: + compute_stats_by_span_kind: true + peer_tags_aggregation: true + peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"] {{< /code-block >}} -**Exemple** : [collector.yaml][2]. +**Exemple** : [collector.yaml][2]. [1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.95.0 [2]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml#L375-L395 {{% /tab %}} {{< /tabs >}} -## Nommer les entités inférées +## Nommer les entités inférées {#naming-inferred-entities} -Pour déterminer les noms et les types des dépendances de service déduites, Datadog utilise les attributs standard de span et les associe aux attributs `peer.*`. Par exemple, les API externes déduites utilisent le schéma de dénomination par défaut `net.peer.name`, comme `api.stripe.com`, `api.twilio.com` et `us6.api.mailchimp.com`. Les bases de données déduites utilisent le schéma de dénomination par défaut `db.instance`. +Pour déterminer les noms et types des dépendances de service inférées, Datadog utilise des attributs de span standard et les associe aux attributs `peer.*`. Par exemple, les API externes inférées utilisent le schéma de nommage par défaut `net.peer.name` comme `api.stripe.com`, `api.twilio.com` et `us6.api.mailchimp.com`. Les bases de données inférées utilisent le schéma de nommage par défaut `db.instance`. Vous pouvez renommer les entités inférées en créant des [règles de renommage][5]. -### Étiquettes Peer +### Tags de pair {#peer-tags} -Étiquette Peer | Attributs source +Tag de pair | Attributs source --------------------|------------------- `peer.aws.dynamodb.table` | `tablename` `peer.aws.kinesis.stream` | `streamname` @@ -141,42 +142,44 @@ Pour déterminer les noms et les types des dépendances de service déduites, Da `peer.rpc.system` | `rpc.system` `peer.service` | `peer.service` -**Remarque** : les valeurs d'attribut peer qui correspondent à des adresses IP (par exemple, 127.0.0.1) sont modifiées et remplacées par `blocked-ip-address` afin d'éviter les données inutiles et de ne pas étiqueter les métriques avec des dimensions à forte cardinalité. En conséquence, certains services `blocked-ip-address` peuvent apparaître comme des dépendances en aval de vos services instrumentés. +**Remarque** : Les valeurs des attributs pair qui correspondent aux formats d'adresse IP sont modifiées et masquées avec `blocked-ip-address` pour éviter un bruit inutile et le marquage des métriques avec des dimensions à haute cardinalité. En conséquence, vous pouvez rencontrer certains services `blocked-ip-address` apparaissant comme des dépendances en aval de vos services instrumentés. -#### Priorité des étiquettes peer +#### Précedence des tags de pair{#precedence-of-peer-tags} -Pour attribuer un nom aux entités inférées, Datadog utilise un ordre de priorité spécifique entre les étiquettes peer, notamment lorsque les entités sont définies par une combinaison de plusieurs attributs. +Pour attribuer un nom aux entités inférées, Datadog utilise un ordre de priorité spécifique entre les étiquettes peer, notamment lorsque les entités sont définies par une combinaison de plusieurs attributs. -Type d'entité | Ordre de priorité +Type d'entité | Ordre de précedence -----------|---------------- Base de données | `peer.db.name` > `peer.aws.s3.bucket` (Pour AWS S3) / `peer.aws.dynamodb.table` (Pour AWS DynamoDB) / `peer.cassandra.contact.points` (Pour Cassandra) / `peer.couchbase.seed.nodes` (Pour Couchbase) > `peer.hostname` > `peer.db.system` -Queue | `peer.messaging.destination` > `peer.kafka.bootstrap.servers` (pour Kafka) / `peer.aws.sqs.queue` (pour AWS SQS) / `peer.aws.kinesis.stream` (pour AWS Kinesis) > `peer.messaging.system` -Service déduit | `peer.service` > `peer.rpc.service` > `peer.hostname` +File d'attente | `peer.messaging.destination` > `peer.kafka.bootstrap.servers` (pour Kafka) / `peer.aws.sqs.queue` (pour AWS SQS) / `peer.aws.kinesis.stream` (pour AWS Kinesis) > `peer.messaging.system` +Service inféré | `peer.service` > `peer.rpc.service` > `peer.hostname` -Si l'attribut ayant la priorité la plus élevée, comme `peer.db.name`, n'est pas capturé par l'instrumentation, Datadog utilise l'attribut de priorité suivante (ex. `peer.hostname`), et ainsi de suite. +Si le tag de la plus haute priorité, tel que `peer.db.name`, n'est pas capturé dans le cadre de l'instrumentation, Datadog utilise le tag de la deuxième plus haute priorité, comme `peer.hostname`, et poursuit dans cet ordre. -**Remarque** : Datadog ne définit jamais `peer.service` pour les bases de données et les files d'attente inférées. `peer.service` est l'attribut peer ayant la plus haute priorité. S'il est défini, il prévaut sur tous les autres attributs. +**Remarque** : Datadog ne définit jamais le `peer.service` pour les bases de données et les files d'attente inférées. `peer.service` est l'attribut de pair de la plus haute priorité. S'il est défini, il prend le pas sur tous les autres attributs. -## Migrer vers la dénomination globale par défaut des services +## Migrer vers le nom de service par défaut global {#migrate-to-global-default-service-naming} -Avec les services inférés, les dépendances sont automatiquement détectées à partir des attributs de span existants. Il n'est donc **pas nécessaire** de modifier les noms de service (via le tag `service`) pour identifier ces dépendances. +Avec les services inférés, les dépendances de service sont automatiquement détectées à partir des attributs de span existants. En conséquence, il n'est pas nécessaire de changer les noms de service (en utilisant le tag `service`) pour identifier ces dépendances. -Activez la variable `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` pour vous assurer qu'aucune intégration Datadog ne définisse de noms de service différents du nom global par défaut. Cela améliore également la représentation des connexions service-à-service et des services déduits dans les visualisations Datadog, pour tous les langages et intégrations de bibliothèques de traçage pris en charge. +Activez `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` pour garantir qu'aucune intégration Datadog ne définit des noms de service différents du nom de service global par défaut. Cela améliore également la manière dont les connexions entre services et les services inférés sont représentés dans les visualisations Datadog, dans tous les langages SDK et intégrations pris en charge. -
    L'activation de cette option peut affecter les métriques APM existantes, les métriques personnalisées de span, l'analytique de trace, les filtres de rétention, les analyses de données sensibles, les monitors, les tableaux de bord ou les notebooks qui référencent les anciens noms de service. Mettez à jour ces éléments pour utiliser le tag global par défaut service:<DD_SERVICE>.
    +
    L'activation de cette option peut avoir un impact sur les métriques APM existantes, les métriques de span personnalisées, l'analyse des traces, les filtres de rétention, les analyses de données sensibles, les moniteurs, les tableaux de bord ou les carnets qui font référence aux anciens noms de service. Mettez à jour ces actifs pour utiliser le tag de service par défaut global (service:<DD_SERVICE>).
    Pour savoir comment supprimer les remplacements de service et migrer vers les services inférés, consultez le [guide sur les remplacements de service][4]. -[1]: /fr/software_catalog/ +[1]: /fr/internal_developer_portal/catalog/ [2]: /fr/tracing/services/service_page [3]: /fr/database_monitoring/ [4]: /fr/tracing/guide/service_overrides +[5]: /fr/tracing/services/renaming_rules/ + {{< /site-region >}} -{{< site-region region="gov" >}} -
    La fonctionnalité des services déduits n'est pas activée par défaut dans votre datacenter. Veuillez remplir ce formulaire pour demander l'accès.
    +{{< site-region region="gov,gov2" >}} +
    La fonctionnalité Services Inférés n'est pas disponible par défaut dans votre centre de données. Remplissez ce formulaire pour demander l'accès.
    {{< /site-region >}} -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/fr/tracing/trace_collection/compatibility/java.md b/content/fr/tracing/trace_collection/compatibility/java.md new file mode 100644 index 00000000000..b75791082eb --- /dev/null +++ b/content/fr/tracing/trace_collection/compatibility/java.md @@ -0,0 +1,538 @@ +--- +aliases: +- /fr/tracing/compatibility_requirements/ +- /fr/tracing/compatibility_requirements/java +- /fr/tracing/setup_overview/compatibility_requirements/java +code_lang: java +code_lang_weight: 0 +description: Exigences de compatibilité pour le traceur Java +further_reading: +- link: tracing/trace_collection/dd_libraries/java + tag: Documentation + text: Instrumenter votre application +title: Exigences de compatibilité Java +type: multi-code-lang +--- +## Compatibilité {#compatibility} + +La bibliothèque de tracing Datadog Java est open source. Consultez le [référentiel GitHub][1] pour en savoir plus. + +### Java runtimes pris en charge {#supported-java-runtimes} + +Le Java Tracer prend en charge l'instrumentation automatique pour les runtimes Oracle JDK, OpenJDK JVM et [GraalVM](#graalvm-native-image-support). + +#### Java Tracer v1 (latest) {#java-tracer-v1-latest} + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Versions JavaSystèmes d'exploitationNiveau de support
    à partir de 27 et au-dessusWindows (x86, x86-64)
    Linux (x86, x86-64, arm64)
    Mac (x86, x86-64, arm64)
    Aperçu
    de 18 à 26Windows (x86, x86-64)
    Linux (x86, x86-64, arm64)
    Mac (x86, x86-64, arm64)
    GA
    de 8 à 17Windows (x86, x86-64)
    Linux (x86, x86-64)
    Mac (x86, x86-64)
    GA
    Linux (arm64)
    Mac (arm64)
    Aperçu
    + +Datadog ne prend pas officiellement en charge les versions de Java en accès anticipé. + +#### Java Tracer v0 {#java-tracer-v0} + +| Versions Java | Systèmes d'exploitation | Niveau de support | +|--------------------|---------------------------------------------------------------------------------|-----------------------------------| +| 7 uniquement | Windows (x86, x86-64)
    Linux (x86, x86-64)
    Mac (x86, x86-64) | [Fin de vie](#levels-of-support) | +| 7 uniquement | Linux (arm64)
    Mac (arm64) | [Fin de vie](#levels-of-support) | + +### Niveaux de support {#levels-of-support} + +| **Niveau** | **Support fourni** | +|--------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------| +| Non pris en charge | Aucune implémentation. Contactez [le support Datadog][2] pour des demandes spéciales. | +| Aperçu | Implémentation initiale. Peut ne pas encore contenir toutes les fonctionnalités. Le support pour les nouvelles fonctionnalités ainsi que les corrections de bogues et de sécurité est fourni sur une base de meilleur effort. | +| Disponibilité générale (GA) | Implémentation complète de toutes les fonctionnalités. Support complet pour les nouvelles fonctionnalités ainsi que les corrections de bogues et de sécurité. | +| Maintenance | Implémentation complète des fonctionnalités existantes. Ne reçoit pas de nouvelles fonctionnalités. Support uniquement pour les corrections de bogues et de sécurité. | +| Fin de vie (EOL) | Aucun support. | + +## Intégrations {#integrations} + +Les intégrations en aperçu sont désactivées par défaut mais peuvent être activées individuellement : + +- Propriété système : `-Ddd.integration..enabled=true` +- Variable d'environnement : `DD_INTEGRATION__ENABLED=true` + +### Compatibilité des frameworks web {#web-framework-compatibility} + +`dd-java-agent` inclut le support pour le traçage automatique des frameworks web suivants. + +**Le traçage des frameworks web fournit :** + +- le temps de la requête HTTP à la réponse +- les balises pour la requête HTTP (code d'état, méthode, etc.) +- la capture des erreurs et des traces de pile +- le lien entre le travail créé dans une requête web et le traçage distribué + +| Serveur | Versions | Type de support | Noms d'instrumentation (utilisés pour la configuration) | +|-------------------------|--------------|--------------------------------------------------------|------------------------------------------------------------| +| Serveur Akka-Http | 10.0+ | Entièrement pris en charge | `akka-http`, `akka-http-server` | +| Apache Pekko | 1.0+ | Entièrement pris en charge | `pekko-http`, `pekko-http-server` | +| Finatra Web | 2.9+ | Entièrement pris en charge | `finatra` | +| Grizzly | 2.0+ | Entièrement pris en charge | `grizzly` | +| Grizzly-HTTP | 2.3.20+ | Entièrement pris en charge | `grizzly-filterchain` | +| Compatible avec Java Servlet | 2.3+, 3.0+ | Entièrement pris en charge | `servlet`, `servlet-2`, `servlet-3` | +| Annotations Jax-RS | JSR311-API | Entièrement pris en charge | `jax-rs`, `jaxrs`, `jax-rs-annotations`, `jax-rs-filter` | +| Jetty | 7.0-12.x | Entièrement pris en charge | `jetty` | +| Serveur HTTP Micronaut | 2.x+ | Entièrement pris en charge | `micronaut` | +| Mulesoft | 4.5.0+ | Entièrement pris en charge | `mule` | +| Serveur HTTP Netty | 3.8+ | Entièrement pris en charge | `netty`, `netty-3.8`, `netty-4.0`, `netty-4.1` | +| Play | 2.3-2.8 | Entièrement pris en charge | `play`, `play-action` | +| Ratpack | 1.5+ | Entièrement pris en charge | `ratpack` | +| Serveur HTTP Restlet | 2.2 - 2.4 | Entièrement pris en charge | `restlet-http`. | +| Spark Java | 2.3+ | [Aperçu](#framework-integrations-disabled-by-default) | `sparkjava` (nécessite `jetty`) | +| Spring Boot | 1.5+ | Entièrement pris en charge | `spring-web` ou `spring-webflux` | +| Spring Web (MVC) | 4.0+ | Entièrement pris en charge | `spring-web` | +| Spring WebFlux | 5.0+ | Entièrement pris en charge | `spring-webflux` | +| Tomcat | 5.5+ | Entièrement pris en charge | `tomcat` | +| Undertow | 2.0+ | Entièrement pris en charge | `undertow` | +| Vert.x | 3.4 - 5.x | Entièrement pris en charge | `vertx`, `vertx-3.4`, `vertx-3.9`, `vertx-4.0`, `vertx-5.0`| +| Websocket (JSR356) | 1.0+ | [Aperçu](#framework-integrations-disabled-by-default) | `websocket` | + +**Remarque** : De nombreux serveurs d'applications sont compatibles avec Servlet et sont automatiquement couverts par cette instrumentation, tels que Websphere, Weblogic et JBoss. +De plus, des frameworks comme Spring Boot (version 3) fonctionnent intrinsèquement car ils utilisent généralement un serveur d'application intégré pris en charge, tel que Tomcat, Jetty ou Netty. + +### Intégrations de framework désactivées par défaut {#framework-integrations-disabled-by-default} + +Les instrumentations suivantes sont désactivées par défaut et peuvent être activées avec les paramètres suivants : + +| Instrumentation | À activer | +|------------------------------|----------------------------------------------------------------------------------------------------------| +| Grizzly | `-Ddd.integration.grizzly-client.enabled=true` | +| Grizzly-HTTP | `-Ddd.integration.grizzly-filterchain.enabled=true` | +| Hazelcast (côté client uniquement) | `-Ddd.integration.hazelcast.enabled=true`
    `-Ddd.integration.hazelcast_legacy.enabled=true` | +| Ignite | `-Ddd.integration.ignite.enabled=true` | +| JAX-WS | `-Ddd.integration.jax-ws.enabled=true` | +| Source de données JDBC | `-Ddd.integration.jdbc-datasource.enabled=true` | +| Mulesoft | `-Ddd.integration.mule.enabled=true` | +| Netty Promise | `-Ddd.integration.netty-promise.enabled=true` | +| Ning | `-Ddd.integration.ning.enabled=true` | +| Spark Java | `-Ddd.integration.sparkjava.enabled=true` | +| TIBCO BusinessWorks | `-Ddd.integration.tibco.enabled=true` | +| Connexion URL | `-Ddd.integration.urlconnection.enabled=true`
    `-Ddd.integration.httpurlconnection.enabled=true` | +| Websocket | `-Ddd.trace.websocket.messages.enabled=true` | +| ZIO | `-Ddd.integration.zio.experimental.enabled=true` | + + +**Remarque** : L'instrumentation d'intégration JAX-WS couvre les endpoints annotés avec @WebService (JAX-WS 1.x) et @WebServiceProvider (JAX-WS 2.x). + +Vous ne voyez pas vos frameworks web souhaités ? Datadog ajoute continuellement un support supplémentaire. Contactez [le support Datadog][2] si vous avez besoin d'aide. + +### Compatibilité des frameworks de mise en réseau {#networking-framework-compatibility} + +`dd-java-agent` inclut le support pour le traçage automatique des frameworks de mise en réseau suivants. + +**Le traçage réseau fournit :** + +- le temps de la demande à la réponse +- les tags pour la demande (par exemple, le code de réponse) +- la capture des erreurs et des traces de pile +- le traçage distribué + +| Framework | Versions | Type de support | Noms d'instrumentation (utilisés pour la configuration) | +|------------------------------------|-------------|--------------------------------------------------------|---------------------------------------------------------| +| Apache HTTP Client | 4.0+ | Entièrement pris en charge | `httpclient`, `apache-httpclient`, `apache-http-client` | +| Apache HTTP Async Client | 4.0+ | Entièrement pris en charge | `httpasyncclient`, `apache-httpasyncclient` | +| AWS Java SDK | 1.11+, 2.2+ | Entièrement pris en charge | `aws-sdk` | +| Camel-OpenTelemetry | 3.12.0+ | Aperçu | [opentelemetry-1][5] | +| Commons HTTP Client | 2.0+ | Entièrement pris en charge | `commons-http-client` | +| Google HTTP Client | 1.19.0+ | Entièrement pris en charge | `google-http-client` | +| Google Pub/Sub | 1.116.0+ | Entièrement pris en charge | `google-pubsub` | +| Grizzly HTTP Client | 1.9+ | [Aperçu](#framework-integrations-disabled-by-default) | `grizzly-client` | +| gRPC | 1.5+ | Entièrement pris en charge | `grpc`, `grpc-client`, `grpc-server` | +| HttpURLConnection | toutes versions | Entièrement pris en charge | `httpurlconnection`, `urlconnection` | +| Kafka-Clients | 0.11+ | Entièrement pris en charge | `kafka` | +| Kafka-Streams | 0.11+ | Entièrement pris en charge | `kafka`, `kafka-streams` | +| Java RMI | toutes versions | Traçage distribué non pris en charge | `rmi`, `rmi-client`, `rmi-server` | +| Jax RS Clients | 2.0+ | Entièrement pris en charge | `jax-rs`, `jaxrs`, `jax-rs-client` | +| Jersey Client | 1.9-2.29 | Entièrement pris en charge | `jax-rs`, `jaxrs`, `jax-rs-client` | +| JMS / Jakarta JMS | 1-3.0+ | Entièrement pris en charge | `jms`, `jms-1`, `jms-2`, `jakarta-jms` | +| Netty HTTP Client | 4.0+ | Entièrement pris en charge | `netty`, `netty-4.0`, `netty-4.1` | +| Ning HTTP Client | 1.9.0+ | [Aperçu](#framework-integrations-disabled-by-default) | `ning` | +| OkHTTP | 2.2+ | Entièrement pris en charge | `okhttp`, `okhttp-2`,`okhttp-3` | +| Play WSClient | 1.0+ | Entièrement pris en charge | `play-ws` | +| Rabbit AMQP | 2.7+ | Entièrement pris en charge | `amqp`, `rabbitmq` | +| SOFA RPC | 5.0+ | Entièrement pris en charge | `sofarpc` | +| Spring SessionAwareMessageListener | 3.1+ | Entièrement pris en charge | `spring-jms-3.1` | +| Spring WebClient | 5.0+ | Entièrement pris en charge | `spring-webflux`, `spring-webflux-client` | + +**Note Kafka** : L'intégration Kafka de Datadog fonctionne avec la version Kafka `0.11+`, qui prend en charge l'API Header. Cette API est utilisée pour injecter et extraire le contexte de trace. Si vous exécutez un environnement avec des versions mixtes, le courtier Kafka peut signaler incorrectement la version plus récente de Kafka. Cela pose un problème lorsque le SDK essaie d'injecter des en-têtes qui ne sont pas pris en charge par le producteur local. De plus, les consommateurs plus anciens ne peuvent pas consommer le message en raison de la présence d'en-têtes. Pour éviter ces problèmes, si vous exécutez un environnement Kafka avec des versions mixtes antérieures à 0.11, désactivez la propagation du contexte avec la variable d'environnement : `DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false`. + +**Note JMS** : L'intégration JMS de Datadog ajoute et lit automatiquement les propriétés des objets de message `x__dash__datadog__dash__trace__dash__id` et `x__dash__datadog__dash__parent__dash__id` pour maintenir la propagation du contexte entre les services consommateurs et producteurs. + +**Note Camel** : La propagation de trace distribuée sur les routes Camel n'est pas prise en charge. + +**Note SOFA RPC** : L'intégration SOFA RPC de Datadog prend en charge les protocoles de transport Bolt, Triple et REST. Triple utilise le transport gRPC ; le traçage distribué pour les appels Triple nécessite que l'intégration `grpc` reste activée. + +Vous ne voyez pas le framework réseau souhaité ? Datadog ajoute continuellement un support supplémentaire. Contactez [le support Datadog][2] si vous avez besoin d'aide. + +### Compatibilité des magasins de données {#data-store-compatibility} + +`dd-java-agent` inclut le support pour le traçage automatique des frameworks/drivers de base de données suivants. + +**Le traçage des magasins de données fournit :** + +- temps de la requête à la réponse +- informations de requête (par exemple, une chaîne de requête assainie) +- capture d'erreur et de stacktrace + +| Base de données | Versions | Type de support | Noms d'instrumentation (utilisés pour la configuration) | +|-------------------------|----------|-----------------|--------------------------------------------------------------------------------------------| +| Aerospike | 4.0+ | Entièrement pris en charge | `aerospike` | +| Couchbase | 2.0+ | Entièrement pris en charge | `couchbase` | +| Cassandra | 3.0+ | Entièrement pris en charge | `cassandra` | +| Elasticsearch Transport | 2.0+ | Entièrement pris en charge | `elasticsearch`, `elasticsearch-transport`, `elasticsearch-transport-{2,5,6,7}` (choisissez-en un) | +| Elasticsearch Rest | 5.0+ | Entièrement pris en charge | `elasticsearch`, `elasticsearch-rest`, `elasticsearch-rest-{5,6,7}` (choisissez-en un) | +| Ignite | 2.0-3.0 | [Aperçu](#framework-integrations-disabled-by-default) | `ignite` | +| JDBC | N/A | Entièrement pris en charge | `jdbc`, `jdbc-datasource` | +| Jedis | 1.4+ | Entièrement pris en charge | `jedis`, `redis` | +| Lettuce | 4.0+ | Entièrement pris en charge | `lettuce`, `lettuce-4-async`, `lettuce-5-rx` | +| MongoDB | 3.0-4.0+ | Entièrement pris en charge | `mongo` | +| OpenSearch Rest | 1.x-2.x | Entièrement pris en charge | `opensearch`, `opensearch-rest` | +| OpenSearch Transport | 1.x-2.x | Entièrement pris en charge | `opensearch`, `opensearch-transport` | +| RediScala | 1.5+ | Entièrement pris en charge | `rediscala`, `redis` | +| Redisson | 2.x-3.x | Entièrement pris en charge | `redisson`, `redis` | +| SpyMemcached | 2.12+ | Entièrement pris en charge | `spymemcached` | +| Vert.x Cassandra Client | 3.9-4.x | Entièrement pris en charge | `cassandra` | +| Vert.x Redis Client | 3.9-4.x | Entièrement pris en charge | `vertx-redis-client` | +| Vert.x MySQL Client | 3.9-4.x | Entièrement pris en charge | `vertx-sql-client` | + +**Remarque** : Redis 6.0+ prend en charge l'authentification en ligne dans des commandes telles que `HELLO`, `MIGRATE` et `ACL SETUSER`. + + - **Agent de trace Datadog** : La version minimale requise et recommandée est `7.76.1` pour garantir que les paramètres d'authentification sont automatiquement obfusqués dans les métadonnées de trace. + - **Extension Lambda Datadog** (environnements sans serveur) : La version minimale requise est `v28.0.0`. + +`dd-java-agent` est également compatible avec les pilotes JDBC courants, y compris : + +- Apache Derby +- Firebird SQL +- H2 Database Engine +- HSQLDB +- IBM DB2 +- MariaDB +- MSSQL (Microsoft SQL Server) +- MySQL +- Oracle +- Postgres SQL +- ScalikeJDBC + +### Intégrations de base de données désactivées par défaut {#database-integrations-disabled-by-default} + +Les instrumentations suivantes sont désactivées par défaut et peuvent être activées avec les paramètres suivants : + +| Instrumentation | Pour activer | +|-------------------|-------------------------------------------------| +| JDBC-Datasource | - Propriété système : `-Ddd.integration.jdbc-datasource.enabled=true`
    - Variable d'environnement : `DD_INTEGRATION_JDBC_DATASOURCE_ENABLED=true` | + +Vous ne voyez pas vos magasins de données souhaités ? Datadog ajoute continuellement un support supplémentaire. Contactez [le support Datadog][2] si vous avez besoin d'aide. + +### Compatibilité supplémentaire avec les frameworks {#additional-framework-compatibility} + +`dd-java-agent` inclut le support pour le traçage automatique des frameworks suivants. + +| Framework | Versions | Support Type | Instrumentation Names (used for configuration) | +|---------------------|------------------|--------------------------------------------------------|------------------------------------------------| +| Apache CXF (Jax-WS) | 3.0+ | [OpenTelemetry Extension][10] | `cxf` | +| Datanucleus JDO | 4.0+ | Entièrement pris en charge | `datanucleus` | +| Dropwizard Views | 0.7+ | Entièrement pris en charge | `dropwizard`, `dropwizard-view` | +| GraphQL | 14.0+ | Entièrement pris en charge | `graphql-java` | +| Hazelcast (client) | 3.6+ | [Aperçu](#framework-integrations-disabled-by-default) | `hazelcast`, `hazelcast_legacy` | +| Hibernate | 3.5+ | Entièrement pris en charge | `hibernate`, `hibernate-core` | +| Hystrix | 1.4+ | Entièrement pris en charge | `hystrix` | +| Rendu JSP | 2.3+ | Entièrement pris en charge | `jsp`, `jsp-render`, `jsp-compile` | +| JUnit | 4.1+, 5.3+ | Entièrement pris en charge | `junit`, `junit-4`, `junit-5` | +| Kotlin Coroutines | 1.3+ | Entièrement pris en charge | `kotlin_coroutine` | +| Project Reactor | 3.1+ | Entièrement pris en charge | `reactor-core` | +| Quartz | 2.x | Entièrement pris en charge | `quartz` | +| RxJava | 2.x | Entièrement pris en charge | `rxjava` | +| Spring Data | 1.8+ | Entièrement pris en charge | `spring-data` | +| Planification Spring | 3.1+ | Entièrement pris en charge | `spring-scheduling` | +| TIBCO BusinessWorks | 5.14.0 - 6.11.0 | [Aperçu](#framework-integrations-disabled-by-default) | `tibco`, `tibco_bw` | +| Twilio SDK | < 8.0 | Entièrement pris en charge | `twilio-sdk` | + +Vous ne voyez pas les frameworks souhaités ? Datadog ajoute continuellement un support supplémentaire. Pour demander un framework, contactez notre [équipe de support][2]. + +Pour améliorer la visibilité des applications utilisant des frameworks non pris en charge, considérez l'une des solutions suivantes : + +- [Ajout d'instrumentation personnalisée][3]. +- [Soumettre un pull request][4] avec instrumentation pour inclusion dans une future version. +- Contacter [le support Datadog][2] et soumettre une demande de fonctionnalité. + +### Désactiver les intégrations {#disabling-integrations} + +La plupart des intégrations sont activées par défaut. Le paramètre suivant peut modifier la configuration par défaut afin de la désactiver. + +- Propriété système : `-Ddd.integrations.enabled=false` +- Variable d'environnement : `DD_INTEGRATIONS_ENABLED=false` + +Les intégrations peuvent être activées ou désactivées individuellement (ce qui remplace la valeur par défaut ci-dessus). + +- Propriété système : `-Ddd.integration..enabled=true` +- Variable d'environnement : `DD_INTEGRATION__ENABLED=true` + +(Le nom de chaque intégration est affiché ci-dessus.) + +### Problèmes connus {#known-issues} + +- L'exécution du traceur Java dans Bitbucket n'est pas prise en charge. +- Charger plusieurs agents Java qui effectuent des fonctions APM/tracing n'est pas une configuration recommandée ou prise en charge. +- Lors de l'exécution du SDK avec Java 24+, vous pouvez voir des avertissements liés à l'accès natif JNI. Supprimez ces avertissements en ajoutant l'option `--enable-native-access=ALL-UNNAMED`. Voir [JEP 472][13] pour plus d'informations. + +## Support de chargement et de liaison de classes à l'avance (AOT) {#ahead-of-time-aot-class-loading-linking-support} + +Pour améliorer le temps de démarrage, le chargement et la liaison de classes à l'avance (AOT) rendent les classes d'application instantanément disponibles dans un état chargé et lié lorsque la JVM démarre. Voir [JEP 483][14] et [JEP 514][15] pour plus d'informations. + +### Exigences {#requirements} + +Utiliser : + +- Java 25 ou version ultérieure +- [Datadog Java SDK][1] 1.57.0 ou version ultérieure + +### Configuration {#setup} + +Pour configurer le chargement et la liaison de classes AOT pour APM, ajoutez le Datadog Java SDK lors de l'exécution de la formation : + +```shell +java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCacheOutput=app.aot -jar App.jar +``` + +#### Utilisation {#usage} + +Pendant la production, ajoutez le même Datadog Java SDK avec les données de formation mises en cache précédemment : + +```shell +java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCache=app.aot -jar App.jar +``` + +Vous pouvez visualiser les traces en utilisant le [Trace Explorer][9]. + +{{% collapse-content title="Dépannage" level="h4" %}} +##### Ne pas attacher le Datadog Java SDK lors de l'exécution de formation {#not-attaching-the-datadog-java-sdk-during-the-training-run} + +Si vous voyez cet avertissement en production, cela signifie que le Datadog Java SDK n'a pas été attaché lors de la formation : + +``` +Mismatched values for property jdk.module.addmods: java.instrument specified during runtime but not during dump time +``` +La JVM ne peut alors pas utiliser le cache AOT pour améliorer le temps de démarrage. La solution consiste à attacher le Datadog Java SDK lors de la formation. + +{{% /collapse-content %}} + +## Support de l'image native GraalVM {#graalvm-native-image-support} + +L'image native GraalVM est une technologie qui vous permet de compiler des applications Java en exécutables natifs. Le Datadog Java SDK prend en charge l'image native GraalVM. Cela vous permet de compiler vos applications en exécutables natifs tout en bénéficiant des capacités de traçage offertes par la bibliothèque. + +### Exigences {#requirements-1} + +Utiliser : + +- [GraalVM JDK 21 ou JDK 25][7] +- [Datadog Java SDK][1] + +### Configuration {#setup-1} + +{{< tabs >}} +{{% tab "GraalVM" %}} +Pour configurer le Datadog Java SDK avec GraalVM Native Image, suivez ces étapes : + +1. Instrumentez votre application, en suivant les étapes décrites dans [Tracer les applications Java][6]. +2. Lorsque vous construisez un exécutable natif avec la commande `native-image`, ajoutez l'argument `-J-javaagent:/path/to/dd-java-agent.jar`. Exemple : + ```shell + native-image -J-javaagent:/path/to/dd-java-agent.jar -jar App.jar + ``` +3. (Optionnel) Activez l'intégration du profiler en ajoutant l'argument suivant : +`-J-Ddd.profiling.enabled=true --enable-monitoring=jfr`. + - Pour les versions du traceur antérieures à `1.39.1`, lors de l'exécution de l'exécutable natif généré, assurez-vous que `DD_PROFILING_START_FORCE_FIRST=true` est défini comme variable d'environnement. + +[6]: /fr/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ +{{% /tab %}} + +{{% tab "Quarkus Native" %}} +Pour configurer le Datadog Java SDK avec Quarkus Native, suivez ces étapes : + +1. Instrumentez votre application, en suivant les étapes décrites dans [Tracer les applications Java][6]. +2. Lorsque vous construisez un exécutable natif, utilisez la propriété `quarkus.native.additional-build-args`. Exemple : + ```shell + ./mvnw package -Dnative -Dquarkus.native.additional-build-args='-J-javaagent:/path/to/dd-java-agent.jar' + ``` +3. (Facultatif) Activez l'intégration du profiler en ajoutant l'argument suivant : +`-J-Ddd.profiling.enabled=true --enable-monitoring=jfr`. + - Pour les versions du traceur antérieures à `1.39.1`, lors de l'exécution de l'exécutable natif généré, assurez-vous que `DD_PROFILING_START_FORCE_FIRST=true` est défini comme variable d'environnement. + +[6]: /fr/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ +{{% /tab %}} + +{{% tab "Spring Native" %}} +Pour configurer le Datadog Java SDK avec Spring Native, suivez ces étapes : + +1. Instrumentez votre application, en suivant les étapes décrites dans [Tracer les applications Java][6]. +2. Pour les constructions Spring Native basées sur Buildpacks, activez le [Paketo Buildpack pour Datadog][8] en utilisant `BP_DATADOG_ENABLED=true`. + - Vous pouvez le faire au niveau de l'outil de construction, comme Maven : + ```yaml + + + + org.springframework.boot + spring-boot-maven-plugin + + + ... + + ... + true + ... + + + + + + + ``` + - Alternativement, vous pouvez utiliser la commande `pack build` avec l'option `--env BP_DATADOG_ENABLED=true` pour activer le buildpack Datadog. +3. (Facultatif) Activez l'intégration du profiler en définissant la variable d'environnement `BP_NATIVE_IMAGE_BUILD_ARGUMENTS=’-J-Ddd.profiling.enabled=true --enable-monitoring=jfr’`. + - Pour les versions du traceur antérieures à `1.39.1`, lors de l'exécution de l'exécutable natif généré, assurez-vous que `DD_PROFILING_START_FORCE_FIRST=true` est défini comme variable d'environnement. + +[6]: /fr/tracing/trace_collection/automatic_instrumentation/dd_libraries/java/ +[8]: https://github.com/paketo-buildpacks/datadog +{{% /tab %}} + +{{< /tabs >}} + +
    Pour GraalVM 25, vous pouvez voir des erreurs liées à Use of Unsafe. Ajouter -Dnet.bytebuddy.safe=false lors de la construction de l'exécutable natif pour résoudre ce problème.
    + +#### Utilisation {#usage-1} + +Après avoir terminé la configuration, le service doit envoyer des traces à Datadog. + +Vous pouvez visualiser les traces en utilisant le [Trace Explorer][9]. + +{{% collapse-content title="Dépannage" level="h4" %}} +##### Les fonctionnalités ne sont pas activées ou configurées correctement pour les images natives {#features-are-not-enabled-or-configured-correctly-for-native-images} + +Il existe des problèmes connus concernant l'accès aux propriétés système à l'exécution depuis un binaire construit avec Graal Native Image. + +- Pour la configuration à l'exécution, utilisez des variables d'environnement (`DD_PROPERTY_NAME=value`), au lieu des propriétés système (`-Ddd.property.name=value`). +- L'exception à cette règle est lors de l'activation du profileur. Dans ce cas, passez `-J-Ddd.profiling.enabled=true` à l'outil `native-image` au moment de la construction __. + +##### Les versions du buildpack native-image antérieures à 5.12.2 {#native-image-buildpack-versions-older-than-5122} + +Les anciennes versions du buildpack native-image exposent l'option suivante : `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM`. + +Lorsque cette option est `false`, des exceptions comme celles-ci peuvent se produire : + +```text +Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: +com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: +No instances of datadog.trace.bootstrap.DatadogClassLoader are allowed in the image heap +as this class should be initialized at image runtime. To see how this object got +instantiated use --trace-object-instantiation=datadog.trace.bootstrap.DatadogClassLoader. +``` + +Les solutions à ce problème sont : + +- Définir `USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM` explicitement sur vrai dans la configuration de l'environnement de l'image, +- Ou mettre à niveau le buildpack `native-image` vers la version 5.12.2 ou ultérieure. La meilleure façon de procéder est de mettre à niveau le buildpack `java-native-image` vers la version 8.13.0 ou ultérieure. + +##### Buildpack Paketo pour Datadog versions antérieures à 4.6.0 {#paketo-buildpack-for-datadog-versions-older-than-460} + +Le buildpack Paketo pour Datadog avait un bug dans les anciennes versions qui se manifestait par le message d'erreur suivant : + +```text +disabling Datadog at launch time is unsupported for Node +ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers +paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1 +``` + +La solution à ce problème est de mettre à niveau vers la version 4.6.0 ou ultérieure. + +##### Le build Spring Native plante avec l'erreur exec.d/toggle {#spring-native-build-crashes-with-execdtoggle-error} + +Vous pouvez rencontrer une erreur similaire à celle ci-dessus, même sur des versions de buildpack plus récentes que 4.6.0, lors de la construction d'une image native Spring Boot : + +```text +disabling Datadog at launch time is unsupported for Node +ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers +paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1 +``` + +Cela se produit généralement parce que le buildpack Datadog s'exécute avant le buildpack d'image native, donc il ne sait pas qu'une construction d'image native est prévue. Il ajoute incorrectement un script de basculement destiné aux builds JVM, qui est incompatible avec l'exécutable natif final. + +La solution consiste à définir explicitement la variable d'environnement `BP_NATIVE_IMAGE` sur `true` dans la configuration `spring-boot-maven-plugin`. Cela garantit que tous les buildpacks sont conscients qu'il s'agit d'une build d'image native dès le départ. + +```yaml + + + + org.springframework.boot + spring-boot-maven-plugin + + + ... + + ... + true + ... + + + + + + +``` + +##### Problème d'activation du SDK Datadog {#problem-activating-datadog-sdk} + +Vous pourriez rencontrer des erreurs d'initialisation si votre configuration de traceur repose sur les Unix Domain Sockets (UDS), qui ne sont pas pris en charge dans les images natives : + +```text +dd.trace 2024-12-30 08:34:43:306 +0000] [main] WARN datadog.trace.agent.tooling.nativeimage.TracerActivation - Problem activating datadog tracer +java.lang.NoClassDefFoundError: Could not initialize class jnr.unixsocket.UnixSocketChannel +``` + +La solution consiste à configurer le traceur Java pour utiliser une communication basée sur l'hôte (`hostip` ou `service` mode), plutôt que sur une communication basée sur des sockets (`socket` mode). + +Pour plus d'informations, voir [Configurer le mode de communication APM et DogstatsD][11]. Pour les configurations qui ne dépendent pas de l'Admission Controller, voir la documentation pour [DD_TRACE_AGENT_URL][12]. + +{{% /collapse-content %}} + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-trace-java +[2]: https://www.datadoghq.com/support/ +[3]: /fr/tracing/manual_instrumentation/java +[4]: https://github.com/DataDog/documentation#outside-contributors +[5]: /fr/tracing/trace_collection/otel_instrumentation/java/ +[7]: https://www.graalvm.org/downloads/ +[9]: /fr/tracing/trace_explorer/ +[10]: /fr/opentelemetry/interoperability/instrumentation_libraries/?tab=java +[11]: /fr/containers/cluster_agent/admission_controller/?tab=datadogoperator#configure-apm-and-dogstatsd-communication-mode +[12]: /fr/tracing/trace_collection/library_config/#agent +[13]: https://openjdk.org/jeps/472 +[14]: https://openjdk.org/jeps/483 +[15]: https://openjdk.org/jeps/514 \ No newline at end of file diff --git a/content/fr/tracing/trace_collection/library_config/java.md b/content/fr/tracing/trace_collection/library_config/java.md index f6d9a7f22e2..831de976317 100644 --- a/content/fr/tracing/trace_collection/library_config/java.md +++ b/content/fr/tracing/trace_collection/library_config/java.md @@ -3,360 +3,635 @@ code_lang: java code_lang_weight: 0 further_reading: - link: https://github.com/DataDog/dd-trace-java - tag: GitHub + tag: Code source text: Code source de l'APM Datadog Java - link: tracing/glossary/ tag: Documentation text: Explorer vos services, ressources et traces -title: Configurer la bibliothèque de tracing Java +- link: /tracing/trace_collection/trace_context_propagation/ + tag: Documentation + text: Propagation du contexte des traces avec des en-têtes +- link: /opentelemetry/interoperability/environment_variable_support + tag: Documentation + text: Configuration des variables d'environnement OpenTelemetry +- link: https://learn.datadoghq.com/courses/apm-java-host + tag: Centre d'apprentissage + text: Configurer APM pour les applications Java +title: Configuration du SDK Java type: multi-code-lang --- +Après avoir configuré le SDK avec votre code et configuré l'Agent pour collecter les données APM, configurez le SDK selon vos souhaits, y compris la mise en place de [Unified Service Tagging][1]. -Après avoir configuré la bibliothèque de tracing avec votre code ainsi que l'Agent de façon à recueillir des données APM, vous pouvez ajuster sa configuration selon vos besoins, notamment en configurant le [tagging de service unifié][1]. +{{% apm-config-visibility %}} -Toutes les options de configuration ci-dessous ont une propriété système et une variable d'environnement équivalentes. +Toutes les options de configuration ci-dessous ont des équivalents en propriétés système et en variables d'environnement. Si le même type de clé est défini pour les deux, la configuration de la propriété système est prioritaire. -Les propriétés système peuvent être définies en tant que flags JVM. +Les propriétés système peuvent être définies comme des JVM flags. -Remarque : si vous utilisez les propriétés système du traceur Java, assurez-vous de les spécifier avant `-jar`, afin qu'elles soient lues en tant qu'options JVM. +### Conversion entre propriétés système et variables d'environnement {#converting-between-system-properties-and-environment-variables} +Sauf indication contraire, vous pouvez convertir entre propriétés système et variables d'environnement avec les transformations suivantes : +- Pour définir une propriété système comme une variable d'environnement, mettez le nom de la propriété en majuscules et remplacez `.` ou `-` par `_`. + Par exemple, `dd.service` devient `DD_SERVICE`. +- Pour définir une variable d'environnement comme une propriété système, mettez le nom de la variable en minuscules et remplacez `_` par `.` + Par exemple, `DD_TAGS` devient `dd.tags`. -`dd.service` -: **Variable d'environnement** : `DD_SERVICE`
    -**Valeur par défaut** : `unnamed-java-app`
    -Le nom d'un ensemble de processus qui effectuent la même tâche. Utilisé pour regrouper les statistiques de votre application. Disponible à partir de la version 0.50.0. +**Remarque**: Lors de l'utilisation des propriétés système du traceur Java, listez les propriétés avant `-jar`. Cela garantit que les propriétés sont lues en tant qu'options JVM. -`dd.tags` -: **Variables d'environnement** : `DD_TAGS`
    -**Valeur par défaut** : `null`
    -**Exemple** : `layer:api,team:intake`
    -La liste des tags par défaut à ajouter à chaque span, profil et métrique JMX. Si la variable DD_ENV ou DD_VERSION est utilisée, tout tag « env » ou « version » défini dans DD_TAGS est remplacé. Disponible à partir de la version 0.50.0. +## Options de configuration {#configuration-options} + +### Unified Service Tagging {#unified-service-tagging} + +`dd.service` +: **Variable d'environnement**: `DD_SERVICE`
    +**Par défaut**: `unnamed-java-app`
    +Le nom d'un ensemble de processus qui effectuent le même travail. Utilisé pour regrouper les statistiques de votre application. Disponible pour les versions 0.50.0+. `dd.env` -: **Variable d'environnement** : `DD_ENV`
    -**Valeur par défaut** : `none`
    -L'environnement de votre application (par exemple, production ou staging). Disponible à partir de la version 0.48. +: **Variable d'environnement**: `DD_ENV`
    +**Par défaut**: `none`
    +Votre environnement d'application (par exemple, production, staging). Disponible pour les versions 0.48+. `dd.version` -: **Variable d'environnement** : `DD_VERSION`
    -**Valeur par défaut** : `null`
    -La version de votre application (par exemple, 2.5, 202003181415 ou 1.3-alpha). Disponible à partir de la version 0.48. +: **Variable d'environnement**: `DD_VERSION`
    +**Par défaut**: `null`
    +Votre version d'application (par exemple, 2.5, 202003181415, 1.3-alpha). Disponible pour les versions 0.48+. -`dd.logs.injection` -: **Variable d'environnement** : `DD_LOGS_INJECTION`
    -**Valeur par défaut** : `true`
    -Active l'injection automatique des clés MDC pour les ID de span et de trace Datadog. Consultez la section relative à l'[utilisation avancée][2] pour en savoir plus. +### Traces {#traces} + +`dd.trace.enabled` +: **Variable d'environnement**: `DD_TRACE_ENABLED`
    +**Par défaut**: `true`
    +Lorsque `false` l'Agent de tracing est désactivé.
    +Voir aussi [DD_APM_TRACING_ENABLED][21]. `dd.trace.config` -: **Variable d'environnement** : `DD_TRACE_CONFIG`
    -**Valeur par défaut** : `null`
    -Le chemin facultatif vers un fichier où les propriétés de configuration sont définies (une par ligne). Le chemin du fichier peut par exemple être spécifié via `-Ddd.trace.config=.properties`, en définissant le nom du service dans le fichier avec `dd.service=`. +: **Variable d'environnement**: `DD_TRACE_CONFIG`
    +**Par défaut**: `null`
    +Chemin optionnel vers un fichier où les propriétés de configuration sont fournies une par ligne. Par exemple, le chemin du fichier peut être fourni via `-Ddd.trace.config=.properties`, en définissant le nom du service dans le fichier avec `dd.service=`
    +**Remarque**: Ne comptez pas uniquement sur `dd.trace.config` comme mécanisme pour activer ou désactiver les produits dépendants du SDK (par exemple, Profiler et Instrumentation Dynamique). Utilisez plutôt les propriétés système correspondantes ou les variables d'environnement (ou `application_monitoring.yaml` pour Single Step Instrumentation). `dd.service.mapping` -: **Variable d'environnement** : `DD_SERVICE_MAPPING`
    -**Valeur par défaut** : `null`
    -**Exemple** : `mysql:my-mysql-service-name-db, postgres:my-postgres-service-name-db`
    -Renomme de façon dynamique les services via la configuration. Sert notamment à s'assurer que les bases de données possèdent des noms distincts d'un service à l'autre. +: **Variable d'environnement**: `DD_SERVICE_MAPPING`
    +**Par défaut**: `null`
    +**Exemple**: `mysql:my-mysql-service-name-db, postgresql:my-postgres-service-name-db`
    +Renommez dynamiquement les services via la configuration. Utile pour donner des noms distincts aux bases de données à travers différents services. `dd.writer.type` -: **Variable d'environnement** : `DD_WRITER_TYPE`
    -**Valeur par défaut** : `DDAgentWriter`
    -La valeur par défaut active l'envoi des traces à l'Agent. Si vous utilisez `LoggingWriter` dans votre configuration, les traces sont écrites dans la console. - -`dd.agent.host` -: **Variable d'environnement** : `DD_AGENT_HOST`
    -**Valeur par défaut** : `localhost`
    -Le hostname vers lequel envoyer les traces. Si vous utilisez un environnement conteneurisé, configurez cette option sur l'IP du host. Consultez la section [Tracer des applications Docker][3] pour en savoir plus. +: **Variable d'environnement**: `DD_WRITER_TYPE`
    +**Par défaut**: `DDAgentWriter`
    +La valeur par défaut envoie les traces à l'Agent. Configurer avec `LoggingWriter` écrit plutôt les traces dans la console. `dd.trace.agent.port` -: **Variable d'environnement** : `DD_TRACE_AGENT_PORT`
    -**Valeur par défaut** : `8126`
    -Le numéro du port sur lequel l'Agent effectue son écoute pour le host configuré. +: **Variable d'environnement**: `DD_TRACE_AGENT_PORT`
    +**Par défaut**: `8126`
    +Le numéro de port sur lequel l'Agent écoute pour l'hôte configuré. Si la [configuration de l'Agent][6] définit `receiver_port` ou `DD_APM_RECEIVER_PORT` à quelque chose d'autre que le `8126` par défaut, alors `dd.trace.agent.port` ou `dd.trace.agent.url` doit correspondre. `dd.trace.agent.unix.domain.socket` -: **Variable d'environnement** : `DD_TRACE_AGENT_UNIX_DOMAIN_SOCKET`
    -**Valeur par défaut** : `null`
    -Permet de faire passer des données de tracing par un proxy en vue de leur envoi vers un Agent Datadog distant. +: **Variable d'environnement**: `DD_TRACE_AGENT_UNIX_DOMAIN_SOCKET`
    +**Par défaut**: `null`
    +Peut être utilisée pour faire passer des données de tracing par un proxy en vue de leur envoi vers un Agent Datadog distant. `dd.trace.agent.url` -: **Variable d'environnement** : `DD_TRACE_AGENT_URL`
    -**Valeur par défaut** : `null`
    -L'URL vers laquelle envoyer les traces. Elle peut commencer par `http://` pour une connexion via HTTP ou par `unix://` pour connexion via un socket de domaine Unix. Une fois cette option définie, elle a la priorité sur `DD_AGENT_HOST` et `DD_TRACE_AGENT_PORT`. Disponible à partir de la version 0.65. +: **Variable d'environnement**: `DD_TRACE_AGENT_URL`
    +**Par défaut**: `null`
    +L'URL pour envoyer les traces. Si la [configuration de l'Agent][6] définit `receiver_port` ou `DD_APM_RECEIVER_PORT` à quelque chose d'autre que le `8126` par défaut, alors `dd.trace.agent.port` ou `dd.trace.agent.url` doit correspondre. La valeur de l'URL peut commencer par `http://` pour se connecter en utilisant HTTP ou par `unix://` pour utiliser un socket de domaine Unix. Lorsqu'il est défini, cela prévaut sur `DD_AGENT_HOST` et `DD_TRACE_AGENT_PORT`. Disponible pour les versions 0.65+. `dd.trace.agent.timeout` -: **Variable d'environnement** : `DD_TRACE_AGENT_TIMEOUT`
    -**Valeur par défaut** : `10`
    -Le délai d'expiration en secondes pour les interactions réseau avec l'Agent Datadog. +: **Variable d'environnement**: `DD_TRACE_AGENT_TIMEOUT`
    +**Par défaut**: `10`
    +Délai d'expiration en secondes pour les interactions réseau avec l'Agent Datadog. + +`dd.trace.client-ip.enabled` +: **Par défaut**: `false`
    +Activez la collecte des adresses IP des clients à partir des en-têtes IP pertinents dans les traces de requêtes HTTP. Activé automatiquement lorsque `dd.appsec.enabled=true`. `dd.trace.header.tags` -: **Variable d'environnement** : `DD_TRACE_HEADER_TAGS`
    -**Valeur par défaut** : `null`
    -**Exemple** : `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    -Accepte une liste des correspondances entre les clés d'en-tête (insensibles à la casse) et les noms de tag et applique automatiquement les valeurs d'en-tête correspondantes en tant que tags sur les traces. Accepte également les entrées sans nom de tag qui sont automatiquement mis en correspondance avec des tags au format `http.request.headers.` et `http.response.headers.`, respectivement.

    -Jusqu'à la version 0.96.0, ce paramètre s'appliquait uniquement aux tags des en-têtes de requête. Pour revenir à l'ancien comportement, ajoutez le paramètre `-Ddd.trace.header.tags.legacy.parsing.enabled=true` ou la variable d'environnement `DD_TRACE_HEADER_TAGS_LEGACY_PARSING_ENABLED=true`. +: **Variable d'environnement**: `DD_TRACE_HEADER_TAGS`
    +**Par défaut**: `null`
    +**Exemple**: `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    +Accepte une carte de clés d'en-tête insensibles à la casse aux noms de balises et applique automatiquement les valeurs d'en-tête correspondantes en tant que balises sur les traces. Accepte également des entrées sans nom de balise spécifié qui sont automatiquement mappées à des balises de la forme `http.request.headers.` et `http.response.headers.` respectivement.

    +Avant la version 0.96.0, ce paramètre ne s'appliquait qu'aux balises d'en-tête de requête. Pour revenir à l'ancien comportement, ajoutez le paramètre `-Ddd.trace.header.tags.legacy.parsing.enabled=true` ou la variable d'environnement `DD_TRACE_HEADER_TAGS_LEGACY_PARSING_ENABLED=true`.

    +À partir de la version 1.18.3, si [Agent Remote Configuration][3] est activée là où ce service s'exécute, vous pouvez définir `DD_TRACE_HEADER_TAGS` dans l'interface [Catalog][4]. `dd.trace.request_header.tags` -: **Variable d'environnement** : `DD_TRACE_REQUEST_HEADER_TAGS`
    -**Valeur par défaut** : `null`
    -**Exemple** : `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    -Accepte une liste des correspondances entre les clés d'en-tête (insensibles à la casse) et les noms de tag et applique automatiquement les valeurs d'en-tête de requête correspondantes en tant que tags sur les traces. Accepte également les entrées sans nom de tag qui sont automatiquement mis en correspondance avec des tags au format `http.request.headers.`.
    -Disponible à partir de la version 0.96.0. +: **Variable d'environnement**: `DD_TRACE_REQUEST_HEADER_TAGS`
    +**Par défaut**: `null`
    +**Exemple**: `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    +Accepte un mappage de clés d'en-tête insensibles à la casse vers des noms de balises et applique automatiquement les valeurs d'en-tête de requête correspondantes en tant que balises sur les traces. Accepte également des entrées sans nom de balise spécifié qui sont automatiquement mappées à des balises de la forme `http.request.headers.`.
    +Disponible depuis la version 0.96.0. `dd.trace.response_header.tags` -: **Environment Variable**: `DD_TRACE_RESPONSE_HEADER_TAGS`
    -**Default**: `null`
    -**Example**: `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    -Accepte une liste des correspondances entre les clés d'en-tête (insensibles à la casse) et les noms de tag et applique automatiquement les valeurs d'en-tête de réponse correspondantes en tant que tags sur les traces. Accepte également les entrées sans nom de tag qui sont automatiquement mis en correspondance avec des tags au format `http.response.headers.`.
    -Disponible à partir de la version 0.96.0. +: **Variable d'environnement**: `DD_TRACE_RESPONSE_HEADER_TAGS`
    +**Par défaut**: `null`
    +**Exemple**: `CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name`
    +Accepte un mappage de clés d'en-tête insensibles à la casse vers des noms de balises et applique automatiquement les valeurs d'en-tête de réponse correspondantes en tant que balises sur les traces. Accepte également des entrées sans nom de balise spécifié qui sont automatiquement mappées à des balises de la forme `http.response.headers.`.
    +Disponible depuis la version 0.96.0. + +`dd.trace.header.baggage` +: **Variable d'environnement**: `DD_TRACE_HEADER_BAGGAGE`
    +**Par défaut**: `null`
    +**Exemple**: `CASE-insensitive-Header:my-baggage-name,User-ID:userId,My-Header-And-Baggage-Name`
    +Accepte un mappage de clés d'en-tête insensibles à la casse vers des clés de bagages et applique automatiquement les valeurs d'en-tête de requête correspondantes en tant que bagages sur les traces. Lors de la propagation, le mappage inverse est appliqué: Les bagages sont mappés aux en-têtes.
    +Disponible depuis la version 1.3.0. `dd.trace.annotations` -: **Variable d'environnement** : `DD_TRACE_ANNOTATIONS`
    -**Valeur par défaut** : ([répertoriée sur cette page][4])
    -**Exemple** : `com.some.Trace;io.other.Trace`
    -Une liste des annotations de méthode à traiter en tant que `@Trace`. +: **Variable d'environnement**: `DD_TRACE_ANNOTATIONS`
    +**Par défaut**: ([énuméré ici][7])
    +**Exemple**: `com.some.Trace;io.other.Trace`
    +Une liste d'annotations de méthode à traiter comme `@Trace`. `dd.trace.methods` -: **Variable d'environnement** : `DD_TRACE_METHODS`
    -**Valeur par défaut** : `null`
    -**Exemple** : `package.ClassName[method1,method2,...];AnonymousClass$1[call];package.ClassName[*]`
    -La liste des classes/interfaces et méthodes à tracer. Semblable à l'ajout de `@Trace`, mais sans changer le code. **Remarque :** l'utilisation d'un wildcard (`[*]`) ne prend pas en compte les appels de méthode constructors, getters, setters, synthetic, toString, equals, hashcode ou finalizer. +: **Variable d'environnement**: `DD_TRACE_METHODS`
    +**Par défaut**: `null`
    +**Exemple**: `package.ClassName[method1,method2,...];AnonymousClass$1[call];package.ClassName[*]`
    +Liste des classes/interfaces et des méthodes à tracer. Semblable à l'ajout de `@Trace`, mais sans modifier le code. **Remarque :** Le wildcard method support (`[*]`) ne prend pas en charge les appels de méthodes de constructeur, d'accesseurs, de mutateurs, synthétiques, toString, equals, hashcode ou finaliseur. +`dd.trace.methods` n'est pas destiné à tracer un grand nombre de méthodes et de classes. Pour trouver les goulets d'étranglement CPU, mémoire et IO, décomposés par nom de méthode, nom de classe et numéro de ligne, envisagez plutôt le produit [Continuous Profiler][22]. `dd.trace.classes.exclude` -: **Variable d'environnement** : `DD_TRACE_CLASSES_EXCLUDE`
    -**Valeur par défaut** : `null`
    -**Exemple** : `package.ClassName,package.ClassName$Nested,package.Foo*,package.other.*`
    -Une liste de noms de classe complets (pouvant se terminer par un wildcard pour spécifier un préfixe) qui seront ignorés (non modifiés) par le traceur. Ces noms doivent correspondre à la représentation interne JVM (ex. : package.ClassName$Nested et non package.ClassName.Nested). +: **Variable d'environnement**: `DD_TRACE_CLASSES_EXCLUDE`
    +**Par défaut**: `null`
    +**Exemple**: `package.ClassName,package.ClassName$Nested,package.Foo*,package.other.*`
    +Une liste de classes entièrement qualifiées (qui peuvent se terminer par un caractère générique pour désigner un préfixe) qui seront ignorées (non modifiées) par le SDK. Doit utiliser la représentation interne JVM pour les noms (par exemple package.ClassName$Nested et non package.ClassName.Nested) `dd.trace.partial.flush.min.spans` -: **Variable d'environnement** : `DD_TRACE_PARTIAL_FLUSH_MIN_SPANS`
    -**Valeur par défaut** : `1000`
    -Définit le nombre de spans partielles à partir duquel celles-ci doivent être vidées. Permet de réduire la charge de la mémoire en cas de traitement d'un trafic important ou de traces à exécution longue. +: **Variable d'environnement**: `DD_TRACE_PARTIAL_FLUSH_MIN_SPANS`
    +**Par défaut**: `1000`
    +Définissez un nombre de spans partiels à vider. Utile pour réduire la surcharge mémoire lors de la gestion d'un trafic important ou de traces de longue durée. `dd.trace.split-by-tags` -: **Variable d'environnement** : `DD_TRACE_SPLIT_BY_TAGS`
    -**Valeur par défaut** : `null`
    -**Exemple** : `aws.service`
    -Utilisé pour renommer le service associé aux spans à identifier avec le tag de span correspondant. - -`dd.trace.db.client.split-by-instance` -: **Variable d'environnement** : `DD_TRACE_DB_CLIENT_SPLIT_BY_INSTANCE`
    -**Valeur par défaut** : `false`
    -Lorsque cette option est définie sur `true`, les spans de base de données reçoivent le nom de l'instance en tant que nom du service. +: **Variable d'environnement**: `DD_TRACE_SPLIT_BY_TAGS`
    +**Par défaut**: `null`
    +**Exemple**: `aws.service`
    +Utilisé pour renommer le nom du service associé aux spans afin que ceux-ci soient identifiés par le tag de span correspondant. `dd.trace.health.metrics.enabled` -: **Variable d'environnement** : `DD_TRACE_HEALTH_METRICS_ENABLED`
    -**Valeur par défaut** : `true`
    -Lorsque cette option est définie sur `true`, des métriques de santé sur le traceur sont envoyées. +: **Variable d'environnement**: `DD_TRACE_HEALTH_METRICS_ENABLED`
    +**Par défaut**: `true`
    +Lorsqu'il est réglé sur `true`, envoie des métriques de santé du traceur. `dd.trace.health.metrics.statsd.host` -: **Variable d'environnement** : `DD_TRACE_HEALTH_METRICS_STATSD_HOST`
    -**Valeur par défaut** : identique à `dd.jmxfetch.statsd.host`
    -Le host Statsd vers lequel envoyer les métriques de santé. +: **Variable d'environnement**: `DD_TRACE_HEALTH_METRICS_STATSD_HOST`
    +**Par défaut**: Identique à `dd.jmxfetch.statsd.host`
    +Host Statsd vers lequel envoyer les métriques de santé `dd.trace.health.metrics.statsd.port` -: **Variable d'environnement** : `DD_TRACE_HEALTH_METRICS_STATSD_PORT`
    -**Valeur par défaut** : identique à `dd.jmxfetch.statsd.port`
    -Le port Statsd vers lequel envoyer les métriques de santé. +: **Variable d'environnement**: `DD_TRACE_HEALTH_METRICS_STATSD_PORT`
    +**Par défaut**: Identique à `dd.jmxfetch.statsd.port`
    +Port Statsd vers lequel envoyer les métriques de santé + +`dd.trace.obfuscation.query.string.regexp` +: **Variable d'environnement**: `DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP`
    +**Par défaut**: `null`
    +Une expression régulière pour masquer les données sensibles de la chaîne de requête des requêtes entrantes rapportées dans la balise `http.url` (les correspondances sont remplacées par ). + +`dd.trace.servlet.async-timeout.error` +: **Variable d'environnement**: `DD_TRACE_SERVLET_ASYNC_TIMEOUT_ERROR`
    +**Par défaut**: `true`
    +Par défaut, les requêtes asynchrones à exécution longue seront considérées comme une erreur. La définition de cette valeur sur false permet de marquer tous les délais d'expiration comme des requêtes réussies. + +`dd.trace.span.tags` +: **Variable d'environnement**: `DD_TRACE_SPAN_TAGS`
    +**Par défaut**: `none`
    +**Exemple**: `tag1:value1,tag2:value2`
    +Une liste de balises par défaut à ajouter à chaque span. + +`dd.trace.jmx.tags` +: **Variable d'environnement**: `DD_TRACE_JMX_TAGS`
    +**Par défaut**: `none`
    +**Exemple**: `tag1:value1,tag2:value2`
    +Une liste de balises de span à ajouter à chaque métrique JMX. + +`dd.trace.startup.logs` +: **Variable d'environnement**: `DD_TRACE_STARTUP_LOGS`
    +**Par défaut**: `true`
    +Lorsque `false`, la journalisation des informations de démarrage est désactivée. Disponible pour les versions 0.64+. -`dd.http.client.tag.query-string` -: **Variable d'environnement** : `DD_HTTP_CLIENT_TAG_QUERY_STRING`
    -**Valeur par défaut** : `false`
    -Lorsque cette option est définie sur `true`, les paramètres de chaîne de requête et le fragment sont ajoutés aux spans du client Web. +`dd.trace.debug` +: **Variable d'environnement**: `DD_TRACE_DEBUG`
    +**Par défaut** : `false`
    +Lorsque `true`, le mode débogage pour le traceur Java de Datadog est activé. -`dd.http.client.error.statuses` -: **Variable d'environnement** : `DD_HTTP_CLIENT_ERROR_STATUSES`
    -**Valeur par défaut** : `400-499`
    -Permet de définir une plage d'erreurs à accepter. Par défaut, les erreurs 4xx sont signalées comme des erreurs pour les clients http. Cette option remplace ce comportement. Exemple : `dd.http.client.error.statuses=400-403,405,410-499`. +`datadog.slf4j.simpleLogger.jsonEnabled` +: **Variable d'environnement** : Non disponible
    +**Par défaut** : `false`
    +Lorsque `true`, les journaux du SDK Java de Datadog sont écrits en JSON. Disponible pour les versions 1.48.0+.
    +**Remarque** : Ce paramètre est spécifique au logger simple SLF4J intégré et ne prend pas en charge les variables d'environnement. `dd.log.format.json` est l'option de configuration préférée. -`dd.http.server.error.statuses` -: **Variable d'environnement** : `DD_HTTP_SERVER_ERROR_STATUSES`
    -**Valeur par défaut** : `500-599`
    -Permet de définir une plage d'erreurs à accepter. Par défaut, les codes de statut 5xx sont signalés comme des erreurs pour les serveurs http. Cette option remplace ce comportement. Exemple : `dd.http.server.error.statuses=500,502-599`. +`dd.trace.servlet.principal.enabled` +: **Variable d'environnement** : `DD_TRACE_SERVLET_PRINCIPAL_ENABLED`
    +**Par défaut** : `false`
    +Lorsque `true`, le principal utilisateur est collecté. Disponible pour les versions 0.61+. + +`dd.trace.rate.limit` +: **Variable d'environnement** : `DD_TRACE_RATE_LIMIT`
    +**Par défaut** : `100`
    +Nombre maximum de spans à échantillonner par seconde, par processus, lorsque `DD_TRACE_SAMPLING_RULES` ou `DD_TRACE_SAMPLE_RATE` est défini. Sinon, l'Agent Datadog contrôle la limitation de débit. `dd.http.server.tag.query-string` -: **Variable d'environnement** : `DD_HTTP_SERVER_TAG_QUERY_STRING`
    -**Valeur par défaut** : `false`
    -Lorsque cette option est définie sur `true`, les paramètres de chaîne de requête et le fragment sont ajoutés aux spans du serveur Web. +: **Variable d'environnement** : `DD_HTTP_SERVER_TAG_QUERY_STRING`
    +**Par défaut** : `true`
    +Lorsqu'il est défini sur `true`, les paramètres de chaîne de requête et le fragment sont ajoutés aux spans du serveur web. + +`dd.http.server.route-based-naming` +: **Variable d'environnement** : `DD_HTTP_SERVER_ROUTE_BASED_NAMING`
    +**Par défaut** : `true`
    +Lorsqu'il est défini sur `false`, les routes du framework HTTP ne sont pas utilisées pour les noms de ressources. _Cela peut changer les noms de ressources et les métriques dérivées si modifié._ + +`dd.trace.http.server.path-resource-name-mapping`
    +: **Variable d'environnement** : `DD_TRACE_HTTP_SERVER_PATH_RESOURCE_NAME_MAPPING`
    +**Par défaut** : `{}` (vide)
    +Mappe les chemins de requête HTTP à des noms de ressources personnalisés. Fournissez une liste de paires `pattern:resource_name` séparées par des virgules :
    +   – `pattern`: Un [modèle de chemin de style Ant][20] qui doit correspondre à la valeur de la balise `http.path_group` span.
    +   – `resource_name`: Le nom de ressource personnalisé à attribuer si le modèle correspond.
    +Si `*` est utilisé comme le `resource_name` pour un modèle correspondant, le chemin de requête d'origine, non normalisé, combiné avec la méthode HTTP est utilisé comme nom de ressource. Par exemple, étant donné la règle `/test/**:*`, une requête `GET` pour `/test/some/path` donne le nom de ressource `GET /test/some/path`.
    +Les mappages sont évalués par ordre de priorité, et la première règle correspondante s'applique. Les chemins de requête non correspondants utilisent le comportement de normalisation par défaut.
    +**Exemple**: Utiliser `-Ddd.trace.http.server.path-resource-name-mapping=/admin/*.jsp:/admin-page,/admin/user/**:/admin/user` donne :
    +Chemin de requête | Chemin de ressource +------------ | ------------- +`/admin/index.jsp` | `/admin-page` +`/admin/user/12345/delete` | `/admin/user` +`/user/12345` | `/user/?` + +`dd.trace.http.client.path-resource-name-mapping`
    +: **Variable d'environnement** : `DD_TRACE_HTTP_CLIENT_PATH_RESOURCE_NAME_MAPPING`
    +**Par défaut** : `{}` (vide)
    +Mappe les chemins de requête des clients HTTP à des noms de ressources personnalisés. Utilise le même format que `dd.trace.http.server.path-resource-name-mapping`, mais s'applique aux spans de clients HTTP au lieu des spans de serveurs. + +`dd.trace.status404rule.enabled` +: **Variable d'environnement** : `DD_TRACE_STATUS404RULE_ENABLED`
    +**Par défaut** : `true`
    +Par défaut, les réponses HTTP 404 utilisent "404" comme nom de ressource de span. Lorsque `false`, les réponses HTTP 404 conservent le chemin d'URL d'origine comme nom de ressource. + +`dd.trace.128.bit.traceid.generation.enabled` +: **Variable d'environnement** : `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED`
    +**Par défaut** : `true`
    +Lorsque `true`, le SDK génère des identifiants de trace de 128 bits et encode les identifiants de trace en 32 caractères hexadécimaux minuscules avec un remplissage de zéros. + +`dd.trace.128.bit.traceid.logging.enabled` +: **Variable d'environnement** : `DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED`
    +**Par défaut** : `false`
    +Lorsque `true`, le SDK injectera des identifiants de trace de 128 bits sous forme de 32 caractères hexadécimaux minuscules avec un remplissage de zéros, et des identifiants de trace de 64 bits sous forme de nombres décimaux. Sinon, le SDK injecte toujours les identifiants de trace sous forme de nombres décimaux. + +`dd.trace.otel.enabled` +: **Variable d'environnement**: `DD_TRACE_OTEL_ENABLED`
    +**Par défaut**: `false`
    +Lorsque `true`, le traçage basé sur OpenTelemetry pour l'instrumentation [personnalisée][16] est activé. + +`dd.trace.cloud.payload.tagging.services` +: **Variable d'environnement**: `DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES`
    +**Par défaut**: `ApiGateway,ApiGatewayV2,EventBridge,Sqs,Sns,S3,Kinesis`
    +**Exemple**: `S3,Sso`
    +Pour activer le [tagging de charge utile AWS][18] pour des services supplémentaires, utilisez ce paramètre. + +`dd.trace.cloud.request.payload.tagging` +: **Variable d'environnement**: `DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING`
    +**Par défaut**: N/A (désactivé)
    +**Exemple**: `$.Metadata.UserId,$.phoneNumber`
    +Une chaîne de caractères JSONPath séparée par des virgules des entrées à masquer dans les requêtes AWS SDK. Activer cela permet le [tagging de charge utile AWS][18] pour les requêtes. + +`dd.trace.cloud.response.payload.tagging` +: **Variable d'environnement**: `DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING`
    +**Par défaut**: N/A (désactivé)
    +**Exemple**: `$.Metadata.Credentials.*`
    +Une chaîne de caractères JSONPath séparée par des virgules des entrées à masquer dans les réponses AWS SDK. Activer cela permet le [tagging de charge utile AWS][18] pour les réponses. + +`dd.trace.cloud.payload.tagging.max-depth` +: **Variable d'environnement**: `DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH`
    +**Par défaut**: `10`
    +Un entier représentant la profondeur maximale d'une charge utile de requête/réponse AWS SDK à utiliser pour le [tagging de charge utile AWS][18]. + +`dd.trace.cloud.payload.tagging.max-tags` +: **Variable d'environnement**: `DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_TAGS`
    +**Par défaut**: `758`
    +Un entier représentant le nombre maximal de tags à extraire par span à utiliser pour le [tagging de charge utile AWS][18]. + +### Agent {#agent} -`dd.trace.enabled` -: **Variable d'environnement** : `DD_TRACE_ENABLED`
    -**Valeur par défaut** : `true`
    -Lorsque cette option est définie sur `false`, l'Agent de tracing est désactivé. +`dd.tags` +: **Variable d'environnement**: `DD_TAGS`
    +**Par défaut**: `null`
    +**Exemple**: `layer:api,team:intake,key:value`
    +Une liste de tags par défaut à ajouter à chaque span, profil et métrique JMX. Si DD_ENV ou DD_VERSION est utilisé, cela remplace tout tag d'environnement ou de version défini dans DD_TAGS. Disponible pour les versions 0.50.0+. + +`dd.agent.host` +: **Variable d'environnement**: `DD_AGENT_HOST`
    +**Par défaut** : `localhost`
    +Nom d'hôte pour l'envoi des traces. Si vous utilisez un environnement conteneurisé, configurez ceci pour être l'adresse IP de l'hôte. Voir [Tracer les applications Docker][5] pour plus de détails. + +`dd.instrumentation.telemetry.enabled` +: **Variable d'environnement** : `DD_INSTRUMENTATION_TELEMETRY_ENABLED`
    +**Par défaut** : `true`
    +Lorsque `true`, le traceur collecte des [données de télémétrie][8]. Disponible pour les versions 0.104+. Par défaut, cela vaut `true` pour les versions 0.115+. + +### Bases de données {#databases} + +`dd.trace.db.client.split-by-instance` +: **Variable d'environnement** : `DD_TRACE_DB_CLIENT_SPLIT_BY_INSTANCE`
    +**Par défaut** : `false`
    +Lorsqu'il est défini sur `true`, les spans de base de données se voient attribuer le nom de l'instance comme nom de service. + +`dd.trace.db.client.split-by-host` +: **Variable d'environnement** : `DD_TRACE_DB_CLIENT_SPLIT_BY_HOST`
    +**Par défaut** : `false`
    +Lorsqu'il est défini sur `true`, les spans de base de données se voient attribuer le nom d'hôte de la base de données distante comme nom de service. + +`dd.dbm.propagation.mode` +: **Variable d'environnement** : `DD_DBM_PROPAGATION_MODE`
    +**Par défaut** : `null`
    +Lorsqu'il est défini sur `service` ou `full`, active Database Monitoring et la corrélation APM. Pour plus d'informations, voir [Correlate Database Monitoring and Traces][23]. + +### AAP {#aap} + +`dd.appsec.enabled` +: **Variable d'environnement** : `DD_APPSEC_ENABLED`
    +**Par défaut**: `false`
    +Lorsque `true`, active Datadog App and API Protection Monitoring. De plus, cela active automatiquement la collecte de l'adresse IP du client (`dd.trace.client-ip.enabled`).
    +Pour plus d'informations, voir [Activation de l'AAP pour Java][19]. + +### Erreurs {#errors} + +`dd.trace.http.client.tag.query-string` +: **Propriété système (obsolète)**: `dd.http.client.tag.query-string`
    +**Variable d'environnement**: `DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING`
    +**Variable d'environnement (obsolète)**: `DD_HTTP_CLIENT_TAG_QUERY_STRING`
    +**Par défaut**: `true`
    +Par défaut, les paramètres de chaîne de requête et les fragments sont ajoutés à la balise `http.url` sur les spans du client web. Définir sur `false` pour empêcher la collecte de ces données. + +`dd.trace.http.client.error.statuses` +: **Variable d'environnement**: `DD_TRACE_HTTP_CLIENT_ERROR_STATUSES`
    +**Par défaut**: `400-499`
    +Une gamme d'erreurs peut être acceptée. Par défaut, les erreurs 4xx sont signalées comme des erreurs pour les clients HTTP. Cette configuration remplace cela. Ex. `dd.trace.http.client.error.statuses=400-403,405,410-499` + +`dd.trace.http.server.error.statuses` +: **Variable d'environnement**: `DD_TRACE_HTTP_SERVER_ERROR_STATUSES`
    +**Par défaut**: `500-599`
    +Une gamme d'erreurs peut être acceptée. Par défaut, les codes d'état 5xx sont signalés comme des erreurs pour les serveurs HTTP. Cette configuration remplace cela. Ex. `dd.trace.http.server.error.statuses=500,502-599` + +`dd.grpc.client.error.statuses` +: **Variable d'environnement**: `DD_GRPC_CLIENT_ERROR_STATUSES`
    +**Par défaut**: `1-16`
    +Une gamme d'erreurs peut être acceptée. Par défaut, les codes d'état gRPC de 1 à 16 sont signalés comme des erreurs pour les clients gRPC. Cette configuration remplace cela. Ex. `dd.grpc.client.error.statuses=1-4,7-10` + +`dd.grpc.server.error.statuses` +: **Variable d'environnement**: `DD_GRPC_SERVER_ERROR_STATUSES`
    +**Par défaut**: `2-16`
    +Une gamme d'erreurs peut être acceptée. Par défaut, les codes d'état gRPC de 2 à 16 sont signalés comme des erreurs pour les serveurs gRPC. Cette configuration remplace cela. Ex. `dd.grpc.server.error.statuses=2-4,7-10` + +### Logs {#logs} + +`dd.log.level` +: **Variable d'environnement**: `DD_LOG_LEVEL`
    +**Par défaut**: `INFO`
    +Définit le niveau de journalisation interne pour le Datadog Java Tracer. Valeurs valides : `DEBUG`, `INFO`, `WARN`, `ERROR`.
    +Disponible depuis la version 1.36.0 + +`dd.log.format.json` +: **Variable d'environnement**: `DD_LOG_FORMAT_JSON`
    +**Par défaut**: `false`
    +Lorsque `true`, produit des logs du Datadog Java Tracer au format JSON compatible avec le Datadog Logs UI.
    +Disponible depuis la version 1.58.0 + +`dd.logs.injection` +: **Variable d'environnement**: `DD_LOGS_INJECTION`
    +**Par défaut**: `true`
    +Active l'injection automatique des clés MDC pour les trace and span IDs de Datadog. Voir [Utilisation avancée][2] pour plus de détails.

    +À partir de la version 1.18.3, si [Agent Remote Configuration][3] est activée là où ce service s'exécute, vous pouvez définir `DD_LOGS_INJECTION` dans l'UI [Catalog][4]. + +### Propagation du contexte de trace {#trace-context-propagation} + +Pour des informations sur les valeurs valides et l'utilisation des options de configuration suivantes, voir [Propagation du contexte de trace Java][15]. + +`dd.trace.propagation.style.inject` +: **Variable d'environnement**: `DD_TRACE_PROPAGATION_STYLE_INJECT`
    +**Par défaut**: `datadog,tracecontext`
    +Une liste de formats d'en-tête séparés par des virgules à inclure pour propager les traces distribuées entre les services.
    +Disponible depuis la version 1.9.0 + +`dd.trace.propagation.style.extract` +: **Variable d'environnement**: `DD_TRACE_PROPAGATION_STYLE_EXTRACT`
    +**Par défaut**: `datadog,tracecontext`
    +Une liste de formats d'en-tête séparés par des virgules à partir desquels tenter d'extraire les données de propagation de traçage distribué. Le premier format trouvé avec des en-têtes complets et valides est utilisé pour définir la trace à continuer.
    +Disponible depuis la version 1.9.0 + +`dd.trace.propagation.style` +: **Variable d'environnement**: `DD_TRACE_PROPAGATION_STYLE`
    +**Par défaut**: `datadog,tracecontext`
    +Une liste de formats d'en-tête séparés par des virgules à partir desquels tenter d'injecter et d'extraire des données de propagation de traçage distribué. Le premier format trouvé avec des en-têtes complets et valides est utilisé pour définir la trace à continuer. Les paramètres de configuration plus spécifiques `dd.trace.propagation.style.inject` et `dd.trace.propagation.style.extract` ont la priorité lorsqu'ils sont présents.
    +Disponible depuis la version 1.9.0 + +`trace.propagation.extract.first` +: **Variable d'environnement**: `DD_TRACE_PROPAGATION_EXTRACT_FIRST`
    +**Par défaut**: `false`
    +Lorsqu'il est défini sur `true`, l'extraction du contexte de trace s'arrête dès qu'un contexte de trace valide est trouvé. + +### Métriques JMX {#jmx-metrics} `dd.jmxfetch.enabled` -: **Variable d'environnement** : `DD_JMXFETCH_ENABLED`
    -**Valeur par défaut** : `true`
    -Active la collecte de métriques JMX par l'Agent de tracing Java. +: **Variable d'environnement**: `DD_JMXFETCH_ENABLED`
    +**Par défaut**: `true`
    +Active la collecte de métriques JMX par l'agent de tracing Java. `dd.jmxfetch.config.dir` -: **Variable d'environnement** : `DD_JMXFETCH_CONFIG_DIR`
    -**Valeur par défaut** : `null`
    -**Exemple** : `/chemin/vers/répertoire/etc/conf.d`
    -Le répertoire de configuration supplémentaire pour la collecte de métriques JMX. L'Agent Java recherche `jvm_direct:true` dans la section `instance` du fichier `yaml` pour changer la configuration. +: **Variable d'environnement**: `DD_JMXFETCH_CONFIG_DIR`
    +**Par défaut**: `null`
    +**Exemple**: `/path/to/directory/etc/conf.d`
    +Répertoire de configuration supplémentaire pour la collecte des métriques JMX. L'agent Java recherche `jvm_direct:true` dans la section `instance` du fichier `yaml` pour modifier la configuration. `dd.jmxfetch.config` -: **Variable d'environnement** : `DD_JMXFETCH_CONFIG`
    -**Valeur par défaut** : `null`
    -**Exemple** : `chemin/vers/fichier/conf.yaml,autre/chemin/vers/fichier/conf.yaml`
    -Le fichier de configuration de métriques supplémentaires pour la collecte de métriques JMX. L'Agent Java recherche `jvm_direct:true` dans la section `instance` du fichier `yaml` pour changer la configuration. +: **Variable d'environnement**: `DD_JMXFETCH_CONFIG`
    +**Par défaut**: `null`
    +**Exemple**: `path/to/file/conf.yaml,other/path/to/file/conf.yaml`
    +Fichier de configuration supplémentaire pour les métriques JMX. L'agent Java recherche `jvm_direct:true` dans la section `instance` du fichier `yaml` pour modifier la configuration. `dd.jmxfetch.check-period` -: **Variable d'environnement** : `DD_JMXFETCH_CHECK_PERIOD`
    -**Valeur par défaut** : `1500`
    -La fréquence d'envoi des métriques JMX (en ms). +: **Variable d'environnement**: `DD_JMXFETCH_CHECK_PERIOD`
    +**Par défaut**: `15000`
    +Fréquence d'envoi des métriques JMX (en ms). `dd.jmxfetch.refresh-beans-period` -: **Variable d'environnement** : `DD_JMXFETCH_REFRESH_BEANS_PERIOD`
    -**Valeur par défaut** : `600`
    -La fréquence d'actualisation de la liste des beans JMX disponibles (en secondes). +: **Variable d'environnement**: `DD_JMXFETCH_REFRESH_BEANS_PERIOD`
    +**Par défaut**: `600`
    +Fréquence d'actualisation de la liste des beans JMX disponibles (en secondes). `dd.jmxfetch.statsd.host` -: **Variable d'environnement** : `DD_JMXFETCH_STATSD_HOST`
    -**Valeur par défaut** : identique à `agent.host`
    -Le host Statsd vers lequel envoyer les métriques JMX. Si vous utilisez des sockets de domaine Unix, utilisez un argument tel que 'unix://CHEMIN_VERS_SOCKET_UDS'. Exemple : `unix:///var/datadog-agent/dsd.socket`. +: **Variable d'environnement**: `DD_JMXFETCH_STATSD_HOST`
    +**Par défaut**: Identique à `agent.host`
    +Host Statsd vers lequel envoyer les métriques JMX. Si vous utilisez des sockets de domaine Unix, utilisez un argument comme 'unix://CHEMIN_VERS_SOCKET_UDS'. Exemple : `unix:///var/datadog-agent/dsd.socket` `dd.jmxfetch.statsd.port` -: **Variable d'environnement** : `DD_JMXFETCH_STATSD_PORT`
    -**Valeur par défaut** : `8125`
    -Le port StatsD vers lequel envoyer les métriques JMX. Si vous utilisez des sockets de domaine Unix, saisissez 0. +: **Variable d'environnement**: `DD_JMXFETCH_STATSD_PORT`
    +**Par défaut**: `8125`
    +Port StatsD pour envoyer des métriques JMX. Si vous utilisez des sockets de domaine Unix, saisissez 0. + +`dd.jmxfetch..enabled` +: **Variable d'environnement**: `DD_JMXFETCH__ENABLED`
    +**Par défaut**: `false`
    +Intégration JMX à activer (par exemple, Kafka ou ActiveMQ). + +### Intégrations {#integrations} + +Pour découvrir comment désactiver des intégrations, consultez la section relative à la compatibilité des [intégrations][13]. `dd.integration.opentracing.enabled` -: **Variable d'environnement** : `DD_INTEGRATION_OPENTRACING_ENABLED`
    -**Valeur par défaut** : `true`
    -Par défaut, le client de tracing détecte si un GlobalTracer est en cours de chargement et enregistre un traceur dans celui-ci de manière dynamique. En définissant cette option sur false, toute dépendance entre le traceur et OpenTracing est supprimée. +: **Variable d'environnement**: `DD_INTEGRATION_OPENTRACING_ENABLED`
    +**Par défaut**: `true`
    +Par défaut, le client de traçage détecte si un GlobalTracer est chargé et enregistre dynamiquement un traceur dans celui-ci. En le mettant à faux, cela supprime toute dépendance du traceur à OpenTracing. `dd.hystrix.tags.enabled` -: **Variable d'environnement** : `DD_HYSTRIX_TAGS_ENABLED`
    -**Valeur par défaut** : `false`
    -Par défaut, les tags associés au groupe, à la commande et au statut du circuit Hystrix sont désactivés. Cette option permet de les activer. +: **Variable d'environnement**: `DD_HYSTRIX_TAGS_ENABLED`
    +**Par défaut**: `false`
    +Par défaut, les tags de groupe, de commande et d'état de circuit Hystrix ne sont pas activés. Cette propriété les active. -`dd.trace.servlet.async-timeout.error` -: **Variable d'environnement** : `DD_TRACE_SERVLET_ASYNC_TIMEOUT_ERROR`
    -**Valeur par défaut** : `true`
    -Par défaut, les requêtes asynchrones à exécution longue sont considérées comme des erreurs. Lorsque cette valeur est définie sur false, toutes les requêtes ayant expiré sont considérées comme réussies. +`dd.trace.elasticsearch.body.enabled` +: **Variable d'environnement**: `DD_TRACE_ELASTICSEARCH_BODY_ENABLED`
    +**Par défaut**: `false`
    +Lorsqu'il est défini sur `true`, le corps est ajouté aux spans Elasticsearch et OpenSearch. -`dd.trace.startup.logs` -: **Variable d'environnement** : `DD_TRACE_STARTUP_LOGS`
    -**Valeur par défaut** : `true`
    -Lorsque cette option est définie sur `false`, les logs de lancement informatifs sont désactivés. Disponible à partir de la version 0.64. +`dd.trace.elasticsearch.params.enabled` +: **Variable d'environnement**: `DD_TRACE_ELASTICSEARCH_PARAMS_ENABLED`
    +**Par défaut**: `true`
    +Lorsqu'il est défini sur `true`, les paramètres de chaîne de requête sont ajoutés aux spans Elasticsearch et OpenSearch. -`dd.trace.servlet.principal.enabled` -: **Variable d'environnement** : `DD_TRACE_SERVLET_PRINCIPAL_ENABLED`
    -**Valeur par défaut** : `false`
    -Lorsque cette option est définie sur `true`, l'objet principal utilisateur est recueilli. Disponible à partir de la version 0.61. +`dd.trace.cassandra.keyspace.statement.extraction.enabled` +: **Variable d'environnement**: `DD_TRACE_CASSANDRA_KEYSPACE_STATEMENT_EXTRACTION_ENABLED`
    +**Par défaut**: `false`
    +Par défaut, l'espace de clés est extrait uniquement s'il est configuré lors de la création de la session. Lorsqu'il est défini sur `true`, l'espace de clés peut également être extrait en examinant les métadonnées dans les résultats de la requête. + +`dd.trace.websocket.messages.enabled` +: **Variable d'environnement**: `DD_TRACE_WEBSOCKET_MESSAGES_ENABLED`
    +**Par défaut**: `false`
    +Active le traçage des messages websocket envoyés et reçus (texte et binaire) et des événements de fermeture de connexion. +`dd.trace.websocket.messages.inherit.sampling` +: **Variable d'environnement**: `DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING`
    +**Par défaut**: `true`
    +Par défaut, les messages websocket conservent le même échantillonnage que le span capturé lors de la poignée de main. Cela garantit que, si un span de poignée de main a été échantillonné, tous les messages de sa session seront également échantillonnés. Pour désactiver ce comportement et échantillonner chaque message websocket indépendamment, définissez cette configuration sur `false`. -**Remarques** : +`dd.trace.websocket.messages.separate.traces` +: **Variable d'environnement**: `DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES`
    +**Par défaut** : `true`
    +Par défaut, chaque message reçu génère une nouvelle trace. La poignée de main y est liée en tant que span link. Définir ce paramètre sur `false` fait en sorte que tous les spans capturés pendant la session soient dans la même trace. -- Si le même type de clé est défini pour les deux, la configuration de la propriété système est prioritaire. +`dd.trace.websocket.tag.session.id` +: **Variable d'environnement** : `DD_TRACE_WEBSOCKET_TAG_SESSION_ID`
    +**Par défaut** : `false`
    +Lorsqu'il est défini sur `true`, les websocket spans ont le tag `websocket.session.id` contenant l'ID de session lorsqu'il est disponible. + + +**Remarque** : + +- Si le même type de clé est défini pour les deux, la configuration des propriétés système a la priorité. - Les propriétés système peuvent être utilisées comme paramètres JVM. -- Par défaut, les métriques JMX de votre application sont envoyées à l'Agent Datadog via DogStatsD sur le port `8125`. Vérifiez que [DogStatsD est activé pour l'Agent][5]. +- Par défaut, les métriques JMX de votre application sont envoyées à l'Agent Datadog grâce à DogStatsD sur le port `8125`. Assurez-vous que [DogStatsD est activé pour l'Agent][9]. - - Si vous exécutez l'Agent en tant que conteneur, vérifiez que `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` [est défini sur `true`][6] et que le port `8125` est ouvert sur le conteneur de l'Agent. - - Dans Kubernetes, [liez le port DogStatsD à un port de host][7] ; dans ECS, [définissez les flags appropriés dans la définition de votre tâche][2]. + - Si vous exécutez l'Agent en tant que conteneur, assurez-vous que `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` [est défini sur `true`][10], et que le port `8125` est ouvert sur le conteneur de l'Agent. + - Dans Kubernetes, [lier le port DogStatsD à un port hôte][11]; dans ECS, [définir les flags appropriés dans votre définition de tâche][12]. -### Intégrations +### UDS {#uds} -Pour découvrir comment désactiver des intégrations, consultez la section relative à la compatibilité des [intégrations][8]. +`dd.jdk.socket.enabled` +: **Variable d'environnement** : `DD_JDK_SOCKET_ENABLED`
    +**Par défaut** : `true`
    +Activer le support natif JDK pour les sockets de domaine Unix. -### Exemples +### Exemples {#examples} -#### `dd.service.mapping` +#### `dd.service.mapping` {#ddservicemapping} -**Exemple avec une propriété système** : +Exemple avec une propriété système : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.service=web-app -Ddd.service.mapping=postgresql:web-app-pg -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.service.mapping=postgresql:web-app-pg -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/service_mapping.png" alt="mapping de service" >}} +{{< img src="tracing/setup/java/service_mapping.png" alt="cartographie des services" >}} -#### `dd.tags` - -**Configuration d'un environnement global pour les spans et les métriques JMX** : +#### `dd.tags` {#ddtags} +Définir un environnement global pour les spans et les métriques JMX : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/trace_global_tags.png" alt="tags globaux de trace" >}} +{{< img src="tracing/setup/java/trace_global_tags.png" alt="Tags de trace globaux" >}} -#### `dd.trace.span.tags` +#### `dd.trace.span.tags` {#ddtracespantags} -**Exemple d'ajout de project:test à chaque span** : +Exemple d'ajout de project:test à chaque span : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.span.tags=project:test -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.span.tags=project:test -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/trace_span_tags.png" alt="tags de span de trace" >}} +{{< img src="tracing/setup/java/trace_span_tags.png" alt="tags de span de trace" >}} -#### `dd.trace.jmx.tags` +#### `dd.trace.jmx.tags` {#ddtracejmxtags} -**Définition de custom.type:2 sur une métrique JMX** : +Définir custom.type:2 sur une métrique JMX : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.span.tags=project:test -Ddd.trace.jmx.tags=custom.type:2 -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.span.tags=project:test -Ddd.trace.jmx.tags=custom.type:2 -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/trace_jmx_tags.png" alt="tags JMX de trace" >}} +{{< img src="tracing/setup/java/trace_jmx_tags.png" alt="tags JMX de trace" >}} -#### `dd.trace.methods` +#### `dd.trace.methods` {#ddtracemethods} -**Exemple avec une propriété système** : +Exemple avec une propriété système : ```shell -java -javaagent:/chemin/vers/agent-java-dd.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.methods="hello.GreetingController[doSomeStuff,doSomeOtherStuff];hello.Randomizer[randomize]" -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.trace.methods="hello.GreetingController[doSomeStuff,doSomeOtherStuff];hello.Randomizer[randomize]" -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/trace_methods.png" alt="méthodes à tracer" >}} +{{< img src="tracing/setup/java/trace_methods.png" alt="méthodes de trace" >}} -#### `dd.trace.db.client.split-by-instance` +#### `dd.trace.db.client.split-by-instance` {#ddtracedbclientsplit-by-instance} Exemple avec une propriété système : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.env=dev -Ddd.service=web-app -Ddd.trace.db.client.split-by-instance=TRUE -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.env=dev -Ddd.service=web-app -Ddd.trace.db.client.split-by-instance=TRUE -jar path/to/application.jar ``` -L'instance de base de données 1, `webappdb`, possède désormais son propre nom de service, le même que celui indiqué dans les métadonnées de span `db.instance` : +L'instance de base de données 1, `webappdb`, obtient maintenant son propre nom de service qui est le même que les métadonnées de span `db.instance` : -{{< img src="tracing/setup/java/split_by_instance_1.png" alt="instance 1" >}} +{{< img src="tracing/setup/java/split_by_instance_1.png" alt="instance 1" >}} -L'instance de base de données 2, `secondwebappdb`, possède désormais son propre nom de service, le même que celui indiqué dans les métadonnées de span `db.instance` : +L'instance de base de données 2, `secondwebappdb`, obtient maintenant son propre nom de service qui est le même que les métadonnées de span `db.instance` : -{{< img src="tracing/setup/java/split_by_instance_2.png" alt="instance 2" >}} +{{< img src="tracing/setup/java/split_by_instance_2.png" alt="instance 2" >}} -De même, sur la service map, une app Web appelle désormais deux bases de données Postgres distinctes. +De même, sur la service map, une app Web appelle désormais deux base de données Postgres distinctes. -#### `dd.http.server.tag.query-string` +#### `dd.http.server.tag.query-string` {#ddhttpservertagquery-string} Exemple avec une propriété système : ```shell -java -javaagent:/chemin/vers/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.http.server.tag.query-string=TRUE -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.service=web-app -Ddd.env=dev -Ddd.http.server.tag.query-string=TRUE -jar path/to/application.jar ``` -{{< img src="tracing/setup/java/query_string.png" alt="chaîne de requête" >}} +{{< img src="tracing/setup/java/query_string.png" alt="chaîne de requête" >}} -#### `dd.trace.enabled` +#### `dd.trace.enabled` {#ddtraceenabled} -**Exemple avec une propriété système et le mode debugging d'app** +Exemple avec propriété système et mode application de débogage : ```shell -java -javaagent:/chemin/vers/agent-java-dd.jar -Ddd.trace.enabled=false -Ddatadog.slf4j.simpleLogger.defaultLogLevel=debug -jar chemin/vers/application.jar +java -javaagent:/path/to/dd-java-agent.jar -Ddd.trace.enabled=false -Ddd.trace.debug=true -jar path/to/application.jar ``` -Les logs de debugging d'app indiquent, avec le message `Tracing is disabled, not installing instrumentations`, que le tracing est désactivé et qu'aucune instrumentation n'est en cours d'installation. +Les journaux de débogage de l'application montrent que `Tracing is disabled, not installing instrumentations.` -#### `dd.jmxfetch.config.dir` et `dd.jmxfetch.config` +#### `dd.jmxfetch.config.dir` et `dd.jmxfetch.config` {#ddjmxfetchconfigdir-and-ddjmxfetchconfig} Exemple de configuration : -- Combinaison `DD_JMXFETCH_CONFIG_DIR=` + `DD_JMXFETCH_CONFIG=conf.yaml` -- Ou directement avec `DD_JMXFETCH_CONFIG=/conf.yaml` +- Soit la combinaison de : `DD_JMXFETCH_CONFIG_DIR=` + `DD_JMXFETCH_CONFIG=conf.yaml` +- Ou directement : `DD_JMXFETCH_CONFIG=/conf.yaml` -Avec le contenu suivant pour `conf.yaml` : +Avec le contenu suivant pour `conf.yaml` : ```yaml init_config: @@ -375,46 +650,50 @@ instances: On obtient le résultat suivant : -{{< img src="tracing/setup/java/jmxfetch_example.png" alt="exemple JMXFetch" >}} - -Consultez la [documentation relative à l'intégration Java][9] pour en savoir plus sur la collecte de métriques Java avec JMXFetch. - -### Extraction et injection d'en-têtes B3 - -Le traceur de l'APM Datadog prend en charge [l'extraction et l'injection d'en-têtes B3][10] pour le tracing distribué. - -L'injection et l'extraction distribuées d'en-têtes sont contrôlées en configurant des styles d'injection/extraction. Deux styles sont actuellement pris en charge : - -- Datadog : `Datadog` -- B3 : `B3` - -Les styles d'injection peuvent être configurés via : - -- Propriété système : `-Ddd.propagation.style.inject=Datadog,B3` -- Variable d'environnement : `DD_PROPAGATION_STYLE_INJECT=Datadog,B3` +{{< img src="tracing/setup/java/jmxfetch_example.png" alt="Exemple de récupération JMX" >}} -La propriété ou la variable d'environnement prend pour valeur une liste de styles d'en-tête séparés par des virgules (ou des espaces) qui sont activés pour l'injection. Par défaut, seul le style d'injection Datadog est activé. +Consultez la [documentation relative à l'intégration Java][14] pour en savoir plus sur la collecte de métriques Java avec JMXFetch. -Les styles d'extraction peuvent être configurés via : +#### Paramètres d'extraction et d'injection obsolètes {#deprecated-extraction-and-injection-settings} -- Propriété système : `-Ddd.propagation.style.extract=Datadog,B3` -- Variable d'environnement : `DD_PROPAGATION_STYLE_EXTRACT=Datadog,B3` +Ces paramètres d'extraction et d'injection ont été déclarés obsolètes au profit des paramètres `dd.trace.propagation.style.inject`, `dd.trace.propagation.style.extract` et `dd.trace.propagation.style` depuis la version 1.9.0. Voir [Propagation du contexte de trace Java][15]. Le paramètre précédent `b3` pour B3 multi header et B3 single header a été remplacé par les nouveaux paramètres `b3multi` et `b3single`. -La propriété ou la variable d'environnement prend pour valeur une liste de styles d'en-tête séparés par des virgules (ou des espaces) qui sont activés pour l'extraction. Par défaut, seul le style d'extraction Datadog est activé. +`dd.propagation.style.inject` +: **Variable d'environnement**: `DD_PROPAGATION_STYLE_INJECT`
    +**Par défaut**: `datadog`
    +Une liste séparée par des virgules des formats d'en-tête à inclure pour propager les traces distribuées entre les services.
    +Obsolète depuis la version 1.9.0 -Si plusieurs styles d'extraction sont activés, une tentative d'extraction est effectuée dans l'ordre selon lequel ces styles ont été configurés, et la première valeur extraite avec succès est utilisée. +`dd.propagation.style.extract` +: **Variable d'environnement**: `DD_PROPAGATION_STYLE_EXTRACT`
    +**Par défaut**: `datadog`
    +Une liste séparée par des virgules des formats d'en-tête à partir desquels tenter d'extraire les données de propagation de traçage distribué. Le premier format trouvé avec des en-têtes complets et valides est utilisé pour définir la trace à continuer.
    +Obsolète depuis la version 1.9.0 -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /fr/getting_started/tagging/unified_service_tagging/ -[2]: /fr/agent/amazon_ecs/#create-an-ecs-task -[3]: /fr/tracing/setup/docker/ -[4]: https://github.com/DataDog/dd-trace-java/blob/master/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java#L37 -[5]: /fr/developers/dogstatsd/#setup -[6]: /fr/agent/docker/#dogstatsd-custom-metrics -[7]: /fr/developers/dogstatsd/ -[8]: /fr/tracing/compatibility_requirements/java#disabling-integrations -[9]: /fr/integrations/java/?tab=host#metric-collection -[10]: https://github.com/openzipkin/b3-propagation \ No newline at end of file +[2]: /fr/agent/logs/advanced_log_collection +[3]: /fr/tracing/guide/remote_config +[4]: https://app.datadoghq.com/services +[5]: /fr/tracing/setup/docker/ +[6]: /fr/agent/configuration/network/#configure-ports +[7]: https://github.com/DataDog/dd-trace-java/blob/master/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java#L37 +[8]: /fr/tracing/configure_data_security/#telemetry-collection +[9]: /fr/extend/dogstatsd/#setup +[10]: /fr/agent/docker/#dogstatsd-custom-metrics +[11]: /fr/extend/dogstatsd/ +[12]: /fr/agent/amazon_ecs/#create-an-ecs-task +[13]: /fr/tracing/compatibility_requirements/java#disabling-integrations +[14]: /fr/integrations/java/?tab=host#metric-collection +[15]: /fr/tracing/trace_collection/trace_context_propagation/ +[16]: /fr/tracing/trace_collection/custom_instrumentation/java/otel/ +[17]: /fr/opentelemetry/interoperability/environment_variable_support +[18]: /fr/tracing/guide/aws_payload_tagging/?code-lang=java +[19]: /fr/security/application_security/setup/threat_detection/java/ +[20]: https://ant.apache.org/manual/dirtasks.html#patterns +[21]: /fr/tracing/trace_collection/library_config/#traces +[22]: /fr/profiler/ +[23]: /fr/database_monitoring/connect_dbm_and_apm/?tab=java \ No newline at end of file diff --git a/content/ja/account_management/teams/_index.md b/content/ja/account_management/teams/_index.md index a50bfcc3c6a..3dc2e4e36da 100644 --- a/content/ja/account_management/teams/_index.md +++ b/content/ja/account_management/teams/_index.md @@ -1,60 +1,64 @@ --- -title: チーム +description: チームのアセットを整理し、Datadog のエクスペリエンスにフィルターをかけ、チームハンドル、通知、リソースの関連付けを使用してチームメンバーシップを管理します。 +further_reading: +- link: https://www.datadoghq.com/blog/datadog-teams-github-integration + tag: ブログ + text: Datadog Teams の GitHub インテグレーションを使用して、サービスの所有権を最新の状態に保ちます。 +title: Teams --- - -## 概要 -Datadog Teams は、ユーザーグループが Datadog 内でチームのアセットを整理し、Datadog 全体のエクスペリエンスに自動的にフィルターをかけて、これらのアセットに優先順位をつけることができるようにします。 +## 概要 {#overview} +Datadog Teams は、ユーザーグループが Datadog 内でチームのアセットを整理し、Datadog 全体のエクスペリエンスに自動的にフィルターをかけて、これらのアセットに優先順位を付けることができるようにします。 Teams を使用して、ダッシュボード、サービス、モニター、インシデントなどのリソースをユーザーのグループにリンクします。また、Slack チャンネル、Jira ボード、GitHub リポジトリなどに、チーム固有のリンクを追加することもできます。 -チームメンバーシップは柔軟です。ユーザーは、チームに参加したり、他のメンバーから追加されたり、管理者から追加されたりすることができます。ユーザーは、複数のチームに所属することができます。 +チームメンバーシップは柔軟です。ユーザーは、チームに参加したり、ほかのメンバーから追加されたり、管理者から追加されたりすることができます。ユーザーは複数のチームに所属できます。 -## セットアップ +## セットアップ {#setup} -### ナビゲーション +### ナビゲーション {#navigation} -[組織設定][1]から、または [**Service Management > Teams**][2] に移動してチームディレクトリページにアクセスします。[チームディレクトリページ][1]には、組織内のすべてのチームが一覧表示されます。 +[組織設定][1] から、または [**Teams**][2] に移動してチームディレクトリページにアクセスします。[チームディレクトリページ][1] には、組織内のすべてのチームが一覧表示されます。 -### チームの作成 +### チームの作成 {#create-team} -1. [チームディレクトリページ][1]で、右上の **New Team** をクリックします。 -1. **Team Name** を選択します。 -1. **Handle** は、チーム名に基づいて入力されます。 -1. ドロップダウンメニューを使用してチームメンバーおよびチームマネージャーを選択します。 -1. オプションで **Description** を指定します。 -1. **作成**をクリックします。 +1. [チームディレクトリページ][1] で、右上の [{{< ui >}}New Team{{< /ui >}}] (新規チーム) をクリックします。 +1. [{{< ui >}}Team Name{{< /ui >}}] (チーム名) を選択します。 +1. [{{< ui >}}Handle{{< /ui >}}] (ハンドル) は、チーム名に基づいて入力されます。 +1. ドロップダウンメニューを使用して、チームメンバーおよびチームマネージャーを選択します。 +1. オプションで [{{< ui >}}Description{{< /ui >}}] (説明) を入力します。 +1. [{{< ui >}}Create{{< /ui >}}] (作成) をクリックします。 **注**: -- チーム名に使用できる文字は `a-z`、`A-Z`、`0-9`、および `._-:/` です。スペースはアンダースコアに置き換えてください。 -- チームハンドルに使用できる文字は `a-z`、`0-9`、および `._-:/` です。最後の文字はアンダースコアにすることはできません。 +- チーム名に使用できる文字は、`a-z`、`A-Z`、`0-9`、および `._-:/` です。スペースはアンダースコアに置き換えてください。 +- チームハンドルに使用できる文字は、`a-z`、`0-9`、および `._-:/` です。最後の文字はアンダースコアにすることはできません。 -### チームの修正 +### チームの修正 {#modify-team} -1. [チームディレクトリページ][1]で、変更したいチームをクリックします。[チーム詳細ページ][3]が表示されます。 -1. 画面上部の**設定**の歯車をクリックします。ポップアップウィンドウが表示されます。 -1. 修正したい項目を選択します。 -1. 変更を行い、**Save** をクリックします。 +1. [チームディレクトリページ][1] で、修正するチームをクリックします。[チーム詳細ページ][3] が表示されます。 +1. 画面上部にある [{{< ui >}}Settings{{< /ui >}}] (設定) の歯車をクリックします。ポップアップウィンドウが表示されます。 +1. 修正する項目を選択します。 +1. 変更を行い、[{{< ui >}}Save{{< /ui >}}] (保存) をクリックします。 -### プロビジョニングソースの選択 +### プロビジョニングソースの選択 {#choose-provisioning-source} 管理者とチームマネージャーがチームメンバーシップを更新する方法を 3 つのオプションから選択します。 -UI and API -: UI アクションと API 呼び出しのみでメンバーシップを更新します +UI and API (UI と API) +: UI アクションと API 呼び出しのみでメンバーシップを更新します。 SAML -: *SAML 限定*モデルを使用して、アイデンティティプロバイダーデータでチームメンバーシップを決定するようにします +: *SAML 限定*モデルを使用し、アイデンティティプロバイダーデータによってチームメンバーシップが決定されるようにします。 -All sources -: 出発点として SAML を使用し、UI および API によるオーバーライドを許可します +All sources (すべてのソース) +: 出発点として SAML を使用し、UI および API によるオーバーライドを許可します。 -1. [チームディレクトリページ][1]で、**Teams Settings** をクリックします。 -1. **Team Provisioning Sources** のオプションのいずれかを選択します。 +1. [チームディレクトリページ][1] で、[{{< ui >}}Teams Settings{{< /ui >}}] (チーム設定) をクリックします。 +1. [{{< ui >}}Team Provisioning Sources{{< /ui >}}] (チームプロビジョニングソース) のいずれかのオプションを選択します。 -既存メンバーがいるチームがある場合、SAML strict オプションを選択すると、設定が上書きされ、そのチームからメンバーが削除されます。All Sources オプションを選択すると、既存のメンバーシップは維持されます。SAML 属性を使用してチームやチームメンバーシップを管理する方法については、[SAML 属性を Teams にマッピングする][4]を参照してください。 +既存メンバーがいるチームがある場合、SAML 限定オプションを選択すると、設定が上書きされ、そのチームからメンバーが削除されます。[All Sources] オプションを選択すると、既存のメンバーシップが維持されます。SAML 属性を使用してチームおよびチームメンバーシップを管理するには、[SAML 属性のチームへのマッピング][4] を参照してください。 -## チームハンドル +## チームハンドル {#team-handle} チームハンドルは、チームと Datadog のリソースをリンクします。チームハンドルは、検索バーやファセットに `team:` または `teams:` という形式で表示されます。 @@ -62,91 +66,109 @@ All sources 1. チームディレクトリページでチーム名をクリックします。チーム詳細ページが表示されます。 1. チームハンドルはページ上部の名前の右側に表示されます。 -リソースを定義されたチームと関連付けるには、一致するチームハンドルを持つチームが Datadog に存在する必要があります。定義されたチームに関連付けられたリソースをクリックすると、チームハンドルと追加情報を含む小さなウィンドウが表示されます。定義されたチームは、以下のチームフィルターのような追加機能を提供します。 +リソースを定義されたチームに関連付けるには、一致するチームハンドルを持つチームが Datadog に存在する必要があります。定義されたチームに関連付けられたリソースをクリックすると、チームハンドルと追加情報を含む小さなウィンドウが表示されます。定義されたチームは、以下のチームフィルターのような追加機能を提供します。 Datadog で定義されたチームに関連付けられていないチームハンドルは、タグと同じような動作をします。Teams の機能を利用するために、未定義のチームハンドルを定義されたチームに変換してください。 -### リソースとチームハンドルの関連付け +### リソースとチームハンドルの関連付け {#associate-resources-with-team-handles} Datadog は、以下のリソースをチームハンドルに関連付けることをサポートしています。 - [Dashboards][5] -- [Incidents][6] -- [Monitors][7] +- [インシデント][6] +- [モニター][7] - [Resource Catalog][8] -- [Service Catalog][9] +- [Software Catalog][9] - [Service Level Objectives][10] - Synthetic テスト、グローバル変数、プライベートロケーション -### 通知を特定のコミュニケーションチャンネルに送信する +### 通知を特定のコミュニケーションチャンネルに送信する {#send-notifications-to-a-specific-communication-channel} 通知チャンネルをチームに追加して、Slack や Microsoft Teams などのコミュニケーションチャンネルにアラートをルーティングします。`@team-` を対象とするモニターアラートは、選択したチャンネルにリダイレクトされます。 -1. [チームディレクトリページ][1]で、修正したいチームをクリックします。 -1. 画面上部の**設定**の歯車をクリックします。ポップアップウィンドウが表示されます。 -1. **Notifications** を選択します。 -1. チャンネルを追加し、**Save** をクリックします。 +1. [チームディレクトリページ][1] で、修正するチームをクリックします。 +1. 画面上部にある [{{< ui >}}Settings{{< /ui >}}] の歯車をクリックします。ポップアップウィンドウが表示されます。 +1. [{{< ui >}}Notifications{{< /ui >}}] (通知) を選択します。 +1. チャンネルを追加して、[{{< ui >}}Save{{< /ui >}}] をクリックします。 -## チームフィルター +## チームフィルター {#team-filter} -チームフィルターは、Datadog 全体でのエクスペリエンスを、所属チームに関連するコンテンツのみを表示するように調整します。**My Teams** リストには、自分がメンバーであるチームおよびお気に入りに追加したチームが含まれます。 +チームフィルターは、Datadog 全体でのエクスペリエンスを、所属チームに関連するコンテンツのみを表示するように調整します。[{{< ui >}}My Teams{{< /ui >}}] (自分のチーム) リストには、自分がメンバーであるチームおよびお気に入りとして選択したチームが含まれます。 -{{< img src="/account_management/teams/team-filter.png" alt="チームフィルターが赤枠で囲まれたモニターリストページ。My Teams の 3 つのうち 2 つが選択されている状態。">}} +{{< img src="/account_management/teams/team-filter.png" alt="チームフィルターが赤いボックスで囲まれている、モニターリストページ。3 つの [My Teams] のうち、2 つが選択されています。">}} -チームフィルターを有効にすると、自分が所属するチーム、またはそのチームが所有するサービスに関連するリソースのみが表示されます。チームフィルターの状態はグローバルかつ永続的であるため、Datadog 内のさまざまな製品間を移動しても、チームコンテキストが適用され続けます。 +チームフィルターを有効にすると、自分が所属するチームに関連するリソース、またはそのチームが所有するサービスに関連するリソースのみが表示されます。チームフィルターの状態はグローバルかつ永続的であるため、Datadog 内のさまざまな製品間を移動しても、チームコンテキストが適用され続けます。 -チームフィルターは、チームベースの検索用語を検索クエリに追加して機能します。チームフィルターを有効にすると、検索バーで追加されたチームベースの検索用語を確認できます。 +チームフィルターは、チームベースの検索用語を検索クエリに追加することで機能します。チームフィルターを有効にすると、検索バーで追加されたチームベースの検索用語を確認できます。 -### お気に入りのチーム +### お気に入りのチーム {#favorite-teams} -特定のチームのリソースに関心があっても、そのチームのメンバーである必要はありません。お気に入りのチームに追加することで、そのチームに関連するリソースをフィルタリングしたビューを、チームに参加せずに得ることができます。 +特定のチームのメンバーではないが、そのチームのリソースに関心があるという場合があります。そのチームをお気に入りに追加することで、チームに参加することなく、チームのリソースのみをフィルターして表示することができます。 お気に入りにしたチームは、自分が所属するチームとともにチームディレクトリページの上部やチームフィルター内に表示されます。 -#### お気に入りのチームの追加または削除 +#### お気に入りのチームの追加または削除 {#add-or-remove-favorite-teams} チームをお気に入りに追加または削除するには、チームディレクトリページまたはチームフィルターから行えます。 -[チームディレクトリページ][1]から、 -1. お気に入りに追加したいチームをクリックします。[チーム詳細ページ][3]が表示されます。 -1. 右上で **Add Favorite** または **Remove Favorite** をクリックします。 +[チームディレクトリページ][1] から、 +1. お気に入りに追加するチームをクリックします。[チーム詳細ページ][3] が表示されます。 +1. 右上の [{{< ui >}}Add Favorite{{< /ui >}}] (お気に入りに追加) または [{{< ui >}}Remove Favorite{{< /ui >}}] (お気に入りを削除) をクリックします。 あるいは、同じくチームディレクトリページで、 -1. お気に入りに追加または削除したいチームにカーソルを合わせます。チーム名の右側にインラインアイコンが表示されます。 -1. 星型アイコン (**Add to Favorites** または **Remove from Favorites**) をクリックします。 +1. 追加または削除するチームにカーソルを合わせます。チーム名の右側にインラインアイコンが表示されます。 +1. 星のアイコン ([{{< ui >}}Add to Favorites{{< /ui >}}] または [{{< ui >}}Remove from Favorites{{< /ui >}}]) をクリックします。 チームフィルターから、 -1. フィルターが折りたたまれている場合、**My Teams** をクリックして展開します。 -1. **Add Favorites** をクリックします。検索ボックスとチームのリストが表示されます。 +1. フィルターが折りたたまれている場合、[{{< ui >}}My Teams{{< /ui >}}] をクリックして展開します。 +1. [{{< ui >}}Add Favorites{{< /ui >}}] をクリックします。検索ボックスとチームのリストが表示されます。 1. チーム名を検索ボックスに入力してチームリストを絞り込みます。 1. 目的のチームの横にある星をクリックして、お気に入りに追加または削除します。 -### 対応製品 +### 対応製品 {#supported-products} 以下の表は、チームフィルターを使用できる製品を示します。 -| 製品リストページ | フィルターベース | -|-------------------------|----------------------------------------------------------------------------------| -| [ダッシュボード][11] | チームハンドル | -| [Resource Catalog][8] | チームハンドル | -| [Service Catalog][12] | チームハンドル | -| [Incidents][13] | チームハンドル | -| [モニター][14] | チームハンドル | -| [APM Error Tracking][15] | チームが所有するサービス ([Service Catalog][12]内での所有権により決定) | -| [Logs Error Tracking][16] | チームが所有するサービス ([Service Catalog][12]内での所有権により決定) | -| [Service Level Objectives][17] | チームハンドル | -| [Data Streams Monitoring][18] | チームハンドル | -| [Synthetic Tests][19] | チームハンドル | -| [Notebooks][20] | チームハンドル | - - -## 権限 - -Teams Manage 権限を持つロールのユーザーは、チームの作成、チーム名の変更、チームの削除、チームハンドルの変更が可能です。`user_access_manage` を持つユーザーは、チームメンバーやマネージャーの追加、削除、昇格が可能です。 - -## チームの管理 - -チームをカスタマイズする方法については、[Team Management][3] を参照してください。 +| 製品リストページ | フィルターの基準 | +|--------------------------------|------------------------------------------------------------------------------------| +| [APM Error Tracking][15] | チームが所有するサービス ([Software Catalog][12] 内での所有権により決定) | +| [アプリ][21] | チームハンドル | +| [Case Management プロジェクト][22] | チームハンドル | +| [コネクション][23] | チームハンドル | +| [コネクショングループ][24] | チームハンドル | +| [組織間コネクション][25] | チームハンドル | +| [Datastore][26] | チームハンドル | +| [Data Streams Monitoring][18] | チームハンドル | +| [Dashboards][11] | チームハンドル | +| [インシデント][13] | チームハンドル | +| [Integrations][27] | チームハンドル | +| [Logs Error Tracking][16] | チームが所有するサービス ([Software Catalog][12] 内での所有権により決定) | +| [Logs Pipelines][28] | チームハンドル | +| [モニター][14] | チームハンドル | +| [Notebooks][20] | チームハンドル | +| [Observability Pipelines][29] | チームハンドル | +| [On-Call][30] | チームが所有するサービス ([Software Catalog][12] 内での所有権により決定) | +| [パワーパック][32] | チームハンドル | +| [Private Action Runner][31] | チームハンドル | +| [リファレンステーブル][33] | チームハンドル | +| [Resource Catalog][8] | チームハンドル | +| [RUM アプリ][34] | チームハンドル | +| [セキュリティルール][35] | チームハンドル | +| [セキュリティ抑制][36] | チームハンドル | +| [Service Level Objectives][17] | チームハンドル | +| [Sheets][37] | チームハンドル | +| [Software Catalog][12] | チームハンドル | +| [Synthetic テスト][19] | チームハンドル | +| [ワークフロー][38] | チームハンドル | + + +## 権限 {#permissions} + +[Teams Manage] (チーム管理) 権限を持つロールのユーザーは、チームの作成、チーム名の変更、チームの削除、チームハンドルの変更を行うことができます。`user_access_manage` を持つユーザーは、チームメンバーやマネージャーの追加、削除、昇格が可能です。 + +## チームの管理 {#manage-teams} + +チームをカスタマイズする方法については、[チーム管理][3] を参照してください。 [1]: https://app.datadoghq.com/organization-settings/teams @@ -154,11 +176,11 @@ Teams Manage 権限を持つロールのユーザーは、チームの作成、 [3]: /ja/account_management/teams/manage/ [4]: /ja/account_management/saml/mapping/#map-saml-attributes-to-teams [5]: /ja/dashboards/#dashboard-details -[6]: /ja/service_management/incident_management/ +[6]: /ja/incident_response/incident_management/ [7]: /ja/monitors/configuration/?tab=thresholdalert#add-metadata -[8]: /ja/infrastructure/resource_catalog/ -[9]: /ja/tracing/service_catalog/adding_metadata/#add-metadata-from-the-datadog-ui -[10]: /ja/service_management/service_level_objectives/#slo-tags +[8]: https://app.datadoghq.com/infrastructure/catalog +[9]: /ja/tracing/software_catalog/adding_metadata/#add-metadata-from-the-datadog-ui +[10]: /ja/service_level_objectives/#slo-tags [11]: https://app.datadoghq.com/dashboard/lists [12]: https://app.datadoghq.com/services [13]: https://app.datadoghq.com/incidents @@ -168,4 +190,22 @@ Teams Manage 権限を持つロールのユーザーは、チームの作成、 [17]: https://app.datadoghq.com/slo/manage [18]: https://app.datadoghq.com/data-streams [19]: https://app.datadoghq.com/synthetics -[20]: https://app.datadoghq.com/notebook/list/ \ No newline at end of file +[20]: https://app.datadoghq.com/notebook/list/ +[21]: https://app.datadoghq.com/app-builder/apps/list +[22]: https://app.datadoghq.com/cases +[23]: https://app.datadoghq.com/actions/connections +[24]: https://app.datadoghq.com/actions/connections?sort=-updated_at&tab=groups +[25]: https://app.datadoghq.com/organization-settings/cross-org-visibility +[26]: https://app.datadoghq.com/actions/datastores +[27]: https://app.datadoghq.com/integrations +[28]: https://app.datadoghq.com/logs/pipelines +[29]: https://app.datadoghq.com/observability-pipelines +[30]: https://app.datadoghq.com/on-call/summary +[31]: https://app.datadoghq.com/actions/private-action-runners +[32]: /ja/dashboards/widgets/powerpack/#powerpack-permissions +[33]: https://app.datadoghq.com/reference-tables +[34]: https://app.datadoghq.com/rum/list +[35]: https://app.datadoghq.com/security/configuration/notification-rules +[36]: https://app.datadoghq.com/security/configuration/suppressions +[37]: https://app.datadoghq.com/sheets +[38]: https://app.datadoghq.com/workflow \ No newline at end of file diff --git a/content/ja/containers/cluster_agent/admission_controller.md b/content/ja/containers/cluster_agent/admission_controller.md index d9da9f16d7d..73498eedad7 100644 --- a/content/ja/containers/cluster_agent/admission_controller.md +++ b/content/ja/containers/cluster_agent/admission_controller.md @@ -1,36 +1,48 @@ --- aliases: - /ja/agent/cluster_agent/admission_controller +description: Datadog Admission Controller を使用して、環境変数と標準タグを Kubernetes Pod に自動的に挿入する further_reading: - link: /agent/cluster_agent/troubleshooting/ - tag: ドキュメント + tag: よくあるご質問 text: Datadog Cluster Agent のトラブルシューティング - link: /containers/troubleshooting/admission-controller - tag: ドキュメント + tag: よくあるご質問 text: Admission Controller のトラブルシューティング - link: https://www.datadoghq.com/blog/auto-instrument-kubernetes-tracing-with-datadog/ tag: ブログ - text: Datadog APM で Kubernetes アプリケーションのトレーシングを自動インスツルメンテーションするために、ライブラリインジェクションを使用します + text: Datadog APM で Kubernetes アプリケーションのトレーシングを自動インスツルメンテーションするために、ライブラリ挿入を使用する +- link: https://www.datadoghq.com/blog/datadog-csi-driver/ + tag: ブログ + text: Datadog の CSI ドライバーにより、高パフォーマンスの監視可能性を提供して Kubernetes 環境のセキュリティを確保する +- link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ + tag: Architecture Center + text: Datadog Operator と Admission Controller を使用してアプリケーションをインスツルメントする +- link: /containers/guide/cluster_agent_disable_admission_controller + tag: よくあるご質問 + text: Cluster Agent で Datadog Admission Controller を無効にする title: Datadog Admission Controller --- +## 概要 {#overview} +Datadog Admission Controller は Datadog Cluster Agent のコンポーネントです。アプリケーション Pod のコンフィギュレーションを簡略化できる便利なツールです。Admission Controller には以下の 2 つの機能が備わっています。 -## 概要 -Datadog Admission Controller は Datadog Cluster Agent のコンポーネントで、アプリケーションポッドのコンフィギュレーションを簡略化できる便利なツールです。Admission Controller には以下の 2 つの機能が備わっています。 - -- 環境変数 (`DD_AGENT_HOST`、`DD_TRACE_AGENT_URL`、`DD_ENTITY_ID`) をユーザーのアプリケーションコンテナに挿入し、DogStatsD および APM トレーサーライブラリを構成する。 -- アプリケーションラベルから取得した Datadog の標準タグ (`env`、`service`、`version`) をコンテナ環境変数に挿入する。 +- 環境変数 (`DD_AGENT_HOST`、`DD_TRACE_AGENT_URL`、`DD_ENTITY_ID`、および `DD_EXTERNAL_ENV`) をユーザーのアプリケーションコンテナに挿入して、DogStatsD と Datadog SDK を構成します。 +- アプリケーションラベルから取得した Datadog の標準タグ (`env`、`service`、`version`) をコンテナ環境変数に挿入します。 -Datadog Admission Controller は `MutatingAdmissionWebhook` 型に属します。Admission Controller について詳しくは、[Admission Controller に関する Kubernetes ガイド][1]を参照してください。 +Datadog の Admission Controller は `MutatingAdmissionWebhook` 型に属します。Admission Controller について詳しくは、[Admission Controller に関する Kubernetes ガイド][1] を参照してください。 -## 要件 +## 要件 {#requirements} - Datadog Cluster Agent v7.40+ -## 構成 +## 構成 {#configuration} {{< tabs >}} {{% tab "Datadog Operator" %}} -Datadog Operator の Admission Controller を有効にするには、`DatadogAgent` の構成でパラメーター `features.admissionController.enabled` を `true` に設定します。 +Datadog Operator では Datadog Admission Controller がデフォルトで有効になります。Admission Controller を有効にするために追加構成は必要ありません。 + + +Admission Controller を無効にした場合は、`DatadogAgent` 構成でパラメーター `features.admissionController.enabled` を `true` に設定することにより、再度有効にできます。 {{< code-block lang="yaml" filename="datadog-agent.yaml" disable_copy="false" >}} apiVersion: datadoghq.com/v2alpha1 @@ -46,7 +58,7 @@ spec: {{< /code-block >}} {{% /tab %}} {{% tab "Helm" %}} -Helm chart v2.35.0 から、Datadog Admission Controller がデフォルトで有効化されました。Admission Controller を有効にするために、特別な構成は必要ありません。 +Helm チャート v2.35.0 から、Datadog Admission Controller がデフォルトで有効化されるようになりました。Admission Controller を有効にするために追加構成は必要ありません。 Admission Controller で v2.34.6 以前の Helm チャートを有効にするには、パラメーター `clusterAgent.admissionController.enabled` を `true` に設定してください。 @@ -54,16 +66,16 @@ Admission Controller で v2.34.6 以前の Helm チャートを有効にする #(...) clusterAgent: #(...) - ## @param admissionController - オブジェクト - 必須 - ## admissionController での自動 APM 挿入を有効化 - ## DogStatsD config および標準タグ (env、service、version) を - ## ポッドに挿入 + ## @param admissionController - object - required + ## Enable the admissionController to automatically inject APM and + ## DogStatsD config and standard tags (env, service, version) into + ## your pods # admissionController: enabled: true ## @param mutateUnlabelled - boolean - optional - ## ポッドラベルなしで config の挿入を有効化: + ## Enable injecting config without having the pod label: ## admission.datadoghq.com/enabled="true" # mutateUnlabelled: false @@ -73,7 +85,7 @@ clusterAgent: Helm または Datadog Operator を使用せずに Admission Controller を有効にするには、コンフィギュレーションに以下を追加します。 -まず、[Cluster Agent RBAC アクセス許可][1]のマニフェストをダウンロードし、`rules` の下に以下を追加します。 +まず、[Cluster Agent RBAC アクセス許可][1] のマニフェストをダウンロードし、`rules` の下に以下を追加します。 {{< code-block lang="yaml" filename="cluster-agent-rbac.yaml" disable_copy="true" >}} - apiGroups: @@ -120,12 +132,12 @@ Cluster Agent のデプロイに環境変数を追加し、Admission Controller - name: DD_ADMISSION_CONTROLLER_SERVICE_NAME value: "datadog-cluster-agent-admission-controller" -# このコメントを解除して自動的に APM トレーサーを構成します (以下を参照) +# Uncomment this to configure Datadog SDKs automatically (see below) # - name: DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED # value: "true" {{< /code-block >}} -最期に、次のコマンドを実行します。 +最後に、次のコマンドを実行します。 - `kubectl apply -f cluster-agent-rbac.yaml` - `kubectl apply -f agent-services.yaml` @@ -135,26 +147,27 @@ Cluster Agent のデプロイに環境変数を追加し、Admission Controller {{% /tab %}} {{< /tabs >}} -### インスツルメンテーションライブラリの挿入 -Cluster Agent (バージョン 7.39 以降) を構成して、インスツルメンテーションライブラリを挿入することができます。詳しくは、[Admission Controller によるインスツルメンテーションライブラリの挿入][2]を参照してください。 +### APM インスツルメンテーションライブラリの挿入{#apm-instrumentation-library-injection} +Cluster Agent (バージョン 7.39 以降) を構成し、Single Step Instrumentation を使用してインスツルメンテーションライブラリを挿入することができます。詳しくは、[シングルステップ APM インスツルメンテーション][2] を参照してください。 +Single Step Instrumentation を使用したくない場合は、Datadog Admission Controller を使用して Datadog SDK を手動かつ Pod レベルで直接挿入することができます。詳しくは、[ローカル SDK 挿入][7] を参照してください。 -### APM および DogStatsD +### APM および DogStatsD 環境変数の挿入 {#apm-and-dogstatsd-environment-variable-injection} -DogStatsD クライアントやライブラリの挿入をサポートしていない他の APM ライブラリを構成するには、以下のいずれかの方法で環境変数 `DD_AGENT_HOST` と `DD_ENTITY_ID` を挿入します。 -- ラベル `admission.datadoghq.com/enabled: "true"` をポッドに追加します。 +DogStatsD クライアントやライブラリの挿入をサポートしていない他の APM ライブラリを構成するには、以下のいずれかの方法で環境変数 `DD_AGENT_HOST` と`DD_ENTITY_ID` を挿入します。 +- 自分の Pod にラベル `admission.datadoghq.com/enabled: "true"` を追加します。 - `mutateUnlabelled` (コンフィギュレーションメソッドによっては `DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED`) を `true` に設定して Cluster Agent の Admission Controller を構成します。 -Helm チャートに `mutateUnlabelled: true` という Agent 構成を追加すると、Cluster Agent はラベルのないすべてのポッドをインターセプトしようとします。 +Helm チャートに `mutateUnlabelled: true` という Agent 構成を追加すると、Cluster Agent はラベルのないすべての Pod をインターセプトしようとします。 -ポッドで環境変数を受信しないようにするには、ラベル `admission.datadoghq.com/enabled: "false"` を追加します。これは `mutateUnlabelled: true` を設定している場合でも機能します。 +Pod で環境変数を受信しないようにするには、ラベル `admission.datadoghq.com/enabled: "false"` を追加します。これは、`mutateUnlabelled: true` を設定している場合でも機能します。 -`mutateUnlabelled` が `false` に設定されている場合、ポッドラベルは `admission.datadoghq.com/enabled: "true"` とします。 +`mutateUnlabelled` が `false` に設定されている場合、Pod ラベルは `admission.datadoghq.com/enabled: "true"` に設定する必要があります。 利用可能なオプション: -| mutateUnlabelled | ポッドラベル | 挿入可否 | -|------------------|-----------------------------------------|-----------| +| mutateUnlabelled | Pod ラベル | 挿入 | +| ---------------- | --------------------------------------- | --------- | | `true` | ラベルなし | はい | | `true` | `admission.datadoghq.com/enabled=true` | はい | | `true` | `admission.datadoghq.com/enabled=false` | いいえ | @@ -163,39 +176,43 @@ Helm チャートに `mutateUnlabelled: true` という Agent 構成を追加す | `false` | `admission.datadoghq.com/enabled=false` | いいえ | -#### 優先順位 -Datadog Admission Controller は環境変数 `DD_VERSION`、`DD_ENV` または `DD_SERVICE` が既に存在する場合は挿入を行いません。 +#### 優先順位 {#order-of-priority} +Datadog Admission Controller は環境変数 `DD_VERSION`、`DD_ENV` または `DD_SERVICE` がすでに存在する場合は挿入を行いません。 これらの環境変数が設定されていない場合、Admission Controller は以下の順序で標準タグの値を使用します (高い方から順に)。 -- ポッド上のラベル +- Pod 上のラベル - `ownerReference` のラベル (ReplicaSets、DaemonSets、Deployments など) -#### APM と DogstatsD の通信モードの構成 +#### APM と DogstatsD の通信モードの構成 {#configure-apm-and-dogstatsd-communication-mode} Datadog Cluster Agent v1.20.0 以降、Datadog Admission Controller は、アプリケーションと Datadog Agent の間で異なる通信モードを注入するように構成することができるようになりました。 -この機能は `admission_controller.inject_config.mode` を設定するか、ポッドラベル `admission.datadoghq.com/config.mode` を使用してポッド固有のモードを定義することによって構成することができます。 +この機能は `admission_controller.inject_config.mode` を設定するか、Pod ラベル `admission.datadoghq.com/config.mode` を使用して Pod 固有のモードを定義することによって構成することができます。 + +Helm chart v3.22.0 および Datadog Operator v1.1.0 以降、APM ソケットまたは DSD ソケットが有効になっている場合、通信モードは自動的に `socket` に設定されます。 -可能なオプション: -| モード | 説明 | -|--------------------|-------------------------------------------------------------------------------------------------------------------| -| `hostip` (デフォルト) | 環境変数 `DD_AGENT_HOST` にホスト IP を注入する | -| `service` | Datadog のローカルサービスの DNS 名を環境変数 `DD_AGENT_HOST` に注入する (Kubernetes v1.22+で使用可能)| -| `socket` | 環境変数 `DD_TRACE_AGENT_URL` に Unix ドメインソケットのパスを注入し、対応するパスにアクセスするようにボリュームを定義する。`DD_DOGSTATSD_URL` に、DogStatsD メトリクスの Datadog Agent への接続に使用する URL を挿入する。 | +利用可能なオプション: +| モード | 説明 | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `hostip` (デフォルト) | ホスト IP を `DD_AGENT_HOST` 環境変数に挿入 | +| `service` | Datadog のローカルサービス DNS 名を `DD_AGENT_HOST` 環境変数に挿入 (Kubernetes v1.22+ で利用可能) | +| `socket` | Unix Domain Socket のパスを `DD_TRACE_AGENT_URL` 環境変数に挿入し、対応するパスにアクセスするためのボリューム定義を行います。DogStatsD メトリクスの Datadog Agent に接続するために使用する URL を `DD_DOGSTATSD_URL` に挿入します。| +| `csi` | Unix Domain Socket のパスを `DD_TRACE_AGENT_URL` および `DD_DOGSTATSD_URL` 環境変数に挿入し、対応するパスにアクセスするための Datadog CSI ボリューム定義を行います。このモードは Datadog Cluster Agent v7.67+ で利用可能です。 | -**注**: ポッド固有のモードは、Admission Controller レベルで定義されたグローバルモードより優先されます。 +**注**: Pod 固有のモードは、Admission Controller レベルで定義されたグローバルモードより優先されます。 -## トラブルシューティング +## トラブルシューティング {#troubleshooting} -[Admission Controller のトラブルシューティング][6]を参照してください。 +[Admission Controller のトラブルシューティング][6] を参照してください。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://kubernetes.io/blog/2019/03/21/a-guide-to-kubernetes-admission-controllers/ -[2]: /ja/tracing/trace_collection/library_injection_local/ +[2]: https://docs.datadoghq.com/ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/ [3]: https://docs.datadoghq.com/ja/agent/kubernetes/apm/?tab=helm#setup [4]: https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules [5]: https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html#security-group-rule-components -[6]: /ja/containers/troubleshooting/admission-controller \ No newline at end of file +[6]: /ja/containers/troubleshooting/admission-controller +[7]: https://docs.datadoghq.com/ja/tracing/guide/local_sdk_injection/ \ No newline at end of file diff --git a/content/ja/dashboards/querying/_index.md b/content/ja/dashboards/querying/_index.md index 7a47b8dcc55..f0d3cb9a0f5 100644 --- a/content/ja/dashboards/querying/_index.md +++ b/content/ja/dashboards/querying/_index.md @@ -8,79 +8,78 @@ further_reading: text: ダッシュボードをより効果的に活用する title: クエリ --- +## 概要 {#overview} -## 概要 +メトリクス、ログ、トレース、モニター、ダッシュボード、ノートブックなどを使用する場合でも、Datadog のすべてのグラフで同じ基本機能を利用できます。このページでは、グラフエディターを使用したクエリ作成について説明します。上級ユーザーは、JSON を使用してグラフを作成および編集できます。詳細については、[JSON を使用したグラフ作成][1] を参照してください。 -Datadog では、メトリクス、ログ、トレース、モニター、ダッシュボード、ノートブックなどのすべてのグラフで同じ基本機能は使用しています。このページでは、グラフエディターのクエリについて説明します。上級レベルのユーザーは、JSON を使用したグラフの作成や編集が可能です。詳細については、[JSON を使用したグラフ作成][1]をご参照ください。 +Dashboards または Notebooks ページでは、グラフエディターを使用してクエリを作成できます。また、任意のページで利用可能な {{< ui >}}Quick Graphs{{< /ui >}} を使用することもできます。任意のページで `G` を押して Quick Graphs を開きます。詳細については、[Quick Graphs ガイド][2] を参照してください。 -ダッシュボードやノートブックページにあるグラフエディターを使ってクエリを実行することもできますが、どのページでも利用可能な**クイックグラフ**を使うこともできます。クイックグラフは、任意のページで `G` をクリックすると開きます。詳しくは、[クイックグラフガイド][2]をご覧ください。 +## グラフエディター {#graphing-editor} -## グラフエディター +ウィジェットでは、右上隅の鉛筆アイコンをクリックしてグラフエディターを開きます。グラフエディターには以下のタブがあります。 -ウィジェットで、右上の鉛筆アイコンをクリックしてグラフエディターを開きます。グラフエディターには以下のタブがあります。 +* {{< ui >}}Share{{< /ui >}}: 任意の外部 Web ページにグラフを埋め込みます。 +* {{< ui >}}JSON{{< /ui >}}: より柔軟性の高いエディター。グラフ定義言語の知識が必要です。 +* {{< ui >}}Edit{{< /ui >}}: グラフ作成オプションのデフォルトの UI。 -* **Share**: 任意の外部 Web ページにグラフを埋め込みます。 -* **JSON**: より柔軟性の高いエディター。グラフ定義言語の知識が必要です。 -* **Edit**: グラフ作成オプションのデフォルトの UI タブ。 +グラフエディターを初めて開くと、{{< ui >}}Edit{{< /ui >}} タブが表示されます。ここでは、UI を使用してほとんどの設定を選択できます。以下はその例です。 -初めてグラフエディターを開くと、**Edit** タブが表示されます。UI からほとんどの設定を選択できます。以下に例を示します。 +{{< img src="dashboards/querying/references-graphing-edit-window-with-y-2.png" alt="Graphing Edit タブ" style="width:100%;" >}} -{{< img src="dashboards/querying/references-graphing-edit-window-with-y-2.png" alt="グラフエディターの Edit タブ" style="width:100%;" >}} - -## グラフを構成する +## グラフを構成する {#configuring-a-graph} ダッシュボードでグラフを構成するには、次のプロセスに従ってください。 -1. [視覚化の方法を選択](#select-your-visualization) -2. [メトリクスの定義](#define-the-metric) -3. [メトリクスのフィルタリング](#filter) -4. [時間集計の構成](#configure-the-time-aggregation) -5. [空間集計の構成](#configure-the-space-aggregation) -6. [関数の適用](#advanced-graphing) -7. [グラフのタイトルを作成](#create-a-title) +1. [Select the visualization](#select-your-visualization) +2. [Define the metric](#define-the-metric) +3. [Filter your metric](#filter) +4. [Configure the time aggregation](#configure-the-time-aggregation) +5. [Configure the space aggregation](#configure-the-space-aggregation) +6. [Apply function](#advanced-graphing) +7. [Title the graph](#create-a-title) -### 視覚化に使用するウィジェットを選択する +### 視覚化に使用するウィジェットを選択する{#select-your-visualization} -利用可能な[ウィジェット][3]の中から視覚化したいものを選択します。 +利用可能な [ウィジェット][3] の中から視覚化したいものを選択します。 -### メトリクスを定義する +### メトリクスを定義する{#define-the-metric} -検索するか、**Metric** の隣にあるドロップダウンから選択して、グラフ化したいメトリクスを選択します。使用するメトリクスが分からない場合は、メトリクスのドロップダウンから `unit`、`type`、`interval`、`description`、`tags`、および `tag values` の数などの追加情報を得ることができます。 +{{< ui >}}Metric{{< /ui >}} の隣にあるドロップダウンから検索または選択して、グラフ化するメトリクスを選択します。使用するメトリクスがわからない場合、メトリクスのドロップダウンには、`unit`、`type`、`interval`、`description`、`tags`、および`tag values`の数を含む追加情報が表示されます。 -Datadog または OpenTelemetry のソース インジケーターが表示される場合もあります。環境で両方を使用している場合は、Datadog の **Semantic Mode** セレクターを使って、1 つのグラフ内で [Datadog と OpenTelemetry のメトリクスを横断的にクエリ][18] できます。 +Datadog または OpenTelemetry のソースインジケーターも表示される場合があります。環境で両方を使用している場合は、Datadog の {{< ui >}}Semantic Mode{{< /ui >}} セレクターを使って、1 つのグラフ内で [Datadog と OpenTelemetry のメトリクスを横断的にクエリ][18] できます。 -{{< img src="dashboards/querying/metric_dropdown.png" alt="メトリクス選択ドロップダウン" responsive="true" style="width:100%;">}} +{{< img src="dashboards/querying/metric_dropdown.png" alt="Metric Selector ドロップダウン" responsive="true" style="width:100%;">}} -[メトリクスエクスプローラー][4]や[ノートブック][5]でメトリクスをさらに詳しく調べたり、[メトリクスの概要][6]ページでメトリクスのリストを閲覧することができます。 +[メトリクスエクスプローラー][4] や [ノートブック][5] でメトリクスをさらに詳しく調べたり、[メトリクスの概要][6] ページでメトリクスのリストを閲覧することができます。 -### フィルター +### フィルタリングする{#filter} -選択したメトリクスには、メトリクスの右側にある **from** ドロップダウンからホストまたはタグによるフィルターを設定することができます。デフォルトでは *(everywhere)* に設定されています。 +選択したメトリクスには、メトリクスの右側にある {{< ui >}}from{{< /ui >}} ドロップダウンからホストまたはタグによるフィルターを設定することができます。デフォルトでは *(everywhere)* に設定されています。 -{{< img src="dashboards/querying/filter-3.png" alt="テンプレート変数とブール値ロジックを使用し、'from' フィールドでグラフをフィルター" style="width:100%;" >}} +{{< img src="dashboards/querying/filter-3.png" alt="テンプレート変数とブール論理を使用して、'from' フィールドでグラフをフィルタリングします。" style="width:100%;" >}} -- `from` ドロップダウン内の[高度なフィルタリング][7]を使用して、ブール型またはワイルドカードでフィルタリングされたクエリを評価します。 -- テンプレート変数を使用して、クエリを動的にフィルターします。タグキーと一緒に `$` を追加すると、グラフはテンプレート変数のドロップダウンで選択したタグを自動的に適用します。詳細は[テンプレート変数のドキュメント][8]を参照してください。 +- `from` ドロップダウン内の [高度なフィルタリング][7] を使用して、ブール型またはワイルドカードでフィルタリングされたクエリを評価します。 +- テンプレート変数を使用して、クエリを動的にフィルタリングします。タグキーを使用して `$` を追加すると、グラフは自動的にテンプレート変数ドロップダウンで選択したタグを適用します。詳細については、[テンプレート変数のドキュメント][8] を参照してください。 -タグの詳細は、[タグ付けに関するドキュメント][9]を参照してください。 +タグの詳細は、[タグ付けに関するドキュメント][9] を参照してください。 -### 集計、ロールアップする +### 集計、ロールアップする{#aggregate-and-rollup} -#### 集計の方法 +#### 集計方法{#aggregation-method} -集計方法は、フィルターのドロップダウンの隣に表示されます。デフォルトでは `avg by` に設定されていますが、`max by`、`min by`、`sum by` に変更できます。ほとんどの場合、メトリクスは多数のホストやインスタンスから集計されるため、時間間隔ごとに多数の値が含まれています。選択した集計方法によって、メトリクスを 1 本の線に集計する方法が決まります。 +集計方法はフィルタードロップダウンの隣にあります。これはデフォルトで`avg by`ですが、方法を`max by`、`min by`、または`sum by`に変更できます。ほとんどの場合、メトリクスは各時間間隔に対して多数の値を持ち、複数のホストやインスタンスから取得されます。選択された集計方法は、メトリクスをどのように単一のラインに集約するかを決定します。 -#### 時間集計の構成 +#### 時間集計を構成する{#configure-the-time-aggregation} -前述の手順で選択したオプションに関係なく、グラフの表示ウィンドウに物理的なサイズ制約があることから、データは常にある程度集約されています。メトリクスが毎秒更新され、4 時間分のデータを表示する場合、全データを表示するには 14,400 ポイントが必要です。この期間内に各グラフで表示できるポイント数は 300 です。そのため、画面上の 1 ポイントは 48 データポイントに相当します。 +上記で選択されたオプションに関係なく、グラフを表示するウィンドウの物理的なサイズ制約により、常にデータの集約が行われます。メトリクスが毎秒更新され、4 時間分のデータを表示している場合、すべてを表示するには 14,400 ポイントが必要です。各グラフには、任意の時点で約 300 ポイントが表示されます。したがって、画面に表示される各ポイントは 48 個のデータポイントを表します。 -実際には、メトリクスは Agent によって 15~20 秒ごとに収集されます。そのため、1 日分のデータは 4,320 データポイントとなります。1 つのグラフで 1 日分のデータを表示する場合、Datadog は自動的にデータをロールアップします。時間集計の詳細については、[メトリクスのはじめに][10]をご参照ください。ロールアップの間隔や Datadog が自動的にデータポイントをロールアップする方法については、[ロールアップ][11]ドキュメントを参照してください。 +実際には、メトリクスは Agent によって 15〜20 秒ごとに収集されます。したがって、1 日分のデータは 4,320 個のデータポイントです。1 日分のデータを単一のグラフに表示すると、Datadog は自動的にデータをロールアップします。時間集計の詳細については、[メトリクスの概要][10] を参照してください。ロールアップ間隔と Datadog がデータポイントをどのように自動的にロールアップするかについては、[ロールアップ][11] のドキュメントを参照してください。 -手動でデータをロールアップするには、[rollup 関数][12]を使用します。シグマのアイコンをクリックして関数を追加し、ドロップダウンメニューから `rollup` を選択します。次に、データを集計する方法と間隔 (秒) を選択します。 +データを手動でロールアップするには、[ロールアップ関数][12] を使用します。シグマアイコンをクリックして関数を追加し、ドロップダウンメニューから `rollup` を選択します。次に、データの集約方法と秒単位の間隔を選択します。 このクエリは、全マシンにわたる利用可能なディスクスペースの平均値を 1 分間隔で集計し、それを表す単一のラインを作成します。 -{{< img src="dashboards/querying/references-graphing-rollup-example-minutes.png" alt="マシン全体の system.disk.free メトリクスのロールアップ例" style="width:100%;">}} +{{< img src="dashboards/querying/references-graphing-rollup-example-minutes.png" alt="すべてのマシンにわたる system.disk.free メトリクスのロールアップ例" style="width:100%;">}} JSON ビューに切り替えると、以下のようなクエリが表示されます。 @@ -127,50 +126,50 @@ JSON ビューに切り替えると、以下のようなクエリが表示され } ``` -JSON ビューの使用方法については、[JSON を使用したグラフ作成][1]をご参照ください。 +JSON ビューの使用方法については、[JSON を使用したグラフ作成][1] をご参照ください。 -#### 空間集計の構成 +#### スペース集計を構成する{#configure-the-space-aggregation} -集約方法のドロップダウンの隣から、グラフ上で線またはグループを構成する要素を選択します。たとえば、`host` を選択すると、各 `host` につき 1 本の線が表示されます。各線は、特定の `host` に関する選択されたメトリクスで構成されており、選択した方法により集約されます。 +集計方法のドロップダウンの隣で、グラフ上の線またはグループをどのように構成するかを選択します。たとえば、`host` を選択すると、`host` ごとに 1 本の線が表示されます。各線は、特定の `host` において選択したメトリクスを選択した方法で集計したものです。 -さらに、[メトリクスの定義](#define-the-metric)で使用されるメトリクスのドロップダウンでタグをクリックすると、データをグループ化したり、集計したりすることができます。 +さらに、[defining the metric](#define-the-metric) で使用されるメトリクスのドロップダウンでタグをクリックすると、データをグループ化したり、集計したりすることができます。 -### ネストされたクエリ +### ネストされたクエリ{#nested-queries} -Datadog のネストされたクエリ機能により、既存のメトリクスクエリの結果に時間および/または空間集計の追加レイヤーを追加することができます。この高度なクエリ機能により、カウント/レート/ゲージタイプのメトリクスの集計クエリ結果のパーセンタイルや標準偏差を計算したり、より高解像度のクエリを過去の時間枠で実行したりすることも可能です。 +Datadog のネストされたクエリ機能を使用すると、既存のメトリクスクエリの結果に対して、時間および/またはスペース集計の追加レイヤーを追加できます。この高度なクエリ機能により、カウント/レート/ゲージタイプのメトリクスの集計クエリ結果のパーセンタイルや標準偏差を計算したり、より高解像度のクエリを過去の時間枠で実行したりすることも可能です。 -詳細については、[ネストされたクエリ][13]のドキュメントを参照してください。 +詳細については、[ネストされたクエリ][13] のドキュメントを参照してください。 -### 高度なグラフの作成 +### 高度なグラフの作成{#advanced-graphing} -分析のニーズに応じて、レートや微分、平滑化など、他の数学関数をクエリに適用することもできます。詳細については、[使用可能な関数のリスト][14]をご参照ください。 +分析のニーズに応じて、クエリに他の数学関数を適用できます。例としては、レートや導関数、平滑化などがあります。[利用可能な関数のリスト][14] を参照してください。 -また、Datadog では、さまざまな算術演算によりメトリクス、ログ、トレース、その他のデータソースをグラフ化できます。グラフに表示される 値を変更するには、`+`、`-`、`/`、`*`、`min`、および `max` を使用します。この構文では、整数値、および複数のメトリクスを使用した演算の両方を使用できます。 +Datadog は、さまざまな算術演算を使用して、メトリクス、ログ、トレース、およびその他のデータソースをグラフ化する機能もサポートしています。グラフに表示される値を変更するには、`+`、`-`、`/`、`*`、`min`、および `max` を使用します。この構文では、整数値と複数のメトリクスを使用した算術演算の両方を使用できます。 -各メトリクスを別々にグラフに表示するには、コンマ (`,`) を使用します(例: `a, b, c`)。 +各メトリクスを別々にグラフに表示するには、カンマ `,` を使用します。たとえば、`a, b, c`。 -**注**: コンマを使用したクエリは視覚化でのみサポートされ、モニターでは機能しません。モニターで複数のメトリクスを組み合わせるには、[ブール演算子][15]または算術演算子を使用します。 +**注**: カンマを使用したクエリは視覚化でのみサポートされており、モニターでは機能しません。[ブール演算子][15] や算術演算を使用して、モニター内で複数のメトリクスを組み合わせます。 -#### 整数を使用したメトリクスの演算 +#### 整数を使用したメトリクスの演算{#metric-arithmetic-using-an-integer} -グラフでメトリクス値の表示方法を変更するには、算術演算を実行します。たとえば、特定のメトリクスの 2 倍の値を視覚化するには、グラフエディターで **Advanced...** リンクをクリックします。次に、`Formula` ボックスに計算式 (この例では `a * 2`) を入力します。 +算術演算を行うことで、グラフ上のメトリクスの表示値を変更します。たとえば、特定のメトリクスの 2 倍を視覚化するには、グラフエディター内の {{< ui >}}Advanced...{{< /ui >}} リンクをクリックします。次に、`Formula` ボックスに算術式を入力します。この場合は `a * 2` です。 -{{< img src="dashboards/querying/arithmetic_4.png" alt="数式の例 - 乗算" style="width:75%;" >}} +{{< img src="dashboards/querying/arithmetic_4.png" alt="計算式の例 - 乗算" style="width:75%;" >}} -#### 2 つのメトリクス間の計算 +#### 2 つのメトリクス間の計算 {#arithmetic-between-two-metrics} -メトリクスの割合を視覚化するには、1 つのメトリクスをもう 1 つのメトリクスで除算します。以下に例を示します。 +メトリクスの割合を視覚化するために、1 つのメトリクスをもう 1 つのメトリクスで除算します。以下に例を示します。 ```text jvm.heap_memory / jvm.heap_memory_max ``` -グラフエディターの **Advanced...** オプションから **Add Query** を選択します。クエリにはアルファベット順に文字が割り当てられ、最初のメトリクスは `a` 、2 番目のメトリクスは `b` のように表示されます。 +グラフエディターで {{< ui >}}Advanced...{{< /ui >}} オプションを使用し、{{< ui >}}Add Query{{< /ui >}} を選択します。クエリにはアルファベット順に文字が割り当てられ、最初のメトリクスは `a`、2 番目のメトリクスは `b` のように表示されます。 -次に、`Formula` ボックスに算術演算 (この例では `a / b`) を入力します。グラフに数式のみを表示するには、メトリクス `a` および `b` の横にあるチェックマークをクリックします。 +次に、`Formula` ボックスに計算式 (この場合は `a / b`) を入力します。計算式のみをグラフで表示するには、メトリクス `a` と `b` の横のチェックマークをクリックします。 -{{< img src="dashboards/querying/arithmetic_5.png" alt="数式の例 - 比率" style="width:75%;" >}} +{{< img src="dashboards/querying/arithmetic_5.png" alt="計算式の例 - 比率" style="width:75%;" >}} これは、`error` ログと `info` ログの比率をグラフ化する方法を示す別の例です。 @@ -178,50 +177,50 @@ jvm.heap_memory / jvm.heap_memory_max status:error / status:info ``` -{{< img src="dashboards/querying/arithmetic_6.png" alt="数式の例 - ログ比率" style="width:75%;" >}} +{{< img src="dashboards/querying/arithmetic_6.png" alt="計算式の例 - ログ比率" style="width:75%;" >}} -**注**: 数式に文字は割り当てられません。数式間では演算できません。 +**注**: 計算式にはアルファベットのラベルが付けられていません。計算式同士での算術演算はできません。 -#### 2 つのクエリ間の最小値または最大値 +#### 2 つのクエリ間の最小値または最大値{#minimum-or-maximum-between-two-queries} 以下は `max` 演算子を使用して、2 つのアベイラビリティゾーン間の CPU 使用率の最大値を求める例です。 ```text -max(system.cpu.user{availability-zone:eastus-1}, system.cpu.user{availability-zone:eastus-2}) +max(system.cpu.user{availability-zone:eastus-1}, system.cpu.user{availability-zone:eastus-2}) ``` -{{< img src="dashboards/querying/minmax_metrics_example.png" alt="2 つのメトリクスクエリ間の最大カウント値を示す 'max' の計算式例" style="width:75%;" >}} +{{< img src="dashboards/querying/minmax_metrics_example.png" alt="計算式の例 - 'max' を使用して 2 つのメトリクスクエリ間の最大カウント値を表示します。" style="width:75%;" >}} -さらに、異なる商品の 2 つのクエリ間の最大値 (または最小値) を計算することもできます。以下は `min` 演算子を使用して、エラーステータスと警告ステータスのログ間の最小値を求める別の例です。 +さらに、異なる製品間で 2 つのクエリの最大値 (または最小値) を計算することもできます。これは、`min` 演算子を使用して、エラーステータスと警告ステータスのログ間の最小値を求める別の例です。 ```text min(status:error, status:warn) ``` -{{< img src="dashboards/querying/minmax_logs_platform_example.png" alt="2 つのログクエリ間の最小カウント値を示す 'min' の計算式例" style="width:75%;" >}} +{{< img src="dashboards/querying/minmax_logs_platform_example.png" alt="計算式の例 - 'min' を使用して 2 つのログクエリ間の最小カウント値を表示します。" style="width:75%;" >}} -### エイリアスを作成する +### エイリアスを作成する{#create-an-alias} データソースのカスタムエイリアスを作成して、ユーザーがグラフの結果を簡単に解釈できるようにすることができます。 {{< img src="dashboards/querying/custom_alias.png" alt="カスタムエイリアス" style="width:75%;" >}} -### タイトルの作成 +### タイトルの作成{#create-a-title} -タイトルを入力しなくても、選択内容に基づいてタイトルが自動的に生成されますが、グラフの内容を表すタイトルをご自身で作成することをお勧めします。 +タイトルを入力しない場合は、選択内容に基づいてタイトルが自動的に生成されます。ただし、グラフの目的を説明するタイトルを設定することを推奨します。 -### 保存 +### 保存{#save} -作業内容を保存してエディターを終了するには **Done** をクリックします。いつでもエディターに戻ってグラフを変更できます。変更を加えた一方で、その内容を保存しない場合は、**Cancel** をクリックします。 +{{< ui >}}Done{{< /ui >}} をクリックして作業を保存し、エディターを終了します。いつでもエディターに戻ってグラフを変更できます。保存したくない変更を行った場合は、{{< ui >}}Cancel{{< /ui >}} をクリックします。 -## その他のオプション +## その他のオプション{#additional-options} -### イベントオーバーレイ +### イベントオーバーレイ{#event-overlays} -{{< img src="/dashboards/querying/event_overlay_example.png" alt="RUM のエラーレートをデプロイイベントと重ね合わせて表示する時系列ウィジェット" style="width:100%;" >}} +{{< img src="/dashboards/querying/event_overlay_example.png" alt="デプロイメントイベントを重ね合わせた RUM のエラーレートを表示する時系列ウィジェット" style="width:100%;" >}} -[時系列][16]可視化のグラフエディタで **Event Overlays** セクションを使用して、イベントの相関関係を表示します。検索フィールドに、任意のテキストまたは構造化検索クエリを入力します。イベント検索では、[ログ検索構文][17]を使用します。 +[Timeseries][16] 視覚化のグラフエディターの {{< ui >}}Event Overlays{{< /ui >}} セクションを使用して、イベント相関を表示します。検索フィールドに任意のテキストまたは構造化検索クエリを入力します。イベント検索では、[ログ検索構文][17] を使用します。 -イベントオーバーレイは、すべてのデータソースをサポートしています。これにより、ビジネスイベントと Datadog のあらゆるサービスからのデータとの相関を容易にすることができます。 +イベントオーバーレイはすべてのデータソースをサポートします。これにより、ビジネスイベントと Datadog のあらゆるサービスからのデータとの相関を容易にすることができます。 イベントオーバーレイを使えば、組織内のアクションがアプリケーションやインフラストラクチャーのパフォーマンスにどのような影響を与えるかを素早く確認することができます。以下に、使用例をいくつか紹介します。 - デプロイメントイベントを重ね合わせた RUM のエラーレート @@ -230,17 +229,17 @@ min(status:error, status:warn) - Datadog が適切なアラートで構成されていることを確認するために、あらゆる時系列データとモニターアラートを相関させる -### スプリットグラフ +### スプリットグラフ{#split-graph} -スプリットグラフを使えば、メトリクスをタグごとに分けて可視化することができます。 +スプリットグラフを使えば、メトリクスをタグごとに分けて視覚化することができます。 -{{< img src="dashboards/querying/split_graph_beta.png" alt="フルスクリーンウィジェットでメトリクス container.cpu.usage のスプリットグラフを表示する" style="width:100%;" >}} +{{< img src="dashboards/querying/split_graph_beta.png" alt="フルスクリーンウィジェットでメトリクス container.cpu.usage のスプリットグラフを表示します" style="width:100%;" >}} -1. グラフ表示時に **Split Graph** タブでこの機能にアクセスします。 -1. また、*sort by* メトリクスを変更することで、グラフ化しているデータと他のメトリクスとの関連性を確認することができます。 -1. 表示するグラフの数を *limit to* の値で制限します。 +1. グラフ表示時に {{< ui >}}Split Graph{{< /ui >}} タブでこの機能にアクセスします。 +1. また、{{< ui >}}sort by{{< /ui >}} メトリクスを変更することで、グラフ化しているデータと他のメトリクスとの関連性を確認することができます。 +1. 表示するグラフの数を {{< ui >}}limit to{{< /ui >}} の値で制限します。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/internal_developer_portal/software_catalog/entity_model/_index.md b/content/ja/internal_developer_portal/software_catalog/entity_model/_index.md new file mode 100644 index 00000000000..cf8a8578f01 --- /dev/null +++ b/content/ja/internal_developer_portal/software_catalog/entity_model/_index.md @@ -0,0 +1,606 @@ +--- +algolia: + tags: + - codeLocations +aliases: +- /ja/software_catalog/service_definitions/ +- /ja/software_catalog/adding_metadata +- /ja/tracing/software_catalog/service_metadata_structure +- /ja/tracing/software_catalog/adding_metadata +- /ja/software_catalog/add_metadata +- /ja/service_catalog/adding_metadata +- /ja/tracing/service_catalog/service_metadata_structure +- /ja/tracing/service_catalog/adding_metadata +- /ja/service_catalog/add_metadata +- /ja/service_catalog/service_definitions +- /ja/service_catalog/service_definitions/v2-0 +- /ja/software_catalog/service_definitions/v2-0 +- /ja/service_catalog/service_definitions/v2-1 +- /ja/software_catalog/service_definitions/v2-1 +- /ja/service_catalog/service_definitions/v2-2 +- /ja/software_catalog/service_definitions/v2-2 +- /ja/service_catalog/service_definitions/v3-0 +- /ja/software_catalog/service_definitions/v3-0 +- /ja/software_catalog/apis +- /ja/tracing/faq/service_definition_api/ +- /ja/tracing/software_catalog/service_definition_api +- /ja/software_catalog/service_definition_api +- /ja/tracing/service_catalog/service_definition_api +- /ja/service_catalog/service_definition_api +- /ja/tracing/api_catalog/api_catalog_api/ +- /ja/api_catalog/api_catalog_api +- /ja/service_catalog/apis +further_reading: +- link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_definition_yaml + tag: 外部サイト + text: Terraform による定義の作成と管理 +- link: /api/latest/service-definition/ + tag: API + text: 定義 API について +- link: /integrations/github + tag: ドキュメント + text: GitHub インテグレーションについて +- link: https://www.datadoghq.com/blog/service-catalog-backstage-yaml/ + tag: ブログ + text: Backstage の YAML ファイルを Datadog にインポートする +- link: https://www.datadoghq.com/blog/service-catalog-schema-v3/ + tag: ブログ + text: Service Catalog のスキーマバージョン 3.0 で開発者体験とコラボレーションを向上させる +- link: https://www.datadoghq.com/blog/software-catalog-custom-entities/ + tag: ブログ + text: Datadog Software Catalog でカスタムエンティティを使用してアーキテクチャをモデル化する +title: エンティティモデル +--- +{{< site-region region="gov,gov2" >}} +
    エンティティモデルスキーマ v3.0 は、選択されたサイトでは現在利用できません。
    + +{{< /site-region >}} + +## 概要 {#overview} + +Software Catalog は、エンティティに関する関連メタデータを保存および表示するために定義スキーマを使用します。スキーマには、有効な値のみが受け入れられることを保証するための組み込みの検証ルールがあります。選択したサービスについて、Software Catalog のサイドパネルの [**Definition**] (定義) タブで警告を確認できます。 + +{{< img src="/tracing/internal_developer_portal/entity-model-flow-chart.png" alt="Software Catalog のコンポーネントが互いに、そしてクラウド環境とどのように接続しているかを示すフローチャート " style="width:100%;" >}} + +## サポートされるバージョン {#supported-versions} + +Datadog は以下の 4 つの定義スキーマのバージョンをサポートしています。 + +- **v3.0**: 拡張されたデータモデル、マルチオーナーシップサポート、手動の依存関係宣言、複雑なインフラストラクチャー向けの拡張機能を備えた最新バージョン。 +- **v2.2**: カスタムメタデータのためのユーザー注釈と、サービスをビルドプロセスに関連付けるための CI パイプライン連携をサポート。 +- **v2.1**: サービスのグループ化による整理機能と、より包括的なサービス説明のための追加フィールドを導入。 +- **v2**: 基本的なサービスメタデータとドキュメンテーション用の必須フィールドを提供する、最も初期のサポートバージョン。 + +各バージョンは前のバージョンを基に構築され、新しい機能を追加しながら後方互換性を維持しています。ニーズとインフラストラクチャーの複雑さに合わせて、最適なバージョンを選択してください。 + +## バージョン比較 {#version-comparison} + +以下は各バージョンでサポートされる機能一覧です。 + +| 機能 | v3.0 | v2.2 | v2.1 | v2.0 | +|-------------------------------|-------------|-----------|-----------|-----------| +| 基本的なメタデータ | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| サービスのグループ化 | {{< X >}} | {{< X >}} | {{< X >}} | | +| ユーザー注釈 | {{< X >}} | {{< X >}} | | | +| CI パイプラインの連携 | {{< X >}} | {{< X >}} | | | +| 拡張データモデル | {{< X >}} | | | | +| 複数のオーナーシップ | {{< X >}} | | | | +| 手動による依存関係宣言 | {{< X >}} | | | | + +完全なスキーマや YAML ファイルの例など、各バージョンの詳細な情報については、[Supported versions](#supported-versions)の各バージョンのページを参照してください。 + +## バージョンの詳細 {#version-details} + +{{< callout url="https://forms.gle/fwzarcSww6By7tn39" d_target="#signupModal" btn_hidden="false" header="最新バージョンの Software Catalog のプレビューにご参加ください。" >}} +{{< /callout >}} + +{{< tabs >}} +{{% tab "v3.0" %}} + +### 主な特徴 {#key-features} +- **拡張データモデル**: v3.0 は複数の種類のエンティティをサポートしています。システム、サービス、キュー、データストアなどのさまざまなコンポーネントを使用して、システムを整理できます。 +- **複数のオーナーシップ**: v3.0 スキーマで定義された任意のオブジェクトに複数の所有者を割り当てて、複数の連絡先を指定できます。 +- **強化された関係マッピング**: APM および USM データを使用して、コンポーネント間の依存関係を自動的に検出できます。v3.0 では、自動検出されたトポロジ―を補完するための手動による宣言が可能で、システム内でコンポーネントがどのように相互作用しているかを完全に把握できます。 +- **システムメタデータの継承**: システム内のコンポーネントは、自動的にシステムのメタデータを継承します。v2.1 や v2.2 のように、関連するコンポーネントごとに個別でメタデータを宣言する必要はなくなりました。 +- **正確なコードの場所**: サービスのコードが存在する場所をマッピングできます。v3.0 の `codeLocations` セクションでは、コードを含むリポジトリおよびその関連する `paths` と共に、コードの場所を指定します。`paths` 属性は、リポジトリ内のパスに一致する [globs][4] のリストです。 +- **ログとイベントのフィルタリング**: `logs` および `events` セクションで `system` の保存済みログやイベントクエリを宣言でき、[System] (システム) ページで結果を確認できます。 +- **カスタムエンティティ**: サービス、システム、データストア、キュー、API に加えて、カスタムのエンティティタイプを定義できます。スコープスコアカードやアクションを、特定のエンティティタイプに適用できます。 +- **(今後対応予定) 統合機能**: サードパーティツール (GitHub のプルリクエスト、PagerDuty のインシデント、GitLab のパイプラインなど) と統合し、コンポーネントに関連するソース情報を動的に取得します。サードパーティソースに対してレポートを作成し、スコアカードルールを記述できます。 +- **(今後対応予定) 製品やドメインごとのグループ化**: 製品ごとにコンポーネントを整理し、複数レイヤーの階層構造によるグループ化を可能にします。 + +### スキーマ構造 {#schema-structure} + +[Github で完全なスキーマ定義][1] を確認できます。 + +V3.0 には v2.2 から次の変更が含まれています。 +- `schema_version` は `apiVersion` に変更されました。 +- `kind` フィールドが新しく追加され、コンポーネントのタイプ (サービス、キュー、データストア、システム、または API) を定義します。 +- `dd-service` は`metadata.name` に変更されました。 +- `team` は `owner` に変更され、複数のチームがいる場合は `additionalOwners` を使用します。 +- `lifecycle`、`tier`、`languages`、および `type`は `spec` 配下に移動しました。 +- `links`、`contacts`、`description`、および `tags` はメタデータ配下に移動しました。 +- `application` は機能拡張され、`system` という独自した種類になりました。これにより、サービス上の個別のフィールドとしては存在しなくなりました。 + +### YAML ファイルの例 {#example-yaml-files} + +{{% collapse-content title="次のコンポーネント: kind:system" level="h4" expanded=false id="id-for-anchoring" %}} +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +metadata: + name: myapp + displayName: My App + tags: + - tag:value + links: + - name: shopping-cart runbook + type: runbook + url: https://runbook/shopping-cart + - name: shopping-cart architecture + provider: gdoc + url: https://google.drive/shopping-cart-architecture + type: doc + - name: shopping-cart Wiki + provider: wiki + url: https://wiki/shopping-cart + type: doc + - name: shopping-cart source code + provider: github + url: http://github/shopping-cart + type: repo + contacts: + - name: Support Email + type: email + contact: team@shopping.com + - name: Support Slack + type: slack + contact: https://www.slack.com/archives/shopping-cart + owner: myteam + additionalOwners: + - name: opsTeam + type: operator +integrations: + pagerduty: + serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart + opsgenie: + serviceURL: https://www.opsgenie.com/service/shopping-cart + region: US +spec: + components: + - service:myservice + - service:otherservice +extensions: + datadoghq.com/shopping-cart: + customField: customValue +datadog: + codeLocations: + - repositoryURL: https://github.com/myorganization/myrepo.git + paths: + - path/to/service/code/** + events: + - name: "deployment events" + query: "app:myapp AND type:github" + - name: "event type B" + query: "app:myapp AND type:github" + logs: + - name: "critical logs" + query: "app:myapp AND type:github" + - name: "ops logs" + query: "app:myapp AND type:github" + pipelines: + fingerprints: + - fp1 + - fp2 +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="次のコンポーネント: kind:library" level="h4" expanded=false id="id-for-anchoring" %}} +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: library +metadata: + name: my-library + displayName: My Library + tags: + - tag:value + links: + - name: shopping-cart runbook + type: runbook + url: https://runbook/shopping-cart + - name: shopping-cart architecture + provider: gdoc + url: https://google.drive/shopping-cart-architecture + type: doc + - name: shopping-cart Wiki + provider: wiki + url: https://wiki/shopping-cart + type: doc + - name: shopping-cart source code + provider: github + url: http://github/shopping-cart + type: repo + contacts: + - name: Support Email + type: email + contact: team@shopping.com + - name: Support Slack + type: slack + contact: https://www.slack.com/archives/shopping-cart + owner: myteam + additionalOwners: + - name: opsTeam + type: operator +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="複数のシステムの一部であるコンポーネント" level="h4" expanded=false id="id-for-anchoring" %}} +単一のコンポーネントが複数のシステムの一部である場合、そのコンポーネントを各システムの YAML に指定する必要があります。たとえば、データストア `orders-postgres` が Postgres のフリートと Web アプリケーションの両方のコンポーネントである場合、2 つの YAML を指定します。 + +Postgres フリート (`managed-postgres`) については、`kind:system` の定義を指定します。 +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +spec: + components: + - datastore:orders-postgres + - datastore:foo-postgres + - datastore:bar-postgres +metadata: + name: managed-postgres + owner: db-team +{{< /code-block >}} + +Web アプリケーション (`shopping-cart`) については、`kind:system` の別の定義を宣言します。 +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} + +apiVersion: v3 +kind: system +spec: + lifecycle: production + tier: critical + components: + - service:shopping-cart-api + - service:shopping-cart-processor + - queue:orders-queue + - datastore:orders-postgres +metadata: + name: shopping-cart + owner: shopping-team + additionalOwners: + - name: sre-team + type: operator +--- +apiVersion: v3 +kind: datastore +metadata: + name: orders-postgres + additionalOwners: + - name: db-team + type: operator +--- +apiVersion: v3 +kind: service +metadata: + name: shopping-cart-api +--- +apiVersion: v3 +kind: service +metadata: + name: shopping-cart-processor +--- +{{< /code-block >}} +{{% /collapse-content %}} + +### 明示的/暗黙的なメタデータの継承 {#explicit-and-implicit-metadata-inheritance} + +#### 明示的継承 {#explicit-inheritance} + +`inheritFrom`フィールドは、取り込みパイプラインに、`:` で参照されるエンティティのメタデータを継承するよう指示します。 + +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +inheritFrom:: +{{< /code-block >}} + +#### 暗黙的継承 {#implicit-inheritance} +コンポーネント (`kind:service`、`kind:datastore`、`kind:queue`、`kind:ui`) は、次の条件下で、所属するシステムからすべてのメタデータを継承します。 +- YAML ファイルに定義されたシステムが 1 つだけである。 +- YAML ファイルに `inheritFrom::` の指定が存在しない。 + +### v3.0 への移行 {#migrating-to-v30} +v3.0 は、これまでのバージョンと同様の方法で、Github、API、Terraform、Backstage、ServiceNow、UI などを利用してメタデータを作成できます。ただし、v3.0 には新しい [API エンドポイント][5] と新しい [Terraform リソース][6] があります。 + +### API リファレンスドキュメント {#api-reference-documentation} +エンドポイント、システム、データストア、キューなどのすべてのエンティティタイプの定義を作成、取得、削除する方法については、[Software Catalog API リファレンス][8] を参照してください。 + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v3 +[2]: https://github.com/DataDog/schema/tree/main/service-catalog +[3]: /ja/code_analysis/faq/#identifying-the-code-location-in-the-service-catalog +[4]: https://en.wikipedia.org/wiki/Glob_(programming) +[5]: /ja/api/latest/software-catalog/ +[6]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog +[7]: software_catalog/customize/import_entries_backstage +[8]: /ja/api/latest/software-catalog/ + +{{% /tab %}} + +{{% tab "v2.2" %}} + +### 主な特徴 {#key-features-1} +- ユーザー注釈 +- 自動検出されたサービスタイプと言語を、`type` と `languages` を使用して上書きできます。 +- `ci-pipeline-fingerprints` を使用して、サービスに CI パイプラインを関連付けることができます。 +- `contact.type`と`link.type`のため検証ロジックが緩和されました。 + +### スキーマ構造 {#schema-structure-1} + +[完全なスキーマは GitHub で入手可能です][1]。 + +YAML の例: + +```yaml +schema-version: v2.2 +dd-service: shopping-cart +team: e-commerce +application: shopping-app +tier: "1" +type: web +languages: + - go + - python +contacts: + - type: slack + contact: https://yourorg.slack.com/archives/e-commerce + - type: email + contact: ecommerce@example.com + - type: microsoft-teams + contact: https://teams.microsoft.com/example +links: + - name: Runbook + type: runbook + url: http://runbook/shopping-cart + - name: Source + type: repo + provider: github + url: https://github.com/shopping-cart + - name: Deployment + type: repo + provider: github + url: https://github.com/shopping-cart + - name: Config + type: repo + provider: github + url: https://github.com/consul-config/shopping-cart + - name: E-Commerce Team + type: doc + provider: wiki + url: https://wiki/ecommerce + - name: Shopping Cart Architecture + type: doc + provider: wiki + url: https://wiki/ecommerce/shopping-cart + - name: Shopping Cart RFC + type: doc + provider: google doc + url: https://doc.google.com/shopping-cart +tags: + - business-unit:retail + - cost-center:engineering +integrations: + pagerduty: + service-url: https://www.pagerduty.com/service-directory/PSHOPPINGCART + opsgenie: + service-url: "https://www.opsgenie.com/service/uuid" + region: "US" +ci-pipeline-fingerprints: + - id1 + - id2 +extensions: + additionalProperties: + customField1: customValue1 + customField2: customValue2 +``` + +### API リファレンスドキュメント {#api-reference-documentation-1} + +- サービス定義を作成、取得、削除する方法については、[サービス定義 API リファレンス][4] を参照してください。 +- システム、データストア、キューなどの新しいコンポーネントタイプの定義を作成、取得、削除する方法については、[Software Catalog API リファレンス][3] を参照してください。 +- サービススコアカードのルールと結果を作成および更新するには、[サービススコアカード API リファレンス][2] を参照してください。 + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2.2 +[2]: /ja/api/latest/service-scorecards/ +[3]: /ja/api/latest/software-catalog/ +[4]: /ja/api/latest/service-definition/ + +{{% /tab %}} + +{{% tab "v2.1" %}} + +### 主な特徴 {#key-features-2} +- サービスのグループ化や`application`、`tier`、`lifecycle` の各フィールドなど、新しい UI 要素が追加されました。 +- `Application` および `Teams`は、Software Catalog でのグループ化変数として使用できます。 +- `Lifecycle`フィールドは開発段階を示し、`production`、`experimental`、または `deprecated` のサービスを区別するために使われます。 +- `Tier` フィールドはサービスの重要性を示し、インシデント対応時の優先順位付けに利用されます。 + +### スキーマ構造 {#schema-structure-2} + +[完全なスキーマは GitHub で入手可能です][1]。 + +YAML の例: + +```yaml +schema-version: v2.1 +dd-service: delivery-state-machine +team: serverless +application: delivery-state-machine +tier: tier0 +lifecycle: production +contacts: + - type: slack + contact: https://datadogincidents.slack.com/archives/C01EWN6319S +links: + - name: Demo Dashboard + type: dashboard + url: https://app.datadoghq.com/dashboard/krp-bq6-362 + - name: Source + provider: github + url: https://github.com/DataDog/shopist-serverless/tree/main/delivery-state-machine + type: repo + - name: Deployment + provider: github + url: https://github.com/DataDog/shopist-serverless/blob/main/delivery-state-machine/serverless.yml + type: repo + - name: Datadog Doc + provider: link + url: https://docs.datadoghq.com/ + type: doc +tags: + - "app:serverless-delivery" + - "tier:3" + - "business-unit:operations" +``` + +### API リファレンスドキュメント {#api-reference-documentation-2} + +- サービス定義を作成、取得、削除する方法については、[サービス定義 API リファレンス][4] を参照してください。 +- システム、データストア、キューなどの新しいコンポーネントタイプの定義を作成、取得、削除する方法については、[Software Catalog API リファレンス][3] を参照してください。 +- サービススコアカードのルールと結果を作成および更新するには、[サービススコアカード API リファレンス][2] を参照してください。 + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2.1 +[2]: /ja/api/latest/service-scorecards/ +[3]: /ja/api/latest/software-catalog/ +[4]: /ja/api/latest/service-definition/ + +{{% /tab %}} + +{{% tab "v2.0" %}} + +### 主な特徴 {#key-features-3} +- 基本的なサービスメタデータ +- チームの関連付け +- 連絡先情報 +- 外部リンク + +### スキーマ構造 {#schema-structure-3} + +[完全なスキーマは GitHub で入手可能です][1]。 + +YAML の例: + +```yaml +schema-version: v2 +dd-service: delivery-api +team: distribution-management +contacts: + - type: slack + contact: https://datadogincidents.slack.com/archives/C01EWN6319S +links: + - name: Demo Dashboard + type: dashboard + url: https://app.datadoghq.com/dashboard/krp-bq6-362 +repos: + - name: Source + provider: github + url: https://github.com/DataDog/shopist/tree/prod/rails-storefront +docs: + - name: Datadog Doc + provider: link + url: https://docs.datadoghq.com/ +tags: [] +integrations: + pagerduty: https://datadog.pagerduty.com/service-directory/PXZNFXP +``` + +### API リファレンスドキュメント {#api-reference-documentation-3} + +- サービス定義を作成、取得、削除する方法については、[サービス定義 API リファレンス][4] を参照してください。 +- システム、データストア、キューなどの新しいコンポーネントタイプの定義を作成、取得、削除する方法については、[Software Catalog API リファレンス][3] を参照してください。 +- サービススコアカードのルールと結果を作成および更新するには、[サービススコアカード API リファレンス][2] を参照してください。 + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2 +[2]: /ja/api/latest/service-scorecards/ +[3]: /ja/api/latest/software-catalog/ +[4]: /ja/api/latest/service-definition/ + +{{% /tab %}} + +{{< /tabs >}} + + +## カスタム拡張機能を構築する {#build-custom-extensions} + +
    カスタム拡張機能は、すべてのスキーマバージョンで限定的に利用可能です。
    + +カスタム拡張機能を使用すると、組織固有のメタデータをエンティティに追加でき、カスタムツールやワークフローのサポートが可能になります。たとえば、`extensions` フィールドを使用して、リリースノート、コンプライアンスタグ、または所有モデルをエンティティ定義に含めることができます。 + +Datadog は、特定の機能向けに専用の拡張キーもサポートしています。これには、次のものが含まれます。 +- `datadoghq.com/dora-metrics`: [DORA メトリクス][21] の計算時に、Git コミットをフィルタリングするためのソースコードパスパターンを定義します。 +- `datadoghq.com/cd-visibility`: [CD Visibility][22] において、デプロイの一部と見なされるコミットを制御します。 + +次の例では、複数環境にまたがるリリーススケジュールを管理するためのカスタム拡張を定義しています。 +{{< code-block lang="yaml" filename="service.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +metadata: + name: payment-platform + displayName: "Payment Platform" + links: + - name: Runbook + type: runbook + url: https://runbook/payment-platform + contacts: + - name: Payment Team + type: team + contact: https://www.slack.com/archives/payments + owner: payments-team + additionalOwners: + - name: finance-team + type: stakeholder +spec: + components: + - service:payment-api + - queue:payment-requests + - datastore:payment-db +extensions: + shopist.com/release-scheduler: + release-manager: + slack: "release-train-shopist" + schedule: "* * * * *" + env: + - name: "staging" + ci_pipeline: "ci-tool://shopist/k8s/staging-deploy" + branch: "main" + schedule: "0 9 * * 1" +{{< /code-block >}} + + +## IDE プラグインによるスキーマ検証 {#schema-validation-through-ide-plugin} + +Datadog は定義用の [JSON スキーマ][18] を提供しており、[対応する IDE][19] 上で定義を編集する際に、オートコンプリートや検証などの機能が利用できるようになっています。 + +{{< img src="tracing/software_catalog/ide_plugin.png" alt="VSCode で修正すべき問題を検出" style="width:100%;" >}} + +[Datadog 定義用の JSON スキーマ][20] はオープンソースの [Schema Store][19] に登録されています。 + + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[5]: https://app.datadoghq.com/services +[6]: /ja/integrations/github/ +[7]: https://app.datadoghq.com/integrations/github +[8]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_definition_yaml +[9]: https://registry.terraform.io/providers/DataDog/datadog/latest/ +[10]: https://github.com/marketplace/actions/datadog-service-catalog-metadata-provider +[11]: /ja/tracing/software_catalog/service_definition_api/ +[12]: https://app.datadoghq.com/personal-settings/profile +[13]: http://json-schema.org/ +[14]: https://www.schemastore.org/json/ +[15]: https://raw.githubusercontent.com/DataDog/schema/refs/heads/main/service-catalog/service.schema.json +[16]: /ja/api/latest/software-catalog/#create-or-update-entities +[17]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog +[18]: http://json-schema.org/ +[19]: https://www.schemastore.org +[20]: https://raw.githubusercontent.com/DataDog/schema/refs/heads/main/service-catalog/service.schema.json +[21]: /ja/dora_metrics/setup/#handling-multiple-services-in-the-same-repository +[22]: /ja/continuous_delivery/features/code_changes_detection?tab=github#specify-service-file-path-patterns \ No newline at end of file diff --git a/content/ja/metrics/_index.md b/content/ja/metrics/_index.md index b45d2f609cb..23361b7328c 100644 --- a/content/ja/metrics/_index.md +++ b/content/ja/metrics/_index.md @@ -8,38 +8,37 @@ cascade: algolia: rank: 70 tags: - - メトリクスを送信する - - メトリクスの送信 + - submit metrics + - metrics submission title: メトリクス --- - -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} - カスタムメトリクスのための Foundation Enablement セッションにご登録ください。カスタムメトリクスが、訪問者数、平均顧客バスケットサイズ、リクエストレイテンシー、カスタムアルゴリズムのパフォーマンス分布など、アプリケーション KPI の追跡にどのように役立つかを学びましょう。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} + Custom Metrics の Foundation Enablement セッションを確認し、登録してください。訪問者数、顧客の平均バスケットサイズ、リクエストのレイテンシー、カスタムアルゴリズムのパフォーマンス分布などのアプリケーションの KPI の追跡に、Custom Metrics がどのように役立つかを学びます。 {{< /learning-center-callout >}} -これは Datadog におけるメトリクスの紹介と、それらがなぜ有用であるかについての説明です。このセクションには以下のトピックが含まれます。 +ここでは、Datadog における Metrics の概要と、Metrics が役に立つ理由について説明します。このセクションには下記のトピックが含まれています。 -{{< whatsnext desc="メトリクスを Datadog に送信する" >}} - {{< nextlink href="/metrics/custom_metrics">}}カスタムメトリクスの送信 - カスタムメトリクスの意味と送信方法をご紹介します。{{< /nextlink >}} - {{< nextlink href="/opentelemetry/otel_metrics" >}}OpenTelemetry メトリクスの送信 - Datadog Agent または OpenTelemetry Collector を構成します。{{< /nextlink >}} - {{< nextlink href="/metrics/types" >}}メトリクスタイプ - Datadog に送信できるメトリクスの種類。{{< /nextlink >}} - {{< nextlink href="/metrics/distributions" >}}ディストリビューションメトリクス - ディストリビューションメトリクスとグローバルに正確なパーセンタイルについてご紹介します。{{< /nextlink >}} - {{< nextlink href="/metrics/units" >}}メトリクス単位 - メトリクスに関連付けられる単位についてご紹介します。{{< /nextlink >}} +{{< whatsnext desc="メトリクスを Datadog に送信" >}} + {{< nextlink href="/metrics/custom_metrics">}}Custom Metrics の送信 - Custom Metrics とは何かと、その送信方法について学びます。{{< /nextlink >}} + {{< nextlink href="/opentelemetry/reference/otel_metrics" >}}OpenTelemetry Metrics の送信 - Datadog Agent または OpenTelemetry コレクターを設定します。{{< /nextlink >}} + {{< nextlink href="/metrics/types" >}}メトリクスタイプ - Datadog に送信できるメトリクスのタイプ。{{< /nextlink >}} + {{< nextlink href="/metrics/distributions" >}}ディストリビューションメトリクス - ディストリビューションメトリクスについて、およびグローバルに正確なパーセンタイルについて学びます。{{< /nextlink >}} + {{< nextlink href="/metrics/units" >}}メトリクスの単位 - メトリクスに関連付けることができる単位について学びます。{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="メトリクスを可視化およびクエリする" >}} - {{< nextlink href="/metrics/explorer" >}}メトリクスエクスプローラー - すべてのメトリクスを探索し、分析を行います。{{< /nextlink >}} - {{< nextlink href="/metrics/summary" >}}メトリクスサマリー - Datadog メトリクスのアクティブなレポートについて理解します。{{< /nextlink >}} - {{< nextlink href="/metrics/advanced-filtering" >}}高度なフィルタリング - データをフィルタリングして、返されるメトリクスの範囲を絞り込みます。{{< /nextlink >}} - {{< nextlink href="/metrics/nested_queries" >}}ネストされたクエリ - 集計の追加レイヤーを適用して、高度なクエリ機能を活用します。{{< /nextlink >}} +{{< whatsnext desc="メトリクスを視覚化し、クエリします。" >}} + {{< nextlink href="/metrics/explorer" >}}Metrics Explorer - すべてのメトリクスを調べて、分析を実行します。{{< /nextlink >}} + {{< nextlink href="/metrics/summary" >}}Metrics Summary - アクティブに報告されている Datadog のメトリクスについて理解します。{{< /nextlink >}} + {{< nextlink href="/metrics/advanced-filtering" >}}高度なフィルタリング - データをフィルタリングして、返されるメトリクスのスコープを絞り込みます。{{< /nextlink >}} + {{< nextlink href="/metrics/nested_queries" >}}ネストされたクエリ - 追加の集約レイヤーを適用して、高度なクエリ機能を利用可能にします。{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="カスタムメトリクスのボリュームとコストの把握と管理" >}} - {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™ を使用して、タグと集計構成を通じてカスタムメトリクスのボリュームを制御する方法を学びます。{{< /nextlink >}} +{{< whatsnext desc="Custom Metrics のボリュームとコストを理解し、管理します。" >}} + {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™ を使用して、タグの設定により Custom Metrics の量を制御する方法を学びます。{{< /nextlink >}} {{< /whatsnext >}} -## 概要 -### メトリクスとは? +## 概要 {#overview} +### メトリクスとは何か{#what-are-metrics} メトリクスは、レイテンシーからエラー率、ユーザーのサインアップまで、環境に関するあらゆる情報を経時的に追跡できる数値です。 @@ -58,55 +57,55 @@ Datadog では、メトリクスデータは値とタイムスタンプを持つ [ 7.06, 22:12:00 ] ``` -タイムスタンプが秒の端数であるメトリクスは、最も近い秒に丸められます。同じタイムスタンプを持つポイントがある場合、最新のポイントが前のポイントを上書きします。 +小数点以下の秒数のタイムスタンプを持つメトリクスは、最も近い秒に丸められます。同じタイムスタンプのポイントが複数ある場合は、最新のポイントで以前のポイントが上書きされます。 -### メトリクスが役立つ理由は? +### メトリクスが役に立つ理由{#why-are-metrics-useful} -メトリクスは、システムの全体像を提供します。それを使用して、環境の状態を一目で評価できます。たとえば、ユーザーが Web サイトをロードする速度や、サーバーの平均メモリ消費量などを視覚化します。問題を特定したら、[ログ][1]と[トレース][2]を使用して、トラブルシューティングします。 +メトリクスによって、システムの全体像を把握できます。メトリクスを使用することで、環境の健全性を一目で評価できます。たとえば、ユーザーによる Web サイトの読み込み速度や、サーバーの平均メモリ消費量などを可視化できます。問題を特定したら、[ログ][1] や [トレーシング][2] を使用してさらに詳しくトラブルシューティングすることができます。 -システムの状態を追跡するメトリクスは、{{< translate key="integration_count" >}} 以上のサービスと Datadog のインテグレーションによって自動的に取得されます。ビジネスに固有のメトリクス (カスタムメトリクスとも呼ばれます) を追跡することもできます。ユーザーログインの数、ユーザーカートのサイズ、チームのコードコミットの頻度などを追跡することができます。 +システムの健全性を追跡するメトリクスは、Datadog の {{< translate key="integration_count" >}} 以上のサービスとのインテグレーションにより自動的に取得されます。自社のビジネス固有のメトリクス (Custom Metrics とも呼ばれます) を追跡することもできます。ユーザーのログイン数やユーザーのカートサイズから、チームのコードコミットの頻度まで、さまざまな事柄を追跡できます。 -さらに、メトリクスは、顧客からの需要を満たすために環境の規模を調整するのに役立ちます。リソースをどれだけ消費する必要があるかを正確に知ることは、お金を節約したり、パフォーマンスを向上させたりするのに役立ちます。 +さらに、メトリクスを使用して、顧客からの要望に対応できるように環境の規模を調整することもできます。必要なリソース使用量を正確に把握して、費用の節約やパフォーマンスの向上に役立てることができます。 -### Datadog へのメトリクスの送信 +### Datadog へのメトリクスの送信 {#submitting-metrics-to-datadog} メトリクスは、いくつかの場所から Datadog に送信できます。 -- [Datadog がサポートするインテグレーション][8]: {{< translate key="integration_count" >}} 以上ある Datadog のインテグレーションには、すぐに使用できるメトリクスが含まれています。このメトリクスにアクセスするには、サービスの特定のページに移動し、インストール手順に従います。たとえば、EC2 インスタンスを監視する必要がある場合は、[Amazon EC2 インテグレーションドキュメント][9]に移動します。 +- [Datadog がサポートするインテグレーション][8]: Datadog の {{< translate key="integration_count" >}}+ インテグレーションには、すぐに使用できるメトリクスが含まれています。これらのメトリクスにアクセスするには、ご利用のサービスの特定のインテグレーションページに移動し、示されているインストール手順に従ってください。たとえば、EC2 インスタンスをモニターする必要がある場合は、[Amazon EC2 インテグレーションドキュメント][9] をご覧ください。 -- Datadog のプラットフォーム内で、メトリクスを直接生成できます。たとえば、ログに表示されるエラーステータスコードをカウントし、Datadog に[それを新しいメトリクスとして保存][10]することができます。 +- Datadog プラットフォーム内で直接メトリクスを生成することができます。たとえば、ログに表示されるエラーステータスコードをカウントし、Datadog に [新しいメトリクスとして保存][10] することができます。 -- 多くの場合、ビジネスに関連するメトリクス (ユーザーのログインや登録数など) を追跡する必要があります。このような場合、[カスタムメトリクス][11]を作成できます。カスタムメトリクスは、[Agent][12]、[DogStatsD][13]、または [HTTP API][14] を介して送信できます。 +- 多くの場合、自社のビジネスに関連するメトリクス (たとえば、ユーザーのログイン数や登録数) を追跡する必要が生じます。そのような場合は、[Custom Metrics][11] を作成できます。Custom Metrics は、[Agent][12]、[DogStatsD][13]、または [HTTP API][14] を通じて送信できます。 - さらに、[Datadog Agent][15] は、いくつかの標準メトリクス (CPU やディスク使用量など) を自動的に送信します。 -すべてのメトリクス送信ソースとメソッドの概要については、[メトリクスタイプのドキュメント][16]をお読みください。 +すべてのメトリクス送信ソースとメソッドの概要については、[メトリクスタイプのドキュメント][16] をお読みください。 -### メトリクスタイプとリアルタイムメトリクスの可視性 +### メトリクスタイプとリアルタイムメトリクスの可視性 {#metric-types-and-real-time-metrics-visibility} -#### メトリクスタイプ +#### メトリクスタイプ {#metric-types} -Datadog では、カウント、ゲージ、レート、ヒストグラム、分布など、異なるユースケースに対応するいくつかの異なるメトリクスタイプをサポートしています。メトリクスタイプは、アプリのメトリクスで使用できるグラフと関数を決定します。 +Datadog は、カウント、ゲージ、レート、ヒストグラム、分布など、異なるユースケースに対応するいくつかの異なるメトリクスタイプをサポートしています。メトリクスタイプによって、アプリ内でメトリクスと共に使用できるグラフや関数が決まります。 -Datadog Agent が、送信するデータポイントごとに Datadog のサーバーに個別のリクエストを行うことはありません。代わりに、_フラッシュ時間間隔_で収集された値を報告します。メトリクスのタイプは、この間隔でホストから収集された値が送信のためにどのように集計されるかを決定します。 +Datadog Agent は、ユーザーがデータポイントを送信するたびに、Datadog のサーバーに個別のリクエストを送信するのではありません。そうではなく、_フラッシュ時間間隔_に収集された値を報告します。メトリクスのタイプによって、この間隔にホストから収集された値がどのように集計されて送信されるかが決まります。 -**_カウント_** タイプは、送信されたすべての値を時間間隔で合計します。これは、たとえば、Web サイトのヒット数を追跡するメトリクスに適しています。 +[**_count_**](カウント) タイプは、時間間隔内に送信されたすべての値を加算します。これは、Web サイトのヒット数を追跡するメトリクスなどに適しています。 -**_レート_** タイプはカウントを取り、それを時間間隔の長さで割ったものです。これは、1 秒あたりのヒット数に興味がある場合に有用です。 +[**_rate_**] (レート) タイプは、count の値を取得し、それを時間間隔の長さで除算します。これは、1 秒あたりのヒット数を知りたい場合に役立ちます。 -**_ゲージ_** タイプは、間隔中に報告された最後の値を取ります。このタイプは、RAM または CPU の使用量を追跡するのに役立ちます。最後の値を取得すると、時間間隔中のホストの動作の代表的な像が得られます。この場合、_カウント_ などの別のタイプを使用すると、不正確で極端な値になる可能性があります。正しいメトリクスタイプを選択することで、正確なデータを得ることができます。 +[**_gauge_**] (ゲージ) タイプは、時間間隔内に報告された最後の値を取得します。このタイプは、RAM や CPU の使用状況の追跡に適しています。この場合、最後の値を取得すれば、その時間間隔におけるホストの動作の全体像を把握できるためです。この場合、[_count_] などの別のタイプを使用すると、大抵は不正確な値や極端な値を取得することになります。正しいメトリクスタイプを選択することで、正確なデータを得ることができます。 -**_ヒストグラム_** は、送信された値を要約した 5 つの異なる値、平均、カウント、中央値、95 パーセンタイル、最大を報告します。これにより、5 つの異なる時系列が生成されます。このメトリクスタイプは、平均値を知るだけでは不十分なレイテンシーなどに適しています。ヒストグラムを使用すると、すべてのデータポイントを記録しなくても、データがどのように分散しているかを理解できます。 +[**_histogram_**] (ヒストグラム) は、送信された値を要約する 5 種類の値 (平均、総数、中央値、95 パーセンタイル、最大値) を報告します。これにより、5 種類の時系列が生成されます。このメトリクスタイプは、平均値を知るだけでは不十分な、レイテンシーなどのデータに適しています。histogram を使用すると、すべてのデータポイントを記録することなく、データがどのように分散しているかを理解できます。 -**_分布_** はヒストグラムに似ていますが、環境内のすべてのホストにわたって時間間隔中に送信された値を要約します。複数のパーセンタイルをレポートすることもできます(p50、p75、p90、p95、p99)。この強力な機能の詳細については、[ディストリビューションのドキュメント][19]をご覧ください。 +[**_distribution_**] (分布) は histogram に似ていますが、環境のすべてのホストについて、時間間隔内に送信された値を要約します。複数のパーセンタイル (p50、p75、p90、p95、p99) を報告するよう選択することもできます。この強力な機能の詳細については、[分布のドキュメント][19] を参照してください。 -各メトリクスタイプの詳細な例と送信手順については、[メトリクスタイプ][16]のドキュメントを参照してください。 +各メトリクスタイプの詳細な例と送信手順については、[メトリクスタイプ][16] のドキュメントを参照してください。 -## メトリクスのクエリ +## メトリクスのクエリ {#querying-metrics} -[メトリクスエクスプローラー][3]、[ダッシュボード][4]、または[ノートブック][5]の Datadog 全体でメトリクスを視覚化してグラフを作成できます。 +[Metrics Explorer][3]、[Dashboards][4]、または [Notebooks][5] の Datadog 全体でメトリクスを視覚化してグラフを作成できます。 -**ヒント**: Datadog のグローバル検索から Metrics Summary ページを開くには、Cmd/Ctrl + K を押し、`metrics` を検索してください。 +**ヒント**: Datadog のグローバル検索から [Metrics Summary] ページを開くには、Cmd/Ctrl キーを押しながら K キーを押して、`metrics` を検索します。 以下は、時系列を視覚化した場合の例です。 @@ -114,92 +113,93 @@ Datadog Agent が、送信するデータポイントごとに Datadog のサー この折れ線グラフは、x 軸の時間に対して、y 軸のユーザーが経験したレイテンシー (ミリ秒単位) をプロットします。 -#### 追加の視覚化 +#### 追加の視覚化 {#additional-visualizations} Datadog は、メトリクスを簡単にグラフ化して表示できるように、さまざまな視覚化オプションを提供しています。 -メトリクスクエリは、開始時に同じ 2 つの評価ステップ、時間集計と空間集計で構成されています。詳しくは[メトリクスクエリの構造][6]を参照してください。 +メトリクスクエリは、開始時に同じ 2 つの評価ステップ、時間集計とスペース集計で構成されています。詳しくは [メトリクスクエリの構造][6] を参照してください。 -{{< whatsnext desc="メトリクスのユーザーがよく便利だと感じる 2 つの視覚化製品">}} - {{< nextlink href="dashboards/widgets/query_value/" >}}クエリ値ウィジェット - この 2 つのステップの結果を 1 つの値に還元します。{{< /nextlink >}} +{{< whatsnext desc="Metrics ユーザーの多くが役立つと感じる 2 つの視覚化方法には、次のものがあります。">}} + {{< nextlink href="dashboards/widgets/query_value/" >}}クエリ値ウィジェット - これらの 2 つのステップの結果を縮小して、1 つの値にします。{{< /nextlink >}} {{< nextlink href="/dashboards/widgets/top_list/" >}}トップリスト - グループごとに 1 つの値を返します。{{< /nextlink >}} {{< /whatsnext >}} -また、Datadog には、視覚化のための多くのタイプのグラフやウィジェットがあります。詳しくは、Datadog の[メトリクスグラフに関するブログシリーズ][7]をご覧ください。 +Datadog にはほかにも、視覚化に利用できるさまざまな種類のグラフやウィジェットがあります。それらの詳細については、Datadog の [メトリクスグラフに関するブログシリーズ][7] で学ぶことができます。 -ダッシュボード、ノートブック、モニターのいずれを使用しても、グラフの作成方法は一定です。グラフエディタ UI を使用するか、生のクエリ文字列を直接変更するからのいずれかの方法により、グラフを作成できます。クエリ文字列を編集するには、右端の `` ボタンを押します。 +グラフの作成環境は、ダッシュボード、ノートブック、モニターのいずれを使用していても同じです。グラフを作成するには、グラフエディターの UI を使用するか、生のクエリ文字列を直接変更します。クエリ文字列を編集するには、右端の `` ボタンを使用します。 -### メトリクスクエリの構造 +### メトリクスクエリの構造 {#anatomy-of-a-metric-query} Datadog のメトリクスクエリは次のようになります。 -{{< img src="metrics/introduction/newanatomy.jpg" alt="カラーコードのセクションで示されたサンプルクエリ" style="width:70%;">}} +{{< img src="metrics/introduction/newanatomy.jpg" alt="セクションが色分けされているクエリの例" style="width:70%;">}} このクエリはいくつかのステップに分けることができます。 -#### メトリクス名 +#### メトリクス名 {#metric-name} -まず、グラフを作成する特定のメトリクスを検索または **Metric** の横にあるドロップダウンから選択します。使用するメトリクスが不明な場合は、メトリクスエクスプローラーまたはノートブックで開始します。メトリクスの概要ページで、アクティブにレポートを送信しているメトリクスのリストを確認することも可能です。 +まず、グラフを作成する特定のメトリクスを検索して選択するか、[**Metric**] の隣にあるドロップダウンから選択します。どのメトリクスを使用すべきかわからない場合は、Metrics Explorer またはノートブックから始めます。[Metrics Summary] ページで、アクティブに報告されているメトリクスのリストを確認することもできます。 -#### メトリクスのフィルタリング +#### メトリクスのフィルタリング {#filter-your-metric} -メトリクスを選択したら、タグに基づいてクエリにフィルターを適用することができます。たとえば、`account:prod` を使用してクエリの_スコープ_を定義し、本番環境のホストからのメトリクスのみに絞り込むことができます。詳細は[タグ付けに関するドキュメント][17]をお読みください。 +メトリクスを選択した後、タグに基づいてクエリをフィルタリングすることができます。たとえば、`account:prod` を使用して、本番環境のホストのメトリクスのみを含めるようにクエリの_スコープ_を設定できます。詳細については、[タグ付けに関するドキュメント][17] をお読みください。 -#### 時間集計の構成 +#### 時間集計の構成 {#configure-time-aggregation} -次に、時間ロールアップを使用してデータの粒度を選択します。この例では、1 時間 (3600 秒) ごとに 1 つのデータポイントがあると定義しました。各タイムバケットのデータをどのように集計するかを選択することができます。デフォルトでは、_平均_ が適用されますが、他にも _合計_、_最小_、_最大_、_カウント_ のオプションが使用可能です。関数やアプリ内モディファイア―を使って、メトリクスデータの集計方法やバケット化の方法をカスタマイズすることもできます。たとえば、最大を適用し、カレンダーに沿ったクエリに合わせてメトリクスデータのロールアップとバケット化の方法をカスタマイズしたい場合は、`.rollup(max, 60)` を使用できます。詳しくは、[関数][24]、[ロールアップ][23]、[アプリ内モディファイア―][25]のドキュメントを参照してください。 +次に、時間のロールアップを使用してデータの粒度を選択します。この例では、毎時 (3600 秒) に 1 つのデータポイントがあることを定義しています。各時間バケット内でデータをどのように集計するかを選択できます。デフォルトでは _avg_ が適用されますが、その他の使用可能なオプションとして、_sum_、_min_、_max_、および _count_ があります。関数またはアプリ内モディファイアーを使用して、メトリクスデータがどのように集計およびバケット化されるのかをカスタマイズすることもできます。たとえば、max を適用し、メトリクスデータがカレンダーに沿ったクエリにより、ロールアップされて時間にバケット化される方法をカスタマイズする場合は、`.rollup(max, 60)` を使用します。詳細については、[関数][24]、[ロールアップ][23]、および [アプリ内モディファイアー][25] のドキュメントを参照してください。 -#### 空間集計の構成 +#### スペース集計の構成 {#configure-space-aggregation} -Datadog では、「空間」とは、メトリクスがさまざまなホストやタグに分散される方法を指します。制御できる空間には、Aggregator とグループ化という 2 つの異なる側面があります。 +Datadog では、“スペース”とは、メトリクスが異なるホストやタグにどのように分配されるかを指します。スペースで制御できる要素には、アグリゲーターとグループ化の 2 つがあります。 -_Aggregator_ は、各グループのメトリクスを組み合わせる方法を定義します。利用可能な集計には、合計、最小、最大、平均の 4 つがあります。 +_アグリゲーター_は、各グループ内のメトリクスがどのように結合されるかを定義します。利用可能な集計には、sum、min、max、および avg の 4 つがあります。 -_グループ化_は、グラフ上の線を構成するものを定義します。たとえば、4 つのリージョンに数百のホストが分散している場合、リージョンごとにグループ化すると、リージョンごとに 1 つの線をグラフ化します。これにより、時系列の数を 4 つに減らすことができます。 +_グループ化_は、グラフ上の直線の構成要素を定義します。たとえば、4 つのリージョンに数百のホストが分散している場合、リージョンごとのグループ化によって、各リージョンに 1 つの直線をグラフ化することができます。こうすると、時系列の数が 4 つに減少します。 -#### 関数の適用 (任意) +#### 関数の適用 (任意) {#apply-functions-optional} -グラフ値は数学[関数][18]で変更することができます。これにより、整数とメトリクス (メトリクスを2乗するなど) 間、または 2 つのメトリクス間 (`jvm.heap_memory / jvm.heap_memory_max` のように、メモリ使用率に関する新しい時系列を作成するなど) の算術演算を実行することができます。 +数学 [関数][18] を使用して、グラフの値を変更できます。これは、整数とメトリクス間の算術演算の実行を意味する場合があります (たとえば、メトリクスを 2 で乗算します)。または、2 つのメトリクス間の算術演算の実行である場合もあります (たとえば、次のようなメモリ使用率の新しい時系列の作成: `jvm.heap_memory / jvm.heap_memory_max`)。 -### 時間と空間の集計 +### 時間集計とスペース集計 {#time-and-space-aggregation} -_時間集計_と_空間集計_は、クエリの 2 つの重要なコンポーネントです。これらの集計がどのように機能するかを理解すると、グラフの誤解を避けるのに役立つため、これらの概念について以下で詳しく説明します。 +_時間集計_と_スペース集計_は、すべてのクエリで重要な 2 つのコンポーネントです。これらの集計がどのように機能するかを理解すると、グラフの誤解釈の防止に役立つため、これらの集計の概念について以下で詳しく説明します。 -#### 時間集計 +#### 時間集計 {#time-aggregation} -Datadog は大量のポイントを保管しており、ほとんどの場合、そのすべてをグラフ上に表示することはできません。ピクセルよりもデータポイント数の方が多くなるためです。Datadog は時間集計を使用して、データポイントとタイムバケツを組み合わせることでこの問題を解決しています。例えば、4 時間を調べる場合、データポイントは 2 分のバケットにまとめられます。これは_ロールアップ_と呼ばれます。クエリに定義した時間間隔が長くなると、データの粒度は小さくなります。 +Datadog は大量のポイントを保存しており、ほとんどの場合、それらのすべてをグラフに表示することはできません。ピクセルより多くのデータポイントが存在することになります。Datadog は、時間集計を使用してデータポイントを時間バケットにまとめることで、この問題を解決します。たとえば、調べる時間が 4 時間である場合、データポイントは 2 分のバケットにまとめられます。これを_ロールアップ_と呼びます。クエリに対して定義した時間間隔が増えると、データの粒度は減少します。 -各タイムバケットのデータを組み合わせるために適用できる集計には、合計、最小、最大、平均、カウントの 5 つがあります。 +各タイムバケットのデータを組み合わせるために適用できる集計には、sum、min、max、avg、および count の 5 つがあります。 -クエリを実行するたびに時間集計が_常に_適用されることを覚えておくことが重要です。 +クエリを実行するたびに_常に_時間集計が適用されることに注意する必要があります。 -#### 空間集計 +#### スペース集計 {#space-aggregation} -空間集計は、ホスト、コンテナ、リージョンなどのタグによって単一のメトリクスを複数の時系列に分割します。たとえば、リージョンごとの EC2 インスタンスのレイテンシーを表示する場合は、空間集計のグループ化機能を使用して各リージョンのホストを組み合わせる必要があります。 +スペース集計は、ホスト、コンテナ、リージョンなどのタグによって単一のメトリクスを複数の時系列に分割します。たとえば、リージョンごとの EC2 インスタンスのレイテンシーを表示する場合は、スペース集計のグループ化機能を使用して各リージョンのホストを組み合わせる必要があります。 -Aggregator を使用するときに適用できる集計には、_合計_、_最小_、_最大_、_平均_の 4 つがあります。上記の例を使用して、ホストが us-east-1、us-east-2、us-west-1、us-west-2 の 4 つのリージョンに分散しているとします。各リージョンのホストは、集計関数を使用して組み合わせる必要があります。_最大_アグリゲーターを使用すると、各リージョンのホスト間で最大のレイテンシーが発生し、_平均_アグリゲーターを使用すると、リージョンごとの平均レイテンシーが発生します。 +スペース集計を使用する際に適用できるアグリゲーターには、_sum_、_min_、_max_、および _avg_ の 4 つがあります。上記の例で、ホストが us-east-1、us-east-2、us-west-1、および us-west-2 の 4 つのリージョンに分散されているとします。各リージョンのホストを、アグリゲーター関数を使用して結合する必要があります。_max_ アグリゲーターを使用すると、各リージョンのすべてのホストで発生した中で最大のレイテンシーが返されます。_avg_ アグリゲーターを使用すると、リージョンごとの平均レイテンシーが返されます。 -#### ネストされたクエリ -UI のネストされたクエリまたは [API][27] を使用して、時間と空間における既存のクエリの結果に追加の集計レイヤーを追加します。詳細については、[ネストされたクエリ][26]のドキュメントを参照してください。 +#### ネストされたクエリ {#nested-queries} +UI のネストされたクエリまたは [API][27] を使用して、時間とスペースにおける既存のクエリの結果にさらに集計のレイヤーを追加します。詳細については、[ネストされたクエリ][26] のドキュメントを参照してください。 -### メトリクスに関するリアルタイム情報を表示する +### メトリクスに関するリアルタイム情報の表示 {#view-real-time-information-about-metrics} -[メトリクスの概要ページ][20]には、過去 1 時間、1 日、または 1 週間の指定されたタイムフレームで Datadog に報告されたメトリクスのリストが表示されます。メトリクスは、メトリクス名またはタグでフィルタリングできます。 +[Metrics Summary ページ][20] には、過去 1 時間、1 日、または 1 週間の指定されたタイムフレームに Datadog に報告されたメトリクスのリストが表示されます。メトリクスは、メトリクス名またはタグでフィルタリングできます。 -メトリクス名をクリックすると、詳細サイドパネルに詳細情報が表示されます。詳細再度パネルには、メタデータ (タイプ、ユニット、間隔)、個別のメトリクスの数、レポートホストの数、送信されたタグの数、メトリクスで送信されたすべてのタグを含むテーブルなど、特定のメトリクスの重要な情報が表示されます。メトリクスで送信されているタグを確認すると、タグ値の組み合わせによって異なるため、メトリクスからレポートされる個別のメトリクスの数を理解するのに役立ちます。 +任意のメトリクス名をクリックすると、詳細情報を含むサイドパネルが表示されます。詳細サイドパネルには、特定のメトリクスに関する主な情報が表示されます。これには、メタデータ (タイプ、単位、間隔)、個別メトリクスの数、報告ホストの数、送信されたタグの数、およびメトリクスについて送信されたすべてのタグを含むテーブルが含まれます。メトリクスについてどのタグが送信されているかを確認すると、そこから報告される個別メトリクスの数がわかります。これはこの数が、タグ値の組み合わせによって決定されるためです。 -**注:** メトリクスの概要の詳細サイドパネルで報告される個別のメトリクスの数によって請求が定義されるわけではありません。過去 1 か月間の使用量の正確な計算については、[使用量の詳細][21]を参照してください。 +**注:** Metrics Summary の詳細サイドパネルで報告される個別メトリクスの数によって、請求金額が決まることはありません。先月の使用量に対する正確な会計は、[使用量の詳細][21] を参照してください。 -詳細については、[メトリクスの概要ドキュメント][22]をお読みください。 +詳細については、[メトリクスの概要ドキュメント][22] をお読みください。 -## 参考資料 +## 参考資料 {#further-reading} -{{< whatsnext desc="メトリクスに関するトピックを続行する場合は、以下を確認してください。">}} - {{< nextlink href="/metrics/advanced-filtering" >}}高度なフィルタリング - フィルターを使用して返されたメトリクスのスコープを絞り込みます。{{< /nextlink >}} +{{< whatsnext desc="さらにメトリクスについて知るには、以下を確認してください。">}} + {{< nextlink href="/metrics/advanced-filtering" >}}高度なフィルタリング - データをフィルタリングして、返されるメトリクスのスコープを絞り込みます。{{< /nextlink >}} {{< nextlink href="/metrics/distributions" >}}ディストリビューションメトリクス - データセット全体のグローバルパーセンタイルを計算します。{{< /nextlink >}} - {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™ を使って、タグや集計構成によりカスタムメトリクスのボリュームを制御する方法をご紹介します。{{< /nextlink >}} - {{< nextlink href="https://dtdg.co/fe" >}}Foundation Enablement - メトリクスの可能性を最大限に引き出すインタラクティブなセッションにご参加ください。{{< /nextlink >}} + {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™ を使用して、タグの設定により Custom Metrics の量を制御する方法を学びます。{{< /nextlink >}} + {{< nextlink href="https://dtdg.co/fe" >}}Foundation Enablement - インタラクティブなセッションに参加して、メトリクスの持つ力を最大限に活用します。{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-metrics" >}}メトリクスの使用を開始する - Datadog で初めてのメトリクスを送信および視覚化する方法を学びます。{{< /nextlink >}} {{< /whatsnext >}} [1]: /ja/logs diff --git a/content/ja/metrics/custom_metrics/dogstatsd_metrics_submission.md b/content/ja/metrics/custom_metrics/dogstatsd_metrics_submission.md index 79e3e038c4b..698a6ac48f8 100644 --- a/content/ja/metrics/custom_metrics/dogstatsd_metrics_submission.md +++ b/content/ja/metrics/custom_metrics/dogstatsd_metrics_submission.md @@ -8,35 +8,38 @@ aliases: description: アプリケーションから直接カスタムメトリクスを送信 further_reading: - link: /extend/dogstatsd/ - tag: Documentation + tag: よくあるご質問 text: DogStatsD 入門 - link: /metrics/types/ - tag: Documentation + tag: よくあるご質問 text: Datadog メトリクスタイプ +- link: https://learn.datadoghq.com/courses/create-custom-metrics-dogstatsd + tag: ラーニングセンター + text: DogStatsD を使用して Custom Metrics を作成する title: 'メトリクスの送信: DogStatsD' --- -StatsD がメトリクスのみを受け付けるのに対して、DogStatsD は、Datadog の主要な 3 種類のデータタイプ、すなわちメトリクス、イベント、サービスチェックをすべて受け付けます。ここでは、メトリクスの一般的な使用例をメトリクスタイプ別に分けて説明し、DogStatsD に特有の[サンプリングレート](#samplerates)と[メトリクスのタグ付け](#metrictagging)オプションを紹介します。 +StatsD がメトリクスのみを受け付けるのに対して、DogStatsD は、Datadog の主要な 3 種類のデータタイプ: すなわちメトリクス、イベント、サービスチェックをすべて受け付けます。このセクションでは、メトリクスタイプ別に分けたメトリクスの代表的なユースケースを示し、DogStatsD に特有の [sampling rates](#sample-rates) と [metric tagging](#metric-tagging) オプションを紹介します。 -[COUNT](#count)、[GAUGE](#gauge)、[SET](#set) メトリクスタイプは、StatsD ユーザーにとって馴染みのあるものです。StatsD の `TIMER`は、DogStatsD の `HISTOGRAM` のサブセットです。さらに、DogStatsD を使用して [HISTOGRAM](#histogram) および [DISTRIBUTION](#distribution) メトリクスタイプを送信することができます。 +[COUNT](#count)、[GAUGE](#gauge)、および[SET](#set) メトリクスタイプは、StatsD ユーザーにとって馴染みのあるものです。StatsD からの `TIMER` は、DogStatsD の `HISTOGRAM` のサブセットです。さらに、DogStatsD を使用して [HISTOGRAM](#histogram) および [DISTRIBUTION](#distribution) メトリクスタイプを送信することができます。 -**注**: 使用した送信方法により、Datadog 内に保存される実際のメトリクスタイプは送信メトリクスタイプと異なる場合があります。DogStatsD を通じて RATE メトリクスを取得するには、[COUNT](#count) または [HISTOGRAM](#histogram) メトリクスを送信してください。COUNT メトリクスの値と `.count` の値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 +**注**: 使用した送信方法により、Datadog 内に保存される実際のメトリクスタイプは送信メトリクスタイプと異なる場合があります。DogStatsD を通じて RATE メトリクスを取得するには、[COUNT](#count) または [HISTOGRAM](#histogram) メトリクスを送信してください。COUNT メトリクスの値と `.count` の値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 -##関数 +## 関数{#functions} [DogStatsD をインストール][1] すると、Datadog へメトリクスを送信する際、メトリクスタイプに応じて次の関数を使用できます。関数には、次の共有パラメーターがあります。 -|パラメーター|型|必須|説明| -||||| -| `` | String |はい|送信するメトリクスの名前。 | -| `` |Double |はい|メトリクスに関連付けられている値。 | -| `` | Double | いいえ | メトリクスに適用するサンプルレート。`0` (すべてがサンプリングされ、何も送信されない) から `1` (サンプルなし) までの値を取ります。詳細については、[サンプルレートセクション](#samplerates)を参照してください。| -| `` | 文字列のリスト | いいえ | メトリクスに適用するタグのリスト。詳細については、[メトリクスタグ付け](#metrictagging)セクションを参照してください。 | -| `` | Enum | いいえ | このメトリクスに割り当てるタグの[カーディナリティ][10]。 | +| パラメーター | 型 | 必須 | 説明 | +|------------------|-----------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `` | String | はい | 送信するメトリクスの名前。 | +| `` | Double | はい | メトリクスに関連付けられている値。 | +| `` | Double | いいえ | メトリクスに適用するサンプルレート。`0` (すべてがサンプリングされ、何も送信されない) から `1` (サンプルなし) までの値を取ります。詳細については、[Sample Rate section](#sample-rates) を参照してください。| +| `` | 文字列のリスト | いいえ | メトリクスに適用するタグのリスト。詳細については、[Metrics Tagging](#metric-tagging) セクションを参照してください。 | +| `` | Enum | いいえ | このメトリクスに割り当てるタグの [カーディナリティ][10]。 | -### COUNT +### COUNT {#count} `increment(, , , )` -COUNT メトリクスをインクリメントするのに使用。Datadog に `RATE` タイプとして保存されます。時系列に保存される値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 +: COUNT メトリクスをインクリメントするのに使用。Datadog に `RATE` タイプとして保存されます。時系列に保存される値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 `decrement(, , , )` COUNT メトリクスをデクリメントするのに使用。Datadog に `RATE` タイプとして保存されます。時系列に保存される値は、StatsD フラッシュ期間全体のメトリクス値の時間正規化された差分です。 @@ -46,11 +49,11 @@ COUNT メトリクスをデクリメントするのに使用。Datadog に `RATE **注**: `COUNT` タイプのメトリクスは、フラッシュ間隔で正規化され 1 秒あたりの単位数を報告するため、Datadog 内で小数を表示できます。 -#### コード例 +#### コード例 {#code-examples} -`COUNT` メトリクスを `RATE` メトリクスとして Datadog に送信します。`COUNT` タイプについては、[メトリクスタイプ][2] ドキュメントを参照してください。 +`RATE` メトリクスとして保存された `COUNT` メトリクスを Datadog に送信します。`COUNT` タイプについては、[メトリクスタイプ][2] ドキュメントを参照してください。 -次のコードを実行し、DogStatsD `COUNT` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 +次のコードを実行して、DogStatsD `COUNT` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 {{< programming-lang-wrapper langs="python,ruby,go,java,.NET,php,nodejs" >}} @@ -228,16 +231,16 @@ tracer.dogstatsd.decrement('example_metric.decrement', 1, { environment: 'dev' } {{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/increment_decrement_cumsum.png" alt="累積合計でのインクリメントとデクリメント" >}} -### GAUGE +### GAUGE {#gauge} `gauge(, , , , )` -Datadog に `GAUGE` タイプとして保存されます。時系列に保存される値は、StatsD フラッシュ期間の間にメトリクスに送信された最後のゲージ値です。 +: Datadog に `GAUGE` タイプとして保存されます。時系列に保存される値は、StatsD フラッシュ期間の間にメトリクスに送信された最後のゲージ値です。 -#### コード例 +#### コード例 {#code-examples-1} -`GAUGE` メトリクスを `GAUGE` メトリクスとしてDatadog に送信します。`GAUGE` タイプについては、[メトリクスタイプ][5] ドキュメントを参照してください。 +`GAUGE` メトリクスとして保存された `GAUGE` メトリクスを Datadog に送信します。`GAUGE` タイプについては、[メトリクスタイプ][5] ドキュメントを参照してください。 -次のコードを実行し、DogStatsD `GAUGE` メトリクスを Datadog へ送信。クライアントが不要になったら、忘れずに `flush`/`close` してください。 +次のコードを実行して、DogStatsD `GAUGE` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 **注:** メトリクスの送信呼び出しは非同期です。メトリクスを確実に送信したい場合は、プログラムが終了する前に `flush` を呼び出してください。 @@ -411,16 +414,16 @@ while(true) { {{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/gauge.png" alt="Gauge" >}} -### SET +### SET {#set} `set(, , , , )` -Datadog に `GAUGE` タイプとして保存されます。時系列に保存される値は、フラッシュ期間の間に StatsD に送信されたメトリクスの一意の値のカウントです。 +: Datadog に `GAUGE` タイプとして保存されます。時系列に保存される値は、フラッシュ期間の間に StatsD に送信されたメトリクスの一意の値のカウントです。 -#### コード例 +#### コード例 {#code-examples-2} -`SET` メトリクスを `GAUGE` メトリクスとして Datadog に送信します。 +`GAUGE` メトリクスとして保存された `SET` メトリクスを Datadog に送信します。 -次のコードを実行し、DogStatsD `SET` メトリクスを Datadog へ送信。クライアントが不要になったら、忘れずに `flush`/`close` してください。 +次のコードを実行して、DogStatsD `SET` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 {{< programming-lang-wrapper langs="python,ruby,go,java,.NET,PHP" >}} @@ -578,22 +581,22 @@ while (TRUE) { {{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/set.png" alt="Set" >}} -### HISTOGRAM +### HISTOGRAM {#histogram} `histogram(, , , , )` -複数のメトリクスが送信されるため、保存されるメトリクスタイプ (`GAUGE`、`RATE`) はメトリクスに依存します。詳細については、[HISTOGRAM メトリクスタイプ][6] のドキュメントを参照してください。 +: 複数のメトリクスが送信されるため、保存されるメトリクスタイプ (`GAUGE`、`RATE`) はメトリクスに依存します。詳細については、[HISTOGRAM メトリクスタイプ][6] のドキュメントを参照してください。 -#### 構成 +#### 構成{#configuration} -* Datadog に送信する集計を、[datadog.yaml 構成ファイル][7] の `histogram_aggregates` パラメーターで構成します。デフォルトでは、`max`、`median`、`avg`、`count` の各集計のみが送信されます。 +* Datadog に送信する集計を、[datadog.yaml 構成ファイル][7] の `histogram_aggregates` パラメーターで構成します。デフォルトでは、`max`、`median`、`avg`、および `count` の集計だけが送信されます。 * Datadog に送信するパーセンタイル集計を、[datadog.yaml 構成ファイル][7] の `histogram_percentiles` パラメーターで構成します。デフォルトでは、`95pc` のパーセンタイルのみが送信されます。 -#### コード例 +#### コード例 {#code-examples-3} `HISTOGRAM` メトリクスタイプは DogStatsD に特有です。`GAUGE` および `RATE` メトリクスとして保存された `HISTOGRAM` メトリクスを Datadog に送信します。`HISTOGRAM` タイプについては、[メトリクスタイプ][6] ドキュメントを参照してください。 -次のコードを実行し、DogStatsD `HISTOGRAM` メトリクスを Datadog へ送信。クライアントが不要になったら、忘れずに `flush`/`close` してください。 +次のコードを実行して、DogStatsD `HISTOGRAM` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 {{< programming-lang-wrapper langs="python,ruby,go,java,.NET,PHP" >}} @@ -743,7 +746,7 @@ while (TRUE) { 上のインスツルメンテーションは、次のメトリクスを生成します。 | メトリクス | 説明 | -||| +|-----------------------------------------|-----------------------------------------| | `example_metric.histogram.count` | このメトリクスがサンプリングされた回数 | | `example_metric.histogram.avg` | サンプリングされた値の平均 | | `example_metric.histogram.median` | サンプリングされた値の中央値 | @@ -754,18 +757,18 @@ while (TRUE) { {{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/histogram.png" alt="ヒストグラム" >}} -#### TIMER +#### TIMER {#timer} -DogStatsD の `TIMER` メトリクスタイプは、`HISTOGRAM` メトリクスタイプの実装です (標準の StatsD のタイマーと混同しないでください)。これは、タイミングデータのみを測定します。たとえば、コードのセクションが実行されるのにかかる時間です。 +`TIMER` DogStatsD のメトリクスタイプは、`HISTOGRAM` メトリクスタイプの実装です (標準の StatsD のタイマーと混同しないでください)。これは、タイミングデータのみを測定します: たとえば、コードのセクションが実行されるのにかかる時間です。 `timed(, , , , )` -複数のメトリクスが送信されるため、保存されるメトリクスタイプ (`GAUGE`、`RATE`) はメトリクスに依存します。詳細については、[HISTOGRAM メトリクスタイプ][6] のドキュメントを参照してください。 +: 複数のメトリクスが送信されるため、保存されるメトリクスタイプ (`GAUGE`、`RATE`) はメトリクスに依存します。詳細については、[HISTOGRAM メトリクスタイプ][6] のドキュメントを参照してください。 -##### 構成 +##### 構成{#configuration-1} -`TIMER` には、`HISTOGRAM` [コンフィギュレーション](#configuration)ルールが適用されます。 +`TIMER` の場合、`HISTOGRAM` [構成](#configuration) ルールが適用されます。 -##### コード例 +##### コード例 {#code-examples-4} `GAUGE` および `RATE` メトリクスとして保存された `TIMER` メトリクスを Datadog に送信します。`HISTOGRAM` タイプについては、[メトリクスタイプ][6] ドキュメントを参照してください。クライアントが不要になったら、忘れずに `flush`/`close` してください。 @@ -849,27 +852,27 @@ while (TRUE) { DogStatsD はタイマーメトリクスデータを受け取ると、レンダリング時間の統計的分布を計算し、次のメトリクスを Datadog に送信します。 | メトリクス | 説明 | -||| +|-------------------------------------|-----------------------------------------| | `example_metric.timer.count` | このメトリクスがサンプリングされた回数 | | `example_metric.timer.avg` | サンプリングされた値の平均時間 | | `example_metric.timer.median` | サンプリングされた値の中央値 | | `example_metric.timer.max` | サンプリングされた値の最大値 | | `example_metric.timer.95percentile` | サンプリングされた値の 95 パーセンタイル | -DogStatsD は、`TIMER` を `HISTOGRAM` メトリクスとして扱います。`TIMER` と `HISTOGRAM` のどちらのメトリクスタイプを使用しても、Datadog に送信されるデータは同じです。上のコードを実行すると、メトリクスデータを Datadog でグラフ化できます。 +DogStatsD は `TIMER` を `HISTOGRAM` メトリクスとして扱います。`TIMER` と `HISTOGRAM` のどちらのメトリクスタイプを使用しても、Datadog に送信されるデータは同じです。上のコードを実行すると、メトリクスデータを Datadog でグラフ化できます。 {{< img src="metrics/custom_metrics/dogstatsd_metrics_submission/timer.png" alt="タイマー" >}} -### DISTRIBUTION +### DISTRIBUTION {#distribution} `distribution(, , , )` -Datadog で `DISTRIBUTION` タイプとして保存。詳細については、専用の [Distribution に関するドキュメント][8] を参照してください。 +: Datadog に `DISTRIBUTION` タイプとして保存されます。詳細については、専用の [Distribution に関するドキュメント][8] を参照してください。 -#### コード例 +#### コード例 {#code-examples-5} `DISTRIBUTION` メトリクスタイプは DogStatsD に特有です。`DISTRIBUTION` メトリクスとして保存された `DISTRIBUTION` メトリクスを Datadog に送信します。`DISTRIBUTION` タイプについては、[メトリクスタイプ][9] ドキュメントを参照してください。 -次のコードを実行し、DogStatsD `DISTRIBUTION` メトリクスを Datadog へ送信。クライアントが不要になったら、忘れずに `flush`/`close` してください。 +次のコードを実行して、DogStatsD `DISTRIBUTION` メトリクスを Datadog へ送信します。クライアントが不要になったら、忘れずに `flush`/`close` してください。 {{< programming-lang-wrapper langs="python,ruby,go,java,.NET,php,nodejs" >}} @@ -1029,11 +1032,11 @@ while(true) { {{< /programming-lang-wrapper >}} -上記のインスツルメンテーションでは、`sum`、`count`、`average`、`minimum`、`maximum`、`50th percentile` (中央値)、`75th percentile`、`90th percentile`、`95th percentile`、`99th percentile` を計算します。ディストリビューションは、アップロードされたファイルのサイズ、教室でのテストの得点など、*あらゆる*種類の値の分布の測定に使用できます。 +上記のインスツルメンテーションは、`sum`、`count`、`average`、`minimum`、`maximum`、`50th percentile` (中央値)、`75th percentile`、`90th percentile`、`95th percentile`、`99th percentile` を計算します。ディストリビューションは、アップロードされたファイルのサイズ、教室でのテストの得点など、*あらゆる*種類の値の分布の測定に使用できます。 -## メトリクスの送信オプション +## メトリクスの送信オプション {#metric-submission-options} -### サンプリングレート +### サンプリングレート {#sample-rates} 高パフォーマンスを必要とするコードパスにとっては、UDP パケットを送信する際のオーバーヘッドが大きすぎる可能性があるため、DogStatsD クライアントはサンプリングをサポートしています (メトリクスを一定の割合でのみ送信します)。多くのメトリクスをサンプリングする場合や、DogStatsD クライアントが DogStatsD サーバーと同じホストにない場合に便利です。トラフィックが減少しますが、精度と粒度が失われるという二律背反が生じます。 @@ -1042,14 +1045,14 @@ while(true) { DogStatsD は Datadog にメトリクスを送信する前に、`` を使用し、メトリクスタイプに応じてメトリクス値を補正します (サンプリングなしで値を推定するため)。 | メトリクスタイプ | サンプリングレート補正 | -||| +|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `COUNT` | 受け取った値は (`1/`) 倍として計上されます。受信したデータポイント 1 つに対し、`1/` 値が同じ値で実際にサンプリングされたと考えるのは理にかなっています。| | `GAUGE` | 補正なし。受信した値はそのまま残ります。 | | `SET` | 補正なし。受信した値はそのまま残ります。 | -| `HISTOGRAM` | `histogram.count` 統計は COUNT メトリクスであり、上記の補正を受け取ります。他の統計は GAUGE メトリクスなので、「補正」は行われません。 | -| `DISTRIBUTION` | 受信した値は、`1/` 回としてカウントされます。受信したデータポイント 1 つに対し、`1/` 値が同じ値で実際にサンプリングされたと考えるのは理にかなっています。| +| `HISTOGRAM` | `histogram.count` 統計は COUNT メトリクスであり、上記の補正を受け取ります。他の統計は GAUGE メトリクスなので、「補正」は行われません。 | +| `DISTRIBUTION` | 受信した値は、`1/` 回としてカウントされます。受信したデータポイント 1 つに対し、`1/` 値が同じ値で実際にサンプリングされたと考えるのは理にかなっています。| -#### コード例 +#### コード例 {#code-examples-6} 次のコードは、半分の時間だけポイントを送信します。 @@ -1100,13 +1103,13 @@ $statsd->increment('example_metric.increment', $sampleRate->0.5); {{< /programming-lang-wrapper >}} -### メトリクスのタグ付け +### メトリクスのタグ付け {#metric-tagging} `tags` パラメーターを使用して、DogStatsD へ送るメトリクスにタグを追加します。 -#### コード例 +#### コード例 {#code-examples-7} -次のコードは、`environment:dev` および `account:local` タグのみを `example_metric.increment` メトリクスに追加します。 +以下のコードは、`environment:dev` および `account:local` タグを `example_metric.increment` メトリクスに追加するだけです。 {{< programming-lang-wrapper langs="python,ruby,go,java,.NET,php,nodejs" >}} @@ -1169,21 +1172,21 @@ tracer.dogstatsd.increment('example_metric.increment', 1, { environment: 'dev', {{< /programming-lang-wrapper >}} -#### ホストタグ +#### ホストタグ {#host-tag} ホストタグは、メトリクスを集約する Datadog Agent によって自動的に割り当てられます。ホストタグが Agent のホスト名と一致しないメトリクスは、元のホストへの参照を失います。送信されたホストタグにより、Agent で収集または設定されたホスト名がオーバーライドされます。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/extend/dogstatsd/ [2]: /ja/metrics/types/?tab=count#definition -[3]: /ja/dashboards/functions/arithmetic/#cumulativesum +[3]: /ja/dashboards/functions/arithmetic/#cumulative-sum [4]: /ja/dashboards/functions/arithmetic/#integral [5]: /ja/metrics/types/?tab=gauge#definition [6]: /ja/metrics/types/?tab=histogram#definition -[7]: /ja/agent/configuration/agentconfigurationfiles/#agentmainconfigurationfile +[7]: /ja/agent/configuration/agent-configuration-files/#agent-main-configuration-file [8]: /ja/metrics/distributions/ [9]: /ja/metrics/types/?tab=distribution#definition [10]: /ja/containers/kubernetes/tag \ No newline at end of file diff --git a/content/ja/network_monitoring/cloud_network_monitoring/setup.md b/content/ja/network_monitoring/cloud_network_monitoring/setup.md new file mode 100644 index 00000000000..889f97ec500 --- /dev/null +++ b/content/ja/network_monitoring/cloud_network_monitoring/setup.md @@ -0,0 +1,646 @@ +--- +aliases: +- /ja/network_performance_monitoring/installation/ +- /ja/network_monitoring/performance/setup +description: Agent を使用したネットワークデータの収集 +further_reading: +- link: https://www.datadoghq.com/blog/network-performance-monitoring + tag: ブログ + text: Cloud Network Monitoring +- link: https://www.datadoghq.com/blog/monitor-containers-with-npm/ + tag: ブログ + text: コンテナとサービスメッシュネットワークを備えた Datadog CNM +- link: /network_monitoring/devices + tag: よくあるご質問 + text: Network Device Monitoring +- link: https://www.datadoghq.com/blog/monitor-consul-with-datadog-npm/ + tag: ブログ + text: Datadog CNM が Consul ネットワーキングに対応 +- link: https://www.datadoghq.com/blog/cnm-kubernetes-egress/ + tag: ブログ + text: Datadog Cloud Network Monitoring は、大規模環境でデフォルト拒否のネットワークエグレスポリシーへの移行をどのように支援するか +- link: /network_monitoring/cloud_network_monitoring/glossary + tag: Doc + text: CNM の用語と概念 +title: Cloud Network Monitoring のセットアップ +--- +Datadog Cloud Network Monitoring (CNM) は、Datadog 内のサービス、コンテナ、Availability Zone、およびその他のタグ間のネットワークトラフィックを可視化します。これにより、次のことが可能になります。 + +- 予期しない、または潜在的なサービスの依存関係を特定する。 +- クロスリージョンやマルチクラウドなど、高コストの通信を最適化する。 +- クラウドプロバイダーのリージョンやサードパーティツールの機能停止を特定する。 +- DNS サーバーメトリクスに関するサービスディスカバリーの不具合のトラブルシューティング。 + +Cloud Network Monitoring には、[Datadog Agent v6.14 以降][1] が必要です。メトリクスは Agent の上位バージョンで自動的に収集されるため、DNS モニタリングを構成するには、[メトリクスセットアップセクション][2] を参照してください。 + +## サポート対象のプラットフォーム {#supported-platforms} + +### オペレーティングシステム {#operating-systems} + +#### Linux OS {#linux-os} + +データ収集は eBPF を使用して行われるため、Datadog は最低限、基底の Linux カーネルバージョン 4.4.0 以降または eBPF 機能のバックポートを備えたプラットフォームを必要とします。CNM は以下の Linux ディストリビューションをサポートしています。 + +- Ubuntu 16.04 以降 +- Debian 9 以降 +- Fedora 26 以降 +- SUSE 15 以降 +- Amazon AMI 2016.03 以降 +- Amazon Linux 2 +- CentOS/RHEL 7.6 以降 + +**注:** [CentOS/RHEL 7.6 以降][3] の要件は、カーネル 4.4.0 以降では適用外です。[DNS 解決][4] 機能は CentOS/RHEL 7.6 ではサポート対象外です。 + +#### Windows OS {#windows-os} + +データ収集は、ネットワークカーネルデバイスドライバーを使用して行われます。Datadog Agent バージョン 7.27.1、Windows バージョン 2012 R2 (および Windows 10 を含む同等のデスクトップ OS) 以降でサポートされます。 + +#### macOS {#macos} + +Datadog Cloud Network Monitoring は macOS プラットフォームをサポートしていません。 + +### コンテナ {#containers} + +CNM は、[Docker][5]、[Kubernetes][6]、[ECS][7]、およびその他のコンテナ技術をサポートしており、コンテナ化されたオーケストレーション環境のアーキテクチャとパフォーマンスを可視化するのに役立ちます。Datadog のコンテナ統合を使用すると、コンテナ、タスク、ポッド、クラスター、デプロイなどの意味のある単位によってトラフィックを集約でき、`container_name`、`task_name`、`kube_service` などの標準的なタグが付けられます。 + +### ネットワークルーティングツール {#network-routing-tools} + +#### Istio {#istio} + +CNM では、コンテナ、ポッド、サービス間のネットワークコミュニケーションを、Istio のサービスメッシュでマッピングすることができます。 + +Datadog は、Istio 環境のあらゆる側面を監視するため、以下のことも実現できます。 + +- [ログ][8] を使用して、Envoy および Istio の Control Plane の健全性を評価する。 +- リクエスト、帯域幅、リソース消費の [メトリクス][8] で、サービスメッシュのパフォーマンスを詳しく確認する。 +- [APM][9] でメッシュを実行してアプリケーションの分散型トレースの詳細を確認する。 + +CNM は Istio v1.6.4 以降および [Datadog Agent v7.24.1 以降][1] でサポートされています。 + +Datadog を使用した Istio 環境の監視について、詳しくは [Istio ブログ][10] を参照してください。 + +#### Cilium {#cilium} + +Cloud Network Monitoring は、次の要件が満たされている場合に **Cilium** インストールと互換性があります。 +1) Cilium バージョン 1.6 以上、および +2) カーネルバージョン 5.1.16 以上、または 4.19.x カーネルの場合は 4.19.57 以上 + +### プロビジョニングシステム {#provisioning-systems} + +Cloud Network Monitoring は次のプロビジョニングシステムの使用をサポートしています。 + +- Daemonset / Helm 1.38.11 以降: [Datadog Helm チャート][11] を参照してください +- Chef 12.7 以降: [Datadog Chef レシピ][12] を参照してください +- Ansible 2.6 以降: [Datadog Ansible ロール][13] を参照してください + +## セットアップ {#setup} + +Cloud Network Monitoring は、ネットワークエンドポイント_間_のトラフィックを分析し、ネットワークの依存関係をマッピングするように設計されています。Datadog は、インフラストラクチャーの意味のあるサブセットに CNM をインストールし、価値を最大化するために**_最低 2 ホスト_**を推奨します。 + +{{< tabs >}} +{{% tab "Agent (Linux)" %}} + +Datadog Agent を使用して Cloud Network Monitoring を有効化するには、次の構成を使用します。 + +1. **v6.14 以前のバージョンの Agent を使用している場合**は、先に [ライブプロセスの収集][1] を有効にし、それ以外の場合はこのステップをスキップします。 + +2. 下記のシステムプローブの構成例をコピーします。 + + ```shell + sudo -u dd-agent install -m 0640 /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml + ``` + +3. `/etc/datadog-agent/system-probe.yaml` を編集して、Enable フラグを `true` に設定します。 + + ```yaml + network_config: # use system_probe_config for Agent's older than 7.24.1 + ## @param enabled - boolean - optional - default: false + ## Set to true to enable Cloud Network Monitoring. + # + enabled: true + ``` + + **Optional**: To monitor DNS traffic on non-standard ports (Agent v7.76.0+), add the `dns_monitoring_ports` option: + + ```yaml + network_config: + enabled: true + dns_monitoring_ports: + - 53 + - 5353 + ``` + +4. **v6.18 または 7.18 以前の Agent を実行している場合**は、システムプローブを手動で起動し、ブート時に有効化します (v6.18 および v7.18 以降では、Agent 起動時にシステムプローブが自動的に起動します)。 + + ```shell + sudo systemctl start datadog-agent-sysprobe + sudo systemctl enable datadog-agent-sysprobe + ``` + + **Note**: If the `systemctl` command is not available on your system, start it with following command instead: `sudo service datadog-agent-sysprobe start` and then set it up to start on boot before `datadog-agent` starts. + +5. [Agent を再起動][2] します。 + + ```shell + sudo systemctl restart datadog-agent + ``` + + **Note**: If the `systemctl` command is not available on your system, run the following command instead: `sudo service datadog-agent restart` + +### SELinux 対応のシステム {#selinux-enabled-systems} + +SELinux が有効化されたシステムでは、システムプローブのバイナリで eBPF 機能を使用するための特殊なアクセス許可が必要です。 + +CentOS ベースのシステム向けの Datadog Agent RPM パッケージには、システムプローブバイナリに必要なアクセス許可を付与する [SELinux ポリシー][3] がバンドルされています。 + +SELinux を有効にしたその他のシステムで Cloud Network Monitoring を使用する場合は、次の手順に従ってください。 + +1. ベースとなる [SELinux ポリシー][3] を、お使いの SELinux 構成に合わせて修正します。 + お使いのシステムによっては、タイプや属性が存在しない (または名前が異なる) 場合があります。 + +2. ポリシーをモジュールにコンパイルします。ポリシーのファイル名が `system_probe_policy.te` の場合は、以下のようになります。 + + ```shell + checkmodule -M -m -o system_probe_policy.mod system_probe_policy.te + semodule_package -o system_probe_policy.pp -m system_probe_policy.mod + ``` + +3. モジュールを SELinux システムに適用します。 + + ```shell + semodule -v -i system_probe_policy.pp + ``` + +4. システムプローブバイナリのタイプを、ポリシーで定義されたもののいずれかに変更します。Agent のインストールディレクトリが `/opt/datadog-agent` の場合は以下のようになります。 + + ```shell + semanage fcontext -a -t system_probe_t /opt/datadog-agent/embedded/bin/system-probe + restorecon -v /opt/datadog-agent/embedded/bin/system-probe + ``` + +5. [Agent を再起動][2] します。 + +**注**: これらの手順を実行するには、システムにいくつかの SELinux ユーティリティがインストールされている必要があります (`checkmodule`、`semodule`、`semodule_package`、`semanage` および `restorecon`)。これらはほとんどの標準ディストリビューション (Ubuntu、Debian、RHEL、CentOS、SUSE) で利用可能です。詳細なインストール方法については、ディストリビューションを確認してください。 + +お使いのディストリビューション内にこれらのユーティリティが存在しない場合は、現在のディストリビューションで利用可能なユーティリティを使って同じ手順を実行してください。 + + +[1]: /ja/infrastructure/process/?tab=linuxwindows#installation +[2]: /ja/agent/configuration/agent-commands/#restart-the-agent +[3]: https://github.com/DataDog/datadog-agent/blob/master/cmd/agent/selinux/system_probe_policy.te +{{% /tab %}} +{{% tab "Agent (Windows)" %}} + +Windows でのデータ収集は、ネットワークデータ収集用のフィルタードライバーに依存します。 + +Windows ホストの Cloud Network Monitoring を有効にする場合: + +1. [Datadog Agent][1] (バージョン 7.27.1 以上) をインストールし、ネットワークドライバーコンポーネントを有効にします。 + + [非推奨] _(バージョン 7.44 以下)_ インストール時に `ADDLOCAL="MainApplication,NPM"` を `msiexec` コマンドに渡すか、Agent のインストールを GUI 経由で実行する際に "Cloud Network Monitoring" を選択します。 + +2. `C:\ProgramData\Datadog\system-probe.yaml` を編集して、Enable フラグを `true` に設定します。 + + ```yaml + network_config: + enabled: true + ``` + + **Optional**: To monitor DNS traffic on non-standard ports (Agent v7.76.0+), add the `dns_monitoring_ports` option: + + ```yaml + network_config: + enabled: true + dns_monitoring_ports: + - 53 + - 5353 + ``` + +3. [Agent を再起動][2] します。 + + PowerShell (`powershell.exe`) の場合: + ```shell + restart-service -f datadogagent + ``` + For Command Prompt (`cmd.exe`): + ```shell + net /y stop datadogagent && net start datadogagent + ``` +**注**: Cloud Network Monitoring は Windows ホストのみを監視し、Windows コンテナは監視しません。 + + +[1]: /ja/agent/basic_agent_usage/windows/?tab=commandline +[2]: /ja/agent/configuration/agent-commands/#restart-the-agent +{{% /tab %}} +{{% tab "Helm" %}} + +Kubernetes で Helm を使用して Cloud Network Monitoring を有効にするには、以下を `values.yaml` ファイルに追加してください。
    +**注:** Helm Chart v3.135.3 以降が必要です。詳細については、[Datadog Helm Chart のドキュメント][1] を参照してください。 + + ```yaml + datadog: + ... + networkMonitoring: + enabled: true + ``` + +**オプション**: 非標準ポート (Agent v7.76.0 以降) で DNS トラフィックを監視するには、`dnsMonitoringPorts` オプションを追加してください。 + + ```yaml + datadog: + networkMonitoring: + enabled: true + dnsMonitoringPorts: + - 53 + - 5353 + ``` + +環境によって、以下の追加手順のいずれかが必要になる場合があります。 + +{{< collapse-content title="Google GKE Autopilot" level="h4" >}} + +クラスターで Google の GKE Autopilot が動作している場合は、values ファイルに以下を追加してください。 + +``` +providers: + gke: + autopilot: true +``` + +{{< /collapse-content >}} + +{{< collapse-content title="Google Container-Optimized OS (COS)" level="h4" >}} + +クラスターで Google Container-Optimized OS (COS) が動作している場合は、values ファイルに以下を追加してください。 + +``` +providers: + gke: + cos: true +``` + + +{{< /collapse-content >}} + +{{< collapse-content title="Bottlerocket Linux" level="h4" >}} + +クラスターがノードに Bottlerocket Linux ディストリビューションを使用している場合は、values ファイルに以下を追加してください。 + +``` +agents: + containers: + systemProbe: + securityContext: + seLinuxOptions: + user: "system_u" + role: "system_r" + type: "super_t" + level: "s0" +``` + +{{< /collapse-content >}} + +[1]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/README.md#enabling-npm-collection + +{{% /tab %}} +{{% tab "Helm を使用しない Kubernetes" %}} + +Helm を使用していない場合は、Kubernetes で Cloud Network Monitoring を新規で有効化することができます。 + +1. [datadog-agent.yaml マニフェスト][1] テンプレートをダウンロードします。 +2. `` をユーザーの [Datadog API キー][2] に置き換えます。 +3. オプション - **Datadog サイトを設定**します。Datadog EU サイトを使用している場合は、`DD_SITE` 環境変数を `datadog-agent.yaml` マニフェストの `datadoghq.eu` に設定します。 +次のコマンドで 4. **DaemonSet をデプロイ**します。 + + ```shell + kubectl apply -f datadog-agent.yaml + ``` + +すでに [マニフェストを適用して Agent を稼働させている][3] 場合: + +1. Kubernetes のバージョンが `1.30` 以下の場合は、`datadog-agent` テンプレートにアノテーション `container.apparmor.security.beta.kubernetes.io/system-probe: unconfined` を追加してください。 + + ```yaml + spec: + selector: + matchLabels: + app: datadog-agent + template: + metadata: + labels: + app: datadog-agent + name: datadog-agent + annotations: + container.apparmor.security.beta.kubernetes.io/system-probe: unconfined + ``` + For Kubernetes versions `1.30+`, add the following `securityContext` on the `datadog-agent` template: + + ```yaml + spec: + selector: + matchLabels: + app: datadog-agent + template: + metadata: + labels: + app: datadog-agent + name: datadog-agent + spec: + serviceAccountName: datadog-agent + securityContext: + appArmorProfile: + type: Unconfined + containers: + # (...) + ``` + +2. Agent DaemonSet で以下の環境変数を設定して、プロセス収集とシステムプローブを有効化します。Agent プロセスごとにコンテナを実行している場合は、以下の環境変数を Process Agent コンテナに追加します。それ以外の場合は、Agent コンテナに追加します。 + + ```yaml + # (...) + env: + # (...) + - name: DD_PROCESS_AGENT_ENABLED + value: 'true' + - name: DD_SYSTEM_PROBE_ENABLED + value: 'true' + - name: DD_SYSTEM_PROBE_EXTERNAL + value: 'true' + - name: DD_SYSPROBE_SOCKET + value: /var/run/sysprobe/sysprobe.sock + - name: DD_AUTH_TOKEN_FILE_PATH + value: /etc/datadog-agent/auth/token + ``` + +3. 以下の追加ボリュームを `datadog-agent` コンテナにマウントします。 + + ```yaml + # (...) + spec: + serviceAccountName: datadog-agent + containers: + - name: datadog-agent + image: 'registry.datadoghq.com/agent:latest' + # (...) + volumeMounts: + - name: procdir + mountPath: /host/proc + readOnly: true + - name: cgroups + mountPath: /host/sys/fs/cgroup + readOnly: true + - name: debugfs + mountPath: /sys/kernel/debug + - name: sysprobe-socket-dir + mountPath: /var/run/sysprobe + - name: auth-token + mountPath: /etc/datadog-agent/auth + readOnly: false # needs RW to write auth token + ``` + +4. 新しいシステムプローブを Agent のサイドカーとして追加します。 + + ```yaml + # (...) + spec: + serviceAccountName: datadog-agent + containers: + - name: datadog-agent + image: 'registry.datadoghq.com/agent:latest' + # (...) + - name: system-probe + image: 'registry.datadoghq.com/agent:latest' + imagePullPolicy: Always + securityContext: + capabilities: + add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_BROADCAST + - NET_RAW + - IPC_LOCK + - CHOWN + command: + - /opt/datadog-agent/embedded/bin/system-probe + env: + - name: DD_SYSTEM_PROBE_ENABLED + value: 'true' + - name: DD_SYSPROBE_SOCKET + value: /var/run/sysprobe/sysprobe.sock + - name: DD_AUTH_TOKEN_FILE_PATH + value: /etc/datadog-agent/auth/token + resources: + requests: + memory: 150Mi + cpu: 200m + limits: + memory: 300Mi + cpu: 400m + volumeMounts: + - name: procdir + mountPath: /host/proc + readOnly: true + - name: cgroups + mountPath: /host/sys/fs/cgroup + readOnly: true + - name: debugfs + mountPath: /sys/kernel/debug + - name: sysprobe-socket-dir + mountPath: /var/run/sysprobe + - name: auth-token + mountPath: /etc/datadog-agent/auth + readOnly: true + ``` + +5. 最後に、お使いのマニフェストに以下のボリュームを追加します。 + + ```yaml + volumes: + - name: debugfs + hostPath: + path: /sys/kernel/debug + - name: sysprobe-socket-dir + emptyDir: { } + - name: auth-token + emptyDir: { } + ``` + +[1]: /ja/resources/yaml/datadog-agent-npm.yaml +[2]: https://app.datadoghq.com/organization-settings/api-keys +[3]: /ja/agent/kubernetes/ + +{{% /tab %}} +{{% tab "Operator" %}} + +[Datadog Operator][1] は、Kubernetes および OpenShift 上で Datadog Agent をデプロイする作業を簡素化します。この機能により、カスタムリソースステータスを通じてデプロイ状況、健全性、エラーの報告を行い、高度な構成オプションで構成ミスのリスクを軽減します。 + +Datadog Operator で Cloud Network Monitoring を有効化するには、次の構成を使用します。 + +```yaml +apiVersion: datadoghq.com/v2alpha1 +metadata: + name: placeholder + namespace: placeholder +spec: + features: + npm: + enabled: true +``` + +[1]: /ja/containers/datadog_operator +{{% /tab %}} +{{% tab "Docker" %}} + +Docker で Cloud Network Monitoring を有効化するには、コンテナ Agent の起動時に、次の構成を使用します。 + +```shell +docker run --cgroupns host \ +--pid host \ +-e DD_API_KEY="" \ +-e DD_SYSTEM_PROBE_NETWORK_ENABLED=true \ +-e DD_PROCESS_AGENT_ENABLED=true \ +-v /var/run/docker.sock:/var/run/docker.sock:ro \ +-v /proc/:/host/proc/:ro \ +-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ +-v /sys/kernel/debug:/sys/kernel/debug \ +--security-opt apparmor:unconfined \ +--cap-add=SYS_ADMIN \ +--cap-add=SYS_RESOURCE \ +--cap-add=SYS_PTRACE \ +--cap-add=NET_ADMIN \ +--cap-add=NET_BROADCAST \ +--cap-add=NET_RAW \ +--cap-add=IPC_LOCK \ +--cap-add=CHOWN \ +registry.datadoghq.com/agent:latest +``` + +`` をユーザーの [Datadog API キー][1] に置き換えます。 + +`docker-compose` を使用している場合は、下記を Datadog Agent サービスに追加します。 + +```shell +version: '3' +services: + datadog: + image: "registry.datadoghq.com/agent:latest" + environment: + - DD_SYSTEM_PROBE_NETWORK_ENABLED=true + - DD_PROCESS_AGENT_ENABLED=true + - DD_API_KEY= + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /proc/:/host/proc/:ro + - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro + - /sys/kernel/debug:/sys/kernel/debug + cap_add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_BROADCAST + - NET_RAW + - IPC_LOCK + - CHOWN + security_opt: + - apparmor:unconfined +``` + +[1]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "ECS" %}} +Amazon ECS で CNM を設定するには、[Amazon ECS][1] ドキュメントページを参照してください。 + + +[1]: /ja/agent/amazon_ecs/#network-performance-monitoring-collection-linux-only +{{% /tab %}} + +{{% tab "ECS Fargate" %}} + +
    ECS Fargate の CNM はプレビュー段階です。サインアップするには、Datadog の担当者にご連絡ください。
    + +ECS Fargate で Cloud Network Monitoring を有効化するには、次の手順を実行します。 + +**Agent のバージョン `7.58` 以上が必要です**。 + +- 新しい Fargate デプロイの場合、Fargate ホストで [プロセス収集][1] を有効化して、ECS 上の Fargate をモニターするように Datadog Agent を構成します。 + +- 既存のデプロイの場合、次の構成設定を含めるように `task.json` ファイルを更新します。 + +```json +{ + "containerDefinitions": [ + (...) + "environment": [ + (...) + { + "name": "DD_SYSTEM_PROBE_NETWORK_ENABLED", + "value": "true" + }, + { + "name": "DD_NETWORK_CONFIG_ENABLE_EBPFLESS", + "value": "true" + }, + { + "name": "DD_PROCESS_AGENT_ENABLED", + "value": "true" + } + ], + "linuxParameters": { + "capabilities": { + "add": [ + "SYS_PTRACE" + ] + } + }, + ], +} +``` +[1]: /ja/integrations/ecs_fargate/?tab=webui#process-collection + +{{% /tab %}} +{{< /tabs >}} + +{{< site-region region="us,us3,us5,eu" >}} +### エンハンスドレゾリューション {#enhanced-resolution} + +オプションで、クラウドインテグレーションのリソース収集を有効にして、Cloud Network Monitoring でクラウド管理型エンティティを検出できるようにします。 +- Azure ロードバランサーとアプリケーションゲートウェイを可視化するには、[Azure インテグレーション][101] をインストールします。 +- [AWS インテグレーション][102] をインストールして、AWS ロードバランサーの可視性を確保します。**ENI と EC2 メトリクス収集を有効にする必要があります** + +これらの機能に関する追加情報は、[クラウドサービスエンハンスドレゾリューション][103] を参照してください。 + +[101]: /ja/integrations/azure +[102]: /ja/integrations/amazon_web_services/#resource-collection +[103]: /ja/network_monitoring/cloud_network_monitoring/network_analytics/#cloud-service-enhanced-resolution + +{{< /site-region >}} + +### Failed Connections {#failed-connections} + +Failed Connections を使用すると、[リセット、拒否、タイムアウト][14] を含む TCP 障害の収集と報告が可能になります。この機能は、Agent バージョン `7.59+` ではデフォルトで有効になっており、**カスタマイズ**メニューの [CNM Analytics][15] ページで**障害**のトグルをオンにするとアクセスできます。 + +**注**: インフラストラクチャー内の一部の Agent が `7.59` 以前のバージョンを実行している場合、障害が少なく報告される可能性があります。CNM では、_すべて_のホストで同じ Agent バージョンを維持することを推奨します。 + +{{< img src="network_performance_monitoring/setup/cnm_tcp_failures_toggle.png" alt="CNM カスタマイズメニューのスクリーンショット、障害トグルが強調表示されている" style="width:50%;">}} + +## 参考資料 {#further-reading} +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: https://docs.datadoghq.com/ja/network_monitoring/dns/#setup +[3]: https://www.redhat.com/en/blog/introduction-ebpf-red-hat-enterprise-linux-7 +[4]: /ja/network_monitoring/dns/ +[5]: https://docs.datadoghq.com/ja/agent/docker/ +[6]: https://docs.datadoghq.com/ja/agent/kubernetes/ +[7]: https://docs.datadoghq.com/ja/agent/amazon_ecs +[8]: https://docs.datadoghq.com/ja/integrations/istio/ +[9]: https://docs.datadoghq.com/ja/tracing/setup_overview/proxy_setup/?tab=istio +[10]: https://www.datadoghq.com/blog/istio-datadog/ +[11]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/README.md#enabling-system-probe-collection +[12]: https://github.com/DataDog/chef-datadog +[13]: https://github.com/DataDog/ansible-datadog/blob/master/README.md#system-probe +[14]: /ja/network_monitoring/cloud_network_monitoring/network_analytics/?tab=loadbalancers#tcp +[15]: https://app.datadoghq.com/network \ No newline at end of file diff --git a/content/ja/notebooks/_index.md b/content/ja/notebooks/_index.md index 6fef135a642..bc83a944598 100644 --- a/content/ja/notebooks/_index.md +++ b/content/ja/notebooks/_index.md @@ -1,227 +1,251 @@ --- aliases: - /ja/graphing/notebooks/ -cascade: - algolia: - rank: 70 +- /ja/notebooks_new/ +- /ja/notebooks_legacy/ +description: 調査、事後分析、運用手順書、データ駆動型ストーリーテリングのために、ライブの Datadog グラフを使用した共同編集可能なリッチテキストドキュメントを作成します。 further_reading: -- link: https://www.datadoghq.com/blog/incident-management-templates-notebooks-list/ +- link: https://www.datadoghq.com/blog/cloud-cost-management-oci tag: ブログ - text: ドキュメントライブラリの作成と使用 + text: Datadog Cloud Cost Management を使用して、OCI コストを管理および最適化します。 - link: https://www.datadoghq.com/blog/collaborative-notebooks-datadog/ tag: ブログ - text: コラボレーション型ノートブックでデータにデータドリブンの背景情報を追加 + text: 共同編集機能搭載のノートブックでデータにデータドリブンの背景情報を追加 - link: https://www.datadoghq.com/blog/incident-postmortem-process-best-practices/ tag: ブログ text: インシデントの事後分析を作成するためのベストプラクティス - link: https://www.datadoghq.com/blog/observability-pipelines-transform-and-enrich-logs/ - tag: blog + tag: ブログ text: Datadog Observability Pipelines によるログの変換と強化 -title: ノートブック +- link: https://www.datadoghq.com/blog/advanced-analysis-tools/ + tag: ブログ + text: Sheets、DDSQL Editor、および Notebooks を使用した Datadog での高度な分析のためのデータ探索 +- link: https://www.datadoghq.com/blog/finops-at-datadog/ + tag: ブログ + text: Datadog で成功した FinOps プラクティスをどのように構築したか +- link: https://learn.datadoghq.com/courses/getting-started-with-notebooks + tag: ラーニングセンター + text: Notebooks の使用を開始する +- link: https://learn.datadoghq.com/courses/using-datadog-notebooks-lab + tag: ラーニングセンター + text: Datadog Notebooks を使用した中央集約型レポーティング +title: Notebooks --- +## 概要 {#overview} -## 概要 +Notebooks は、Datadog グラフのすべての機能を備えた共同編集可能なリッチテキストドキュメントです。複数のユーザーが協力して、インシデントのライブデータを含む調査や [事後分析][8] を作成できます。Notebooks は、コンテンツとともにシステムの実データに基づくインサイトを含む運用手順書やドキュメントにも最適です。 -ノートブックは、グラフとテキストを組み合わせて 1 列のセル形式で表示し、事後分析、調査、ランブック、ドキュメントなどを作成することで、データの背景情報を調査したり共有したりできます。 +## ノートブックの作成 {#creating-a-notebook} -## はじめに +ノートブックは 2 つの場所で作成できます。 -1. [Notebook List][1] ページで、**+ New Notebook** をクリックします。 +- 左側のナビゲーションバーから、**Dashboards > New Notebook** をクリックします。 +- [Notebooks リストページ][1] の右上隅で、**New Notebook** をクリックします。 -2. **Save Notebook** ボタンをクリックします。
    - **注**: 新しいノートブックは、デフォルトでは保存されません。 +### ノートブックテンプレート {#notebook-templates} -3. [サポートされているグラフやテキストコンテンツ](#types-of-content)を使って、ノートブックに新しいセルを追加します。 +[Template Gallery][2] で、新しいノートブックを作成できるすぐに使えるテンプレートを確認できます。テンプレートには、Incident Response の [事後分析][8]、インシデントレポート、および SLO 仕様が含まれています。再利用可能なノートブック構造を構築するために、新しいカスタムテンプレートを作成することもできます。 -4. [セルを構成します](#cell-configuration)。 +## ノートブックの編集 {#editing-a-notebook} -## コラボレーション +Notebooks は、コンテンツの作成および共同編集のためのリッチテキスト編集機能を提供します。エディター内で、太字、斜体、見出し、リストなどの馴染みのあるツールバーオプションやキーボードショートカットを使用して、テキストを自由に入力およびフォーマットできます。 -{{< img src="notebooks/collaboration.png" alt="ユーザーがノートブックを閲覧し、ライブエディットを行っていることを示すインジケーター" style="width:100%;">}} +ショートカットを好むユーザー向けに、Notebooks は Markdown 構文もサポートしています。たとえば、`#` に続けてスペースを入力するとヘッダーが作成され、バッククォート 3 つ (```) を使用するとコードブロックが開始されます。 -ノートブックは、リアルタイムのコラボレーションをサポートします。プレゼンスインジケーターは、ノートブックを誰が見ているか、またノートブックのセルをリアルタイムで編集しているかを表示します。ノートブックに加えられた変更は、更新することなく、自動的に表示されます。 +テキストコンテンツは、入力に応じて自動的に保存されます。埋め込みグラフについては、グラフエディターで変更を保存し、ノートブック内に適用してください。 -チームの誰もが任意のノートブックを開くことができますが、ノートブックを変更または削除できるのは、`Notebooks Write` 権限を持つ Datadog ロールに限られます。 +### コンテンツタイプ {#content-types} -### コメントの作成 +Notebooks は、以下に限定されないさまざまなリッチテキストおよび埋め込みコンテンツタイプをサポートしています。 -コメントを追加するには、テキストを選択するか、グラフにカーソルを合わせます。セルの右側に **Add comment** のアイコンが表示されます。コメントから、`@mention` 機能でチームのメンバーに通知することもできます。書いたコメントを編集したり削除したりするには、コメントの右上にある 3 つの縦長の点をクリックします。解決したコメントは、ノートブックの歯車メニューにある Comment History サイドパネルで表示したり、再度開いたりすることができます。 +- [Graphs](#graphs-in-notebooks) +- 画像 +- ヘッダー (H1 - H3) +- リスト (箇条書きリスト、番号付きリスト、チェックリスト) +- コードブロック +- ブロック引用 +- Markdown セル -ノートブックへ新規コメントがあると、ノートブックの作成者に通知が送信され、コメントに返信があるとコメントの作成者に通知が送信されます。通知設定を管理するには、ノートブックのメニュー(歯車)にある `Notifications` を使用します。 +完全なリストを表示するには、ノートブックに / を入力します。 -### ビューモード +### ノートブックのグラフ {#graphs-in-notebooks} -{{< img src="notebooks/read_mode.png" alt="ビューモードドロップダウンメニュー" style="width:100%;">}} +Notebooks はすべてのウィジェットタイプをサポートしています。完全なリストについては [ウィジェット][3] を参照してください。 -ノートブックの右上にあるドロップダウンを選択することで、ノートブック内からモードを切り替えることができます。 +ウィジェットにカーソルを合わせると、グラフの編集および設定オプションが表示されます。 -- **Editing**: ノートブックに変更を加えます。 +クエリを編集したりグラフの表示を設定したりするには、**Quick Edit** 機能を使用してほとんどの変更をインラインで行います。より高度な設定を行うには、鉛筆アイコンをクリックするか、Cmd/Ctrl キーを押しながらグラフをクリックして、フルグラフエディターを開きます。ローカルの時間枠を調整するか、時計アイコンをクリックしてグラフをノートブックのグローバル時間にリンクできます。 -- **Viewing**: コンテンツは読み取り専用で、既存の構成や情報をユーザーが不要に編集することを防ぎます。 +追加のグラフ設定オプションは、グラフの種類に応じて三点リーダーメニューからアクセスできます。 +- **Graph size**: XS、S、M (デフォルト)、L、または XL を選択してグラフの高さを調整します。 +- **Graph legend**: ボックスのチェックを外すと、凡例が非表示になります。凡例は、XS および S のグラフでは自動的に無効になります。 -- **Presenting**: 各セルがスライドとして表示される表示形式で、ノートブックの内容を共有します。プレゼンテーションモードでは、ツールチップや凡例などのグラフのインタラクションをサポートしています。 +### リッチテキスト機能 {#rich-text-features} -## ノートブックの共有 +Notebooks は、太字、斜体、インラインコード、ヘッダーなど、一般的に使用されるリッチテキスト機能をサポートしています。Notebooks は、箇条書き、番号付き、またはチェックリストなど、さまざまなリストタイプもサポートしています。 -ノートブックの右上にある歯車のアイコンをクリックすると、共有オプションが表示されます。ノートブックは、PDF、Markdown などのドキュメントエディタにエクスポートできます。 +| 機能 | 説明 | +|---------------|----------------------------------------------------------------------------------------------------------------------------| +| **Bold** | テキストを太字にするには、選択して Cmd/Ctrl + B を押します。 | +| *Italics* | テキストを斜体にするには、選択して Cmd/Ctrl + I を押します。 | +| `Inline code` | インラインコードにするには、テキストの最初と最後に ` を入力します。 | +| Codeblocks | コードブロックを挿入するには、 ``` を入力して Enter キーを押すか、スラッシュコマンドメニューを使用してください。 | +| Quotes | 引用ブロックを挿入するには、`>` を入力するか、スラッシュコマンドメニューを使用します。 | +| Text tables | テーブルを挿入するには、`/table` を入力するか、**Add Cell** メニューを使用します。 | +| Callouts | コールアウトを挿入するには、`/table` を入力するか、`!NOTE`、`!TIP`、`!WARNING`、`!IMPORTANT`、または`!CAUTION` を入力してから Space を押します。 | -ノートブックをドキュメントエディタにコピーするには、**Copy formatted contents** をクリックします。Google ドキュメントや Microsoft Word などのドキュメントエディタに貼り付けて、グラフを含むノートブックのコンテンツを元の形式で表示します。 +### スマートチップ {#smart-chips} -### ノートブック JSON のインポートまたはエクスポート +| 機能 | 説明 | +|------------|----------------------------------------------------------------------------| +| `@Mention` | 他のユーザーに言及するには、`@` の後にその名前またはメールアドレスを入力します。| +| `$TemplateVariable` | `$` を入力し、その後に既存のテンプレート変数名を入力します。| +| `/date` | `/date` を入力して日付チップを追加します。チップをクリックすると、ポップオーバーで日付や時間を編集できます。`/today` と `/now` も試してみてください!| -ノートブックの定義を含む JSON ファイルをダウンロードするには、**Export Notebook JSON** を使用します。**Import Notebook JSON** を使用すると、ノートブックのすべてのコンテンツがアップロード済みの JSON コンテンツで上書きされます。 +### スラッシュコマンド {#slash-commands} -### 個々のセルへのリンク設定 +スラッシュコマンドは、グラフの作成や他のコンテンツを挿入するためのインターフェイスです。新しい行で `/` を入力して、スラッシュコマンドメニューを開きます。希望するコンテンツタイプ名を続けて入力し、適切なオプションを選択します。 -特定のセルの URL をコピーするには、セルの **Share** メニューをクリックし、**Link directly to cell** を選択します。直接リンクは、視覚化セルとマークダウンセルの両方で利用できます。 +{{< img src="/notebooks/notebooks_new/slash_command_menu.png" alt="ノートブックで / を入力したときに表示されるスラッシュコマンドメニュー" style="width:70%;" >}} -ユーザーが特定のセルの URL にアクセスすると、ノートブックが開き、ビューポートの上部にセルが表示されます。絶対リンクのため、セルの URL はノートブック内で新しい位置に移されたとしても、変わることはありません。 +グラフタイプを選択すると、[グラフエディター][3] が開きます。**Save** をクリックすると、グラフがノートブックに表示されます。 -## ノートブックに画像を追加する +### キーボードショートカット {#keyboard-shortcuts} -
    ファイル形式は PNG、JPG、JPEG、GIF のみ対応しており、アップロードの最大ファイルサイズは 4MB です。
    +{{< img src="/notebooks/notebook_keyboard_shortcuts.png" alt="Datadog ノートブックのキーボードショートカットメニュー" style="width:70%;" >}} -ノートブックに画像を追加するには、[イメージセル](#image-cell)または [Markdown エディタ](#markdown-editor)のいずれかを使用します。 +ノートブックの左下隅にあるキーボードアイコンをクリックすると、編集用のキーボードショートカット一覧を確認できます。 -### イメージセル +さらに、次のショートカットを使用してウィジェットを切り取り、貼り付けることもできます (Cmd/Ctrl + XCmd/Ctrl + V)。 -この方法では、画像をテキストとは別のセルに配置し、サイズ変更、整列、キャプションの追加が可能です。イメージセルでアップロードされた画像は Datadog によってホストされます。 +### 目次 {#table-of-contents} -画像を追加するには、**Add New Cell** メニューの **Image** セルオプションをクリックします。 +Notebooks は、ドキュメントに挿入したヘッダーやグラフから目次を自動的に生成します。マークダウンショートカット `#` を使用するか、テキストを選択してツールバーの **Header** をクリックすることで、ヘッダーを作成できます。 -{{< img src="notebooks/image_cell.png" alt="Add New Cell メニューのイメージセル" style="width:70%;" >}} +### Notebooks のタグ {#notebook-tags} -Datadog にホストする画像をアップロードするには、以下のいずれかの方法を使用します。 -- アップロード領域に画像ファイルをドロップします。 -- **Choose File** をクリックし、ファイルディレクトリから画像を選択します。 -- 画像の公開 URL を貼り付けます。 +{{< img src="/notebooks/notebooks_new/notebook_tags.png" alt="Notebooks のタグオプションを使用して、Notebooks をお気に入りに追加したり、チームやタイプを追加したりできます。" style="width:80%;" >}} -セルのアクショントレイにあるアイコンをクリックして、サイズや配置を調整したり、キャプションを追加したり、フルスクリーンモードで画像を表示したりします。 +| タグアクション | 説明 | +|---------------------------|----------------------------------------------------------------------------------------------------------------------| +| **Favorite a Notebook** | Notebooks List ページで、ノートブックを検索結果の上部にピン留めできます。ノートブックをお気に入りとして切り替えるには、ノートブックのヘッダーにある星アイコンをクリックします。 | +| **Tag by Team** | ノートブックにチームのタグを付けると、ノートブックを検索する際にフィルターとして使用できます。ノートブックには最大 5 つのチームのタグを付けることができます。ノートブックにタグを付けるには、ノートブックのヘッダーにある **Team** オプションをクリックし、目的のチームを選択します。| +| **Tag by Type** | 検索をより簡単にするために、ノートブックに以下のようなタイプタグを付けることができます: Postmortem、Runbook、Investigation、Documentation、Report。ノートブックにタグを付けるには、**Type** をクリックし、タイプを選択します。 | -{{< img src="notebooks/notebooks_image_edit_action_tray.png" alt="イメージセルのアクショントレイで画像の配置を調整し、キャプションを追加する" style="width:70%;" >}} +### ノートブックに画像を追加する {#add-images-to-notebooks} -### Markdown エディタ +
    PNG、JPG、JPEG、GIF のファイル形式のみに対応しています。アップロードできる最大ファイルサイズは 4MB です。
    -この方法では画像はテキストとインラインで配置されますが、画像のサイズを変更するオプションはありません。 +`/image` または **Add Cell** メニューを使用して、ノートブックに画像を追加できます。これにより、画像のサイズ変更、配置、キャプションの追加を行うことができます。アップロードされた画像は Datadog によってホストされます。 -任意の Markdown セルの編集モードに入り、以下のいずれかの方法で画像を追加します。 -- 画像ファイルをテキストセル領域にドロップします。 -- 画像をコピーしてテキストセル領域に直接貼り付けます。 -- ヘッダーの画像ウィジェットを使用するか、[公式 Markdown ガイド][2]を参照して外部画像をハイパーリンクします。**注**: この方法では Datadog にホストする画像をアップロードしません。 + -画像をノートブックに保存する前に、Preview タブで画像を確認できます。 +以下のいずれかの方法で画像をアップロードできます。 +- アップロードエリアに画像ファイルをドロップします +- **Choose File** をクリックし、ファイルディレクトリから画像を選択します +- 画像の公開 URL を貼り付けます -## ノートブック一覧 +画像アクショントレイのアイコンをクリックして、サイズや配置の調整、画像のキャプションの追加、またはフルスクリーンモードでの画像の表示を行います。 -{{< img src="notebooks/notebook_list.png" alt="選択したノートブックのセルの種類をプレビューするノートブック一覧" style="width:100%;">}} -[ノートブック一覧][1]で、以前に作成したノートブックの表示と検索ができます。各ノートブックの名前、作成者、最終更新日が表示されます。ノートブックは以下のグループに分けられます。 +## ノートブックにコメントを追加する {#adding-comments-to-a-notebook} -* **Your Notebooks**: 自分が作成したノートブック。 -* **All Notebooks**: 組織内のすべてのノートブック。 -* **[Notebook Type](#notebook-types)**: ノートを種類別に分類します。 +ノートブックの本文にコメントを追加できます。テキストにコメントするには、テキストをハイライトし、ツールバーのコメントアイコンをクリックします。 -任意のノートブックのプレビューアイコンにカーソルを合わせると、ウィジェットタイプや Markdown を含むコンテンツのプレビューが表示されます。[ビューモード](#view-mode)でノートブックを開くには、ノートブックにカーソルを合わせ、右側にある **Open notebook in view mode** をクリックします。 + -## テンプレートギャラリー -[テンプレートギャラリー][3]では、新しいノートブックを作成するための、すぐに使えるテンプレートが紹介されています。テンプレートには、インシデントレスポンスのポストモーテム、インシデントレポート、SLO 仕様が含まれます。また、新しいカスタムテンプレートを作成し、再利用可能なノートブック構造を構築することもできます。 +グラフや画像にコメントするには、その右側にあるコメントアイコンをクリックします。 -## バージョン履歴 -ノートブックから ** Configure** アイコンをクリックし、**Version history** をクリックすると、バージョン履歴のサイドパネルが表示されます。ノートブックのバージョン履歴をプレビューしたり、復元したり、複製したりすることができます。詳しくは、[バージョン履歴ガイド][4]を参照してください。 +| 機能 | 説明 | +|--------------------------|----------------------------------------------------------------------------------------------------------------------| +| **Navigating to Comments** | 保存されたコメントは、ノートブックの右側のマージンに表示されます。テキスト内のコメントハイライトをクリックしてマージンで開くか、マージン内のコメントをクリックしてその位置にスクロールします。| +| **Responding to Comments** | 右側のマージンでコメントをクリックしてコメントボックスを開き、コメントに返信します。テキストの入力、Datadog ユーザーへの `@mention`、または **Resolve** をクリックしてコメントを解決できます。| +| **Linking to Comments** | 特定のコメントへのリンクをコピーするには、コメントの右上隅にあるリンクアイコンをクリックしてそのリンクをコピーします。 | +| **Editing or Deleting Comments** | コメントの右上隅にある三点リーダーの省略メニューをクリックして、コメントを編集または削除します。 | +| **Comment Notifications** | デフォルトでは、他のユーザーが新しいコメントを入力すると、ノートブックの作成者にメール通知が送信されます。コメントスレッド内のユーザーは、返信ごとに通知を受け取ります。通知を調整するには、歯車メニューで **Notifications** を選択します。| -## ノートブックの構成 +## Notebooks での共同編集機能 {#multiplayer-experience-in-notebooks} -### タイムフレーム +Notebooks は完全なコラボレーションをサポートしており、複数のユーザーが同時に編集できます。コラボレーターがノートブックを開くと、そのユーザーのカーソルがリアルタイムで表示されます。カーソルにホバーすると、コラボレーターの名前が表示されます。 -デフォルトでは、すべてのグラフセルはノートブックのヘッダに設定されたグローバルなタイムフレームにリンクされています。 + -別のタイムフレームを表示するには、グローバルタイムピッカーでオプションを選択するか、グラフを直接スクラブします。ノートブック URL は、ノートブックに保存することなく、この新しいタイムフレームを反映するように更新されます。 +### ウィジェット {#widgets} -**注**: クリックアンドドラッグしてグラフを拡大しても、セルのグローバルな時間を解除することはできません。この操作を行うと、ノートブックのグローバルなタイムフレームが変更されます。 +他のユーザーがウィジェットを編集している間は、そのウィジェットの周囲にアウトラインが表示されます。ウィジェットは「最後に書き込まれた内容が優先 (Last Write Wins)」して保存されるため、他のユーザーが作業中のウィジェットは編集しないでください。 -{{< img src="notebooks/set_default_time.png" alt="Set Default Time ボタンでノートブックのグローバルタイムを保存する" style="width:100%;">}} + -この時間をノートブックのデフォルトとして保存するには、**Set Default Time** をクリックします。グローバルタイムを、以前に保存したデフォルトのグローバルタイムに戻すには、リセットボタンをクリックします。 +#### プレゼンス {#presence} -個々のセルは、グローバルタイムのリンクを解除し、独立したタイムフレームを設定することができます。 +ノートブックの上部には、現在それを閲覧しているすべてのユーザーのアバター画像が表示されます。アバターにホバーすると、関連するコラボレーターの名前が表示されます。 -{{< img src="notebooks/cell_time.png" alt="セルがグローバルタイムとリンクしていない状態のセルタイムセレクター" style="width:100%;">}} + -1 つのセルで別のタイムフレームを表示するには、そのセルを編集し、トグルを使用しグローバルタイムからリンクを解除します。タイムピッカーを使用するかグラフをスクラブして、タイムフレームを変更します。編集モードでの変更は、**Done** をクリックすると自動的に保存されます。変更内容を破棄するには、**Done** ではなく **Cancel** をクリックします。 +## ノートブックを構成する {#configuring-a-notebook} -### ノートブックタイプ +### テンプレート変数 {#template-variables} -{{< img src="notebooks/add_notebook_type.png" alt="ノートブックでハイライトされたタイプ追加ボタン" style="width:100%;">}} +Notebooks はテンプレート変数をサポートしています。テンプレート変数の値を追加して選択することで、視覚化のスコープを動的に変更できます。詳しくは、[テンプレート変数][5] をご覧ください。 -ノートブックをタイプ別に分類することで、関連する情報に素早くアクセスすることができます。インシデント管理やモニターなど、他の製品から構築されたノートブックには、自動的にタイプが割り当てられる場合があります。ノートブックのタイトルにカーソルを合わせると、タイプを追加または編集するためのオプションが表示されます。または、カーソルを合わせて表示される鉛筆のアイコンをクリックすると、タイプを編集することができます。 +
    一部の Analysis 機能では、テンプレート変数のサポートが限定的であるか、あるいはまったくサポートされていません。詳しくは、Analysis Notebooks におけるテンプレート変数のサポートをご覧ください。
    -### グラフのスナップショット +### タイムコントロール {#time-controls} -ノートブックでは、期限切れになる可能性のあるグラフのスナップショットを自動的に取るように設定することができます。ノートブックの歯車メニューの **Turn on snapshots** をクリックして、この機能を有効にします。歯車メニューを使用して、スナップショットを表示したり、自動スナップショットをオフにしたりすることができます。自動スナップショットをオフにすると、既存のスナップショットへのアクセスが削除されます。 +デフォルトでは、すべてのグラフがノートブックのヘッダーに設定されたグローバルなタイムフレームにリンクされています。 -{{< img src="notebooks/cog_snapshots.png" alt="スナップショットをオンにする歯車メニューオプション" style="width:100%;">}} +別のタイムフレームを表示するには、グローバルタイムピッカーでオプションを選択するか、グラフ上を直接ドラッグして範囲選択します。ノートブックに保存することなく、この新しいタイムフレームを反映するように URL が更新されます。 - スナップショットが有効になっているノートブックは、固定の時間範囲 (たとえば `Aug 18, 12:00 am - Aug 19, 11:59 pm`) でグラフの静止画像を自動的にキャプチャします。このスナップショットは、新しいグラフに同じ時間範囲が設定されていれば、グラフの更新に合わせて更新されます。グラフをグローバルな時間範囲 (`Past 1 Hour` など) に変更すると、スナップショットは削除されます。 +**注**: グラフをクリックしてドラッグし、ズームインしても、そのグラフとグローバルタイムとの連動は解除されません。その代わりに、ノートブックのグローバルタイムが変更されます。 - 固定時間のグラフの既存のスナップショットをプレビューするには、編集モードでカメラアイコンの上にカーソルを合わせます。 + -スナップショット付きのノートブックのバージョンを共有するには、歯車メニューから、**View snapshots** をクリックします。URL をコピーするか、スナップショットを有効にしているノートブックの URL に `&view=snapshots` を追加します。 +この時間をノートブックのデフォルトとして保存するには、**Set Default Time** をクリックします。グローバルタイムを、以前保存したデフォルトのグローバルタイムに戻すには、リセットボタンをクリックします。 -### テンプレート変数 +個々のグラフは、グローバルタイムとのリンクを解除して、独立したタイムフレームに設定できます。 -ノートブックはテンプレート変数をサポートしています。テンプレート変数の値を追加・選択することで、視覚化した内容を動的にスコープすることができます。詳しくは、[テンプレート変数][5]を参照してください。 + -### セルの構成 +単一のグラフで別のタイムフレームを表示するには、グラフを編集し、トグルスイッチを使用して Global Time からリンクを解除します。タイムピッカーを使用するか、グラフ上を直接ドラッグして範囲選択することで、タイムフレームを変更します。編集モードで行った変更は、**Done** をクリックすると自動的に保存されます。変更を破棄するには、**Done** ではなく **Cancel** をクリックします。 -セルを追加するには、セルの左に表示される **+** ボタンを使用するか、ノートブックの下部にある **Add New Cell** のセクションからオプションを選択します。セルを共有、複製、削除するには、カーソルを置いたときにセルの上に表示されるアクショントレイを使用します。グラフセルは、ダッシュボードにエクスポートしたり、PNG やグラフデータの CSV としてダウンロードすることができます。編集モードでの変更は、**Done** をクリックすると自動的に保存されます。変更内容を破棄するには、**Done** ではなく、**Cancel** をクリックしてください。 +### モード {#modes} -#### オプションの編集 +ノートブックの右上にあるドロップダウンを選択することで、ノートブック内からモードを切り替えることができます。 -ウィジェットのインラインエディターで **More options** をクリックすると、ウィジェットのオプションが編集できます。イベントオーバーレイ、マーカー、Y 軸コントロールなどの詳細を追加します。 +- **Editing**: ノートブックに変更を加えます。 +- **Viewing**: コンテンツは読み取り専用で、既存の構成や情報をユーザーが不要に編集することを防ぎます。 -#### レイアウトオプション +### バージョン履歴 {#version-history} -ノートブックのセルで、**Edit** をクリックすると、セルの構成が編集モードで表示されます。また、利用可能なレイアウトオプションを見ることができます。レイアウトオプションは、セルのコンテンツタイプによって異なりますが、以下のようなものがあります。 +ノートブックから、歯車のアイコンをクリックし、**Version History** をクリックしてバージョン履歴のサイドパネルを開きます。以前のバージョンのノートブックをプレビュー、復元、またはクローンできます。詳細については、[バージョン履歴ガイド][6] を参照してください。 -* **グラフサイズ**: `XS`、`S`、`M` (デフォルト)、`L`、`XL`から選択。 -* **グラフの凡例**: 凡例を非表示にするには、ボックスのチェックマークを外します。`XS` と `S` サイズのグラフでは、凡例は自動的に無効になります。 -* **グループ化**: タグ値ごとに 1 つのグラフを表示し、複数の小さいグループに視覚化します。 +### グラフのスナップショット {#graph-snapshots} -{{< img src="notebooks/edit_cell_action_menu.png" alt="グラフサイズ、凡例、グループ化構成のレイアウトオプションを表示する編集モードのノートブックセルのグラフ設定オプション" style="width:100%;">}} +Notebooks は、データ保持制限が適用される前のビューを維持するために、固定の時間範囲のグラフを自動的にスナップショットとして保存します。設定は必要ありません。グラフの横にあるケバブメニューアイコンを使用して、スナップショットの表示またはダウンロードを行います。 -**注**: 設定の変更は対象となるセルにのみ影響します。 +{{< img src="notebooks/kebab_snapshots.png" alt="スナップショットの表示またはダウンロードを行うケバブメニューオプション" style="width:100%;">}} -#### コンテンツの種類 +スナップショットは、固定の時間範囲のグラフの静的画像です (例: `Aug 18, 12:00 am - Aug 19, 11:59 pm`)。グラフが固定の時間範囲を使用し続ける限り、グラフが更新されるとスナップショットも自動的に更新されます。グラフをグローバル時間範囲 (例: `Past 1 hour`) に切り替えると、スナップショットは削除されます。 -ノートブックは、視覚化とテキストセルをサポートしています。テキストセルは [Markdown][6] でフォーマットされ、見出し、小見出し、リンク、イメージ、リスト、コードブロックを使用することが可能です。また、ノートブックでは、[MermaidJS][7] でフォーマットされたダイアグラムもサポートしています。 +ノートブックのタイトルの下にあるグラフスナップショットインジケーターにホバーすると、ノートブックのスナップショットステータスをプレビューできます。プレビューには、最新のスナップショットの時刻と作成されたスナップショットの数が表示されます。 -ノートブック内のグラフは、Datadog のすべてのデータソースに対応しています(メトリクス、ログイベント、インデックス化されたスパン、ライブプロセス、ネットワークトラフィック、RUM イベント、プロファイリングのメトリクス、セキュリティシグナルなど)。グラフは、Datadog のクエリエディターで作成します。ノートブックは以下に対応しています。 +{{< img src="notebooks/hover_graph_snapshots.png" alt="生成されたスナップショットの数を表示するスナップショットインジケーター" style="width:100%;">}} -* [テキスト][8] -* [画像](#add-images-to-cells) -* [時系列][9] -* [トップリスト][10] -* [テーブル][11] -* [クエリ値][12] -* [ヒートマップ][13] -* [分布][14] -* [リスト][15] -* [プロファイリングフレームグラフ][16] -* [ファネル][17] -* [円グラフ][18] -* [ツリーマップ][16] -* [ジオマップ][19] -* [SLO][20] +ノートブックに含まれるグラフのデータがデータ保持制限を超えている場合、ノートブックにはそのグラフのインラインスナップショットが表示されます。スナップショットは静的画像ですが、基になるグラフを編集すると更新されます。 -### 編集アクセス権の制限 +### 権限 {#permissions} デフォルトでは、すべてのユーザーがノートブックにフルアクセスできます。 -きめ細かいアクセス制御を使用して、特定のノートブックを編集できる[ロール][21]を制限することができます。 -1. ノートブックを表示中に、右上の歯車をクリックします。設定メニューが開きます。 -1. **Permissions** を選択します。 -1. **Restrict Access** をクリックします。 -1. ダイアログボックスが更新され、組織のメンバーはデフォルトで **Viewer** アクセス権を持っていることが表示されます。 +アクセス制御を使用して、自分だけが表示および編集できるようにアクセスを制限します。 +1. ノートブックの表示中に、右上にある **Share** ボタンをクリックします。 +1. **Private to me** を選択します。 +1. **Save** をクリックします。 + +きめ細かいアクセス制御を使用して、特定のノートブックを編集できる [ロール][7] を制限することができます。 +1. ノートブックの表示中に、右上にある **Share** ボタンをクリックします。 +1. **Custom** を選択します。 +1. 組織のアクセスを **Viewer** に更新し、組織内の他のユーザーから編集権限を削除します。 1. ドロップダウンを使用して、ノートブックを編集できる 1 つまたは複数のロール、チーム、ユーザーを選択します。 1. **Add** をクリックします。 1. ダイアログボックスが更新され、選択したロールに **Editor** 権限があることが表示されます。 @@ -229,34 +253,53 @@ Datadog にホストする画像をアップロードするには、以下のい **注:** ノートブックの編集アクセス権を維持するために、保存する前に、少なくとも 1 つのロールのメンバーであることを含めることがシステムから要求されます。 -アクセスが制限されたノートブックに一般的なアクセスを戻すには、次の手順に従います。 -1. ノートブックを表示中に、右上の歯車をクリックします。設定メニューが開きます。 -1. **Permissions** を選択します。 -1. **Restore Full Access** をクリックします。 +制限されたノートブックへの全体アクセスを復元するには、編集権限が必要です。以下のステップを完了します。 +1. ノートブックの表示中に、右上にある **Share** ボタンをクリックします。 +1. **My Org** を選択します。 1. **Save** をクリックします。 -## その他の参考資料 +## ノートブックの検索 {#finding-notebooks} + +[Notebooks リスト][1] ページでは、すべてのノートブックを確認できます。 + + + +### 検索 {#search} + +検索フィールドは全文検索に対応しています。クエリを入力すると、関連するノートブックが結果として表示されます。 + +### フィルタリング {#filtering} + +次の方法でノートブックをフィルタリングできます。 +| フィルタータイプ | 説明 | +|------------------|-----------------------------------------------------------------------------| +| **Author** | 作成者でフィルタリングするには、作成者のドロップダウンを選択し、絞り込みたい名前を入力します。| +| **Team** | チームでフィルタリングするには、チームのドロップダウンを選択し、絞り込みたいチーム名を入力します。| +| **Notebook Type**| investigation、postmortem、runbook、report、または documentation でフィルタリングします。 | +| **Modified Date**| 最終更新日ドロップダウンを使用して、ノートブックが最近いつ編集されたかに基づいてフィルタリングします。| + +自分のノートブックや、所属チームのタグが付いたノートブックにアクセスできるクイックフィルターもあります。 + +### 再開 {#jump-back-in} + +フィルターが有効になっていない場合は「再開」セクションが現れ、最近表示または編集したノートブックが一覧表示されます。 + + + +### ノートブックのソート {#sorting-notebooks} + +⭐、詳細、または最終更新ヘッダーを選択して、これらの値でノートブックをソートできます。 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} + [1]: https://app.datadoghq.com/notebook/list -[2]: https://www.markdownguide.org/basic-syntax/#images-1 -[3]: https://app.datadoghq.com/notebook/template-gallery -[4]: /ja/notebooks/guide/version_history +[2]: https://app.datadoghq.com/notebook/list?location=templates +[3]: /ja/dashboards/querying/#graphing-editor +[4]: https://www.markdownguide.org/basic-syntax/#images-1 [5]: /ja/dashboards/template_variables/ -[6]: https://daringfireball.net/projects/markdown/ -[7]: https://mermaid.js.org/ -[8]: /ja/dashboards/widgets/free_text/ -[9]: /ja/dashboards/widgets/timeseries/ -[10]: /ja/dashboards/widgets/top_list/ -[11]: /ja/dashboards/widgets/table/ -[12]: /ja/dashboards/widgets/query_value/ -[13]: /ja/dashboards/widgets/heatmap/ -[14]: /ja/dashboards/widgets/distribution/ -[15]: /ja/dashboards/widgets/list/ -[16]: /ja/dashboards/widgets/treemap/ -[17]: /ja/dashboards/widgets/funnel/ -[18]: /ja/dashboards/widgets/pie_chart/ -[19]: /ja/dashboards/widgets/geomap/ -[20]: /ja/dashboards/widgets/slo/ -[21]: /ja/account_management/rbac/ \ No newline at end of file +[6]: /ja/notebooks/guide/version_history +[7]: /ja/account_management/rbac/ +[8]: /ja/incident_response/incident_management/post_incident/postmortems \ No newline at end of file diff --git a/content/ja/profiler/_index.md b/content/ja/profiler/_index.md index 561fc3a29f9..525818e3e06 100644 --- a/content/ja/profiler/_index.md +++ b/content/ja/profiler/_index.md @@ -1,4 +1,7 @@ --- +algolia: + tags: + - profiler aliases: - /ja/tracing/profiling/ - /ja/tracing/profiler/ @@ -7,20 +10,20 @@ cascade: rank: 70 further_reading: - link: /profiler/enabling - tag: ドキュメント + tag: よくあるご質問 text: アプリケーションの継続的なプロファイラー有効化 - link: getting_started/profiler - tag: ドキュメント + tag: よくあるご質問 text: Continuous Profiler の概要 -- link: profiler/search_profiles - tag: ドキュメント +- link: profiler/profile_visualizations + tag: よくあるご質問 text: 使用可能なプロファイルタイプの詳細 -- link: /developers/guide/data-collection-resolution-retention/ - tag: ドキュメント - text: データ収集、解決、保持 +- link: /extend/guide/data-collection-resolution/ + tag: よくあるご質問 + text: データ収集と解決 - link: https://www.datadoghq.com/blog/source-code-preview/ tag: ブログ - text: Focus on code that matters with source code previews in Continuous Profiler + text: Continuous Profiler のソースコードプレビュー機能を使用して、重要なコードに集中する - link: https://www.datadoghq.com/blog/introducing-datadog-profiling/ tag: ブログ text: Datadog に常時接続型の本番環境プロファイリングが登場 @@ -29,89 +32,91 @@ further_reading: text: 継続的な脆弱性分析のための Datadog GitHub アクション - link: https://www.datadoghq.com/blog/code-optimization-datadog-profile-comparison/ tag: ブログ - text: Datadog プロファイル比較を使用してコードを比較および最適化します。 + text: Datadog プロファイル比較を使用してコードを比較および最適化する - link: https://www.datadoghq.com/blog/engineering/how-we-optimized-our-akka-application-using-datadogs-continuous-profiler/ tag: ブログ text: Datadog の Continuous Profiler を使用して Akka アプリケーションを最適化した方法 - link: https://www.datadoghq.com/blog/ruby-profiling-datadog-continuous-profiler/ tag: ブログ text: Datadog Continuous Profiler で Ruby のコードパフォーマンスを分析 +- link: https://www.datadoghq.com/blog/continuous-profiler-context-attributes/ + tag: ブログ + text: Cloud SIEM チームが Continuous Profiler でコンテキスト属性を活用して重要なパフォーマンス情報を得た方法 +- link: https://www.datadoghq.com/blog/profiling-visualizations/ + tag: ブログ + text: すべてのレベルのエンジニアがプロファイリングの可視化を利用できるようにする +- link: https://www.datadoghq.com/blog/continuous-profiling-fourth-pillar/ + tag: ブログ + text: 継続的プロファイリングが可観測性の第 4 の柱である理由 +- link: https://www.datadoghq.com/blog/kubernetes-operator-performance + tag: ブログ + text: Kubernetes オペレーターをモニターしてアプリケーションがスムーズに動作するようにする +- link: https://www.datadoghq.com/blog/gitlab-source-code-integration + tag: ブログ + text: Datadog で GitLab ソースコード統合を使用して迅速にトラブルシューティングを実行する title: Continuous Profiler --- - {{< vimeo url="https://player.vimeo.com/progressive_redirect/playback/441865141/rendition/1080p/file.mp4?loc=external&signature=ebc774b892f062e45922dcae82f4ebff0a906c8ec30f34b9d77494b0051748ad" poster="/images/poster/profiler.png" >}} -
    +
    -発見した CPU、メモリ、IO のボトルネックをメソッド名、クラス名、行番号で分類して、エンドユーザー側での遅延とインフラストラクチャーにかかるコストを大幅に削減することができます。 +発見された CPU、メモリ、IO のボトルネックをメソッド名、クラス名、行番号で分類して、エンドユーザー側での遅延とインフラストラクチャーにかかるコストを大幅に削減することができます。 -### 実環境での影響を最小限に +### 本番環境での影響を最小限に {#low-impact-in-production} -Continuous Profiler は、JDK Flight Recorder などの技術を活用し、すべてのサービスの実環境で実行します。こうすることでホストの CPU とメモリ使用量への影響を最小限に抑えることができます。 +Continuous Profiler は、JDK Flight Recorder などの技術を活用し、すべてのサービスの実環境で動作します。こうすることでホストの CPU とメモリ使用量への影響を最小限に抑えることができます。 -## はじめに +## はじめに {#getting-started} お使いのサービスでプロファイリングを行うことで、すべてのスタックトレースを一つの管理画面で可視化することができます。設定方法はとても簡単です。 -### アプリケーションをインスツルメントする +### アプリケーションをインスツルメントする {#instrument-your-application} -{{< card-grid image_width="400" >}} - {{< image-card href="/profiler/enabling/?prog_lang=go" src="integrations_logos/go-metro.png" alt="go" >}} - {{< image-card href="/profiler/enabling/?prog_lang=java" src="integrations_logos/java.png" alt="Java" >}} - {{< image-card href="/profiler/enabling/?prog_lang=java&runtime=graalvm_native_image" src="integrations_logos/graalvm.png" alt="GraalVM" >}} - {{< image-card href="/profiler/enabling/?prog_lang=node_js" src="integrations_logos/nodejs.png" alt="Node.js" >}} - {{< image-card href="/profiler/enabling/?prog_lang=php" src="integrations_logos/php.png" alt="PHP" >}} - {{< image-card href="/profiler/enabling/?prog_lang=python" src="integrations_logos/python.png" alt="Python" >}} - {{< image-card href="/profiler/enabling/?prog_lang=ruby" src="integrations_logos/ruby.png" alt="Ruby" >}} - {{< image-card href="/profiler/enabling/?prog_lang=dot_net" src="integrations_logos/dotnet_text.png" alt=".NET" >}} - {{< image-card href="/profiler/enabling/?prog_lang=rust" src="integrations_logos/rust.png" alt="Rust" >}} - {{< image-card href="/profiler/enabling/?prog_lang=c" src="integrations_logos/c.png" alt="C" >}} - {{< image-card href="/profiler/enabling/?prog_lang=cpp" src="integrations_logos/cpp.png" alt="C++" >}} -{{< /card-grid >}} +{{< partial name="profiling/profiling-languages.html" >}} -## プロファイラーの使用ガイド +## プロファイラーの使用ガイド {#guide-to-using-the-profiler} [プロファイラーの概要][1]ガイドでは、パフォーマンスの問題があるサンプルサービスを例に、Continuous Profiler を使用して問題を理解し修正する方法を確認します。 -## Datadog でのプロファイラー確認 +## Datadog でのプロファイラー確認 {#explore-datadog-profiler} アプリケーションからプロファイルを Datadog に送信するための構成が完了した後は、コードのパフォーマンスに関するインサイトを確認してみましょう。 -デフォルトでは、プロファイルは 7 日間、プロファイルデータから生成されたメトリクスは 1 か月間保持されます。 +デフォルトでは、プロファイルは 8 日間、プロファイルデータから生成されたメトリクスは 1 か月間保持されます。 -{{< learning-center-callout header="Try Diagnose Code Performance Issues in the Learning Center" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/continuous-profiler-course">}} - The Datadog Learning Center is full of hands-on courses to help you learn about this topic. Enroll at no cost to investigate and improve application code performance in production with Datadog Continuous Profiler. +{{< learning-center-callout header="学習センターでコードパフォーマンスの問題を診断してみる" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/continuous-profiler-course">}} + Datadog 学習センターには、このトピックについて学ぶための実践演習コースが多数用意されています。登録は無料です。Datadog Continuous Profiler を使用して、本番環境でアプリケーションコードのパフォーマンスを調査し、改善する方法を体験してください。 {{< /learning-center-callout >}} -### プロファイルタイプ +### プロファイルタイプ {#profile-types} -対応言語ごとに収集されるプロファイルデータの種類については、[プロファイルのデータタイプ][6]を参照してください。 +対応言語ごとに収集されるプロファイルデータの種類については、[プロファイルタイプ][6] を参照してください。 -{{< img src="profiler/profile-types.png" alt="Java アプリケーションで収集されるプロファイルタイプのリスト" style="width:100%;" >}} +{{< img src="profiler/profile-types2.png" alt="Java アプリケーション用に収集されたプロファイルタイプのリスト" style="width:100%;" >}} -### タグを使用してプロファイルを検索 +### タグを使用してプロファイルを検索 {#search-profiles-by-tags} -[タグを使用してプロファイルを検索][2]します。特定のホスト、サービス、バージョン、あるいはいずれかの組み合わせなど、すべてのディメンションのデータを表示させることができます。 +[タグを使用してプロファイルを検索][2] します。特定のホスト、サービス、バージョン、あるいはいずれかの組み合わせなど、すべてのディメンションのデータを表示させることができます。 -{{< img src="profiler/search_profiles2.mp4" alt="タグによるプロファイルの検索" video=true >}} +{{< img src="profiler/search_profiles4.mp4" alt="タグを使用してプロファイルを検索" video=true >}} -### デプロイメントでの機能パフォーマンスを追跡する +### デプロイメントでの機能パフォーマンスを追跡する {#track-function-performance-over-deployments} -メソッドごとの主な CPU 使用率、スレッドごとの主なメモリ割り当て状況、バージョンごとの CPU 使用状況など、主要なプロファイリングメトリクスをサービスから取得してダッシュボードを可視化することができます。 +メソッドごとの主な CPU 使用状況、スレッドごとの主なメモリ割り当て状況、バージョンごとの CPU 使用状況など、主要なプロファイリングメトリクスをサービスから取得してダッシュボードを可視化することができます。 -{{< img src="profiler/profiling-metric-dashboard.mp4" alt="ダッシュボードにプロファイリングのメトリクスを追加。" video=true >}} +{{< img src="profiler/profiling-metric-dashboard.mp4" alt="ダッシュボードにプロファイリングメトリクスを追加します。" video=true >}} -### プロファイリングデータにトレースを接続する +### プロファイリングデータにトレースを関連付ける {#connect-traces-to-profiling-data} -[APM 分散型トレーシング][3]と Continuous Profiler の双方が有効化されたアプリケーションプロセスは自動的にリンクされるため、[Code Hotspots タブ][4]でスパン情報からプロファイリングデータを直接開き、パフォーマンスの問題に関連する特定のコード行を見つけることができます。 +[APM 分散型トレーシング][3] と Continuous Profiler の両方が有効化されたアプリケーションプロセスは自動的にリンクされるため、[プロファイルタブ][4] でスパン情報からプロファイリングデータを直接開き、パフォーマンスの問題に関連する特定のコード行を見つけることができます。 -{{< img src="profiler/code_hotspots_tab.mp4" alt="Code Hotspots タブで APM トレーススパンのプロファイリング情報を確認" video=true >}} +{{< img src="profiler/profiles_tab.png" alt="[Profiles] (プロファイル) タブに APM トレーススパンのプロファイル情報が表示されています。" >}} -### プロファイルの比較により、パフォーマンスにおける変化を発見 +### プロファイルを比較して、パフォーマンスの変化を特定 {#find-changes-in-performance-by-comparing-profiles} -異なる時間、環境、またはデプロイメントの似たようなプロファイルの比較は、パフォーマンスの問題に対する原因や解決策の把握に役立ちます。Datadog プロファイラーでは、 [比較が視覚化][5]されるため、時間枠やスコープされたタグによってなぜプロファイルが異なるか、よく理解できます。 +異なる時間、環境、またはデプロイメントの類似のプロファイルを比較すると、パフォーマンスの問題に対する原因や解決策の把握に役立ちます。Datadog プロファイラーでは [比較の視覚化][5] が提供されるため、時間枠やスコープに使用したタグによってプロファイルが異なる理由を理解できます。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/tracing/trace_collection/_index.md b/content/ja/tracing/trace_collection/_index.md index abb90247802..541e2adc5df 100644 --- a/content/ja/tracing/trace_collection/_index.md +++ b/content/ja/tracing/trace_collection/_index.md @@ -1,4 +1,7 @@ --- +algolia: + tags: + - apm automatic instrumentation aliases: - /ja/tracing/setup - /ja/tracing/send_traces/ @@ -10,86 +13,173 @@ aliases: - /ja/agent/apm/ - /ja/tracing/setup_overview/ - /ja/tracing/trace_collection/library_injection_remote -description: Datadog APM の開始 +- /ja/tracing/trace_collection/automatic_instrumentation +description: Datadog APM の利用を開始 further_reading: - link: tracing/trace_collection/compatibility tag: ドキュメント text: 互換性要件 +- link: /tracing/glossary/ + tag: ドキュメント + text: APM の用語と概念 +- link: https://www.datadoghq.com/blog/rum-apm-single-step + tag: ブログ + text: 1 つのコマンドで、Java アプリケーションのエンドツーエンドの可視性を有効化 +- link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ + tag: Architecture Center + text: Datadog Operator と Admission Controller を使用してアプリケーションをインスツルメントする title: アプリケーションインスツルメンテーション --- +## 概要 {#overview} +Datadog APM を使用した {{< tooltip glossary="アプリケーション" >}} インスツルメンテーション: -## 概要 - -Datadog APM を始めるには、次の重要なステップに従う必要があります。 - -1. Datadog Agent をインストールして構成します。 -2. アプリケーションをインスツルメントします。 +1. **SDK のセットアップ**: アプリケーションに Datadog SDK を追加します。 +2. **スパンの作成**: 監視可能性データを {{< tooltip glossary="スパンとして" >}}収集します。 -
    セットアップを簡素化しましょう!Single Step Instrumentation により、Agent のインストールとアプリケーションのインスツルメンテーションをワンステップで行うことができます。
    + スパンは、SDK が読み込まれるとすぐに自動生成されます。これは**自動インスツルメンテーション**として知られており、ほとんどのユーザーにとって十分な可視性を提供します。より詳細な制御が必要な場合は、オプションでカスタムスパンを追加できます。 -アプリケーションをインスツルメントすることで、可観測性データが Agent に送信され、その後 Datadog のバックエンドに渡されて UI に表示されます。 +**注**: これらの手順は、[Datadog Agent][5] がインストールされ、トレースを受信するように構成されていることを前提としています。 {{< img src="tracing/visualization/troubleshooting_pipeline.png" alt="APM パイプライン">}} -## インスツルメンテーションの種類 +## はじめに {#getting-started} -アプリケーションをインスツルメントするには、主に自動またはカスタムの {{< tooltip glossary="instrumentation" >}} の 2 つのアプローチがあります。 +
    +ベンダー中立のインスツルメンテーションをご希望の場合は、Datadog で OpenTelemetry を使用するための OpenTelemetry ドキュメントを参照してください。 +
    -### 自動インスツルメンテーション +### Single Step Instrumentation (推奨) {#single-step-instrumentation-recommended} -最小限の手動ステップでアプリケーションの {{< tooltip glossary="span" >}} を作成します。自動的にアプリケーションをインスツルメントするには、次のいずれかのオプションを使用できます。 +[Single Step Instrumentation][1] (SSI) は、単一のコマンドで Datadog SDK を自動的にインストールおよび構成します。自動インスツルメンテーションは、コード変更なしに、サポートされているフレームワークやライブラリからトレースを即座に収集し始めます。 -- [Single Step Instrumentation][7]: 1 行のインストールコマンドを実行して Datadog Agent をインストールし、APM を有効化し、Linux ホスト、VM、またはコンテナ上のすべてのサービスをインスツルメントします。 -- [Datadog ライブラリ][8]: アプリケーションに Datadog トレーシング ライブラリを追加します。 - -詳細は[自動インスツルメンテーション][5]を参照してください。 +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/single-step-apm/" >}}Single Step Instrumentation の利用を開始する{{< /nextlink >}} +{{< /whatsnext >}} -### カスタムインスツルメンテーション +### 手動セットアップとカスタムスパン {#manual-setup-and-custom-spans} -自動インスツルメンテーションでキャプチャされない自社コードや複雑な機能から可観測性データを取得します。カスタムでアプリケーションをインスツルメントするには、次のいずれかのオプションを使用できます。 +監視可能性のニーズが高まるにつれて、より詳細な制御とカスタマイズを追加できます。 -- [Datadog ライブラリ][9]: Datadog トレーシングライブラリを使用して、Datadog 内で可観測性を追加およびカスタマイズします。 -- [OpenTelemetry API][10]: Datadog ライブラリでの OpenTelemetry API サポートを使用して、ベンダーに依存しないコードのインスツルメンテーションを行います。 +**完全な SDK 構成制御:** SDK の動作と構成を詳細に制御する必要がある場合は、[手動管理の Datadog SDK][2] を使用します。 -詳細は[カスタムインスツルメンテーション][6]を参照してください。 +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/dd_libraries/" >}}手動管理の Datadog SDK を使用する{{< /nextlink >}} +{{< /whatsnext >}} -{{< callout url="https://www.datadoghq.com/product-preview/service-discovery/" btn_hidden="false" header="サービスディスカバリーは現在プレビュー版として提供されています">}} -サービスディスカバリーは、アプリケーション監視の現状を完全に可視化し、システム内の重大なギャップや途切れたトレースを明らかにします。 -{{< /callout >}} +**コード変更なしでカスタムスパンを作成する:** [Dynamic Instrumentation][4] を使用して、アプリケーションを再デプロイすることなく Datadog UI からカスタムスパンを作成します。 +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/dynamic_instrumentation/" >}}Dynamic Instrumentation でカスタムスパンを追加する{{< /nextlink >}} +{{< /whatsnext >}} -## APM セットアップチュートリアル +**コード内でカスタムスパンを作成する:** [コードベースのカスタムインスツルメンテーション][3] を追加して、カスタムビジネスロジックをインスツルメントしたり、スパンにアプリケーション固有のメタデータを追加したりできます。 -以下のチュートリアルでは、Datadog トレーシングライブラリを使用して、自動およびカスタムインスツルメンテーションの両方を備えたさまざまなインフラストラクチャーシナリオで、サンプルアプリケーションの分散型トレーシングをセットアップする方法を案内します。 +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/custom_instrumentation/" >}}コードベースのカスタムインスツルメンテーションでカスタムスパンを追加する{{< /nextlink >}} +{{< /whatsnext >}} -{{< whatsnext desc="言語と環境を選択してください。" >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-host" >}} Datadog Agent と同じホスト上の Python アプリケーションでトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-containers" >}} コンテナ内の Python アプリケーションと Datadog Agent でトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-container-agent-host" >}} コンテナ内の Python アプリケーションとホスト上の Agent でトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-host" >}} Datadog Agent と同じホスト上の Java アプリケーションでトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-containers" >}} コンテナ内の Java アプリケーションと Datadog Agent でトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-container-agent-host" >}} コンテナ内の Java アプリケーションとホスト上の Agent でトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-gke" >}} GKE で Java アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-eks" >}} AWS EKS で Java アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-ec2" >}} Amazon ECS with EC2 で Java アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-fargate" >}} Amazon ECS with Fargate で Java アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-admission-controller" >}} Admission Controller で Java アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-host" >}} Datadog Agent と同じホストの Go アプリケーションでトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-containers" >}} Go アプリケーションとコンテナ内の Datadog Agent でトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-ec2" >}} EC2 で Amazon ECS の Go アプリケーションのトレースを有効にする{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-fargate" >}} Fargate で Amazon ECS の Go アプリケーションのトレースを有効にする{{< /nextlink >}} +これらのオプションは組み合わせることができます。たとえば、Single Step Instrumentation から始め、特定のスパンに対しコードベースのカスタムインスツルメンテーションを追加したり、手動管理の SDK と Dynamic Instrumentation を組み合わせて、デプロイなしでスパンを追加したりすることができます。 + +## 詳細な比較 {#detailed-comparison} + +### SDK のセットアップ {#sdk-setup} + +Single Step Instrumentation は、ほとんどのユーザーに推奨される開始方法です。SDK 構成に加えて、より詳細な制御が必要な場合は、代わりに手動管理の SDK を使用できます。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Single Step Instrumentation (推奨)手動管理の SDK
    仕組みDatadog は、実行時に単一のコマンドで、アプリケーションプロセスに SDK を自動的にインストールして読み込みます。SDK をアプリケーションコードまたはビルドプロセスに直接インストールして構成します。
    コード変更不要必要
    セットアップの複雑さ低 - 最小限の設定が必要中 - 環境とビルドの設定が必要
    構成管理標準のデフォルトにオプションのオーバーライド環境変数とコードによる完全な制御
    使用するタイミングコードの変更なしでサービス全体に迅速かつ一貫したインスツルメンテーションを行うには、こちらから始めます。SDK の動作と構成を詳細に制御する必要がある場合は、こちらに進みます。
    + +### スパンのカスタマイズ {#span-customization} + +自動インスツルメンテーションは、サポートされているフレームワークやライブラリに対してスパンを自動的に作成し、追加の作業なしで重要な監視可能性を提供します。カスタムコードパスの可視性が必要な場合や、アプリケーション固有のデータでトレースを強化したい場合は、Dynamic Instrumentation またはコードベースのカスタムインスツルメンテーションを使用してカスタムスパンを追加できます。 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dynamic Instrumentationコードベースのカスタムインスツルメンテーション
    仕組みDatadog UI でインスツルメンテーションルールを設定します。ルールは実行時に適用されます。アプリケーションコードに明示的なトレース API 呼び出しを追加します。
    コード変更不要必要
    デプロイメントの必要性不要必要 (スパンを追加または変更するため)
    使用するタイミングコードの変更や再デプロイなしでカスタムスパンを追加します。複雑なインスツルメンテーションロジックが必要な場合や、スパンをコードに永続的に定義したい場合に、こちらに進みます。
    + +## APM セットアップチュートリアル{#apm-setup-tutorials} + +次のチュートリアルでは、自動インスツルメンテーションおよびカスタムインスツルメンテーションの両方を使用して、さまざまなインフラストラクチャーシナリオでサンプルアプリケーションの分散トレーシングを設定する方法を説明します。 + +{{< whatsnext desc="ご利用の言語と環境を選択してください。" >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-host" >}} Datadog Agent と同じホスト上の Python アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-containers" >}} コンテナ内の Python アプリケーションと Datadog Agent のトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-container-agent-host" >}} コンテナ内の Python アプリケーションとホスト上の Datadog Agent のトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-host" >}} Datadog Agent と同じホスト上の Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-containers" >}} コンテナ内の Java アプリケーションと Datadog Agent のトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-container-agent-host" >}} コンテナ内の Java アプリケーションとホスト上の Datadog Agent のトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-gke" >}} GKE 上の Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-eks" >}} Amazon EKS 上の Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-ec2" >}} EC2 を使用した Amazon ECS 上の Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-fargate" >}} Fargate を使用した Amazon ECS 上の Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-admission-controller" >}} Admission Controller を使用して Java アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-host" >}} Datadog Agent と同じホスト上の Go アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-containers" >}} コンテナ内の Go アプリケーションと Datadog Agent のトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-ec2" >}} EC2 を使用した Amazon ECS 上の Go アプリケーションのトレースを有効にする{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-fargate" >}} Fargate を使用した Amazon ECS 上の Go アプリケーションのトレースを有効にする{{< /nextlink >}} {{< /whatsnext >}} -## 参考資料 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: /ja/developers/community/libraries/#apm-tracing-client-libraries -[2]: /ja/tracing/trace_collection/library_injection_local/ -[4]: /ja/tracing/trace_collection/dd_libraries/ -[5]: /ja/tracing/trace_collection/automatic_instrumentation/ -[6]: /ja/tracing/trace_collection/custom_instrumentation/ -[7]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/ -[8]: /ja/tracing/trace_collection/automatic_instrumentation/dd_libraries/ -[9]: /ja/tracing/trace_collection/custom_instrumentation/dd_libraries/ -[10]: /ja/tracing/trace_collection/custom_instrumentation/otel_instrumentation/ \ No newline at end of file +[1]: /ja/tracing/trace_collection/single-step-apm/ +[2]: /ja/tracing/trace_collection/dd_libraries/ +[3]: /ja/tracing/trace_collection/custom_instrumentation/ +[4]: /ja/tracing/trace_collection/dynamic_instrumentation/ +[5]: /ja/agent/ \ No newline at end of file diff --git a/content/ja/tracing/trace_collection/trace_context_propagation/_index.md b/content/ja/tracing/trace_collection/trace_context_propagation/_index.md index 906e119f12a..09789d9c7ae 100644 --- a/content/ja/tracing/trace_collection/trace_context_propagation/_index.md +++ b/content/ja/tracing/trace_collection/trace_context_propagation/_index.md @@ -11,76 +11,85 @@ aliases: description: Datadog、B3、W3C Trace Context のヘッダーを抽出・挿入し、分散型トレーシングのコンテキストを伝搬させます。 further_reading: - link: tracing/glossary/ - tag: Documentation + tag: よくあるご質問 text: APM の用語を理解する - link: https://www.datadoghq.com/blog/monitor-otel-with-w3c-trace-context/ tag: ブログ text: W3C Trace Context に対応した OpenTelemetry インスツルメンテーションされたアプリのモニタリング - link: /opentelemetry/guide/otel_api_tracing_interoperability - tag: ドキュメント + tag: よくあるご質問 text: OpenTelemetry API と Datadog でインスツルメントされたトレースの相互運用性 -title: トレースコンテキストの伝播 +title: トレースコンテキスト伝搬 type: multi-code-lang --- - -トレースコンテキスト伝搬は、トレース ID、スパン ID、サンプリングの決定といったトレーシング情報を、分散アプリケーションのある部分から別の部分へ受け渡す仕組みです。これにより、リクエスト内のすべてのトレース (および追加のテレメトリー) が相互に関連付けられるようになります。自動インスツルメンテーションが有効な場合、APM SDK によってトレースコンテキスト伝搬は自動的に処理されます。 +トレースコンテキスト伝搬とは、分散アプリケーション内のコンポーネント間で、トレース ID、スパン ID、およびサンプリング決定などのトレース情報を渡すメカニズムです。これにより、リクエスト内のすべてのトレース (および追加のテレメトリ) を関連付けることができます。自動インスツルメンテーションが有効になっている場合、トレースコンテキスト伝搬は Datadog SDK によって自動的に処理されます。 デフォルトでは、Datadog SDK は以下の形式を用いて分散トレーシングヘッダーの抽出と注入を行います: -- [Datadog][1] (ヘッダーを抽出する際はこちらが優先されます) +- [Datadog][1] (ヘッダーを抽出する際はこちらが優先されます) - [W3C Trace Context][2] - [Baggage][10] このデフォルト設定により、以前の Datadog SDK バージョンや製品との互換性を最大限に保ちつつ、OpenTelemetry のような他の分散トレーシングシステムとの相互運用も可能になります。 -## トレースコンテキスト伝搬のカスタマイズ +## トレースコンテキスト伝搬をカスタマイズする {#customize-trace-context-propagation} 以下のようなケースでは、トレースコンテキスト伝搬の設定をカスタマイズする必要があるかもしれません: - サポートされている別の形式で分散トレーシング情報をやりとりしている - 分散トレーシングヘッダーを抽出または注入しないようにしたい -分散トレーシングヘッダーの読み取り・書き込み形式を指定するには、次の環境変数を使用します。言語固有の設定値については、[言語別サポート][6]のセクションを参照してください。 +分散トレーシングヘッダーの読み取りおよび書き込み形式を構成するには、以下の環境変数を使用してください。言語別の設定値については、[言語サポート][6] セクションを参照してください。 `DD_TRACE_PROPAGATION_STYLE` -: 抽出と注入の両方に使用するトレースコンテキスト伝搬形式をカンマ区切りで指定します。抽出専用または注入専用の設定がある場合、それらが優先されます。
    -**デフォルト**: `datadog,tracecontext`
    -**注**: 複数形式を指定した場合、抽出時は指定された順序 (例: `datadog,tracecontext`) でチェックが行われます。最初に有効と判断されたコンテキストがトレースを継続し、その後に見つかった有効なコンテキストはスパンリンクとなります。 +: 抽出および注入のためのトレースコンテキスト伝搬形式を、カンマ区切りのリストで指定します。抽出または注入の設定によって上書きされる場合があります。
    +**デフォルト**: `datadog,tracecontext,baggage`
    +**注**: 複数のトレースコンテキスト形式がある場合、抽出は指定された順序に従います (たとえば、`datadog,tracecontext` は最初に Datadog ヘッダーをチェックします)。最初の有効なコンテキストがトレースを継続し、追加の有効なコンテキストはスパンリンクになります。`baggage` が含まれている場合、既存のコンテキストに [Baggage](#baggage) として追加されます。 `OTEL_PROPAGATORS` -: 抽出と注入の両方に使用するトレースコンテキスト伝搬形式をカンマ区切りで指定します。他の Datadog のトレースコンテキスト伝搬用環境変数が設定されている場合は無視されます (優先度が最も低い)。
    -**注**: この設定は、OpenTelemetry SDK から Datadog SDK に移行する際のみ使用してください。この設定やその他の OpenTelemetry 用環境変数について詳しくは、[Datadog SDKs で OpenTelemetry の環境変数を使用する][9]を参照してください。 +: 抽出と注入の両方におけるトレースコンテキスト伝搬形式を指定します (カンマ区切りのリスト)。最も低い優先度です。他の Datadog トレースコンテキスト伝搬環境変数が設定されている場合は無視されます。
    +**注**: この設定は、アプリケーションを OpenTelemetry SDK から Datadog SDK に移行する場合にのみ使用してください。この設定やその他の OpenTelemetry 環境変数に関する詳細は、[Datadog SDK を使用した OpenTelemetry 環境変数の利用][9] を参照してください。 + +`DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT` +: サービスレベルで、受信した分散トレースヘッダーをどのように処理するかを指定します。指定可能な値は次のとおりです。
    +`continue`: 受信した分散トレースヘッダーが有効なトレースコンテキストを表している場合、SDK は分散トレースを継続します。
    +`restart`: SDK は常に新しいトレースを開始します。受信した分散トレースヘッダーが有効なトレースコンテキストを表している場合、そのトレースコンテキストはサービスエントリスパンのスパンリンクとして表現されます (`continue` 設定の親スパンとは異なります)。
    +`ignore`: SDK は常に新しいトレースを開始し、受信したすべての分散トレースヘッダーは無視されます。
    +**デフォルト**: `continue`
    +**注**: これは、.NET、Node.js、Python、および Java ライブラリでのみ実装されています。 -### 高度なコンフィギュレーション +### 高度な構成 {#advanced-configuration} -多くのサービスでは同じ形式を使ってトレースコンテキストヘッダーを送受信します。しかし、あるサービスで特定の形式のトレースコンテキストヘッダーを受け取り、別の形式で送信する必要がある場合は、以下の設定を使用できます: +ほとんどのサービスは、同じ形式を使用してトレースコンテキストヘッダーを送受信します。ただし、サービスが 1 つの形式でトレースコンテキストヘッダーを受け取り、別の形式で送信する必要がある場合は、以下の設定を使用してください。 `DD_TRACE_PROPAGATION_STYLE_EXTRACT` -: トレースコンテキスト伝搬形式のうち「抽出専用」として使用する形式をカンマ区切りで指定します。抽出用設定としては最も優先度が高くなります。 +: 抽出のみを対象としたトレースコンテキスト伝搬形式を、カンマ区切りのリストで指定します。抽出プロパゲーターを設定するための最も高い優先順位です。 `DD_TRACE_PROPAGATION_STYLE_INJECT` -: トレースコンテキスト伝搬形式のうち「注入専用」として使用する形式をカンマ区切りで指定します。注入用設定としては最も優先度が高くなります。 +: 注入のみを対象としたトレースコンテキスト伝搬形式を、カンマ区切りのリストで指定します。注入プロパゲーターを設定するための最も高い優先順位です。 -## 対応している形式 +## 対応している形式 {#supported-formats} Datadog SDK は、以下のトレースコンテキスト形式をサポートしています: -| 形式 | 設定値 | -|------------------------|-------------------------------| -| [Datadog][1] | `datadog` | -| [W3C Trace Context][2] | `tracecontext` | -| [B3 Single][3] | 言語依存の値 | -| [B3 Multi][4] | `b3multi` | -| [Baggage][10] | `baggage` | -| [None][5] | `none` | +| 形式 | 設定値 | +|------------------------|----------------------------| +| [Datadog][1] | `datadog` | +| [W3C Trace Context][2] | `tracecontext` | +| [B3 Single][3] | _言語依存の値_ | +| [B3 Multi][4] | `b3multi` | +| [Baggage][10] | `baggage`* | +| [None][5] | `none` | + +* **注**: `baggage` は Rust ではサポートされていません。 -## 言語別サポート +## 言語サポート {#language-support} {{< tabs >}} {{% tab "Java" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-1} Datadog Java SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -92,12 +101,13 @@ Datadog Java SDK は、以下のトレースコンテキスト形式をサポー | | `b3single` | | [B3 Multi][4] | `b3multi` | | | `b3` (非推奨) | +| [Baggage][7] | `baggage` | | [AWS X-Ray][5] | `xray` | | [None][6] | `none` | -### 追加構成 +### 追加の構成 {#additional-configuration} -環境変数での設定に加えて、システムプロパティを使ってプロパゲータを更新することもできます: +環境変数での設定に加えて、システムプロパティを使ってプロパゲーターを更新することもできます: - `-Ddd.trace.propagation.style=datadog,b3multi` - `-Dotel.propagators=datadog,b3multi` - `-Ddd.trace.propagation.style.inject=datadog,b3multi` @@ -109,12 +119,13 @@ Datadog Java SDK は、以下のトレースコンテキスト形式をサポー [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader [6]: #none-format +[7]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "Python" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-2} Datadog Python SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -122,22 +133,24 @@ Datadog Python SDK は、以下のトレースコンテキスト形式をサポ |------------------------|---------------------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Single][3] | `b3` | -| | `b3 single header` (非推奨) | +| | `b3 single header` (v3.0 で削除) | | [B3 Multi][4] | `b3multi` | -| [None][5] | `none` | +| [None][5] | `none` | [1]: #datadog-format [2]: https://www.w3.org/TR/trace-context/ [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "Ruby" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-3} Datadog Ruby SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -145,21 +158,22 @@ Datadog Ruby SDK は、以下のトレースコンテキスト形式をサポー |------------------------|---------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Single][3] | `b3` | | [B3 Multi][4] | `b3multi` | -| [None][5] | `none` | +| [None][5] | `none` | -### 追加構成 +### 追加の構成 {#additional-configuration-1} -環境変数での設定に加えて、コード内で Datadog.configure を使ってプロパゲータを更新することもできます: +環境変数の設定に加えて、`Datadog.configure` を使用してコード内でプロパゲーターを更新することもできます: ```ruby Datadog.configure do |c| -# 抽出に使用するヘッダー形式のリスト -c.tracing.propagation_extract_style = [ 'tracecontext', 'datadog', 'b3' ] + # List of header formats that should be extracted + c.tracing.propagation_extract_style = [ 'tracecontext', 'datadog', 'b3' ] -# 注入に使用するヘッダー形式のリスト -c.tracing.propagation_inject_style = [ 'tracecontext', 'datadog' ] + # List of header formats that should be injected + c.tracing.propagation_inject_style = [ 'tracecontext', 'datadog' ] end ``` @@ -168,12 +182,13 @@ end [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "Go" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-4} Datadog Go SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -181,22 +196,24 @@ Datadog Go SDK は、以下のトレースコンテキスト形式をサポー |------------------------|---------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Single][3] | `B3 single header` | | [B3 Multi][4] | `b3multi` | | | `b3` (非推奨) | -| [None][5] | `none` | +| [None][5] | `none` | [1]: #datadog-format [2]: https://www.w3.org/TR/trace-context/ [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "Node.js" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-5} Datadog Node.js SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -204,22 +221,24 @@ Datadog Node.js SDK は、以下のトレースコンテキスト形式をサポ |------------------------|---------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Single][3] | `B3 single header` | | [B3 Multi][4] | `b3multi` | -| | `B3` (非推奨) | -| [None][5] | `none` | +| | `B3` (非推奨) | +| [None][5] | `none` | [1]: #datadog-format [2]: https://www.w3.org/TR/trace-context/ [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "PHP" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-6} Datadog PHP SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -227,16 +246,17 @@ Datadog PHP SDK は、以下のトレースコンテキスト形式をサポー |------------------------|---------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Single][3] | `B3 single header` | | [B3 Multi][4] | `b3multi` | -| | `B3` (非推奨) | -| [None][5] | `none` | +| | `B3` (非推奨) | +| [None][5] | `none` | -### さまざまな使用例 +### さまざまな使用例 {#additional-use-cases} 以下のユースケースは、Datadog PHP SDK 特有のものです: -{{% collapse-content title="PHPスクリプト起動時の分散トレーシング" level="h4" %}} +{{% collapse-content title="PHP スクリプト起動時の分散トレーシング" level="h4" %}} 新しい PHP スクリプトが起動されると、Datadog SDK は分散トレーシング用の Datadog ヘッダーが存在するかどうかを自動的にチェックします。 - `x-datadog-trace-id` (環境変数: `HTTP_X_DATADOG_TRACE_ID`) @@ -248,7 +268,7 @@ Datadog PHP SDK は、以下のトレースコンテキスト形式をサポー {{% collapse-content title="分散トレーシングコンテキストを手動で設定する" level="h4" %}} -新規または既存のトレースに対して CLI スクリプトでトレース情報を手動設定するには、`DDTrace\set_distributed_tracing_context(string $trace_id, string $parent_id, ?string $origin = null, ?array $tags = null)` 関数を使用します。 +新しいトレースまたは既存のトレースに対して CLI スクリプトでトレーシング情報を手動で設定するには、`DDTrace\set_distributed_tracing_context(string $trace_id, string $parent_id, ?string $origin = null, ?array $tags = null)` 関数を使用してください。 ```php "1234567890", - "x-datadog-parent-id" => "987654321", + "x-datadog-trace-id" => "1234567890", + "x-datadog-parent-id" => "987654321", ]; \DDTrace\consume_distributed_tracing_headers($headers); ``` -トレースコンテキストをヘッダーとして直接取得するには、`DDTrace\generate_distributed_tracing_headers(?array $inject = null): array` 関数を使用します。 +トレースコンテキストをヘッダーとして直接抽出するには、`DDTrace\generate_distributed_tracing_headers(?array $inject = null): array` 関数を使用してください。 ```php $headers = DDTrace\generate_distributed_tracing_headers(); -// ヘッダーをどこかに保存し、アウトバウンドリクエストに挿入し、... -// また、これらの $headers は、他のプロセスから \DDTrace\consume_distributed_tracing_headers によって読み返すことができます。 +// Store headers somewhere, inject them in an outbound request, ... +// These $headers can also be read back by \DDTrace\consume_distributed_tracing_headers from another process. ``` - -この関数のオプション引数には、インジェクションスタイル名の配列を指定できます。デフォルトでは設定済みのインジェクションスタイルが使われます。 +この関数のオプション引数は、注入スタイル名の配列を受け取ります。デフォルトでは、設定された注入スタイルが使用されます。 {{% /collapse-content %}} {{% collapse-content title="RabbitMQ" level="h4" %}} -PHP APM SDK は `php-amqplib/php-amqplib` ライブラリ (バージョン 0.87.0+) の自動トレースをサポートしています。ただし、場合によっては分散トレースが途切れてしまうことがあります。たとえば、既存のトレースの外部で `basic_get` メソッドを使用して分散キューからメッセージを受信する場合、`basic_get` の呼び出しと該当するメッセージ処理部分をカスタムトレースで囲む必要があります。 +PHP SDK は、`php-amqplib/php-amqplib` ライブラリ (バージョン 0.87.0 以上) の自動トレースをサポートしています。ただし、場合によっては分散トレースが途切れることがあります。たとえば、既存のトレースの外で `basic_get` メソッドを使用して分散キューからメッセージを読み取る場合、`basic_get` 呼び出しと、それに対応するメッセージ処理の周りにカスタムトレースを追加する必要があります。 ```php -// 囲むトレースを作成します +// Create a surrounding trace $newTrace = \DDTrace\start_trace_span(); $newTrace->name = 'basic_get.process'; $newTrace->service = 'amqp'; -// basic_get call(s) + message(s) 処理 +// basic_get call(s) + message(s) processing $msg = $channel->basic_get($queue); if ($msg) { $messageProcessing($msg); } -// 完了したら、スパンを閉じます +// Once done, close the span \DDTrace\close_span(); ``` @@ -320,12 +339,13 @@ if ($msg) { [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab "C++" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-7} Datadog C++ SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -333,53 +353,54 @@ Datadog C++ SDK は、以下のトレースコンテキスト形式をサポー |------------------------|---------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][6] | `baggage` | | [B3 Multi][4] | `b3` | | | `b3multi` | -| [None][5] | `none` | +| [None][5] | `none` | -### 追加構成 +### 追加の構成 {#additional-configuration-2} -環境変数での設定に加えて、コード内でもプロパゲータを更新できます: +環境変数での設定に加えて、コード内でもプロパゲーターを更新できます: -"```cpp +```cpp #include #include namespace dd = datadog::tracing; int main() { -dd::TracerConfig config; -config.service = "my-service"; - -// `injection_styles` はトレースコンテキストの注入 (送信) 時に、 -// どのトレーシングシステムとの互換性を持たせるかを指定します。 -// ここに指定されたすべてのスタイルが注入に使用されます。 -// `injection_styles` は環境変数 `DD_TRACE_PROPAGATION_STYLE_INJECT` および -// `DD_TRACE_PROPAGATION_STYLE` によって上書きされます。 -config.injection_styles = {dd::PropagationStyle::DATADOG, dd::PropagationStyle::B3}; - -// `extraction_styles` はトレースコンテキストの抽出 (受信) 時に、 -// どのトレーシングシステムとの互換性を持たせるかを指定します。 -// `extraction_styles` に並んだ順番で抽出が試行されます。 -// 最初に有効なコンテキストが見つかるかエラーが発生した時点で -// 抽出結果が決まります。 -// `extraction_styles` は環境変数 -// `DD_TRACE_PROPAGATION_STYLE_EXTRACT` および -// `DD_TRACE_PROPAGATION_STYLE` によって上書きされます。 -config.extraction_styles = {dd::PropagationStyle::W3C}; - -... + dd::TracerConfig config; + config.service = "my-service"; + + // `injection_styles` indicates with which tracing systems trace propagation + // will be compatible when injecting (sending) trace context. + // All styles indicated by `injection_styles` are used for injection. + // `injection_styles` is overridden by the `DD_TRACE_PROPAGATION_STYLE_INJECT` + // and `DD_TRACE_PROPAGATION_STYLE` environment variables. + config.injection_styles = {dd::PropagationStyle::DATADOG, dd::PropagationStyle::B3}; + + // `extraction_styles` indicates with which tracing systems trace propagation + // will be compatible when extracting (receiving) trace context. + // Extraction styles are applied in the order in which they appear in + // `extraction_styles`. The first style that produces trace context or + // produces an error determines the result of extraction. + // `extraction_styles` is overridden by the + // `DD_TRACE_PROPAGATION_STYLE_EXTRACT` and `DD_TRACE_PROPAGATION_STYLE` + // environment variables. + config.extraction_styles = {dd::PropagationStyle::W3C}; + + ... } -```" +``` -### さまざまな使用例 +### さまざまな使用例 {#additional-use-cases-1} -{{% collapse-content title="プロパゲートされたコンテキストを手動で抽出する" level="h4" %}} +{{% collapse-content title="伝播されたコンテキストを手動で抽出する" level="h4" %}} -プロパゲーションコンテキストを抽出するには、カスタムの `DictReader` インターフェイスを実装し、`Tracer::extract_span` または `Tracer::extract_or_create_span` を呼び出します。 +伝播コンテキストを抽出するには、カスタム `DictReader` インターフェイスを実装し、`Tracer::extract_span` または `Tracer::extract_or_create_span` を呼び出します。 以下は、HTTP ヘッダーからプロパゲーションコンテキストを抽出するサンプルです: -"```cpp +```cpp #include #include #include @@ -389,48 +410,47 @@ config.extraction_styles = {dd::PropagationStyle::W3C}; namespace dd = datadog::tracing; class HTTPHeadersReader : public datadog::tracing::DictReader { -std::unordered_map headers_; + std::unordered_map headers_; public: -HTTPHeadersReader(std::unordered_map headers) -: headers_(std::move(headers)) {} - -~HTTPHeadersReader() override = default; - -// 指定された `key` に対応する値を返します。 -// 値がない場合は `nullopt` を返します。 -dd::Optional lookup(dd::StringView key) const override { -auto found = headers_.find(key); -if (found == headers_.cend()) return dd::nullopt; - -return found->second; -} - -// このオブジェクトに含まれるすべてのキー/値の組に対して、 -// 指定された `visitor` を呼び出します。 -void visit( -const std::function& visitor) -const override { -for (const auto& [key, value] : headers_) { -visitor(key, value); -} -}; + HTTPHeadersReader(std::unordered_map headers) + : headers_(std::move(headers)) {} + + ~HTTPHeadersReader() override = default; + + // Return the value at the specified `key`, or return `nullopt` if there + // is no value at `key`. + dd::Optional lookup(dd::StringView key) const override { + auto found = headers_.find(key); + if (found == headers_.cend()) return dd::nullopt; + + return found->second; + } + + // Invoke the specified `visitor` once for each key/value pair in this object. + void visit( + const std::function& visitor) + const override { + for (const auto& [key, value] : headers_) { + visitor(key, value); + } + }; }; -// 使用例: +// Usage example: void handle_http_request(const Request& request, datadog::tracing::Tracer& tracer) { -HTTPHeadersReader reader{request.headers}; -auto maybe_span = tracer.extract_span(reader); -.. + HTTPHeadersReader reader{request.headers}; + auto maybe_span = tracer.extract_span(reader); + .. } -```" +``` {{% /collapse-content %}} -{{% collapse-content title="分散トレーシング用コンテキストを手動で注入する" level="h4" %}} +{{% collapse-content title="分散トレース用のコンテキストを手動で注入する" level="h4" %}} -プロパゲーションコンテキストを注入するには、DictWriter インターフェイスを実装し、スパンインスタンスに対して Span::inject を呼び出します。 +伝播コンテキストを注入するには、`DictWriter` インターフェイスを実装し、スパンインスタンスに対して `Span::inject` を呼び出します。 -"```cpp +```cpp #include #include @@ -440,28 +460,28 @@ auto maybe_span = tracer.extract_span(reader); using namespace dd = datadog::tracing; class HTTPHeaderWriter : public dd::DictWriter { -std::unordered_map& headers_; + std::unordered_map& headers_; public: -explicit HTTPHeaderWriter(std::unordered_map& headers): headers_(headers) {} + explicit HTTPHeaderWriter(std::unordered_map& headers) : headers_(headers) {} -~HTTPHeaderWriter() override = default; + ~HTTPHeaderWriter() override = default; -void set(dd::StringView key, dd::StringView value) override { -headers_.emplace(key, value); -} + void set(dd::StringView key, dd::StringView value) override { + headers_.emplace(key, value); + } }; -// 使用例: +// Usage example: void handle_http_request(const Request& request, dd::Tracer& tracer) { -auto span = tracer.create_span(); + auto span = tracer.create_span(); -HTTPHeaderWriter writer(request.headers); -span.inject(writer); -// これで `request.headers` にスパンを伝搬するために必要なヘッダーが設定されます。 -.. + HTTPHeaderWriter writer(request.headers); + span.inject(writer); + // `request.headers` now populated with the headers needed to propagate the span. + .. } -```" +``` {{% /collapse-content %}} [1]: #datadog-format @@ -469,12 +489,13 @@ span.inject(writer); [3]: https://github.com/openzipkin/b3-propagation#single-header [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format +[6]: https://www.w3.org/TR/baggage/ {{% /tab %}} {{% tab ".NET" %}} -### 対応している形式 +### 対応している形式 {#supported-formats-8} Datadog .NET SDK は、以下のトレースコンテキスト形式をサポートしています (非推奨の設定値も含む): @@ -482,6 +503,7 @@ Datadog .NET SDK は、以下のトレースコンテキスト形式をサポー |------------------------|-------------------------------| | [Datadog][1] | `datadog` | | [W3C Trace Context][2] | `tracecontext` | +| [Baggage][9] | `baggage` | | | `W3C` (非推奨) | | [B3 Single][3] | `B3 single header` | | | `B3SingleHeader` (非推奨) | @@ -489,20 +511,20 @@ Datadog .NET SDK は、以下のトレースコンテキスト形式をサポー | | `B3` (非推奨) | | [None][5] | `none` | -### さまざまな使用例 +### さまざまな使用例 {#additional-use-cases-2} -{{% collapse-content title="従来の設定デフォルト" level="h4" %}} +{{% collapse-content title="以前の構成におけるデフォルト設定" level="h4" %}} -- [2.48.0][6] 以降のバージョンでは、デフォルトのプロパゲーションスタイルは `datadog, tracecontext` です。これは、Datadog ヘッダーを先に使用し、その後に W3C Trace Context を使用することを意味します。 -- バージョン 2.48.0 より前は、抽出と注入の両方で `tracecontext, Datadog` の順序が用いられていました。 -- [2.22.0][7] より前のバージョンでは、`Datadog` のみが注入スタイルとして有効でした。 -- [2.42.0][8] 以降では、複数の抽出スタイルを指定した場合に `DD_TRACE_PROPAGATION_EXTRACT_FIRST=true` を設定すると、有効な `tracecontext` が最初に検出された時点で抽出を即座に終了するよう制御できます。デフォルト値は `false` です。 +- バージョン [2.48.0][6] 以降、デフォルトの伝播スタイルは `datadog, tracecontext` です。これは、Datadog ヘッダーが優先的に使用され、次に W3C Trace Context が使用されることを意味します。 +- バージョン 2.48.0 より前は、抽出および注入の両方で `tracecontext, Datadog` の順序が用いられていました。 +- バージョン [2.22.0][7] より前のバージョンでは、`Datadog` の注入スタイルのみが有効でした。 +- バージョン [2.42.0][8] 以降、複数のエクストラクターが指定されている場合、`DD_TRACE_PROPAGATION_EXTRACT_FIRST=true` 設定は、最初の有効な `tracecontext` を検出した際にコンテキスト抽出を直ちに終了するかどうかを指定します。デフォルト値は `false` です。 {{% /collapse-content %}} {{% collapse-content title="メッセージキューを使用した分散トレーシング" level="h4" %}} -多くの場合、ヘッダーの抽出と注入は自動的に行われます。しかし、いくつかのケースでは分散トレースが切断される可能性があります。たとえば、分散キューからメッセージを読み込む場合に、一部のライブラリがスパンコンテキストを失ってしまうことがあります。また、Kafka メッセージを取得するときに `DD_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED` を `false` に設定している場合も同様です。こうしたケースでは、以下のコード例のようにカスタムトレースを追加できます。 +ほとんどの場合、ヘッダーの抽出および注入は自動的に行われます。ただし、分散トレースが切断される既知のケースがいくつか存在します。たとえば、分散キューからメッセージを読み取る際、一部のライブラリではスパンコンテキストが失われる可能性があります。Kafka メッセージを消費する際に `DD_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED` を `false` に設定した場合にも、同様のことが発生します。これらのケースでは、以下のコードを使用してカスタムトレースを追加できます。 ```csharp var spanContextExtractor = new SpanContextExtractor(); @@ -511,7 +533,7 @@ var spanCreationSettings = new SpanCreationSettings() { Parent = parentContext } using var scope = Tracer.Instance.StartActive("operation", spanCreationSettings); ``` -`GetHeaderValues` メソッドを提供します。このメソッドの実装方法は、`SpanContext` を保持する構造に依存します。 +`GetHeaderValues` メソッドを提供します。このメソッドの実装方法は、`SpanContext` を保持する構造体によって異なります。 以下はその例です。 @@ -527,7 +549,7 @@ IEnumerable GetHeaderValues(Headers headers, string name) } catch (Exception) { - // 無視 + // ignored } } @@ -548,8 +570,8 @@ IEnumerable GetHeaderValues(IDictionary headers, string // SQS public static IEnumerable GetHeaderValues(IDictionary headers, string name) { - // SQS の場合、メッセージ属性ヘッダーは最大 10 個なので、 - // Datadog のヘッダーは以下のプロパティを持つ 1 つのヘッダーに統合されます。 + // For SQS, there are a maximum of 10 message attribute headers, + // so the Datadog headers are combined into one header with the following properties: // - Key: "_datadog" // - Value: MessageAttributeValue object // - DataType: "String" @@ -567,9 +589,9 @@ public static IEnumerable GetHeaderValues(IDictionaryDatadog Rust SDK は現在プレビュー版です。 + +Datadog Rust SDK は、OpenTelemetry (OTel) SDK をベースに構築されています。 + +トレースコンテキスト伝搬は OTel SDK によって処理されます。この SDK は `datadog-opentelemetry` によって設定され、`datadog` および `tracecontext` (W3C) 形式の両方をサポートしています。 + +### 対応している形式 {#supported-formats-9} + +| 形式 | 設定値 | +|---|---| +| [Datadog][1] | `datadog` | +| [W3C Trace Context][2] | `tracecontext` | + +### 構成 {#configuration} + +`DD_TRACE_PROPAGATION_STYLE` 環境変数を設定することで、使用する伝播形式を制御できます。カンマ区切りでリストを提供することも可能です。 + +たとえば、以下のとおりです。 + +```bash +# To support both W3C and Datadog +export DD_TRACE_PROPAGATION_STYLE="tracecontext,datadog" +``` +### 手動での注入と抽出 {#manual-injection-and-extraction} + +Rust には自動インスツルメンテーション機能がないため、リモート呼び出し (HTTP リクエストなど) を送受信する際には、手動でコンテキストを伝播させる必要があります。 +- `HeaderExtractor`で、受信リクエストヘッダーから親コンテキストを**抽出**します。 +- `HeaderInjector`で、現在のコンテキストを送信リクエストヘッダーに**注入**します。 + +まず、`opentelemetry-http` を `Cargo.toml` に追加します。 + +```toml +[dependencies] +# Provides HeaderInjector and HeaderExtractor +# Ensure this version matches your other opentelemetry dependencies +opentelemetry-http = "0.31" + +# Only required for the Hyper examples below +http-body-util = "0.1" +``` + +
    バージョン競合を避けるため、 opentelemetry-http には他の OpenTelemetry 依存関係と同じクレートバージョンを使用してください。
    + +### コンテキストの注入 (クライアント側) {#injecting-context-client-side} + +HTTP リクエストを行う際 (たとえば、`hyper` 1.0 を使用する場合)、`HeaderInjector` を使用して現在のスパンコンテキストをリクエストヘッダーに注入します。 + +```rust +use opentelemetry::{global, Context}; +use opentelemetry_http::HeaderInjector; +use hyper::Request; +use http_body_util::Empty; +use hyper::body::Bytes; + +// HYPER example +fn build_outbound_request(url: &str) -> http::Result>> { + let cx = Context::current(); + + // Build the request and inject headers in-place + let mut builder = Request::builder().method("GET").uri(url); + global::get_text_map_propagator(|prop| { + prop.inject_context(&cx, &mut HeaderInjector(builder.headers_mut().unwrap())) + }); + + builder.body(Empty::::new()) +} +``` + +### コンテキストの抽出 (サーバー側) {#extracting-context-server-side} + +HTTP リクエストを受信する際、`HeaderExtractor` を使用してヘッダーからトレースコンテキストを抽出します。 + +非同期ランタイム (Tokio など) を使用する場合、抽出したコンテキストを Future に添付する必要があります。これにより、非同期タスクチェーンを通じてコンテキストが正しく伝播されます。 + +```rust +use opentelemetry::{ + global, + trace::{Span, FutureExt, SpanKind, Tracer}, + Context, +}; +use opentelemetry_http::HeaderExtractor; +use hyper::{Request, Response}; +use hyper::body::Incoming; +use http_body_util::Full; +use hyper::body::Bytes; + +// Utility function to extract context from a hyper request +fn extract_context(req: &Request) -> Context { + global::get_text_map_propagator(|propagator| { + propagator.extract(&HeaderExtractor(req.headers())) + }) +} + +// A placeholder for your actual request handling logic +async fn your_handler_logic() -> Response> { + // ... your logic ... + Response::new(Full::new(Bytes::from("Hello, World!"))) +} + +// HYPER example +async fn hyper_handler(req: Request) -> Response> { + // Extract the parent context from the incoming headers + let parent_cx = extract_context(&req); + + let tracer = global::tracer("my-server-component"); + + // Start the server span as a child of the extracted context + let server_span = tracer + .span_builder("http.server.request") + .with_kind(SpanKind::Server) + .start_with_context(tracer, &parent_cx); + + // Create a new context with the new server span + // This is critical for async propagation + let cx = parent_cx.with_span(server_span); + + // Attach the new context to the future using .with_context(cx) + // This makes the span active for the duration of the handler + your_handler_logic().with_context(cx).await +} +``` + +[1]: #datadog-format +[2]: https://www.w3.org/TR/trace-context/ {{% /tab %}} {{< /tabs >}} -## カスタムヘッダー形式 +## カスタムヘッダー形式 {#custom-header-formats} -### Datadog 形式 +### Datadog 形式 {#datadog-format} Datadog SDK が抽出または注入 (あるいはその両方) で Datadog 形式を使用するように設定されている場合、Datadog SDK は以下のリクエストヘッダーを処理します: `x-datadog-trace-id` -: 128 ビットのトレース ID の下位 64 ビットを 10 進数で指定します。 +: 128 ビットのトレース ID の下位 64 ビットを、10 進数形式で指定します。 `x-datadog-parent-id` -: 現在のスパンに対応する 64 ビットのスパン ID を 10 進数で指定します。 +: 現在のスパンに対応する 64 ビットのスパン ID を、10 進数形式で指定します。 `x-datadog-origin` -: トレースを開始した Datadog 製品 ([Real User Monitoring][7] や [Synthetic Monitoring][8] など) を示します。このヘッダーが存在する場合、値は `rum`、`synthetics`、`synthetics-browser` のいずれかである必要があります。 +: トレースを開始した Datadog 製品を指定します。たとえば、[Real User Monitoring][7] や [Synthetic Monitoring][8] があります。このヘッダーが存在する場合、その値は : `rum`、`synthetics`、`synthetics-browser` のいずれかであることが期待されます。 `x-datadog-sampling-priority` -: 表示されているスパンのサンプリング決定を 10 進数の整数で指定します。 +: 表示されるスパンに対するサンプリング決定を、10 進数の整数で指定します。 `x-datadog-tags` -: 128 ビットのトレースID の上位 64 ビット (16 進数表現) など、Datadog トレースの追加情報を指定します。 - -### None 形式 +: 128 ビットのトレース ID の上位 64 ビット (16 進数表現) など、Datadog トレースの追加情報を指定します。 -Datadog SDK が抽出または注入 (あるいはその両方) で None 形式を使用するように設定されている場合、Datadog SDK はリクエストヘッダーとやり取りを行いません。つまり、対応するコンテキスト伝搬処理は何もしません。 +### None 形式 {#none-format} -### Baggage +Datadog SDK が抽出または注入 (あるいはその両方) で None 形式を使用するように設定されている場合、Datadog SDK はリクエストヘッダーとやりとりを_行いません_。つまり、対応するコンテキスト伝搬処理は何もしません。 -現時点では Python、Node.js、.NET で利用可能です。他の言語については[サポート][11]までお問い合わせください。 +### Baggage {#baggage} デフォルトでは、Baggage は OpenTelemetry の [W3C 互換ヘッダー][10] を使用して分散リクエスト全体で自動的に伝搬されます。Baggage を無効化するには、[DD_TRACE_PROPAGATION_STYLE][12] を `datadog,tracecontext` に設定してください。 -## 参考資料 +#### Baggage をスパンタグとして追加する {#adding-baggage-as-span-tags} + +デフォルトでは、`user.id,session.id,account.id` の Baggage キーはスパンタグとして追加されます。この設定をカスタマイズするには、[コンテキスト伝播設定][13] を参照してください。指定された Baggage キーは自動的にスパンタグ `baggage.` として追加されます (たとえば、`baggage.user.id`)。 + +Baggage をスパンタグとしてサポートする機能は、以下のリリースで導入されました: + +| 言語 | 最小 SDK バージョン | +|-----------|---------------------------------------------| +| Java | 1.52.0 | +| Python | 3.7.0 | +| Ruby | 2.20.0 | +| Go | 2.2.2 | +| .NET | 3.23.0 | +| Node | 5.54.0 | +| PHP | 1.10.0 | +| C++/Proxy | 1.9.0 (Nginx)。他のプロキシはサポートされていません。| +| Rust | サポートされていません | + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -644,9 +812,10 @@ Datadog SDK が抽出または注入 (あるいはその両方) で None 形式 [4]: https://github.com/openzipkin/b3-propagation#multiple-headers [5]: #none-format [6]: #language-support -[7]: /ja/real_user_monitoring/platform/connect_rum_and_traces +[7]: /ja/real_user_monitoring/correlate_with_other_telemetry/apm [8]: /ja/synthetics/platform/apm [9]: /ja/opentelemetry/interoperability/environment_variable_support [10]: https://www.w3.org/TR/baggage/ [11]: /ja/help -[12]: #customize-trace-context-propagation \ No newline at end of file +[12]: #customize-trace-context-propagation +[13]: /ja/tracing/trace_collection/library_config#context-propagation \ No newline at end of file diff --git a/content/ja/tracing/trace_explorer/query_syntax.md b/content/ja/tracing/trace_explorer/query_syntax.md index e5452b006ef..8357f02bfce 100644 --- a/content/ja/tracing/trace_explorer/query_syntax.md +++ b/content/ja/tracing/trace_explorer/query_syntax.md @@ -20,52 +20,51 @@ aliases: description: タグを使用したすべてのトレースのグローバル検索 further_reading: - link: /getting_started/search/ - tag: ドキュメント - text: Datadog で検索を始める + tag: よくあるご質問 + text: Datadog での検索の開始 - link: /tracing/trace_collection/ - tag: ドキュメント - text: アプリケーションで APM トレースをセットアップする方法 + tag: よくあるご質問 + text: アプリケーションで APM トレーシングをセットアップする方法 - link: /tracing/trace_explorer/trace_view/ - tag: ドキュメント - text: Datadog トレースの読み方を理解する + tag: よくあるご質問 + text: Datadog トレースの読み取り方を理解する - link: /tracing/software_catalog/ - tag: ドキュメント - text: Datadog に送信しているサービスを検出してカタログ化する + tag: よくあるご質問 + text: Datadog に報告するサービスの発見とカタログ化 - link: /tracing/services/service_page/ - tag: ドキュメント + tag: よくあるご質問 text: Datadog のサービスについて - link: /tracing/services/resource_page/ - tag: ドキュメント + tag: よくあるご質問 text: リソースのパフォーマンスとトレースの詳細 title: 検索構文 --- - -## 検索クエリ +## 検索クエリ {#search-query} すべての検索パラメーターは、ページの URL に含まれているので、ビューを共有するのに便利です。 -### 検索構文 +### 検索構文 {#search-syntax} クエリは*条件*と*演算子*で構成されます。 *条件*には 2 種類あります。 -* **Span 属性**: アプリケーション内で自動または手動のインスツルメントによって収集されたスパンの内容を指します。 -* **Span タグ**: スパンに関連するコンテキスト情報を拡張するためのタグです。例えば、サービスが稼働しているインフラストラクチャーを示すホストやコンテナタグなどが含まれます。 - +* **スパン属性**: アプリケーション内で自動または手動のインスツルメントによって収集されたスパンの内容を指します。 +* **スパンタグ**: スパンに関連するコンテキストを拡張するためのタグです。たとえば、サービスが稼働しているインフラストラクチャーを示すホストやコンテナタグなどが含まれます。 + 複合クエリで複数の*条件*を組み合わせるには、以下のブール演算子のいずれかを使用します。 | **演算子** | **説明** | **例** | |:-------------|:-------------------------------------------------------------------------------------------------------|:-----------------------------| -| `AND` | **積**: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルトで採用されます)。 | authentication AND failure | -| `OR` | **和**: いずれかの条件を含むイベントが選択されます。 | authentication OR password | -| `-` | **排他**: 後続の条件はイベントに含まれません。 | authentication AND -password | +| `AND` | **積**: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルト) | 認証 AND 失敗| +| `OR` | **和**: いずれかの条件を含むイベントが選択されます。 | 認証 OR パスワード | +| `-` | **排他**: 指定した条件を含まないイベントが選択されます | 認証 AND パスワード | -### Attribute 検索 +### 属性検索 {#attribute-search} スパン属性を検索するには、属性キーの先頭に `@` を追加する必要があります。 -例えば、以下の属性を持つスパンにアクセスしたい場合は、次のクエリを使用します: +たとえば、以下の属性を持つスパンにアクセスしたい場合は、次のクエリを使用します。 `@git.commit.sha:12345` @@ -80,63 +79,63 @@ title: 検索構文 } ``` -スパン属性はトレース サイド パネルの **Overview** タブに表示されます。 +スパン属性はトレースサイドパネルの [**Overview**] (概要) タブに表示されます。 -**注:** [予約属性][17] (`env`, `operation_name`, `resource_name`, `service`, `status`, `span_id`, `timestamp`, `trace_id`, `type`, `link`) については、属性キーの先頭に `@` を付ける必要はありません。 +**注:** [予約属性][17] (`env`、`operation_name`、`resource_name`、`service`、`status`、`span_id`、`timestamp`、`trace_id`、`type`、`link`) については、`@` を使用する必要はありません。 -### タグ検索 +### タグ検索 {#tags-search} スパンは、それらを生成するホストやインテグレーションからタグを継承します。 -例: +たとえば、次のとおりです。 -| Query | 一致 | +| クエリ | 一致 | |:-------------------------------------------------------------|:--------------------------------------------------------------------------------------------------| -| `(hostname:web-server OR env:prod)` | インフラストラクチャー タグ `hostname:web-server` または予約済み属性 `env:prod` が付与されたすべてのトレース | -| `(availability-zone:us-east OR container_name:api-frontend)` | これらのインフラストラクチャー タグのいずれかが付与されたすべてのトレース | +| `(hostname:web-server OR env:prod)` | インフラストラクチャータグ `hostname:web-server` または予約済み属性 `env:prod` | が付与されたすべてのトレース +| `(availability-zone:us-east OR container_name:api-frontend)` | これらのインフラストラクチャータグのいずれかが付与されたすべてのトレース| | `(service:api AND -kube_deployment:canary)` | `api` サービスで、`canary` デプロイメントにデプロイされていないすべてのトレース | -スパン タグはトレース サイド パネルの **Infrastructure** タブに表示されます。 +スパンタグはトレースサイドパネルの [**Infrastructure**] (インフラストラクチャー) タブに表示されます。 -#### 標準外のタグ形式 +#### 標準外のタグ形式 {#non-standard-tag-formats} -もしタグが[タグ運用ベストプラクティス][2]に従っていない場合、`key:value` 形式は使用せず、以下のような検索クエリを利用してください: +タグが [タグのベストプラクティス][2] に従っていない場合は、`key:value` 構文を使用しないでください。代わりに、次の検索クエリを使用してください。 `tags:` -例として、次のタグはベスト プラクティスに従っていません: +たとえば、次のタグはベストプラクティスに従っていません: `auto-discovery.cluster-autoscaler.k8s.io/daffy` -このタグを検索するには、次のクエリを使用します: +このタグを検索するには、次のクエリを使用します: `tags:"auto-discovery.cluster-autoscaler.k8s.io/daffy"` -### ワイルドカード +### ワイルドカード {#wildcards} 複数文字のワイルドカード検索を実行するには、`*` 記号を次のように使用します。 -* `service:web*` は、`web` で始まるサービスを持つすべてのトレースに一致します +* `service:web*` は、`web` で始まるサービスを持つすべてのトレースに一致します。 * `@url:data*` は、`data` で始まる `url` を持つすべてのトレースに一致します。 -### 数値 +### 数値 {#numerical-values} -`<`、`>`、`<=`、または `>=` を使用して、数値属性の検索を実行します。たとえば、100ms を超える応答時間を持つすべてのトレースを取得するには、次のようにします。 +数値属性の検索を実行するには、`<`、`>`、`<=`、または `>=` を使用します。たとえば、応答時間が 100ms を超えるすべてのトレースを取得するには、次のように指定します。 -`@http.response_time:>100` +`@http.response_time:>100` -特定の範囲内にある数値属性を検索することもできます。たとえば、4xx エラーをすべて取得するには、次のようにします。 +特定の範囲内にある数値属性を検索することもできます。たとえば、すべての 4xx エラーを取得するには、次のように指定します。 `@http.status_code:[400 TO 499]` -### オートコンプリート +### オートコンプリート {#autocomplete} -複雑なクエリを入力するのは面倒です。検索バーのオートコンプリート機能を使用すると、既存の値を使用してクエリを完成させることができます。 +複雑なクエリを入力するには手間がかかることがあります。検索バーのオートコンプリート機能を使用すると、既存の値を使用してクエリを完成させることができます。 -{{< img src="tracing/app_analytics/search/search_bar_autocomplete.png" alt="検索バーのオートコンプリート" style="width:60%;">}} +{{< img src="tracing/app_analytics/search/search_bar_autocomplete.png" alt="検索バーのオートコンプリート " style="width:60%;">}} -### 特殊文字のエスケープ +### 特殊文字のエスケープ {#escaping-of-special-characters} -`?`、`>`、`<`、`:`、`=`、`"`、`~`、`/`、および `\` は特殊属性と見なされ、`\` を使用してエスケープする必要があります。 -たとえば、`url` に `user=JaneDoe` を含むトレースを検索するには、次の検索を入力する必要があります。 +`?`、`>`、`<`、`:`、`=`、`"`、`~`、`/`、および `\` は特殊属性と見なされ、エスケープする必要があります。 +たとえば、`url` に `user=JaneDoe` を含むトレースを検索するには、次の検索条件を入力する必要があります。 `@url:*user\=JaneDoe*` @@ -145,54 +144,54 @@ title: 検索構文 `@user.first\ name:myvalue` -### 検索の保存 +### 保存された検索 {#saved-searches} -同じビューを毎日作成するのは時間の無駄です。保存された検索には、検索クエリ、列、期間が含まれます。検索名やクエリにかかわらず、オートコンプリートの一致により、これは検索バーで利用できます。 +同じビューを毎日作成するのは時間を無駄にすることはありません。保存された検索には、使用した検索クエリ、列、期間が保存されます。検索名やクエリにかかわらず、これらの情報がオートコンプリート機能によって検出され、検索バーで使用できるようになります。 {{< img src="tracing/app_analytics/search/saved_search.png" alt="保存された検索" style="width:80%;">}} -保存された検索を削除するには、Trace search ドロップダウンメニューの下にあるごみ箱のアイコンをクリックします。 +保存された検索を削除するには、[トレース検索] ドロップダウンメニューの下にあるごみ箱のアイコンをクリックします。 -### サービスおよびエンティティの検索 +### サービスおよびエンティティの検索 {#search-for-services-and-entities} {{< site-region region="ap1,ap2,us3,us5,eu,us" >}} -サービスを検索するには、`service` 属性を使用します。別の [エンティティ タイプ][20] (たとえば、データベース、キュー、サード パーティ プロバイダーなど) を検索する場合は、Datadog が APM でインスツルメントされていない依存関係を表すために使用するその他の [ピア属性][21] を利用します。たとえば、Postgres データベースの `users` テーブルへの呼び出しを表すスパンを見つけるには、次のクエリを使用します: `@peer.db.name:users @peer.db.system:postgres` +サービスを検索するには、`service` 属性を使用します。別の [エンティティタイプ][20] (たとえば、データベース、キュー、サードパーティプロバイダーなど) を検索する場合は、Datadog が APM でインスツルメントされていない依存関係を表すために使用するその他の [ピア属性][21] を利用します。たとえば、Postgres データベースの `users` テーブルへの呼び出しを表すスパンを見つけるには、次のクエリを使用します: `@peer.db.name:users @peer.db.system:postgres` -**注**: [グローバルサービスネーミング][22]へ移行し、`DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true` を設定している場合、スパンの `service` タグはそのスパンを**発行している**サービスを表します。 +**注**: [グローバルサービスネーミング][22] へ移行し、`DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true` を設定している場合、スパンの `service` タグはそのスパンを**発行している**サービスを表します。 [20]: /ja/tracing/services/inferred_services [21]: /ja/tracing/services/inferred_services#peer-tags [22]: /ja/tracing/services/inferred_services#migrate-to-global-default-service-naming {{< /site-region >}} -## タイムレンジ +## タイムレンジ {#time-range} -タイムレンジを使用すると、特定の期間内のトレースを表示できます。タイムレンジをすばやく変更するには、プリセットされたレンジをドロップダウンメニューから選択します(または、[カスタムタイムフレームを入力します][3]): +タイムレンジを使用すると、特定の期間内のトレースを表示できます。タイムレンジをすばやく変更するには、プリセットされたレンジをドロップダウンメニューから選択します (または [カスタムタイムフレームを入力します][3])。 -{{< img src="tracing/app_analytics/search/time_frame2.png" style="width:50%;" alt="タイムフレームを選択" >}} +{{< img src="tracing/app_analytics/search/time_frame2.png" style="width:50%;" alt="タイムフレームの選択" >}} -## Span テーブル +## Span テーブル {#span-table} -Span テーブルは、選択されたコンテキスト ([検索バー](#search-bar)フィルタおよび[時間範囲](#time-range)で定義) に一致するスパンの一覧を表示します。 +Span テーブルは、選択されたコンテキストに一致するスパンのリストです。コンテキストは、[検索バー](#search-bar)フィルターおよび[時間範囲](#time-range)によって定義されます。 {{< site-region region="ap1,ap2,us3,us5,eu,us" >}} -### Service 列 +### Service 列 {#the-service-column} デフォルトでは、Service 列はスパンの `service` 予約属性を表示します。 -{{< img src="tracing/app_analytics/search/span_table_service.png" style="width:60%;" alt="スパンテーブルのサービス列" >}} +{{< img src="tracing/app_analytics/search/span_table_service.png" style="width:60%;" alt="Span テーブルの Service 列" >}} スパンがインスツルメント済みサービスから推論されたサービスへのクライアント呼び出しを表す場合、Service 列には以下が表示されます。 -- **service**: `service` 予約属性で識別されるサービス -- **[inferred service][4]**: ベースサービスから呼び出される推論先エンティティ名で、[ピア属性][5]のいずれかで識別されます。 +- `service` 予約属性で識別される**サービス**。 +- **[推論サービス][4]**: ベースサービスから呼び出される推論先エンティティ名で、[ピア属性][5] のいずれかで識別されます。 -{{< img src="tracing/app_analytics/search/span_table_inferred_service.png" style="width:90%;" alt="推論サービスを含むスパンテーブルのサービス列" >}} +{{< img src="tracing/app_analytics/search/span_table_inferred_service.png" style="width:90%;" alt="inferred service が示されている、Span テーブルの Service 列" >}} -サービス名がベースサービス名からオーバーライドされている場合、Service 列には以下が表示されます: -- **[base service][2]**: `@base_service` 属性によって識別されるスパン発行元のサービス -- **[service override][3]**: Datadogインテグレーションによって自動設定、またはプログラマティックAPIによって変更されたベースサービス名とは異なるサービス名で、`service` 予約属性によって識別されます。 +サービス名がベースサービス名からオーバーライドされている場合、Service 列には以下が表示されます。 +- **[基本サービス][2]**: `@base_service` 属性によって識別されるスパン発行元のサービス。 +- **[サービスオーバーライド][3]**: Datadog インテグレーションによって自動設定、またはプログラマティック API によって変更されたベースサービス名とは異なるサービス名。service override は、`service` 予約属性によって識別されます。 -{{< img src="tracing/app_analytics/search/span_table_service_override.png" style="width:80%;" alt="サービスオーバーライドを含むスパンテーブルのサービス列" >}} +{{< img src="tracing/app_analytics/search/span_table_service_override.png" style="width:80%;" alt="service override が示されている、Span テーブルの Service 列" >}} [2]: /ja/tracing/guide/service_overrides#base-service [3]: /ja/tracing/guide/service_overrides @@ -200,76 +199,76 @@ Span テーブルは、選択されたコンテキスト ([検索バー](#search [5]: /ja/tracing/services/inferred_services#peer-tags {{< /site-region >}} -### 完全なトレースの表示 +### 完全なトレースの表示 {#displaying-a-full-trace} 任意のスパンをクリックすると、関連するトレースの詳細を確認できます。 {{< img src="tracing/app_analytics/search/trace_in_tracestream.png" alt="トレースストリームのトレース" style="width:80%;">}} -### 列 +### 列 {#columns} -リストに他の[スパンタグや属性][23]を列として追加するには、**Options** ボタンをクリックして、追加したい任意のディメンションを選択します。 +リストにほかの [スパンタグや属性][23] を列として追加するには、[**Options**] (オプション) ボタンをクリックして、追加する任意のディメンションを選択します。 -{{< img src="tracing/app_analytics/search/trace_list_with_column.png" alt="列を含むトレースリスト" style="width:80%;">}} +{{< img src="tracing/app_analytics/search/trace_list_with_column.png" alt="列が示されているトレースリスト" style="width:80%;">}} -### トレース グループ +### トレースグループ {#trace-groups} -任意のスパン タグまたは属性でクエリをグループ化し、リクエスト数、エラー レート、レイテンシー分布をリスト ビューで確認できます。**Group by** 句では、最大 4 つのディメンションを選択できます。 +任意のスパンタグまたは属性でクエリをグループ化し、リクエスト数、エラーレート、レイテンシー分布をリストビューで確認できます。**Group by** 句では、最大 4 つのディメンションを選択できます。 {{< img src="/tracing/trace_explorer/trace_groups/group_by_clause.png" alt="Group by 句" style="width:90%;" >}} -#### 高度な 'Group By' クエリ +#### 高度な「Group By」クエリ {#advanced-group-by-queries} -グループ化するディメンションを選択した後、**from** ドロップダウンを使用して、ディメンションの値の取得先を指定できます: -- **スパン**: クエリ対象のスパンのディメンションでグループ化します (デフォルト)。例: `a`。 -- **スパンの親**: クエリに一致するスパンの親スパンから、指定したディメンションの値を取得してグループ化します。たとえば、API エンドポイントのパフォーマンスを呼び出し元のサービスを基準に視覚化するには、`parent(a)` から `service` でグループ化します。 -- **ルート スパン**: トレースのルート スパンから、指定したディメンションでグループ化します。たとえば、リクエストの発生元であるフロントエンド ページを基準にバックエンドのリクエスト パターンを分析するには、`root` から `@view.name` でグループ化します。 +グループ化するディメンションを選択したら、[**from**] (取得元) ドロップダウンを使用して、ディメンションの値の取得元を指定できます。 +- **Span** (スパン): クエリ対象のスパンのディメンションでグループ化します (デフォルト)。たとえば、`a` です。 +- **Parent of span** (スパンの親): クエリに一致するスパンの親スパンから、指定したディメンションの値を取得してグループ化します。たとえば、API エンドポイントのパフォーマンスを呼び出し元のサービスを基準に視覚化するには、`parent(a)` から `service` でグループ化します。 +- **Root span** (ルートスパン): トレースのルートスパンから、指定したディメンションでグループ化します。たとえば、リクエストの発生元であるフロントエンドページを基準にバックエンドのリクエストパターンを分析するには、`root` から `@view.name` でグループ化します。 -{{< img src="/tracing/trace_explorer/trace_groups/group_by_root.png" alt="ルートからグループ化" style="width:90%;" >}} +{{< img src="/tracing/trace_explorer/trace_groups/group_by_root.png" alt="root からのグループ化" style="width:90%;" >}} -#### グループ リストでトレース グループを表示する +#### グループリストでトレースグループを表示する {#view-trace-groups-in-the-group-list} -トレース グループは、選択したディメンションの一意の値として表示されます。各グループは、次の 3 つの主要なメトリクスと共に表示されます: -- **REQUESTS**: グループ内のスパンの数。 -- **ERRORS**: エラー レートとエラー数。 -- **P95 Latency**: スパンの p95 レイテンシー。 +トレースグループは、選択したディメンションの一意の値として表示されます。各グループは、次の 3 つの主要なメトリクスと共に表示されます。 +- **REQUESTS** (リクエスト): グループ内のスパンの数。 +- **ERRORS** (エラー): エラーレートとエラー数。 +- **P95 Latency** (P95 レイテンシー): スパンの p95 レイテンシー。 -これらのメトリクスを、クエリ対象のスパンではなく親スパンまたはルート スパンに集約して表示するには、**Show metrics from** 文で `parent(a)` または `root` を選択します。 +これらのメトリクスを、クエリ対象のスパンではなく親スパンまたはルートスパンに集約して表示するには、**Show metrics from** 文で `parent(a)` または `root` を選択します。 -また、`Latency Breakdown` により、各グループからのリクエスト内で、異なるサービス間でどのように時間が費やされるかが表示されるため、指定したグループについてレイテンシーのボトルネックを可視化することができます。 +また、`Latency Breakdown` により、各グループからのリクエスト内で、異なるサービス間でどのように時間が費やされるかが表示されるため、指定したグループについてレイテンシーのボトルネックを視覚的に見つけることができます。 -{{< img src="/tracing/trace_explorer/trace_groups/group_list.png" alt="グループ リスト" style="width:90%;" >}} +{{< img src="/tracing/trace_explorer/trace_groups/group_list.png" alt="グループリスト" style="width:90%;" >}} -より詳細な分析を行うには、任意のグループをクリックして、集計されたメトリクスを構成する個々のスパン イベントを調べます。 +より詳細な分析を行うには、任意のグループをクリックして、集計されたメトリクスを構成する個々のスパンイベントを調べます。 -## ファセット +## ファセット {#facets} ファセットは、1 つの属性またはタグの個別値をすべて表示すると共に、示されたトレースの量などのいくつかの基本分析も提供します。また、データを絞り込むためのスイッチにもなります。 -ファセットを使用すると、特定の属性に基づいてデータセットを絞り込んだり、データセットの切り口を変えることができます。ファセットには、ユーザーやサービスなどがあります。 +ファセットを使用すると、特定の属性に基づいてデータセットを絞り込んだり、データセットの切り口を変えたりすることができます。ファセットには、ユーザーやサービスなどがあります。 -{{< img src="tracing/app_analytics/search/facets_demo.png" alt="ファセットデモ" style="width:80%;">}} +{{< img src="tracing/app_analytics/search/facets_demo.png" alt="ファセットのデモ" style="width:80%;">}} -### メジャー +### メジャー {#measures} メジャー (Measures) は定量的な値に対応する特定のファセットです。 次が必要な場合は、メジャーを使用します。 -* 複数のトレースから値を集計する。たとえば、Cassandra の行数にメジャーを作成し、リクエストされたファイルサイズの合計ごとに最上位の参照元または P95 を表示します。 +* 複数のトレースから値を集計します。たとえば、Cassandra の行数にメジャーを作成し、リクエストされたファイルサイズの合計ごとに最上位の参照元または P95 を表示します。 * ショッピングカートの値が $1000 を超えるサービスの最もレイテンシーの高いものを数値的に計算します。 -* 連続する値をフィルタリングします。たとえば、ビデオストリームの各ペイロードチャンクのサイズ(バイト単位)。 +* 連続する値をフィルタリングします。たとえば、ビデオストリームの各ペイロードチャンクのサイズ (バイト単位)。 **タイプ** -メジャーには、同等の機能のために、(長)整数またはダブル値が付属しています。 +メジャーには、同等の機能のために、(長) 整数またはダブル値が付属しています。 **単位** -メジャーは、クエリ時間と表示時間の桁数を処理するための単位(秒単位の時間またはバイト単位のサイズ)をサポートします。単位は、フィールドではなく、メジャー自体のプロパティです。たとえば、ナノ秒単位の duration メジャーを考えてみます。`duration:1000` が 1000 ミリ秒を表す `service:A` からのスパンタグと、`duration:500` が 500 マイクロ秒を表す `service:B` からの他のスパンタグがあるとします。 -算術演算プロセッサーで流入するすべてのスパンタグの期間をナノ秒にスケーリングします。`service:A` のスパンタグには `*1000000` 乗数を使用し、`service:B` のスパンタグには `*1000` 乗数を使用します。 -`duration:>20ms`(検索構文を参照)を使用して、両方のサービスから一度に一貫してスパンタグにクエリを実行し、最大 1 分の集計結果を確認します。 +メジャーは、クエリ時間と表示時間の桁数を処理するための単位 (秒単位の時間またはバイト単位のサイズ) をサポートします。単位は、フィールドではなく、メジャー自体のプロパティです。たとえば、ナノ秒単位の duration メジャーを考えてみます。`duration:1000` が `1000 milliseconds` を表す `service:A` からのスパンタグと、`duration:500` が `500 microseconds` を表す `service:B` からの別のスパンタグがあるとします。 +算術演算プロセッサーで流入するすべてのスパンタグの期間をナノ秒にスケーリングします。`service:A` からのスパンタグには `*1000000` 乗数を使用し、`service:B` からのスパンタグには `*1000` 乗数を使用します。 +`duration:>20ms` (検索構文を参照) を使用して、両方のサービスから一度に一貫してスパンタグにクエリを実行し、最大 1 分の集計結果を確認します。 -### ファセットの作成 +### ファセットの作成 {#create-a-facet} 属性をファセットとして使用したり、検索で使用したりするには、属性をクリックしてファセットとして追加します。 @@ -277,59 +276,59 @@ Span テーブルは、選択されたコンテキスト ([検索バー](#search 新しいファセットを作成すると、フィルタリングや基本分析のために、そのファセットがファセットパネルで利用可能になります。 -### ファセットパネル +### ファセットパネル {#facet-panel} -ファセットを使用し、トレースをフィルタリングします。検索バーと URL には、選択内容が自動的に反映されます。 +ファセットを使用して、トレースをフィルタリングします。検索バーと URL には、選択内容が自動的に反映されます。 {{< img src="tracing/app_analytics/search/facet_panel.png" alt="ファセットパネル" style="width:30%;">}} -## 視覚化 +## 可視化 {#visualizations} 分析セレクターを使用して、Analytics の可視化タイプを選択します。 -* [Timeseries](#timeseries) +* [時系列](#timeseries) * [トップリスト](#top-list) * [テーブル](#table) -### Timeseries +### 時系列 {#timeseries} -選択したタイムフレーム内での `Duration` メトリクス(またはファセットのユニーク値数)の動きを可視化し、使用可能なファセットで分割します (オプション) 。 +選択したタイムフレーム内での `Duration` メトリクス (またはファセットのユニーク値数) の動きを可視化し、必要に応じて、使用可能なファセットで分割します。 -次の時系列 Analytics は、各**サービス**における **pc99** の **5 分**おきの**継続時間**の動きを示しています。 +次の時系列 Analytics は、各**サービス**における **pc99** の **5 分**ごとの **継続時間**の動きを示しています。 -{{< img src="tracing/app_analytics/analytics/timeserie_example.png" alt="時系列例" style="width:90%;">}} +{{< img src="tracing/app_analytics/analytics/timeserie_example.png" alt="時系列の例" style="width:90%;">}} -### Toplist +### トップリスト {#top-list} -`継続時間`(またはファセットのユニーク値数)に基づいて、ファセットの上位の値を可視化します。 +`Duration` (またはファセットのユニーク値数) に基づいて、ファセットの上位の値を可視化します。 -以下の Analytics トップリストは、**pc99** の**サービス**の**継続時間**を上から示しています。 +以下の Analytics トップリストは、**pc99** の**サービス**の**継続時間**を上位のものから順に示しています。 {{< img src="tracing/app_analytics/analytics/top_list_example.png" alt="トップリストの例" style="width:90%;">}} -### 表 +### テーブル {#table} -選択した[メジャー][9] (リストで選択した最初のメジャー) に基づいてファセットから上位の値を可視化し、この上位のリストに現れる要素に対して他のメジャーの値を表示します。検索クエリを更新したり、いずれかのディメンションに対応するログを調査することができます。 +選択した [メジャー][9] (リストで選択した最初のメジャー) に基づいてファセットから上位の値を可視化し、このトップリストに示される要素のほかのメジャーの値を表示します。検索クエリを更新したり、いずれかのディメンションに対応するログを調査したりすることができます。 -* 複数のディメンションがある場合、上位の値は最初のディメンションに基づき決定されます。その後最初のディメンション内の上位値内の 2 番めのディメンション、次に 2 番目のディメンション内の上位値内の 3 番めのディメンションに基づき決定されます。 -* メジャーが複数ある場合、最初のメジャーに基づいて上位または下位リストが決定されます。 -* サブセット(上位または下位)のみが表示されるため、小計がグループ内の実際の合計値とは異なる場合があります。このディメンジョンに対する、値が null または空欄のイベントは、サブグループとして表示されません。 +* 複数のディメンションがある場合、上位の値は最初のディメンションに基づき決定されます。その後最初のディメンション内の上位値内の 2 番目のディメンション、次に 2 番目のディメンション内の上位値内の 3 番目のディメンションに基づき決定されます。 +* メジャーが複数ある場合、最初のメジャーに応じて上位または下位のリストが決定されます。 +* サブセット (上位または下位) のみが表示されるため、小計がグループ内の実際の合計値とは異なる場合があります。このディメンションの値が null または空のイベントは、サブグループとして表示されません。 -**注**: 単一のメジャーと単一のディメンジョンで使用されるテーブルの可視化は、表示が異なりますが、上位リストと同じです。 +**注**: 単一のメジャーと単一のディメンションで使用されるテーブルの可視化は、表示は異なりますが、トップリストと同じです。 次のテーブルログ分析は、**スループット**に基づいて、過去 15 分間の**上位ステータスコード**の動きをユニーク**クライアント IP** の数と共に示しています。 -{{< img src="tracing/app_analytics/analytics/trace_table_example.png" alt="上位リストの例" style="width:90%;">}} +{{< img src="tracing/app_analytics/analytics/trace_table_example.png" alt="トップリストの例" style="width:90%;">}} -## 関連トレース +## 関連トレース {#related-traces} -グラフの一部を選択またはクリックすると、グラフをズームインしたり、選択範囲に対応する[トレース][10]のリストを表示したりすることができます。 +グラフの一部を選択またはクリックすると、グラフをズームインしたり、選択範囲に対応する [トレース][10] のリストを表示したりすることができます。 -{{< img src="tracing/app_analytics/analytics/view_traces.png" alt="トレースを確認" style="width:40%;">}} +{{< img src="tracing/app_analytics/analytics/view_traces.png" alt="トレースの表示" style="width:40%;">}} -## エクスポート +## エクスポート {#export} -{{< img src="tracing/app_analytics/analytics/export_button.png" alt="分析をエクスポートボタン" style="width:40%;">}} +{{< img src="tracing/app_analytics/analytics/export_button.png" alt="Analytics のエクスポートボタン" style="width:40%;">}} クエリのエクスポート先: @@ -339,9 +338,9 @@ Span テーブルは、選択されたコンテキスト ([検索バー](#search また、このクエリから新たなメトリクスを生成することも可能です。 -**注**: ダッシュボードおよびノートブック内の APM クエリは、すべての[インデックス化されたスパン][14]に基づきます。一方、モニター内の APM クエリは、[カスタム保持フィルター][19]でインデックス化されたスパンにのみ基づきます。 +**注**: ダッシュボードおよびノートブック内の APM クエリは、すべての [インデックス化されたスパン][14] に基づいています。モニター内の APM クエリは、[カスタム保持フィルター][19] でインデックス化されたスパンにのみ基づきます。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/agent/configuration/agent-configuration-files.md b/content/ko/agent/configuration/agent-configuration-files.md index 1a8e8704174..9377ce39dd2 100644 --- a/content/ko/agent/configuration/agent-configuration-files.md +++ b/content/ko/agent/configuration/agent-configuration-files.md @@ -2,7 +2,7 @@ algolia: category: guide rank: 80 - subcategory: Agent 설정 파일 + subcategory: Agent Configuration Files tags: - agent config - agent configuration @@ -10,46 +10,27 @@ algolia: aliases: - /ko/agent/faq/agent-configuration-files - /ko/agent/guide/agent-configuration-files -title: Agent 설정 파일 +description: Datadog Agent 구성 파일의 위치, 구조 및 검사와 통합을 구성하는 방법 안내 +title: Agent 구성 파일 --- +## 기본 구성 파일 {#main-configuration-file} -## Agent 주요 설정 파일 +Agent 구성 파일의 위치는 운영 체제에 따라 다릅니다. -Agent v6 설정 파일은 **YAML**을 사용하여 복잡한 설정에 대한 더 나은 지원과 일관된 설정 환경을 제공합니다. 검사도 YAML 설정 파일을 사용하므로 `datadog.conf`(v5)는 `datadog.yaml`(v6)을 위해 폐기됩니다. - -{{< tabs >}} -{{% tab "Agent v6 & v7" %}} - -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |:-------------------------------------|:-------------------------------------| | AIX | `/etc/datadog-agent/datadog.yaml` | | Linux | `/etc/datadog-agent/datadog.yaml` | | macOS | `~/.datadog-agent/datadog.yaml` | | Windows | `%ProgramData%\Datadog\datadog.yaml` | -{{% /tab %}} -{{% tab "Agent v5" %}} - -| 플랫폼 | 명령어 | -|:-------------------------------------|:---------------------------------------------------------------------------| -| Linux | `/etc/dd-agent/datadog.conf` | -| macOS | `~/.datadog-agent/datadog.conf` | | -| Windows 서버 2008, Vista 이상 | `%ProgramData%\Datadog\datadog.conf` | -| Windows 서버 2003, XP 이전 | `\\Documents and Settings\All Users\Application Data\Datadog\datadog.conf` | - -{{% /tab %}} -{{< /tabs >}} - -사용 가능한 모든 설정 옵션은 [샘플 `config_template.yaml` 파일][2]을 참조하세요. - -## Agent 설정 디렉토리 +사용 가능한 모든 구성 옵션은 [샘플 `config_template.yaml` 파일][1]을 참조하세요. -이전 릴리스의 Datadog Agent는 `/dd-agent/conf.d/`에 설정 파일을 저장했습니다. 6.0 릴리스부터는 설정 파일이 `/etc/datadog-agent/conf.d/.d/`에 저장됩니다. +## Agent 구성 디렉터리 {#agent-configuration-directory} -{{< tabs >}} -{{% tab "Agent v6 & v7" %}} +Agent 검사 및 통합에 대한 구성 파일은 `conf.d` 디렉터리에 저장됩니다. 이 디렉터리의 위치는 운영 체제에 따라 다릅니다. -| 플랫폼 | 명령어 | +| 플랫폼 | 명령 | |:-------------------------------------|:-------------------------------| | AIX | `/etc/datadog-agent/conf.d/` | | Linux | `/etc/datadog-agent/conf.d/` | @@ -59,13 +40,15 @@ Agent v6 설정 파일은 **YAML**을 사용하여 복잡한 설정에 대한 | macOS | `~/.datadog-agent/conf.d/` | | RedHat | `/etc/datadog-agent/conf.d/` | | Source | `/etc/datadog-agent/conf.d/` | -| Suse | `/etc/datadog-agent/conf.d/` | +| SUSE | `/etc/datadog-agent/conf.d/` | | Ubuntu | `/etc/datadog-agent/conf.d/` | | Windows | `%ProgramData%\Datadog\conf.d` | -### Agent 6에 대한 검사 설정 파일 +**참고**: 이 디렉터리에 있는 길이가 0인 파일은 Agent에서 무시됩니다. 이를 통해 빈 템플릿 출력 건너뛰기를 지원하지 않는 프로비저닝 시스템도 사용할 수 있습니다. -각 Agent 검사 설정 파일에 대한 예시는 해당 `.d/` 폴더의 `conf.yaml.example` 파일에 있습니다. 이 파일의 이름을 `conf.yaml`로 변경하여 관련 검사를 활성화합니다. **참고**: Agent는 `/etc/datadog-agent/conf.d/.d/` 폴더에 포함된 유효한 YAML 파일을 로드합니다. 이를 통해 복잡한 설정을 여러 파일로 나눌 수 있습니다. 예를 들어, `http_check`에 대한 설정은 다음과 같습니다: +### 검사 구성 파일 {#check-configuration-files} + +각 Agent 검사 구성 파일의 예제는 해당 `.d/` 폴더의 `conf.yaml.example` 파일에 있습니다. 연관된 검사를 활성화하려면 이 파일의 이름을 `conf.yaml`로 변경합니다. **참고**: Agent는 `/etc/datadog-agent/conf.d/.d/` 폴더에 포함된 유효한 YAML 파일을 로드합니다. 이를 통해 복잡한 구성을 여러 파일로 분리할 수 있습니다. 예를 들어 `http_check`에 대한 구성은 다음과 같을 수 있습니다. ```text /etc/datadog-agent/conf.d/http_check.d/ @@ -73,9 +56,9 @@ Agent v6 설정 파일은 **YAML**을 사용하여 복잡한 설정에 대한 └── frontend.yaml ``` -특수한 경우는 접미사`.default`가 붙은 YAML 파일입니다. 이러한 파일은 Agent에 의해 기본적으로 로드되며 항상 실행되는 핵심 검사 집합(CPU, 메모리, 가동 시간 등)을 정의하는 데 도움이 됩니다. 해당 검사에 대한 다른 설정이 발견되면 무시되므로 안전하게 무시할 수 있습니다. 기본 검사 중 하나를 실행 중지하려면 해당 파일을 제거하세요. 이러한 검사를 설정하려면 `conf.yaml.example`를 기본으로 사용해야 합니다. +접미사가 `.default`인 YAML 파일은 특별한 경우입니다. 이러한 파일은 기본적으로 Agent에 의해 로드되며, 항상 활성화되는 핵심 검사(CPU, 메모리, 가동 시간 등)를 정의하는 데 사용됩니다. 특정 검사에 대해 다른 구성이 발견되면 이러한 파일은 무시되므로 안전하게 무시할 수 있습니다. 기본 검사 중 하나를 비활성화하려면 해당 파일을 제거하세요. 이러한 검사를 구성할 때는 `conf.yaml.example`를 기본 템플릿으로 사용해야 합니다. -자동 탐지 템플릿 파일은 `auto_conf.yaml` 파일과 함께 설정 폴더에 저장됩니다. 예를 들어 Redis 검사의 경우 `redisdb.d/`의 설정은 다음과 같습니다. +Autodiscovery 템플릿 파일은 구성 폴더에 `auto_conf.yaml` 파일로 저장됩니다. 예를 들어 Redis 검사에 대한 `redisdb.d/` 구성은 다음과 같습니다. ```text /etc/datadog-agent/conf.d/redisdb.d/ @@ -83,33 +66,11 @@ Agent v6 설정 파일은 **YAML**을 사용하여 복잡한 설정에 대한 └── conf.yaml.example ``` -로그 수집을 위해 Agent는 중복 로그가 Datadog으로 전송되지 않도록 동일한 로그 소스를 가리키는 여러 개의 YAML 파일을 허용하지 않습니다. 동일한 로그 소스를 가리키는 YAML 파일이 두 개 이상인 경우 Agent는 파일을 알파벳 순서로 고려하고 첫 번째 파일을 사용합니다. - -이전 버전과의 호환성을 유지하기 위해 Agent는 여전히 `/etc/dd-agent/conf.d/.yaml` 형식의 설정 파일을 선택하지만 원활한 사용을 위해 새 레이아웃으로 마이그레이션할 것을 권장합니다. - -{{% /tab %}} -{{% tab "Agent v5" %}} - -| 플랫폼 | 명령어 | -|:-------------------------------------|:---------------------------------------------------------------------| -| Linux | `/etc/dd-agent/conf.d/` | -| CentOS | `/etc/dd-agent/conf.d/` | -| Debian | `/etc/dd-agent/conf.d/` | -| Fedora | `/etc/dd-agent/conf.d/` | -| macOS | `~/.datadog-agent/conf.d/` | -| RedHat | `/etc/dd-agent/conf.d/` | -| Source | `/etc/dd-agent/conf.d/` | -| Suse | `/etc/dd-agent/conf.d/` | -| Ubuntu | `/etc/dd-agent/conf.d/` | -| Windows 서버 2008, Vista 이상 | `%ProgramData%\Datadog\conf.d` | -| Windows 서버 2003, XP 이전 | `\\Documents and Settings\All Users\Application Data\Datadog\conf.d` | - -{{% /tab %}} -{{< /tabs >}} +로그 수집의 경우 중복 로그가 Datadog으로 전송되는 것을 방지하기 위해 Agent는 동일한 로그 소스를 가리키는 여러 YAML 파일을 허용하지 않습니다. 동일한 로그 소스를 가리키는 YAML 파일이 둘 이상인 경우 Agent는 파일을 알파벳 순으로 검토하고 첫 번째 파일을 사용합니다. -## JMX 설정 파일 +## JMX 구성 파일 {#jmx-configuration-file} -JMX Agent 검사에는 설정 폴더에 추가 `metrics.yaml` 파일이 있습니다. 기본적으로 Datadog Agent가 수집하는 모든 빈(bean) 목록입니다. 이렇게 하면 [Docker 라벨 또는 k8s 어노테이션][1]을 통해 검사를 설정할 때 모든 빈(bean)을 수동으로 나열할 필요가 없습니다. +JMX Agent 검사에는 해당 구성 폴더에 추가로 `metrics.yaml` 파일이 있습니다. 이 파일에는 Datadog Agent가 기본적으로 수집하는 모든 Bean 목록이 포함되어 있습니다. 따라서 [Docker 레이블 또는 Kubernetes 주석][2]을 통해 검사를 구성할 때 모든 Bean을 수동으로 나열할 필요가 없습니다. -[1]: /ko/agent/kubernetes/integrations/#configuration -[2]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml \ No newline at end of file +[1]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml +[2]: /ko/agent/kubernetes/integrations/#configuration \ No newline at end of file diff --git a/content/ko/agent/configuration/secrets-management.md b/content/ko/agent/configuration/secrets-management.md index cf3430d40fe..0f0c0930d3f 100644 --- a/content/ko/agent/configuration/secrets-management.md +++ b/content/ko/agent/configuration/secrets-management.md @@ -10,37 +10,37 @@ aliases: - /ko/agent/guide/secrets-management further_reading: - link: /agent/autodiscovery/ - tag: Documentation + tag: 설명서 text: Autodiscovery title: 시크릿 관리 --- -## 개요 +## 개요 {#overview} Datadog Agent를 이용하면 다음과 같은 시크릿 관리 솔루션과 통합하여 시크릿을 안전하게 관리하는 데 도움이 됩니다. - [AWS Secrets Manager](#idforsecrets) - [AWS SSM](#idforssm) - [Azure KeyVault](#idforazure) - [GCP Secret Manager](#idforgcp) - [HashiCorp Vault](#idforhashicorp) - [Kubernetes Secrets](#idforkubernetes) - [Docker Secrets](#idfordocker) - [File Text](#idforjsonyamltext) - [File JSON](#idforjsonyamltext) - [File YAML](#idforjsonyamltext) +- [AWS Secrets Manager](#id-for-secrets) +- [AWS SSM](#id-for-ssm) +- [Azure KeyVault](#id-for-azure) +- [GCP Secret Manager](#id-for-gcp) +- [HashiCorp Vault](#id-for-hashicorp) +- [Kubernetes Secrets](#id-for-kubernetes) +- [Docker Secrets](#id-for-docker) +- [File Text](#id-for-json-yaml-text) +- [File JSON](#id-for-json-yaml-text) +- [File YAML](#id-for-json-yaml-text) -Agent는 API 키나 비밀번호와 같은 민감한 값을 구성 파일 내에 일반 텍스트로 하드코딩하지 않고, 런타임에 동적으로 검색할 수 있습니다. 구성의 시크릿을 참조하려면 `ENC[]` 표기법을 사용하세요. 시크릿은 가져와서 메모리에 로드되지만, 디스크에 쓰거나 Datadog 백엔드로 전송되지는 않습니다. +Agent는 API 키나 비밀번호와 같은 민감한 값을 구성 파일 내에 일반 텍스트로 하드코딩하지 않고, 런타임에 동적으로 검색할 수 있습니다. 구성에서 시크릿을 참조하려면 `ENC[]` 표기법을 사용하세요. 시크릿은 메모리에 로드되지만 디스크에 기록되거나 Datadog 백엔드로 전송되지는 않습니다. -**참고**: `ENC[]` 구문을 `secret_backend_command` 같은 `secret_*` 설정에서 사용할 수 없습니다. +**참고**: `secret_backend_command`와 같은 `secret_*` 설정에서는 `ENC[]` 구문을 사용할 수 없습니다. -## 시크릿 검색 옵션 +## 시크릿 가져오기 옵션 {#options-for-retrieving-secrets} -### 옵션 1: 시크릿을 가져오는 데 네이티브 Agent 지원 사용 +### 옵션 1: Agent의 기본 시크릿 조회 기능 사용{#option-1-using-native-agent-support-for-fetching-secrets} -**참고**: Agent 버전 `7.76` 이후부터는 FIPS가 활성화된 Agent에 네이티브 시크릿 관리를 사용할 수 있습니다. +**참고**: Agent 버전 `7.76`부터는 FIPS 지원 Agent에서도 기본 시크릿 관리 기능을 사용할 수 있습니다. -Agent 버전 `7.70`부터 Datadog Agent가 기본적으로 몇 가지 시크릿 관리 솔루션을 지원합니다. `datadog.yaml`에 두 가지 새로운 설정인 `secret_backend_type` 및 `secret_backend_config`가 도입되었습니다. +Agent 버전 `7.70`부터 Datadog Agent는 여러 시크릿 관리 솔루션을 기본적으로 지원합니다. `datadog.yaml`에는 두 개의 새로운 설정인 `secret_backend_type` 및 `secret_backend_config`가 추가되었습니다. -`secret_backend_type`은 사용할 시크릿 관리 솔루션을 지정하는 데 사용되고, `secret_backend_config`는 해당 솔루션과 관련 있는 추가 구성을 보유합니다. +`secret_backend_type` 은 사용할 시크릿 관리 솔루션을 지정하는 데 사용되며, `secret_backend_config`에는 해당 솔루션에 필요한 추가 구성이 포함됩니다. ```yaml # datadog.yaml @@ -50,7 +50,7 @@ secret_backend_config: : ``` -**참고**: Datadog을 컨테이너화된 환경에서 실행 중인 경우, [Cluster Agent](/containers/cluster_agent/)에 Agent 7.77 이후 버전이 있어야 네이티브 시크릿 가져오기가 지원됩니다. 이전 버전의 경우, [옵션 2](#option2usingthebuiltinscriptforkubernetesanddocker) 또는 [옵션 3](#option3creatingacustomexecutable)을 대신 사용하세요. +**참고**: Datadog을 컨테이너화된 환경에서 실행하는 경우 [Cluster Agent](/containers/cluster_agent/)가 기본 시크릿 가져오기를 지원하려면 Agent 7.77 이상이 필요합니다. 이전 버전에서는 대신 [옵션 2](#option-2-using-the-built-in-script-for-kubernetes-and-docker) 또는 [옵션 3](#option-3-creating-a-custom-executable)을 사용하세요. 더 구체적인 설정 지침은 사용한 백엔드 유형에 따라 다릅니다. 자세한 정보는 아래에서 해당하는 섹션을 참조하세요. @@ -59,14 +59,14 @@ secret_backend_config: 지원되는 AWS 서비스는 다음과 같습니다. |secret_backend_type 값 | AWS 서비스 | -||| +|---------------------------------------------|-----------------------------------------| |`aws.secrets` |[AWS Secrets Manager][1000] | -##### 인스턴스 프로필 설정 +##### 인스턴스 프로파일 설정 {#set-up-an-instance-profile} Datadog에서는 시크릿을 가져오는 데 [인스턴스 프로필 방법][1006]을 사용하도록 권장합니다. AWS에서 사용자 대신 모든 환경 변수와 세션 프로필을 처리하기 때문입니다. 이렇게 하는 방법에 대한 자세한 지침은 공식 [AWS Secrets Manager 설명서][1000]에서 확인할 수 있습니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example} {{< tabs >}} {{% tab "Agent YAML 파일" %}} @@ -88,17 +88,17 @@ DD_SECRET_BACKEND_TYPE="aws.secrets" DD_SECRET_BACKEND_CONFIG='{"aws_session":{"aws_region":""}}' ``` -Agent가 AWS Secrets를 사용하도록 구성하고 나면 `ENC[secretId;secretKey]`를 사용해 구성의 모든 시크릿을 참조할 수 있습니다. +AWS Secrets 사용을 위해 Agent를 구성한 후에는 `ENC[secretId;secretKey]` 구문을 사용하여 구성 파일 내에서 시크릿을 참조할 수 있습니다. ENC 표기법은 다음과 같이 구성됩니다. -* `secretId`: 시크릿 “친화적 이름”(예: `/DatadogAgent/Production`) 또는 ARN(예: `arn:aws:secretsmanager:useast1:123456789012:secret:/DatadogAgent/ProductionFOga1K`). - **참고**: AWS 자격 증명 또는 `sts:AssumeRole` 자격 증명이 정의된 다른 계정에서 시크릿에 액세스할 때는 전체 ARN 형식이 필요합니다. -* `secretKey`: 사용하고자 하는 AWS 시크릿의 JSON 키입니다. +* `secretId`: 시크릿의 "친숙한 이름"(예: `/DatadogAgent/Production`) 또는 ARN(예: `arn:aws:secretsmanager:us-east-1:123456789012:secret:/DatadogAgent/Production-FOga1K`). + - **참고**: AWS 자격 증명 또는 `sts:AssumeRole` 자격 증명이 정의된 다른 계정의 시크릿에 액세스하는 경우 전체 ARN 형식을 사용해야 합니다. +* `secretKey`: 사용하려는 AWS 시크릿의 JSON 키. -AWS Secrets Manager는 시크릿 하나에 여러 개의 키-값 쌍을 저장할 수 있습니다. Secrets Manager를 사용한 백엔드 구성은 시크릿에 정의된 모든 키에 액세스할 수 있습니다. +AWS Secrets Manager는 하나의 시크릿 안에 여러 키-값 쌍을 저장할 수 있습니다. Secrets Manager를 사용한 백엔드 구성은 시크릿에 정의된 모든 키에 액세스할 수 있습니다. -예를 들어 시크릿 ID `MySecrets`에 다음과 같은 값 3개를 포함한다고 가정합니다. +예를 들어 시크릿 ID `My-Secrets`에 다음 세 개의 값이 포함되어 있다고 가정합니다. ```json { @@ -108,7 +108,7 @@ AWS Secrets Manager는 시크릿 하나에 여러 개의 키-값 쌍을 저장 } ``` -다음은 `MySecrets`에서 API 키를 풀링하기 위해 AWS Secrets를 사용하는 `datadog.yaml` 구성 파일의 전체 예시입니다. +다음은 AWS Secrets를 사용하여 `My-Secrets`에서 API 키를 가져오는 `datadog.yaml` 구성 파일의 전체 예시입니다. ```yaml api_key: ENC[My-Secrets;prodApiKey] @@ -125,7 +125,7 @@ secret_backend_config: 다음 구성을 사용하여 Datadog Agent가 AWS Secrets를 사용해 Helm의 시크릿을 확인하도록 구성하세요. -##### 통합 검사 +##### 통합 검사 {#integration-check} ```sh datadog: @@ -149,12 +149,12 @@ agents: eks.amazonaws.com/role-arn: ``` -
    AWS 시크릿에 액세스하려면 serviceAccountAnnotations를 포함하여 Agent 권한을 부여해야 합니다.
    +
    Agent가 AWS 시크릿에 접근할 수 있도록 권한을 부여하려면 serviceAccountAnnotations 를 포함해야 합니다.

    -##### 클러스터 검사: 클러스터 검사 러너가 활성화되지 않은 경우 +##### 클러스터 검사: cluster check runner 비활성화 {#cluster-check-without-cluster-check-runners-enabled} ```sh datadog: @@ -178,7 +178,7 @@ clusterAgent: password: "ENC[secretId;secretKey]" ``` -##### 클러스터 검사: 클러스터 검사 러너가 활성화된 경우 +##### 클러스터 검사: cluster check runner 활성화 {#cluster-check-with-cluster-check-runners-enabled} ```sh datadog: @@ -209,13 +209,15 @@ clusterChecksRunner: ``` +**또는**, Helm 차트 v3.171.0 이상 및 Agent v7.70 이상에서는 환경 변수 대신 기본 제공 `secretBackend.type` 및 `secretBackend.config` 필드를 사용할 수 있습니다. 예: `datadog.secretBackend.type: "aws.secrets"` 및 `datadog.secretBackend.config.aws_session.aws_region: ""`. + {{% /tab %}} {{% tab "Operator" %}} 다음 구성을 사용하여 Datadog Agent가 AWS Secrets를 사용해 Datadog Operator로 시크릿을 확인하도록 구성하세요. -##### 통합 검사 +##### 통합 검사 {#integration-check-1} ```sh @@ -247,12 +249,12 @@ spec: ``` -
    AWS 시크릿에 액세스하려면 serviceAccountAnnotations를 포함하여 Agent 권한을 부여해야 합니다.
    +
    Agent가 AWS 시크릿에 접근할 수 있도록 권한을 부여하려면 serviceAccountAnnotations 를 포함해야 합니다.

    -##### 클러스터 검사: 클러스터 검사 러너가 활성화되지 않은 경우 +##### 클러스터 검사: cluster check runner 비활성화 {#cluster-check-without-cluster-check-runners-enabled-1} ```sh apiVersion: datadoghq.com/v2alpha1 @@ -284,7 +286,7 @@ spec:
    -##### 클러스터 검사: 클러스터 검사 러너가 활성화된 경우 +##### 클러스터 검사: cluster check runner 활성화 {#cluster-check-with-cluster-check-runners-enabled-1} ```sh apiVersion: datadoghq.com/v2alpha1 @@ -320,6 +322,8 @@ spec: ``` +**또는**, Datadog Operator v1.25.0 이상 및 Agent v7.70 이상에서는 환경 변수 대신 기본 제공 `secretBackend.type` 및 `secretBackend.config` 필드를 사용할 수 있습니다. 예: `spec.global.secretBackend.type: "aws.secrets"` 및 `spec.global.secretBackend.config`( `aws_session.aws_region: ""` 사용) + {{% /tab %}} {{< /tabs >}} @@ -330,14 +334,14 @@ spec: 지원되는 AWS 서비스는 다음과 같습니다. |secret_backend_type 값 | AWS 서비스 | -||| +|---------------------------------------------|-----------------------------------------| |`aws.ssm` |[AWS Systems Manager Parameter Store][1001] | -##### 인스턴스 프로필 설정 +##### 인스턴스 프로파일 설정 {#set-up-an-instance-profile-1} Datadog에서는 시크릿을 가져오는 데 [인스턴스 프로필 방법][1006]을 사용하도록 권장합니다. AWS에서 사용자 대신 모든 환경 변수와 세션 프로필을 처리하기 때문입니다. 이렇게 하는 방법에 대한 자세한 지침은 공식 [AWS Secrets Manager 설명서][1001]에서 확인할 수 있습니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example-1} AWS System Manager Parameter Store는 계층 구조 모델을 지원합니다. 예를 들어 다음과 같은 AWS System Manager Parameter Store 경로를 가정하겠습니다. @@ -369,19 +373,19 @@ property2: "ENC[/DatadogAgent/Production/ParameterKey2]" 지원되는 Azure 서비스는 다음과 같습니다. -| secret_backend_type 값 | Azure 서비스 | -| || +| secret_backend_type 값e | Azure 서비스 | +| ----------------------------------------|------------------------| | `azure.keyvault` | [Azure Keyvault][2000] | -##### Azure 인증 +##### Azure 인증 {#azure-authentication} Datadog에서는 Azure로 인증하는 데 관리형 ID를 사용하도록 권장합니다. 이렇게 하면 클라우드 리소스를 AMI 계정과 연결할 수 있고 `datadog.yaml` 구성 파일에 민감한 정보를 입력해야 할 필요가 없어집니다. -##### 관리형 ID +##### 관리형 ID {#managed-identity} Key Vault에 액세스하려면 관리형 ID를 만들어 이를 가상 머신에 할당합니다. 그런 다음, Key Vault에서 적절한 역할 할당을 구성해 해당 ID가 시크릿에 액세스하도록 허용합니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example-2} Azure Key Vault 시크릿의 백엔드 구성은 다음 스키마를 따른 YAML로 구조화됩니다. @@ -404,25 +408,25 @@ api_key: "ENC[secretKeyNameInKeyVault]" {{% collapse-content title="GCP Secret Manager" level="h4" expanded=false id="id-for-gcp" %}} -**Agent 버전 7.74+**에서 이용 가능 +**Agent 버전 7.74 이상에서 이용 가능** 지원되는 GCP 서비스는 다음과 같습니다. | secret_backend_type 값 | GCP 서비스 | -| | | +| ------------------------------------------------------- | ------------------------------ | | `gcp.secretmanager` | [GCP Secret Manager][5000] | -##### GCP 인증 및 액세스 정책 +##### GCP 인증 및 액세스 정책 {#gcp-authentication-and-access-policy} GCP Secret Manager 구현은 Google로 인증에 [Application Default Credentials(ADC)][5001]를 사용합니다. GCP Secret Manager와 상호 작용하려면 Datadog Agent가 사용하는 서비스 계정(예를 들어 VM의 서비스 계정, 워크로드 ID 또는 로컬로 활성화한 자격 증명)에 `secretmanager.versions.access` 권한이 있어야 합니다. -이것은 사전 정의한 역할 **Secret Manager Secret Accessor**(`roles/secretmanager.secretAccessor`) 또는 그와 동급의 [액세스 권한][5002]이 있는 사용자 지정 역할을 사용해 부여할 수 있습니다. +이 권한은 미리 정의된 역할 {{< ui >}}Secret Manager Secret Accessor{{< /ui >}}(`roles/secretmanager.secretAccessor`) 또는 동일한 [액세스 권한][5002]을 가진 사용자 지정 역할을 통해 부여할 수 있습니다. -GCE 또는 GKE 런타임에 ADC가 인스턴스 또는 포드의 연결된 서비스 계정을 통해 자동으로 구성됩니다. 연결된 서비스 계정에 GCP Secret Manager에 액세스하는 데 적절한 역할이 있어야 합니다. 또한 GCE 또는 GKE 런타임에 `cloudplatform` [OAuth 액세스 범위][5003]가 필요합니다. +GCE 또는 GKE 런타임에 ADC가 인스턴스 또는 포드의 연결된 서비스 계정을 통해 자동으로 구성됩니다. 연결된 서비스 계정에 GCP Secret Manager에 액세스하는 데 적절한 역할이 있어야 합니다. 또한 GCE 또는 GKE 런타임에는 `cloud-platform` [OAuth 액세스 범위][5003]가 필요합니다. -##### GCP 구성 예시 +##### GCP 구성 예시 {#gcp-configuration-example} 다음 구성을 사용하여 Datadog Agent가 GCP Secret Manager를 사용해 시크릿을 확인하도록 구성하세요. @@ -434,19 +438,19 @@ secret_backend_config: project_id: ``` -Agent가 GCP Secret Manager를 사용하도록 구성하고 나면, 구성에서 `ENC[secretname]` 또는 `ENC[secretname;key;version;]`로 시크릿을 참조합니다. +GCP Secret Manager 사용을 위해 Agent를 구성한 후에는 `ENC[secret-name]` 또는 `ENC[secret-name;key;version;]`를 사용하여 구성에서 시크릿을 참조합니다. ENC 표기법은 다음과 같이 구성됩니다. - `secret`: GCP Secret Manager의 시크릿 이름입니다(예: `datadogapikey`). - `key`: (선택 사항) JSON으로 형식이 지정된 시크릿에서 추출할 키입니다. 일반 텍스트 시크릿을 사용하는 경우, 이를 생략할 수 있습니다(예: `ENC[secretname;;version]`). - `version`: (선택 사항) 시크릿 버전 번호입니다. 지정하지 않으면 `latest` 버전을 사용합니다. - + 버전 구문 예시 - `secretkey` 암묵적 `latest` 버전 - `secretkey;;latest` 명시적 `latest` 버전 - `secretkey;;1` 특정 버전 번호 +- `secret`: GCP Secret Manager에 저장된 시크릿 이름(예: `datadog-api-key`) +- `key`: (선택 사항) JSON 형식 시크릿에서 추출할 키. 일반 텍스트 시크릿을 사용하는 경우 이 항목은 생략할 수 있습니다(예: `ENC[secret-name;;version]`). +- `version`: (선택 사항) 시크릿 버전 번호. 지정하지 않으면 `latest` 버전이 사용됩니다. + + 버전 구문 예시: + - `secret-key` - 암시적 `latest` 버전 + - `secret-key;;latest` - 명시적 `latest` 버전 + - `secret-key;;1` - 특정 버전 번호 -예를 들어 이름이 `datadogapikey`(버전 2개)인 GPC 시크릿과 `datadogappkey`인 GCP 시크릿을 가정한 경우: +예를 들어 두 개의 버전이 있는 `datadog-api-key` 및 `datadog-app-key`라는 GCP 시크릿이 있다고 가정합니다. ```yaml # datadog.yaml @@ -459,7 +463,7 @@ secret_backend_config: project_id: ``` -JSON으로 형식이 지정된 시크릿의 경우, 이름이 `datadogkeys`인 시크릿이 다음을 포함한다고 가정: +JSON 형식 시크릿의 경우, `datadog-keys`라는 시크릿에 다음 내용이 포함되어 있다고 가정합니다. ```json { @@ -481,17 +485,17 @@ secret_backend_config: project_id: ``` -##### 시크릿 버전 관리 +##### 시크릿 버전 관리 {#secret-versioning} -GCP Secret Manager는 시크릿 버전을 지원합니다. Agent 구현은 `;` 구분 기호를 사용해서도 시크릿 버전 관리를 지원합니다. 지정된 버전이 없는 경우, `latest` 버전을 사용합니다. +GCP Secret Manager는 시크릿 버전을 지원합니다. Agent 구현도 `;` 구분 기호를 사용한 시크릿 버전 관리를 지원합니다. 버전을 지정하지 않으면 `latest` 버전이 사용됩니다. -##### JSON 시크릿 지원 +##### JSON 시크릿 지원 {#json-secret-support} -Datadog Agent 는 `;` 구분 기호를 사용해 JSON으로 형식이 지정된 시크릿에서 특정 키를 추출하는 작업을 지원합니다. +Datadog Agent는 `;` 구분 기호를 사용하여 JSON 형식 시크릿의 특정 키를 추출하는 기능을 지원합니다. - `datadog;api_key` 암묵적 `latest` 버전을 사용해 `datadog` 시크릿에서 `api_key` 필드 추출 - `datadog;api_key;1` 버전 `1`의 `datadog` 시크릿에서 `api_key` 필드 추출 +- `datadog;api_key` - `datadog` 시크릿의 `api_key` 필드를 암시적 `latest` 버전으로 추출 +- `datadog;api_key;1` - 버전 `1`의 `datadog` 시크릿에서 `api_key` 필드를 추출 {{% /collapse-content %}} @@ -500,13 +504,13 @@ Datadog Agent 는 `;` 구분 기호를 사용해 JSON으로 형식이 지정된 지원되는 HashiCorp 서비스는 다음과 같습니다. -| secret_backend_type 값 | HashiCorp 서비스 | -| | | -| `hashicorp.vault` | [HashiCorp Vault(Secret Engine 버전 1 및 2)][3000] | +| secret_backend_type 값 | HashiCorp 서비스 | +| ------------------------------------------ | -------------------------------------------------- | +| `hashicorp.vault` | [HashiCorp Vault(Secrets Engine 버전 1 및 2)][3000] | -##### HashiCorp Vault를 설정하는 방법 +##### HashiCorp Vault를 설정하는 방법 {#how-to-set-up-hashicorp-vault} 1. HashiCorp Vault를 실행합니다. 자세한 정보는 [공식 HashiCorp Vault 설명서][3001]를 참조하세요. -2. 볼트에서 시크릿을 풀링할 권한을 부여하는 정책을 작성합니다. `*.hcl` 파일을 생성하고, Secrets Engine 버전 1을 사용하는 경우 다음 권한을 포함: +2. Vault에서 시크릿을 가져올 수 있도록 권한을 부여하는 정책을 작성합니다. `*.hcl` 파일을 생성하고, Secrets Engine Version 1을 사용하는 경우 다음 권한을 포함합니다. ``` path "/" { @@ -528,19 +532,19 @@ path "sys/mounts" { capabilities = ["read"] } ``` -3. `vault policy write <path_to_*.hcl_file>`를 실행합니다. +3. `vault policy write `를 실행합니다. -4. 볼트에 인증할 방법을 선택합니다. AWS 인스턴스 프로필 방법을 사용하는 경우, `vault auth enable aws`를 실행하세요. +4. Vault 인증 방식을 선택합니다. AWS 인스턴스 프로파일 방식을 사용하는 경우 `vault auth enable aws`를 실행합니다. -##### AWS 인스턴스 프로필 지침 +##### AWS 인스턴스 프로파일 지침 {#aws-instance-profile-instructions} -Datadog에서는 HashiCorp Vault를 AWS와 연결된 컴퓨터에서 실행하는 경우, [인스턴스 프로필 방법][3003]을 사용하여 인증하도록 권장합니다. +Datadog은 HashiCorp Vault가 AWS에 연결된 시스템에서 실행되는 경우 [인스턴스 프로파일 방식][3003]을 사용하여 인증할 것을 권장합니다. -이것이 설정되고 나면 [인증별 볼트 정책][3004]을 작성하세요. +설정이 완료되면 [인증 방식별 Vault 정책][3004]을 작성합니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example-3} -다음 예시에서는 HashiCorp Vault 시크릿 경로 접두사가 `/Datadog/Production`이고 파라미터 키가 `apikey`인 것으로 가정합니다. +다음 예시에서는 HashiCorp Vault 시크릿 경로 접두사가 `/Datadog/Production`이고 파라미터 키가 `apikey`라고 가정합니다. ```sh /DatadogAgent/Production/apikey: (SecureString) "" @@ -565,24 +569,24 @@ secret_backend_config: {{% collapse-content title="Kubernetes Secrets" level="h4" expanded=false id="id-for-kubernetes" %}} -**Agent 버전 7.75+**에서 이용 가능 +**Agent 버전 7.75 이상에서 이용 가능** 지원되는 Kubernetes 서비스는 다음과 같습니다. | secret_backend_type 값 | 서비스 | -||| +|---------------------------|---------| | `k8s.secrets` | [Kubernetes Secrets][7000] | -##### 전제 조건 +##### 전제 조건 {#prerequisites} -Kubernetes 시크릿 백엔드에 필요한 조건입니다. - **ServiceAccount 자격 증명**: 기본적으로, 자동으로 마운팅된 ServiceAccount 토큰을 사용합니다(`automountServiceAccountToken: true`, [Kubernetes 설명서](https://kubernetes.io/docs/tasks/configurepodcontainer/configureserviceaccount/#optoutofapicredentialautomounting) 참조). 필요한 경우, 사용자 지정 경로를 구성할 수 있습니다. - **RBAC 권한**: Agent의 ServiceAccount에 대상 네임스페이스에서 시크릿을 읽을 권한이 있어야 함 - **네트워크 액세스**: Agent 포드가 Kubernetes API 서버에 연결할 수 있어야 함 +Kubernetes 시크릿 백엔드를 사용하려면 다음이 필요합니다. +- **ServiceAccount 자격 증명**: 기본적으로 자동 마운팅된 ServiceAccount 토큰(`automountServiceAccountToken: true`, 자세한 내용은 [Kubernetes 설명서](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting) 참조)를 사용합니다. 필요한 경우, 사용자 지정 경로를 구성할 수 있습니다. +- **RBAC 권한**: Agent의 ServiceAccount는 대상 네임스페이스의 시크릿을 읽을 수 있는 권한이 있어야 합니다. +- **네트워크 액세스**: Agent 포드가 Kubernetes API 서버에 연결할 수 있어야 합니다. -##### RBAC 설정 +##### RBAC 설정 {#rbac-setup} -시크릿을 포함하는 각각의 네임스페이스에 대해, 다음 예시를 사용해 올바른 네임스페이스 이름을 사용하여 `Role` 및 `RoleBinding`을 생성합니다. +시크릿이 포함된 각 네임스페이스에 대해 올바른 네임스페이스 이름을 사용하여 다음 예제와 같이 `Role` 및 `RoleBinding`을 생성합니다. ```yaml # Role: grants permission to read secrets @@ -612,7 +616,7 @@ subjects: namespace: datadog # Where Agent runs ``` -##### 구성 예시 +##### 구성 예시 {#configuration-example-4} {{< tabs >}} {{% tab "Agent YAML 파일" %}} @@ -628,12 +632,12 @@ api_key: "ENC[secrets-prod/dd-api-key;api_key]" app_key: "ENC[secrets-prod/dd-api-key;app_key]" ``` -ENC 표기법 형식은 `namespace/secretname;key`입니다. - `namespace`: 시크릿을 포함하는 Kubernetes 네임스페이스 - `secretname`: 시크릿 리소스의 이름 - `key`: 시크릿의 데이터 필드에서 추출할 특정 키 +ENC 표기법 형식은 `namespace/secret-name;key`입니다. +- `namespace`: 시크릿이 포함된 Kubernetes 네임스페이스 +- `secret-name`: Secret 리소스 이름 +- `key`: Secret의 data 필드에서 추출할 특정 키 -**예:** 네임스페이스 `secretsns`에 시크릿이 제공된 경우입니다. +**예:** `secrets-ns` 네임스페이스에 다음과 같은 Secret이 있다고 가정합니다. ```yaml apiVersion: v1 @@ -653,7 +657,7 @@ api_key: "ENC[secrets-ns/dd-api-key;api_key]" app_key: "ENC[secrets-ns/dd-api-key;app_key]" ``` -**복수 네임스페이스 지원:** +**다중 네임스페이스 지원:** 각 시크릿 참조가 서로 다른 네임스페이스를 지정할 수 있습니다(각각에 RBAC를 구성해야 함). ```yaml @@ -679,9 +683,9 @@ datadog: value: "ENC[secrets-ns/dd-api-key;api_key]" ``` -**참고:** API 키를 확인하는 데 시크릿 백엔드를 사용하는 경우, Helm 차트 검증에 플레이스홀더 `apiKey`가 필요합니다. `DD_API_KEY` 환경 변수가 이를 재정의합니다. 시크릿을 포함하는 각 네임스페이스에 RBAC(Role + RoleBinding)를 수동으로 생성해야 합니다. 자세한 내용은 [RBAC 설정](#rbacsetup) 섹션을 참조하세요. +**참고:** 시크릿 백엔드를 사용해 API 키를 해석할 경우 Helm 차트 검증을 위해 자리표시자 `apiKey`가 필요합니다. `DD_API_KEY` 환경 변수가 이를 재정의합니다. 시크릿을 포함하는 각 네임스페이스에 RBAC(Role + RoleBinding)를 수동으로 생성해야 합니다. 자세한 내용은 [RBAC 설정](#rbac-setup) 섹션을 참조하세요. -
    Helm에는 네이티브 secretBackend.type 구성이 없습니다. 환경 변수를 사용하세요.
    +**또는**, Helm 차트 v3.171.0 이상 및 Agent v7.70 이상에서는 환경 변수 대신 기본 제공 `datadog.secretBackend.type` 필드를 사용할 수 있습니다. {{% /tab %}} @@ -708,15 +712,15 @@ spec: value: "ENC[secrets-ns/dd-api-key;api_key]" ``` -**참고:** API 키를 확인하는 데 시크릿 백엔드를 사용할 때, 플레이스홀더 API 키가 Operator 검증을 충족합니다. `DD_API_KEY` 환경 변수가 이를 재정의합니다. 시크릿을 포함하는 각 네임스페이스에 RBAC(Role + RoleBinding)를 수동으로 생성해야 합니다. 자세한 내용은 [RBAC 설정](#rbacsetup) 섹션을 참조하세요. +**참고:** API 키를 확인하는 데 시크릿 백엔드를 사용할 때, 자리표시자 API 키가 Operator 검증을 충족합니다. `DD_API_KEY` 환경 변수가 이를 재정의합니다. 시크릿을 포함하는 각 네임스페이스에 RBAC(Role + RoleBinding)를 수동으로 생성해야 합니다. 자세한 내용은 [RBAC 설정](#rbac-setup) 섹션을 참조하세요. -
    Operator에는 네이티브 secretBackend.type 구성이 없습니다. override.nodeAgent.env의 환경 변수를 사용하세요.
    +**또는**, Datadog Operator v1.25.0 이상 및 Agent v7.70 이상에서는 환경 변수 대신 기본 제공 `spec.global.secretBackend.type` 필드를 사용할 수 있습니다. {{% /tab %}} {{< /tabs >}} -##### 사용자 지정 경로 구성 -설정이 ServiceAccount 기반 인증의 기본 위치를 따르지 않는 경우, 대신 `token_path` 및 `ca_path`를 지정할 수 있습니다. +##### 사용자 지정 경로 구성 {#custom-path-configuration} +ServiceAccount 기반 인증이 기본 위치를 사용하지 않는 경우 `token_path` 및 `ca_path`를 직접 지정할 수 있습니다. {{< tabs >}} {{% tab "Agent YAML" %}} @@ -739,6 +743,9 @@ datadog: - name: DD_SECRET_BACKEND_CONFIG value: '{"token_path":"/custom/path/to/token","ca_path":"/custom/path/to/ca.crt"}' ``` + +**또는**, Helm 차트 v3.171.0 이상에서는 `token_path` 및 `ca_path` 키와 함께 `datadog.secretBackend.type: "k8s.secrets"` 및 `datadog.secretBackend.config`를 사용할 수 있습니다. + {{% /tab %}} {{% tab "Operator" %}} @@ -752,12 +759,15 @@ override: - name: DD_SECRET_BACKEND_CONFIG value: '{"token_path":"/custom/path/to/token","ca_path":"/custom/path/to/ca.crt"}' ``` + +**또는**, Datadog Operator v1.25.0 이상에서는 `token_path` 및 `ca_path` 키와 함께 `spec.global.secretBackend.type: "k8s.secrets"` 및 `spec.global.secretBackend.config`를 사용할 수 있습니다. + {{% /tab %}} {{< /tabs >}} -##### 사용자 지정 API 서버 구성 +##### 사용자 지정 API 서버 구성 {#custom-api-server-configuration} -설정이 기본 `KUBERNETES_SERVICE_HOST` 및 `KUBERNETES_SERVICE_PORT` 환경 변수를 노출하지 않는 경우, Kubernetes REST API와 상호 작용할 `api_server` URL을 제공할 수 있습니다. +기본 `KUBERNETES_SERVICE_HOST` 및 `KUBERNETES_SERVICE_PORT` 환경 변수가 제공되지 않는 환경에서는 Kubernetes REST API와 통신하기 위한 `api_server` URL을 지정할 수 있습니다. {{< tabs >}} {{% tab "Agent YAML" %}} @@ -779,6 +789,9 @@ datadog: - name: DD_SECRET_BACKEND_CONFIG value: '{"api_server":"https://{KUBERNETES_SERVICE_HOST}:{KUBERNETES_SERVICE_PORT}"}' ``` + +**또는**, Helm 차트 v3.171.0 이상에서는 `api_server` 키와 함께 `datadog.secretBackend.type: "k8s.secrets"` 및 `datadog.secretBackend.config`를 사용할 수 있습니다. + {{% /tab %}} {{% tab "Operator" %}} @@ -792,6 +805,9 @@ override: - name: DD_SECRET_BACKEND_CONFIG value: '{"api_server":"https://{KUBERNETES_SERVICE_HOST}:{KUBERNETES_SERVICE_PORT}"}' ``` + +**또는**, Datadog Operator v1.25.0 이상에서는 `api_server` 키와 함께 `spec.global.secretBackend.type: "k8s.secrets"` 및 `spec.global.secretBackend.config`를 사용할 수 있습니다. + {{% /tab %}} {{< /tabs >}} @@ -799,21 +815,21 @@ override: {{% collapse-content title="Docker Secrets" level="h4" expanded=false id="id-for-docker" %}} -**Agent 버전 7.75+**에서 이용 가능 +**Agent 버전 7.75 이상에서 이용 가능** 지원되는 Docker 서비스는 다음과 같습니다. | secret_backend_type 값 | 서비스 | -||| +|---------------------------|---------| | `docker.secrets` | [Docker Secrets][6001] | -##### 전제 조건 +##### 전제 조건 {#prerequisites-1} -Docker 시크릿 백엔드는 [Docker Swarm 시크릿][6002] 및 [Docker Compose 시크릿][6003]을 둘 다 지원합니다. 기본적으로, Swarm 및 Compose는 모두 컨테이너 내 `/run/secrets`(Linux) 또는 `C:\ProgramData\Docker\secrets`(Windows)에 시크릿을 파일로 자동 마운팅합니다. +Docker 시크릿 백엔드는 [Docker Swarm 시크릿][6002] 및 [Docker Compose 시크릿][6003]을 둘 다 지원합니다. 기본적으로 Swarm과 Compose는 시크릿을 컨테이너 내부의 파일로 자동 마운트하며 위치는 Linux의 경우 `/run/secrets`, Windows의 경우 `C:\ProgramData\Docker\secrets`입니다. -**참고**: Compose 시크릿은 파일 기반일 수 있고(로컬 파일을 가리킴) 외부일 수도 있습니다(기존 Swarm 시크릿을 참조). +**참고**: Compose 시크릿은 파일 기반(로컬 파일 참조) 또는 외부 방식(기존 Swarm 시크릿 참조)일 수 있습니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example-5} 다음 구성을 사용하여 Datadog Agent가 Docker Secrets를 사용하도록 구성하세요. @@ -825,8 +841,8 @@ secret_backend_type: docker.secrets api_key: "ENC[dd_api_key]" ``` -ENC 표기법 형식은 시크릿 이름이며, 이는 `/run/secrets/`의 파일명과 같습니다. - `ENC[api_key]`는 `/run/secrets/api_key`(Linux) 또는 `C:\ProgramData\Docker\secrets\api_key`(Windows)에서 읽습니다. +ENC 표기법 형식은 시크릿 이름이며, 이는 `/run/secrets/` 내의 파일 이름에 해당합니다. +- `ENC[api_key]`는 Linux에서는 `/run/secrets/api_key`, Windows에서는 `C:\ProgramData\Docker\secrets\api_key`에서 읽어옵니다. **사용자 지정 시크릿 경로:** Docker Swarm 또는 Compose가 다른 위치에 시크릿을 마운팅하도록 구성된 경우, 다음과 같이 지정할 수 있습니다. @@ -837,7 +853,7 @@ secret_backend_config: secrets_path: /custom/secrets/path ``` -##### Docker Swarm 예시 +##### Docker Swarm 예시 {#docker-swarm-example} Docker Swarm 시크릿을 [생성][6002]하고 사용합니다. @@ -853,21 +869,21 @@ docker service create \ --env DD_SECRET_BACKEND_TYPE="docker.secrets" \ --env DD_SITE="datadoghq.com" \ --env DD_HOSTNAME="dd-agent" \ - datadog/agent:latest + registry.datadoghq.com/agent:latest ``` -시크릿 `dd_api_key`가 `/run/secrets/dd_api_key`에 자동으로 마운팅되고, Agent가 `docker.secrets` 백엔드를 사용해 해당 시크릿을 읽습니다. +시크릿 `dd_api_key`은 자동으로 `/run/secrets/dd_api_key`에 마운팅되며 Agent는 `docker.secrets` 백엔드를 사용하여 이를 읽습니다. -##### Docker Compose 예시 +##### Docker Compose 예시 {#docker-compose-example} -파일 기반 시크릿을 사용해 `dockercompose.yml`을 [생성][6003]합니다. +파일 기반 시크릿을 사용하는 `docker-compose.yml`을 [생성][6003]합니다. ```yaml version: '3.8' services: datadog: - image: datadog/agent:latest + image: registry.datadoghq.com/agent:latest environment: - DD_API_KEY=ENC[dd_api_key] - DD_SECRET_BACKEND_TYPE=docker.secrets @@ -881,7 +897,7 @@ secrets: file: ./secrets/api_key.txt ``` -시크릿 파일 `./secrets/api_key.txt`가 컨테이너의 `/run/secrets/dd_api_key`에 마운팅됩니다. +시크릿 파일 `./secrets/api_key.txt`은 컨테이너 내 `/run/secrets/dd_api_key`에 마운팅됩니다. {{% /collapse-content %}} @@ -889,25 +905,25 @@ secrets: {{% collapse-content title="JSON, YAML 또는 TEXT 파일 시크릿 백엔드" level="h4" expanded=false id="id-for-json-yaml-text" %}} | secret_backend_type 값 | 파일 서비스 | -||| +|---------------------------------------------|-----------------------------------------| |`file.json` |[JSON][4001] | |`file.yaml` |[YAML][4002] | | |`file.text` |[TEXT][4003] | | -##### 파일 권한 -파일 백엔드에는 구성된 JSON, YAML 또는 TEXT 파일에 대한 **읽기** 권한만 있으면 됩니다. 이러한 권한은 로컬 Datadog Agent 사용자에게 부여해야 합니다(Linux에서는 `ddagent`, Windows에서는`ddagentuser`). +##### 파일 권한 {#file-permissions} +파일 백엔드는 구성된 JSON, YAML 또는 TEXT 파일에 대한 **읽기** 권한만 필요합니다. 이 권한은 로컬 Datadog Agent 사용자(Linux에서는 `dd-agent`, Windows에서는 `ddagentuser`)에게 부여해야 합니다. {{< tabs >}} {{% tab "JSON 파일 백엔드" %}} -**참고**: JSON 깊이는 한 레벨만 지원됨(예: `{"key": "value"}`) +**참고**: JSON은 한 단계 깊이만 지원됩니다(예: `{"key": "value"}`). -##### 구성 예시 +##### 구성 예시 {#configuration-example-6} JSON 파일을 사용해 시크릿을 로컬로 저장할 수 있습니다. -예를 들어 다음 내용을 포함한 `/path/to/secret.json`의 JSON 파일 사용: +예를 들어 `/path/to/secret.json`에 있는 JSON 파일에 다음 내용이 포함되어 있다고 가정합니다. ```json { @@ -930,13 +946,13 @@ secret_backend_config: {{% tab "YAML 파일 백엔드" %}} -**참고**: YAML 깊이는 한 레벨만 지원됨(예: `key: value`) +**참고**: YAML은 한 단계 깊이만 지원됩니다(예: `key: value`). -##### 구성 예시 +##### 구성 예시 {#configuration-example-7} YAML 파일을 사용해 시크릿을 로컬로 저장할 수 있습니다. -예를 들어 `/path/to/secret.yaml`에 다음을 포함한 YAML 파일이 있는 경우: +예를 들어 `/path/to/secret.yaml`에 있는 YAML 파일에 다음 내용이 포함되어 있다고 가정합니다. ```yaml datadog_api_key: your api key @@ -955,23 +971,23 @@ secret_backend_config: {{% tab "TEXT 파일 백엔드" %}} -**Agent 버전 7.75+**에서 이용 가능 +**Agent 버전 7.75 이상에서 이용 가능** -**참고**: 각각의 시크릿은 자체적인 개별 텍스트 파일에 저장되어야 합니다. +**참고**: 각 시크릿은 개별 텍스트 파일에 별도로 저장해야 합니다. -##### 구성 예시 +##### 구성 예시 {#configuration-example-8} 개별 텍스트 파일을 사용해 시크릿을 로컬로 저장할 수 있습니다. -예를 들어 `/path/to/secrets/`의 텍스트 파일을 사용합니다. +예를 들어 `/path/to/secrets/`에 다음 파일들이 있다고 가정합니다. -다음을 포함한 `/path/to/secrets/dd_api_key`: +`/path/to/secrets/dd_api_key` 파일 내용: ``` your_api_key_value ``` -다음을 포함한 `/path/to/secrets/dd_app_key`: +`/path/to/secrets/dd_app_key` 파일 내용: ``` your_app_key_value @@ -989,13 +1005,13 @@ secret_backend_config: secrets_path: /path/to/secrets ``` -##### 경로 보안: +##### 경로 보안: {#path-security} - `ENC[]`의 상대 경로는 `secrets_path`와 관련해 확인됨(예: `secret_path: /path/to/secrets`가 있는 `ENC[dd_api_key]`는 `/path/to/secrets/dd_api_key`에 대해 확인됨) - `ENC[]`의 절대 경로는 `secrets_path` 내에 있어야 함(예: `secret_path: /path/to/secrets`가 있는 `ENC[/path/to/secrets/dd_api_key]`가 정상 작동함) - 경로 횡단 시도(예: `ENC[../etc/passwd]`)는 차단되며 “경로가 허용된 디렉터리를 벗어남” 오류가 발생하며 실패함 +- `ENC[]`의 상대 경로는 `secrets_path`를 기준으로 해석됩니다(예: `ENC[dd_api_key]`와 `secret_path: /path/to/secrets`을 사용하면 `/path/to/secrets/dd_api_key`로 해석됨). +- `ENC[]`의 절대 경로는 `secrets_path` 내부에 있어야 합니다(예: `ENC[/path/to/secrets/dd_api_key]`와 `secret_path: /path/to/secrets`은 정상적으로 동작). +- 경로 탐색 시도(예: `ENC[../etc/passwd]`)가 차단되고 "경로가 허용된 디렉터리를 벗어남" 오류와 함께 실패합니다. -**참고:** 일부 도구는 시크릿을 파일로 내보낼 때 자동으로 줄 바꿈을 추가합니다. 이 상황에 대처하는 방법은 [후행 줄 바꿈 제거](#removetrailinglinebreaks)를 참조하세요. +**참고:** 일부 도구는 시크릿을 파일로 내보낼 때 자동으로 줄바꿈 문자를 추가합니다. 처리 방법은 [후행 줄 바꿈 제거](#remove-trailing-line-breaks)를 참조하세요. {{% /tab %}} {{< /tabs >}} @@ -1003,12 +1019,12 @@ secret_backend_config: {{% /collapse-content %}} -### 옵션 2: Kubernetes 및 Docker에 기본 제공 스크립트 사용 +### 옵션 2: Kubernetes 및 Docker용 기본 제공 스크립트 사용 {#option-2-using-the-built-in-script-for-kubernetes-and-docker} -컨테이너화된 환경의 경우, Datadog Agent의 컨테이너 이미지에 기본 제공 스크립트 `/readsecret_multiple_providers.sh`가 포함됩니다(버전 v7.32.0부터). 이 스크립트가 다음에서 시크릿 읽기를 지원합니다. +컨테이너화된 환경의 경우 Datadog Agent 컨테이너 이미지는 v7.32.0부터 기본 제공 스크립트 `/readsecret_multiple_providers.sh`를 포함합니다. 이 스크립트는 다음 위치의 시크릿을 읽을 수 있습니다. * 파일: `ENC[file@/path/to/file]` 사용 -* Kubernetes Secrets: `ENC[k8s_secret@namespace/secretname/key]` 사용 +* Kubernetes Secrets: `ENC[k8s_secret@namespace/secret-name/key]` 사용 {{< tabs >}} {{% tab "Datadog Operator" %}} @@ -1049,7 +1065,7 @@ DD_SECRET_BACKEND_COMMAND=/readsecret_multiple_providers.sh {{% /tab %}} {{< /tabs >}} -#### 예: 마운팅된 파일에서 읽기 +#### 예: 마운팅된 파일에서 읽기 {#example-reading-from-mounted-files} Kubernetes는 Agent가 시크릿을 확인하기 위해 읽을 수 있는 포드 안에서 [시크릿을 파일로 노출][2]을 지원합니다. @@ -1076,20 +1092,20 @@ password: ENC[file@/etc/secret-volume/password] ``` **참고**: - 시크릿은 시크릿이 마운팅되는 포드와 같은 네임스페이스에 존재해야 합니다. - 스크립트가 모든 하위 폴더에 액세스할 수 있습니다. 여기에는 민감한 `/var/run/secrets/kubernetes.io/serviceaccount/token`도 포함됩니다. 따라서 Datadog에서는 `/var/run/secrets` 대신 전용 폴더를 사용할 것을 권장합니다. +- 시크릿은 마운팅되는 포드와 동일한 네임스페이스에 존재해야 합니다. +- 이 스크립트는 민감한 `/var/run/secrets/kubernetes.io/serviceaccount/token`를 포함한 모든 하위 폴더에 접근할 수 있습니다. 따라서 Datadog에서는 `/var/run/secrets` 대신 전용 폴더를 사용할 것을 권장합니다. -[Docker swarm 시크릿][3]은 `/run/secrets` 폴더에 마운팅됩니다. 예를 들어 Docker 시크릿 `db_prod_passsword`는 Agent 컨테이너의 `/run/secrets/db_prod_password`에 있습니다. 이것은 구성에서 `ENC[file@/run/secrets/db_prod_password]`로 참조됩니다. +[Docker swarm 시크릿][3]은 `/run/secrets` 폴더에 마운팅됩니다. 예를 들어 Docker 시크릿 `db_prod_passsword`은 Agent 컨테이너 내 `/run/secrets/db_prod_password`에 위치합니다. 구성에서는 `ENC[file@/run/secrets/db_prod_password]`로 참조할 수 있습니다. -#### 예: 네임스페이스 전체에서 Kubernetes 시크릿 읽기 +#### 예시: 네임스페이스 간 Kubernetes 시크릿 읽기 {#example-reading-a-kubernetes-secret-across-namespaces} -Agent가 다른 네임스페이스에서 시크릿을 읽기를 바라는 경우, `k8s_secret@` 접두사를 사용합니다. 예: +Agent가 다른 네임스페이스의 Secret을 읽어야 하는 경우 `k8s_secret@` 접두사를 사용합니다. 예를 들면 다음과 같습니다. ``` password: ENC[k8s_secret@database/database-secret/password] ``` -Agent의 서비스 계정이 시크릿을 읽게 허용하도록 RBAC를 구성합니다. 다음 역할은 `database` 네임스페이스의 `databasesecret` 시크릿에 대한 읽기 액세스 권한을 부여합니다. +Agent의 서비스 계정이 시크릿을 읽게 허용하도록 RBAC를 구성합니다. 다음 Role은 `database` 네임스페이스의 `database-secret` Secret에 대한 읽기 권한을 부여합니다. {{< tabs >}} {{% tab "Datadog Operator" %}} @@ -1107,7 +1123,7 @@ spec: secrets: - "database-secret" ``` -***참고***: 역할 목록의 각 네임스페이스가 Datadog Operator 배포의 `WATCH_NAMESPACE` 또는 `DD_AGENT_WATCH_NAMESPACE` 환경 변수에도 구성되어야 합니다. +***참고***: 역할 목록에 포함된 각 네임스페이스는 Datadog Operator 배포의 `WATCH_NAMESPACE` 또는 `DD_AGENT_WATCH_NAMESPACE` 환경 변수에도 구성되어 있어야 합니다. {{% /tab %}} {{% tab "Helm" %}} @@ -1155,9 +1171,9 @@ roleRef: apiGroup: "" ``` -이 `Role`은 `Namespace: database`의 `Secret: databasesecret`에 대한 액세스 권한을 부여합니다. `RoleBinding`은 이 권한을 `Namespace: default`의 `ServiceAccount: datadogagent`에 링크업합니다. 이는 배포된 리소스와 관련하여 클러스터에 수동으로 추가되어야 합니다. +이 `Role`은 `Namespace: database`의 `Secret: database-secret`에 대한 액세스 권한을 부여합니다. `RoleBinding`은 이 권한을 `Namespace: default`의 `ServiceAccount: datadog-agent`와 연결합니다. 이는 배포된 리소스와 관련하여 클러스터에 수동으로 추가되어야 합니다. -### 옵션 3: 사용자 정의 실행 파일 생성 +### 옵션 3: 사용자 지정 실행 파일 생성 {#option-3-creating-a-custom-executable} Agent는 시크릿을 검색하기 위해 사용자가 제공하는 외부 실행 파일을 사용합니다. 이 실행 파일은 새 시크릿이 검색되어 Agent의 수명 주기 동안 캐싱될 때 사용됩니다. 시크릿을 업데이트하거나 회전해야 하는 경우, Agent를 재시작해 다시 로드해야 합니다. @@ -1174,11 +1190,11 @@ Agent는 표준 입력을 통해 확인할 시크릿 핸들 목록이 포함된 } ``` -* `version`(문자열): 형식 버전입니다. -* `secrets`(문자열 목록): 각 문자열은 가져올 시크릿의 핸들입니다. +* `version`(string): 형식 버전. +* `secrets` (문자열 목록): 가져올 시크릿의 핸들 목록. -실행 파일은 다음과 같은 STDOUT 출력을 통해 응답합니다. +실행 파일은 다음 STDOUT 출력으로 응답해야 합니다. ``` { @@ -1187,14 +1203,14 @@ Agent는 표준 입력을 통해 확인할 시크릿 핸들 목록이 포함된 } ``` -* `value`(문자열): 구성에 사용될 시크릿 값입니다. 오류가 발생하는 경우, 이 값이 `null`일 수 있습니다. -* `error`(문자열): 오류 메시지 또는 `null`입니다. +* `value`(string): 구성에 사용할 시크릿 값. 오류 발생 시 `null`이 될 수 있습니다. +* `error` (string): 오류 메시지 또는 `null`. 시크릿이 확인되지 않으면(0이 아닌 종료 코드를 반환하거나 null이 아닌 오류 반환) Agent가 관련 구성을 무시합니다. -**`stderr`**에 민감한 정보를 출력하지 마세요. 바이너리가 `0`이 아닌 다른 상태 코드로 종료되면, Agent가 문제 해결을 위해 실행 파일의 표준 오류 출력을 로깅합니다. +**민감한 정보는 `stderr`**에 출력하지 마세요. 바이너리가 `0`이 아닌 다른 상태 코드로 종료되면, Agent가 문제 해결을 위해 실행 파일의 표준 오류 출력을 로깅합니다. -어느 언어든 사용해서 자체적인 시크릿 검색 실행 파일을 빌드할 수도 있습니다. 여기서 유일한 요구 사항은 이전에 설명한 입력/출력 형식을 따라야 한다는 것입니다. +어떤 언어든 사용해서 자체적인 시크릿 검색 실행 파일을 빌드할 수도 있습니다. 여기서 유일한 요구 사항은 이전에 설명한 입력/출력 형식을 따라야 한다는 것입니다. 다음은 더미 시크릿을 반환하는 Go 예시입니다. @@ -1263,7 +1279,7 @@ Agent가 바이너리를 사용해 시크릿을 확인하도록 구성하려면 secret_backend_command: /path/to/binary ``` -## Agent 보안 요구 사항 +## Agent 보안 요구 사항 {#agent-security-requirements} Agent는 제공된 실행 파일을 하위 프로세스로 실행합니다. 실행 패턴은 Linux와 Windows에서 각기 다릅니다. @@ -1272,25 +1288,25 @@ Agent는 제공된 실행 파일을 하위 프로세스로 실행합니다. 실 Linux에서는 실행 파일이 다음과 같은 요건을 충족해야 합니다. -* Agent를 실행하는 사용자와 같은 사용자에게 속합니다(기본적으로 `ddagent`, 또는 컨테이너 안의 `root`). -* `group` 또는 `other`에 대한 권한이 없습니다. -* 소유자에 대하여 최소한 **실행** 권한이 있습니다. +* Agent를 실행하는 동일한 사용자(`dd-agent`가 기본값, 컨테이너 내부에서는 `root`)에 속해야 합니다. +* `group` 또는 `other` 권한이 없어야 합니다. +* 소유자에 대해 최소한 **실행** 권한이 있어야 합니다. {{% /tab %}} {{% tab "Windows" %}} Windows에서는 실행 파일이 다음과 같은 요건을 충족해야 합니다. -* `ddagentuser`(Agent를 실행하는 데 사용된 사용자)에 대한 **읽기** 또는 **실행** 권한이 있습니다. -* **관리자** 그룹, 기본 제공 **로컬 시스템** 계정 또는 Agent 사용자 컨텍스트(기본값: `ddagentuser`)를 제외한 다른 모든 사용자 또는 그룹에 대한 권한이 없습니다. -* 유효한 Win32 애플리케이션이어서 Agent가 실행할 수 있어야 합니다(예: PowerShell 또는 Python 스크립트는 작동하지 않음). +* `ddagentuser`(Agent 실행 사용자)에 대해 **읽기** 또는 **실행** 권한이 있어야 합니다. +* **관리자** 그룹, 기본 제공 **로컬 시스템** 계정 또는 Agent 사용자 컨텍스트(`ddagentuser`가 기본값)를 제외한 다른 사용자나 그룹에는 어떠한 권한도 부여되어서는 안 됩니다. +* Agent가 실행할 수 있는 유효한 Win32 애플리케이션이어야 합니다(예: PowerShell 스크립트나 Python 스크립트는 사용할 수 없음). {{% /tab %}} {{< /tabs >}} -**참고**: 실행 파일은 Agent와 같은 환경 변수를 공유합니다. +**참고**: 실행 파일은 Agent와 동일한 환경 변수를 공유합니다. -## 런타임에 시크릿 새로 고침 +## 런타임에 시크릿 새로 고침 {#refreshing-secrets-at-runtime} Agent v7.67부터는 Agent를 재시작하지 않고 확인된 시크릿을 새로 고치도록 구성할 수 있습니다. @@ -1306,10 +1322,10 @@ secret_refresh_interval: 3600 # refresh every hour datadog-agent secret refresh ``` -### API/APP 키 새로 고침 +### API/APP 키 새로 고침 {#apiapp-key-refresh} 시크릿으로 풀링한 API/APP 키는 런타임 새로 고침을 지원합니다. -이것을 활성화하려면 `datadog.yaml`에서 `secret_refresh_interval`(초 단위)을 설정하면 됩니다. +이를 활성화하려면 `datadog.yaml`에서 `secret_refresh_interval`(초 단위)를 설정합니다. ```yaml api_key: ENC[] @@ -1317,12 +1333,12 @@ api_key: ENC[] secret_refresh_interval: 3600 # refresh every hour ``` -기본적으로 Agent는 최초 새로 고침을 `secret_refresh_interval` 기간 이내에서 무작위로 설정해 +기본적으로 Agent는 최초 새로 고침을 `secret_refresh_interval` 윈도우 이내에서 무작위로 설정해 Agent 플릿이 동시에 새로 고쳐지지 않게 합니다. 키는 시작 시에 확인되고, 첫 간격 이내에 한 번 새로 고쳐지며, 이후에는 매 간격마다 새로 고쳐집니다. 가동 중지를 방지하려면 플릿 전체가 업데이트된 키를 풀링한 다음에만 기존 키를 무효화하세요. 키 사용량은 -[플릿 관리](https://app.datadoghq.com/fleet) 페이지에서 추적할 수 있습니다. +[Fleet Management](https://app.datadoghq.com/fleet) 페이지의 사용량에 영향을 줄 수 있습니다. 이 동작을 비활성화하려면 다음을 설정하면 됩니다. @@ -1330,7 +1346,7 @@ Agent 플릿이 동시에 새로 고쳐지지 않게 합니다. 키는 시작 secret_refresh_scatter: false ``` -### Autodiscovery 검사 시크릿 새로 고침 +### Autodiscovery 검사 시크릿 새로 고침 {#autodiscovery-check-secrets-refresh} Agent v7.76부터는 템플릿이 `ENC[]` 구문을 사용하는 경우 예약된 [Autodiscovery][1] 검사가 런타임에 시크릿을 새로 고칠 수 있습니다. ```yaml @@ -1354,15 +1370,15 @@ annotations: } ``` -Agent는 그런 다음 `secret_refresh_interval`에 설정된 간격에 시크릿 새로 고침을 트리거하거나, `datadogagent secret refresh`를 사용해 수동으로 트리거할 수 있습니다. +이 경우 Agent는 `secret_refresh_interval`에 설정된 주기에 따라 자동으로 시크릿을 새로 고침하거나, `datadog-agent secret refresh`를 사용하여 수동으로 새로 고침을 트리거할 수 있습니다. -### API 키 실패/무효화 시 자동 시크릿 새로 고침 +### API 키 실패/무효화 시 자동 시크릿 새로 고침 {#automatic-secrets-refresh-on-api-key-failure-invalidation} Agent 버전 v7.74부터는 Agent가 잘못된 API 키를 감지하면 시크릿을 자동으로 새로 고칠 수 있습니다. 이것은 Agent가 Datadog으로부터 403 Forbidden 응답을 수신하거나, 정기 상태 검사에서 잘못되었거나 만료된 API 키가 감지될 때 발생합니다. -이 기능을 활성화하려면 `datadog.yaml` 파일에서 `secret_refresh_on_api_key_failure_interval`을 분 단위 간격으로 설정하세요. 비활성화하려면 `0`으로 설정합니다(기본값). +이 기능을 활성화하려면 `datadog.yaml` 파일에서 `secret_refresh_on_api_key_failure_interval`를 분 단위 간격으로 설정하세요. 비활성화하려면 `0`(기본값)로 설정합니다. -이 간격은 두 번의 새로 고침 사이 최소 시간으로, 잘못된 API 키가 감지되었을 때 시크릿 관리 솔루션에 요청이 과도하게 전송되는 것을 방지합니다. +이 간격은 두 번의 새로 고침 사이의 최소 시간으로, 잘못된 API 키가 감지되었을 때 시크릿 관리 솔루션에 요청이 과도하게 전송되는 것을 방지합니다. ```yaml api_key: ENC[] @@ -1372,7 +1388,7 @@ secret_refresh_on_api_key_failure_interval: 10 이 설정은 `secret_refresh_interval`과 호환됩니다. -### DDOT 컬렉터 새로 고침 활성화 +### DDOT 컬렉터 새로 고침 활성화 {#enabling-ddot-collector-refresh} [DDOT 컬렉터][6]를 사용 중이고 API/APP 새로 고침을 활성화하고자 하는 경우, `datadog.yaml` 파일에 다음과 같은 추가 구성을 추가해야 합니다. ``` @@ -1381,13 +1397,13 @@ agent_ipc: config_refresh_interval: 3600 ``` -이렇게 하면 시크릿을 새로 고친 다음에 DDOT 컬렉터가 Agent와 동기화된 상태를 유지하도록 보장됩니다. Agent가 정기적으로 구성 상태를 확인하는 것과 마찬가지로, DDOT 컬렉터는 이 설정을 사용해 Agent에서 업데이트된 값을 정기적으로 검사합니다. +이렇게 하면 시크릿을 새로 고친 다음에 DDOT 컬렉터가 Agent와 동기화된 상태를 유지하도록 보장됩니다. Agent가 정기적으로 구성 상태를 확인하는 것과 마찬가지로, DDOT 컬렉터는 이 구성을 사용해 Agent에서 업데이트된 값을 정기적으로 검사합니다. -## 문제 해결 +## 문제 해결 {#troubleshooting} -### 감지된 시크릿 나열 +### 감지된 시크릿 나열 {#listing-detected-secrets} -Agent CLI의 `secret` 명령을 사용하면 설정과 관련한 모든 오류가 표시됩니다. 예를 들어 실행 파일의 권한이 잘못된 경우가 있습니다. 또한 찾은 모든 핸들과 핸들의 위치를 나열합니다. +Agent CLI의 `secret` 명령을 사용하면 설정과 관련된 모든 오류가 표시됩니다. 예를 들어 실행 파일의 권한이 잘못된 경우가 있습니다. 또한 찾은 모든 핸들과 핸들의 위치를 나열합니다. Linux에서는 이 명령이 실행 파일의 파일 모드, 소유자 및 그룹을 출력합니다. Windows에서는 ACL 권한을 나열합니다. @@ -1451,9 +1467,9 @@ Secrets handle decrypted: {{% /tab %}} {{< /tabs >}} -### 시크릿을 주입한 이후 구성 보기 +### 시크릿이 주입된 후의 구성 확인 {#seeing-configurations-after-secrets-were-injected} -검사의 구성이 어떻게 확인되는지 신속하게 확인하려면 `configcheck` 명령을 사용하면 됩니다. +검사 구성이 실제로 어떻게 해석되었는지 빠르게 확인하려면 `configcheck` 명령을 사용할 수 있습니다. ```shell sudo -u dd-agent -- datadog-agent configcheck @@ -1477,9 +1493,9 @@ password: === ``` -**참고**: 구성 파일의 변경 사항을 반영하려면 Agent를 [재시작][7]해야 합니다. +**참고**: 구성 파일 변경 사항을 반영하려면 Agent를 [재시작][7]해야 합니다. -### secret_backend_command 디버깅 +### secret_backend_command 디버깅 {#debugging-your-secret-backend-command} Agent 외부에서 테스트 또는 디버그하려면 Agent가 이를 실행하는 방식을 흉내낼 수 있습니다. @@ -1491,12 +1507,12 @@ Agent 외부에서 테스트 또는 디버그하려면 Agent가 이를 실행하 sudo -u dd-agent bash -c "echo '{\"version\": \"1.0\", \"secrets\": [\"secret1\", \"secret2\"]}' | /path/to/the/secret_backend_command" ``` -Datadog Agent를 설치할 때 `ddagent` 사용자가 생성됩니다. +Datadog Agent를 설치할 때 `dd-agent` 사용자가 생성됩니다. {{% /tab %}} {{% tab "Windows" %}} -##### 권한 관련 오류 +##### 권한 관련 오류 {#rights-related-errors} 다음 오류가 발생하면 설정에 누락된 항목이 있다는 의미입니다. @@ -1544,18 +1560,18 @@ Number of secrets resolved: 0 Secrets handle resolved: ``` -##### 실행 파일 테스트 +##### 실행 파일 테스트 {#testing-your-executable} -시크릿을 가져올 때 Agent가 실행 파일을 실행합니다. Datadog Agent는 `ddagentuser`를 사용해 실행됩니다. 이 사용자는 구체적인 권한이 없지만, `Performance Monitor Users` 그룹에 속합니다. 이 사용자의 비밀번호는 설치 시 무작위로 생성되며, 어디에도 저장되지 않습니다. +시크릿을 가져올 때 Agent가 실행 파일을 실행합니다. Datadog Agent는 `ddagentuser` 사용자로 실행됩니다. 이 사용자는 특별한 권한은 없지만 `Performance Monitor Users` 그룹에 속해 있습니다. 이 사용자의 비밀번호는 설치 시 무작위로 생성되며, 어디에도 저장되지 않습니다. -이는 실행 파일이 기본 사용자나 개발 사용자와는 작동할 수 있으나 Agent로 실행될 때는 작동하지 않을 수 있다는 의미입니다. `ddagentuser`의 권한이 더 제한되어 있기 때문입니다. +따라서 실행 파일이 기본 사용자 또는 개발 사용자 계정에서는 정상 동작하더라도, 더 제한된 권한을 가진 `ddagentuser` 계정으로 실행될 경우에는 동작하지 않을 수 있습니다. -실행 파일을 Agent와 같은 조건으로 테스트하려면 dev box에서 `ddagentuser`의 비밀번호를 업데이트하세요. 이렇게 하면 `ddagentuser`로 인증한 다음 Agent와 같은 컨텍스트에서 실행 파일을 실행할 수 있습니다. +Agent와 동일한 조건에서 실행 파일을 테스트하려면 개발 환경에서 `ddagentuser` 계정의 비밀번호를 변경하세요. 그러면 `ddagentuser` 계정으로 로그인하여 Agent와 동일한 컨텍스트에서 실행 파일을 테스트할 수 있습니다. 그렇게 하려면 다음과 같은 단계를 따릅니다. -1. `로컬 보안 정책`의 `로컬 정책/사용자 권한 할당/로컬 로그온 거부` 목록에서 `ddagentuser`를 제거합니다. -2. `ddagentuser`에 새 비밀번호를 설정합니다(설치 시에 생성된 비밀번호는 어디에도 저장되지 않기 때문). PowerShell에서 다음을 실행합니다. +1. `Local Security Policy`의 `Local Policies/User Rights Assignement/Deny Log on locally` 목록에서 `ddagentuser`를 제거합니다. +2. `ddagentuser`의 새 비밀번호를 설정합니다(설치 시 생성된 비밀번호는 저장되지 않으므로 알 수 없음). PowerShell에서 다음을 실행합니다. ```powershell $user = [ADSI]"WinNT://./ddagentuser"; $user.SetPassword("a_new_password") @@ -1565,7 +1581,7 @@ Secrets handle resolved: sc.exe config DatadogAgent password= "a_new_password" ``` -이제 `ddagentuser`로 로그인해 실행 파일을 테스트할 수 있습니다. Datadog에는 [Powershell 스크립트][10]가 있어 실행 파일을 +이제 `ddagentuser` 계정으로 로그인하여 실행 파일을 테스트할 수 있습니다. Datadog에는 [Powershell 스크립트][10]가 있어 실행 파일을 다른 사용자 자격으로 테스트하는 데 도움이 됩니다. 이는 사용자 컨텍스트를 전환하고, Agent가 실행 파일을 실행하는 방식을 흉내 냅니다. 사용 방법 예시: @@ -1583,28 +1599,28 @@ exit code: 0 ``` -[9]: https://github.com/DataDog/datadogagent/blob/master/docs/public/secrets/SetSecretPermissions.ps1 -[10]: https://github.com/DataDog/datadogagent/blob/master/docs/public/secrets/secrets_tester.ps1 +[9]: https://github.com/DataDog/datadog-agent/blob/master/docs/public/secrets/Set-SecretPermissions.ps1 +[10]: https://github.com/DataDog/datadog-agent/blob/master/docs/public/secrets/secrets_tester.ps1 {{% /tab %}} {{< /tabs >}} -### Agent가 시작을 거부함 +### Agent가 시작을 거부하는 경우 {#agent-refusing-to-start} -시작 시 Agent가 맨 먼저 하는 일은 `datadog.yaml`을 로드하고 그에 포함된 시크릿을 해독하는 것입니다. 이것을 로깅을 설정하기 전에 수행합니다. 이는 Windows와 같은 플랫폼에서 `datadog.yaml`을 로드할 때 발생하는 오류가 로그에 기록되는 것이 아니라 `stderr`에 출력된다는 의미입니다. 이런 상황은 시크릿에 대해 Agent에 제공한 실행 파일이 오류를 반환할 때 발생할 수 있습니다. +Agent는 시작 시 가장 먼저 `datadog.yaml`을 로드하고 그 안에 있는 모든 시크릿을 복호화합니다. 이것을 로깅을 설정하기 전에 수행합니다. 따라서 Windows와 같은 플랫폼에서는 `datadog.yaml` 로드 중 발생한 오류가 로그에 기록되지 않고 `stderr`에만 표시됩니다. 이런 상황은 시크릿에 대해 Agent에 제공한 실행 파일이 오류를 반환할 때 발생할 수 있습니다. -`datadog.yaml`에 시크릿이 있고 Agent가 시작을 거부하는 경우 다음을 시도해 보세요. +`datadog.yaml`에 시크릿이 있고 Agent가 시작되지 않는 경우 다음을 시도하세요. -* `stderr`을 확인할 수 있도록 Agent를 수동으로 시작해 보세요. -* `datadog.yaml`에서 시크릿을 제거하고, 먼저 검사 구성 파일의 시크릿으로 테스트합니다. +* Agent를 수동으로 시작하여 `stderr`을 확인합니다. +* `datadog.yaml`에서 시크릿을 제거하고 먼저 검사 구성 파일에 시크릿을 추가하여 테스트합니다. -### Kubernetes 권한 테스트 -Kubernetes에서 직접 시크릿을 읽을 때는 `kubectl auth` 명령으로 권한을 두 번 검사할 수 있습니다. 다음은 이 명령의 일반적인 형식입니다. +### Kubernetes 권한 테스트 {#testing-kubernetes-permissions} +Kubernetes에서 직접 시크릿을 읽는 경우 `kubectl auth` 명령을 사용하여 권한을 확인할 수 있습니다. 다음은 이 명령의 일반적인 형식입니다. ``` kubectl auth can-i get secret/ -n --as system:serviceaccount:: ``` -이전 [Kubernetes Secrets 예시](#examplereadingakubernetessecretacrossnamespaces)를 생각해 보세요. 여기에서는 시크릿 `Secret:databasesecret`이 `Namespace: database`에 존재하고, 서비스 계정 `ServiceAccount:datadogagent`가 `Namespace: default`에 존재합니다. +앞서 설명한 [Kubernetes Secrets 예시](#example-reading-a-kubernetes-secret-across-namespaces)에서 시크릿 `Secret:database-secret`이 `Namespace: database`에 존재하고 서비스 계정 `ServiceAccount:datadog-agent`가 `Namespace: default`에 존재한다고 가정합니다. 이 경우, 다음 명령을 사용합니다. @@ -1614,13 +1630,13 @@ kubectl auth can-i get secret/database-secret -n database --as system:serviceacc 이 명령은 해당 권한이 Agent가 이 시크릿을 조회하는 데 유효한지를 반환합니다. -### 후행 줄 바꿈 {#removetrailinglinebreaks} 제거 +### 후행 줄 바꿈 제거 {#remove-trailing-line-breaks} -일부 시크릿 관리 도구는 파일을 통해 시크릿을 내보낼 때 자동으로 줄 바꿈을 추가합니다. 이러한 줄 바꿈을 제거하려면 [datadog.ymal 구성 파일][8]에 `secret_backend_remove_trailing_line_break: true`를 설정하거나, 특히 컨테이너화된 환경에서는 환경 변수 `DD_SECRET_BACKEND_REMOVE_TRAILING_LINE_BREAK`를 사용해 같은 작업을 할 수 있습니다. +일부 시크릿 관리 도구는 파일을 통해 시크릿을 내보낼 때 자동으로 줄 바꿈을 추가합니다. 이러한 줄 바꿈은 [datadog.yaml 구성 파일][8]에서 `secret_backend_remove_trailing_line_break: true`를 구성하여 제거할 수 있습니다. 특히 컨테이너 환경에서는 동일한 목적으로 환경 변수 `DD_SECRET_BACKEND_REMOVE_TRAILING_LINE_BREAK`를 사용할 수도 있습니다. -### 시크릿 핸들의 Autodiscovery 변수 +### 시크릿 핸들의 Autodiscovery 변수 {#autodiscovery-variables-in-secret-handles} -시크릿 핸들에서 [Autodiscovery][1] 변수를 사용할 수도 있습니다. Agent가 시크릿을 확인하기 전에 이러한 변수를 확인합니다. 예: +시크릿 핸들에서 [Autodiscovery][1] 변수를 사용할 수도 있습니다. Agent가 시크릿을 확인하기 전에 이러한 변수를 확인합니다. 예를 들면 다음과 같습니다. ``` instances: @@ -1629,30 +1645,30 @@ instances: password: ENC[db_prod_password_%%host%%] ``` -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ko/agent/kubernetes/integrations/ -[2]: https://kubernetes.io/docs/tasks/injectdataapplication/distributecredentialssecure/#createapodthathasaccesstothesecretdatathroughavolume +[2]: https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#create-a-pod-that-has-access-to-the-secret-data-through-a-volume [3]: https://docs.docker.com/engine/swarm/secrets/ [6]: /ko/opentelemetry/setup/ddot_collector/ -[7]: /ko/agent/configuration/agentcommands/#restarttheagent -[8]: /ko/agent/configuration/agentconfigurationfiles/ +[7]: /ko/agent/configuration/agent-commands/#restart-the-agent +[8]: /ko/agent/configuration/agent-configuration-files/ [1000]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html -[1001]: https://docs.aws.amazon.com/systemsmanager/latest/userguide/systemsmanagerparameterstore.html -[1006]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switchroleec2_instanceprofiles.html +[1001]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html +[1006]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html -[2000]: https://docs.microsoft.com/enus/Azure/keyvault/secrets/quickcreateportal +[2000]: https://docs.microsoft.com/en-us/Azure/key-vault/secrets/quick-create-portal -[3000]: https://learn.hashicorp.com/tutorials/vault/staticsecrets +[3000]: https://learn.hashicorp.com/tutorials/vault/static-secrets [3001]: https://developer.hashicorp.com/ -[3003]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switchroleec2_instanceprofiles.html -[3004]: https://developer.hashicorp.com/vault/docs/auth/aws#iamauthenticationinferences +[3003]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html +[3004]: https://developer.hashicorp.com/vault/docs/auth/aws#iam-authentication-inferences [4001]: https://en.wikipedia.org/wiki/JSON @@ -1660,15 +1676,15 @@ instances: [4003]: https://en.wikipedia.org/wiki/TEXT -[5000]: https://cloud.google.com/security/products/secretmanager -[5001]: https://cloud.google.com/docs/authentication/applicationdefaultcredentials -[5002]: https://docs.cloud.google.com/secretmanager/docs/accesscontrol -[5003]: https://docs.cloud.google.com/secretmanager/docs/accessingtheapi +[5000]: https://cloud.google.com/security/products/secret-manager +[5001]: https://cloud.google.com/docs/authentication/application-default-credentials +[5002]: https://docs.cloud.google.com/secret-manager/docs/access-control +[5003]: https://docs.cloud.google.com/secret-manager/docs/accessing-the-api [6001]: https://docs.docker.com/engine/swarm/secrets/ -[6002]: https://docs.docker.com/engine/swarm/secrets/#howdockermanagessecrets -[6003]: https://docs.docker.com/compose/howtos/usesecrets/ +[6002]: https://docs.docker.com/engine/swarm/secrets/#how-docker-manages-secrets +[6003]: https://docs.docker.com/compose/how-tos/use-secrets/ [7000]: https://kubernetes.io/docs/concepts/configuration/secret/ \ No newline at end of file diff --git a/content/ko/containers/docker/_index.md b/content/ko/containers/docker/_index.md index 891e8c508ab..f3d1e69d067 100644 --- a/content/ko/containers/docker/_index.md +++ b/content/ko/containers/docker/_index.md @@ -5,10 +5,11 @@ aliases: - /ko/agent/basic_agent_usage/docker/ - /ko/integrations/docker_daemon/ - /ko/docker/ +description: Docker 컨테이너 및 컨테이너 런타임을 위한 Datadog Agent 설치 및 구성 further_reading: - link: https://app.datadoghq.com/release-notes?category=Container%20Monitoring tag: 릴리스 노트 - text: 최근에 출시된 Datadog 컨테이너를 확인해보세요! (앱 로그인 필요). + text: 최근에 출시된 Datadog Containers를 확인해보세요! (앱 로그인 필요). - link: /agent/docker/log/ tag: 설명서 text: 애플리케이션 로그 수집 @@ -20,304 +21,316 @@ further_reading: text: Prometheus 메트릭 수집 - link: /agent/docker/integrations/ tag: 설명서 - text: 애플리케이션 메트릭 및 로그 자동 수집 + text: 애플리케이션의 메트릭 및 로그 자동 수집 - link: /agent/guide/autodiscovery-management/ tag: 설명서 text: 데이터 수집을 컨테이너의 하위 집합으로만 제한 - link: /agent/docker/tag/ tag: 설명서 text: 컨테이너에서 내보내는 모든 데이터에 태그 할당 -title: Docker, containerd, Podman용 Docker 에이전트 +- link: https://learn.datadoghq.com/courses/agent-on-docker + tag: 학습 센터 + text: Docker용 Agent +title: Docker, containerd 및 Podman을 위한 Docker Agent --- +## 개요 {#overview} -## 개요 +Datadog Docker Agent는 Docker, containerd 및 Podman 런타임을 지원하는 [Datadog Agent][1]의 버전입니다. 지원되는 Docker 버전은 [지원되는 플랫폼][2]을 참조하세요. -Datadog Docker Agent는 호스트 [Agent][1]의 컨테이너화된 버전입니다. Docker Agent는 Docker, containerd, Podman 런타임을 지원합니다. 공식 [Docker 이미지][2]는 Docker Hub, GCR, ECR-Public에서 제공됩니다. +## Datadog Docker Agent 설치 {#install-the-datadog-docker-agent} +[Datadog의 인앱 설치 흐름][3]을 따르세요. 이것은 권장하는 방법으로, API 키, 필수 최소 구성 및 다양한 Datadog 기능을 위한 토글과 함께 `docker run` 명령을 생성하는 데 도움이 됩니다. -
    Docker Hub에는 이미지 풀링 속도 제한이 있습니다. Docker Hub 고객이 아닌 경우, Datadog에서는 Datadog 에이전트와 클러스터 에이전트 구성을 업데이트하여 GCR이나 ECR에서 풀링하도록 구성할 것을 권고합니다. 예를 들어, 컨테이너 레지스트리 변경을 참고하세요. +{{< img src="/agent/basic_agent_usage/agent_install_docker.png" alt="Docker에서 Datadog Agent에 대한 인앱 설치 단계입니다." style="width:90%;">}} -이미지는 64비트 x86 및 Arm v8 아키텍처에서 사용할 수 있습니다. +## Datadog Docker Agent 수동 실행 {#manually-run-the-datadog-docker-agent} -| ECR-Public | GCR | Docker Hub | -|----------------------------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------------------| -| [에이전트 v6+][4]
    `docker pull public.ecr.aws/datadog/agent` | [에이전트 v6+][3]
    `docker pull gcr.io/datadoghq/agent` | [에이전트 v6+][2]
    `docker pull datadog/agent` | -| [에이전트 v5][7]
    `docker pull public.ecr.aws/datadog/docker-dd-agent`| [에이전트 v5][6]
    `docker pull gcr.io/datadoghq/docker-dd-agent` | [에이전트 v5][5]
    `docker pull datadog/docker-dd-agent` | +Fleet Automation 흐름은 Datadog의 권장 지침에 따라 Datadog Agent 컨테이너를 구성하는 데 도움을 줍니다. 이를 수동으로 구성하려면 아래의 예제를 참조하세요. - -이 페이지에 있는 CLI 명령은 도커 런타임에 대한 것입니다. 컨테이너화된 런타임인 경우 `docker`를 `nerdctl`로 대체하며, 포드맨 런타임의 경우 `podman`으로 대체합니다. - -## 설정 - -Docker Agent를 설치하지 않았다면 [앱 내 설치 지침][8]을 따르거나 아래를 참고하세요. [지원 버전][9]은 Agent 문서에서 확인할 수 있습니다. 원스텝 설치 명령을 사용하고 ``를 [Datadog API 키][10]로, ``를 {{< region-param key=dd_site code="true" >}}로 변경합니다. +모니터링하려는 각 호스트에서 Agent를 Docker 컨테이너로 한 번 실행하려면 다음 명령을 사용하세요. ``를 Datadog API 키로, ``를 {{< region-param key=dd_site code="true" >}}로 바꿉니다. {{< tabs >}} -{{% tab "Standard" %}} +{{% tab "Linux" %}} ```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 +docker run -d --cgroupns host --pid host --name dd-agent \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -e DD_SITE= \ + -e DD_API_KEY= \ + registry.datadoghq.com/agent:7 ``` +{{% /tab %}} +{{% tab "Windows" %}} +Datadog Agent는 Windows Server 2019(LTSC) 및 Windows Server 2022(LTSC)에서 지원됩니다. 다음 PowerShell 명령으로 Datadog Agent 컨테이너를 실행할 수 있습니다. + +```powershell +docker run -d --name dd-agent ` + -v \\.\pipe\docker_engine:\\.\pipe\docker_engine ` + -e DD_SITE= ` + -e DD_API_KEY= ` + registry.datadoghq.com/agent:7 +``` +{{% /tab %}} +{{< /tabs >}} -ECR-Public인 경우: +**참고**: Docker Compose의 경우 [Compose 및 Datadog Agent][4]를 참조하세요. Podman에서 Agent를 배포하려면 [Podman 컨테이너 런타임과 함께 Docker 통합 사용][5]의 지침을 참조하세요. -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +## 통합 {#integrations} -**참고**: GCR 또는 ECR-Public 이외의 다른 레지스트리를 사용하는 경우, 이미지를 업데이트해야 합니다. +Datadog Docker Agent가 실행 중이면 [Datadog 통합 구성][6]을 통해 애플리케이션 컨테이너에서 메트릭과 로그를 자동으로 수집할 수 있습니다. Datadog의 [Container Autodiscovery][7]를 사용하면 컨테이너화된 시스템의 동적 리소스에 대한 모니터링 구성을 정의할 수 있습니다. -**참고**: 네트워크 모니터링, 보안 에이전트, oom_kill 점검 등 system-probe가 제공하는 일부 기능을 사용하려면 `-v /etc/os-release:/host/etc/os-release:ro`을 사용하여 `/etc/os-release` 파일을 연결해야 합니다. Linux 배포판에 `/etc/os-release` 파일이 포함되어 있지 않으면, 제공되는 동일한 파일(예: `/etc/redhat-release`, `/etc/fedora-release`)을 연결합니다. +## Datadog Docker Agent의 구성 옵션 {#configuration-options-for-the-datadog-docker-agent} -{{% /tab %}} -{{% tab "Amazon Linux" %}} +### 컨테이너 레지스트리 {#container-registries} -Amazon Linux < v2의 경우: +이미지는 64비트 x86 및 Arm v8 아키텍처에서 사용할 수 있습니다. Datadog은 Datadog Container Registry, Google Artifact Registry(GAR), Amazon ECR, Azure ACR, Docker Hub에 컨테이너 이미지를 게시합니다. -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 -``` -ECR-Public인 경우: +{{% container-images-table %}} -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +기본적으로 위의 지침은 Datadog Container Registry(`registry.datadoghq.com`)에서 이미지를 가져옵니다. 이 레지스트리를 사용하는 경우 방화벽이 `us-docker.pkg.dev/datadog-prod/public-images`로의 트래픽을 허용하는지 확인하세요. 레지스트리가 요청을 이 URL로 리디렉션할 수 있습니다. -Amazon Linux v2의 경우: +
    Docker Hub에는 이미지 풀 속도 제한이 적용됩니다. Docker Hub 고객이 아니라면 Datadog은 다른 레지스트리에서 이미지를 가져오도록 구성을 업데이트할 것을 권장합니다. 관련 지침은 컨테이너 레지스트리 변경을 참조하세요.
    -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 -``` -ECR-Public인 경우: +### 환경 변수 {#environment-variables} -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +비컨테이너화된 환경에서는 Datadog Agent의 구성 옵션이 [`datadog.yaml`][8]에 설정됩니다. Datadog Docker Agent의 경우 환경 변수를 통해 `datadog.yaml` 구성 옵션을 설정할 수 있습니다. -{{% /tab %}} -{{% tab "Windows" %}} +#### 전역 옵션 {#global-options} -Datadog Agent는 Windows Server 2019(LTSC) 및 Windows Server 2022(LTSC)에서 지원됩니다. +`DD_API_KEY` +: Datadog API 키(**필수**). -```shell -docker run -d --name dd-agent -e DD_SITE= -e DD_API_KEY= -v \\.\pipe\docker_engine:\\.\pipe\docker_engine gcr.io/datadoghq/agent -``` +`DD_ENV` +: 내보내는 모든 데이터에 대해 전역 `env` 태그를 설정합니다. -ECR-Public인 경우: +`DD_HOSTNAME` +: 메트릭에 사용할 호스트 이름(자동 감지에 실패할 경우). -```shell -docker run -d --name dd-agent -e DD_SITE= -e DD_API_KEY= -v \\.\pipe\docker_engine:\\.\pipe\docker_engine public.ecr.aws/datadog/agent -``` +`DD_HOSTNAME_FILE` +: 일부 환경에서는 호스트 이름의 자동 감지가 적절하지 않으며, 환경 변수를 사용하여 값을 설정할 수 없습니다. 이 경우, 호스트의 파일을 사용하여 적절한 값을 제공할 수 있습니다. `DD_HOSTNAME`이 비어 있지 않은 값으로 설정되면 이 옵션은 무시됩니다. -{{% /tab %}} -{{% tab "Unprivileged" %}} +`DD_TAGS` +: 공백으로 구분된 호스트 태그. 예: `key1:value1 key2:value2`. -(설정) 비권한 설치를 실행하려면 설치 명령에 `--group-add=`를 추가합니다. 예를 들어: +`DD_SITE` +: 메트릭, 트레이스 및 로그의 대상 사이트입니다. Datadog 사이트를 다음으로 설정: `{{< region-param key="dd_site" >}}`. Defaults to `datadoghq.com`. -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 --group-add= -``` -ECR-Public인 경우: +`DD_DD_URL` +: 제출 메트릭에 대한 URL을 덮어쓰기 위한 추가적인 설정입니다. +`DD_URL` (6.36+/7.36+) +: `DD_DD_URL`의 별칭입니다. `DD_DD_URL`이 이미 설정되어 있으면 무시됩니다. -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 --group-add= -``` +`DD_CHECK_RUNNERS` +: Agent는 기본적으로 모든 검사를 동시에 실행합니다(기본값 = `4`개 러너). 검사를 순차적으로 실행하려면 값을 `1`로 설정합니다. 많은 수의 검사(또는 느린 검사)를 실행해야 하는 경우, `collector-queue` 구성 요소가 지연되어 상태 검사에 실패할 수 있습니다. 이 경우 러너 수를 늘려 검사를 병렬로 실행할 수 있습니다. -{{% /tab %}} -{{< /tabs >}} +`DD_APM_ENABLED` +: 트레이스 수집을 활성화합니다. 기본값은 `true`입니다. 추가적인 트레이스 수집 환경 변수에 대한 자세한 내용은 [Docker 애플리케이션 트레이스][9]를 참조하세요. -**참고**: Docker Compose의 경우 [Compose 및 Datadog Agent][11]를 확인하세요. +`DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION` +: 일부 환경에서는 호스트의 초기 로그에 올바른 태그가 포함되지 않을 수 있습니다. 로그의 새로운 호스트에서 태그가 누락된 경우, 이 환경 변수를 포함하고 `"10m"`로 설정하세요. -## 통합 +#### 프록시 설정 {#proxy-settings} -Agent가 실행되면 [Datadog의 Autodiscovery 기능][12]을 사용하여 애플리케이션 컨테이너에서 자동으로 메트릭과 로그를 수집합니다. +Agent v6.4.0(및 Trace Agent는 v6.5.0)부터 다음 환경 변수를 사용하여 Agent 프록시 설정을 재정의할 수 있습니다. +`DD_PROXY_HTTP` +: `http``http` 요청에 대해 프록시로 사용할 수 있는 HTTP URL. -## 환경 변수 +`DD_PROXY_HTTPS` +: `https``https` 요청에 대해 프록시로 사용할 수 있는 HTTPS URL. -Agent의 [주요 설정 파일][13]은 `datadog.yaml`입니다. Docker Agent의 경우 `datadog.yaml` 설정 옵션은 환경 변수를 통해 전달됩니다. +`DD_PROXY_NO_PROXY` +: 프록시를 사용하지 않으며 공백으로 구분된 URL 목록. -### 전역 옵션 +프록시 설정에 대한 자세한 내용은 [Agent v6 프록시 설명서][10]를 참조하세요. -| 환경 변수 | 설명 | -|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_API_KEY` | Datadog API 키(**필수**). | -| `DD_ENV` | 내보내기한 모든 데이터에 글로벌 `env` 태그 설정 | -| `DD_HOSTNAME` | 메트릭에 사용할 호스트 이름(자동 감지에 실패할 경우). | -| `DD_HOSTNAME_FILE` | 일부 환경에서는 호스트 이름 자동 감지가 제대로 작동하지 않아 환경 변수로 값을 설정할 수 없습니다. 이러한 경우 호스트의 파일을 사용하여 적절한 값을 제공할 수 있습니다. `DD_HOSTNAME`이 비어 있지 않은 값으로 설정되면 이 옵션은 무시됩니다. | -| `DD_TAGS` | 호스트 태그는 공백으로 구분합니다. 예: `key1:value1 key2:value2`. | -| `DD_SITE` | 메트릭, 트레이스 및 로그에 대한 목적지 사이트입니다. Datadog 사이트를 `{{< region-param key="dd_site" >}}`으로 설정합니다. `datadoghq.com`에 대한 기본값입니다. | -| `DD_DD_URL` | 제출 메트릭에 대한 URL을 덮어쓰기 위한 추가적인 설정입니다. | -| `DD_URL` (6.36+/7.36+) | `DD_DD_URL`에 대한 별칭입니다. `DD_DD_URL`이(가) 이미 설정된 경우 무시합니다. | -| `DD_CHECK_RUNNERS` | Agent는 기본적으로 모든 점검을 동시에 실행합니다(기본값 = `4` 러너). 점검을 순차적으로 실행하려면 값을 `1`로 설정하세요. 많은 수의 점검(또는 느린 점검)을 실행해야 하는 경우, `collector-queue` 구성 요소가 지연되어 상태 점검이 실패할 수 있습니다. 러너 수를 늘려 검사를 병렬로 동시에 실행하세요. | -| `DD_APM_ENABLED` | 트레이스 수집을 활성화하며, 기본값은 `true`입니다. 추가적인 트레이스 수집 환경 변수에 대한 자세한 내용은 [Docker 애플리케이션 추적][14]을 참고하세요. | -| `DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION` | 일부 환경에서는 호스트의 초기 로그가 올바른 태그를 포함하지 않을 수 있습니다. 로그에서 새 호스트에 대한 태그가 누락된 경우, 해당 환경 변수를 포함시키고 `"10m"`로 설정합니다.| +#### 선택적 수집 Agent {#optional-collection-agents} -### 프록시 설정 +선택적 수집 Agent는 보안 또는 성능상의 이유로 기본적으로 비활성화되어 있습니다. 다음 환경 변수를 사용하여 활성화하세요. -Agent v6.4.0(및 Trace Agent는 v6.5.0)부터 다음 환경 변수를 사용하여 Agent 프록시 설정을 재정의할 수 있습니다. +`DD_APM_NON_LOCAL_TRAFFIC` +: [다른 컨테이너에서 추적][11]할 때 로컬이 아닌 트래픽을 허용합니다. + +`DD_LOGS_ENABLED` +: Logs Agent를 사용하여 [로그 수집][12]을 활성화합니다. + +`DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED` +: Process Agent를 사용하여 [실시간 프로세스 수집][13]을 활성화합니다. Docker 소켓을 사용할 수 있다면 [실시간 컨테이너 보기][14]가 기본적으로 활성화되어 있습니다. + +#### DogStatsD(사용자 지정 메트릭) {#dogstatsd-custom-metrics} + +[StatsD 프로토콜][15]을 사용해 사용자 지정 메트릭을 전송하세요. + +`DD_DOGSTATSD_NON_LOCAL_TRAFFIC` +: 다른 컨테이너에서 DogStatsD 패킷을 수신합니다(사용자 지정 메트릭 전송에 필요). + +`DD_HISTOGRAM_PERCENTILES` +: 계산할 히스토그램 백분위수(공백으로 구분)입니다. 기본값은 `0.95`입니다. + +`DD_HISTOGRAM_AGGREGATES` +: 계산할 히스토그램 집계(공백으로 구분)입니다. 기본값은 `"max median avg count"`입니다. + +`DD_DOGSTATSD_SOCKET` +: 수신할 유닉스 소켓의 경로입니다. `rw` 마운트된 볼륨 내 경로여야 합니다. + +`DD_DOGSTATSD_ORIGIN_DETECTION` +: UNIX 소켓 메트릭에 대해 컨테이너 감지 및 태깅을 활성화합니다. + +`DD_DOGSTATSD_TAGS` +: 이 DogStatsD 서버가 수신한 모든 메트릭, 이벤트 및 서비스 검사에 추가하기 위한 추가 태그입니다. 예: `"env:golden group:retrievers"`. + +`DD_USE_DOGSTATSD` +: DogStatsD 라이브러리에서 사용자 지정 메트릭 전송을 활성화하거나 비활성화합니다. +[Unix 도메인 소켓을 통한 DogStatsD][16]에 대해 자세히 알아보세요. + +#### 태깅 {#tagging} + +Datadog은 태그를 할당할 때 [unified service tagging][17]을 사용하는 것이 좋습니다. + +Datadog은 Docker, Kubernetes, ECS, Swarm, Mesos, Nomad 및 Rancher에서 일반적으로 사용되는 태그를 자동으로 수집합니다. 더 많은 태그를 추출하려면 다음 옵션을 사용하세요. + +`DD_CONTAINER_LABELS_AS_TAGS` +: 컨테이너 레이블을 추출합니다. 이 환경 변수는 `DD_DOCKER_LABELS_AS_TAGS`와 동일합니다. + +`DD_CONTAINER_ENV_AS_TAGS` +: 컨테이너 환경 변수를 추출합니다. 이 환경 변수는 `DD_DOCKER_ENV_AS_TAGS`와 동일합니다. -| 환경 변수 | 설명 | -|---------------------|-------------------------------------------------------------------| -| `DD_PROXY_HTTP` | `http` 요청에 대해 프록시로 사용할 수 있는 HTTP URL | -| `DD_PROXY_HTTPS` | `https` 요청에 대해 프록시로 사용할 수 있는 HTTPS URL | -| `DD_PROXY_NO_PROXY` | 프록시를 사용하지 않아야 하며, 공백으로 구분된 URL 목록. | +`DD_COLLECT_EC2_TAGS` +: AWS 통합을 사용하지 않고 사용자 지정 EC2 태그를 추출합니다. -프록시 설정에 대한 자세한 내용은 [Agent v6 프록시 문서][15]를 참고하세요. +[Docker 태그 추출][18] 설명서에서 자세한 내용을 확인하세요. -### Optional collection Agents +#### 시크릿 파일 사용 {#using-secret-files} -Optional collection Agents는 보안 또는 성능상의 이유로 기본적으로 비활성화되어 있습니다. 다음 환경 변수를 사용하여 활성화하세요. +통합 자격 증명은 Docker 또는 Kubernetes 시크릿에 저장되어 Autodiscovery 템플릿에서 사용할 수 있습니다. 자세한 내용은 [시크릿 관리 설명서][19]를 참조하세요. -| 환경 변수 | 설명 | -|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_APM_NON_LOCAL_TRAFFIC` | [다른 컨테이너에서 추적][16]할 때 로컬이 아닌 트래픽을 허용합니다. | -| `DD_LOGS_ENABLED` | 로그 에이전트를 통해 [로그 수집][17]을 활성화합니다. | -| `DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED` | Process Agent를 사용하여 [실시간 프로세스 수집][18]을 활성화하세요. Docker 소켓을 사용할 수 있다면 [실시간 컨테이너 보기][19]가 기본적으로 활성화되어 있습니다. | +#### 컨테이너 무시 {#ignore-containers} -### DogStatsD(커스텀 메트릭) +로그 수집, 메트릭 수집 및 Autodiscovery에서 컨테이너를 제외합니다. Datadog은 기본적으로 Kubernetes 및 OpenShift `pause` 컨테이너를 제외합니다. 이 허용 목록과 차단 목록은 Autodiscovery에만 적용되며, 트레이스 및 DogStatsD에는 영향을 미치지 않습니다. 이 환경 변수의 값은 정규 표현식을 지원합니다. -[StatsD 프로토콜][20]을 사용하여 커스텀 메트릭 전송: +`DD_CONTAINER_INCLUDE` +: 포함할 컨테이너의 허용 목록(공백으로 구분). 모두 포함하려면 `.*`를 사용하세요. 예: `"image:image_name_1 image:image_name_2"`, `image:.*` OpenShift 환경 내에서 ImageStreams를 사용할 때는 이미지 대신 컨테이너 이름을 사용하세요. 예: `"name:container_name_1 name:container_name_2"`, `name:.*` -| 환경 변수 | 설명 | -|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | 다른 컨테이너에서 DogStatsD 패킷 수신(커스텀 메트릭 전송에 필요) | -| `DD_HISTOGRAM_PERCENTILES` | 계산을 위한 히스토그램 백분위수(공백으로 구분)입니다. 기본값은 `0.95`입니다. | -| `DD_HISTOGRAM_AGGREGATES` | 계산을 위해 히스토그램을 집계합니다(공백으로 구분). 기본값은 "max median avg count"입니다. | -| `DD_DOGSTATSD_SOCKET` | 수신할 Unix 소켓 경로입니다. `rw`로 연결된 볼륨 내에 있어야 합니다. | -| `DD_DOGSTATSD_ORIGIN_DETECTION` | Unix 소켓 메트릭을 위한 컨테이너 감지 및 태깅을 활성화합니다. | -| `DD_DOGSTATSD_TAGS` | 이 DogStatsD 서버가 수신한 모든 메트릭, 이벤트 및 서비스 검사에 추가할 태그입니다. 예: `"env:golden group:retrievers"` | -| `DD_USE_DOGSTATSD` | DogStatsD 라이브러리에서 커스텀 메트릭 전송을 활성화하거나 비활성화합니다. | -[Unix 도메인 소켓을 통한 DogStatsD][21]에 대해 자세히 알아보세요. +`DD_CONTAINER_EXCLUDE` +: 제외할 컨테이너의 차단 목록(공백으로 구분). 모두 제외하려면 `.*`를 사용하세요. 예: `"image:image_name_3 image:image_name_4"`, `image:.*` (**참고**: 이 변수는 Autodiscovery에만 적용됩니다.) -### 태깅 +`DD_CONTAINER_INCLUDE_METRICS` +: 포함하려는 메트릭의 컨테이너 허용 목록. -태그를 할당할 때 [통합 서비스 태깅][22]을 사용하는 것이 좋습니다. +`DD_CONTAINER_EXCLUDE_METRICS` +: 제외하려는 메트릭의 컨테이너 차단 목록. -Datadog은 Docker, Kubernetes, ECS, Swarm, Mesos, Nomad, Rancher에서 공통 태그를 자동으로 수집합니다. 더 많은 태그를 추출하려면 다음 옵션을 사용하세요. +`DD_CONTAINER_INCLUDE_LOGS` +: 포함하려는 로그의 컨테이너 허용 목록. -| 환경 변수 | 설명 | -|-------------------------------|---------------------------------------------------------------------------------------------------------| -| `DD_CONTAINER_LABELS_AS_TAGS` | 컨테이너 라벨을 추출합니다. 이 환경은 기존 `DD_DOCKER_LABELS_AS_TAGS` 환경과 동일합니다. | -| `DD_CONTAINER_ENV_AS_TAGS` | 컨테이너 환경 변수를 추출합니다. 이 환경은 기존 `DD_DOCKER_ENV_AS_TAGS` 환경과 동일합니다. | -| `DD_COLLECT_EC2_TAGS` | AWS 통합을 사용하지 않고 커스텀 EC2 태그를 추출합니다. | +`DD_CONTAINER_EXCLUDE_LOGS` +: 제외하려는 로그의 컨테이너 차단 목록. -[Docker 태그 추출][23] 문서에서 자세한 내용을 확인하세요. +`DD_AC_INCLUDE` +: **지원 중단됨**. 포함할 컨테이너의 허용 목록(공백으로 구분). 모두 포함하려면 `.*`를 사용하세요. 예: `"image:image_name_1 image:image_name_2"`, `image:.*` -### 비밀 파일 사용 +`DD_AC_EXCLUDE` +: **지원 중단됨**. 제외할 컨테이너의 차단 목록(공백으로 구분). 모두 제외하려면 `.*`를 사용하세요. 예: `"image:image_name_3 image:image_name_4"`, `image:.*` (**참고**: 이 변수는 Autodiscovery에만 적용됩니다.) -통합 자격 증명 Docker 또는 Kubernetes 비밀에 저장되어 Autodiscovery 템플릿에서 사용할 수 있습니다. 자세한 내용은 [비밀 관리 문서][24]를 참고하세요. +더 많은 예는 [컨테이너 탐지 관리][20] 페이지에서 확인할 수 있습니다. -### 컨테이너 무시 +**참고**: `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` 및 `.stopped.total` 메트릭은 이러한 설정의 영향을 받지 않습니다. 모든 컨테이너가 계속 집계됩니다. 이는 컨테이너 과금에도 영향을 주지 않습니다. -로그 수집, 메트릭 수집 및 Autodiscovery에서 컨테이너를 제외합니다. Datadog은 기본적으로 Kubernetes 및 OpenShift `pause` 컨테이너를 제외합니다. 이러한 허용 목록과 차단 목록은 Autodiscovery에만 적용되며, 트레이스 및 DogStatsD에는 영향을 미치지 않습니다. 이러한 환경 변수의 값은 정규 표현식을 지원합니다. +**참고**: containerd를 사용할 때, `DD_CONTAINERD_NAMESPACES` 및 `DD_CONTAINERD_EXCLUDE_NAMESPACES`를 사용하여 네임스페이스별로 컨테이너를 무시할 수 있습니다. 두 가지 모두 공백으로 구분된 네임스페이스 목록입니다. `DD_CONTAINERD_NAMESPACES`가 설정되면, Agent는 목록에 있는 네임스페이스에 속하는 컨테이너의 데이터를 보고합니다. `DD_CONTAINERD_EXCLUDE_NAMESPACES`가 설정되면, Agent는 목록에 있는 네임스페이스에 속하지 않는 모든 컨테이너의 데이터를 보고합니다. -| 환경 변수 | 설명 | -|--------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_CONTAINER_INCLUDE` | 포함할 컨테이너 허용 목록(공백으로 구분). 모두 포함하려면 `.*` 사용. 예: `"image:image_name_1 image:image_name_2"`, `image:.*` OpenShift 환경에서 ImageStreams를 사용할 때는 image 대신 container name을 사용하세요. 예: "name:container_name_1 name:container_name_2", name:.* | -| `DD_CONTAINER_EXCLUDE` | 제외할 컨테이너의 차단 목록(공백으로 구분). 모두 제외할 때 `.*` 사용. 예: `"image:image_name_3 image:image_name_4"` (**참고**: 이 변수는 Autodiscovery에만 적용), `image:.*` | -| `DD_CONTAINER_INCLUDE_METRICS` | 포함하려는 메트릭의 컨테이너 허용 목록입니다. | -| `DD_CONTAINER_EXCLUDE_METRICS` | 제외하려는 메트릭의 컨테이너 차단 목록입니다. | -| `DD_CONTAINER_INCLUDE_LOGS` | 포함하려는 로그의 컨테이너 허용 목록입니다. | -| `DD_CONTAINER_EXCLUDE_LOGS` | 제외하려는 로그의 컨테이너 차단 목록입니다. | -| `DD_AC_INCLUDE` | **더 이상 사용되지 않음**. 포함할 컨테이너의 허용 목록(공백으로 구분). 모두 포함하려면 `.*` 사용. 예: `"image:image_name_1 image:image_name_2"`, `image:.*` | -| `DD_AC_EXCLUDE` | **더 이상 사용되지 않음**. 제외할 컨테이너의 차단 목록(공백으로 구분). 모두 제외할 때 `.*` 사용. 예: `"image:image_name_3 image:image_name_4"`(**참고**: 이 변수는 Autodiscovery에만 적용), `image:.*` | +#### Autodiscovery {#autodiscovery} -더 많은 예는 [컨테이너 탐지 관리][25] 페이지에서 확인할 수 있습니다. +`DD_LISTENERS` +: 실행할 Autodiscovery 리스너입니다. -**참고**: `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total`, `.stopped.total` 메트릭은 이러한 설정의 영향을 받지 않습니다. 모든 컨테이너가 집계되며, 컨테이너당 청구에는 영향을 미치지 않습니다. +`DD_EXTRA_LISTENERS` +: 추가로 실행할 Autodiscovery 리스너입니다. 이들은 `datadog.yaml` 구성 파일의 `listeners` 섹션에 정의된 변수에 추가됩니다. -**참고**: containerd를 사용할 때 `DD_CONTAINERD_NAMESPACES` 및 `DD_CONTAINERD_EXCLUDE_NAMESPACES`를 사용하여 네임스페이스별로 컨테이너를 무시할 수 있습니다. 두 가지 모두 공백으로 구분된 네임스페이스 목록입니다. `DD_CONTAINERD_NAMESPACES`를 설정하면 Agent는 목록에 있는 네임스페이스에 속하는 컨테이너에 대한 데이터를 보고합니다. `DD_CONTAINERD_EXCLUDE_NAMESPACES`를 설정하면 Agent는 목록의 네임스페이스에 속하는 컨테이너를 제외한 모든 컨테이너에 대한 데이터를 보고합니다. +`DD_CONFIG_PROVIDERS` +: Agent트가 검사 구성 정보를 수집하기 위해 호출해야 하는 제공자들입니다. 기본 제공자는 `docker`입니다. Docker 제공자는 컨테이너 레이블에 내장된 템플릿을 처리합니다. -### 자동탐지 +`DD_EXTRA_CONFIG_PROVIDERS` +: 사용할 추가 Autodiscovery 구성 제공자입니다. 이들은 `datadog.yaml` 구성 파일의 `config_providers` 섹션에 정의된 변수에 추가됩니다. -| 환경 변수 | 설명 | -|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_LISTENERS` | 실행할 Autodiscovery 리스너. | -| `DD_EXTRA_LISTENERS` | 실행할 추가 Autodiscovery 리스너. `datadog.yaml` 설정 파일의 `listeners` 섹션에 정의된 변수 외에 추가됩니다. | -| `DD_CONFIG_PROVIDERS` | 점검 구성을 수집하기 위해 에이전트가 호출해야 하는 공급자. 기본 공급자는 `docker`입니다. Docker 공급자는 컨테이너 라벨에 포함된 템플릿을 처리합니다. | -| `DD_EXTRA_CONFIG_PROVIDERS` | 사용 가능한 추가 Autodiscovery 설정 공급자. `datadog.yaml` 설정 파일의 `config_providers` 섹션에 정의된 변수 외에 추가됩니다. | +#### 기타 {#miscellaneous} -### 기타 +`DD_PROCESS_AGENT_CONTAINER_SOURCE` +: 컨테이너 소스 자동 감지를 무시하고 단일 소스를 강제로 설정합니다. 예: `"docker"`, `"ecs_fargate"`, `"kubelet"`. Agent v7.35.0부터는 일반적으로 필요하지 않습니다. -| 환경 변수 | 설명 | -|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | 컨테이너 소스 자동 감지를 덮어쓰고 단일 소스를 강제로 사용합니다. 예: `"docker"`, `"ecs_fargate"`, `"kubelet"`. Agent v7.35.0부터는 필요하지 않습니다. | -| `DD_HEALTH_PORT` | 포트 `5555`에서 Agent 상태 점검을 노출하려면 이를 `5555`로 설정하세요. | +`DD_HEALTH_PORT` +: 포트 `5555`에서 Agent 상태 점검을 노출하려면 이를 `5555`로 설정하세요. -## 명령 +## 명령어 {#commands} -모든 Docker Agent 명령은 [Agent Commands 가이드][26]에서 확인하세요. +모든 Docker Agent 명령은 [Agent Commands 가이드][21]에서 확인하세요. -## 수집한 데이터 +## 수집된 데이터 {#data-collected} -### 메트릭 +### Metrics {#metrics} -기본적으로 Docker Agent는 다음과 같은 핵심 점검을 통해 메트릭을 수집합니다. 다른 기술의 메트릭을 수집하려면 [Integrations](#integrations) 섹션을 확인하세요. +기본적으로 Docker Agent는 다음 핵심 검사를 통해 메트릭을 수집합니다. 기타 기술로부터 메트릭을 수집하려면 [통합](#integrations) 섹션을 참조하세요. -| Check | 메트릭 | -|-------------|---------------| -| 컨테이너 | [메트릭][27] -| CPU | [시스템][28] | -| 디스크 | [디스크][29] | -| Docker | [Docker][30] | -| 파일 관리 | [시스템][28] | -| IO | [시스템][28] | -| 로드 | [시스템][28] | -| 메모리 | [시스템][28] | -| 네트워크 | [네트워크][31] | -| NTP | [NTP][32] | -| 업타임 | [시스템][28] | +| 검사 | 메트릭 | +| ----------- | ------------- | +| 컨테이너 | [메트릭][22] | +| CPU | [시스템][23] | +| 디스크 | [디스크][24] | +| Docker | [Docker][25] | +| File Handle | [시스템][23] | +| IO | [시스템][23] | +| Load | [시스템][23] | +| 메모리 | [시스템][23] | +| 네트워크 | [네트워크][26] | +| NTP | [NTP][27] | +| 가동 시간 | [시스템][23] | -### 이벤트 +### 이벤트 {#events} Docker Agent는 Agent가 시작되거나 재시작될 때 Datadog에 이벤트를 보냅니다. -### 서비스 검사 +### 서비스 검사 {#service-checks} -**datadog.agent.up**:
    -에이전트가 Datadog에 연결할 수 없는 경우 `CRITICAL`을 반환하고, 그렇지 않은 경우 `OK`를 반환합니다. +**datadog.agent.up**
    +Agent가 Datadog에 연결할 수 없는 경우 `CRITICAL`을 반환하고, 그렇지 않으면 `OK`를 반환합니다. -**datadog.agent.check_status**:
    -에이전트 검사가 Datadog에 메트릭을 보낼 수 없는 경우 `CRITICAL`을 반환하고, 그렇지 않은 경우에는 `OK`를 반환합니다. +**datadog.agent.check_status**
    +Agent 검사가 Datadog에 Metrics를 보낼 수 없는 경우 `CRITICAL`을 반환하고, 그렇지 않으면 `OK`를 반환합니다. -## 단일 단계 APM 계측 제거 +## Single Step APM Instrumentation 제거 {#uninstall-single-step-apm-instrumentation} -Single Step APM Instrumentation으로 Datadog Docker Agent를 설치한 후 Agent를 제거하려면 [추가 명령을 실행][33]하여 APM Instrumentation을 제거해야 합니다. +Single Step APM Instrumentation으로 Datadog Docker Agent를 설치한 후 Agent를 제거하려면 [추가 명령을 실행][28]하여 APM Instrumentation을 제거해야 합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ko/agent/ -[2]: https://hub.docker.com/r/datadog/agent -[3]: https://console.cloud.google.com/gcr/images/datadoghq/GLOBAL/agent -[4]: https://gallery.ecr.aws/datadog/agent -[5]: https://hub.docker.com/r/datadog/docker-dd-agent -[6]: https://console.cloud.google.com/gcr/images/datadoghq/GLOBAL/docker-dd-agent?gcrImageListsize=30 -[7]: https://gallery.ecr.aws/datadog/docker-dd-agent -[8]: https://app.datadoghq.com/account/settings/agent/latest?platform=docker -[9]: /ko/agent/supported_platforms/?tab=cloudandcontainers -[10]: https://app.datadoghq.com/organization-settings/api-keys -[11]: /ko/agent/guide/compose-and-the-datadog-agent/ -[12]: /ko/agent/docker/integrations/ -[13]: /ko/agent/configuration/agent-configuration-files/#agent-main-configuration-file -[14]: /ko/agent/docker/apm/ -[15]: /ko/agent/configuration/proxy/#agent-v6 -[16]: /ko/agent/docker/apm/#tracing-from-other-containers -[17]: /ko/agent/docker/log/ -[18]: /ko/infrastructure/process/ -[19]: /ko/infrastructure/livecontainers/ -[20]: /ko/developers/dogstatsd/ -[21]: /ko/developers/dogstatsd/unix_socket/ -[22]: /ko/getting_started/tagging/unified_service_tagging/ -[23]: /ko/agent/docker/tag/ -[24]: /ko/agent/configuration/secrets-management/?tab=linux -[25]: /ko/agent/guide/autodiscovery-management/ -[26]: /ko/agent/configuration/agent-commands/ -[27]: /ko/integrations/container/ -[28]: /ko/integrations/system/#metrics -[29]: /ko/integrations/disk/#metrics -[30]: /ko/agent/docker/data_collected/#metrics -[31]: /ko/integrations/network/#metrics -[32]: /ko/integrations/ntp/#metrics -[33]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/?tab=docker#removing-apm-for-all-services-on-the-infrastructure \ No newline at end of file +[2]: /ko/agent/supported_platforms/?tab=cloudandcontainers +[3]: https://app.datadoghq.com/account/settings/agent/latest?platform=docker +[4]: /ko/containers/guide/compose-and-the-datadog-agent/ +[5]: /ko/containers/guide/podman-support-with-docker-integration/ +[6]: /ko/containers/docker/integrations/ +[7]: /ko/getting_started/containers/autodiscovery +[8]: /ko/agent/configuration/agent-configuration-files/#agent-main-configuration-file +[9]: /ko/containers/docker/apm/ +[10]: /ko/agent/configuration/proxy/#agent-v6 +[11]: /ko/containers/docker/apm/?tab=linux#tracing-from-other-containers +[12]: /ko/containers/docker/log/ +[13]: /ko/infrastructure/process/ +[14]: /ko/infrastructure/livecontainers/ +[15]: /ko/extend/dogstatsd/ +[16]: /ko/extend/dogstatsd/unix_socket/ +[17]: /ko/getting_started/tagging/unified_service_tagging/?tab=docker +[18]: /ko/containers/docker/tag +[19]: /ko/agent/configuration/secrets-management/?tab=linux +[20]: /ko/containers/guide/container-discovery-management/?tab=containerizedagent +[21]: /ko/agent/configuration/agent-commands/ +[22]: /ko/integrations/container/ +[23]: /ko/integrations/system/#metrics +[24]: /ko/integrations/disk/#metrics +[25]: /ko/containers/docker/data_collected/#metrics +[26]: /ko/integrations/network/#metrics +[27]: /ko/integrations/ntp/#metrics +[28]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/docker/#remove-single-step-apm-instrumentation-from-your-agent \ No newline at end of file diff --git a/content/ko/containers/kubernetes/integrations.md b/content/ko/containers/kubernetes/integrations.md index b50df83ad2b..61e1aa6269f 100644 --- a/content/ko/containers/kubernetes/integrations.md +++ b/content/ko/containers/kubernetes/integrations.md @@ -4,7 +4,11 @@ aliases: - /ko/guides/servicediscovery/ - /ko/guides/autodiscovery/ - /ko/agent/kubernetes/integrations +description: Kubernetes에서 실행 중인 애플리케이션에 대한 모니터링 통합을 Autodiscovery 템플릿을 사용하여 구성 further_reading: +- link: https://www.datadoghq.com/blog/monitor-karpenter-datadog + tag: 블로그 + text: Datadog로 Karpenter 모니터링 - link: /agent/kubernetes/log/ tag: 설명서 text: 애플리케이션 로그 수집 @@ -20,41 +24,43 @@ further_reading: - link: /agent/kubernetes/tag/ tag: 설명서 text: 컨테이너에서 내보내는 모든 데이터에 태그 할당 +- link: https://www.youtube.com/watch?v=nuxmVf9ByE0 + tag: 비디오 + text: 'Datadog 팁 및 요령: Datadog Autodiscovery를 위한 JSON으로 Kubernetes에서 주석을 작성하는 방법' title: Kubernetes와 통합 --- - -이 페이지에서는 Datadog의 _Autodiscovery_ 기능으로 Kubernetes 인프라에 통합을 설치하고 구성하는 방법을 다룹니다. 이 기능으로 `%%host%%`와 같은 [변수][16]를 사용해 구성 설정을 동적으로 채울 수 있습니다. 자세한 Autodiscovery 사용 방법은 [컨테이너 시작하기: Autodiscovery][12]를 참고하세요. Autodiscovery에서 특정 컨테이너 제외, 준비되지 않은 포드 허용 등 Autodiscovery의 고급 옵션은 [Container Discovery Management][23]를 참고하세요. +이 페이지에서는 _Autodiscovery_라는 Datadog 기능을 사용하여 Kubernetes 인프라에 대한 통합을 설치하고 구성하는 방법을 다룹니다. 이를 통해 `%%host%%`와 같은 [변수][16]를 사용하여 구성 설정을 동적으로 채울 수 있습니다. Autodiscovery 작동 방식에 대한 자세한 설명은 [컨테이너 시작하기: Autodiscovery][12]를 참조하세요. 특정 컨테이너를 Autodiscovery에서 제외하거나 준비되지 않은 포드를 허용하는 등의 고급 Autodiscovery 옵션에 대해서는 [컨테이너 검색 관리][23]를 참조하세요. Docker나 Amazon ECS를 사용 중이라면 [Docker와 통합][1]을 참고하세요.
    -일부 Datadog 통합은 프로세스 트리 데이터 또는 파일 시스템 액세스가 필요하기 때문에 Autodiscovery과 호환되지 않습니다: Ceph, Varnish, Postfix, Cassandra Nodetool, Gunicorn.

    -Autodiscovery와 호환되지 않는 통합을 모니터링하려면 포드에서 Prometheus 내보내기를 사용하여 HTTP 엔드포인트를 노출할 수 있습니다. 그런 다음 Autodiscovery가 지원하는 OpenMetrics 통합을 사용해 포드를 찾고 엔드포인트를 쿼리합니다. +일부 Datadog 통합은 다음의 프로세스 트리 데이터나 파일 시스템 접근이 필요하기 때문에 Autodiscovery를 지원하지 않습니다. Ceph, Varnish, Postfix, Cassandra NodetoolGunicorn.

    +Autodiscovery와 호환되지 않는 통합을 모니터링하려면 포드 내에 Prometheus Exporter를 사용하여 HTTP 엔드포인트를 노출한 후, Autodiscovery를 지원하는 OpenMetrics 통합을 사용하여 포드를 찾고 해당 엔드포인트를 쿼리할 수 있습니다.
    -## 통합 설정 +## 통합 설정 {#set-up-your-integration} -일부 통합에는 액세스 토큰 생성이나 Datadog Agent에 대한 읽기 권한 부여와 같은 설정 단계가 필요합니다. 통합 문서에 있는 **Setup** 섹션을 참고하세요. +일부 통합은 액세스 토큰을 생성하거나 Datadog Agent에 대한 읽기 권한을 부여하는 등의 설정 단계를 요구합니다. 통합 문서의 **설정** 섹션의에 있는 지침을 따르세요. -### 커뮤니티 통합 -Datadog Agent와 함께 제공되지 않는 통합을 사용하려면 원하는 통합을 포함하는 커스텀 이미지를 빌드해야 합니다. 자세한 내용은 [커뮤니티 통합 사용][13]을 참고하세요. +### 커뮤니티 통합 {#community-integrations} +Datadog Agent와 함께 제공되지 않는 통합을 사용하려면 원하는 통합이 포함된 사용자 지정 이미지를 빌드해야 합니다. 자세한 내용은 [커뮤니티 통합 사용][13]을 참조하세요. -## 구성 +## 구성 {#configuration} -일반적으로 사용되는 일부 통합에는 Autodiscovery에 대한 기본 구성이 포함되어 있습니다. 자동 구성된 통합 및 해당 기본 구성 파일 목록을 포함한 자세한 내용은 [Autodiscovery 자동 구성][20]을 참고하세요. 통합이 목록에 있고 기본 구성으로 충분하다면 별다른 작업은 필요 없습니다. +일부 일반적으로 사용되는 통합은 Autodiscovery용 기본 구성을 제공합니다. 자세한 내용은 [Autodiscovery 자동 구성][20]을 참조하세요. 여기에는 자동 구성된 통합 목록과 해당 기본 구성 파일이 포함됩니다. 해당 통합이 이 목록에 포함되어 있고 기본 구성만으로 사용 사례에 충분하다면 추가 작업은 필요하지 않습니다. -다른 구성이 필요할 경우: +그렇지 않은 경우: -1. 원하는 구성 방법(Kubernetes 포드 주석, 로컬 파일, ConfigMap, 키-값 저장소, Datadog Operator 매니페스트, Helm 차트)을 선택하세요. -2. 선택한 방법의 템플릿 형식을 확인하세요. 각 형식에는 ``과 같은 플레이스홀더가 포함되어 있습니다. -3. 이러한 플레이스홀더에 대한 [값을 입력합니다](#placeholder-values). +1. 자신의 사용 사례에 맞는 구성 방법(Kubernetes 포드 주석, 로컬 파일, ConfigMap, 키-값 저장소, Datadog Operator 매니페스트 또는 Helm 차트)을 선택합니다. +2. 선택한 방법의 템플릿 형식을 참조합니다. 각 형식에는 ``과 같은 자리 표시자가 포함됩니다. +해당 자리표시자에 3. [값을 제공](#placeholder-values)합니다. {{< tabs >}} -{{% tab "Annotations" %}} +{{% tab "주석" %}} Kubernetes 포드를 `kind: Pod`를 사용해 직접 정의하려면 다음과 같이 각 포드의 주석을 `metadata` 섹션 아래에 추가합니다. -**Autodiscovery annotations v2** (Datadog Agent v7.36 이상인 경우) +**Autodiscovery annotations v2**(Datadog Agent v7.36 이상인 경우) ```yaml apiVersion: v1 @@ -78,7 +84,7 @@ spec: # (...) ``` -**Autodiscovery annotations v1** +**Autodiscovery annotations v1** ```yaml apiVersion: v1 @@ -101,9 +107,9 @@ spec: 배포, ReplicaSets, ReplicationControllers를 사용하여 간접적으로 포드를 정의하는 경우 `spec.template.metadata` 아래에 포드 주석을 추가합니다. {{% /tab %}} -{{% tab "Local file" %}} +{{% tab "로컬 파일" %}} -Autodiscovery 템플릿을 마운트된 `conf.d` 디렉터리(`/etc/datadog-agent/conf.d`)에 로컬 파일로 저장할 수 있습니다. 템플릿을 변경, 추가 또는 제거할 때마다 Agent 컨테이너를 다시 시작해야 합니다. +Autodiscovery 템플릿을 마운트된 `conf.d` 디렉터리(`/etc/datadog-agent/conf.d`) 내의 로컬 파일로 저장할 수 있습니다. 템플릿을 변경, 추가 또는 제거할 때마다 Datadog Agent 컨테이너를 다시 시작해야 합니다. 1. 호스트에 `conf.d/.d/conf.yaml` 파일을 생성합니다. ```yaml @@ -120,7 +126,30 @@ Autodiscovery 템플릿을 마운트된 `conf.d` 디렉터리(`/etc/datadog-agen ``` -2. 호스트 `conf.d/` 폴더를 컨테이너화된 에이전트 `conf.d` 폴더에 마운트합니다. +2. 호스트 `conf.d/` 폴더를 컨테이너화된 Datadog Agent의 `conf.d` 폴더에 마운트합니다. + + Datadog Operator의 경우: + ```yaml + spec: + override: + nodeAgent: + volumes: + - hostPath: + path: /conf.d + name: confd + ``` + + Helm의 경우: + ```yaml + agents: + volumes: + - hostPath: + path: /conf.d + name: confd + volumeMounts: + - name: confd + mountPath: /conf.d + ``` {{% /tab %}} {{% tab "ConfigMap" %}} @@ -148,13 +177,13 @@ data: [1]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap {{% /tab %}} -{{% tab "Key-value store" %}} +{{% tab "키-값 저장소" %}} -[Consul][1], [etcd][2], [ZooKeeper][3]에서 Autodiscovery 템플릿을 가져올 수 있습니다. `datadog.yaml` 구성 파일에서 키-값 저장소를 구성한 후 이 파일을 Agent 컨테이너에 마운트하거나, Agent 컨테이너의 환경 변수로 사용할 수 있습니다. +Autodiscovery 템플릿은 [Consul][1], [etcd][2] 또는 [ZooKeeper][3]에서 가져올 수 있습니다. 키-값 저장소를 `datadog.yaml` 구성 파일에서 구성하거나(이 파일을 Datadog Agent 컨테이너 내에 마운트함) 또는 Datadog Agent 컨테이너의 환경 변수로 구성할 수 있습니다. -** datadog.yaml에서 설정하기** +**datadog.yaml에서 구성하기**: -`datadog.yaml`에서 `` 주소와 키-값 저장소의 ``를 설정합니다. +`datadog.yaml`에서 키-값 저장소의 `` 주소와 ``를 설정합니다. ```yaml config_providers: @@ -187,9 +216,9 @@ data: [Datadog Agent를 다시 시작][4]하여 변경 사항을 적용합니다. -**환경 변수 설정**: +**환경 변수에서 구성하기**: -키-값 저장소가 템플릿 소스로 활성화되어 있는 경우 에이전트는 키`/datadog/check_configs`에서 템플릿을 찾습니다. 자동 탐지에서는 다음과 같은 키-값 위계가 필요합니다: +키-값 저장소를 템플릿 소스로 활성화하면 Datadog Agent는 `/datadog/check_configs` 키 아래에서 템플릿을 찾습니다. Autodiscovery는 다음과 같은 키-값 계층 구조를 기대합니다. ```yaml /datadog/ @@ -208,9 +237,9 @@ data: [4]: /ko/agent/configuration/agent-commands/ {{% /tab %}} -{{% tab "Datadog 연산자" %}} +{{% tab "Datadog Operator" %}} -`datadog-agent.yaml`에서 통합을 구성하려면 `extraConfd.configDataMap` 재정의를 `DatadogAgent`의 `nodeAgent` 구성 요소에 추가합니다. 각 키는 Agent `conf.d` 디렉터리의 파일이 됩니다. +`datadog-agent.yaml`에서 통합을 구성하려면 `DatadogAgent` 구성의 `nodeAgent` 구성 요소에 재정의 `extraConfd.configDataMap`를 추가하세요. 각 키는 Datadog Agent의 `conf.d` 디렉터리에 파일로 생성됩니다. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -236,8 +265,9 @@ spec: logs: ``` +
    여러 개의 배포된 DatadogAgent CRD가 configDataMap를 사용하면 모든 CRD가 공유 ConfigMap인 nodeagent-extra-confd에 기록하므로 구성이 서로를 재정의할 수 있습니다.
    -[Cluster Check][1]를 모니터링하려면 `extraConfd.configDataMap` 재정의를 `clusterAgent`구성 요소에 추가합니다. 또한 `features.clusterChecks.enabled: true`를 설정하여 클러스터 점검을 활성화해야 합니다. +[Cluster Chec][1]를 모니터링하려면 `clusterAgent` 구성 요소에 `extraConfd.configDataMap`을 추가합니다. 또한 `features.clusterChecks.enabled: true`을 설정하여 클러스터 검사를 활성화해야 합니다. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -276,7 +306,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` 파일에는 Autodiscovery 템플릿을 정의할 수 있는 `datadog.confd` 섹션이 있습니다. 샘플 [values.yaml][1]에서 인라인 예시를 확인하세요. 각 키는 Agent `conf.d` 디렉터리의 파일이 됩니다. +`datadog-values.yaml` 파일에는 Autodiscovery 템플릿을 정의할 수 있는 `datadog.confd` 섹션이 있습니다. 샘플 [values.yaml][1]에서 인라인 예제를 찾을 수 있습니다. 각 키는 Datadog Agent의 `conf.d` 디렉터리에 파일로 생성됩니다. ```yaml datadog: @@ -292,7 +322,7 @@ datadog: ``` -[Cluster Check][3]를 모니터링하려면 `clusterAgent.confd`에서 템플릿을 정의합니다. 샘플 [values.yaml][2]에서 인라인 예시를 확인할 수 있습니다. 또한 `clusterAgent.enabled: true`를 설정하여 Cluster Agent를 활성화하고, `datadog.clusterChecks.enabled: true`를 설정하여 클러스터 점검을 활성화합니다. +[Cluster Check][3]를 모니터링하려면 `clusterAgent.confd` 아래에 템플릿을 정의하세요. 샘플 [values.yaml][2]에서 인라인 예제를 찾을 수 있습니다. 또한 클러스터 Agent를 활성화하려면 `clusterAgent.enabled: true`를 설정하고, 클러스터 검사를 활성화하려면 `datadog.clusterChecks.enabled: true`를 설정해야 합니다. ```yaml datadog: @@ -322,43 +352,105 @@ clusterAgent: {{< /tabs >}} -### 플레이스홀더 값 +### 자리표시자 값 {#placeholder-values} -다음과 같이 플레이스홀더 값을 제공합니다. +다음과 같이 자리표시자 값을 제공합니다. `` -: Datadog 통합 이름 (예: `etcd` 또는 `redisdb`) +: Data 통합의 이름(예: `etcd` 또는 `redisdb`) `` -: 통합에 해당하는 컨테이너의 이름(``spec.containers[i].image`가 **아닌** `spec.containers[i].name`)과 일치하는 식별자 +: 통합에 해당하는 컨테이너의 이름(`spec.containers[i].name`이며, **아님** `spec.containers[i].image`)과 일치시키기 위한 식별자. `` -: 컨테이너 이미지와 일치하는 식별자 (`.spec.containers[i].image`).

    -예: 컨테이너 식별자로 `redis`를 제공하면 Autodiscovery 템플릿이 `redis`와 일치하는 이미지 이름을 가진 모든 컨테이너에 적용됩니다.`foo/redis:latest`와 `bar/redis:v2`를 실행하는 컨테이너가 하나인 경우, Autodiscovery 템플릿은 두 컨테이너 모두에 적용됩니다.

    -`ad_identifiers` 파라미터는 목록을 사용하므로 여러 컨테이너 식별자를 제공할 수 있으며, 커스텀 식별자를 사용할 수도 있습니다. 자세한 내용은 [Custom Autodiscovery Identifiers][21]를 참고하세요. +: 컨테이너 이미지(`.spec.containers[i].image`)와 일치시기키 위한 식별자.

    +예를 들어: 컨테이너 식별자로 `redis`를 지정하면, Autodiscovery 템플릿은 `redis`와 일치하는 이미지 이름을 가진 모든 컨테이너에 적용됩니다. 하나의 컨테이너가 `foo/redis:latest`과 `bar/redis:v2`를 실행하는 경우, Autodiscovery 템플릿은 두 컨테이너 모두에 적용됩니다.

    +`ad_identifiers` 파라미터는 목록을 사용하므로 여러 컨테이너 식별자를 지정할 수 있습니다. 사용자 지정 식별자도 사용할 수 있습니다. [사용자 지정 Autodiscovery 식별자][21]를 참조하세요. `` -: 통합의 `.d/conf.yaml.example` 파일에서 `init_config`에 나열된 구성 파라미터. `init_config` 섹션은 일반적으로 비어 있습니다. +: 통합의 `init_config` 파일에서 `.d/conf.yaml.example` 아래에 나열된 구성 파라미터입니다. `init_config` 섹션은 일반적으로 비어 있습니다. `` -: 통합의 `.d/conf.yaml.example` 파일에서 `instances`에 있는 구성 파라미터 목록 +: 통합의 `instances` 파일에서 `.d/conf.yaml.example` 아래에 나열된 구성 파라미터입니다. `` -: 통합의 `.d/conf.yaml.example` 파일에서 `logs`에 있는 구성 파라미터 목록 +: 통합의 `logs` 파일에서 `.d/conf.yaml.example` 아래에 나열된 구성 파라미터입니다. + +### 고급 주석 파라미터 {#advanced-annotation-parameters} + +검사, 로그 및 인스턴스에 대한 핵심 Autodiscovery 주석 외에도 검사 동작을 사용자 지정하기 위해 추가 주석을 사용할 수 있습니다. + +#### 태그 카디널리티 {#tag-cardinality} + +`check_tag_cardinality` 주석을 사용하여 특정 검사에 대한 태그 카디널리티 수준을 설정합니다. 이는 해당 검사에 의해 수집된 메트릭에 대한 전역 Datadog Agent 태그 카디널리티 설정을 재정의합니다. + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: '' + annotations: + ad.datadoghq.com/.checks: | + { + "": { + "init_config": , + "instances": [] + } + } + ad.datadoghq.com/.check_tag_cardinality: "" +spec: + containers: + - name: '' +``` + +
    check_tag_cardinality 주석은 통합 검사로 수집하는 메트릭에만 영향을 미칩니다. DogStatsD를 통해 전송된 메트릭에는 영향을 미치지 않습니다. DogStatsD 태그 카디널리티를 구성하려면 전역 dogstatsd_tag_cardinality 구성 파라미터 또는 DD_DOGSTATSD_TAG_CARDINALITY 환경 변수를 사용하세요.
    + +태그 카디널리티에 대한 자세한 내용은 [검사별 태그 구성][27]을 참조하세요. + +### 자동 구성 {#auto-configuration} + +Datadog Agent는 일부 일반 기술에 대한 기본 구성을 자동으로 인식하고 제공합니다. 전체 목록은 [Autodiscovery 자동 구성][20]을 참조하세요. + +Kubernetes 주석으로 설정된 구성은 자동 구성보다 우선하지만, 자동 구성은 Datadog Operator 또는 Helm으로 설정된 구성보다 우선합니다. [Autodiscovery 자동 구성][20] 목록에서 통합을 구성하기 위해 Datadog Operator 또는 Helm을 사용하려면 [자동 구성을 비활성화][22]해야 합니다. + +## 통합 보안 {#integrations-security} + +통합은 종종 파일 시스템에서 구성 파일, 인증서 또는 기타 리소스를 읽어야 합니다. 파일 경로가 신뢰할 수 없는 구성 제공자(예: 포드 주석 또는 외부 서비스 Autodiscovery)에서 오는 경우, 경로 탐색 또는 무단 파일 접근의 위험이 있습니다. -### 자동 구성 +Datadog Agent 버전 7.78.0부터, 구성 제공자의 신뢰 수준에 따라 파일 시스템 접근을 제어하기 위해 Agent의 `datadog.yaml`에서 다음 파라미터를 설정할 수 있습니다. -Datadog Datadog Agent는 일부 일반 기술에 대한 기본 구성을 자동으로 인식하고 제공합니다. 전체 목록은 [Autodiscovery 자동 구성][20]을 참고하세요. +| 파라미터 | 유형 | 기본값 | 설명 | +|-----------|------|---------|-------------| +| `integration_ignore_untrusted_file_params` | bool | `false` | 활성화되면, 구성 제공자를 신뢰할 수 없는 경우 통합은 파일 경로를 참조하는 구성 파라미터를 무시합니다. | +| `integration_file_paths_allowlist` | list | `[]` | 신뢰할 수 없는 구성 제공자가 제공하더라도 통합이 접근할 수 있는 파일 경로 목록입니다. 빈 목록은 모든 파일 경로가 허용됨을 의미합니다. | +| `integration_trusted_providers` | list | `["file", "remote-config"]` | 신뢰할 수 있는 것으로 간주되는 구성 제공자 목록입니다. 이 목록에 없는 제공자는 신뢰할 수 없는 것으로 간주됩니다. 기본적으로, 로컬 구성 파일(`file`)과 Datadog Remote Configuration(`remote-config`)은 신뢰할 수 있습니다. 지원되는 제공자의 전체 목록은 [Datadog Agent 제공자 이름][28]을 참조하세요. | +| `integration_security_excluded_checks` | list | `[]` | 위의 보안 제한에서 제외된 통합 이름 목록입니다. | -Kubernetes 주석으로 설정된 구성은 자동 구성보다 우선하지만, 자동 구성은 Datadog Operator 또는 Helm으로 설정된 구성보다 우선합니다. Datadog Operator 또는 Helm을 사용하여 [Autodiscovery 자동 구성][20] 목록에서 통합을 구성하려면 [자동 구성을 비활성화해야 합니다][22]. +이 옵션들은 이전 버전과 호환되며 기본값은 기존 동작을 유지합니다. 이 기능을 사용하려면 `integration_ignore_untrusted_file_params`를 활성화한 후 나머지 파라미터를 환경에 맞게 조정하세요. -## 예시: Postgres 통합 +예시 `datadog.yaml`: -다음 예시에서는 Kubernetes에 Postgres를 배포했으며, [Datadog-Postgres 통합][26]을 설정하고 구성하려고 합니다. 모든 Postgres 컨테이너의 컨테이너 이름에는 `postgres` 문자열이 포함되어 있습니다. +```yaml +integration_ignore_untrusted_file_params: true +integration_file_paths_allowlist: + - /etc/datadog-agent/certs + - /var/run/secrets +integration_trusted_providers: + - file + - remote-config +integration_security_excluded_checks: + - +``` + +이 구성을 사용하는 경우, 포드 주석을 통해 구성된 통합(신뢰할 수 없는 제공자)은 `/etc/datadog-agent/certs` 또는 `/var/run/secrets` 외부의 파일 경로를 참조할 수 없습니다. 단, 통합 이름이 `integration_security_excluded_checks`에 나열된 경우는 예외입니다. -먼저, 추가 설정 단계는 [Postgres 통합 문서][26]를 참조하세요. Postgres 통합을 사용하려면 `datadog`이라는 읽기 전용 사용자를 생성하고, 해당 비밀번호를 `PG_PASSWORD`라는 환경 변수로 저장해야 합니다. +## 예시: Postgres 통합 {#example-postgres-integration} -**호스트에서** 이 통합을 구성하려면 파라미터로 [`postgresql.d/conf.yaml.example`][15]을 사용하고, 다음을 포함하는 `postgresql.d/conf.yaml` 파일을 만들 수 있습니다. +이 예에서는 Kubernetes에 Postgres를 배포했다고 가정합니다. [Datadog-Postgres 통합][26]을 설정 및 구성하려고 하며, 모든 Postgres 컨테이너의 컨테이너 이름에는 문자열 `postgres`이 포함되어 있습니다. + +먼저, 추가 설정 단계에 대한 [Postgres 통합 설명서][26]를 참조하세요. Postgres 통합을 위해 `datadog`라는 이름의 읽기 전용 사용자를 생성하고 해당 비밀번호를 `PG_PASSWORD`라는 환경 변수로 저장해야 합니다. + +이 통합을 **호스트**에서 구성하려면, 파라미터에 대한 [`postgresql.d/conf.yaml.example`][15]를 참조하고 다음을 포함하는 `postgresql.d/conf.yaml` 파일을 생성할 수 있습니다. ```yaml init_config: @@ -379,11 +471,11 @@ logs: 이 구성을 Postgres 컨테이너에 적용하는 방법: {{< tabs >}} -{{% tab "Annotations" %}} +{{% tab "주석" %}} -Pod 매니페스트에서: +포드 매니페스트에서: -**Autodiscovery annotations v2** (Datadog Agent v7.36 이상인 경우) +**Autodiscovery annotations v2**(Datadog Agent v7.36 이상인 경우) ```yaml apiVersion: v1 @@ -393,7 +485,7 @@ metadata: annotations: ad.datadoghq.com/postgres.checks: | { - "postgresql": { + "postgres": { "instances": [ { "host": "%%host%%", @@ -418,7 +510,7 @@ spec: - name: postgres ``` -**Autodiscovery annotations v1** +**Autodiscovery annotations v1** ```yaml apiVersion: v1 @@ -426,7 +518,7 @@ kind: Pod metadata: name: postgres annotations: - ad.datadoghq.com/postgres.check_names: '["postgresql"]' + ad.datadoghq.com/postgres.check_names: '["postgres"]' ad.datadoghq.com/postgres.init_configs: '[{}]' ad.datadoghq.com/postgres.instances: | [ @@ -452,7 +544,7 @@ spec: ``` {{% /tab %}} -{{% tab "Local file" %}} +{{% tab "로컬 파일" %}} 1. 호스트에 `conf.d/postgresql.d/conf.yaml` 파일을 생성합니다. ```yaml @@ -471,7 +563,31 @@ spec: service: "pg_service" ``` -2. 호스트 `conf.d/` 폴더를 컨테이너화된 에이전트 `conf.d` 폴더에 마운트합니다. +2. 호스트 `conf.d/` 폴더를 컨테이너화된 Datadog Agent의 `conf.d` 폴더에 마운트합니다. + + Datadog Operator의 경우: + ```yaml + spec: + override: + nodeAgent: + volumes: + - hostPath: + path: /conf.d + name: confd + ``` + + Helm의 경우: + ```yaml + agents: + volumes: + - hostPath: + path: /conf.d + name: confd + volumeMounts: + - name: confd + mountPath: /conf.d + ``` + {{% /tab %}} {{% tab "ConfigMap" %}} @@ -500,7 +616,7 @@ data: service: "pg_service" ``` -그런 다음 매니페스트에서 `volumeMounts`와 `volumes`를 정의합니다: +그런 다음, 매니페스트에서 `volumeMounts`과 `volumes`를 정의합니다. ```yaml # [...] @@ -521,21 +637,21 @@ data: ``` {{% /tab %}} -{{% tab "Key-value store" %}} +{{% tab "키-값 저장소" %}} -다음 etcd 명령은 커스텀 `password` 파라미터를 사용하여 Postgres 통합 템플릿을 생성합니다. +다음 etcd 명령은 사용자 지정 `password` 파라미터를 사용하여 Postgres 통합 템플릿을 생성합니다. ```conf etcdctl mkdir /datadog/check_configs/postgres -etcdctl set /datadog/check_configs/postgres/check_names '["postgresql"]' +etcdctl set /datadog/check_configs/postgres/check_names '["postgres"]' etcdctl set /datadog/check_configs/postgres/init_configs '[{}]' etcdctl set /datadog/check_configs/postgres/instances '[{"host": "%%host%%","port":"5432","username":"datadog","password":"%%env_PG_PASSWORD%%"}]' ``` -세 값은 각각의 목록입니다. 자동 탐지는 공유 목록 인덱스를 기반으로 목록의 항목들을 통합 설정에 맞춥니다. 이 경우 `check_names[0]`, `init_configs[0]` 및 `instances[0]`에서 첫 번째(그리고 유일한) 검사 설정을 구성합니다. +세 개의 값 각각이 목록임에 유의합니다. Autodiscovery는 공유 목록 인덱스를 기반으로 통합 구성에 목록 항목을 조합합니다. 이 경우, `check_names[0]`, `init_configs[0]` 및 `instances[0]`에서 첫 번째(및 유일한) 검사 구성을 설정합니다. {{% /tab %}} -{{% tab "Datadog 연산자" %}} +{{% tab "Datadog Operator" %}} `datadog-agent.yaml`에서: @@ -563,7 +679,7 @@ spec: username: "datadog" password: "%%env_PG_PASSWORD%%" ``` -결과적으로 Agent는 `conf.d` 디렉터리에 위 구성이 담긴 `postgres.yaml` 파일을 포함합니다. +결과적으로 Agent는 `postgres.yaml` 디렉터리에 위 구성이 담긴 `conf.d` 파일을 포함합니다. {{% /tab %}} {{% tab "Helm" %}} @@ -583,18 +699,18 @@ datadog: username: "datadog" password: "%%env_PG_PASSWORD%%" ``` -결과적으로 Agent는 `conf.d` 디렉터리에 위 구성이 담긴 `postgres.yaml` 파일을 포함합니다. +결과적으로 Agent는 `postgres.yaml` 디렉터리에 위 구성이 담긴 `conf.d` 파일을 포함합니다. {{% /tab %}} {{< /tabs >}} 이러한 템플릿은 [Autodiscovery 템플릿 변수][16]를 활용합니다. -- `%%host%%`는 컨테이너의 IP로 채워집니다. -- `%%env_PG_PASSWORD%%`는 Agent 프로세스에서 보이는 대로 `PG_PASSWORD`라는 환경 변수를 참조합니다. +- `%%host%%`는 컨테이너의 IP로 동적으로 채워집니다. +- `%%env_PG_PASSWORD%%` 는 Agent 프로세스에서 볼 수 있는 `PG_PASSWORD`라는 환경 변수를 참조합니다. -여러 컨테이너 세트에 대해 여러 점검을 구성하는 방법은 [Autodiscovery: 시나리오 & 예시][24]를 참고하세요. +여러 컨테이너 세트에 대해 여러 검사를 구성하는 방법은 [Autodiscovery: 시나리오 및 예시][24]를 참고하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -623,4 +739,6 @@ datadog: [23]: /ko/containers/guide/autodiscovery-management [24]: /ko/containers/guide/autodiscovery-examples [25]: /ko/integrations/istio/ -[26]: /ko/integrations/postgres \ No newline at end of file +[26]: /ko/integrations/postgres +[27]: /ko/getting_started/integrations/#per-check-tag-configuration +[28]: https://github.com/DataDog/datadog-agent/blob/main/comp/core/autodiscovery/providers/names/provider_names.go#L10-L38 \ No newline at end of file diff --git a/content/ko/database_monitoring/connect_dbm_and_apm.md b/content/ko/database_monitoring/connect_dbm_and_apm.md index cc512defd2c..c62629272eb 100644 --- a/content/ko/database_monitoring/connect_dbm_and_apm.md +++ b/content/ko/database_monitoring/connect_dbm_and_apm.md @@ -4,198 +4,227 @@ aliases: further_reading: - link: https://www.datadoghq.com/blog/link-dbm-and-apm/ tag: 블로그 - text: DBM과 애플리케이션 성능 모니터링(APM) 텔레메트리를 원활하게 상호 연결하여 엔드 투 엔드 쿼리 성능을 알아봅니다. -title: 데이터베이스 모니터링과 트레이스 상호 연결 + text: DBM 및 APM 텔레메트리 상관관계 분석을 통한 엔드투엔드 쿼리 성능 파악 +title: Database Monitoring과 트레이스 상호 연결 --- +이 가이드에서는 [Database Monitoring][1]을 이미 구성했고 [APM][2]을 사용하고 있다고 가정합니다. APM과 DBM을 연결하면 APM 트레이스 식별자가 DBM 데이터 수집에 주입되어 두 데이터 소스를 연관지을 수 있습니다. 이로 인해 APM 제품에서 DBM 정보를 표시하고 DBM 제품에서 APM 데이터를 표시하는 제품 기능이 활성화됩니다. -이 가이드는 [데이터베이스 모니터링][1]을 설정하였고 [애플리케이션 성능 모니터링(APM)][2]을 사용하고 있다고 가정합니다. APM 및 DBM을 연결하면 APM 트레이스 식별자가 DBM 데이터 수집으로 전달됩니다. 이를 통해 이들 두 데이터 소스를 연계할 수 있으며 APM 제품에서 데이터 정보를 표시하고 DBM 제품에서 APM 데이터를 표시하는 제품 기능을 활성화할 수 있습니다. - -## 시작 전 참고 사항 +## 시작 전 참고 사항 {#before-you-begin} 지원되는 데이터베이스 : Postgres, MySQL, SQL Server, Oracle, MongoDB -지원되는 에이전트 버전 -: 7.46+ +지원되는 Agent 버전 +: 7.46 이상 -데이터 개인정보 보호 +데이터 프라이버시 : 데이터베이스에 저장되어 있고 데이터베이스 액세스 권한이 부여된 기타 타사가 액세스할 수 있는 잠재적인 기밀 데이터(서비스 이름)에서 SQL 주석 전파 결과를 활성화합니다. -애플리케이션 성능 모니터링(APM) 트레이서 통합은 *전파 모드*를 지원하며 전파 모드는 애플리케이션에서 데이터베이스로 전달되는 정보량을 제어합니다. - -- `full` 모드는 전체 트레이스 정보를 데이터베이스로 전송하여 DBM 내 개별 트레이스를 조사할 수 있도록 해줍니다. 대부분의 통합에서 이는 권장되는 솔루션입니다. -- `service` 모드는 서비스 이름을 전송하여 어느 서비스가 데이터베이스 부하에 기여하는지 이해할 수 있도록 해줍니다. 이는 Oracle 애플리케이션에서만 지원되는 모드입니다. -- `disabled` 모드는 전파를 비활성화하므로 애플리케이션에서 아무 정보도 전송하지 않습니다. - -| DD_DBM_PROPAGATION_MODE | Postgres | MySQL | SQL 서버 | Oracle | MongoDB | -|:------------------------|:---------:|:-----------:|:----------:|:---------:|:----------:| -| `full` | {{< X >}} | {{< X >}} * | {{< X >}} | {{< X >}} | {{< X >}} | -| `service` | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | - -\* Aurora MySQL의 전체 전파 모드에는 버전 3이 필요합니다. - -**지원되는 애플리케이션 트레이서 및 드라이버** - -| 언어 | 라이브러리 또는 프레임워크 | Postgres | MySQL | SQL 서버 | Oracle | MongoDB | -|:-----------------------------------------|:-----------------------|:---------:|:---------:|:-------------------:|:-------------------:|:--------------------:| -| **Go:** [dd-trace-go][3] >= 1.44.0 | | | | | | | -| | [database/sql][4] | {{< X >}} | {{< X >}} | `service` 모드만 | `service` 모드만 | | -| | [sqlx][5] | {{< X >}} | {{< X >}} | `service` 모드만 | `service` 모드만 | | -| **Java** [dd-trace-java][23] >= 1.11.0 | | | | | | | -| | [jdbc][22] | {{< X >}} | {{< X >}} | {{< X >}} ** | {{< X >}} *** | | -| **Ruby:** [dd-trace-rb][6] >= 1.8.0 | | | | | | | -| | [pg][8] | {{< X >}} | | | | | -| | [mysql2][7] | | {{< X >}} | | | | -| **Python:** [dd-trace-py][11] >= 1.9.0 | | | | | | | -| | [psycopg2][12] | {{< X >}} | | | | | -| [dd-trace-py][11] >= 2.9.0 | | | | | | | -| | [asyncpg][27] | {{< X >}} | | | | | -| | [aiomysql][28] | | {{< X >}} | | | | -| | [mysql-connector-python][29] | | {{< X >}} | | | | -| | [mysqlclient][30] | | {{< X >}} | | | | -| | [pymysql][31] | | {{< X >}} | | | | -| **.NET** [dd-trace-dotnet][15] >= 2.35.0 | | | | | | | -| | [Npgsql][16] * | {{< X >}} | | | | | -| | [MySql.Data][17] * | | {{< X >}} | | | | -| | [MySqlConnector][18] * | | {{< X >}} | | | | -| | [System.Data.SqlClient][24] * | | | {{< X >}} ** | | | -| | [Microsoft.Data.SqlClient][32] * | | | {{< X >}} ** | | | -| **PHP** [dd-trace-php][19] >= 0.86.0 | | | | | | | -| | [pdo][20] | {{< X >}} | {{< X >}} | | | | -| | [MySQLi][21] | | {{< X >}} | | | | -| **Node.js:** [dd-trace-js][9] >= 3.17.0 | | | | | | | -| | [postgres][10] | {{< X >}} | | | | | -| | [mysql][13] | | {{< X >}} | | | | -| | [mysql2][14] | | {{< X >}} | | | | -| | [mongodb][33] | | | | | {{< X >}} **** | - -\* [CommandType.StoredProcedure][25] 지원 안 됨 - -\*\* 자바/.NET에 대한 전체 모드 SQL Server: - -
    해당 애플리케이션이 계측을 위해 context_info를 사용하면 APM 트레이서가 이를 덮어씁니다.
    - - - 클라이언트가 쿼리를 발행하면 계측에서 `SET context_info` 명령을 실행하며, 데이터베이스를 추가 왕복합니다. - - 요구 사항: - - 에이전트 버전 7.55.0 이상 - - Java 트레이서 버전 1.39.0 이상 - - .NET 트레이서 버전 3.3 이상 - -\*\*\* Java용 풀 모드 Oracle: - - 이 계측은 `V$SESSION.ACTION`를 재정의합니다. - - 사전 요건: Java 트레이서 1.45 이상 - -\*\*\*\* Service/Full mode MongoDB for Node.js: - - 전제 조건: - - Node.js 트레이서 5.37.0 이상 - -## 설정 -최상의 사용자 경험을 위해 다음 환경 변수가 애플리케이션에 설정되어 있는지 확인하세요. +Datadog SDK서 통합은 *전파 모드*를 지원하며 전파 모드는 애플리케이션에서 데이터베이스로 전달되는 정보량을 제어합니다. -``` +| 전파 모드 | 설명 | +|:-----------------|:------------| +| `full` | 전체 트레이스 정보를 데이터베이스로 전송합니다. DBM 내 개별 트레이스를 조사할 수 있습니다. 대부분의 통합에 권장되는 솔루션입니다. | +| `service` | 서비스 이름만 전송하여 어떤 서비스가 데이터베이스 부하를 유발하는지 확인할 수 있습니다. | +| `disabled` | 전파를 비활성화하며 애플리케이션에서 어떠한 정보도 전송하지 않습니다. | + + +**지원되는 데이터베이스** + +{{< tabs >}} +{{% tab "Postgres" %}} + +| 언어 | 최소 트레이서 버전 | 라이브러리/프레임워크 | 모드 | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `full`
    `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) >= 1.11.0 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) >= 2.35.0 | [Npgsql](https://www.nuget.org/packages/npgsql) | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) >= 3.17.0 | [postgres](https://node-postgres.com/) | `full`
    `service` | +| **PHP** | [dd-trace-php](https://github.com/DataDog/dd-trace-php) >= 0.86.0 | [pdo](https://www.php.net/manual/en/book.pdo.php) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) >= 1.9.0 | [psycopg2](https://www.psycopg.org/docs/index.html)
    [psycopg](https://www.psycopg.org/psycopg3/) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) >= 2.9.0 | [asyncpg](https://pypi.org/project/asyncpg/) | `full`
    `service` | +| **Ruby** | [dd-trace-rb](https://github.com/dataDog/dd-trace-rb) >= 1.8.0 | [pg](https://github.com/ged/ruby-pg) | `full`
    `service` | + +**참고**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set)는 .NET 드라이버에서 지원되지 않습니다. + +{{% /tab %}} + +{{% tab "MySQL" %}} + +| 언어 | 최소 트레이서 버전 | 라이브러리/프레임워크 | 모드 | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `full`
    `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) >= 1.11.0 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) >= 2.35.0 | [MySql.Data](https://www.nuget.org/packages/MySql.Data)
    [MySqlConnector](https://www.nuget.org/packages/MySqlConnector) | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) >= 3.17.0 | [mysql](https://github.com/mysqljs/mysql)
    [mysql2](https://github.com/sidorares/node-mysql2) | `full`
    `service` | +| **PHP** | [dd-trace-php](https://github.com/DataDog/dd-trace-php) >= 0.86.0 | [pdo](https://www.php.net/manual/en/book.pdo.php)
    [MySQLi](https://www.php.net/manual/en/book.mysqli.php) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) >= 2.9.0 | [aiomysql](https://pypi.org/project/aiomysql/)
    [mysql-connector-python](https://pypi.org/project/mysql-connector-python/)
    [mysqlclient](https://pypi.org/project/mysqlclient/)
    [pymysql](https://github.com/PyMySQL/PyMySQL) | `full`
    `service` | +| **Ruby** | [dd-trace-rb](https://github.com/dataDog/dd-trace-rb) >= 1.8.0 | [mysql2](https://github.com/brianmario/mysql2) | `full`
    `service` | + +**참고**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set)는 .NET 드라이버에서 지원되지 않습니다. + +**참고**: Aurora MySQL에서 전체 전파 모드를 사용하려면 버전 3이 필요합니다. + +{{% /tab %}} + +{{% tab "SQL 서버" %}} + +| 언어 | 최소 트레이서 버전 | 라이브러리/프레임워크 | 모드 | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) >= 1.11.0 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) >= 2.35.0 | [System.Data.SqlClient](https://learn.microsoft.com/sql/connect/ado-net/microsoft-ado-net-sql-server)
    [Microsoft.Data.SqlClient](https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace) | `full`
    `service` | + +**참고**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set)는 .NET 드라이버에서 지원되지 않습니다. + +Java 및 .NET의 `full` 모드: + +
    애플리케이션이 context_info 사용하여 계측된 경우 Datadog SDK가 해당 값을 덮어씁니다.
    + +- 계측 기능은 클라이언트가 쿼리를 실행할 때 `SET context_info` 명령을 수행하므로 데이터베이스와 추가 왕복 통신이 발생합니다. +- 전제 조건: + - Agent 버전 7.55.0 이상 + - Java 트레이서 버전 1.39.0 이상 + - .NET 트레이서 버전 3.3 이상 + +{{% /tab %}} + +{{% tab "Oracle" %}} + +| 언어 | 최소 트레이서 버전 | 라이브러리/프레임워크 | 모드 | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) >= 1.11.0 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | + +Java의 `full` 모드: +- 계측 기능이 `V$SESSION.ACTION`을 덮어씁니다. +- 전제 조건: Java 트레이서 1.45 이상 + +{{% /tab %}} + +{{% tab "MongoDB" %}} + +| 언어 | 최소 트레이서 버전 | 라이브러리/프레임워크 | 모드 | +|:---------|:-------------------|:------------------|:-----| +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) >= 1.58.0 | [mongo-java-driver](https://www.mongodb.com/docs/drivers/java/sync/current/) v3.8+ | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) >= 5.80.0 | [mongodb](https://github.com/mongodb/node-mongodb-native) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) >= 3.5.0 | [pymongo](https://pymongo.readthedocs.io/en/stable/) | `full`
    `service` | + +{{% /tab %}} + +{{< /tabs >}} + +## 설정 {#setup} +애플리케이션에 다음 환경 변수를 설정합니다. + +```shell DD_SERVICE=(application name) DD_ENV=(application environment) DD_VERSION=(application version) ``` -Datadog은 Agent 버전 `7.63` 이상에 대해 난독화 모드를 `obfuscate_and_normalize`로 설정할 것을 권장합니다. APM Agent 구성 파일의 `apm_config` 섹션에 다음 파라미터를 추가합니다. +이 태그는 APM 상관관계 보기 및 DBM 활성 연결 분석 화면에서 서비스를 식별하는 데 사용됩니다. -``` +Datadog는 Agent 버전 `7.63` 이상에서는 SQL 난독화 모드를 `obfuscate_and_normalize`로 설정할 것을 권장합니다. APM Agent 구성 파일의 `apm_config` 섹션에 다음 파라미터를 추가합니다. + +```yaml sql_obfuscation_mode: "obfuscate_and_normalize" ``` +
    난독화 모드를 변경하면 정규화된 SQL 텍스트가 변경될 수 있습니다. APM 트레이스의 SQL 텍스트를 기준으로 작성된 모니터가 있다면 해당 모니터를 업데이트해야 할 수 있습니다.
    + {{< tabs >}} {{% tab "Go" %}} -앱 종속성을 업데이트하여 [dd-trace-go@v1.44.0][1] 이상을 포함합니다. +[dd-trace-go v2][1]를 포함하도록 앱 종속성을 업데이트합니다. {{% tracing-go-v2 %}} + ```shell -go get gopkg.in/DataDog/dd-trace-go.v1@v1.44.0 # 1.x -# go get github.com/DataDog/dd-trace-go/v2 # 2.x +go get github.com/DataDog/dd-trace-go/v2 # 2.x ``` -코드를 업데이트하여 `contrib/database/sql` 패키지를 내보내세요. +코드를 업데이트하여 `contrib/database/sql` 패키지를 가져옵니다. + ```go import ( "database/sql" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" // 1.x - sqltrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql" // 1.x - // "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" // 2.x - // sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" // 2.x + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" + sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" ) ``` -다음 메서드 중 하나를 사용해 데이터베이스 모니터링 전파를 활성화합니다. +다음 방법 중 하나를 사용하여 데이터베이스 모니터링 전파 기능을 활성화합니다. - 환경 변수: `DD_DBM_PROPAGATION_MODE=full` -- 드라이버 등록 동안 코드 사용하기: +- 드라이버 등록 시 코드 사용: ```go sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull), sqltrace.WithService("my-db-service")) ``` -- `sqltrace.Open` 코드 사용하기: +- `sqltrace.Open`에서 코드 사용: ```go sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithService("my-db-service")) db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable", sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) if err != nil { - log.Fatal(err) + log.Fatal(err) } ``` 전체 예시: + ```go import ( - "database/sql" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" // 1.x - sqltrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql" // 1.x - // "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" // 2.x - // sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" // 2.x + "database/sql" + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" + sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" ) func main() { - // 첫 번째 단계는 드라이버 등록 시 DBM 전파 모드를 설정하는 것입니다. 이는 또한 - // sqltrace에서도 가능하니 참고하세요. 열면 기능을 더 세부적으로 제어할 수 있습니다. - sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) - - // 이후에 열기 호출을 진행합니다. - db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable") - if err != nil { - log.Fatal(err) - } - - // 이후 일반 작업할 때와 마찬가지로 추적과 함께 database/sql 패키지를 사용합니다. - rows, err := db.Query("SELECT name FROM users WHERE age=?", 27) - if err != nil { - log.Fatal(err) - } - defer rows.Close() + // The first step is to set the dbm propagation mode when registering the driver. Note that this can also + // be done on sqltrace.Open for more granular control over the feature. + sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) + + // Followed by a call to Open. + db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable") + if err != nil { + log.Fatal(err) + } + + // Then, we continue using the database/sql package as we normally would, with tracing. + rows, err := db.Query("SELECT name FROM users WHERE age=?", 27) + if err != nil { + log.Fatal(err) + } + defer rows.Close() } ``` -[1]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1 +[1]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2 {{% /tab %}} {{% tab "Java" %}} -[Java 트레이싱][1] 계측 지침에 따라 에이전트 `1.11.0` 버전 이상을 설치합니다. +[Java 트레이싱][1] 계측 지침에 따라 Agent의 `1.11.0` 버전 이상을 설치합니다. -또한, `jdbc-datasource` [계측][2]을 활성화해야 합니다. +또한 `jdbc-datasource` [계측][2]을 활성화해야 합니다. 다음 방법 중 **하나**를 사용하여 데이터베이스 모니터링 전파 기능을 활성화합니다. -- 시스템 속성 `dd.dbm.propagation.mode=full` 설정 -- 환경 변수 `DD_DBM_PROPAGATION_MODE=full` 설정 +- 시스템 속성 설정 `dd.dbm.propagation.mode=full` +- 환경 변수 `DD_DBM_PROPAGATION_MODE=full`을 설정합니다. 전체 예시: -``` -# 필수 시스템 속성을 포함하는 자바(Java) 에이전트를 시작합니다. + +```shell +# Start the Java Agent with the required system properties java -javaagent:/path/to/dd-java-agent.jar -Ddd.dbm.propagation.mode=full -Ddd.integration.jdbc-datasource.enabled=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar ``` 애플리케이션에서 기능 테스트: + ```java public class Application { public static void main(String[] args) { @@ -215,14 +244,16 @@ public class Application { ``` **트레이서 버전 1.44 이상**: -다음 방법 중 **하나**를 사용해 준비한 Postgres 추적 명령문을 활성화합니다. -- 시스템 속성 `dd.dbm.trace_prepared_statements=true` 설정 -- 환경 변수 `export DD_DBM_TRACE_PREPARED_STATEMENTS=true` 설정 +다음 방법 중 **하나**를 사용하여 준비된 Postgres의 문 트레이스를 활성화합니다. +- 시스템 속성 설정 `dd.dbm.trace_prepared_statements=true` +- 환경 변수 설정 `export DD_DBM_TRACE_PREPARED_STATEMENTS=true` + +**참고**: 준비한 문 계측은 `Application` 속성을 텍스트 `_DD_overwritten_by_tracer`로 덮어쓰며, 데이터베이스와의 추가 왕복을 발생시킵니다. 이 추가 왕복은 SQL 문 실행 시간에 미치는 영향이 매우 작습니다. -**참고**: 준비한 계측 문을 사용하면 `Application` 속성을 재정의하고 데이터베이스로 왕복 이동하게 됩니다. 이렇게 왕복 이동을 하더라도 지연 시간에 주는 영향은 미미합니다. +
    준비된 문 트레이스를 활성화하면 Amazon RDS Proxy를 사용할 때 연결 고정이 증가할 수 있으며, 이는 연결 풀링 효율성을 감소시킵니다. 자세한 내용은 RDS Proxy의 연결 고정을 참조하세요.
    **트레이서 버전 1.44 미만**: - 준비한 문은 Postgres와 MySQL의 `full` 모드에서 지원되지 않고, 준비한 문을 사용하는 JDBC API 호출 전체가 `service` 모드로 자동 다운그레이드됩니다. Java SQL 라이브러리 대부분에서 기본적으로 준비한 문을 사용하므로, **대부분**의 Java 애플리케이션에서는 `service` 모드만 사용할 수 있습니다. +Postgres 및 MySQL에서는 준비된 문이 `full` 모드에서 지원되지 않으며, 준비된 문을 사용하는 모든 JDBC API 호출은 자동으로 `service` 모드로 다운그레이드됩니다. 대부분의 Java SQL 라이브러리가 기본적으로 준비된 문을 사용하므로, **대부분**의 Java 애플리케이션은 사실상 `service` 모드만 사용할 수 있습니다. [1]: /ko/tracing/trace_collection/dd_libraries/java/ [2]: /ko/tracing/trace_collection/compatibility/java/#data-store-compatibility @@ -231,40 +262,41 @@ public class Application { {{% tab "Ruby" %}} -젬파일에서 [dd-trace-rb][1]을 버전 `1.8.0` 이상으로 설치하거나 업데이트합니다: +Gemfile에서 [dd-trace-rb][1]을 버전 `1.8.0` 이상으로 설치하거나 업데이트합니다. ```rb source 'https://rubygems.org' -gem 'datadog' # v1.x을 사용하는 경우 `'ddtrace', '>= 1.8.0'`를 사용합니다. +gem 'datadog' # Use `'ddtrace', '>= 1.8.0'` if you're using v1.x -# 사용량에 따라 다음을 설정합니다. +# Depends on your usage gem 'mysql2' gem 'pg' ``` -다음 메서드 중 하나를 사용해 데이터베이스 모니터링 전파를 활성화합니다. +다음 방법 중 하나를 사용하여 데이터베이스 모니터링 전파 기능을 활성화합니다. 1. 환경 변수: `DD_DBM_PROPAGATION_MODE=full` -2. [mysql2][2] 또는 [pg][3]의 경우 옵션 `comment_propagation`(기본값: `ENV['DD_DBM_PROPAGATION_MODE']`): +2. 옵션 `comment_propagation`(기본값: `ENV['DD_DBM_PROPAGATION_MODE']`), [mysql2][2] 또는 [pg][3]의 경우: ```rb - Datadog.configure do |c| - c.tracing.instrument :mysql2, comment_propagation: 'full' - c.tracing.instrument :pg, comment_propagation: 'full' - end + Datadog.configure do |c| + c.tracing.instrument :mysql2, comment_propagation: 'full' + c.tracing.instrument :pg, comment_propagation: 'full' + end ``` 전체 예시: + ```rb require 'mysql2' require 'ddtrace' Datadog.configure do |c| - c.service = 'billing-api' - c.env = 'production' - c.version = '1.3-alpha' + c.service = 'billing-api' + c.env = 'production' + c.version = '1.3-alpha' - c.tracing.instrument :mysql2, comment_propagation: ENV['DD_DBM_PROPAGATION_MODE'] + c.tracing.instrument :mysql2, comment_propagation: ENV['DD_DBM_PROPAGATION_MODE'] end client = Mysql2::Client.new(:host => "localhost", :username => "root") @@ -279,22 +311,32 @@ client.query("SELECT 1;") {{% tab "Python" %}} -[dd-trace-py>=1.9.0][1]을 포함하도록 앱 종속성 업데이트: +[dd-trace-py>=1.9.0][1]을 포함하도록 앱 종속성을 업데이트합니다. + ``` pip install "ddtrace>=1.9.0" ``` -[psycopg2][2] 설치: +Postgres의 경우 [psycopg2][2]를 설치합니다. + ``` pip install psycopg2 ``` +MongoDB의 경우 pymongo를 설치합니다. + +``` +pip install pymongo +``` + +**참고**: MongoDB 지원에는 `dd-trace-py` >= 3.5.0이 필요합니다. 업그레이드가 필요하면: `pip install "ddtrace>=3.5.0"`. + 다음 환경 변수를 설정해 데이터베이스 모니터링 전파 기능을 활성화합니다. - `DD_DBM_PROPAGATION_MODE=full` -전체 예시: -```python +Postgres 예시: +```python import psycopg2 POSTGRES_CONFIG = { @@ -305,14 +347,33 @@ POSTGRES_CONFIG = { "dbname": "postgres_db_name", } -# POSTGRES DB로 연결 +# connect to postgres db conn = psycopg2.connect(**POSTGRES_CONFIG) cursor = conn.cursor() -# SQL 쿼리 실행 +# execute sql queries cursor.execute("select 'blah'") cursor.executemany("select %s", (("foo",), ("bar",))) ``` +MongoDB 예시: + +```python +from pymongo import MongoClient + +# Connect to MongoDB +client = MongoClient('mongodb://localhost:27017/') +db = client['test_database'] +collection = db['test_collection'] + +# Insert a document +collection.insert_one({"name": "test", "value": 1}) + +# Query documents +results = collection.find({"name": "test"}) +for doc in results: + print(doc) +``` + [1]: https://ddtrace.readthedocs.io/en/stable/release_notes.html [2]: https://ddtrace.readthedocs.io/en/stable/integrations.html#module-ddtrace.contrib.psycopg @@ -321,17 +382,17 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab ".NET" %}}
    -이 기능이 .NET 서비스에 대해 활성화되려면 자동 계측이 필요합니다. +이 기능을 사용하려면 .NET 서비스에서 자동 계측이 활성화되어 있어야 합니다.
    [.NET Framework 추적 지침][1]이나 [.NET Core 추적 지침][2]을 따라 자동 계측 패키지를 설치하고 서비스 추적을 활성화합니다. -지원되는 클라이언트 라이브러리를 사용하고 있는지 확인하세요(예: `Npgsql`). +지원되는 클라이언트 라이브러리를 사용하고 있는지 확인하세요. 예를 들어, `Npgsql`입니다. 다음 환경 변수를 설정해 데이터베이스 모니터링 전파 기능을 활성화합니다. - - Postgres 및 MySQL: `DD_DBM_PROPAGATION_MODE=full` - - SQL Server: `DD_DBM_PROPAGATION_MODE=service` 또는 Java와 .Net 트레이서가 있는 `DD_DBM_PROPAGATION_MODE=full` - - Oracle: `DD_DBM_PROPAGATION_MODE=service` + - Postgres 및 MySQL의 경우: `DD_DBM_PROPAGATION_MODE=full` + - SQL Server의 경우: `DD_DBM_PROPAGATION_MODE=service` 또는 `DD_DBM_PROPAGATION_MODE=full`(Java 및 .NET 트레이서 사용 시) + - Oracle의 경우: `DD_DBM_PROPAGATION_MODE=service` [1]: /ko/tracing/trace_collection/dd_libraries/dotnet-framework [2]: /ko/tracing/trace_collection/dd_libraries/dotnet-core @@ -341,12 +402,12 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab "PHP" %}}
    -이 기능을 사용하려면 PHP 서비스에서 트레이서 기능이 활성화되어 있어야 합니다. +이 기능을 사용하려면 PHP 서비스에서 트레이서 확장이 활성화되어 있어야 합니다.
    [PHP 추적 지침][1]을 따라 자동 계측 패키지를 설치하고 서비스 추적을 활성화합니다. -지원되는 클라이언트 라이브러리를 사용하고 있는지 확인하세요(예: `PDO`). +지원되는 클라이언트 라이브러리를 사용하고 있는지 확인하세요. 예를 들어, `PDO`입니다. 다음 환경 변수를 설정해 데이터베이스 모니터링 전파 기능을 활성화합니다. - `DD_DBM_PROPAGATION_MODE=full` @@ -357,30 +418,31 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab "Node.js" %}} -[dd-trace-js][1]를 `3.17.0`(또는 서비스 종료된 Node.js 버전 12를 사용하는 경우 `2.30.0`) 이상 버전으로 설치하거나 업데이트합니다. +[dd-trace-js][1]를 `3.17.0`(지원이 종료된 Node.js 12 버전을 사용하는 경우에는 `2.30.0`)보다 높은 버전으로 설치하거나 업데이트합니다. -``` +```shell npm install dd-trace@^3.17.0 ``` 가져올 코드를 업데이트하고 트레이서를 초기화합니다. + ```javascript // This line must come before importing any instrumented module. const tracer = require('dd-trace').init(); ``` -다음 메서드 중 하나를 사용해 데이터베이스 모니터링 전파를 활성화합니다. +다음 방법 중 하나를 사용하여 데이터베이스 모니터링 전파 기능을 활성화합니다. * 다음 환경 변수를 설정합니다. ``` DD_DBM_PROPAGATION_MODE=full ``` -* `dbmPropagationMode` 옵션을 사용하도록 트레이서를 설정합니다(기본값: `ENV['DD_DBM_PROPAGATION_MODE']`). +* SDK를 `dbmPropagationMode` 옵션(기본값: `ENV['DD_DBM_PROPAGATION_MODE']`)을 사용하도록 설정합니다. ```javascript const tracer = require('dd-trace').init({ dbmPropagationMode: 'full' }) ``` -* 통합 수준에서만 활성화: +* 통합 수준에서만 활성화합니다. ```javascript const tracer = require('dd-trace').init(); tracer.use('pg', { @@ -390,23 +452,24 @@ const tracer = require('dd-trace').init(); 전체 예시: + ```javascript const pg = require('pg') const tracer = require('dd-trace').init({ dbmPropagationMode: 'full' }) const client = new pg.Client({ - user: 'postgres', - password: 'postgres', - database: 'postgres' + user: 'postgres', + password: 'postgres', + database: 'postgres' }) client.connect(err => { - console.error(err); - process.exit(1); + console.error(err); + process.exit(1); }); client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { - // 결과 처리 + // handle result }) ``` @@ -416,47 +479,62 @@ client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { {{< /tabs >}} -## DBM에서 APM 연결 탐색 +활성화한 후 전파를 비활성화하려면 `DD_DBM_PROPAGATION_MODE=disabled`를 설정합니다. + +## 통합 확인 {#verify-the-integration} + +통합이 작동하는지 확인하려면: +1. 계측된 애플리케이션을 실행하고 데이터베이스 쿼리를 실행합니다. +1. Datadog에서 [**Database Monitoring > Query Samples**][37]로 이동합니다. +1. 쿼리 샘플에 **APM** 상관관계 배지가 표시되는지 확인합니다. + +## DBM에서 APM 연결 탐색 {#explore-the-apm-connection-in-dbm} + +### 활성 데이터베이스 연결을 APM 서비스 호출에 할당{#attribute-active-database-connections-to-the-calling-apm-services} -### 활성 데이터베이스 연결을 APM 서비스 호출에 할당 +{{< img src="database_monitoring/dbm_apm_active_connections_breakdown.png" alt="데이터베이스 활성 연결을 호출한 APM 서비스 기준으로 분류하여 확인합니다.">}} -{{< img src="database_monitoring/dbm_apm_active_connections_breakdown.png" alt="APM 서비스가 시작된 위치별로 분석된 데이터의 활성 연결 보기">}} +요청을 발생시킨 상위 APM 서비스별로 특정 호스트의 활성 연결을 분석합니다. 데이터베이스에 대한 부하를 개별 서비스에 할당하여 어떤 서비스가 데이터베이스에서 가장 활발한지 이해할 수 있습니다. 조사를 계속하기 위해 가장 활발한 상위 서비스의 서비스 페이지로 이동합니다. -특정 호스트에서 요청을 실행하는 업스트림 APM 서비스별로 분석할 수 있습니다. 데이터베이스에서 개별 서비스에 로드를 할당해 데이터베이스에서 어떤 서비스가 활성화 정도가 가장 높은지 볼 수 있습니다. 활성화 정도가 높은 업스트림 서비스의 서비스 페이지로 이동해 더 조사해 보세요. +### 호출하는 APM 서비스별로 데이터베이스 호스트 필터링 {#filter-your-database-hosts-by-the-apm-services-that-call-them} -### 호출하는 APM 서비스별로 데이터베이스 호스트 필터링 +{{< img src="database_monitoring/dbm_filter_by_calling_service.png" alt="호출하는 APM 서비스별로 데이터베이스 호스트를 필터링합니다.">}} -{{< img src="database_monitoring/dbm_filter_by_calling_service.png" alt="호출하는 APM 서비스별로 데이터베이스 호스트 필터링.">}} +데이터베이스 목록을 필터링하여 특정 APM 서비스가 의존하는 데이터베이스 호스트만 표시합니다. 하위 종속성 중에서 서비스 성능에 영향을 미칠 수 있는 차단 활동이 있는지 확인합니다. -데이터베이스 목록을 빠르게 필터링해 특정 APM 서비스가 종속된 데이터베이스 호스트만 표시할 수 있습니다. 차단 활동이 있어 서비스 성능에 문제를 일으키는 다운스트림 종속성이 있는지 쉽게 확인할 수 있습니다. +### 쿼리 샘플에 연결된 트레이스 보기 {#view-the-associated-trace-for-a-query-sample} -### 쿼리 샘플에 연결된 트레이스 보기 +{{< img src="database_monitoring/dbm_query_sample_trace_preview.png" alt="검사 중인 쿼리 샘플에서 생성된 APM 트레이스를 미리 봅니다.">}} -{{< img src="database_monitoring/dbm_query_sample_trace_preview.png" alt="검사한 쿼리 샘플을 생성한, 샘플된 APM 트레이스 미리 보기">}} +Database Monitoring에서 [쿼리 샘플][37]을 볼 때 연결된 트레이스를 APM이 샘플링했다면 APM 트레이스 컨텍스트에서 DBM 샘플을 볼 수 있습니다. 이를 통해 실행 계획과 쿼리 성능 내역을 포함한 DBM 텔레메트리를 결합할 수 있습니다. 또한 인프라 내 스팬 계보를 알 수 있어 데이터베이스에 애플리케이션 성능 문제를 일으키는 변화가 있었는지 파악할 수 있습니다. -데이터베이스 모니터링에서 쿼리 샘플을 볼 때 연결된 트레이스를 APM이 샘플했다면 APM 트레이스 컨텍스트에서 DBM 샘플을 볼 수 있습니다. 이를 통해 실행 계획과 쿼리 성능 내역을 포함한 DBM 원격 분석을 결합할 수 있습니다. 또한 인프라스트럭처 내 스팬 계보를 알 수 있어 데이터베이스에 애플리케이션 성능 문제를 일으키는 변화가 있었는지 파악할 수 있습니다. +## APM에서 DBM 연결 탐색 {#explore-the-dbm-connection-in-apm} -## APM에서 DBM 연결 탐색 +### APM 서비스의 다운스트림 데이터베이스 호스트 시각화 {#visualize-the-downstream-database-hosts-of-apm-services} -### APM 서비스의 다운스트림 데이터베이스 시각화 +특정 서비스의 APM 페이지에서 Database Monitoring이 식별한 해당 서비스의 직접적인 다운스트림 데이터베이스 종속성을 확인하고, 다른 워크로드의 영향으로 인해 특정 호스트에 과도한 부하가 집중되어 있는지 파악할 수 있습니다. 서비스의 데이터베이스 종속성을 보려면: +1. [Software Catalog][26]에서 서비스를 선택하여 세부 정보 패널을 엽니다. +1. 패널에서 {{< ui >}}Service Page{{< /ui >}}를 선택합니다. +1. Service 페이지에서 {{< ui >}}Databases{{< /ui >}} 섹션을 선택합니다. +1. Databases 섹션 내에서 {{< ui >}}Databases{{< /ui >}} 탭을 선택합니다. -{{< img src="database_monitoring/dbm_apm_service_page_db_host_list.png" alt="서비스 페이지에서 APM 서비스가 종속된 다운스트림 데이터베이스 호스트 시각화.">}} +### 스팬 지속 시간을 시각화하고 쿼리 세부 정보를 확인합니다 {#visualize-span-durations-and-view-query-details} -특정 서비스에 대한 APM 페이지에서 데이터베이스 모니터링에서 식별한 서비스의 직접 다운스트림 데이터베이스 종속성을 확인합니다. 가까운 곳에서 발생하는 노이즈로 인해 호스트의 부하가 불균형하게 발생하는지 빠르게 파악할 수 있습니다. 서비스 페이지를 보려면 [Software Catalog][26]에서 서비스를 클릭하여 세부 정보 패널을 연 다음 패널에서 **View Service Page**를 클릭하세요. +APM 서비스 페이지의 {{< ui >}}Databases{{< /ui >}} 섹션에서 {{< ui >}}Queries{{< /ui >}} 탭을 선택하면 선택한 시간 범위 내의 지연 시간 이상치와 전체 쿼리 목록을 확인할 수 있습니다. 테이블에서 특정 쿼리를 선택하면 쿼리 패널이 열리며 진단, 오류 세부 정보 및 트레이스 정보를 확인할 수 있습니다. -### 실행 계획을 이용해 트레이스에 있는 데이터베이스 쿼리에서 잠재적 최적화 방법 파악 +### 실행 계획을 이용해 트레이스에 있는 데이터베이스 쿼리에서 잠재적 최적화 방법 파악{#identify-potential-optimizations-using-explain-plans-for-database-queries-in-traces} -{{< img src="database_monitoring/explain_plans_in_traces_update.png" alt="트레이스 내부 데이터베이스 쿼리에 관한 실행 계획을 활용하여 비효율성 식별.">}} +{{< img src="database_monitoring/explain_plans_in_traces_update.png" alt="실행 계획을 이용해 트레이스에 있는 데이터베이스 쿼리에 대한 비효율성을 파악합니다.">}} -샘플된 대기 이벤트, 평균 대기 시간, 최근 캡처된 실행 계획 등 트레이스에서 실행된 쿼리와 유사한 쿼리의 성능 내역을 확인하여 향후 쿼리 성능을 컨텍스트 속에서 파악할 수 있습니다. 비정상적인 동작이 있는지 확인한 후 데이터베이스 모니터링으로 이동해 데이트베이스 호스트와 관련한 추가 컨텍스트를 더 자세히 조사할 수 있습니다. +트레이스에서 실행된 유사 쿼리의 과거 성능을 확인하고, 샘플링된 대기 이벤트, 평균 지연 시간, 최근 캡처된 실행 계획을 통해 해당 쿼리의 예상 성능을 파악합니다. 동작이 비정상인지 확인하고, 기본 데이터베이스 호스트에 대한 추가 컨텍스트를 얻기 위해 [Database Monitoring][1]으로 전환하여 조사를 계속합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ko/database_monitoring/#getting-started [2]: /ko/tracing/ -[3]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1 +[3]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2 [4]: https://pkg.go.dev/database/sql [5]: https://pkg.go.dev/github.com/jmoiron/sqlx [6]: https://github.com/dataDog/dd-trace-rb @@ -478,7 +556,7 @@ client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { [22]: https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/ [23]: https://github.com/DataDog/dd-trace-java [24]: https://learn.microsoft.com/sql/connect/ado-net/microsoft-ado-net-sql-server -[25]: https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[...]%20should%20set +[25]: https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set [26]: https://app.datadoghq.com/services [27]: https://pypi.org/project/asyncpg/ [28]: https://pypi.org/project/aiomysql/ @@ -486,4 +564,8 @@ client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { [30]: https://pypi.org/project/mysqlclient/ [31]: https://github.com/PyMySQL/PyMySQL [32]: https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace -[33]: https://github.com/mongodb/node-mongodb-native \ No newline at end of file +[33]: https://github.com/mongodb/node-mongodb-native +[34]: https://www.psycopg.org/psycopg3/ +[35]: https://pymongo.readthedocs.io/en/stable/ +[36]: https://www.mongodb.com/docs/drivers/java/sync/current/ +[37]: /ko/database_monitoring/query_samples/ \ No newline at end of file diff --git a/content/ko/database_monitoring/setup_postgres/rds/_index.md b/content/ko/database_monitoring/setup_postgres/rds/_index.md new file mode 100644 index 00000000000..25198b1b7a3 --- /dev/null +++ b/content/ko/database_monitoring/setup_postgres/rds/_index.md @@ -0,0 +1,653 @@ +--- +description: Amazon RDS에서 Postgres용 Database Monitoring을 설치하고 설정합니다. +further_reading: +- link: /integrations/postgres/ + tag: 설명서 + text: 기본 Postgres 통합 +- link: /database_monitoring/guide/rds_autodiscovery + tag: 설명서 + text: RDS용 Autodiscovery +- link: /database_monitoring/guide/parameterized_queries/ + tag: 설명서 + text: SQL 쿼리 파라미터 값 캡처 +title: Amazon RDS 관리형 Postgres에서 Database Monitoring 설정 +--- +Database Monitoring은 쿼리 메트릭, 쿼리 샘플, 계획 설명, 데이터베이스 상태, 대체 작동 및 이벤트를 노출하여 Postgres 데이터베이스에 대한 심층적인 가시성을 제공합니다. + +Agent는 읽기 전용 사용자로 로그인하여 데이터베이스에서 직접 텔레메트리를 수집합니다. Postgres 데이터베이스에서 Database Monitoring을 활성화하려면 다음 설정을 수행하세요. + +1. [AWS 통합 구성](#configure-the-aws-integration) +1. [데이터베이스 파라미터 구성](#configure-postgres-settings) +1. [Agent에 데이터베이스 액세스 권한 부여](#grant-the-agent-access) +1. [Agent 설치 및 구성](#install-and-configure-the-agent) +1. [RDS 통합 설치](#install-the-rds-integration) + +
    +소규모 환경(예: 데이터베이스 호스트 20개 이하)이거나 DBM을 처음 사용하여 빠르게 테스트하려는 경우에는 RDS 빠른 설치를 권장합니다. 대규모 데이터베이스 환경을 운영하여 UI를 통한 Agent 배포가 적합하지 않은 경우에는 표준 설치 방식을 사용하여 Agent를 직접 관리하거나 기존 자동화 체계에 통합하는 것이 좋습니다. +
    + +## 시작 전 참고 사항{#before-you-begin} + +지원되는 PostgreSQL 버전 +: 9.6, 10, 11, 12, 13, 14, 15, 16, 17 + +지원되는 Agent 버전 +: 7.36.1 이상 + +성능 영향 +: Database Monitoring을 위한 기본 Agent 구성은 보수적이지만, 수집 간격 및 쿼리 샘플링 비율과 같은 구성을 조정하여 환경에 맞게 최적화할 수 있습니다. 대부분의 워크로드에서 Agent는 데이터베이스 쿼리 실행 시간의 1% 미만, CPU 사용량의 1% 미만을 차지합니다.

    +Database Monitoring은 기본 Agent 위에서 실행되는 통합 기능입니다([벤치마크 참조][1]). + +프록시, 로드 밸런서 및 연결 풀러 +: Datadog Agent는 모니터링 대상 호스트에 직접 연결되어야 합니다. 자체 호스팅 데이터베이스의 경우 `127.0.0.1` 또는 소켓을 사용하세요. Agent는 프록시, 로드 밸런서, `pgbouncer`와 같은 연결 풀러를 통해 데이터베이스에 연결해서는 안 됩니다. Agent가 실행 중에 다른 호스트로 연결을 전환하는 경우(예: 장애 조치, 로드 밸런싱 등), 서로 다른 두 호스트의 통계 차이를 계산하게 되어 부정확한 메트릭이 생성됩니다. + +데이터 보안 고려사항 +: Agent가 데이터베이스에서 수집하는 데이터와 이를 안전하게 보호하는 방법에 대해서는 [민감한 정보][2]를 참조하세요. + +## AWS 통합 구성 {#configure-the-aws-integration} + +[Amazon Web Services 통합 타일][3]의 {{< ui >}}Resource Collection{{< /ui >}} 섹션에서 {{< ui >}}Resource Collection{{< /ui >}}을 활성화합니다. + +## Postgres 설정 구성 {#configure-postgres-settings} + +다음 [파라미터][4]를 [DB 파라미터 그룹][5]에서 구성한 후 설정이 적용되도록 **서버를 재시작**하세요. 이러한 파라미터에 대한 자세한 내용은 [Postgres 설명서][6]를 참조하세요. + +**필수 파라미터** + +| 파라미터 | 값 | 설명 | +| --- | --- | --- | +| `shared_preload_libraries` | `pg_stat_statements` | `postgresql.queries.*` 메트릭에 필요합니다. [pg_stat_statements][6] 확장을 사용하여 쿼리 메트릭 수집을 활성화합니다. | +| `track_activity_query_size` | `4096` | 더 긴 쿼리 수집에 필요합니다. `pg_stat_activity` 내 SQL 텍스트 크기를 증가시킵니다. 기본값을 유지하면 `1024`자를 초과하는 쿼리는 수집되지 않습니다. | + +**선택적 파라미터** + +| 파라미터 | 값 | 설명 | +| --- | --- | --- | +| `pg_stat_statements.track` | `ALL` | 저장 프로시저 및 함수 내에서 명령문 추적을 활성화합니다. | +| `pg_stat_statements.max` | `10000` | `pg_stat_statements`에서 추적되는 정규화된 쿼리 수를 증가시킵니다. 다양한 클라이언트에서 많은 종류의 쿼리가 실행되는 고트래픽 데이터베이스에 권장됩니다. | +| `pg_stat_statements.track_utility` | `off` | PREPARE 및 EXPLAIN과 같은 유틸리티 명령을 비활성화합니다. 이 값을 `off`로 설정하면 SELECT, UPDATE, DELETE와 같은 쿼리만 추적됩니다. | +| `track_io_timing` | `on` | 쿼리에 대한 블록 읽기 및 쓰기 시간 수집을 활성화합니다. | + +### `auto_explain` 활성화(선택 사항) {#enable-auto-explain-optional} + +기본적으로 Agent는 실행 중인 쿼리의 일부 샘플에 대해서만 [`EXPLAIN`][15] 계획을 수집합니다. 이 계획들은 일반적인 수준의 정보만 제공하며, 특히 애플리케이션 코드에서 준비된 문을 사용할 때 더욱 그렇습니다. + +모든 쿼리에서 가져온 전체 `EXPLAIN ANALYZE` 계획을 수집하려면 주요 제공업체에서 제공되는 PostgreSQL에 번들로 포함된 자사 확장 기능인 [`auto_explain`][16]을 사용해야 합니다. _`auto_explain` 수집_을 사용하려면 먼저 로그 수집을 활성화해야 합니다. + +
    +중요: auto_explain 은 민감한 애플리케이션 데이터를 포함할 수 있는 로그 라인을 생성하며, 이는 난독화되지 않은 SQL의 원시 값과 유사합니다. dbm_parameterized_queries_read 권한을 사용하여 결과 계획에 대한 접근을 제어하세요. 로그 라인은 Datadog 조직의 모든 사용자에게 표시되므로, 로그 라인 자체의 가시성을 제한하려면 로그용 RBAC도 구성하세요. Datadog은 민감한 정보를 효과적으로 보호하기 위해 두 권한을 모두 사용하는 것을 권장합니다. +
    + +1. `auto_explain` 설정을 구성합니다. 로그 형식은 _반드시_ `json`여야 하지만, 다른 설정은 애플리케이션에 따라 달라질 수 있습니다. 아래 예시는 버퍼 정보는 포함하지만 (오버헤드가 있을 수 있는) 타이밍은 생략하는 조건으로 1초 이상 걸리는 모든 쿼리에 대한 `EXPLAIN ANALYZE` 계획을 기록합니다. + +| 파라미터 | 값 | 설명 | +| --- | --- | --- | +| `shared_preload_libraries` | `pg_stat_statements,auto_explain` | 자동 `EXPLAIN ANALYZE` | 활성화 +| `auto_explain.log_format` | `json` | 기계 판독 가능한 계획 생성 | +| `auto_explain.log_min_duration` | `1000` | 쿼리가 1초를 초과할 때마다 계획 기록 | +| `auto_explain.log_analyze` | `on` | `EXPLAIN` | 형태의 `ANALYZE` 사용 +| `auto_explain.log_buffers` | `on` | 계획에 버퍼 사용 정보 포함 | +| `auto_explain.log_timing` | `off` | 타이밍 정보 제외(높은 오버헤드 방지) | +| `auto_explain.log_triggers` | `on` | 트리거 문에 대한 계획 포함 | +| `auto_explain.log_verbose` | `on` | 상세 계획 유형 사용 | +| `auto_explain.log_nested_statements` | `on` | 중첩된 문 포함 | +| `auto_explain.sample_rate` | `1` | 지정된 시간을 초과하는 모든 쿼리 설명 | + +2. `log_line_prefix`를 변경하여 더 풍부한 이벤트 상관관계를 활성화합니다. 자세한 내용은 [RDS DB 파라미터 그룹][17] 설명서를 참조하세요. `auto_explain` 수집을 위해서는 이 값이 `%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a`로 설정되어 있어야 합니다. + +3. RDS 인스턴스가 CloudWatch 및 Datadog로 로그를 전달하도록 [Amazon RDS 로그 수집][18] 지침을 따릅니다. + + +## Agent에 액세스 권한 부여 {#grant-the-agent-access} + +Datadog Agent가 통계와 쿼리를 수집하려면 데이터베이스에 읽기 전용 액세스가 필요합니다. + +Postgres가 복제 구성인 경우 클러스터의 **기본** 데이터베이스 서버(쓰기 노드)에서 다음 SQL 명령을 실행하세요. Agent는 어느 데이터베이스에 연결하든 서버 내 모든 데이터베이스의 텔레메트리를 수집할 수 있습니다. 특정 데이터베이스에만 존재하는 데이터를 대상으로 [사용자 지정 쿼리 실행][7]이 필요한 경우가 아니라면 기본 `postgres` 데이터베이스를 사용하세요. + +슈퍼유저(또는 충분한 권한이 있는 다른 사용자)로 선택한 데이터베이스에 연결합니다. 예를 들어 [psql][8]을 사용하여 `postgres` 데이터베이스에 연결하려면 다음을 실행합니다. + + ```bash + psql -h mydb.example.com -d postgres -U postgres + ``` + +`datadog` 사용자를 생성합니다. + +```SQL +CREATE USER datadog WITH password ''; +``` + +**참고:** IAM 인증도 지원됩니다. RDS 인스턴스에서 이를 구성하는 방법은 [가이드][9]를 참조하세요. + +{{< tabs >}} +{{% tab "Postgres ≥ 15" %}} + +`datadog` 사용자에게 관련 테이블에 대한 권한을 부여합니다. + +```SQL +ALTER ROLE datadog INHERIT; +``` + +다음 스키마를 **모든 데이터베이스에** 생성합니다. + +```SQL +CREATE SCHEMA datadog; +GRANT USAGE ON SCHEMA datadog TO datadog; +GRANT USAGE ON SCHEMA public TO datadog; +GRANT pg_monitor TO datadog; +CREATE EXTENSION IF NOT EXISTS pg_stat_statements schema public; +``` +{{% /tab %}} + +{{% tab "Postgres ≥ 10" %}} + +다음 스키마를 **모든 데이터베이스에** 생성합니다. + +```SQL +CREATE SCHEMA datadog; +GRANT USAGE ON SCHEMA datadog TO datadog; +GRANT USAGE ON SCHEMA public TO datadog; +GRANT pg_monitor TO datadog; +CREATE EXTENSION IF NOT EXISTS pg_stat_statements schema public; +``` + +{{% /tab %}} +{{% tab "Postgres 9.6" %}} + +다음 스키마를 **모든 데이터베이스에** 생성합니다. + +```SQL +CREATE SCHEMA datadog; +GRANT USAGE ON SCHEMA datadog TO datadog; +GRANT USAGE ON SCHEMA public TO datadog; +GRANT SELECT ON pg_stat_database TO datadog; +CREATE EXTENSION IF NOT EXISTS pg_stat_statements; +``` + +Agent가 `pg_stat_activity` 및 `pg_stat_statements`의 전체 내용을 읽을 수 있도록 다음 함수를 **모든 데이터베이스에** 생성합니다. + +```SQL +CREATE OR REPLACE FUNCTION datadog.pg_stat_activity() RETURNS SETOF pg_stat_activity AS + $$ SELECT * FROM pg_catalog.pg_stat_activity; $$ +LANGUAGE sql +SECURITY DEFINER; +CREATE OR REPLACE FUNCTION datadog.pg_stat_statements() RETURNS SETOF pg_stat_statements AS + $$ SELECT * FROM pg_stat_statements; $$ +LANGUAGE sql +SECURITY DEFINER; +``` + +{{% /tab %}} +{{< /tabs >}} + +
    데이터 수집 또는 추가 테이블 쿼리가 필요한 사용자 지정 메트릭의 경우, 해당 테이블에 대한 권한을 SELECT 사용자에게 부여해야 할 수 datadog 있습니다. 예시: grant SELECT on <TABLE_NAME> to datadog;자세한 내용은 PostgreSQL 사용자 지정 메트릭 수집을 참조하세요.
    + +### Explain Plan 함수 생성 {#create-the-explain-plan-function} + +Agent가 Explain Plan을 수집할 수 있도록 다음 함수를 **모든 데이터베이스에** 생성합니다. + +```SQL +CREATE OR REPLACE FUNCTION datadog.explain_statement( + l_query TEXT, + OUT explain JSON +) +RETURNS SETOF JSON AS +$$ +DECLARE +curs REFCURSOR; +plan JSON; + +BEGIN + SET TRANSACTION READ ONLY; + + OPEN curs FOR EXECUTE pg_catalog.concat('EXPLAIN (FORMAT JSON) ', l_query); + FETCH curs INTO plan; + CLOSE curs; + RETURN QUERY SELECT plan; +END; +$$ +LANGUAGE 'plpgsql' +RETURNS NULL ON NULL INPUT +SECURITY DEFINER; +``` + +### 비밀번호 안전하게 저장 {#securely-store-your-password} +{{% dbm-secret %}} + +### 데이터베이스 권한 확인 {#verify-database-permissions} + +권한이 올바르게 설정되었는지 확인하려면 다음 명령을 실행하여 Agent 사용자가 데이터베이스에 연결하고 코어 테이블을 읽을 수 있는지 확인하세요. +{{< tabs >}} +{{% tab "Postgres ≥ 10" %}} + +```shell +psql -h localhost -U datadog postgres -A \ + -c "select * from pg_stat_database limit 1;" \ + && echo -e "\e[0;32mPostgres connection - OK\e[0m" \ + || echo -e "\e[0;31mCannot connect to Postgres\e[0m" +psql -h localhost -U datadog postgres -A \ + -c "select * from pg_stat_activity limit 1;" \ + && echo -e "\e[0;32mPostgres pg_stat_activity read OK\e[0m" \ + || echo -e "\e[0;31mCannot read from pg_stat_activity\e[0m" +psql -h localhost -U datadog postgres -A \ + -c "select * from pg_stat_statements limit 1;" \ + && echo -e "\e[0;32mPostgres pg_stat_statements read OK\e[0m" \ + || echo -e "\e[0;31mCannot read from pg_stat_statements\e[0m" +``` +{{% /tab %}} +{{% tab "Postgres 9.6" %}} + +```shell +psql -h localhost -U datadog postgres -A \ + -c "select * from pg_stat_database limit 1;" \ + && echo -e "\e[0;32mPostgres connection - OK\e[0m" \ + || echo -e "\e[0;31mCannot connect to Postgres\e[0m" +psql -h localhost -U datadog postgres -A \ + -c "select * from datadog.pg_stat_activity() limit 1;" \ + && echo -e "\e[0;32mPostgres pg_stat_activity read OK\e[0m" \ + || echo -e "\e[0;31mCannot read from pg_stat_activity\e[0m" +psql -h localhost -U datadog postgres -A \ + -c "select * from datadog.pg_stat_statements() limit 1;" \ + && echo -e "\e[0;32mPostgres pg_stat_statements read OK\e[0m" \ + || echo -e "\e[0;31mCannot read from pg_stat_statements\e[0m" +``` + +{{% /tab %}} +{{< /tabs >}} + +비밀번호 입력을 요청하면 `datadog` 사용자를 생성할 때 입력한 비밀번호를 사용하세요. + +## Agent 설치 및 구성 {#install-and-configure-the-agent} + +RDS 호스트를 모니터링하려면 인프라에 Datadog Agent를 설치하고 각 인스턴스 엔드포인트에 원격으로 연결되도록 구성하세요. Agent는 데이터베이스에서 실행될 필요가 없으며, 데이터베이스에 연결만 할 수 있으면 됩니다. 여기에서 언급되지 않은 추가 Agent 설치 방법은 [Agent 설치 지침][10]을 참조하세요. + +{{< tabs >}} +{{% tab "호스트" %}} +호스트에서 실행하는 Database Monitoring 메트릭 수집을 설정하려면(예: 에이전트가 RDS 데이터베이스에서 수집할 수 있도록 소규모 EC2 인스턴스를 프로비저닝할 때) 다음을 따릅니다. + +1. `postgres.d/conf.yaml` 파일을 편집하여 `host` / `port`를 가리키도록 설정하고 모니터링할 마스터를 지정합니다. 사용 가능한 모든 구성 옵션은 [샘플 postgres.d/conf.yaml][1]을 참조하세요. + + ```yaml + init_config: + instances: + - dbm: true + host: '' + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: '' + region: '' + tags: + - "dbinstanceidentifier:" + + ## Required for Postgres 9.6: Uncomment these lines to use the functions created in the setup + # pg_stat_statements_view: datadog.pg_stat_statements() + # pg_stat_activity_view: datadog.pg_stat_activity() + + ## Optional: Connect to a different database if needed for `custom_queries` + # dbname: '' + ``` + + Agent 버전 `≤ 7.49`의 경우 `host`와 `port`가 지정된 인스턴스 구성에 다음 설정을 추가하세요. + + ```yaml + ssl: allow + ``` + + IAM 인증을 사용할 경우 `region` 및 `instance_endpoint` 파라미터를 지정하고 `managed_authentication.enabled`를 `true`로 설정하세요. + + **참고**: IAM 인증을 사용하려는 경우에만 `managed_authentication`을 활성화하세요. IAM 인증은 `password` 필드보다 우선합니다. + + ```yaml + init_config: + instances: + - dbm: true + host: '' + port: 5432 + username: datadog + aws: + instance_endpoint: '' + region: '' + managed_authentication: + enabled: true + tags: + - "dbinstanceidentifier:" + + ## Required for Postgres 9.6: Uncomment these lines to use the functions created in the setup + # pg_stat_statements_view: datadog.pg_stat_statements() + # pg_stat_activity_view: datadog.pg_stat_activity() + + ## Optional: Connect to a different database if needed for `custom_queries` + # dbname: '' + ``` + + RDS 인스턴스에서 IAM 인증을 구성하는 방법에 대한 정보는 [관리형 인증으로 연결하기][3]를 참조하세요. + +2. [Agent를 재시작][2]합니다. + +[1]: https://github.com/DataDog/integrations-core/blob/master/postgres/datadog_checks/postgres/data/conf.yaml.example +[2]: /ko/agent/configuration/agent-commands/#start-stop-and-restart-the-agent +[3]: /ko/database_monitoring/guide/managed_authentication +{{% /tab %}} + +{{% tab "Docker" %}} +ECS 또는 Fargate와 같이 Docker 컨테이너에서 실행되는 Agent에 통합을 구성하려면 여러 가지 방법을 사용할 수 있으며, 자세한 내용은 [Docker 구성 설명서][1]에 설명되어 있습니다. + +아래 예제에서는 [Docker 레이블][2]과 [Autodiscovery 템플릿][3]를 사용하여 Postgres 통합을 구성하는 방법을 보여줍니다. + +**참고**: 레이블에 대한 Autodiscovery가 작동하려면 Agent에 Docker 소켓에 대한 읽기 권한이 있어야 합니다. + +### 명령줄 {#command-line} + +Agent를 시작하려면 [명령줄][4]에서 다음 명령을 실행합니다. 자리표시자 값은 실제 계정 및 환경 값으로 바꾸세요. + +```bash +export DD_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +export DD_AGENT_VERSION= + +docker run -e "DD_API_KEY=${DD_API_KEY}" \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -l com.datadoghq.ad.checks='{"postgres": { + "init_config": {}, + "instances": [{ + "dbm": true, + "host": "", + "port": 5432, + "username": "datadog", + "password": "", + "aws": { + "instance_endpoint": "", + "region": "" + }, + "tags": ["dbinstanceidentifier:"] + }] + }}' \ + registry.datadoghq.com/agent:${DD_AGENT_VERSION} +``` + +Postgres 9.6의 경우 호스트와 포트가 지정된 인스턴스 구성에 다음 설정을 추가하세요. + +```yaml +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" +``` + +### Dockerfile {#dockerfile} + +`Dockerfile`에 레이블을 지정하여 인프라 구성을 수정하지 않고도 사용자 지정 Agent를 빌드 및 배포할 수도 있습니다. + +```Dockerfile +FROM registry.datadoghq.com/agent: + +LABEL "com.datadoghq.ad.check_names"='["postgres"]' +LABEL "com.datadoghq.ad.init_configs"='[{}]' +LABEL "com.datadoghq.ad.instances"='[{"dbm": true, "host": "", "port": 5432,"username": "datadog","password": "ENC[datadog_user_database_password]","aws": {"instance_endpoint": "", "region": ""}, "tags": ["dbinstanceidentifier:"]}]' +``` + +Postgres 9.6의 경우 호스트와 포트가 지정된 인스턴스 구성에 다음 설정을 추가하세요. + +```yaml +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" +``` + +`datadog` 사용자의 비밀번호가 일반 텍스트로 노출되지 않도록 하려면 Agent의 [시크릿 관리 패키지][5]를 사용하고 `ENC[]` 구문을 사용하여 비밀번호를 선언하세요. 또는 [Autodiscovery 템플릿 변수 설명서][6]을 참조하여 환경 변수로 비밀번호를 제공할 수 있습니다. + +[1]: /ko/containers/docker/integrations/?tab=labels#configuration +[2]: https://docs.docker.com/engine/manage-resources/labels/ +[3]: /ko/getting_started/containers/autodiscovery/ +[4]: /ko/containers/docker/integrations/?tab=labels#using-docker-run-nerdctl-run-or-podman-run +[5]: /ko/agent/configuration/secrets-management +[6]: /ko/agent/faq/template_variables/ +{{% /tab %}} + +{{% tab "Kubernetes" %}} +Kubernetes 클러스터를 실행 중인 경우 Database Monitoring을 활성화하려면 [Datadog Cluster Agent][1]를 사용하세요. + +**참고**: 계속 진행하기 전에 Datadog Cluster Agent에서 [클러스터 검사][2]가 활성화되어 있는지 확인하세요. + +아래에는 다양한 Datadog Cluster Agent 배포 방식을 사용하여 Postgres 통합을 구성하는 단계별 지침이 나와 있습니다. + +### Operator {#operator} + +[Kubernetes and Integrations의 Operator 지침][3]을 참고하여 다음 단계에 따라 Postgres 통합을 설정하세요. + +1. 다음 구성을 사용하여 `datadog-agent.yaml` 파일을 생성 또는 업데이트합니다. + + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + global: + clusterName: + site: + credentials: + apiSecret: + secretName: datadog-agent-secret + keyName: api-key + + features: + clusterChecks: + enabled: true + + override: + nodeAgent: + image: + name: agent + tag: + + clusterAgent: + extraConfd: + configDataMap: + postgres.yaml: |- + cluster_check: true + init_config: + instances: + - host: + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' + dbm: true + aws: + instance_endpoint: + region: + tags: + - "dbinstanceidentifier:" + + ``` + + **Note**: For Postgres 9.6, add the following lines to the instance config where host and port are specified: + + ```yaml + pg_stat_statements_view: datadog.pg_stat_statements() + pg_stat_activity_view: datadog.pg_stat_activity() + ``` + +2. 다음 명령을 사용하여 변경 사항을 Datadog Operator에 적용합니다. + + ```shell + kubectl apply -f datadog-agent.yaml + ``` + +### Helm {#helm} + +[Kubernetes and Integrations의 Helm 지침][4]을 참고하여 다음 단계에 따라 Postgres 통합을 설정하세요. + +1. 다음 구성을 사용하여 `datadog-values.yaml` 파일(Cluster Agent 설치 지침에서 사용하는 파일)을 업데이트합니다. + + ```yaml + datadog: + clusterChecks: + enabled: true + + clusterChecksRunner: + enabled: true + + clusterAgent: + enabled: true + confd: + postgres.yaml: |- + cluster_check: true + init_config: + instances: + - dbm: true + host: + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: + region: + tags: + - "dbinstanceidentifier:" + + ``` + + **Note**: For Postgres 9.6, add the following lines to the instance config where host and port are specified: + + ```yaml + pg_stat_statements_view: datadog.pg_stat_statements() + pg_stat_activity_view: datadog.pg_stat_activity() + ``` + +2. 다음 명령을 사용하여 위 구성 파일과 함께 Agent를 배포합니다. + + ```shell + helm install datadog-agent -f datadog-values.yaml datadog/datadog + ``` + +
    +Windows에서는 --set targetSystem=windowshelm install 명령에 추가합니다. +
    + +### 마운팅된 파일로 구성 {#configure-with-mounted-files} + +마운팅된 구성 파일로 클러스터 검사를 구성하려면 Cluster Agent 컨테이너의 다음 경로에 구성 파일을 마운트합니다. `/conf.d/postgres.yaml` + +```yaml +cluster_check: true # Make sure to include this flag +init_config: +instances: + - dbm: true + host: '' + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: + region: + tags: + - "dbinstanceidentifier:" + + ## Required: For Postgres 9.6, uncomment these lines to use the functions created in the setup + # pg_stat_statements_view: datadog.pg_stat_statements() + # pg_stat_activity_view: datadog.pg_stat_activity() +``` + +### Kubernetes 서비스 주석으로 구성 {#configure-with-kubernetes-service-annotations} + +파일을 마운팅하는 대신 인스턴스 구성을 Kubernetes 서비스로 선언할 수 있습니다. Kubernetes에서 실행되는 Agent에 이 검사를 구성하려면 다음 구문을 사용하여 서비스를 생성합니다. + +#### Autodiscovery annotations v2 {#autodiscovery-annotations-v2} + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: postgres + labels: + tags.datadoghq.com/env: '' + tags.datadoghq.com/service: '' + annotations: + ad.datadoghq.com/service.checks: | + { + "postgres": { + "init_config": , + "instances": [ + { + "dbm": true, + "host": "", + "port": 5432, + "username": "datadog", + "password": "ENC[datadog_user_database_password]", + "aws": { + "instance_endpoint": "", + "region": "" + }, + "tags": [ + "dbinstanceidentifier:" + ] + } + ] + } + } +spec: + ports: + - port: 5432 + protocol: TCP + targetPort: 5432 + name: postgres +``` + +자세한 내용은 [Autodiscovery Annotations][5]를 참조하세요. + +Postgres 9.6을 사용하는 경우 인스턴스 구성에 다음 내용을 추가합니다. + +```json +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" +``` + +Cluster Agent가 자동으로 설정을 등록하고 Postgres 검사 실행을 시작합니다. + +`datadog` 사용자의 비밀번호가 일반 텍스트로 노출되지 않도록 하려면 Agent의 [시크릿 관리 패키지][6]를 사용하고 `ENC[]` 구문을 사용하여 비밀번호를 선언하세요. + +[1]: /ko/containers/cluster_agent/setup/ +[2]: /ko/containers/cluster_agent/clusterchecks/ +[3]: /ko/containers/kubernetes/integrations/?tab=datadogoperator +[4]: /ko/containers/kubernetes/integrations/?tab=helm +[5]: /ko/containers/kubernetes/integrations/?tab=annotations#configuration +[6]: /ko/agent/configuration/secrets-management +{{% /tab %}} +{{< /tabs >}} + +### Agent 설정 확인 {#verify-agent-setup} + +[Agent의 상태 하위 명령을 실행][11]하고 검사 섹션에서 `postgres`를 찾습니다. 또는 [데이터베이스][12] 페이지를 방문하여 시작할 수 있습니다. + +## Agent 구성 예시 {#example-agent-configurations} +{{% dbm-postgres-agent-config-examples %}} + +## RDS 통합 설치 {#install-the-rds-integration} + +DBM의 데이터베이스 텔레메트리와 함께 CPU와 같은 AWS의 인프라스트럭처 메트릭을 보려면 [RDS 통합][13](선택 사항)을 설치하세요. + +## 문제 해결 {#troubleshooting} + +설명한 대로 통합 및 Agent를 설치하고 구성했음에도 예상대로 작동하지 않는 경우 [문제 해결][14]을 참조하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: /ko/database_monitoring/agent_integration_overhead/?tab=postgres +[2]: /ko/database_monitoring/data_collected/#sensitive-information +[3]: https://app.datadoghq.com/integrations/amazon-web-services +[4]: https://www.postgresql.org/docs/current/config-setting.html +[5]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html +[6]: https://www.postgresql.org/docs/current/pgstatstatements.html +[7]: /ko/integrations/faq/postgres-custom-metric-collection-explained/ +[8]: https://www.postgresql.org/docs/current/app-psql.html +[9]: /ko/database_monitoring/guide/managed_authentication +[10]: https://app.datadoghq.com/account/settings/agent/latest +[11]: /ko/agent/configuration/agent-commands/#agent-status-and-information +[12]: https://app.datadoghq.com/databases +[13]: /ko/integrations/amazon_rds +[14]: /ko/database_monitoring/troubleshooting/?tab=postgres +[15]: https://www.postgresql.org/docs/current/sql-explain.html +[16]: https://www.postgresql.org/docs/current/auto-explain.html +[17]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.html +[18]: /ko/integrations/amazon-rds/?tab=standard#log-collection \ No newline at end of file diff --git a/content/ko/database_monitoring/setup_postgres/selfhosted.md b/content/ko/database_monitoring/setup_postgres/selfhosted.md index c5172eaeee6..8c9189218a8 100644 --- a/content/ko/database_monitoring/setup_postgres/selfhosted.md +++ b/content/ko/database_monitoring/setup_postgres/selfhosted.md @@ -1,67 +1,80 @@ --- -description: 자체 호스팅 Postgres에서 데이터베이스 모니터링을 설치하고 설정합니다. +description: 자체 호스팅 Postgres에서 Database Monitoring을 설치하고 구성합니다. further_reading: - link: /integrations/postgres/ tag: 설명서 text: 기본 Postgres 통합 -title: 자체 호스팅 Postgres에서 데이터베이스 모니터링 설정 +- link: /database_monitoring/guide/parameterized_queries/ + tag: 설명서 + text: SQL 쿼리 파라미터 값 캡처 +- link: https://www.datadoghq.com/blog/database-monitoring-explain-analyze + tag: 블로그 + text: Datadog Database Monitoring에서 EXPLAIN ANALYZE를 사용해 PostgreSQL 쿼리 지연 시간을 빠르게 + 디버깅 +title: 자체 호스팅 Postgres에서 Database Monitoring 설정 --- +Database Monitoring은 쿼리 메트릭, 쿼리 샘플, 계획 설명, 데이터베이스 상태, 대체 작동 및 이벤트를 노출하여 Postgres 데이터베이스에 대한 심층적인 가시성을 제공합니다. -데이터베이스 모니터링은 쿼리 메트릭, 쿼리 샘플, 설명 계획, 데이터베이스 상태, 페일오버 및 이벤트를 노출하여 Postgres 데이터베이스에 대한 심층적인 가시성을 제공합니다. - -Agent는 읽기 전용 사용자로 로그인하여 데이터베이스에서 직접 원격 분석을 수집합니다. Postgres 데이터베이스로 데이터베이스 모니터링을 활성화하려면 다음 설정을 수행합니다. +Agent는 읽기 전용 사용자로 로그인하여 데이터베이스에서 직접 원격 분석을 수집합니다. Postgres 데이터베이스에서 Database Monitoring을 활성화하려면 다음 설정을 수행하세요. -1. [데이터베이스 파라미터 설정](#configure-postgres-settings) -1. [에이전트에 데이터베이스 접근 권한 부여](#grant-the-agent-access) +1. [데이터베이스 파라미터 구성](#configure-postgres-settings) +1. [Agent에 데이터베이스 액세스 권한 부여](#grant-the-agent-access) 1. [Agent 설치](#install-the-agent) -## 시작 전 참고 사항 +## 시작 전 참고 사항 {#before-you-begin} 지원되는 PostgreSQL 버전 -: 9.6, 10, 11, 12, 13, 14, 15, 16 +: 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18 전제 조건 -: Postgres 추가 제공 모듈을 설치해야 합니다. 대부분의 설치에서는 기본적으로 포함되어 있지만, 일반적인 설치가 아닌 경우에는 [ `postgresql-contrib` 패키지][1] 버전을 추가로 설치해야 할 수 있습니다. +: Postgres 추가 제공 모듈을 설치해야 합니다. 대부분의 설치에서는 기본적으로 포함되어 있지만, 일반적인 설치가 아닌 경우에는 [`postgresql-contrib` 패키지][1] 버전을 추가로 설치해야 할 수 있습니다. 지원되는 Agent 버전 -: 7.36.1+ +: 7.36.1 이상 성능 영향 -: 기본값 에이전트 설정 데이터베이스 모니터링은 보수적이지만 수집 간격 및 쿼리 샘플링 속도 등의 설정을 필요에 맞게 조정할 수 있습니다. 대부분의 워크로드에서 에이전트는 데이터베이스에서 쿼리 실행 시간의 1% 미만, CPU 의 1% 미만을 차지합니다.

    -데이터베이스 모니터링은 기본 에이전트([벤치마크][2] 참조) 위에서 통합으로 실행됩니다. +: Database Monitoring을 위한 기본 Agent 구성은 보수적이지만, 수집 간격 및 쿼리 샘플링 비율과 같은 구성을 조정하여 환경에 맞게 최적화할 수 있습니다. 대부분의 워크로드에서 Agent는 데이터베이스 쿼리 실행 시간의 1% 미만, CPU 사용량의 1% 미만을 차지합니다.

    +Database Monitoring은 기본 Agent 위에서 실행되는 통합 기능입니다([벤치마크 참조][2]). 프록시, 로드 밸런서 및 연결 풀러 -: Datadog Agent는 모니터링 중인 호스트에 직접 연결해야 합니다. 자체 호스팅 데이터베이스의 경우 `127.0.0.1` 또는 소켓이 선호됩니다. Agent는 `pgbouncer`와 같은 프록시, 로드 밸런서, 연결 풀러를 통해 데이터베이스에 연결해서는 안됩니다. Agent가 실행되는 동안 다른 호스트에 연결하는 경우(페일오버, 로드밸런싱 등) Agent는 두 호스트 간의 통계 차이를 계산하여 부정확한 메트릭을 생성합니다. +: Datadog Agent는 모니터링 대상 호스트에 직접 연결되어야 합니다. 자체 호스팅 데이터베이스의 경우 `127.0.0.1` 또는 소켓을 사용하세요. Agent는 프록시, 로드 밸런서, `pgbouncer`와 같은 연결 풀러를 통해 데이터베이스에 연결해서는 안 됩니다. Agent가 실행 중에 다른 호스트로 연결을 전환하는 경우(예: 장애 조치, 로드 밸런싱 등), 서로 다른 두 호스트의 통계 차이를 계산하게 되어 부정확한 메트릭이 생성됩니다. 데이터 보안 고려 사항 -: 에이전트가 데이터베이스에서 수집하는 데이터와 데이터의 보안을 유지하는 방법에 대한 자세한 내용은 [민감한 정보][3]를 참조하세요. +: Agent가 데이터베이스에서 수집하는 데이터와 이를 안전하게 보호하는 방법에 대해서는 [민감한 정보][3]를 참조하세요. + +## Postgres 설정 구성 {#configure-postgres-settings} -## Postgres 설정 구성 +설정을 적용하려면 `postgresql.conf` 파일에서 다음 [파라미터][4]를 구성한 다음 **서버 재시작**을 실행합니다. 이러한 파라미터에 대한 자세한 내용은 [Postgres 설명서][5]를 참조하세요. -`postgresql.conf` 파일에서 다음 [파라미터][4]을 설정한 다음 **서버를 다시 시작**해야 설정이 적용됩니다. 이러한 파라미터에 대한 자세한 내용은 [Postgres 설명서][5]를 참조하세요. +**필수 파라미터** | 파라미터 | 값 | 설명 | | --- | --- | --- | -| `shared_preload_libraries` | `pg_stat_statements` | `postgresql.queries.*` 메트릭에 필요합니다. [pg_stat_statements][5] 확장자를 사용하여 쿼리 메트릭 수집을 활성화합니다. | -| `track_activity_query_size` | `4096` | 더 대규모 쿼리를 수집하는 데 필요합니다. `pg_stat_activity`의 SQL 텍스트의 크기를 늘립니다. 기본값으로 두면 `1024`자보다 긴 쿼리는 수집되지 않습니다. | -| `pg_stat_statements.track` | `ALL` | 선택 사항. 저장 프로시저 및 함수 내에서 명령문을 추적할 수 있습니다. | -| `pg_stat_statements.max` | `10000` | 선택 사항. `pg_stat_statements`에서 추적되는 정규화된 쿼리 수를 늘립니다. 이 설정은 다양한 클라이언트의 다양한 유형의 쿼리를 보는 대용량 데이터베이스에 권장됩니다. | -| `pg_stat_statements.track_utility` | `off` | 선택 사항. PREPARE 및 EXPLAIN과 같은 유틸리티 명령을 비활성화합니다. 이 값을 `off`로 설정하면 SELECT, UPDATE, DELETE와 같은 쿼리만 추적됩니다. | -| `track_io_timing` | `on` | 선택 사항. 쿼리에 대한 블록 읽기 및 쓰기 시간 수집을 활성화합니다. | +| `shared_preload_libraries` | `pg_stat_statements` | `postgresql.queries.*` 메트릭에 필요합니다. [pg_stat_statements][5] 확장을 사용하여 쿼리 메트릭 수집을 활성화합니다. | +| `track_activity_query_size` | `4096` | 더 긴 쿼리 수집에 필요합니다. `pg_stat_activity` 내 SQL 텍스트 크기를 증가시킵니다. 기본값을 유지하면 `1024`자를 초과하는 쿼리는 수집되지 않습니다. | -## 에이전트에 접근 권한 부여 +**선택적 파라미터** + +| 파라미터 | 값 | 설명 | +| --- | --- | --- | +| `pg_stat_statements.track` | `ALL` | 저장 프로시저 및 함수 내에서 명령문 추적을 활성화합니다. | +| `pg_stat_statements.max` | `10000` | `pg_stat_statements`에서 추적되는 정규화된 쿼리 수를 증가시킵니다. 다양한 클라이언트에서 많은 종류의 쿼리가 실행되는 고트래픽 데이터베이스에 권장됩니다. | +| `pg_stat_statements.track_utility` | `off` | PREPARE 및 EXPLAIN과 같은 유틸리티 명령을 비활성화합니다. 이 값을 `off`로 설정하면 SELECT, UPDATE, DELETE와 같은 쿼리만 추적됩니다. | +| `track_io_timing` | `on` | 쿼리에 대한 블록 읽기 및 쓰기 시간 수집을 활성화합니다. | -Datadog 에이전트가 통계와 쿼리를 수집하려면 데이터베이스에 읽기 전용 액세스가 필요합니다. +## Agent 액세스 권한 부여 {#grant-the-agent-access} -Postgres가 복제된 경우 클러스터의 **기본** 데이터베이스 서버(작성자)에서 다음 SQL 명령을 실행해야 합니다. 에이전트가 연결할 데이터베이스 서버에서 PostgreSQL 데이터베이스를 선택합니다. 에이전트는 연결된 데이터베이스에 관계없이 데이터베이스 서버의 모든 데이터베이스에서 텔레메트리를 수집할 수 있으므로 기본 `postgres` 데이터베이스를 사용하는 것이 좋습니다. 에이전트가 [해당 데이터베이스 고유의 데이터에 대한 사용자 지정 쿼리][6]를 실행하는 경우에만 다른 데이터베이스를 선택하세요. +Datadog Agent가 통계와 쿼리를 수집하려면 데이터베이스에 읽기 전용 액세스가 필요합니다. -선택한 데이터베이스를 수퍼유저(또는 충분한 권한이 있는 다른 사용자)와 연결합니다. 예를 들어 선택한 데이터베이스가 `postgres`면 다음을 실행하여 [psql][7]을 사용하는 `postgres` 사용자로 연결합니다. +Postgres가 복제 구성인 경우 클러스터의 **기본** 데이터베이스 서버(쓰기 노드)에서 다음 SQL 명령을 실행하세요. Agent는 어느 데이터베이스에 연결하든 서버 내 모든 데이터베이스의 텔레메트리를 수집할 수 있습니다. 특정 데이터베이스에만 존재하는 데이터를 대상으로 [사용자 지정 쿼리 실행][6]이 필요한 경우가 아니라면 기본 `postgres` 데이터베이스를 사용하세요. + +슈퍼유저(또는 충분한 권한이 있는 다른 사용자)로 선택한 데이터베이스에 연결합니다. 예를 들어 [psql][7]을 사용하여 `postgres` 데이터베이스에 연결하려면 다음을 실행합니다. ```bash psql -h mydb.example.com -d postgres -U postgres ``` -`datadog` 사용자 생성: +`datadog` 사용자를 생성합니다. ```SQL CREATE USER datadog WITH password ''; @@ -77,7 +90,7 @@ CREATE USER datadog WITH password ''; ALTER ROLE datadog INHERIT; ``` -**모든 데이터베이스에** 다음 스키마를 생성합니다. +다음 스키마를 **모든 데이터베이스에** 생성합니다. ```SQL CREATE SCHEMA datadog; @@ -91,7 +104,7 @@ CREATE EXTENSION IF NOT EXISTS pg_stat_statements; {{% tab "Postgres ≥ 10" %}} -**모든 데이터베이스에** 다음 스키마를 생성합니다. +다음 스키마를 **모든 데이터베이스에** 생성합니다. ```SQL CREATE SCHEMA datadog; @@ -104,7 +117,7 @@ CREATE EXTENSION IF NOT EXISTS pg_stat_statements; {{% /tab %}} {{% tab "Postgres 9.6" %}} -**모든 데이터베이스에** 다음 스키마를 생성합니다. +다음 스키마를 **모든 데이터베이스에** 생성합니다. ```SQL CREATE SCHEMA datadog; @@ -114,7 +127,7 @@ GRANT SELECT ON pg_stat_database TO datadog; CREATE EXTENSION IF NOT EXISTS pg_stat_statements; ``` -Agent가 `pg_stat_activity` 및 `pg_stat_statements`의 전체 내용을 읽을 수 있도록 **모든 데이터베이스에** 함수를 만듭니다. +Agent가 `pg_stat_activity` 및 `pg_stat_statements`의 전체 내용을 읽을 수 있도록 다음 함수를 **모든 데이터베이스에** 생성합니다. ```SQL CREATE OR REPLACE FUNCTION datadog.pg_stat_activity() RETURNS SETOF pg_stat_activity AS @@ -130,9 +143,11 @@ SECURITY DEFINER; {{% /tab %}} {{< /tabs >}} -
    추가 테이블을 쿼리해야 하는 데이터 수집 또는 커스텀 메트릭의 경우 해당 테이블에 대한 SELECT 권한을 datadog 사용자에게 부여해야 할 수도 있습니다. 예: <TABLE_NAME>에서 SELECT 권한을 Datadog에 부여합니다. 자세한 내용은 PostgreSQL 커스텀 메트릭 수집을 참조하세요.
    +
    데이터 수집 또는 추가 테이블 쿼리가 필요한 사용자 지정 메트릭의 경우, 해당 테이블에 대한 권한을 SELECT 사용자에게 부여해야 할 수 datadog 있습니다. 예시: grant SELECT on <TABLE_NAME> to datadog;자세한 내용은 PostgreSQL 사용자 지정 메트릭 수집을 참조하세요.
    + +### Explain Plan 함수 생성 {#create-the-explain-plan-function} -에이전트가 실행 계획을 수집하려면 **모든 데이터베이스**에 함수를 생성해야 합니다. +Agent가 Explain Plan을 수집할 수 있도록 다음 함수를 **모든 데이터베이스에** 생성합니다. ```SQL CREATE OR REPLACE FUNCTION datadog.explain_statement( @@ -146,6 +161,8 @@ curs REFCURSOR; plan JSON; BEGIN + SET TRANSACTION READ ONLY; + OPEN curs FOR EXECUTE pg_catalog.concat('EXPLAIN (FORMAT JSON) ', l_query); FETCH curs INTO plan; CLOSE curs; @@ -157,12 +174,12 @@ RETURNS NULL ON NULL INPUT SECURITY DEFINER; ``` -### 비밀번호를 안전하게 저장하기 +### 비밀번호 안전하게 저장 {#securely-store-your-password} {{% dbm-secret %}} -### 확인 +### 데이터베이스 권한 확인 {#verify-database-permissions} -권한이 정확한지 확인하려면 다음 명령을 실행해 에이전트 사용자가 데이터베이스에 연결하고 코어 테이블을 읽을 수 있는지 확인합니다. +권한이 올바르게 설정되었는지 확인하려면 다음 명령을 실행하여 Agent 사용자가 데이터베이스에 연결하고 코어 테이블을 읽을 수 있는지 확인하세요. {{< tabs >}} {{% tab "Postgres ≥ 10" %}} @@ -181,6 +198,7 @@ psql -h localhost -U datadog postgres -A \ && echo -e "\e[0;32mPostgres pg_stat_statements read OK\e[0m" \ || echo -e "\e[0;31mCannot read from pg_stat_statements\e[0m" ``` + {{% /tab %}} {{% tab "Postgres 9.6" %}} @@ -190,11 +208,11 @@ psql -h localhost -U datadog postgres -A \ && echo -e "\e[0;32mPostgres connection - OK\e[0m" \ || echo -e "\e[0;31mCannot connect to Postgres\e[0m" psql -h localhost -U datadog postgres -A \ - -c "select * from pg_stat_activity limit 1;" \ + -c "select * from datadog.pg_stat_activity() limit 1;" \ && echo -e "\e[0;32mPostgres pg_stat_activity read OK\e[0m" \ || echo -e "\e[0;31mCannot read from pg_stat_activity\e[0m" psql -h localhost -U datadog postgres -A \ - -c "select * from pg_stat_statements limit 1;" \ + -c "select * from datadog.pg_stat_statements() limit 1;" \ && echo -e "\e[0;32mPostgres pg_stat_statements read OK\e[0m" \ || echo -e "\e[0;31mCannot read from pg_stat_statements\e[0m" ``` @@ -202,73 +220,49 @@ psql -h localhost -U datadog postgres -A \ {{% /tab %}} {{< /tabs >}} -암호 입력 메시지가 나타나면 `datadog` 사용자를 생성할 때 입력한 암호를 사용합니다. - -## 에이전트 설치 +비밀번호 입력을 요청하면 `datadog` 사용자를 생성할 때 입력한 비밀번호를 사용하세요. -Datadog 에이전트를 설치하면 Postgres용 데이터베이스 모니터링에 필요한 Postgres 검사도 설치됩니다. Postgres 데이터베이스 호스트에 아직 에이전트를 설치하지 않았다면 [에이전트 설치 지침][8]을 참고하세요. +## Agent 설치 {#install-the-agent} -1. 에이전트의 `conf.d/postgres.d/conf.yaml` 파일을 편집해 `host`/`port`를 가리키도록 하고, 모니터링할 호스트를 설정합니다. 사용할 수 있는 모든 설정 옵션을 보려면 [postgres.d/conf.yaml 샘플][9]을 참고하세요. +Datadog Agent를 설치하면 Postgres용 Database Monitoring에 필요한 Postgres 검사도 함께 설치됩니다. +아직 Agent를 설치하지 않았다면 [Agent 설치 지침][8]을 참조하세요. 그런 다음, 사용 중인 설치 방식에 맞는 지침을 계속 따르세요. -{{< tabs >}} -{{% tab "Postgres ≥ 10" %}} +Agent의 `conf.d/postgres.d/conf.yaml` 파일을 수정하여 모니터링할 Postgres 인스턴스를 지정하세요. 구성 옵션의 전체 목록은 [샘플 postgres.d/conf.yaml][9]을 참조하세요. - ```yaml - init_config: - instances: - - dbm: true - host: localhost - port: 5432 - username: datadog - password: 'ENC[datadog_user_database_password]' - ## Optional: Connect to a different database if needed for `custom_queries` - # dbname: '' - ``` - -{{% /tab %}} -{{% tab "Postgres 9.6" %}} - - ```yaml - init_config: - instances: - - dbm: true - host: localhost - port: 5432 - username: datadog - password: 'ENC[datadog_user_database_password]' - pg_stat_statements_view: datadog.pg_stat_statements() - pg_stat_activity_view: datadog.pg_stat_activity() - ## Optional: Connect to a different database if needed for `custom_queries` - # dbname: '' - ``` +```yaml +init_config: +instances: + - dbm: true + host: localhost + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' -{{% /tab %}} -{{< /tabs >}} + ## Optional: Connect to a different database if needed for `custom_queries` + # dbname: '' +``` -**참고**: 특수 문자가 있는 경우 비밀번호를 작은 따옴표로 묶어 입력하세요. +**참고**: 비밀번호에 특수 문자가 포함된 경우, 작은 따옴표로 묶어 입력하세요. -2. [에이전트를 다시 시작합니다][10]. +변경 사항을 적용하려면 [Agent를 재시작][10]하세요. -### 로그 수집(선택 사항) +### 로그 수집(선택 사항) {#collecting-logs-optional} -PostgreSQL 로깅 기본값은 `stderr`이며, 로그에 상세 정보를 포함하지 않습니다. 파일에 로그줄 접두사로 지정한 추가 상세 정보를 로깅하는 것이 좋습니다. 더 자세한 정보를 보려면 PostgreSQL [설명서][1]에서 해당 토픽을 참고하세요. +PostgreSQL 로깅 기본값은 `stderr`이며, 로그에 상세 정보를 포함하지 않습니다. 파일에 로그줄 접두사로 지정한 추가 상세 정보를 로깅하세요. 자세한 내용은 PostgreSQL [설명서][11]를 참조하세요. -1. `/etc/postgresql//main/postgresql.conf` 파일에서 로깅을 설정합니다. 문 출력과 같은 정기적인 로그 결과를 보려면 로그 섹션에서 다음 파라미터의 주석 처리를 제거합니다. +1. `/etc/postgresql//main/postgresql.conf` 파일에서 로깅을 구성합니다. 문 출력과 같은 정기적인 로그 결과를 수집하려면 로그 섹션에 다음 파라미터를 설정하세요. ```conf logging_collector = on - log_directory = 'pg_log' # directory where log files are written, - # can be absolute or relative to PGDATA - log_filename = 'pg.log' # log file name, can include pattern - log_statement = 'all' # log all queries - #log_duration = on - log_line_prefix= '%m [%p] %d %a %u %h %c ' + log_line_prefix = '%m [%p] %d %a %u %h %c ' # this pattern is required to correlate metrics in the Datadog product log_file_mode = 0644 + ## For Windows #log_destination = 'eventlog' ``` -2. 더 자세한 기간 메트릭을 수집하여 Datadog 인터페이스에서 이를 검색할 수 있도록 하려면 문 자체와 함께 설정해야 합니다. 아래 권고 설정을 위와 비교하면 `log_statement`와 `log_duration` 옵션에서 주석 처리가 제거되었음을 알 수 있습니다. 이와 관련한 논의 내용을 보려면 [여기][12]를 참고하세요. +2. 자세한 기간 메트릭을 수집하여 Datadog 인터페이스에서 이를 검색할 수 있도록 하려면 문 자체와 함께 메트릭을 구성해야 합니다. 아래 권장 구성은 모든 문과 그 기간을 로깅합니다. 출력을 특정 기간 이상의 문으로 줄이려면, `log_min_duration_statement`를 원하는 최소 기간(밀리초)으로 설정합니다. 전체 SQL 문을 로깅하는 것이 조직의 개인정보 보호 요구 사항을 준수하는지 확인하세요. + + **참고**: `log_statement`와 `log_duration` 옵션은 모두 주석 처리되어 있습니다. 이 주제에 대한 논의는 [여기][12]에서 확인하세요. - 이 설정에서는 모든 문의 로그를 기록합니다. 특정 시간이 걸린 문만 로그하도록 출력을 줄이려면 `log_min_duration_statement` 값을 원하는 최소 밀리초로 설정합니다(전체 SQL 문을 로깅해도 되는지 조직 프라이버시 요구 조건을 확인하세요). ```conf log_min_duration_statement = 0 # -1 is disabled, 0 logs all statements # and their durations, > 0 logs only @@ -277,11 +271,11 @@ PostgreSQL 로깅 기본값은 `stderr`이며, 로그에 상세 정보를 포함 #log_statement = 'all' #log_duration = on ``` -3. 로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. `datadog.yaml` 파일에서 활성화합니다. +3. Datadog Agent에서는 로그 수집이 기본적으로 비활성화되어 있습니다. `datadog.yaml` 파일에서 활성화합니다. ```yaml logs_enabled: true ``` -4. `conf.d/postgres.d/conf.yaml` 파일에서 다음 설정 블록을 추가 및 편집해 PostgreSQL 로그를 수집합니다. +4. `conf.d/postgres.d/conf.yaml` 파일에서 다음 구성 블록을 추가 및 편집해 PostgreSQL 로그 수집을 시작합니다. ```yaml logs: - type: file @@ -294,26 +288,60 @@ PostgreSQL 로깅 기본값은 `stderr`이며, 로그에 상세 정보를 포함 # pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01]) # name: new_log_start_with_date ``` - `service`와 `path` 파라미터 값을 내 환경에 맞게 변경하세요. 사용할 수 있는 설정 옵션을 모두 보려면 [Postgres.d/conf.yaml 샘플][9]을 참고하세요. -5. [에이전트를 다시 시작합니다][10]. + 환경에 맞게 `service` 및 `path` 파라미터 값을 변경합니다. 사용 가능한 모든 구성 옵션은 [샘플 postgres.d/conf.yaml][9]을 참조하세요. +5. [Agent를 재시작][10]합니다. + +### `auto_explain`을 사용한 계획 수집(선택 사항){#collecting-plans-with-auto-explain-optional} + +기본적으로 Agent는 실행 중인 쿼리의 일부 샘플에 대해서만 [`EXPLAIN`][17] 계획을 수집합니다. 이 계획들은 일반적인 수준의 정보만 제공하며, 특히 애플리케이션 코드에서 준비된 문을 사용할 때 더욱 그렇습니다. + +모든 쿼리에서 가져온 전체 `EXPLAIN ANALYZE` 계획을 수집하려면 주요 제공업체에서 제공되는 PostgreSQL에 번들로 포함된 자사 확장 기능인 [`auto_explain`][18]을 사용해야 합니다. _`auto_explain` 수집_을 사용하려면 먼저 로그 수집을 활성화해야 합니다. + +
    + 중요: auto_explain 은 난독화되지 않은 SQL에 나타나는 원시 값과 마찬가지로 애플리케이션의 민감한 정보를 포함할 수 있는 로그줄을 생성합니다. dbm_parameterized_queries_read 권한을 사용하여 결과 실행 계획을 볼 수 있는 사용자를 제한할 수 있지만, 로그줄 자체는 Datadog 조직 내의 모든 사용자에게 표시됩니다. 로그용 RBAC를 사용하면 이러한 로그가 적절한 사용자에게만 표시되도록 보장할 수 있습니다. +
    + +로그 수집을 활성화한 후: + +1. `auto_explain`을 `postgresql.conf`의 `shared_preload_libraries` 목록에 추가합니다. 예를 들어, `shared_preload_libraries`가 `pg_stat_statements`로 설정되어 있다면, `pg_stat_statements,auto_explain`로 변경합니다. + +2. `log_line_prefix`를 변경하여 더 풍부한 이벤트 상관관계를 활성화합니다. 이 패턴은 auto_explain 계획을 수집하는 데 필요합니다. + ```conf + log_line_prefix = '%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a:' + ``` -### 검증 +3. `auto_explain` 구성을 구성합니다. 로그 형식은 _반드시_ `json`여야 하지만, 다른 설정은 애플리케이션에 따라 달라질 수 있습니다. 아래 예시는 버퍼 정보는 포함하지만 (오버헤드가 있을 수 있는) 타이밍은 생략하는 조건으로 1초 이상 걸리는 모든 쿼리에 대한 `EXPLAIN ANALYZE` 계획을 기록합니다. -[에이전트 상태 하위 명령을 실행][13]하고 Checks 섹션 아래에서 `postgres`를 찾으세요. 또는 [데이터베이스][14] 페이지에서 시작할 수도 있습니다. + ```conf + auto_explain.log_format: "json" + auto_explain.log_min_duration: "1000" + auto_explain.log_analyze: "on" + auto_explain.log_buffers: "on" + auto_explain.log_timing: "off" + auto_explain.log_triggers: "on" + auto_explain.log_verbose: "on" + auto_explain.log_nested_statements: "on" + auto_explain.sample_rate: "1" + ``` + +4. [Agent를 재시작][10]합니다. + +### Agent 설정 확인 {#verify-agent-setup} -## 에이전트 설정 예시 +[Agent의 상태 하위 명령을 실행][13]하고 검사 섹션에서 `postgres`를 찾습니다. 또는 [데이터베이스][14] 페이지를 방문하여 시작할 수 있습니다. + +## Agent 구성 예시 {#example-agent-configurations} {{% dbm-postgres-agent-config-examples %}} -## 트러블슈팅 +## 문제 해결 {#troubleshooting} -설명에 따라 통합과 에이전트를 설치하고 설정했는데 제대로 작동하지 않는 경우 [트러블슈팅][15]을 참고하세요. +설명한 대로 통합 및 Agent를 설치하고 구성했음에도 예상대로 작동하지 않는 경우 [문제 해결][15]을 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} - -[1]: https://www.postgresql.org/docs/12/contrib.html +[1]: https://www.postgresql.org/docs/current/contrib.html [2]: /ko/database_monitoring/agent_integration_overhead/?tab=postgres [3]: /ko/database_monitoring/data_collected/#sensitive-information [4]: https://www.postgresql.org/docs/current/config-setting.html @@ -327,4 +355,6 @@ PostgreSQL 로깅 기본값은 `stderr`이며, 로그에 상세 정보를 포함 [12]: https://www.postgresql.org/message-id/20100210180532.GA20138@depesz.com [13]: /ko/agent/configuration/agent-commands/#agent-status-and-information [14]: https://app.datadoghq.com/databases -[15]: /ko/database_monitoring/troubleshooting/?tab=postgres \ No newline at end of file +[15]: /ko/database_monitoring/troubleshooting/?tab=postgres +[17]: https://www.postgresql.org/docs/current/sql-explain.html +[18]: https://www.postgresql.org/docs/current/auto-explain.html \ No newline at end of file diff --git a/content/ko/dora_metrics/setup/_index.md b/content/ko/dora_metrics/setup/_index.md index e791d29cda9..9d49159d0c7 100644 --- a/content/ko/dora_metrics/setup/_index.md +++ b/content/ko/dora_metrics/setup/_index.md @@ -1,49 +1,583 @@ --- aliases: - /ko/continuous_integration/dora_metrics/setup/ +- /ko/continuous_integration/dora_metrics/setup/deployments +- /ko/continuous_integration/dora_metrics/setup/incidents +- /ko/dora_metrics/setup/incidents +- /ko/dora_metrics/setup/deployments +- /ko/dora_metrics/setup/failures/ +- /ko/dora_metrics/deployments/apm +- /ko/dora_metrics/deployments/deployment_api +- /ko/dora_metrics/deployments +- /ko/dora_metrics/failures/incident_api +- /ko/dora_metrics/failures/pagerduty +- /ko/dora_metrics/failures/ +description: APM 배포 추적, API, CLI, 그리고 인시던트 관리를 포함한 DORA Metrics용 배포 및 실패 이벤트 데이터 소스를 + 구성합니다. further_reading: - link: /dora_metrics/ tag: 설명서 - text: DORA 메트릭에 대해 알아보기 -title: DORA 메트릭 설정 + text: DORA Metrics에 대해 알아보기 +- link: /dora_metrics/calculation + tag: 설명서 + text: DORA Metrics 계산 방식 알아보기 +- link: /dora_metrics/change-failure-detection + tag: 설명서 + text: 변경 실패 감지에 대해 알아보기 +- link: /tracing/software_catalog + tag: 설명서 + text: Software Catalog에 대해 알아보기 +- link: https://github.com/DataDog/datadog-ci + tag: 소스 코드 + text: datadog-ci CLI 도구에 대해 알아보기 +title: DORA Metrics 설정 --- +## 개요 {#overview} + +DORA Metrics는 배포 이벤트를 사용하여 소프트웨어 배포 성능을 추적하고 측정합니다. 이러한 이벤트는 배포 빈도, 변경 리드 타임, 변경 실패율 및 복구 시간의 네 가지 주요 DORA 메트릭을 산출하는 데 사용됩니다. + +DORA Metrics를 사용하려면 다음 단계를 따르세요. + +1. **[배포 데이터 소스 구성](#configure-a-deployment-data-source)**: APM 배포 추적 또는 DORA Metrics API/CLI를 통해 배포 이벤트를 Datadog에 전송하는 방법을 선택합니다. + +2. **[커밋 정보로 배포 이벤트 보강](#enrich-deployments-with-commit-information)**: 배포 이벤트에 Git 메타데이터(저장소 URL 및 커밋 SHA)를 추가하고 저장소를 Datadog와 동기화하여 변경 리드 타임을 계산할 수 있도록 합니다. + +3. **[변경 실패 감지 사용자 지정](#customize-change-failure-detection)**: DORA Metrics는 롤백(이전 버전 재배포)을 통해 실패한 배포를 자동으로 감지하며, Revert PR이나 Hotfix 라벨과 같은 일반적인 롤포워드 패턴에 대한 기본 규칙도 포함합니다. 팀의 특정 워크플로 및 수정 패턴에 맞게 이러한 규칙을 사용자 지정할 수 있습니다. + +4. **[(선택 사항) 인시던트 추적 설정](#optional-set-up-incidents-tracking)**: 인시던트 데이터를 통합하여 감지된 변경 실패와 프로덕션 인시던트를 연관시켜 배포가 서비스 상태에 미치는 영향을 완전하게 파악할 수 있습니다. + +구성이 완료되면 배포 이벤트가 팀, 서비스, 환경 및 [사용자 지정 태그](#custom-tags)로 필터링된 성능 데이터를 자동으로 [DORA Metrics 대시보드][1]에 채웁니다. + +### 제한 사항 {#limitations} + +- 데이터 소스 옵션(예: APM 배포 추적)을 처음 선택하면 DORA Metrics는 그 시점부터 데이터를 채우기 시작합니다. 소스 A에서 소스 B로 전환한 다음 다시 소스 A로 되돌아가더라도 소스 A의 과거 데이터는 처음 선택된 시점 이후의 데이터만 사용할 수 있습니다. +- 동일한 서비스의 배포는 동시에 발생할 수 없습니다. + +## 배포 데이터 소스 구성 {#configure-a-deployment-data-source} + +DORA Metrics는 다음 배포 이벤트를 위한 데이터 소스를 지원합니다. + +{{< tabs >}} +{{% tab "APM 배포 추적" %}} + +[APM 배포 추적][1]을 DORA Metrics의 배포를 위한 데이터 소스로 구성할 수 있습니다. + +### 요구 사항 {#requirements} + +- {{< ui >}}APM Deployment Tracking{{< /ui >}}이 [DORA 설정][2]에서 {{< ui >}}Deployments{{< /ui >}} 이벤트 데이터 소스로 활성화되어 있어야 합니다. +- 서비스가 Software Catalog에 [메타데이터][3]와 함께 정의되어 있어야 합니다. +- 서비스에 [unified service tagging][4]이 활성화되어 있어야 합니다. 배포는 `version` 태그를 사용하여 식별됩니다. + +APM에 의해 추적된 서비스 배포가 변경 리드 타임에 기여하도록 보장하는 방법에 대한 자세한 내용은 [커밋 정보로 배포 보강](#enrich-deployments-with-commit-information)을 참조하세요. + +[1]: /ko/tracing/services/deployment_tracking +[2]: https://app.datadoghq.com/ci/settings/dora +[3]: /ko/software_catalog/adding_metadata +[4]: /ko/getting_started/tagging/unified_service_tagging/?tab=kubernetes + +{{% /tab %}} +{{% tab "API 또는 CLI" %}} + +자체 배포 이벤트를 전송하려면 [DORA Metrics API][1] 또는 [`datadog-ci dora deployment`][2] 명령을 사용하세요. + +### 요구 사항 {#requirements-1} + +- [DORA 설정][3]에서 {{< ui >}}datadog-ci CLI / API{{< /ui >}}이 {{< ui >}}Deployments{{< /ui >}} 이벤트 데이터 소스로 활성화되어 있어야 합니다. +- 필수 속성은 다음과 같습니다. + - `started_at`: 배포가 시작된 시간입니다. + - `finished_at`: 배포가 완료된 시간입니다. + - `service`: 배포된 서비스입니다. 제공된 서비스가 [Software Catalog][4]에 등록되어 있고 메타데이터가 설정되어 있는 경우([메타데이터 추가][5] 참조), 서비스의 `team`이 자동으로 조회되어 모든 메트릭과 연결됩니다. + +배포 이벤트에 다음 속성을 선택적으로 추가할 수 있습니다. + +- `repository_url`: 서비스의 소스 코드 저장소입니다. 변경 리드 타임을 계산하는 데 필요합니다. +- `commit_sha`: 배포와 관련된 HEAD 커밋의 SHA입니다. 변경 리드 타임을 계산하는 데 필요합니다. +- `team`: 서비스에 대해 자동으로 검색된 것과 다른 `team`에 배포를 연결합니다. +- `env`: [DORA Metrics][6] 페이지에서 환경별로 DORA 메트릭을 필터링합니다. +- `id`: 배포를 식별합니다. 이 속성은 사용자가 생성한 속성입니다. 지정하지 않으면 엔드포인트는 Datadog가 생성한 UUID를 반환합니다. +- `version`: 배포 버전입니다. +- `custom_tags`: [DORA Metrics][6] 페이지에서 이벤트를 필터링하는 데 사용할 수 있는 `key:value` 형식의 태그입니다. + + +### API(cURL) 예제 {#api-curl-example} + +전체 사양 및 추가 코드 샘플은 [DORA Metrics API 참조 설명서][1]를 참조하세요. + +다음 예제에서는 URL의 ``를 {{< region-param key="dd_site" code="true" >}} 으로 바꾸고 `${DD_API_KEY}`를 [Datadog API 키][7]로 바꿉니다. + +```shell + curl -X POST "https://api./api/v2/dora/deployment" \ + -H "Accept: application/json" \ + -H "Content-Type: application/json" \ + -H "DD-API-KEY: ${DD_API_KEY}" \ + -d @- << EOF + { + "data": { + "attributes": { + "service": "shopist", + "started_at": 1693491974000000000, + "finished_at": 1693491984000000000, + "git": { + "commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", + "repository_url": "https://github.com/organization/example-repository" + }, + "env": "prod", + "team": "backend", + "version": "v1.12.07", + "custom_tags": ["department:engineering", "app_type:backend"] + } + } + } +EOF +``` + +### CLI 예제 {#cli-example} + +[`datadog-ci`][2] CLI 도구를 사용하면 Continuous Integration 환경에서 손쉽게 배포 이벤트를 전송할 수 있습니다. + +다음 예제에서는 `DD_SITE` 환경 변수를 {{< region-param key="dd_site" code="true" >}} 으로 설정하고 `DD_API_KEY` 환경 변수를 [Datadog API 키][7]로 설정합니다. + +```shell +export DD_SITE="" +export DD_API_KEY="" + +export deploy_start=`date +%s` +./your-deploy-script.sh +datadog-ci dora deployment --service shopist --env prod \ + --started-at $deploy_start --finished-at `date +%s` \ + --version v1.12.07 --custom-tags department:engineering \ + --custom-tags app_type:backend \ + --git-repository-url "https://github.com/organization/example-repository" \ + --git-commit-sha 66adc9350f2cc9b250b69abddab733dd55e1a588 +``` + +`--finished-at`을 지정하지 않으면 배포 종료 시간은 현재 시각으로 자동 설정됩니다. + +배포 CI 작업이 실제 배포되는 Git 리비전과 동일한 경우 `git-repository-url` 및 `git-commit-sha`은 생략할 수 있으며 CI 컨텍스트에서 자동으로 추론됩니다. + +`--skip-git` 옵션을 사용하면 저장소 URL과 커밋 SHA 전송을 비활성화할 수 있습니다. 이 옵션을 추가하면 변경 리드 타임 메트릭을 사용할 수 없게 됩니다. + +[1]: /ko/api/latest/dora-metrics/#send-a-deployment-event-for-dora-metrics +[2]: https://github.com/DataDog/datadog-ci?tab=readme-ov-file#how-to-install-the-cli +[3]: https://app.datadoghq.com/ci/settings/dora +[4]: /ko/tracing/software_catalog +[5]: /ko/tracing/software_catalog/adding_metadata +[6]: https://app.datadoghq.com/ci/dora +[7]: https://app.datadoghq.com/organization-settings/api-keys + +{{% /tab %}} +{{< /tabs >}} + +### 사용자 지정 태그 {#custom-tags} + +배포와 연결된 서비스가 [Software Catalog][2]에 등록되어 있고 메타데이터가 설정되어 있는 경우([메타데이터 추가][3] 참조), 서비스의 `languages` 및 모든 `tags`가 자동으로 조회되어 이벤트와 연결됩니다. + +## 커밋 정보로 배포 이벤트 보강 {#enrich-deployments-with-commit-information} + +변경 리드 타임 계산을 활성화하려면 배포에 대한 Git 정보를 구성하고 저장소 메타데이터를 Datadog와 동기화해야 합니다. 이를 통해 DORA Metrics는 커밋 생성부터 배포까지 걸린 시간을 추적할 수 있습니다. + +### 배포에 Git 정보 연결 {#attach-git-information-to-deployments} + +Datadog은 배포의 헤드 커밋에 대한 Git 정보(리포지토리 URL 및 커밋 SHA)에 접근할 수 있어야 합니다. 요구 사항은 사용하는 배포 데이터 소스에 따라 다릅니다. + +{{< tabs >}} +{{% tab "APM 배포 추적" %}} + +APM 배포 추적으로 식별되는 배포의 경우 애플리케이션 텔레메트리에 Git 정보 태그가 포함되어 있어야 합니다. + +- [APM에서][1]에서 Git 태깅을 활성화하거나 [소스 코드 통합 설명서][2]를 참조하세요. + +**참고**: APM으로 추적되는 배포의 경우 변경 리드 타임은 커밋 생성 시점부터 해당 커밋이 새 버전에서 처음 관찰되는 시점까지를 기준으로 계산됩니다. `Deploy Time` 메트릭은 사용할 수 없습니다. + +[1]: https://app.datadoghq.com/source-code/setup/apm +[2]: /ko/integrations/guide/source-code-integration/?tab=go#tag-your-telemetry-with-git-information + +{{% /tab %}} +{{% tab "API 또는 CLI" %}} + +DORA Metrics API 또는 `datadog-ci dora deployment` 명령으로 추적되는 배포의 경우 다음을 확인하세요. + +- 배포 이벤트 페이로드에 `repository_url` 및 `commit_sha` 속성이 포함되어 있어야 합니다. + +{{% /tab %}} +{{< /tabs >}} + +### 리포지토리 메타데이터를 Datadog와 동기화 {#synchronize-repository-metadata-to-datadog} + +Datadog은 현재 배포와 이전 배포 사이에 포함된 모든 커밋을 확인하기 위해 리포지토리 메타데이터(커밋, 파일 경로)에 접근할 수 있어야 합니다. Git 공급자에 따라 적절한 동기화 방법을 선택하세요. + +{{< tabs >}} +{{% tab "GitHub" %}} + +
    +GitHub의 pull_request 트리거에서 실행되는 워크플로는 현재 GitHub 통합에서 지원되지 않습니다. +현재 pull_request 트리거를 사용 중이면 대체 방법을 사용하세요. +
    + +[GitHub 통합][1]이 이미 설치되어 있지 않은 경우, [GitHub 통합 타일][2]에서 설치하세요. + +GitHub 애플리케이션을 구성할 때: +1. 최소한 {{< ui >}}Read{{< /ui >}} 리포지토리 권한에 대해 {{< ui >}}Contents{{< /ui >}} 및 {{< ui >}}Pull Requests{{< /ui >}} 권한을 선택하세요. +2. 최소한 {{< ui >}}Push{{< /ui >}}, {{< ui >}}PullRequest{{< /ui >}} 및 {{< ui >}}PullRequestReview{{< /ui >}} 이벤트를 구독하세요. + +설정이 유효한지 확인하려면 [GitHub 통합 타일][2]에서 GitHub 애플리케이션을 선택하고 {{< ui >}}Datadog Features{{< /ui >}} 표에 {{< ui >}}Pull Request Information{{< /ui >}}이 모든 요구 사항을 충족하는 것으로 표시되는지 확인하세요. + +[1]: /ko/integrations/github/ +[2]: https://app.datadoghq.com/integrations/github/ +{{% /tab %}} + +{{% tab "GitLab" %}} +[GitLab 소스 코드 통합][1]이 아직 설치되지 않은 경우 [GitLab 소스 코드 통합 타일][2]에 설치합니다. + +**참고**: 서비스 계정의 개인 액세스 토큰 범위는 최소 `read_api` 이상이어야 합니다. + +### GitLab 그룹 및 하위 그룹 처리 {#handling-gitlab-groups-and-subgroups} + +리포지토리가 [**GitLab 그룹 또는 하위 그룹**][3](예: +`https://gitlab.com/my-org/group(/subgroup)/repo`) 아래에 구성된 경우, +GitLab의 중첩 그룹 구조로 인해 자동 서비스 경로 감지가 올바르게 동작하지 않을 수 있습니다. + +DORA 메트릭이 서비스의 소스 코드 경로를 올바르게 처리할 수 있도록 +서비스 정의에서 다음 구성을 사용할 수 있습니다. + +```yaml +extensions: + datadoghq.com/dora-metrics: + source_patterns: + # All paths relative to the repository URL provided with the deployment + - ** + # or specific paths related to this service (for monorepos) + - src/apps/shopist/** + - src/libs/utils/** +``` + +[1]: /ko/integrations/gitlab-source-code/ +[2]: https://app.datadoghq.com/integrations/gitlab-source-code?subPath=configuration +[3]: https://docs.gitlab.com/user/group/ + +{{% /tab %}} + +{{% tab "Azure DevOps" %}} + +
    +2026년 3월 10일 이전에 통합이 설치된 경우 모든 DORA 메트릭이 올바르게 계산되도록 웹훅 설치 설정 스크립트를 다시 실행하세요. 오류가 발생하면 지원팀에 연락하기 전에 스크립트를 다시 실행하세요. +
    + +[Azure DevOps 소스 코드 통합][1]이 아직 설치되지 않은 경우 [Azure DevOps 소스 코드 통합 타일][2]에 설치합니다. + +통합 설정 방법: + +1. Datadog에서 [Azure DevOps 소스 코드 통합 타일][2]을 엽니다. + +2. {{< ui >}}Configuration{{< /ui >}} 탭을 선택하고 {{< ui >}}Connect Microsoft Entra App{{< /ui >}}을 클릭합니다. + +3. 설정 지침을 따릅니다. + +4. {{< ui >}}Add Organizations{{< /ui >}}를 클릭합니다. + +5. 리포지토리 설치 단계를 따르고 [**설정 스크립트를 실행**][3]합니다. 스크립트를 실행하지 않으면 풀 요청이 생성되기 이전에 이루어진 커밋이 해당 풀 요청과 연결되지 않습니다. + +6. 스크립트가 완료되면 타일에서 통합 상태를 확인합니다. 연결된 리포지토리와 프로젝트가 목록에 표시됩니다. + +[1]: https://docs.datadoghq.com/ko/integrations/azure-devops-source-code/#connect-microsoft-entra-app +[2]: https://app.datadoghq.com/integrations?search=azure%20devops&integrationId=azure-devops-source-code&subPath=configuration +[3]: https://github.com/DataDog/azdevops-sci-hooks + +{{% /tab %}} + +{{% tab "기타 Git 공급자" %}} + +[`datadog-ci git-metadata upload`][1] 명령을 사용하여 Git 리포지토리 메타데이터를 업로드할 수 있습니다. +이 명령이 실행되면 Datadog은 리포지토리 URL, 현재 브랜치의 커밋 SHA, 추적된 파일 경로 목록을 수신합니다. + +새 커밋마다 CI에서 이 명령을 실행하세요. 특정 커밋 SHA에 대해 배포가 실행되는 경우, 배포 이벤트가 전송되기 **전**에 해당 커밋에 대해 `datadog-ci git-metadata upload` 명령을 실행해야 합니다. + +
    +이 --no-gitsync 옵션을 datadog-ci git-metadata upload 명령에 제공하지 마세요. +해당 옵션이 포함되면, 커밋 정보가 Datadog로 전송되지 않으며 변경 리드 타임 메트릭이 계산되지 않습니다. +
    + +명령 출력에서 명령의 설정이 올바른지 확인할 수 있습니다. 올바른 출력 예시는 다음과 같습니다. + +``` +Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@github.com:organization/example-repository.git. +180 tracked file paths will be reported. +✅ Handled in 0.077 seconds. +``` + +[1]: https://github.com/DataDog/datadog-ci/tree/master/packages/base/src/commands/git-metadata +{{% /tab %}} +{{< /tabs >}} + +### 같은 리포지토리에서 여러 서비스를 처리하기 {#handling-multiple-services-in-the-same-repository} + +여러 서비스의 소스 코드가 같은 리포지토리에 존재하는 경우, 배포되는 특정 서비스에 영향을 미치는 커밋만 고려하여 변경 리드 타임이 계산되도록 추가 작업이 필요합니다. + +해당 서비스에 영향을 미치는 커밋만 측정되도록 필터링하려면, [서비스 정의][4]에서 소스 코드 글로브 파일 경로 패턴을 지정하세요. + +서비스 정의에 애플리케이션 폴더를 가리키는 **전체** GitHub 또는 GitLab URL이 포함되어 있으면, 단일 경로 패턴이 자동으로 사용됩니다. 링크 유형은 **repo**여야 하며, 링크 이름은 "Source" 또는 서비스의 이름(아래 예제의 `shopist`)이어야 합니다. + +**예제(스키마 버전 v2.2):** +{{< tabs >}} +{{% tab "GitHub" %}} + +```yaml +links: + - name: shopist + type: repo + provider: github + url: https://github.com/organization/example-repository/tree/main/src/apps/shopist +``` +{{% /tab %}} +{{% tab "GitLab" %}} + +```yaml +links: + - name: shopist + type: repo + provider: gitlab + url: https://gitlab.com/organization/example-repository/-/tree/main/src/apps/shopist?ref_type=heads +``` +{{% /tab %}} +{{% tab "Azure DevOps" %}} + +```yaml +links: + - name: shopist + type: repo + provider: azure + url: https://dev.azure.com/organization/project/_git/example-repository?path=/src/apps/shopist +``` +{{% /tab %}} +{{< /tabs >}} + +`shopist` 서비스에 대한 DORA Metrics는 `src/apps/shopist/**` 내 변경 사항이 포함된 Git 커밋만 고려합니다. 보다 세밀한 필터링 제어가 필요한 경우 `extensions[datadoghq.com/dora-metrics]`를 구성할 수 있습니다.**예제(스키마 버전 v2.2):** + +```yaml +extensions: + datadoghq.com/dora-metrics: + source_patterns: + - src/apps/shopist/** + - src/libs/utils/** +``` + +`shopist` 서비스에 대한 DORA Metrics는 `src/apps/shopist/**` 또는 `src/libs/utils/**` 내 변경 사항이 포함된 Git 커밋만 고려합니다. + +서비스에 대해 두 개의 메타데이터 항목이 정의된 경우, 커밋 필터링에는 `extensions[datadoghq.com/dora-metrics]`만 사용됩니다. + +## 변경 실패 감지 사용자 지정 {#customize-change-failure-detection} + +DORA Metrics는 변경 실패율과 실패한 배포 복구 시간을 계산하기 위해 실패한 배포를 자동으로 식별합니다. + +### 작동 방식 {#how-it-works} + +[변경 실패 감지][5]는 복구 배포를 식별하고 이를 복구하는 특정 배포와 연결하여 즉시 작동합니다. + +**자동 감지(구성 필요 없음)**: +- **롤백**: 이전에 배포된 버전이 다시 배포되면 자동으로 감지됩니다. + +**사용자 지정 규칙(사용자 지정 가능)**: +- **롤포워드**: Revert PR, Hotfix 라벨과 같은 일반적인 패턴에 맞는 기본 규칙을 통해 감지됩니다. 팀의 워크플로와 복구 패턴에 맞게 [DORA 설정][6]에서 이러한 규칙을 사용자 지정할 수 있습니다. + +감지 작동 방식과 규칙을 사용자 지정하는 방법에 대한 자세한 내용은 [변경 실패 감지 설명서][5]를 참조하세요. + +## (선택 사항) 인시던트 추적 설정 {#optional-set-up-incidents-tracking} + +인시던트 데이터를 통합하면 배포 활동이 서비스 상태에 미치는 영향을 종합적으로 파악할 수 있습니다. 자동으로 감지된 변경 실패와 함께 인시던트를 추적하면, 배포 성능과 실제 운영 영향 간의 상관관계를 파악하고 소프트웨어 배포가 서비스 안정성에 미치는 전체적인 영향을 이해할 수 있습니다. + +DORA Metrics는 인시던트 추적을 위한 다음 옵션을 지원합니다. + +{{< tabs >}} +{{% tab "Datadog 인시던트" %}} +DORA Metrics는 [Datadog 인시던트][1]를 통해 실패를 자동으로 식별하고 추적할 수 있습니다. 인시던트가 선언되면 DORA는 이를 사용하여 변경 실패율과 복구 시간을 측정합니다. + +**참고**: 복구 시간은 인시던트가 `active` 상태에 머문 전체 시간으로 측정됩니다. `active` → `stable` → `active` → `stable`와 같은 상태 전이가 발생한 경우, 모든 `active` 상태 기간이 포함됩니다. 복구 시간은 인시던트가 `stable` 또는 `resolved` 상태일 때만 표시됩니다. `resolved` 상태의 인시던트가 다시 활성화되면 해당 메트릭은 숨겨지며, 다시 `resolved` 상태가 되면 표시됩니다. + + +### 요구 사항 {#requirements-2} + +- {{< ui >}}Incidents{{< /ui >}}가 [DORA 설정][2]에서 {{< ui >}}Failures{{< /ui >}} 이벤트 데이터 소스로 활성화되어 있어야 합니다. + +레이블 없는 실패를 방지하기 위해 Datadog은 다음 속성을 인시던트에 추가할 것을 강력히 권장합니다. + - {{< ui >}}Teams{{< /ui >}} + - {{< ui >}}Services{{< /ui >}} + - {{< ui >}}Envs{{< /ui >}}: {{< ui >}}Envs{{< /ui >}} 속성이 없는 경우 [인시던트 설정][3]에서 추가할 수 있습니다. + +이 속성이 인시던트에 제공되면 실패 이벤트에 `Severity` 태그가 추가됩니다. + +**권장**: [인시던트 설정][3]에서 속성 필드 {{< ui >}}Prompted{{< /ui >}}를 {{< ui >}}At Resolution{{< /ui >}}으로 설정하면 인시던트 생성 시 해당 속성을 누락하는 일을 방지할 수 있습니다. + +### 과거 인시던트 포함 {#include-historical-incidents} + +[DORA 설정][2]에서 {{< ui >}}Backfill Data{{< /ui >}}를 선택하면 지난 2년간의 인시던트를 소급 적용하여 실패 이벤트를 생성할 수 있습니다. 데이터 보충은 완료까지 최대 1시간이 소요될 수 있습니다. + +[1]: /ko/incident_response/incident_management/ +[2]: https://app.datadoghq.com/ci/settings/dora +[3]: https://app.datadoghq.com/incidents/settings?section=property-fields + + +{{% /tab %}} +{{% tab "PagerDuty" %}} +[PagerDuty][1]는 IT 팀이 인시던트를 즉시 파악하고 대응할 수 있도록 지원하는 인시던트 관리 플랫폼으로, 운영 안정성과 복원력을 유지하는 데 도움을 줍니다. + +PagerDuty 계정을 DORA Metrics와 통합하려면 다음을 수행하세요. + +1. [DORA 설정][2]에서 {{< ui >}}PagerDuty{{< /ui >}}를 {{< ui >}}Failures{{< /ui >}} 이벤트 데이터 소스로 활성화합니다. + +1. PagerDuty에서 {{< ui >}}Integrations{{< /ui >}} > {{< ui >}}Developer Tools{{< /ui >}}으로 이동한 후 {{< ui >}}Generic Webhooks (v3){{< /ui >}}를 클릭합니다. + +1. {{< ui >}}+ New Webhook{{< /ui >}}을 클릭하고 다음 세부 정보를 입력합니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    변수설명
    웹훅 URL추가 https://webhook-intake.{{< region-param key="dd_site" >}}/api/v2/webhook/.
    범위 유형전송할 인시던트의 범위를 선택합니다. 특정 {{< ui >}}Service{{< /ui >}} 또는 {{< ui >}}Team{{< /ui >}}에 대해 또는 {{< ui >}}Account{{< /ui >}} 내의 모든 PagerDuty 서비스에 대해 인시던트를 전송할 수 있습니다. 환경 및 권한 수준에 따라 일부 범위 유형은 사용할 수 없을 수 있습니다.
    설명설명은 웹훅을 구분하는 데 도움이 됩니다. 예를 들어 다음과 같은 설명을 추가할 수 있습니다. Datadog DORA Metrics integration.
    이벤트 구독다음 이벤트를 선택하세요.
    -incident.acknowledged
    -incident.annotated
    -incident.custom_field_values.updated
    -incident.delegated
    -incident.escalated
    -incident.priority_updated
    -incident.reassigned
    -incident.reopened
    -incident.resolved
    -incident.triggered
    -incident.unacknowledged
    사용자 지정 헤더{{< ui >}}Add custom header{{< /ui >}}를 클릭하고, DD-API-KEY 을(를) 이름으로 입력하고, 값으로 Datadog API 키를 입력합니다.

    원할 경우, 웹훅에서 전송되는 모든 PagerDuty 인시던트에 환경을 추가하기 위해 이름을 dd_env (으)로 하여 원하는 환경 값으로 추가 사용자 지정 헤더를 생성할 수 있습니다.
    + +1. 웹훅을 저장하려면 {{< ui >}}Add Webhook{{< /ui >}}을 클릭합니다. + +DORA Metrics 제품에서 실패의 심각도는 PagerDuty의 [인시던트 우선순위][3]를 기준으로 결정됩니다. + +**참고:** 웹훅 생성 시 새로운 시크릿이 생성되며 모든 웹훅 페이로드에 서명하는 데 사용됩니다. 하지만 인증은 API 키를 사용하므로 해당 시크릿은 통합 동작에 필요하지 않습니다. + +### PagerDuty 서비스를 Datadog 서비스에 매핑 {#mapping-pagerduty-services-to-datadog-services} + +특정 [PagerDuty 서비스][4]에 대한 인시던트 이벤트를 수신하면 Datadog은 트리거된 [Datadog 모니터][5]와 [Software Catalog][6]를 기반으로 관련 Datadog 서비스와 팀을 찾으려고 시도합니다. + +매칭 알고리즘은 다음 단계로 동작합니다. + +1. PagerDuty 인시던트 이벤트가 [Datadog 모니터에서 트리거된 경우][5]: + - 모니터가 [다중 경고 모드][7]에 있는 경우, 인시던트 메트릭과 이벤트는 경고 그룹의 `env`, `service`, `team`와 함께 전송됩니다. + - 모니터에 `env`, `service` 또는 `team`에 대한 [태그][8]가 있는 경우: + - `env`: 모니터에 단일 `env` 태그가 있는 경우, 인시던트 메트릭과 이벤트는 환경과 함께 전송됩니다. + - `service`: 모니터에 하나 이상의 `service` 태그가 있는 경우, 인시던트 메트릭과 이벤트는 제공된 서비스와 함께 전송됩니다. + - `team`: 모니터에 단일 `team` 태그가 있는 경우, 인시던트 메트릭과 이벤트는 팀과 함께 전송됩니다. + +2. 인시던트의 서비스 URL이 Software Catalog의 모든 서비스에 대한 PagerDuty 서비스 URL과 일치하는 경우: + - 단일 Datadog 서비스가 일치하는 경우, 인시던트 메트릭과 이벤트는 해당 서비스 및 팀과 함께 전송됩니다. + - 여러 Datadog 서비스가 일치하는 경우, 인시던트 메트릭과 이벤트는 팀과 함께 전송됩니다. + + Datadog 서비스에 대한 PagerDuty 서비스 URL 설정에 대한 자세한 내용은 [Software Catalog와 통합 사용][9]을 참조하세요. + +3. 인시던트의 PagerDuty 서비스 이름이 Software Catalog의 서비스 이름과 일치하는 경우, 인시던트 메트릭과 이벤트는 해당 서비스 및 팀과 함께 전송됩니다. +4. 인시던트의 PagerDuty 팀 이름이 Software Catalog의 팀 이름과 일치하는 경우, 인시던트 메트릭과 이벤트는 해당 팀과 함께 전송됩니다. +5. 인시던트의 PagerDuty 서비스 이름이 Software Catalog의 팀 이름과 일치하는 경우, 인시던트 메트릭과 이벤트는 해당 팀과 함께 전송됩니다. +6. 지금까지 일치하는 항목이 없는 경우, 인시던트 메트릭과 이벤트는 인시던트에 제공된 PagerDuty 서비스 및 PagerDuty 팀과 함께 전송됩니다. + +
    +PagerDuty에서 모니터 알림이 아닌 수동 방식으로 인시던트를 해결한 경우, 인시던트 해결 이벤트에는 모니터 정보가 포함되지 않으므로 매칭 알고리즘의 첫 번째 단계는 건너뛰게 됩니다. +
    + +[1]: /ko/integrations/pagerduty/ +[2]: https://app.datadoghq.com/ci/settings/dora +[3]: https://support.pagerduty.com/main/docs/incident-priority +[4]: https://support.pagerduty.com/docs/services-and-integrations +[5]: /ko/integrations/pagerduty/#troubleshooting +[6]: /ko/software_catalog/ +[7]: /ko/monitors/configuration/#multi-alert +[8]: /ko/monitors/manage/#monitor-tags +[9]: /ko/software_catalog/integrations/#pagerduty-integration + + +{{% /tab %}} +{{% tab "API" %}} -
    DORA 메트릭은 공개 베타 버전입니다.
    +직접 실패 이벤트를 보내려면 [DORA Metrics API][1]를 사용하세요. 실패 이벤트는 변경 실패율 및 복구 시간을 계산하는 데 사용됩니다. -## 개요 +실패가 해결되었음을 표시하기 위해 실패 이벤트에 `finished_at` 속성을 포함하세요. 실패 시작 시점과 해결 시점 모두 이벤트를 전송할 수 있습니다. 실패 이벤트는 `env`, `service` 및 `started_at` 속성 조합으로 매칭됩니다. -4개의 DORA 메트릭은 각기 다른 데이터 소스를 지원하는 두 종류의 이벤트에 기반해 계산됩니다. +### 요구 사항 {#requirements-3} -[**배포 이벤트**][8]. -: 특정 환경에서 서비스에 대한 새 배포가 발생했음을 나타냅니다. 배포 이벤트는 배포 빈도, 변경 리드 타임 및 변경 실패율을 계산하는 데 사용됩니다. +- {{< ui >}}datadog-ci CLI / API{{< /ui >}}가 [DORA 설정][2]에서 {{< ui >}}Failures{{< /ui >}} 이벤트 데이터 소스로 활성화되어 있어야 합니다. +- 필수 속성은 다음과 같습니다. + - `services` 또는 `team`(최소 하나는 존재해야 함) + - `started_at` -[**인시던트 이벤트**][9]: -: 특정 환경에서 서비스에 대해 새로운 실패가 발생했음을 나타냅니다. 인시던트 이벤트는 변경 실패율과 복원 평균 시간을 계산하는 데 사용됩니다. +실패 이벤트에 다음 속성을 선택적으로 추가할 수 있습니다. +- `finished_at`: 해결된 실패에 사용.**.***복구 시간 계산에 필요*** +- `id`: 실패 식별에 사용. 이 속성은 사용자가 생성한 속성입니다. 지정하지 않으면 엔드포인트는 Datadog가 생성한 UUID를 반환합니다. +- `name` : 실패를 설명합니다. +- `severity` +- `env` : [{{< ui >}}DORA Metrics{{< /ui >}} 페이지][3]에서 환경별로 DORA 메트릭을 필터링합니다. +- `repository_url` +- `commit_sha` +- `version` +- `custom_tags`: `key:value` [{{< ui >}}DORA Metrics{{< /ui >}} 페이지][3]에서 이벤트를 필터링하는 데 사용할 수 있는 형식의 태그입니다. -## 데이터 소스 설정 +전체 사양 및 추가 코드 샘플은 [DORA Metrics API 참조 설명서][1]를 참조하세요. -### 배포 데이터 소스 선택 +### API(cURL) 예제 {#api-curl-example-1} -{{< whatsnext desc="DORA Metrics supports the following data sources for deployment events. See the respective documentation to set up the data source for your deployment events:" >}} - {{< nextlink href="/dora_metrics/setup/deployments?tab=apmdeploymenttracking" >}}APM Deployment Tracking{{< /nextlink >}} - {{< nextlink href="/dora_metrics/setup/deployments?tab=apiorcli" >}}Deployment Event API or datadog-ci CLI{{< /nextlink >}} -{{< /whatsnext >}} +다음 구성을 위해 ``를 {{< region-param key="dd_site" >}}으로 바꿉니다. -### 인시던트 데이터 소스 선택 +```shell +curl -X POST "https://api./api/v2/dora/failure" \ + -H "Accept: application/json" \ + -H "Content-Type: application/json" \ + -H "DD-API-KEY: ${DD_API_KEY}" \ + -d @- << EOF + { + "data": { + "attributes": { + "services": ["shopist"], + "team": "shopist-devs", + "started_at": 1693491974000000000, + "finished_at": 1693491984000000000, + "git": { + "commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", + "repository_url": "https://github.com/organization/example-repository" + }, + "env": "prod", + "name": "Web server is down failing all requests", + "severity": "High", + "version": "v1.12.07", + "custom_tags": ["department:engineering", "app_type:backend"] + } + } + } +EOF +``` -{{< whatsnext desc="DORA Metrics supports the following data sources for incident events. See the respective documentation to set up a data source for your incident events:" >}} - {{< nextlink href="/dora_metrics/setup/failures?tab=pagerduty" >}}PagerDuty{{< /nextlink >}} - {{< nextlink href="/dora_metrics/setup/failures?tab=api" >}}Incident Event API{{< /nextlink >}} -{{< /whatsnext >}} +[1]: /ko/api/latest/dora-metrics/#send-a-failure-event-for-dora-metrics +[2]: https://app.datadoghq.com/ci/settings/dora +[3]: https://app.datadoghq.com/ci/dora -## 한계 -- 데이터 소스 옵션(예: 애플리케이션 성능 모니터링(APM) 배포 추적 또는 PagerDuty)을 처음 선택하면 DORA 메트릭은 그 시점부터 데이터를 채우기 시작합니다. 소스 A를 소스 B로 전환했다가 다시 소스 A로 전환하는 경우, 소스 A의 기록 데이터는 처음 선택한 시점부터만 사용할 수 있습니다. -- 동일한 배포 또는 인시던트(서비스)가 동시에 발생할 수 없습니다. +{{% /tab %}} +{{< /tabs >}} -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[8]: /ko/dora_metrics/setup/deployments/ -[9]: /ko/dora_metrics/setup/failures/ \ No newline at end of file +[1]: https://app.datadoghq.com/ci/dora +[2]: /ko/tracing/software_catalog +[3]: /ko/tracing/software_catalog/adding_metadata +[4]: /ko/tracing/software_catalog/adding_metadata +[5]: /ko/dora_metrics/change_failure_detection/ +[6]: https://app.datadoghq.com/ci/settings/dora \ No newline at end of file diff --git a/content/ko/getting_started/integrations/aws.md b/content/ko/getting_started/integrations/aws.md index cc7916e3be7..5676df7c38f 100644 --- a/content/ko/getting_started/integrations/aws.md +++ b/content/ko/getting_started/integrations/aws.md @@ -1,220 +1,236 @@ --- +description: CloudFormation을 사용하여 Amazon Web Services 계정을 Datadog에 통합합니다. IAM 역할을 + 설정하고, 서비스 통합을 활성화하고, 로그 포워딩을 구성하세요. further_reading: - link: https://www.datadoghq.com/blog/aws-monitoring/ tag: 블로그 - text: AWS 모니터링의 주요 메트릭 + text: AWS 모니터링을 위한 핵심 메트릭 - link: https://www.datadoghq.com/blog/aws-1-click-integration/ tag: 블로그 text: AWS 원클릭 통합 소개 - link: https://www.datadoghq.com/blog/deploying-datadog-with-cloudformation/ tag: 블로그 - text: CloudFormation에서 Datadog 배포 및 구성 + text: CloudFormation으로 Datadog 배포 및 구성 - link: https://www.datadoghq.com/blog/monitoring-as-code-with-datadog-and-cloudformation/ tag: 블로그 text: Datadog 및 CloudFormation Registry를 통해 코드로 모니터링 구현 - link: https://www.datadoghq.com/blog/datadog-serverless-view/ tag: 블로그 - text: 서버리스 뷰에서 전체 서버리스 스택 모니터링 + text: Serverless 뷰에서 전체 Serverless 스택 모니터링 - link: https://www.datadoghq.com/blog/monitor-aws-fargate/ tag: 블로그 - text: Datadog로 AWS Fargate에서 ECS 애플리케이션 모니터링 + text: Datadog으로 AWS Fargate에서 ECS 애플리케이션 모니터링 - link: https://www.datadoghq.com/blog/amazon-ecs-anywhere-monitoring/ tag: 블로그 - text: Datadog로 Amazon ECS Anywhere 모니터링 + text: Datadog으로 Amazon ECS Anywhere 모니터링 - link: /integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/?tab=cloudformation tag: 설명서 - text: Amazon Data Firehose를 사용한 AWS CloudWatch 메트릭 스트림 + text: Amazon Data Firehose를 사용한 AWS CloudWatch Metric Streams - link: https://www.datadoghq.com/blog/monitor-aws-graviton3-with-datadog/ tag: 블로그 - text: Datadog을 사용해 Graviton3-powered EC2 인스턴스 모니터링 -title: AWS를 이용해 시작하기 + text: Datadog으로 Graviton3 기반 EC2 인스턴스 모니터링 +title: AWS로 시작 --- +## 개요 {#overview} + +본 가이드에서는 Datadog의 CloudFormation 템플릿을 사용해 Amazon Web Services(AWS) 계정을 Datadog에 통합하는 방법을 알아봅니다. 설정을 완료한 후에는 개별 AWS 서비스 통합을 활성화하고, EC2 인스턴스에 Datadog Agent를 설치하여 더욱 깊이 있는 시각화를 확보하며, 로그 포워딩을 구성할 수 있습니다. + +## 전제 조건 {#prerequisites} + +시작하기 전에 [AWS][7] 계정이 있는지 확인하시기 바랍니다. CloudFormation 템플릿은 IAM 역할과 관련 정책을 생성하여 Datadog의 AWS 계정이 귀하의 AWS 계정에 대한 API 호출을 수행하여 데이터를 수집하고 전송할 수 있도록 합니다. AWS 사용자가 템플릿을 실행하려면 다음 IAM 권한을 보유해야 합니다. + +{{% collapse-content title="필수 IAM 권한" level="h4" expanded=false id="iam-permissions" %}} +- cloudformation:CreateStack +- cloudformation:CreateUploadBucket +- cloudformation:DeleteStack +- cloudformation:DescribeStacks +- cloudformation:DescribeStackEvents +- cloudformation:GetStackPolicy +- cloudformation:GetTemplateSummary +- cloudformation:ListStacks +- cloudformation:ListStackResources +- ec2:DescribeSecurityGroups +- ec2:DescribeSubnets +- ec2:DescribeVpcs +- iam:AttachRolePolicy +- iam:CreatePolicy +- iam:CreateRole +- iam:DeleteRole +- iam:DeleteRolePolicy +- iam:DetachRolePolicy +- iam:GetRole +- iam:GetRolePolicy +- iam:PassRole +- iam:PutRolePolicy +- iam:TagRole +- iam:UpdateAssumeRolePolicy +- kms:Decrypt +- lambda:AddPermission +- lambda:CreateFunction +- lambda:DeleteFunction +- lambda:GetCodeSigningConfig +- lambda:GetFunction +- lambda:GetFunctionCodeSigningConfig +- lambda:GetLayerVersion +- lambda:InvokeFunction +- lambda:PutFunctionConcurrency +- lambda:RemovePermission +- lambda:TagResource +- logs:CreateLogGroup +- logs:DeleteLogGroup +- logs:DescribeLogGroups +- logs:PutRetentionPolicy +- oam:ListSinks +- oam:ListAttachedLinks +- s3:CreateBucket +- s3:DeleteBucket +- s3:DeleteBucketPolicy +- s3:GetEncryptionConfiguration +- s3:GetObject +- s3:GetObjectVersion +- s3:PutBucketPolicy +- s3:PutBucketPublicAccessBlock +- s3:PutEncryptionConfiguration +- s3:PutLifecycleConfiguration +- secretsmanager:CreateSecret +- secretsmanager:DeleteSecret +- secretsmanager:GetSecretValue +- secretsmanager:PutSecretValue +- serverlessrepo:CreateCloudFormationTemplate +{{% /collapse-content %}} -## 개요 - -이 가이드에서는 Datadog의 CloudFormation 템플릿을 사용해 Amazon Web Service(AWS) 계정을 Datadog과 통합하는 과정 개요를 설명합니다. - -간단하게 보면, 여기에는 Datadog의 AWS 계정이 데이터 수집이나 푸시를 위해 AWS 계정으로 API를 호출하도록 허용하는 IAM 역할 및 관련 정책 작성이 포함됩니다. 본 템플릿은 Datadog로 로그를 전송하기 위한 [Datadog Forwarder][1] Lambda 함수를 배포합니다. CloudFormation 템플릿을 사용하면 Datadog 계정으로 데이터를 전송할 때 필요한 모든 도구를 지원받을 수 있으며, Datadog는 최신 기능을 제공하기 위해 CloudFormation 템플릿을 유지 관리합니다. - -초기 연결이 설정된 후에는 AWS 환경과 관련된 개별 AWS 서비스 통합을 활성화할 수 있습니다. Datadog에서는 클릭 한 번으로 AWS 계정에 필요한 리소스를 공급하고 사용자가 사용하는 서비스에 대한 메트릭과 이벤트 쿼리를 시작할 수 있습니다. 사용 빈도가 높은 AWS 서비스에서 Datadog를 사용하면 기본 대시보드에서 즉시 데이터를 확인할 수 있고 사용자 지정할 수 있습니다. 이 가이드에서는 Amazon Linux EC2 인스턴스에 통합을 설정하고 Datadog 에이전트를 설치하는 방법을 설명하고 통합 기능을 개략적으로 설명합니다. 사용 가능한 하위 통합 목록은 [개별 AWS 서비스에 통합 사용](#Enable-integrations-for individual-aws-service) 섹션을 참고하세요. - -이 프로세스는 여러 AWS 계정에서 반복해 사용할 수 있습니다. 또는 [API][3], [AWS CLI][4]나 [Terraform][5]을 사용해 한 번에 여러 계정에서 구성할 수도 있습니다. 더 자세한 정보는 [Datadog-Amazon CloudFormation 가이드][6]에서 알아보세요. - -## 전제 조건 - -시작하기 전에 다음의 전제 조건을 충족하는지 확인하세요. - -1. [AWS][7] 계정. AWS 사용자가 다음의 IAM 권한을 허용해야 CloudFormation 템플릿을 실행할 수 있습니다. - - * cloudformation:CreateStack - * cloudformation:CreateUploadBucket - * cloudformation:DeleteStack - * cloudformation:DescribeStacks - * cloudformation:DescribeStackEvents - * cloudformation:GetStackPolicy - * cloudformation:GetTemplateSummary - * cloudformation:ListStacks - * cloudformation:ListStackResources - * ec2:DescribeSecurityGroups - * ec2:DescribeSubnets - * ec2:DescribeVpcs - * iam:AttachRolePolicy - * iam:CreatePolicy - * iam:CreateRole - * iam:DeleteRole - * iam:DeleteRolePolicy - * iam:DetachRolePolicy - * iam:GetRole - * iam:GetRolePolicy - * iam:PassRole - * iam:PutRolePolicy - * iam:TagRole - * iam:UpdateAssumeRolePolicy - * kms:Decrypt - * lambda:AddPermission - * lambda:CreateFunction - * lambda:DeleteFunction - * lambda:GetCodeSigningConfig - * lambda:GetFunction - * lambda:GetFunctionCodeSigningConfig - * lambda:GetLayerVersion - * lambda:InvokeFunction - * lambda:PutFunctionConcurrency - * lambda:RemovePermission - * lambda:TagResource - * logs:CreateLogGroup - * logs:DeleteLogGroup - * logs:DescribeLogGroups - * logs:PutRetentionPolicy - * oam:ListSinks - * oam:ListAttachedLinks - * s3:CreateBucket - * s3:DeleteBucket - * s3:DeleteBucketPolicy - * s3:GetEncryptionConfiguration - * s3:GetObject - * s3:GetObjectVersion - * s3:PutBucketPolicy - * s3:PutBucketPublicAccessBlock - * s3:PutEncryptionConfiguration - * s3:PutLifecycleConfiguration - * secretsmanager:CreateSecret - * secretsmanager:DeleteSecret - * secretsmanager:GetSecretValue - * secretsmanager:PutSecretValue - * serverlessrepo:CreateCloudFormationTemplate +## 설정 {#setup} -## 설정 +1. Datadog에서 [AWS 통합 구성 페이지][8]로 이동하여 {{< ui >}}Add AWS Account{{< /ui >}}를 클릭합니다. +1. {{< ui >}}Automatically using CloudFormation{{< /ui >}} 옵션에서 통합 설정을 구성합니다. + 1. 통합할 AWS 리전을 선택합니다. + 1. 귀하의 Datadog [API 키][9]를 추가합니다. + 1. 필요 시, [Datadog Forwarder Lambda][1]를 사용하여 로그 및 기타 데이터를 Datadog으로 보냅니다. + 1. 필요 시, [Cloud Security Misconfigurations][54]를 활성화하여 클라우드 환경, 호스트 및 컨테이너의 구성 오류 및 보안 위험을 스캔합니다. +1. {{< ui >}}Launch CloudFormation Template{{< /ui >}}을 클릭합니다. 이렇게 하면 AWS 콘솔이 열리고 CloudFormation 스택이 로드됩니다. 모든 파라미터는 이전 Datadog 양식에서 선택한 항목을 기반으로 하여 자동으로 채워지므로, 원하는 경우 외에는 수정할 필요가 없습니다. +**참고:** `DatadogAppKey` 파라미터를 사용하면 CloudFormation 스택이 Datadog에 대한 API 호출을 수행하여 이 AWS 계정의 Datadog 구성을 추가 및 편집할 수 있습니다. 키는 자동으로 생성되며, 귀하의 Datadog 계정에 연결됩니다. +1. AWS에서 필수 상자를 선택하고 {{< ui >}}Create stack{{< /ui >}}을 클릭합니다. 이렇게 하면 세 개의 중첩 스택과 함께 Datadog 스택을 생성하는 프로세스가 시작됩니다. 이 작업에는 몇 분이 소요될 수 있습니다. 진행하기 전에 스택이 성공적으로 생성되었는지 확인하시기 바랍니다. +1. 스택이 생성되면 Datadog의 AWS 통합 타일로 돌아가서 {{< ui >}}Ready!{{< /ui >}}를 클릭합니다. +1. 데이터 수집이 시작될 때까지 최대 10분 정도 기다린 후 기본 제공 [AWS 개요 대시보드][12]를 통해 AWS 서비스 및 인프라스트럭처에서 전송한 메트릭을 확인하세요. +{{< img src="getting_started/integrations/aws-dashboard.png" alt="Datadog 계정의 AWS 개요 대시보드. 왼쪽에는 AWS 로고와 'No matching entries found'를 보여주는 AWS 이벤트 그래프가 있습니다. 중앙에는 수치 데이터가 표시된 EBS 볼륨 관련 그래프와 일관된 데이터를 보여주는 히트맵이 있습니다. 오른쪽에는 수치 데이터가 표시된 ELB 관련 그래프와 세 소스에서의 급등락 데이터를 보여주는 시계열 그래프가 있습니다.">}} -2. Datadog에서 [AWS 통합 설정 페이지][8]로 이동하여 **Add AWS Account**를 클릭합니다. +여러 계정을 동시에 설정하려면 [API][3], [AWS CLI][4] 또는 [Terraform][5]을 사용하세요. 자세한 내용은 [Datadog-Amazon CloudFormation 가이드][6]를 참조하시기 바랍니다. -3. **Automatically using CloudFormation** 옵션에서 통합 설정을 설정합니다. - a. 통합할 AWS 영역을 선택합니다. - b. Datadog [API 키][9]를 추가합니다. - c. (선택 사항) [Datadog Forwarder Lambda][1]를 사용하여 로그 및 기타 데이터를 Datadog으로 보냅니다. - d. (선택 사항) [Cloud Security Management Misconfigurations][54]를 활성화하여 클라우드 환경, 호스트, 컨테이너에 구성 오류나 보안 위험이 없는지 스캔합니다. +**참고**: Datadog의 CloudFormation 템플릿은 정의된 리소스의 생성 및 삭제만 지원합니다. 스택 업데이트 적용에 관한 안내는 [스택 템플릿 업데이트][59]를 참조하시기 바랍니다. -5. **Launch CloudFormation Template**을 클릭합니다. 그러면 AWS 콘솔이 열리고 CloudFormation 스택이 로드됩니다. 이전 Datadog 양식에서 선택한 것을 기반으로 모든 파라미터가 입력되기 때문에 필요한 경우 외에 수정할 필요가 없습니다. -**참조:** `DatadogAppKey` 파라미터를 사용하면 CloudFormation 스택이 Datadog에 대한 API 호출을 수행하여 이 AWS 계정에 대한 Datadog 구성을 추가하고 편집할 수 있습니다. 키는 자동으로 생성하며, 사용자의 Datadog 계정과 연동됩니다. +### 설정 후 예상되는 사항 {#what-to-expect-after-setup} -6. AWS에서 필요한 상자를 선택하고 **Create stack**을 클릭합니다. 그러면 3개의 중첩된 스택과 함께 Datadog 스택에 대한 생성 프로세스가 시작됩니다. 이 작업에는 몇 분이 소요될 수 있습니다. 계속 진행하기 전에 스택이 성공적으로 생성되었는지 확인합니다. +통합이 성공적으로 구성된 후, 데이터는 다음 일정에 따라 Datadog에 표시됩니다. -7. 스택이 생성되면 Datadog의 AWS 통합 타일로 돌아가서 **Ready!**를 클릭합니다 +- **메트릭**: API 폴링을 통해 약 10분 이내에 나타나며, [CloudWatch Metric Streams][60]를 통하는 경우에는 2~3분 이내에 표시됩니다. 모든 서비스가 동일한 주기로 보고하지 않으므로, 처음 한 시간 동안 대시보드가 일부분만 채워지는 것은 정상입니다. +- **태그**: AWS 리소스 태그는 전파되는 데 별도의 시간이 소요될 수 있습니다. AWS에서 태그 변경 사항이 Datadog에 반영되는 데는 15분에서 수 시간까지 걸릴 수 있습니다. +- **리소스**: 설정 후에 다음 리소스 크롤링 주기 동안 발견됩니다. +- **로그**: 별도의 구성이 필요합니다. 설정 지침은 [로그 전송](#send-logs)을 참조하세요. -8. 데이터 수집이 시작될 때까지 최대 10분 정도 기다린 후 기본 제공되는 [AWS 개요 대시보드][12]를 통해 AWS 서비스 및 인프라스트럭처에서 전송한 메트릭을 확인하세요. -{{< img src="getting_started/integrations/aws-dashboard.png" alt="Datadog 계정의 AWS 개요 대시보드. 왼쪽에는 AWS 로고와 'No matching entries found'을 표시하는 AWS 이벤트 그래프가 있습니다. 중앙에는 수치 데이터가 표시된 EBS 볼륨 관련 그래프와 일관된 데이터를 보여주는 히트맵이 있습니다. 오른쪽에는 숫자 데이터를 표시하는 ELB 관련 그래프와 세 가지 소스의 스파이크 데이터를 표시하는 시계열 그래프가 있습니다.">}} +
    +Datadog은 통합이 활성화되기 전의 과거 메트릭 데이터를 다시 채우지 않습니다. 메트릭은 통합이 성공적으로 구성된 시점부터 유입되기 시작합니다. +
    -## 개별 AWS 서비스에 대한 통합 활성화 +## 구성 {#configuration} -이용 가능한 서브 통합의 전체 목록은 [Integrations 페이지][13]에서 확인할 수 있습니다. 대부분의 통합은 Datadog이 AWS 계정에서 들어오는 데이터를 인식할 때 기본적으로 설치됩니다. +### 개별 AWS 서비스의 통합 활성화 {#enable-integrations-for-individual-aws-services} -## 로그 전송 +사용 가능한 하위 통합의 전체 목록은 [통합 페이지][13]를 참조하세요. 이러한 통합 중 많은 부분은 Datadog이 AWS 계정에서 들어오는 데이터를 인식할 때 기본적으로 설치됩니다. -Datadog로 AWS 서비스 로그를 전송하는 방법은 두 가지가 있습니다. +[AWS 통합 페이지][8]의 {{< ui >}}Metric Collection{{< /ui >}} 탭을 사용하여 Datadog 통합이 메트릭을 수집하는 서비스를 구성하세요. -- [Amazon Data Firehose 대상][10]: Amazon Data Firehose 전송 스트림의 Datadog 대상을 사용하여 로그를 Datadog에 전달합니다. CloudWatch에서 매우 많은 양의 로그를 보낼 때 이 접근 방식을 사용하는 것이 좋습니다. -- [Forwarder Lambda 함수][11]: Datadog Forwarder Lambda 함수를 배포하면 S3 버킷 또는 클라우드와치(CloudWatch) 로그 그룹을 구독하고 Datadog로 로그를 전달합니다. Lambda 함수에서 로그를 통해 트레이스, 향상된 메트릭 또는 커스텀 메트릭을 비동기 전송하는 경우 **반드시** 이 방법을 사용해야 합니다. 또, Datadog에서는 S3나 Kinesis로 직접 데이터를 스트리밍할 수 없는 다른 리소스에서 로그를 전송할 때 이 접근법을 권장합니다. +### 리전 추가 {#add-regions} -가장 많이 사용되는 AWS 서비스에 대한 로그 흐름을 얻으려면 [AWS 서비스에 대한 로깅 활성화][14] 섹션을 읽어보세요. +[AWS 통합 페이지][8]의 {{< ui >}}General{{< /ui >}} 탭에서 Datadog이 메트릭, CloudWatch 이벤트 및 리소스를 수집하는 AWS 리전을 관리할 수 있습니다. -### 검증 +## 로그 전송 {#send-logs} -로그를 활성화한 후에는 S3의 다음 예와 같이 패싯 패널의 `source` 또는 `service` 패싯을 사용하여 [Logs Explorer][15]에서 로그를 찾으세요. -{{< img src="getting_started/integrations/logs-explorer.png" alt="Datadog 계정의 Logs Explorer 페이지. 왼쪽 이미지에는 소스 및 서비스 패싯이 표시되며 둘 다 's3'으로 확인됩니다. 오른쪽에는 일부 로그 항목이 목록 형식으로 표시됩니다.">}} +Datadog으로 AWS 서비스 로그를 전송하는 방법은 두 가지가 있습니다. -## Datadog 플랫폼에서 더 많은 것을 얻으세요 +- [Amazon Data Firehose 목적지][10]: 대용량의 CloudWatch 로그에 권장됩니다. +- [Forwarder Lambda 함수][11]: 트레이스, 향상된 메트릭 또는 Lambda 함수의 사용자 정의 메트릭에 필요합니다. 직접 Amazon Data Firehose로 스트리밍할 수 없는 다른 리소스나 S3의 로그에도 권장됩니다. -### EC2의 Datadog Agent로 더욱 깊이 있는 시각화 +AWS 서비스에 대한 로그 활성화 방법은 [여기][14]를 참조하세요. -기본적으로 Datadog AWS 통합은 AWS 제공 메트릭에 대한 CloudWatch API를 크롤링하지만 [Datadog Agent][16]를 사용하면 EC2 인스턴스에 대한 더 깊은 가시성을 얻을 수 있습니다. Agent는 메트릭과 이벤트를 보고하는 경량 데몬이며 로그 및 트레이스를 위해 구성할 수도 있습니다. Datadog 애플리케이션의 [Agent Installation][17] 섹션에서는 다양한 운영 체제에 Agent를 설치하기 위한 지침을 제공합니다. 많은 운영 체제(예: Amazon Linux)에는 Agent를 설치하기 위해 인스턴스 터미널에서 실행할 수 있는 원스텝 설치 명령이 있습니다. -{{< img src="getting_started/integrations/integrations-agent-installation.png" alt="Datadog의 'Integrations' 탭에 있는 'Agent' 섹션. 왼쪽에는 Datadog Agent에 지원되는 운영 체제 목록이 표시됩니다. 이 목록에서는 'Amazon Linux'가 강조 표시됩니다. 오른쪽에 'Use our easy one-step install'이 표시됩니다. Agent 설치 명령은 DD_API_KEY 섹션이 난독화된 상태로 이 아래에 표시됩니다.">}} +### 유효성 검사 {#validation} -Agent가 설치되면 [인프라스트럭처 목록][18] 내에 뼈 모양 아이콘이 그래픽으로 표시됩니다. -{{< img src="getting_started/integrations/infrastructure-list.png" alt="두 개의 호스트를 목록 형식으로 표시하는 인프라스트럭처 목록입니다. 두 호스트 모두 AWS 통합에 대한 AWS 아이콘을 표시하고 파란색 상자에 표시된 'aws'는 AWS 통합과 연결되어 있음을 나타냅니다. 한 호스트에는 'ntp' 및 'system'에 대한 뼈 모양 아이콘과 파란색 상자도 표시됩니다.">}} +로그를 활성화한 후, [Log Explorer][15]에서 `source` 또는 `service` 패싯을 사용하여 로그를 찾으세요. 다음은 S3의 예시입니다. +{{< img src="getting_started/integrations/logs-explorer.png" alt="Datadog 계정의 Log Explorer 페이지. 왼쪽 이미지에는 's3'에 체크 표시가 되어 있는 소스 및 서비스 패싯이 표시됩니다. 오른쪽에는 일부 로그 항목이 목록 형식으로 표시됩니다.">}} -위의 스크린샷은 [시스템][19] 및 [NTP][20] 점검에서 데이터를 보고하는 Datadog Agent와 함께 호스트를 보여줍니다. 시스템 점검은 CPU, 메모리, 파일 시스템 및 I/O에 대한 메트릭을 제공하여 호스트에 대한 추가적인 인사이트를 제공합니다. 환경 및 사용 사례에 맞게 추가 [통합][21]을 활성화하거나 [DogStatsD][22]를 사용하여 커스텀 메트릭을 Datadog에 직접 전송할 수 있습니다. +## Datadog 플랫폼에서 더 많은 것을 얻으세요 {#get-more-from-the-datadog-platform} -이 접근 방식의 이점에 대한 자세한 내용은 [클라우드 인스턴스에 Datadog Agent를 설치해야 하는 이유 FAQ][23]를 참조하세요. +### EC2의 Datadog Agent로 더욱 깊이 있는 시각화 {#deeper-visibility-with-the-datadog-agent-on-ec2} -### Amazon 컨테이너 서비스에서 Datadog Agent 사용 +기본적으로 Datadog AWS 통합은 AWS 제공 메트릭에 대한 CloudWatch API를 크롤링하지만 [Datadog Agent][16]를 사용하면 EC2 인스턴스에 대한 더욱 깊은 시각화를 확보할 수 있습니다. Agent는 메트릭과 이벤트를 보고하는 경량 데몬이며, 로그 및 트레이스를 위해 구성할 수도 있습니다. Datadog 애플리케이션의 [Agent 설치][17] 섹션에서는 다양한 운영 체제에 Agent를 설치하는 방법에 대한 지침을 안내합니다. 많은 운영 체제(예: Amazon Linux)에는 Agent를 설치하기 위해 인스턴스 터미널에서 실행할 수 있는 원스텝 설치 명령이 있습니다. +{{< img src="getting_started/integrations/integrations-agent-installation.png" alt="Datadog의 'Integrations' 탭에 있는 'Agent' 섹션. 왼쪽에는 Datadog Agent에 지원되는 운영 체제 목록이 표시됩니다. 이 목록에서는 'Amazon Linux'가 강조 표시됩니다. 오른쪽에는 'Use our easy one-step install'이 표시됩니다. Agent 설치 명령은 DD_API_KEY 섹션이 난독화된 상태로 아래에 표시됩니다.">}} -컨테이너화된 환경의 경우 인스턴스를 관리하든 서버리스 환경을 위해 [Fargate][24]를 활용하든 Datadog Agent를 사용할 수 있습니다. +Agent가 설치되면 [인프라스트럭처 목록][18]에서 뼈 모양 아이콘을 사용해 그래픽으로 표시됩니다. +{{< img src="getting_started/integrations/infrastructure-list.png" alt="두 호스트를 목록 형식으로 표시한 인프라스트럭처 목록. 두 호스트 모두 AWS 통합을 의미하는 AWS 아이콘이 표시되고, 파란색 상자의 'aws' 텍스트는 AWS 통합과 관련이 있음을 나타냅니다. 한 호스트에는 뼈 모양 아이콘과 'ntp' 및 'system'이 적힌 파란색 상자도 표시됩니다.">}} -#### EC2 시작 유형과 ECS +위의 스크린샷은 Datadog Agent가 [시스템][19] 및 [NTP][20] 검사를 통해 데이터를 보고하는 호스트를 보여줍니다. 시스템 검사에서는 CPU, 메모리, 파일 시스템 및 I/O에 대한 메트릭을 제공하여 호스트에 대한 추가 통찰력을 제공합니다. 환경 및 사용 사례에 맞게 추가 [통합][21]을 활성화하거나, [DogStatsD][22]를 사용하여 사용자 정의 메트릭을 Datadog으로 직접 전송할 수 있습니다. -[Amazon ECS 문서][25]를 사용하여 ECS 클러스터의 EC2 인스턴스에서 [Datadog Docker Agent][26]를 실행합니다. [Amazon ECS 데이터 수집 문서][27]를 검토하여 Datadog 계정에 보고된 메트릭과 이벤트를 확인합니다. +이 접근 방식의 이점에 대한 자세한 내용은 [클라우드 인스턴스에 Datadog Agent를 설치해야 하는 이유에 관한 FAQ][23]를 참조하세요. -#### Fargate 시작 유형과 ECS +### Amazon 컨테이너 서비스에서 Datadog Agent 사용 {#using-the-datadog-agent-with-amazon-container-services} -[AWS Fargate의 Amazon ECS 설명서][28]를 사용하여 애플리케이션과 동일한 작업 정의에서 Agent를 컨테이너로 실행하세요. **참고**: Fargate 통합을 최대한 활용하려면 Datadog Agent 버전 6.1.1 이상이 필요합니다. +컨테이너화된 환경의 경우, 인스턴스를 관리하든 서버리스 환경을 위해 [Fargate][24]를 사용하든 Datadog Agent를 사용할 수 있습니다. -#### Fargate 오케스트레이션 유형을 사용한 AWS Batch +#### EC2 시작 유형을 사용한 ECS {#ecs-with-ec2-launch-type} -[AWS Batch용 AWS Fargate의 Amazon ECS 설명서][58]를 사용하여 애플리케이션과 동일한 AWS Batch 작업 정의에서 Agent를 컨테이너로 실행합니다. **참고**: Fargate 통합을 최대한 활용하려면 Datadog Agent 버전 6.1.1 이상이 필요합니다. +[Amazon ECS 설명서][25]를 사용하여 ECS 클러스터의 EC2 인스턴스에서 [Datadog Docker Agent][26]를 실행합니다. [Amazon ECS 데이터 수집 설명서][27]를 검토하여 Datadog 계정에 보고된 메트릭 및 이벤트를 확인하세요. -#### EKS +#### Fargate 시작 유형을 사용한 ECS {#ecs-with-fargate-launch-type} -[Kubernetes 배포 문서][29]에 언급된 것처럼 Amazon Elastic Kubernetes Service(EKS)에 대한 특정 구성이 필요하지 않습니다. [전용 Kubernetes 문서][30]를 참고하여 EKS 클러스터에 Agent를 배포하세요. +[Amazon ECS on AWS Fargate 설명서][28]를 사용하여 애플리케이션과 동일한 작업 정의에 따라 Agent를 컨테이너로 실행합니다. **참고**: Fargate 통합의 모든 이점을 활용하려면 Datadog Agent 버전 6.1.1 이상이 필요합니다. -#### EKS와 Fargate +#### Fargate 오케스트레이션 유형을 사용한 AWS Batch {#aws-batch-with-fargate-orchestration-type} -Fargate 포드는 AWS에서 관리되기 때문에 CPU 및 메모리와 같은 호스트 기반 시스템 검사를 제외합니다. AWS Fargate 포드에서 데이터를 수집하려면 [AWS Fargate의 Amazon EKS 설명서][31]를 참고하여 커스텀 역할 기반 액세스 제어(RBAC)를 통해 Agent를 애플리케이션 포드의 사이드카로 실행하세요. **참고**: 이를 위해서는 Datadog Agent 버전 7.17 이상이 필요합니다. +[AWS Batch를 위한 Amazon ECS on AWS Fargate 설명서][58]를 사용하여 애플리케이션과 동일한 AWS Batch 작업 정의에 따라 Agent를 컨테이너로 실행합니다. **참고**: Fargate 통합의 모든 이점을 활용하려면 Datadog Agent 버전 6.1.1 이상이 필요합니다. -#### EKS Anywhere +#### EKS {#eks} -온프레미스 Kubernetes 클러스터에 대해서는 [EKS Anywhere 문서][32]를 사용하세요. +[Kubernetes 배포 설명서][29]에 언급된 대로 Amazon Elastic Kubernetes Service(EKS)에 대한 특별한 구성은 필요하지 않습니다. [전용 Kubernetes 설명서][30]를 사용하여 EKS 클러스터에 Agent를 배포하세요. -### 추가 Datadog 리소스 생성 -Datadog UI 또는 [API][33]를 사용하는 것 외에도 [CloudFormation Registry][35]를 사용하여 많은 [Datadog 리소스][34]를 생성할 수 있습니다. 가시성과 트러블슈팅을 위해 [대시보드][36]를 사용하여 주요 데이터를 표시하고, [함수][37]을 적용하며, [메트릭 상관 관계][38]를 확인하세요. +#### Fargate를 사용한 EKS {#eks-with-fargate} -계정에서 원치 않거나 예상치 못한 동작에 대한 알림을 받으려면 [모니터][39]를 만드세요. 모니터는 귀하의 계정에 보고된 데이터를 지속적으로 평가하고 [알림][40]을 보내 올바른 정보가 올바른 팀 구성원에게 전달되도록 합니다. 팀에 알리는 모든 방법은 [알림 통합 목록][41]에서 확인하세요. +Fargate 포드는 AWS에 의해 관리되므로, CPU 및 메모리와 같은 호스트 기반 시스템 검사는 제외됩니다. AWS Fargate 포드에서 데이터를 수집하려면 [Amazon EKS on AWS Fargate 문서][31]를 사용하여 애플리케이션 포드의 사이드카로 Agent를 실행하고, 사용자 정의 역할 기반 액세스 제어(RBAC)를 구성하세요. **참고**: Datadog Agent 버전 7.17 이상이 필요합니다. -## 관련 제품 살펴보기 +#### EKS Anywhere {#eks-anywhere} -### 서버리스 +온프레미스 Kubernetes 클러스터의 경우 [EKS Anywhere 설명서][32]를 사용하세요. -Datadog에서 서버리스 애플리케이션을 실행하는 AWS Lambda 함수의 메트릭, 트레이스 및 로그를 통합할 수 있습니다. 애플리케이션 계측, [서버리스 라이브러리 및 통합][43] 설치, [서버리스 애플리케이션을 통한 분산 추적][44] 또는 [서버리스 트러블슈팅][45] 구현에 대한 지침은 [서버리스][42]를 확인하세요. +### 추가 Datadog 리소스 생성 {#create-additional-datadog-resources} +Datadog UI 또는 [API][33]를 사용하는 것 외에도 [CloudFormation Registry][35]로 많은 [Datadog 리소스][34]를 생성할 수 있습니다. 가시성과 문제 해결을 위해 [대시보드][36]를 사용하여 주요 데이터를 표시하고, [함수][37]를 적용하며, [메트릭 상관관계][38]를 찾으세요. -### APM -애플리케이션과 AWS 서비스에서 더 깊이 파고들어 더 많은 데이터를 수집하려면 [AWS X-Ray][46] 통합 또는 [APM][47]을 사용하는 Datadog Agent가 있는 호스트에서 분산된 트레이스를 수집할 수 있습니다. 그런 다음 이 데이터를 사용하여 애플리케이션 성능에 대한 인사이트를 얻으려면 [APM 문서][48]를 확인하세요. +계정의 원치 않거나 예상치 못한 동작에 대한 알림을 받으려면 [모니터링][39]을 생성합니다. 모니터링은 계정에 보고된 데이터를 지속적으로 평가하고, 올바른 정보가 적절한 팀원에게 전달되도록 [알림][40]을 보냅니다. 팀에 알릴 수 있는 모든 방법에 대한 [알림 통합 목록][41]을 검토하시기 바랍니다. + +## 관련 제품 살펴보기 {#explore-related-products} + +### Serverless {#serverless} + +AWS Lambda 함수를 Datadog으로 모니터링하려면 [Serverless][42]를 참조하여 애플리케이션을 계측하고, [Serverless 라이브러리 및 통합][43]을 설치하며, [서버리스 애플리케이션을 통한 분삭 추적][44] 또는 [서버리스 문제 해결][45]에 관한 지침을 확인하세요. + +### APM {#apm} + +애플리케이션 및 AWS 서비스에서 분산 트레이스를 수집하려면 Datadog Agent와 [APM][47]을 사용하세요. AWS Lambda 함수의 경우 [Datadog Lambda Extension][44]을 사용하여 계측합니다. 애플리케이션 성능 데이터 분석에 대한 자세한 내용은 [APM 설명서][48]를 참조하세요. 또한 APM 성능 및 인프라스트럭처 메트릭에 대한 알고리즘 기능인 [Watchdog][49]을 사용하여 잠재적인 애플리케이션 문제를 자동으로 감지하고 알림을 받을 수 있습니다. -### 보안 +### 보안 {#security} -#### 클라우드 보안 정보와 이벤트 관리(SIEM) +#### Cloud SIEM {#cloud-siem} -[Cloud SIEM 시작하기][50]를 검토하여 기본 [로그 감지 규칙][51]과 비교하여 로그를 평가하세요. 이러한 규칙은 사용자 정의가 가능하며 위협이 감지되면 [보안 신호 탐색기][52]에서 액세스할 수 있는 보안 신호를 생성합니다. 올바른 팀에 알림이 전달되도록 하려면 [알림 규칙][53]을 사용하여 여러 규칙에 걸쳐 알림 기본 설정을 구성하세요. +[Cloud SIEM 시작][50]을 참조하여, 기본 제공 [로그 탐지 규칙][51]을 사용해 로그를 평가하세요. 이 규칙은 사용자 정의가 가능하며, 위협이 감지되면 [Security Signals Explorer][52]에서 접근할 수 있는 보안 신호를 생성합니다. [알림 규칙][53]을 사용하여 여러 규칙에 걸쳐 알림 기본 설정을 구성하세요. -#### 클라우드 보안 관리 잘못된 구성 +#### Cloud Security Misconfigurations {#cloud-security-misconfigurations} -클라우드 환경에서 잘못된 구성을 감지하고 평가하는 방법을 알아보려면 [CSM Misconfigurations 설정][54] 가이드를 사용하세요. 기본 [클라우드][55] 및 [인프라스트럭처][56] 컴플라이언스 규칙에 따라 리소스 구성 데이터를 평가하여 공격자 기술 및 잠재적인 구성 오류를 표시해 빠른 대응 및 교정이 가능합니다. +[Cloud Security Misconfigurations 설정][54] 가이드를 사용하여 클라우드 환경에서 구성 오류를 감지하고 평가하세요. 리소스 구성 데이터는 기본 제공 [클라우드][55] 및 [인프라스트럭처][56] 준수 규칙을 기준으로 평가되어 공격자 기법 및 잠재적 구성 오류를 표시합니다. -### 트러블슈팅 +### 문제 해결 {#troubleshooting} -`Datadog is not authorized to perform sts:AssumeRole` 오류가 발생하면 전용 [트러블슈팅 페이지][2]를 참조하세요. 기타 문제는 [AWS 통합 트러블슈팅 가이드][57]를 참조하세요. +`Datadog is not authorized to perform sts:AssumeRole` 오류가 발생하면 전용 [문제 해결 페이지][2]를 참조하시기 바랍니다. 기타 문제의 경우 [AWS 통합 문제 해결 가이드][57]를 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -222,7 +238,7 @@ Datadog에서 서버리스 애플리케이션을 실행하는 AWS Lambda 함수 [2]: /ko/integrations/guide/error-datadog-not-authorized-sts-assume-role/ [3]: /ko/api/latest/aws-integration/#create-an-aws-integration [4]: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html -[5]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws +[5]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws_account [6]: /ko/integrations/guide/amazon_cloudformation/ [7]: https://aws.amazon.com/getting-started/?nc1=f_cc [8]: https://app.datadoghq.com/integrations/amazon-web-services @@ -239,7 +255,7 @@ Datadog에서 서버리스 애플리케이션을 실행하는 AWS Lambda 함수 [19]: /ko/integrations/system/ [20]: /ko/integrations/ntp/ [21]: /ko/integrations/ -[22]: /ko/developers/dogstatsd/?tab=hostagent +[22]: /ko/extend/dogstatsd/?tab=hostagent [23]: /ko/agent/faq/why-should-i-install-the-agent-on-my-cloud-instances/ [24]: https://aws.amazon.com/fargate/ [25]: /ko/agent/amazon_ecs/?tab=awscli @@ -269,10 +285,12 @@ Datadog에서 서버리스 애플리케이션을 실행하는 AWS Lambda 함수 [49]: /ko/watchdog/ [50]: /ko/getting_started/cloud_siem/ [51]: /ko/security/default_rules/#cat-log-detection -[52]: /ko/security/cloud_siem/investigate_security_signals +[52]: /ko/security/cloud_siem/triage_and_investigate/investigate_security_signals [53]: /ko/security/notifications/rules/ [54]: /ko/security/cloud_security_management/setup/ [55]: /ko/security/default_rules/#cat-posture-management-cloud [56]: /ko/security/default_rules/#cat-posture-management-infra [57]: /ko/integrations/guide/aws-integration-troubleshooting/ -[58]: /ko/integrations/ecs_fargate/?tab=webui#installation-for-aws-batch \ No newline at end of file +[58]: /ko/integrations/ecs_fargate/?tab=webui#installation-for-aws-batch +[59]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html +[60]: /ko/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/ \ No newline at end of file diff --git a/content/ko/ide_plugins/vscode/_index.md b/content/ko/ide_plugins/vscode/_index.md new file mode 100644 index 00000000000..a47f4944ec1 --- /dev/null +++ b/content/ko/ide_plugins/vscode/_index.md @@ -0,0 +1,218 @@ +--- +aliases: +- /ko/developers/ide_integrations/vscode/ +- /ko/developers/ide_plugins/vscode/ +description: Datadog 텔레메트리와 인사이트를 VS Code 및 기타 코드 편집기의 소스 코드에 통합 +further_reading: +- link: /continuous_testing/ + tag: 설명서 + text: Continuous Testing에 대해 알아보기 +- link: /integrations/guide/source-code-integration/ + tag: 설명서 + text: 소스 코드 통합에 대해 알아보기 +- link: /bits_ai/mcp_server/ + tag: 설명서 + text: Datadog Model Context Protocol(MCP) Server에 대해 알아보기 +- link: https://www.datadoghq.com/blog/datadog-ide-plugins/ + tag: 블로그 + text: Datadog IDE 플러그인으로 문제 해결 중 컨텍스트 전환 줄이기 +- link: https://www.datadoghq.com/blog/exception-replay-datadog/ + tag: 블로그 + text: Datadog Exception Replay로 프로덕션 디버깅 간소화하기 +- link: https://www.datadoghq.com/blog/datadog-cursor-extension/ + tag: 블로그 + text: Datadog Cursor 확장으로 실시간 프로덕션 문제 디버그 +is_beta: true +title: VS Code 및 Cursor용 Datadog 확장 +--- + + +{{% site-region region="gov,gov2" %}} +
    + 선택한 Datadog 사이트에 대해 Visual Studio Code용 Datadog 확장이 지원되지 않습니다({{< region-param key="dd_site_name" >}}). +
    +{{% /site-region %}} + +## 개요 {#overview} + +VS Code 및 Cursor용 Datadog 확장은 코드 편집기에 Datadog을 통합하여 개발 속도를 높입니다. + +{{< img src="/ide_plugins/vscode/datadog-vscode-3.png" alt="VS Code 및 Cursor용 Datadog 확장" style="width:100%;" >}} + +이 확장에는 다음 기능이 포함됩니다. + +- [**Model Context Protocol(MCP) Server**](?tab=cursor#installation): 편집기의 AI 에이전트를 Datadog의 프로덕션 텔레메트리, 도구 및 컨텍스트에 연결합니다. + +- [**Logs**](#logs): 로그 볼륨을 측정하고 코드에서 로그를 검색합니다. + +- [**Code Insights**](#code-insights): 코드를 떠나지 않고도 런타임 오류, 취약점 및 불안정한 테스트에 대한 정보를 유지합니다. + +- [**View in IDE**](#view-in-ide): Datadog의 코드 참조에서 소스 파일로 직접 이동합니다. + +- [**Code Security**](#code-security): 커밋하기 전에 보안 문제를 감지하고 수정하며, 사용자 지정 규칙을 작성합니다. + +- [**Exception Replay**](#exception-replay): 프로덕션 코드를 디버깅합니다. + +- [**Live Debugger**](#live-debugger): 재배포 없이 실행 중인 서비스에 중단되지 않는 로그 포인트를 추가하여 런타임 데이터를 캡처합니다. + +- [**Fix in Chat**](?tab=cursor#fix-in-chat): AI 기반 제안 및 설명을 통해 코드 오류, 취약점 및 불안정한 테스트를 수정합니다. + +
    별도로 명시되지 않는 한, 모든 확장 기능은 VS Code 및 Cursor와 같은 VS Code 포크를 기반으로 한 다른 IDE에서 사용할 수 있습니다.
    + +## 요구 사항 {#requirements} + +- **Datadog 계정**: 대부분의 기능은 Datadog 계정이 필요합니다. + + - Datadog을 처음 사용하시나요? Datadog의 모니터링 및 보안 도구에 대해 [자세히 알아보고][3] 무료 체험에 가입하세요. + - 조직에서 `myorg.datadoghq.com`와 같은 [사용자 지정 하위 도메인][18]을 사용하는 경우, IDE의 `datadog.connection.oauth.setup.domain` 설정을 사용하여 이를 표시해야 합니다. + +- **Git**: IDE에서 Git이 활성화되어 있으면 확장 프로그램이 더 효과적으로 동작합니다. `git.enabled` 설정에서 Git 기능이 활성화되어 있는지 확인하세요. + +## 설치 {#installation} + +설치 단계는 다른 VS Code 기반 편집기에서 다를 수 있습니다. + +{{< tabs >}} +{{% tab "VS Code" %}} +IDE에서 직접 또는 웹에서 확장 기능을 설치하세요. + +- **VS Code에서 설치**: 확장 보기(`Shift` + `Cmd/Ctrl` + `X`)를 열고, `datadog`을 검색한 후 Datadog의 공식 확장 기능을 선택하세요. + +- **웹에서 설치**: [Visual Studio Marketplace][1]의 확장 기능 페이지에서 설치하세요. + +### MCP 서버 설정 {#mcp-server-setup} + +이 확장 기능은 [Datadog Model Context Protocol(MCP) Server][3]에 대한 액세스를 포함합니다. 특정 Datadog 환경으로 편집기의 AI 기능을 향상시키기 위해 MCP 서버가 활성화되어 있는지 확인하세요. + +1. 채팅 패널을 열고, 에이전트 모드를 선택한 후 **도구 구성** 버튼을 클릭하세요. + {{< img src="bits_ai/mcp_server/vscode_configure_tools_button.png" alt="VS Code의 도구 구성 버튼" style="width:60%;" >}} + +1. Datadog 서버와 도구를 목록에서 찾아 체크박스를 선택하여 활성화하세요(필요시 확장하거나 새로 고침하세요). + +[1]: https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode +[3]: /ko/bits_ai/mcp_server/ + +{{% /tab %}} + +{{% tab "커서" %}} +IDE에서 직접 또는 웹에서 확장 기능을 설치하세요. + +- **커서에서 설치**: 확장 보기 (`Shift` + `Cmd/Ctrl` + `X`)를 열고, `datadog`을 검색한 후 Datadog의 공식 확장 기능을 선택하세요. + +- **웹에서 설치**: [Open VSX Registry][2]에서 VSIX 파일을 다운로드하고, 명령 팔레트(`Shift` + `Cmd/Ctrl` + `P`)에서 `Extensions: Install from VSIX`로 설치합니다. + +### Datadog MCP 서버 설정 {#datadog-mcp-server-setup} + +[Datadog MCP Server][3]를 활성화하기 위해 Datadog 플러그인을 설치합니다. [Cursor Marketplace][4] 또는 **Cursor Settings** > **Plugins**에서 플러그인을 설치할 수 있습니다. + +[2]: https://open-vsx.org/extension/datadog/datadog-vscode +[3]: /ko/bits_ai/mcp_server/setup/?tab=cursor +[4]: https://cursor.com/marketplace/datadog + +{{% /tab %}} +{{< /tabs >}} + +## 핵심 기능 {#core-features} + +### Logs {#logs} + +**Logs**를 사용하여 코드의 특정 로그 라인에서 생성된 로그의 양을 측정합니다. 이 확장 기능은 Datadog의 로그와 일치하는 감지된 로깅 패턴에 대해 코드 위에 주석을 추가합니다. + +{{< img src="/ide_plugins/vscode/logs_navigation.mp4" alt="로그 탐색 미리보기" style="width:100%" video=true >}} + +[Logs][20] 하위 섹션에서 더 많은 정보를 확인하세요. + +### Code Insights {#code-insights} + +**Code Insights**는 런타임 오류, 코드 취약점 및 불안정한 테스트를 포함하여 코드 베이스와 관련된 Datadog 생성 인사이트로 정보를 제공합니다. + +{{< img src="/ide_plugins/vscode/code-insights-2.png" alt="Code insights 보기." style="width:100%;" >}} + +[Code Insights][21] 하위 섹션에서 자세히 알아보세요. + +### Code Security {#code-security} + +[**Code Security**][19] 기능은 미리 정의된 규칙에 따라 로컬에서 코드를 분석하여, 변경 사항을 커밋하기 전에 보안 문제와 취약점을 감지하고 수정할 수 있도록 도와줍니다. + +{{< img src="/ide_plugins/vscode/static_analysis.mp4" alt="Static Analysis 미리보기" style="width:100%" video=true >}} + +[Code Security][19] 하위 섹션에서 자세히 알아보세요. + +### Exception Replay {#exception-replay} + +**Exception Replay**는 Error Tracking 코드 인사이트의 스택 트레이스 프레임을 검사하고 프로덕션에서 실행 중인 코드의 변수 값에 대한 정보를 제공합니다. + +{{< img src="/ide_plugins/vscode/exception_replay.mp4" alt="Exception Replay 미리보기" style="width:100%" video=true >}} + +[Exception Replay][22] 하위 섹션에서 자세히 알아보세요. + +### Live Debugger {#live-debugger} + +**Live Debugger**는 코드 재배포 없이 디버깅을 위해 런타임 데이터를 캡처할 수 있도록 실행 중인 서비스에 로그 포인트(자동 만료되는 비차단 중단점)를 추가할 수 있게 해줍니다. + +{{< img src="/ide_plugins/vscode/live_debugger_overview.mp4" alt="Datadog Live Debugger 활동 개요" style="width:100%" video=true >}} + +[Live Debugger][23] 하위 섹션에서 자세히 알아보세요. + +## 기타 기능 {#other-features} + +### View in IDE {#view-in-ide} + +
    이 기능은 VS Code 및 Cursor에서만 사용할 수 있습니다. VS Code의 다른 포크는 지원되지 않습니다.
    + +**View in VS Code** 또는 **View in Cursor** 기능은 Datadog에서 직접 소스 파일로 연결되는 링크를 제공합니다. UI에 표시된 스택 트레이스의 프레임 옆에 있는 버튼을 찾으세요(예: [Error Tracking][5]에서). + +{{< img src="/ide_plugins/vscode/view-in-vscode-2.png" alt="Datadog에서 View in VS Code 버튼이 있는 스택 트레이스" style="width:100%;" >}} + +이 기능을 사용하여 인사이트(예: Error Tracking의 오류)에서 소스 파일을 열 수도 있습니다. + +{{< img src="/ide_plugins/vscode/view-in-vscode-error.png" alt="Datadog에서 View in VS Code 버튼이 있는 Error Tracking 문제" style="width:100%;" >}} + +
    이 기능을 사용하려면 먼저 소스 코드 통합을 서비스에 구성하세요.
    + +### Fix in Chat {#fix-in-chat} + +**Fix in Chat** 버튼은 확장 프로그램이 오류나 문제를 식별할 때 여러 상황에서 나타납니다. 버튼을 클릭하여 문제를 요약하고 관련 세부정보 및 맥락을 포함하며 에이전트에 대한 구체적인 지침을 제공하는 AI 채팅 프롬프트를 생성하세요. + +{{< img src="/ide_plugins/vscode/cursor_fix_in_chat.mp4" alt="인라인 코드 오류를 수정하기 위해 채팅에서 수정 사용" style="width:100%" video=true >}} + +## 데이터 및 텔레메트리 {#data-and-telemetry} + +Datadog은 사용자가 IDE와 사용하는 방식, 사용 중 오류 발생 여부, 해당 오류의 원인, 사용자 식별자 등 사용자의 이 IDE 사용과 관련된 특정 정보를 수집하며, 수집은 [Datadog 개인정보 보호정책][13] 및 Datadog의 [VS Code 확장 EULA][12]에 따라 처리됩니다. 이 데이터는 확장 프로그램으로의 전환 및 서비스에 접근하기 위한 해당 Datadog 로그인 페이지 등 확장 프로그램의 성능 및 기능을 개선하는 데 사용됩니다. + +이 데이터를 [Datadog][3]에 전송하지 않으려면, 언제든지 확장 프로그램의 설정(`Datadog > Telemetry > Setup > Enable Telemetry`)에서 비활성화하고 `disabled`를 선택하세요. + +
    Datadog 확장 프로그램은 VS Code 텔레메트리 설정도 존중합니다.
    + +## 도움말 및 피드백{#help-and-feedback} + +피드백을 공유하려면 [team-ide-integration@datadoghq.com][14]으로 이메일을 보내거나 확장 프로그램의 [공개 저장소][15]에 문제를 생성하세요. + +[이슈][16] 섹션에서 알려진 문제를 확인하세요. + +[Cursor][17] 또는 VS Code의 다른 포크를 사용하고 있습니까? [Open VSX Registry][2]에서 확장 프로그램을 찾아보세요. + +## 라이선스{#license} + +이 확장 프로그램을 다운로드하거나 사용하기 전에 [최종 사용자 라이선스 계약][12]을 정독하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode +[2]: https://open-vsx.org/extension/datadog/datadog-vscode +[3]: https://www.datadoghq.com/ +[5]: /ko/tracing/error_tracking/ +[12]: https://www.datadoghq.com/legal/eula/ +[13]: https://www.datadoghq.com/legal/privacy/ +[14]: mailto:team-ide-integration@datadoghq.com +[15]: https://github.com/DataDog/datadog-for-vscode +[16]: https://github.com/DataDog/datadog-for-vscode/issues?q=is%3Aissue+label%3A%22known+issue%22 +[17]: https://www.cursor.com/ +[18]: /ko/account_management/multi_organization/#custom-sub-domains +[19]: /ko/ide_plugins/vscode/code_security/ +[20]: /ko/ide_plugins/vscode/logs/ +[21]: /ko/ide_plugins/vscode/code_insights/ +[22]: /ko/ide_plugins/vscode/exception_replay/ +[23]: /ko/ide_plugins/vscode/live_debugger/ \ No newline at end of file diff --git a/content/ko/llm_observability/lapdog.md b/content/ko/llm_observability/lapdog.md new file mode 100644 index 00000000000..3a639db2890 --- /dev/null +++ b/content/ko/llm_observability/lapdog.md @@ -0,0 +1,167 @@ +--- +description: 로컬에서 LLM Observability 대시보드를 실행하여 Datadog 계정 없이 브라우저에서 코딩 에이전트 및 애플리케이션 + 트레이스를 검사합니다. +further_reading: +- link: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md + tag: GitHub + text: GitHub의 Lapdog README +- link: /llm_observability/instrumentation/sdk + tag: 설명서 + text: LLM Observability SDK로 애플리케이션 계측 +- link: /llm_observability/instrumentation/auto_instrumentation + tag: 설명서 + text: LLM Observability를 위한 자동 계측 +title: Lapdog +--- +## 개요 {#overview} + +Lapdog은 LLM Observability를 위한 로컬 개발 도구입니다. 이 도구는 `localhost:8126`에서 에이전트를 실행하여 LLM 애플리케이션이나 Claude Code, Codex, Pi와 같은 코딩 에이전트에서 모든 스팬, 프롬프트, 도구 호출 및 비용을 캡처하고 이를 [lapdog.datadoghq.com](https://lapdog.datadoghq.com)의 브라우저 대시보드로 스트리밍합니다. Datadog 계정은 필요하지 않습니다. + +Lapdog은 오픈 소스 [Datadog APM 테스트 에이전트][1]를 기반으로 구축되었습니다. 캡처된 텔레메트리를 Datadog으로 전달하여 동일한 데이터가 프로덕션 트래픽과 함께 LLM Observability에 표시되도록 할 수도 있습니다. + +## 이 작업으로 얻게 되는 사항 {#what-you-get} + +- 프롬프트, 도구 호출 및 응답이 포함된 세션별 트레이스 +- 입력, 출력 및 캐시 히트에 따라 분석한 토큰 사용량 및 예상 비용 +- 권한 마찰: 통제된 도구 호출 및 대기 시간 +- 세션 동안의 컨텍스트 창 사용량 및 캐시 히트 +- 실행 중인 코딩 에이전트의 실시간 상태(실행 중, 유휴, 차단됨) + +## 설치 {#install} + +{{< tabs >}} +{{% tab "Homebrew(macOS)" %}} + +```shell +brew install datadog/lapdog/lapdog +``` +{{% /tab %}} +{{% tab "pip/pipx" %}} + +```shell +pipx install ddapm-test-agent +# or: pip install ddapm-test-agent +``` +{{% /tab %}} +{{< /tabs >}} + +Docker, 소스에서 설치 및 기타 설치 경로에 대한 내용은 [Lapdog 설치 가이드][1]를 참조하세요. + +## 코딩 에이전트 실행 {#run-a-coding-agent} + +Lapdog은 코딩 에이전트를 엔드 투 엔드로 계측합니다. 각 프롬프트, 도구 호출 및 권한 요청은 대시보드에서 다시 재생할 수 있는 세션의 스팬이 됩니다. + +{{< tabs >}} +{{% tab "Claude Code" %}} + +```shell +lapdog claude +``` +로컬 에이전트를 시작하고, Claude Code lapdog 플러그인을 설치한 후 Claude Code를 실행합니다. +{{% /tab %}} +{{% tab "Codex" %}} + +```shell +lapdog codex +``` +로컬 에이전트를 시작한 후 OpenAI 호환 프록시와 JSONL 감시자를 사용하여 Codex를 실행하세요. 이 감시자는 모든 LLM 요청, 도구 호출 및 단계를 세션으로 캡처합니다. +{{% /tab %}} +{{% tab "Pi" %}} + +```shell +lapdog pi +``` +로컬 에이전트를 시작하고, Pi lapdog 확장을 설치한 후 `LAPDOG_URL`이 구성된 Pi를 실행합니다. +{{% /tab %}} +{{% tab "기타" %}} + +```shell +lapdog python my_app.py +``` +로컬 에이전트를 가리키는 `ddtrace` 자동 계측으로 모든 명령을 실행합니다. 이 작업은 개발 중에 LLM 기반 애플리케이션을 계측하는 데 유용합니다. +{{% /tab %}} +{{< /tabs >}} + +**참고**: `lapdog claude` 및 `lapdog codex`는 프록시의 지원을 받는 구조로, 로컬 Lapdog 에이전트가 실시간 모델 요청 경로에 있습니다. 코딩 에이전트가 종료될 때까지 Lapdog을 실행 상태로 유지하세요. 세션 중에 Lapdog을 중지하거나 종료하면 실행된 코딩 에이전트가 모델 호출에서 진행을 중지할 수 있습니다. Lapdog을 재시작한 후 코딩 에이전트를 재시작하세요. `lapdog pi` 및 후크 전용 설정은 Lapdog이 다운되면 열립니다. 코딩 에이전트는 계속 실행되지만 캡처 데이터는 손실됩니다. + +## 세션 보기 {#view-sessions} + +세션이 실행되는 동안 [lapdog.datadoghq.com](https://lapdog.datadoghq.com)을 여세요. 대시보드는 로컬 에이전트에서 `localhost:8126`에 대해 직접 읽으며, 로그인이나 Datadog 계정이 필요하지 않습니다. + +로컬 포트를 변경한 경우 대시보드 헤더의 {{< ui >}}Collecting sessions{{< /ui >}} 배지를 통해 이를 재정의합니다. + +## Datadog에 이벤트 전달 {#forward-events-to-datadog} + +캡처된 이벤트를 Datadog의 LLM Observability로 동시에 전송하려면 API 키를 설정하고 `--forward`를 전달하세요. + +```shell +DD_API_KEY= lapdog --forward claude +``` + +전달된 스팬은 `source:lapdog` 태그가 붙어 개발 세션과 프로덕션 트래픽을 구분할 수 있습니다. + +## 유용한 명령 {#useful-commands} + +| 명령 | 동작 | +| --- | --- | +| `lapdog claude` | 캡처가 연결된 Claude Code 실행 | +| `lapdog codex` | OpenAI 프록시와 JSONL 감시자가 연결된 Codex 실행 | +| `lapdog pi` | lapdog 확장 프로그램이 설치된 Pi 실행 | +| `lapdog python app.py` | 트레이스 계측이 적용된 애플리케이션 실행 | +| `lapdog start` | 백그라운드에서 로컬 에이전트 시작 | +| `lapdog stop` | 백그라운드 에이전트 중지 | +| `lapdog status` | 에이전트의 실행 여부 표시 | + +전체 옵션 목록을 보려면 `lapdog --help`를 실행하세요. + +## 설치 제거 {#uninstall} + +Lapdog과 Lapdog이 홈 디렉토리에 쓰는 상태를 제거하려면 다음 단계를 따르세요. 패키지 관리자(Homebrew, pip 또는 pipx)는 설치된 항목만 지우며, `~/.lapdog/`, Claude Code 플러그인 또는 Pi 확장 프로그램은 그대로 유지됩니다. + +1. 로컬 에이전트를 중지합니다. + + ```shell + lapdog stop + ``` + +2. (설치된 경우) Claude Code 플러그인을 제거합니다. + + ```shell + claude plugin uninstall lapdog@lapdog + claude plugin marketplace remove lapdog + ``` + +3. Pi 확장 프로그램을 제거합니다(단, `lapdog pi`를 실행한 경우에만). + + ```shell + rm -f ~/.pi/agent/extensions/lapdog.ts + ``` + +4. Lapdog 작업 디렉토리를 제거합니다. + + ```shell + rm -rf ~/.lapdog + ``` + +5. 패키지를 제거합니다. + + {{< tabs >}} + {{% tab "Homebrew(macOS)" %}} + ```shell + brew uninstall lapdog + brew untap datadog/lapdog + ``` + {{% /tab %}} + {{% tab "pip/pipx" %}} + ```shell + pipx uninstall ddapm-test-agent + # or: pip uninstall ddapm-test-agent + ``` + {{% /tab %}} + {{< /tabs >}} + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-apm-test-agent/blob/master/lapdog/README.md \ No newline at end of file diff --git a/content/ko/logs/explorer/_index.md b/content/ko/logs/explorer/_index.md index cc3fe7b2683..fca8b400e18 100644 --- a/content/ko/logs/explorer/_index.md +++ b/content/ko/logs/explorer/_index.md @@ -7,56 +7,61 @@ aliases: - /ko/logs/explorer/list - /ko/logs/explorer/patterns - /ko/logs/explorer/transactions/ -description: 모든 로그를 검색하고 로그 분석 실행 +description: 전체 로그에서 검색 및 로그 분석 수행 further_reading: - link: logs/explorer/live_tail tag: 설명서 text: Live Tail에서 로그 미리보기 - link: logs/explorer/saved_views/ tag: 설명서 - text: 로그 탐색기 자동 설정 + text: Log Explorer 자동 구성 - link: https://www.datadoghq.com/blog/datadog-clipboard/ tag: 블로그 - text: 클립보드에 로그 탐색기 URL 추가 + text: 클립보드에 Log Explorer URL 추가 - link: https://www.datadoghq.com/blog/send-amazon-vpc-flow-logs-to-data-firehose-and-datadog/ tag: 블로그 - text: Amazon Kinesis Data Firehose 및 Datadog으로 Amazon VPC 플로우 로그 전송 -title: 로그 탐색기 + text: Amazon Kinesis Data Firehose 및 Datadog으로 Amazon VPC 흐름 로그 전송 +- link: https://www.datadoghq.com/blog/ai-powered-log-parsing + tag: 블로그 + text: AI 기반 로그 구문 분석으로 조사 가속화 +- link: https://learn.datadoghq.com/courses/log-explorer + tag: 학습 센터 + text: Log Explorer 시작 +title: Log Explorer --- +## 개요 {#overview} -## 개요 - -[**로그 탐색기**][1]는 로그 문제 해결 및 탐색을 위한 홈베이스입니다. 처음부터 시작하든, [저장된 보기][2]에서 시작하든, 모니터 알림이나 대시보드 위젯 등 다른 상황에서 여기로 이동하든, 로그 탐색기에서 로그를 검색 및 필터링하고, 그룹화하고, 시각화하고, 내보낼 수 있습니다. +[**Log Explorer**][1]는 로그 문제 해결 및 탐색을 위한 홈베이스입니다. 처음부터 또는 [저장된 뷰][2]에서 시작하든, 모니터링 알림이나 대시보드 위젯 등 다른 상황에서 여기로 이동하든, Log Explorer에서 로그를 검색 및 필터링하고, 그룹화하고, 시각화하고, 내보낼 수 있습니다. -{{< img src="/logs/explore.png" alt="수집한 로그 탐색" style="width:100%;">}} +{{< img src="/logs/explore.png" alt="수집된 로그 탐색" style="width:100%;">}} -## 검색 및 필터링 +## 검색 및 필터링 {#search-and-filter} -로그에 대한 **검색** 및 **필터링**을 통해 현재 관심 분야에 맞춰진 로그 하위 집합으로 범위를 좁히거나 넓히거나 포커스를 전환하세요. +로그에 대한 {{< ui >}}Search{{< /ui >}} 및 {{< ui >}}Filter{{< /ui >}}를 통해 현재 관심 분야에 맞춰진 로그 하위 집합으로 범위를 좁히거나 넓히거나 포커스를 전환하세요. - - 로그 탐색기에서 로그를 검색하는 방법에 대해 자세히 알아보려면 [로그 검색][3]을 읽어보세요. - - 로그 탐색기에서 쿼리 생성 및 패싯 사용을 시작하려면 [로그 검색 구문][4]을 읽어보세요. - - [Watchdog Insights][9]가 검색 컨텍스트 내에서 오류 로그의 변칙 로그와 이상값을 표시하는 방법을 알아보려면 [Watchdog Insights for Logs][5]를 읽어보세요. + - Log Explorer에서 로그를 검색하는 방법에 대해 자세히 알아보려면 [로그 검색][3]을 참조하세요. + - Log Explorer에서 쿼리 생성 및 패싯 사용을 시작하려면 [로그 검색 구문][4]을 참조하세요. + - [Watchdog Insights][9]가 검색 컨텍스트 내에서 오류 로그의 이상 로그와 이상치를 표시하는 방법을 알아보려면 [Watchdog Insights for Logs][5]를 참조하세요. -## 분석 +## 분석 {#analyze} -정보를 추출하거나 통합하기 위해 쿼리된 로그를 필드, 패턴, 트랜잭션과 같은 상위 수준 항목으로 **그룹화**합니다. +정보를 추출하거나 통합하기 위해 쿼리된 로그를 필드, 패턴, 트랜잭션과 같은 상위 수준 항목으로 {{< ui >}}Group{{< /ui >}}을 만드세요. 이벤트 하위 집합별로 패턴을 식별하고 로그를 집계하려면 [로그 분석][6]을 참조하세요. -## 시각화 +## 시각화 {#visualize} -필터 및 집계 결과를 **시각화**하여 로그를 더 잘 이해하고 중요한 정보를 수집하세요. 예를 들어 목록에서 로그를 확인하여 로그 데이터를 열로 구성하거나 시계열 그래프에서 시간 경과에 따른 로그 데이터를 측정할 수 있습니다. +필터 및 집계 결과를 {{< ui >}}Visualize{{< /ui >}}하여 로그를 더 잘 이해하고 중요한 정보를 수집하세요. 예를 들어 목록에서 로그를 확인하여 로그 데이터를 열로 구성하거나 시계열 그래프에서 시간 경과에 따른 로그 데이터를 측정할 수 있습니다. -로그 탐색기에서 로그 데이터를 시각화하려면 [로그 시각화][7]를 참조하세요. +Log Explorer에서 로그 데이터를 시각화하려면 [로그 시각화][7]를 참조하세요. -## 내보내기 +## 내보내기 {#export} -나중에 또는 다른 상황에서 재사용하기 위해 로그 탐색기 보기를 **내보내기**할 수도 있습니다. +나중에 또는 다른 상황에서 재사용하기 위해 Log Explorer 뷰를 {{< ui >}}export{{< /ui >}}할 수도 있습니다. 로그 쿼리 및 시각화를 내보내는 방법을 알아보려면 [로그 내보내기][8]를 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/logs/log_collection/java.md b/content/ko/logs/log_collection/java.md index 3555bf75008..a44540e34ab 100644 --- a/content/ko/logs/log_collection/java.md +++ b/content/ko/logs/log_collection/java.md @@ -4,34 +4,33 @@ aliases: further_reading: - link: /logs/log_configuration/processors tag: 설명서 - text: 로그 처리하는 방법 배우기 + text: 로그 처리 방법 알아보기 - link: /logs/log_configuration/parsing tag: 설명서 - text: 파싱에 대해 배우기 + text: 구문 분석에 대해 알아보기 - link: /logs/explorer/ tag: 설명서 text: 로그 탐색 방법 알아보기 - link: /logs/explorer/#visualize tag: 설명서 - text: 로그 분석 실행하기 + text: 로그 분석 수행 - link: /tracing/other_telemetry/connect_logs_and_traces/java/ tag: 설명서 text: 로그 및 트레이스 연결 - link: /logs/faq/log-collection-troubleshooting-guide/ tag: FAQ - text: 로그 수집 트러블슈팅 가이드 + text: 로그 수집 문제 해결 가이드 - link: https://www.datadoghq.com/blog/java-logging-guide/ tag: 블로그 - text: 자바 로그를 수집, 커스터마이즈하고 표준화하는 방법 + text: Java 로그를 수집, 커스터마이즈하고 표준화하는 방법 - link: /glossary/#tail - tag: 용어 - text: '"tail"에 대한 용어 항목' -title: 자바(Java) 로그 수집 + tag: 용어집 + text: '"테일링" 관련 용어집 항목' +title: Java 로그 수집 --- +로그를 Datadog에 전송하려면 파일에 기록한 후 Datadog Agent로 해당 파일을 [테일링][1]하세요. -로그를 Datadog에 전송하고 파일에 기록한 다음 Datadog 에이전트를 사용해 해당 파일을 [테일링][14]하세요. - -일반적인 자바 로그의 스택 트레이스를 여러 줄로 나눠 원래 로그 이벤트와 연결하기 어렵게 만드세요. 예: +일반적인 Java 로그의 스택 트레이스는 여러 줄로 나뉘어 원래 로그 이벤트와 연결하기 어렵습니다. 예시는 다음과 같습니다. ```java //4 events generated when only one is expected! @@ -41,25 +40,25 @@ Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Bootstrap.main(Bootstrap.java:14) ``` -이 문제를 해결하려면 로깅 라이브러리를 설정하여 JSON 형식으로 로그를 생성합니다. JSON으로 기록하면 다음의 이점이 있습니다. +이 문제를 해결하려면 로깅 라이브러리를 구성하여 JSON 형식으로 로그를 생성하세요. JSON으로 기록하면 다음과 같은 이점이 있습니다. * 스택 트레이스가 로그 이벤트로 적절하게 래핑되도록 보장합니다. -* 모든 로그 이벤트 속성(심각도, 로거 이름, 스레드 이름 등)이 적절하게 추출되도록 보장합니다. -* [매핑된 진단 컨텍스트(MDC)][1] 속성에 액세스하여 어느 로그 이벤트에나 추가할 수 있습니다. -* [커스텀 파싱 규칙][2]의 필요성을 없애줍니다. +* 모든 로그 이벤트 특성(심각도, 로거 이름, 스레드 이름 등)이 적절하게 추출되도록 보장합니다. +* [매핑된 진단 컨텍스트(MDC)][2] 특성에 대한 액세스 권한을 얻어 어느 로그 이벤트에나 추가할 수 있습니다. +* [커스텀 구문 분석 규칙][3]의 필요성을 없애줍니다. 다음 지침은 Log4j, Log4j 2 및 Logback 로깅 라이브러리의 설정 예를 보여줍니다. -## 로거 설정 +## 로거 구성 {#configure-your-logger} -### JSON 형식 +### JSON 형식 {#json-format} {{< tabs >}} {{% tab "Log4j" %}} -Log4j의 경우, Logback과 결합된 SLF4J 모듈 [log4j-over-slf4j][1]을 사용하여 JSON 형식으로 기록합니다. `log4j-over-slf4j`는 응용 프로그램의 Log4j를 완전히 대체하므로 다른 코드 변경을 사용할 필요가 없습니다. 사용 방법: +Log4j의 경우, SLF4J 모듈 [log4j-over-slf4j][1]와 Logback을 사용하여 JSON 형식으로 기록합니다. `log4j-over-slf4j`는 애플리케이션의 Log4j를 완전히 대체하므로 코드 변경이 필요하지 않습니다. -1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 대체하고 Logback 종속성을 추가합니다. +1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 교체하고 Logback 종속성을 추가합니다. 예시는 다음과 같습니다. ```xml org.slf4j @@ -77,7 +76,7 @@ Log4j의 경우, Logback과 결합된 SLF4J 모듈 [log4j-over-slf4j][1]을 사 6.6 ``` -2. `logback.xml`에서 JSON 레이아웃을 사용하는 추가자 설정: +2. `logback.xml`에서 JSON 레이아웃을 사용하는 어펜더를 구성합니다. 파일 및 콘솔에 대한 다음 예시 구성을 참조하세요. 파일: @@ -94,7 +93,7 @@ Log4j의 경우, Logback과 결합된 SLF4J 모듈 [log4j-over-slf4j][1]을 사 ``` - 콘솔: + For console: ```xml @@ -115,49 +114,99 @@ Log4j의 경우, Logback과 결합된 SLF4J 모듈 [log4j-over-slf4j][1]을 사 Log4j 2는 JSON 레이아웃을 포함합니다. -1. `log4j2.xml`에서 JSON 레이아웃을 사용하는 추가자 설정: - - 파일 추가자: - - ```xml - - - - - - - - - - - - - - - ``` - - 콘솔 추가자: - - ```xml - - - - - - - - - - - - - - - - +1. `log4j2.xml`에서 JSON 레이아웃을 사용하는 어펜더를 구성합니다. 파일 및 콘솔 어펜더에 대한 다음 예시 구성을 참조하세요. Log4j 플러그인에 관한 종합적인 설명은 [Log4j 플러그인 참조][1]를 참조하시기 바랍니다. +{{% collapse-content title="파일 어펜더" level="h4" %}} +{{< code-block lang="xml" filename="log4j2.xml" >}} + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="콘솔 어펜더" level="h4" %}} +{{< code-block lang="xml" filename="log4j2.xml" >}} + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +2. Java 프로젝트의 `src/main/resources` 디렉토리에 JSON 레이아웃 템플릿 파일(예: `MyLayout.json`)을 추가합니다. 예시는 다음과 같습니다. + ```json + { + "timestamp":{ + "$resolver":"timestamp", + "pattern":{ + "format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", + "timeZone":"UTC" + } + }, + "status":{ + "$resolver":"level", + "field":"name" + }, + "thread_name":{ + "$resolver":"thread", + "field":"name" + }, + "logger_name":{ + "$resolver":"logger", + "field":"name" + }, + "message":{ + "$resolver":"message", + "stringified":true + }, + "exception_class":{ + "$resolver":"exception", + "field":"className" + }, + "exception_message":{ + "$resolver":"exception", + "field":"message" + }, + "stack_trace":{ + "$resolver":"exception", + "field":"stackTrace", + "stackTrace":{ + "stringified":true + } + }, + "host":"${hostName}", + "service":"${env:DD_SERVICE}", + "version":"${env:DD_VERSION}", + "dd.trace_id":{ + "$resolver":"mdc", + "key":"dd.trace_id" + }, + "dd.span_id":{ + "$resolver":"mdc", + "key":"dd.span_id" + } + } ``` -2. `pom.xml`에 JSON 레이아웃 종속성을 추가하세요. +3. `pom.xml`에 JSON 레이아웃 종속성을 추가합니다. 예시는 다음과 같습니다. ```xml org.apache.logging.log4j @@ -181,12 +230,13 @@ Log4j 2는 JSON 레이아웃을 포함합니다. ``` +[1]: https://logging.apache.org/log4j/2.x/plugin-reference.html {{% /tab %}} {{% tab "Logback" %}} -Logback에서 JSON 형식의 로그에 대한 [로그스태시(Logstash)-로그백-인코더][1]를 사용하세요. +Logback에서 JSON 형식의 로그에 [logstash-logback-encoder][1]를 사용합니다. -1. `logback.xml`에서 JSON 레이아웃을 사용해 파일 추가자를 설정하세요. +1. `logback.xml`에서 JSON 레이아웃을 사용하여 파일 어펜더를 구성합니다. 예시는 다음과 같습니다. ```xml @@ -201,7 +251,7 @@ Logback에서 JSON 형식의 로그에 대한 [로그스태시(Logstash)-로그 ``` -2. `pom.xml` 파일에 로그스태시(Logstash) 인코더 종속성을 추가하세요. +2. `pom.xml` 파일에 Logstash 인코더 종속성을 추가합니다. 예시는 다음과 같습니다. ```xml @@ -220,7 +270,7 @@ Logback에서 JSON 형식의 로그에 대한 [로그스태시(Logstash)-로그 {{% /tab %}} {{% tab "Tinylog" %}} -공식 [Tinylog 설명서][1]를 기반으로 JSON 작성자 설정을 생성하세요. +[공식 Tinylog 설명서][1]를 기반으로 JSON 작성자 설정을 생성하세요. `tinylog.properties` 파일에서 다음 형식을 사용하세요. @@ -244,16 +294,12 @@ writer.field.dd.env = {context: dd.env} {{% /tab %}} {{< /tabs >}} -#### 로그에 트레이스 ID 삽입 - -이 애플리케이션에 애플리케이션 성능 모니터링(APM)이 활성화된 경우 트레이스 ID를 삽입하여 로그와 트레이스의 관계를 연결할 수 있습니다. 자세한 정보는 [자바 로그 및 트레이스 연결하기][3]를 참조하세요. - -### Raw 형식 +### Raw 형식 {#raw-format} {{< tabs >}} {{% tab "Log4j" %}} -`log4j.xml`에서 파일 추가자 설정: +`log4j.xml`에서 파일 어펜더를 구성하세요. 예시는 다음과 같습니다. ```xml @@ -265,7 +311,7 @@ writer.field.dd.env = {context: dd.env} - + @@ -280,14 +326,14 @@ writer.field.dd.env = {context: dd.env} {{% /tab %}} {{% tab "Log4j 2" %}} -`log4j2.xml`에서 파일 추가자 설정: +`log4j2.xml`에서 파일 어펜더를 구성하세요. 예시는 다음과 같습니다. ```xml - + @@ -302,7 +348,7 @@ writer.field.dd.env = {context: dd.env} {{% /tab %}} {{% tab "Logback" %}} -`logback.xml`에서 파일 추가자 설정: +`logback.xml`에서 파일 어펜더를 구성하세요. 예시는 다음과 같습니다. ```xml @@ -312,7 +358,7 @@ writer.field.dd.env = {context: dd.env} true - %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %X{dd.trace_id} %X{dd.span_id} - %m%n + %d{yyyy-MM-dd HH:mm:ss} %-5p %C:%L - %X{dd.trace_id} %X{dd.span_id} - %m%n @@ -325,7 +371,7 @@ writer.field.dd.env = {context: dd.env} {{% /tab %}} {{% tab "Tinylog" %}} -[공식 Tinylog 설명서][1]를 바탕으로 파일에 작성자 설정 아웃풋을 생성하세요. +[공식 Tinylog 설명서][1]를 바탕으로 파일에 작성자 구성 아웃풋을 생성하세요. `tinylog.properties` 파일에서 다음 형식을 사용하세요. @@ -337,23 +383,36 @@ writer.format = {level} - {message} - "dd.trace_id":{context: dd.trace_id} - " writer.file = log.txt ``` -[1]: https://tinylog.org/v2/configuration/#json-writer +[1]: https://tinylog.org/v2/configuration/#writer {{% /tab %}} {{< /tabs >}} -#### 로그에 트레이스 ID 삽입 +#### 로그에 트레이스 ID 삽입 {#inject-trace-ids-into-your-logs} -이 애플리케이션에 애플리케이션 성능 모니터링(APM)이 활성화된 경우 트레이스 ID를 삽입하여 로그와 트레이스의 관계를 연결할 수 있습니다. 자세한 정보는 [자바 로그 및 트레이스 연결하기][3]를 참조하세요. +이 애플리케이션에 APM이 활성화된 경우 트레이스 ID를 삽입하여 로그와 트레이스를 상호 연결할 수 있습니다. [Java 로그 및 트레이스 연결][4]를 참조하세요. -로그와 트레이스의 관계를 연결하지 _않으면_ 위 설정 예시에 포함된 로그 패턴에서 MDC 자리표시자(`%X{dd.trace_id} %X{dd.span_id}`)를 제거할 수 있습니다. +로그와 트레이스를 상호 연결하지 _않는_ 경우, 이전 구성 예시에 포함된 로그 패턴에서 MDC 자리 표시자(`%X{dd.trace_id} %X{dd.span_id}`)를 제거하세요. +예를 들어, Log4j 2를 사용하지만 로그와 트레이스를 상호 연결하지 않는 경우, 예시 로그 레이아웃 템플릿 `MyLayout.json`에서 다음 블록을 제거합니다. + +```json +"dd.trace_id":{ + "$resolver":"mdc", + "key":"dd.trace_id" +}, +"dd.span_id":{ + "$resolver":"mdc", + "key":"dd.span_id" +} +``` -## Datadog 에이전트 설정 -[로그 수집이 활성화되면][4] [사용자 지정 로그 수집][5]을 설정해 로그 파일을 테일링하고 Datadog에 전송하세요. +## Datadog Agent 구성 {#configure-the-datadog-agent} -1. `conf.d/` [에이전트 설정 디렉터리][6]에서 `java.d/` 폴더를 생성하세요. -2. 다음 콘텐츠가 포함된 `java.d/`에서 `conf.yaml` 파일 생성: +[로그 수집이 활성화][5]되면 [사용자 지정 로그 수집][6]을 설정하여 로그 파일을 테일링하고 Datadog에 전송하세요. + +1. `conf.d/` [Agent 구성 디렉토리][7]에 `java.d/` 폴더를 생성합니다. +2. 다음 내용을 사용하여 `java.d/`에 `conf.yaml` 파일을 생성합니다. ```yaml #Log section @@ -371,30 +430,30 @@ writer.file = log.txt # pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01]) ``` -3. [에이전트를 다시 시작][7]합니다. -4. [에이전트의 상태 하위 명령][8]을 실행하고 `Checks` 섹션에서 `java`를 찾아 로그가 Datadog에 제출되었는지 확인하세요. +3. [Agent를 재시작][8]합니다. +4. [Agent의 상태 하위 명령][9]을 실행하고 `java` 섹션에서 {{< ui >}}Checks{{< /ui >}}를 찾아 로그가 Datadog에 성공적으로 제출되었는지 확인합니다. -로그가 JSON 형식에 있는 경우 Datadog는 자동으로 [로그 메시지를 파싱][9]하여 로그 속성을 추출하세요. [로그 탐색기][10]를 사용하여 로그를 확인하고 트러블슈팅합니다. +로그가 JSON 형식인 경우, Datadog이 자동으로 [로그 메시지를 구문 분석][10]하여 로그 특성을 추출합니다. [Log Explorer][11]를 사용하여 로그를 확인하고 문제를 해결하세요. -## 에이전트리스 로깅 +## Agent에 직접 로그 스트리밍 {#stream-logs-directly-to-the-agent} -애플리케이션이 액세스할 수 없거나 파일에 기록할 수 없는 머신에서 실행 중인 예외 중인 경우, Datadog나 Datadog 에이전트에 직접 로그를 스트리밍하는 것이 가능합니다. 애플리케이션에서 연결 문제를 해결해야 하기 때문에 권장되는 설정은 아닙니다. +예외적으로 애플리케이션이 액세스할 수 없거나 파일에 기록할 수 없는 머신에서 실행 중인 경우, Datadog이나 Datadog Agent에 직접 로그를 스트리밍하는 것이 가능합니다. 하지만 애플리케이션에서 연결 문제를 해결해야 하기 때문에 권장되는 설정은 아닙니다. -Datadog에 바로 로그 스트리밍하는 방법: +Datadog에 직접 로그를 스트리밍하는 방법은 다음과 같습니다. -1. 코드에 Logback 로깅 라이브러리를 추가하거나 **현재 로거를 Logback에 연결하세요**. -2. **Logback 설정**을 통해 로그를 Datadog에 전송합니다. +1. 코드에 Logback 로깅 라이브러리를 추가하거나 **현재 로거를 Logback에 연결**합니다. +2. **Logback을 구성**하여 로그를 Datadog에 전송합니다. -### 자바 로깅 라이브러리에서 Logback으로 연결 +### Java 로깅 라이브러리에서 Logback으로 연결 {#bridge-from-java-logging-libraries-to-logback} 이미 Logback을 사용 중인 경우 가장 일반적인 로깅 라이브러리가 Logback에 연결될 수 있습니다. {{< tabs >}} {{% tab "Log4j" %}} -Logback과 함께 SLF4J 모듈 [log4j-over-slf4j][1]을 사용하여 로그를 또 다른 서버로 전송합니다. `log4j-over-slf4j`는 애플리케이션의 Log4j를 완전히 대체하므로 코드 변경을 할 필요가 없습니다. 사용 방법: +SLF4J 모듈 [log4j-over-slf4j][1]를 Logback과 함께 사용하여 로그를 다른 서버로 전송하세요. `log4j-over-slf4j`는 코드 변경이 필요하지 않도록 애플리케이션의 Log4j를 완전히 대체합니다. -1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 대체하고 Logback 종속성을 추가합니다. +1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 교체하고 Logback 종속성을 추가합니다. 예시는 다음과 같습니다. ```xml org.slf4j @@ -412,9 +471,9 @@ Logback과 함께 SLF4J 모듈 [log4j-over-slf4j][1]을 사용하여 로그를 6.6 ``` -2. Logback을 설정합니다. +2. Logback을 구성합니다. -**참고:** 이 변경 사항의 결과 Log4j 설정 파일이 더 이상 픽업되지 않습니다. [Log4j 번역기][2]를 사용해 `log4j.properties` 파일을 `logback.xml`에 마이그레이션합니다. +**참고:** 이 변경에 따라 Log4j 구성 파일이 더 이상 픽업되지 않습니다. [Log4j 번역기][2]를 사용하여 `log4j.properties` 파일을 `logback.xml`로 마이그레이션하세요. [1]: http://www.slf4j.org/legacy.html#log4j-over-slf4j @@ -423,9 +482,9 @@ Logback과 함께 SLF4J 모듈 [log4j-over-slf4j][1]을 사용하여 로그를 {{% tab "Log4j 2" %}} -Log4j 2를 사용하면 원격 호스트에 로깅할 수 있지만 API 키를 사용해 로그의 접두어를 포함하는 기능을 제공하지 않습니다. 이 때문에 SLF4J 모듈 [log4j-over-slf4j][1] 및 Logback을 사용합니다. `log4j-to-slf4j.jar`은 애플리케이션에서 Log4j 2를 완전히 대체하므로 코드 변경을 할 필요가 없습니다. 사용 방법: +Log4j 2는 원격 호스트에 기록하도록 허용하지만, 로그에 API 키를 접두사로 추가하는 기능은 제공하지 않습니다. 따라서 SLF4J 모듈 [log4j-over-slf4j][1]와 Logback을 사용하세요. `log4j-to-slf4j.jar`는 코드 변경이 필요하지 않도록 애플리케이션의 Log4j 2를 완전히 대체합니다. 사용하려면 다음 단계를 따르세요. -1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 대체하고 Logback 종속성을 추가합니다. +1. `pom.xml` 파일에서 `log4j.jar` 종속성을 `log4j-over-slf4j.jar` 종속성으로 교체하고 Logback 종속성을 추가합니다. 예시는 다음과 같습니다. ```xml org.apache.logging.log4j @@ -444,13 +503,12 @@ Log4j 2를 사용하면 원격 호스트에 로깅할 수 있지만 API 키를 ``` -2. Logback을 설정합니다. +2. Logback을 구성합니다. -**참고**: +**참고:** -- `log4j-slf4j-impl.jar`이 여기에 설명된 대로 사용되지 **않았는지** 확인합니다. -https://logging.apache.org/log4j/log4j-2.2/log4j-to-slf4j/index.html -- 이 마이그레이션의 결과 Log4j 2 설정 파일이 더 이상 픽업되지 않습니다. [Log4j 번역기][2]를 사용해 `log4j.properties` 파일을 `logback.xml`에 마이그레이션하세요. +- 여기(https://logging.apache.org/log4j/log4j-2.2/log4j-to-slf4j/index.html)에 설명된 대로 `log4j-slf4j-impl.jar`가 사용되지 **않도록** 하세요. +- 이 마이그레이션에 따라 Log4j 2 구성 파일은 더 이상 픽업되지 않습니다. [Log4j 번역기][2]를 사용하여 `log4j.properties` 파일을 `logback.xml`로 마이그레이션하세요. [1]: http://www.slf4j.org/legacy.html#log4j-over-slf4j [2]: http://logback.qos.ch/translator @@ -458,116 +516,91 @@ https://logging.apache.org/log4j/log4j-2.2/log4j-to-slf4j/index.html {{< /tabs >}} -### Logback 설정 - -Logback과 함께 [로그스태시-로그백-인코더][11] 로깅 라이브러리를 사용해 로그를 직접 Datadog로 스트리밍합니다. - -1. `logback.xml` 파일에서 TCP 추가자를 설정합니다. 이 설정을 통해 `DD_API_KEY` 환경 변수에서 API 키를 검색할 수 있습니다. .대신, 설정 파일에 API 키를 직접 삽입할 수도 있습니다. - - {{< site-region region="us,us3,us5,ap1" >}} - - ```xml - - - logs/app.log - - - - intake.logs.datadoghq.com:10516 - 20 seconds - - - - ${DD_API_KEY} %mdc{keyThatDoesNotExist} - - - - - - - - - - - - ``` - - {{< /site-region >}} - - {{< site-region region="eu" >}} - - ```xml - - - logs/app.log - - - - tcp-intake.logs.datadoghq.eu:443 - 20 seconds - - - - ${DD_API_KEY} %mdc{keyThatDoesNotExist} - - - - - - - - - - - - ``` - - {{< /site-region >}} - - {{< site-region region="gov" >}} - 지원되지 않습니다. - {{< /site-region >}} - - **참고** XML 설정이 공백을 제거하므로 `%mdc{keyThatDoesNotExist}`이 추가됩니다. 접두어 파라미터에 대한 자세한 정보는 [Logback 설명서][12]를 참조하세요. - -2. `pom.xml` 파일에 로그스태시(Logstash) 인코더 종속성을 추가하세요. - - ```xml - - ch.qos.logback - logback-classic - 1.2.9 - - - net.logstash.logback - logstash-logback-encoder - 6.6 - - ``` - -## 활용 - -컨텍스트 속성을 사용해 로그 이벤트를 보강하세요. - -### 키 값 파서 사용하기 - -[키 값 파서][13]는 로그 이벤트에서 인식되는 `=` 패턴을 추출합니다. - -자바에서 로그 이벤트를 보강하기 위해 코드의 메시지를 다시 작성하고 `=` 시퀀스를 사용할 수 있습니다. - -예: 다음을 포함하는 경우: +### Logback 구성 {#configure-logback} +Datadog은 TCP를 통해 로그를 Datadog 인테이크로 직접 전송하는 것을 지원하지 않습니다. 대신, Logback을 로컬 Datadog Agent에 구성하여 로그를 HTTPS를 통해 Datadog으로 자동 보강하여 포워딩합니다. + +1. [로컬 Datadog Agent를 설치][12]합니다(v6+/v7+). +1. `datadog.yaml`에서 로그 수집을 활성화하고, Agent가 HTTPS를 통해 로그를 전달하도록 합니다(HTTPS는 Agent v6.19+/v7.19+ 이후 버전의 기본 전송 방식입니다). + ``` + logs_enabled: true + logs_config: + # HTTPS is the default. Keep or set this to force HTTPS forwarding. + force_use_http: true + # (Optional) auto-detect multi-line patterns + auto_multi_line_detection: true + ``` + +1. Agent에서 로그 수집을 활성화합니다. + ```yaml + # /etc/datadog-agent/conf.d/logback.d/conf.yaml + logs: + - type: tcp + port: 10518 # Port the Agent will listen on + service: my-java-app # Your service name (unified service tagging) + source: java # Or a more specific source, e.g., "logback" + ``` +1. Agent를 재시작하여 변경 사항을 적용합니다. +1. Agent에 로그를 전송하도록 Logback을 구성합니다. [logstash-logback-encoder][13] TCP 어펜더를 `logback.xml`에서 사용하여 로그를 Agent로 전달합니다. + ```xml + + + localhost:10518 + + + + + + { + "message": "%message", + "level": "%level", + "logger": "%logger", + "service": "${DD_SERVICE:-my-java-app}", + "env": "${DD_ENV:-prod}", + "version": "${DD_VERSION:-1.0.0}", + "dd.trace_id": "%X{dd.trace_id}", + "dd.span_id": "%X{dd.span_id}" + } + + + + + + + + + ``` + 그런 다음 루트 로거에서 참조하세요. + ```xml + + + + ``` + +1. 로그 포워딩을 검증합니다. `datadog-agent status`를 실행하여 TCP 리스너를 확인하고, 서비스로 태그된 항목이 있는지 Logs Explorer를 확인하세요. + +## 활용 {#getting-further} + +컨텍스트 특성을 사용해 로그 이벤트를 보강하세요. + +### 키 값 구문 분석 도구 사용 {#using-the-key-value-parser} + +[키 값 구문 분석 도구][14]는 로그 이벤트에서 인식되는 `=` 패턴을 추출합니다. + +Java에서 로그 이벤트를 보강하기 위해 코드의 메시지를 다시 작성하고 `=` 시퀀스를 도입할 수 있습니다. + +다음과 같은 경우에 ```java logger.info("Emitted 1001 messages during the last 93 seconds for customer scope prod30"); ``` -다음으로 변경: +다음으로 변경할 수 있습니다. ```java logger.info("Emitted quantity=1001 messages during the last durationInMs=93180 ms for customer scope=prod30"); ``` -키 값 파서가 활성화된 경우 각 페어가 JSON에서 추출됩니다. +키 값 구문 분석 도구가 활성화된 경우 각 페어가 JSON에서 추출됩니다. ```json { @@ -578,13 +611,13 @@ logger.info("Emitted quantity=1001 messages during the last durationInMs=93180 m } ``` -필드로 *scope*을, 로그 측정 지표로 *durationInMs* 및 *quantity*를 사용할 수 있습니다. +따라서 필드로 *scope*를, 로그 측정 지표로 *durationInMs* 및 *quantity*를 활용할 수 있습니다. -### MDC +### MDC {#mdc} -로그를 보강하는 또 다른 옵션은 자바의 [매핑된 진단 컨텍스트(MDC)][1]를 사용하는 것입니다. +로그를 보강하는 또 다른 옵션은 Java의 [Mapped Diagnostic Contexts(MDC)][2]를 사용하는 것입니다. -SLF4J를 사용하는 경우 다음 자바 코드를 사용합니다. +SLF4J를 사용하는 경우 다음의 Java 코드를 사용하세요. ```java ... @@ -593,7 +626,7 @@ logger.info("Emitted 1001 messages during the last 93 seconds"); ... ``` -이 JSON을 생성하는 방법: +이 JSON을 생성하는 방법은 다음과 같습니다. ```json { @@ -602,23 +635,23 @@ logger.info("Emitted 1001 messages during the last 93 seconds"); } ``` -**참고:** MDC는 문자열 유형만 허용하므로 숫자 값 메트릭을 사용하지 마세요. +**참고**: MDC는 문자열 유형만 허용하므로 숫자 값 메트릭에는 사용하지 마세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: http://logback.qos.ch/manual/mdc.html -[2]: /ko/logs/log_configuration/parsing -[3]: /ko/tracing/other_telemetry/connect_logs_and_traces/java/ -[4]: /ko/agent/logs/?tab=tailfiles#activate-log-collection -[5]: /ko/agent/logs/?tab=tailfiles#custom-log-collection -[6]: /ko/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-configuration-directory -[7]: /ko/agent/configuration/agent-commands/?tab=agentv6v7#restart-the-agent -[8]: /ko/agent/configuration/agent-commands/?tab=agentv6v7#agent-status-and-information] -[9]: /ko/logs/log_configuration/parsing/?tab=matchers -[10]: /ko/logs/explorer/#overview -[11]: https://github.com/logstash/logstash-logback-encoder -[12]: https://github.com/logstash/logstash-logback-encoder#prefixsuffixseparator -[13]: /ko/logs/log_configuration/parsing/#key-value-or-logfmt -[14]: /ko/glossary/#tail \ No newline at end of file +[1]: /ko/glossary/#tail +[2]: http://logback.qos.ch/manual/mdc.html +[3]: /ko/logs/log_configuration/parsing +[4]: /ko/tracing/other_telemetry/connect_logs_and_traces/java/ +[5]: /ko/agent/logs/?tab=tailfiles#activate-log-collection +[6]: /ko/agent/logs/?tab=tailfiles#custom-log-collection +[7]: /ko/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-configuration-directory +[8]: /ko/agent/configuration/agent-commands/?tab=agentv6v7#restart-the-agent +[9]: /ko/agent/configuration/agent-commands/?tab=agentv6v7#agent-status-and-information +[10]: /ko/logs/log_configuration/parsing/?tab=matchers +[11]: /ko/logs/explorer/#overview +[12]: /ko/agent/?tab=Host-based +[13]: https://github.com/logstash/logstash-logback-encoder +[14]: /ko/logs/log_configuration/parsing/#key-value-or-logfmt \ No newline at end of file diff --git a/content/ko/logs/log_configuration/archive_search.md b/content/ko/logs/log_configuration/archive_search.md new file mode 100644 index 00000000000..f9a6a2a0f84 --- /dev/null +++ b/content/ko/logs/log_configuration/archive_search.md @@ -0,0 +1,235 @@ +--- +description: 장기 아카이브에서 재인덱싱 없이 로그를 즉시 검색하고 분석하세요. +further_reading: +- link: /logs/explorer/ + tag: 설명서 + text: Datadog에서 로그 탐색 +- link: /logs/log_configuration/archives/ + tag: 설명서 + text: 로그 아카이브 구성 +- link: /logs/indexes/ + tag: 설명서 + text: 로그 보존 및 인덱싱 관리 +title: 아카이브 검색 +--- +## 개요 {#overview} + +아카이브 검색을 통해 사전 리하이드레이션 없이 장기 객체 스토리지 아카이브에서 로그를 직접 쿼리할 수 있습니다. 아카이브 검색을 사용해 **아카이브된 로그에 즉시 액세스**하여 조사, 감사 또는 인덱싱 보존 기간 초과 문제 해결에 활용할 수 있습니다. + +아카이브 검색은 백그라운드 배치 작업으로 실행되기 보다는 데이터를 스캔하는 동안 실시간으로 결과를 스트리밍하므로 리하이드레이션과 차이가 있습니다. 이 기능은 비용 대비 효율이 더 뛰어나며, 스캔 자체에 대해서만 요금이 부과되고, 처음 100,000개의 로그는 임시로 무료로 보존되고, 속도도 더 빠릅니다. + +검색을 시작할 때 다음과 같이 진행됩니다. + +* 로그가 전용 결과 페이지로 스트리밍됩니다. +* 최대 **100,000개의 로그**가 **24시간** 동안 보존됩니다. +* 필요 시, 검색 전후에 **결과 리하이드레이션**을 수행하여 로그를 더 오래 보존하고 Datadog 전체에서 사용할 수 있습니다. + +이 기능은 다음을 통해 아카이브된 로그를 지원합니다. + +- [Datadog Log Management 아카이브][1] +- [Observability Pipelines 아카이브][2] + +### 일반 사용 사례 {#typical-use-cases} + +아카이브 검색은 외부 아카이브에 저장된 로그를 쿼리해야 할 때 적합합니다. +일반 사용 사례에는 다음이 포함됩니다. + +- **인시던트 조사:** 인덱싱 보존 기간 외의 `transaction_id`, `user_id` 또는 `session_id`에 연결된 로그를 검색합니다.
    + *예시: 인덱싱 보존 기간이 15일에 불과하더라도 특정 `user_id`를 사용하여 3주 전의 로그를 쿼리합니다.* + +- **보안 분석:** 로그인 시도나 IP 또는 사용자에 의한 기타 활동을 조사하기 위해 아카이브된 로그를 검토합니다.
    + *예시: 지난 12개월 동안 특정 IP 주소에서의 모든 로그인 시도를 검색합니다.* + +- **규정 준수 및 감사 지원:** 대량의 데이터를 영구적으로 다시 인덱싱하지 않고도 감사용으로 아카이브된 고객 또는 청구 로그에 접근합니다.
    + *예시: 세무 조사를 위해 지난 18개월 동안의 청구서 관련 로그(`customer_id:12345`, `service:billing`)를 쿼리합니다.* + +## 전제 조건 {#prerequisites} + +아카이브 검색을 사용하기 전에 + +1. 외부 아카이브(Amazon S3, Azure Storage 또는 Google Cloud Storage)를 구성합니다. [로그 아카이브][3]를 참조하세요. +1. Datadog이 아카이브에서 읽을 수 있는 권한이 있는지 확인합니다. [클라우드별 권한](#cloud-specific-permissions)을 참조하세요. + * **Amazon S3:** IAM 역할 위임 + * **Azure Storage:** *Storage Blob Data Contributor* 역할을 보유한 Azure AD + * **Google Cloud Storage:** *Storage Object Viewer* 역할을 보유한 서비스 계정 + +### 권한 {#permissions} + +**아카이브 검색**을 실행하려면 **`logs_write_historical_views`** 권한이 필요합니다. 이는 **전역** 권한이지만, 사용자는 **Logs Read Archive** 권한이 있는 아카이브에서만 로그를 검색할 수 있습니다. + +아카이브 검색 결과는 아카이브 검색 기능에 접근할 수 있는 조직의 모든 사용자에게 표시됩니다. 그러나 **제한 쿼리**(예: 로그 보안 필터 및 Datadog에서 구성된 데이터 제한)는 결과 페이지에서 계속 시행되어 모든 사용자에게 적용됩니다. 따라서 각 사용자는 조직 전체의 권한 및 필터에 따라 볼 수 있는 로그만 볼 수 있습니다. + +액세스 제어 및 로그 보안에 대한 자세한 내용은 [로그의 RBAC 설정 방법][6]을 참조하세요. + +## 검색 실행 {#launching-a-search} + +1. [{{< ui >}}Logs{{< /ui >}} > {{< ui >}}Archive Search{{< /ui >}} > {{< ui >}}New Search{{< /ui >}}][4]로 이동합니다. +2. 아카이브와 시간 범위를 선택합니다. +3. `user_id:abc123`과 같은 쿼리를 입력합니다. +4. (선택 사항) 검색 이름을 변경합니다. +5. {{< ui >}}Mode{{< /ui >}} 아래에서 원하는 검색 유형을 선택합니다. + - 실시간으로 결과를 조회하려면 {{< ui >}}Search{{< /ui >}}를 선택하세요. 24시간 동안 최대 100,000개의 로그가 보존됩니다. + - 전체 플랫폼 액세스 및 사용자 지정 보존을 위해 결과를 리하이드레이션하려면 {{< ui >}}Search & Rehydration{{< /ui >}}을 선택하세요. +6. {{< ui >}}Search{{< /ui >}}를 클릭합니다. + +로그가 실시간으로 결과 페이지에 스트리밍됩니다. 진행률 표시줄이 스캔 상태를 보여주며, 언제든지 검색을 취소할 수 있습니다. + +## 쿼리 미리보기 {#query-preview} + +검색을 수행하면 Datadog이 선택한 아카이브와 시간 범위에서 작은 샘플(최대 1,000개의 로그)을 다운로드합니다. +이 미리보기를 사용하여 쿼리 구문을 확인하고, 로그 구조를 검사하며, 필터를 조정할 수 있습니다. + +**참고**: 미리보기 샘플에는 쿼리와 일치하는 로그가 포함되지 않을 수 있습니다. 미리보기는 유효성 검사 및 탐색 용도로만 사용됩니다. + +## 결과 조회 및 보존 {#view-and-retain-results} + +기본적으로 스캔에 대해서만 요금이 부과됩니다. 처음 100,000개의 로그는 일시적으로(24시간) 무료로 저장되며, 아카이브 검색 결과 페이지에서 직접 액세스할 수 있습니다. 여기서 로그를 클릭하면 전체 세부정보와 맥락을 볼 수 있습니다. 24시간 후에는 결과가 자동으로 만료됩니다. + +더 많은 데이터 또는 다른 Datadog 제품의 액세스 로그를 보존하려면 다음 중 하나를 선택하세요. + +- **검색 실행 전에 리하이드레이션**: + 100,000개가 넘는 로그를 보존하려면 사용자 지정 보존 기간(예: 7일, 15일 또는 30일)을 설정하고 플랫폼 전반에서 즉시 결과에 액세스하세요. +- **완료 후 리하이드레이션**: + 24시간 동안 결과를 리하이드레이션하여 보존 기간을 연장하고 Log Explorer, Dashboards, 및 Notebooks에서 사용할 수 있도록 합니다. + +## 결과 분석 {#analyze-results} + +검색을 실행한 후에는 로그가 {{< ui >}}Archive Search Results{{< /ui >}} 페이지로 스트리밍됩니다. 이 페이지에서 필터를 사용하여 결과를 좁히고 특정 로그 세부정보를 열어 문제를 조사할 수 있습니다. + +### 제한 사항 {#limitations} + +아카이브 검색 기능은 보관된 로그에 대한 액세스를 제공하지만, 해당 로그는 인덱싱된 로그에 비해 분석 기능이 제한적입니다. + +- **집계 또는 분석 기능 없음**: 아카이브 검색 결과에 대해 집계를 실행하거나, 시각화를 생성하거나, 고급 분석을 수행할 수 없습니다. +- **결과 페이지 전용**: 아카이브 검색 결과는 전용 결과 페이지에서만 사용할 수 있으며 Datadog 플랫폼의 다른 부분(예: Dashboards, Notebooks 또는 Log Explorer)에서 쿼리할 수 없습니다. + +전체 분석 및 플랫폼 전반의 시각화를 활성화하려면 검색 결과를 리하이드레이션해야 합니다(검색 시작 전이나 완료 후 24시간 이내). 리하이드레이션되면 모든 Datadog 제품에서 로그를 전체 집계, 시각화 및 분석 기능과 함께 사용할 수 있습니다. + +## 검색 관리 {#manage-searches} + + + +[{{< ui >}}Archive Search list view{{< /ui >}}][5]에서 다음을 수행할 수 있습니다. + +- **진행 중인 검색 취소**: 이미 검색한 로그를 보존합니다. +- **검색 복제**: 효율적인 재실행을 위해 동일한 파라미터로 아카이브 검색 생성 양식을 엽니다. + +## 검색 성능 및 최적화 {#search-performance-and-optimization} + +아카이브 검색은 선택한 시간 범위 내에서 아카이브된 로그 파일을 스캔합니다. **스캔 볼륨**은 쿼리 중에 읽은 파일의 총 크기를 나타냅니다. 스캔 볼륨이 크면 검색 시간과 클라우드 이그레스 비용이 모두 증가할 수 있습니다. + +성능을 최적화하고 비용을 줄이려면 다음 조치를 취하세요. +* **시간 범위 좁히기:** 가급적 더 작은 기간으로 검색을 제한하세요. +* **스캔 한도 설정:** `Logs Write Archives` 권한이 있는 관리자는 {{< ui >}}Settings{{< /ui >}}의 아카이브당 최대 스캔 크기를 설정할 수 있습니다. +* **파티션 특성 사용(미리보기):** `service`, `env` 또는 `status`와 같이 카디널리티가 낮은 데이터에서 검색을 가속화하는 가장 효과적인 방법입니다. Datadog은 쿼리와 일치하지 않는 전체 파티션을 건너뜁니다. +* **조회 특성 사용(미리보기):** `trace_id` 또는 `user_id`와 같이 카디널리티가 높은 데이터에서 검색을 가속화하는 가장 효과적인 방법입니다. +* **zstd 압축 사용:** 아카이브는 기본적으로 zstd 압축을 사용하여 gzip에 비해 스캔 볼륨과 클라우드 이그레스 비용을 줄입니다. 아카이브가 gzip을 사용하는 경우, zstd로 전환하려면 [로그 아카이브][9]를 참조하세요. + +**참고**: 파티션 또는 조회 특성을 구성한 후에 아카이브된 로그만 가속화된 검색의 혜택을 받습니다. 이 구성 이전에 아카이브된 로그는 영향을 받지 않습니다. + + +### 파티션 특성으로 검색 가속화 {#accelerate-searches-with-partition-attributes} + +쓰기 시점에 카디널리티가 낮은 필드 값으로 로그를 그룹화하기 위해 아카이브에서 **파티션 특성**을 구성할 수 있습니다. `service`, `source`, `env` 또는 `status`와 같은 특성을 사용하세요. + +같은 파티션 값을 공유하는 로그는 스토리지에 함께 위치합니다. 검색할 때 Datadog은 쿼리를 파티션 메타데이터와 비교하고 일치하지 않는 파티션을 건너뛰어 스캔된 총 데이터를 줄입니다. + +이를 설정하려면 [로그 아카이브][8] 설명서를 참조하세요. + +### 조회 특성으로 검색 가속화 {#accelerate-searches-with-lookup-attributes} + +아카이브에서 **조회 특성**을 구성하여 스토리지 버킷에서 관련 없는 데이터 블록을 건너뛸 수 있습니다. 예를 들어, `trace_id` 또는 `user_id`를 구성하면 스캔되는 데이터 양이 크게 줄어들고 클라우드 제공업체의 이그레스 요금이 낮아집니다. + +이를 설정하려면 [로그 아카이브][7] 문서를 참조하세요. + +### 파티션 특성 조회 특성 비교{#partition-vs-lookup-attributes} + +| | 파티션 | 조회 | +|---|---|---| +| 카디널리티 | 낮음(수십에서 수백) | 높음(수백만 개의 값) | +| 일반적인 특성 | `service`, `source`, `env`, `status` | `trace_id`, `container_id`, `user_id`, `transaction_id` | +| 동작 방식| 전체 파티션을 스캔에서 제거 | 개별 로그 항목을 정확히 파악 | +| 적합한 용도| 환경/서비스 기준의 광범위한 필터링 | 특정 식별자에 대한 임시 조사 | + +최상의 검색 성능을 위해 두 특성을 함께 사용하는 것이 좋습니다. 파티션 특성은 검색 범위를 관련 데이터 세그먼트로 좁히고, 조회 특성은 해당 세그먼트 내에서 특정 로그를 즉시 찾을 수 있도록 해줍니다. + +### 결과 리하이드레이션의 기본 한도 {#default-limit-for-rehydration-of-results} + +`Logs Write Archives` 권한이 있는 관리자는 팀 간의 효율적인 {{< ui >}}Archive Search{{< /ui >}} 사용을 보장하기 위해 기본 제어를 구성할 수 있습니다. {{< ui >}}Settings{{< /ui >}}를 클릭해 다음 항목을 구성하세요. + +- {{< ui >}}Default Rehydration volume limit{{< /ui >}}: {{< ui >}}Search & Rehydration{{< /ui >}} 모드에서 아카이브 검색당 리하이드레이션할 수 있는 기본 로그 수(백만 단위)를 정의합니다. 한도에 도달하면 아카이브 검색이 자동으로 중지되지만, 이미 리하이드레이션된 로그는 계속 액세스할 수 있습니다. 관리자는 아카이브 검색 생성 중에는 이 한도가 재정의되도록 허용할 수도 있습니다. + +- {{< ui >}}Rehydration retention periods{{< /ui >}}: 결과를 리하이드레이션할 때 선택 가능한 보존 기간을 선택합니다. Datadog에서 로그의 검색 가능 기간을 선택할 때 선택한 기간(예: 3, 7, 15, 30, 45, 60, 90 또는 180일)만 드롭다운 메뉴에 표시됩니다. + +## 클라우드별 권한 {#cloud-specific-permissions} + +Datadog에서 아카이브의 콘텐츠를 검색하려면 읽기 권한이 필요합니다. 이 권한은 언제든지 변경할 수 있습니다. + +{{< tabs >}} +{{% tab "Amazon S3" %}} + +Datadog은 아카이브에서 로그 이벤트를 리하이드레이션하기 위해 귀하가 [AWS 통합][1]을 위해 구성한 AWS 계정의 IAM 역할을 사용합니다. 아직 해당 역할을 생성하지 않았다면, [다음 단계를 따라 생성][2]하세요. 해당 역할이 아카이브에서 로그 이벤트를 리하이드레이션할 수 있도록, IAM 정책에 다음 권한 설명을 추가하세요. 버킷 이름을 수정한 후, 필요하다면 로그 아카이브가 포함된 경로를 지정합니다. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "DatadogUploadAndRehydrateLogArchives", + "Effect": "Allow", + "Action": ["s3:PutObject", "s3:GetObject"], + "Resource": [ + "arn:aws:s3:::/*", + "arn:aws:s3:::/*" + ] + }, + { + "Sid": "DatadogRehydrateLogArchivesListBucket", + "Effect": "Allow", + "Action": "s3:ListBucket", + "Resource": [ + "arn:aws:s3:::", + "arn:aws:s3:::" + ] + } + ] +} +``` + +### S3 아카이브에 역할 위임 추가 {#adding-role-delegation-to-s3-archives} + +Datadog은 역할 위임을 통해 액세스 권한이 부여된 아카이브에서만 검색을 지원합니다. 위의 IAM 정책을 포함하도록 Datadog IAM 역할을 수정한 후에는 [아카이브 구성 페이지][3]의 각 아카이브에 올바른 AWS 계정 + 역할 조합이 있는지 확인하세요. + +[1]: https://app.datadoghq.com/account/settings#integrations/amazon-web-services +[2]: /ko/integrations/amazon-web-services/#aws-iam-permissions +[3]: https://app.datadoghq.com/logs/pipelines/archives +{{% /tab %}} + +{{% tab "Azure Storage" %}} + +Datadog은 로그 이벤트를 검색하기 위해 아카이브의 스토리지 계정에 범위가 지정된 Storage Blob Data Contributor 역할을 보유한 Azure AD 그룹을 사용합니다. 스토리지 계정의 Access Control(IAM) 페이지에서 [Datadog 통합 앱에 Storage Blob Data Contributor 역할을 할당][1]하여 이 역할을 부여할 수 있습니다. + +[1]: /ko/logs/archives/?tab=azurestorage#create-and-configure-a-storage-bucket +{{% /tab %}} + +{{% tab "Google Cloud Storage" %}} + +Datadog은 아카이브에서 로그 이벤트를 검색하기 위해 Storage Object Viewer 역할을 보유한 서비스 계정을 사용합니다. [Google Cloud IAM 관리 페이지][1]에서 서비스 계정의 권한을 수정하고 다른 역할을 추가한 후 {{< ui >}}Storage{{< /ui >}} > {{< ui >}}Storage Object Viewer{{< /ui >}}를 선택하여 이 역할을 부여할 수 있습니다. + +[1]: https://console.cloud.google.com/iam-admin/iam +{{% /tab %}} +{{< /tabs >}} + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/logs/log_configuration/archives/?tab=awss3 +[2]: /ko/observability_pipelines/destinations/datadog_archives/?tab=docker +[3]: /ko/logs/log_configuration/archives/?tab=awss3 +[4]: https://app.datadoghq.com/logs/archive-search/new +[5]: https://app.datadoghq.com/logs/archive-search/ +[6]: /ko/logs/guide/logs-rbac/?tab=ui#restrict-access-to-logs +[7]: /ko/logs/log_configuration/archives/?tab=awss3#archive-search-lookup-attribute +[8]: /ko/logs/log_configuration/archives/?tab=awss3#archive-search-partition-attribute +[9]: /ko/logs/log_configuration/archives/?tab=awss3#compression \ No newline at end of file diff --git a/content/ko/logs/log_configuration/archives.md b/content/ko/logs/log_configuration/archives.md index 1c70cad90e0..b3710716bd5 100644 --- a/content/ko/logs/log_configuration/archives.md +++ b/content/ko/logs/log_configuration/archives.md @@ -13,48 +13,53 @@ further_reading: text: Datadog에 보관된 로그 콘텐츠에 액세스하는 방법 알아보기 - link: /logs/explorer/ tag: 설명서 - text: 로그 탐색기에 대해 알아보기 + text: Log Explorer에 대해 알아보기 - link: /logs/logging_without_limits/ tag: 설명서 text: Logging without Limits*에 대해 알아보기 title: 로그 아카이브 --- +## 개요 {#overview} -## 개요 +Datadog 계정을 구성하여 [인덱싱][1] 여부와 관계없이 수집된 모든 로그를 사용자가 소유한 클라우드 스토리지 시스템으로 전달할 수 있습니다. [Rehydration][2] 또는 [Archive Search][16]를 사용하면, 스토리지에 최적화된 아카이브에 로그를 장기간 보관하여 규정 준수 요구 사항을 충족하는 동시에 필요 시 조사를 위한 감사 가능성도 유지할 수 있습니다. -[인덱싱][1] 여부에 관계없이 수집된 모든 로그를 자체 클라우드 스토리지 시스템에 전달하도록 Datadog 계정을 설정하세요. [Rehydration][2]을 사용하면 스토리지에 최적화된 아카이브에 로그를 장기간 보관하고 컴플라이언스 요구 사항을 충족하는 동시에 임시 조사에 대한 감사 기능을 유지할 수 있습니다. +{{< img src="/logs/archives/log_forwarding_archives_122024.png" alt="Log Forwardin 페이지의 Archives 탭" style="width:100%;">}} -{{< img src="/logs/archives/log_forwarding_archives_122024.png" alt="Log Forwarding 페이지의 Archives 탭" style="width:100%;" >}} +수집된 로그를 사용자가 소유한 클라우드 스토리지 버킷으로 전달하기 위한 아카이브를 설정하려면 [**Log Archiving & Forwarding** 페이지][3]로 이동합니다. -[**Log Forwarding** 페이지][13]로 이동하여 수집된 로그를 자체 클라우드 호스팅 스토리지 버킷에 전달하기 위한 아카이브를 설정하세요. - -1. 아직 설정하지 않았다면 클라우드 공급자에 대한 Datadog [통합](#set-up-an-integration)을 설정하세요. -2. 스토리지 버킷을 생성합니다(#create-a-storage-bucket). +1. 아직 설정하지 않았다면 클라우드 공급자에 대한 Datadog [통합](#set-up-an-integration)을 설정합니다. +2. [스토리지 버킷](#create-a-storage-bucket)을 생성합니다. 3. 해당 아카이브에 대해 `read` 및/또는 `write` [권한](#set-permissions)을 설정합니다. -4. 해당 아카이브에서 또는 해당 아카이브로 [로그를 라우팅](#route-your-logs-to-a-bucket)합니다. -5. 암호화, 스토리지 클래스, 태그 등 [고급 설정](#advanced-settings)을 구성합니다. -6. 설정을 [검증](#validation)하고 Datadog이 감지할 수 있는 잘못된 설정이 있는지 확인합니다. +4. [로그를 해당 아카이브로 라우팅](#route-your-logs-to-a-bucket)하고 필요 시 다시 가져오도록 구성합니다. +5. 암호화, 스토리지 클래스 및 태그와 같은 [고급 설정](#advanced-settings)을 구성합니다. +설정을 6. [검증](#validation)하고 Datadog이 감지할 수 있는 구성 오류가 있는지 확인합니다. 로그를 내 환경에서 스토리지 최적화된 아카이브에 라우팅하려면 [Observability Pipelines로 로그를 아카이브][4]하는 방법을 알아보세요. -## 아카이브 설정하기 +다음 메트릭은 재시도 후 성공적으로 전송된 로그를 포함하여 성공적으로 아카이브된 로그를 보고합니다. + +- datadog.archives.logs.bytes +- datadog.archives.logs.count + -### 통합 설정하기 +## 아카이브 구성하기 {#configure-an-archive} + +### 통합 설정하기 {#set-up-an-integration} {{< tabs >}} {{% tab "AWS S3" %}} 아직 설정하지 않은 경우 S3 버킷을 보유한 AWS 계정에 대해 [AWS 통합][1]을 설정합니다. - * 일반적인 경우 Datadog이 AWS S3와의 통합에 사용할 수 있는 역할 생성이 포함됩니다. - * AWS China 계정인 경우 역할 위임 대신 액세스 키를 사용하세요. + * 일반적으로 Datadog이 AWS S3와 통합할 수 있도록 Datadog이 사용할 IAM 역할을 생성해야 합니다. + * AWS China 계정의 경우 역할 위임 대신 액세스 키를 사용할 수 있습니다. [1]: /ko/integrations/amazon_web_services/?tab=automaticcloudformation#setup {{% /tab %}} {{% tab "Azure Storage" %}} -아직 설정하지 않은 경우 새 스토리지 계정이 포함된 구독 내에서 [Azure 통합][1]을 설정하세요. 여기에는 통합하기 위해 [Datadog이 사용할 수 있는 앱 등록 생성][2]이 포함됩니다. +아직 설정하지 않았다면 새 스토리지 계정이 포함된 구독에서 [Azure 통합][1]을 설정합니다. 이 과정에는 [Datadog이 통합에 사용할 수 있는 앱 등록을 생성][2]하는 작업이 포함됩니다. -**참고:** Azure ChinaCloud, GermanyCloud 및 GovCloud에 대한 아카이빙은 지원되지 않습니다. +**참고:** Azure ChinaCloud 및 Azure GermanyCloud로의 아카이브는 지원되지 않습니다. Azure GovCloud로의 아카이브는 현재 미리보기로 지원됩니다. 액세스를 요청하려면 Datadog 지원팀에 문의하세요. [1]: https://app.datadoghq.com/account/settings#integrations/azure [2]: /ko/integrations/azure/?tab=azurecliv20#integrating-through-the-azure-portal @@ -62,32 +67,32 @@ title: 로그 아카이브 {{% tab "Google Cloud Storage" %}} -아직 설정하지 않았다면 GCS 스토리지 버킷을 보유하는 프로젝트에 대해 [Google Cloud 통합][1]을 설정하세요. 여기에는 통합을 위해 [Datadog이 사용할 수 있는 Google Cloud 서비스 계정 생성][2]이 포함됩니다. +아직 설정하지 않았다면 GCS 스토리지 버킷이 포함된 프로젝트에 대해 [Google Cloud 통합][1]을 설정합니다. 이 과정에는 [Datadog이 통합에 사용할 수 있는 Google Cloud 서비스 계정을 생성][2]하는 작업이 포함됩니다. [1]: https://app.datadoghq.com/account/settings#integrations/google-cloud-platform [2]: /ko/integrations/google_cloud_platform/?tab=datadogussite#setup {{% /tab %}} {{< /tabs >}} -### 스토리지 버킷 생성하기 +### 스토리지 버킷 생성하기 {#create-a-storage-bucket} -{{< site-region region="gov" >}} -
    아카이브로 로그를 보내는 것은 Datadog GovCloud 환경 외부에서 일어나며, 이는 Datadog의 통제를 벗어나는 것입니다. Datadog은 FedRAMP, DoD 영향 수준, ITAR, 수출 규정 준수, 데이터 보존 또는 해당 로그에 적용되는 유사 규정과 관련해 사용자가 가질 의무 또는 요구 사항을 포함하되 이에 국한되지 않는 Datadog GovCloud 환경을 떠난 모든 로그에 대해 책임을 지지 않습니다.
    +{{< site-region region="gov,gov2" >}} +
    로그를 아카이브로 전송하는 작업은 Datadog GovCloud 환경 외부에서 이루어지며, 이는 Datadog의 통제 범위를 벗어납니다. Datadog은 Datadog GovCloud 환경을 벗어난 로그에 대해 책임을 지지 않으며, 여기에는 FedRAMP, DoD Impact Level, ITAR, 수출 규정 준수, 데이터 레지던시 또는 해당 로그에 적용되는 유사 규정과 관련하여 사용자가 부담할 수 있는 의무나 요구 사항이 포함되지만 이에 국한되지 않습니다.
    {{< /site-region >}} {{< tabs >}} {{% tab "AWS S3" %}} -[AWS 콘솔][1]에서 [S3 버킷을 생성하여][2] 아카이브를 보냅니다. +[AWS 콘솔][1]로 이동하여 아카이브를 저장할 [S3 버킷을 생성][2]합니다. -{{< site-region region="gov" >}} -
    가상 호스트 스타일 주소를 이용하는 S3 FIPS 엔드포인트와 통합되어 있을 경우 Datadog Archives에서 점(.)이 있는 버킷 이름을 지원하지 않습니다. 자세한 내용은 AWS 설명서를 참고하세요.AWS FIPSAWS Virtual Hosting.
    +{{< site-region region="gov,gov2" >}} +
    Datadog 아카이브는 가상 호스트 방식 주소 지정을 사용하는 S3 FIPS 엔드포인트와 통합할 때 점(.)이 포함된 버킷 이름을 지원하지 않습니다. AWS 설명서에서 자세히 알아보세요. AWS FIPSAWS Virtual Hosting.
    {{< /site-region >}} -**참조**: +**참고:** -- 버킷을 공개적으로 읽을 수 있도록 설정하지 마세요. -- [US1, ​​US3, US5 사이트][3]의 경우 리전 간 데이터 전송 요금과 클라우드 스토리지 비용에 미치는 영향을 확인하려면 [AWS 가격][4]을 참고하세요. 리전 간 데이터 전송 요금을 관리하려면 `us-east-1`에서 스토리지 버킷을 생성하는 것이 좋습니다. +- 버킷을 공개적으로 읽을 수 있는 상태로 설정하지 마세요. +- [US1, US3, US5 사이트][3]의 경우, 리전 간 데이터 전송 요금 및 클라우드 스토리지 비용 영향에 대해서는 [AWS Pricing][4]을 참조하세요. 리전 간 데이터 전송 비용을 관리하려면 스토리지 버킷을 `us-east-1`에 생성하는 것을 고려하세요. [1]: https://s3.console.aws.amazon.com/s3 [2]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html @@ -97,10 +102,10 @@ title: 로그 아카이브 {{% tab "Azure Storage" %}} -* [Azure Portal][1]에서 [스토리지 계정을 생성하여][2] 아카이브를 보냅니다. 스토리지 계정에 이름을 지정하고 표준 성능 또는 **Block blobs** 프리미엄 계정 유형을 선택한 다음 **hot** 또는 **cool** 액세스 계층을 선택합니다. -* 해당 스토리지 계정에 **컨테이너** 서비스를 만듭니다. Datadog Archive 페이지에 추가해야 하므로 컨테이너 이름을 기록해 두세요. +* [Azure Portal][1]로 이동하여 아카이브를 저장할 [스토리지 계정을 생성][2]합니다. 스토리지 계정 이름을 지정하고, 표준 성능 또는 **Block blobs** 프리미엄 계정 유형을 선택한 후, **hot** 또는 **cool** 액세스 계층을 선택합니다. +* 해당 스토리지 계정 내에 **컨테이너** 서비스를 생성합니다. 컨테이너 이름은 나중에 Datadog Archive 페이지에 입력해야 하므로 기록해 두세요. -**참고:** 드물게 발생하지만 (일반적으로 시간 초과) 마지막 데이터를 다시 작성해야 할 수 있으므로 [변경이 불가한 정책][3]을 설정하지 마세요. +**참고:** 드물게(일반적으로 시간 초과 발생 시) 마지막 데이터를 다시 기록해야 하는 경우가 있으므로 [불변성 정책][3]은 설정하지 마세요. [1]: https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Storage%2FStorageAccounts [2]: https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal @@ -109,9 +114,9 @@ title: 로그 아카이브 {{% tab "Google Cloud Storage" %}} -[Google Cloud 계정][1]에서 [GCS 버킷을 생성하여][2] 아카이브를 보내세요. **Choose how to control access to objects**에서 **Set object-level and bucket-level permissions**를 선택합니다. +[Google Cloud 계정][1]으로 이동하여 아카이브를 저장할 [GCS 버킷을 생성][2]합니다. **객체 액세스 제어 방법 선택**에서 **객체 수준 및 버킷 수준 권한 설정**을 선택합니다. -**참고:** 드물게 발생하지만 (일반적으로 시간 초과) 마지막 데이터를 다시 작성해야 할 수 있으므로 [보존 정책][3]을 추가하지 마세요. +**참고:** 드물게(일반적으로 시간 초과 발생 시) 마지막 데이터를 다시 기록해야 하는 경우가 있으므로 [보존 정책][3]은 추가하지 마세요. [1]: https://console.cloud.google.com/storage [2]: https://cloud.google.com/storage/docs/quickstart-console @@ -119,14 +124,14 @@ title: 로그 아카이브 {{% /tab %}} {{< /tabs >}} -### 권한 설정 +### 권한 설정 {#set-permissions} -[`logs_write_archive` 권한][5]이 있는 Datadog 사용자만 로그 아카이브 설정을 생성, 수정, 또는 삭제할 수 있습니다. +[`logs_write_archive` 권한][5]이 있는 Datadog 사용자만 로그 아카이브 구성을 생성, 수정 또는 삭제할 수 있습니다. {{< tabs >}} {{% tab "AWS S3" %}} -1. 다음 권한 설명을 사용하여 [정책 만들기][1]: +1. 다음 권한 명령문을 포함하는 [정책을 생성][1]합니다. ```json { @@ -153,17 +158,17 @@ title: 로그 아카이브 ] } ``` - * `GetObject` 및 `ListBucket` 권한은 [아카이브에서의 리하이드레이션][2]을 허용합니다. - * `PutObject` 권한으로 아카이브를 업로드할 수 있습니다. - * 이러한 권한은 버킷 내의 개체에 적용되므로 `s3:PutObject` 및 `s3:GetObject` 작업 아래의 리소스 값이 `/*`로 끝나는지 확인하세요. + * The `GetObject` and `ListBucket` permissions allow for [rehydrating from archives][2]. + * The `PutObject` permission is sufficient for uploading archives. + * Ensure that the resource value under the `s3:PutObject` and `s3:GetObject` actions ends with `/*` because these permissions are applied to objects within the buckets. -2. 버킷 이름을 편집합니다. -3. (선택 사항) 로그 아카이브가 포함된 경로를 지정합니다. -4. Datadog 통합 역할에 새 정책을 연결합니다. +2. 버킷 이름을 수정합니다. +3. 원할 경우 로그 아카이브가 포함된 경로를 지정합니다. +4. 새 정책을 Datadog 통합 역할에 연결합니다. * AWS IAM 콘솔에서 **Roles**로 이동합니다. - * Datadog 통합에서 사용되는 역할을 찾습니다. 기본적으로 이름은 **DatadogIntegrationRole**이지만 조직에서 이름을 바꾼 경우 이름이 달라질 수 있습니다. 역할 이름을 클릭하면 역할 요약 페이지가 열립니다. - * **Add permissions**를 클릭한 후 **Attach policies**를 클릭합니다. - * 위에 생성된 정책의 이름을 입력합니다. + * Datadog 통합에 사용되는 역할을 찾습니다. 기본 이름은 **DatadogIntegrationRole**이지만 조직에서 이름을 변경한 경우 다를 수 있습니다. 역할 이름을 클릭하여 역할 요약 페이지를 엽니다. + * **Add permissions**를 클릭한 다음 **Attach policies**를 클릭합니다. + * 위에서 생성한 정책 이름을 입력합니다. * **Attach policies**를 클릭합니다. @@ -172,9 +177,9 @@ title: 로그 아카이브 {{% /tab %}} {{% tab "Azure Storage" %}} -1. 스토리지 계정에 대한 쓰기 및 리하이드레이션 권한을 Datadog 앱에 부여하세요. +1. Datadog 앱에 스토리지 계정에 대한 쓰기 및 리하이드레이션(Rehydration) 권한을 부여합니다. 2. [Storage Accounts 페이지][1]에서 스토리지 계정을 선택한 후 **Access Control (IAM)**로 이동하여 **Add -> Add Role Assignment**를 선택합니다. -3. **Storage Blob Data Contributor**라는 역할을 입력하고 Azure와 통합하기 위해 만든 Datadog 앱을 선택한 후 저장합니다. +3. **Storage Blob Data Contributor** 역할을 선택하고, Azure 통합을 위해 생성한 Datadog 애플리케이션을 선택한 후 저장합니다. {{< img src="logs/archives/logs_azure_archive_permissions.png" alt="Datadog 앱에 Storage Blob Data Contributor 역할을 추가합니다." style="width:75%;">}} @@ -182,54 +187,89 @@ title: 로그 아카이브 {{% /tab %}} {{% tab "Google Cloud Storage" %}} -1. Datadog Google Cloud 서비스 계정에 아카이브를 버킷에 쓸 수 있는 권한을 부여하세요. +1. Datadog Google Cloud 서비스 계정에 아카이브를 버킷에 기록할 수 있는 권한을 부여합니다. 2. [Google Cloud IAM Admin 페이지][1]에서 Datadog Google Cloud 서비스 계정 주체를 선택하고 **Edit principal**을 선택합니다. -3. **ADD ANOTHER ROLE**을 클릭한 후 **Storage Object Admin** 역할을 선택하고 저장합니다. +3. ADD ANOTHER ROLE****을 클릭한 후 **Storage Object Admin** 역할을 선택하고 저장합니다. + + {{< img src="logs/archives/gcp_role_storage_object_admin-2.png" alt="Datadog Google Cloud 서비스 계정에 Storage Object Admin 역할을 추가합니다." style="width:75%;">}} + +**Storage Object Admin** 역할은 Datadog에서 권장하는 구성입니다. 조직에서 최소 권한 원칙에 따른 사용자 지정 역할을 요구하는 경우 아카이브 업로드를 위해 다음 개별 권한이 필요합니다. -{{< img src="logs/archives/gcp_role_storage_object_admin-2.png" alt="Datadog Google Cloud 서비스 계정에 Storage Object Admin역할을 추가합니다." style="width:75%;" >}} +- `storage.objects.create` +- `storage.objects.get` +- `storage.objects.list` +- `storage.objects.delete` + +`storage.objects.delete` 권한은 Datadog이 버킷 내 기존 객체를 덮어쓰는 아카이브 쓰기 재시도를 지원하기 위해 필요합니다. 다중 파트 업로드 권한(`storage.multipartUploads.*`)은 필요하지 않습니다. [1]: https://console.cloud.google.com/iam-admin/iam {{% /tab %}} {{< /tabs >}} -### 로그를 버킷으로 라우팅하기 +### 로그를 버킷으로 라우팅하기 {#route-your-logs-to-a-bucket} -[Log Forwarding 페이지][6]로 이동하여 **Archives**탭에서 **Add a new archive**를 선택합니다. +[Log Archiving & Forwarding 페이지][6]로 이동하여 **Archives** 탭에서 **Add a new archive**를 선택합니다. -**참조**: -* [`logs_write_archive` 권한][5]이 있는 Datadog 사용자만 이 단계와 다음 단계를 완료할 수 있습니다. -* Azure Blob Storage에 로그를 보관하려면 앱 등록이 필요합니다. [Azure 통합 페이지][7] 지침을 참조하고 설명서 페이지 오른쪽에 있는 "사이트"를 "US"로 설정하세요. 보관 목적으로 생성된 앱 등록에는 "Storage Blob Data Contributor" 역할만 필요합니다. 스토리지 버킷이 Datadog 리소스를 통해 모니터링되는 구독에 있는 경우 앱 등록이 중복된다는 경고가 표시됩니다. 이 경고는 무시해도 됩니다. -* 버킷이 네트워크 액세스를 지정된 IP로 제한하는 경우{{< region-param key="ip_ranges_url" link="true" text="IP 범위 목록">}}의 웹훅 IP를 허용 목록에 추가하세요. -* **US1-FED 사이트**의 경우, Datadog GovCloud 환경 외 대상에도 로그를 전송하도록 Datadog를 구성할 수 있습니다. Datadog에서는 Datadog GovCloud 환경에서 로그를 전송된 후에는 로그에 관해 책임을 지지 않습니다. 또한 GovCloud 환경을 벗어난 이후에는 FedRAMP, DoD Impact Levels, ITAR, 내보내기 규정, 데이터 상주 등 로그에 적용할 수 있는 유사 규정과 관련한 조건과 의무 사항에 관해 책임을 지지 않습니다. +**참고:** +* 이 단계와 다음 단계를 완료하려면 [`logs_write_archive` 권한][5]이 있는 Datadog 사용자여야 합니다. +* Azure Blob Storage에 로그를 아카이브하려면 앱 등록이 필요합니다. [Azure 통합 페이지][7]의 지침을 참조하고, 설명서 페이지 오른쪽의 "site"를 "US"로 설정하세요. 아카이브 전용으로 생성된 앱 등록에는 "Storage Blob Data Contributor" 역할만 필요합니다. 스토리지 버킷이 Datadog Resource를 통해 모니터링되는 구독에 있는 경우 앱 등록이 중복된다는 경고가 표시될 수 있습니다. 이 경고는 무시해도 됩니다. +* 버킷이 특정 IP에 대해서만 네트워크 액세스를 허용하도록 제한되어 있는 경우, 허용 목록에 {{< region-param key="ip_ranges_url" link="true" text="IP ranges list">}} 의 웹훅 IP를 추가해야 합니다. +* **US1-FED 및 US2-FED 사이트**에서는 Datadog이 Datadog GovCloud 환경 외부의 대상에 로그를 전송하도록 구성할 수 있습니다. Datadog은 GovCloud 환경을 벗어난 로그에 대해 책임을 지지 않습니다. 또한 로그가 GovCloud 환경을 벗어난 이후 적용될 수 있는 FedRAMP, DoD Impact Level, ITAR, 수출 규정 준수, 데이터 레지던시 또는 유사한 규정과 관련하여 사용자가 부담할 수 있는 어떠한 의무나 요구 사항에 대해서도 Datadog은 책임을 지지 않습니다. | 서비스 | 단계 | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Amazon S3** | - S3 버킷에 맞는 AWS 계정과 역할 조합을 선택합니다.
    - 버킷 이름을 입력합니다.
    **(선택 사항)**: 로그 아카이브에 있는 모든 내용에 적용할 접두사 디렉터리를 입력합니다. | -| **Azure Storage** | - **Azure Storage** 아카이브 유형을 선택하고 Datadog App의 Azure 테넌트와 클라이언트를 선택합니다. 스토리지 계정에 Storage Blob Data Contributor 역할이 있는 것을 선택해야 합니다.
    - 아카이브의 스토리지 계정 이름과 컨테이너 이름을 입력합니다.
    **(선택 사항)**: 로그 아카이브의 모든 내용에 적용할 접두사 디렉터리를 입력합니다. | -| **Google Cloud Storage** | - **Google Cloud Storage** 아카이브 유형을 선택하고, 스토리지 버킷에 쓸 권한이 있는 GCS Service Account를 선택합니다.
    - 버킷 이름을 입력합니다.
    **(선택 사항)**: 로그 아카이브의 모든 내용에 적용할 접두사 디렉터리를 입력합니다. | +| **Amazon S3** | - S3 버킷에 맞는 AWS 계정과 역할 조합을 선택합니다.
    - 버킷 이름을 입력합니다.
    **선택 사항**: 로그 아카이브 콘텐츠 전체에 대한 접두사 디렉터리를 입력합니다. | +| **Azure Storage** | - **Azure Storage** 아카이브 유형을 선택하고, 스토리지 계정에 대해 Storage Blob Data Contributor 역할이 부여된 Datadog 애플리케이션의 Azure 테넌트 및 클라이언트를 선택합니다.
    - 스토리지 계정 이름과 아카이브용 컨테이너 이름을 입력합니다.
    **선택 사항**: 로그 아카이브 콘텐츠 전체에 대한 접두사 디렉터리를 입력합니다. | +| **Google Cloud Storage** | - **Google Cloud Storage** 아카이브 유형을 선택하고, 스토리지 버킷에 대한 쓰기 권한이 있는 GCS 서비스 계정을 선택합니다.
    - 버킷 이름을 입력합니다.
    **선택 사항**: 로그 아카이브 콘텐츠 전체에 대한 접두사 디렉터리를 입력합니다. | -### 고급 설정 +### 고급 설정 {#advanced-settings} -{{< img src="/logs/archives/log_archives_advanced_settings.png" alt="선택 사항으로 태그를 추가하고 최대 스캔 규모를 정의하는 고급 설정" style="width:100%;" >}} +{{< img src="/logs/archives/log_archives_advanced_settings.png" alt="선택적 태그를 추가하고 최대 스캔 크기를 정의하는 고급 설정" style="width:100%;" >}} -#### Datadog 태그 +#### Datadog 태그 {#datadog-tags} -(선택 사항) 추가 설정을 통해 다음을 수행합니다. +다음 작업을 위해 이 선택적 구성 단계를 사용합니다. -* 아카이브에 모든 로그 태그를 포함합니다(모든 새 아카이브에서 기본적으로 활성화됨). **참고**: 이렇게 하면 결과 아카이브의 크기가 늘어납니다. +* 모든 로그 태그를 아카이브에 포함합니다(모든 새 아카이브에서 기본적으로 활성화됨). **참고**: 이 옵션을 활성화하면 생성되는 아카이브의 크기가 증가합니다. * 제한 쿼리 정책에 따라 리하이드레이션된 로그에 태그를 추가합니다. [`logs_read_data`][13] 권한을 참조하세요. -#### 최대 스캔 크기 정의하기 +#### 최대 스캔 크기 정의하기 {#define-maximum-scan-size} + +이 선택적 구성 단계를 사용하여 로그 아카이브에서 리하이드레이션 시 스캔할 수 있는 로그 데이터의 최대 용량(GB)을 정의합니다. + +최대 스캔 크기가 정의된 아카이브의 경우 모든 사용자는 리하이드레이션을 시작하기 전에 먼저 스캔 크기를 추정해야 합니다. 추정된 스캔 크기가 해당 아카이브에서 허용된 값을 초과하는 경우 사용자는 리하이드레이션 요청 시간 범위를 줄여야 합니다. 시간 범위를 줄이면 스캔 크기가 감소하여 리하이드레이션을 시작할 수 있습니다. + +#### 아카이브 파티션 속성(미리보기) {#archive-search-partition-attribute} + +아카이브된 로그가 스토리지에 물리적으로 저장되는 방식을 최적화하고 [Archive Search][16]를 가속화하려면 Datadog 아카이브에서 파티션 속성을 구성하세요. + +* **파티션 속성**: `service`, `source`, `env` 또는 `status`와 같이 자주 검색 필터로 사용하는 낮은 카디널리티 속성을 추가합니다. +* **이점**: 동일한 파티션 속성 값을 가진 로그가 스토리지 내에 함께 저장됩니다. 검색할 때 Datadog은 쿼리와 맞지 않는 전체 파티션을 건너뛸 수 있으므로 스캔해야 하는 데이터 양을 크게 줄일 수 있습니다. -(선택 사항) 이 설정 단계를 사용하여 로그 아카이브에서 Rehydration을 위해 스캔할 수 있는 로그 데이터의 최대 볼륨(GB)을 정의할 수 있습니다. +#### 아카이브 조회 속성 {#archive-lookup-attribute} -최대 스캔 크기가 정의된 아카이브의 경우 모든 사용자는 Rehydration을 시작하기 전에 스캔 크기를 추정해야 합니다. 예상 스캔 크기가 해당 아카이브에 허용된 크기보다 큰 경우 사용자는 Rehydration을 요청하는 시간 범위를 줄여야 합니다. 시간 범위를 줄이면 스캔 크기가 줄어들고 사용자가 Rehydration을 시작할 수 있습니다. +[Archive Search][16]를 사용한 아카이브 검색 및 조사 속도를 높이려면 Datadog 아카이브에서 조회 속성을 구성하세요. + +* **조회 속성**: `trace_id`, `container_id` 또는 `customer_id`와 같은 높은 카디널리티 속성을 추가합니다. +* **이점**: 장기 보관 스토리지 내의 특정 로그를 훨씬 빠르게 찾을 수 있어, 임시 조사 시 검색 시간과 스캔 데이터 양을 줄일 수 있습니다. + +**파티션 속성과 조회 속성 비교** + +| | 파티션 | 조회 | +|---|---|---| +| **카디널리티** | 낮음(수십에서 수백 개의 값) | 높음(수백만 개의 값) | +| **일반적인 속성** | `service`, `source`, `env`, `status` | `trace_id`, `container_id`, `user_id`, `transaction_id` | +| **동작 방식** | 전체 파티션을 검색 대상에서 제외 | 아카이브 내 개별 로그 항목을 직접 찾음 | +| **적합한 용도** | 환경 또는 서비스 단위의 광범위한 필터링 | 특정 식별자를 사용한 임시 조사 | + +최상의 검색 성능을 위해 두 기능을 함께 사용하는 것이 좋습니다. 파티션 속성은 검색 범위를 관련 데이터 세그먼트로 좁히고, 조회 속성은 해당 세그먼트 내에서 특정 로그를 즉시 찾을 수 있도록 해줍니다. {{< site-region region="us3" >}} -#### 방화벽 규칙 + +#### 방화벽 규칙 {#firewall-rules} {{< tabs >}} -{{% tab "Azure storage" %}} +{{% tab "Azure Storage" %}} 방화벽 규칙은 지원되지 않습니다. @@ -237,12 +277,25 @@ title: 로그 아카이브 {{< /tabs >}} {{< /site-region >}} -#### 스토리지 클래스 + +#### 압축 {#compression} + +기본적으로 Datadog은 gzip보다 더 높은 압축률과 더 빠른 압축 해제 속도를 제공하는 **zstd**(Zstandard) 압축(`.json.zst`)을 사용하여 로그를 아카이브합니다. 또한 **gzip** 압축(`.json.gz`)도 구성할 수 있습니다. + + +압축을 구성하려면 [Log Archiving & Forwarding 페이지][6]에서 아카이브를 생성하거나 편집할 때 **Compression Type**을 선택합니다. + +- **zstd**(기본값): 더 높은 압축률과 더 빠른 압축 해제 속도를 제공합니다. 특히 [Archive Search][16]를 사용할 계획이라면 신규 아카이브에 권장됩니다. +- **gzip**: 널리 지원되며 대부분의 도구와 호환됩니다. + +**참고**: 기존 아카이브의 압축 형식을 변경하더라도 새로 생성되는 아카이브 파일에만 적용됩니다. 이미 버킷에 저장된 파일은 기존 형식을 유지합니다. + +#### 스토리지 클래스 {#storage-class} {{< tabs >}} {{% tab "AWS S3" %}} -[S3 버킷에 수명 주기를 설정][1]하여 로그 아카이브를 최적의 스토리지 클래스로 자동 전환할 수 있습니다. +아카이브에 사용할 스토리지 클래스를 직접 선택하거나 [S3 버킷에 수명 주기 구성을 설정][1]하여 로그 아카이브를 최적의 스토리지 클래스로 자동 전환할 수 있습니다. [Rehydration][2]은 다음 스토리지 클래스만 지원합니다. @@ -250,7 +303,7 @@ title: 로그 아카이브 * S3 Standard-IA * S3 One Zone-IA * S3 Glacier Instant Retrieval -* S3 인텔리전트 계층화([선택 사항인 비동기식 아카이브 액세스 계층][3]이 모두 비활성화되었을 경우만) +* S3 Intelligent-Tiering([선택 사항인 비동기식 아카이브 액세스 계층][3]이 모두 비활성화된 경우에만 지원) 다른 스토리지 클래스의 아카이브에서 리하이드레이션하려면 먼저 해당 아카이브를 위의 지원되는 스토리지 클래스 중 하나로 이동해야 합니다. @@ -262,36 +315,63 @@ title: 로그 아카이브 Archiving 및 [Rehydration][1]은 다음 액세스 계층만 지원합니다. -- 핫 액세스 계층 -- 쿨 액세스 계층 +- Hot 액세스 계층 +- Cool 액세스 계층 다른 액세스 계층의 아카이브에서 리하이드레이션하려면 먼저 해당 아카이브를 위의 지원되는 계층 중 하나로 이동해야 합니다. [1]: /ko/logs/archives/rehydrating/ {{% /tab %}} +{{% tab "Google Cloud Storage" %}} + +Archiving 및 [Rehydration][1]은 다음 액세스 계층을 지원합니다. + +- Standard +- Nearline +- Coldline +- Archive + +[1]: /ko/logs/archives/rehydrating/ +{{% /tab %}} + {{< /tabs >}} -#### 서버 측 암호화 (SSE) +#### S3 아카이브에 대한 서버 측 암호화(SSE) {#server-side-encryption-sse-for-s3-archives} -{{< tabs >}} -{{% tab "AWS S3" %}} +Datadog에서 S3 아카이브를 생성하거나 업데이트할 때 **고급 암호화**를 선택적으로 구성할 수 있습니다. **Encryption Type** 드롭다운에서 다음 세 가지 옵션을 사용할 수 있습니다. + +- **Default S3 Bucket-Level Encryption**(기본값): Datadog은 S3 버킷의 기본 암호화 설정을 재정의하지 않습니다. +- **Amazon S3 managed keys**: S3 버킷의 기본 암호화와 관계없이 Amazon S3 관리형 키([SSE-S3][17])를 사용한 서버 측 암호화를 강제로 적용합니다. +- **AWS Key Management Service**: S3 버킷의 기본 암호화와 관계없이 [AWS KMS][18]의 고객 관리형 키(CMK)를 사용한 서버 측 암호화를 강제로 적용합니다. 이 옵션을 사용하려면 CMK ARN을 제공해야 합니다. -##### SSE-S3 +{{< tabs >}} +{{% tab "Default S3 Bucket-Level Encryption" %}} -Amazon S3 버킷의 기본 암호화는 Amazon S3 관리 키([SSE-S3][1])를 사용한 서버 측 암호화입니다. +이 옵션을 선택하면 Datadog은 업로드 요청에 암호화 헤더를 지정하지 않습니다. 대신 S3 버킷의 기본 암호화 설정이 적용됩니다. -S3 버킷이 SSE-S3으로 암호화되었는지 확인하려면 다음을 수행하세요. +S3 버킷의 암호화 구성을 설정하거나 확인하려면 다음 단계를 따릅니다. 1. S3 버킷으로 이동합니다. -1. **Properties** 탭을 클릭합니다. -1. **Default Encryption** 섹션에서, **Encryption key type**이 **Amazon S3 managed keys (SSE-S3)**인지 확인합니다. +2. **Properties** 탭을 클릭합니다. +3. **Default Encryption** 섹션에서 암호화 유형을 구성하거나 확인합니다. 암호화에 [AWS KMS][1]를 사용하는 경우, 유효한 CMK와 해당 CMK에 연결된 CMK 정책이 있는지 확인하세요. -##### SSE-KMS +[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -또는 Datadog은 [AWS KMS][2]의 CMK를 사용한 서버 측 암호화를 지원합니다. 활성화하려면 다음 단계를 수행하세요. +{{% /tab %}} +{{% tab "Amazon S3 managed keys" %}} + +이 옵션은 모든 아카이브 객체가 Amazon S3 관리형 키를 사용하는 [SSE-S3][1] 방식으로 업로드되도록 보장합니다. 이 설정은 S3 버킷의 기본 암호화 설정을 재정의합니다. + +[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html +{{% /tab %}} +{{% tab "AWS Key Management Service" %}} + +이 옵션은 모든 아카이브 객체가 [AWS KMS][1]의 고객 관리형 키(CMK)를 사용하여 업로드되도록 보장합니다. 이 설정은 S3 버킷의 기본 암호화 설정을 재정의합니다. + +이 암호화 유형을 구성하려면 먼저 유효한 CMK 및 CMK 정책을 생성하는 다음 단계를 완료한 후 CMK ARN을 제공해야 합니다. 1. CMK를 생성합니다. -2. 다음 콘텐츠로 CMK 정책을 CMK에 연결하고 AWS 계정 번호와 Datadog IAM 역할 이름을 적절하게 바꿉니다. +2. AWS 계정 번호와 Datadog IAM 역할 이름을 적절히 대체하여 다음 내용으로 CMK 정책을 CMK에 연결합니다. ``` { @@ -344,65 +424,45 @@ S3 버킷이 SSE-S3으로 암호화되었는지 확인하려면 다음을 수행 } ``` -3. S3 버킷에서 **Properties** 탭으로 이동하여 **Default Encryption**을 선택합니다. "AWS-KMS" 옵션을 선택하고, CMK ARN을 선택한 후 저장합니다. +3. Datadog에서 **Encryption Type**으로 **AWS Key Management Service**를 선택한 후 AWS KMS 키 ARN을 입력합니다. -기존 KMS 키를 변경하려면 [Datadog 지원팀][3]에 문의하여 추가 지원을 받으세요. +[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html -[2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -[3]: /ko/help/ {{% /tab %}} - {{< /tabs >}} -### 검증 +### 유효성 검사 {#validation} -Datadog 계정에 아카이브 설정이 성공적으로 완료되면 처리 파이프라인이 Datadog에 수집된 모든 로그를 강화하기 시작합니다. 이러한 로그는 이후에 아카이브로 전달됩니다. +Datadog 계정에서 아카이브 설정이 성공적으로 구성되면 처리 파이프라인이 Datadog으로 수집되는 모든 로그를 보강하기 시작합니다. 이후 해당 로그는 아카이브로 전달됩니다. -그러나 아카이브 설정을 생성하거나 업데이트한 후 다음 아카이브 업로드가 시도되기까지 몇 분 정도 소요될 수 있습니다. 또한, 아카이브가 업로드되는 빈도는 다양할 수 있습니다. **15분 후에 스토리지 버킷을 다시 확인하여** 아카이브가 Datadog 계정에서 성공적으로 업로드되었는지 확인하세요. +그러나 아카이브 구성을 생성하거나 업데이트한 후 다음 아카이브 업로드가 시도되기까지 몇 분이 걸릴 수 있습니다. 아카이브 업로드 빈도는 상황에 따라 달라질 수 있습니다. 아카이브가 Datadog 계정에서 정상적으로 업로드되는지 확인하려면 **15분 후 스토리지 버킷을 다시 확인하세요.** -그 후에도 아카이브가 여전히 보류 상태인 경우 포함 필터를 확인하여 쿼리가 유효하고 [Live Tail][14]의 로그 이벤트와 일치하는지 확인하세요. Datadog이 의도하지 않은 설정 또는 권한 변경으로 인해 로그를 외부 아카이브에 업로드하지 못하는 경우 해당 로그 아카이브가 설정 페이지에서 강조 표시됩니다. +그 후에도 아카이브가 여전히 보류 상태라면 포함 필터를 확인하여 쿼리가 유효한지, 그리고 [Live Tail][14]에서 로그 이벤트와 일치하는지 검증하세요. 설정 또는 권한의 의도치 않은 변경으로 인해 Datadog이 외부 아카이브에 로그를 업로드하지 못하는 경우 해당 로그 아카이브가 구성 페이지에서 강조 표시됩니다. -{{< img src="logs/archives/archive_errors_details.png" alt="아카이브가 올바르게 설정되었는지 확인하세요." style="width:100%;">}} +{{< img src="logs/archives/archive_errors_details.png" alt="아카이브가 올바르게 설정되었는지 확인" style="width:100%;">}} -오류 세부정보와 필요한 조치를 확인하려면 아카이브 위로 마우스를 가져가세요. [Events Explorer][15]에서도 이벤트가 생성됩니다. 이러한 이벤트에 대한 모니터를 생성하여 오류를 신속하게 감지하고 해결할 수 있습니다. +아카이브 위에 마우스를 올리면 오류 세부 정보와 문제 해결을 위한 조치를 확인할 수 있습니다. 또한 [Event Explorer][15]에 이벤트가 생성됩니다. 이러한 이벤트에 대해 모니터링을 생성하면 장애를 빠르게 감지하고 해결할 수 있습니다. -## 여러 아카이브 +## 여러 아카이브 {#multiple-archives} 여러 아카이브가 정의된 경우 로그는 필터를 기반으로 첫 번째 아카이브를 입력합니다. -{{< img src="logs/archives/log_forwarding_archives_multiple.png" alt="로그는 필터와 일치하는 첫 번째 아카이브를 입력합니다." style="width:100%;">}} +{{< img src="logs/archives/log_forwarding_archives_multiple.png" alt="로그는 필터와 일치하는 첫 번째 아카이브로 전달됩니다." style="width:100%;">}} -아카이브를 신중하게 주문하는 것이 중요합니다. 예를 들어 `env:prod` 태그로 필터링된 첫 번째 아카이브와 필터 없이 두 번째 아카이브(`*`와 동일)를 생성하는 경우 모든 프로덕션 로그는 하나의 스토리지 버킷 또는 경로로 이동하고 나머지는 다른 스토리지 버킷 또는 경로로 이동합니다. +따라서 아카이브의 순서를 신중하게 구성하는 것이 중요합니다. 예를 들어 첫 번째 아카이브를 `env:prod` 태그로 필터링하고, 두 번째 아카이브를 필터 없이(`*``와 동일) 구성한 경우, 모든 프로덕션 로그는 하나의 스토리지 버킷 또는 경로로 전송되고 나머지 로그는 다른 버킷 또는 경로로 전송됩니다. -## 아카이브 형식 +## 아카이브 형식 {#format-of-the-archives} -Datadog이 스토리지 버킷에 전달하는 로그 아카이브는 압축된 JSON 형식(`.json.gz`)입니다. 지정한 접두사를 사용하여 (없는 경우 `/`) 아카이브는 다음과 같이 아카이브 파일이 생성된 날짜와 시간을 나타내는 디렉터리 구조에 저장됩니다. +Datadog이 스토리지 버킷으로 전달하는 로그 아카이브는 압축된 JSON 형식입니다. [압축 구성](#compression)에 따라 아카이브 파일은 zstd(`.json.zst`, 기본값) 또는 gzip(`.json.gz`) 압축을 사용합니다. 사용자가 지정한 접두사(없을 경우 `/`)를 사용하여 아카이브는 다음과 같이 아카이브 파일이 생성된 날짜와 시간을 나타내는 디렉터리 구조에 저장됩니다. ``` -/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz -/my/bucket/prefix/dt=/hour=/archive_..json.gz +/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.02aafad5-f525-4592-905e-e962d1a5b2f7.json.gz +/my/bucket/prefix/dt=/hour=/archive_..json.gz ``` 이 디렉터리 구조는 날짜를 기준으로 기록 로그 아카이브를 쿼리하는 프로세스를 단순화합니다. -압축된 JSON 파일 내에서 각 이벤트의 콘텐츠 형식은 다음과 같습니다. - -```json -{ - "_id": "123456789abcdefg", - "date": "2018-05-15T14:31:16.003Z", - "host": "i-12345abced6789efg", - "source": "source_name", - "service": "service_name", - "status": "status_level", - "message": "2018-05-15T14:31:16.003Z INFO rid='acb-123' status=403 method=PUT", - "attributes": { "rid": "abc-123", "http": { "status_code": 403, "method": "PUT" } }, - "tags": [ "env:prod", "team:acme" ] -} -``` - -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -413,7 +473,7 @@ Datadog이 스토리지 버킷에 전달하는 로그 아카이브는 압축된 [1]: /ko/logs/indexes/#exclusion-filters [2]: /ko/logs/archives/rehydrating/ [3]: https://app.datadoghq.com/logs/pipelines/log-forwarding -[4]: /ko/observability_pipelines/archive_logs/ +[4]: /ko/observability_pipelines/configuration/explore_templates/?tab=logs#archive-logs [5]: /ko/account_management/rbac/permissions/?tab=ui#logs_write_archives [6]: https://app.datadoghq.com/logs/pipelines/archives [7]: /ko/integrations/azure/ @@ -424,4 +484,7 @@ Datadog이 스토리지 버킷에 전달하는 로그 아카이브는 압축된 [12]: /ko/account_management/rbac/permissions#logs_read_index_data [13]: /ko/account_management/rbac/permissions#logs_read_data [14]: /ko/logs/explorer/live_tail/ -[15]: /ko/service_management/events/explorer/ +[15]: /ko/events/explorer/ +[16]: /ko/logs/log_configuration/archive_search/?tab=amazons3 +[17]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html +[18]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html \ No newline at end of file diff --git a/content/ko/monitors/types/anomaly.md b/content/ko/monitors/types/anomaly.md new file mode 100644 index 00000000000..d452e083403 --- /dev/null +++ b/content/ko/monitors/types/anomaly.md @@ -0,0 +1,273 @@ +--- +algolia: + rank: 70 + tags: + - anomaly + - anomaly monitor +aliases: +- /ko/guides/anomalies +- /ko/monitors/monitor_types/anomaly +- /ko/monitors/create/types/anomaly/ +description: 과거 데이터를 기반으로 메트릭의 이상 동작을 감지합니다. +further_reading: +- link: /monitors/notify/ + tag: 설명서 + text: 모니터 알림 구성 +- link: /monitors/downtimes/ + tag: 설명서 + text: 모니터 음소거를 위한 가동 중지 예약 +- link: /monitors/status/ + tag: 설명서 + text: 모니터 상태 확인 +- link: dashboards/functions/algorithms/#anomalies + tag: 설명서 + text: Anomalies 함수 +- link: https://www.datadoghq.com/blog/ai-powered-metrics-monitoring/ + tag: 블로그 + text: 이상 탐지와 예측 상관관계 - AI 지원 메트릭 모니터링 활용 +title: 이상 탐지 모니터 +--- +## 개요 {#overview} + +이상 탐지는 메트릭이 과거와 다른 방식으로 동작할 때 이를 식별하는 알고리즘 기능으로, 추세, 요일별 계절성, 시간대별 패턴을 고려합니다. 이 기능은 강한 추세와 반복적인 패턴이 있어서 임계값 기반 경보만으로는 모니터링하기 어려운 메트릭에 유용합니다. + +예를 들어 이상 탐지는 평일 오후의 웹 트래픽이 비정상적으로 낮은 경우를 발견하는 데 도움이 됩니다. 같은 수준의 트래픽이 늦은 저녁에는 정상일 수 있지만, 평일 오후에는 비정상일 수 있습니다. 또는 지속적으로 성장하는 사이트의 로그인 수를 측정하는 메트릭을 생각해 볼 수 있습니다. 로그인 수가 매일 증가하므로 고정 임계값은 금방 무의미해집니다. 반면 이상 탐지는 예상치 못한 로그인 수 감소를 감지하여 로그인 시스템의 문제를 알려줄 수 있습니다. + +## 모니터 생성 {#monitor-creation} + +Datadog에서 [이상 탐지 모니터][1]를 생성하려면 기본 탐색 메뉴에서 *Monitors --> New Monitor --> Anomaly*를 선택합니다. + +### 메트릭 정의 {#define-the-metric} + +Datadog에 보고되는 모든 메트릭은 모니터에 사용할 수 있습니다. 자세한 내용은 [메트릭 모니터][2] 페이지를 참조하세요. +**참고**: `anomalies` 함수는 과거 데이터를 사용하여 미래의 예상 값을 예측하므로, 새로 생성된 메트릭에 적용하면 결과가 좋지 않을 수 있습니다. + +메트릭을 정의하면 이상 탐지 모니터는 편집기에 두 개의 미리 보기 그래프를 제공합니다. +{{< img src="monitors/monitor_types/anomaly/context.png" alt="과거 추이 정보" style="width:80%;">}} + +* **Historical View**를 사용하면 다양한 시간 범위에서 모니터링 쿼리를 탐색하여 데이터가 왜 이상으로 또는 정상으로 간주되는지 더 잘 이해할 수 있습니다. +* **Evaluation Preview**는 경보 윈도우보다 더 긴 범위를 표시하며, 이상 탐지 알고리즘이 경계값을 계산할 때 어떤 요소를 고려하는지 보여줍니다. + +### 경보 조건 설정 {#set-alert-conditions} + +값이 지난 `15 minutes`, `1 hour` 등 또는 `custom`(15분~2주 범위 지정 가능) 동안 경계값과 비교해 `above or below`, `above` 또는 `below`에 있었을 경우 경보를 트리거합니다. 값이 최소 `15 minutes`, `1 hour` 등 또는 `custom`(15분~2주 범위 지정 가능) 동안 경계값 내에 있으면 복구합니다. + +이상 탐지 +: 기본 옵션(`above or below`)에서는 메트릭이 회색 이상 탐지 밴드 밖에 있을 경우 이상으로 간주됩니다. 필요에 따라, 밴드보다 `above`이거나 `below`인 경우만 이상으로 간주할지 지정할 수 있습니다. + +트리거 윈도우 +: 메트릭이 이상 상태로 간주되어 경보가 발생하기까지 필요한 시간입니다. **참고**: : 경보 윈도우가 너무 짧으면 일시적인 노이즈로 인해 오탐이 발생할 수 있습니다. + +복구 윈도우 +: 메트릭이 더 이상 이상 상태로 간주되지 않아 경보가 복구되기까지 필요한 시간입니다. **복구 윈도우**를 **트리거 윈도우**와 동일한 값으로 설정하는 것이 좋습니다. + +**참고**: **복구 윈도우**에 허용되는 값의 범위는 **트리거 윈도우**와 **경보 임계값**에 따라 결정됩니다. 이는 모니터가 동시에 복구 조건과 경보 조건을 만족하지 않도록 하기 위함입니다. +예시: +* `Threshold`: 50% +* `Trigger window`: 4시간 +복구 윈도우에 허용되는 값의 범위는 121분(`4h*(1-0.5) +1 min = 121 minutes`)에서 4시간 사이입니다. 복구 윈도우를 121분보다 짧게 설정하면, 4시간 구간 동안 이상 데이터 포인트가 50% 존재하면서도 마지막 120분에는 이상 데이터 포인트가 없는 상황이 발생할 수 있습니다. + +또 다른 예시: +* `Threshold`: 80% +* `Trigger window`: 4시간 +복구 윈도우에 허용되는 값의 범위는 49분(`4h*(1-0.8) +1 min = 49 minutes`)에서 4시간 사이입니다. + +### 고급 옵션 {#advanced-options} + +Datadog은 선택한 메트릭을 자동으로 분석하여 여러 파라미터를 설정합니다. 그러나 필요에 따라 **고급 옵션**에서 직접 수정할 수 있습니다. + +{{< img src="monitors/monitor_types/anomaly/advanced_options.png" alt="이상 모니터 구성 페이지의 고급 옵션 메뉴. 주간 계절성을 사용하는 agile 알고리즘으로 예측 데이터 대비 2 편차의 이상을 탐지하고, 일광 절약 시간제를 반영하며, 60초의 롤업 간격을 사용하도록 구성되어 있습니다." style="width:80%;">}} + + +편차 +: 회색 밴드의 너비를 의미합니다. 이는 [anomalies 함수][3]에서 사용하는 bounds 파라미터와 동일합니다. + +알고리즘 +: [이상 탐지 알고리즘](#anomaly-detection-algorithms)(`basic`, `agile` 또는 `robust`)을 선택합니다. + +계절성 +`agile` 또는 `robust` 알고리즘이 메트릭을 분석할 때 사용할 주기의 : [계절성](#seasonality)(`hourly`, `daily` 또는 `weekly`)을 선택합니다. + +일광 절약 시간제 +: `agile` 또는 `robust` 이상 탐지와 `weekly` 또는 `daily` 계절성을 사용하는 경우에 사용할 수 있습니다. 자세한 내용은 [이상 탐지 및 시간대][4]를 참조하세요. + +롤업 +: [롤업 간격][5]입니다. + +임계값 +: 경보, 경고 및 복구를 위해 이상 상태로 간주되어야 하는 데이터 포인트의 비율입니다. + +### 계절성 {#seasonality} + +시간별 +: 알고리즘은 특정 시각의 분(分)이 과거 동일한 분과 유사하게 동작한다고 가정합니다. 예를 들어 5:15는 4:15, 3:15 등과 유사하게 동작한다고 예상합니다. + +일간 +: 알고리즘은 오늘의 특정 시각이 과거 일자의 동일한 시각과 유사하게 동작한다고 가정합니다. 예를 들어 오늘 오후 5시는 어제 오후 5시와 유사하게 동작한다고 예상합니다. + +주간 +: 알고리즘은 특정 요일이 과거 동일한 요일과 유사하게 동작한다고 가정합니다. 예를 들어 이번 화요일은 과거의 화요일들과 유사하게 동작한다고 예상합니다. + +**이상 탐지 알고리즘에 필요한 데이터 이력**: 머신러닝 알고리즘은 기준선을 계산하기 위해 선택한 계절성 기간의 최소 3배에 해당하는 과거 데이터가 필요합니다. +예를 들면 다음과 같습니다. + +* _주간_ 계절성에는 최소 3주 분량의 데이터가 필요합니다. +* _일간_ 계절성에는 최소 3일 분량의 데이터가 필요합니다. +* _시간별_ 계절성에는 최소 3시간 분량의 데이터가 필요합니다. + +모든 계절성 알고리즘은 메트릭의 정상적인 동작 범위를 계산할 때 최대 6주 분량의 과거 데이터를 사용할 수 있습니다. 알고리즘은 충분한 양의 과거 데이터를 사용함으로써 최근에 발생한 이상 동작에 과도한 가중치를 부여하는 것을 방지합니다. + +### 이상 탐지 알고리즘 {#anomaly-detection-algorithms} +basic +: 메트릭에 반복되는 계절성 패턴이 없는 경우 사용합니다. Basic은 단순한 지연 롤링 분위수 계산을 사용하여 예상 값 범위를 결정합니다. 필요한 데이터가 적고 변화하는 조건에 빠르게 적응하지만, 계절성 패턴이나 장기 추세는 고려하지 않습니다. + +agile +: 메트릭에 계절성이 있으며 값의 변화가 예상되는 경우 사용합니다. 이 알고리즘은 메트릭 수준의 변화를 빠르게 반영합니다. [SARIMA][6] 알고리즘의 강력한 버전으로, 예측에 최근 데이터를 반영하여 수준 변화에 신속하게 대응할 수 있습니다. 대신 최근에 발생한 장기간의 이상 현상에는 덜 강력할 수 있습니다. + +Robust +: 계절성 메트릭이 안정적일 것으로 예상되며, 느린 수준 변화 자체를 이상으로 간주하는 경우 사용합니다. [계절성-추세 분해][7] 알고리즘을 기반으로 하며, 장기간 지속되는 이상 현상이 발생하더라도 예측 범위가 안정적으로 유지됩니다. 반면 의도된 수준 변화(예: 코드 변경으로 인한 메트릭 수준 변화)에 반응하는 데는 더 오랜 시간이 걸립니다. + +## 예시 {#examples} +아래 그래프는 세 가지 알고리즘이 서로 다르게 동작하는 방식과 시점을 보여줍니다. + +#### 시간별 계절성에 대한 이상 탐지 비교 {#anomaly-detection-comparison-for-hourly-seasonality} +이 예에서 `basic`은 정상 범위를 벗어나는 급격한 이상을 성공적으로 식별하지만, 반복되는 계절성 패턴을 예측 범위에 반영하지는 않습니다. 반면 `robust`과 `agile`은 모두 계절성 패턴을 인식하므로, 예를 들어 메트릭이 최솟값 근처에서 평탄하게 유지되는 경우와 같은 더 미묘한 이상 현상도 탐지할 수 있습니다. 이 추세는 또한 시간별 패턴을 보이므로, 이 경우에는 시간별 계절성이 가장 적합합니다. + +{{< img src="monitors/monitor_types/anomaly/alg_comparison_1.png" alt="일일 계절성을 사용한 이상 탐지 알고리즘 비교" style="width:90%;">}} + +#### 주간 계절성에 대한 이상 탐지 비교 {#anomaly-detection-comparison-for-weekly-seasonality} +이 예에서는 메트릭에 갑작스러운 수준 변화가 발생합니다. `Agile`은 `robust`보다 수준 변화에 더 빠르게 적응합니다. 또한 수준 변화 이후의 불확실성이 커진 것을 반영하기 위해 `robust`의 경계 범위는 넓어지는 반면, `agile`의 경계 범위는 변하지 않습니다. `Basic`은 메트릭이 강한 주별 계절성 패턴을 보이는 이 시나리오에 명백히 적합하지 않습니다. + +{{< img src="monitors/monitor_types/anomaly/alg_comparison_2.png" alt="주간 계절성을 사용한 이상 탐지 알고리즘 비교" style="width:90%;">}} + +#### 알고리즘의 변화 반응 비교 {#comparison-of-algorithm-reactions-to-change} +이 예는 알고리즘이 1시간 동안 지속된 이상에 어떻게 반응하는지를 보여줍니다. `Robust`는 급격한 변화에 더 느리게 반응하므로 이 시나리오에서는 이상에 맞춰 경계 범위를 조정하지 않습니다. 반면 다른 알고리즘들은 이상을 새로운 정상 상태처럼 인식하기 시작합니다. `Agile`은 원래 수준으로 복귀한 상태조차 이상으로 식별합니다. + +{{< img src="monitors/monitor_types/anomaly/alg_comparison_3.png" alt="시간별 계절성을 사용한 이상 탐지 알고리즘 비교" style="width:90%;">}} + +#### 알고리즘의 규모 반응 비교 {#comparison-of-algorithm-reactions-to-scale} +알고리즘은 규모를 서로 다르게 처리합니다. `Basic`과 `robust`는 규모에 영향을 받지 않지만, `agile`은 영향을 받습니다. 아래 왼쪽의 그래프에서는 `agile`과 `robust`가 수준 변화를 이상으로 표시합니다. 오른쪽 그래프에서는 동일한 메트릭에 1000을 추가했으며, 이 경우 `agile`은 더 이상 수준 변화를 이상으로 표시하지 않지만 `robust`는 계속 이상으로 표시합니다. + +{{< img src="monitors/monitor_types/anomaly/alg_comparison_scale.png" alt="알고리즘 비교 규모" style="width:90%;">}} + +#### 새 메트릭에 대한 이상 탐지 비교 {#anomaly-detection-comparison-for-new-metrics} +이 예는 각 알고리즘이 새 메트릭을 어떻게 처리하는지 보여줍니다. `Robust`와 `agile`은 처음 몇 개의 계절 주기(주간) 동안 경계 범위를 표시하지 않습니다. `Basic`은 메트릭이 처음 표시된 직후에 경계 범위를 표시하기 시작합니다. + +{{< img src="monitors/monitor_types/anomaly/alg_comparison_new_metric.png" alt="알고리즘 비교 새 메트릭" style="width:90%;">}} + +## 고급 경보 조건 {#advanced-alert-conditions} + +고급 경보 옵션(자동 해결, 평가 지연 등)에 대한 자세한 지침은 [모니터 구성][8] 페이지를 참조하세요. 메트릭 전용 옵션인 전체 데이터 윈도우에 대해서는 [메트릭 모니터][9] 페이지를 참조하세요. + +## 알림 {#notifications} + +**알림 및 자동화 구성** 섹션에 대한 자세한 지침은 [Notifications][10] 페이지를 참조하세요. + +## API {#api} + +엔터프라이즈 플랜 고객은 [모니터 생성 API 엔드포인트][11]를 사용하여 이상 탐지 모니터를 생성할 수 있습니다. Datadog은 API용 쿼리를 작성할 때 [모니터 JSON 내보내기][12]를 사용할 것을 **강력히 권장합니다**.. Datadog의 [모니터 생성 페이지][1]를 사용하면 미리 보기 그래프와 자동 파라미터 조정 기능을 활용할 수 있어 잘못 구성된 모니터를 방지하는 데 도움이 됩니다. + +이상 탐지 모니터는 다른 모니터와 동일한 [API][14]를 사용하여 관리됩니다. 다음 필드는 이상 탐지 모니터에만 고유합니다. + +### `query` {#query} + +요청 본문의 `query` 속성에는 다음 형식의 쿼리 문자열이 포함되어야 합니다. + +```text +avg():anomalies(, '', , direction='', alert_window='', interval=, count_default_zero='' [, seasonality='']) >= +``` + +`query_window` +: `last_4h` 또는 `last_7d`와 같은 기간입니다. 이 파라미터는 알림 그래프에 표시되는 데이터의 시간 범위를 제어합니다. `query_window`는 시각화에 표시되는 과거 데이터의 양을 결정하지만 경보 평가에는 영향을 주지 않습니다. Datadog은 추가 컨텍스트를 제공하기 위해 `query_window` 값을 `alert_window`의 약 5배로 설정할 것을 권장합니다. **참고**: : `query_window`는 최소한 `alert_window` 이상이어야 합니다. + +`metric_query` +: 표준 Datadog 메트릭 쿼리(예: `sum:trace.flask.request.hits{service:web-app}.as_count()`)입니다. + +`algorithm` +: `basic`, `agile` 또는 `robust`입니다. + +`deviations` +: 양수 값으로, 이상 탐지의 민감도를 제어합니다. + +`direction` +: 경보를 트리거해야 하는 이상 현상의 방향성(: `above`, `below` 또는 `both`)입니다. + +`alert_window` +: 이상 현상을 확인할 기간(예: `last_5m`, `last_1h`)입니다. + +`interval` +: 롤업 간격(초)을 나타내는 양의 정수입니다. 이 값은 `alert_window` 기간의 1/5 이하여야 합니다. + +`count_default_zero` +: 대부분의 모니터에서는 `true`를 사용합니다. 값이 없는 경우를 0으로 해석해서는 _안 되는_ count 메트릭을 제출하는 경우에만 `false`로 설정하세요. + +`seasonality` +: `hourly`, `daily` 또는 `weekly`입니다. `basic` 알고리즘을 사용하는 경우에는 이 파라미터를 제외합니다. + +`threshold` +: 1 이하의 양수입니다. 치명적 경보가 트리거되기 위해 `alert_window` 내에서 이상 상태여야 하는 데이터 포인트의 비율을 의미합니다. + +다음은 지난 5분 동안 Cassandra 노드의 평균 CPU 사용량이 정상 값보다 3 표준 편차 이상 높을 때 경보를 발생시키는 이상 탐지 모니터의 쿼리 예시입니다. + +```text +avg(last_1h):anomalies(avg:system.cpu.system{name:cassandra}, 'basic', 3, direction='above', alert_window='last_5m', interval=20, count_default_zero='true') >= 1 +``` + +이 쿼리는 `avg`를 다음 두 곳에서 사용합니다. +- `avg(last_1h)` - 알림 그래프를 위해 쿼리 윈도우 동안의 이상 데이터 포인트를 집계합니다. +- `avg:system.cpu.system{name:cassandra}` - 이상 탐지 전에 Cassandra 노드 전체의 CPU 메트릭을 집계합니다. + +### `options` {#options} + +요청 본문의 `options` 아래에 있는 대부분의 속성은 다른 쿼리 경보와 동일하지만, `thresholds` 및 `threshold_windows`는 예외입니다. + +`thresholds` +: 이상 탐지 모니터는 `critical`, `critical_recovery`, `warning` 및 `warning_recovery` 임계값을 지원합니다. 임계값은 0에서 1 사이의 숫자로 표현되며, 해당 윈도우 내에서 이상 상태로 간주되는 데이터 포인트의 비율을 의미합니다. 예를 들어 `critical` 임계값이 `0.9`인 경우, `trigger_window`(아래 설명 참조)에 포함된 데이터 포인트 중 최소 90%가 이상 상태일 때 치명적 경보가 트리거됩니다. 또는 `warning_recovery` 값이 0인 경우, `recovery_window` 내의 이상 데이터 포인트 비율이 0%가 되어야만 모니터가 경고 상태에서 복구됩니다. +: `critical`: `threshold`는 `query`에서 사용된 `threshold`와 일치해야 합니다. + +`threshold_windows` +: 이상 탐지 모니터는 `options` 내에 `threshold_windows` 속성을 가집니다. `threshold_windows`에는 `trigger_window` 및 `recovery_window` 두 속성이 모두 포함되어야 합니다. 이러한 윈도우는 `last_10m` 또는 `last_1h`과 같은 타임프레임 문자열로 표현됩니다. `trigger_window`는 `query`의 `alert_window`와 일치해야 합니다. `trigger_window`는 모니터가 경보를 트리거해야 하는지 평가할 때 이상 현상을 분석하는 기간입니다. `recovery_window`는 이미 트리거된 모니터가 복구되어야 하는지 평가할 때 이상 현상을 분석하는 기간입니다. + +임계값과 임계값 윈도우의 일반적인 구성은 다음과 같습니다. + +```json +"options": { + ... + "thresholds": { + "critical": 1, + "critical_recovery": 0 + }, + "threshold_windows": { + "trigger_window": "last_30m", + "recovery_window": "last_30m" + } +} +``` + +## 문제 해결 {#troubleshooting} + +* [이상 탐지 모니터 FAQ][15] +* [이상 탐지 모니터 시간대 업데이트][16] +* [Datadog 지원팀에 문의][17] + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/monitors/create/anomaly +[2]: /ko/monitors/types/metric/#define-the-metric +[3]: /ko/dashboards/functions/algorithms/#anomalies +[4]: /ko/monitors/guide/how-to-update-anomaly-monitor-timezone/ +[5]: /ko/dashboards/functions/rollup/ +[6]: https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average +[7]: https://en.wikipedia.org/wiki/Decomposition_of_time_series +[8]: /ko/monitors/configuration/#advanced-alert-conditions +[9]: /ko/monitors/types/metric/#data-window +[10]: /ko/monitors/notify/ +[11]: /ko/api/v1/monitors/#create-a-monitor +[12]: /ko/monitors/status/#settings +[13]: mailto:billing@datadoghq.com +[14]: /ko/api/v1/monitors/ +[15]: /ko/monitors/guide/anomaly-monitor/ +[16]: /ko/monitors/guide/how-to-update-anomaly-monitor-timezone/ +[17]: /ko/help/ \ No newline at end of file diff --git a/content/ko/network_monitoring/cloud_network_monitoring/setup.md b/content/ko/network_monitoring/cloud_network_monitoring/setup.md new file mode 100644 index 00000000000..b2685adff55 --- /dev/null +++ b/content/ko/network_monitoring/cloud_network_monitoring/setup.md @@ -0,0 +1,647 @@ +--- +aliases: +- /ko/network_performance_monitoring/installation/ +- /ko/network_monitoring/performance/setup +description: Agent를 사용하여 네트워크 데이터를 수집합니다. +further_reading: +- link: https://www.datadoghq.com/blog/network-performance-monitoring + tag: 블로그 + text: Cloud Network Monitoring +- link: https://www.datadoghq.com/blog/monitor-containers-with-npm/ + tag: 블로그 + text: 컨테이너 및 서비스 메시 네트워크가 포함된 Datadog CNM +- link: /network_monitoring/devices + tag: 설명서 + text: Network Device Monitoring +- link: https://www.datadoghq.com/blog/monitor-consul-with-datadog-npm/ + tag: 블로그 + text: Datadog CNM은 이제 Consul 네트워킹을 지원합니다. +- link: https://www.datadoghq.com/blog/cnm-kubernetes-egress/ + tag: 블로그 + text: Datadog Cloud Network Monitoring이 대규모 환경에서 기본 거부 네트워크 송신 정책으로 전환하는 데 도움이 되는 + 방법 +- link: /network_monitoring/cloud_network_monitoring/glossary + tag: 문서 + text: CNM 용어 및 개념 +title: Cloud Network Monitoring 설정 +--- +Datadog Cloud Network Monitoring(CNM)은 서비스, 컨테이너, Availability Zone 및 Datadog의 기타 태그 간 네트워크 트래픽에 대한 가시성을 제공하여 다음 작업을 수행할 수 있습니다. + +- 예상치 못한 또는 숨겨진 서비스 종속성 파악 +- 비용이 많이 드는 리전 간 또는 멀티 클라우드 통신 최적화 +- 클라우드 공급자 리전 및 타사 도구의 운영 중단 파악 +- DNS 서버 메트릭으로 서비스 검색 문제 해결 + +Cloud Network Monitoring을 사용하려면 [Datadog Agent v6.14 이상][1]이 필요합니다. 상위 버전의 Agent에서는 메트릭이 자동 수집되므로 DNS Monitoring 구성은 [메트릭 설정 섹션][2]을 참조하세요. + +## 지원 플랫폼 {#supported-platforms} + +### 운영 체제 {#operating-systems} + +#### Linux OS {#linux-os} + +데이터 수집은 eBPF를 사용하여 실행되므로 Datadog에 기본 Linux 커널 버전이 최소 4.4.0 이상이거나 eBPF 기능이 백포트된 플랫폼이 필요합니다. CNM은 다음 Linux 배포판을 지원합니다. + +- Ubuntu 16.04 이상 +- Debian 9 이상 +- Fedora 26 이상 +- SUSE 15 이상 +- Amazon AMI 2016.03 이상 +- Amazon Linux 2 +- CentOS/RHEL 7.6 이상 + +**참고:** [CentOS/RHEL 7.6 이상][3]에 대한 4.4.0+ 커널 요구 사항의 예외가 있습니다. [DNS Resolution][4] 기능은 CentOS/RHEL 7.6에서 지원되지 않습니다. + +#### Windows OS {#windows-os} + +데이터 수집은 네트워크 커널 장치 드라이버를 사용하여 진행됩니다. Windows 버전 2012 R2 (및 Windows 10을 포함한 동급 데스크톱 OS) 이상에서, Datadog Agent 버전 7.27.1부터 지원됩니다. + +#### macOS {#macos} + +Datadog Cloud Network Monitoring은 macOS 플랫폼을 지원하지 않습니다. + +### 컨테이너 {#containers} + +CNM은 [Docker][5], [Kubernetes][6], [ECS][7] 및 기타 컨테이너 기술에 대한 지원을 통해 컨테이너화되고 오케스트레이션된 환경의 아키텍처와 성능을 시각화하는 데 도움을 줍니다. Datadog의 컨테이너 통합 기능을 사용하면 `container_name`, `task_name`, `kube_service`과 같은 기본 제공 태그를 통해 컨테이너, 작업, 포드, 클러스터 및 배포와 같은 의미 있는 엔터티별로 트래픽을 집계할 수 있습니다. + +### 네트워크 라우팅 도구 {#network-routing-tools} + +#### Istio {#istio} + +CNM을 사용하면 Istio 서비스 메시를 통해 컨테이너, 포드, 서비스 간의 네트워크 통신을 매핑할 수 있습니다. + +Datadog은 Istio 환경의 모든 부분을 모니터링하므로 다음과 같은 작업을 할 수 있습니다. + +- [로그][8]로 Envoy와 Istio 컨트롤 패널의 상태를 평가합니다. +- 요청, 대역폭, 리소스 소비 [메트릭][8]을 활용해 서비스 메시의 성능을 분석합니다. +- 메시를 통해 [APM][9]으로 트랜잭션하는 애플리케이션에 대한 분산 트레이스를 검토합니다. + +CNM은 [Datadog Agent v7.24.1 이상][1]에서 Istio v1.6.4 이상을 지원합니다. + +Datadog으로 Istio 환경을 모니터링하는 방법에 대해 자세히 살펴보려면 [Istio 블로그][10]를 참조하세요. + +#### Cilium {#cilium} + +Cloud Network Monitoring은 다음 요구 사항이 충족되는 경우 **Cilium** 설치와 호환됩니다. +1) Cilium 버전 1.6 이상, 그리고 +2) 커널 버전 5.1.16 이상 또는 4.19.x 커널의 경우 4.19.57 이상 + +### 프로비저닝 시스템 {#provisioning-systems} + +CNM은 다음과 같은 프로비저닝 시스템 사용을 지원합니다. + +- Daemonset / Helm 1.38.11 이상: [Datadog Helm 차트][11] 참조 +- Chef 12.7 이상: [Datadog 셰프 레시피][12] 참조. +- Ansible 2.6 이상: [Datadog Ansible 역할][13] 참조 + +## 설정 {#setup} + +Cloud Network Monitoring은 네트워크 엔드포인트 _간의_ 트래픽을 분석하고 네트워크 종속성을 매핑하도록 설계되었습니다. Datadog은 가치를 극대화하기 위해 인프라의 의미 있는 일부 및 **_최소 2개의 호스트_**에 CNM을 설치할 것을 권장합니다. + +{{< tabs >}} +{{% tab "Agent(Linux)" %}} + +Datadog Agent에서 Cloud Network Monitoring을 활성화하려면 다음 구성을 사용합니다. + +1. **사용 중인 Agent가 6.14 이전 버전인 경우**, 먼저 [실시간 프로세스 수집][1]을 활성화하세요. 그렇지 않은 경우에는 이 단계를 건너뜁니다. + +2. system-probe 예제 구성 파일을 복사합니다. + + ```shell + sudo -u dd-agent install -m 0640 /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml + ``` + +3. `/etc/datadog-agent/system-probe.yaml`을 편집하여 enable 플래그를 `true`로 설정합니다. + + ```yaml + network_config: # use system_probe_config for Agent's older than 7.24.1 + ## @param enabled - boolean - optional - default: false + ## Set to true to enable Cloud Network Monitoring. + # + enabled: true + ``` + + **Optional**: To monitor DNS traffic on non-standard ports (Agent v7.76.0+), add the `dns_monitoring_ports` option: + + ```yaml + network_config: + enabled: true + dns_monitoring_ports: + - 53 + - 5353 + ``` + +4. **6.18 또는 7.18 이전 버전의 Agent를 실행 중인 경우** 수동으로 시스템 프로브를 시작하고, 부팅 시 시작하도록 설정합니다(6.18 및 7.18 버전부터는 Agent가 시작될 때 system-probe가 자동으로 시작됨). + + ```shell + sudo systemctl start datadog-agent-sysprobe + sudo systemctl enable datadog-agent-sysprobe + ``` + + **Note**: If the `systemctl` command is not available on your system, start it with following command instead: `sudo service datadog-agent-sysprobe start` and then set it up to start on boot before `datadog-agent` starts. + +5. [Agent를 재시작][2]합니다. + + ```shell + sudo systemctl restart datadog-agent + ``` + + **Note**: If the `systemctl` command is not available on your system, run the following command instead: `sudo service datadog-agent restart` + +### SELinux 지원 시스템 {#selinux-enabled-systems} + +SELinux가 활성화된 시스템에서 시스템 프로브 바이너리가 eBPF 기능을 사용하려면 특별 권한이 필요합니다. + +CentOS 기반 시스템용 Datadog Agent RPM 패키지는 시스템 프로브 바이너리에 해당 권한을 부여할 목적으로 [SELinux 정책][3]을 번들로 제공합니다. + +SELinux가 활성화된 다른 시스템에서 Cloud Network Monitoring을 사용해야 한다면 다음 작업을 수행합니다. + +1. 기본 [SELinux 정책][3]을 SELinux 구성에 맞게 수정합니다. + 시스템에 따라 일부 유형 또는 속성은 존재하지 않거나 이름이 다를 수 있습니다. + +2. 정책 파일의 이름이 `system_probe_policy.te`라고 가정할 때 정책을 모듈로 컴파일합니다. + + ```shell + checkmodule -M -m -o system_probe_policy.mod system_probe_policy.te + semodule_package -o system_probe_policy.pp -m system_probe_policy.mod + ``` + +3. 모듈을 SELinux 시스템에 적용합니다. + + ```shell + semodule -v -i system_probe_policy.pp + ``` + +4. Agent 설치 디렉터리가 `/opt/datadog-agent`라고 가정할 때 system-probe 바이너리의 SELinux 유형을 정책에 정의된 유형으로 변경합니다. + + ```shell + semanage fcontext -a -t system_probe_t /opt/datadog-agent/embedded/bin/system-probe + restorecon -v /opt/datadog-agent/embedded/bin/system-probe + ``` + +5. [Agent를 재시작][2]합니다. + +**참고**: 이 지침을 따르려면 시스템에 SELinux 유틸리티(`checkmodule`, `semodule`, `semodule_package`, `semanage` 및 `restorecon`)가 설치되어 있어야 하며, 이는 대부분의 표준 배포판(Ubuntu, Debian, RHEL, CentOS, SUSE)에서 사용할 수 있습니다. 설치 방법에 대한 자세한 내용은 배포판을 확인하세요. + +배포판에 해당 유틸리티가 없는 경우, 동일한 절차를 따르되 배포판에서 제공하는 유틸리티를 대신 사용합니다. + + +[1]: /ko/infrastructure/process/?tab=linuxwindows#installation +[2]: /ko/agent/configuration/agent-commands/#restart-the-agent +[3]: https://github.com/DataDog/datadog-agent/blob/master/cmd/agent/selinux/system_probe_policy.te +{{% /tab %}} +{{% tab "Agent(Windows)" %}} + +Windows용 데이터 수집은 네트워크 데이터 수집용 필터 드라이버에 의존합니다. + +Windows 호스트에서 Cloud Network Monitoring을 활성화하려면 다음 작업을 수행합니다. + +1. [Datadog Agent][1](버전 7.27.1 이상)를 네트워크 드라이버 구성 요소를 활성화한 상태에서 설치합니다. + + [사용 중단됨] _(버전 7.44 이하)_ 설치 시 `msiexec` 명령에 `ADDLOCAL="MainApplication,NPM"`을 전달하거나, GUI를 통해 Agent 설치 프로그램을 실행할 때 "Cloud Network Monitoring"을 선택합니다. + +2. `C:\ProgramData\Datadog\system-probe.yaml`을 편집하여 enabled 플래그를 `true`로 설정합니다. + + ```yaml + network_config: + enabled: true + ``` + + **Optional**: To monitor DNS traffic on non-standard ports (Agent v7.76.0+), add the `dns_monitoring_ports` option: + + ```yaml + network_config: + enabled: true + dns_monitoring_ports: + - 53 + - 5353 + ``` + +3. [Agent를 재시작][2]합니다. + + PowerShell(`powershell.exe`)의 경우: + ```shell + restart-service -f datadogagent + ``` + For Command Prompt (`cmd.exe`): + ```shell + net /y stop datadogagent && net start datadogagent + ``` +**참고**: Cloud Network Monitoring은 Windows 호스트만 모니터링하며 Windows 컨테이너는 지원하지 않습니다. + + +[1]: /ko/agent/basic_agent_usage/windows/?tab=commandline +[2]: /ko/agent/configuration/agent-commands/#restart-the-agent +{{% /tab %}} +{{% tab "Helm" %}} + +Helm을 사용하여 Kubernetes에서 Cloud Network Monitoring을 활성화하려면 `values.yaml` 파일에 다음 설정을 추가하세요.
    +**참고:** Helm 차트 v3.135.3 이상이 필요합니다. 자세한 내용을 보려면 [Datadog Helm Chart 설명서][1]를 참조하세요. + + ```yaml + datadog: + ... + networkMonitoring: + enabled: true + ``` + +**선택 사항**: 비표준 포트에서 DNS 트래픽을 모니터링하려면(Agent v7.76.0 이상), `dnsMonitoringPorts` 옵션을 추가하세요. + + ```yaml + datadog: + networkMonitoring: + enabled: true + dnsMonitoringPorts: + - 53 + - 5353 + ``` + +환경에 따라 다음 추가 단계가 필요할 수 있습니다. + +{{< collapse-content title="Google GKE Autopilot" level="h4" >}} + +클러스터가 Google의 GKE Autopilot을 실행 중인 경우, values 파일에 다음을 추가합니다. + +``` +providers: + gke: + autopilot: true +``` + +{{< /collapse-content >}} + +{{< collapse-content title="Google Container-Optimized OS(COS)" level="h4" >}} + +클러스터가 Google Container-Optimized OS(COS)를 실행 중인 경우, values 파일에 다음을 추가합니다. + +``` +providers: + gke: + cos: true +``` + + +{{< /collapse-content >}} + +{{< collapse-content title="Bottlerocket Linux" level="h4" >}} + +클러스터가 Bottlerocket Linux 배포판을 사용하는 경우, values 파일에 다음을 추가합니다. + +``` +agents: + containers: + systemProbe: + securityContext: + seLinuxOptions: + user: "system_u" + role: "system_r" + type: "super_t" + level: "s0" +``` + +{{< /collapse-content >}} + +[1]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/README.md#enabling-npm-collection + +{{% /tab %}} +{{% tab "Helm을 사용하지 않는 Kubernetes" %}} + +Helm을 사용하지 않는다면 처음부터 Kubernetes에서 Cloud Network Monitoring을 활성화할 수 있습니다. + +1. [datadog-agent.yaml 매니페스트][1] 템플릿을 다운로드합니다. +2. ``를 [Datadog API 키][2]로 대체합니다. +3. 선택 사항 - **Datadog 사이트를 설정**합니다. Datadog EU 사이트를 사용 중이라면, `datadog-agent.yaml` 매니페스트의`DD_SITE` 환경 변수를 `datadoghq.eu`로 설정합니다. +다음 명령으로 4. **DaemonSet을 배포**합니다. + + ```shell + kubectl apply -f datadog-agent.yaml + ``` + +이미 [매니페스트와 함께 실행 중인 Agent][3]가 있는 경우: + +1. Kubernetes 버전 `1.30` 이하에서는 `datadog-agent` 템플릿에 지정된 주석 `container.apparmor.security.beta.kubernetes.io/system-probe: unconfined`을 추가합니다. + + ```yaml + spec: + selector: + matchLabels: + app: datadog-agent + template: + metadata: + labels: + app: datadog-agent + name: datadog-agent + annotations: + container.apparmor.security.beta.kubernetes.io/system-probe: unconfined + ``` + For Kubernetes versions `1.30+`, add the following `securityContext` on the `datadog-agent` template: + + ```yaml + spec: + selector: + matchLabels: + app: datadog-agent + template: + metadata: + labels: + app: datadog-agent + name: datadog-agent + spec: + serviceAccountName: datadog-agent + securityContext: + appArmorProfile: + type: Unconfined + containers: + # (...) + ``` + +2. Agent DaemonSet에서 다음 환경 변수를 사용하여 프로세스 수집 및 시스템 프로브를 활성화합니다. Agent 프로세스별 컨테이너를 실행 중인 경우, 다음 환경 변수를 Process Agent 컨테이너에 추가하고, 그렇지 않으면 Agent 컨테이너에 추가합니다. + + ```yaml + # (...) + env: + # (...) + - name: DD_PROCESS_AGENT_ENABLED + value: 'true' + - name: DD_SYSTEM_PROBE_ENABLED + value: 'true' + - name: DD_SYSTEM_PROBE_EXTERNAL + value: 'true' + - name: DD_SYSPROBE_SOCKET + value: /var/run/sysprobe/sysprobe.sock + - name: DD_AUTH_TOKEN_FILE_PATH + value: /etc/datadog-agent/auth/token + ``` + +3. `datadog-agent` 컨테이너에 다음과 같은 추가 볼륨을 마운트합니다. + + ```yaml + # (...) + spec: + serviceAccountName: datadog-agent + containers: + - name: datadog-agent + image: 'registry.datadoghq.com/agent:latest' + # (...) + volumeMounts: + - name: procdir + mountPath: /host/proc + readOnly: true + - name: cgroups + mountPath: /host/sys/fs/cgroup + readOnly: true + - name: debugfs + mountPath: /sys/kernel/debug + - name: sysprobe-socket-dir + mountPath: /var/run/sysprobe + - name: auth-token + mountPath: /etc/datadog-agent/auth + readOnly: false # needs RW to write auth token + ``` + +4. Agent에 새 system-probe를 사이드카로 추가합니다. + + ```yaml + # (...) + spec: + serviceAccountName: datadog-agent + containers: + - name: datadog-agent + image: 'registry.datadoghq.com/agent:latest' + # (...) + - name: system-probe + image: 'registry.datadoghq.com/agent:latest' + imagePullPolicy: Always + securityContext: + capabilities: + add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_BROADCAST + - NET_RAW + - IPC_LOCK + - CHOWN + command: + - /opt/datadog-agent/embedded/bin/system-probe + env: + - name: DD_SYSTEM_PROBE_ENABLED + value: 'true' + - name: DD_SYSPROBE_SOCKET + value: /var/run/sysprobe/sysprobe.sock + - name: DD_AUTH_TOKEN_FILE_PATH + value: /etc/datadog-agent/auth/token + resources: + requests: + memory: 150Mi + cpu: 200m + limits: + memory: 300Mi + cpu: 400m + volumeMounts: + - name: procdir + mountPath: /host/proc + readOnly: true + - name: cgroups + mountPath: /host/sys/fs/cgroup + readOnly: true + - name: debugfs + mountPath: /sys/kernel/debug + - name: sysprobe-socket-dir + mountPath: /var/run/sysprobe + - name: auth-token + mountPath: /etc/datadog-agent/auth + readOnly: true + ``` + +5. 마지막으로 매니페스트에 다음 볼륨을 추가합니다. + + ```yaml + volumes: + - name: debugfs + hostPath: + path: /sys/kernel/debug + - name: sysprobe-socket-dir + emptyDir: { } + - name: auth-token + emptyDir: { } + ``` + +[1]: /ko/resources/yaml/datadog-agent-npm.yaml +[2]: https://app.datadoghq.com/organization-settings/api-keys +[3]: /ko/agent/kubernetes/ + +{{% /tab %}} +{{% tab "Operator" %}} + +[Datadog Operator][1]는 Kubernetes 및 OpenShift에서 Datadog Agent를 배포하는 과정을 간소화합니다. 사용자 지정 리소스 상태를 통해 배포 상태, 상태 및 오류 보고를 제공하며, 상위 수준 구성 옵션을 통해 구성 오류의 위험을 줄입니다. + +Datadog Operator에서 Cloud Network Monitoring을 활성화하려면 다음 구성을 사용합니다. + +```yaml +apiVersion: datadoghq.com/v2alpha1 +metadata: + name: placeholder + namespace: placeholder +spec: + features: + npm: + enabled: true +``` + +[1]: /ko/containers/datadog_operator +{{% /tab %}} +{{% tab "Docker" %}} + +Docker에서 Cloud Network Monitoring을 활성화하려면 컨테이너 Agent를 시작할 때 다음 구성을 사용하세요. + +```shell +docker run --cgroupns host \ +--pid host \ +-e DD_API_KEY="" \ +-e DD_SYSTEM_PROBE_NETWORK_ENABLED=true \ +-e DD_PROCESS_AGENT_ENABLED=true \ +-v /var/run/docker.sock:/var/run/docker.sock:ro \ +-v /proc/:/host/proc/:ro \ +-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ +-v /sys/kernel/debug:/sys/kernel/debug \ +--security-opt apparmor:unconfined \ +--cap-add=SYS_ADMIN \ +--cap-add=SYS_RESOURCE \ +--cap-add=SYS_PTRACE \ +--cap-add=NET_ADMIN \ +--cap-add=NET_BROADCAST \ +--cap-add=NET_RAW \ +--cap-add=IPC_LOCK \ +--cap-add=CHOWN \ +registry.datadoghq.com/agent:latest +``` + +``를 [Datadog API 키][1]로 대체합니다. + +`docker-compose`를 사용한다면 Datadog Agent 서비스에 다음을 추가합니다. + +```shell +version: '3' +services: + datadog: + image: "registry.datadoghq.com/agent:latest" + environment: + - DD_SYSTEM_PROBE_NETWORK_ENABLED=true + - DD_PROCESS_AGENT_ENABLED=true + - DD_API_KEY= + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /proc/:/host/proc/:ro + - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro + - /sys/kernel/debug:/sys/kernel/debug + cap_add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_BROADCAST + - NET_RAW + - IPC_LOCK + - CHOWN + security_opt: + - apparmor:unconfined +``` + +[1]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "ECS" %}} +Amazon ECS에서 CNM을 설정하려면 [Amazon ECS][1] 설명서 페이지를 참조하세요. + + +[1]: /ko/agent/amazon_ecs/#network-performance-monitoring-collection-linux-only +{{% /tab %}} + +{{% tab "ECS Fargate" %}} + +
    ECS Fargate용 CNM은 현재 미리보기 상태입니다. Datadog 담당자에게 연락하여 등록하세요.
    + +ECS Fargate에서 Cloud Network Monitoring을 활성화하려면 다음 지침을 사용하세요. + +**Agent 버전 `7.58` 이상이 필요합니다**. + +- 새로운 Fargate 배포의 경우, Fargate 호스트에서 [프로세스 수집][1]을 활성화하여 Datadog Agent가 ECS의 Fargate 환경을 모니터링하도록 구성합니다. + +- 기존 배포의 경우, `task.json` 파일을 업데이트하여 다음 구성 설정을 포함합니다. + +```json +{ + "containerDefinitions": [ + (...) + "environment": [ + (...) + { + "name": "DD_SYSTEM_PROBE_NETWORK_ENABLED", + "value": "true" + }, + { + "name": "DD_NETWORK_CONFIG_ENABLE_EBPFLESS", + "value": "true" + }, + { + "name": "DD_PROCESS_AGENT_ENABLED", + "value": "true" + } + ], + "linuxParameters": { + "capabilities": { + "add": [ + "SYS_PTRACE" + ] + } + }, + ], +} +``` +[1]: /ko/integrations/ecs_fargate/?tab=webui#process-collection + +{{% /tab %}} +{{< /tabs >}} + +{{< site-region region="us,us3,us5,eu" >}} +### 향상된 해상도 {#enhanced-resolution} + +원할 경우, 클라우드 통합용 리소스 수집을 활성화하면 Cloud Network Monitoring에서 클라우드 관리형 엔터티를 검색할 수 있습니다. +- AWS Load Balancer 및 애플리케이션 게이트웨이에 대한 가시성을 확보하려면 [Azure 통합][101]을 설치합니다. +- AWS Load Balancer 가시성을 확보하려면 [AWS 통합][102]을 설치합니다. **ENI 및 EC2 메트릭 수집을 활성화해야 합니다.**. + +이러한 기능에 대한 자세한 내용은 [Cloud service enhanced resolution][103]을 참조하세요. + +[101]: /ko/integrations/azure +[102]: /ko/integrations/amazon_web_services/#resource-collection +[103]: /ko/network_monitoring/cloud_network_monitoring/network_analytics/#cloud-service-enhanced-resolution + +{{< /site-region >}} + +### 실패한 연결 {#failed-connections} + +Failed Connections는 [재설정, 거부 및 시간 초과][14]을 포함한 TCP 실패의 수집 및 보고를 허용합니다. 이 기능은 Agent 버전 `7.59+`부터 기본적으로 활성화되어 있으며, [CNM 분석][15] 페이지의 **Customize** 메뉴에서 **Failures** 토글을 켜서 사용할 수 있습니다. + +**참고**: 인프라의 일부 Agent가 `7.59`보다 이전 버전을 실행 중인 경우 실패 연결 수가 실제보다 적게 보고될 수 있습니다. CNM은 _모든_ 호스트에서 동일한 Agent 버전을 유지할 것을 권장합니다. + +{{< img src="network_performance_monitoring/setup/cnm_tcp_failures_toggle.png" alt="CNM Customize 메뉴에서 Failures 토글을 강조 표시한 스크린샷" style="width:50%;">}} + +## 추가 자료 {#further-reading} +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: https://docs.datadoghq.com/ko/network_monitoring/dns/#setup +[3]: https://www.redhat.com/en/blog/introduction-ebpf-red-hat-enterprise-linux-7 +[4]: /ko/network_monitoring/dns/ +[5]: https://docs.datadoghq.com/ko/agent/docker/ +[6]: https://docs.datadoghq.com/ko/agent/kubernetes/ +[7]: https://docs.datadoghq.com/ko/agent/amazon_ecs +[8]: https://docs.datadoghq.com/ko/integrations/istio/ +[9]: https://docs.datadoghq.com/ko/tracing/setup_overview/proxy_setup/?tab=istio +[10]: https://www.datadoghq.com/blog/istio-datadog/ +[11]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/README.md#enabling-system-probe-collection +[12]: https://github.com/DataDog/chef-datadog +[13]: https://github.com/DataDog/ansible-datadog/blob/master/README.md#system-probe +[14]: /ko/network_monitoring/cloud_network_monitoring/network_analytics/?tab=loadbalancers#tcp +[15]: https://app.datadoghq.com/network \ No newline at end of file diff --git a/content/ko/opentelemetry/setup/collector_exporter/install.md b/content/ko/opentelemetry/setup/collector_exporter/install.md new file mode 100644 index 00000000000..b3781944db6 --- /dev/null +++ b/content/ko/opentelemetry/setup/collector_exporter/install.md @@ -0,0 +1,311 @@ +--- +aliases: +- /ko/tracing/setup_overview/open_standards/otel_collector_datadog_exporter/ +- /ko/tracing/trace_collection/open_standards/otel_collector_datadog_exporter/ +- /ko/opentelemetry/otel_collector_datadog_exporter/ +- /ko/opentelemetry/collector_exporter/ +- /ko/opentelemetry/collector_exporter/otel_collector_datadog_exporter +description: OpenTelemetry 데이터를 OpenTelemetry 컬렉터 및 Datadog 익스포터로 전송하기 +further_reading: +- link: https://opentelemetry.io/docs/collector/ + tag: 외부 사이트 + text: 컬렉터 설명서 +- link: https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/ + tag: 블로그 + text: Datadog 익스포터를 사용해 메트릭, 트레이스, 로그를 OpenTelemetry 컬렉터에서 Datadog으로 전송합니다. +- link: /opentelemetry/integrations/datadog_extension/ + tag: 설명서 + text: Fleet Automation에서 컬렉터 구성을 검사할 수 있도록 Datadog 확장 활성화 +title: OpenTelemetry Collector 설정 +--- +## 개요 {#overview} + +OpenTelemetry Collector를 사용하면 애플리케이션의 텔레메트리 데이터를 공급업체 중립적인 방식으로 수집, 처리 및 내보낼 수 있습니다. [Datadog Exporter][1] 및 [Datadog Connector][29]와 함께 구성하면 Datadog Agent 없이도 트레이스, 로그 및 메트릭을 Datadog으로 보낼 수 있습니다. + +- **Datadog Exporter**: OpenTelemetry SDK에서 수집한 트레이스, 메트릭 및 로그 데이터를 Datadog으로 전송합니다(Datadog Agent 불필요). +- **Datadog Connector**: 수집된 스팬 데이터에서 트레이스 메트릭을 계산합니다. + +{{< img src="/opentelemetry/setup/otel-collector.png" alt="다이어그램: 코드의 OpenTelemetry SDK가 OTLP를 통해 Datadog 익스포터를 사용하여 OpenTelemetry Collector를 실행 중인 호스트로 데이터를 보내고, 여기에서 Datadog의 Observability Platform으로 전달됩니다." style="width:100%;" >}} + +
    이 설정에서 지원되는 Datadog 기능을 보려면 전체 OpenTelemetry
    기능 호환성 표를 참조하세요. + +## 설치 및 구성 {#install-and-configure} + +### 1 - OpenTelemetry Collector 다운로드 {#1-download-the-opentelemetry-collector} + +OpenTelemetry Collector Contrib 배포판의 최신 릴리스를 [프로젝트의 리포지토리][3]에서 다운로드합니다. + +### 2 - Datadog Exporter 및 Datadog Connector 구성 {#2-configure-the-datadog-exporter-and-connector} + +Datadog Exporter 및 Datadog Connector를 사용하려면 [OpenTelemetry Collector 구성][4]에서 구성합니다. + +1. 이름이 `collector.yaml`인 구성 파일을 만듭니다. +1. 시작하기 위해 다음 예제 파일을 사용합니다. +1. Datadog API 키를 `DD_API_KEY` 환경 변수로 설정합니다. + +{{% otel-endpoint-note %}} + +
    현재 AWS EKS Fargate는 OpenTelemetry Collector를 지원하는 환경이 아닙니다. EKS Fargate에 Collector를 배포하면 인프라 호스트 과금이 부정확하게 계산될 수 있습니다.
    + +```yaml +receivers: + otlp: + protocols: + http: + endpoint: 0.0.0.0:4318 + grpc: + endpoint: 0.0.0.0:4317 + # The hostmetrics receiver is required to get correct infrastructure metrics in Datadog. + hostmetrics: + collection_interval: 10s + scrapers: + paging: + metrics: + system.paging.utilization: + enabled: true + cpu: + metrics: + system.cpu.utilization: + enabled: true + disk: + filesystem: + metrics: + system.filesystem.utilization: + enabled: true + load: + memory: + network: + processes: + # The prometheus receiver scrapes metrics needed for the OpenTelemetry Collector Dashboard. + prometheus: + config: + scrape_configs: + - job_name: 'otelcol' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + + filelog: + include_file_path: true + poll_interval: 500ms + include: + - /var/log/**/*example*/*.log + +processors: + batch: + send_batch_max_size: 100 + send_batch_size: 10 + timeout: 10s + +connectors: + datadog/connector: + +exporters: + datadog/exporter: + api: + site: {{< region-param key="dd_site" >}} + key: ${env:DD_API_KEY} + +service: + pipelines: + metrics: + receivers: [hostmetrics, prometheus, otlp, datadog/connector] + processors: [batch] + exporters: [datadog/exporter] + traces: + receivers: [otlp] + processors: [batch] + exporters: [datadog/connector, datadog/exporter] + logs: + receivers: [otlp, filelog] + processors: [batch] + exporters: [datadog/exporter] +``` + +이 기본 구성에서는 HTTP 및 gRPC를 통해 OTLP 데이터를 수신할 수 있으며, [Batch Processor][5]를 설정합니다. + +Datadog Exporter의 구성 옵션에 대한 전체 목록은 [완전히 문서화된 예제 구성 파일][8]을 참조하세요. 배포에 따라 `api::site` 및 `host_metadata` 설정과 같은 옵션이 추가로 필요할 수 있습니다. + +#### 배치 프로세서 구성 {#batch-processor-configuration} + +개발 환경이 아닌 경우 배치 프로세서는 필수입니다. 정확한 구성은 특정 워크로드와 신호 유형에 따라 다릅니다. + +Datadog의 수집 한도에 따라 배치 프로세서를 구성합니다. + +- 트레이스 수집: 3.2MB +- 로그 수집: [압축 해제 기준 5MB][6] +- 메트릭 V2 수집: [500KB 또는 압축 해제 후 5MB][7] + +배치 프로세서에서 너무 많은 텔레메트리 데이터를 묶으면 `413 - Request Entity Too Large` 오류가 발생할 수 있습니다. + +### 3 - 애플리케이션 구성 {#3-configure-your-application} + +트레이스에 대한 더 나은 메타데이터를 얻고 Datadog과 원활하게 통합하려면 다음을 따르세요. + +- **리소스 탐지기 사용**: 사용 중인 언어 SDK에서 리소스 탐지기를 제공하면 컨테이너 정보를 리소스 속성으로 추가합니다. 예를 들어, Go에서는 [`WithContainer()`][9] 리소스 옵션을 사용하세요. + +- **[Unified Service Tagging][10]** 적용: unified service tagging에 필요한 적절한 리소스 속성이 애플리케이션에 구성되어 있는지 확인합니다. 이를 통해 Datadog 텔레메트리를 서비스 이름, 배포 환경 및 서비스 버전 태그와 연결할 수 있습니다. 애플리케이션은 OpenTelemetry 시맨틱 규칙에 따라 다음 태그를 설정해야 합니다. `service.name`, `deployment.environment` 및 `service.version`. + +### 4 - 애플리케이션의 로거 구성 {#4-configure-the-logger-for-your-application} + +{{< img src="logs/log_collection/otel_collector_logs.png" alt="호스트, 컨테이너, 또는 애플리케이션의 데이터가 Collector의 파일로그 수신기로 전송되고 Collector의 Datadog Explorer가 Datadog 백엔드로 데이터를 전송하는 흐름을 보여주는 다이어그램" style="width:100%;">}} + +OpenTelemetry SDK의 로깅 기능은 아직 완전히 지원되지 않으므로(자세한 내용은 [OpenTelemetry 문서][11]의 해당 언어별 설명 참조), Datadog은 애플리케이션에서 표준 로깅 라이브러리를 사용할 것을 권장합니다. 애플리케이션에서 적절한 로거를 설정하려면 언어별 [로그 수집 설명서][12]를 따르세요. Datadog에서는 [사용자 지정 파싱 규칙][13]이 필요하지 않도록 로깅 라이브러리를 설정하여 로그를 JSON으로 출력하는 것을 권장합니다. + +#### 파일로그 수신기 구성 {#configure-the-filelog-receiver} + +[연산자][14]를 사용하여 파일로그 수신기를 구성합니다. 예를 들어, `checkoutservice` 서비스가 `/var/log/pods/services/checkout/0.log`에 로그를 기록하고 있다면, 샘플 로그는 다음과 같을 수 있습니다. + +``` +{"level":"info","message":"order confirmation email sent to \"jack@example.com\"","service":"checkoutservice","span_id":"197492ff2b4e1c65","timestamp":"2022-10-10T22:17:14.841359661Z","trace_id":"e12c408e028299900d48a9dd29b0dc4c"} +``` + +filelog 구성 예시: + +``` +filelog: + include: + - /var/log/pods/**/*checkout*/*.log + start_at: end + poll_interval: 500ms + operators: + - id: parse_log + type: json_parser + parse_from: body + - id: trace + type: trace_parser + trace_id: + parse_from: attributes.trace_id + span_id: + parse_from: attributes.span_id + attributes: + ddtags: env:staging +``` + +- `include`: 수신기가 테일링하는 파일 목록 +- `start_at: end`: 새로 기록되는 내용 수집 +- `poll_internal`: 폴링 빈도 설정 +- Operator: + - `json_parser`: JSON 로그를 구문 분석합니다. 기본적으로, filelog receiver는 각 로그 라인을 로그 레코드로 변환하며, 이는 로그의 [데이터 모델][15]의 `body`입니다. 그런 다음, `json_parser`는 JSON 본문을 데이터 모델의 속성으로 변환합니다. + - `trace_parser`: 로그에서 `trace_id`와 `span_id`를 추출하여 Datadog에서 로그와 트레이스의 상관관계를 지을 수 있습니다. + +#### OpenTelemetry의 `service.name` 속성을 로그의 `service`service{#remap-otels-servicename-attribute-to-service-for-logs} 필드로 재매핑 + +Datadog Exporter 버전 0.83.0 이상에서는 OpenTelemtry 로그의 `service` 필드가 [OpenTelemtry 시맨틱 규칙][25]의 `service.name` 값으로 채워집니다. 그러나 `service.name`는 Datadog의 로그 전처리에서 기본 [서비스 속성][26]으로 사용되지 않습니다. + +로그의 `service` 필드를 올바르게 채우려면 [로그 서비스 리매퍼 프로세서][27]를 설정하여 `service.name`을 로그의 서비스 정보 소스로 지정할 수 있습니다. + +{{% collapse-content title="선택 사항: Kubernetes 사용" level="h4" %}} + +
    현재 AWS EKS Fargate는 OpenTelemetry Collector를 지원하는 환경이 아닙니다. EKS Fargate에 Collector를 배포하면 인프라 호스트 과금이 부정확하게 계산될 수 있습니다.
    + +Kubernetes 인프라에서 OpenTelemetry Collector와 Datadog Exporter를 배포하는 방법은 여러 가지가 있습니다. 파일로그 수신기가 작동하려면 [Agent/DaemonSet 배포][16] 방식이 권장됩니다. + +컨테이너화된 환경에서 애플리케이션은 `stdout` 또는 `stderr`에 로그를 기록합니다. Kubernetes는 로그를 수집하여 표준 위치에 기록합니다. 파일로그 수신기를 위해 호스트 노드의 위치를 수집기에 마운트해야 합니다. 아래는 로그 전송에 필요한 마운트가 포함된 [확장 예제][17]입니다. + +``` +apiVersion: apps/v1 +metadata: + name: otel-agent + labels: + app: opentelemetry + component: otel-collector +spec: + template: + metadata: + labels: + app: opentelemetry + component: otel-collector + spec: + containers: + - name: collector + command: + - "/otelcol-contrib" + - "--config=/conf/otel-agent-config.yaml" + image: otel/opentelemetry-collector-contrib:0.71.0 + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + # The k8s.pod.ip is used to associate pods for k8sattributes + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.pod.ip=$(POD_IP)" + ports: + - containerPort: 4318 # default port for OpenTelemetry HTTP receiver. + hostPort: 4318 + - containerPort: 4317 # default port for OpenTelemetry gRPC receiver. + hostPort: 4317 + - containerPort: 8888 # Default endpoint for querying metrics. + volumeMounts: + - name: otel-agent-config-vol + mountPath: /conf + - name: varlogpods + mountPath: /var/log/pods + readOnly: true + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + volumes: + - name: otel-agent-config-vol + configMap: + name: otel-agent-conf + items: + - key: otel-agent-config + path: otel-agent-config.yaml + # Mount nodes log file location. + - name: varlogpods + hostPath: + path: /var/log/pods + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers +``` + +{{% /collapse-content %}} + +## 기본 제공 Datadog Exporter 구성 {#out-of-the-box-datadog-exporter-configuration} + +OpenTelemetry Collector Contrib 프로젝트의 [`exporter/datadogexporter/examples` 폴더][31]에서 Datadog Exporter의 기본 제공 구성 작업 예제를 찾을 수 있습니다. 전체 구성 예제 파일 [`ootb-ec2.yaml`][30]을 참조하세요. **참고**: 이 예제는 EC2 호스트에서 직접 실행되는 애플리케이션을 위한 것입니다. 컨테이너화된 애플리케이션에 대해서는 [배포 설명서][33]를 참조하세요. + +다음 구성 요소 각각을 필요에 맞게 구성하세요. + +{{< whatsnext desc=" " >}} + {{< nextlink href="/opentelemetry/collector_exporter/otlp_receiver/" >}}OTLP 수신기{{< /nextlink >}} + {{< nextlink href="/opentelemetry/collector_exporter/hostname_tagging/" >}}호스트 이름 및 태그{{< /nextlink >}} + {{< nextlink href="/opentelemetry/collector_exporter/collector_batch_memory/" >}}배치 및 메모리 설정{{< /nextlink >}} +{{< /whatsnext >}} + +## Fleet Automation에서 수집기 구성 검증 {#validate-your-collector-configurations-in-fleet-automation} + +Datadog 확장을 활성화하여 Fleet Automation에서 OpenTelemetry Collector 구성을 검사하고 문제를 해결하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter +[3]: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/latest +[4]: https://opentelemetry.io/docs/collector/configuration/ +[5]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/processor/batchprocessor/README.md +[6]: /ko/api/latest/logs/ +[7]: /ko/api/latest/metrics/#submit-metrics +[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml +[9]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/resource#WithContainer +[10]: /ko/getting_started/tagging/unified_service_tagging/ +[11]: https://opentelemetry.io/docs/instrumentation/ +[12]: /ko/logs/log_collection/?tab=host +[13]: /ko/logs/log_configuration/parsing/ +[14]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/stanza/docs/operators +[15]: https://opentelemetry.io/docs/reference/specification/logs/data-model/ +[16]: https://opentelemetry.io/docs/collector/deployment/#agent +[17]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml +[25]: https://opentelemetry.io/docs/specs/semconv/resource/#service +[26]: /ko/logs/log_configuration/pipelines/?tab=service#service-attribute +[27]: /ko/logs/log_configuration/processors/service_remapper/ +[28]: /ko/opentelemetry/schema_semantics/hostname/ +[29]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/datadogconnector +[30]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/ootb-ec2.yaml +[31]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/ +[32]: /ko/opentelemetry/compatibility/ +[33]: /ko/opentelemetry/collector_exporter/deployment \ No newline at end of file diff --git a/content/ko/opentelemetry/setup/otlp_ingest_in_the_agent.md b/content/ko/opentelemetry/setup/otlp_ingest_in_the_agent.md new file mode 100644 index 00000000000..687787da128 --- /dev/null +++ b/content/ko/opentelemetry/setup/otlp_ingest_in_the_agent.md @@ -0,0 +1,397 @@ +--- +aliases: +- /ko/tracing/setup_overview/open_standards/otlp_ingest_in_the_agent/ +- /ko/tracing/trace_collection/open_standards/otlp_ingest_in_the_agent/ +- /ko/opentelemetry/otlp_ingest_in_the_agent/ +- /ko/opentelemetry/interoperability/otlp_ingest_in_the_agent/ +description: Datadog Agent를 통해 OTLP 트레이스 데이터 수집 +further_reading: +- link: https://www.datadoghq.com/about/latest-news/press-releases/datadog-announces-opentelemetry-protocol-support/ + tag: 블로그 + text: Agent의 OTLP 수집 +- link: /metrics/open_telemetry/otlp_metric_types + tag: 설명서 + text: OTLP 메트릭 유형 +- link: /opentelemetry/runtime_metrics/ + tag: 설명서 + text: OpenTelemetry 런타임 메트릭 +title: Datadog Agent에 의한 OTLP 수집 +--- +OTLP Ingest in the Agent는 [OpenTelemetry SDK][1]로 계측된 애플리케이션에서 Datadog Agent로 직접 텔레메트리 데이터를 전송하는 기능입니다. Datadog Agent는 6.32.0 및 7.32.0 버전부터 gRPC 또는 HTTP를 통해 OTLP 트레이스 및 [OTLP 메트릭][2]을 수집할 수 있습니다. Datadog Agent는 6.48.0 및 7.48.0 버전부터 gRPC 또는 HTTP를 통해 OTLP 로그를 수집할 수 있습니다. + +OTLP Ingest in the Agent를 사용하면 Datadog Agent의 observability 기능을 활용할 수 있습니다. OpenTelemetry SDK로 계측된 애플리케이션의 데이터는 App and API Protection, Continuous Profiler, 그리고 Ingestion Rules와 같은 일부 Datadog 독점 제품에서는 사용할 수 없습니다. [일부 언어에서는 OpenTelemetry Runtime Metrics도 지원됩니다][10]. + +{{< img src="/opentelemetry/setup/dd-agent-otlp-ingest.png" alt="다이어그램: OpenTelemetry SDK는 OTLP 프로토콜을 통해 Datadog Exporter가 있는 수집기로 데이터를 전송하며, 이는 Datadog 플랫폼으로 전달됩니다." style="width:100%;" >}} + +
    이 설정에서 지원되는 Datadog 기능을 보려면 기능 호환성 표OTel to Datadog Agent(OTLP) 항목을 참조하세요.
    + +## 초기 설정 {#initial-setup} + +시작하려면 먼저 OpenTelemetry SDK로 [애플리케이션을 계측][3]합니다. 그런 다음, OTLP 형식으로 텔레메트리 데이터를 Datadog Agent로 내보냅니다. 구성 방법은 서비스가 배포된 인프라의 종류에 따라 다르며, 아래 페이지에 설명되어 있습니다. 최신 OTLP 버전과의 호환성을 목표로 하지만, OTLP Ingest in the Agent 기능이 모든 OTLP 버전을 지원하는 것은 아닙니다. Datadog Agent와 호환되는 OTLP 버전은 OpenTelemetry 수집기의 OTLP 수신기가 지원하는 버전과 동일합니다. 정확한 지원 버전은 Agent의 `go.mod` 파일에 지정된 `go.opentelemetry.io/collector` 버전을 확인하세요. + +Agent에 계측을 전송하는 방법은 OpenTelemetry 계측 설명서를 참조하세요. 아래에 설명된 `receiver` 섹션은 [ OpenTelemetry 수집기의 OTLP 수신기 구성 스키마][5]를 따릅니다. + +
    지원되는 설정은 OpenTelemetry 데이터를 생성하는 각 호스트에 수집용 Agent를 배포하는 방식입니다. OpenTelemetry 텔레메트리를 수집기나 계측된 앱이 실행되는 호스트에서 다른 호스트의 Agent로 보내는 방식은 지원되지 않습니다. 다만 수집기나 SDK 계측 앱과 Agent가 동일 호스트에 있다면 여러 파이프라인을 설정할 수 있습니다.
    + +## Datadog Agent에서의 OTLP 수집 활성화 {#enabling-otlp-ingestion-on-the-datadog-agent} + +{{< tabs >}} +{{% tab "호스트" %}} + +OTLP 수집은 기본적으로 꺼져 있으며, `datadog.yaml` 파일 구성을 업데이트하거나 환경 변수를 구성하여 활성화할 수 있습니다. 다음 `datadog.yaml` 구성은 기본 포트에서 엔드포인트를 활성화합니다. 활성화되면, 메트릭 및 트레이스 수집은 기본적으로 켜져 있습니다. 로그 수집은 예기치 않은 로그 과금을 방지하기 위해 기본적으로 비활성화되어 있습니다. + +{{% otel-endpoint-note %}} + +gRPC의 경우, 기본 포트 4317: + +```yaml +otlp_config: + receiver: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + logs: + enabled: false +``` +HTTP의 경우, 기본 포트 4318: + +```yaml +otlp_config: + receiver: + protocols: + http: + endpoint: 0.0.0.0:4318 + logs: + enabled: false +``` + +또는 환경 변수를 통해 포트를 제공하여 엔드포인트를 구성할 수 있습니다. + +- gRPC의 경우(`localhost:4317`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT` +- HTTP의 경우(`localhost:4318`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT` + +이 설정은 코어 Agent와 트레이스 Agent 프로세스 모두에 전달해야 합니다. 컨테이너화된 환경에서 실행 중인 경우, 서버가 로컬 인터페이스 외부에서도 접근 가능하도록 `localhost` 대신 `0.0.0.0`을 사용하세요. + +이 기능에 대해 gRPC와 HTTP 중 하나를 선택하여 구성할 수 있습니다. 여기 [두 가지에 대한 구성을 보여주는 예제 애플리케이션][1]이 있습니다. + +[1]: https://gist.github.com/gbbr/4a54dd02d34ad05e694952e0a02e1c67 +{{% /tab %}} +{{% tab "Docker" %}} + +1. [Datadog Docker Agent 설정][1]을 따릅니다. + +2. Datadog Agent 컨테이너의 경우, 다음 엔드포인트 환경 변수를 설정하고 해당 포트를 노출합니다. + - gRPC의 경우: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT`를 `0.0.0.0:4317`로 설정하고 포트 `4317`을 노출합니다. + - HTTP의 경우: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT`을 `0.0.0.0:4318`로 설정하고 포트 `4318`을 노출합니다. + +
    +알려진 문제: Agent 7.61.0 버전 이상에서는 Docker 환경에서 OTLP 수집 파이프라인이 시작되지 않으며 다음과 같은 오류가 발생할 수 있습니다. Error running the OTLP ingest pipeline: failed to register process metrics: process does not exist.

    +영향을 받는 버전을 사용 중인 경우, 다음의 해결 방법 중 하나를 사용할 수 있습니다.

    +1. Agent Dcoker 컨테이너에서 환경 변수 HOST_PROC/proc 로 설정합니다.
    +2. Agent Docket 컨테이너에서 /proc/:/host/proc/:rovolumes 에서 제거합니다.
    +3. Agent Dcoker 컨테이너에서 pidhost 로 설정합니다.

    +이 구성은 docker 명령 또는 Docker Compose 파일을 통해 적용할 수 있습니다.
    + +[1]: /ko/agent/docker/ +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +1. [Kubernetes Agent 설정][1]을 따라 기본 설치를 진행합니다. + +2. Operator의 `datadog-agent.yaml` 매니페스트에서 원하는 프로토콜(gRPC 또는 HTTP)을 활성화합니다. + + gRPC의 경우: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + # (...) + features: + otlp: + receiver: + protocols: + grpc: + enabled: true + ``` + + For HTTP: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + # (...) + features: + otlp: + receiver: + protocols: + http: + enabled: true + ``` + +{{% k8s-operator-redeploy %}} + +이렇게 하면 기본 포트(OTLP/gRPC: `4317`, OTLP/HTTP: `4318`)에서 각 프로토콜이 활성화됩니다. 메트릭 및 트레이스는 기본적으로 활성화되어 있습니다. + +[1]: /ko/agent/kubernetes/ +{{% /tab %}} +{{% tab "Helm" %}} + +1. [Kubernetes Agent 설정][1]을 따라 기본 설치를 진행합니다. + +2. Helm의 `datadog-values.yaml` 파일에서 원하는 프로토콜(gRPC 또는 HTTP)을 활성화합니다. + + gRPC의 경우: + ```yaml + datadog: + # (...) + otlp: + receiver: + protocols: + grpc: + enabled: true + ``` + + For HTTP: + ```yaml + datadog: + # (...) + otlp: + receiver: + protocols: + http: + enabled: true + ``` + +{{% k8s-helm-redeploy %}} + +이렇게 하면 기본 포트(OTLP/gRPC: `4317`, OTLP/HTTP: `4318`)에서 각 프로토콜이 활성화됩니다. 메트릭 및 트레이스는 기본적으로 활성화되어 있습니다. + +[1]: /ko/agent/kubernetes/ +{{% /tab %}} +{{% tab "수동(Daemonset)" %}} + +1. [수동 Kubernetes 설치 가이드][1]를 따라 기본 설치를 진행합니다.. + +2. 다음 환경 변수를 `trace-agent` 컨테이너와 핵심 `agent` 컨테이너 모두에 구성합니다. + + gRPC의 경우: + ```yaml + name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT # enables gRPC receiver on port 4317 + value: "0.0.0.0:4317" + ``` + + For HTTP: + ```yaml + name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT # enables HTTP receiver on port 4318 + value: "0.0.0.0:4318" + ``` + +3. 컨테이너 포트 4317 또는 4318을 핵심 `agent` 컨테이너의 호스트 포트에 매핑합니다. + + gRPC의 경우: + ```yaml + ports: + - containerPort: 4317 + hostPort: 4317 + name: traceportgrpc + protocol: TCP + ``` + + For HTTP + ```yaml + ports: + - containerPort: 4318 + hostPort: 4318 + name: traceporthttp + protocol: TCP + ``` + +[1]: /ko/containers/guide/kubernetes_daemonset/ +{{% /tab %}} +{{% tab "AWS Lambda" %}} + +AWS Lambda 및 Datadog에서 OpenTelemetry를 사용하는 방법에 대한 자세한 지침은 다음과 같습니다. + +- OpenTelemetry로 Lambda 함수를 계측하기 +- Datadog SDK 내에서 OpenTelemetry API 지원 사용하기 +- OpenTelemetry 트레이스를 Datadog Lambda Extension으로 보내기 + +Serverless 설명서에서 [AWS Lambda 및 OpenTelemetry][100]를 참조하세요. + +[100]: /ko/serverless/aws_lambda/opentelemetry/ +{{% /tab %}} +{{< /tabs >}} + +### OTLP 로그 수집 활성화 {#enabling-otlp-logs-ingestion} + +OTLP 로그 수집은 예기치 않은 과금을 방지하기 위해 기본적으로 비활성화되어 있습니다. 활성화하려면 로그 수집과 OTLP 로그 수집을 모두 명시적으로 활성화해야 합니다. + +{{< tabs >}} +{{% tab "호스트" %}} + +1. [Host Agent 로그 수집 설정][7]을 따라 로그 수집을 활성화합니다. + + ```yaml + logs_enabled: true + ``` + +2. `otlp_config.logs.enabled`를 true로 설정합니다. + + ```yaml + otlp_config: + logs: + enabled: true + ``` + +[7]: /ko/agent/logs/ +{{% /tab %}} +{{% tab "Docker" %}} + +Datadog Agent 컨테이너에서 다음 환경 변수를 설정합니다. + +- `DD_LOGS_ENABLED=true` +- `DD_OTLP_CONFIG_LOGS_ENABLED=true` + +{{% /tab %}} +{{% tab "Datadog Operator" %}} + +`datadog-agent.yaml` 파일 + +```yaml +spec: + # (...) + features: + otlp: + #(... enable gRPC or HTTP ingestion...) + logCollection: + enabled: true + override: + nodeAgent: + containers: + agent: + env: + - name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" +``` + +{{% k8s-operator-redeploy %}} + +{{% /tab %}} +{{% tab "Helm" %}} + +`datadog-values.yaml` 파일: + +```yaml +datadog: + # (...) + otlp: + #(... enable gRPC or HTTP ingestion...) + logs: + enabled: true + logs: + enabled: true +``` + +{{% k8s-helm-redeploy %}} + +{{% /tab %}} +{{% tab "수동(Daemonset)" %}} + +핵심 Agent 컨테이너에서 다음 환경 변수를 설정합니다. + +```yaml +- name: DD_LOGS_ENABLED + value: "true" +- name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" +``` + +자세한 내용은 [DaemonSet을 통한 로그 수집][8]을 참조하세요. + +[8]: /ko/containers/guide/kubernetes_daemonset/#log-collection +{{% /tab %}} +{{< /tabs >}} + +Datadog Agent에는 이 외에도 다양한 환경 변수와 설정이 지원됩니다. 전체 구성 목록은 [구성 템플릿][6]을 참조하세요. + +## OpenTelemetry 트레이스, 메트릭 및 로그를 Datadog Agent로 보내기 {#sending-opentelemetry-traces-metrics-and-logs-to-datadog-agent} + +Datadog Agent에서 OTLP 수집을 활성화한 후, OpenTelemetry로 계측된 애플리케이션을 구성하여 Agent의 OTLP 엔드포인트로 텔레메트리 데이터를 내보내야 합니다. **애플리케이션** 환경에 `OTEL_EXPORTER_OTLP_ENDPOINT` 환경 변수를 설정하여 데이터를 Agent로 전달합니다. 이 구성을 하지 않으면 Agent의 OTLP 수신기가 활성화되어 있어도 애플리케이션은 텔레메트리 데이터를 Agent로 전송하지 않습니다. + +{{< tabs >}} +{{% tab "호스트" %}} +애플리케이션의 환경에서 `OTEL_EXPORTER_OTLP_ENDPOINT` 환경 변수를 설정합니다. + +gRPC의 경우: + +```shell +export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" +``` + +HTTP의 경우: + +```shell +export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318" +``` +{{% /tab %}} + +{{% tab "Docker" %}} +1. 애플리케이션 컨테이너의 경우, `OTEL_EXPORTER_OTLP_ENDPOINT` 환경 변수를 Datadog Agent 컨테이너를 가리키도록 설정합니다. 예를 들면 다음과 같습니다. + + ``` + OTEL_EXPORTER_OTLP_ENDPOINT=http://:4318 + ``` + +2. 두 컨테이너는 동일한 브리지 네트워크에 정의되어야 하며, Docker Compose를 사용하면 자동으로 처리됩니다. 그렇지 않으면 [Docker 애플리케이션 추적][1]의 Docker 예제를 따라 올바른 포트로 브리지 네트워크를 설정합니다. + +[1]: /ko/agent/docker/apm/#docker-network +{{% /tab %}} + +{{% tab "Kubernetes" %}} +애플리케이션 배포 파일에서 OpenTelemetry 클라이언트가 트레이스를 전송할 엔드포인트를 `OTEL_EXPORTER_OTLP_ENDPOINT` 환경 변수를 사용하여 구성합니다. + +gRPC의 경우: + +```yaml +env: + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "http://$(HOST_IP):4317" # sends to gRPC receiver on port 4317 +``` + +HTTP의 경우: + +```yaml +env: + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "http://$(HOST_IP):4318" # sends to HTTP receiver on port 4318 +``` +**참고**: 사용자 지정 메트릭에 대한 컨테이너 태그를 강화하려면 OTLP 메트릭이 생성되는 애플리케이션 코드에서 적절한 리소스 속성을 설정해야 합니다. 예를 들어, `container.id` 리소스 속성을 포드의 UID로 설정합니다. + +{{% /tab %}} +{{< /tabs >}} + +
    트레이스를 전송하기 위한 엔드포인트를 구성할 때는 OTLP 라이브러리에서 요구하는 올바른 경로를 사용해야 합니다. 일부 라이브러리는 /v1/traces 경로로 트레이스를 전송하도록 요구하는 반면 일부 라이브러리는 루트 경로 /를 사용합니다.
    + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://opentelemetry.io/docs/instrumentation/ +[2]: /ko/metrics/open_telemetry/otlp_metric_types/ +[3]: https://opentelemetry.io/docs/concepts/instrumenting/ +[4]: https://github.com/DataDog/datadog-agent/blob/main/CHANGELOG.rst +[5]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/config.md +[6]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/config_template.yaml +[10]: /ko/opentelemetry/runtime_metrics/ \ No newline at end of file diff --git a/content/ko/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md b/content/ko/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md new file mode 100644 index 00000000000..7a01e5c28d3 --- /dev/null +++ b/content/ko/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md @@ -0,0 +1,15 @@ +--- +aliases: +- /ko/real_user_monitoring/browser/troubleshooting/ +description: RUM 브라우저 SDK와 관련된 일반적인 문제를 해결하세요. 여기에는 데이터 누락, 광고 차단기, 네트워크 제한 및 구성 문제 + 등이 포함됩니다. +further_reading: +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: 블로그 + text: Real User Monitoring +- link: /integrations/content_security_policy_logs/ + tag: 설명서 + text: 콘텐츠 보안 정책 +title: Browser SDK 문제 해결 +--- +{% partial file="sdk/troubleshooting/browser.mdoc.md" /%} \ No newline at end of file diff --git a/content/ko/real_user_monitoring/rum_without_limits/_index.md b/content/ko/real_user_monitoring/rum_without_limits/_index.md new file mode 100644 index 00000000000..9d499adf66b --- /dev/null +++ b/content/ko/real_user_monitoring/rum_without_limits/_index.md @@ -0,0 +1,112 @@ +--- +description: 필요한 RUM 데이터만 유지하면서 애플리케이션의 성능 메트릭에 대한 완전한 가시성을 유지하세요. +further_reading: +- link: /real_user_monitoring/rum_without_limits/retention_filters + tag: 설명서 + text: 보존 필터를 사용하여 데이터를 유지하세요. +- link: /real_user_monitoring/guide/retention_filter_best_practices/ + tag: 가이드 + text: 보존 필터 모범 사례 +- link: /real_user_monitoring/rum_without_limits/metrics + tag: 설명서 + text: 메트릭으로 성능 분석 +- link: /real_user_monitoring/rum_without_limits/retention_quotas + tag: 설명서 + text: 보존 할당량으로 비용 제어 +- link: https://www.datadoghq.com/blog/rum-without-limits/ + tag: 블로그 + text: 'RUM without Limits™ 소개: 모든 것을 캡처하고 중요한 것만 유지' +- link: https://learn.datadoghq.com/courses/rum-retention-filters + tag: 학습 센터 + text: '인터랙티브 실험실: RUM 보존 필터' +title: RUM without Limits +--- +
    RUM without Limits는 비약정 RUM 플랜을 가진 고객에게 자동으로 활성화됩니다. 계정 팀이나 Datadog 지원에 문의하여 이 기능을 활성화하세요.
    + +{{< img src="real_user_monitoring/rum_without_limits/rum-without-limits-overview.png" alt="예상 사용 메트릭 세부정보 사이드 패널" style="width:90%" >}} + +## 개요 {#overview} + +RUM without Limits는 세션 데이터 수집을 인덱싱과 분리하여 RUM 세션 볼륨에 대한 유연성을 제공합니다. 이를 통해 다음을 수행할 수 있습니다. + +- 사전 샘플링 결정이나 코드 변경 없이 Datadog UI에서 보존 필터를 동적으로 설정합니다. +- 오류나 성능 문제가 있는 세션을 유지하고, 사용자 상호작용이 적은 세션과 같이 덜 중요한 세션은 폐기합니다. + +세션의 일부만 유지하더라도 Datadog은 모든 수집된 세션에 대한 [성능 메트릭][1]을 제공합니다. 이는 세션 데이터의 일부만 유지되더라도 애플리케이션의 상태와 성능에 대한 정확하고 장기적인 개요를 보장합니다. + +**참고**: RUM without Limits 모드에서는 [성능 모니터링 요약 페이지][7]에서 기본 필터만 사용할 수 있습니다. 이를 통해 전체 데이터 세트를 볼 수 있으며, 데이터가 샘플링되고 이벤트 특성보다 사용 가능한 태그가 적기 때문에 왜곡된 성능 메트릭을 방지합니다. + +이 페이지는 관측 가능성 예산 내에서 RUM 세션 볼륨을 관리하는 데 도움이 되는 RUM without Limits의 핵심 구성 요소를 알려줍니다. + +### 새로운 애플리케이션을 위한 {#for-new-applications} + +새로운 애플리케이션에서 RUM without Limits를 시작하려면 [계측][2] 단계에서: + +1. `sessionSampleRate`을 100%로 설정해야 합니다. Datadog은 최적의 가시성과 메트릭 정확성을 위해 이 비율로 설정할 것을 권장합니다. + +2. 관측 가능성 요구 사항을 충족하는 `sessionReplaySampleRate`를 선택하세요. + +3. [APM 통합이 활성화][3]된 애플리케이션의 경우, APM 백엔드 트레이스가 `traceSampleRate`(브라우저), `traceSampler`(안드로이드) 또는 `sampleRate`(iOS)와 함께 수집되도록 원하는 세션 비율을 구성하세요. + +4. RUM SDK가 트레이스를 유지하지 않기로 결정한 세션에 대해 백엔드 SDK가 자체 샘플링 결정을 내릴 수 있도록 `traceContextInjection: sampled`을 활성화하세요. + +
    단계 1, 3 및 4는 APM 트레이스 수집에 영향을 미칠 수 있습니다. 수집된 스팬 볼륨이 안정적으로 유지되도록 traceSampleRate 구성을 이전에 구성된 sessionSampleRate값에 맞춥니다. 예를 들어, 이전에 sessionSampleRate 값을 10%로 설정하고 RUM without Limits를 위해 100%로 올렸다면, 동일한 양의 트레이스를 수집하기 위해 traceSampleRate 값을 100%에서 10%로 감소시킵니다.
    + +5. 애플리케이션을 배포해 구성을 적용합니다. + +### 기존 애플리케이션의 경우 {#for-existing-applications} +기존 RUM 사용자는 RUM without Limits를 완전히 사용하려면 애플리케이션을 재배포해야 합니다. 모든 애플리케이션에 대해 세션 샘플링 비율이 100%인지 확인하세요. + +#### 단계 1: 샘플링 비율 조정 {#step-1-adjust-sampling-rates} +이미 리플레이를 수집하고 있다면, 세션 샘플링 비율을 높이면 동일한 수의 리플레이를 수집하기 위해 리플레이 샘플링 비율을 줄여야 합니다(아래 예 참조). 리플레이 샘플링 비율은 기존 세션 샘플링 비율을 기반으로 합니다. + +전: + +```java + sessionSampleRate: 20, + sessionReplaySampleRate: 10, +``` + +후: + +```java + sessionSampleRate: 100, + sessionReplaySampleRate: 2, +``` + +1. [**Digital Experiences > Real User Monitoring > Manage Applications**][4]로 이동합니다. +1. 이동할 애플리케이션을 클릭합니다. +1. **SDK Configuration** 탭을 클릭합니다. +1. `sessionSampleRate`가 100%로 설정되어 있는지 확인합니다. +1. 세션 샘플 비율을 높이기 전에 동일한 수의 리플레이가 수집되도록 `sessionReplaySampleRate`을 설정합니다. +1. 생성된 코드 스니펫을 사용하여 소스 코드를 업데이트하고 애플리케이션을 재배포하여 새로운 구성이 적용되도록 합니다. + +#### 2단계: 트레이스 조정 {#step-2-adjust-tracing} + +`sessionSampleRate`를 증가시킨 경우, RUM SDK가 백엔드 트레이스의 샘플링 결정을 재정의할 수 있는 능력이 있으므로 수집된 APM 스팬의 수를 증가시킬 수 있습니다. + +이를 완화하기 위해 `traceSampleRate`을 100% 미만의 비율로 설정하고(이전에 설정된 `sessionSampleRate`으로) RUM SDK가 트레이스를 유지하지 않기로 결정한 세션에 대해 백엔드 SDK가 자체 샘플링 결정을 내릴 수 있도록 `traceContextInjection: sampled`을 설정합니다. + +#### 3단계: 보존 필터 생성 {#step-3-create-retention-filters} + +모바일 애플리케이션에서는 여러 동시 버전이 함께 존재할 수 있습니다. 그러나 기존 버전이 반드시 100%의 세션을 전송하는 것은 아니므로, 새로운 보존 필터를 생성하면 Datadog에서 이러한 애플리케이션 버전에 대해 사용할 수 있는 데이터가 줄어듭니다. + +Datadog은 SDK 샘플링 비율이 100%로 설정되었는지 여부와 관계없이 모든 애플리케이션 버전에 대해 동일한 보존 필터를 생성할 것을 권장합니다. 결국, 일부 세션이 일부 이전 버전에 대해 수집되지 않더라도 모든 가치 있는 세션은 여전히 수집됩니다. + +제안된 보존 필터 및 사용 사례를 [보존 필터 모범 사례][5]에서 확인하세요. + +## 다음 단계 {#next-steps} + +[보존 필터][6]를 생성하고 구성합니다. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/real_user_monitoring/rum_without_limits/metrics +[2]: /ko/real_user_monitoring/application_monitoring/browser/setup/ +[3]: /ko/real_user_monitoring/platform/connect_rum_and_traces/ +[4]: https://app.datadoghq.com/rum/list +[5]: /ko/real_user_monitoring/guide/retention_filter_best_practices/ +[6]: /ko/real_user_monitoring/rum_without_limits/retention_filters +[7]: https://app.datadoghq.com/rum/performance-monitoring \ No newline at end of file diff --git a/content/ko/serverless/aws_lambda/instrumentation/nodejs.md b/content/ko/serverless/aws_lambda/instrumentation/nodejs.md new file mode 100644 index 00000000000..9bbe1256882 --- /dev/null +++ b/content/ko/serverless/aws_lambda/instrumentation/nodejs.md @@ -0,0 +1,475 @@ +--- +aliases: +- /ko/serverless/datadog_lambda_library/nodejs/ +- /ko/serverless/guide/nodejs/ +- /ko/serverless/installation/nodejs +- /ko/serverless/aws_lambda/installation/nodejs +further_reading: +- link: /serverless/configuration + tag: 설명서 + text: Serverless Monitoring 구성 +- link: /serverless/guide/serverless_tracing_and_bundlers/ + tag: 설명서 + text: Node.js Lambda 트레이싱 및 번들러 호환성 +- link: /serverless/guide/troubleshoot_serverless_monitoring + tag: 설명서 + text: Serverless Monitoring 문제 해결 +- link: serverless/custom_metrics/ + tag: 설명서 + text: 서버리스 애플리케이션에서 Custom Metrics 제출 +title: Node.js 서버리스 애플리케이션 계측 +--- +
    Datadog Lambda Extension의 버전 67+는 콜드 스타트 시간을 크게 줄이도록 최적화되었습니다. 자세히 읽기.
    + +## 설정 {#setup} + +{{< tabs >}} +{{% tab "Datadog UI" %}} +Node.js AWS Lambda 애플리케이션을 Datadog 내에서 직접 계측할 수 있습니다. [Serverless > AWS Lambda][2] 페이지로 이동하여 [**함수 계측**][3]을 선택합니다. + +자세한 내용은 [AWS Lambda에 대한 원격 계측][1]을 참조하세요. + +[1]: /ko/serverless/aws_lambda/remote_instrumentation +[2]: https://app.datadoghq.com/functions?cloud=aws +[3]: https://app.datadoghq.com/serverless/aws/lambda/setup +{{% /tab %}} +{{% tab "Datadog CLI" %}} + +Datadog CLI는 기존 Lambda 함수의 구성을 수정하여 새로운 배포 없이 계측을 가능하게 합니다. Datadog의 Serverless Monitoring을 시작하는 가장 빠른 방법입니다. + +1. Datadog CLI 클라이언트를 설치합니다. + + ```sh + npm install -g @datadog/datadog-ci @datadog/datadog-ci-plugin-lambda + ``` + +2. Datadog Serverless Monitoring이 처음이라면, 첫 설치를 안내하기 위해 대화형 모드에서 Datadog CLI를 실행하여 빠르게 시작할 수 있으며, 나머지 단계는 무시할 수 있습니다. 생산 애플리케이션에 Datadog을 영구적으로 설치하려면 이 단계를 건너뛰고 나머지 단계를 따라 CI/CD 파이프라인에서 Datadog CLI 명령을 실행하세요 _배포 후_. + + ```sh + datadog-ci lambda instrument -i + ``` + +3. AWS 자격증명을 구성합니다. + + Datadog CLI는 AWS Lambda 서비스에 대한 접근이 필요하며, [자격증명을 해결하기 위해][1] AWS JavaScript SDK에 의존합니다. AWS 자격증명이 AWS CLI를 호출할 때 사용하는 것과 동일한 방법으로 구성되어 있는지 확인하세요. + +4. Datadog 사이트를 구성합니다. + + ```sh + export DATADOG_SITE="" + ``` + + Replace `` with {{< region-param key="dd_site" code="true" >}} (오른쪽에서 올바른 SITE가 선택되어 있는지 확인하세요). + +5. Datadog API 키를 구성합니다. + + Datadog은 보안 및 손쉬운 회전을 위해 Datadog API 키를 AWS Secrets Manager에 저장할 것을 권장합니다. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). Lambda 함수에 필요한 `secretsmanager:GetSecretValue` IAM 권한이 있는지 확인하세요. + + ```sh + export DATADOG_API_KEY_SECRET_ARN="" + ``` + + For quick testing purposes, you can also set the Datadog API key in plaintext: + + ```sh + export DATADOG_API_KEY="" + ``` + +6. Lambda 함수를 계측합니다. + + **참고**: 먼저 개발 또는 스테이징 환경에서 Lambda 함수를 계측하세요! 계측 결과가 만족스럽지 않으면, 동일한 인수로 `uninstrument`를 실행하여 변경 사항을 되돌리세요. + + Lambda 함수를 계측하려면 다음의 명령어를 실행하세요. + + ```sh + datadog-ci lambda instrument -f -f -r -v {{< latest-lambda-layer-version layer="node" >}} -e {{< latest-lambda-layer-version layer="extension" >}} + + +``` + + To fill in the placeholders: + - Replace `` and `` with your Lambda function names. Alternatively, you can use `--functions-regex` to automatically instrument multiple functions whose names match the given regular expression. + - Replace `` with the AWS region name. + + Additional parameters can be found in the [CLI documentation][2]. + + +[1]: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html +[2]: https://docs.datadoghq.com/ko/serverless/serverless_integrations/cli +{{% /tab %}} +{{% tab "Serverless Framework" %}} + +
    대신 JavaScript 파일에서 JSON 객체를 기본적으로 내보내기해 Serverless Framework 앱을 배포하는 경우 (예: serverless.ts 파일 사용), 사용자 정의 설치 지침을 따르세요.
    + +[Datadog Serverless Plugin][1]이 [Datadog Lambda Extension][2]을 통해 메트릭, 트레이스, 로그를 Datadog로 전송하도록 함수를 자동 설정합니다. + +Datadog Serverless Plugin을 설치하고 설정하려면 다음 절차를 따라주세요. + +1. Datadog Serverless Plugin 설치: + + ```sh + serverless plugin install --name serverless-plugin-datadog + ``` + +2. 다음 `serverless.yml`를 업데이트하세요. + + ```yaml + custom: + datadog: + site: + apiKeySecretArn: + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (오른쪽에서 올바른 SITE가 선택되어 있는지 확인하세요). + - ``을 [Datadog API 키][3]가 안전하게 저장된 AWS 암호의 ARN으로 교체하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 `apiKey`를 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + + For more information and additional settings, see the [plugin documentation][1]. + +[1]: https://docs.datadoghq.com/ko/serverless/serverless_integrations/plugin +[2]: https://docs.datadoghq.com/ko/serverless/libraries_integrations/extension +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "AWS SAM" %}} + +[Datadog CloudFormation 매크로][1]는 Lambda 레이어를 사용하여 함수에 Datadog 설치하기 위한 SAM 애플리케이션 템플릿을 자동으로 변환합니다. 또한 함수를 설정해 [Datadog Lambda Extension][2]을 통해 Datadog에 메트릭, 트레이스 및 로그를 전송할 수 있습니다. + +1. Datadog CloudFormation 매크로 설치 + + 다음 명령을 [AWS 자격 증명][3]으로 실행하여 매크로 AWS 리소스를 설치하는 CloudFormation 스택을 배포하세요. 주어진 리전에 대해 매크로를 **한 번만** 설치하면 됩니다. 매크로를 최신 버전으로 업데이트하려면 `create-stack`를 `update-stack`으로 교체하세요. + + ```sh + aws cloudformation create-stack \ + --stack-name datadog-serverless-macro \ + --template-url https://datadog-cloudformation-template.s3.amazonaws.com/aws/serverless-macro/latest.yml \ + --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM + ``` + + The macro is now deployed and ready to use. + +2. Lambda 함수를 계측합니다. + + SAM `template.yml`에서 `Transform` 섹션의 `AWS::Serverless` 변환 **뒤에** `DatadogServerless` 변환을 추가합니다. + + ```yaml + Transform: + - AWS::Serverless-2016-10-31 + - Name: DatadogServerless + Parameters: + stackName: !Ref "AWS::StackName" + nodeLayerVersion: {{< latest-lambda-layer-version layer="node" >}} + extensionLayerVersion: {{< latest-lambda-layer-version layer="extension" >}} + site: "" + apiKeySecretArn: "" + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (오른쪽에서 올바른 SITE가 선택되어 있는지 확인하세요). + - ``을 [Datadog API 키][4]가 안전하게 저장된 AWS 암호의 ARN으로 교체하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 `apiKey`를 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + + More information and additional parameters can be found in the [macro documentation][1]. + + +[1]: https://docs.datadoghq.com/ko/serverless/serverless_integrations/macro +[2]: https://docs.datadoghq.com/ko/serverless/libraries_integrations/extension +[3]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html +[4]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} + +{{% tab "AWS CDK" %}} +{{< lambda-install-cdk language="node" layer="node" layerParamTypescript="nodeLayerVersion" layerParamPython="node_layer_version">}} +{{% /tab %}} + +{{% tab "컨테이너 이미지" %}} + +1. Datadog Lambda 라이브러리를 설치합니다. + + 이미지 내에 Datadog Lambda 및 SDK 패키지 포함: + + ```sh + npm install datadog-lambda-js dd-trace + ``` + + Note that the minor version of the `datadog-lambda-js` package always matches the layer version. For example, `datadog-lambda-js v0.5.0` matches the content of layer version 5. + + You cannot install the Datadog Lambda Library as a layer if you are deploying your Lambda function as a container image. + +2. Datadog Lambda Extension 설치 + + 다음을 Docker 파일에 추가하여 Datadog Lambda Extension을 컨테이너 이미지에 추가합니다. + + ```dockerfile + COPY --from=public.ecr.aws/datadog/lambda-extension: /opt/. /opt/ + ``` + + Replace `` with either a specific version number (for example, `{{< latest-lambda-layer-version layer="extension" >}}`) or with `latest`. Alpine is also supported with specific version numbers (such as `{{< latest-lambda-layer-version layer="extension" >}}-alpine`) or with `latest-alpine`. [Amazon ECR 리포지토리][1]에서 가능한 태그의 전체 목록을 확인할 수 있습니다. + +3. 핸들러 함수 리디렉션 + + - 이미지의 `CMD` 값을 `node_modules/datadog-lambda-js/dist/handler.handler`로 설정하세요. AWS 또는 Dockerfile에서 직접 설정할 수 있습니다. AWS에서 설정한 값이 Dockerfile의 값을 덮어씁니다. 두 가지를 모두 설정하는 경우 주의하세요. + - 환경 변수 `DD_LAMBDA_HANDLER`를 원래 핸들러로 설정하세요. 예를 들어, `myfunc.handler`와 같이 설정합니다. + - 컨테이너와 함께 ESModule을 사용하는 경우 `handler.js` 파일을 제거해야 합니다. 이 파일은 Node 12에 존재하며 AWS가 Node 12 지원을 중단할 때 제거됩니다. + ```dockerfile + RUN rm node_modules/datadog-lambda-js/dist/handler.js + CMD ["node_modules/datadog-lambda-js/dist/handler.handler"] + ``` + + **Note**: If your Lambda function runs on `arm64`, you must either build your container image in an arm64-based Amazon Linux environment or [apply the Datadog wrapper in your function code][2] instead. You may also need to do that if you are using a third-party security or monitoring tool that is incompatible with the Datadog handler redirection. + +4. Datadog 사이트 및 API 키 설정 + + - 환경 변수 `DD_SITE`를 다음으로 설정하세요. {{< region-param key="dd_site" code="true" >}} (오른쪽에서 올바른 SITE가 선택되어 있는지 확인하세요). + - `DD_API_KEY_SECRET_ARN`환경 변수를 [Datadog API 키][3]가 안전하게 저장된 AWS 암호의 ARN으로 설정하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 `DD_API_KEY`를 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + + +[1]: https://gallery.ecr.aws/datadog/lambda-extension +[2]: https://docs.datadoghq.com/ko/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "Terraform" %}} + +[`lambda-datadog`][1] Terraform 모듈은 [`aws_lambda_function`][2] 리소스를 래핑하고 Datadog Serverless Monitoring을 위해 Lambda 함수를 자동으로 구성합니다. + +- Datadog Lambda 레이어 추가 +- Lambda 핸들러 리디렉션 +- 메트릭, 트레이스 및 로그를 Datadog으로 수집하고 전송하도록 설정합니다. + +```tf +module "lambda-datadog" { + source = "DataDog/lambda-datadog/aws" + version = "4.0.0" + + environment_variables = { + "DD_API_KEY_SECRET_ARN" : "" + "DD_ENV" : "" + "DD_SERVICE" : "" + "DD_SITE": "" + "DD_VERSION" : "" + } + + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} + + # aws_lambda_function arguments +} +``` + +1. `aws_lambda_function` 리소스를 `lambda-datadog` Terraform 모듈로 교체한 다음 모듈의 `source` 및 `version`를 지정합니다. + +2. `aws_lambda_function` 인수를 설정하세요. + + `aws_lambda_function` 리소스에서 사용할 수 있는 모든 인수가 이 Terraform 모듈에서도 사용할 수 있습니다. `aws_lambda_function` 리소스에서 블록으로 정의된 인수는 중첩된 인수와 함께 변수로 재정의됩니다. + + 예를 들어, `aws_lambda_function`에서 `environment`은 `variables` 인수를 가진 블록으로 정의됩니다. `lambda-datadog` Terraform 모듈에서 `environment_variables`의 값은 `aws_lambda_function`의 `environment.variables` 인수로 전달됩니다. 이 모듈의 변수 전체 목록은 [입력][3]을 참조하세요. + +3. 환경 변수 자리 표시자를 다음과 같이 채웁니다. + + - ``를 Datadog API 키가 안전하게 저장된 AWS 암호의 ARN으로 교체하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 환경 변수 `DD_API_KEY`을 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + - ``를 Lambda 함수의 환경, 예를 들어 `prod` 또는 `staging`으로 교체합니다. + - ``을 Lambda 함수의 서비스 이름으로 교체합니다. + - ``로 교체하세요. {{< region-param key="dd_site" code="true" >}}. (이 페이지에서 올바른 [Datadog 사이트][4]가 선택되었는지 확인하세요). + - ``를 Lambda 함수의 버전 번호로 교체하세요. + +4. 사용할 Datadog Extension Lambda 레이어 및 Datadog Node.js Lambda 레이어의 버전을 선택합니다. 기본값은 최신 레이어 버전입니다. + +``` + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} +``` + +[1]: https://registry.terraform.io/modules/DataDog/lambda-datadog/aws/latest +[2]: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function +[3]: https://github.com/DataDog/terraform-aws-lambda-datadog?tab=readme-ov-file#inputs +[4]: /ko/getting_started/site/ +{{% /tab %}} +{{% tab "SST v3" %}} + +SST v3를 사용하여 Datadog을 구성하려면 다음 단계를 따르세요. + + ```ts + const app = new sst.aws.Function("MyApp", { + handler: "index.handler", + nodejs : { + install: [ + "datadog-lambda-js", + "dd-trace", + ] + }, + environment: { + DD_ENV: "", + DD_SERVICE: "", + DD_VERSION: "", + DATADOG_API_KEY_SECRET_ARN: "", + DD_SITE: "", + }, + layers: [ + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}}`, + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}}`, + ], + }); + ``` + + 1. Configure the Datadog Lambda Library and Datadog Lambda Extension layers + + - The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + 2. `dd-trace`와 `datadog-lambda-js`를 `nodejs.install` 목록에 추가합니다. + + 3. 환경 변수 자리 표시자를 다음과 같이 채웁니다. + + - ``를 Datadog API 키가 안전하게 저장된 AWS 암호의 ARN으로 교체하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 환경 변수 `DD_API_KEY`을 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + - ``를 Lambda 함수의 환경, 예를 들어 `prod` 또는 `staging`으로 교체합니다. + - ``을 Lambda 함수의 서비스 이름으로 교체합니다. + - ``로 교체하세요. {{< region-param key="dd_site" code="true" >}}. (이 페이지에서 올바른 [Datadog 사이트][1]가 선택되었는지 확인하세요) + - ``을 Lambda 함수의 버전 번호로 바꾸세요. + + 4. [함수 코드에 Datadog 래퍼를 적용하세요][2] + +[1]: /ko/getting_started/site/ +[2]: https://docs.datadoghq.com/ko/serverless/guide/handler_wrapper +{{% /tab %}} +{{% tab "Custom" %}} + +
    서버리스 프레임워크 또는 AWS CDK와 같이 Datadog이 지원하는 서버리스 개발 도구를 사용하지 않는 경우, Datadog에서는 Datadog CLI를 사용하여 서버리스 애플리케이션을 계측할 것을 강력히 권장합니다.
    + +1. Datadog Lambda 라이브러리를 설치합니다. + + Datadog Lambda 라이브러리는 레이어(권장) _또는_ JavaScript 패키지로 가져올 수 있습니다. + + `datadog-lambda-js` 패키지의 마이너 버전은 항상 레이어 버전과 일치합니다. 예를 들어, datadog-lambda-js v0.5.0은 레이어 버전 5의 내용과 일치합니다. + + - 옵션 A: 다음 형식의 ARN을 사용하여 Lambda 함수의 [레이어를 설정하세요][1]: + + ```sh + # Use this format for AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + + # Use this format for AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + ``` + + Replace `` with a valid AWS region such as `us-east-1`. The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + - Option B: If you cannot use the prebuilt Datadog Lambda layer, alternatively you can install the packages `datadog-lambda-js` and `dd-trace` using your favorite package manager. + + ``` + npm install datadog-lambda-js dd-trace + ``` + +2. Datadog Lambda Extension 설치 + + 다음 형식에 맞추어 ARN을 사용해 Lambda 함수의 [레이어를 설정합니다][1]. + + ```sh + # Use this format for x86-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for x86-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + +``` + + Replace `` with a valid AWS region, such as `us-east-1`. + +3. 핸들러 함수 리디렉션 + + - 레이어를 사용하는 경우 `/opt/nodejs/node_modules/datadog-lambda-js/handler.handler`로 함수의 핸들러를 설정하거나 패키지를 사용하는 경우 `node_modules/datadog-lambda-js/dist/handler.handler`로 설정하세요. + - 환경 변수 `DD_LAMBDA_HANDLER`를 원래 핸들러로 설정하세요. 예를 들어, `myfunc.handler`와 같이 설정합니다. + + **참고**: Lambda 함수가 `arm64`에서 실행되고 `datadog-lambda-js` 라이브러리가 NPM 패키지로 설치된 경우(1단계의 옵션 B), 대신 [함수 코드에 Datadog 래퍼를 적용하세요][2]. Datadog 핸들러 리디렉션과 호환되지 않는 타사 보안 또는 모니터링 도구를 사용하는 경우에도 그렇게 해야 할 수 있습니다. + +4. Datadog 사이트 및 API 키를 설정합니다. + + - 환경 변수 `DD_SITE`를 다음으로 설정하세요. {{< region-param key="dd_site" code="true" >}} (오른쪽에서 올바른 SITE가 선택되어 있는지 확인하세요). + - `DD_API_KEY_SECRET_ARN`환경 변수를 [Datadog API 키][3]가 안전하게 저장된 AWS 암호의 ARN으로 설정하세요. 키는 일반 텍스트 문자열로 저장되어야 합니다(JSON 블롭이 아님). `secretsmanager:GetSecretValue` 권한이 필요합니다. 빠른 테스트를 위해 대신 `DD_API_KEY`를 사용하고 Datadog API 키를 일반 텍스트로 설정할 수 있습니다. + +[1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html +[2]: https://docs.datadoghq.com/ko/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{< /tabs >}} + +{{% svl-tracing-env %}} + +
    Datadog Lambda 라이브러리를 레이어 및 JavaScript 패키지로 설치하지 마세요. Datadog Lambda 라이브러리를 레이어로 설치한 경우, datadog-lambda-jspackage.json에 포함하지 마세요. 또는 개발 종속성으로 설치하고 배포하기 전에 npm install --production 을 실행하세요.
    + +## FIPS 규정 준수 {#fips-compliance} + +{{% svl-lambda-fips %}} + +## AWS Lambda 및 VPC {#aws-lambda-and-vpc} + +{{% svl-lambda-vpc %}} + +## 다음 단계는 무엇입니까? {#whats-next} + +- 환경 변수 `DD_TAGS`를 사용하여 텔레메트리에 사용자 정의 태그를 추가하세요. +- [페이로드 수집][12]을 구성하여 함수의 JSON 요청 및 응답 페이로드를 캡처하세요. +- Datadog Lambda Extension을 사용하는 경우, Datadog Forwarder의 Lambda 로그를 해제하세요. +- [AWS Lambda에 대한 Serverless Monitoring 구성][3]을 참조하여 추가 기능을 확인하세요. + +### 커스텀 비즈니스 로직을 모니터링하세요 {#monitor-custom-business-logic} + +커스텀 비즈니스 로직을 모니터링하려면 아래 샘플 코드를 사용하여 사용자 정의 메트릭 또는 스팬을 제출하세요. 추가 옵션에 대해서는 [서버리스 애플리케이션을 위한 사용자 정의 메트릭 제출][4] 및 [사용자 정의 계측][5]에 대한 APM 가이드를 참조하세요. + +```javascript +const { sendDistributionMetric, sendDistributionMetricWithDate } = require('datadog-lambda-js'); +const tracer = require('dd-trace'); + +// submit a custom span named "sleep" +const sleep = tracer.wrap('sleep', (ms) => { + return new Promise((resolve) => setTimeout(resolve, ms)); +}); + +exports.handler = async (event) => { + // add custom tags to the lambda function span, + // does NOT work when X-Ray tracing is enabled + const span = tracer.scope().active(); + span.setTag('customer_id', '123456'); + + await sleep(100); + + // submit a custom span + const sandwich = tracer.trace('hello.world', () => { + console.log('Hello, World!'); + }); + + // submit a custom metric + sendDistributionMetric( + 'coffee_house.order_value', // metric name + 12.45, // metric value + 'product:latte', // tag + 'order:online' // another tag + ); + + const response = { + statusCode: 200, + body: JSON.stringify('Hello from serverless!') + }; + return response; +}; +``` + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/functions +[2]: /ko/serverless/guide/troubleshoot_serverless_monitoring/ +[3]: /ko/serverless/configuration/ +[4]: /ko/serverless/custom_metrics?tab=nodejs +[5]: /ko/tracing/custom_instrumentation/nodejs/ +[6]: /ko/security/application_security/serverless/ +[7]: https://github.com/DataDog/datadog-lambda-extension +[8]: https://github.com/DataDog/datadog-lambda-extension/issues +[9]: /ko/serverless/aws_lambda/distributed_tracing/#span-auto-linking +[10]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html +[11]: /ko/serverless/aws_lambda/remote_instrumentation +[12]: /ko/serverless/aws_lambda/configuration?tab=datadogcli#collect-the-request-and-response-payloads \ No newline at end of file diff --git a/content/ko/tracing/metrics/metrics_namespace.md b/content/ko/tracing/metrics/metrics_namespace.md new file mode 100644 index 00000000000..5d3bb8b2fcd --- /dev/null +++ b/content/ko/tracing/metrics/metrics_namespace.md @@ -0,0 +1,167 @@ +--- +algolia: + tags: + - trace metrics +aliases: +- /ko/tracing/getting_further/metrics_namespace +- /ko/tracing/guide/metrics_namespace +description: 네임스페이스, 유형(hits[요청 수], errors[오류], latency[지연 시간], Apdex) 및 애플리케이션 트래픽을 + 기반으로 한 계산 방식을 포함한 APM 트레이스 메트릭에 대한 종합 가이드입니다. +further_reading: +- link: tracing/trace_pipeline/generate_metrics/ + tag: 설명서 + text: 수집한 스팬에서 사용자 지정 메트릭 생성 +- link: tracing/trace_collection/ + tag: 설명서 + text: 애플리케이션에서 애플리케이션 성능 모니터링(APM) 추적 설정 방법 알아보기 +- link: tracing/software_catalog/ + tag: 설명서 + text: Datadog에 보고하는 서비스를 검색 및 카탈로그화 +- link: tracing/services/service_page + tag: 설명서 + text: Datadog 서비스에 관해 자세히 알아보기 +- link: tracing/services/resource_page + tag: 설명서 + text: 리소스 성능 및 트레이스 자세히 살펴보기 +- link: tracing/trace_explorer/trace_view/ + tag: 설명서 + text: Datadog 트레이스 읽는 법 이해하기 +title: 트레이스 메트릭 +--- +## 개요 {#overview} + +애플리케이션 메트릭은 [트레이스 수집을 활성화하고 애플리케이션 계측][1]을 완료한 후 수집됩니다. + +{{< img src="tracing/apm_lifecycle/trace_metrics.png" style="width:70%; background:none; border:none; box-shadow:none;" alt="트레이스 메트릭" >}} + +이 메트릭은 요청 수, 오류 수 및 지연 시간을 측정합니다. 이들은 [트레이스 수집 샘플링][2] 구성 여부와 관계없이 애플리케이션 트래픽의 100%를 기반으로 계산됩니다. 이 메트릭을 사용하여 서비스 또는 리소스의 잠재적 오류를 식별하고, 대시보드, 모니터링 및 SLO를 생성함으로써 애플리케이션 트래픽에 대한 완전한 가시성을 확보할 수 있습니다. + +**참고**: 애플리케이션이 OpenTelemetry 라이브러리로 계측되어 있고 샘플링이 SDK 수준에서 설정된 경우, APM 메트릭은 샘플링된 데이터 집합을 기준으로 계산됩니다. 반면 OpenTelemetry Collector 수준에서 샘플링이 설정되고, 샘플러 프로세서가 Datadog 커넥터보다 상위에 있는 경우에는 APM 메트릭이 애플리케이션 트래픽의 100%를 기준으로 계산됩니다. + +트레이스 메트릭은 서비스 진입 스팬과 통합 언어에 따라 특정 작업에 대해 생성됩니다. 예를 들어 Django 통합은 다양한 작업을 나타내는 스팬으로부터 트레이스 메트릭을 생성합니다(Django 요청에 대한 루트 스팬 1개, 각 미들웨어에 대한 스팬 1개, View에 대한 스팬 1개). + +[트레이스 메트릭][3] 네임스페이스는 다음 형식을 사용합니다. + +- `trace..` + +정의: + +`` +: 작업의 이름 또는 `span.name`(예시: `redis.command`, `pylons.request`, `rails.request`, `mysql.query`). + +`` +: 메트릭의 이름(예시: `hits`, `errors`, `apdex`, `duration`). 아래 섹션을 참조하세요. + +`` +: 사용 가능한 트레이스 메트릭 태그는 : `env`, `service`, `version`, `resource`, `http.status_code`, `http.status_class`, `rpc.grpc.status_code`(Datadog Agent v7.65.0 이상 필요)입니다. 또한 Datadog Agent 태그(호스트 및 [추가 기본 태그][4] 포함)도 사용할 수 있습니다. +: **참고:** 스팬에 설정된 기타 사용자 지정 태그는 트레이스 메트릭 태그로 사용할 수 없습니다. + +## 메트릭 접미사 {#metric-suffix} + +### Hits {#hits} + +`trace..hits` +: **전제 조건:** 이 메트릭은 모든 APM 서비스에서 제공됩니다.
    +**설명:** 특정 이름(예: `redis.command`, `pylons.request`, `rails.request` 또는 `mysql.query`)을 가진 스팬이 생성된 횟수를 나타냅니다.
    +**메트릭 유형:** [COUNT][5].
    +**태그:** `env`, `service`, `version`, `resource`, `resource_name`, `http.status_code`, `rpc.grpc.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +`trace..hits.by_http_status` +: **전제 조건:** HTTP 메타데이터가 존재하는 경우 HTTP/WEB APM 서비스에서 제공됩니다.
    +**설명:** HTTP 상태 코드별 요청 수(Hits)를 나타냅니다.
    +**메트릭 유형:** [COUNT][5].
    +**태그:** `env`, `service`, `version`, `resource`, `resource_name`, `http.status_class`, `http.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +### 지연 시간 분포 {#latency-distribution} + +`trace.` +: **전제 조건:** 이 메트릭은 모든 APM 서비스에서 제공됩니다.
    +**설명:** 모든 서비스, 리소스, 버전, 환경 및 추가 기본 태그에 대한 지연 시간 분포를 나타냅니다. **모든 지연 시간 측정 사용 사례에 권장됩니다.**
    +**메트릭 유형:** [DISTRIBUTION][6].
    +**태그:** `env`, `service`,`version`, `resource`, `resource_name`, `http.status_code`, `rpc.grpc.status_code`, `synthetics` 및 [추가 기본 태그][4]. + +### 오류 {#errors} + +`trace..errors` +: **전제 조건:** 이 메트릭은 모든 APM 서비스에서 제공됩니다.
    +**설명:** 특정 스팬에 대한 오류 수를 나타냅니다.
    +**메트릭 유형:** [COUNT][5].
    +**태그:** `env`, `service`, `version`, `resource`, `resource_name`, `http.status_code`, `rpc.grpc.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +`trace..errors.by_http_status` +: **전제 조건:** 이 메트릭은 모든 APM 서비스에서 제공됩니다.
    +**설명:** 특정 스팬에 대한 오류 수를 나타냅니다.
    +**메트릭 유형:** [COUNT][5].
    +**태그:** `env`, `service`, `version`, `resource`, `http.status_class`, `http.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +### Apdex {#apdex} + +`trace..apdex` +: **전제 조건:** 이 메트릭은 HTTP 또는 웹 기반 APM 서비스에서 제공됩니다.
    +**설명:** 각 웹 서비스의 [Apdex][10] 점수를 측정합니다.
    +**메트릭 유형:** [GAUGE][7].
    +**태그:** `env`, `service`, `version`, `resource` / `resource_name`, `synthetics` 및 [추가 기본 태그][4]. + +## 레거시 메트릭 {#legacy-metrics} + +다음 메트릭은 이전 버전과의 호환성을 위해 유지됩니다. 모든 지연 시간 측정 사용 사례에 대해 Datadog은 레거시 메트릭 대신 [Latency Distribution 메트릭](#latency-distribution) 사용을 강력히 권장합니다. + +### Duration(레거시) {#duration-legacy} + +
    +중요: Duration 메트릭은 이전 버전과의 호환성을 위해서만 유지됩니다. 모든 지연 시간 측정 사용 사례에 대해 Datadog은 백분위수 계산 정확도와 전반적인 성능 분석 측면에서 더 우수한 Latency Distribution 메트릭 사용을 강력히 권장합니다. +
    + +`trace..duration` +: **전제 조건:** 이 메트릭은 모든 APM 서비스에서 제공됩니다.
    +**설명:** 수집 서비스에서 관찰된 하위 스팬을 포함하여, 특정 시간 간격 내 스팬 집합의 총 소요 시간을 측정합니다. 대부분의 사용 사례에서 Datadog은 평균 지연 시간 또는 백분위수 계산을 위해 [Latency Distribution](#latency-distribution) 사용을 권장합니다. 호스트 태그 필터를 사용하여 평균 지연 시간을 계산하려면 다음 공식을 사용할 수 있습니다.
    +`sum:trace..duration{}.rollup(sum).fill(zero) / sum:trace..hits{}.rollup(sum).fill(zero)`
    +이 메트릭은 백분위수 집계를 지원하지 않습니다. 자세한 내용은 [Latency Distribution](#latency-distribution) 섹션을 참조하세요.
    +**메트릭 유형:** [GAUGE][7].
    +**태그:** `env`, `service`, `resource`, `http.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +### Duration by(레거시) {#duration-by-legacy} + +
    +중요: Duration 메트릭은 이전 버전과의 호환성을 위해서만 유지됩니다. 모든 지연 시간 측정 사용 사례에 대해 Datadog은 백분위수 계산 정확도와 전반적인 성능 분석 측면에서 더 우수한 Latency Distribution 메트릭 사용을 강력히 권장합니다. +
    + +`trace..duration.by_http_status` +: **전제 조건:** HTTP 메타데이터가 존재하는 경우 HTTP/WEB APM 서비스에서 제공됩니다.
    +**설명:** HTTP 상태 코드별 스팬 집합의 총 소요 시간을 측정합니다. 구체적으로는 특정 시간 간격과 HTTP 상태 코드에 대해 모든 스팬이 소비한 시간의 상대적 비중을 의미하며, 하위 프로세스 대기 시간도 포함됩니다.
    +**메트릭 유형:** [GAUGE][7].
    +**태그:** `env`, `service`, `resource`, `http.status_class`, `http.status_code`, Datadog Host Agent의 모든 호스트 태그 및 [추가 기본 태그][4]. + +## 트레이스 메트릭에 대한 샘플링 영향 {#sampling-impact-on-trace-metrics} + +대부분의 경우 트레이스 메트릭은 전체 애플리케이션 트래픽을 기준으로 계산됩니다. 그러나 특정 트레이스 수집 샘플링 구성에서는 메트릭이 전체 요청이 아닌 일부 요청 집합만 반영할 수 있습니다. + +### 애플리케이션 측 샘플링 {#application-side-sampling} + +일부 SDK는 애플리케이션 측 샘플링을 지원하며, Datadog Agent로 전송되기 전에 스팬 수를 줄입니다. 예를 들어 Ruby SDK는 성능 오버헤드를 줄이기 위해 애플리케이션 측 샘플링을 제공합니다. 그러나 Datadog Agent는 정확한 메트릭 계산을 위해 모든 스팬이 필요하므로 이 기능은 트레이스 메트릭 정확도에 영향을 줄 수 있습니다. + +이 설정을 지원하는 SDK는 매우 적으며 일반적으로 사용을 권장하지 않습니다. + +### OpenTelemetry 샘플링 {#opentelemetry-sampling} + +OpenTelemetry SDK의 기본 샘플링 메커니즘은 Datadog 컬렉터로 전송되는 스팬 수를 줄입니다. 그 결과 트레이스 메트릭이 샘플링된 데이터만 기반으로 계산되어 부정확해질 수 있습니다. + +### X-Ray 샘플링 {#x-ray-sampling} + +X-Ray 스팬은 Datadog으로 전송되기 전에 이미 샘플링됩니다. 따라서 트레이스 메트릭이 전체 트래픽을 반영하지 못할 수 있습니다. + + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/tracing/trace_collection/ +[2]: /ko/tracing/trace_pipeline/ingestion_mechanisms +[3]: /ko/tracing/glossary/#trace-metrics +[4]: /ko/tracing/guide/setting_primary_tags_to_scope/#add-additional-primary-tags-in-datadog +[5]: /ko/metrics/types/?tab=count#metric-types +[6]: /ko/metrics/types/?tab=distribution#metric-types +[7]: /ko/metrics/types/?tab=gauge#metric-types +[8]: /ko/tracing/software_catalog/#services-types +[9]: /ko/tracing/glossary/#services +[10]: /ko/tracing/guide/configure_an_apdex_for_your_traces_with_datadog_apm/ \ No newline at end of file diff --git a/content/ko/tracing/metrics/runtime_metrics/_index.md b/content/ko/tracing/metrics/runtime_metrics/_index.md new file mode 100644 index 00000000000..3c2b339fc61 --- /dev/null +++ b/content/ko/tracing/metrics/runtime_metrics/_index.md @@ -0,0 +1,314 @@ +--- +aliases: +- /ko/tracing/advanced/runtime_metrics/ +- /ko/tracing/metrics/runtime_metrics/dotnet +- /ko/tracing/metrics/runtime_metrics/java +- /ko/tracing/metrics/runtime_metrics/nodejs +- /ko/tracing/metrics/runtime_metrics/python +- /ko/tracing/metrics/runtime_metrics/ruby +- /ko/tracing/runtime_metrics/dotnet +- /ko/tracing/runtime_metrics/java +- /ko/tracing/runtime_metrics/nodejs +- /ko/tracing/runtime_metrics/python +- /ko/tracing/runtime_metrics/ruby +description: 트레이스와 관련된 런타임 메트릭을 통해 애플리케이션 성능에 대한 인사이트를 확보하세요. +further_reading: +- link: /opentelemetry/integrations/runtime_metrics/ + tag: 설명서 + text: OpenTelemetry 런타임 메트릭 +- link: tracing/other_telemetry/connect_logs_and_traces + tag: 설명서 + text: 로그와 트레이스 상호 연결 +- link: tracing/trace_collection/custom_instrumentation + tag: 설명서 + text: 애플리케이션을 수동으로 계측하여 트레이스를 생성합니다. +- link: tracing/glossary/ + tag: 설명서 + text: 서비스, 리소스, 트레이스 둘러보기 +title: 런타임 메트릭 +--- +## 개요 {#overview} + +런타임 메트릭은 애플리케이션의 메모리 사용량, 가비지 컬렉션 및 병렬화를 모니터링합니다. Datadog SDK는 지원되는 환경에서 이러한 메트릭을 자동으로 수집하며 Datadog Agent로 전송합니다. + +이 메트릭은 병목 현상을 식별하고 성능 문제를 해결하며 리소스 사용을 최적화하는 데 도움을 줍니다. 트레이스 및 로그와 함께 런타임 메트릭을 확인하면 애플리케이션 상태와 성능에 대한 종합적인 가시성을 확보할 수 있습니다. + +Datadog 트레이싱 라이브러리 대신 OpenTelemetry를 사용하는 경우 [OpenTelemetry 런타임 메트릭][10]을 참조하여 설정하세요. + +## 호환성 {#compatibility} + +런타임 메트릭은 여러 프로그래밍 언어와 런타임에서 사용할 수 있으며, 지원 및 구성 옵션의 수준이 다릅니다. + +{{< tabs >}} +{{% tab "Java" %}} + +- **기본 활성화**: 예 +- **라이브러리 버전**: 0.29.0 이상 +- **런타임**: Java 8 이상 + +
    AWS Lambda 환경에서는 JMX 메트릭 수집이 지원되지 않습니다.
    + +{{% /tab %}} + +{{% tab "Python" %}} + + - **기본 활성화**: 아니요 + - **라이브러리 버전**: 0.30.0 이상 + - **지원 수준**: 미리보기 + - **런타임**: 지원되는 모든 Python 버전 + +{{% /tab %}} + +{{% tab "Ruby" %}} + + - **기본 활성화**: 아니요 + - **라이브러리 버전**: 0.44.0 이상 + - **런타임**: 지원되는 모든 Ruby 버전 + + +
    애플리케이션에 dogstatsd-ruby gem을 추가해야 합니다.
    + +{{% /tab %}} + +{{% tab "Go" %}} + + - **기본 활성화**: 아니요 + - **라이브러리 버전**: 1.18.0 이상 + - **런타임**: 지원되는 모든 Go 버전 + +{{% /tab %}} + +{{% tab "Node.js" %}} + + - **기본 활성화**: 아니요 + - **라이브러리 버전**: 3.0.0 이상 + - **런타임**: 지원되는 모든 Node.js 버전 + +{{% /tab %}} + +{{% tab ".NET" %}} + + - **기본 활성화**: 예, .NET 6 이상(v3.40.0 이상)에서. + - **라이브러리 버전**: 1.23.0 이상 + - **런타임**: .NET Framework 4.6.1 이상 및 .NET Core 3.1 이상(.NET 5 이상 포함). + +#### IIS(Internet Information Services) 권한(.NET Framework 전용) {#permissions-for-internet-information-services-iis-net-framework-only} + +.NET Framework에서는 성능 카운터를 사용하여 메트릭을 수집합니다. 비대화형 로그온 세션의 사용자(IIS 애플리케이션 풀 계정 및 일부 서비스 계정 포함)가 반대의 데이터에 액세스하려면 ***성능 모니터링 사용자** 그룹에 추가되어야 합니다. + +IIS 애플리케이션 풀은 사용자 목록에 나타나지 않는 특수 계정을 사용합니다. 이 계정을 성능 모니터링 사용자 그룹에 추가하려면 `IIS APPPOOL\` 형식을 사용합니다. 예를 들어, DefaultAppPool의 사용자는 `IIS APPPOOL\DefaultAppPool`입니다. + +이 작업은 '컴퓨터 관리' UI 또는 관리자 명령 프롬프트에서 수행할 수 있습니다. + +```shell +net localgroup "Performance Monitor Users" "IIS APPPOOL\DefaultAppPool" /add +``` + +{{% /tab %}} +{{% tab "PHP" %}} + +
    PHP에 대한 런타임 메트릭은 지원되지 않습니다.
    + +{{% /tab %}} +{{% tab "C++" %}} + +
    C++에 대한 런타임 메트릭은 지원되지 않습니다.
    + +{{% /tab %}} +{{< /tabs >}} + +## 설정 지침 {#setup-instructions} + +런타임 메트릭을 설정하려면 Datadog Agent와 애플리케이션을 모두 구성해야 합니다. + +### 1. Datadog Agent 구성 {#1-configure-the-datadog-agent} + +[Agent에서 DogStatsD][2]를 활성화합니다. 기본적으로 Datadog Agent는 포트 `8125`를 통해 메트릭을 수집하도록 구성되어 있습니다. + +{{% collapse-content title="컨테이너 전용 구성" level="h4" expanded=false %}} + +컨테이너화된 환경에서 Datadog Agent를 실행할 때 추가 구성이 필요합니다. + +1. DogStatsD 비로컬 트래픽이 활성화되어 있는지 확인합니다. 이 설정은 기본적으로 활성화되어 있습니다. 이전에 비활성화한 경우, 주 [`datadog.yaml` 구성 파일][8]에서 `dogstatsd_non_local_traffic: true`를 설정하거나 [환경 변수][3] `DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true`를 설정합니다. +2. 다음의 컨테이너 전용 설정 지침을 따릅니다. + +{{< partial name="apm/apm-runtime-metrics-containers.html" >}} + +
    + +{{< site-region region="us3,us5,eu,gov,gov2,ap1,ap2" >}} + +3. Datadog Agent의 `DD_SITE`를 {{< region-param key="dd_site" code="true" >}} 로 설정하여 Agent가 데이터를 올바른 Datadog 위치에 전송되도록 보장합니다. + +{{< /site-region >}} + +{{% /collapse-content %}} + +### 2. 애플리케이션 구성 {#2-configure-your-application} + +환경 변수를 사용하여 애플리케이션에서 런타임 메트릭을 구성합니다. 일부 언어는 [코드에서 직접](#code-based-configuration) 런타임 메트릭을 구성하는 것도 지원합니다. + +#### 환경 변수 {#environment-variables} + +다음 환경 변수를 사용하여 애플리케이션에서 런타임 메트릭을 구성합니다. + +`DD_RUNTIME_METRICS_ENABLED` +: **기본값**: Java 및 .NET 6 이상(v3.40.0 이상)인 경우 `true`, 다른 모든 언어 및 런타임의 경우 `false`.
    +**설명**: 런타임 메트릭 수집을 활성화합니다. 메트릭은 계측된 애플리케이션에 대해 구성된 대로 Datadog Agent로 전송됩니다. + +`DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED` +: **기본값**: Java의 경우 `true`, Node.js, Ruby 및 Python의 경우 `false`. .NET 및 Go에는 존재하지 않으며, `runtime_id`가 항상 보고됩니다.
    +**설명**: 향상된 런타임 메트릭을 활성화하여 모든 메트릭과 함께 `runtime_id` 태그를 제공합니다. `runtime_id`가 애플리케이션의 프로세스 식별자를 나타내며, 런타임 메트릭을 개별 실행 중인 애플리케이션과 직접 연관시킬 수 있습니다. + +`DD_AGENT_HOST` +: **기본값**: `localhost`
    +**설명**: SDK의 메트릭 제출을 위한 호스트 주소를 설정합니다. 호스트 이름 또는 IP 주소일 수 있습니다. + +`DD_DOGSTATSD_PORT` +: **기본값**: `8125`
    +**설명**: SDK의 메트릭 제출을 위한 포트를 설정합니다. + +`DD_RUNTIME_METRICS_DIAGNOSTICS_METRICS_API_ENABLED` +: **기본값**: .NET 8 이상에서 tracer v3.40.0 이상이면(그리고 NET 6/7에서 `DD_RUNTIME_METRICS_ENABLED`가 명시적으로 설정되지 않은 경우) `true`, 그 외는 `false`
    +**설명**: .NET 6부터 사용할 수 있는 설정입니다. .NET 트레이서가 [`System.Diagnostics.Metrics` API][9]를 사용하여 메트릭을 수집할지, 아니면 `EventListener` 기반 컬렉터를 사용할지를 제어합니다. + +#### 코드 기반 구성 {#code-based-configuration} + +환경 변수 외에도 일부 언어는 코드에서 직접 런타임 메트릭을 구성하는 것을 지원합니다. + +{{< tabs >}} +{{% tab "Java" %}} + +런타임 메트릭은 [환경 변수](#environment-variables)로만 활성화할 수 있습니다. + +다만, 사용자 지정 JMX 메트릭을 추가하여 수집된 메트릭을 확장할 수 있습니다. 자세한 내용은 [JMX 통합][100] 설명서를 참조하세요. + +[100]: /ko/integrations/java/ +{{% /tab %}} + +{{% tab "Python" %}} + +런타임 메트릭은 [환경 변수](#environment-variables) 또는 코드로 활성화할 수 있습니다. + +```python +from ddtrace.runtime import RuntimeMetrics +RuntimeMetrics.enable() +``` + +
    이 설정은 ddtrace-run
    을 사용하지 않는 경우에만 적용됩니다. +{{% /tab %}} + +{{% tab "Ruby" %}} + +런타임 메트릭은 [환경 변수](#environment-variables) 또는 코드로 활성화할 수 있습니다. + +```ruby +# config/initializers/datadog.rb +require 'datadog/statsd' +require 'datadog' # Use 'ddtrace' if you're using v1.x + +Datadog.configure do |c| + c.runtime_metrics.enabled = true + + # Optionally, you can configure the DogStatsD instance used for sending runtime metrics. + # DogStatsD is automatically configured with default settings if `dogstatsd-ruby` is available. + # You can configure with host and port of Datadog agent; defaults to 'localhost:8125'. + c.runtime_metrics.statsd = Datadog::Statsd.new +end +``` +{{% /tab %}} + +{{% tab "Go" %}} + +런타임 메트릭은 [환경 변수](#environment-variables) 또는 코드로 활성화할 수 있습니다. + +```go +// Basic configuration +tracer.Start(tracer.WithRuntimeMetrics()) + +// With custom DogStatsD address +tracer.Start( + tracer.WithRuntimeMetrics(), + tracer.WithDogstatsdAddr("custom-host:8125") +) +``` + +`WithDogstatsdAddr` 옵션을 사용하면 DogStatsD 서버에 대한 사용자 지정 주소를 지정할 수 있습니다. 주소가 기본값 `localhost:8125`와 다르면 [`WithDogstatsdAddr`][101](또는 [`WithDogstatsdAddress` v1][100]) 옵션을 사용하세요. (1.18.0 이상에서 사용 가능) + +[100]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer#WithDogstatsdAddress +[101]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/ddtrace/tracer#WithDogstatsdAddr +{{% /tab %}} + +{{% tab "Node.js" %}} + +런타임 메트릭은 [환경 변수](#environment-variables) 또는 코드로 활성화할 수 있습니다. + +```js +const tracer = require('dd-trace').init({ + // Other tracer options... + runtimeMetrics: true +}) +``` +{{% /tab %}} + +{{% tab ".NET" %}} + +런타임 메트릭은 [환경 변수](#environment-variables)로만 활성화할 수 있습니다. + +{{% /tab %}} +{{< /tabs >}} + +## 대시보드 {#dashboards} + +설정이 완료되면 런타임 메트릭을 볼 수 있습니다. + +- 계측된 서비스의 세부 정보 페이지 +- 플레임 그래프의 **Metrics** 탭 +- 기본 런타임 대시보드 + +{{< img src="tracing/runtime_metrics/jvm_runtime_trace.png" alt="JVM Runtime Trace" >}} + +## 문제 해결 {#troubleshooting} +- 플레임 그래프 내에서 런타임 메트릭을 연결하려면 `env` 태그(대소문자 구분)가 설정되어 있고 환경과 일치하는지 확인하세요. +- Fargate를 사용할 때 서비스 페이지에 런타임 메트릭이 표시되도록 하려면 `DD_DOGSTATSD_TAGS`가 Agent 작업에 설정되어 있고 구성된 `env` 태그가 계측된 서비스의 `env`와 일치하는지 확인하세요. + +## 수집된 데이터 {#data-collected} + +지원되는 각 언어는 메모리 사용량, 가비지 컬렉션, CPU 사용률 및 기타 성능 지표에 대한 인사이트를 제공하는 런타임 메트릭 세트를 수집합니다. + +{{< tabs >}} +{{< tab "Java" >}} +{{< get-metrics-from-git "java" >}} +{{< /tab >}} + +{{< tab "Python" >}} +{{< get-metrics-from-git "python" >}} +{{< /tab >}} + +{{< tab "Ruby" >}} +{{< get-metrics-from-git "ruby" >}} +{{< /tab >}} + +{{< tab "Go" >}} +{{< get-metrics-from-git "go" >}} +{{< /tab >}} + +{{< tab "Node.js" >}} +{{< get-metrics-from-git "node" >}} +{{< /tab >}} + +{{< tab ".NET" >}} +{{< get-metrics-from-git "dotnet" >}} +{{< /tab >}} +{{< /tabs >}} + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[2]: /ko/extend/dogstatsd/#setup +[3]: /ko/agent/docker/#dogstatsd-custom-metrics +[7]: /ko/extend/dogstatsd/unix_socket/ +[8]: /ko/agent/configuration/agent-configuration-files/#main-configuration-file +[9]: https://learn.microsoft.com/dotnet/api/system.diagnostics.metrics +[10]: /ko/opentelemetry/integrations/runtime_metrics/ \ No newline at end of file diff --git a/content/ko/tracing/trace_collection/_index.md b/content/ko/tracing/trace_collection/_index.md index a321119df46..b6af3c519ac 100644 --- a/content/ko/tracing/trace_collection/_index.md +++ b/content/ko/tracing/trace_collection/_index.md @@ -1,4 +1,7 @@ --- +algolia: + tags: + - apm automatic instrumentation aliases: - /ko/tracing/setup - /ko/tracing/send_traces/ @@ -10,86 +13,173 @@ aliases: - /ko/agent/apm/ - /ko/tracing/setup_overview/ - /ko/tracing/trace_collection/library_injection_remote +- /ko/tracing/trace_collection/automatic_instrumentation description: Datadog 애플리케이션 성능 모니터링(APM) 시작하기 further_reading: - link: tracing/trace_collection/compatibility tag: 설명서 - text: 호환성 요구사항 + text: 호환성 요구 사항 +- link: /tracing/glossary/ + tag: 설명서 + text: APM 이용 약관 +- link: https://www.datadoghq.com/blog/rum-apm-single-step + tag: 블로그 + text: 명령 한 개로 Java 앱에 대한 종합적인 가시성 얻기 +- link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ + tag: 아키텍처 센터 + text: Datadog Operator 및 Admission Controller를 사용하여 애플리케이션 계측하기 title: 애플리케이션 계측 --- +## 개요 {#overview} +애플리케이션 {{< tooltip glossary="계측" >}} (Datadog APM 사용)에는 다음이 포함됩니다. -## 개요 - -다음 주요 단계에 따라 Datadog 애플리케이션 성능 모니터링(APM)을 시작합니다. - -1. Datadog 에이전트를 설치 및 설정합니다. -2. 애플리케이션을 계측합니다. +1. **SDK 설정**: 애플리케이션에 Datadog SDK를 추가합니다. +2. **스팬 생성**: 관측성 데이터를 {{< tooltip glossary="스팬" >}}으로 캡처합니다. -
    설정을 간소화해 보세요! 단일 단계 계측 기능으로 한 번에 에이전트를 설치하고 애플리케이션을 계측하세요.
    + SDK가 로드되는 즉시 기본적으로 스팬이 자동 생성됩니다. 이를 **자동 계측**이라고 하며, 대부분의 사용자에게 충분한 가시성을 제공합니다. 더 많은 제어가 필요하면 선택적으로 사용자 지정 스팬을 추가할 수 있습니다. -애플리케이션을 계측하면 옵저빌리티 데이터를 에이전트로 전송할 수 있습니다. 에이전트는 데이터를 Datadog 백엔드로 전달하여 UI에 표시합니다. +**참고**: 이 단계는 트레이스를 수신하도록 [Datadog Agent][5]가 설치 및 구성되어 있다고 가정합니다. {{< img src="tracing/visualization/troubleshooting_pipeline.png" alt="APM 파이프라인">}} -## 계측 유형 +## 시작하기 {#getting-started} -애플리케이션을 계측하는 두 가지 기본 접근 방식이 존재합니다. 자동 계측과 커스텀 계측입니다 {{< tooltip glossary="instrumentation" >}}. +
    +공급업체 중립적인 계측을 선호하시나요? Datadog과 함께 OpenTelemetry를 사용하는 방법은 OpenTelemetry 설명서를 참조하세요. +
    -### 자동 계측 +### 단일 단계 계측(권장) {#single-step-instrumentation-recommended} -최소한의 수동 단계를 통해 애플리케이션의 {{< tooltip glossary="span" >}}을 생성하세요. 자동으로 애플리케이션을 계측하려면 양 옵션 중 하나를 사용할 수 있습니다. +[단일 단계 계측][1](SSI)은 단일 명령으로 Datadog SDK를 자동 설치 및 구성합니다. 그 후 자동 계측이 즉시 지원되는 프레임워크와 라이브러리에서 트레이스를 수집하기 시작하며, 코드 변경은 필요하지 않습니다. -- [단일 단계 계측 (체험판)][7]: 한 줄 설치 명령을 실행하여 Datadog 에이전트를 설치하고 애플리케이션 성능 모니터링(APM) 을 활성화합니다. 아울러 Linux 호스트, VM 또는 컨테이너의 모든 서비스를 계측합니다. -- [Datadog 라이브러리][8]: Datadog 추적 라이브러리 을 애플리케이션에 추가합니다. - -자세한 내용을 확인하려면 [자동 계측][5]을 참조하세요. +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/single-step-apm/" >}}단일 단계 계측 시작하기{{< /nextlink >}} +{{< /whatsnext >}} -### 커스텀 계측 +### 수동 설정 및 사용자 지정 스팬 {#manual-setup-and-custom-spans} -자동 계측으로 캡처되지 않는 사내 코드 또는 복잡한 함수에서 통합 옵저빌리티 데이터를 캡처합니다. 애플리케이션을 커스텀 계측하려면 다음 옵션 중 하나를 사용합니다. +관측성 요구가 증가함에 따라 더 많은 제어와 사용자 지정을 추가할 수 있습니다. -- [Datadog 라이브러리][9]: Datadog 추적 라이브러리를 사용하여 Datadog 내에서 옵저빌리티를 추가 및 사용자 지정합니다. -- [OpenTelemetry API][10]: Datadog 라이브러리에서 OpenTelemetry API 지원을 사용하여 벤더 중립적 계측 코드를 생성합니다. +**SDK 구성을 완전히 제어하려는 경우:** SDK 동작 및 구성에 대한 세부적인 제어가 필요한 경우 [수동으로 관리되는 Datadog SDK][2]를 사용합니다. -자세한 내용을 확인하려면 [커스텀 계측][6]을 참조하세요. +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/dd_libraries/" >}}수동으로 관리되는 Datadog SDK 사용{{< /nextlink >}} +{{< /whatsnext >}} -{{< callout url="https://www.datadoghq.com/product-preview/service-discovery/" btn_hidden="false" header="체험판에 서비스 검색이 있음">}} -서비스 검색을 이용하면 현재 애플리케이션 모니터링을 전체적으로 관측할 수 있고, 데이터 갭이나 시스템 트레이스 오류 등이 강조 표시되어 있어 편리합니다. -{{< /callout >}} +**코드 변경 없이 사용자 지정 스팬을 추가하려는 경우:** 애플리케이션을 재배포하지 않고 Datadog UI에서 사용자 지정 스팬을 생성하려면 [Dynamic Instrumentation][4]을 사용합니다. +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/dynamic_instrumentation/" >}}Dynamic Instrumentation으로 사용자 지정 스팬 추가{{< /nextlink >}} +{{< /whatsnext >}} -## 애플리케이션 성능 모니터링 설치 튜토리얼 +**코드에서 사용자 지정 스팬을 추가하려는 경우:** [코드 기반 사용자 지정 계측][3]을 추가하여 사용자 지정 비즈니스 로직을 계측하거나 애플리케이션별 메타데이터를 스팬에 추가합니다. -다음 튜토리얼에서는 Datadog 추적 라이브러리를 사용한 자동 및 커스텀 계측으로 다양한 인프라스트럭처 시나리오에서 샘플 애플리케이션에 대한 분산 추적을 설정하는 방법을 알아봅니다. +{{< whatsnext desc=" " >}} + {{< nextlink href="/tracing/trace_collection/custom_instrumentation/" >}}코드 기반 계측으로 사용자 지정 스팬 추가{{< /nextlink >}} +{{< /whatsnext >}} -{{< whatsnext desc="언어 및 환경 선택하기:" >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-host" >}} Datadog 에이전트와 동일한 호스트에서 파이썬(Python) 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-containers" >}} 컨테이너의 파이썬(Python) 애플리케이션 및 Datadog 에이전트 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-python-container-agent-host" >}} 호스트의 컨테이너 및 애플리케이션의 파이썬(Python) 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-host" >}} Datadog 에이전트와 동일한 호스트에서 Java 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-containers" >}} 컨테이너의 Java 애플리케이션 및 Datadog 에이전트 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-container-agent-host" >}} 호스트의 컨테이너 및 애플리케이션의 Java 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-gke" >}} GKE에서 Java 애플리케이션 트레이싱 활성화 {{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-eks" >}} AWS EKS에서 Java 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-ec2" >}} Amazon ECS에서 EC2로 Java 애플리케이션 트레이싱 활성화 {{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-fargate" >}} Amazon ECS에서 Fargate로 Java 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-java-admission-controller" >}} 어드미션 컨트롤러로 Java 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-host" >}} Datadog 에이전트와 동일한 호스트에서 Go 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-containers" >}} 컨테이너의 Datadog 에이전트 및 Go 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-ec2" >}} Amazon ECS에서 EC2로 Go 애플리케이션 트레이싱 활성화{{< /nextlink >}} - {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-fargate" >}} Amazon ECS에서 Fargate로 Go 애플리케이션 트레이싱 활성화{{< /nextlink >}} +이 옵션들은 함께 사용할 수 있습니다. 예를 들어 단일 단계 계측으로 시작한 후 특정 스팬에 대해 코드 기반 사용자 지정 계측을 추가하거나, 수동으로 관리되는 SDK와 Dynamic Instrumentation을 함께 사용하여 재배포 없이 스팬을 추가할 수 있습니다. + +## 상세 비교 {#detailed-comparison} + +### SDK 설정 {#sdk-setup} + +단일 단계 계측은 대부분의 사용자에게 권장되는 시작 방법입니다. SDK 구성에 대해 더 많은 제어가 필요하면 대신 수동으로 관리되는 SDK를 사용할 수 있습니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    단일 단계 계측(권장)수동으로 관리되는 SDK
    작동 방식Datadog이 단일 명령으로 런타임에 애플리케이션 프로세스에 SDK를 자동 설치하고 로드합니다.애플리케이션 코드 또는 빌드 프로세스에 SDK를 직접 설치하고 구성합니다.
    코드 변경 필요 여부아니요
    설정 복잡도낮음 - 최소한의 구성만 필요중간 - 환경 및 빌드 구성 필요
    구성 제어선택적 재정의를 지원하는 표준 기본값환경 변수와 코드를 통한 완전한 제어
    사용 시점코드 변경 없이 서비스 전반에 걸쳐 빠르고 일관된 계측을 시작할 때SDK 동작 및 구성에 대한 세부적인 제어가 필요할 때
    + +### 스팬 사용자 지정 {#span-customization} + +자동 계측은 지원되는 프레임워크와 라이브러리에 대해 자동으로 스팬을 생성하여 추가 작업 없이 필수적인 관측성을 제공합니다. 사용자 지정 코드 경로에 대한 가시성이 필요하거나 애플리케이션별 데이터로 트레이스를 보강하려는 경우 Dynamic Instrumentation 또는 코드 기반 사용자 지정 계측을 사용하여 사용자 지정 스팬을 추가할 수 있습니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dynamic Instrumentation코드 기반 사용자 지정 계측
    작동 방식Datadog UI에서 계측 규칙을 구성하며, 규칙은 런타임에 적용됩니다.애플리케이션 코드에 명시적인 트레이싱 API 호출을 추가합니다.
    코드 변경 필요 여부아니요
    배포 필요 여부아니요예(스팬 추가 또는 수정 시)
    사용 시점코드 변경이나 재배포 없이 사용자 지정 스팬을 추가할 때복잡한 계측 로직이 필요하거나 스팬을 코드에 영구적으로 정의하려는 경우
    + +## APM 설정 튜토리얼 {#apm-setup-tutorials} + +다음 튜토리얼은 자동 계측과 사용자 지정 계측을 모두 사용하여 다양한 인프라 시나리오에서 샘플 애플리케이션에 대한 분산 트레이싱 설정 과정을 안내합니다. + +{{< whatsnext desc="언어 및 환경 선택:" >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-host" >}} Datadog Agent와 동일한 호스트에서 Python 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-containers" >}} 컨테이너에서 Python 애플리케이션 및 Datadog Agent에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-python-container-agent-host" >}} 컨테이너의 Python 애플리케이션과 호스트의 Agent에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-host" >}} Datadog Agent와 동일한 호스트에서 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-containers" >}} 컨테이너에서 Java 애플리케이션 및 Datadog Agent에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-container-agent-host" >}} 컨테이너의 Java 애플리케이션과 호스트의 Agent에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-gke" >}} GKE에서 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-eks" >}} Amazon EKS에서 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-ec2" >}} EC2 기반 Amazon ECS에서 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-aws-ecs-fargate" >}} Fargate 기반 Amazon ECS에서 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-java-admission-controller" >}} Admission Controller를 사용하여 Java 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-host" >}} Datadog Agent와 동일한 호스트에서 Go 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-containers" >}} 컨테이너에서 Go 애플리케이션 및 Datadog Agent에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-ec2" >}} EC2 기반 Amazon ECS에서 Go 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} + {{< nextlink href="tracing/guide/tutorial-enable-go-aws-ecs-fargate" >}} Fargate 기반 Amazon ECS에서 Go 애플리케이션에 대한 트레이싱 활성화{{< /nextlink >}} {{< /whatsnext >}} -## 참고 자료 + +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: /ko/developers/community/libraries/#apm-tracing-client-libraries -[2]: /ko/tracing/trace_collection/library_injection_local/ -[4]: /ko/tracing/trace_collection/dd_libraries/ -[5]: /ko/tracing/trace_collection/automatic_instrumentation/ -[6]: /ko/tracing/trace_collection/custom_instrumentation/ -[7]: /ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/ -[8]: /ko/tracing/trace_collection/automatic_instrumentation/dd_libraries/ -[9]: /ko/tracing/trace_collection/custom_instrumentation/dd_libraries/ -[10]: /ko/tracing/trace_collection/custom_instrumentation/otel_instrumentation/ \ No newline at end of file +[1]: /ko/tracing/trace_collection/single-step-apm/ +[2]: /ko/tracing/trace_collection/dd_libraries/ +[3]: /ko/tracing/trace_collection/custom_instrumentation/ +[4]: /ko/tracing/trace_collection/dynamic_instrumentation/ +[5]: /ko/agent/ \ No newline at end of file From a4793f5c9d033b22261f544f7551c42686b29b5c Mon Sep 17 00:00:00 2001 From: "webops-guacbot[bot]" <214537265+webops-guacbot[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:12:15 +0000 Subject: [PATCH 4/8] Updates 60 translation(s) --- content/es/account_management/saml/_index.md | 184 +++---- .../setup/google_cloud.md | 289 ++++++----- content/es/logs/explorer/facets.md | 244 ++++----- .../guide/azure-automated-log-forwarding.md | 220 +++++--- .../logs/log_configuration/archive_search.md | 212 ++++---- .../attributes_naming_convention.md | 150 +++--- content/es/mobile/_index.md | 368 ++++++++++++++ .../devices/snmp_metrics.md | 127 +++-- .../browser/troubleshooting.mdoc.md | 15 + .../rum_without_limits/_index.md | 95 ++-- .../security/sensitive_data_scanner/_index.md | 188 ++++--- .../aws_lambda/instrumentation/_index.md | 46 +- .../aws_lambda/instrumentation/nodejs.md | 475 ++++++++++++++++++ content/es/session_replay/_index.md | 139 +++++ content/es/tests/_index.md | 186 +++---- content/es/tracing/glossary/_index.md | 116 +++-- .../setup/google_cloud.md | 234 +++++---- content/fr/containers/docker/apm.md | 398 +++++++++++++++ .../fr/getting_started/integrations/aws.md | 336 +++++++------ content/fr/mobile/_index.md | 369 ++++++++++++++ content/fr/profiler/enabling/_index.mdoc.md | 89 ++++ .../browser/troubleshooting.mdoc.md | 16 + .../aws_lambda/instrumentation/nodejs.md | 475 ++++++++++++++++++ content/fr/source_code/_index.md | 24 + .../agent-configuration-files.md | 40 +- .../agent/configuration/secrets-management.md | 354 ++++++------- content/ja/agent/logs/_index.md | 182 ++++--- .../ja/agent/logs/advanced_log_collection.md | 451 +++++++++-------- content/ja/agent/supported_platforms/linux.md | 72 +-- content/ja/containers/docker/_index.md | 437 ++++++++-------- .../ja/containers/kubernetes/integrations.md | 325 ++++++++---- .../connect_dbm_and_apm.md | 472 ++++++++++------- .../setup_postgres/rds/_index.md | 421 +++++++++++----- content/ja/infrastructure/process/_index.md | 288 ++++++----- .../infrastructure/resource_catalog/_index.md | 147 ++++++ content/ja/logs/_index.md | 109 ++-- content/ja/logs/log_collection/javascript.md | 266 +++++----- content/ja/logs/log_configuration/archives.md | 285 +++++++---- content/ja/logs/log_configuration/indexes.md | 105 ++-- content/ja/metrics/custom_metrics/_index.md | 107 ++-- content/ja/monitors/configuration/_index.md | 349 +++++++------ content/ja/monitors/types/anomaly.md | 203 ++++---- .../setup/otlp_ingest_in_the_agent.md | 437 +++++++++------- .../browser/setup/client.mdoc.md | 69 +++ .../ja/tracing/other_telemetry/rum/_index.md | 35 ++ .../tracing/services/deployment_tracking.md | 106 ++-- content/ko/agent/logs/_index.md | 214 +++++--- content/ko/containers/kubernetes/apm.md | 134 ++--- .../ko/getting_started/integrations/azure.md | 437 ++++++++++++++++ content/ko/llm_observability/_index.md | 128 +++++ content/ko/metrics/_index.md | 197 ++++---- content/ko/mobile/_index.md | 367 ++++++++++++++ content/ko/monitors/_index.md | 88 ++-- content/ko/monitors/configuration/_index.md | 398 ++++++++------- content/ko/monitors/types/metric.md | 181 ++++--- content/ko/profiler/_index.md | 100 ++-- content/ko/session_replay/_index.md | 135 +++++ .../tracing/guide/ignoring_apm_resources.md | 298 ++++++----- .../ko/tracing/other_telemetry/rum/_index.md | 35 ++ .../ko/tracing/trace_explorer/query_syntax.md | 227 +++++---- 60 files changed, 9045 insertions(+), 4149 deletions(-) create mode 100644 content/es/mobile/_index.md create mode 100644 content/es/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md create mode 100644 content/es/serverless/aws_lambda/instrumentation/nodejs.md create mode 100644 content/es/session_replay/_index.md create mode 100644 content/fr/containers/docker/apm.md create mode 100644 content/fr/mobile/_index.md create mode 100644 content/fr/profiler/enabling/_index.mdoc.md create mode 100644 content/fr/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md create mode 100644 content/fr/serverless/aws_lambda/instrumentation/nodejs.md create mode 100644 content/fr/source_code/_index.md create mode 100644 content/ja/infrastructure/resource_catalog/_index.md create mode 100644 content/ja/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md create mode 100644 content/ja/tracing/other_telemetry/rum/_index.md create mode 100644 content/ko/getting_started/integrations/azure.md create mode 100644 content/ko/llm_observability/_index.md create mode 100644 content/ko/mobile/_index.md create mode 100644 content/ko/session_replay/_index.md create mode 100644 content/ko/tracing/other_telemetry/rum/_index.md diff --git a/content/es/account_management/saml/_index.md b/content/es/account_management/saml/_index.md index bd5790ae389..45af470a310 100644 --- a/content/es/account_management/saml/_index.md +++ b/content/es/account_management/saml/_index.md @@ -4,187 +4,145 @@ algolia: - saml aliases: - /es/guides/saml -description: Configura la autenticación SAML para Datadog con proveedores de identidad +description: Configure la autenticación SAML para Datadog con proveedores de identidad como Active Directory, Auth0, Google, Okta y Microsoft Entra ID para un inicio de sesión único seguro. further_reading: - link: /account_management/multi_organization/ tag: Documentación - text: Configurar equipos y organizaciones con varias cuentas -title: Inicio de sesión único con SAML + text: Configurando Teams y Organizaciones con Múltiples Cuentas +title: Inicio de Sesión Único con SAML --- -{{< site-region region="gov" >}} -
    El sitio Datadog for Government solo admite el inicio de sesión SAML.
    +{{< site-region region="gov,gov2" >}} +
    El sitio de Datadog para Gobierno solo admite inicio de sesión SAML.
    {{< /site-region >}} -## Información general +## Descripción general {#overview} -La configuración de [SAML (Security Assertion Markup Language)][1] para tu cuenta Datadog te permite a ti y a todos tus compañeros de equipo iniciar sesión en Datadog utilizando las credenciales almacenadas en Active Directory, LDAP u otro almacén de identidades de tu organización que se haya configurado con un proveedor de identidades SAML. +Configurar [SAML (Security Assertion Markup Language)][1] para su cuenta de Datadog permite que usted y todos sus compañeros inicien sesión en Datadog utilizando las credenciales almacenadas en el Active Directory de su organización, LDAP u otro almacén de identidad que haya sido configurado con un Proveedor de Identidad SAML. **Notas**: {{% site-region region="us,us3,us5,eu,ap1,ap2" %}} -- Si no tienes SAML activado en tu cuenta de Datadog, ponte en contacto con el [servicio de asistencia][2] para activarlo. -- Esta documentación asume que ya tienes un proveedor de identidad (IdP) SAML. Si no tienes un IdP SAML, hay varios IdP que tienen integraciones con Datadog como [Active Directory][3], [Auth0][4], [Google][5], [LastPass][6], [Microsoft Entra ID][3], [Okta][7] y [SafeNet][8]. -- La configuración de SAML requiere acceso a [Datadog Administrator][9]. +- Si no tiene SAML habilitado en su cuenta de Datadog, contacte a [soporte][2] para habilitarlo. {{% /site-region %}} +- Esta documentación asume que ya tiene un Proveedor de Identidad SAML (IdP). Si no tiene un IdP SAML, hay varios IdPs que tienen integraciones con Datadog, como [Active Directory][3], [Auth0][4], [Google][5], [LastPass][6], [Microsoft Entra ID][3], [Okta][7] y [SafeNet][8]. +- La configuración de SAML requiere acceso de [Datadog Administrator][9]. -{{% site-region region="gov" %}} -- Esta documentación asume que ya tienes un proveedor de identidad (IdP) SAML. Si no tienes un IdP SAML, hay varios IdP que tienen integraciones con Datadog, como [Active Directory][3], [Auth0][4], [Google][5], [LastPass][6], [Microsoft Entra ID][3], [Okta][7] y [SafeNet][8]. -- La configuración de SAML requiere acceso a [Datadog Administrator][9]. -{{% /site-region %}} - -## Configuración de SAML - -1. Para comenzar la configuración, consulta la documentación de tu IdP: - - * [Active Directory][10] - * [Auth0][11] - * [Google][13] - * [Microsoft Entra ID][12] - * [NoPassword][14] - * [Okta][15] - * [SafeNet][16] - -2. En la aplicación Datadog, coloca el cursor sobre tu nombre de usuario en la esquina inferior izquierda y selecciona Organization Settings (Parámetros de la organización). Selecciona [Login Methods (Métodos de inicio de sesión)][17] y haz clic en **Configure** (Configurar) en SAML. - -3. Carga los metadatos de IdP de tu proveedor de identidad SAML haciendo clic en el botón **Choose File** (Seleccionar archivo). Después de elegir el archivo, haz clic en **Upload File** (Cargar archivo). - -**Nota:** Los metadatos de IdP deben contener únicamente caracteres ASCII. - -4. Descarga [metadatos del proveedor de servicios][18] de Datadog para configurar tu IdP de modo que reconozca a Datadog como proveedor de servicios. - -5. Después de cargar los metadatos IdP y configurar su IdP, active SAML en Datadog haciendo clic en el botón **Cargar y activar**. - {{< img src="account_management/saml/saml_enable_cropped.png" alt="Configurar SAML cargando los metadatos de tu IdP" >}} - -6. Después de cargar los metadatos de IdP, vuelve a la página Login Methods (Métodos de inicio de sesión) y activa SAML `on` por defecto. +## Configuración de SAML {#configuring-saml} -**Nota**: Para configurar SAML para varias organizaciones, consulta [Gestión de cuentas de varias organizaciones][21]. +Consulte [Configurar el inicio de sesión único con SAML][2] para obtener instrucciones. -## Uso de SAML +## Uso de SAML {#using-saml} -Una vez que SAML está configurado en Datadog y tu IdP está configurado para aceptar solicitudes de Datadog, los usuarios pueden acceder a log. +Después de que SAML esté configurado en Datadog y su IdP esté configurado para aceptar solicitudes de Datadog, los usuarios pueden iniciar sesión. -### Inicio de sesión por el PS +### Inicio de sesión iniciado por SP {#sp-initiated-login} -Iniciado por el PS o por el Proveedor de servicio se refiere a un inicio de sesión iniciado desde Datadog. Los usuarios inician sesión a través de la **URL de inicio de sesión único** mostrada en el cuadro de estado en la parte superior de la [página Configuración de SAML][19]. La **URL de inicio de sesión único** también se muestra en la [página Equipo][20]. Al cargar esta URL se inicia una autenticación SAML con tu IdP. **Nota**: Esta URL solo se muestra si SAML está habilitado para tu cuenta y estás utilizando el inicio de sesión iniciado por el PS. +SP-initiated, o iniciado por el Proveedor de Servicios, significa que el inicio de sesión se realiza desde Datadog. Los usuarios inician sesión a través del {{< ui >}}Single Sign-on URL{{< /ui >}} que se muestra en el cuadro de estado en la parte superior de la [SAML Configuration page][4]. Cargar esta URL inicia una autenticación SAML contra su IdP. **Nota**: Esta URL solo se muestra si SAML está habilitado para su cuenta y está utilizando inicio de sesión iniciado por SP. {{< img src="account_management/saml/saml_enabled_cropped.png" alt="Confirmación de que SAML está habilitado" >}} -Cuando un usuario inicia sesión a través de SAML iniciado por el PS y la organización no tiene un subdominio personalizado, Datadog requiere seguridad adicional. Los usuarios reciben un único código de verificación por correo electrónico que es necesario para iniciar la sesión. +Cuando un usuario inicia sesión a través de SAML iniciado por SP y la organización no tiene un subdominio personalizado, Datadog requiere seguridad adicional. Los usuarios reciben un código de verificación por correo electrónico de un solo uso que es necesario para iniciar sesión. -### Inicio de sesión iniciado por el IdP +### Inicio de sesión iniciado por IdP {#idp-initiated-login} -Iniciado por el IdP o por el Proveedor de identidad se refiere a un inicio de sesión iniciado desde tu portal de aplicaciones. Los usuarios inician sesión haciendo clic en el icono de la aplicación en tu portal de aplicaciones, por ejemplo, en el cajón de Google App o en el portal de aplicaciones de Okta. Los usuarios con inicio de sesión iniciado por el PS también pueden utilizar el inicio de sesión iniciado por el IdP, dependiendo de la configuración de su proveedor de identidad. +IdP-initiated, o iniciado por el Proveedor de Identidad, significa que el inicio de sesión se realiza desde el portal de su aplicación. Los usuarios inician sesión haciendo clic en el ícono de la app en su app portal, por ejemplo, en el Google App drawer o en el Okta App Portal. Los usuarios de inicio de sesión iniciado por SP también pueden utilizar el inicio de sesión iniciado por IdP, dependiendo de la configuración de su Proveedor de Identidad. -## Aserciones y atributos +## Afirmaciones y Atributos {#assertions-and-attributes} -Cuando se produce un inicio de sesión, el proveedor de identidad envía a Datadog una aserción SAML que contiene la autorización del usuario. +Cuando ocurre un inicio de sesión, una Afirmación SAML que contiene la autorización del usuario se envía desde el proveedor de identidad a Datadog. -### Capacidades +### Capacidades {#capabilities} -* Datadog soporta el enlace **HTTP-POST** para **SAML2**: +* Datadog admite el enlace **HTTP-POST** para **SAML2**: `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST`. -* Datadog especifica `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` para el formato del **NameIDPolicy** en solicitudes de aserción. +* Datadog especifica `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` para el formato de la **NameIDPolicy** en las solicitudes de afirmación. -### Requisitos +### Requisitos {#requirements} -* Las aserciones deben estar firmadas. -* Las aserciones pueden estar cifradas, pero se aceptan aserciones sin cifrar. -* Consulta los [metadatos de proveedores de servicios de Datadog][18] para obtener más información. Debes iniciar sesión en Datadog para acceder al archivo. +* Las Afirmaciones deben estar firmadas. +* Las Afirmaciones pueden estar encriptadas, pero se aceptan Afirmaciones no encriptadas. +* Referencia [metadatos del Proveedor de Servicio de Datadog][3] para más información. Debe haber iniciado sesión en Datadog para acceder al archivo. -### Atributos compatibles +### Atributos Soportados {#supported-attributes} -Es posible incluir atributos en una aserción SAML. Datadog busca tres atributos en un `AttributeStatement`: +Los atributos pueden incluirse en una afirmación SAML. Datadog busca tres atributos en un `AttributeStatement`: - 1. **eduPersonPrincipalName**: Si se especifica, el eduPersonPrincipalName debe corresponder al nombre de usuario del usuario Datadog. El nombre de usuario suele ser la dirección de correo electrónico del usuario. - 2. **sn**: Es opcional y debe configurarse con el apellido del usuario. - 3. **givenName**: Es opcional y debe ser el nombre del usuario. + 1. **eduPersonPrincipalName**: Si se especifica, el eduPersonPrincipalName debe corresponder al nombre de usuario de Datadog del usuario. El nombre de usuario es típicamente la dirección de correo electrónico del usuario. + 2. **sn**: Esto es opcional y debe establecerse como el apellido del usuario. + 3. **givenName**: Esto es opcional y debe establecerse como el nombre de pila del usuario. -
    Para el IdP de Microsoft Entra ID, utiliza el atributo `surname` en lugar de `sn` en la aserción.
    +
    Para el IdP de Microsoft Entra ID, utilice el atributo `surname` en lugar de `sn` en la afirmación.
    -Datadog espera que los atributos utilicen el URI NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:uri` o el NameFormat básico `urn:oasis:names:tc:SAML:2.0:attrname-format:basic`. El nombre utilizado para cada atributo depende del NameFormat que utilice tu IdP. +Datadog espera que los atributos usen el URI NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:uri` o el Basic NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:basic`. El nombre utilizado para cada atributo depende del NameFormat que utiliza su IdP. -Si tu IdP está configurado para utilizar el URI NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:uri`: +Si su IdP está configurado para usar el URI NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:uri`: - 1. **eduPersonPrincipalName**: el IdP debe establecer `urn:oid:1.3.6.1.4.1.5923.1.1.1.6` como nombre del atributo. - 2. **sn**: el IdP debe establecer `urn:oid:2.5.4.4` como nombre del atributo. - 3. **givenName**: el IdP debe establecer `urn:oid:2.5.4.42` como nombre del atributo. + 1. **eduPersonPrincipalName**: El IdP debe establecer `urn:oid:1.3.6.1.4.1.5923.1.1.1.6` como el nombre del atributo. + 2. **sn**: El IdP debe establecer `urn:oid:2.5.4.4` como el nombre del atributo. + 3. **givenName**: El IdP debe establecer `urn:oid:2.5.4.42` como el nombre del atributo. -Si tu IdP está configurado para utilizar el NameFormat básico `urn:oasis:names:tc:SAML:2.0:attrname-format:basic`: +Si su IdP está configurado para usar el Basic NameFormat `urn:oasis:names:tc:SAML:2.0:attrname-format:basic`: - 1. **eduPersonPrincipalName**: el IdP debe establecer `urn:mace:dir:attribute-def:eduPersonPrincipalName` como nombre del atributo. - 2. **sn**: el IdP debe establecer `urn:mace:dir:attribute-def:sn` como nombre del atributo. - 3. **givenName**: el IdP debe establecer `urn:mace:dir:attribute-def:givenName` como nombre del atributo. + 1. **eduPersonPrincipalName**: El IdP debe establecer `urn:mace:dir:attribute-def:eduPersonPrincipalName` como el nombre del atributo. + 2. **sn**: El IdP debe establecer `urn:mace:dir:attribute-def:sn` como el nombre del atributo. + 3. **givenName**: El IdP debe establecer `urn:mace:dir:attribute-def:givenName` como el nombre del atributo. -Si **eduPersonPrincipalName** existe en el AttributeStatement, el valor de este atributo se utiliza para el nombre de usuario. Si **eduPersonPrincipalName** no está incluido en el AttributeStatement, el nombre de usuario se toma del NameID en el Subject. El NameID debe utilizar el formato `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`. +Si **eduPersonPrincipalName** existe en el AttributeStatement, el valor de este atributo se utiliza para el nombre de usuario. Si **eduPersonPrincipalName** no está incluido en el AttributeStatement, el nombre de usuario se toma del NameID en el Subject. El NameID debe usar el formato `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`. -Si se proporcionan **sn** y **givenName**, se utilizan para actualizar el nombre del usuario en su perfil de Datadog. +Si **sn** y **givenName** son proporcionados, se utilizan para actualizar el nombre del usuario en su perfil de Datadog. -## Funciones adicionales +## Características adicionales {#additional-features} -Para asignar atributos en la respuesta de tu proveedor de identidad a los roles y equipos de Datadog, consulta [asignación de grupo SAML][22]. +Para mapear atributos en la respuesta de su proveedor de identidad a los roles y Teams de Datadog, consulte [mapeo de grupos SAML][5]. -Las siguientes funciones pueden activarse a través del [cuadro de diálogo de configuración de SAML][19]: +Las siguientes características se pueden habilitar a través del [SAML Configuration dialog][4]: -**Nota:** Debes tener permisos de administrador para ver el cuadro de diálogo de configuración de SAML. +**Nota:** Debe tener permisos de administrador para ver el SAML Configuration dialog. -### Suministro justo a tiempo (JIT) +### Provisionamiento justo a tiempo (JIT) {#just-in-time-jit-provisioning} -Con el suministro JIT, un usuario se crea en Datadog la primera vez que intenta iniciar sesión. Esto elimina la necesidad de que los administradores creen manualmente las cuentas de usuario una a la vez. En este caso, no se envía el correo electrónico de invitación. +Con el provisionamiento JIT, un usuario se crea dentro de Datadog la primera vez que intenta iniciar sesión. Esto elimina la necesidad de que los administradores creen cuentas de usuario manualmente una por una. El correo electrónico de invitación no se envía en este caso. -Es posible que algunas organizaciones no deseen invitar a todos sus usuarios a Datadog. Si deseas realizar cambios en el funcionamiento de SAML para tu cuenta, ponte en contacto con el [soporte de Datadog][2]. Depende de la organización configurar que su IdP no envíe aserciones a Datadog si no desea que un usuario concreto acceda a Datadog. +Algunas organizaciones pueden no querer invitar a todos sus usuarios a Datadog. Si desea realizar cambios en cómo funciona SAML para su cuenta, comuníquese con [Datadog support][2]. Corresponde a la organización configurar su IdP para que no envíe afirmaciones a Datadog si no desea que un usuario en particular acceda a Datadog. -Los administradores pueden establecer la función por defecto de los nuevos usuarios JIT. El rol por defecto es **Standard** (Estándar), pero puedes elegir añadir nuevos usuarios JIT como **Read-Only** (Solo lectura), **Administrators** (Administradores) o cualquier rol personalizado. +Los administradores pueden establecer el rol predeterminado para nuevos usuarios JIT. El rol predeterminado es {{< ui >}}Standard{{< /ui >}}, pero puede optar por agregar nuevos usuarios JIT como {{< ui >}}Read-Only{{< /ui >}}, {{< ui >}}Administrators{{< /ui >}} o cualquier rol personalizado.
    - Importante: Si Role Mapping está activado, tiene prioridad sobre los roles definidos durante el aprovisionamiento de JIT. Sin las sentencias de atributo de grupo adecuadas, los usuarios podrían quedarse sin roles y perder el acceso a Datadog. Para evitar que los usuarios queden bloqueados tras el aprovisionamiento de JIT, asegúrate de revisar las definiciones de asignación y comprobar las aserciones antes de habilitar tanto las asignaciones como JIT. + Importante: Si el mapeo de roles está habilitado, tiene prioridad sobre los roles establecidos durante el provisionamiento JIT. Sin las declaraciones de atributo de grupo adecuadas, los usuarios pueden terminar sin roles y perder el acceso a Datadog. Para evitar que los usuarios queden bloqueados después del provisionamiento JIT, asegúrese de revisar sus definiciones de mapeo y verificar sus afirmaciones antes de habilitar tanto los Mapeos como JIT.
    -{{< img src="account_management/saml/saml_jit_default.png" alt="saml JIT predeterminado" style="width:50%;" >}} +{{< img src="account_management/saml/saml_jit_default.png" alt="SAML JIT Predeterminado" style="width:50%;" >}} -### Inicio de sesión iniciado por IdP +### Inicio de sesión iniciado por IdP {#idp-initiated-login-1} -Cuando se carga la URL de Datadog, el navegador es redirigido al IdP del cliente donde el usuario introduce sus credenciales, después el IdP lo redirige de nuevo a Datadog. Algunos IdP tienen la capacidad de enviar una aserción directamente a Datadog sin obtener primero una AuthnRequest (inicio de sesión iniciado por el IdP). +Cuando se carga la URL de Datadog, el navegador es redirigido al IdP del cliente donde el usuario introduce sus credenciales, luego el IdP redirige de vuelta a Datadog. Algunos IdP tienen la capacidad de enviar una aserción directamente a Datadog sin primero obtener una AuthnRequest (inicio de sesión iniciado por el IdP). -Tras activar la función de inicio de sesión iniciado por el IdP y guardar tu configuración, puedes descargar la última versión de los metadatos del proveedor de servicio (SP) para tu proveedor de identidades. Tus nuevos metadatos SP contienen un endpoint `AssertionConsumerService` diferente y específico de la organización al que enviar aserciones. +Después de habilitar la función de inicio de sesión iniciado por el IdP y guardar su configuración, puede descargar la última versión de los metadatos del Proveedor de Servicios (SP) para su Proveedor de Identidad. Sus nuevos metadatos de SP contienen un punto de conexión específico de la organización `AssertionConsumerService` para enviar aserciones. -Si no utilizas los metadatos del SP actualizados, Datadog no podrá asociar la aserción con tu organización y mostrará una página de error con el mensaje de que a la respuesta SAML le falta el atributo "InResponseTo". +Si no utiliza los metadatos de SP actualizados, Datadog no podrá asociar la aserción con su organización y mostrará una página de error con un mensaje que indica que a la respuesta SAML le falta el atributo "InResponseTo". -### SAML estricto +### SAML estricto {#saml-strict} -Puedes hacer que tu organización sea SAML Strict deshabilitando otros tipos de métodos de inicio de sesión en la interfaz de usuario **Login Methods** (Métodos de inicio de sesión). Cuando se configura esta opción, todos los usuarios deben, por defecto, iniciar sesión con SAML. Un nombre de usuario/contraseña existente o un inicio de sesión Google OAuth no funcionan. Esto garantiza que todos los usuarios con acceso a Datadog deben tener credenciales válidas en el servicio de proveedor/directorio de identidad de tu empresa para acceder a tu cuenta Datadog. Los administradores de la organización pueden establecer [overrides (anulaciones)][23] por usuario para permitir que determinados usuarios estén exentos de SAML Strict. +Puede hacer que su organización sea SAML estricto deshabilitando otros tipos de métodos de inicio de sesión en la UI {{< ui >}}Login Methods{{< /ui >}}. Cuando esta opción está configurada, todos los usuarios deben, por defecto, iniciar sesión con SAML. Un nombre de usuario y contraseña existentes, o el inicio de sesión de Google OAuth, no funcionan. Esto asegura que todos los usuarios con acceso a Datadog deben tener credenciales válidas en el proveedor de identidad o servicio de directorio de su empresa para acceder a su cuenta de Datadog. Los administradores de la organización pueden establecer [excepciones][6] por usuario para permitir que ciertos usuarios estén exentos de SAML Estricto. -### Metadatos del SP de Datadog autoactualizables +### Metadatos de SP de Datadog autoactualizables {#self-updating-datadog-sp-metadata} -Algunos proveedores de identidades (como ADFS de Microsoft) pueden configurarse para obtener los últimos metadatos del proveedor de servicio SAML de Datadog. Después de configurar SAML en Datadog, puedes obtener la URL de metadatos para tu organización de la página configuración de SAML y utilizarla con tu Proveedor de identidades para obtener los últimos metadatos del proveedor de servicio cada vez que se publiquen cambios. +Ciertos Proveedores de Identidad (como ADFS de Microsoft) pueden configurarse para obtener los últimos metadatos del proveedor de servicios SAML de Datadog. Después de configurar SAML en Datadog, puede obtener la URL de metadatos para su organización desde la página de Configuración de SAML y usarla con su Proveedor de Identidad para obtener los últimos metadatos del proveedor de servicios cada vez que se publiquen cambios. -{{< img src="account_management/saml/saml_metadata_url.png" alt="URL de metadatos de SAML" style="width:50%;" >}} +{{< img src="account_management/saml/saml_metadata_url.png" alt="URL de Metadatos SAML" style="width:50%;" >}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language -[2]: /es/help/ -[3]: https://learn.microsoft.com/en-us/entra/architecture/auth-saml -[4]: https://auth0.com/docs/protocols/saml-protocol -[5]: https://cloud.google.com/architecture/identity/single-sign-on -[6]: https://support.logmeininc.com/lastpass/help/lastpass-admin-toolkit-using-single-sign-on-sso +[2]: /es/account_management/saml/configuration +[3]: https://app.datadoghq.com/account/saml/metadata.xml +[4]: https://app.datadoghq.com/organization-settings/login-methods/saml +[5]: /es/account_management/saml/mapping/ +[6]: /es/account_management/login_methods/#reviewing-user-overrides [7]: https://developer.okta.com/docs/concepts/saml/ [8]: https://thalesdocs.com/sta/operator/applications/apps_saml/index.html -[9]: /es/account_management/users/default_roles/ -[10]: /es/account_management/saml/activedirectory/ -[11]: /es/account_management/saml/auth0/ -[12]: /es/account_management/saml/entra/ -[13]: /es/account_management/saml/google/ -[14]: /es/account_management/saml/nopassword/ -[15]: /es/account_management/saml/okta/ -[16]: /es/account_management/saml/safenet/ -[17]: https://app.datadoghq.com/organization-settings/login-methods -[18]: https://app.datadoghq.com/account/saml/metadata.xml -[19]: https://app.datadoghq.com/saml/saml_setup -[20]: https://app.datadoghq.com/account/team -[21]: /es/account_management/multi_organization/#setting-up-saml -[22]: /es/account_management/saml/mapping/ -[23]: /es/account_management/login_methods/#reviewing-user-overrides \ No newline at end of file +[9]: /es/account_management/users/default_roles/ \ No newline at end of file diff --git a/content/es/cloud_cost_management/setup/google_cloud.md b/content/es/cloud_cost_management/setup/google_cloud.md index 94ed51b5ab4..74e759cc7b4 100644 --- a/content/es/cloud_cost_management/setup/google_cloud.md +++ b/content/es/cloud_cost_management/setup/google_cloud.md @@ -8,79 +8,114 @@ further_reading: text: Cloud Cost Management - link: /cloud_cost_management/setup/aws tag: Documentación - text: Obtener información sobre tu factura de AWS + text: Obtenga información sobre su factura de AWS - link: /cloud_cost_management/azure tag: Documentación - text: Obtener información sobre tu factura de Azure + text: Obtenga información sobre su factura de Azure +- link: /cloud_cost_management/oracle + tag: Documentación + text: Obtenga información sobre su factura de Oracle title: Google Cloud --- +## Resumen {#overview} +Para usar Cloud Cost Management en Datadog, siga estos pasos: +1. Configure la [Integración de Google Cloud Platform][12] +2. Configure la [exportación de costos de uso detallados][13] con los permisos necesarios (Google Service APIs, acceso al proyecto de exportación y acceso al conjunto de datos de BigQuery) +3. Cree o seleccione un [bucket de Google Cloud Storage][15] con los permisos necesarios (acceso al bucket) -## Información general - -Para utilizar Google Cloud Cost Management en Datadog, sigue estos pasos: -1. Configura la [integración Google Cloud Platform][12]. -2. Configura la [exportación de costes detallados de uso][13] con los permisos necesarios (API de Google Service, acceso a la exportación de proyectos y acceso a conjuntos de datos de BigQuery). -3. Crea o selecciona un [bucket de Google Cloud Storage][15] con los permisos necesarios (acceso a buckets). +## Configuración {#setup} -## Configuración +Puede configurar usando la [API][18], [Terraform][19], o directamente en Datadog siguiendo las instrucciones a continuación. -### Configurar la integración Google Cloud Platform -Ve a [Configuración][3] y selecciona una integración Google Cloud Platform. -Si no ves la cuenta de servicio que buscas en la lista, ve a la [integración Google Cloud Platform][4] para configurarla. +### Configure la integración de Google Cloud Platform {#configure-the-google-cloud-platform-integration} +Navegue a [Setup & Configuration][3], agregue una cuenta de Google Cloud Platform y siga los pasos para configurar la integración de Google Cloud Platform.
    -La integración Datadog Google Cloud Platform permite a Cloud Cost monitorizar automáticamente todos los proyectos a los que esta cuenta de servicio tiene acceso. -Para limitar los hosts de monitorización de infraestructuras a estos proyectos, aplica etiquetas (tags) a los hosts. Luego, decide si las etiquetas deben incluirse o excluirse de la monitorización, en la sección Limitar los filtros para la recopilación de métricas de la página de la integración. +La integración de Google Cloud Platform de Datadog permite que Cloud Cost realice el seguimiento automático de todos los proyectos a los que esta cuenta de servicio tiene acceso. +Para limitar los hosts de monitoreo de infraestructura para estos proyectos, aplique etiquetas a los hosts. Luego defina si las etiquetas deben ser incluidas o excluidas del monitoreo en la sección {{< ui >}}Limit Metric Collection Filters{{< /ui >}} de la página de integración.
    -{{< img src="cloud_cost/gcp_integration_limit_metric_collection.png" alt="Sección Limitar los filtros para la recopilación de métricas, configurada en la página de la integración Google Cloud Platform" >}} +{{< img src="cloud_cost/gcp_integration_limit_metric_collection.png" alt="Limite la sección de filtros de colección de métricas configurada en la página de integración de Google Cloud Platform" >}} -### Habilitar la exportación de costes detallados de uso +### Habilite la exportación detallada de costos de uso {#enable-detailed-usage-cost-export}
    -Los datos de costes detallados de uso proporcionan toda la información incluida en los datos de costes de uso estándar, junto con campos adicionales que proporcionan datos granulares de costes a nivel de los recursos. +Los datos de costos de uso detallados proporcionan toda la información incluida en los datos estándar de costos de uso, junto con campos adicionales que ofrecen datos de costos a nivel de recurso.
    - 1. Ve a [Exportación de la facturación][1] en la consola de Google Cloud *Facturación*. - 2. Habilita la exportación de [costes detallados de uso][2] (selecciona o crea un proyecto y un conjunto de datos de BigQuery). - 3. Documenta el `Billing Account ID` de la cuenta de facturación donde se configuró la exportación, así como la exportación `Project ID` y `Dataset Name`. + 1. Navegar a [Exportación de Facturación][1] en la consola de Google Cloud *Facturación*. + 2. Habilitar la exportación de [Costo de Uso Detallado][2] (seleccionar o crear un proyecto y un conjunto de datos de BigQuery). + 3. Documente el {{< ui >}}Billing Account ID{{< /ui >}} para la cuenta de facturación donde se configuró la exportación, así como la exportación {{< ui >}}Project ID{{< /ui >}} y {{< ui >}}Dataset Name{{< /ui >}}. + +{{< img src="cloud_cost/billing_export.png" alt="Información del proyecto de Google Cloud y del conjunto de datos resaltada" >}} + +_Los conjuntos de datos de exportación de facturación de BigQuery recién creados solo contienen los dos meses más recientes de datos. Puede tardar uno o dos días en que estos datos se completen en BigQuery._ + +#### Habilitar las API de Servicios de Google {#enable-google-service-apis} +Los siguientes permisos permiten a Datadog acceder y transferir la exportación de facturación al bucket de almacenamiento utilizando una consulta programada de BigQuery. + +- Habilitar la [API de BigQuery][5]. + 1. En la consola de Google Cloud, vaya a la página de selección de proyecto y seleccione su proyecto de Google Cloud. + 2. Habilite la facturación en su proyecto para todas las transferencias. + +- Habilite el [Servicio de Transferencia de Datos de BigQuery][5]. + 1. Abra la página de la API de Transferencia de Datos de BigQuery en la biblioteca de API. + 2. En el menú desplegable, seleccione el proyecto que contiene la cuenta de servicio. + 3. Haga clic en el botón {{< ui >}}ENABLE{{< /ui >}}. + + **Nota:** La API de Transferencia de Datos de BigQuery debe habilitarse en el proyecto de Google que contiene la cuenta de servicio. + +{{< tabs >}} -{{< img src="cloud_cost/billing_export.png" alt="Información resaltada del conjunto de datos y del proyecto de Google Cloud" >}} +{{% tab "Terraform" %}} -_La exportación de conjuntos de datos de facturación de BigQuery recién creada sólo contiene los datos de los dos meses más recientes. Estos datos pueden tardar uno o dos días en rellenarse en BigQuery._ +{{< img src="cloud_cost/setup/gcp_terraform_setup.png" alt="Formulario de configuración de Cloud Cost Management en modo Terraform" style="width:100%" >}} -#### Habilitar las API de Google Service -Los siguientes permisos permiten a Datadog acceder a la exportación de la facturación y transferirla al bucket de almacenamiento mediante una consulta programada a BigQuery. +### Defina detalles de configuración {#define-configuration-details} -- Habilita la [API de BigQuery][5]. - 1. En la consola de Google Cloud, ve a la página del selector de proyectos y selecciona tu proyecto de Google Cloud. - 2. Habilita la facturación en tu proyecto para todas las transferencias. +Ingrese los siguientes detalles para su configuración: -- Habilita el [servicio de transferencia de datos de BigQuery][5]. - 1. Abre la página de la API de transferencia de datos de BigQuery en la librería de la API. - 2. En el menú desplegable, selecciona el proyecto que contiene la cuenta de servicio. - 3. Haz clic en el botón ENABLE (Habilitar). +* **Bucket de almacenamiento de GCP**: Seleccione **Sí** para crear un bucket de almacenamiento, o seleccione **No** para usar un bucket existente. - **Nota:** La API de transferencia de datos de BigQuery debe estar habilitada en el proyecto de Google que contiene la cuenta de servicio. + **Nota**: Si utiliza un bucket existente, verifique que el bucket esté ubicado junto con el conjunto de datos de exportación de BigQuery. +* **Nombre del bucket**: El nombre de su nuevo bucket de almacenamiento de GCP o de uno existente. +* **Región**: La región de GCP de su bucket. Por ejemplo, `northamerica-northeast1`. +* **ID de cuenta de facturación**: El ID de la cuenta de facturación que reporta los costos de su exportación de uso. +* **Nombre e ID del proyecto de exportación**: El nombre y el ID de su proyecto de exportación. +* **Nombre e ID del conjunto de datos de exportación**: El nombre y el ID de su conjunto de datos de exportación. -#### Configurar el acceso a la exportación de proyectos -[Añade la cuenta de servicio como elemento principal en el recurso del proyecto de exportación de conjuntos de datos][7]: -1. Ve a la página de IAM en la consola de Google Cloud y selecciona el proyecto de exportación de conjuntos de datos. -2. Selecciona la cuenta de servicio como elemento principal. -3. Selecciona un rol con los siguientes permisos para otorgar desde la lista desplegable: +### Crear exportación de costos y habilitar APIs de Google Service {#create-cost-export-and-enable-google-service-apis} + +Complete los pasos de [Habilitar exportación de costos de uso detallado](#enable-detailed-usage-cost-export) y [Habilitar APIs de Google Service](#enable-google-service-apis) anteriores, luego regrese a CCM. + +### Copie el HCL de Terraform generado y aplique los cambios {#copy-generated-terraform-hcl-and-apply-changes} + +En la interfaz de usuario de configuración de Terraform de CCM, siga las instrucciones en el paso **Aplicar configuración de Terraform**. Resuelva cualquier problema que aparezca al ejecutar `terraform plan` o `terraform apply` antes de regresar a CCM para confirmar la creación de la cuenta. + +{{% /tab %}} + +{{% tab "Manual" %}} + +{{< img src="cloud_cost/setup/gcp_manual_setup.png" alt="Formulario de configuración de Cloud Cost Management en modo manual" style="width:100%" >}} + +#### Configure el acceso al proyecto de exportación {#configure-export-project-access} +[Agregue la cuenta de servicio como un principal en el recurso del proyecto del conjunto de datos de exportación][7]: +1. Navegue a la página de IAM en la consola de Google Cloud y seleccione el proyecto del conjunto de datos de exportación. +2. Seleccione la cuenta de servicio como un principal. +3. Seleccione un rol con los siguientes permisos para otorgar desde la lista desplegable: * `bigquery.jobs.create` * `bigquery.transfers.get` * `bigquery.transfers.update` - **Nota:** Puede ser un rol personalizado o puedes utilizar el rol de Google Cloud `roles/bigquery.admin` existente. + **Nota:** Esto puede ser un rol personalizado, o puede usar el rol existente de Google Cloud `roles/bigquery.admin`. -#### Configurar el acceso a la exportación de conjuntos de datos de BigQuery -[Añade la cuenta de servicio como elemento principal en el recurso de exportación de conjuntos de datos de BigQuery][8]: -1. En el panel del Explorador de la página de BigQuery, expande tu proyecto y selecciona la exportación de conjuntos de datos de BigQuery. -2. Haz clic en **Sharing > Permissions** (Compartir > Permisos) y luego en **add principal** (añadir elemento principal). -3. En el campo de nuevos elementos principales, introduce la cuenta de servicio. -4. Utilizando la lista de selección de un rol, asigna un rol con los siguientes permisos: +#### Configure el acceso al conjunto de datos de exportación de BigQuery {#configure-export-bigquery-dataset-access} +[Agregue la cuenta de servicio como un principal en el recurso del conjunto de datos de exportación de BigQuery][8]: +1. En el panel del explorador en la página de BigQuery, expanda su proyecto y seleccione el conjunto de datos de exportación de BigQuery. +2. Haz clic en {{< ui >}}Sharing{{< /ui >}} > {{< ui >}}Permissions{{< /ui >}} y luego en {{< ui >}}add principal{{< /ui >}}. +3. En el nuevo campo de principales, ingrese la cuenta de servicio. +4. Usando la lista de selección de roles, asigne un rol con los siguientes permisos: * `bigquery.datasets.get` * `bigquery.tables.create` * `bigquery.tables.delete` @@ -91,111 +126,122 @@ Los siguientes permisos permiten a Datadog acceder a la exportación de la factu * `bigquery.tables.update` * `bigquery.tables.updateData` - **Nota:** Puede ser un rol personalizado o puedes utilizar el rol de Google Cloud `roles/bigquery.dataEditor` existente. - -### Crear o seleccionar un bucket de Google Cloud Storage -Utiliza un bucket de Google Cloud Storage existente o crea uno nuevo. -Los datos se extraen periódicamente de tu conjunto de datos detallados de uso de BigQuery y se transfieren al bucket seleccionado, que tiene el prefijo `datadog_cloud_cost_detailed_usage_export`. + **Nota:** Esto puede ser un rol personalizado, o puede usar el rol existente de Google Cloud `roles/bigquery.dataEditor`. -**Nota:** El bucket [debe estar ubicado junto][9] al conjunto de datos de exportación de BigQuery. - -#### Configurar el acceso al bucket -[Añade la cuenta de servicio como elemento principal en el recurso del bucket de GCS][6]: -1. Accede a la página de buckets de Cloud Storage en la consola de Google Cloud y selecciona tu bucket. -2. Selecciona la pestaña de permisos y haz clic en el botón **grant access** (conceder acceso). -3. En el campo de nuevos elementos principales, introduce la cuenta de servicio. -4. Asigna un rol con los siguientes permisos: +#### Configure el acceso al bucket {#configure-bucket-access} +[Agregue la cuenta de servicio como un principal en el recurso del bucket de GCS][6]: +1. Navegue a la página de Buckets de Cloud Storage en la consola de Google Cloud y seleccione su bucket. +2. Seleccione la pestaña de permisos y haga clic en el botón {{< ui >}}grant access{{< /ui >}}. +3. En el nuevo campo de principales, ingrese la cuenta de servicio. +4. Asigne un rol con los siguientes permisos: * `storage.buckets.get` * `storage.objects.create` * `storage.objects.delete` * `storage.objects.get` * `storage.objects.list` - **Nota:** Puede ser un rol personalizado o puedes utilizar los roles de Google Cloud `roles/storage.legacyObjectReader` y `roles/storage.legacyBucketWriter` existentes. + **Nota:** Esto puede ser un rol personalizado, o puedes usar los roles existentes de Google Cloud `roles/storage.legacyObjectReader` y `roles/storage.legacyBucketWriter`. + +[6]: https://cloud.google.com/storage/docs/access-control/using-iam-permissions#bucket-add +[7]: https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role +[8]: https://cloud.google.com/bigquery/docs/control-access-to-resources-iam#grant_access_to_a_dataset + +{{% /tab %}} + +{{< /tabs >}} + +### Cree o seleccione un bucket de Google Cloud Storage {#create-or-select-a-google-cloud-storage-bucket} +Cloud Cost Management utiliza un bucket de GCP para recibir datos extraídos de su conjunto de datos de costos de uso detallado de BigQuery (prefijado con `datadog_cloud_cost_detailed_usage_export`). Puedes crear un nuevo bucket o usar uno existente. -### (Opcional) Configura la autorización de servicios entre proyectos: -Si tu cuenta de servicio integrada ya existe en un proyecto de Google Cloud Platform diferente al de exportación del conjunto de datos de la facturación, debes [conceder una autorización de cuenta de servicio entre proyectos][10]: +**Nota:** El bucket [debe estar co-localizado][9] con el conjunto de datos de exportación de BigQuery. -1. Activa la creación del agente de servicio siguiendo la [documentación oficial][11] y utilizando los siguientes valores: - * ENDPOINT: `bigquerydatatransfer.googleapis.com` - * TIPO_DE_RECURSO: `project` - * ID_DE_RECURSO: exportar el proyecto de conjunto de datos

    +### (Opcional) Configure la autorización de servicio entre proyectos: {#optional-configure-cross-project-service-authorization} +Si su Cuenta de Servicio integrada existe en un proyecto diferente de Google Cloud Platform que su conjunto de datos de exportación de facturación, necesita [otorgar autorización de cuenta de servicio entre proyectos][10]: - Esto crea un nuevo agente de servicio similar a `service-@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com`. +1. Active la creación del agente de servicio siguiendo la [documentación oficial][11] utilizando los siguientes valores: + * PUNTO DE CONEXIÓN: `bigquerydatatransfer.googleapis.com` + * TIPO DE RECURSO: `project` + * ID DE RECURSO: proyecto del conjunto de datos de exportación

    + Esto crea un nuevo agente de servicio que se parece a `service-@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com`. -2. Añade el rol de cuenta de servicio de transferencia de datos de BigQuery creado por el activador como elemento principal en tu cuenta de servicio. -3. Asígnale el rol `roles/iam.serviceAccountTokenCreator`. -### Configurar Cloud Cost -Sigue los pasos indicados en [Configuración][3]. +2. Agregue el rol de Cuenta de Servicio del Servicio de Transferencia de Datos de BigQuery creado por el disparador como un principal en su cuenta de servicio +3. Asigne el rol `roles/iam.serviceAccountTokenCreator`. -**Nota**: Los datos pueden tardar entre 48 y 72 horas en estabilizarse en Datadog. +### Configure el Cloud Cost {#configure-cloud-cost} +Siga los pasos indicados en [Setup & Configuration][3]. -## Tipos de costes -Puedes visualizar tus datos ingeridos utilizando los siguientes tipos de costes: +**Nota**: Los datos pueden tardar de 48 a 72 horas después de la configuración para estabilizarse en Datadog. -| Tipo de coste | Descripción | +### Obteniendo datos históricos {#getting-historical-data} + +Los conjuntos de datos de exportación de facturación de BigQuery recién creados solo contienen los 2 meses más recientes de datos. Puede tardar uno o dos días en que estos datos se rellenen en BigQuery. Datadog ingiere automáticamente hasta 15 meses de datos históricos de costos disponibles una vez que aparecen en la tabla de BigQuery. + +Google Cloud no proporciona un proceso para rellenar datos históricos adicionales, más allá de los 2 meses que se incluyen automáticamente cuando se crea por primera vez la exportación de BigQuery. + +## Tipos de costo {#cost-types} +Puede visualizar sus datos ingeridos utilizando los siguientes tipos de costo: + +| Tipo de Costo | Descripción | |-------------------------------------------------| ----------------------------------| -| `gcp.cost.amortized` | Coste total de los recursos asignados en el momento del uso en un intervalo. Los costes incluyen los créditos de promoción, así como los créditos de descuento por compromiso de uso. | -| `gcp.cost.amortized.shared.resources.allocated` | Todos tus costes de Google Cloud Platform amortizados, con desgloses e información adicional de las cargas de trabajo de contenedor. Requiere la [asignación de costes de contenedor][14].| -| `gcp.cost.ondemand` | Coste total público y a la carta de los recursos antes de aplicar los descuentos públicos y privados en un intervalo. | +| `gcp.cost.amortized` | Costo total de los recursos asignados en el momento de uso durante un intervalo. Los costos incluyen créditos de promoción así como créditos de descuento por uso comprometido. | +| `gcp.cost.amortized.shared.resources.allocated` | Todos sus costos amortizados de Google Cloud Platform, con desgloses e información adicional para cargas de trabajo en contenedores. Requiere [Asignación de Costos de Contenedores][14].| +| `gcp.cost.ondemand` | Costo total público y bajo demanda de los recursos antes de que se apliquen los descuentos públicos y privados durante un intervalo. | -### Etiquetas predefinidas -Datadog añade etiquetas a los datos de costes ingeridos para ayudarte a desglosar y asignar mejor tus costes. Estas etiquetas provienen de tu [informe de costes detallados de uso][16] y facilitan la detección y la comprensión de los datos de costes. +### Etiquetas predeterminadas {#out-of-the-box-tags} -Las siguientes etiquetas predefinidas están disponibles para filtrar y agrupar datos: +Datadog enriquece automáticamente sus datos de costos de Google Cloud con etiquetas de múltiples fuentes. Para una visión general completa de cómo se aplican las etiquetas a los datos de costos, consulte [Etiquetas][17]. + +Las siguientes etiquetas predeterminadas se derivan de su [informe detallado de costos de uso][16] y facilitan el descubrimiento y la comprensión de los datos de costos: | Nombre de la etiqueta | Descripción de la etiqueta | | ---------------------------- | ----------------- | -| `google_product` | Servicio Google que se está facturando.| -| `google_cost_type` | Tipo de cargo cubierto por esta partida (por ejemplo, regular, impuesto, ajuste o error de redondeo).| -| `google_usage_type` | Detalles de uso de la partida (por ejemplo, Almacenamiento estándar US).| -| `google_location` | Localización asociada a la partida a nivel de varias regiones, país, región o zona.| -| `google_region` | Región asociada a la partida.| -| `google_zone` | Zona de disponibilidad asociada a la partida.| -| `google_pricing_usage_unit` | Unidad de precio utilizada para calcular el coste de uso (por ejemplo, gibibyte, tebibyte o año).| -| `google_is_unused_reservation`| Si el uso se reservó pero no se utilizó.| -| `service_description` | Servicio Google Cloud (como Compute Engine o BigQuery). | -| `project_id` | ID del proyecto de Google Cloud que generó los datos de facturación de Cloud. | -| `project_name` | Nombre del proyecto de Google Cloud que generó los datos de facturación de Cloud. | -| `cost_type` | Tipo de coste que representa esta partida: `regular`, `tax`, `adjustment` o `rounding error`. | -| `sku_description` | Descripción del tipo de recurso utilizado, que describe los detalles de uso del recurso. | -| `resource_name` | Nombre que los clientes añaden a los recursos. Puede que no aparezca en todos los recursos. | -| `global_resource_name` | Identificador de recurso único global generado por Google Cloud. | - -#### Correlación entre costes y observabilidad - -Visualizar los costes en el contexto de los datos de observabilidad es importante para comprender cómo afectan los cambios de infraestructura a los costes, identificar por qué cambian los costes y optimizar la infraestructura, tanto en los costes como en el rendimiento. Datadog actualiza el recurso identificando etiquetas en los datos de costes de los principales productos Google para simplificar la correlación entre la observabilidad y las métricas de costes. - -Por ejemplo, para ver el coste y el uso de cada base de datos Cloud SQL, puedes crear una tabla con `gcp.cost.amortized`, `gcp.cloudsql.database.cpu.utilization` y `gcp.cloudsql.database.memory.utilization` (o cualquier otra métrica de Cloud SQL) y agrupar por `database_id`. O, para ver el uso y los costes de Cloud Function uno al lado del otro, puedes hacer un gráfico con `gcp.cloudfunctions.function.execution_count` y `gcp.cost.amortized` agrupados por `function_name`. - -Están disponibles las siguientes etiquetas predefinidas: -| Producto Google | Etiqueta(s) | +| `google_product` | El servicio de Google que se está facturando.| +| `google_cost_type` | El tipo de cargo cubierto por este ítem (por ejemplo, regular, impuesto, ajuste o error de redondeo).| +| `google_usage_type` | Los detalles de uso del ítem (por ejemplo, Almacenamiento Estándar EE. UU.).| +| `google_location` | La ubicación asociada con el ítem a nivel de multi-región, país, región o zona.| +| `google_region` | La región asociada con el ítem.| +| `google_zone` | La zona de disponibilidad asociada con el ítem.| +| `google_pricing_usage_unit` | La unidad de precio utilizada para calcular el costo de uso (por ejemplo, gibibyte, tebibyte o año).| +| `google_is_unused_reservation`| Si el uso fue reservado pero no utilizado.| +| `service_description` | El servicio de Google Cloud (como Compute Engine o BigQuery). | +| `project_id` | El ID del proyecto de Google Cloud que generó los datos de facturación en la nube. | +| `project_name` | El nombre del proyecto de Google Cloud que generó los datos de facturación en la nube. | +| `cost_type` | El tipo de costo que representa este ítem: `regular`, `tax`, `adjustment` o `rounding error`. | +| `sku_description` | Una descripción del tipo de recurso utilizado, que detalla el uso del recurso. | +| `resource_name` | Un nombre que los clientes añaden a los recursos. Esto puede no estar en todos los recursos. | +| `global_resource_name` | Un identificador de recurso globalmente único generado por Google Cloud. | + +#### Correlación de costos y observabilidad {#cost-and-observability-correlation} + +Ver los costos en el contexto de los datos de observabilidad es importante para entender cómo los cambios en la infraestructura impactan los costos, identificar por qué cambian los costos y optimizar la infraestructura tanto para costos como para rendimiento. Datadog actualiza las etiquetas identificativas de recursos en los datos de costos para los principales productos de Google para simplificar la correlación entre métricas de observabilidad y costos. + +Por ejemplo, para ver el costo y la utilización de cada base de datos de Cloud SQL, puede crear una tabla con `gcp.cost.amortized`, `gcp.cloudsql.database.cpu.utilization` y `gcp.cloudsql.database.memory.utilization` (o cualquier otra métrica de Cloud SQL) y agrupar por `database_id`. O, para ver el uso y los costos de Cloud Functions lado a lado, puede graficar `gcp.cloudfunctions.function.execution_count` y `gcp.cost.amortized` agrupados por `function_name`. + +Las siguientes etiquetas listas para usar están disponibles: +| Producto de Google | Etiqueta(s) | | -------------------| ----------------------------- | -| Compute Engine | `instance_id`, `instance-type` | -| Cloud Functions | `function_name` | -| Cloud Run | `job_name`, `service_name` | -| Cloud SQL | `database_id` | -| Cloud Spanner | `instance_id` | -| App Engine | `module_id` | -| BigQuery | `project_id`, `dataset_id` | -| Kubernetes Engine | `cluster_name` | - -### Asignación de contenedor -Las métricas de **Asignación de contenedor** contienen todos los mismos costes que las métricas de Google Cloud Platform, pero con desgloses e información adicional de las cargas de trabajo de contenedor. Para obtener más información, consulta [Asignación de costes de contenedor][14]. - -## Referencias adicionales +| Compute Engine | `instance_id`, `instance-type`| +| Cloud Functions | `function_name` | +| Cloud Run | `job_name`, `service_name` | +| Cloud SQL | `database_id` | +| Cloud Spanner | `instance_id` | +| App Engine | `module_id` | +| BigQuery | `project_id`, `dataset_id` | +| Kubernetes Engine | `cluster_name` | + +### Asignación de contenedores {#container-allocation} +**Las métricas de asignación de contenedores** contienen todos los mismos costos que las métricas de Google Cloud Platform, pero con desgloses e información adicional para cargas de trabajo de contenedores. Consulte [Asignación de Costos de Contenedores][14] para más detalles. + +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://console.cloud.google.com/billing/export/ [2]: https://cloud.google.com/billing/docs/how-to/export-data-bigquery-setup -[3]: https://app.datadoghq.com/cost/setup?cloud=gcp +[3]: https://app.datadoghq.com/cost/setup [4]: https://app.datadoghq.com/integrations/google-cloud-platform [5]: https://cloud.google.com/bigquery/docs/enable-transfer-service -[6]: https://cloud.google.com/storage/docs/access-control/using-iam-permissions#bucket-add -[7]: https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role -[8]: https://cloud.google.com/bigquery/docs/control-access-to-resources-iam#grant_access_to_a_dataset [9]: https://cloud.google.com/bigquery/docs/exporting-data#data-locations [10]: https://cloud.google.com/bigquery/docs/enable-transfer-service#cross-project_service_account_authorization [11]: https://cloud.google.com/iam/docs/create-service-agents#create @@ -204,3 +250,6 @@ Las métricas de **Asignación de contenedor** contienen todos los mismos costes [14]: /es/cloud_cost_management/container_cost_allocation/ [15]: /es/cloud_cost_management/setup/google_cloud/#create-or-select-a-google-cloud-storage-bucket [16]: https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables/detailed-usage +[17]: /es/cloud_cost_management/tags +[18]: /es/api/latest/cloud-cost-management/#create-google-cloud-usage-cost-config +[19]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/gcp_uc_config \ No newline at end of file diff --git a/content/es/logs/explorer/facets.md b/content/es/logs/explorer/facets.md index 5ad3b8e61d2..4b6eed7d61f 100644 --- a/content/es/logs/explorer/facets.md +++ b/content/es/logs/explorer/facets.md @@ -1,236 +1,238 @@ --- algolia: tags: - - Facetas de logs + - log facets aliases: - /es/logs/facets -description: Facetas de logs y panel de facetas +description: Facetas de log y Panel de Facetas further_reading: - link: logs/explorer/analytics tag: Documentación - text: Realizar análisis de los logs + text: Realizar Análisis de Registros - link: logs/explorer/patterns tag: Documentación - text: Detecta patrones en tus logs + text: Detectar patrones dentro de sus registros - link: /logs/log_configuration/processors tag: Documentación - text: Aprende a procesar tus logs + text: Aprender a procesar sus registros - link: logs/explorer/saved_views tag: Documentación - text: Configura tu Log Explorer automáticamente -title: Facetas de logs + text: Configurar automáticamente su Explorador de Registros +- link: https://learn.datadoghq.com/courses/log-explorer + tag: Centro de Aprendizaje + text: Comenzando con el Explorador de Registros +title: Facetas de log --- +{{< img src="logs/explorer/facet/facets_in_explorer.mp4" alt="Facetas en el Explorador de Facetas de log" video=true style="width:100%;">}} -{{< img src="logs/explorer/facet/facets_in_explorer.mp4" alt="Facetas en la faceta de explorador" video=true style="width:100%;">}} +## Descripción General {#overview} -## Información general +Las facetas son etiquetas y atributos definidos por el usuario de sus registros indexados. Están destinadas para el análisis de datos cualitativos o cuantitativos. Como tal, puede usarlas en su Explorador de Registros para: -Las facetas son etiquetas (tags) y atributos definidos por el usuario a partir de tus logs indexados. Están pensadas para el análisis cualitativo o cuantitativo de datos. Como tales, pueden utilizarse en el Log Explorer para: - -- [Buscar en tus logs][1] -- [Definir patrones de logs][2] +- [Buscar en sus registros][1] +- [Definir patrones de log][2] - [Realizar análisis de logs][3] -Las facetas también te permiten manipular tus logs en tus [monitores de logs][4], widgets de logs en [dashboards][5] y [notebooks][6]. +Las facetas también le permiten manipular sus logs en sus [monitores de logs][4], widgets de logs en [tableros][5] y [notebooks][6]. -**Nota**: No necesitas facetas para admitir el [procesamiento de logs][7], [buscar en Live Tail][8], [buscar en el Explorador de logs][9], [generar métricas][10] de logs, reenviar [archivos][11] o [rehidratarlos][12]. Tampoco necesitas facetas para enrutar logs a través de [pipelines][13] e [índices][14] con filtros, o excluir o muestrear logs de índices con [filtros de exclusión][15]. +**Nota**: No necesita facetas para soportar [procesamiento de logs][7], [búsqueda en tiempo real][8], [búsqueda en el explorador de logs][9], [generación de métricas][10] a partir de logs, [archivado][11] de reenvíos, o [rehidratación][12]. Tampoco necesita facetas para enrutar logs a través de [Pipelines][13] e [Índices][14] con filtros, o excluir o muestrear logs de índices con [filtros de exclusión][15]. -En todos estos contextos, las capacidades de autocompletar se basan en facetas existentes, pero cualquier entrada que coincida con los logs entrantes funcionaría. +En todos estos contextos, las capacidades de autocompletar dependen de las facetas existentes, pero cualquier entrada que coincida con los logs entrantes funcionaría. -### Facetas cualitativas +### Facetas cualitativas {#qualitative-facets} -#### Dimensiones +#### Dimensiones {#dimensions} -Utiliza facetas cualitativas cuando necesites hacer lo siguiente: +Utiliza facetas cualitativas cuando necesites: -- Para **obtener información relativa** de los valores. Por ejemplo, crea una faceta en `http.network.client.geoip.country.iso_code` para ver los principales países más afectados por el número de errores 5XX en tus logs de acceso web [NGINX][16], mejorados con Datadog [GeoIP Processor][17]. -- Para **contar valores únicos**. Por ejemplo, crea una faceta en `user.email` a partir de tus logs de [Kong][18] para saber cuántos usuarios se conectan cada día a tu sitio web. -- Para **filtrar** frecuentemente tus logs a través de valores particulares. Por ejemplo, crear una faceta en una [etiqueta][19] de `environment` para limitar la solución de problemas a entornos de desarrollo, preparación o producción. +- Para **obtener información relativa** sobre los valores. Por ejemplo, crea una faceta en `http.network.client.geoip.country.iso_code` para ver los principales países más afectados por el número de errores 5XX en tus registros de acceso web de [NGINX][16], enriquecidos con el [Procesador GeoIP][17] de Datadog. +- Para **contar valores únicos**. Por ejemplo, crea una faceta en `user.email` de tus registros de [Kong][18] para saber cuántos usuarios se conectan cada día a tu sitio web. +- Para **filtrar** frecuentemente tus registros contra valores particulares. Por ejemplo, crea una faceta en un `environment` [etiqueta][19] para limitar la solución de problemas a entornos de desarrollo, pruebas o producción. -**Nota**: Aunque no es necesario crear facetas para filtrar valores de atributos, definirlas de acuerdo a atributos que utilices a menudo durante las investigaciones puede ayudarte a reducir el tiempo de resolución. +**Nota**: Aunque no es necesario crear facetas para filtrar por valores de atributos, definirlas en atributos que usas con frecuencia durante las investigaciones puede ayudar a reducir tu tiempo de resolución. -#### Tipos +#### Tipos {#types} -Las facetas cualitativas pueden ser de tipo cadena o numérico (entero). Mientras que la asignación de un tipo de cadena a una dimensión funciona en todos los casos, el uso de tipos enteros en una dimensión permite el filtrado de rangos, además de todas las capacidades mencionadas anteriormente. Por ejemplo, `http.status_code:[200 TO 299]` es una consulta válida para una dimensión de tipo entero. Consulta [sintaxis de búsqueda][1] como referencia. +Las facetas cualitativas pueden tener un tipo de cadena o numérico (entero). Mientras que asignar el tipo de cadena a una dimensión funciona en todos los casos, usar tipos enteros en una dimensión permite filtrar por rangos además de todas las capacidades mencionadas anteriormente. Por ejemplo, `http.status_code:[200 TO 299]` es una consulta válida para usar en una dimensión de tipo entero. Consulta la [sintaxis de búsqueda][1] como referencia. -### Facetas cuantitativas -#### Medidas +### Facetas cuantitativas {#quantitative-facets} +#### Medidas {#measures} -Utiliza medidas cuando necesites hacer lo siguiente: +Utiliza medidas cuando necesites: -- Para **agregar valores** de varios logs. Por ejemplo, crea una medida sobre el tamaño de los cuadros que brinda la [caché de Varnish][20] de un servidor de mapas y realiza un seguimiento del **rendimiento medio** diario, o de los principales remitentes por **suma** del tamaño del cuadro solicitado. -- Para **filtrar por rangos** tus logs. Por ejemplo, crea una medida sobre el tiempo de ejecución de las tareas de [Ansible][21] y mira la lista de los servidores que tienen el mayor número de ejecuciones que tardan más de 10 segundos. -- Para **clasificar logs** con respecto a ese valor. Por ejemplo, crea una medida sobre la cantidad de pagos realizados con tu microservicio de [Python][22]. A continuación, puedes buscar todos los logs, empezando por el de mayor cantidad. +- Para **agregar valores** de múltiples registros. Por ejemplo, crea una medida sobre el tamaño de los mosaicos servidos por la [caché de Varnish][20] de un servidor de mapas y lleva un registro del **promedio** de rendimiento diario, o los referidores más importantes por **suma** del tamaño de mosaico solicitado. +- Para **filtrar por rango** tus registros. Por ejemplo, crea una medida sobre el tiempo de ejecución de las tareas de [Ansible][21], y observa la lista de servidores que tienen más ejecuciones que tardan más de 10 segundos. +- Para **ordenar registros** en función de ese valor. Por ejemplo, crea una medida sobre la cantidad de pagos realizados con tu microservicio de [Python][22]. Luego puedes buscar todos los registros, comenzando con el que tiene la mayor cantidad. -#### Tipos +#### Tipos {#types-1} -Las medidas vienen con un valor entero (largo) o doble, para capacidades equivalentes. +Las medidas vienen con un valor de entero (largo) o doble, para capacidades equivalentes. -#### Unidades +#### Unidades {#units} -Las medidas admiten unidades en **tiempo** o **tamaño** para facilitar la gestión de las órdenes de magnitud en tiempo de consulta y visualización. +Las medidas soportan unidades en **tiempo** o **tamaño** para un manejo más fácil de órdenes de magnitud en el tiempo de consulta y el tiempo de visualización. | tipo | unidad(es) | |-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BYTES | bit / byte / kibibyte / mebibyte / gibibyte / tebibyte / pebibyte / exbibyte | -| TIEMPO | nanosegundo / microsegundo / milisegundo / segundo / minuto / hora / día / semana | +| TIEMPO | nanosegundo / microsegundo / milisegundo / segundo / minuto / hora / día / semana | -La unidad es una propiedad de la propia medida, no del campo. Por ejemplo, piensa en una medida `duration` en nanosegundos: tienes logs de `service:A` donde `duration:1000` representa 1000 milisegundos, y otros logs de `service:B` donde `duration:500` representa 500 microsegundos: +La unidad es una propiedad de la medida misma, no del campo. Por ejemplo, considera una `duration` medida en nanosegundos: tienes registros de `service:A` donde `duration:1000` representa 1000 milisegundos, y otros registros de `service:B` donde `duration:500` representa 500 microsegundos: -1. Escala la duración en nanosegundos para todos los logs que entran con el [procesador aritmético][23]. Utiliza un multiplicador `*1000000` en logs de `service:A` y un multiplicador `*1000` en logs de `service:B`. -2. Utiliza `duration:>20ms` (consulta [sintaxis de búsqueda][1] como referencia) para consultar logs de forma coherente desde ambos servicios a la vez y consultar un resultado agregado de `1 min` como máximo. +1. Escala la duración en nanosegundos para todos los registros que fluyen con el [procesador aritmético][23]. Usa un `*1000000` multiplicador en los registros de `service:A`, y un `*1000` multiplicador en los registros de `service:B`. +2. Usa `duration:>20ms` (ver [sintaxis de búsqueda][1] para referencia) para consultar de manera consistente los registros de ambos servicios a la vez, y ver un resultado agregado de max `1 min`. -## Panel de facetas +## Panel de facetas {#facet-panel} -La barra de búsqueda proporciona el conjunto más completo de interacciones para filtrar y agrupar tus datos. Sin embargo, en la mayoría de los casos, es probable que el panel de facetas sea una forma más directa de navegar por los datos. Abre una faceta para ver un resumen de tu contenido en el contexto de la consulta actual. +La barra de búsqueda proporciona el conjunto más completo de interacciones para filtrar y agrupar tus datos. Sin embargo, en la mayoría de los casos, el panel de facetas es probablemente una forma más sencilla de navegar por sus datos. Abra una faceta para ver un resumen de su contenido en el contexto de la consulta actual. -Las **facetas (cualitativas)** vienen con una lista de valores principales únicos y un recuento de logs que coinciden con cada uno de ellos: +**Las facetas (cualitativas)** vienen con una lista principal de valores únicos y un conteo de registros que coinciden con cada uno de ellos: -{{< img src="logs/explorer/facet/dimension_facet.png" alt="Faceta de dimensión" style="width:30%;">}} +{{< img src="logs/explorer/facet/dimension_facet.png" alt="Faceta de Dimensión" style="width:30%;">}} -Limita la consulta de búsqueda haciendo clic en cualquiera de los valores. Al hacer clic en un valor, se alterna entre buscar este valor específico y todos los valores. Al hacer clic en las casillas de verificación, se añade o elimina este valor específico de la lista de todos los valores. Además, puedes buscar en su contenido: +Delimite la consulta de búsqueda haciendo clic en cualquiera de los valores. Hacer clic en un valor alterna la búsqueda en este valor único y en todos los valores. Hacer clic en las casillas de verificación agrega o quita este valor específico de la lista de todos los valores; también puede buscar en su contenido: -{{< img src="logs/explorer/facet/dimension_facet_wildcard.png" alt="Autocompletar faceta" style="width:30%;">}} +{{< img src="logs/explorer/facet/dimension_facet_wildcard.png" alt="Autocompletar de Facetas" style="width:30%;">}} -**Las medidas** vienen con un control deslizante que indica los valores mínimo y máximo. Utiliza el control deslizante o introduce valores numéricos para reducir la consulta de búsqueda a diferentes límites. +**Las Medidas** vienen con un control deslizante que indica valores mínimos y máximos. Utilice el control deslizante o ingrese valores numéricos para delimitar la consulta de búsqueda a diferentes límites. -{{< img src="logs/explorer/facet/measure_facet.png" alt="Faceta de medidas" style="width:30%;">}} +{{< img src="logs/explorer/facet/measure_facet.png" alt="Faceta de Medidas" style="width:30%;">}} -### Ocultar facetas +### Ocultar facetas {#hide-facets} -Tu organización dispone de toda una colección de facetas para abordar su amplio conjunto de casos de uso en todos los diferentes equipos que utilizan logs. Sin embargo, lo más probable es que solo un subconjunto de estas facetas sea valioso para ti en un contexto específico de solución de problemas. Oculta las facetas que no necesites de forma rutinaria y conserva solo las facetas más relevantes para tus sesiones para solucionar problemas. -1. En el [Explorador de logs][30], busca la faceta que quieres ocultar. -1. Haz clic en el icono de engranaje situado junto a la faceta. -1. Selecciona **Ocultar faceta**. +Su organización tiene una colección completa de facetas para abordar su conjunto integral de casos de uso en todos los diferentes equipos que utilizan registros. Sin embargo, es probable que solo un subconjunto de estas facetas sea valioso para usted en un contexto específico de resolución de problemas. Oculte las facetas que no necesita de manera rutinaria, para mantener solo las facetas más relevantes para sus sesiones de resolución de problemas. +1. En el [Explorador de Registros][30], encuentre la faceta que desea ocultar. +1. Haga clic en el ícono de engranaje junto a la faceta. +1. Seleccione {{< ui >}}Hide Facet{{< /ui >}}. -Las facetas ocultas siguen siendo visibles en la búsqueda de facetas (consulta la sección [Filtrar facetas](#filter-facets)) en caso de que lo necesites. Vuelve a mostrar las facetas ocultas desde ahí. +Las facetas ocultas aún son visibles en la búsqueda de facetas (vea la sección [Filtrar Faceta](#filter-facets)) en caso de que las necesite. Muestra las facetas ocultas desde allí. -Las facetas ocultas también se ocultan de la función autocompletar en la barra de búsqueda y de los desplegables (como medida, agrupar por) en los análisis para el Log Explorer. Sin embargo, las facetas ocultas siguen siendo válidas para las consultas de búsqueda (por ejemplo, si copias y pegas un enlace del Log Explorer). +Las facetas ocultas también están ocultas en la autocompletación de la barra de búsqueda y en los menús desplegables (como medida, agrupar) en análisis para el Explorador de Registros. Sin embargo, las facetas ocultas siguen siendo válidas para las consultas de búsqueda (en caso de que copies y pegues un enlace del explorador de registros, por ejemplo). -Las facetas ocultas no tienen ningún impacto aparte del Explorador de logs (por ejemplo, Live Tail, monitores o definiciones de widgets en dashboards). +Las facetas ocultas no tienen impacto aparte del explorador de registros (por ejemplo, cola en vivo, monitores o definiciones de widgets en los tableros). -#### Facetas ocultas y compañeros de equipo +#### Facetas ocultas y compañeros de equipo {#hidden-facets-and-teammates} -Ocultar facetas es específico de tu propio contexto de solución de problemas y no afecta a la vista de tus compañeros de equipo, a menos que actualices una [Vista guardada][24]. Las facetas ocultas forman parte del contexto guardado en una vista guardada. +Ocultar facetas es específico para tu propio contexto de solución de problemas y no afecta la vista de tus compañeros de equipo, a menos que actualices una [Vista Guardada][24]. Las facetas ocultas son parte del contexto guardado en una vista guardada. -### Facetas de grupo +### Agrupar facetas {#group-facets} -Las facetas se agrupan en temas significativos para facilitar la navegación en la lista de facetas. La asignación o reasignación de un grupo para una faceta solo afecta a la visualización en la lista de facetas y no tiene ningún impacto en las capacidades de búsqueda y análisis. +Las facetas se agrupan en temas significativos para facilitar la navegación en la lista de facetas. Asignar o reasignar un grupo para una faceta solo afecta la visualización en la lista de facetas y no tiene impacto en las capacidades de búsqueda y análisis. -{{< img src="logs/explorer/facet/group_facets.png" alt="Agrupar facetas" style="width:30%;">}} +{{< img src="logs/explorer/facet/group_facets.png" alt="Faceta de Grupo" style="width:30%;">}} Para agrupar facetas: 1. Haz clic en el engranaje de la faceta. -2. Selecciona **Edit facet** (Editar faceta). -3. Haz clic en la sección **Advanced options** (Opciones avanzadas) para ampliarla. -4. En el campo **Group** (Grupo), introduce el nombre del grupo en el que quieres que esté la faceta. -5. Haz clic en **Update** (Actualizar). +2. Selecciona {{< ui >}}Edit facet{{< /ui >}}. +3. Haz clic en la sección {{< ui >}}Advanced options{{< /ui >}} para expandirla. +4. En el campo {{< ui >}}Group{{< /ui >}}, ingrese el nombre del grupo en el que desea que esté la faceta. +5. Haga clic en {{< ui >}}Update{{< /ui >}}. -### Filtrar facetas +### Filtrar facetas {#filter-facets} -Utiliza el cuadro de búsqueda en las facetas para reducir toda la lista de facetas y navegar más rápidamente hasta aquella con la que necesitas interactuar. La faceta de búsqueda utiliza tanto el nombre visible de la faceta como el nombre del campo de la faceta para limitar los resultados. +Utilice el cuadro de búsqueda en las facetas para reducir toda la lista de facetas y navegar más rápidamente a la que necesite interactuar. La búsqueda de facetas utiliza tanto el nombre de visualización de la faceta como el nombre del campo de la faceta para limitar los resultados. -{{< img src="logs/explorer/facet/search_facet.png" alt="Buscar facetas" style="width:30%;">}} +{{< img src="logs/explorer/facet/search_facet.png" alt="Buscar Faceta" style="width:30%;">}} -### Facetas con alias +### Facetas aliasadas {#aliased-facets} -Algunas facetas pueden tener alias (consulta la sección [faceta con alias](#alias-facets)). Las facetas con alias siguen siendo válidas para explorar y analizar, pero tu organización las considera obsoletas: +Algunas facetas pueden haber sido aliasadas (vea la sección de [faceta aliasada](#alias-facets)). Las facetas aliasadas siguen siendo válidas para segmentar y analizar, pero son consideradas obsoletas por su organización: -{{< img src="logs/explorer/facet/aliased_facet.png" alt="Facetas con alias" style="width:30%;">}} +{{< img src="logs/explorer/facet/aliased_facet.png" alt="Faceta Aliasada" style="width:30%;">}} -Al solucionar problemas, es más probable que encuentres contenidos de otros equipos (junto con contenidos de tu equipo) en la faceta _standard_ (estándar) que en la faceta _aliased_ (con alias). Esto facilita la correlación de contenidos de diversos orígenes. +Al solucionar problemas, es más probable que encuentre contenido de otros equipos (junto con contenido de su equipo) en la faceta _estándar_ en lugar de la faceta _aliasada_. Esto hace que la correlación de contenido de diversos orígenes sea más sencilla. -Si ves una faceta con alias en tu lista de facetas, considera usar la faceta _standard_ (estándar) en su lugar, haciendo clic en el elemento del menú **switch to alias** (cambiar a alias). Esta acción oculta la faceta con alias y desoculta la faceta estándar. Si esto te obliga a actualizar una vista guardada, considera guardar la vista guardada para que el alias se aplique a todos los que utilicen esta vista guardada. +Si ve una faceta aliasada en su lista de facetas, considere usar la faceta _estándar_ en su lugar haciendo clic en el elemento de menú {{< ui >}}switch to alias{{< /ui >}}. Esta acción oculta la faceta aliasada y muestra la faceta estándar. Si hacerlo le obliga a actualizar una vista guardada, considere guardar la vista guardada para que el aliasing se aplique a todos los que usen esta vista guardada. -{{< img src="logs/explorer/facet/switch_facet.png" alt="Cambiar faceta" style="width:30%;">}} +{{< img src="logs/explorer/facet/switch_facet.png" alt="Cambiar Faceta" style="width:30%;">}} -Es posible que desees conservar la versión _aliased_ (con alias) no estándar de la faceta si estás solucionando problemas en cuanto a contenido antiguo (antes de que tu organización haya configurado los alias para esta faceta). +Puede que desee mantener la versión no estándar _aliasada_ de la faceta si está solucionando problemas con contenido antiguo (antes de que su organización haya configurado el aliasing para esta faceta). -## Gestionar facetas +## Gestionar facetas {#manage-facets} -### Facetas predeterminadas +### Facetas listas para usar {#out-of-the-box-facets} -Las facetas más habituales, como `Host` y `Service`, vienen listas para usar, por lo que puedes empezar a solucionar problemas de inmediato una vez que tus logs fluyan hacia los índices de logs. +Las facetas más comunes como `Host` y `Service` vienen listas para usar, por lo que puede comenzar a solucionar problemas de inmediato una vez que sus registros fluyan hacia los índices de registro. -Las facetas de [Atributos reservados][25] y la mayoría de [Atributos estándar][26] están disponibles por defecto. +Las facetas en [Atributos Reservados][25] y la mayoría de los [Atributos Estándar][26] están disponibles por defecto. -### Faceta de índice +### Faceta de índice {#index-facet} -La faceta de índice es una faceta específica que solo aparece si tu organización tiene [múltiples índices][27] o si tienes [vistas históricas][28] activas. Utiliza esta faceta si deseas reducir tu consulta a un subconjunto de índices. +La faceta de índice es una faceta específica que aparece solo si su organización tiene [múltiples índices][27], y/o si tiene vistas [históricas activas][28]. Use esta faceta si desea limitar su consulta a un subconjunto de sus índices. -{{< img src="logs/explorer/facet/index_facet_.png" alt="Crear facetas" style="width:30%;">}} +{{< img src="logs/explorer/facet/index_facet_.png" alt="Crear Faceta" style="width:30%;">}} -### Crear facetas +### Crear facetas {#create-facets} -Como práctica recomendada, considera siempre utilizar una faceta existente en lugar de crear una nueva (consulta la sección [alias-facets](#alias-facets)). Utilizar una faceta única para obtener información de naturaleza similar fomenta la colaboración entre equipos. +Como buena práctica, siempre considere usar una faceta existente en lugar de crear una nueva (vea la sección de [facetas aliasadas](#alias-facets)). Usar una faceta única para información de naturaleza similar fomenta la colaboración entre equipos. -Para crear una faceta en una matriz de objetos JSON, primero usa un [analizador grok][29] para extraer el atributo y luego crea una faceta para ese atributo. +Para crear una faceta en un arreglo de objetos JSON, primero utilice un [analizador grok][29] para extraer el atributo y luego cree una faceta para ese atributo. -**Nota**: Una vez creada una faceta, su contenido se rellena **para todos los nuevos logs**. Para un uso óptimo de la solución Log Management, Datadog recomienda utilizar como máximo 1000 facetas. +**Nota**: Una vez que se crea una faceta, su contenido se llena **para todos los nuevos registros**. Para un uso óptimo de la solución de Gestión de Registros, Datadog recomienda usar como máximo 1000 facetas. -#### Panel lateral de logs +#### Panel lateral de registros {#log-side-panel} -La forma más sencilla de crear una faceta es añadirla desde el panel lateral de logs, donde la mayoría de los detalles de la faceta -como el nombre del campo o el tipo de datos subyacente- están precargados y solo es cuestión de volver a comprobarlos. En el [Log Explorer][1], accede a cualquier log de interés que contenga el campo para crear una faceta. Abre el panel lateral para este log, haz clic en el campo correspondiente (ya sea en etiquetas o en atributos) y crea una faceta desde ahí: +La forma más fácil de crear una faceta es agregarla desde el panel lateral de registros, donde la mayoría de los detalles de la faceta—como el nombre del campo o el tipo de datos subyacente—ya están prellenados y solo es cuestión de verificarlos. Navegue en el [Explorador de Registros][1] hacia el registro de interés que contenga el campo para crear una faceta. Abra el panel lateral para este registro, haga clic en el campo correspondiente (ya sea en etiquetas o en atributos) y cree una faceta desde allí: -- Si el campo contiene un valor de cadena, solo está disponible la creación de facetas. -- Si el campo tiene un valor numérico, se pueden crear tanto facetas como medidas. +- Si el campo tiene un valor de cadena, solo está disponible la creación de facetas. +- Si el campo tiene un valor numérico, están disponibles tanto la creación de facetas como la de medidas. -{{< img src="logs/explorer/facet/create_facet_from_attribute.png" alt="Crear una faceta desde un atributo" style="width:30%;">}} +{{< img src="logs/explorer/facet/create_facet_from_attribute.png" alt="Crear faceta desde atributo" style="width:30%;">}} -**Nota**: No se recomienda usar más de 1000 facetas. +**Nota**: Como mejor práctica, se recomienda no usar más de 1000 facetas. -#### Lista de facetas +#### Lista de facetas {#facet-list} -En caso de que no sea posible encontrar una faceta que coincida con el log, crea una nueva faceta directamente desde el panel de facetas utilizando el botón _add facet_ (Añadir faceta). +En caso de que no sea posible encontrar un registro coincidente, cree una nueva faceta directamente desde el panel de facetas usando el botón _agregar faceta_. -Define el nombre del campo subyacente (clave) de esta faceta: +Defina el nombre del campo subyacente (clave) para esta faceta: -- Utiliza el nombre de la clave de etiqueta para etiquetas. -- Utiliza la ruta de atributo para los atributos, con el prefijo `@`. +- Utilice el nombre de clave de etiqueta para etiquetas. +- Utilice la ruta del atributo para atributos, con `@` prefijo. -El autocompletado basado en el contenido en logs de las vistas actuales te ayuda a definir el nombre de campo adecuado. Pero puedes utilizar prácticamente cualquier valor aquí, específicamente en el caso de que aún no tengas logs coincidentes que fluyan en tus índices. +La autocompletación basada en el contenido de los registros de las vistas actuales le ayuda a definir el nombre de campo adecuado. Pero puede usar prácticamente cualquier valor aquí, específicamente en el caso de que aún no tenga registros coincidentes fluyendo en sus índices. -{{< img src="logs/explorer/facet/create_facet_from_scratch.png" alt="Crear faceta desde cero" style="width:30%;">}} +{{< img src="logs/explorer/facet/create_facet_from_scratch.png" alt="Cree una faceta desde cero" style="width:30%;">}} -### Facetas de alias +### Facetas aliasadas {#alias-facets} -La agrupación de contenidos similares en una única faceta permite el análisis entre equipos y facilita el trabajo entre equipos para solucionar problemas; consulta [Convención de nomenclatura][26] como referencia. +Reunir contenido similar bajo una faceta única permite análisis entre equipos y facilita la solución de problemas entre equipos; consulte [Convención de Nombres][26] para referencia. -Utiliza los alias como opción para coordinar sin problemas a los equipos que dependen de convenciones de nomenclatura incoherentes. Con los alias, puedes hacer que todos ellos utilicen la faceta estándar que surge de tu organización. +Utilice el alias como una opción para realinear suavemente a los equipos que dependen de convenciones de nombres inconsistentes. Con el alias, puede hacer que todos usen la faceta estándar que surge para su organización. -#### Utilizar alias de faceta a faceta +#### Alias de faceta a faceta {#aliasing-facet-to-facet} -Esta es la mejor opción si varios equipos de tu organización ya han creado múltiples facetas para contenidos similares. +Esta es la mejor opción si múltiples equipos en su organización ya han creado múltiples facetas para contenido similar. -Al colocar un alias en una faceta _aliased_ (con alias) hacia una faceta _standard_ (estándar): +Al aliasar una faceta _aliasada_ hacia una faceta _estándar_: -- Los usuarios pueden utilizar facetas aliased (con alias) y facetas standard (estándar) para solucionar problemas. Es posible que prefieran las facetas estándar, que facilitan la correlación de contenidos procedentes de fuentes diversas y posiblemente heterogéneas. -- Se anima a los usuarios a utilizar la faceta estándar en lugar de la faceta con alias. +- Los usuarios pueden usar tanto facetas aliasadas como estándar para la solución de problemas. Puede preferir la estándar, que facilita la correlación de contenido que fluye de fuentes diversas y posiblemente heterogéneas. +- Se sugiere a los usuarios que usen la faceta estándar en lugar de la faceta aliasada. -Para convertir una faceta en estándar, selecciona la acción `Alias to...` en el menú de facetas. Elige la faceta de destino entre todas las facetas [estándar][14] de tu organización. +Para asignar un alias a una faceta estándar, seleccione el elemento de acción {{< ui >}}Alias to...{{< /ui >}} en el menú de facetas. Elija las facetas de destino de entre todas las [estándar][14] que existen para su organización. -{{< img src="logs/explorer/facet/alias_modal.png" alt="modo de alias" style="width:30%;">}} +{{< img src="logs/explorer/facet/alias_modal.png" alt="modal de alias" style="width:30%;">}} -#### Utilizar alias de atributo a faceta +#### Asignar alias de atributo a faceta {#aliasing-attribute-to-facet} -Esta es la mejor opción si incorporas logs desde nuevas fuentes. En lugar de crear una faceta para algún campo en esos logs, y justo después dejar obsoleta esta faceta al colocar un alias en una faceta estándar, utiliza un alias en el campo directamente a una faceta existente: +Esta es la mejor opción si incorpora registros que fluyen de nuevas fuentes. En lugar de crear una faceta para algún campo en esos registros, y justo después de deprecar esta faceta asignándole un alias a una faceta estándar, asigne el alias del campo directamente a una faceta existente: -{{< img src="logs/explorer/facet/alias_facet_from_attribute.png" alt="Utiliza un alias en una faceta desde un atributo" style="width:30%;">}} +{{< img src="logs/explorer/facet/alias_facet_from_attribute.png" alt="Asigne alias de faceta desde atributo" style="width:30%;">}} -## Borrar una faceta +## Eliminar una faceta {#delete-a-facet} -
    La eliminación de una faceta que está siendo utilizada en índices, monitores, dashboards, consultas de restricción, o por otros equipos puede causar que las configuraciones se rompan.
    +
    Eliminar una faceta que se está utilizando en índices, monitores, tableros, consultas de restricción o por otros equipos puede causar que las configuraciones se rompan.
    -Para eliminar una faceta, sigue estos pasos: +Para eliminar una faceta, siga estos pasos: -- Haz clic en **Showing xx of xx** (Mostrar xx de xx) en la parte superior del panel de facetas. -- Buscar tu faceta. -- Haz clic en el icono del lápiz de tu faceta. -- Haz clic en **Delete** (Borrar). +- Haga clic en {{< ui >}}Showing xx of xx{{< /ui >}} en la parte superior del panel de facetas. +- Busque su faceta. +- Haga clic en el ícono de lápiz para su faceta. +- Haga clic en {{< ui >}}Delete{{< /ui >}}. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -250,13 +252,13 @@ Para eliminar una faceta, sigue estos pasos: [14]: /es/logs/indexes/#indexes-filters [15]: /es/logs/indexes/#exclusion-filters [16]: /es/integrations/nginx/ -[17]: /es/logs/log_configuration/processors/#geoip-parser +[17]: /es/logs/log_configuration/processors/geoip_parser/ [18]: /es/integrations/kong/ [19]: /es/getting_started/tagging/assigning_tags/ [20]: /es/integrations/varnish/ [21]: /es/integrations/ansible/ [22]: /es/integrations/python/ -[23]: /es/logs/log_configuration/processors/#arithmetic-processor +[23]: /es/logs/log_configuration/processors/arithmetic_processor/ [24]: /es/logs/explorer/saved_views/ [25]: /es/logs/log_configuration/attributes_naming_convention/#reserved-attributes [26]: /es/logs/log_configuration/attributes_naming_convention diff --git a/content/es/logs/guide/azure-automated-log-forwarding.md b/content/es/logs/guide/azure-automated-log-forwarding.md index 37186bc8e96..ce97b9f3159 100644 --- a/content/es/logs/guide/azure-automated-log-forwarding.md +++ b/content/es/logs/guide/azure-automated-log-forwarding.md @@ -5,140 +5,196 @@ aliases: further_reading: - link: https://www.datadoghq.com/blog/monitoring-azure-platform-logs/ tag: Blog - text: Prácticas recomendadas para monitorizar logs de la plataforma Microsoft Azure -title: Configuración del reenvío automatizado de logs de Azure + text: Mejores prácticas para monitorear los registros de la plataforma Microsoft + Azure +title: Configuración de reenvío automático de registros de Azure --- +## Descripción general {#overview} -## Información general +Utiliza esta guía para configurar y gestionar el reenvío automático de registros de Azure. Puedes configurar el reenvío de registros directamente en Datadog o implementarlo con una plantilla de Azure Resource Manager (ARM). -Utiliza esta guía para automatizar la configuración de reenvío de logs de Azure con una plantilla de Azure Resource Manager (ARM). +La plantilla de ARM implementa recursos de una serie de servicios de Azure (cuentas de almacenamiento y aplicaciones de función) en tus suscripciones, que recopilan y reenvían registros a Datadog. Estos servicios se escalan automáticamente hacia arriba o hacia abajo para coincidir con el volumen de registros. El escalado es gestionado por un plano de control, que es un conjunto de aplicaciones de función implementadas en una suscripción y región de su elección. Las cuentas de almacenamiento y las aplicaciones de función se implementan en cada una de las suscripciones que reenvían registros a Datadog. -La plantilla ARM despliega recursos de una serie de servicios Azure (cuentas de almacenamiento y aplicaciones de función) en tus suscripciones, que recopilan y reenvían logs a Datadog. Los escalados de estos servicios aumentan o disminuyen automáticamente para adaptarse al volumen de logs. El escalado se gestiona mediante un plano de control, que es un conjunto de aplicaciones de función desplegadas en una suscripción y región de tu elección. Las cuentas de almacenamiento y las aplicaciones de función se despliegan en cada una de las suscripciones que reenvían logs a Datadog. +**Todos los sitios**: El reenvío automático de registros está disponible para usar en todos los [sitios de Datadog][4]. -**Todos los sitios**: El reenvío automatizado de logs está disponible en todos los [sitios Datadog][4]. +**Entornos de Azure compatibles**: El reenvío automático de registros solo es compatible con la nube comercial (pública) de Azure. Azure Government y Azure China no son compatibles. Si utiliza sitios gubernamentales de Datadog, solo puede usar esta función con cargas de trabajo en la nube comercial de Azure. -## Cómo elegir entre la configuración automática y la manual +## Cómo elegir entre la configuración automática y manual {#how-to-choose-between-automated-and-manual-setup} -Elige el método de configuración manual si lo deseas: - - aplica etiquetas personalizadas a tus recursos +Elija el método de configuración manual si desea: + - aplicar etiquetas personalizadas a sus recursos -Utiliza el método de configuración automática si lo deseas: - - automatiza el despliegue a través del portal de Azure - - gestiona tu infraestructura mediante plantillas declarativas - - control centralizado de accesos, etiquetas y facturación - - redistribuye tus recursos en el orden correcto y de forma coherente - - ahorra costes utilizando una cuenta de almacenamiento en lugar de un centro de eventos +Utilice el método de configuración automática si desea: + - automatizar la implementación a través del portal de Azure + - gestionar su infraestructura a través de plantillas declarativas + - controlar centralmente el acceso, las etiquetas y la facturación + - redistribuir sus recursos en el orden correcto y de manera consistente + - ahorrar costos utilizando una cuenta de almacenamiento en lugar de un hub de eventos -## Configuración +## Configurar {#setup} -Comienza por abrir la plantilla Azure Log Forwarding ARM correspondiente a tu entorno de Azure, o haz clic en **+ Add Log Collection** (+ Añadir recopilación de logs) en el [cuadro de integración de Azure][14]. +### Configurar el reenvío de registros {#configure-log-forwarding} - - [Azure Public][1] - - [Azure Government][6] - - [Azure China][7] +Utilice el flujo de **Configurar el reenvío de registros** para configurar nuevos o gestionar Forwarders existentes directamente en Datadog. Puede utilizar este flujo para implementar el reenvío automático de registros desde cero o actualizar una configuración existente, como agregar o eliminar suscripciones o modificar filtros de registros. -Las secciones siguientes ofrecen instrucciones para cumplimentar cada página de la plantilla. +1. In Datadog, navegue a [{{< ui >}}Integrations > Azure{{< /ui >}}][16]. +1. Haga clic en {{< ui >}}Configure Log Forwarding{{< /ui >}}. +1. Elija implementar una nueva configuración o actualizar una existente. +1. Copie el comando proporcionado y péguelo en su Azure Cloud Shell. +1. Seleccione las suscripciones de las que desea reenviar registros. +1. Opcionalmente, agregue o elimine filtros de registros. +1. Haga clic en {{< ui >}}Confirm{{< /ui >}}. -### Conceptos básicos +### Plantilla ARM {#arm-template} -1. En **Detalles del proyecto**, selecciona el grupo de gestión. Esto es necesario para que la plantilla ARM conceda permisos a las suscripciones que seleccionas para el reenvío automatizado de logs. -2. En **Detalles de la instancia**, selecciona valores para: - - **Región**. Aquí es donde se despliega el plano de control. - - **Suscripciones para el reenvío de logs**. Son las suscripciones que deben configurarse para el reenvío de logs. - - **Suscripción del plano de control**. Es la suscripción en la que se despliega el plano de control. - - **Nombre del grupo de recursos**. Es el grupo de recursos que utilizará el plano de control. Es recomendado elegir un nuevo nombre de grupo de recursos no utilizado para simplificar la gestión de servicios del plano de control. +Alternativamente, puede implementar el reenvío automático de registros con una [plantilla ARM pública de Azure][1]. Las secciones a continuación proporcionan instrucciones para completar cada página de la plantilla. -{{< img src="logs/guide/azure-automated-log-forwarding/deployment_basics.png" alt="Página Elementos básicos de la plantilla ARM para el reenvío automatizado de logs de Azure" popup="true" style="width:100%">}} +#### Conceptos básicos {#basics} -3. Haz clic en **Siguiente**. +1. Bajo {{< ui >}}Project details{{< /ui >}}, seleccione el grupo de administración. Esto es necesario para que la plantilla ARM otorgue permisos a las suscripciones que seleccione para el reenvío automático de registros. +2. Bajo {{< ui >}}Instance details{{< /ui >}}, seleccione valores para: + - {{< ui >}}Region{{< /ui >}}. Aquí es donde se despliega el plano de control. + - {{< ui >}}Subscriptions to Forward Logs{{< /ui >}}. Estas son las suscripciones que se configurarán para el reenvío de registros. + - {{< ui >}}Control Plane Subscription{{< /ui >}}. Esta es la suscripción a la que se despliega el plano de control. + - {{< ui >}}Resource Group Name{{< /ui >}}. Este es el grupo de recursos que utilizará el plano de control. Se recomienda elegir un nombre de grupo de recursos nuevo y no utilizado para simplificar la gestión de los servicios del plano de control. -### Configuración de Datadog +{{< img src="logs/guide/azure-automated-log-forwarding/deployment_basics.png" alt="La página de conceptos básicos de la plantilla ARM para el reenvío automatizado de registros de Azure" popup="true" style="width:100%">}} -1. Introduce el valor de tu [clave de API Datadog][2]. -2. Selecciona tu [sitio Datadog][4]. +3. Haga clic en {{< ui >}}Next{{< /ui >}}. -{{< img src="logs/guide/azure-automated-log-forwarding/deployment_datadog_configuration_2025-02-18.png" alt="Página Configuración de Datadog de la plantilla ARM para el reenvío automatizado de logs de Azure" popup="true" style="width:100%">}} +#### Configuración de Datadog {#datadog-configuration} -3. Haz clic en **Siguiente**. +1. Ingrese su valor de [clave de API de Datadog][2]. +2. Seleccione su [sitio de Datadog][4]. -### Implementación +{{< img src="logs/guide/azure-automated-log-forwarding/deployment_datadog_configuration_2025-02-18.png" alt="La página de configuración de Datadog de la plantilla ARM para el reenvío automatizado de registros de Azure" popup="true" style="width:100%">}} -1. Haz clic en la casilla para confirmar que recibiste las advertencias del despliegue. -2. Haz clic en **Review + create** (Revisar + crear). +3. Haga clic en {{< ui >}}Next{{< /ui >}}. -### Revisar + crear +#### Despliegue {#deployment} -1. Revisa los detalles del despliegue finalizado. -2. Haz clic en **Create** (Crear). +1. Marque la casilla para reconocer las advertencias de despliegue. +2. Haga clic en {{< ui >}}Review + create{{< /ui >}}. -## Arquitectura +#### Revisar + crear {#review-create} -### Servicios utilizados +1. Revise los detalles de implementación finalizados. +2. Haga clic en {{< ui >}}Create{{< /ui >}}. -- Las aplicaciones [Azure Function][15] se utilizan para detectar recursos en tus suscripciones de Azure, escalar reenviadores de logs y configurar ajustes de diagnóstico en los recursos detectados. -- Las [Azure Container Apps][8] se utilizan para recopilar logs de recursos generados por los parámetros de diagnóstico, realizar un seguimiento de los logs que ya se procesaron y enviarlos a Datadog. -- Las [cuentas de Azure Storage][9] se utilizan para almacenar logs generados por tus recursos, así como una pequeña caché de metadatos como los ID de suscripciones, los ID de recursos y las regiones. +## Filtrado de etiquetas de recursos {#resource-tag-filtering} -### Arquitectura de alto nivel +Puede usar filtros de etiquetas para controlar qué recursos de Azure tienen sus registros reenviados a Datadog. Para la sintaxis de filtros de etiquetas, soporte de comodines y ejemplos, consulte [Filtrado de etiquetas de recursos][21] en la guía de inicio de Azure. -{{Architecture diagram showing three main components of Azure automated log forwarding: Control Plane and Log Forwarder (deployed by Datadog to customer environments) connecting to Azure Resources}} +## Espacios de trabajo de Log Analytics {#log-analytics-workspaces} -La plantilla de despliegue configura un [plano de control](#control-plane) y [reenviadores de logs](#log-forwarders) en las suscripciones seleccionadas. +Puede reenviar registros desde los Espacios de trabajo de Log Analytics de Azure (LAWs) a Datadog a través del reenvío automático de registros. Anteriormente, Datadog solo admitía registros de [configuración de diagnóstico][13] de LAWs. Con [reglas de exportación de datos][17], también puede reenviar registros desde las Tablas de Registros de LAW a Datadog. -#### Plano de control +### Restricciones {#restrictions} -El plano de control es un conjunto de aplicaciones Azure Function y una cuenta de almacenamiento para caché. Un plano de control se despliega en la suscripción elegida y realiza las siguientes tareas: -- Detección de recursos en las suscripciones elegidas que pueden generar logs a través de los parámetros de diagnóstico. -- Configuración automática de los parámetros de diagnóstico en los recursos detectados para enviar logs a una cuenta de almacenamiento que los reenviadores de logs están rastreando. -- Escalado de los reenviadores de logs en las regiones donde se encuentran tus recursos, lo que les permite adaptarse dinámicamente al volumen de logs. +- Solo puede configurar el reenvío para recursos de LAW dentro de la misma región que el reenvío de registros. +- Puede tener un máximo de 10 reglas de exportación de datos en un LAW. Si el LAW no tiene capacidad restante para una Regla de Exportación de Datos, elimine una regla existente para hacer espacio. +- No todas las tablas de registros pueden ser exportadas. Consulte la lista de Microsoft de [tablas no admitidas][18]. -#### Reenviadores de logs +### Reenvíe registros desde un Espacio de trabajo de Log Analytics {#forward-logs-from-a-log-analytics-workspace} -Los reenviadores de logs consisten en un trabajo de Azure Container Apps y una cuenta de almacenamiento para logs. El plano de control los despliega en cada suscripción que selecciones para el reenvío de logs. El número de reenviadores de logs desplegados por suscripción varía en función del volumen de logs generado por tus recursos. Los reenviadores de logs realizan las siguientes tareas: -- Almacenan temporalmente logs generados a partir de los parámetros de diagnóstico de tus recursos en una cuenta de almacenamiento. -- Procesa los logs almacenados y los reenvía a Datadog. +1. Si aún no ha creado un Forwarder de registros automático, siga las instrucciones de [Configuración](#setup). Si ya tiene un Forwarder de registros, asegúrese de que esté actualizado a la última versión. +2. En el [Portal de Azure][19], navegue hasta el Espacio de trabajo de Log Analytics deseado. +3. Bajo {{< ui >}}Settings{{< /ui >}}, haga clic en {{< ui >}}Data export{{< /ui >}}. +4. Haga clic en {{< ui >}}New export rule{{< /ui >}}. +5. Asigne un nombre a la regla, verifique {{< ui >}}Enable upon creation{{< /ui >}} y haga clic en {{< ui >}}Next{{< /ui >}}. +6. Seleccione las tablas para exportar. Puede modificar esta selección más tarde editando la regla de exportación de datos. Haga clic en {{< ui >}}Next{{< /ui >}}. +7. Para {{< ui >}}Destination type{{< /ui >}}, seleccione {{< ui >}}Storage Account{{< /ui >}}. Seleccione la suscripción que contiene su Forwarder de registros y elija una cuenta de almacenamiento para el Forwarder de registros. Estas cuentas típicamente tienen el prefijo `ddlogstorage`. Haga clic en {{< ui >}}Next{{< /ui >}}. +8. Revise la regla y haga clic en {{< ui >}}Create{{< /ui >}}. Los registros del LAW comienzan a aparecer en Datadog en unos minutos. -En Azure, los parámetros de diagnóstico de un recurso solo pueden apuntar a cuentas de almacenamiento dentro de la misma región. Por lo tanto, los reenviadores se activan en cada región en la que existen recursos con parámetros de diagnóstico. +### Solución de problemas {#troubleshooting} -Consulta la página [Parámetros de diagnóstico en Azure Monitor][13] de Azure para obtener más información. +#### Los registros no están apareciendo en Datadog {#logs-are-not-appearing-in-datadog} -### Arquitectura detallada +Si ha creado una regla de exportación de datos pero no ve registros en Datadog: -{{Workflow diagram showing Azure automated log forwarding: the Control Plane discovers resources, scales log forwarders across regions, configures diagnostic settings to send logs to storage accounts, and then Container Apps check for and forward new logs to Datadog Log Management.}} +1. Verifique que la regla de exportación de datos esté habilitada. +1. Verifique que la cuenta de almacenamiento de destino sea una creada por el Forwarder de registros automatizado (el nombre típicamente comienza con `ddlogstorage`). +1. En la cuenta de almacenamiento, inspeccione los contenedores. Los contenedores con el prefijo `am-` indican exportaciones de LAW. Si solo ve contenedores con el prefijo `insights-`, la regla de exportación de datos puede estar configurada incorrectamente. +1. Verifique que el LAW haya recopilado nuevos registros en las últimas dos horas. -### Seguridad y permisos +Consulte la [FAQ de solución de problemas de exportación de datos de Microsoft][20] para obtener información adicional. -La plantilla de ARM concede al plano de control solo los permisos necesarios para gestionar los reenviadores y colocar parámetros de diagnóstico en tus recursos. Para esto, se crean grupos de recursos y se conceden permisos durante el despliegue de la plantilla de ARM. Después, puedes añadir permisos para más suscripciones volviendo a desplegar la plantilla de ARM. +#### Seleccionando qué registros se exportan {#selecting-which-logs-are-exported} -#### Permisos utilizados +La regla de exportación de datos le permite especificar qué tablas de registros de su espacio de trabajo de Log Analytics se exportan. Edite la regla de exportación de datos para agregar o eliminar tablas. -- Rol de [Colaborador de monitorización][10] a nivel de **suscripción** para las suscripciones seleccionadas. - - Esto es necesario para detectar recursos con parámetros de diagnóstico disponibles y habilitar la salida de los logs al almacenamiento. +#### Latencia esperada {#expected-latency} -- Rol de [Colaborador][11] a nivel de **grupo de recursos**, para los grupos de recursos de reenvío de logs de las suscripciones seleccionadas. - - Esto es necesario para gestionar (crear y eliminar) cuentas de almacenamiento de reenviadores y trabajos de Container Apps. +Los registros de LAW generalmente aparecen en Datadog dentro de dos a cinco minutos, pero pueden tardar hasta 20 minutos en aparecer por primera vez. Los registros de LAW pueden tener propiedades diferentes a los registros que no son de LAW. -- Rol de [Colaborador de sitio web][12] a nivel de **grupo de recursos del plano de control**, para actualizar las aplicaciones de función del plano de control. +## Arquitectura {#architecture} -No se exporta ninguna información sobre tus recursos. Datadog solo solicita la información necesaria para habilitar la salida de logs, y el único resultado de esta arquitectura son los logs enviados a Datadog. +### Servicios utilizados {#services-used} -**Nota**: Opcionalmente, puedes habilitar el plano de control para que envíe sus propias métricas de estado, logs y eventos a Datadog con fines de depuración. Para ello, establece la variable de entorno `DD_TELEMETRY=true` en cualquier Function App o Container App del plano de control. +- [Azure Function][15] apps se utilizan para descubrir recursos en sus suscripciones de Azure, escalar los Forwarders y configurar ajustes de diagnóstico en los recursos detectados. +- Las [Azure Container Apps][8] se utilizan para recopilar registros de recursos generados por ajustes de diagnóstico, rastrear qué registros ya han sido procesados y enviarlos a Datadog. +- Las [Azure Storage Accounts][9] se utilizan para almacenar registros generados por sus recursos, así como un pequeño caché de metadatos como IDs de suscripción, IDs de recursos y regiones. + +### Arquitectura de alto nivel {#high-level-architecture} + +{{Diagrama de arquitectura que muestra tres componentes principales del reenvío automático de registros de Azure: plano de control y Forwarder de registros (desplegado por Datadog en entornos de clientes) conectándose a recursos de Azure.}} + +La plantilla de implementación configura un [plano de control](#control-plane) y [reenviadores de registros](#log-forwarders) en sus suscripciones seleccionadas. + +#### Plano de control {#control-plane} + +El plano de control es un conjunto de aplicaciones de Azure Function y una cuenta de almacenamiento para almacenamiento en caché. Un plano de control se despliega en su suscripción seleccionada y realiza las siguientes tareas: +- Descubrimiento de recursos en sus suscripciones seleccionadas que pueden generar registros mediante ajustes de diagnóstico. +- Configuración automática de los ajustes de diagnóstico en los recursos descubiertos para enviar registros a una cuenta de almacenamiento que los reenviadores de registros están rastreando. +- Escalado de los reenviadores de registros en las regiones donde se encuentran sus recursos, permitiéndoles adaptarse dinámicamente al volumen de registros. + +#### Reenviadores de registros {#log-forwarders} + +Los reenviadores de registros consisten en un trabajo de Azure Container Apps y una cuenta de almacenamiento para registros. Son desplegados por el plano de control en cada suscripción que seleccione para el reenviador de registros. El número de reenviadores de registros desplegados por suscripción escala según el volumen de registros generados por sus recursos. Los reenviadores de registros realizan las siguientes tareas: +- Almacenar temporalmente los registros generados por los ajustes de diagnóstico de sus recursos en una cuenta de almacenamiento. +- Procesar los registros almacenados y reenviarlos a Datadog. + +En Azure, los ajustes de diagnóstico de un recurso solo pueden dirigirse a cuentas de almacenamiento dentro de la misma región. Por lo tanto, los reenviadores se inician en cada región donde existen recursos con ajustes de diagnóstico. + +Consulte la página de Azure [Ajustes de diagnóstico en Azure Monitor][13] para más información. + +### Arquitectura detallada {#detailed-architecture} + +{{Diagrama de flujo que muestra el reenvío automatizado de registros en Azure: el plano de control descubre recursos, escala los reenviadores de registros a través de regiones, configura los ajustes de diagnóstico para enviar registros a cuentas de almacenamiento, y luego Container Apps verifican y reenvían nuevos registros a Datadog Log Management.}} + +### Seguridad y permisos {#security-and-permissions} + +La plantilla ARM otorga al plano de control solo los permisos necesarios para gestionar los reenviadores y establecer los ajustes de diagnóstico en sus recursos. Para lograr esto, se crean grupos de recursos y se otorgan permisos durante el despliegue de la plantilla ARM. Después de esto, puede agregar permisos para más suscripciones volviendo a desplegar la plantilla ARM. + +#### Permisos utilizados {#permissions-used} + +- [Monitoring Contributor][10] rol a nivel de **suscripción** para las suscripciones seleccionadas. + - Esto es necesario para descubrir recursos con configuraciones de diagnóstico disponibles y habilitar la salida de registros a almacenamiento. + +- [Contributor][11] rol a nivel del **grupo de recursos** para los grupos de recursos de reenviadores de registros en las suscripciones seleccionadas. + - Esto es necesario para gestionar (crear y eliminar) las cuentas de almacenamiento para los reenviadores y los Container Apps jobs. + +- [Website Contributor][12] rol a nivel del **grupo de recursos del plano de control** para actualizar las Function Apps del plano de control. + +No se exporta información sobre sus recursos. Datadog solo solicita la información necesaria para habilitar la salida de registros, y la única salida de esta arquitectura son los registros enviados a Datadog. + +**Nota**: Opcionalmente, puede habilitar el plano de control para enviar sus propias métricas de salud, registros y eventos a Datadog con fines de depuración. Para hacer esto, establezca la variable de entorno `DD_TELEMETRY=true` en cualquier Function App o Container App en el plano de control. {{% azure-log-archiving %}} -## Desinstalar +## Desinstalar {#uninstall} -Comienza por abrir un [Azure Cloud Shell][5] y asegúrate de que se ejecuta en Azure CLI/Bash, no en PowerShell. +Comience abriendo un [Azure Cloud Shell][5], y asegúrese de que esté ejecutándose en Azure CLI/Bash, no en PowerShell. -Descarga y ejecuta el script de desinstalación: +Descargue y ejecute el script de desinstalación: {{< code-block lang="bash" >}} wget https://ddazurelfo.blob.core.windows.net/uninstall/uninstall.py python uninstall.py {{< /code-block >}} -El script detecta primero cualquier instancia que se esté ejecutando en cada suscripción y, a continuación, te pide que selecciones la(s) instancia(s) que deseas desinstalar. Confirma la eliminación de los recursos y espera a que se eliminen. +El script primero descubre cualquier instancia que se esté ejecutando en cada suscripción, luego le solicita que seleccione la(s) instancia(s) para desinstalar. Confirme las eliminaciones de recursos y espere a que los recursos sean eliminados. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -146,8 +202,6 @@ El script detecta primero cualquier instancia que se esté ejecutando en cada su [2]: https://app.datadoghq.com/organization-settings/api-keys [4]: /es/getting_started/site/ [5]: https://learn.microsoft.com/en-us/azure/cloud-shell/overview -[6]: https://portal.azure.us/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2FcreateUiDefinition.json -[7]: https://portal.azure.cn/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2FcreateUiDefinition.json [8]: https://azure.microsoft.com/products/container-apps [9]: https://learn.microsoft.com/azure/storage/common/storage-account-overview [10]: https://learn.microsoft.com/azure/azure-monitor/roles-permissions-security#monitoring-contributor @@ -155,4 +209,10 @@ El script detecta primero cualquier instancia que se esté ejecutando en cada su [12]: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/web-and-mobile#website-contributor [13]: https://learn.microsoft.com/azure/azure-monitor/essentials/diagnostic-settings [14]: https://app.datadoghq.com/integrations/azure/add?config_azure-new-onboarding=true -[15]: https://learn.microsoft.com/azure/azure-functions/ \ No newline at end of file +[15]: https://learn.microsoft.com/azure/azure-functions/ +[16]: https://app.datadoghq.com/integrations/azure +[17]: https://learn.microsoft.com/azure/azure-monitor/logs/logs-data-export?tabs=portal +[18]: https://learn.microsoft.com/azure/azure-monitor/logs/logs-data-export?tabs=portal#unsupported-tables +[19]: https://portal.azure.com +[20]: https://learn.microsoft.com/troubleshoot/azure/azure-monitor/log-analytics/workspaces/workspace-data-export-faq +[21]: /es/getting_started/integrations/azure/#resource-tag-filtering-for-logs \ No newline at end of file diff --git a/content/es/logs/log_configuration/archive_search.md b/content/es/logs/log_configuration/archive_search.md index 57b2e204b89..5859f6bcd10 100644 --- a/content/es/logs/log_configuration/archive_search.md +++ b/content/es/logs/log_configuration/archive_search.md @@ -1,138 +1,175 @@ --- -description: Busca y analiza al instante logs de archivos de larga duración sin tener - que volver a indexarlos. +description: Busque y analice instantáneamente los registros de archivos a largo plazo + sin necesidad de reindexar. further_reading: - link: /logs/explorer/ tag: Documentación - text: Explorar logs en Datadog + text: Explore los registros en Datadog - link: /logs/log_configuration/archives/ tag: Documentación - text: Configurar archivos de logs + text: Configure los Archivos de Registros - link: /logs/indexes/ tag: Documentación - text: Gestionar la retención y la indexación de logs -title: Archive Search + text: Administre la retención y el indexado de registros +title: Búsqueda de Archivos --- +## Resumen {#overview} -{{< callout url="https://www.datadoghq.com/product-preview/flex-frozen-archive-search/" btn_hidden="false" >}} -Archive Search está en vista previa. Solicita acceso para buscar logs archivados en tiempo real. Sin reindexación ni retrasos. Accede instantáneamente a años de datos cuando los necesites. -{{< /callout >}} +La Búsqueda de Archivos le permite consultar registros directamente desde archivos de almacenamiento de objetos a largo plazo, sin necesidad de rehidratarlos previamente. Utilice la Búsqueda de Archivos para **acceso inmediato a registros archivados**, para investigaciones, auditorías o resolución de problemas más allá del período de retención de la indexación. -## Información general +La Búsqueda de Archivos se diferencia de la Rehidratación al transmitir resultados en tiempo real a medida que se escanean los datos, en lugar de ejecutarse como un trabajo por lotes en segundo plano. Es más rentable, cobrando solo por el escaneo en sí, con los primeros 100,000 registros retenidos temporalmente sin costo, y más rápido. -Archive Search te permite consultar logs directamente desde archivos de almacenamiento de objetos a largo plazo, sin indexarlos previamente. Utiliza Archive Search para **acceder de forma inmediata a logs archivados**, para investigaciones, auditorías o resolución de problemas más allá de su periodo de retención de indexación. +Cuando inicie una búsqueda: -Archive Search se diferencia de Rehydration en que transmite los resultados en tiempo real a medida que se escanean los datos, en lugar de ejecutarse como un trabajo en lote en segundo plano. Es más rentable, ya que solo se cobra por el escaneo en sí y los primeros 100 000 logs se conservan temporalmente sin coste alguno, y más rápido. +* Los registros se transmiten a una página de resultados dedicada. +* Hasta **100,000 registros** se retienen por **24 horas**. +* Puede opcionalmente **Rehidratar resultados** antes o después de la búsqueda para mantenerlos más tiempo y hacerlos disponibles en todo Datadog. -Al iniciar una búsqueda: +Esta función admite registros archivados a través de: -* Los logs se envían a una página específica de resultados. -* Se retienen hasta **100 000 logs** durante **24 horas**. -* Opcionalmente, puedes **indexar los resultados** antes o después de la búsqueda para conservarlos durante más tiempo y que estén disponibles en todo Datadog. +- [Log Management archives][1] +- [Observability Pipelines archives][2] -Esta función es compatible con logs archivados a través de: +### Casos de uso típicos {#typical-use-cases} -- [archivos de Datadog Log Management][1] -- [archivos de Observability Pipelines][2] +La Búsqueda de Archivos es ideal cuando necesita consultar registros que están almacenados en un archivo externo. +Los casos de uso comunes incluyen: -### Casos de uso típicos +- **Investigaciones de incidentes:** Recuperar registros relacionados con un `transaction_id`, `user_id` o `session_id` que caen fuera de su retención de indexación.
    + *Ejemplo: Consultar registros de hace tres semanas utilizando un `user_id` específico, incluso si su retención indexada es de solo 15 días.* -Archive Search es ideal cuando se necesita consultar logs que están almacenados en un archivo externo. -Los casos de uso más comunes son: +- **Análisis de seguridad:** Examinar registros archivados para investigar intentos de inicio de sesión u otra actividad por IP o usuario.
    + *Ejemplo: Recuperar todos los intentos de inicio de sesión desde una dirección IP específica en los últimos 12 meses.* -- **Investigaciones de incidentes:** recupera logs vinculados a un `transaction_id`, `user_id` o `session_id` que quedan fuera de tu retención de indexación.
    - *Ejemplo: consulta logs de hace tres semanas utilizando un `user_id` específico, incluso si tu retención indexada es de solo 15 días.* +- **Cumplimiento y soporte de auditoría:** Acceder a registros archivados de clientes o facturación para auditorías sin reindexar permanentemente grandes volúmenes de datos.
    + *Ejemplo: Consultar registros relacionados con facturas (`customer_id:12345`, `service:billing`) de los últimos 18 meses para una auditoría fiscal.* -- **Análisis de seguridad:** examina logs archivados para investigar intentos de inicio de sesión u otra actividad por IP o usuario.
    - *Ejemplo: recupera todos los intentos de inicio de sesión desde una dirección IP específica en los últimos 12 meses. +## Requisitos previos {#prerequisites} -- **Apoyo al cumplimiento de normativas y auditorías:** accede a logs archivados de clientes o facturación para auditorías sin tener que reindexar permanentemente grandes volúmenes de datos.
    - *Ejemplo: consulta de logs relacionados con facturas (`customer_id:12345`, `service:billing`) de los últimos 18 meses para una auditoría fiscal.* +Antes de usar la Búsqueda de Archivos: -## Requisitos previos +1. Configurar un archivo externo (Amazon S3, Azure Storage o Google Cloud Storage). Ver [Log Archives][3]. +1. Asegúrese de que Datadog tenga permiso para leer del archivo, consulte [Permisos específicos de la nube](#cloud-specific-permissions). + * **Amazon S3:** Delegación de rol IAM + * **Azure Storage:** Azure AD con el rol *Storage Blob Data Contributor* + * **Google Cloud Storage:** Cuenta de servicio con rol de *Storage Object Viewer* -Antes de utilizar Archive Search: +### Permisos {#permissions} -1. Configura un archivo externo (Amazon S3, Azure Storage o Google Cloud Storage). Consulta [Log Archives][3]. -1. Asegúrate de que Datadog tiene permiso para leer del archivo, consulta [Permisos específicos de la nube](#cloud-specific-permissions). - * **Amazon S3:** delegación de roles de IAM - * **Azure Storage:** Azure AD con el rol *Storage Blob Data Contributor* - * **Google Cloud Storage:** cuenta de servicio con el rol *Storage Object Viewer* +Ejecutar una **Búsqueda de Archivos** requiere el **`logs_write_historical_views`** permiso. Es un **permiso** global, pero los usuarios solo pueden buscar registros de archivos para los cuales también tienen el permiso de **Logs Read Archive**. + +Los resultados de la Búsqueda de Archivos son visibles para todos los usuarios en su organización que tienen acceso a la función de Búsqueda de Archivos. Sin embargo, las **consultas de restricción**, como los filtros de seguridad de registros y las restricciones de datos configuradas en Datadog, aún se aplican en la página de resultados y se aplican a todos los usuarios. Esto significa que cada usuario solo puede ver los registros a los que está autorizado a acceder, según los permisos y filtros de toda la organización. + +Para obtener más información sobre los controles de acceso y la seguridad del registro, consulte [Cómo configurar RBAC para registros][6]. + +## Iniciando una búsqueda {#launching-a-search} + +1. Ir a [{{< ui >}}Logs{{< /ui >}} > {{< ui >}}Archive Search{{< /ui >}} > {{< ui >}}New Search{{< /ui >}}][4]. +2. Seleccione un archivo y un rango de tiempo. +3. Ingrese una consulta, como `user_id:abc123`. +4. (Opcional) Renombre la búsqueda. +5. En {{< ui >}}Mode{{< /ui >}}, elija el tipo de búsqueda que desea realizar. + - Elija {{< ui >}}Search{{< /ui >}} para recuperar resultados en tiempo real, con hasta 100,000 registros retenidos durante 24 horas. + - Elija {{< ui >}}Search & Rehydration{{< /ui >}} para rehidratar resultados para acceso completo a la plataforma y retención personalizada. +6. Haga clic en {{< ui >}}Search{{< /ui >}}. + +Los registros se transmiten a la página de resultados en tiempo real. Una barra de progreso muestra el estado del escaneo, y puede cancelar la búsqueda en cualquier momento. + +## Vista previa de la consulta {#query-preview} + +Cuando realiza una búsqueda, Datadog descarga una pequeña muestra (hasta 1,000 registros) del archivo y rango de tiempo seleccionados. +Utilice esta vista previa para verificar la sintaxis de la consulta, inspeccionar la estructura de los registros y ajustar los filtros. + +**Nota**: La muestra de vista previa puede no incluir registros que coincidan con su consulta. Es solo para validación y exploración. + +## Ver y retener resultados {#view-and-retain-results} + +Por defecto, solo se le cobra por el escaneo. Los primeros 100,000 registros se almacenan temporalmente (24 horas) sin costo y son accesibles directamente desde la página de resultados de la Búsqueda de Archivos, donde puede hacer clic en cualquier registro para ver sus detalles completos y contexto. Después de 24 horas, los resultados expiran automáticamente. + +Para retener más datos o acceder a registros en otros productos de Datadog, elija una de las siguientes opciones: + +- **Rehidratar antes del lanzamiento**: + Retenga más de 100,000 registros, establezca un período de retención personalizado (por ejemplo, 7, 15 o 30 días) y acceda a los resultados en toda la plataforma de inmediato. +- **Rehidratar después de la finalización**: + Durante la ventana de 24 horas, puede rehidratar los resultados para extender la retención y ponerlos a disposición en Log Explorer, Dashboards y Notebooks. + +## Analizar resultados {#analyze-results} + +Después de lanzar una búsqueda, los registros fluyen hacia la página {{< ui >}}Archive Search Results{{< /ui >}}. Desde esta página, puede utilizar filtros para reducir los resultados y abrir detalles específicos de los registros para investigar problemas. -### Permisos +### Limitaciones {#limitations} -Los resultados de Archive Search son visibles para todos los usuarios de tu organización que tengan acceso a la función Archive Search. Sin embargo, las **consultas de restricción**, como los filtros de seguridad de logs y las restricciones de datos configuradas en Datadog, se siguen aplicando en la página de resultados y se aplican a todos los usuarios. Esto significa que cada usuario solo puede ver logs que están autorizados a ver sobre la base de los permisos y filtros de toda la organización. +Mientras que la Búsqueda de Archivos proporciona acceso a registros archivados, tiene capacidades analíticas limitadas en comparación con los registros indexados: -Para obtener más información sobre los controles de acceso y la seguridad de logs, consulta [Cómo configurar RBAC para logs][6]. +- **Sin agregaciones ni análisis**: No puede ejecutar agregaciones, crear visualizaciones o realizar análisis avanzados directamente en los resultados de la Búsqueda de Archivos. +- **Página de resultados solamente**: Los resultados de la Búsqueda de Archivos solo están disponibles en la página de resultados dedicada y no se pueden consultar desde otras partes de la plataforma de Datadog (como Dashboards, Notebooks o Log Explorer). -## Iniciar una búsqueda +Para habilitar análisis completos y visibilidad en toda la plataforma, debe rehidratar los resultados de búsqueda (ya sea antes de lanzar la búsqueda o después de su finalización dentro de la ventana de 24 horas). Cuando se rehidratan, sus registros están disponibles en todos los productos de Datadog con capacidades completas de agregación, visualización y análisis. -1. Ve a [**Logs > Archive Search > New Search**][4] (Logs > Archive Search > Nueva búsqueda). -2. Selecciona un archivo y un intervalo de tiempo. -3. Introduce una consulta, como `user_id:abc123`. -4. (Opcional) Cambia el nombre de la búsqueda. -5. (Opcional) Habilita la indexación antes de iniciar la búsqueda. -6. Haz clic en **Search** (Buscar). +## Gestionar búsquedas {#manage-searches} -Los logs aparecen en tiempo real en la página de resultados. Una barra de progreso muestra el estado del escaneo, y puedes detener la búsqueda en cualquier momento. + -## Vista previa de la consulta +Desde el [{{< ui >}}Archive Search list view{{< /ui >}}][5], puede: -Al crear o configurar una búsqueda, Datadog descarga una pequeña muestra (hasta 1000 logs) del archivo y el intervalo de tiempo seleccionados. -Utiliza esta vista previa para verificar la sintaxis de la consulta, inspeccionar la estructura del log y ajustar los filtros. +- **Cancelar** una búsqueda en curso: preserva los registros ya recuperados. +- **Duplicar** una búsqueda: abre el formulario de creación de búsquedas de la Búsqueda de Archivos con los mismos parámetros para ejecuciones eficientes. -**Nota**: Es posible que la muestra de vista previa no incluya logs que coincidan con tu consulta. Es solo para validación y exploración. +## Rendimiento de búsqueda y optimización {#search-performance-and-optimization} -## Ver y conservar los resultados +La Búsqueda de Archivos escanea los archivos de registro archivados dentro del rango de tiempo seleccionado. **El volumen de escaneo** se refiere al tamaño total de los archivos leídos durante una consulta. Los grandes volúmenes de escaneo pueden aumentar tanto el tiempo de búsqueda como los costos de salida en la nube. -Por defecto, solo se cobra por el escaneo. Los primeros 100 000 logs se almacenan temporalmente (24 horas) sin coste alguno y son accesibles directamente en las páginas de resultados de Archive Search, donde puedes hacer clic en cualquier log para ver todos tus detalles y contexto. Transcurridas 24 horas, los resultados caducan automáticamente. +Para optimizar el rendimiento y reducir costos: +* **Reduce el rango de tiempo:** Limite su búsqueda a la ventana más pequeña posible. +* **Establecer límites de escaneo:** Los administradores con `Logs Write Archives` permisos pueden establecer un tamaño máximo de escaneo por archivo en el {{< ui >}}Settings{{< /ui >}}. +* **Usar atributos de partición (Vista previa):** La forma más efectiva de acelerar las búsquedas en datos de baja cardinalidad como `service`, `env` o `status`. Datadog omite particiones enteras que no coinciden con su consulta. +* **Usar atributos de búsqueda (Vista previa):** La forma más efectiva de acelerar las búsquedas en datos de alta cardinalidad como `trace_id` o `user_id`. +* **Usar compresión zstd:** Los archivos utilizan compresión zstd por defecto, lo que reduce el volumen de escaneo y los costos de salida en la nube en comparación con gzip. Si su archivo utiliza gzip, consulte [Log Archives][9] para cambiar a zstd. -Para conservar más datos o acceder a logs en otros productos de Datadog, elige una de las siguientes opciones: +**Nota**: Solo los registros archivados después de que configure los atributos de partición o de búsqueda se benefician de búsquedas aceleradas. Los registros archivados antes de esta configuración no se ven afectados. -- **Índice antes del lanzamiento**: - Conserva más de 100 000 logs, establece un periodo de retención personalizado (por ejemplo, 7, 15 o 30 días) y accede a los resultados en toda la plataforma de forma inmediata. -- **Índice tras la finalización**: - Durante el intervalo de 24 horas, puedes indexar los resultados para ampliar su retención y hacer que estén disponibles en el Log Explorer, dashboards y notebooks. -## Analizar los resultados +### Acelera las búsquedas con atributos de partición {#accelerate-searches-with-partition-attributes} -Tras iniciar una búsqueda, los logs aparecen en **Archive Search Results** (Resultados de Archive Search). Desde la página, puedes utilizar filtros para limitar los resultados y abrir detalles específicos de logs para investigar los problemas. +Puede configurar **atributos de partición** en sus archivos para agrupar registros por valores de campo de baja cardinalidad en el momento de la escritura. Utilice atributos como `service`, `source`, `env` o `status`. -### Limitaciones +Los registros que comparten los mismos valores de partición están co-localizados en el almacenamiento. Cuando busca, Datadog evalúa su consulta contra los metadatos de partición y omite las particiones que no coinciden, reduciendo el total de datos escaneados. -Aunque la búsqueda de archivos proporciona acceso a los logs archivados, sus capacidades analíticas son limitadas en comparación con los logs indexados: +Para configurarlo, consulte la documentación de [archivos de registro][8]. -- **Sin agregaciones ni análisis**: no se pueden ejecutar agregaciones, crear visualizaciones ni realizar análisis avanzados directamente en los resultados de Archive Search. -- **Solo resultados de la página**: los resultados de Archive Search solo están disponibles en los resultados específicos de la página y no pueden consultarse desde otras partes de la plataforma de Datadog (como dashboards, notebooks o el Log Explorer). +### Acelere las búsquedas con atributos de búsqueda {#accelerate-searches-with-lookup-attributes} -Para habilitar el análisis completo y la visibilidad en toda la plataforma, debes indexar los resultados de la búsqueda (ya sea antes de iniciar la búsqueda o después de completarla dentro del intervalo de 24 horas). Una vez indexados, los logs estarán disponibles en todos los productos de Datadog con todas las funciones de agregación, visualización y análisis. +Puede configurar **Atributos de Búsqueda** en sus archivos para omitir bloques de datos irrelevantes en su bucket de almacenamiento. Por ejemplo, si configura `trace_id` o `user_id`, reduce significativamente el volumen de datos escaneados y disminuye las tarifas de salida de su proveedor de nube. +Para configurarlo, consulte la documentación de [archivos de registro][7]. -## Gestionar las búsquedas +### Partición vs. atributos de búsqueda {#partition-vs-lookup-attributes} - +| | Partición | Búsqueda | +|---|---|---| +| Cardinalidad | Baja (decenas a cientos) | Alta (millones de valores) | +| Atributos típicos | `service`, `source`, `env`, `status` | `trace_id`, `container_id`, `user_id`, `transaction_id` | +| Cómo ayuda | Elimina particiones enteras del escaneo | Localiza entradas de registro individuales | +| Mejor utilizado para | Filtrado amplio por entorno/servicio | Investigaciones ad-hoc sobre identificadores específicos | -Desde la [**vista de lista de Archive Search**][5], puedes: +Para un rendimiento máximo en las búsquedas, combine ambos: los atributos de partición reducen el alcance de búsqueda a los segmentos de datos relevantes, mientras que los atributos de búsqueda le permiten encontrar registros específicos dentro de esos segmentos al instante. -- **Detener** una búsqueda en curso: conserva logs ya recuperados. -- **Duplicar** una búsqueda: abre el formulario de creación de la búsqueda de archivo con los mismos parámetros para una repetición eficaz. +### Límite predeterminado para la Rehidratación de Resultados {#default-limit-for-rehydration-of-results} -## Rendimiento de búsqueda y volumen de escaneo +Los administradores con el `Logs Write Archives` permiso pueden configurar controles predeterminados para asegurar un uso eficiente de {{< ui >}}Archive Search{{< /ui >}} entre equipos. Haga clic en {{< ui >}}Settings{{< /ui >}} para configurar: -Archive Search escanea los archivos de log archivados dentro del intervalo de tiempo seleccionado. El **volumen de escaneo** es el tamaño total de los archivos leídos durante la consulta. Los volúmenes de escaneo grandes pueden aumentar el tiempo y el coste de la búsqueda. +- {{< ui >}}Default Rehydration volume limit{{< /ui >}}: Defina el número predeterminado de registros (en millones) que pueden ser rehidratados por búsqueda de archivo en modo {{< ui >}}Search & Rehydration{{< /ui >}}. Si se alcanza el límite, la búsqueda de archivo se detiene automáticamente, pero los registros ya rehidratados permanecen accesibles. Los administradores también pueden permitir que este límite se anule durante la creación de la búsqueda en el archivo. -Para mejorar el rendimiento de las consultas y reducir el volumen de escaneo: -- Reduce el intervalo de tiempo y utiliza filtros selectivos. -- Los administradores con permiso **Logs Write Archives** pueden establecer límites máximos de log y duraciones de retención disponibles. +- {{< ui >}}Rehydration retention periods{{< /ui >}}: Elija qué períodos de retención están disponibles al rehidratar resultados. Solo las duraciones seleccionadas (por ejemplo, 3, 7, 15, 30, 45, 60, 90 o 180 días) aparecen en el menú desplegable al seleccionar cuánto tiempo deben permanecer los registros disponibles para búsqueda en Datadog. -## Permisos específicos de la nube +## Permisos específicos de la nube {#cloud-specific-permissions} -Datadog requiere el permiso de lectura de tus archivos para buscar contenido en ellos. Este permiso puede cambiarse en cualquier momento. +Datadog requiere el permiso para leer sus archivos para buscar contenido dentro de ellos. Este permiso se puede cambiar en cualquier momento. {{< tabs >}} {{% tab "Amazon S3" %}} -Para rehidratar eventos de log desde tus archivos, Datadog utiliza el rol de IAM en tu cuenta de AWS que configuraste para [tu integración de AWS][1]. Si aún no has creado ese rol, [sigue estos pasos para hacerlo][2]. Para permitir que ese rol rehidrate eventos de log desde tus archivos, añade la siguiente declaración de permiso a sus políticas de IAM. Asegúrate de editar los nombres de los buckets y, si lo deseas, especifica las rutas que contienen tus archivos de log. +Para rehidratar eventos de registro de sus archivos, Datadog utiliza el rol IAM en su cuenta de AWS que configuró para [su integración de AWS][1]. Si aún no ha creado ese rol, [siga estos pasos para hacerlo][2]. Para permitir que ese rol rehidrate eventos de registro de sus archivos, agregue la siguiente declaración de permiso a sus políticas IAM. Asegúrese de editar los nombres de los buckets y, si lo desea, especifique las rutas que contienen sus archivos de registro. ```json { @@ -160,9 +197,9 @@ Para rehidratar eventos de log desde tus archivos, Datadog utiliza el rol de IAM } ``` -### Añadir la delegación de roles a archivos de S3 +### Agregando delegación de roles a archivos S3 {#adding-role-delegation-to-s3-archives} -Datadog solo admite búsquedas en archivos que se hayan configurado para utilizar la delegación de roles para conceder acceso. Una vez que hayas modificado el rol de IAM de Datadog para incluir la política de IAM anterior, asegúrate de que cada archivo de tu [página de configuración de archivos][3] tenga la combinación correcta de cuenta + rol de AWS. +Datadog solo admite la búsqueda de archivos que han sido configurados para usar delegación de roles para otorgar acceso. Después de haber modificado su rol IAM de Datadog para incluir la política IAM anterior, asegúrese de que cada archivo en su [página de configuración de archivos][3] tenga la combinación correcta de cuenta de AWS + rol. [1]: https://app.datadoghq.com/account/settings#integrations/amazon-web-services [2]: /es/integrations/amazon-web-services/#aws-iam-permissions @@ -171,26 +208,29 @@ Datadog solo admite búsquedas en archivos que se hayan configurado para utiliza {{% tab "Azure Storage" %}} -Datadog utiliza un grupo de Azure AD con el rol Storage Blob Data Contributor asignado a la cuenta de almacenamiento de tus archivos para buscar eventos de log. Puedes otorgar este rol a tu cuenta de servicio de Datadog desde la página de Control de acceso (IAM) de tu cuenta de almacenamiento [al asignar el rol Storage Blob Data Contributor a tu aplicación de integración de Datadog][1]. +Datadog utiliza un grupo de Azure AD con el rol de Contribuyente de Datos de Blob de Almacenamiento limitado a la cuenta de almacenamiento de sus archivos para buscar eventos de registro. Puede otorgar este rol a su cuenta de servicio de Datadog desde la página de Control de Acceso (IAM) de su cuenta de almacenamiento al [asignar el rol de Contribuyente de Datos de Blob de Almacenamiento a su aplicación de integración de Datadog][1]. [1]: /es/logs/archives/?tab=azurestorage#create-and-configure-a-storage-bucket {{% /tab %}} {{% tab "Google Cloud Storage" %}} -Para buscar eventos de log desde tus archivos, Datadog utiliza una cuenta de servicio con el rol Storage Object Viewer. Puedes otorgar este rol a tu cuenta de servicio de Datadog desde la [página Google Cloud IAM Admin][1] al editar los permisos de la cuenta de servicio, añadir otro rol y, a continuación, seleccionar **Storage > Storage Object Viewer** (Almacenamiento > Storage Object Viewer**. +Para buscar eventos de registro en sus archivos, Datadog utiliza una cuenta de servicio con el rol de Visualizador de Objetos de Almacenamiento. Puede otorgar este rol a su cuenta de servicio de Datadog desde la [página de administración de IAM de Google Cloud][1] editando los permisos de la cuenta de servicio, agregando otro rol y luego seleccionando {{< ui >}}Storage{{< /ui >}} > {{< ui >}}Storage Object Viewer{{< /ui >}}. [1]: https://console.cloud.google.com/iam-admin/iam {{% /tab %}} {{< /tabs >}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://docs.datadoghq.com/es/logs/log_configuration/archives/?tab=awss3&site=us -[2]: https://docs.datadoghq.com/es/observability_pipelines/destinations/amazon_s3/?tab=docker -[3]: https://docs.datadoghq.com/es/logs/log_configuration/archives/?tab=awss3&site=us +[1]: /es/logs/log_configuration/archives/?tab=awss3 +[2]: /es/observability_pipelines/destinations/datadog_archives/?tab=docker +[3]: /es/logs/log_configuration/archives/?tab=awss3 [4]: https://app.datadoghq.com/logs/archive-search/new [5]: https://app.datadoghq.com/logs/archive-search/ -[6]: /es/logs/guide/logs-rbac/?tab=ui#restrict-access-to-logs \ No newline at end of file +[6]: /es/logs/guide/logs-rbac/?tab=ui#restrict-access-to-logs +[7]: /es/logs/log_configuration/archives/?tab=awss3#archive-search-lookup-attribute +[8]: /es/logs/log_configuration/archives/?tab=awss3#archive-search-partition-attribute +[9]: /es/logs/log_configuration/archives/?tab=awss3#compression \ No newline at end of file diff --git a/content/es/logs/log_configuration/attributes_naming_convention.md b/content/es/logs/log_configuration/attributes_naming_convention.md index eb9d9a29d03..510b2b3ebb6 100644 --- a/content/es/logs/log_configuration/attributes_naming_convention.md +++ b/content/es/logs/log_configuration/attributes_naming_convention.md @@ -1,114 +1,112 @@ --- aliases: - /es/logs/processing/attributes_naming_convention/ -description: Obtener más información sobre atributos y compatibilidad de la convención - de nomenclatura +description: Aprenda sobre los atributos y cómo soportar una convención de nombres further_reading: - link: logs/log_configuration/pipelines tag: Documentación - text: Descubrir los pipelines de Datadog + text: Descubra Datadog Pipelines - link: logs/log_configuration/processors tag: Documentación - text: Consultar la lista de todos los procesadores disponibles + text: Consulte la lista completa de procesadores disponibles - link: logs/logging_without_limits tag: Documentación - text: Logging Without Limits + text: Registro sin límites - link: logs/explorer tag: Documentación - text: Aprender a explorar tus logs + text: Aprenda cómo explorar sus registros - link: https://www.datadoghq.com/blog/cidr-queries-datadog-log-management/ tag: Blog - text: Uso de consultas con notación de CIDR para filtrar tus logs de tráfico de - red -title: Atributos y asignación de alias + text: Utilice consultas en notación CIDR para filtrar los registros de tráfico de + su red +title: Atributos y Alias --- +## Resumen {#overview} -## Información general +Centralizar registros de diversas tecnologías y aplicaciones puede generar decenas o cientos de atributos diferentes en un entorno de Log Management, especialmente cuando muchos equipos están trabajando en el mismo entorno -Centralizar logs a partir de varias tecnologías y aplicaciones puede generar decenas o centenas de atributos diferentes en un entorno Log Management, especialmente cuando muchos equipos trabajan en el mismo entorno. +Por ejemplo, la IP del cliente puede tener diversos atributos de registro, como `clientIP`, `client_ip_address`, `remote_address`, `client.ip` y así sucesivamente El tiempo de ejecución de una solicitud puede denominarse `exec_time`, `request_latency`, `request.time_elapsed` y así sucesivamente -Por ejemplo, una IP de cliente puede tener varios atributos de logs, como `clientIP`, `client_ip_address`, `remote_address`, `client.ip`, etc. Es posible referirse a un tiempo de ejecución como `exec_time`, `request_latency`, `request.time_elapsed`, etc. +Utilice **atributos** y **aliasing** para unificar su entorno de registros -Utiliza los **atributos** y la **asignación de alias** para unificar el entorno de tus logs. +## Tipos de atributos y aliasing {#attribute-types-and-aliasing} -## Tipos de atributos y asignación de alias +Los atributos prescriben [facetas de registros][1] y [etiquetas][2], que se utilizan para filtrar y buscar en el Explorador de Registros. -Los atributos imponen [facetas de logs][1] y [etiquetas (tags)][2] que se utilizan para filtrar y buscar en el Explorador de logs. + * [**Atributos reservados**](#reserved-attributes) son ingeridos automáticamente. - * Los [**atributos reservados**](#reserved-attributes) se consumen automáticamente. + * [**Atributos estándar**](#standard-attributes) son la columna vertebral de la convención de nombres para su organización Hay un conjunto predeterminado de atributos estándar disponibles en [la aplicación][3]. Sin embargo, esta lista puede ser personalizada para crear una **convención de nombres** para su equipo - * Los [**atributos estándar**](#standard-attributes) son la columna vertebral de la convención de nomenclatura de tu organización. Existe un conjunto predeterminado de atributos estándar disponibles en [la aplicación][3]. Sin embargo, esta lista puede personalizarse para crear una **convención de nomenclatura** para tu equipo. + * Utilice [**aliasing**](#aliasing) una vez que haya implementado una convención de nombres con atributos estándar o si está tratando de crear una faceta estándar única a partir de múltiples fuentes de registro Por ejemplo, siga a los clientes más afectados por latencias en una infraestructura híbrida de [Apache][4] y [Amazon Cloud Front][5], utilizando la faceta estándar `Network Client IP` junto con la estándar `duration` El aliasing permite implementar una convención de nombres sin tener que cambiar la pila técnica de un equipo - * Utiliza la [**asignación de alias**](#aliasing) una vez que hayas implementado una convención de nomenclatura con atributos estándar o si estás intentando crear una faceta estándar única a partir de varias fuentes de logs. Por ejemplo, realiza un seguimiento de los clientes más afectados por las latencias en una infraestructura híbrida [Apache][4] y [Amazon Cloud Front][5], utilizando la faceta estándar `Network Client IP` junto con la `duration` estándar. La asignación de alias te permite implementar una convención de nomenclatura, sin tener que cambiar la pila técnica de un equipo. +## Atributos reservados {#reserved-attributes} -## Atributos reservados +A continuación se presenta una lista de atributos reservados que se ingieren automáticamente con los registros. -A continuación se muestra una lista de los atributos reservados que se consumen automáticamente con los logs. - -**Nota**: Si también estás recopilando trazas o métricas, se recomienda configurar el etiquetado unificado de servicios. Esta configuración combina la telemetría de Datadog mediante el uso de tres etiquetas estándar: `env`, `service` y `version`. Para obtener más información, consulta la documentación específica del [etiquetado unificado de servicios][6]. +**Nota**: Si también está recopilando trazas o métricas, se recomienda configurar unified service tagging Esta configuración une la telemetría de Datadog a través del uso de tres etiquetas estándar: `env`, `service` y `version`. Consulte la documentación dedicada a unified service tagging para más información | Atributo | Descripción | |-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `host` | El nombre del host de origen tal y como se define en las métricas. Datadog recupera automáticamente las etiquetas de host correspondientes del host coincidente en Datadog y las aplica a tus logs. El Agent configura este valor automáticamente. | -| `source` | Corresponde al nombre de la integración, la tecnología de la que procede el log. Cuando coincide con un nombre de integración, Datadog instala automáticamente los analizadores y las facetas correspondientes. Por ejemplo, `nginx`, `postgresql`, etc. | -| `status` | Corresponde al nivel/a la severidad de un log. Se utiliza para definir [patrones][7] y tiene un diseño específico en la interfaz de usuario de los logs de Datadog. | -| `service` | El nombre de la aplicación o del servicio que genera eventos de logs. Se utiliza para pasar de logs a APM, así que asegúrate de definir el mismo valor cuando utilices ambos productos. | -| `trace_id` | Corresponde al ID de rastreo utilizado para trazas. Se utiliza para [correlacionar tu log con su traza][8]. | -| `message` | Por defecto, Datadog consume el valor del atributo `message` como cuerpo de la entrada del log. Ese valor se resalta y se muestra en Live Tail, donde se indexa para búsquedas de texto completo. | - -## Atributos estándar - -Las integraciones de logs se basan de forma nativa en un [conjunto predeterminado][9] de atributos estándar. - -La tabla de atributos estándar viene con un conjunto de [atributos estándar predefinidos](#default-standard-attribute-list). Puedes añadir a la lista tus propios atributos y editar o eliminar los atributos estándar existentes. - -### Crear un nuevo atributo estándar -Los **usuarios administradores** pueden seleccionar la lista de atributos estándar: -1. Ve a la [página de configuración][3] del atributo estándar. -1. Haz clic en **New Standard Attribute** (Nuevo atributo estándar). -1. Define el atributo estándar: - - `Path`: La ruta de los atributos estándar tal y como los encontrarías en tu JSON (por ejemplo, network.client.ip). - - `Type`(`string`, `integer`, `double`, `boolean`): tipo de atributo, que se utiliza para eliminar elementos de la lista de reasignación. - - `Description`: Descripción legible del atributo. - - (Opcional)`Remapping list`: Lista separada por comas de los atributos no conformes que deben reasignarse al atributo estándar. - -### Lista de atributos estándar por defecto - -Consulta la lista completa lista de [atributos estándar por defecto de Log Management][9], que se divide en los dominios funcionales: - -| Atributo estándar | Descripción | +| `host` | El nombre del host de origen según se define en las métricas. Datadog recupera automáticamente las etiquetas de host correspondientes del host coincidente en Datadog y las aplica a sus registros El Agente establece este valor automáticamente. | +| `source` | Esto corresponde al nombre de la integración, la tecnología de la cual se originó el registro. Cuando coincide con un nombre de integración, Datadog instala automáticamente los analizadores y facetas correspondientes. Por ejemplo, `nginx`, `postgresql`, y así sucesivamente. | +| `status` | Esto corresponde al nivel/severidad de un registro. Se utiliza para definir [patrones][7] y tiene un diseño dedicado en la interfaz de usuario de registros de Datadog. | +| `service` | El nombre de la aplicación o servicio que genera los eventos de registro. Se utiliza para cambiar de Registros a APM, así que asegúrese de definir el mismo valor cuando utilice ambos productos | +| `trace_id` | Esto corresponde al ID de traza utilizado para las trazas. Se utiliza para [correlacionar su registro con su traza][8] | +| `message` | Por defecto, Datadog ingiere el valor del atributo `message` como el cuerpo de la entrada de registro. Ese valor se resalta y se muestra en Live Tail, donde se indexa para búsqueda de texto completo. | + +## Atributos estándar {#standard-attributes} + +Las integraciones de registro dependen nativamente de un [conjunto predeterminado][9] de atributos estándar. + +La tabla de atributos estándar viene con un conjunto de [atributos estándar predefinidos](#default-standard-attribute-list). Puede agregar a esa lista sus propios atributos, y editar o eliminar los atributos estándar existentes + +### Cree un nuevo atributo estándar {#create-a-new-standard-attribute} +**Los usuarios administradores** pueden curar la lista de atributos estándar: +1. Navegue a la [página de configuración de atributos estándar][3] +1. Haga clic en {{< ui >}}New Standard Attribute{{< /ui >}} +1. Defina el atributo estándar: + - {{< ui >}}Path{{< /ui >}}: La ruta de los atributos estándar como la encontraría en su JSON (por ejemplo, network.client.ip) + - {{< ui >}}Type{{< /ui >}}: (`string`, `integer`, `double`, `boolean`): El tipo del atributo, que se utiliza para convertir elementos de la lista de remapeo. + - {{< ui >}}Description{{< /ui >}}: Descripción legible por humanos del atributo. + - (Opcional) {{< ui >}}Remapping list{{< /ui >}}: Lista separada por comas de atributos no conformes que deben ser remapeados al atributo estándar. + +### Lista de atributos estándar por defecto {#default-standard-attribute-list} + +Consulte la lista completa de [Log Management Default Standard Attributes][9], que se divide en los dominios funcionales: + +| Atributo Estándar | Descripción | |----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Red/Comunicaciones][10] | Estos atributos están relacionados con los datos utilizados en la comunicación de red. Todos los campos y todas las métricas llevan el prefijo `network`. | -| [Geolocalización][11] | Estos atributos están relacionados con la geolocalización de las direcciones IP utilizadas en la comunicación de red. Todos los campos llevan el prefijo `network.client.geoip` o `network.destination.geoip`. | -| [Solicitudes HTTP][12] | Estos atributos están relacionados con datos utilizados habitualmente en solicitudes y accesos HTTP. Todos los atributos llevan el prefijo `http`. Las integraciones típicas que se basan en estos atributos incluyen [Apache][4], Rails, [AWS CloudFront][13], servidores de aplicaciones web, etc. Los atributos de detalles de URL llevan el prefijo `http.url_details`. Estos atributos proporcionan detalles sobre las partes analizadas de la URL HTTP. Son generados por el [analizador de URL][14]. | -| [Código fuente][15] | Estos atributos están relacionados con los datos utilizados cuando se genera un log o un error utilizando un generador de logs en una aplicación personalizada. Todos los atributos llevan el prefijo `logger` o `error`. Las integraciones típicas que se basan en estos atributos incluyen Java, Node.js, .NET, Golang, Python, etc. | -| [Base de datos] [16] | Las integraciones típicas que se basan en estos atributos son [Cassandra][17], [MySQL][18], [RDS][19], [Elasticsearch][20], etc. | -| [Rendimiento][21] | Estos atributos están relacionados con las métricas de rendimiento. Datadog recomienda [reasignar][22] cualquier duración de tus logs con este atributo, ya que se muestran y se utilizan como [medida][1] por defecto para la [búsqueda de trazas][23]. | -| [Atributos relacionados con el usuario][24] | Todos los atributos y todas las medidas llevan el prefijo `usr`. | -| [Syslog y trasvasadores de logs][25] | Estos atributos están relacionados con los datos añadidos por un syslog o un agente para el envío de logs. Todos los campos y métricas llevan el prefijo `syslog`. Las integraciones que se basan en estos incluyen [Rsyslog][26], [NxLog][27], [Syslog-ng][28], [FluentD][29] y [Logstash][30]. | -| [DNS][31] | Todos los atributos y todas las medidas llevan el prefijo `dns`. | -| [Eventos][32] | Todos los atributos llevan el prefijo `evt`. | +| [Red/comunicaciones][10] | Estos atributos están relacionados con los datos utilizados en la comunicación de red. Todos los campos y métricas están precedidos por `network`. | +| [Geolocalización][11] | Estos atributos están relacionados con la geolocalización de direcciones IP utilizadas en la comunicación de red. Todos los campos están precedidos por `network.client.geoip` o `network.destination.geoip`. | +| [Solicitudes HTTP][12] | Estos atributos están relacionados con datos comúnmente utilizados en solicitudes y accesos HTTP. Todos los atributos están precedidos por `http`. Las integraciones típicas que dependen de estos atributos incluyen [Apache][4], Rails, [AWS CloudFront][13], servidores de aplicaciones web, y así sucesivamente. Los atributos de detalles de URL están precedidos por `http.url_details`. Estos atributos proporcionan detalles sobre las partes analizadas de la URL HTTP. Son generados por el [analizador de URL][14]. | +| [Código fuente][15] | Estos atributos están relacionados con los datos utilizados cuando se genera un registro o un error utilizando un registrador en una aplicación personalizada. Todos los atributos están precedidos ya sea por `logger` o `error`. Las integraciones típicas que dependen de estos atributos son Java, Node.js, .NET, Golang, Python, y así sucesivamente. | +| [Base de datos][16] | Las integraciones típicas que dependen de estos atributos son [Cassandra][17], [MySQL][18], [RDS][19], [Elasticsearch][20], y así sucesivamente. | +| [Rendimiento][21] | Estos atributos están relacionados con métricas de rendimiento. Datadog recomienda [reasignar][22] cualquier duración dentro de sus registros en este atributo, ya que se muestran y utilizan como una [medida][1] predeterminada para la [búsqueda de trazas][23]. | +| [Atributos relacionados con el usuario][24] | Todos los atributos y medidas están precedidos por `usr`. | +| [Syslog y agentes de envío de registros][25] | Estos atributos están relacionados con los datos añadidos por un syslog o un agente de envío de registros. Todos los campos y métricas están precedidos por `syslog`. Las integraciones que dependen de estos incluyen [Rsyslog][26], [NxLog][27], [Syslog-ng][28], [Fluentd][29], y [Logstash][30]. | +| [DNS][31] | Todos los atributos y medidas están precedidos por `dns`. | +| [Events][32] | Todos los atributos están precedidos por `evt` | -## Asignación de alias +## aliasing {#aliasing} -La creación de un alias para un atributo de origen que se asigna a un atributo de destino permite a los logs llevar tanto el atributo de origen como el de destino. +Crear un alias para un atributo de origen que se mapea a un atributo de destino permite que los registros contengan tanto los atributos de origen como los de destino. -Los usuarios pueden interactuar tanto con el atributo con el alias (origen), como con el atributo estándar (destino). Sin embargo, se [invita][33] a los usuarios a utilizar la faceta estándar, en lugar de la del alias. De este modo, se orienta la convención de nomenclatura y se disuade a los usuarios de crear recursos (como vistas guardadas o dashboards) basados en contenido no estándar. +Los usuarios pueden interactuar tanto con el atributo alias (origen) como con el atributo estándar (destino) Sin embargo, se recomienda que los usuarios utilicen la faceta estándar en lugar del atributo alias Esto proporciona orientación sobre la convención de nombres y desalienta a los usuarios de crear activos (como vistas guardadas o dashboards) basados en contenido no estándar -**Detalles adicionales sobre la asignación de alias**: +**Detalles adicionales sobre aliasing**: -- La asignación de alias se produce después de que los pipelines procesan logs. Cualquier atributo extraído o procesado puede utilizarse como fuente de asignación de alias. -- Datadog impone un tipo de atributo con alias. Si esto no es posible, se omite la asignación de alias. -- Cuando un log ya lleva el atributo de destino, la asignación de alias anula el valor de ese log. -- En el caso de un atributo estándar al que se asignan varios atributos con alias, si un log lleva varios de estos atributos de origen, sólo se aplica el alias a uno de estos atributos de origen. -- Las actualizaciones o adiciones a los atributos estándar sólo se aplican a los logs recientemente consumidos. -- Los atributos estándar no pueden tener alias. -- Los atributos sólo pueden llevar alias para atributos estándar. -- Para respetar la estructura JSON de los logs, no es posible tener un atributo estándar como elemento secundario de otro (por ejemplo, `user` y `user.name` no pueden ser ambos atributos estándar). +- El aliasing ocurre después de que los registros son procesados por los pipelines. Cualquier atributo extraído o procesado puede ser utilizado como fuente para el aliasing. +- Datadog aplica el tipo de un atributo asignado como alias. Si esto no es posible, se omite el aliasing. +- En el caso de un registro que ya contiene el atributo de destino, el aliasing sobrescribe el valor de ese registro. +- Para un atributo estándar al que se le asignan múltiples atributos, si un registro contiene varios de estos atributos de fuente, solo uno de estos atributos de fuente se asigna como alias. +- Cualquier actualización o adición a los atributos estándar solo se aplica a los registros recién ingeridos. +- Los atributos estándar no pueden ser asignados como alias. +- Los atributos solo pueden ser asignados como alias a atributos estándar. +- Para respetar la estructura JSON de los registros, no es posible tener un atributo estándar como hijo de otro (por ejemplo, `user` y `user.name` no pueden ser ambos atributos estándar). -Para obtener más información, consulta [Facetas de alias][34]. +Consulte [Alias Facets][34] para información adicional. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -125,7 +123,7 @@ Para obtener más información, consulta [Facetas de alias][34]. [11]: /es/standard-attributes/?product=log+management&search=geolocation [12]: /es/standard-attributes/?search=http.&product=log+management [13]: /es/integrations/amazon_elb/ -[14]: /es/logs/log_configuration/processors/#url-parser +[14]: /es/logs/log_configuration/processors/url_parser/ [15]: /es/standard-attributes/?search=logger+error&product=log+management [16]: /es/standard-attributes/?search=db&product=log+management [17]: /es/integrations/cassandra/ @@ -133,7 +131,7 @@ Para obtener más información, consulta [Facetas de alias][34]. [19]: /es/integrations/amazon_rds/ [20]: /es/integrations/elastic/ [21]: /es/standard-attributes/?search=duration&product=log+management -[22]: /es/logs/log_configuration/processors/#remapper +[22]: /es/logs/log_configuration/processors/remapper/ [23]: /es/tracing/app_analytics/search/ [24]: /es/standard-attributes/?search=usr&product=log+management [25]: /es/standard-attributes/?search=syslog&product=log+management diff --git a/content/es/mobile/_index.md b/content/es/mobile/_index.md new file mode 100644 index 00000000000..6b7160b43e7 --- /dev/null +++ b/content/es/mobile/_index.md @@ -0,0 +1,368 @@ +--- +algolia: + tags: + - Datadog mobile app + - mobile device +aliases: +- /es/service_management/mobile/ +description: Monitorea tu infraestructura dondequiera que estés con la aplicación + móvil de Datadog para iOS y Android, que cuenta con tableros, alertas, incidentes + y gestión de guardias. +further_reading: +- link: /mobile/shortcut_configurations/ + tag: Documentación + text: Configuraciones de accesos directos +- link: /monitors/ + tag: Documentación + text: Aprende sobre Seguimiento y Alerting +- link: /dashboards/ + tag: Documentación + text: Aprende sobre Dashboards +- link: https://www.datadoghq.com/blog/datadog-mobile-widgets/ + tag: Blog + text: Mejora tu experiencia de guardia con los widgets de tableros móviles de Datadog +- link: https://www.datadoghq.com/blog/mobile-app-getting-started/ + tag: Blog + text: Comenzando con la aplicación móvil de Datadog +- link: https://www.datadoghq.com/blog/mobile-app-reduce-mttr/ + tag: Blog + text: Reduce tu tiempo medio de reparación con la aplicación móvil de Datadog +- link: https://www.datadoghq.com/blog/designing-on-call-sounds + tag: Blog + text: Cómo diseñamos sonidos de alerta empáticos para ingenieros de guardia +title: Aplicación Móvil de Datadog +--- +La aplicación móvil de Datadog te permite ver alertas de Datadog en tu dispositivo móvil. Al recibir una alerta a través de On-Call, Slack o correo electrónico, puedes investigar problemas abriendo gráficos de seguimiento y tableros en tu dispositivo móvil. + +## Instalando {#installing} + +Descarga la aplicación desde la [Apple App Store][1] para tu dispositivo iOS, o desde la [Google Play Store][2] para tu dispositivo Android. + +### Iniciando sesión {#logging-in} + +Puedes iniciar sesión utilizando autenticación estándar, autenticación de Google o [SAML][3] - tanto para la región de EE. UU. como para la de la UE. + +#### Habilitando SAML {#enabling-saml} + +El inicio de sesión SAML requiere que configures y autentiques tu proveedor SAML con Datadog utilizando tu navegador predeterminado de iOS/Android. Para el inicio de sesión iniciado por IdP de SAML, consulta el final de esta sección. Para autenticar SAML: + +1. En la aplicación móvil, selecciona la región de tu centro de datos (por ejemplo, US1) en la esquina superior derecha. +2. Presiona el botón de inicio de sesión. +3. Haz clic en "¿Usando inicio de sesión único (SAML)?" enlace. +4. Ingresa tu correo electrónico de la empresa y envía el correo. +5. Mientras estés en tu dispositivo móvil, abre el correo electrónico y haz clic en el enlace indicado a través de tu navegador predeterminado. +6. Ingresa las credenciales SAML de tu organización para ser redirigido a una sesión autenticada de la aplicación móvil de Datadog. + +Opcionalmente, también puedes autenticarte a través de un código QR o entrada manual, como se detalla a continuación. + +##### Código QR {#qr-code} + +1. En un navegador, navega a tu página de [Configuraciones Personales de la Cuenta de Datadog][4] y haz clic en **Iniciar sesión en la aplicación móvil** para la organización en la que estás actualmente conectado. Esto hace que aparezca un código QR. +2. Usa la aplicación de cámara predeterminada de tu teléfono para escanear el código QR y luego toca el enlace sugerido para abrir la aplicación móvil de Datadog. Se iniciará sesión automáticamente. + +**Nota**: Si haces clic en el botón **Iniciar sesión en la aplicación móvil de Datadog** de una organización en la que no estás actualmente conectado, el UUID de la organización se inserta automáticamente en la pantalla de inicio de sesión. Aún debes proporcionar autenticación utilizando tu método estándar. + +##### Entrada manual {#manual-entry} + +1. Para ingresar manualmente el ID SAML, abre la aplicación móvil de Datadog y presiona "¿Usando inicio de sesión único (SAML)?" botón. +2. Presiona el botón "Usar otro método para iniciar sesión" e ingresa el ID SAML manualmente. + +Al hacer clic en **Autorizar** al iniciar sesión, vinculas el dispositivo móvil que estás utilizando a tu cuenta. Por motivos de seguridad, deberás pasar por este proceso una vez al mes. + +##### Inicio de sesión iniciado por IdP SAML {#saml-idp-initiated-login} + +Si sigues recibiendo errores al intentar iniciar sesión con SAML, tu proveedor de identidad puede forzar el inicio de sesión iniciado por IdP. Para más información sobre cómo habilitar SAML iniciado por IdP, consulta nuestra página de SAML iniciado por IdP [página de SAML Iniciado por IdP][5] + +##### Inicio de sesión en subdominio {#subdomain-login} + +1. Toca subdominio e ingresa tu [subdominio][29] personalizado. +2. Continúa con los pasos de inicio de sesión según se indique. + +### Cambiar organizaciones {#switch-organizations} + +Para cambiar de organizaciones, navega a la página de **Configuración** en la aplicación móvil y haz clic en **Organización**. + +**Nota**: Puede que necesites reautenticarte al cambiar de organizaciones. + +### Cerrar sesión {#log-out} +Para cerrar sesión, navega a la página de **Configuración** en la aplicación móvil y haz clic en **Cerrar sesión**. Confirma **Sí** que estás seguro. + +## De guardia {#on-call} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/on_call_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de guardia de iOS mostrando turnos, horarios y opciones de escalación">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_On_Call.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de guardia de Android mostrando turnos, horarios y opciones de escalación">}} + +{{% /tab %}} +{{< /tabs >}} + +La página de guardia proporciona una vista completa de los turnos de guardia, horarios, páginas y políticas de escalación. Puedes filtrar la información por usuario, equipo, urgencia, estado o fecha para encontrar rápidamente los detalles relevantes. Tocar **Escalar** te solicita confirmar la escalación al siguiente nivel de política. Tocar **Declarar Incidente** te solicita ingresar un título y proporcionar los atributos relevantes del incidente. + +Puedes enviar una notificación a un individuo o equipo, y también sobrescribir turnos existentes tocando el turno que deseas sobrescribir. Puedes ver las investigaciones del monitor Bits Investigation para los hallazgos y conclusiones iniciales. Para más información, consulta [Datadog On-Call][20]. + +Para configurar las notificaciones de On-Call en tu dispositivo móvil, consulta la guía para [Configurar tu Dispositivo Móvil para Datadog On-Call][21]. + +
    +Si solo necesitas acceder a On-Call en móvil y deseas restringir el acceso a datos de telemetría sensibles en dispositivos móviles, contacta al soporte de Datadog. +
    + +## Incidentes {#incidents} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/incident_may_2025.png" alt="Página de Incidentes en la aplicación móvil de Datadog On-call" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Incident.png" alt="Página de Incidentes en la aplicación móvil de Datadog On-call" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Incidentes, puedes ver, buscar y filtrar todos los incidentes a los que tienes acceso en tu cuenta de Datadog para asegurar la respuesta y resolución desde cualquier lugar. También puedes declarar y editar incidentes, y comunicarte sin problemas con tus equipos a través de integraciones con Slack, Zoom y muchos más. Para más información sobre Incidentes, consulta [Datadog Incident Management][12]. + +### Crear un incidente {#create-an-incident} + +1. Navega a la lista de incidentes tocando la pestaña de Incidentes en la barra inferior. +2. Toca el botón **+** en la esquina superior derecha. +3. Dale a tu incidente un título, severidad y comandante. + +## Centro de Notificaciones {#notification-center} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_notification_center.png" alt="Centro de notificaciones de iOS en la aplicación móvil de Datadog" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_notification_center.png" alt="Centro de notificaciones de Android en la aplicación móvil de Datadog" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +El Centro de Notificaciones lista todas las notificaciones push recibidas para que el contexto de la notificación nunca se pierda. Puedes filtrar por tipo de notificación. + +## Tableros {#dashboards} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/dashboard_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de tableros de iOS mostrando la lista de tableros con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Dashboards.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de tableros de Android mostrando la lista de tableros con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Tableros, puedes ver y buscar todos los tableros a los que tienes acceso en tu organización de Datadog, y filtrarlos utilizando las mismas variables de plantilla que has configurado en la aplicación web de Datadog. Filtra rápidamente tus tableros utilizando Saved Views de variables de plantilla. Para más información sobre Saved Views de variables de plantilla, consulta [Dashboard Saved Views][9]. Haz clic en un tablero individual para verlo. Haz clic en el intervalo de tiempo en la esquina inferior derecha para personalizar el rango del tablero. + +**Nota**: +- Para configurar o editar un tablero, necesitas [iniciar sesión en la aplicación del navegador de Datadog][10]. Para más información, consulta [Tableros][11]. +- Los enlaces de tablero configurados en UTC se abren en UTC en la aplicación móvil. Para más información, consulta [Configuraciones de Tablero][24]. +- No todos los tipos de widgets están disponibles, lo que significa que no muestran datos en la aplicación móvil. Esto incluye Mapa de Topología, Widget de Lista (todas las fuentes de datos), widget de treemap heredado y widget de Resumen de SLO. + +## Monitores {#monitors} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/monitor_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de monitores de iOS que muestra la lista de monitores con opciones de búsqueda y filtrado.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Monitors.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de monitores de Android que muestra la lista de monitores con opciones de búsqueda y filtrado.">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Monitores, puedes ver y buscar todos los monitores a los que tienes acceso en tu organización de Datadog. Puedes especificar por nombre de campo y construir consultas de búsqueda específicas basadas en tu estrategia de etiquetado. Para más información sobre la búsqueda, consulta la sección [Administrar Búsqueda de Monitores][6]. + +Por ejemplo, para filtrar los monitores de métricas relacionados con el equipo de SRE que está siendo alertado, utiliza la consulta `"status:Alert type:Metric team:sre"`. Haz clic en alertas individuales para ver detalles, que pueden ser filtrados por tipo y por tiempo de alerta. También puedes silenciar la alerta. Tus diez búsquedas más recientes se guardan para que tengas un acceso más rápido a consultas anteriores. Además, puedes filtrar tu lista de monitores utilizando vistas guardadas, que aparecen cuando activas la barra de búsqueda. También puedes ver y ejecutar pruebas sintéticas al visualizar tus monitores sintéticos. + +**Nota**: Para configurar o editar monitores, notificaciones o vistas guardadas, debes usar la [aplicación web de Datadog][7]. Todos los monitores configurados en la aplicación web son visibles en la aplicación móvil. Para más información, consulta [Creando monitores][8]. + +## Notebooks {#notebooks} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/notebook_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="iOS muestra la página de cuadernos con una lista de cuadernos y opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Notebooks.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Android muestra la página de cuadernos con una lista de cuadernos y opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Notebooks, puedes ver y buscar todos los notebooks a los que tienes acceso en tu organización de Datadog, y filtrarlos por etiquetas. Las etiquetas de notebooks te permiten filtrar por favoritos, equipo y tipo. Consulta [etiquetas de notebooks][19] para más información. + +**Nota**: Para configurar o editar un notebook, necesitas [iniciar sesión en la aplicación del navegador de Datadog][10]. Para más información, consulta [Notebooks][18]. + +## Trazas {#traces} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/trace_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de trazas de iOS que muestra una lista de trazas con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Traces.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de trazas de Android que muestra una lista de trazas con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Trazas, puedes ver y buscar todas las trazas a las que tienes acceso en tu organización de Datadog. Puedes reducir la lista a través de vistas guardadas o construir consultas de búsqueda específicas basadas en tu estrategia de etiquetado. Para más información sobre la búsqueda, consulta [Sintaxis de Consulta del Explorador de Rastros][16]. + +Por ejemplo, para filtrar trazas con la etiqueta `#env:prod` o la etiqueta `#test`, utiliza la consulta `"env:prod" OR test`. Haz clic en servicios individuales para expandir los tramos asociados y selecciona tramos para ver información, errores y registros relacionados. También puedes abrir trazas desde servicios y registros. + +**Solo disponible en iOS**: Watchdog Insights señala valores anómalos de latencia y valores anómalos de errores. Para más información, consulta [Watchdog Insights][26]. + + +## Registros {#logs} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/iOS_logs_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de registros de iOS que muestra una lista de registros con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Logs.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de registros de Android que muestra una lista de registros con opciones de búsqueda y filtrado">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Registros, puedes ver y buscar todos los registros o registros flexibles a los que tienes acceso en tu organización de Datadog. Puedes reducir la lista a través de vistas guardadas o filtros de consulta. Para más información sobre la búsqueda, consulta [Sintaxis de Búsqueda de Registros][23]. + +También puedes agrupar por patrones de registro y seleccionar diferentes atributos de registro para agrupar o clasificar resultados. Para más información sobre patrones de registros, consulte [Agrupación de Registros en Patrones][22]. + +**Nota**: Para activar los registros flexibles, navegue a la lista de registros y toque en la parte superior derecha para seleccionar habilitar registros flexibles. + +**Solo disponible en iOS**: Watchdog Insights señala anomalías y valores anómalos en los registros. Para más información, consulte [Watchdog Insights para Registros][25]. + + +## Servicios {#services} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/service_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de servicios de iOS que muestra la lista de servicios con opciones de búsqueda y filtrado.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Services.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Página de servicios de Android que muestra la lista de servicios con opciones de búsqueda y filtrado.">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de Servicios, puede ver, buscar y filtrar todos los servicios a los que tiene acceso en su cuenta de Datadog desde la aplicación móvil de Datadog para asegurar la salud de su servicio desde cualquier lugar. También puede ver implementaciones recientes, recursos, SLOs y monitores asociados con ese servicio. Para más información sobre herramientas de investigación para sus servicios, consulte [gestionar Catálogo][17]. + +## Bits AI {#bits-ai} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Interfaz del chatbot de Bits AI en iOS donde un usuario pregunta sobre un servicio.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Interfaz del chatbot de Bits AI en Android donde un usuario pregunta sobre un servicio.">}} + +{{% /tab %}} +{{< /tabs >}} + +En la página de inicio de Bits AI, puede hacer preguntas sobre la salud del sistema de su organización. Bits AI admite consultas en lenguaje natural para registros y trazas de APM. Para más información, consulte [Bits Chat][27]. + +### Investigación de Bits {#bits-investigation} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Resultados de la Investigación de Bits mostrados en una página de On-Call.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Resultados de la Investigación de Bits mostrados en una página de On-Call.">}} + +{{% /tab %}} +{{< /tabs >}} + +Cuando está habilitado, la Investigación de Bits inicia investigaciones directamente en las páginas de On-Call. Estas investigaciones presentan hallazgos y conclusiones iniciales para ayudar a los respondientes a identificar posibles causas raíz y próximos pasos. Para más información, consulte [Investigación de Bits][28]. + +## Preguntas Frecuentes {#frequently-asked-question} +### ¿Cómo puedo permanecer conectado en la aplicación móvil? {#how-do-i-remain-logged-into-the-mobile-app} +Una vez autenticado con éxito en la aplicación móvil, permanecerá conectado durante 90 días. + +**Nota**: Si tiene habilitadas las notificaciones, se enviarán notificaciones proactivas 10 días antes de la expiración del token. + +### ¿Seguiré recibiendo notificaciones si se cierra sesión automáticamente? {#will-i-still-receive-notifications-if-i-am-automatically-signed-out} +Si se cierra sesión automáticamente durante el período de 90 días del token, aún podrá recibir notificaciones y se le pedirá que inicie sesión nuevamente. + +**Nota**: Si cierra sesión manualmente en la aplicación, dejará de recibir notificaciones. + +### ¿Por qué no estoy recibiendo notificaciones? {#why-am-i-not-receiving-notifications} +Verifique que tiene habilitadas las notificaciones para la aplicación Datadog en la configuración de aplicaciones de su dispositivo. Si desea asegurarse de que las notificaciones eviten No Molestar, verifique que las Alertas Críticas estén activadas. + +### ¿Recibiré notificaciones para todas las organizaciones en las que estoy registrado? {#will-i-receive-notifications-for-all-organizations-that-i-am-signed-into} +Sí, independientemente de la organización a la que cambie, recibirá notificaciones para todas las organizaciones en las que está registrado. Esto incluye notificaciones push críticas. + +### ¿Qué sucede si un usuario es deshabilitado? {#what-happens-if-a-user-is-disabled} +El token de la aplicación móvil será inválido y obligará al usuario a cerrar sesión. + +## Solución de problemas {#troubleshooting} + +Para obtener ayuda con la solución de problemas, [contacta al soporte de Datadog][13]. También puedes enviar un mensaje en el canal [#mobile-app][15] de [Slack público de Datadog][14]. + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://apps.apple.com/app/datadog/id1391380318 +[2]: https://play.google.com/store/apps/details?id=com.datadog.app +[3]: /es/account_management/saml/#pagetitle +[4]: https://app.datadoghq.com/personal-settings/organizations +[5]: /es/account_management/saml/mobile-idp-login/ +[6]: /es/monitors/manage/#search +[7]: https://app.datadoghq.com/monitors +[8]: /es/monitors/types +[9]: /es/dashboards/template_variables/#saved-views +[10]: https://app.datadoghq.com/dashboard/lists +[11]: /es/dashboards/ +[12]: /es/monitors/incident_management +[13]: /es/help/ +[14]: https://chat.datadoghq.com/ +[15]: https://datadoghq.slack.com/archives/C0114D5EHNG +[16]: /es/tracing/trace_explorer/query_syntax/ +[17]: https://docs.datadoghq.com/es/internal_developer_portal/catalog/set_up/ +[18]: https://docs.datadoghq.com/es/notebooks/ +[19]: https://docs.datadoghq.com/es/notebooks/#notebook-tags +[20]: https://docs.datadoghq.com/es/incident_response/on-call/ +[21]: /es/incident_response/on-call/guides/configure-mobile-device-for-on-call/?tab=ios +[22]: https://docs.datadoghq.com/es/logs/explorer/analytics/patterns/ +[23]: https://docs.datadoghq.com/es/logs/explorer/search_syntax/ +[24]: /es/dashboards/configure/#configuration-actions +[25]: /es/logs/explorer/watchdog_insights/ +[26]: /es/watchdog/insights/?tab=logmanagement +[27]: /es/bits_ai/bits_assistant/ +[28]: /es/bits_ai/bits_ai_sre/ +[29]: /es/account_management/multi_organization/#custom-sub-domains \ No newline at end of file diff --git a/content/es/network_monitoring/devices/snmp_metrics.md b/content/es/network_monitoring/devices/snmp_metrics.md index 2aac86d88ca..9328653ecf3 100644 --- a/content/es/network_monitoring/devices/snmp_metrics.md +++ b/content/es/network_monitoring/devices/snmp_metrics.md @@ -2,58 +2,57 @@ further_reading: - link: /network_monitoring/devices/profiles tag: Documentación - text: Uso de perfiles con Network Device Monitoring + text: Uso de Perfiles con NDM - link: https://www.datadoghq.com/knowledge-center/network-monitoring/snmp-monitoring/ - tag: Centro de conocimiento - text: Información general de la monitorización de SNMP + tag: Centro de Conocimiento + text: Descripción General del Monitoreo SNMP - link: https://www.datadoghq.com/blog/monitor-snmp-with-datadog/ tag: Blog - text: Monitorización de SNMP con Datadog -title: Métricas de SNMP + text: Monitorear SNMP con Datadog +title: Métricas SNMP --- +## Instalación {#installation} -## Instalación +El NDM se basa en la Integración SNMP incluida en el paquete del [Datadog Agent][1], y soporta las tres versiones de SNMP: `SNMPv1`, `SNMPv2` y `SNMPv3`. Durante el descubrimiento, se sondea el puerto SNMP (predeterminado 161). Un dispositivo se considera descubierto si hay una respuesta y un perfil coincidente. -Network Device Monitoring se basa en la integración de SNMP incluida en el paquete del [Datadog Agent][1] y admite las tres versiones de SNMP: `SNMPv1`, `SNMPv2` y `SNMPv3`. Durante la detección, se sondea el puerto SNMP (por defecto 161). Un dispositivo se considera detectado si hay una respuesta y un perfil coincidente. +## Requisitos previos {#pre-requisites} -## Requisitos previos +Agente v7.32+ -Agent v7.32+ +## Cómo funciona {#how-it-works} -## Cómo funciona +El siguiente diagrama ilustra los puertos y protocolos predeterminados entre el Agente de Datadog y el dispositivo que se está monitoreando. Para las métricas SNMP, el Agente de Datadog sondea los dispositivos con Autodiscovery, o basado en la configuración manual de la IP del dispositivo. El Agente de Datadog, configurado con NDM y desplegado en las instalaciones o en la nube, consolida todos los datos de dispositivos y redes recolectados de su red y los envía a Datadog a través de HTTPS en el puerto `443`. Esto proporciona una observabilidad unificada de pila completa de metrics, logs, traces, monitors y dashboards. -El siguiente diagrama ilustra los puertos y protocolos por defecto entre el Datadog Agent y el dispositivo que se está monitorizado. Para métricas de SNMP, el Datadog Agent sondea los dispositivos con Autodiscovery, o basándose en la configuración de la IP del dispositivo manual. El Datadog Agent, configurado con NDM e implementado en las instalaciones o en la nube, consolida todos los datos de dispositivos y red recopilados de tu red y los envía a Datadog a través de HTTPS en el puerto `443`. Esto proporciona una capacidad de observación unificada y completa de métricas, logs, trazas, monitores y dashboards. +{{< img src="/network_device_monitoring/snmp/snmp_device_polling.png" alt="Diagrama de NDM que muestra el flujo para el sondeo de dispositivos SNMP." style="width:90%;" >}} -{{< img src="/network_device_monitoring/snmp/snmp_device_polling.png" alt="Diagrama de NDM Diagram que muestra el flujo de sondeo de dispositivos de SNMP." style="width:90%;" >}} +## Próximos pasos {#next-steps} -## Siguientes pasos +Siga las instrucciones a continuación para configurar Datadog para recopilar métricas SNMP de sus dispositivos de red. -Sigue las instrucciones a continuación para configurar Datadog para recopilar métricas de SNMP de tus dispositivos de red. +## Configuración {#configuration} -## Configuración +NDM de Datadog admite la recopilación de métricas de dispositivos individuales o el Autodiscovery de dispositivos (direcciones IP únicas) en subredes completas. -Datadog Network Device Monitoring permite recopilar métricas de dispositivos individuales, o autodetectar dispositivos (direcciones IP únicas) en subredes enteras. +Elija su estrategia de recopilación según el número de dispositivos presentes en su red y cuán dinámica es su red (lo que significa la frecuencia de agregar o eliminar dispositivos): -Elige tu estrategia de recopilación en función del número de dispositivos presentes en tu red y de lo dinámica que sea tu red (es decir, la frecuencia con la que se añaden o eliminan dispositivos): +[Monitoreo de dispositivos individuales](#monitoring-individual-devices) +: Para redes pequeñas y mayormente estáticas. -[Monitorización de dispositivos individuales](#monitoring-individual-devices) -: para redes pequeñas y mayoritariamente estáticas. +[Autodiscovery](#autodiscovery) +: Para redes más grandes o dinámicas. -[Autodiscovery](#Autodiscovery) -: para redes mayores o dinámicas. +Independientemente de la estrategia de recopilación, aproveche los [perfiles de dispositivo mapeados por sysObjectID de Datadog][2] para recopilar automáticamente métricas relevantes de sus dispositivos. -Independientemente de la estrategia de recopilación, aprovecha los [perfiles de dispositivos asignados de sysObjectID][2] de Datadog para recopilar automáticamente métricas pertinente de tus dispositivos. +### NDM de dispositivos individuales {#monitoring-individual-devices} -### Monitorización de dispositivos individuales +Para monitorear dispositivos individuales: -Para monitorizar dispositivos individuales: - -- Incluye la dirección de IP y cualquier metadato de dispositivos (como etiquetas) en el archivo `snmp.d/conf.yaml` que se encuentra en la carpeta `conf.d/` en la raíz del [directorio de configuración de tu Agent][3]. Para conocer todas las opciones de configuración disponibles, consulta el [snmp.d/conf.yaml de ejemplo][4]. +- Incluya la dirección IP y cualquier metadato adicional de los dispositivos (como etiquetas) en el archivo `snmp.d/conf.yaml` en la carpeta `conf.d/` en la raíz de su [directorio de configuración del Agente][3]. Consulte el archivo de ejemplo snmp.d/conf.yaml[4] para todas las opciones de configuración disponibles. {{< tabs >}} {{% tab "SNMPv2" %}} -- Para SNMPv2, configura una instancia especificando la dirección IP y la _cadena de comunidad_ del dispositivo: +- Para SNMPv2, configure una instancia especificando la dirección IP y la _cadena de comunidad_ del dispositivo: ```yaml init_config: @@ -70,7 +69,7 @@ Para monitorizar dispositivos individuales: {{% /tab %}} {{% tab "SNMPv3" %}} -- Para SNMPv3, configura una instancia que especifique la dirección IP y las credenciales SNMPv3 del dispositivo (según corresponda), por ejemplo: `user`, `authProtocol`, `authKey`, `privProtocol` y `privKey`: +- Para SNMPv3, configure una instancia especificando la dirección IP y las credenciales de SNMPv3 del dispositivo (según corresponda), por ejemplo: `user`, `authProtocol`, `authKey`, `privProtocol` y `privKey`: ```yaml init_config: @@ -92,26 +91,34 @@ Para monitorizar dispositivos individuales: {{% /tab %}} {{< /tabs >}} -- [Reinicia el Agent][5]. +- [Reinicie el Agente][5]. + +Después de la configuración, el Agente recopila métricas relevantes al emparejar sus dispositivos con uno de los [perfiles de dispositivo compatibles de Datadog][6]. + +Para expandir su configuración: -Tras la configuración, el Agent recopila las métricas pertinentes haciendo coincidir tus dispositivos con uno de los [perfiles de dispositivos compatibles de Datadog][6]. +* Agregue más instancias para recopilar métricas de más dispositivos en su red. +* Utilice [Autodiscovery](#autodiscovery) si necesita recopilar métricas de muchos dispositivos en una red dinámica. -Para ampliar tu configuración: +### Autodiscovery {#autodiscovery} -* Añade más instancias para recopilar métricas de más dispositivos en tu red. -* Utiliza [Autodiscovery](#autodiscovery) si necesitas recopilar métricas de muchos dispositivos a través de una red dinámica. +Una alternativa a especificar dispositivos individuales es usar Autodiscovery para descubrir automáticamente todos los dispositivos en su red. -### Autodiscovery +Autodiscovery sondea cada IP en la subred configurada y verifica si hay una respuesta del dispositivo. Luego, el Agente de Datadog busca el `sysObjectID` del dispositivo descubierto y lo mapea a uno de los [perfiles de dispositivo compatibles de Datadog][6]. Los perfiles contienen listas de métricas predefinidas para recopilar de varios tipos de dispositivos. -Una alternativa a la especificación de dispositivos individuales es utilizar Autodiscovery para detectar automáticamente todos los dispositivos en tu red. +Para usar Autodiscovery con NDM: -Autodiscovery sondea cada IP de la subred configurada y espera una respuesta del dispositivo. A continuación, el Datadog Agent busca el `sysObjectID` del dispositivo detectado y lo asigna a uno de los [perfiles de dispositivos compatibles de Datadog][6]. Los perfiles contienen listas de métricas predefinidas para recopilar varios tipos de dispositivos. +1. Instale o actualice el Agente de Datadog a la versión v7.27+. Para instrucciones específicas de la plataforma, consulte la documentación del [Datadog Agent][7]. -Para utilizar Autodiscovery con Network Device Monitoring: +2. Edite el archivo de configuración del Agente [`datadog.yaml`][8] para incluir todas las subredes que Datadog debe escanear. La siguiente configuración de muestra proporciona parámetros requeridos, valores predeterminados y ejemplos para Autodiscovery. -1. Instala o actualiza el Datadog Agent a v7.27+. Para obtener instrucciones específicas de la plataforma, consulta la documentación del [Datadog Agent][7]. +3. Opcionalmente, habilite la [desduplicación][11] de dispositivos durante el Autodiscovery del Agente. Esta función está deshabilitada por defecto y requiere la versión `7.67+` del Agente. -2. Edita el archivo de configuración [`datadog.yaml`][8] del Agent para incluir todas las subredes que Datadog debe escanear. El siguiente ejemplo de configuración proporciona los parámetros requeridos, los valores predeterminados y ejemplos para Autodiscovery. + ```yaml + network_devices: + autodiscovery: + use_deduplication: true + ``` {{< tabs >}} {{% tab "SNMPv2" %}} @@ -119,6 +126,7 @@ Para utilizar Autodiscovery con Network Device Monitoring: ```yaml network_devices: autodiscovery: + ## use_deduplication - boolean - optional - default: false workers: 100 # number of workers used to discover devices concurrently discovery_interval: 3600 # interval between each autodiscovery in seconds loader: core # use core check implementation of SNMP integration. recommended @@ -130,16 +138,16 @@ network_devices: port: 161 community_string: '***' # enclose with single quote tags: - - "key1:val1" - - "key2:val2" + - "key1:val1" + - "key2:val2" - network_address: 10.20.0.0/24 loader: core snmp_version: 2 port: 161 community_string: '***' tags: - - "key1:val1" - - "key2:val2" + - "key1:val1" + - "key2:val2" ``` {{% /tab %}} @@ -149,6 +157,7 @@ network_devices: ```yaml network_devices: autodiscovery: + ## use_deduplication - boolean - optional - default: false workers: 100 # number of workers used to discover devices concurrently discovery_interval: 3600 # interval between each autodiscovery in seconds loader: core # use core check implementation of SNMP integration. recommended @@ -179,15 +188,34 @@ network_devices: {{% /tab %}} {{< /tabs >}} -**Nota**: El Datadog Agent configura automáticamente el check de SNMP con cada una de las IPs que se detectan. Un dispositivo detectado es una IP que responde satisfactoriamente cuando es sondeada usando SNMP. +**Nota**: El Agente de Datadog configura automáticamente la verificación SNMP con cada una de las IPs que se descubren. Un dispositivo descubierto es una IP que responde exitosamente cuando se sondea usando SNMP. + +**Nota**: Asegúrese de estar en la versión 7.54+ de Agent para esta sintaxis. Para versiones anteriores, consulte el [config_template.yaml anterior][9] + +### Sobrescribir la velocidad de la interfaz {#override-interface-speed} + +Por defecto, la verificación SNMP informa la velocidad de la interfaz según lo detectado desde el dispositivo. Si la velocidad del puerto físico difiere del ancho de banda real del circuito, por ejemplo, un puerto físico de 1 Gbps provisionado para un circuito de 50 Mbps, puede sobrescribir la velocidad de entrada y salida para interfaces específicas utilizando `interface_configs`. + +Agregue `interface_configs` a la configuración de su instancia en `snmp.d/conf.yaml`: + +```yaml +instances: + - ip_address: '1.2.3.4' + community_string: 'sample-string' + interface_configs: + - match_field: name # match by interface name or ifIndex + match_value: eth0 # case-sensitive + in_speed: 50000000 # inbound speed in bytes per second (50 Mbps) + out_speed: 50000000 # outbound speed in bytes per second (50 Mbps) +``` -**Nota**: Asegúrate de que estás en el Agent 7.54+ para esta sintaxis. Para versiones anteriores, consulta el [config_template.yaml anterior][9]. +Para todas las opciones disponibles de `interface_configs`, consulte el [archivo de ejemplo snmp.d/conf.yaml][4]. -## Validación +## Validación {#validation} -[Ejecuta el subcomando de estado del Agent][10] y busca `snmp` en la sección Checks. +[Ejecute el subcomando de estado de Agent][10] y busque `snmp` en la sección de Verificaciones. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -201,4 +229,5 @@ network_devices: [7]: /es/agent [8]: /es/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file [9]: https://github.com/DataDog/datadog-agent/blob/51dd4482466cc052d301666628b7c8f97a07662b/pkg/config/config_template.yaml#L855 -[10]: /es/agent/configuration/agent-commands/#agent-status-and-information \ No newline at end of file +[10]: /es/agent/configuration/agent-commands/#agent-status-and-information +[11]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/config_template.yaml#L4036 \ No newline at end of file diff --git a/content/es/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md b/content/es/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md new file mode 100644 index 00000000000..a38c8117ecc --- /dev/null +++ b/content/es/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md @@ -0,0 +1,15 @@ +--- +aliases: +- /es/real_user_monitoring/browser/troubleshooting/ +description: Soluciona problemas comunes con el SDK del navegador RUM, incluyendo + datos faltantes, bloqueadores de anuncios, restricciones de red y problemas de configuración. +further_reading: +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: Blog + text: RUM +- link: /integrations/content_security_policy_logs/ + tag: Documentación + text: Política de Seguridad de Contenidos +title: Solución de Problemas del SDK del Navegador +--- +{% partial file="sdk/troubleshooting/browser.mdoc.md" /%} \ No newline at end of file diff --git a/content/es/real_user_monitoring/rum_without_limits/_index.md b/content/es/real_user_monitoring/rum_without_limits/_index.md index d0bdebb081b..2a0a6dc55e5 100644 --- a/content/es/real_user_monitoring/rum_without_limits/_index.md +++ b/content/es/real_user_monitoring/rum_without_limits/_index.md @@ -1,60 +1,65 @@ --- -description: Conserva solo los datos RUM que necesites, manteniendo una visibilidad - total de las métricas de rendimiento para tus aplicaciones. +description: Mantenga solo los datos de RUM que necesita mientras mantiene plena visibilidad + de las métricas de rendimiento de sus aplicaciones. further_reading: - link: /real_user_monitoring/rum_without_limits/retention_filters tag: Documentación - text: Conservar datos con filtros de retención + text: Retener datos con filtros de retención - link: /real_user_monitoring/guide/retention_filter_best_practices/ tag: Guía - text: Mejores prácticas para los filtros de retención + text: Mejores prácticas de filtros de retención - link: /real_user_monitoring/rum_without_limits/metrics tag: Documentación - text: Analizar el rendimiento con métricas + text: Analice el rendimiento con métricas. +- link: /real_user_monitoring/rum_without_limits/retention_quotas + tag: Documentación + text: Controle los costos con cuotas de retención. - link: https://www.datadoghq.com/blog/rum-without-limits/ tag: Blog - text: 'Presentamos RUM without LimitsTM: captura todo, conserva lo que importa' + text: 'Presente RUM without Limits™: Capture todo, conserve lo que importa.' +- link: https://learn.datadoghq.com/courses/rum-retention-filters + tag: Centro de aprendizaje + text: 'Laboratorio interactivo: Filtros de retención de RUM' title: RUM without Limits --- +
    RUM without Limits se habilita automáticamente para clientes con planes de RUM no comprometidos. Contacte a su equipo de cuentas o soporte de Datadog para habilitar esta función.
    -
    RUM without Limits se activa automáticamente para los clientes con planes de RUM no comprometidos. Ponte en contacto con tu equipo de cuentas o con el servicio de asistencia de Datadog para activar esta función.
    - -{{< img src="real_user_monitoring/rum_without_limits/rum-without-limits-overview.png" alt="Página de panel lateral de las métricas de uso estimado" style="width:90%" >}} +{{< img src="real_user_monitoring/rum_without_limits/rum-without-limits-overview.png" alt="Detalles de métricas de uso estimadas en el panel lateral" style="width:90%" >}} -## Información general +## Resumen {#overview} -RUM without Limits te proporciona flexibilidad sobre tus volúmenes de sesiones RUM al desacoplar la ingesta de datos de sesión de la indexación. Esto te permite: +RUM without Limits le proporciona flexibilidad sobre los volúmenes de sus sesiones de RUM al desacoplar la ingestión de datos de sesión de la indexación. Esto le permite: -- Establecer filtros de retención dinámicamente desde la interfaz de usuario de Datadog sin tener que tomar decisiones de muestreo previas ni cambiar el código. -- Conservar las sesiones con errores o problemas de rendimiento y descartar las menos significativas, como las que tienen pocas interacciones con el usuario. +- Establezca dinámicamente filtros de retención desde la interfaz de usuario de Datadog sin decisiones de muestreo anticipadas o cambios de código +- Retenga sesiones con errores o problemas de rendimiento y descarte las menos significativas, como aquellas con pocas interacciones de usuario. -Aunque solo se conserve una fracción de las sesiones, Datadog proporciona [métricas de rendimiento][1] para todas las sesiones ingestadas. Esto garantiza una visión general precisa y a largo plazo del estado y el rendimiento de la aplicación, incluso si solo se conserva una fracción de los datos de sesión. +Incluso si retiene solo una fracción de sus sesiones, Datadog proporciona [métricas de rendimiento][1] para todas las sesiones ingeridas. Esto asegura una visión precisa y a largo plazo de la salud y el rendimiento de la aplicación, incluso si solo se retiene una fracción de los datos de sesión. -**Nota**: En el modo RUM without Limits, solo puedes utilizar los filtros predeterminados en la [página de Resumen de monitorización del rendimiento][7]. Esto te permite ver todo el conjunto de datos y evita métricas de rendimiento sesgadas, ya que los datos se muestrean y hay menos etiquetas disponibles que en los atributos de eventos. +**Nota**: En modo RUM sin límites, solo puedes usar filtros predeterminados en la [página de resumen de monitoreo de rendimiento][7]. Esto le permite ver todo el conjunto de datos y evita métricas de rendimiento sesgadas, ya que los datos son muestreados y hay menos etiquetas disponibles que en los atributos de evento. -Esta página identifica los componentes clave de RUM without Limits que pueden ayudarte a gestionar los volúmenes de tus sesiones RUM dentro de tu presupuesto de observabilidad. +Esta página identifica los componentes clave de RUM without Limits que pueden ayudarle a gestionar los volúmenes de sus sesiones de RUM dentro de su presupuesto de observabilidad. -### Para nuevas aplicaciones +### Para nuevas aplicaciones {#for-new-applications} -Para empezar a trabajar con RUM without Limits para nuevas aplicaciones, en el paso de [instrumentación][2]: +Para comenzar con RUM without Limits para nuevas aplicaciones, en el paso de [instrumentación][2]: -1. Asegúrate de que `sessionSampleRate` está configurado al 100%. Datadog recomienda configurarlo a este porcentaje para una visibilidad óptima y precisión de las métricas. +1. Asegúrese de que el `sessionSampleRate` esté configurado al 100%. Datadog recomienda configurarlo a esta tasa para una visibilidad óptima y precisión en las métricas. -2. Elige una `sessionReplaySampleRate` que satisfaga tus necesidades de observabilidad. +2. Elija un `sessionReplaySampleRate` que satisfaga sus necesidades de observabilidad. -3. Para aplicaciones con la integración [APM activada][3], configura el porcentaje de sesiones para las que deseas asegurarte de que las trazas de backend de APM se ingieren con `traceSampleRate` (navegador), `traceSampler` (Android) o `sampleRate` (iOS). +3. Para aplicaciones con la [integración APM habilitada][3], configure el porcentaje de sesiones para las cuales desea asegurarse de que las trazas de backend de APM sean ingeridas con `traceSampleRate` (navegador), `traceSampler` (Android) o `sampleRate` (iOS). -4. Habilita `traceContextInjection: sampled` para permitir que las bibliotecas de rastreo de backend tomen sus propias decisiones de muestreo para las sesiones en las que el SDK de RUM decida no conservar la traza. +4. Habilite `traceContextInjection: sampled` para permitir que los SDK de backend tomen sus propias decisiones de muestreo para las sesiones en las que el SDK de RUM decida no mantener la traza. -
    Los pasos 1, 3 y 4 pueden afectar a la ingesta de trazas de APM. Para garantizar que los volúmenes ingestados de tramos permanezcan estables, configura traceSampleRate con el valor de sessionSampleRate configurado anteriormente. Por ejemplo, si solías tener configurado sessionSampleRate al 10 % y lo aumentas al 100 % para RUM without Limits, reduce traceSampleRate del 100 % al 10 % para ingerir la misma cantidad de trazas.
    +
    Los pasos 1, 3 y 4 pueden afectar la ingestión de sus trazas APM. Para asegurar que los volúmenes de span ingeridos permanezcan estables, configure el traceSampleRate al previamente configurado sessionSampleRate. Por ejemplo, si solía tener sessionSampleRate configurado al 10% y lo aumenta al 100% para RUM without Limits, disminuya el traceSampleRate del 100% al 10% en consecuencia para ingerir la misma cantidad de trazas.
    -5. Despliega tu aplicación para aplicar la configuración. +5. Despliegue su aplicación para aplicar la configuración. -### Para aplicaciones existentes -Los usuarios existentes de RUM deben volver a desplegar las aplicaciones para utilizar plenamente RUM without Limits. Asegúrate de que la frecuencia de muestreo de la sesión es del 100 % para todas las aplicaciones. +### Para aplicaciones existentes {#for-existing-applications} +Los usuarios existentes de RUM deben volver a desplegar las aplicaciones para utilizar RUM without Limits. Asegúrese de que la tasa de muestreo de su sesión sea del 100% para todas las aplicaciones. -#### Paso 1: Ajustar la frecuencia de muestreo -Si ya estás recopilando repeticiones, para aumentar la frecuencia de muestreo de la sesión es necesario reducir la frecuencia de muestreo de las repeticiones para recopilar el mismo número de repeticiones (consulta el ejemplo siguiente). La frecuencia de muestreo de repetición se basa en la frecuencia de muestreo de sesión existente. +#### Paso 1: Ajuste las tasas de muestreo {#step-1-adjust-sampling-rates} +Si ya está recopilando repeticiones, aumentar la tasa de muestreo de la sesión requiere reducir la tasa de muestreo de repeticiones para recopilar el mismo número de repeticiones (ver ejemplo a continuación). La tasa de muestreo de repeticiones se basa en la tasa de muestreo de sesión existente. Antes: @@ -70,37 +75,37 @@ Después: sessionReplaySampleRate: 2, ``` -1. Ve a [**Digital Experiences > Real User Monitoring > Manage Applications**][4] (Experiencias digitales > Real User Monitoring > Gestionar aplicaciones). -1. Haz clic en la aplicación que deseas migrar. -1. Haz clic en la pestaña **SDK Configuration** (Configuración del SDK). -1. Asegúrate de que `sessionSampleRate` está ajustado al 100 %. -1. Establece `sessionReplaySampleRate` a una velocidad que resulte en el mismo número de repeticiones antes de aumentar la velocidad de muestreo de la sesión. -1. Utiliza el fragmento de código generado para actualizar tu código fuente y volver a desplegar tus aplicaciones para asegurarte de que se aplica la nueva configuración. +1. Navegue a [**Experiencias Digitales > Monitoreo de Usuarios Reales > Administrar Aplicaciones**][4]. +1. Haga clic en la aplicación que desea migrar. +1. Haga clic en la pestaña **Configuración del SDK**. +1. Asegúrese de que `sessionSampleRate` esté configurado al 100%. +1. Establezca `sessionReplaySampleRate` a una tasa que resulte en el mismo número de repeticiones antes de aumentar la tasa de muestreo de sesión. +1. Utilice el fragmento de código generado para actualizar su código fuente y volver a implementar sus aplicaciones para asegurarse de que se aplique la nueva configuración. -#### Paso 2: Ajustar el rastreo +#### Paso 2: Ajuste el rastreo {#step-2-adjust-tracing} -Si has aumentado `sessionSampleRate`, podrías aumentar el número de tramos de APM ingestados, ya que el SDK de RUM tiene la capacidad de anular las decisiones de muestreo de las trazas de backend para realizar la correlación. +Si ha aumentado `sessionSampleRate`, podría aumentar el número de spans de APM ingeridos, ya que el SDK de RUM tiene la capacidad de anular las decisiones de muestreo de los rastros de backend para hacer la correlación. -Para simplificar esto, establece `traceSampleRate` en un porcentaje inferior al 100 % (a la `sessionSampleRate` establecida anteriormente) y establece `traceContextInjection: sampled` para permitir que las bibliotecas de rastreo de backend tomen sus propias decisiones de muestreo para las sesiones en las que el SDK de RUM decida no mantener la traza. +Para aliviar esto, establezca `traceSampleRate` a un porcentaje por debajo del 100% (al `sessionSampleRate` previamente establecido) y establezca `traceContextInjection: sampled` para permitir que los SDK de backend tomen sus propias decisiones de muestreo para sesiones en las que el SDK de RUM decida no mantener la traza. -#### Paso 3: Crear filtros de retención +#### Paso 3: Cree filtros de retención {#step-3-create-retention-filters} -En las aplicaciones móviles, pueden convivir muchas versiones concurrentes. Sin embargo, las versiones existentes no envían necesariamente el 100 % de las sesiones, lo que significa que la creación de nuevos filtros de retención reduce los datos disponibles en Datadog para estas versiones de aplicaciones. +En aplicaciones móviles, muchas versiones concurrentes pueden coexistir. Sin embargo, las versiones existentes no envían necesariamente el 100% de las sesiones, lo que significa que crear nuevos filtros de retención reduce los datos disponibles en Datadog para estas versiones de la aplicación. -Datadog recomienda crear los mismos filtros de retención para todas las versiones de la aplicación, independientemente de si la tasa de muestreo del SDK está configurada al 100 % o no. En última instancia, todas las sesiones valiosas se siguen recopilando aunque algunas sesiones no se ingieran para algunas versiones antiguas. +Datadog recomienda crear los mismos filtros de retención para todas las versiones de la aplicación, independientemente de si la tasa de muestreo del SDK está configurada al 100% o no. En última instancia, todas las sesiones valiosas se recopilan incluso si algunas sesiones no se ingieren para algunas versiones anteriores. -Consulta los filtros de retención y casos de uso sugeridos en [Prácticas recomendadas del filtro de retención][5]. +Vea los filtros de retención sugeridos y los casos de uso en [Retention Filter Best Practices][5]. -## Siguientes pasos +## Próximos pasos {#next-steps} -Crea y configura [filtros de retención][6]. +Cree y configure [filtros de retención][6]. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/real_user_monitoring/rum_without_limits/metrics -[2]: /es/real_user_monitoring/browser/setup/ +[2]: /es/real_user_monitoring/application_monitoring/browser/setup/ [3]: /es/real_user_monitoring/platform/connect_rum_and_traces/ [4]: https://app.datadoghq.com/rum/list [5]: /es/real_user_monitoring/guide/retention_filter_best_practices/ diff --git a/content/es/security/sensitive_data_scanner/_index.md b/content/es/security/sensitive_data_scanner/_index.md index a03f0e51100..b2532bc407c 100644 --- a/content/es/security/sensitive_data_scanner/_index.md +++ b/content/es/security/sensitive_data_scanner/_index.md @@ -6,129 +6,175 @@ disable_toc: false further_reading: - link: /security/sensitive_data_scanner/setup/telemetry_data tag: Documentación - text: Configurar Sensitive Data Scanner para datos de telemetría + text: Configurar Sensitive Data Scanner para Datos de Telemetría - link: /security/sensitive_data_scanner/setup/cloud_storage tag: Documentación - text: Configurar Sensitive Data Scanner para el almacenamiento en la nube + text: Configurar Sensitive Data Scanner para Almacenamiento en la Nube - link: coterm tag: Documentación - text: 'CoTerm: Monitorizar sesiones de terminal y actividades confidenciales en - sistemas locales y remotos' -- link: /security/sensitive_data_scanner/guide/best_practices_for_creating_custom_rules - tag: Documentación - text: Prácticas recomendadas para crear reglas personalizadas + text: 'CoTerm: Monitorear sesiones de terminal y actividades sensibles en sistemas + locales y remotos' - link: /data_security/ tag: Documentación - text: Reducir los riesgos relacionados con los datos + text: Reduciendo riesgos relacionados con datos - link: https://www.datadoghq.com/blog/scaling-sensitive-data-scanner/ tag: Blog - text: Descubre, clasifica y corrige los problemas de datos confidenciales a escala - con Sensitive Data Scanner. + text: Descubrir, clasificar y remediar problemas de datos sensibles a gran escala + con Sensitive Data Scanner - link: https://www.datadoghq.com/blog/sensitive-data-scanner/ tag: Blog - text: Crea una estrategia moderna de protección de datos con Datadog's Sensitive - Data Scanner + text: Construir una estrategia moderna de cumplimiento de datos con Sensitive Data + Scanner de Datadog - link: https://www.datadoghq.com/blog/sensitive-data-management-best-practices/ tag: Blog - text: Prácticas recomendadas para la gestión de datos confidenciales + text: Mejores prácticas para la gestión de datos sensibles - link: https://www.datadoghq.com/blog/data-security/ tag: Blog - text: Descubre datos confidenciales en tus almacenes de datos en la nube con Data - Security + text: Descubrir datos sensibles en sus almacenes de datos en la nube con Data Security - link: https://www.datadoghq.com/blog/hipaa-compliance-sensitive-data-scanner/ tag: Blog - text: Cómo gestionan los datos confidenciales las empresas sujetas a los requisitos - de la HIPAA con Datadog + text: Cómo las empresas sujetas a los requisitos de HIPAA gestionan datos sensibles + con Datadog - link: https://www.datadoghq.com/blog/sds-dlp-for-financial-service-companies/ tag: Blog - text: Cómo las compañías financieras servicios detectan, clasifican y gestionan - datos confidenciales con Datadog + text: Cómo las empresas de servicios financieros descubren, clasifican y gestionan + datos sensibles con Datadog - link: https://www.datadoghq.com/blog/sds-for-insurance-companies/ tag: Blog - text: Cómo las compañías de seguros, clasifican y actúan ante potenciales riesgos - de los datos confidenciales con Datadog + text: Cómo las compañías de seguros descubren, clasifican y actúan sobre los riesgos + de datos sensibles con Datadog +- link: https://www.datadoghq.com/blog/llm-aws-strands + tag: Blog + text: Obtener visibilidad en los flujos de trabajo de Strands Agents con Datadog + LLM Observability +- link: https://www.datadoghq.com/blog/observability-pipelines-mssp + tag: Blog + text: Simplificar la recolección y agregación de registros para MSSPs con Datadog + Observability Pipelines +- link: https://www.datadoghq.com/blog/datadog-cloud-security-compliance + tag: Blog + text: Escalar el cumplimiento a través de marcos globales con Datadog Cloud Security title: Sensitive Data Scanner --- +## Visión General {#overview} -## Información general +Los datos sensibles, como números de tarjetas de crédito, claves de API, direcciones IP e información personal identificable (PII), a menudo se filtran de manera no intencionada, lo que puede exponer a su organización a riesgos de seguridad y cumplimiento. Los datos sensibles se pueden encontrar en: + +- Tramos de APM +- Repositorios de código +- Eventos de Event Management +- Trazas de LLM Observability +- Eventos de RUM +- Datos de telemetría, como registros de aplicaciones -Los datos confidenciales, como los números de tarjetas de crédito, las claves de API, las direcciones IP y la información personal identificable (PII), a menudo se filtran de forma no intencionada, y esto puede exponer tu organización a riesgos de seguridad y de cumplimiento. Los datos confidenciales pueden encontrarse en tus datos de telemetría, como los logs de aplicación, los tramos (spans) APM, los eventos de RUM y los eventos de Event Management. También pueden trasladarse de forma no intencionada a recursos de almacenamiento en la nube cuando los equipos de ingeniería trasladan sus cargas de trabajo a la nube. Datadog Sensitive Data Scanner puede ayudar a evitar fugas de datos confidenciales y a limitar los riesgos de incumplimiento detectando, clasificando y, opcionalmente, ocultando datos confidenciales. +Los datos sensibles también pueden ser trasladados involuntariamente a recursos de almacenamiento en la nube cuando los equipos de ingeniería mueven sus cargas de trabajo a la nube. El escáner de datos sensibles de Datadog puede ayudar a prevenir filtraciones de datos sensibles y limitar los riesgos de incumplimiento al descubrir, clasificar y, opcionalmente, redactar datos sensibles. -**Nota**: Consulta [Cumplimiento de PCI DSS][1] para obtener información sobre la creación de una organización de Datadog que cumpla con PCI. +**Nota**: Las herramientas y políticas de Datadog cumplen con PCI v4.0. Para más información, consulte [Cumplimiento de PCI DSS][1]. -## Analizar datos de telemetría +## Escanear datos de telemetría {#scan-telemetry-data} -{{< img src="sensitive_data_scanner/telemetry_data_issues.png" alt="Cinco diferentes problemas de confidencialidad detectados, de los cuales dos tienen prioridad crítica, uno tiene prioridad intermedia y dos son informativos." style="width:100%;" >}} +{{< img src="sensitive_data_scanner/telemetry_data_issues.png" alt="Se detectaron cinco hallazgos sensibles diferentes, donde dos tienen prioridad crítica, uno tiene prioridad media y dos son informativos." style="width:100%;" >}} -Sensitive Data Scanner puede analizar tus datos [en la nube](#in-the-cloud) o [en tu entorno](#in-your-environment). +El escáner de datos sensibles puede escanear sus datos [en la nube](#in-the-cloud) o [dentro de su entorno](#in-your-environment). -### En la nube {#in-the-cloud} +### En la nube {#in-the-cloud} -Con Sensitive Data Scanner en la nube, envías logs y eventos al backend Datadog, por lo que los datos salen de tu entorno antes de ser redactados. Los logs y eventos se analizan y redactan en el backend Datadog durante su procesamiento, por lo que los datos confidenciales se ocultan antes de que los eventos se indexen y se muestren en la interfaz de usuario de Datadog. +Con Sensitive Data Scanner en la nube, envía registros y eventos al backend de Datadog, por lo que los datos salen de su entorno antes de ser redactados. Los registros y eventos se escanean y se redactan en el backend de Datadog durante el procesamiento, por lo que los datos sensibles se redactan antes de que los eventos sean indexados y mostrados en Datadog UI. -Los datos que pueden analizarse y redactarse son: +Los datos que pueden ser escaneados y redactados son: -- Logs: todo el contenido estructurado y no estructurado de los logs, incluyendo los valores de mensajes y atributos de logs. -- APM: sólo valores de atributos de tramo. -- RUM: sólo valores de atributos de eventos. -- Eventos: sólo valores de atributos de eventos. +- **Registros**: Todo el contenido de registro estructurado y no estructurado, incluyendo mensajes de registro y valores de atributos +- **APM**: Solo valores de atributos de tramos +- **RUM**: Solo valores de atributos de eventos +- **Eventos**: Solo valores de atributos de eventos -{{< callout url="https://www.datadoghq.com/product-preview/role-based-sensitive-data-unmasking-in-logs" btn_hidden="false" >}} -El desenmascaramiento de los datos confidenciales en logs está en Vista previa. Para inscribirte, haz clic en Request Access (Solicitar acceso). -{{< /callout >}} +Opcionalmente, las tasas de muestreo pueden establecerse entre el 10% y el 99% para cada producto. Esto ayuda a gestionar los costos cuando comienza, al reducir la cantidad de datos que se escanean en busca de información sensible. + +Para cada [regla de escaneo][17], se puede aplicar una de las siguientes acciones a los datos sensibles coincidentes: + +- **Redactar**: Reemplace todos los datos coincidentes con un solo token que elija, como `[sensitive_data]`. +- **Redactar parcialmente**: Reemplace una porción específica de todos los valores coincidentes. +- **Hash**: Reemplace todos los datos coincidentes con un identificador único no reversible. +- **Enmascarar** (disponible solo para registros): Ofusque todos los valores coincidentes. Los usuarios con el permiso `Data Scanner Unmask` pueden desofuscar (desenmascarar) y ver estos datos en Datadog. Consulte [Acción de enmascarar][16] para más información. + +**Nota**: Al escanear datos muestreados, no podrás seleccionar acciones que ofusquen los datos que escanea. + +Para usar Sensitive Data Scanner, configure un grupo de escaneo para definir qué datos escanear y luego establezca reglas de escaneo para determinar qué información sensible identificar dentro de los datos. Para las reglas de escaneo puedes: +- Agregue reglas de escaneo predefinidas de la [Biblioteca de Reglas de Escaneo][2]. Estas reglas detectan patrones comunes como direcciones de correo electrónico, números de tarjetas de crédito, claves de API, tokens de autorización, información de red y dispositivo, y más. +- [Cree sus propias reglas utilizando patrones regex][3]. -Para utilizar Sensitive Data Scanner, configura un grupo de análisis para definir qué datos analizar y luego configura reglas de análisis para determinar qué información confidencial debe coincidir en los datos. Para las reglas de análisis puedes: -- Añadir reglas de análisis predefinidas de la [biblioteca de reglas de análisis][2] de Datadog. Estas reglas detectan patrones comunes como direcciones de correo electrónico, números de tarjetas de crédito, claves de API, tokens de autorización, información de red y dispositivos, etc. -- [Crear tus propias reglas utilizando patrones de expresiones regulares (regex)][3]. +Consulte [Configura el Escáner de Datos Sensibles para Datos de Telemetría][4] para detalles de configuración. -Para obtener más información, consulta [Configurar Sensitive Data Scanner para datos de telemetría][4]. +### En su entorno {#in-your-environment} +Utiliza [Observability Pipelines][5] para recopilar y procesar tus registros dentro de tu entorno, y luego enruta los datos a sus integraciones de destino. Cuando configure una canalización en Observability Pipelines, agregue el [procesador de Sensitive Data Scanner][6] para redactar datos sensibles en sus registros antes de que salgan de sus instalaciones. Puedes agregar reglas de escaneo predefinidas de la Biblioteca de Reglas, como direcciones de correo electrónico, números de tarjetas de crédito, claves de API, tokens de autorización, direcciones IP, y más. También puedes crear tus propias reglas utilizando patrones regex. -### En tu entorno {#in-your-environment} +Consulta [Configurar Pipelines][7] para más información. -Utiliza [Observability Pipelines][5] para recopilar y procesar tus logs de tu entorno y luego envía los datos a tus integraciones posteriores. Cuando configures un pipeline en Observability Pipelines, añade el [procesador Sensitive Data Scanner][6] para redactar los datos confidenciales de tus logs antes de que salgan de tus instalaciones. Puedes añadir reglas de análisis predefinidas de la librería de reglas, como direcciones de correo electrónico, números de tarjetas de crédito, claves de API, tokens de autorización, direcciones IP, etc. También puedes crear tus propias reglas utilizando patrones de expresiones regulares (regex). +## Escanear datos de Observabilidad de LLM {#scan-llm-observability-data} -Para obtener más información, consulta [Configurar pipelines][7]. +El Escáner de Datos Sensibles puede escanear trazas de [Observabilidad de LLM de Datadog][20], incluyendo entradas y salidas de aplicaciones de LLM. Esto ayuda a prevenir la exposición de datos sensibles como PII, claves de API o información propietaria en solicitudes, completaciones y metadatos de flujo de trabajo de LLM. -## Analizar el almacenamiento en la nube +El escaneo de Observabilidad de LLM utiliza un modelo de configuración gestionada que difiere del escaneo de datos de telemetría, donde el escaneo de Observabilidad de LLM tiene: -{{< callout header="Disponibilidad limitada" url="https://www.datadoghq.com/private-beta/data-security" >}} -La compatibilidad del análisis de buckets de Amazon S3 e instancias RDS está en Disponibilidad limitada. Para inscribirte, haz clic en Request Access (Solicitar acceso). +- **Un grupo de escaneo gestionado**: Se crea automáticamente un grupo de escaneo predeterminado para su organización cuando accede por primera vez a la [LLM Observability Settings page][18]. No puede crear grupos de escaneo adicionales ni eliminar el grupo gestionado. +- **Reglas personalizables**: Puede modificar reglas existentes, desactivar las que no necesite o agregar reglas de escaneo personalizadas para detectar patrones adicionales de datos sensibles. + +Para cada regla de escaneo, se puede aplicar una de las siguientes acciones a los datos sensibles coincidentes: + +- **Redactar**: Reemplace todos los datos coincidentes con un solo token que elija, como `[sensitive_data]`. +- **Redactar parcialmente**: Reemplace una porción específica de todos los valores coincidentes. +- **Hash**: Reemplace todos los datos coincidentes con un identificador único no reversible. + +Para configurar el escaneo de datos de LLM Observability, navegue a la [LLM Observability Settings page][18] en la configuración de Sensitive Data Scanner. Para más información sobre LLM Observability, consulte la [LLM Observability documentation][20]. + +## Escanear almacenamiento en la nube {#scan-cloud-storage} + +{{< callout url="https://www.datadoghq.com/product-preview/data-security" >}} + El soporte de escaneo para buckets de Amazon S3 e instancias de RDS está en vista previa. Para inscribirse, haga clic en Solicitar Acceso. {{< /callout >}} -{{< img src="sensitive_data_scanner/cloud_storage_issues.png" alt="Sección del almacén de datos de la página de resumen con tres incidentes de Amazon S3" style="width:100%;" >}} +{{< img src="sensitive_data_scanner/cloud_storage_issues.png" alt="La sección de almacenamiento de la página de Hallazgos con tres hallazgos de Amazon S3" style="width:100%;" >}} + +Si tiene habilitado Sensitive Data Scanner, puede catalogar y clasificar datos sensibles en sus buckets de Amazon S3. **Nota**: Sensitive Data Scanner no redacta datos sensibles en sus recursos de almacenamiento en la nube. + +Sensitive Data Scanner escanea en busca de datos sensibles al desplegar [scáneres sin agente][8] en tus entornos en la nube. Estas instancias de escaneo recuperan una lista de todos los S3 buckets a través de [Remote Configuration][9] y tienen instrucciones establecidas para escanear archivos de texto, como CSV y JSON, a lo largo del tiempo. + +Sensitive Data Scanner aprovecha su [completa biblioteca de reglas][10] para encontrar coincidencias. Cuando se encuentra una coincidencia, la ubicación de la coincidencia se envía a Datadog por la instancia de escaneo. **Nota**: Los almacenes de datos y sus archivos solo se leen en su entorno; no se envían datos sensibles escaneados de vuelta a Datadog. + +Además de mostrar coincidencias de datos sensibles, Sensitive Data Scanner muestra cualquier problema de seguridad detectado por [Cloud Security][11] que afecte a los almacenes de datos sensibles. Puede hacer clic en cualquier problema para continuar con la triage y la remediación dentro de Cloud Security. -Si tienes Sensitive Data Scanner activado, puedes catalogar y clasificar datos confidenciales en tus buckets de Amazon S3 e instancias de RDS. **Nota**: Sensitive Data Scanner no redacta datos confidenciales en tus recursos de almacenamiento en la nube. +Consulte [Set up Sensitive Data Scanner for Cloud Storage][12] para detalles de configuración. -Sensitive Data Scanner analiza en busca de datos confidenciales, desplegando [analizadores agentless][8] en tus entornos en la nube. Estas instancias de análisis recuperan una lista de todos los buckets de S3 e instancias de RDS mediante [configuración remota][9] y tienen instrucciones configuradas para analizar archivos de texto (como CSV y JSON) y tablas en cada almacén de datos a lo largo del tiempo. +## Escanear repositorios de código {#scan-code-repositories} -Sensitive Data Scanner aprovecha tu [biblioteca de reglas completa][10] para encontrar coincidencias. Cuando se encuentra una coincidencia, la instancia de análisis envía la ubicación de la coincidencia a Datadog. **Nota**: Los almacenes de datos y sus archivos sólo se leen en tu entorno. No se envía a Datadog ningún dato confidencial que haya sido analizado. +Datadog [Secret Scanning][21] escanea repositorios de código para detectar secretos expuestos en el código fuente. Secret Scanning es impulsado por Sensitive Data Scanner y utiliza todas las reglas de la [categoría de secretos y credenciales][19] de la biblioteca SDS para encontrar coincidencias. -Además de mostrar las coincidencias de datos confidenciales, Sensitive Data Scanner muestra cualquier problema de seguridad detectado por [Cloud Security][11] que afecte a los almacenes de datos confidenciales. Puedes hacer clic en cualquier problema para continuar con la clasificación y la corrección dentro de Cloud Security. +A diferencia del escaneo de datos de telemetría, Secret Scanning opera en sus pipelines de CI/CD o directamente en Datadog con escaneo alojado (compatible con GitHub, Azure DevOps y GitLab). Cuando se detectan secretos en el código, los hallazgos se muestran en la interfaz de Code Security. -Para obtener información sobre la configuración, consulta [Configurar Sensitive Data Scanner para el almacenamiento en la nube][12]. +Consulte [Secret Scanning documentation][21] para detalles de configuración. -## Investigar problemas de datos confidenciales +## Investigar hallazgos de datos sensibles {#investigate-sensitive-data-findings} -{{< img src="sensitive_data_scanner/sds_summary_20250203.png" alt="Página de resumen que muestra información general de los problemas de confidencialidad desglosados por prioridad" style="width:100%;" >}} +{{< img src="sensitive_data_scanner/findings_20251014.png" alt="La página de Hallazgos muestra una visión general de los hallazgos sensibles desglosados por prioridad." style="width:100%;" >}} -Utiliza la [página de resumen][13] para ver los detalles de problemas de datos confidenciales identificados por tus reglas de análisis. Estos detalles incluyen: +Utilice la [página de Hallazgos][13] para ver detalles de los hallazgos de datos sensibles identificados por sus reglas de escaneo. Estos detalles incluyen: -- La regla de análisis específica que detectó las coincidencias, para que puedas determinar qué reglas modificar, según sea necesario. -- El grupo de análisis en el que se produjo el problema, para que puedas determinar el radio de explosión de cualquier fuga. -- El número de incidentes asociados al problema, para ayudarte a calibrar tu contexto y gravedad. -- Un gráfico de los eventos asociados al problema, para ayudarte a determinar con precisión cuándo comenzó un problema y ver cómo evolucionó. -- Casos relacionados creados para el problema. +- La regla de escaneo específica que detectó las coincidencias, para que pueda determinar qué reglas modificar según sea necesario. +- El grupo de escaneo en el que ha ocurrido el hallazgo, para que pueda determinar el radio de explosión de cualquier fuga. +- El número de eventos asociados con el hallazgo para ayudarle a evaluar su alcance y gravedad. +- Un gráfico de los eventos asociados con el hallazgo para ayudarle a identificar cuándo comenzó y cómo ha progresado. +- Incidencias relacionadas creadas para el hallazgo. -Consulta [Investigar problemas de datos confidenciales][14] para obtener más información sobre cómo utilizar la página de resumen para clasificar problemas de datos confidenciales. +Consulte [Investigar hallazgos de datos sensibles][14] para obtener más información sobre cómo clasificar datos sensibles utilizando la página de Hallazgos. -## Revisar las tendencias de los datos confidenciales +## Revise las tendencias de datos sensibles {#review-sensitive-data-trends} {{Sensitive Data Scanner Overview dashboard}} -Cuando se activa Sensitive Data Scanner, en tu cuenta se instala automáticamente un [dashboard predefinido][15] que resume los problemas de datos confidenciales. Para acceder a este dashboard, ve a **Dashboards** > **Lista de dashboards** y busca "Información general de Sensitive Data Scanner". +Cuando Sensitive Data Scanner está habilitado, se instala automáticamente en su cuenta un [out-of-the-box dashboard][15] que resume los hallazgos de datos sensibles. Para acceder a este dashboard, navegue a **Dashboards** > **Dashboard List** y busque "Sensitive Data Scanner Overview". -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -138,12 +184,18 @@ Cuando se activa Sensitive Data Scanner, en tu cuenta se instala automáticament [4]: /es/security/sensitive_data_scanner/setup/telemetry_data/ [5]: /es/observability_pipelines/ [6]: /es/observability_pipelines/processors/sensitive_data_scanner -[7]: /es/observability_pipelines/set_up_pipelines/ +[7]: /es/observability_pipelines/configuration/set_up_pipelines/ [8]: /es/security/cloud_security_management/setup/agentless_scanning -[9]: /es/agent/remote_config +[9]: /es/remote_configuration [10]: /es/security/sensitive_data_scanner/scanning_rules/library_rules/ [11]: /es/security/cloud_security_management [12]: /es/security/sensitive_data_scanner/setup/cloud_storage/ [13]: https://app.datadoghq.com/organization-settings/sensitive-data-scanner -[14]: /es/security/sensitive_data_scanner/guide/investigate_sensitive_data_issues/ +[14]: /es/security/sensitive_data_scanner/guide/investigate_sensitive_data_findings/ [15]: https://app.datadoghq.com/dash/integration/sensitive_data_scanner +[16]: /es/security/sensitive_data_scanner/setup/telemetry_data/?tab=logs#mask-action +[17]: /es/security/sensitive_data_scanner/scanning_rules/ +[18]: https://app.datadoghq.com/sensitive-data-scanner/configuration/llm-spans +[19]: /es/security/sensitive_data_scanner/scanning_rules/library_rules/?category=Secrets+and+credentials#overview +[20]: /es/llm_observability/ +[21]: /es/security/code_security/secret_scanning/ \ No newline at end of file diff --git a/content/es/serverless/aws_lambda/instrumentation/_index.md b/content/es/serverless/aws_lambda/instrumentation/_index.md index e10dd3ffcca..a8e574a0f9e 100644 --- a/content/es/serverless/aws_lambda/instrumentation/_index.md +++ b/content/es/serverless/aws_lambda/instrumentation/_index.md @@ -10,49 +10,52 @@ further_reading: - link: /integrations/amazon_lambda/ tag: Documentación text: Integración de AWS Lambda -title: Instrumentar aplicaciones AWS Lambda +title: Instrumentar aplicaciones de AWS Lambda --- +## Descripción general {#overview} -## Información general +Instrumente sus aplicaciones de AWS Lambda con Datadog Lambda Extension para recopilar trazas, métricas mejoradas y métricas personalizadas. La Datadog Lambda Extension es análoga a usar el Datadog Agent y los SDK de Datadog para infraestructura y aplicaciones basadas en host. -Instrumenta tus aplicaciones AWS Lambda con una biblioteca Lambda de Datadog para recopilar traces (trazas), métricas mejoradas y métricas personalizadas. +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Un diagrama que muestra cómo Datadog recibe telemetría de su aplicación de AWS Lambda instrumentada. Su aplicación Lambda, instrumentada con Datadog Lambda Library, envía registros, trazas, métricas mejoradas y métricas personalizadas a Datadog Lambda Extension, que luego envía estos datos a Datadog." style="width:100%;" >}} -{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Un diagrama en el que se muestra cómo recibe Datadog la telemetría desde tu aplicación instrumentada AWS Lambda. Tu aplicación Lambda, instrumentada una biblioteca Datadog Lambda, envía logs, traces (trazas), métricas mejoradas y métricas personalizadas a la Extensión Datadog Lambda, que luego envía estos datos a Datadog." style="width:100%;" >}} +## Inicio rápido {#quick-start} -## Inicio rápido +Para comenzar, [regístrese para obtener una cuenta de Datadog][1] si aún no la tiene. Luego, siga el [flujo de instalación en la aplicación en Fleet Automation][8] para AWS Lambda para instrumentar sus funciones Lambda. Esta configuración de inicio rápido permite que sus funciones envíen métricas, registros y trazas en tiempo real a Datadog. -Para empezar, [regístrate para obtener una cuenta en Datadog ][1] si aún no tienes una. A continuación, sigue el [flujo de instalación dentro de la aplicación en Fleet Automation][8] para AWS Lambda para instrumentar tus funciones Lambda. Esta configuración de inicio rápido permite a tus funciones enviar métricas, logs y traces (trazas) en tiempo real a Datadog. +Una aplicación de muestra está [disponible en GitHub][6] con instrucciones sobre cómo desplegar con múltiples entornos de ejecución y herramientas de infraestructura como código. -Hay una aplicación de muestra [disponible en GitHub][6] con instrucciones sobre cómo desplegarla con múltiples tiempos de ejecución y herramientas de infraestructura como código. +El proceso de inicio rápido configura sus funciones Lambda sobre la marcha. Para instrumentar funciones Lambda de manera permanente, consulte las instrucciones detalladas en la siguiente sección. -El proceso de inicio rápido configura tus funciones Lambda sobre la marcha. Para instrumentar funciones Lambda de forma permanente, consulta las instrucciones detalladas de la siguiente sección. +## Usar el servidor MCP de Datadog {#use-the-datadog-mcp-server} -## Instrucciones de instrumentación +Utilice el [Datadog MCP server][9] para configurar el monitoreo de sus contenedores de AWS Lambda con asistencia de IA. Después de conectarse, pruebe un aviso como: -Para los tiempos de ejecución de Node.js y Python, puedes utilizar la [instrumentación remota][5] para añadir instrumentación a tus funciones de AWS Lambda y mantenerlas instrumentadas de forma segura. Consulta [Instrumentación remota para AWS Lambda][5]. +```shell +Help me monitor my AWS Lambda functions with Datadog +``` -Para otros tiempos de ejecución Lambda (o para instrumentar tus funciones Node.js o Python sin instrumentación remota) consulta las instrucciones detalladas de instrumentación: +## Instrucciones de instrumentación {#instrumentation-instructions} {{< card-grid card_width="30%" image_width="200" >}} {{< image-card href="/serverless/installation/python/" src="integrations_logos/python.png" alt="Python" >}} {{< image-card href="/serverless/installation/nodejs/" src="integrations_logos/nodejs.png" alt="Node.js" >}} {{< image-card href="/serverless/installation/ruby/" src="integrations_logos/ruby.png" alt="Ruby" >}} {{< image-card href="/serverless/installation/java/" src="integrations_logos/java.png" alt="Java" >}} - {{< image-card href="/serverless/installation/go/" src="integrations_logos/go-metro.png" alt="go" >}} + {{< image-card href="/serverless/installation/go/" src="integrations_logos/go-metro.png" alt="Go" >}} {{< image-card href="/serverless/installation/dotnet/" src="integrations_logos/dotnet_text.png" alt=".NET" >}} {{< /card-grid >}} -## Configuraciones avanzadas +## Configuraciones avanzadas {#advanced-configurations} -Una vez que hayas terminado con la instrumentación y hayas instalado la recopilación de telemetría, puedes utilizar [Configurar Serverless Monitoring para AWS Lambda][3] para: +Después de haber terminado con la instrumentación y de haber configurado la recolección de telemetría, puede usar [Configurar Serverless Monitoring for AWS Lambda][3] para: -- conectar tus métricas, trazas y logs mediante etiquetas (tags); -- recopilar telemetría de recursos de AWS como API Gateway, AppSync y Step Functions; -- capturar las cargas útiles de solicitud y respuesta para invocaciones de Lambda individuales; -- vincular los errores de tus funciones de Lambda con tu código fuente; -- filtrar o borrar información confidencial de logs o trazas. +- Conecte sus métricas, trazas y registros usando etiquetas +- Recolecte telemetría de recursos de AWS como API Gateway, AppSync y Step Functions +- Capture las cargas útiles de solicitud y respuesta para invocaciones individuales de Lambda +- Vincule los errores de sus funciones Lambda a su código fuente +- Filtre o elimine información sensible de registros o trazas -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -61,4 +64,5 @@ Una vez que hayas terminado con la instrumentación y hayas instalado la recopil [4]: /es/serverless/aws_lambda/fips-compliance/ [5]: /es/serverless/aws_lambda/remote_instrumentation [6]: https://github.com/DataDog/serverless-sample-app -[8]: https://app.datadoghq.com/fleet/install-agent/latest?platform=lambda \ No newline at end of file +[8]: https://app.datadoghq.com/fleet/install-agent/latest?platform=lambda +[9]: /es/agentic_onboarding/setup \ No newline at end of file diff --git a/content/es/serverless/aws_lambda/instrumentation/nodejs.md b/content/es/serverless/aws_lambda/instrumentation/nodejs.md new file mode 100644 index 00000000000..137c81a2ae5 --- /dev/null +++ b/content/es/serverless/aws_lambda/instrumentation/nodejs.md @@ -0,0 +1,475 @@ +--- +aliases: +- /es/serverless/datadog_lambda_library/nodejs/ +- /es/serverless/guide/nodejs/ +- /es/serverless/installation/nodejs +- /es/serverless/aws_lambda/installation/nodejs +further_reading: +- link: /serverless/configuration + tag: Documentación + text: Configurar Serverless Monitoring +- link: /serverless/guide/serverless_tracing_and_bundlers/ + tag: Documentación + text: Compatibilidad de Trazado de Node.js Lambda y Empaquetadores +- link: /serverless/guide/troubleshoot_serverless_monitoring + tag: Documentación + text: Solucionar Problemas de Serverless Monitoring +- link: serverless/custom_metrics/ + tag: Documentación + text: Enviar Custom Metrics desde Aplicaciones Serverless +title: Instrumentar Aplicaciones Serverless de Node.js +--- +
    La versión 67+ de la Extensión Lambda de Datadog está optimizada para reducir significativamente la duración del inicio en frío. Leer más.
    + +## Configurar {#setup} + +{{< tabs >}} +{{% tab "Interfaz de Usuario de Datadog" %}} +Puede instrumentar su aplicación Node.js AWS Lambda directamente dentro de Datadog. Navegue a la página [Serverless > AWS Lambda][2] y seleccione [**Instrumentar Funciones**][3]. + +Para más información, consulte [Instrumentación remota para AWS Lambda][1]. + +[1]: /es/serverless/aws_lambda/remote_instrumentation +[2]: https://app.datadoghq.com/functions?cloud=aws +[3]: https://app.datadoghq.com/serverless/aws/lambda/setup +{{% /tab %}} +{{% tab "CLI de Datadog" %}} + +El CLI de Datadog modifica las configuraciones de las funciones Lambda existentes para habilitar la instrumentación sin requerir un nuevo despliegue. Es la forma más rápida de comenzar con Serverless Monitoring de Datadog. + +1. Instalar el cliente CLI de Datadog + + ```sh + npm install -g @datadog/datadog-ci @datadog/datadog-ci-plugin-lambda + ``` + +2. Si eres nuevo en Serverless Monitoring de Datadog, lanza la CLI de Datadog en modo interactivo para guiar tu primera instalación para un inicio rápido, y puedes ignorar los pasos restantes. Para instalar Datadog de forma permanente en tus aplicaciones de producción, omite este paso y sigue los restantes para ejecutar el comando de la CLI de Datadog en tus pipelines de CI/CD _después_ de tu despliegue normal. + + ```sh + datadog-ci lambda instrument -i + ``` + +3. Configura las credenciales de AWS + + La CLI de Datadog requiere acceso al servicio AWS Lambda y depende del SDK de JavaScript de AWS para [resolver las credenciales][1]. Asegúrate de que tus credenciales de AWS estén configuradas utilizando el mismo método que usarías al invocar la CLI de AWS. + +4. Configura el sitio de Datadog + + ```sh + export DATADOG_SITE="" + ``` + + Replace `` with {{< region-param key="dd_site" code="true" >}} (asegúrate de que el SITIO correcto esté seleccionado a la derecha). + +5. Configura la clave de API de Datadog + + Datadog recomienda guardar la clave de API de Datadog en AWS Secrets Manager por seguridad y fácil rotación. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Asegúrate de que tus funciones Lambda tengan el `secretsmanager:GetSecretValue` permiso IAM requerido. + + ```sh + export DATADOG_API_KEY_SECRET_ARN="" + ``` + + For quick testing purposes, you can also set the Datadog API key in plaintext: + + ```sh + export DATADOG_API_KEY="" + ``` + +6. Instrumenta tus funciones Lambda + + **Nota**: ¡Instrumenta tus funciones Lambda primero en un entorno de desarrollo o de pruebas! Si el resultado de la instrumentación no es satisfactorio, ejecuta `uninstrument` con los mismos argumentos para revertir los cambios. + + Para instrumentar tus funciones Lambda, ejecuta el siguiente comando. + + ```sh + datadog-ci lambda instrument -f -f -r -v {{< latest-lambda-layer-version layer="node" >}} -e {{< latest-lambda-layer-version layer="extension" >}} + + +``` + + To fill in the placeholders: + - Replace `` and `` with your Lambda function names. Alternatively, you can use `--functions-regex` to automatically instrument multiple functions whose names match the given regular expression. + - Replace `` with the AWS region name. + + Additional parameters can be found in the [CLI documentation][2]. + + +[1]: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html +[2]: https://docs.datadoghq.com/es/serverless/serverless_integrations/cli +{{% /tab %}} +{{% tab "Serverless Framework" %}} + +
    Si en cambio estás desplegando tu aplicación Serverless Framework exportando nativamente un objeto JSON desde un archivo JavaScript (por ejemplo, utilizando un serverless.ts archivo), siga las instrucciones de instalación personalizadas.
    + +El [Plugin Serverless de Datadog][1] configura automáticamente sus funciones para enviar métricas, trazas y registros a Datadog a través de la [Extensión Lambda de Datadog][2]. + +Para instalar y configurar el Plugin Serverless de Datadog, siga estos pasos: + +1. Instale el Plugin Serverless de Datadog: + + ```sh + serverless plugin install --name serverless-plugin-datadog + ``` + +2. Actualice su `serverless.yml`: + + ```yaml + custom: + datadog: + site: + apiKeySecretArn: + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (asegúrate de que el SITIO correcto esté seleccionado a la derecha). + - Reemplace `` con el ARN del secreto de AWS donde se almacena de forma segura su [clave API de Datadog][3]. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puede usar `apiKey` y establecer la clave API de Datadog en texto plano. + + For more information and additional settings, see the [plugin documentation][1]. + +[1]: https://docs.datadoghq.com/es/serverless/serverless_integrations/plugin +[2]: https://docs.datadoghq.com/es/serverless/libraries_integrations/extension +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "AWS SAM" %}} + +El [macro de CloudFormation de Datadog][1] transforma automáticamente su plantilla de aplicación SAM para instalar Datadog en sus funciones utilizando capas de Lambda, y configura sus funciones para enviar métricas, trazas y registros a Datadog a través de la [Extensión Lambda de Datadog][2]. + +1. Instale el macro de CloudFormation de Datadog + + Ejecute el siguiente comando con sus [credenciales de AWS][3] para implementar una pila de CloudFormation que instala el recurso macro de AWS. Solo necesita instalar el macro **una** vez para una región dada en su cuenta. Reemplace `create-stack` con `update-stack` para actualizar el macro a la última versión. + + ```sh + aws cloudformation create-stack \ + --stack-name datadog-serverless-macro \ + --template-url https://datadog-cloudformation-template.s3.amazonaws.com/aws/serverless-macro/latest.yml \ + --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM + ``` + + The macro is now deployed and ready to use. + +2. Instrumente sus funciones Lambda + + Agregue la transformación `DatadogServerless` **después** de la transformación `AWS::Serverless` en la sección `Transform` de su `template.yml` para SAM. + + ```yaml + Transform: + - AWS::Serverless-2016-10-31 + - Name: DatadogServerless + Parameters: + stackName: !Ref "AWS::StackName" + nodeLayerVersion: {{< latest-lambda-layer-version layer="node" >}} + extensionLayerVersion: {{< latest-lambda-layer-version layer="extension" >}} + site: "" + apiKeySecretArn: "" + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (asegúrate de que el SITIO correcto esté seleccionado a la derecha). + - Reemplace `` con el ARN del secreto de AWS donde se almacena de forma segura su [clave API de Datadog][4]. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puede usar `apiKey` en su lugar y establecer la clave API de Datadog en texto plano. + + More information and additional parameters can be found in the [macro documentation][1]. + + +[1]: https://docs.datadoghq.com/es/serverless/serverless_integrations/macro +[2]: https://docs.datadoghq.com/es/serverless/libraries_integrations/extension +[3]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html +[4]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} + +{{% tab "AWS CDK" %}} +{{< lambda-install-cdk language="node" layer="node" layerParamTypescript="nodeLayerVersion" layerParamPython="node_layer_version">}} +{{% /tab %}} + +{{% tab "Imagen de contenedor" %}} + +1. Instalar la biblioteca de Lambda de Datadog + + Empaquetar la biblioteca Lambda de Datadog y los SDK dentro de la imagen: + + ```sh + npm install datadog-lambda-js dd-trace + ``` + + Note that the minor version of the `datadog-lambda-js` package always matches the layer version. For example, `datadog-lambda-js v0.5.0` matches the content of layer version 5. + + You cannot install the Datadog Lambda Library as a layer if you are deploying your Lambda function as a container image. + +2. Instalar la extensión de Lambda de Datadog + + Agrega la extensión de Lambda de Datadog a tu imagen de contenedor añadiendo lo siguiente a tu Dockerfile: + + ```dockerfile + COPY --from=public.ecr.aws/datadog/lambda-extension: /opt/. /opt/ + ``` + + Replace `` with either a specific version number (for example, `{{< latest-lambda-layer-version layer="extension" >}}`) or with `último`. Alpine is also supported with specific version numbers (such as `{{< latest-lambda-layer-version layer="extension" >}}-alpine`) or with `último-alpine`. Puedes ver una lista completa de posibles etiquetas en el [repositorio de Amazon ECR][1]. + +3. Redirigir la función manejadora + + - Establecer el valor de `CMD` de tu imagen a `node_modules/datadog-lambda-js/dist/handler.handler`. Puedes establecer esto en AWS o directamente en tu Dockerfile. Ten en cuenta que el valor establecido en AWS anula el valor en el Dockerfile si estableces ambos. + - Establecer la variable de entorno `DD_LAMBDA_HANDLER` a tu manejador original, por ejemplo, `myfunc.handler`. + - Si estás usando ESModule con el contenedor, necesitarás eliminar el archivo `handler.js`. Este archivo existe para Node 12 y será eliminado cuando AWS deprecie el soporte para Node 12. + ```dockerfile + RUN rm node_modules/datadog-lambda-js/dist/handler.js + CMD ["node_modules/datadog-lambda-js/dist/handler.handler"] + ``` + + **Note**: If your Lambda function runs on `arm64`, you must either build your container image in an arm64-based Amazon Linux environment or [apply the Datadog wrapper in your function code][2] instead. You may also need to do that if you are using a third-party security or monitoring tool that is incompatible with the Datadog handler redirection. + +4. Configurar el sitio de Datadog y la clave de API + + - Establecer la variable de entorno `DD_SITE` a {{< region-param key="dd_site" code="true" >}} (asegúrate de que el SITIO correcto esté seleccionado a la derecha). + - Establecer la variable de entorno `DD_API_KEY_SECRET_ARN` con el ARN del secreto de AWS donde tu [clave de API de Datadog][3] está almacenada de forma segura. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puedes usar `DD_API_KEY` en su lugar y establecer la clave de API de Datadog en texto plano. + + +[1]: https://gallery.ecr.aws/datadog/lambda-extension +[2]: https://docs.datadoghq.com/es/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "Terraform" %}} + +El módulo de Terraform [`lambda-datadog`][1] envuelve el recurso [`aws_lambda_function`][2] y configura automáticamente su función Lambda para el Serverless Monitoring de Datadog mediante: + +- Agregando las capas de Lambda de Datadog +- Redirigiendo el controlador de Lambda +- Habilitando la recolección y el envío de métricas, trazas y registros a Datadog + +```tf +module "lambda-datadog" { + source = "DataDog/lambda-datadog/aws" + version = "4.0.0" + + environment_variables = { + "DD_API_KEY_SECRET_ARN" : "" + "DD_ENV" : "" + "DD_SERVICE" : "" + "DD_SITE": "" + "DD_VERSION" : "" + } + + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} + + # aws_lambda_function arguments +} +``` + +1. Reemplaza el recurso `aws_lambda_function` con el módulo de Terraform `lambda-datadog` y luego especifica el `source` y `version` del módulo. + +2. Establece los argumentos `aws_lambda_function`: + + Todos los argumentos disponibles en el recurso `aws_lambda_function` están disponibles en este módulo de Terraform. Los argumentos definidos como bloques en el recurso `aws_lambda_function` se redefinen como variables con sus argumentos anidados. + + Por ejemplo, en `aws_lambda_function`, `environment` se define como un bloque con un argumento `variables`. En el módulo de Terraform `lambda-datadog`, el valor para el `environment_variables` se pasa al argumento `environment.variables` en `aws_lambda_function`. Consulte [inputs][3] para una lista completa de variables en este módulo. + +3. Complete los marcadores de posición de las variables de entorno: + + - Reemplace `` con el ARN del secreto de AWS donde su clave de API de Datadog está almacenada de forma segura. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puede usar en su lugar la variable de entorno `DD_API_KEY` y establecer su clave de API de Datadog en texto plano. + - Reemplace `` con el entorno de la función Lambda, como `prod` o `staging` + - Reemplace `` con el nombre del servicio de la función Lambda + - Reemplace `` con {{< region-param key="dd_site" code="true" >}}. (Asegúrese de que el [sitio de Datadog][4] correcto esté seleccionado en esta página). + - Reemplace `` con el número de versión de la función Lambda + +4. Seleccione las versiones de la capa de extensión de Datadog Lambda y la capa de Datadog Node.js Lambda que desea utilizar. Por defecto, se utilizan las versiones más recientes de la capa. + +``` + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} +``` + +[1]: https://registry.terraform.io/modules/DataDog/lambda-datadog/aws/latest +[2]: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function +[3]: https://github.com/DataDog/terraform-aws-lambda-datadog?tab=readme-ov-file#inputs +[4]: /es/getting_started/site/ +{{% /tab %}} +{{% tab "SST v3" %}} + +Para configurar Datadog usando SST v3, siga estos pasos: + + ```ts + const app = new sst.aws.Function("MyApp", { + handler: "index.handler", + nodejs : { + install: [ + "datadog-lambda-js", + "dd-trace", + ] + }, + environment: { + DD_ENV: "", + DD_SERVICE: "", + DD_VERSION: "", + DATADOG_API_KEY_SECRET_ARN: "", + DD_SITE: "", + }, + layers: [ + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}}`, + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}}` + ] + }); + ``` + + 1. Configure the Datadog Lambda Library and Datadog Lambda Extension layers + + - The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + 2. Agregue `dd-trace` y `datadog-lambda-js` a la lista `nodejs.install` + + 3. Complete los marcadores de posición de las variables de entorno: + + - Reemplace `` con el ARN del secreto de AWS donde su clave de API de Datadog está almacenada de forma segura. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puede usar en su lugar la variable de entorno `DD_API_KEY` y establecer su clave de API de Datadog en texto plano. + - Reemplace `` con el entorno de la función Lambda, como `prod` o `staging` + - Reemplace `` con el nombre del servicio de la función Lambda + - Reemplace `` con {{< region-param key="dd_site" code="true" >}}. (Asegúrese de que el [sitio de Datadog][1] correcto esté seleccionado en esta página) + - Reemplace `` con el número de versión de la función Lambda + + 4. [Aplique el envoltorio de Datadog en su código de función][2] + +[1]: /es/getting_started/site/ +[2]: https://docs.datadoghq.com/es/serverless/guide/handler_wrapper +{{% /tab %}} +{{% tab "Personalizado" %}} + +
    Si no está utilizando una herramienta de desarrollo serverless que Datadog soporte, como el Serverless Framework o AWS CDK, Datadog le anima encarecidamente a instrumentar sus aplicaciones Serverless con el CLI de Datadog.
    + +1. Instale la biblioteca de Lambda de Datadog + + La biblioteca de Lambda de Datadog se puede importar ya sea como una capa (recomendada) _O_ como un paquete de JavaScript. + + La versión menor del paquete `datadog-lambda-js` siempre coincide con la versión de la capa. Por ejemplo, datadog-lambda-js v0.5.0 coincide con el contenido de la versión de la capa 5. + + - Opción A: [Configure las capas][1] para su función Lambda usando el ARN en el siguiente formato: + + ```sh + # Use this format for AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + + # Use this format for AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + ``` + + Replace `` with a valid AWS region such as `us-east-1`. The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + - Option B: If you cannot use the prebuilt Datadog Lambda layer, alternatively you can install the packages `datadog-lambda-js` and `dd-trace` using your favorite package manager. + + ``` + npm install datadog-lambda-js dd-trace + ``` + +2. Instale la Lambda Extension de Datadog + + [Configure las capas][1] para su función Lambda usando el ARN en el siguiente formato: + + ```sh + # Use this format for x86-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for x86-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + +``` + + Replace `` with a valid AWS region, such as `us-east-1`. + +3. Redirija la función manejadora + + - Establezca el manejador de su función a `/opt/nodejs/node_modules/datadog-lambda-js/handler.handler` si usa la capa, o `node_modules/datadog-lambda-js/dist/handler.handler` si usa el paquete. + - Establezca la variable de entorno `DD_LAMBDA_HANDLER` a su manejador original, por ejemplo, `myfunc.handler`. + + **Nota**: Si su función Lambda se ejecuta en `arm64` y la `datadog-lambda-js` biblioteca está instalada como un paquete NPM (opción B del paso 1), debe [aplicar el envoltorio de Datadog en su código de función][2] en su lugar. También podría ser necesario hacerlo si está utilizando una herramienta de seguridad o monitoreo de terceros que es incompatible con la redirección del manejador de Datadog. + +4. Configure el sitio de Datadog y la clave de API + + - Establezca la variable de entorno `DD_SITE` a {{< region-param key="dd_site" code="true" >}} (Asegúrese de que el SITIO correcto esté seleccionado a la derecha). + - Establezca la variable de entorno `DD_API_KEY_SECRET_ARN` con el ARN del secreto de AWS donde su [clave de API de Datadog][3] está almacenada de forma segura. La clave debe ser almacenada como una cadena de texto sin formato (no un objeto JSON). Se requiere el permiso `secretsmanager:GetSecretValue`. Para pruebas rápidas, puede usar `DD_API_KEY` en su lugar y establecer la clave de API de Datadog en texto plano. + +[1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html +[2]: https://docs.datadoghq.com/es/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{< /tabs >}} + +{{% svl-tracing-env %}} + +
    No instale la biblioteca de Lambda de Datadog como una capa y como un paquete de JavaScript. Si instaló la biblioteca de Lambda de Datadog como una capa, no incluya datadog-lambda-js en su package.json, o instálelo como una dependencia de desarrollo y ejecute npm install --production antes de desplegar.
    + +## Cumplimiento de FIPS {#fips-compliance} + +{{% svl-lambda-fips %}} + +## AWS Lambda y VPC {#aws-lambda-and-vpc} + +{{% svl-lambda-vpc %}} + +## ¿Qué sigue? {#whats-next} + +- Agregue etiquetas personalizadas a su telemetría utilizando la variable de entorno `DD_TAGS` +- Configure [la recolección de payloads][12] para capturar los payloads de solicitud y respuesta JSON de sus funciones. +- Si está utilizando la Lambda Extension de Datadog, desactive los registros de Lambda del Forwarder de Datadog +- Consulte [Configurar Serverless Monitoring para AWS Lambda][3] para obtener más información sobre las capacidades. + +### Realice el seguimiento de la lógica de negocio personalizada {#monitor-custom-business-logic} + +Para realizar el seguimiento de su lógica de negocio personalizada, envíe una métrica o un tramo personalizado utilizando el código de muestra a continuación. Para opciones adicionales, consulte [la presentación de métricas personalizadas para aplicaciones serverless][4] y la guía de APM para [instrumentación personalizada][5]. + +```javascript +const { sendDistributionMetric, sendDistributionMetricWithDate } = require('datadog-lambda-js'); +const tracer = require('dd-trace'); + +// submit a custom span named "sleep" +const sleep = tracer.wrap('sleep', (ms) => { + return new Promise((resolve) => setTimeout(resolve, ms)); +}); + +exports.handler = async (event) => { + // add custom tags to the lambda function span, + // does NOT work when X-Ray tracing is enabled + const span = tracer.scope().active(); + span.setTag('customer_id', '123456'); + + await sleep(100); + + // submit a custom span + const sandwich = tracer.trace('hello.world', () => { + console.log('Hello, World!'); + }); + + // submit a custom metric + sendDistributionMetric( + 'coffee_house.order_value', // metric name + 12.45, // metric value + 'product:latte', // tag + 'order:online' // another tag + ); + + const response = { + statusCode: 200, + body: JSON.stringify('Hello from serverless!') + }; + return response; +}; +``` + +## Lectura Adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/functions +[2]: /es/serverless/guide/troubleshoot_serverless_monitoring/ +[3]: /es/serverless/configuration/ +[4]: /es/serverless/custom_metrics?tab=nodejs +[5]: /es/tracing/custom_instrumentation/nodejs/ +[6]: /es/security/application_security/serverless/ +[7]: https://github.com/DataDog/datadog-lambda-extension +[8]: https://github.com/DataDog/datadog-lambda-extension/issues +[9]: /es/serverless/aws_lambda/distributed_tracing/#span-auto-linking +[10]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html +[11]: /es/serverless/aws_lambda/remote_instrumentation +[12]: /es/serverless/aws_lambda/configuration?tab=datadogcli#collect-the-request-and-response-payloads \ No newline at end of file diff --git a/content/es/session_replay/_index.md b/content/es/session_replay/_index.md new file mode 100644 index 00000000000..f421b5a18ed --- /dev/null +++ b/content/es/session_replay/_index.md @@ -0,0 +1,139 @@ +--- +aliases: +- /es/real_user_monitoring/guide/session-replay-getting-started/ +- /es/real_user_monitoring/session_replay/ +- /es/product_analytics/session_replay/ +- /es/real_user_monitoring/session_replay/developer_tools +- /es/real_user_monitoring/session_replay/browser/developer_tools +- /es/product_analytics/session_replay/browser/developer_tools +description: Aprende cómo capturar y reproducir visualmente la experiencia de navegación + web o de aplicaciones móviles de tus usuarios con la reproducción de sesión. +further_reading: +- link: https://www.datadoghq.com/blog/session-replay-datadog/ + tag: Blog + text: Utiliza la reproducción de sesión de Datadog para ver los recorridos de los + usuarios en tiempo real +- link: https://www.datadoghq.com/blog/reduce-customer-friction-funnel-analysis/ + tag: Blog + text: Utiliza el análisis de embudos para comprender y optimizar los flujos clave + de usuarios +- link: https://www.datadoghq.com/blog/zendesk-session-replay-integration/ + tag: Blog + text: Reproduce visualmente los problemas que enfrentan los usuarios con Zendesk + y la Reproducción de Sesiones de Datadog +- link: /real_user_monitoring/explorer + tag: Documentación + text: Visualiza tus datos de RUM en el Explorador +- link: /integrations/content_security_policy_logs + tag: Documentación + text: Detecta y agrega violaciones de CSP con Datadog +- link: https://learn.datadoghq.com/courses/intro-to-rum + tag: Centro de Aprendizaje + text: Introducción a la Monitorización de Usuarios Reales (RUM) +title: Reproducción de sesión +--- +## Descripción General {#overview} + +La reproducción de sesión amplía tu monitoreo de la experiencia del usuario al permitirte capturar y reproducir visualmente la experiencia de navegación web o de aplicaciones móviles de tus usuarios. La reproducción de sesión está disponible tanto en [RUM][1] como en [Product Analytics][2], ayudándote a identificar y reproducir errores, comprender los recorridos de los usuarios y obtener información sobre los patrones de uso y las fallas de diseño de tu aplicación. + +## Reproducción de sesión del navegador {#browser-session-replay} + +La reproducción de sesión del navegador amplía tu monitoreo de la experiencia del usuario al permitirte capturar y reproducir visualmente la experiencia de navegación web de tus usuarios. Combinada con los datos de rendimiento de RUM, la reproducción de sesión es beneficiosa para la identificación, reproducción y resolución de errores, y proporciona información sobre los patrones de uso y las fallas de diseño de tu aplicación web. + +El SDK del Navegador RUM es [código abierto][3] y aprovecha el proyecto de código abierto [rrweb][4]. + +Aprende más sobre la [reproducción de sesión para navegadores][5]. + +## Reproducción de sesión móvil {#mobile-session-replay} + +La reproducción de sesión móvil amplía la visibilidad de tus aplicaciones móviles al reproducir visualmente cada interacción del usuario, como toques, deslizamientos y desplazamientos. Está disponible para aplicaciones nativas tanto en Android como en iOS. Reproducir visualmente las interacciones del usuario en tus aplicaciones facilita la reproducción de fallos y errores, así como entender el recorrido del usuario para realizar mejoras en la interfaz de usuario. + +Aprende más sobre la [reproducción de sesión para móviles][6]. + +## Resúmenes impulsados por IA y capítulos inteligentes {#ai-powered-summaries-and-smart-chapters} + +{{< site-region region="gov,gov2" >}}
    Esta función no es compatible con tu sitio Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
    {{< /site-region >}} + +Los resúmenes y capítulos inteligentes te brindan contexto sobre lo que sucedió en una sesión antes de que la veas. + +**Los resúmenes** describen la intención del usuario, acciones clave, señales de fricción y resultado. Momentos específicos en el resumen están hipervinculados para que puedas saltar directamente a ese punto en la reproducción. En la lista de sesiones, pasa el cursor sobre una reproducción para previsualizar el resumen, o abre la reproducción directamente. Si una sesión ha sido resumida antes, el resumen aparece instantáneamente cuando abres la reproducción. + +{{< img src="real_user_monitoring/session_replay/session-replay-ai-summary.png" alt="Resumen impulsado por IA en el reproductor de reproducción de sesión, mostrando la intención del usuario, acciones clave, señales de fricción y momentos hipervinculados." style="width:100%;" >}} + +**Los capítulos inteligentes** segmentan automáticamente la línea de tiempo de la reproducción en etapas etiquetadas del recorrido del usuario. Por ejemplo, en una sesión de comercio electrónico, los capítulos podrían incluir "Explorar iluminación", "Comprar ropa de cama y sillas", y "Revisar carrito y pagar". Los capítulos aparecen cuando pasas el cursor sobre la línea de tiempo y en el menú desplegable de los controles del reproductor, permitiéndote saltar directamente entre ellos. + +{{< img src="real_user_monitoring/session_replay/session-replay-smart-chapters.png" alt="Menú desplegable de capítulos inteligentes en el reproductor de reproducción de sesión mostrando etapas etiquetadas del recorrido del usuario." style="width:100%;" >}} + +Los resúmenes impulsados por IA y los capítulos inteligentes se generan para sesiones con al menos cuatro acciones de usuario y una duración de al menos 45 segundos. + +## Comentarios {#comments} + +{{< site-region region="gov,gov2" >}}
    Esta función no es compatible con tu sitio Datadog seleccionado ({{< region-param key="dd_site_name" >}}). Si requiere esta capacidad, comuníquese con Soporte de Datadog.
    {{< /site-region >}} + +Los comentarios de la reproducción de sesión permiten a su equipo colaborar en errores, problemas de usabilidad y otras observaciones directamente dentro de una reproducción. + +Con los comentarios, usted puede: + +- Agregar un comentario en un momento específico de la línea de tiempo de la reproducción. Los marcadores de comentarios aparecen en la línea de tiempo y en la pestaña de **Comentarios**. +- @mencionar a un compañero de equipo o a un equipo en un comentario. Los usuarios etiquetados reciben una notificación por correo electrónico con un enlace que abre la reproducción en el momento comentado. +- Copiar un enlace a cualquier comentario y compartirlo externamente. El enlace abre la reproducción en el momento anotado con ese hilo de comentarios abierto. +- Responder en el hilo para colaborar dentro de una reproducción, y editar o eliminar sus propios comentarios según sea necesario. + +{{< img src="real_user_monitoring/session_replay/session-replay-comments.png" alt="Reproductor de reproducción de sesión con comentarios con marca de tiempo en la línea de tiempo y una pestaña de Comentarios abierta con respuestas en hilo." style="width:100%;" >}} + +Para encontrar reproducciones que necesiten su atención, use las listas de reproducción predeterminadas de **Todas las menciones a mí** y **Reproducciones comentadas**. Vea [Listas de reproducción de sesión][7] para más detalles. + +## Extender la retención de datos {#extend-data-retention} + +Por defecto, los datos de reproducción de sesión se retienen durante 30 días. + +Para extender la retención de datos de reproducción de sesión a 15 meses, puede habilitar _Retención Extendida_ en reproducciones de sesiones individuales. Estas sesiones deben ser no activas (el usuario ha completado su experiencia). + +Para acceder a cualquier reproducción de sesión en un momento posterior, Datadog recomienda guardar la URL o agregarla a una [Lista de reproducción][7]. + +La Retención Extendida solo se aplica a la Reproducción de Sesión y no incluye los eventos asociados. Los 15 meses comienzan cuando se habilita la Retención Extendida, no cuando se recopila la sesión. + +Puedes desactivar la Retención Extendida en cualquier momento. Si la reproducción de la sesión aún está dentro de su período predeterminado de retención de 30 días, la reproducción expira al final de la ventana inicial de 30 días. Si desactivas la Retención Extendida en una reproducción de sesión que tiene más de 30 días, la reproducción expira de inmediato. + +{{< img src="real_user_monitoring/session_replay/extended-retention-1.png" alt="Habilitar retención extendida" style="width:100%;" >}} + +Consulta el diagrama a continuación para entender qué datos se retienen con la retención extendida. + +{{< img src="real_user_monitoring/session_replay/replay-extended-retention-1.png" alt="Diagrama de qué datos se retienen con la retención extendida" style="width:100%;" >}} + +## Historial de reproducciones {#playback-history} + +Puedes ver quién ha visto una reproducción de sesión dada haciendo clic en el conteo de **visto** que se muestra en la página del reproductor. Esta función te permite verificar si alguien con quien deseas compartir la grabación ya la ha visto. + +{{< img src="real_user_monitoring/session_replay/session-replay-playback-history.png" alt="Verifica quién ha visto la grabación de una sesión" style="width:100%;" >}} + +El historial incluye solo las reproducciones que ocurrieron en la página del reproductor o en un reproductor embebido, como en un [Notebook][8] o panel lateral. Las reproducciones incluidas también generan un evento de [Audit Trail][9]. Las vistas previas en miniatura no están incluidas en el historial. + +Para ver tu propio historial de reproducciones, consulta la lista de reproducción de [Mi Historial de Visualización][10]. + +## Listas de reproducción {#playlists} + +Puedes crear una lista de reproducción de Reproducciones de Sesión para organizarlas según cualquier patrón que notes. Aprende más sobre [Listas de Reproducción de Reproducciones de Sesión][7]. + +## Herramientas de Desarrollo {#dev-tools} + +Las Herramientas de Desarrollo son un panel de depuración integrado en la Reproducción de Sesión que expone información clave durante la reproducción. Úsalo para identificar problemas, rastrear solicitudes y entender cuellos de botella en el rendimiento, todo sin reproducir el problema tú mismo. Las herramientas de desarrollo están disponibles para sesiones de [RUM][1]. + +Aprenda más sobre las herramientas de desarrollo para [navegador][11] y [móvil][12]. + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/real_user_monitoring/ +[2]: /es/product_analytics/ +[3]: https://github.com/DataDog/browser-sdk +[4]: https://www.rrweb.io/ +[5]: /es/session_replay/browser/ +[6]: /es/session_replay/mobile/ +[7]: /es/session_replay/playlists +[8]: /es/notebooks/ +[9]: /es/account_management/audit_trail/ +[10]: /es/rum/replay/playlists/my-watch-history +[11]: /es/session_replay/browser/dev_tools/ +[12]: /es/session_replay/mobile/dev_tools/ \ No newline at end of file diff --git a/content/es/tests/_index.md b/content/es/tests/_index.md index 52415dec007..e6182b8eea0 100644 --- a/content/es/tests/_index.md +++ b/content/es/tests/_index.md @@ -4,55 +4,67 @@ aliases: - /es/continuous_integration/guides/test_configurations/ - /es/continuous_integration/integrate_tests/ - /es/continuous_integration/tests/ +- /es/tests/repositories/ +- /es/tests/search/ cascade: algolia: rank: 70 tags: - - test ci - - tests ci - - optimización de tests - - visibilidad de tests - - test fallido + - ci test + - ci tests + - test optimization + - test visibility + - failed test - flaky test - - funciones compatibles + - supported features site_support_id: test_optimization further_reading: +- link: https://learn.datadoghq.com/courses/getting-started-test-optimization + tag: Centro de Aprendizaje + text: Introducción a Test Optimization - link: https://app.datadoghq.com/release-notes?category=Software%20Delivery - tag: Notas de versiones - text: ¡Echa un vistazo a las últimas versiones de entrega de software! (Es necesario - iniciar sesión en la aplicación) + tag: Notas de la Versión + text: ¡Consulta las últimas versiones de Software Delivery! (Se requiere inicio + de sesión en la aplicación) - link: https://www.datadoghq.com/blog/datadog-ci-visibility/ tag: Blog - text: Monitoriza tus pipelines CI y tests con Datadog CI Visibility + text: Monitorea tus pipelines de CI y pruebas con Datadog CI Visibility - link: https://www.datadoghq.com/blog/ci-test-visibility-with-rum/ tag: Blog - text: Solución de problemas en tests de extremo a extremo con CI Visibility y RUM + text: Soluciona problemas de pruebas de extremo a extremo con CI Visibility y RUM - link: /monitors/types/ci/ tag: Documentación - text: Más información sobre monitores de tests de CI + text: Aprende sobre Monitores de Pruebas de CI - link: /tests/flaky_test_management/ tag: Documentación - text: Más información sobre gestión de tests defectuosos + text: Aprende sobre la Gestión de Pruebas Inestables - link: /tests/browser_tests/ tag: Documentación - text: Aprende a Instrumentar tus tests de navegador con RUM + text: Aprende cómo instrumentar tus pruebas de navegador con RUM - link: /tests/troubleshooting/ tag: Documentación - text: Aprende a solucionar problemas de optimización de tests + text: Aprende cómo solucionar problemas de Test Optimization - link: https://www.datadoghq.com/blog/gitlab-source-code-integration tag: Blog - text: Solucionar problemas más rápidamente con la integración de GitLab Source Code + text: Soluciona problemas más rápido con la integración de Código Fuente de GitLab en Datadog -title: Optimización de tests en Datadog +- link: https://www.datadoghq.com/blog/dbt-data-quality-testing + tag: Blog + text: Implementa verificaciones de calidad de datos de dbt con dbt-expectations +title: Test Optimization en Datadog --- +{{< learning-center-callout header="Intenta comenzar con Test Optimization en el Centro de Aprendizaje" btn_title="Inscríbete Ahora" btn_url="https://learn.datadoghq.com/courses/getting-started-test-optimization">}} + Aprende cómo acelerar tus pipelines de CI configurando el monitoreo de pruebas, identificando pruebas inestables y utilizando el Análisis de Impacto de Pruebas para ejecutar solo las pruebas que importan. +{{< /learning-center-callout >}} + -## Información general +## Resumen {#overview} -La [optimización de tests][1] ofrece una vista del estado de tu CI que prioriza los tests al mostrar métricas y resultados importantes de tus tests. Puede ayudarte a investigar los problemas de rendimiento y las fallas de tests que son más relevantes para tu trabajo, centrándose en el código del que eres responsable, en lugar de en los procesos que ejecutan tus pruebas. +[Test Optimization][1] proporciona una vista de prueba primero sobre la salud de tu CI al mostrar métricas importantes y resultados de tus pruebas. Puede ayudarte a investigar problemas de rendimiento y fallos de pruebas que son más relevantes para tu trabajo, enfocándose en el código del que eres responsable, en lugar de los pipelines que ejecutan tus pruebas. -## Instalación +## Configuración {#setup} -Selecciona una opción para configurar la optimización de tests en Datadog: +Selecciona una opción para configurar Test Optimization en Datadog: {{< card-grid card_width="75px" >}} {{< image-card href="/tests/setup/dotnet/" src="integrations_logos/dotnet_avatar.svg" alt=".net" >}} @@ -62,125 +74,125 @@ Selecciona una opción para configurar la optimización de tests en Datadog: {{< image-card href="/tests/setup/ruby/" src="integrations_logos/ruby_avatar.svg" alt="ruby" >}} {{< image-card href="/tests/setup/swift/" src="integrations_logos/swift_avatar.svg" alt="swift" >}} {{< image-card href="/tests/setup/go/" src="integrations_logos/golang-avatar.png" alt="go" >}} - {{< image-card href="/tests/setup/junit_xml/" src="integrations_logos/junit_xml.png" alt="upload junit tests to datadog" >}} + {{< image-card href="/tests/setup/junit_xml/" src="integrations_logos/junit_xml.png" alt="subir pruebas junit a datadog" >}} {{< /card-grid >}}
    -Además de los tests, la optimización de tests proporciona visibilidad para toda la fase de tests de tu proyecto. +Además de las pruebas, Test Optimization proporciona visibilidad sobre toda la fase de pruebas de tu proyecto. -### Funciones compatibles +### Características soportadas {#supported-features} -| | .NET | Java/JVM‑based | JavaScript | Python | Ruby | Swift | Go | JUnit Xml | +| | .NET | Java/JVM‑basado | Javascript | Python | Ruby | Swift | Go | JUnit Xml | |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------:|:--------------------:|:----------------------:|:---------:|:---------------------:|:---------:|:---------:|:----------------------:| -| {{< ci-details title="Resultados precisos de tiempo/duración" >}}Resolución de microsegundos en el tiempo de inicio y duración del test.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Trazas distribuidas en tests de integración" >}}Los tests que realizan llamadas a servicios externos instrumentados con Datadog muestran la traza (trace) distribuida completa en tus detalles del test.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Informes basados ​​en el Agent" >}}Capacidad de brindar información de tests a través del Datadog Agent.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Informes sin Agent" >}}Capacidad de brindar información de tests sin el Datadog Agent.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | -| {{< ci-details title="Visibilidad a nivel de conjunto de tests" >}}Visibilidad para todo el proceso de prueba, incluidas sesiones, módulos, conjuntos y tests.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | -| {{< ci-details title="API manual" >}}Capacidad de crear mediante programación eventos de visibilidad de CI para frameworks de test que no son compatibles con la instrumentación automática de Datadog.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | -| {{< ci-details title="Propietario de código por test" >}}Detección automática del propietario de un archivo de test basado en el archivo CODEOWNERS.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} (parcialmente) | -| {{< ci-details title="Inicio/fin del código fuente" >}}Informe automático de las líneas de inicio y final de un test.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} (solo inicio) | {{< X >}} | {{< X >}} (solo inicio)| {{< X >}} | {{< X >}} | {{< X >}} (solo inicio) | -| {{< ci-details title="CI e información de Git" >}}Recopilación automática de metadatos del entorno de Git y CI, como el proveedor de CI, el SHA de confirmación de Git o la URL del pipeline.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | -| {{< ci-details title="Carga de metadatos de Git" >}}Carga automática de la información del árbol de Git utilizada para el Análisis del impacto de los tests.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | -| {{< ci-details title="Análisis del impacto de tests*" >}}Capacidad para habilitar el Análisis del impacto de los tests, que omite de forma inteligente los tests en función de la cobertura del código y los metadatos de Git.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Soporte de cobertura de código" >}}Capacidad para brindar información de las métricas de cobertura de código total.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} (manual) | -| {{< ci-details title="Soporte de tests de referencia" >}}Detección automática de estadísticas de rendimiento para tests de referencia.{{< /ci-details >}} | {{< X >}} | | | {{< X >}} | | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Tests parametrizados" >}}Detección automática de tests parametrizados.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | -| {{< ci-details title="Detección temprana de defectos*" >}}Repetir tests nuevos automáticamente para detectar defectos.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Repetir tests automáticamente*" >}}Repetir tests fallidos automáticamente hasta N veces para evitar que la compilación falle debido a defectos en los tests.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | -| {{< ci-details title="Failed test replay *" >}}Acceder a información local variable en tests fallidos reintentados.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | | | -| {{< ci-details title="Integración de Selenium RUM" >}}Vincular sesiones del navegador a casos de testsautomáticamente al probar aplicaciones instrumentadas con RUM.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | +| {{< ci-details title="Resultados precisos de tiempo/duraciones" >}}Resolución en microsegundos en el tiempo de inicio de la prueba y duración.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Trazas distribuidas en pruebas de integración" >}}Las pruebas que realizan llamadas a servicios externos instrumentados con Datadog muestran la traza distribuida completa en los detalles de su prueba.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Informes basados en agentes" >}}Capacidad para informar información de pruebas a través del Agente de Datadog.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Informes sin agente" >}}Capacidad para informar información de pruebas sin el Agente de Datadog.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| {{< ci-details title="Visibilidad a nivel de conjunto de pruebas" >}}Visibilidad sobre todo el proceso de prueba, incluyendo sesión, módulo, conjuntos de pruebas y pruebas.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| {{< ci-details title="API manual" >}}Capacidad para crear eventos de CI Visibility programáticamente para frameworks de prueba que no son compatibles con la instrumentación automática de Datadog.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | +| {{< ci-details title="Propietario de código por prueba" >}}Detección automática del propietario de un archivo de prueba basado en el archivo CODEOWNERS.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} (parcialmente) | +| {{< ci-details title="Inicio/final del código fuente" >}}Informe automático de las líneas de inicio y final de una prueba.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} (solo inicio) | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} (solo inicio) | +| {{< ci-details title="Información de CI y git" >}}Colección automática de metadatos del entorno de git y CI, como proveedor de CI, SHA de commit de git o URL de pipeline.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| {{< ci-details title="Carga de metadatos de git" >}}Carga automática de información del árbol de git utilizada para Test Impact Analysis.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| {{< ci-details title="Test Impact Analysis *" >}}Capacidad para habilitar Test Impact Analysis, que omite inteligentemente pruebas basadas en la cobertura de código y metadatos de git.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Soporte de cobertura de código" >}}Capacidad para reportar métricas de cobertura total de código.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} (manual) | +| {{< ci-details title="Soporte para pruebas de referencia" >}}Detección automática de estadísticas de rendimiento para pruebas de referencia.{{< /ci-details >}} | {{< X >}} | | | {{< X >}} | | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Pruebas parametrizadas" >}}Detección automática de pruebas parametrizadas.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | +| {{< ci-details title="Detección temprana de fallos *" >}}Automáticamente reintentar nuevas pruebas para detectar inestabilidad.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Reintentos automáticos de pruebas *" >}}Automáticamente reintentar pruebas fallidas hasta N veces para evitar que la construcción falle debido a inestabilidad en las pruebas.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | +| {{< ci-details title="Reproducción de pruebas fallidas *" >}}Acceder a información de variables locales en pruebas fallidas reintentadas.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | | | +| {{< ci-details title="Integración de Selenium RUM" >}}Automáticamente vincula sesiones del navegador a casos de prueba al probar aplicaciones instrumentadas con RUM.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | | | -\* Esta función es opcional y debe activarse en la [página **Test Optimization Settings**][2] (Configuración de Test Optimization). +\* La función es opcional y debe habilitarse en la página de [**Test Optimization Settings**][2]. -## Configuraciones por defecto +## Configuraciones predeterminadas {#default-configurations} -Los tests evalúan el comportamiento del código para un conjunto de condiciones dadas. Algunas de esas condiciones están relacionadas con el entorno en el que se ejecutan los tests, como el sistema operativo o el entorno de ejecución utilizado. El mismo código ejecutado bajo diferentes conjuntos de condiciones puede comportarse de manera diferente, por lo que los desarrolladores generalmente configuran sus tests para que se ejecuten en diferentes conjuntos de condiciones y validan que el comportamiento sea el esperado para todas ellas. Este conjunto específico de condiciones se denomina *configuración*. +Las pruebas evalúan el comportamiento del código para un conjunto de condiciones dadas. Algunas de esas condiciones están relacionadas con el entorno donde se ejecutan las pruebas, como el sistema operativo o el sistema de ejecución utilizado. El mismo código ejecutado bajo diferentes conjuntos de condiciones puede comportarse de manera diferente, por lo que los desarrolladores suelen configurar sus pruebas para ejecutarse en diferentes conjuntos de condiciones y validar que el comportamiento sea el esperado en todos ellos. Este conjunto específico de condiciones se llama *configuración*. -En la optimización de tests, un test con varias configuraciones se trata como varios tests con un test independiente para cada configuración. En el caso de que una de las configuraciones falle, pero las otras no, solo esa combinación específica de test y configuración se marca como fallida. +En Test Optimization, una prueba con múltiples configuraciones se trata como múltiples pruebas, con una prueba separada para cada configuración. En el caso de que una de las configuraciones falle pero las otras pasen, solo esa combinación específica de prueba y configuración se marca como fallida. -Por ejemplo, supongamos que estás probando una única confirmación y tienes un test de Python que se ejecuta en tres versiones diferentes de Python. Si el test falla en una de esas versiones, ese test específico se marca como fallido, mientras que las otras versiones se marcan como aprobadas. Si repites los tests en la misma confirmación y ahora el test para las tres versiones de Python no falla, el test con la versión que falló anteriormente se marcará como aprobado y con defectos, mientras que las otras dos versiones permanecen aprobadas, sin que se detecte ninguna falla. +Por ejemplo, supongamos que estás probando un solo commit y tienes una prueba en Python que se ejecuta contra tres versiones diferentes de Python. Si la prueba falla para una de esas versiones, esa prueba específica se marca como fallida, mientras que las otras versiones se marcan como pasadas. Si vuelves a intentar las pruebas contra el mismo commit y ahora la prueba para las tres versiones de Python pasa, la prueba con la versión que falló anteriormente se marca ahora como pasada e inestable, mientras que las otras dos versiones permanecen pasadas, sin detectar inestabilidad. -### Probar los atributos de configuración +### Atributos de configuración de prueba {#test-configuration-attributes} -Cuando ejecutas tus tests con la optimización de tests, la biblioteca detecta e informa sobre el entorno en el que se ejecutan los tests como etiquetas (tags) de test. Por ejemplo, el nombre del sistema operativo, como `Windows` o `Linux`, y la arquitectura de la plataforma, como `arm64` o `x86_64`, se agregan como etiquetas en cada test. Estos valores se muestran en las páginas de confirmación y de información general de la rama cuando un test falla o es defectuoso para una configuración específica, pero no para otras. +Cuando ejecutas tus pruebas con Test Optimization, la biblioteca detecta e informa información sobre el entorno donde se ejecutan las pruebas como etiquetas de prueba. Por ejemplo, el nombre del sistema operativo, como `Windows` o `Linux`, y la arquitectura de la plataforma, como `arm64` o `x86_64`, se añaden como etiquetas en cada prueba. Estos valores se muestran en el commit y en las páginas de resumen de ramas cuando una prueba falla o es inestable para una configuración específica pero no para otras. -Las siguientes etiquetas se recopilan automáticamente para identificar configuraciones de test y algunas pueden aplicarse solo a plataformas específicas: +Las siguientes etiquetas se recopilan automáticamente para identificar configuraciones de prueba, y algunas pueden aplicarse solo a plataformas específicas: | Nombre de la etiqueta | Descripción | |------------------------|-----------------------------------------------------------------| -| `os.platform` | Nombre del sistema operativo en el que se ejecutan los tests. | -| `os.family` | Familia del sistema operativo donde se ejecutan los tests. | -| `os.version` | Versión del sistema operativo donde se ejecutan los tests. | -| `os.architecture` | Arquitectura del sistema operativo donde se ejecutan los tests. | -| `runtime.name` | Nombre del sistema de ejecución de los tests. | +| `os.platform` | Nombre del sistema operativo donde se ejecutan las pruebas. | +| `os.family` | Familia del sistema operativo donde se ejecutan las pruebas. | +| `os.version` | Versión del sistema operativo donde se ejecutan las pruebas. | +| `os.architecture` | Arquitectura del sistema operativo donde se ejecutan las pruebas. | +| `runtime.name` | Nombre del sistema de ejecución para las pruebas. | | `runtime.version` | Versión del sistema de ejecución. | -| `runtime.vendor` | Proveedor que compiló la plataforma de ejecución en la que se ejecutan los tests. | -| `runtime.architecture` | Arquitectura del sistema de ejecución de los tests. | -| `device.model` | El modelo de dispositivo que ejecuta los tests. | +| `runtime.vendor` | Proveedor que construyó la plataforma de ejecución donde se ejecutan las pruebas. | +| `runtime.architecture` | Arquitectura del sistema de ejecución para las pruebas. | +| `device.model` | El modelo de dispositivo que ejecuta las pruebas. | | `device.name` | Nombre del dispositivo. | -| `ui.appearance` | Estilo de la interfaz de usuario. | +| `ui.appearance` | Estilo de interfaz de usuario. | | `ui.orientation` | Orientación en la que se ejecuta la interfaz de usuario. | -| `ui.localization` | Lenguaje de la solicitud. | +| `ui.localization` | Idioma de la aplicación. | -### Configuraciones de tests parametrizados +### Configuraciones de prueba parametrizadas {#parameterized-test-configurations} -Cuando se ejecutan tests parametrizados, la biblioteca detecta y genera información sobre los parámetros utilizados. Los parámetros son parte de la configuración del test, por lo que el mismo caso de test ejecutado con diferentes parámetros se considera como dos pruebas diferentes en la optimización de tests. +Cuando ejecutas pruebas parametrizadas, la biblioteca detecta e informa sobre los parámetros utilizados. Los parámetros son parte de la configuración de prueba, por lo que el mismo caso de prueba ejecutado con diferentes parámetros se considera como dos pruebas diferentes en Test Optimization. -Si un parámetro de test no es determinista y tiene un valor diferente cada vez que se ejecuta un test, cada ejecución de test se considera un nuevo test en la optimización de tests. Como consecuencia, es posible que algunas funciones del producto no funcionen correctamente para dichos tests: historial de ejecuciones, detección de defectos, análisis del impacto de los tests y otras. +Si un parámetro de prueba es no determinista y tiene un valor diferente cada vez que se ejecuta una prueba, cada ejecución de prueba se considera una nueva prueba en Test Optimization. Como consecuencia, algunas características del producto pueden no funcionar correctamente para tales pruebas: historial de ejecuciones, detección de inestabilidad, Test Impact Analysis, y otras. -Algunos ejemplos de parámetros de test no deterministas son: +Algunos ejemplos de parámetros de prueba no deterministas son: - fecha actual - un valor aleatorio -- un valor que depende del entorno de ejecución del test (como una ruta de archivo absoluta o el nombre de usuario actual) -- un valor que no tiene una representación de cadena determinista (por ejemplo, una instancia de una clase Java cuyo método `toString()` no se anula) +- un valor que depende del entorno de ejecución de la prueba (como una ruta de archivo absoluta o el nombre de usuario actual) +- un valor que no tiene una representación de cadena determinista (por ejemplo, una instancia de una clase de Java cuyo `toString()` método no está sobreescrito) -Evita utilizar parámetros de test no deterministas. En caso de que esto no sea posible, algunos frameworks de test ofrecen una forma de especificar una representación de cadena determinista para un parámetro no determinista (como anular el nombre de visualización del parámetro). +Evita usar parámetros de prueba no deterministas. En caso de que esto no sea posible, algunos marcos de prueba proporcionan una forma de especificar una representación de cadena determinista para un parámetro no determinista (como sobreescribir el nombre de visualización del parámetro). -## Configuraciones personalizadas +## Configuraciones personalizadas {#custom-configurations} -Hay algunas configuraciones que no se pueden identificar directamente ni informar de forma automática porque pueden depender de variables de entorno, argumentos de ejecución de tests u otros enfoques que utilizan los desarrolladores. En esos casos, debes proporcionar los detalles de configuración a la biblioteca para que la optimización de tests pueda identificarlos correctamente. +Hay algunas configuraciones que no pueden ser identificadas y reportadas automáticamente porque pueden depender de variables de entorno, argumentos de ejecución de prueba u otros enfoques que los desarrolladores utilizan. Para esos casos, debe proporcionar los detalles de configuración a la biblioteca para que Test Optimization pueda identificarlos correctamente. -Define estas etiquetas como parte de la variable de entorno `DD_TAGS` con el prefijo `test.configuration`. +Defina estas etiquetas como parte de la `DD_TAGS` variable de entorno usando el prefijo `test.configuration`. -Por ejemplo, las siguientes etiquetas de configuración de test identifican una configuración de test donde el tiempo de respuesta del disco es lento y la memoria disponible es baja: +Por ejemplo, las siguientes etiquetas de configuración de prueba identifican una configuración de prueba donde el tiempo de respuesta del disco es lento y la memoria disponible es baja: {{< code-block lang="bash" >}} DD_TAGS=test.configuration.disk:slow,test.configuration.memory:low {{< /code-block >}} -Todas las etiquetas con el prefijo `test.configuration` se utilizan como etiquetas de configuración, además de las recopiladas automáticamente. +Todas las etiquetas con el prefijo `test.configuration` se utilizan como etiquetas de configuración, además de las que se recopilan automáticamente. -Nota: No se admiten las etiquetas `test.configuration` anidadas, como `test.configuration.cpu.memory`. +Nota: Las etiquetas `test.configuration` anidadas, como `test.configuration.cpu.memory`, no son compatibles. -Para filtrar utilizando estas etiquetas de configuraciones, [debes crear facetas para estas etiquetas][3]. +Para filtrar utilizando estas etiquetas de configuración, [debe crear facetas para estas etiquetas][3]. -## Mejora el flujo de trabajo de tu desarrollador +## Mejore su flujo de trabajo de desarrollador {#enhance-your-developer-workflow} -{{< whatsnext desc="Integrar Test Optimization con herramientas para informar datos de cobertura de código, mejorar tests de navegador con RUM y acceder a información entre plataformas al mejorar la identificación de problemas y la resolución en tu ciclo de desarrollo." >}} -{{< nextlink href="/tests/developer_workflows/" >}}Mejorar los procesos de desarrollo con Datadog{{< /nextlink >}} -{{< nextlink href="/tests/code_coverage" >}}Obtén información sobre Code Coverage{{< /nextlink >}} -{{< nextlink href="/tests/browser_tests" >}}Instrumentar tests de navegador de Cypress con Browser RUM{{< /nextlink >}} -{{< nextlink href="/tests/swift_tests" >}}Instrumentar tests de Swift con RUM{{< /nextlink >}} +{{< whatsnext desc="Integre Test Optimization con herramientas para informar datos de Code Coverage, mejore las pruebas de navegador con RUM y acceda a información a través de plataformas al agilizar la identificación y resolución de problemas en su ciclo de desarrollo." >}} +{{< nextlink href="/tests/developer_workflows/" >}}Mejorando los Flujos de Trabajo de Desarrolladores con Datadog{{< /nextlink >}} +{{< nextlink href="/tests/code_coverage" >}}Aprenda sobre Code Coverage{{< /nextlink >}} +{{< nextlink href="/tests/browser_tests" >}}Instrumente las pruebas de navegador Cypress con Browser RUM{{< /nextlink >}} +{{< nextlink href="/tests/swift_tests" >}}Instrumente las pruebas Swift con RUM{{< /nextlink >}} {{< /whatsnext >}} -## Utilizar los datos de los tests CI +## Utilice datos de pruebas de CI {#use-ci-tests-data} {{% ci-information-collected %}} -Al crear un [dashboard][4] o un [notebook][5], puedes utilizar datos de tests CI en tu consulta de búsqueda, lo que actualiza las opciones del widget de visualización. Para obtener más información, consulta la documentación de [Dashboards][6] y [Notebooks][7]. +Al crear un [dashboard][4] o un [notebook][5], puede utilizar datos de pruebas de CI en su consulta de búsqueda, lo que actualiza las opciones del widget de visualización. Para más información, consulte [Dashboards][6] y la [documentación de Notebooks][7]. -## Alertas sobre los datos de los tests +## Alerte sobre datos de pruebas {#alert-on-test-data} -Cuando estés evaluando tests fallidos o defectuosos, o el rendimiento de un test CI, puedes exportar tu consulta de búsqueda en el [Explorador de optimización de tests][8] a un [monitor de tests CI][9] haciendo clic en el botón **Export**. +Cuando esté evaluando pruebas fallidas o inestables, o el rendimiento de una prueba de CI, puede exportar su consulta de búsqueda en el [Test Optimization Explorer][8] a un [CI Test monitor][9] haciendo clic en el botón **Export**. -## Referencias adicionales +##  Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://app.datadoghq.com/ci/test-repositories +[1]: https://app.datadoghq.com/ci/test/health [2]: https://app.datadoghq.com/ci/settings/test-optimization [3]: /es/continuous_integration/explorer/facets/ [4]: https://app.datadoghq.com/dashboard/lists diff --git a/content/es/tracing/glossary/_index.md b/content/es/tracing/glossary/_index.md index 6e4016ec9eb..a3b5725db93 100644 --- a/content/es/tracing/glossary/_index.md +++ b/content/es/tracing/glossary/_index.md @@ -4,125 +4,123 @@ aliases: - /es/tracing/faq/what-is-the-difference-between-type-service-resource-and-name - /es/tracing/visualization/ description: Aprende la terminología esencial de APM, incluyendo servicios, recursos, - trazas (traces), tramos (spans), instrumentación y otros conceptos clave del rastreo - distribuido. + trazas, tramos, instrumentación y otros conceptos clave para el trazado distribuido. further_reading: - link: /tracing/trace_collection/ tag: Documentación - text: Aprende a configurar APM tracing con su aplicación -- link: /tracing/software_catalog/ + text: Aprenda cómo configurar el trazado de APM con su aplicación +- link: /internal_developer_portal/catalog/ tag: Documentación - text: Descubrir y catalogar los servicios de informes a Datadog + text: Descubra y catalogue los servicios que reportan a Datadog - link: /tracing/services/service_page/ tag: Documentación - text: Más información sobre servicios en Datadog + text: Aprenda más sobre los servicios en Datadog - link: /tracing/services/resource_page/ tag: Documentación - text: Profundiza en el rendimiento de tus recursos y trazas + text: Profundice en el rendimiento de sus recursos y trazas - link: /tracing/trace_explorer/trace_view/ tag: Documentación - text: Aprende a leer trazas en Datadog + text: Aprenda cómo leer una traza en Datadog - link: /monitors/types/apm/ tag: Documentación - text: Más información sobre los monitores APM -title: APM Términos y conceptos + text: Aprenda sobre los monitores de APM +title: Términos y conceptos de APM --- - {{< jqmath-vanilla >}} -## Información general +## Resumen {#overview} -La interfaz de usuario APM ofrece numerosas herramientas para solucionar problemas de rendimiento de las aplicaciones y correlacionarlos en todo el producto, lo que te permite encontrar y resolver problemas en sistemas distribuidos. +La interfaz de usuario de APM proporciona muchas herramientas para solucionar problemas de rendimiento de aplicaciones y correlacionarlos a lo largo del producto, permitiéndole encontrar y resolver problemas en sistemas distribuidos -Para más definiciones y descripciones de términos importantes de APM, como _spans_ e _indexed_, consulte el [glosario principal][22]. +Para definiciones y descripciones adicionales de términos importantes de APM como _tramos_ y _indexado_, consulte el [glosario principal][22] | Concepto | Descripción | |---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Servicio](#services) | Los servicios son los bloques de construcción de las modernas arquitecturas de micro servicios: en términos generales, un servicio agrupa endpoints, consultas o trabajos con el fin de construir tu aplicación. | -| [Recurso](#resources) | Los recursos representan un dominio concreto de una aplicación del cliente: suelen ser un endpoint web instrumentado, una consulta a una base de datos o un trabajo en segundo plano. | -| [Monitores][23] | Los monitores APM de métrica funcionan como los monitores de métrica normales, pero con controles adaptados específicamente a APM. Utiliza estos monitores para recibir alertas al nivel de servicio sobre aciertos, errores y una variedad en las medidas de latencia. | -| [Trazas](#trace) | Una traza se utiliza para realizar un seguimiento del tiempo empleado por una aplicación procesando una solicitud y el estado de esta solicitud. Cada traza consta de uno o varios tramos. | -| [Propagación de contexto de rastreo](#trace-context-propagation)| El método para pasar identificadores de traza entre servicios, lo que permite a Datadog juntar tramos individuales en una traza distribuida completa. | -| [Filtros de retención](#retention-filters) | Los filtros de retención son controles basados en etiquetas establecidos en la interfaz de usuario de Datadog que determinan qué tramos se indexar en Datadog durante 15 días. | -| [Controles de ingesta](#ingestion-controls) | Los controles de ingesta se utilizan para el envío de hasta el 100% de las trazas a Datadog para buscar en directo y analizar durante 15 minutos. -| [Instrumentación](#instrumentation) | La instrumentación es el proceso de añadir código a tu aplicación para capturar e informar los datos de observabilidad. | -| [Equipaje](#baggage) | El equipaje es información contextual que se pasa entre trazas, métricas y logs en forma de pares clave-valor. | +| [Los servicios](#services) | son los bloques de construcción de arquitecturas modernas de microservicios; en términos generales, un servicio agrupa puntos de conexión, consultas o trabajos con el propósito de construir su aplicación | +| [Los recursos](#resources) | representan un dominio particular de una aplicación del cliente; típicamente son un punto de conexión web instrumentado, una consulta de base de datos o un trabajo en segundo plano | +| [Monitores][23] | Los monitores de métricas de APM funcionan como monitores de métricas regulares, pero con controles adaptados específicamente a APM. Utilice estos monitores para recibir alertas a nivel de servicio sobre hits, errores y una variedad de medidas de latencia | +Una traza se utiliza para rastrear el tiempo que dedica una aplicación a procesar una solicitud y el estado de la misma Cada traza consiste en uno o más tramos. | +| [Propagación del contexto de trazas](#trace-context-propagation)| El método de pasar identificadores de traza entre servicios, permitiendo que Datadog una los tramos individuales en una traza distribuida completa | +| [Filtros de Retención](#retention-filters) | Los filtros de retención son controles basados en etiquetas establecidos dentro de la interfaz de usuario de Datadog que determinan qué tramos indexar en Datadog durante 15 días. | +| [Controles de Ingesta](#ingestion-controls) | Los controles de ingesta se utilizan para enviar hasta el 100% de las trazas a Datadog para búsqueda y análisis en vivo durante 15 minutos. +La instrumentación es el proceso de agregar código a su aplicación para capturar e informar datos de observabilidad | +| [Equipaje](#baggage) | El equipaje es información contextual que se pasa entre trazas, métricas y registros en forma de pares clave-valor. | -## Servicios +## Servicios {#services} -Después de [instrumentar tu aplicación][3], el [Software Catalog][4] es tu página de inicio principal para los datos de APM. +Después de [instrumentar su aplicación][3], el [Catálogo][4] es su página principal para los datos de APM. -{{< img src="tracing/visualization/software_catalog.png" alt="Software Catalog" >}} +{{< img src="tracing/visualization/software_catalog.png" alt="Catálogo" >}} -Los servicios son los componentes básicos de las arquitecturas de microservicios modernas: en términos generales, un servicio agrupa endpoints, consultas o trabajos con el fin de escalar instancias. Algunos ejemplos son: +Los servicios son los bloques de construcción de arquitecturas modernas de microservicios; en términos generales, un servicio agrupa puntos de conexión, consultas o trabajos con el propósito de escalar instancias Algunos ejemplos: -* Un grupo de endpoints de URL puede agruparse bajo un servicio de API. -* Un grupo de consultas a la base de datos que se agrupan dentro de un servicio de base de datos. +* Un grupo de puntos de conexión de URL puede agruparse bajo un servicio API +* Un grupo de consultas de base de datos que se agrupan dentro de un servicio de base de datos. * Un grupo de trabajos periódicos configurados en el servicio crond. -La siguiente captura de pantalla es un sistema distribuido de microservicios para un constructor de sitios de comercio electrónico. Hay `web-store`, `ad-server`, `payment-db` y `auth-service`, todos representados como servicios en APM. +La captura de pantalla a continuación es un sistema de microservicios distribuido para un constructor de sitios de comercio electrónico. Hay un `web-store`, `ad-server`, `payment-db` y `auth-service` todos representados como servicios en APM. -{{< img src="tracing/visualization/service_map.png" alt="Mapa de servicios" >}} +{{< img src="tracing/visualization/service_map.png" alt="Service Map" >}} -Todos los servicios pueden encontrarse en el [Software Catalog][4] y representarse visualmente en el [Mapa de servicios][5]. Cada servicio tiene su propia [Página de servicios][6] donde puedes ver y analizar [métricas de traza](#trace-metrics) como el rendimiento, la latencia y las tasas de error. Utiliza estas métricas para crear widgets de dashboard, monitores y ver el rendimiento de cada recurso, como un endpoint web o una consulta de base de datos perteneciente al servicio. +Todos los servicios se pueden encontrar en el [Catálogo][4] y se representan visualmente en el [Service Map][5]. Cada servicio tiene su propia [Página de Servicio][6] donde se pueden ver e inspeccionar métricas de [traza](#trace-metrics) como rendimiento, latencia y tasas de error. Utilice estas métricas para crear widgets de dashboard, crear monitores y ver el rendimiento de cada recurso, como un punto de conexión web o una consulta de base de datos perteneciente al servicio -{{< img src="tracing/visualization/service_page.mp4" video="true" alt="Página de servicios" >}} +{{< img src="tracing/visualization/service_page.mp4" video="true" alt="página de servicio" >}}
    -¿No ves los endpoints HTTP que esperabas en la Página de servicios? En APM, los endpoints están conectados a un servicio por algo más que el nombre de servicio. También se conectan con el `span.name` del tramo de punto de entrada de la traza. Por ejemplo, en el servicio de tienda web anterior, `web.request` es el tramo del punto de entrada. Más información al respecto aquí. +¿No ve los puntos de conexión HTTP que esperaba en la Página de Servicio? En APM, los puntos de conexión están conectados a un servicio por algo más que el nombre del servicio También se realiza mediante el `span.name` del span de punto de entrada de la traza Por ejemplo, en el servicio de tienda web anterior, `web.request` es el span de punto de entrada. Más información sobre esto aquí.
    -## Recursos +## Recursos {#resources} -Los recursos representan un dominio particular de una aplicación del cliente. Por lo general, pueden ser un endpoint web instrumentado, una consulta de base de datos o un trabajo en segundo plano. En un servicio web, estos recursos pueden ser endpoints web dinámicos agrupados por un nombre de tramo estático: `web.request`. En un servicio de base de datos, serían consultas de base de datos con el nombre de tramo `db.query`. Por ejemplo, el servicio `web-store` tiene recursos instrumentados automáticamente (endpoints web) que gestionan las compras, actualizan los carritos, añaden artículos, etc. Un nombre de recurso puede ser el método HTTP y la ruta HTTP, por ejemplo `GET /productpage` o `ShoppingCartController#checkout`. +Los recursos representan un dominio particular de una aplicación del cliente. Podrían ser típicamente un punto de conexión web instrumentado, una consulta a la base de datos o un trabajo en segundo plano Para un servicio web, estos recursos pueden ser puntos de conexión web dinámicos que se agrupan por un nombre de span estático - `web.request` En un servicio de base de datos, estos serían consultas a la base de datos con el nombre de span `db.query`. Por ejemplo, el servicio `web-store` ha instrumentado automáticamente recursos: puntos de conexión web que manejan pagos, actualizaciones de carritos, adición de artículos, y así sucesivamente Un nombre de recurso puede ser el método HTTP y la ruta HTTP, por ejemplo `GET /productpage` o `ShoppingCartController#checkout`. -Cada recurso tiene su propia [Página de recursos][7] con [métricas de traza][15] para el endpoint específico. Las métricas de traza pueden utilizarse como cualquier otra métrica de Datadog, son exportables a un dashboard o pueden utilizarse para crear monitores. La Página de recursos también muestra el widget de resumen del tramo con una vista agregada de [tramos][21] para todas las [trazas](#trace), distribución de latencia de las solicitudes y trazas que muestran las solicitudes realizadas a este endpoint. +Cada recurso tiene su propia [página de recurso][7] con [métricas de traza][15] específicas para el punto de conexión Las métricas de traza se pueden usar como cualquier otra métrica de Datadog: son exportables a un Dashboard o se pueden usar para crear monitores La página de recurso también muestra el widget de resumen de tramo con una visualización agregada de [tramos][21] para todas las [trazas](#trace), la distribución de latencia de las solicitudes y las trazas que muestran las solicitudes realizadas a este punto de conexión. -{{< img src="tracing/visualization/resource_page.mp4" video="true" alt="Página de recursos" >}} +{{< img src="tracing/visualization/resource_page.mp4" video="true" alt="página de recurso" >}} -## Traza +## Traza {#trace} -Una traza se utiliza para realizar un seguimiento del tiempo empleado por una aplicación procesando una solicitud y el estado de esta solicitud. Cada traza consta de uno o más tramos. Durante el tiempo de vida de la solicitud, puedes ver las llamadas distribuidas a través de servicios (porque [se inyecta/extrae un ID de traza a través de encabezados HTTP][8]), [bibliotecas instrumentadas automáticamente][3] e [instrumentación manual][9] mediante herramientas de código abierto como [OpenTracing][10] en la vista de la gráfica de llamas. En la página Vista de traza, cada traza recopila información que la conecta con otras partes de la plataforma, incluyendo [conectar logs a trazas][11], [añadir etiquetas a tramos][12] y [recopilar métricas de tiempo de ejecución][13]. +Una traza se utiliza para rastrear el tiempo que pasa una aplicación procesando una solicitud y el estado de esta solicitud. Cada traza consiste en uno o más tramos. Durante la vida útil de la solicitud, puedes ver llamadas distribuidas entre servicios (porque un [ID de traza se inyecta/se extrae a través de encabezados HTTP][8]), [bibliotecas instrumentadas automáticamente][3] y [instrumentación manual][9] utilizando herramientas de código abierto como [OpenTracing][10] en la visualización de gráfico de llamas. En la página de vista de traza, cada traza recopila información que la conecta a otras partes de la plataforma, incluyendo [conectar registros a trazas][11], [agregar etiquetas a tramos][12] y [recopilar métricas de tiempo de ejecución][13]. -{{< img src="tracing/visualization/trace_view.png" alt="Vista de traza" >}} +{{< img src="tracing/visualization/trace_view.png" alt="vista de traza" >}} -## Propagación del contexto de rastreo +## Propagación del contexto de trazas {#trace-context-propagation} -La propagación del contexto de rastreo es el método para pasar identificadores de trazas entre servicios en un sistema distribuido. Permite a Datadog unir tramos individuales de diferentes servicios en una única traza distribuida. La propagación del contexto de rastreo funciona insertando identificadores, como el ID de traza y el ID de tramo principal, en los encabezados HTTP a medida que la solicitud fluye por el sistema. Luego, el servicio de descarga extrae estos identificadores y continúa el rastreo. Esto permite que Datadog reconstruya la ruta completa de una solicitud a través de múltiples servicios. +La propagación del contexto de trazas es el método de pasar identificadores de traza entre servicios en un sistema distribuido. Permite a Datadog unir tramos individuales de diferentes servicios en una sola traza distribuida. La propagación del contexto de trazas funciona inyectando identificadores, como el ID de traza y el ID de tramo padre, en los encabezados HTTP a medida que la solicitud fluye a través del sistema. El servicio descendente luego extrae estos identificadores y continúa la traza. Esto permite a Datadog reconstruir el camino completo de una solicitud a través de múltiples servicios. -Para más información, consulta la [propagación del contexto de rastreo][27] para el lenguaje de tu aplicación. +Para más información, consulte la [propagación del contexto de trazas][27] para el lenguaje de su aplicación. -## Filtros de retención +## Filtros de retención {#retention-filters} -[Establece filtros basados en etiquetas][19] en la interfaz de usuario para indexar tramos durante 15 días para su uso con [la Búsqueda de trazas y análisis][14]. +[Establecer filtros basados en etiquetas][19] en la interfaz de usuario para indexar tramos durante 15 días para su uso con [Búsqueda y Análisis de Trazas][14]. -## Controles de ingesta +## Controles de ingestión {#ingestion-controls} -[Envía el 100% de las trazas][20] de tus servicios a Datadog y combínalas con [filtros de retención basados en etiquetas](#retention-filters) para conservar trazas relevantes para tu negocio durante 15 días. +[Envíe el 100% de las trazas][20] de sus servicios a Datadog y combínelas con [filtros de retención basados en etiquetas](#retention-filters) para mantener las trazas que importan para su negocio durante 15 días -## Instrumentación +## Instrumentación {#instrumentation} -La instrumentación es el proceso de añadir código a tu aplicación para capturar e informar datos de observabilidad a Datadog, como trazas, métricas y logs. Datadog proporciona bibliotecas de instrumentación para varios lenguajes y frameworks de programación. +La instrumentación es el proceso de agregar código a su aplicación para capturar y reportar datos de observabilidad a Datadog, como trazas, métricas y registros Datadog proporciona bibliotecas de instrumentación para varios lenguajes de programación y frameworks. -Puedes instrumentar automáticamente tu aplicación cuando instales el Datadog Agent con la [Instrumentación de paso único][24] o cuando [añadas de forma manual bibliotecas de rastreo de Datadog][25] a tu código. +Puede instrumentar automáticamente su aplicación cuando instale el Datadog Agent con [Instrumentación de un solo paso][24] o cuando [agregue manualmente los SDK de Datadog][25] a su código -Puedes utilizar la instrumentación personalizada al incrustar código de rastreo directamente en el código de tu aplicación. Esto te permite crear, modificar o eliminar mediante programación trazas para enviarlas a Datadog. +Puede usar instrumentación personalizada al incrustar código de traza directamente en el código de su aplicación. Esto le permite crear, modificar o eliminar trazas programáticamente para enviarlas a Datadog. -Para saber más, lee [Instrumentación de aplicación][26]. +Para obtener más información, lea [Instrumentación de Aplicaciones][26]. -## Baggage +## Baggage {#baggage} -El equipaje te permite propagar pares clave-valor (también conocidos como elementos de equipaje) a través de los límites de servicio en un sistema distribuido. A diferencia del contexto de traza, que se centra en los identificadores de traza, el equipaje permite transmitir datos empresariales y otra información contextual junto con trazas. +Baggage le permite propagar pares clave-valor (también conocidos como elementos de Baggage) a través de los límites del servicio en un sistema distribuido. A diferencia del contexto de traza, que se centra en los identificadores de traza, Baggage permite la transmisión de datos comerciales y otra información contextual junto con las trazas. -Para obtener más información, lee los [formatos de propagación][28] compatibles con el lenguaje de tu aplicación. +Para aprender más, lea los [formatos de propagación][28] soportados para el lenguaje de su aplicación. -## Referencias adicionales +## Lectura Adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[2]: /es/developers/guide/data-collection-resolution/ +[2]: /es/extend/guide/data-collection-resolution/ [3]: /es/tracing/setup/ -[4]: /es/tracing/software_catalog/ +[4]: /es/internal_developer_portal/catalog/ [5]: /es/tracing/services/services_map/ [6]: /es/tracing/services/service_page/ [7]: /es/tracing/services/resource_page/ diff --git a/content/fr/cloud_cost_management/setup/google_cloud.md b/content/fr/cloud_cost_management/setup/google_cloud.md index b6f0712d503..3866db59130 100644 --- a/content/fr/cloud_cost_management/setup/google_cloud.md +++ b/content/fr/cloud_cost_management/setup/google_cloud.md @@ -8,84 +8,114 @@ further_reading: text: Cloud Cost Management - link: /cloud_cost_management/setup/aws tag: Documentation - text: Mieux comprendre votre facture AWS + text: Obtenez des informations sur votre facture AWS - link: /cloud_cost_management/azure tag: Documentation - text: Mieux comprendre votre facture Azure + text: Obtenez des informations sur votre facture Azure - link: /cloud_cost_management/oracle tag: Documentation - text: Mieux comprendre votre facture Oracle -title: Google Cloud + text: Obtenez des informations sur votre facture Oracle +title: Google Cloud --- +## Aperçu {#overview} +Pour utiliser la gestion des coûts de Google Cloud dans Datadog, suivez ces étapes : +1. Configurez l'[intégration Google Cloud Platform][12] +2. Configurez l'[exportation détaillée des coûts d'utilisation][13] avec les autorisations nécessaires (Google Service APIs, accès au projet d'exportation et accès au jeu de données BigQuery) +3. Créez ou sélectionnez un [Google Cloud Storage bucket][15] avec les autorisations nécessaires (accès au bucket) -## Présentation +## Configuration {#setup} -Pour utiliser Google Cloud Cost Management dans Datadog, suivez ces étapes : -1. Configurer l'[intégration Google Cloud Platform][12] -2. Configurer l'[exportation des coûts d'utilisation détaillés][13] avec les autorisations nécessaires (API de services Google, accès au projet d'exportation et accès à l'ensemble de données BigQuery) -3. Créer ou sélectionner un [bucket Google Cloud Storage][15] avec les autorisations nécessaires (accès au bucket) +Vous pouvez configurer en utilisant l'[API][18], [Terraform][19] ou directement dans Datadog en suivant les instructions ci-dessous. -## Configuration - -Vous pouvez configurer le système en utilisant l'[API][18] ou [Terraform][19], ou directement dans Datadog en suivant les instructions ci-dessous. - -### Configurer l'intégration de Google Cloud Platform -Accédez à [Setup & Configuration][3], et sélectionnez une intégration Google Cloud Platform. -Si vous ne voyez pas le compte de service souhaité dans la liste, accédez à l'[intégration Google Cloud Platform][4] pour le configurer. +### Configurez l'intégration Google Cloud Platform {#configure-the-google-cloud-platform-integration} +Accédez à [Setup & Configuration][3], ajoutez un compte Google Cloud Platform et suivez les étapes pour configurer l'intégration Google Cloud Platform.
    -L'intégration Google Cloud Platform de Datadog permet à Cloud Costs de surveiller automatiquement tous les projets auxquels ce compte de service a accès. -Pour limiter les hosts de surveillance d'infrastructure pour ces projets, appliquez des tags aux hosts. Définissez ensuite si les tags doivent être inclus ou exclus de la surveillance dans la section Limit Metric Collection Filters de la page d'intégration. +L'intégration Datadog Google Cloud Platform permet à Cloud Costs de surveiller automatiquement tous les projets auxquels ce compte de service a accès. +Pour limiter les hôtes de surveillance de l'infrastructure pour ces projets, appliquez des balises aux hôtes. Ensuite, définissez si les balises doivent être incluses ou exclues de la surveillance dans la section {{< ui >}}Limit Metric Collection Filters{{< /ui >}} de la page d'intégration.
    -{{< img src="cloud_cost/gcp_integration_limit_metric_collection.png" alt="Section des filtres de limitation de collecte de métriques configurée dans la page d'intégration Google Cloud Platform" >}} +{{< img src="cloud_cost/gcp_integration_limit_metric_collection.png" alt="Limitez la section des filtres de collecte de métriques configurée dans la page d'intégration Google Cloud Platform" >}} -### Activer l'exportation des coûts d'utilisation détaillés +### Activez l'exportation détaillée des coûts d'utilisation {#enable-detailed-usage-cost-export}
    -Les données de coûts d'utilisation détaillés fournissent toutes les informations incluses dans les données de coûts d'utilisation standard, ainsi que des champs supplémentaires qui fournissent des données de coûts granulaires au niveau des ressources. +Les données détaillées sur les coûts d'utilisation fournissent toutes les informations incluses dans les données standard sur les coûts d'utilisation, ainsi que des champs supplémentaires qui fournissent des données de coût au niveau des ressources.
    - 1. Accédez à [Billing Export][1] sous *Billing* dans la console Google Cloud. - 2. Activez l'exportation [Detailed Usage cost][2] (sélectionnez ou créez un projet et un ensemble de données BigQuery). - 3. Notez le `Billing Account ID` du compte de facturation où l'exportation a été configurée, ainsi que le `Project ID` et le `Dataset Name` de l'exportation. + 1. Accédez à [Billing Export][1] sous la console Google Cloud *Billing*. + 2. Activez l'[Detailed Usage cost export][2] (sélectionnez ou créez un projet et un ensemble de données BigQuery) + 3. Documentez le {{< ui >}}Billing Account ID{{< /ui >}} pour le compte de facturation où l'exportation a été configurée, ainsi que l'export {{< ui >}}Project ID{{< /ui >}} et {{< ui >}}Dataset Name{{< /ui >}}. -{{< img src="cloud_cost/billing_export.png" alt="Informations sur le projet et l'ensemble de données Google Cloud mises en surbrillance" >}} +{{< img src="cloud_cost/billing_export.png" alt="Informations sur le projet Google Cloud et le jeu de données mises en évidence" >}} _Les ensembles de données d'exportation de facturation BigQuery nouvellement créés ne contiennent que les deux derniers mois de données. Il peut falloir un jour ou deux pour que ces données soient remplies dans BigQuery._ -#### Activer les API de services Google +#### Activez les Google Service APIs {#enable-google-service-apis} Les autorisations suivantes permettent à Datadog d'accéder et de transférer l'exportation de facturation dans le bucket de stockage à l'aide d'une requête BigQuery planifiée. -- Activez l'[API BigQuery][5]. +- Activez le [BigQuery API][5]. 1. Dans la console Google Cloud, accédez à la page de sélection de projet et sélectionnez votre projet Google Cloud. 2. Activez la facturation sur votre projet pour tous les transferts. -- Activez le [service BigQuery Data Transfer][5]. - 1. Ouvrez la page de l'API BigQuery Data Transfer dans la bibliothèque d'API. +- Activez le [BigQuery Data Transfer Service][5]. + 1. Ouvrez la page de l'API de transfert de données BigQuery dans la bibliothèque d'API. 2. Dans le menu déroulant, sélectionnez le projet qui contient le compte de service. - 3. Cliquez sur le bouton ENABLE. + 3. Cliquez sur le bouton {{< ui >}}ENABLE{{< /ui >}}. + + **Remarque :** Le BigQuery Data Transfer API doit être activée sur le projet Google qui contient le compte de service. + +{{< tabs >}} + +{{% tab "Terraform" %}} + +{{< img src="cloud_cost/setup/gcp_terraform_setup.png" alt="Formulaire de configuration de Cloud Cost Management en mode Terraform" style="width:100%" >}} + +### Définissez les détails de configuration {#define-configuration-details} + +Entrez les détails suivants pour votre configuration : + +* **Google Cloud Storage bucket** : Sélectionnez **Oui** pour créer un bucket de stockage, ou sélectionnez **Non** pour utiliser un bucket existant. + + **Remarque** : Si vous utilisez un bucket existant, vérifiez que le bucket est co-localisé avec l'ensemble de données d'exportation BigQuery. + +* **Bucket name** : Le nom de votre nouveau Google Cloud Storage bucket ou de celui existant. +* **Région** : La région GCP de votre bucket. Par exemple, `northamerica-northeast1`. +* **Identifiant du compte de facturation** : L'identifiant du compte de facturation pour lequel vos rapports d'exportation des coûts d'utilisation sont générés. +* **Nom et identifiant du projet d'exportation** : Le nom et l'identifiant de votre projet d'exportation. +* **Nom et identifiant du dataset d'exportation** : Le nom et l'identifiant de votre dataset d'exportation. + +### Créer une exportation de coûts et activer les Google Service APIs {#create-cost-export-and-enable-google-service-apis} + +Complétez les étapes [Enable detailed usage cost export](#enable-detailed-usage-cost-export) et [Enable Google Service APIs](#enable-google-service-apis) ci-dessus, puis revenez à CCM. + +### Copier le HCL Terraform généré et appliquer les modifications {#copy-generated-terraform-hcl-and-apply-changes} + +Dans l'interface utilisateur de configuration Terraform de CCM, suivez les instructions de l'étape **Apply Terraform Configuration**. Résolvez tous les problèmes qui apparaissent lors de l'exécution de `terraform plan` ou `terraform apply` avant de revenir à CCM pour confirmer la création du compte. - **Remarque** : l'API BigQuery Data Transfer doit être activée sur le projet Google qui contient le compte de service. +{{% /tab %}} +{{% tab "Méthode manuelle" %}} -#### Configurer l'accès au projet d'exportation -[Ajoutez le compte de service en tant que principal sur la ressource de projet d'ensemble de données d'exportation][7] : -1. Accédez à la page IAM dans la console Google Cloud et sélectionnez le projet d'ensemble de données d'exportation. +{{< img src="cloud_cost/setup/gcp_manual_setup.png" alt="Formulaire de configuration de Cloud Cost Management en mode manuel" style="width:100%" >}} + +#### Configurer l'accès au projet d'exportation {#configure-export-project-access} +[Ajoutez le compte de service en tant que principal sur la ressource du projet de dataset d'exportation][7] : +1. Accédez à la page IAM dans la console Google Cloud et sélectionnez le projet de dataset d'exportation. 2. Sélectionnez le compte de service en tant que principal. -3. Sélectionnez un rôle avec les autorisations suivantes à accorder dans la liste déroulante : +3. Sélectionnez un rôle avec les permissions suivantes à accorder dans la liste déroulante : * `bigquery.jobs.create` * `bigquery.transfers.get` * `bigquery.transfers.update` - **Remarque** : il peut s'agir d'un rôle personnalisé, ou vous pouvez utiliser le rôle Google Cloud existant `roles/bigquery.admin`. + **Remarque :** Cela peut être un rôle personnalisé, ou vous pouvez utiliser le rôle Google Cloud existant `roles/bigquery.admin`. -#### Configurer l'accès à l'ensemble de données BigQuery d'exportation -[Ajoutez le compte de service en tant que principal sur la ressource d'ensemble de données BigQuery d'exportation][8] : -1. Dans le volet Explorer de la page BigQuery, développez votre projet et sélectionnez l'ensemble de données BigQuery d'exportation. -2. Cliquez sur **Sharing > Permissions**, puis sur **add principal**. -3. Dans le champ new principals, saisissez le compte de service. -4. À l'aide de la liste select a role, attribuez un rôle avec les autorisations suivantes : +#### Configurer l'accès au dataset BigQuery d'exportation {#configure-export-bigquery-dataset-access} +[Ajoutez le compte de service en tant que principal sur la ressource du dataset BigQuery d'exportation][8] : +1. Dans le panneau Explorateur de la page BigQuery, développez votre projet et sélectionnez le dataset BigQuery d'exportation. +2. Cliquez sur {{< ui >}}Sharing{{< /ui >}} > {{< ui >}}Permissions{{< /ui >}} puis sur {{< ui >}}add principal{{< /ui >}}. +3. Dans le nouveau champ des principals, entrez le compte de service. +4. En utilisant la liste de sélection d'un rôle, assignez un rôle avec les permissions suivantes : * `bigquery.datasets.get` * `bigquery.tables.create` * `bigquery.tables.delete` @@ -96,108 +126,122 @@ Les autorisations suivantes permettent à Datadog d'accéder et de transférer l * `bigquery.tables.update` * `bigquery.tables.updateData` - **Remarque** : il peut s'agir d'un rôle personnalisé, ou vous pouvez utiliser le rôle Google Cloud existant `roles/bigquery.dataEditor`. - -### Créer ou sélectionner un bucket Google Cloud Storage -Utilisez un bucket Google Cloud Storage existant ou créez-en un nouveau. -Les données sont extraites régulièrement de votre ensemble de données BigQuery Detailed Usage Cost vers le bucket sélectionné et préfixées avec `datadog_cloud_cost_detailed_usage_export`. + **Remarque :** Cela peut être un rôle personnalisé, ou vous pouvez utiliser le rôle Google Cloud existant `roles/bigquery.dataEditor`. -**Remarque** : le bucket [doit être colocalisé][9] avec l'ensemble de données d'exportation BigQuery. - -#### Configurer l'accès au bucket -[Ajoutez le compte de service en tant que principal sur la ressource de bucket GCS][6] : -1. Accédez à la page Cloud Storage Buckets dans la console Google Cloud et sélectionnez votre bucket. -2. Sélectionnez l'onglet permissions et cliquez sur le bouton **grant access**. -3. Dans le champ new principals, saisissez le compte de service. -4. Attribuez un rôle avec les autorisations suivantes : +#### Configurez l'accès au bucket {#configure-bucket-access} +[Ajoutez le compte de service en tant que principal sur la ressource du GCS bucket][6]: +1. Accédez à la page des Buckets de Cloud Storage dans la console Google Cloud et sélectionnez votre bucket. +2. Sélectionnez l'onglet des permissions et cliquez sur le bouton {{< ui >}}grant access{{< /ui >}}. +3. Dans le nouveau champ des principals, entrez le compte de service. +4. Assignez un rôle avec les permissions suivantes : * `storage.buckets.get` * `storage.objects.create` * `storage.objects.delete` * `storage.objects.get` * `storage.objects.list` - **Remarque** : il peut s'agir d'un rôle personnalisé, ou vous pouvez utiliser les rôles Google Cloud existants `roles/storage.legacyObjectReader` et `roles/storage.legacyBucketWriter`. + **Remarque :** Cela peut être un rôle personnalisé, ou vous pouvez utiliser les rôles Google Cloud existants `roles/storage.legacyObjectReader` et `roles/storage.legacyBucketWriter`. + +[6]: https://cloud.google.com/storage/docs/access-control/using-iam-permissions#bucket-add +[7]: https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role +[8]: https://cloud.google.com/bigquery/docs/control-access-to-resources-iam#grant_access_to_a_dataset + +{{% /tab %}} + +{{< /tabs >}} + +### Créez ou sélectionnez un [Google Cloud Storage bucket]{#create-or-select-a-google-cloud-storage-bucket} +La solution Cloud Cost Management utilise un [Google Cloud Storage bucket] pour recevoir des données extraites de votre [Detailed Usage Cost BigQuery dataset] (préfixé par `datadog_cloud_cost_detailed_usage_export`). Vous pouvez créer un nouveau bucket ou utiliser un existant. + +**Remarque :** Le bucket [doit être co-localisé][9] avec l'ensemble de données d'exportation BigQuery. -### (Facultatif) Configurer l'autorisation de compte de service inter-projets : -Si votre compte de service intégré existe dans un projet Google Cloud Platform différent de votre ensemble de données d'exportation de facturation, vous devez [accorder une autorisation de compte de service inter-projets][10] : +### (Optionnel) Configurez l'autorisation de service inter-projets : {#optional-configure-cross-project-service-authorization} +Si votre compte de service intégré existe dans un projet Google Cloud Platform différent de votre ensemble de données d'exportation de facturation, vous devez [accorder l'autorisation de compte de service inter-projets][10] : -1. Déclenchez la création de l'agent de service en suivant la [documentation officielle][11] en utilisant les valeurs suivantes : - * ENDPOINT : `bigquerydatatransfer.googleapis.com` - * RESOURCE_TYPE : `project` - * RESOURCE_ID : projet d'ensemble de données d'exportation

    +1. Déclenchez la création de l'agent de service en suivant la [documentation officielle][11] en utilisant les valeurs suivantes : + * POINT D'ACCÈS : `bigquerydatatransfer.googleapis.com` + * TYPE DE RESSOURCE : `project` + * RESOURCE_ID : export dataset project

    - Cela crée un nouvel agent de service qui ressemble à `service-@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com`. + Cela crée un nouvel agent de service qui ressemble à `service-@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com`. -2. Ajoutez le rôle de compte de service BigQuery Data Transfer créé par le déclencheur en tant que principal sur votre compte de service +2. Ajoutez le rôle [BigQuery Data Transfer Service Account] créé par le déclencheur en tant que principal sur votre compte de service. 3. Attribuez-lui le rôle `roles/iam.serviceAccountTokenCreator`. -### Configurer Cloud Cost +### Configurez Cloud Cost Management {#configure-cloud-cost} Continuez à suivre les étapes indiquées dans [Setup & Configuration][3]. -**Remarque** : les données peuvent prendre 48 à 72 heures après la configuration pour se stabiliser dans Datadog. +**Remarque** : Les données peuvent prendre de 48 à 72 heures après la configuration pour se stabiliser dans Datadog. -### Obtenir des données historiques +### Obtention des données historiques {#getting-historical-data} -Les ensembles de données d'exportation de facturation BigQuery nouvellement créés ne contiennent que les 2 derniers mois de données. Il peut falloir un jour ou deux pour que ces données soient remplies dans BigQuery. Datadog ingère automatiquement jusqu'à 15 mois de données de coûts historiques disponibles une fois qu'elles apparaissent dans la table BigQuery. +Les ensembles de données d'exportation de facturation BigQuery nouvellement créés ne contiennent que les 2 derniers mois de données. Il peut falloir un jour ou deux pour que ces données soient remplies dans BigQuery. Datadog ingère automatiquement jusqu'à 15 mois de données historiques de coûts disponibles une fois qu'elles apparaissent dans la table BigQuery. Google Cloud ne fournit pas de processus pour remplir des données historiques supplémentaires au-delà des 2 mois automatiquement inclus lors de la première création de l'exportation BigQuery. -## Types de coûts +## Types de coûts {#cost-types} Vous pouvez visualiser vos données ingérées en utilisant les types de coûts suivants : -| Type de coût | Description | +| Type de coût  | Description |. |-------------------------------------------------| ----------------------------------| -| `gcp.cost.amortized` | Coût total des ressources allouées au moment de l'utilisation sur un intervalle. Les coûts incluent les crédits de promotion ainsi que les crédits de remise d'utilisation engagée. | -| `gcp.cost.amortized.shared.resources.allocated` | Tous vos coûts amortis Google Cloud Platform, avec des ventilations et des informations supplémentaires pour les charges de travail de conteneurs. Nécessite l'[allocation des coûts de conteneurs][14].| -| `gcp.cost.ondemand` | Coût public total à la demande des ressources avant l'application des remises publiques et privées sur un intervalle. | +| `gcp.cost.amortized` | Coût total des ressources allouées au moment de l'utilisation sur un intervalle. Les coûts incluent les crédits de promotion ainsi que les crédits de réduction pour utilisation engagée. | +| `gcp.cost.amortized.shared.resources.allocated` | Tous vos coûts amortis de Google Cloud Platform, avec des ventilations et des analyses supplémentaires pour les charges de travail des conteneurs. Nécessite [allocation des coûts des conteneurs][14].| +| `gcp.cost.ondemand` | Coût total public, à la demande, des ressources avant que les réductions publiques et privées ne soient appliquées sur un intervalle. | -### Tags par défaut +### Étiquettes prêtes à l'emploi {#out-of-the-box-tags} -Datadog enrichit automatiquement vos données de coûts Google Cloud avec des tags provenant de plusieurs sources. Pour un aperçu complet de la façon dont les tags sont appliqués aux données de coûts, consultez la section [Tags][17]. +Datadog enrichit automatiquement vos données de coûts Google Cloud avec des étiquettes provenant de plusieurs sources. Pour un aperçu complet de la manière dont les étiquettes sont appliquées aux données de coûts, voir [Étiquettes][17]. -Les tags prêts à l'emploi suivants sont dérivés de votre [rapport de coûts d'utilisation détaillés][16] et facilitent la découverte et la compréhension des données de coûts : +Les étiquettes prêtes à l'emploi suivantes sont dérivées de votre [rapport détaillé sur les coûts d'utilisation][16] et facilitent la découverte et la compréhension des données de coûts : -| Nom du tag | Description du tag | +| Nom de la balise | Description de la balise | | ---------------------------- | ----------------- | | `google_product` | Le service Google facturé.| -| `google_cost_type` | Le type de frais couvert par cet élément (par exemple, regular, tax, adjustment ou rounding error).| -| `google_usage_type` | Les détails d'utilisation de l'élément (par exemple, Standard Storage US).| +| `google_cost_type` | Le type de frais couvert par cet élément (par exemple, régulier, taxe, ajustement ou erreur d'arrondi).| +| `google_usage_type` | Les détails d'utilisation de l'élément (par exemple, Stockage Standard US).| | `google_location` | L'emplacement associé à l'élément au niveau d'une multi-région, d'un pays, d'une région ou d'une zone.| | `google_region` | La région associée à l'élément.| | `google_zone` | La zone de disponibilité associée à l'élément.| -| `google_pricing_usage_unit` | L'unité de tarification utilisée pour calculer le coût d'utilisation (par exemple, gibibyte, tebibyte ou year).| -| `google_is_unused_reservation`| Si l'utilisation a été réservée mais non utilisée.| +| `google_pricing_usage_unit` | L'unité de tarification utilisée pour calculer le coût d'utilisation (par exemple, gibioctet, tébioctet ou an).| +| `google_is_unused_reservation`| Indique si l'utilisation était réservée mais non utilisée.| | `service_description` | Le service Google Cloud (tel que Compute Engine ou BigQuery). | | `project_id` | L'ID du projet Google Cloud qui a généré les données de facturation Cloud. | | `project_name` | Le nom du projet Google Cloud qui a généré les données de facturation Cloud. | -| `cost_type` | Le type de coût que représente cette ligne : `regular`, `tax`, `adjustment` ou `rounding error`. | -| `sku_description` | Une description du type de ressource utilisé, décrivant les détails d'utilisation de la ressource. | -| `resource_name` | Un nom que les clients ajoutent aux ressources. Cela peut ne pas être sur toutes les ressources. | +| `cost_type` | Le type de coût que cet élément représente : `regular`, `tax`, `adjustment` ou `rounding error`. | +| `sku_description` | Une description du type de ressource utilisée, décrivant les détails d'utilisation de la ressource. | +| `resource_name` | Un nom que les clients ajoutent aux ressources. Cela peut ne pas être présent sur toutes les ressources. | | `global_resource_name` | Un identifiant de ressource unique au niveau mondial généré par Google Cloud. | -#### Corrélation entre les coûts et les données d'observabilité +#### Corrélation des coûts et d'observabilité {#cost-and-observability-correlation} -Visualiser les coûts dans le contexte des données d'observabilité est important pour comprendre comment les changements d'infrastructure impactent les coûts, identifier pourquoi les coûts changent et optimiser l'infrastructure à la fois pour les coûts et les performances. Datadog met à jour les tags d'identification de ressources sur les données de coûts pour les principaux produits Google afin de simplifier la corrélation entre les métriques d'observabilité et de coûts. +Il est important de visualiser les coûts dans le contexte des données d'observabilité pour comprendre comment les changements d'infrastructure impactent les coûts, identifier pourquoi les coûts changent et optimiser l'infrastructure tant pour les coûts que pour la performance. Datadog met à jour les balises d'identification des ressources sur les données de coût pour les principaux produits Google afin de simplifier la corrélation entre les métriques d'observabilité et de coût. -Par exemple, pour voir le coût et l'utilisation de chaque base de données Cloud SQL, vous pouvez créer un tableau avec `gcp.cost.amortized`, `gcp.cloudsql.database.cpu.utilization` et `gcp.cloudsql.database.memory.utilization` (ou toute autre métrique Cloud SQL) et regrouper par `database_id`. Ou, pour voir l'utilisation et les coûts de Cloud Function côte à côte, vous pouvez représenter graphiquement `gcp.cloudfunctions.function.execution_count` et `gcp.cost.amortized` regroupés par `function_name`. +Par exemple, pour visualiser le coût et l'utilisation de chaque base de données Cloud SQL, vous pouvez créer un tableau avec `gcp.cost.amortized`, `gcp.cloudsql.database.cpu.utilization` et `gcp.cloudsql.database.memory.utilization` (ou toute autre métrique Cloud SQL) et regrouper par `database_id`. Ou, pour voir l'utilisation et les coûts des Cloud Functions côte à côte, vous pouvez tracer `gcp.cloudfunctions.function.execution_count` et `gcp.cost.amortized` regroupés par `function_name`. -Les tags prêts à l'emploi suivants sont disponibles : | Produit Google | Tag(s) | | -------------------| ----------------------------- | | Compute Engine | `instance_id`, `instance-type`| | Cloud Functions | `function_name` | | Cloud Run | `job_name`, `service_name` | | Cloud SQL | `database_id` | | Cloud Spanner | `instance_id` | | App Engine | `module_id` | | BigQuery | `project_id`, `dataset_id` | | Kubernetes Engine | `cluster_name` | +Les balises prêtes à l'emploi suivantes sont disponibles : +| Produit Google | Balise(s) | +| -------------------| ----------------------------- | +| Compute Engine | `instance_id`, `instance-type`| +| Cloud Functions | `function_name` | +| Cloud Run | `job_name`, `service_name` | +| Cloud SQL | `database_id` | +| Cloud Spanner | `instance_id` | +| App Engine | `module_id` | +| BigQuery | `project_id`, `dataset_id` | +| Kubernetes Engine | `cluster_name` | -### Allocation des conteneurs -**Les mesures d'allocation des conteneurs** contiennent les mêmes coûts que les mesures de Google Cloud Platform, mais avec des ventilations et des informations supplémentaires pour les charges de travail des conteneurs. Voir [Container Cost Allocation][14] pour plus de détails. +### Allocation de conteneurs {#container-allocation} +**Les métriques d'allocation de conteneurs** contiennent tous les mêmes coûts que les métriques de Google Cloud Platform, mais avec des ventilations et des analyses supplémentaires pour les charges de travail des conteneurs. Voir [Allocation des coûts des conteneurs][14] pour plus de détails. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://console.cloud.google.com/billing/export/ [2]: https://cloud.google.com/billing/docs/how-to/export-data-bigquery-setup -[3]: https://app.datadoghq.com/cost/setup?cloud=gcp +[3]: https://app.datadoghq.com/cost/setup [4]: https://app.datadoghq.com/integrations/google-cloud-platform [5]: https://cloud.google.com/bigquery/docs/enable-transfer-service -[6]: https://cloud.google.com/storage/docs/access-control/using-iam-permissions#bucket-add -[7]: https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role -[8]: https://cloud.google.com/bigquery/docs/control-access-to-resources-iam#grant_access_to_a_dataset [9]: https://cloud.google.com/bigquery/docs/exporting-data#data-locations [10]: https://cloud.google.com/bigquery/docs/enable-transfer-service#cross-project_service_account_authorization [11]: https://cloud.google.com/iam/docs/create-service-agents#create diff --git a/content/fr/containers/docker/apm.md b/content/fr/containers/docker/apm.md new file mode 100644 index 00000000000..ab6b342db90 --- /dev/null +++ b/content/fr/containers/docker/apm.md @@ -0,0 +1,398 @@ +--- +aliases: +- /fr/tracing/docker/ +- /fr/tracing/setup/docker/ +- /fr/agent/apm/docker +- /fr/agent/docker/apm +description: Configurez la collecte de traces APM pour les applications s'exécutant + dans des conteneurs Docker en utilisant l'Agent Datadog +further_reading: +- link: https://github.com/DataDog/datadog-agent/tree/main/pkg/trace + tag: Code source + text: Code source +- link: /integrations/amazon_ecs/#trace-collection + tag: Documentation + text: Tracer vos applications ECS +- link: /agent/docker/log/ + tag: Documentation + text: Recueillir les logs de votre application +- link: /agent/docker/integrations/ + tag: Documentation + text: Recueillez automatiquement les métriques et les logs de vos applications +- link: /agent/guide/autodiscovery-management/ + tag: Documentation + text: Limitez la collecte de données à un sous-ensemble de conteneurs +- link: /agent/docker/tag/ + tag: Documentation + text: Attribuez des tags à toutes les données envoyées par un conteneur +title: Tracer des applications Docker +--- +À partir de l'Agent 6.0.0, le Trace Agent est activé par défaut. S'il a été désactivé, vous pouvez le réactiver dans le `registry.datadoghq.com/agent` conteneur en passant `DD_APM_ENABLED=true` comme variable d'environnement. + +Les commandes CLI sur cette page concernent le runtime Docker. Remplacez `docker` par `nerdctl` pour le runtime containerd, ou `podman` pour le runtime Podman. + +
    Si vous collectez des traces d'une application conteneurisée (votre Agent et votre application s'exécutant dans des conteneurs séparés), en alternative aux instructions suivantes, vous pouvez injecter automatiquement le SDK dans votre application. Lisez Injecting Libraries pour les instructions.
    + +## Traçage depuis l'hôte {#tracing-from-the-host} + +Le traçage est disponible sur le port `8126/tcp` depuis _votre hôte uniquement_ en ajoutant l'option `-p 127.0.0.1:8126:8126/tcp` à la commande `docker run`. + +Pour le rendre disponible depuis _n'importe quel hôte_, utilisez `-p 8126:8126/tcp` à la place. + +Par exemple, la commande suivante permet à l'Agent de recevoir des traces depuis votre host uniquement : + +{{< tabs >}} +{{% tab "Linux" %}} + +```shell +docker run -d --cgroupns host \ + --pid host \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -p 127.0.0.1:8126:8126/tcp \ + -e DD_API_KEY= \ + -e DD_APM_ENABLED=true \ + -e DD_SITE= \ + registry.datadoghq.com/agent:latest +``` +Où se trouve votre `` {{< region-param key="dd_site" code="true" >}} (par défaut `datadoghq.com`). + +{{% /tab %}} +{{% tab "Windows" %}} + +```shell +docker run -d -p 127.0.0.1:8126:8126/tcp \ + -e DD_API_KEY= \ + -e DD_APM_ENABLED=true \ + -e DD_SITE= \ + registry.datadoghq.com/agent:latest +``` +Où se trouve votre `` {{< region-param key="dd_site" code="true" >}} (par défaut `datadoghq.com`). + +{{% /tab %}} +{{< /tabs >}} + +## Variables d'environnement de l'Agent APM Docker {#docker-apm-agent-environment-variables} + +Utilisez les variables d'environnement suivantes pour configurer le traçage pour l'Agent Docker. Voir le [fichier d'exemple `config_template.yaml`][8] pour plus de détails. + +`DD_API_KEY` +: requis - _ chaîne _ +
    Votre [clé API Datadog][1]. + +`DD_SITE` +: optionnel - _ chaîne _ +
    Votre [site Datadog][7]. Définissez ceci sur `{{< region-param key="dd_site" >}}`. +
    **Default**: `datadoghq.com` + +`DD_APM_ENABLED` +: optionnel - _Booléen_ - **par défaut**: `true` +
    Lorsqu'il est défini sur `true` (par défaut), l'Agent Datadog accepte les traces et les métriques de trace. + +`DD_APM_RECEIVER_PORT` +: optionnel - _entier_ - **par défaut**: `8126` +
    Définit le port sur lequel le récepteur de traces de l'Agent Datadog écoute. Définissez `0` pour désactiver le récepteur HTTP. + +`DD_APM_RECEIVER_SOCKET` +: optionnel - _chaîne_ +
    Pour collecter vos traces via des sockets de domaine UNIX, fournissez le chemin vers le socket UNIX. S'il est défini, cela prend la priorité sur la configuration du nom d'hôte et du port, et doit pointer vers un fichier de socket valide. + +`DD_APM_NON_LOCAL_TRAFFIC` +: optionnel - _Booléen_ - **par défaut**: `false` +
    Lorsqu'il est défini sur `true`, l'Agent Datadog écoute le trafic non local. Si vous [tracez depuis d'autres conteneurs](#tracing-from-other-containers), définissez cette variable d'environnement sur `true`. + +`DD_APM_DD_URL` +: optionnel - _chaîne_ +
    Pour utiliser un proxy pour APM, fournissez le point de terminaison et le port comme `:`. Le proxy doit être capable de gérer les connexions TCP. + +`DD_APM_CONNECTION_LIMIT` +: requis - _entier_ - **par défaut**: `2000` +
    Définit le nombre maximum de connexions APM pour une fenêtre de temps de 30 secondes. Voir [Limites de taux de l'Agent][6] pour plus de détails. + +`DD_APM_IGNORE_RESOURCES` +: optionnel - _[chaîne]_ +
    Fournit une liste d'exclusion de ressources que l'Agent Datadog doit ignorer. Si le nom de la ressource d'une trace correspond à une ou plusieurs des expressions régulières de cette liste, la trace n'est pas envoyée à Datadog. +
    Exemple: `"GET /ignore-me","(GET\|POST) and-also-me"`. + +`DD_APM_FILTER_TAGS_REQUIRE` +: optionnel - _objet_ +
    Définit des règles pour le filtrage des traces basé sur des tags. Pour être envoyées à Datadog, les traces doivent avoir ces tags. Voir [Ignorer les ressources indésirables dans APM][5]. + +`DD_APM_FILTER_TAGS_REGEX_REQUIRE` +: optionnel - _objet_ +
    Pris en charge dans l'Agent 7.49+. Définit des règles pour le filtrage des traces basé sur des tags avec des expressions régulières. Pour être envoyées à Datadog, les traces doivent avoir des tags qui correspondent à ces motifs regex. + +`DD_APM_FILTER_TAGS_REJECT` +: optionnel - _objet_ +
    Définit des règles pour le filtrage des traces basé sur des tags. Si une trace a ces tags, elle n'est pas envoyée à Datadog. Voir [Ignorer les ressources indésirables dans APM][5] pour plus de détails. + +`DD_APM_FILTER_TAGS_REGEX_REJECT` +: optionnel - _objet_ +
    Pris en charge dans l'Agent 7.49+. Définit des règles pour le filtrage des traces basé sur des tags avec des expressions régulières. Si une trace a des tags qui correspondent à ces motifs regex, elle n'est pas envoyée à Datadog. + +`DD_APM_REPLACE_TAGS` +: optionnel - _[objet]_ +
    Définit un ensemble de règles pour [remplacer ou supprimer des tags contenant potentiellement des informations sensibles][2]. + +`DD_HOSTNAME` +: optionnel - _chaîne_ - **par défaut** : détecté automatiquement +
    Définit le nom d'hôte à utiliser pour les métriques si la détection automatique du nom d'hôte échoue, ou lors de l'exécution du Datadog Cluster Agent. + +`DD_DOGSTATSD_PORT` +: optionnel - _ entier _ - **par défaut** : `8125` +
    Définit le port DogStatsD. + +`DD_PROXY_HTTPS` +: optionnel - _ chaîne _ +
    Pour utiliser un [proxy][4] pour se connecter à Internet, fournissez l'URL. + +`DD_BIND_HOST` +: optionnel - _ chaîne _ - **par défaut** : `localhost` +
    Définit l'hôte sur lequel écouter pour DogStatsD et les traces. + +`DD_LOG_LEVEL` +: optionnel - _ chaîne _ - **par défaut** : `info` +
    Définit le niveau de journalisation minimal. Options valides : `trace`, `debug`, `info`, `warn`, `error`, `critical` et `off`. + +## Traçage depuis d'autres conteneurs {#tracing-from-other-containers} + +Comme avec DogStatsD, les traces peuvent être envoyées à l'Agent depuis d'autres conteneurs soit en utilisant [ les réseaux Docker ](#docker-network) soit avec [ l'IP hôte Docker ](#docker-host-ip). + +### Réseau Docker {#docker-network} + +Commencez par créer un pont définir par l'utilisateur : + +```bash +docker network create +``` + +Les commandes CLI sur cette page concernent le runtime Docker. Remplacez `docker` par `nerdctl` pour le runtime containerd, ou `podman` pour le runtime Podman. + +Démarrez ensuite l'Agent et le conteneur de l'application, connectés au réseau précédemment créé : + +{{< tabs >}} +{{% tab "Standard" %}} + +```bash +# Datadog Agent +docker run -d --name datadog-agent \ + --network \ + --cgroupns host \ + --pid host \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -e DD_API_KEY= \ + -e DD_APM_ENABLED=true \ + -e DD_SITE= \ + -e DD_APM_NON_LOCAL_TRAFFIC=true \ + registry.datadoghq.com/agent:latest +# Application +docker run -d --name app \ + --network \ + -e DD_AGENT_HOST=datadog-agent \ + company/app:latest +``` + +Où se trouve votre `` {{< region-param key="dd_site" code="true" >}} (par défaut `datadoghq.com`). + +{{% /tab %}} +{{% tab "Windows" %}} + +```bash +# Datadog Agent +docker run -d --name datadog-agent \ + --cgroupns host \ + --pid host \ + --network "" \ + -e DD_API_KEY= \ + -e DD_APM_ENABLED=true \ + -e DD_SITE= \ + -e DD_APM_NON_LOCAL_TRAFFIC=true \ + registry.datadoghq.com/agent:latest +# Application +docker run -d --name app \ + --network "" \ + -e DD_AGENT_HOST=datadog-agent \ + company/app:latest +``` +Où se trouve votre `` {{< region-param key="dd_site" code="true" >}} (par défaut `datadoghq.com`). + +{{% /tab %}} +{{< /tabs >}} + +Cela expose le nom d'hôte `datadog-agent` dans votre conteneur `app`. +Si vous utilisez `docker-compose`, les paramètres `` sont ceux définis dans la section `networks` de votre `docker-compose.yml`. + +Vos SDK d'application doivent être configurés pour soumettre des traces à cette adresse. Définissez les variables d'environnement avec `DD_AGENT_HOST` comme nom du conteneur Agent, et `DD_TRACE_AGENT_PORT` comme port de trace de l'Agent dans vos conteneurs d'application. L'exemple ci-dessus utilise l'hôte `datadog-agent` et le port `8126` (la valeur par défaut, donc vous n'avez pas à le définir). + +Vous pouvez également consulter les exemples ci-dessous pour définir manuellement le host de l'Agent dans chaque langage pris en charge. + +{{< programming-lang-wrapper langs="java,python,ruby,go,nodeJS,.NET" >}} + +{{< programming-lang lang="java" >}} + +Mettez à jour la configuration de l'Agent Java avec des variables d'environnement : + +```bash +DD_AGENT_HOST=datadog-agent \ +DD_TRACE_AGENT_PORT=8126 \ +java -javaagent:/path/to/the/dd-java-agent.jar -jar /your/app.jar +``` + +ou avec des propriétés système : + +```bash +java -javaagent:/path/to/the/dd-java-agent.jar \ + -Ddd.agent.host=datadog-agent \ + -Ddd.agent.port=8126 \ + -jar /your/app.jar +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="python" >}} + +```python +from ddtrace import tracer + +tracer.configure( + hostname='datadog-agent', + port=8126, +) +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="ruby" >}} + +```ruby +Datadog.configure do |c| + c.agent.host = 'datadog-agent' + c.agent.port = 8126 +end +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="go" >}} + +{{% tracing-go-v2 %}} + +```go +package main + +import ( + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" +) + +func main() { + tracer.Start(tracer.WithAgentAddr("datadog-agent:8126")) + defer tracer.Stop() +} +``` + +{{< /programming-lang >}} + +{{< programming-lang lang="nodeJS" >}} + +```javascript +const tracer = require('dd-trace').init({ + hostname: 'datadog-agent', + port: 8126 +}); +``` + +{{< /programming-lang >}} + +{{< programming-lang lang=".NET" >}} + +Définissez les variables d'environnement avant d'exécuter l'application instrumentée : + +```bash +# Environment variables +export CORECLR_ENABLE_PROFILING=1 +export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8} +export CORECLR_PROFILER_PATH= +export DD_DOTNET_TRACER_HOME=/opt/datadog + +# For containers +export DD_AGENT_HOST=datadog-agent +export DD_TRACE_AGENT_PORT=8126 + +# Start your application +dotnet example.dll +``` + +La valeur de la variable d'environnement `CORECLR_PROFILER_PATH` varie en fonction du système sur lequel l'application s'exécute : + + Valeur de | CORECLR_PROFILER_PATH + ------------------------------------------|---------------------------- + Alpine Linux x64 | `/datadog/linux-musl-x64/Datadog.Trace.ClrProfiler.Native.so` + Linux x64 | `/datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so` + Linux ARM64 | `/datadog/linux-arm64/Datadog.Trace.ClrProfiler.Native.so` + Windows x64 | `\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll` + Windows x86 | `\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll` + +Dans le tableau ci-dessus, `` fait référence au répertoire contenant les fichiers `.dll` de l'application. + +{{< /programming-lang >}} + +{{< /programming-lang-wrapper >}} + +### IP de l'hôte Docker {#docker-host-ip} + +Le port du conteneur Agent `8126` doit être lié directement à l'hôte. +Configurez votre traceur d'application pour signaler à la route par défaut de ce conteneur (déterminez cela en utilisant la commande `ip route`). + +Ce qui suit est un exemple pour le Traceur Python, en supposant que `172.17.0.1` est la route par défaut : + +```python +from ddtrace import tracer + +tracer.configure(hostname='172.17.0.1', port=8126) +``` + +### Socket de domaine Unix (UDS) {#unix-domain-socket-uds} +Pour soumettre des traces via socket, le socket doit être monté sur le conteneur Agent et votre conteneur d'application. + +```bash +# Datadog Agent +docker run -d --name datadog-agent \ + --network \ + --cgroupns host \ + --pid host \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -v /var/run/datadog/:/var/run/datadog/ \ + -e DD_API_KEY= \ + -e DD_APM_ENABLED=true \ + -e DD_SITE= \ + -e DD_APM_NON_LOCAL_TRAFFIC=true \ + -e DD_APM_RECEIVER_SOCKET=/var/run/datadog/apm.socket \ + registry.datadoghq.com/agent:latest +# Application +docker run -d --name app \ + --network \ + -v /var/run/datadog/:/var/run/datadog/ \ + -e DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket \ + company/app:latest +``` + +Référez-vous à la [documentation d'instrumentation APM spécifique au langage][3] pour les paramètres du traceur. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://app.datadoghq.com/organization-settings/api-keys +[2]: /fr/tracing/configure_data_security/#replace-tags +[3]: /fr/tracing/setup/ +[4]: /fr/agent/proxy +[5]: /fr/tracing/guide/ignoring_apm_resources/ +[6]: /fr/tracing/troubleshooting/agent_rate_limits +[7]: /fr/getting_started/site/ +[8]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml \ No newline at end of file diff --git a/content/fr/getting_started/integrations/aws.md b/content/fr/getting_started/integrations/aws.md index bf1a5e5a2de..be900a9de84 100644 --- a/content/fr/getting_started/integrations/aws.md +++ b/content/fr/getting_started/integrations/aws.md @@ -1,4 +1,7 @@ --- +description: Intégrez votre compte Amazon Web Services avec Datadog en utilisant CloudFormation. + Configurez les rôles IAM, activez les intégrations de services et configurez le + transfert de journaux. further_reading: - link: https://www.datadoghq.com/blog/aws-monitoring/ tag: Blog @@ -23,192 +26,212 @@ further_reading: text: Surveiller Amazon ECS Anywhere avec Datadog - link: /integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/?tab=cloudformation tag: Documentation - text: Flux de métriques AWS CloudWatch avec Kinesis Data Firehose + text: Flux de métriques AWS CloudWatch avec Amazon Data Firehose - link: https://www.datadoghq.com/blog/monitor-aws-graviton3-with-datadog/ tag: Blog text: Surveiller vos instances EC2 basées sur Graviton3 avec Datadog title: Débuter avec AWS --- +## Aperçu {#overview} + +Ce guide vous accompagne dans l'intégration d'un compte Amazon Web Services (AWS) avec Datadog en utilisant le modèle CloudFormation de Datadog. Après avoir terminé la configuration, vous pouvez activer des intégrations de services AWS individuelles, installer l'agent Datadog sur des instances EC2 pour une visibilité approfondie et configurer le transfert de journaux. + +## Prérequis {#prerequisites} + +Avant de commencer, assurez-vous de disposer d'un compte [AWS][7]. Le modèle CloudFormation crée un rôle IAM et une politique associée, permettant au compte AWS de Datadog d'effectuer des appels API à votre compte AWS pour collecter et transmettre des données. Votre utilisateur AWS doit disposer des autorisations IAM suivantes pour exécuter le modèle : + +{{% collapse-content title="Autorisations IAM requises" level="h4" expanded=false id="iam-permissions" %}} +- cloudformation:CreateStack +- cloudformation:CreateUploadBucket +- cloudformation:DeleteStack +- cloudformation:DescribeStacks +- cloudformation:DescribeStackEvents +- cloudformation:GetStackPolicy +- cloudformation:GetTemplateSummary +- cloudformation:ListStacks +- cloudformation:ListStackResources +- ec2:DescribeSecurityGroups +- ec2:DescribeSubnets +- ec2:DescribeVpcs +- iam:AttachRolePolicy +- iam:CreatePolicy +- iam:CreateRole +- iam:DeleteRole +- iam:DeleteRolePolicy +- iam:DetachRolePolicy +- iam:GetRole +- iam:GetRolePolicy +- iam:PassRole +- iam:PutRolePolicy +- iam:TagRole +- iam:UpdateAssumeRolePolicy +- kms:Decrypt +- lambda:AddPermission +- lambda:CreateFunction +- lambda:DeleteFunction +- lambda:GetCodeSigningConfig +- lambda:GetFunction +- lambda:GetFunctionCodeSigningConfig +- lambda:GetLayerVersion +- lambda:InvokeFunction +- lambda:PutFunctionConcurrency +- lambda:RemovePermission +- lambda:TagResource +- logs:CreateLogGroup +- logs:DeleteLogGroup +- logs:DescribeLogGroups +- logs:PutRetentionPolicy +- oam:ListSinks +- oam:ListAttachedLinks +- s3:CreateBucket +- s3:DeleteBucket +- s3:DeleteBucketPolicy +- s3:GetEncryptionConfiguration +- s3:GetObject +- s3:GetObjectVersion +- s3:PutBucketPolicy +- s3:PutBucketPublicAccessBlock +- s3:PutEncryptionConfiguration +- s3:PutLifecycleConfiguration +- secretsmanager:CreateSecret +- secretsmanager:DeleteSecret +- secretsmanager:GetSecretValue +- secretsmanager:PutSecretValue +- serverlessrepo:CreateCloudFormationTemplate +{{% /collapse-content %}} + +## Configurer {#setup} + +1. Allez à la [page de configuration d'intégration AWS][8] dans Datadog et cliquez sur {{< ui >}}Add AWS Account{{< /ui >}}. +1. Configurez les paramètres de l'intégration sous l'option {{< ui >}}Automatically using CloudFormation{{< /ui >}}. + 1. Sélectionnez les régions AWS à intégrer. + 1. Ajoutez votre [clé API Datadog][9]. + 1. Optionnellement, envoyez des journaux et d'autres données à Datadog avec le [Lambda Datadog Forwarder][1]. + 1. Optionnellement, activez [Cloud Security Misconfigurations][54] pour analyser votre environnement cloud, vos hôtes et vos conteneurs pour des erreurs de configuration et des risques de sécurité. +1. Cliquez sur {{< ui >}}Launch CloudFormation Template{{< /ui >}}. Cela ouvre la Console AWS et charge la pile CloudFormation. Tous les paramètres sont remplis en fonction de vos sélections dans le formulaire Datadog précédent, donc vous n'avez pas besoin de les modifier sauf si vous le souhaitez. +**Remarque:** Le paramètre `DatadogAppKey` permet à la pile CloudFormation d'effectuer des appels API à Datadog pour ajouter et modifier la configuration Datadog pour ce compte AWS. La clé est générée automatiquement et liée à votre compte Datadog. +1. Cochez les cases requises d'AWS et cliquez sur {{< ui >}}Create stack{{< /ui >}}. Cela lance le processus de création de la pile Datadog ainsi que trois piles imbriquées. Cela peut prendre plusieurs minutes. Assurez-vous que la pile est créée avec succès avant de continuer. +1. Après la création de la pile, retournez à la tuile d'intégration AWS dans Datadog et cliquez sur {{< ui >}}Ready!{{< /ui >}} +1. Attendez jusqu'à 10 minutes pour que les données commencent à être collectées, puis consultez le tableau de bord [vue d'ensemble AWS][12] pour voir les métriques envoyées par vos services et infrastructures AWS : +{{< img src="getting_started/integrations/aws-dashboard.png" alt="Le tableau de bord vue d'ensemble AWS dans le compte Datadog. À gauche se trouve le logo AWS et un graphique d'événements AWS indiquant 'Aucune entrée correspondante trouvée'. Au centre se trouvent des graphiques liés aux volumes EBS avec des données numériques affichées et une carte thermique montrant des données cohérentes. À droite se trouvent des graphiques liés aux ELB montrant des données numériques ainsi qu'un graphique de séries temporelles affichant des pics de données provenant de trois sources.">}} + +Pour configurer plusieurs comptes à la fois, utilisez l'[API][3], l'[AWS CLI][4] ou [Terraform][5]. Pour plus d'informations, consultez le [guide Datadog-Amazon CloudFormation][6]. + +**Remarque** : Le modèle CloudFormation de Datadog ne prend en charge que la création et la suppression de ses ressources définies. Consultez [Mettre à jour votre modèle de pile][59] pour des conseils sur l'application des mises à jour à votre pile. + +### À quoi s'attendre après la configuration {#what-to-expect-after-setup} + +Après que l'intégration est configurée avec succès, les données commencent à apparaître dans Datadog selon la chronologie suivante : + +- **Métriques** : Apparaissent en environ 10 minutes avec le polling API, ou 2-3 minutes avec [CloudWatch Metric Streams][60]. Tous les services ne rapportent pas à la même cadence, donc un tableau de bord partiellement peuplé pendant la première heure est normal. +- **Tags** : Les tags des ressources AWS peuvent prendre un temps supplémentaire à se propager. Les modifications des tags dans AWS peuvent prendre de 15 minutes à plusieurs heures pour se refléter dans Datadog. +- **Ressources** : Découvertes lors du prochain cycle de crawl des ressources après la configuration. +- **Journaux** : Nécessite une configuration séparée. Voir [Envoyer des journaux](#send-logs) pour les instructions de configuration. + +
    +Datadog ne remplit pas les données métriques historiques d'avant l'activation de l'intégration. Les métriques commencent à circuler à partir du moment où l'intégration est configurée avec succès. +
    + +## Configuration {#configuration} + +### Activer les intégrations pour les services AWS individuels {#enable-integrations-for-individual-aws-services} + +Voir la [page des intégrations][13] pour une liste complète des sous-intégrations disponibles. Beaucoup de ces intégrations sont installées par défaut lorsque Datadog reconnaît des données provenant de votre compte AWS. + +Utilisez l'onglet {{< ui >}}Metric Collection{{< /ui >}} sur la [page d'intégration AWS][8] pour configurer les services dont l'intégration Datadog collecte les métriques. + +### Ajouter des régions {#add-regions} + +Sous l'onglet {{< ui >}}General{{< /ui >}} sur la [page d'intégration AWS][8], vous pouvez contrôler les régions AWS où Datadog collecte des métriques, des événements CloudWatch et des ressources. + +## Envoyer des journaux{#send-logs} + +Il existe deux façons d'envoyer des journaux de service AWS à Datadog : + +- [Destination Amazon Data Firehose][10] : Recommandé pour les journaux CloudWatch à fort volume. +- [Fonction Lambda Forwarder][11] : Nécessaire pour les traces, les métriques améliorées ou les métriques personnalisées des fonctions Lambda. Également recommandé pour les journaux provenant de S3 ou d'autres ressources qui ne peuvent pas être diffusées directement vers Amazon Data Firehose. + +Voir [Activer la journalisation pour votre service AWS][14] pour les instructions de configuration. + +### Validation {#validation} + +Une fois que vous avez activé les journaux, trouvez-les dans le [Log Explorer][15] en utilisant soit les facettes `source` ou `service` du panneau de facettes, comme cet exemple de S3 : +{{< img src="getting_started/integrations/logs-explorer.png" alt="La page Log Explorer du compte Datadog. À gauche, l'image affiche les facettes Source et Service, toutes deux cochées avec 's3'. À droite, certaines entrées de journal sont affichées sous forme de liste.">}} + +## Obtenez plus de la plateforme Datadog {#get-more-from-the-datadog-platform} + +### Visibilité approfondie avec l'agent Datadog sur EC2 {#deeper-visibility-with-the-datadog-agent-on-ec2} + +Par défaut, l'intégration AWS de Datadog explore l'API CloudWatch pour les métriques fournies par AWS, mais vous pouvez obtenir une visibilité encore plus approfondie sur vos instances EC2 avec l'[agent Datadog][16]. L'agent est un démon léger qui rapporte des métriques et des événements, et peut également être configuré pour les journaux et les traces. La section [Installation de l'Agent][17] de l'application Datadog fournit des instructions pour installer l'Agent sur une grande variété de systèmes d'exploitation. De nombreux systèmes d'exploitation (par exemple, Amazon Linux) ont des commandes d'installation en une étape que vous pouvez exécuter depuis le terminal de l'instance pour installer l'Agent : +{{< img src="getting_started/integrations/integrations-agent-installation.png" alt="La section « Agent » de l'onglet « Intégrations » dans Datadog. À gauche, une liste des systèmes d'exploitation pris en charge pour l'Agent Datadog est affichée. 'Amazon Linux' est mis en évidence dans cette liste. À droite, est affiché « Utilisez notre installation facile en une étape ». La commande pour installer l'Agent est affichée en dessous, avec la section DD_API_KEY obfusquée.">}} -## Présentation - -Ce guide présente la procédure globale à suivre pour intégrer un compte Amazon Web Services (AWS) à Datadog grâce au modèle CloudFormation de Datadog. - -Vous devez essentiellement créer un rôle IAM et une stratégie associée afin d'activer le compte AWS de Datadog. Vous pourrez ainsi effectuer des appels API vers votre compte AWS afin de recueillir et de transmettre des données. Le modèle déploie également la fonction Lambda du [Forwarder Datadog][1], qui vous permet d'envoyer des logs à Datadog. Le modèle CloudFormation fournit tous les outils dont vous avez besoin pour transmettre ces données à votre compte Datadog. De plus, Datadog met à jour le modèle CloudFormation afin de toujours inclure les dernières fonctionnalités. - -Une fois la connexion initiale établie, vous pouvez activer les intégrations de chaque service AWS dont vous avez besoin pour votre environnement. D'un simple clic, Datadog provisionne les ressources nécessaires dans votre compte AWS et commence à interroger les métriques et événements des services que vous utilisez. Pour les services AWS les plus populaires, Datadog fournit des dashboards prêts à l'emploi, qui vous permettent de consulter immédiatement des informations personnalisables pour gagner en visibilité sur vos environnements. Ce guide vous explique comment configurer l'intégration et comment installer l'Agent Datadog sur une instance EC2 Amazon Linux. Il comprend également une présentation globale des fonctionnalités de l'intégration. Consultez la rubrique [Activer des intégrations pour des services AWS spécifiques](#activer-des-integrations-pour-des-services-aws-specifiques) pour obtenir la liste des sous-intégrations disponibles. - -Vous pouvez répéter ce processus pour autant de comptes AWS que vous le souhaitez, ou utiliser l'[API][3], l'[interface de ligne de commande AWS][4] ou [Terraform][5] pour configurer plusieurs comptes à la fois. Pour en savoir plus, consultez le [guide Datadog/Amazon CloudFormation][6]. - -## Prérequis - -Avant de commencer, vérifiez que vous disposez des ressources suivantes : - -1. Un compte [AWS][7]. Votre utilisateur AWS doit disposer des autorisations IAM suivantes pour pouvoir exécuter le modèle CloudFormation : - - * cloudformation:CreateStack - * cloudformation:CreateUploadBucket - * cloudformation:DeleteStack - * cloudformation:DescribeStacks - * cloudformation:DescribeStackEvents - * cloudformation:GetStackPolicy - * cloudformation:GetTemplateSummary - * cloudformation:ListStacks - * cloudformation:ListStackResources - * ec2:DescribeSecurityGroups - * ec2:DescribeSubnets - * ec2:DescribeVpcs - * iam:AttachRolePolicy - * iam:CreatePolicy - * iam:CreateRole - * iam:DeleteRole - * iam:DeleteRolePolicy - * iam:DetachRolePolicy - * iam:GetRole - * iam:GetRolePolicy - * iam:PassRole - * iam:PutRolePolicy - * iam:UpdateAssumeRolePolicy - * kms:Decrypt - * lambda:AddPermission - * lambda:CreateFunction - * lambda:DeleteFunction - * lambda:GetCodeSigningConfig - * lambda:GetFunction - * lambda:GetFunctionCodeSigningConfig - * lambda:GetLayerVersion - * lambda:InvokeFunction - * lambda:PutFunctionConcurrency - * lambda:RemovePermission - * lambda:TagResource - * logs:CreateLogGroup - * logs:DeleteLogGroup - * logs:DescribeLogGroups - * logs:PutRetentionPolicy - * oam:ListSinks - * oam:ListAttachedLinks - * s3:CreateBucket - * s3:DeleteBucket - * s3:DeleteBucketPolicy - * s3:GetEncryptionConfiguration - * s3:GetObject - * s3:GetObjectVersion - * s3:PutBucketPolicy - * s3:PutBucketPublicAccessBlock - * s3:PutEncryptionConfiguration - * secretsmanager:CreateSecret - * secretsmanager:DeleteSecret - * secretsmanager:GetSecretValue - * secretsmanager:PutSecretValue - * serverlessrepo:CreateCloudFormationTemplate +Une fois l'Agent installé, il est représenté graphiquement dans le [Infrastructure List] avec une icône d'os : +{{< img src="getting_started/integrations/infrastructure-list.png" alt="La liste d'infrastructure montrant deux hôtes sous forme de liste. Les deux hôtes affichent l'icône AWS pour l'intégration AWS et « aws » affiché dans une boîte bleue pour montrer qu'ils sont associés à l'intégration AWS. Un hôte affiche également une icône d'os et des boîtes bleues pour « ntp » et « system ».">}} -## Implémentation +La capture d'écran ci-dessus montre l'hôte avec l'Agent Datadog rapportant des données des vérifications [System][19] et [NTP][20]. La vérification System fournit des métriques liées au CPU, à la mémoire, au système de fichiers et à l'I/O, offrant des informations supplémentaires sur l'hôte. Vous pouvez activer des [integrations][21] supplémentaires pour adapter votre configuration à votre environnement et à votre cas d'utilisation, ou utiliser également [DogStatsD][22] pour envoyer des métriques personnalisées directement à Datadog. -2. Accédez à la [page de configuration de l'intégration AWS][8] dans Datadog, puis cliquez sur **Add AWS Account**. - -3. Configurez les paramètres de l'intégration sous l'option **Automatically using CloudFormation**. - a. Sélectionnez les régions AWS pour lesquelles vous souhaitez configurer l'intégration. - b. Ajoutez votre [clé d'API][9] Datadog. - c. Si vous le souhaitez, envoyez des logs et d'autres données à Datadog via la [fonction Lambda du Forwarder Datadog][1]. - d. Vous avez également la possibilité d'activer la solution [Cloud Security Posture Management][54] (CSPM) afin d'analyser votre environnement cloud, vos hosts et vos conteneurs dans le but de détecter les problèmes de configuration et les risques de sécurité. - -5. Cliquez sur **Launch CloudFormation Template** afin d'ouvrir la console AWS et de charger la pile CloudFormation. Tous les paramètres définis varient en fonction des informations que vous avez fournies dans le formulaire Datadog précédent. Vous n'avez donc pas besoin de modifier les paramètres, sauf si vous le souhaitez. -**Remarque** : le paramètre `DatadogAppKey` active la pile CloudFormation et permet donc d'effectuer des appels API vers Datadog, afin d'ajouter et de modifier la configuration Datadog pour ce compte AWS. La clé est automatiquement générée et liée à votre compte Datadog. - -6. Cochez les cases requises depuis AWS et cliquez sur **Create stack**. La création de la pile Datadog ainsi que des trois piles imbriquées commence alors. Ce processus peut prendre quelques minutes. Vérifiez que la pile a bien été créée avant de poursuivre. - -7. Une fois la pile créée, revenez au carré de l'intégration AWS dans Datadog et cliquez sur **Ready!**. - -8. Patientez 10 minutes le temps que les données commencent à être recueillies, puis accédez au [dashboard récapitulatif d'AWS][12] prêt à l'emploi pour visualiser les métriques envoyées par vos services et votre infrastructure AWS : -{{< img src="getting_started/integrations/aws-dashboard.png" alt="Le dashboard récapitulatif d'AWS dans le compte Datadog. À gauche figure le logo AWS et un graphique d'événement AWS indiquant le message « No matching entries found ». Au centre de l'image se trouvent des informations sur les volumes EBS, avec des données numériques et une carte thermique affichant des données régulières. À droite se trouvent des informations sur les ELB, avec des données numériques ainsi qu'un graphique de série temporelle présentant des données irrégulières provenant de trois sources.">}} - -## Activer des intégrations pour des services AWS spécifiques - -Consultez la [page Intégrations][13] pour découvrir la liste complète des sous-intégrations disponibles. Bon nombre de ces intégrations sont installées par défaut dès lors que Datadog identifie que vous recevez des données provenant de votre compte AWS. - -## Envoyer des logs - -Il existe deux façons d'envoyer des logs de service AWS à Datadog : +Consultez la [FAQ sur l'installation de l'Agent Datadog sur des instances cloud][23] pour en savoir plus sur les avantages de cette méthode. -- [Destination Kinesis Firehose][9] : utilisez la destination Datadog dans votre flux de diffusion Kinesis Firehose pour transmettre vos logs à Datadog. Il est conseillé de procéder de la même façon pour envoyer un volume très élevé de logs depuis CloudWatch. -- [Fonction Lambda du Forwarder][11] : déployez la fonction Lambda du Forwarder Datadog. Celle-ci s'abonne aux compartiments S3 ou à vos groupes de logs CloudWatch et transmet vos logs à Datadog. Vous **devez** procéder de cette façon pour envoyer de façon asynchrone des traces, des métriques optimisées ou des métriques custom depuis vos fonctions Lambda via des logs. Datadog vous conseille également d'utiliser cette méthode pour envoyer des logs depuis S3 ou depuis d'autres ressources ne prenant pas en charge la diffusion directe de données vers Kinesis. - -Consultez la rubrique [Activer la journalisation pour votre service AWS][14] pour recevoir des logs depuis les services AWS les plus populaires. - -### Validation - -Une fois vos logs activés, consultez-les dans le [Log Explorer][15] en sélectionnant la facette `source` ou `service` dans le volet dédié. Voici un exemple de vue Log Explorer pour S3 : -{{< img src="getting_started/integrations/logs-explorer.png" alt="La page Log Explorer du compte Datadog. À gauche de l'image se trouvent les facettes Source et Service, pour lesquelles l'option « s3 » est cochée. Sur la droite, des entrées de log sont affichées dans une liste.">}} - -## Tirer pleinement profit de la plateforme Datadog - -### Gagner en visibilité avec l'Agent Datadog sur EC2 - -Par défaut, l'intégration Datadog/AWS a recours à l'API CloudWatch afin de récupérer les métriques fournies par AWS. Toutefois, pour optimiser votre visibilité sur vos instances EC2, vous pouvez utiliser l'[Agent Datadog][16]. Il s'agit un daemon léger qui transmet des métriques et des événements. Il peut également être configuré afin de recueillir des logs et des traces. La section [Agent Installation][17] de l'application Datadog contient des instructions d'installation de l'Agent pour un vaste choix de systèmes d'exploitation. Pour de nombreux systèmes d'exploitation (par exemple, Amazon Linux), vous pouvez exécuter des commandes d'installation complète de l'Agent depuis le terminal de l'instance : -{{< img src="getting_started/integrations/integrations-agent-installation.png" alt="La section Agent de l'onglet Integrations de Datadog. À gauche figure la liste des systèmes d'exploitation prenant en charge l'Agent Datadog. L'option « Amazon Linux » est mise en surbrillance dans cette liste. Sur la droite se trouve la section « Use our easy one-step install ». La commande d'installation de l'Agent est affichée sous cette section. La valeur de l'option DD_API_KEY est obfusquée.">}} - -Une fois l'Agent installé, il est représenté par une icône en forme d'os dans la [liste d'infrastructures][18] : -{{< img src="getting_started/integrations/infrastructure-list.png" alt="La liste d'infrastructures avec deux hosts dans une liste. Les deux hosts possèdent une icône AWS ainsi qu'une case bleue « aws » pour indiquer qu'ils sont associés à l'intégration AWS. Un des hosts inclut également une icône en forme d'os, ainsi que les cases bleues « ntp » et « system ».">}} - -Dans la capture d'écran ci-dessus, le host sur lequel l'Agent Datadog se trouve transmet des données à partir des checks [System][19] et [NTP][20]. Le check System fournit des métriques relatives au CPU, à la mémoire, au système de fichiers et aux E/S, afin d'obtenir des informations exploitables sur le host. Vous pouvez activer des [intégrations][21] supplémentaires en fonction de votre environnement et de vos scénarios d'utilisation, ou encore utiliser [DogStatsD][22] pour envoyer directement des métriques custom à Datadog. +### Utilisation de l'Agent Datadog avec Amazon Container Services {#using-the-datadog-agent-with-amazon-container-services} -Consultez la [FAQ sur l'installation de l'Agent Datadog sur des instances cloud][23] pour en savoir plus sur les avantages de cette méthode. +Pour les environnements conteneurisés, vous pouvez utiliser l'Agent Datadog, que vous gériez vos instances ou que vous utilisiez [Fargate][24] pour un environnement sans serveur. -### Utiliser l'Agent Datadog avec les services de conteneurs Amazon +#### ECS avec EC2 launch type {#ecs-with-ec2-launch-type} -Que vous gériez vous-même vos instances ou utilisiez [Fargate][24] pour un environnement sans serveur, vous pouvez utiliser l'Agent Datadog pour vos environnements conteneurisés. +Utilisez la [documentation Amazon ECS][25] pour exécuter l'[Agent Docker Datadog][26] sur les instances EC2 de votre cluster ECS. Consultez la [Amazon ECS Data Collection documentation][27] pour voir les métriques et événements signalés à votre compte Datadog. -#### ECS avec le type de lancement EC2 +#### ECS avec Fargate launch type {#ecs-with-fargate-launch-type} -Référez-vous à la [documentation relative à Amazon ECS][25] pour exécuter l'[Agent Docker Datadog][26] sur les instances EC2 de votre cluster ECS. Consultez la [section sur la collecte de logs][27] pour découvrir les métriques et événements transmis à votre compte Datadog. +Utilisez la [Amazon ECS on AWS Fargate documentation][28] pour exécuter l'Agent en tant que conteneur dans la même définition de tâche que votre application. **Remarque** : La version 6.1.1 ou supérieure de l'Agent Datadog est nécessaire pour tirer pleinement parti de l'intégration Fargate. -#### ECS avec le type de lancement Fargate +#### AWS Batch avec Fargate orchestration type {#aws-batch-with-fargate-orchestration-type} -Référez-vous à la [documentation relative à Amazon ECS sur AWS Fargate][28] pour exécuter l'Agent en tant que conteneur dans la même définition de tâche que votre application. **Remarque** : la version 6.11 de l'Agent Datadog, ou une version ultérieure, est requise pour profiter de l'ensemble des fonctionnalités de l'intégration Fargate. +Utilisez la [Amazon ECS on AWS Fargate for AWS Batch documentation][58] pour exécuter l'Agent en tant que conteneur dans la même définition de tâche AWS Batch que votre application. **Remarque** : La version 6.1.1 ou supérieure de l'Agent Datadog est nécessaire pour tirer pleinement parti de l'intégration Fargate. -#### EKS +#### EKS {#eks} -Comme indiqué dans la [documentation sur les distributions Kubernetes][29], aucune configuration spécifique n'est requise pour Amazon Elastic Kubernetes Service (EKS), Référez-vous à la [documentation relative à Kubernetes][30] pour déployer l'Agent dans votre cluster EKS. +Aucune configuration spécifique n'est nécessaire pour Amazon Elastic Kubernetes Service (EKS), comme mentionné dans la [Kubernetes Distributions documentation][29]. Utilisez la [dedicated Kubernetes documentation][30] pour déployer l'Agent dans votre cluster EKS. -#### EKS avec Fargate +#### EKS avec Fargate {#eks-with-fargate} -Les pods Fargate sont gérés par AWS. Pour cette raison, ils excluent les checks système basés sur des hosts, notamment ceux portant sur le processeur et la mémoire. Pour recueillir des données depuis vos pods AWS Fargate, consultez la [documentation relative à Amazon EKS sur AWS Fargate][31] afin d'exécuter l'Agent en tant que sidecar de votre pod d'application, avec des règles de contrôle d'accès basé sur les rôles (RBAC) personnalisées. **Remarque** : la version 7.17+ de l'Agent Datadog est requise. +Étant donné que les pods Fargate sont gérés par AWS, ils excluent les vérifications système basées sur l'hôte comme le CPU et la mémoire. Pour collecter des données de vos pods AWS Fargate, utilisez la [Amazon EKS on AWS Fargate documentation][31] pour exécuter l'Agent en tant que sidecar de votre pod d'application avec un contrôle d'accès basé sur les rôles (RBAC) personnalisé. **Remarque** : Cela nécessite la version 7.17 ou supérieure de l'Agent Datadog. -#### EKS Anywhere +#### EKS Anywhere {#eks-anywhere} Référez-vous à la [documentation relative à EKS Anywhere][32] pour vos clusters Kubernetes sur site. -### Créer des ressources Datadog supplémentaires -Vous pouvez non seulement utiliser l'interface ou l'[API][33] Datadog, mais également créer de nombreuses [ressources Datadog][34] avec le [registre CloudFormation][35]. Pour une meilleure visibilité et une résolution simplifiée de vos problèmes, utilisez des [dashboards][36] afin de représenter des données clés, d'appliquer des [fonctions][37] et de repérer des [corrélations de métriques][38]. +### Créer des ressources Datadog supplémentaires {#create-additional-datadog-resources} +En plus d'utiliser l'interface Datadog ou l'[API][33], vous pouvez créer de nombreuses [Datadog resources][34] avec le [CloudFormation Registry][35]. Pour la visibilité et le dépannage, utilisez des [dashboards][36] pour afficher des données clés, appliquer des [Functions][37] et trouver des [Metric Correlations][38]. + +Pour être informé de tout comportement indésirable ou inattendu dans votre compte, créez des [monitors][39]. Les moniteurs évaluent constamment les données signalées dans votre compte et envoient des [Notifications][40] pour s'assurer que les bonnes informations parviennent aux bons membres de l'équipe. Consultez la [List of Notification Integrations][41] pour toutes les manières de notifier votre équipe. -Pour être informé en cas de comportement indésirable ou inattendu dans votre compte, créez des [monitors][39]. Les monitors évaluent en continu les données transmises à votre compte et envoient des [notifications][40] de façon à partager des informations pertinentes avec les personnes adéquates. Consultez la [liste des intégrations générant des notifications][41] pour découvrir toutes les solutions disponibles pour prévenir vos équipes. +## Explorez des produits connexes {#explore-related-products} -## Explorer des solutions connexes +### Sans serveur {#serverless} -### Serverless +Pour surveiller les fonctions AWS Lambda avec Datadog, consultez [Serverless][42] pour des instructions sur l'instrumentation de votre application, l'installation des [Serverless Libraries and Integrations][43], la mise en œuvre du [distributed tracing with serverless applications][44] ou le [troubleshooting serverless issues][45]. -Vous pouvez unifier les métriques, traces et logs provenant de vos fonctions AWS Lambda exécutant des applications sans serveur dans Datadog. Consultez la section [Informatique sans serveur][42] pour découvrir comment instrumenter votre application, installer des [bibliothèques et intégrations sans serveur][43], implémenter le [tracing distribué avec des applications sans serveur][44] et [corriger les problèmes de surveillance sans serveur][45]. +### APM {#apm} -### APM -Pour bénéficier d'analyses encore plus détaillées et récupérer des données supplémentaires à partir de vos applications et services AWS, activez la collecte de traces distribuées depuis l'intégration [AWS X-Ray][46] ou depuis un host sur lequel se trouve l'Agent Datadog avec [APM][47]. Consultez ensuite la rubrique [Explorer la solution APM Datadog][48] pour découvrir comment exploiter pleinement ces données afin d'obtenir des informations exploitables sur les performances de votre application. +Pour collecter des traces distribuées de vos applications et services AWS, utilisez l'Agent Datadog avec [APM][47]. Pour les fonctions AWS Lambda, instrumentez avec l'[Datadog Lambda Extension][44]. Consultez la [documentation APM][48] pour des détails sur l'analyse des données de performance des applications. -Il est également possible d'utiliser [Watchdog][49], une fonctionnalité algorithmique analysant les performances APM et les métriques d'infrastructure. Vous pourrez ainsi détecter automatiquement les problèmes potentiels concernant votre application et recevoir des notifications à ce sujet. +Vous pouvez également utiliser [Watchdog][49], une fonctionnalité algorithmique pour les performances APM et les métriques d'infrastructure, pour détecter automatiquement et être informé des problèmes potentiels d'application. -### Securité +### Sécurité {#security} -#### Cloud SIEM +#### Cloud SIEM {#cloud-siem} -Consultez la section [Débuter avec Cloud SIEM][50] pour appliquer des [règles de détection][51] prêtes à l'emploi à vos logs. Ces règles, qui sont personnalisables, génèrent des signaux de sécurité en cas de détection de menaces. Vous pouvez visualiser les signaux dans la vue [Security Signals Explorer][52]. Pour veiller à toujours prévenir la bonne équipe, configurez des préférences de notification pour plusieurs règles grâce aux [règles de notification][53]. +Consultez [Getting Started with Cloud SIEM][50] pour évaluer vos journaux par rapport aux [Log Detection Rules][51] prêtes à l'emploi. Ces règles sont personnalisables, et lorsque des menaces sont détectées, elles génèrent des signaux de sécurité accessibles dans le [Security Signals Explorer][52]. Utilisez [Notification Rules][53] pour configurer les préférences de notification sur plusieurs règles. -#### CSPM +#### Mauvaises configurations de la sécurité cloud {#cloud-security-misconfigurations} -Référez-vous au guide [Débuter avec CSPM][54] pour apprendre à détecter et à évaluer les problèmes de configuration dans votre environnement cloud. Les règles de détection CSPM prêtes à l'emploi pour le [cloud][55] et l'[infrastructure][56] sont appliquées aux données des configurations des ressources. Elles signalent les techniques malveillantes et les problèmes potentiels de configuration, afin que vous puissiez agir sans plus tarder. +Utilisez le guide [Setting Up Cloud Security Misconfigurations][54] pour détecter et évaluer les mauvaises configurations dans votre environnement cloud. Les données de configuration des ressources sont évaluées par rapport aux règles de conformité [Cloud][55] et [Infrastructure][56] prêtes à l'emploi pour signaler les techniques d'attaque et les mauvaises configurations potentielles. -### Dépannage +### Dépannage {#troubleshooting} -Si vous rencontrez l'erreur `Datadog is not authorized to perform sts:AssumeRole`, consultez la [page dédiée à sa résolution][2]. Pour tout autre problème, consultez le [guide de dépannage de l'intégration AWS][57]. +Si vous rencontrez l'erreur `Datadog is not authorized to perform sts:AssumeRole`, consultez sa page de dépannage dédiée [troubleshooting page][2]. Pour tout autre problème, consultez le [AWS integration troubleshooting guide][57]. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -216,7 +239,7 @@ Si vous rencontrez l'erreur `Datadog is not authorized to perform sts:AssumeRole [2]: /fr/integrations/guide/error-datadog-not-authorized-sts-assume-role/ [3]: /fr/api/latest/aws-integration/#create-an-aws-integration [4]: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html -[5]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws +[5]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws_account [6]: /fr/integrations/guide/amazon_cloudformation/ [7]: https://aws.amazon.com/getting-started/?nc1=f_cc [8]: https://app.datadoghq.com/integrations/amazon-web-services @@ -233,7 +256,7 @@ Si vous rencontrez l'erreur `Datadog is not authorized to perform sts:AssumeRole [19]: /fr/integrations/system/ [20]: /fr/integrations/ntp/ [21]: /fr/integrations/ -[22]: /fr/developers/dogstatsd/?tab=hostagent +[22]: /fr/extend/dogstatsd/?tab=hostagent [23]: /fr/agent/faq/why-should-i-install-the-agent-on-my-cloud-instances/ [24]: https://aws.amazon.com/fargate/ [25]: /fr/agent/amazon_ecs/?tab=awscli @@ -256,16 +279,19 @@ Si vous rencontrez l'erreur `Datadog is not authorized to perform sts:AssumeRole [42]: /fr/serverless [43]: /fr/serverless/libraries_integrations [44]: /fr/serverless/distributed_tracing -[45]: /fr/serverless/troubleshooting +[45]: /fr/serverless/aws_lambda/troubleshooting/ [46]: /fr/integrations/amazon_xray/ [47]: /fr/tracing/trace_collection/ -[48]: /fr/tracing/#explore-datadog-apm +[48]: /fr/tracing/ [49]: /fr/watchdog/ [50]: /fr/getting_started/cloud_siem/ [51]: /fr/security/default_rules/#cat-log-detection -[52]: /fr/security/explorer/ +[52]: /fr/security/cloud_siem/triage_and_investigate/investigate_security_signals [53]: /fr/security/notifications/rules/ -[54]: /fr/security/cspm/setup/ +[54]: /fr/security/cloud_security_management/setup/ [55]: /fr/security/default_rules/#cat-posture-management-cloud [56]: /fr/security/default_rules/#cat-posture-management-infra -[57]: /fr/integrations/guide/aws-integration-troubleshooting/ \ No newline at end of file +[57]: /fr/integrations/guide/aws-integration-troubleshooting/ +[58]: /fr/integrations/ecs_fargate/?tab=webui#installation-for-aws-batch +[59]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html +[60]: /fr/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/ \ No newline at end of file diff --git a/content/fr/mobile/_index.md b/content/fr/mobile/_index.md new file mode 100644 index 00000000000..989a9f86cce --- /dev/null +++ b/content/fr/mobile/_index.md @@ -0,0 +1,369 @@ +--- +algolia: + tags: + - Datadog mobile app + - mobile device +aliases: +- /fr/service_management/mobile/ +description: Surveillez votre infrastructure en déplacement avec l'application mobile + Datadog pour iOS et Android, qui propose des tableaux de bord, des alertes, des + incidents et une gestion des astreintes. +further_reading: +- link: /mobile/shortcut_configurations/ + tag: Documentation + text: Configurations de raccourcis +- link: /monitors/ + tag: Documentation + text: Découvrez les Moniteurs et les Alertes +- link: /dashboards/ + tag: Documentation + text: En savoir plus sur les dashboards +- link: https://www.datadoghq.com/blog/datadog-mobile-widgets/ + tag: Blog + text: Gagnez en flexibilité grâce aux widgets de dashboards mobiles Datadog +- link: https://www.datadoghq.com/blog/mobile-app-getting-started/ + tag: Blog + text: Premiers pas avec l'application mobile Datadog +- link: https://www.datadoghq.com/blog/mobile-app-reduce-mttr/ + tag: Blog + text: Réduisez votre temps moyen de réparation avec l'application mobile Datadog +- link: https://www.datadoghq.com/blog/designing-on-call-sounds + tag: Blog + text: Comment nous avons conçu des sons d'alerte empathiques pour les ingénieurs + d'astreinte +title: Application mobile Datadog +--- +L'application mobile Datadog vous permet de consulter les alertes de Datadog sur votre appareil mobile. Lors de la réception d'une alerte via On-Call, Slack ou email, vous pouvez enquêter sur les problèmes en ouvrant des graphiques de moniteur et des tableaux de bord sur votre appareil mobile. + +## Installation {#installing} + +Téléchargez l'application depuis l'[App Store Apple][1] pour votre appareil iOS ou depuis [Google Play][2] pour votre appareil Android. + +### Connexion {#logging-in} + +Vous pouvez vous connecter à l'aide de l'authentification standard, de l'authentification Google ou du protocole [SAML][3], que ce soit sur le site américain ou sur le site européen. + +#### Activation de SAML {#enabling-saml} + +La connexion SAML nécessite que vous configuriez et authentifiiez votre fournisseur SAML avec Datadog en utilisant votre navigateur iOS/Android par défaut. Pour la connexion SAML initiée par l'IdP, reportez-vous à la fin de cette section. Pour authentifier SAML : + +1. Dans l'application mobile, sélectionnez votre région de centre de données (par exemple, US1) dans le coin supérieur droit. +2. Appuyez sur le bouton de connexion. +3. Cliquez sur "Utiliser l'authentification unique (SAML) ?" lien. +4. Entrez votre email professionnel et envoyez l'email. +5. Sur votre appareil mobile, ouvrez l'email et cliquez sur le lien indiqué via votre navigateur par défaut. +6. Entrez les identifiants SAML de votre organisation pour être redirigé vers une session authentifiée de l'application mobile Datadog. + +Si vous le souhaitez, vous pouvez également vous authentifier à l'aide d'un code QR ou d'une saisie manuelle, tel que décrit ci-dessous. + +##### Code QR {#qr-code} + +1. Dans un navigateur, accédez à votre page [Paramètres personnels des organisations de votre compte Datadog][4] et cliquez sur **Se connecter à l'application mobile** pour l'organisation dans laquelle vous êtes actuellement connecté. Cela fait apparaître un code QR. +2. Utilisez l'application appareil photo par défaut de votre téléphone pour scanner le code QR, puis appuyez sur le lien suggéré pour ouvrir l'application Datadog. Vous serez automatiquement connecté. + +**Remarque** : Si vous cliquez sur le bouton **Se connecter à l'application mobile** d'une organisation à laquelle vous n'êtes pas actuellement connecté, l'UUID de l'organisation est automatiquement inséré dans l'écran de connexion. Vous devez toujours fournir une authentification en utilisant votre méthode standard. + +##### Saisie manuelle {#manual-entry} + +1. Pour entrer manuellement l'ID SAML, ouvrez l'application mobile Datadog et appuyez sur "Utiliser l'authentification unique (SAML) ?" bouton. +2. Appuyez sur le bouton "Utiliser une autre méthode de connexion" et entrez l'ID SAML manuellement. + +En cliquant sur **Autoriser** lors de la connexion, vous liez l'appareil mobile que vous utilisez à votre compte. Pour des raisons de sécurité, vous devrez suivre ce processus une fois par mois. + +##### Connexion initiée par l'IdP SAML {#saml-idp-initiated-login} + +Si vous continuez à rencontrer des erreurs lors de la connexion avec SAML, votre fournisseur d'identité peut imposer une connexion initiée par l'IdP. Pour plus d'informations concernant l'activation de la connexion SAML initiée par l'IdP, veuillez consulter notre [IdP Initiated SAML page][5]. + +##### Connexion par sous-domaine {#subdomain-login} + +1. Appuyez sur le sous-domaine et entrez votre [sous-domaine][29] personnalisé. +2. Procédez avec les étapes de connexion comme indiqué. + +### Changer d'organisation {#switch-organizations} + +Pour changer d'organisation, accédez à la page **Paramètres** de l'application mobile et cliquez sur **Organisation**. + +**Remarque** : Vous devrez peut-être vous réauthentifier lorsque vous changez d'organisation. + +### Se déconnecter {#log-out} +Pour se déconnecter, accédez à la page **Paramètres** de l'application mobile et cliquez sur **Se déconnecter**. Confirmez **Oui** que vous êtes sûr. + +## Sur appel {#on-call} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/on_call_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page sur appel iOS montrant les shifts, les horaires et les options d'escalade">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_On_Call.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page sur appel Android montrant les shifts, les horaires et les options d'escalade">}} + +{{% /tab %}} +{{< /tabs >}} + +La page Sur appel fournit une vue d'ensemble complète des shifts, des horaires, des pages et des politiques d'escalade. Vous pouvez filtrer les informations par utilisateur, équipe, urgence, statut ou date pour trouver rapidement les détails pertinents. Appuyer sur **Escalader** vous invite à confirmer l'escalade au niveau de politique suivant. Appuyer sur **Déclarer un incident** vous invite à entrer un titre et à fournir les attributs d'incident pertinents. + +Vous pouvez initier une page à un individu ou une équipe, et également remplacer des shifts existants en appuyant sur le shift que vous souhaitez remplacer. Vous pouvez consulter les investigations du moniteur Bits Investigation pour obtenir les constats initiaux et les conclusions. Pour plus d'informations, consultez [Datadog Sur appel][20]. + +Pour configurer les notifications Sur appel sur votre appareil mobile, consultez le guide pour [Configurer votre appareil mobile pour Datadog Sur appel][21]. + +
    +Si vous avez seulement besoin d'accéder à Sur appel sur mobile et souhaitez restreindre l'accès aux données de télémétrie sensibles sur les appareils mobiles, contactez le support Datadog. +
    + +## Incidents {#incidents} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/incident_may_2025.png" alt="Page des incidents dans l'application mobile Datadog Sur appel" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Incident.png" alt="Page des incidents dans l'application mobile Datadog Sur appel" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des Incidents, vous pouvez consulter et rechercher tous les incidents auxquels vous avez accès dans votre compte Datadog, afin d'assurer une réponse et une résolution quelle que soit votre localisation. Vous pouvez également déclarer et modifier des incidents, et communiquer de manière transparente avec vos équipes grâce à des intégrations avec Slack, Zoom, et bien d'autres. Pour plus d'informations sur les Incidents, consultez [Gestion des Incidents Datadog][12]. + +### Créer un incident {#create-an-incident} + +1. Accédez à la liste des incidents en appuyant sur l'onglet Incidents dans la barre inférieure. +2. Appuyez sur le bouton **+** dans le coin supérieur droit. +3. Donnez à votre incident un titre, une gravité et un commandant. + +## Centre de Notifications {#notification-center} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_notification_center.png" alt="Centre de notifications iOS dans l'application mobile Datadog" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_notification_center.png" alt="Centre de notifications Android dans l'application mobile Datadog" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +Le Centre de notifications répertorie toutes les notifications push reçues afin que le contexte des notifications ne soit jamais perdu. Vous pouvez filtrer par type de notification. + +## Tableaux de bord {#dashboards} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/dashboard_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page de tableau de bord iOS affichant la liste des tableaux de bord avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Dashboards.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page de tableau de bord Android affichant la liste des tableaux de bord avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des tableaux de bord, vous pouvez consulter et rechercher tous les tableaux de bord auxquels vous avez accès dans votre organisation Datadog, et les filtrer en utilisant les mêmes variables de modèle que vous avez configurées dans l'application web Datadog. Filtrez rapidement vos tableaux de bord en utilisant des vues enregistrées de variables de modèle. Pour plus d'informations sur les vues enregistrées de variables de modèle, consultez [Vues Enregistrées de Tableau de Bord][9]. Cliquez sur un tableau de bord individuel pour le visualiser. Cliquez sur la période en bas à droite pour personnaliser la plage du tableau de bord. + +**Remarque** : +- Pour configurer ou modifier un tableau de bord, vous devez [vous connecter à l'application Datadog dans le navigateur][10]. Pour plus d'informations, consultez [tableaux de bord][11]. +- Les liens de tableau de bord configurés en UTC s'ouvrent en UTC sur l'application mobile. Pour plus d'informations, consultez [configurations de tableau de bord][24]. +- Tous les types de widgets ne sont pas disponibles, ce qui signifie qu'ils ne montrent pas de données sur l'application mobile. Cela inclut la carte de topologie, le widget de liste (toutes les sources de données), le widget de treemap hérité et le widget de résumé SLO. + +## Moniteurs {#monitors} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/monitor_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des moniteurs iOS affichant la liste des moniteurs avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Monitors.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des moniteurs Android affichant la liste des moniteurs avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des Moniteurs, vous pouvez consulter et rechercher tous les moniteurs auxquels vous avez accès dans votre organisation Datadog. Vous pouvez spécifier par nom de champ et construire des requêtes de recherche spécifiques à la build en fonction de votre stratégie de balisage. Pour plus d'informations sur la recherche, consultez la [section Gérer la recherche des moniteurs][6]. + +Par exemple, pour filtrer sur les moniteurs de métriques liés à l'équipe SRE qui est alertée, utilisez la requête `"status:Alert type:Metric team:sre"`. Cliquez sur des alertes individuelles pour voir les détails, qui peuvent être filtrés par type et par heure d'alerte. Vous pouvez également mettre l'alerte en sourdine. Vos dix recherches les plus récentes sont enregistrées afin que vous ayez un accès plus rapide aux requêtes précédentes. De plus, vous pouvez filtrer votre liste de moniteurs en utilisant des vues enregistrées, qui apparaissent lorsque vous activez la barre de recherche. Vous pouvez également voir et exécuter des tests synthétiques lorsque vous consultez vos moniteurs synthétiques. + +**Remarque** : Pour configurer ou modifier des moniteurs, des notifications ou des vues enregistrées, vous devez utiliser l'[application web Datadog][7]. Tous les moniteurs configurés dans l'application web Datadog sont visibles dans l'application mobile. Pour plus d'informations, consultez [Creating monitors][8]. + +## Notebooks {#notebooks} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/notebook_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page iOS Notebooks affichant la liste des Notebooks avec des options de recherche et de filtrage.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Notebooks.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page Android Notebooks affichant la liste des Notebooks avec des options de recherche et de filtrage.">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page Notebooks, vous pouvez consulter et rechercher tous les Notebooks auxquels vous avez accès dans votre Datadog org, et les filtrer par tags. Les notebook tags vous permettent de filtrer par favorites, team et type. Consultez [notebook tags][19] pour plus d'informations. + +**Note** : Pour configurer ou modifier un notebook, vous devez [vous connecter à l'application web Datadog][10]. Pour plus d'informations, consultez [Notebooks][18]. + +## Traces {#traces} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/trace_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des traces iOS affichant la liste des traces avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Traces.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des traces Android affichant la liste des traces avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des Traces, vous pouvez consulter et rechercher toutes les traces auxquelles vous avez accès dans votre organisation Datadog. Vous pouvez affiner la liste grâce à des vues enregistrées ou créer des requêtes de recherche spécifiques en fonction de votre stratégie d'étiquetage. Pour plus d'informations sur la recherche, voir [Syntaxe de requête de l'explorateur de traces][16]. + +Par exemple, pour filtrer les traces avec l'étiquette `#env:prod` ou l'étiquette `#test`, utilisez la requête `"env:prod" OR test`. Cliquez sur des services individuels pour développer les spans associés, et sélectionnez des spans pour voir les informations, les erreurs et les journaux associés. Vous pouvez également ouvrir des traces à partir de services et de journaux. + +**Disponible uniquement sur iOS** : Les insights Watchdog indiquent les anomalies de latence et les anomalies d’erreur. Pour plus d'informations, consultez [Watchdog Insights][26]. + + +## Journaux {#logs} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/iOS_logs_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des journaux iOS affichant la liste des journaux avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Logs.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des journaux Android affichant la liste des journaux avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des Logs, vous pouvez consulter et rechercher tous les Logs ou flex logs auxquels vous avez accès dans votre Datadog org. Vous pouvez affiner la liste grâce à des vues enregistrées ou des filtres de requête. Pour plus d'informations sur la recherche, consultez [Log Search Syntax][23]. + +Vous pouvez également regrouper par log patterns et sélectionner différents attributs de Logs pour le clustering ou le grouping des résultats. Pour plus d'informations sur les motifs de journaux, consultez [Grouping Logs Into Patterns][22]. + +**Note** : Pour activer flex logs, accédez à la liste des Logs et appuyez en haut à droite pour sélectionner enable flex logs. + +**Disponible uniquement sur iOS** : Les insights Watchdog signalent les anomalies et les valeurs aberrantes des journaux. Pour plus d'informations, consultez [Watchdog Insights for Logs][25]. + + +## Services {#services} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/service_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des services iOS affichant la liste des services avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Services.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Page des services Android affichant la liste des services avec des options de recherche et de filtrage">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page des services, vous pouvez consulter, rechercher et filtrer tous les services auxquels vous avez accès dans votre compte Datadog depuis l'application mobile Datadog pour garantir la santé de votre service de n'importe où. Vous pouvez également consulter les déploiements récents, les ressources, les SLO et les moniteurs associés à ce service. Pour plus d'informations sur les outils d'investigation pour vos services, consultez [manage Catalog][17]. + +## Bits AI {#bits-ai} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Interface de chatbot Bits AI sur iOS où un utilisateur pose des questions sur un service.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Interface de chatbot Bits AI sur Android où un utilisateur pose des questions sur un service">}} + +{{% /tab %}} +{{< /tabs >}} + +Sur la page d'accueil de Bits AI, vous pouvez poser des questions sur la santé du système de votre organisation. Bits AI prend en charge les requêtes en langage naturel pour les journaux et les traces APM. Pour plus d'informations, voir [Bits Chat][27]. + +### Enquête Bits {#bits-investigation} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Résultats de l'enquête Bits affichés sur une page On-Call.">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Résultats de l'enquête Bits affichés sur une page On-Call.">}} + +{{% /tab %}} +{{< /tabs >}} + +Lorsqu'il est activé, Bits Investigation lance des enquêtes directement sur les pages On-Call. Ces enquêtes présentent des résultats et des conclusions initiales pour aider les intervenants à identifier les causes profondes potentielles et les prochaines étapes. Pour plus d'informations, voir [Bits Investigation][28]. + +## Question fréquemment posée {#frequently-asked-question} +### Comment rester connecté à l'application mobile ? {#how-do-i-remain-logged-into-the-mobile-app} +Après une authentification réussie à l'application mobile, vous resterez connecté pendant 90 jours. + +**Remarque** : Si vous avez activé les notifications, des notifications proactives seront envoyées 10 jours avant l'expiration du jeton. + +### Vais-je toujours recevoir des notifications si je suis déconnecté automatiquement ? {#will-i-still-receive-notifications-if-i-am-automatically-signed-out} +Si vous êtes déconnecté automatiquement pendant la période de jeton de 90 jours, vous pourrez toujours recevoir des notifications et serez invité à vous reconnecter. + +**Remarque** : Si vous vous déconnectez manuellement de l'application, vous cesserez de recevoir des notifications. + +### Pourquoi ne reçois-je pas de notifications ? {#why-am-i-not-receiving-notifications} +Vérifiez que vous avez activé les notifications pour l'application Datadog dans les paramètres de votre appareil. Si vous souhaitez vous assurer que les notifications contournent le mode Ne pas déranger, vérifiez que Critical Alerts est activé. + +### Vais-je recevoir des notifications pour toutes les organisations auxquelles je suis connecté ? {#will-i-receive-notifications-for-all-organizations-that-i-am-signed-into} +Oui, peu importe l'organisation vers laquelle vous passez, vous recevez des notifications pour toutes les organisations auxquelles vous êtes connecté. Cela inclut des notifications push critiques. + +### Que se passe-t-il si un utilisateur est désactivé ? {#what-happens-if-a-user-is-disabled} +Le jeton de l'application mobile sera invalide et forcera l'utilisateur à se déconnecter. + +## Dépannage {#troubleshooting} + +Pour obtenir de l'aide concernant le dépannage, [contactez le support Datadog][13]. Vous pouvez également envoyer un message dans le canal [Slack public de Datadog][14] [#mobile-app][15]. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://apps.apple.com/app/datadog/id1391380318 +[2]: https://play.google.com/store/apps/details?id=com.datadog.app +[3]: /fr/account_management/saml/#pagetitle +[4]: https://app.datadoghq.com/personal-settings/organizations +[5]: /fr/account_management/saml/mobile-idp-login/ +[6]: /fr/monitors/manage/#search +[7]: https://app.datadoghq.com/monitors +[8]: /fr/monitors/types +[9]: /fr/dashboards/template_variables/#saved-views +[10]: https://app.datadoghq.com/dashboard/lists +[11]: /fr/dashboards/ +[12]: /fr/monitors/incident_management +[13]: /fr/help/ +[14]: https://chat.datadoghq.com/ +[15]: https://datadoghq.slack.com/archives/C0114D5EHNG +[16]: /fr/tracing/trace_explorer/query_syntax/ +[17]: https://docs.datadoghq.com/fr/internal_developer_portal/catalog/set_up/ +[18]: https://docs.datadoghq.com/fr/notebooks/ +[19]: https://docs.datadoghq.com/fr/notebooks/#notebook-tags +[20]: https://docs.datadoghq.com/fr/incident_response/on-call/ +[21]: /fr/incident_response/on-call/guides/configure-mobile-device-for-on-call/?tab=ios +[22]: https://docs.datadoghq.com/fr/logs/explorer/analytics/patterns/ +[23]: https://docs.datadoghq.com/fr/logs/explorer/search_syntax/ +[24]: /fr/dashboards/configure/#configuration-actions +[25]: /fr/logs/explorer/watchdog_insights/ +[26]: /fr/watchdog/insights/?tab=logmanagement +[27]: /fr/bits_ai/bits_assistant/ +[28]: /fr/bits_ai/bits_ai_sre/ +[29]: /fr/account_management/multi_organization/#custom-sub-domains \ No newline at end of file diff --git a/content/fr/profiler/enabling/_index.mdoc.md b/content/fr/profiler/enabling/_index.mdoc.md new file mode 100644 index 00000000000..2583efa25c3 --- /dev/null +++ b/content/fr/profiler/enabling/_index.mdoc.md @@ -0,0 +1,89 @@ +--- +aliases: +- /fr/tracing/faq/profiling_migration/ +- /fr/tracing/profiler/enabling/ +- /fr/tracing/profiler/enabling/java/ +- /fr/tracing/profiler/enabling/python/ +- /fr/tracing/profiler/enabling/go/ +- /fr/tracing/profiler/enabling/ruby/ +- /fr/tracing/profiler/enabling/nodejs/ +- /fr/tracing/profiler/enabling/dotnet/ +- /fr/tracing/profiler/enabling/php/ +- /fr/profiler/enabling/java/ +- /fr/profiler/enabling/python/ +- /fr/profiler/enabling/go/ +- /fr/profiler/enabling/ruby/ +- /fr/profiler/enabling/nodejs/ +- /fr/profiler/enabling/dotnet/ +- /fr/profiler/enabling/php/ +- /fr/profiler/enabling/graalvm/ +- /fr/tracing/profiler/enabling/linux/ +- /fr/tracing/profiler/enabling/ddprof/ +- /fr/profiler/enabling/ddprof/ +content_filters: +- label: Language + option_group_id: profiler_language_options + trait_id: prog_lang +- label: Runtime + option_group_id: java_profiler_runtime_options + show_if: + - prog_lang: + - java + trait_id: runtime +further_reading: +- link: getting_started/profiler + tag: Documentation + text: Prise en main du profileur +- link: profiler/profile_visualizations + tag: Documentation + text: En savoir plus sur les visualisations de profils disponibles +- link: profiler/profiler_troubleshooting + tag: Documentation + text: Résoudre les problèmes rencontrés en utilisant le profiler +title: Activer le profileur +--- + +{% if equals($prog_lang, "java") %} +{% partial file="profiler/enabling/java.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "python") %} +{% partial file="profiler/enabling/python.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "go") %} +{% partial file="profiler/enabling/go.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "ruby") %} +{% partial file="profiler/enabling/ruby.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "node_js") %} +{% partial file="profiler/enabling/nodejs.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "dot_net") %} +{% partial file="profiler/enabling/dotnet.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "php") %} +{% partial file="profiler/enabling/php.mdoc.md" /%} +{% /if %} + + +{% if includes($prog_lang, ["c", "cpp", "rust"]) %} +{% partial file="profiler/enabling/ddprof.mdoc.md" /%} +{% /if %} + +## Vous ne savez pas quoi faire ensuite ? {% #not-sure-what-to-do-next %} + +Le guide [Premier pas avec le profileur en continu][1] présente un exemple de service problématique et vous explique comment utiliser le profileur en continu pour mieux comprendre le problème et le corriger. + +[1]: /fr/getting_started/profiler/ \ No newline at end of file diff --git a/content/fr/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md b/content/fr/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md new file mode 100644 index 00000000000..56838d3c1d9 --- /dev/null +++ b/content/fr/real_user_monitoring/application_monitoring/browser/troubleshooting.mdoc.md @@ -0,0 +1,16 @@ +--- +aliases: +- /fr/real_user_monitoring/browser/troubleshooting/ +description: Résolvez les problèmes courants avec le RUM Browser SDK, y compris les + données manquantes, les bloqueurs de publicités, les restrictions réseau et les + problèmes de configuration. +further_reading: +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: Blog + text: Real User Monitoring +- link: /integrations/content_security_policy_logs/ + tag: Documentation + text: Stratégie de sécurité de contenu +title: Dépannage des problèmes du Browser SDK +--- +{% partial file="sdk/troubleshooting/browser.mdoc.md" /%} \ No newline at end of file diff --git a/content/fr/serverless/aws_lambda/instrumentation/nodejs.md b/content/fr/serverless/aws_lambda/instrumentation/nodejs.md new file mode 100644 index 00000000000..b9b6aafcdc7 --- /dev/null +++ b/content/fr/serverless/aws_lambda/instrumentation/nodejs.md @@ -0,0 +1,475 @@ +--- +aliases: +- /fr/serverless/datadog_lambda_library/nodejs/ +- /fr/serverless/guide/nodejs/ +- /fr/serverless/installation/nodejs +- /fr/serverless/aws_lambda/installation/nodejs +further_reading: +- link: /serverless/configuration + tag: Documentation + text: Configurer la surveillance sans serveur +- link: /serverless/guide/serverless_tracing_and_bundlers/ + tag: Documentation + text: Tracing Lambda Node.js et compatibilité de bundlers +- link: /serverless/guide/troubleshoot_serverless_monitoring + tag: Documentation + text: Dépannage de la surveillance sans serveur +- link: serverless/custom_metrics/ + tag: Documentation + text: Envoyer des métriques custom depuis des applications sans serveur +title: Instrumenter des applications Node.js sans serveur +--- +
    La version 67+ de l'extension Datadog Lambda est optimisée pour réduire considérablement la durée de démarrage à froid. En savoir plus.
    + +## Configurer {#setup} + +{{< tabs >}} +{{% tab "Datadog UI" %}} +Vous pouvez instrumenter votre application AWS Lambda Node.js directement dans Datadog. Accédez à la page [Serverless > AWS Lambda][2] et sélectionnez [**Instrumenter les fonctions**][3]. + +Pour plus d'informations, consultez [Instrumentation à distance pour AWS Lambda][1]. + +[1]: /fr/serverless/aws_lambda/remote_instrumentation +[2]: https://app.datadoghq.com/functions?cloud=aws +[3]: https://app.datadoghq.com/serverless/aws/lambda/setup +{{% /tab %}} +{{% tab "Datadog CLI" %}} + +Datadog CLI modifie la configuration des fonctions Lambda existantes afin d'activer l'instrumentation sans nécessiter de nouveau déploiement. C'est le moyen le plus rapide de commencer avec la surveillance sans serveur de Datadog. + +1. Installer le client CLI Datadog + + ```sh + npm install -g @datadog/datadog-ci @datadog/datadog-ci-plugin-lambda + ``` + +2. Si vous êtes nouveau dans la surveillance sans serveur de Datadog, lancez Datadog CLI en mode interactif pour guider votre première installation pour un démarrage rapide, et vous pouvez ignorer les étapes restantes. Pour installer Datadog de manière permanente pour vos applications de production, passez cette étape et suivez les étapes restantes pour exécuter la commande Datadog CLI dans vos pipelines CI/CD _après_ votre déploiement normal. + + ```sh + datadog-ci lambda instrument -i + ``` + +3. Configurer les identifiants AWS + + Datadog CLI nécessite un accès au service AWS Lambda et dépend de l'AWS JavaScript SDK pour [résoudre les identifiants][1]. Assurez-vous que vos identifiants AWS sont configurés en utilisant la même méthode que celle que vous utiliseriez lors de l'invocation de l'AWS CLI. + +4. Configurer le site Datadog + + ```sh + export DATADOG_SITE="" + ``` + + Replace `` with {{< region-param key="dd_site" code="true" >}} (assurez-vous que le bon SITE est sélectionné à droite). + +5. Configurer la clé API Datadog + + Datadog recommande de sauvegarder la clé API Datadog dans AWS Secrets Manager pour des raisons de sécurité et de rotation facile. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). Assurez-vous que vos fonctions Lambda disposent de l'autorisation `secretsmanager:GetSecretValue`IAM requise. + + ```sh + export DATADOG_API_KEY_SECRET_ARN="" + ``` + + For quick testing purposes, you can also set the Datadog API key in plaintext: + + ```sh + export DATADOG_API_KEY="" + ``` + +6. Instrumentez vos fonctions Lambda + + **Remarque** : Instrumentez d'abord vos fonctions Lambda dans un environnement de développement ou de staging ! Si le résultat de l'instrumentation est insatisfaisant, exécutez `uninstrument` avec les mêmes arguments pour annuler les modifications. + + Pour instrumenter vos fonctions Lambda, lancez la commande suivante. + + ```sh + datadog-ci lambda instrument -f -f -r -v {{< latest-lambda-layer-version layer="node" >}} -e {{< latest-lambda-layer-version layer="extension" >}} + + +``` + + To fill in the placeholders: + - Replace `` and `` with your Lambda function names. Alternatively, you can use `--functions-regex` to automatically instrument multiple functions whose names match the given regular expression. + - Replace `` with the AWS region name. + + Additional parameters can be found in the [CLI documentation][2]. + + +[1]: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html +[2]: https://docs.datadoghq.com/fr/serverless/serverless_integrations/cli +{{% /tab %}} +{{% tab "Serverless Framework" %}} + +
    Si vous déployez plutôt votre application Serverless Framework en exportant nativement un objet JSON depuis un fichier JavaScript (par exemple, en utilisant un serverless.ts fichier), suivez les instructions d'installation personnalisées.
    + +Le [plug-in Serverless Datadog][1] configure vos fonctions de sorte à ce qu'elles envoient les métriques, les traces et les logs à Datadog via l'[extension Lambda Datadog][2]. + +Pour installer et configurer le plug-in Serverless Datadog, suivez les étapes suivantes : + +1. Installez le plugin Datadog Serverless : + + ```sh + serverless plugin install --name serverless-plugin-datadog + ``` + +2. Mettez à jour votre `serverless.yml` : + + ```yaml + custom: + datadog: + site: + apiKeySecretArn: + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (assurez-vous que le bon SITE est sélectionné à droite). + - Remplacez `` par l'ARN du secret AWS où votre [clé API Datadog][3] est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). L'autorisation `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez plutôt utiliser `apiKey` et définir la clé API Datadog en texte brut. + + For more information and additional settings, see the [plugin documentation][1]. + +[1]: https://docs.datadoghq.com/fr/serverless/serverless_integrations/plugin +[2]: https://docs.datadoghq.com/fr/serverless/libraries_integrations/extension +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "AWS SAM" %}} + +La [macro CloudFormation Datadog][1] transforme automatiquement votre modèle d'application SAM dans le but d'installer Datadog sur vos fonctions à l'aide des couches Lambda. De plus, elle configure vos fonctions de sorte à ce qu'elles envoient des métriques, des traces et des logs à Datadog via l'[extension Lambda Datadog][2]. + +1. Installez la macro Datadog CloudFormation + + Exécutez la commande suivante avec vos [identifiants AWS][3] pour déployer une pile CloudFormation qui installe la ressource macro AWS. Vous n'avez besoin d'installer la macro **qu'une seule fois** pour une région donnée dans votre compte. Remplacez `create-stack` par `update-stack` pour mettre à jour la macro vers la dernière version. + + ```sh + aws cloudformation create-stack \ + --stack-name datadog-serverless-macro \ + --template-url https://datadog-cloudformation-template.s3.amazonaws.com/aws/serverless-macro/latest.yml \ + --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM + ``` + + The macro is now deployed and ready to use. + +2. Instrumentez vos fonctions Lambda + + Ajoutez la transformation `DatadogServerless` **après** la transformation `AWS::Serverless` dans la section `Transform` de votre pour SAM `template.yml`. + + ```yaml + Transform: + - AWS::Serverless-2016-10-31 + - Name: DatadogServerless + Parameters: + stackName: !Ref "AWS::StackName" + nodeLayerVersion: {{< latest-lambda-layer-version layer="node" >}} + extensionLayerVersion: {{< latest-lambda-layer-version layer="extension" >}} + site: "" + apiKeySecretArn: "" + ``` + + To fill in the placeholders: + - Replace `` with {{< region-param key="dd_site" code="true" >}} (assurez-vous que le bon SITE est sélectionné à droite). + - Remplacez `` par l'ARN du secret AWS où votre [clé API Datadog][4] est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). L'autorisation `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez utiliser `apiKey` à la place et définir la clé API Datadog en texte brut. + + More information and additional parameters can be found in the [macro documentation][1]. + + +[1]: https://docs.datadoghq.com/fr/serverless/serverless_integrations/macro +[2]: https://docs.datadoghq.com/fr/serverless/libraries_integrations/extension +[3]: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html +[4]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} + +{{% tab "AWS CDK" %}} +{{< lambda-install-cdk language="node" layer="node" layerParamTypescript="nodeLayerVersion" layerParamPython="node_layer_version">}} +{{% /tab %}} + +{{% tab "Image de conteneur" %}} + +1. Installez la bibliothèque Datadog Lambda + + Emballez la Lambda Datadog et les SDK dans l'image : + + ```sh + npm install datadog-lambda-js dd-trace + ``` + + Note that the minor version of the `datadog-lambda-js` package always matches the layer version. For example, `datadog-lambda-js v0.5.0` matches the content of layer version 5. + + You cannot install the Datadog Lambda Library as a layer if you are deploying your Lambda function as a container image. + +2. Installez l'extension Datadog Lambda + + Ajoutez l'extension Lambda Datadog à votre image de conteneur en ajoutant ce qui suit à votre Dockerfile : + + ```dockerfile + COPY --from=public.ecr.aws/datadog/lambda-extension: /opt/. /opt/ + ``` + + Replace `` with either a specific version number (for example, `{{< latest-lambda-layer-version layer="extension" >}}`) or with `latest`. Alpine is also supported with specific version numbers (such as `{{< latest-lambda-layer-version layer="extension" >}}-alpine`) or with `latest-alpine`. Vous pouvez voir une liste complète des balises possibles dans le [dépôt Amazon ECR][1]. + +3. Redirigez la fonction gestionnaire + + - Définissez la valeur `CMD` de votre image sur `node_modules/datadog-lambda-js/dist/handler.handler`. Vous pouvez définir cela dans AWS ou directement dans votre Dockerfile. Notez que la valeur définie dans AWS remplace la valeur dans le Dockerfile si vous définissez les deux. + - Définissez la variable d'environnement `DD_LAMBDA_HANDLER` sur votre gestionnaire d'origine, par exemple, `myfunc.handler`. + - Si vous utilisez ESModule avec le conteneur, vous devrez supprimer le fichier `handler.js`. Ce fichier existe pour Node 12 et sera supprimé lorsque AWS dépréciera le support de Node 12. + ```dockerfile + RUN rm node_modules/datadog-lambda-js/dist/handler.js + CMD ["node_modules/datadog-lambda-js/dist/handler.handler"] + ``` + + **Note**: If your Lambda function runs on `arm64`, you must either build your container image in an arm64-based Amazon Linux environment or [apply the Datadog wrapper in your function code][2] instead. You may also need to do that if you are using a third-party security or monitoring tool that is incompatible with the Datadog handler redirection. + +4. Configurez le site Datadog et la clé API + + - Définissez la variable d'environnement `DD_SITE` sur {{< region-param key="dd_site" code="true" >}} (assurez-vous que le bon SITE est sélectionné à droite). + - Définissez la variable d'environnement `DD_API_KEY_SECRET_ARN` avec l'ARN du secret AWS où votre [clé API Datadog][3] est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). L'autorisation `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez utiliser `DD_API_KEY` à la place et définir la clé API Datadog en texte brut. + + +[1]: https://gallery.ecr.aws/datadog/lambda-extension +[2]: https://docs.datadoghq.com/fr/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{% tab "Terraform" %}} + +Le module Terraform [`lambda-datadog`][1] enveloppe la ressource [`aws_lambda_function`][2] et configure automatiquement votre fonction Lambda pour la surveillance sans serveur Datadog en : + +- Ajoutant les couches Datadog Lambda +- Redirection du gestionnaire Lambda +- Activation de la collecte et de l'envoi des métriques, des traces et des journaux vers Datadog + +```tf +module "lambda-datadog" { + source = "DataDog/lambda-datadog/aws" + version = "4.0.0" + + environment_variables = { + "DD_API_KEY_SECRET_ARN" : "" + "DD_ENV" : "" + "DD_SERVICE" : "" + "DD_SITE": "" + "DD_VERSION" : "" + } + + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} + + # aws_lambda_function arguments +} +``` + +1. Remplacez la ressource `aws_lambda_function` par le module Terraform `lambda-datadog` puis spécifiez le `source` et le `version` du module. + +2. Définissez les arguments `aws_lambda_function` : + + Tous les arguments disponibles dans la ressource `aws_lambda_function` sont disponibles dans ce module Terraform. Les arguments définis comme blocs dans la ressource `aws_lambda_function` sont redéfinis comme des variables avec leurs arguments imbriqués. + + Par exemple, dans `aws_lambda_function`, `environment` est défini comme un bloc avec un argument `variables`. Dans le module Terraform `lambda-datadog`, la valeur pour le `environment_variables` est transmise à l'argument `environment.variables` dans `aws_lambda_function`. Voir [inputs][3] pour une liste complète des variables dans ce module. + +3. Remplissez les espaces réservés des variables d'environnement : + + - Remplacez `` par l'ARN du secret AWS où votre clé API Datadog est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). La permission `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez plutôt utiliser la variable d'environnement `DD_API_KEY` et définir votre clé API Datadog en texte clair. + - Remplacez `` par l'environnement de la fonction Lambda, tel que `prod` ou `staging` + - Remplacez `` par le nom du service de la fonction Lambda + - Remplacez `` par {{< region-param key="dd_site" code="true" >}}. (Assurez-vous que le bon [site Datadog][4] est sélectionné sur cette page). + - Remplacez `` par le numéro de version de la fonction Lambda + +4. Sélectionnez les versions de la couche Lambda de l'extension Datadog et de la couche Lambda Node.js de Datadog à utiliser. Par défaut, utilise les dernières versions de couche. + +``` + datadog_extension_layer_version = {{< latest-lambda-layer-version layer="extension" >}} + datadog_node_layer_version = {{< latest-lambda-layer-version layer="node" >}} +``` + +[1]: https://registry.terraform.io/modules/DataDog/lambda-datadog/aws/latest +[2]: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function +[3]: https://github.com/DataDog/terraform-aws-lambda-datadog?tab=readme-ov-file#inputs +[4]: /fr/getting_started/site/ +{{% /tab %}} +{{% tab "SST v3" %}} + +Pour configurer Datadog en utilisant SST v3, suivez ces étapes : + + ```ts + const app = new sst.aws.Function("MyApp", { + handler: "index.handler", + nodejs : { + install: [ + "datadog-lambda-js", + "dd-trace", + ] + }, + environment: { + DD_ENV: "", + DD_SERVICE: "", + DD_VERSION: "", + DATADOG_API_KEY_SECRET_ARN: "", + DD_SITE: "", + }, + layers: [ + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}}`, + $interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}}` + ], + }); + ``` + + 1. Configure the Datadog Lambda Library and Datadog Lambda Extension layers + + - The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + 2. Ajoutez `dd-trace` et `datadog-lambda-js` à la liste `nodejs.install` + + 3. Remplissez les espaces réservés des variables d'environnement : + + - Remplacez `` par l'ARN du secret AWS où votre clé API Datadog est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). L'autorisation `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez plutôt utiliser la variable d'environnement `DD_API_KEY` et définir votre clé API Datadog en texte brut. + - Remplacez `` par l'environnement de la fonction Lambda, tel que `prod` ou `staging` + - Remplacez `` par le nom du service de la fonction Lambda + - Remplacez `` par {{< region-param key="dd_site" code="true" >}}. (Assurez-vous que le bon [site Datadog][1] est sélectionné sur cette page) + - Remplacez `` par le numéro de version de la fonction Lambda + + 4. [Appliquez le wrapper Datadog dans votre code de fonction][2] + +[1]: /fr/getting_started/site/ +[2]: https://docs.datadoghq.com/fr/serverless/guide/handler_wrapper +{{% /tab %}} +{{% tab "Custom" %}} + +
    Si vous n'utilisez pas un outil de développement sans serveur que Datadog prend en charge, tel que le Serverless Framework ou AWS CDK, Datadog vous encourage fortement à instrumenter vos applications sans serveur avec le Datadog CLI.
    + +1. Installez la bibliothèque Datadog Lambda + + La bibliothèque Datadog Lambda peut être importée soit en tant que couche (recommandée) _OU_ en tant que package JavaScript. + + La version mineure du package `datadog-lambda-js` correspond toujours à la version de la couche. Par exemple, datadog-lambda-js v0.5.0 correspond au contenu de la version de la couche 5. + + - Option A : [Configurez les couches][1] pour votre fonction Lambda en utilisant l'ARN dans le format suivant : + + ```sh + # Use this format for AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + + # Use this format for AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-:{{< latest-lambda-layer-version layer="node" >}} + ``` + + Replace `` with a valid AWS region such as `us-east-1`. The available `` options are: {{< latest-lambda-layer-version layer="node-versions" >}}. + + - Option B: If you cannot use the prebuilt Datadog Lambda layer, alternatively you can install the packages `datadog-lambda-js` and `dd-trace` using your favorite package manager. + + ``` + npm install datadog-lambda-js dd-trace + ``` + +2. Installez l'extension Lambda de Datadog + + [Configurez les couches][1] pour votre fonction Lambda à l'aide de l'ARN, en respectant le format suivant : + + ```sh + # Use this format for x86-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS commercial regions + arn:aws:lambda::464622532012:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for x86-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension:{{< latest-lambda-layer-version layer="extension" >}} + + # Use this format for arm64-based Lambda deployed in AWS GovCloud regions + arn:aws-us-gov:lambda::002406178527:layer:Datadog-Extension-ARM:{{< latest-lambda-layer-version layer="extension" >}} + + +``` + + Replace `` with a valid AWS region, such as `us-east-1`. + +3. Redirigez la fonction de gestionnaire + + - Définissez le gestionnaire de votre fonction sur `/opt/nodejs/node_modules/datadog-lambda-js/handler.handler` si vous utilisez la couche, ou `node_modules/datadog-lambda-js/dist/handler.handler` si vous utilisez le package. + - Définissez la variable d'environnement `DD_LAMBDA_HANDLER` sur votre gestionnaire d'origine, par exemple, `myfunc.handler`. + + **Remarque** : Si votre fonction Lambda s'exécute sur `arm64` et que la bibliothèque `datadog-lambda-js` est installée en tant que package NPM (option B de l'étape 1), vous devez [appliquer le wrapper Datadog dans le code de votre fonction][2] à la place. Vous devrez peut-être également le faire si vous utilisez un outil de sécurité ou de surveillance tiers qui est incompatible avec la redirection du gestionnaire Datadog. + +4. Configurez le site Datadog et la clé API + + - Définissez la variable d'environnement `DD_SITE` sur {{< region-param key="dd_site" code="true" >}} (assurez-vous que le bon SITE est sélectionné à droite). + - Définissez la variable d'environnement `DD_API_KEY_SECRET_ARN` avec l'ARN du secret AWS où votre [clé API Datadog][3] est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne de texte brut (pas un blob JSON). L'autorisation `secretsmanager:GetSecretValue` est requise. Pour des tests rapides, vous pouvez utiliser `DD_API_KEY` à la place et définir la clé API Datadog en texte clair. + +[1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html +[2]: https://docs.datadoghq.com/fr/serverless/guide/handler_wrapper +[3]: https://app.datadoghq.com/organization-settings/api-keys +{{% /tab %}} +{{< /tabs >}} + +{{% svl-tracing-env %}} + +
    N'installez pas la bibliothèque Lambda de Datadog en tant que couche et en tant que package JavaScript. Si vous avez installé la bibliothèque Lambda de Datadog en tant que couche, ne l'incluez pas datadog-lambda-js dans votre package.json, ou installez-la en tant que dépendance de développement et exécutez npm install --production avant de déployer.
    + +## Conformité FIPS {#fips-compliance} + +{{% svl-lambda-fips %}} + +## AWS Lambda et VPC {#aws-lambda-and-vpc} + +{{% svl-lambda-vpc %}} + +## Quelle est la suite ? {#whats-next} + +- Ajoutez des balises personnalisées à votre télémétrie en utilisant la variable d'environnement `DD_TAGS` +- Configurez [la collecte de payload][12] pour capturer les payloads JSON de vos fonctions de requête et de réponse +- Si vous utilisez l'extension Lambda de Datadog, désactivez les journaux Lambda du Forwarder Datadog +- Voir [Configurer la surveillance sans serveur pour AWS Lambda][3] pour d'autres capacités + +### Surveiller la logique métier personnalisée {#monitor-custom-business-logic} + +Pour surveiller votre logique métier personnalisée, soumettez une métrique personnalisée ou un span en utilisant le code d'exemple ci-dessous. Pour des options supplémentaires, voir [soumission de métriques personnalisées pour les applications sans serveur][4] et le guide APM pour [instrumentation personnalisée][5]. + +```javascript +const { sendDistributionMetric, sendDistributionMetricWithDate } = require('datadog-lambda-js'); +const tracer = require('dd-trace'); + +// submit a custom span named "sleep" +const sleep = tracer.wrap('sleep', (ms) => { + return new Promise((resolve) => setTimeout(resolve, ms)); +}); + +exports.handler = async (event) => { + // add custom tags to the lambda function span, + // does NOT work when X-Ray tracing is enabled + const span = tracer.scope().active(); + span.setTag('customer_id', '123456'); + + await sleep(100); + + // submit a custom span + const sandwich = tracer.trace('hello.world', () => { + console.log('Hello, World!'); + }); + + // submit a custom metric + sendDistributionMetric( + 'coffee_house.order_value', // metric name + 12.45, // metric value + 'product:latte', // tag + 'order:online' // another tag + ); + + const response = { + statusCode: 200, + body: JSON.stringify('Hello from serverless!') + }; + return response; +}; +``` + +## Lectures Complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/functions +[2]: /fr/serverless/guide/troubleshoot_serverless_monitoring/ +[3]: /fr/serverless/configuration/ +[4]: /fr/serverless/custom_metrics?tab=nodejs +[5]: /fr/tracing/custom_instrumentation/nodejs/ +[6]: /fr/security/application_security/serverless/ +[7]: https://github.com/DataDog/datadog-lambda-extension +[8]: https://github.com/DataDog/datadog-lambda-extension/issues +[9]: /fr/serverless/aws_lambda/distributed_tracing/#span-auto-linking +[10]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html +[11]: /fr/serverless/aws_lambda/remote_instrumentation +[12]: /fr/serverless/aws_lambda/configuration?tab=datadogcli#collect-the-request-and-response-payloads \ No newline at end of file diff --git a/content/fr/source_code/_index.md b/content/fr/source_code/_index.md new file mode 100644 index 00000000000..edad337029d --- /dev/null +++ b/content/fr/source_code/_index.md @@ -0,0 +1,24 @@ +--- +aliases: +- /fr/integrations/guide/source-code-integration/ +description: Configurez l'intégration du code source qui s'intègre à l'APM pour lier + votre télémétrie à vos dépôts, intégrer des informations Git dans les artefacts + de votre pipeline CI et utiliser des intégrations de gestion de code source pour + générer des extraits de code en ligne dans Datadog. +title: Intégration du code source +--- +## Aperçu {#overview} + +L'intégration du code source de Datadog vous permet de connecter vos dépôts Git à Datadog pour activer diverses fonctionnalités liées au code source sur la plateforme Datadog. Elle permet de déboguer les traces de pile, les profils lents et d'autres problèmes en accédant aux lignes pertinentes de votre code source. + +{{< img src="source_code_integration/inline-code-snippet.png" alt="Extrait de code en ligne d'une Java RuntimeException avec un bouton pour voir le code sur GitHub" style="width:100%;">}} + +## Configuration et fonctionnalités {#setup-and-features} + +{{< whatsnext desc="Pour la configuration et les fonctionnalités de l'intégration du code source, consultez les pages suivantes :" >}} + {{< nextlink href="source_code/source-code-management" >}}Intégrations des fournisseurs de gestion de code source{{< /nextlink >}} + {{< nextlink href="source_code/service-mapping" >}}Cartographie des services + et étiquetage de télémétrie{{< /nextlink >}} + {{< nextlink href="source_code/resource-mapping" >}}Cartographie des ressources Kubernetes{{< /nextlink >}} + {{< nextlink href="source_code/features" >}}Fonctionnalités de l'intégration du code source{{< /nextlink >}} +{{< /whatsnext >}} \ No newline at end of file diff --git a/content/ja/agent/configuration/agent-configuration-files.md b/content/ja/agent/configuration/agent-configuration-files.md index 6eb75d1d7e7..052e0c5da9b 100644 --- a/content/ja/agent/configuration/agent-configuration-files.md +++ b/content/ja/agent/configuration/agent-configuration-files.md @@ -1,21 +1,21 @@ --- algolia: - category: ガイド + category: guide rank: 80 - subcategory: Agent 構成ファイル + subcategory: Agent Configuration Files tags: - - Agent 構成 - - Agent 構成 - - Agent ディレクトリ + - agent config + - agent configuration + - agent directory aliases: - /ja/agent/faq/agent-configuration-files - /ja/agent/guide/agent-configuration-files +description: Datadog Agent の構成ファイルの場所、構造、およびチェックやインテグレーションの設定方法に関するガイド。 title: Agent 構成ファイル --- +## メイン構成ファイル {#main-configuration-file} -## メイン構成ファイル - -Agent 構成ファイルの場所は、オペレーティング システムによって異なります。 +Agent 構成ファイルの場所は、オペレーティングシステムによって異なります。 | プラットフォーム | コマンド | |:-------------------------------------|:-------------------------------------| @@ -24,11 +24,11 @@ Agent 構成ファイルの場所は、オペレーティング システムに | macOS | `~/.datadog-agent/datadog.yaml` | | Windows | `%ProgramData%\Datadog\datadog.yaml` | -使用可能なすべての構成オプションの詳細については、[サンプル `config_template.yaml` ファイル][1]を参照してください。 +使用可能なすべての構成オプションの詳細については、[サンプル `config_template.yaml` ファイル][1] を参照してください。 -## Agent の構成ディレクトリ +## Agent 構成ディレクトリ {#agent-configuration-directory} -Agent チェックおよびインテグレーションの構成ファイルは `conf.d` ディレクトリに格納されます。このディレクトリの場所は、オペレーティング システムによって異なります。 +Agent チェックおよびインテグレーション用の構成ファイルは `conf.d` ディレクトリに格納されています。ディレクトリの場所はオペレーティングシステムによって異なります。 | プラットフォーム | コマンド | |:-------------------------------------|:-------------------------------| @@ -39,16 +39,16 @@ Agent チェックおよびインテグレーションの構成ファイルは ` | Fedora | `/etc/datadog-agent/conf.d/` | | macOS | `~/.datadog-agent/conf.d/` | | RedHat | `/etc/datadog-agent/conf.d/` | -| ソース | `/etc/datadog-agent/conf.d/` | +| Source | `/etc/datadog-agent/conf.d/` | | Suse | `/etc/datadog-agent/conf.d/` | | Ubuntu | `/etc/datadog-agent/conf.d/` | | Windows | `%ProgramData%\Datadog\conf.d` | -**注**: このディレクトリにあるサイズ 0 のファイルは Agent によって無視されます。これにより、空のテンプレート出力をスキップできないプロビジョニング システムでも対応可能になります。 +**注**: このディレクトリ内の長さがゼロのファイルは Agent によって無視されます。これにより、空のテンプレート出力のスキップがサポートされていないプロビジョニングシステムにも対応できます。 -### チェックのコンフィギュレーションファイル +### チェック構成ファイル {#check-configuration-files} -各 Agent チェックのコンフィギュレーションファイルの例は、対応する `.d/` フォルダーの `conf.yaml.example` ファイルにあります。関連するチェックを有効にするには、このファイル名を `conf.yaml` に変更します。**注**: Agent は、フォルダー `/etc/datadog-agent/conf.d/.d/` に含まれる有効な YAML ファイルを読み込むため、複雑なコンフィギュレーションは複数ファイルに分割することができます。たとえば、`http_check` のコンフィギュレーションは次のようになります。 +各 Agent チェック構成ファイルの例は、対応する `.d/` フォルダー内の `conf.yaml.example` ファイルにあります。このファイルの名前を `conf.yaml` に変更して、関連するチェックを有効にします。**注**: Agent は、`/etc/datadog-agent/conf.d/.d/` フォルダー内の有効な YAML ファイルを読み込みます。これにより、複雑な構成を複数のファイルに分割できます。たとえば、`http_check` の構成は次のようになります: ```text /etc/datadog-agent/conf.d/http_check.d/ @@ -56,9 +56,9 @@ Agent チェックおよびインテグレーションの構成ファイルは ` └── frontend.yaml ``` -特別なケースは、YAML ファイルに `.default` のサフィックスがある場合です。このようなファイルは、デフォルトで Agent によりロードされ、常に有効であるチェックのコアセットの定義に役立ちます (CPU、メモリ、アップタイムなど)。チェックに他の構成が見つかった場合、それらは無視されるため、安心して無視できます。デフォルトのチェックを無効にするには、該当ファイルを削除します。これらのチェックを構成するには、ベースとして `conf.yaml.example` を使用します。 +特別なケースは、`.default` がサフィックスの YAML ファイルです。これらのファイルはデフォルトで Agent によって読み込まれ、常に有効化される基本的なチェック (CPU、メモリ、稼働時間など) を定義するために使用されます。そのチェックに対して別の構成が見つかった場合は無視されるため、そのまま無視して構いません。デフォルトのチェックの 1 つを無効にしたい場合は、そのファイルを削除してください。これらのチェックを構成するには、`conf.yaml.example` をベースとして使用する必要があります。 -オートディスカバリーテンプレートファイルは、`auto_conf.yaml` ファイルのある構成フォルダーに保存されています。たとえば Redis チェックの場合、`redisdb.d/` のコンフィギュレーションは次のとおりです。 +Autodiscovery テンプレートファイルは、`auto_conf.yaml` ファイルとして構成フォルダーに保存されます。たとえば、Redis チェックの場合、`redisdb.d/` 内の構成は次のようになります。 ```text /etc/datadog-agent/conf.d/redisdb.d/ @@ -66,11 +66,11 @@ Agent チェックおよびインテグレーションの構成ファイルは ` └── conf.yaml.example ``` -ログ収集の場合、Datadog に重複ログが送信されないよう Agent は同じログソースを送信先とする複数の YAML ファイルを許可しません。1 つ以上の YAML ファイルが同じログソースを送信先としている場合、Agent はファイルをアルファベット順に処理し、一番上のファイルを使用します。 +ログ収集の場合、Agent は同じログソースを指す複数の YAML ファイルを受け入れず、重複したログが Datadog に送信されるのを防ぎます。同じログソースを指す YAML ファイルが複数ある場合、Agent はアルファベット順にファイルを処理し、最初のファイルを使用します。 -## JMX 構成ファイル +## JMX 構成ファイル {#jmx-configuration-file} -JMX Agent チェックには、独自の構成フォルダーに追加の `metrics.yaml` ファイルがあります。これは、Datadog Agent がデフォルトで収集するすべての Bean のリストです。これにより、[Docker ラベルまたは k8s アノテーション][2]によってチェックを構成する際に、すべての Bean を手動でリストする必要がなくなります。 +JMX Agent チェックには、構成フォルダーに追加の `metrics.yaml` ファイルがあります。これは、Datadog Agent がデフォルトで収集するすべての Bean のリストです。そのため、[Docker ラベルや k8s アノテーション][2] を通じてチェックを設定する際に、すべての Bean を手動でリストアップする必要がありません。 [1]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml [2]: /ja/agent/kubernetes/integrations/#configuration \ No newline at end of file diff --git a/content/ja/agent/configuration/secrets-management.md b/content/ja/agent/configuration/secrets-management.md index f58dbf76ab0..5a854c74e7e 100644 --- a/content/ja/agent/configuration/secrets-management.md +++ b/content/ja/agent/configuration/secrets-management.md @@ -10,37 +10,37 @@ aliases: - /ja/agent/guide/secrets-management further_reading: - link: /agent/autodiscovery/ - tag: Documentation + tag: よくあるご質問 text: Autodiscovery title: シークレット管理 --- -## 概要 +## 概要 {#overview} Datadog Agent は、次のシークレット管理ソリューションと統合することで、シークレットを安全に管理するのに役立ちます。 - [AWS Secrets Manager](#idforsecrets) - [AWS SSM](#idforssm) - [Azure KeyVault](#idforazure) - [GCP Secret Manager](#idforgcp) - [HashiCorp Vault](#idforhashicorp) - [Kubernetes Secrets](#idforkubernetes) - [Docker Secrets](#idfordocker) - [FIle Text](#idforjsonyamltext) - [File JSON](#idforjsonyamltext) - [File YAML](#idforjsonyamltext) +- [AWS Secrets Manager](#id-for-secrets) +- [AWS SSM](#id-for-ssm) +- [Azure KeyVault](#id-for-azure) +- [GCP Secret Manager](#id-for-gcp) +- [HashiCorp Vault](#id-for-hashicorp) +- [Kubernetes Secrets](#id-for-kubernetes) +- [Docker Secrets](#id-for-docker) +- [ファイルテキスト](#id-for-json-yaml-text) +- [ファイル JSON](#id-for-json-yaml-text) +- [ファイル YAML](#id-for-json-yaml-text) -API キーやパスワードのような機密値を構成ファイル内にプレーンテキストでハードコーディングする代わりに、Agent は実行時に動的にそれらを取得できます。設定内でシークレットを参照するには、`ENC[]`表記を使用します。シークレットは取得され、メモリにロードされますが、ディスクに書き込まれたり、Datadog バックエンドに送信されたりすることはありません。 +API キーやパスワードのような機密値を構成ファイル内にプレーンテキストでハードコーディングする代わりに、Agent は実行時に動的にそれらを取得できます。構成内でシークレットを参照するには、`ENC[]` 表記を使用します。シークレットは取得され、メモリにロードされますが、ディスクに書き込まれたり、Datadog バックエンドに送信されたりすることはありません。 -**注**: `ENC[]` 構文は、`secret_*` 設定 (例: `secret_backend_command`) では使用できません。 +**注**: `secret_backend_command` のような `secret_*` 設定では、`ENC[]` 構文は使用できません。 -## シークレットを取得するためのオプション +## シークレットを取得するためのオプション {#options-for-retrieving-secrets} -### オプション1: シークレットを取得するためにネイティブ Agent サポートを使用 +### オプション 1: シークレットを取得するためにネイティブ Agent サポートを使用 {#option-1-using-native-agent-support-for-fetching-secrets} **注**: Agent バージョン `7.76` 以降、ネイティブなシークレット管理が FIPS 対応 Agent で利用可能です。 -Agent バージョン `7.70` から、Datadog Agent では複数のシークレット管理ソリューションをネイティブにサポートしています。`datadog.yaml` に新しい 2 つの設定 `secret_backend_type` と `secret_backend_config` が導入されました。 +Agent バージョン `7.70` 以降、Datadog Agent では複数のシークレット管理ソリューションをネイティブにサポートしています。`datadog.yaml` に新しい 2 つの設定 `secret_backend_type` と `secret_backend_config` が導入されました。 -`secret_backend_type` は、使用するシークレット管理ソリューションを指定するために使用され、`secret_backend_config` にはそのソリューションに関連する追加の設定が保持されます。 +`secret_backend_type`は、使用するシークレット管理ソリューションを指定するために使用され、`secret_backend_config` にはそのソリューションに関連する追加の設定が保持されます。 ```yaml # datadog.yaml @@ -50,7 +50,7 @@ secret_backend_config: : ``` -**注**: コンテナ化された環境で Datadog を実行している場合、[Cluster Agent](/containers/cluster_agent/) は、ネイティブなシークレットの取得をサポートするために Agent 7.77 以降が必要です。以前のバージョンでは、代わりに[オプション 2](#option2usingthebuiltinscriptforkubernetesanddocker) または[オプション 3](#option3creatingacustomexecutable) を使用してください。 +**注**: コンテナ化された環境で Datadog を実行している場合、[Cluster Agent](/containers/cluster_agent/) では、ネイティブなシークレットの取得をサポートするために Agent 7.77 以降が必要です。以前のバージョンでは、代わりに[オプション 2](#option-2-using-the-built-in-script-for-kubernetes-and-docker) または[オプション 3](#option-3-creating-a-custom-executable) を使用してください。 より具体的なセットアップ手順は、使用するバックエンドタイプによって異なります。詳細情報については、以下の該当するセクションを参照してください。 @@ -59,14 +59,14 @@ secret_backend_config: 次の AWS サービスがサポートされています。 |secret_backend_type 値 | AWS サービス | -||| +|---------------------------------------------|-----------------------------------------| |`aws.secrets` |[AWS Secrets Manager][1000] | -##### インスタンスプロファイルのセットアップ +##### インスタンスプロファイルのセットアップ {#set-up-an-instance-profile} -AWS によりすべての環境変数とセッションプロファイルが処理されるため、Datadog では [インスタンスプロファイルメソッド][1006] を使用してシークレットを取得することを推奨しています。このための詳細な指示は、公式の [AWS Secrets Managerのドキュメント][1000] で確認できます。 +AWS によりすべての環境変数とセッションプロファイルが処理されるため、Datadog では [インスタンスプロファイルメソッド][1006] を使用してシークレットを取得することを推奨しています。このための詳細な指示は、公式の [AWS Secrets Manager のドキュメント][1000] で確認できます。 -##### 設定例 +##### 構成例 {#configuration-example} {{< tabs >}} {{% tab "Agent YAML ファイル" %}} @@ -91,14 +91,14 @@ DD_SECRET_BACKEND_CONFIG='{"aws_session":{"aws_region":""}}' AWS Secrets を使用するように Agent を設定した後、`ENC[secretId;secretKey]` を使用して設定内の任意のシークレットを参照できます。 ENC 表記は次のように構成されています。 -* `secretId`: 秘密の「フレンドリ名」(たとえば、`/DatadogAgent/Production`) または Amazon Resource Name (たとえば、`arn:aws:secretsmanager:useast1:123456789012:secret:/DatadogAgent/ProductionFOga1K`) のいずれかです。 - **注**: AWS 資格情報または `sts:AssumeRole` 資格情報が定義されている異なるアカウントからシークレットにアクセスする場合、完全な Amazon Resource Name 形式が必要です。 +* `secretId`: シークレットの「フレンドリ名」(たとえば、`/DatadogAgent/Production`) または Amazon Resource Name (たとえば、`arn:aws:secretsmanager:us-east-1:123456789012:secret:/DatadogAgent/Production-FOga1K`) のいずれかです。 + - **注**: AWS 資格情報または `sts:AssumeRole` 資格情報が定義されている異なるアカウントからシークレットにアクセスする場合、完全な Amazon Resource Name 形式が必要です。 * `secretKey`: 使用する AWS シークレットからの JSON キーです。 AWS Secrets Manager は、1 つのシークレット内に複数のキーと値のペアを保存できます。Secrets Manager を使用したバックエンド設定からは、シークレットに定義されたすべてのキーにアクセスできます。 -たとえば、シークレット ID `MySecrets` に次の 3 つの値が含まれているとします。 +たとえば、シークレット ID `My-Secrets` に次の 3 つの値が含まれているとします。 ```json { @@ -108,7 +108,7 @@ AWS Secrets Manager は、1 つのシークレット内に複数のキーと値 } ``` -次に示すのは、AWS Secrets を使用して `MySecrets` から API キーを取得する `datadog.yaml` 構成ファイルの完全な例です。 +次に示すのは、AWS Secrets を使用して `My-Secrets` から API キーを取得する `datadog.yaml` 構成ファイルの完全な例です。 ```yaml api_key: ENC[My-Secrets;prodApiKey] @@ -125,7 +125,7 @@ secret_backend_config: AWS Secrets を使用して、次の設定に基づいて Helm 内のシークレットを解決するように Datadog Agent を設定します。 -##### インテグレーションチェック +##### インテグレーションチェック {#integration-check} ```sh datadog: @@ -149,12 +149,12 @@ agents: eks.amazonaws.com/role-arn: ``` -
    AWS シークレットにアクセスするための Agent の権限を付与するには、serviceAccountAnnotations を含める必要があります。
    +
    AWS シークレットにアクセスするための権限を Agent に付与するには、 serviceAccountAnnotations を含める必要があります。

    -##### クラスターチェック: クラスターチェックランナーが有効でない場合 +##### クラスターチェック: クラスターチェックランナーが有効でない場合 {#cluster-check-without-cluster-check-runners-enabled} ```sh datadog: @@ -178,7 +178,7 @@ clusterAgent: password: "ENC[secretId;secretKey]" ``` -##### クラスターチェック: クラスターチェックランナーが有効な場合 +##### クラスターチェック: クラスターチェックランナーが有効な場合 {#cluster-check-with-cluster-check-runners-enabled} ```sh datadog: @@ -209,13 +209,15 @@ clusterChecksRunner: ``` +**あるいは、**Helm チャート v3.171.0 以上および Agent v7.70 以上の場合は、環境変数の代わりにネイティブの `secretBackend.type` および `secretBackend.config` フィールドを使用できます。例: `datadog.secretBackend.type: "aws.secrets"` および `datadog.secretBackend.config.aws_session.aws_region: ""`。 + {{% /tab %}} {{% tab "Operator" %}} AWS Secrets を使用して、次の設定に基づいて、Datadog Operator と共にシークレットを解決するように Datadog Agent を設定します。 -##### インテグレーションチェック +##### インテグレーションチェック {#integration-check-1} ```sh @@ -247,12 +249,12 @@ spec: ``` -
    AWS シークレットにアクセスするための Agent の権限を付与するには、serviceAccountAnnotations を含める必要があります。
    +
    AWS シークレットにアクセスするための権限を Agent に付与するには、 serviceAccountAnnotations を含める必要があります。

    -##### クラスターチェック: クラスターチェックランナーが有効でない場合 +##### クラスターチェック: クラスターチェックランナーが有効でない場合 {#cluster-check-without-cluster-check-runners-enabled-1} ```sh apiVersion: datadoghq.com/v2alpha1 @@ -284,7 +286,7 @@ spec:
    -##### クラスターチェック: クラスターチェックランナーが有効な場合 +##### クラスターチェック: クラスターチェックランナーが有効な場合 {#cluster-check-with-cluster-check-runners-enabled-1} ```sh apiVersion: datadoghq.com/v2alpha1 @@ -320,6 +322,8 @@ spec: ``` +**あるいは、**Datadog Operator v1.25.0 以上および Agent v7.70 以上の場合は、環境変数の代わりにネイティブの `secretBackend.type` および `secretBackend.config` フィールドを使用できます。例: `spec.global.secretBackend.type: "aws.secrets"`、`spec.global.secretBackend.config`、および `aws_session.aws_region: ""`。 + {{% /tab %}} {{< /tabs >}} @@ -330,14 +334,14 @@ spec: 次の AWS サービスがサポートされています。 |secret_backend_type 値 | AWS サービス | -||| +|---------------------------------------------|-----------------------------------------| |`aws.ssm` |[AWS Systems Manager Parameter Store][1001] | -##### インスタンスプロファイルのセットアップ +##### インスタンスプロファイルのセットアップ {#set-up-an-instance-profile-1} AWS によりすべての環境変数とセッションプロファイルが処理されるため、Datadog では [インスタンスプロファイルメソッド][1006] を使用してシークレットを取得することを推奨しています。このための詳細な指示は、公式の [AWS Secrets Manager のドキュメント][1001] で確認できます。 -##### 設定例 +##### 構成例 {#configuration-example-1} AWS Systems Manager Parameter Store では、階層モデルがサポートされています。たとえば、次のような AWS Systems Manager Parameter Store のパスがあるとします。 @@ -370,18 +374,18 @@ property2: "ENC[/DatadogAgent/Production/ParameterKey2]" 次の Azure サービスがサポートされています。 | secret_backend_type 値 | Azure サービス | -| || +| ----------------------------------------|------------------------| | `azure.keyvault` | [Azure Keyvault][2000] | -##### Azure 認証 +##### Azure 認証 {#azure-authentication} Datadog では、Azure での認証にマネージドアイデンティティを使用することを推奨しています。これにより、クラウドリソースを AMI アカウントに関連付けることができ、`datadog.yaml` 構成ファイルにシークレットを記載する必要がなくなります。 -##### マネージドアイデンティティ +##### マネージドアイデンティティ {#managed-identity} Key Vault にアクセスするには、マネージドアイデンティティを作成し、仮想マシンに割り当てます。次に、そのアイデンティティがシークレットにアクセスできるように、Key Vault に適切なロールを割り当てます。 -##### 設定例 +##### 構成例 {#configuration-example-2} Azure Key Vault シークレットのバックエンド設定は、このスキーマに従って YAML 形式で構成されています。 @@ -409,20 +413,20 @@ api_key: "ENC[secretKeyNameInKeyVault]" 次の GCP サービスがサポートされています。 | secret_backend_type 値 | GCP サービス | -| | | +| ------------------------------------------------------- | ------------------------------ | | `gcp.secretmanager` | [GCP Secret Manager][5000] | -##### GCP 認証とアクセスポリシー +##### GCP 認証とアクセスポリシー {#gcp-authentication-and-access-policy} GCP Secret Manager の実装は、Google での認証に [アプリケーションデフォルト資格情報 (ADC)][5001] を使用します。 GCP Secret Manager とやりとりするには、Datadog Agent で使用されるサービスアカウント (仮想マシンのサービスアカウント、ワークロードアイデンティティ、ローカルでアクティブ化された資格情報など) が、`secretmanager.versions.access` の権限を有している必要があります。 -これは、事前定義されたロール **Secret Manager Secret Accessor** (`roles/secretmanager.secretAccessor`) または同等の [アクセス権][5002] を持つカスタムロールを使用して付与できます。 +これは、事前定義されたロール {{< ui >}}Secret Manager Secret Accessor{{< /ui >}} (`roles/secretmanager.secretAccessor`) または同等の [アクセス権][5002] を持つカスタムロールを使用して付与できます。 -GCE または GKE ランタイムでは、ADC はインスタンスまたは Pod に添付されたサービスアカウントを通じて自動的に設定されます。添付されたサービスアカウントには、GCP Secret Manager にアクセスするための適切なロールが割り当てられている必要があります。さらに、GCE または GKE ランタイムは、`cloudplatform` [OAuth アクセススコープ][5003] を必要とします。 +GCE または GKE ランタイムでは、ADC はインスタンスまたは Pod に添付されたサービスアカウントを通じて自動的に設定されます。添付されたサービスアカウントには、GCP Secret Manager にアクセスするための適切なロールが割り当てられている必要があります。さらに、GCE または GKE ランタイムは、`cloud-platform` [OAuth アクセススコープ][5003] を必要とします。 -##### GCP の設定例 +##### GCP の構成例 {#gcp-configuration-example} GCP Secret Manager を使用して、次の設定に基づいてシークレットを解決するように Datadog Agent を設定します。 @@ -434,19 +438,19 @@ secret_backend_config: project_id: ``` -GCP Secret Manager を使用するように Datadog Agent を設定した後、`ENC[secretname]` または `ENC[secretname;key;version;]` を使用して設定内でシークレットを参照します。 +GCP Secret Manager を使用するように Agent を設定した後、`ENC[secret-name]` または `ENC[secret-name;key;version;]` を使用して設定内でシークレットを参照します。 ENC 表記は次のように構成されています。 - `secret`: GCP Secret Manager 内のシークレット名 (例: `datadogapikey`) -`key`: (オプション) JSON 形式のシークレットから抽出するキー。プレーンテキストのシークレットを使用している場合は、省略できます (例: `ENC[secretname;;version]`)。 -`version`: (オプション) シークレットのバージョン番号。指定しない場合、`latest` バージョンが使用されます。 +- `secret`: GCP Secret Manager 内のシークレット名 (例: `datadog-api-key`)。 +- `key`: (オプション) JSON 形式のシークレットから抽出するキー。プレーンテキストのシークレットを使用している場合は、省略できます (例: `ENC[secret-name;;version]`)。 +- `version`: (オプション) シークレットのバージョン番号。指定しない場合、`latest` バージョンが使用されます。 + バージョン構文の例: - `secretkey` 暗黙の `latest` バージョン - `secretkey;;latest` 明示的な `latest` バージョン - `secretkey;;1` 特定のバージョン番号 + - `secret-key` - 暗黙の `latest` バージョン + - `secret-key;;latest` - 明示的な `latest` バージョン + - `secret-key;;1` - 特定のバージョン番号 -たとえば、GCP シークレット名が `datadogapikey` で、2 つのバージョンと `datadogappkey` があるとします。 +たとえば、GCP シークレット名が `datadog-api-key` で、2 つのバージョンと `datadog-app-key` があるとします。 ```yaml # datadog.yaml @@ -459,7 +463,7 @@ secret_backend_config: project_id: ``` -JSON 形式のシークレットの場合、シークレット名 `datadogkeys` に以下が含まれるとします。 +JSON 形式のシークレットの場合、シークレット名 `datadog-keys` に以下が含まれるとします。 ```json { @@ -481,17 +485,17 @@ secret_backend_config: project_id: ``` -##### シークレットのバージョン管理 +##### シークレットのバージョン管理 {#secret-versioning} GCP Secret Manager ではシークレットバージョンがサポートされています。Agent の実装でも、`;` 区切りを使用してシークレットのバージョン管理をサポートしています。バージョンが指定されていない場合、`latest` バージョンが使用されます。 -##### JSON シークレットのサポート +##### JSON シークレットのサポート {#json-secret-support} Datadog Agent では、`;` 区切りを使用して、JSON 形式のシークレットから特定のキーを抽出することができます。 - `datadog;api_key` 暗黙の `latest` バージョンを使用して、`datadog` のシークレットから `api_key` フィールドを抽出します。 - `datadog;api_key;1` バージョン `1` の `datadog` のシークレットから `api_key` フィールドを抽出します。 +- `datadog;api_key` - 暗黙の `latest` を使用して、`datadog` シークレットから `api_key` フィールドを抽出します。 +- `datadog;api_key;1` - バージョン `1` の `datadog` シークレットから `api_key` フィールドを抽出します。 {{% /collapse-content %}} @@ -501,10 +505,10 @@ Datadog Agent では、`;` 区切りを使用して、JSON 形式のシークレ 次の HashiCorp サービスがサポートされています。 | secret_backend_type 値 | HashiCorp サービス | -| | | +| ------------------------------------------ | -------------------------------------------------- | | `hashicorp.vault` | [HashiCorp Vault (Secrets Engine バージョン 1 および 2)][3000] | -##### HashiCorp Vault のセットアップ方法 +##### HashiCorp Vault のセットアップ方法 {#how-to-set-up-hashicorp-vault} 1. HashiCorp Vault を実行します。詳細については、[公式の HashiCorp Vault ドキュメント][3001] を参照してください。 2. Vault からシークレットを取得するための権限を付与するポリシーを記述します。`*.hcl` ファイルを作成し、Secrets Engine バージョン 1 を使用している場合は、次の権限を含めます。 @@ -528,17 +532,17 @@ path "sys/mounts" { capabilities = ["read"] } ``` -3. `vault policy write <path_to_*.hcl_file>` を実行します。 +3. `vault policy write ` を実行します。 4. Vault の認証方法を選択します。AWS インスタンスプロファイルメソッドを使用する場合は、`vault auth enable aws` を実行します。 -##### AWS インスタンスプロファイルの手順 +##### AWS インスタンスプロファイルの手順 {#aws-instance-profile-instructions} AWS に接続されたマシンから HashiCorp Vault を実行している場合、Datadog では [インスタンスプロファイルメソッド][3003] を使用して認証することを推奨しています。 セットアップが完了したら、[認証専用の Vault ポリシー][3004] を記述します。 -##### 設定例 +##### 構成例 {#configuration-example-3} 次の例では、HashiCorp Vault のシークレットパスプレフィックスが `/Datadog/Production` であり、パラメーターキーが `apikey` であるとします。 @@ -570,17 +574,17 @@ secret_backend_config: 次の Kubernetes サービスがサポートされています。 | secret_backend_type 値 | サービス | -||| +|---------------------------|---------| | `k8s.secrets` | [Kubernetes Secrets][7000] | -##### 前提条件 +##### 前提条件 {#prerequisites} Kubernetes Secrets バックエンドには次のものが必要です。 - **ServiceAccount の資格情報**: デフォルトでは、自動的にマウントされた ServiceAccount トークンを使用します (`automountServiceAccountToken: true`、詳細は [Kubernetes ドキュメント](https://kubernetes.io/docs/tasks/configurepodcontainer/configureserviceaccount/#optoutofapicredentialautomounting)を参照)。必要に応じてカスタムパスを設定できます。 -**RBAC 権限**: Agent の ServiceAccount には、ターゲットネームスペースからシークレットを読み取るための権限が必要です。 - **ネットワークアクセス**: Agent Pod は Kubernetes API サーバーに到達できる必要があります。 +- **ServiceAccount の資格情報**: デフォルトでは、自動的にマウントされた ServiceAccount トークンを使用します (`automountServiceAccountToken: true`、詳細は[Kubernetes のドキュメント](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting)を参照)。必要に応じてカスタムパスを設定できます。 +- **RBAC 権限**: Agent の ServiceAccount には、ターゲットネームスペースからシークレットを読み取るための権限が必要です。 +- **ネットワークアクセス**: Agent Pod は Kubernetes API サーバーに到達できる必要があります。 -##### RBAC のセットアップ +##### RBAC のセットアップ {#rbac-setup} シークレットを含む各ネームスペースについて、次の例のように正しいネームスペース名を使用して `Role` と `RoleBinding` を作成します。 @@ -612,7 +616,7 @@ subjects: namespace: datadog # Where Agent runs ``` -##### 設定例 +##### 構成例 {#configuration-example-4} {{< tabs >}} {{% tab "Agent YAML ファイル" %}} @@ -628,12 +632,12 @@ api_key: "ENC[secrets-prod/dd-api-key;api_key]" app_key: "ENC[secrets-prod/dd-api-key;app_key]" ``` -ENC 表記形式は `namespace/secretname;key` です。 - `namespace`: シークレットを含む Kubernetes ネームスペース - `secretname`: シークレットリソースの名前 - `key`: シークレットのデータフィールドから抽出する特定のキー +ENC 表記形式は `namespace/secret-name;key` です。 +- `namespace`: シークレットを含む Kubernetes ネームスペース +- `secret-name`: シークレットリソースの名前 +- `key`: シークレットのデータフィールドから抽出する特定のキー -**例:** ネームスペース `secretsns` におけるシークレットの指定 +**例:** ネームスペース `secrets-ns` におけるシークレットの指定 ```yaml apiVersion: v1 @@ -679,9 +683,9 @@ datadog: value: "ENC[secrets-ns/dd-api-key;api_key]" ``` -**注:** シークレットバックエンドを使用して API キーを解決する際、Helm チャートの検証にはプレースホルダー `apiKey` が必要です。これは `DD_API_KEY` 環境変数によりオーバーライドされます。シークレットを含む各ネームスペースに対して手動でRBAC (ロール + RoleBinding) を作成する必要があります。詳細については、[RBAC のセットアップ](#rbacsetup)セクションを参照してください。 +**注:** シークレットバックエンドを使用して API キーを解決する際、Helm チャートの検証にはプレースホルダー `apiKey` が必要です。これは `DD_API_KEY` 環境変数によりオーバーライドされます。シークレットを含む各ネームスペースに対して手動で RBAC (ロール + RoleBinding) を作成する必要があります。詳細については、[RBAC のセットアップ](#rbac-setup)セクションを参照してください。 -
    Helm にはネイティブな secretBackend.type 設定がありません。環境変数を使用します。
    +**あるいは、**Helm チャート v3.171.0 以上および Agent v7.70 以上の場合は、環境変数の代わりにネイティブの `datadog.secretBackend.type` フィールドを使用できます。 {{% /tab %}} @@ -708,14 +712,14 @@ spec: value: "ENC[secrets-ns/dd-api-key;api_key]" ``` -**注:** プレースホルダー API キーでは、シークレットバックエンドを使用して API キーを解決する際に Operator の検証が満たされます。これは `DD_API_KEY` 環境変数によりオーバーライドされます。シークレットを含む各ネームスペースに対して手動でRBAC (ロール + RoleBinding) を作成する必要があります。詳細については、[RBAC のセットアップ](#rbacsetup)セクションを参照してください。 +**注:** プレースホルダー API キーでは、シークレットバックエンドを使用して API キーを解決する際に Operator の検証が満たされます。これは `DD_API_KEY` 環境変数によりオーバーライドされます。シークレットを含む各ネームスペースに対して手動で RBAC (ロール + RoleBinding) を作成する必要があります。詳細については、[RBAC のセットアップ](#rbac-setup)セクションを参照してください。 -
    Operator にはネイティブな secretBackend.type 設定がありません。override.nodeAgent.env に環境変数を使用します。
    +**あるいは、**Datadog Operator v1.25.0 以上および Agent v7.70 以上の場合は、環境変数の代わりにネイティブの `spec.global.secretBackend.type` フィールドを使用できます。 {{% /tab %}} {{< /tabs >}} -##### カスタムパスの設定 +##### カスタムパスの設定 {#custom-path-configuration} デフォルトの ServiceAccount ベース認証の場所に従ってセットアップが行われない場合は、代わりに `token_path` と `ca_path` を指定できます。 {{< tabs >}} @@ -739,6 +743,9 @@ datadog: - name: DD_SECRET_BACKEND_CONFIG value: '{"token_path":"/custom/path/to/token","ca_path":"/custom/path/to/ca.crt"}' ``` + +**あるいは、**Helm チャート v3.171.0 以上の場合は、`datadog.secretBackend.type: "k8s.secrets"` および `datadog.secretBackend.config` を `token_path` および `ca_path` キーを指定して使用できます。 + {{% /tab %}} {{% tab "Operator" %}} @@ -752,10 +759,13 @@ override: - name: DD_SECRET_BACKEND_CONFIG value: '{"token_path":"/custom/path/to/token","ca_path":"/custom/path/to/ca.crt"}' ``` + +**あるいは、**Datadog Operator v1.25.0 以上の場合は、`spec.global.secretBackend.type: "k8s.secrets"` および `spec.global.secretBackend.config` を `token_path` および `ca_path` キーを指定して使用できます。 + {{% /tab %}} {{< /tabs >}} -##### カスタム API サーバーの設定 +##### カスタム API サーバーの設定 {#custom-api-server-configuration} セットアップでデフォルトの `KUBERNETES_SERVICE_HOST` および `KUBERNETES_SERVICE_PORT` 環境変数が公開されない場合、Kubernetes REST API とのやりとりのために `api_server` の URL を指定できます。 @@ -779,6 +789,9 @@ datadog: - name: DD_SECRET_BACKEND_CONFIG value: '{"api_server":"https://{KUBERNETES_SERVICE_HOST}:{KUBERNETES_SERVICE_PORT}"}' ``` + +**あるいは、**Helm チャート v3.171.0 以上の場合は、`datadog.secretBackend.type: "k8s.secrets"` および `datadog.secretBackend.config` を `api_server` キーを指定して使用できます。 + {{% /tab %}} {{% tab "Operator" %}} @@ -792,6 +805,9 @@ override: - name: DD_SECRET_BACKEND_CONFIG value: '{"api_server":"https://{KUBERNETES_SERVICE_HOST}:{KUBERNETES_SERVICE_PORT}"}' ``` + +**あるいは、**Datadog Operator v1.25.0 以上の場合は、`spec.global.secretBackend.type: "k8s.secrets"` および `spec.global.secretBackend.config` を `api_server` キーを指定して使用できます。 + {{% /tab %}} {{< /tabs >}} @@ -804,16 +820,16 @@ override: 次の Docker サービスがサポートされています。 | secret_backend_type 値 | サービス | -||| +|---------------------------|---------| | `docker.secrets` | [Docker Secrets][6001] | -##### 前提条件 +##### 前提条件 {#prerequisites-1} -Docker Secrets バックエンドでは、[Docker Swarm のシークレット][6002] と [Docker Compose のシークレット][6003] の両方がサポートされています。デフォルトでは、Swarm と Compose は、コンテナ内のシークレットをファイルとして `/run/secrets` (Linux) または `C:\ProgramData\Docker\secrets` (Windows) に自動的にマウントします。 +Docker Secrets バックエンドでは、[Docker Swarm のシークレット][6002] と [Docker Compose のシークレット][6003] の両方がサポートされています。デフォルトでは、Swarm と Compose の両方が、コンテナ内のシークレットをファイルとして `/run/secrets` (Linux) または `C:\ProgramData\Docker\secrets` (Windows) に自動的にマウントします。 **注**: Compose シークレットは、ファイルベース (ローカルファイルを指す) または外部 (既存の Swarm シークレットを参照) とすることができます。 -##### 設定例 +##### 構成例 {#configuration-example-5} Docker Secrets を使用して、次の設定に基づいて Datadog Agent を設定します。 @@ -825,8 +841,8 @@ secret_backend_type: docker.secrets api_key: "ENC[dd_api_key]" ``` -ENC 表記形式はシークレット名で、`/run/secrets/` 内のファイル名に対応します。 - `ENC[api_key]` は `/run/secrets/api_key` (Linux) または `C:\ProgramData\Docker\secrets\api_key` (Windows) から読み取ります。 +ENC 表記形式はシークレット名で、`/run/secrets/` 内のファイル名に対応します: +- `ENC[api_key]` は `/run/secrets/api_key` (Linux) または `C:\ProgramData\Docker\secrets\api_key` (Windows) から読み取ります。 **カスタムシークレットのパス:** シークレットを異なる場所にマウントするように Docker Swarm または Compose が設定されている場合は、次のように指定できます。 @@ -837,7 +853,7 @@ secret_backend_config: secrets_path: /custom/secrets/path ``` -##### Docker Swarm の例 +##### Docker Swarm の例 {#docker-swarm-example} Docker Swarm シークレットを [作成][6002] して使用します。 @@ -853,21 +869,21 @@ docker service create \ --env DD_SECRET_BACKEND_TYPE="docker.secrets" \ --env DD_SITE="datadoghq.com" \ --env DD_HOSTNAME="dd-agent" \ - datadog/agent:latest + registry.datadoghq.com/agent:latest ``` -シークレット `dd_api_key` は自動的に `/run/secrets/dd_api_key` にマウントされ、Agent により、`docker.secrets` バックエンドを使用して読み取られます。 +シークレット `dd_api_key` は `/run/secrets/dd_api_key` に自動的にマウントされ、Agent は `docker.secrets` バックエンドを使用してそれを読み取ります。 -##### Docker Compose の例 +##### Docker Compose の例 {#docker-compose-example} -ファイルベースのシークレットを使用して `dockercompose.yml`を [作成][6003] します。 +ファイルベースのシークレットを使用して `docker-compose.yml` を [作成][6003] します。 ```yaml version: '3.8' services: datadog: - image: datadog/agent:latest + image: registry.datadoghq.com/agent:latest environment: - DD_API_KEY=ENC[dd_api_key] - DD_SECRET_BACKEND_TYPE=docker.secrets @@ -881,21 +897,21 @@ secrets: file: ./secrets/api_key.txt ``` -シークレットファイル `./secrets/api_key.txt` は、コンテナ内の `/run/secrets/dd_api_key` にマウントされます。 +シークレットファイル `./secrets/api_key.txt` はコンテナ内の `/run/secrets/dd_api_key` にマウントされます。 {{% /collapse-content %}} {{% collapse-content title="JSON、YAML、または TEXT ファイルシークレットバックエンド" level="h4" expanded=false id="id-for-json-yaml-text" %}} -| secret_backend_type 値 | ファイルサービス | -||| +| secret_backend_type 値 | ファイルサービス | +|---------------------------------------------|-----------------------------------------| |`file.json` |[JSON][4001] | -|`file.yaml` |[YAML][4002] | | -|`file.text` |[TEXT][4003] | | +|`file.yaml` |[YAML][4002] | | +|`file.text` |[TEXT][4003] | | -##### ファイルのアクセス許可 -ファイルバックエンドには、設定された JSON、YAML、または TEXT ファイルに対する**読み取り**アクセス許可のみが必要です。これらのアクセス許可を、ローカルの Datadog Agent ユーザー (Linux では `ddagent`、Windows では `ddagentuser`) に付与する必要があります。 +##### ファイルのアクセス許可 {#file-permissions} +ファイルバックエンドには、設定された JSON、YAML、または TEXT ファイルに対する**読み取り**アクセス許可のみが必要です。これらのアクセス許可を、ローカルの Datadog Agent ユーザー (Linux では `dd-agent`、Windows では `ddagentuser`) に付与する必要があります。 {{< tabs >}} @@ -903,7 +919,7 @@ secrets: **注**: JSON の深度は 1 つのレベルのみサポートされています (たとえば、`{"key": "value"}`)。 -##### 設定例 +##### 構成例 {#configuration-example-6} JSON ファイルを使用してシークレットをローカルに保存できます。 @@ -930,9 +946,9 @@ secret_backend_config: {{% tab "YAML ファイルバックエンド" %}} -**注**: YAML の深度は 1 つのレベルのみサポートされています (たとえば、`key: value`) +**注**: YAML の深度は 1 つのレベルのみサポートされています (たとえば、`key: value`)。 -##### 設定例 +##### 構成例 {#configuration-example-7} YAML ファイルを使用してシークレットをローカルに保存できます。 @@ -959,7 +975,7 @@ secret_backend_config: **注**: 各シークレットはそれぞれ個別のテキストファイルに保存する必要があります。 -##### 設定例 +##### 構成例 {#configuration-example-8} 個別のテキストファイルを使用して、シークレットをローカルに保存できます。 @@ -989,13 +1005,13 @@ secret_backend_config: secrets_path: /path/to/secrets ``` -##### パスのセキュリティ: +##### パスのセキュリティ: {#path-security} - `ENC[]` の相対パスは、`secrets_path` に対して相対的に解決されます (例: `ENC[dd_api_key]` と `secret_path: /path/to/secrets` は `/path/to/secrets/dd_api_key` に解決されます)。 - `ENC[]` の絶対パスは `secrets_path` 内になければなりません (例: `ENC[/path/to/secrets/dd_api_key]` と `secret_path: /path/to/secrets` は有効です)。 - パストラバーサルの試み (例: `ENC[../etc/passwd]`) はブロックされ、「許可されたディレクトリ外のパス」として失敗します。 +- : `ENC[]` の相対パスは、`secrets_path` に対して相対的に解決されます (例: `ENC[dd_api_key]` と `secret_path: /path/to/secrets` は `/path/to/secrets/dd_api_key` に解決されます)。 +- `ENC[]` の絶対パスは `secrets_path` 内になければなりません (例: `ENC[/path/to/secrets/dd_api_key]` と `secret_path: /path/to/secrets` は有効です)。 +- : パストラバーサルの試み (例: `ENC[../etc/passwd]`) はブロックされ、「許可されたディレクトリ外のパス」として失敗します。 -**注:** 一部のツールでは、シークレットをファイルにエクスポートする際に自動的に改行が追加されます。この方法の詳細については、[末尾の改行を削除する](#removetrailinglinebreaks)を参照してください。 +**注:** 一部のツールでは、シークレットをファイルにエクスポートする際に自動的に改行が追加されます。対処方法について詳しくは、[末尾の改行を削除する](#remove-trailing-line-breaks)を参照してください。 {{% /tab %}} {{< /tabs >}} @@ -1003,12 +1019,12 @@ secret_backend_config: {{% /collapse-content %}} -### オプション 2: Kubernetes と Docker 用の組み込みスクリプトを使用 +### オプション 2: Kubernetes と Docker 用の組み込みスクリプトを使用 {#option-2-using-the-built-in-script-for-kubernetes-and-docker} コンテナ化された環境では、Datadog Agent のコンテナイメージには、バージョン v7.32.0 以降で使用できる組み込みスクリプト `/readsecret_multiple_providers.sh` が含まれています。このスクリプトでは、次の場所からシークレットを読み取ることができます。 * ファイル: `ENC[file@/path/to/file]` を使用 -* Kubernetes Secrets: `ENC[k8s_secret@namespace/secretname/key]` を使用 +* Kubernetes Secrets: `ENC[k8s_secret@namespace/secret-name/key]` を使用 {{< tabs >}} {{% tab "Datadog Operator" %}} @@ -1049,7 +1065,7 @@ DD_SECRET_BACKEND_COMMAND=/readsecret_multiple_providers.sh {{% /tab %}} {{< /tabs >}} -#### 例: マウントされたファイルからの読み取り +#### 例: マウントされたファイルからの読み取り {#example-reading-from-mounted-files} Kubernetes では、エージェントがシークレットを解決するために読み取ることができる Pod 内で [シークレットをファイルとして公開する][2] ことができます。 @@ -1076,12 +1092,12 @@ password: ENC[file@/etc/secret-volume/password] ``` **注**: - シークレットは、マウント先の Pod と同じネームスペースに存在する必要があります。 -スクリプトからは、機密の `/var/run/secrets/kubernetes.io/serviceaccount/token` を含むすべてのサブフォルダーにアクセスできます。そのため、Datadog では `/var/run/secrets` の代わりに専用のフォルダーを使用することが推奨されています。 +- シークレットは、マウント先の Pod と同じネームスペースに存在する必要があります。 +- スクリプトからは、機密の `/var/run/secrets/kubernetes.io/serviceaccount/token` を含むすべてのサブフォルダにアクセスできます。そのため、Datadog では `/var/run/secrets` の代わりに専用のフォルダを使用することが推奨されています。 -[Docker Swarm シークレット][3] は `/run/secrets` フォルダーにマウントされます。たとえば、Docker シークレット `db_prod_passsword` は Agent コンテナの `/run/secrets/db_prod_password` にあります。これは、設定で `ENC[file@/run/secrets/db_prod_password]` として参照されます。 +[Docker Swarm シークレット][3] は `/run/secrets` フォルダにマウントされます。たとえば、Docker シークレット `db_prod_passsword` は Agent コンテナの `/run/secrets/db_prod_password` にあります。これは、設定で `ENC[file@/run/secrets/db_prod_password]` として参照されます。 -#### 例: ネームスペースをまたいで Kubernetes シークレットを読み取る +#### 例: ネームスペースをまたいで Kubernetes シークレットを読み取る {#example-reading-a-kubernetes-secret-across-namespaces} Agent が異なるネームスペースからシークレットを読み取る必要がある場合は、`k8s_secret@` プレフィックスを使用します。たとえば、以下のとおりです。 @@ -1089,7 +1105,7 @@ Agent が異なるネームスペースからシークレットを読み取る password: ENC[k8s_secret@database/database-secret/password] ``` -Agent のサービスアカウントがシークレットを読み取れるように RBAC を設定します。次のロールは、`database` ネームスペースで `databasesecret` シークレットに対する読み取りアクセス権を付与します。 +Agent のサービスアカウントがシークレットを読み取れるように RBAC を設定します。次のロールは、`database-secret` ネームスペースで `database` シークレットに対する読み取りアクセス権を付与します。 {{< tabs >}} {{% tab "Datadog Operator" %}} @@ -1155,9 +1171,9 @@ roleRef: apiGroup: "" ``` -この `Role` は、`Namespace: database` で `Secret: databasesecret` に対するアクセス権を付与します。この `RoleBinding` は、`Namespace: default` で `ServiceAccount: datadogagent` に対するこのアクセス許可をリンクします。これは、デプロイされたリソースに関して手動でクラスターに追加する必要があります。 +この `Role` は、`Namespace: database` で `Secret: database-secret` に対するアクセス権を付与します。`RoleBinding` は、`Namespace: default` で `ServiceAccount: datadog-agent` に対するこのアクセス許可をリンクします。これは、デプロイされたリソースに関して手動でクラスターに追加する必要があります。 -### オプション 3: カスタム実行ファイルの作成 +### オプション 3: カスタム実行ファイルの作成 {#option-3-creating-a-custom-executable} シークレットを取得するために、Agent ではユーザーが提供した外部の実行ファイルを使用します。実行ファイルは、新しいシークレットが検出され、Agent のライフサイクル期間中キャッシュされたときに使用されます。シークレットを更新またはローテーションする必要がある場合は、Agent を再起動してリロードする必要があります。 @@ -1175,7 +1191,7 @@ Agent では、解決すべきシークレットハンドルのリストを含 ``` * `version` (文字列): フォーマットバージョンです。 -* `secrets` (文字列のリスト): 各文字列はシークレットが取得するハンドルです。 +* `secrets`(文字列のリスト): 各文字列はシークレットが取得するハンドルです。 実行ファイルは、以下の STDOUT 出力を通じて応答します。 @@ -1188,7 +1204,7 @@ Agent では、解決すべきシークレットハンドルのリストを含 ``` * `value` (文字列): 設定で使用されるシークレットの値。エラーの場合、これは `null` になる可能性があります。 -* `error` (文字列): エラーメッセージまたは `null`。 +* `error`(文字列): エラーメッセージまたは `null` です。 (非ゼロの終了コードまたは非 null のエラーが返され) シークレットの解決に失敗した場合、関連する設定は Agent によって無視されます。 @@ -1263,7 +1279,7 @@ instances: secret_backend_command: /path/to/binary ``` -## Agent のセキュリティ要件 +## Agent のセキュリティ要件 {#agent-security-requirements} Agent は提供された実行ファイルをサブプロセスとして実行します。実行パターンは Linux と Windows で異なります。 @@ -1272,9 +1288,9 @@ Agent は提供された実行ファイルをサブプロセスとして実行 Linux では、実行ファイルは次の条件を満たす必要があります。 -* Agent を実行しているのと同じユーザーに属していること (デフォルトでは `ddagent`、またはコンテナ内の `root`)。 +* Agent を実行しているのと同じユーザーに属していること (デフォルトでは `dd-agent`、またはコンテナ内の `root`)。 * `group` または `other` の権限がないこと。 -* 所有者に対して少なくとも**実行**権限があること。 +* 所有者に対して少なくとも **実行**権限があること。 {{% /tab %}} {{% tab "Windows" %}} @@ -1283,14 +1299,14 @@ Windows では、実行ファイルは次の条件を満たす必要がありま * `ddagentuser` (Agent の実行に使用するユーザー) に対する**読み取り**または**実行**権限があること。 * **Administrators** グループ、ビルトイン**ローカルシステム**アカウント、または Agent ユーザーコンテキスト (デフォルトでは `ddagentuser`) 以外のユーザーまたはグループの権限がないこと。 -*有効な Win32 アプリケーションであるため、Agent で実行できること (たとえば、PowerShell または Python スクリプトは機能しません)。 +* 有効な Win32 アプリケーションであり、Agent で実行できること (たとえば、PowerShell または Python スクリプトは機能しません)。 {{% /tab %}} {{< /tabs >}} **注**: 実行ファイルは、Agent と同じ環境変数を共有します。 -## 実行時のシークレットのリフレッシュ +## 実行時のシークレットのリフレッシュ {#refreshing-secrets-at-runtime} Agent v7.67 以降、再起動しなくても、解決されたシークレットがリフレッシュされるように Agent を設定できます。 @@ -1306,7 +1322,7 @@ secret_refresh_interval: 3600 # refresh every hour datadog-agent secret refresh ``` -### API/APP キーのリフレッシュ +### API/APP キーのリフレッシュ {#apiapp-key-refresh} シークレットとして取得された API/APP キーでは、実行時リフレッシュがサポートされています。 これを有効にするには、`datadog.yaml` で `secret_refresh_interval` (秒単位) を設定します。 @@ -1322,7 +1338,7 @@ secret_refresh_interval: 3600 # refresh every hour 以降、間隔ごとにリフレッシュされます。 ダウンタイムを防ぐため、全 Agent で更新済みのキーの取得が完了するまで待ってから、古いキーを無効にしてください。キーの使用状況の追跡は、 -[フリート管理](https://app.datadoghq.com/fleet)ページでできます。 +[フリート管理](https://app.datadoghq.com/fleet)ページで行うことができます。 この動作を無効にするには、次のように設定します。 @@ -1330,7 +1346,7 @@ secret_refresh_interval: 3600 # refresh every hour secret_refresh_scatter: false ``` -### Autodiscovery チェックのシークレットのリフレッシュ +### Autodiscovery チェックのシークレットのリフレッシュ {#autodiscovery-check-secrets-refresh} Agent v7.76 以降、スケジュールされた [Autodiscovery][1] チェックでは、テンプレートが `ENC[]` 構文を使用している場合、実行時にシークレットをリフレッシュできます。 ```yaml @@ -1354,13 +1370,13 @@ annotations: } ``` -その後、Agent では、`secret_refresh_interval` に設定された間隔で、または`datadogagent secret refresh` を使用して手動で、シークレットのリフレッシュをトリガーできます。 +その後、Agent では、`secret_refresh_interval` に設定された間隔で、または `datadog-agent secret refresh` を使用して手動で、シークレットのリフレッシュをトリガーできます。 -### API キーの失敗時または無効化時のシークレットの自動リフレッシュ +### API キーの失敗時または無効化時のシークレットの自動リフレッシュ {#automatic-secrets-refresh-on-api-key-failure-invalidation} Agent バージョン v7.74 以降、Agent では無効な API キーを検出した際にシークレットを自動的にリフレッシュできます。これは、Agent が Datadog から「403 Forbidden」の応答を受け取った場合、または定期的なヘルスチェックで無効または期限切れの API キーが検出された場合に発生します。 -この機能を有効にするには、`datadog.yaml`ファイルで `secret_refresh_on_api_key_failure_interval` を分単位の間隔に設定します。無効にするには、`0` に設定します (デフォルト)。 +この機能を有効にするには、`datadog.yaml` ファイルで `secret_refresh_on_api_key_failure_interval` を分単位の間隔に設定します。無効にするには、`0` に設定します (デフォルト)。 この間隔は、無効な API キーが検出された際に、シークレット管理ソリューションへのスパムを防ぐために 2 回のリフレッシュの間に設けられる最小時間です。 @@ -1372,7 +1388,7 @@ secret_refresh_on_api_key_failure_interval: 10 この設定は `secret_refresh_interval` と互換性があります。 -### DDOT コレクターリフレッシュの有効化 +### DDOT コレクターリフレッシュの有効化 {#enabling-ddot-collector-refresh} [DDOT コレクター][6] を使用していて、API/APP リフレッシュを有効にしたい場合は、次の追加設定を `datadog.yaml` ファイルに追加する必要があります。 ``` @@ -1383,9 +1399,9 @@ agent_ipc: これにより、シークレットがリフレッシュされた後、DDOT コレクターと Agent の同期が維持されます。Agent で設定状態が定期的に確認されるのと同様の方法で、DDOT コレクターではこの設定を使用して Agent で更新された値を定期的にチェックします。 -## トラブルシューティング +## トラブルシューティング {#troubleshooting} -### 検出されたシークレットのリスト +### 検出されたシークレットのリスト {#listing-detected-secrets} Agent CLI の `secret` コマンドでは、セットアップに関連するエラーが表示されます。たとえば、実行ファイルの権限が不正確な場合です。また、検出されたすべてのハンドルとその場所がリストされます。 @@ -1451,9 +1467,9 @@ Secrets handle decrypted: {{% /tab %}} {{< /tabs >}} -### シークレットが挿入された後の設定の表示 +### シークレットが挿入された後の設定の表示 {#seeing-configurations-after-secrets-were-injected} -チェックの設定がどのように解決されるかを素早く確認するには、`configcheck` コマンドを使用します。 +チェックの設定がどのように解決されるかをすばやく確認するには、`configcheck` コマンドを使用します。 ```shell sudo -u dd-agent -- datadog-agent configcheck @@ -1479,7 +1495,7 @@ password: **注**: Agent は、構成ファイルの変更を取得するために [再起動][7] する必要があります。 -### secret_backend_command のデバッグ +### secret_backend_command のデバッグ {#debugging-your-secret-backend-command} Agent の外部でテストまたはデバッグするには、Agent の実行方法を模倣します。 @@ -1491,12 +1507,12 @@ Agent の外部でテストまたはデバッグするには、Agent の実行 sudo -u dd-agent bash -c "echo '{\"version\": \"1.0\", \"secrets\": [\"secret1\", \"secret2\"]}' | /path/to/the/secret_backend_command" ``` -Datadog Agent をインストールすると、`ddagent` ユーザーが作成されます。 +Datadog Agent をインストールすると、`dd-agent` ユーザーが作成されます。 {{% /tab %}} {{% tab "Windows" %}} -##### 権限に関連するエラー +##### 権限関連のエラー {#rights-related-errors} 次のエラーは、セットアップで何かが欠落していることを示しています。 @@ -1515,7 +1531,7 @@ Datadog Agent をインストールすると、`ddagent` ユーザーが作成 error while running 'C:\decrypt.py': fork/exec C:\decrypt.py: %1 is not a valid Win32 application. ``` -Datadog には、実行ファイルに正しい権限を設定するのに役立つ [PowerShell スクリプト][9] があります。その使用方法の例を次に示します。 +Datadog には、実行ファイルに正しい権限を設定するのに役立つ [Powershell スクリプト][9] があります。その使用方法の例を次に示します。 ```powershell .\Set-SecretPermissions.ps1 -SecretBinaryPath C:\secrets\decrypt_secrets.exe @@ -1544,9 +1560,9 @@ Number of secrets resolved: 0 Secrets handle resolved: ``` -##### 実行ファイルのテスト +##### 実行ファイルのテスト {#testing-your-executable} -実行ファイルは、シークレットの取得時に Agent によって実行されます。Datadog Agent は、`ddagentuser` を使用して実行されます。このユーザーには特定の権限はありませんが、`Performance Monitor Users` グループの一部です。このユーザーのパスワードはインストール時にランダムに生成され、どこにも保存されません。 +実行ファイルは、シークレットの取得時に Agent によって実行されます。Datadog Agent は `ddagentuser` を使用して実行されます。このユーザーには特定の権限はありませんが、`Performance Monitor Users` グループの一部です。このユーザーのパスワードはインストール時にランダムに生成され、どこにも保存されません。 そのため、実行ファイルはデフォルトのユーザーまたは開発ユーザーで動作する可能性がありますが、`ddagentuser` の権限は制限が強いため、Agent によって実行されるときは動作しません。 @@ -1554,7 +1570,7 @@ Agent と同じ条件で実行ファイルをテストするには、開発用 これを行うには、次の手順を実行します。 -1. `Local Security Policy` の `Local Policies/User Rights Assignement/Deny Log on locally` リストから `ddagentuser` を削除します。 +1. `Local Security Policy` の `Local Policies/User Rights Assignement/Deny Log on locally` リストから `ddagentuser` を削除します。 2. `ddagentuser` に新しいパスワードを設定します (インストール時に生成されたパスワードはどこにも保存されないため)。PowerShell で、次を実行します。 ```powershell $user = [ADSI]"WinNT://./ddagentuser"; @@ -1583,12 +1599,12 @@ exit code: 0 ``` -[9]: https://github.com/DataDog/datadogagent/blob/master/docs/public/secrets/SetSecretPermissions.ps1 -[10]: https://github.com/DataDog/datadogagent/blob/master/docs/public/secrets/secrets_tester.ps1 +[9]: https://github.com/DataDog/datadog-agent/blob/master/docs/public/secrets/Set-SecretPermissions.ps1 +[10]: https://github.com/DataDog/datadog-agent/blob/master/docs/public/secrets/secrets_tester.ps1 {{% /tab %}} {{< /tabs >}} -### Agent による起動の拒否 +### Agent による起動の拒否 {#agent-refusing-to-start} Agent の起動時の最初の処理は、`datadog.yaml` をロードし、その中のシークレットを復号化することです。これは、ログのセットアップの前に行われます。そのため、Windows のようなプラットフォームでは、`datadog.yaml` のロード時に発生するエラーがログに書き込まれず、`stderr` に書き込まれます。これは、シークレットのために Agent に渡された実行ファイルがエラーを返すときに発生する可能性があります。 @@ -1597,14 +1613,14 @@ Agent の起動時の最初の処理は、`datadog.yaml` をロードし、そ * `stderr` を表示できるように、手動での Agent の起動を試みます。 * `datadog.yaml` からシークレットを削除し、最初にチェック構成ファイルでシークレットをテストします。 -### Kubernetes の権限のテスト +### Kubernetes の権限のテスト {#testing-kubernetes-permissions} Kubernetes から直接シークレットを読み込む場合、`kubectl auth` コマンドで権限をダブルチェックすることができます。一般的な形は次のとおりです。 ``` kubectl auth can-i get secret/ -n --as system:serviceaccount:: ``` -先ほどの [Kubernetes Secrets 例](#examplereadingakubernetessecretacrossnamespaces)で、シークレット `Secret:databasesecret` が `Namespace: database` に存在し、サービスアカウント `ServiceAccount:datadogagent` が `Namespace: default` に存在していると考えてみましょう。 +先ほどの [Kubernetes Secrets の例](#example-reading-a-kubernetes-secret-across-namespaces)で、シークレット `Secret:database-secret` が `Namespace: database` に存在し、サービスアカウント `ServiceAccount:datadog-agent` が `Namespace: default` に存在していると考えてみましょう。 この場合、次のコマンドを使用します。 @@ -1614,11 +1630,11 @@ kubectl auth can-i get secret/database-secret -n database --as system:serviceacc このコマンドは、Agent がこのシークレットを閲覧するための権限が有効であるかどうかを返します。 -### 行末の改行を削除する {#removetrailinglinebreaks} +### 行末の改行を削除する {#remove-trailing-line-breaks} 一部のシークレット管理ツールでは、ファイルを通じてシークレットをエクスポートする際に自動的に改行を追加します。これらの改行は、特にコンテナ化された環境で、[datadog.yaml 構成ファイル][8] に `secret_backend_remove_trailing_line_break: true` を設定するか、環境変数 `DD_SECRET_BACKEND_REMOVE_TRAILING_LINE_BREAK` を使用して削除できます。 -### シークレットハンドルにおける Autodiscovery 変数 +### シークレットハンドルにおける Autodiscovery 変数 {#autodiscovery-variables-in-secret-handles} シークレットハンドルで [Autodiscovery][1] 変数を使用することもできます。Agent では、シークレットを解決する前にこれらの変数が解決されます。たとえば、以下のとおりです。 @@ -1629,30 +1645,30 @@ instances: password: ENC[db_prod_password_%%host%%] ``` -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/agent/kubernetes/integrations/ -[2]: https://kubernetes.io/docs/tasks/injectdataapplication/distributecredentialssecure/#createapodthathasaccesstothesecretdatathroughavolume +[2]: https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#create-a-pod-that-has-access-to-the-secret-data-through-a-volume [3]: https://docs.docker.com/engine/swarm/secrets/ [6]: /ja/opentelemetry/setup/ddot_collector/ -[7]: /ja/agent/configuration/agentcommands/#restarttheagent -[8]: /ja/agent/configuration/agentconfigurationfiles/ +[7]: /ja/agent/configuration/agent-commands/#restart-the-agent +[8]: /ja/agent/configuration/agent-configuration-files/ [1000]: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html -[1001]: https://docs.aws.amazon.com/systemsmanager/latest/userguide/systemsmanagerparameterstore.html -[1006]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switchroleec2_instanceprofiles.html +[1001]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html +[1006]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html -[2000]: https://docs.microsoft.com/enus/Azure/keyvault/secrets/quickcreateportal +[2000]: https://docs.microsoft.com/en-us/Azure/key-vault/secrets/quick-create-portal -[3000]: https://learn.hashicorp.com/tutorials/vault/staticsecrets +[3000]: https://learn.hashicorp.com/tutorials/vault/static-secrets [3001]: https://developer.hashicorp.com/ -[3003]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switchroleec2_instanceprofiles.html -[3004]: https://developer.hashicorp.com/vault/docs/auth/aws#iamauthenticationinferences +[3003]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html +[3004]: https://developer.hashicorp.com/vault/docs/auth/aws#iam-authentication-inferences [4001]: https://en.wikipedia.org/wiki/JSON @@ -1660,15 +1676,15 @@ instances: [4003]: https://en.wikipedia.org/wiki/TEXT -[5000]: https://cloud.google.com/security/products/secretmanager -[5001]: https://cloud.google.com/docs/authentication/applicationdefaultcredentials -[5002]: https://docs.cloud.google.com/secretmanager/docs/accesscontrol -[5003]: https://docs.cloud.google.com/secretmanager/docs/accessingtheapi +[5000]: https://cloud.google.com/security/products/secret-manager +[5001]: https://cloud.google.com/docs/authentication/application-default-credentials +[5002]: https://docs.cloud.google.com/secret-manager/docs/access-control +[5003]: https://docs.cloud.google.com/secret-manager/docs/accessing-the-api [6001]: https://docs.docker.com/engine/swarm/secrets/ -[6002]: https://docs.docker.com/engine/swarm/secrets/#howdockermanagessecrets -[6003]: https://docs.docker.com/compose/howtos/usesecrets/ +[6002]: https://docs.docker.com/engine/swarm/secrets/#how-docker-manages-secrets +[6003]: https://docs.docker.com/compose/how-tos/use-secrets/ [7000]: https://kubernetes.io/docs/concepts/configuration/secret/ \ No newline at end of file diff --git a/content/ja/agent/logs/_index.md b/content/ja/agent/logs/_index.md index 843978a989a..7597490e2a6 100644 --- a/content/ja/agent/logs/_index.md +++ b/content/ja/agent/logs/_index.md @@ -1,62 +1,73 @@ --- description: '[Datadog Agent][60] を使用してログを Datadog に送信します' further_reading: +- link: agent/logs/agent_tags/ + tag: よくあるご質問 + text: Agent タグは自動的にログに追加されます - link: agent/logs/advanced_log_collection/#filter-logs - tag: ドキュメント + tag: よくあるご質問 text: Datadog に送信されるログの絞り込み - link: agent/logs/advanced_log_collection/#scrub-sensitive-data-from-your-logs - tag: ドキュメント + tag: よくあるご質問 text: ログの機密データのスクラビング - link: agent/logs/advanced_log_collection/#multi-line-aggregation - tag: ドキュメント + tag: よくあるご質問 text: 複数行のログの集約 - link: agent/logs/advanced_log_collection/#tail-directories-using-wildcards - tag: ドキュメント + tag: よくあるご質問 text: ワイルドカードを使用したディレクトリの追跡 - link: agent/logs/advanced_log_collection/#global-processing-rules - tag: ドキュメント + tag: よくあるご質問 text: グローバルな処理ルール title: ホスト Agent ログの収集 --- +ログ収集には Datadog Agent v6.0 以降が必要です。古いバージョンの Agent には `log collection` インターフェイスが含まれていません。Agent をまだ使用していない場合は、[Agent のインストール手順][1] に従ってください。 -ログの収集には、Datadog Agent v6.0 以上が必要です。古いバージョンの Agent には、`log collection` インターフェイスが含まれていません。まだ Agent を使用していない場合は、[Agent のインストール手順][1]に従ってください。 +ほかのベンダーのコレクターやフォワーダーを使用してログを送信したい場合、または配信前に環境内でログデータを前処理したい場合は、[Observability Pipelines][2] を参照してください。 -他のベンダーのコレクターやフォワーダーを使用してログを送信したい場合、または配信前に環境内でログデータを前処理したい場合は、[Observability Pipelines][2] を参照してください。 +## ログ収集を有効にする {#activate-log-collection} -## ログ収集を有効にする +Datadog Agent では、ログの収集はデフォルトでは**有効になっていません**。Agent を Kubernetes または Docker 環境で実行している場合は、専用の [Kubernetes ログ収集][3] または [Docker ログ収集][4] のドキュメントを参照してください。 -Datadog Agent では、ログの収集はデフォルトで**有効になっていません**。Agent を Kubernetes または Docker 環境で実行している場合は、専用の [Kubernetes ログ収集][3]または [Docker ログ収集][4]のドキュメントを参照してください。 +ホストで実行されている Agent でログ収集を有効にするには、Agent の [メイン構成ファイル][5] (`datadog.yaml`) で `logs_enabled: false` を `logs_enabled: true` に変更します。 -ホストで実行されている Agent でログ収集を有効にするには、Agent の[メインコンフィギュレーションファイル][5] (`datadog.yaml`) で `logs_enabled: false` を `logs_enabled: true` に変更します。 +{{< code-block lang="yaml" filename="datadog.yaml" disable_copy="false" collapsible="true" >}} +logs_enabled: true +logs_config: + auto_multi_line_detection: true + force_use_http: true +{{< /code-block >}} -{{< agent-config type="log collection configuration" filename="datadog.yaml" collapsible="true">}} +使用可能なすべての構成オプションの詳細については、[サンプル config_template.yaml ファイル][6] を参照してください。 -Agent v6.19+/v7.19+ 以降、使用されるデフォルトのトランスポートは HTTPS トランスポートです。HTTPS/TCP トランスポートを実行する方法の詳細については、[Agent トランスポートのドキュメント][6]を参照してください。 +
    Agent v6.19/v7.19 以降、使用されるデフォルトのトランスポートは HTTPS トランスポートです。詳細については、Agent トランスポート.
    を参照してください。 -環境変数を伴った形でログを送信するには、以下の構成を行ってください。 +**環境変数**を伴った形でログを送信するには、以下の構成を行ってください。 -* `DD_LOGS_ENABLED=true` +``` +DD_LOGS_ENABLED=true +``` ログ収集を有効にすると、Agent から Datadog にログを転送できるようになります。次に、Agent でログの収集元を設定します。 -## カスタムログ収集 +## カスタムログ収集 {#custom-log-collection} Datadog Agent v6 は、収集したログをファイル、ネットワーク (TCP または UDP)、journald、Windows チャンネルから Datadog に転送できます。 -1. [Agent の構成ディレクトリ][5]のルートにある `conf.d/` ディレクトリに、Datadog ユーザーがアクセスできる新しい `.d/` フォルダを作成します。 -2. この新しいフォルダーに新しい `conf.yaml` ファイルを作成します。 +1. [Agent の構成ディレクトリ][5] のルートにある `conf.d/` ディレクトリに、Datadog ユーザーがアクセスできる新しい `.d/` フォルダを作成します。 +2. この新しいフォルダに新しい `conf.yaml` ファイルを作成します。 3. 下記のパラメーターを指定して、カスタムログ収集構成グループを追加します。 -4. [Agent を再起動][7]してこの新しい構成を適用します。 -5. [Agent の status サブコマンドを実行][8]し、Checks セクションで `` を検索します。 +4. [Agent を再起動][8] してこの新しい構成を適用します。 +5. [Agent の status サブコマンド][9] を実行し、Checks セクションに `` があることを確認します。 -権限エラーがある場合は、[ログファイルを追跡する権限の問題][9]を参照してトラブルシューティングを行ってください。 +権限エラーがある場合は、[ログファイルを追跡する権限の問題][10] を参照してトラブルシューティングを行ってください。 以下に、カスタムログ収集設定の例を示します。 {{< tabs >}} -{{% tab "Tail files" %}} +{{% tab "ファイルのテール" %}} -`/.log` に保存されているログを `` アプリケーションから収集するには、[Agent の構成ディレクトリ][1]のルートに以下の内容の `.d/conf.yaml` ファイルを作成します。 +`/.log` に保存されているログを `` アプリケーションから収集するには、[Agent の構成ディレクトリ][1] のルートに以下の内容の `.d/conf.yaml` ファイルを作成します。 ```yaml logs: @@ -66,16 +77,22 @@ logs: source: "" ``` -Windows では、パス `:\\\\.log` を使用し、ユーザー `ddagentuser` がログファイルへの読み取りおよび書き込みアクセス権を持つことを確認します。 +**Windows** では、パス `:\\\\.log` を使用し、ユーザー `ddagentuser` ログファイルへの読み取りおよび書き込みアクセス権を持つことを確認します。 -**注**: ログ行は改行文字、`n` または `\r\n` で終了する必要があります。そうしないと、Agent は無期限に待機し、ログ行を送信しません。 +**注**: ログ行は改行文字、`\n` または `\r\n` で終了する必要があります。そうしないと、Agent は無期限に待機し、ログ行を送信しません。 [1]: /ja/agent/configuration/agent-configuration-files/ {{% /tab %}} {{% tab "TCP/UDP" %}} -TCP ポート **10518** にログを転送する `` アプリケーションからログを収集するには、[Agent の構成ディレクトリ][1]のルートに以下の内容の `.d/conf.yaml` ファイルを作成します。 +送信者の IP アドレスをキャプチャし、ログメッセージのペイロードに含めるには、`datadog.yaml` ファイルに以下の構成を追加します。 + +```yaml + logs_config: + use_sourcehost_tag: true +``` +TCP ポート **10518** にログを転送する `` アプリケーションからログを収集するには、[Agent の構成ディレクトリ][1] のルートに以下の内容の `.d/conf.yaml` ファイルを作成します。 ```yaml logs: @@ -91,13 +108,13 @@ Agent バージョン 7.31.0 以降では、TCP 接続はアイドル状態で **注**: - Agent は、単純文字列、JSON、および Syslog 形式のログをサポートします。複数のログを一度に送信する場合は、改行文字を使用してログを区切ってください。 -- ログ行は改行文字、`n` または `\r\n` で終了する必要があります。そうしないと、Agent は無期限に待機し、ログ行を送信しません。 +- ログ行は改行文字、`\n` または `\r\n` で終了する必要があります。そうしないと、Agent は無期限に待機し、ログ行を送信しません。 [1]: /ja/agent/configuration/agent-configuration-files/ {{% /tab %}} {{% tab "journald" %}} -journald からログを収集するには、[Agent の構成ディレクトリ][1]のルートに以下の内容の `journald.d/conf.yaml` ファイルを作成します。 +journald からログを収集するには、[Agent の構成ディレクトリ][1] のルートに以下の内容の `journald.d/conf.yaml` ファイルを作成します。 ```yaml logs: @@ -105,12 +122,12 @@ logs: path: /var/log/journal/ ``` -コンテナ化環境およびユニットフィルタリングの設定については、[journald インテグレーション][2]に関するドキュメントを参照してください。 +コンテナ化環境およびユニットフィルタリングの設定については、[journald インテグレーション][2] に関するドキュメントを参照してください。 [1]: /ja/agent/configuration/agent-configuration-files/ [2]: /ja/integrations/journald/ {{% /tab %}} -{{% tab "Windows Events" %}} +{{% tab "Windows イベント" %}} Windows のイベントをログとして Datadog に送信するには、`conf.d/win32_event_log.d/conf.yaml` にチャンネルを手動で追加するか、Datadog Agent Manager を使用します。 @@ -144,68 +161,107 @@ logs: ``` `` パラメーターは、イベントの収集に使用する Windows チャンネル名に変更してください。 -[インテグレーションの自動処理パイプライン設定][1]を利用するには、対応する `source` パラメーターを同じチャンネル名に設定します。 +[インテグレーション自動処理パイプラインのセットアップ][1] を利用するには、対応する `source` パラメーターを同じチャンネル名に設定します。 -最後に、[Agent を再起動][2]します。 +最後に、[Agent を再起動][2] します。 [1]: /ja/logs/log_configuration/pipelines/#integration-pipelines [2]: /ja/agent/basic_agent_usage/windows/ {{% /tab %}} +{{% tab "Windows プライベートロケーション" %}} +以下のセクションの手順に従って、Windows プライベートロケーションのログを Datadog に送信します。 + +### Agent を構成する {#configure-the-agent} + +1. Agent のログ収集を有効にするには、Agent 構成ファイルで `logs_enabled: true` を設定します. +2. `C:\ProgramData\Datadog\conf.d` に移動し、`synthetics_worker.d` という名前のフォルダを作成します。 +3. `synthetics_worker.d` フォルダ内に、`conf.yaml` という名前のファイルを作成します。以下の例をテンプレートとして使用してください。 + +```yaml +logs: + - type: file + path: "C:\\Program Files\\Datadog-Synthetics\\Synthetics\\private-location-service.out.log" + service: + source: synthetics + tags: # Defined per user preference + - env: + - private_location: +``` + +### Agent を実行しているユーザーを確認する {#verify-the-user-running-the-agent} + +プライベートロケーションのインストールフォルダには管理者しかアクセスできないため、Datadog Agent にログファイルへのアクセス権が必要です。Datadog Agent を実行しているユーザーを確認するには、次の手順を実行します。 + +1. Windows キーを押しながら `R` キーを押し、{{< ui >}}Run{{< /ui >}} を検索します。 +2. Datadog Agent を見つけて右クリックし、[{{< ui >}}Properties{{< /ui >}}] (プロパティ) を選択します。 +3. [{{< ui >}}Log On{{< /ui >}}] (ログオン) タブでアカウントを確認します (デフォルトは `ddagentuser` です)。 +4. ウィンドウを閉じます。 + +### Agent を実行しているユーザーに権限を付与する {#grant-permission-to-the-user-running-the-agent} + +1. `C:\Program Files` に移動し、`synthetics_worker.d` フォルダを見つけます。 +2. `synthetics_worker.d` フォルダを右クリックし、[{{< ui >}}Properties{{< /ui >}}] を選択します。 +3. [{{< ui >}}Security{{< /ui >}}] (セキュリティ) タブに移動します。 +4. [{{< ui >}}Edit{{< /ui >}}] (編集) をクリックし、`ddagentuser` を追加します。 +5. 必要な権限を付与します。 +6. サービス画面またはコマンドラインから Datadog Agent を再起動して変更を適用し、Datadog へのログの送信を開始します。 +{{% /tab %}} {{< /tabs >}} ログの収集に使用可能なパラメーターのリスト | パラメーター | 必須 | 説明 | |------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `type` | はい | ログ入力ソースの種類。有効な値は、`tcp`、`udp`、`file`、`windows_event`、`docker`、`journald` です。 | -| `port` | はい | `type` が **tcp** または **udp** の場合、ログをリスニングするポートを設定します。 | -| `path` | はい | `type` が **file** または **journald** の場合、ログを収集するファイルパスを設定します。 | -| `channel_path` | はい | `type` が **windows_event** の場合、ログを収集する Windows イベントチャンネルをリストします。 | -| `service` | はい | ログを所有しているサービスの名前。ご使用のサービスを [Datadog APM][10] でインスツルメントしている場合、これは同じサービス名にする必要があります。複数のデータタイプにわたって `service` を構成する場合は、[統合サービスタグ付け][11]の手順を確認してください。 | -| `source` | はい | ログを送信しているインテグレーションを定義する属性。既存のインテグレーションに由来するログでない場合、このフィールドはカスタムソース名を含めることができます。ただし、関連して収集している[カスタムメトリクス][12]がある場合は、そのネームスペースと一致させることをお勧めします。たとえば、`myapp.request.count` の `myapp` を使用します。 | -| `include_units` | いいえ | `type` が **journald** の場合、対象とする journald ユニットのリスト。 | +| `type` | はい | ログ入力ソースの種類。有効な値は、`tcp`、`udp`、`file`、`windows_event`、`docker`、または `journald` です。 | +| `port` | はい | `type` が **tcp** または **udp** の場合、ログをリスニングするポートを設定します。 | +| `path` | はい | `type` が **file** または **journald** の場合、ログを収集するファイルパスを設定します。 | +| `channel_path` | はい | `type` が **windows_event** の場合、ログを収集する Windows イベントチャンネルをリストします。 | +| `service` | はい | ログを所有しているサービスの名前。ご使用のサービスを [Datadog APM][11] でインスツルメントしている場合、これは同じサービス名にする必要があります。複数のデータタイプにわたって `service` を構成する場合は、[unified service tagging][12] の手順を確認してください。 | +| `source` | はい | ログを送信しているインテグレーションを定義する属性。既存のインテグレーションに由来するログでない場合、このフィールドはカスタムソース名を含めることができます。ただし、関連して収集している [Custom Metrics][13] がある場合は、この値をそのネームスペースと一致させることをお勧めします。たとえば、`myapp.request.count` の `myapp` を使用します。| +| `include_units` | いいえ | `type` が **journald** の場合、対象とする journald ユニットのリスト。 | | `exclude_paths` | いいえ | `type` が **file** で、`path` にワイルドカード文字が含まれている場合、ログ収集から除外する必要がある一致するファイルをリストします。6.18 以降の Agent バージョンで使用できます。 | -| `exclude_units` | いいえ | `type` が **journald** の場合、対象としない journald ユニットのリスト。 | -| `sourcecategory` | いいえ | ソース属性が属するカテゴリーの定義に使用される属性。たとえば、source:postgres、sourcecategory:database`、`source: apache, sourcecategory: http_web_access` です。 | -| `start_position` | いいえ | 詳しくは[開始位置](#start-position)を参照してください。| -| `encoding` | いいえ | `type` が **file** の場合、Agent がファイルを読み込む際のエンコーディングを設定します。UTF-16 リトルエンディアン の場合は `utf-16-le` に、UTF-16 ビッグエンディアンの場合は `utf-16-be` に、Shift JIS の場合は `shift-jis` に設定します。その他の値に設定すると、Agent はファイルを UTF-8 形式で読み込みます。_`utf-16-le` および `utf-16be` は Agent v6.23/v7.23 の、`shift-jis` は Agent v6.34/v7.34 の追加機能です_ | -| `tags` | いいえ | 収集される各ログに追加するタグのリスト ([タグ付けの詳細はこちら][13])。 | +| `exclude_units` | いいえ | `type` が **journald** の場合、除外する journald ユニットのリスト。 | +| `sourcecategory` | いいえ | ソース属性が属するカテゴリーの定義に使用される属性。たとえば、`source:postgres, sourcecategory:database` または `source: apache, sourcecategory: http_web_access` です。 | +| `start_position` | いいえ | 詳しくは、[開始位置](#start-position)を参照してください。| +| `encoding` | いいえ | `type` が **file** の場合、Agent がファイルを読み込む際のエンコーディングを設定します。UTF-16 リトルエンディアンの場合は `utf-16-le` に、UTF-16 ビッグエンディアンの場合は `utf-16-be` に、Shift JIS の場合は `shift-jis` に設定します。その他の値に設定すると、Agent はファイルを UTF-8 形式で読み込みます。_`utf-16-le` および `utf-16be` は Agent v6.23/v7.23 で、`shift-jis` は Agent v6.34/v7.34 で追加されました。_ | +| `tags` | いいえ | 収集される各ログに追加するタグのリスト ([タグ付けの詳細はこちら][14])。 | -### 開始位置 +### 開始位置 {#start-position} -`start_position` パラメーターは **file** および **journald** テーラータイプでサポートされています。コンテナをテールする場合、 `start_position` は常に `beginning` です。 +`start_position` パラメーターは **file** および **journald** テーラータイプでサポートされています。コンテナをテールする場合、`start_position` は常に `beginning` です。 サポート: -- **File**: Agent 6.19+/7.19+ -- **Journald**: Agent 6.38+/7.38+ +- **file**: Agent 6.19+/7.19+ +- **journald**: Agent 6.38+/7.38+ -`type` が **file** の場合 +`type` が **file** の場合: - Agent がファイルの読み込みを開始する位置を設定します。 -- 有効な値は `beginning`、`end`、`forceBeginning`、`forceEnd` です (デフォルトは `end`)。 +- 有効な値は、`beginning`、`end`、`forceBeginning`、および `forceEnd` です (デフォルト: `end`)。 - `beginning` の位置はワイルドカードを使ったパスに対応していません。 -`type` が **journald** の場合 +`type` が **journald** の場合: - Agent がジャーナルの読み込みを開始する位置を設定します。 -- 有効な値は `beginning`、`end`、`forceBeginning`、`forceEnd` です (デフォルトは `end`)。 +- 有効な値は、`beginning`、`end`、`forceBeginning`、および `forceEnd` です (デフォルト: `end`)。 -#### 優先度 +#### 優先度 {#precedence} file および journald テーラータイプの両方で、`end` または `beginning` 位置が指定され、オフセットが格納されている場合、オフセットが優先されます。`forceBeginning` または `forceEnd` を使用すると、Agent はオフセットが格納されていても指定された値を使用するようになります。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/account/settings/agent/latest [2]: https://docs.datadoghq.com/ja/observability_pipelines/ -[3]: /ja/agent/kubernetes/log/ -[4]: /ja/agent/docker/log/ +[3]: /ja/containers/kubernetes/log/ +[4]: /ja/containers/docker/log/ [5]: /ja/agent/configuration/agent-configuration-files/ -[6]: /ja/agent/logs/log_transport/ -[7]: /ja/agent/configuration/agent-commands/#restart-the-agent -[8]: /ja/agent/configuration/agent-commands/#agent-status-and-information -[9]: /ja/logs/guide/log-collection-troubleshooting-guide/#permission-issues-tailing-log-files' -[10]: /ja/tracing/ -[11]: /ja/getting_started/tagging/unified_service_tagging -[12]: /ja/metrics/custom_metrics/#overview -[13]: /ja/getting_started/tagging/ \ No newline at end of file +[6]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml +[7]: /ja/agent/logs/log_transport/ +[8]: /ja/agent/configuration/agent-commands/#restart-the-agent +[9]: /ja/agent/configuration/agent-commands/#agent-status-and-information +[10]: /ja/logs/guide/log-collection-troubleshooting-guide/#permission-issues-tailing-log-files +[11]: /ja/tracing/ +[12]: /ja/getting_started/tagging/unified_service_tagging +[13]: /ja/metrics/custom_metrics/#overview +[14]: /ja/getting_started/tagging/ \ No newline at end of file diff --git a/content/ja/agent/logs/advanced_log_collection.md b/content/ja/agent/logs/advanced_log_collection.md index 4075c9997b9..886f1fe0efd 100644 --- a/content/ja/agent/logs/advanced_log_collection.md +++ b/content/ja/agent/logs/advanced_log_collection.md @@ -1,63 +1,68 @@ --- algolia: tags: - - 高度なログフィルター -description: Datadog Agent を使用してログを収集し、Datadog に送信 + - advanced log filter +description: Datadog Agent を使用してログを Datadog に送信します further_reading: - link: /logs/guide/getting-started-lwl/ - tag: ドキュメント - text: Logging without LimitsTM 入門 + tag: よくあるご質問 + text: Logging without Limits™ 入門 - link: /logs/guide/how-to-set-up-only-logs/ - tag: ドキュメント + tag: よくあるご質問 text: ログ収集専用として Datadog Agent を使用する - link: /logs/log_configuration/processors - tag: ドキュメント + tag: よくあるご質問 text: ログの処理方法について - link: /logs/log_configuration/parsing - tag: ドキュメント + tag: よくあるご質問 text: パースの詳細 - link: /logs/live_tail/ - tag: ドキュメント + tag: よくあるご質問 text: Datadog Live Tail 機能 - link: /logs/explorer/ - tag: ドキュメント - text: ログの調査方法 + tag: よくあるご質問 + text: ログの探索方法 - link: /glossary/#tail tag: 用語集 text: 用語集の "tail" の項目 title: ログ収集の高度な構成 --- - -[ログ収集][1]をセットアップした後、収集構成をカスタマイズできます。 -* [ログをフィルター](#filter-logs) -* [ログの機密データのスクラビング](#scrub-sensitive-data-from-your-logs) -* [複数行のログを集計する](#multi-line-aggregation) -* [よく使われる例をコピーする](#commonly-used-log-processing-rules) -* [ディレクトリを監視するためにワイルドカードを使用する](#tail-directories-using-wildcards) -* [ログファイルのエンコーディングを指定する](#log-file-encodings) -* [グローバルな処理ルールを定義する](#global-processing-rules) +[ログ収集][1] をセットアップした後、収集構成をカスタマイズできます。 +- [ログの絞り込み](#filter-logs) + - [一致時に除外](#exclude-at-match) + - [一致時に含める](#include-at-match) + - [切り捨てられたログを除外](#exclude-truncated) +- [ログの機密データのスクラビング](#scrub-sensitive-data-from-your-logs) +- [複数行の集約](#manually-aggregate-multi-line-logs) +- [複数行のログを自動的に集約](#automatically-aggregate-multi-line-logs) +- [良く使用されるログの処理ルール](#commonly-used-log-processing-rules) +- [ワイルドカードを使用したディレクトリのテール](#tail-directories-using-wildcards) + - [修正時間によるテール対象ファイルの優先順位付け](#prioritize-tailed-files-by-modification-time) +- [ログファイルのエンコーディング](#log-file-encodings) +- [グローバルな処理ルール](#global-processing-rules) +- [参考資料](#further-reading) Datadog Agent によって収集されたすべてのログに同一の処理ルールを適用する場合は、[グローバルな処理ルール](#global-processing-rules)のセクションを参照してください。 **注**: - 複数の処理ルールを設定した場合、ルールは順次適用され、各ルールは直前のルールの結果に適用されます。 -- 処理ルールのパターンは [Golang の正規構文][2]に従う必要があります。 -- `log_processing_rules` パラメーターは、インテグレーションの構成で、ログ収集の構成をカスタマイズするために使用されます。Agent の[メインの構成][5]では、グローバルな処理ルールを定義するために `processing_rules` パラメーターが使用されます。 +- 処理ルールのパターンは [Golang の正規構文][2] に従う必要があります。 +- `log_processing_rules` パラメーターは、インテグレーション構成でログ収集構成をカスタマイズするために使用されます。一方 Agent の [メイン構成][5] では、`processing_rules` パラメーターはグローバルな処理ルールを定義するために使用されます。 -## ログの絞り込み +## ログの絞り込み {#filter-logs} ログの一部分のみを Datadog に送信するには、構成ファイル内の `log_processing_rules` パラメーターを使用して、type に `exclude_at_match` または `include_at_match` を指定します。 -### 一致時に除外 +### 一致時に除外 {#exclude-at-match} | パラメーター | 説明 | |--------------------|----------------------------------------------------------------------------------------------------| -| `exclude_at_match` | 指定されたパターンがメッセージに含まれる場合、そのログは除外され、Datadog に送信されません。 | +| `exclude_at_match` | 指定されたパターンがメッセージに含まれる場合、そのログは除外され、Datadog に送信されません。| たとえば、Datadog メールアドレスを含むログを**除外する**には、次の `log_processing_rules` を使用します。 {{< tabs >}} -{{% tab "Configuration file" %}} +{{% tab "構成ファイル" %}} ```yaml logs: @@ -68,14 +73,18 @@ logs: log_processing_rules: - type: exclude_at_match name: exclude_datadoghq_users - ## 任意の正規表現 + ## Regexp can be anything pattern: \w+@datadoghq.com ``` {{% /tab %}} {{% tab "Docker" %}} -Docker 環境では、`log_processing_rules` を指定するために、**フィルターしたいログを送るコンテナ**のラベル `com.datadoghq.ad.logs` を使用します。例: +
    +Agent 構成の詳細については、「コンテナディスカバリー管理」を参照してください。 +
    + +Docker 環境では、`log_processing_rules` を指定するために、**フィルターするログを送信するコンテナ**でラベル `com.datadoghq.ad.logs` を使用します。例: ```yaml labels: @@ -91,14 +100,18 @@ Docker 環境では、`log_processing_rules` を指定するために、**フィ }] ``` -**注**: ラベルを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- ラベルを使用する際には、パターンで正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{% tab "Kubernetes" %}} -オートディスカバリーを使用して、ポッド内の指定したコンテナ (名前は `CONTAINER_NAME`) のコンテナログを収集するように構成するには、ポッドの `log_processing_rules` に以下のアノテーションを追加します。 +
    +Agent 構成の詳細については、「コンテナディスカバリー管理」を参照してください。 +
    + +Autodiscovery を使用して、Pod 内の指定したコンテナ (名前は `CONTAINER_NAME`) のコンテナログを収集するように構成するには、Pod の `log_processing_rules` に以下のアノテーションを追加します。 ```yaml apiVersion: apps/v1 @@ -130,24 +143,24 @@ spec: image: cardpayment:latest ``` -**注**: ポッドアノテーションを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- Pod アノテーションを使用する場合は、パターン内の正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{< /tabs >}} -### 一致時に含める +### 一致時に含める {#include-at-match} | パラメーター | 説明 | |--------------------|-----------------------------------------------------------------------------------| -| `include_at_match` | 指定されたパターンを含むメッセージを持つログだけが Datadog に送信されます。複数の `include_at_match` ルールが定義されている場合、ログを含めるにはすべてのルールパターンが一致している必要があります。 | +| `include_at_match` | 指定されたパターンを含むメッセージを持つログだけが Datadog に送信されます。複数の `include_at_match` ルールが定義されている場合、ログが送信されるためには、すべてのルールパターンに一致する必要があります。| -たとえば、Datadog のメールアドレスを含むログに**絞り込む**には、次のような `log_processing_rules` の構成を使用します。 +たとえば、Datadog のメールアドレスを含むログに**絞り込む**には、次の `log_processing_rules` の構成を使用します。 {{< tabs >}} -{{% tab "Configuration file" %}} +{{% tab "構成ファイル" %}} ```yaml logs: @@ -158,7 +171,7 @@ logs: log_processing_rules: - type: include_at_match name: include_datadoghq_users - ## 任意の正規表現 + ## Regexp can be anything pattern: \w+@datadoghq.com ``` @@ -195,7 +208,7 @@ logs: {{% /tab %}} {{% tab "Docker" %}} -Docker 環境では、フィルターを適用するログの送信元のコンテナでラベル `com.datadoghq.ad.logs` を使用して、`log_processing_rules` を指定します。例: +Docker 環境では、`log_processing_rules` を指定するために、フィルターするログを送信するコンテナでラベル `com.datadoghq.ad.logs` を使用します。例: ```yaml labels: @@ -211,14 +224,14 @@ Docker 環境では、フィルターを適用するログの送信元のコン }] ``` -**注**: ラベルを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- ラベルを使用する際には、パターンで正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{% tab "Kubernetes" %}} -Kubernetes 環境では、ポッドで `ad.datadoghq.com` ポッドアノテーションを使用して `log_processing_rules` を指定します。例: +Kubernetes 環境では、`log_processing_rules` を指定するために、Pod で Pod アノテーション `ad.datadoghq.com` を使用します。例: ```yaml apiVersion: apps/v1 @@ -250,14 +263,92 @@ spec: image: cardpayment:latest ``` -**注**: ポッドアノテーションを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 +**注**: +- Pod アノテーションを使用する場合は、パターン内の正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 + +{{% /tab %}} +{{< /tabs >}} + +### 切り捨てられたログを除外 {#exclude-truncated} + +| パラメーター | 説明 | +|---------------------|--------------------------------------------------------------------| +| `exclude_truncated` | 存在する場合、切り捨てられたログを除外し、Datadog に送信しません。`exclude_truncated` ルールは Agent v7.69 以降で利用可能です。| + +たとえば、切り捨てられたログを**除外する**には、次のようにします。 + +{{< tabs >}} +{{% tab "構成ファイル" %}} + +```yaml +logs: + - type: file + path: /my/test/file.log + service: cardpayment + source: java + log_processing_rules: + - type: exclude_truncated +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +Docker 環境では、`log_processing_rules` を指定するために、フィルターするログを送信するコンテナでラベル `com.datadoghq.ad.logs` を使用します。例: + +```yaml + labels: + com.datadoghq.ad.logs: >- + [{ + "source": "java", + "service": "cardpayment", + "log_processing_rules": [{ + "type": "exclude_truncated" + }] + }] +``` + +**注**: ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 + +{{% /tab %}} +{{% tab "Kubernetes" %}} + +Kubernetes 環境では、`log_processing_rules` を指定するために、Pod で Pod アノテーション `ad.datadoghq.com` を使用します。例: + +```yaml +apiVersion: apps/v1 +metadata: + name: cardpayment +spec: + selector: + matchLabels: + app: cardpayment + template: + metadata: + annotations: + ad.datadoghq.com/.logs: >- + [{ + "source": "java", + "service": "cardpayment", + "log_processing_rules": [{ + "type": "exclude_truncated" + }] + }] + labels: + app: cardpayment + name: cardpayment + spec: + containers: + - name: '' + image: cardpayment:latest +``` **注**: アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{< /tabs >}} -## ログの機密データのスクラビング +## ログの機密データのスクラビング {#scrub-sensitive-data-from-your-logs} 編集が必要な機密データがログに含まれている場合は、機密要素をスクラビングするように Datadog Agent を構成します。それには、構成ファイルで `log_processing_rules` パラメーターを使用して、type に `mask_sequences` を指定します。 @@ -266,7 +357,7 @@ spec: 以下は、クレジットカード番号を編集する例です。 {{< tabs >}} -{{% tab "Configuration file" %}} +{{% tab "構成ファイル" %}} ```yaml logs: @@ -278,14 +369,14 @@ logs: - type: mask_sequences name: mask_credit_cards replace_placeholder: "[masked_credit_card]" - ## キャプチャするグループを含む 1 つのパターン + ##One pattern that contains capture groups pattern: (?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}) ``` {{% /tab %}} {{% tab "Docker" %}} -Docker 環境では、コンテナで `com.datadoghq.ad.logs` ラベルを使用して `log_processing_rules` を指定します。例: +Docker 環境では、`log_processing_rules` を指定するために、コンテナで `com.datadoghq.ad.logs` ラベルを使用します。例: ```yaml labels: @@ -302,14 +393,14 @@ Docker 環境では、コンテナで `com.datadoghq.ad.logs` ラベルを使用 }] ``` -**注**: ラベルを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- ラベルを使用する際には、パターンで正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- ラベルの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{% tab "Kubernetes" %}} -Kubernetes 環境では、ポッドで `ad.datadoghq.com` ポッドアノテーションを使用して `log_processing_rules` を指定します。例: +Kubernetes 環境では、`log_processing_rules` を指定するために、Pod で Pod アノテーション `ad.datadoghq.com` を使用します。例: ```yaml apiVersion: apps/v1 @@ -342,14 +433,14 @@ spec: image: cardpayment:latest ``` -**注**: ポッドアノテーションを使用する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- Pod アノテーションを使用する場合は、パターン内の正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{< /tabs >}} -Agent バージョン 7.17 以降をご利用の場合、文字列 `replace_placeholder` はリファレンスを展開して `$1`、`$2` などのグループをキャプチャすることが可能です。キャプチャするグループとの間にスペースを入れずに文字列を続けるには、`${<グループ番号>}` のフォーマットを使用します。 +Agent バージョン 7.17 以降では、`replace_placeholder` 文字列が `$1`、`$2` などのキャプチャグループへの参照を拡張できます。キャプチャグループの後にスペースなしで文字列を追加する場合は、`${}` 形式を使用します。 たとえば、ログ `User email: foo.bar@example.com` からユーザー情報をスクラビングするには、以下を使用します。 @@ -358,11 +449,21 @@ Agent バージョン 7.17 以降をご利用の場合、文字列 `replace_plac これにより、次のログが Datadog に送信されます: `User email: masked_user@example.com` -## 複数行の集約 +## 複数行のログを自動的に集約 {#automatically-aggregate-multi-line-logs} + +複数行の自動検出は、複雑な形式のログソースが多数ある場合や、各ソースを個別に構成する時間がない場合に役立ちます。この機能は、カスタム正規表現パターンを記述することなく、自動的に複数行ログを検出して集約します。 + +[自動複数行検出と集約][7] のドキュメントを参照してください。 + +この機能のレガシーサポートについては、[自動複数行検出と集約 (レガシー)][8] のドキュメントを参照してください。 + +## 複数行のログを手動で集約 {#manually-aggregate-multi-line-logs} + +手動複数行ルールを使用すると、ログの形式がわかっている場合にログの集約を正確に制御できます。このアプローチは、特定のログ構造に合わせたカスタム正規表現パターンを使用して、一貫性のあるログ処理を行う場合に理想的です。 -送信されるログが JSON 形式でない場合に、複数の行を 1 つのエントリに集約するには、1 行に 1 つのログを入れる代わりに、正規表現パターンを使用して新しいログを検出するように Datadog Agent を構成します。`log_processing_rules` パラメーターを使用して、type に `multi_line` を指定すれば、指定されたパターンが再度検出されるまで、すべての行が 1 つのエントリに集約されます。 +ログが JSON 形式で送信されておらず、複数行を 1 つのエントリに集約したい場合は、1 行に 1 つのログを含めるのではなく、特定の正規表現パターンを使用して新しいログを検出するように Datadog Agent を構成してください。指定したパターンが再度検出されるまで、すべての行を 1 つのエントリに集約する場合は、`multi_line` タイプを `log_processing_rules` パラメーターで使用します。 -例えば、すべての Java ログ行は、`yyyy-dd-mm` 形式のタイムスタンプで始まります。これらの行はスタックトレースを含み、2 つのログとして送ることができます。 +たとえば、すべての Java ログ行は `yyyy-dd-mm` 形式のタイムスタンプで始まります。これらの行には、2 つのログとして送信できるスタックトレースが含まれています。 ```text 2018-01-03T09:24:24.983Z UTC Exception in thread "main" java.lang.NullPointerException @@ -373,7 +474,7 @@ Agent バージョン 7.17 以降をご利用の場合、文字列 `replace_plac ``` {{< tabs >}} -{{% tab "Configuration file" %}} +{{% tab "構成ファイル" %}} 上の例のログをコンフィギュレーションファイルと一緒に送信するには、次の `log_processing_rules` を使用します。 @@ -392,7 +493,7 @@ logs: {{% /tab %}} {{% tab "Docker" %}} -Docker 環境では、コンテナで `com.datadoghq.ad.logs` ラベルを使用して `log_processing_rules` を指定します。例: +Docker 環境では、`log_processing_rules` を指定するために、コンテナで `com.datadoghq.ad.logs` ラベルを使用します。例: ```yaml labels: @@ -411,7 +512,7 @@ Docker 環境では、コンテナで `com.datadoghq.ad.logs` ラベルを使用 {{% /tab %}} {{% tab "Kubernetes" %}} -Kubernetes 環境では、ポッドで `ad.datadoghq.com` ポッドアノテーションを使用して `log_processing_rules` を指定します。例: +Kubernetes 環境では、`log_processing_rules` を指定するために、Pod で Pod アノテーション `ad.datadoghq.com` を使用します。例: ```yaml apiVersion: apps/v1 @@ -443,18 +544,18 @@ spec: image: postgres:latest ``` -**注**: ポッドアノテーションを使用して複数行の集約を実行する場合、パターン内の正規表現文字はエスケープする必要があります。たとえば、`\d` は `\\d` に、`\w` は `\\w` にします。 - -**注**: アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 +**注**: +- Pod アノテーションを使用して複数行の集約を実行する場合は、パターン内の正規表現文字をエスケープします。たとえば、`\d` は `\\d` になり、`\w` は `\\w` になります。 +- アノテーションの値は JSON 構文に従う必要があり、末尾にカンマやコメントを入れることはできません。 {{% /tab %}} {{< /tabs >}} -
    重要! 複数行ログの正規表現パターンは、ログの先頭に開始する必要があります。行途中では一致できません。一致しないパターンは、ログ行の損失につながる場合があります。

    ログ収集はミリ秒単位の精度で動作します。 パターンに一致するログでも、より高い精度のログは送信されません。
    +
    重要複数行のログのための正規表現パターンは、常にログの先頭に一致します。行の途中でパターンを一致させることはできません。何にも一致しないパターンは、ログ行の損失を引き起こす可能性があります。

    ログ収集は最大でミリ秒の精度で機能します。それよりも高い精度のログは、パターンに一致しても送信されません。
    その他の例: -| **文字列の例** | **パターン** | +| **生の文字列** | **パターン** | |--------------------------|---------------------------------------------------| | 14:20:15 | `\d{2}:\d{2}:\d{2}` | | 11/10/2014 | `\d{2}\/\d{2}\/\d{4}` | @@ -463,149 +564,38 @@ spec: | 2020-10-27 05:10:49.657 | `\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{3}` | | {"date": "2018-01-02" | `\{"date": "\d{4}-\d{2}-\d{2}` | -### 自動複数行集計 -Agent 7.37+ では、`auto_multi_line_detection` を有効にすることで、Agent が[共通複数行パターン][3]を自動的に検出することができます。 - -`datadog.yaml` ファイルで `auto_multi_line_detection` をグローバルに有効化します。 - -```yaml -logs_config: - auto_multi_line_detection: true -``` - -コンテナ化されたデプロイメントでは、環境変数 `DD_LOGS_CONFIG_AUTO_MULTI_LINE_DETECTION=true` で `auto_multi_line_detection` を有効にすることが可能です。 - -また、ログ構成ごとに有効・無効 (グローバル構成をオーバーライド) を設定することができます。 - -{{< tabs >}} -{{% tab "Configuration file" %}} -```yaml -logs: - - type: file - path: /my/test/file.log - service: testApp - source: java - auto_multi_line_detection: true -``` - -複数行の自動検出は、一般的な正規表現のリストを使用して、ログとのマッチングを試みます。組み込みのリストでは不十分な場合、`datadog.yaml` ファイルにカスタムパターンを追加することもできます。 - -```yaml -logs_config: - auto_multi_line_detection: true - auto_multi_line_extra_patterns: - - \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01]) - - '[A-Za-z_]+ \d+, \d+ \d+:\d+:\d+ (AM|PM)' -``` - -パターンが行一致のしきい値を満たさない場合は、`auto_multi_line_default_match_threshold` パラメーターをより低い値で追加します。これにより、自動複数行集計が機能するためにログが一致する頻度を決定するしきい値を構成します。現在のしきい値を確認するには、[エージェントの `status` コマンド] を実行します。 - -```yaml -logs_config: - auto_multi_line_detection: true - auto_multi_line_extra_patterns: - - \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01]) - - '[A-Za-z_]+ \d+, \d+ \d+:\d+:\d+ (AM|PM)' - auto_multi_line_default_match_threshold: 0.1 -``` - -[1]: https://docs.datadoghq.com/ja/agent/configuration/agent-commands/#agent-information -{{% /tab %}} -{{% tab "Docker" %}} - -Docker 環境では、コンテナで `com.datadoghq.ad.logs` ラベルを使用して `log_processing_rules` を指定します。例: - -```yaml - labels: - com.datadoghq.ad.logs: >- - [{ - "source": "java", - "service": "testApp", - "auto_multi_line_detection": true - }] -``` -自動複数行検出は、一般的な正規表現リストを使用してログとのマッチングを試みます。組み込みリストで不足している場合は、`DD_LOGS_CONFIG_AUTO_MULTI_LINE_EXTRA_PATTERNS` 環境変数を使用して `datadog.yaml` ファイルにカスタムパターンを追加することが可能です。 - -パターンが行一致のしきい値を満たさない場合は、`DD_LOGS_CONFIG_AUTO_MULTI_LINE_DEFAULT_MATCH_THRESHOLD` 環境変数をより低い値で追加します。これにより、自動複数行集計が機能するためにログが一致する頻度を決定するしきい値を構成します。現在のしきい値を確認するには、[エージェントの `status` コマンド] を実行します。 - -[1]: https://docs.datadoghq.com/ja/agent/configuration/agent-commands/#agent-information - -{{% /tab %}} -{{% tab "Kubernetes" %}} - -```yaml -apiVersion: apps/v1 -metadata: - name: testApp -spec: - selector: - matchLabels: - app: testApp - template: - metadata: - annotations: - ad.datadoghq.com/.logs: >- - [{ - "source": "java", - "service": "testApp", - "auto_multi_line_detection": true - }] - labels: - app: testApp - name: testApp - spec: - containers: - - name: '' - image: testApp:latest -``` - -自動複数行検出は、一般的な正規表現リストを使用してログとのマッチングを試みます。組み込みリストで不足している場合は、`DD_LOGS_CONFIG_AUTO_MULTI_LINE_EXTRA_PATTERNS` 環境変数を使用して `datadog.yaml` ファイルにカスタムパターンを追加することが可能です。 - -パターンが行一致のしきい値を満たさない場合は、`DD_LOGS_CONFIG_AUTO_MULTI_LINE_DEFAULT_MATCH_THRESHOLD` 環境変数をより低い値で追加します。これにより、自動複数行集計が機能するためにログが一致する頻度を決定するしきい値を構成します。現在のしきい値を確認するには、[エージェントの `status` コマンド] を実行します。 - -[1]: https://docs.datadoghq.com/ja/agent/configuration/agent-commands/#agent-information - -{{% /tab %}} -{{< /tabs >}} - -この機能を有効にすると、新しいログファイルが開かれたとき、Agent はパターンの検出を試みます。このプロセスの間、ログは 1 行で送信されます。検出しきい値に達すると、そのソースの将来のすべてのログは、検出されたパターンで集計され、パターンが見つからない場合は 1 行で集計されます。検出には、最大 30 秒または最初の 500 ログ (いずれか早い方) が必要です。 - -**注**: ローテーションされたログの命名パターンを制御できる場合、ローテーションされたファイルが、同じ名前で以前アクティブだったファイルを置き換えることを確認してください。Agent は、新しくローテーションされたファイル上で以前に検出されたパターンを再利用し、検出の再実行を回避します。 - -複数行の自動検出は、以下の日付/時刻形式から始まり、それに準拠するログを検出します: RFC3339、ANSIC、Unix Date Format、Ruby Date Format、RFC822、RFC822Z、RFC850、RFC1123、RFC1123Z、RFC3339Nano、Java ロギング SimpleFormatter デフォルト日付書式。 - -## 良く使用されるログの処理ルール +## 良く使用されるログの処理ルール {#commonly-used-log-processing-rules} 例の一覧を確認するには、専用の[よく使用されるログ処理ルールに関する FAQ][4] をご覧ください。 -## ワイルドカードを使用したディレクトリのテール +## ワイルドカードを使用したディレクトリのテール {#tail-directories-using-wildcards} -ログファイルに日付のラベルが付いているか、すべてのログファイルが同じディレクトリに保存されている場合は、すべてのファイルを監視して、新しいファイルを自動的に検出するように Datadog Agent を構成できます。それには、`path` 属性にワイルドカードを使用します。選択した `path` と一致するファイルを除外する場合は、`exclude_paths` 属性にリストします。 +ログファイルに日付のラベルが付いているか、すべてのログファイルが同じディレクトリに保存されている場合は、すべてのファイルをモニターして、新しいファイルを自動的に検出するように Datadog Agent を構成できます。それには、`path` 属性にワイルドカードを使用します。選択した `path` に一致するファイルを除外する場合は、`exclude_paths` 属性でそれらのリストを指定します。 -* `path: /var/log/myapp/*.log` を使用する場合 - * `/var/log/myapp/` ディレクトリ内のすべての `.log` ファイルに一致します。 - * `/var/log/myapp/myapp.conf` には一致しません。 +* `path: /var/log/myapp/*.log` を使用: + * `/var/log/myapp/` ディレクトリに含まれているすべての `.log` ファイルに一致します。 + * `/var/log/myapp/myapp.conf` に一致しません。 -* `path: /var/log/myapp/*/*.log` を使用する場合 +* `path: /var/log/myapp/*/*.log` を使用: * `/var/log/myapp/log/myfile.log` に一致します。 * `/var/log/myapp/errorLog/myerrorfile.log` に一致します。 - * `/var/log/myapp/mylogfile.log` には一致しません。 + * `/var/log/myapp/mylogfile.log` に一致しません。 Linux の構成例: ```yaml logs: - type: file - path: /var/log/myapp/*.log + path: /var/log/myapp/log/*.log exclude_paths: - - /var/log/myapp/debug.log - - /var/log/myapp/trace.log + - /var/log/myapp/log/debug.log + - /var/log/myapp/log/trace.log service: mywebapp source: go ``` -上記の例では、`/var/log/myapp/log/myfile.log` にマッチし、`/var/log/myapp/log/debug.log` と `/var/log/myapp/log/trace.log` は除外しています。 +上記の例は `/var/log/myapp/log/myfile.log` に一致し、`/var/log/myapp/log/debug.log` と `/var/log/myapp/log/trace.log` を除外します。 Windows の構成例: @@ -619,30 +609,54 @@ logs: source: csharp ``` -上記の例では、`C:\\MyApp\\MyLog.log` にマッチし、`C:\\MyApp\\MyLog.20230101.log` と `C:\\MyApp\\MyLog.20230102.log` を除外します。 +上記の例は `C:\\MyApp\\MyLog.log` に一致し、`C:\\MyApp\\MyLog.20230101.log` と `C:\\MyApp\\MyLog.20230102.log` を除外します。 -**注**: Agent がディレクトリ内にあるファイルをリストするには、そのディレクトリへの読み取りおよび実行アクセス許可が必要です。 -**注2**: path と exclude_paths の値は大文字と小文字を区別します。 +**注**: +- Agent がディレクトリ内にあるファイルをリストするには、そのディレクトリへの読み取りおよび実行アクセス許可が必要です。 +- path と exclude_paths の値では大文字と小文字が区別されます。 -## 最近更新されたファイルを最初に追跡する +### 修正時間によるテール対象ファイルの優先順位付け {#prioritize-tailed-files-by-modification-time} -Datadog Agent は、ファイルを優先的に追跡する際、ディレクトリパスのファイル名を逆辞典順でソートします。ファイルの修正時間に基づいてファイルをソートするには、構成オプション `logs_config.file_wildcard_selection_mode` に値 `by_modification_time` を設定します。 +この機能を使用するには、Agent バージョン 7.40.0 以降が必要です。 -このオプションは、ログファイルの合計マッチ数が `logs_config.open_files_limit` を超える場合に有用です。`by_modification_time` を使用すると、定義されたディレクトリパスで最も新しく更新されたファイルが最初に追跡されるようになります。 +Agent は `logs_config.open_files_limit` パラメーターを使用して、同時にテールできるファイルの数を制限します。構成されたログソース (ワイルドカードなど) に一致するファイルの数がこの制限内の場合、Agent はそれらすべてをテールします。一致するファイルが制限を超えた場合は、Agent はファイル名を辞書式順序の逆順でソートして優先順位を付けるため、タイムスタンプが新しいファイルや番号の大きいファイルが最初にテールされます。 -デフォルトの動作に戻すには、構成オプション `logs_config.file_wildcard_selection_mode` を値 `by_name` に設定します。 +ファイル名が連番やタイムスタンプのパターンに従っていない場合は、デフォルトの順序付けが最適ではない可能性があります。代わりに修正時間によって優先順位を付けるには、`logs_config.file_wildcard_selection_mode` を `by_modification_time` に設定します。この設定では、Agent は最近修正されたファイルを最初にテールします。 -この機能を使用するには、Agent バージョン 7.40.0 以降が必要です。 +**例**: +- `open_files_limit` = 500 +- ワイルドカードパターンが 700 ファイルに一致したとします。 +- `by_name` を使用: Agent は辞書式順序の逆順で上位の名前を持つ 500 ファイルをテールします (たとえば、app.log.700 から app.log.201 まで)。 +- `by_modification_time` を使用: Agent は名前に関係なく、最近書き込まれた 500 個のファイルをテールします。 + +```yaml +logs_enabled: true +logs_config: + [...] + open_files_limit: 500 + + ## @param file_wildcard_selection_mode - string - optional - default: by_name + ## The strategy used to prioritize wildcard matches if they exceed open_files_limit. + ## Choices: + ## - by_name: files are sorted in reverse lexicographic order (default). + ## - by_modification_time: files are sorted by modification time, with the most recent first. + ## WARNING: by_modification_time is less performant and increases disk I/O. + file_wildcard_selection_mode: by_modification_time +``` -## ログファイルのエンコーディング +デフォルトの動作に戻すには、`logs_config.file_wildcard_selection_mode` エントリを削除するか、明示的に `by_name` に設定します。 -デフォルトでは、Datadog Agent は、ログが UTF-8 エンコーディングを使用すると仮定しています。アプリケーションログが異なるエンコーディングを使用する場合、ログ構成設定で `encoding` パラメーターを指定します。 +## ログファイルのエンコーディング {#log-file-encodings} + +デフォルトでは、Datadog Agent はログで UTF-8 エンコーディングが使用されていると想定します。ご使用のアプリケーションのログで異なるエンコーディングが使用されている場合は、ログ構成で `encoding` パラメーターを指定します。 以下のリストは、サポートされているエンコーディングの値を示しています。サポートされていない値を指定した場合、Agent はその値を無視し、ファイルを UTF-8 として読み取ります。 * `utf-16-le` - UTF-16 little-endian (Datadog Agent **v6.23/v7.23**) * `utf-16-be` - UTF-16 big-endian (Datadog Agent **v6.23/v7.23**) * `shift-jis` - Shift-JIS (Datadog Agent **v6.34/v7.34**) +
    encoding Agent がすでにテールしているファイルを変更した場合、文字化けが発生する可能性があります。Agent は前のバイトオフセットから再開しますが、エンコーディングの変更後に文字境界と一致しない場合があります。これを修正するには、ログファイルをローテーションするか、置き換えるか、新しいエンコーディングを使用するファイルの先頭からテールを再開してください。これらのアクションによって、Agent が正しいエンコーディングを使用して開始できるようになります。
    + 構成例: ```yaml @@ -655,16 +669,16 @@ logs: encoding: utf-16-be ``` -**注**: `encoding` パラメーターは `type` パラメーターが `file` に設定されている場合のみ適用可能です。 +**注**: `encoding` パラメーターは、`type` パラメーターが `file` に設定されている場合にのみ適用されます。 -## グローバルな処理ルール +## グローバルな処理ルール {#global-processing-rules} -Datadog Agent v6.10 以上では、`exclude_at_match`、`include_at_match`、`mask_sequences` の各処理ルールを、Agent の[メインコンフィギュレーションファイル][5]で、または環境変数を使用してグローバルに定義できます。 +Datadog Agent v6.10 以上では、`exclude_at_match`、`include_at_match`、`mask_sequences` の各処理ルールを、Agent の [メイン構成ファイル][5] で、または環境変数を使用してグローバルに定義できます。`exclude_truncated` ルールは Agent v7.69 以降で利用可能です。 {{< tabs >}} -{{% tab "Configuration files" %}} +{{% tab "構成ファイル" %}} -`datadog.yaml` ファイルで、以下のようにします。 +`datadog.yaml` ファイル内: ```yaml logs_config: @@ -690,7 +704,7 @@ DD_LOGS_CONFIG_PROCESSING_RULES='[{"type": "mask_sequences", "name": "mask_user_ {{% /tab %}} {{% tab "Datadog Operator" %}} -Datadog Operator マニフェストで `spec.override.[key].env` パラメーターを使用して `DD_LOGS_CONFIG_PROCESSING_RULES` 環境変数を設定し、グローバルな処理ルールを構成します。`[key]` は `nodeAgent`、`clusterAgent`、または `clusterChecksRunner` です。例: +Datadog Operator マニフェスト内で `spec.override.[key].env` パラメーターを使用して `DD_LOGS_CONFIG_PROCESSING_RULES` 環境変数を設定し、グローバルな処理ルールを構成します。ここで `[key]` は `nodeAgent`、`clusterAgent`、または `clusterChecksRunner` です。例: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -721,9 +735,24 @@ datadog: {{< /tabs >}} Datadog Agent によって収集されるすべてのログが、グローバルな処理ルールの影響を受けます。 -**注**: グローバルな処理ルールに形式上の問題がある場合、Datadog Agent はログコレクターを起動しません。問題をトラブルシューティングするには、Agent の [status サブコマンド][6]を実行します。 +**注**: グローバルな処理ルールに形式上の問題がある場合、Datadog Agent はログコレクターを起動しません。問題をトラブルシューティングするには、Agent の [status サブコマンド][6] を実行します。 + +## 複数行のログの集約に関するよくある質問 {#multi-line-log-aggregation-faq} + +**1. 手動の複数行ルールと自動の複数行検出はいつ使用すべきですか?** + +ログの形式がわかっている場合は、正確に制御するために手動の複数行ルールを使用してください。 +多数の複数行ログを送信していて、ログの形式が不明であるか、すべてのソースを個別に構成する手段がない場合は、自動の複数行検出を使用してください。 + +**2. 複数行パターンがいずれのログにも一致しない場合はどうなりますか?** + +すべての JSON 以外のログ行は、個別のログエントリとして別々に処理されます。 +すべての JSON 形式のログ行は単一のログ行として扱われ、最初の有効な JSON 形式のみが取り込まれ、それ以外は破棄されます。 + +**3. グローバルルールとインテグレーション固有のルールの両方がある場合はどうなりますか?** +インテグレーション固有のルールは、その特定のインテグレーションについてグローバルルールを完全に上書きします。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -735,4 +764,6 @@ Datadog Agent によって収集されるすべてのログが、グローバル [3]: https://github.com/DataDog/datadog-agent/blob/a27c16c05da0cf7b09d5a5075ca568fdae1b4ee0/pkg/logs/internal/decoder/auto_multiline_handler.go#L187 [4]: /ja/agent/faq/commonly-used-log-processing-rules [5]: /ja/agent/configuration/agent-configuration-files/#agent-main-configuration-file -[6]: /ja/agent/configuration/agent-commands/#agent-information \ No newline at end of file +[6]: /ja/agent/configuration/agent-commands/#agent-information +[7]: /ja/agent/logs/auto_multiline_detection +[8]: /ja/agent/logs/auto_multiline_detection_legacy \ No newline at end of file diff --git a/content/ja/agent/supported_platforms/linux.md b/content/ja/agent/supported_platforms/linux.md index e32e8f196e8..616cedae8a6 100644 --- a/content/ja/agent/supported_platforms/linux.md +++ b/content/ja/agent/supported_platforms/linux.md @@ -25,45 +25,45 @@ aliases: - /ja/agent/basic_agent_usage/linux/ further_reading: - link: /logs/ - tag: Documentation + tag: よくあるご質問 text: ログの収集 - link: /infrastructure/process/ - tag: Documentation + tag: よくあるご質問 text: プロセスの収集 - link: /tracing/ - tag: Documentation + tag: よくあるご質問 text: トレースの収集 - link: /agent/architecture/#agent-architecture - tag: Documentation - text: Agent のアーキテクチャに関する詳細 + tag: よくあるご質問 + text: Agent のアーキテクチャを詳しく見る - link: /agent/configuration/network#configure-ports - tag: Documentation - text: インバウンドポートの設定 + tag: よくあるご質問 + text: インバウンドポートの構成 platform: Linux title: Linux --- ## 概要 {#overview} -このページでは、Linux 環境用 Datadog Agent の基本機能の概要を説明します。サポートされている Linux ディストリビューションとバージョンの完全なリストについては、[サポート対象プラットフォーム][5] ドキュメントを参照してください。 +このページでは、Linux 環境用の Datadog Agent の基本的な機能を説明します。サポートされている Linux ディストリビューションとバージョンの完全なリストについては、[サポートされているプラットフォーム][5] のドキュメントを参照してください。 -##Agent のインストール {#install-the-agent} -Linux に Agent をインストールするには、[Fleet Automation のアプリ内手順][6]に従い、生成されたスクリプトをホストで実行します。 +## Agent のインストール {#install-the-agent} +Linux に Agent をインストールするには、[Fleet Automation のアプリ内手順][6] に従い、生成されたスクリプトをホストで実行してください。 -{{< img src="/agent/basic_agent_usage/linux_img_july_25.png" alt="Linux ホストへの Datadog Agent のアプリ内インストール手順。" style="width:90%;">}} +{{< img src="/agent/basic_agent_usage/linux_img_july_25.png" alt="Linux ホストに Datadog Agent をインストールするためのアプリ内の手順。" style="width:90%;">}} -## Agent の設定 {#configure-the-agent} -Datadog Agent の設定ファイルは `/etc/datadog-agent/datadog.yaml` にあります。この YAML ファイルには、以下を含む、Datadog にデータを送信するために使用されるホスト全体の接続の詳細が保持されます。 -- `api_key`: 組織の [Datadog API キー][7] -- `site`: ターゲットの Datadog リージョン (例: `datadoghq.com`、`datadoghq.eu`、`ddog-gov.com`) -- `proxy`: アウトバウンドトラフィック用の HTTP/HTTPS プロキシエンドポイント ([Datadog Agent プロキシ設定][8]を参照) -- デフォルトのタグ、ログレベル、および Datadog の設定 +## Agent の構成 {#configure-the-agent} +Datadog Agent 構成ファイルは `/etc/datadog-agent/datadog.yaml` にあります。この YAML ファイルには、Datadog にデータを送信するために使用されるホスト全体の次のような接続情報が含まれています。 +- `api_key`: 自分の組織の [Datadog API キー][7] +- `site`: ターゲットの Datadog リージョン (例: `datadoghq.com`、`datadoghq.eu`、`ddog-gov.com`、`us2.ddog-gov.com`) +- `proxy`: アウトバウンドトラフィック用の HTTP/HTTPS プロキシエンドポイント ([Datadog Agent プロキシ構成][8] を参照) +- デフォルトのタグ、ログレベル、および Datadog 構成 -`/etc/datadog-agent/datadog.yaml.example` にある完全にコメント化されたリファレンスファイルには、比較やコピーアンドペーストに使用できるすべてのオプションがリストされています。または、サンプルの `config_template.yaml` ファイルで、利用可能なすべての設定オプションを参照してください。 +`/etc/datadog-agent/datadog.yaml.example` にある完全にコメント化されたリファレンスファイルには、比較やコピーアンドペーストに使用できるすべてのオプションがリストされています。または、サンプルの `config_template.yaml` ファイルで、利用可能なすべての構成オプションを参照してください。 -###インテグレーションファイル {#integration-files} -インテグレーション用の設定ファイルは `/etc/datadog-agent/conf.d/` にあります。各インテグレーションには専用のサブディレクトリ `.d/` があり、次のものが含まれています。 -- `conf.yaml`: インテグレーションがメトリクスとログを収集する方法を制御するアクティブな設定 +### インテグレーションファイル {#integration-files} +インテグレーション用の構成ファイルは `/etc/datadog-agent/conf.d/` にあります。各インテグレーションにサブディレクトリ `.d/` があり、次のものが含まれています。 +- `conf.yaml`: インテグレーションがメトリクスとログを収集する方法を制御するアクティブな構成 - `conf.yaml.example`: サポートされているキーとデフォルトを示すサンプル @@ -71,7 +71,7 @@ Datadog Agent の設定ファイルは `/etc/datadog-agent/datadog.yaml` にあ | 説明 | コマンド | |---------------|-----------------------| -| Agent をサービスとして開始する | `sudo systemctl start datadog-agent` | +| Agent をサービスとして起動する | `sudo systemctl start datadog-agent` | | サービスとして実行中の Agent を停止する | `sudo systemctl stop datadog-agent` | | サービスとして実行中の Agent を再起動する | `sudo systemctl restart datadog-agent` | | Agent サービスのステータス | `sudo systemctl status datadog-agent` | @@ -80,12 +80,12 @@ Datadog Agent の設定ファイルは `/etc/datadog-agent/datadog.yaml` にあ | コマンドの使用方法を表示する | `sudo datadog-agent --help` | | チェックを実行する | `sudo -u dd-agent -- datadog-agent check ` | -**注**: `CentOS/RHEL 6` や `SUSE 11` などの upstart ベースのシステムでは、`systemctl ` を `` に置き換えてください。たとえば、`SUSE 11` システムで Agent をサービスとして開始する場合は、`sudo start datadog-agent` を使用します。 +**注**: `CentOS/RHEL 6` や `SUSE 11` などの upstart ベースのシステムでは、`systemctl ` を `` に置き換えてください。たとえば、`SUSE 11` システムで Agent をサービスとして起動する場合は、`sudo start datadog-agent` を使用します。 -##Agent のアンインストール {#uninstall-the-agent} +## Agent のアンインストール {#uninstall-the-agent} -Agent をアンインストールするには、適切な Linux 環境用のコマンドを実行します。 +Agent をアンストールするには、該当する Linux 環境のコマンドを実行してください。 ### CentOS、Rocky、AlmaLinux、Amazon Linux、Oracle Linux、および Red Hat の場合 {#for-centos-rocky-almalinux-amazon-linux-oracle-linux-and-red-hat} @@ -109,13 +109,13 @@ sudo zypper remove datadog-agent
    **上記のコマンドで Agent は削除されますが、次のものは削除されません。** -* `datadog.yaml` 設定ファイル -* `/etc/datadog-agent` 設定フォルダー内のユーザー作成ファイル -* `/opt/datadog-agent` フォルダー内のユーザー作成ファイル +* `datadog.yaml` 構成ファイル +* `/etc/datadog-agent` 構成フォルダ内のユーザー作成ファイル +* `/opt/datadog-agent` フォルダ内のユーザー作成ファイル * `dd-agent` ユーザー * Datadog ログファイル -**これらの要素を削除するには、Agent を削除した後に次のコマンドを実行します。** +**これらの要素を削除するには、Agent 削除後に次のコマンドを実行してください。** ```shell sudo userdel dd-agent \ @@ -134,21 +134,21 @@ sudo apt-get remove --purge datadog-agent -y ### Single Step APM Instrumentation のアンインストール {#uninstall-single-step-apm-instrumentation} -Agent を Single Step APM Instrumentation と共にインストールし、それをアンインストールする場合は、APM Instrumentation を削除するために [追加のコマンドを実行][9]する必要があります。[特定の環境][10]向けの手順に従ってください。 +Single Step APM Instrumentation と一緒に Agent をインストールしていて、それをアンインストールする場合は、APM Instrumentation を削除するために [追加のコマンドを実行][9] する必要があります。[自分の環境][10] に該当する手順を実行してください。 -##トラブルシューティング {#troubleshooting} +## トラブルシューティング {#troubleshooting} -詳細な手順については、[Agent のトラブルシューティング][2]を参照してください。 +詳細な手順については、[Agent のトラブルシューティング][2] を参照してください。 -##組み込み Agent の操作 {#working-with-the-embedded-agent} +## 埋め込み Agent の使用 {#working-with-the-embedded-agent} -Agent には、`/opt/datadog-agent/embedded/` に組み込みの Python 環境が含まれています。`python` や `pip` などの一般的なバイナリは `/opt/datadog-agent/embedded/bin/` 内に含まれています。 +Agent には `/opt/datadog-agent/embedded/` に埋め込まれた Python 環境が含まれています。`python` や `pip` などの一般的なバイナリは、`/opt/datadog-agent/embedded/bin/` に含まれています。 -詳細については、[組み込み Agent へのパッケージの追加][3]に関する説明を参照してください。 +詳細については、[埋め込み Agent へのパッケージの追加方法][3] の手順を参照してください。 -##その他の参考資料 {#further-reading} +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/containers/docker/_index.md b/content/ja/containers/docker/_index.md index c9961643392..b62aa525dab 100644 --- a/content/ja/containers/docker/_index.md +++ b/content/ja/containers/docker/_index.md @@ -5,319 +5,332 @@ aliases: - /ja/agent/basic_agent_usage/docker/ - /ja/integrations/docker_daemon/ - /ja/docker/ +description: Docker コンテナおよびコンテナランタイム用の Datadog Agent をインストールして構成する further_reading: - link: https://app.datadoghq.com/release-notes?category=Container%20Monitoring tag: リリースノート - text: Datadog Containers の最新リリースをチェック! (アプリログインが必要です)。 + text: Datadog コンテナの最新リリースをチェックしてください。(アプリログインが必要です) - link: /agent/docker/log/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーションログの収集 - link: /agent/docker/apm/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーショントレースの収集 - link: /agent/docker/prometheus/ - tag: ドキュメント + tag: よくあるご質問 text: Prometheus メトリクスの収集 - link: /agent/docker/integrations/ - tag: ドキュメント - text: アプリケーションのメトリクスとログを自動で収集 + tag: よくあるご質問 + text: アプリケーションのメトリクスとログを自動的に収集する - link: /agent/guide/autodiscovery-management/ - tag: ドキュメント + tag: よくあるご質問 text: データ収集をコンテナのサブセットのみに制限 - link: /agent/docker/tag/ - tag: ドキュメント + tag: よくあるご質問 text: コンテナから送信された全データにタグを割り当て +- link: https://learn.datadoghq.com/courses/agent-on-docker + tag: ラーニングセンター + text: Docker 上の Agent title: Docker、containerd、Podman に対応した Docker Agent --- +## 概要 {#overview} -## 概要 +Datadog Docker Agent は、Docker、containerd、Podman ランタイムに対応した [Datadog Agent][1] です。サポートされている Docker バージョンについては、[サポート対象のプラットフォーム][2] を参照してください。 -The Datadog Docker Agent is the containerized version of the host [Agent][1]. The Docker Agent supports Docker, containerd, and Podman runtimes. The official [Docker image][2] is available on Docker Hub, Google Container Registry (GCR), and ECR-Public. +## Datadog Docker Agent をインストールする {#install-the-datadog-docker-agent} +[Datadog のインアプリインストールのフロー][3] の手順に従います。これは推奨されるフローです。API キー、最小必要構成、およびさまざまな Datadog 機能のトグルを使用して `docker run` コマンドを作成するのに役立ちます。 -
    Docker Hub にはイメージのプルレート制限があります。Docker Hub をご利用でない場合は、Datadog Agent および Cluster Agent の構成を更新して、GCR または ECR からプルすることをお勧めします。手順については、コンテナレジストリの変更を参照してください。
    +{{< img src="/agent/basic_agent_usage/agent_install_docker.png" alt="Docker に Datadog Agent をインストールするためのアプリ内手順。" style="width:90%;">}} -64-bit x86 および Arm v8 アーキテクチャ用のイメージをご用意しています。 +## Datadog Docker Agent を手動で実行する {#manually-run-the-datadog-docker-agent} -| ECR-Public | Google Container Registry | Docker Hub | -|----------------------------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------------------| -| [Agent v6+][4]
    `docker pull public.ecr.aws/datadog/agent` | [Agent v6+][3]
    `docker pull gcr.io/datadoghq/agent` | [Agent v6+][2]
    `docker pull datadog/agent` | -| [Agent v5][7]
    `docker pull public.ecr.aws/datadog/docker-dd-agent`| [Agent v5][6]
    `docker pull gcr.io/datadoghq/docker-dd-agent` | [Agent v5][5]
    `docker pull datadog/docker-dd-agent` | +Fleet Automation フローは、Datadog の推奨手順に従って Datadog Agent コンテナを構成するのに役立ちます。これを手動で構成する場合は、以下の例を参照してください。 - -このページの CLI コマンドは Docker ランタイム用です。containerd ランタイムは `docker` を `nerdctl` に、Podman ランタイムは `podman` に置き換えてください。 - -## セットアップ - -Docker Agent をまだインストールしていない場合は、以下の手順または[アプリ内のインストール手順][8]を参照してください。[サポートされるバージョン][9]については、Agent のドキュメントを参照してください。ワンステップインストールコマンドを使用し、`` を [Datadog API キー][10]に、`` を {{< region-param key=dd_site code="true" >}} に置き換えてください。 +モニターするホストごとに 1 回ずつ Agent を Docker コンテナとして実行するには、次のコマンドを使用します。`` をご使用の Datadog API キーに置き換え、`` をご使用の {{< region-param key=dd_site code="true" >}}に置き換えます。 {{< tabs >}} -{{% tab "標準" %}} +{{% tab "Linux" %}} ```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 +docker run -d --cgroupns host --pid host --name dd-agent \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -e DD_SITE= \ + -e DD_API_KEY= \ + registry.datadoghq.com/agent:7 ``` +{{% /tab %}} +{{% tab "Windows" %}} +Datadog Agent は、Windows Server 2019 (LTSC) と Windows Server 2022 (LTSC) でサポートされています。次の PowerShell コマンドは Datadog Agent コンテナを実行します。 + +```powershell +docker run -d --name dd-agent ` + -v \\.\pipe\docker_engine:\\.\pipe\docker_engine ` + -e DD_SITE= ` + -e DD_API_KEY= ` + registry.datadoghq.com/agent:7 +``` +{{% /tab %}} +{{< /tabs >}} -ECR-Public の場合: +**注**: Docker Compose については、[Compose と Datadog Agent][4] を参照してください。Podman に Datadog Agent をデプロイする手順については、[Podman コンテナランタイムとの Docker インテグレーションの使用][5] を参照してください。 -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +## インテグレーション {#integrations} -**注**: GCR または ECR-Public 以外の別のレジストリを使用している場合は、必ずイメージを更新してください。 +Datadog Docker Agent が起動し、実行状態になったら、[Datadog インテグレーションを構成][6] して、アプリケーションコンテナからメトリクスとログを自動的に収集できます。Datadog の [コンテナ Autodiscovery][7] を使用すると、コンテナ化されたシステムの動的リソースに対するモニター構成を定義できます。 -**注**: ネットワークモニタリング、セキュリティエージェント、oom_kill チェックなど system-probe が提供するいくつかの機能では、 `/etc/os-release` ファイルを `-v /etc/os-release:/host/etc/os-release:ro` でマウントする必要があります。Linux ディストリビューションに `/etc/os-release` ファイルがない場合は、 `/etc/redhat-release` や `/etc/fedora-release` などの同等のファイルをマウントしてください。 +## Datadog Docker Agent の構成オプション {#configuration-options-for-the-datadog-docker-agent} -{{% /tab %}} -{{% tab "Amazon Linux" %}} +### コンテナレジストリ {#container-registries} -Amazon Linux < v2 の場合: +イメージは 64-bit x86 と Arm v8 アーキテクチャで利用可能です。Datadog では、Datadog コンテナレジストリ、GAR (Google Artifact Registry)、Amazon ECR、Azure ACR、および Docker Hub にコンテナイメージを公開しています。 -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 -``` -ECR-Public の場合: +{{% container-images-table %}} -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +デフォルトでは、上記の手順は Datadog コンテナレジストリ (`registry.datadoghq.com`) からイメージをプルします。このレジストリを使用する場合は、ファイアウォールで `us-docker.pkg.dev/datadog-prod/public-images` へのトラフィックが許可されていることを確認してください。これは、レジストリがこの URL にリクエストをリダイレクトすることがあるためです。 -Amazon Linux v2 の場合: +
    Docker Hub はイメージプルレート制限の対象です。Docker Hub をご利用でない場合は、別のレジストリから取得するように構成を更新することをお勧めします。その手順については、コンテナのレジストリを変更するを参照してください。
    -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 -``` -ECR-Public の場合: +### 環境変数 {#environment-variables} -```shell -docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 -``` +コンテナ化されていない環境では、Datadog Agent の構成オプションは [`datadog.yaml`][8] で設定されます。Datadog Docker Agent の場合は、環境変数を使用して `datadog.yaml` 構成オプションを設定できます。 -{{% /tab %}} -{{% tab "Windows" %}} +#### グローバルオプション {#global-options} -Datadog Agent は、Windows Server 2019 (LTSC) と Windows Server 2022 (LTSC) でサポートされています。 +`DD_API_KEY` +: ご使用の Datadog API キー (**必須**)。 -```shell -docker run -d --name dd-agent -e DD_SITE= -e DD_API_KEY= -v \\.\pipe\docker_engine:\\.\pipe\docker_engine gcr.io/datadoghq/agent -``` +`DD_ENV` +: 出力されるすべてのデータにグローバルタグの `env` を設定します。 -ECR-Public の場合: +`DD_HOSTNAME` +: メトリクスに使用するホスト名 (自動検出が失敗した場合)。 -```shell -docker run -d --name dd-agent -e DD_SITE= -e DD_API_KEY= -v \\.\pipe\docker_engine:\\.\pipe\docker_engine public.ecr.aws/datadog/agent -``` +`DD_HOSTNAME_FILE` +: 環境によっては、ホスト名の自動検出では十分でなく、環境変数で値を設定できない場合があります。そのような場合、ホスト上のファイルを使用して適切な値を提供することができます。`DD_HOSTNAME` が空でない値に設定されている場合、このオプションは無視されます。 -{{% /tab %}} -{{% tab "非特権" %}} +`DD_TAGS` +: ホストタグはスペースで区切ります。例: : `key1:value1 key2:value2` -(オプション) 非特権インストールを実行するには、インストールコマンドに `--group-add=` を追加します。次に例を示します。 +`DD_SITE` +: メトリクス、トレース、およびログの送信先サイト。Datadog サイトを以下に設定します: `{{< region-param key="dd_site" >}}`. Defaults to `datadoghq.com` -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= gcr.io/datadoghq/agent:7 --group-add= -``` -ECR-Public の場合: +`DD_DD_URL` +: メトリクス送信用 URL を上書きするためのオプションの設定。 +`DD_URL`(6.36+/7.36+) +: `DD_DD_URL` のエイリアス。`DD_DD_URL` がすでに設定されている場合は無視されます。 -```shell -docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE= -e DD_API_KEY= public.ecr.aws/datadog/agent:7 --group-add= -``` +`DD_CHECK_RUNNERS` +: Agent はデフォルトですべてのチェックを同時に実行します (デフォルト値は `4` ランナーです)。チェックを順次実行する場合は、値を `1` に設定します。多数のチェック (または時間のかかるチェック) を実行する必要がある場合、`collector-queue` コンポーネントが遅延して、ヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。 -{{% /tab %}} -{{< /tabs >}} +`DD_APM_ENABLED` +: トレース収集を有効にします。デフォルトは `true` です。トレース収集の追加環境変数について詳しくは、[Docker アプリケーションのトレース][9] をご覧ください。 -**注**: Docker Compose については、[Compose と Datadog Agent][11] を参照してください。 +`DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION` +: 環境によっては、ホストからの最初のログに正しいタグが含まれないことがあります。新しいホストのタグがログに含まれていない場合は、この環境変数を含めて `"10m"` に設定してください。 -## インテグレーション +#### プロキシ設定 {#proxy-settings} -クラスター内で Agent を起動し、実行したら、[Datadog のオートディスカバリー機能][12]を使ってアプリケーションコンテナからメトリクスとログを自動的に収集します。 +Agent v6.4.0 (トレース Agent の場合は v6.5.0) より、以下の環境変数を使用して Agent のプロキシ設定を上書きできるようになりました。 +`DD_PROXY_HTTP` +: `http` リクエスト用のプロキシとして使用する HTTP URL です。 -## 環境変数 +`DD_PROXY_HTTPS` +: `https` リクエスト用のプロキシとして使用する HTTPS URL です。 -Agent の [メインコンフィギュレーションファイル][13]は `datadog.yaml` です。Docker Agent の場合、`datadog.yaml` コンフィギュレーションオプションは環境変数で渡されます。 +`DD_PROXY_NO_PROXY` +: プロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。 -### グローバルオプション +プロキシ設定の詳細については、[Agent v6 Proxy のドキュメント][10] を参照してください。 -| 環境変数 | 説明 | -|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_API_KEY` | Datadog API キー (**必須**) | -| `DD_ENV` | 出力されるすべてのデータにグローバル `env` タグを設定します。 | -| `DD_HOSTNAME` | メトリクスに使用するホスト名 (自動検出が失敗した場合) | -| `DD_HOSTNAME_FILE` | 環境によっては、ホスト名の自動検出がうまくいかず、環境変数で値を設定できない場合があります。このような場合、ホスト上のファイルを使って適切な値を提供することができます。もし `DD_HOSTNAME` が空でない値に設定されている場合、このオプションは無視されます。 | -| `DD_TAGS` | スペース区切りのホストタグ。例: `key1:value1 key2:value2` | -| `DD_SITE` | メトリクス、トレース、ログの送信先サイト。Datadog サイトを `{{< region-param key="dd_site" >}}` に設定します。デフォルトは `datadoghq.com` です。 | -| `DD_DD_URL` | メトリクス送信用 URL を上書きします。設定は任意です。 | -| `DD_URL` (6.36+/7.36+) | `DD_DD_URL` のエイリアス。すでに `DD_DD_URL` が設定されている場合は無視されます。 | -| `DD_CHECK_RUNNERS` | Agent はデフォルトですべてのチェックを同時に実行します (デフォルト値は `4` ランナーです)。チェックを順次実行する場合は、値を `1` に設定してください。ただし、多数のチェック (または時間のかかるチェック) を実行する必要がある場合、`collector-queue` コンポーネントが遅延して、ヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。 | -| `DD_APM_ENABLED` | トレース収集を有効にします。デフォルトは `true` です。トレース収集の追加環境変数について詳しくは、[Docker アプリケーションのトレース][14]をご覧ください。 | -| `DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION` | 環境によっては、ホストからの最初のログに正しいタグが含まれないことがあります。新しいホストのタグがログに含まれていない場合は、この環境変数を含めて `"10m"` に設定してください。| +#### オプションの収集 Agent {#optional-collection-agents} -### プロキシ設定 +セキュリティまたはパフォーマンス上の理由により、オプションの収集 Agent はデフォルトで無効になっています。有効にするには、以下の環境変数を使用します。 -Agent v6.4.0 (トレース Agent の場合は v6.5.0) より、以下の環境変数を使用して Agent のプロキシ設定を上書きできるようになりました。 +`DD_APM_NON_LOCAL_TRAFFIC` +: [他のコンテナからのトレース][11] 時に非ローカルなトラフィックを許可します。 + +`DD_LOGS_ENABLED` +: ログ Agent による [ログの収集][12] を有効にします。 -| 環境変数 | 説明 | -|---------------------|-------------------------------------------------------------------| -| `DD_PROXY_HTTP` | `http` リクエスト用のプロキシとして使用する HTTP URL です。 | -| `DD_PROXY_HTTPS` | `https` リクエスト用のプロキシとして使用する HTTPS URL です。 | -| `DD_PROXY_NO_PROXY` | プロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。 | +`DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED` +: プロセスエージェントで [ライブプロセスの収集][13] を有効にします。Docker ソケットが利用可能な場合、[ライブコンテナビュー][14] はデフォルトですでに有効になっています。 -プロキシ設定の詳細については、[Agent v6 プロキシのドキュメント][15]を参照してください。 +#### DogStatsD (Custom Metrics) {#dogstatsd-custom-metrics} -### オプションの収集 Agent +Custom Metrics を [StatsD プロトコル][15] を使用して送信します。 -セキュリティまたはパフォーマンス上の理由により、オプションの収集 Agent はデフォルトで無効になっています。このエージェントを有効にするには、以下の環境変数を使用します。 +`DD_DOGSTATSD_NON_LOCAL_TRAFFIC` +: ほかのコンテナからの DogStatsD パケットをリスニングします (Custom Metrics の送信に必要)。 -| 環境変数 | 説明 | -|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_APM_NON_LOCAL_TRAFFIC` | [他のコンテナからのトレース][16]時に非ローカルなトラフィックを許可します。 | -| `DD_LOGS_ENABLED` | ログ Agent による[ログの収集][17]を有効にします。 | -| `DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED` | Process Agent で[ライブプロセス収集][18]を有効にします。Docker ソケットが利用可能な場合、[Live Container View][19] は既にデフォルトで有効になっています。 | +`DD_HISTOGRAM_PERCENTILES` +: 計算するヒストグラムのパーセンタイル (スペース区切り)。デフォルトは `0.95` です。 -### DogStatsD (カスタムメトリクス) +`DD_HISTOGRAM_AGGREGATES` +: 計算するヒストグラムの集計 (スペース区切り)。デフォルトは `"max median avg count"` です。 -カスタムメトリクスを [StatsD プロトコル][20]で送信します。 +`DD_DOGSTATSD_SOCKET` +: リスニングする UNIX ソケットのパス。`rw` でマウントされたボリューム内にある必要があります。 -| 環境変数 | 説明 | -|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | 他のコンテナからの DogStatsD パケットをリスニングします (カスタムメトリクスの送信に必要)。 | -| `DD_HISTOGRAM_PERCENTILES` | 計算するヒストグラムのパーセンタイル (スペース区切り)。デフォルトは `0.95` です。 | -| `DD_HISTOGRAM_AGGREGATES` | 計算するヒストグラムの集計 (スペース区切り)。デフォルトは "max median avg count" です。 | -| `DD_DOGSTATSD_SOCKET` | リスニングする UNIX ソケットのパス。`rw` でマウントされたボリューム内にある必要があります。 | -| `DD_DOGSTATSD_ORIGIN_DETECTION` | UNIX ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。 | -| `DD_DOGSTATSD_TAGS` | この DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。たとえば `"env:golden group:retrievers"` のように追加します。 | -| `DD_USE_DOGSTATSD` | DogStatsD ライブラリからのカスタムメトリクスの送信を有効または無効にします。 | -詳しくは、[Unix ドメインソケット上の DogStatsD][21] を参照してください。 +`DD_DOGSTATSD_ORIGIN_DETECTION` +: UNIX ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。 -### タグ付け +`DD_DOGSTATSD_TAGS` +: この DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。例: : `"env:golden group:retrievers"` -ベストプラクティスとして、Datadog はタグを割り当てるときに[統合サービスタグ付け][22]を使用することをお勧めします。 +`DD_USE_DOGSTATSD` +: DogStatsD ライブラリからの Custom Metrics の送信を有効または無効にします。 +詳しくは、[Unix ドメインソケット上の DogStatsD][16] を参照してください。 + +#### タグ付け {#tagging} + +Datadog ではベストプラクティスとして、タグを割り当てるときに [unified service tagging][17] を使用することをお勧めします。 Datadog は Docker、Kubernetes、ECS、Swarm、Mesos、Nomad、Rancher から一般的なタグを自動的に収集します。さらに多くのタグを抽出するには、次のオプションを使用します。 -| 環境変数 | 説明 | -|-------------------------------|---------------------------------------------------------------------------------------------------------| -| `DD_CONTAINER_LABELS_AS_TAGS` | コンテナラベルを抽出します。この環境は、古い `DD_DOCKER_LABELS_AS_TAGS` 環境と同等です。 | -| `DD_CONTAINER_ENV_AS_TAGS` | コンテナ環境変数を抽出します。この環境は、古い `DD_DOCKER_ENV_AS_TAGS` 環境と同等です。 | -| `DD_COLLECT_EC2_TAGS` | AWS インテグレーションを使用せずに、カスタム EC2 タグを抽出します。 | +`DD_CONTAINER_LABELS_AS_TAGS` +: コンテナラベルを抽出します。この環境は `DD_DOCKER_LABELS_AS_TAGS` と同等です。 + +`DD_CONTAINER_ENV_AS_TAGS` +: コンテナ環境変数を抽出します。この環境は `DD_DOCKER_ENV_AS_TAGS` と同等です。 + +`DD_COLLECT_EC2_TAGS` +: AWS インテグレーションを使用せずに、カスタム EC2 タグを抽出します。 + +詳細については、[Docker タグの抽出][18] ドキュメントを参照してください。 + +#### シークレットファイルの使用 {#using-secret-files} + +インテグレーションの資格情報を Docker や Kubernetes のシークレットに格納し、Autodiscovery テンプレートで使用できます。詳細については、[機密情報管理のドキュメント][19] を参照してください。 + +#### コンテナの無視 {#ignore-containers} + +ログの収集、メトリクスの収集、Autodiscovery からコンテナを除外します。Datadog はデフォルトで Kubernetes と OpenShift の `pause` コンテナを除外します。これらの許可リストとブロックリストは Autodiscovery にのみ適用され、トレースと DogStatsD には影響しません。これらの環境変数の値には、正規表現を使用できます。 + +`DD_CONTAINER_INCLUDE` +: 処理対象に含めるコンテナの許可リスト (スペース区切り)。すべてを含める場合は `.*` を使用します。例: : `"image:image_name_1 image:image_name_2"`、`image:.*`。OpenShift 環境内で ImageStreams を使用する場合は、イメージの代わりにコンテナ名を使用してください。例: : `"name:container_name_1 name:container_name_2"`、`name:.*` + +`DD_CONTAINER_EXCLUDE` +: 処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを除外する場合は `.*` を使用します。例: : `"image:image_name_3 image:image_name_4"`、`image:.*` (**注**: この変数は Autodiscovery に対してのみ有効です。) + +`DD_CONTAINER_INCLUDE_METRICS` +: メトリクスを含めるコンテナの許可リスト。 + +`DD_CONTAINER_EXCLUDE_METRICS` +: メトリクスを除外するコンテナのブロックリスト。 + +`DD_CONTAINER_INCLUDE_LOGS` +: ログを含めるコンテナの許可リスト。 + +`DD_CONTAINER_EXCLUDE_LOGS` +: ログを除外するコンテナのブロックリスト。 -詳細については、[Docker タグの抽出][23]ドキュメントを参照してください。 +`DD_AC_INCLUDE` +: **非推奨**:処理対象に含めるコンテナの許可リスト (スペース区切り)。すべてを含める場合は `.*` を使用します。例: : `"image:image_name_1 image:image_name_2"`、`image:.*` -### シークレットファイルの使用 +`DD_AC_EXCLUDE` +: **非推奨**:処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを除外する場合は `.*` を使用します。例: `"image:image_name_3 image:image_name_4"`、`image:.*` (**注**: この変数は Autodiscovery に対してのみ有効です。) -インテグレーションの資格情報を Docker や Kubernetes のシークレットに格納し、オートディスカバリーテンプレートで使用できます。詳細については、[シークレット管理のドキュメント][24]を参照してください。 +その他の例は [コンテナのディスカバリー管理][20] ページでご確認いただけます。 -### コンテナの無視 +**注**: `kubernetes.containers.running`、`kubernetes.pods.running`、`docker.containers.running`、`.stopped`、`.running.total`、および `.stopped.total` メトリクスはこれらの設定の影響を受けません。すべてのコンテナを対象とします。これは、コンテナ単位の課金には影響しません。 -ログの収集、メトリクスの収集、オートディスカバリーからコンテナを除外します。Datadog はデフォルトで Kubernetes と OpenShift の `pause` コンテナを除外します。これらの許可リストとブロックリストはオートディスカバリーにのみ適用されます。トレースと DogStatsD は影響を受けません。これらの環境変数の値は、正規表現をサポートしています。 +**注**: containerd を使用する場合、`DD_CONTAINERD_NAMESPACES` と `DD_CONTAINERD_EXCLUDE_NAMESPACES` を使用すると、ネームスペースでコンテナを無視することができます。どちらもスペース区切りのネームスペースのリストです。`DD_CONTAINERD_NAMESPACES` が設定されている場合、Agent はリストに存在するネームスペースに属するコンテナのデータを報告します。`DD_CONTAINERD_EXCLUDE_NAMESPACES` が設定されている場合、Agent はリストのネームスペースに属するものを除く、すべてのコンテナのデータをレポートします。 -| 環境変数 | 説明 | -|--------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_CONTAINER_INCLUDE` | 処理対象に入れるコンテナの許可リスト (スペース区切り)。すべてを対象に入れる場合は、`.*` を使用します。例: `"image:image_name_1 image:image_name_2"`、`image:.*` OpenShift 環境内で ImageStreams を使用する場合は、イメージの代わりにコンテナ名を使用してください。例: "name:container_name_1 name:container_name_2", name:.* | -| `DD_CONTAINER_EXCLUDE` | 処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを対象から除外する場合は、`.*` を使用します。例: `"image:image_name_3 image:image_name_4"` (**注**: この変数はオートディスカバリーに対してのみ有効)、`image:.*` | -| `DD_CONTAINER_INCLUDE_METRICS` | メトリクスを含めたいコンテナの許可リスト。 | -| `DD_CONTAINER_EXCLUDE_METRICS` | メトリクスを除外したいコンテナのブロックリスト。 | -| `DD_CONTAINER_INCLUDE_LOGS` | ログを含めたいコンテナの許可リスト。 | -| `DD_CONTAINER_EXCLUDE_LOGS` | ログを除外したいコンテナのブロックリスト。 | -| `DD_AC_INCLUDE` | **非推奨**: 処理対象に入れるコンテナの許可リスト (スペース区切り)。すべてを対象に入れる場合は、`.*` を使用します。例: `"image:image_name_1 image:image_name_2"`、`image:.*` | -| `DD_AC_EXCLUDE` | **非推奨**: 処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを対象から除外する場合は、`.*` を使用します。例: `"image:image_name_3 image:image_name_4"` (**注**: この変数はオートディスカバリーに対してのみ有効)、`image:.*` | +#### Autodiscovery {#autodiscovery} -その他の例は[コンテナのディスカバリー管理][25]ページでご確認いただけます。 +`DD_LISTENERS` +: 実行する Autodiscovery リスナー。 -**注**: `kubernetes.containers.running`、`kubernetes.pods.running`、`docker.containers.running`、`.stopped`、`.running.total`、`.stopped.total` の各メトリクスは、この設定の影響を受けません。すべてのコンテナを対象とします。なお、これらはコンテナの課金に影響しません。 +`DD_EXTRA_LISTENERS` +: 実行する追加の Autodiscovery リスナー。これは `datadog.yaml` 構成ファイルの `listeners` セクションで定義された変数に加えて追加されます。 -**注**: containerd を使用する場合、`DD_CONTAINERD_NAMESPACES` と `DD_CONTAINERD_EXCLUDE_NAMESPACES` を使用すると、ネームスペースでコンテナを無視することが可能です。どちらもスペースで区切られたネームスペースのリストです。`DD_CONTAINERD_NAMESPACES` が設定されている場合、Agent はリストに存在するネームスペースに属するコンテナのデータを報告します。`DD_CONTAINERD_EXCLUDE_NAMESPACES` が設定されている場合、Agent はリストのネームスペースに属するものを除く、すべてのコンテナのデータをレポートします。 +`DD_CONFIG_PROVIDERS` +: Agent がチェック構成を収集するために呼び出す必要があるプロバイダー。デフォルトのプロバイダーは `docker` です。Docker プロバイダーはコンテナラベルに埋め込まれたテンプレートを処理します。 -### オートディスカバリー +`DD_EXTRA_CONFIG_PROVIDERS` +: 使用する追加の Autodiscovery 構成プロバイダー。これは `datadog.yaml` 構成ファイルの `config_providers` セクションで定義された変数に加えて追加されます。 -| 環境変数 | 説明 | -|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_LISTENERS` | 実行するオートディスカバリーリスナー。 | -| `DD_EXTRA_LISTENERS` | 実行するオートディスカバリーリスナーを追加します。これは `datadog.yaml` コンフィギュレーションファイルの `listeners` セクションで定義された変数に加えて追加されます。 | -| `DD_CONFIG_PROVIDERS` | Agent がチェック構成を収集するために呼び出すべきプロバイダー。デフォルトのプロバイダーは `docker` です。Docker プロバイダーはコンテナラベルに埋め込まれたテンプレートを処理します。 | -| `DD_EXTRA_CONFIG_PROVIDERS` | 使用するオートディスカバリー構成プロバイダーを追加します。これは `datadog.yaml` コンフィギュレーションファイルの `config_providers` セクションで定義された変数に加えて追加されます。 | +#### その他 {#miscellaneous} -### その他 +`DD_PROCESS_AGENT_CONTAINER_SOURCE` +: コンテナソースの自動検出を上書きして、1 つのソースに制限します。たとえば、`"docker"`、`"ecs_fargate"`、`"kubelet"` です。Agent v7.35.0 以降では不要になりました。 -| 環境変数 | 説明 | -|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | コンテナソースの自動検出を上書きして、1 つのソースに制限します (`"docker"`、`"ecs_fargate"`、`"kubelet"` など)。Agent v7.35.0 以降、不要になりました。 | -| `DD_HEALTH_PORT` | これを `5555` に設定すると、Agent のヘルスチェックをポート `5555` で公開します。 | +`DD_HEALTH_PORT` +: これを `5555` に設定すると、Agent のヘルスチェックをポート `5555` で公開します。 -## コマンド +## コマンド {#commands} -すべての Docker Agent コマンドは [Agent コマンドガイド][26]でご確認いただけます。 +すべての Docker Agent コマンドは [Agent コマンドガイド][21] でご確認いただけます。 -## データ収集 +## 収集データ {#data-collected} -### メトリクス +### メトリクス {#metrics} -デフォルトで、Docker Agent はメトリクスを以下の主要なチェックのために収集します。他のテクノロジーからメトリクスを収集するには、[インテグレーション](#インテグレーション)のセクションを参照してください。 +デフォルトで、Docker Agent はメトリクスを以下の主要なチェックで収集します。ほかのテクノロジーからメトリクスを収集する方法については、[インテグレーション](#integrations)セクションを参照してください。 | チェック | メトリクス | -|-------------|---------------| -| コンテナ | [Metrics][27] -| CPU | [System][28] | -| ディスク | [Disk][29] | -| Docker | [Docker][30] | -| ファイル処理 | [System][28] | -| IO | [System][28] | -| ロード | [System][28] | -| メモリ | [System][28] | -| ネットワーク | [Network][31] | -| NTP | [NTP][32] | -| アップタイム | [System][28] | - -### イベント +| ----------- | ------------- | +| コンテナ | [メトリクス][22] | +| CPU | [システム][23] | +| ディスク | [ディスク][24] | +| Docker | [Docker][25] | +| ファイルハンドル | [システム][23] | +| IO | [システム][23] | +| 負荷 | [システム][23] | +| メモリ | [システム][23] | +| ネットワーク | [ネットワーク][26] | +| NTP | [NTP][27] | +| アップタイム | [システム][23] | + +### イベント {#events} Agent の起動または再起動の際に、Docker Agent はイベントを Datadog に送信します。 -### サービスチェック +### サービスチェック {#service-checks} -**datadog.agent.up**:
    -Agent が Datadog に接続できない場合は、`CRITICAL` を返します。それ以外の場合は、`OK` を返します。 +**datadog.agent.up**
    +Agent が Datadog に接続できない場合は `CRITICAL` を返し、それ以外の場合は `OK` を返します。 -**datadog.agent.check_status**:
    -Agent チェックが Datadog にメトリクスを送信できない場合は、`CRITICAL` を返します。それ以外の場合は、`OK` を返します。 +**datadog.agent.check_status**
    +Agent チェックが Datadog にメトリクスを送信できない場合は `CRITICAL` を返し、それ以外の場合は `OK` を返します。 -## Single Step APM Instrumentation のアンインストール +## Single Step APM Instrumentation のアンインストール {#uninstall-single-step-apm-instrumentation} -Single Step APM Instrumentation とともに Datadog Docker Agent をインストールしていて、Agent をアンインストールする場合は、APM Instrumentation をアンインストールするために[追加のコマンド][33]を実行する必要があります。 +Single Step APM Instrumentation とともに Datadog Docker Agent をインストールしていて、Agent をアンインストールする場合は、APM Instrumentation をアンインストールするために [追加のコマンドを実行][28] する必要があります。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/agent/ -[2]: https://hub.docker.com/r/datadog/agent -[3]: https://console.cloud.google.com/gcr/images/datadoghq/GLOBAL/agent -[4]: https://gallery.ecr.aws/datadog/agent -[5]: https://hub.docker.com/r/datadog/docker-dd-agent -[6]: https://console.cloud.google.com/gcr/images/datadoghq/GLOBAL/docker-dd-agent?gcrImageListsize=30 -[7]: https://gallery.ecr.aws/datadog/docker-dd-agent -[8]: https://app.datadoghq.com/account/settings/agent/latest?platform=docker -[9]: /ja/agent/supported_platforms/?tab=cloudandcontainers -[10]: https://app.datadoghq.com/organization-settings/api-keys -[11]: /ja/agent/guide/compose-and-the-datadog-agent/ -[12]: /ja/agent/docker/integrations/ -[13]: /ja/agent/configuration/agent-configuration-files/#agent-main-configuration-file -[14]: /ja/agent/docker/apm/ -[15]: /ja/agent/configuration/proxy/#agent-v6 -[16]: /ja/agent/docker/apm/#tracing-from-other-containers -[17]: /ja/agent/docker/log/ -[18]: /ja/infrastructure/process/ -[19]: /ja/infrastructure/livecontainers/ -[20]: /ja/developers/dogstatsd/ -[21]: /ja/developers/dogstatsd/unix_socket/ -[22]: /ja/getting_started/tagging/unified_service_tagging/ -[23]: /ja/agent/docker/tag/ -[24]: /ja/agent/configuration/secrets-management/?tab=linux -[25]: /ja/agent/guide/autodiscovery-management/ -[26]: /ja/agent/configuration/agent-commands/ -[27]: /ja/integrations/container/ -[28]: /ja/integrations/system/#metrics -[29]: /ja/integrations/disk/#metrics -[30]: /ja/agent/docker/data_collected/#metrics -[31]: /ja/integrations/network/#metrics -[32]: /ja/integrations/ntp/#metrics -[33]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/?tab=docker#removing-apm-for-all-services-on-the-infrastructure \ No newline at end of file +[2]: /ja/agent/supported_platforms/?tab=cloudandcontainers +[3]: https://app.datadoghq.com/account/settings/agent/latest?platform=docker +[4]: /ja/containers/guide/compose-and-the-datadog-agent/ +[5]: /ja/containers/guide/podman-support-with-docker-integration/ +[6]: /ja/containers/docker/integrations/ +[7]: /ja/getting_started/containers/autodiscovery +[8]: /ja/agent/configuration/agent-configuration-files/#agent-main-configuration-file +[9]: /ja/containers/docker/apm/ +[10]: /ja/agent/configuration/proxy/#agent-v6 +[11]: /ja/containers/docker/apm/?tab=linux#tracing-from-other-containers +[12]: /ja/containers/docker/log/ +[13]: /ja/infrastructure/process/ +[14]: /ja/infrastructure/livecontainers/ +[15]: /ja/extend/dogstatsd/ +[16]: /ja/extend/dogstatsd/unix_socket/ +[17]: /ja/getting_started/tagging/unified_service_tagging/?tab=docker +[18]: /ja/containers/docker/tag +[19]: /ja/agent/configuration/secrets-management/?tab=linux +[20]: /ja/containers/guide/container-discovery-management/?tab=containerizedagent +[21]: /ja/agent/configuration/agent-commands/ +[22]: /ja/integrations/container/ +[23]: /ja/integrations/system/#metrics +[24]: /ja/integrations/disk/#metrics +[25]: /ja/containers/docker/data_collected/#metrics +[26]: /ja/integrations/network/#metrics +[27]: /ja/integrations/ntp/#metrics +[28]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/docker/#remove-single-step-apm-instrumentation-from-your-agent \ No newline at end of file diff --git a/content/ja/containers/kubernetes/integrations.md b/content/ja/containers/kubernetes/integrations.md index 389d1609eb0..544df432f83 100644 --- a/content/ja/containers/kubernetes/integrations.md +++ b/content/ja/containers/kubernetes/integrations.md @@ -4,57 +4,63 @@ aliases: - /ja/guides/servicediscovery/ - /ja/guides/autodiscovery/ - /ja/agent/kubernetes/integrations +description: Autodiscovery テンプレートを使用して、Kubernetes で実行されているアプリケーションのモニターインテグレーションを構成します further_reading: +- link: https://www.datadoghq.com/blog/monitor-karpenter-datadog + tag: ブログ + text: Datadog で Karpenter をモニターします - link: /agent/kubernetes/log/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーションログの収集 - link: /agent/kubernetes/apm/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーショントレースの収集 - link: /agent/kubernetes/prometheus/ - tag: ドキュメント + tag: よくあるご質問 text: Prometheus メトリクスの収集 - link: /agent/guide/autodiscovery-management/ - tag: ドキュメント + tag: よくあるご質問 text: データ収集をコンテナのサブセットのみに制限 - link: /agent/kubernetes/tag/ - tag: ドキュメント + tag: よくあるご質問 text: コンテナから送信された全データにタグを割り当て -title: Kubernetes and Integrations +- link: https://www.youtube.com/watch?v=nuxmVf9ByE0 + tag: ビデオ + text: 'Datadog のヒントとコツ: Datadog Autodiscovery 用に JSON で Kubernetes のアノテーションを記述する方法' +title: Kubernetes とインテグレーション --- +このページでは、_Autodiscovery_ という Datadog 機能を使用して、Kubernetes インフラストラクチャーのインテグレーションをインストールおよび構成する方法について説明します。これにより、`%%host%%` のような [変数][16] を使用して、構成設定を動的に入力することができます。Autodiscovery の動作についての詳細な説明は、[コンテナの概要: Autodiscovery][12] を参照してください。特定のコンテナを Autodiscovery から除外したり、準備されていない Pod を許容したりするなどの高度な Autodiscovery オプションについては、[コンテナディスカバリー管理][23] を参照してください。 -This page covers how to install and configure integrations for your Kubernetes infrastructure by using a Datadog feature known as _Autodiscovery_. This enables you to use [variables][16] like `%%host%%` to dynamically populate your configuration settings. For a detailed explanation of how Autodiscovery works, see [Getting Started with Containers: Autodiscovery][12]. For advanced Autodiscovery options, such as excluding certain containers from Autodiscovery or tolerating unready pods, see [Container Discovery Management][23]. - -If you are using Docker or Amazon ECS, see [Docker and Integrations][1]. +Docker または Amazon ECS を使用している場合は、[Docker および Integrations][1] を参照してください。
    -Some Datadog integrations don't work with Autodiscovery because they require either process tree data or filesystem access: Ceph, Varnish, Postfix, Cassandra Nodetool, and Gunicorn.

    -To monitor integrations that are not compatible with Autodiscovery, you can use a Prometheus exporter in the pod to expose an HTTP endpoint, and then use the OpenMetrics integration (which supports Autodiscovery) to find the pod and query the endpoint. +次の Datadog インテグレーションは、プロセスツリーデータまたはファイルシステムアクセスを必要とするため、Autodiscovery では機能しません: CephVarnishPostfixCassandra Nodetool、および Gunicorn

    +Autodiscovery と互換性のないインテグレーションをモニターするには、Pod 内で Prometheus エクスポーターを使用して HTTP エンドポイントを公開し、OpenMetrics インテグレーション (Autodiscovery をサポート) を使用して Pod を見つけ、エンドポイントをクエリします。
    -## Set up your integration +## インテグレーションを設定する {#set-up-your-integration} -Some integrations require setup steps, such as creating an access token or granting read permission to the Datadog Agent. Follow the instructions in the **Setup** section of your integration's documentation. +一部のインテグレーションでは、アクセストークンの作成や Datadog Agent への読み取り権限の付与などのセットアップを行う必要があります。インテグレーションのドキュメントの**セットアップ**セクションの手順に従ってください。 -### コミュニティのインテグレーション -To use an integration that is not packaged with the Datadog Agent, you must build a custom image that contains your desired integration. See [Use Community Integrations][13] for instructions. +### コミュニティのインテグレーション {#community-integrations} +Datadog Agent に同梱されていないインテグレーションを使用する場合は、目的のインテグレーションを含むカスタム イメージをビルドする必要があります。手順については [コミュニティインテグレーションを使用する][13] を参照してください。 -## 構成 +## 構成 {#configuration} -Some commonly-used integrations come with default configuration for Autodiscovery. See [Autodiscovery auto-configuration][20] for details, including a list of auto-configured integrations and their corresponding default configuration files. If your integration is in this list, and the default configuration is sufficient for your use case, no further action is required. +一般的に使用される一部のインテグレーションには、Autodiscovery 用のデフォルト構成が付属しています。詳細については、[Autodiscovery 自動構成][20] を参照してください。ここには、自動構成されるインテグレーションと対応するデフォルト構成ファイルのリストが記載されています。このリストにご使用のインテグレーションが含まれており、デフォルトの構成がユースケースに十分であれば、追加のアクションは必要ありません。 -Otherwise: +そうでない場合は、次のようにします。 -1. Choose a configuration method (Kubernetes pod annotations, a local file, a ConfigMap, a key-value store, a Datadog Operator manifest, or a Helm chart) that suits your use case. -2. Reference the template format for your chosen method. Each format contains placeholders, such as ``. -3. [Supply values](#placeholder-values) for these placeholders. +1. ユースケースに適した構成方法 (Kubernetes Pod のアノテーション、ローカルファイル、ConfigMap、key-value ストア、Datadog Operator マニフェスト、または Helm チャート) を選択してください。 +2. 選択した方法のテンプレート形式を参照します。各形式には、`` などのプレースホルダーが含まれています。 +3. [これらのプレースホルダーの値を提供](#placeholder-values)します。 {{< tabs >}} -{{% tab "Annotations" %}} +{{% tab "アノテーション" %}} -If you define your Kubernetes pods directly with `kind: Pod`, add each pod's annotations directly under its `metadata` section, as shown: +Kubernetes Pod を `kind: Pod` で直接定義する場合は、次のようにして各 Pod のアノテーションを `metadata` セクションで直接追加してください。 -**Autodiscovery Annotations v2** (Datadog Agent v7.36+ 向け) +**Autodiscovery Annotations v2** (Datadog Agent v7.36 以降用) ```yaml apiVersion: v1 @@ -63,22 +69,22 @@ kind: Pod metadata: name: '' annotations: - ad.datadoghq.com/.checks: | + ad.datadoghq.com/.checks: | { "": { "init_config": , "instances": [] } } - ad.datadoghq.com/.logs: '[]' + ad.datadoghq.com/.logs: '[]' # (...) spec: containers: - - name: '' + - name: '' # (...) ``` -**Autodiscovery Annotations v1** +**Autodiscovery Annotations v1** ```yaml apiVersion: v1 @@ -87,28 +93,28 @@ kind: Pod metadata: name: '' annotations: - ad.datadoghq.com/.check_names: '[]' - ad.datadoghq.com/.init_configs: '[]' - ad.datadoghq.com/.instances: '[]' - ad.datadoghq.com/.logs: '[]' + ad.datadoghq.com/.check_names: '[]' + ad.datadoghq.com/.init_configs: '[]' + ad.datadoghq.com/.instances: '[]' + ad.datadoghq.com/.logs: '[]' # (...) spec: containers: - - name: '' + - name: '' # (...) ``` -If you define pods indirectly (with deployments, ReplicaSets, or ReplicationControllers) add pod annotations under `spec.template.metadata`. +(デプロイメント、ReplicaSets、ReplicationControllers を使用して) Pod を間接的に定義する場合は、Pod のアノテーションを `spec.template.metadata` の下に追加します。 {{% /tab %}} {{% tab "ローカルファイル" %}} -You can store Autodiscovery templates as local files inside the mounted `conf.d` directory (`/etc/datadog-agent/conf.d`). You must restart your Agent containers each time you change, add, or remove templates. +Autodiscovery テンプレートを、マウントされている `conf.d` ディレクトリ (`/etc/datadog-agent/conf.d`) 内にローカルファイルとして保存できます。テンプレートを変更、追加、または削除するたびに、Agent コンテナを再起動する必要があります。 -1. Create a `conf.d/.d/conf.yaml` file on your host: +1. ホストで `conf.d/.d/conf.yaml` ファイルを作成します。 ```yaml ad_identifiers: - - + - init_config: @@ -120,12 +126,35 @@ You can store Autodiscovery templates as local files inside the mounted `conf.d` ``` -2. ホスト の `conf.d/` フォルダーをコンテナ化 Agent の `conf.d` フォルダーにマウントします。 +2. ホストの `conf.d/` フォルダをコンテナ化された Agent の `conf.d` フォルダにマウントします。 + + Datadog Operator の場合: + ```yaml + spec: + override: + nodeAgent: + volumes: + - hostPath: + path: /conf.d + name: confd + ``` + + Helm の場合: + ```yaml + agents: + volumes: + - hostPath: + path: /conf.d + name: confd + volumeMounts: + - name: confd + mountPath: /conf.d + ``` {{% /tab %}} {{% tab "ConfigMap" %}} -You can use [ConfigMaps][1] to externally define configurations and subsequently mount them. +[ConfigMaps][1] を使用して、構成を外部で定義してからマウントできます。 ```yaml kind: ConfigMap @@ -136,7 +165,7 @@ metadata: data: -config: |- ad_identifiers: - + init_config: instances: @@ -148,13 +177,13 @@ data: [1]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap {{% /tab %}} -{{% tab "Key-value store" %}} +{{% tab "key-value ストア" %}} -You can source Autodiscovery templates from [Consul][1], [etcd][2], or [ZooKeeper][3]. You can configure your key-value store in the `datadog.yaml` configuration file (and subsequently mount this file inside the Agent container), or as environment variables in the Agent container. +Autodiscovery テンプレートは [Consul][1]、[etcd][2]、または [ZooKeeper][3] から取得できます。key-value ストアは `datadog.yaml` 構成ファイルで設定するか (その後、このファイルを Agent コンテナ内にマウントします)、または Agent コンテナ内の環境変数として設定できます。 -**datadog.yaml での構成** +**datadog.yaml での構成**: -In `datadog.yaml`, set the `` address and `` of your key-value store: +`datadog.yaml` で、key-value ストアの `` アドレスと `` を設定します。 ```yaml config_providers: @@ -185,16 +214,16 @@ In `datadog.yaml`, set the `` address and `/ + / - check_names: [""] - init_configs: [""] - instances: [""] @@ -210,7 +239,7 @@ key-value ストアがテンプレートソースとして有効になってい {{% /tab %}} {{% tab "Datadog Operator" %}} -To configure integrations in `datadog-agent.yaml`, add an override `extraConfd.configDataMap` to the `nodeAgent` component of your `DatadogAgent` configuration. Each key becomes a file in the Agent's `conf.d` directory. +`datadog-agent.yaml` でインテグレーションを構成するには、`DatadogAgent` 構成の `nodeAgent` コンポーネントにオーバーライド `extraConfd.configDataMap` を追加します。各キーは、Agent の `conf.d` ディレクトリ内のファイルになります。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -228,7 +257,7 @@ spec: configDataMap: .yaml: |- ad_identifiers: - - + - init_config: instances: @@ -236,8 +265,9 @@ spec: logs: ``` +
    デプロイされた複数の DatadogAgent CRD で、 configDataMapを使用している場合、各 CRD は nodeagent-extra-confdという名前の共有の ConfigMap に書き込みます。これにより、構成が互いにオーバーライドされる可能性があります。
    -To monitor a [Cluster Check][1], add an override `extraConfd.configDataMap` to the `clusterAgent` component. You must also enable cluster checks by setting `features.clusterChecks.enabled: true`. +[Cluster チェック][1] をモニターするには、オーバーライド `extraConfd.configDataMap` を `clusterAgent` コンポーネントに追加します。`features.clusterChecks.enabled: true` を設定して、クラスターチェックも有効にする必要があります。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -259,7 +289,8 @@ spec: configDataMap: .yaml: |- ad_identifiers: - - + - + cluster_check: true init_config: instances: @@ -268,21 +299,21 @@ spec: ``` -See [Cluster Checks][1] for more context. +詳細については、[Cluster チェック][1] を参照してください。 [1]: /ja/agent/cluster_agent/clusterchecks {{% /tab %}} {{% tab "Helm" %}} -Your `datadog-values.yaml` file contains a `datadog.confd` section where you can define Autodiscovery templates. You can find inline examples in the sample [values.yaml][1]. Each key becomes a file in the Agent's `conf.d` directory. +ご使用の `datadog-values.yaml` ファイルには、Autodiscovery テンプレートを定義できる `datadog.confd` セクションが含まれています。サンプルの [values.yaml][1] にインラインの例が用意されています。各キーは、Agent の `conf.d` ディレクトリ内のファイルになります。 ```yaml datadog: confd: .yaml: |- ad_identifiers: - - + - init_config: instances: @@ -291,7 +322,7 @@ datadog: ``` -To monitor a [Cluster Check][3], define your template under `clusterAgent.confd`. You can find inline examples in the sample [values.yaml][2]. You must also enable the Cluster Agent by setting `clusterAgent.enabled: true` and enable cluster checks by setting `datadog.clusterChecks.enabled: true`. +[Cluster チェック][3] をモニターするには、`clusterAgent.confd` の下にテンプレートを定義します。サンプルの [values.yaml][2] にインラインの例が用意されています。`clusterAgent.enabled: true` を設定して Cluster Agent を有効にし、`datadog.clusterChecks.enabled: true` を設定してクラスターチェックを有効にする必要もあります。 ```yaml datadog: @@ -302,7 +333,8 @@ clusterAgent: confd: .yaml: |- ad_identifiers: - - + - + cluster_check: true init_config: instances: @@ -311,7 +343,7 @@ clusterAgent: ``` -See [Cluster Checks][3] for more context. +詳細については、[Cluster チェック][3] を参照してください。 [1]: https://github.com/DataDog/helm-charts/blob/92fd908e3dd7b7149ce02de1fe859ae5ac717d03/charts/datadog/values.yaml#L315-L330 [2]: https://github.com/DataDog/helm-charts/blob/92fd908e3dd7b7149ce02de1fe859ae5ac717d03/charts/datadog/values.yaml#L680-L689 @@ -320,40 +352,105 @@ See [Cluster Checks][3] for more context. {{< /tabs >}} -### Placeholder values +### プレースホルダー値 {#placeholder-values} -Supply placeholder values as follows: +次のようにプレースホルダー値を指定します。 `` -: The name of your Datadog integration, such as `etcd` or `redisdb`. +: ご使用の Datadog インテグレーションの名前。たとえば、`etcd` や `redisdb` です。 + +`` +: ご使用のインテグレーションに対応するコンテナの名前 (`spec.containers[i].image`**ではなく**`spec.containers[i].name`) に対して照合する識別子。 -`` -: An identifier to match against the names (`spec.containers[0].name`, **not** `spec.containers[0].image`) of the containers that correspond to your integration. The `ad_identifiers` parameter takes a list, so you can supply multiple container identifiers.

    -For example: if you supply `redis` as a container identifier, your Autodiscovery template is applied to all containers with names that match `redis`. If you have one container running `foo/redis:latest` and `bar/redis:v2`, your Autodiscovery template is applied to both containers.

    -You can also use custom identifiers. See [Custom Autodiscovery Identifiers][21]. +`` +: コンテナイメージ (`.spec.containers[i].image`) に対して照合する識別子。

    +例: `redis` をコンテナ識別子として指定した場合、Autodiscovery テンプレートは `redis` と一致するイメージ名を持つすべてのコンテナに適用されます。`foo/redis:latest` と `bar/redis:v2` を実行している 1 つのコンテナを使用している場合は、Autodiscovery テンプレートは両方のコンテナに適用されます。

    +`ad_identifiers` パラメーターはリストを受け入れるため、複数のコンテナ識別子を指定できます。カスタム識別子も使用できます。[カスタム Autodiscovery 識別子][21] を参照してください。 `` -: The configuration parameters listed under `init_config` in your integration's `.d/conf.yaml.example` file. The `init_config` section is usually empty. +: インテグレーションの `.d/conf.yaml.example` ファイルの `init_config` の下にリストされている構成パラメーター。`init_config` セクションは通常は空です。 `` -: The configuration parameters listed under `instances` in your integration's `.d/conf.yaml.example` file. +: インテグレーションの `.d/conf.yaml.example` ファイルの `instances` の下にリストされている構成パラメーター。 `` -: The configuration parameters listed under `logs` in your integration's `.d/conf.yaml.example` file. +: インテグレーションの `.d/conf.yaml.example` ファイルの `logs` の下にリストされている構成パラメーター。 + +### 高度なアノテーションパラメーター {#advanced-annotation-parameters} -### Auto-configuration +チェック、ログ、インスタンスのためのコア Autodiscovery アノテーションに加えて、チェックの動作をカスタマイズするための追加のアノテーションを使用できます。 -The Datadog Agent automatically recognizes and supplies basic configuration for some common technologies. For a complete list, see [Autodiscovery auto-configuration][20]. +#### タグのカーディナリティ {#tag-cardinality} -Configurations set with Kubernetes annotations take precedence over auto-configuration, but auto-configuration takes precedence over configurations set with Datadog Operator or Helm. To use Datadog Operator or Helm to configure an integration in the [Autodiscovery auto-configuration][20] list, you must [disable auto-configuration][22]. +`check_tag_cardinality` アノテーションを使用して、特定のチェックに対するタグのカーディナリティレベルを設定します。これは、そのチェックによって収集されたメトリクスのグローバル Agent タグのカーディナリティ設定をオーバーライドします。 -## Example: Postgres integration +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: '' + annotations: + ad.datadoghq.com/.checks: | + { + "": { + "init_config": , + "instances": [] + } + } + ad.datadoghq.com/.check_tag_cardinality: "" +spec: + containers: + - name: '' +``` -In this example scenario, you deployed Postgres on Kubernetes. You want to set up and configure the [Datadog-Postgres integration][26]. All of your Postgres containers have container names that contain the string `postgres`. +
    check_tag_cardinality アノテーションは、インテグレーションチェックによって収集されたメトリクスにのみ影響します。DogStatsD を介して送信されたメトリクスには影響しません。DogStatsD タグのカーディナリティを設定するには、グローバル dogstatsd_tag_cardinality 構成パラメーターまたは DD_DOGSTATSD_TAG_CARDINALITY 環境変数を使用します。
    -First, reference the [Postgres integration documentation][26] for any additional setup steps. The Postgres integration requires that you create a read-only user named `datadog` and store the corresponding password as an environment variable named `PG_PASSWORD`. +タグのカーディナリティに関する詳細は、[チェック別のタグコンフィギュレーション][27] を参照してください。 -If you were to configure this integration **on a host**, you could reference [`postgresql.d/conf.yaml.example`][15] for parameters and create a `postgresql.d/conf.yaml` file that contains the following: +### 自動構成 {#auto-configuration} + +Datadog Agent は、一般的な技術に対する基本的な構成を自動的に認識し、提供します。完全なリストについては、[Autodiscovery 自動構成][20] を参照してください。 + +Kubernetes アノテーションで設定された構成は自動構成よりも優先されますが、自動構成は Datadog Operator または Helm で設定された構成よりも優先されます。Datadog Operator または Helm を使用して [Autodiscovery 自動構成][20] リストのインテグレーションを構成するには、[自動構成を無効化][22] する必要があります。 + +## インテグレーションのセキュリティ {#integrations-security} + +インテグレーションでは通常、ファイルシステムから構成ファイル、証明書、またはその他のリソースを読み取る必要があります。ファイルパスが信頼できない構成プロバイダー (たとえば、Pod アノテーションや外部サービスの自動検出) から取得されたものである場合は、パスのトラバーサルや不正なファイルアクセスが発生するリスクがあります。 + +Datadog Agent バージョン 7.78.0 以降、構成プロバイダーの信頼レベルに基づいてファイルシステムアクセスを制御するために、Agent の `datadog.yaml` に次のパラメーターを設定できます。 + +| パラメーター | 型 | デフォルト | 説明 | +|-----------|------|---------|-------------| +| `integration_ignore_untrusted_file_params` | ブール | `false` | 有効にすると、インテグレーションは、信頼できない構成プロバイダーから提供されたファイルパスを参照する構成パラメーターを無視します。| +| `integration_file_paths_allowlist` | リスト | `[]` | 信頼できない構成プロバイダーから提供された場合でも、インテグレーションがアクセスを許可されるファイルパスのリスト。空のリストは、すべてのファイルパスが許可されていることを意味します。| +| `integration_trusted_providers` | リスト | `["file", "remote-config"]` | 信頼されていると見なされる構成プロバイダーのリスト。このリストにないプロバイダーは信頼できないと見なされます。デフォルトで、ローカル構成ファイル (`file`) と Datadog Remote Configuration (`remote-config`) は信頼されています。サポートされているプロバイダーの完全なリストについては、[Datadog Agent のプロバイダー名][28] を参照してください。| +| `integration_security_excluded_checks` | リスト | `[]` | 上記のセキュリティ制限から除外されるインテグレーション名のリスト。| + +これらのオプションは後方互換性があり、デフォルト値は既存の動作を維持します。オプトインするには、`integration_ignore_untrusted_file_params` を有効にし、残りのパラメーターを環境に合わせて調整してください。 + +`datadog.yaml` の例: + +```yaml +integration_ignore_untrusted_file_params: true +integration_file_paths_allowlist: + - /etc/datadog-agent/certs + - /var/run/secrets +integration_trusted_providers: + - file + - remote-config +integration_security_excluded_checks: + - +``` + +この構成では、Pod アノテーション (信頼できないプロバイダー) を通じて構成されたインテグレーションは、`/etc/datadog-agent/certs` または `/var/run/secrets` の外部のファイルパスを参照できません。ただし、インテグレーション名が `integration_security_excluded_checks` にリストされている場合は除きます。 + +## 例: Postgres インテグレーション {#example-postgres-integration} + +この例のシナリオでは、Kubernetes 上に Postgres をデプロイしています。[Datadog-Postgres インテグレーション][26] を設定および構成しようと考えています。すべての Postgres コンテナは、`postgres` という文字列が含まれるコンテナ名を持ちます。 + +まず、追加のセットアップ手順について、[Postgres インテグレーションのドキュメント][26] を参照してください。Postgres インテグレーションでは、`datadog` という名前の読み取り専用ユーザーを作成し、対応するパスワードを `PG_PASSWORD` という名前の環境変数として保存する必要があります。 + +このインテグレーションを**ホスト上で**構成する場合は、[`postgresql.d/conf.yaml.example`][15] のパラメーターを参照し、次の内容を含む `postgresql.d/conf.yaml` ファイルを作成できます。 ```yaml init_config: @@ -369,16 +466,16 @@ logs: service: pg_service ``` -Here, `` corresponds to the password for the `datadog` user you created. +ここで、`` は作成した `datadog` ユーザーのパスワードに対応しています。 -To apply this configuration to your Postgres containers: +この構成を Postgres コンテナに適用するには、次のようにします。 {{< tabs >}} -{{% tab "Annotations" %}} +{{% tab "アノテーション" %}} -ポッドマニフェストで: +Pod マニフェストで、次のようにしあす。 -**Autodiscovery Annotations v2** (Datadog Agent v7.36+ 向け) +**Autodiscovery Annotations v2** (Datadog Agent v7.36 以降用) ```yaml apiVersion: v1 @@ -388,7 +485,7 @@ metadata: annotations: ad.datadoghq.com/postgres.checks: | { - "postgresql": { + "postgres": { "instances": [ { "host": "%%host%%", @@ -413,7 +510,7 @@ spec: - name: postgres ``` -**Autodiscovery Annotations v1** +**Autodiscovery Annotations v1** ```yaml apiVersion: v1 @@ -421,7 +518,7 @@ kind: Pod metadata: name: postgres annotations: - ad.datadoghq.com/postgres.check_names: '["postgresql"]' + ad.datadoghq.com/postgres.check_names: '["postgres"]' ad.datadoghq.com/postgres.init_configs: '[{}]' ad.datadoghq.com/postgres.instances: | [ @@ -448,7 +545,7 @@ spec: {{% /tab %}} {{% tab "ローカルファイル" %}} -1. Create a `conf.d/postgresql.d/conf.yaml` file on your host: +1. ホストで `conf.d/postgresql.d/conf.yaml` ファイルを作成します。 ```yaml ad_identifiers: @@ -466,11 +563,35 @@ spec: service: "pg_service" ``` -2. ホスト の `conf.d/` フォルダーをコンテナ化 Agent の `conf.d` フォルダーにマウントします。 +2. ホストの `conf.d/` フォルダをコンテナ化された Agent の `conf.d` フォルダにマウントします。 + + Datadog Operator の場合: + ```yaml + spec: + override: + nodeAgent: + volumes: + - hostPath: + path: /conf.d + name: confd + ``` + + Helm の場合: + ```yaml + agents: + volumes: + - hostPath: + path: /conf.d + name: confd + volumeMounts: + - name: confd + mountPath: /conf.d + ``` + {{% /tab %}} {{% tab "ConfigMap" %}} -ConfigMap で: +ConfigMap で、次のようにします。 ```yaml kind: ConfigMap @@ -516,23 +637,23 @@ data: ``` {{% /tab %}} -{{% tab "Key-value store" %}} +{{% tab "key-value ストア" %}} -The following etcd commands create a Postgres integration template with a custom `password` parameter: +以下の etcd コマンドは、カスタム `password` パラメーターを使用して Postgres インテグレーションテンプレートを作成します。 ```conf etcdctl mkdir /datadog/check_configs/postgres -etcdctl set /datadog/check_configs/postgres/check_names '["postgresql"]' +etcdctl set /datadog/check_configs/postgres/check_names '["postgres"]' etcdctl set /datadog/check_configs/postgres/init_configs '[{}]' etcdctl set /datadog/check_configs/postgres/instances '[{"host": "%%host%%","port":"5432","username":"datadog","password":"%%env_PG_PASSWORD%%"}]' ``` -3 つの値がそれぞれリストであることに注目してください。オートディスカバリーは、共有リストインデックスに基づいて、リスト項目をインテグレーション構成に集約します。この例の場合は、`check_names[0]`、`init_configs[0]`、および `instances[0]` から最初 (かつ唯一) のチェック構成が作成されます。 +3 つの値はいずれもリストであることに注意してください。Autodiscovery は、共有リストインデックスに基づいてインテグレーション構成にリスト項目を組み立てます。この場合、`check_names[0]`、`init_configs[0]`、および `instances[0]` から最初 (かつ唯一) のチェック構成を構成します。 {{% /tab %}} {{% tab "Datadog Operator" %}} -`datadog-agent.yaml` で: +`datadog-agent.yaml` で、次のようにします。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -548,7 +669,7 @@ spec: nodeAgent: extraConfd: configDataMap: - postgresql.yaml: |- + postgres.yaml: |- ad_identifiers: - postgres init_config: @@ -558,17 +679,17 @@ spec: username: "datadog" password: "%%env_PG_PASSWORD%%" ``` -As a result, the Agent contains a `postgresql.yaml` file with the above configuration in the `conf.d` directory. +その結果、Agent には上記の構成を持つ `postgres.yaml` ファイルが `conf.d` ディレクトリに格納されます。 {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` で: +`datadog-values.yaml` で、次のようにします。 ```yaml datadog: confd: - postgresql.yaml: |- + postgres.yaml: |- ad_identifiers: - postgres init_config: @@ -578,18 +699,18 @@ datadog: username: "datadog" password: "%%env_PG_PASSWORD%%" ``` -As a result, the Agent contains a `postgresql.yaml` file with the above configuration in the `conf.d` directory. +その結果、Agent には上記の構成を持つ `postgres.yaml` ファイルが `conf.d` ディレクトリに格納されます。 {{% /tab %}} {{< /tabs >}} -These templates make use of [Autodiscovery template variables][16]: +これらのテンプレートは、次の [Autodiscovery テンプレート変数][16] を使用します。 - `%%host%%` には、コンテナの IP が動的に設定されます。 -- `%%env_PG_PASSWORD%%` references an environment variable named `PG_PASSWORD` as seen by the Agent process. +- `%%env_PG_PASSWORD%%`は、Agent プロセスから見た `PG_PASSWORD` という名前の環境変数を参照します。 -For more examples, including how to configure multiple checks for multiple sets of containers, see [Autodiscovery: Scenarios & Examples][24]. +複数のコンテナセットに対して複数のチェックを設定する方法など、さらに多くの例については [Autodiscovery: シナリオと例][24] を参照してください。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -618,4 +739,6 @@ For more examples, including how to configure multiple checks for multiple sets [23]: /ja/containers/guide/autodiscovery-management [24]: /ja/containers/guide/autodiscovery-examples [25]: /ja/integrations/istio/ -[26]: /ja/integrations/postgres \ No newline at end of file +[26]: /ja/integrations/postgres +[27]: /ja/getting_started/integrations/#per-check-tag-configuration +[28]: https://github.com/DataDog/datadog-agent/blob/main/comp/core/autodiscovery/providers/names/provider_names.go#L10-L38 \ No newline at end of file diff --git a/content/ja/database_monitoring/connect_dbm_and_apm.md b/content/ja/database_monitoring/connect_dbm_and_apm.md index 612ccc93b30..d2a9fc3b21b 100644 --- a/content/ja/database_monitoring/connect_dbm_and_apm.md +++ b/content/ja/database_monitoring/connect_dbm_and_apm.md @@ -4,115 +4,156 @@ aliases: further_reading: - link: https://www.datadoghq.com/blog/link-dbm-and-apm/ tag: ブログ - text: DBM と APM のテレメトリーをシームレスに相関させ、エンドツーエンドのクエリパフォーマンスを把握する + text: DBM と APM のテレメトリを相関させ、エンドツーエンドのクエリパフォーマンスを把握する title: Database Monitoring とトレースの相関付け --- +このガイドでは、[Database Monitoring][1] を構成し、[APM][2] を使用していることを前提にしています。APM と DBM を接続すると、APM のトレース識別子が DBM のデータ収集に挿入され、これら 2 つのデータソースを相関させることができます。これにより、APM 製品ではデータベース情報を、DBM 製品では APM データを表示する製品機能が有効になります。 -このガイドは、[データベースモニタリング][1]を構成し、[APM][2] を使用していることを前提にしています。APM と DBM を接続すると、APM のトレース識別子が DBM のデータ収集に挿入され、これら 2 つのデータソースを相関させることができます。これにより、APM 製品ではデータベース情報を、DBM 製品では APM データを表示する製品機能が実現します。 +## はじめに {#before-you-begin} -## はじめに - -対応データベース: -Postgres、MySQL、SQL Server、Oracle +サポートされるデータベース +: Postgres、MySQL、SQL Server、Oracle、MongoDB サポート対象の Agent バージョン -: 7.46+ +: 7.46 以上 データプライバシー -: SQL コメントの伝播を有効にすると、潜在的に機密データ (サービス名) がデータベースに保存され、それにアクセスする権限を与えられた他の第三者がそのデータにアクセスできるようになります。 - - -APM トレーサーインテグレーションは、アプリケーションからデータベースに渡される情報量を制御する*伝播モード*をサポートしています。 - -- `full` モードは完全なトレース情報をデータベースに送信し、DBM 内で個々のトレースを調査できるようにします。これはほとんどのインテグレーションで推奨されるソリューションです。 -- `service` モードはサービス名を送信し、データベースの負荷に貢献しているサービスを把握することができます。これは Oracle アプリケーションでサポートされている唯一のモードです。 -- `disabled` モードは伝播を無効にし、アプリケーションからの情報を送信しません。 - -| DD_DBM_PROPAGATION_MODE | Postgres | MySQL | SQL Server | Oracle | -|:------------------------|:---------:|:-----------:|:----------:|:---------:| -| `full` | {{< X >}} | {{< X >}} * | {{< X >}} | {{< X >}} | -| `service` | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | - -\* Aurora MySQL の完全伝播モードにはバージョン 3 が必要です。 - -**サポート対象のアプリケーショントレーサーとドライバー** - -| 言語 | ライブラリまたはフレームワーク | Postgres | MySQL | SQL Server | Oracle | -|:-----------------------------------------|:-----------------------|:---------:|:---------:|:-------------------:|:-------------------:| -| **Go:** [dd-trace-go][3] >= 1.44.0 | | | | | | -| | [database/sql][4] | {{< X >}} | {{< X >}} | `service` モードのみ | `service` モードのみ | -| | [sqlx][5] | {{< X >}} | {{< X >}} | `service` モードのみ | `service` モードのみ | -| **Java** [dd-trace-java][23] >= 1.11.0 | | | | | | -| | [jdbc][22] | {{< X >}} | {{< X >}} | {{< X >}} ** | {{< X >}} *** | -| **Ruby:** [dd-trace-rb][6] >= 1.8.0 | | | | | | -| | [pg][8] | {{< X >}} | | | | -| | [mysql2][7] | | {{< X >}} | | | -| **Python:** [dd-trace-py][11] >= 1.9.0 | | | | | | -| | [psycopg2][12] | {{< X >}} | | | | -| [dd-trace-py][11] >= 2.9.0 | | | | | | -| | [asyncpg][27] | {{< X >}} | | | | -| | [aiomysql][28] | | {{< X >}} | | | -| | [mysql-connector-python][29] | | {{< X >}} | | | -| | [mysqlclient][30] | | {{< X >}} | | | -| | [pymysql][31] | | {{< X >}} | | | -| **.NET** [dd-trace-dotnet][15] >= 2.35.0 | | | | | | -| | [Npgsql][16] * | {{< X >}} | | | | -| | [MySql.Data][17] * | | {{< X >}} | | | -| | [MySqlConnector][18] * | | {{< X >}} | | | -| | [System.Data.SqlClient][24] * | | | {{< X >}} ** | | -| | [Microsoft.Data.SqlClient][32] * | | | {{< X >}} ** | | -| **PHP** [dd-trace-php][19] >= 0.86.0 | | | | | | -| | [pdo][20] | {{< X >}} | {{< X >}} | | | -| | [MySQLi][21] | | {{< X >}} | | | -| **Node.js:** [dd-trace-js][9] >= 3.17.0 | | | | | | -| | [postgres][10] | {{< X >}} | | | | -| | [mysql][13] | | {{< X >}} | | | -| | [mysql2][14] | | {{< X >}} | | | - -\* [CommandType.StoredProcedure][25] はサポートされていません - -\*\* Java/.NET トレーサーにおける SQL Server のフルモード: - - インスツルメンテーションは、クライアントがクエリを発行する際に `SET context_info` コマンドを実行し、これによりデータベースとの追加のラウンドトリップが発生します。 - - アプリケーションが `context_info` を使用してインスツルメンテーションを行っている場合、APM トレーサーによって上書きされます。 - - 前提条件: - - Agent バージョン 7.55.0 以降 - - Java トレーサーバージョン 1.39.0 以降 - - .NET トレーサーバージョン 3.3 以降 - -\*\*\* Java 向け Full mode の Oracle: - - このインスツルメンテーションは `V$SESSION.ACTION` を上書きします。 - - 必要条件: Java トレーサー 1.45 以上 - -## セットアップ -最高のユーザーエクスペリエンスを得るために、アプリケーションで以下の環境変数が設定されていることを確認してください。 +: SQL コメントの伝播を有効にすると、潜在的に機密データ (サービス名) がデータベースに保存され、それにアクセスする権限を与えられた、ほかの第三者がそのデータにアクセスできるようになります。 -``` + +Datadog SDK インテグレーションは、アプリケーションからデータベースに渡される情報量を制御する*伝播モード*をサポートしています。 + +| 伝播モード | 説明 | +|:-----------------|:------------| +| `full` | 完全なトレース情報をデータベースに送信し、DBM 内で個々のトレースを調査できるようにします。これはほとんどのインテグレーションで推奨されるソリューションです。| +| `service` | サービス名を送信し、どのサービスがデータベースの負荷に寄与しているかを理解できるようにします。| +| `disabled` | 伝播を無効にし、アプリケーションからの情報を送信しません。| + + +**サポートされるデータベース** + +{{< tabs >}} +{{% tab "Postgres" %}} + +| 言語 | 最小トレーサーバージョン | ライブラリ/フレームワーク | モード | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `full`
    `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) 1.11.0 以上 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) 2.35.0 以上 | [Npgsql](https://www.nuget.org/packages/npgsql) | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) 3.17.0 以上 | [postgres](https://node-postgres.com/) | `full`
    `service` | +| **PHP** | [dd-trace-php](https://github.com/DataDog/dd-trace-php) 0.86.0 以上 | [pdo](https://www.php.net/manual/en/book.pdo.php) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) 1.9.0 以上 | [psycopg2](https://www.psycopg.org/docs/index.html)
    [psycopg](https://www.psycopg.org/psycopg3/) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) 2.9.0 以上 | [asyncpg](https://pypi.org/project/asyncpg/) | `full`
    `service` | +| **Ruby** | [dd-trace-rb](https://github.com/dataDog/dd-trace-rb) 1.8.0 以上 | [pg](https://github.com/ged/ruby-pg) | `full`
    `service` | + +**注**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set) は .NET ドライバーではサポートされていません。 + +{{% /tab %}} + +{{% tab "MySQL" %}} + +| 言語 | 最小トレーサーバージョン | ライブラリ/フレームワーク | モード | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `full`
    `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) 1.11.0 以上 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) 2.35.0 以上 | [MySql.Data](https://www.nuget.org/packages/MySql.Data)
    [MySqlConnector](https://www.nuget.org/packages/MySqlConnector) | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) 3.17.0 以上 | [mysql](https://github.com/mysqljs/mysql)
    [mysql2](https://github.com/sidorares/node-mysql2) | `full`
    `service` | +| **PHP** | [dd-trace-php](https://github.com/DataDog/dd-trace-php) 0.86.0 以上 | [pdo](https://www.php.net/manual/en/book.pdo.php)
    [MySQLi](https://www.php.net/manual/en/book.mysqli.php) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) 2.9.0 以上 | [aiomysql](https://pypi.org/project/aiomysql/)
    [mysql-connector-python](https://pypi.org/project/mysql-connector-python/)
    [mysqlclient](https://pypi.org/project/mysqlclient/)
    [pymysql](https://github.com/PyMySQL/PyMySQL) | `full`
    `service` | +| **Ruby** | [dd-trace-rb](https://github.com/dataDog/dd-trace-rb) 1.8.0 以上 | [mysql2](https://github.com/brianmario/mysql2) | `full`
    `service` | + +**注**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set) は .NET ドライバーではサポートされていません。 + +**注**: Aurora MySQL の完全伝播モードにはバージョン 3 が必要です。 + +{{% /tab %}} + +{{% tab "SQL Server" %}} + +| 言語 | 最小トレーサーバージョン | ライブラリ/フレームワーク | モード | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) 1.11.0 以上 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | +| **.NET** | [dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) 2.35.0 以上 | [System.Data.SqlClient](https://learn.microsoft.com/sql/connect/ado-net/microsoft-ado-net-sql-server)
    [Microsoft.Data.SqlClient](https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace) | `full`
    `service` | + +**注**: [CommandType.StoredProcedure](https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set) は .NET ドライバーではサポートされていません。 + +Java と .NET の `full` モードの場合: + +
    アプリケーションで context_info をインスツルメンテーションに使用している場合、Datadog SDK はそれを上書きします。
    + +- インスツルメンテーションは、クライアントがクエリを発行する際に `SET context_info` コマンドを実行し、これによりデータベースとの追加のラウンドトリップが発生します。 +- 前提条件: + - Agent バージョン 7.55.0 以降 + - Java トレーサーバージョン 1.39.0 以降 + - .NET トレーサーバージョン 3.3 以降 + +{{% /tab %}} + +{{% tab "Oracle" %}} + +| 言語 | 最小トレーサーバージョン | ライブラリ/フレームワーク | モード | +|:---------|:-------------------|:------------------|:-----| +| **Go** | [dd-trace-go v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2) | [database/sql](https://pkg.go.dev/database/sql)
    [sqlx](https://pkg.go.dev/github.com/jmoiron/sqlx) | `service` | +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) 1.11.0 以上 | [jdbc](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) | `full`
    `service` | + +Java の `full` モードの場合: +- このインスツルメンテーションは `V$SESSION.ACTION` を上書きします。 +- 前提条件: Java トレーサー 1.45 以降 + +{{% /tab %}} + +{{% tab "MongoDB" %}} + +| 言語 | 最小トレーサーバージョン | ライブラリ/フレームワーク | モード | +|:---------|:-------------------|:------------------|:-----| +| **Java** | [dd-trace-java](https://github.com/DataDog/dd-trace-java) 1.58.0 以上 | [mongo-java-driver](https://www.mongodb.com/docs/drivers/java/sync/current/) v3.8+ | `full`
    `service` | +| **Node.js** | [dd-trace-js](https://github.com/DataDog/dd-trace-js) 5.80.0 以上 | [mongodb](https://github.com/mongodb/node-mongodb-native) | `full`
    `service` | +| **Python** | [dd-trace-py](https://github.com/DataDog/dd-trace-py) 3.5.0 以上 | [pymongo](https://pymongo.readthedocs.io/en/stable/) | `full`
    `service` | + +{{% /tab %}} + +{{< /tabs >}} + +## セットアップ {#setup} +アプリケーションに以下の環境変数を設定します。 + +```shell DD_SERVICE=(application name) DD_ENV=(application environment) DD_VERSION=(application version) ``` +これらのタグは、APM 相関ビューおよび DBM アクティブ接続の内訳でサービスを識別します。 + +Datadog では、Agent のバージョンが `7.63` 以上の場合、難読化モードを `obfuscate_and_normalize` に設定することを推奨しています。APM エージェント構成ファイルの `apm_config` セクションに以下のパラメーターを追加します。 + +```yaml + sql_obfuscation_mode: "obfuscate_and_normalize" +``` + +
    難読化モードを変更すると、正規化された SQL テキストが変更される可能性があります。APM トレース内の SQL テキストに基づくモニターがある場合は、それらを更新する必要が生じることがあります。
    + {{< tabs >}} {{% tab "Go" %}} -アプリの依存関係を更新して、[dd-trace-go@v1.44.0][1] 以上を含むようにします。 +アプリの依存関係を更新して、[dd-trace-go v2][1] を含むようにします。{{% tracing-go-v2 %}} + ```shell -go get gopkg.in/DataDog/dd-trace-go.v1@v1.44.0 # 1.x -# go get github.com/DataDog/dd-trace-go/v2 # 2.x +go get github.com/DataDog/dd-trace-go/v2 # 2.x ``` -コードを更新して `contrib/database/sql` パッケージをインポートします。 +`contrib/database/sql` パッケージをインポートするようにコードを更新します。 + ```go import ( "database/sql" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" // 1.x - sqltrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql" // 1.x - // "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" // 2.x - // sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" // 2.x + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" + sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" ) ``` -以下のいずれかの方法で、データベースモニタリングの伝播機能を有効にします。 +以下のいずれかの方法で、Database Monitoring の伝播機能を有効にします。 - 環境変数: `DD_DBM_PROPAGATION_MODE=full` @@ -121,68 +162,69 @@ import ( sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull), sqltrace.WithService("my-db-service")) ``` -- `sqltrace.Open` のコードを使用する: +- `sqltrace.Open` でコードを使用する: ```go sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithService("my-db-service")) db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable", sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) if err != nil { - log.Fatal(err) + log.Fatal(err) } ``` 完全な例: + ```go import ( - "database/sql" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" // 1.x - sqltrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql" // 1.x - // "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" // 2.x - // sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" // 2.x + "database/sql" + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" + sqltrace "github.com/DataDog/dd-trace-go/contrib/database/sql/v2" ) func main() { - // まず、ドライバの登録時に dbm 伝播モードを設定します。これは sqltrace.Open で行うこともでき、 - // この機能をより詳細に制御できることに注意してください。 - sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) - - // 続いて、Open へのコール。 - db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable") - if err != nil { - log.Fatal(err) - } - - // そして、データベース/SQL パッケージを通常通り、トレースしながら使い続けます。 - rows, err := db.Query("SELECT name FROM users WHERE age=?", 27) - if err != nil { - log.Fatal(err) - } - defer rows.Close() + // The first step is to set the dbm propagation mode when registering the driver. Note that this can also + // be done on sqltrace.Open for more granular control over the feature. + sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithDBMPropagation(tracer.DBMPropagationModeFull)) + + // Followed by a call to Open. + db, err := sqltrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable") + if err != nil { + log.Fatal(err) + } + + // Then, we continue using the database/sql package as we normally would, with tracing. + rows, err := db.Query("SELECT name FROM users WHERE age=?", 27) + if err != nil { + log.Fatal(err) + } + defer rows.Close() } ``` -[1]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1 +[1]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2 {{% /tab %}} {{% tab "Java" %}} -[Java トレーシング][1]のインスツルメンテーションの説明に従い、Agent の `1.11.0` またはそれ以上のバージョンをインストールします。 +[Java トレーシング][1] のインスツルメンテーションの説明に従い、Agent の `1.11.0` 以上のバージョンをインストールします。 -また、`jdbc-datasource` [インスツルメンテーション][2]を有効にする必要があります。 +また、`jdbc-datasource` [インスツルメンテーション][2] を有効にする必要があります。 -以下の**いずれか**の方法で、データベースモニタリングの伝播機能を有効にします。 +以下の**いずれか**の方法で、Database Monitoring の伝播機能を有効にします。 - システムプロパティ `dd.dbm.propagation.mode=full` を設定する - 環境変数 `DD_DBM_PROPAGATION_MODE=full` を設定する 完全な例: -``` -# 必要なシステムプロパティでJava Agentを起動します + +```shell +# Start the Java Agent with the required system properties java -javaagent:/path/to/dd-java-agent.jar -Ddd.dbm.propagation.mode=full -Ddd.integration.jdbc-datasource.enabled=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar ``` アプリケーションで機能をテストします。 + ```java public class Application { public static void main(String[] args) { @@ -195,21 +237,23 @@ public class Application { stmt.close(); connection.close(); } catch (SQLException exception) { - // 例外ロジック + // exception logic } } } ``` **トレーサーバージョン 1.44 以上**: -Postgres でのプリペアドステートメントのトレースを有効にするには、以下のいずれかの方法を使用してください: +Postgres でのプリペアドステートメントのトレースを有効にするには、以下の**いずれか**の方法を使用してください。 - システムプロパティ `dd.dbm.trace_prepared_statements=true` を設定する -- 環境変数 `export DD_DBM_TRACE_PREPARED_STATEMENTS=true` を設定する  +- 環境変数 `export DD_DBM_TRACE_PREPARED_STATEMENTS=true` を設定する -**注**: プリペアドステートメントのインスツルメンテーションは `Application` プロパティを上書きし、データベースへの追加の往復 (ラウンドトリップ) が発生します。この追加の往復はレイテンシーに与える影響がごくわずかです。 +**注**: プリペアドステートメントのインスツルメンテーションは、`Application` プロパティを `_DD_overwritten_by_tracer` というテキストで上書きし、データベースへの追加のラウンドトリップが発生します。この追加のラウンドトリップがレイテンシーに与える影響はごくわずかです。 -**トレーサーバージョン 1.44 未満**: -Postgres と MySQL では、`full` モードでプリペアドステートメントはサポートされていません。そのため、プリペアドステートメントを使用するすべての JDBC API 呼び出しは自動的に `service` モードにダウングレードされます。ほとんどの Java SQL ライブラリはデフォルトでプリペアドステートメントを使用するため、ほとんどの Java アプリケーションは `service` モードのみを使用できることを意味します。 +
    プリペアドステートメントのトレースを有効にすると、Amazon RDS Proxy を使用する際に接続の固定が増加し、接続プールの効率が低下する可能性があります。詳細については、RDS Proxy の接続の固定を参照してください。
    + +**トレーサーのバージョンが 1.44 未満の場合**: +Postgres と MySQL では、`full` モードでプリペアドステートメントはサポートされていません。そのため、プリペアドステートメントを使用するすべての JDBC API 呼び出しは自動的に `service` モードにダウングレードされます。ほとんどの Java SQL ライブラリはデフォルトでプリペアドステートメントを使用するため、**ほとんどの** Java アプリケーションは `service` モードのみを使用できることを意味します。 [1]: /ja/tracing/trace_collection/dd_libraries/java/ [2]: /ja/tracing/trace_collection/compatibility/java/#data-store-compatibility @@ -218,40 +262,41 @@ Postgres と MySQL では、`full` モードでプリペアドステートメン {{% tab "Ruby" %}} -Gemfile 内で、[dd-trace-rb][1] をバージョン `1.8.0` 以上にインストールまたは更新してください: +Gemfile で [dd-trace-rb][1] をバージョン`1.8.0` 以上にインストールまたは更新してください。 ```rb source 'https://rubygems.org' gem 'datadog' # Use `'ddtrace', '>= 1.8.0'` if you're using v1.x -# 使用状況に応じて +# Depends on your usage gem 'mysql2' gem 'pg' ``` -以下のいずれかの方法を使用して、データベースモニタリングのプロパゲーション機能を有効にしてください: +以下のいずれかの方法で、Database Monitoring の伝播機能を有効にします。 1. 環境変数: `DD_DBM_PROPAGATION_MODE=full` -2. オプション `comment_propagation` (デフォルト: `ENV['DD_DBM_PROPAGATION_MODE']`)、[mysql2][2] または [pg][3] 用: +2. オプション`comment_propagation` (デフォルト: `ENV['DD_DBM_PROPAGATION_MODE']`)、[mysql2][2] または [pg][3] 用: ```rb - Datadog.configure do |c| - c.tracing.instrument :mysql2, comment_propagation: 'full' - c.tracing.instrument :pg, comment_propagation: 'full' - end + Datadog.configure do |c| + c.tracing.instrument :mysql2, comment_propagation: 'full' + c.tracing.instrument :pg, comment_propagation: 'full' + end ``` 完全な例: + ```rb require 'mysql2' require 'ddtrace' Datadog.configure do |c| - c.service = 'billing-api' - c.env = 'production' - c.version = '1.3-alpha' + c.service = 'billing-api' + c.env = 'production' + c.version = '1.3-alpha' - c.tracing.instrument :mysql2, comment_propagation: ENV['DD_DBM_PROPAGATION_MODE'] + c.tracing.instrument :mysql2, comment_propagation: ENV['DD_DBM_PROPAGATION_MODE'] end client = Mysql2::Client.new(:host => "localhost", :username => "root") @@ -266,40 +311,69 @@ client.query("SELECT 1;") {{% tab "Python" %}} -アプリ依存関係を更新して、[dd-trace-py>=1.9.0][1] を含めてください: +アプリの依存関係を更新して、[dd-trace-py>=1.9.0][1] を含むようにします。 + ``` pip install "ddtrace>=1.9.0" ``` -[psycopg2][2] をインストールします: +Postgres の場合は、[psycopg2][2] をインストールします。 + ``` pip install psycopg2 ``` -次の環境変数を設定して、データベースモニタリングのプロパゲーション機能を有効にします: +MongoDB の場合は、pymongo をインストールします。 + +``` +pip install pymongo +``` + +**注**: MongoDB のサポートには `dd-trace-py` 3.5.0 以上が必要です。アップグレードが必要な場合: `pip install "ddtrace>=3.5.0"`。 + +以下の環境変数を設定して、Database Monitoring の伝播機能を有効にします。 - `DD_DBM_PROPAGATION_MODE=full` -完全な例: -```python +Postgres の例: +```python import psycopg2 POSTGRES_CONFIG = { -"host": "127.0.0.1", -"port": 5432, -"user": "postgres_user", -"password": "postgres_password", -"dbname": "postgres_db_name", + "host": "127.0.0.1", + "port": 5432, + "user": "postgres_user", + "password": "postgres_password", + "dbname": "postgres_db_name", } -# postgres DB に接続 +# connect to postgres db conn = psycopg2.connect(**POSTGRES_CONFIG) cursor = conn.cursor() -# SQL クエリを実行 +# execute sql queries cursor.execute("select 'blah'") cursor.executemany("select %s", (("foo",), ("bar",))) ``` +MongoDB の例: + +```python +from pymongo import MongoClient + +# Connect to MongoDB +client = MongoClient('mongodb://localhost:27017/') +db = client['test_database'] +collection = db['test_collection'] + +# Insert a document +collection.insert_one({"name": "test", "value": 1}) + +# Query documents +results = collection.find({"name": "test"}) +for doc in results: + print(doc) +``` + [1]: https://ddtrace.readthedocs.io/en/stable/release_notes.html [2]: https://ddtrace.readthedocs.io/en/stable/integrations.html#module-ddtrace.contrib.psycopg @@ -308,17 +382,17 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab ".NET" %}}
    -この機能を利用するには、.NET サービスで自動インスツルメンテーションが有効になっている必要があります。 +この機能を使用するには、.NET サービスの自動インスツルメンテーションが有効である必要があります。
    -[.NET Framework のトレース手順][1]または [.NET Core のトレース手順][2]に従って、自動インスツルメンテーションパッケージをインストールし、サービスに対するトレースを有効にしてください。 +[.NET Framework のトレース手順][1] または [.NET Core のトレース手順][2] に従って、自動インスツルメンテーションパッケージをインストールし、サービスのトレースを有効にしてください。 -サポートされるクライアントライブラリを使用していることを確認してください。例えば、`Npgsql` などです。 +サポートされているクライアントライブラリを使用していることを確認します。たとえば、`Npgsql` です。 -以下の環境変数を設定して、データベースモニタリングのプロパゲーション機能を有効にします: - - Postgres および MySQL: `DD_DBM_PROPAGATION_MODE=full` - - SQL Server: `DD_DBM_PROPAGATION_MODE=service` または Java と .NET のトレーサーで `DD_DBM_PROPAGATION_MODE=full` - - Oracle: `DD_DBM_PROPAGATION_MODE=service` +以下の環境変数を設定して、Database Monitoring の伝播機能を有効にします。 + - Postgres および MySQL の場合: `DD_DBM_PROPAGATION_MODE=full` + - SQL Server の場合: `DD_DBM_PROPAGATION_MODE=service` または `DD_DBM_PROPAGATION_MODE=full` と Java および .NET トレーサー + - Oracle の場合: `DD_DBM_PROPAGATION_MODE=service` [1]: /ja/tracing/trace_collection/dd_libraries/dotnet-framework [2]: /ja/tracing/trace_collection/dd_libraries/dotnet-core @@ -328,14 +402,14 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab "PHP" %}}
    -この機能を利用するには、PHP サービスでトレーサー拡張が有効になっている必要があります。 +この機能を使用するには、PHP サービスでトレーサー拡張機能が有効になっている必要があります。
    -[PHP トレーシングの説明][1]に従って自動インスツルメンテーションパッケージをインストールし、サービスでトレーシングを有効にしてください。 +[PHP トレース手順][1] に従って、自動インスツルメンテーションパッケージをインストールし、サービスのトレースを有効にしてください。 -サポートされているクライアントライブラリ (例: `PDO` など) を使用していることを確認してください。 +サポートされているクライアントライブラリを使用していることを確認します。たとえば、`PDO` です。 -次の環境変数を設定して、データベースモニタリングのプロパゲーション機能を有効にします: +以下の環境変数を設定して、Database Monitoring の伝播機能を有効にします。 - `DD_DBM_PROPAGATION_MODE=full` [1]: https://docs.datadoghq.com/ja/tracing/trace_collection/dd_libraries/php?tab=containers @@ -344,30 +418,31 @@ cursor.executemany("select %s", (("foo",), ("bar",))) {{% tab "Node.js" %}} -[dd-trace-js][1] を `3.17.0` より新しいバージョン (あるいはサポート終了となった Node.js バージョン 12 を使用している場合は `2.30.0` 以上) にインストールまたは更新してください: +`3.17.0` より新しいバージョン (あるいはサポート終了となった Node.js バージョン 12 を使用している場合は `2.30.0` 以上) の [dd-trace-js][1] をインストールするか、これらのバージョンに更新してください。 -``` +```shell npm install dd-trace@^3.17.0 ``` -コードを更新し、トレーサーをインポートして初期化してください: +トレーサーをインポートして初期化するようにコードを更新します。 + ```javascript -// インスツルメンテーション対象のモジュールをインポートする前に、この行を必ず配置してください。 +// This line must come before importing any instrumented module. const tracer = require('dd-trace').init(); ``` -以下のいずれかの方法で、データベースモニタリングのプロパゲーション機能を有効にします: -* 環境変数を設定する +以下のいずれかの方法で、Database Monitoring の伝播機能を有効にします。 +* 以下の環境変数を設定します: ``` DD_DBM_PROPAGATION_MODE=full ``` -* トレーサーで `dbmPropagationMode` オプションを使用する (デフォルト値は `ENV['DD_DBM_PROPAGATION_MODE']`) +* SDK を `dbmPropagationMode` オプション (デフォルト: `ENV['DD_DBM_PROPAGATION_MODE']`) を使用するように設定します。 ```javascript const tracer = require('dd-trace').init({ dbmPropagationMode: 'full' }) ``` -* インテグレーションレベルのみで有効にする +* インテグレーションレベルのみで有効にします。 ```javascript const tracer = require('dd-trace').init(); tracer.use('pg', { @@ -377,23 +452,24 @@ const tracer = require('dd-trace').init(); 完全な例: + ```javascript const pg = require('pg') const tracer = require('dd-trace').init({ dbmPropagationMode: 'full' }) const client = new pg.Client({ -user: 'postgres', -password: 'postgres', -database: 'postgres' + user: 'postgres', + password: 'postgres', + database: 'postgres' }) client.connect(err => { -console.error(err); -process.exit(1); + console.error(err); + process.exit(1); }); client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { -// 結果を処理する + // handle result }) ``` @@ -403,47 +479,62 @@ client.query('SELECT $1::text as message', ['Hello world!'], (err, result) => { {{< /tabs >}} -## DBM で APM の接続を調査する +有効にした後に伝播を無効にするには、`DD_DBM_PROPAGATION_MODE=disabled` を設定します。 + +## インテグレーションを確認する {#verify-the-integration} + +インテグレーションが機能していることを確認するには、次のようにします。 +1. インスツルメンテーションされたアプリケーションを実行し、データベースクエリを実行します。 +1. Datadog で、[**Database Monitoring > Query Samples**][37] に移動します。 +1. クエリサンプルに **APM** 相関バッジが表示されることを確認します。 + +## DBM で APM 接続を調べる {#explore-the-apm-connection-in-dbm} + +### 呼び出し元の APM サービスとアクティブなデータベース接続と関連付ける {#attribute-active-database-connections-to-the-calling-apm-services} -### アクティブなデータベース接続を呼び出し元 APM サービスに関連付ける +{{< img src="database_monitoring/dbm_apm_active_connections_breakdown.png" alt="データベースへのアクティブな接続を、その接続元の APM サービス別に表示します。">}} -{{< img src="database_monitoring/dbm_apm_active_connections_breakdown.png" alt="APM サービスごとに分類されたデータベースのアクティブな接続状況を表示します。">}} +特定のホストのアクティブな接続を、リクエスト元の上流の APM サービス別に表示します。データベースへの負荷を個々のサービスと関連付けて、どのサービスがデータベースで最もアクティブであるかを把握できます。最もアクティブな上流サービスのサービスページに移動して、さらに詳しく調べます。 -特定のホストに対するアクティブな接続を、リクエストを送信する上流の APM サービスごとに分類して表示します。どのサービスがデータベース上で最もアクティブであるかを把握できるように、データベースへの負荷を各サービスに紐付けることができます。最もアクティブな上流サービスのサービスページに移動し、調査を続行できます。 +### 呼び出し元の APM サービスでデータベースホストをフィルターする {#filter-your-database-hosts-by-the-apm-services-that-call-them} -### 呼び出し元となる APM サービス別にデータベースホストをフィルタリングする +{{< img src="database_monitoring/dbm_filter_by_calling_service.png" alt="呼び出し元の APM サービスでデータベースホストをフィルターします。">}} -{{< img src="database_monitoring/dbm_filter_by_calling_service.png" alt="呼び出し元 APM サービスごとにデータベースホストをフィルタリングします。">}} +特定の APM サービスが依存しているデータベースホストのみを表示するように、データベースリストをフィルターします。下流の依存関係にサービスのパフォーマンスに影響を与える可能性のあるブロックアクティビティがあるかどうかを特定します。 -Database List をすばやくフィルタして、特定の APM サービスが依存しているデータベースホストのみを表示できます。下流の依存関係でブロッキングアクティビティが発生していないかを簡単に確認し、サービスパフォーマンスへの影響を把握できます。 +### クエリサンプルに関連するトレースを表示する {#view-the-associated-trace-for-a-query-sample} -### クエリサンプルに関連するトレースを表示する +{{< img src="database_monitoring/dbm_query_sample_trace_preview.png" alt="調査対象のクエリサンプルの生成元である、サンプリングされた APM トレースをプレビューします。">}} -{{< img src="database_monitoring/dbm_query_sample_trace_preview.png" alt="検証中のクエリサンプルが生成されたもとの APM トレースをプレビューします。">}} +Database Monitoring で [クエリサンプル][37] を表示する際、関連するトレースが APM によってサンプリングされている場合は、DBM サンプルを APM トレースのコンテキストで確認できます。これにより、クエリの実行計画や過去のパフォーマンスを含む DBM テレメトリと、インフラストラクチャー内のスパンの系統を組み合わせて、データベース上の変更がアプリケーションパフォーマンスの低下の原因になっているかどうかを理解することができます。 -Database Monitoring でクエリサンプルを閲覧する際、関連するトレースが APM によってサンプリングされている場合は、DBM サンプルを APM トレースのコンテキストで確認できます。これにより、Explain Plan やクエリの履歴パフォーマンスなどの DBM のテレメトリーを、インフラストラクチャー内でのスパンの系譜と併せて確認し、データベースの変更がアプリケーションパフォーマンス低下の原因になっているかを把握することができます。 +## APM での DBM 接続を調査する {#explore-the-dbm-connection-in-apm} -## APM での DBM 接続を調査する +### APM サービスの下流データベースホストを可視化する {#visualize-the-downstream-database-hosts-of-apm-services} -### APM サービスの下流データベースホストを可視化する +特定のサービスの APM ページでは、Database Monitoring によって識別された、そのサービスの直接的なダウンストリームデータベース依存関係を表示し、ノイジーネイバーによって負荷が偏っている可能性のあるホストを判別できます。サービスのデータベース依存関係を表示するには、次のようにします。 +1. [Software Catalog][26] でサービスを選択して詳細パネルを開きます。 +1. パネルで [{{< ui >}}Service Page{{< /ui >}}] (サービスページ) を選択します。 +1. [Service] (サービス) ページで、[{{< ui >}}Databases{{< /ui >}}] (データベース) セクションを選択します。 +1. [Databases] セクション内で [{{< ui >}}Databases{{< /ui >}}] タブを選択します。 -{{< img src="database_monitoring/dbm_apm_service_page_db_host_list.png" alt="サービスページから、APM サービスが依存している下流のデータベースホストを可視化します。">}} +### スパンの期間を可視化し、クエリの詳細を表示する {#visualize-span-durations-and-view-query-details} -特定のサービスに対応する APM ページでは、Database Monitoring によって識別された、そのサービスが依存する直接の下流データベースを表示します。ノイジー・ネイバー (同一環境上で動く他のアプリケーションなど) によって負荷が偏っていないかを迅速に判断できます。サービスのページを表示するには、[Service Catalog][26] で当該サービスをクリックし詳細パネルを開いた上で、パネル内の **View Service Page** をクリックしてください。 +APM サービスページの [{{< ui >}}Databases{{< /ui >}}] セクションで [{{< ui >}}Queries{{< /ui >}}] (クエリ) タブを選択して、レイテンシー外れ値と選択した期間のすべてのクエリのリストを表示します。テーブル内のクエリを選択してクエリパネルを表示し、診断、エラーの詳細、およびトレース情報にアクセスします。 -### トレース内のデータベースクエリに対する Explain Plan を利用して最適化の可能性を特定する +### トレースでデータベースクエリの実行計画を使用して、最適化の可能性を特定する {#identify-potential-optimizations-using-explain-plans-for-database-queries-in-traces} -{{< img src="database_monitoring/explain_plans_in_traces_update.png" alt="トレース内のデータベースクエリに対する Explain Plan を使用して非効率を特定します。">}} +{{< img src="database_monitoring/explain_plans_in_traces_update.png" alt="トレース内のデータベースクエリの実行計画を使用して、非効率な部分を特定します。">}} -トレース内で実行されるクエリと同様のクエリの過去のパフォーマンスを表示し、サンプリングされた待機イベントや平均レイテンシー、最近取得された Explain Plan などの情報を参照して、そのクエリが期待通りに動作しているかどうかを把握できます。挙動が異常かどうかを判断し、さらなる調査が必要であれば Database Monitoring に移動して、基盤となるデータベースホストについて追加のコンテキストを確認してください。 +トレース内で実行されたクエリと同様のクエリの過去のパフォーマンス (サンプリングされた待機イベントや平均レイテンシー、最近取得された実行計画など) を表示して、そのクエリが期待通りに動作しているかどうかを把握します。動作が異常かどうかを判断し、[Database Monitoring][1] に移動して、基盤となるデータベースホストについての追加コンテキストを確認し、さらに詳しく調べます。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/database_monitoring/#getting-started [2]: /ja/tracing/ -[3]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1 +[3]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2 [4]: https://pkg.go.dev/database/sql [5]: https://pkg.go.dev/github.com/jmoiron/sqlx [6]: https://github.com/dataDog/dd-trace-rb @@ -465,11 +556,16 @@ Database Monitoring でクエリサンプルを閲覧する際、関連するト [22]: https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/ [23]: https://github.com/DataDog/dd-trace-java [24]: https://learn.microsoft.com/sql/connect/ado-net/microsoft-ado-net-sql-server -[25]: https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[...]%20should%20set +[25]: https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtype?view=dotnet-plat-ext-7.0#remarks:~:text=[…]%20should%20set [26]: https://app.datadoghq.com/services [27]: https://pypi.org/project/asyncpg/ [28]: https://pypi.org/project/aiomysql/ [29]: https://pypi.org/project/mysql-connector-python/ [30]: https://pypi.org/project/mysqlclient/ [31]: https://github.com/PyMySQL/PyMySQL -[32]: https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace \ No newline at end of file +[32]: https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace +[33]: https://github.com/mongodb/node-mongodb-native +[34]: https://www.psycopg.org/psycopg3/ +[35]: https://pymongo.readthedocs.io/en/stable/ +[36]: https://www.mongodb.com/docs/drivers/java/sync/current/ +[37]: /ja/database_monitoring/query_samples/ \ No newline at end of file diff --git a/content/ja/database_monitoring/setup_postgres/rds/_index.md b/content/ja/database_monitoring/setup_postgres/rds/_index.md index 034ea5f2cb2..44d6bf7a35b 100644 --- a/content/ja/database_monitoring/setup_postgres/rds/_index.md +++ b/content/ja/database_monitoring/setup_postgres/rds/_index.md @@ -1,68 +1,110 @@ --- -description: Amazon RDS 上で動作する Postgres のデータベースモニタリングをインストールして構成します。 +description: Amazon RDS 上の Postgres の Database Monitoring をインストールして構成します。 further_reading: - link: /integrations/postgres/ - tag: ドキュメント + tag: よくあるご質問 text: Postgres インテグレーションの基本 -title: Amazon RDS マネージド Postgres のデータベースモニタリングの設定 +- link: /database_monitoring/guide/rds_autodiscovery + tag: よくあるご質問 + text: RDS の Autodiscovery +- link: /database_monitoring/guide/parameterized_queries/ + tag: よくあるご質問 + text: SQL クエリパラメーター値のキャプチャ +title: Amazon RDS マネージド Postgres の Database Monitoring のセットアップ --- +Database Monitoring (DBM) は、クエリメトリクス、クエリサンプル、実行計画、データベースの状態、フェイルオーバー、イベントを可視化することで、Postgres データベースの内部状態を詳細に把握できるようにします。 -データベースモニタリングは、クエリメトリクス、クエリサンプル、実行計画、データベースの状態、フェイルオーバー、イベントを公開することで、Postgres データベースを詳細に可視化します。 +Agent は、読み取り専用ユーザーとしてログインして、データベースから直接テレメトリを収集します。Postgres データベースで DBM を有効にするには、以下のセットアップを実行します。 -Agent は、読み取り専用のユーザーとしてログインすることでデータベースから直接テレメトリーを収集します。Postgres データベースでデータベースモニタリングを有効にするには、以下の設定を行ってください。 +1. [Configure the AWS integration](#configure-the-aws-integration) +1. [Configure database parameters](#configure-postgres-settings) +1. [Grant the Agent access to the database](#grant-the-agent-access) +1. [Install and configure the Agent](#install-and-configure-the-agent) +1. [Install the RDS integration](#install-the-rds-integration) -1. [AWS インテグレーションを構成する](#configure-the-aws-integration) -1. [データベースのパラメーターを構成する](#configure-postgres-settings) -1. [Agent にデータベースへのアクセスを付与する](#grant-the-agent-access) -1. [Agent のインストールと構成](#install-and-configure-the-agent) -1. [RDS インテグレーションをインストールする](#install-the-rds-integration) - -
    Datadog が Agent を自動的にデプロイして RDS を監視する、よりスムーズなセットアップにご興味はありませんか?興味がある方は、ぜひこのフォームにご記入ください。
    -

    +
    +RDS クイックインストールは、小規模な環境 (たとえば、データベースホストが 20 台など) や、DBM を初めて利用してすぐに試してみたい場合に推奨されるインストール方法です。大規模なデータベース群を管理しており、UI 経由でエージェントをデプロイする方法がスケールしにくい場合には、標準インストールを推奨します。標準インストールでは、エージェントを手動で管理したり、既存の自動化プロセスと統合したりすることができます。 +
    -## はじめに +## はじめに {#before-you-begin} サポート対象の PostgreSQL バージョン -: 9.6、10、11、12、13、14、15、16 +: 9.6、10、11、12、13、14、15、16、17 -サポート対象の Agent バージョン +サポートされている Agent バージョン : 7.36.1+ パフォーマンスへの影響 -: データベースモニタリングのデフォルトの Agent 構成は保守的ですが、収集間隔やクエリのサンプリングレートなどの設定を調整することで、よりニーズに合ったものにすることができます。ワークロードの大半において、Agent はデータベース上のクエリ実行時間の 1 % 未満、CPU の 1 % 未満を占めています。

    -データベースモニタリングは、基本的な Agent 上のインテグレーションとして動作します ([ベンチマークを参照][1]してください)。 +: DBM のデフォルトのエージェント構成は保守的な設定になっていますが、収集間隔やクエリサンプリングレートなどの設定を調整し、ニーズに合わせて最適化できます。ほとんどのワークロードにおいて、Agent がデータベースのクエリ実行時間に与える影響は 1% 未満、CPU 使用率への影響も 1% 未満です。

    +DBM は、ベースとなる Agent の上で動作するインテグレーションとして実行されます ([ベンチマークを参照][1])。 プロキシ、ロードバランサー、コネクションプーラー -: Datadog Agent は、監視対象のホストに直接接続する必要があります。セルフホスト型のデータベースでは、`127.0.0.1` またはソケットを使用することをお勧めします。Agent をプロキシ、ロードバランサー、または `pgbouncer` などのコネクションプーラーを経由してデータベースに接続しないようご注意ください。Agent が稼働中に異なるホストに接続すると (フェイルオーバーやロードバランシングなどの場合)、Agent は 2 つのホスト間の統計値の差を計算してしまうため、不正確なメトリクスが生成されます。 +: Datadog Agent は、監視対象のホストに直接接続する必要があります。自己ホスト型データベースの場合、`127.0.0.1` またはソケットを使用してください。Agent は、プロキシ、ロードバランサー、または `pgbouncer` のようなコネクションプーラーを介してデータベースに接続しないでください。Agent の実行中に接続先ホストが切り替わる場合 (フェイルオーバーやロードバランシングなど)、Agent は 2 つのホスト間の統計の差分を計算してしまうため、不正確なメトリクスが生成されます。 + +セキュリティに関する考慮事項 +: Agent がデータベースから収集するデータや、その安全性を確保する方法については、[機密情報][2] を参照してください。 + +## AWS インテグレーションを構成する{#configure-the-aws-integration} -データセキュリティへの配慮 -: Agent がお客様のデータベースからどのようなデータを収集するか、またそのデータの安全性をどのように確保しているかについては、[機密情報][2]を参照してください。 +[Amazon Web Services インテグレーションタイル][3] の [{{< ui >}}Resource Collection{{< /ui >}}] セクションで、[{{< ui >}}Resource Collection{{< /ui >}}] を有効にします。 -## AWS インテグレーションを構成する +## Postgres 設定を構成する{#configure-postgres-settings} -[Amazon Web Services インテグレーションタイル][3]の **Resource Collection** セクションで **Standard Collection** を有効にします。 +以下の [パラメーター][4] を [DB パラメーターグループ][5] で構成してから**サーバーを再起動**して、設定を有効にします。これらのパラメーターに関する詳細については、[Postgres ドキュメント][6] を参照してください。 + +**必須パラメーター** + +| パラメーター | 値 | 説明 | +| --- | --- | --- | +| `shared_preload_libraries` | `pg_stat_statements` | `postgresql.queries.*` メトリクスのために必要です。[pg_stat_statements][6] 拡張機能を使用してクエリメトリクスの収集を有効にします。| +| `track_activity_query_size` | `4096` | より大きなクエリの収集に必要です。`pg_stat_activity` の SQL テキストのサイズを拡張します。デフォルト値のままにすると、`1024` 文字を超えるクエリは収集されません。| -## Postgres 設定を構成する +**オプションパラメーター** + +| パラメーター | 値 | 説明 | +| --- | --- | --- | +| `pg_stat_statements.track` | `ALL` | ストアドプロシージャや関数内のステートメントの追跡を有効にします。| +| `pg_stat_statements.max` | `10000` | `pg_stat_statements`で追跡する正規化されたクエリの数を増加させます。多くの異なるクライアントから多様なクエリが実行される高負荷データベースに推奨されます。| +| `pg_stat_statements.track_utility` | `off` | PREPARE や EXPLAIN などのユーティリティコマンドを無効にします。この値を `off` に設定すると、SELECT、UPDATE、DELETE などのクエリのみが追跡されます。| +| `track_io_timing` | `on` | クエリにおけるブロックの読み取りおよび書き込み時間の収集を有効にします。| + +### `auto_explain` を有効にする (オプション){#enable-auto-explain-optional} + +デフォルトでは、エージェントは実行中のクエリのサンプリングに対してのみ [`EXPLAIN`][15] の実行計画を収集します。これらの実行計画は、特にアプリケーションコードがプリペアドステートメントを使用している場合、より一般的な内容になります。 + +すべてのクエリから取得した完全な `EXPLAIN ANALYZE` の実行計画を収集するには、[`auto_explain`][16] を使用する必要があります。これは、PostgreSQL にバンドルされたファーストパーティ拡張機能で、すべての主要プロバイダーで利用可能です。_ログ収集は `auto_explain` 収集_ の前提条件であるため、続行する前に有効にしてください。 + +
    +重要:auto_explain は、難読化されていない SQL 内の生データ値と同様に、機密性の高いアプリケーションデータを含む可能性があるログ行を出力します。生成されるプランへのアクセスを制御するには、dbm_parameterized_queries_read 権限を使用してください。デフォルトで Datadog 組織内のすべてのユーザーに表示可能になっている、ログ行自体の可視性を制限するには、ログ向けの RBAC も構成してください。Datadog は、機密情報を効果的に保護するために両方の権限を使用することを推奨します。 +
    -[DB パラメーターグループ][5]に以下の[パラメーター][4]を構成し、**サーバーを再起動**すると設定が有効になります。これらのパラメーターの詳細については、[Postgres ドキュメント][6]を参照してください。 +1. `auto_explain` 設定を構成します。ログ形式は __ `json`である必要がありますが、他の設定はアプリケーションに応じて変更できます。この例では、1 秒を超えるすべてのクエリの `EXPLAIN ANALYZE` の実行計画をログに出力し、バッファ情報は含めますが、オーバーヘッドが発生する可能性があるためタイミング情報は除外します。 | パラメーター | 値 | 説明 | | --- | --- | --- | -| `shared_preload_libraries` | `pg_stat_statements` | `postgresql.queries.*` メトリクスに対して必要です。[pg_stat_statements][6] 拡張機能を使用して、クエリメトリクスの収集を可能にします。 | -| `track_activity_query_size` | `4096` | より大きなクエリを収集するために必要です。`pg_stat_activity` の SQL テキストのサイズを拡大します。 デフォルト値のままだと、`1024` 文字よりも長いクエリは収集されません。 | -| `pg_stat_statements.track` | `ALL` | オプション。ストアドプロシージャや関数内のステートメントを追跡することができます。 | -| `pg_stat_statements.max` | `10000` | オプション。`pg_stat_statements` で追跡する正規化されたクエリの数を増やします。この設定は、多くの異なるクライアントからさまざまな種類のクエリが送信される大容量のデータベースに推奨されます。 | -| `pg_stat_statements.track_utility` | `off` | オプション。PREPARE や EXPLAIN のようなユーティリティコマンドを無効にします。この値を `off` にすると、SELECT、UPDATE、DELETE などのクエリのみが追跡されます。 | -| `track_io_timing` | `on` | オプション。クエリのブロックの読み取りおよび書き込み時間の収集を有効にします。 | +| `shared_preload_libraries` | `pg_stat_statements,auto_explain` | 自動 `EXPLAIN ANALYZE` | を有効にします +| `auto_explain.log_format` | `json` | 機械可読の実行計画を生成します | +| `auto_explain.log_min_duration` | `1000` | クエリが 1 秒を超えると実行計画をログに記録します | +| `auto_explain.log_analyze` | `on` | `EXPLAIN` | の `ANALYZE` 形式を使用します +| `auto_explain.log_buffers` | `on` | 実行計画にバッファ使用状況を含めます| +| `auto_explain.log_timing` | `off` | タイミング情報を出力しません (オーバーヘッドが高いため)| +| `auto_explain.log_triggers` | `on` | トリガーステートメントの実行計画を含めます| +| `auto_explain.log_verbose` | `on` | 詳細な実行計画タイプを使用します| +| `auto_explain.log_nested_statements` | `on` | ネストされたステートメントを含めます| +| `auto_explain.sample_rate` | `1` | 期間条件を満たすすべてのクエリに対して EXPLAIN を実行します| +2. `log_line_prefix` を変更して、よりリッチなイベント相関を有効にします。詳細については、[RDS DB パラメーターグループ][17] のドキュメントを参照してください。`auto_explain` の取り込みには、これを `%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a` に設定する必要があります。 -## Agent にアクセスを付与する +3. RDS インスタンスが CloudWatch と Datadog にログを転送していることを確認するには、[Amazon RDS ログ収集][18] の手順に従ってください。 -Datadog Agent は、統計やクエリを収集するためにデータベース サーバーへの読み取り専用のアクセスを必要とします。 -Postgres がレプリケーションされている場合、以下の SQL コマンドはクラスター内の**プライマリ**データベースサーバー (ライター) で実行する必要があります。Agent が接続するサーバー上の PostgreSQL データベースを選択します。Agent は、どのデータベースに接続してもデータベースサーバー上のすべてのデータベースからテレメトリーを収集することができるため、デフォルトの `postgres` データベースを使用することをお勧めします。[そのデータベースに対して、固有のデータに対するカスタムクエリ][7]を Agentで実行する必要がある場合のみ別のデータベースを選択してください。 +## Agent にアクセスを付与する{#grant-the-agent-access} -選択したデータベースに、スーパーユーザー (または十分な権限を持つ他のユーザー) として接続します。例えば、選択したデータベースが `postgres` である場合は、次のように実行して [psql][8] を使用する `postgres` ユーザーとして接続します。 +Datadog Agent では、統計やクエリを収集するために、データベースサーバーへの読み取り専用のアクセスが必要となります。 + +Postgres がレプリケートされている場合、クラスター内の**プライマリ**データベースサーバー (書き込み側) で次の SQL コマンドを実行してください。Agent は、接続先のデータベースに関係なく、サーバー上のすべてのデータベースからテレメトリを収集できます。Agent で [特定のデータベース固有のデータに対してカスタムクエリを実行する][7] 必要がない限り、デフォルトの `postgres` データベースを使用してください。 + +選択したデータベースに、スーパーユーザー (または十分な権限を持つ別のユーザー) として接続します。たとえば、[psql][8] を使用して `postgres` データベースに接続するには、次のようにします。 ```bash psql -h mydb.example.com -d postgres -U postgres @@ -74,18 +116,18 @@ Postgres がレプリケーションされている場合、以下の SQL コマ CREATE USER datadog WITH password ''; ``` -**注:** IAM 認証もサポートされています。RDS インスタンスでの構成方法については、[ガイド][9]を参照してください。 +**注** IAM 認証もサポートされています。RDS インスタンスの設定方法については、[ガイド][9] を参照してください。 {{< tabs >}} {{% tab "Postgres ≥ 15" %}} -`datadog` ユーザーに関連テーブルに対する権限を与えます。 +`datadog` ユーザーに関連テーブルへの権限を付与します。 ```SQL ALTER ROLE datadog INHERIT; ``` -**すべてのデータベース**に以下のスキーマを作成します。 +**すべてのデータベースで**以下のスキーマを作成します。 ```SQL CREATE SCHEMA datadog; @@ -98,7 +140,7 @@ CREATE EXTENSION IF NOT EXISTS pg_stat_statements schema public; {{% tab "Postgres ≥ 10" %}} -**すべてのデータベース**に以下のスキーマを作成します。 +**すべてのデータベースで**以下のスキーマを作成します。 ```SQL CREATE SCHEMA datadog; @@ -111,7 +153,7 @@ CREATE EXTENSION IF NOT EXISTS pg_stat_statements schema public; {{% /tab %}} {{% tab "Postgres 9.6" %}} -**すべてのデータベース**に以下のスキーマを作成します。 +**すべてのデータベースで**以下のスキーマを作成します。 ```SQL CREATE SCHEMA datadog; @@ -121,7 +163,7 @@ GRANT SELECT ON pg_stat_database TO datadog; CREATE EXTENSION IF NOT EXISTS pg_stat_statements; ``` -**すべてのデータベース**で関数を作成して、Agent が `pg_stat_activity` および `pg_stat_statements` の全コンテンツを読み込めるようにします。 +**すべてのデータベースで**関数を作成し、Agent が`pg_stat_activity`と`pg_stat_statements` の完全な内容を読み取れるようにします: ```SQL CREATE OR REPLACE FUNCTION datadog.pg_stat_activity() RETURNS SETOF pg_stat_activity AS @@ -137,9 +179,11 @@ SECURITY DEFINER; {{% /tab %}} {{< /tabs >}} -
    追加のテーブルをクエリする必要があるデータ収集またはカスタムメトリクスでは、それらのテーブルの SELECT 権限を datadog ユーザーに付与する必要がある場合があります。例: grant SELECT on <TABLE_NAME> to datadog;。詳細は、PostgreSQL カスタムメトリクス収集を参照してください。
    +
    追加のテーブルをクエリする必要があるデータ収集やカスタムメトリクスの場合、そのテーブルに対して、 SELECT 権限を datadog ユーザーのみがたどることができます。例:grant SELECT on <TABLE_NAME> to datadog;。詳細については、PostgreSQL カスタムメトリクスの収集を参照してください。
    -Agent が実行計画を収集できるように、**すべてのデータベース**に関数を作成します。 +### EXPLAIN の実行計画関数を作成する{#create-the-explain-plan-function} + +**すべてのデータベースで**次の関数を作成し、Agent が実行計画を収集できるようにします。 ```SQL CREATE OR REPLACE FUNCTION datadog.explain_statement( @@ -153,6 +197,8 @@ curs REFCURSOR; plan JSON; BEGIN + SET TRANSACTION READ ONLY; + OPEN curs FOR EXECUTE pg_catalog.concat('EXPLAIN (FORMAT JSON) ', l_query); FETCH curs INTO plan; CLOSE curs; @@ -164,14 +210,14 @@ RETURNS NULL ON NULL INPUT SECURITY DEFINER; ``` -### パスワードを安全に保管 +### パスワードを安全に保管する{#securely-store-your-password} {{% dbm-secret %}} -### 検証する +### データベースの権限を確認する{#verify-database-permissions} -権限が正しいことを確認するために、以下のコマンドを実行して、Agent ユーザーがデータベースに接続してコアテーブルを読み取ることができることを確認します。 +権限が正しく設定されていることを確認するために、次のコマンドを実行して、Agent ユーザーがデータベースに接続してコアテーブルを読み取れることを確認します。 {{< tabs >}} -{{% tab "Postgres ≥ 10" %}}。 +{{% tab "Postgres ≥ 10" %}} ```shell psql -h localhost -U datadog postgres -A \ @@ -196,11 +242,11 @@ psql -h localhost -U datadog postgres -A \ && echo -e "\e[0;32mPostgres connection - OK\e[0m" \ || echo -e "\e[0;31mCannot connect to Postgres\e[0m" psql -h localhost -U datadog postgres -A \ - -c "select * from pg_stat_activity limit 1;" \ + -c "select * from datadog.pg_stat_activity() limit 1;" \ && echo -e "\e[0;32mPostgres pg_stat_activity read OK\e[0m" \ || echo -e "\e[0;31mCannot read from pg_stat_activity\e[0m" psql -h localhost -U datadog postgres -A \ - -c "select * from pg_stat_statements limit 1;" \ + -c "select * from datadog.pg_stat_statements() limit 1;" \ && echo -e "\e[0;32mPostgres pg_stat_statements read OK\e[0m" \ || echo -e "\e[0;31mCannot read from pg_stat_statements\e[0m" ``` @@ -210,16 +256,16 @@ psql -h localhost -U datadog postgres -A \ パスワードの入力を求められた場合は、`datadog` ユーザーを作成したときに入力したパスワードを使用してください。 -## Agent のインストールと構成 +## Agent をインストールし構成する{#install-and-configure-the-agent} -RDS ホストを監視するには、インフラストラクチャーに Datadog Agent をインストールし、各インスタンスのエンドポイントにリモートで接続するよう構成します。Agent はデータベース上で動作する必要はなく、データベースに接続するだけで問題ありません。ここに記載されていないその他の Agent のインストール方法については、[Agent のインストール手順][10]を参照してください。 +RDS ホストを監視するには、インフラストラクチャーに Datadog Agent をインストールし、各インスタンスエンドポイントにリモートで接続するように構成します。Agent をデータベース上で実行する必要はなく、接続するだけで構いません。ここに記載されていない、Agent のその他のインストール方法については、[Agent インストール手順][10] を参照してください。 {{< tabs >}} {{% tab "ホスト" %}} +ホスト上で実行されている Agent での Database Monitoring メトリクスの収集を構成するには (たとえば、RDS データベースから収集するために小規模な EC2 インスタンスを Agent 用にプロビジョニングする場合など)、次の手順に従ってください。 -ホスト上で実行されている Agent のデータベースモニタリングメトリクスの収集を構成するには、次の手順に従ってください。(Agent で RDS データベースからメトリクスを収集するために小規模な EC2 インスタンスをプロビジョニングする場合など) +1. `postgres.d/conf.yaml` ファイルを編集して、`host`/`port` を指定し、監視するマスターを設定します。使用可能なすべての構成オプションについては、[サンプルの postgres.d/conf.yaml][1] を参照してください。 -1. `postgres.d/conf.yaml` ファイルを編集して、`host` / `port` を指定し、監視するマスターを設定します。使用可能なすべてのコンフィギュレーションオプションについては、[サンプル postgres.d/conf.yaml][1] を参照してください。 ```yaml init_config: instances: @@ -228,22 +274,27 @@ RDS ホストを監視するには、インフラストラクチャーに Datado port: 5432 username: datadog password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: '' + region: '' tags: - "dbinstanceidentifier:" + ## Required for Postgres 9.6: Uncomment these lines to use the functions created in the setup # pg_stat_statements_view: datadog.pg_stat_statements() # pg_stat_activity_view: datadog.pg_stat_activity() + ## Optional: Connect to a different database if needed for `custom_queries` # dbname: '' ``` - Agent バージョンが `≤ 7.49` の場合、インスタンス構成に `host` と `port` を指定して以下の設定を追加します。 + Agent バージョンが `≤ 7.49` の場合、`host` と `port` が指定されているインスタンス構成に次の設定を追加します。 ```yaml ssl: allow ``` - IAM で認証する場合は、`region` と `instance_endpoint` パラメーターを指定し、`managed_authentication.enabled` を `true` に設定します。 + IAM で認証する場合は、`region` および `instance_endpoint` パラメーターを指定し、`managed_authentication.enabled` を `true` に設定します。 **注**: IAM 認証を使用する場合のみ `managed_authentication` を有効にしてください。IAM 認証は `password` フィールドよりも優先されます。 @@ -261,35 +312,38 @@ RDS ホストを監視するには、インフラストラクチャーに Datado enabled: true tags: - "dbinstanceidentifier:" + ## Required for Postgres 9.6: Uncomment these lines to use the functions created in the setup # pg_stat_statements_view: datadog.pg_stat_statements() # pg_stat_activity_view: datadog.pg_stat_activity() + ## Optional: Connect to a different database if needed for `custom_queries` # dbname: '' ``` - RDS インスタンスでの IAM 認証の構成については、[マネージド認証との接続][3]を参照してください。 - -2. [Agent を再起動します][2]。 + RDS インスタンスでの IAM 認証の構成については、[マネージド認証との接続][3] を参照してください。 +2. [Agent を再起動][2] します。 [1]: https://github.com/DataDog/integrations-core/blob/master/postgres/datadog_checks/postgres/data/conf.yaml.example [2]: /ja/agent/configuration/agent-commands/#start-stop-and-restart-the-agent [3]: /ja/database_monitoring/guide/managed_authentication {{% /tab %}} + {{% tab "Docker" %}} +ECS や Fargate のような Docker コンテナで実行されている Agent に対してインテグレーションを構成するには、いくつかの方法があり、すべて [Docker 醸成ドキュメント][1] で詳しく説明されています。 -ECS や Fargate などの Docker コンテナで動作するデータベースモニタリング Agent を設定するには、Agent コンテナの Docker ラベルとして[オートディスカバリーのインテグレーションテンプレート][1]を設定します。 +次の例では、[Docker ラベル][2] と [Autodiscovery テンプレート][3] を使用して Postgres インテグレーションを構成する方法を示します。 -**注**: ラベルのオートディスカバリーを機能させるためには、Agent にDocker ソケットに対する読み取り権限が与えられている必要があります。 +**注**: Autodiscovery によるラベルの検出を有効にするには、Agent が Docker ソケットの読み取り権限を持っている必要があります。 -### コマンドライン +### コマンドライン {#command-line} -次のコマンドを実行して、コマンドラインから Agent を実行することですぐに稼動させることができます。お使いのアカウントや環境に合わせて値を変更してください。 +[コマンドライン][4] から次のコマンドを実行して Agent を起動します。プレースホルダーの値を、実際のアカウントと環境の値に置き換えてください。 ```bash export DD_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -export DD_AGENT_VERSION=7.36.1 +export DD_AGENT_VERSION= docker run -e "DD_API_KEY=${DD_API_KEY}" \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ @@ -301,102 +355,179 @@ docker run -e "DD_API_KEY=${DD_API_KEY}" \ "port": 5432, "username": "datadog", "password": "", + "aws": { + "instance_endpoint": "", + "region": "" + }, "tags": ["dbinstanceidentifier:"] }] }}' \ - gcr.io/datadoghq/agent:${DD_AGENT_VERSION} + registry.datadoghq.com/agent:${DD_AGENT_VERSION} ``` -Postgres 9.6 の場合、ホストとポートが指定されているインスタンスの config に以下の設定を追加します。 +Postgres 9.6 の場合、ホストとポートが指定されているインスタンス構成に次の設定を追加します。 ```yaml -pg_stat_statements_view: datadog.pg_stat_statements() -pg_stat_activity_view: datadog.pg_stat_activity() +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" ``` -### Dockerfile +### Dockerfile {#dockerfile} -`Dockerfile` ではラベルの指定も可能であるため、インフラストラクチャーのコンフィギュレーションを変更することなく、カスタム Agent を構築・デプロイすることができます。 +`Dockerfile` 内でラベルを指定することもできます。これにより、インフラストラクチャー構成を変更することなくカスタムの Agent を構築しデプロイできます。 ```Dockerfile -FROM gcr.io/datadoghq/agent:7.36.1 +FROM registry.datadoghq.com/agent: LABEL "com.datadoghq.ad.check_names"='["postgres"]' LABEL "com.datadoghq.ad.init_configs"='[{}]' -LABEL "com.datadoghq.ad.instances"='[{"dbm": true, "host": "", "port": 5432,"username": "datadog","password": "ENC[datadog_user_database_password]","tags": ["dbinstanceidentifier:"]}]' +LABEL "com.datadoghq.ad.instances"='[{"dbm": true, "host": "", "port": 5432,"username": "datadog","password": "ENC[datadog_user_database_password]","aws": {"instance_endpoint": "", "region": ""}, "tags": ["dbinstanceidentifier:"]}]' ``` -Postgres 9.6 の場合、ホストとポートが指定されているインスタンスの config に以下の設定を追加します。 +Postgres 9.6 の場合、ホストとポートが指定されているインスタンス構成に次の設定を追加します。 ```yaml -pg_stat_statements_view: datadog.pg_stat_statements() -pg_stat_activity_view: datadog.pg_stat_activity() +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" ``` -`datadog` ユーザーのパスワードをプレーンテキストで公開しないようにするには、Agent の[シークレット管理パッケージ][2]を使用し、`ENC[]` 構文を使ってパスワードを宣言するか、[オートディスカバリーテンプレート変数に関するドキュメント][3]でパスワードを環境変数として渡す方法をご確認ください。 +`datadog`ユーザーのパスワードをプレーンテキストで公開しないよう、Agent の [シークレット管理パッケージ][5] を使用し、`ENC[]` 構文を使ってパスワードを宣言します。または、[Autodiscovery テンプレート変数のドキュメント][6] を参照して、パスワードを環境変数として渡すこともできます。 - -[1]: /ja/agent/docker/integrations/?tab=docker -[2]: /ja/agent/configuration/secrets-management -[3]: /ja/agent/faq/template_variables/ +[1]: /ja/containers/docker/integrations/?tab=labels#configuration +[2]: https://docs.docker.com/engine/manage-resources/labels/ +[3]: /ja/getting_started/containers/autodiscovery/ +[4]: /ja/containers/docker/integrations/?tab=labels#using-docker-run-nerdctl-run-or-podman-run +[5]: /ja/agent/configuration/secrets-management +[6]: /ja/agent/faq/template_variables/ {{% /tab %}} + {{% tab "Kubernetes" %}} +Kubernetes クラスターを実行している場合は、[Datadog Cluster Agent][1] を使用して Database Monitoring を有効にしてください。 + +**注**: 続行する前に、Datadog Cluster Agent の [クラスターチェック][2] が有効になっていることを確認してください。 + +以下は、Datadog Cluster Agent のさまざまなデプロイ方法を使用して Postgres インテグレーションを構成するための手順です。 + +### Operator {#operator} + +[Kubernetes と Integrations の Operator 手順][3] を参照し、次の手順に従って Postgres インテグレーションを設定してください。 + +1. 次の構成で `datadog-agent.yaml` ファイルを作成または更新します。 + + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + global: + clusterName: + site: + credentials: + apiSecret: + secretName: datadog-agent-secret + keyName: api-key + + features: + clusterChecks: + enabled: true + + override: + nodeAgent: + image: + name: agent + tag: + + clusterAgent: + extraConfd: + configDataMap: + postgres.yaml: |- + cluster_check: true + init_config: + instances: + - host: + port: 5432 + username: datadog + password: 'ENC[datadog_user_database_password]' + dbm: true + aws: + instance_endpoint: + region: + tags: + - "dbinstanceidentifier:" + + ``` + + **Note**: For Postgres 9.6, add the following lines to the instance config where host and port are specified: + + ```yaml + pg_stat_statements_view: datadog.pg_stat_statements() + pg_stat_activity_view: datadog.pg_stat_activity() + ``` + +2. 次のコマンドを使用して Datadog Operator に変更を適用します。 -Kubernetes クラスターをお使いの場合は、データベースモニタリング用の [Datadog Cluster Agent][1] をご利用ください。 + ```shell + kubectl apply -f datadog-agent.yaml + ``` -Kubernetes クラスターでまだチェックが有効になっていない場合は、手順に従って[クラスターチェックを有効][2]にしてください。Postgres のコンフィギュレーションは、Cluster Agent コンテナにマウントされた静的ファイル、またはサービスアノテーションのいずれかを使用して宣言できます。 +### Helm {#helm} -### Helm +[Kubernetes と Integrations の Helm 手順][4] を参照し、次の手順で Postgres インテグレーションを設定してください。 -以下の手順に従って、Kubernetes クラスターに [Datadog Cluster Agent][1] をインストールしてください。お使いのアカウントや環境に合わせて値を変更してください。 +1. Cluster Agent インストール手順で使用した `datadog-values.yaml` ファイルを、次の構成で更新します。 -1. Helm の [Datadog Agent インストール手順][3]に従います。 -2. YAML コンフィギュレーションファイル (Cluster Agent インストール手順の `datadog-values.yaml`) を更新して、以下を含めます。 ```yaml + datadog: + clusterChecks: + enabled: true + + clusterChecksRunner: + enabled: true + clusterAgent: + enabled: true confd: postgres.yaml: |- cluster_check: true init_config: instances: - dbm: true - host: + host: port: 5432 username: datadog password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: + region: tags: - - 'dbinstanceidentifier:' + - "dbinstanceidentifier:" - clusterChecksRunner: - enabled: true ``` - Postgres 9.6 の場合、ホストとポートが指定されているインスタンスの config に以下の設定を追加します。 + **Note**: For Postgres 9.6, add the following lines to the instance config where host and port are specified: ```yaml pg_stat_statements_view: datadog.pg_stat_statements() pg_stat_activity_view: datadog.pg_stat_activity() ``` -3. コマンドラインから上記のコンフィギュレーションファイルを使用して Agent をデプロイします。 +2. 上記の構成ファイルを使用して、次のコマンドで Agent をデプロイします。 + ```shell helm install datadog-agent -f datadog-values.yaml datadog/datadog ```
    -Windows の場合は、helm install コマンドに --set targetSystem=windows を追加します。 +Windows の場合、 --set targetSystem=windowshelm install コマンドに追加します。
    -[1]: https://app.datadoghq.com/organization-settings/api-keys -[2]: /ja/getting_started/site -[3]: /ja/containers/kubernetes/installation/?tab=helm#installation +### マウントされたファイルで構成する{#configure-with-mounted-files} -### マウントされたファイルで構成する - -マウントされたコンフィギュレーションファイルを使ってクラスターチェックを構成するには、コンフィギュレーションファイルを Cluster Agent コンテナのパス `/conf.d/postgres.yaml` にマウントします。 +マウントされた構成ファイルを使用してクラスターチェックを設定するには、構成ファイルを Cluster Agent コンテナのパス `/conf.d/postgres.yaml` にマウントします。 ```yaml -cluster_check: true # このフラグを必ず含めてください +cluster_check: true # Make sure to include this flag init_config: instances: - dbm: true @@ -404,17 +535,22 @@ instances: port: 5432 username: datadog password: 'ENC[datadog_user_database_password]' + aws: + instance_endpoint: + region: tags: - - dbinstanceidentifier: - ## 必須: Postgres 9.6 の場合、セットアップで作成した関数を使用するために、以下の行のコメントを解除してください + - "dbinstanceidentifier:" + + ## Required: For Postgres 9.6, uncomment these lines to use the functions created in the setup # pg_stat_statements_view: datadog.pg_stat_statements() # pg_stat_activity_view: datadog.pg_stat_activity() ``` -### Kubernetes サービスアノテーションで構成する +### Kubernetes サービスアノテーションで構成する{#configure-with-kubernetes-service-annotations} -ファイルをマウントせずに、インスタンスのコンフィギュレーションを Kubernetes サービスとして宣言することができます。Kubernetes 上で動作する Agent にこのチェックを設定するには、Datadog Cluster Agent と同じネームスペースにサービスを作成します。 +ファイルをマウントする代わりに、インスタンス構成を Kubernetes サービスとして宣言できます。Kubernetes 上で実行されているエージェントに対してこのチェックを構成するには、次の構文を使用してサービスを作成します。 +#### Autodiscovery アノテーション v2 {#autodiscovery-annotations-v2} ```yaml apiVersion: v1 @@ -425,21 +561,28 @@ metadata: tags.datadoghq.com/env: '' tags.datadoghq.com/service: '' annotations: - ad.datadoghq.com/service.check_names: '["postgres"]' - ad.datadoghq.com/service.init_configs: '[{}]' - ad.datadoghq.com/service.instances: | - [ - { - "dbm": true, - "host": "", - "port": 5432, - "username": "datadog", - "password": "ENC[datadog_user_database_password]", - "tags": [ - "dbinstanceidentifier:" + ad.datadoghq.com/service.checks: | + { + "postgres": { + "init_config": , + "instances": [ + { + "dbm": true, + "host": "", + "port": 5432, + "username": "datadog", + "password": "ENC[datadog_user_database_password]", + "aws": { + "instance_endpoint": "", + "region": "" + }, + "tags": [ + "dbinstanceidentifier:" + ] + } ] } - ] + } spec: ports: - port: 5432 @@ -448,40 +591,44 @@ spec: name: postgres ``` -Postgres 9.6 の場合、ホストとポートが指定されているインスタンスの config に以下の設定を追加します。 +詳細については、[Autodiscovery アノテーション][5] を参照してください。 -```yaml -pg_stat_statements_view: datadog.pg_stat_statements() -pg_stat_activity_view: datadog.pg_stat_activity() +Postgres 9.6 を使用している場合、インスタンス構成に次の内容を追加します。 + +```json +"pg_stat_statements_view": "datadog.pg_stat_statements()", +"pg_stat_activity_view": "datadog.pg_stat_activity()" ``` -Cluster Agent は自動的にこのコンフィギュレーションを登録し、Postgres チェックを開始します。 +Cluster Agent は自動的にこの構成を登録し、Postgres チェックを開始します。 -`datadog` ユーザーのパスワードをプレーンテキストで公開しないよう、Agent の[シークレット管理パッケージ][4]を使用し、`ENC[]` 構文を使ってパスワードを宣言します。 +`datadog` ユーザーのパスワードをプレーンテキストで公開しないよう、Agent の [シークレット管理パッケージ][6] を使用し、`ENC[]` 構文を使ってパスワードを宣言します。 -[1]: /ja/agent/cluster_agent -[2]: /ja/agent/cluster_agent/clusterchecks/ -[3]: https://helm.sh -[4]: /ja/agent/configuration/secrets-management +[1]: /ja/containers/cluster_agent/setup/ +[2]: /ja/containers/cluster_agent/clusterchecks/ +[3]: /ja/containers/kubernetes/integrations/?tab=datadogoperator +[4]: /ja/containers/kubernetes/integrations/?tab=helm +[5]: /ja/containers/kubernetes/integrations/?tab=annotations#configuration +[6]: /ja/agent/configuration/secrets-management {{% /tab %}} {{< /tabs >}} -### UpdateAzureIntegration +### Agent のセットアップを確認する{#verify-agent-setup} -[Agent の status サブコマンドを実行][11]し、Checks セクションで `postgres` を探します。または、[データベース][12]のページを参照してください。 +[Agent の status サブコマンドを実行][11] し、Checks セクションに `postgres` が表示されていることを確認します。または、[Databases][12] ページにアクセスして開始することもできます。 -## Agent の構成例 +## Agent の構成例{#example-agent-configurations} {{% dbm-postgres-agent-config-examples %}} -## RDS インテグレーションをインストール +## RDS インテグレーションをインストールする {#install-the-rds-integration} -DBM でデータベースのテレメトリーとともに CPU などの AWS からのインフラストラクチャーメトリクスを確認するには、[RDS インテグレーション][13]をインストールします (オプション)。 +AWS のインフラストラクチャーメトリクス (CPU など) を DBM のデータベースのテレメトリとあわせて表示するには、[RDS インテグレーション][13] をインストールしてください (任意)。 -## トラブルシューティング +## トラブルシューティング {#troubleshooting} -インテグレーションと Agent を手順通りにインストール・設定しても期待通りに動作しない場合は、[トラブルシューティング][14]を参照してください。 +インテグレーションと Agent を手順通りにインストールおよび構成しても期待通りに動作しない場合は、[トラブルシューティング][14] を参照してください。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -499,4 +646,8 @@ DBM でデータベースのテレメトリーとともに CPU などの AWS か [11]: /ja/agent/configuration/agent-commands/#agent-status-and-information [12]: https://app.datadoghq.com/databases [13]: /ja/integrations/amazon_rds -[14]: /ja/database_monitoring/troubleshooting/?tab=postgres \ No newline at end of file +[14]: /ja/database_monitoring/troubleshooting/?tab=postgres +[15]: https://www.postgresql.org/docs/current/sql-explain.html +[16]: https://www.postgresql.org/docs/current/auto-explain.html +[17]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.html +[18]: /ja/integrations/amazon-rds/?tab=standard#log-collection \ No newline at end of file diff --git a/content/ja/infrastructure/process/_index.md b/content/ja/infrastructure/process/_index.md index a7b10dc2d4a..b858257c32f 100644 --- a/content/ja/infrastructure/process/_index.md +++ b/content/ja/infrastructure/process/_index.md @@ -7,48 +7,46 @@ further_reading: tag: ブログ text: Datadog でのプロセスのモニタリング - link: /infrastructure/process/generate_process_metrics/ - tag: Documentation + tag: よくあるご質問 text: メトリクスでプロセスデータの保持期間を高めます - link: /infrastructure/livecontainers - tag: ドキュメント + tag: よくあるご質問 text: 環境内のすべてのコンテナのリアルタイム表示 - link: https://www.datadoghq.com/blog/monitor-third-party-software-with-live-processes/ tag: ブログ text: 保存ビューでソフトウェアのパフォーマンスとリソース消費を相関付ける - link: https://www.datadoghq.com/blog/process-level-data/ tag: ブログ - text: プロセスレベルのアプリとネットワークデータを使用して、より迅速にトラブルシューティングを行います + text: プロセスレベルのアプリとネットワークデータを使用して、より迅速にトラブルシューティングを行う - link: https://www.datadoghq.com/blog/watchdog-live-processes/ tag: ブログ - text: ライブプロセス用 Watchdog Insights によるワークロードのパフォーマンス異常に対するトラブルシューティング -title: ライブプロセス + text: Live Processes 用 Watchdog Insights によるワークロードのパフォーマンス異常に対するトラブルシューティング +title: Live Processes --- +
    +Live Processes および Live Process Monitoring は Enterprise プランに含まれています。その他のプランをご利用の場合にこの機能をリクエストするには、アカウント担当者または success@datadoghq.com にご連絡ください。 +
    +## はじめに {#introduction} -"
    -Live Processes および Live Process Monitoring は Enterprise プランに含まれています。他のプランをご利用の場合、この機能をリクエストするにはアカウント担当者または success@datadoghq.com へご連絡ください。 -
    " +Datadog の Live Processes により、インフラストラクチャー上で実行中のプロセスをリアルタイムで可視化できます。Live Processes を使用すると、以下のことができます。 -## はじめに +* 実行中のプロセスを 1 か所で表示する +* ホストやコンテナのリソース消費をプロセスレベルで分類する +* 特定のホストや特定のゾーンで実行中のプロセスや、特定のワークロードを実行するプロセスをクエリする +* システムメトリクスを使用して、実行する内部およびサードパーティソフトウェアのパフォーマンスを 2 秒の粒度でモニターする +* ダッシュボードとノートブックにコンテキストを追加する -Datadog のライブプロセスにより、インフラストラクチャー上で実行中のプロセスをリアルタイムで可視化できます。ライブプロセスを使用すると、以下のことができます。 +{{< img src="infrastructure/process/live_processes_main.png" alt="Live Processes の概要" >}} -* 実行中のプロセスを1か所で表示する -* ホストやコンテナのリソース消費をプロセスレベルで分類します -* 特定のホストや特定のゾーンで実行中のプロセスや、特定のワークロードを実行するプロセスのクエリ -* システムメトリクスを使用して、実行する内部およびサードパーティーソフトウェアのパフォーマンスを 2 秒の粒度でモニターします -* ダッシュボードとノートブックにコンテキストを追加します +## インストール {#installation} -{{< img src="infrastructure/process/live_processes_main.png" alt="ライブプロセスの概要" >}} - -## インストール - -Agent 5 の場合は、[こちらのバージョン固有のインストール手順に従ってください][1]。Agent 6 または 7 をご利用の場合は、[以下の手順を参照してください][2]。 +Agent 5 をご使用の場合は、この [特定のインストール手順][1] に従ってください。Agent 6 または 7 をご使用の場合は、[以下の手順を参照してください][2]。 {{< tabs >}} {{% tab "Linux/Windows" %}} -Datadog Agent をインストールしたら、[Agent のメイン構成ファイル][1]を編集し、次のパラメーターを `true` に設定して、ライブプロセスの収集を有効にします。 +Datadog Agent をインストールしたら、[Agent のメイン構成ファイル][1] を編集し、次のパラメーターを `true` に設定して、Live Processes の収集を有効にします。 ```yaml process_config: @@ -60,7 +58,7 @@ process_config: **注**: 環境変数として設定されたオプションは、構成ファイルで定義されている設定を上書きします。 -設定が完了したら、[Agent を再起動][2]します。 +設定が完了したら、[Agent を再起動][2] します。 [1]: /ja/agent/configuration/agent-configuration-files/ @@ -68,7 +66,7 @@ process_config: {{% /tab %}} {{% tab "Docker" %}} -[Docker Agent][1] の手順に従って、必要に応じて他のカスタム設定に加えて、以下の属性を渡します。 +[Docker Agent][1] の手順に従い、必要に応じてほかのカスタム設定に加えて、以下の属性を渡します。 ```text -v /etc/passwd:/etc/passwd:ro @@ -77,7 +75,7 @@ process_config: **注**: -- 標準インストールでコンテナ情報を収集するには、`dd-agent` ユーザーが `docker.sock` へのアクセス許可を持つ必要があります。 +- 標準インストールでコンテナ情報を収集するには、`dd-agent` ユーザーが `docker.sock` へのアクセス許可を持っている必要があります。 - 引き続き、Agent をコンテナとして実行してホストプロセスを収集することもできます。 @@ -107,7 +105,7 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{% tab "Datadog Operator" %}} -`datadog-agent.yaml` で `features.liveProcessCollection.enabled` を `true` に設定します。 +ご使用の `datadog-agent.yaml` で、`features.liveProcessCollection.enabled` を `true` に設定します。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -147,7 +145,7 @@ DaemonSet の作成に使用された `datadog-agent.yaml` マニフェスト内 name: passwd ``` -詳細については、標準の [DaemonSet インストール][1]のページおよび [Docker Agent][2] の情報ページを参照してください。 +詳細については、標準の [DaemonSet インストール][1] のページおよび [Docker Agent][2] の情報ページを参照してください。 **注**: 引き続き、Agent をコンテナとして実行してホストプロセスを収集することもできます。 @@ -156,13 +154,13 @@ DaemonSet の作成に使用された `datadog-agent.yaml` マニフェスト内 {{% /tab %}} {{% tab "AWS ECS Fargate" %}} -
    Datadog で ECS Fargate プロセスを表示できます。ECS Fargate コンテナとの関係を確認するには、Datadog Agent v7.50.0 以降を使用します。
    +
    Datadog で ECS Fargate プロセスを表示できます。ECS Fargate コンテナとの関係を確認するには、Datadog Agent v7.50.0 以降を使用してください。
    プロセスを収集するには、Datadog Agent がタスク内でコンテナとして実行されている必要があります。 ECS Fargate でプロセスモニタリングを有効にするには、タスク定義内の Datadog Agent コンテナ定義で `DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED` 環境変数を `true` に設定します。 -例: +たとえば、次のようにします。 ```json { @@ -186,15 +184,15 @@ ECS Fargate でプロセスモニタリングを有効にするには、タス } ``` -ECS Fargate でプロセス情報の収集を開始するには、タスク定義に [`PidMode` パラメータ][3]を追加し、以下のように `task` に設定します。 +ECS Fargate でプロセス情報の収集を開始するには、タスク定義に [`pidMode` パラメーター][3] を追加し、以下のように `task` に設定します: ```text "pidMode": "task" ``` -一度有効化すると、[Live Processes ページ][1]で `AWS Fargate` Containers ファセットを使用して ECS ごとにプロセスをフィルタリングするか、検索クエリに `fargate:ecs` を入力して結果を絞り込めます。 +有効化したら、[Live Processes ぺージ][1] で `AWS Fargate` Containers ファセットを使用して ECS で実行されているプロセスをフィルタリングするか、検索クエリに `fargate:ecs` を入力します。 -{{< img src="infrastructure/process/fargate_ecs.png" alt="AWS Fargate 上のプロセス" >}} +{{< img src="infrastructure/process/fargate_ecs.png" alt="AWS Fargate のプロセス" >}} AWS ECS Fargate で Datadog Agent をインストールする方法の詳細については、[ECS Fargate インテグレーションのドキュメント][2]を参照してください。 @@ -205,9 +203,9 @@ AWS ECS Fargate で Datadog Agent をインストールする方法の詳細に {{% /tab %}} {{< /tabs >}} -### I/O 統計 +### I/O 統計 {#io-stats} -I/O とオープンファイルの統計情報は、昇格した権限で実行される Datadog system-probe によって収集することができます。system-probe の process モジュールを有効にするには、次の構成を使用します。 +I/O とオープンファイルの統計情報は、昇格した権限で実行される Datadog システムプローブによって収集することができます。これらの統計情報を収集するには、システムプローブのプロセスモジュールを有効にします。 1. 下記のシステムプローブの構成の例をコピーします。 @@ -215,7 +213,7 @@ I/O とオープンファイルの統計情報は、昇格した権限で実行 sudo -u dd-agent install -m 0640 /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml ``` -2. `/etc/datadog-agent/system-probe.yaml` を編集し、process モジュールを有効にします。 +2. `/etc/datadog-agent/system-probe.yaml` を編集してプロセスモジュールを有効にします。 ```yaml system_probe_config: @@ -223,60 +221,61 @@ I/O とオープンファイルの統計情報は、昇格した権限で実行 enabled: true ``` -5. [Agent を再起動します][12]。 +5. [Agent を再起動][12] します: ```shell sudo systemctl restart datadog-agent ``` - **注**: システムで `systemctl` コマンドを利用できない場合は、代わりに次のコマンドを実行します: `sudo service datadog-agent restart`。 + **注**: システムで `systemctl` コマンドを利用できない場合は、代わりに次のコマンドを実行します。`sudo service datadog-agent restart` -### プロセス収集のフットプリント最適化 -デフォルトでは、Datadog Agent はコンテナとプロセスの収集用に別の Process Agent を使用します。Linux 環境で実行している場合は、コンテナとプロセスの収集をコア Agent に統合できます。 +### プロセス収集のフットプリント最適化 {#optimized-process-collection-footprint} -{{< tabs >}} -{{% tab "Helm" %}} -`datadog-values.yaml` ファイルに `runInCoreAgent` 構成を追加します。 -``` -datadog: - processAgent: - runInCoreAgent: true -``` -{{% /tab %}} - -{{% tab "Operator" %}} -`datadog-agent.yaml` ファイルに `DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED` 構成を追加します。 - -``` -apiVersion: datadoghq.com/v2alpha1 -kind: DatadogAgent -metadata: - name: datadog -spec: - override: - nodeAgent: - env: - - name: DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED - value: "true" -``` -{{% /tab %}} +Linux では、(個別のプロセスエージェントではなく) コア Datadog Agent でコンテナおよびプロセス収集を実行することで、Datadog Agent の全体的なフットプリントを削減します。Datadog Agent v7.65.0 以降では、これがデフォルトで有効になっています。 **注**: プロセスエージェントは、[Cloud Network Monitoring][14] では引き続き必要です。 -{{% tab "Linux ホスト" %}} -コンテナ外で Agent を Linux 上で実行している場合は、`datadog.yaml` ファイルで `run_in_core_agent` フラグを追加します。 +この機能の Agent ステータスは、`Process Component` セクションに記載されています。たとえば、次のようになります。 +```text +================= +Process Component +================= + + + Enabled Checks: [process rtprocess] + System Probe Process Module Status: Not running + Process Language Detection Enabled: False + + ================= + Process Endpoints + ================= + https://process.datadoghq.com. - API Key ending with: + - ***** + + ========= + Collector + ========= + Last collection time: 2026-01-14 10:04:49 + Docker socket: /var/run/docker.sock + Number of processes: 48 + Number of containers: 0 + Process Queue length: 0 + RTProcess Queue length: 0 + Connections Queue length: 0 + Event Queue length: 0 + Pod Queue length: 0 + Process Bytes enqueued: 0 + RTProcess Bytes enqueued: 0 + Connections Bytes enqueued: 0 + Event Bytes enqueued: 0 + Pod Bytes enqueued: 0 + Drop Check Payloads: [] + Number of submission errors: 0 ``` -process_config: - run_in_core_agent: - enabled: true -``` -{{% /tab %}} -{{< /tabs >}} - -### プロセス引数のスクラビング +### プロセス引数のスクラビング {#process-arguments-scrubbing} -ライブプロセスページに機密データが表示されないように、Agent はプロセスコマンドラインからの機密性の高い引数をスクラビングします。この機能はデフォルトで有効になっており、以下の語のいずれかと一致するプロセス引数は、値が表示されません。 +Live Processes ページで機密データを非表示にするために、Agent はプロセスコマンドラインから機密性の高い引数をスクラビングします。この機能はデフォルトで有効になっており、以下のいずれかの単語に一致するプロセス引数では値が非表示になります。 ```text "password", "passwd", "mysql_pwd", "access_token", "auth_token", "api_key", "apikey", "secret", "credentials", "stripetoken" @@ -287,7 +286,7 @@ process_config: {{< tabs >}} {{% tab "Linux/Windows" %}} -`datadog.yaml` ファイルの `process_config` セクションの下にある `custom_sensitive_words` フィールドを使用すると、独自のリストを定義して、デフォルトのリストと統合することができます。ワイルドカード (`*`) を使用して、一致の範囲を独自に定義できます。ただし、ワイルドカード (`'*'`) 単独の使用は、機密語としてサポートされていません。 +`custom_sensitive_words` ファイルの `process_config` セクションにある `datadog.yaml` フィールドを使用して、独自のリストを定義して、デフォルトのリストと統合します。ワイルドカード (`*`) を使用して、一致のスコープを独自に定義できます。ただし、ワイルドカード (`'*'`) 単独の使用は、機密語としてサポートされていません。 ```yaml process_config: @@ -295,9 +294,9 @@ process_config: custom_sensitive_words: ['personal_key', '*token', 'sql*', '*pass*d*'] ``` -**注**: `custom_sensitive_words` 内の語には、英数字、アンダースコア、およびワイルドカード (`'*'`) のみを使用できます。ワイルドカードのみの機密語はサポートされていません。 +**注**: `custom_sensitive_words` 内の単語には、英数字、アンダースコア、ワイルドカード (`'*'`) のみを使用できます。ワイルドカードのみの機密語はサポートされていません。 -次の図に、ライブプロセスページに表示されたプロセスの一例を示します。上の構成を使用して、プロセス引数が非表示にされています。 +次の図に、Live Processes ページに表示されたプロセスの一例を示します。上の構成を使用して、プロセス引数が非表示にされています。 {{< img src="infrastructure/process/process_arg_scrubbing.png" alt="プロセス引数のスクラビング" style="width:100%;">}} @@ -314,7 +313,7 @@ process_config: {{% tab "Helm" %}} -Helm チャートを使い、デフォルトのリストにマージされる独自のリストを定義できます。環境変数 `DD_SCRUB_ARGS` と `DD_CUSTOM_SENSITIVE_WORDS` を `datadog-values.yaml` ファイルに追加し、Datadog Helm チャートをアップグレードします。 +Helm チャートを使用して、デフォルトのリストにマージされる独自のリストを定義できます。環境変数 `DD_SCRUB_ARGS` と `DD_CUSTOM_SENSITIVE_WORDS` を `datadog-values.yaml` ファイルに追加し、Datadog Helm チャートをアップグレードします。 ```yaml datadog: @@ -357,15 +356,15 @@ agents: {{< /tabs >}} -## クエリ +## クエリ {#queries} -### プロセスのスコーピング +### プロセスのスコーピング {#scoping-processes} プロセスは、本質的に極めてカーディナリティの高いオブジェクトです。関連するプロセスを表示するようにスコープを絞り込むには、テキストフィルターやタグフィルターを使用します。 -#### テキストフィルター +#### テキストフィルター {#text-filters} -検索バーにテキスト文字列を入力すると、コマンドラインやパスにそのテキスト文字列を含むプロセスの照会に、あいまい検索が使用されます。2 文字以上の文字列を入力すると結果が表示されます。下の例では、Datadog のデモ環境を文字列 `postgres /9.` でフィルタリングしています。 +検索バーにテキスト文字列を入力すると、コマンドラインやパスにそのテキスト文字列を含むプロセスをクエリする際に、曖昧文字列検索が使用されます。2 文字以上の文字列を入力すると結果が表示されます。以下の例では、Datadog のデモ環境を文字列 `postgres /9.` でフィルタリングしています。 **注**: `/9.` はコマンドパスの一部と一致し、`postgres` はコマンド自体と一致しています。 @@ -374,29 +373,27 @@ agents: 複合クエリで複数の文字列検索を組み合わせるには、以下のブール演算子を使用します。 `AND` -: **積**: 両方の条件を含むイベントが選択されます(何も追加しなければ、AND がデフォルトです)。
    **例**: `java AND elasticsearch` +: **積**: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルトで使用されます)。
    **例**: `java AND elasticsearch` `OR` : **和**: いずれかの条件を含むイベントが選択されます。
    **例**: `java OR python` `NOT` / `!` -: **排他**: 後続の条件はイベントに含まれません。単語 `NOT` または文字 `!` のどちらを使用しても、同じ演算を行うことができます。
    **例**: `java NOT elasticsearch` または `java !elasticsearch` +: **排他**: 後続の条件がイベントに含まれません。単語 `NOT` または文字 `!` のどちらを使用しても、同じ演算を行うことができます。
    **例**: `java NOT elasticsearch` または `java !elasticsearch` -演算子をグループ化するには括弧を使用します。例: `(NOT (elasticsearch OR kafka) java) OR python`。 +演算子をグループ化するには括弧を使用します。たとえば、`(NOT (elasticsearch OR kafka) java) OR python` です。 -#### タグフィルター +#### タグフィルター {#tag-filters} -プロセスのフィルタリングには、`host`、`pod`、`user`、`service` などの Datadog [タグ][3]を使用することもできます。検索バーに直接タグフィルターを入力するか、ページ左側のファセットパネルで選択します。 +プロセスのフィルタリングには、`host`、`pod`、`user`、`service` などの Datadog [タグ][3] を使用することもできます。検索バーに直接タグフィルターを入力するか、ページ左側のファセットパネルで選択します。 Datadog は自動的に `command` タグを生成するので、以下をフィルタリングできます。 - サードパーティソフトウェア、例: `command:mongod`、`command:nginx` - コンテナ管理ソフトウェア、例: `command:docker`、`command:kubelet` -- 一般的なワークロード、例、`command:ssh`、`command:CRON` +- 一般的なワークロード、例: `command:ssh`、`command:CRON` -### プロセスの集約 - -[タグ付け][3]はナビゲーションを強化します。すべての既存のホストレベルのタグに加えて、プロセスは `user` でもタグ付けされます。 +#### コンテナ化環境タグ {#containerized-environment-tags} さらに、ECS コンテナ内のプロセスは、以下でもタグ付けされます。 @@ -407,103 +404,116 @@ Datadog は自動的に `command` タグを生成するので、以下をフィ Kubernetes コンテナ内のプロセスは、以下でタグ付けされます。 - `pod_name` -- `kube_pod_ip` - `kube_service` - `kube_namespace` - `kube_replica_set` - `kube_daemon_set` - `kube_job` - `kube_deployment` -- `Kube_cluster` +- `kube_cluster_name` + +[Unified Service Tagging][4] の構成がある場合、`env`、`service`、`version` は自動的に取得されます。 +これらのタグが利用できるようになると、APM、ログ、メトリクス、プロセスデータを結びつけられるようになります。 +**注**: この設定はコンテナ化環境にのみ適用されます。 + +#### カスタムタグの作成ルール {#rules-to-create-custom-tags} +
    +ここでは、 Process Tags Read および Process Tag Write Datadog ロールのアクセス許可が必要です。
    +
    + +コマンドラインに基づいてプロセスに手動でタグを追加するためのルール定義を作成できます。 + +1. [**Manage Process Tags**] (プロセスタグの管理) タブで、[_New Process Tag Rule_] (新規プロセスタグルール) ボタンを選択します。 +2. 参照用のプロセスを選択します。 +3. タグのパースおよび一致基準を定義します。 +4. 検証に合格したら、新しいルールを作成します。 -[統合サービスタグ付け][4]のコンフィギュレーションがある場合、`env`、`service`、`version` も自動的に取得されます。 -上記のタグが利用できることで、APM、ログ、メトリクス、プロセスデータを結びつけることができます。 -**注**: このセットアップはコンテナ化環境にのみ適用されます。 +ルールが作成されると、ルール基準に一致するすべてのプロセスコマンドライン値でタグが利用可能になります。これらのタグは検索で利用可能で、[ライブプロセスモニター][6] や [Custom Metrics][13] の定義で使用できます。 -## 散布図 +## 散布図 {#scatter-plot} 散布図分析を使用すると、2 つのメトリクスを比較してコンテナのパフォーマンスをより的確に把握できます。 -[Processes ページ][5]で散布図分析にアクセスするには、_Show Summary graph_ ボタンをクリックし、"Scatter Plot" タブを選択します。 +[Processes ページ][5] で散布図分析にアクセスするには、[_Show Summary graph_] (サマリーグラフを表示) ボタンをクリックし、[Scatter Plot] (散布図) タブを選択します。 -{{< img src="infrastructure/process/scatterplot_selection.png" alt="Scatter plot 選択" style="width:60%;">}} +{{< img src="infrastructure/process/scatterplot_selection.png" alt="散布図の選択" style="width:60%;">}} -デフォルトでは、グラフは `command` タグキーでグループ化されます。ドットのサイズは、各グループ内のプロセスの数を表します。ドットをクリックすると、グループに参加しているすべてのポッドとコンテナが表示されます。 +デフォルトでは、グラフは `command` タグキーでグループ化されます。各ドットのサイズは、そのグループ内のプロセスの数を表します。ドットをクリックすると、グループに参加している個別のプロセスとポッドとコンテナが表示されます。 -散布図分析の上部にあるクエリを使用して、散布図分析を制御できます。 +グラフの上部にあるオプションを使用して、散布図分析を制御できます。 - 表示するメトリクスの選択。 - 2 つのメトリクスの集計方法の選択。 -- X 軸と Y 軸の目盛の選択 (_Linear_/_Log_)。 +- X 軸と Y 軸の目盛の選択 (_線形_/_対数_)。 -{{< img src="infrastructure/process/scatterplot.png" alt="コンテナ検査" style="width:80%;">}} +{{< img src="infrastructure/process/scatterplot.png" alt="コンテナの調査" style="width:80%;">}} -## プロセスモニター +## プロセスモニター {#process-monitors} -複数のホストまたはタグにまたがるプロセスグループのカウントに基づいてアラートを生成するには、[ライブプロセスモニター][6]を使用します。プロセスアラートは、[モニターページ][7]で構成できます。詳細は、[ライブプロセスモニターのドキュメント][6]を参照してください。 +複数のホストまたはタグにまたがるプロセスグループの数に基づいてアラートを生成するには、[ライブプロセスモニター][6] を使用します。プロセスアラートは、[モニターページ][7] で構成できます。詳細は、[ライブプロセスモニターのドキュメント][6] を参照してください。 {{< img src="infrastructure/process/process_monitor.png" alt="プロセスモニター" style="width:80%;">}} -## ダッシュボードおよびノートブックでのプロセス +## ダッシュボードとノートブックでのプロセス {#processes-in-dashboards-and-notebooks} -ダッシュボードやノートブックでプロセスメトリクスをグラフ化するには、[時系列ウィジェット][8]を使用します。構成するには、 -1. プロセスをデータソースとして選択 -2. 検索バーのテキスト文字列を使用してフィルタリング -3. グラフ化するプロセスメトリクスを選択 -4. `From` フィールドのタグを使用してフィルタリング +ダッシュボードやノートブックでプロセスメトリクスをグラフ化するには、[時系列ウィジェット][8] を使用します。構成するには、次のようにします。 +1. プロセスをデータソースとして選択します。 +2. 検索バーのテキスト文字列を使用してフィルタリングします。 +3. グラフ化するプロセスメトリクスを選択します。 +4. `From` フィールドのタグを使用してフィルタリングします。 {{< img src="infrastructure/process/process_widget.png" alt="プロセスウィジェット" style="width:80%;">}} -## サードパーティソフトウェアをモニタリング +## サードパーティソフトウェアのモニタリング {#monitoring-third-party-software} -### 自動検出インテグレーション +### 自動検出インテグレーション {#autodetected-integrations} -Datadog ではプロセス収集を使用して、ホストで実行されているテクノロジーを自動検出します。これにより、こうしたテクノロジーの監視に役立つ Datadog インテグレーションが識別されます。この自動検出されたインテグレーションは、[インテグレーション検索][1]に表示されます。 +Datadog ではプロセス収集を使用して、ホストで実行されているテクノロジーを自動検出します。これにより、こうしたテクノロジーのモニターに役立つ Datadog インテグレーションが識別されます。この自動検出されたインテグレーションは、[インテグレーションの検索][1] に表示されます。 -{{< img src="getting_started/integrations/ad_integrations.png" alt="自動検出されたインテグレーション" >}} +{{< img src="getting_started/integrations/ad_integrations.png" alt="自動検出インテグレーション" >}} 各インテグレーションには、次の 2 つのステータスタイプのいずれかがあります。 -- **+ Detected**: このインテグレーションは、それを実行しているホストでは有効になっていません。 -- **✓ Partial Visibility**: このインテグレーションは、一部で有効になっていますが、すべての関連ホストで実行されているわけではありません。 +- **+ Detected** (+ 検出済み): このインテグレーションは、それを実行しているホストでは有効になっていません。 +- **✓ Partial Visibility** (✓ 部分的な可視性): このインテグレーションは、一部で有効になっていますが、すべての関連ホストで実行されているわけではありません。 -インテグレーションを実行しているが、インテグレーションが有効になっていないホストは、インテグレーションタイルの **Hosts** タブにあります。 +インテグレーションを実行しているが、インテグレーションが有効になっていないホストは、インテグレーションタイルの [**Hosts**] (ホスト) タブにあります。 -### インテグレーションビュー +### インテグレーションビュー {#integration-views} {{< img src="infrastructure/process/integration_views.png" alt="インテグレーションビュー" >}} -サードパーティ製ソフトウェアが検出された後、ライブプロセスはそのソフトウェアのパフォーマンスを分析するのに役立ちます。 -1. まず、ページ右上の *Views* をクリックし、Nginx、Redis、Kafka などの予め設定されたオプションの一覧を開きます。 -2. そのソフトウェアを実行中の処理のみにページのスコープを設定するビューを選択します。  -3. 重いプロセスを検査する際は、*Integration Metrics* タブに切り替え、基底のホストにあるソフトウェアの健全性を分析します。関連する Datadog インテグレーションを有効にしてある場合は、インテグレーションから収集されたすべてのパフォーマンスメトリクスを表示できるため、問題がホストレベルなのかソフトウェアレベルなのかを判断できます。たとえば、プロセス CPU と MySQL クエリのレイテンシーが相関して急上昇する場合、全表スキャンなどの集中的な操作が、同じ基底のリソースに依存する別の MySQL クエリの実行を遅らせていることが考えられます。 +サードパーティソフトウェアが検出されると、Live Processes はそのソフトウェアのパフォーマンスを分析するのに役立ちます。 +1. まず、ページ右上の *Views* (ビュー) をクリックし、Nginx、Redis、Kafka などの、あらかじめ設定されたオプションの一覧を開きます。 +2. そのソフトウェアを実行中の処理のみにページを限定するビューを選択します。 +3. 重いプロセスを調べる場合は、[*Integration Metrics*] (インテグレーションメトリクス) タブに切り替え、基盤となるホストにあるソフトウェアの健全性を分析します。関連する Datadog インテグレーションを有効にしてある場合は、インテグレーションから収集されたすべてのパフォーマンスメトリクスを表示できるため、問題がホストレベルなのかソフトウェアレベルなのかを判断できます。たとえば、プロセス CPU と MySQL クエリのレイテンシーが相関して急上昇する場合、全表スキャンなどの集中的な操作が、同じ基盤となるリソースに依存する別の MySQL クエリの実行を遅らせていることが考えられます。 -インテグレーションビュー(ホストごとに Nginx 処理のクエリを集約する場合)や他のカスタムクエリをカスタマイズするには、ページ上部の *+Save* ボタンをクリックします。この操作により、クエリ、テーブルの列の選択、可視化設定が保存されます。保存ビューを作成し、追加のコンフィギュレーション無しに必要な処理へ迅速にアクセスへしたり、チームメイトとプロセスデータを共有したりできます。 +インテグレーションビュー (ホストごとに Nginx 処理のクエリを集約する場合) やほかのカスタムクエリをカスタマイズするには、ページ上部の [*+Save*] (+保存) ボタンをクリックします。この操作により、クエリ、テーブルの列の選択、可視化設定が保存されます。保存ビューを作成して、追加の構成なしに必要なプロセスに迅速にアクセスしたり、チームメイトとプロセスデータを共有したりできます。 -## プラットフォームにおけるプロセス +## プラットフォームにおけるプロセス {#processes-across-the-platform} -### ライブコンテナ +### ライブコンテナ {#live-containers} -ライブプロセスは、それぞれのコンテナで実行中のプロセスを監視することで、コンテナデプロイの可視化をさらに強化しています。[ライブコンテナ][9]ページでコンテナをクリックすると、実行中のコマンドやリソース消費量を含むプロセスツリーが表示されます。コンテナメトリクスと共にこのデータを使用し、コンテナやデプロイの不具合の根本的な原因を探ります。 +Live Processes では、それぞれのコンテナで実行中のプロセスをモニターすることで、コンテナデプロイの可視化をさらに強化しています。[ライブコンテナ][9] ページでコンテナをクリックすると、実行中のコマンドやリソース消費量を含むプロセスツリーが表示されます。ほかのコンテナメトリクスと共にこのデータを使用し、コンテナやデプロイの不具合の根本原因を判別します。 -### APM +### APM {#apm} -[APM トレース][10]でサービスのスパンをクリックすると、基礎インフラストラクチャーで実行中のプロセスを確認できます。サービスのスパンプロセスは、リクエスト時にサービスが実行されているホストまたはポッドと相関関係にあります。CPU および RSS メモリなどのプロセスメトリクスをコードレベルのエラーとともに分析することで、アプリケーション特有の問題かインフラストラクチャーの問題かを見分けることができます。プロセスをクリックすると、ライブプロセス ページが開きます。関連するプロセスはサーバーレスおよびブラウザのトレースでサポートされていません。 +[APM トレース][10] でサービスのスパンをクリックすると、基盤となるインフラストラクチャーで実行中のプロセスを確認できます。サービスのスパンプロセスは、リクエスト時にサービスが実行されているホストまたはポッドと相関関係にあります。CPU および RSS メモリなどのプロセスメトリクスをコードレベルのエラーと共に分析することで、アプリケーション固有の問題なのか、インフラストラクチャーの問題なのかを切り分けることができます。プロセスをクリックすると、Live Processes ページが開きます。関連するプロセスは、サーバーレスおよびブラウザのトレースでサポートされていません。 -### Cloud Network Monitoring +### Cloud Network Monitoring {#cloud-network-monitoring} -[Network Analytics][11] ページで依存関係を調べる際、相互に通信するエンドポイント (サービスなど) の基底のインフラストラクチャーで実行される処理を確認できます。プロセスメタデータを使用して、ネットワークの接続の悪さ (TCP の再送信数が多いことから) やネットワークの呼び出し遅延の高さ (TCP ラウンドトリップタイムが長いことから) の原因が、エンドポイントのリソースを消費する重いワークロードであり、結果、通信の健全性や効率性に影響を与えているかを判断できます。 +[Network Analytics][11] ページで依存関係を調べる際、相互に通信するエンドポイント (サービスなど) の基盤となるインフラストラクチャーで実行されるプロセスを確認できます。プロセスメタデータを使用して、ネットワーク接続の不具合 (TCP の再送信数が多いことを示唆) やネットワーク呼び出しレイテンシーの高さ (TCP ラウンドトリップタイムが長いことを示唆) の原因が、エンドポイントのリソースを消費する重いワークロードであり、その結果、通信の健全性や効率性に影響を与えているかを判断できます。 -## リアルタイムの監視 +## リアルタイムのモニター {#real-time-monitoring} -通常、プロセスは 10 秒間隔で収集されます。Live Processes ページをアクティブに操作している間は、CPU などの変動が大きいメトリクスをリアルタイムで確認できるよう、2 秒間隔で収集され、リアルタイムで表示されます。ただし、履歴としての文脈では、デフォルトの 10 秒間隔でメトリクスが取り込まれます。 +通常、プロセスは 10 秒間隔で収集されます。Live Processes ページでアクティブに作業している間は、メトリクスが 2 秒間隔で収集され、リアルタイムで表示されます。これは、CPU などの変動が大きいメトリクスで重要です。ただし、履歴として収集する場合は、デフォルトの 10 秒間隔でメトリクスが取り込まれます。 -## 追加情報 +## 追加情報 {#additional-information} -- リアルタイム (2 秒) データ収集は 30 分後にオフになります。リアルタイム収集を再開するには、ページをリフレッシュします。 -- コンテナのデプロイで、各プロセスのユーザー名を収集するには、`docker-dd-agent` にマウントされた `/etc/passwd` ファイルが必要です。これは公開ファイルですが、プロセス Agent はユーザー名以外のフィールドを使用しません。`user` メタデータフィールド以外のすべての機能は、このファイルにアクセスせずに機能します。**注**: ライブプロセスは、ホストの `passwd` ファイルのみを使用し、コンテナ内に作成されたユーザーのユーザー名解決は実行しません。 +- リアルタイム (2 秒) のデータ収集は 30 分後にオフになります。リアルタイム収集を再開するには、ページをリフレッシュします。 +- コンテナのデプロイで、各プロセスのユーザー名を収集するには、`docker-dd-agent` にマウントされた `/etc/passwd` ファイルが必要です。これは公開ファイルですが、プロセスエージェントはユーザー名以外のフィールドを使用しません。Agent が特権なしで実行されている場合は、マウントは行われません。`/etc/passwd` ファイルへのアクセス権がない場合でも、`user` メタデータフィールド以外のすべての機能は動作します。**注**: Live Processes は、ホストの `passwd` ファイルのみを使用し、コンテナ内で作成されたユーザーのユーザー名解決は実行しません。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -519,3 +529,5 @@ Datadog ではプロセス収集を使用して、ホストで実行されてい [10]: /ja/tracing/ [11]: /ja/network_monitoring/cloud_network_monitoring/network_analytics [12]: /ja/agent/configuration/agent-commands/#restart-the-agent +[13]: /ja/metrics/custom_metrics/ +[14]: /ja/network_monitoring/cloud_network_monitoring/ \ No newline at end of file diff --git a/content/ja/infrastructure/resource_catalog/_index.md b/content/ja/infrastructure/resource_catalog/_index.md new file mode 100644 index 00000000000..479144ba18b --- /dev/null +++ b/content/ja/infrastructure/resource_catalog/_index.md @@ -0,0 +1,147 @@ +--- +aliases: +- /ja/security_platform/cspm/resource_catalog +- /ja/security/cspm/resource_catalog +- /ja/security/misconfigurations/resource_catalog +further_reading: +- link: /security/cloud_security_management/misconfigurations/ + tag: よくあるご質問 + text: Cloud Security Misconfigurations +- link: /security/threats/ + tag: よくあるご質問 + text: Workload Protection +- link: https://www.datadoghq.com/blog/datadog-resource-catalog/ + tag: ブログ + text: Datadog Resource Catalog を使用してインフラストラクチャーリソースをガバナンスする +- link: https://www.datadoghq.com/blog/infrastructure-troubleshooting-recent-changes/ + tag: ブログ + text: Recent Changes を使用してインフラストラクチャーの問題をより迅速にトラブルシューティングする +- link: https://www.datadoghq.com/blog/resource-catalog-natural-language-querying + tag: ブログ + text: Resource Catalog でマルチクラウドインフラストラクチャーを平易な英語でクエリする +- link: https://www.datadoghq.com/blog/cambia-health-cost-optimization + tag: ブログ + text: Cambia Health Solutions が Cloud Cost Management と Datadog Resource Catalog + を使用して月額 30,000 ドルを節約した方法 +is_beta: true +title: Datadog Resource Catalog +--- +## 概要 {#overview} + +Datadog Resource Catalog は、すべてのインフラストラクチャーリソースの中心的なハブです。リソースのコンプライアンス管理、インシデントの根本原因の調査、インフラストラクチャーにおける可観測性のギャップの解消に役立ちます。Resource Catalog を使用すると、メタデータ、所有権、構成、資産間の関係、リソースにおけるアクティブなセキュリティリスクなどの重要なリソース情報を把握できます。 + +Resource Catalog は、Datadog のクラウドインテグレーションと Datadog Agent を活用して、ホスト、データベース、ストレージサービスなどのクラウドリソースからデータを収集します。 + +{{< img src="/infrastructure/resource_catalog/resource_catalog_new_2.png" alt="リソースタイプ別にグループ化された Catalog タブを表示している Resource Catalog ページ" width="100%">}} + +### ユースケース {#use-cases} + +#### リソースポリシーとレポート{#resource-policies-and-reporting} +- 所有権、バージョン管理、移行などに関するインフラストラクチャーのコンプライアンス状況を可視化できます。 +- クロステレメトリのインサイトを最適化するために、適切なタグ付けのベストプラクティスを促進します。 +- サービスの依存関係におけるセキュリティ脆弱性を特定して修正することで、アプリケーションのリスクを低減します。 +- エンジニアリングリーダーシップに、チームやクラウドアカウント全体のセキュリティプラクティスの概要を提供します。 +- 記録保持や監査のためにリソースをエクスポートします。 + +#### インシデントやパフォーマンスの問題をトラブルシューティングする{#troubleshoot-incidents-and-performance-issues} +- リソースの健全性とパフォーマンスを把握するために、テレメトリ、ダッシュボード、その他の Datadog ビューから豊富なインサイトにアクセスできます。 +- インシデント対応を迅速化するために、関連リソースのチームおよびサービスのオーナーを特定します。 +- リソースの構成変更を確認し、考えられる根本原因を特定します。 + +#### 監視可能性を最適化する{#optimize-observability} +- Datadog によってより適切に監視できるリソースを特定し、監視可能性のギャップを埋めます。 +- 誤構成が最も発生しやすいリソースや、セキュリティの誤構成を積極的に報告していないリソースを特定し、適切なセキュリティカバレッジを確保します。 + +## セットアップ {#setup} + +デフォルトでは、Resource Catalog に移動すると、Datadog Agent で監視されているホストや、CNM (Cloud Network Monitoring) や DBM (Database Monitoring) などの他の Datadog 製品のためにクロールされたクラウドリソースを確認できます。Resource Catalog で追加のクラウドリソースを表示するには、[Resource Catalog][5] のセットアップページで **extend resource collection** をオンにします。 + +{{< img src="/infrastructure/resource_catalog/resource_catalog_settings.png" alt="リソース収集の拡張設定を行う Resource Catalog の構成ページ" width="100%">}} + +
    リソース収集を有効にすると、AWS CloudWatch のコストに影響する可能性があります。これらの課金を回避するには、Datadog AWS IntegrationMetric Collection タブで Usage メトリクスを無効にします。 +
    + +{{< img src="/infrastructure/resource_catalog/aws_usage_toggle.png" alt="アカウント設定の AWS Usage トグル" style="width:100%;" >}} + +## Resource Catalog の閲覧{#browse-the-resource-catalog} + +[Resource Catalog ページ][2] で、Datadog 組織内のクラウドリソースを探索します。カタログは、リソースに Agent がインストールされている場合、またはクラウドインテグレーションが構成されている場合に、そのリソースを検出します。 + +### Catalog タブ{#catalog-tab} + +Catalog タブでは、リソースのコンテキストが表示され、チームのオーナー情報や関連サービスなどが含まれます。インシデント発生前に、不足しているオーナー情報を事前に特定し、補完するのに役立ちます。Resource Catalog は、リソースタイプごとにカスタマイズされたリソース属性も表示します。ホストのインスタンスタイプやデータベースのバージョンなど、特定の属性でリソースを検索できます。 + +**注**: [Datadog Teams][4] を使用している場合は、左パネルの **Teams** トグルを選択し、割り当てられているチームのトグルを選択すると、そのチームに割り当てられたリソースのみを表示できます。さらに、Resource Catalog リストは右上隅から CSV ファイルとしてエクスポートできます。 + +リスト内の任意のリソースに対応するクラウドコンソールにアクセスするには、リソースをクリックしてサイドパネルを開きます。次に、右上隅の **Open Resource** ドロップダウンをクリックすると、リダイレクトされます。 + +{{< img src="/infrastructure/resource_catalog/resource_catalog_sidepanel_2.png" alt="Resource Catalog のサイドパネルで Open Resource ドロップダウンが強調表示されています。" >}} + +### ホストまたはリソースを調査する{#investigate-a-host-or-resource} + +
    このパネルにはシークレットは表示されません。表示される「シークレット」は、ランダムに生成された文字列であり、セキュリティリスクはありません。
    + +ホストをクリックすると、詳細を含むサイドパネルが開きます: + +- **Host information** (ホストに関連する名前、アカウント、OS、インスタンスタイプ、タグ、メタデータなど) +- **Host Summary** (アクティブなモニターアラートと有効な製品を表示) +- **Telemetry** (メトリクス、ログ、トレース、プロセスなど) +- **Containers** (ホストにアタッチされたコンテナのメトリクスを表示) +- **Infra map** ([Cloudcraft ダイアグラム][17] を表示) +- **Relationships** (他のリソースへの接続のインタラクティブマップを表示) +- **Profiles** (ホストに関連付けられたプロファイル ([プロファイラー][20] が必要)) +- **Network** (タグでフィルタリングでき、カスタマイズ可能なグラフで表示されるネットワーク情報) +- **Changes** (ホストの変更履歴をカスタマイズ可能に表示) +- **Security** (一般的なミスコンフィギュレーション、[IaC misconfigurations][21]、シグナル、脆弱性、アイデンティティリスク、アクセスインサイトを表示) +- **Cost** (ホストのコストを削減するための推奨事項を含む) +- **Agent** (JSON 形式で Agent の設定を表示) +- **OTel Collector** (OpenTelemetry Collector の設定を表示 (Preview)) + +{{< img src="/infrastructure/resource_catalog/resource_catalog_host_side_panel-2.png" alt="ホストサイドパネルを開いた状態の Resource Catalog" width="100%">}} + +任意のリソースをクリックすると、サイドパネルが開き、以下のような詳細が表示されます。 + +- **Resource Info** (リソース固有のタグと JSON 形式のリソース定義を含む) +- **Telemetry** (メトリクスとログを含む) +- **Relationships** (他のリソースへの接続のインタラクティブマップを表示) +- **Changes** (リソースの変更履歴を表示) +- **Security** (誤構成、シグナル、脆弱性、アイデンティティリスクを表示) + +## Resource Changes (Preview) {#resource-changes-in-preview} + +{{< callout url="https://www.datadoghq.com/product-preview/recent-changes-tab/" >}} +Resource Changes は Preview です。Request Access をクリックし、フォームに入力してアクセスをリクエストしてください。 +{{< /callout >}} + +Resource Changes は、クラウドインフラストラクチャーの構成変更に対する可視性と制御を提供します。リソースの変更を監視し、インシデントのトラブルシューティングや環境の変化の把握に役立ちます。 + +詳細については、[Resource Changes][16] を参照してください。 + +{{< img src="/infrastructure/resource_catalog/resource-changes.png" alt="Datadog Resource Changes インターフェイスは、インフラストラクチャーの構成変更のリストを表示します。画面には、「vm-new-jmcintyre-kafka」という名前の VM インスタンスが表示され、StorageProfile の更新と、JSON 形式の変更を強調表示したサイドバイサイドの差分ビューが含まれています。テーブルには、タイムスタンプ、変更タイプ (主に「UPDATE」)、および変更の詳細を持つ複数のリソースが表示されます。上部には、クラウド、リージョン、環境、その他の属性のフィルターがあります。" width="100%">}} + + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/security/cloud_security_management/setup +[2]: https://app.datadoghq.com/infrastructure/catalog +[3]: /ja/integrations/#cat-notification +[4]: /ja/account_management/teams +[5]: https://app.datadoghq.com/infrastructure/catalog/configuration +[6]: /ja/integrations/amazon_config/#resource-changes-collection +[7]: https://app.datadoghq.com/integrations +[8]: /ja/integrations/google_cloud_platform/#resource-changes-collection +[9]: https://www.datadoghq.com/product-preview/recent-changes-tab/ +[10]: https://docs.datadoghq.com/ja/security/cloud_security_management/misconfigurations/ +[11]: https://docs.datadoghq.com/ja/security/threats/ +[12]: https://docs.datadoghq.com/ja/security/cloud_security_management/identity_risks/ +[13]: https://docs.datadoghq.com/ja/security/cloud_security_management/vulnerabilities/ +[14]: https://app.datadoghq.com/integrations/azure +[15]: https://docs.datadoghq.com/ja/infrastructure/resource_catalog/schema/ +[16]: /ja/infrastructure/resource_catalog/resource_changes/ +[17]: /ja/datadog_cloudcraft/ +[18]: /ja/integrations/ntp/ +[19]: /ja/infrastructure/process/?tab=linuxwindows#installation +[20]: /ja/profiler/enabling/ +[21]: /ja/security/code_security/iac_security/ \ No newline at end of file diff --git a/content/ja/logs/_index.md b/content/ja/logs/_index.md index 50c2aa18efd..fb480a3c4c4 100644 --- a/content/ja/logs/_index.md +++ b/content/ja/logs/_index.md @@ -9,64 +9,67 @@ aliases: cascade: algolia: rank: 70 -description: ホスト、コンテナ、サービスからログを収集するように Datadog Agent を設定します。 +description: Datadog Agent を、ホスト、コンテナ、およびサービスからログを収集するように構成します。 disable_sidebar: true further_reading: - link: https://app.datadoghq.com/release-notes?category=Log%20Management - tag: Release Notes - text: Datadog Log Management の最新リリースを確認する (アプリへのログインが必要) + tag: リリースノート + text: Datadog Log Management の最新リリースをチェック (アプリログインが必要です) - link: /logs/log_collection/ - tag: Documentation - text: ログの収集を開始する + tag: よくあるご質問 + text: ログの収集開始 - link: https://learn.datadoghq.com/courses/intro-to-log-management - tag: Learning Center - text: Log Management の概要 + tag: ラーニングセンター + text: Log Management の紹介 - link: https://dtdg.co/fe tag: Foundation Enablement - text: Log Management を最適化するためのインタラクティブセッションに参加する + text: Log Management を最適化するためのインタラクティブなセッションにご参加ください - link: https://www.datadoghq.com/blog/accelerate-incident-investigations-with-log-anomaly-detection/ - tag: Blog - text: Log Anomaly Detection によるインシデント調査の迅速化 + tag: ブログ + text: ログ異常検出によるインシデント調査の迅速化 - link: https://www.datadoghq.com/blog/monitor-iot-devices-at-scale-with-log-management/ - tag: Blog - text: Datadog Log Management を使用した大規模な IoT デバイスのモニタリング + tag: ブログ + text: Datadog Log Management で IoT デバイスを大規模にモニターする - link: https://www.datadoghq.com/blog/monitoring-firewall-logs-datadog/ - tag: Blog - text: Datadog によるファイアウォールログのモニタリング + tag: ブログ + text: Datadog でファイアウォールログをモニターする - link: https://www.datadoghq.com/blog/cidr-queries-datadog-log-management/ - tag: Blog - text: CIDR 表記のクエリを使用したネットワークトラフィックログのフィルタリング + tag: ブログ + text: CIDR 表記クエリを使用してネットワークトラフィックログをフィルターする - link: https://www.datadoghq.com/blog/monitor-1password-datadog-cloud-siem/ - tag: Blog - text: Datadog Cloud SIEM による 1Password のモニタリング + tag: ブログ + text: Datadog Cloud SIEM で 1Password をモニターする - link: https://www.datadoghq.com/blog/filter-logs-by-subqueries-with-datadog/ - tag: Blog + tag: ブログ text: サブクエリを使用したログの動的なフィルタリングと相関付け - link: https://www.datadoghq.com/blog/monitor-dns-logs-for-network-and-security-datadog/ - tag: Blog - text: ネットワークおよびセキュリティ分析のための DNS ログのモニタリング -- link: https://www.datadoghq.com/architecture/a-guide-to-log-management-indexing-strategies-with-datadog/ - tag: Architecture Center - text: Datadog による Log Management インデックス戦略ガイド + tag: ブログ + text: ネットワークとセキュリティ分析のための DNS ログのモニター - link: https://www.datadoghq.com/blog/archive-search/ - tag: Blog - text: Datadog Archive Search による過去ログの効率的な検索 + tag: ブログ + text: Datadog Archive Search を使用して、履歴ログをより効率的に検索 - link: https://www.datadoghq.com/blog/human-name-detection - tag: Blog - text: Sensitive Data Scanner の機械学習によるログ内の氏名の検出 + tag: ブログ + text: Sensitive Data Scanner の ML を使用してログ内の人名を検出する +- link: https://www.datadoghq.com/blog/monitoring-load-balancer-logs + tag: ブログ + text: アプリケーションとネットワークロードバランサーのログをモニターする +- link: https://www.datadoghq.com/architecture/a-guide-to-log-management-indexing-strategies-with-datadog/ + tag: Architecture Center + text: Datadog を使用した Log Management インデックス戦略ガイド title: Log Management --- -{{< learning-center-callout header="イネーブルメントウェビナーセッションへの参加" hide_image="true" btn_title="Sign Up" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Logs">}} - 入門または中級のイネーブルメントセッションに参加して、Datadog Log Management がログ、メトリクス、トレースを単一のビューに統合し、ログデータの分析に役立つ豊富なコンテキストを提供する方法を学びましょう。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Logs">}} + 入門または中級のイネーブルメントセッションに参加して、Datadog Log Management がログ、メトリクス、トレースを 1 つのビューに統合し、ログデータ分析に必要な、豊富なコンテキストを提供する仕組みを学びましょう。 {{< /learning-center-callout >}} ## 概要 {#overview} -インフラストラクチャーの健全性を維持するには、システム運用の重要な部分をログに記録することが不可欠です。最新のインフラストラクチャーには、1 分間に数千ものログイベントを生成する能力があります。このような状況では、どのログをログ管理ソリューションに送信し、どのログをアーカイブするかを選択する必要があります。しかし、送信前にログをフィルタリングすると、カバレッジにギャップが生じたり、貴重なデータが誤って削除されたりする可能性があります。 +インフラストラクチャーの健全性を維持するには、システム運用の重要な部分をログに記録することが不可欠です。最新のインフラストラクチャーでは、1 分あたり数千件のログイベントが発生することもあります。このような状況では、ログ管理ソリューションに送信するログとアーカイブするログを選択する必要があります。しかし、送信前にログをフィルタリングすると、カバレッジに抜けが生じたり、貴重なデータを誤って除いてしまったりする可能性があります。 -Datadog Log Management (Datadog ログまたはロギングとも呼ばれます) は、ログの取り込みとインデックス作成を切り離すことで、これらの制限を解消します。これにより、すべてのログを制限なく、コスト効率よく収集、処理、アーカイブ、探索、モニタリングできるようになります。これは Logging without Limits\* としても知られています。 +Datadog Log Management (Datadog ログまたはロギングとも呼ぶ) は、ログの取り込みとインデックス作成を切り離すことでこうした制約を解消します。これにより、すべてのログを制限なしにコスト効率よく収集、処理、アーカイブ、調査、モニターできるようになります。これは、Logging without Limits* とも呼ばれます。 -Logging without Limits\* は [ログエクスプローラー][1]での合理化されたトラブルシューティング体験を可能にし、ユーザーやチームがインフラストラクチャーの問題を迅速に評価して修正できるようにします。直感的なアーカイブ機能を提供し、監査や評価の際にセキュリティチームと IT チームをサポートします。Logging without Limits* は [Datadog Cloud SIEM][2] の基盤でもあり、ログのインデックス作成を必要とせずに環境内のセキュリティ脅威を検出します。 +Logging without Limits\* により、[ログエクスプローラー][1] でのトラブルシューティングが効率化され、管理者やチームはインフラストラクチャーの問題を迅速に評価して修正できるようになります。また、直感的なアーカイブ機能で、監査や評価の際にセキュリティチームと IT チームをサポートします。Logging without Limits* は、[Datadog Cloud SIEM][2] も強化します。ログのインデックス作成をしなくても、環境内のセキュリティ脅威を検出します。 {{< vimeo url="https://player.vimeo.com/progressive_redirect/playback/293195142/rendition/1080p/file.mp4?loc=external&signature=8a45230b500688315ef9c8991ce462f20ed1660f3edff3d2904832e681bd6000" poster="/images/poster/logs.png" >}} @@ -74,43 +77,43 @@ Logging without Limits\* は [ログエクスプローラー][1]での合理化 ## 収集 {#collect} -Datadog Log Management を使い始めるには、ホスト、コンテナ、クラウドプロバイダー、その他のソースからの [ログの取り込み][4] を開始します。 +まず、ホスト、コンテナ、クラウドプロバイダーなどのソースから [ログを取り込み][4]、Datadog Log Management を始めましょう。 -##設定 {#configure} +## 構成 {#configure} -{{< img src="logs/lwl_marketecture_20231030.png" alt="ログを 1 か所で設定" >}} +{{< img src="logs/lwl_marketecture_20231030.png" alt="すべてのログを一元的に設定する" >}} -ログを取り込んだ後は、[ログ設定オプション][5]を使用して、パイプラインとプロセッサーによるログの処理と強化、インデックスによるログ管理予算の制御、取り込んだログからのメトリクス生成、ストレージが最適化されたアーカイブ内でのログ管理ができます。 +ログを取り込んだら、パイプラインやプロセッサーですべてのログを処理してリッチ化し、インデックスでログ管理予算をコントロールし、取り込んだログからメトリクスを生成し、[ログ構成オプション][5] でストレージに最適化したアーカイブでログを管理することができます。 -##接続 {#connect} +## 接続 {#connect} -{{< img src="/logs/connect.png" alt="ログとメトリクスまたはトレースの相関付け" style="width:80%;">}} +{{< img src="/logs/connect.png" alt="ログとメトリクスまたはトレースの相関" style="width:80%;">}} -ログをメトリクスやトレースに接続することで、可観測性の柱を活用できます。 +ログをメトリクスやトレースに接続すると、可観測性の重要な機能を活用することができます。 -- [ログとトレースを接続][6]して、アプリケーションの可観測性を確保します。 --[ログとメトリクスを相関付け][7]して、問題のコンテキストを把握し、サービス全体にマッピングします。 +- [ログとトレースを接続する][6] ことで、アプリケーションの可観測性を高めます。 +- [ログとメトリクスの相関付け][7] により、問題のコンテキストを把握し、サービス全体にマッピングすることができます。 -##探索 {#explore} +## エクスプローラー {#explore} -[ログエクスプローラー][1]で、取り込んだログの探索を開始します。 +[ログエクスプローラー][1] で取り込んだログを探索できます。 -**ヒント**: Datadog のグローバル検索から ログエクスプローラーを開くには、Cmd/Ctrl キーを押しながら K キーを押し、`logs` を検索します。 +**ヒント**: Datadog のグローバル検索からログエクスプローラーを開くには、Cmd/Ctrl + K を押して `logs` を検索します。 -{{< img src="/logs/explore.png" alt="取り込んだログの探索" style="width:80%;">}} +{{< img src="/logs/explore.png" alt="取り込んだログを探索する" style="width:80%;">}} - [検索][8]: すべてのログを検索します。 --[Live Tail][9]: 取り込まれたログをすべての環境でリアルタイムで確認します。 --[分析][10]: インデックス化されたログに対してログ分析を実行します。 --[パターン][11]: インデックス化されたログをクラスタリングして、ログパターンを特定します。 --[Saved Views][12]: 保存済みビューを使用して、ログエクスプローラーを自動的に設定します。 +- [Live Tail][9]: すべての環境で取り込んだログをリアルタイムで確認できます。 +- [分析][10]: インデックス化されたログに対してログ分析を実行します。 +- [パターン][11]: インデックス化されたログをクラスター化して、ログパターンを特定します。 +- [Saved Views][12]: 保存ビューを使用してログエクスプローラーを自動設定します。 -{{< learning-center-callout header="ラーニングセンターで Log Management の概要を試す" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/intro-to-log-management">}} - 実際のクラウドコンピューティング容量と Datadog トライアルアカウントを使用して、無料で学習できます。今すぐ登録して、ログ収集、クエリ、分析、メトリクス、モニタリング、処理、ストレージ、アクセス制御について詳しく学びましょう。 +{{< learning-center-callout header="学習センターで Log Management の入門を試す" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/intro-to-log-management">}} + 実際のクラウドの計算リソースと Datadog のトライアルアカウントを使って、無料で学習できます。今すぐ登録して、ログの収集、クエリ、分析、メトリクス、モニタリング、処理、ストレージ、アクセス制御について詳しく学びましょう。 {{< /learning-center-callout >}} -## その他の参考資料 {#further-reading} +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}}
    diff --git a/content/ja/logs/log_collection/javascript.md b/content/ja/logs/log_collection/javascript.md index 3bd2dea61e9..6b87a9867c4 100644 --- a/content/ja/logs/log_collection/javascript.md +++ b/content/ja/logs/log_collection/javascript.md @@ -6,26 +6,26 @@ aliases: - /ja/logs/log_collection/web_browser title: ブラウザログ収集 --- -ブラウザログ SDK を使用して、Web ブラウザページから Datadog にログを送信します。 +Browser Logs SDK を使用して、Web ブラウザページから Datadog にログを送信します。 -ブラウザログ SDK を使用すると、Web ブラウザページから Datadog にログを直接送信すると共に、次の機能を利用できます。 +Browser Logs SDK を使用すると、Web ブラウザページから Datadog にログを直接送信すると共に、次の機能を利用できます。 - SDK をロガーとして使用する。すべてが JSON ドキュメントとして Datadog に転送されます。 -送信される各ログに `context` およびカスタム属性を追加する。 -すべてのフロントエンドエラーを自動的にラップして転送する。 -フロントエンドエラーを転送する。 -実際のクライアント IP アドレスとユーザーエージェントを記録する。 -自動一括ポストによってネットワークの利用を最適化する。 -Worker および Service Worker 環境で使用する。 +- SDK をロガーとして使用する。すべてが JSON ドキュメントとして Datadog に転送されます。 +- 送信される各ログに `context` およびカスタム属性を追加する。 +- すべてのフロントエンドエラーを自動的にラップして転送する。 +- フロントエンドエラーを転送する。 +- 実際のクライアント IP アドレスとユーザーエージェントを記録する。 +- 自動一括ポストによってネットワークの利用を最適化する。 +- Worker および Service Worker 環境で使用する。 **注**: - **RUM SDK とは独立**: Browser Logs SDK は RUM SDK がなくても利用できます。 -**Worker 環境**: Browser Logs SDK は同じセットアップ方法により、Worker および Service Worker 環境で動作します。ただし、Worker 環境から送信されたログにはセッション情報が自動的に記録されません。 +- **RUM SDK とは独立**: Browser Logs SDK は RUM SDK がなくても利用できます。 +- **Worker 環境**: Browser Logs SDK は同じセットアップ方法により、Worker および Service Worker 環境で動作します。ただし、Worker 環境から送信されたログにはセッション情報が自動的に記録されません。 -## セットアップ +## セットアップ {#setup} -### ステップ 1 - クライアントトークンを作成 +### ステップ 1 - クライアントトークンを作成する{#step-1-create-a-client-token} Datadog で、[**Organization Settings (組織設定) > New Client Tokens (新しいクライアントトークン)**][1] に移動します。 @@ -33,7 +33,7 @@ Datadog で、[**Organization Settings (組織設定) > New Client Tokens (新
    セキュリティ上の理由から、API キーは Browser Logs SDK の設定に使用できません。理由は、JavaScript コード内でクライアント側に公開されるためです。Web ブラウザからログを収集するには、クライアントトークンを使用する必要があります。
    -### ステップ 2 - Logs Browser SDK をインストール +### ステップ 2 - Logs Browser SDK をインストールする{#step-2-install-the-logs-browser-sdk} Browser SDK のインストール方法を選択します。 @@ -42,9 +42,9 @@ Browser SDK のインストール方法を選択します。 最新の Web アプリケーションの場合、Datadog では Node Package Manager (npm) を通じてのインストールを推奨しています。Browser SDK は、フロントエンドの JavaScript コードの残りの部分と一緒にパッケージ化されています。ページのロードパフォーマンスには影響しません。ただし、SDK は、SDK の初期化前に発生したエラーやコンソールログをキャプチャできない場合があります。Datadog では、Browser Logs SDK と一致するバージョンの使用を推奨しています。 -[`@datadog/browserlogs`][13] を `package.json` ファイルに追加してください。たとえば、npm cli を使う場合です。 +[`@datadog/browser-logs`][13] を `package.json` ファイルに追加します。たとえば、npm cli を使う場合です。 -[13]: https://www.npmjs.com/package/@datadog/browserlogs +[13]: https://www.npmjs.com/package/@datadog/browser-logs {{% /tab %}} {{% tab "CDN 非同期" %}} @@ -61,7 +61,7 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v7/datadog-logs.js','DD_LOGS') ``` @@ -74,7 +74,7 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/eu/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/eu/v7/datadog-logs.js','DD_LOGS') ``` @@ -87,7 +87,7 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/ap1/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/ap1/v7/datadog-logs.js','DD_LOGS') ``` @@ -100,7 +100,7 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/ap2/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/ap2/v7/datadog-logs.js','DD_LOGS') ``` @@ -113,7 +113,7 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us3/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us3/v7/datadog-logs.js','DD_LOGS') ``` @@ -126,12 +126,12 @@ Browser SDK のインストール方法を選択します。 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us5/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us5/v7/datadog-logs.js','DD_LOGS') ``` {{< /site-region >}} -{{< site-region region="gov" >}} +{{< site-region region="gov,gov2" >}} ```javascript ``` @@ -156,7 +156,7 @@ Browser SDK のインストール方法を選択します。 ```javascript @@ -167,7 +167,7 @@ Browser SDK のインストール方法を選択します。 ```javascript @@ -178,7 +178,7 @@ Browser SDK のインストール方法を選択します。 ```javascript @@ -189,7 +189,7 @@ Browser SDK のインストール方法を選択します。 ```javascript @@ -200,7 +200,7 @@ Browser SDK のインストール方法を選択します。 ```javascript @@ -211,18 +211,18 @@ Browser SDK のインストール方法を選択します。 ```javascript ``` {{< /site-region >}} -{{< site-region region="gov" >}} +{{< site-region region="gov,gov2" >}} ```javascript @@ -233,7 +233,7 @@ Browser SDK のインストール方法を選択します。 {{% /tab %}} {{< /tabs >}} -### ステップ 3 - Logs Browser SDK を初期化 +### ステップ 3 - Logs Browser SDK を初期化する {#step-3-initialize-the-logs-browser-sdk} SDK は、アプリケーションのライフサイクルのできる限り早い段階で初期化する必要があります。これにより、すべてのログが正しく記録されます。 @@ -293,23 +293,23 @@ datadogLogs.init({ {{% /tab %}} {{< /tabs >}} -#### トラッキングの同意を設定 (GDPR の遵守) +#### トラッキングの同意を設定する (GDPR の遵守) {#configure-tracking-consent-gdpr-compliance} GDPR、CCPA、および同様の規制に準拠するために、RUM Browser SDK では [初期化時に追跡に関する同意][5] を提供できます。 -#### Content Security Policy (CSP) を設定 +#### Content Security Policy (CSP) を設定する{#configure-content-security-policy-csp} サイトで Datadog Content Security Policy (CSP) インテグレーションを使用している場合、追加のセットアップ手順については [CSP ドキュメント][6] を参照してください。 -### ステップ 4 - データの視覚化 +### ステップ 4 - データを視覚化する{#step-4-visualize-your-data} Logs の基本セットアップが完了したので、アプリケーションではブラウザログの収集が開始され、リアルタイムで問題の監視やデバッグを開始できます。 [ログエクスプローラー][7] でログを視覚化します。 -## 使用方法 +## 使用方法 {#usage} -### カスタムログ +### カスタムログ {#custom-logs} Datadog Browser Logs SDK が初期化されると、API を使用してカスタムログエントリを Datadog へ直接送信します。 @@ -349,9 +349,9 @@ window.DD_LOGS && window.DD_LOGS.logger.info('Button clicked', { name: 'buttonNa {{% /tab %}} {{< /tabs >}} -#### 結果 +#### 結果 {#results} -結果は、NPM、CDN 非同期、CDN 同期のどれを使用したときも同じです。 +結果は、NPM、CDN 非同期、CDN 同期のどれを使用した場合も同じです。 ```json { @@ -381,17 +381,17 @@ window.DD_LOGS && window.DD_LOGS.logger.info('Button clicked', { name: 'buttonNa Logs SDK は、デフォルトで次の情報を追加します (RUM SDK が存在する場合は、さらに多くのフィールドを追加 できます)。 - `date` - `view.url` - `view.referrer` - `session_id` (セッションが使用される場合のみ) +- `date` +- `view.url` +- `view.referrer` +- `session_id` (セッションが使用される場合のみ) Datadog のバックエンドでは、さらに次のようなフィールドが追加されます。 - `http.useragent` - `network.client.ip` +- `http.useragent` +- `network.client.ip` -### エラートラッキング +### エラートラッキング {#error-tracking} Datadog Browser Logs SDK では、オプションの `error` パラメーターを使用して手動でエラートラッキングを行うことができます (SDK v4.36.0 以降で利用可能)。[JavaScript Error][8] のインスタンスが渡されると、SDK ではエラーから関連情報 (種類、メッセージ、スタックトレース) を抽出します。 @@ -449,9 +449,9 @@ try { {{% /tab %}} {{< /tabs >}} -#### 結果 +#### 結果 {#results-1} -結果は、NPM、CDN 非同期、CDN 同期のどれを使用したときも同じです。 +結果は、NPM、CDN 非同期、CDN 同期のどれを使用した場合も同じです。 ```json { @@ -469,7 +469,7 @@ try { } ``` -### 汎用ロガー関数 +### 汎用ロガー関数 {#generic-logger-function} Datadog Browser Logs SDK では、便利なショートハンド関数 (`.debug`、`.info`、`.warn`、`.error`) をロガーに追加します。汎用ロガー関数も利用可能で、`status` パラメーターが公開されます。 @@ -509,24 +509,24 @@ window.DD_LOGS && window.DD_LOGS.logger.log(,, {{% /tab %}} {{< /tabs >}} -#### プレースホルダー +#### プレースホルダー {#placeholders} 上記例のプレースホルダーを次に説明します。 | プレースホルダー | 説明 | -| | | -| `` | Datadog によって完全にインデックス化されたログのメッセージ。 | -| `` | `` に付随するすべての属性を含む有効な JSON オブジェクト。 | +| ------------------- | --------------------------------------------------------------------------------------- | +| `` | Datadog によって完全にインデックス化されたログのメッセージ | +| `` | `` に付随するすべての属性を含む有効な JSON オブジェクト | | `` | ログのステータス。使用できるステータス値は `debug`、`info`、`warn`、または `error` です。| | `` | [JavaScript Error][8] オブジェクトのインスタンス。 | -## 高度な使用方法 +## 高度な使用方法 {#advanced-usage} -### ブラウザログの機密データのスクラビング +### ブラウザログの機密データのスクラビング {#scrub-sensitive-data-from-your-browser-logs} ブラウザログに編集が必要な機密情報が含まれている場合は、ブラウザログコレクターを初期化するときに `beforeSend` コールバックを使用して、機密シーケンスをスクラブするように Browser SDK を構成します。 -`beforeSend` コールバック関数は、2 つの引数 `log` イベントと `context` を指定して呼び出すことができます。この関数を使用すると、Datadog に送信される前に Browser SDK によって収集された各ログにアクセスでき、コンテキストを使用してログのプロパティを調整できます。コンテキストにはイベントに関連する追加情報が含まれていますが、必ずしもイベントに含まれているわけではありません。通常、この情報を使用してイベントを [強化][11] したり、[破棄][12] したりできます。 +`beforeSend` コールバック関数は、2 つの引数の `log` イベントと `context` を指定して呼び出すことができます。この関数を使用すると、Datadog に送信される前に Browser SDK によって収集された各ログにアクセスでき、コンテキストを使用してログのプロパティを調整できます。コンテキストにはイベントに関連する追加情報が含まれていますが、必ずしもイベントに含まれているわけではありません。通常、この情報を使用してイベントを [強化][11] したり、[破棄][12] したりできます。 ```javascript function beforeSend(log, context) @@ -535,11 +535,11 @@ function beforeSend(log, context) 潜在的な `context` 値は次のとおりです。 | 値 | データ型 | 使用例 | -|||| -| `isAborted` | Boolean | ネットワークログイベントの場合、このプロパティは失敗したリクエストがアプリケーションによって中断されたかどうかを示します。意図的に中断された可能性があるため、このイベントを送信しない選択をすることもできます。| -| `handlingStack` | 文字列 | ログイベントが処理された場所のスタックトレース。これを使用して、ログの送信元となった [マイクロフロントエンド][9] を特定できます。| +|-------|---------|------------| +| `isAborted` | ブール値 | ネットワークログイベントの場合、このプロパティは失敗したリクエストがアプリケーションによって中断されたかどうかを示します。意図的に中断された可能性があるため、このイベントを送信しない選択をすることもできます。| +| `handlingStack` | 文字列 | ログイベントが処理された場所のスタックトレースこれを使用して、ログの送信元となった [マイクロフロントエンド][9] を特定できます。| -Web アプリケーションの URL からメールアドレスを編集するには +Web アプリケーションの URL からメールアドレスを編集するには、次のようにします。 {{< tabs >}} {{% tab "NPM" %}} @@ -598,14 +598,14 @@ window.DD_LOGS && 次のプロパティは SDK によって自動的に収集され、機密データが含まれる可能性があります。 | 属性 | 型 | 説明 | -| | | | -| `view.url` | 文字列 | アクティブな Web ページの URL。 | -| `view.referrer` | 文字列 | 現在リクエストされているページへのリンクがたどられた前の Web ページの URL。| -| `message` | 文字列 | ログの内容。 | -| `error.stack` | 文字列 | スタックトレースまたはエラーに関する補足情報。 | -| `http.url` | 文字列 | HTTP URL。 | +| --------------- | ------ | ------------------------------------------------------------------------------------------------ | +| `view.url` | 文字列 | アクティブな Web ページの URL | +| `view.referrer` | 文字列 | 現在リクエストされているページへのリンクがたどられた前の Web ページの URL| +| `message` | 文字列 | ログの内容 | +| `error.stack` | 文字列 | スタックトレースまたはエラーに関する補足情報 | +| `http.url` | 文字列 | HTTP URL | -### 特定のログを破棄 +### 特定のログを破棄 {#discard-specific-logs} `beforeSend` コールバック関数を使用すると、Datadog に送信される前にログを破棄することもできます。 @@ -671,13 +671,13 @@ window.DD_LOGS && {{% /tab %}} {{< /tabs >}} -### 複数のロガーの定義 +### 複数のロガーを定義する {#define-multiple-loggers} Datadog Browser Logs SDK にはデフォルトのロガーが含まれていますが、さまざまなロガーを定義することもできます。 -#### 新しいロガーの作成 +#### 新しいロガーを作成する {#create-a-new-logger} -Datadog Browser Logs SDK を初期化したら、API `createLogger` を使用して新しいロガーを定義します: +Datadog Browser Logs SDK を初期化した後、以下のとおり API `createLogger` を使用して新しいロガーを定義します。 ```typescript createLogger (name: string, conf?: { @@ -687,9 +687,9 @@ createLogger (name: string, conf?: { }) ``` -**注**: これらのパラメーターは、[setLevel](#filterbystatus)、[setHandler](#changethedestination)、および [setContext](#overwritecontext) API と一緒に設定することができます。 +**注**: これらのパラメーターは、[setLevel](#filter-by-status)、[setHandler](#change-the-destination)、および [setContext](#overwrite-context) API で設定できます。 -#### カスタムロガーを取得 +#### カスタムロガーを取得する {#get-a-custom-logger} ロガーを作成すると、API を使用して JavaScript コードのどこからでもロガーにアクセスすることができます。 @@ -700,7 +700,7 @@ getLogger(name: string) {{< tabs >}} {{% tab "NPM" %}} -たとえば、他のロガーと一緒に定義された `signupLogger` があるとします: +たとえば、以下のような他のロガーと一緒に定義された `signupLogger` があるとします。 ```javascript import { datadogLogs } from '@datadog/browser-logs' @@ -724,7 +724,7 @@ signupLogger.info('Test sign up completed') {{% /tab %}} {{% tab "CDN 非同期" %}} -たとえば、他のロガーと一緒に定義された `signupLogger` があるとします: +たとえば、以下のような他のロガーと一緒に定義された `signupLogger` があるとします。 ```javascript window.DD_LOGS.onReady(function () { @@ -750,7 +750,7 @@ window.DD_LOGS.onReady(function () { {{% /tab %}} {{% tab "CDN 同期" %}} -たとえば、他のロガーと一緒に定義された `signupLogger` があるとします: +たとえば、以下のような他のロガーと一緒に定義された `signupLogger` があるとします。 ```javascript if (window.DD_LOGS) { @@ -776,24 +776,24 @@ if (window.DD_LOGS) { {{% /tab %}} {{< /tabs >}} -### コンテキストの上書き +### コンテキストの上書き {#overwrite-context} -#### グローバルコンテキスト +#### グローバルコンテキスト {#global-context} Datadog Browser Logs SDK を初期化すると、以下のことが可能になります。 - `setGlobalContext (context: object)` API を使用して、すべてのロガーのコンテキスト全体を設定します。 -`setGlobalContextProperty (key: string, value: any)` API を使用して、全てのロガーにコンテキストを追加します。 -`getGlobalContext ()` API を使用して、グローバルコンテキスト全体を取得します。 -`removeGlobalContextProperty (key: string)` API を使用して、コンテキストプロパティを削除します。 -`clearGlobalContext ()` API を使用して、既存のコンテキストプロパティをすべてクリアします。 +- `setGlobalContext (context: object)` API を使用して、すべてのロガーのコンテキスト全体を設定する。 +- `setGlobalContextProperty (key: string, value: any)` API を使用して、すべてのロガーにコンテキストを追加する。 +- `getGlobalContext ()` API を使用して、グローバルコンテキスト全体を取得する。 +- `removeGlobalContextProperty (key: string)` API を使用して、コンテキストプロパティを削除する。 +- `clearGlobalContext ()` API を使用して、既存のコンテキストプロパティをすべてクリアする。 -> Log Browser SDK v4.17.0 では、いくつかの API の名前が更新されています。 +> Log Browser SDK v4.17.0 では、一部の API の名前が更新されています。 > -`getLoggerGlobalContext` を > `getGlobalContext` に変更 -`setLoggerGlobalContext` を > `setGlobalContext` に変更 -`addLoggerGlobalContext` を > `setGlobalContextProperty` に変更 -`removeLoggerGlobalContext` を > `removeGlobalContextProperty` に変更 +> - `getGlobalContext` (旧: `getLoggerGlobalContext`) +> - `setGlobalContext` (旧: `setLoggerGlobalContext`) +> - `setGlobalContextProperty` (旧: `addLoggerGlobalContext`) +> - `removeGlobalContextProperty` (旧: `removeLoggerGlobalContext`) {{< tabs >}} {{% tab "NPM" %}} @@ -881,15 +881,15 @@ window.DD_LOGS && window.DD_LOGS.getGlobalContext() // => {} {{% /tab %}} {{< /tabs >}} -#### ユーザーコンテキスト +#### ユーザーコンテキスト {#user-context} -Datadog ログ SDK は、生成されたログに `User` を関連付けるための便利な関数を提供します。 +Datadog Logs SDK は、生成されたログに `User` を関連付けるための便利な関数を提供します。 -`setUser (newUser: User)` API を使用して、すべてのロガーのユーザーを設定します。 -`setUserProperty (key: string, value: any)` API を使用して、ユーザープロパティを変更、またはすべてのロガーに追加します。 -`getUser ()` API を使用して、現在保存されているユーザーを取得します。 -`removeUserProperty (key: string)` API を使用して、ユーザープロパティを削除します。 -`clearUser ()` API を使用して、既存のユーザープロパティをすべてクリアします。 +- `setUser (newUser: User)` API を使用して、すべてのロガーのユーザーを設定する。 +- `setUserProperty (key: string, value: any)` API を使用して、すべてのロガーのユーザープロパティを追加または変更する。 +- `getUser ()` API を使用して、現在保存されているユーザーを取得する。 +- `removeUserProperty (key: string)` API を使用して、ユーザープロパティを削除する。 +- `clearUser ()` API を使用して、既存のユーザープロパティをすべてクリアする。 **注**: ユーザーコンテキストはグローバルコンテキストの前に適用されます。したがって、ログ生成時に、グローバルコンテキストに含まれるすべてのユーザープロパティによって、ユーザーコンテキストがオーバーライドされます。 @@ -975,15 +975,15 @@ window.DD_LOGS && window.DD_LOGS.getUser() // => {} {{% /tab %}} {{< /tabs >}} -#### アカウントコンテキスト +#### アカウントコンテキスト {#account-context} -Datadog ログ SDK は、生成されたログに `Account` を関連付けるための便利な関数を提供します。 +Datadog Logs SDK は、生成されたログに `Account` を関連付けるための便利な関数を提供します。 -`setAccount (newAccount: Account)` API を使用して、すべてのロガーのアカウントを設定します。 -`setAccountProperty (key: string, value: any)` API を使用して、アカウントプロパティを変更、またはすべてのロガーに追加します。 -`getAccount ()` API を使用して、現在保存されているアカウントを取得します。 -`removeAccountProperty (key: string)` API を使用して、アカウントプロパティを削除します。 -`clearAccount ()` API を使用して、既存のアカウントプロパティをすべてクリアします。 +- `setAccount (newAccount: Account)` API を使用して、すべてのロガーのアカウントを設定する。 +- `setAccountProperty (key: string, value: any)` API を使用して、すべてのロガーのアカウントプロパティを追加または変更する。 +- `getAccount ()` API を使用して、現在保存されているアカウントを取得する。 +- `removeAccountProperty (key: string)` API を使用して、アカウントプロパティを削除する。 +- `clearAccount ()` API を使用して、既存のアカウントプロパティをすべてクリアする。 **注**: アカウントコンテキストはグローバルコンテキストの前に適用されます。したがって、ログ生成時に、グローバルコンテキストに含まれるすべてのアカウントプロパティによって、アカウントコンテキストがオーバーライドされます。 @@ -1063,32 +1063,32 @@ window.DD_LOGS && window.DD_LOGS.getAccount() // => {} {{% /tab %}} {{< /tabs >}} -#### コンテキストのライフサイクル +#### コンテキストのライフサイクル {#contexts-life-cycle} デフォルトでは、コンテキストは現在のページメモリに格納されます。つまり、これらは -ページのフルリロード後に保持されません -同じセッションの異なるタブまたはウィンドウ間で共有されません +- ページのフルリロード後に保持されない。 +- 同じセッションの異なるタブまたはウィンドウ間で共有されない。 セッションのすべてのイベントに追加するには、すべてのページにアタッチする必要があります。 -ブラウザ SDK の v4.49.0 で `storeContextsAcrossPages` 構成オプションが導入され、これらのコンテキストを [`localStorage`][9] に格納できるようになり、次の動作が可能になりました。 +ブラウザ SDK の v4.49.0 で `storeContextsAcrossPages` 構成オプションが導入されたことにより、これらのコンテキストは [`localStorage`][9] に保存できるようになり、以下の動作が可能になりました。 -フルリロード後にコンテキストが保持される -同じオリジンで開かれたタブ間でコンテキストが同期される +- フルリロード後にコンテキストが保持される。 +- 同じオリジンで開かれたタブ間でコンテキストが同期される。 -しかし、この機能にはいくつかの **制限** があります。 +しかし、この機能にはいくつかの**制限**があります。 -`localStorage` に格納されたデータはユーザーセッションよりも長持ちするため、これらのコンテキストで個人を特定できる情報 (PII) を設定することは推奨されません -この機能は `trackSessionAcrossSubdomains` オプションと互換性がありません。なぜなら `localStorage` データは同じオリジン間 (login.site.com ≠ app.site.com) でしか共有されないからです -`localStorage` はオリジンごとに 5 MiB に制限されているため、`localStorage` に格納されているアプリケーション固有のデータ、Datadog コンテキスト、およびその他のサードパーティデータは、問題を避けるためにこの制限内に収める必要があります。 +- `localStorage` に格納されたデータはユーザーセッションよりも長続きするため、これらのコンテキストで個人を特定できる情報 (PII) を設定することは推奨されません。 +- この機能は `trackSessionAcrossSubdomains` のオプションと互換性がありません。なぜなら `localStorage` のデータは同じオリジン間 (login.site.com ≠ app.site.com) でしか共有されないからです。 +- `localStorage` はオリジンごとに 5 MiB に制限されているため、`localStorage` に格納されているアプリケーション固有のデータ、Datadog コンテキスト、およびその他のサードパーティデータは、問題を避けるためにこの制限内に収める必要があります。 -#### ロガーのコンテキスト +#### ロガーのコンテキスト {#logger-context} ロガーを作成すると、次のことができます。 - `setContext (context: object)` API を使用して、ロガーのコンテキスト全体を設定します。 -`setContextProperty (key: string, value: any)` API を使用して、ロガーにコンテキストプロパティを設定します。 +- `setContext (context: object)` API を使用してロガーのコンテキスト全体を設定する。 +- `setContextProperty (key: string, value: any)` API を使用して、以下のロガーのコンテキストプロパティを設定する。 {{< tabs >}} {{% tab "NPM" %}} @@ -1130,7 +1130,7 @@ window.DD_LOGS && window.DD_LOGS.setContextProperty('referrer', document.referre {{% /tab %}} {{< /tabs >}} -### ステータスに基づくフィルタリング +### ステータスに基づくフィルタリング {#filter-by-status} Datadog Browser Logs SDK が初期化されると、API を使用してロガーの最小ログレベルが設定されます。 @@ -1172,13 +1172,13 @@ window.DD_LOGS && window.DD_LOGS.logger.setLevel('') {{% /tab %}} {{< /tabs >}} -### 送信先の変更 +### 送信先の変更 {#change-the-destination} デフォルトでは、Datadog Browser Logs SDK によって作成されたロガーは、Datadog にログを送信します。Datadog Browser Logs SDK を初期化すると、ロガーを次のように設定することが可能になります。 -ログを `console` および Datadog (`http`) に送信する -ログを `console` にのみ送信する - ログをまったく送信しない (`silent`) +- ログを `console` および Datadog (`http`) に送信する +- ログを `console` のみに送信する +- ログをまったく送信しない (`silent`) ```typescript setHandler (handler?: 'http' | 'console' | 'silent' | Array) @@ -1222,19 +1222,19 @@ window.DD_LOGS && window.DD_LOGS.logger.setHandler(['', '']) {{% /tab %}} {{< /tabs >}} -### ユーザー追跡の同意 +### ユーザー追跡の同意 {#user-tracking-consent} GDPR、CCPA や同様の規制に準拠するために、Logs Browser SDK では初期化時に追跡に関する同意を提供できます。 `trackingConsent` の初期化パラメーターは次のいずれかの値で示されます。 1. `"granted"`: Logs Browser SDK はデータの収集を開始し、Datadog に送信します。 -2. `"notgranted"`: Logs Browser SDK はデータを収集しません。 +2. `"not-granted"`: Logs Browser SDK はデータを収集しません。 Logs Browser SDK の初期化後に追跡同意値を変更するには、`setTrackingConsent()` API 呼び出しを使用します。Logs Browser SDK は新しい値に応じて動作を変更します。 - `"granted"` から `"notgranted"` に変更すると、Logs セッションは停止し、データは Datadog に送信されなくなります。 -`"notgranted"` から `"granted"` に変更すると、以前のセッションがアクティブでない場合、新しい Logs セッションが作成され、データ収集が再開されます。 +- `"granted"` から `"not-granted"` に変更すると、Logs セッションは停止し、データは Datadog に送信されなくなります。 +- `"not-granted"` から `"granted"` に変更すると、以前のセッションがアクティブでない場合、新しい Logs セッションが作成され、データ収集が再開されます。 この状態はタブ間で同期されず、ナビゲーション間で永続化されません。Logs Browser SDK の初期化時や、`setTrackingConsent()` を使用して、ユーザーの決定を提供するのはユーザーの責任です。 @@ -1291,7 +1291,7 @@ acceptCookieBannerButton.addEventListener('click', () => { {{% /tab %}} {{< /tabs >}} -### 内部コンテキストにアクセス +### 内部コンテキストにアクセスする {#access-internal-context} Datadog Browser Logs SDK が初期化されると、SDK の内部コンテキストにアクセスすることができます。これにより、`session_id` にアクセスできます。 @@ -1332,12 +1332,12 @@ window.DD_LOGS && window.DD_LOGS.getInternalContext() // { session_id: "xxxx-xxx -[1]: https://app.datadoghq.com/organizationsettings/clienttokens -[4]: https://datadoghq.dev/browsersdk/interfaces/_datadog_browserlogs.LogsInitConfiguration.html -[5]: /ja/logs/log_collection/javascript/#usertrackingconsent -[6]: /ja/integrations/content_security_policy_logs/#usecspwithrealusermonitoringandsessionreplay +[1]: https://app.datadoghq.com/organization-settings/client-tokens +[4]: https://datadoghq.dev/browser-sdk/interfaces/_datadog_browser-logs.LogsInitConfiguration.html +[5]: /ja/logs/log_collection/javascript/#user-tracking-consent +[6]: /ja/integrations/content_security_policy_logs/#use-csp-with-real-user-monitoring-and-session-replay [7]: /ja/logs/explorer/ -[8]: -[9]: https://developer.mozilla.org/enUS/docs/Web/API/Window/localStorage -[11]: /ja/real_user_monitoring/browser/advanced_configuration/?tab=npm#enrichandcontrolrumdata -[12]: /ja/real_user_monitoring/browser/advanced_configuration/?tab=npm#discardarumevent \ No newline at end of file +[8]: +[9]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage +[11]: /ja/real_user_monitoring/browser/advanced_configuration/?tab=npm#enrich-and-control-rum-data +[12]: /ja/real_user_monitoring/browser/advanced_configuration/?tab=npm#discard-a-rum-event \ No newline at end of file diff --git a/content/ja/logs/log_configuration/archives.md b/content/ja/logs/log_configuration/archives.md index 30e1f2ab223..470e25bf2e3 100644 --- a/content/ja/logs/log_configuration/archives.md +++ b/content/ja/logs/log_configuration/archives.md @@ -9,42 +9,47 @@ aliases: description: 収集されたログをすべて長期的なストレージへ転送します。 further_reading: - link: /logs/archives/rehydrating - tag: ドキュメント + tag: よくあるご質問 text: Datadog でアーカイブされたログコンテンツにアクセスする方法について - link: /logs/explorer/ - tag: ドキュメント + tag: よくあるご質問 text: ログエクスプローラーについて - link: /logs/logging_without_limits/ - tag: Documentation + tag: よくあるご質問 text: Logging without Limits* について title: ログアーカイブ --- +## 概要 {#overview} -## 概要 +Datadog アカウントを設定して、取り込まれたすべてのログ ([インデックス化済み][1] かどうかにかかわらず) を、お客様自身のクラウドストレージシステムへ転送します。[リハイドレート][2] や [アーカイブ検索][16] を利用することで、ログをストレージ効率に優れたアーカイブに長期間保存しながら、コンプライアンス要件を満たし、必要に応じた調査のための監査性も維持できます。 -Datadog アカウントを構成して、独自のクラウドストレージシステムへ収集されたすべてのログ ([インデックス化][1]の有無にかかわらず) を転送します。ストレージに最適化されたアーカイブにログを長期間保管し、コンプライアンス要件を満たすことができると同時に、アドホック調査のための監査適合性を[リハイドレート][2]で維持できます。 +{{< img src="/logs/archives/log_forwarding_archives_122024.png" alt="[Log Forwarding] ページの [Archives] タブ" style="width:100%;">}} -{{< img src="logs/archives/log_forwarding_archives_122024.png" alt="Log Forwarding ページの Archives タブ" style="width:100%;">}} +[**Log Archiving & Forwarding** ページ][3] に移動して、取り込まれたログをお客様自身のクラウドホスト型ストレージバケットへ転送するためのアーカイブを設定します。 -[**Log Forwarding** ページ][3]に移動して、取り込んだログを自分のクラウドホストのストレージバケットに転送するためのアーカイブをセットアップします。 - -1. まだの場合は、お使いのクラウドプロバイダーと Datadogの[インテグレーション](#set-up-an-integration)を設定してください。 +1. まだ設定していない場合は、お使いのクラウドプロバイダーについて、Datadog の[インテグレーション](#set-up-an-integration)を設定してください。 2. [ストレージバケット](#create-a-storage-bucket)を作成します。 -3. そのアーカイブへの `read` および `write` [権限](#set-permissions)を設定します。 -4. アーカイブへ、およびアーカイブから[ログをルーティング](#route-your-logs-to-a-bucket)します。 -5. 暗号化、ストレージクラス、タグなどの[詳細設定](#advanced-settings)を構成します。 -6. 設定を[検証](#validation)し、Datadog で検出される可能性のある構成ミスがないか確認します。 +3. そのアーカイブに対して、`read`および/または`write`の[権限](#set-permissions)を設定します。 +そのアーカイブへの送信およびそのアーカイブからの取得のために、4. [ログをルーティング](#route-your-logs-to-a-bucket)します。 +5. 暗号化、ストレージクラス、タグなどの[advanced settings](#advanced-settings)を構成します。 +設定を6. [Validate](#validation)し、Datadog で検出される可能性のある構成ミスがないか確認します。 + +環境から直接ストレージに最適化されたアーカイブにログをルーティングしたい場合は、[Observability Pipelines でログをアーカイブする][4] 方法を参照してください。 + +次のメトリクスは、再試行後に正常に送信されたログなどの正常にアーカイブされたログについて報告します。 -環境から直接ストレージに最適化されたアーカイブにログをルーティングしたい場合は、[Observability Pipelines でログをアーカイブする][4]方法を参照してください。 +- datadog.archives.logs.bytes +- datadog.archives.logs.count -## ログアーカイブを構成します -### インテグレーションを設定します +## アーカイブを構成する{#configure-an-archive} + +### インテグレーションを設定する{#set-up-an-integration} {{< tabs >}} {{% tab "AWS S3" %}} -まだ構成されていない場合は、S3 バケットを保持する AWS アカウントの [AWS インテグレーション][1]をセットアップします。 +まだ構成されていない場合は、S3 バケットを保持する AWS アカウントの [AWS インテグレーション][1] を設定します。 * 一般的なケースでは、これには、Datadog が AWS S3 との統合に使用できるロールの作成が含まれます。 * 特に AWS China アカウントの場合は、ロール委任の代わりにアクセスキーを使用します。 @@ -52,9 +57,9 @@ Datadog アカウントを構成して、独自のクラウドストレージシ {{% /tab %}} {{% tab "Azure Storage" %}} -新しいストレージアカウントのあるサブスクリプション内で [Azure インテグレーション][1]をセットアップしていない場合、セットアップします。これには、[Datadog が統合に使用できるアプリ登録の作成][2]も含まれます。 +まだ設定していない場合は、新しいストレージアカウントが属するサブスクリプション内で [Azure インテグレーション][1] を設定してください。これは、[Datadog が統合に使用できるアプリ登録の作成][2] を含みます。 -**注:** Azure ChinaCloud、GermanyCloud、GovCloud へのアーカイブはサポートされていません。 +**注:** Azure ChinaCloud および Azure GermanyCloud へのアーカイブはサポートされていません。Azure GovCloud へのアーカイブはプレビュー版でサポートされています。アクセスをリクエストするには、Datadog サポートにお問い合わせください。 [1]: https://app.datadoghq.com/account/settings#integrations/azure [2]: /ja/integrations/azure/?tab=azurecliv20#integrating-through-the-azure-portal @@ -62,32 +67,32 @@ Datadog アカウントを構成して、独自のクラウドストレージシ {{% tab "Google Cloud Storage" %}} -GCS ストレージバケットを持つプロジェクト用の [Google Cloud インテグレーション][1]をセットアップしていない場合、セットアップします。これには [Datadog が統合に使用できる Google Cloud サービスアカウントの作成][2] も含まれます。 +まだ設定していない場合は、GCS ストレージバケットが属するプロジェクトで [Google Cloud インテグレーション][1] を設定してください。これは、[Datadog が統合に使用できる Google Cloud サービスアカウントの作成][2] を含みます。 [1]: https://app.datadoghq.com/account/settings#integrations/google-cloud-platform [2]: /ja/integrations/google_cloud_platform/?tab=datadogussite#setup {{% /tab %}} {{< /tabs >}} -### ストレージバケットを作成 +### ストレージバケットを作成する{#create-a-storage-bucket} -{{< site-region region="gov" >}} -
    アーカイブへのログの送信は、Datadog GovCloud 環境の外部であり、Datadog の管理外です。Datadog は、Datadog GovCloud 環境から出たログについて、FedRAMP、DoD Impact Levels、ITAR、輸出コンプライアンス、データレジデンシー、または当該ログに適用される類似の規制に関連するユーザーの義務または要件を含むが、これらに限定されることなく、一切の責任を負わないものとします。
    +{{< site-region region="gov,gov2" >}} +
    ログをアーカイブに送信することは Datadog GovCloud 環境の外で行われるため、Datadog の管理外となります。Datadog は、Datadog GovCloud 環境を離れたログについて一切の責任を負いません。これには、FedRAMP、DoD インパクトレベル、ITAR、輸出コンプライアンス、データ所在地、またはそれらのログに適用される同様の規制に関連してユーザーが負う義務や要件が含まれますが、これらに限定されません。
    {{< /site-region >}} {{< tabs >}} {{% tab "AWS S3" %}} -[AWS コンソール][1]にアクセスし、アーカイブを転送する [S3 バケットを作成][2]します。 +[AWS コンソール][1] にアクセスし、アーカイブを転送する [S3 バケットを作成][2] します。 -{{< site-region region="gov" >}} -
    Datadog アーカイブは、仮想ホスト型アドレッシングに依存する S3 FIPS エンドポイントとの統合時、バケット名にドット (.) を含む場合はサポートされません。詳細は AWS のドキュメント、AWS FIPS および AWS バーチャルホスティングをご参照ください。
    +{{< site-region region="gov,gov2" >}} +
    Datadog アーカイブは、仮想ホスト形式のアドレッシングを使用する S3 FIPS エンドポイントと統合する場合、ドット (.) を含むバケット名をサポートしていません。AWS のドキュメントで詳細をご確認ください。AWS FIPS および AWS バーチャルホスティング
    {{< /site-region >}} **注:** - バケットを公開読み取り可能にしないでください。 -- [US1、US3、US5 サイト][3]については、地域間データ転送料とクラウドストレージコストへの影響について、[AWS Pricing][4] を参照してください。地域間のデータ転送料を管理するために、ストレージバケットを `us-east-1` に作成することを検討してください。 +- [US1、US3、US5 サイト][3] については、[AWS 料金][4] を参照し、リージョン間データ転送料金およびクラウドストレージコストへの影響をご確認ください。リージョン間データ転送料金を管理するために、`us-east-1` にストレージバケットを作成することを検討してください。 [1]: https://s3.console.aws.amazon.com/s3 [2]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html @@ -97,10 +102,10 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% tab "Azure Storage" %}} -* [Azure ポータル][1]にアクセスし、アーカイブを転送する[ストレージアカウントを作成][2]します。標準パフォーマンスまたは **Block blobs** プレミアムアカウントタイプを選択し、**hot** または **cool** アクセス層を選択します。 -* そのストレージアカウントに **container** サービスを作成します。Datadog アーカイブページに追加する必要があるため、コンテナ名をメモしてください。 +* [Azure ポータル][1] に移動し、アーカイブの送信先となる [ストレージアカウントを作成][2] してください。ストレージアカウントに名前を付け、標準パフォーマンスまたは **Block Blob** プレミアムアカウントタイプのいずれかを選択し、**hot**または**cool**アクセス層を選択してください。 +* そのストレージアカウントに、**コンテナ**サービスを作成してください。コンテナ名をメモしておいてください。この後、Datadog アーカイブページに追加する必要があります。 -**注:** まれに最後のデータを書き換える必要があるため、[不変性ポリシー][3]を設定しないでください (通常はタイムアウト)。 +**注:** まれに最後のデータを書き換える必要があるため、[不変性ポリシー][3] は設定しないでください (通常はタイムアウトが発生します)。 [1]: https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Storage%2FStorageAccounts [2]: https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal @@ -109,9 +114,9 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% tab "Google Cloud Storage" %}} -[Google Cloud アカウント][1]にアクセスし、アーカイブを転送するための [GCS バケットを作成][2]します。**Choose how to control access to objects** セクションで、**Set object-level and bucket-level permissions** を選択してください。 +[Google Cloud アカウント][1] に移動し、アーカイブの送信先となる [GCS バケットを作成][2] してください。**オブジェクトへのアクセス制御方法を選択する**の下で、**オブジェクトレベルおよびバケットレベルの権限を設定する**を選択します。 -**注:** まれに最後のデータを書き換える必要があるため、[保持ポリシー][3]を追加しないでください (通常はタイムアウト)。 +**注:** まれに最後のデータを書き換える必要があるため、[保持ポリシー][3] を追加しないでください (通常はタイムアウト)。 [1]: https://console.cloud.google.com/storage [2]: https://cloud.google.com/storage/docs/quickstart-console @@ -119,14 +124,14 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% /tab %}} {{< /tabs >}} -### 権限を設定する +### 権限を設定する{#set-permissions} -[`logs_write_archive` 権限][5]のある Datadog ユーザーだけがログアーカイブ構成を作成、変更、または削除できます。 +[`logs_write_archive`権限][5] を持つ Datadog ユーザーのみが、ログアーカイブ構成を作成、変更、または削除できます。 {{< tabs >}} {{% tab "AWS S3" %}} -1. 次の権限ステートメントを持つ[ポリシーを作成][1]します。 +1. 次の権限ステートメントを持つ [ポリシーを作成][1] します。 ```json { @@ -153,15 +158,15 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud ] } ``` - * `GetObject` および `ListBucket` の権限を設定すると、[アーカイブからのリハイドレート][2]が可能になります。 - * アーカイブをアップロードするには、`PutObject` 権限で十分です。 - * `s3:PutObject` と `s3:GetObject` アクションのリソース値は `/*` で終わっていることを確認してください。これらの権限はバケット内のオブジェクトに適用されるからです。 + * The `GetObject` and `ListBucket` permissions allow for [rehydrating from archives][2]. + * The `PutObject` permission is sufficient for uploading archives. + * Ensure that the resource value under the `s3:PutObject` and `s3:GetObject` actions ends with `/*` because these permissions are applied to objects within the buckets. 2. バケット名を編集します。 3. オプションで、ログアーカイブを含むパスを指定します。 4. Datadog のインテグレーションロールに新しいポリシーをアタッチします。 * AWS IAM コンソールで **Roles** に移動します。 - * Datadog インテグレーションで使用されるロールを見つけます。デフォルトでは、 **DatadogIntegrationRole** という名前になっていますが、組織で名前を変更した場合は、名前が異なる場合があります。ロール名をクリックすると、ロールのサマリーページが表示されます。 + * Datadog インテグレーションで使用されているロールを特定します。デフォルトでは **DatadogIntegrationRole** という名前ですが、組織で名称が変更されている場合は異なる可能性があります。ロール名をクリックして、ロールのサマリーページを開きます。 * **Add permissions**、**Attach policies** の順にクリックします。 * 上記で作成したポリシーの名称を入力します。 * **Attach policies** をクリックします。 @@ -173,7 +178,7 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% tab "Azure Storage" %}} 1. Datadog アプリに、ストレージアカウントへの書き込みおよびリハイドレートを行うための権限を付与します。 -2. [ストレージアカウントのページ][1]でストレージアカウントを選択し、**Access Control (IAM)** で **Add -> Add Role Assignment** を選択します。 +2. [ストレージアカウントのページ][1] でストレージアカウントを選択し、**Access Control (IAM)** で **Add -> Add Role Assignment** を選択します。 3. Role に **Storage Blob Data Contributor** を入力し、Azure と統合するために作成した Datadog アプリを選択して、保存します。 {{< img src="logs/archives/logs_azure_archive_permissions.png" alt="Storage Blob Data Contributor ロールを Datadog アプリに追加します。" style="width:75%;">}} @@ -183,53 +188,88 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% tab "Google Cloud Storage" %}} 1. Datadog Google Cloud サービスアカウントに、アーカイブをバケットに書き込むための権限を付与します。 -2. [Google Cloud IAM Admin ページ][1]から Datadog の Google Cloud サービスアカウントのプリンシパルを選択し、**Edit principal** を選択します。 +2. [Google Cloud IAM Admin ページ][1] から Datadog の Google Cloud サービスアカウントのプリンシパルを選択し、**Edit principal** を選択します。 3. **ADD ANOTHER ROLE** をクリックし、**Storage Object Admin** ロールを選択し、保存します。 - {{< img src="logs/archives/gcp_role_storage_object_admin-2.png" alt="Datadog Google Cloud サービスアカウントに Storage Object Admin ロールを追加。" style="width:75%;">}} + {{< img src="logs/archives/gcp_role_storage_object_admin-2.png" alt="Datadog の Google Cloud サービスアカウントに Storage Object Admin ロールを追加します。" style="width:75%;">}} + +**Storage Object Admin** ロールは Datadog の推奨構成です。組織で最小権限のカスタムロールが必要な場合、アーカイブのアップロードには以下の個別権限が必要です。 + +- `storage.objects.create` +- `storage.objects.get` +- `storage.objects.list` +- `storage.objects.delete` + +`storage.objects.delete`はアーカイブの書き込みリトライをサポートするために必要であり、その際 Datadog はバケット内の既存オブジェクトを上書きします。マルチパートアップロードの権限 (`storage.multipartUploads.*`) は必要ありません。 [1]: https://console.cloud.google.com/iam-admin/iam {{% /tab %}} {{< /tabs >}} -### ログをバケットにルーティング +### ログをバケットにルーティング{#route-your-logs-to-a-bucket} -[Log Forwarding ページ][6]に移動し、**Archives** タブで **Add a new archive** を選択します。 +[Log Archiving & Forwarding ページ][6] に移動し、**Archives** タブで **Add a new archive** を選択します。 **注:** -* [`logs_write_archive` 権限][5]のある Datadog ユーザーだけがこの手順と次の手順を完了させることができます。 -* Azure Blob Storage へのログのアーカイブには、App Registration が必要です。[Azure インテグレーションページ][7]の手順を参照し、ドキュメントページの右側にある「サイト」を「US」に設定してください。アーカイブ目的で作成された App Registration は、"Storage Blob Data Contributor" ロールのみが必要です。ストレージバケットが Datadog Resource を通じて監視されているサブスクリプションにある場合、App Registration が冗長である旨の警告が表示されます。この警告は無視することができます。 -* バケットでネットワークアクセスを特定の IP に制限している場合は、{{< region-param key="ip_ranges_url" link="true" text="IP 範囲リスト">}}から Webhook の IP を許可リストに追加してください。 -* **US1-FED サイト**の場合、Datadog を構成して、ログを Datadog GovCloud 環境外の宛先に送信することができます。Datadog は、Datadog GovCloud 環境を離れたログに対して一切の責任を負いません。また、これらのログが GovCloud 環境を離れた後に適用される FedRAMP、DoD 影響レベル、ITAR、輸出コンプライアンス、データ居住地、またはそれに類する規制に関する義務や要件についても、Datadog は一切の責任を負いません。 +* [`logs_write_archive` 権限][5] のある Datadog ユーザーだけがこの手順と次の手順を完了させることができます。 +* ログを Azure Blob Storage にアーカイブするには、アプリ登録が必要です。[Azure 統合ページ][7] の指示を参照し、ドキュメントページ右側の「site」を「US」に設定してください。アーカイブ目的で作成されたアプリ登録には、「Storage Blob Data Contributor」ロールのみが必要です。ストレージバケットが Datadog リソース経由で監視されているサブスクリプションにある場合、アプリ登録が冗長であるという警告が表示されます。この警告は無視できます。 +* バケットのネットワークアクセスが特定の IP に制限されている場合は、 {{< region-param key="ip_ranges_url" link="true" text="IP ranges list">}} に記載されている Webhook IP を許可リストに追加してください。 +* **US1-FED および US2-FED サイト** については、Datadog を構成して Datadog GovCloud 環境外の送信先にログを送信できます。Datadog は、Datadog GovCloud 環境を離れたログについて一切の責任を負いません。さらに Datadog は、GovCloud 環境を離れた後のこれらのログに適用される FedRAMP、DoD インパクトレベル、ITAR、輸出コンプライアンス、データ所在地、または同様の規制に関して、ユーザーが負う義務や要件について一切の責任を負いません。 | サービス | ステップ | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Amazon S3** | - S3 バケットに適した AWS アカウントとロールの組み合わせを選択します。
    - バケット名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。 | -| **Azure Storage** | - **Azure Storage** アーカイブタイプを選択し、ストレージアカウントで Storage Blob Data Contributor ロールのある Datadog アプリ用の Azure テナントとクライアントを選択します。
    - ストレージアカウント名とアーカイブのコンテナ名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。 | -| **Google Cloud Storage** | - **Google Cloud Storage** のアーカイブタイプを選択し、ストレージバケットに書き込む権限を持つ GCS サービスアカウントを選択します。
    - バケット名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。 | +| **Amazon S3** | - S3 バケットに適した AWS アカウントとロールの組み合わせを選択します。
    - バケット名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。| +| **Azure Storage** | - **Azure Storage** アーカイブタイプを選択し、ストレージアカウントで Storage Blob Data Contributor ロールのある Datadog アプリ用の Azure テナントとクライアントを選択します。
    - ストレージアカウント名とアーカイブのコンテナ名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。| +| **Google Cloud Storage** | - **Google Cloud Storage** のアーカイブタイプを選択し、ストレージバケットに書き込む権限を持つ GCS サービスアカウントを選択します。
    - バケット名を入力します。
    **オプション**: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力できます。| -### 高度な設定 +### 高度な設定 {#advanced-settings} -{{< img src="/logs/archives/log_archives_advanced_settings.png" alt="オプションのタグを追加し、最大スキャンサイズを定義するための高度な設定" style="width:100%;" >}} +{{< img src="/logs/archives/log_archives_advanced_settings.png" alt="オプションのタグを追加し、最大スキャンサイズを設定するための詳細設定" style="width:100%;" >}} -#### Datadog タグ +#### Datadog タグ {#datadog-tags} 以下のためにこのオプションの構成ステップを使用します。 * アーカイブ内のすべてのログタグを含める (デフォルトでは、すべての新規アーカイブに有効化されています)。**注**: 結果のアーカイブサイズが増大します。 * リハイドレートされたログに、制限クエリポリシーに従ってタグを追加します。[`logs_read_data`][13] 権限を参照してください。 -#### 最大スキャンサイズを定義する +#### 最大スキャンサイズを定義する{#define-maximum-scan-size} このオプションの構成ステップを使用して、ログアーカイブでリハイドレートのためにスキャンできるログデータの最大量 (GB 単位) を定義します。 -最大スキャンサイズが定義されているアーカイブの場合、すべてのユーザーは、リハイドレートを開始する前にスキャンサイズを推定する必要があります。推定されたスキャンサイズがそのアーカイブで許可されているものより大きい場合、ユーザーはリハイドレートを要求する時間範囲を狭めなければなりません。時間範囲を減らすと、スキャンサイズが小さくなり、ユーザーがリハイドレートを開始できるようになります。 +最大スキャンサイズが定義されたアーカイブの場合、すべてのユーザーはリハイドレートを開始する前にスキャンサイズを見積もる必要があります。見積もったスキャンサイズがそのアーカイブで許可されているサイズを超える場合、ユーザーはリハイドレートの対象となる時間範囲を短縮する必要があります。時間範囲を短縮することでスキャンサイズが減少し、ユーザーはリハイドレートを開始できるようになります。 + +#### アーカイブパーティション属性 (プレビュー) {#archive-search-partition-attribute} + +アーカイブされたログがストレージ内で物理的にどのように整理されるかを最適化し ([アーカイブ検索][16] の高速化のため)、Datadog アーカイブでパーティション属性を構成します。 + +* **パーティション属性**: 検索フィルターとして頻繁に使用する `service`、`source`、`env`、または `status` のような低カーディナリティ属性を追加します。 +* **利点**: 同じパーティション属性値を共有するログは、ストレージ内で同じ場所に配置されます。検索時に、Datadog はクエリに一致しないすべてのパーティションをスキップでき、スキャンするデータ量を大幅に削減します。 + +#### アーカイブルックアップ属性 {#archive-lookup-attribute} + +アーカイブ内の検索や調査を高速化するために ([アーカイブ検索][16] を使用)、Datadog アーカイブでルックアップ属性を構成します。 + +* **ルックアップ属性**: `trace_id`、`container_id`、または`customer_id` のような高カーディナリティ属性を追加します。 +* **利点**: これにより、長期ストレージ内の特定のログをより迅速に特定でき、アドホック調査時のスキャン時間とデータ量を削減できます。 + +**パーティション属性とルックアップ属性の違い** + +| | パーティション | ルックアップ | +|---|---|---| +| **カーディナリティ** | 低 (数十から数百の値) | 高 (数百万の値) | +| **典型的な属性** | `service`、`source`、`env`、`status` | `trace_id`、`container_id`、`user_id`、`transaction_id` | +| **どのように役立つか** | スキャン対象からパーティション全体を除外できる | アーカイブ内の個々のログエントリを特定できる | +| **最適な用途** | 環境やサービスによる広範なフィルタリング | 特定の識別子に対するアドホック調査 | + +最大の検索パフォーマンスを得るために、両方を組み合わせて使用します。パーティション属性は検索スコープを関連するデータセグメントに絞り込み、ルックアップ属性はそれらのセグメント内の特定のログを瞬時に見つけることができます。 {{< site-region region="us3" >}} -#### ファイアウォールルール + +#### ファイアウォールルール {#firewall-rules} {{< tabs >}} -{{% tab "Azure ストレージ" %}} +{{% tab "Azure Storage" %}} ファイアウォールルールはサポートされていません。 @@ -237,20 +277,33 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{< /tabs >}} {{< /site-region >}} -#### ストレージクラス + +#### 圧縮 {#compression} + +デフォルトでは、Datadog は **zstd** (Zstandard) 圧縮を使用してログをアーカイブします (`.json.zst`)、これは gzip と比較して、より高い圧縮率と高速な解凍速度を提供します。また、**gzip** 圧縮 (`.json.gz`) を設定することもできます。 + + +圧縮を構成するには、[Log Archiving & Forwarding ページ][6] でアーカイブを作成または編集する際に、**Compression Type** を選択します。 + +- **zstd** (デフォルト): より高い圧縮率と高速な解凍速度。新しいアーカイブに推奨されます。特に、[アーカイブ検索][16] を使用する予定がある場合に適しています。 +- **gzip**: 幅広くサポートされており、ほとんどのツールと互換性があります。 + +**注**: 既存のアーカイブの圧縮形式を変更しても、影響を受けるのは新しいアーカイブファイルのみです。すでにバケットに保存されているファイルは、元の形式のまま保持されます。 + +#### ストレージクラス {#storage-class} {{< tabs >}} {{% tab "AWS S3" %}} -[S3 バケットにライフサイクルコンフィギュレーションを設定][1]して、ログアーカイブを最適なストレージクラスに自動的に移行できます。 +アーカイブのストレージクラスを選択するか、[S3 バケットにライフサイクル設定を構成][1] して、ログアーカイブを最適なストレージクラスへ自動的に移行できます。 -[リハイドレート][2]は、以下のストレージクラスのみをサポートします。 +[リハイドレート][2] は、以下のストレージクラスのみをサポートします。 * S3 Standard * S3 Standard-IA * S3 One Zone-IA * S3 Glacier Instant Retrieval -* S3 Intelligent-Tiering、[オプションの非同期アーカイブアクセス階層][3]が両方とも無効化されている場合のみ。 +* S3 Intelligent-Tiering、[オプションの非同期アーカイブアクセス階層][3] が両方とも無効化されている場合のみ。 他のストレージクラスにあるアーカイブからリハイドレートする場合は、まず上記のサポートされているストレージクラスのいずれかに移動させる必要があります。 @@ -260,7 +313,7 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud {{% /tab %}} {{% tab "Azure Storage" %}} -アーカイブと[リハイドレート][1]は、以下のアクセス層にのみ対応しています。 +アーカイブと [リハイドレート][1] は、以下のアクセス層にのみ対応しています。 - ホットアクセス層 - クールアクセス層 @@ -269,29 +322,56 @@ GCS ストレージバケットを持つプロジェクト用の [Google Cloud [1]: /ja/logs/archives/rehydrating/ {{% /tab %}} +{{% tab "Google Cloud Storage" %}} + +アーカイブと [リハイドレート][1] では、以下のアクセス層がサポートされています。 + +- Standard +- Nearline +- Coldline +- Archive + +[1]: /ja/logs/archives/rehydrating/ +{{% /tab %}} + {{< /tabs >}} -#### サーバー側の暗号化 (SSE) +#### S3 アーカイブのサーバー側暗号化 (SSE) {#server-side-encryption-sse-for-s3-archives} -{{< tabs >}} -{{% tab "AWS S3" %}} +Datadog で S3 アーカイブを作成または更新する際に、オプションで **Advanced Encryption** を設定できます。**Encryption Type** のドロップダウンには、3 つのオプションがあります。 + +- **Default S3 Bucket-Level Encryption** (デフォルト): Datadog は S3 バケットのデフォルト暗号化設定を上書きしません。 +- **Amazon S3 managed keys**: S3 バケットのデフォルト暗号化に関係なく、[SSE-S3][17] を使用したサーバー側暗号化を強制します。 +- **AWS Key Management Service**: S3 バケットのデフォルト暗号化に関係なく、[AWS KMS][18] の顧客管理キー (CMK) を使用したサーバー側暗号化を強制します。CMK ARN を指定する必要があります。 -##### SSE-S3 +{{< tabs >}} +{{% tab "Default S3 Bucket-Level Encryption" %}} -Amazon S3 バケットのデフォルトの暗号化は、Amazon S3 管理キー ([SSE-S3][1]) によるサーバーサイド暗号化です。 +このオプションを選択すると、Datadog はアップロードリクエストに暗号化ヘッダーを指定しません。S3 バケットのデフォルトの暗号化が適用されます。 -S3 バケットが SSE-S3 で暗号化されていることを確認するには +S3 バケットの暗号化設定を設定または確認するには: 1. S3 バケットに移動します。 -1. **Properties** タブをクリックします。 -1. **Default Encryption** セクションで、**Encryption key type** が **Amazon S3 managed keys (SSE-S3)** であることを確認します。 +2. **Properties** タブをクリックします。 +3. **Default Encryption** セクションで、暗号化タイプを設定または確認します。暗号化に [AWS KMS][1] を使用している場合は、有効な CMK と CMK ポリシーが CMK にアタッチされていることを確認してください。 -##### SSE-KMS +[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -また、Datadog は CMK を利用した [AWS KMS][2] からのサーバーサイド暗号化もサポートしています。有効化するには次の手順に従ってください。 +{{% /tab %}} +{{% tab "Amazon S3 managed keys" %}} + +このオプションにより、すべてのアーカイブオブジェクトが [SSE_S3][1] を使用して、Amazon S3 managed keys でアップロードされます。これは S3 バケットのデフォルトの暗号化設定を上書きします。 + +[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html +{{% /tab %}} +{{% tab "AWS Key Management Service" %}} + +このオプションにより、すべてのアーカイブオブジェクトが [AWS KMS][1] の顧客管理キー (CMK) を使用してアップロードされます。これは S3 バケットのデフォルトの暗号化設定を上書きします。 + +有効な CMK と CMK ポリシーを作成するために、以下の手順を完了していることを確認してください。次に、この暗号化タイプを正常に設定するために CMK ARN を指定します。 1. CMK を作成します。 -2. CMK に付随する CMK ポリシーに以下のコンテンツを添加して、AWS アカウント番号と Datadog IAM ロール名を適切なものに置き換えます。 +2. 以下の内容で CMK に CMK ポリシーをアタッチし、AWS アカウント番号と Datadog IAM ロール名を適切な値に置き換えます。 ``` { @@ -344,65 +424,45 @@ S3 バケットが SSE-S3 で暗号化されていることを確認するには } ``` -3. S3 バケットの **Properties** タブに移動し、**Default Encryption** を選択します。"AWS-KMS" オプション、CMK ARN の順に選択して保存します。 +3. Datadog で **Encryption Type** として **AWS Key Management Service** を選択した後、AWS KMS キー ARN を入力してください。 -既存の KMS キーに変更を加える場合は、[Datadog サポート][3]にお問い合わせください。 +[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html -[2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html -[3]: /ja/help/ {{% /tab %}} - {{< /tabs >}} -### 検証 +### 検証 {#validation} Datadog アカウントでアーカイブ設定が正常に構成された時点から、処理パイプラインは Datadog に取り込まれたすべてのログを加工し始めます。その後アーカイブに転送されます。 -ただし、アーカイブの構成を作成または更新した後、次のアーカイブのアップロードが試行されるまでに数分かかることがあります。アーカイブがアップロードされる頻度は、さまざまです。アーカイブが Datadog アカウントから正常にアップロードされていることを確認するために、**15 分後にストレージバケットを再確認**してください。 +ただし、アーカイブ設定を作成または更新した後、次のアーカイブアップロードが試行されるまでに数分かかることがあります。アーカイブのアップロード頻度は異なる場合があります。**15 分後にストレージバケットを確認**し、Datadog アカウントからアーカイブが正常にアップロードされていることを確認してください。 -その後、アーカイブがまだ保留状態である場合、包含フィルターを確認して、クエリが有効で、[Live Tail][14] のログイベントに一致することを確認します。設定や権限の意図しない変更により、Datadog が外部アーカイブへのログのアップロードに失敗した場合、構成ページで該当する Log Archive がハイライトされます。 +その後、アーカイブがまだ保留状態の場合は、インクルージョンフィルターを確認し、クエリが有効であり、[Live Tail][14] のログイベントに一致していることを確認してください。設定や権限の意図しない変更により、Datadog が外部アーカイブへのログのアップロードに失敗すると、該当するログアーカイブが構成ページでハイライト表示されます。 -{{< img src="logs/archives/archive_errors_details.png" alt="アーカイブが正しく設定されているか確認する" style="width:100%;">}} +{{< img src="logs/archives/archive_errors_details.png" alt="アーカイブが正しく設定されていることを確認してください" style="width:100%;">}} -アーカイブにカーソルを合わせると、エラーの詳細と問題を解決するためのアクションが表示されます。また、[イベントエクスプローラー][15]にイベントが生成されます。これらのイベントに対するモニターを作成することで、障害を迅速に検出し、修復することができます。 +アーカイブにカーソルを合わせると、エラーの詳細と問題を解決するための対処方法が表示されます。[Events Explorer][15] にもイベントが生成されます。これらのイベントに対してモニターを作成し、障害を迅速に検出して修正することができます。 -## 複数のアーカイブ +## 複数のアーカイブ {#multiple-archives} 複数のアーカイブが定義されている場合、フィルターに基づき、最初のアーカイブにログが入力されます。 -{{< img src="logs/archives/log_forwarding_archives_multiple.png" alt="ログは、フィルターにマッチした最初のアーカイブに入ります。" style="width:100%;">}} +{{< img src="logs/archives/log_forwarding_archives_multiple.png" alt="ログは、フィルターに一致する最初のアーカイブに保存されます。" style="width:100%;">}} -アーカイブの順序を慎重に決めることが重要です。例えば、`env:prod` タグでフィルターされた最初のアーカイブと、フィルターなしの 2 番目のアーカイブ (`*` に相当) を作成すると、すべてのプロダクションログは一方のストレージバケットまたはパスに送られ、残りはもう一方に送られることになるでしょう。 +アーカイブの順序を慎重に設定することが重要です。たとえば、最初に `env:prod` タグで絞り込まれるアーカイブを作成し、次にフィルターなし (`*` と同等) でアーカイブを作成した場合、すべてのプロダクションログは一方のストレージバケットまたはパスに転送され、その他のログはもう一方のアーカイブに転送されます。 -## アーカイブの形式 +## アーカイブの形式 {#format-of-the-archives} -Datadog がストレージバケットに転送するログアーカイブは、圧縮 JSON 形式 (`.json.gz`) です。指定したプレフィックス (ない場合は `/`) を使用して、以下のようなアーカイブファイルが生成された日時を示すディレクトリ構造でアーカイブファイルが保存されます。 +Datadog がストレージバケットに転送するログアーカイブは、圧縮された JSON 形式になっています。[圧縮設定](#compression)に応じて、アーカイブファイルは zstd (`.json.zst`、デフォルト) または gzip (`.json.gz`) 圧縮を使用します。指定したプレフィックス (ない場合は `/`) を使用して、以下のようなアーカイブファイルが生成された日時を示すディレクトリ構造でアーカイブファイルが保存されます。 ``` -/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz -/my/bucket/prefix/dt=/hour=/archive_..json.gz +/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.02aafad5-f525-4592-905e-e962d1a5b2f7.json.gz +/my/bucket/prefix/dt=/hour=/archive_..json.gz ``` このディレクトリ構造により、過去のログアーカイブを日付に基づいてクエリする処理が簡略化されます。 -圧縮 JSON ファイル内の各イベントは、以下の形式で内容が表されます。 - -```json -{ - "_id": "123456789abcdefg", - "date": "2018-05-15T14:31:16.003Z", - "host": "i-12345abced6789efg", - "source": "source_name", - "service": "service_name", - "status": "status_level", - "message": "2018-05-15T14:31:16.003Z INFO rid='acb-123' status=403 method=PUT", - "attributes": { "rid": "abc-123", "http": { "status_code": 403, "method": "PUT" } }, - "tags": [ "env:prod", "team:acme" ] -} -``` - -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -413,7 +473,7 @@ Datadog がストレージバケットに転送するログアーカイブは、 [1]: /ja/logs/indexes/#exclusion-filters [2]: /ja/logs/archives/rehydrating/ [3]: https://app.datadoghq.com/logs/pipelines/log-forwarding -[4]: /ja/observability_pipelines/archive_logs/ +[4]: /ja/observability_pipelines/configuration/explore_templates/?tab=logs#archive-logs [5]: /ja/account_management/rbac/permissions/?tab=ui#logs_write_archives [6]: https://app.datadoghq.com/logs/pipelines/archives [7]: /ja/integrations/azure/ @@ -424,4 +484,7 @@ Datadog がストレージバケットに転送するログアーカイブは、 [12]: /ja/account_management/rbac/permissions#logs_read_index_data [13]: /ja/account_management/rbac/permissions#logs_read_data [14]: /ja/logs/explorer/live_tail/ -[15]: /ja/service_management/events/explorer/ +[15]: /ja/events/explorer/ +[16]: /ja/logs/log_configuration/archive_search/?tab=amazons3 +[17]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html +[18]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html \ No newline at end of file diff --git a/content/ja/logs/log_configuration/indexes.md b/content/ja/logs/log_configuration/indexes.md index 9d25e9a73ed..9e5552cd1f2 100644 --- a/content/ja/logs/log_configuration/indexes.md +++ b/content/ja/logs/log_configuration/indexes.md @@ -5,36 +5,41 @@ aliases: description: Datadog でインデックス化するログの量を制御する further_reading: - link: /logs/explorer/#visualize - tag: ドキュメント + tag: よくあるご質問 text: ログ分析の実行 - link: /logs/log_configuration/processors - tag: ドキュメント + tag: よくあるご質問 text: ログの処理方法 - link: /logs/log_configuration/parsing - tag: ドキュメント + tag: よくあるご質問 text: パースの詳細 - link: https://www.datadoghq.com/blog/logging-without-limits/ tag: ブログ text: Logging without Limits* +- link: https://www.datadoghq.com/blog/zendesk-cost-optimization/#optimizing-log-usage-to-manage-volume-and-cost + tag: ブログ + text: 'Datadog の大規模な最適化: Zendesk におけるコスト効率の良い監視可能性' +- link: https://learn.datadoghq.com/courses/log-indexes + tag: ラーニングセンター + text: インデックス化ログボリュームの管理と監視 title: インデックス --- - -ログインデックスでは、さまざまな保持、割り当て、使用状況の監視、および課金のためにデータを値グループにセグメント化できるようにすることで、ログ管理予算をきめ細かく制御できます。インデックスは、[Configuration ページ][1]の Indexes セクションにあります。インデックスをダブルクリックするか、*Edit* ボタンをクリックすると、過去 3 日間にインデックス化されたログの数とそれらの保存期間に関する情報が表示されます。 +ログインデックスでは、さまざまな保持、割り当て、使用状況の監視、および課金のためにデータを値グループにセグメント化できるようにすることで、ログ管理予算をきめ細かく制御できます。インデックスは、[Configuration ページ][1] の Indexes セクションにあります。インデックスをダブルクリックするか、*Edit* ボタンをクリックすると、過去 3 日間にインデックス化されたログの数とそれらの保存期間に関する情報が表示されます。 {{< img src="logs/indexes/index_details.jpg" alt="インデックスの詳細" style="width:70%;">}} -インデックス化されたログは、[ファセット検索][2]、[パターン][3]、[分析][4]、および[監視][6]に使用できます。 +インデックス化されたログは、[ファセット検索][2]、[パターン][3]、[分析][4]、および [監視][6] に使用できます。 -## 複数のインデックス +## 複数のインデックス {#multiple-indexes} デフォルトでは、新しい各アカウントは、すべてのログのモノリシックセットを表す単一のインデックスを取得します。Datadog では、次が必要な場合に複数のインデックスを使用することを推奨します。 -* 複数の[保持期間](#ログ保持期間の更新) -* [1日の割り当て](#日別の割り当てを設定する)を複数使用して、バジェットをより細かく管理したい場合。 +* 複数の[保持期間](#update-log-retention) +* [1 日の割り当て](#set-daily-quota) を複数使用して、バジェットをより細かく管理したい場合。 -Log Explorer は、[複数のインデックスにわたるクエリ][7]をサポートしています。 +Log Explorer は、[複数のインデックスにわたるクエリ][7] をサポートしています。 -### インデックスを追加 +### インデックスを追加 {#add-indexes} "New Index” ボタンを使って、新しいインデックスを作成します。各アカウントで作成できるインデックスの最大数は決まっており、デフォルトでは 100 に設定されています。 @@ -46,94 +51,96 @@ Log Explorer は、[複数のインデックスにわたるクエリ][7]をサ アカウントの最大インデックス数を増やす必要がある場合は、Datadog サポートにお問い合わせください。
    -### インデックスの削除 +### インデックスの削除 {#delete-indexes} -組織からインデックスを削除するには、インデックスのアクショントレイにある「削除アイコン」を使用します。このオプションは、`Logs delete data` の権限を持つユーザーのみ使用することができます。 +組織からインデックスを削除するには、インデックスのアクショントレイにある「削除アイコン」を使用します。このオプションは、`Logs delete data`権限を持つユーザーのみが使用できます。 -{{< img src="logs/indexes/delete-index.png" alt="インデックスを削除" style="width:70%;">}} +{{< img src="logs/indexes/delete-index.png" alt="インデックスの削除" style="width:70%;">}}
    -削除されたインデックスと同じ名前のインデックスを再作成することはできません。 +削除されたインデックスと同じ名前のインデックスを再作成することはできません。
    **注:** 削除されたインデックスは、今後新しい受信ログを受け付けません。削除されたインデックス内のログは、クエリに使用できなくなります。適用される保持期間に従ってすべてのログがエージングアウトした後、そのインデックスはインデックスページに表示されなくなります。 -## インデックスフィルター +## インデックスフィルター {#indexes-filters} インデックスフィルターを使用すると、どのログをどのインデックスに流し入れるかを動的に管理できます。たとえば、最初のインデックスは `status:notice` 属性で絞り込まれるように設定し、2 つめのインデックスは `status:error` 属性で絞り込まれるように設定し、最後のインデックスはフィルターなしで作成した場合 (`*` と同じ)、`status:notice` ログはすべて最初のインデックスに、`status:error` ログはすべて 2 つめのインデックスに、その他のログは最後のインデックスに入ります。 -{{< img src="logs/indexes/multi_index.png" alt="複数インデックス" style="width:70%;">}} +{{< img src="logs/indexes/multi_index.png" alt="複数のインデックス" style="width:70%;">}} -**注**: ログは、フィルターに一致する最初のインデックスに保存されます。ドラッグアンドドロップを使用し、リストにあるインデックスの順番を用途に合わせて変更することができます。 +**注**: **ログは、フィルターに一致する最初のインデックスに保存されます。**ドラッグアンドドロップを使用し、リストにあるインデックスの順番を用途に合わせて変更することができます。 -## 除外フィルター +## 除外フィルター {#exclusion-filters} デフォルトでは、ログインデックスに除外フィルターは設定されません。つまり、インデックスフィルターに一致するログがすべてインデックス化されます。 -ですが、すべてのログに同等の価値があるわけではないため、インデックスに流し入れたログの中でどれを削除するかを、除外フィルターを使用して制御することができます。除外したログはインデックスから破棄されますが、[Livetail][8] には残るので、[メトリクスの生成][9]や[アーカイブ][10]に使用できます。 +ですが、すべてのログに同等の価値があるわけではないため、インデックスに流し入れたログの中でどれを削除するかを、除外フィルターを使用して制御することができます。除外したログはインデックスから破棄されますが、[Livetail][8] には残るので、[メトリクスの生成][9] や [アーカイブ][10] に使用できます。 除外フィルターを追加するには -1. [ログインデックス][11]に移動します。 +1. [ログインデックス][11] に移動します。 2. 除外フィルターを追加したいインデックスを展開します。 -3. **Add an Exclusion Filter** をクリックします。 +3. **除外フィルターを追加する**をクリックします。 除外フィルターは、クエリ、サンプリング規則、および active/inactive のトグルで定義します。 -* デフォルトの**クエリ**は `*` です。つまり、インデックスに入るすべてのログが除外されます。[ログクエリを使用][12]して、一部のログだけが除外されるように除外フィルターを設定します。 +* デフォルトの**クエリ**は `*` です。つまり、インデックスに入るすべてのログが除外されます。[ログクエリを使用][12] して、一部のログだけが除外されるように除外フィルターを設定します。 * デフォルトの**サンプリング規則**は `Exclude 100% of logs` であり、クエリに一致する 100% のログが除外されます。サンプリングレートを 0% から 100% の間で調節し、さらに、そのサンプリングレートを個々のログに適用するか、それとも属性の一意の値によって定義されるロググループに適用するかを決めます。 -* デフォルトの**トグル**は active であり、インデックスに入れられたログが、除外フィルターのコンフィギュレーションに従って実際に破棄されます。このトグルを inactive にすると、インデックスに新しく入れられるログに対して除外フィルターが無視されます。 + * サンプリングレートを個々のログに適用する場合、サンプリングはログ内のトレース ID の存在に基づいて行われます (存在する場合)。このシナリオでは、サンプリングされたログはサンプリングされたトレースと相関する可能性が高くなり、統一されたテレメトリを促進します。 + * トレース ID の一意の値がサンプリングのために選択される場合、動作は個別のログと同じです。 +* デフォルトの**トグル**は active であり、インデックスに入れられたログが、除外フィルターの構成に従って実際に破棄されます。このトグルを inactive にすると、インデックスに新しく入れられるログに対して除外フィルターが無視されます。 **注**: ログのインデックスフィルターは、最初に一致した **active** な除外フィルターだけを処理します。ログが除外フィルターに一致すると、(たとえサンプルとして抽出されなくても) その後の一連の除外フィルターがすべて無視されます。 ドラッグアンドドロップを使用し、リストにある除外フィルターの順番を用途に合わせて変更することができます。 -{{< img src="logs/indexes/reorder_index_filters.png" alt="インデックスフィルターの順序変更" style="width:80%;">}} +{{< img src="logs/indexes/reorder_index_filters.png" alt="インデックスフィルターの並べ替え" style="width:80%;">}} -### 例 +### 例 {#examples} -#### オンとオフを切り替える +#### オンとオフを切り替える {#switch-off-switch-on} プラットフォームにインシデントが発生するまでデバッグログが必要ないこともあれば、クリティカルバージョンのアプリケーションのデプロイを注意深く監視したいこともあります。`status:DEBUG` に 100% の除外フィルターをセットアップすると、Datadog の UI から、あるいは必要なら [API][13] を使用して、トグルのオンとオフを切り替えることができます。 {{< img src="logs/indexes/enable_index_filters.png" alt="インデックスフィルターを有効にする" style="width:80%;">}} -#### 傾向を注視する +#### 傾向を注視する {#keep-an-eye-on-trends} Web アクセスサーバーリクエストからのすべてのログを保持するのではなく、3xx、4xx、5xx のログをすべてインデックス化し、2xx のログの 95% を除外したい場合は、`source:nginx AND http.status_code:[200 TO 299]` を設定することで全体の傾向を追跡できます。 -**ヒント**: [ログから生成されるメトリクス][9]を使用し、リクエストの数をカウントして、ステータスコード、[ブラウザ][14]、[国][15]でタグ付けすることにより、Web アクセスログを有益な KPI に変換することができます。 +**ヒント**: [ログから生成されるメトリクス][9] を使用し、リクエストの数をカウントして、ステータスコード、[ブラウザ][14]、[国][15] でタグ付けすることにより、Web アクセスログを有益な KPI に変換することができます。 {{< img src="logs/indexes/sample_200.png" alt="インデックスフィルターを有効にする" style="width:80%;">}} -#### 高レベルなエンティティを一貫してサンプリングする +#### 高レベルなエンティティを一貫してサンプリングする {#sampling-consistently-with-higher-level-entities} -1 日に何百万というユーザーが Web サイトにアクセスするとします。すべてのユーザーを監視する必要はないが、一部のユーザーから全体像を把握しておきたい場合は、すべてのプロダクションログ (`env:production`) に対して除外フィルターをセットアップし、`@user.email` のログの 90% を除外します。 +1 日に何百万というユーザーが Web サイトにアクセスするとします。すべてのユーザーを監視する必要はないものの、一部のユーザーから全体像を把握しておきたい場合は、すべてのプロダクションログ (`env:production`) に対して除外フィルターをセットアップし、`@user.email` のログの 90% を除外します。 {{< img src="logs/indexes/sample_user_id.png" alt="インデックスフィルターを有効にする" style="width:80%;">}} -[トレース ID をログに挿入][16]できるので、APM をログと併用することができます。ユーザーに関するログをすべて保持する必要はありませんが、ログによってトレースに必要な全体像を常に入手できるようにしておくことが、トラブルシューティングのために非常に重要です。 -計測するサービスからのログ (`service:my_python_app`) に適用される除外フィルターをセットアップし、`Trace ID` の 50% のログを除外してください。[トレース ID リマッパー][17]をパイプラインのアップストリームで必ず使用してください。 +[トレース ID をログに挿入][16] できるので、APM をログと併用することができます。ユーザーに関するログをすべて保持する必要はありませんが、ログによってトレースに必要な全体像を常に入手できるようにしておくことが、トラブルシューティングのために非常に重要です。 +計測するサービスからのログ (`service:my_python_app`) に適用される除外フィルターをセットアップし、`Trace ID` の 50% のログを除外してください。[トレース ID リマッパー][17] をパイプラインのアップストリームで必ず使用してください。 {{< img src="logs/indexes/sample_trace_id.png" alt="インデックスフィルターを有効にする" style="width:80%;">}} 複数のインデックスにおけるサンプリング一貫性を確保するには: -1. 各インデックスに除外ルールを一つ作成。 -2. すべての除外ルールに、より高レベルのエンティティを定義する、**同じサンプリングレート**と**同じ属性**を使用。 -3. 除外ルール、**フィルター**、**該当順序**を再確認 (ログは、最初に一致する除外ルールでのみ渡されます)。 +1. 各インデックスに除外ルールを 1 つ作成します。 +2. すべての除外ルールに、より高レベルのエンティティを定義する、**同じサンプリングレート**と**同じ属性**を使用します。 +3. 除外ルール、**フィルター**、**該当順序**を再確認 (ログは、最初に一致する除外ルールでのみ渡されます) します。 以下の例では、 {{< img src="logs/indexes/cross-index_sampling.png" alt="インデックスフィルターを有効にする" style="width:80%;">}} -* 一般的に、特定の `request_id` を持つすべてのログは、保持または除外されます(50% の確立)。 +* 一般的に、特定の `request_id` を持つすべてのログは維持または除外されます (50% の確率)。 * `threat:true` または `compliance:true` タグを持つログは、`request_id` にかかわらず保持されます。 -* `DEBUG` ログは、`request_id` サンプリングルールで一貫してインデックス化されます。ただし、デバッグログ除外フィルターが適用されている場合は、サンプリングされます。 +* `DEBUG`ログは、`request_id` サンプリングルールで一貫してインデックス化されます。ただし、デバッグログ除外フィルターが適用されている場合は、サンプリングされます。 * 実際の `request_id` を持つ `2XX` ウェブアクセスログの 50% は、保持されます。その他の `2XX` ウェブアクセスログは、90% 除外フィルタールールに基づき、すべてサンプリングされます。 -## ログの保持を更新 +## ログの保持を更新 {#update-log-retention} インデックス保持期間設定は、Datadog でログが保存され検索可能な期間を決定します。保持期間は、アカウント設定で許可されている任意の値に設定できます。 @@ -141,12 +148,12 @@ Web アクセスサーバーリクエストからのすべてのログを保持 {{< img src="logs/indexes/log_retention.png" alt="インデックスの詳細" style="width:70%;">}} -**注**: 現在の契約にない保持を使用するには、組織の設定で管理者が[オプション][21]を有効にする必要があります。 +**注**: 現在の契約にない保持を使用するには、組織の設定で管理者が [オプション][21] を有効にする必要があります。 -## 日別の割り当てを設定する +## 日別の割り当てを設定する {#set-daily-quota} -1 日の割り当てを設定して、インデックスに格納されるログの数を日別に制限することができます。この割り当ては、格納されるべき (除外フィルターが適用された後など) すべてのログに対して適用されます。 -1 日の割り当て数に到達したら、ログはインデックス化されなくなりますが、[livetail][18] では利用できるほか、[アーカイブにも送信][10]されるので、[ログからメトリクスを生成する][9]ために使用できます。 +1 日の割り当てを設定して、インデックスに格納されるログの数を日別に制限することができます。この割り当ては、格納されるべき (除外フィルターが適用された後の) すべてのログに対して適用されます。 +1 日の割り当て数に到達したら、ログはインデックス化されなくなりますが、[livetail][18] では利用できるほか、[アーカイブにも送信][10] されるので、[ログからメトリクスを生成する][9] ために使用できます。 この割り当ては、インデックスの編集時にいつでも構成または削除できます。 - 1 日の割り当てを数百万ログ単位で設定 @@ -159,11 +166,11 @@ Web アクセスサーバーリクエストからのすべてのログを保持 1 日の割り当てまたは警告のしきい値に達すると、イベントが生成されます。 -{{< img src="logs/indexes/daily_quota_warning_events.png" alt="デイリー クオータと警告イベント" style="width:90%;">}} +{{< img src="logs/indexes/daily_quota_warning_events.png" alt="デイリークオータと警告イベント" style="width:90%;">}} -使用量を監視してアラートを出す方法については、[ログの使用量を監視する][20]を参照してください。 +使用量を監視してアラートを出す方法については、[ログの使用量を監視する][20] を参照してください。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}}
    @@ -181,10 +188,10 @@ Web アクセスサーバーリクエストからのすべてのログを保持 [11]: https://app.datadoghq.com/logs/pipelines/indexes [12]: /ja/logs/search_syntax/ [13]: /ja/api/v1/logs-indexes/#update-an-index -[14]: /ja/logs/log_configuration/processors/#user-agent-parser -[15]: /ja/logs/log_configuration/processors/#geoip-parser +[14]: /ja/logs/log_configuration/processors/user_agent_parser/ +[15]: /ja/logs/log_configuration/processors/geoip_parser/ [16]: /ja/tracing/other_telemetry/connect_logs_and_traces/ -[17]: /ja/logs/log_configuration/processors/#trace-remapper +[17]: /ja/logs/log_configuration/processors/trace_remapper/ [18]: /ja/logs/live_tail/#overview [19]: https://www.timeanddate.com/worldclock/converter.html [20]: /ja/logs/guide/best-practices-for-log-management/#monitor-log-usage diff --git a/content/ja/metrics/custom_metrics/_index.md b/content/ja/metrics/custom_metrics/_index.md index 1d65bbf90d3..c9fd90d5eb7 100644 --- a/content/ja/metrics/custom_metrics/_index.md +++ b/content/ja/metrics/custom_metrics/_index.md @@ -1,7 +1,7 @@ --- algolia: tags: - - カスタムメトリクス + - custom metrics aliases: - /ja/guides/metrics/ - /ja/metrictypes/ @@ -12,77 +12,82 @@ aliases: - /ja/developers/metrics/ - /ja/metrics/guide/tag-configuration-cardinality-estimation-tool/ further_reading: -- link: /developers/dogstatsd/ - tag: ドキュメント +- link: /extend/dogstatsd/ + tag: よくあるご質問 text: DogStatsD について -- link: /developers/community/libraries/ - tag: ドキュメント +- link: /extend/community/libraries/ + tag: よくあるご質問 text: 公式/コミュニティ作成の API および DogStatsD クライアントライブラリ - link: /account_management/billing/custom_metrics/?tab=countrate - tag: ドキュメント - text: カスタムメトリクスの課金 + tag: よくあるご質問 + text: Custom Metrics の課金 - link: /metrics/guide/custom_metrics_governance/ tag: ガイド - text: カスタムメトリクスのガバナンスに関するベストプラクティス + text: Custom Metrics のガバナンスに関するベストプラクティス - link: https://www.datadoghq.com/blog/metrics-without-limits/ tag: ブログ - text: Metrics without Limits™ でカスタムメトリクスのボリュームをダイナミックにコントロール -title: カスタムメトリクス + text: Metrics without Limits™ で Custom Metrics のボリュームをダイナミックにコントロール +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: ブログ + text: Datadog を使用して効果的なエグゼクティブ向けダッシュボードを設計する +- link: https://learn.datadoghq.com/courses/metrics-governance + tag: ラーニングセンター + text: メトリクスガバナンス +title: Custom Metrics --- - -{{< learning-center-callout header="イネーブルメントウェビナーセッションに参加" hide_image="true" btn_title="登録" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} - カスタムメトリクスのための Foundation Enablement セッションにご登録してください。カスタムメトリクスが、訪問者数、平均顧客バスケットサイズ、リクエストレイテンシー、カスタムアルゴリズムのパフォーマンス分布など、アプリケーション KPI の追跡にどのように役立つかを学びましょう。 +{{< learning-center-callout header="エンゲージメントウェビナーセッションに参加する" hide_image="true" btn_title="サインアップ" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} + Custom Metrics の Foundation Enablement セッションを確認し、登録してください。訪問者数、顧客の平均バスケットサイズ、リクエストのレイテンシー、カスタムアルゴリズムのパフォーマンス分布などのアプリケーションの KPI の追跡に、Custom Metrics がどのように役立つかを学びます。 {{< /learning-center-callout >}} -## 概要 +## 概要 {#overview} -カスタムメトリクスは、訪問者数、平均顧客バスケットサイズ、リクエストレイテンシー、カスタムアルゴリズムのパフォーマンス分布など、アプリケーションの KPI を追跡するのに役立ちます。カスタムメトリクスは、**メトリクス名とタグ値 (ホストタグを含む) のユニークな組み合わせ**によって識別されます。以下の例では、メトリクス `request.Latency` は 2 つのタグキーから 4 つのユニークなタグ値の組み合わせを持っています。 +Custom Metrics は、訪問者数、平均顧客バスケットサイズ、リクエストレイテンシー、カスタムアルゴリズムのパフォーマンス分布など、アプリケーションの KPI を追跡するのに役立ちます。Custom Metrics は、**メトリクス名とタグ値 (ホストタグを含む) の一意の組み合わせ**によって識別されます。以下の例では、メトリクス `request.Latency` は 2 つのタグキーから 4 つの一意のタグ値の組み合わせを持っています。 - `endpoint` の値は `endpoint:X` または `endpoint:Y` とします。 - `status` の値は `status:200` または `status:400` とします。 -{{< img src="account_management/billing/custom_metrics/request_latency.png" alt="リクエストのレイテンシー" style="width:80%;">}} +{{< img src="account_management/billing/custom_metrics/request_latency.png" alt="リクエストレイテンシー" style="width:80%;">}} -以下もカスタムメトリクスと見なされます。 -- 一般的に、[DogStatsD][3] または[カスタム Agent Check][4] を通じて送信されたメトリクス -- [Marketplace インテグレーション][29]によって送信されたメトリクス -- 特定の[標準インテグレーション](#standard-integrations)は、カスタムメトリクスを送信する可能性があります -- [Datadog の {{< translate key="integration_count" >}} 以上のインテグレーション][1]に含まれていないインテグレーションから送信されたメトリクス。 +以下も Custom Metrics と見なされます。 +- 一般的に、[DogStatsD][3] または [カスタム Agent Check][4] を通じて送信されたメトリクス +- [Marketplace インテグレーション][29] によって送信されたメトリクス +- 特定の[標準インテグレーション](#standard-integrations)は、Custom Metrics を送信する可能性があります。 +- [ {{< translate key="integration_count" >}} 以上の Datadog インテグレーション][1] に含まれていないインテグレーションから送信されたメトリクス。 -**注**: Datadog 管理者のロールまたは `usage_read` 権限を持つユーザーは、[使用量の詳細ページ][5]で、アカウントの 1 時間当たりのカスタムメトリクスの月平均数と、上位 5000 個のカスタムメトリクスを参照できます。詳しくは、[カスタムメトリクスの数え方][6]を参照してください。 +**注**: Datadog Admin ロールまたは `usage_read` 権限を持つユーザーは、[使用量の詳細ページ][5] で、アカウントの 1 時間あたりの Custom Metrics の月平均数と、上位 5,000 個の Custom Metrics を参照できます。詳しくは、[Custom Metrics のカウント方法][6] を参照してください。 -## カスタムメトリクスのプロパティ +## Custom Metrics のプロパティ {#custom-metrics-properties} -Datadog のカスタムメトリクスには、以下のプロパティがあります。Datadog 内でメトリクスをグラフ化する方法については、[メトリクスの概要][7]をお読みください。 +Datadog Custom Metrics には、以下のプロパティがあります。Datadog 内でメトリクスをグラフ化する方法については、[メトリクスの概要][7] をお読みください。 | プロパティ | 説明 | |------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `` | [メトリクスの名前](#naming-custom-metrics)。 | -| `` | メトリクスの値。**注**: メトリクスの値は 32 ビットである必要があります。値は日付またはタイムスタンプを反映できません。 | -| `<タイムスタンプ>` | メトリクスの値に関連付けられたタイムスタンプ。**注**: メトリクスのタイムスタンプは、未来は 10 分、過去は 1 時間を超えることはできません。 | -| `<タグ>` | メトリクスに関連付けられているタグセット。 | -| `` | メトリクスのタイプ。[メトリクスのタイプ][8]をお読みください。 | -| `` | メトリクスの `` が [RATE][9] または [COUNT][10] の場合は、その[間隔][11]を定義します。 | +| `` | [メトリクスの名前](#naming-custom-metrics)。 | +| `` | メトリクスの値。**注**: メトリクスの値は 32 ビットである必要があります。値には日付またはタイムスタンプは使用できません。 | +| `` | メトリクス値に関連付けられたタイムスタンプ。**注**: メトリクスのタイムスタンプは、未来は 10 分、過去は 1 時間を超えることはできません。| +| `` | メトリクスに関連付けられているタグセット。 | +| `` | メトリクスのタイプ。[メトリクスタイプ][8] を参照してください。 | +| `` | メトリクスの `` が [レート][9] または [カウント][10] の場合は、対応する [間隔][11] を定義します。 | -### カスタムメトリクスの名前 +### Custom Metrics の命名 {#naming-custom-metrics} -カスタムメトリクスの名前は、以下の命名規則に従う必要があります。 +Custom Metrics の名前は、以下の命名規則に従う必要があります。 * メトリクス名は文字で開始する必要があります。 -* メトリクス名に使用できるのは、ASCII 英数字、アンダースコア、およびピリオドだけです。 - * スペースなどの他の文字はアンダースコアに変換されます。 - * Unicode はサポートされません。 -* メトリクス名は 200 文字以内で作成できますが、ユーザーインターフェイスの観点からは、100 文字未満をお勧めします。 +* メトリクスの名前に使用できるのは、ASCII 英数字、アンダースコア、およびピリオドだけです。 + * スペースなどのほかの文字はアンダースコアに変換されます。 + * Unicode はサポートされて_いません_。 +* メトリクス名は 200 文字以内である必要があります。ユーザーインターフェイスの観点からは、100 文字未満をお勧めします。 **注**: Datadog のメトリクス名は大文字と小文字が区別されます。 -### メトリクス単位 +### メトリクス単位 {#metric-units} -[メトリクスサマリー][12]を使用してメトリクス単位を設定するか、可視化のグラフエディタで[単位オーバーライド][13]機能を使用してカスタムメトリクス単位を設定できます。詳細については、[メトリクス単位][14]のドキュメントを参照してください。 +[Metrics Summary][12] を使用してメトリクス単位を設定するか、可視化のグラフエディターで [単位オーバーライド][13] 機能を使用して Custom Metrics 単位を設定できます。詳細については、[メトリクスのユニット][14] のドキュメントを参照してください。 -## カスタムメトリクスの送信 +## Custom Metrics の送信 {#submitting-custom-metrics} -{{< whatsnext desc="メトリクスを Datadog に送信する方法は複数あります。">}} +{{< whatsnext desc="メトリクスを Datadog に送信する方法はいくつかあります。">}} {{< nextlink href="/metrics/custom_metrics/agent_metrics_submission" >}}カスタム Agent チェック{{< /nextlink >}} {{< nextlink href="/metrics/custom_metrics/dogstatsd_metrics_submission" >}}DogStatsD{{< /nextlink >}} {{< nextlink href="/metrics/custom_metrics/powershell_metrics_submission" >}}PowerShell{{< /nextlink >}} @@ -94,22 +99,22 @@ Datadog のカスタムメトリクスには、以下のプロパティがあり {{< nextlink href="/infrastructure/process/increase_process_retention/#generate-a-process-based-metric" >}}ライブプロセスベースのメトリクスを生成する{{< /nextlink >}} {{< /whatsnext >}} -[Datadog 公式およびコミュニティ寄稿の API および DogStatsD クライアントライブラリ][15]のいずれかを使用して、カスタムメトリクスを送信することもできます。 +[Datadog 公式およびコミュニティ寄稿の API および DogStatsD クライアントライブラリ][15] のいずれかを使用して、Custome Metrics を送信することもできます。 -**注**: カスタムメトリクスの送信に適用される[固定のレート制限][5]はありません。デフォルトの割り当てを超えた場合は、[Datadog のカスタムメトリクスの課金ポリシー][6]に従って課金されます。 +**注**: Custom Metrics の送信に適用される固定のレート制限はありません。デフォルトの割り当てを超えた場合は、[Datadog の Custome Metrics 請求ポリシー][6] に従って請求されます。 -## 標準インテグレーション +## 標準インテグレーション{#standard-integrations} -以下の標準インテグレーションでは、カスタムメトリクスを生成することができます。 +以下の標準インテグレーションでは、Custom Metrics を生成することができます。 | インテグレーションの種類 | インテグレーション | |------------------------------------------------|------------------------------------------------------------------------------------| -| デフォルトで上限 350 個のカスタムメトリクス。 | [ActiveMQ XML][16] / [Go-Expvar][17] / [Java-JMX][18] | -| カスタムメトリクスの収集では既定の上限なし。 | [Nagios][19] /[PDH チェック][20] /[OpenMetrics][21] /[Windows パフォーマンスカウンター][22] /[WMI][23] /[Prometheus][21] | -| カスタムメトリクス収集の構成が可能。 | [MySQL][24] /[Oracle][25] /[Postgres][26] /[SQL Server][27] | -| クラウドインテグレーションから送信されたカスタムメトリクス | [AWS][28] | +| デフォルトで上限 350 個の Custom Metrics。 | [ActiveMQ XML][16] / [Go-Expvar][17] / [Java-JMX][18] | +| Custom Metrics の収集ではデフォルトの上限なし。| [Nagios][19] /[PDH Check][20] /[OpenMetrics][21] /[Windows パフォーマンスカウンター][22] /[WMI][23] /[Prometheus][21] | +| Custom Metrics 収集の構成が可能。 | [MySQL][24] /[Oracle][25] /[Postgres][26] /[SQL Server][27] | +| クラウドインテグレーションから送信された Custom Metrics | [AWS][28] | -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -123,11 +128,11 @@ Datadog のカスタムメトリクスには、以下のプロパティがあり [8]: /ja/metrics/types/ [9]: /ja/metrics/types/?tab=rate#metric-types [10]: /ja/metrics/types/?tab=count#metric-types -[11]: /ja/developers/dogstatsd/data_aggregation/#how-is-aggregation-performed-with-the-dogstatsd-server +[11]: /ja/extend/dogstatsd/data_aggregation/#how-is-aggregation-performed-with-the-dogstatsd-server [12]: /ja/metrics/summary/#metric-unit [13]: /ja/dashboards/guide/unit-override/ [14]: /ja/metrics/units/ -[15]: /ja/developers/community/libraries/ +[15]: /ja/extend/community/libraries/ [16]: /ja/integrations/activemq/#activemq-xml-integration [17]: /ja/integrations/go_expvar/ [18]: /ja/integrations/java/ diff --git a/content/ja/monitors/configuration/_index.md b/content/ja/monitors/configuration/_index.md index b1c60a89875..5dd68d2a763 100644 --- a/content/ja/monitors/configuration/_index.md +++ b/content/ja/monitors/configuration/_index.md @@ -4,115 +4,154 @@ aliases: description: モニター作成ページについて説明します。 further_reading: - link: /monitors/notify/ - tag: Documentation + tag: よくあるご質問 text: モニター通知 - link: /monitors/manage/ - tag: Documentation + tag: よくあるご質問 text: モニターの管理 -- link: /monitors/manage/status/ - tag: Documentation - text: モニターステータス -title: モニターの構成 +- link: /monitors/status/ + tag: よくあるご質問 + text: モニターのステータス +- link: https://www.datadoghq.com/blog/manage-monitors-with-datadog-teams/ + tag: ブログ + text: Datadog Teams を使用して、モニターをより効率的に管理します。 +- link: https://learn.datadoghq.com/courses/alert-monitor-notifications + tag: ラーニングセンター + text: アラートモニター通知をカスタマイズ +title: モニターを構成 --- - -## 概要 +## 概要 {#overview} モニターの構成を開始するには、以下を完了します。 -* **Define the search query:** Construct a query to count events, measure metrics, group by one or several dimensions, and more. -* **アラート条件を設定します。**アラートと警告のしきい値、評価タイムフレームを定義し、高度なアラートオプションを構成します。 -* **Configure notifications and automations:** Write a custom notification title and message with variables. Choose how notifications are sent to your teams (email, Slack, or PagerDuty). Include workflow automations or cases in the alert notification. -* **Define permissions and audit notifications:** Configure granular access controls and designate specific roles and users who can edit a monitor. Enable audit notifications to alert if a monitor is modified. +* **検索クエリを定義します:** イベントのカウント、メトリクスの測定、1 つまたは複数のディメンションによるグループ化などを行うクエリを作成します。 +* **アラート条件を設定します:** アラートと警告のしきい値、評価タイムフレームを定義し、高度なアラートオプションを構成します。 +* **通知と自動化を構成します:** 変数を使用してカスタム通知タイトルとメッセージを作成します。通知をチームに送信する方法を選択します (メール、Slack、PagerDuty など)。アラート通知にワークフローの自動化やケースを含めます。 +* **権限と監査通知を定義します:** きめ細かいアクセス制御を構成し、モニターを編集できる特定のロールとユーザーを指定します。モニターが変更された場合にアラートで通知するために、監査通知を有効にします。 + +## 検索クエリを定義します {#define-the-search-query} + +検索クエリの作成方法については、各 [モニターの種類][1] のページを参照してください。 + +## グラフのプレビュー {#preview-graphs} + +クエリを作成または変更すると、構成の上部にあるプレビューグラフが、リアルタイムで結果を反映するために動的に更新されます。 + +{{< tabs >}} +{{% tab "Evaluated Data" %}} + +{{< img src="/monitors/configuration/evaluated_data_preview_high_error_rate.png" alt="Evaluated Data プレビューグラフ" style="width:100%;" >}} -## 検索クエリを定義する +Evaluated Data グラフには、現在のクエリとしきい値を使用して、モニターがデータをどのように評価したかが示されます。Evaluated Data では、次のことを行えます。 +- 過去の状態遷移を確認します (例: `OK` → `ALERT`)。 +- モニターがどのように動作したかを理解します。 +- (通知ルールからのものも含め) 誰に通知されるかをプレビューします。 +- 保存する前に、設定ミスを迅速に見つけます。 -検索クエリの作成方法については、個々の[モニタータイプ][1]ページを参照してください。検索クエリを定義すると、検索フィールドの上のプレビューグラフが更新されます。 +この機能は、Metrics、Logs、APM、RUM、Events、Audit、Database、LLM Observability、Deployment モニターで利用できます。 -{{< img src="/monitors/create/preview_graph_monitor.mp4" alt="プレビューグラフ" video=true style="width:90%;">}} +{{% /tab %}} + +{{% tab "Source Data" %}} + +{{< img src="/monitors/configuration/source_data_graph_high_error_rate.png" alt="Source Data プレビューグラフ" style="width:100%;" >}} + +Source Data グラフには、しきい値評価やアラートロジックが適用されていない、モニターの生の時系列データやクエリ出力が表示されます。これにより、次のことが可能になります。 -## アラートの条件を設定する +- モニターの評価対象である基盤データを視覚化します。 +- アラート状態の変化を実際のデータの傾向と関連付けます。 +- アラート条件を設定する前に、データ内の異常、ギャップ、または予期しないパターンを特定します。 + +Source Data グラフを使用して、クエリが期待どおりの結果を返していることを確認し、アラートのしきい値や評価ウィンドウの調整に役立てます。 + +{{% /tab %}} +{{< /tabs >}} -アラート条件は、[モニタータイプ][1]によって異なります。クエリ値がしきい値を超えた場合、または特定の数の連続したチェックが失敗した場合にトリガーするようにモニターを構成します。 +## アラート条件の設定 {#set-alert-conditions} + +アラート条件は、[モニターの種類][1] に応じて異なります。クエリ値がしきい値を超えた場合、または特定の数の連続したチェックが失敗した場合にトリガーするようにモニターを構成します。 {{< tabs >}} {{% tab "しきい値アラート" %}} -* メトリクスの `average`、`max`、`min`、`sum` が -* しきい値に対して `above`、`above or equal to`、`below`、`below or equal to` になったらトリガーします -* 過去 `5 minutes`、`15 minutes`、`1 hour`、または `custom` に 1 分~48 時間 (メトリクスモニターに対して 1 か月) の値を設定します +* メトリクスの `average`、`max`、`min`、または `sum` が、 +しきい値の * `above`、`above or equal to`、`below`、または `below or equal to` であった場合にトリガーします。 +* 過去 `5 minutes`、`15 minutes`、`1 hour`、または `custom` に 1 分~48 時間 (メトリクスモニターに対して 1 か月) の値を設定します。 -### 集計の方法 +### 集計方法 {#aggregation-method} -クエリは一連のポイントを返しますが、しきい値と比較するには単一の値が必要です。モニターは、評価ウィンドウのデータを単一の値に減らす必要があります。 +クエリは一連のポイントを返しますが、しきい値と比較するためには単一の値が必要です。モニターは、評価ウィンドウ内のデータを減らして単一の値にする必要があります。 | オプション | 説明 | |-------------------------|--------------------------------------------------------| -| 平均 | 系列の平均値が算出され、単一の値が生成されます。この値がしきい値と比較されます。このオプションは、モニタークエリに `avg()` 関数を追加します。 | -| 最大 | 生成された系列で、どれか一つの値がしきい値を超えたら、アラートがトリガーされます。これは、`max()` 関数をモニタークエリに追加します。* | -| 最小 | クエリの評価ウィンドウ内のすべてのポイントがしきい値を超えたら、アラートがトリガーされます。これは、`min()` 関数をモニタークエリに追加します。* | -| 合計 | 系列内のすべてのポイントの合計値がしきい値から外れている場合に、アラートがトリガーされます。このオプションは、モニタークエリに `sum()` 関数を追加します。 | +| 平均 | 系列の平均値を計算して、しきい値との比較でチェックする単一の値を生成します。モニタークエリに `avg()` 関数を追加します。| +| 最大 | 生成された系列内のいずれか 1 つの値でもしきい値を超えた場合に、アラートがトリガーされます。モニタークエリに `max()` 関数を追加します。* | +| 最小 | クエリの評価ウィンドウ内のすべてのポイントがしきい値を超えた場合に、アラートがトリガーされます。モニタークエリに `min()` 関数を追加します。* | +| 合計 | 系列内のすべてのポイントの合計値がしきい値を超えた場合に、アラートがトリガーされます。モニタークエリに `sum()` 関数を追加します。| -\* These descriptions of max and min assume that the monitor alerts when the metric goes _above_ the threshold. For monitors that alert when _below_ the threshold, the max and min behavior is reversed. For more examples, see the [Monitor aggregators][1] guide. +\* 最大および最小の説明は、メトリクスがしきい値を_超えた_場合にモニターがアラートを出すことを前提としています。しきい値を_下回った_場合にアラートを出すモニターの場合は、最大と最小の動作が逆になります。その他の例については、[モニターの集計方法][1] ガイドを参照してください。 -**Note**: There are different behaviors when utilizing `as_count()`. See [as_count() in Monitor Evaluations][2] for details. +**注**: `as_count()` を利用する場合は、異なる動作があります。詳細については、[モニター評価での as_count()][2] を参照してください。 -### 評価ウィンドウ +### 評価ウィンドウ {#evaluation-window} -モニターは、累積タイムウィンドウまたはローリングタイムウィンドウを使用して評価することができます。累積タイムウィンドウは、「この時点までのすべてのデータの合計は?」のような歴史的な文脈を必要とする質問に最も適しています。ローリングタイムウィンドウは、「直近の _N_ データポイントの平均は?」のような、このコンテキストを必要としない質問に答えるのに最適な方法です。 +モニターは、累積タイムウィンドウまたはローリングタイムウィンドウを使用して評価することができます。累積タイムウィンドウは、“この時点までに使用可能なすべてのデータの合計を教えてください”のような、過去のコンテキストが必要な質問に最適です。ローリングタイムウィンドウは、“最後の _N_ 個のデータポイントの平均を教えてください”のような、このコンテキストを必要としない質問に回答するのに最適です。 下図は、累積タイムウィンドウとローリングタイムウィンドウの違いを示しています。 -{{< img src="/monitors/create/rolling_vs_expanding.png" alt="累積タイムウィンドウとローリングタイムウィンドウの 2 つのグラフ。累積タイムウィンドウは、時間の経過とともに拡大し続けます。ローリングタイムウィンドウは、特定の時間帯をカバーします。" style="width:100%;">}} +{{< img src="/monitors/create/rolling_vs_expanding.png" alt="累積タイムウィンドウとローリングタイムウィンドウを示す 2 つのグラフ。累積タイムウィンドウは、時間の経過と共に拡大し続けます。ローリングタイムウィンドウは、特定の時間帯に対応します。" style="width:100%;">}} + +#### ローリングタイムウィンドウ {#rolling-time-windows} -#### ローリングタイムウィンドウ +ローリングタイムウィンドウはサイズが固定されており、時間の経過と共に開始点を移動させます。モニターは、過去 `5 minutes`、`15 minutes`、`1 hour`、または最大 1 か月のカスタムタイムウィンドウを遡って確認できます。 -ローリングタイムウィンドウは、サイズが固定で、時間の経過とともに開始点が移動します。モニターは、`5 minutes`、`15 minutes`、`1 hour` またはカスタムで指定したタイムウィンドウを振り返ることができます。 +**注**: [ログモニター][6] では、最大 `2 days` のローリングタイムウィンドウを設定できます。 -#### 累積タイムウィンドウ -累積タイムウィンドウは、開始点が固定され、時間の経過とともに拡大します。モニターは 3 つの異なる累積タイムウィンドウをサポートしています。 +#### 累積タイムウィンドウ {#cumulative-time-windows} +累積タイムウィンドウでは開始点が固定されており、時間の経過と共に拡大します。モニターは、3 つの異なる累積タイムウィンドウをサポートしています。 -- `Current hour`: 構成可能な分単位で開始する最大1時間のタイムウィンドウです。例えば、HTTP エンドポイントが 0 分から 1 時間の間に受けたコールの量を監視します。 -- `Current day`: A time window with a maximum of 24 hours starting at a configurable hour and minute of a day. For example, monitor a [daily log index quota][3] by using the `current day` time window and letting it start at 2:00pm UTC. -- `Current month`: Looks back at the current month starting on a configurable day of the month at a configurable hour and minute. This option represents a month-to-date time window and is only available for metric monitors. +- `Current hour`: 開始時間として 1 時間の中の分を設定できる、最大 1 時間のタイムウィンドウ。たとえば、0 分から 1 時間の間に HTTP エンドポイントが受信する呼び出しの数をモニターします。 +- `Current day`: 開始時間として 1 日の中の時間と分を設定できる、最大 24 時間のタイムウィンドウ。たとえば、`current day` タイムウィンドウを使用し、開始時間として 2:00pm UTC を指定して、[日別のログインデックスの割り当て][3] をモニターします。 +- `Current month`: 設定可能な 1 か月の中の日と設定可能な時間および分から、今月を遡って確認します。このオプションは月初から現在までのタイムウィンドウを表し、メトリックモニターでのみ利用可能です。 -{{< img src="/monitors/create/cumulative_window_example_more_options.png" alt="Screenshot of how a cumulative window is configured in the Datadog interface. The user has searched for aws.sqs.number_of_messages_received. The options are set to evaluate the SUM of the query over the CURRENT MONTH." style="width:100%;">}} +{{< img src="/monitors/create/cumulative_window_example_more_options.png" alt="Datadog インターフェイスで累積ウィンドウがどのように構成されるかを示すスクリーンショット。ユーザーは、aws.sqs.number_of_messages_received を検索しています。オプションは、今月のクエリの合計を評価するように設定されています。" style="width:100%;">}} -累積タイムウィンドウは、その最大タイムスパンに達した後リセットされます。例えば、`current month` を見る累積タイムウィンドウは、毎月 1 日の午前 0 時 (UTC) にリセットされます。あるいは、`current hour` の累積タイムウィンドウは、30 分から始まり、1 時間ごとにリセットされます。例えば、午前 6 時 30 分、午前 7 時 30 分、午前 8 時 30 分です。 +累積タイムウィンドウは、最大時間スパンに達するとリセットされます。たとえば、`current month` を確認する累積タイムウィンドウは、毎月 1 日の午前 0 時 (UTC) にリセットされます。30 分から開始する `current hour` の累積タイムウィンドウは、毎時間リセットされます。たとえば、午前 6 時 30 分、午前 7 時 30 分、午前 8 時 30 分です。 -### 評価頻度 +### 評価頻度 {#evaluation-frequency} -評価頻度は、Datadog がモニタークエリを実行する頻度を定義します。ほとんどの構成では、評価頻度は `1 minute` で、これは 1 分ごとにモニターが[選択したデータ](#define-the-search-query)を[選択した評価ウィンドウ](#evaluation-window)にクエリして、[定義したしきい値](#thresholds)と集計値を比較することを意味します。 +評価頻度は、Datadog がモニタークエリを実行する頻度を定義します。ほとんどの構成では、評価頻度は `1 minute` です。これは、モニターが毎分、[選択されたデータ](#define-the-search-query)を[選択された評価ウィンドウ](#evaluation-window)についてクエリし、集計された値を[定義されたしきい値](#thresholds)と比較することを意味します。 -デフォルトで、評価頻度は使用されている[評価ウィンドウ](#evaluation-window)に依存します。ウィンドウを長くすると、評価頻度が低くなります。以下の表は、タイムウィンドウを大きくすることで評価頻度がどのように制御されるかを示しています。 +デフォルトでは、評価頻度は使用される[評価ウィンドウ](#evaluation-window)によって決まります。ウィンドウが長くなるほど、評価頻度は低くなります。以下の表は、時間ウィンドウが大きくなると、評価頻度がどのように変わるかを示しています。 -| 評価ウィンドウの範囲 | 評価頻度 | +| 評価ウィンドウ範囲 | 評価頻度 | |---------------------------------|-----------------------| -| ウィンドウ < 24 時間 | 1 分 | -| 24 時間 <= ウィンドウ < 48 時間 | 10 分 | -| ウィンドウ >= 48 時間 | 30 分 | +| ウィンドウが 24 時間未満 | 1 分 | +| ウィンドウが 24 時間以上 48 時間未満 | 10 分 | +| ウィンドウが 48 時間以上 | 30 分 | -評価頻度は、モニターのアラート条件を毎日、毎週、毎月チェックするように構成することもできます。この構成では、評価頻度はもはや評価ウィンドウに依存せず、構成されたスケジュールに依存します。 +評価頻度は、モニターのアラート条件が日次、週次、または月次でチェックされるように構成することもできます。この構成では、評価頻度は評価ウィンドウではなく、構成されたスケジュールに従って決定されるようになります。 -詳しくは、[モニター評価頻度のカスタマイズ][4]方法のガイドをご覧ください。 +詳しくは、[モニター評価頻度のカスタマイズ][4] 方法のガイドをご覧ください。 -### しきい値 +### しきい値 {#thresholds} -しきい値には、アラートをトリガーする数値を設定します。メトリクスに何を選ぶかによって、エディターに表示される単位 (`byte`、`kibibyte`、`gibibyte` など) が変わります。 +しきい値を使用して、アラートをトリガーするための数値を設定します。エディターには、選択したメトリクスに応じて使用される単位が表示されます (`byte`、`kibibyte`、`gibibyte`など)。 -Datadog has two types of notifications (alert and warning). Monitors recover automatically based on the alert or warning threshold but additional conditions can be specified. For additional information on recovery thresholds, see [What are recovery thresholds?][5]. For example, if a monitor alerts when the metric is above `3` and recovery thresholds are not specified, the monitor recovers once the metric value goes back below `3`. +Datadog には 2 種類の通知 (アラートと警告) があります。モニターは、アラートまたは警告のしきい値に基づいて自動的に回復しますが、追加の条件を指定することもできます。回復しきい値の詳細については、[回復しきい値とは][5] を参照してください。たとえば、メトリクスが `3` を超えたときにモニターがアラートを出し、回復しきい値が指定されていない場合は、メトリクスの値が `3` を下回ったときにモニターが回復します。 | オプション | 説明 | |------------------------------------------|--------------------------------| -| アラートしきい値 **(必須)** | アラートの通知のトリガーに使用される値 | -| 警告しきい値 | 警告の通知のトリガーに使用される値 | -| アラート回復しきい値 | アラートのリカバリに対する追加条件を示すしきい値 (任意) | -| 警告回復しきい値 | 警告のリカバリに対する追加条件を示すしきい値 (任意) | +| アラートしきい値 **(必須)** | アラート通知をトリガーするために使用される値。| +| 警告しきい値 | 警告通知をトリガーするために使用される値。| +| アラート回復しきい値 | アラート回復の追加条件を指定するためのオプションのしきい値。| +| 警告回復しきい値 | 警告回復の追加条件を指定するためのオプションのしきい値。| しきい値を変更すると、エディター内でプレビューグラフにカットオフポイントを示すマーカーが表示されます。 {{< img src="/monitors/create/preview_graph_thresholds.png" alt="しきい値プレビューグラフ" style="width:100%;">}} -**メモ**: しきい値を小数で入力する際、値が `<1` の場合は先頭に `0` を付けます。たとえば、`.5` ではなく `0.5` としてください。 +**注**: しきい値を小数で入力する際、値が `<1` の場合は先頭に `0` を付けます。たとえば、`.5` ではなく、`0.5` としてください。 [1]: /ja/monitors/guide/monitor_aggregators/ @@ -120,24 +159,25 @@ Datadog has two types of notifications (alert and warning). Monitors recover aut [3]: https://docs.datadoghq.com/ja/logs/log_configuration/indexes/#set-daily-quota [4]: /ja/monitors/guide/custom_schedules [5]: /ja/monitors/guide/recovery-thresholds/ +[6]: /ja/monitors/types/log/ {{% /tab %}} {{% tab "チェックアラート" %}} -チェックアラートは、各チェックグループにつき、送信されたステータスを連続的にトラックし、しきい値と比較します。チェックアラートを次のように設定します。 +チェックアラートは、各チェックグループにつき、送信されたステータスを連続的にトラックし、しきい値と比較します。チェックアラートは、次のように設定します。 -1. 何回連続して失敗したらアラートをトリガーするか、回数 `<数値>` を選択します。 +1. 何回連続して失敗したらアラートをトリガーするか、回数 `` を選択します。 - 各チェックは `OK`、`WARN`、`CRITICAL` のいずれか 1 つのステータスを送信します。`WARN` と `CRITICAL` ステータスが連続して何回送信されたら通知をトリガーするか選択します。たとえば、プロセスで接続に失敗する異常が 1 回発生したとします。値を `> 1` に設定した場合、この異常は無視されますが、2 回以上連続で失敗した場合は通知をトリガーします。 + チェックを実行するたびに、`OK`、`WARN`、または `CRITICAL` の 1 つのステータスが送信されます。`WARN` および `CRITICAL` ステータスが何回連続して送信されたら通知をトリガーするかを選択します。たとえば、プロセスで接続が失敗する原因となるブリップが 1 回発生したとします。この値を `> 1` に設定すると、ブリップは無視されますが、連続して 2 回以上失敗する問題が発生すると、通知がトリガーされます。 - {{< img src="/monitors/create/check_thresholds_alert_warn.png" alt="しきい値アラート/警告のチェック" style="width:90%;">}} + {{< img src="/monitors/create/check_thresholds_alert_warn.png" alt="チェックしきい値アラート/警告" style="width:90%;">}} -2. 何回連続して成功したらアラートを解決するか、回数 `<数値>` を選択します。 +2. 何回連続して成功したらアラートを解決するか、回数 `` を選択します。 何回連続して `OK` ステータスが送信されたらアラートを解決するか、回数を選択します。 - {{< img src="/monitors/create/check_thresholds_recovery.png" alt="しきい値回復のチェック" style="width:90%;">}} + {{< img src="/monitors/create/check_thresholds_recovery.png" alt="チェックしきい値回復" style="width:90%;">}} -チェックアラートの構成の詳細については、[プロセスチェック][1]、[インテグレーションチェック][2]、[カスタムチェック][3]モニターのドキュメントを参照してください。 +チェックアラートの構成の詳細については、[プロセスチェック][1]、[インテグレーションチェック][2]、[カスタムチェック][3] モニターのドキュメントを参照してください。 @@ -147,87 +187,68 @@ Datadog has two types of notifications (alert and warning). Monitors recover aut {{% /tab %}} {{< /tabs >}} -### 高度なアラート条件 - -#### No Data - -正常な状態で、メトリクスが常にデータを報告するようにするには、「データなし」通知を利用すると便利です。たとえば、Agent を使用しているホストが継続的に稼働している必要がある場合、`system.cpu.idle` メトリクスがデータを常に報告することが期待されます。 +### 高度なアラート条件 {#advanced-alert-conditions} -この場合、データ欠落の通知を有効にする必要があります。以下のセクションでは、各オプションでこれを実現する方法を説明します。 +#### No data (データなし) {#no-data} -**注**: 欠落したデータに対してアラートを出す前に、モニターはデータを評価できなければなりません。例えば、`service:abc` のモニターを作成し、その `service` からのデータが報告されていない場合、モニターはアラートを送信しません。 +欠落データに関する通知は、通常の状況下ではメトリクスによって常にデータが報告されると想定される場合に役立ちます。たとえば、Agent を使用するホストが常に稼働している必要がある場合、`system.cpu.idle` メトリクスは常にデータを報告すると想定することができます。 +この場合、欠落データに関する通知を有効にする必要があります。以下のセクションでは、各オプションを使用してこれを実現する方法を説明します。 -{{< tabs >}} -{{% tab "メトリクスベースのモニター" %}} - -If you are monitoring a metric over an auto-scaling group of hosts that stops and starts automatically, notifying for `no data` produces a lot of notifications. In this case, you should not enable notifications for missing data. This option does not work unless it is enabled at a time when data has been reporting for a long period. +**注**: モニターは、欠落データに対してアラートを出す前にデータを評価できる必要があります。たとえば、`service:abc` のモニターを作成し、その `service` からのデータが報告されない場合、モニターはアラートを送信しません。 -| オプション | 説明 | 注 | -| --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -| **Do not notify** if data is missing | No notification is sent if data is missing | Simple Alert: the monitor skips evaluations and stays green until data returns that would change the status from OK
    Multi Alert: if a group does not report data, the monitor skips evaluations and eventually drops the group. During this period, the bar in the results page stays green. When there is data and groups start reporting again, the green bar shows an OK status and backfills to make it look like there was no interruption.| -| **Notify** if data is missing for more than **N** minutes. | You are notified if data is missing. The notification occurs when no data was received during the configured time window.| Datadog recommends that you set the missing data window to at least two times the evaluation period. | +`N` 分のデータが欠落している場合、ドロップダウンメニューからオプションを選択します。 - -{{% /tab %}} - -{{% tab "その他のモニタータイプ" %}} - -`N` 分のデータがない場合、ドロップダウンメニューからオプションを選択します。 - -{{< img src="/monitors/create/on_missing_data.png" alt="データなしオプション" style="width:70%;">}} +{{< img src="/monitors/create/on_missing_data.png" alt="[No Data] オプション" style="width:70%;">}} - `Evaluate as zero` / `Show last known status` - `Show NO DATA` - `Show NO DATA and notify` -- `Show OK` +- `Show OK`。 -選択された動作は、モニターのクエリがデータを返さなかったときに適用されます。`Do not notify`オプションとは異なり、データ欠落ウィンドウは**構成できません**。 +モニターのクエリからデータが返されない場合、選択された動作が適用されます。`Do not notify` オプションとは対照的に、欠落データウィンドウは構成可能では**ありません**。 | オプション | モニターステータスと通知 | |---------------------------|---------------------------------------------------------------------------| -| `Evaluate as zero` | 空の結果はゼロに置き換えられ、アラート/警告のしきい値と比較されます。例えば、警告しきい値が `> 10` に設定されている場合、ゼロはその状態をトリガーせず、モニターのステータスは `OK` に設定されます。 | -| `Show last known status` | グループまたはモニターの最後の既知のステータスが設定されます。 | -| `Show NO DATA` | モニターステータスが `NO DATA` に設定されます。 | -| `Show NO DATA and notify` | モニターステータスが `NO DATA` に設定され、通知が送信されます。 | -| `Show OK` | モニターは解決され、ステータスは `OK` に設定されます。 | +| `Evaluate as zero` | 空の結果はゼロに置き換えられ、アラート/警告のしきい値と比較されます。たとえば、アラートしきい値が `> 10` に設定されている場合、ゼロはその条件をトリガーせず、モニターステータスは `OK` に設定されます。 | +| `Show last known status` | グループまたはモニターの最後の既知のステータスが設定されます。 | +| `Show NO DATA` | モニターステータスが `NO DATA` に設定されます。 | +| `Show NO DATA and notify` | モニターステータスが `NO DATA` に設定され、通知が送信されます。 | +| `Show OK` | モニターが解決され、ステータスが `OK` に設定されます。 | -`Evaluate as zero` と `Show last known status` のオプションが、クエリの種類に応じて表示されます。 +`Evaluate as zero` および `Show last known status` オプションは、クエリタイプに基づいて表示されます。 -- **Evaluate as zero:** このオプションは、`default_zero()` 関数がない `Count` クエリを使用するモニターに使用できます。 -- **Show last known status:** このオプションは `Count` 以外のクエリタイプ、例えば `Gauge`、`Rate`、`Distribution` を使用しているモニター、および `default_zero()` を持つ `Count` クエリで利用できます。 +- **Evaluate as zero (ゼロとして評価):** このオプションは、`default_zero()` 関数がない `Count` クエリを使用するモニターで使用できます。 +- **Show last known status (最後の既知のステータスを表示):** このオプションは `Count` 以外のクエリタイプ、たとえば `Gauge`、`Rate`、および `Distribution` を使用しているモニター、および `default_zero()` を指定した `Count` クエリで使用できます。 -{{% /tab %}} -{{< /tabs >}} - -#### Auto resolve +#### Auto resolve (自動解決){#auto-resolve} -`[Never]`, `After 1 hour`, `After 2 hours` and so on. automatically resolve this event from a triggered state. +`[Never]`、`After 1 hour`、`After 2 hours` など。トリガーされた状態からこのイベントを自動的に解決します。 -自動解決は、データが送信されなくなったときに機能します。データがまだ報告されている場合、モニターは、ALERT または WARN 状態から自動解決されません。データがまだ送信されている場合は、[再通知][2]機能を利用して、問題が解決されていないことをチームに知らせることができます。 +自動解決は、データが送信されなくなったときに機能します。データが報告されている間は、ALERT または WARN ステータスからモニターが自動解決されることはありません。データがまだ送信されている場合は、[再通知][2] 機能を使用して、問題が解決されていないことをチームに通知できます。 -メトリクスが定期的に報告を行う場合に、トリガーされたアラートを一定の期間の後に自動で解決したいことがあります。たとえば、エラーのログだけを報告するカウンターがある場合、エラーの数が `0` であれば報告が行われないため、アラートがいつまでも解決しません。このような場合、メトリクスからの報告がないまま一定の期間が経過したらアラートを解決するように設定できます。**注**: モニターがアラートを自動で解決し、次回の評価でクエリーの値がリカバリのしきい値を満たしていない場合、モニターはもう一度アラートをトリガーします。 +定期的に報告されるメトリクスについては、トリガーされたアラートが特定の期間後に自動解決されるように設定したほうが適切な場合があります。たとえば、エラーがログに記録されたときにのみ報告されるカウンターの場合、メトリクスがエラーの数として `0` を報告することがないため、アラートが解決されることはありません。その場合は、メトリクスが一定の期間非アクティブであった場合にアラートを解決するように設定します。**注**: モニターが自動解決され、次回の評価時にクエリの値が回復しきい値を満たさない場合、モニターは再度アラートをトリガーします。 -In most cases this setting is not useful because you only want an alert to resolve after it is actually fixed. So, in general, it makes sense to leave this as `[Never]` so alerts only resolve when the metric is above or below the set threshold. +ほとんどの場合、この設定は役に立ちません。これは、アラートが実際に修復された後でのみ、アラートを解決する必要があるためです。したがって、通常はこれを `[Never]` のままにして、メトリクスが設定されたしきい値を超えたか、下回った場合にのみ、アラートが解決されるようにするのが適切です。 -#### グループ保持時間 +#### Group retention time (グループ保持時間) {#group-retention-time} -You can drop the group from the monitor status after `N` hours of missing data. The length of time can be at minimum 1 hour, and at maximum 72 hours. For multi alert monitors, select **Remove the non-reporting group after `N (length of time)`**. +データが欠落してから `N` 時間経過すると、そのグループをモニターステータスから削除することができます。この時間は最小 1 時間、最大 72 時間です。マルチアラートモニターの場合は、[**Remove the non-reporting group after `N (length of time)`**] (N (時間の長さ) 後に報告してないグループを削除) を選択します。 -{{< img src="/monitors/create/group_retention_time.png" alt="グループ保持時間オプション" style="width:70%;">}} +{{< img src="/monitors/create/group_retention_time.png" alt="[Group Retention Time] オプション" style="width:70%;">}} -[自動解決オプション][3]と同様に、グループの保持は、データが送信されなくなったときに機能します。このオプションは、データが報告されなくなった後、グループがモニターのステータスに保持される時間を制御します。デフォルトでは、グループはドロップされる前に 24 時間ステータスを保持します。グループ保持の開始時間と自動解決オプションは、モニタークエリがデータを返さないとすぐに **同一** になります。 +[自動解決オプション][3] と同様に、グループ保持は、データが送信されなくなった場合に動作します。このオプションは、データの報告が停止した後、グループがモニターのステータスをどれくらいの時間保持するかを制御します。デフォルトでは、グループは 24 時間ステータスを保持してから削除されます。グループ保持と自動解決オプションの開始時間は**同じ**で、モニターのクエリがデータを返さなくなった時点です。 グループ保持時間を定義するユースケースとしては、以下のようなものがあります。 -- データが報告されなくなった直後に、グループをドロップしたい場合 -- トラブルシューティングのために通常かかる時間と同じだけ、グループのステータスを維持したい場合 +- データの報告が停止した直後にグループを削除する場合 +- トラブルシューティングに通常かかる時間と同じだけ、グループのステータスを維持する場合 -**注**: グループ保持時間オプションは、[`On missing data`][4] オプションをサポートするマルチアラートモニターを必要とします。これらのモニタータイプは、APM トレース分析、監査ログ、CI パイプライン、エラー追跡、イベント、ログ、および RUM モニターです。 +**注**: [グループ保持時間] オプションには、[`On missing data`][4] オプションをサポートするマルチアラートモニターが必要です。これらのモニタータイプは、[APM Trace Analytics] (APM トレース分析)、[Audit Logs] (監査ログ)、[CI Pipelines] (CI パイプライン)、[Error Tracking] (エラートラッキング)、[Events] (イベント)、[Logs] (ログ)、および [RUM] モニターです。 -#### 新しいグループ遅延 +#### New group delay (新しいグループ遅延) {#new-group-delay} -新しいグループの評価開始を `N` 秒遅らせます。 +新しいグループの評価の開始を `N` 秒遅らせます。 アラートを開始する前に待機する時間 (秒単位)。新しく作成されたグループが起動し、アプリケーションが完全に起動できるようにします。これは負でない整数である必要があります。 @@ -235,102 +256,104 @@ You can drop the group from the monitor status after `N` hours of missing data. このオプションは、マルチアラートモードで使用できます。 -#### Evaluation Delay +#### Evaluation delay (評価遅延) {#evaluation-delay} -
    Datadog では、サービスプロバイダーによってバックフィルされるクラウドメトリクスに対して 15 分の遅延を推奨しています。さらに、除算式を使用する場合、モニターが完全な値で評価されるようにするために、60 秒の遅延が有効です。遅延時間の目安については、クラウドメトリクスの遅延ページを参照してください。
    +
    Datadog では、サービスプロバイダーによってバックフィルされるクラウドメトリクスには、遅延を 15 分に設定することをお勧めしています。また、除算の計算式を使用する場合は、モニターが完全な値を評価できるよう、60 秒の遅延を設定すると役に立ちます。遅延時間の見積もりについては、「クラウドメトリクスの遅延」ページを参照してください。
    評価を `N` 秒遅らせます。 -評価を遅らせる時間 (秒単位)。負以外の整数を指定してください。たとえば、遅延を 900 秒 (15 分) に、モニターが評価を行う期間を直前の `5 minutes` に、時刻を 7:00 に設定すると、モニターは 6:40 から 6:45 までのデータを評価します。構成可能な評価遅延の最大値は 86400 秒 (24 時間) です。 +評価を遅らせる時間 (秒単位)。これは負でない整数である必要があります。たとえば、遅延を 900 秒 (15 分) に、モニターが評価を行う期間を直前の `5 minutes` に、時刻を 7:00 に設定すると、モニターは 6:40 から 6:45 までのデータを評価します。構成可能な評価遅延の最大値は 86400 秒 (24 時間) です。 -## 通知と自動化の構成 +## 通知と自動化の構成 {#configure-notifications-and-automations} 通知メッセージを構成して、最も関心のある情報を含めることができます。アラートを送信するチームと、アラートをトリガーする属性を指定します。 -### メッセージ +### メッセージ {#message} このセクションを使用して、チームへの通知を構成し、これらのアラートを送信する方法を構成します。 - [テンプレート変数で通知を構成する][5] - - [Send notifications to your team through email, Slack, or PagerDuty][6] + - [メール、Slack、PagerDuty でチームに通知を送る][6] -通知メッセージの構成オプションの詳細については、[アラート通知][7]を参照してください。 +通知メッセージの構成オプションの詳細については、[アラート通知][7] を参照してください。 -### メタデータを追加する +### メタデータを追加 {#add-metadata} -
    モニタータグは、Agent やインテグレーションから送信されるタグとは独立しています。モニターの管理のドキュメントを参照してください。
    +
    モニターのタグは、Agent やインテグレーションによって送信されるタグとは独立しています。モニターの管理のドキュメントを参照してください。
    -1. Use the **Tags** dropdown to associate [tags][8] with your monitor. -1. Use the **Teams** dropdown to associate [teams][9] with your monitor. -1. **Priority** を選択します。 +1. [**Tags**] (タグ) ドロップダウンを使用して、モニターに [タグ][8] を関連付けることができます。 +1. [**Teams**] (チーム) ドロップダウンを使用して、モニターに [チーム][9] を関連付けることができます。 +1. [**Priority**] (優先度) を選択します。 -### Set alert aggregation +### アラートの集約を設定 {#set-alert-aggregation} -アラートは、クエリを定義する際に `group by` の手順で選択したグループに応じて自動的にグループ化されます。クエリにグループ化がない場合、デフォルトで `Simple Alert` (シンプルアラート) でグループ化されます。クエリがディメンションでグループ化されている場合は、`Multi Alert` (マルチアラート) でグループ化されます。 +アラートは、クエリに対して選択された集約に基づいて自動的にグループ化されます (たとえば、`avg by service`)。クエリでグループ化が指定されていない場合、デフォルトで `Simple Alert` に設定されます。クエリが任意のディメンションでグループ化されている場合、グループは `Multi Alert` に変更されます。 {{< img src="/monitors/create/notification-aggregation.png" alt="モニター通知集計の構成オプション" style="width:100%;">}} -#### シンプルアラート +#### Simple Alert (シンプルアラート) {#simple-alert} + +`Simple Alert` モードでは、すべての報告元ソースを集計して通知をトリガーします。集計値が設定条件を満たすと、**アラートを 1 件**受信します。たとえば、すべてのサーバーの平均 CPU 使用率が特定のしきい値を超えた場合に通知するようにモニターを設定することができます。そのしきい値に達した場合、しきい値に達した個々のサーバーの数に関係なく、1 件の通知を受信します。これは、広範なシステムの傾向や動作をモニターするのに役立ちます。 -`Simple Alert` モードは、すべてのレポートソースを集計して通知をトリガーします。集計された値が設定された条件を満たすと、**1 つのアラート**を受け取ります。例えば、全サーバーの平均 CPU 使用率があるしきい値を超えた場合に通知するようにモニターを設定するとします。そのしきい値を満たした場合、しきい値を満たした個々のサーバーの数に関係なく、1 つの通知を受け取ります。これは、システムの大まかな傾向や動作を監視するのに便利です。 +{{< img src="/monitors/create/simple-alert.png" alt="Simple Alert モードでモニター通知が送信される方法を示す図" style="width:90%;">}} -{{< img src="/monitors/create/simple-alert.png" alt="シンプルアラートモードでのモニター通知の送信方法を示す図" style="width:90%;">}} +#### Multi Alert (マルチアラート){#multi-alert} -#### マルチアラート +`Multi Alert` モニターは、アラートしきい値に達したモニター内の各エンティティに対して個別の通知をトリガーします。 -`Multi Alert` モニターは、アラートしきい値を満たしたモニター内の各エンティティに対して個別の通知をトリガーします。 +{{< img src="/monitors/create/multi-alert.png" alt="Multi Alert モードでモニター通知が送信される方法を示す図" style="width:90%;">}} -{{< img src="/monitors/create/multi-alert.png" alt="マルチアラートモードでのモニター通知の送信方法の図" style="width:90%;">}} +たとえば、サービスごとに集計される P99 レイテンシーが特定のしきい値を超えた場合に通知するようにモニターを設定した場合、P99 レイテンシーがアラートしきい値を超えた個々のサービスごとに**別の**アラートを受信します。これは、システムまたはアプリケーションの個別の問題を特定して対処する場合に役立ちます。こうすることで、よりきめ細かいレベルで問題を追跡できます。 -例えば、サービスごとに集計された P99 レイテンシーがあるしきい値を超えた場合に通知するようにモニターを設定する場合、P99 レイテンシーがアラートしきい値を超えた個々のサービスごとに**別々の**アラートを受け取ることになります。これは、システムまたはアプリケーションの問題の特定のインスタンスを特定し、対処するのに便利です。より詳細なレベルで問題を追跡することができます。 +##### 通知のグループ化 {#notification-grouping} -エンティティの大規模なグループを監視する場合、マルチアラートではノイズの多いモニターになる可能性があります。これを軽減するには、どのディメンションがアラートをトリガーするかをカスタマイズします。これにより、ノイズを減らし、最も重要なアラートに集中することができます。例えば、全ホストの平均 CPU 使用率を監視しているとします。クエリを `service` と `host` でグループ化したが、しきい値を満たした各 `service` 属性に対してアラートを一度送信したいだけの場合は、マルチアラートオプションから `host` 属性を削除すれば、送信される通知の数を減らすことができます。 +大規模なエンティティグループをモニターする場合、マルチアラートではモニターのノイズが増える可能性があります。これを軽減するために、アラートをトリガーするディメンションをカスタマイズします。これによりノイズが減少し、最も重要なアラートに注目することができます。たとえば、すべてのホストの平均 CPU 使用率をモニターするとします。`service` および `host` でクエリをグループ化するが、しきい値に達した `service` 属性ごとに一度だけアラートを送信する場合は、マルチアラートオプションから `host` 属性を削除し、送信される通知の数を減らします。 -{{< img src="/monitors/create/multi-alert-aggregated.png" alt="マルチアラートで特定のディメンションに設定した場合の通知の送信方法の図" style="width:90%;">}} +{{< img src="/monitors/create/multi-alert-aggregated.png" alt="マルチアラートで特定のディメンションに設定された場合の通知の送信を示す図" style="width:90%;">}} `Multi Alert` モードで通知を集計する場合、集計されないディメンションは UI で `Sub Groups` になります。 -**注**: `service` タグがなく、`host` タグだけが報告されているメトリクスは、モニターによって検出されません。`host` と `service` の両方のタグを持つメトリクスは、モニターによって検出されます。 +**注**: メトリクスが `service` タグが指定されていない `host` でのみ報告される場合、そのメトリクスはモニターで検出されません。`host` および `service` タグが指定されたメトリクスは、モニターによって検出されます。 -If you configure tags or dimensions in your query, these values are available for every group evaluated in the multi alert to dynamically fill in notifications with useful context. See [Attribute and tag variables][10] to learn how to reference tag values in the notification message. +クエリでタグまたはディメンションを構成した場合、これらの値はマルチアラートで評価されるすべてのグループで利用でき、有用なコンテキストで動的に通知を埋めることができます。通知メッセージでタグの値を参照する方法については、[属性変数とタグ変数][10] を参照してください。 -| グループ化 | シンプルアラートモード | マルチアラートモード | +| グループ化 | シンプルアラートモード | マルチアラートモード mode | |-------------------------------------|------------------------|-----------------------| -| _(すべて)_ | 1 つの通知をトリガーする 1 つの単一グループ | N/A | +| _(すべて)_ | 1 つの通知をトリガーする 1 つの単一グループ | 該当なし | | 1 つ以上のディメンション | 1 つ以上のグループがアラート条件を満たす場合の 1 つの通知 | アラート条件を満たすグループごとに 1 つの通知 | -## 権限 +## 権限 {#permissions} -All users can view all monitors, regardless of the team or role they are associated with. By default, only users attached to roles with the [Monitors Write permission][11] can edit monitors. [Datadog Admin Role and Datadog Standard Role][12] have the Monitors Write permission by default. If your organization uses [Custom Roles][13], other custom roles may have the Monitors Write permission. For more information on setting up RBAC for Monitors and migrating monitors from the locked setting to using role restrictions, see the guide on [How to set up RBAC for Monitors][14]. +すべてのユーザーは、関連付けられているチームやロールに関係なく、すべてのモニターを表示できます。デフォルトでは、[モニターの書き込み権限][11] を持つロールが付与されているユーザーのみがモニターを編集できます。[Datadog Admin ロールおよび Datadog 標準ロール][12] には、デフォルトでモニターの書き込み権限が付与されています。組織が [カスタムロール][13] を使用している場合は、ほかのカスタムロールがモニターの書き込み権限を持つ場合があります。モニターの RBAC 設定や、モニターを固定設定からロール制限の使用へ移行する方法について詳しくは、[モニターに RBAC を設定する方法][14] に関するガイドを参照してください。 -You can further restrict your monitor by specifying a list of [teams][17], [roles][15], or users allowed to edit it. The monitor's creator has edit rights on the monitor by default. Editing includes any updates to the monitor configuration, deleting the monitor, and muting the monitor for any amount of time. +モニターを編集できる [チーム][17]、[ロール][15]、またはユーザーのリストを指定することで、モニターをさらに細かく制限できます。モニターの作成者はデフォルトで、モニターに対する編集権を持っています。編集には、モニターのコンフィギュレーションの更新、モニターの削除、モニターのミュート (時間の長短を問わず) などが含まれます。 **注**: 制限は UI と API の両方に適用されます。 -### きめ細かなアクセス制御 +### きめ細かなアクセス制御 {#granular-access-controls} -Use [granular access controls][16] to limit the teams, roles, or users that can edit a monitor: -1. While editing or configuring a monitor, find the **Define permissions and audit notifications** section. - {{< img src="monitors/configuration/define_permissions_audit_notifications.png" alt="Monitor configuration options to define permissions" style="width:70%;" >}} -1. Click **Edit Access**. -1. **Restrict Access** をクリックします。 -1. ダイアログボックスが更新され、組織のメンバーはデフォルトで **Viewer** アクセス権を持っていることが表示されます。 -1. Use the dropdown to select one or more teams, roles, or users that may edit the monitor. -1. **Add** をクリックします。 -1. ダイアログボックスが更新され、選択したロールに **Editor** 権限があることが表示されます。 -1. **Done** をクリックします。 +[きめ細かなアクセス制御][16] を使用して、モニターを編集できるチーム、ロール、またはユーザーを制限します。 +1. モニターの編集または構成中に、[**Define permissions and audit notifications**] (権限と監査通知の定義) セクションを見つけます。 + {{< img src="monitors/configuration/define_permissions_audit_notifications.png" alt="権限を定義するためのモニター構成オプション" style="width:70%;" >}} +1. [**Edit Access**] (アクセスの編集) をクリックします。 +1. [**Restrict Access**] (アクセスの制限) をクリックします。 +1. ダイアログボックスが更新され、組織のメンバーはデフォルトで [**Viewer**] (閲覧者) アクセス権を付与されていることが表示されます。 +1. ドロップダウンを使用して、モニターを編集できるチーム、ロール、またはユーザーを 1 つ以上選択します。 +1. **Add** (追加) をクリックします。 +1. ダイアログボックスが更新され、選択したロールに **Editor** (編集者) 権限があることが表示されます。 +1. [**Done**] (完了) をクリックします。 -**Note:** To maintain your edit access to the monitor, the system requires you to include at least one role or team that you are a member of before saving. +**注:** モニターの編集アクセスを維持するために、保存前に自分がメンバーであるロールまたはチームを少なくとも 1 つ含める必要があります。 -To restore general access to a monitor with restricted access, follow the steps below: -1. While viewing a monitor, click the **More** dropdown menu. -1. **Permissions** を選択します。 -1. **Restore Full Access** をクリックします。 -1. **Save** をクリックします。 +アクセスが制限されたモニターに一般的なアクセスを戻すには、次の手順に従います。 +1. モニターの表示中に [**More**] (その他) ドロップダウンメニューをクリックします。 +1. [**Permissions**] (権限) を選択します。 +1. [**Restore Full Access**] (フルアクセスを回復) をクリックします。 +1. [**Save**] (保存) をクリックします。 -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/monitors/types/anomaly.md b/content/ja/monitors/types/anomaly.md index 791ba25b388..f51fd90689c 100644 --- a/content/ja/monitors/types/anomaly.md +++ b/content/ja/monitors/types/anomaly.md @@ -2,8 +2,8 @@ algolia: rank: 70 tags: - - 異常値 - - 異常値モニター + - anomaly + - anomaly monitor aliases: - /ja/guides/anomalies - /ja/monitors/monitor_types/anomaly @@ -11,166 +11,165 @@ aliases: description: メトリクスの異常動作を履歴データに基づいて検出する further_reading: - link: /monitors/notify/ - tag: ドキュメント + tag: よくあるご質問 text: モニター通知の設定 - link: /monitors/downtimes/ - tag: ドキュメント + tag: よくあるご質問 text: モニターをミュートするダウンタイムのスケジュール - link: /monitors/status/ - tag: ドキュメント + tag: よくあるご質問 text: モニターステータスの参照 - link: dashboards/functions/algorithms/#anomalies - tag: ドキュメント + tag: よくあるご質問 text: 異常関数 - link: https://www.datadoghq.com/blog/ai-powered-metrics-monitoring/ tag: ブログ - text: 異常検知、予測的な相関 - AI 支援型メトリクス モニタリングの活用 + text: 異常検知、予測相関 - AI を活用したメトリクスのモニタリング title: 異常検知モニター --- +## 概要 {#overview} -## 概要 +異常検知は、傾向や、季節的な曜日や時間帯のパターンを考慮しながらメトリクスの挙動が過去のものとは異なる期間を認識するアルゴリズム機能です。これは、しきい値ベースのアラート設定ではモニターすることが困難な強い傾向や反復パターンを持つメトリクスに適しています。 -異常検知は、傾向や、季節的な曜日や時間帯のパターンを考慮しながらメトリクスの挙動が過去のものとは異なる期間を認識するアルゴリズム機能です。これは、しきい値ベースのアラート設定では監視することが困難な強い傾向や反復パターンを持つメトリクスに適しています。 +たとえば、異常検知は、平日午後に Web トラフィックが異常に低い場合に (同程度のトラフィックが夜遅くには正常であっても) それを検出するのに役立ちます。または、着実に成長しているサイトへのログイン数を測定するメトリクスを考えてみます。ログイン数は日々増加するため、どのようなしきい値でも古くなりますが、異常検知はログインシステムに問題がある可能性を示唆する、予期しない減少があった場合にアラートで通知することができます。 -たとえば、 ある平日のウェブトラフィック量が夜間帯は通常であるにもかかわらず、午後は異常に低い時間帯を見つけることができます。また、確実にアクセス数が伸びているサイトへのログイン数を測定するメトリクスを考慮できます。 なぜなら、ログイン数が日々増加すると、しきい値が古くなってしまいますが、ログインシステムの潜在的な問題を示唆する予想外の激減が見られた場合、異常検知が警告してくれるからです。 +## モニターの作成 {#monitor-creation} -## モニターの作成 +Datadog で [異常検知モニター][1] を作成するには、メインナビゲーションで [*Monitors --> New Monitor --> Anomaly *] の順に移動します。 -Datadog で[異常検知モニター][1]を作成するには、メインナビゲーション画面で*Monitors --> New Monitor --> Anomaly* の順に移動します。 +### メトリクスの定義 {#define-the-metric} -### メトリクスを定義する +Datadog に報告されるすべてのメトリクスをモニターで確認できます。詳細は、[メトリクスモニター][2] のページを参照してください。 +**注**: `anomalies` 関数は過去のデータを使用して将来の予測を行うため、新しいメトリクスで使用した場合は低品質の結果しか得られない可能性があります。 -Datadog にレポートが送信されるメトリクスはすべて、モニターに使用できます。詳細については、[メトリクスモニター][2]ページをご確認ください。 -**注**: `anomalies` 関数は過去のデータを使用して今後の予想を立てるため、新しいメトリクスで使用するとあまり正確な結果が得られないことがあります。 +メトリクスを定義した後、異常検知モニターはエディター内で 2 つのプレビューグラフを表示します。 +{{< img src="monitors/monitor_types/anomaly/context.png" alt="過去のコンテキスト" style="width:80%;">}} -メトリクスを定義すると、異常検知モニターにより作成された 2 種のグラフがエディターに表示されます。 -{{< img src="monitors/monitor_types/anomaly/context.png" alt="時系列表示" style="width:80%;">}} +* [**履歴ビュー**] では、モニターされたクエリをさまざまな時間単位で観察することができるため、データが異常または正常とみなされる理由をより深く理解できます。 +* [**評価プレビュー**] は、アラート設定よりもウィンドウが長く、範囲を計算する際に異常検知アルゴリズムが考慮すべき事項に関して洞察を提供します。 -* **Historical View** では、監視クエリをさまざまな時間単位で観察することができるため、 データが異常または正常とみなされる理由をより深く理解できます。 -* **Evaluation Preview** は、アラート設定よりもウィンドウが長く、範囲を計算する際に異常検知アルゴリズムが考慮すべき事項に関して洞察を提供します。 +### アラート条件の設定 {#set-alert-conditions} -### アラートの条件を設定する - -値が直近の `15 minutes`、`1 hour` などの期間に、境界を `above or below`、`above`、または `below` の条件で外れていた場合にアラートをトリガーします。`custom` を選択すると、15 分から 2 週間の間で期間を設定できます。値が少なくとも `15 minutes`、`1 hour` などの期間、境界内にある場合に復帰します。`custom` を選択すると、15 分から 2 週間の間で期間を設定できます。 +値が直近の `15 minutes`、`1 hour` などの期間に、境界を `above or below`、`above`、または `below` の条件で外れていた場合にアラートをトリガーします。`custom`を選択すると、15 分から 2 週間の間で期間を設定できます。値が少なくとも `15 minutes`、`1 hour` などの期間、境界内にある場合に回復します。`custom` を選択すると、15 分から 2 週間の間で期間を設定できます。 異常検知 -: デフォルト (`above or below`) では、メトリクスが灰色の異常検知帯の外にある場合、異常とみなされます。帯の `above` または `below` にある場合のみを異常とみなすよう任意で指定することもできます。 +: デフォルトオプション (`above or below`) では、メトリクスが灰色の異常検知帯の外にある場合、異常とみなされます。帯の `above` または `below` にある場合のみを異常とみなすよう任意で指定することもできます。 トリガーウィンドウ -: メトリクスの異常が検知されアラートを発するまでに必要な時間。**注意**: アラート設定ウィンドウがあまりに短いと、疑似ノイズにより不正アラームが発せられることがあります。 +: メトリクスの異常が検知されアラートを発するまでに必要な時間。**注**: アラート設定ウィンドウが短すぎると、疑似ノイズにより誤アラームが発せられることがあります。 -リカバリーウィンドウ -: メトリクスが異常とみなされなくなり、アラートが回復するまでに必要な時間。**Recovery Window** は、**Trigger Window** と同じ値に設定することをお勧めします。 +回復ウィンドウ +: メトリクスが異常とみなされなくなり、アラートが回復するまでに必要な時間。[**回復ウィンドウ**] は [**トリガーウィンドウ**] と同じ値に設定することをお勧めします。 -**注**: **Recovery Window** の許容値の範囲は、モニターが回復とアラート条件を同時に満たすことができないように、**Trigger Window** と **Alert Threshold** に依存します。 +**注**: [**回復ウィンドウ**] の許容値の範囲は、モニターが回復条件とアラート条件を同時に満たすことができないように、[**トリガーウィンドウ**] と [**アラートしきい値**] によって決定されます。 例: * `Threshold`: 50% * `Trigger window`: 4h -リカバリーウィンドウの許容値の範囲は、121 分 (`4h*(1-0.5) +1 min = 121 minutes`) から 4 時間の間です。リカバリーウィンドウを 121 分未満に設定すると、4 時間の時間枠で 50% の異常ポイントが発生し、最後の 120 分では異常ポイントが発生しない可能性があります。 +回復ウィンドウの許容値の範囲は 121 分 (`4h*(1-0.5) +1 min = 121 minutes`) から 4 時間です。回復ウィンドウを 121 分未満に設定すると、4 時間の時間枠で 50% の異常ポイントが発生し、最後の 120 分では異常ポイントが発生しない可能性があります。 -他の例: +ほかの例: * `Threshold`: 80% * `Trigger window`: 4h -リカバリーウィンドウの許容値の範囲は 49 分 (`4h*(1-0.8) +1 min = 49 minutes`) から 4 時間の間です。 +回復ウィンドウの許容値の範囲は 49 分 (`4h*(1-0.8) +1 min = 49 minutes`) から 4 時間です。 -### 高度なオプション +### Advanced Options (高度なオプション) {#advanced-options} -Datadog は、選択したメトリクスを自動的に分析して、複数のパラメーターを設定しますが、**Advanced Options** に、編集可能なオプションがあります。 +Datadog は、選択されたメトリクスを自動的に分析して、パラメーターを設定します。ただし、[**Advanced Options**] で手動でオプションを編集できます。 -{{< img src="monitors/monitor_types/anomaly/advanced_options.png" alt="Anomaly monitor configuration ページの Advanced Options メニューで、アジャイルアルゴリズムによる異常検出と予測データからの異常 2 乖離を 1 週間ごとの季節性で行い、サマータイムを適用し、ロールアップ間隔を 60 秒に設定した場合" style="width:80%;">}} +{{< img src="monitors/monitor_types/anomaly/advanced_options.png" alt="異常検知モニター構成ページの [Advanced Options] メニューで、アジャイルアルゴリズムを使用して予測データから 2 偏差逸脱している異常を 1 週間ごとの季節性で検知し、サマータイムを適用し、ロールアップ間隔として 60 秒を使用するように設定した場合" style="width:80%;">}} -偏差 -: 灰色の帯の幅。[異常検知関数][3]で使用される範囲のパラメータに相当。 +Deviations (偏差) +: 灰色の帯の幅。これは、[異常検知関数][3] で使用される範囲のパラメーターに相当します。 -アルゴリズム -: [異常検知アルゴリズム](#anomaly-detection-algorithms) (`basic`、`agile`、`robust`)。 +Algorithm (アルゴリズム) +: [異常検知アルゴリズム](#anomaly-detection-algorithms) (`basic`、`agile`、または`robust`)。 -季節性 -: メトリクスを分析する `agile` または `robust` アルゴリズムの[季節性](#seasonality) (`hourly`、`daily`、`weekly`) サイクル。 +Seasonality (季節性) +: メトリクスを分析するための `agile` または `robust` アルゴリズムの周期の[時間単位](#seasonality) (`hourly`、`daily`、または `weekly`)。 -夏時間 -: `agile` または `robust` の異常検知で季節性に `weekly` または `daily` を使用する場合に利用可能。詳細については、[異常検知とタイムゾーン][4]を参照。 +Daylight savings (サマータイム) +: `weekly` または `daily` 時間単位の `agile` または `robust` 異常検知で使用可能。詳細については、[異常検知とタイムゾーン][4] を参照してください。 -rollup -: [rollup の間隔][5]。 +Rollup (ロールアップ) +: [ロールアップ間隔][5]。 -しきい値 -: アラート、警告、リカバリを設定するために異常として判断する基準となるパーセンテージ。 +Thresholds (しきい値) +: アラート、警告、回復を設定するために異常として判断する基準となるパーセンテージ。 -### 季節性 +### Seasonality {#seasonality} -Hourly -: このアルゴリズムは、毎時の特定の分が過去の同じ分と同様に挙動すると想定します。たとえば、5:15 の挙動が 4:15 や 3:15 と同じだと想定します。 +Hourly (時間単位) +: アルゴリズムは、毎時の特定の分が過去の同じ分と同様に挙動すると想定します。たとえば、5:15 の挙動が 4:15 や 3:15 と同じだと想定します。 -Daily -: このアルゴリズムは、今日の特定の時間が過去の同じ時間と同様に挙動すると想定します。たとえば、今日の午後 5 時の挙動が前日の午後 5 時と同じだと想定します。 +Daily (日単位) +: アルゴリズムは、今日の特定の時間が過去の同じ時間と同様に挙動すると想定します。たとえば、今日の午後 5 時の挙動が前日の午後 5 時と同じだと想定します。 -Weekly -: このアルゴリズムは、特定の曜日が過去の同じ曜日と同様に挙動すると想定します。たとえば、今週の火曜の挙動が過去の火曜と同じだと想定します。 +Weekly (週単位) +: アルゴリズムは、特定の曜日が過去の同じ曜日と同様に挙動すると想定します。たとえば、今週の火曜の挙動が過去の火曜と同じだと想定します。 -**異常検出アルゴリズムに必要なデータ履歴**: 機械学習アルゴリズムは、ベースラインを計算するために、選択された季節性時間の少なくとも 3 倍の履歴データ時間を必要とします。 -例: +**異常検出アルゴリズムに必要なデータ履歴**: 機械学習アルゴリズムは、ベースラインを計算するために、選択された季節性の時間の少なくとも 3 倍の履歴データ時間を必要とします。 +たとえば、次のとおりです。 -* _週ごと_の季節性には少なくとも 3 週間のデータが必要 -* _日ごと_の季節性には少なくとも 3 日間のデータが必要 -* _時間ごと_の季節性には少なくとも 3 時間のデータが必要 +* _weekly_ 季節性には少なくとも 3 週間のデータが必要です。 +* _daily_ 季節性には少なくとも 3 日のデータが必要です。 +* _hourly_ 季節性には少なくとも 3 時間のデータが必要です。 -季節性アルゴリズムはすべて、メトリクスの挙動の正常範囲を予測する際に、最大で 6 週間分の履歴データを使用します。過去データを大量に使用することで、通常とは異なる挙動が最近発生していた場合、アルゴリズムはこれを重視しません。 +すべての季節性アルゴリズムは、メトリクスで期待される正常な動作範囲を計算する際に、最大 6 週間の履歴データを使用できます。大量の履歴データを使用することで、アルゴリズムは最近発生した異常な行動に過度の重みを与えることを避けることができます。 -### 異常検知アルゴリズム -Basic -: メトリクスに反復する季節性パターンがない場合に使用します。Basic は遅延の繰り返しの分位数を計算して予測値の範囲を決定します。データをほとんど使用せず、状況の変化にすばやく対応しますが、季節的な挙動や長期的な傾向は認識できません。 +### 異常検知アルゴリズム {#anomaly-detection-algorithms} +Basic (基本) +: メトリクスに繰り返しの季節的なパターンがない場合に使用します。Basic では、遅延の繰り返しの分位数を計算して予測値の範囲を決定します。データをほとんど使用せず、状況の変化にすばやく対応しますが、季節的な挙動や長期的な傾向は認識できません。 -Agile -: メトリクスが季節的なものでシフトが見込まれる場合に使用します。アルゴリズムはメトリクスのレベルシフトにすばやく対応します。[SARIMA][6] アルゴリズムの安定版。直近のデータを予測に組み込むことで、レベルシフトに合わせてすばやく更新できますが、最近の長期的な異常検知に対する安定性は低下します。 +Agile (アジャイル) +: メトリクスが季節的で、変化することが予期される場合に使用します。アルゴリズムはメトリクスのレベルシフトに合わせてすばやく調整されます。[SARIMA][6] アルゴリズムの安定版。直近のデータを予測に組み込むことで、レベルシフトに合わせてすばやく更新できますが、最近の長期的な異常検知に対する安定性は低下します。 Robust -: 安定性が期待できる季節性メトリクスの緩やかなレベルシフトを異常値と見なした場合に使用されます。[季節的傾向分解][7]アルゴリズムの 1 つ。安定性が高く、異常が長期的に続いても予測は一定していますが、意図的なレベルシフトへの対応にはやや時間がかかります (コード変更によってメトリクスのレベルがシフトした場合など)。 +: 季節的メトリクスで安定性が予測され、緩やかなレベルシフトは異常とみなされる場合に使用します。[季節的傾向分解][7] アルゴリズムの 1 つ。安定性が高く、異常が長期的に続いても予測は一定していますが、意図的なレベルシフトへの対応にはやや時間がかかります (コード変更によってメトリクスのレベルがシフトした場合など)。 -## 例 +## 例 {#examples} 下記のグラフでは、これら 3 つのアルゴリズムがいつどのように異なる挙動を示すか表しています。 -#### 1 時間ごとの季節性を考慮した異常検出の比較 -この例では、`basic` は正常値範囲を超えてスパイクする異常値を正しく特定していますが、反復的な季節的パターンが予測値範囲に含まれていません。対照的に、`robust` と `agile` は、どちらも季節的パターンを認識し、メトリクスが最小値付近で平坦な線になった場合など、より繊細な異常値を検知しています。トレンドも 1 時間ごとのパターンを示しているので、この場合は 1 時間ごとの季節性が最も効果的です。 +#### 1 時間ごとの季節性を考慮した異常検知の比較 {#anomaly-detection-comparison-for-hourly-seasonality} +この例では、`basic` は正常な値の範囲から外れた異常値を正しく特定できますが、繰り返しの季節性パターンは予測値の範囲に組み込まれていません。一方、`robust` と `agile` は、どちらも季節的パターンを認識し、メトリクスが最小値付近で平坦な線になった場合など、より繊細な異常値を検知しています。トレンドも 1 時間ごとのパターンを示しているので、この場合は 1 時間ごとの季節性が最も効果的です。 -{{< img src="monitors/monitor_types/anomaly/alg_comparison_1.png" alt="1 日ごとの季節性による異常検出アルゴリズムの比較" style="width:90%;">}} +{{< img src="monitors/monitor_types/anomaly/alg_comparison_1.png" alt="1 日ごとの季節性を考慮した異常検知アルゴリズムの比較" style="width:90%;">}} -#### 1 週間ごとの季節性を考慮した異常検出の比較 -この例では、メトリクスが突然のレベルシフトを示しています。`Agile` は `robust` よりも早くレベルシフトに対応しています。さらに、レベルシフト以降、`robust` の範囲はより大きな不確実性を反映して広がっていますが、`Agile` の範囲に変化は見られません。また、メトリクスが週単位の強い季節性パターンを示すシナリオでは、`Basic` が適していないことは明らかです。 +#### 1 週間ごとの季節性を考慮した異常検知の比較 {#anomaly-detection-comparison-for-weekly-seasonality} +この例では、メトリクスが突然レベルシフトを示します。`Agile` は `robust` よりも迅速にレベルシフトに適応します。また、`robust` の範囲の幅はレベルシフト後の不確実性の増大を反映して広がりますが、`agile` の範囲の幅は変わりません。`Basic` は、メトリクスが強い 1 週間ごとの季節性パターンを示す、このシナリオには明らかに不適合です。 -{{< img src="monitors/monitor_types/anomaly/alg_comparison_2.png" alt="1 週間ごとの季節性による異常検出アルゴリズムの比較" style="width:90%;">}} +{{< img src="monitors/monitor_types/anomaly/alg_comparison_2.png" alt="1 週間ごとの季節性を考慮した異常検知アルゴリズムの比較" style="width:90%;">}} -#### 変化に対するアルゴリズム反応の比較 -この例では、1 時間にわたる異常値に対してアルゴリズムがどのように反応するかを示しています。 `Robust` は、急激な変化に対する反応が遅いため、このシナリオでは異常値の境界を調整しません。他のアルゴリズムは、この異常値があたかも新しい正常値であるかのように振る舞い始めます。`Agile` は、メトリクスが元のレベルに戻ったことも異常値として認識しています。 +#### 変化に対するアルゴリズム反応の比較 {#comparison-of-algorithm-reactions-to-change} +この例では、1 時間にわたる異常値に対してアルゴリズムがどのように反応するかを示しています。`Robust` は、急激な変化に対する反応が遅いため、このシナリオでは異常値の境界を調整しません。ほかのアルゴリズムは、この異常値が新しい正常値であるかのように振る舞い始めます。`Agile` は、メトリクスが元のレベルに戻ったことも異常値として特定しています。 -{{< img src="monitors/monitor_types/anomaly/alg_comparison_3.png" alt="1 時間ごとの季節性による異常検出アルゴリズムの比較" style="width:90%;">}} +{{< img src="monitors/monitor_types/anomaly/alg_comparison_3.png" alt="1 時間ごとの季節性を考慮した異常検知アルゴリズムの比較" style="width:90%;">}} -#### スケールに対するアルゴリズム反応の比較 -これらのアルゴリズムはスケールの扱いも異なります。`Basic` と `robust` はスケールの影響を受けませんが、`agile` は影響を受けます。下の左側のグラフでは、`agile` と `robust` がレベルシフトを異常としてマークしています。右側のグラフで、同じメトリクスに 1000 を加算したところ、`agile` ではレベルシフトを異常とみなすコールアウトは見られなくなりますが、`robust` では引き続き見られます。 +#### スケールに対するアルゴリズム反応の比較 {#comparison-of-algorithm-reactions-to-scale} +これらのアルゴリズムはスケールの扱いも異なります。`Basic` と `robust` はスケールの影響を受けませんが、`agile` は影響を受けます。左下のグラフでは、`agile` と `robust` がレベルシフトを異常としてマークしています。右側で、同じメトリクスに 1000 を加算したところ、`agile` ではレベルシフトを異常とみなすコールアウトは見られなくなりますが、`robust` では引き続き見られます。 -{{< img src="monitors/monitor_types/anomaly/alg_comparison_scale.png" alt="アルゴリズムの比較 (スケール)" style="width:90%;">}} +{{< img src="monitors/monitor_types/anomaly/alg_comparison_scale.png" alt="スケールに関するアルゴリズムの比較" style="width:90%;">}} -#### 新しいメトリクスによる異常検出の比較 -この例では、各アルゴリズムが新しいメトリクスをどのように処理するか示しています。 `Robust` と `agile` では、最初の数日は範囲がまったく表示されていません (週単位)。`Basic` では、メトリクスが最初に表示された直後から範囲が表示されています。 +#### 新しいメトリクスによる異常検知の比較 {#anomaly-detection-comparison-for-new-metrics} +この例では、各アルゴリズムが新しいメトリクスをどのように処理するか示しています。`Robust` と `agile` では、最初の数周期 (週単位) は範囲がまったく表示されていません。`Basic` では、メトリクスが最初に表示された直後から範囲が表示されています。 -{{< img src="monitors/monitor_types/anomaly/alg_comparison_new_metric.png" alt="アルゴリズムの比較 (新しいメトリクス)" style="width:90%;">}} +{{< img src="monitors/monitor_types/anomaly/alg_comparison_new_metric.png" alt="新しいメトリクスに関するアルゴリズムの比較" style="width:90%;">}} -## 高度なアラート条件 +## 高度なアラート条件 {#advanced-alert-conditions} -高度なアラートオプション (自動解決、評価遅延など) の詳細な手順については、[モニターコンフィギュレーション][8]ページを参照してください。メトリクス固有のオプションのフルデータウィンドウについては、[メトリクスモニター][9]ページを参照してください。 +高度なアラートオプション (自動解決、評価遅延など) の詳細な手順については、[モニターコンフィギュレーション][8] ページを参照してください。メトリクス固有のオプションのフルデータウィンドウについては、[メトリクスモニター][9] ページを参照してください。 -## 通知 +## 通知 {#notifications} -**Configure notifications and automations** セクションの詳細な手順については、[通知][10] ページを参照してください。 +[**通知と自動化の構成**] セクションの詳細な手順については、[通知][10] のページを参照してください。 -## API +## API {#api} -Enterprise プランの顧客は、[create-monitor API エンドポイント][11] を使用して、異常検知モニターを作成できます。Datadog は API 用のクエリを作成する際に [monitor の JSON のエクスポート][12] を**強く推奨**します。Datadog の [モニター作成ページ][1] を使用すると、プレビュー グラフとパラメーターの自動調整を利用でき、不適切に構成されたモニターの回避に役立ちます。 +Enterprise プランの顧客は、[create-monitor API エンドポイント][11] を使用して、異常検知モニターを作成できます。Datadog では、API 用のクエリを作成する際に [モニターの JSON をエクスポート][12] することを**強く推奨**します。Datadog の [モニター作成ページ][1] を使用すると、プレビューグラフとパラメーターの自動調整を利用でき、不適切に構成されたモニターの回避に役立ちます。 -異常モニターは、他のモニターと[同じ API][14] を使用して管理されます。これらのフィールドは、異常モニターに固有です。 +異常モニターは、ほかのモニターと [同じ API][14] を使用して管理されます。これらのフィールドは、異常モニターに固有です。 -### `query` +### `query` {#query} リクエストの本文の `query` プロパティには、次の形式のクエリ文字列を含める必要があります。 @@ -179,10 +178,10 @@ avg():anomalies(, '', , direc ``` `query_window` -: A timeframe like `last_4h` や `last_7d` などのタイムフレーム。通知のグラフに表示される時間ウィンドウ。少なくとも `alert_window` と同じ大きさでなければならず、`alert_window` の約 5 倍にすることをお勧めします。 +: `last_4h` や `last_7d` などのタイムフレーム。このパラメーターは、通知グラフに表示されるデータの時間範囲を制御します。`query_window` は、視覚化に表示される履歴データの量を決定しますが、アラートの評価には影響しません。Datadog では、追加コンテキストを提供するために、`query_window` は `alert_window` の約 5 倍にすることを推奨しています。**注**: `query_window` は、少なくとも `alert_window` と同じ大きさである必要があります。 `metric_query` -: 標準の Datadog メトリクスクエリ (例:`sum:trace.flask.request.hits{service:web-app}.as_count()`)。 +: 標準の Datadog メトリクスクエリ (例: `sum:trace.flask.request.hits{service:web-app}.as_count()`)。 `algorithm` : `basic`、`agile`、または`robust`。 @@ -191,19 +190,19 @@ avg():anomalies(, '', , direc : 正の数。異常検知の感度を制御します。 `direction` -: アラートをトリガーする異常の方向性。`above`、`below`、または`both`。 +: アラートをトリガーする異常の方向性。: `above`、`below`、または`both`。 `alert_window` : 異常をチェックするタイムフレーム (例: `last_5m`、`last_1h`)。 `interval` -: ロールアップ間隔の秒数を表す正の整数。これは `alert_window` 期間の 5 分の 1 以下でなければなりません。 +: ロールアップ間隔の秒数を表す正の整数。これは、`alert_window` 期間の 5 分の 1 以下でなければなりません。 `count_default_zero` -: ほとんどのモニターでは `true` を使用します。値の欠如をゼロとして解釈してはならないカウントメトリクスを送信する場合にのみ、`false` に設定します。 +: ほとんどのモニターでは `true` を使用します。値の欠如をゼロとして解釈しては_ならない_カウントメトリクスを送信する場合にのみ、`false` に送信します。 `seasonality` -: `hourly`、`daily`、または`weekly`。 `basic` アルゴリズムを使用するときはこのパラメーターを除外します。 +: `hourly`、`daily`、または`weekly`。`basic` アルゴリズムを使用するときはこのパラメーターを除外します。 `threshold` : 1 以下の正の数。クリティカルアラートをトリガーするために異常である必要がある `alert_window` 内のポイントの割合。 @@ -214,13 +213,17 @@ avg():anomalies(, '', , direc avg(last_1h):anomalies(avg:system.cpu.system{name:cassandra}, 'basic', 3, direction='above', alert_window='last_5m', interval=20, count_default_zero='true') >= 1 ``` -### `options` +このクエリでは、次の 2 か所で `avg` を使用しています。 +- `avg(last_1h)` - 通知グラフのためにクエリウィンドウ全体の異常データポイントを集計します。 +- `avg:system.cpu.system{name:cassandra}` - 異常検知の前に Cassandra ノード全体の CPU メトリクスを集計します。 + +### `options` {#options} -`thresholds` と `threshold_windows` を除いて、リクエスト本文の `options` にあるほとんどのプロパティは、他のクエリアラートと同じです。 +`thresholds` と `threshold_windows` を除いて、リクエスト本文の `options` にあるほとんどのプロパティは、ほかのクエリアラートと同じです。 `thresholds` -: 異常検知モニターは `critical`、`critical_recovery`、`warning`、`warning_recovery` のしきい値をサポートします。しきい値は 0 から 1 の数値で表され、関連するウィンドウにおける異常の割合として解釈されます。例えば、`critical` のしきい値が `0.9` の場合、`trigger_window` (後述) 内のポイントの少なくとも 90% が異常なときに、クリティカル アラートがトリガーされます。あるいは、`warning_recovery` の値が 0 の場合、`recovery_window` 内のポイントの 0% が異常であるときにのみ、モニターは warning 状態から復帰します。 -: `critical` の `threshold` は、`query` で使用している `threshold` と一致させてください。 +: 異常検知モニターでは、`critical`、`critical_recovery`、`warning`、および `warning_recovery` のしきい値をサポートしています。しきい値は 0 から 1 の数値で表され、関連するウィンドウにおける異常の割合として解釈されます。たとえば、`critical` のしきい値が `0.9` の場合、`trigger_window` (後述) 内のポイントの少なくとも 90% が異常なときに、クリティカルアラートがトリガーされます。あるいは、`warning_recovery` の値が 0 の場合、`recovery_window` 内のポイントの 0% が異常であるときにのみ、モニターは warning 状態から回復します。 +: `critical` の `threshold` は、`query` で使用している `threshold` と一致する必要があります。 `threshold_windows` : 異常検知モニターでは、`options` に `threshold_windows` プロパティがあります。`threshold_windows` には、`trigger_window` と `recovery_window` の 2 つのプロパティの両方を含める必要があります。これらのウィンドウは、`last_10m` や `last_1h` などのタイムフレーム文字列として表現されます。`trigger_window` は、`query` の `alert_window` と一致する必要があります。`trigger_window` は、モニターをトリガーする必要があるかを評価する際に異常について分析する時間範囲です。`recovery_window` は、トリガーされたモニターを回復する必要があるかを評価する際に異常について分析する時間範囲です。 @@ -241,13 +244,13 @@ avg(last_1h):anomalies(avg:system.cpu.system{name:cassandra}, 'basic', 3, direct } ``` -## トラブル シューティング +## トラブルシューティング {#troubleshooting} * [異常検知モニターに関する FAQ][15] * [異常モニターのタイムゾーンを更新する][16] * [Datadog サポートへのお問い合わせ][17] -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/opentelemetry/setup/otlp_ingest_in_the_agent.md b/content/ja/opentelemetry/setup/otlp_ingest_in_the_agent.md index a010190b855..1228e3ee3a2 100644 --- a/content/ja/opentelemetry/setup/otlp_ingest_in_the_agent.md +++ b/content/ja/opentelemetry/setup/otlp_ingest_in_the_agent.md @@ -4,47 +4,45 @@ aliases: - /ja/tracing/trace_collection/open_standards/otlp_ingest_in_the_agent/ - /ja/opentelemetry/otlp_ingest_in_the_agent/ - /ja/opentelemetry/interoperability/otlp_ingest_in_the_agent/ -description: Datadog Agent 経由で OTLP トレース データを取り込む +description: Datadog Agent による OTLP トレースデータの取り込み further_reading: - link: https://www.datadoghq.com/about/latest-news/press-releases/datadog-announces-opentelemetry-protocol-support/ tag: ブログ - text: Agent における OTLP 取り込み + text: Agent における OTLP の取り込み - link: /metrics/open_telemetry/otlp_metric_types - tag: ドキュメント - text: OTLP メトリクス タイプ + tag: よくあるご質問 + text: OTLP メトリクスタイプ - link: /opentelemetry/runtime_metrics/ - tag: ドキュメント - text: OpenTelemetry ランタイム メトリクス -title: Datadog Agent による OTLP 取り込み + tag: よくあるご質問 + text: OpenTelemetry ランタイムメトリクス +title: Datadog Agent による OTLP の取り込み --- +Agent における OTLP 取り込みは、[OpenTelemetry SDK][1] でインスツルメントされたアプリケーションから Datadog Agent へテレメトリデータを直接送信する方法です。バージョン 6.32.0 および 7.32.0 以降、Datadog Agent は gRPC または HTTP 経由で OTLP トレースと [OTLP メトリクス][2] を取り込めます。バージョン 6.48.0 および 7.48.0 以降、Datadog Agent は gRPC または HTTP 経由で OTLP ログを取り込めます。 +Agent における OTLP 取り込みにより、Datadog Agent の各種可観測性機能を利用できます。OpenTelemetry SDK でインスツルメントされたアプリケーションのデータは、App and API Protection、Continuous Profiler、Ingestion Rules といった Datadog 独自製品では使用できない場合があります。[OpenTelemetry ランタイムメトリクスは、一部の言語でサポートされています][10]。 -Agent における OTLP 取り込みは、[OpenTelemetry SDK][1] でインスツルメントされたアプリケーションから Datadog Agent へテレメトリ データを直接送信する方法です。バージョン 6.32.0 および 7.32.0 以降、Datadog Agent は gRPC または HTTP 経由で OTLP トレースと [OTLP メトリクス][2] を取り込めます。バージョン 6.48.0 および 7.48.0 以降、Datadog Agent は gRPC または HTTP 経由で OTLP ログも取り込めます。 +{{< img src="/opentelemetry/setup/dd-agent-otlp-ingest.png" alt="図: OpenTelemetry SDK が Datadog エクスポーターを使用しているコレクターに OTLP プロトコルを介してデータを送信し、このコレクターが Datadog のプラットフォームにデータを転送します。" style="width:100%;" >}} -Agent における OTLP 取り込みにより、Datadog Agent の各種可観測性機能を利用できます。OpenTelemetry SDK でインスツルメントされたアプリケーションのデータは、App and API Protection、Continuous Profiler、Ingestion Rules といった Datadog 独自製品では使用できない場合があります。[一部の言語で OpenTelemetry ランタイム メトリクスがサポートされています][10]。 +
    このセットアップでサポートされる Datadog 機能については、OTel to Datadog Agent (OTLP) にある機能互換性表を参照してください。
    -{{< img src="/opentelemetry/setup/dd-agent-otlp-ingest.png" alt="Diagram: OpenTelemetry SDK が OTLP プロトコルでデータを Collector (Datadog Exporter 搭載) に送信し、Collector が Datadog のプラットフォームへ転送する。" style="width:100%;" >}} +## 初期セットアップ {#initial-setup} -
    このセットアップでサポートされる Datadog 機能については、OTel to Datadog Agent (OTLP) セクションにある 機能互換性表 を参照してください。
    +開始するには、まず OpenTelemetry SDK で [アプリケーションをインスツルメント][3] します。次に、テレメトリデータを OTLP 形式で Datadog Agent にエクスポートします。構成手順は、以下のページで説明するように、サービスがデプロイされているインフラストラクチャーの種類によって異なります。最新の OTLP バージョンとの互換性を目指していますが、Agent における OTLP 取り込みがすべての OTLP バージョンに対応しているわけではありません。Datadog Agent と互換性のある OTLP バージョンは、OpenTelemetry コレクターの OTLP レシーバーでもサポートされているバージョンと同じです。サポートされている正確なバージョンを確認するには、Agent の `go.mod` ファイルで `go.opentelemetry.io/collector` バージョンを確認してください。 -## 初期セットアップ +インスツルメンテーションの送信先として Agent を指定する方法は、OpenTelemetry のインスツルメンテーションドキュメントを参照してください。以下に記載する `receiver` セクションは、[OpenTelemetry コレクター OTLP レシーバー構成スキーマ][5] に準拠します。 -開始するには、まず OpenTelemetry SDK で [アプリケーションをインスツルメント][3] します。次に、テレメトリ データを OTLP 形式で Datadog Agent にエクスポートします。具体的な構成手順は、以下のページで説明するように、サービスがデプロイされているインフラの種類によって異なります。最新の OTLP バージョンとの互換性を目指していますが、Agent における OTLP 取り込みがすべての OTLP バージョンに対応しているわけではありません。Datadog Agent と互換性のある OTLP バージョンは、OpenTelemetry Collector の OTLP Receiver でサポートされているバージョンと一致します。サポートされている正確なバージョンを確認するには、Agent の `go.mod` ファイル内に記載された `go.opentelemetry.io/collector` のバージョンを確認してください。 +
    サポートされるセットアップ方法は、OpenTelemetry データを生成する各ホストに取り込み用 Agent をデプロイするものです。1 つのホストで動作するコレクターやインスツルメント済みアプリから、別ホストの Agent に OpenTelemetry テレメトリを送信することはできません。ただし、Agent がコレクターまたは SDK インスツルメント済みアプリに対してローカルである場合は、複数のパイプラインを設定できます。
    -OpenTelemetry のインスツルメンテーション ドキュメントを参照し、インスツルメンテーションの送信先として Agent を指定する方法を理解してください。以下に記載する `receiver` セクションは、[OpenTelemetry Collector の OTLP Receiver 構成スキーマ][5] に準拠します。 - -
    サポートされるセットアップは、OpenTelemetry データを生成する各ホストに取り込み用 Agent をデプロイする方式です。1 つのホストで動作する Collector やインスツルメント済みアプリから、別ホストの Agent に OpenTelemetry テレメトリを送信することはできません。ただし、Agent が Collector または SDK インスツルメント済みアプリと同一ホスト上にある場合は、複数のパイプラインを構成できます。
    - -## Datadog Agent で OTLP 取り込みを有効化する +## Datadog Agent で OTLP 取り込みを有効にする {#enabling-otlp-ingestion-on-the-datadog-agent} {{< tabs >}} {{% tab "ホスト" %}} -OTLP 取り込みはデフォルトで無効です。`datadog.yaml` の設定を更新するか、環境変数を設定して有効化できます。以下の `datadog.yaml` の設定は、デフォルト ポートでエンドポイントを有効にします。 +OTLP 取り込みはデフォルトで無効です。`datadog.yaml` ファイルの構成を更新するか、環境変数を設定して有効化できます。以下の `datadog.yaml` の構成は、デフォルトポートでエンドポイントを有効にします。有効にすると、メトリクスとトレースの取り込みがデフォルトで有効になります。ログの取り込みは、予定外のログへの課金を防ぐためにデフォルトで無効になっています。 {{% otel-endpoint-note %}} -gRPC のデフォルト ポート 4317: +gRPC の場合、デフォルトは 4317 番ポートです。 ```yaml otlp_config: @@ -52,8 +50,10 @@ otlp_config: protocols: grpc: endpoint: 0.0.0.0:4317 + logs: + enabled: false ``` -HTTP のデフォルト ポート 4318: +HTTP の場合、デフォルトは 4318 番ポートです。 ```yaml otlp_config: @@ -61,229 +61,301 @@ otlp_config: protocols: http: endpoint: 0.0.0.0:4318 + logs: + enabled: false ``` -代替として、環境変数でポートを指定してエンドポイントを構成できます: - -- gRPC (`localhost:4317`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT` -- HTTP (`localhost:4318`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT` +または、環境変数でポートを指定して、エンドポイントを構成します。 -これらは core Agent と trace Agent の両プロセスに渡す必要があります。コンテナ化された環境で実行している場合は、ローカル以外のインターフェイスでもサーバーを公開できるよう、`localhost` の代わりに `0.0.0.0` を使用してください。 +- gRPC の場合 (`localhost:4317`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT` +- HTTP の場合 (`localhost:4318`): `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT` -本機能には gRPC または HTTP のいずれかを構成してください。両方の構成を示す [サンプル アプリケーション][1] があります。 +これらは、コア Agent とトレース Agent の両方のプロセスに渡す必要があります。コンテナ化された環境で実行している場合は、ローカル以外のインターフェイスでもサーバーを使用できるよう、`localhost` の代わりに `0.0.0.0` を使用してください。 -Datadog Agent での OTLP ログ取り込みは、課金に影響する予期せぬログ製品の利用を避けるため、デフォルトで無効になっています。OTLP ログ取り込みを有効にするには: - -1. [Host Agent のログ収集セットアップ][2] に従ってログ収集全体を明示的に有効にします: - - ```yaml - logs_enabled: true - ``` - -2. `otlp_config.logs.enabled` を true に設定します: - - ```yaml - otlp_config: - logs: - enabled: true - ``` +この機能には、gRPC または HTTP のいずれかを構成してください。こちらに [両方の構成を示すアプリケーション例][1] があります。 [1]: https://gist.github.com/gbbr/4a54dd02d34ad05e694952e0a02e1c67 -[2]: /ja/agent/logs/ {{% /tab %}} {{% tab "Docker" %}} -1. [Datadog Docker Agent のセットアップ][1] に従ってください。 - -2. Datadog Agent コンテナでは、以下のエンドポイント環境変数を設定し、対応するポートを公開します: - - gRPC: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT` を `0.0.0.0:4317` に設定し、ポート `4317` を公開します。 - - HTTP: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT` を `0.0.0.0:4318` に設定し、ポート `4318` を公開します。 +1. [Datadog Docker Agent のセットアップ][1] に従います。 -3. OTLP ログ取り込みを有効にする場合は、Datadog Agent コンテナで次の環境変数を設定します: - - `DD_LOGS_ENABLED` を true に設定します。 - - `DD_OTLP_CONFIG_LOGS_ENABLED` を true に設定します。 +2. Datadog Agent コンテナでは、以下のエンドポイント環境変数を設定し、対応するポートを公開します。 + - gRPC の場合: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT` を `0.0.0.0:4317` に設定し、ポート `4317` を公開します。 + - HTTP の場合: `DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT` を `0.0.0.0:4318` に設定し、ポート `4318` を公開します。
    -既知の問題: Agent バージョン 7.61.0 以降、Docker 環境で OTLP 取り込みパイプラインの起動に失敗し、次のエラーが表示される場合があります: Error running the OTLP ingest pipeline: failed to register process metrics: process does not exist.

    -該当バージョンを使用している場合は、次のいずれかの回避策を使用できます:

    -1. Agent の Docker コンテナで、環境変数 HOST_PROC/proc に設定します。
    -2. Agent の Docker コンテナで、volumes から /proc/:/host/proc/:ro を削除します。
    -3. Agent の Docker コンテナで、pidhost に設定します。

    -これらの設定は、docker コマンドまたは Docker compose ファイルのいずれかで適用できます。
    +既知の問題: Agent バージョン 7.61.0 以降、Docker 環境では、OTLP 取り込みパイプラインが次のエラーを出して起動に失敗することがあります。Error running the OTLP ingest pipeline: failed to register process metrics: process does not exist

    +影響を受けるバージョンを使用している場合は、次のいずれかの回避策を使用できます。

    +1. Agent Docker コンテナで、環境変数 HOST_PROC/proc に設定します。
    +2. Agent Docker コンテナで、 /proc/:/host/proc/:ro から volumes を削除します。
    +3. Agent Docker コンテナで、 pidhost に設定します。

    +これらの構成は、 docker コマンドまたは Docker Compose ファイルのいずれかを使用して適用できます。
    [1]: /ja/agent/docker/ {{% /tab %}} -{{% tab "Kubernetes (Daemonset)" %}} +{{% tab "Datadog Operator" %}} + +1. 基本インストール用の [Kubernetes Agent のセットアップ][1] に従います。 + +2. Operator の `datadog-agent.yaml` マニフェストで gRPC または HTTP のうち、使用するプロトコルを有効にします。 + + gRPC の場合: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + # (...) + features: + otlp: + receiver: + protocols: + grpc: + enabled: true + ``` + + For HTTP: + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + # (...) + features: + otlp: + receiver: + protocols: + http: + enabled: true + ``` + +{{% k8s-operator-redeploy %}} + +これは、各プロトコルをデフォルトのポート (OTLP/gRPC は `4317`、OTLP/HTTP は `4318`) で有効にするものです。メトリクスとトレースはデフォルトで有効になっています。 + +[1]: /ja/agent/kubernetes/ +{{% /tab %}} +{{% tab "Helm" %}} + +1. 基本インストール用の [Kubernetes Agent のセットアップ][1] に従います。 + +2. Helm の `datadog-values.yaml` ファイルで gRPC または HTTP のうち、使用するプロトコルを有効にします。 + + gRPC の場合: + ```yaml + datadog: + # (...) + otlp: + receiver: + protocols: + grpc: + enabled: true + ``` + + For HTTP: + ```yaml + datadog: + # (...) + otlp: + receiver: + protocols: + http: + enabled: true + ``` + +{{% k8s-helm-redeploy %}} + +これは、各プロトコルをデフォルトのポート (OTLP/gRPC は `4317`、OTLP/HTTP は `4318`) で有効にするものです。メトリクスとトレースはデフォルトで有効になっています。 + +[1]: /ja/agent/kubernetes/ +{{% /tab %}} +{{% tab "手動 (Daemonset)" %}} + +1. 基本インストール用の [Kubernetes の手動インストールガイド][1] に従います。 + +2. `trace-agent` コンテナとコア `agent` コンテナの両方で、以下の環境変数を構成します。 + + gRPC の場合: + ```yaml + name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT # enables gRPC receiver on port 4317 + value: "0.0.0.0:4317" + ``` + + For HTTP: + ```yaml + name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT # enables HTTP receiver on port 4318 + value: "0.0.0.0:4318" + ``` + +3. コンテナポート 4317 または 4318 をコア `agent` コンテナのホストポートにマッピングします。 + + gRPC の場合: + ```yaml + ports: + - containerPort: 4317 + hostPort: 4317 + name: traceportgrpc + protocol: TCP + ``` + + For HTTP + ```yaml + ports: + - containerPort: 4318 + hostPort: 4318 + name: traceporthttp + protocol: TCP + ``` + +[1]: /ja/containers/guide/kubernetes_daemonset/ +{{% /tab %}} +{{% tab "AWS Lambda" %}} -1. [Kubernetes Agent のセットアップ][1] に従ってください。 +AWS Lambda と Datadog で OpenTelemetry を使用するための詳細な手順は、次のとおりです。 -2. trace Agent コンテナと core Agent コンテナの両方で、次の環境変数を構成します: +- OpenTelemetry を使用して Lambda 関数をインスツルメントする +- Datadog SDK 内での OpenTelemetry API サポートを使用する +- OpenTelemetry トレースを Datadog Lambda Extension に送信する - gRPC の場合: - ``` - name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT # enables gRPC receiver on port 4317 - value: "0.0.0.0:4317" - ``` +詳細は、Serverless ドキュメントの [AWS Lambda および OpenTelemetry][100] を参照してください。 - HTTP の場合: - ``` - name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT # enables HTTP receiver on port 4318 - value: "0.0.0.0:4318" - ``` -3. core Agent コンテナでは、コンテナ ポート 4317 または 4318 をホスト ポートにマッピングします: +[100]: /ja/serverless/aws_lambda/opentelemetry/ +{{% /tab %}} +{{< /tabs >}} - gRPC の場合: - ``` - ports: - - containerPort: 4317 - hostPort: 4317 - name: traceportgrpc - protocol: TCP - ``` +### OTLP ログの取り込みを有効にする {#enabling-otlp-logs-ingestion} - HTTP の場合: - ``` - ports: - - containerPort: 4318 - hostPort: 4318 - name: traceporthttp - protocol: TCP - ``` +OTLP ログの取り込みは、予定外の課金を防ぐためにデフォルトで無効になっています。これを有効にするには、ログ収集と OTLP ログの取り込みの両方を明示的に有効にする必要があります。 -4. OTLP ログ取り込みを有効にする場合は、core Agent コンテナで次のエンドポイント 環境変数を設定します: +{{< tabs >}} +{{% tab "ホスト" %}} - [DaemonSet でのログ収集][2] を有効化します: - ``` - name: DD_LOGS_ENABLED - value: "true" - ``` +1. [ホスト Agent のログ収集のセットアップ][7] に従って、ログ収集を有効にします。 - 続いて OTLP ログ取り込みを有効化します: - ``` - name: DD_OTLP_CONFIG_LOGS_ENABLED - value: "true" + ```yaml + logs_enabled: true ``` -[1]: /ja/agent/kubernetes/?tab=daemonset -[2]: /ja/containers/guide/kubernetes_daemonset/#log-collection -{{% /tab %}} - -{{% tab "Kubernetes (Helm) - values.yaml" %}} - -1. [Kubernetes Agent のセットアップ][1] に従ってください。 +2. `otlp_config.logs.enabled`を true に設定します。 -2. `values.yaml` ファイルの `datadog.otlp` セクションを編集して、Agent で OTLP エンドポイントを有効化します: - - gRPC の場合: - ``` - otlp: - receiver: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - enabled: true + ```yaml + otlp_config: + logs: + enabled: true ``` - HTTP の場合: - ``` - otlp: - receiver: - protocols: - http: - endpoint: 0.0.0.0:4318 - enabled: true - ``` +[7]: /ja/agent/logs/ +{{% /tab %}} +{{% tab "Docker" %}} -これにより、各プロトコルがデフォルト ポートで有効になります (OTLP/gRPC は `4317`、OTLP/HTTP は `4318`)。 +Datadog Agent コンテナで次の環境変数を設定します。 +- `DD_LOGS_ENABLED=true` +- `DD_OTLP_CONFIG_LOGS_ENABLED=true` -[1]: /ja/agent/kubernetes/?tab=helm {{% /tab %}} +{{% tab "Datadog Operator" %}} -{{% tab "Kubernetes (Helm) - set" %}} - -1. [Kubernetes Agent のセットアップ][1] に従ってください。 +`datadog-agent.yaml` ファイルで、次のように設定します。 -2. 使用したいプロトコルを有効化します: - - gRPC の場合: - ``` - --set "datadog.otlp.receiver.protocols.grpc.enabled=true" - ``` - HTTP の場合: - ``` - --set "datadog.otlp.receiver.protocols.http.enabled=true" - ``` +```yaml +spec: + # (...) + features: + otlp: + #(... enable gRPC or HTTP ingestion...) + logCollection: + enabled: true + override: + nodeAgent: + containers: + agent: + env: + - name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" +``` -これにより、各プロトコルがデフォルト ポートで有効になります (OTLP/gRPC は `4317`、OTLP/HTTP は `4318`)。 +{{% k8s-operator-redeploy %}} -[1]: /ja/agent/kubernetes/?tab=helm {{% /tab %}} -{{% tab "Kubernetes (Operator)" %}} +{{% tab "Helm" %}} -1. [Kubernetes Agent のセットアップ][1] に従ってください。 +`datadog-values.yaml` ファイルで、次のように設定します。 -2. Operator のマニフェストで、使用するプロトコルを有効化します: - - gRPC の場合: - ```yaml - features: - otlp: - receiver: - protocols: - grpc: - enabled: true - ``` - HTTP の場合: - ```yaml - features: - otlp: - receiver: - protocols: - http: - enabled: true - ``` +```yaml +datadog: + # (...) + otlp: + #(... enable gRPC or HTTP ingestion...) + logs: + enabled: true + logs: + enabled: true +``` -これにより、各プロトコルがデフォルト ポートで有効になります (OTLP/gRPC は `4317`、OTLP/HTTP は `4318`)。 +{{% k8s-helm-redeploy %}} -[1]: /ja/agent/kubernetes/?tab=helm {{% /tab %}} -{{% tab "AWS Lambda" %}} +{{% tab "手動 (Daemonset)" %}} -AWS Lambda と Datadog で OpenTelemetry を使用するための詳細な手順 (次を含む): +コア Agent コンテナで次の環境変数を設定します。 -- OpenTelemetry を用いた Lambda 関数のインスツルメンテーション -- Datadog トレーサーにおける OpenTelemetry API サポートの利用 -- Datadog Lambda Extension への OpenTelemetry トレースの送信 +```yaml +- name: DD_LOGS_ENABLED + value: "true" +- name: DD_OTLP_CONFIG_LOGS_ENABLED + value: "true" +``` -詳細は、Serverless ドキュメントの [AWS Lambda と OpenTelemetry][100] を参照してください。 +詳細は、[DaemonSet によるログの収集][8] を参照してください。 -[100]: /ja/serverless/aws_lambda/opentelemetry/ +[8]: /ja/containers/guide/kubernetes_daemonset/#log-collection {{% /tab %}} {{< /tabs >}} -Datadog Agent でサポートされる環境変数や設定は、ほかにも多数あります。全体像については、[設定テンプレート][6] を参照してください。 +Datadog Agent では、ほかにも多くの環境変数と設定がサポートされています。それらすべての概要については、[構成テンプレート][6] を参照してください。 -## OpenTelemetry のトレース、メトリクス、ログを Datadog Agent に送信する +## OpenTelemetry のトレース、メトリクス、ログを Datadog Agent に送信する {#sending-opentelemetry-traces-metrics-and-logs-to-datadog-agent} + +Datadog Agent で OTLP 取り込みを有効にしたら、テレメトリデータを Agent の OTLP エンドポイントにエクスポートするように OpenTelemetry でインスツルメントされたアプリケーションを構成します。Agent にデータを転送するように、ご使用の**アプリケーション**環境で `OTEL_EXPORTER_OTLP_ENDPOINT` 環境変数を設定します。このように設定されていない場合、Agent の OTLP レシーバーが有効になっていても、アプリケーションから Agent にテレメトリデータが送信されません。 {{< tabs >}} +{{% tab "ホスト" %}} +ご使用のアプリケーションの環境で `OTEL_EXPORTER_OTLP_ENDPOINT` 環境変数を設定します。 + +gRPC の場合: + +```shell +export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" +``` + +HTTP の場合: + +```shell +export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318" +``` +{{% /tab %}} + {{% tab "Docker" %}} -1. アプリケーション コンテナで、Datadog Agent コンテナを指すように環境変数 `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。例: +1. アプリケーションコンテナで、Datadog Agent コンテナを指すように環境変数 `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。たとえば、次のようにします。 ``` OTEL_EXPORTER_OTLP_ENDPOINT=http://:4318 ``` -2. 両コンテナは同じブリッジ ネットワーク内に定義されている必要があります。Docker Compose を使用している場合は自動的に処理されます。そうでない場合は、[Docker アプリケーションのトレーシング][1] の Docker の例に従って、適切なポートを開けたブリッジ ネットワークを設定してください。 +2. 両方のコンテナは同じブリッジネットワーク内に定義されている必要があります。これは、Docker Compose を使用している場合は自動的に処理されます。そうでない場合は、[Docker アプリケーションのトレース][1] の Docker の例に従って、ブリッジネットワークに適切なポートを設定してください。 [1]: /ja/agent/docker/apm/#docker-network {{% /tab %}} {{% tab "Kubernetes" %}} - -アプリケーションのデプロイメント ファイルで、環境変数 `OTEL_EXPORTER_OTLP_ENDPOINT` を用いて、OpenTelemetry クライアントがトレースを送信するエンドポイントを構成します。 +アプリケーションのデプロイメントファイルで、環境変数 `OTEL_EXPORTER_OTLP_ENDPOINT` を使用して OpenTelemetry クライアントがトレースを送信するエンドポイントを構成します。 gRPC の場合: + ```yaml env: - name: HOST_IP @@ -291,10 +363,11 @@ env: fieldRef: fieldPath: status.hostIP - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: "http://$(HOST_IP):4317" # ポート 4317 の gRPC レシーバーに送信 + value: "http://$(HOST_IP):4317" # sends to gRPC receiver on port 4317 ``` HTTP の場合: + ```yaml env: - name: HOST_IP @@ -302,16 +375,16 @@ env: fieldRef: fieldPath: status.hostIP - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: "http://$(HOST_IP):4318" # ポート 4318 の HTTP レシーバーに送信 + value: "http://$(HOST_IP):4318" # sends to HTTP receiver on port 4318 ``` -**注**: カスタム メトリクスのコンテナ タグを充実させるには、OTLP メトリクスを生成するアプリケーション コード内で適切なリソース 属性を設定してください。例えば、`container.id` リソース 属性に Pod の UID を設定します。 +**注**: Custom Metrics のコンテナタグを充実させるには、OTLP メトリクスを生成するアプリケーションコード内で適切なリソース属性を設定します。たとえば、`container.id` リソース属性に Pod の UID を設定します。 {{% /tab %}} {{< /tabs >}} -
    トレースの送信先エンドポイントを構成する際は、使用している OTLP ライブラリが要求する正しいパスを指定してください。ライブラリによっては、トレースの送信先を /v1/traces パスに期待するものもあれば、ルート パス / を使用するものもあります。
    +
    トレースの送信先エンドポイントを構成する際は、ご使用の OTLP ライブラリに必要となる、正しいパスを使用してください。ライブラリによっては、トレースの送信先として /v1/traces パスを指定する必要があるものもあれば、ルートパス /に変更します。
    -## 参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ja/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md b/content/ja/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md new file mode 100644 index 00000000000..f23a8f45a5e --- /dev/null +++ b/content/ja/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md @@ -0,0 +1,69 @@ +--- +aliases: +- /ja/real_user_monitoring/setup +- /ja/real_user_monitoring/browser/setup/client +description: NPM または CDN 付きのクライアントサイドのインスツルメンテーションを使用して RUM Browser SDK を設定し、Web アプリケーションのユーザーエクスペリエンス、パフォーマンス、およびエラーを監視します。 +further_reading: +- link: /real_user_monitoring/application_monitoring/browser/advanced_configuration/ + tag: よくあるご質問 + text: 高度な構成 +- link: /session_replay/browser/ + tag: よくあるご質問 + text: セッションリプレイの設定 +- link: /real_user_monitoring/error_tracking/browser/ + tag: よくあるご質問 + text: エラートラッキングの設定 +- link: /real_user_monitoring/correlate_with_other_telemetry/ + tag: よくあるご質問 + text: RUM イベントと他のテレメトリを相関させる +title: ブラウザ監視のクライアントサイド設定 +--- +## 概要 {% #overview %} + +Datadog Browser SDK は、Web アプリケーションのための Real User Monitoring (RUM) を有効にし、ユーザーエクスペリエンスとアプリケーションパフォーマンスに関する包括的な可視性を提供します。RUM を使用すると、ページの読み込み時間、ユーザー操作、リソースの読み込み、およびアプリケーションエラーをリアルタイムで監視できます。 + +RUM は次のことに役立ちます。 + +- ページ読み込み、ユーザーアクション、リソースリクエストに関する、詳細なパフォーマンスメトリクスを活用してユーザーエクスペリエンスを監視する +- セッションリプレイ機能を活用して、アプリケーション内のユーザー操作を追跡する +- パフォーマンスのボトルネックを特定し、APM トレースを使用してフロントエンドとバックエンドのパフォーマンスを相関させる + +ブラウザ SDK は、すべての最新のデスクトップおよびモバイルブラウザをサポートし、主要なパフォーマンスメトリクス、ユーザーアクション、およびアプリケーションエラーの自動収集を提供します。設定後、Datadog でアプリケーションごとに RUM 構成を管理し、ダッシュボードや RUM エクスプローラーで収集したデータを可視化できます。 + +{% partial file="sdk/setup/browser.mdoc.md" /%} + +#### セッションサンプリングレートの設定 {% #set-session-sampling-rates %} + +アプリケーションが Datadog RUM に送信するデータを制御するため、ブラウザ SDK を初期化する際に RUM セッションのサンプリングレートを指定できます。たとえば、セッションの 80% をサンプリングするには、`sessionSampleRate` を 80 に設定します。 + +```javascript +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '', + sessionSampleRate: 80, + sessionReplaySampleRate: 20, + // ... other configuration options +}); +``` + +詳細については、[ブラウザ RUM とセッションリプレイのサンプリング][1] を参照してください。 + +## アプリケーションの監視を開始する {% #start-monitoring-your-application %} + +RUM の基本設定が完了したので、アプリケーションはブラウザエラーを収集しており、リアルタイムで問題の監視やデバッグを開始できます。 + +[収集したデータ][2] を [ダッシュボード][3] で視覚化したり、[RUM エクスプローラー][4] で検索クエリを作成したりできます。 + +Datadog がデータの受信を開始するまで、[Applications] (アプリケーション) ページでアプリケーションは保留中として表示されます。 + +## 次のステップ {% #next-steps %} + +[高度な構成][5] を参照してください。 + + +[1]: /ja/real_user_monitoring/guide/sampling-browser-plans/ +[2]: /ja/real_user_monitoring/application_monitoring/browser/data_collected/ +[3]: /ja/real_user_monitoring/platform/dashboards/ +[4]: https://app.datadoghq.com/rum/explorer +[5]: /ja/real_user_monitoring/application_monitoring/browser/advanced_configuration/ \ No newline at end of file diff --git a/content/ja/tracing/other_telemetry/rum/_index.md b/content/ja/tracing/other_telemetry/rum/_index.md new file mode 100644 index 00000000000..4c3a3944cce --- /dev/null +++ b/content/ja/tracing/other_telemetry/rum/_index.md @@ -0,0 +1,35 @@ +--- +algolia: + tags: + - rum traces +aliases: +- /ja/real_user_monitoring/connect_rum_and_traces +- /ja/real_user_monitoring/platform/connect_rum_and_traces/ +further_reading: +- link: /tracing/ + tag: よくあるご質問 + text: APM と分散型トレーシング +- link: /real_user_monitoring + tag: よくあるご質問 + text: RUM およびセッションリプレイ +- link: /logs/guide/ease-troubleshooting-with-cross-product-correlation/ + tag: ガイド + text: クロスプロダクト相関で容易にトラブルシューティング +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: ブログ + text: Real User Monitoring +- link: https://www.datadoghq.com/blog/modern-frontend-monitoring/ + tag: ブログ + text: シングルページアプリケーションの監視を開始する +- link: https://www.datadoghq.com/blog/troubleshoot-with-session-replay-developer-tools/ + tag: ブログ + text: セッションリプレイブラウザ開発ツールによるトラブルシューティング +- link: https://www.datadoghq.com/blog/correlate-traces-datadog-rum-otel/ + tag: ブログ + text: Datadog RUM イベントと OpenTelemetry インスツルメンテーションされたアプリケーションのトレースを相関させる +- link: https://www.datadoghq.com/blog/rum-apm-single-step + tag: ブログ + text: 1 つのコマンドで、Java アプリケーションのエンドツーエンドの可視性を有効化 +title: RUM とトレースの接続 +--- +{{< include-markdown "real_user_monitoring/correlate_with_other_telemetry/apm" >}} \ No newline at end of file diff --git a/content/ja/tracing/services/deployment_tracking.md b/content/ja/tracing/services/deployment_tracking.md index c4ca5466269..1e58388da8e 100644 --- a/content/ja/tracing/services/deployment_tracking.md +++ b/content/ja/tracing/services/deployment_tracking.md @@ -5,48 +5,48 @@ aliases: description: Datadog を使用して、バージョンタグによりデプロイメントを追跡 further_reading: - link: getting_started/tagging/unified_service_tagging/ - tag: ドキュメント + tag: よくあるご質問 text: 統合サービスタグ付けと予約済みタグについて学ぶ - link: tracing/app_analytics - tag: ドキュメント + tag: よくあるご質問 text: App Analytics クエリでディメンションとしてバージョンを使用する title: デプロイメントの追跡 --- -## Version タグ +## version タグ {#the-version-tag} -`version` タグは、統合サービスタグ付け内に予約され、インフラストラクチャーメトリクス(ホスト、コンテナ、プロセス、NPM チェック)、トレースメトリクス、トレース、プロファイル、ログに適用されます。 +`version` タグは、統合サービスタグ付け内に予約され、インフラストラクチャーメトリクス (ホスト、コンテナ、プロセス、NPM チェック)、トレースメトリクス、トレース、プロファイル、ログに適用されます。 `version` タグを使用して、ソフトウェアのデプロイメントストラテジーと併せてデプロイメントおよびサービス動作の監視を行うことができます。 -まだ `version` タグをセットアップしていない場合は、[統合サービスタグ付けのドキュメント][1]で詳細をご確認ください。 +まだ `version` タグをセットアップしていない場合は、[統合サービスタグ付けのドキュメント][1] で詳細をご確認ください。 -## サービス詳細画面での version タグの使用 +## サービス詳細画面での version タグの使用{#using-version-tags-on-the-service-page} -{{< img src="tracing/deployment_tracking/ServicePageRequestsErrorsByVersion.png" alt="サービス詳細画面のバージョン" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/ServicePageRequestsErrorsByVersion.png" alt="サービス詳細画面上のバージョン" style="width:100%;">}} サービス詳細画面で、`version` タグが使用可能な場合、リクエストウィジェットのスコープを次のいずれかに設定できます。 - バージョン別の合計リクエスト数、または -- バージョン別 1 秒あたりのリクエスト数 +- バージョンごとの 1 秒あたりのリクエスト数 エラーウィジェットのスコープを次のいずれかに設定できます。 - バージョンごとの合計エラー数 - バージョン別 1 秒あたりのエラー数、または -- バージョン別のエラー率 +- バージョンごとのエラー率 リクエストおよびエラーのウィジェットは、ダッシュボードとモニターにエクスポートできます。 -## バージョンタグを使った欠陥のあるデプロイの自動検出 +## バージョンタグを使った欠陥のあるデプロイの自動検出 {#using-version-tags-for-automatic-faulty-deployment-detection} -`version` タグでサービスを構成することで、[欠陥のあるデプロイの自動検出][4]が可能になります。 +`version` タグでサービスを構成することで、[欠陥のあるデプロイの自動検出][4] が可能になります。 -モニターを設定して、潜在的な欠陥のあるすべてのデプロイについて自動的に通知 を受けることができます。これを行うには、New Monitors ページに移動して Events を選択し、モニターを定義する検索クエリに `tags:deployment_analysis` を含めます。 +潜在的に欠陥のあるすべてのデプロイについて自動通知を受け取るモニターを設定できます。そのためには、New Monitors ページに移動して Events を選択し、モニターを定義する検索クエリに `tags:deployment_analysis` を含めます。 -## デプロイ済みのバージョン +## デプロイ済みのバージョン {#versions-deployed} -`version` タグで構成されたサービスには、サービス健全性を示すメインのグラフの下のサービス詳細画面にバージョンセクションがあります。バージョンセクションには、選択した時間間隔にアクティブだったサービスのすべてのバージョンが表示されます(上部にはアクティブなサービスが表示)。 +`version` タグで構成されたサービスには、メインのサービスの健全性グラフの下にあるサービス詳細画面にバージョンセクションがあります。バージョンセクションには、選択した時間間隔中にアクティブだったサービスのすべてのバージョンが表示され、アクティブなバージョンが上部に表示されます。 デフォルトで、以下が表示されます。 @@ -54,7 +54,7 @@ title: デプロイメントの追跡 - このバージョンに対応するトレースが確認された最初および最後の時間。 - 各バージョンに出現した、直前バージョンでは出現しなかったエラータイプの回数を表示するエラータイプインジケーター。 - > **注:** ここには、前バージョンのトレースでは見られなかったエラーが表示されますが、このバージョンがこのようなエラーを発生させることを意味するものではありません。新しいエラータイプを確認することは、エラー調査を始める良い方法です。 + > **注:** このインジケーターは、前のバージョンのトレースでは確認されなかったエラーを示します。このバージョンでこれらのエラーが必ずしも発生したことを意味するわけではありません。新しいエラータイプを調査することは、エラー調査を開始する効果的な方法です。 - 1 秒あたりのリクエスト数。 - 合計リクエスト数のパーセンテージとしてのエラー率。 @@ -62,61 +62,61 @@ title: デプロイメントの追跡 この概要テーブルに列を追加またはテーブルから列を削除することができます。選択はすべて保存されます。利用可能な列は以下のとおりです。 -- 前バージョンに存在しなかったバージョンでアクティブなエンドポイント。 +- 前のバージョンには存在しなかったバージョンでアクティブなエンドポイント。 - アクティブな時間。このバージョンで Datadog に送信された最初のトレースから最後のトレースまでの時間を表示。 - リクエスト総数。 - エラー総数。 - p50、p75、p90、p95、p99、または最大で計測されたレイテンシー。 -{{< img src="tracing/deployment_tracking/VersionComparison.png" alt="サービス詳細画面のバージョン" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/VersionComparison.png" alt="サービス詳細画面上のバージョン" style="width:100%;">}} **注:** バージョンセクションは、ページ上部で選択された時間間隔の間に報告するバージョンが 1 つ以上ある場合にのみ表示されます。 -## デプロイメントの比較 +## デプロイメントの比較 {#deployment-comparison} -バージョン概要テーブルで任意のバージョンの行をクリックすると、バージョンの比較ページが開き、同じサービスの 2 つのバージョンを比較できます。デフォルトでは、選択したバージョンが直前のバージョンと比較されますが、過去 30 日以内のあらゆる 2 バージョンに変更して比較することが可能です。 +バージョン概要テーブルの任意のバージョン行をクリックすると、同じサービスの 2 つのバージョンを比較できるバージョン比較ページが開きます。デフォルトでは、選択したバージョンは直前のバージョンと比較されますが、過去 30 日以内の任意の 2 つのバージョンを比較するように変更できます。 バージョンの比較ページでは、以下の情報を確認できます。 -- [比較グラフ](#comparison-graphs): サービスへのリクエストおよびエラーが視覚化されているため、様々なタイプの[デプロイメント](#deployment-strategies)を確認できます。 +- [比較グラフ](#comparison-graphs): サービスへのリクエストおよびエラーが視覚化されているため、さまざまなタイプの[デプロイメント](#deployment-strategies)を確認できます。 - [エラー比較](#error-comparison): バージョンにより導入された、または解決されたエラー。 - [エンドポイント比較](#endpoint-comparison): 各バージョンでのエンドポイントレイテンシーおよびエラー率。 -### 比較グラフ +### 比較グラフ {#comparison-graphs} -サービス詳細画面のグラフと同様、リクエストおよびエラーのグラフにはデプロイメントのロールアウト概要およびエラー率の急上昇を示します。このページでは、比較のため選択されたバージョンがグラフ上でハイライトされ、コンテキストとして他のすべてのバージョンはグレー表示されます。 +サービス詳細画面のグラフと同様に、Requests と Errors のグラフは、デプロイメントのロールアウトやエラー率のスパイクの概要を示します。このページでは、グラフが比較対象として選択されたバージョンを強調表示し、それ以外のすべてのバージョンは追加のコンテキストとしてグレーで表示されます。 -{{< img src="tracing/deployment_tracking/ComparisonGraphs.png" alt="デプロイメント比較グラフ" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/ComparisonGraphs.png" alt="デプロイメントの比較グラフ" style="width:100%;">}} -[Continuous Profiler が有効な場合][5]、CPU 時間や割り当てメモリなどの主要なパフォーマンスメトリクスの比較を APM リソースごとに表示することもできます。そこから、[プロファイル比較ページ][6]に移動することができます。 +[Continuous Profiler が有効な場合][5]、CPU 時間や割り当てメモリなどの主要なパフォーマンスメトリクスの比較を APM リソースごとに表示することもできます。そこから、[プロファイル比較ページ][6] に移動することができます。 {{< img src="tracing/deployment_tracking/DeploymentTrackingProfileComparison.png" alt="デプロイメントプロファイリング比較グラフ" style="width:100%;">}} -### エラー比較 +### エラー比較 {#error-comparison} このセクションには、それぞれの 2 バージョンで検出されたエラータイプの違いが、以下をハイライトしてリストアップされます。 - - ソースバージョンにのみ見られたエラータイプ(トラブルシューティングに役立ちます) - - ソースバージョンに見られなくなったエラータイプ(修正の有効性の確認に役立ちます) + - ソースバージョンにのみ見られたエラータイプ (トラブルシューティングに役立ちます)、 + - ソースバージョンに見られなくなったエラータイプ (修正の有効性の確認に役立ちます)、 - 両方でアクティブなエラータイプ。 このテーブルから、選択したエラーに対応する現在および過去のトレースにピボットして、さらに調査をすることができます。 -**注:** エラー比較は、_観察された_ エラータイプに基づいています。珍しいエラータイプは、_まだ_ 確認されていないという理由だけで、「出現しなくなった」と検出される可能性があります。 +**注:** エラー比較は_観測された_エラータイプに基づいています。珍しいエラータイプは、_まだ_確認されていないという理由だけで、「出現しなくなった」と検出される可能性があります。 {{< img src="tracing/deployment_tracking/ErrorComparison.mp4" alt="エラー比較" video=true style="width:100%;">}} -### エンドポイント比較 +### エンドポイント比較 {#endpoint-comparison} -このセクションでは、サービスの各エンドポイントのパフォーマンス(リクエスト、レイテンシー、エラー)を比較できます。値別にテーブルをソートして、デプロイ後に最高スループットのエンドポイントが引き続き正常であることを確認したり、パーセンテージの変化でソートして、レイテンシーまたはエラー率における大きな変化を確認したりできます。 +このセクションでは、サービスの各エンドポイントのパフォーマンス (リクエスト、レイテンシー、エラー) を比較できます。値別にテーブルをソートして、デプロイ後に最高スループットのエンドポイントが引き続き正常であることを確認したり、パーセンテージの変化でソートして、レイテンシーまたはエラー率における大きな変化を確認したりできます。 {{< img src="tracing/deployment_tracking/EndpointComparison.png" alt="エンドポイント比較" style="width:100%;">}} -## デプロイ戦略 +## デプロイ戦略 {#deployment-strategies} Datadog のデプロイ追跡により、以下のデプロイ戦略 (またはその他) の使用時にデプロイされたコードのパフォーマンスを可視化して不良コードのデプロイを検出し、変更の影響を抑え、インシデントにより迅速に対応することができます。 -### ローリングデプロイ +### ローリングデプロイ {#rolling-deploys} ローリングデプロイでは、新しいバージョンをホストまたはコンテナに 1 つずつデプロイしながら、トラフィックを他のインスタンスに転送することにより、ダウンタイムをゼロにできます。 @@ -124,7 +124,7 @@ Datadog を使用して、ローリングデプロイを監視し、エラーの {{< img src="tracing/deployment_tracking/rolling.png" alt="ローリングデプロイメント" style="width:100%;">}} -### ブルーおよびグリーンデプロイ +### ブルーおよびグリーンデプロイ {#blue-and-green-deploys} ブルーおよびグリーン (または他の色の組み合わせ) デプロイでは、どちらもトラフィックを受け入れる 2 つのサービスのクラスターを実行するか、一方をスタンバイ状態にして、もう一方に問題がある場合にアクティブ化できるようにすることで、ダウンタイムを削減します。 @@ -132,7 +132,7 @@ Datadog を使用して、ローリングデプロイを監視し、エラーの {{< img src="tracing/deployment_tracking/BlueGreenDeploy.png" alt="ブルー/グリーンデプロイメント" style="width:100%;">}} -### カナリアデプロイ +### カナリアデプロイ {#canary-deploys} カナリアデプロイでは、サービスを限られた数のホストまたは一部の顧客にデプロイして、影響を制限しながら新しいデプロイをテストします。 @@ -142,19 +142,19 @@ Datadog 内で `version` タグを使用すると、カナリアデプロイの {{< img src="tracing/deployment_tracking/canarydeployment.png" alt="カナリアデプロイメント" style="width:100%;">}} -### シャドウデプロイ +### シャドウデプロイ {#shadow-deploys} シャドウデプロイでは、リリース候補バージョンが本番バージョンと一緒にデプロイされ、着信トラフィックが両方のサービスに送信されます。ユーザーには本番からの結果のみが表示されますが、両方からデータを収集することができます。 シャドウデプロイを使用すると、実際の本番トラフィックに対して潜在的なリリースをテストできます。シャドウに `version` タグをタグ付けすると、2 つのバージョン間のエラー率、トレース、サービスの動作を比較して、シャドウバージョンをリリースする必要があるかどうかを判断できます。 -## Datadog 内での Version タグの使用 +## Datadog 内での Version タグの使用{#using-version-tags-elsewhere-within-datadog} `version` タグは、検索ビューを特定のバージョンにフィルターするか、異なるバージョンのメトリクスを比較するために、Datadog 内の任意の場所で使用できます。 -### リソースステータス画面 +### リソースステータス画面 {#resource-page} -{{< img src="tracing/deployment_tracking/ResourcePage.png" alt="リソースステータス画面のバージョン" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/ResourcePage.png" alt="リソースステータス画面上のバージョン" style="width:100%;">}} リソースステータス画面で、version タグが使用可能な場合、リクエストウィジェットのスコープは次のいずれかに設定できます。 @@ -169,7 +169,7 @@ Datadog 内で `version` タグを使用すると、カナリアデプロイの これらはすべてダッシュボードとモニターにエクスポートできます。 -### トレース検索と分析 +### トレース検索と分析 {#trace-search-and-analytics} {{< img src="tracing/deployment_tracking/AnalyticsErrorsByVersion.mp4" alt="App Analytics のバージョン" video=true style="width:100%;">}} @@ -177,27 +177,27 @@ Datadog 内で `version` タグを使用すると、カナリアデプロイの `version` タグでのフィルタリングを含む分析は、ダッシュボードとモニターにエクスポートできます。 -### バージョン別プロファイル +### バージョン別プロファイル {#profiles-by-version} 特定のバージョンに対応するプロファイルを検索できます。[デプロイメント比較](#deployment-comparison) ページ右上の **View Profiles** をクリックして、比較しているバージョンのいずれかにスコープした継続的プロファイラーを開くことも可能です。 -{{< img src="tracing/deployment_tracking/VersionProfiler.png" alt="バージョン別にプロファイルをフィルター" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/VersionProfiler.png" alt="プロファイルをバージョンでフィルタリング" style="width:100%;">}}
    -## デプロイメント間の時間メトリクス +## デプロイメント間の時間メトリクス {#the-time-between-deployments-metric} サービスの新しいデプロイが検出されるたびに、Deployment Tracking は `time_between_deployments` メトリクスの値を計算し、新しいデプロイとその前の最新バージョンのデプロイの間の秒数として計算されます。 -### メトリクス定義 +### メトリクス定義 {#metric-definition} `datadog.service.time_between_deployments{env, service, second_primary_tag}` -: **前提条件:** このメトリクスは、[統合サービスタグ付け][1]によってバージョンタグ付けが有効になっているすべての APM サービスに存在します。
    -**説明:** サービスのデプロイメントと、それ以前の最新バージョンのデプロイメントとの間の経過時間 (秒)。
    -**メトリクスタイプ:** [ディストリビューション][2]
    -**タグ:** メトリクスには、サービスの `env`、`service`、および [2 番目のプライマリタグ][3]がタグ付けされます。 +: **前提条件:** このメトリクスは、[統合サービスタグ付け][1] によるバージョンタグ付けが有効になっている任意の APM サービスで利用できます。
    +**説明:** サービスのデプロイと、その直前の最新バージョンのデプロイの間に経過した秒数。
    +**メトリクスタイプ:** [DISTRIBUTION][2]
    +**タグ:** このメトリクスは、サービスの`env`、`service`、および [第 2 プライマリタグ][3] でタグ付けされています。 -### 例 +### 例 {#examples} もし、バージョン A を time = 0 で、バージョン B を time = 10 でデプロイするサービスがあれば、`datadog.service.time_between_deployments` のメトリクス値は 10 になります。 @@ -207,7 +207,7 @@ Time = 0 Time = 10 : `{service: foo, env: prod, cluster_name: dev-shopist, version: B}` -デプロイメント間の時間 +デプロイ間の時間 : `datadog.service.time_between_deployments{env: prod, cluster_name: dev-shopist} = 10` @@ -220,13 +220,13 @@ Time = 30 : `{service: foo, env: staging, cluster-name: us-staging, version: Y}` Time = 45 -: `{service: foo, env: dev-shopist, cluster-name: us-staging, version: Y}` +: `{service: foo, env: staging, cluster-name: dev-shopist, version: Y}` -デプロイメント間の最大時間: +デプロイ間の最大時間: : `max:datadog.service.time_between_deployments{env: staging, cluster-name: *} = 25` -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -236,4 +236,4 @@ Time = 45 [3]: /ja/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog [4]: /ja/watchdog/faulty_deployment_detection/ [5]: /ja/profiler/enabling/ -[6]: /ja/profiler/compare_profiles +[6]: /ja/profiler/compare_profiles \ No newline at end of file diff --git a/content/ko/agent/logs/_index.md b/content/ko/agent/logs/_index.md index 9ccf9a5e1c8..d304c131682 100644 --- a/content/ko/agent/logs/_index.md +++ b/content/ko/agent/logs/_index.md @@ -1,62 +1,73 @@ --- description: Datadog Agent를 사용하여 로그를 수집하고 Datadog로 전송하기 further_reading: +- link: agent/logs/agent_tags/ + tag: 설명서 + text: Agent 태그를 로그에 자동으로 추가 - link: agent/logs/advanced_log_collection/#filter-logs tag: 설명서 text: Datadog로 전송한 로그 필터링하기 - link: agent/logs/advanced_log_collection/#scrub-sensitive-data-from-your-logs tag: 설명서 - text: 로그에서 민감한 데이터 스크러빙하기 + text: 로그에서 민감한 데이터 스크러빙 - link: agent/logs/advanced_log_collection/#multi-line-aggregation tag: 설명서 - text: 멀티라인 로그 집계 + text: 여러 줄 로그 집계 - link: agent/logs/advanced_log_collection/#tail-directories-using-wildcards tag: 설명서 - text: 와일드카드를 사용해 디렉터리 테일링 + text: 와일드카드를 사용한 디렉터리 테일링 - link: agent/logs/advanced_log_collection/#global-processing-rules tag: 설명서 - text: 글로벌 처리 규칙 + text: 전역 처리 규칙 title: 호스트 에이전트 로그 수집 --- +로그 수집 기능을 사용하려면 Datadog Agent v6.0 이상이 필요합니다. 이전 버전의 Agent에는 `log collection` 인터페이스가 포함되어 있지 않습니다. 아직 Agent를 사용하고 있지 않다면 [Agent 설치 지침][1]을 따르세요. -로그 수집에는 Datadog 에이전트 v6.0 이상이 필요합니다. 이전 버전의 에이전트에는 `log collection` 인터페이스가 포함되어 있지 않습니다. 아직 에이전트를 사용하고 있지 않다면, [에이전트 설치 지침][1]을 따르세요. +다른 공급업체의 수집기 또는 포워더를 사용하여 로그를 전송하려는 경우, 또는 전송하기 전에 사용자 환경 내에서 로그 데이터를 전처리하려는 경우 [Observability Pipelines][2]를 참조하세요. -다른 공급업체의 수집기 또는 전달자를 사용하여 로그를 전송하려는 경우 또는 배송 전에 사용자 환경 내에서 로그 데이터를 전처리하려는 경우 [관찰 가능성 파이프라인][2]을 참조하세요. +## 로그 수집 활성화 {#activate-log-collection} -## 로그 수집 활성화 +Datadog Agent에서는 로그 수집이 기본적으로 **활성화되어 있지 않습니다**. Kubernetes 또는 Docker 환경에서 Agent를 실행 중인 경우 전용 설명서인 [Kubernetes 로그 수집][3] 또는 [Docker 로그 수집][4]을 참조하세요. -Datadog 에이전트에서 로그 수집은 기본적으로 **활성화되지** 않습니다. 쿠버네티스(Kubernetes) 또는 도커(Docker) 환경에서 에이전트를 실행하는 경우 전용 [쿠버네티스(Kubernetes) 로그 컬렉션][3] 또는 [도커(Docker) 로그 컬렉션][4] 설명서를 참조하세요. +호스트에서 실행 중인 Agent로 로그 수집을 활성화하려면 Agent의 [기본 구성 파일][5](`datadog.yaml`)에서 `logs_enabled: false` 값을 `logs_enabled: true`로 변경합니다. -호스트에서 실행 중인 에이전트로 로그 수집을 활성화하려면 에이전트의 [기본 설정 파일][5](`datadog.yaml`)에서 `logs_enabled: false`를 `logs_enabled: true`로 변경하세요. +{{< code-block lang="yaml" filename="datadog.yaml" disable_copy="false" collapsible="true" >}} +logs_enabled: true +logs_config: + auto_multi_line_detection: true + force_use_http: true +{{< /code-block >}} -{{< agent-config type="log collection configuration" filename="datadog.yaml" collapsible="true">}} +사용 가능한 모든 구성 옵션은 [샘플 config_template.yaml file][6]을 참조하세요. -에이전트 v6.19+/v7.19+부터는 HTTPS 전송이 기본 전송으로 사용됩니다. HTTPS/TCP 전송을 강제하는 방법에 대한 자세한 내용은 [에이전트 전송 문서][6]를 참조하세요. +
    Agent v6.19+/v7.19+부터는 HTTPS 전송 방식이 기본값으로 사용됩니다. 자세한 내용은 Agent 전송을 참조하세요.
    -환경 변수와 로그를 보내려면 다음과 같이 설정하세요. +**환경 변수**를 사용하여 로그를 전송하려면 다음과 같이 구성합니다. -* `DD_LOGS_ENABLED=true` +``` +DD_LOGS_ENABLED=true +``` -로그 수집을 활성화하면, 에이전트가 Datadog에 로그를 전달할 준비가 됩니다. 다음으로 로그를 수집할 에이전트를 설정합니다. +로그 수집을 활성화하면 Agent는 Datadog로 로그를 전달할 준비가 완료됩니다. 다음으로 Agent가 어디에서 로그를 수집할지 구성해야 합니다. -## 커스텀 로그 수집 +## 사용자 지정 로그 수집 {#custom-log-collection} -Datadog 에이전트 v6는 로그를 수집하여 파일, 네트워크(TCP 또는 UDP), journald 및 윈도우즈(Windows) 채널에서 Datadog로 전달할 수 있습니다: +Datadog Agent v6는 로그를 수집하여 파일, 네트워크(TCP 또는 UDP), journald 및 Windows 채널에서 Datadog로 전달할 수 있습니다. -1. [에이전트 설정 디렉터리][5]의 루트에 있는 `conf.d/` 디렉터리에 Datadog 사용자가 액세스할 수 있는 새 `.d/` 폴더를 생성합니다. -2. 이 새 폴더에 새로운 `conf.yaml` 파일을 만듭니다. -3. 아래 파라미터를 사용하여 커스텀 로그 수집 설정 그룹을 추가합니다. -4. 이 새로운 설정을 고려하려면 [에이전트를 다시 시작][7]하세요. -5. [에이전트 상태 하위 명령][8]을 실행하고 확인 섹션에서 ``을 찾으세요. +1. [Agent의 구성 디렉터리][5] 루트의 `conf.d/` 디렉터리 아래에 Datadog 사용자가 접근할 수 있는 새 `.d/` 폴더를 생성합니다. +2. 새 폴더 안에 `conf.yaml` 파일을 생성합니다. +3. 아래 파라미터를 사용하여 사용자 지정 로그 수집 구성 그룹을 추가합니다. +4. [Agent를 다시 시작][8]하여 새 구성을 적용합니다. +5. [Agent의 상태 하위 명령][9]을 실행한 후 검사 섹션에서 ``을 확인합니다. -권한 오류가 있는 경우 [로그 파일 추적 권한 문제][9]를 참조하여 트러블슈팅하세요. +권한 오류가 있는 경우, [로그 파일 테일링 권한 문제][10]를 참조하여 문제를 해결하세요. -다음은 커스텀 로그 수집 설정의 예입니다: +다음은 사용자 지정 로그 수집 설정의 예입니다. {{< tabs >}} -{{% tab "Tail files" %}} +{{% tab "파일 테일링" %}} -`/.log`에 저장된 `` 애플리케이션에서 로그를 수집하려면 [Agent의 설정 디렉토리][1] 루트에서 다음 내용을 포함하여 `.d/conf.yaml` 파일을 생성하세요: +`/.log`에 저장된 `` 애플리케이션 로그를 수집하려면 [Agent의 구성 디렉터리][1] 루트에 `.d/conf.yaml` 파일을 생성하고 다음 내용을 추가합니다. ```yaml logs: @@ -66,16 +77,22 @@ logs: source: "" ``` -**Windows**에서는 `:\\\\.log` 경로를 사용하고 `ddagentuser` 사용자에게 로그 파일에 대한 읽기 및 쓰기 액세스 권한이 있는지 확인하세요. +**Windows**에서는 `:\\\\.log` 경로를 사용하고, 사용자 `ddagentuser`가 로그 파일에 대한 읽기 권한을 가지고 있는지 확인하세요. -**참고**: 로그 줄은 새 줄 문자( `\n` 또는 `\r\n`)로 끝나야 하며, 그렇지 않으면 에이전트는 무한 대기하고 로그 줄을 보내지 않습니다. +**참고**: 로그 줄은 개행 문자 `\n` 또는 `\r\n`로 끝나야 합니다. 그렇지 않으면 Agent가 무기한 대기하며 해당 로그 줄을 보내지 않습니다. [1]: /ko/agent/configuration/agent-configuration-files/ {{% /tab %}} {{% tab "TCP/UDP" %}} -로그를 TCP 포트 **10518**로 전달하는 `` 애플리케이션에서 로그를 수집하려면, [에이전트 설정 디렉토리][1]의 루트에 다음 내용이 포함된`.d/conf.yaml` 파일을 생성합니다: +발신자 IP 주소를 캡처하여 로그 메시지 페이로드에 포함하려면 `datadog.yaml` 파일에 다음 구성을 추가합니다. + +```yaml + logs_config: + use_sourcehost_tag: true +``` +TCP 포트 **10518**로 로그를 전달하는 `` 애플리케이션의 로그를 수집하려면 [Agent의 구성 디렉터리][1] 루트에 `.d/conf.yaml` 파일을 생성하고 다음 내용을 추가합니다. ```yaml logs: @@ -85,19 +102,19 @@ logs: source: "" ``` -Serilog를 사용하는 경우, `Serilog.Sinks.Network`는 UDP로 연결하기 위한 옵션입니다. +Serilog를 사용하는 경우 `Serilog.Sinks.Network`는 UDP 연결 옵션입니다. -에이전트 버전 7.31.0+에서 TCP 연결은 유휴 상태에서도 무기한 열린 상태를 유지합니다. +Agent 버전 7.31.0 이상에서 TCP 연결은 유휴 상태에서도 무기한 열린 상태를 유지합니다. **참고**: -- 에이전트는 원시 문자열, JSON 및 Syslog 형식의 로그를 지원합니다. 로그를 일괄 전송하는 경우 줄 바꿈 문자를 사용하여 로그를 구분하세요. -- 로그 줄은 새 줄 문자( `\n` 또는 `\r\n`)로 끝나야 하며, 그렇지 않으면 에이전트는 무한 대기하고 로그 줄을 보내지 않습니다. +- Agent는 원시 문자열, JSON 및 Syslog 형식의 로그를 지원합니다. 로그를 배치 단위로 전송하는 경우 줄바꿈 문자를 사용하여 로그를 구분하세요. +- 로그 줄은 개행 문자 `\n` 또는 `\r\n`로 끝나야 합니다. 그렇지 않으면 Agent가 무기한 대기하며 해당 로그 줄을 보내지 않습니다. [1]: /ko/agent/configuration/agent-configuration-files/ {{% /tab %}} {{% tab "journald" %}} -journald에서 로그를 수집하려면, [에이전트 설정 디렉토리][1]의 루트에 다음 내용이 포함된 `journald.d/conf.yaml` 파일을 생성합니다: +journald에서 로그를 수집하려면 [Agent의 구성 디렉터리][1] 루트에 `journald.d/conf.yaml` 파일을 생성하고 다음 내용을 추가합니다. ```yaml logs: @@ -110,23 +127,23 @@ logs: [1]: /ko/agent/configuration/agent-configuration-files/ [2]: /ko/integrations/journald/ {{% /tab %}} -{{% tab "Windows Events" %}} +{{% tab "Windows 이벤트" %}} -Windows 이벤트를 로그로 Datadog에 보내려면, 채널을 `conf.d/win32_event_log.d/conf.yaml`에 수동으로 추가하거나 Datadog 에이전트 매니저를 사용하세요. +Windows 이벤트를 로그로 Datadog에 전송하려면 채널을 `conf.d/win32_event_log.d/conf.yaml`에 수동으로 추가하거나 Datadog Agent Manager를 사용하세요. -채널 목록을 보려면 PowerShell에서 다음 명령을 실행합니다: +채널 목록을 보려면 PowerShell에서 다음 명령을 실행합니다. ```text Get-WinEvent -ListLog * ``` -가장 활성화된 채널을 확인하려면, PowerShell에서 다음 명령을 실행합니다: +가장 활성화된 채널을 확인하려면, PowerShell에서 다음 명령을 실행합니다. ```text Get-WinEvent -ListLog * | sort RecordCount -Descending ``` -그런 다음 `win32_event_log.d/conf.yaml` 설정 파일에 채널을 추가합니다: +그런 다음 채널을 `win32_event_log.d/conf.yaml` 구성 파일에 추가합니다. ```yaml logs: @@ -143,69 +160,108 @@ logs: sourcecategory: windowsevent ``` -이벤트를 수집하려는 Windows 채널 이름으로 `` 파라미터를 편집합니다. -해당 `source` 파라미터를 동일한 채널 이름으로 설정하여 [통합 자동 처리 파이프라인 설정][1]의 이점을 얻습니다. +수집할 이벤트의 Windows 채널 이름으로 `` 파라미터를 수정합니다. +[통합 자동 처리 파이프라인 설정][1]의 이점을 활용하려면 해당 `source` 파라미터도 동일한 채널 이름으로 설정합니다. -마지막으로 [에이전트를 다시 시작합니다][2]. +마지막으로 [Agent를 다시 시작][2]합니다. [1]: /ko/logs/log_configuration/pipelines/#integration-pipelines [2]: /ko/agent/basic_agent_usage/windows/ {{% /tab %}} +{{% tab "Windows Private Location" %}} +Windows Private Location 로그를 Datadog로 전송하려면 다음 섹션의 단계를 수행하세요. + +### Agent 구성 {#configure-the-agent} + +1. Agent 구성 파일에서 `logs_enabled: true`를 구성하여 Agent 로그 수집을 활성화합니다. +2. `C:\ProgramData\Datadog\conf.d`으로 이동하여 `synthetics_worker.d`라는 폴더를 생성합니다. +3. `synthetics_worker.d` 폴더 안에 `conf.yaml`이라는 파일을 생성하고 다음 예제를 템플릿으로 사용합니다. + +```yaml +logs: + - type: file + path: "C:\\Program Files\\Datadog-Synthetics\\Synthetics\\private-location-service.out.log" + service: + source: synthetics + tags: # Defined per user preference + - env: + - private_location: +``` + +### Agent를 실행하는 사용자 확인 {#verify-the-user-running-the-agent} + +Private Location 설치 폴더는 관리자만 접근할 수 있도록 제한되어 있으므로 Datadog Agent가 로그 파일에 접근할 수 있는 권한이 필요합니다. Datadog Agent를 실행하는 사용자를 확인하려면 다음 단계를 따르세요. + +1. Windows 키를 누르고 `R`을 입력한 후 {{< ui >}}Run{{< /ui >}}를 검색합니다. +2. Datadog Agent를 찾아 마우스 오른쪽 버튼으로 클릭하고 {{< ui >}}Properties{{< /ui >}}를 선택합니다. +3. {{< ui >}}Log On{{< /ui >}} 탭에서 계정(기본값은 `ddagentuser`)을 확인합니다. +4. 창을 닫습니다. + +### Agent를 실행하는 사용자에게 권한 부여 {#grant-permission-to-the-user-running-the-agent} + +1. `C:\Program Files`로 이동하여 `synthetics_worker.d` 폴더를 찾습니다. +2. `synthetics_worker.d` 폴더를 마우스 오른쪽 버튼으로 클릭하고 {{< ui >}}Properties{{< /ui >}}를 선택합니다. +3. {{< ui >}}Security{{< /ui >}} 탭으로 이동합니다. +4. {{< ui >}}Edit{{< /ui >}}를 클릭하고 `ddagentuser`를 추가합니다. +5. 필요한 권한을 부여합니다. +6. 변경 사항을 적용하고 Datadog로 로그 전송을 시작하려면 서비스 화면 또는 명령줄에서 Datadog Agent를 다시 시작합니다. +{{% /tab %}} {{< /tabs >}} 로그 수집에 사용 가능한 모든 파라미터 목록: | 파라미터 | 필수 | 설명 | |------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `type` | Yes | 로그 입력 소스의 유형입니다. 유효한 값은 `tcp`, `udp`, `file`, `windows_event`, `docker`, 또는 `journald`입니다. | -| `port` | Yes | `type`이 **tcp** 또는 **udp**인 경우, 로그를 수신할 포트를 설정합니다. | -| `path` | Yes | `type`이 **파일** 또는 **journald**인 경우, 로그를 모으기 위한 파일 경로를 설정합니다. | -| `channel_path` | Yes | `type`이 **windows_event**인 경우, 로그 수집을 위한 Windows 이벤트 채널을 목록으로 표시합니다. | -| `service` | Yes | 로그를 소유한 서비스의 이름입니다. [Datadog APM][10]으로 서비스를 계측한 경우 서비스 이름이 동일해야 합니다. 여러 데이터 유형에 걸쳐 `service`를 설정하는 경우 [통합 서비스 태깅][11] 지침을 확인하세요. | -| `source` | Yes | 로그를 보내는 통합을 정의하는 속성입니다. 로그가 기존 통합에서 제공되지 않은 경우 이 필드에 커스텀 소스 이름이 포함될 수 있습니다. 그러나 이 값을 수집 중인 관련 [커스텀 메트릭][12]의 네임스페이스와 일치시키는 것이 좋습니다(예: `myapp.request.count`의 `myapp`). | -| `include_units` | 아니요 | `type`이 **journald**인 경우, 포함할 특정 journald 단위의 목록을 표시합니다. | -| `exclude_paths` | 아니요 | `type`이 **파일**이고, `path`가 와일드카드 문자를 포함하는 경우, 로그 수집에서 제외할 일치하는 파일의 목록을 표시합니다. 에이전트 버전 6.18 이상에서 사용할 수 있습니다. | -| `exclude_units` | 아니요 | `type`이 **journald**인 경우, 제외할 특정 journald 단위의 목록을 표시합니다. | -| `sourcecategory` | 아니요 | 소스 속성이 속한 범주를 정의하는 데 사용되는 속성입니다, 예를 들어: `source:postgres, sourcecategory:database` 또는 `source: apache, sourcecategory: http_web_access`입니다. | -| `start_position` | 아니요 | 자세한 내용은 [시작 포지션](#start-position)를 참조하세요.| -| `encoding` | 아니요 | `type`이 **파일**인 경우, 에이전트가 파일을 읽을 수 있도록 인코딩을 설정합니다. UTF-16 little-endian은 `utf-16-le`, UTF-16 big-endian은 `utf-16-be`, Shift JIS는 `shift-jis`로 설정합니다. 다른 값으로 설정하면, 에이전트는 파일을 UTF-8로 읽습니다. _`utf-16-le` 및 `utf-16be`는 에이전트 v6.23/v7.23에 추가됨, `shift-jis`는 에이전트 v6.34/v7.34에 추가됨_ | -| `tags` | 아니요 | 수집된 각 로그에 추가된 태그 목록([태그 지정에 대해 자세히 알아보기][13]) | - -### 시작 포지션 - -`start_position` 파라미터는 **file** 및 **journald** 테일러 유형에서 지원됩니다. 컨테이너를 추적할 때 `start_position`는 항상 `beginning`입니다. +| `type` | 예 | 로그 입력 소스의 유형입니다. 유효한 값: `tcp`, `udp`, `file`, `windows_event`, `docker`, `journald`. | +| `port` | 예 | `type`**tcp** 또는 **udp**인 경우, 로그 수신에 사용할 포트를 설정합니다. | +| `path` | 예 | `type`이 **file** 또는 **journald**인 경우, 로그 수집을 위한 파일 경로를 설정합니다. | +| `channel_path` | Yes | `type`이 **windows_event**인 경우, 로그 수집을 위한 Windows 이벤트 채널을 나열합니다. | +| `service` | 예 | 로그를 생성하는 서비스의 이름입니다. [Datadog APM][11]으로 서비스를 계측한 경우 동일한 서비스 이름이어야 합니다. 여러 데이터 유형에서 `service`를 구성할 때는 [unified service tagging][12] 지침을 참조하세요. | +| `source` | 예 | 로그를 전송하는 통합을 정의하는 속성입니다. 기존 통합에서 생성된 로그가 아닌 경우 사용자 지정 소스 이름을 사용할 수 있습니다. 다만 관련 [사용자 지정 메트릭][13]의 네임스페이스와 일치시키는 것이 좋습니다. 예: `myapp.request.count`의 `myapp`. | +| `include_units` | 아니요 | `type`이 **journald**인 경우 포함할 특정 journald 유닛 목록입니다. | +| `exclude_paths` | 아니요 | `type`이 **file**이고 `path`에 와일드카드 문자가 포함된 경우 로그 수집에서 제외할 일치 파일 목록입니다. Agent 버전 6.18 이상에서 사용 가능합니다. | +| `exclude_units` | 아니요 | `type`이 **journald**인 경우 제외할 특정 journald 유닛 목록입니다. | +| `sourcecategory` | 아니요 | 소스 속성이 속한 범주를 정의하는 데 사용하는 속성입니다. 예: `source:postgres, sourcecategory:database` 또는 `source: apache, sourcecategory: http_web_access`. | +| `start_position` | 아니요 | 자세한 내용은 [시작 위치](#start-position)를 참조하세요.| +| `encoding` | 아니요 | `type`이 **file**인 경우 Agent가 파일을 읽을 때 사용할 인코딩을 설정합니다. UTF-16 리틀 엔디언은 `utf-16-le`, UTF-16 빅 엔디언은 `utf-16-be`, Shift JIS는 `shift-jis`를 사용합니다. 다른 값으로 설정하면 Agent는 파일을 UTF-8로 읽습니다. _`utf-16-le`, `utf-16be`는 Agent v6.23/v7.23에, `shift-jis`는 Agent v6.34/v7.34에 추가되었습니다._ | +| `tags` | 아니요 | 수집되는 각 로그에 추가할 태그 목록입니다([태깅에 대해 자세히 알아보기][14]). | + +### 시작 위치 {#start-position} + +`start_position` 파라미터는 **file** 및 **journald** 테일러 유형에서 지원됩니다. 컨테이너를 테일링할 때 `start_position`은 항상 `beginning`입니다. 지원: -- **File**: 에이전트6.19+/7.19+ -- **Journald**: 에이전트 6.38+/7.38+ +- **파일**: Agent 6.19+/7.19 이상 +- **journald**: Agent 6.38+/7.38 이상 -`type`이 **file**인 경우: -- 에이전트에 대한 포지션을 설정하여 파일 읽기를 시작합니다. -- 유효한 값은 `beginning`, `end`, `forceBeginning` 및 `forceEnd`(기본값: `end`)입니다. -- `beginning` 포지션은 와일드카드 포함 경로를 지원하지 않습니다. +`type`가 **file**인 경우: +- Agent가 파일 읽기를 시작할 위치를 설정합니다. +- 유효한 값은 `beginning`, `end`, `forceBeginning`, `forceEnd`이며 기본값은 `end`입니다. +- `beginning` 위치는 와일드카드가 포함된 경로를 지원하지 않습니다. `type`이 **journald**인 경우: -- 에이전트가 저널 읽기를 시작하는 포지션을 설정합니다. -- 유효한 값은 `beginning`, `end`, `forceBeginning` 및 `forceEnd`(기본값: `end`)입니다. +- Agent가 저널 읽기를 시작할 위치를 설정합니다. +- 유효한 값은 `beginning`, `end`, `forceBeginning`, `forceEnd`이며 기본값은 `end`입니다. -#### 우선 순위 +#### 우선 순위 {#precedence} -file 및 journald 테일러 유형 모두에 대해 또는 `end` 또는 `beginning` 포지션이 지정되었지만 오프셋이 저장된 경우 오프셋이 우선합니다. 저장된 오프셋이 있는 경우에도 `forceBeginning` 또는 `forceEnd`를 사용하면 에이전트가 지정된 값을 사용하도록 합니다. +file 및 journald 테일러 유형 모두에서 `end` 또는 `beginning` 위치가 지정되어 있더라도 저장된 오프셋이 있으면 오프셋이 우선 적용됩니다. `forceBeginning` 또는 `forceEnd`를 사용하면 저장된 오프셋이 있더라도 Agent가 지정된 값을 강제로 사용합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/account/settings/agent/latest [2]: https://docs.datadoghq.com/ko/observability_pipelines/ -[3]: /ko/agent/kubernetes/log/ -[4]: /ko/agent/docker/log/ +[3]: /ko/containers/kubernetes/log/ +[4]: /ko/containers/docker/log/ [5]: /ko/agent/configuration/agent-configuration-files/ -[6]: /ko/agent/logs/log_transport/ -[7]: /ko/agent/configuration/agent-commands/#restart-the-agent -[8]: /ko/agent/configuration/agent-commands/#agent-status-and-information -[9]: /ko/logs/guide/log-collection-troubleshooting-guide/#permission-issues-tailing-log-files' -[10]: /ko/tracing/ -[11]: /ko/getting_started/tagging/unified_service_tagging -[12]: /ko/metrics/custom_metrics/#overview -[13]: /ko/getting_started/tagging/ \ No newline at end of file +[6]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml +[7]: /ko/agent/logs/log_transport/ +[8]: /ko/agent/configuration/agent-commands/#restart-the-agent +[9]: /ko/agent/configuration/agent-commands/#agent-status-and-information +[10]: /ko/logs/guide/log-collection-troubleshooting-guide/#permission-issues-tailing-log-files +[11]: /ko/tracing/ +[12]: /ko/getting_started/tagging/unified_service_tagging +[13]: /ko/metrics/custom_metrics/#overview +[14]: /ko/getting_started/tagging/ \ No newline at end of file diff --git a/content/ko/containers/kubernetes/apm.md b/content/ko/containers/kubernetes/apm.md index d1ca4e7dee3..ebe96814d3b 100644 --- a/content/ko/containers/kubernetes/apm.md +++ b/content/ko/containers/kubernetes/apm.md @@ -1,6 +1,7 @@ --- aliases: - /ko/agent/kubernetes/apm +description: Kubernetes 환경에서 실행되는 컨테이너화된 애플리케이션에 대해 APM 트레이스 수집을 활성화합니다. further_reading: - link: /agent/kubernetes/log/ tag: 설명서 @@ -19,29 +20,30 @@ further_reading: text: 컨테이너에서 내보내는 모든 데이터에 태그 할당 title: Kubernetes APM - 트레이스 수집 --- - -{{< learning-center-callout header="학습 센터에서 Introduction to Monitoring Kubernetes를 시작하세요" btn_title="지금 등록하기" btn_url="https://learn.datadoghq.com/courses/intro-to-monitoring-kubernetes">}} - 실제 클라우드 컴퓨팅 용량과 Datadog 평가판 계정을 무료로 배워보세요. 실습을 통해 Kubernetes와 관련된 메트릭, 로그 및 APM 트레이스를 빠르게 익혀보세요. +{{< learning-center-callout header="학습 센터의 Kubernetes 모니터링 소개 과정 체험하기" btn_title="지금 등록" btn_url="https://learn.datadoghq.com/courses/intro-to-monitoring-kubernetes">}} + 실제 클라우드 컴퓨팅 용량과 Datadog 평가판 계정으로 무료로 학습하세요. 이 실습 랩을 통해 Kubernetes 관련 메트릭, 로그 및 APM 트레이스를 빠르게 익힐 수 있습니다. {{< /learning-center-callout >}} -이 페이지에서는 Kubernetes 애플리케이션에 대한 [APM(애플리케이션 성능 모니터링)][10]을 설정하고 구성하는 방법을 설명합니다. +이 페이지에서는 Kubernetes 애플리케이션에 대한 [APM(Application Performance Monitoring)][10]을 설정하고 구성하는 방법을 설명합니다. + +{{< img src="tracing/visualization/troubleshooting_pipeline_kubernetes.png" alt="APM 문제 해결 파이프라인: 트레이서는 애플리케이션 포드에서 Agent 포드로 트레이스 및 메트릭 데이터를 전송하며, Agent는 이를 Datadog 백엔드로 전달하여 Datadog UI에 표시합니다.">}} -{{< img src="tracing/visualization/troubleshooting_pipeline_kubernetes.png" alt="The APM troubleshooting pipeline: The tracer sends traces and metrics data from the application pod to the Agent pod, which sends it to the Datadog backend to be shown in the Datadog UI.">}} +트레이스를 Unix Domain Socket(UDS), TCP(`IP:Port`) 또는 Kubernetes 서비스로 전송할 수 있습니다. Datadog은 UDS 사용을 권장하지만 필요에 따라 세 가지 방식을 동시에 사용할 수도 있습니다. -UDS(Unix Domain Socket), TCP(`IP:Port`) 또는 Kubernetes 서비스를 통해 트레이스를 보낼 수 있습니다. Datadog에서는 UDS 사용을 권장하지만, 필요한 경우 세 가지를 동시에 사용할 수도 있습니다. +**참고**: 수동 구성 없이 자동 계측을 사용하려면 [Kubernetes용 단일 단계 계측][13]을 참조하세요. -## 설정 -1. 아직 설치하지 않았다면 Kubernetes 환경에 [Datadog Agent를 설치][1]하세요. -2. [Datadog Agent를 구성해](#configure-the-datadog-agent-to-collect-traces) 트레이스를 수집합니다. -3. [애플리케이션 파드를 구성해](#configure-your-application-pods-to-submit-traces-to-datadog-agent) Datadog Agent에 트레이스를 제출합니다. +## 설정 {#setup} +1. 아직 설치하지 않았다면 Kubernetes 환경에 [Datadog Agent를 설치][1]합니다.. +트레이스를 수집하도록 2. [Datadog Agent를 구성](#configure-the-datadog-agent-to-collect-traces)합니다. +Datadog Agent로 트레이스를 전송하도록 3. [애플리케이션 포드를 구성](#configure-your-application-pods-to-submit-traces-to-datadog-agent)합니다. -### 트레이스 수집을 위해 Datadog Agent 구성 +### 트레이스를 수집하도록 Datadog Agent를 구성 {#configure-the-datadog-agent-to-collect-traces} -이 섹션의 지침은 UDS를 통해 트레이스를 수신하도록 Datadog Agent를 구성합니다. TCP를 사용하려면 [추가 구성](#additional-configuration) 섹션을 참조하세요. Kubernetes 서비스를 사용하려면 [Kubernetes Service로 APM 설정][9]을 참조하세요. +이 섹션의 지침은 Datadog Agent가 UDS를 통해 트레이스를 수신하도록 구성합니다. TCP를 사용하려면 [추가 구성](#additional-configuration) 섹션을 참조하세요. Kubernetes 서비스를 사용하려면 [Kubernetes 서비스에서 APM 설정하기][9]를 참조하세요. {{< tabs >}} {{% tab "Datadog Operator" %}} -`datadog-agent.yaml`을 편집해 `features.apm.enabled`를 `true`로 설정합니다. +`datadog-agent.yaml`를 편집하여 `features.apm.enabled`를 `true`로 설정합니다. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -60,18 +62,18 @@ spec: path: /var/run/datadog/apm.socket # default ``` -APM이 활성화되면 기본 설정은 호스트에 디렉토리를 생성하고 에이전트 내에 마운트합니다. 그런 다음 에이전트는 `/var/run/datadog/apm/apm.socket` 소켓 파일을 생성하고 수신 대기합니다. 그러면 애플리케이션 포드도 마찬가지로 이 볼륨을 마운트하고 동일한 소켓에 쓸 수 있습니다. 또한, `features.apm.unixDomainSocketConfig.path` 설정 값으로 경로와 소켓을 수정할 수 있습니다. +APM이 활성화되면 기본 구성은 호스트에 디렉터리를 생성하고 이를 Agent 내부에 마운트합니다. 그런 다음 Agent는 다음 소켓 파일 `/var/run/datadog/apm/apm.socket`을 생성하고 수신 대기합니다. 애플리케이션 포드도 동일한 볼륨을 마운트하여 같은 소켓에 기록할 수 있습니다. `features.apm.unixDomainSocketConfig.path` 경로와 소켓 파일은 구성 값을 통해 변경할 수 있습니다. {{% k8s-operator-redeploy %}} -**참고**: minikube에서는 `Unable to detect the kubelet URL automatically` 오류가 발생할 수 있습니다. 이 경우에는 `global.kubelet.tlsVerify`를 `false`로 설정하세요. +**참고**: minikube에서는 `Unable to detect the kubelet URL automatically` 오류가 발생할 수 있습니다. 이 경우 `global.kubelet.tlsVerify`를 `false`로 설정하세요. {{% /tab %}} {{% tab "Helm" %}} [Helm을 사용하여 Datadog Agent를 설치][1]한 경우 APM은 UDS 또는 Windows 명명된 파이프를 통해 **기본적으로 활성화**됩니다. -활성화하려면 `datadog-values.yaml`에서 `datadog.apm.socketEnabled`가 `true`로 설정되어 있는지 확인하세요. +이를 확인하려면 `datadog.apm.socketEnabled`가 `datadog-values.yaml`에서 `true`로 설정되어 있는지 확인합니다. ```yaml datadog: @@ -79,42 +81,42 @@ datadog: socketEnabled: true ``` -기본 설정은 호스트에 디렉토리를 생성하고 에이전트 내에 마운트합니다. 그런 다음 에이전트는 소켓 파일 `/var/run/datadog/apm.socket`을 생성하고 수신 대기합니다. 그러면 애플리케이션 포드도 유사한 방식으로 이 볼륨을 마운트하고 동일한 소켓에 쓸 수 있습니다. 또한, `datadog.apm.hostSocketPath`와 `datadog.apm.socketPath` 설정 값으로 경로와 소켓을 수정할 수 있습니다. +기본 구성은 호스트에 디렉터리를 생성하고 이를 Agent 내부에 마운트합니다. 그런 다음 Agent는 다음 소켓 파일 `/var/run/datadog/apm.socket`을 생성하고 수신 대기합니다. 애플리케이션 포드도 동일한 볼륨을 마운트하여 같은 소켓에 기록할 수 있습니다. 경로와 소켓 파일은 `datadog.apm.hostSocketPath` 및 `datadog.apm.socketPath` 구성 값을 통해 변경할 수 있습니다. ```yaml datadog: apm: - # 다음 값이 기본값입니다 + # the following values are default: socketEnabled: true hostSocketPath: /var/run/datadog/ socketPath: /var/run/datadog/apm.socket ``` -APM를 비활성화하려면 `datadog.apm.socketEnabled`를 `false`로 설정합니다. +APM을 비활성화하려면 `datadog.apm.socketEnabled`를 `false`로 설정하세요. {{% k8s-helm-redeploy %}} -**참고**: minikube에서는 `Unable to detect the kubelet URL automatically` 오류가 발생할 수 있습니다. 이 경우에는 `datadog.kubelet.tlsVerify`를 `false`로 설정하세요. +**참고**: minikube에서는 `Unable to detect the kubelet URL automatically` 오류가 발생할 수 있습니다. 이 경우 `datadog.kubelet.tlsVerify`를 `false`로 설정하세요. [1]: /ko/containers/kubernetes/installation?tab=helm#installation {{% /tab %}} {{< /tabs >}} -### 애플리케이션 포드를 설정하여 Datadog 에이전트에 트레이스를 제출합니다. +### Datadog Agent에 트레이스를 제출하도록 애플리케이션 포드 구성{#configure-your-application-pods-to-submit-traces-to-datadog-agent} {{< tabs >}} {{% tab "Datadog Admission Controller" %}} -Datadog 어드미션 컨트롤러는 애플리케이션 포드 설정을 간소화하는 Datadog 클러스터 에이전트의 구성 요소입니다. 자세한 내용은 [Datadog 어드미션 컨트롤러 도움말][1]을 참조하세요. +Datadog Admission Controller는 애플리케이션 포드 구성을 간소화하는 Datadog Cluster Agent의 구성 요소입니다. [Datadog Admission Controller 설명서][1]를 읽어 자세히 알아보세요. -Datadog 어드미션 컨트롤러를 사용하여 환경 변수를 주입하고 필요한 볼륨을 새 애플리케이션 포드에 마운트하여 포드 및 에이전트 트레이스 통신을 자동으로 설정할 수 있습니다. Datadog 에이전트에 트레이스를 제출하도록 애플리케이션을 자동으로 설정하는 방법은 [어드미션 컨트롤러를 사용하여 라이브러리 주입][2] 도움말을 참조하세요. +Datadog Admission Controller를 사용하여 환경 변수를 주입하고 새로운 애플리케이션 포드에 필요한 볼륨을 마운트하여 포드와 Agent 간의 트레이스 통신을 자동으로 구성합니다. [Admission Controller를 사용한 라이브러리 주입][2] 설명서를 읽어 애플리케이션을 자동으로 구성하여 Datadog Agent에 트레이스를 제출하는 방법을 알아보세요. [1]: /ko/agent/cluster_agent/admission_controller/ [2]: /ko/tracing/trace_collection/library_injection_local/ {{% /tab %}} -{{% tab "Unix Domain Socket (UDS)" %}} -UDS를 사용하여 Agent에 트레이스를 보내는 경우 (Agent 가 생성한) 소켓이 있는 호스트 디렉터리를 애플리케이션 컨테이너에 마운트하고 `DD_TRACE_AGENT_URL`을 사용하여 소켓 경로를 지정합니다. +{{% tab "Unix Domain Socket(UDS)" %}} +UDS를 사용하여 Agent에 트레이스를 보내는 경우 (Agent가 생성한) 소켓이 있는 호스트 디렉터리를 애플리케이션 컨테이너에 마운트하고 `DD_TRACE_AGENT_URL`을 사용하여 소켓 경로를 지정합니다. ```yaml apiVersion: apps/v1 @@ -137,14 +139,14 @@ kind: Deployment name: apmsocketpath ``` -### 애플리케이션 트레이서가 트레이스를 내보내도록 설정합니다: -트레이스를 수집하도록 Datadog Agent를 구성하고 트레이스를 보낼 *위치*에 대한 구성을 애플리케이션 파드에 제공합니다. 그런 다음 애플리케이션에 Datadog 트레이스를 설치하여 트레이스를 내보냅니다. 이 작업이 완료되면 트레이서는 트레이스를 적절한 `DD_TRACE_AGENT_URL` 엔드포인트로 보냅니다. +### 트레이스를 내보내도록 애플리케이션 SDK 구성: {#configure-your-application-sdks-to-emit-traces} +트레이스를 수집하도록 Datadog Agent를 구성하고 트레이스를 보낼 *위치*에 대한 구성을 애플리케이션 포드에 제공합니다. 그런 다음 애플리케이션에 Datadog SDK를 설치하여 트레이스를 내보냅니다. 이 작업이 완료되면 SDK는 트레이스를 적절한 `DD_TRACE_AGENT_URL` 엔드포인트로 보냅니다. {{% /tab %}} {{% tab TCP %}} -TCP (`:8126`)를 사용하여 에이전트에 트레이스를 전송하는 경우, 이 IP 주소를 애플리케이션 포드에 제공하세요. 자동으로 [Datadog 어드미션 컨트롤러][1]를 사용하거나 수동으로 하향 API를 사용하여 호스트 IP를 가져옵니다. 애플리케이션 컨테이너에는 `status.hostIP`을 가리키는 `DD_AGENT_HOST`환경 변수가 필요합니다: +TCP(`:8126`)를 사용하여 Agent로 트레이스를 전송하는 경우, 이 IP 주소를 애플리케이션 포드에 제공하세요. [Datadog Admission Controller][1]를 사용하여 자동으로 구성하거나 수동으로 하향 API를 사용하여 호스트 IP를 가져옵니다. 애플리케이션 컨테이너에는 `status.hostIP`를 가리키는 `DD_AGENT_HOST` 환경 변수가 필요합니다. ```yaml apiVersion: apps/v1 @@ -160,10 +162,10 @@ kind: Deployment fieldRef: fieldPath: status.hostIP ``` -**참고: **이 설정을 사용하려면 에이전트가 TCP를 통해 트레이스를 수신할 수 있어야 합니다. +**참고**: 이 구성을 사용하려면 Agent가 TCP를 통해 트레이스를 수신할 수 있어야 합니다. -### 애플리케이션 트레이서가 트레이스를 내보내도록 설정합니다: -트레이스를 수집하도록 Datadog Agent를 구성하고 트레이스를 보낼 *위치*에 대한 구성을 애플리케이션 파드에 제공합니다. 그런 다음 애플리케이션에 Datadog 트레이스를 설치하여 트레이스를 내보냅니다. 이 작업이 완료되면 트레이서는 트레이스를 적절한 `DD_AGENT_HOST` 엔드포인트로 자동으로 보냅니다. +### 트레이스를 내보내도록 애플리케이션 SDK 구성: {#configure-your-application-sdks-to-emit-traces-1} +트레이스를 수집하도록 Datadog Agent를 구성하고 트레이스를 보낼 *위치*에 대한 구성을 애플리케이션 포드에 제공합니다. 그런 다음 애플리케이션에 Datadog SDK를 설치하여 트레이스를 내보냅니다. 이 작업이 완료되면 SDK는 자동으로 트레이스를 적절한 `DD_AGENT_HOST` 엔드포인트로 보냅니다. [1]: /ko/agent/cluster_agent/admission_controller/ {{% /tab %}} @@ -172,13 +174,13 @@ kind: Deployment 더 많은 예제는 [언어별 APM 계측 도움말][2]을 참조하세요. -## 추가 설정 +## 추가 구성 {#additional-configuration} -### TCP를 통해 트레이스를 수신하도록 Datadog Agent 구성 +### TCP를 통해 트레이스를 수신하도록 Datadog Agent 구성{#configure-the-datadog-agent-to-accept-traces-over-tcp} {{< tabs >}} {{% tab "Datadog Operator" %}} -다음을 사용해 `datadog-agent.yaml`을 업데이트합니다. +`datadog-agent.yaml`을 다음으로 업데이트합니다. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -200,11 +202,11 @@ spec: {{% k8s-operator-redeploy %}} -**경고**: `hostPort` 파라미터는 호스트의 포트를 엽니다. 방화벽이 애플리케이션이나 신뢰할 수 있는 소스의 액세스만 허용하는지 확인하세요. 네트워크 플러그인이 `hostPorts`를 지원하지 않는 경우 Agent 파드 사양에 `hostNetwork: true`를 추가합니다. 이를 통해 호스트의 네트워크 네임스페이스를 Datadog Agent와 공유합니다. 또한 컨테이너에서 열려 있는 모든 포트가 호스트에서 열려 있음을 의미합니다. 포트가 호스트와 컨테이너 모두에서 사용되는 경우 충돌이 발생하고(동일한 네트워크 네임스페이스를 공유하므로) 파드가 시작되지 않습니다. 일부 Kubernetes 설치에서는 이를 허용하지 않습니다. +**경고**: `hostPort` 파라미터는 호스트에서 포트를 엽니다. 방화벽이 애플리케이션 또는 신뢰할 수 있는 소스에서만 액세스를 허용하도록 해야 합니다. 네트워크 플러그인이 `hostPorts`를 지원하지 않는 경우, Agent 포드 사양에 `hostNetwork: true`를 추가하세요. 이렇게 하면 호스트의 네트워크 네임스페이스를 Datadog Agent와 공유합니다. 또한 컨테이너에서 열린 모든 포트나 호스트에서 열린다는 의미이기도 합니다. 포트가 호스트 및 컨테이너 양쪽 모두에서 사용되는 경우, 충돌이 발생하며(동일한 네트워크 네임스페이스를 공유하기 때문에) 포드가 시작되지 않습니다. 일부 Kubernetes 설치는 이것을 허용하지 않습니다. {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` 파일을 다음 APM 구성으로 업데이트합니다. +`datadog-values.yaml` 파일을 다음 APM 설정으로 업데이트하세요. ```yaml datadog: @@ -215,15 +217,15 @@ datadog: {{% k8s-helm-redeploy %}} -**경고**: `datadog.apm.portEnabled` 파라미터는 호스트의 포트를 엽니다. 방화벽이 애플리케이션이나 신뢰할 수 있는 소스의 액세스만 허용하는지 확인하세요. 네트워크 플러그인이 `hostPorts`를 지원하지 않는 경우 Agent 파드 사양에 `hostNetwork: true`를 추가합니다. 이를 통해 호스트의 네트워크 네임스페이스를 Datadog Agent와 공유합니다. 또한 컨테이너에서 열려 있는 모든 포트가 호스트에서 열려 있음을 의미합니다. 포트가 호스트와 컨테이너 모두에서 사용되는 경우 충돌이 발생하고(동일한 네트워크 네임스페이스를 공유하므로) 파드가 시작되지 않습니다. 일부 Kubernetes 설치에서는 이를 허용하지 않습니다. +**경고**: `datadog.apm.portEnabled` 파라미터는 호스트에서 포트를 엽니다. 방화벽이 애플리케이션 또는 신뢰할 수 있는 소스에서만 액세스를 허용하도록 해야 합니다. 네트워크 플러그인이 `hostPorts`를 지원하지 않는 경우, Agent 포드 사양에 `hostNetwork: true`를 추가하세요. 이렇게 하면 호스트의 네트워크 네임스페이스를 Datadog Agent와 공유합니다. 또한 컨테이너에서 열린 모든 포트나 호스트에서 열린다는 의미이기도 합니다. 포트가 호스트 및 컨테이너 양쪽 모두에서 사용되는 경우, 충돌이 발생하며(동일한 네트워크 네임스페이스를 공유하기 때문에) 포드가 시작되지 않습니다. 일부 Kubernetes 설치는 이것을 허용하지 않습니다. {{% /tab %}} {{< /tabs >}} -## APM 환경 변수 +## APM 환경 변수 {#apm-environment-variables} {{< tabs >}} {{% tab "Datadog Operator" %}} -`override.nodeAgent.containers.trace-agent.env`에서 추가 APM 환경 변수를 설정합니다. +추가 APM 환경 변수를 `override.nodeAgent.containers.trace-agent.env` 아래에 설정하세요. {{< code-block lang="yaml" filename="datadog-agent.yaml" >}} apiVersion: datadoghq.com/v2alpha1 @@ -242,7 +244,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`agents.containers.traceAgent.env`에서 추가 APM 환경 변수를 설정합니다. +추가 APM 환경 변수를 `agents.containers.traceAgent.env` 아래에 설정하세요. {{< code-block lang="yaml" filename="datadog-values.yaml" >}} agents: containers: @@ -255,6 +257,7 @@ agents: {{% /tab %}} {{% tab "DaemonSet" %}} DaemonSet 또는 Deployment(Datadog Cluster Agent의 경우)에 환경 변수를 추가합니다. + ```yaml apiVersion: apps/v1 kind: DaemonSet @@ -278,34 +281,34 @@ APM 구성에 사용할 수 있는 환경 변수 목록: | 환경 변수 | 설명 | | -------------------- | ----------- | -| `DD_APM_ENABLED` | `true`Datadog로 설정하면 Datadog Agent가 트레이스 메트릭을 수신합니다.
    **기본값**: `true` (Agent 7.18+) | -| `DD_APM_ENV` | 수집된 트레이스에서 `env:` 태그를 설정합니다. | -| `DD_APM_RECEIVER_SOCKET` | UDS를 통해 추적하는 데 사용됩니다. 설정되면 유효한 소켓 파일을 가리켜야 합니다. | +| `DD_APM_ENABLED` | `true`로 설정하면 Datadog Agent가 트레이스 메트릭을 수신합니다.
    **기본값**: `true`(Agent 7.18 이상) | +| `DD_APM_ENV` | 수집된 트레이스에 `env:` 태그를 설정합니다. | +| `DD_APM_RECEIVER_SOCKET` | UDS를 통한 추적인 경우. 유효한 소켓 파일 경로를 지정해야 합니다. | | `DD_APM_RECEIVER_PORT` | TCP를 통한 추적인 경우 Datadog Agent의 트레이스 수신기가 수신하는 포트입니다.
    **기본값**: `8126` | -| `DD_APM_NON_LOCAL_TRAFFIC` | 다른 컨테이너에서 추적할 때 비로컬 트래픽을 허용합니다.
    **기본값**: `true` (Agent 7.18+) | -| `DD_APM_DD_URL` | 트레이스가 전송되는 Datadog API 엔드포인트: `https://trace.agent.{{< region-param key="dd_site" >}}`
    **기본값**: `https://trace.agent.datadoghq.com` | -| `DD_APM_TARGET_TPS` | 샘플링할 초당 타겟 트레이스
    **기본값**: `10` | -| `DD_APM_ERROR_TPS` | 초당 수신할 타겟 오류 트레이스 청크
    **기본값**: `10` | -| `DD_APM_MAX_EPS` | 샘플링할 초당 최대 APM 이벤트 수
    **기본값**: `200` | -| `DD_APM_MAX_MEMORY` | Datadog Agent의 메모리 사용량 목표. 이를 초과하면 API 속도가 수신 요청을 제한합니다.
    **기본값**: `500000000` | -| `DD_APM_MAX_CPU_PERCENT` | Datadog Agent가 사용하려는 CPU 비율. 이를 초과하면 API 속도가 수신 요청을 제한합니다.
    **기본값**: `50` | -| `DD_APM_FILTER_TAGS_REQUIRE` | 지정된 스팬 태그 및 값과 정확히 일치하는 루트 스팬이 있는 트레이스만 수집합니다.
    [APM에서 원치 않는 리소스 무시][11]를 참조하세요. | -| `DD_APM_FILTER_TAGS_REJECT` | 지정된 스팬 태그 및 값과 정확히 일치하는 루트 스팬이 있는 트레이스만 거부합니다.
    [APM에서 원치 않는 리소스 무시][11]를 참조하세요. | -| `DD_APM_REPLACE_TAGS` | [스팬의 태그에서 민감한 데이터를 삭제합니다][4]. | -| `DD_APM_IGNORE_RESOURCES` | Agent가 무시할 리소스를 구성합니다. 형식은 쉼표로 구분된 정규 표현식이어야 합니다.
    예: `GET /ignore-me,(GET\|POST) /and-also-me` | -| `DD_APM_LOG_FILE` | APM 로그가 기록되는 파일의 경로입니다. | -| `DD_APM_CONNECTION_LIMIT` | 30초 동안의 최대 연결 제한
    **기본값**: 2000 | -| `DD_APM_ADDITONAL_ENDPOINTS` | 여러 엔드포인트 및/또는 여러 API 키를 사용하여 데이터를 보냅니다.
    [Dual Shipping][12]을 참조하세요. | -| `DD_APM_DEBUG_PORT` | Trace Agent의 디버그 엔드포인트용 포트입니다. 서버를 비활성화하려면 `0`으로 설정합니다.
    **기본값**: `5012`. | -| `DD_BIND_HOST` | StatsD 및 수신자 호스트 이름을 설정합니다. | -| `DD_DOGSTATSD_PORT` | TCP를 통한 추적의 경우 DogStatsD 포트를 설정합니다. | -| `DD_ENV` | Agent가 내보낸 모든 데이터에 대한 전역 `env`을 설정합니다. 트레이스 데이터에 `env`가 없으면 이 변수가 사용됩니다. | -| `DD_HOSTNAME` | 자동 감지에 실패한 경우, 혹은 Datadog 클러스터 에이전트를 실행할 때 메트릭에 사용할 호스트 이름을 수동으로 설정하세요. | -| `DD_LOG_LEVEL` | 로깅 수준을 설정합니다.
    **값**: `trace`, `debug`, `info`, `warn`, `error`, `critical`, `off` | +| `DD_APM_NON_LOCAL_TRAFFIC` | 다른 컨테이너에서 추적할 때 로컬이 아닌 트래픽을 허용합니다.
    **기본값**: `true`(Agent 7.18 이상) | +| `DD_APM_DD_URL` | 트레이스가 전송되는 Datadog API 엔드포인트: `https://trace.agent.{{< region-param key="dd_site" >}}`.
    **Default**: `https://trace.agent.datadoghq.com` | +| `DD_APM_TARGET_TPS` | The target traces per second to sample.
    **Default**: `10` | +| `DD_APM_ERROR_TPS` | The target error trace chunks to receive per second.
    **Default**: `10` | +| `DD_APM_MAX_EPS` | Maximum number of APM events per second to sample.
    **Default**: `200` | +| `DD_APM_MAX_MEMORY` | What the Datadog Agent aims to use in terms of memory. If surpassed, the API rate limits incoming requests.
    **Default**: `500000000` | +| `DD_APM_MAX_CPU_PERCENT` | The CPU percentage that the Datadog Agent aims to use. If surpassed, the API rate limits incoming requests.
    **Default**: `50` | +| `DD_APM_FILTER_TAGS_REQUIRE` | Collects only traces that have root spans with an exact match for the specified span tags and values.
    See [Ignoring unwanted resources in APM][11]. | +| `DD_APM_FILTER_TAGS_REJECT` | Rejects traces that have root spans with an exact match for the specified span tags and values.
    See [Ignoring unwanted resources in APM][11]. | +| `DD_APM_REPLACE_TAGS` | [Scrub sensitive data from your span's tags][4]. | +| `DD_APM_IGNORE_RESOURCES` | Configure resources for the Agent to ignore. Format should be comma separated, regular expressions.
    For example: `GET /ignore-me,(GET\|POST) /and-also-me` | +| `DD_APM_LOG_FILE` | Path to file where APM logs are written. | +| `DD_APM_CONNECTION_LIMIT` | Maximum connection limit for a 30 second time window.
    **Default**: 2000 | +| `DD_APM_ADDITONAL_ENDPOINTS` | Send data to multiple endpoints and/or with multiple API keys.
    See [Dual Shipping][12]. | +| `DD_APM_DEBUG_PORT` | Port for the debug endpoints for the Trace Agent. Set to `0` to disable the server.
    **Default**: `5012`. | +| `DD_BIND_HOST` | Set the StatsD and receiver hostname. | +| `DD_DOGSTATSD_PORT` | For tracing over TCP, set the DogStatsD port. | +| `DD_ENV` | Sets the global `env` for all data emitted by the Agent. If `env` is not present in your trace data, this variable is used. | +| `DD_HOSTNAME` | Manually set the hostname to use for metrics if autodetection fails, or when running the Datadog Cluster Agent. | +| `DD_LOG_LEVEL` | Set the logging level.
    **Values**: `trace`, `debug`, `info`, `warn`, `error`, `critical`, `off` | | `DD_PROXY_HTTPS` | 사용할 프록시의 URL을 설정합니다. | -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -321,4 +324,5 @@ APM 구성에 사용할 수 있는 환경 변수 목록: [9]: /ko/tracing/guide/setting_up_apm_with_kubernetes_service/ [10]: /ko/tracing [11]: /ko/tracing/guide/ignoring_apm_resources/?tab=kubernetes -[12]: /ko/agent/configuration/dual-shipping/ \ No newline at end of file +[12]: /ko/agent/configuration/dual-shipping/ +[13]: /ko/tracing/trace_collection/single-step-apm/kubernetes/ \ No newline at end of file diff --git a/content/ko/getting_started/integrations/azure.md b/content/ko/getting_started/integrations/azure.md new file mode 100644 index 00000000000..05ff97d5448 --- /dev/null +++ b/content/ko/getting_started/integrations/azure.md @@ -0,0 +1,437 @@ +--- +aliases: +- /ko/integrations/guide/azure-manual-setup/ +- /ko/integrations/guide/azure-programmatic-management/ +description: Azure 앱 등록 통합 옵션을 사용하여 Microsoft Azure를 Datadog에 연결합니다. 메트릭 수집, 로그 포워딩 + 및 Agent 설치를 구성합니다. +further_reading: +- link: https://www.datadoghq.com/blog/azure-integration-onboarding/ + tag: 블로그 + text: 가이드 온보딩을 통해 Azure 통합 설정을 가속화합니다. +- link: https://docs.datadoghq.com/integrations/azure/#overview + tag: 설명서 + text: Microsoft Azure 통합 +- link: https://docs.datadoghq.com/agent/guide/why-should-i-install-the-agent-on-my-cloud-instances/ + tag: 가이드 + text: 클라우드 인스턴스에 Datadog Agent를 설치해야 하는 이유 +title: Azure 시작 +--- +## 개요 {#overview} + +Datadog은 Azure 통합을 위한 여러 구성 옵션을 제공합니다. 이 가이드는 Azure를 시작하기 위한 다양한 옵션에 대한 개요를 제공하며, 특정 사용 사례를 다루는 Azure 리소스 및 튜토리얼에 대한 링크를 포함합니다. + +## 전제 조건 {#prerequisites} + +[Datadog 계정][2]이 없다면 생성하세요. + +{{% collapse-content title="통합 설정에 필요한 권한" level="h4" expanded=false id="required-permissions" %}} + +### Azure {#in-azure} + +Microsoft Entra ID 사용자는 다음 권한이 필요합니다. + +#### 앱 등록을 생성할 권한 {#permission-to-create-an-app-registration} + +**사용자가 다음 중 하나**의 조건을 충족해야 합니다. + +- `Users can register applications` 옵션이 `Yes`로 설정되었습니다. +- 사용자가 [애플리케이션 개발자][38] 역할을 보유합니다. + +##### 구독 내의 관리자 역할 {#admin-roles-within-your-subscriptions} + +모니터링하려는 구독 내에서 다음 중 하나를 보유해야 합니다. + +- {{< ui >}}Owner{{< /ui >}} 역할 +- {{< ui >}}Contributor{{< /ui >}} 및 {{< ui >}}User Access Admin{{< /ui >}} 역할 모두 + +#### Graph API 권한에 대한 추가 및 동의 권한 {#permission-to-add-and-grant-consent-for-graph-api-permissions} + +[권한 있는 역할 관리자 역할][25]에는 필요한 권한이 포함되어 있습니다. + +### Datadog {#in-datadog} + +`Datadog Admin Role`, 또는 `azure_configurations_manage` 권한이 있는 다른 역할입니다. + +{{% /collapse-content %}} + +{{< site-region region="us3" >}} + +
    Cloud Cost Management로그 아카이브의 경우 앱 등록 설정 방법이 필요합니다. Azure 네이티브 통합을 사용하는 Datadog 계정의 경우, 이 페이지의 설정 단계를 따라 앱 등록을 생성하세요. 구독이 두 방법 모두를 통해 연결된 경우, Azure 통합 타일에 중복 경고가 표시됩니다. 이 경고는 Cloud Cost Management 및 로그 아카이브의 경우 안전하게 무시할 수 있습니다. +
    + +{{< /site-region >}} + + +## 설정 {#setup} + +이 페이지의 지침을 따라 모든 Datadog 사이트에서 사용할 수 있는 앱 등록을 통해 {{< ui >}}Azure integration{{< /ui >}}을 설정하세요. + +{{< img src="/getting_started/integrations/azure/GSwAzure_siteSelector.mp4" alt="US3 사이트의 사이트 선택기" video=true >}} + +{{% collapse-content title="빠른 시작(권장)" level="h4" expanded=false id="quickstart-setup" %}} + +### 다음에 해당하는 경우 빠른 시작 설정 방법 선택 {#choose-the-quickstart-setup-method-if} + +- Datadog을 처음 설정합니다. +- UI 기반 워크플로를 선호하고 필요한 모니터링 권한으로 서비스 주체를 생성하는 데 걸리는 시간을 최소화하고자 합니다. +- 스크립트나 CI/CD 파이프라인에서 설정 단계를 자동화하고자 합니다. + +### 지침 {#instructions} + +1. Azure 통합 타일에서 {{< ui >}}+ Add New App registration{{< /ui >}}을 클릭한 다음 {{< ui >}}Quickstart{{< /ui >}}을 선택합니다. +2. 설정 스크립트를 복사하고 Azure 클라우드 셸에서 실행합니다. +3. Datadog UI로 돌아갑니다. 설정 스크립트 오른쪽 상단에서 {{< ui >}}CONNECTED{{< /ui >}}를 확인합니다. +4. 데이터를 수집할 구독 및 관리 그룹을 선택합니다. +5. 필요 시, 메트릭 수집 토글을 클릭하여 Azure에서 모든 메트릭 수집을 비활성화할 수 있습니다. {{< ui >}}Advanced Configuration{{< /ui >}}드롭다운을 확장하여 메트릭을 필터링할 수도 있습니다. + - 리소스 공급자 + - 태그 + - 호스트 + - 앱 서비스 플랜 + - 컨테이너 앱 + +또한 옵션을 클릭하여 [Azure Application Insights][36]에서 사용자 정의 메트릭 수집을 활성화하고, 사용량 메트릭 수집을 비활성화할 수 있습니다. + +6. 필요 시, 리소스 수집 토글을 클릭하여 Azure 리소스의 구성 정보 수집을 비활성화할 수 있습니다. +7. 로그 수집을 활성화하여 로그를 Datadog으로 전달하는 데 필요한 서비스 및 진단 설정을 설정 및 구성합니다. + 1. 테넌트에 이미 로그 포워더가 존재하는 경우, 그 범위를 확장하도록 수정됩니다. 변경된 설정은 기존 및 새로 선택된 구독 또는 관리 그룹에 적용됩니다. + 2. 새 로그 포워더를 생성하는 경우 + 1. 로그 포워더 컨트롤 플레인을 저장할 리소스 그룹 이름을 입력합니다. + 2. 로그 포워딩 오케스트레이션(LFO)을 위한 컨트롤 플레인 구독을 선택합니다. + 3. 컨트롤 플레인을 위한 리전을 선택합니다.
    + **참고**: 리소스 그룹 이름, 컨트롤 플레인 구독 및 리전 필드는 새 로그 포워더를 생성할 때만 표시됩니다. + 3. 필요 시, {{< ui >}}Log filtering options{{< /ui >}}를 열어 태그별로 로그를 필터링하거나, 정규식을 사용하여 특정 정보(예: PII)를 필터링할 수 있습니다. + + 이 아키텍처에 대한 자세한 정보는 자동 로그 포워딩 가이드의 [아키텍처 섹션][34]을 참조하세요. + +8. {{< ui >}}Confirm{{< /ui >}}을 클릭해 설정을 마칩니다. + +{{% /collapse-content %}} + +{{% collapse-content title="Terraform" expanded=false level="h4" id="terraform-setup" %}} + +### 다음에 해당하는 경우 Terraform 설정 방법 선택 {#choose-the-terraform-setup-method-if} + +- 코드형 인프라스트럭처를 관리하고 Datadog Azure 통합에 대한 버전 관리를 유지하려는 경우 +- 재사용 가능한 공급자 블록으로 여러 테넌트 또는 구독을 일관되게 구성해야 하는 경우 +- Terraform 관리 환경에 적합한 반복 가능하고 감사 가능한 배포 프로세스를 원하는 경우 + +### 지침 {#instructions-1} + +다음 단계에 따라 [Terraform][23]을 통해 Datadog Azure 통합을 배포하세요. + +{{< tabs >}} +{{% tab "앱 등록 생성" %}} + +1. [Azure 통합 타일][100]에서 {{< ui >}}+ Add New App registration{{< /ui >}}을 클릭한 다음 {{< ui >}}Terraform{{< /ui >}}을 선택합니다. +2. 데이터를 수집할 구독 및 관리 그룹을 선택합니다. +3. 필요 시, 메트릭 수집 토글을 클릭하여 Azure에서 모든 메트릭 수집을 비활성화할 수 있습니다. {{< ui >}}Advanced Configuration{{< /ui >}}드롭다운을 확장하여 메트릭을 필터링할 수도 있습니다. + - 리소스 공급자 + - 태그 + - 호스트 + - 앱 서비스 플랜 + - 컨테이너 앱 + + 또한 옵션을 클릭하여 [Azure Application Insights][101]에서 사용자 정의 메트릭 수집을 활성화하고, 사용량 메트릭 수집을 비활성화할 수 있습니다. +4. 필요 시, 리소스 수집 토글을 클릭하여 Azure 리소스의 구성 정보 수집을 비활성화할 수 있습니다. +5. 다음과 같이 로그 수집을 구성합니다. + - 테넌트에 이미 로그 포워더가 존재하는 경우, 새로운 구독 또는 관리 그룹을 포함하도록 범위를 확장합니다. + - 새 로그 포워더를 생성하는 경우 + 1. 로그 포워더 컨트롤 플레인을 저장할 리소스 그룹 이름을 입력합니다. + 1. 로그 포워딩 오케스트레이션(LFO)을 위한 컨트롤 플레인 구독을 선택합니다. + 1. 컨트롤 플레인을 위한 리전을 선택합니다. + + 이 아키텍처에 대한 자세한 정보는 자동 로그 포워딩 가이드의 [아키텍처 섹션][102]을 참조하세요. +6. {{< ui >}}Initialize and apply the Terraform{{< /ui >}} 아래의 명령을 복사하여 실행합니다. + +[100]: https://app.datadoghq.com/integrations/azure/ +[101]: https://learn.microsoft.com/azure/azure-monitor/app/app-insights-overview +[102]: /ko/logs/guide/azure-automated-log-forwarding/#architecture +{{% /tab %}} + +{{% tab "기존 앱 등록 사용" %}} + + + +- 이미 제공된 범위(구독 또는 관리 그룹)를 모니터링하기 위해 Datadog의 {{< ui >}}Monitoring Reader{{< /ui >}} 역할로 구성된 앱 등록이 있으며, 새로운 리소스를 생성하고 싶지 않은 경우입니다. + +1. Terraform 구성을 통해 Datadog API와 상호 작용할 수 있도록 [Datadog Terraform 공급자][200]를 구성합니다. +2. 아래 예시를 기본 템플릿으로 사용하여 Terraform 구성 파일을 설정합니다. 변경 사항을 적용하기 전에 다음의 파라미터를 업데이트해야 합니다. + * `tenant_name`: 귀하의 Azure Active Directory ID입니다. + * `client_id`: 귀하의 Azure 애플리케이션(클라이언트) ID입니다. + * `client_secret`: 귀하의 Azure 웹 애플리케이션 보안 키입니다. + + 더 많은 예시 사용법과 옵션 파라미터의 전체 목록 및 추가 Datadog 리소스를 확인하려면 Terraform 레지스트리의 [Datadog Azure 통합 리소스][201] 페이지를 참조하세요. + +{{< code-block lang="hcl" filename="" disable_copy="false" collapsible="false" >}} + +resource "datadog_integration_azure" "sandbox" { + tenant_name = "" + client_id = "" + client_secret = "" +} + +{{< /code-block >}} + +3. `terraform apply`을 실행합니다. 데이터 수집 시작까지 최대 10분간 기다린 후, 기본 제공 Azure 개요 대시보드에서 Azure 리소스가 전송한 메트릭을 확인합니다. + +[200]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs +[201]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_azure +{{% /tab %}} +{{< /tabs >}} + +#### 여러 구독 또는 테넌트 관리 {#managing-multiple-subscriptions-or-tenants} + +여러 구독 또는 테넌트에서 별칭이 있는 다양한 공급자 블록을 사용하여 Terraform 리소스를 관리할 수 있습니다. 자세한 내용을 확인하려면 [공급자 설정][22]을 참조하세요. + +### 통합 상태 모니터링 {#monitor-the-integration-status} + +통합이 구성된 후, Datadog은 Azure 환경에서 중요한 모니터링 데이터를 수집하기 위해 Azure API에 대한 연속적인 호출을 실행합니다. 해당 호출은 때로 오류를 반환합니다(예: 제공된 자격 증명이 만료된 경우). 이러한 오류는 모니터링 데이터를 수집하는 Datadog의 기능을 방해하거나 차단할 수 있습니다. + +중요한 오류가 발생하면 Azure 통합은 Datadog Event Explorer에서 이벤트를 생성하고 이를 5분마다 다시 게시합니다. 이러한 이벤트가 감지되면 이벤트 모니터링을 트리거하여 해당 팀에 알리도록 이벤트 모니터링을 구성할 수 있습니다. + +Datadog은 시작하는 데 도움이 되는 모니터링 템플릿을 제공합니다. 모니터링 템플릿을 사용하려면 다음 단계를 따르세요. + +1. Datadog에서 {{< ui >}}Monitors{{< /ui >}}로 이동하여 {{< ui >}}Browse Templates{{< /ui >}} 버튼을 클릭합니다. +2. [[Azure] 통합 오류][26]라는 제목의 모니터링 템플릿을 검색하고 선택합니다. +3. 검색 쿼리 또는 경보 조건을 원하는 대로 수정합니다. 기본적으로 모니터링은 새로운 오류가 감지될 때마다 트리거되며 지난 15분간 오류가 감지되지 않으면 해제됩니다. +4. 원하는 대로 알림 및 다시 알림 메시지를 업데이트합니다. 이벤트 자체에는 해당 이벤트 관련 정보가 포함되어 있으며, 이는 알림에 자동으로 포함됩니다. 범위, 오류 응답, 일반적인 해결 단계에 대한 자세한 정보가 여기에 포함되어 있습니다. +5. 선호하는 채널(이메일, Slack, PagerDuty 등)을 통해 [알림을 구성][27]하여 Azure 데이터 수집에 영향을 미치는 문제에 대해 팀에 알려주세요. + +{{% /collapse-content %}} + +{{% collapse-content title="기존 앱 등록 사용" level="h4" expanded=false id="existing-app-registration-setup" %}} + +### 다음에 해당하는 경우 기존 앱 등록 설정 방법 선택 {#choose-the-existing-app-registration-setup-method-if} + +- 이미 제공된 범위(구독 또는 관리 그룹)를 모니터링하기 위해 Datadog의 {{< ui >}}Monitoring Reader{{< /ui >}} 역할로 구성된 앱 등록이 있으며, 새로운 리소스를 생성하고 싶지 않은 경우입니다. + +Datadog을 위한 앱 등록을 설정해야 하는 경우, [빠른 시작](#quickstart-setup) 또는 [Terraform](#terraform-setup) 설정 방법을 참조하세요. + +### 지침 {#instructions-2} + +1. [Datadog Azure 통합 타일][20]에서 {{< ui >}}Add Existing{{< /ui >}}을 선택합니다. +2. {{< ui >}}Tenant ID{{< /ui >}}필드에 디렉토리(테넌트) ID를 붙여넣습니다. +3. {{< ui >}}Client ID{{< /ui >}}필드에 애플리케이션(클라이언트) ID를 붙여넣습니다. +4. {{< ui >}}Client Secret Value{{< /ui >}}필드에 앱 등록의 클라이언트 암호를 붙여넣습니다. +5. 필요 시, {{< ui >}}Monitor Automuting{{< /ui >}} 토글을 클릭해 모니터링 자동 해제를 비활성화하합니다. +6. 필요 시, 메트릭 수집 토글을 클릭하여 Azure에서 모든 메트릭 수집을 비활성화할 수 있습니다. {{< ui >}}Advanced Configuration{{< /ui >}}드롭다운을 확장하여 메트릭을 필터링할 수도 있습니다. + - 리소스 공급자 + - 태그 + - 호스트 + - 앱 서비스 플랜 + - 컨테이너 앱 + +또한 옵션을 클릭하여 [Azure Application Insights][36]에서 사용자 정의 메트릭 수집을 활성화하고, 사용량 메트릭 수집을 비활성화할 수 있습니다. + +6. 필요 시, 리소스 수집 토글을 클릭하여 Azure 리소스의 구성 정보 수집을 비활성화할 수 있습니다. +7. {{< ui >}}Create Configuration{{< /ui >}}을 클릭합니다. + +{{% /collapse-content %}} + +## 메트릭 수집 {#metric-collection} + +Datadog의 Azure 통합은 [Azure Monitor][8]에서 모든 메트릭을 수집하도록 설계되었습니다. [통합 페이지][9]에는 특정 Azure 서비스에 대한 추가 기본 제공 대시보드 및 모니터링을 제공하는 미리 정의된 하위 통합 목록이 나와 있습니다. 이러한 통합 중 많은 부분은 Datadog이 Azure 계정에서 들어오는 데이터를 인식할 때 기본적으로 설치됩니다. 그러나 Datadog은 전용 하위 통합 타일이 없더라도 **Azure Monitor 지원 리소스**에서 메트릭을 수집할 수 있습니다. + +Azure 메트릭은 Datadog 플랫폼의 메트릭 요약 페이지에서 `Metrics > Summary`로 이동하고 `Azure`를 검색하여 찾을 수 있습니다. + +{{< img src="/getting_started/integrations/azure/GSwAzure_metricExplorer.png" alt="메트릭 요약 이미지" style="width:100%;" >}} + +### 메트릭 {#resource-tag-filtering-for-metrics}에 대한 리소스 태그 필터링 + +태그 필터를 사용하여 Datadog에서 메트릭을 수집할 Azure 리소스를 관리하세요. [Azure 통합 타일][20]의 {{< ui >}}Configuration{{< /ui >}} 탭에서 태그 필터를 구성할 수 있습니다. 태그 필터는 `key:value` 형식의 태그를 쉼표로 구분한 목록입니다. 필터의 태그 중 하나 이상과 일치하는 리소스만 메트릭이 수집됩니다. + +태그 필터에서 다음과 같은 와일드카드를 사용할 수 있습니다. +- `?` - 단일 문자를 일치시킵니다. +- `*` - 여러 문자를 일치시킵니다. + +주어진 태그가 있는 리소스를 제외하려면 태그 앞에 `!`를 붙이세요. 제외는 포함보다 우선합니다. 목록의 태그 중 하나와 리소스가 일치하는 경우에는 필터와 매칭됩니다. + +예: `datadog:monitored,env:production,!plan_tier:basic,instance-type:c1.*` + +이 필터는 `datadog:monitored` 또는 `env:production`으로 태그가 지정된 리소스에서 메트릭을 수집하고, `plan_tier:basic`으로 태그가 지정된 리소스는 제외하며, `instance-type` 태그가 `c1.*`과 일치하는 리소스를 포함합니다. + +태그 필터가 설정되지 않은 경우, Datadog은 모든 Azure 리소스의 메트릭을 수집합니다. + +## 로그 수집 활성화 {#enable-log-collection} + +자동 로그 포워딩 기능을 사용하여 로그를 Datadog으로 포워딩하는 데 필요한 서비스 및 진단 설정을 설정하고 구성할 수 있습니다. 테넌트에 자동 로그 포워딩 컨트롤 플레인이 이미 존재하는 경우, 이 흐름은 이를 수정하고 선택한 구독 또는 관리 그룹을 포함하도록 범위를 확장합니다. 자세한 내용은 [Azure 자동 로그 포워딩 설정][19]을 참조하세요. + +Datadog은 Agent 또는 DaemonSet를 사용하여 Azure에서 로그를 전송할 것을 권장합니다. 직접 스트리밍이 불가능한 경우, [Azure 통합][20]의 {{< ui >}}Configure Log Forwarding{{< /ui >}} 흐름을 사용하여 Datadog에서 자동 로그 포워딩을 직접 설정하고 관리하세요. [Azure Resource Manager(ARM) 템플릿][19]을 사용하여 로그 포워딩을 배포할 수도 있습니다. 두 방법 모두 로그 포워딩 서비스를 자동으로 관리하고 확장합니다. + +{{% collapse-content title="자동화됨(권장)" level="h4" expanded=false id="automated-log-forwarding-setup" %}} + +### 다음에 해당하는 경우 자동 로그 포워딩 설정 선택 {#choose-the-automated-log-forwarding-setup-method-if} + +- [빠른 시작 설정 방법](#azure-quickstart-setup)을 통해 로그를 미리 설정하지 않은 경우 +- UI 기반 워크플로를 선호하고 필요한 모니터링 권한으로 서비스 주체를 생성하는 데 걸리는 시간을 최소화하고자 합니다. +- 스크립트나 CI/CD 파이프라인에서 설정 단계를 자동화하고자 합니다. + +### 지침 {#instructions-3} + +#### 로그 포워딩 구성(권장) {#configure-log-forwarding-recommended} + +{{< ui >}}Configure Log Forwarding{{< /ui >}} 흐름을 사용하여 Datadog에서 새로운 로그 포워더를 설정하거나 기존 로그 포워더를 관리하세요. + +1. Datadog에서 [{{< ui >}}Integrations{{< /ui >}} > {{< ui >}}Azure{{< /ui >}}][20]로 이동합니다. +1. {{< ui >}}Configure Log Forwarding{{< /ui >}}을 클릭합니다. +1. 제공된 명령을 복사하여 Azure Cloud Shell에 붙여넣습니다. +1. 로그를 포워딩할 구독을 선택합니다. +1. 필요 시, 로그 필터를 추가하거나 제거합니다. +1. {{< ui >}}Confirm{{< /ui >}}을 클릭합니다. + +자세한 내용은 [Azure 자동 로그 포워딩 설정][19]을 참조하세요. + +#### ARM 템플릿 {#arm-template} + +또는 Azure Resource Manager(ARM) 템플릿을 사용하여 로그 포워딩을 배포할 수도 있습니다. + +1. Azure에서 [자동 로그 포워딩 ARM 템플릿][29]을 엽니다. +1. Azure 프로젝트 및 인스턴스 세부정보를 [기본 탭][30]에서 구성합니다. +1. [Datadog 구성 탭][31]에서 Datadog 자격 증명을 입력합니다. +1. [배포 탭][32]에서 배포 경고를 확인합니다. +1. [검토 + 생성 탭][33]에서 배포 프로세스를 시작합니다. + +{{< site-region region="us3" >}} + +
    로그 아카이브의 경우 앱 등록 설정 방법이 필요합니다. Azure 네이티브 통합을 사용하는 Datadog 계정의 경우, 이 페이지의 단계를 따라 앱 등록을 생성하세요. +
    + +{{< /site-region >}} + +자세한 내용은 [Azure 자동 로그 포워딩 아키텍처][34]를 참조하세요. + +{{% /collapse-content %}} + +{{% collapse-content title="컨테이너 앱" level="h4" expanded=false id="container-app-log-forwarding-setup" %}} + +### 다음에 해당하는 경우 컨테이너 앱 로그 포워딩 방법 선택 {#choose-the-container-app-log-forwarding-method-if} + +- 로그를 포워딩하려는 리소스에서 [진단 설정][53]을 수동으로 구성하는 것을 선호하는 경우 + +## 지침 {#instructions-4} + +1. 아래의 버튼을 클릭하고 Azure 포털에서 양식을 작성합니다. Datadog은 Datadog 계정으로 로그를 포워딩하는 데 필요한 Azure 리소스를 자동으로 배포합니다. + + [![Azure로 배포](https://aka.ms/deploytoazurebutton)][52] + +2. 템플릿 배포가 완료된 후, 각 로그 소스에 대해 [진단 설정][53]을 구성하여 Azure 플랫폼 로그(리소스 로그 포함)를 배포 중에 생성된 스토리지 계정으로 전송합니다. + +**참고**: 리소스는 동일한 Azure 리전의 스토리지 계정으로만 스트리밍할 수 있습니다. + +{{% /collapse-content %}} + +{{% azure-log-archiving %}} + +### 로그에 대한 리소스 태그 필터링 {#resource-tag-filtering-for-logs} + +태그 필터를 사용하여 Datadog으로 로그를 포워딩할 Azure 리소스를 관리하세요. 로그에 대한 태그 필터를 구성하려면 [Azure 통합 타일][20]에서 {{< ui >}}Configure Log Forwarding{{< /ui >}}을 클릭하고 흐름을 따르세요. 태그 필터는 `key:value` 형식의 태그를 쉼표로 구분한 목록입니다. 필터의 태그 중 하나 이상과 일치하는 리소스만 로그가 포워딩됩니다. + +태그 필터에서 다음과 같은 와일드카드를 사용할 수 있습니다. +- `?` - 단일 문자를 일치시킵니다. +- `*` - 여러 문자를 일치시킵니다. + +주어진 태그가 있는 리소스를 제외하려면 태그 앞에 `!`를 붙이세요. 제외는 포함보다 우선합니다. 목록의 태그 중 하나와 리소스가 일치하는 경우에는 필터와 매칭됩니다. + +예: `datadog:monitored,env:production,!plan_tier:basic,instance-type:c1.*` + +이 필터는 `datadog:monitored` 또는 `env:production`으로 태그된 리소스에서 로그를 포워딩하고, `plan_tier:basic`으로 태그된 리소스는 제외하며, `c1.*`과 일치하는 `instance-type` 태그가 있는 리소스를 포함합니다. + +태그 필터가 설정되지 않은 경우, Datadog은 모든 Azure 리소스의 로그를 포워딩합니다. + +## Datadog 플랫폼에서 더 많은 것을 얻으세요 {#get-more-from-the-datadog-platform} + +### 애플리케이션에 대한 더 나은 가시성을 위해 Agent 설치 {#install-the-agent-for-greater-visibility-into-your-application} + +Azure 통합을 설정한 후, Datadog 크롤러가 자동으로 Azure 메트릭을 수집하지만 [Datadog Agent][1]를 사용하면 Azure 인스턴스에 대한 더 나은 가시성을 확보할 수 있습니다. 환경에 Datadog Agent를 설치하면 다음을 포함하되 이에 국한되지 않는 추가 데이터를 수집할 수 있습니다. +- **애플리케이션 상태** +- **프로세스 활용률** +- **시스템 수준 메트릭** + +내장된 StatsD 클라이언트를 사용하여 애플리케이션에서 사용자 정의 메트릭을 전송하고 애플리케이션, 사용자 및 시스템의 상황을 상호 연결할 수도 있습니다. [_클라우드 인스턴스에 Datadog Agent를 설치해야 하는 이유_][15]의 가이드를 참조하여 인스턴스에 Datadog Agent를 설치하는 경우의 이점에 대해 자세히 알아보세요. + +Azure 확장 프로그램을 사용하여 Windows VM, Linux x64 VM 및 Linux ARM 기반 VM에 Datadog Agent를 설치하세요. AKS 클러스터 확장 프로그램을 사용하여 Agent를 AKS 클러스터에 배포할 수도 있습니다. + +{{< tabs >}} +{{% tab "VM 확장 프로그램" %}} + +1. [Azure 포털][4]에서 적절한 VM을 선택합니다. +2. 왼쪽 사이드바에서 {{< ui >}}Settings{{< /ui >}} 아래의 {{< ui >}}Extensions + applications{{< /ui >}}를 선택합니다. +3. {{< ui >}}+ Add{{< /ui >}}를 클릭합니다. +4. {{< ui >}}Datadog Agent{{< /ui >}} 확장 프로그램을 검색하여 선택합니다. +5. {{< ui >}}Next{{< /ui >}}를 클릭합니다. +6. [Datadog API 키][2]와 [Datadog 사이트][1]를 입력하고 {{< ui >}}OK{{< /ui >}}를 클릭합니다. + +운영 체제 또는 CI 및 CD 도구에 따라 Agent를 설치하려면 [Datadog Agent 설치 지침][3]을 참조하세요. + +**참고**: Azure 확장을 사용하여 Datadog Agent를 설치할 때 도메인 컨트롤러는 지원되지 않습니다. + +[1]: /ko/getting_started/site/ +[2]: https://app.datadoghq.com/organization-settings/api-keys +[3]: https://app.datadoghq.com/account/settings/agent/latest +[4]: https://portal.azure.com +{{% /tab %}} + +{{% tab "AKS 클러스터 확장 프로그램" %}} + +Datadog AKS 클러스터 확장 프로그램으로 복잡한 타사 관리 툴을 사용하지 않고도 Azure AKS 내에서 Datadog Agent를 기본 배포할 수 있습니다. AKS 클러스터 확장 프로그램을 사용하여 Datadog Agent를 설치하려면 다음 단계를 따르세요. + +1. Azure 포털에서 AKS 클러스터로 이동합니다. +2. AKS 클러스터의 왼쪽 사이드바에서 {{< ui >}}Extensions + applications{{< /ui >}} 아래의 {{< ui >}}Settings{{< /ui >}}를 선택합니다. +3. {{< ui >}}Datadog AKS Cluster Extension{{< /ui >}}를 검색하여 선택합니다. +4. {{< ui >}}Create{{< /ui >}}을 클릭하고 [Datadog 자격 증명][1] 및 [Datadog 사이트][2]를 사용하는 타일의 지침을 따릅니다. + +[1]: /ko/account_management/api-app-keys/ +[2]: /ko/getting_started/site/ +{{% /tab %}} +{{< /tabs >}} + +## 문제 해결 {#troubleshooting} + +Azure 고급 구성 가이드의 [문제 해결][16]을 참조하세요. + +도움이 더 필요하신가요? [Datadog 지원팀][17]에 문의하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/getting_started/agent/ +[2]: https://www.datadoghq.com/ +[5]: https://learn.microsoft.com/azure/event-hubs/event-hubs-create +[8]: https://learn.microsoft.com/azure/azure-monitor/reference/supported-metrics/metrics-index +[9]: /ko/integrations/#cat-azure +[15]: /ko/agent/guide/why-should-i-install-the-agent-on-my-cloud-instances/ +[16]: /ko/integrations/guide/azure-advanced-configuration/#azure-integration-troubleshooting +[17]: /ko/help/ +[19]: /ko/logs/guide/azure-automated-log-forwarding/ +[20]: https://app.datadoghq.com/integrations/azure +[21]: https://learn.microsoft.com/cli/azure/ad/sp?view=azure-cli-latest +[22]: https://developer.hashicorp.com/terraform/language/providers/configuration +[23]: https://www.terraform.io +[25]: https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#privileged-role-administrator +[26]: https://app.datadoghq.com/monitors/templates?q=Azure%20%22integration%20errors%22&origination=all&p=1 +[27]: /ko/monitors/notify/#configure-notifications-and-automations +[28]: /ko/integrations/guide/azure-advanced-configuration/#enable-diagnostics +[29]: https://portal.azure.com/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2FcreateUiDefinition.json +[30]: /ko/logs/guide/azure-automated-log-forwarding/#basics +[31]: /ko/logs/guide/azure-automated-log-forwarding/#datadog-configuration +[32]: /ko/logs/guide/azure-automated-log-forwarding/#deployment +[33]: /ko/logs/guide/azure-automated-log-forwarding/#review--create +[34]: /ko/logs/guide/azure-automated-log-forwarding/#architecture +[35]: /ko/integrations/guide/azure-advanced-configuration/#automated-log-collection +[36]: https://learn.microsoft.com/azure/azure-monitor/app/app-insights-overview +[38]: https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#application-developer +[39]: https://azure.microsoft.com/services/storage/blobs/ +[40]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-portal +[41]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-storage-explorer +[42]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-cli +[43]: https://docs.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-powershell +[44]: https://learn.microsoft.com/training/modules/store-app-data-with-azure-blob-storage/ +[45]: https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp +[46]: https://learn.microsoft.com/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&pivots=programming-language-csharp +[47]: https://learn.microsoft.com/azure/storage/common/storage-configure-connection-string#configure-a-connection-string-for-an-azure-storage-account +[48]: https://learn.microsoft.com/azure/azure-functions/functions-get-started +[49]: https://github.com/DataDog/datadog-serverless-functions/blob/master/azure/blobs_logs_monitoring/index.js +[51]: https://app.datadoghq.com/logs +[52]: https://portal.azure.com/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fforwarder.json +[53]: https://learn.microsoft.com/azure/azure-monitor/platform/diagnostic-settings \ No newline at end of file diff --git a/content/ko/llm_observability/_index.md b/content/ko/llm_observability/_index.md new file mode 100644 index 00000000000..b40b4fb18bf --- /dev/null +++ b/content/ko/llm_observability/_index.md @@ -0,0 +1,128 @@ +--- +aliases: +- /ko/tracing/llm_observability/ +further_reading: +- link: https://www.datadoghq.com/blog/llm-observability-at-datadog-dashboards + tag: 블로그 + text: Datadog LLM Observability로 안정적인 대시보드 에이전트 구축 +- link: https://www.datadoghq.com/blog/manage-ai-cost-and-performance-with-datadog/ + tag: 블로그 + text: 'AI ROI 향상: Datadog이 비용, 성능 및 인프라를 연결하여 책임감 있게 확장할 수 있도록 지원하는 방법' +- link: https://www.datadoghq.com/blog/llm-otel-semantic-convention + tag: 블로그 + text: Datadog LLM Observability는 OpenTelemetry GenAI 시맨틱 규칙을 기본적으로 지원합니다. +- link: https://www.datadoghq.com/blog/llm-aws-strands + tag: 블로그 + text: Datadog LLM Observability로 Strands Agents 워크플로 가시성 확보 +- link: https://www.datadoghq.com/blog/anthropic-integration-datadog-llm-observability/ + tag: 블로그 + text: Datadog LLM Observability로 Anthropic 애플리케이션 모니터링 +- link: https://www.datadoghq.com/blog/monitor-llm-prompt-injection-attacks/ + tag: 블로그 + text: 민감한 데이터를 보호하기 위한 LLM 프롬프트 인젝션 공격 모니터링 모범 사례 +- link: https://www.datadoghq.com/blog/vllm-integration/ + tag: 블로그 + text: Datadog의 vLLM 통합으로 LLM 애플리케이션 성능 최적화 +- link: https://www.datadoghq.com/blog/datadog-gpu-monitoring/ + tag: 블로그 + text: Datadog GPU Monitoring으로 AI 인프라 최적화 및 문제 해결 +- link: https://www.datadoghq.com/blog/llm-observability-bedrock-agents/ + tag: 블로그 + text: Datadog LLM Observability로 Amazon Bedrock 기반 에이전트 모니터링 +- link: https://www.datadoghq.com/blog/monitor-mcp-servers/ + tag: 블로그 + text: MCP 서버의 일반적인 보안 위험 식별 +- link: https://www.datadoghq.com/blog/detect-abuse-ai-infrastructure/ + tag: 블로그 + text: 'AI 인프라 남용: 잘못 관리된 자격 증명과 리소스가 LLM 애플리케이션을 노출시키는 방식' +- link: https://www.datadoghq.com/blog/llm-observability-at-datadog-nlq + tag: 블로그 + text: LLM Observability를 통해 NLQ 에이전트 디버깅 시간을 몇 시간에서 몇 분으로 단축한 방법 +- link: https://learn.datadoghq.com/courses/llm-obs-tracing-llm-applications + tag: 학습 센터 + text: LLM 애플리케이션 추적 +title: LLM Observability +--- +{{< learning-center-callout header="학습 센터에서 LLM Observability 시작해 보기" btn_title="지금 등록" btn_url="https://learn.datadoghq.com/courses/llm-obs-getting-started">}} + LLM 애플리케이션의 성능, 비용, 트레이스, 토큰 사용량 및 오류를 모니터링하여 문제를 식별하고 해결하는 방법을 배웁니다. +{{< /learning-center-callout >}} + +## 개요 {#overview} + +LLM Observability를 사용하면 챗봇과 같은 LLM 기반 애플리케이션을 모니터링, 문제 해결 및 평가할 수 있습니다. 문제의 근본 원인을 조사하고 운영 성능을 모니터링하며 LLM 애플리케이션의 품질, 개인정보 보호 및 안전성을 평가할 수 있습니다. + +애플리케이션이 처리하는 각 요청은 Datadog의 [**LLM Observability** 페이지][1]에서 하나의 트레이스로 표현됩니다. + +{{< img src="llm_observability/traces.png" alt="LLM Observability 페이지의 프롬프트-응답 쌍 트레이스 목록" style="width:100%;" >}} + +트레이스는 다음 중 하나를 나타낼 수 있습니다. + +- 토큰, 오류 정보 및 지연 시간을 포함한 개별 LLM 추론 +- LLM 호출과 도구 호출, 전처리 단계 등의 관련 작업을 그룹화한 미리 정해진 LLM 워크플로 +- LLM 에이전트가 실행하는 동적 LLM 워크플로 + +각 트레이스에는 에이전트의 의사결정 또는 워크플로의 각 단계를 나타내는 스팬이 포함됩니다. 주어진 트레이스는 입력 및 출력, 지연 시간, 개인정보 관련 문제, 오류 등을 포함할 수 있습니다. 자세한 내용은 [용어 및 개념][2]을 참조하세요. + +## 종단 간 트레이스를 통해 문제 해결 {#troubleshoot-with-end-to-end-tracing} + +문제가 있는 요청을 정확히 찾아내고 오류의 근본 원인을 식별하기 위해 LLM 애플리케이션 체인 및 호출 과정을 단계별로 확인하세요. + +{{< img src="llm_observability/errors.png" alt="트레이스 사이드 패널의 Errors 탭에 있는 트레이스에서 발생한 오류" style="width:100%;" >}} + +## 운영 메트릭 모니터링 및 비용 최적화 {#monitor-operational-metrics-and-optimize-cost} + +모든 LLM 애플리케이션의 비용, 지연 시간, 성능 및 사용량 추세를 [기본 제공 대시보드][7]로 모니터링하세요. + +{{< img src="llm_observability/dashboard_1.png" alt="Datadog의 기본 제공 LLM Observability 운영 인사이트 대시보드" style="width:100%;" >}} + +## LLM 애플리케이션의 품질 및 효과성 평가 {#evaluate-the-quality-and-effectiveness-of-your-llm-applications} + +사용자가 LLM 애플리케이션에 무엇을 요청하는지 파악하고, 적용 범위의 공백을 식별하며, 프로덕션 트래픽을 자동으로 계층적 주제 클러스터링하는 [Patterns][10] 기능을 통해 시간 경과에 따른 응답 품질을 모니터링할 수 있습니다. + +{{< img src="llm_observability/topic-detail.png" alt="주제 레이블과 신뢰도 점수가 포함된 상호작용 테이블과 함께 상호작용 임베딩의 산점도를 보여주는 주제 세부 정보 보기" style="width:100%;" >}} + +## 민감한 데이터를 보호하고 악의적인 사용자 식별 {#safeguard-sensitive-data-and-identify-malicious-users} + +AI 애플리케이션에서 민감한 데이터를 자동으로 스캔하고 삭제하며, 프롬프트 주입을 식별하는 등 다양한 평가 기능을 제공합니다. + +{{< img src="llm_observability/prompt_injection.png" alt="LLM Observability에 의해 감지된 프롬프트 주입 시도의 예" style="width:100%;" >}} + +## 인사이트로 강조 표시된 이상 징후 확인 {#see-anomalies-highlighted-as-insights} + +LLM Observability Insights는 실행 시간, 오류율과 같은 운영 메트릭과 [기본 제공(OOTB) 평가][9] 결과의 이상 징후를 사용자가 식별할 수 있도록 지원하는 모니터링 환경을 제공합니다. + +이상치는 다음과 같은 주요 차원에서 탐지됩니다. +- 스팬 이름 +- 워크플로 유형 +- [Patterns 입력/출력 주제][10] + +이러한 이상치는 지난 주 동안 분석되며 사용자가 선택한 해당 시간 범위에 자동으로 표시됩니다. 이를 통해 팀은 LLM 애플리케이션에서 성능 저하, 성능 변화 또는 예상치 못한 동작을 사전에 감지할 수 있습니다. + +{{< img src="llm_observability/Overview_LLMO.png" alt="LLM Observability Monitor 페이지 상단에 'Insights' 배너가 있습니다. 배너에는 8개의 인사이트가 표시되며, View Insights 버튼을 클릭하면 사이드 패널에서 상세 정보를 확인할 수 있습니다." style="width:100%;" >}} + +## LLM Observability와 통합 사용 {#use-integrations-with-llm-observability} + +[Python용 LLM Observability SDK][3]는 OpenAI, LangChain, AWS Bedrock 및 Anthropic과 같은 프레임워크와 통합됩니다. 코드 변경 없이 LLM 호출을 자동으로 추적하고 주석을 달아 지연 시간, 오류 및 토큰 사용 메트릭을 수집합니다. + +
    Datadog은 다양한 인공지능(AI) 및 머신러닝(ML) 기능을 제공합니다. Integrations 페이지와 Datadog Marketplace에 있는 AI/ML 통합은 Datadog 플랫폼 전반에서 사용되는 기능입니다.

    예를 들어, APM은 OpenAI 사용량 모니터링을 위한 기본 통합을 제공하며, Infrastructure Monitoring은 컴퓨팅 집약적인 AI 워크로드 모니터링을 위한 NVIDIA DCGM Exporter와 통합됩니다. 이러한 통합은 LLM Observability 제품과는 별도로 제공됩니다.
    + +자세한 내용은 [자동 계측 문서][8]를 참조하세요. + +## 시작할 준비가 되셨나요? {#ready-to-start} + +LLM 애플리케이션을 계측하는 방법에 대한 지침은 [설정 문서][5]를 참조하거나 [LLM 애플리케이션 트레이스 가이드][6]를 따라 [Python용 LLM Observability SDK][3]를 사용하여 트레이스를 생성하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/llm/traces +[2]: /ko/llm_observability/terms +[3]: /ko/llm_observability/setup/sdk +[4]: /ko/llm_observability/setup/api +[5]: /ko/llm_observability/setup +[6]: /ko/llm_observability/quickstart +[7]: https://app.datadoghq.com/dash/integration/llm_operational_insights +[8]: /ko/llm_observability/setup/auto_instrumentation +[9]: /ko/llm_observability/evaluations/managed_evaluations +[10]: /ko/llm_observability/monitoring/patterns \ No newline at end of file diff --git a/content/ko/metrics/_index.md b/content/ko/metrics/_index.md index e2f442933a0..bff0d17af08 100644 --- a/content/ko/metrics/_index.md +++ b/content/ko/metrics/_index.md @@ -8,49 +8,47 @@ cascade: algolia: rank: 70 tags: - - 메트릭 제출 - - 메트릭 제출 -title: 메트릭 + - submit metrics + - metrics submission +title: Metrics --- - - -{{< learning-center-callout header="Join an enablement webinar session" hide_image="true" btn_title="Sign Up" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} - 커스텀 메트릭에 대한 파운데이션 활성화 세션을 살펴보고 등록하세요. 커스텀 알고리즘에 대한 방문자 수, 평균 고객 장바구니 크기, 요청 지연 시간 또는 성능 분포 같은 애플리케이션 KPI를 추적하는 방법을 알아보세요. +{{< learning-center-callout header="활성화 웨비나 세션에 참가하기" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} + 사용자 지정 메트릭을 위한 Foundation Enablement 세션을 살펴보고 등록하세요. 사용자 지정 메트릭을 활용하여 방문자 수, 평균 고객 장바구니 크기, 요청 지연 시간 또는 사용자 지정 알고리즘의 성능 분포와 같은 애플리케이션 KPI를 추적하는 방법을 알아보세요. {{< /learning-center-callout >}} -이 섹션에서는 Datadog 메트릭에 대한 소개 및 메트릭이 유용한 이유에 대해 설명합니다. 구체적으로 다음 주제가 포함되어 있습니다: +이는 Datadog의 Metrics와 그 유용성에 대한 소개입니다. 이 섹션에는 다음 주제가 포함됩니다. -{{< whatsnext desc="Submit metrics to Datadog" >}} - {{< nextlink href="/metrics/custom_metrics">}}커스텀 메트릭 제출 - 커스텀 메트릭의 정의와 제출 방법에 관해 알아보세요.{{< /nextlink >}} - {{< nextlink href="/opentelemetry/reference/otel_metrics" >}}OpenTelemetry 메트릭 전송 - Datadog Agent 또는 OpenTelemetry Collector를 구성하세요{{< /nextlink >}} - {{< nextlink href="/metrics/types" >}}메트릭 유형 - Datadog에 제출 가능한 메트릭 유형입니다.{{< /nextlink >}} - {{< nextlink href="/metrics/distributions" >}}배포 메트릭 - 배포 메트릭 및 전 세계적으로 정확한 백분위수에 관해 알아보세요.{{< /nextlink >}} - {{< nextlink href="/metrics/units" >}}메트릭 단위 - 메트릭과 연결된 단위에 관해 알아보세요..{{< /nextlink >}} +{{< whatsnext desc="Datadog에 메트릭 제출" >}} + {{< nextlink href="/metrics/custom_metrics">}}사용자 지정 메트릭 제출 - 사용자 지정 메트릭이 무엇인지와 이를 제출하는 방법을 알아봅니다.{{< /nextlink >}} + {{< nextlink href="/opentelemetry/reference/otel_metrics" >}}OpenTelemetry 메트릭 전송 - Datadog Agent 또는 OpenTelemetry Collector를 구성합니다.{{< /nextlink >}} + {{< nextlink href="/metrics/types" >}}메트릭 유형 - Datadog에 제출할 수 있는 메트릭 유형입니다.{{< /nextlink >}} + {{< nextlink href="/metrics/distributions" >}}Distribution 메트릭 - Distribution 메트릭과 전역적으로 정확한 백분위수에 대해 알아봅니다.{{< /nextlink >}} + {{< nextlink href="/metrics/units" >}}메트릭 단위 - 메트릭과 연결할 수 있는 단위에 대해 알아봅니다.{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="Visualize and query your metrics" >}} - {{< nextlink href="/metrics/explorer" >}}메트릭 탐색기 - 모든 메트릭을 탐색하고 분석을 수행합니다.{{< /nextlink >}} - {{< nextlink href="/metrics/summary" >}}메트릭 요약 - Datadog 메트릭 활성 보고를 이해합니다.{{< /nextlink >}} - {{< nextlink href="/metrics/advanced-filtering" >}}고급 필터링 - 반환된 메트릭의 범위를 좁힐 수 있도록 데이터를 필터링합니다.{{< /nextlink >}} - {{< nextlink href="/metrics/nested_queries" >}}중첩 쿼리 - 고급 쿼리 기능을 해제하기 위해 추가 집계 레이어를 적용하세요.{{< /nextlink >}} +{{< whatsnext desc="메트릭 시각화 및 쿼리" >}} + {{< nextlink href="/metrics/explorer" >}}Metrics Explorer - 모든 메트릭을 탐색하고 분석을 수행합니다.{{< /nextlink >}} + {{< nextlink href="/metrics/summary" >}}Metrics Summary - 현재 보고 중인 Datadog 메트릭을 이해합니다.{{< /nextlink >}} + {{< nextlink href="/metrics/advanced-filtering" >}}고급 필터링 - 데이터를 필터링하여 반환되는 메트릭의 범위를 좁힙니다.{{< /nextlink >}} + {{< nextlink href="/metrics/nested_queries" >}}중첩된 쿼리 - 추가 집계 레이어를 적용하여 고급 쿼리 기능을 활용합니다.{{< /nextlink >}} {{< /whatsnext >}} -{{< whatsnext desc="Understand and manage your custom metrics volumes and costs" >}} - {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without LimitsTM - Metrics without LimitsTM을 사용하여 태그 구성으로 커스텀 메트릭 볼륨을 제어하는 방법을 알아보세요.{{< /nextlink >}} +{{< whatsnext desc="사용자 지정 메트릭의 볼륨과 비용 이해 및 관리" >}} + {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™를 사용하여 태그 구성을 통해 사용자 지정 메트릭 볼륨을 제어하는 방법을 알아봅니다.{{< /nextlink >}} {{< /whatsnext >}} -## 개요 -### 메트릭이란 무엇인가요? +## 개요 {#overview} +### 메트릭이란 무엇인가요? {#what-are-metrics} -메트릭이란 지연, 오류 비율에서 사용자 가입까지 시간에 따른 모든 환경 변화를 추적할 수 있는 숫자 값입니다. +메트릭은 지연 시간, 오류율, 사용자 가입 수 등 환경에 관한 모든 것을 시간 경과에 따라 추적할 수 있는 수치 값입니다. -Datadog에서 메트릭 데이터는 데이터 요소로 수집 및 저장되며 값과 타임스탬프를 포함합니다. +Datadog에서는 메트릭 데이터가 값과 타임스탬프를 가진 데이터 포인트 형태로 수집 및 저장됩니다. ```text [ 17.82, 22:11:01 ] ``` -데이터 요소 시퀀스는 시계열로 저장됩니다. +일련의 데이터 포인트는 시계열로 저장됩니다. ```text [ 17.82, 22:11:01 ] @@ -59,148 +57,149 @@ Datadog에서 메트릭 데이터는 데이터 요소로 수집 및 저장되며 [ 7.06, 22:12:00 ] ``` -초 단위 타임스탬프 이하로 쪼개진 모든 메트릭은 가장 가까운 초로 반올림됩니다. 동일한 타임스탬프를 지닌 요소가 있는 경우 나중 요소가 이전 요소를 덮어씁니다. +타임스탬프가 초 단위 미만인 모든 메트릭은 가장 가까운 초 단위로 반올림됩니다. 타임스탬프가 동일한 데이터 포인트가 여러 개 있는 경우 최신 데이터 포인트가 이전 포인트를 덮어씁니다. -### 메트릭이 왜 유용한가요? +### 메트릭이 유용한 이유 {#why-are-metrics-useful} -메트릭은 시스템에 대한 전반적인 그림을 제공합니다. 메트릭을 사용해 한눈에 환경 상태를 평가할 수 있습니다. 사용자가 얼마나 빠르게 웹사이트를 로딩하고 서버에서 평균 얼마의 메모리를 소비하는지 즉각적으로 시각화해 보여줍니다. 문제를 파악하면 [로그][1] 및 [추적][2]을 사용해 추가적으로 트러블슈팅할 수 있습니다. +메트릭은 시스템의 전반적인 상태를 보여줍니다. 이를 사용하여 환경의 상태를 한눈에 평가할 수 있습니다. 예를 들어 사용자가 웹사이트를 얼마나 빠르게 로드하는지, 또는 서버의 평균 메모리 사용량이 얼마인지 시각화할 수 있습니다. 문제를 식별한 후에는 [로그][1] 및 [트레이싱][2]을 사용하여 추가 문제를 해결할 수 있습니다. -시스템 상태를 추적하는 메트릭은 Datadog 통합에서 자동으로 {< translate key="통합_개수" >}}개 이상의 서비스를 사용해 수집됩니다. 또한 비즈니스에 밀접한 메트릭을 추적할 수 있습니다. 이는 커스텀 메트릭이라고도 알려져 있습니다. 사용자 로그인 횟수, 사용자 장바구니 규모, 팀의 코드 커밋 빈도 등을 추적할 수 있습니다. +시스템 상태를 추적하는 메트릭은 Datadog과 {{< translate key="integration_count" >}} 개 이상의 서비스와의 통합을 통해 자동으로 수집됩니다. 또한 비즈니스에 특화된 메트릭(사용자 지정 메트릭이라고도 함)을 추적할 수도 있습니다. 사용자 로그인 수, 사용자 장바구니 크기, 팀의 코드 커밋 빈도와 같은 항목을 추적할 수 있습니다. -또한 메트릭은 환경 규모를 조정하여 고객의 수요를 충족할 수 있도록 돕습니다. 리소스 소비량을 정확히 판단하면 성능을 개선하고 비용을 절감할 수 있습니다. +또한 메트릭은 고객 수요에 맞게 환경 규모를 조정하는 데 도움을 줍니다. 필요한 리소스 사용량을 정확히 파악하면 비용을 절감하거나 성능을 향상시킬 수 있습니다. -### Datadog에 메트릭 제출하기 +### Datadog에 메트릭 제출 {#submitting-metrics-to-datadog} -메트릭은 여러 장소에서 Datadog로 전송될 수 있습니다. +메트릭은 여러 위치에서 Datadog으로 전송할 수 있습니다. -- [Datadog 지원 통합][8]: Datadog의 {{< translate key="integration_count" >}}개 이상의 통합에는 기본으로 제공되는 메트릭이 포함되어 있습니다. 이러한 메트릭에 액세스하려면 해당 서비스의 특정 통합 페이지로 이동해 설치 지침을 따릅니다. 예를 들어, EC2 인스턴스를 모니터링해야 하는 경우 [Amazon EC2 통합 설명서][9]로 이동해야 합니다. +- [Datadog에서 지원하는 통합][8]: Datadog의 {{< translate key="integration_count" >}}+ 통합에는 기본적으로 메트릭이 포함됩니다. 이러한 메트릭에 액세스하려면 서비스에 해당하는 통합 페이지로 이동하여 설치 지침을 따르세요. 예를 들어 EC2 인스턴스를 모니터링해야 하는 경우 [Amazon EC2 통합 설명서][9]로 이동하면 됩니다. -- Datadog 플랫폼 내에서 직접 메트릭을 생성할 수 있습니다. 예를 들어 로그에 표시되는 오류 상태 코드를 계산하고 Datadog에 [새로운 메트릭으로 저장][10]할 수 있습니다. +- Datadog 플랫폼 내에서 직접 메트릭을 생성할 수도 있습니다. 예를 들어 로그에 나타나는 오류 상태 코드를 집계하고 이를 Datadog에서 [새 메트릭으로 저장][10]할 수 있습니다. -- 자주, 비즈니스와 관련된 메트릭을 추적해야 합니다. 예를 들어 사용자 로그인 횟수나 가입을 확인해야 할 수 있습니다. 이러한 경우 [커스텀 메트릭][11]을 만듭니다. 커스텀 메트릭은 [에이전트][12], [DogStatsD][13] 또는 [HTTP API][14]를 통해 제출할 수 있습니다. +- 또한 비즈니스와 관련된 메트릭(예: 사용자 로그인 수 또는 가입 수)을 추적해야 하는 경우가 많습니다. 이러한 경우 [사용자 지정 메트릭][11]을 생성할 수 있습니다. 사용자 지정 메트릭은 [Agent][12], [DogStatsD][13] 또는 [HTTP API][14]를 통해 제출할 수 있습니다. -- 또한 [Datadog 에이전트][15]는 자동으로 여러 표준 메트릭(CPU 또는 디스크 사용량 등)을 보냅니다. +- 또한 [Datadog Agent][15]는 여러 표준 메트릭(예: CPU 사용량 및 디스크 사용량)을 자동으로 전송합니다. -모든 메트릭 제출 소스와 방법에 대한 요약을 보려면 [메트릭 유형 설명서][16]를 읽으세요. +모든 메트릭 제출 소스 및 방법에 대한 요약은 [메트릭 유형 설명서][16]를 참조하세요. -### 메트릭 유형 및 실시간 메트릭 가시성 +### 메트릭 유형 및 실시간 메트릭 가시성 {#metric-types-and-real-time-metrics-visibility} -#### 메트릭 유형 +#### 메트릭 유형 {#metric-types} -Datadog는 다양한 메트릭 유형을 통해 고유한 사용 사례를 지원합니다. 개수, 게이지, 비율, 히스토그램, 분포가 그것입니다. 메트릭 유형은 앱에서 메트릭으로 활용할 수 있는 그래프와 함수를 결정합니다. +Datadog은 서로 다른 사용 사례에 적합한 여러 메트릭 유형(count, gauge, rate, histogram, distribution)을 지원합니다. 메트릭 유형은 앱에서 해당 메트릭에 사용할 수 있는 그래프와 함수를 결정합니다. -Datadog 에이전트는 전송되는 단일 데이터 요소마다 Datadog 서버에 별도의 요청을 보내지 않습니다. 대신 _플러시 시간 간격_ 동안 수집한 값을 보고합니다. 메트릭 유형은 이 시간 간격 동안 호스트에서 수집된 값이 제출을 위해 집계되는 방식을 결정합니다. +Datadog Agent는 전송되는 모든 데이터 포인트에 대해 Datadog 서버로 별도의 요청을 보내지 않습니다. 대신 _플러시 시간 간격_ 동안 수집된 값을 보고합니다. 메트릭 유형은 이 시간 간격 동안 호스트에서 수집된 값이 제출을 위해 어떻게 집계되는지를 결정합니다. -**_개수_** 유형을 시간 간격 동안 제출된 모든 값을 추가합니다. 예를 들어 웹사이트 방문수와 같은 메트릭을 추적하는 데 적합합니다. +**_count_** 유형은 시간 간격 동안 제출된 모든 값을 합산합니다. 예를 들어 웹사이트 방문 수를 추적하는 메트릭에 적합합니다. -**_비율_** 유형은 개수를 세고 시간 간격으로 나눕니다. "초당 방문수"에 관심이 있는 경우 유용합니다. +**_rate_** 유형은 count 값을 시간 간격의 길이로 나눕니다. 이는 초당 방문 수를 알고 싶은 경우에 유용합니다. -**_게이지_** 유형은 시간 간격 동안 보고된 마지막 값을 가져옵니다. 이 유형은 RAM 또는 CPU 사용량을 추적하는 데 적합합니다. 왜냐하면 마지막 값이 시간 간격 동안 호스트의 동작에 대한 상태를 잘 보여주기 때문입니다. 이 경우에 _개수_와 같은 다른 유형을 사용하면 부정확하고 극적인 값이 등장할 수 있습니다. 올바른 메트릭 유형을 선택하는 것이 정확한 데이터를 보장하는 방법입니다. +**_gauge_** 유형은 해당 시간 간격 동안 보고된 마지막 값을 사용합니다. 이 유형은 RAM 사용량이나 CPU 사용량을 추적하는 데 적합합니다. 마지막 값만 사용해도 해당 시간 간격 동안 호스트의 동작을 대표적으로 보여줄 수 있기 때문입니다. 이 경우 _count_와 같은 다른 유형을 사용하면 부정확하고 과도한 값이 생성될 수 있습니다. 올바른 메트릭 유형을 선택하면 정확한 데이터를 확보할 수 있습니다. -**히스토그램**은 제출된 값을 요약하는 5가지 각기 다른 값을 보고합니다. 평균, 개수, 중앙값, 95번째 백분위수 및 최대가 이에 해당합니다. 히스토그램은 다섯 개의 각기 다른 시계열을 생산합니다. 이 메트릭 유형은 지연과 같은 요소에 적합합니다. 왜냐하면 평균 값을 알기에 충분하지 않기 때문입니다. 히스토그램을 통해 매 단일 데이터 요소를 기록할 필요 없이 데이터가 어떻게 분포되어 있는지 이해할 수 있습니다. +**_histogram_**은 제출된 값을 요약하는 다섯 가지 값을 보고합니다. 즉, 평균, 개수, 중앙값, 95번째 백분위수 및 최댓값입니다. 이로 인해 다섯 개의 서로 다른 시계열이 생성됩니다. 이 메트릭 유형은 지연 시간과 같은 항목에 적합합니다. 이러한 경우 평균값만으로는 충분하지 않기 때문입니다. 히스토그램을 사용하면 모든 데이터 포인트를 기록하지 않고도 데이터가 어떻게 분포되어 있는지 이해할 수 있습니다. -**_분포_** 는 히스토그램과 비슷하지만 환경 내 모든 호스트에서 특정 시간 간격 동안 제출된 값을 요약합니다. 또한 다수의 백분위 수를 보고하도록 선택할 수 있습니다(p50, p75, p90, p95 및 p99). [배포 설명서][19]에서 이 강력한 기능에 대해 자세히 알아볼 수 있습니다. +**_distribution_**은 히스토그램과 유사하지만, 환경 내 모든 호스트에서 특정 시간 간격 동안 제출된 값을 종합하여 요약합니다. 또한 p50, p75, p90, p95, p99와 같은 여러 백분위수를 보고하도록 선택할 수 있습니다. 이 강력한 기능에 대한 자세한 내용은 [Distributions 설명서][19]를 참조하세요. -각 메트릭 유형과 제출 지침에 대한 자세한 예시는 [메트릭 유형][16] 설명서를 참조하세요. +각 메트릭 유형에 대한 보다 자세한 예제와 제출 방법은 [메트릭 유형][16] 설명서를 참조하세요. -## 메트릭 쿼리 +## 메트릭 쿼리 {#querying-metrics} -Datadog의 [메트릭 탐색기][3], [대시보드][4] 또는 [노트북][5]를 사용해 메트릭을 시각화하고 그래프를 만들 수 있습니다. +Datadog 전반, 예를 들면 [Metrics Explorer][3], [Dashboards][4] 또는 [Notebooks][5]에서 메트릭을 시각화하고 그래프를 생성할 수 있습니다. -**팁**: Datadog의 글로벌 검색에서 메트릭 요약 페이지를 열려면 Cmd/Ctrl + K 를, `metrics`의 경우 검색을 누르세요. +**팁**: Datadog의 전역 검색에서 Metrics Summary 페이지를 열려면 Cmd/Ctrl + K를 누른 다음 `metrics`를 검색하세요. 시계열 시각화 예시는 다음과 같습니다. -{{< img src="metrics/introduction/timeseries_example.png" alt="여러 급등 지점과 함께 단일 파란 선으로 표시된 지연 메트릭 시계열 그래프" >}} +{{< img src="metrics/introduction/timeseries_example.png" alt="시계열 그래프는 여러 개의 급격한 상승 구간이 포함된 하나의 파란색 선으로 표현된 지연 시간 메트릭을 표시합니다." >}} -이 선 그래프는 사용자가 경험한 지연(밀리초 단위) Y축과 시간 X축을 보여줍니다. +이 선 그래프는 y축에 사용자들이 경험한 지연 시간(밀리초 단위)을, x축에 시간을 표시합니다. -#### 추가 시각화 +#### 추가 시각화 {#additional-visualizations} -Datadog은 사용자가 메트릭을 쉽게 그래프로 표시하고 나타낼 수 있도록 다양한 시각화 옵션을 제공합니다. +Datadog은 사용자가 메트릭을 쉽게 그래프로 표시하고 나타낼 수 있도록 다양한 시각화 옵션을 제공합니다. -메트릭 쿼리는 시작하기 위한 동일한 두 가지 평가 단계, 즉 시간 집계와 공간 집계로 구성됩니다. 자세한 내용은 [메트릭 쿼리의 구조][6]를 참조하세요. +메트릭 쿼리는 시작하기 위한 동일한 두 가지 평가 단계인 시간 집계와 공간 집계로 구성됩니다. 자세한 내용은 [메트릭 쿼리의 구조][6]를 참조하세요. -{{< whatsnext desc="Metrics 사용자가 유용하게 여기는 두 가지 시각화 기능:">}} - {{< nextlink href="dashboards/widgets/query_value/" >}}쿼리 값 위젯 - 두 단계의 결과를 단일 값으로 줄입니다.{{< /nextlink >}} - {{< nextlink href="/dashboards/widgets/top_list/" >}}상위 목록 - 그룹당 단일 값을 반환합니다.{{< /nextlink >}} +{{< whatsnext desc="Metrics 사용자가 자주 유용하게 활용하는 두 가지 시각화는 다음과 같습니다.">}} + {{< nextlink href="dashboards/widgets/query_value/" >}}쿼리 값 위젯 - 앞의 두 단계 결과를 하나의 값으로 축약합니다.{{< /nextlink >}} + {{< nextlink href="/dashboards/widgets/top_list/" >}}상위 목록 - 각 그룹에 대해 단일 값을 반환합니다.{{< /nextlink >}} {{< /whatsnext >}} -추가적으로 Datadog는 시각화를 위한 많은 유형의 그래프와 위젯을 보유하고 있습니다. Datadog의 [메트릭 그래프에 대한 블로그 시리즈]에서 자세히 알아볼 수 있습니다. +또한 Datadog은 시각화를 위한 다양한 그래프와 위젯 유형을 제공합니다. 이에 대한 자세한 내용은 Datadog의 [메트릭 그래프 관련 블로그 시리즈][7]에서 확인할 수 있습니다. -그래프화 경험은 대시보드, 노트북, 모니터를 사용하는지에 관계없이 일정합니다. 그래프화 편집기 UI를 사용하거나 직접 원본 쿼리열을 변경하여 그래프를 만들 수 있습니다. 쿼리 열을 편집하려면 맨 오른쪽의 `` 버튼을 사용합니다. +그래프 작성 경험은 대시보드, 노트북, 모니터 중 어느 것을 사용하더라도 동일합니다. 그래프는 그래프 편집기 UI를 사용하거나 원시 쿼리 문자열을 직접 수정하여 만들 수 있습니다. 쿼리 문자열을 편집하려면 맨 오른쪽의 `` 버튼을 사용하세요. -### 메트릭 쿼리 분석 +### 메트릭 쿼리의 구조 {#anatomy-of-a-metric-query} -Datadog의 메트릭 쿼리는 다음과 같습니다. +Datadog의 메트릭 쿼리는 다음과 같은 형태입니다. -{{< img src="metrics/introduction/newanatomy.jpg" alt="색상 코딩된 섹션을 사용한 예시 쿼리" style="width:70%;">}} +{{< img src="metrics/introduction/newanatomy.jpg" alt="색상으로 구분된 섹션이 포함된 예제 쿼리" style="width:70%;">}} -이 쿼리를 몇 단계로 나눌 수 있습니다. +이 쿼리는 몇 가지 단계로 나누어 볼 수 있습니다. -#### 메트릭 이름 +#### 메트릭 이름 {#metric-name} -먼저 **메트릭** 옆에 있는 드롭다운에서 검색하거나 선택하여 그래프화하려는 특정 메트릭을 고릅니다. 어느 메트릭을 사용해야 할지 확신이 들지 않는다면 메트릭 탐색기나 노트북으로 시작합니다. 또한 메트릭 요약 페이지에서 활성 보고 메트릭 목록을 확인할 수 있습니다. +먼저 **Metric** 옆의 드롭다운에서 검색하거나 선택하여 그래프로 표시할 특정 메트릭을 선택합니다. 어떤 메트릭을 사용해야 할지 확실하지 않다면 Metrics Explorer 또는 노트북에서 시작해 보세요. Metrics Summary 페이지에서 현재 보고 중인 메트릭 목록도 확인할 수 있습니다.. -#### 메트릭 필터링 +#### 메트릭 필터링 {#filter-your-metric} -메트릭을 선택한 후 태그를 기준으로 쿼리를 필터링할 수 있습니다. 예를 들어 `account:prod` 태그를 사용해 쿼리가 프로덕션 호스트의 메트릭만 포함하도록 _범위를 좁힐 수 있습니다._ 자세한 정보는 [태깅 설명서][17]를 읽어보세요. +메트릭을 선택한 후에는 태그를 기준으로 쿼리를 필터링할 수 있습니다. 예를 들어 `account:prod`를 사용하여 프로덕션 호스트의 메트릭만 포함하도록 쿼리의 _범위_를 제한할 수 있습니다. 자세한 내용은 [태깅 설명서][17]를 참조하세요. -#### 시간 집계 설정 +#### 시간 집계 구성 {#configure-time-aggregation} -다음으로, 시간 롤업을 사용하여 데이터의 세분성을 선택합니다. 이 예에서는 매 시간(3600초)마다 하나의 데이터 포인트가 있다고 정의했습니다. 각 시간 버킷의 데이터를 집계하는 방법을 선택할 수 있습니다. 기본적으로 _avg_가 적용되지만 사용 가능한 다른 옵션은 _sum_, _min_, _max_ 및 _count_입니다. 함수 또는 인애플리케이션 모디파이어를 사용하여 메트릭 데이터를 집계하고 버킷화하는 방법을 사용자 정의할 수도 있습니다. 예를 들어 최대값을 적용하고 메트릭 데이터가 달력 정렬 쿼리에 맞춰 적시에 롤업 및 버킷팅되는 방식을 사용자 정의하려면 `.rollup(max, 60)`를 사용합니다. 자세한 내용은 [함수][24], [롤업][23] 및 [인애플리케이션 모디파이어][25] 문서를 참조하세요. +다음으로 시간 롤업을 사용하여 데이터의 세밀도를 선택합니다. 이 예에서는 1시간(3,600초)마다 하나의 데이터 포인트가 생성되도록 정의되어 있습니다. 각 시간 버킷 내 데이터를 어떻게 집계할지 선택할 수 있습니다. 기본적으로 _avg_가 적용되지만, 사용할 수 있는 다른 옵션으로는 _sum_, _min_, _max_, _count_가 있습니다. 함수 또는 인앱 한정자를 사용하여 메트릭 데이터가 집계되고 버킷화되는 방식을 사용자 지정할 수도 있습니다. 예를 들어 max를 적용하고 캘린더 정렬 쿼리를 사용하여 메트릭 데이터의 시간 롤업 및 버킷화를 사용자 지정하려면 `.rollup(max, 60)`을 사용합니다. 자세한 내용은 [함수][24], [롤업][23], [인앱 한정자][25] 설명서를 참조하세요. -#### 공간 집계 설정 +#### 공간 집계 구성 {#configure-space-aggregation} -Datadog에서 "공간"이란 각기 다른 호스트와 태그에서 메트릭이 분포되는 방법입니다. 공간에는 제어할 수 있는 두 가지 요소가 있습니다. 바로, 애그리게이터(aggregator)와 그룹화입니다. +Datadog에서 "공간"은 메트릭이 서로 다른 호스트와 태그에 걸쳐 분포되는 방식을 의미합니다. 제어할 수 있는 공간 집계의 요소는 애그리게이터와 그룹화 두 가지입니다. -_애그리게이터_는 각 그룹의 메트릭이 결합되는 방식을 정의합니다. 합계(sum), 최소(min), 최대(max) 및 평균(avg)과 같은 4가지 집계가 있습니다. +_애그리게이터_는 각 그룹 내의 메트릭을 어떻게 결합할지 정의합니다. 사용 가능한 집계 방식은 sum, min, max, avg의 네 가지입니다. -_그룹화_는 그래프의 선을 구성하는 요소들을 정의합니다. 예를 들어 4개 지역에 걸쳐 수백 개의 호스트가 있는 경우 지역별 그룹화를 통해 각 지역을 하나의 선으로 그래프화할 수 있습니다. 이를 통해 많은 시계열을 4개로 줄일 수 있습니다. +_그룹화_는 그래프에서 무엇이 하나의 선을 구성하는지를 정의합니다. 예를 들어 수백 개의 호스트가 네 개의 리전에 분산되어 있는 경우, 리전별로 그룹화하면 각 리전마다 하나의 선을 그래프에 표시할 수 있습니다. 이 경우 시계열 수는 네 개로 줄어듭니다. -#### 함수 적용(선택사항) +#### 함수 적용(선택사항) {#apply-functions-optional} -수학적 [함수][18]를 통해 그래프 값을 수정할 수 있습니다. 즉, 정수와 메트릭(예를 들어, 메트릭 2배 증가) 간 산술을 수행할 수 있습니다. 예를 들어, 메모리 활용률에 대한 새 시계열로 `jvm.heap_memory / jvm.heap_memory_max`을(를) 만들 수 있습니다. +수학적 [함수][18]를 사용하여 그래프 값을 수정할 수 있습니다. 예를 들어 정수와 메트릭 간의 산술 연산(메트릭 값에 2를 곱하는 경우 등)을 수행할 수 있습니다. 또는 두 메트릭 간의 산술 연산을 수행할 수도 있습니다(예를 들어 메모리 사용률에 대한 새로운 시계열을 `jvm.heap_memory / jvm.heap_memory_max`와 같이 생성하는 경우). -### 시간 및 공간 집계 +### 시간 및 공간 집계 {#time-and-space-aggregation} -_시간 집계_ 및 _공간 집계_는 모든 쿼리에서 중요한 두 개의 구성 요소입니다. 이러한 집계의 작동 방식을 이해하면 그래프 오해석을 방지할 수 있으므로 이러한 개념은 아래에서 더 자세히 설명됩니다. +_시간 집계_와 _공간 집계_는 모든 쿼리의 중요한 구성 요소입니다. 이러한 집계 방식이 어떻게 작동하는지 이해하면 그래프를 잘못 해석하는 일을 방지할 수 있으므로, 아래에서 이 개념을 좀 더 자세히 설명합니다. -#### 시간 집계 +#### 시간 집계 {#time-aggregation} -Datadog는 데이터 요소를 대량으로 저장합니다. 대부분 그래프로 모두 표시하는 것이 불가능합니다 .픽셀보다 더 많은 데이터 요소가 있을 것입니다. Datadog는 시간 집계를 사용해 이 문제를 해결합니다. 데이터 요소를 시간 범위로 구분합니다. 예를 들어 4시간 볼륨을 확인하는 경우, 데이터 요소는 2분 단위로 구분됩니다. 이것을 _롤업_이라고 부릅니다. 쿼리에 대해 결정한 시간 간격이 늘어날 수록 데이터의 세분성이 줄어듭니다. +Datadog은 매우 많은 양의 데이터 포인트를 저장하며, 대부분의 경우 이를 모두 그래프에 표시하는 것은 불가능합니다. 데이터 포인트 수가 화면의 픽셀 수보다 많아지기 때문입니다. Datadog은 이 문제를 해결하기 위해 데이터 포인트를 시간 버킷으로 결합하는 시간 집계를 사용합니다. 예를 들어 4시간 범위의 데이터를 조회하는 경우, 데이터 포인트는 2분 단위 버킷으로 결합됩니다. 이를 _롤업_이라고 합니다. 쿼리에서 정의한 시간 범위가 길어질수록 데이터의 세밀도는 낮아집니다. -각 시간 범위로 데이터를 결합하는 데 사용할 수 있는 5가지 집계, 즉 합계(sum), 최소(min), 최대(max), 평균(avg) 및 개수(count)가 있습니다. +각 시간 버킷 내의 데이터를 결합하는 데 사용할 수 있는 집계 방식은 sum, min, max, avg, count의 다섯 가지입니다. -시간 집계는 _항상_ 만드는 모든 쿼리에 적용된다는 사실을 기억하는 것이 중요합니다. +중요한 점은 시간 집계가 수행하는 모든 쿼리에 _항상_ 적용된다는 것입니다. -#### 공간 집계 +#### 공간 집계 {#space-aggregation} -공간 집계는 단일 메트릭을 태그(호스트, 컨테이너, 지역 등)를 사용해 여러 시계열로 나눕니다. 예를 들어 지역별 EC2 인스턴스 지연을 확인하려면 각 지역의 호스트 결합을 위해 기능별로 공간 집계 그룹화를 사용해야 합니다. +공간 집계는 호스트, 컨테이너, 리전 등의 태그를 기준으로 하나의 메트릭을 여러 시계열로 분할합니다. 예를 들어 EC2 인스턴스의 지연 시간을 리전별로 확인하려면, 공간 집계의 기능별 그룹화를 사용하여 각 리전의 호스트를 결합해야 합니다. -공간 집계를 사용하여 적용할 수 있는 4가지 집계에는 _합계(sum)_, _최소(min)_, _최대(max)_ 및 _평균(avg)_이 있습니다. 위 예시를 사용하고 4개 지역(us-east-1, us-east-2, us-west-1 및 us-west-2)에 호스트가 퍼져 있는 경우를 생각해 봅시다. 각 지역의 호스트는 애그리게이터 함수를 사용해 결합해야 합니다. _최대_ 애그리게이터_를 사용하면 호스트 전반에서 경험한 최대 지연이 표시됩니다. _평균_애그리게이터_를 사용하면 지역별 평균 지연이 표시됩니다. +공간 집계에서 사용할 수 있는 애그리게이터는 _sum_, _min_, _max_, _avg_의 네 가지입니다. 위 예에서 호스트가 us-east-1, us-east-2, us-west-1, us-west-2의 네 개 리전에 분산되어 있다고 가정해 보겠습니다. 각 리전의 호스트는 애그리게이터 함수를 사용하여 결합되어야 합니다. _max_ 애그리게이터를 사용하면 각 리전의 호스트에서 발생한 최대 지연 시간이 계산되고, _avg_ 애그리게이터를 사용하면 각 리전의 평균 지연 시간이 계산됩니다. -#### 중첩 쿼리 -UI에서 또는 [API][27]을 통해 중첩된 쿼리를 사용하여 시간과 공간의 기존 쿼리 결과에 추가 집계 레이어를 추가합니다. 자세한 내용은 [중첩된 쿼리][26] 설명서를 참조하세요. +#### 중첩된 쿼리 {#nested-queries} +UI 또는 [API][27]를 통해 중첩된 쿼리를 사용하면 기존 쿼리 결과에 대해 시간 및 공간 차원에서 추가 집계 레이어를 적용할 수 있습니다. 자세한 내용은 [중첩된 쿼리][26] 설명서를 참조하세요. -### 메트릭에 대한 실시간 정보 보기 +### 메트릭에 대한 실시간 정보 확인 {#view-real-time-information-about-metrics} -[메트릭 요약 페이지][20]는 지정된 시간(지난 시간, 지난일, 지난주)에 Datadog에 보고된 메트릭 목록을 표시합니다. 메트릭은 메트릭 이름이나 태그로 필터링할 수 있습니다. +[Metrics Summary 페이지][20]에는 지정된 기간(지난 1시간, 1일 또는 1주일) 동안 Datadog에 보고된 메트릭 목록이 표시됩니다. 메트릭은 메트릭 이름 또는 태그를 기준으로 필터링할 수 있습니다. -아무 메트릭 이름을 클릭하여 더 자세한 정보를 담은 상세 정보 사이드 패널을 표시합니다. 사이드 패널에 표시되는 상세 정보는 특정 메트릭에 대한 핵심 정보로 메타데이터(유형, 단위, 간격), 메트릭 개수, 보고 호스트 개수, 제출된 태그 개수, 메트릭에 제출된 모든 태그를 포함하는 표를 포함합니다. 메트릭에 제출된 태그를 확인하면 태그 설정으로 보고된 메트릭 수를 이해하는 데 도움이 됩니다. 이 수는 태그 값 조합에 따라 달라집니다. +메트릭 이름을 클릭하면 보다 상세한 정보를 제공하는 세부 정보 사이드 패널이 표시됩니다. 세부 정보 사이드 패널에는 메타데이터(유형, 단위, 간격), 고유 메트릭 수, 보고 중인 호스트 수, 제출된 태그 수, 그리고 해당 메트릭에 대해 제출된 모든 태그가 포함된 표 등 해당 메트릭의 주요 정보가 표시됩니다. 메트릭에 대해 어떤 태그가 제출되고 있는지 확인하면 해당 메트릭에서 보고되는 고유 메트릭 수를 이해하는 데 도움이 됩니다. 이 수치는 태그 값 조합에 따라 달라지기 때문입니다. -**참고:** 메트릭 요약의 상세 정보 사이드 패널에 보고된 메트릭 수가 빌링에 반영되는 것이 아닙니다. 지난 달 사용량에 대한 정확한 계산은 [사용량 상세 정보][21]을 참조하세요. +**참고:** Metrics Summary의 세부 정보 사이드 패널에 표시되는 고유 메트릭 수는 청구 금액을 결정하는 기준이 아닙니다. 지난 한 달간의 실제 사용량에 대한 정확한 정보는 [사용량 세부 정보][21]에서 확인하세요. -자세한 정보는 [메트릭 요약 설명서][22]를 읽으세요. +자세한 정보는 [메트릭 요약 설명서][22]를 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} -{{< whatsnext desc="To continue with metrics, check out:">}} +{{< whatsnext desc="메트릭에 대해 계속 학습하려면 다음 설명서를 참조하세요.">}} {{< nextlink href="/metrics/advanced-filtering" >}}고급 필터링 - 데이터를 필터링하여 반환되는 메트릭의 범위를 좁힙니다.{{< /nextlink >}} - {{< nextlink href="/metrics/distributions" >}}분포 메트릭 - 전체 데이터 세트에서 글로벌 백분위수를 계산합니다.{{< /nextlink >}} - {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without LimitsTM - Metrics without LimitsTM을 사용하여 태그 구성으로 사용자 지정 메트릭 볼륨을 제어하는 방법을 알아보세요.{{< /nextlink >}} - {{< nextlink href="https://dtdg.co/fe" >}}기반활성화 - 대화형 세션에 참여하여 메트릭의 잠재력을 최대한 활용하세요.{{< /nextlink >}} + {{< nextlink href="/metrics/distributions" >}}Distribution 메트릭 - 전체 데이터 세트에 대해 전역 백분위수를 계산합니다.{{< /nextlink >}} + {{< nextlink href="metrics/metrics-without-limits/" >}}Metrics without Limits™ - Metrics without Limits™를 사용하여 태그 구성을 통해 사용자 지정 메트릭 볼륨을 제어하는 방법을 알아봅니다.{{< /nextlink >}} + {{< nextlink href="https://dtdg.co/fe" >}}Foundation Enablement - 대화형 세션에 참여하여 메트릭의 잠재력을 최대한 활용하세요.{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-metrics" >}}Metrics 시작하기 - Datadog에서 첫 번째 메트릭을 제출하고 시각화하는 방법을 알아봅니다.{{< /nextlink >}} {{< /whatsnext >}} [1]: /ko/logs @@ -229,4 +228,4 @@ UI에서 또는 [API][27]을 통해 중첩된 쿼리를 사용하여 시간과 [24]: /ko/dashboards/functions/ [25]: /ko/metrics/custom_metrics/type_modifiers/?tab=count#in-application-modifiers [26]: /ko/metrics/nested_queries -[27]: https://docs.datadoghq.com/ko/api/latest/metrics/#query-timeseries-data-across-multiple-products +[27]: https://docs.datadoghq.com/ko/api/latest/metrics/#query-timeseries-data-across-multiple-products \ No newline at end of file diff --git a/content/ko/mobile/_index.md b/content/ko/mobile/_index.md new file mode 100644 index 00000000000..937ac69f59f --- /dev/null +++ b/content/ko/mobile/_index.md @@ -0,0 +1,367 @@ +--- +algolia: + tags: + - Datadog mobile app + - mobile device +aliases: +- /ko/service_management/mobile/ +description: iOS 및 Android용 Datadog 모바일 앱을 통해 대시보드, 경보, 인시던트, 온콜 관리 기능을 갖춘 인프라를 이동 + 중에도 모니터링하세요. +further_reading: +- link: /mobile/shortcut_configurations/ + tag: 설명서 + text: 단축키 구성 +- link: /monitors/ + tag: 설명서 + text: 모니터링 및 Alerting에 대해 알아보기 +- link: /dashboards/ + tag: 설명서 + text: 대시보드에 대해 알아보기 +- link: https://www.datadoghq.com/blog/datadog-mobile-widgets/ + tag: 블로그 + text: Datadog 모바일 대시보드 위젯으로 온콜 경험 개선 +- link: https://www.datadoghq.com/blog/mobile-app-getting-started/ + tag: 블로그 + text: Datadog 모바일 앱 시작 +- link: https://www.datadoghq.com/blog/mobile-app-reduce-mttr/ + tag: 블로그 + text: Datadog 모바일 앱으로 평균 수리 시간 단축 +- link: https://www.datadoghq.com/blog/designing-on-call-sounds + tag: 블로그 + text: 온콜 엔지니어를 위한 공감형 경보음을 설계한 방법 +title: Datadog 모바일 앱 +--- +Datadog 모바일 앱을 사용해 모바일 기기에서 Datadog의 경보를 확인할 수 있습니다. On-Call, Slack 또는 이메일을 통해 경보를 수신할 때 모바일 기기에서 모니터링 그래프와 대시보드를 열어 문제를 조사할 수 있습니다. + +## 설치 {#installing} + +iOS 기기의 [Apple App Store][1], 또는 Android 기기의 [Google Play 스토어][2]에서 앱을 다운로드하세요. + +### 로그인 {#logging-in} + +미국과 유럽(EU) 리전에서 표준 인증, Google 인증 또는 [SAML][3]으로 로그인할 수 있습니다. + +#### SAML 활성화 {#enabling-saml} + +SAML 로그인 시 기본 iOS/Android 브라우저를 사용하여 SAML 공급자를 Datadog에 설정하고 인증해야 합니다. SAML IdP 시작 로그인은 이 섹션의 마지막 부분을 참조하세요. SAML을 인증하려면 다음 단계를 따르세요. + +1. 모바일 앱에서 오른쪽 상단 모서리에 있는 데이터 센터 리전(예: US1)을 선택합니다. +2. 로그인 버튼을 누릅니다. +3. 'Using Single Sign-On (SAML)?' 링크를 클릭합니다. +4. 회사 이메일을 입력하고 이메일을 보냅니다. +5. 모바일 기기에서 이메일을 열고 기본 브라우저를 통해 안내된 링크를 클릭합니다. +6. 조직의 SAML 자격 증명을 입력하여 Datadog 모바일 앱의 인증된 세션으로 재연결합니다. + +필요 시, 아래의 설명에 따라 QR 코드나 직접 입력으로 인증할 수도 있습니다. + +##### QR 코드 {#qr-code} + +1. 브라우저에서 [Datadog 계정 개인 설정 조직][4] 페이지로 이동하고 현재 로그인한 조직의 **Log in to Mobile App**을 클릭합니다. QR 코드가 표시됩니다. +2. 휴대폰 기본 카메라 앱을 사용해 QR 코드를 스캔한 다음, 연결되는 링크를 누르면 Datadog 앱이 실행됩니다. 자동으로 로그인됩니다. + +**참고**: 현재 로그인하지 않은 조직의 **Log in to Mobile App** 버튼을 클릭하면 조직 UUID가 로그인 화면에 자동으로 삽입됩니다. 표준 방법을 사용하여 인증을 제공해야 합니다. + +##### 수동 입력 {#manual-entry} + +1. 수동으로 SAML ID를 입력하려면 Datadog 모바일 앱을 열고 'Using Single Sign-On (SAML)?' 버튼을 누릅니다. +2. 'Use another method to login' 버튼을 누르고 SAML ID를 직접 입력합니다. + +로그인 시 **Authorize**를 클릭하면 사용 중인 모바일 기기가 계정에 연동됩니다. 보안을 위해 1개월에 한 번씩 이 절차를 진행해야 합니다. + +##### IdP 시작 SAML 로그인 {#saml-idp-initiated-login} + +SAML 로그인 시도 중에 계속 오류가 발생하는 경우, ID 제공자가 IdP 시작 로그인을 강제할 수 있습니다. IdP 시작 SAML 활성화에 대해 자세히 알아보려면 IdP 시작 SAML 페이지 [IdP 시작 SAML 페이지][5]를 참조하세요. + +##### 서브도메인 로그인 {#subdomain-login} + +1. 서브도메인을 누르고 사용자 지정 [서브도메인][29]을 입력합니다. +2. 메시지에 따라 로그인 단계를 진행합니다. + +### 조직 전환 {#switch-organizations} + +조직을 전환하려면 모바일 앱의 **Settings** 페이지로 이동하여 **Organization**을 클릭하세요. + +**참고**: 조직을 전환할 때 재인증이 필요할 수 있습니다. + +### 로그아웃 {#log-out} +로그아웃하려면 모바일 앱의 **Settings** 페이지로 이동하여 **Log Out**을 클릭하세요. **Yes**를 클릭해 확인합니다. + +## On-Call {#on-call} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/on_call_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="교대 근무, 일정 및 에스컬레이션 옵션을 보여주는 iOS on-call 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_On_Call.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="교대 근무, 일정 및 에스컬레이션 옵션을 보여주는 Android on-call 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +On-Call 페이지는 온콜 교대 근무, 일정, 페이지 및 에스컬레이션 정책에 대한 포괄적인 뷰를 제공합니다. 사용자, 팀, 긴급성, 상태 또는 날짜별로 정보를 필터링하여 관련 세부정보를 빠르게 찾을 수 있습니다. **Escalate**를 누르면 다음 정책 수준으로의 에스컬레이션을 확인하라는 메시지가 표시됩니다. **Declare Incident**를 누르면 제목을 입력하고 관련 인시던트 특성을 제공하라는 메시지가 표시됩니다. + +개인 또는 팀에 페이지를 시작할 수 있으며, 재정의하려는 교대 근무를 눌러 기존 교대 근무를 덮어쓸 수 있습니다. Bits Investigation 모니터링 조사를 통해 초기 발견 및 결론을 확인할 수 있습니다. 자세한 내용은 [Datadog On-Call][20]을 참조하세요. + +모바일 기기에서 Datadog On-Call 알림을 구성하려면 [Datadog On-Call 사용을 위한 모바일 기기 설정][21] 가이드를 참조하세요. + +
    +모바일에서 On-Call에만 액세스해야 하고 모바일 기기에서 민감한 텔레메트리 데이터에 대한 액세스를 제한하려면 Datadog 지원팀에 문의하세요. +
    + +## Incidents {#incidents} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/incident_may_2025.png" alt="Datadog On-call 모바일 앱의 Incidents 페이지" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Incident.png" alt="Datadog On-call 모바일 앱의 Incidents 페이지" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +Incidents 페이지에서는 Datadog 계정에서 액세스할 수 있는 모든 인시던트를 보고, 검색하고, 필터링하여 어디서나 응답 및 해결을 보장할 수 있습니다. 또한 Slack, Zoom 등과의 통합을 통해 인시던트를 선언 및 편집하고, 팀과 원활하게 소통할 수 있습니다. 인시던트에 대한 자세한 내용은 [Datadog 인시던트 관리][12]를 참조하세요. + +### 인시던트 생성 {#create-an-incident} + +1. 하단 바에 있는 Incidents 탭을 눌러 인시던트 목록으로 이동합니다. +2. 오른쪽 상단 모서리의 **+** 버튼을 누릅니다. +3. 인시던트의 제목, 심각도 및 커맨더를 지정합니다. + +## Notification Center {#notification-center} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_notification_center.png" alt="Datadog 모바일 앱의 ios Notification center" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_notification_center.png" alt="Datadog 모바일 앱의 Android Notification center" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +{{% /tab %}} +{{< /tabs >}} + +Notification Center는 수신된 모든 푸시 알림을 나열하여 알림의 맥락을 잃지 않도록 합니다. 알림 유형별로 필터링할 수 있습니다. + +## Dashboards {#dashboards} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/dashboard_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 대시보드 목록을 보여주는 iOS 대시보드 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Dashboards.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 대시보드 목록을 보여주는 Android 대시보드 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Dashboards 페이지에서는 Datadog 조직에서 액세스할 수 있는 모든 대시보드를 보고 검색할 수 있으며, Datadog 웹 앱에서 설정한 동일한 템플릿 변수를 사용하여 필터링할 수 있습니다. 템플릿 변수 저장된 뷰를 사용하여 여러 대시보드를 빠르게 필터링합니다. 템플릿 변수 저장된 뷰에 대한 자세한 내용은 [대시보드 저장된 뷰][9]를 참조하세요. 개별 대시보드를 클릭하여 확인합니다. 대시보드 범위를 사용자 정의하려면 오른쪽 하단의 시간 범위를 클릭하세요. + +**참고**: +- 대시보드를 설정하거나 편집하려면 [Datadog 브라우저 앱에 로그인][10]해야 합니다. 자세한 내용은 [대시보드][11]를 참조하세요. +- UTC로 구성된 대시보드 링크는 모바일 앱에서 UTC로 열립니다. 자세한 내용은 [대시보드 구성][24]을 참조하세요. +- 모든 위젯 유형을 이용할 수 있는 것은 아니므로 모바일 앱에서 데이터가 표시되지 않습니다. 여기에는 토폴로지 맵, 목록 위젯(모든 데이터 소스), 레거시 트리맵 위젯 및 SLO 요약 위젯이 포함됩니다. + +## Monitors {#monitors} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/monitor_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 모니터링 목록을 보여주는 iOS monitors 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Monitors.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 모니터링 목록을 보여주는 Android monitors 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Monitors 페이지에서는 소속 Datadog 조직 내에서 액세스 가능한 모니터링 정보 모두를 조회하고 검색할 수 있습니다. 태그 지정 전략을 기준으로 항목 이름이나 빌드 고유의 검색 쿼리를 지정하는 것도 가능합니다. 검색과 관련해 자세한 정보를 알아보려면 [모니터링 검색 관리 섹션][6]을 참조하세요. + +예를 들어, 경보를 수신하는 SRE 팀과 관련된 메트릭 모니터링을 필터링하려면 쿼리 `"status:Alert type:Metric team:sre"`를 사용하세요. 개별 경보를 클릭하면 상세정보를 확인할 수 있으며, 이 정보는 유형과 경고 시간을 기준으로 필터링이 가능합니다. 경보를 음소거할 수도 있습니다. 빠르게 이전 쿼리에 액세스할 수 있도록 최근 검색 10개가 저장됩니다. 검색창을 활성화하여 표시되는 저장된 뷰를 활용해 모니터링 목록을 필터링할 수 있습니다. Synthetic 모니터링을 조회할 때 Synthetic 테스트를 조회하고 실행할 수도 있습니다. + +**참고**: 모니터링, 알림 또는 저장된 뷰를 설정하거나 수정하려면 [Datadog 웹 앱][7]을 사용해야 합니다. 웹 앱에서 설정한 모든 모니터링은 모바일 앱에서 볼 수 있습니다. 자세한 내용은 [모니터링 생성][8]을 참조하세요. + +## Notebooks {#notebooks} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/notebook_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터핑 옵션과 함께 Notebooks 목록을 보여주는 iOS notebooks 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Notebooks.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터핑 옵션과 함께 Notebooks 목록을 보여주는 Android notebooks 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Notebooks 페이지에서는 Datadog 조직에서 접근할 수 있는 모든 노트북을 조회하고 검색할 수 있으며, 태그로 필터링할 수 있습니다. 노트북 태그를 사용하면 즐겨찾기, 팀 및 유형별로 필터링할 수 있습니다. 자세한 내용은 [노트북 태그][19]를 참조하세요. + +**참고**: 노트북을 설정하거나 수정하려면 [Datadog 브라우저 앱에 로그인][10]해야 합니다. 자세한 내용은 [Notebooks][18]를 참조하세요. + +## Traces {#traces} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/trace_may_2025.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 트레이스 목록을 보여주는 iOS traces 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Traces.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 트레이스 목록을 보여주는 Android traces 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Traces 페이지에서는 소속 Datadog 조직 내에서 액세스 가능한 트레이스 정보 모두를 조회하고 검색할 수 있습니다. 저장된 뷰를 통해 목록을 좁히거나 태그 전략에 따라 특정 검색 쿼리를 작성할 수 있습니다. 검색에 대한 자세한 내용은 [Trace Explorer 쿼리 구문][16]을 참조하세요. + +예를 들어, 태그 `#env:prod` 또는 태그 `#test`로 트레이스를 필터링하려면 쿼리 `"env:prod" OR test`를 사용합니다. 개별 서비스를 클릭하여 관련 스팬을 확장하고, 스팬을 선택하여 정보, 오류 및 관련 로그를 볼 수 있습니다. 서비스와 로그에서 트레이스를 열 수도 있습니다. + +**iOS에서만 사용 가능**: Watchdog Insights는 지연 시간 이상치와 오류 이상치를 지정합니다. 자세한 내용은 [Watchdog Insights][26]를 참조하세요. + + +## Logs {#logs} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/iOS_logs_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 로그 목록을 보여주는 iOS logs 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Logs.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 로그 목록을 보여주는 Android logs 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Logs 페이지에서는 Datadog 조직에서 액세스할 수 있는 모든 로그 또는 flex 로그를 조회하고 검색할 수 있습니다. 저장된 뷰 또는 쿼리 필터를 통해 목록을 좁힐 수 있습니다. 검색에 대한 자세한 내용은 [로그 검색 구문][23]을 참조하세요. + +로그 패턴별로 그룹화하고 다양한 로그 특성을 선택하여 결과를 클러스터링하거나 그룹화할 수도 있습니다. 로그 패턴에 대한 자세한 내용은 [패턴으로 로그 그룹화][22]를 참조하세요. + +**참고**: flex 로그를 활성화하려면 로그 목록으로 이동해 오른쪽 상단을 누르고 flex 로그를 활성화하세요. + +**iOS에서만 사용 가능**: Watchdog Insights는 로그 이상 및 이상치를 지정합니다. 자세한 내용은 [Watchdog Insights for Logs][25]를 참조하세요. + + +## Services {#services} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/service_may_2025_v2.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 서비스 목록을 보여주는 iOS services 페이지">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/Android_Services.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="검색 및 필터 옵션과 함께 서비스 목록을 보여주는 Android services 페이지">}} + +{{% /tab %}} +{{< /tabs >}} + +Services 페이지에서는 Datadog 모바일 앱을 통해 Datadog 계정에서 액세스할 수 있는 모든 서비스를 조회 및 검색하고 필터링하여 언제 어디서나 서비스의 상태를 확인할 수 있습니다. 해당 서비스와 관련된 최근 배포, 리소스, SLO 및 모니터링도 조회할 수 있습니다. 서비스 조사 도구에 대한 자세한 내용은 [카탈로그 관리][17]를 참조하세요. + +## Bits AI {#bits-ai} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="사용자가 서비스에 대해 질문하는 ios에서의 Bits AI 챗봇 인터페이스">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_chat.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="사용자가 서비스에 대해 질문하는 Android에서의 Bits AI 챗봇 인터페이스">}} + +{{% /tab %}} +{{< /tabs >}} + +Bits AI 홈페이지에서 조직의 시스템 상태에 대한 질문을 할 수 있습니다. Bits AI는 로그 및 APM 트레이스에 대한 자연어 쿼리를 지원합니다. 자세한 내용은 [Bits 채팅][27]을 참조하세요. + +### Bits Investigation {#bits-investigation} +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="service_management/mobile/ios_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="On-Call 페이지에 표시된 Bits Investigation 결과">}} + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="service_management/mobile/android_bits_sre.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="On-Call 페이지에 표시된 Bits Investigation 결과">}} + +{{% /tab %}} +{{< /tabs >}} + +활성화되면 Bits Investigation이 On-Call 페이지에서 직접 조사를 시작합니다. 이러한 조사는 초기 발견 사항과 결론을 제시하여 응답자가 잠재적인 근본 원인과 다음 단계를 식별하는 데 도움을 줍니다. 자세한 내용은 [Bits Investigation][28]을 참조하세요. + +## 자주 묻는 질문 {#frequently-asked-question} +### 모바일 앱에서 계속 로그인 상태를 유지하려면 어떻게 해야 하나요? {#how-do-i-remain-logged-into-the-mobile-app} +모바일 앱에서 성공적으로 인증을 마치면 90일 동안 로그인 상태를 유지합니다. + +**참고**: 알림이 활성화된 경우, 토큰 만료 10일 전에 사전 알림이 전송됩니다. + +### 자동으로 로그아웃되는 경우에 여전히 알림을 받을 수 있나요? {#will-i-still-receive-notifications-if-i-am-automatically-signed-out} +90일 토큰 기간 동안 자동으로 로그아웃되더라도 알림을 받을 수 있으며, 다시 로그인하라는 메시지가 표시됩니다. + +**참고**: 앱에서 수동으로 로그아웃하면 알림 수신이 중단됩니다. + +### 왜 알림을 받지 못하나요? {#why-am-i-not-receiving-notifications} +기기 앱 설정에서 Datadog 앱에 대한 알림이 활성화되어 있는지 확인하세요. 알림이 방해 금지 모드를 우회하도록 하려면, 중요 알림이 켜져 있는지 확인하세요. + +### 내가 로그인한 모든 조직에 대해 알림을 받을 수 있나요? {#will-i-receive-notifications-for-all-organizations-that-i-am-signed-into} +네, 전환하는 조직에 관계없이 로그인한 모든 조직에 대한 알림을 받습니다. 여기에는 중요한 푸시 알림이 포함됩니다. + +### 사용자가 비활성화되면 어떻게 되나요? {#what-happens-if-a-user-is-disabled} +모바일 앱 토큰이 무효화되어 사용자가 로그아웃됩니다. + +## 문제 해결 {#troubleshooting} + +문제 해결을 위한 도움은 [Datadog 지원팀에 문의하세요][13]. 또한 [Datadog 공개 Slack][14] [#mobile-app][15] 채널에 메시지를 보낼 수 있습니다. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://apps.apple.com/app/datadog/id1391380318 +[2]: https://play.google.com/store/apps/details?id=com.datadog.app +[3]: /ko/account_management/saml/#pagetitle +[4]: https://app.datadoghq.com/personal-settings/organizations +[5]: /ko/account_management/saml/mobile-idp-login/ +[6]: /ko/monitors/manage/#search +[7]: https://app.datadoghq.com/monitors +[8]: /ko/monitors/types +[9]: /ko/dashboards/template_variables/#saved-views +[10]: https://app.datadoghq.com/dashboard/lists +[11]: /ko/dashboards/ +[12]: /ko/monitors/incident_management +[13]: /ko/help/ +[14]: https://chat.datadoghq.com/ +[15]: https://datadoghq.slack.com/archives/C0114D5EHNG +[16]: /ko/tracing/trace_explorer/query_syntax/ +[17]: https://docs.datadoghq.com/ko/internal_developer_portal/catalog/set_up/ +[18]: https://docs.datadoghq.com/ko/notebooks/ +[19]: https://docs.datadoghq.com/ko/notebooks/#notebook-tags +[20]: https://docs.datadoghq.com/ko/incident_response/on-call/ +[21]: /ko/incident_response/on-call/guides/configure-mobile-device-for-on-call/?tab=ios +[22]: https://docs.datadoghq.com/ko/logs/explorer/analytics/patterns/ +[23]: https://docs.datadoghq.com/ko/logs/explorer/search_syntax/ +[24]: /ko/dashboards/configure/#configuration-actions +[25]: /ko/logs/explorer/watchdog_insights/ +[26]: /ko/watchdog/insights/?tab=logmanagement +[27]: /ko/bits_ai/bits_assistant/ +[28]: /ko/bits_ai/bits_ai_sre/ +[29]: /ko/account_management/multi_organization/#custom-sub-domains \ No newline at end of file diff --git a/content/ko/monitors/_index.md b/content/ko/monitors/_index.md index 5b295b27934..dc625482605 100644 --- a/content/ko/monitors/_index.md +++ b/content/ko/monitors/_index.md @@ -13,72 +13,86 @@ cascade: algolia: rank: 70 tags: - - 알림 - - 경고 - - 모니터링 + - alerts + - alerting + - monitoring description: 경고 플랫폼을 사용하여 모니터 생성, 알림 및 자동화 설정, 모니터 관리 further_reading: -- link: https://app.datadoghq.com/release-notes?category=Alerting - tag: 릴리스 노트 - text: 최신 Datadog 경고 릴리스를 확인하세요!(앱 로그인 필요) +- link: /api/v1/monitors/ + tag: 설명서 + text: Datadog 모니터 API - link: https://dtdg.co/fe - tag: 기초 구축 + tag: 기반 활성화 text: 효과적인 모니터 생성에 대한 대화형 세션에 참여하세요 - link: https://www.datadoghq.com/blog/monitoring-101-alerting/ tag: 블로그 - text: '모니터링 101: 중요한 사항에 대한 경고' -- link: /api/v1/monitors/ - tag: 설명서 - text: Datadog 모니터 API -title: 모니터링 + text: '모니터링 101: 중요한 사항에 대한 경보' +- link: https://www.datadoghq.com/blog/monitor-notification-rules/ + tag: 블로그 + text: Datadog 모니터 알림 규칙을 사용해 모니터 경보 라우팅 +- link: https://www.datadoghq.com/blog/ecs-default-monitors/ + tag: 블로그 + text: 기본 모니터와 ECS Explorer를 사용하여 ECS 문제를 더 빠르게 탐지하고 해결 +- link: https://www.datadoghq.com/blog/zendesk-cost-optimization + tag: 블로그 + text: '규모에 맞는 Datadog 최적화: Zendesk의 비용 효율적 관측 가능성' +- link: https://www.datadoghq.com/blog/human-name-detection + tag: 블로그 + text: Sensitive Data Scanner에서 ML을 사용하여 로그의 인명 감지 +- link: https://app.datadoghq.com/release-notes?category=Alerting + tag: 릴리스 노트 + text: 최신 Datadog Alerting 릴리스를 확인하세요! (앱 로그인 필요). +- link: https://learn.datadoghq.com/courses/apm-monitors-and-alerting + tag: 학습 센터 + text: APM Monitors and Alerting +title: 모니터 --- +## 개요 {#overview} -## 개요 - -Datadog 모니터링은 인프라스트럭처에 관한 중요한 가시성을 제공하여, 성능 문제 및 서비스 중단을 사전에 감지하고 실시간으로 대응할 수 있도록 도와드립니다. 조직은 주요 메트릭 및 임계값을 추적하도록 모니터링을 설정하여 시스템 다운타임이 발생하거나 문제가 고객에게 영향을 미치기 전에 즉시 알림을 받고 해당 문제를 해결할 수 있습니다. +Datadog Monitor를 사용하면 인프라에 대한 중요한 가시성을 제공하여 성능 문제 및 장애를 사전에 탐지하고 실시간으로 대응할 수 있습니다. 주요 메트릭과 임계값을 추적하도록 모니터를 구성하면 조직은 즉각적인 경보를 받고 고객 영향이나 시스템 가동 중지가 발생하기 전에 문제를 해결할 수 있습니다. -경고 플랫폼을 통해 메트릭, 통합 가용성 및 네트워크 엔드포인트를 확인하여 중요 변경 사항을 모니터링할 수 있습니다. Datadog 모니터링을 사용하면 다음 작업을 수행할 수 있습니다. +Alerting 플랫폼을 통해 메트릭, 통합 가용성 및 네트워크 엔드포인트를 확인하여 중요한 변경 사항을 모니터링하세요. Datadog Monitor를 사용하면 다음이 가능합니다. - 모니터링 및 응답 프로세스 간소화 - 운영 효율성 향상 - 성능 최적화 -## 시작하기 +## 시작하기 {#get-started} -Datadog 모니터링을 시작하는 가장 빠른 방법은 [권장 모니터링][1]을 활용하는 것입니다. 이는 Datadog 및 통합 파트너가 미리 설정한 Datadog의 모니터링 모음입니다. +Datadog Monitor를 시작하는 가장 빠른 방법은 [모니터 템플릿][1]을 사용하는 것입니다. 모니터 템플릿은 Datadog 및 통합 파트너가 미리 구성해 둔 모니터 모음입니다. -또한 학습 센터(Learning Center)의 랩 환경이나 모니터링 시작하기 지침에 따라 처음부터 직접 모니터링을 만들 수 있습니다. +또한 학습 센터의 실습 환경이나 모니터 시작하기 가이드를 통해 처음부터 직접 모니터를 생성할 수도 있습니다. -{{< whatsnext desc="다음 리소스를 사용하여 모니터링 생성하기:" >}} - {{< nextlink href="/getting_started/monitors/" >}}모니터링 시작하기: 메트릭 기반 모니터링 생성 방법{{< /nextlink >}} - {{< nextlink href="/monitors/types/" >}}모니터링 유형으로 모니터링 생성하기{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}학습 센터: 샌드박스 랩 환경에서 모니터 구축{{< /nextlink >}} +{{< whatsnext desc="모니터 생성에 사용할 수 있는 리소스:" >}} + {{< nextlink href="/getting_started/monitors/" >}}모니터 시작하기: 메트릭 기반 모니터를 구축하는 방법에 대한 가이드{{< /nextlink >}} + {{< nextlink href="/monitors/types/" >}}모니터 유형에서 모니터 만들기{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}학습 센터: 샌드박스 실습 환경에서 모니터 구축{{< /nextlink >}} {{< /whatsnext >}} -## 집계 데이터 분석 +## 집계 데이터 분석 {#analyze-aggregate-data} -데이터는 이해하기 쉽고, 세부적이며 범위에 따라 태그가 지정되고 장기 보관되어야 합니다. 긴급도에 따라 알림 및 진단에 다양한 데이터 유형을 활용하세요. 모든 애플리케이션을 계측하고 가능한 한 많은 관련 데이터를 수집하면 복잡한 시스템에 대한 종합적인 측정 및 관측이 가능합니다. +데이터는 잘 이해되고, 세분화되어 있으며, 범위에 따라 태그가 붙어 있고, 장기간 보존되어야 합니다. 긴급도 수준에 따라 경보와 진단에 서로 다른 데이터 유형을 사용하는 것이 좋습니다. 복잡한 시스템에 대한 포괄적인 측정과 관측성을 확보하기 위해 모든 애플리케이션을 계측하고 가능한 한 많은 관련 데이터를 수집하세요. -Datadog으로 애플리케이션의 서비스 상태와 인프라스트럭처의 상태를 측정합니다. Datadog 플랫폼 전반의 데이터를 사용하여 잠재적 문제에 대한 알림을 생성하세요. +Datadog을 사용하여 애플리케이션 상태와 인프라 상태를 측정하세요. Datadog 플랫폼 전반의 데이터를 활용하여 잠재적인 문제를 탐지하는 경보를 생성하세요. -## 중요한 사항에 대한 알림 +## 중요한 사항에 대한 경보 {#alert-on-what-matters} -[모니터링 알림][2]을 설정하여 팀에 문제를 알리고 트러블슈팅 지침을 제공합니다. 적합한 팀원에게 해당 알림을 전달하고, 템플릿 변수를 활용하여 상세 정보를 포함합니다. 이메일 또는 Slack으로 경고를 보낼 때 스냅샷을 첨부합니다. +[Monitor Notifications][2]를 설정하여 문제 발생 시 팀에 알리고 문제 해결 가이드를 제공하세요. 적절한 담당자에게 알림을 전달하고, 세부 정보를 포함하기 위한 템플릿 변수를 활용하며, 이메일이나 Slack으로 경보를 보낼 때 스냅샷을 첨부하세요. -경고 피로도를 줄여 팀이 중요한 사항에 대한 알림을 해결하는 데 집중할 수 있도록 합니다. [다운타임][3]을 생성하여 애플리케이션 유지 관리 도중 알림을 음소거합니다. +경보 피로를 줄여 팀이 정말 중요한 경보 해결에 집중할 수 있도록 하세요. 애플리케이션 유지보수 기간 동안 경보음을 소거하려면 [가동 중지][3]를 생성하세요. -## 다음 단계 +## 다음 단계 {#whats-next} -모니터링과 알림은 IT 시스템과 애플리케이션의 안정성, 성능, 가용성을 보장하기 위한 필수 도구입니다. 문제가 커지기 전에 해당 문제를 신속하게 감지하고 대응하여 운영 효율성을 유지하고 사용자 경험을 개선하며 잠재적 위험을 완화할 수 있도록 도와드립니다. 모니터링의 기능에 대해 자세히 알아보세요. -1. [다운타임을 예약하여 모니터링을 음소거합니다.][4] -1. [모니터링을 관리 및 구성합니다.][5] -1. [상태 페이지를 통해 알림을 조사합니다.][6] -1. [모니터링 품질 페이지에서 잘못 설정된 모니터링을 해결합니다.][7] +모니터와 경보는 IT 시스템과 애플리케이션의 신뢰성, 성능 및 가용성을 보장하는 데 필수적인 도구입니다. 이들은 운영 효율성을 유지하고, 사용자 경험을 개선하며, 문제가 확대되기 전에 신속하게 감지하고 대응할 수 있도록 하여 잠재적인 위험을 완화하는 데 도움을 줍니다. 모니터 기능에 대해 자세히 알아보세요. +1. [가동 중지 예약을 통해 모니터 음소거][4] +1. [모니터링 구성 및 관리][5] +1. [상태 페이지를 통한 경보 조사][6] +1. [모니터 품질 페이지에서 잘못 설정된 모니터 해결][7] -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://app.datadoghq.com/monitors/recommended +[1]: https://app.datadoghq.com/monitors/templates [2]: /ko/monitors/notify [3]: /ko/monitors/downtimes [4]: /ko/monitors/downtimes/?tab=bymonitorname diff --git a/content/ko/monitors/configuration/_index.md b/content/ko/monitors/configuration/_index.md index 6611e34ec8f..c8f6772ed8c 100644 --- a/content/ko/monitors/configuration/_index.md +++ b/content/ko/monitors/configuration/_index.md @@ -1,7 +1,7 @@ --- aliases: - /ko/monitors/create/configuration -description: 모니터 생성 페이지를 설명합니다. +description: 모니터 생성 페이지에 대해 설명합니다. further_reading: - link: /monitors/notify/ tag: 설명서 @@ -9,310 +9,351 @@ further_reading: - link: /monitors/manage/ tag: 설명서 text: 모니터 관리 -- link: /monitors/manage/status/ +- link: /monitors/status/ tag: 설명서 text: 모니터 상태 -title: 모니터 설정 +- link: https://www.datadoghq.com/blog/manage-monitors-with-datadog-teams/ + tag: 블로그 + text: Datadog Teams를 사용하여 모니터를 더욱 효율적으로 관리하기 +- link: https://learn.datadoghq.com/courses/alert-monitor-notifications + tag: 학습 센터 + text: 경보 사용자 지정 모니터 알림 +title: 모니터 구성 --- +## 개요 {#overview} -## 개요 +모니터 구성을 시작하려면 다음 단계를 완료하세요. -모니터 설정을 시작하려면 다음을 완료합니다: +* **검색 쿼리 정의:** 이벤트 수를 집계하고, 메트릭을 측정하고, 하나 이상의 차원을 기준으로 그룹화하는 등의 작업을 수행할 수 있도록 쿼리를 작성합니다. +* **경보 조건 설정:** 경보 및 경고 임계값, 평가 시간 범위를 정의하고 고급 경보 옵션을 구성합니다. +* **알림 및 자동화 구성:** 변수를 사용하여 사용자 지정 알림 제목과 메시지를 작성합니다. 알림을 팀에 전송하는 방법(이메일, Slack 또는 PagerDuty)을 선택합니다. 경보 알림에 워크플로 자동화 또는 케이스를 포함합니다. +* **권한 및 감사 알림 정의:** 세분화된 액세스 제어를 구성하고 모니터를 편집할 수 있는 특정 역할 및 사용자를 지정합니다. 모니터가 수정될 경우 알림을 받을 수 있도록 감사 알림을 활성화합니다. -* **검색 쿼리를 정의합니다.** 이벤트 수를 세고, 메트릭을 측정하고, 1차원 또는 여러 차원으로 그룹화하는 등의 쿼리를 설정합니다. -* **알림 조건을 설정합니다:** 알림 및 경고 임계값, 평가 시간 프레임을 정의하고 고급 알림 옵션을 설정합니다. -* **무슨 일이 일어나고 있는지 알려줍니다:** 변수를 사용하여 커스텀 알림 제목과 메시지를 작성합니다. -* **팀에 알립니다:** 팀에 알림을 전송하는 방법을 선택합니다(이메일, Slack, PagerDuty 등). +## 검색 쿼리 정의 {#define-the-search-query} -## 검색 쿼리 정의 +검색 쿼리 작성 방법에 대한 자세한 내용은 각 [모니터 유형][1] 페이지를 참조하세요. -검색 쿼리를 설정하는 방법은 개별 [모니터 유형][1] 페이지를 참조하세요. 검색 쿼리를 정의하면 검색 필드 위의 미리보기 그래프가 업데이트됩니다. +## 미리 보기 그래프 {#preview-graphs} -{{< img src="/monitors/create/preview_graph_monitor.mp4" alt="그래프 미리보기" video=true style="width:90%;">}} +쿼리를 작성하거나 수정하는 동안 구성 화면 상단의 미리 보기 그래프는 결과를 실시간으로 반영하여 동적으로 업데이트됩니다. -## 경고 조건 설정 +{{< tabs >}} +{{% tab "Evaluated Data" %}} + +{{< img src="/monitors/configuration/evaluated_data_preview_high_error_rate.png" alt="Evaluated Data 미리 보기 그래프" style="width:100%;" >}} + +Evaluated Data 그래프는 현재 쿼리와 임계값을 기준으로 모니터가 데이터를 어떻게 평가했을지를 보여줍니다. 평가 미리 보기를 사용하면 다음을 수행할 수 있습니다. +- 과거 상태 전환 확인(예: `OK` → `ALERT`) +- 모니터가 어떻게 동작했을지 이해 +- 누가 알림을 받게 되는지 미리 확인(알림 규칙에 따른 대상 포함) +- 저장하기 전에 구성 오류를 빠르게 발견 + +이 기능은 Metrics, Logs, APM, RUM, Events, Audit, Database, LLM Observability 및 Deployment 모니터에서 지원됩니다. + +{{% /tab %}} + +{{% tab "Source Data" %}} + +{{< img src="/monitors/configuration/source_data_graph_high_error_rate.png" alt="Source Data 미리 보기 그래프" style="width:100%;" >}} + +Source Data 그래프는 임계값 평가나 경보 로직을 적용하지 않은 상태에서 모니터의 원본 시계열 또는 쿼리 출력 결과를 표시합니다. 이를 통해 다음을 수행할 수 있습니다. + +- 모니터가 평가하는 기본 데이터를 시각화. +- 경보 상태 변경과 실제 데이터 추세 간의 상관관계 확인. +- 경보 조건을 구성하기 전에 데이터의 이상, 누락 구간 또는 예상치 못한 패턴 식별. + +소스 데이터 그래프를 사용하여 쿼리가 예상한 결과를 반환하는지 확인하고, 경보 임계값과 평가 윈도우를 보다 정확하게 조정할 수 있습니다. -경고 조건은 [모니터 유형][1]에 따라 달라집니다. 쿼리 값이 임계값을 넘거나 특정 개수의 연속적인 검사에 실패할 경우 트리거하도록 모니터를 설정합니다. +{{% /tab %}} +{{< /tabs >}} + +## 경보 조건 설정 {#set-alert-conditions} + +경보 조건은 [모니터 유형][1]에 따라 달라집니다. 쿼리 값이 임계값을 초과하거나 일정 횟수 이상의 연속 검사 실패가 발생한 경우 모니터를 트리거하도록 구성할 수 있습니다. {{< tabs >}} -{{% tab "임계값 경고" %}} +{{% tab "임계값 알림" %}} -* 메트릭의 `average`, `max`, `min` 또는 `sum`이 -* 임계값에 대해 `above`, `above or equal to`, `below` 또는 `below or equal to`일 때 트리거합니다. -* 지난 `5 minutes`, `15 minutes`, `1 hour` 또는 `custom`에 1분에서 48시간 사이의 (메트릭 모니터는 1개월) 값을 설정합니다. +* 메트릭의 `average`, `max`, `min` 또는 `sum`이 +임계값과 비교하여 * `above`, `above or equal to`, `below` 또는 `below or equal to`이고 +* 지난 `5 minutes`, `15 minutes`, `1 hour` 또는 `custom`(1분~48시간 범위 설정 가능, 메트릭 모니터의 경우 1개월) 동안의 기간에 속한 경우 트리거합니다. -### 집계 방법 +### 집계 방식 {#aggregation-method} -쿼리는 일련의 포인트를 반환하지만 임계값과 비교하려면 단일 값이 필요합니다. 모니터는 평가 창의 데이터를 단일 값으로 줄여야 합니다. +쿼리는 일련의 데이터 포인트를 반환하지만, 임계값과 비교하기 위해서는 단일 값이 필요합니다. 따라서 모니터는 평가 윈도우 내의 데이터를 하나의 값으로 축약해야 합니다. | 옵션 | 설명 | |-------------------------|--------------------------------------------------------| -| 평균 | 이 시리즈는 임계값을 기준으로 확인되는 단일 값을 생성하기 위해 평균화됩니다. 이 값은 모니터 쿼리에 `avg()` 함수를 추가합니다. | -| 최대 | 생성된 시리즈의 단일 값이 임계값을 넘으면 경고가 트리거되며 모니터 쿼리에 `max()` 함수를 추가합니다.* | -| 최소 | 쿼리에 대한 평가 창의 모든 포인트가 임계값을 넘으면 경고가 트리거되며 모니터 쿼리에 `min()`함수를 추가합니다.* | -| 합 | 시리즈의 모든 포인트의 합계가 임계값을 넘으면 경고가 트리거됩니다. 이는 모니터 쿼리에 `sum()` 함수를 추가합니다. | +| average | 시계열의 값을 평균하여 단일 값을 생성한 후 임계값과 비교합니다. 모니터 쿼리에 `avg()` 함수를 추가합니다. | +| max | 생성된 시계열 내의 값 중 하나라도 임계값을 초과하면 경보가 트리거됩니다. 모니터 쿼리에 `max()` 함수를 추가합니다.* | +| min | 쿼리의 평가 윈도우 내 모든 데이터 포인트가 임계값을 초과하면 경보가 트리거됩니다. 모니터 쿼리에 `min()` 함수를 추가합니다.* | +| sum | 시계열의 모든 데이터 포인트 합계가 임계값을 초과하면 경보가 트리거됩니다. 모니터 쿼리에 `sum()` 함수를 추가합니다. | + +\* 위의 max 및 min 설명은 메트릭이 임계값을 _초과_할 때 경보가 발생하는 경우를 가정합니다. 메트릭이 임계값 _미만_일 때 경보가 발생하도록 설정된 모니터에서는 max와 min의 동작이 반대로 적용됩니다. 추가 예시는 [모니터 애그리게이터][1] 가이드를 참조하세요. -\* 최대와 최소에 대한 설명은 메트릭이 임계값보다 _초과_할 때 모니터가 경고를 한다고 가정합니다. 임계값이 _미만_일 때 경고하는 모니터의 경우 최대와 최소 동작이 반대가 됩니다. +**참고**: `as_count()`를 사용할 경우 동작 방식이 달라질 수 있습니다. 자세한 내용은 [모니터 평가의 as_count()][2]를 참조하세요. -**참고**: `as_count()` 사용 시 동작이 다릅니다. 자세한 내용은 [모니터 평가에서의 [as_count()][1]를 참조하세요. +### 평가 윈도우 {#evaluation-window} -### 평가 창 +모니터는 누적 시간 윈도우 또는 롤링 시간 윈도우를 사용하여 평가할 수 있습니다. 누적 시간 윈도우는 "현재 시점까지 사용 가능한 모든 데이터의 합계는 얼마인가?"와 같이 과거 맥락이 필요한 질문에 적합합니다. 롤링 시간 윈도우는 "최근 _N_개의 데이터 포인트 평균은 얼마인가?"와 같이 과거 전체 맥락이 필요하지 않은 질문에 적합합니다. -누적 시간 창 또는 롤링 시간 창을 사용하여 모니터를 평가할 수 있습니다. 누적 시간 창은 "이 시점까지 사용 가능한 모든 데이터의 합계가 얼마인가요?"와 같이 과거에 대한 맥락이 필요한 질문에 가장 적합합니다. 롤링 시간 창은 "마지막 _N_ 데이터 포인트의 평균은 얼마인가요?"와 같이 이러한 맥락이 필요하지 않은 질문에 적합합니다. +아래 그림은 누적 시간 윈도우와 롤링 시간 윈도우의 차이를 보여줍니다. -아래 값은 누적 시간과 롤링 시간 창의 차이를 보여줍니다. +{{< img src="/monitors/create/rolling_vs_expanding.png" alt="누적 시간 윈도우와 롤링 시간 윈도우를 보여주는 두 개의 그래프. 누적 시간 윈도우는 시간이 지남에 따라 계속 확장됩니다. 롤링 시간 윈도우는 특정 시점을 기준으로 일정 범위를 유지합니다." style="width:100%;">}} -{{< img src="/monitors/create/rolling_vs_expanding.png" alt="누적 시간과 롤링 시간 창을 보여주는 두 개의 그래프입니다. 누적 시간 창은 시간이 지남에 따라 계속 확장됩니다. 롤링 시간 창은 특정 시점의 특정 순간을 포함합니다." style="width:100%;">}} +#### 롤링 시간 윈도우 {#rolling-time-windows} -#### 롤링 시간 창 +롤링 시간 윈도우는 고정된 크기를 가지며 시간이 지남에 따라 시작 지점이 이동합니다. 모니터는 최근 `5 minutes`, `15 minutes`, `1 hour` 또는 최대 1개월까지의 사용자 지정 시간 윈도우를 기준으로 데이터를 조회할 수 있습니다. -롤링 시간 창은 고정된 크기를 가지며, 시간이 지남에 따라 시작점이 이동합니다. 모니터는 지난 `5 minutes`, `15 minutes`, `1 hour` 또는 커스텀 특정 시간 창을 통해 찾아볼 수 있도록 지원합니다. +**참고**: [로그 모니터][6]의 최대 롤링 시간 윈도우는 `2 days`입니다. -#### 누적 시간 창 -누적 시간 창은 시작점이 고정되어 있고 시간이 지남에 따라 확장됩니다. 모니터는 세 가지 다른 누적 시간 창을 지원합니다. +#### 누적 시간 윈도우 {#cumulative-time-windows} +누적 시간 윈도우는 시작 시점이 고정되어 있으며 시간이 지남에 따라 범위가 확장됩니다. 모니터는 다음 세 가지 누적 시간 윈도우를 지원합니다. -- `Current hour`: 1시간의 구성 가능한 분에서 시작하는 최대 1시간의 시간 창입니다. 예를 들어 0분부터 시작하여 1시간 동안 HTTP 엔드포인트가 수신하는 호출의 양을 모니터링할 수 있습니다. -- `Current day`: 하루 중 설정 가능한 시간과 분으로 시작하는 최대 24시간의 시간 창입니다. 예를 들어, `current day`시간 창을 사용하고 오후 2시(UTC)에 시작하도록 하여 [일별 로그 인덱스 할당량][2]을 모니터링합니다. -- `Current month`: 매월 1일 자정(UTC)을 기준으로 현재 월을 되돌아봅니다. 이 옵션은 월별 누계 시간 창을 나타내며 메트릭 모니터에서만 사용할 수 있습니다. +- `Current hour`: 한 시간 중 구성 가능한 분에 시작하며, 최대 1시간 길이의 시간 윈도우입니다. 예를 들어 매시 정각(0)분에 시작하여 1시간 동안 HTTP 엔드포인트가 수신한 호출 수를 모니터링할 수 있습니다. +- `Current day`: 하루 중 구성 가능한 시간과 분에 시작하며, 최대 24시간 길이의 시간 윈도우입니다. 예를 들어 `current day` 시간 윈도우를 사용하고 시작 시간을 UTC 오후 2시로 설정하여 [일일 로그 인덱스 할당량][3]을 모니터링할 수 있습니다. +- `Current month`: 매월 지정된 날짜의 특정 시각과 분부터 시작하여 현재 월을 기준으로 데이터를 조회합니다. 이 옵션은 월 누계 시간 윈도우를 나타내며 메트릭 모니터에서만 사용할 수 있습니다. -{{< img src="/monitors/create/cumulative_window_example.png" alt="Datadog 인터페이스에서 누적 창을 구성하는 방법을 보여주는 스크린샷입니다. 사용자가 aws.sqs.number_of_messages_received를 검색했습니다. 옵션은 현재 월에 대한 쿼리의 합계를 평가하도록 설정되어 있습니다." style="width:100%;">}} +{{< img src="/monitors/create/cumulative_window_example_more_options.png" alt="Datadog 인터페이스에서 누적 윈도우가 구성된 방법에 대한 스크린샷. 사용자는 aws.sqs.number_of_messages_received를 검색했습니다. 옵션은 CURRENT MONTH 동안 쿼리의 SUM을 평가하도록 설정되어 있습니다." style="width:100%;">}} -누적 시간 창은 최대 시간 스팬(span)에 도달한 후 재설정됩니다. 예를 들어, `current month` 누적 시간 창은 매월 1일 자정(UTC)에 자동으로 초기화됩니다. 또는 분 30부터 시작하는 `current hour`의 누적 시간 창은 매 시간마다 자동으로 재설정됩니다. 예를 들어 오전 6시 30분, 오전 7시 30분, 오전 8시 30분입니다. +누적 시간 윈도우는 최대 기간에 도달하면 재설정됩니다. 예를 들어 `current month`를 기준으로 하는 누적 시간 윈도우는 매월 1일 UTC 자정에 재설정됩니다. 또한 30분에 시작하는 `current hour` 누적 시간 윈도우는 매시간 재설정됩니다. 예를 들어 오전 6시 30분, 오전 7시 30분, 오전 8시 30분에 재설정됩니다. -### 평가 빈도 +### 평가 빈도 {#evaluation-frequency} -평가 빈도는 Datadog이 모니터 쿼리를 수행하는 빈도를 정의하며, 대부분 설정에서 평가 빈도는 `1 minute`입니다. 즉, 모니터는 매 분마다 [선택된 평가 창](#evaluation-window)을 통해 [선택된 데이터](#defin-the-search-query)를 쿼리하고 집계된 값을 [정의된 임계값](#thresholds)과 비교합니다. +평가 빈도는 Datadog이 모니터 쿼리를 얼마나 자주 실행하는지를 정의합니다. 대부분의 구성에서 평가 빈도는 `1 minute`입니다. 즉, 매분마다 모니터가 [선택된 데이터](#define-the-search-query)를 [선택된 평가 윈도우](#evaluation-window) 동안 조회하고, 집계된 값을 [정의된 임계값](#thresholds)과 비교합니다. -기본적으로 평가 빈도는 사용되는 [평가 창](#evaluation-window)에 따라 달라집니다. 창이 길수록 평가 빈도가 줄어듭니다. 다음 표는 더 큰 시간 창에서 평가 빈도를 제어하는 방법을 보여줍니다: +기본적으로 평가 빈도는 사용 중인 [평가 윈도우](#evaluation-window)에 따라 결정됩니다. 평가 윈도우가 길어질수록 평가 빈도는 낮아집니다. 다음 표는 더 긴 시간 윈도우에 따라 평가 빈도가 어떻게 조정되는지 보여줍니다. -| 평가 창 범위 | 평가 빈도 | +| 평가 윈도우 범위 | 평가 빈도 | |---------------------------------|-----------------------| -| 창 < 24 시간 | 1분 | -| 24 시간 <= 창 < 48 hours | 10분 | -| 창 >= 48시간 | 30분 | +| 윈도우 < 24시간 | 1분 | +| 24시간 <= 윈도우 < 48시간 | 10분 | +| 윈도우 >= 48시간 | 30분 | -일, 주, 또는 월 단위로 모니터의 경고 상태를 확인하도록 평가 빈도를 설정할 수도 있습니다. 이 설정에서 평가 빈도는 더 이상 평가 창에 의존하지 않고 설정된 스케줄에 따라 달라집니다. +모니터의 경보 조건을 매일, 매주 또는 매월 확인하도록 평가 빈도를 구성할 수도 있습니다. 이 구성에서 평가 빈도는 더 이상 평가 윈도우에 의해 결정되지 않고, 구성된 일정에 따라 결정됩니다. -자세한 내용은 [모니터 평가 빈도 사용자 정의][4] 방법에 대한 안내를 참조하세요. +자세한 내용은 [모니터 평가 빈도 사용자 지정][4] 가이드를 참조하세요. -### 임계값 +### 임계값 {#thresholds} -임계값을 사용하여 경고를 트리거하기 위한 숫자 값을 설정합니다. 선택한 메트릭에 따라 편집기에 사용된 단위(`byte`, `kibibyte`, `gibibyte` 등)가 표시됩니다. +임계값을 사용하여 경보를 트리거할 수 있는 수치 값을 설정합니다. 선택한 메트릭에 따라 편집기에는 사용되는 단위(`byte`, `kibibyte`, `gibibyte` 등)가 표시됩니다. -Datadog에는 두 가지 유형의 알림(알림 및 경고)이 있습니다. 모니터는 알림 또는 경고 임계값을 기반으로 자동 복구되지만 추가 조건을 지정할 수 있습니다. 복구 임계값에 대한 자세한 내용은 [복구 임계값이란?][3]을 참조하세요. 예를 들어 메트릭이 `3`보다 초과되고 복구 임계값이 지정되지 않았을 때 모니터가 알리는 경우 메트릭 값이 `3` 아래로 떨어지면 모니터가 복구됩니다. +Datadog은 두 가지 유형의 알림(경보 및 경고)을 제공합니다. 모니터는 경보 또는 경고 임계값을 기준으로 자동 복구되지만, 추가 조건을 지정할 수도 있습니다. 복구 임계값에 대한 자세한 내용은 [복구 임계값이란 무엇인가요?][5]를 참조하세요. 예를 들어 메트릭이 `3`을 초과할 때 모니터가 경보를 발생시키고 복구 임계값이 지정되지 않은 경우, 메트릭 값이 다시 `3` 아래로 내려가면 모니터가 자동으로 복구됩니다. | 옵션 | 설명 | |------------------------------------------|--------------------------------| -| Alert threshold **(필수)** | 경고 알림을 트리거하는 데 사용되는 값. | -| Warning threshold | 경고 알림을 트리거하는 데 사용되는 값. | -| Alert recovery threshold | 경고 복구에 대한 추가 조건을 나타내는 임계값(선택 사항). | -| Warning recovery threshold | 경고 복구에 대한 추가 조건을 나타내는 임계값(선택 사항). | +| 경보 임계값 **(필수)** | 경보 알림을 트리거하는 데 사용되는 값입니다. | +| 경고 임계값 | 경고 알림을 트리거하는 데 사용되는 값입니다. | +| 경보 복구 임계값 | 경보 복구를 위한 추가 조건을 지정하는 선택적 임계값입니다. | +| 경고 복구 임계값 | 경고 복구를 위한 추가 조건을 지정하는 선택적 임계값입니다. | -임계값을 변경하면 편집기의 미리보기 그래프에 컷오프 지점을 나타내는 마커가 표시됩니다. +임계값을 변경하면 편집기의 미리 보기 그래프에 기준 지점을 나타내는 마커가 표시됩니다. -{{< img src="/monitors/create/preview_graph_thresholds.png" alt="임계값 미리보기 그래프" style="width:100%;">}} +{{< img src="/monitors/create/preview_graph_thresholds.png" alt="임계값 미리 보기 그래프" style="width:100%;">}} -**참고**: 임계값의 10진수 값을 입력할 때 값이 `<1`이라면 숫자에 선행 문자 `0`을 추가합니다. 예를 들어, `.5`가 아닌 `0.5`을 사용합니다. +**참고**: 임계값에 소수 값을 입력할 때 값이 `<1`인 경우 숫자 앞에 `0`을 추가하세요. 예를 들어 `.5`가 아니라 `0.5`를 사용하세요. -[1]: /ko/monitors/guide/as-count-in-monitor-evaluations/ -[2]: https://docs.datadoghq.com/ko/logs/log_configuration/indexes/#set-daily-quota -[3]: /ko/monitors/guide/recovery-thresholds/ +[1]: /ko/monitors/guide/monitor_aggregators/ +[2]: /ko/monitors/guide/as-count-in-monitor-evaluations/ +[3]: https://docs.datadoghq.com/ko/logs/log_configuration/indexes/#set-daily-quota [4]: /ko/monitors/guide/custom_schedules +[5]: /ko/monitors/guide/recovery-thresholds/ +[6]: /ko/monitors/types/log/ {{% /tab %}} -{{% tab "검사 알림" %}} +{{% tab "검사 경보" %}} -검사 알림은 검사 그룹별로 제출된 연속 상태를 추적하여 임계값과 비교합니다. 검사 알림은 다음과 같이 설정합니다: +검사 경보는 각 검사 그룹에서 연속적으로 제출된 상태를 추적하고 이를 임계값과 비교합니다. 검사 경보를 다음과 같이 설정할 수 있습니다. -1. 선택 후 연속 실패가 발생하면 알림을 트리거합니다: `` +1. 선택한 횟수만큼 연속 실패한 후 경보 트리거: `` - 각 검사 실행은 `OK`, `WARN` 또는 `CRITICAL`의 단일 상태를 제출합니다. `WARN` 및 `CRITICAL` 상태로 연속 실행할 횟수를 선택하여 알림을 트리거합니다. 예를 들어, 프로세스에 연결이 실패한 단일 오류가 있을 수 있습니다. 이 값을 `> 1`로 설정하면 해당 오류는 무시되지만 두 번 이상 연속으로 실패할 경우 알림을 트리거합니다. + 각 검사 실행은 `OK`, `WARN` 또는 `CRITICAL` 중 하나의 상태를 제출합니다. `WARN` 및 `CRITICAL` 상태가 몇 회 연속 발생했을 때 알림을 보낼지 선택합니다. 예를 들어 프로세스에서 연결 실패가 한 번만 발생하는 일시적인 문제가 있을 수 있습니다. 이 값을 `> 1`로 설정하면 이러한 일시적인 문제는 무시되지만, 두 번 이상 연속 실패하는 경우에는 알림이 전송됩니다. - {{< img src="/monitors/create/check_thresholds_alert_warn.png" alt="임계값 알림/경고 확인" style="width:90%;">}} + {{< img src="/monitors/create/check_thresholds_alert_warn.png" alt="검사 임계값 경보/경고" style="width:90%;">}} -2. 선택한 연속 성공 후 경고 해결: `` +2. 선택한 횟수만큼 연속 성공한 후 경보 해제: `` - `OK` 상태에서 알림을 해결하는 연속 실행 횟수를 선택합니다. + `OK` 상태가 몇 회 연속 발생했을 때 경보를 해제할지 선택합니다. - {{< img src="/monitors/create/check_thresholds_recovery.png" alt="임계값 복구 확인" style="width:90%;">}} + {{< img src="/monitors/create/check_thresholds_recovery.png" alt="검사 임계값 복구" style="width:90%;">}} -검사 알림 설정에 대한 자세한 내용은 [프로세스 검사][1], [통합 검사][2] 및 [커스텀 검사][3] 모니터 설명서를 참조하세요. +검사 경보 구성에 대한 자세한 내용은 [프로세스 검사][1], [통합 검사][2], [사용자 지정 검사][3] 모니터 설명서를 참조하세요. [1]: /ko/monitors/types/process_check/ -[2]: /ko/monitors/types/integration/?tab=checkalert#integration-status +[2]: /ko/monitors/types/integration/?tab=checkalert#integration-metric [3]: /ko/monitors/types/custom_check/ {{% /tab %}} {{< /tabs >}} -### 고급 알림 조건 +### 고급 경보 조건 {#advanced-alert-conditions} -#### 데이터 없음 +#### 데이터 없음 {#no-data} -누락된 데이터에 대한 알림은 메트릭이 일반적인 상황에서 항상 데이터를 보고할 것으로 예상하는 경우 유용합니다. 예를 들어 Agent가 있는 호스트가 계속해서 가동 중이어야 하는 경우 `system.cpu.idle` 메트릭이 항상 데이터를 보고할 것으로 예상할 수 있습니다. +누락된 데이터에 대한 알림은 정상적인 상황에서 메트릭이 항상 데이터를 보고해야 하는 경우에 유용합니다. 예를 들어 Agent가 설치된 호스트가 항상 실행 상태여야 한다면, `system.cpu.idle` 메트릭이 지속적으로 데이터를 보고할 것으로 기대할 수 있습니다. -이러한 경우 누락된 데이터에 대한 알림을 활성화해야 합니다. 아래 섹션에서 각 옵션을 사용하여 수행하는 방법에 대해 알아보세요. +이 경우 데이터 누락 알림을 활성화하는 것이 좋습니다. 아래 섹션에서는 각 옵션을 사용하여 이를 설정하는 방법을 설명합니다. -**참고**: 누락된 데이터에 대해 경고하기 전에 모니터가 데이터를 평가할 수 있어야 합니다. 예를 들어, `service:abc`에 대한 모니터와 `service`가 보고하지 않는 데이터를 생성할 때 모니터가 알림을 보내지 않습니다. +**참고**: 데이터 누락에 대한 경보를 발생시키려면 먼저 모니터가 데이터를 평가할 수 있어야 합니다. 예를 들어 `service:abc`에 대한 모니터를 생성했는데 해당 `service`의 데이터가 보고되지 않는 경우, 모니터는 경보를 전송하지 않습니다. -누락된 데이터를 처리하는 두 가지 방법이 있습니다: -- 제한된 `Notify no data` 옵션을 사용하는 메트릭 기반 모니터 -- `On missing data` 옵션은 APM 트레이스 분석, 감사(Audit) 로그, CI 파이프라인, 오류 추적, 이벤트, 로그, RUM 모니터에서 지원됩니다. +데이터가 `N`분 동안 누락된 경우, 드롭다운 메뉴에서 옵션을 선택하세요. -{{< tabs >}} -{{% tab "메트릭 기반 모니터" %}} +{{< img src="/monitors/create/on_missing_data.png" alt="데이터 없음 옵션" style="width:70%;">}} -데이터가 누락된 경우 `Do not notify`하거나 데이터가 `N`분 이상 누락된 경우 `Notify`합니다. - -데이터가 누락되었거나 데이터가 누락되지 않은 경우 알림이 나타납니다. 설정된 시간 동안 데이터가 수신되지 않은 경우 알림이 발생합니다. - -**참고**: 누락된 데이터 창은 최소한 평가 기간의 2배로 설정하는 것을 권장합니다. - -자동으로 중지 및 시작되는 호스트의 오토스케일링 그룹에 대한 메트릭을 모니터링할 때 데이터가 없는 경우 알림을 많이 생성합니다. - -이 경우 누락된 데이터에 대한 알림을 실행해서는 안 됩니다. 이 옵션은 데이터가 오랫동안 보고되지 않은 시점에서 실행된 경우에는 작동하지 않습니다. +- `Evaluate as zero` / `Show last known status` +- `Show NO DATA` +- `Show NO DATA and notify` +- `Show OK`. -##### 단순 경고 +선택한 동작은 모니터의 쿼리가 어떠한 데이터도 반환하지 않을 때 적용됩니다. `Do not notify` 옵션과 달리, 데이터 누락 윈도우는 구성할 수 **없습니다** -누락된 데이터에 대해 알리지 않는 모니터의 경우, 모니터는 평가를 건너뛰고 상태가 OK에서 변경되는 데이터가 반환될 때까지 녹색으로 유지됩니다. +| 옵션 | 모니터 상태 및 알림 | +|---------------------------|---------------------------------------------------------------------------| +| `Evaluate as zero` | 빈 결과를 0으로 대체한 후 경보/경고 임계값과 비교합니다. 예를 들어 경보 임계값이 `> 10`으로 설정된 경우, 값 0은 해당 조건을 충족하지 않으므로 모니터링 상태는 `OK`로 설정됩니다. | +| `Show last known status` | 그룹 또는 모니터의 마지막으로 알려진 상태가 설정됩니다. | +| `Show NO DATA` | 모니터 상태가 `NO DATA`로 설정됩니다. | +| `Show NO DATA and notify` | 모니터 상태가 `NO DATA`로 설정되며 알림이 전송됩니다. | +| `Show OK` | 모니터가 해결됨으로 처리되고 상태가 `OK`로 설정됩니다. | -##### 다중 경고 +`Evaluate as zero` 및 `Show last known status` 옵션은 쿼리 유형에 따라 표시됩니다. -누락된 데이터에 대해 알리지 않는 모니터의 경우 그룹이 데이터를 보고하지 않으면 모니터는 평가를 건너뛰고 그룹을 삭제합니다. 이 기간 동안 결과 페이지의 막대는 녹색으로 유지됩니다. 데이터가 있고 그룹이 다시 보고를 시작하면 녹색 막대는 OK 상태를 표시하고 중단이 없었던 것처럼 보이도록 다시 채웁니다. +- **Evaluate as zero:** 이 옵션은 `default_zero()` 함수가 없는 `Count` 쿼리를 사용하는 모니터에서 사용할 수 있습니다. +- **Show last known status:** 이 옵션은 `Count`를 제외한 모든 쿼리 유형(예: `Gauge`, `Rate`, `Distribution`)과 `default_zero()`가 포함된 `Count` 쿼리에서 사용할 수 있습니다. -{{% /tab %}} +#### 자동 해결 {#auto-resolve} -{{% tab "기타 모니터 유형" %}} +`[Never]`, `After 1 hour`, `After 2 hours` 등의 상태를 트리거된 상태에서 자동으로 해결합니다. -데이터가 `N`분 동안 누락된 경우 드롭다운 메뉴에서 옵션을 선택합니다: +자동 해결은 데이터가 더 이상 제출되지 않을 때 작동합니다. 데이터가 계속 보고되는 경우 모니터는 ALERT 또는 WARN 상태에서 자동으로 해결되지 않습니다. 데이터가 계속 제출되는 경우에는 [다시 알리기][2] 기능을 사용하여 문제가 아직 해결되지 않았음을 팀에 알릴 수 있습니다. -{{< img src="/monitors/create/on_missing_data.png" alt="데이터 옵션 없음" style="width:70%;">}} +주기적으로 보고되는 일부 메트릭의 경우, 트리거된 경보가 일정 시간이 지나면 자동으로 해결되도록 설정하는 것이 적절할 수 있습니다. 예를 들어 오류가 기록될 때만 값을 보고하는 카운터가 있다고 가정해 보겠습니다. 이 경우 메트릭은 오류 수가 `0`임을 보고하지 않으므로 경보가 영구적으로 해결되지 않습니다. 이러한 경우에는 메트릭에 일정 시간 동안 활동이 없으면 경보가 해결되도록 설정할 수 있습니다. **참고**: 모니터가 자동 해결된 후 다음 평가 시점에 쿼리 값이 복구 임계값을 충족하지 못하면 모니터는 다시 경보를 트리거합니다. -- `Evaluate as zero` / `Show last known status` -- `Show NO DATA` -- `Show NO DATA and notify` -- `Show OK`. +대부분의 경우 이 설정은 크게 유용하지 않습니다. 일반적으로는 실제로 문제가 해결된 경우에만 경보가 해제되기를 원하기 때문입니다. 따라서 일반적으로는 이 값을 `[Never]`로 유지하여 메트릭이 설정된 임계값 위 또는 아래로 이동했을 때만 경보가 해결되도록 하는 것이 적절합니다. -선택한 동작은 모니터의 쿼리가 데이터를 반환하지 않을 때 적용됩니다. `Do not notify` 옵션과 달리 누락된 데이터 창은 설정할 수 **없습니다**. +#### 그룹 보존 시간 {#group-retention-time} -| 옵션 | 모니터 상태 & 알림 | -|---------------------------|---------------------------------------------------------------------------| -| `Evaluate as zero` | 비어 있는 결과는 0으로 대체되고 알림/경고 임계값과 비교됩니다. 예를 들어, 경고 임계값이 `> 10`로 설정되어 있으면 0은 해당 조건을 트리거하지 않으며 모니터 상태는 `OK`로 설정됩니다. | -| `Show last known status` | 그룹 또는 모니터의 마지막으로 알려진 상태가 설정됩니다. | -| `Show NO DATA` | 모니터 상태가 `NO DATA`로 설정됩니다. | -| `Show NO DATA and notify` | 모니터 상태가 `NO DATA`로 설정되고 알림이 발송됩니다. | -| `Show OK` | 모니터가 해결되고 상태가 `OK`로 설정됩니다. | +데이터가 누락된 상태가 `N`시간 지속되면 해당 그룹을 모니터 상태에서 제거할 수 있습니다. 보존 시간은 최소 1시간에서 최대 72시간까지 설정할 수 있습니다. 다중 경보 모니터의 경우 **Remove the non-reporting group after `N (length of time)`**를 선택하세요. -`Evaluate as zero` 및 `Show last known status` 옵션은 쿼리 유형에 따라 표시됩니다: +{{< img src="/monitors/create/group_retention_time.png" alt="그룹 보존 시간 옵션" style="width:70%;">}} -- **0으로 평가:** `default_zero()` 함수 없이 `Count` 쿼리를 사용하는 모니터라면 이 옵션을 사용할 수 있습니다. -- **마지막으로 알려진 상태 표시:** 이 옵션은 `Gauge`, `Rate`, `Distribution`와 같은 `Count` 이외의 다른 쿼리 유형을 사용하는 모니터와 `default_zero()`이 포함된 `Count` 쿼리에 사용할 수 있습니다. +[자동 해결 옵션][3]과 마찬가지로 그룹 보존 시간은 데이터가 더 이상 제출되지 않을 때 적용됩니다. 이 옵션은 데이터 보고가 중단된 후 해당 그룹을 모니터 상태에 얼마나 오래 유지할지를 제어합니다. 기본적으로 그룹은 상태를 24시간 동안 유지한 후 제거됩니다. 모니터 쿼리가 더 이상 데이터를 반환하지 않게 되는 시점부터 그룹 보존 시간과 자동 해결 옵션의 시작 시점은 **동일합니다**. -{{% /tab %}} -{{< /tabs >}} +그룹 보존 시간을 설정하는 대표적인 사용 사례는 다음과 같습니다. -#### 자동 해결 +- 데이터 보고가 중단된 즉시 또는 짧은 시간 후에 그룹을 제거하려는 경우 +- 일반적으로 문제 해결에 소요되는 기간만큼 그룹 상태를 유지하려는 경우 -`[Never]`, `After 1 hour`, `After 2 hours` 등은 트리거된 상태에서 이 이벤트를 자동으로 해결합니다. +**참고**: 그룹 보존 시간 옵션은 [`On missing data`][4] 옵션을 지원하는 다중 경보 모니터에서만 사용할 수 있습니다. 해당 모니터 유형에는 APM Trace Analytics, Audit Logs, CI Pipelines, Error Tracking, Events, Logs 및 RUM 모니터가 포함됩니다. -자동 해결은 데이터가 더 이상 제출되지 않을 때 작동합니다. 데이터가 계속 보고되고 있는 경우에는 모니터가 경고 ALERT 또는 WARN 상태에서 자동 해결되지 않습니다. 데이터가 계속 제출되고 있는 경우에는 [다시 알림][2] 기능을 사용하여 문제가 해결되지 않았을 때 팀에 알릴 수 있습니다. +#### 새 그룹 지연 {#new-group-delay} -주기적으로 보고하는 일부 메트릭의 경우 트리거된 경고가 일정 시간이 경과한 후 자동 해결되는 것이 합리적일 수 있습니다. 예를 들어 오류가 기록될 때만 보고하는 카운터가 있는 경우 메트릭이 오류 수로 `0`을 절대 보고하지 않기 때문에 경고를 해결할 수 없습니다. 이러한 경우 메트릭에서 일정 시간 동안 활동이 없으면 해결하도록 알림을 설정하세요. **참고**: 모니터가 자동 해결되고 다음 평가에서 쿼리 값이 복구 임계값을 충족하지 못하면 모니터가 다시 알림을 트리거합니다. +새 그룹에 대해 평가 시작을 `N`초 지연합니다. -대부분의 경우 이 설정은 알림이 실제로 수정된 후에만 해결되기를 원하므로 유용하지 않습니다. 따라서 일반적으로 메트릭이 설정된 임계값보다 높거나 낮을 때만 알림이 해결되도록 이 설정을 `[Never]`로 두는 것이 좋습니다. +새로 생성된 그룹이 부팅되고 애플리케이션이 완전히 시작될 수 있도록 경보를 시작하기 전에 대기할 시간(초)을 지정합니다. 이 값은 0 이상의 정수여야 합니다. -#### 그룹 유지 시간 +예를 들어 컨테이너화된 아키텍처를 사용하는 경우, 그룹 지연을 설정하면 새 컨테이너가 생성될 때 발생하는 높은 리소스 사용량이나 높은 지연 시간으로 인해 컨테이너 범위의 모니터 그룹이 경보를 트리거하는 것을 방지할 수 있습니다. 이 지연은 지난 24시간 동안 관찰되지 않았던 모든 새 그룹에 적용되며 기본값은 `60`초입니다. -데이터가 누락된 후 `N` 시간이 지나면 모니터 상태에서 그룹을 삭제할 수 있습니다. 시간 길이는 최소 1시간에서 최대 72시간이 될 수 있습니다. +이 옵션은 다중 경보 모드에서 사용할 수 있습니다. -{{< img src="/monitors/create/group_retention_time.png" alt="그룹 유지 시간 옵션" style="width:70%;">}} +#### 평가 지연 {#evaluation-delay} -[자동-해결 옵션][3]과 유사하게 데이터가 더 이상 제출되지 않을 때 그룹 유지가 작동합니다. 이 옵션은 데이터 보고가 중지된 후 그룹이 모니터의 상태로 유지되는 기간을 제어합니다. 기본적으로 그룹은 삭제되기 전까지 24시간 동안 상태를 유지합니다. 모니터 쿼리가 데이터를 반환하지 않는 즉시 그룹 유지와 자동 해결 옵션 시작 시간은 **동일합니다**. +
    Datadog은 서비스 공급자가 사후 보완하는 클라우드 메트릭의 경우 15분 지연을 권장합니다. 또한 나눗셈 공식을 사용하는 경우에는 모니터가 완전한 값을 기준으로 평가할 수 있도록 60초 지연을 설정하는 것이 유용합니다. 예상 지연 시간은 클라우드 메트릭 지연 페이지를 참조하세요.
    -그룹 유지 시간을 정의하기 위한 몇 가지 사용 사례는 다음과 같습니다: +평가를 `N`초만큼 지연합니다. -- 데이터 보고가 중단된 직후 또는 즉시 그룹을 삭제하려는 경우 -- 트러블슈팅에 걸리는 시간만큼 그룹을 해당 상태로 유지하려는 경우 +이는 평가를 지연할 시간(초)을 의미합니다. 이 값은 0 이상의 정수여야 합니다. 예를 들어 지연 시간이 900초(15분)로 구성되어 있고 모니터 평가 기간이 최근 `5 minutes`이며 현재 시간이 7:00인 경우, 모니터는 6:40~6:45 구간의 데이터를 평가합니다. 구성 가능한 최대 평가 지연 시간은 86,400초(24시간)입니다. -**참고**: 그룹 유지 시간 옵션에는 [`On missing data`][4] 옵션을 지원하는 다중 알림 모니터가 필요합니다. 이러한 모니터 유형은 애플리케이션 성능 모니터링(APM) 트레이스 분석, 감사(Audit) 로그, CI 파이프라인, 오류 추적, 이벤트, 로그 및 RUM 모니터입니다. +## 알림 및 자동화 구성 {#configure-notifications-and-automations} -#### 새 그룹 지연 +알림 메시지에 가장 중요하게 생각하는 정보를 포함하도록 구성합니다. 또한 어떤 팀에 경보를 전송할지와 어떤 속성에 대해 경보를 발생시킬지 지정합니다. -새 그룹에 대해 평가 시작을 `N`초 단위로 지연합니다. +### 메시지 {#message} -새로 만든 그룹이 부팅되고 애플리케이션이 완전히 시작될 수 있도록 알림을 시작하기 전에 대기할 시간(초)입니다. 음수가 아닌 정수여야 합니다. +이 섹션에서는 팀에 대한 알림과 경보 전송 방식을 구성합니다. -예를 들어 컨테이너화된 아키텍처를 사용하는 경우 그룹 지연을 설정하면 새 컨테이너가 생성될 때 리소스 사용량이 많거나 대기 시간이 길어져 컨테이너 범위의 모니터 그룹이 트리거되지 않습니다. 지연 시간은 지난 24시간 동안 표시되지 않은 모든 새 그룹에 적용되며 기본값은 `60`초입니다. + - [템플릿 변수를 사용하여 알림 구성][5] + - [이메일, Slack 또는 PagerDuty를 통해 팀에 알림 전송][6] -이 옵션은 다중 알림 모드에서 사용할 수 있습니다. +알림 메시지의 구성 옵션에 대한 자세한 내용은 [Alerting Notifications][7]을 참조하세요. -#### 평가 지연 +### 메타데이터 추가 {#add-metadata} -
    Datadog은 서비스 공급자에 의해 다시 채워지는 클라우드 메트릭의 경우 15분 지연을 권장합니다. 또한 나눗셈 공식을 사용할 경우 60초 지연은 모니터가 완전한 값을 평가할 수 있도록 하는 데 도움이 됩니다. 예상 지연 시간은 클라우드 메트릭 지연 페이지를 참조하세요.
    +
    모니터 태그는 Agent 또는 통합에서 전송하는 태그와는 별개입니다. 자세한 내용은 모니터 관리 설명서를 참조하세요.
    -평가를 `N`초 단위로 지연합니다. +1. **Tags** 드롭다운을 사용하여 모니터에 [태그][8]를 연결합니다. +1. **Teams** 드롭다운을 사용하여 모니터에 [Teams][9]를 연결합니다. +1. **Priority**를 선택합니다. -평가를 지연하는 시간(초)입니다. 이 값은 음수가 아닌 정수여야 합니다. 따라서 지연을 900초(15분)로 설정하면 모니터 평가가 마지막 `5 minutes`이고 시간이 7시이면 6시 40분부터 6시 45분까지의 데이터를 모니터가 평가합니다. 최대 설정 가능한 평가 지연은 86400초(24시간)입니다. +### 경보 집계 설정 {#set-alert-aggregation} -## 팀에 알리기 +경보는 쿼리에서 선택한 집계 방식(예: `avg by service`)에 따라 자동으로 그룹화됩니다. 쿼리에 그룹화가 없는 경우 기본값은 `Simple Alert`입니다. 쿼리가 어떤 차원으로든 그룹화된 경우에는 그룹화가 `Multi Alert`으로 변경됩니다. -가장 관심 있는 정보를 포함하도록 알림 메시지를 설정합니다. 이러한 알림을 보낼 팀과 알림을 트리거할 속성을 지정합니다. +{{< img src="/monitors/create/notification-aggregation.png" alt="모니터 알림 집계 구성 옵션" style="width:100%;">}} -### 메시지 +#### 단순 경고 {#simple-alert} -이 섹션을 통해 팀에 대한 알림을 설정하고 전송하는 방법을 설정합니다: - - [템플릿 변수로 알림 설정][5] - - [이메일, Slack, PagerDuty 등을 통해 팀에 알림을 보내세요.][6] +`Simple Alert` 모드는 모든 보고 소스를 집계하여 하나의 알림을 트리거합니다. 집계된 값이 설정된 조건을 충족하면 **하나의 경보**를 받게 됩니다. 예를 들어 모든 서버의 평균 CPU 사용량이 특정 임계값을 초과할 때 알림을 받도록 모니터를 설정할 수 있습니다. 이 경우 해당 임계값이 충족되면, 임계값을 초과한 개별 서버 수와 관계없이 하나의 알림만 수신합니다. 이는 시스템 전반의 추세나 동작을 모니터링하는 데 유용합니다. - 알림 메시지 설정 옵션에 대한 자세한 내용은 [경고 알림][7]을 참조하세요. -### 경고 그룹화 +{{< img src="/monitors/create/simple-alert.png" alt="단순 경고 모드에서 모니터 알림이 전송되는 방식을 보여주는 다이어그램" style="width:90%;">}} -쿼리를 정의할 때 선택한 `group by` 단계에 따라 자동으로 경고가 그룹화됩니다. 쿼리에 그룹화가 없으면 기본값은 `Simple Alert`로 설정됩니다. 쿼리가 차원별로 그룹화된 경우 그룹화는 `Multi Alert`로 변경됩니다. +#### 다중 경보 {#multi-alert} -{{< img src="/monitors/create/notification-aggregation.png" alt="모니터 알림 집계를 위한 설정 옵션" style="width:100%;">}} +`Multi Alert` 모니터는 경보 임계값을 충족하는 각 엔터티에 대해 개별 알림을 트리거합니다. -#### 단순 경고 +{{< img src="/monitors/create/multi-alert.png" alt="다중 경보 모드에서 모니터 알림이 전송되는 방식을 보여주는 다이어그램" style="width:90%;">}} -`Simple Alert`모드는 모든 보고 소스를 집계하여 알림을 트리거합니다. 집계된 값이 설정된 조건을 충족하면 **1개의 알림**을 받게 됩니다. 예를 들어, 모든 서버의 평균 CPU 사용량이 특정 임계값을 초과할 경우 이를 알리도록 모니터를 설정할 수 있습니다. 이 임계값을 충족하면 임계값을 충족한 개별 서버의 수에 관계없이 단일 알림을 받게 됩니다. 이는 광범위한 시스템 추세나 동작을 모니터링하는 데 유용할 수 있습니다. +예를 들어 서비스별로 집계한 P99 지연 시간이 특정 임계값을 초과할 때 알림을 받도록 모니터를 설정한 경우, 임계값을 초과한 각 서비스마다 **별도의** 경보를 받게 됩니다. 이는 시스템 또는 애플리케이션의 특정 문제를 식별하고 해결하는 데 유용합니다. 보다 세부적인 수준에서 문제를 추적할 수 있습니다. +##### 알림 그룹화 {#notification-grouping} -{{< img src="/monitors/create/simple-alert.png" alt="단순 경고 모드에서 모니터 알림이 어떻게 전송되는지 보여주는 다이어그램" style="width:90%;">}} +대규모 엔터티 그룹을 모니터링하는 경우 다중 경보를 사용하면 모니터가 지나치게 시끄러워질 수 있습니다. 이를 완화하기 위해 어떤 차원이 경보를 트리거할지 사용자 지정할 수 있습니다. 이렇게 하면 불필요한 알림을 줄이고 가장 중요한 경보에 집중할 수 있습니다. 예를 들어 모든 호스트의 평균 CPU 사용량을 모니터링하고 있다고 가정해 보겠습니다. 쿼리를 `service` 및 `host` 기준으로 그룹화했지만, 임계값을 초과한 각 `service` 속성에 대해서만 한 번씩 알림을 받고 싶다면 다중 경보 옵션에서 `host` 속성을 제거하여 전송되는 알림 수를 줄일 수 있습니다. -#### 다중 경고 +{{< img src="/monitors/create/multi-alert-aggregated.png" alt="다중 경보에서 특정 차원 기준으로 알림이 전송되는 방식을 보여주는 다이어그램" style="width:90%;">}} -`Multi Alert` 모니터는 알림 임계값을 충족하는 모니터에서 각 엔티티에 대한 개별 알림을 트리거합니다. +`Multi Alert` 모드에서 알림을 집계하는 경우, 집계되지 않은 차원은 UI에서 `Sub Groups`가 됩니다. -{{< img src="/monitors/create/multi-alert.png" alt="다중 경고 모드에서 모니터가 어떻게 전송되는지 보여주는 다이어그램" style="width:90%;">}} +**참고**: 메트릭이 `host` 태그만 보고하고 `service` 태그는 보고하지 않는 경우, 해당 메트릭은 모니터에서 감지되지 않습니다. 반면 `host` 태그와 `service` 태그가 모두 있는 메트릭은 모니터에서 감지됩니다. -예를 들어, 서비스별로 집계된 P99 지연 시간이 특정 임계값을 초과할 경우 이를 알리도록 모니터를 설정하면 P99 지연 시간이 경고 임계값을 초과하는 각 개별 서비스에 대해 **별도의** 경고가 표시됩니다. 이를 통해 시스템 또는 애플리케이션 문제의 특정 인스턴스를 식별하고 해결하는 데 유용할 수 있으며, 보다 세분화된 수준에서 문제를 추적할 수 있습니다. +쿼리에서 태그 또는 차원을 구성하면, 해당 값은 다중 경보에서 평가되는 모든 그룹에 대해 사용할 수 있으며 알림 메시지에 유용한 컨텍스트를 동적으로 채워 넣는 데 활용할 수 있습니다. 알림 메시지에서 태그 값을 참조하는 방법은 [속성 및 태그 변수][10]를 참조하세요. -큰 규모의 엔티티 그룹을 모니터링할 때 다중 경고로 인해 모니터에서 노이즈가 발생할 수 있습니다. 이를 완화하려면 경고를 트리거하는 측정기준을 맞춤설정하세요. 그러면 노이즈가 감소하고 가장 중요한 경고에 집중할 수 있습니다. 예를 들어 모든 호스트의 평균 CPU 사용량을 모니터링하고 있습니다. 쿼리를 `service` 및 `host`으로 그룹화하고 임계값을 충족하는 각 `service` 속성에 대해 경고를 한 번만 보내도록 하려면 다중 경고 옵션에서 `host` 속성을 제거하고 보내는 알림의 수를 줄입니다. +| 그룹화 기준 | 단순 경고 모드 | 다중 경보 모드 | +|-------------------------------------|------------------------|-----------------------| +| _(전체)_ | 하나의 그룹이 하나의 알림을 트리거 | 해당 없음 | +| 1개 이상의 차원 | 하나 이상의 그룹이 경보 조건을 충족하면 하나의 알림 전송 | 경보 조건을 충족하는 그룹마다 하나의 알림 전송 | -{{< img src="/monitors/create/multi-alert-aggregated.png" alt="다중 알림에서 특정 차원으로 설정된 경우 알림이 어떻게 전송되는지 보여주는 다이어그램" style="width:90%;">}} +## 권한 {#permissions} -`Multi Alert` 모드에서 알림을 집계할 때 집계되지 않은 차원은 UI에서 `Sub Groups`가 됩니다. +모든 사용자는 자신이 속한 팀이나 역할과 관계없이 모든 모니터를 볼 수 있습니다. 기본적으로 [Monitors Write 권한][11]이 있는 역할과 관련된 사용자만 모니터를 편집할 수 있습니다. [Datadog Admin 역할 및 Datadog Standard 역할][12]에는 기본적으로 Monitors Write 권한이 포함되어 있습니다. 조직에서 [사용자 지정 역할][13]을 사용하는 경우, 다른 사용자 지정 역할에도 Monitors Write 권한이 부여될 수 있습니다. 모니터의 RBAC를 설정하고 설정 잠김에서 역할 제한 사용으로 모니터를 마이그레이션하는 자세한 방법은 [모니터의 RBAC 설정 방법][14] 가이드를 참조하세요. -**참고**: 메트릭이 `service` 태그 없이 `host`만 보고만 하는 경우 모니터에서 감지되지 않습니다. 두 개 `host`와 `service`태그가 모두 있는 메트릭은 모니터에서 감지됩니다. +또한 모니터를 편집할 수 있는 [팀][17], [역할][15] 또는 사용자의 목록을 지정하여 모니터를 더욱 제한할 수 있습니다. 모니터 생성자는 기본적으로 해당 모니터에 대한 편집 권한을 가집니다. 편집 권한에는 모니터링 구성 업데이트, 모니터링 삭제, 그리고 원하는 기간만큼 모니터 음소거가 포함됩니다. -쿼리에서 태그 또는 크기를 설정하는 경우 다중 알림에서 평가된 모든 그룹에서 이러한 값을 사용하여 유용한 컨텍스트로 알림을 동적으로 채울 수 있습니다. 알림 메시지에서 태그 값을 참조하는 방법은 [속성 및 태그 변수][8]를 참조하세요. +**참고**: 이러한 제한은 UI와 API 모두에 적용됩니다. -| 그룹화 기준 | 단순 경고 모드 | 다중 경고 모드 | -|-------------------------------------|------------------------|-----------------------| -| _(everything)_ | 하나의 단일 그룹이 하나의 알림을 트리거함 | N/A | -| 1 or more dimensions | 하나 이상의 그룹이 경고 조건을 충족하는 경우 하나의 알림 | 알림 조건을 충족하는 그룹당 하나의 알림 | +### 세분화된 액세스 제어 {#granular-access-controls} -## 메타데이터 추가 +[세분화된 액세스 제어][16]를 사용하여 모니터를 편집할 수 있는 팀, 역할 또는 사용자를 제한할 수 있습니다. +1. 모니터를 편집하거나 구성하는 동안 **권한 및 감사 알림 정의** 섹션을 찾습니다. + {{< img src="monitors/configuration/define_permissions_audit_notifications.png" alt="권한 정의를 위한 모니터 구성 옵션" style="width:70%;" >}} +1. **Edit Access**를 클릭합니다. +1. **Restrict Access**를 클릭합니다. +1. 대화 상자가 업데이트되며 조직 구성원은 기본적으로 **Viewer** 권한을 갖는 것으로 표시됩니다. +1. 드롭다운을 사용하여 모니터를 편집할 수 있는 하나 이상의 팀, 역할 또는 사용자를 선택합니다. +1. **Add**를 클릭합니다. +1. 대화 상자가 업데이트되며 선택한 역할에 **Editor** 권한이 부여된 것으로 표시됩니다. +1. **Done**을 클릭합니다. -
    모니터 태그는 Agent나 통합에서 보낸 태그와는 독립적입니다. 모니터 관리 설명서를 참조하세요.
    +**참고:** 모니터에 대한 편집 권한을 유지하려면 저장하기 전에 자신이 속한 역할 또는 팀을 최소 하나 이상 포함해야 합니다. -1. **Tags** 드롭다운을 사용하여 [태그][9]를 모니터에 연결합니다. -1. **Teams** 드롭다운을 사용하여 [팀][10]을 모니터에 연결합니다. -1. **Priority**를 선택합니다. +액세스가 제한된 모니터를 다시 모든 사용자가 접근할 수 있도록 하려면 다음 단계를 따르세요. +1. 모니터를 보는 동안 **More** 드롭다운 메뉴를 클릭합니다. +1. **Permissions**를 선택합니다. +1. **Restore Full Access**를 클릭합니다. +1. **Save**를 클릭합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -321,8 +362,15 @@ Datadog에는 두 가지 유형의 알림(알림 및 경고)이 있습니다. [3]: /ko/monitors/configuration/?tab=thresholdalert#auto-resolve [4]: /ko/monitors/configuration/?tabs=othermonitortypes#no-data [5]: /ko/monitors/notify/variables/ -[6]: /ko/monitors/notify/#notify-your-team -[7]: /ko/monitors/notify/#say-whats-happening -[8]: /ko/monitors/notify/variables/?tab=is_alert#attribute-and-tag-variables -[9]: /ko/getting_started/tagging/ -[10]: /ko/account_management/teams/ \ No newline at end of file +[6]: /ko/monitors/notify/#configure-notifications-and-automations +[7]: /ko/monitors/notify/ +[8]: /ko/getting_started/tagging/ +[9]: /ko/account_management/teams/ +[10]: /ko/monitors/notify/variables/?tab=is_alert#attribute-and-tag-variables +[11]: /ko/account_management/rbac/permissions/#monitors +[12]: /ko/account_management/rbac/?tab=datadogapplication#datadog-default-roles +[13]: /ko/account_management/rbac/?tab=datadogapplication#custom-roles +[14]: /ko/monitors/guide/how-to-set-up-rbac-for-monitors/ +[15]: /ko/account_management/rbac/ +[16]: /ko/account_management/rbac/granular_access +[17]: /ko/account_management/teams/ \ No newline at end of file diff --git a/content/ko/monitors/types/metric.md b/content/ko/monitors/types/metric.md index 716829ac7ca..15fc488a4e7 100644 --- a/content/ko/monitors/types/metric.md +++ b/content/ko/monitors/types/metric.md @@ -3,129 +3,128 @@ aliases: - /ko/monitors/monitor_types/metric - /ko/monitors/faq/what-is-the-do-not-require-a-full-window-of-data-for-evaluation-monitor-parameter - /ko/monitors/create/types/metric -description: 메트릭 값을 사용자 정의 임계값과 비교하기 +description: 메트릭 값을 사용자 정의 임계값과 비교 further_reading: - link: /monitors/notify/ tag: 설명서 - text: Configure your monitor notifications + text: 모니터링 알림 설정 - link: /monitors/downtimes/ tag: 설명서 - text: Schedule a downtime to mute a monitor + text: 모니터링 음소거를 위한 가동 중지 예약 - link: /monitors/status/ tag: 설명서 - text: 모니터 상태를 확인하세요 + text: 모니터링 상태 확인 - link: /monitors/types/change-alert tag: 설명서 - text: 변경 알림 모니터 문제 해결 -title: Metric Monitor + text: 변경 경보 모니터링 문제 해결 +title: 메트링 모니터링 --- +## 개요 {#overview} -## 개요 +메트릭 모니터링은 지속적인 데이터 스트림에 유용합니다. Datadog에 전송된 모든 메트릭은 주어진 기간 동안 임계값을 초과하면 경보가 발생할 수 있습니다. -메트릭 모니터는 지속적인 데이터 스트림에 유용합니다. Datadog으로 전송된 모든 메트릭은 지정된 기간에 임계값을 초과할 경우 알림을 전송합니다. +Datadog에서 메트릭 모니터링을 생성하려면 [**Monitors > New Monitor**][1]로 이동하여 **Metric** 모니터링 유형을 선택하세요. -Datadog에서 메트릭 모니터를 생성하려면 [**Monitors > New Monitor**][1]로 이동하여 **Metric** Monitor Type을 선택합니다. - -## 탐지 방법 선택 +## 탐지 방법 선택 {#choose-the-detection-method} {{< tabs >}} -{{% tab "Threshold" %}} +{{% tab "임계값" %}} 임계값 알림은 메트릭 값을 정적 임계값과 비교합니다. -각 알림 평가에서 Datadog은 선택한 기간 동안의 평균, 최소, 최대 또는 합계를 계산하여 임계값보다 높거나, 낮거나, 같거나 같지 않은지 확인합니다. 이는 예상 값을 알고 있는 표준 알림 사례용입니다. [배포 메트릭 유형][1]은 선택한 기간 동안 백분위수를 계산하는 추가 임계값 옵션을 제공해 드립니다. +각 경보 평가 시, Datadog은 선택한 기간 동안의 평균, 최소, 최대 또는 합계를 계산한 후, 해당 값이 임계값보다 큰지, 작은지, 같은지 또는 같지 않은지를 확인합니다. 이는 예상 값을 알고 있는 표준 경보 케이스를 위한 것입니다. [분포 메트릭 유형][1]은 선택한 기간 동안 백분위를 계산하는 추가 임계값 옵션을 제공합니다. -자세한 내용은 [알림 조건 설정](#set-alert-conditions) 섹션을 참조하세요. +자세한 내용은 [경보 조건 설정](#set-alert-conditions) 섹션을 참조하세요. [1]: /ko/metrics/distributions/ {{% /tab %}} -{{% tab "Change" %}} +{{% tab "변경" %}} -변경 알림은 지정된 임계값에 대해 `N`분 전 값과 현재 값 사이의 절대 또는 상대(%) 변화를 비교합니다. 비교되는 데이터 포인트는 단일 포인트가 아니라 *메트릭 정의* 섹션의 파라미터를 사용하여 컴퓨팅됩니다. +변화 경보는 `N`분 전과 현재의 값 간의 절대적 또는 상대적(%) 변화를 주어진 임계값과 비교합니다. 비교된 데이터 포인트는 단일 포인트가 아니라 *메트릭 정의* 섹션의 파라미터를 사용하여 계산됩니다. -각 알림 평가에서 Datadog은 `N`분 전 값과 현재 값 사이의 원시 차이값(양수 또는 음수 값)을 계산한 다음 선택한 기간 동안의 평균/최소/최대/합계를 계산합니다. 연산된 시계열 값이 임계값을 넘으면 알림이 트리거됩니다. +각 경보 평가 시, Datadog은 현재 시점과 `N`분 전 값 사이의 원시 차이(양수 또는 음수)를 계산한 후, 선택한 기간 동안의 평균, 최소, 최대 및 합계를 산출합니다. 연산된 시계열 값이 임계값을 초과하면 경보가 발생합니다. 이러한 유형의 알림은 예상치 못한 임계값이 없을 때 메트릭의 급등, 급락 또는 느린 변화를 추적하는 데 유용합니다. -자세한 내용은 [알림 모니터 변경][1] 지침을 참조하세요. +자세한 내용은 [변경 알림 모니터링][1] 가이드를 참조하세요. [1]: /ko/monitors/types/change-alert/ {{% /tab %}} -{{% tab "Anomaly" %}} +{{% tab "이상" %}} -이상 탐지 알림은 과거 동작을 활용하여 메트릭이 비정상적으로 작동하는 시점을 감지합니다. +이상 탐지 경보는 과거 동작을 활용하여 메트릭이 비정상적으로 작동하는 시점을 감지합니다. -이상 알림은 과거를 기준으로 시계열의 예상 값 범위를 계산합니다. 이상 알고리즘 일부는 시간 및 요일을 사용하여 예상 범위를 결정하므로, 단순한 임계값 알림으로는 탐지할 수 없는 이상 징후를 포착할 수 있습니다. 예를 들어, 시계열이 오전 10시에는 정상으로 간주되었더라도 오전 5시에는 비정상적으로 높은 수치를 보일 수 있습니다. +이상 경보는 과거를 기반으로 시계열의 예상 값 범위를 계산합니다. 일부 이상 탐지 알고리즘은 시간대와 요일을 사용하여 예상 범위를 결정하여, 단순 임계값 알림으로는 감지할 수 없는 이상을 포착합니다. 예를 들어, 5AM의 시계열 값이 비정상적으로 높지만 10AM에는 정상으로 간주될 수 있습니다. -각 알림 평가에서 Datadog은 예상 범위 이상, 이하, 예상 범위를 벗어난 시계열의 백분율을 계산합니다. 해당 백분율이 설정된 임계값을 초과하면 알림이 트리거됩니다. +각 경보 평가 시, Datadog은 예상 범위를 초과하거나 미치지 못하거나 범위 밖에 속하는 시계열의 비율을 계산합니다. 이 비율이 설정된 임계값을 초과하면 경보가 발생합니다. -자세한 내용은 [이상 모니터][1] 페이지를 참조하세요. +자세한 내용은 [이상 모니터링][1] 페이지를 참조하세요. [1]: /ko/monitors/types/anomaly/ {{% /tab %}} -{{% tab "Outliers" %}} +{{% tab "이상치" %}} -이상치 모니터는 그룹 구성원(호스트, 가용 영역, 파티션 등)이 다른 구성원과 비교하여 비정상적으로 동작하는 경우를 감지합니다. +이상치 모니터링은 그룹 구성원(호스트, 가용 영역, 파티션 등)이 다른 구성원과 비교하여 비정상적으로 동작하는 경우를 감지합니다. -각 알림 평가에서 Datadog은 모든 그룹이 함께 클러스터링되어 동일한 동작을 보이는지 확인합니다. 하나 이상의 그룹이 나머지 그룹과 차이가 날 경우 알림이 트리거됩니다. +각 경보 평가 시, Datadog은 모든 그룹이 함께 클러스터되어 동일한 행동을 보이는지 확인합니다. 하나 이상의 그룹이 나머지 그룹과 다른 동작을 보이면 경보가 발생합니다. -자세한 내용은 [이상치 모니터][1] 페이지를 참조하세요. +자세한 내용은 [이상치 모니터링][1] 페이지를 참조하세요. [1]: /ko/monitors/types/outlier/ {{% /tab %}} -{{% tab "Forecast" %}} +{{% tab "예측" %}} -예측 알림은 메트릭의 향후 동작을 예측하고 이를 정적 임계값과 비교합니다. 강한 추세나 반복 패턴을 보이는 메트릭에 적합합니다. +예측 경보는 메트릭의 미래 행동을 예측하고 이를 정적 임계값과 비교합니다. 트렌드가 강하거나 반복적인 패턴이 있는 메트릭에 적합합니다. -각 알림 평가에서 예측 알림은 예상 편차 범위와 함께 메트릭의 미래 값을 예측합니다. 편차 범위의 일부가 설정된 임계값을 초과하면 알림이 트리거됩니다. +각 경보 평가 시, 예측 경보는 메트릭의 미래 값과 예상 편차 범위를 예측합니다. 설정된 임계값을 초과하는 경우 경보가 발생합니다. -자세한 내용은 [Forecast monitor][1] 페이지를 참조하세요. +자세한 내용은 [Forecast Monitor][1] 페이지를 참조하세요. [1]: /ko/monitors/types/forecasts/ {{% /tab %}} {{< /tabs >}} -## 메트릭 정의 +## 메트릭 정의 {#define-the-metric} -Datadog으로 보고되는 모든 메트릭은 모니터에서 사용할 수 있습니다. 아래의 단계에 따라 에디터를 사용해 메트릭을 정의하세요. 쿼리 파라미터는 선택한 탐지 방법에 따라 약간씩 다릅니다. +Datadog에 보고되는 모든 메트릭은 모니터링에 사용할 수 있습니다. 편집기와 아래 단계를 사용하여 메트릭을 정의합니다. 쿼리 파라미터는 선택한 탐지 방법에 따라 약간 다릅니다. {{< tabs >}} -{{% tab "Threshold" %}} +{{% tab "임계값" %}} -{{< img src="monitors/monitor_types/metric/metric_threshold_config.png" alt="임계값 탐지 메트릭 모니터용 메트릭 정의" style="width:100%;">}} +{{< img src="monitors/monitor_types/metric/metric_threshold_config.png" alt="임계값 탐지 메트릭 모니터링을 위한 메트릭 정의" style="width:100%;">}} | 단계 | 필수 | 기본값 | 예시 | |-----------------------------------|----------|----------------|-------------------| -| 메트릭 선택 | Yes | 없음 | `system.cpu.user` | -| `from` 정의 | 아니요 | 어디서나 | `env:prod` | -| 메트릭 집계 지정 | Yes | `avg by` | `sum by` | -| 그룹화 | 아니요 | 모두 | `host` | -| 모니터 쿼리 집계 지정 | 아니요 | `average` | `sum` | +| 메트릭 선택 | 예 | 없음 | `system.cpu.user` | +| 정의 `from` | 아니요 | 모든 곳 | `env:prod` | +| 메트릭 집계 지정 | 예 | `avg by` | `sum by` | +| 그룹화 | 아니요 | 모든 것 | `host` | +| 모니터링 쿼리 집계 지정 | 아니요 | `average` | `sum` | | 평가 기간 | 아니요 | `5 minutes` | `1 day` | **정의** | 옵션 | 설명 | |------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 평균 | 이 시계열은 평균화되어 임계값과 비교하여 확인되는 단일 값을 생성합니다. 모니터 쿼리에 `avg()` 함수를 추가합니다. | -| 최대 | 생성된 시계열에서 단일 값이 임계값을 초과하면 알림이 트리거됩니다. 모니터 쿼리에 max() 함수가 추가됩니다. 추가 임계값 동작에 대해서는 참고 섹션을 확인하세요. | -| 최소 | 쿼리 평가 기간 내 모든 포인트가 임계값을 초과하면 알림이 트리거됩니다. 모니터 쿼리에 min() 함수가 추가됩니다. 추가 임계값 동작에 대해서는 참고 섹션을 확인하세요.| -| 합계 | 시계열의 모든 포인트의 합이 임계값을 초과하면 알림이 트리거됩니다. 쿼리에 `sum()` 함수가 추가됩니다. | -| 백분위수(pXX) | 쿼리 평가 기간 내 포인트의 pXX 백분위수가 임계값을 초과하면 알림이 트리거됩니다. 본 옵션은 모니터 쿼리에 `percentile` 함수를 추가합니다. 분포 메트릭 유형에만 사용할 수 있습니다. -| 평가 기간| 모니터가 평가하는 기간입니다. `5 minutes` , `15 minutes`, `1 hour` 또는 `custom` 등의 프리셋 타임 윈도우를 사용하여 1분에서 730시간(1개월) 사이의 값을 설정하세요. | +| 평균 | 시계열의 값을 평균하여 단일 값을 생성한 후 임계값과 비교합니다. 모니터링 쿼리에 `avg()` 함수가 추가됩니다. | +| 최대 | 생성된 시계열 내의 값 중 하나라도 임계값을 초과하면 경보가 트리거됩니다. 모니터링 쿼리에 max() 함수가 추가됩니다. 추가 임계값 동작에 대한 내용은 노트 섹션을 참조하세요. | +| min | 쿼리의 평가 기간 내 모든 데이터 포인트가 임계값을 초과하면 경보가 발생합니다. 모니터링 쿼리에 min() 함수가 추가됩니다. 추가 임계값 동작에 대한 내용은 노트 섹션을 참조하세요.| +| 합계 | 시계열의 모든 데이터 포인트 합계가 임계값을 초과하면 경보가 발생합니다. 모니터링 쿼리에 `sum()` 함수가 추가됩니다. | +| 백분위수(pXX) | 쿼리의 평가 기간 내 pXX 백분위수의 데이터 포인트가 임계값을 초과하면 경보가 발생합니다. 이 옵션으로 모니터링 쿼리에 `percentile` 함수가 추가됩니다. 분포 메트릭 유형에만 사용할 수 있습니다. +| 평가 기간| 모니터링이 평가하는 시간 기간입니다. 1분에서 730시간(1개월) 사이의 값을 설정하려면 `5 minutes`, `15 minutes`, `1 hour` 또는 `custom`와 같은 미리 설정된 시간 창을 사용하세요. | {{% /tab %}} -{{% tab "Change" %}} +{{% tab "변경" %}} -{{< img src="monitors/monitor_types/metric/metric_change_alert_config.png" alt="변경 탐지 메트릭 모니터용 메트릭 정의" style="width:100%;">}} +{{< img src="monitors/monitor_types/metric/metric_change_alert_config.png" alt="변화 감지 메트릭 모니터링을 위한 메트릭 정의" style="width:100%;">}} | 단계 | 필수 | 기본값 | 예시 | |-----------------------------------|----------|----------------|-------------------| -| 메트릭 선택 | Yes | 없음 | `system.cpu.user` | -| `from` 정의 | 아니요 | 모든 곳 | `env:prod` | +| 메트릭 선택 | 예 | 없음 | `system.cpu.user` | +| 정의 `from` | 아니요 | 모든 곳 | `env:prod` | | 메트릭 집계 지정 | 아니요 | `avg by` | `sum by` | -| 그룹화 | 아니요 | 모두 | `host` | -| 모니터 쿼리 집계 지정 | 아니요 | `average` | `sum` | +| 그룹화 | 아니요 | 모든 것 | `host` | +| 모니터링 쿼리 집계 지정 | 아니요 | `average` | `sum` | | 변경 유형 선택 | 아니요 | `change ` | `% change` | | 평가 기간 | 아니요 | `5 minutes` | `1 day` | | 비교 기간 | 아니요 | `5 minutes` | `1 month` | @@ -134,28 +133,28 @@ Datadog으로 보고되는 모든 메트릭은 모니터에서 사용할 수 있 | 옵션 | 설명 | |------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 변경 | 값의 절대 변화치입니다. | -| % change | 이전 값과 비교한 값의 변화율입니다. 예를 들어, 이전 값이 2이고 현재 값이 4인 경우의 변화율은 100%입니다. | -| 평균 | 이 시계열은 임계값에 대하여 확인되는 단일 값을 생성하기 위해 평균화됩니다. 모니터 쿼리에 `avg()` 함수를 추가합니다. | -| 최대 | 생성된 시계열에서 단일 값이 임계값을 초과하면 알림이 트리거됩니다. 모니터 쿼리에 max() 함수가 추가됩니다. 추가 임계값 동작에 대해서는 참고 섹션을 참조하세요. | -| 최소 | 쿼리 평가 기간 내 모든 포인트가 임계값을 초과하면 알림이 트리거됩니다. 모니터 쿼리에 min() 함수가 추가됩니다. 추가 임계값 동작에 대해서는 참고 섹션을 확인하세요. | -| 합계 | 시계열의 모든 포인트의 합이 임계값을 초과하면 알림이 트리거됩니다. 쿼리에 `sum()` 함수가 추가됩니다. | -| 백분위수(pXX) | 쿼리 평가 기간 내 포인트의 pXX 백분위수가 임계값을 초과하면 알림이 트리거됩니다. 본 옵션은 모니터 쿼리에 `percentile` 함수를 추가합니다. 분포 메트릭 유형에만 사용할 수 있습니다. -| 평가 기간| 모니터가 평가하는 기간입니다. `5 minutes` , `15 minutes`, `1 hour` 또는 `custom` 등의 프리셋 타임 윈도우를 사용하여 1분에서 730시간(1개월) 사이의 값을 설정하세요. | +| 변화 | 값의 절대 변화치입니다. | +| % 변화 | 이전 값과 비교한 값의 백분율 변화입니다. 예를 들어, 이전 값이 2이고 현재 값이 4일 때 백분율 변화는 100%입니다. | +| 평균 | 시계열의 값을 평균하여 단일 값을 생성한 후 임계값과 비교합니다. 모니터링 쿼리에 `avg()` 함수가 추가됩니다. | +| 최대 | 생성된 시계열 내의 값 중 하나라도 임계값을 초과하면 경보가 트리거됩니다. 모니터링 쿼리에 max() 함수가 추가됩니다. 추가 임계값 동작에 대한 내용은 노트 섹션을 참조하세요. | +| min | 쿼리의 평가 기간 내 모든 데이터 포인트가 임계값을 초과하면 경보가 발생합니다. 모니터링 쿼리에 min() 함수가 추가됩니다. 추가 임계값 동작에 대한 내용은 노트 섹션을 참조하세요. | +| 합계 | 시계열의 모든 데이터 포인트 합계가 임계값을 초과하면 경보가 발생합니다. 모니터링 쿼리에 `sum()` 함수가 추가됩니다. | +| 백분위수(pXX) | 쿼리의 평가 기간 내 pXX 백분위수의 데이터 포인트가 임계값을 초과하면 경보가 발생합니다. 이 옵션으로 모니터링 쿼리에 `percentile` 함수가 추가됩니다. 분포 메트릭 유형에만 사용할 수 있습니다. +| 평가 기간| 모니터링이 평가하는 시간 기간입니다. 1분에서 730시간(1개월) 사이의 값을 설정하려면 `5 minutes`, `15 minutes`, `1 hour` 또는 `custom`와 같은 미리 설정된 시간 창을 사용하세요. | {{% /tab %}} {{< /tabs >}} -**참조**: - - 백분위수 집계기와 함께 분포 메트릭을 사용하는 경우 일치하는 백분위수 임계값이 자동 지정됩니다. 백분위수 집계기가 있는 메트릭은 알림 메시지에서 스냅샷 그래프를 생성하지 않습니다. - - **최대/최소**: 최대 및 최소값에 대한 설명은 메트릭이 임계값을 초과할 때 모니터가 알림을 보낸다고 가정합니다. 임계값 미만일 때 알림을 보내는 모니터의 경우 최대 및 최소 동작이 반전됩니다. - - 모니터용 메트릭을 정의하는 것은 그래프용 메트릭을 정의하는 것과 유사합니다. `Advanced...` 옵션 사용에 대한 자세한 내용은 [고급 그래프 생성][2]을 참조하세요. - - `as_count()`를 활용할 시 다양한 동작이 있습니다. 자세한 내용은 [모니터 평가의 as_count()][3]를 참조하세요. - - `N/A` 그룹은 모니터에 포함되지 않으므로 태그 키에 값이 반드시 존재해야 합니다. +**참고:** + - 백분위수 애그리게이터가 있는 분포 메트릭을 사용하는 경우, 일치하는 백분위수 임계값이 자동으로 지정됩니다. 백분위수 애그리게이터가 있는 메트릭은 알림 메시지에 스냅샷 그래프를 생성하지 않습니다. + - **max/min**: 위의 max 및 min 설명은 메트릭이 임계값을 초과할 때 경보가 발생하는 경우를 가정합니다. 임계값 미만일 때 경보가 발생하는 모니터링에서는 max 및 min의 동작이 반대로 적용됩니다. + - 모니터링을 위한 메트릭 정의는 그래프를 위한 메트릭 정의와 유사합니다. `Advanced...` 옵션 사용에 대한 자세한 내용은 [고급 그래프 작성][2]을 참조하세요. + - 를 사용할 경우 동작 방식이 달라질 수 있습니다.`as_count()` 자세한 내용은 [as_count() in Monitor Evaluations][3]를 참조하세요. + - `N/A` 그룹은 monitors에 포함되지 않으므로 태그 키에 값이 반드시 존재해야 합니다. -## 경고 조건 설정 +## 경보 조건 설정 {#set-alert-conditions} -메트릭이 다음 중 하나일 때 트리거됩니다. +메트릭이 다음 중 하나의 조건을 충족하면 트리거됩니다. - `above` - `above or equal to` - `below` @@ -163,21 +162,21 @@ Datadog으로 보고되는 모든 메트릭은 모니터에서 사용할 수 있 - `equal to` - `not equal to` -값이 0과 1 사이인 경우 소수점 앞에 0이 필요합니다. 예: `0.3`. +값이 0과 1 사이인 경우 소수점 앞에 0이 필요합니다. 예를 들어, `0.3`입니다. -### 고급 알림 조건 +### 고급 경보 조건 {#advanced-alert-conditions} -#### 데이터 윈도우 +#### 데이터 창 {#data-window} -데이터 평가 전체 기간에 대하여 `Require` 또는 `Do not require` +`Require` 또는 `Do not require` 평가를 위한 전체 데이터 창입니다. -이 설정을 사용하면 알림 엔진이 모니터를 평가 후보로 간주하는 시점을 변경할 수 있습니다. +이 설정을 사용하면 알림 엔진이 모니터링을 평가 후보로 간주하는 시점을 변경할 수 있습니다. -**필수 아님**(기본값): 모니터를 인지하는 즉시 평가합니다. 데이터 포인트가 희소한 경우에 이 값을 사용하는 것을 고려해 보세요. 해당 구성을 사용하면 평가 타임프레임에 데이터 포인트가 하나만 있어도 모니터가 평가됩니다. +**필요하지 않음**(기본값): monitor는 인식되는 즉시 평가됩니다. 데이터 포인트가 희소할 수 있는 경우 이 값을 사용하는 것을 고려하세요. 이 구성으로 monitor는 평가 타임프레임에 단일 데이터 포인트가 있는 경우에도 평가됩니다. -**필수**: 모니터는 평가 기간이 데이터로 `filled`되어 있는 것으로 간주될 때까지 평가되지 않습니다. 전체 평가 타임프레임 동안 데이터가 존재하는 경우 알림을 받으려면 이 옵션을 사용하세요. +**필요함**: monitor는 평가 창이 `filled` 데이터로 간주될 때까지 평가되지 않습니다. 전체 평가 타임프레임에 데이터가 있을 경우 알림을 받으려면 이 옵션을 사용하세요. -평가 타임프레임이 데이터로 `filled`되어 있는지 정의하려면 해당 타임프레임을 더 작은 버킷으로 분할합니다. +평가 타임프레임이 `filled` 데이터로 채워져 있는지 정의하려면 해당 타임프레임을 더 작은 버킷으로 분할합니다. 다음 로직에 따라 버킷 크기가 결정됩니다. @@ -186,33 +185,33 @@ Datadog으로 보고되는 모든 메트릭은 모니터에서 사용할 수 있 * 평가 타임프레임(일): 버킷 크기는 1시간입니다. * 평가 타임프레임(월): 버킷 크기는 4시간입니다. -'전체 기간'으로 간주되려면 모니터는 다음이 필요합니다. +'전체 기간'으로 간주되려면 모니터링에는 다음이 필요합니다. -1. 첫 번째 버킷에 하나 이상의 데이터 포인트가 존재합니다. 첫 번째 버킷은 시간순으로 기간 내 가장 오래된 버킷입니다. +1. 첫 번째 버킷에 최소한 하나의 데이터 포인트가 있어야 합니다. 첫 번째 버킷은 창에서 시간적으로 가장 이른 버킷입니다. 2. 데이터 포인트가 없는 버킷은 총 3개 이하여야 합니다. -조건이 충족되면 모니터 상태가 평가됩니다. 그렇지 않으면 평가가 취소되고 모니터 상태가 변경되지 않습니다. +조건이 충족되면 monitor가 평가됩니다. 그렇지 않으면 평가가 취소되고 monitor 상태는 변경되지 않습니다. -예를 들어, 지난 `2h` 동안 평가한 모니터 하나가 10분 단위의 12개의 버킷으로 나뉘어 있다고 생각해 보세요. 첫 번째 버킷에 데이터가 존재하고 최대 총 3개의 버킷이 비어 있으면 모니터는 전체 기간으로 간주됩니다. +예를 들어, 지난 `2h` 동안 평가되는 monitor는 10분 단위로 12개의 버킷으로 나뉩니다. 첫 번째 버킷에 데이터가 있고 총 3개 이하의 버킷이 비어 있으면 monitor는 가득 찬 것으로 간주됩니다. -| data | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 | B11 | 전체 기간 여부| +| 데이터 | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 | B11 | 전체 창?| |--------|----|----|----|----|----|----|----|----|----|----|-----|-----|-------------| -| 케이스 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Yes | -| 케이스 2 | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | No | -| 케이스 3 | 1 | 1 | x | x | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Yes | -| 케이스 4 | 1 | x | x | x | 1 | 1 | 1 | 1 | x | x | 1 | 1 | No | +| 케이스 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 예 | +| 케이스 2 | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 아니요 | +| 케이스 3 | 1 | 1 | x | x | x | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 예 | +| 케이스 4 | 1 | x | x | x | 1 | 1 | 1 | 1 | x | x | 1 | 1 | 아니요 | -평가 기간에 대한 자세한 내용은 [모니터 구성][5] 페이지를 참조하세요. +평가 기간에 대한 자세한 내용은 [모니터링 구성][5] 페이지를 참조하세요. -#### 기타 옵션 +#### 기타 옵션 {#other-options} -고급 알림 옵션(데이터 없음, 자동 해결 등)에 대한 지침을 확인하려면 [모니터 설정][6] 페이지를 참조하세요. +고급 경보 옵션(데이터 없음, 자동 해결 등)에 대한 지침을 확인하려면 [모니터링 구성][6] 페이지를 참조하세요. -## 알림 +## 알림 {#notifications} -**알림 및 자동화 설정** 섹션에 대한 자세한 지침은 [알림][7] 및 [모니터링 설정][8] 페이지를 참조하세요. +**알림 및 자동화 구성** 섹션에 대한 지침은 [알림][7] 및 [모니터링 구성][8] 페이지를 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/profiler/_index.md b/content/ko/profiler/_index.md index 8a614f754ff..35bb0b543b8 100644 --- a/content/ko/profiler/_index.md +++ b/content/ko/profiler/_index.md @@ -1,4 +1,7 @@ --- +algolia: + tags: + - profiler aliases: - /ko/tracing/profiling/ - /ko/tracing/profiler/ @@ -8,16 +11,19 @@ cascade: further_reading: - link: /profiler/enabling tag: 설명서 - text: 애플리케이션에 대해 지속적 프로파일러 사용 + text: 애플리케이션에 대해 연속 프로파일러 사용 - link: getting_started/profiler tag: 설명서 text: 지속적 프로파일러 시작하기 -- link: profiler/search_profiles +- link: profiler/profile_visualizations tag: 설명서 text: 사용 가능한 프로파일 유형에 대해 자세히 알아보기 -- link: /developers/guide/data-collection-resolution-retention/ +- link: /extend/guide/data-collection-resolution/ tag: 설명서 - text: 데이터 수집, 해결 및 보존 + text: 데이터 수집 및 해결 +- link: https://www.datadoghq.com/blog/source-code-preview/ + tag: 블로그 + text: Continuous Profiler의 소스 코드 미리 보기로 중요한 코드에 집중 - link: https://www.datadoghq.com/blog/introducing-datadog-profiling/ tag: 블로그 text: DataDog에서 상시 운영 환경 프로파일링 도입 @@ -29,82 +35,88 @@ further_reading: text: Datadog 프로파일 비교를 통한 코드 비교 및 최적화 - link: https://www.datadoghq.com/blog/engineering/how-we-optimized-our-akka-application-using-datadogs-continuous-profiler/ tag: 블로그 - text: Datadog의 지속적 프로파일러를 사용해 Akka 애플리케이션을 최적화하는 방법 + text: Datadog의 Continuous Profiler를 사용해 Akka 애플리케이션을 최적화하는 방법 - link: https://www.datadoghq.com/blog/ruby-profiling-datadog-continuous-profiler/ tag: 블로그 - text: Datadog 지속적 프로파일러를 통해 루비(Ruby) 코드 성능 분석 -title: 지속적 프로파일러 + text: Datadog Continuous Profiler를 통해 루비(Ruby) 코드 성능 분석 +- link: https://www.datadoghq.com/blog/continuous-profiler-context-attributes/ + tag: 블로그 + text: Cloud SIEM 팀이 Continuous Profiler와 컨텍스트 속성을 활용하여 중요한 성능 인사이트를 확보하는 방법 +- link: https://www.datadoghq.com/blog/profiling-visualizations/ + tag: 블로그 + text: 모든 수준의 엔지니어가 프로파일링 시각화를 쉽게 활용할 수 있도록 지원하기 +- link: https://www.datadoghq.com/blog/continuous-profiling-fourth-pillar/ + tag: 블로그 + text: 지속적 프로파일링이 observability의 네 번째 축인 이유 +- link: https://www.datadoghq.com/blog/kubernetes-operator-performance + tag: 블로그 + text: Kubernetes 오퍼레이터 모니터링하여 애플리케이션을 원활하게 운영하기 +- link: https://www.datadoghq.com/blog/gitlab-source-code-integration + tag: 블로그 + text: Datadog의 GitLab 소스 코드 통합으로 더 빠르게 문제 해결하기 +title: Continuous Profiler --- - {{< vimeo url="https://player.vimeo.com/progressive_redirect/playback/441865141/rendition/1080p/file.mp4?loc=external&signature=ebc774b892f062e45922dcae82f4ebff0a906c8ec30f34b9d77494b0051748ad" poster="/images/poster/profiler.png" >}} -
    +
    CPU, 메모리 및 IO 병목 현상을 찾고 메서드 이름, 클래스 이름 및 라인 개수별로 상세 내역을 확인하여 최종 사용자 지연과 인프라 비용을 크게 줄일 수 있습니다. -### 프로덕션에 미치는 적은 영향 +### 프로덕션에서 미치는 적은 영향 {#low-impact-in-production} + +Continuous Profiler는 JDK Flight Recorder와 같은 기술을 활용하여 모든 서비스의 프로덕션에서 실행되므로 호스트의 CPU 및 메모리 사용량에 최소한의 영향만 미칩니다. -지속적 프로파일러는 DK Flight Recorder와 같은 기술을 활용하여 모든 서비스의 프로덕션에서 실행되므로 호스트의 CPU 및 메모리 사용량에 최소한의 영향만 미칩니다. +## 시작하기 {#getting-started} -## 시작하기 +서비스를 프로파일링하여 한 곳에서 스택 트레이스를 시각화하는 데 단 몇 분이면 됩니다. -서비스를 프로파일링하여 한 곳에서 스택 트래이스를 시각화하는 데 단 몇 분이면 됩니다. +### 애플리케이션 계측 {#instrument-your-application} -### 애플리케이션의 계측 +{{< partial name="profiling/profiling-languages.html" >}} -{{< card-grid image_width="400" >}} - {{< image-card href="/profiler/enabling/?prog_lang=go" src="integrations_logos/go-metro.png" alt="go" >}} - {{< image-card href="/profiler/enabling/?prog_lang=java" src="integrations_logos/java.png" alt="Java" >}} - {{< image-card href="/profiler/enabling/?prog_lang=java&runtime=graalvm_native_image" src="integrations_logos/graalvm.png" alt="GraalVM" >}} - {{< image-card href="/profiler/enabling/?prog_lang=node_js" src="integrations_logos/nodejs.png" alt="Node.js" >}} - {{< image-card href="/profiler/enabling/?prog_lang=php" src="integrations_logos/php.png" alt="PHP" >}} - {{< image-card href="/profiler/enabling/?prog_lang=python" src="integrations_logos/python.png" alt="Python" >}} - {{< image-card href="/profiler/enabling/?prog_lang=ruby" src="integrations_logos/ruby.png" alt="Ruby" >}} - {{< image-card href="/profiler/enabling/?prog_lang=dot_net" src="integrations_logos/dotnet_text.png" alt=".NET" >}} - {{< image-card href="/profiler/enabling/?prog_lang=rust" src="integrations_logos/rust.png" alt="Rust" >}} - {{< image-card href="/profiler/enabling/?prog_lang=c" src="integrations_logos/c.png" alt="C" >}} - {{< image-card href="/profiler/enabling/?prog_lang=cpp" src="integrations_logos/cpp.png" alt="C++" >}} -{{< /card-grid >}} +## 프로파일러 사용 가이드 {#guide-to-using-the-profiler} -## 프로파일러 사용 가이드 +[프로파일러 시작하기][1] 가이드는 성능 문제를 포함하는 샘플 서비스를 제공하여 Continuous Profiler를 사용하여 문제를 이해하고 해결하는 방법을 보여줍니다. -[프로파일러 시작히기][1] 가이드는 성능 문제를 포함하는 샘플 서비스를 제공하여 지속적 프로파일러가 문제를 이해하고 해결하는 방법을 보여줍니다. +## Datadog 프로파일러 탐색 {#explore-datadog-profiler} -## Datadog 프로파일러 탐색 +애플리케이션을 구성하여 프로파일을 Datadog로 전송한 후 코드 성능에 대한 인사이트를 받을 수 있습니다. -애플리케이션을 설정하여 프로파일을 Datadog로 전송한 후 코드 성능에 대한 인사이트를 받을 수 있습니다. +기본적으로 프로파일은 8일 동안 보존되며 프로파일 데이터에서 생성된 메트릭은 한 달 동안 보관됩니다. -기본적으로 프로파일은 7일 동안 보존되며 프로파일 데이터에서 생성된 메트릭은 한 달 동안 보관됩니다. +{{< learning-center-callout header="학습 센터에서 코드 성능 문제 진단 시도하기" btn_title="지금 등록" btn_url="https://learn.datadoghq.com/courses/continuous-profiler-course">}} + Datadog 학습 센터에는 이 주제에 관해 배워 보는 데 도움이 되는 실습 과정이 많습니다. Datadog Continuous Profiler를 사용해 프로덕션 환경의 애플리케이션 코드 성능을 조사하고 개선하는 방법을 무료로 학습하세요. +{{< /learning-center-callout >}} -### 프로파일 유형 +### 프로파일 유형 {#profile-types} 각 지원되는 언어에 대해 수집되는 프로파일 유형에 대한 설명은 [프로파일 유형][6]을 참조하세요. -{{< img src="profiler/profile-types.png" alt="자바(Java) 애플리케이션에 대해 수집되는 프로파일 유형 목록" style="width:100%;" >}} +{{< img src="profiler/profile-types2.png" alt="Java 애플리케이션을 위해 수집된 프로파일 유형 목록" style="width:100%;" >}} -### 태그별 프로파일 검색 +### 태그별 프로파일 검색 {#search-profiles-by-tags} 특정 호스트, 서비스, 버전 또는 조합을 포함하는 모든 차원에서 [태그를 사용하여 프로파일을 검색합니다][2]. -{{< img src="profiler/search_profiles2.mp4" alt="태그별 프로파일 검색" video=true >}} +{{< img src="profiler/search_profiles4.mp4" alt="태그별 프로파일 검색" video=true >}} -### 배포 환경에서 함수 성능 추적 +### 배포 환경에서 함수 성능 추적 {#track-function-performance-over-deployments} 메서드별 상위 CPU 사용량, 스레드별 상위 메모리 할당, 버전별 CPU 사용량 등 서비스의 핵심 프로파일링 메트릭을 획득하여 대시보드에서 시각화합니다. -{{< img src="profiler/profiling-metric-dashboard.mp4" alt="대시보드에 프로파일링 메트릭을 추가합니다." video=true >}} +{{< img src="profiler/profiling-metric-dashboard.mp4" alt="대시보드에 프로파일링 메트릭 추가하기" video=true >}} -### 프로파일링 데이터에 트레이스 연결 +### 프로파일링 데이터에 트레이스 연결 {#connect-traces-to-profiling-data} -[APM 분산 트레이싱][3]과 활성화된 지속적 프로파일러 모두를 포함하는 애플리케이션 프로세스는 자동으로 연결되므로 [코드 핫스팟 탭][4]의 스팬(span) 정보에서 프로파일링 데이터로 직접 이동하여 성능 문제와 관련된 구체적인 코드 라인을 찾을 수 있습니다. +[APM 분산 트레이싱][3]과 활성화된 지속적 프로파일러를 모두 포함하는 애플리케이션 프로세스는 자동으로 연결되므로, [프로파일 탭][4]의 스팬 정보에서 프로파일링 데이터로 직접 이동하여 성능 문제와 관련된 구체적인 코드 라인을 찾을 수 있습니다. -{{< img src="profiler/code_hotspots_tab.mp4" alt="APM 트레이스 스팬에 대한 프로파일링 정보를 표시하는 코드 핫스팟 탭" video=true >}} +{{< img src="profiler/profiles_tab.png" alt="프로파일 탭은 APM 트레이스 스팬에 대한 프로파일링 정보를 보여줍니다." >}} -### 프로파일 비교를 통해 성능 변화 찾기 +### 프로파일 비교를 통해 성능 변화 찾기 {#find-changes-in-performance-by-comparing-profiles} -각기 다른 시간, 환경, 배포 환경에서 유사한 프로파일을 비교하면 성능 문제의 가능한 원인과 해결 방법을 이해할 수 있습니다. Datadog 프로파일러는 [비교 시각화][5]를 제공하여 범위를 구체화한 시간 프레임이나 태그 기준 프로파일에 차이가 있는지를 알 수 있게 해줍니다. +다양한 시간, 환경 또는 배포에서 유사한 프로파일을 비교하면 성능 문제의 가능한 원인과 해결책을 이해하는 데 도움이 될 수 있습니다. Datadog 프로파일러는 시간 프레임이나 범위로 지정한 태그를 기반으로 프로파일 간 차이를 이해할 수 있도록 [비교 시각화][5]를 제공합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/session_replay/_index.md b/content/ko/session_replay/_index.md new file mode 100644 index 00000000000..18e8e74e958 --- /dev/null +++ b/content/ko/session_replay/_index.md @@ -0,0 +1,135 @@ +--- +aliases: +- /ko/real_user_monitoring/guide/session-replay-getting-started/ +- /ko/real_user_monitoring/session_replay/ +- /ko/product_analytics/session_replay/ +- /ko/real_user_monitoring/session_replay/developer_tools +- /ko/real_user_monitoring/session_replay/browser/developer_tools +- /ko/product_analytics/session_replay/browser/developer_tools +description: Session Replay를 사용해 사용자의 웹 브라우징이나 모바일 웹 경험을 캡처하고 시각적으로 재생하는 방법을 알아보세요. +further_reading: +- link: https://www.datadoghq.com/blog/session-replay-datadog/ + tag: 블로그 + text: Datadog 세션 리플레이를 사용하여 실시간 사용자 여정 보기 +- link: https://www.datadoghq.com/blog/reduce-customer-friction-funnel-analysis/ + tag: 블로그 + text: 퍼널 분석을 사용하여 주요 사용자 흐름을 파악하고 최적화 +- link: https://www.datadoghq.com/blog/zendesk-session-replay-integration/ + tag: 블로그 + text: Zendesk 및 Datadog Session Replay를 통해 사용자가 경험하는 문제를 시각적으로 재현합니다. +- link: /real_user_monitoring/explorer + tag: 설명서 + text: 탐색기에서 RUM 데이터 시각화 +- link: /integrations/content_security_policy_logs + tag: 설명서 + text: Datadog으로 CSP 위반 탐지 및 집계 +- link: https://learn.datadoghq.com/courses/intro-to-rum + tag: 학습 센터 + text: Real User Monitoring(RUM) 소개 +title: 세션 리플레이 +--- +## 개요 {#overview} + +세션 리플레이는 사용자의 웹 브라우징 또는 모바일 앱 경험을 캡처하고 시각적으로 재생할 수 있도록 하여 사용자 경험 모니터링을 확장합니다. 세션 리플레이는 [RUM][1]과 [Product Analytics][2] 모두에서 제공되며, 오류를 식별하고 재현하며, 사용자 여정을 이해하고, 애플리케이션의 사용 패턴과 디자인 문제에 대한 통찰력을 제공합니다. + +## 브라우저 세션 리플레이 {#browser-session-replay} + +브라우저 세션 리플레이는 사용자의 웹 브라우징 경험을 캡처하고 시각적으로 재생할 수 있도록 하여 사용자 경험 모니터링을 확장합니다. 세션 리플레이를 RUM 성능 데이터와 함께 사용하면 오류 식별, 재현, 해결에 유익하며 웹 애플리케이션의 사용량 패턴과 설계상 위험에 관한 인사이트를 얻을 수 있습니다. + +RUM Browser SDK는 [오픈 소스][3]이며 오픈 소스 [rrweb][4] 프로젝트를 활용합니다. + +[브라우저를 위한 세션 리플레이][5]에 대해 자세히 알아보세요. + +## 모바일 세션 리플레이 {#mobile-session-replay} + +모바일 세션 리플레이는 탭, 스와이프 및 스크롤과 같은 각 사용자 상호작용을 시각적으로 재생하여 모바일 애플리케이션에 대한 가시성을 확장합니다. Android와 iOS의 네이티브 앱 모두에서 사용할 수 있습니다. 애플리케이션에서 사용자 상호작용을 시각적으로 재생하면 충돌 및 오류를 재현하고 UI 개선을 위한 사용자 여정을 이해하는 데 더 쉬워집니다. + +[모바일을 위한 세션 리플레이][6]에 대해 자세히 알아보세요. + +## AI 기반 요약 및 스마트 챕터 {#ai-powered-summaries-and-smart-chapters} + +{{< site-region region="gov,gov2" >}}
    이 기능은 선택한 Datadog 사이트({{< region-param key="dd_site_name" >}})에서 지원되지 않습니다.
    {{< /site-region >}} + +요약 및 스마트 챕터는 세션을 시청하기 전에 세션에서 발생한 일에 대한 맥락을 제공합니다. + +**요약**은 사용자의 의도, 주요 액션, 마찰 신호 및 결과를 설명합니다. 요약의 특정 순간은 하이퍼링크되어 있어 재생에서 해당 지점으로 직접 이동할 수 있습니다. 세션 목록에서 재생 위에 마우스를 올리면 요약을 미리 볼 수 있으며, 재생을 직접 열 수 있습니다. 세션이 이전에 요약된 경우, 재생을 열 때 요약이 즉시 나타납니다. + +{{< img src="real_user_monitoring/session_replay/session-replay-ai-summary.png" alt="세션 리플레이 플레이어의 AI 기반 요약으로, 사용자 의도, 주요 액션, 마찰 신호 및 하이퍼링크된 순간을 보여줍니다." style="width:100%;" >}} + +**스마트 챕터**는 재생 타임라인을 사용자 여정의 레이블이 있는 스테이지로 자동으로 분할합니다. 예를 들어, 전자상거래 세션에서는 챕터가 "조명 탐색", "침대 및 의자 쇼핑", "장바구니 검토 및 결제"를 포함할 수 있습니다. 챕터는 타임라인 위에 마우스를 올리면 나타나고 플레이어 컨트롤의 드롭다운에서 볼 수 있어 직접 이동할 수 있습니다. + +{{< img src="real_user_monitoring/session_replay/session-replay-smart-chapters.png" alt="사용자 여정의 레이블이 있는 스테이지가 표시된 세션 리플레이 플레이어의 스마트 챕터 드롭다운" style="width:100%;" >}} + +AI 요약 및 스마트 챕터는 최소 네 개의 사용자 액션과 최소 45초의 지속 시간을 가진 세션에 대해 생성됩니다. + +## 코멘트 {#comments} + +{{< site-region region="gov,gov2" >}}
    이 기능은 선택한 Datadog 사이트({{< region-param key="dd_site_name" >}}). 이 기능이 필요하면 Datadog 지원에 문의하세요.
    {{< /site-region >}} + +세션 리플레이 코멘트를 통해 팀이 재생 내에서 버그, 사용성 문제 및 기타 관찰 사항에 대해 협업할 수 있습니다. + +코멘트를 사용하면 다음을 수행할 수 있습니다. + +- 재생 타임라인의 특정 타임스탬프에 코멘트를 추가합니다. 코멘트 마커는 타임라인과 **코멘트** 탭에 나타납니다. +- @멘션을 사용하여 코멘트에서 팀원이나 팀을 언급합니다. 태그된 사용자는 코멘트된 타임스탬프에서 재생을 열 수 있는 링크가 포함된 이메일 알림을 받습니다. +- 모든 코멘트에 대한 링크를 복사하고 외부에 공유합니다. 링크를 클릭하면 해당 코멘트 스레드가 열려 있는 주석이 달린 순간에서 재생이 시작됩니다. +- 재생 내에서 협업하기 위해 스레드 내에서 답변하고 필요에 따라 자신의 코멘트를 편집하거나 삭제합니다. + +{{< img src="real_user_monitoring/session_replay/session-replay-comments.png" alt="타임라인에 타임스탬프가 있는 코멘트와 스레드 답변이 열려 있는 코멘트 탭이 있는 세션 리플레이 플레이어." style="width:100%;" >}} + +주의가 필요한 재생을 찾으려면 **나에게 모든 언급** 및 **코멘트된 재생** 기본 재생 목록을 사용하세요. 자세한 내용은 [세션 리플레이 재생 목록][7]을 참조하세요. + +## 데이터 보존 연장 {#extend-data-retention} + +기본적으로 세션 리플레이 데이터는 30일 동안 보존됩니다. + +세션 리플레이 데이터 보존 기간을 15개월로 연장하려면 개별 세션 리플레이에서 _Extended Retention_을 활성화할 수 있습니다. 이 세션은 비활성 상태여야 합니다(사용자가 경험을 완료한 상태). + +나중에 세션 리플레이에 액세스하려면 Datadog에서 URL을 저장하거나 [재생 목록][7]에 추가하는 것을 권장합니다. + +Extended Retention은 세션 리플레이에만 적용되며 관련 이벤트는 포함되지 않습니다. 15개월은 Extended Retention이 활성화될 때 시작되며, 세션이 수집될 때가 아닙니다. + +언제든지 Extended Retention을 비활성화할 수 있습니다. 세션 리플레이가 기본 30일 보존 기간 내에 있는 경우, 재생은 초기 30일 기간이 끝날 때 만료됩니다. 30일 이상 된 세션 리플레이에서 Extended Retention을 비활성화하면 재생이 즉시 만료됩니다. + +{{< img src="real_user_monitoring/session_replay/extended-retention-1.png" alt="Extended Retention 활성화" style="width:100%;" >}} + +보존 기간을 연장하면 어떤 데이터가 보존되는지 알아보려면 다음 다이어그램을 참고하세요. + +{{< img src="real_user_monitoring/session_replay/replay-extended-retention-1.png" alt="Extended Retention으로 유지되는 데이터의 다이어그램" style="width:100%;" >}} + +## 재생 기록 {#playback-history} + +플레이어 페이지에 표시된 **시청한** 수를 클릭하면 특정 세션 리플레이를 누가 시청했는지 확인할 수 있습니다. 이 기능을 통해 공유하려는 녹화를 누가 이미 시청했는지 확인할 수 있습니다. + +{{< img src="real_user_monitoring/session_replay/session-replay-playback-history.png" alt="세션 녹화를 시청한 사람 확인" style="width:100%;" >}} + +기록에는 플레이어 페이지 또는 [노트북][8]이나 사이드 패널과 같은 임베디드 플레이어에서 발생한 재생만 포함됩니다. 포함된 재생은 [Audit Trail][9] 이벤트도 생성합니다. 썸네일 미리보기는 기록에 포함되지 않습니다. + +재생 기록을 조회하려면 [내 시청 기록][10] 재생 목록을 확인하세요. + +## 재생 목록 {#playlists} + +세션 리플레이의 재생 목록을 만들어서 관찰한 패턴에 따라 정리할 수 있습니다. [세션 리플레이 재생 목록][7]에 대해 더 알아보세요. + +## 개발자 도구 {#dev-tools} + +개발자 도구는 세션 리플레이에서 재생 중에 주요 정보를 노출하는 내장 디버깅 패널입니다. 문제를 식별하고, 요청을 추적하며, 성능 병목 현상을 이해하는 데 사용하세요. 이 모든 작업은 문제를 직접 재현하지 않고도 수행할 수 있습니다. 개발자 도구는 [RUM][1] 세션에서 사용할 수 있습니다. + +[브라우저][11] 및 [모바일][12]용 개발자 도구에 대해 더 알아보세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/real_user_monitoring/ +[2]: /ko/product_analytics/ +[3]: https://github.com/DataDog/browser-sdk +[4]: https://www.rrweb.io/ +[5]: /ko/session_replay/browser/ +[6]: /ko/session_replay/mobile/ +[7]: /ko/session_replay/playlists +[8]: /ko/notebooks/ +[9]: /ko/account_management/audit_trail/ +[10]: /ko/rum/replay/playlists/my-watch-history +[11]: /ko/session_replay/browser/dev_tools/ +[12]: /ko/session_replay/mobile/dev_tools/ \ No newline at end of file diff --git a/content/ko/tracing/guide/ignoring_apm_resources.md b/content/ko/tracing/guide/ignoring_apm_resources.md index fab2ae8c882..1c5c10e59e1 100644 --- a/content/ko/tracing/guide/ignoring_apm_resources.md +++ b/content/ko/tracing/guide/ignoring_apm_resources.md @@ -1,65 +1,77 @@ --- -title: APM에서 원하지 않는 리소스 무시하기 +description: '샘플링 규칙과 필터링을 사용하여 원치 않는 리소스(예: 상태 검사)를 트레이스에서 제외하는 방법을 배우고, 노이즈를 줄이고 + 비용을 관리하세요.' +title: APM에서 원치 않는 리소스 무시 --- +서비스는 종종 추적하고 싶지 않은 엔드포인트(예: 상태 검사)를 처리합니다. 이 가이드에서는 해당 트래픽을 제외하는 다음 방식을 설명합니다. -서비스에서는 다양한 요청을 처리합니다. 이 중에는 추적하거나 트레이스 메트릭에 포함될 필요가 없는 것도 있습니다. 예를 들어 웹 애플리케이션 상태 점검은 포함될 필요가 없습니다. +- **샘플링**: 요청을 트레이스 메트릭에는 계속 표시하되, 트레이스 수집량을 줄이고 싶을 때 사용합니다. +- **Datadog Agent에서 필터링**: Agent에 보고하는 모든 서비스에서 요청(트레이스 메트릭 포함)을 완전히 제외하는 데 사용합니다. +- **트레이서 구성**: 서비스별로 필터링 로직을 적용해야 하거나 애플리케이션별 컨텍스트(예: 요청 속성, 런타임 상태)에 따라 필터링해야 할 때 사용합니다. -이와 같은 엔드포인트를 추적하지 않고 트레이스 메트릭에서 제외하는 방법에는 두 가지가 있습니다. +어떤 방법이 해당 사용 사례에 가장 적합한지 판단하는 데 도움이 필요하면 [Datadog 지원][1]에 문의하세요. -- [트레이스 에이전트를 구성](#trace-agent-configuration-options)(Datadog 에이전트)하거나 또는 -- [트레이서를 구성](#tracer-configuration-options)하는 것입니다. +## 샘플링 {#sampling} -
    참고: 다음 옵션으로 트레이스를 필터링하면 트레이스 메트릭에서 이 해당 요청을 삭제합니다. 트레이스 메트릭에 영향을 주지 않고 수집 데이터를 줄이는 방법을 알아보려면 수집 통제를 참고하세요.
    +스팬을 트레이스 메트릭에 포함시키되 Datadog에 수집하지 않으려면 샘플링 규칙을 사용하세요. 샘플링에 대한 자세한 내용은 [Ingestion Control][4]을 참조하세요. -도움이 필요하면 [Datadog 지원팀][1]에 문의하세요. +### 샘플링 규칙 사용 {#using-sampling-rules} +권장되는 접근 방식은 리소스 이름, 서비스 이름, 태그 및 작업 이름을 기준으로 트레이스를 샘플링할 수 있는 샘플링 규칙을 사용하는 것입니다. -## 트레이스 에이전트 구성 옵션 +```shell +DD_TRACE_SAMPLING_RULES='[{"resource": "GET healthcheck", "sample_rate": 0.0}]' +``` -트레이스 에이전트는 Datadog 에이전트의 구성 요소이며, 두 가지 방법으로 특정 트레이스가 수집되는 것을 방지할 수 있습니다. 스팬 태그를 무시하거나 리소스를 무시하는 방법입니다. 이와 같은 설정으로 트레이스가 수집되지 않으면 트레이스 메트릭에서 이 요청을 제외합니다. +또는 HTTP URL 태그를 기준으로 샘플링할 수도 있습니다. -트레이스 에이전트에서 특정 스팬이나 리소스를 무시하도록 구성하면 이 특정 Datadog 에이전트로 트레이스를 전송하는 서비스 전체에 적용됩니다. 애플리케이션 지정 필수 조건이 있을 경우에는 대신 [트레이서 구성](#tracer-configuration) 방법을 사용하세요. +```shell +DD_TRACE_SAMPLING_RULES='[{"tags": {"http.url": "http://.*/healthcheck$"}, "sample_rate": 0.0}]' +``` -### 스팬 태그 기반 무시 +
    샘플링은 트레이스의 첫 번째 스팬을 사용하여 결정합니다. 필터링하려는 태그가 포함된 스팬이 {{< tooltip glossary="trace_root_span" case="sentence" >}}이 아닌 경우, 이 규칙은 적용되지 않습니다.
    -Datadog 에이전트 6.27.0/7.27.0부터 **태그 필터** 옵션을 사용해 특정 스팬 태그와 일치하는 루트 스팬의 트레이스를 제외할 수 있습니다. 이 옵션은 특정 Datadog 에이전트에 트레이스를 보내는 모든 서비스에 적용됩니다. 필터 태그 때문에 제외된 트레이스는 트레이스 메트릭에 포함되지 않습니다. +## Datadog Agent에서 필터링 {#filtering-in-the-datadog-agent} -Datadog에 보내고 싶지 않은 트레이스 세트를 프로그램적인 방법으로 파악할 수 있고, 이 가이드에 안내된 내용으로 필요한 조건을 충족할 수 없을 경우, [커스텀 스팬 태그][2]를 추가해 트레이스를 제외하는 것을 권고합니다. 사례에 맞는 방법이 무엇인지 논의하고 Datadog에서 이 기능을 계속해서 확장할 수 있도록 [지원팀에 문의][1]해 주시면 감사하겠습니다. +스팬을 Datadog에 수집하지도 않고 트레이스 메트릭에도 반영하지 않으려면 Datadog Agent 필터링을 사용하세요. -필터 태그 옵션을 사용하려면 문자열이 정확하게 일치해야 합니다. regex 무시 방법이 필요한 사용 사례일 경우에는 [리소스 기반 무시](#ignoring-based-on-resources) 방법을 사용하세요 +Datadog Agent의 Trace Agent 구성 요소는 특정 트레이스 전송을 차단하는 두 가지 방법을 제공합니다. 스팬 태그 기준 필터링과 리소스 기준 필터링입니다. 이 설정으로 인해 트레이스가 삭제되면, 해당 요청은 트레이스 메트릭에서도 제외됩니다. -환경 변수에서 띄어쓰기로 구분된 키와 값의 목록을 사용하여 포함하거나 거부할 스팬 태그를 지정할 수 있습니다. +특정 트레이스나 리소스를 무시하도록 Trace Agent를 구성하면 해당 Datadog Agent에 트레이스를 전송하는 모든 서비스에 적용됩니다. 애플리케이션별 요구 사항이 있는 경우 [Tracer 구성](#tracer-configuration)을 대신 사용하세요. -`DD_APM_FILTER_TAGS_REQUIRE` -: 특정 스팬 태그와 값에 완전히 일치하는 루트 스팬 트레이스만 수집합니다. 이 규칙과 일치하지 않으면 트레이스가 제외됩니다(예: `DD_APM_FILTER_TAGS_REQUIRE="key1:value1 key2:value2"`). Datadog 에이전트 7.49+의 경우 정규식을 `DD_APM_FILTER_TAGS_REGEX_REQUIRE`로 제공할 수 있습니다. +
    +이 가이드의 옵션 중 어느 것도 요구 사항을 충족하지 못하는 경우, 애플리케이션에 사용자 지정 스팬 태그를 추가한 후 Agent에서 해당 태그를 사용하여 트레이스를 삭제하는 방법을 고려할 수 있습니다. +
    -`DD_APM_FILTER_TAGS_REJECT` -: 특정 스팬 태그 및 값과 완전히 일치하는 루트 스팬 트레이스를 거부합니다. 이 규칙과 일치하면 트레이스가 제외됩니다(예: `DD_APM_FILTER_TAGS_REJECT="key1:value1 key2:value2"`). Datadog 에이전트 7.49+의 경우 정규식을 `DD_APM_FILTER_TAGS_REGEX_REJECT`로 제공할 수 있습니다. +### 스팬 태그를 기반으로 트레이스 무시하기 {#ignoring-traces-based-on-span-tags} +Datadog Agent 6.27.0/7.27.0부터 **filter tags** 옵션을 사용하여 지정된 스팬 태그와 일치하는 루트 스팬을 가진 트레이스를 삭제합니다. 이 옵션은 해당 Datadog Agent로 트레이스를 전송하는 모든 서비스에 적용됩니다. 필터 태그로 인해 삭제된 트레이스는 트레이스 메트릭에 포함되지 않습니다. -{{< tabs >}} -{{% tab "datadog.yaml" %}} +
    +트레이스 내의 개별 스팬을 선택적으로 삭제할 수 없습니다. 루트 스팬이 필터 기준과 일치하면 전체 트레이스가 삭제됩니다. +
    -또는 에이전트 구성에서 쉼표로 구분된 목록으로 설정할 수 있습니다. +**일치 동작:** -{{< code-block lang="yaml" filename="datadog.yaml" >}} -apm_config: - filter_tags: - require: ["db:sql", "db.instance:mysql"] - reject: ["outcome:success", "key2:value2"] -{{< /code-block >}} +필터 태그 옵션은 정확한 문자열 일치를 요구합니다. 정규식 기반 필터링이 필요한 경우 [리소스 기반 무시](#ignoring-traces-based-on-resources)를 참조하세요.. -예를 들어 `http.url`과 이 엔드포인트가 일치하는 상태 점검을 무시하려면 다음을 참고하세요. +여러 태그를 지정하면 필터는 **OR 로직**으로 동작합니다. : 즉, 루트 스팬이 지정된 태그 중 **하나라도** 일치하면 트레이스가 삭제됩니다. 여러 조건을 동시에 일치시키려면, 해당 조건을 조합한 사용자 지정 태그를 추가하세요. -{{< code-block lang="yaml" filename="datadog.yaml" >}} -apm_config: - filter_tags: - reject: ["http.url:http://localhost:5050/healthcheck"] -{{< /code-block >}} +**구성:** + +환경 변수에서 공백으로 구분된 키와 값의 목록을 사용하여 포함하거나 거부할 스팬 태그를 지정할 수 있습니다. + +`DD_APM_FILTER_TAGS_REQUIRE` +: 지정된 스팬 태그 및 값과 정확히 일치하는 루트 스팬이 있는 트레이스만 수집합니다. 이 규칙과 일치하지 않으면 트레이스가 삭제됩니다. 예를 들어, `DD_APM_FILTER_TAGS_REQUIRE="key1:value1 key2:value2"`입니다. Datadog Agent 7.49 이상에서는 `DD_APM_FILTER_TAGS_REGEX_REQUIRE`를 사용하여 정규식을 지정할 수 있습니다. + +`DD_APM_FILTER_TAGS_REJECT` +: 지정된 스팬 태그 및 값과 정확히 일치하는 루트 스팬이 있는 트레이스만 거부합니다. 이 규칙과 일치하면 트레이스가 삭제됩니다. 예를 들어, `DD_APM_FILTER_TAGS_REJECT="key1:value1 key2:value2"`입니다. Datadog Agent 7.49 이상에서는 `DD_APM_FILTER_TAGS_REGEX_REJECT`를 사용하여 정규식을 지정할 수 있습니다. + +{{< tabs >}} -{{% /tab %}} {{% tab "Kubernetes" %}} -#### Datadog 연산자 + +#### Datadog Operator {#datadog-operator} {{< code-block lang="yaml" filename="datadog-agent.yaml" >}} apiVersion: datadoghq.com/v2alpha1 @@ -78,7 +90,7 @@ spec: {{% k8s-operator-redeploy %}} -#### Helm +#### Helm {#helm} {{< code-block lang="yaml" filename="datadog-values.yaml" >}} agents: @@ -93,47 +105,73 @@ agents: {{% k8s-helm-redeploy %}} [1]: /ko/agent/kubernetes/?tab=helm#installation + {{% /tab %}} -{{< /tabs >}} -이 방법으로 트레이스를 필터링하면 [트레이스 메트릭][3]에서 요청을 제거합니다. 트레이스 메트릭에 영향을 주지 않으면서 데이터 수집을 줄이는 방법을 알아보려면 [수집 통제][4]를 참고하세요. +{{% tab "datadog.yaml" %}} -Datadog는 데이터 수집 후 백엔드에서 다음 스팬 태그를 생성합니다. 이 태그를 사용해 Datadog 에이전트 수준에서 트레이스를 제외할 수 없습니다. +Agent 구성 파일에서도 쉼표로 구분된 목록을 사용하여 이러한 값을 설정할 수 있습니다. +{{< code-block lang="yaml" filename="datadog.yaml" >}} +apm_config: + filter_tags: + require: ["db:sql", "db.instance:mysql"] + reject: ["outcome:success", "key2:value2"] +{{< /code-block >}} + +예를 들어, `http.url`이 특정 엔드포인트와 일치하는 상태 검사를 무시하려면 다음과 같이 설정합니다. + +{{< code-block lang="yaml" filename="datadog.yaml" >}} +apm_config: + filter_tags: + reject: ["http.url:http://localhost:5050/healthcheck"] +{{< /code-block >}} + +{{% /tab %}} + +{{< /tabs >}} -| 이름 | 설명 | -|-----------------------------------------|--------------------------------------------------| -| `http.path_group` | `http.url` 태그의 전체 URL 경로 | -| `http.url_details.host` | `http.url` 태그의 호스트 이름 부분 | -| `http.url_details.path` | HTTP 요청 줄으로 전달된 전체 요청이나 이와 동등한 것 | -| `http.url_details.scheme` | `http.url` 태그의 요청 스키마 | -| `http.url_details.queryString` | `http.url` 태그의 쿼리 문자열 부분 | -| `http.url_details.port` | `http.url` 태그의 HTTP 포트 | -| `http.useragent_details.os.family` | User-Agent에서 보고한 OS 제품군 | -| `http.useragent_details.browser.family` | User-Agent에서 보고한 브라우저 제품군 | -| `http.useragent_details.device.family` | User-Agent에서 보고한 디바이스 제품군 | -
    참고: 2022년 10월 1일부터 Datadog 백엔드에서는 수집한 스팬의 트레이스 전체에 스팬 태그 시맨틱을 적용하기 위해 리매핑을 적용합니다. Datadog 에이전트 수준에서 태그 기반 스팬을 모두 제외하고 싶으면 리맵 열에 있는 태그를 사용하세요.
    +#### 사용 가능한 스팬 태그 {#available-span-tags} -#### 네트워크 통신 +Datadog은 수집 후 백엔드에서 다음과 같은 스팬 태그를 생성합니다. -| **이름** | **리맵** | +**참고**: 이 태그는 Datadog Agent 수준에서 트레이스를 삭제하는 데 사용할 수 없습니다. Datadog Agent는 수집 전에 사용할 수 있는 태그만을 기준으로 필터링합니다. + +| 이름 | 설명 | +|-----------------------------------------|--------------------------------------------------| +| `http.path_group` | `http.url` 태그의 전체 URL 경로입니다. | +| `http.url_details.host` | `http.url` 태그의 호스트 이름 부분입니다. | +| `http.url_details.path` | HTTP 요청 라인(또는 이에 상응하는 형식)에 전달된 전체 요청 대상입니다. | +| `http.url_details.scheme` | `http.url` 태그의 요청 스킴입니다. | +| `http.url_details.queryString` | `http.url` 태그의 쿼리 문자열 부분입니다. | +| `http.url_details.port` | `http.url` 태그의 HTTP 포트입니다. | +| `http.useragent_details.os.family` | User-Agent에서 보고한 OS 제품군입니다. | +| `http.useragent_details.browser.family` | User-Agent에서 보고한 브라우저 제품군입니다. | +| `http.useragent_details.device.family` | User-Agent에서 보고한 디바이스 제품군입니다. | + +
    2022년 10월 1일부터 Datadog 백엔드는 모든 수집된 스팬의 트레이서에서 Span Tags Semantics +를 적용하기 위해 재매핑을 적용합니다. Datadog Agent 수준에서 루트 스팬 태그를 기준으로 트레이스를 삭제하려면 리매핑 소스 열에 있는 태그를 사용하세요.
    + +##### 네트워크 통신 {#network-communications} + +| **이름** | **리매핑 소스** | |----------------------------|-----------------------------------------------------| | `network.host.ip` | `tcp.local.address` - Node.js | | `network.destination.ip` | `out.host` - 모든 언어 | | `network.destination.port` | `grpc.port` - Python
    `tcp.remote.port` - Node.js
    `out.port` - 모든 언어 | -#### HTTP 요청 +##### HTTP 요청 {#http-requests} -| **이름** | **리맵** | +| **이름** | **리매핑 소스** | |--------------------------------|-------------------------------------------------------------------------------------------------------| | `http.route` | `aspnet_core.route` - .NET
    `aspnet.route` - .NET
    `laravel.route` - PHP
    `symfony.route` - PHP | | `http.useragent` | `user_agent` - Java, C++ | | `http.url_details.queryString` | `http.query.string` - Python | -#### 데이터베이스 +##### 데이터베이스 {#database} -| **이름** | **리맵** | +| **이름** | **리매핑 소스** | |----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `db.system` | `db.type` - Java, Python, Node.js, Go
    `active_record.db.vendor` - Ruby
    `sequel.db.vendor` - Ruby | | `db.instance` | `mongodb.db` - Python
    `sql.db` - Python
    `db.name` - 모든 언어 | @@ -146,9 +184,9 @@ Datadog는 데이터 수집 후 백엔드에서 다음 스팬 태그를 생성 | `db.mongodb.collection` | `mongodb.collection` - Python, .NET, Ruby, PHP | | `db.cosmosdb.container` | `cosmosdb.container` - .NET | -#### 메시지 대기열 +##### 메시지 대기열 {#message-queue} -| **이름** | **리맵** | +| **이름** | **리매핑 소스** | |----------------------------------------|------------------------------------------------------------------------------------------------------------| | `messaging.destination` | `amqp.destination` - Node.js
    `amqp.queue` - .NET
    `msmq.queue.path` - .NET
    `aws.queue.name` - .NET | | `messaging.url` | `aws.queue.url` - .NET, Java | @@ -166,9 +204,9 @@ Datadog는 데이터 수집 후 백엔드에서 다음 스팬 태그를 생성 | `messaging.msmq.message.transactional` | `msmq.message.transactional` - .NET | -#### 원격 프로시저 호출 +##### 원격 프로시저 호출 {#remote-procedure-calls} -| **이름** | **리맵** | +| **이름** | **리매핑 소스** | |--------------------------------|---------------------------------------------------------------------------------------------------------| | `rpc.service` | `grpc.method.service` - Python, .NET | | `rpc.method` | `grpc.method.name` - Python, .NET, Go | @@ -179,45 +217,54 @@ Datadog는 데이터 수집 후 백엔드에서 다음 스팬 태그를 생성 | `rpc.grpc.request.metadata.*` | `grpc.request.metadata.*` - Python, Node.js
    `rpc.grpc.request.metadata` - Go | | `rpc.grpc.response.metadata.*` | `grpc.response.metadata.*` - Python, Node.js -#### 오류 +##### 오류 {#errors} -| **이름** | **리맵** | +| **이름** | **리매핑 소스** | |--------------------------------|---------------------------------------------------------------------------------------------------------| | `error.message` | `error.msg` - 모든 언어 | -### 리소스 기반 무시 +### 리소스를 기반으로 트레이스 무시하기 {#ignoring-traces-based-on-resources} + +**ignore resources** 옵션을 사용하면 트레이스의 전역 루트 스팬이 특정 기준과 일치할 경우 해당 리소스를 제외할 수 있습니다. [수집 대상에서 리소스 제외][5]를 참조하세요. 이 옵션은 이 특정 Datadog Agent에 트레이스를 전송하는 모든 서비스에 적용됩니다. ignore resources로 인해 삭제된 트레이스는 트레이스 메트릭에 포함되지 않습니다. -**리소스 무시** 옵션의 경우 트레이스의 전역 루트 스팬이 특정 조건을 충족할 경우 무시합니다. [수집에서 특정 리소스 제외[5]를 참고하세요. 이 옵션은 특정 Datadog 에이전트에 트레이스를 보내는 모든 서비스에 적용됩니다. 리소스 무시 때문에 제외된 트레이스는 트레이스 메트릭에 포함되지 않습니다. +무시할 리소스는 Agent 구성 파일 `datadog.yaml` 또는 `DD_APM_IGNORE_RESOURCES` 환경 변수를 사용하여 지정할 수 있습니다. 아래 예제를 참조하세요. -에이전트 구성 파일 `datadog.yaml`에서 무시할 리소스를 지정하거나 `DD_APM_IGNORE_RESOURCES` 환경 변수를 사용할 수 있습니다. 다음 예시를 참고하세요. +`datadog.yaml` 사용: {{< code-block lang="yaml" filename="datadog.yaml" >}} apm_config: -## @param ignore_resources - 문자열 목록 - 선택 사항 -## 리소스 이름을 기반으로 특정 트레이스를 제외할 정규식을 제공할 수 있습니다. -## 모든 항목에 큰 따옴표를 사용해야 하며 쉼표로 구분해야 합니다. +## @param ignore_resources - list of strings - optional +## A list of regular expressions can be provided to exclude certain traces based on their resource name. +## All entries must be surrounded by double quotes and separated by commas. ignore_resources: ["(GET|POST) /healthcheck","API::NotesController#index"] {{< /code-block >}} +`DD_APM_IGNORE_RESOURCES` 사용: + +```shell +DD_APM_IGNORE_RESOURCES="(GET|POST) /healthcheck,API::NotesController#index" +``` + **참고**: -- 트레이스 에이전트가 수용하는 regex 구문은 Go [regexp][6]로 평가됩니다. -- 배포 전략에 따라 특수문자를 이스케이프하여 regex를 조정해야 할 수 있습니다. -- Kubernetes로 전용 컨테이너를 사용하는 경우 리소스 무시 옵션으로 사용하는 환경 변수가 **trace-agent** 컨테이너에 적용되는지 다시 확인하세요. +- 환경 변수 형식(`DD_APM_IGNORE_RESOURCES`)을 사용할 경우 값은 쉼표로 구분된 문자열 목록으로 제공해야 합니다. +- Trace Agent가 수용하는 정규식 구문은 Go의 [regexp][6]로 평가됩니다. +- 배포 전략에 따라 특수문자를 이스케이프하여 정규식을 조정해야 할 수 있습니다. +- Kubernetes로 전용 컨테이너를 사용하는 경우 ignore resources 옵션으로 사용하는 환경 변수가 **trace-agent** 컨테이너에 적용되는지 다시 확인하세요. -#### 예시 +#### 예시{#example} -트레이스에 포함하고 싶지 않은 `/api/healthcheck` 호출이 있는 트레이스 예시를 보겠습니다. +트레이스에 포함하고 싶지 않은 `/api/healthcheck` 호출이 있는 트레이스 예시를 보겠습니다. -{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="트레이서가 무시하도록 하고자 하는 리소스의 플레임 그래프" style="width:90%;">}} +{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="SDK에서 무시하도록 설정하려는 리소스의 플레임 그래프" style="width:90%;">}} -전역 루트 스팬의 리로스 이름을 기입해 두세요 +전역 루트 스팬의 리소스 이름을 확인하세요. - 작업 이름: `rack.request` - 리소스 이름: `Api::HealthchecksController#index` - Http.url: `/api/healthcheck` -리소스 무시 옵션을 바르게 사용하려면 regex 규칙을 쓸 때 리소스 이름 `Api::HealthchecksController#index`와 일치하도록 써야 합니다. 사용할 수 있는 regex 옵션이 여럿 있으나 이 리소스를 정확하게 필터링하여 제외하려면 `Api::HealthchecksController#index$`와 같은 regex를 사용하는 것이 좋습니다. +ignore resources 옵션을 올바르게 사용하려면 작성한 정규식이 전역 루트 스팬의 리소스 이름(`Api::HealthchecksController#index`)과 일치해야 합니다. 몇 가지 정규식 옵션을 사용할 수 있지만, 이 리소스의 트레이스를 정확히 제외하려면 사용할 수 있는 정규식의 한 예는 `Api::HealthchecksController#index$`입니다. 배포 방법에 따라 구문은 조금 다를 수 있습니다. @@ -229,7 +276,7 @@ apm_config: ignore_resources: Api::HealthchecksController#index$ {{< /code-block >}} -값이 여럿일 경우: +여러 값을 지정하는 경우: {{< code-block lang="yaml" >}} apm_config: @@ -237,29 +284,29 @@ apm_config: {{< /code-block >}} {{% /tab %}} -{{% tab "Docker Compose" %}} +{{% tab "Docker compose" %}} -Datadog 에이전트 컨테이너의 환경 변수 목록에 아래 패턴으로 `DD_APM_IGNORE_RESOURCES`를 추가하세요. Docker Compose에는 특수문자 `$` 등을 사용할 경우에 사용할 자체 [변수 대체][1]가 있습니다. +Datadog Agent 컨테이너의 환경 변수 목록에 아래 예시와 같은 패턴으로 `DD_APM_IGNORE_RESOURCES`를 추가하세요. `$`와 같은 특수 문자를 사용할 때 Docker Compose에는 자체적인 [변수 치환][1] 기능이 있으므로 이를 고려해야 합니다. {{< code-block lang="yaml" >}} environment: - // 기타 Datadog 에이전트 환경 변수 + // other Datadog Agent environment variables - DD_APM_IGNORE_RESOURCES=Api::HealthchecksController#index$$ {{< /code-block >}} -값이 여럿일 경우: +여러 값을 지정하는 경우: {{< code-block lang="yaml" >}} environment: - // 기타 Datadog 에이전트 환경 변수 + // other Datadog Agent environment variables - DD_APM_IGNORE_RESOURCES="value1","Api::HealthchecksController#index$$" {{< /code-block >}} [1]: https://docs.docker.com/compose/compose-file/compose-file-v3/#variable-substitution {{% /tab %}} -{{% tab "Docker 실행" %}} +{{% tab "Docker run" %}} -Datadog 에이전트를 실행하는 docker 실행 명령에 `DD_APM_IGNORE_RESOURCES`를 추가하세요. +Datadog Agent를 실행하는 docker run 명령에 `DD_APM_IGNORE_RESOURCES`를 추가하세요. {{< code-block lang="shell" >}} docker run -d --name datadog-agent \ @@ -272,10 +319,10 @@ docker run -d --name datadog-agent \ -e DD_APM_IGNORE_RESOURCES="Api::HealthchecksController#index$" \ -e DD_APM_ENABLED=true \ -e DD_APM_NON_LOCAL_TRAFFIC=true \ - gcr.io/datadoghq/agent:latest + registry.datadoghq.com/agent:latest {{< /code-block >}} -값이 여럿일 경우: +여러 값을 지정하는 경우: {{< code-block lang="yaml" >}} -e DD_APM_IGNORE_RESOURCES=["value1","Api::HealthchecksController#index$"] \ @@ -284,11 +331,11 @@ docker run -d --name datadog-agent \ {{% /tab %}} {{% tab "Kubernetes daemonset" %}} -전용 trace-agent 컨테이너에 환경 변수 `DD_APM_IGNORE_RESOURCES`를 추가하세요. +전용 trace-agent 컨테이너에 환경 변수 `DD_APM_IGNORE_RESOURCES`을 추가하세요. {{< code-block lang="yaml" >}} - name: trace-agent - image: "gcr.io/datadoghq/agent:latest" + image: "registry.datadoghq.com/agent:latest" imagePullPolicy: IfNotPresent command: ["trace-agent", "-config=/etc/datadog-agent/datadog.yaml"] resources: {} @@ -325,7 +372,7 @@ docker run -d --name datadog-agent \ value: "Api::HealthchecksController#index$" {{< /code-block >}} -값이 여럿일 경우: +여러 값을 지정하는 경우: {{< code-block lang="yaml" >}} - name: DD_APM_IGNORE_RESOURCES @@ -335,7 +382,7 @@ docker run -d --name datadog-agent \ {{% /tab %}} {{% tab "Kubernetes Helm" %}} -`values.yaml` 파일의 `traceAgent` 섹션에서 `env` 섹션에 `DD_APM_IGNORE_RESOURCES`를 추가하고 [일반적인 방법으로 helm을 시작][1]하세요. +`values.yaml` 파일의 `traceAgent` 섹션에서 `DD_APM_IGNORE_RESOURCES`를 `env` 섹션에 추가한 후, [Helm을 평소처럼 실행][1]하세요. {{< code-block lang="yaml" filename="values.yaml" >}} traceAgent: @@ -346,14 +393,14 @@ docker run -d --name datadog-agent \ {{< /code-block >}} -값이 여럿일 경우: +여러 값을 지정하는 경우: {{< code-block lang="yaml" >}} - name: DD_APM_IGNORE_RESOURCES value: value1, Api::HealthchecksController#index$ {{< /code-block >}} -또는 `helm install` 명령에서 `agents.containers.traceAgent.env`를 설정할 수도 있습니다. +또는 `helm install` 명령에서 `agents.containers.traceAgent.env`를 설정할 수 있습니다. {{< code-block lang="shell" >}} helm install dd-agent -f values.yaml \ @@ -365,13 +412,13 @@ helm install dd-agent -f values.yaml \ [1]: /ko/agent/kubernetes/?tab=helm#installation {{% /tab %}} -{{% tab "Amazon ECS 태스크 정의" %}} +{{% tab "Amazon ECS 작업 정의" %}} -Amazon ECS(예: EC2)를 사용하는 경우, Datadog 에이전트 컨테이너 정의에서 환경 변수 `DD_APM_IGNORE_RESOURCES`와 값을 추가하여 JSON에서 다음과 같은 결과가 나오도록 하세요. +Amazon ECS(예: EC2)를 사용하는 경우, Datadog Agent 컨테이너 정의에서 환경 변수 `DD_APM_IGNORE_RESOURCES`와 값을 추가하여 JSON에서 다음과 같은 결과가 나오도록 하세요. {{< code-block lang="json" >}} "environment": [ - // other environment variables for the Datadog Agent + // other environment variables for the Datadog Agent { "name": "DD_APM_IGNORE_RESOURCES", "value": "Api::HealthchecksController#index$" @@ -382,22 +429,24 @@ Amazon ECS(예: EC2)를 사용하는 경우, Datadog 에이전트 컨테이너 {{% /tab %}} {{< /tabs >}} -
    참고: 이 방법으로 트레이스를 필터링하면 트레이스 메트릭에서 이 해당 요청을 삭제합니다. 트레이스 메트릭에 영향을 주지 않고 수집 데이터를 줄이는 방법을 알아보려면 수집 통제를 참고하세요.
    +
    이렇게 트레이스를 필터링하면 해당 요청이 트레이스 메트릭에서도 제거됩니다. 트레이스 메트릭에 영향을 주지 않고 수집량을 줄이는 방법에 대한 정보는 수집 제어.
    를 참조하세요. -## 트레이서 구성 옵션 +## 트레이서 구성 {#tracer-configuration} -일부 언어 특정 트레이서에서는 Datadog 에이전트로 전송하기 전에 스팬을 수정할 수 있습니다. 애플리케이션에서 필요한 특정 요구 사항 있고 아래 언어를 사용하는 경우 이 방법을 사용할 수 있습니다. +일부 언어 트레이서는 Datadog Agent로 전송되기 전에 트레이스를 제거할 수 있습니다. 애플리케이션별 요구 사항이 있는 경우 이 옵션을 사용하세요. -
    중요: 요청이 분산된 트레이스와 연결되어 있을 경우, 이 필터링 규칙으로 트레이스 일부가 제외될 경우 결과 트레이스에 샘플링 부정확성이 있을 수 있으니 유의하세요.
    +
    +1. 요청이 분산된 트레이스와 연결되어 있을 경우, 이 필터링 규칙으로 트레이스 일부가 제외될 경우 결과 트레이스에 샘플링 부정확성이 있을 수 있으니 유의하세요.
    +2. 이렇게 트레이스를 필터링하면 해당 요청이 트레이스 메트릭에서도 제거됩니다. 트레이스 메트릭에 영향을 주지 않고 수집량을 줄이는 방법에 대한 정보는 수집 제어.
    를 참조하세요. {{< programming-lang-wrapper langs="ruby,python,nodeJS,java" >}} {{< programming-lang lang="ruby" >}} -Ruby 트레이서에는 특정 조건을 충족하는 트레이스를 제거하는 후처리 파이프라인이 있습니다. 자세한 정보는 [후처리 트레이스][1]를 참고하세요. +Ruby 트레이서는 특정 기준을 충족하는 트레이스를 제거하는 후처리 파이프라인을 가지고 있습니다. 자세한 정보와 예시는 [트레이스 후처리][1]에서 확인할 수 있습니다. -예를 들어 리소스 이름이 `Api::HealthchecksController#index`이면 `Datadog::Tracing::Pipeline::SpanFilter` 클래스를 사용해 리소스 이름이 포함된 트레이스를 제거하세요. 이 필터를 [스팬 개체][2]의 다른 사용 가능한 메타데이터와 일치하는데 사용할 수도 있습니다. +예를 들어, 리소스 이름이 `Api::HealthchecksController#index`인 경우, 리소스 이름이 포함된 트레이스를 제거하기 위해 `Datadog::Tracing::Pipeline::SpanFilter` 클래스를 사용하세요. 이 필터는 [스팬 객체][2]에 대해 사용 가능한 다른 메타데이터를 기준으로 매칭하는 데에도 사용할 수 있습니다. ``` Datadog::Tracing.before_flush( @@ -411,26 +460,36 @@ Datadog::Tracing.before_flush( {{< programming-lang lang="python" >}} -Python 트레이서에는 특정 엔드포인트에서 트레이스를 제거할 수 있는 `FilterRequestsOnUrl` 필터가 있습니다. 또는 커스텀 필터를 쓸 수 있습니다. 자세한 정보는 [트레이서 필터링][1]을 참고하세요. +Python 트레이서는 원치 않는 트레이스를 필터링하는 옵션을 제공합니다. -루트 스팬의 `http.url` 스팬 태그에 `http:///healthcheck`이 있다고 가정해 봅시다. 다음 regex를 사용해 `healthcheck`로 끝나는 엔드포인트와 일치할 수 있습니다. +### 사용자 지정 필터 사용 {#using-custom-filters} -``` -from ddtrace import tracer -from ddtrace.filters import FilterRequestsOnUrl -tracer.configure(settings={ - 'FILTERS': [ - FilterRequestsOnUrl(r'http://.*/healthcheck$'), - ], -}) +고급 사용 사례의 경우, 사용자 지정 필터를 생성할 수 있습니다. + +```py +from ddtrace.trace import tracer +from ddtrace.trace import TraceFilter +import re + +class CustomFilter(TraceFilter): + def __init__(self, pattern): + self.pattern = re.compile(pattern) + + def process_trace(self, trace): + for span in trace: + if span.get_tag('http.url') and self.pattern.match(span.get_tag('http.url')): + return None # Drop the trace + return trace # Keep the trace + +# Configure the SDK with your custom filter +tracer.configure(trace_processors=[CustomFilter(r'http://.*/healthcheck$')]) ``` -[1]: https://ddtrace.readthedocs.io/en/stable/advanced_usage.html#ddtrace.filters.FilterRequestsOnUrl {{< /programming-lang >}} {{< programming-lang lang="nodeJS" >}} -[Http][1] 플러그인에 차단 목록을 구성하세요. API 문서에서 차단 목록과 일치하는 것이 있는지 유의해서 보세요. 예를 들어 수신 HTTP 요청이 URL 경로와 일치하는 경우 트레이스의 `http.url` 스팬 태그가 `http:///healthcheck`이면 `healthcheck` URL과 일치하는 규칙을 쓰세요. +[Http][1] 플러그인에 차단 목록을 구성합니다. 차단 목록이 무엇을 기준으로 매칭하는지 API 문서에서 확인하세요. 예를 들어, 들어오는 HTTP 요청은 URL 경로를 기준으로 매칭합니다. 따라서 트레이스의 `http.url` 스팬 태그가 `http:///healthcheck`인 경우, `healthcheck` URL과 매칭되는 규칙을 작성합니다. ``` @@ -449,21 +508,21 @@ tracer.use('http', { //import http ``` -
    참고: 계측된 모듈을 가져오기 전에 통합 트레이서 구성을 해야 합니다.
    +
    통합을 위한 SDK 구성은 해당 계측 모듈을 가져오기 전에 이루어져야 합니다.
    [1]: https://datadoghq.dev/dd-trace-js/interfaces/export_.plugins.connect.html#blocklist {{< /programming-lang >}} {{< programming-lang lang="java" >}} -Java 트레이서에는 커스텀 `TraceInterceptor` 옵션이 있어 스팬을 필터링할 수 있습니다. [트레이서 확장][1]을 참고하세요. +Java 트레이서는 특정 스팬을 필터링하기 위한 사용자 지정 `TraceInterceptor` 옵션을 제공합니다. [트레이서 확장하기][1]를 참조하세요. -예를 들어 리소스 이름이 `GET /healthcheck`이면 이 리소스 이름을 제외하는 트레이스 인터셉터를 쓰세요. 내 사용 사례에 맞게 로직을 바꾸세요. +예를 들어, 리소스 이름이 `GET /healthcheck`인 경우, 해당 리소스 이름을 포함하는 트레이스를 삭제하는 트레이스 인터셉터를 작성합니다. 사용 사례에 맞게 로직을 조정하세요. ``` public class GreetingController { static { - // 초기화를 여러 번 하는 것을 피하기 위해 클래스 정적 블록에 쓰세요. + // In a class static block to avoid initializing multiple times. GlobalTracer.get().addTraceInterceptor(new TraceInterceptor() { @Override public Collection onTraceComplete(Collection trace) { @@ -487,7 +546,6 @@ public class GreetingController { {{< /programming-lang >}} {{< /programming-lang-wrapper >}} -
    참고: 이 방법으로 트레이스를 필터링하면 트레이스 메트릭에서 이 해당 요청을 삭제합니다. 트레이스 메트릭에 영향을 주지 않고 수집 데이터를 줄이는 방법을 알아보려면 수집 통제를 참고하세요.
    [1]: /ko/help/ [2]: /ko/tracing/trace_collection/custom_instrumentation/otel_instrumentation/ diff --git a/content/ko/tracing/other_telemetry/rum/_index.md b/content/ko/tracing/other_telemetry/rum/_index.md new file mode 100644 index 00000000000..9a4a38b3440 --- /dev/null +++ b/content/ko/tracing/other_telemetry/rum/_index.md @@ -0,0 +1,35 @@ +--- +algolia: + tags: + - rum traces +aliases: +- /ko/real_user_monitoring/connect_rum_and_traces +- /ko/real_user_monitoring/platform/connect_rum_and_traces/ +further_reading: +- link: /tracing/ + tag: 설명서 + text: APM 및 분산 트레이싱 +- link: /real_user_monitoring + tag: 설명서 + text: RUM 및 세션 리플레이 +- link: /logs/guide/ease-troubleshooting-with-cross-product-correlation/ + tag: 길라잡이 + text: 교차 제품 연결을 통한 트러블슈팅 +- link: https://www.datadoghq.com/blog/real-user-monitoring-with-datadog/ + tag: 블로그 + text: Real User Monitoring +- link: https://www.datadoghq.com/blog/modern-frontend-monitoring/ + tag: 블로그 + text: 단일 페이지 응용프로그램 모니터링 시작 +- link: https://www.datadoghq.com/blog/troubleshoot-with-session-replay-developer-tools/ + tag: 블로그 + text: 세션 리플레이 브라우저 개발자 도구를 사용한 트러블슈팅 +- link: https://www.datadoghq.com/blog/correlate-traces-datadog-rum-otel/ + tag: 블로그 + text: OpenTelemetry 계측 애플리케이션에서 트레이스와 Datadog RUM 이벤트 연결 +- link: https://www.datadoghq.com/blog/rum-apm-single-step + tag: 블로그 + text: 명령 한 개로 Java 앱에 대한 종합적인 가시성 얻기 +title: RUM과 트레이스 연결 +--- +{{< include-markdown "real_user_monitoring/correlate_with_other_telemetry/apm" >}} \ No newline at end of file diff --git a/content/ko/tracing/trace_explorer/query_syntax.md b/content/ko/tracing/trace_explorer/query_syntax.md index 5d6dc071023..881dece3a74 100644 --- a/content/ko/tracing/trace_explorer/query_syntax.md +++ b/content/ko/tracing/trace_explorer/query_syntax.md @@ -16,8 +16,12 @@ aliases: - /ko/tracing/trace_search_and_analytics/analytics/ - /ko/tracing/app_analytics/analytics - /ko/tracing/trace_search_and_analytics/query_syntax +- /ko/tracing/trace_explorer/trace_groups description: 태그가 포함된 모든 트레이스에 대한 전역 검색 further_reading: +- link: /getting_started/search/ + tag: 설명서 + text: Datadog에서 검색 시작하기 - link: /tracing/trace_collection/ tag: 설명서 text: 애플리케이션에서 애플리케이션 성능 모니터링(APM) 추적 설정 방법 알아보기 @@ -26,42 +30,41 @@ further_reading: text: Datadog 트레이스 읽는 법 이해하기 - link: /tracing/software_catalog/ tag: 설명서 - text: Datadog에 보고하는 서비스 검색 및 카탈로그 작성 + text: Datadog에 보고하는 서비스를 검색 및 카탈로그화 - link: /tracing/services/service_page/ tag: 설명서 - text: Datadog 서비스에 대해 자세히 알아보기 + text: Datadog 서비스에 관해 자세히 알아보기 - link: /tracing/services/resource_page/ tag: 설명서 text: 리소스 성능 및 트레이스 자세히 살펴보기 title: 쿼리 구문 --- - -## 검색 쿼리 +## 검색 쿼리 {#search-query} 모든 검색 파라미터는 페이지 URL에 포함되어 있어 보기를 공유하는 데 도움이 될 수 있습니다. -### 검색 구문 +### 검색 구문 {#search-syntax} 쿼리는 *용어*와 *연산자*로 구성됩니다. -*용어*에는 두 가지 유형이 있습니다. - -* **스팬(span) 속성**: 애플리케이션에서 자동 또는 수동 계측을 통해 수집된 스팬(span)의 콘텐츠. -* **스팬(span) 태그**: 스팬(span)과 관련된 컨텍스트 보강. 예를 들어, 서비스가 실행되는 인프라스트럭처를 설명하는 호스트 또는 컨테이너 태그. +*용어*에는 다음과 같은 두 가지 유형이 있습니다. +* **스팬 속성**: 애플리케이션에서 자동 또는 수동 계측을 통해 수집된 스팬의 콘텐츠. +* **스팬 태그**: 스팬과 관련된 컨텍스트 보강. 예를 들어, 서비스가 실행되는 인프라를 설명하는 호스트 또는 컨테이너 태그입니다. + 여러 *용어*를 복잡한 쿼리로 결합하려면 다음 불리언 연산자 중 하나를 사용하세요. | **연산자** | **설명** | **예시** | |:-------------|:-------------------------------------------------------------------------------------------------------|:-----------------------------| -| `AND` | **Intersection**: 모든 용어가 선택한 이벤트에 존재합니다(추가된 것이 없으면 AND가 기본적으로 적용됨). | 인증 AND 실패 | -| `OR` | **Union**: 두 용어 중 하나가 선택한 이벤트에 포함되어 있습니다. | 인증 OR 비밀번호 | -| `-` | **Exclusion**: 다음 용어는 이벤트에 없습니다 | 인증 AND -비밀번호 | +| `AND` | **교집합**: 두 용어가 모두 선택한 이벤트에 있음(아무것도 추가하지 않으면 기본적으로 AND가 적용됨) | authentication AND failure | +| `OR` | **합집합**: 두 용어 중 하나가 선택한 이벤트에 포함됨 | authentication OR password | +| `-` | **제외**: 다음 용어가 이벤트에 없음 | authentication AND -password | -### 속성 검색 +### 속성 검색 {#attribute-search} -스팬(span) 속성을 검색하려면 속성 키 앞에 `@`을 추가해야 합니다. +스팬 속성을 검색하려면 속성 키 앞에 `@`을 추가해야 합니다. -예를 들어, 아래 속성이 있는 스팬(span)에 액세스하려면 다음을 사용합니다. +예를 들어, 아래 속성이 있는 스팬에 액세스하려면 다음을 사용합니다. `@git.commit.sha:12345` @@ -76,119 +79,119 @@ title: 쿼리 구문 } ``` -스팬(span) 속성은 트레이스 사이드 패널의 **개요** 탭에서 확인할 수 있습니다. +스팬 속성은 트레이스 사이드 패널의 **개요** 탭에서 확인할 수 있습니다. -**참고:** 다음 [예약된 속성][17]에는 `@`을 사용할 필요가 없습니다. `env`, `operation_name`, `resource_name`, `service`, `status`, `span_id`, `timestamp`, `trace_id`, `type`, `link` +**참고:** 다음 [예약된 속성][17]에 대해 `@`를 사용할 필요가 없습니다. `env`, `operation_name`, `resource_name`, `service`, `status`, `span_id`, `timestamp`, `trace_id`, `type`, `link` -### 태그 검색 +### 태그 검색 {#tags-search} -스팬(span)은 태그를 생성하는 호스트 및 통합에서 태그를 상속합니다. +스팬은 태그를 생성하는 호스트 및 통합에서 태그를 상속합니다. -예시: +예를 들면 다음과 같습니다. -| 쿼리 | 일치 | +| 쿼리 | 일치 항목 | |:-------------------------------------------------------------|:--------------------------------------------------------------------------------------------------| -| `(hostname:web-server OR env:prod)` | 인프라스트럭처 태그`hostname:web-server` 또는 예약 된 속성 `env:prod`가 있는 모든 트레이스 | -| `(availability-zone:us-east OR container_name:api-frontend)` | 이러한 인프라스트럭처 태그 중 하나라도 포함된 모든 트레이스 | -| `(service:api AND -kube_deployment:canary)` | `canary` 배포에 배포되지 않은 `api` 서비스의 모든 트레이스 | +| `(hostname:web-server OR env:prod)` | 인프라 태그 `hostname:web-server` 또는 예약된 속성 `env:prod` |가 있는 모든 트레이스 +| `(availability-zone:us-east OR container_name:api-frontend)` | 이러한 인프라 태그 중 하나라도 포함된 모든 트레이스| +| `(service:api AND -kube_deployment:canary)` | `api` 서비스에서 발생했지만 `canary` 배포에는 포함되지 않은 모든 트레이스 | -스팬(span) 태그는 트레이스 사이드 패널의 **인프라스트럭처** 탭에서 확인할 수 있습니다. +스팬 태그는 트레이스 사이드 패널의 **Infrastructure** 탭에서 확인할 수 있습니다. -#### 비표준 태그 형식 +#### 비표준 태그 형식{#non-standard-tag-formats} -태그가 [태그 모범 사례][2]를 따르지 않고 `key:value` 구문을 사용하지 않는 경우 대신 다음 검색 쿼리를 사용하세요. +태그가 [태그 모범 사례][2]를 따르지 않는 경우에는 `key:value` 구문을 사용하지 마세요. 대신 다음 검색 쿼리를 사용합니다. `tags:` -예를 들어, 다음 태그는 모범 사례를 따르지 않습니다. +예를 들어, 다음 태그는 모범 사례를 따르지 않습니다. `auto-discovery.cluster-autoscaler.k8s.io/daffy` 이 태그를 검색하려면 다음 쿼리를 사용합니다. `tags:"auto-discovery.cluster-autoscaler.k8s.io/daffy"` -### 와일드카드 +### 와일드카드 {#wildcards} -다중 문자 와일드카드 검색을 수행하려면 다음과 같이 `*` 기호를 사용합니다: +여러 문자를 대상으로 하는 와일드카드 검색을 수행하려면 `*` 기호를 사용합니다. -* `service:web*`은 `web`으로 시작하는 서비스를 가진 모든 트레이스를 일치시킵니다. -* `@url:data*`은 `data`로 시작하는 `url`을 가진 모든 트레이스를 일치시킵니다. +* `service:web*`은 `web`으로 시작하는 서비스를 가진 모든 트레이스와 일치합니다. +* `@url:data*`는 `data`로 시작하는 `url`를 가진 모든 트레이스와 일치합니다. -### 숫자 값 +### 숫자 값 {#numerical-values} -`<`, `>`, `<=`, `>=`를 사용하여 숫자 속성을 검색합니다. 예를 들어 다음을 사용하여 응답 시간이 100ms를 초과하는 모든 트레이스를 검색합니다. +숫자 속성을 검색하려면 `<`, `>`, `<=` 또는 `>=`를 사용할 수 있습니다. 예를 들어 응답 시간이 100ms를 초과하는 모든 트레이스를 검색하려면 다음 작업을 수행하세요. `@http.response_time:>100` -특정 범위 내의 수치 속성을 검색하는 것도 가능합니다. 예를 들어 다음을 사용하여 모든 4xx 오류를 검색합니다. +숫자 속성을 특정 범위로 검색하는 것도 가능합니다. 예를 들어 모든 4xx 오류를 검색하려면 다음 작업을 수행하세요. `@http.status_code:[400 TO 499]` -### 자동 완성 +### 자동 완성 {#autocomplete} -복잡한 쿼리를 입력하는 것은 번거로울 수 있습니다. 기존 값을 사용하여 검색어를 완성하려면 검색창의 자동 완성 기능을 사용하세요. +복잡한 쿼리를 직접 입력하는 것은 번거로울 수 있습니다. 검색창의 자동 완성 기능을 사용하면 기존 값을 활용해 쿼리를 쉽게 완성할 수 있습니다. {{< img src="tracing/app_analytics/search/search_bar_autocomplete.png" alt="검색창 자동 완성 " style="width:60%;">}} -### 특수 문자 이스케이프 +### 특수 문자 이스케이프 처리 {#escaping-of-special-characters} -다음 속성은 특별한 것으로 간주됩니다 : `?`, `>`, `<`, `:`, `=`,`"`, `~`, `/`, `\`는 이스케이프를 필요로 합니다. -예를 들어 `url`에서 `user=JaneDoe`가 포함된 트레이스를 검색하려면 다음 검색을 입력해야 합니다. +다음 문자는 특수 문자로 간주되며 이스케이프 처리해야 합니다. `?`, `>`, `<`, `:`, `=`, `"`, `~`, `/`, `\`. +예를 들어 `url`에 `user=JaneDoe`가 포함된 트레이스를 검색하려면 다음과 같이 입력합니다. `@url:*user\=JaneDoe*` -트레이스 속성 내의 공백에도 동일한 논리를 적용해야 합니다. 트레이스 속성에 공백을 두는 것은 권장되지 않지만 이러한 경우 공백을 이스케이프해야 합니다. -속성이 `user.first name`으로 호출되면 공백을 이스케이프 처리하여 이 속성에 대한 검색을 수행합니다. +트레이스 속성 내 공백도 동일한 방식으로 처리해야 합니다. 트레이스 속성에 공백을 사용하는 것은 권장되지 않지만, 공백이 있는 경우 이스케이프 처리해야 합니다. +속성 이름이 `user.first name`인 경우, 공백을 이스케이프하여 다음과 같이 검색합니다. `@user.first\ name:myvalue` -### 저장된 검색 +### 저장된 검색 {#saved-searches} -같은 보기를 매일 만드는 것은 시간 낭비입니다. 저장된 검색에는 검색어, 열 및 기간이 포함됩니다. 검색 이름이나 검색어에 관계없이 자동 완성 기능을 사용하여 해당 검색창에서 사용할 수 있습니다. +매일 동일한 조회를 만드는 데 시간을 낭비하지 마세요. 저장된 검색에는 검색 쿼리, 열, 시간 범위가 포함됩니다. 이후 검색창에서 검색 이름 또는 쿼리와 일치하는 자동 완성 항목으로 사용할 수 있습니다. {{< img src="tracing/app_analytics/search/saved_search.png" alt="저장된 검색" style="width:80%;">}} 저장된 검색을 삭제하려면 Trace search 드롭다운 메뉴 아래의 휴지통 아이콘을 클릭하세요. -### 서비스 및 엔티티 검색 +### 서비스 및 엔터티 검색 {#search-for-services-and-entities} -{{< site-region region="ap1,us3,us5,eu,us" >}} -서비스를 검색하려면 `service` 속성을 사용합니다. 다른 [엔티티 유형][20](예: 데이터베이스, 큐 또는 서드파티 공급자)을 검색하려면 Datadog이 애플리케이션 성능 모니터링(APM)으로 계측되지 않는 종속성을 설명하는 데 사용하는 다른 [피어 속성][21]을 활용합니다. 예를 들어, Postgres 데이터베이스에서 `users` 테이블에 대한 호출을 나타내는 스팬(span)을 찾으려면 `@peer.db.name:users @peer.db.system:postgres` 쿼리를 사용합니다. +{{< site-region region="ap1,ap2,us3,us5,eu,us" >}} +서비스를 검색하려면 `service` 속성을 사용하세요. 다른 [엔터티 유형][20](예: 데이터베이스, 대기열, 타사 공급자)을 검색하려면, Datadog이 APM으로 계측되지 않은 종속성을 설명하는 데 사용하는 다른 [peer 속성][21]을 활용합니다. 예를 들어 Postgres 데이터베이스의 `users` 테이블 호출을 나타내는 스팬을 찾으려면 다음 쿼리를 사용합니다. `@peer.db.name:users @peer.db.system:postgres` -**참고**: `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true` 을 설정하여 [글로벌 서비스 네이밍][22]으로 마이그레이션한 경우 스팬(span)의 `service` 태그는 스팬(span)을 **내보낸** 서비스를 나타냅니다. +**참고**: `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true`를 설정하여 [글로벌 서비스 네이밍][22]으로 마이그레이션한 경우 스팬의 `service` 태그는 스팬을 **내보낸** 서비스를 나타냅니다. [20]: /ko/tracing/services/inferred_services [21]: /ko/tracing/services/inferred_services#peer-tags [22]: /ko/tracing/services/inferred_services#migrate-to-global-default-service-naming {{< /site-region >}} -## 시간 범위 +## 시간 범위 {#time-range} -시간 범위를 사용하면 특정 기간 내의 트레이스를 표시할 수 있습니다. 드롭다운 메뉴에서 사전 설정 범위를 선택(또는 [사용자 정의 기간 입력][3])하여 시간 범위를 빠르게 변경합니다. +시간 범위를 사용하면 지정된 기간 내의 트레이스를 표시할 수 있습니다. 드롭다운 메뉴에서 미리 설정된 기간을 선택하거나([사용자 지정 기간 입력][3]) 빠르게 시간 범위를 변경할 수 있습니다. -{{< img src="tracing/app_analytics/search/time_frame2.png" style="width:50%;" alt="타임프레임 선택" >}} +{{< img src="tracing/app_analytics/search/time_frame2.png" style="width:50%;" alt="시간 프레임 선택" >}} -## 스팬(span) 테이블 +## 스팬 테이블 {#span-table} -스팬(span) 테이블은 선택한 컨텍스트와 일치하는 스팬(span) 목록입니다. 컨텍스트는 [검색 창](#search-bar) 필터와 [시간 범위](#time-range)로 정의됩니다. +스팬 테이블은 선택한 컨텍스트와 일치하는 스팬 목록입니다. 컨텍스트는 [검색창](#search-bar) 필터와 [시간 범위](#time-range)로 정의됩니다. -{{< site-region region="ap1,us3,us5,eu,us" >}} -### 서비스 컬럼 +{{< site-region region="ap1,ap2,us3,us5,eu,us" >}} +### 서비스 열 {#the-service-column} -서비스 컬럼에는 기본적으로 스팬(span)의 `service` 예약 속성이 표시됩니다. +기본적으로 서비스 열에는 스팬의 `service` 예약된 속성이 표시됩니다. -{{< img src="tracing/app_analytics/search/span_table_service.png" style="width:60%;" alt="스팬 테이블 서비스 컬럼" >}} +{{< img src="tracing/app_analytics/search/span_table_service.png" style="width:60%;" alt="스팬 테이블 서비스 열" >}} -스팬(span)이 계측된 서비스에서 추론 서비스로의 클라이언트 호출을 나타내는 경우 서비스 컬럼이 표시됩니다. -- `service` 예약 속성으로 식별되는 **서비스**. -- **[추론 서비스][4]**: [피어 속성][5] 중 하나로 식별된 기본 서비스가 호출하는 추론 엔티티의 이름 +스팬이 계측된 서비스에서 추론된 서비스로의 클라이언트 호출을 나타내는 경우, 서비스 열에는 다음이 표시됩니다. +- **서비스**: `service` 예약된 속성으로 식별되는 서비스. +- **[추론된 서비스][4]**: [peer 속성][5] 중 하나로 식별되는, 기본 서비스가 호출하는 추론된 엔터티의 이름. -{{< img src="tracing/app_analytics/search/span_table_inferred_service.png" style="width:90%;" alt="추론 서비스가 포함된 스팬(span) 테이블 서비스 컬럼" >}} +{{< img src="tracing/app_analytics/search/span_table_inferred_service.png" style="width:90%;" alt="추론된 서비스가 표시된 스팬 테이블 서비스 열" >}} -서비스 이름이 기본 서비스 이름을 재정의하는 경우 서비스 컬럼에 다음이 표시됩니다. -- **[기본 서비스][2]**: `@base_service` 속성으로 식별된, 스팬(span)을 내보내는 서비스. -- **[서비스 재정의][3]**: 기본 서비스 이름과 다른 서비스 이름으로 Datadog 통합에서 자동 설정되거나 프로그래밍 방식 API를 통해 변경됩니다. 서비스 재정의는 `service` 예약 속성으로 식별됩니다. +서비스 이름이 기본 서비스 이름에서 재정의된 경우, 서비스 열에는 다음이 표시됩니다. +- **[기본 서비스][2]**: `@base_service` 속성으로 식별되는, 스팬을 생성한 서비스. +- **[서비스 재정의][3]**: 기본 서비스 이름과 다른 서비스 이름으로, Datadog 통합에서 자동 설정되거나 프로그래밍 방식 API를 통해 변경된 값. 서비스 재정의는 `service` 예약된 속성으로 식별됩니다. -{{< img src="tracing/app_analytics/search/span_table_service_override.png" style="width:80%;" alt="서비스 재정의가 포함된 스팬 테이블 서비스 컬럼" >}} +{{< img src="tracing/app_analytics/search/span_table_service_override.png" style="width:80%;" alt="서비스 재정의가 표시된 스팬 테이블 서비스 열" >}} [2]: /ko/tracing/guide/service_overrides#base-service [3]: /ko/tracing/guide/service_overrides @@ -196,46 +199,76 @@ title: 쿼리 구문 [5]: /ko/tracing/services/inferred_services#peer-tags {{< /site-region >}} -### 전체 트레이스 표시 +### 전체 트레이스 표시 {#displaying-a-full-trace} 관련 트레이스에 대한 자세한 내용을 보려면 스팬(span)을 클릭하세요. -{{< img src="tracing/app_analytics/search/trace_in_tracestream.png" alt="Tracestream에서 추적" style="width:80%;">}} +{{< img src="tracing/app_analytics/search/trace_in_tracestream.png" alt="Trace in Tracestream" style="width:80%;">}} -### 열 +### 열 {#columns} -목록에 다른 [스팬(span) 태그 또는 속성][23]을 컬럼으로 추가하려면 **옵션** 버튼을 클릭하고 추가하려는 차원을 선택합니다. +목록에 다른 [스팬 태그 또는 속성][23]을 열로 추가하려면 **Options** 버튼을 클릭한 후 추가할 차원을 선택합니다. {{< img src="tracing/app_analytics/search/trace_list_with_column.png" alt="열이 포함된 트레이스 목록" style="width:80%;">}} -## 패싯 +### 트레이스 그룹 {#trace-groups} + +요청 수, 오류율 및 지연 시간 분포를 목록 보기에서 확인하려면 임의의 스팬 태그 또는 속성으로 쿼리를 그룹화하세요. **그룹화 기준** 절에서 최대 4개의 차원을 선택할 수 있습니다. + +{{< img src="/tracing/trace_explorer/trace_groups/group_by_clause.png" alt="그룹 기준 절" style="width:90%;" >}} + +#### 고급 '그룹화 기준' 쿼리 {#advanced-group-by-queries} + +그룹화할 차원을 선택한 후 **from** 드롭다운을 사용하여 해당 차원 값을 가져올 위치를 지정할 수 있습니다. +- **Span**: 쿼리된 스팬의 차원 기준으로 그룹화(기본값). 예를 들어, `a`입니다. +- **Parent of span**: 쿼리와 일치하는 스팬의 부모 스팬에서 지정된 차원을 기준으로 그룹화합니다. 예를 들어 API 엔드포인트 성능을 호출 서비스별로 분석하려면 `service`를 `parent(a)` 기준으로 그룹화합니다. +- **Root span**: 트레이스의 루트 스팬에서 지정된 차원을 기준으로 그룹화합니다. 예를 들어, 프런트엔드 페이지별 백엔드 요청 패턴을 분석하려면 `@view.name`을 `root` 기준으로 그룹화합니다. + +{{< img src="/tracing/trace_explorer/trace_groups/group_by_root.png" alt="루트 기준 그룹화" style="width:90%;" >}} + +#### 그룹 목록에서 트레이스 그룹 보기 {#view-trace-groups-in-the-group-list} + +트레이스 그룹은 선택한 차원의 고유 값으로 표시됩니다. 각 그룹에는 세 가지 주요 메트릭이 표시됩니다. +- **REQUESTS**: 그룹 내 스팬 수. +- **ERRORS**: 오류율 및 오류 건수. +- **P95 Latency**: 스팬의 P95 지연 시간. + +쿼리된 스팬 대신 부모 스팬 또는 루트 스팬 기준으로 집계된 메트릭을 보려면 **Show metrics from** 문에서 `parent(a)` 또는 `root`를 선택합니다. + +또한 `Latency Breakdown` 기능을 통해 각 그룹의 요청에서 서비스 간에 시간이 어떻게 소비되는지 시각적으로 확인할 수 있어 지연 시간 병목 현상을 쉽게 파악할 수 있습니다. + +{{< img src="/tracing/trace_explorer/trace_groups/group_list.png" alt="그룹 목록" style="width:90%;" >}} + +더 자세히 분석하려면 그룹을 클릭하여 집계 메트릭을 구성하는 개별 스팬 이벤트를 확인하세요. + +## 패싯 {#facets} -패싯은 속성 또는 태그의 모든 고유 값을 표시할 뿐만 아니라 표시되는 트레이스 양과 같은 몇 가지 기본 분석을 제공합니다. 이는 데이터를 필터링하는 스위치이기도 합니다. +패싯은 속성 또는 태그의 모든 고유 값을 표시할 뿐만 아니라 해당 값이 나타내는 트레이스 수와 같은 기본 분석 정보를 제공합니다. 이는 데이터를 필터링하는 스위치이기도 합니다. -패싯을 사용하면 지정된 속성을 기반으로 데이터 세트를 피벗하거나 필터링할 수 있습니다. 예시 패싯에는 사용자, 서비스 등이 포함될 수 있습니다. +패싯을 사용하면 주어진 속성을 기반으로 데이터 세트를 피벗하거나 필터링할 수 있습니다. 예를 들면 사용자, 서비스 등이 패싯이 될 수 있습니다. {{< img src="tracing/app_analytics/search/facets_demo.png" alt="패싯 데모" style="width:80%;">}} -### 측정 +### 측정값 {#measures} 측정값은 정량적 값에 대한 특정 유형의 패싯입니다. 다음의 경우 측정값을 사용하세요. -* 여러 추적에서 값을 집계합니다. 예를 들어 Cassandra의 행 수에 대한 측정값을 만들고 요청된 파일 크기 합계당 P95 또는 최상위 리퍼러를 확인합니다. +* 여러 트레이스로부터 값을 집계합니다. 예를 들어 Cassandra의 행 수에 대한 측정값을 만들고 요청된 파일 크기 합계당 P95 또는 최상위 리퍼러를 확인합니다. * $1000가 넘는 장바구니 값에 대해 대기 시간이 가장 긴 서비스를 수치적으로 계산합니다. * 연속 값을 필터링합니다. 예를 들어 비디오 스트림의 각 페이로드 청크 크기(바이트)입니다. -**유형* +**유형** -동등한 기능에 (큰) 정수나 소수점 값이 오는 수치 +측정값(measure)에는 (long) 정수 또는 double 값이 사용되며, 두 형식은 동등한 기능을 제공합니다. **단위** -쿼리 시간 및 표시 시간에 크기 차수를 처리하기 위한 측정 지원 단위(초 단위 시간 또는 바이트 단위 크기)입니다. 단위는 필드가 아닌 측정값 자체의 속성입니다. 예를 들어, 나노초 단위의 지속 시간 측정을 생각해 보세요. `duration:1000`가 `1000 milliseconds`를 의미하는 `service:A`의 스팬 태그가 있고, `duration:500`이 `500 microseconds`를 의미하는 `service:B`의 스팬 태그가 있습니다. -산술 프로세서와 함께 유입되는 모든 스팬 태그의 기간을 나노초로 확장합니다. `service:A`의 스팬 태그에 `*1000000` 승수를 사용하고 `service:B`의 스팬 태그에 `*1000` 승수를 사용합니다. -`duration:>20ms`(참조용 검색 구문 참조)을 사용하여 두 서비스 모두에서 동시에 스팬 태그를 일관되게 쿼리하고 최대 1분의 집계 결과를 확인할 수 있습니다. +측정값은 쿼리 시간 및 표시 시간에서 자릿수를 처리하기 위한 단위(초 단위의 시간 또는 바이트 단위의 크기)를 지원합니다. 단위는 필드가 아니라 측정값 자체의 속성입니다. 예를 들어 지속 시간 측정값이 나노초 단위라고 가정해 보겠습니다. `service:A`의 스팬 태그에서 `duration:1000`은 `1000 milliseconds`를, `service:B`의 스팬 태그에서 `duration:500`은 `500 microseconds`를 의미합니다. +산술 프로세서를 사용하여 모든 스팬 태그의 지속 시간을 나노초로 변환합니다. `service:A`의 스팬 태그에는 `*1000000` 배율을 적용하고, `service:B`의 스팬 태그에는 `*1000` 배율을 적용하세요. +`duration:>20ms`(검색 구문 참조)를 사용하여 두 서비스의 스팬 태그를 일관되게 쿼리하고 최대 1분의 집계 결과를 확인하세요. -### 패싯 생성 +### 패싯 생성 {#create-a-facet} 속성을 패싯으로 사용하거나 검색에서 사용하려면 해당 속성을 클릭하고 패싯으로 추가하세요. @@ -243,13 +276,13 @@ title: 쿼리 구문 새 패싯을 생성하면 패싯 패널에서 필터링 및 기본 분석에 활용할 수 있습니다. -### 패싯 패널 +### 패싯 패널 {#facet-panel} -패싯을 사용하여 트레이스를 필터링하세요. 검색창과 URL은 선택 사항을 자동으로 반영합니다. +패싯을 사용하여 트레이스를 필터링하세요. 검색창과 URL은 선택한 패싯을 자동으로 반영합니다. {{< img src="tracing/app_analytics/search/facet_panel.png" alt="패싯 패널" style="width:30%;">}} -## 시각화 +## 시각화 {#visualizations} Analytic 선택기를 사용하여 Analytics 시각화 유형을 선택합니다. @@ -257,45 +290,45 @@ Analytic 선택기를 사용하여 Analytics 시각화 유형을 선택합니다 * [상위 목록](#top-list) * [표](#table) -### 시계열 +### 시계열 {#timeseries} -선택한 기간 동안 `Duration` 메트릭(또는 값의 패싯 고유 개수)의 변화를 시각화하고 (선택적으로) 사용 가능한 패싯으로 분할합니다. +선택한 기간 동안 `Duration` 메트릭(또는 패싯 고유 값 수)의 변화를 시각화하고 (필요 시) 사용 가능한 패싯으로 분할합니다. 다음 시계열 Analytics는 각 **서비스**에 대해 **5분** 단위로 **pc99** **기간**의 변화를 보여줍니다. -{{< img src="tracing/app_analytics/analytics/timeserie_example.png" alt="시계열 예" style="width:90%;">}} +{{< img src="tracing/app_analytics/analytics/timeserie_example.png" alt="시계열 예시" style="width:90%;">}} -### 상위 목록 +### 상위 목록 {#top-list} `Duration`에 따라 패싯의 상위 값(또는 패싯 고유 값 수)을 시각화합니다. 다음 상위 목록 분석은 **서비스**의 상위 **pc99** **기간**을 보여줍니다. -{{< img src="tracing/app_analytics/analytics/top_list_example.png" alt="상위 목록 예" style="width:90%;">}} +{{< img src="tracing/app_analytics/analytics/top_list_example.png" alt="상위 목록 예시" style="width:90%;">}} -### 테이블 +### 표 {#table} 선택한 [측정값][9](목록에서 선택한 첫 번째 측정값)에 따라 패싯의 상위 값을 시각화하고 이 상위 목록에 나타나는 요소에 대한 추가 측정값을 표시합니다. 검색어를 업데이트하거나 두 차원에 해당하는 로그를 조사하세요. * 측정 차원이 여러 개인 경우 첫 번째 차원에 따라 상위 값이 결정되고, 첫 번째 차원의 상위 값 내에서 두 번째 차원에 따라 결정되고, 두 번째 차원의 상위 값 내에서 세 번째 차원에 따라 결정됩니다. * 측정값이 여러 개일 경우 첫 번째 측정값에 따라 상단 또는 하단 목록이 결정됩니다. -* 소계만 (상위 또는 하위) 표시되므로 소계는 그룹 내 값의 실제 총계와 다를 수 있습니다. 이 디멘션에 대한 null 또는 빈 값의 이벤트는 하위 그룹으로 표시되지 않습니다. +* 소계만 (상위 또는 하위) 표시되므로 소계는 그룹 내 값의 실제 총계와 다를 수 있습니다. 이 차원에 대한 null 또는 빈 값의 이벤트는 하위 그룹으로 표시되지 않습니다. **참고**: 하나의 단일 측정값과 하나의 단일 차원에 사용되는 테이블 시각화는 표시만 다를 뿐 상위 목록과 동일합니다. -다음 Table Log Analytics는 지난 15분 동안 고유한 **클라이언트 IP** 수와 함께 **처리량**에 따른 **상위 상태 코드**의 변화를 보여줍니다. +다음 Table Log Analytics는 지난 15분 동안 고유한 **클라이언트 IP** 수와 함께 **처리량**에 따른 **상위 상태 코드**의 변화를 보여줍니다. -{{< img src="tracing/app_analytics/analytics/trace_table_example.png" alt="상위 목록 예" style="width:90%;">}} +{{< img src="tracing/app_analytics/analytics/trace_table_example.png" alt="상위 목록 예시" style="width:90%;">}} -## 관련된 트레이스 +## 관련된 트레이스 {#related-traces} 그래프 섹션을 선택하거나 클릭하여 그래프를 확대하거나 선택 항목에 해당하는 [트레이스][10] 목록을 확인하세요. {{< img src="tracing/app_analytics/analytics/view_traces.png" alt="트레이스 보기" style="width:40%;">}} -## 내보내기 +## 내보내기 {#export} -{{< img src="tracing/app_analytics/analytics/export_button.png" alt="분석 버튼 내보내기" style="width:40%;">}} +{{< img src="tracing/app_analytics/analytics/export_button.png" alt="Analytics 내보내기 버튼" style="width:40%;">}} 쿼리 내보내기 @@ -305,9 +338,9 @@ Analytic 선택기를 사용하여 Analytics 시각화 유형을 선택합니다 쿼리에 대한 새 메트릭을 생성할 수도 있습니다. -**참고**: 대시보드 및 노트북의 애플리케이션 성능 모니터링(APM) 쿼리는 모든 [인덱싱된 스팬][14]에 기반합니다. 모니터링의 애플리케이션 성능 모니터링(APM) 쿼리의 경우 [커스텀 보존 필터][19]로만 인덱싱된 스팬에 기반합니다. +**참고**: 대시보드 및 노트북의 애플리케이션 APM 쿼리는 모든 [인덱싱된 스팬][14]에 기반합니다. 모니터링의 APM 쿼리의 경우 [사용자 지정 보존 필터][19]로만 인덱싱된 스팬에 기반합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} From 4505bd6682b8a74106dcdf83f632ba6e8c56988e Mon Sep 17 00:00:00 2001 From: "webops-guacbot[bot]" <214537265+webops-guacbot[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:31:36 +0000 Subject: [PATCH 5/8] Updates 60 translation(s) --- content/es/agent/configuration/proxy.md | 1320 +---------------- content/es/containers/autoscaling/_index.md | 657 ++++++++ .../guide/container-discovery-management.md | 229 +-- .../es/containers/kubernetes/configuration.md | 400 ++--- .../troubleshooting/log-collection.md | 693 +++++++++ content/es/dashboards/widgets/_index.md | 110 +- .../extend/custom_checks/write_agent_check.md | 194 +++ content/es/logs/explorer/_index.md | 76 + content/es/logs/log_collection/java.md | 323 ++-- content/es/profiler/enabling/_index.mdoc.md | 89 ++ content/es/reference_tables/_index.md | 339 +++-- content/es/remote_configuration/_index.md | 209 +-- content/es/source_code/_index.md | 24 + content/es/synthetics/api_tests/http_tests.md | 345 +++-- .../connect_logs_and_traces/dotnet.md | 135 +- content/es/tracing/trace_explorer/_index.md | 154 +- .../fr/agent/troubleshooting/send_a_flare.md | 118 +- content/fr/bits_ai/_index.md | 47 +- content/fr/cloud_cost_management/_index.md | 176 +-- .../fr/containers/datadog_operator/_index.md | 47 +- .../fr/containers/kubernetes/configuration.md | 622 +++++--- .../containers/kubernetes/data_collected.md | 129 +- .../logs/log_configuration/archive_search.md | 236 +++ .../fr/network_monitoring/devices/setup.md | 155 ++ .../fr/network_monitoring/netflow/_index.md | 373 +++++ .../iac_security/iac_rules/_index.md | 24 + .../aws_lambda/instrumentation/_index.md | 68 + content/fr/synthetics/browser_tests/_index.md | 398 +++-- .../single-step-apm/_index.md | 88 ++ content/ja/containers/kubernetes/apm.md | 152 +- content/ja/getting_started/site/_index.md | 59 +- content/ja/ide_plugins/vscode/_index.md | 218 +++ content/ja/monitors/_index.md | 71 +- .../setup/collector_exporter/install.md | 311 ++++ .../tracing/guide/ignoring_apm_resources.md | 299 ++-- .../ja/tracing/metrics/metrics_namespace.md | 161 +- .../tracing/metrics/runtime_metrics/_index.md | 314 ++++ .../cluster_agent/admission_controller.md | 147 +- content/ko/infrastructure/process/_index.md | 411 +++-- .../software_catalog/entity_model/_index.md | 606 ++++++++ content/ko/logs/explorer/facets.md | 224 +-- .../guide/azure-automated-log-forwarding.md | 217 +++ ...s-logs-with-the-datadog-lambda-function.md | 390 +++-- content/ko/logs/log_collection/javascript.md | 284 ++-- .../log_configuration/processors/_index.md | 79 + content/ko/metrics/custom_metrics/_index.md | 149 ++ .../ko/network_monitoring/devices/setup.md | 153 ++ .../devices/snmp_metrics.md | 117 +- .../network_monitoring/network_path/setup.md | 622 ++++++++ content/ko/notebooks/_index.md | 310 +++- .../browser/setup/client.mdoc.md | 70 + content/ko/remote_configuration/_index.md | 211 +++ .../iac_security/iac_rules/_index.md | 24 + .../security/sensitive_data_scanner/_index.md | 193 +++ .../aws_lambda/instrumentation/_index.md | 68 + content/ko/service_level_objectives/_index.md | 375 +++++ .../tracing/services/deployment_tracking.md | 142 +- .../trace_collection/dd_libraries/java.md | 262 ++++ .../trace_collection/dd_libraries/nodejs.md | 274 ++++ .../trace_context_propagation/_index.md | 821 ++++++++++ 60 files changed, 11664 insertions(+), 3848 deletions(-) create mode 100644 content/es/containers/autoscaling/_index.md create mode 100644 content/es/containers/troubleshooting/log-collection.md create mode 100644 content/es/extend/custom_checks/write_agent_check.md create mode 100644 content/es/logs/explorer/_index.md create mode 100644 content/es/profiler/enabling/_index.mdoc.md create mode 100644 content/es/source_code/_index.md create mode 100644 content/fr/logs/log_configuration/archive_search.md create mode 100644 content/fr/network_monitoring/devices/setup.md create mode 100644 content/fr/network_monitoring/netflow/_index.md create mode 100644 content/fr/security/code_security/iac_security/iac_rules/_index.md create mode 100644 content/fr/serverless/aws_lambda/instrumentation/_index.md create mode 100644 content/fr/tracing/trace_collection/single-step-apm/_index.md create mode 100644 content/ja/ide_plugins/vscode/_index.md create mode 100644 content/ja/opentelemetry/setup/collector_exporter/install.md create mode 100644 content/ja/tracing/metrics/runtime_metrics/_index.md create mode 100644 content/ko/internal_developer_portal/software_catalog/entity_model/_index.md create mode 100644 content/ko/logs/guide/azure-automated-log-forwarding.md create mode 100644 content/ko/logs/log_configuration/processors/_index.md create mode 100644 content/ko/metrics/custom_metrics/_index.md create mode 100644 content/ko/network_monitoring/devices/setup.md create mode 100644 content/ko/network_monitoring/network_path/setup.md create mode 100644 content/ko/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md create mode 100644 content/ko/remote_configuration/_index.md create mode 100644 content/ko/security/code_security/iac_security/iac_rules/_index.md create mode 100644 content/ko/security/sensitive_data_scanner/_index.md create mode 100644 content/ko/serverless/aws_lambda/instrumentation/_index.md create mode 100644 content/ko/service_level_objectives/_index.md create mode 100644 content/ko/tracing/trace_collection/dd_libraries/java.md create mode 100644 content/ko/tracing/trace_collection/dd_libraries/nodejs.md create mode 100644 content/ko/tracing/trace_collection/trace_context_propagation/_index.md diff --git a/content/es/agent/configuration/proxy.md b/content/es/agent/configuration/proxy.md index 5d55537620f..43869b71b16 100644 --- a/content/es/agent/configuration/proxy.md +++ b/content/es/agent/configuration/proxy.md @@ -1,1305 +1,111 @@ --- algolia: tags: - - proxy del Agent + - agent proxy aliases: - /es/account_management/faq/can-i-use-a-proxy-to-connect-my-servers-to-datadog/ - /es/agent/proxy +description: Configure el Datadog Agent para enviar tráfico a través de proxies HTTP/HTTPS, + con opciones de autenticación y de omisión. further_reading: - link: /logs/ tag: Documentación - text: Recopilar logs + text: Recopile sus registros - link: /infrastructure/process/ tag: Documentación - text: Recopilar procesos + text: Recopile sus procesos - link: /tracing/ tag: Documentación - text: Recopilar trazas (traces) y perfiles -- link: /agent/configuration/agent-fips-proxy + text: Recopile sus trazas y perfiles +- link: /agent/configuration/fips-compliance tag: Documentación text: Cumplimiento de FIPS de Datadog -title: Configuración del proxy del Agent +title: Configuración del Proxy del Agente de Datadog --- +Puede configurar el Datadog Agent para enviar tráfico a través de un proxy HTTP/HTTPS. Un proxy se utiliza típicamente para enviar tráfico desde un servidor que no está conectado directamente a la Internet pública. -## Información general +## Configure el Datadog Agent {#configure-the-datadog-agent} -Si tu configuración de red restringe el tráfico de salida, redirige mediante proxy todo el tráfico del Agent a través de uno o varios hosts que tengan políticas de salida más permisivas. +Hay dos opciones para configurar el Datadog Agent para usar un proxy. +- Puede usar el archivo de configuración del Datadog Agent. +- Puede usar variables de entorno. Las variables de entorno anulan la configuración del archivo de configuración. -En el caso de los hosts que no están directamente conectados a Internet, se puede enviar tráfico a Datadog a través de SSL/TLS de las siguientes maneras: +### Archivo de configuración {#configuration-file} -1. Mediante un proxy web, como Squid o Microsoft Web Proxy, que ya se haya desplegado en tu red -2. Mediante HAProxy (en caso de que quieras redirigir **más de 16 a 20 Agents** a través del mismo proxy) -3. Mediante el Agent como un proxy (para **un máximo de 16 Agents** por proxy y **solo con el Agent v5**) - -## Cumplimiento de FIPS - -Para obtener información sobre la configuración de Datadog Agent FIPS Proxy con el Datadog Agent, consulta el [cumplimiento de FIPS de Datadog][1]. El FIPS proxy solo se encuentra disponible en la región US1-FED. El Datadog Agent FIPS Proxy no se puede utilizar junto con un proxy normal. - -## Proxy web - -Para obtener información específica sobre Squid, consulta la sección [Squid](#squid) de esta página. - -El Agent es compatible de forma nativa con los proxies web tradicionales. Si necesitas conectarte a Internet mediante un proxy, edita tu archivo de configuración del Agent. - -**Agent v6 y v7** - -Configura varios servidores proxy para solicitudes `https` y `http` en tu archivo de configuración `datadog.yaml` del Agent. El Agent utiliza `https` para enviar datos a Datadog, pero es probable que las integraciones utilicen `http` para recopilar métricas. Independientemente de las solicitudes que se redirijan mediante proxy, puedes activar el protocolo SSL en tu servidor proxy. A continuación, te mostramos algunos ejemplos de configuración que pueden servirte para tu archivo `datadog.yaml`. - -
    -Si se encuentra habilitada la recopilación de logs, asegúrate de exigir un transporte específico. -Se recomienda utilizar HTTPS. En ese caso, el <HOST>:<PORT> que se utiliza para redirigir mediante proxy las métricas también se utilizará para redirigir los logs. -Si utilizas el transporte TCP, consulta la sección Proxy TCP para logs. -
    - -Cómo configurar un proxy HTTP para todas las solicitudes `https`: - -```yaml -proxy: - https: "http://:" -``` - -Nota: Cuando se configura un proxy HTTP para solicitudes `https`, se cifra de forma integral la comunicación entre el Agent y Datadog con TLS de tal forma que el proxy no pueda descifrarla. La única comunicación que no se cifra es la solicitud `HTTP CONNECT` que realizan el Agent y el proxy para establecer la conexión TCP inicial entre el Agent y Datadog. Por tanto, cuando se utiliza un proxy para solicitudes `https`, no es necesario utilizar un proxy HTTPS para cifrar la comunicación entre el Agent y Datadog. - -Cómo configurar un proxy HTTPS para las solicitudes `https` y `http`: - -```yaml -proxy: - https: "https://:" - http: "https://:" -``` - -Cómo configurar un `` y `` a fin de contactar con el servidor proxy para las solicitudes `https` y `http`: +Para configurar un proxy mediante un archivo de configuración, edite o agregue la sección `proxy` al archivo de configuración principal del Datadog Agent (`datadog.yaml`) y luego [reinicie el Datadog Agent][1]. ```yaml proxy: - https: "http://:@:" - http: "http://:@:" -``` - -Cómo utilizar la lista `no_proxy` para especificar los hosts que deben omitir el proxy: - -```yaml -proxy: - https: "http://:@:" - http: "http://:@:" - no_proxy: - - host1 - - host2 -``` - -**Nota**: Todas las integraciones que realicen solicitudes HTTP(S) adoptarán por defecto la configuración del proxy que se define en el archivo de configuración `datadog.yaml` si no se especifica otra en la integración. Si no estás de acuerdo con esto, establece `skip_proxy` en true o `use_agent_proxy` en false en la configuración de cada instancia o en la reserva `init_config` de tu integración. - -##### Valores aceptados NO_PROXY - -Por defecto, `no_proxy`/`NO_PROXY` debe figurar tal cual en los endpoints de las solicitudes HTTP(S) del Agent (excepto en aquellas realizadas por integraciones del Agent). Se recomienda habilitar `no_proxy_nonexact_match` para que el Agent se ajuste a los valores `NO_PROXY` siguiendo las mismas reglas (consúltalas más abajo) que se utilizan en las integraciones del Agent. - -```yaml + # Required: Proxy endpoint for HTTP connections + http: http://:@: + # Required: Proxy endpoint for HTTPS connections (most Datadog traffic) + https: http://:@: + + # Optional: List of hosts or CIDR ranges to bypass the proxy + # Example: + # no_proxy: + # - 192.168.0.0/24 + # - localhost + # - .myinternaldomain.com + no_proxy: + - + - + +# Recommended: Set to true to ensure no_proxy behaves in a standard way no_proxy_nonexact_match: true -``` - -Las siguientes reglas se aplican a las integraciones del Agent (y a todo el Agent cuando `no_proxy_nonexact_match` se encuentra habilitado): -* El nombre de un dominio coincide con ese nombre y con todos los subdominios. Por ejemplo: - - `datadoghq.com` coincide con `app.agent.datadoghq.com`, `www.datadoghq.com` y `datadoghq.com`, pero **no** con `www.notdatadoghq.com` - - `datadoghq` coincide con `frontend.datadoghq` y `backend.datadoghq`, pero **no** con `www.datadoghq.com` ni `www.datadoghq.eu` -* El nombre de un dominio con un «.» inicial solo coincide con los subdominios. Por ejemplo: - - `.datadoghq.com` coincide con `app.agent.datadoghq.com`y `www.datadoghq.com`, pero **no** con `datadoghq.com` -* Un intervalo CIDR coincide con una dirección IP de la subred. Por ejemplo: - - `192.168.1.0/24` coincide con el intervalo de IP `192.168.1.1` mediante `192.168.1.254` -* Una dirección IP exacta. Por ejemplo: - - `169.254.169.254` -* Un nombre de host. Por ejemplo: - - `webserver1` - -#### Variables de entorno - -A partir del Agent v6.4, puedes ajustar la configuración de tu proxy mediante variables de entorno: - -* `DD_PROXY_HTTPS`: establece un servidor proxy para solicitudes `https`. -* `DD_PROXY_HTTP`: establece un servidor proxy para solicitudes `http`. -* `DD_PROXY_NO_PROXY`: establece una lista de hosts que deben omitir el proxy. Los elementos de la lista se separan entre sí con espacios. - -Las variables de entorno tienen precedencia sobre los valores del archivo `datadog.yaml`. Si las variables de entorno presentan un valor vacío, como ``DD_PROXY_HTTP=""``, el Agent utilizará los valores vacíos en lugar de otras opciones secundarias. - -En los hosts de Unix, existe la posibilidad de definir un proxy para todo el sistema mediante variables de entorno estándar, como `HTTPS_PROXY`, `HTTP_PROXY` y `NO_PROXY`. El Agent las utilizará siempre que estén presentes. Sin embargo, debes tener cuidado, ya que estas variables también influirán en las solicitudes de las integraciones, incluido las de orquestadores como Docker, ECS y Kubernetes. - -El Agent utiliza los siguientes valores en orden de precedencia: - -1. Variables de entorno `DD_PROXY_HTTPS`, `DD_PROXY_HTTP` y `DD_PROXY_NO_PROXY` -2. Variables de entorno `HTTPS_PROXY`, `HTTP_PROXY`, y `NO_PROXY` -3. Valores en `datadog.yaml` - -**Agent v5** - -
    -El <HOST>:<PORT> que se utiliza para redirigir mediante proxy las métricas NO se utilizará para redirigir los logs. Consulta la página Proxy para logs. -
    - -Edita el archivo `datadog.conf` con la información de tu proxy: - -```text -# If you need a proxy to connect to the Internet, provide the settings here -proxy_host: my-proxy.example.com -proxy_port: 3128 -proxy_user: my_user -proxy_password: my_password -``` - -No olvides [reiniciar el Agent][2] para que se aplique la configuración nueva. - -### Squid - -[Squid][3] es un proxy de reenvío para la web compatible con HTTP, HTTPS y FTP, entre otros protocolos. Funciona en la mayoría de los sistemas operativos disponibles, incluido Windows, y cuenta con la autorización de la Licencia Pública General de GNU. Squid es una opción sencilla si aún no tienes ningún proxy web configurado en tu red. - -#### Reenvío mediante proxy con Squid - -##### Configurar Squid solo para enviar tráfico a Datadog - -Instala Squid en un host que tenga conectividad tanto con tus Agents internos como con Datadog. Utiliza el gestor de paquetes de tu sistema operativo o instala el software directamente desde la [página de proyectos de Squid][3]. - -Para configurar Squid, edita el archivo de configuración. Por lo general, este archivo se encuentra en `/etc/squid/squid.conf` en Linux o en `C:\squid\etc\squid.conf` en Windows. - -Edita tu archivo de configuración `squid.conf` para que Squid pueda aceptar tráfico local y reenviarlo a las ingestas necesarias de Datadog: - -```conf -http_port 0.0.0.0:3128 - -acl local src 127.0.0.1/32 - -acl Datadog dstdomain .{{< region-param key="dd_site" >}} - -http_access allow Datadog -http_access allow local manager -``` - -##### Iniciar Squid - -Inicia (o reinicia) Squid para que se apliquen tus configuraciones nuevas. - -{{< tabs >}} -{{% tab "Linux" %}} - -```bash -sudo systemctl start squid -``` - -Si Squid ya se está ejecutando, es mejor reiniciarlo con el siguiente comando: - -```bash -sudo systemctl restart squid -``` - -{{% /tab %}} -{{% tab "Windows" %}} - -Si vas a configurar Squid en Windows, primero debes [configurarlo como un servicio del sistema][1]. Luego, puedes ejecutar lo siguiente en un símbolo del sistema de administrador: - -```bash -net start squid -``` - -Si Squid ya se está ejecutando, es mejor reiniciarlo con los siguientes comandos: - -```bash -net stop squid -net start squid -``` - -[1]: https://wiki.squid-cache.org/KnowledgeBase/Windows -{{% /tab %}} -{{< /tabs >}} - -##### Configuración del Datadog Agent - -**Agent v6 y v7** - -Modifica el archivo de configuración del Agent (`datadog.yaml`) para incluir lo siguiente: - -```yaml -proxy: - http: http://127.0.0.1:3128 - https: http://127.0.0.1:3128 -``` - -Después de guardar estos cambios, [reinicia el Agent][2]. - -Consulta la [información general de tu infraestructura][4] para verificar que Datadog puede recibir datos de tus Agents. - -**Agent v5** - -Modifica el archivo de configuración del Agent (`datadog.conf`) para incluir lo siguiente: - -```conf -proxy_host: 127.0.0.1 -proxy_port: 3128 -``` - -Después de guardar estos cambios, [reinicia el Agent][2]. - -Consulta la [información general de tu infraestructura][4] para verificar que Datadog puede recibir datos de tus Agents. - -## HAProxy - -[HAProxy][4] es una solución gratuita, rápida y fiable que ofrece conexiones proxy para aplicaciones TCP y HTTP. A pesar de que HAProxy suele utilizarse como un equilibrador de carga para distribuir las solicitudes entrantes hacia servidores de grupo, también puedes utilizarlo para redirigir mediante proxy el tráfico del Agent a Datadog desde hosts que no tengan conectividad externa: - -`agent ---> haproxy ---> Datadog` - -Se trata de otra opción recomendable si no tienes un proxy web de fácil acceso disponible en tu red y quieres redirigir mediante proxy una gran cantidad de Agents. En algunos casos, basta una sola instancia de HAProxy para gestionar todo el tráfico de Agents local de tu red, dado que cada proxy puede distribuir más de 1000 Agents. - -**Nota**: Esta cifra es una estimación conservadora basada, específicamente, en el rendimiento de instancias `m3.xl`. Existe una gran cantidad de variables relacionadas con redes y hosts que pueden alterar el funcionamiento de HAProxy, por lo que deberías supervisar el despliegue de tu proxy tanto antes como después de ponerlo en marcha. Para más información, consulta la [documentación sobre HAProxy][5]. - -La comunicación entre HAProxy y Datadog se cifra siempre con TLS. No obstante, la comunicación entre el host del Agent y el host de HAProxy no se cifra por defecto, dado que se parte del principio de que el proxy y el Agent se encuentran en el mismo host. Si el host de HAProxy y el host del Agent no comparten la misma red local aislada, te recomendamos proteger dicha comunicación con el cifrado TLS. -Para cifrar datos entre el Agent y HAProxy, será necesario que crees un certificado x509 con la extensión de nombre alternativo del firmante (SAN) del host de HAProxy. Lo normal es que este paquete de certificados (*.pem) contenga tanto el certificado público como la clave privada. Para más información, consulta esta [entrada del blog de HAProxy][6]. - - -**Nota**: Descarga el certificado de Datadog con uno de los siguientes comandos: - -```shell -sudo apt-get install ca-certificates # (Debian, Ubuntu) -yum install ca-certificates # (CentOS, Red Hat) -``` - -La ruta hacia el certificado es `/etc/ssl/certs/ca-certificates.crt` en el caso de Debian y Ubuntu, o `/etc/ssl/certs/ca-bundle.crt` en el caso de CentOS y Red Hat. - -### Reenvío mediante proxy con HAProxy - -#### Configuración de HAProxy - -HAProxy se debe instalar en un host que tenga conectividad con Datadog. Puedes utilizar uno de los siguientes archivos de configuración si aún no lo tienes configurado. La configuración depende del servicio y sitio de Datadog. Para ver las configuraciones basadas en tu [sitio de Datadog][7], utiliza el selector `DATADOG SITE` de la derecha. - -**Nota**: Se recomienda utilizar el archivo de configuración `HTTPS` si el Agent y HAProxy no forman parte de la misma red local aislada. - -##### HTTP - -```conf -# Basic configuration -global - log 127.0.0.1 local0 - maxconn 4096 - stats socket /tmp/haproxy - -# Some sane defaults -defaults - log global - option dontlognull - retries 3 - option redispatch - timeout client 5s - timeout server 5s - timeout connect 5s - -# This declares a view into HAProxy statistics, on port 3833 -# You do not need credentials to view this page and you can -# turn it off once you are done with setup. -listen stats - bind *:3833 - mode http - stats enable - stats uri / - -# This section is to reload DNS Records -# Replace and with your DNS Server IP addresses. -# For HAProxy 1.8 and newer -resolvers my-dns - nameserver dns1 :53 - nameserver dns2 :53 - resolve_retries 3 - timeout resolve 2s - timeout retry 1s - accepted_payload_size 8192 - hold valid 10s - hold obsolete 60s - -# This declares the endpoint where your Agents connects for -# sending metrics (for example, the value of "dd_url"). -frontend metrics-forwarder - bind *:3834 - mode http - option tcplog - default_backend datadog-metrics - - use_backend datadog-api if { path_beg -i /api/v1/validate } - use_backend datadog-flare if { path_beg -i /support/flare/ } - -# This declares the endpoint where your Agents connects for -# sending traces (for example, the value of "endpoint" in the APM -# configuration section). -frontend traces-forwarder - bind *:3835 - mode tcp - option tcplog - default_backend datadog-traces - -# This declares the endpoint where your Agents connects for -# sending profiles (for example, the value of "apm_config.profiling_dd_url"). -frontend profiles-forwarder - bind *:3836 - mode tcp - option tcplog - default_backend datadog-profiles - -# This declares the endpoint where your agents connects for -# sending processes (for example, the value of "url" in the process -# configuration section). -frontend processes-forwarder - bind *:3837 - mode tcp - option tcplog - default_backend datadog-processes - -# This declares the endpoint where your Agents connects for -# sending Logs (e.g the value of "logs.config.logs_dd_url") -# If sending logs with force_use_http: true -frontend logs_http_frontend - bind *:3838 - mode http - option tcplog - default_backend datadog-logs-http - -# If sending logs with force_use_tcp: true -# frontend logs_frontend -# bind *:10514 -# mode tcp -# option tcplog -# default_backend datadog-logs - -# This declares the endpoint where your Agents connects for -# sending database monitoring metrics and activity (e.g the value of "database_monitoring.metrics.dd_url" and "database_monitoring.activity.dd_url") -frontend database_monitoring_metrics_frontend - bind *:3839 - mode http - option tcplog - default_backend datadog-database-monitoring-metrics - -# This declares the endpoint where your Agents connects for -# sending database monitoring samples (e.g the value of "database_monitoring.samples.dd_url") -frontend database_monitoring_samples_frontend - bind *:3840 - mode http - option tcplog - default_backend datadog-database-monitoring-samples - -# This declares the endpoint where your Agents connects for -# sending Network Devices Monitoring metadata (e.g the value of "network_devices.metadata.dd_url") -frontend network_devices_metadata_frontend - bind *:3841 - mode http - option tcplog - default_backend datadog-network-devices-metadata - -# This declares the endpoint where your Agents connects for -# sending Network Devices SNMP Traps data (e.g the value of "network_devices.snmp_traps.forwarder.dd_url") -frontend network_devices_snmp_traps_frontend - bind *:3842 - mode http - option tcplog - default_backend datadog-network-devices-snmp-traps - -# This declares the endpoint where your Agents connect for -# sending Instrumentation Telemetry data (e.g. the value of "apm_config.telemetry.dd_url") -frontend instrumentation_telemetry_data_frontend - bind *:3843 - mode tcp - option tcplog - default_backend datadog-instrumentations-telemetry - -# This declares the endpoint where your Agents connects for -# sending Network Devices Monitoring NetFlow flows (for example, the value of "network_devices.netflow.dd_url") -frontend network_devices_netflow_frontend - bind *:3845 - mode http - option tcplog - default_backend datadog-network-devices-netflow - -# This declares the endpoint where your Agents connects for -# receiving Remote Configurations (for example, the value of "remote_configuration.rc_dd_url") -frontend remote_configuration_frontend - bind *:3846 - mode http - option tcplog - default_backend datadog-remote-configuration - -# This is the Datadog server. In effect, any TCP request coming -# to the forwarder frontends defined above are proxied to -# Datadog's public endpoints. -backend datadog-metrics - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 metrics.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership metrics.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-api - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 api.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership api.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-flare - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 flare.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership flare.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-traces - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 trace.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership trace.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-profiles - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 intake.profile.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership profile.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-processes - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 process.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership process.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-logs-http - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-database-monitoring-metrics - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 dbm-metrics-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-database-monitoring-samples - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 dbquery-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-metadata - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 ndm-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership ndm-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-snmp-traps - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 snmp-traps-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership snmp-traps-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-instrumentations-telemetry - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-netflow - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 ndmflow-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership ndmflow-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-remote-configuration - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 config.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership config.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file -``` - -##### HTTPS - -Esta configuración añade el cifrado SSL/TLS a la comunicación entre el Agent y HAProxy. Reemplaza la variable `` por la ruta de acceso al paquete de certificados del proxy (*.pem). - -```conf -# Basic configuration -global - log 127.0.0.1 local0 - maxconn 4096 - stats socket /tmp/haproxy - -# Some sane defaults -defaults - log global - option dontlognull - retries 3 - option redispatch - timeout client 5s - timeout server 5s - timeout connect 5s - -# This declares a view into HAProxy statistics, on port 3833 -# You do not need credentials to view this page and you can -# turn it off once you are done with setup. -listen stats - bind *:3833 - mode http - stats enable - stats uri / - -# This section is to reload DNS Records -# Replace and with your DNS Server IP addresses. -# For HAProxy 1.8 and newer -resolvers my-dns - nameserver dns1 :53 - nameserver dns2 :53 - resolve_retries 3 - timeout resolve 2s - timeout retry 1s - accepted_payload_size 8192 - hold valid 10s - hold obsolete 60s - -# This declares the endpoint where your Agents connect for -# sending metrics (for example, the value of "dd_url"). -frontend metrics-forwarder - bind *:3834 ssl crt - mode http - option tcplog - default_backend datadog-metrics - - use_backend datadog-api if { path_beg -i /api/v1/validate } - use_backend datadog-flare if { path_beg -i /support/flare/ } - -# This declares the endpoint where your Agents connect for -# sending traces (for example, the value of "endpoint" in the APM -# configuration section). -frontend traces-forwarder - bind *:3835 ssl crt - mode tcp - option tcplog - default_backend datadog-traces - -# This declares the endpoint where your Agents connect for -# sending profiles (for example, the value of "apm_config.profiling_dd_url"). -frontend profiles-forwarder - bind *:3836 ssl crt - mode tcp - option tcplog - default_backend datadog-profiles - -# This declares the endpoint where your Agents connect for -# sending processes (for example, the value of "url" in the process -# configuration section). -frontend processes-forwarder - bind *:3837 ssl crt - mode tcp - option tcplog - default_backend datadog-processes - -# This declares the endpoint where your Agents connect for -# sending Logs (e.g the value of "logs.config.logs_dd_url") -# If sending logs with force_use_http: true -frontend logs_http_frontend - bind *:3838 ssl crt - mode http - option tcplog - default_backend datadog-logs-http - -# If sending logs with force_use_tcp: true -# frontend logs_frontend -# bind *:10514 ssl crt -# mode tcp -# option tcplog -# default_backend datadog-logs - -# This declares the endpoint where your Agents connect for -# sending database monitoring metrics and activity (e.g the value of "database_monitoring.metrics.dd_url" and "database_monitoring.activity.dd_url") -frontend database_monitoring_metrics_frontend - bind *:3839 ssl crt - mode http - option tcplog - default_backend datadog-database-monitoring-metrics - -# This declares the endpoint where your Agents connect for -# sending database monitoring samples (e.g the value of "database_monitoring.samples.dd_url") -frontend database_monitoring_samples_frontend - bind *:3840 ssl crt - mode http - option tcplog - default_backend datadog-database-monitoring-samples - -# This declares the endpoint where your Agents connect for -# sending Network Devices Monitoring metadata (e.g the value of "network_devices.metadata.dd_url") -frontend network_devices_metadata_frontend - bind *:3841 ssl crt - mode http - option tcplog - default_backend datadog-network-devices-metadata - -# This declares the endpoint where your Agents connect for -# sending Network Devices SNMP Traps data (e.g the value of "network_devices.snmp_traps.forwarder.dd_url") -frontend network_devices_snmp_traps_frontend - bind *:3842 ssl crt - mode http - option tcplog - default_backend datadog-network-devices-snmp-traps - - -# This declares the endpoint where your Agents connect for -# sending Instrumentation Telemetry data (e.g. the value of "apm_config.telemetry.dd_url") -frontend instrumentation_telemetry_data_frontend - bind *:3843 ssl crt - mode tcp - option tcplog - default_backend datadog-instrumentations-telemetry - -# This declares the endpoint where your Agents connect for -# sending Network Devices Monitoring NetFlow flows (for example, the value of "network_devices.netflow.dd_url") -frontend network_devices_netflow_frontend - bind *:3845 ssl crt - mode http - option tcplog - default_backend datadog-network-devices-netflow - -# This declares the endpoint where your Agents connects for -# receiving Remote Configurations (for example, the value of "remote_configuration.rc_dd_url") -frontend remote_configuration_frontend - bind *:3846 ssl crt - mode http - option tcplog - default_backend datadog-remote-configuration - -# This is the Datadog server. In effect any TCP request coming -# to the forwarder frontends defined above are proxied to -# Datadog's public endpoints. -backend datadog-metrics - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 metrics.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership metrics.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-api - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 api.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership api.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-flare - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 flare.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership flare.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-traces - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 trace.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership trace.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-profiles - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 intake.profile.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership profile.agent.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-processes - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 process.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership process.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-logs-http - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-database-monitoring-metrics - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 dbm-metrics-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-database-monitoring-samples - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 dbquery-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server datadog agent-http-intake.logs.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-metadata - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 ndm-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership ndm-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-snmp-traps - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 snmp-traps-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership snmp-traps-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-instrumentations-telemetry - balance roundrobin - mode tcp - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-network-devices-netflow - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 ndmflow-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership ndmflow-intake.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -backend datadog-remote-configuration - balance roundrobin - mode http - # The following configuration is for HAProxy 1.8 and newer - server-template mothership 5 config.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file check resolvers my-dns init-addr none resolve-prefer ipv4 - # Uncomment the following configuration for older HAProxy versions - # server mothership config.{{< region-param key="dd_site" >}}:443 check port 443 ssl verify required ca-file - -``` - -**Nota**: Puedes utilizar `verify none` en lugar de `verify required ca-file ` si no logras obtener los certificados en el host del proxy, pero ten en cuenta que, en ese caso, HAProxy no podrá verificar el certificado de ingesta de Datadog. - -HAProxy 1.8 y sus versiones posteriores permiten que la detección de servicios DNS identifique los cambios del servidor y los aplique automáticamente en tu configuración. -Si utilizas una versión de HAProxy anterior, tendrás que recargar o reiniciar HAProxy. **Se recomienda tener una versión de HAProxy que recargue una tarea `cron` cada 10 minutos** (como `service haproxy reload`) para forzar la actualización de la caché del DNS de HAProxy en caso de que {{< region-param key="dd_full_site" code="true" >}} cambie a otra IP. - -#### Configuración del Datadog Agent - -**Agent v6 y v7** - -Edita cada Agent para dirigir datos hacia HAProxy al configurar su `dd_url` en la dirección de HAProxy. Ejemplo: `haproxy.example.com`. -Este parámetro `dd_url` se podrá encontrar en el archivo `datadog.yaml`. - -`dd_url: ://haproxy.example.com:3834` - -Reemplaza `` por `https` si optaste por la configuración HTTPS de HAProxy con anterioridad, o bien por `http` si no optaste por HTTPS. - -Para enviar trazas (traces), perfiles, procesos y logs mediante el proxy, efectúa la siguiente configuración en el archivo `datadog.yaml`: - -```yaml -apm_config: - apm_dd_url: ://haproxy.example.com:3835 - profiling_dd_url: ://haproxy.example.com:3836/api/v2/profile - telemetry: - dd_url: ://haproxy.example.com:3843 - -process_config: - process_dd_url: ://haproxy.example.com:3837 +# Recommended: Force the Agent to use HTTP to send logs (if logs is enabled) logs_config: - force_use_http: true - logs_dd_url: haproxy.example.com:3838 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - -database_monitoring: - metrics: - logs_dd_url: haproxy.example.com:3839 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - activity: - logs_dd_url: haproxy.example.com:3839 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - samples: - logs_dd_url: haproxy.example.com:3840 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - -network_devices: - metadata: - logs_dd_url: haproxy.example.com:3841 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - snmp_traps: - forwarder: - logs_dd_url: haproxy.example.com:3842 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - netflow: - forwarder: - logs_dd_url: haproxy.example.com:3845 - # Comment the line below to use encryption between the Agent and HAProxy - logs_no_ssl: true - -remote_configuration: - rc_dd_url: haproxy.example.com:3846 - # Comment the line below to use encryption between the Agent and HAProxy - no_tls: true + force_use_http: true ``` -Cuando se utiliza el cifrado entre el Agent y HAProxy, si el Agent no tiene acceso al certificado del proxy, no puede validarlo o no necesita validarlo, puedes editar el archivo de configuración del Agent `datadog.yaml` y establecer `skip_ssl_validation` como `true`. -Cuando se establece esta opción como `true`, el Agent omite el paso correspondiente a la validación del certificado y no verifica la identidad del proxy, pero se sigue cifrando la comunicación con SSL/TLS. - -```yaml -skip_ssl_validation: true -``` - -Por último, [reinicia el Agent][2]. - -Para verificar que todo funcione de manera adecuada, revisa las estadísticas de HAProxy en `http://haproxy.example.com:3833` y la [información general de la infraestructura][4]. - -**Agent v5** - -Edita cada Agent para dirigir datos hacia HAProxy al configurar su `dd_url` en la dirección de HAProxy. Ejemplo: `haproxy.example.com`. -Este parámetro `dd_url` se podrá encontrar en el archivo `datadog.conf`. - -`dd_url: http://haproxy.example.com:3834` - -Para enviar trazas o procesos mediante el proxy, efectúa la siguiente configuración en el archivo `datadog.conf`: - -```conf -[trace.api] -endpoint = http://haproxy.example.com:3835 - -[process.api] -endpoint = http://haproxy.example.com:3837 -``` +* Reemplace ``, ``, `` y `` con sus credenciales y dirección del proxy. +* Un nombre de usuario y una contraseña son opcionales. +* Especifique `http`, `https` o ambos, dependiendo de la configuración y necesidades de su proxy. La mayoría del tráfico de Datadog utiliza HTTPS. +* Utilice `no_proxy` para especificar los servidores a los que el Datadog Agent debe conectarse directamente, evitando el proxy. +* **[Reinicie el Datadog Agent][1]** para que los cambios surtan efecto. -Edita la configuración del supervisor para deshabilitar la verificación del certificado SSL. Este paso es necesario para que Python no señale la discrepancia entre el nombre de host que figura en el certificado SSL (`app.datadoghq.com`) y tu nombre de host de HAProxy. La configuración del supervisor se encuentra en: +Para obtener más información sobre cómo localizar el archivo de configuración en su sistema operativo, consulte [Archivos de Configuración del Datadog Agent][2]. -* `/etc/dd-agent/supervisor_ddagent.conf` en sistemas basados en Debian -* `/etc/dd-agent/supervisor.conf` en sistemas basados en Red Hat -* `/opt/local/datadog/supervisord/supervisord.conf` en SmartOS -* `/usr/local/etc/datadog/supervisord/supervisord.conf` en FreeBSD -* `~/.datadog-agent/supervisord/supervisord.conf` en macOS +### Variables de entorno {#environment-variables} -Supongamos que el archivo del supervisor se encuentra en `` +Alternativamente, puede configurar un proxy estableciendo las siguientes variables de entorno. Cuando haya terminado, [reinicie el Datadog Agent][1]. ```bash -sed -i 's/ddagent.py/ddagent.py --sslcheck=0/' -``` - -En el Windows Agent, edita tu archivo de configuración `datadog.conf` y añade esta opción: - -```conf -skip_ssl_validation: yes -``` - -Por último, [reinicia el Agent][2]. - -Para verificar que todo funcione de manera adecuada, revisa las estadísticas de HAProxy en `http://haproxy.example.com:3833` y la [información general de la infraestructura][4]. - -## NGINX - -[NGINX][8] es un servidor web que también se puede utilizar como proxy inverso, equilibrador de carga, proxy de correo electrónico y caché HTTP. Asimismo, puedes utilizar NGINX como proxy en tus Datadog Agents: - -`agent ---> nginx ---> Datadog` - -La comunicación entre NGINX y Datadog se cifra siempre con TLS. No obstante, la comunicación entre el host del Agent y el host de NGINX no se cifra por defecto, dado que se parte del principio de que el proxy y el Agent se encuentran en el mismo host. Si no comparten la misma red local aislada, te recomendamos proteger dicha comunicación con el cifrado TLS. -Para cifrar datos entre el Agent y NGINX, será necesario que crees un certificado x509 con la extensión de nombre alternativo del firmante (SAN) del host de NGINX. - -**Nota**: Descarga el certificado de Datadog con uno de los siguientes comandos: - -```shell -sudo apt-get install ca-certificates # (Debian, Ubuntu) -yum install ca-certificates # (CentOS, Red Hat) -``` - -La ruta hacia el certificado es `/etc/ssl/certs/ca-certificates.crt` en el caso de Debian y Ubuntu, o `/etc/ssl/certs/ca-bundle.crt` en el caso de CentOS y Red Hat. - -### Reenvío mediante proxy con NGINX - -#### Configuración de NGINX - -NGINX se debe instalar en un host que tenga conectividad con Datadog. Puedes utilizar uno de los siguientes archivos de configuración si aún no lo tienes configurado. La configuración depende del servicio y sitio de Datadog. Para ver las configuraciones basadas en tu [sitio de Datadog][7], utiliza el selector `DATADOG SITE` de la derecha. - -**Nota**: Se recomienda utilizar el archivo de configuración `HTTPS` si el Agent y NGINX no forman parte de la misma red local aislada. - -##### HTTP - -```conf -user nginx; -worker_processes auto; -error_log /var/log/nginx/error.log; -pid /run/nginx.pid; - -events { - worker_connections 1024; -} -# HTTP Proxy for Datadog Agent -http { - - proxy_ssl_trusted_certificate ; - - server { - listen 3834; #listen for metrics - access_log off; - - location /api/v1/validate { - proxy_ssl_verify on; - proxy_pass https://api.{{< region-param key="dd_site" >}}:443/api/v1/validate; - } - location /support/flare/ { - proxy_ssl_verify on; - proxy_pass https://flare.{{< region-param key="dd_site" >}}:443/support/flare/; - } - location / { - proxy_ssl_verify on; - proxy_pass https://metrics.agent.{{< region-param key="dd_site" >}}:443/; - } - } -} -# TCP Proxy for Datadog Agent -stream { - - proxy_ssl_trusted_certificate ; - - server { - listen 3835; #listen for traces - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass trace.agent.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3836; #listen for profiles - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass intake.profile.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3837; #listen for processes - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass process.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3838; #listen for logs with force_use_http: true - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass agent-http-intake.logs.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3839; #listen for database monitoring metrics - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass dbm-metrics-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3840; #listen for database monitoring samples - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass dbquery-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3841; #listen for network devices metadata - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass ndm-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3842; #listen for network devices traps - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass snmp-traps-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3843; #listen for instrumentations telemetry data - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3845; #listen for network devices netflow - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass ndmflow-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3846; #listen for Remote Configuration requests - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass config.{{< region-param key="dd_site" >}}:443; - } -} -``` - -##### HTTPS - - -Esta configuración añade el cifrado SSL/TLS a la comunicación entre el Agent y NGINX. Reemplaza `` por la ruta de acceso al certificado público del proxy y `` por la ruta de acceso a la clave privada. - -```conf -user nginx; -worker_processes auto; -error_log /var/log/nginx/error.log; -pid /run/nginx.pid; - -events { - worker_connections 1024; -} -# HTTP Proxy for Datadog Agent -http { - - proxy_ssl_trusted_certificate ; +DD_PROXY_HTTP="http://:@:" +DD_PROXY_HTTPS="http://:@:" - ssl_certificate ; - ssl_certificate_key ; +DD_PROXY_NO_PROXY=" " +DD_NO_PROXY_NONEXACT_MATCH=true - server { - listen 3834 ssl; #listen for metrics - access_log off; - - location /api/v1/validate { - proxy_ssl_verify on; - proxy_pass https://api.{{< region-param key="dd_site" >}}:443/api/v1/validate; - } - location /support/flare/ { - proxy_ssl_verify on; - proxy_pass https://flare.{{< region-param key="dd_site" >}}:443/support/flare/; - } - location / { - proxy_ssl_verify on; - proxy_pass https://metrics.agent.{{< region-param key="dd_site" >}}:443/; - } - } -} -# TCP Proxy for Datadog Agent -stream { - - proxy_ssl_trusted_certificate ; - - ssl_certificate ; - ssl_certificate_key ; - - server { - listen 3835 ssl; #listen for traces - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass trace.agent.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3836 ssl; #listen for profiles - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass intake.profile.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3837 ssl; #listen for processes - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass process.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3838 ssl; #listen for logs with force_use_http: true - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass agent-http-intake.logs.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3839 ssl; #listen for database monitoring metrics - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass dbm-metrics-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3840 ssl; #listen for database monitoring samples - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass dbquery-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3841 ssl; #listen for network devices metadata - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass ndm-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3842 ssl; #listen for network devices traps - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass snmp-traps-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3843 ssl; #listen for instrumentations telemetry data - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass instrumentation-telemetry-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3845 ssl; #listen for network devices netflow - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass ndmflow-intake.{{< region-param key="dd_site" >}}:443; - } - server { - listen 3846 ssl; #listen for Remote Configuration requests - proxy_ssl_verify on; - proxy_ssl on; - proxy_pass config.{{< region-param key="dd_site" >}}:443; - } -} -``` - -**Nota**: Puedes eliminar `proxy_ssl_verify on` si no consigues obtener los certificados en el host del proxy, pero ten en cuenta que, si lo haces, NGINX no podrá verificar el certificado de ingesta de Datadog. - -#### Configuración del Datadog Agent - -Edita el archivo de configuración de cada Agent para dirigir datos hacia NGINX al configurar su `dd_url` en la dirección de NGINX. Ejemplo: `nginx.example.com`. -Este parámetro `dd_url` se podrá encontrar en el archivo `datadog.yaml`. - -`dd_url: "://nginx.example.com:3834"` - -Reemplaza `` por `https` si optaste por la configuración HTTPS de HAProxy con anterioridad, o bien por `http` si no optaste por HTTPS. - -Para enviar trazas, perfiles, procesos y logs mediante el proxy, efectúa la siguiente configuración en el archivo `datadog.yaml`: - -```yaml -apm_config: - apm_dd_url: ://nginx.example.com:3835 - profiling_dd_url: ://nginx.example.com:3836/api/v2/profile - telemetry: - dd_url: ://nginx.example.com:3843 - -process_config: - process_dd_url: ://nginx.example.com:3837 - -logs_config: - force_use_http: true - logs_dd_url: nginx.example.com:3838 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - -database_monitoring: - metrics: - logs_dd_url: nginx.example.com:3839 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - activity: - logs_dd_url: nginx.example.com:3839 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - samples: - logs_dd_url: nginx.example.com:3840 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - -network_devices: - metadata: - logs_dd_url: nginx.example.com:3841 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - snmp_traps: - forwarder: - logs_dd_url: nginx.example.com:3842 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - netflow: - forwarder: - logs_dd_url: nginx.example.com:3845 - # Comment the line below to use encryption between the Agent and NGINX - logs_no_ssl: true - -remote_configuration: - rc_dd_url: nginx.example.com:3846 - # Comment the line below to use encryption between the Agent and NGINX - no_tls: true +DD_LOGS_CONFIG_FORCE_USE_HTTP=true ``` +## Ejemplos de Configuración del Servidor Proxy {#proxy-server-setup-examples} -Cuando se utiliza el cifrado entre el Agent y NGINX, si el Agent no tiene acceso al certificado del proxy, no puede validarlo o no necesita validarlo, puedes editar el archivo de configuración del Agent `datadog.yaml` y establecer `skip_ssl_validation` como `true`. -Cuando se establece esta opción como `true`, el Agent omite el paso correspondiente a la validación del certificado y no verifica la identidad del proxy, pero se sigue cifrando la comunicación con SSL/TLS. - -```yaml -skip_ssl_validation: true -``` - -Cuando envíes logs a través de TCP, consulta la sección acerca del [proxy de TCP para logs][7]. - -## Datadog Agent - -{{< tabs >}} -{{% tab "Agent v6 y v7" %}} - -**Esta característica solo se encuentra disponible en el Agent v5**. +Si no tiene un servidor proxy existente, Datadog recomienda usar un proxy HTTP como **Squid**. -{{% /tab %}} -{{% tab "Agent v5" %}} +1. **Squid (Recomendado)**: Un proxy HTTP/HTTPS robusto que simplifica la configuración al redirigir de forma transparente todo el tráfico saliente del Datadog Agent. [Usando un proxy Squid][3]. +2. **HAProxy (No Recomendado)**: Puede reenviar tráfico a Datadog, pero esto requiere mantener una lista actualizada de dominios de Datadog y es más complejo de gestionar. [Ver Ejemplo de Configuración de HAProxy][4]. +3. **NGINX (No Recomendado)**: Similar a HAProxy, se desaconseja usar NGINX para reenviar tráfico a Datadog debido a la carga de mantenimiento de mantener actualizadas las listas de dominios. [Ver Ejemplo de Configuración de NGINX][5]. -Se recomienda utilizar un proxy real (un proxy web o HAProxy) para reenviar el tráfico hacia Datadog. No obstante, si no dispones de esas opciones, puedes configurar una instancia del **Agent v5** para que actúe como un proxy. +Datadog desaconseja reenviar tráfico utilizando software como HAProxy o NGINX, ya que esto requiere configurar y mantener manualmente la lista de puntos de conexión específicos de Datadog a los que el Datadog Agent debe conectarse. Esta lista puede cambiar, lo que puede llevar a la pérdida de datos si no se mantiene actualizada. La única excepción es si necesita capacidades de Inspección Profunda de Paquetes (DPI), en cuyo caso podría considerar usar HAProxy o NGINX, ya que le permiten deshabilitar TLS o usar sus propios certificados TLS e inspeccionar el tráfico. -1. Designa como proxy un nodo **que ejecute datadog-agent**. - En este ejemplo, supongamos que el nombre del proxy es `proxy-node`. El nodo **debe** poder llegar a `https://app.datadoghq.com`. +## Verificación {#verification} -2. Verifica la conectividad SSL de `proxy-node`: +Verifique el comando de estado del Agente y revise los registros del Agente (`agent.log`, `trace-agent.log`, etc.) en busca de errores de conexión después de reiniciar. - ```shell - curl -v https://app.datadoghq.com/account/login 2>&1 | grep "200 OK" - ``` +## Proxy FIPS (US1-FED) {#fips-proxy-us1-fed} -3. Modifica la siguiente línea de `datadog.conf` para permitir que haya tráfico no local en `proxy-node`. - `# non_local_traffic: no` debería ser `non_local_traffic: yes`. +Para obtener información sobre cómo configurar el Proxy FIPS del Datadog Agent, consulte [Datadog FIPS Compliance][6]. El proxy FIPS solo está disponible en la región US1-FED. El Proxy FIPS del Datadog Agent no se puede utilizar junto con un proxy regular. -4. Asegúrate de que se pueda llegar a `proxy-node` desde los demás nodos a través del puerto 17123. Inicia el Agent en `proxy-node` y ejecútalo en los demás nodos: - - `curl -v http://proxy-node:17123/status 2>&1 | grep "200 OK"` - -5. Actualiza los nodos que no actúen como proxies para reenviarlos a `proxy-node`. Cambia la siguiente línea de `datadog.conf` de: - - `dd_url: https://app.datadoghq.com` - a - `dd_url: http://proxy-node:17123` - -6. En la [página de la infraestructura][1], verifica que todos los nodos envíen datos a Datadog. - - -[1]: https://app.datadoghq.com/infrastructure#overview -{{% /tab %}} -{{< /tabs >}} - -## Lectura adicional +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} - -[1]: /es/agent/configuration/agent-fips-proxy -[2]: /es/agent/configuration/agent-commands/ -[3]: http://www.squid-cache.org/ -[4]: https://app.datadoghq.com/infrastructure -[5]: http://haproxy.1wt.eu -[6]: https://www.haproxy.com/blog/haproxy-ssl-termination/ -[7]: /es/getting_started/site/ -[8]: https://www.nginx.com -[9]: /es/agent/logs/proxy +[1]: /es/agent/configuration/agent-commands/#restart-the-agent +[2]: /es/agent/configuration/agent-configuration-files/#main-configuration-file +[3]: /es/agent/configuration/proxy_squid/ +[4]: /es/agent/faq/proxy_example_haproxy/ +[5]: /es/agent/faq/proxy_example_nginx/ +[6]: /es/agent/configuration/fips-compliance/ \ No newline at end of file diff --git a/content/es/containers/autoscaling/_index.md b/content/es/containers/autoscaling/_index.md new file mode 100644 index 00000000000..2a44410e1fe --- /dev/null +++ b/content/es/containers/autoscaling/_index.md @@ -0,0 +1,657 @@ +--- +aliases: +- /es/containers/monitoring/autoscaling +description: Escala automáticamente las cargas de trabajo de Kubernetes utilizando + métricas de Datadog y recomendaciones inteligentes de escalado. +further_reading: +- link: /infrastructure/containers/kubernetes_resource_utilization + tag: Documentación + text: Utilización de Recursos de Kubernetes +- link: /account_management/rbac/permissions + tag: Documentación + text: Permisos de Rol de Datadog +- link: /agent/remote_config/ + tag: Documentación + text: Remote Configuration +- link: https://www.datadoghq.com/blog/autoscaling-custom-metrics + tag: Blog + text: Escalando cargas de trabajo de Kubernetes con métricas personalizadas +- link: https://www.datadoghq.com/blog/kubernetes-custom-query-autoscaling + tag: Blog + text: Optimiza las cargas de trabajo de Kubernetes con Custom Query Scaling. +- link: https://www.datadoghq.com/blog/ddot-gateway + tag: Blog + text: Centraliza y gobierna tu canalización de OpenTelemetry con el gateway DDOT. +- link: https://www.datadoghq.com/blog/datadog-kubernetes-autoscaling/ + tag: Blog + text: Ajusta las cargas de trabajo y reduce costos con el escalado automático de + Kubernetes de Datadog +title: Kubernetes Autoscaling +--- +{{< site-region region="gov,gov2" >}} +
    + Esta función no está disponible para Datadog for Government ({{< region-param key="dd_datacenter" >}}) site. +
    +{{< /site-region >}} + +Datadog Kubernetes Autoscaling monitorea continuamente sus recursos de Kubernetes para proporcionar recomendaciones de escalado inmediatas y un escalado multidimensional de sus cargas de trabajo de Kubernetes. Puede implementar Datadog Kubernetes Autoscaling a través de la interfaz web de Datadog, o con un recurso personalizado `DatadogPodAutoscaler`. + +## Cómo funciona {#how-it-works} +Datadog utiliza métricas de utilización en tiempo real e históricas y señales de eventos de sus Datadog Agents existentes para hacer recomendaciones. Luego puede examinar estas recomendaciones y elegir implementarlas. + +Por defecto, Datadog Kubernetes Autoscaling utiliza valores estimados del costo de CPU y memoria para mostrar oportunidades de ahorro y estimaciones de impacto. También puede usar Datadog Kubernetes Autoscaling junto con [Cloud Cost Management](#idle-cost-and-savings-estimates) para obtener informes basados en los costos exactos de su tipo de instancia. + +El escalado automatizado de cargas de trabajo es impulsado por un `DatadogPodAutoscaler` recurso personalizado que define el comportamiento de escalado a nivel de cada carga de trabajo. El Datadog Cluster Agent actúa como el controlador de este recurso personalizado. + +**Nota:** Cada clúster puede tener un máximo de 1000 cargas de trabajo optimizadas con Datadog Kubernetes Autoscaling. + +### Compatibilidad {#compatibility} + +- **Distribuciones**: Esta función es compatible con todas las [distribuciones de Kubernetes soportadas][5] por Datadog. +- **Autoscaling de cargas de trabajo**: Esta función es una alternativa al Horizontal Pod Autoscaler (HPA) y al Vertical Pod Autoscaler (VPA). Datadog recomienda que elimine cualquier HPA o VPA de una carga de trabajo al habilitar Datadog Kubernetes Autoscaling para optimizarla. Estas cargas de trabajo son identificadas en la aplicación en su nombre. +**Nota:** Puede experimentar con Datadog Kubernetes Autoscaling mientras mantiene su HPA y/o VPA creando un `DatadogPodAutoscaler` con `mode: Preview` en la sección `applyPolicy`. + +### Requisitos {#requirements} + +- [Remote Configuration][1] debe estar habilitado tanto a nivel de organización como en los Agentes de su clúster objetivo. Consulte [Enabling Remote Configuration][2] para obtener instrucciones de configuración. +- [Helm][3], para actualizar su Datadog Agent. +- (Para usuarios de Datadog Operator) [`kubectl` CLI][4], para actualizar el Datadog Agent. +- Cuando esté utilizando autoscaling en vivo, Datadog recomienda usar la última versión del Datadog Agent. Esto ayuda a garantizar el acceso a las últimas mejoras y optimizaciones. Las recomendaciones de escalado requieren que la integración [Kubernetes State Core][9] esté habilitada.

    + + | Función | Versión Mínima del Agente | + |---------|----------------------| + | Recomendaciones de escalado de carga de trabajo en la aplicación | 7.50+ | + | Escalado de carga de trabajo en vivo | 7.66.1+ | + | Recomendaciones de Argo Rollout y escalado automático | 7.71+ | + | Escalado automático de clúster ([inscripción previa][10]) | 7.72+ | + | Redimensionamiento vertical de pod en su lugar (opción activa) | 7.78+ | + | Activación del perfil del clúster, etiqueta de carga de trabajo | 7.78+ | + | Activación del perfil del clúster, etiqueta de espacio de nombres | 7.79+ | + +- Los siguientes permisos de usuario: + - Gestión de organización (requerido para configuración remota) + - Escritura de clave de API (requerido para configuración remota) + - Escritura de escalado de carga de trabajo + - Gestión de escalado automático +- (Recomendado) Núcleo de Linux v5.19+ y cgroup v2 + +## Configuración {#setup} + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +1. Asegúrese de estar utilizando Datadog Operator v1.16.0+. Para actualizar su Datadog Operator: + +```shell +helm upgrade datadog-operator datadog/datadog-operator +``` + +2. Agregue lo siguiente a su archivo de configuración `datadog-agent.yaml`: + +```yaml +spec: + features: + autoscaling: + workload: + enabled: true + eventCollection: + unbundleEvents: true + override: + clusterAgent: + env: + - name: DD_AUTOSCALING_FAILOVER_ENABLED + value: "true" + nodeAgent: + env: + - name: DD_AUTOSCALING_FAILOVER_ENABLED + value: "true" +``` + +3. [Admission Controller][1] está habilitado por defecto con Datadog Operator. Si lo deshabilitó, vuelva a habilitarlo agregando las siguientes líneas resaltadas a `datadog-agent.yaml`: + +{{< highlight yaml "hl_lines=4-5" >}} +... +spec: + features: + admissionController: + enabled: true +... +{{< /highlight >}} + +4. Aplique la configuración actualizada de `datadog-agent.yaml`: + +```shell +kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml +``` + +[1]: /es/containers/cluster_agent/admission_controller/ + +{{% /tab %}} +{{% tab "Helm" %}} + +1. Asegúrese de estar utilizando Agent y Cluster Agent v7.66.1+. Agregue lo siguiente a su archivo de configuración `datadog-values.yaml`: + +```yaml +datadog: + autoscaling: + workload: + enabled: true + kubernetesEvents: + unbundleEvents: true +``` + +2. [Admission Controller][1] está habilitado por defecto en el Datadog Helm chart. Si lo deshabilitó, vuelva a habilitarlo agregando las siguientes líneas resaltadas a `datadog-values.yaml`: +{{< highlight yaml "hl_lines=5-6" >}} +... +clusterAgent: + admissionController: + enabled: true +... +{{< /highlight >}} + +3. Actualice su versión de Helm: + +```shell +helm repo update +``` + +4. Vuelva a desplegar Datadog Agent con su `datadog-values.yaml` actualizado: + +```shell +helm upgrade -f datadog-values.yaml datadog/datadog +``` + +[1]: /es/containers/cluster_agent/admission_controller/ + +{{% /tab %}} +{{< /tabs >}} + +### Estimaciones de costos y ahorros inactivos {#idle-cost-and-savings-estimates} + +{{< tabs >}} +{{% tab "Con Cloud Cost Management" %}} +Si [Cloud Cost Management][1] está habilitado en una organización, Datadog Kubernetes Autoscaling muestra estimaciones de costos inactivos y ahorros basados en el costo exacto de su factura de las instancias monitoreadas subyacentes. + +Consulta las instrucciones de configuración de Cloud Cost para [AWS][2], [Azure][3] o [Google Cloud][4]. + +Los datos de Cloud Cost Management mejoran Datadog Kubernetes Autoscaling, pero no son obligatorios. Todas las recomendaciones de carga de trabajo y decisiones de autoscaling de Datadog son válidas y funcionales sin Cloud Cost Management. + +[1]: /es/cloud_cost_management +[2]: /es/cloud_cost_management/aws +[3]: /es/cloud_cost_management/azure +[4]: /es/cloud_cost_management/google_cloud +{{% /tab %}} + +{{% tab "Predeterminado" %}} +Si Cloud Cost Management **no** está habilitado, Datadog Kubernetes Autoscaling muestra estimaciones de costos inactivos y ahorros utilizando las siguientes fórmulas y valores fijos: + +**Inactividad del clúster**: + +``` + (cpu_capacity - max(cpu_usage, cpu_requests)) * core_rate_per_hour ++ (mem_capacity - max(mem_usage, mem_requests)) * memory_rate_per_hour +``` + +**Carga de trabajo inactiva**: + +``` + (max(cpu_usage, cpu_requests) - cpu_usage) * core_rate_per_hour ++ (max(mem_usage, mem_requests) - mem_usage) * memory_rate_per_hour +``` + +**Valores fijos**: +- tasa_núcleo_por_hora = $0.0295 por hora de núcleo de CPU +- tasa_memoria_por_hora = $0.0053 por hora de GB de memoria + + +_Los valores de costo fijo están sujetos a refinamiento con el tiempo._ +{{% /tab %}} +{{< /tabs >}} + +## Uso {#usage} + +### Identificar recursos para ajustar {#identify-resources-to-rightsize} + +La [página de Resumen de Escalado Automático][6] proporciona un punto de partida para que los equipos de plataforma comprendan las oportunidades de ahorro total de Recursos de Kubernetes en una organización, y filtren hacia clústeres y espacios de nombres clave. + +La [página de Configuración][11] ofrece la opción de seleccionar múltiples cargas de trabajo para escalar y gestionar su optimización en lotes. + +La [vista de Escalado de Clúster][7] proporciona información por clúster sobre el total de CPU inactiva, total de memoria inactiva y costos. + +Haga clic en un clúster para obtener información detallada y una tabla de las cargas de trabajo del clúster ordenadas por ahorros estimados. Si usted es un propietario de aplicación o servicio individual, también puede filtrar por el nombre de su equipo o servicio directamente desde la [vista de lista de Escalado de Carga de Trabajo][8]. + +Desde cualquiera de estas vistas, haga clic en {{< ui >}}Optimize{{< /ui >}} en una carga de trabajo para ver su recomendación de escalado, luego proceda a [Habilitar Escalado Automático para una carga de trabajo](#enable-autoscaling-for-a-workload). + +### Habilitar Escalado Automático para una carga de trabajo {#enable-autoscaling-for-a-workload} + +Después de identificar una carga de trabajo para optimizar, inspeccione su {{< ui >}}Scaling Recommendation{{< /ui >}}. Haga clic en {{< ui >}}Configure Recommendation{{< /ui >}} para agregar restricciones o ajustar los niveles de utilización objetivo antes de habilitar. + +Hay tres formas de habilitar el escalado automático para una carga de trabajo. Elija el camino que coincida con la forma en que despliega cargas de trabajo hoy. + +| Ruta | Mejor para | Dónde comenzar | Gestión continua | +|------|----------|-----------------|--------------------| +| **A. Asistente de configuración de la interfaz de usuario de Datadog** | Comience rápidamente y ajuste la configuración con retroalimentación visual inmediata, o empodere a sus equipos de aplicación para tomar mejores decisiones de configuración de escalado | [Página de configuración][11] en la interfaz de usuario de Datadog | Edite la carga de trabajo `DatadogPodAutoscaler` desde la interfaz o su clúster | +| **B. Redacte un `DatadogPodAutoscaler` manifiesto** | Flujos de trabajo existentes para enviar manifiestos de Kubernetes (`kubectl`, Helm, ArgoCD, Terraform u otras herramientas de GitOps) | YAML escrito a mano o generado a partir de plantillas aplicado a través de la herramienta que ya utiliza | Edite el manifiesto y reaplique a través de la misma herramienta | +| **C. Aplicar un [perfil de clúster](#cluster-profiles) etiqueta** | Activar el escalado automático en muchas cargas de trabajo o espacios de nombres con una única política compartida | Etiquete la carga de trabajo o el espacio de nombres con `autoscaling.datadoghq.com/profile` | Edite el perfil para actualizar cada carga de trabajo que gestiona, o mueva cargas de trabajo entre perfiles cambiando la etiqueta | + +#### Ruta A: Datadog UI {#path-a-datadog-ui} + +La forma más rápida de comenzar es la [Setup page][11] en Datadog UI. El asistente lo guía a través de cinco pasos: seleccionar un clúster, verificar los requisitos del agente y de permisos, elegir un método de instalación, seleccionar una plantilla de escalado y desplegar. Plantillas disponibles en el asistente: + +- **Optimizar costo**: objetivo de alta utilización de CPU, reducción agresiva, piso de réplicas más bajo. Mejor para cargas de trabajo sin estado y sensibles al costo. +- **Optimizar balance**: objetivo de utilización moderada, escalado equilibrado hacia arriba y hacia abajo. Mejor para la mayoría de las cargas de trabajo sin estado. +- **Optimizar rendimiento**: objetivo de utilización conservadora, reducción lenta, piso de réplicas más alto. Mejor para servicios con estado o críticos. +- **Personalizar**: comience desde cualquiera de los anteriores y ajuste el objetivo de CPU, réplicas y ventanas de estabilización usted mismo. + +El asistente de configuración es mejor para probar el escalado automático en una sola carga de trabajo, interactuar con una recomendación o incorporar un pequeño conjunto de cargas de trabajo. (Requiere `Workload Scaling Write` y `Autoscaling Manage` permisos.) + +#### Ruta B: GitOps {#path-b-gitops} + +Defina un `DatadogPodAutoscaler` recurso personalizado que apunte a su carga de trabajo y aplíquelo a través de cualquier herramienta que ya use para enviar manifiestos de Kubernetes, ya sea `kubectl apply`, Helm, ArgoCD, Terraform u otra herramienta de GitOps. La redacción del manifiesto es la misma independientemente del mecanismo de entrega. Vea las [configuraciones de ejemplo](#example-datadogpodautoscaler-configurations) a continuación para puntos de partida listos para editar que cubren optimización de costos, escalado equilibrado, redimensionamiento vertical únicamente y escalado horizontal de consulta personalizada. + +Para guías específicas de herramientas, consulte: + +- [Gestionar DatadogPodAutoscaler con ArgoCD][12] +- [Gestionar DatadogPodAutoscaler con Terraform][13] + +### Ejemplos de configuraciones de DatadogPodAutoscaler {#example-datadogpodautoscaler-configurations} + +Los siguientes ejemplos demuestran configuraciones comunes `DatadogPodAutoscaler` para diferentes estrategias de escalado. Úselos como puntos de partida y ajuste los valores para que coincidan con los requisitos de su carga de trabajo. Si prefiere elegir una plantilla en la interfaz de usuario, siga [Ruta A](#path-a-datadog-ui-setup-wizard) arriba. + +{{< tabs >}} +{{% tab "Optimizar Costo" %}} + +Elija esta plantilla para una carga de trabajo sin estado, sensible a costos, donde el controlador debe eliminar capacidad rápidamente cuando la carga disminuye. La configuración definitoria es el objetivo de alta utilización de CPU (85%), combinado con una regla de reducción agresiva y un mínimo de una réplica. + +```yaml +apiVersion: datadoghq.com/v1alpha2 +kind: DatadogPodAutoscaler +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: apps/v1 + kind: Deployment + name: + owner: Local + applyPolicy: + mode: Apply + scaleDown: + rules: + # Aggressive: allow 50% reduction every 2 minutes + - periodSeconds: 120 + type: Percent + value: 50 + stabilizationWindowSeconds: 300 + scaleUp: + rules: + - periodSeconds: 120 + type: Percent + value: 50 + stabilizationWindowSeconds: 300 + update: + strategy: Auto + constraints: + maxReplicas: 100 + # Allow scaling down to 1 replica for maximum savings + minReplicas: 1 + objectives: + # High utilization target to maximize cost efficiency + - type: PodResource + podResource: + name: cpu + value: + type: Utilization + utilization: 85 +``` + +{{% /tab %}} +{{% tab "Optimizar Balance" %}} + +Elija esta plantilla cuando desee ahorros sin sacrificar disponibilidad. Es un valor predeterminado sensato para la mayoría de las cargas de trabajo sin estado. La configuración definitoria es el objetivo moderado de utilización de CPU (70%) emparejado con una reducción conservadora (20% cada 20 minutos) y un mínimo de dos réplicas. El controlador agrega capacidad rápidamente pero la elimina lentamente. + +```yaml +apiVersion: datadoghq.com/v1alpha2 +kind: DatadogPodAutoscaler +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: apps/v1 + kind: Deployment + name: + owner: Local + applyPolicy: + mode: Apply + scaleDown: + rules: + # Conservative: allow only 20% reduction every 20 minutes + - periodSeconds: 1200 + type: Percent + value: 20 + stabilizationWindowSeconds: 600 + scaleUp: + rules: + - periodSeconds: 120 + type: Percent + value: 50 + stabilizationWindowSeconds: 600 + update: + strategy: Auto + constraints: + maxReplicas: 100 + # Maintain at least 2 replicas for availability + minReplicas: 2 + objectives: + # Moderate utilization target balances cost and performance + - type: PodResource + podResource: + name: cpu + value: + type: Utilization + utilization: 70 +``` + +{{% /tab %}} +{{% tab "Vertical: CPU y memoria" %}} + +Elija esta plantilla cuando una carga de trabajo no pueda escalarse horizontalmente, o cuando desee un ajuste puro sin cambiar el número de réplicas. Los casos comunes son servicios singleton, cargas de trabajo con estado y componentes elegidos por un líder. La configuración definitoria es `scaleDown.strategy: Disabled` y `scaleUp.strategy: Disabled`, lo que deja solo `update.strategy: Auto` para aplicar recomendaciones de CPU y memoria. + +Por defecto, el controlador aplica recomendaciones verticales al activar un despliegue (desalojar y recrear pods). El Cluster Agent **7.78+** también admite **redimensionamiento de pods en su lugar**, lo que actualiza las solicitudes y límites de CPU y memoria de un pod sin reiniciarlo. El redimensionamiento en su lugar es opcional: configure `autoscaling.workload.in_place_vertical_scaling.enabled: true` en el Cluster Agent (o establezca la variable de entorno `DD_AUTOSCALING_WORKLOAD_IN_PLACE_VERTICAL_SCALING_ENABLED=true`). + +Su clúster también debe exponer el `pods/resize` subrecurso. Este es el valor predeterminado en Kubernetes 1.33+ donde la puerta de características `InPlacePodVerticalScaling` está en beta. En Kubernetes 1.27 a 1.32, la puerta de características debe estar habilitada en `kube-apiserver` y cada `kubelet`. + +Cuando se cumplen ambos requisitos previos: + +- **Predeterminado**: Las cargas de trabajo con `applyPolicy.update.strategy: Auto` (el predeterminado) se redimensionan en su lugar. +- **Reversión**: Si el kubelet informa un redimensionamiento como `Infeasible`, el controlador recurre a un rollout. +- **Opt-out**: Para forzar a una carga de trabajo a utilizar siempre el escalado vertical basado en rollout independientemente de la configuración del clúster, configure `applyPolicy.update.strategy: TriggerRollout` en su `DatadogPodAutoscaler`. + +```yaml +apiVersion: datadoghq.com/v1alpha2 +kind: DatadogPodAutoscaler +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: apps/v1 + kind: Deployment + name: + owner: Local + applyPolicy: + mode: Apply + # Horizontal scaling disabled; only vertical resizing + scaleDown: + strategy: Disabled + scaleUp: + strategy: Disabled + update: + strategy: Auto + constraints: + maxReplicas: 100 +``` + +{{% /tab %}} +{{% tab "Consulta Personalizada Horizontal" %}} + +Elija esta plantilla cuando la CPU y la memoria no sean la señal de escalado adecuada. Los ejemplos incluyen un trabajador de cola que debería escalar según la profundidad de la cola, o un servicio API que debería escalar según la latencia de las solicitudes. La configuración definitoria es el bloque `objectives`, que hace referencia a una consulta de métrica de Datadog y a un `AbsoluteValue` objetivo en lugar de un porcentaje de utilización. Reemplace la consulta de ejemplo con una que coincida con su carga de trabajo. + +```yaml +apiVersion: datadoghq.com/v1alpha2 +kind: DatadogPodAutoscaler +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: apps/v1 + kind: Deployment + name: + owner: Local + applyPolicy: + mode: Apply + scaleDown: + rules: + - periodSeconds: 1200 + type: Percent + value: 20 + stabilizationWindowSeconds: 600 + scaleUp: + rules: + - periodSeconds: 120 + type: Percent + value: 50 + stabilizationWindowSeconds: 600 + # Vertical updates disabled — horizontal only + update: + strategy: Disabled + constraints: + maxReplicas: 100 + minReplicas: 2 + objectives: + - type: CustomQuery + customQuery: + # Replace with your own Datadog metric query + request: + formula: usage + queries: + - name: usage + source: Metrics + metrics: + query: avg:redis.info.latency_ms{kube_cluster_name:,kube_namespace:,kube_deployment:} + value: + type: AbsoluteValue + absoluteValue: 500M + window: 5m0s + fallback: + horizontal: + # With custom queries, local fallback is not activated by default + enabled: false + # Direction can be ScaleUp, ScaleDown or All + direction: ScaleUp + # When using custom queries, a CPU or Memory fallback objective is required + objectives: + - type: PodResource + podResource: + name: cpu + value: + type: Utilization + utilization: 70 + triggers: + staleRecommendationThresholdSeconds: 600 +``` + +{{% /tab %}} +{{< /tabs >}} + +### Perfiles de clúster {#cluster-profiles} + +Un `DatadogPodAutoscalerClusterProfile` es un recurso de ámbito de clúster que contiene una plantilla `DatadogPodAutoscaler`. El Cluster Agent observa los recursos `Deployment` y `StatefulSet` (y, en 7.79+, los espacios de nombres que los contienen) para la etiqueta `autoscaling.datadoghq.com/profile`, y crea un `DatadogPodAutoscaler` administrado para cada carga de trabajo coincidente. Un perfil se aplica a muchas cargas de trabajo; una carga de trabajo aún se asigna a un `DatadogPodAutoscaler`. + +Los perfiles de clúster y la etiqueta a nivel de carga de trabajo requieren Datadog Cluster Agent 7.78.0+. La activación a nivel de espacio de nombres (etiquetando un espacio de nombres para optar por cada carga de trabajo compatible dentro de él en un perfil) requiere Datadog Cluster Agent 7.79.0+. Los Cluster Agents más antiguos ignoran la etiqueta de perfil. + +#### Perfiles integrados {#built-in-profiles} + +El Cluster Agent envía tres perfiles integrados y los recrea al iniciar, por lo que no necesita comprometer ningún YAML de CRD para usarlos. Los nombres están reservados. + +| Perfil | Objetivo de CPU | Mínimo de réplicas | Perfil de comportamiento | +|---|---|---|---| +| `datadog-optimize-cost` | 85% | 1 | Cargas de trabajo sin estado, sensibles al costo. Escalado rápido hacia arriba y hacia abajo (ventanas de estabilización de 5 minutos, paso del 50% cada 2 minutos). | +| `datadog-optimize-balance` | 70% | 2 | Predeterminado para la mayoría de las cargas de trabajo sin estado. Ventanas de estabilización equilibradas de 10 minutos, escalado hacia abajo conservador (paso del 20% cada 20 minutos). | +| `datadog-optimize-performance` | 60% | 3 | Cargas de trabajo con estado o sensibles a la latencia. Escalado hacia abajo muy conservador (ventanas de estabilización de 15 minutos, paso del 10% cada 30 minutos). | + +Para activar un perfil en una sola carga de trabajo, agregue la etiqueta a la `metadata.labels` de la carga de trabajo: + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: web-app + namespace: production + labels: + autoscaling.datadoghq.com/profile: datadog-optimize-balance +spec: + # ...rest of the Deployment spec +``` + +Para activar un perfil en cada carga de trabajo soportada en un espacio de nombres, etiquete el espacio de nombres en su lugar (requiere Cluster Agent 7.79.0+): + +```yaml +apiVersion: v1 +kind: Namespace +metadata: + name: production + labels: + autoscaling.datadoghq.com/profile: datadog-optimize-balance +``` + +#### Perfiles personalizados {#custom-profiles} + +Cree un `DatadogPodAutoscalerClusterProfile` cuando ningún perfil integrado coincida con su política de escalado. Los perfiles son de ámbito de clúster, así que aplíquelos sin una bandera `--namespace` (o colóquelos en la capa a nivel de clúster de su repositorio de configuración). + +```yaml +apiVersion: datadoghq.com/v1alpha2 +kind: DatadogPodAutoscalerClusterProfile +metadata: + name: cost-optimized-strict-floor +spec: + template: + applyPolicy: + mode: Apply + scaleUp: + stabilizationWindowSeconds: 300 + rules: + - type: Percent + value: 50 + periodSeconds: 120 + scaleDown: + stabilizationWindowSeconds: 300 + rules: + - type: Percent + value: 50 + periodSeconds: 120 + constraints: + minReplicas: 1 + objectives: + - type: PodResource + podResource: + name: cpu + value: + type: Utilization + utilization: 85 +``` + +Referencie el perfil personalizado desde una carga de trabajo o espacio de nombres usando la misma etiqueta: + +```yaml +metadata: + labels: + autoscaling.datadoghq.com/profile: cost-optimized-strict-floor +``` + +El cuerpo de la plantilla acepta los mismos campos que una especificación `DatadogPodAutoscaler`, menos `targetRef` (el Cluster Agent lo completa para cada carga de trabajo coincidente). Vea las [configuraciones de ejemplo](#example-datadogpodautoscaler-configurations) anteriores para ver el rango completo de campos que puede colocar en `spec.template`. + +#### Precedencia de activación {#activation-precedence} + +Cluster Agent 7.79.0+ agrega activación a nivel de espacio de nombres, la `excluded` opción de exclusión y la regla de precedencia entre ellos. En Cluster Agent 7.78.0, solo se lee la etiqueta a nivel de carga de trabajo — las reglas que involucran espacios de nombres o el valor `excluded` no se aplican. + +- **Las etiquetas de carga de trabajo tienen precedencia sobre las etiquetas de espacio de nombres.** Si un espacio de nombres está etiquetado como `autoscaling.datadoghq.com/profile=ns-profile` y una carga de trabajo dentro de él está etiquetada como `autoscaling.datadoghq.com/profile=workload-profile`, la carga de trabajo utiliza `workload-profile`. +- **Exclúyase con `excluded`.** Establezca `autoscaling.datadoghq.com/profile: excluded` en una carga de trabajo para eximirla cuando su espacio de nombres esté etiquetado. Esto es útil para cargas de trabajo con estado o críticas en un espacio de nombres que de otro modo está incluido. + + ```yaml + apiVersion: apps/v1 + kind: StatefulSet + metadata: + name: payments-ledger + namespace: production + labels: + autoscaling.datadoghq.com/profile: excluded + ``` + +- **Los nombres de perfil desconocidos son ignorados.** Si una carga de trabajo o espacio de nombres hace referencia a un perfil que no existe, Cluster Agent no crea un `DatadogPodAutoscaler` administrado y no informa un error. La reconciliación recoge la asignación tan pronto como se crea un perfil con ese nombre. +- **La reconciliación es automática.** Agregar, cambiar o eliminar la etiqueta se propaga a un `DatadogPodAutoscaler` administrado en segundos. + +#### Tipos de carga de trabajo soportados {#supported-workload-kinds} + +La activación de perfil soporta `Deployment` y `StatefulSet`. Para otros tipos (por ejemplo, Argo `Rollout`), utilice [Ruta B: GitOps](#path-b-gitops) para crear un `DatadogPodAutoscaler` directamente. + +### Despliegue de recomendaciones manualmente {#deploy-recommendations-manually} + +Si desea las recomendaciones de Datadog sin habilitar el escalado automático, puede aplicarlas manualmente de forma puntual. Cuando configure recursos para sus implementaciones de Kubernetes, utilice los valores sugeridos en la recomendación de escalado. También puede hacer clic en {{< ui >}}Export Recommendation{{< /ui >}} para ver un comando `kubectl patch` generado. Datadog continúa actualizando la recomendación, pero el clúster solo cambia cuando la reaplica. + +## Gestione cargas de trabajo a gran escala {#manage-workloads-at-scale} + +Después de que una carga de trabajo se haya escalado automáticamente, las operaciones del día dos se gestionan a través de una combinación del recurso `DatadogPodAutoscaler` y la Datadog UI: + +- **Cambie la plantilla de escalado.** Edite la especificación `DatadogPodAutoscaler` de la carga de trabajo (objetivo de CPU, límites de réplicas, reglas de escalado hacia arriba y hacia abajo) directamente, o elija una plantilla diferente de la vista de lista de [Escalado de Cargas de Trabajo][8]. Los cambios entran en efecto en la próxima reconciliación. +- **Pause el escalado automático sin eliminar el recurso.** Establezca `applyPolicy.mode: Preview` para mantener las recomendaciones visibles en `.status` mientras evita que el controlador las aplique. Esto es útil cuando se ejecuta junto a un HPA o VPA durante la evaluación. +- **Observe el despliegue.** La vista de lista de Escalado de cargas de trabajo muestra el estado en vivo de la recomendación de cada carga de trabajo, la última acción aplicada y cualquier error de reconciliación. +- **Elimine el escalado automático de manera limpia.** Elimine el recurso `DatadogPodAutoscaler` para detener el escalado automático. Los recursos de pod existentes permanecen en sus últimos valores aplicados, y la carga de trabajo vuelve a lo que su controlador padre (Deployment, StatefulSet, etc.) especifica en el próximo despliegue. + +## Referencia {#reference} + +### Cómo se calculan las recomendaciones verticales {#how-vertical-recommendations-are-calculated} + +Datadog calcula recomendaciones de escalado vertical para CPU y memoria analizando datos históricos de uso de contenedores durante los últimos 8 días. La metodología utilizada para cada recurso depende de si la solicitud de ese recurso es igual a su límite, reflejando el concepto de [clase de Calidad de Servicio (QoS) de Kubernetes][14]. La CPU y la memoria se evalúan de manera independiente: una carga de trabajo puede utilizar la metodología Burstable para la CPU y la metodología Garantizada para la memoria, o viceversa. + +#### Recomendaciones de memoria {#memory-recommendations} + +**Burstable** (la solicitud de memoria es menor que el límite de memoria): + +| | Cómo se calcula | +|---|---| +| **Recomendación de solicitud** | Basada en el **p95** del uso de memoria durante los últimos 8 días, con un peso decreciente aplicado a muestras más antiguas para que los patrones de uso recientes sean priorizados. Se añade un **margen de seguridad del 10%**. | +| **Recomendación de límite** | Basada en el **máximo pico de uso de memoria** observado durante los últimos 8 días. Se añade un **margen de seguridad del 5%**. | + +**Guaranteed** (la solicitud de memoria es igual al límite de memoria): + +| | Cómo se calcula | +|---|---| +| **Recomendación de solicitud y límite** | Basada en el **máximo pico de uso de memoria** observado durante los últimos 8 días. Se añade un **margen de seguridad del 5%**. Si se detecta un **OOMKill**, se aplica un **aumento adicional del 20%** para ayudar a prevenir futuros eventos de falta de memoria. | + +**Nota:** El seguimiento del uso máximo de memoria captura el mayor uso de memoria registrado por cualquier contenedor que haya existido dentro de la ventana de retroceso de 8 días. Esto significa que incluso si un contenedor comenzó antes de esa ventana, su uso máximo (por ejemplo, al inicio) aún se tiene en cuenta en la recomendación. + +#### Recomendaciones de CPU {#cpu-recommendations} + +**Burstable** (la solicitud de CPU es menor que el límite de CPU): + +| | Cómo se calcula | +|---|---| +| **Recomendación de solicitud** | Basada en el **p90** del uso de CPU en relación con la solicitud actual durante los últimos 8 días, con un peso decreciente aplicado a muestras más antiguas para que los patrones de uso recientes tengan prioridad. Se añade un **margen de seguridad del 10 %**. | +| **Recomendación de límite** | Basada en el **p95** del uso de CPU en relación con la solicitud actual durante los últimos 8 días. Se añade un **margen de seguridad del 5 %**. Si la recomendación de solicitud resultante alguna vez excede la recomendación de límite, se utiliza el valor de solicitud para ambos. | + +**Guaranteed** (la solicitud de CPU es igual al límite de CPU): + +| | Cómo se calcula | +|---|---| +| **Recomendación de solicitud y límite** | Basada en el **p95** del uso de CPU en relación con la solicitud actual durante los últimos 8 días. Se añade un **margen de seguridad del 5 %**. | + +#### Principios de diseño clave {#key-design-principles} + +- **Ventana de retroceso de 8 días**: Todas las recomendaciones consideran datos de uso de los últimos 8 días, proporcionando suficiente historial para capturar patrones de tráfico semanales mientras se mantiene sensible a los cambios. +- **Pesos en decadencia**: Para recomendaciones de solicitudes de clase Burstable (CPU o memoria), las muestras más antiguas tienen un peso menor, por lo que la recomendación se adapta más rápido a los cambios recientes en el uso. +- **Márgenes de seguridad**: Cada recomendación incluye un margen por encima del uso observado (5 a 10 %) para proporcionar un colchón contra picos inesperados. +- **Respuesta OOMKill**: Cuando la memoria es de clase Guaranteed (la solicitud es igual al límite) y ocurre un OOMKill, se aplica un aumento del 20 % para reducir la probabilidad de fallos repetidos por falta de memoria. +- **Preservación de clase Guaranteed**: Cuando un recurso tiene una solicitud igual al límite, Datadog utiliza el cálculo más conservador (a nivel de límite) para ambos, asegurando que las recomendaciones no introduzcan una brecha entre la solicitud y el límite. + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/agent/remote_config +[2]: /es/agent/remote_config/?tab=configurationyamlfile#enable-remote-configuration +[3]: https://helm.sh/ +[4]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ +[5]: /es/containers/kubernetes/distributions +[6]: https://app.datadoghq.com/orchestration/scaling/summary +[7]: https://app.datadoghq.com/orchestration/scaling/cluster +[8]: https://app.datadoghq.com/orchestration/scaling/workload +[9]: /es/integrations/kubernetes_state_core/ +[10]: https://www.datadoghq.com/product-preview/kubernetes-cluster-autoscaling/ +[11]: https://app.datadoghq.com/orchestration/scaling/setup +[12]: /es/containers/guide/manage-datadogpodautoscaler-with-argocd/ +[13]: /es/containers/guide/manage-datdadogpodautoscaler-with-terraform/ +[14]: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/ \ No newline at end of file diff --git a/content/es/containers/guide/container-discovery-management.md b/content/es/containers/guide/container-discovery-management.md index cfd2c0fb1ec..053dc8e6aa4 100644 --- a/content/es/containers/guide/container-discovery-management.md +++ b/content/es/containers/guide/container-discovery-management.md @@ -4,68 +4,67 @@ aliases: - /es/agent/kubernetes/management - /es/agent/guide/autodiscovery-management - /es/containers/guide/autodiscovery-management -description: Controla qué contenedores monitoriza el Datadog Agent mediante la configuración - de reglas de detección y patrones de inclusión/exclusión. +description: Controle qué contenedores el Datadog Agent monitorea configurando reglas + de Autodiscovery y patrones de inclusión/exclusión. further_reading: - link: /containers/kubernetes/integrations/ tag: Documentación - text: Configurar integraciones con Autodiscovery en Kubernetes + text: Configure integraciones con Autodiscovery en Kubernetes. - link: /containers/docker/integrations/ tag: Documentación - text: Configurar integraciones con Autodiscovery en Docker -title: Gestión de detección de contenedores + text: Configure integraciones con Autodiscovery en Docker. +title: Gestión del Descubrimiento de Contenedores --- +Por defecto, el Datadog Agent descubre automáticamente todos los contenedores disponibles. Este documento describe cómo restringir el perímetro de descubrimiento del Datadog Agent y limitar la recolección de datos a un subconjunto de contenedores. -En forma predeterminada, el Datadog Agent detecta automáticamente todos los contenedores disponibles. En este documento se describe cómo restringir el perímetro de detección del Datadog Agent y limitar la recopilación de datos a un subconjunto de contenedores. +## Patrones de descubrimiento de contenedores {#container-discovery-patterns} -## Patrones de detección de contenedores +En un entorno de contenedores, debe desplegar el Datadog Agent una vez por servidor. Cada Datadog Agent desplegado descubre y monitorea automáticamente todos los contenedores en su respectivo servidor. Cuando se habilita la opción de registros [`containerCollectAll` opción][1], el Datadog Agent recolecta registros de todos los contenedores descubiertos. -En un entorno de contenedores, debes desplegar el Datadog Agent una vez por host. Cada Datadog Agent desplegado detecta y monitoriza en forma automática todos los contenedores en tu respectivo host. Cuando se activa la [opción `containerCollectAll`][1] de logs, el Agent recopila los logs de todos los contenedores detectados. +Puede ajustar las reglas de descubrimiento para el Datadog Agent y restringir la recolección de métricas y registros. Cualquier contenedor restringido de la recolección de métricas también está restringido para cualquier integración del Datadog Agent basada en [Autodiscovery][2]. -Puedes ajustar las reglas de detección del Agent para restringir la recopilación de métricas y logs. Cualquier contenedor que tenga restringida la recopilación de métricas también está restringido para cualquier integración del Agent basada en [Autodiscovery][2]. +Puede establecer excepciones de dos maneras: -Puedes establecer excepciones de dos maneras: +- Proporcione variables de entorno al contenedor del Datadog Agent como una lista de permitidos/bloqueados de contenedores. Recomendado si tiene una lista de nombres de contenedores, imágenes o namespaces para excluir en todo el clúster. +- Agregue anotaciones a sus pods de Kubernetes para bloquear pods o contenedores individuales. Recomendado si necesita exclusiones más precisas. -- Proporciona variables de entorno al contenedor del Datadog Agent como una lista de contenedores permitidos/bloqueados. Recomendado si tienes una lista de nombres de contenedores, imágenes o espacios de nombres que excluir para todo el clúster. -- Añade anotaciones a tus pods de Kubernetes para bloquear pods o contenedores individuales. Recomendado si necesitas exclusiones precisas. +**Nota**: Las métricas `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` y `.stopped.total` no se ven afectadas por estas configuraciones y siempre cuentan todos los contenedores. -**Nota**: Las métricas `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` y `.stopped.total` no se verán afectadas por estos ajustes y siempre contabilizan todos los contenedores. +## Coincidencia de patrones simple {#simple-pattern-matching} -## Concordancia de patrones simple - -Utiliza las variables de entorno de la tabla siguiente para configurar el filtrado de contenedores. Cada inclusión o exclusión se define como una lista de cadenas de expresiones regulares separadas por espacios. Puedes incluir o excluir contenedores en función de su: +Utilice las variables de entorno en la tabla a continuación para configurar el filtrado de contenedores. Cada inclusión o exclusión se define como una lista de cadenas regex separadas por espacios. Puede incluir o excluir contenedores según su: - nombre del contenedor (`name`) - nombre de la imagen del contenedor (`image`) -- Espacio de nombres (`kube_namespace`) de Kubernetes +- espacio de nombres de Kubernetes (`kube_namespace`)
    -El parámetro `name` solo se aplica a los nombres de contenedor, no a los nombres de pod, aunque el contenedor se ejecute en un pod de Kubernetes. +El parámetro `name` solo se aplica a los nombres de contenedores, no a los nombres de pods, incluso si el contenedor se ejecuta en un pod de Kubernetes.
    -### Variables de entorno +### Variables de entorno {#environment-variables} -En el **Agent v7.20 o posterior**, utiliza las siguientes variables de entorno para excluir contenedores por nombre de imagen, nombre de contenedor o espacio de nombres de Kubernetes. Los logs y las métricas no se recopilan de los contenedores excluidos. +En **Datadog Agent v7.20+**, utilice las siguientes variables de entorno para excluir contenedores por nombre de imagen, nombre de contenedor o espacio de nombres de Kubernetes. No se recopilan registros ni métricas de los contenedores excluidos. | Variable de entorno | Descripción | | ------------------------------ | --------------------------------------------------- | -| `DD_CONTAINER_EXCLUDE` | Lista de contenedores a excluir. | -| `DD_CONTAINER_EXCLUDE_METRICS` | Lista de contenedores cuyas métricas están excluidas. | -| `DD_CONTAINER_EXCLUDE_LOGS` | Lista de contenedores cuyos logs están excluidos. | -| `DD_CONTAINER_INCLUDE` | Lista de contenedores a incluir. | -| `DD_CONTAINER_INCLUDE_METRICS` | Lista de contenedores cuyas métricas están incluidas. | -| `DD_CONTAINER_INCLUDE_LOGS` | Lista de contenedores cuyos logs están incluidos. | +| `DD_CONTAINER_EXCLUDE` | Lista de bloqueo de contenedores a excluir. | +| `DD_CONTAINER_EXCLUDE_METRICS` | Lista de bloqueo de contenedores cuyas métricas están excluidas. | +| `DD_CONTAINER_EXCLUDE_LOGS` | Lista de bloqueo de contenedores cuyos registros están excluidos. | +| `DD_CONTAINER_INCLUDE` | Lista de permitidos de contenedores a incluir. | +| `DD_CONTAINER_INCLUDE_METRICS` | Lista de permitidos de contenedores cuyas métricas están incluidas. | +| `DD_CONTAINER_INCLUDE_LOGS` | Lista de permitidos de contenedores cuyos registros están incluidos. | -{{% collapse-content title="Setting environment variables" level="h4" expanded=false id="setting-environment-variables" %}} +{{% collapse-content title="Configuración de variables de entorno" level="h4" expanded=false id="setting-environment-variables" %}} {{< tabs >}} {{% tab "Datadog Operator" %}} -En Datadog Operator, configura estas variables de entorno en `spec.override.nodeAgent.env`. +En el Datadog Operator, configure estas variables de entorno bajo `spec.override.nodeAgent.env`. -##### Ejemplo +##### Ejemplo {#example} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -86,7 +85,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -En su gráfico de Helm, suministre una cadena separada por espacios a uno o más de los siguientes: +En su gráfico de Helm, proporcione una cadena separada por espacios a uno o más de los siguientes: - `datadog.containerExclude` - `datadog.containerInclude` - `datadog.containerExcludeLogs` @@ -94,7 +93,7 @@ En su gráfico de Helm, suministre una cadena separada por espacios a uno o más - `datadog.containerExcludeMetrics` - `datadog.containerIncludeMetrics` -##### Ejemplo +##### Ejemplo {#example-1} ```yaml datadog: @@ -103,17 +102,17 @@ datadog: ``` {{% /tab %}} -{{% tab "Agent en contenedores" %}} +{{% tab "Agente en contenedor" %}} -En entornos en los que no se utiliza Datadog Operator ni Helm, se pueden pasar las siguientes variables de entorno al contenedor del Agent al inicio. +En entornos en los que no utiliza el Datadog Operator o Helm, las siguientes variables de entorno pueden pasarse al contenedor del Datadog Agent al inicio. -##### Ejemplo de Docker +##### Ejemplo de Docker {#example-docker} ```shell docker run -e DD_CONTAINER_EXCLUDE=image: ... ``` -##### Ejemplo de ECS +##### Ejemplo de ECS {#example-ecs} ```json "environment": [ @@ -132,11 +131,11 @@ docker run -e DD_CONTAINER_EXCLUDE=image: ...
    -Los filtros de nombre de imagen (`image`) coinciden en todos los nombres completos de la imagen, incluido el registro y la tag (etiqueta) o resumen de la imagen (por ejemplo, `dockerhub.io/NGINX:1.13.1`). +Los filtros de nombre de imagen (`image`) se aplican a todo el nombre de la imagen, incluyendo el registro y la etiqueta o digest de la imagen (por ejemplo, `dockerhub.io/nginx:1.13.1`).
    -#### Ejemplos +#### Ejemplos {#examples} Para excluir el contenedor con el nombre `dd-agent`: @@ -144,13 +143,13 @@ Para excluir el contenedor con el nombre `dd-agent`: DD_CONTAINER_EXCLUDE = "name:^dd-agent$" ``` -Para excluir los contenedores que utilizan la imagen `dockercloud/network-daemon`, incluidas todas las tags (etiquetas) y los resúmenes: +Para excluir contenedores que utilizan la imagen `dockercloud/network-daemon`, incluyendo todas las etiquetas y digests: ``` DD_CONTAINER_EXCLUDE = "image:^dockercloud/network-daemon(@sha256)?:.* ``` -Para excluir contenedores mediante la imagen `dockercloud/network-daemon:1.13.0`: +Para excluir contenedores que utilizan la imagen `dockercloud/network-daemon:1.13.0`: ``` DD_CONTAINER_EXCLUDE = "image:^dockercloud/network-daemon:1.13.0$" @@ -162,7 +161,7 @@ Para excluir cualquier contenedor cuya imagen contenga la palabra `agent`: DD_CONTAINER_EXCLUDE = "image:agent" ``` -Para excluir cualquier contenedor que utilice la imagen `foo` independientemente del registro: +Para excluir cualquier contenedor que utilice la imagen `foo` sin importar el registro: ``` DD_CONTAINER_EXCLUDE = "image:^.*/foo(@sha256)?:.*" @@ -174,27 +173,27 @@ Para excluir todos los contenedores: DD_CONTAINER_EXCLUDE = "name:.*" ``` -También puedes utilizar `image:.*` o `kube_namespace:.*`. La configuración de `.*` sin un prefijo `name:`, `image:` o `kube_namespace:` no funciona. +Alternativamente, también puede usar `image:.*` o `kube_namespace:.*`. Configurar `.*` sin un prefijo `name:`, `image:` o `kube_namespace:` no funciona. -### Comportamiento de inclusión y exclusión +### Comportamiento de inclusión y exclusión {#inclusion-and-exclusion-behavior} -En general, la inclusión tiene prioridad sobre la exclusión. Por ejemplo, para sólo monitorizar las imágenes `ubuntu` o `debian`, primero excluye todas las demás imágenes y luego especifique qué imágenes incluir: +Generalmente, la inclusión tiene prioridad sobre la exclusión. Por ejemplo, para monitorear solo imágenes `ubuntu` o `debian`, primero excluya todas las demás imágenes y luego especifique cuáles imágenes incluir: ``` DD_CONTAINER_EXCLUDE = "image:.*" DD_CONTAINER_INCLUDE = "image:^docker.io/library/ubuntu(@sha256)?:.* image:^docker.io/library/debian(@sha256)?:.*" ``` -La única excepción a esta regla son las anotaciones de exclusión de pods como `ad.datadoghq.com/exclude`. Cuando una aplicación tiene una anotación de exclusión configurada en `true`, esta tiene prioridad y el contenedor queda excluido de ser autodetectado para su monitorización. Por ejemplo, tener una condición que incluya cada contenedor como `DD_CONTAINER_INCLUDE = "image:.*"` no garantiza que un contenedor sea incluido si tiene una anotación de exclusión establecida en él. Consulta [Gestión de detección de contenedores - configuración de exclusión de pods](#pod-exclude-configuration) para obtener más información. +La única excepción a esta regla son las anotaciones de exclusión de pod como `ad.datadoghq.com/exclude`. Cuando una aplicación tiene una anotación de exclusión establecida en `true`, esto tiene prioridad, y el contenedor es excluido de ser autodetectado para monitoreo. Por ejemplo, tener una condición que incluya todos los contenedores como `DD_CONTAINER_INCLUDE = "image:.*"` no garantiza que un contenedor esté incluido si tiene una anotación de exclusión establecida en él. Consulte [Gestión de Descubrimiento de Contenedores - Configuración de exclusión de Pod](#pod-exclude-configuration) para más información. -No puedes mezclar reglas de inclusión/exclusión entre categorías. Por ejemplo, si quieres incluir un contenedor con el nombre de imagen `foo` y excluir solo las métricas de un contenedor con el nombre de imagen `bar`, lo siguiente **no es suficiente**: +No puede mezclar reglas de inclusión/exclusión entre categorías. Por ejemplo, si desea incluir un contenedor con el nombre de imagen `foo` y excluir solo las métricas de un contenedor con el nombre de imagen `bar`, lo siguiente es **no suficiente**: ``` DD_CONTAINER_EXCLUDE_METRICS = "image:^docker.io/library/bar(@sha256)?:.*" DD_CONTAINER_INCLUDE = "image:^docker.io/library/foo(@sha256)?:.*" ``` -Será mejor que utilices lo siguiente: +En su lugar, usa: ``` DD_CONTAINER_EXCLUDE_METRICS = "image:^docker.io/library/bar(@sha256)?:.*" @@ -202,20 +201,20 @@ DD_CONTAINER_INCLUDE_METRICS = "image:^docker.io/library/foo(@sha256)?:.*" DD_CONTAINER_INCLUDE_LOGS = "image:^docker.io/library/foo(@sha256)?:.*" ``` -No existe una interacción entre las listas globales y las listas selectivas (logs y métricas). En otras palabras, no se puede excluir un contenedor globalmente (`DD_CONTAINER_EXCLUDE`) y luego incluirlo con `DD_CONTAINER_INCLUDE_LOGS` y `DD_CONTAINER_INCLUDE_METRICS`. +No hay interacción entre las listas globales y las listas selectivas (registros y métricas). En otras palabras, no puedes excluir un contenedor globalmente (`DD_CONTAINER_EXCLUDE`) y luego incluirlo con `DD_CONTAINER_INCLUDE_LOGS` y `DD_CONTAINER_INCLUDE_METRICS`. -### Contenedores pausados +### Pausar contenedores {#pause-containers} -El Datadog Agent excluye los contenedores de Kubernetes y OpenShift pausados en forma predeterminada. Esto impide la recopilación de sus métricas y su recuento como contenedores facturables. De todas maneras, se siguen contabilizando en las métricas de count de contenedores como `kubernetes.containers.running` y `docker.containers.running`. +El Agente de Datadog excluye los contenedores de pausa de Kubernetes y OpenShift por defecto. Esto impide su recolección de métricas y que se cuenten como contenedores facturables. Aún se cuentan en las métricas de conteo de contenedores como `kubernetes.containers.running` y `docker.containers.running`. -Para desactivar este comportamiento e incluir la monitorización de los contenedores pausados: +Para deshabilitar este comportamiento e incluir la monitorización de los contenedores de pausa: {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} -En el Datadog Operator, configura estas variables de entorno como `spec.override.nodeAgent.env`. +En Datadog Operator, establece estas variables de entorno bajo `spec.override.nodeAgent.env`. -##### Ejemplo +##### Ejemplo {#example-2} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -236,9 +235,9 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -En tu gráfico de Helm, establece `datadog.excludePauseContainer` como `true` o `false`. +En su chart de Helm, establezca `datadog.excludePauseContainer` en `true` o `false`. -##### Ejemplo +##### Ejemplo {#example-3} ```yaml datadog: @@ -248,39 +247,39 @@ datadog: ``` {{% /tab %}} -{{% tab "Agent en contenedores" %}} +{{% tab "Agente en contenedor" %}} -En los entornos en los que no utilizas Helm o el Operator, puedes transferir las siguientes variables de entorno al contenedor del Agent en el inicio. +En entornos en los que no utiliza Helm o el Datadog Operator, las siguientes variables de entorno pueden pasarse al contenedor del Datadog Agent al inicio. -Establece `DD_EXCLUDE_PAUSE_CONTAINER` como `false`. +Establezca `DD_EXCLUDE_PAUSE_CONTAINER` en `false`. {{% /tab %}} {{< /tabs >}} -## Exclusión anticipada del CEL +## Exclusión CEL avanzada {#advanced-cel-exclusion} -En el **Agent v7.73+**, puedes utilizar la opción de configuración `cel_workload_exclude` para filtrar contenedores de Autodiscovery. Esta función te permite definir reglas [Common Expression Langauge][3] para seleccionar contenedores que deben excluirse de la recopilación de telemetría. +En **Datadog Agent v7.73+**, puede usar la opción de configuración `cel_workload_exclude` para filtrar contenedores de Autodiscovery. Esta función le permite definir reglas de [Common Expression Language][3] para identificar contenedores que deben ser excluidos de la recolección de telemetría. -Utiliza los siguientes atributos para representar el objeto de contenedor en tus reglas de filtrado: +Utilice los siguientes atributos para representar el objeto contenedor en sus reglas de filtrado: | Atributo | Descripción | |-----------------------------|-------------------------------------------------------------------------| | `container.name` | El nombre del contenedor. | -| `container.image.reference` | La referencia completa de la imagen del contenedor (registro, repositorio, tag/resumen). | +| `container.image.reference` | La referencia completa de la imagen del contenedor (registro, repositorio, etiqueta/digest). | | `container.pod.name` | El nombre del pod que ejecuta el contenedor. | | `container.pod.namespace` | El espacio de nombres de Kubernetes del pod. | -| `container.pod.annotations` | Las anotaciones aplicadas al pod (mapa clave-valor). | +| `container.pod.annotations` | Las anotaciones aplicadas al pod (mapa de clave-valor). | -### Estructura de la configuración +### Estructura de configuración {#configuration-structure} -La opción de configuración `cel_workload_exclude` se estructura como una lista de conjuntos de reglas evaluadas como OR lógicos, donde un contenedor se excluye si coincide con alguna regla. Cada conjunto de reglas define los `products` que deben excluirse y el CEL correspondiente `rules` que debe coincidir con los contenedores. +La opción de configuración `cel_workload_exclude` está estructurada como una lista de conjuntos de reglas evaluadas como OR lógicos, donde un contenedor es excluido si coincide con alguna regla. Cada conjunto de reglas define el `products` a excluir y el correspondiente CEL `rules` para coincidir con los contenedores. -El campo `products` acepta `metrics`, `logs` y `global` (excluye el contenedor de todos los productos de la lista). +El campo `products` acepta `metrics`, `logs` y `global` (excluir contenedor de todos los productos listados).
    -Si la configuración contiene errores estructurales o problemas de sintaxis de CEL, el Agent sale con un error para evitar la recopilación de telemetría no deseada que podría afectar a la facturación. +Si la configuración contiene errores estructurales o problemas de sintaxis CEL, el Datadog Agent sale con un error para evitar la recopilación de telemetría no intencionada que podría afectar la facturación.
    -En el siguiente ejemplo, las métricas y los logs se excluyen para cualquier contenedor con `NGINX` en su nombre que se ejecute en el espacio de nombres `staging`. Además, se excluyen los logs de cualquier contenedor que ejecute la imagen `redis` O cualquier contenedor dentro de un pod que tenga la anotación `low_priority: "true"`. El [archivo de configuración del Agent][4] se puede actualizar directamente como se ve en este ejemplo. +En el ejemplo a continuación, se excluyen métricas y registros para cualquier contenedor con `nginx` en su nombre que se ejecute en el espacio de nombres `staging`. Además, se excluyen registros para cualquier contenedor que ejecute la imagen `redis`, o cualquier contenedor dentro de un pod que tenga la anotación `low_priority: "true"`. El [archivo de configuración del Agent][4] se puede actualizar directamente como se ve en este ejemplo. ```yaml # datadog.yaml @@ -296,18 +295,18 @@ cel_workload_exclude: - container.pod.annotations["low_priority"] == "true" ``` -También puedes configurar la exclusión de cargas de trabajo respaldada por CEL utilizando uno de los siguientes métodos: -- Configura la variable de entorno `DD_CEL_WORKLOAD_EXCLUDE` con una cadena con formato JSON que contenga tus reglas, en cualquier configuración del Agent en contenedores. -- Para Datadog Operator o Helm Chart, añade tus reglas de CEL a la opción de configuración correspondiente (como se muestra en los ejemplos siguientes). +También puede configurar la exclusión de carga de trabajo respaldada por CEL utilizando uno de los siguientes métodos: +- Establezca la variable de entorno `DD_CEL_WORKLOAD_EXCLUDE` con una cadena en formato JSON que contenga sus reglas, en cualquier configuración de Agent en contenedores. +- Para el Operador de Datadog o Helm Chart, agregue sus reglas CEL a la opción de configuración apropiada (como se muestra en los ejemplos a continuación). -{{% collapse-content title="Configuring CEL exclusion rules" level="h4" expanded=false id="setting-environment-variables" %}} +{{% collapse-content title="Configurando reglas de exclusión CEL" level="h4" expanded=false id="setting-environment-variables" %}} {{< tabs >}} {{% tab "Datadog Operator" %}} -En Datadog Operator (>=v1.23.0), utiliza las opciones `spec.override.nodeAgent.celWorkloadExclude` y `spec.override.clusterAgent.celWorkloadExclude`. +En Datadog Operator (>=v1.23.0), utilice las opciones `spec.override.nodeAgent.celWorkloadExclude` y `spec.override.clusterAgent.celWorkloadExclude`. -##### Ejemplo +##### Ejemplo {#example-4} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -336,9 +335,9 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -En tu gráfico de Helm, utiliza la opción de configuración `datadog.celWorkloadExclude`. +En su gráfico de Helm, utilice la opción de configuración `datadog.celWorkloadExclude`. -##### Ejemplo +##### Ejemplo {#example-5} ```yaml datadog: @@ -350,17 +349,17 @@ datadog: ``` {{% /tab %}} -{{% tab "Agent en contenedores" %}} +{{% tab "Agente en contenedor" %}} -En los entornos en los que no utilizas Helm o el Operator, puedes transferir las siguientes variables de entorno al contenedor del Agent en el inicio. +En entornos donde no esté utilizando Helm o el Operator, las siguientes variables de entorno pueden pasarse al contenedor del Agent al inicio. -##### Ejemplo de Docker +##### Ejemplo de Docker {#example-docker-1} ```shell docker run -e DD_CEL_WORKLOAD_EXCLUDE= ... ``` -##### Ejemplo de ECS +##### Ejemplo de ECS {#example-ecs-1} ```json "environment": [ @@ -377,9 +376,9 @@ docker run -e DD_CEL_WORKLOAD_EXCLUDE= ... {{% /collapse-content %}} -{{% collapse-content title="Validating configuration option" level="h4" expanded=false id="validating-configuration-option" %}} +{{% collapse-content title="Validando la opción de configuración" level="h4" expanded=false id="validating-configuration-option" %}} -Utiliza el comando `agent workloadfilter verify-cel` para validar la sintaxis de tu configuración antes del despliegue. Acepta entradas de YAML o JSON a través de stdin. El siguiente ejemplo muestra cómo la validación detecta un error de campo no definido: +Utilice el comando `agent workloadfilter verify-cel` para validar la sintaxis de su configuración antes de la implementación. Acepta entrada en YAML o JSON a través de stdin. El siguiente ejemplo demuestra la validación que captura un error de campo indefinido: ```json ### cel-config.json @@ -424,7 +423,7 @@ Error: CEL compilation failed {{% /collapse-content %}} -#### Ejemplos de normas +#### Reglas de ejemplo {#example-rules} Para excluir el contenedor con una anotación de pod específica: @@ -438,48 +437,54 @@ Para excluir el contenedor en espacios de nombres sin la subcadena `-dev`: !container.pod.namespace.matches("-dev") ``` -Para excluir el contenedor con el nombre `NGINX-server` solo en el espacio de nombres `prod`: +Para excluir el contenedor con el nombre `nginx-server` solo en el espacio de nombres `prod`: ```yaml container.name == "nginx-server" && container.pod.namespace == "prod" ``` -Para excluir el contenedor que ejecuta una imagen con la subcadena `NGINX`: +Para excluir el contenedor que ejecuta una imagen con la subcadena `nginx`: ```yaml container.image.reference.matches("nginx") ``` -Para excluir el contenedor utilizando la lógica agrupada (por ejemplo, un nombre de contenedor específico en cualquiera de los dos espacios de nombres): +Para excluir el contenedor utilizando lógica agrupada (por ejemplo, un nombre de contenedor específico en cualquiera de dos espacios de nombres): ```yaml container.name == "redis" && (container.pod.namespace == "production" || container.pod.namespace == "staging") ``` -Para excluir contenedores en función del nombre del propietario del pod (por ejemplo, dirigirse a todos los contenedores creados por un Deployment o CronJob llamado `my-app`): +Para excluir contenedores basados en el nombre del propietario de su pod (por ejemplo, apuntando a todos los contenedores creados por un Deployment o CronJob llamado `my-app`): ```yaml container.pod.name.startsWith("my-app") ``` -## Configuración de exclusión de pods +Para **incluir únicamente** contenedores en un conjunto particular de namespaces: + +```yaml +!(container.pod.namespace in ["foo", "bar", "baz"]) +``` + +## Configuración de exclusión de pod {#pod-exclude-configuration} -En el **Agent v7.45 o posterior** puedes incluir anotaciones en tus pods de Kubernetes para controlar Autodiscovery. Configura las siguientes anotaciones con el valor `"true"` para añadir reglas de exclusión. +En **Agent v7.45+** puede establecer anotaciones en sus pods de Kubernetes para controlar Autodiscovery. Establezca las siguientes anotaciones con el valor `"true"` para agregar reglas de exclusión. | Anotación | Descripción | | --------------------------------------------------- | -------------------------------------------------------------------------------- | | `ad.datadoghq.com/exclude` | Excluye todo el pod | -| `ad.datadoghq.com/logs_exclude` | Excluye la recopilación de logs de todo el pod | -| `ad.datadoghq.com/metrics_exclude` | Excluye la recopilación de métricas de todo el pod | -| `ad.datadoghq.com/.exclude` | Excluye el contenedor con `` en el pod | -| `ad.datadoghq.com/.logs_exclude` | Excluye la recopilación de logs del contenedor con `` en el pod | -| `ad.datadoghq.com/.metrics_exclude` | Excluye la recopilación de métricas del contenedor con `` en el pod | +| `ad.datadoghq.com/logs_exclude` | Excluye la recolección de registros de todo el pod | +| `ad.datadoghq.com/metrics_exclude` | Excluye la recolección de métricas de todo el pod | +| `ad.datadoghq.com/.exclude` | Excluye el contenedor con `` en el pod | +| `ad.datadoghq.com/.logs_exclude` | Excluye la recolección de registros del contenedor con `` en el pod | +| `ad.datadoghq.com/.metrics_exclude` | Excluye la recolección de métricas del contenedor con `` en el pod | -La anotación `ad.datadoghq.com/exclude` configurada en el pod de aplicación tiene la máxima prioridad. Esto significa que incluso si un contenedor coincide con la inclusión a través de `DD_CONTAINER_INCLUDE`, el Agent sigue ignorando la monitorización para ese contenedor. Lo mismo se aplica para las respectivas configuraciones de filtrado específicas para métricas y logs. +La anotación `ad.datadoghq.com/exclude` establecida en el pod de la aplicación tiene la máxima prioridad. Esto significa que incluso si un contenedor coincide con la inclusión a través de `DD_CONTAINER_INCLUDE`, el Agent aún ignora la supervisión de ese contenedor. Lo mismo se aplica a las configuraciones de filtrado específicas para métricas y registros. -Cuando se aplican exclusiones basadas en anotaciones, el Agent check todas las anotaciones de exclusión relevantes en el contenedor. Por ejemplo, al configurar logs para un contenedor NGINX, el Agent buscará anotaciones `ad.datadoghq.com/exclude`, `ad.datadoghq.com/logs_exclude`, `ad.datadoghq.com/NGINX.exclude` o `ad.datadoghq.com/NGINX.logs_exclude` para ser `true` en el pod. Lo mismo se aplica a las métricas. +Al aplicar exclusiones basadas en anotaciones, el Agent verifica todas las anotaciones de exclusión relevantes en el contenedor. Por ejemplo, al configurar registros para un contenedor NGINX, el Agent buscará las anotaciones `ad.datadoghq.com/exclude`, `ad.datadoghq.com/logs_exclude`, `ad.datadoghq.com/nginx.exclude` o `ad.datadoghq.com/nginx.logs_exclude` que estén `true` en el pod. Lo mismo se aplica a las métricas. -#### Excluir todo el pod +#### Excluye todo el pod {#exclude-the-entire-pod} ```yaml apiVersion: apps/v1 @@ -496,7 +501,7 @@ spec: #(...) ``` -#### Excluir la recopilación de logs de un contenedor +#### Excluye la recolección de registros de un contenedor {#exclude-log-collection-from-a-container} ```yaml apiVersion: apps/v1 @@ -516,9 +521,9 @@ spec: #(...) ``` -### Tolerar pods no listos +### Tolerar pods no listos {#tolerate-unready-pods} -Por defecto, los pods `unready` se ignoran cuando el Datadog Agent programa checks. Por lo tanto, las métricas, los checks de servicios y los logs no se recopilan de estos pods. Para anular este comportamiento, configura la anotación `ad.datadoghq.com/tolerate-unready` como `"true"`. Por ejemplo: +Por defecto, `unready` los pods son ignorados cuando el Datadog Agent programa verificaciones. Por lo tanto, no se recopilan métricas, verificaciones de servicio ni registros de estos pods. Para anular este comportamiento, establezca la anotación `ad.datadoghq.com/tolerate-unready` en `"true"`. Por ejemplo: ```yaml apiVersion: v1 @@ -531,17 +536,17 @@ metadata: ... ``` -## Configuración de seguridad +## Configuración de seguridad {#security-configuration} -En el **Agent v7.70+**, puedes restringir la monitorización de la seguridad para contenedores específicos, de modo que solo se te facturen los contenedores que desees que se monitoricen. Esta funcionalidad no es compatible con Datadog Operator. +En **Agent v7.70+**, puede restringir la supervisión de seguridad para contenedores específicos, de modo que solo se le cobre por los contenedores que desea tener supervisados. Esta funcionalidad no es compatible con el Datadog Operator. {{< tabs >}} {{% tab "Helm" %}} -| Función | Incluir contenedor | Excluir contenedor | +| Funcionalidad | Incluir contenedor | Excluir contenedor | |---------------------------------------|-----------------------------------------------------|-----------------------------------------------------| -| [Errores de configuración de Cloud Security][1] | `datadog.securityAgent.compliance.containerInclude` | `datadog.securityAgent.compliance.containerExclude` | -| [Vulnerabilidades de Cloud Security][2] | `datadog.sbom.containerImage.containerInclude` | `datadog.sbom.containerImage.containerExclude` | +| [Cloud Security Misconfigurations][1] | `datadog.securityAgent.compliance.containerInclude` | `datadog.securityAgent.compliance.containerExclude` | +| [Cloud Security Vulnerabilities][2] | `datadog.sbom.containerImage.containerInclude` | `datadog.sbom.containerImage.containerExclude` | | [Workload Protection][3] | `datadog.securityAgent.runtime.containerInclude` | `datadog.securityAgent.runtime.containerExclude` | [1]: /es/security/cloud_security_management/misconfigurations/ @@ -549,7 +554,7 @@ En el **Agent v7.70+**, puedes restringir la monitorización de la seguridad par [3]: /es/security/workload_protection/ {{% /tab %}} {{% tab "Archivo de configuración" %}} -Para [Vulnerabilidades de Cloud Security][1], puedes utilizar el siguiente formato en tu archivo de configuración para incluir o excluir contenedores: +Para [Cloud Security Vulnerabilities][1], puede usar el siguiente formato en su archivo de configuración para incluir o excluir contenedores: ``` --- @@ -560,13 +565,13 @@ sbom: ``` [1]: /es/security/cloud_security_management/vulnerabilities {{% /tab %}} -{{% tab "Agent en contenedores" %}} -En entornos donde no se utiliza Helm ni el Operator, las siguientes variables de entorno pueden pasarse al contenedor del Agent al inicio. +{{% tab "Agente en contenedor" %}} +En entornos donde no esté utilizando Helm o el Operator, las siguientes variables de entorno pueden pasarse al contenedor del Agent al inicio. -| Función | Incluir contenedor | Excluir contenedor | +| Funcionalidad | Incluir contenedor | Excluir contenedor | |---------------------------------------|------------------------------------------------|------------------------------------------------| -| [Errores de configuración de Cloud Security][1] | `DD_COMPLIANCE_CONFIG_CONTAINER_INCLUDE` | `DD_COMPLIANCE_CONFIG_CONTAINER_EXCLUDE` | -| [Vulnerabilidades de Cloud Security][2] | `DD_SBOM_CONTAINER_IMAGE_CONTAINER_INCLUDE` | `DD_SBOM_CONTAINER_IMAGE_CONTAINER_EXCLUDE` | +| [Cloud Security Misconfigurations][1] | `DD_COMPLIANCE_CONFIG_CONTAINER_INCLUDE` | `DD_COMPLIANCE_CONFIG_CONTAINER_EXCLUDE` | +| [Cloud Security Vulnerabilities][2] | `DD_SBOM_CONTAINER_IMAGE_CONTAINER_INCLUDE` | `DD_SBOM_CONTAINER_IMAGE_CONTAINER_EXCLUDE` | | [Workload Protection][3] | `DD_RUNTIME_SECURITY_CONFIG_CONTAINER_INCLUDE` | `DD_RUNTIME_SECURITY_CONFIG_CONTAINER_EXCLUDE` | [1]: /es/security/cloud_security_management/misconfigurations/ @@ -575,7 +580,7 @@ En entornos donde no se utiliza Helm ni el Operator, las siguientes variables de {{% /tab %}} {{< /tabs >}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/es/containers/kubernetes/configuration.md b/content/es/containers/kubernetes/configuration.md index a68c2248e54..dc75fe4b2e8 100644 --- a/content/es/containers/kubernetes/configuration.md +++ b/content/es/containers/kubernetes/configuration.md @@ -3,45 +3,44 @@ aliases: - /es/integrations/faq/gathering-kubernetes-events - /es/agent/kubernetes/event_collection - /es/agent/kubernetes/configuration -description: Opciones de configuración adicionales para APM, logs, procesos, eventos - y otras funciones después de instalar el Datadog Agent -title: Configurar mejor el Datadog Agent en Kubernetes +description: Opciones de configuración adicionales para APM, registros, procesos, + eventos y otras capacidades después de instalar el Agente de Datadog +title: Configurar aún más el Agente de Datadog en Kubernetes --- +## Descripción general {#overview} -## Información general +Después de haber instalado el Agente de Datadog en su entorno de Kubernetes, puede elegir opciones de configuración adicionales. -Después de haber instalado el Datadog Agent en tu entorno de Kubernetes, puedes elegir opciones de configuración adicionales. - -### Habilita a Datadog para recopilar: -- [Trazas (traces) (APM)](#enable-apm-and-tracing) +### Habilitar a Datadog para recopilar: {#enable-datadog-to-collect} +- [Trazas (APM)](#enable-apm-and-tracing) - [Eventos de Kubernetes](#enable-kubernetes-event-collection) - [CNM](#enable-cnm-collection) -- [Logs](#enable-log-collection) +- [Registros](#enable-log-collection) - [Procesos](#enable-process-collection) -### Otras capacidades -- [Datadog Cluster Agent](#datadog-cluster-agent) +### Otras capacidades {#other-capabilities} +- [Agente de Clúster de Datadog](#datadog-cluster-agent) - [Integraciones](#integrations) - [Vista de contenedores](#containers-view) -- [Orchestrator Explorer](#orchestrator-explorer) +- [Explorador de Orquestador](#orchestrator-explorer) - [Servidor de métricas externas](#custom-metrics-server) -### Más configuraciones +### Más configuraciones {#more-configurations} - [Variables de entorno](#environment-variables) -- [Métricas personalizadas de DogStatsD](#configure-dogstatsd) -- [Asignación de etiqueta (tag)](#configure-tag-mapping) +- [DogStatsD para métricas personalizadas](#configure-dogstatsd) +- [Mapeo de etiquetas](#configure-tag-mapping) - [Secretos](#using-secret-files) - [Ignorar contenedores](#ignore-containers) -- [Tiempo de ejecución del servidor de la API de Kubernetes](#kubernetes-api-server-timeout) -- [Configuración del proxy](#proxy-settings) -- [Autodiscovery](#Autodiscovery) -- [Definir nombre de clúster](#set-cluster-name) -- [Miscelánea](#miscellaneous) +- [Tiempo de espera del servidor API de Kubernetes](#kubernetes-api-server-timeout) +- [Configuraciones de proxy](#proxy-settings) +- [Autodiscovery](#autodiscovery) +- [Establecer nombre del clúster](#set-cluster-name) +- [Varios](#miscellaneous) -## Activar APM y rastreo +## Habilitar APM y trazado {#enable-apm-and-tracing} {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} Edita tu `datadog-agent.yaml` para establecer `features.apm.enabled` en `true`. @@ -65,9 +64,9 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -En Helm, APM está **habilitado por defecto** sobre la canalización de UDS o Windows. +En Helm, APM está **habilitado por defecto** sobre UDS o tubería con nombre de Windows. -Para comprobarlo, asegúrate de que `datadog.apm.socketEnabled` está configurado como `true` en tu `values.yaml`. +Para verificar, asegúrate de que `datadog.apm.socketEnabled` esté establecido en `true` en tu `values.yaml`. ```yaml datadog: @@ -78,16 +77,16 @@ datadog: {{% /tab %}} {{< /tabs >}} -Para obtener más información, consulta [Recopilación de trazas de Kubernetes][16]. +Para más información, consulta [Colección de trazas de Kubernetes][16]. -## Activar la recopilación de eventos de Kubernetes +## Habilitar colección de eventos de Kubernetes {#enable-kubernetes-event-collection} -Utiliza el [Datadog Cluster Agent][2] para recopilar eventos de Kubernetes. +Usa el [Agente de Clúster de Datadog][2] para recopilar eventos de Kubernetes. {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} -La recopilación de eventos está activada por defecto por el Datadog Operator. Esto se puede gestionar en la configuración `features.eventCollection.collectKubernetesEvents` en tu `datadog-agent.yaml`. +La colección de eventos está habilitada por defecto por el Operador de Datadog. Esto se puede gestionar en la configuración `features.eventCollection.collectKubernetesEvents` en tu `datadog-agent.yaml`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -108,7 +107,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -Para recopilar eventos de Kubernetes con el Datadog Cluster Agent, asegúrate de que las opciones `clusterAgent.enabled`, `datadog.collectEvents` y `clusterAgent.rbac.create` están configuradas como `true` en tu archivo `datadog-values.yaml`. +Para recopilar eventos de Kubernetes con el Agente de Clúster de Datadog, asegúrate de que las opciones `clusterAgent.enabled`, `datadog.collectEvents` y `clusterAgent.rbac.create` estén establecidas en `true` en tu archivo `datadog-values.yaml`. ```yaml datadog: @@ -119,7 +118,7 @@ clusterAgent: create: true ``` -Si no deseas utilizar la opción de Cluster Agent, puedes hacer que un Node Agent recopila eventos de Kubernetes configurando las opciones `datadog.leaderElection`, `datadog.collectEvents` y `agents.rbac.create` como `true` en tu archivo `datadog-values.yaml`. +Si no deseas usar el Agente de Clúster, aún puedes tener un Agente de Nodo que recopile eventos de Kubernetes estableciendo las opciones `datadog.leaderElection`, `datadog.collectEvents` y `agents.rbac.create` en `true` en tu archivo `datadog-values.yaml`. ```yaml datadog: @@ -135,14 +134,14 @@ agents: {{% /tab %}} {{< /tabs >}} -Para la configuración de DaemonSet, consulta [Recopilación de eventos de Cluster Agent en DaemonSet][14]. +Para la configuración de DaemonSet, consulte [Recopilación de eventos del Cluster Agent de DaemonSet][14]. -## Activar la recopilación de CNM +## Habilitar la colección de CNM {#enable-cnm-collection} {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} -En tu `datadog-agent.yaml`, define `features.npm.enabled` como `true`. +En su `datadog-agent.yaml`, configure `features.npm.enabled` a `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -159,7 +158,7 @@ spec: enabled: true ``` -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml @@ -168,7 +167,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Actualiza tu `datadog-values.yaml` con la siguiente configuración: +Actualice su `datadog-values.yaml` con la siguiente configuración: ```yaml datadog: @@ -177,7 +176,7 @@ datadog: enabled: true ``` -A continuación, actualiza tu tabla de Helm: +Luego actualice su gráfico de Helm: ```shell helm upgrade -f datadog-values.yaml datadog/datadog @@ -186,13 +185,13 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{< /tabs >}} -Para ver más información, consulta [Cloud Network Monitoring][18]. +Para más información, consulte [Monitoreo de red en la nube][18]. -## Activar la recopilación de log +## Habilitar la colección de registro {#enable-log-collection} {{< tabs >}} -{{% tab "Datadog Operator" %}} -En tu `datadog-agent.yaml`, establece `features.logCollection.enabled` y `features.logCollection.containerCollectAll` en `true`. +{{% tab "Operador de Datadog" %}} +En su `datadog-agent.yaml`, configure `features.logCollection.enabled` y `features.logCollection.containerCollectAll` a `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -210,7 +209,7 @@ spec: containerCollectAll: true ``` -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml @@ -218,7 +217,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Actualiza tu `datadog-values.yaml` con la siguiente configuración: +Actualice su `datadog-values.yaml` con la siguiente configuración: ```yaml datadog: @@ -228,7 +227,7 @@ datadog: containerCollectAll: true ``` -A continuación, actualiza tu tabla de Helm: +Luego actualice su gráfico de Helm: ```shell helm upgrade -f datadog-values.yaml datadog/datadog @@ -236,13 +235,13 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{< /tabs >}} -Para obtener más información, consulta [Recopilación de log de Kubernetes][17]. +Para más información, consulte [Colección de registro de Kubernetes][17]. -## Activar la recopilación de procesos +## Habilitar la colección de procesos {#enable-process-collection} {{< tabs >}} -{{% tab "Datadog Operator" %}} -En tu `datadog-agent.yaml`, establece `features.liveProcessCollection.enabled` en `true`. +{{% tab "Operador de Datadog" %}} +En su `datadog-agent.yaml`, configure `features.liveProcessCollection.enabled` a `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -259,7 +258,7 @@ spec: enabled: true ``` -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml @@ -267,7 +266,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Actualiza tu `datadog-values.yaml` con la siguiente configuración: +Actualice su `datadog-values.yaml` con la siguiente configuración: ```yaml datadog: @@ -277,7 +276,7 @@ datadog: processCollection: true ``` -A continuación, actualiza tu tabla de Helm: +Luego actualice su gráfico de Helm: ```shell helm upgrade -f datadog-values.yaml datadog/datadog @@ -285,21 +284,21 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{< /tabs >}} -Para obtener más información, consulta [Live Processes][23] -## Datadog Cluster Agent +Para más información, consulte [Live Processes][23] +## Datadog Cluster Agent {#datadog-cluster-agent} -Datadog Cluster Agent proporciona un enfoque optimizado y centralizado para recopilar datos de monitorización del clúster. Datadog recomienda encarecidamente el uso de Cluster Agent para la monitorización de Kubernetes. +El Datadog Cluster Agent proporciona un enfoque centralizado y simplificado para la recopilación de datos de seguimiento a nivel de clúster. Datadog recomienda encarecidamente utilizar el Cluster Agent para monitorear Kubernetes. -Datadog Operator v1.0.0+ y tabla de Helm v2.7.0+ **habilitan por defecto el Cluster Agent **. No es necesaria ninguna otra configuración. +El operador de Datadog v1.0.0+ y el gráfico de Helm v2.7.0+ **habilitan el Cluster Agent por defecto**. No se requiere configuración adicional. {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} -El Datadog Operator v1.0.0+ habilita el Cluster Agent por defecto. El Operator crea los RBAC necesarios y despliega Cluster Agent. Ambos Agents utilizan la misma clave de API. +El operador de Datadog v1.0.0+ habilita el agente de clúster por defecto. El operador crea los RBAC necesarios y despliega el agente de clúster. Ambos Agentes utilizan la misma clave de API. -El Operador genera automáticamente un token aleatorio en un `Secret` de Kubernetes que lo compartirán el Datadog Agent y Cluster Agent para una comunicación segura. +El Operador genera automáticamente un token aleatorio en un Kubernetes `Secret` que será compartido por el Datadog Agent y el Cluster Agent para una comunicación segura. -Puedes especificar manualmente este token en el campo `global.clusterAgentToken` de tu `datadog-agent.yaml`: +Puedes especificar manualmente este token en el campo `global.clusterAgentToken` en tu `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -314,7 +313,7 @@ spec: clusterAgentToken: ``` -También puedes especificar este token haciendo referencia al nombre de un `Secret` existente y a la clave de datos que contiene este token: +Alternativamente, puedes especificar este token haciendo referencia al nombre de un `Secret` existente y la clave de datos que contiene este token: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -331,9 +330,9 @@ spec: keyName: ``` -**Nota**: Cuando se configura manualmente, este token debe tener 32 caracteres alfanuméricos. +**Nota**: Cuando se establece manualmente, este token debe tener 32 caracteres alfanuméricos. -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml @@ -342,18 +341,18 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -La tabla de Helm v2.7.0+ activa por defecto el Cluster Agent. +El gráfico de Helm v2.7.0+ habilita el Cluster Agent por defecto. -Para comprobarlo, asegúrate de que `clusterAgent.enabled` está configurado como `true` en tu `datadog-values.yaml`: +Para verificación, asegúrate de que `clusterAgent.enabled` esté configurado en `true` en tu `datadog-values.yaml`: ```yaml clusterAgent: enabled: true ``` -Helm genera automáticamente un token aleatorio en un `Secret` de Kubernetes compartido por el Datadog Agent y Cluster Agent para una comunicación segura. +Helm genera automáticamente un token aleatorio en un Kubernetes `Secret` que será compartido por el Agente de Datadog y el Agente de Clúster para una comunicación segura. -Puedes especificar manualmente este token en el campo `clusterAgent.token` de tu `datadog-agent.yaml`: +Puedes especificar manualmente este token en el campo `clusterAgent.token` en tu `datadog-agent.yaml`: ```yaml clusterAgent: @@ -361,7 +360,7 @@ clusterAgent: token: ``` -Alternativamente, puedes especificar este token haciendo referencia al nombre de un `Secret` existente, donde el token se encuentra en una clave llamada `token`: +Alternativamente, puedes especificar este token haciendo referencia al nombre de un `Secret` existente, donde el token está en una clave llamada `token`: ```yaml clusterAgent: @@ -372,15 +371,15 @@ clusterAgent: {{% /tab %}} {{< /tabs >}} -Para más información, consulta la [documentación de Datadog Cluster Agent][2]. +Para más información, consulta la [documentación del Agente de Clúster de Datadog][2]. -## Servidor de métricas personalizadas +## Servidor de métricas personalizadas {#custom-metrics-server} -Para utilizar la función [servidor de métricas personalizadas][22] de Cluster Agent, debes proporcionar una [clave de aplicación][24] de Datadog y activar el proveedor de métricas. +Para utilizar la función de [servidor de métricas personalizadas][22] del Agente de Clúster, debes proporcionar una [clave de aplicación][24] de Datadog y habilitar el proveedor de métricas. {{< tabs >}} -{{% tab "Datadog Operator" %}} -En `datadog-agent.yaml`, proporcione una clave de aplicación en `spec.global.credentials.appKey` y establece `features.externalMetricsServer.enabled` en `true`. +{{% tab "Operador de Datadog" %}} +En `datadog-agent.yaml`, proporciona una clave de aplicación bajo `spec.global.credentials.appKey` y establece `features.externalMetricsServer.enabled` en `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -398,14 +397,14 @@ spec: enabled: true ``` -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml ``` {{% /tab %}} {{% tab "Helm" %}} -En `datadog-values.yaml`, proporcione una clave de aplicación en `datadog.appKey` y establece `clusterAgent.metricsProvider.enabled` en `true`. +En `datadog-values.yaml`, proporciona una clave de aplicación bajo `datadog.appKey` y establece `clusterAgent.metricsProvider.enabled` en `true`. ```yaml datadog: @@ -418,7 +417,7 @@ clusterAgent: enabled: true ``` -A continuación, actualiza tu tabla de Helm: +Luego actualice su gráfico de Helm: ```shell helm upgrade -f datadog-values.yaml datadog/datadog @@ -427,20 +426,20 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{< /tabs >}} -## Integraciones +## Integraciones {#integrations} -Una vez que Agent esté funcionando en tu clúster, utiliza [la característica Autodiscovery de Datadog][5] para recopilar métricas y logs automáticamente de tus pods. +Una vez que el Agente esté en funcionamiento en tu clúster, utiliza la función de [Autodiscovery de Datadog][5] para recopilar métricas y registro automáticamente de tus pods. -## Vista de contenedores +## Visualización de contenedores {#containers-view} -Para utilizar el [Explorador de contenedores][3] de Datadog, active el Agent de proceso. Datadog Operator y la tabla de Helm **habilitan el Agent de proceso por defecto**. No es necesario ninguna otra configuración. +Para utilizar el [Explorador de contenedores][3] de Datadog, habilita el Agente de Procesos. El Operador de Datadog y el gráfico de Helm **habilitan el Agente de Procesos por defecto**. No se requiere configuración adicional. {{< tabs >}} -{{% tab "Datadog Operator" %}} +{{% tab "Operador de Datadog" %}} -De manera predeterminada, el Datadog Operator habilita el Process Agent. +El Operador de Datadog habilita el Agente de Procesos por defecto. -Para comprobarlo, asegúrate de que `features.liveContainerCollection.enabled` está configurado como `true` en tu `datadog-agent.yaml`: +Para verificación, asegúrate de que `features.liveContainerCollection.enabled` esté configurado en `true` en tu `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -456,7 +455,7 @@ spec: liveContainerCollection: enabled: true ``` -En algunas configuraciones, el Process Agent y Cluster Agent no pueden detectar de manera automática un nombre de clúster de Kubernetes. Si esto ocurre, la función no se inicia y aparece la siguiente advertencia en el log del Cluster Agent: `Orchestrator explorer enabled but no cluster name set: disabling`. En este caso, debes definir `datadog.clusterName` con tu nombre de clúster en `values.yaml`. +En algunas configuraciones, el Agente de Procesos y el Agente de Clúster no pueden detectar automáticamente el nombre de un clúster de Kubernetes. Si esto sucede, la función no se inicia y la siguiente advertencia se muestra en el registro del Agente de Clúster: `Orchestrator explorer enabled but no cluster name set: disabling`. En este caso, debes establecer `spec.global.clusterName` como el nombre de tu clúster en `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -477,9 +476,9 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -La tabla de Helm activa el Agent de proceso por defecto. +El gráfico de Helm habilita el Agente de Proceso por defecto. -Para comprobarlo, asegúrate de que `processAgent.enabled` está configurado como `true` en tu `datadog-values.yaml`: +Para verificación, asegúrate de que `processAgent.enabled` esté configurado en `true` en tu `datadog-values.yaml`: ```yaml datadog: @@ -488,7 +487,7 @@ datadog: enabled: true ``` -En algunas configuraciones, el Process Agent y Cluster Agent no pueden detectar de manera automática un nombre de clúster de Kubernetes. Si esto ocurre, la función no se inicia y aparece la siguiente advertencia en el log del Cluster Agent: `Orchestrator explorer enabled but no cluster name set: disabling.`. En este caso, debes definir`datadog.clusterName` con tu nombre de clúster en `values.yaml`. +En algunas configuraciones, el Agente de Procesos y el Agente de Clúster no pueden detectar automáticamente el nombre de un clúster de Kubernetes. Si esto sucede, la función no se inicia y la siguiente advertencia se muestra en el registro del Agente de Clúster: `Orchestrator explorer enabled but no cluster name set: disabling.`. En este caso, debes establecer `datadog.clusterName` como el nombre de tu clúster en `datadog-values.yaml`. ```yaml datadog: @@ -504,20 +503,20 @@ datadog: {{% /tab %}} {{< /tabs >}} -Para conocer las restricciones de los nombres de clúster válidos, consulta [Definir el nombre de clúster](#set-cluster-name). +Para restricciones sobre nombres de clúster válidos, consulta [Establecer nombre de clúster](#set-cluster-name). -Consulta la documentación [Vista de contenedores][15] para obtener información adicional. +Consulta la documentación de la [Containers view][15] para información adicional. -## Orchestrator Explorer +## Orchestrator Explorer {#orchestrator-explorer} -El Datadog Operator y la tabla de Helm **habilitan por defecto el [Orchestrator Explorer][20] de Datadog**. No es necesario ninguna otra configuración. +El Datadog Operator y el Helm chart **habilitan por defecto [Orchestrator Explorer][20] de Datadog**. No se requiere configuración adicional. {{< tabs >}} {{% tab "Datadog Operator" %}} -Orchestrator Explorer está activado por defecto en el Datadog Operator. +El Orchestrator Explorer está habilitado en el Datadog Operator por defecto. -Para comprobarlo, asegúrate de que el parámetro `features.orchestratorExplorer.enabled` está configurado como `true` en tu `datadog-agent.yaml`: +Para verificación, asegúrese de que el parámetro `features.orchestratorExplorer.enabled` esté establecido en `true` en su `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -534,7 +533,7 @@ spec: enabled: true ``` -En algunas configuraciones, el Process Agent y Cluster Agent no pueden detectar de manera automática un nombre de clúster de Kubernetes. Si esto ocurre, la función no se inicia y aparece la siguiente advertencia en el log del Cluster Agent: `Orchestrator explorer enabled but no cluster name set: disabling`. En este caso, debes definir `datadog.clusterName` con tu nombre de clúster en `values.yaml`. +En algunas configuraciones, el Agente de Procesos y el Agente de Clúster no pueden detectar automáticamente el nombre de un clúster de Kubernetes. Si esto sucede, la función no se inicia y la siguiente advertencia se muestra en el registro del Agente de Clúster: `Orchestrator explorer enabled but no cluster name set: disabling`. En este caso, debe establecer `spec.global.clusterName` como el nombre de su clúster en `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -556,9 +555,9 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -La tabla de Helm habilita Orchestrator Explorer por defecto. +El gráfico de Helm habilita el Explorador de Orquestador por defecto. -Para comprobarlo, asegúrate de que el parámetro `orchestratorExplorer.enabled` está configurado como `true` en tu archivo `datadog-values.yaml`: +Para verificación, asegúrate de que el parámetro `orchestratorExplorer.enabled` esté establecido en `true` en tu archivo `datadog-values.yaml`: ```yaml datadog: @@ -569,7 +568,7 @@ datadog: enabled: true ``` -En algunas configuraciones, el Process Agent y Cluster Agent no pueden detectar de manera automática un nombre de clúster de Kubernetes. Si esto ocurre, la función no se inicia y aparece la siguiente advertencia en el log del Cluster Agent: `Orchestrator explorer enabled but no cluster name set: disabling.` En este caso, debes establecer `datadog.clusterName` con tu nombre de clúster en `values.yaml`. +En algunas configuraciones, el Agente de Procesos y el Agente de Clúster no pueden detectar automáticamente el nombre de un clúster de Kubernetes. Si esto sucede, la función no se inicia y la siguiente advertencia se muestra en el registro del Agente de Clúster: `Orchestrator explorer enabled but no cluster name set: disabling.`. En este caso, debe establecer `datadog.clusterName` como el nombre de su clúster en `values.yaml`. ```yaml datadog: @@ -585,81 +584,81 @@ datadog: {{% /tab %}} {{< /tabs >}} -Para conocer las restricciones de los nombres de clúster válidos, consulta [Definir el nombre de clúster](#set-cluster-name). +Para restricciones sobre nombres de clúster válidos, consulta [Establecer nombre de clúster](#set-cluster-name). -Consulta la [documentación de Orchestrator Explorer][21] para obtener información adicional. +Consulta la [Orchestrator Explorer documentation][21] para información adicional. -## Configuración básica +## Configuración básica {#basic-configuration} -Utiliza los siguientes campos de configuración para configurar el Datadog Agent. +Utilice los siguientes campos de configuración para configurar el Agente de Datadog. {{< tabs >}} {{% tab "Datadog Operator" %}} | Parámetro (v2alpha1) | Descripción | | --------------------------- | ----------- | -| `global.credentials.apiKey` | Configura tu clave de API Datadog. | -| `global.credentials.apiSecret.secretName` | En lugar de `global.credentials.apiKey`, indica el nombre de un `Secret` de Kubernetes que contenga tu clave de API de Datadog.| -| `global.credentials.apiSecret.keyName` | En lugar de `global.credentials.apiKey`, proporciona la clave del `Secret` de Kubernetes nombrada en `global.credentials.apiSecret.secretName`.| -| `global.credentials.appKey` | Configura tu clave de aplicación de Datadog. Si utilizas el servidor de métricas externas, debes configurar una clave de aplicación de Datadog para el acceso de lectura a tus métricas. | -| `global.credentials.appSecret.secretName` | En lugar de `global.credentials.apiKey`, indica el nombre de un `Secret` de Kubernetes que contenga la clave de tu aplicación de Datadog.| -| `global.credentials.appSecret.keyName` | En lugar de `global.credentials.apiKey`, proporciona la clave del `Secret` de Kubernetes nombrada en `global.credentials.appSecret.secretName`.| -| `global.logLevel` | Establece la intensidad del registro. Esto puede ser anulado por el contenedor. Los niveles de log válidos son: `trace`, `debug`, `info`, `warn`, `error`, `critical` y `off`. Por defecto: `info`. | -| `global.registry` | Registro de imágenes a utilizar para todas las imágenes de Agent. Por defecto: `gcr.io/datadoghq`. | -| `global.site` | Establece el [sitio de entrada][1] de Datadog al que se envían los datos del Agent. Tu sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrate de seleccionar el SITIO correcto a la derecha). | -| `global.tags` | Un lista de etiquetas para adjuntar a cada métrica, evento y check de servicio recopilados. | - -Para obtener una lista completa de los campos de configuración del Datadog Operator, consulta la [especificación del Operator v2alpha1][2]. Para ver versiones anteriores, consulta [Migración de CRD de Datadog Agents a v2alpha1][3]. Los campos de configuración también pueden consultarse mediante `kubectl explain datadogagent --recursive`. +| `global.credentials.apiKey` | Configure su clave de API de Datadog. | +| `global.credentials.apiSecret.secretName` | En lugar de `global.credentials.apiKey`, proporcione el nombre de un `Secret` de Kubernetes que contenga su clave de API de Datadog.| +| `global.credentials.apiSecret.keyName` | En lugar de `global.credentials.apiKey`, proporcione la clave del `Secret` de Kubernetes nombrado en `global.credentials.apiSecret.secretName`.| +| `global.credentials.appKey` | Configure su clave de aplicación de Datadog. Si está utilizando el servidor de métricas externo, debe establecer una clave de aplicación de Datadog para el acceso de lectura a sus métricas. | +| `global.credentials.appSecret.secretName` | En lugar de `global.credentials.apiKey`, proporcione el nombre de un `Secret` de Kubernetes que contenga su clave de aplicación de Datadog.| +| `global.credentials.appSecret.keyName` | En lugar de `global.credentials.apiKey`, proporcione la clave del `Secret` de Kubernetes nombrado en `global.credentials.appSecret.secretName`.| +| `global.logLevel` | Establece la verbosidad de los registros. Esto puede ser anulado por el contenedor. Los niveles de registro válidos son: `trace`, `debug`, `info`, `warn`, `error`, `critical` y `off`. Predeterminado: `info`. | +| `global.registry` | Registro de imágenes a utilizar para todas las imágenes del Agente. Predeterminado: `gcr.io/datadoghq`. | +| `global.site` | Establece el [sitio de recepción][1] de Datadog al cual se envían los datos del Agente. Su sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrese de que el SITIO correcto esté seleccionado a la derecha). | +| `global.tags` | Una lista de etiquetas para adjuntar a cada métrica, evento y verificación de servicio recolectados. | + +Para una lista completa de campos de configuración para el Datadog Operator, consulte la [especificación del Operador v2alpha1][2]. Para versiones anteriores, consulte [Migrar CRDs de DatadogAgent a v2alpha1][3]. Los campos de configuración también se pueden consultar utilizando `kubectl explain datadogagent --recursive`. [1]: /es/getting_started/ [2]: https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md [3]: /es/containers/guide/v2alpha1_migration/ {{% /tab %}} {{% tab "Helm" %}} -| Helm | Descripción | -| ---- | ----------- | -| `datadog.apiKey` | Configura tu clave de API de Datadog. | -| `datadog.apiKeyExistingSecret` | En lugar de `datadog.apiKey`, proporciona el nombre de un `Secret` de Kubernetes existente que contenga tu clave de API de Datadog, configurada con el nombre de clave `api-key`. | -| `datadog.appKey` | Configura tu clave de aplicación de Datadog. Si utilizas el servidor de métricas externas, debes configurar una clave de aplicación de Datadog para el acceso de lectura a tus métricas. | -| `datadog.appKeyExistingSecret` | En lugar de `datadog.appKey`, proporciona el nombre de un `Secret` de Kubernetes existente que contenga tu clave de aplicación de Datadog, configurada con el nombre de clave `app-key`. | -| `datadog.logLevel` | Establece la verbosidad del registro. Esto puede ser anulado por el contenedor. Los niveles válidos de log son: `trace`, `debug`, `info`, `warn`, `error`, `critical` y `off`. Por defecto: `info`. | -| `registry` | Registro de imagen a utilizar para todas las imágenes del Agent. Por defecto: `gcr.io/datadoghq`. | -| `datadog.site` | Establece el [sitio de entrada][1] de Datadog al que se envían los datos del Agent. Tu sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrate de seleccionar el SITIO correcto a la derecha). | -| `datadog.tags` | Un lista de etiquetas para adjuntar a cada métrica, evento y check de servicio recopilados. | - -Si deseas consultar la lista completa de las variables de entorno para la tabla de Helm, consulta la [ lista completa de opciones][2] para `datadog-values.yaml`. +| Helm | Descripción | +| ---- | ----------- | +| `datadog.apiKey` | Configure su clave de API de Datadog. | +| `datadog.apiKeyExistingSecret` | En lugar de `datadog.apiKey`, proporcione el nombre de un `Secret` de Kubernetes existente que contenga su clave de API de Datadog, configurada con el nombre de clave `api-key`. | +| `datadog.appKey` | Configure su clave de aplicación de Datadog. Si está utilizando el servidor de métricas externo, debe establecer una clave de aplicación de Datadog para el acceso de lectura a sus métricas. | +| `datadog.appKeyExistingSecret` | En lugar de `datadog.appKey`, proporcione el nombre de un `Secret` de Kubernetes existente que contenga su clave de aplicación de Datadog, configurada con el nombre de clave `app-key`. | +| `datadog.logLevel` | Establece la verbosidad de los registros. Esto puede ser anulado por el contenedor. Los niveles de registro válidos son: `trace`, `debug`, `info`, `warn`, `error`, `critical` y `off`. Predeterminado: `info`. | +| `registry` | Registro de imágenes a utilizar para todas las imágenes del Agente. Predeterminado: `gcr.io/datadoghq`. | +| `datadog.site` | Establece el [sitio de recepción][1] de Datadog al que se envían los datos del Agente. Su sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrese de que el SITIO correcto esté seleccionado a la derecha). | +| `datadog.tags` | Una lista de etiquetas para adjuntar a cada métrica, evento y verificación de servicio recolectados. | + +Para una lista completa de variables de entorno para el gráfico de Helm, consulte la [lista completa de opciones][2] para `datadog-values.yaml`. [1]: /es/getting_started/site [2]: https://github.com/DataDog/helm-charts/tree/main/charts/datadog#all-configuration-options {{% /tab %}} {{% tab "DaemonSet" %}} -| Variable de Ent | Descripción | +| Variable de entorno | Descripción | |----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_API_KEY` | Tu Datadog clave de API (**obligatorio**) | -| `DD_ENV` | Establece la etiqueta global `env` para todos los datos emitidos. | -| `DD_HOSTNAME` | Nombre de host a utilizar para métricas (si falla la detección automática) | | | -| `DD_TAGS` | Etiquetas de host separadas por espacios. Por ejemplo: `simple-tag-0 tag-key-1:tag-value-1` | -| `DD_SITE` | Sitio de destino para tus métricas, trazas y logs. Tu `DD_SITE` es {{< region-param key="dd_site" code="true">}}. Por defecto es `datadoghq.com`. | -| `DD_DD_URL` | Opcional para anular la URL de envío de métrica. | -| `DD_URL` (6.36+/7.36+) | Alias para `DD_DD_URL`. Ignorado si `DD_DD_URL` ya está configurado. | -| `DD_CHECK_RUNNERS` | El Agent ejecuta todos los checks de forma concurrente por defecto (valor por defecto = `4` ejecutores). Para ejecutar checks secuencialmente, ajusta el valor en `1`. Si necesitas ejecutar un número elevado de checks (o checks lentos), el componente `collector-queue` podría retrasarse y el check de estado podría fallar. Puede aumentar el número de ejecutores para iniciar checks en paralelo. | -| `DD_LEADER_ELECTION` | Si se están ejecutando múltiples instancias del Agent en tu clúster, establece esta variable en `true` para evitar la duplicación de la recopilación de eventos. | +| `DD_API_KEY` | Su clave de API de Datadog (**requerida**) | +| `DD_ENV` | Establece la etiqueta global `env` para todos los datos emitidos. | +| `DD_HOSTNAME` | Nombre de servidor a utilizar para métricas (si la autodetección falla) | +| `DD_TAGS` | Etiquetas de servidor separadas por espacios. Por ejemplo: `simple-tag-0 tag-key-1:tag-value-1` | +| `DD_SITE` | Sitio de destino para sus métricas, trazas y registros. Su `DD_SITE` es {{< region-param key="dd_site" code="true">}}. Por defecto es `datadoghq.com`. | +| `DD_DD_URL` | Configuración opcional para anular la URL para la presentación de métricas. | +| `DD_URL` (6.36+/7.36+) | Alias para `DD_DD_URL`. Ignorado si `DD_DD_URL` ya está configurado. | +| `DD_CHECK_RUNNERS` | El Agente ejecuta todas las verificaciones de manera concurrente por defecto (valor predeterminado = `4` ejecutores). Para ejecutar las verificaciones de manera secuencial, establezca el valor en `1`. Si necesita ejecutar un gran número de verificaciones (o verificaciones lentas), el componente `collector-queue` podría quedarse atrás y fallar la verificación de salud. Puede aumentar el número de ejecutores para ejecutar verificaciones en paralelo. | +| `DD_LEADER_ELECTION` | Si múltiples instancias del Agente están ejecutándose en su clúster, establezca esta variable en `true` para evitar la duplicación de la recolección de eventos. | {{% /tab %}} {{< /tabs >}} -## Variables de entorno -El Datadog Agent en contenedores puede configurarse utilizando variables de entorno. Para una amplia lista de las variables de entorno compatibles, consulta la sección [variables de entorno][26] de la documentación del Docker Agent. +## Variables de entorno {#environment-variables} +El Agente de Datadog en contenedores se puede configurar utilizando variables de entorno. Para una lista extensa de variables de entorno soportadas, consulte la sección de [Variables de entorno][26] de la documentación del Agente de Docker. -### Ejemplos +### Ejemplos {#examples} {{< tabs >}} {{% tab "Datadog Operator" %}} -Al utilizar el Datadog Operator, puedes establecer variables de entorno adicionales en `override` para un componente con `[key].env []object`, o para un contenedor con `[key].containers.[key].env []object`. Se admiten las siguientes claves: +Al usar el Datadog Operator, puede establecer variables de entorno adicionales en `override` para un componente con `[key].env []object`, o para un contenedor con `[key].containers.[key].env []object`. Las siguientes claves son soportadas: - `nodeAgent` - `clusterAgent` - `clusterChecksRunner` -Los ajustes de contenedor tienen prioridad sobre los ajustes de componente. +Las configuraciones a nivel de contenedor tienen prioridad sobre cualquier configuración a nivel de componente. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -696,7 +695,8 @@ clusterAgent: {{% /tab %}} {{% tab "DaemonSet" %}} -Añade variables de entorno al DaemonSet o al despliegue (para Datadog Cluster Agent). +Agregue variables de entorno al DaemonSet o al Deployment (para el Agente de Clúster de Datadog). + ```yaml apiVersion: apps/v1 kind: DaemonSet @@ -716,38 +716,38 @@ spec: {{% /tab %}} {{< /tabs >}} -## Configurar DogStatsD +## Configurar DogStatsD {#configure-dogstatsd} -DogStatsD puede enviar métricas personalizadas sobre UDP con el protocolo StatsD. **DogStatsD está habilitado por defecto por Datadog Operator y Helm**. Consulta la [documentación de DogStatsD][19] para obtener más información. +DogStatsD puede enviar métricas personalizadas a través de UDP con el protocolo StatsD. **DogStatsD está habilitado por defecto por el Datadog Operator y Helm**. Consulte la [documentación de DogStatsD][19] para más información. -Puedes utilizar las siguientes variables de entorno para configurar DogStatsD con DaemonSet: +Puede usar las siguientes variables de entorno para configurar DogStatsD con DaemonSet: -| Variable de entorno | Descripción | +| Variable de Entorno | Descripción | |----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | Escucha los paquetes de DogStatsD de otros contenedores (obligatorio para enviar métricas personalizadas). | -| `DD_HISTOGRAM_PERCENTILES` | Los percentiles de histogramas para calcular (separados por espacios). Por defecto es `0.95`. | +| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | Escuchar paquetes de DogStatsD de otros contenedores (requerido para enviar métricas personalizadas). | +| `DD_HISTOGRAM_PERCENTILES` | Los percentiles del histograma a calcular (separados por espacios). El valor por defecto es `0.95`. | | `DD_HISTOGRAM_AGGREGATES` | Los agregados del histograma a calcular (separados por espacios). El valor por defecto es `"max median avg count"`. | -| `DD_DOGSTATSD_SOCKET` | La ruta al socket Unix que se va a escuchar. Debe estar en un volumen montado en `rw`. | -| `DD_DOGSTATSD_ORIGIN_DETECTION` | Habilita la detección y el etiquetado de contenedores para las métricas del socket Unix. | -| `DD_DOGSTATSD_TAGS` | Etiquetas adicionales para anexar a todas las métricas, los eventos y los checks de servicios recibidos por este servidor de DogStatsD, por ejemplo: `"env:golden group:retrievers"`. | +| `DD_DOGSTATSD_SOCKET` | Ruta al socket Unix para escuchar. Debe estar en un `rw` volumen montado. | +| `DD_DOGSTATSD_ORIGIN_DETECTION` | Habilitar la detección y etiquetado de contenedores para métricas de socket Unix. | +| `DD_DOGSTATSD_TAGS` | Etiquetas adicionales para agregar a todas las métricas, eventos y verificaciones de servicio recibidos por este servidor DogStatsD, por ejemplo: `"env:golden group:retrievers"`. | -## Configurar la asignación de etiquetas +## Configurar el mapeo de etiquetas {#configure-tag-mapping} Datadog recopila automáticamente etiquetas comunes de Kubernetes. -Además, puedes asignar etiquetas de nodos de Kubernetes, etiquetas de pods y anotaciones a las etiquetas de Datadog. Utiliza las siguientes variables de entorno para configurar esta asignación: +Además, puede mapear las etiquetas de los nodos de Kubernetes, las etiquetas de los pods y las anotaciones a las etiquetas de Datadog. Utilice las siguientes variables de entorno para configurar este mapeo: {{< tabs >}} {{% tab "Datadog Operator" %}} | Parámetro (v2alpha1) | Descripción | | --------------------------- | ----------- | -| `global.namespaceLabelsAsTags` | Proporciona una asignación entre las etiquetas de espacio de nombres de Kubernetes y etiquetas de Datadog. `: ` | -| `global.nodeLabelsAsTags` | Proporciona una asignación entre las etiquetas de nodo de Kubernetes y etiquetas de Datadog. `: ` | -| `global.podAnnotationsAsTags` | Proporciona una asignación entre anotaciones de Kubernetes y etiquetas de Datadog. `: ` | -| `global.podLabelsAsTags` | Proporciona una asignación entre las etiquetas de Kubernetes y las etiquetas de Datadog. `: ` | +| `global.namespaceLabelsAsTags` | Proporcionar un mapeo de las etiquetas de espacio de nombres de Kubernetes a las etiquetas de Datadog. `: ` | +| `global.nodeLabelsAsTags` | Proporcionar un mapeo de las etiquetas de nodos de Kubernetes a las etiquetas de Datadog. `: ` | +| `global.podAnnotationsAsTags` | Proporcionar un mapeo de las anotaciones de Kubernetes a las etiquetas de Datadog. `: ` | +| `global.podLabelsAsTags` | Proporcionar un mapeo de las etiquetas de Kubernetes a las etiquetas de Datadog. `: ` | -### Ejemplos +### Ejemplos {#examples-1} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -779,12 +779,12 @@ spec: | Helm | Descripción | | --------------------------- | ----------- | -| `datadog.namespaceLabelsAsTags` | Proporciona una asignación entre las etiquetas de espacio de nombres de Kubernetes y etiquetas de Datadog. `: ` | -| `datadog.nodeLabelsAsTags` | Proporciona una asignación entre las etiquetas de nodo de Kubernetes y etiquetas de Datadog. `: ` | -| `datadog.podAnnotationsAsTags` | Proporciona una asignación entre anotaciones de Kubernetes y etiquetas de Datadog. `: ` | -| `datadog.podLabelsAsTags` | Proporciona una asignación entre las etiquetas de Kubernetes y las etiquetas de Datadog. `: ` | +| `datadog.namespaceLabelsAsTags` | Proporcionar un mapeo de las etiquetas de espacio de nombres de Kubernetes a las etiquetas de Datadog. `: ` | +| `datadog.nodeLabelsAsTags` | Proporcionar un mapeo de las etiquetas de nodos de Kubernetes a las etiquetas de Datadog. `: ` | +| `datadog.podAnnotationsAsTags` | Proporcionar un mapeo de las anotaciones de Kubernetes a las etiquetas de Datadog. `: ` | +| `datadog.podLabelsAsTags` | Proporcionar un mapeo de las etiquetas de Kubernetes a las etiquetas de Datadog. `: ` | -### Ejemplos +### Ejemplos {#examples-2} ```yaml datadog: @@ -808,27 +808,27 @@ datadog: {{% /tab %}} {{< /tabs >}} -## Usar archivos secretos +## Usando archivos secretos {#using-secret-files} -Las credenciales de integración pueden almacenarse en los secretos de Docker o Kubernetes y utilizarse en las plantillas de Autodiscovery. Para obtener más información, consulta [Gestión de secretos][12]. +Las credenciales de integración se pueden almacenar en secretos de Docker o Kubernetes y utilizarse en plantillas de Autodiscovery. Para más información, consulte [Gestión de Secretos][12]. -## Ignora los contenedores +## Ignorar contenedores {#ignore-containers} -Excluye contenedores de la recopilación de logs, métricas y Autodiscovery. Datadog excluye los contenedores `pause` de Kubernetes y OpenShift por defecto. Estas listas de permisos y denegaciones se aplican únicamente a Autodiscovery; las trazas y DogStatsD no se ven afectados. Estas variables de entorno admiten expresiones regulares en sus valores. +Excluya contenedores de la recopilación de registros, la recopilación de métricas y la Autodiscovery. Datadog excluye `pause` contenedores de Kubernetes y OpenShift por defecto. Estas listas de permitidos y bloqueados se aplican solo a Autodiscovery; las trazas y DogStatsD no se ven afectados. Estas variables de entorno admiten expresiones regulares en sus valores. -Consulta la página [Gestión de detección de contenedores][13] para ver ejemplos. +Consulte la página de [Gestión de Descubrimiento de Contenedores][13] para ejemplos. -**Nota**: Las métricas `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` y `.stopped.total` no se ven afectadas por estos ajustes. Se cuentan todos los contenedores. +**Nota**: Las métricas `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` y `.stopped.total` no se ven afectadas por estas configuraciones. Todos los contenedores son contados. -## Tiempo de espera del servidor de API de Kubernetes +## Tiempo de espera del servidor API de Kubernetes {#kubernetes-api-server-timeout} -Por defecto, [el check de las métricas centrales de estado de Kubernetes][25] espera 10 segundos para recibir una respuesta del servidor de la API de Kubernetes. En el caso de clústeres de gran tamaño, es posible que se agote el tiempo de espera y se pierdan métricas. +Por defecto, la [verificación de Métricas del Estado de Kubernetes][25] espera 10 segundos para una respuesta del servidor API de Kubernetes. Para clústeres grandes, la solicitud puede agotar el tiempo, lo que resulta en métricas faltantes. -Puedes evitarlo al configurar la variable de entorno `DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT` en un valor superior al predeterminado de 10 segundos. +Puede evitar esto configurando la variable de entorno `DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT` a un valor más alto que el tiempo predeterminado de 10 segundos. {{< tabs >}} {{% tab "Datadog Operator" %}} -Actualiza tu `datadog-agent.yaml` con la siguiente configuración: +Actualice su `datadog-agent.yaml` con la siguiente configuración: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -843,7 +843,7 @@ spec: value: ``` -A continuación, aplica la nueva configuración: +Luego aplique la nueva configuración: ```shell kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml @@ -851,7 +851,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Actualiza tu `datadog-values.yaml` con la siguiente configuración: +Actualice su `datadog-values.yaml` con la siguiente configuración: ```yaml clusterAgent: @@ -860,7 +860,7 @@ clusterAgent: value: ``` -A continuación, actualiza tu tabla de Helm: +Luego actualice su Helm chart: ```shell helm upgrade -f datadog-values.yaml datadog/datadog @@ -868,28 +868,28 @@ helm upgrade -f datadog-values.yaml datadog/datadog {{% /tab %}} {{< /tabs >}} -## Parámetros del proxy +## Configuraciones de proxy {#proxy-settings} -A partir del Agent v6.4.0 (y v6.5.0 para el Trace Agent), se pueden sobreescribir los valores de configuración de proxy del Agent con las siguientes variables de entorno: +A partir de la versión 6.4.0 del Agente (y de la 6.5.0 para el Trace Agent), puede anular las configuraciones de proxy del Agente con las siguientes variables de entorno: -| Variable de entorno | Descripción | +| Variable de Entorno | Descripción | |--------------------------|------------------------------------------------------------------------| -| `DD_PROXY_HTTP` | Una URL HTTP para usar como proxy para las solicitudes `http`. | -| `DD_PROXY_HTTPS` | Una URL HTTPS para usar como proxy para las solicitudes `https`. | -| `DD_PROXY_NO_PROXY` | Una lista separada por espacios de las URL para las que no se debe usar ningún proxy. | -| `DD_SKIP_SSL_VALIDATION` | Una opción para comprobar si el Agent tiene problemas para conectarse a Datadog. | +| `DD_PROXY_HTTP` | Una URL HTTP para usar como proxy para solicitudes de `http`. | +| `DD_PROXY_HTTPS` | Una URL HTTPS para usar como proxy para solicitudes de `https`. | +| `DD_PROXY_NO_PROXY` | Una lista de URLs separadas por espacios para las cuales no se debe usar proxy. | +| `DD_SKIP_SSL_VALIDATION` | Una opción para probar si el Agente tiene problemas para conectarse a Datadog. | -## Definir el nombre de clúster +## Establecer el nombre del clúster {#set-cluster-name} -Algunas capacidades requieren que se defina un nombre de clúster Kubernetes. Un nombre de clúster válido debe ser único y debe estar separado por puntos, con las siguientes restricciones: +Algunas capacidades requieren que establezca un nombre de clúster de Kubernetes. Un nombre de clúster válido debe ser único y estar separado por puntos, con las siguientes restricciones: -- Sólo puede contener letras minúsculas, números y guiones -- Debe empezar por una letra -- La longitud total debe ser inferior o igual a 80 caracteres +- Puede contener solo letras minúsculas, números y guiones +- Debe comenzar con una letra +- La longitud total es menor o igual a 80 caracteres {{< tabs >}} {{% tab "Datadog Operator" %}} -Define `spec.global.clusterName` con tu nombre de clúster en `datadog-agent.yaml`: +Establezca `spec.global.clusterName` como el nombre de su clúster en `datadog-agent.yaml`: ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -903,7 +903,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -Define `datadog.clusterName` con tu nombre de clúster en `datadog-values.yaml`. +Establezca `datadog.clusterName` como el nombre de su clúster en `datadog-values.yaml`. ```yaml datadog: @@ -913,23 +913,23 @@ datadog: {{% /tab %}} {{< /tabs >}} -## Autodiscovery +## Autodiscovery {#autodiscovery} | Variable de entorno | Descripción | |------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_LISTENERS` | Oyentes de Autodiscovery para ejecutar. | -| `DD_EXTRA_LISTENERS` | Oyentes de Autodiscovery adicionales para ejecutar. Se añaden además de las variables definidas en la sección `listeners` del archivo de configuración `datadog.yaml`. | -| `DD_CONFIG_PROVIDERS` | Los proveedores a los que el Agent debe llamar para recopilar las configuraciones de check. Los proveedores disponibles son:
    `kubelet`: maneja plantillas incrustadas en anotaciones de pods.
    `docker`: maneja plantillas incrustadas en etiquetas de contenedor.
    `clusterchecks`: recupera configuraciones de check de clúster del Cluster Agent .
    `kube_services`: controla servicios de Kubernetes para checks de clústeres. | -| `DD_EXTRA_CONFIG_PROVIDERS` | Proveedores de configuración de Autodiscovery adicionales a utilizar. Se añaden además de las variables definidas en la sección `config_providers` del archivo de configuración `datadog.yaml`. | +| `DD_LISTENERS` | Listeners de Autodiscovery para ejecutar. | +| `DD_EXTRA_LISTENERS` | Listeners de Autodiscovery adicionales para ejecutar. Se añaden además de las variables definidas en la sección `listeners` del archivo de configuración `datadog.yaml`. | +| `DD_CONFIG_PROVIDERS` | Los proveedores que el Agente debe llamar para recopilar configuraciones de verificación. Los proveedores disponibles son:
    `kubelet` - Maneja plantillas incrustadas en anotaciones de pod.
    `docker` - Maneja plantillas incrustadas en etiquetas de contenedor.
    `clusterchecks` - Recupera configuraciones de verificación a nivel de clúster desde el Cluster Agent.
    `kube_services` - Observa los servicios de Kubernetes para verificaciones de clúster. | +| `DD_EXTRA_CONFIG_PROVIDERS` | Proveedores adicionales de configuración de Autodiscovery para usar. Se añaden además de las variables definidas en la sección `config_providers` del archivo de configuración `datadog.yaml`. | -## Miscelánea +## Varios {#miscellaneous} | Variable de entorno | Descripción | |-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | Sobreescribe la detección automática del origen del contenedor para forzar un único origen. Por ejemplo: `"docker"`, `"ecs_fargate"`, `"kubelet"`. Esto ya no es necesario a partir de Agent v7.35.0. | -| `DD_HEALTH_PORT` | Configura esto como `5555` para exponer el check de estado del Agent en el puerto `5555`. | -| `DD_CLUSTER_NAME` | Establece un identificador de clústeres de Kubernetes personalizado para evitar colisiones de alias de host. El nombre del clúster puede tener un máximo de 40 caracteres con las siguientes restricciones: solo letras minúsculas, números y guiones. Debe empezar por una letra. Debe terminar con un número o una letra. | -| `DD_COLLECT_KUBERNETES_EVENTS ` | Habilita la recopilación de eventos con el Agent. Si estás ejecutando varias instancias del Agent en tu clúster, configura también `DD_LEADER_ELECTION` en `true`. | +| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | Anula la detección automática de la fuente del contenedor para forzar una única fuente. p. ej. `"docker"`, `"ecs_fargate"`, `"kubelet"`. Esto ya no es necesario desde la versión 7.35.0 del Agente. | +| `DD_HEALTH_PORT` | Establezca esto en `5555` para exponer la verificación de salud del Agente en el puerto `5555`. | +| `DD_CLUSTER_NAME` | Establezca un identificador de clúster de Kubernetes personalizado para evitar colisiones de alias de host. El nombre del clúster puede tener hasta 40 caracteres con las siguientes restricciones: solo letras minúsculas, números y guiones. Debe comenzar con una letra. Debe terminar con un número o una letra. | +| `DD_COLLECT_KUBERNETES_EVENTS ` | Habilitar la recopilación de eventos con el Agente. Si está ejecutando múltiples instancias del Agente en su clúster, establezca `DD_LEADER_ELECTION` en `true` también. | [1]: /es/agent/ @@ -943,7 +943,7 @@ datadog: [16]: /es/containers/kubernetes/apm [17]: /es/containers/kubernetes/log [18]: /es/network_monitoring/cloud_network_monitoring/ -[19]: /es/developers/dogstatsd +[19]: /es/extend/dogstatsd [20]: https://app.datadoghq.com/orchestration/overview [21]: /es/infrastructure/containers/orchestrator_explorer [22]: /es/containers/guide/cluster_agent_autoscaling_metrics/?tab=helm diff --git a/content/es/containers/troubleshooting/log-collection.md b/content/es/containers/troubleshooting/log-collection.md new file mode 100644 index 00000000000..0b96c6be2d6 --- /dev/null +++ b/content/es/containers/troubleshooting/log-collection.md @@ -0,0 +1,693 @@ +--- +aliases: +- /es/logs/guide/docker-logs-collection-troubleshooting-guide/ +description: Solución de problemas comunes con la recolección de registros en entornos + contenedorizados +further_reading: +- link: /containers/kubernetes/log + tag: Documentación + text: Recolección de registros de Kubernetes +- link: /containers/docker/log + tag: Documentación + text: Recolección de registros de Docker +title: Solución de problemas de recolección de registros de contenedores +--- +## Descripción general {#overview} + +Las aplicaciones contenedorizadas escriben registros en las salidas estándar y de error (`stdout` / `stderr`), que el tiempo de ejecución del contenedor y el orquestador capturan y manejan de diversas maneras. El Agente de Datadog se basa en el manejo de archivos predeterminado de Docker y Kubernetes para gestionar estos archivos de registro. A medida que el Agente de Datadog monitoriza los contenedores en su host, descubre, sigue las últimas líneas, etiqueta e informa esos registros a Datadog para cada contenedor. + +Esta documentación cubre los pasos de solución de problemas para la recolección de registros de **Docker** y **Kubernetes**. Para el contexto completo y los pasos generales de configuración para la recolección de registros de contenedores, consulte la documentación de [Docker][1] y [Kubernetes][2]. + +Para la recolección de registros basada en [**ECS Fargate**][3] y [**EKS Fargate**][4], consulte su documentación dedicada de configuración y solución de problemas. + +## Comprensión de la recolección de registros en Docker y Kubernetes {#understanding-log-collection-in-docker-and-kubernetes} + +En entornos contenedorizados, los registros son recopilados por el Agente de Datadog de dos maneras principales: recolección **basada en archivos** y recolección **basada en sockets** a través de la API de Docker. + +La documentación de Docker y Kubernetes utiliza por defecto la recolección basada en archivos, ya que ofrece mejor rendimiento y confiabilidad. La recolección basada en sockets puede utilizarse en entornos Docker como una opción de respaldo. En clústeres de Kubernetes, la recolección basada en sockets requiere el tiempo de ejecución de Docker, el cual está mayormente obsoleto en la mayoría de las distribuciones de Kubernetes. + +En entornos contenedorizados, Datadog recomienda registrar en los flujos `stdout` / `stderr` en lugar de escribir en archivos de registro que están aislados en los contenedores de la aplicación. Estos flujos permiten una recolección más automatizada y confiable. + +### Archivos de registro {#log-files} + +Con el controlador de registro predeterminado de Docker `json-file`, los registros `stdout`/`stderr` se almacenan en `/var/lib/docker/containers`. Estos registros se pueden recopilar montando `/var/lib/docker/containers` (`c:/programdata/docker/containers` en Windows) en el contenedor del Agente. Por ejemplo: + +```bash +/var/lib/docker/containers/68f21cd4e1e703c8b9ecdab67a5a9e359f1fb46ae1ed2e86f9b4f1f243a0a47d/68f21cd4e1e703c8b9ecdab67a5a9e359f1fb46ae1ed2e86f9b4f1f243a0a47d-json.log. +``` + +Si este punto de montaje no existe, el Agente recurre a la recolección basada en sockets. Accediendo a la API de Docker a través del socket en `/var/run/docker.sock`. + +En Kubernetes, los registros `stdout`/`stderr` se almacenan en `/var/log/pods` de forma predeterminada. La estructura de carpetas se configura para cada pod y para cada contenedor dentro de ese pod. Por ejemplo: + +```bash +/var/log/pods/default_my-deployment-55d847444b-2fkch_342819ce-4419-435b-9881-4a3deff618cc/my-container/0.log +``` + +Si el contenedor en el pod se reinicia en Kubernetes, se incrementa automáticamente el nombre del archivo (`0.log` -> `1.log`), lo cual el Agente tiene en cuenta. Consulte [recolección de registros de Kubernetes][2] para más información. + +A medida que el Agente descubre los contenedores correspondientes en el host, busca sus archivos de registro según la estructura de carpetas y archivos esperada por entorno. + +### Autodiscovery del Agente {#agent-autodiscovery} + +Por defecto, el Agente solo recopila registros de contenedores cuando la recopilación de registros está habilitada y ya sea: + +- `logs_config.container_collect_all` está habilitado para recopilar registros de todos los contenedores descubiertos +- El contenedor está configurado para la recopilación de registros desde una integración basada en Autodiscovery + +El Agente también tiene en cuenta cualquier regla de exclusión/inclusión de contenedores que haya configurado desde [Gestión de Descubrimiento de Contenedores][5]. + +Por último, el Agente es responsable de recopilar los registros de los contenedores en el mismo host que él mismo. + +Es importante tener en cuenta estas reglas para entender cómo se configura la recopilación de registros para sus contenedores. Si no ve registros para un contenedor dado, debe verificar: + +- ¿Se ha habilitado el Agente para la recopilación de registros? +- ¿Está habilitado el contenedor para la recopilación de registros en relación con las reglas de descubrimiento? +- ¿Está el Agente ejecutándose en el mismo host que el contenedor deseado? + +#### El contenedor recopila toda la configuración {#container-collect-all-configuration} + +Para instrucciones completas sobre cómo habilitar la recopilación de registros, consulte la documentación de recopilación de registros de [Docker][1] y [Kubernetes][2]. Para referencia rápida, puede ver ejemplos sobre cómo configurar el Agente para habilitar la recopilación de registros y habilitar la función `container_collect_all`, que por defecto está desactivada. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog + #(...) +spec: + #(...) + features: + logCollection: + enabled: true + containerCollectAll: true +``` + +{{% k8s-operator-redeploy %}} +{{% /tab %}} + +{{% tab "Helm" %}} + +```yaml +datadog: + #(...) + logs: + enabled: true + containerCollectAll: true +``` + +{{% k8s-helm-redeploy %}} +{{% /tab %}} + +{{% tab "Agente contenedorizado" %}} + +```bash +DD_LOGS_ENABLED=true +DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true +``` + +{{% /tab %}} +{{< /tabs >}} + +Al usar `container_collect_all`, el Agente recopilará todos los registros de los contenedores descubiertos y los etiquetará con las etiquetas `source` y `service`, coincidiendo con la etiqueta `short_image` del contenedor descubierto. + +Si `container_collect_all` no está habilitado, necesita habilitar individualmente la recolección de registros por contenedor con configuraciones basadas en Autodiscovery. + +#### Configuración de Autodiscovery {#autodiscovery-configuration} + +Autodiscovery le permite configurar de qué contenedores recopila registros el Agente. Datadog recomienda usar [etiquetas de contenedor en Docker][6] o [anotaciones de Pod en Kubernetes][7]. Estas son configuraciones de registros basadas en JSON colocadas en el contenedor/pod correspondiente que emite esos registros. Vea el siguiente ejemplo mínimo: + +{{< tabs >}} +{{% tab "Kubernetes" %}} + +Las anotaciones de Kubernetes deben establecerse en el pod, no en la carga de trabajo principal que lo crea. La anotación debe ajustarse para coincidir con el nombre de su contenedor. + +```yaml +spec: + template: + metadata: + annotations: + ad.datadoghq.com/.logs: | + [{ + "source": "example-source", + "service": "example-service" + }] + spec: + containers: + - name: + image: +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +Las etiquetas de Docker se pueden establecer en el comando docker run, en el archivo de Docker Compose, o integradas en la imagen del contenedor. + +Por ejemplo, en un comando de ejecución: + +``` +-l com.datadoghq.ad.logs='[{"source":"example-source","service":"example-service"}]' +``` + +Vea más ejemplos en [Recolección de registros de Docker](/containers/docker/log/?tab=dockerfile#log-integrations). + +{{% /tab %}} +{{< /tabs >}} + +Con ambas configuraciones, asegúrese de que su configuración: +- Tenga al menos la fuente y el servicio configurados +- Sea un JSON válido +- Esté configurado en su pod de Kubernetes o contenedor de Docker correspondiente +- Utilice el nombre de clave correcto para activar la configuración de registros, no necesita ajustar el nombre de clave según su [sitio de Datadog][8]. + +Para más ejemplos de cómo configurar su configuración de registros, consulte [Configuraciones Avanzadas de Recolección de Registros][9]. + +### Etiquetado {#tagging} + +El Agente asigna automáticamente etiquetas a sus registros en el nivel "alto" de [cardinalidad de etiquetas][10] para cada entorno. Puede ver las [etiquetas de Docker predeterminadas aquí][11] y [etiquetas de Kubernetes aquí][12]. Esto también incluye cualquier etiqueta recopilada por [Unified Service Tagging] o diferentes reglas de extracción de etiquetas de los metadatos del contenedor. + +Para personalizar estas etiquetas, cambiar las reglas de recolección de registros o habilitar la recolección de registros en general, puede aplicar Etiquetas o Anotaciones de Autodiscovery a los contenedores respectivos. + +Las etiquetas en sus registros también pueden provenir de [herencia de etiquetas de host][14]. Todos los datos, incluidos los registros, que ingresan a Datadog pasan por este proceso. En la entrada de Datadog, los registros heredan todas las etiquetas a nivel de host que están asociadas con ese host. Puede ver estas etiquetas en la Lista de Infraestructura para su host. Estos son comúnmente establecidos por: + +- El Agente de Datadog y su descubrimiento automático o configuración manual de `DD_TAGS` proporcionado +- Las integraciones del proveedor de la nube que recopilan y establecen etiquetas para sus hosts + +Por ejemplo, las etiquetas `pod_name` y `short_image` provienen del Agente al establecer esta etiqueta en el envío. Otras etiquetas como `region` y `kube_cluster_name` provienen de la herencia de etiquetas del host en la entrada. + +## Solucionando la recolección de registros de contenedores con comandos del Agente {#troubleshooting-container-log-collection-with-agent-commands} + +El Agente de Datadog que se ejecuta en el mismo nodo que su contenedor de aplicación es responsable de recopilar los registros de ese contenedor. Al ejecutar estos comandos, especialmente en entornos de Kubernetes, asegúrese de estar trabajando con el pod del Agente correcto para su contenedor de aplicación deseado. + +Para una lista de comandos útiles de solución de problemas, consulte [Comandos del Agente][15]. + +### Estado del Agente {#agent-status} + +Puede ejecutar el comando de estado del Agente para ver si el Agente de Registros está experimentando algún problema. + +{{< tabs >}} +{{% tab "Kubernetes" %}} + +``` +kubectl exec -it -- agent status +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +``` +docker exec -it agent status +``` + +{{% /tab %}} +{{< /tabs >}} + +Este comando le muestra el estado del Agente de Registros en general y el recolector de registros para cada contenedor que el Agente está monitoreando: + +```text +========== +Logs Agent +========== + Reliable: Sending compressed logs in HTTPS to agent-http-intake.logs.datadoghq.com on port 443 + BytesSent: 8.60922316e+08 + EncodedBytesSent: 3.9744538e+07 + LogsProcessed: 604328 + LogsSent: 60431 + + ============ + Integrations + ============ + + default/my-deployment-55d847444b-2fkch/my-container + --------------------------------------------------- + - Type: file + Identifier: ba778eaff01fc3555b6ad4a809e78949065bd34ebe2c42522a1bdd1d3b684fb5 + Path: /var/log/pods/default_my-deployment-55d847444b-2fkch_342819ce-4419-435b-9881-4a3deff618cc/my-container/*.log + Service: example-service + Source: example-source + Status: OK + 1 files tailed out of 1 files matching + Inputs: + /var/log/pods/default_my-deployment-55d847444b-2fkch_342819ce-4419-435b-9881-4a3deff618cc/my-container/0.log + Bytes Read: 5075 + Pipeline Latency: + Average Latency (ms): 0 + 24h Average Latency (ms): 0 + Peak Latency (ms): 0 + 24h Peak Latency (ms): 0 +``` + +Si el Estado del Agente de Registros no se parece al anterior, consulte los consejos de solución de problemas en las siguientes secciones. + +Cada recolector de registros individual proporciona información detallada sobre cómo el Agente está recolectando registros para un contenedor específico. Usando el ejemplo de Kubernetes anterior, esta salida nos dice: + +- **Nombre del recolector** (`default/my-deployment-55d847444b-2fkch/my-container`) identifica el namespace, pod y contenedor. +- **Identificador** (`ba778eaff...`) es el ID del contenedor individual que se está monitoreando. +- **Ruta** y **Entradas** muestran las ubicaciones donde el Agente buscó e identificó los archivos de registro del contenedor. +- **Servicio** y **Fuente** resumen las etiquetas utilizadas. + +En Docker, la salida es en gran medida la misma, solo que el nombre del recolector de registros individual es diferente. + +Si ve el siguiente mensaje cuando ejecute el comando de estado del Agente: + +``` +========== +Logs Agent +========== + + Logs Agent is not running +``` +Esto significa que no habilitó la recolección de registros en el Agente. + +Si el Estado del Agente de Registros no muestra Integraciones y ve `LogsProcessed: 0` y `LogsSent: 0`: + +``` +========== +Logs Agent +========== + + LogsProcessed: 0 + LogsSent: 0 +``` +Este estado significa que los registros están habilitados, pero no ha especificado de qué contenedores debe recolectar el Agente. + +### Verificación de configuración del agente {#agent-configcheck} + +Puede ejecutar el comando `agent configcheck` para imprimir todas las configuraciones cargadas y resueltas en un Agente en ejecución. + +{{< tabs >}} +{{% tab "Kubernetes" %}} + +``` +kubectl exec -it -- agent configcheck +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +``` +docker exec -it agent configcheck +``` + +{{% /tab %}} +{{< /tabs >}} + +Este comando le muestra la configuración del recolector de registros, utilizando el `Configuration source` que hace referencia al ID del contenedor. Esto se puede usar para coincidir con la salida del `agent status`. + +``` +=== check === +Configuration provider: kubernetes-container-allinone +Configuration source: container:containerd://ba778eaff01fc3555b6ad4a809e78949065bd34ebe2c42522a1bdd1d3b684fb5 +Log Config: +[{"service":"example-service","source":"example-source"}] +Autodiscovery IDs: +* containerd://ba778eaff01fc3555b6ad4a809e78949065bd34ebe2c42522a1bdd1d3b684fb5 +``` + +El `Log Config` aplicado desde Autodiscovery proporciona etiquetas personalizadas `service` y `source` que se muestran como `[{"service":"example-service","source":"example-source"}]`. La salida del `configcheck` es útil para verificar cómo el Agente configuró la recolección de registros para un contenedor dado basado en su ID de contenedor. + +Al usar `logs_config.container_collect_all`, si no se proporciona una configuración única, verá que esto se establece por defecto en `[{}]` para el contenedor. + + +### Agente de registros en flujo {#agent-stream-logs} + +Puede ejecutar el comando `agent stream-logs` para transmitir registros a la consola que el Agente está viendo en tiempo real, junto con los metadatos asociados y el contenido del registro. + +{{< tabs >}} +{{% tab "Kubernetes" %}} + +``` +kubectl exec -it -- agent stream-logs + +# Stream logs relative to "Namespace/Pod Name/Container Name" based name +kubectl exec -it -- agent stream-logs --name +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +``` +docker exec -it agent stream-logs +``` + +{{% /tab %}} +{{< /tabs >}} + +Puede filtrar esta salida con la bandera `--name`, que coincide con el formato de nomenclatura de Kubernetes (Namespace/Nombre del Pod/Contenedor). Alternativamente, puede filtrar según las etiquetas aplicadas con la bandera `--service` o `--source`. + +Para encontrar el ``, use el comando `agent status`. Por ejemplo, `default/my-deployment-55d847444b-2fkch/my-container`: + +``` +========== +Logs Agent +========== + ... + ============ + Integrations + ============ + default/my-deployment-55d847444b-2fkch/my-container + --------------------------------------------------- + ... +``` +Este comando imprimirá continuamente sus registros según lo informado por el Agente: + +```text +$ agent stream-logs --name default/my-deployment-55d847444b-2fkch/my-container +... +Integration Name: default/my-deployment-55d847444b-2fkch/my-container | Type: file | Status: info | Timestamp: 2025-05-12 23:45:09.016005644 +0000 UTC | Hostname: example-0002 | Service: example-service | Source: example-source | Tags: filename:0.log,dirname:/var/log/pods/default_my-deployment-55d847444b-2fkch_342819ce-4419-435b-9881-4a3deff618cc/my-container,image_name:busybox,short_image:busybox,image_tag:latest,kube_namespace:default,kube_qos:BestEffort,kube_container_name:my-container,kube_ownerref_kind:replicaset,image_id:docker.io/library/busybox@sha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112,kube_deployment:my-deployment,kube_replica_set:my-deployment-55d847444b,pod_phase:running,pod_name:my-deployment-55d847444b-2fkch,kube_ownerref_name:my-deployment-55d847444b,container_id:ba778eaff01fc3555b6ad4a809e78949065bd34ebe2c42522a1bdd1d3b684fb5,display_container_name:my-container_my-deployment-55d847444b-2fkch,container_name:my-container | Message: 2025-11-20T23:45:08 INFO Sample Info Log +Integration Name: default/my-deployment-55d847444b-2fkch/my-container | Type: file | Status: info | Timestamp: 2025-05-12 23:45:09.016049347 +0000 UTC | Hostname: example-0002 | Service: example-service | Source: example-source | Tags: filename:0.log,dirname:/var/log/pods/default_my-deployment-55d847444b-2fkch_342819ce-4419-435b-9881-4a3deff618cc/my-container,image_name:busybox,short_image:busybox,image_tag:latest,kube_namespace:default,kube_qos:BestEffort,kube_container_name:my-container,kube_ownerref_kind:replicaset,image_id:docker.io/library/busybox@sha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112,kube_deployment:my-deployment,kube_replica_set:my-deployment-55d847444b,pod_phase:running,pod_name:my-deployment-55d847444b-2fkch,kube_ownerref_name:my-deployment-55d847444b,container_id:ba778eaff01fc3555b6ad4a809e78949065bd34ebe2c42522a1bdd1d3b684fb5,display_container_name:my-container_my-deployment-55d847444b-2fkch,container_name:my-container | Message: 2025-11-20T23:45:08 ERROR Sample Error Log +``` + +Cada línea debe proporcionar el nombre de la integración, tipo, estado, marca de tiempo, nombre de host, servicio, fuente, etiquetas de contenedor y el mensaje. Esto muestra qué registros está recolectando el Agente, qué metadatos están asociados con esos registros y qué mensaje se envía. + +Presione `Ctrl + C` para salir del proceso de transmisión. + +### Capturando el archivo de registro en bruto {#capturing-the-raw-log-file} + +Para verificar si el Agente está haciendo seguimiento de los registros correctamente, puede copiar el archivo de registro y examinarlo usando el [`agent status`comando](#agent-status). + +Ejecute el comando `agent status` y revise la sección "Agente de Registros" para el contenedor en cuestión. Por ejemplo, para un Pod llamado `my-deployment-98878c5d8-mc2sk` con el contenedor `my-container`, puede verse así: + +```text + default/my-deployment-98878c5d8-mc2sk/my-container + -------------------------------------------------- + - Type: file + Identifier: fa54113fffebc83ffef4bd863c8c1012bd5cfb19311a4dcd7d8e9b5271dc29fe + Path: /var/log/pods/default_my-deployment-98878c5d8-mc2sk_3d602ae0-a0ef-4fe2-b703-3975d2af6947/my-container/*.log + Service: busybox + Source: busybox + Status: OK + 1 files tailed out of 1 files matching + Inputs: + /var/log/pods/default_my-deployment-98878c5d8-mc2sk_3d602ae0-a0ef-4fe2-b703-3975d2af6947/my-container/0.log +``` + +Podemos ver el `Path` donde el Agente está buscando y el `Inputs` mostrando el archivo de registro descubierto como `/var/log/pods/default_my-deployment-98878c5d8-mc2sk_3d602ae0-a0ef-4fe2-b703-3975d2af6947/my-container/0.log`. + +Dado que el enlace está abierto en el Pod del Agente, puede copiar este archivo desde el Pod del Agente a su máquina local, utilizando un comando `kubectl cp`: + +``` +kubectl cp : +``` + +Si el Pod del Agente en el ejemplo se llamara `datadog-agent-xxxxx`, se vería así: + +```text +kubectl cp datadog-agent-xxxxx:/var/log/pods/default_my-deployment-98878c5d8-mc2sk_3d602ae0-a0ef-4fe2-b703-3975d2af6947/my-container/0.log my-container.log +``` +Puede revisar el archivo copiado para ver los registros exactos que el Agente ve para identificar si los registros necesarios son capturados por Kubernetes. Lo mismo se puede hacer para los contenedores de Docker en su ruta `/var/lib/docker/containers` y un comando docker cp. + +## Problemas comunes {#common-issues} + +Existen problemas comunes que pueden interferir al enviar registros a Datadog en entornos contenedorizados. Si experimenta problemas al enviar registros a Datadog, revise los problemas comunes a continuación. Si continúa teniendo problemas, contacte a nuestro equipo de soporte para obtener más ayuda. + +### Preprocesamiento de nombres de host {#hostname-preprocessing} + +Un problema común ocurre si los registros en bruto tienen un atributo JSON para un `host`, `hostname` o `syslog.hostname`. Por ejemplo: + +{{< img src="logs/troubleshooting/hostname_preprocessing.png" alt="ejemplo de preprocesamiento de nombres de host" >}} + +Los registros formateados en JSON pasan por un conjunto de reglas de preprocesamiento relativas a los atributos reservados, como `timestamp` o `level` para establecer la marca de tiempo oficial o el nivel de registro del log. Uno de estos atributos reservados es para [preprocesamiento de servidor][16], donde un atributo JSON de `host`, `hostname` o `syslog.hostname` se convierte en el `host` oficial del registro. Esto resulta en que esas declaraciones de registro se atribuyan al servidor "incorrecto" y, como resultado, no heredan las etiquetas a nivel de servidor esperadas del servidor "original". + +Puede consultar los registros que coinciden con el atributo JSON de `@host:* OR @hostname:* OR @syslog.hostname:*` para mostrar qué registros están utilizando activamente este preprocesamiento. + +Hay algunas opciones para solucionar este problema. +- Si es posible, actualice la aplicación para evitar registrar un atributo JSON `host` o `hostname`, ya sea eliminándolo o cambiándolo a otra clave. +- Actualice sus [reglas de preprocesamiento globales][17] para omitir este comportamiento. Sin embargo, cualquier registro dependiente de esto perdería esa funcionalidad. +- Agregue una configuración de Autodiscovery para crear una [configuración de registro personalizada que enmascare la palabra clave del host][18]. + +{{< tabs >}} +{{% tab "Kubernetes" %}} + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: '' + annotations: + ad.datadoghq.com/.logs: |- + [{ + "source": "example-source", + "service": "example-service", + "log_processing_rules": [{ + "type": "mask_sequences", + "name": "replace_host_key", + "replace_placeholder": "\"app_host\"", + "pattern": "\"host\"" + }] + }] +spec: + containers: + - name: + image: +``` + +{{% /tab %}} +{{% tab "Docker" %}} + +```yaml + labels: + com.datadoghq.ad.logs: >- + [{ + "source": "example-source", + "service": "example-service", + "log_processing_rules": [{ + "type": "mask_sequences", + "name": "replace_host_key", + "replace_placeholder": "\"app_host\"", + "pattern": "\"host\"" + }] + }] +``` + +{{% /tab %}} +{{< /tabs >}} + +Las reglas anteriores buscan la cadena `"host"` (incluidas las comillas) y las reemplazan con `"app_host"` para mantener la estructura JSON. Reemplace el patrón con `hostname` si es necesario para sus registros. + +También puede agregar una [regla de procesamiento global][19] para que el Agente enmascare palabras clave en todos los registros que está procesando utilizando la variable de entorno `DD_LOGS_CONFIG_PROCESSING_RULES`. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + override: + nodeAgent: + env: + - name: DD_LOGS_CONFIG_PROCESSING_RULES + value: '[{"type":"mask_sequences","name":"replace_host_key","replace_placeholder":"\"app_host\"","pattern":"\"host\""}]' +``` + +{{% /tab %}} +{{% tab "Helm" %}} + +```yaml +datadog: + env: + - name: DD_LOGS_CONFIG_PROCESSING_RULES + value: '[{"type":"mask_sequences","name":"replace_host_key","replace_placeholder":"\"app_host\"","pattern":"\"host\""}]' +``` + +{{% /tab %}} + +{{% tab "Variable de Entorno" %}} + +``` +DD_LOGS_CONFIG_PROCESSING_RULES='[{"type":"mask_sequences","name":"replace_host_key","replace_placeholder":"\"app_host\"","pattern":"\"host\""}]' +``` +{{% /tab %}} +{{< /tabs >}} + + +### Faltan etiquetas a nivel de host en nuevos hosts o nodos {#missing-host-level-tags-on-new-hosts-or-nodes} + +Al enviar registros a Datadog desde un host o nodo recién creado, puede tardar unos minutos en que las etiquetas a nivel de host sean [heredadas][20]. Como resultado, las etiquetas a nivel de host pueden faltar en estos registros. + +Para remediar este problema, puede usar la variable de entorno `DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION` para configurar una duración (en minutos). El Agente de Datadog adjunta manualmente las etiquetas a nivel de host que conoce a cada registro enviado durante esta duración. Después de esta duración, el Agente vuelve a depender de la herencia de etiquetas en la entrada. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + override: + nodeAgent: + env: + - name: DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION + value: "10m" +``` + +{{% /tab %}} +{{% tab "Helm" %}} + +```yaml +datadog: + env: + - name: DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION + value: "10m" +``` + +{{% /tab %}} + +{{% tab "Variable de Entorno" %}} + +``` +DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION='10m' +``` +{{% /tab %}} +{{< /tabs >}} + +### Faltan etiquetas en nuevos contenedores o pods {#missing-tags-on-new-containers-or-pods} + +Al enviar registros a Datadog desde contenedores o Pods recién creados, el etiquetador interno del Agente de Datadog puede no tener aún las etiquetas relacionadas con el contenedor/pod. Como resultado, las etiquetas pueden faltar en estos registros. + +Para remediar este problema, puede usar la variable de entorno `DD_LOGS_CONFIG_TAGGER_WARMUP_DURATION` para configurar una duración (en segundos) para que el Agente de Datadog espere antes de comenzar a enviar registros desde contenedores y Pods recién creados. El valor predeterminado es `0`. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + override: + nodeAgent: + env: + - name: DD_LOGS_CONFIG_TAGGER_WARMUP_DURATION + value: "5" +``` + +{{% /tab %}} +{{% tab "Helm" %}} + +```yaml +datadog: + env: + - name: DD_LOGS_CONFIG_TAGGER_WARMUP_DURATION + value: "5" +``` + +{{% /tab %}} + +{{% tab "Variable de Entorno" %}} + +``` +DD_LOGS_CONFIG_TAGGER_WARMUP_DURATION='5' +``` +{{% /tab %}} +{{< /tabs >}} + +### Pods de corta duración {#short-lived-pods} + +Por defecto, el Agente busca cada 5 segundos nuevos contenedores. Para la versión v6.12+ del Agente, los registros de contenedores de corta duración (detenidos o fallidos) se recopilan automáticamente al usar el método de recopilación de registros de archivos. Esto también incluye la recopilación de registros de contenedores de inicialización. Mientras esos archivos aún existan. + +En Kubernetes, la mayoría de los registros de pods y sus contenedores se retienen el tiempo suficiente para que el Agente los informe, incluso para procesos de corta duración. Los CronJobs y trabajos de Kubernetes, por defecto, retendrán el pod el tiempo suficiente para que el Agent informe sus registros, incluso para contenedores completados. Sin embargo, si especifica una [regla de limpieza de trabajo][21] `ttlSecondsAfterFinished`, Datadog recomienda al menos 15 segundos para permitir que el Agent maneje esos. + +### Problemas de recolección de registros de Docker desde archivos {#docker-log-collection-from-file-issues} + +El Agent recolecta registros de Docker desde los archivos de registro en disco por defecto en las versiones 6.33.0/7.33.0+, siempre que los archivos de registro en disco sean accesibles por el Agent. `DD_LOGS_CONFIG_DOCKER_CONTAINER_USE_FILE` se puede establecer en `false` para deshabilitar este comportamiento. + +Al recolectar registros de contenedores de Docker desde archivos, el Agent recurre a la recolección desde el socket de Docker si no puede leer del directorio donde se almacenan los registros de contenedores de Docker (`/var/lib/docker/containers` en Linux). Para diagnosticar esto, verifique el estado del Agent de logs y busque una entrada de tipo archivo que muestre un error similar al siguiente: + +``` +- Type: docker + Service: stable + Source: stable + Status: OK + The log file tailer could not be made, falling back to socket + Inputs: + 68f21cd4e1e703c8b9ecdab67a5a9e359f1fb46ae1ed2e86f9b4f1f243a0a47d + Bytes Read: 160973 +``` + +Este estado significa que el Agent no puede encontrar un archivo de registro para un contenedor dado. Para resolver este problema, verifique que la carpeta que contiene los registros de contenedores de Docker esté correctamente expuesta al contenedor del Datadog Agent. En Linux, corresponde a `-v /var/lib/docker/containers:/var/lib/docker/containers:ro` en la línea de comandos que inicia el contenedor del Agent, mientras que en Windows corresponde a `-v c:/programdata/docker/containers:c:/programdata/docker/containers:ro`. + +Tenga en cuenta que el directorio relativo al host subyacente puede ser diferente debido a la configuración específica del demonio de Docker; esto no es un problema siempre que haya un mapeo correcto de volúmenes de Docker. Por ejemplo, utilice `-v /data/docker/containers:/var/lib/docker/containers:ro` si el directorio de datos de Docker ha sido reubicado a `/data/docker` en el host subyacente. + +Si se recolectan registros pero las líneas individuales parecen estar divididas, verifique que el demonio de Docker esté utilizando el [controlador de registro JSON](#different-docker-log-driver). + +### Agent basado en host {#host-based-agent} + +Si está instalando el Agent en el host en lugar de ejecutarlo en un contenedor de Docker, el usuario `dd-agent` debe ser agregado al grupo de Docker para tener permiso para leer desde el socket de Docker. Si ve los siguientes registros de error del Agent: + +```text + UTC | CORE | INFO | (pkg/autodiscovery/autoconfig.go:360 in initListenerCandidates) | docker listener cannot start, will retry: temporary failure in dockerutil, will retry later: could not determine docker server API version: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/version: dial unix /var/run/docker.sock: connect: permission denied + UTC | CORE | ERROR | (pkg/autodiscovery/config_poller.go:123 in collect) | Unable to collect configurations from provider docker: temporary failure in dockerutil, will retry later: could not determine docker server API version: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/version: dial unix /var/run/docker.sock: connect: permission denied +``` + +Agregue el Agent al grupo de Docker, y ejecute el siguiente comando: + +``` +usermod -a -G docker dd-agent +``` +**Nota:** Cuando instala el Agent en el host, este no tiene permiso para acceder a ` /var/lib/docker/containers` ya que esto requiere acceso de root. Como resultado, recolectará registros del socket de Docker. + + +### Diferente controlador de registro de Docker {#different-docker-log-driver} + +El valor predeterminado de Docker es el [controlador de registro json-file][23], por lo que el Agent intenta leer primero desde esta estructura. Si sus contenedores están configurados para usar un controlador de registro diferente, el Agent de logs indicará que puede encontrar sus contenedores con éxito, pero no puede recopilar sus registros del archivo. En entornos de Docker, Datadog recomienda usar el `json-file` controlador de registro para la experiencia óptima del Agent. Sin embargo, el Agent también puede configurarse para leer desde el `journald` controlador de registro. + +1. Si no está seguro de qué controlador de registro están usando sus contenedores, utilice `docker inspect ` para ver qué controlador de registro ha configurado. El siguiente bloque aparece en Docker Inspect cuando el contenedor está usando el controlador de registro JSON. + + ``` + "LogConfig": { + "Type": "json-file", + "Config": {} + }, + ``` + +2. Si el contenedor está configurado para el controlador de registro journald, el siguiente bloque aparece en el Docker Inspect: + ``` + "LogConfig": { + "Type": "journald", + "Config": {} + }, + ``` + +3. Para recopilar registros del controlador de registro journald, configure la integración journald [siguiendo la documentación de Datadog-Journald][24]. +4. Monte el archivo YAML en su contenedor siguiendo las instrucciones en la [documentación del Docker Agent][25]. Para más información sobre cómo configurar controladores de registro para contenedores de Docker, [vea esta documentación][26]. + +## Lectura adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/containers/docker/log/ +[2]: /es/containers/kubernetes/log/ +[3]: /es/integrations/aws-fargate/?tab=webui#log-collection +[4]: /es/integrations/eks_fargate/?tab=admissioncontrollerdatadogoperator#log-collection +[5]: /es/containers/guide/container-discovery-management +[6]: /es/containers/docker/log/?tab=dockerfile#log-integrations +[7]: /es/containers/kubernetes/log/?tab=datadogoperator#autodiscovery-annotations +[8]: /es/getting_started/site/ +[9]: /es/agent/logs/advanced_log_collection/?tab=configurationfile +[10]: /es/getting_started/tagging/assigning_tags/?tab=containerizedenvironments#tags-cardinality +[11]: /es/containers/docker/tag/?tab=containerizedagent#out-of-the-box-tagging +[12]: /es/containers/kubernetes/tag/?tab=datadogoperator +[13]: /es/getting_started/tagging/unified_service_tagging/?tab=kubernetes +[14]: /es/getting_started/tagging/#tag-inheritance +[15]: /es/agent/configuration/agent-commands/ +[16]: /es/logs/log_configuration/pipelines/?tab=host#preprocessing +[17]: https://app.datadoghq.com/logs/pipelines +[18]: /es/agent/logs/advanced_log_collection/?tab=kubernetes#scrub-sensitive-data-from-your-logs +[19]: /es/agent/logs/advanced_log_collection/?tab=environmentvariable#global-processing-rules +[20]: /es/getting_started/tagging/assigning_tags/?tab=noncontainerizedenvironments#integration-inheritance +[21]: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/#cleanup-for-finished-jobs +[22]: /es/logs/guide/docker-logs-collection-troubleshooting-guide/#your-containers-are-not-using-the-json-logging-driver +[23]: https://docs.docker.com/engine/logging/drivers/json-file/ +[24]: /es/integrations/journald/?tab=host#setup +[25]: /es/containers/docker/#mounting-conf-d +[26]: https://docs.docker.com/engine/logging/drivers/journald/ \ No newline at end of file diff --git a/content/es/dashboards/widgets/_index.md b/content/es/dashboards/widgets/_index.md index 575480b1300..0613db14258 100644 --- a/content/es/dashboards/widgets/_index.md +++ b/content/es/dashboards/widgets/_index.md @@ -3,94 +3,98 @@ aliases: - /es/graphing/dashboards/widgets - /es/graphing/faq/widgets - /es/graphing/widgets -description: Bloques de construcción de dashboard para visualizar y correlacionar - datos en toda la infraestructura con varios tipos de gráficos y visualizaciones. +description: Bloques de construcción de Dashboard para visualizar y correlacionar + datos en la infraestructura con varios tipos de gráficos y displays. further_reading: - link: /dashboards/ tag: Documentación - text: Más información sobre dashboards + text: Aprenda más sobre Dashboards - link: /dashboards/widgets/configuration tag: Documentación - text: Conoce las opciones de configuración de los widgets y las mejores prácticas + text: Conozca las opciones de configuración de widgets y las mejores prácticas - link: /dashboards/widgets/types/ tag: Documentación - text: Explorar todos los tipos de widgets disponibles + text: Explore todos los tipos de widgets disponibles title: Widgets --- +## Resumen {#overview} -## Información general +Los Dashboard widgets son representaciones visuales de datos. Sirven como los bloques de construcción para sus [Dashboards][2] para visualizar y correlacionar sus datos a través de su infraestructura. Pueden contener diferentes tipos de información, como gráficos, imágenes, registros y estados, para darle una visión general de sus sistemas y entornos. -Los widgets de dashboard son representaciones visuales de los datos. Sirven como bloques de construcción para tus [dashboards][2] para visualizar y correlacionar tus datos a través de tu infraestructura. Pueden contener distintos tipos de información, como gráficos, imágenes, logs y estados, para ofrecerte una visión general de tus sistemas y entornos. +## Comience {#get-started} -## Para empezar +La forma más rápida de incorporar widgets relevantes a sus datos es clonar un Dashboard de la [lista preestablecida][1], que incluye Dashboards creados por otros miembros de su organización y plantillas listas para usar para sus integraciones instaladas. Después de clonar un Dashboard, puede personalizar los widgets para su caso de uso. -La forma más rápida de incorporar widgets relevantes para tus datos es clonar un dashboard de la [lista de preajustes][1], que incluye dashboards creados por otros miembros de tu organización y plantillas predefinidas para tus integraciones instaladas. Después de clonar un dashboard, puedes personalizar los widgets según tu caso de uso. - -{{< whatsnext desc="Guías adicionales y cursos para conocer sobre widgets:" >}} - {{< nextlink href="/getting_started/dashboards/" >}}Introducción a dashboards: instrucciones para crear un dashboard con widgets{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/dashboard-graph-widgets" >}}Widgets de gráfico de dashboard: curso del centro de aprendizaje que explica cómo crear, configurar y usar widgets de gráfico de dashboard{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/intro-dashboards" >}}Introducción a dashboards: curso del centro de aprendizaje que explica cómo crear un dashboard en un entorno de pruebas{{< /nextlink >}} +{{< whatsnext desc="Guías y cursos adicionales para aprender sobre widgets:" >}} + {{< nextlink href="/getting_started/dashboards/" >}}Introducción a Dashboards: Guía para construir un Dashboard con widgets{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/dashboard-graph-widgets" >}}Dashboard Graph Widgets: Curso del centro de aprendizaje que explica cómo crear, configurar y usar los Dashboard Graph Widgets{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/intro-dashboards" >}}Introduction to Dashboards: Curso del centro de aprendizaje que explica cómo construir un Dashboard en un entorno de pruebas{{< /nextlink >}} {{< /whatsnext >}} -### Añadir un widget a tu dashboard +### Agregue un widget a su Dashboard {#add-a-widget-to-your-dashboard} + +Para comenzar a usar widgets en sus Dashboards: + +1. Navegue a la [Dashboard List][1] en Datadog. +2. Haga clic en {{< ui >}}New Dashboard{{< /ui >}} o seleccione un Dashboard existente para editar. +3. Haga clic en {{< ui >}}Add Widget{{< /ui >}}. Elija entre una variedad de tipos de widgets, como series temporales, gráfico de barras, tabla o flujo de eventos. +4. Configure su widget: + - Seleccione la fuente de datos: Elija métricas, registros, trazas u otras fuentes de datos. + - Personalice la visualización: Ajuste la configuración de visualización, unidades y períodos de tiempo para adaptarse a sus necesidades. + - Agregue contexto: Utilice enlaces personalizados, formato condicional y agrupación para obtener información mejorada. +5. Guarde su Dashboard y compártalo con su equipo o externamente según sea necesario. -Para empezar a utilizar widgets en tus dashboards: +Para más información, consulte [Widget Configuration][3] y explore los [Widget Types][4] disponibles. -1. Navega hasta la [Lista de dashboards][1] en Datadog. -2. Haz clic en **New Dashboard** (Nuevo dashboards) o selecciona un dashboard existente para editarlo. -3. Haz clic en **Add Widget** (Añadir widget). Elige entre una variedad de tipos de widgets como series de tiempo, gráfico de barras, tabla o flujo de eventos. -4. Configurar tu widget: - - Seleccionar la fuente de datos: elija métricas, logs, trazas u otras fuentes de datos. - - Personalizar la visualización: ajusta la configuración de visualización, las unidades y los plazos para adaptarlos a tus necesidades. - - Añadir contexto: utiliza enlaces personalizados, formato condicional y agrupación para obtener información mejorada. -5. Guarda tu dashboard y compártelo con tu equipo o externamente según sea necesario. +### Organice los widgets con pestañas {#organize-widgets-with-tabs} -Para más información, consulta [Configuración de widgets][3] y explora los [Tipos de widgets][4] disponibles. +A medida que los Dashboards crecen, utilice pestañas para agrupar los widgets en secciones nombradas. En modo de edición, abra el menú de compartir de un widget y seleccione **Mover a pestaña** para asignarlo a una pestaña existente o crear una nueva. Las pestañas aparecen como una barra de navegación en la parte superior del Dashboard, permitiendo a los usuarios navegar directamente a la sección que necesitan. Para más información, consulte [Pestañas][5]. -## Fuentes de datos +## Fuentes de datos {#data-sources} -Los widgets pueden visualizar datos de múltiples fuentes de Datadog, entre ellas: +Los widgets pueden visualizar datos de múltiples fuentes de Datadog, incluyendo: -- **Trazas de APM**: datos de monitorización del rendimiento de las aplicaciones -- **Eventos**: eventos personalizados, despliegues y anotaciones. -- **Logs**: eventos de log, análisis de logs y métricas basadas en logs -- **Métricas**: infraestructura, aplicación y métricas personalizadas -- **RUM**: Real User Monitoring y datos de synthetic test -- **SLOs**: objetivos de nivel de servicio (SLO) y presupuestos de errores -- **Seguridad**: señales de seguridad y datos de cumplimiento +- **APM Traces**: Datos de monitoreo del rendimiento de la aplicación. +- **Eventos**: Eventos personalizados, implementaciones y anotaciones +- **Registros**: Eventos de registro, análisis de registros y métricas basadas en registros +- **Métricas**: Infraestructura, aplicación y métricas personalizadas +- **RUM**: Real User Monitoring y datos de prueba Synthetic +- **SLOs**: Service Level Objectives y error budgets +- **Seguridad**: Señales de seguridad y datos de cumplimiento -## Casos de uso común +## Casos de uso comunes {#common-use-cases} -{{% collapse-content title="Monitorización de infraestructura" level="h4" expanded=false %}} -- Utiliza widgets **Series temporales** para las métricas de CPU, memoria y red a lo largo del tiempo -- Utiliza widgets **Mapa de host** para visualizar el uso de recursos en toda tu infraestructura -- Utiliza los widgets **Lista principal** para identificar los hosts o servicios que consumen más recursos. +{{% collapse-content title="Infrastructure Monitoring" level="h4" expanded=false %}} +- Utilice **widgets de series temporales** para métricas de CPU, memoria y red a lo largo del tiempo +- Utilice **widgets de hostmap** para visualizar el uso de recursos en su infraestructura +- Utilice **widgets de lista principal** para identificar los hosts o servicios más intensivos en recursos {{% /collapse-content %}} -{{% collapse-content title="Rendimiento de las aplicaciones" level="h4" expanded=false %}} -- Utiliza widgets **Series temporales** para realizar un seguimiento de los tiempos de respuesta, las tasas de error y el rendimiento. -- Utiliza los widgets **Resumen de servicios** para obtener una visión general del estado de los servicios. -- Utiliza los widgets **Mapa de topología** para visualizar las dependencias de los servicios y el flujo de datos. +{{% collapse-content title="Rendimiento de Aplicaciones" level="h4" expanded=false %}} +- Utilice **widgets de series temporales** para rastrear tiempos de respuesta, tasas de error y rendimiento +- Utilice **widgets de Service Summary** para obtener una visión general de la salud del servicio a alto nivel. +- Utilice **widgets de Topology Map** para visualizar las dependencias del servicio y el flujo de datos. {{% /collapse-content %}} -{{% collapse-content title="Inteligencia empresarial" level="h4" expanded=false %}} -- Utiliza widgets **Valor de consulta** para indicadores clave de rendimiento y métricas empresariales. -- Utiliza widgets **Embudo** para realizar un seguimiento de la conversión de los usuarios a través de tu aplicación. -- Utiliza widgets de **Retención** para analizar el compromiso y la rotación de los usuarios. +{{% collapse-content title="Inteligencia Empresarial" level="h4" expanded=false %}} +- Utilice **widgets de Query Value** para indicadores clave de rendimiento y métricas empresariales. +- Utilice **widgets de Funnel** para rastrear la conversión de usuarios a través de su aplicación. +- Utilice **widgets de Retention** para analizar el compromiso y la deserción de usuarios. {{% /collapse-content %}} -{{% collapse-content title="Respuesta a incidentes" level="h4" expanded=false %}} -- Utiliza los widgets **Gráfico de alertas** para mostrar el historial y las tendencias de las alertas -- Utiliza los widgets **Resumen de monitor** para conocer el estado actual de las alertas en toda tu infraestructura. -- Utiliza los widgets **Flujo de eventos** para controlar los eventos en tiempo real +{{% collapse-content title="Incident Response" level="h4" expanded=false %}} +- Utilice **widgets de Alert Graph** para mostrar el historial y las tendencias de alertas. +- Utilice **widgets de Monitor Summary** para el estado actual de alertas en su infraestructura. +- Utilice **widgets de Event Stream** para el monitoreo de eventos en tiempo real. {{% /collapse-content %}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/dashboard/lists/preset/1 [2]: /es/dashboards/ [3]: /es/dashboards/widgets/configuration/ -[4]: /es/dashboards/widgets/types/ \ No newline at end of file +[4]: /es/dashboards/widgets/types/ +[5]: /es/dashboards/configure/#tabs \ No newline at end of file diff --git a/content/es/extend/custom_checks/write_agent_check.md b/content/es/extend/custom_checks/write_agent_check.md new file mode 100644 index 00000000000..1cfc73e3065 --- /dev/null +++ b/content/es/extend/custom_checks/write_agent_check.md @@ -0,0 +1,194 @@ +--- +aliases: +- /es/agent/faq/how-do-i-change-the-frequency-of-an-agent-check/ +- /es/agent/faq/agent-5-custom-agent-check/ +- /es/developers/write_agent_check/ +- /es/developers/custom_checks/write_agent_check/ +further_reading: +- link: /extend/ + tag: Documentación + text: Ampliando Datadog +title: Escribiendo una verificación de agente personalizada +--- +## Descripción general {#overview} + +Esta página le guía a través del proceso de construir un básico "¡Hola mundo!" verificación de agente personalizada. También le muestra cómo cambiar el intervalo mínimo de recolección para la verificación. + +## Configuración {#setup} + +### Instalación {#installation} + +Antes de crear una verificación de agente personalizada, instale el [Datadog Agent][1]. + +
    Para trabajar con la última versión del Agent, su verificación de agente personalizada debe ser compatible con Python 3.
    + +### Configuración {#configuration} + +1. Cambie al directorio `conf.d` en su sistema. Para más información sobre dónde encontrar el directorio `conf.d`, consulte los [archivos de configuración del Agent][2]. +2. En el directorio `conf.d`, cree un nuevo archivo de configuración para su nueva verificación de agente. Asigne un nombre al archivo `custom_checkvalue.yaml`. +3. Edite el archivo para incluir lo siguiente: + {{< code-block lang="yaml" filename="conf.d/custom_checkvalue.yaml" >}} +init_config: +instances: + [{}] +{{< /code-block >}} +4. Cree un archivo de verificación en el directorio `checks.d`. Asigne un nombre al archivo `custom_checkvalue.py`. + +
    + Nombrando sus verificaciones: +
      +
    • Es una buena idea prefijar su verificación con custom_ para evitar conflictos con el nombre de una integración de Datadog Agent preexistente. Por ejemplo, si tiene una verificación personalizada de Postfix, nombre sus archivos de verificación custom_postfix.py y custom_postfix.yaml en lugar de postfix.py y postfix.yaml.
    • +
    • Los nombres de los archivos de configuración y verificación deben coincidir. Si su verificación se llama custom_checkvalue.py, su archivo de configuración debe llamarse custom_checkvalue.yaml.
    • +
    +
    +5. Edite el archivo para incluir lo siguiente: + {{< code-block lang="python" filename="checks.d/custom_checkvalue.py" >}} +from checks import AgentCheck +class HelloCheck(AgentCheck): + def check(self, instance): + self.gauge('hello.world', 1) +{{< /code-block >}} +6. [Reinicie el Agent][3] y espere a que aparezca una nueva métrica llamada `hello.world` en el [Resumen de Métricas][4]. + +Si tiene problemas para que su verificación personalizada funcione, verifique los permisos del archivo. El archivo de verificación debe ser legible y ejecutable por el usuario del Agent. Para más pasos de solución de problemas, consulte [Solucionar una verificación de agente][7]. + +### Actualizando el intervalo de recolección {#updating-the-collection-interval} + +Para cambiar el intervalo de recolección de su verificación, utilice la configuración `min_collection_interval` en su archivo `custom_checkvalue.yaml` y especifique un ajuste en segundos. El valor predeterminado es de 15 segundos. Debe agregar el `min_collection_interval` a nivel de instancia. Si su verificación personalizada está configurada para monitorear múltiples instancias, debe configurar el intervalo individualmente por instancia. + +Establecer el `min_collection_interval` en `30` no garantiza que la métrica se recoja cada 30 segundos. El recolector de Agente intenta ejecutar la verificación cada 30 segundos, pero la verificación puede terminar en cola detrás de otras integraciones y verificaciones, dependiendo de cuántas integraciones y verificaciones estén habilitadas en el mismo Agente. Si un método `check` tarda más de 30 segundos en completarse, el Agent nota que la verificación aún se está ejecutando y omite su ejecución hasta el siguiente intervalo. + +#### Establezca un intervalo de recolección {#set-a-collection-interval} + +Para una sola instancia, utilice esta configuración para establecer el intervalo de recolección en 30 segundos: + +{{< code-block lang="yaml" filename="conf.d/custom_checkvalue.yaml" >}} +init_config: + +instances: + - min_collection_interval: 30 +{{< /code-block >}} + +El ejemplo a continuación demuestra cómo cambiar el intervalo para una verificación personalizada hipotética que monitorea un servicio llamado `my_service` en dos servidores separados: + +{{< code-block lang="yaml" >}} +init_config: + +instances: + - host: "http://localhost/" + service: my_service + min_collection_interval: 30 + + - host: "http://my_server/" + service: my_service + min_collection_interval: 30 +{{< /code-block >}} + +### Verificando su verificación {#verifying-your-check} + +Para verificar que su verificación se está ejecutando, utilice el siguiente comando: + +{{< code-block lang="shell" >}} +sudo -u dd-agent -- datadog-agent check +{{< /code-block >}} + +Después de verificar que su verificación se está ejecutando, [reinicie el Agent][3] para incluir la verificación y comenzar a reportar datos. + +## Escribiendo verificaciones que ejecutan programas de línea de comandos {#writing-checks-that-run-command-line-programs} + +Es posible crear una verificación personalizada que ejecute un programa de línea de comandos y capture su salida como una métrica personalizada. Por ejemplo, una verificación puede ejecutar el comando `vgs` para reportar información sobre grupos de volúmenes. + +Debido a que el intérprete de Python que ejecuta las verificaciones está incrustado en el entorno de ejecución Go multihilo, no se admite el uso de los módulos `subprocess` o `multithreading` de la biblioteca estándar de Python. Para ejecutar un subproceso dentro de una verificación, utilice la función [`get_subprocess_output()`][5] del módulo `datadog_checks.base.utils.subprocess_output`. El comando y sus argumentos se pasan a `get_subprocess_output()` en forma de lista, con el comando y sus argumentos como una cadena dentro de la lista. + +Por ejemplo, un comando que se ingresa en el símbolo del sistema de esta manera: + +{{< code-block lang="shell" >}} +vgs -o vg_free +{{< /code-block >}} + +debe pasarse a `get_subprocess_output()` de esta manera: + +{{< code-block lang="python" >}} +out, err, retcode = get_subprocess_output(["vgs", "-o", "vg_free"], self.log, raise_on_empty_output=True) +{{< /code-block >}} + +Cuando ejecute el programa de línea de comandos, la verificación captura la misma salida que al ejecutarlo en la línea de comandos en el terminal. Realice el procesamiento de cadenas en la salida y llame a `int()` o `float()` en el resultado para devolver un tipo numérico. + +Si no realiza el procesamiento de cadenas en la salida del subproceso, o si no devuelve un entero o un flotante, la verificación parece ejecutarse sin errores pero no reporta ninguna métrica o evento. La verificación también falla en devolver métricas o eventos si el usuario del Agent no tiene los permisos correctos en los archivos o directorios referenciados en el comando, o los permisos correctos para ejecutar el comando pasado como argumento a `get_subprocess_output()`. + +Aquí hay un ejemplo de una verificación que devuelve los resultados de un programa de línea de comandos: + +{{< code-block lang="python" >}} +# ... +from datadog_checks.base.utils.subprocess_output import get_subprocess_output + +class LSCheck(AgentCheck): + def check(self, instance): + files, err, retcode = get_subprocess_output(["ls", "."], self.log, raise_on_empty_output=True) + file_count = len(files.split('\n')) - 1 #len() returns an int by default + self.gauge("file.count", file_count,tags=['TAG_KEY:TAG_VALUE'] + self.instance.get('tags', [])) +{{< /code-block >}} + +## Enviando datos desde un balanceador de carga {#sending-data-from-a-load-balancer} + +Un caso de uso común para escribir una verificación personalizada del Agent es enviar métricas de Datadog desde un balanceador de carga. Antes de comenzar, siga los pasos en [Configuración](#configuration). + +Para expandir los archivos para enviar datos desde su balanceador de carga: + +1. Reemplace el código en `custom_checkvalue.py` con lo siguiente (reemplazando el valor de `lburl` con la dirección de su balanceador de carga): + {{< code-block lang="python" filename="checks.d/custom_checkvalue.py" >}} +import urllib2 +import simplejson +from checks import AgentCheck + +class CheckValue(AgentCheck): + def check(self, instance): + lburl = instance['ipaddress'] + response = urllib2.urlopen("http://" + lburl + "/rest") + data = simplejson.load(response) + + self.gauge('coreapp.update.value', data["value"]) +{{< /code-block >}} + +1. Actualice el archivo `custom_checkvalue.yaml` (reemplazando `ipaddress` con la dirección IP de su balanceador de carga): + {{< code-block lang="yaml" filename="conf.d/custom_checkvalue.yaml" >}} +init_config: + +instances: + - ipaddress: 1.2.3.4 +{{< /code-block >}} + +1. [Reinicie su Agent][3]. Dentro de un minuto, deberá ver una nueva métrica aparecer en el [Resumen de Métricas][4] llamada `coreapp.update.value` que envía las métricas desde su balanceador de carga. +1. [Cree un tablero][6] para esta métrica. + +## Versionado del Agent {#agent-versioning} + +Utilice el siguiente bloque try/except para hacer que la verificación personalizada sea compatible con cualquier versión del Agent: + +{{< code-block lang="python" >}} +try: + # first, try to import the base class from new versions of the Agent + from datadog_checks.base import AgentCheck +except ImportError: + # if the above failed, the check is running in Agent version < 6.6.0 + from checks import AgentCheck + +# content of the special variable __version__ will be shown in the Agent status page +__version__ = "1.0.0" + +class HelloCheck(AgentCheck): + def check(self, instance): + self.gauge('hello.world', 1, tags=['TAG_KEY:TAG_VALUE'] + self.instance.get('tags', [])) +{{< /code-block >}} + +## Lectura Adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: http://app.datadoghq.com/account/settings/agent/latest +[2]: /es/agent/configuration/agent-configuration-files/#check-configuration-files +[3]: /es/agent/configuration/agent-commands/?tab=agentv6v7#restart-the-agent +[4]: https://app.datadoghq.com/metric/summary +[5]: https://github.com/DataDog/integrations-core/blob/9414403b361e583e8f1ebcdee2f006c384c61045/datadog_checks_base/datadog_checks/base/utils/subprocess_output.py#L22 +[6]: /es/dashboards/ +[7]: /es/agent/troubleshooting/agent_check_status/ \ No newline at end of file diff --git a/content/es/logs/explorer/_index.md b/content/es/logs/explorer/_index.md new file mode 100644 index 00000000000..df733da64f2 --- /dev/null +++ b/content/es/logs/explorer/_index.md @@ -0,0 +1,76 @@ +--- +aliases: +- /es/logs/explore +- /es/logs/patterns +- /es/logs/graph +- /es/logs/analytics +- /es/logs/explorer/list +- /es/logs/explorer/patterns +- /es/logs/explorer/transactions/ +description: Busque en todos sus registros y realice análisis de registros +further_reading: +- link: logs/explorer/live_tail + tag: Documentación + text: Previsualice sus registros en Live Tail +- link: logs/explorer/saved_views/ + tag: Documentación + text: Configure automáticamente su Log Explorer +- link: https://www.datadoghq.com/blog/datadog-clipboard/ + tag: Blog + text: Agregue una URL de Log Explorer a su portapapeles +- link: https://www.datadoghq.com/blog/send-amazon-vpc-flow-logs-to-data-firehose-and-datadog/ + tag: Blog + text: Envíe registros de flujo de Amazon VPC a Amazon Kinesis Data Firehose y Datadog +- link: https://www.datadoghq.com/blog/ai-powered-log-parsing + tag: Blog + text: Acelere las investigaciones con parseo de registros impulsado por IA +- link: https://learn.datadoghq.com/courses/log-explorer + tag: Centro de Aprendizaje + text: Comenzando con Log Explorer +title: Log Explorer +--- +## Resumen {#overview} + +El [**Log Explorer**][1] es su base de operaciones para la solución de problemas y exploración de registros Ya sea que comience desde cero, desde un [Saved View][2], o llegue aquí desde cualquier otro contexto, como notificaciones de Monitors o widgets de dashboard, puede buscar y filtrar, agrupar, visualizar y exportar registros en Log Explorer + +{{< img src="/logs/explore.png" alt="Explore sus registros ingeridos" style="width:100%;">}} + +## Buscar y filtrar {#search-and-filter} + +{{< ui >}}Search{{< /ui >}} y {{< ui >}}Filter{{< /ui >}} en los registros para reducir, ampliar o cambiar su enfoque en un subconjunto de registros adaptados a su interés actual + + - Para aprender más sobre cómo buscar registros en Log Explorer, lea [Search Logs][3] + - Para comenzar a crear consultas y usar facetas en Log Explorer, lea [Log Search Syntax][4] + - Para aprender cómo [Watchdog Insights][9] revela registros anómalos y valores anómalos en registros de errores dentro de su contexto de búsqueda, lea [Watchdog Insights for Logs][5] + +## Analice {#analyze} + +{{< ui >}}Group{{< /ui >}} sus registros consultados en entidades de nivel superior como campos, patrones y transacciones para derivar o consolidar información + +Para comenzar a identificar patrones y agregar registros por subconjuntos de eventos, consulte [Log Analytics][6] + +## Visualice {#visualize} + +{{< ui >}}Visualize{{< /ui >}} el resultado de sus filtros y agregaciones para comprender mejor sus registros y reunir información decisiva Por ejemplo, puede ver sus registros en una lista para organizar sus datos de registro en columnas, o en un gráfico de series temporales para medir sus datos de registro a lo largo del tiempo + +Para comenzar a visualizar datos de registro en Log Explorer, consulte [Log Visualizations][7] + +## Exporte {#export} + +También puede {{< ui >}}export{{< /ui >}} su vista de Log Explorer para reutilizarla más tarde o en diferentes contextos + +Para aprender cómo exportar sus consultas y visualizaciones de registros, consulte [Export Logs][8] + +## Lectura Adicional {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/logs +[2]: /es/logs/explorer/saved_views/ +[3]: /es/logs/explorer/search +[4]: /es/logs/explorer/search_syntax/ +[5]: /es/logs/explorer/insights +[6]: /es/logs/explorer/analytics +[7]: /es/logs/explorer/visualize +[8]: /es/logs/explorer/export +[9]: /es/watchdog/insights \ No newline at end of file diff --git a/content/es/logs/log_collection/java.md b/content/es/logs/log_collection/java.md index 920977d72ae..1e95db115ea 100644 --- a/content/es/logs/log_collection/java.md +++ b/content/es/logs/log_collection/java.md @@ -4,34 +4,33 @@ aliases: further_reading: - link: /logs/log_configuration/processors tag: Documentación - text: Aprende a procesar tus logs + text: Aprende a procesar tus registros - link: /logs/log_configuration/parsing tag: Documentación - text: Obtén más información sobre el parseo + text: Aprende más sobre el parseo - link: /logs/explorer/ tag: Documentación - text: Aprende a explorar tus logs + text: Aprende a explorar tus registros - link: /logs/explorer/#visualize tag: Documentación - text: Realizar análisis de los logs + text: Realiza análisis de registros - link: /tracing/other_telemetry/connect_logs_and_traces/java/ tag: Documentación - text: Conectar logs y trazas (traces) + text: Conecta registros y trazas - link: /logs/faq/log-collection-troubleshooting-guide/ - tag: FAQ - text: Guía para solucionar problemas relacionados con la recopilación de logs + tag: PREGUNTAS FRECUENTES + text: Guía de solución de problemas de recolección de registros - link: https://www.datadoghq.com/blog/java-logging-guide/ tag: Blog - text: Cómo recopilar, personalizar y estandarizar logs de Java + text: Cómo recolectar, personalizar y estandarizar registros de Java - link: /glossary/#tail tag: Glosario - text: Entrada de glosario para "tail" (cola) -title: Recopilación de logs de Java + text: Entrada del glosario para "seguimiento de las últimas líneas" +title: Recolección de registros de Java --- +Para enviar tus registros a Datadog, registra en un archivo y haz el seguimiento de las últimas líneas [tail][1] de ese archivo con tu Datadog Agent. -Para enviar tus logs a Datadog, loguea un archivo y [supervisa][14] ese archivo con tu Datadog Agent. - -Las stack traces de los logs típicos de Java se dividen en varias líneas, lo que dificulta que puedan asociarse al evento de log original. Por ejemplo: +Las trazas de pila de los registros típicos de Java se dividen en múltiples líneas, lo que dificulta asociarlas al evento de registro original. Por ejemplo: ```java //4 events generated when only one is expected! @@ -41,25 +40,25 @@ Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Bootstrap.main(Bootstrap.java:14) ``` -Para remediar este problema, configura tu biblioteca de registro de logs para que genere tus logs en formato JSON. De esta forma podrás: +Para abordar este problema, configura tu biblioteca de registro para producir tus registros en formato JSON. Al registrar en JSON, tú: -* Garantizar que la stack trace se asocia correctamente al evento de log. -* Garantizar que todos los atributos del evento de log (como la gravedad, el nombre del logger y el nombre del subproceso) se extraen correctamente. -* Obtener acceso a los atributos de [Mapped Diagnostic Context (MDC)][1] que puedes añadir a cualquier evento de log. -* Evitar la necesidad de crear [reglas de parseo personalizadas][2]. +* Asegúrate de que la traza de pila esté correctamente envuelta en el evento de registro. +* Asegúrate de que todos los atributos del evento de registro (como severidad, nombre del registrador y nombre del hilo) estén correctamente extraídos. +* Obtén acceso a los atributos del [Contexto de Diagnóstico Mapeado (MDC)][2], que puedes adjuntar a cualquier evento de registro. +* Evita la necesidad de [reglas de análisis personalizadas][3]. -Las siguientes instrucciones muestran ejemplos de configuración para las bibliotecas de registro de logs Log4j, Log4j 2 y Logback. +Las siguientes instrucciones muestran ejemplos de configuración para las bibliotecas de registro Log4j, Log4j 2 y Logback. -## Configurar el registrador +## Configura tu registrador {#configure-your-logger} -### Formato JSON +### Formato JSON {#json-format} {{< tabs >}} {{% tab "Log4j" %}} -Para Log4j, loguea en formato JSON utilizando el módulo [log4j-over-slf4j][1] de SLF4J combinado con Logback. `log4j-over-slf4j` sustituye sin problemas a Log4j en tu aplicación, por lo que no tendrás que realizar ningún cambio en el código. +Para Log4j, registra en formato JSON utilizando el módulo SLF4J [log4j-over-slf4j][1] combinado con Logback. `log4j-over-slf4j` reemplaza limpiamente a Log4j en tu aplicación, por lo que no necesitas hacer ningún cambio en el código. -1. En tu archivo `pom.xml`, sustituye la dependencia `log4j.jar` por una dependencia `log4j-over-slf4j.jar` y añade las dependencias de Logback. Por ejemplo: +1. En tu archivo `pom.xml`, reemplaza la dependencia `log4j.jar` con una dependencia `log4j-over-slf4j.jar`, y agrega las dependencias de Logback. Por ejemplo: ```xml org.slf4j @@ -77,9 +76,9 @@ Para Log4j, loguea en formato JSON utilizando el módulo [log4j-over-slf4j][1] d 6.6 ``` -2. Configura un appender utilizando el diseño JSON en `logback.xml`. Consulta las siguientes configuraciones de ejemplo para archivo y consola. +2. Configura un appender utilizando el diseño JSON en `logback.xml`. Consulta los siguientes ejemplos de configuraciones para archivo y consola. - Para el archivo: + Para archivo: ```xml @@ -94,7 +93,7 @@ Para Log4j, loguea en formato JSON utilizando el módulo [log4j-over-slf4j][1] d ``` - Para la consola: + For console: ```xml @@ -113,16 +112,16 @@ Para Log4j, loguea en formato JSON utilizando el módulo [log4j-over-slf4j][1] d {{% /tab %}} {{% tab "Log4j 2" %}} -Log4j 2 incluye una estructura JSON. +Log4j 2 incluye un diseño JSON. -1. Configura un appender utilizando el diseño JSON en `log4j2.xml`. Consulta las siguientes configuraciones de ejemplo para el appender de archivo y consola. Para una descripción completa de los complementos de Log4j, consulta [Referencia de complementos de Log4j][1]. -{{% collapse-content title="Appender de archivos" level="h4" %}} +1. Configura un appender utilizando el diseño JSON en `log4j2.xml`. Consulta los siguientes ejemplos de configuraciones para el appender de archivo y consola. Para una descripción completa de los plugins de Log4j, consulta la [referencia de plugins de Log4j][1]. +{{% collapse-content title="Appender de archivo" level="h4" %}} {{< code-block lang="xml" filename="log4j2.xml" >}} - + @@ -136,7 +135,7 @@ Log4j 2 incluye una estructura JSON. {{% collapse-content title="Appender de consola" level="h4" %}} {{< code-block lang="xml" filename="log4j2.xml" >}} - + @@ -152,7 +151,7 @@ Log4j 2 incluye una estructura JSON. {{< /code-block >}} {{% /collapse-content %}} -2. Añade el archivo de plantilla de diseño JSON (como `MyLayout.json`) en el directorio `src/main/resources` de tu proyecto Java. Por ejemplo: +2. Agrega el archivo de plantilla de diseño JSON (como `MyLayout.json`) en el directorio `src/main/resources` de tu proyecto Java. Por ejemplo: ```json { "timestamp":{ @@ -207,7 +206,7 @@ Log4j 2 incluye una estructura JSON. } ``` -3. Añade las dependencias de diseño JSON a tu `pom.xml`. Por ejemplo: +3. Agrega las dependencias de diseño JSON a tu `pom.xml`. Por ejemplo: ```xml org.apache.logging.log4j @@ -235,9 +234,9 @@ Log4j 2 incluye una estructura JSON. {{% /tab %}} {{% tab "Logback" %}} -Utiliza el [logstash-logback-encoder][1] para los logs con formato JSON en Logback. +Utiliza el [logstash-logback-encoder][1] para registros formateados en JSON en Logback. -1. Configura un appender de archivos utilizando el diseño JSON en `logback.xml`. Por ejemplo: +1. Configura un appender de archivo utilizando el diseño JSON en `logback.xml`. Por ejemplo: ```xml @@ -252,7 +251,7 @@ Utiliza el [logstash-logback-encoder][1] para los logs con formato JSON en Logba ``` -2. Añade la dependencia de codificador de Logstash a tu archivo `pom.xml`. Por ejemplo: +2. Agrega la dependencia del codificador Logstash a tu archivo `pom.xml`. Por ejemplo: ```xml @@ -271,7 +270,7 @@ Utiliza el [logstash-logback-encoder][1] para los logs con formato JSON en Logba {{% /tab %}} {{% tab "Tinylog" %}} -Crea una configuración de escritor de JSON basada en la [documentación oficial de Tinylog][1]. +Crea una configuración de escritor JSON basada en la [documentación oficial de Tinylog][1]. Utiliza el siguiente formato en un archivo `tinylog.properties`: @@ -295,12 +294,12 @@ writer.field.dd.env = {context: dd.env} {{% /tab %}} {{< /tabs >}} -### Formato sin procesar +### Formato en bruto {#raw-format} {{< tabs >}} {{% tab "Log4j" %}} -Configura un appender de archivos en `log4j.xml`. Por ejemplo: +Configura un appender de archivo en `log4j.xml`. Por ejemplo: ```xml @@ -327,7 +326,7 @@ Configura un appender de archivos en `log4j.xml`. Por ejemplo: {{% /tab %}} {{% tab "Log4j 2" %}} -Configura un appender de archivos en `log4j2.xml`. Por ejemplo: +Configura un appender de archivo en `log4j2.xml`. Por ejemplo: ```xml @@ -349,7 +348,7 @@ Configura un appender de archivos en `log4j2.xml`. Por ejemplo: {{% /tab %}} {{% tab "Logback" %}} -Configurar un anexador de archivos en `logback.xml`. Por ejemplo: +Configura un appender de archivo en `logback.xml`. Por ejemplo: ```xml @@ -372,7 +371,7 @@ Configurar un anexador de archivos en `logback.xml`. Por ejemplo: {{% /tab %}} {{% tab "Tinylog" %}} -Crea una configuración de escritor con salida a un archivo basado en la [documentación oficial de Tinylog][1]. +Crea una configuración de escritor que envíe a un archivo basada en la [documentación oficial de Tinylog][1]. Utiliza el siguiente formato en un archivo `tinylog.properties`: @@ -384,17 +383,17 @@ writer.format = {level} - {message} - "dd.trace_id":{context: dd.trace_id} - " writer.file = log.txt ``` -[1]: https://tinylog.org/v2/configuration/#json-writer +[1]: https://tinylog.org/v2/configuration/#writer {{% /tab %}} {{< /tabs >}} -#### Inserta los ID de trazas en tus logs +#### Inyecta ID de traza en tus registros {#inject-trace-ids-into-your-logs} -Si APM está activada para esta aplicación, puedes correlacionar logs y trazas activando la inserción de ID de trazas. Consulta [Conectar logs y trazas Java][3]. +Si APM está habilitado para esta aplicación, puedes correlacionar registros y trazas habilitando la inyección de ID de traza. Consulta [Conectando Registros y Trazas de Java][4]. -Si _no_ correlacionas logs y trazas, elimina los parámetros MDC (`%X{dd.trace_id} %X{dd.span_id}`) de los patrones de logs incluidos en los ejemplos de configuración anteriores. +Si no estás _correlacionando_ registros y trazas, elimina los marcadores de posición MDC (`%X{dd.trace_id} %X{dd.span_id}`) de los patrones de registro incluidos en los ejemplos de configuración anteriores. -Por ejemplo, si utilizas Log4j 2 pero no correlacionas logs y trazas, elimina el siguiente bloque de la plantilla de diseño de logs de ejemplo, `MyLayout.json`: +Por ejemplo, si estás utilizando Log4j 2 pero no correlacionando registros y trazas, elimina el siguiente bloque de la plantilla de diseño de registro de ejemplo, `MyLayout.json`: ```json "dd.trace_id":{ @@ -408,12 +407,12 @@ Por ejemplo, si utilizas Log4j 2 pero no correlacionas logs y trazas, elimina el ``` -## Configurar el Datadog Agent +## Configura el Datadog Agent {#configure-the-datadog-agent} -Cuando tengas la [recopilación de logs activada][4], configura la [recopilación de logs personalizada][5] para supervisar tus logs y enviarlos a Datadog. +Una vez que [la recolección de registros esté habilitada][5], configura [la recolección de registros personalizada][6] para el seguimiento de las últimas líneas de tus archivos de registro y enviarlos a Datadog. -1. Crea una carpeta `java.d/` en el [directorio de configuración del Agent][6] `conf.d/`. -2. Crea un archivo `conf.yaml` en `java.d/` con el siguiente contenido: +1. Crea una `java.d/` carpeta en el `conf.d/` [directorio de configuración del Agent][7]. +2. Crea un `conf.yaml` archivo en `java.d/` con el siguiente contenido: ```yaml #Log section @@ -431,30 +430,30 @@ Cuando tengas la [recopilación de logs activada][4], configura la [recopilació # pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01]) ``` -3. [Reinicia el Agent][7]. -4. Ejecuta el [subcomando de estado del Agent][8] y busca `java` en la sección `Checks` para confirmar que los logs se envían correctamente a Datadog. +3. [Reinicia el Agent][8]. +4. Ejecuta el [subcomando de estado del Agent][9] y busca `java` en la sección {{< ui >}}Checks{{< /ui >}} para confirmar que los registros se han enviado correctamente a Datadog. -Si los logs están en formato JSON, Datadog [parsea los mensajes del log][9] de forma automática para extraer sus atributos. Utiliza el [Log Explorer][10] para ver tus logs y solucionar problemas relacionados. +Si los registros están en formato JSON, Datadog automáticamente [analiza los mensajes de registro][10] para extraer los atributos de registro. Utiliza el [Explorador de registros][11] para ver y solucionar problemas en tus registros. -## Registro de logs sin Agent +## Transmite registros directamente al Agent {#stream-logs-directly-to-the-agent} -En caso excepcional de que tu aplicación se esté ejecutando en una máquina a la que no tengas acceso o que no puedas registrar logs en un archivo, es posible transmitir logs a Datadog o al Datadog Agent directamente. Esta configuración no es la más recomendable porque requiere que la aplicación gestione los problemas de conexión. +En el caso excepcional en que tu aplicación se esté ejecutando en una máquina a la que no se puede acceder o no puede registrar en un archivo, es posible transmitir registros a Datadog o directamente al Agent de Datadog. Esta no es la configuración recomendada, porque requiere que tu aplicación maneje problemas de conexión. -Para transmitir logs directamente a Datadog: +Para transmitir registros directamente a Datadog: -1. Añade la biblioteca de registro de logs a tu código o **crea un puente entre tu logger actual y Logback**. -2. **Configura Logback** para que envíe logs a Datadog. +1. Agrega la biblioteca de registro Logback a tu código, o **conecta tu registrador actual a Logback**. +2. **Configura Logback** para enviar registros a Datadog. -### Crear un puente desde las bibliotecas de registro de logs de Java y Logback +### Conecta desde bibliotecas de registro de Java a Logback {#bridge-from-java-logging-libraries-to-logback} -Si todavía no utilizas Logback, las bibliotecas de registro de logs se pueden asociar a Logback. +Si aún no estás utilizando Logback, la mayoría de las bibliotecas de registro comunes pueden conectarse a Logback. {{< tabs >}} {{% tab "Log4j" %}} -Utiliza el módulo [log4j-over-slf4j][1] de SLF4J con Logback para que envíe logs a otro servidor. `log4j-over-slf4j` sustituye sin problemas Log4j de tu aplicación para que no tengas que hacer ningún cambio en el código. Para usarlo: +Utiliza el módulo SLF4J [log4j-over-slf4j][1] con Logback para enviar registros a otro servidor. `log4j-over-slf4j` reemplaza limpiamente Log4j en tu aplicación para que no tengas que hacer cambios en el código. -1. En tu archivo `pom.xml`, sustituye la dependencia `log4j.jar` por una dependencia `log4j-over-slf4j.jar` y añade las dependencias de Logback. Por ejemplo: +1. En tu archivo `pom.xml`, reemplaza la dependencia `log4j.jar` con una dependencia `log4j-over-slf4j.jar`, y agrega las dependencias de Logback. Por ejemplo: ```xml org.slf4j @@ -472,9 +471,9 @@ Utiliza el módulo [log4j-over-slf4j][1] de SLF4J con Logback para que envíe lo 6.6 ``` -2. Configurar Logback. +2. Configura Logback. -**Nota:** Como resultado de este cambio, los archivos de configuración Log4j dejarán de recogerse. Migra tu archivo `log4j.properties` a `logback.xml` con el [traductor Log4j][2]. +**Nota:** Como resultado de este cambio, los archivos de configuración de Log4j ya no serán recogidos. Migra tu `log4j.properties` archivo a `logback.xml` con el [traductor de Log4j][2]. [1]: http://www.slf4j.org/legacy.html#log4j-over-slf4j @@ -483,9 +482,9 @@ Utiliza el módulo [log4j-over-slf4j][1] de SLF4J con Logback para que envíe lo {{% tab "Log4j 2" %}} -Log4j 2 permite registrar logs en un host remoto, pero no ofrece la posibilidad de añadir una clave de API como prefijo en los logs. Debido a esto, utiliza el módulo SLF4J [log4j-over-slf4j][1] y Logback. `log4j-to-slf4j.jar` sustituye directamente Log4j 2 en tu aplicación para que no tengas que hacer ningún cambio en el código. Para usarlo: +Log4j 2 permite el registro en un host remoto, pero no ofrece la capacidad de prefijar los registros con una clave API. Debido a esto, utiliza el módulo SLF4J [log4j-over-slf4j][1] y Logback. `log4j-to-slf4j.jar` reemplaza limpiamente Log4j 2 en tu aplicación para que no tengas que hacer ningún cambio en el código. Para usarlo: -1. En tu archivo `pom.xml`, sustituye la dependencia `log4j.jar` por una dependencia `log4j-over-slf4j.jar` y añade las dependencias de Logback. Por ejemplo: +1. En tu archivo `pom.xml`, reemplaza la dependencia `log4j.jar` con una dependencia `log4j-over-slf4j.jar`, y agrega las dependencias de Logback. Por ejemplo: ```xml org.apache.logging.log4j @@ -504,12 +503,12 @@ Log4j 2 permite registrar logs en un host remoto, pero no ofrece la posibilidad ``` -2. Configurar Logback. +2. Configura Logback. **Notas:** -- Asegúrate de que `log4j-slf4j-impl.jar` **no** se usa según se describe aquí: https://logging.apache.org/log4j/log4j-2.2/log4j-to-slf4j/index.html -- Como resultado de esta migración, los archivos de configuración Log4j 2 dejarán de recogerse. Migra tu archivo `log4j.properties` a `logback.xml` con el [traductor Log4j][2]. +- Asegúrate de que `log4j-slf4j-impl.jar` **no** se utilice como se describe aquí: https://logging.apache.org/log4j/log4j-2.2/log4j-to-slf4j/index.html +- Como resultado de esta migración, los archivos de configuración de Log4j 2 ya no serán recogidos. Migra tu `log4j.properties` archivo a `logback.xml` con el [traductor de Log4j][2]. [1]: http://www.slf4j.org/legacy.html#log4j-over-slf4j [2]: http://logback.qos.ch/translator @@ -517,77 +516,77 @@ Log4j 2 permite registrar logs en un host remoto, pero no ofrece la posibilidad {{< /tabs >}} -### Configurar Logback - -{{< site-region region="us3,us5,ap1,ap2,gov" >}} -
    El endpoint TCP no es compatible con el sitio Datadog seleccionado ({{< region-param key="dd_site_name" >}}). Para obtener una lista de los endpoints de generación de logs, consulta Recopilación de logs e integraciones.
    -{{< /site-region >}} - - -{{< site-region region="us,eu" >}} - -Utiliza la biblioteca de registro de logs [logstash-logback-encoder][11] junto con Logback para enviar los logs directamente a Datadog. - -1. Configura un appender TCP en tu archivo `logback.xml`. Con esta configuración, tu clave de API se recupera de la variable de entorno `DD_API_KEY`. Alternativamente, puedes insertar tu clave de API directamente en el archivo de configuración: - - Para la siguiente configuración, sustituye `` por la entrada basada en tu región:{{< region-param key="dd_site_name" code="true" >}}. - - **US1**: `intake.logs.datadoghq.com:10516` - - **UE**: `tcp-intake.logs.datadoghq.eu:443` - - ```xml - - - logs/app.log - - - - - 20 seconds - - - - ${DD_API_KEY} %mdc{keyThatDoesNotExist} - - - - - - - - - - - - ``` - - **Nota:** Se añade `%mdc{keyThatDoesNotExist}` porque la configuración XML quita los espacios en blanco. Para obtener más información sobre el parámetro prefijo, consulta la [documentación de Logback][12]. - -2. Añade la dependencia de codificador de Logstash a tu archivo `pom.xml`. Por ejemplo: - - ```xml - - ch.qos.logback - logback-classic - 1.2.9 - - - net.logstash.logback - logstash-logback-encoder - 6.6 - - ``` -[11]: https://github.com/logstash/logstash-logback-encoder -[12]: https://github.com/logstash/logstash-logback-encoder#prefixsuffixseparator -{{< /site-region >}} -## Para aprender más - -Enriquece los eventos de log con atributos contextuales. - -### Usar el parseador de valores clave - -El [parseador de valores clave][13] extrae cualquier patrón `=` que reconoce en un evento de log. - -Para enriquecer los eventos de log en Java, puedes reescribir los mensajes en tu código e introduce secuencias `=`. +### Configura Logback {#configure-logback} +Datadog no admite el envío de registros directamente a través de TCP a la ingesta de Datadog. En su lugar, configura Logback a tu Agente local de Datadog, que luego reenvía los registros a Datadog a través de HTTPS con enriquecimiento automático. + +1. [Instala un Agente local de Datadog][12] (v6+ / v7+). +1. Habilita la recolección de registros en `datadog.yaml`, y asegúrate de que el Agente reenvíe los registros a través de HTTPS (HTTPS es el transporte predeterminado para el Agente v6.19+/v7.19+ y posteriores): + ``` + logs_enabled: true + logs_config: + # HTTPS is the default. Keep or set this to force HTTPS forwarding. + force_use_http: true + # (Optional) auto-detect multi-line patterns + auto_multi_line_detection: true + ``` + +1. Habilita la recolección de registros en el Agent. + ```yaml + # /etc/datadog-agent/conf.d/logback.d/conf.yaml + logs: + - type: tcp + port: 10518 # Port the Agent will listen on + service: my-java-app # Your service name (unified service tagging) + source: java # Or a more specific source, e.g., "logback" + ``` +1. Reinicia el Agent para aplicar los cambios. +1. Configura Logback para enviar registros al Agent. Utiliza el [logstash-logback-encoder][13] TCP appender en tu `logback.xml` para reenviar registros al Agent: + ```xml + + + localhost:10518 + + + + + + { + "message": "%message", + "level": "%level", + "logger": "%logger", + "service": "${DD_SERVICE:-my-java-app}", + "env": "${DD_ENV:-prod}", + "version": "${DD_VERSION:-1.0.0}", + "dd.trace_id": "%X{dd.trace_id}", + "dd.span_id": "%X{dd.span_id}" + } + + + + + + + + + ``` + Luego, haz referencia a él en tu logger raíz: + ```xml + + + + ``` + +1. Verifica el reenvío de registros. Ejecuta `datadog-agent status` para confirmar tu TCP listener y revisa el Logs Explorer en busca de entradas etiquetadas con tu servicio. + +## Obteniendo más {#getting-further} + +Enriquece tus eventos de registro con atributos contextuales. + +### Usando el analizador de clave-valor {#using-the-key-value-parser} + +El [analizador de clave-valor][14] extrae cualquier patrón `=` reconocido en cualquier evento de registro. + +Para enriquecer tus eventos de registro en Java, puedes reescribir mensajes en tu código e introducir secuencias `=`. Por ejemplo, si tienes: @@ -601,7 +600,7 @@ Puedes cambiarlo a: logger.info("Emitted quantity=1001 messages during the last durationInMs=93180 ms for customer scope=prod30"); ``` -Con el parseador de valores clave activado, cada par se extrae del JSON: +Con el analizador de clave-valor habilitado, cada par se extrae del JSON: ```json { @@ -612,13 +611,13 @@ Con el parseador de valores clave activado, cada par se extrae del JSON: } ``` -Puedes explotar el *scope* (contexto) como un campo, y *durationInMs* (duración en minutos) y *quantity* (cantidad) como medidas de log. +Así que puedes utilizar *scope* como un campo, y *durationInMs* y *quantity* como medidas de registro. -### MDC +### MDC {#mdc} -Otra opción para enriquecer tus logs es usar la función de [Mapped Diagnostic Contexts (MDC)][1] de Java. +Otra opción para enriquecer tus registros es usar [Mapped Diagnostic Contexts (MDC)] de Java. -Si utilizas SLF4J, usa el siguiente código Java: +Si usas SLF4J, utiliza el siguiente código Java: ```java ... @@ -636,23 +635,23 @@ Para generar este JSON: } ``` -**Nota**: MDC sólo permite tipos de cadena, así que no los utilices para métricas de valor numérico. +**Nota**: MDC solo permite tipos de cadena, así que no los uses para métricas de valores numéricos. -## Referencias adicionales +## Lectura Adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: http://logback.qos.ch/manual/mdc.html -[2]: /es/logs/log_configuration/parsing -[3]: /es/tracing/other_telemetry/connect_logs_and_traces/java/ -[4]: /es/agent/logs/?tab=tailfiles#activate-log-collection -[5]: /es/agent/logs/?tab=tailfiles#custom-log-collection -[6]: /es/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-configuration-directory -[7]: /es/agent/configuration/agent-commands/?tab=agentv6v7#restart-the-agent -[8]: /es/agent/configuration/agent-commands/?tab=agentv6v7#agent-status-and-information] -[9]: /es/logs/log_configuration/parsing/?tab=matchers -[10]: /es/logs/explorer/#overview -[11]: https://github.com/logstash/logstash-logback-encoder -[12]: https://github.com/logstash/logstash-logback-encoder#prefixsuffixseparator -[13]: /es/logs/log_configuration/parsing/#key-value-or-logfmt -[14]: /es/glossary/#tail \ No newline at end of file +[1]: /es/glossary/#tail +[2]: http://logback.qos.ch/manual/mdc.html +[3]: /es/logs/log_configuration/parsing +[4]: /es/tracing/other_telemetry/connect_logs_and_traces/java/ +[5]: /es/agent/logs/?tab=tailfiles#activate-log-collection +[6]: /es/agent/logs/?tab=tailfiles#custom-log-collection +[7]: /es/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-configuration-directory +[8]: /es/agent/configuration/agent-commands/?tab=agentv6v7#restart-the-agent +[9]: /es/agent/configuration/agent-commands/?tab=agentv6v7#agent-status-and-information +[10]: /es/logs/log_configuration/parsing/?tab=matchers +[11]: /es/logs/explorer/#overview +[12]: /es/agent/?tab=Host-based +[13]: https://github.com/logstash/logstash-logback-encoder +[14]: /es/logs/log_configuration/parsing/#key-value-or-logfmt \ No newline at end of file diff --git a/content/es/profiler/enabling/_index.mdoc.md b/content/es/profiler/enabling/_index.mdoc.md new file mode 100644 index 00000000000..b4aa5c2f910 --- /dev/null +++ b/content/es/profiler/enabling/_index.mdoc.md @@ -0,0 +1,89 @@ +--- +aliases: +- /es/tracing/faq/profiling_migration/ +- /es/tracing/profiler/enabling/ +- /es/tracing/profiler/enabling/java/ +- /es/tracing/profiler/enabling/python/ +- /es/tracing/profiler/enabling/go/ +- /es/tracing/profiler/enabling/ruby/ +- /es/tracing/profiler/enabling/nodejs/ +- /es/tracing/profiler/enabling/dotnet/ +- /es/tracing/profiler/enabling/php/ +- /es/profiler/enabling/java/ +- /es/profiler/enabling/python/ +- /es/profiler/enabling/go/ +- /es/profiler/enabling/ruby/ +- /es/profiler/enabling/nodejs/ +- /es/profiler/enabling/dotnet/ +- /es/profiler/enabling/php/ +- /es/profiler/enabling/graalvm/ +- /es/tracing/profiler/enabling/linux/ +- /es/tracing/profiler/enabling/ddprof/ +- /es/profiler/enabling/ddprof/ +content_filters: +- label: Language + option_group_id: profiler_language_options + trait_id: prog_lang +- label: Runtime + option_group_id: java_profiler_runtime_options + show_if: + - prog_lang: + - java + trait_id: runtime +further_reading: +- link: getting_started/profiler + tag: Documentación + text: Introducción al Profiler +- link: profiler/profile_visualizations + tag: Documentación + text: Aprende más sobre las visualizaciones de perfil disponibles +- link: profiler/profiler_troubleshooting + tag: Documentación + text: Solucione los problemas que encuentre al usar el Profiler +title: Habilitando el Profiler +--- + +{% if equals($prog_lang, "java") %} +{% partial file="profiler/enabling/java.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "python") %} +{% partial file="profiler/enabling/python.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "go") %} +{% partial file="profiler/enabling/go.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "ruby") %} +{% partial file="profiler/enabling/ruby.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "node_js") %} +{% partial file="profiler/enabling/nodejs.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "dot_net") %} +{% partial file="profiler/enabling/dotnet.mdoc.md" /%} +{% /if %} + + +{% if equals($prog_lang, "php") %} +{% partial file="profiler/enabling/php.mdoc.md" /%} +{% /if %} + + +{% if includes($prog_lang, ["c", "cpp", "rust"]) %} +{% partial file="profiler/enabling/ddprof.mdoc.md" /%} +{% /if %} + +## ¿No está seguro de qué hacer a continuación? {% #not-sure-what-to-do-next %} + +La guía [Introducción al Profiler][1] toma un servicio de muestra con un problema de rendimiento y le muestra cómo usar Continuous Profiler para entender y solucionar el problema. + +[1]: /es/getting_started/profiler/ \ No newline at end of file diff --git a/content/es/reference_tables/_index.md b/content/es/reference_tables/_index.md index a570ce8b9f5..6b6347960c4 100644 --- a/content/es/reference_tables/_index.md +++ b/content/es/reference_tables/_index.md @@ -3,136 +3,135 @@ aliases: - /es/logs/guide/enrichment-tables/ - /es/logs/guide/reference-tables/ - /es/integrations/guide/reference-tables +description: Combina metadatos personalizados con datos de Datadog al subir archivos + CSV o conectar almacenamiento en la nube para enriquecer registros, datos de seguridad + y análisis. further_reading: - link: /logs/log_configuration/processors tag: Documentación - text: Uso del procesador de búsquedas para enriquecer logs a partir de una tabla - de referencia + text: Utiliza el procesador de búsqueda para enriquecer registros a partir de una + tabla de referencia - link: /logs/explorer/advanced_search#filter-logs-based-on-reference-tables tag: Documentación - text: Filtrar logs a partir de tablas de referencia + text: Filtra registros basados en tablas de referencia - link: /sheets/#lookup tag: Documentación - text: Consulta de hojas -- link: /service_management/events/pipelines_and_processors/lookup_processor/ + text: Búsqueda en Sheets +- link: /events/pipelines_and_processors/lookup_processor/ tag: Documentación - text: Procesador de búsqueda de eventos -- link: '/cloud_cost_management/tag_pipelines/#map-multiple-tags' + text: Procesador de búsqueda para Eventos +- link: /cloud_cost_management/tag_pipelines/#map-multiple-tags tag: Documentación - text: Uso de las tablas de referencia para añadir varias etiquetas (tags) a los - datos de costes + text: Utiliza tablas de referencia para agregar múltiples etiquetas a los datos + de costos +- link: /metrics/reference_table_joins_with_metrics/ + tag: Documentación + text: Aprende sobre uniones de tablas de referencia con métricas - link: https://www.datadoghq.com/blog/add-context-with-reference-tables/ tag: Blog - text: Añade más contexto a tus logs con tablas de referencia + text: Agregue más contexto a sus registros con tablas de referencia. - link: https://www.datadoghq.com/blog/reference-tables/ tag: Blog - text: Enriquecer tu telemetría existente en Datadog con metadatos personalizados - mediante tablas de referencia + text: Enriquezca su telemetría existente de Datadog con metadatos personalizados + utilizando tablas de referencia. - link: https://www.datadoghq.com/blog/add-context-with-reference-tables-in-cloud-siem/ tag: Blog - text: Añadir más contexto a las detecciones e investigaciones de Cloud SIEM con - las tablas de referencia de Datadog -title: Tablas de referencia + text: Agregue más contexto a las detecciones e investigaciones de Cloud SIEM con + tablas de referencia de Datadog. +- link: https://www.datadoghq.com/blog/observability-pipelines-servicenow-cmdb-enrichment + tag: Blog + text: Enriquezca los registros con contexto de CMDB de ServiceNow antes de enrutar + a cualquier herramienta de SIEM o de registro. +- link: https://www.datadoghq.com/blog/observability-pipelines-mssp + tag: Blog + text: Simplifique la recolección y agregación de registros para MSSPs con Observability + Pipelines de Datadog. +title: Tablas de Referencia --- +## Resumen {#overview} -## Información general - -Las tablas de referencia te permiten combinar metadatos personalizados con información ya existente en Datadog. Puedes definir nuevas entidades como detalles de clientes, nombres e información de servicios o direcciones IP cargando un archivo CSV que contenga una tabla de información. Las entidades están representadas por una clave primaria en una tabla de referencia y los metadatos asociados. - -{{< img src="reference_tables/reference-table.png" alt="Tabla de referencia con datos rellenados en las columnas de id de organización, nombre de organización, organización principal, propietario de cuenta y csm" style="width:100%;">}} - -Por ejemplo, podrás: - -- **Enriquecer los logs y los datos de seguridad para agilizar las investigaciones:** Correlaciona logs, trazas y eventos de seguridad con el contexto empresarial actualizado, como nombres de clientes, propietarios de cuentas, información sobre amenazas o descripciones de códigos de error, para acelerar la resolución de problemas y los análisis. -- **Agrupar usuarios y recursos para el análisis y la gestión de costes orientados:** Agrupa usuarios, clientes o recursos en la nube en segmentos significativos (como niveles de usuario, equipos o unidades de negocios) para un análisis de productos más profundos y una atribución de costes precisa utilizando herramientas como Tag Pipelines. -- **Mejorar los datos para realizar consultas e informes avanzados:** Une datos externos de Tablas de referencia en Hojas, Editor DDSQL o Espacios de trabajo de logs para realizar consultas complejas, agregaciones y crear informes personalizados sin conocimientos técnicos. +Las tablas de referencia le permiten combinar metadatos personalizados con la información ya existente en Datadog. Puede definir nuevas entidades, como detalles de clientes, nombres e información de servicios, o direcciones IP, al subir un archivo CSV que contenga una tabla de información. Las entidades están representadas por una clave primaria en una tabla de referencia y los metadatos asociados. -## Reglas de validación +{{< img src="reference_tables/reference_table.png" alt="Una tabla de referencia con datos poblados en las columnas para id de org, nombre de org, org padre, propietario de cuenta y csm" style="width:100%;">}} -Los nombres de las tablas de referencia y los encabezados de las columnas se validan utilizando las siguientes convenciones de nomenclatura y, si es necesario, se actualizan o normalizan automáticamente. +Por ejemplo, puede: -| Regla | Normalización | -| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| Los nombres y las cabeceras no pueden duplicarse. | Los nombres duplicados se enumeran. Por ejemplo, si `fileid` se utiliza dos veces como nombre, la primera instancia se convierte en `fileid1` y la segunda instancia en `fileid2`. Si se enumera un nombre o encabezado y supera los 56 caracteres, se rechaza y es necesario cambiar su nombre. | -| Los nombres y encabezados no pueden contener letras mayúsculas. | Los nombres con letras mayúsculas se convierten a minúsculas. Esta conversión puede dar lugar a nombres duplicados, que luego se enumeran. Por ejemplo, `Fileid` y `FileID` se convierten en `fileid` y se enumeran en `fileid1` y `fileid2` respectivamente. | -| Los nombres y los encabezados no pueden contener espacios. | Los espacios que no sean iniciales ni finales se sustituyen por caracteres de subrayado `_`. Se eliminan los espacios iniciales y finales. Por ejemplo, `customer names` se sustituye por `customer_names`. | -| Los nombres y los encabezados deben empezar por minúscula. | Los caracteres en mayúsculas se convierten a minúsculas. Se eliminan los caracteres iniciales que no sean letras. Por ejemplo, `23Two_three` se convierte en `two_three`. | -| Los nombres y los encabezados sólo admiten letras minúsculas, números y el carácter `_`. | Los caracteres no admitidos se sustituyen por el carácter de subrayado `_`, a menos que incumpla alguna de las reglas anteriores. En ese caso, los caracteres no admitidos se normalizan mediante la regla correspondiente. | -| Los nombres y los encabezados deben tener 56 caracteres o menos. | No se realiza ninguna normalización. Los nombres y los encabezados que tienen más de 56 caracteres se rechazan y es necesario cambiar sus nombres. | +- **Enriquecer registros y datos de seguridad para investigaciones más rápidas:** Correlacionar registros, trazas y eventos de seguridad con el contexto empresarial actualizado, como nombres de clientes, propietarios de cuentas, inteligencia de amenazas o descripciones de códigos de error, para agilizar la resolución de problemas y el análisis. +- **Segmentar usuarios y recursos para análisis y gestión de costos específicos:** Agrupar usuarios, clientes o recursos en la nube en segmentos significativos (como niveles de usuario, equipos o unidades de negocio) para un análisis más profundo del producto y una atribución de costos precisa utilizando herramientas como Tag Pipelines. +- **Mejorar datos para consultas y reportes avanzados:** Unir datos externos de tablas de referencia en Sheets, DDSQL Editor o Notebooks para realizar consultas complejas, agregaciones y construir reportes personalizados sin necesidad de experiencia técnica. -## Crear una tabla de referencia +## Crear una tabla de referencia {#create-a-reference-table} -Datadog admite las siguientes fuentes de datos, incluyendo las integraciones y la carga manual de CSV: +Datadog admite las siguientes fuentes de datos, incluidas integraciones y carga manual de archivos CSV: {{< tabs >}} -{{% tab "Cloud storage" %}} +{{% tab "Carga manual" %}} -{{% collapse-content title="Carga manual" level="h4" expanded=true %}} +Haga clic en **Nueva tabla de referencia +**, luego cargue un archivo CSV, nombre las columnas apropiadas y defina la clave primaria para las búsquedas. -Haz clic en **New Reference Table +** (Nueva tabla de referencia +) y luego carga un archivo CSV. Asigna un nombre a las columnas correspondientes y define la clave principal para las búsquedas. +{{< img src="reference_tables/schema_setup.png" alt="La sección Definir el Esquema muestra una tabla con org_id marcado como la clave primaria y columnas con datos para id de org, nombre de org, org padre, propietario de cuenta y csm. " style="width:100%;">}} -{{< img src="reference_tables/enrichment-table-setup.png" alt="Sección Definir elesquema que muestra una tabla con org_id marcado como clave primaria y las columnas con datos de id de organización, nombre de organización, organización principal, propietario de cuenta y csm" style="width:100%;">}} +**Nota**: El método de carga manual de CSV admite archivos de hasta 4MB. -**Nota**: El método de carga manual de CSV admite archivos de hasta 4 MB. - -{{% /collapse-content %}} +{{% /tab %}} +{{% tab "Almacenamiento en la nube" %}} {{% collapse-content title="Amazon S3" level="h4" id="amazon-s3" %}} -Las tablas de referencia pueden extraer automáticamente un archivo CSV de un bucket de Amazon S3 para mantener los datos actualizados. La integración busca cambios en el archivo CSV en S3 y, cuando el archivo se actualiza, sustituye la tabla de referencia con los nuevos datos. Esto también permite la actualización de la API con la API de S3, una vez configurada la tabla de referencia inicial. **Nota**: Las tablas de referencia no se sustituyen si el contenido del archivo CSV no se modifica. +Las Tablas de Referencia pueden extraer automáticamente un archivo CSV de un bucket de Amazon S3 para mantener sus datos actualizados. La integración busca cambios en el archivo CSV en S3, y cuando el archivo se actualiza, reemplaza la Tabla de Referencia con los nuevos datos. Esto también permite la actualización a través de API con la API de S3 una vez que la Tabla de Referencia inicial está configurada. **Nota**: Las Tablas de Referencia no se reemplazan si el contenido del archivo CSV no ha cambiado. -Para actualizar las tablas de referencia desde S3, Datadog utiliza el rol IAM de tu cuenta AWS que configuraste para la [integración AWS][1]. Si aún no has creado ese rol, [sigue estos pasos][2] para hacerlo. Para permitir que ese rol actualice tus tablas de referencia, agregue la siguiente declaración de permiso a tus políticas IAM. Asegúrate de editar los nombres de los buckets para que coincidan con tu entorno. +Para actualizar las Tablas de Referencia desde S3, Datadog utiliza el rol IAM en su cuenta de AWS que configuró para la [integración de AWS][1]. Si aún no ha creado ese rol, [siga estos pasos][2] para hacerlo. Para permitir que ese rol actualice sus Tablas de Referencia, agregue la siguiente declaración de permiso a sus políticas IAM. Asegúrese de editar los nombres de los buckets para que coincidan con su entorno. -**Nota**: Si utilizas el cifrado del lado del servidor, puedes cargar tablas de referencia cifradas con claves gestionadas por Amazon S3 (SSE-S3) o claves del servicio AWS Key Management (SSE-KMS). +**Nota**: Si utiliza cifrado del lado del servidor, puede cargar Tablas de Referencia cifradas con claves gestionadas por Amazon S3 (SSE-S3) o claves del Servicio de Gestión de Claves de AWS (SSE-KMS). ```json { - "Statement": [ - { - "Sid": "EnrichmentTablesS3", - "Effect": "Allow", - "Action": [ - "s3:GetObject", - // Grant KMS decrypt permissions if uploading KMS-encrypted object - // "kms:Decrypt", - "s3:ListBucket" - ], - "Resource": [ - "arn:aws:s3:::", - "arn:aws:s3:::" - ] - } - ], - "Version": "2012-10-17" + "Statement": [ + { + "Sid": "EnrichmentTablesS3", + "Effect": "Allow", + "Action": [ + "s3:GetObject", + // Grant KMS decrypt permissions if uploading KMS-encrypted object + // "kms:Decrypt", + "s3:ListBucket" + ], + "Resource": [ + "arn:aws:s3:::", + "arn:aws:s3:::" + ] + } + ], + "Version": "2012-10-17" } ``` -#### Definir la tabla +#### Defina la tabla {#define-the-table} -Haz clic en **New Reference Table +** (Nueva tabla de referencia +), selecciona Amazon S3, rellena todos los campos, haz clic para importar y define la clave principal para las búsquedas. +Haga clic en **Nueva Tabla de Referencia +**, luego agregue un nombre, seleccione Amazon S3, complete todos los campos, haga clic en importar y defina la clave primaria para las búsquedas. -{{< img src="reference_tables/configure-s3-reference-table.png" alt="Sección Cargar tus datos con el cuadro Amazon S3 seleccionado y los datos de cuenta, bucket y ruta de AWS rellenados" style="width:100%;">}} +{{< img src="reference_tables/s3_table.png" alt="La sección de carga de sus datos con el mosaico de Amazon S3 seleccionado y datos completados para la Cuenta de AWS, Bucket y Ruta" style="width:100%;">}} -**Nota**: El método de carga desde un bucket S3 admite archivos de hasta 200 MB. +**Nota**: El método de carga desde un bucket de S3 admite archivos de hasta 200MB. [1]: https://app.datadoghq.com/account/settings#integrations/amazon-web-services [2]: https://docs.datadoghq.com/es/integrations/amazon_web_services/?tab=automaticcloudformation#installation -{{% /collapse-content %}} -{{% collapse-content title="Azure Storage" level="h4" id="azure-storage" %}} +{{% /collapse-content %}} +{{% collapse-content title="Almacenamiento de Azure" level="h4" id="azure-storage" %}} -1. Si aún no lo has hecho, configura la [integración Azure][1] dentro de la suscripción que contiene la cuenta de almacenamiento desde la que quieres importar tu tabla de referencia. Esto implica la [creación de un registro de aplicación con el que Datadog pueda][2] integrarse. -2. En el portal Azure, selecciona la cuenta de almacenamiento que almacena los archivos de tu tabla de referencia. -3. Dentro de tu cuenta de almacenamiento, ve a **Control de acceso (IAM)** y selecciona **Añadir** > **Añadir asignación de roles**. -4. Introduce y selecciona el rol **Lector de datos blob de almacenamiento**. El rol de [lector de datos blob de almacenamiento][3] permite a Datadog leer y listar contenedores y blobs de almacenamiento. -5. En la pestaña **Miembros**, haz clic en **+ Select members** (+ Seleccionar miembros). Selecciona el registro de la aplicación que creaste en el paso 1. +1. Si aún no lo ha hecho, configure la [integración de Azure][1] dentro de la suscripción que tiene la cuenta de almacenamiento desde la cual desea importar su Tabla de Referencia. Esto implica [crear un registro de aplicación con el que Datadog pueda][2] integrarse. +2. En el Portal de Azure, seleccione la cuenta de almacenamiento que almacena sus archivos de Tabla de Referencia. +3. Dentro de su cuenta de almacenamiento, navegue a **Control de Acceso (IAM)** y seleccione **Agregar** > **Agregar Asignación de Rol**. +4. Ingrese y seleccione el **Rol de Lector de Datos de Blob de Almacenamiento**. El [rol de Lector de Datos de Blob de Almacenamiento][3] permite a Datadog leer y listar contenedores de almacenamiento y blobs. +5. En la pestaña **Miembros**, haga clic en **+ Seleccionar miembros**. Seleccione el registro de aplicación que creó en el Paso 1. - {{< img src="reference_tables/add_members.png" alt="Sección Miembros en el portal Azure que muestra un miembro seleccionado y los datos de nombre, id de objeto y tipo rellenados" style="width:85%;">}} + {{< img src="reference_tables/add_members.png" alt="La sección de Miembros en el Portal de Azure donde se selecciona un miembro y se completan los datos para el Nombre, ID de Objeto y Tipo" style="width:85%;">}} -Después de revisar y asignar el rol, puedes importar a las tablas de referencia desde Azure. La actualización de la configuración de Azure en Datadog puede tardar unos minutos. +Después de revisar y asignar el rol, puede importar a las tablas de referencia desde Azure. Puede tardar unos minutos en que su configuración de Azure se actualice en Datadog. -{{< img src="reference_tables/azure_storage.png" alt="Cuadro de Azure Storage en la sección Cargar o importar datos del flujo de trabajo de una nueva tabla de referencia" style="width:80%;">}} +{{< img src="reference_tables/azure_table.png" alt="Un mosaico de Almacenamiento de Azure en la sección de Carga o importación de datos de un nuevo flujo de trabajo de tabla de referencia" style="width:80%;">}} -Para obtener más información, consulta la [documentación de la integración Azure][4]. +Para más información, consulte la [documentación de integración de Azure][4]. **Nota**: La carga desde el almacenamiento de objetos en la nube admite archivos de hasta 200 MB. @@ -141,30 +140,30 @@ Para obtener más información, consulta la [documentación de la integración A [3]: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader [4]: /es/integrations/azure/ -{{% /collapse-content %}} -{{% collapse-content title="Google Cloud storage" level="h4" id="google-cloud-storage" %}} +{{% /collapse-content %}} +{{% collapse-content title="Almacenamiento de Google Cloud" level="h4" id="google-cloud-storage" %}} -### Google Cloud Storage +### Almacenamiento de Google Cloud {#google-cloud-storage} -{{% site-region region="gov" %}} -
    Las tablas de referencia no están disponibles para el sitio Datadog seleccionado ({{< region-param key="dd_site_name" >}})
    +{{% site-region region="gov,gov2" %}} +
    Las Tablas de Referencia no están disponibles para su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}})
    {{% /site-region %}} -1. Si no has configurado la integración Google Cloud con Datadog o si estás utilizando archivos de ID de proyectos Google legacy (los proyectos legacy se indican en el cuadro de tu integración GCP), sigue las instrucciones para configurar la [integración Google Cloud Platform][1]. Esto implica la creación de una [cuenta de servicio Google Cloud][2]. +1. Si no ha configurado una integración de Google Cloud con Datadog o está utilizando archivos de ID de proyecto de Google heredados (los proyectos heredados se indican en su mosaico de integración de GCP), siga las instrucciones para configurar la [integración de Google Cloud Platform][1]. Esto implica crear una [cuenta de servicio de Google Cloud][2]. -1. Desde la consola de Google Cloud, ve a la página **Cloud Storage**. +1. Desde la consola de Google Cloud, navegue a la página de **Almacenamiento en la Nube**. -1. Busca el bucket al que quieres conceder acceso y haz clic en él. +1. Encuentre el bucket al que le gustaría otorgar acceso y haga clic en él. -1. Haz clic en la pestaña **Permisos**. En "Ver por elementos principales", haz clic en el botón **Grant Access** (Conceder acceso). +1. Haga clic en la pestaña **Permisos**. Bajo "Ver por Principales", haga clic en el botón **Otorgar Acceso**. -1. En la ventana que aparece, en el campo "Nuevos elementos principales", introduce el correo electrónico de la cuenta de servicio que creaste y añadiste al cuadro de GCP en el paso 1. En "Asignar roles", selecciona el rol **Visor de objetos de almacenamiento** y haz clic en **Save** (Guardar). +1. En la ventana que aparece, en el campo "Nuevos principales", ingrese el correo electrónico de la cuenta de servicio que creó y agregó al mosaico de GCP en el Paso 1. Bajo "Asignar roles", seleccione el rol de **Visualizador de Objetos de Almacenamiento**. Haga clic en **Guardar**. -{{< img src="reference_tables/grant_access.png" alt="Consola de Google Cloud que muestra la configuración para conceder acceso" style="width:100%;" >}} +{{< img src="reference_tables/grant_access.png" alt="Consola de Google Cloud mostrando la configuración para otorgar acceso" style="width:100%;" >}} -Después de revisar y asignar el rol, puedes importar a las tablas de referencia desde Google Cloud La actualización de la configuración en Datadog puede tardar unos minutos. +Después de revisar y asignar el rol, puede importar a las tablas de referencia desde Google Cloud. Puede tardar unos minutos en que su configuración se actualice en Datadog. -{{< img src="reference_tables/gcp_upload_import_ui.png" alt="Seleccionar Almacenamiento GCP en Cargar o importar datos al crear una nueva tabla de referencia" style="width:100%;" >}} +{{< img src="reference_tables/gcp_table.png" alt="Seleccione Almacenamiento de GCP en Cargar o importar datos al crear una nueva tabla de referencia." style="width:100%;" >}} **Nota**: La carga desde el almacenamiento de objetos en la nube admite archivos de hasta 200 MB. @@ -172,115 +171,145 @@ Después de revisar y asignar el rol, puedes importar a las tablas de referencia [2]: /es/integrations/google_cloud_platform/#1-create-your-google-cloud-service-account {{% /collapse-content %}} +{{% collapse-content title="Terraform" level="h4" id="terraform" %}} + +Utilice el recurso [`datadog_reference_table`][9] para gestionar tablas de referencia como infraestructura como código. Configure el recurso con el esquema de su tabla, claves primarias y detalles de acceso al almacenamiento en la nube. + +**Nota**: Terraform soporta los mismos límites de tamaño de archivo que las cargas de almacenamiento en la nube. Consulte [límites de la tabla de referencia](#reference-table-limits) para más detalles. + +[9]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/reference_table + +{{% /collapse-content %}} + +{{% /tab %}} +{{% tab "API" %}} + +Cree tablas de referencia programáticamente utilizando la [API de Datadog][8]. + +Utilice el [punto final Crear Tabla de Referencia][10] para crear tablas de referencia desde almacenamiento en la nube o archivos locales. +- Para fuentes de almacenamiento en la nube (S3, Azure, GCS), proporcione `access_details` en `file_metadata` apuntando a un archivo CSV en el almacenamiento en la nube. +- Para archivos locales, llame a `POST /api/latest/reference-tables/uploads` para obtener un ID de carga y cargue sus datos CSV. Luego, llame al punto de conexión Crear Tabla de Referencia con el `upload_id` en `file_metadata`. + +**Nota**: La API soporta los mismos límites de tamaño de archivo que las cargas de almacenamiento en la nube. Consulte [límites de la tabla de referencia](#reference-table-limits) para más detalles. + +[8]: /es/api/latest/reference-tables/ +[10]: /es/api/latest/reference-tables/#create-reference-table {{% /tab %}} -{{% tab "Integraciones" %}} +{{% tab "Integrations" %}} {{< partial name="reference_tables/ref-tables-saas-integrations.html" >}} {{% /tab %}} {{< /tabs >}} -Esta tabla de referencia puede utilizarse para añadir atributos adicionales a logs con el [Procesador de búsquedas][1]. +Esta Tabla de Referencia puede ser utilizada para agregar atributos adicionales a los registros con el [Procesador de Búsqueda][1]. -## Reglas de validación +## Reglas de validación {#validation-rules} -Los nombres de las tablas de referencia y los encabezados de las columnas se validan utilizando las siguientes convenciones de nomenclatura y, si es necesario, se actualizan o normalizan automáticamente. +Los nombres de las Tablas de Referencia y los encabezados de las columnas son validados utilizando las siguientes convenciones de nomenclatura y se actualizan o normalizan automáticamente, si es necesario. | Regla | Normalización | | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| Los nombres y las cabeceras no pueden duplicarse. | Los nombres duplicados se enumeran. Por ejemplo, si `fileid` se utiliza dos veces como nombre, la primera instancia se convierte en `fileid1` y la segunda instancia en `fileid2`. Si se enumera un nombre o encabezado y supera los 56 caracteres, se rechaza y es necesario cambiar su nombre. | -| Los nombres y encabezados no pueden contener letras mayúsculas. | Los nombres con letras mayúsculas se convierten a minúsculas. Esta conversión puede dar lugar a nombres duplicados, que luego se enumeran. Por ejemplo, `Fileid` y `FileID` se convierten en `fileid` y se enumeran en `fileid1` y `fileid2` respectivamente. | -| Los nombres y los encabezados no pueden contener espacios. | Los espacios que no sean iniciales ni finales se sustituyen por caracteres de subrayado `_`. Se eliminan los espacios iniciales y finales. Por ejemplo, `customer names` se sustituye por `customer_names`. | -| Los nombres y los encabezados deben empezar por minúscula. | Los caracteres en mayúsculas se convierten a minúsculas. Se eliminan los caracteres iniciales que no sean letras. Por ejemplo, `23Two_three` se convierte en `two_three`. | -| Los nombres y los encabezados sólo admiten letras minúsculas, números y el carácter `_`. | Los caracteres no admitidos se sustituyen por el carácter de subrayado `_`, a menos que incumpla alguna de las reglas anteriores. En ese caso, los caracteres no admitidos se normalizan mediante la regla correspondiente. | -| Los nombres y los encabezados deben tener 56 caracteres o menos. | No se realiza ninguna normalización. Los nombres y los encabezados que tienen más de 56 caracteres se rechazan y es necesario cambiar sus nombres. | +| Los nombres y encabezados no pueden ser duplicados. | Los nombres duplicados son enumerados. Por ejemplo, si `fileid` se usa dos veces como nombre, la primera instancia se convierte en `fileid1` y la segunda instancia se convierte en `fileid2`. Si un nombre o encabezado está enumerado y excede los 56 caracteres, es rechazado y necesita ser renombrado. | +| Los nombres y encabezados no pueden contener letras mayúsculas. | Los nombres con letras mayúsculas se convierten a minúsculas. Esta conversión puede resultar en nombres duplicados, que luego son enumerados. Por ejemplo, `Fileid` y `FileID` se convierten en `fileid` y son enumerados como `fileid1` y `fileid2` respectivamente. | +| Los nombres y encabezados no pueden contener espacios. | Los espacios que no son iniciales o finales son reemplazados por caracteres de subrayado `_`. Los espacios iniciales y finales son eliminados. Por ejemplo, `customer names` es reemplazado por `customer_names`. | +| Los nombres y encabezados deben comenzar con una letra minúscula. | Los caracteres en mayúscula se convierten a minúsculas. Los caracteres no alfabéticos al inicio son eliminados. Por ejemplo, `23Two_three` se convierte en `two_three`. | +| Los nombres y encabezados solo admiten letras minúsculas, números y el carácter `_`. | Los caracteres no soportados son reemplazados por el carácter guion bajo `_`, a menos que rompa alguna de las reglas anteriores. En ese caso, los caracteres no soportados son normalizados por la regla respectiva. | +| Los nombres y encabezados deben tener 56 caracteres o menos. | No se realiza ninguna normalización. Los nombres y encabezados que tienen más de 56 caracteres son rechazados y necesitan ser renombrados. | + +## Modificar una Tabla de Referencia {#modify-a-reference-table} + +Para modificar una Tabla de Referencia existente con nuevos datos, seleccione una tabla y haga clic en **Update Config** en la esquina superior derecha. +El CSV seleccionado se inserta o actualiza en la tabla, lo que significa que: + +* Todas las filas existentes con la misma clave primaria son actualizadas +* Todas las nuevas filas son añadidas +* Todas las filas antiguas que no están en el nuevo archivo son eliminadas -## Modificar una tabla de referencia +Una vez que la tabla es guardada, las filas insertadas son procesadas de manera asíncrona y actualizadas en la vista previa. Puede tardar hasta 10 minutos para que la actualización se complete. -Para modificar una tabla de referencia existente con nuevos datos, selecciona una tabla y haz clic en **Update Config** (Actualizar configuración) en la esquina superior derecha. -El CSV seleccionado se inserta en la tabla, lo que significa que: +## Exportar una tabla de referencia {#export-a-reference-table} -* Se actualizan todas las filas existentes con la misma clave primaria -* Se añaden todas las filas nuevas -* Se eliminan todas las filas antiguas que no están en el nuevo archivo +Para exportar una Tabla de Referencia, seleccione una tabla y haga clic en **Query in DDSQL Editor**. Desde allí, puede usar el [Editor DDSQL][7] para exportar a CSV, tableros y más. -Una vez guardada la tabla, las filas insertadas se procesan de forma asíncrona y se actualizan en la vista previa. La actualización puede tardar hasta 10 minutos en completarse. +{{< img src="reference_tables/query_ddsql.png" alt="Vista previa de la tabla con un botón azul etiquetado Consulta en el Editor DDSQL posicionado sobre los resultados" style="width:100%;" >}} -## Eliminar una tabla de referencia +## Eliminar una Tabla de Referencia {#delete-a-reference-table} -Para eliminar una tabla de referencia, selecciona una tabla, haz clic en el icono del engranaje en la esquina superior derecha y luego haz clic en **Delete Table** (Eliminar tabla). -Se eliminará la tabla junto a todas las filas asociadas. +Para eliminar una Tabla de Referencia, seleccione una tabla, haga clic en el ícono de engranaje en la esquina superior derecha y luego haga clic en **Eliminar Tabla**. +La tabla y todas las filas asociadas son eliminadas. -Si hay un Procesador de búsquedas que utiliza una tabla de referencia para el enriquecimiento de los logs, el enriquecimiento se detiene. El enriquecimiento puede tardar hasta 10 minutos en detenerse. +Si hay un Procesador de Búsqueda utilizando una Tabla de Referencia para el enriquecimiento de registros, entonces el enriquecimiento se detiene. Puede tardar hasta 10 minutos en detenerse el enriquecimiento. -## Monitorizar la actividad de una tabla de referencia +## Monitorear actividad de tabla de referencia {#monitor-reference-table-activity} -Puedes monitorizar la actividad de una tabla de referencia con [Audit Trail][2] o [Change Events][3]. Para ver el registro de auditoría y los eventos de cambios de una tabla de referencia específica, selecciona la tabla y haz clic en el icono Configuración junto a **Update Config** (Actualizar configuración). Para ver el registro de auditoría, necesitas permisos de gestión de la organización. +Puede monitorear la actividad de la Tabla de Referencia con [Audit Trail][2] o [Eventos de Cambio][3]. Para ver el Audit Trail y los eventos de cambio para una tabla de referencia específica, seleccione la tabla y haga clic en el ícono de Configuración junto a **Actualizar Configuración**. Necesita permisos de gestión de la organización para ver el Audit Trail. -### Audit Trail +### Audit Trail {#audit-trail} -Utiliza el registro de auditoría de las tablas de referencia para realizar un seguimiento de las acciones activadas por el usuario. Los eventos de Audit Trail se envían cuando un usuario carga o importa inicialmente un archivo CSV o cuando un usuario crea, modifica o elimina una tabla de referencia. +Utilice el Audit Trail para las Tablas de Referencia para rastrear acciones desencadenadas por el usuario. Los eventos del Audit Trail se envían cuando un usuario carga o importa inicialmente un archivo CSV, o cuando un usuario crea, modifica o elimina una Tabla de Referencia. -El tipo de recurso `reference_table_file` muestra eventos de importación/carga y el tipo de recurso `reference_table` muestra eventos de la tabla de referencia. El registro de auditoría permite observar el contenido de una tabla de referencia. +El `reference_table_file` tipo de activo muestra eventos de importación/carga y el `reference_table` tipo de activo muestra eventos de tabla de referencia. El Audit Trail proporciona visibilidad sobre el contenido de una tabla de referencia. -### Eventos de cambios +### Eventos de cambio {#change-events} -Utiliza los eventos de cambios de las tablas de referencia para realizar un seguimiento de las acciones automatizadas o activadas por el usuario. Se envían cuando se importa un archivo de nube desde un usuario o una actualización automática. (La carga de un archivo local no genera un evento de cambio). Si bien los eventos pueden realizar un seguimiento de las acciones activadas por el usuario, se utilizan principalmente para realizar un seguimiento de las importaciones activadas cuando una tabla de referencia extrae automáticamente un nuevo archivo CSV. +Utilice eventos de cambio para las Tablas de Referencia para rastrear acciones automatizadas o desencadenadas por el usuario. Se envían cuando un archivo en la nube es importado por un usuario o por una actualización automática. (Cargar un archivo local no genera un evento de cambio.) Mientras que los eventos pueden rastrear acciones desencadenadas por el usuario, se utilizan principalmente para rastrear importaciones desencadenadas cuando una tabla de referencia extrae automáticamente un nuevo archivo CSV. -Los eventos contienen información sobre el estado de éxito, la ruta y el nombre de la tabla de la importación. Si se produce un error, se proporciona información sobre el tipo de error. +Los eventos contienen información sobre el estado de éxito, la ruta y el nombre de la tabla de la importación. Si ocurre un error, se proporciona información sobre el tipo de error. -### Alertas +### Alerting {#alerting} -Para recibir alertas sobre los errores encontrados durante las importaciones, utiliza [monitores de eventos][4] para eventos de cambios de la tabla de referencia. Los eventos de cambios de la tabla de referencia se envían desde la fuente `reference_tables`. +Para ser alertado sobre errores encontrados durante las importaciones, utilice [Monitores de Eventos][4] para eventos de cambio de la Tabla de Referencia. Los eventos de cambio de la Tabla de Referencia se envían desde la `reference_tables` fuente. -Puedes crear monitores a partir de la pestaña **Monitores** o hacer clic en el icono de configuración situado junto a **New Reference Table +** (Nueva tabla de referencia +) para generar un monitor ya rellenado. +Puede crear monitores desde la pestaña **Monitores**, o hacer clic en el ícono de Configuración junto a **Nueva Tabla de Referencia +** para generar un monitor prellenado. -## Límites de la tabla de referencia -- Una tabla de referencia puede tener hasta 50 columnas -- El tamaño de un archivo de tabla de referencia cargado a través de la interfaz de usuario puede ser de hasta 4 MB -- El tamaño de un archivo de tabla de referencia cargado a través de un archivo de bucket de nube puede ser de hasta 200 MB -- El tamaño de un archivo de tabla de referencia cargado a través de una integración puede ser de hasta 200 MB -- Puedes tener hasta 100 tablas de referencia por organización +## Límites de la Tabla de Referencia {#reference-table-limits} +Una Tabla de Referencia puede tener hasta 50 columnas. +El tamaño de un archivo de Tabla de Referencia subido a través de la interfaz de usuario puede ser de hasta 4 MB. +El tamaño de un archivo de Tabla de Referencia subido a través de un archivo de bucket en la nube puede ser de hasta 200 MB. +El tamaño de un archivo de Tabla de Referencia subido a través de una integración puede ser de hasta 200 MB. +- Puede tener hasta 100 Tablas de Referencia por organización. -Si tienes un caso de uso que supera estos límites, ponte en contacto con el [servicio de asistencia][5]. +Contacte a [soporte][5] si tiene un caso de uso que excede estos límites. -## Frecuencia de actualización automática +## Frecuencia de actualización automática {#automatic-update-frequency} -Las tablas de referencia pueden actualizarse automáticamente, en función de la fuente de los datos: +Las Tablas de Referencia pueden actualizarse automáticamente, dependiendo de la fuente de datos: -- **Almacenamiento de archivos en la nube** (Amazon S3, Azure Storage, Google Cloud Storage): cada 5 minutos -- **Integraciones**: cada hora -- **Carga manual de archivos CSV**: no se admiten actualizaciones automáticas +- **Almacenamiento de archivos en la nube** (Amazon S3, Azure Storage, Google Cloud Storage): Cada 5 minutos +- **Integrations**: Cada hora. +- **Subidas manuales de CSV**: Las actualizaciones automáticas no son compatibles -## Permisos +## Permisos {#permissions} -### Acceso basado en roles -Para ver las tablas de referencia, los usuarios necesitan el permiso `reference_tables_read`. Para crear o modificar Tablas de referencia, los usuarios necesitan el permiso `reference_tables_write`. +### Acceso basado en roles {#role-based-access} +Para ver Tablas de Referencia, los usuarios requieren el `reference_tables_read` permiso. Para crear o modificar Tablas de Referencia, los usuarios requieren el `reference_tables_write` permiso. -Para obtener más información sobre permisos, consulta la [documentación RBAC][6]. +Para más información sobre permisos, consulte la [documentación de RBAC][6]. -### Controles de acceso detallados -Restringe el acceso a tablas individuales especificando una lista de equipos, roles o usuarios que pueden verlas o editarlas. +### Controles de acceso granulares {#granular-access-controls} +Restringa el acceso a tablas individuales especificando una lista de equipos, roles o usuarios que están autorizados a ver o editarlas. -{{< img src="reference_tables/granular_access_permissions.png" alt="La opción del engranaje de permisos que permite configurar permisos de acceso granulares en una tabla" style="width:100%;">}} +{{< img src="reference_tables/granular_permissions.png" alt="La opción de engranaje de Permisos que admite la configuración de permisos de acceso granulares en una tabla" style="width:100%;">}} -1. Haz clic en una tabla para abrir su página de información. -2. Haz clic en el icono de engranaje de la esquina superior derecha. -3. Selecciona **Permisos** en el menú. -4. Haz clic en **Restrict Access** (Restringir el acceso). -5. Utiliza el menú desplegable para seleccionar uno o más equipos, roles o usuarios. -6. Haz clic en **Add** (Añadir). -7. Selecciona **Editor** o **Visor**. -8. Haz clic en **Save** (Guardar) para aplicar los cambios. +1. Haga clic en una tabla para abrir su página de detalles. +2. Haga clic en el ícono de engranaje en la esquina superior derecha. +3. Seleccione **Permisos** del menú. +4. Haga clic en **Restringir Acceso**. +5. Utilice el menú desplegable para seleccionar uno o más equipos, roles o usuarios. +6. Haga clic en **Agregar**. +7. Seleccione ya sea **Editor** o **Viewer**. +8. Haga clic en **Guardar** para aplicar los cambios. -## Referencias adicionales +## Lectura Adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: /es/logs/log_configuration/processors/#lookup-processor +[1]: /es/logs/log_configuration/processors/lookup_processor/ [2]: /es/account_management/audit_trail/ [3]: /es/events/ [4]: /es/monitors/types/event/ [5]: /es/help/ -[6]: /es/account_management/rbac/permissions/#reference-tables \ No newline at end of file +[6]: /es/account_management/rbac/permissions/#reference-tables +[7]: /es/ddsql_editor/#save-and-share-queries \ No newline at end of file diff --git a/content/es/remote_configuration/_index.md b/content/es/remote_configuration/_index.md index 27361d6c759..2e92093c52c 100644 --- a/content/es/remote_configuration/_index.md +++ b/content/es/remote_configuration/_index.md @@ -1,141 +1,166 @@ --- algolia: tags: - - configuración remota - - configuración remota + - remote config + - remote configuration aliases: - /es/agent/guide/how_rc_works - /es/agent/guide/how_remote_config_works - /es/agent/remote_config -description: Configura y cambia de forma remota el comportamiento de los componentes - de Datadog como Agents, bibliotecas de rastreo y Observability Pipelines Workers - desplegados en tu infraestructura. +description: Configura y cambia de manera remota el comportamiento de los componentes + de Datadog, como Agentes, SDKs y Trabajadores de Pipelines de Observabilidad desplegados + en tu infraestructura. further_reading: - link: /security/application_security/how-appsec-works/#built-in-protection tag: Documentación - text: Como funciona Application Security Monitoring + text: Cómo funciona el Monitoreo de Seguridad de Aplicaciones - link: /dynamic_instrumentation/?tab=configurationyaml#enable-remote-configuration tag: Documentación - text: Dynamic Instrumentation + text: Instrumentación Dinámica - link: /security/workload_protection/ tag: Documentación text: Configuración de Workload Protection - link: https://www.datadoghq.com/blog/compliance-governance-transparency-with-datadog-audit-trail/ tag: Blog - text: Como usar Datadog Audit Trail + text: Uso de Audit Trail de Datadog - link: https://www.datadoghq.com/blog/remote-configuration-for-datadog/ tag: Blog - text: Aplicar actualizaciones en tiempo real a los componentes de Datadog con la - configuración remota -title: Configuración remota + text: Aplica actualizaciones en tiempo real a los componentes de Datadog con Remote + Configuration +title: Remote Configuration --- +## Descripción General {#overview} -## Información general +Remote Configuration es una capacidad de Datadog que te permite configurar y cambiar de manera remota el comportamiento de características seleccionadas del producto en componentes de Datadog, como Agentes, SDKs y Trabajadores de Observability Pipelines desplegados en tu infraestructura. Utiliza Remote Configuration para aplicar configuraciones a los componentes de Datadog en tu entorno bajo demanda, disminuyendo los costos de gestión, reduciendo la fricción entre equipos y acelerando los tiempos de resolución de problemas. -La configuración remota es una función de Datadog que te permite configurar y cambiar de forma remota el comportamiento de los componentes de Datadog (por ejemplo, Agents, bibliotecas de rastreo y Observability Pipelines Workers) desplegados en tu infraestructura. Utiliza la configuración remota para aplicar configuraciones a componentes de Datadog de tu entorno, disminuyendo los costes de gestión, reduciendo la fricción entre equipos y acelerando los tiempos de resolución de problemas. +Para los productos de seguridad de Datadog, App and API Protection y Workload Protection, los Agentes habilitados para Remote Configuration y los SDKs compatibles proporcionan actualizaciones y respuestas de seguridad en tiempo real, mejorando la postura de seguridad de tus aplicaciones e infraestructura en la nube. -Para productos de seguridad de Datadog, App and API Protection y Workload Protection, los Agents habilitados por configuración remota y bibliotecas de rastreo compatibles proporcionan actualizaciones y respuestas de seguridad en tiempo real, lo que mejora la situación de seguridad de tus aplicaciones y la infraestructura de la nube. +## Cómo funciona {#how-it-works} -## Cómo funciona +Cuando Remote Configuration está habilitada, los componentes de Datadog, como el Datadog Agent, consultan de manera segura el [sitio de Datadog][1] configurado para cambios de configuración que están listos para aplicarse. Los cambios pendientes se aplican automáticamente a los componentes de Datadog. Por ejemplo, después de que envías cambios de configuración en la interfaz de usuario de Datadog para una característica del producto habilitada para Remote Configuration, los cambios se almacenan en Datadog. -Cuando la configuración remota está activada, los componentes de Datadog como el Datadog Agent sondean de forma segura el [sitio Datadog][1] configurado en busca de cambios de configuración que estén listos para ser aplicados. Los cambios pendientes se aplican automáticamente a los componentes de Datadog. Por ejemplo, después de enviar cambios de configuración en la interfaz de usuario de Datadog para una función de producto habilitada por configuración remota, los cambios se almacenan en Datadog. +El siguiente diagrama ilustra cómo funciona Remote Configuration: -El siguiente diagrama muestra como funciona la configuración remota: +{{Los usuarios configuran características en la interfaz de usuario, la configuración se almacena en Datadog, el Agent solicita actualizaciones de configuración.}} -{{Users configure features in the UI, the config is stored in Datadog, the Agent requests config updates.}} +1. Configuras características seleccionadas del producto en la interfaz de usuario de Datadog. +2. Las configuraciones de características del producto se almacenan de manera segura dentro de Datadog. +3. Los componentes de Datadog habilitados para Remote Configuration en tus entornos consultan, reciben y aplican automáticamente actualizaciones de configuración de Datadog de manera segura. Las bibliotecas de trazado que se implementan en tus entornos se comunican con los Agent para solicitar y recibir actualizaciones de configuración de Datadog en lugar de consultar directamente a Datadog. -1. Configura las funciones del producto escogidas en la interfaz de usuario de Datadog. -2. La configuración de las funciones del producto se almacenan en condiciones seguras en Datadog. -3. Los componentes de Datadog habilitados por configuración remota en tus entornos sondean, reciben y aplican automáticamente actualizaciones de configuración de forma segura desde Datadog. Las bibliotecas de rastreo que se despliegan en tus entornos se comunican con los Agents para solicitar y recibir actualizaciones de configuración desde Datadog, en lugar de sondear Datadog directamente. +## Entornos soportados {#supported-environments} -## Entornos compatibles +Remote Configuration funciona en entornos donde se han implementado componentes soportados de Datadog. Los componentes compatibles de Datadog incluyen: +- Agentes +- Trazadores (indirectamente) +- Trabajadores de la Canalización de Observabilidad +- Ejecutores de acción privados y servicios de contenedores sin servidor en la nube, como AWS Fargate. -La configuración remota funciona en entornos en los que están instalados los componentes compatibles de Datadog. Entre los componentes compatibles de Datadog se incluyen: -- Agents -- Rastreadores (indirectamente) -- Observability Pipeline Workers -- Ejecutores de acciones privadas y servicios de nube de contenedores sin servidor como AWS Fargate +La Configuración Remota no soporta aplicaciones gestionadas de contenedores sin servidor, como AWS App Runner, Azure Container Apps, Google Cloud Run; o funciones implementadas con empaquetado de contenedores, como AWS Lambda, Azure Functions y Google Cloud Functions. -La configuración remota no es compatible con aplicaciones sin servidor gestionadas por contenedores, como AWS App Runner, Azure Container Apps, Google Cloud Run, ni con funciones desplegadas con paquetes de contenedores, como AWS Lambda, Azure Functions y Google Cloud Functions. +## Productos y características compatibles {#supported-products-and-features} -## Productos y funciones compatibles +Los siguientes productos y características son compatibles con la Configuración Remota. -Los siguientes productos y funciones son compatibles con la configuración remota. +Automatización de Flotas +: - [Enviar señales][27] directamente desde el sitio de Datadog. Solucione problemas del Agente de Datadog sin acceder directamente al host. +: - [Actualice sus Agentes][29]. -Fleet Automation -: - [Envía flares][27] directamente desde el sitio Datadog. Soluciona sin problemas incidentes del Datadog Agent sin acceder directamente al host. -: - [Actualiza tus Agents][29] (Vista previa). +Protección de Aplicaciones y API (AAP) +: - [Activación de AAP con un clic][33]: Habilite AAP con un clic desde la interfaz de usuario de Datadog. +: - [Actualizaciones de patrones de ataque en la aplicación][34]: Reciba automáticamente los patrones de ataque más recientes del Firewall de Aplicaciones Web (WAF) a medida que Datadog los publique, siguiendo las vulnerabilidades o vectores de ataque recientemente divulgados. +: - [Proteger][34]: Bloquear las IPs de los atacantes, usuarios autenticados y solicitudes sospechosas que se marquen en las Señales y Trazas de Seguridad de AAP temporal o permanentemente a través de la interfaz de usuario de Datadog. -App and API Protection (AAP) -: - [Activación de AAP en 1 clic][33]: Activa AAP en 1 clic desde la interfaz de usuario de Datadog. -: - [Actualizaciones de patrones de ataque en la aplicación][34]: Recibe automáticamente los patrones de ataque más recientes de Web Application Firewall (WAF) a medida que Datadog los publica, siguiendo vulnerabilidades o vectores de ataque recientemente revelados. -: - [Protección][34]: Bloquea las IP de los atacantes, los usuarios autenticados y las solicitudes sospechosas indicadas en señales y rastros de seguridad de AAP de forma temporal o permanente a través de la interfaz de usuario de Datadog. +Monitoreo del Rendimiento de Aplicaciones (APM) +: - Configuración en tiempo de ejecución: Cambiar la tasa de muestreo de trazas de un servicio, habilitación de inyección de registros y etiquetas de encabezados HTTP desde la interfaz de usuario del Catálogo, sin necesidad de reiniciar el servicio. Lea [Configuración en Tiempo de Ejecución][22] para más información. +: - [Configurar remotamente la tasa de muestreo del Agente][35]: Configurar remotamente el Agente de Datadog para cambiar sus tasas de muestreo de trazas y establecer reglas para escalar la ingesta de trazas de su organización de acuerdo a sus necesidades, sin necesidad de reiniciar su Agente de Datadog. -Application Performance Monitoring (APM) -: - Configuración en tiempo de ejecución (Vista previa): Cambia la frecuencia de muestreo del rastreo de un servicio, la activación de la inyección de logs y las etiquetas (tags) de encabezados HTTP desde la interfaz de usuario del Catálogo de software, sin tener que reiniciar el servicio. Consulta [Configuración en tiempo de ejecución][22] para obtener más información. -: - [Configura de forma remota la frecuencia de muestreo del Agent][35] (Vista previa): Configura de forma remota el Datadog Agent para cambiar sus frecuencias de muestreo del rastreo y configura reglas para escalar la ingesta de trazas (traces) de tu organización según tus necesidades, sin necesidad de reiniciar tu Datadog Agent. +[Instrumentación Dinámica][36] +: - Enviar métricas críticas, trazas y registros desde sus aplicaciones en vivo sin cambios en el código. -[Dynamic Instrumentation][36] -: - Envía métricas, trazas y logs críticos de tus aplicaciones en directo sin cambios en el código. - -Workload Protection -: - Actualizaciones automáticas de reglas predeterminadas del Agent: Recibe y actualiza automáticamente las reglas predeterminadas del Agent mantenidas por Datadog a medida que se publican nuevas detecciones y mejoras del Agent. Consulta [Configuración de Workload Protection][3] para obtener más información. -: - Despliegue automático de reglas personalizadas del Agent: Despliega automáticamente tus reglas personalizadas del Agent en los hosts designados (todos los hosts o un subconjunto definido de hosts). +Protección de Carga de Trabajo +: - Actualizaciones automáticas de reglas predeterminadas del Agente: Recibir y actualizar automáticamente las reglas predeterminadas del Agente mantenidas por Datadog a medida que se lanzan nuevas detecciones y mejoras del Agente. Consulte [Configuración de Protección de Carga de Trabajo][3] para más información. +: - Despliegue automático de reglas personalizadas del Agente: Desplegar automáticamente sus reglas personalizadas del Agente en hosts designados (todos los hosts o un subconjunto definido de hosts). Observability Pipelines -: - Despliega y actualiza de forma remota [Observability Pipelines Workers][4] (OPW): Crea y edita pipelines en la interfaz de usuario de Datadog, desplegando tus cambios de configuración en las instancias OPW que se ejecutan en tu entorno. +: - Desplegar y actualizar remotamente [Observability Pipelines Workers][4] (OPW): Construir y editar canalizaciones en la interfaz de usuario de Datadog, implementando sus cambios de configuración en instancias de OPW que se ejecutan en su entorno. + +[Escalado Automático][47] +: - Gestionar remotamente configuraciones de escalado automático de clústeres y cargas de trabajo para sus entornos en contenedores. Consulte [Escalado Automático][47] para más información. + +Ejecutor de acciones privado +: - Ejecutar flujos de trabajo y aplicaciones de Datadog que interactúan con servicios alojados en su red privada sin exponer sus servicios a Internet público. Para más información, consulte [Acciones Privadas][30]. + +Feature Flags +: - Entregar configuraciones de flag (reglas de asignación y objetivo) a los kits de desarrollo de software del lado del servidor para la asignación sincrónica de variantes basada en el contexto de evaluación. Vea [Feature Flags][48] para más información. + +## Consideraciones de seguridad {#security-considerations} + +Datadog implementa las siguientes salvaguardias para proteger la confidencialidad, integridad y disponibilidad de las configuraciones recibidas y aplicadas por sus componentes de Datadog: -Ejecutor de acciones privadas -: - Ejecuta flujos de trabajo y aplicaciones de Datadog que interactúan con servicios alojados en tu red privada sin exponer tus servicios a la Internet pública. Para obtener más información, consulta [Private Actions][30]. +- Los componentes de Datadog con Configuración Remota habilitada desplegados en su infraestructura solicitan configuraciones a Datadog. +
    Algunos componentes como los ejecutores de acción privados siempre tienen habilitada la configuración remota. Otros, como los Agentes, pueden ser habilitados o deshabilitados utilizando opciones de configuración en disco.
    +- Datadog nunca envía cambios de configuración a menos que sean solicitados por los componentes de Datadog. Si envía cambios de configuración, Datadog solo envía cambios relevantes para el componente que lo solicita. +- Las solicitudes de configuración se inician desde su infraestructura hacia Datadog a través de HTTPS (puerto 443). Este es el mismo puerto que el Agente utiliza por defecto para enviar datos de observabilidad. +- La comunicación entre sus componentes de Datadog y Datadog está encriptada utilizando HTTPS y es autenticada y autorizada utilizando su clave API de Datadog, excepto en el caso de los ejecutores de acción privados donde se utiliza un token JWT en su lugar. +- Solo los usuarios con el permiso de [`api_keys_write`][5] están autorizados para habilitar o deshabilitar la capacidad de Configuración Remota en las claves API y utilizar las características del producto soportadas. +- Los cambios de configuración que envíe a través de la interfaz de usuario de Datadog son firmados y validados por el componente de Datadog que lo solicita, verificando la integridad de la configuración. -## Cuestiones de seguridad +### Acceso basado en roles {#role-based-access} -Datadog implementa las siguientes medidas de seguridad para proteger la confidencialidad, la integridad y la disponibilidad de las configuraciones que reciben y aplican los componentes de Datadog: +Habilitar la Configuración Remota impacta los siguientes productos. Cada producto define un conjunto de controles de acceso basado en roles que deben ser otorgados a sus usuarios. Para información general sobre la gestión de acceso, vea [Access Control][37]. -- Los componentes de Datadog habilitados por configuración remota y desplegados en tu infraestructura necesitan configuraciones de Datadog. -
    Algunos componentes, como los ejecutores de acciones privadas, están siempre habilitados por configuración remota. Otros, como el Agent, pueden activarse o desactivarse mediante opciones de configuración en el disco.
    -- Datadog nunca envía cambios de configuración a menos que se lo soliciten componentes de Datadog. Si envía cambios de configuración, Datadog solo envía aquellos relevantes para el componente solicitante. -- Las solicitudes de configuración se inician desde tu infraestructura a Datadog a través de HTTPS (puerto 443). Este es el mismo puerto que el Agent utiliza por defecto para enviar datos de observabilidad. -- La comunicación entre tus componentes de Datadog y Datadog se cifra mediante HTTPS y se autentica y autoriza utilizando tu clave de API Datadog, excepto en el caso de los ejecutores de acciones privadas donde se utiliza un token JWT en su lugar. -- Solo los usuarios con el permiso [`api_keys_write`][5] están autorizados a activar o desactivar la función de configuración remota en las claves de API y a utilizar las funciones compatibles del producto. -- Los cambios de configuración enviados a través de la interfaz de usuario de Datadog son firmados y validados por el componente de Datadog solicitante, lo que verifica la integridad de la configuración. + | Producto Habilitado para Configuración Remota | Controles de Acceso Basados en Roles | + |----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Fleet Automation | `FLEET_POLICIES_WRITE`
    `AGENT_UPGRADE_WRITE`
    `FLEET_FLARE`

    Para más información, consulte [Fleet Automation][38]. | + | Protección de Aplicaciones y API | `APPSEC_ACTIVATION_READ`
    `APPSEC_ACTIVATION_WRITE`
    `APPSEC_PROTECT_READ`
    `APPSEC_PROTECT_WRITE`

    Para más información, consulte [Access Control][39]. | + | APM | `APM_SERVICE_INGEST_READ`
    `APM_SERVICE_INGEST_WRITE`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    Para más información, consulte [Adaptive Sampling][40]. | + | Dynamic Instrumentation | `DEBUGGER_READ`
    `DEBUGGER_WRITE`
    `DEBUGGER_WRITE_PRE_PROD`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    Para más información, consulte [APM][41]. | + | Workload Protection | `SECURITY_MONITORING_CWS_AGENT_RULES_WRITE`
    `SECURITY_MONITORING_CWS_AGENT_RULES_READ`
    `SECURITY_MONITORING_CWS_AGENT_RULES_ACTIONS`

    Para más información, consulte [Security][42]. | + | CSM Side Scanning | `ORG_MANAGEMENT`
    `MANAGE_INTEGRATIONS`

    Para más información, consulte [Enable Agentless Scanning][43]. | + | Observability Pipelines | `OBSERVABILITY_PIPELINES_READ`
    `OBSERVABILITY_PIPELINES_WRITE`
    `OBSERVABILITY_PIPELINES_DELETE`
    `OBSERVABILITY_PIPELINES_DEPLOY`
    `OBSERVABILITY_PIPELINES_CAPTURE_WRITE`
    `OBSERVABILITY_PIPELINES_CAPTURE_READ`

    Para más información, consulte [Observability Pipelines][44]. | + | Private Action Runner | `ON_PREM_RUNNER_WRITE`
    `ON_PREM_RUNNER_READ`
    `ON_PREM_RUNNER_USE`

    Para más información, consulte [App Builder & Workflow Automation][45]. | + | Network Device Monitoring (NDM) | `NDM_DEVICE_PROFILES_VIEW`
    `NDM_DEVICE_PROFILES_EDIT` | + | Container Autoscaling | `ORCHESTRATION_AUTOSCALING_MANAGE`
    `ORCHESTRATION_WORKLOAD_SCALING_WRITE`
    `ORCHESTRATION_WORKLOAD_SCALING_READ` | + | Serverless Lambda Auto-instrumentation | `SERVERLESS_AWS_INSTRUMENTATION_READ`
    `SERVERLESS_AWS_INSTRUMENTATION_WRITE`

    Para más información, consulte [Serverless][46]. | + | Feature Flags | `FEATURE_FLAG_CONFIG_READ`
    `FEATURE_FLAG_CONFIG_WRITE`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_READ`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_WRITE`

    Para más información, consulte [Feature Flags][48]. | -## Activar la configuración remota +## Habilitar Remote Configuration {#enable-remote-configuration} -En la mayoría de los casos, la configuración remota está activada por defecto para tu organización. Puedes comprobar si la configuración remota está activada en tu organización desde la página de parámetros de [Configuración remota][8]. Si necesitas activarla: -1. Asegúrate de que los permisos de RBAC incluyan [`org_management`][7], para poder habilitar la configuración remota en tu organización. -1. Desde la página Parámetros de tu organización, activa [Configuración remota][8]. Esto permite que los componentes de Datadog de toda la organización reciban configuraciones de Datadog. -1. Sigue las instrucciones de [configuración específicas del producto](#product-specific-configuration) que se indican a continuación para finalizar la configuración remota. +En la mayoría de los casos, Remote Configuration está habilitado por defecto para su organización. Puede verificar si Remote Configuration está habilitado en su organización desde la página de configuración de [Remote Configuration][8]. Si necesita habilitarla: +1. Asegúrese de que sus permisos de RBAC incluyan [`org_management`][7], para que pueda habilitar Remote Configuration para su organización. +1. Desde la página de Configuración de su Organización, habilite [Remote Configuration][8]. Esto habilita los componentes de Datadog en toda su organización para recibir configuraciones de Datadog. +1. Siga la [guía de configuración específica del producto](#product-specific-configuration) a continuación para finalizar la configuración de Remote Configuration. -### Configuración específica del producto +### Configuración específica del producto {#product-specific-configuration} -Consulta la documentación a continuación para obtener instrucciones específicas para el producto que estás configurando. +Consulte la documentación a continuación para obtener instrucciones específicas sobre el producto que está configurando. -| Producto | Instrucciones de instalación | -| ------- | --------------------- | -| Automatización de flotas | [Configurar Fleet Automation][31] | -| APM | [Configuración en tiempo de ejecución](/tracing/guide/remote_config/) | -| Dynamic Instrumentation | [Empezando con Dynamic Instrumentation](/dynamic_instrumentation/#getting-started) | -| Workload Protection | [Workload Protection][3] | -| Observability Pipelines | Asegúrate de que has [activado la configuración remota en la clave de API][32] que estás utilizando para Observability Pipelines. | -| Sensitive Data Scanner | [Almacenamiento en la nube](/security/sensitive_data_scanner/setup/cloud_storage/?tab=newawsaccount) | -| Ejecutor de acciones privadas | [Información general sobre acciones privadas](/actions/private_actions/) | +| Producto | Instrucciones de configuración | +|-------------------------|----------------------------------------------------------------------------------------------------------------| +| Fleet Automation | [Setup Fleet Automation][31] | +| APM | [Configuración en tiempo de ejecución](/tracing/guide/remote_config/) | +| Dynamic Instrumentation | [Comenzando con Dynamic Instrumentation](/dynamic_instrumentation/#getting-started) | +| Workload Protection | [Workload Protection][3] | +| Observability Pipelines | Asegúrese de que ha [habilitado Remote Configuration en la API key][32] que está utilizando para Observability Pipelines. | +| Sensitive Data Scanner | [Cloud storage](/security/sensitive_data_scanner/setup/cloud_storage/?tab=newawsaccount) | +| Private Action Runner | [Private Actions Overview](/actions/private_actions/) | +| Feature Flags | [Feature Flags del Lado del Servidor](/feature_flags/server/) | -## Prácticas recomendadas +## Mejores Prácticas {#best-practices} -### Audit Trail de Datadog +### Datadog Audit Trail {#datadog-audit-trail} -Utiliza [Audit Trail de Datadog][13] para monitorizar el acceso a la organización y a eventos habilitados por configuración remota. Audit Trail permite a los administradores y equipos de seguridad realizar un seguimiento de la creación, eliminación y modificación de la API de Datadog y las claves de aplicación. Una vez configurado Audit Trail, podrás ver los eventos relacionados con las funciones habilitadas por configuración remota y quién ha solicitado estos cambios. Audit Trail permite reconstruir secuencias de eventos y establecer una monitorización sólida de Datadog para la configuración remota. +Utilice [Datadog Audit Trail][13] para monitorear el acceso a la organización y los eventos habilitados de Remote Configuration. Audit Trail permite a sus administradores y equipos de seguridad rastrear la creación, eliminación y modificación de claves de API y de aplicación de Datadog. Después de configurar Audit Trail, puede ver eventos relacionados con las características habilitadas de Remote Configuration y quién ha solicitado estos cambios. Audit Trail le permite reconstruir secuencias de eventos y establecer un monitoreo robusto de Datadog para Remote Configuration. -### Monitores +### Monitors {#monitors} -Configurar los [monitores][14] para recibir notificaciones cuando se encuentre un evento de interés. +Configure [monitors][14] para recibir notificaciones cuando se encuentre un evento de interés. -## Exclusión de la configuración remota +## Opting out of Remote Configuration {#opting-out-of-remote-configuration} -En lugar de desactivar la configuración remota de forma global, Datadog recomienda optar por desactivarla en productos específicos de Datadog. Para obtener más información, consulta la [documentación del producto en cuestión](#product-specific-configuration). +En lugar de deshabilitar Remote Configuration globalmente, Datadog recomienda optar por no participar en productos específicos de Datadog. Para más información, consulte [la documentación del producto relevante](#product-specific-configuration). -## Referencias adicionales +## Lectura Adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -156,7 +181,7 @@ En lugar de desactivar la configuración remota de forma global, Datadog recomie [16]: /es/remote_configuration [17]: /es/agent/configuration/network [18]: /es/agent/configuration/proxy/ -[19]: /es/tracing/software_catalog/ +[19]: /es/internal_developer_portal/catalog/ [20]: /es/dynamic_instrumentation/?tab=configurationyaml#prerequisites [21]: /es/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file [22]: /es/tracing/trace_collection/runtime_config/ @@ -164,13 +189,25 @@ En lugar de desactivar la configuración remota de forma global, Datadog recomie [24]: https://app.datadoghq.com/organization-settings/api-keys [25]: /es/agent/guide/ [26]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=org-enablement-step -[27]: /es/agent/fleet_automation/#send-a-remote-flare +[27]: /es/agent/fleet_automation/fleet_view/#send-a-remote-flare [28]: /es/security/sensitive_data_scanner/?tab=usingtheagent -[29]: /es/agent/fleet_automation/remote_management#remotely-upgrade-your-agents +[29]: /es/agent/fleet_automation/upgrade_agents/ [30]: /es/actions/private_actions/use_private_actions/ [31]: /es/agent/guide/setup_remote_config [32]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=api-key-enablement-step&standalone=1 [33]: /es/security/application_security/setup/ [34]: /es/security/application_security/ [35]: /es/tracing/trace_pipeline/adaptive_sampling/ -[36]: /es/tracing/dynamic_instrumentation/#explore-dynamic-instrumentation \ No newline at end of file +[36]: /es/tracing/dynamic_instrumentation/#explore-dynamic-instrumentation +[37]: /es/account_management/rbac +[38]: /es/agent/fleet_automation/#control-access-to-fleet-automation +[39]: /es/security/access_control/#permissions +[40]: /es/tracing/trace_pipeline/adaptive_sampling/#permissions +[41]: /es/account_management/rbac/permissions/#apm +[42]: /es/account_management/rbac/permissions/#cloud-security-platform +[43]: /es/security/cloud_security_management/setup/#enable-agentless-scanning +[44]: /es/account_management/rbac/permissions/#observability-pipelines +[45]: /es/account_management/rbac/permissions/#app-builder--workflow-automation +[46]: /es/account_management/rbac/permissions/#serverless +[47]: /es/containers/autoscaling +[48]: /es/feature_flags/ \ No newline at end of file diff --git a/content/es/source_code/_index.md b/content/es/source_code/_index.md new file mode 100644 index 00000000000..ddcce5f47cf --- /dev/null +++ b/content/es/source_code/_index.md @@ -0,0 +1,24 @@ +--- +aliases: +- /es/integrations/guide/source-code-integration/ +description: Configure la integración del código fuente que se conecta con APM para + vincular su telemetría con sus repositorios, incrustar información de Git en los + artefactos de su canalización de CI y utilizar integraciones de gestión de código + fuente para generar fragmentos de código en línea en Datadog. +title: Integración de Código Fuente +--- +## Descripción general {#overview} + +La integración de código fuente de Datadog permite conectar sus repositorios de Git a Datadog para habilitar diversas funciones relacionadas con el código fuente en toda la plataforma de Datadog. Permite depurar trazas de pila, perfiles lentos y otros problemas accediendo a las líneas relevantes de su código fuente. + +{{< img src="source_code_integration/inline-code-snippet.png" alt="Fragmento de código en línea de una Java RuntimeException con un botón para ver el código en GitHub" style="width:100%;">}} + +## Configuración y características {#setup-and-features} + +{{< whatsnext desc="Para la configuración y características de la integración de código fuente, consulte las siguientes páginas:" >}} + {{< nextlink href="source_code/source-code-management" >}}Integraciones de proveedores de gestión de código fuente{{< /nextlink >}} + {{< nextlink href="source_code/service-mapping" >}}Mapeo de servicios + y etiquetado de telemetría{{< /nextlink >}} + {{< nextlink href="source_code/resource-mapping" >}}Mapeo de recursos de Kubernetes{{< /nextlink >}} + {{< nextlink href="source_code/features" >}}Características de la integración de código fuente{{< /nextlink >}} +{{< /whatsnext >}} \ No newline at end of file diff --git a/content/es/synthetics/api_tests/http_tests.md b/content/es/synthetics/api_tests/http_tests.md index 4501cc9d883..7ec35eb7a26 100644 --- a/content/es/synthetics/api_tests/http_tests.md +++ b/content/es/synthetics/api_tests/http_tests.md @@ -1,242 +1,373 @@ --- algolia: - category: Documentación + category: Documentation rank: 70 - subcategory: Tests API Synthetic + subcategory: Synthetic API Tests tags: - http - - test http - - tests http + - http test + - http tests aliases: - /es/synthetics/http_test - /es/synthetics/http_check - /es/synthetics/guide/or-logic-api-tests-assertions -description: Simula solicitudes HTPP para monitorizar endpoints de API públicos e - internos. +description: Simular solicitudes HTTP para monitorear puntos finales de API públicos + e internos. further_reading: - link: https://www.datadoghq.com/blog/introducing-synthetic-monitoring/ tag: Blog - text: Presentación de la monitorización Synthetic de Datadog + text: Presentamos el Monitoreo Sintético de Datadog - link: https://learn.datadoghq.com/courses/intro-to-synthetic-tests - tag: Centro de aprendizaje - text: Introducción a los tests Synthetic + tag: Centro de Aprendizaje + text: Introducción a las Pruebas Sintéticas - link: /getting_started/synthetics/api_test tag: Documentación - text: Empezando con los tests HTTP + text: Comience con pruebas HTTP - link: /synthetics/private_locations tag: Documentación - text: Ejecutar tests HTTP en endpoints internos + text: Ejecutar pruebas HTTP en puntos finales internos - link: /synthetics/multistep tag: Documentación - text: Ejecutar tests HTTP de varios pasos + text: Ejecutar pruebas HTTP de múltiples pasos - link: /synthetics/guide/synthetic-test-monitors tag: Documentación - text: Más información sobre los monitores de test Synthetic -title: Tests HTTP + text: Aprenda sobre los monitores de prueba Synthetic +title: Pruebas HTTP --- -## Información general +## Resumen {#overview} -Los tests HTTP te permiten enviar solicitudes HTTP a los endpoints de API de tus aplicaciones para verificar las respuestas y las condiciones definidas, como el tiempo de respuesta global, el código de estado esperado, la cabecera o el contenido del cuerpo. +Las pruebas HTTP le permiten enviar solicitudes HTTP a los puntos finales de la API de sus aplicaciones para verificar respuestas y condiciones definidas, como el tiempo de respuesta general, el código de estado esperado, el encabezado o el contenido del cuerpo. -Los tests HTTP pueden ejecutarse tanto desde [localizaciones gestionadas](#select-locations) como de [localizaciones privadas][1] dependiendo de tu preferencia de ejecución de tests desde fuera o dentro de tu red. Los tests HTTP pueden ejecutarse de forma programada, bajo demanda o directamente dentro de tus [pipelines CI/CD][2]. +Las pruebas HTTP pueden ejecutarse desde [ubicaciones gestionadas](#select-locations) y [ubicaciones privadas][1] dependiendo de su preferencia por ejecutar la prueba desde fuera o dentro de su red. Las pruebas HTTP pueden ejecutarse según un horario, a demanda o directamente dentro de sus [canalizaciones de CI/CD][2]. -## Configuración +## Configuración {#configuration} -Puedes crear un test utilizando una de las siguientes opciones: +Puede crear una prueba utilizando una de las siguientes opciones: - - **Crea un test a partir de una plantilla**: + - **Crear una prueba a partir de una plantilla**: + + 1. Pase el cursor sobre una de las plantillas predefinidas y haga clic en **Ver Plantilla**. Esto abre un panel lateral que muestra información de configuración predefinida, incluyendo: Detalles de la Prueba, Detalles de la Solicitud, Afirmaciones, Condiciones de Alerta y Configuraciones de Monitoreo. + 2. Haga clic en **+Crear prueba** para abrir la página **Definir solicitud**, donde puede revisar y editar las opciones de configuración predefinidas. Los campos presentados son idénticos a los disponibles al crear una prueba desde cero. + 3. Haga clic en **Guardar detalles** para enviar su prueba de API.

    - 1. Pasa el ratón por encima de una de las plantillas ya rellenadas y haz clic en **View Template** (Ver plantilla). Se abrirá un panel lateral en el que se mostrará la información de configuración rellenada previamente, que incluye: detalles de tests, detalles de solicitudes, aserciones, condiciones de alerta y parámetros de monitor. - 2. Haz clic en **+Create Test** (+Crear test) para abrir la página **Definir solicitud**, en la que podrás revisar y editar las opciones de configuración rellenadas previamente. Los campos presentados son idénticos a aquellos disponibles cuando se crea un test desde cero. - 3. Haz clic en **Save Details** (Guardar detalles) para enviar tu test de API.

    + {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video de la página de inicio de prueba de API de Synthetics con plantillas" video="true" >}} - {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Vídeo de la página de inicio del test de la API Synthetics" video="true" >}} + - **Construya una prueba desde cero**: + + 1. Para construir una prueba desde cero, haga clic en la plantilla **+ Comenzar desde cero**, luego seleccione el tipo de `HTTP`solicitud y especifique la **URL** a consultar. + Los métodos disponibles son: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE` y `OPTIONS`. Se admiten tanto `http` como `https` URLs. - - **Crea un test desde cero**: +
    Vea Opciones avanzadas para más opciones.
    - 1. Para crear un test desde cero, haz clic en la plantilla **+ Start from scratch** (+ Empezar desde cero), selecciona el tipo de solicitud `HTTP` y especifica la **URL** a consultar. - Los métodos disponibles son: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE` y `OPTIONS`. Se admiten las URL `http` y `https`. + 2. **Name** your HTTP test. -
    Para ver más opciones, consulta Opciones avanzadas.
    + 3. Add Environment **Tags** as well as any other tag to your HTTP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + + 4. Click **Send** to try out the request configuration. A response preview is displayed on the right side of your screen.

    - 2. **Pon un nombre** a tu test HTTP. + {{< img src="getting_started/synthetics/api-test-config-4.png" alt="Definir solicitud HTTP" style="width:90%;" >}} - 3. Añade **etiquetas (tags)** de entorno así como cualquier otra etiqueta a tu test HTTP. A continuación, puedes utilizar estas etiquetas para filtrar a través de tus tests Synthetic en la [página de monitorización Synthetic y tests continuos][3]. + 5. Click **Create Test** to submit your API test. - 4. Haz clic en **Enviar** para probar la configuración de la solicitud. Aparecerá una vista previa de la respuesta en la parte derecha de la pantalla.

    - - {{< img src="getting_started/synthetics/api-test-config-4.png" alt="Definir splicitud HTTP" style="width:90%;" >}} - - 5. Haz clic en **Create Test** (Crear test) para enviar tu test de API. - -### Fragmentos +### Fragmentos {#snippets} {{% synthetics-api-tests-snippets %}} -### Opciones avanzadas +### Opciones avanzadas {#advanced-options} -{{< tabs >}} + {{< tabs >}} -{{% tab "Opciones de solicitud" %}} - * **Versión HTTP**: Selecciona `HTTP/1.1 only`, `HTTP/2 only` o `HTTP/2 fallback to HTTP/1.1`. - * **Seguir redirecciones**: Selecciona esta opción para que tu test HTTP pueda acceder a un máximo de diez redirecciones al realizar la solicitud. - * **Ignorar error de certificado del servidor**: Selecciona esta opción para que tu test HTTP continúe con la conexión, aunque se produzcan errores al validar el certificado SSL. - * **Tiempo de espera**: Especifica la cantidad de tiempo en segundos antes de que se inicie un tiempo de espera en el test. - * **Request headers** (Encabezados de la solicitud): define encabezados para añadir a tu solicitud HTTP. También puedes anular los encabezados predeterminados (por ejemplo, el encabezado `user-agent`). - * **Cookies**: define cookies para añadir a tu solicitud HTTP. Define varias cookies con el formato `=; =`. + {{% tab "Opciones de solicitud" %}} + * **Versión HTTP**: Seleccione `HTTP/1.1 only`, `HTTP/2 only` o `HTTP/2 fallback to HTTP/1.1`. + * **Seguir redirecciones**: Seleccione para que su prueba HTTP siga hasta diez redirecciones al realizar la solicitud. + * **Ignorar error de certificado del servidor**: Seleccione para que su prueba HTTP continúe con la conexión incluso si hay errores al validar el certificado SSL. + * **Tiempo de espera**: Especifique la cantidad de tiempo en segundos antes de que la prueba exceda el tiempo límite. + * **Encabezados de solicitud**: Define encabezados para agregar a tu solicitud HTTP. También puedes anular los encabezados predeterminados (por ejemplo, el encabezado `user-agent`). + * **Cookies**: Define cookies para agregar a tu solicitud HTTP. Establece múltiples cookies utilizando el formato `=; =`. {{% /tab %}} {{% tab "Autenticación" %}} - * **Certificado de cliente**: Autentícate a través de mTLS cargando tu certificado de cliente (`.crt`) y la clave privada asociada (`.key`) en formato `PEM`. Puedes utilizar la biblioteca `openssl` para convertir tus certificados. Por ejemplo, puedes convertir un certificado `PKCS12` en certificados y claves privadas en formato `PEM`. + * **Certificado de cliente**: Autentica a través de mTLS subiendo tu certificado de cliente (`.crt`) y la clave privada asociada (`.key`) en formato `PEM`. Puedes usar la biblioteca `openssl` para convertir tus certificados. Por ejemplo, convierte un certificado `PKCS12` a claves privadas y certificados en formato `PEM`. ``` openssl pkcs12 -in .p12 -out .key -nodes -nocerts openssl pkcs12 -in .p12 -out .cert -nokeys ``` - * **HTTP Basic Auth** (Autenticación básica de HTTP): añade credenciales de autenticación básica de HTTP. - * **Autenticación Digest**: Añade credenciales de autenticación Digest. - * **NTLM**: añade credenciales de autenticación NTLM. Es compatible con NTLMv2 y NTLMv1. - * **AWS Signature v4**: Introduce tu ID de clave de acceso y tu clave de acceso secreta. Datadog genera la firma para tu solicitud. Esta opción utiliza la implementación básica de SigV4. Las firmas específicas, como Amazon S3, no son compatibles de forma predefinida. - Para las solicitudes de transferencia "Single Chunk" a buckets de Amazon S3, añade `x-amz-content-sha256` con el cuerpo de la solicitud codificado con sha256 como cabecera (para un cuerpo vacío: `x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`). - * **OAuth 2.0**: Elige entre conceder credenciales de cliente o una contraseña de propietario de recurso e introduce un token de acceso URL. Dependiendo de tu selección, introduce un ID de cliente y un secreto, o un nombre de usuario y una contraseña. En el menú desplegable, selecciona una opción para enviar el token de la API como encabezado de autenticación básica o envía las credenciales del cliente en el cuerpo. Opcionalmente, puedes proporcionar información adicional como la audiencia, el recurso y el contexto (así como el ID y el secreto del cliente, si seleccionaste **Contraseña del propietario del recurso**). + * **Autenticación básica HTTP**: Agrega credenciales de autenticación básica HTTP. + * **Autenticación Digest**: Agrega credenciales de autenticación Digest. + * **NTLM**: Agrega credenciales de autenticación NTLM. Admite tanto NTLMv2 como NTLMv1. + * **Firma AWS v4**: Ingresa tu ID de clave de acceso y clave de acceso secreta. Datadog genera la firma para tu solicitud. Esta opción utiliza la implementación básica de SigV4. Firmas específicas como Amazon S3 no son compatibles de forma predeterminada. + Para solicitudes de transferencia "Single Chunk" a los buckets de Amazon S3, agrega `x-amz-content-sha256` que contenga el cuerpo de la solicitud codificado en sha256 como un encabezado (para un cuerpo vacío: `x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`). + * **OAuth 2.0**: Elige entre otorgar credenciales de cliente o una contraseña de propietario de recurso e ingresa una URL de token de acceso. Dependiendo de tu selección, ingresa un ID de cliente y secreto, o un nombre de usuario y contraseña. Desde el menú desplegable, selecciona una opción para enviar el token de API como un encabezado de autenticación básica, o enviar las credenciales del cliente en el cuerpo. Opcionalmente, puedes proporcionar información adicional como la audiencia, el recurso y el contexto (así como el ID y secreto del cliente, si seleccionaste **Recurso de Propietario de Contraseña**). {{% /tab %}} - {{% tab "Parámetros de consulta" %}} + {{% tab "Parámetros de Consulta" %}} - * **Codificar parámetros**: Añade el nombre y el valor de los parámetros de consulta que requieren codificación. + * **Codificar parámetros**: Agrega el nombre y valor de los parámetros de consulta que requieren codificación. {{% /tab %}} - {{% tab "Cuerpo de la solicitud" %}} + {{% tab "Cuerpo de la Solicitud" %}} - * **Tipo de cuerpo**: Selecciona el tipo de cuerpo de la solicitud (`application/json`, `application/octet-stream`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/html`, `text/plain`, `text/xml`, `GraphQL` o `None`) que quieres añadir a tu solicitud HTTP. - * **Cuerpo de la solicitud**: Añade el contenido del cuerpo de tu solicitud HTTP. + * **Tipo de cuerpo**: Seleccione el tipo de cuerpo de la solicitud (`application/json`, `application/octet-stream`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/html`, `text/plain`, `text/xml`, `GraphQL` o `None`) que desea agregar a su solicitud HTTP. + * **Cuerpo de la solicitud**: Agrega el contenido de tu cuerpo de solicitud HTTP. * El cuerpo de la solicitud está limitado a un tamaño máximo de 50 kilobytes para `application/json`, `application/x-www-form-urlencoded`, `text/html`, `text/plain`, `text/xml`, `GraphQL`. * El cuerpo de la solicitud está limitado a un archivo de 3 megabytes para `application/octet-stream`. - * El cuerpo de la solicitud está limitado a tres archivos de 3 megabytes cada uno para `multipart/form-data`. + * El cuerpo de la solicitud está limitado a tres archivos de 3 megabytes cada uno para `multipart/form-data`. {{% /tab %}} {{% tab "Proxy" %}} - * **Proxy URL** (URL del proxy): especifica la URL del proxy por la que debe pasar la solicitud HTTP (`http://:@:`). - * **Cabecera de proxy**: Añade cabeceras para incluir en la solicitud HTTP al proxy. + * **URL del proxy**: Especifique la URL del proxy por el que debe pasar la solicitud HTTP (`http://:@:`). + * **Encabezado del proxy**: Agregue encabezados para incluir en la solicitud HTTP al proxy. {{% /tab %}} {{% tab "Privacidad" %}} - * **No guardar el cuerpo de la respuesta**: Selecciona esta opción para evitar que se guarde el cuerpo de la respuesta en tiempo de ejecución. Esta opción es útil para garantizar que no se muestren datos confidenciales en los resultados del test, pero debes utilizarla con prudencia ya que puede dificultar la resolución de problemas. Para obtener recomendaciones de seguridad, consulta [Seguridad en la monitorización Synthetic][1]. + * **No guardar el cuerpo de la respuesta**: Seleccione esta opción para evitar que el cuerpo de la respuesta se guarde en tiempo de ejecución y para truncar el mensaje de error de las afirmaciones de JavaScript fallidas. Esto ayuda a garantizar que no se muestre información sensible en los resultados de su prueba, pero puede dificultar la solución de problemas de fallos. Para recomendaciones de seguridad completas, consulte [Seguridad de Datos de Monitoreo Sintético][1]. [1]: /es/data_security/synthetics {{% /tab %}} -{{% tab "Javascript" %}} + {{% tab "Javascript" %}} -Define variables para tus tests de API HTTP con JavaScript: +Defina variables para sus pruebas de API HTTP con JavaScript: -{{< img src="synthetics/api_tests/http_javascript.png" alt="Definir tests de API HTTP con Javascript" style="width:90%;" >}} +{{< img src="synthetics/api_tests/http_javascript.png" alt="Defina prueba de API HTTP con Javascript" style="width:90%;" >}} -
    Las capacidades de JavaScript no son compatibles con los tests de API en ubicaciones privadas de Windows.
    +
    Las capacidades de JavaScript no son compatibles con las pruebas de API en ubicaciones privadas de Windows.
    {{% /tab %}} {{< /tabs >}} -### Definición de aserciones +### Define afirmaciones {#define-assertions} -Las aserciones definen cuál es el resultado esperado de un test. Después de hacer clic en **URL del test**, se añaden aserciones básicas de `response time`, `status code` y `header` `content-type` basadas en la respuesta obtenida. Debes definir al menos una aserción para que sea monitorizada por tu test. +Las afirmaciones definen cuál es un resultado de prueba esperado. Después de hacer clic en **Probar URL**, se añaden afirmaciones básicas sobre `response time`, `status code` y `header` `content-type` basadas en la respuesta que se obtuvo. Debes definir al menos una afirmación para que tu prueba sea objeto de seguimiento. -
    Las secciones de aserciones de cabecera, cuerpo y JavaScript solo sirven para definir aserciones. No se pueden utilizar para realizar solicitudes HTTP adicionales.
    +
    El encabezado de afirmaciones, el cuerpo y las secciones de JavaScript son solo para definir afirmaciones. No se pueden usar para hacer solicitudes HTTP adicionales.
    + +{{< tabs >}} +{{% tab "Afirmaciones de respuesta" %}} | Tipo | Operador | Tipo de valor | |---------------|--------------------------------------------------------------------------------------------------------|----------------------------------------------------------------| -| cuerpo | `contains`, `does not contain`, `is`, `is not`,
    `matches`, `does not match`,
    [`jsonpath`][4], [`xpath`][5] | Cadena
    [Expresión regular][6] | -| encabezado | `contains`, `does not contain`, `is`, `is not`,
    `matches`, `does not match` | Cadena
    [Expresión regular][6] | +| cuerpo | `contains`, `does not contain`, `is`, `is not`,
    `matches`, `does not match`,
    [`jsonpath`][4], [`xpath`][5] | _Cadena_
    _[Regex][6]_ | +| encabezado | `contains`, `does not contain`, `is`, `is not`,
    `matches`, `does not match` | _Cadena_
    _[Regex][6]_ | | tiempo de respuesta | `is less than` | _Entero (ms)_ | -| código de estado | `is`, `is not`,
    `matches`, `does not match` | Entero
    [Expresión regular][6] | +| código de estado | `is`, `is not`,
    `matches`, `does not match` | _Entero_
    _[Regex][6]_ | + +Las pruebas HTTP pueden descomprimir cuerpos con los siguientes `content-encoding` encabezados: `br`, `deflate`, `gzip` y `identity`. + +Puedes crear hasta 20 afirmaciones por prueba de API haciendo clic en **Nueva Afirmación** o haciendo clic directamente en la vista previa de la respuesta: + +{{< img src="synthetics/api_tests/assertions_http.png" alt="Define afirmaciones para que tu prueba HTTP tenga éxito o falle en" style="width:90%;" >}} + +Para realizar `OR` lógica en una afirmación, usa el `matches regex` comparador para definir una expresión regular con múltiples valores esperados como `(200|302)`. Por ejemplo, puedes querer que tu prueba HTTP tenga éxito cuando un servidor deba responder con un código de estado `200` o `302`. La afirmación `status code` tiene éxito si el código de estado es 200 o 302. También puedes añadir lógica `OR` en una afirmación `body` o `header` con el comparador `matches regex`. + +Si una prueba no contiene una afirmación sobre el cuerpo de la respuesta, la carga del cuerpo se descarta y se devuelve un tiempo de respuesta asociado para la solicitud dentro del límite de tiempo establecido por el Synthetics Worker. + +El cuerpo de la respuesta solo se devuelve si ha agregado afirmaciones sobre su contenido y estas afirmaciones han fallado. Si una prueba contiene una afirmación sobre el cuerpo de la respuesta y tiene éxito, la carga del cuerpo se descarta y solo se muestra un fragmento de los primeros 50 caracteres del cuerpo de la respuesta. + +Si una prueba contiene una afirmación sobre el cuerpo de la respuesta y se alcanza el límite de tiempo, aparece un error `Assertions on the body/response cannot be run beyond this limit`. + +[4]: https://restfulapi.net/json-jsonpath/ +[5]: https://www.w3schools.com/xml/xpath_syntax.asp +[6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + +{{% /tab %}} +{{% tab "JavaScript" %}} + +Utilice afirmaciones de JavaScript cuando las afirmaciones de respuesta estándar no satisfagan sus necesidades de validación. Synthetic Monitoring utiliza la [biblioteca de afirmaciones Chai][20], que proporciona `dd.expect()`, `dd.should` y `dd.assert()` para estilos de afirmación flexibles. + +Al trabajar con respuestas JSON, utilice `JSON.parse(dd.response.body)` para analizar el cuerpo de la respuesta antes de acceder a sus propiedades. Esto es necesario para todos los métodos de afirmación (`dd.assert()`, `dd.expect()` y `dd.should`) al validar datos JSON. + +{{< img src="synthetics/api_tests/JS_assertion.png" alt="Afirmación de JavaScript para prueba de API HTTP" style="width:90%;" >}} + +
    +
      +
    • Las capacidades de JavaScript no son compatibles con pruebas de API en ubicaciones privadas de Windows.
    • +
    • Si el mensaje de error de una afirmación de JavaScript fallida puede incluir datos sensibles, bajo Opciones Avanzadas > Privacidad, habilite No guardar el cuerpo de la respuesta. Esto trunca el mensaje de error de la afirmación.
    • +
    +
    + +#### Usando dd.assert() {#using-ddassert} + +Utilice `dd.assert()` para la sintaxis tradicional de afirmaciones: + +Por ejemplo, para afirmar que un campo `status.code` es uno de varios valores permitidos: -Los tests HTTP pueden descomprimir cuerpos con las siguientes cabeceras `content-encoding`: `br`, `deflate`, `gzip` y `identity`. +{{< code-block lang="javascript" >}} +const response = JSON.parse(dd.response.body); +// Assert that the status code is 200, 210, 320, or 330 +dd.assert.include([200, 210, 320, 330], response.status.code); +{{< /code-block >}} -Puedes crear hasta 20 aserciones por test de API haciendo clic en **Nueva aserción** o haciendo clic directamente en la vista previa de la respuesta: +Respuesta de ejemplo: -{{< img src="synthetics/api_tests/assertions_http.png" alt="Definir aserciones en las que tu test HTTP tenga éxito o falle" style="width:90%;" >}} +```json +{ + "status": { + "code": 200, + "message": "Success" + } +} +``` -Para aplicar una lógica `OR` en una aserción, utiliza el comparador `matches regex` para definir una expresión regular con varios valores esperados, como `(200|302)`. Por ejemplo, te podría interesar que tu test HTTP tenga éxito cuando el servidor responde con un código de estado `200` o `302`. La aserción `status code` tiene éxito si el código de estado es 200 o 302. También puedes añadir la lógica `OR` en una aserción de `body` o `header`. +Esta afirmación: +- Analiza el cuerpo de la respuesta JSON +- Verifica que `status.code` esté incluido en el arreglo de valores permitidos (200, 210, 320 o 330) -Si un test no contiene una aserción en el cuerpo de la respuesta, la carga útil del cuerpo cae y devuelve un tiempo de respuesta asociado para la solicitud dentro del límite de tiempo de espera establecido por el worker de Synthetics. +La prueba **pasa** porque `status.code` es `200`, lo cual está incluido en el arreglo de valores permitidos. -Si un test contiene una aserción en el cuerpo de la respuesta y se alcanza el límite de tiempo de espera, aparecerá el error `Assertions on the body/response cannot be run beyond this limit`. +Para más información sobre `assert.include()`, consulta la [documentación de Chai assert.include()][21]. -### Seleccionar localizaciones +#### Usando dd.expect() {#using-ddexpect} -Selecciona las **Localizaciones** desde donde ejecutar tu test HTTP. Los tests HTTP pueden ejecutarse desde localizaciones gestionadas y también [privadas][1], en función de si prefieres ejecutar el test desde fuera o desde dentro de tu red. +Utilice `dd.expect()` para afirmaciones con validación de propiedades anidadas. + +Por ejemplo, para afirmar que un campo `status.indicator` coincida con uno de los varios valores esperados: + +{{< code-block lang="javascript" >}} +const response = JSON.parse(dd.response.body); +const regex = /^(major|critical|minor|none)$/; + +dd.expect(response) + .to.have.nested.property('status.indicator') + .that.matches(regex); +{{< /code-block >}} + +Respuesta de ejemplo: + +```json +{ + "status": { + "indicator": "none" + } +} +``` +Esta afirmación: +- Analiza el cuerpo de la respuesta JSON +- Valida que la propiedad anidada `status.indicator` exista +- Verifica que el valor coincida con el patrón regex (uno de: `major`, `critical`, `minor` o `none`) + +Con el regex `/^(major|critical|minor|none)$/`, la prueba **pasa** porque `status.indicator` es `"none"`, lo cual coincide con el patrón. + +Con el regex `/^(major|critical|minor)$/`, la prueba **falla** porque `"none"` no está incluido en los valores permitidos. + +Para más información sobre `expect()`, consulta la [documentación de Chai expect()][22]. + +#### Usando dd.should {#using-ddshould} + +Usa `dd.should` para escribir afirmaciones con sintaxis de lenguaje natural: + +Por ejemplo, para afirmar que un campo `status.indicator` existe y es igual a un valor específico: + +{{< code-block lang="javascript" >}} +const response = JSON.parse(dd.response.body); +response.status.should.exist(); +const indicator = response.status.indicator; +indicator.should.equal('none'); +{{< /code-block >}} + +Respuesta de ejemplo: + +```json +{ + "status": { + "indicator": "none" + } +} +``` + +Esta afirmación: +- Analiza el cuerpo de la respuesta JSON +- Verifica que la propiedad `status` exista +- Extrae el valor del indicador en una variable +- Verifica que `status.indicator` sea igual a `"none"` + +La prueba **pasa** porque `status` existe y `status.indicator` es `"none"`. + +Para más información sobre `should()`, consulta la [documentación de Chai should()][23]. + +[20]: https://www.chaijs.com/api/ +[21]: https://www.chaijs.com/api/assert/#method_include +[22]: https://www.chaijs.com/guide/styles/#expect +[23]: https://www.chaijs.com/guide/styles/#should + +{{% /tab %}} +{{< /tabs >}} + +### Seleccione ubicaciones {#select-locations} + +Seleccione las **Ubicaciones** desde las cuales ejecutar su prueba HTTP. Las pruebas HTTP pueden ejecutarse desde ubicaciones gestionadas y [privadas][1] dependiendo de su preferencia por ejecutar la prueba desde fuera o dentro de su red. {{% managed-locations %}} -### Indicar la frecuencia del test +### Especifique la frecuencia de la prueba {#specify-test-frequency} -Los tests HTTP se pueden ejecutar: +Las pruebas HTTP pueden ejecutarse: -* **De forma programada** para garantizar que los endpoints más importantes siempre resulten accesibles para tus usuarios. Selecciona la frecuencia con la que quieres que Datadog ejecute tu test HTTP. -* [**En tus pipelines CI/CD**][2] para empezar a realizar envíos sin temer que un código defectuoso pueda afectar a la experiencia de tus clientes. -* **Bajo demanda** para ejecutar tus tests cuando sea más conveniente para tu equipo. +* **Según un horario** para asegurar que sus puntos de conexión más importantes siempre sean accesibles para sus usuarios. Seleccione la frecuencia con la que desea que Datadog ejecute su prueba HTTP. +* [**Dentro de sus pipelines de CI/CD**][2] para comenzar a enviar sin temer que un código defectuoso pueda afectar la experiencia de sus clientes. +* **A demanda** para ejecutar sus pruebas cuando tenga más sentido para su equipo. {{% synthetics-alerting-monitoring %}} -## Un clic +{{% synthetics-downtimes %}} + +## Un clic {#one-click} -La creación de tests de API sugiere endpoints del [Catálogo de software][17] y de los tests de API existentes para pre-rellenar tu formulario de tests con opciones relevantes. -Utiliza las fuentes de datos existentes de Datadog, como las trazas (traces) APM, la detección de endpoints del Catálogo de software y los tests Synthetic existentes similares, creados por los usuarios. +La creación de pruebas de API sugiere puntos de conexión del [Catálogo][17] y pruebas de API existentes para completar su formulario de prueba con opciones relevantes. +Utilice fuentes de datos existentes de Datadog, como trazas de APM, descubrimiento de puntos de conexión del Catálogo y pruebas Synthetic similares existentes creadas por usuarios. -Empieza a escribir en la entrada **URL** del test de la API para obtener sugerencias de endpoints o tests similares en la monitorización Synthetic: +Comience a escribir en la entrada de **URL** de la prueba de API para obtener sugerencias de puntos de conexión o pruebas similares en Synthetic Monitoring: - {{< img src="synthetics/api_tests/api-one-click.png" alt="Test de API HTTP que muestra una búsqueda GET de un test de API existente" style="width:90%;" >}} + {{< img src="synthetics/api_tests/api-one-click.png" alt="Prueba de API HTTP mostrando una búsqueda GET para una prueba de API existente" style="width:90%;" >}} -A continuación, selecciona una sugerencia para pre-rellenar la configuración de tu test (opciones y cabeceras de solicitud, autenticación y variables): +Luego, seleccione una sugerencia para completar la configuración de su prueba (opciones de solicitud y encabezados, autenticación y variables): - {{< img src="synthetics/api_tests/api-test-monitor-search.png" alt="Seleccionar" style="width:90%;" >}} + {{< img src="synthetics/api_tests/api-test-monitor-search.png" alt="Seleccione" style="width:90%;" >}} {{% synthetics-variables %}} -### Usar variables +### Utilice variables {#use-variables} -Puedes utilizar las [variables globales definidas en la página **Parámetros**][11] en la URL, las opciones avanzadas y las aserciones de tus tests HTTP. +Puede usar las [variables globales definidas en la página **Settings**][11] en la URL, opciones avanzadas y afirmaciones de sus pruebas HTTP. -Para visualizar tu lista de variables, escribe `{{` en el campo de tu elección. +Para mostrar su lista de variables, escriba `{{` en el campo deseado: -{{< img src="synthetics/api_tests/http_use_variable.mp4" alt="Uso de variables en un test HTTP" video="true" width="100%" >}} +{{< img src="synthetics/api_tests/http_use_variable.mp4" alt="Usando variables en una prueba HTTP" video="true" width="100%" >}} -## Fallo del test +## Fallo de prueba {#test-failure} -Un test se considera `FAILED` si no satisface una o más aserciones o si la solicitud ha fallado prematuramente. En algunos casos, el test puede fallar sin comprobar las aserciones respecto al endpoint. +Una prueba se considera `FAILED` si no satisface una o más afirmaciones o si la solicitud falló prematuramente. En algunos casos, la prueba puede fallar sin probar las afirmaciones contra el punto de conexión. -Para obtener una lista completa de los códigos de error HTTP y SSL, consulta [Errores de tests de API][12]. +Para una lista completa de códigos de error HTTP y SSL, consulta [Errores de pruebas de API][12]. -## Permisos +## Permisos {#permissions} -De manera predeterminada, sólo los usuarios con los roles de [administrador de Datadog y estándar de Datadog][13] pueden crear, editar y eliminar tests HTTP Synthetic. Para crear, editar y eliminar tests HTTP Synthetic, actualiza tu usuario a uno de esos dos [roles predeterminados][13]. +Por defecto, solo los usuarios con los [Datadog Admin y Datadog Standard roles][13] pueden crear, editar y eliminar pruebas HTTP Synthetic. Para obtener acceso para crear, editar y eliminar pruebas HTTP Synthetic, actualice su rol de usuario a uno de esos dos [default roles][13]. -Si estás utilizando la [función de rol personalizado][14], añade tu usuario a cualquier rol que incluya permisos `synthetics_read` y `synthetics_write`. +Si está usando la [función de rol personalizado][14], agregue su usuario a cualquiera de los roles personalizados que incluyan los permisos `synthetics_read` y `synthetics_write`. -### Restringir el acceso +### Restringir acceso {#restrict-access} {{% synthetics_grace_permissions %}} -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/synthetics/private_locations [2]: /es/synthetics/cicd_integrations [3]: /es/synthetics/search/#search -[4]: https://restfulapi.net/json-jsonpath/ -[5]: https://www.w3schools.com/xml/xpath_syntax.asp -[6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions [7]: /es/monitors/notify/#configure-notifications-and-automations [8]: https://www.markdownguide.org/basic-syntax/ [9]: /es/monitors/notify/?tab=is_recoveryis_alert_recovery#conditional-variables diff --git a/content/es/tracing/other_telemetry/connect_logs_and_traces/dotnet.md b/content/es/tracing/other_telemetry/connect_logs_and_traces/dotnet.md index 17ccda47566..533a24a68d9 100644 --- a/content/es/tracing/other_telemetry/connect_logs_and_traces/dotnet.md +++ b/content/es/tracing/other_telemetry/connect_logs_and_traces/dotnet.md @@ -3,82 +3,81 @@ aliases: - /es/tracing/connect_logs_and_traces/dotnet code_lang: dotnet code_lang_weight: 60 -description: Conecta tu logs y trazas (traces) de .NET para correlacionarlos en Datadog. +description: Conecte sus registros y trazas de .NET para correlacionarlos en Datadog. further_reading: - link: tracing/trace_collection/custom_instrumentation tag: Documentación - text: Instrumenta tu aplicación de forma manual para crear trazas. + text: Instrumente manualmente su aplicación para crear trazas. - link: tracing/glossary/ tag: Documentación - text: Explora tus servicios, recursos y trazas + text: Explore sus servicios, recursos y trazas. - link: https://www.datadoghq.com/blog/request-log-correlation/ tag: Blog - text: Correlacionar automáticamente logs de solicitud con trazas + text: Correlacione automáticamente los registros de solicitudes con las trazas. - link: /logs/guide/ease-troubleshooting-with-cross-product-correlation/ tag: Guía - text: Facilita la solución de problemas con una correlación entre productos. -title: Correlación de logs y trazas de .NET + text: Facilite la solución de problemas con la correlación entre productos. +title: Correlacionando Registros y Trazas de .NET type: multi-code-lang --- +Puede configurar su biblioteca de registros y las configuraciones de trazado de .NET para que los ID de traza y de tramo se inyecten en los registros de la aplicación, proporcionándole datos de monitoreo del rendimiento de la aplicación correlacionados con los datos de registro. -Puedes establecer tu biblioteca de registro y las configuraciones de rastreo de .NET para que los IDs de traza y tramo se inyecten en los logs de aplicación, lo que te proporcionará datos de monitorización del rendimiento de la aplicación correlacionados con los datos de log. +Configure el .NET Tracer con [Unified Service Tagging][1] para la mejor experiencia y un contexto útil al correlacionar trazas y registros de la aplicación. -Configura el .NET Tracer con el [etiquetado de servicios unificado][1] para obtener la mejor experiencia y un contexto útil al correlacionar las trazas y logs de aplicación. - -.NET Tracer admite las siguientes bibliotecas de registro: +El .NET Tracer admite las siguientes bibliotecas de registros: - [Serilog][2] (v1.4+) - [log4net][3] - [NLog][4] -- [Microsoft.Extensions.Logging][5] (añadido en v1.28.6) +- [Microsoft.Extensions.Logging][5] (agregado en v1.28.6) -## Configuración de la recopilación de logs +## Configure la recolección de registros {#configure-log-collection} -Asegúrate de que la recopilación de log está configurada en el Datadog Agent y que la [configuración del Logs Agent][15] para los archivos especificados a la cola esté establecida en `source: csharp`, de modo que los pipelines de log puedan analizar los archivos de log. Para obtener más información, consulta [Recopilación de logs de C#][7]. Si `source` se establece en un valor distinto de `csharp`, es posible que tengas que añadir un [reasignador de traza][8] al pipeline de procesamiento de log apropiado para que la correlación funcione correctamente. +Asegúrese de que la recolección de registros esté configurada en el Agente de Datadog y que la [configuración del Agente de Registros][15] para los archivos especificados a seguir esté configurada en `source: csharp` para que las canalizaciones de registros puedan parsear los archivos de registro. Para más información, consulta [Recolección de Registros en C#][7]. Si el `source` está configurado a un valor diferente de `csharp`, es posible que necesites agregar un [remapeador de trazas][8] a la canalización de procesamiento de registros apropiada para que la correlación funcione correctamente. -
    La recopilación automática de logs solo funciona para logs formateados como JSON. Como alternativa, utiliza reglas de parseo personalizadas.
    +
    La recolección automática de registros solo funciona para registros formateados como JSON. Alternativamente, utilice reglas de parseo personalizadas.
    -## Configuración de la inyección en logs +## Configure la inyección en los registros {#configure-injection-in-logs} -Para inyectar identificadores de correlación en tus mensajes de log, sigue las instrucciones de tu biblioteca de registro. +Para inyectar identificadores de correlación en sus mensajes de registro, siga las instrucciones para su biblioteca de registro.
    - Consulta las muestras en dd-trace-dotnet para ver más ejemplos. + Vea los ejemplos en dd-trace-dotnet para más ejemplos.
    {{< tabs >}} {{% tab "Serilog" %}}
    - Nota: A partir de la versión 2.0.1 del rastreador de .NET, la inyección automática para la biblioteca de registro de Serilog requiere que la aplicación esté instrumentada con la instrumentación automática. + Nota: A partir de la versión 2.0.1 del .NET Tracer, la inyección automática para la biblioteca de registro Serilog requiere que la aplicación esté instrumentada con instrumentación automática.
    -Para inyectar automáticamente identificadores de correlación en tus mensajes de log: +Para inyectar automáticamente identificadores de correlación en sus mensajes de registro: -1. Configura el .NET Tracer con la siguiente configuración del rastreador: +1. Configure el .NET Tracer con las siguientes configuraciones del Tracer: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` -2. Activa el rastreo de instrumentación automática de tu aplicación siguiendo las [instrucciones para instalar .NET Tracer][1]. +2. Habilite el trazado de instrumentación automática de su aplicación siguiendo las [instrucciones para instalar el .NET Tracer][1]. [1]: https://docs.datadoghq.com/es/tracing/trace_collection/dd_libraries/dotnet-core/ {{% /tab %}} {{% tab "log4net" %}}
    - Nota: A partir de la versión 1.29.0 del rastreador de .NET, la inyección automática para la biblioteca de registro de log4net requiere que la aplicación esté instrumentada con instrumentación automática. + Nota: A partir de la versión 1.29.0 del .NET Tracer, la inyección automática para la biblioteca de registro log4net requiere que la aplicación esté instrumentada con instrumentación automática.
    -Para inyectar automáticamente identificadores de correlación en tus mensajes de log: +Para inyectar automáticamente identificadores de correlación en sus mensajes de registro: -1. Configura el .NET Tracer con la siguiente configuración del rastreador: +1. Configure el .NET Tracer con las siguientes configuraciones del tracer: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` -2. Activa el rastreo de instrumentación automática de tu aplicación siguiendo las [instrucciones para instalar .NET Tracer][1]. +2. Habilite el trazado de instrumentación automática de su aplicación siguiendo las [instrucciones para instalar el .NET Tracer][1]. -3. Añade las propiedades de log `dd.env`, `dd.service`, `dd.version`, `dd.trace_id` y `dd.span_id` en tu salida de registro. Puedes hacer esto al incluir estas propiedades _individualmente_ o al incluir _todas_ las propiedades de log. Ambos enfoques se muestran en el siguiente código de ejemplo: +3. Agregue `dd.env`, `dd.service`, `dd.version`, `dd.trace_id` y `dd.span_id` propiedades de registro en su salida. Esto se puede hacer incluyendo estas propiedades _individualmente_ o incluyendo _todas_ las propiedades de registro. Ambos enfoques se muestran en el siguiente código de ejemplo: ```xml @@ -102,7 +101,7 @@ Para inyectar automáticamente identificadores de correlación en tus mensajes d ``` -Para ver ejemplos adicionales, consulta [el proyecto de inyección automática de ID de traza de log4net][2] en GitHub. +Para ejemplos adicionales, consulte [el proyecto de inyección automática de ID de traza log4net][2] en GitHub. [1]: https://docs.datadoghq.com/es/tracing/trace_collection/dd_libraries/dotnet-core/ @@ -111,19 +110,19 @@ Para ver ejemplos adicionales, consulta [el proyecto de inyección automática d {{% tab "NLog" %}}
    - Nota: A partir de la versión 2.0.1 del rastreador de .NET, la inyección automática para la biblioteca de registro de NLog requiere que la aplicación esté instrumentada con instrumentación automática. + Nota: A partir de la versión 2.0.1 de .NET Tracer, la inyección automática para la biblioteca de registro NLog requiere que la aplicación esté instrumentada con instrumentación automática.
    -Para inyectar automáticamente identificadores de correlación en tus mensajes de log: +Para inyectar automáticamente identificadores de correlación en sus mensajes de registro: -1. Configura el .NET Tracer con la siguiente configuración del rastreador: +1. Configure el .NET Tracer con las siguientes configuraciones del tracer: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` -2. Activa el rastreo de instrumentación automática de tu aplicación siguiendo las [instrucciones para instalar .NET Tracer][1]. +2. Habilite el trazado de instrumentación automática de su aplicación siguiendo las [instrucciones para instalar el .NET Tracer][1]. -3. Habilita el contexto de diagnóstico asignado (MDC), como se muestra en el siguiente código de ejemplo para NLog versión 5.0+: +3. Habilite el contexto de diagnóstico mapeado (MDC), como se muestra en el siguiente código de ejemplo para NLog versión 5.0+: ```xml @@ -158,7 +157,7 @@ Para NLog versión 4.5: ``` -Para ver ejemplos adicionales, consulta los proyectos de inyección automática de ID de traza utilizando [NLog 4.0][2], [NLog 4.5][3], o [NLog 4.6][4] en GitHub. +Para ejemplos adicionales, consulte los proyectos de inyección automática de ID de traza utilizando [NLog 4.0][2], [NLog 4.5][3] o [NLog 4.6][4] en GitHub. [1]: https://docs.datadoghq.com/es/tracing/trace_collection/dd_libraries/dotnet-core/ @@ -167,16 +166,16 @@ Para ver ejemplos adicionales, consulta los proyectos de inyección automática [4]: https://github.com/DataDog/dd-trace-dotnet/blob/master/tracer/samples/AutomaticTraceIdInjection/NLog46Example/NLog.config {{% /tab %}} {{% tab "Microsoft.Extensions.Logging" %}} -Para inyectar automáticamente identificadores de correlación en tus mensajes de log: +Para inyectar automáticamente identificadores de correlación en sus mensajes de registro: -1. Configura el .NET Tracer con la siguiente configuración del rastreador: +1. Configure el .NET Tracer con las siguientes configuraciones del tracer: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` -2. Activa el rastreo de instrumentación automática de tu aplicación siguiendo las [instrucciones para instalar .NET Tracer][1]. +2. Habilite el trazado de instrumentación automática de su aplicación siguiendo las [instrucciones para instalar el .NET Tracer][1]. -3. Activa [contextos de log][2] para tu proveedor de registro, como se muestra en el código de ejemplo. Solo los proveedores que admiten contextos de log tendrán identificadores de correlación inyectados. +3. Habilite [los ámbitos de registro][2] para su proveedor de registro, como se muestra en el código de ejemplo. Solo los proveedores que admiten ámbitos de registro tendrán identificadores de correlación inyectados. ```csharp Host.CreateDefaultBuilder(args) @@ -190,11 +189,11 @@ Host.CreateDefaultBuilder(args) } ``` -Si hay una traza activa cuando se está escribiendo el log, los IDs de traza y tramo se inyectan automáticamente en la aplicación de logs con las propiedades `dd_trace_id` y `dd_span_id`. Si no hay una traza activa, solo se inyectan las propiedades `dd_env`, `dd_service` y `dd_version`. +Si hay una traza activa cuando se está escribiendo el registro, los IDs de traza y de span se inyectan automáticamente en los registros de la aplicación con las propiedades `dd_trace_id` y `dd_span_id`. Si no hay una traza activa, solo se inyectan las propiedades `dd_env`, `dd_service` y `dd_version`. -**Nota:** Si estás utilizando una biblioteca de registro que reemplaza el despliegue`LoggerFactory` por defecto como los paquetes [_Serilog.Extensions.Hosting_][3] o [_Serilog.Extensions.Logging_][4], sigue las instrucciones específicas del framework (en este ejemplo, ve **Serilog**). +**Nota:** Si está utilizando una biblioteca de registro que reemplaza la implementación predeterminada de `LoggerFactory`, como los paquetes de [_Serilog.Extensions.Hosting_][3] o [_Serilog.Extensions.Logging_][4], siga las instrucciones específicas del marco (en este ejemplo, consulte **Serilog**). -Para obtener ejemplos adicionales, consulta [el proyecto de inyección de ID de traza automática Microsoft.Extensions.Logging][5] en GitHub. +Para ejemplos adicionales, consulte [el proyecto de inyección automática de ID de traza Microsoft.Extensions.Logging][5] en GitHub. [1]: https://docs.datadoghq.com/es/tracing/trace_collection/dd_libraries/dotnet-core/ @@ -205,52 +204,52 @@ Para obtener ejemplos adicionales, consulta [el proyecto de inyección de ID de {{% /tab %}} {{< /tabs >}} -A continuación, completa la configuración para la inyección automática o manual. +A continuación, complete la configuración para la inyección automática o manual. -## Inyección automática +## Inyección automática {#automatic-injection} -Para activar la inyección automática de identificadores de correlación, asegúrate de que `DD_LOGS_INJECTION` está activado. +Para habilitar la inyección automática del identificador de correlación, asegúrese de que `DD_LOGS_INJECTION` esté habilitado. -A partir de la versión 3.24.0, `DD_LOGS_INJECTION` está activado por defecto. Para versiones anteriores, configura `DD_LOGS_INJECTION=true` en las variables de entorno del rastreador de .NET. +A partir de la versión 3.24.0, `DD_LOGS_INJECTION` está habilitado por defecto. Para versiones anteriores, configure `DD_LOGS_INJECTION=true` en las variables de entorno del .NET Tracer. -Para configurar el rastreador de .NET con un método diferente, consulta [Configuración del rastreador de .NET][6]. +Para configurar el .NET Tracer con un método diferente, consulte [Configuración del .NET Tracer][6]. -Después de configurar la inyección del identificador de correlación, consulta [Recopilación de log de C#][7] para configurar tu recopilación de log. +Después de configurar la inyección del identificador de correlación, consulte [Recopilación de registros en C#][7] para configurar su recopilación de registros. -**Nota:** Para correlacionar trazas con logs, puede que necesites configurar un [reasignador de ID de traza][8] para analizar `dd_trace_id` como el ID de traza del log. Consulta [Los logs correlacionados no aparecen en el panel de ID de traza][9] para obtener más información. +**Nota:** Para correlacionar trazas con registros, es posible que necesite configurar un [remapeador de ID de traza][8] para analizar `dd_trace_id` como el ID de traza del registro. Consulte [Registros correlacionados que no aparecen en el panel de ID de traza][9] para más información. -
    A partir de la versión 2.35.0, si la configuración remota del Agent está habilitada donde se ejecuta este servicio, puedes establecer DD_LOGS_INJECTION en la interfaz de usuario de Software Catalog.
    +
    A partir de la versión 2.35.0, si Configuración Remota del Agente está habilitada donde se ejecuta este servicio, puede configurar DD_LOGS_INJECTION en la interfaz de usuario del Catálogo.
    -## Inyección manual +## Inyección manual {#manual-injection} -Si prefieres correlacionar manualmente tus trazas con tus logs, puedes añadir identificadores de correlación a tus logs. +Si prefiere correlacionar manualmente sus trazas con sus registros, puede agregar identificadores de correlación a sus registros. | Clave requerida | Descripción | | -------------- | -------------------------------------------- | - | `dd.env` | Configura globalmente el `env` para el rastreador. Por defecto es `""` si no se configura. | - | `dd.service` | Configura globalmente el nombre raíz del servicio. Por defecto es el nombre de la aplicación o el nombre del sitio IIS si no está configurado. | - | `dd.version` | Configura globalmente `version` para el servicio. Por defecto es `""` si no se configura. | - | `dd.trace_id` | ID de traza activo (representado como un número decimal de 64 bits) durante la sentencia de log. Por defecto `0` si no hay trazas. | - | `dd.span_id` | ID de tramo activo (representado como un número decimal de 64 bits) durante la sentencia de log. Por defecto `0` si no hay trazas. | + | `dd.env` | Configure globalmente el `env` para el SDK. Por defecto es `""` si no se establece. | + | `dd.service` | Configure globalmente el nombre del servicio raíz. Por defecto es el nombre de la aplicación o el nombre del sitio de IIS si no se establece. | + | `dd.version` | Configure globalmente `version` para el servicio. Por defecto es `""` si no se establece. | + | `dd.trace_id` | ID de traza activa (representado como un número decimal de 64 bits) durante la declaración de registro. Por defecto, se establece en `0` si no hay traza. | + | `dd.span_id` | ID de tramo activo (representado como un número decimal de 64 bits) durante la declaración de registro. Por defecto, se establece en `0` si no hay traza. | -**Nota:** Si no utilizas [la integración de log de Datadog][7] para analizar tus logs, las reglas personalizadas de parseo de log deben analizar `dd.trace_id` y `dd.span_id` como cadenas. Para obtener más información, consulta [Los Logs correlacionados no aparecen en el panel de ID de traza][10]. +**Nota:** Si no está utilizando una [Integración de Registro de Datadog][7] para analizar sus registros, las reglas de análisis de registros personalizadas deben analizar `dd.trace_id` y `dd.span_id` como cadenas. Para más información, consulte [Registros Correlacionados que No Aparecen en el Panel de ID de Traza][10]. -**Nota**: Si estás utilizando Serilog, Nlog o log4net a través de ILogger, consulta la sección Microsoft.Extensions.Logging para configurar estas propiedades con `BeginScope()`. +**Nota**: Si está utilizando Serilog, Nlog o log4net a través de ILogger, consulte la sección Microsoft.Extensions.Logging para configurar estas propiedades utilizando `BeginScope()`. -Después de completar los [pasos de introducción](#getting-started), termina tu configuración de mejora de log manual: +Después de completar los [pasos iniciales](#getting-started), finalice su configuración manual de enriquecimiento de registros: -1. Haz referencia al [paquete `Datadog.Trace` de NuGet][11] en tu proyecto. +1. Agregue una referencia al [`Datadog.Trace` paquete NuGet][11] en su proyecto. -2. Utiliza la API `CorrelationIdentifier` para recuperar identificadores de correlación y añadirlos al contexto de log mientras esté activo un tramo. +2. Utilice la `CorrelationIdentifier` API para recuperar identificadores de correlación y agregarlos al contexto de registro mientras un tramo está activo. -Por último, consulta [Recopilación de log de C#][7] para configurar tu recopilación de log. +Por último, consulte [Colección de Registros en C#][7] para configurar su colección de registros. Ejemplos: {{< tabs >}} {{% tab "Serilog" %}} -**Nota**: La biblioteca de Serilog requiere que los nombres de las propiedades de los mensajes sean identificadores C# válidos. Los nombres de propiedades obligatorios son: `dd_env`, `dd_service`, `dd_version`, `dd_trace_id` y `dd_span_id`. +**Nota**: La biblioteca Serilog requiere que los nombres de las propiedades de los mensajes sean identificadores válidos de C#. Los nombres de propiedades requeridos son: `dd_env`, `dd_service`, `dd_version`, `dd_trace_id` y `dd_span_id`. ```csharp using Datadog.Trace; @@ -340,12 +339,12 @@ using(_logger.BeginScope(new Dictionary {{% /tab %}} {{< /tabs >}} -Puedes obtener más información sobre el uso de BeginScope para crear mensajes estructurados de log para los siguientes proveedores de log: -- Serilog: [la semántica de ILogger.BeginScope()][12] -- NLog: [propiedades de NLog con Microsoft Extension Logging][13] -- log4net: [con BeginScope][14] +Puede leer más sobre el uso de BeginScope para crear mensajes de registro estructurados para los siguientes proveedores de registro: +- Serilog: [La semántica de ILogger.BeginScope()][12] +- NLog: [Propiedades de NLog con Microsoft Extension Logging][13] +- log4net: [Usando BeginScope][14] -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -356,7 +355,7 @@ Puedes obtener más información sobre el uso de BeginScope para crear mensajes [5]: https://docs.microsoft.com/en-us/dotnet/core/extensions/logging [6]: /es/tracing/trace_collection/library_config/dotnet-core/#configuring-the-net-tracer [7]: /es/logs/log_collection/csharp/ -[8]: /es/logs/log_configuration/processors/?tab=ui#trace-remapper +[8]: /es/logs/log_configuration/processors/trace_remapper/ [9]: /es/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel/?tab=withlogintegration [10]: /es/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel/?tab=custom [11]: https://www.nuget.org/packages/Datadog.Trace/ diff --git a/content/es/tracing/trace_explorer/_index.md b/content/es/tracing/trace_explorer/_index.md index 8de00a2fe4d..ebca87d25d1 100644 --- a/content/es/tracing/trace_explorer/_index.md +++ b/content/es/tracing/trace_explorer/_index.md @@ -7,130 +7,154 @@ description: Trace Explorer further_reading: - link: tracing/trace_explorer/search tag: Documentación - text: Buscar tramos + text: Buscar Tramos +- link: https://learn.datadoghq.com/courses/getting-started-apm + tag: Centro de Aprendizaje + text: Introducción a las Métricas y Trazas de APM +- link: https://learn.datadoghq.com/courses/diagnosing-bugs-with-apm + tag: Centro de Aprendizaje + text: Diagnóstico de Errores de Aplicación con Datadog APM title: Trace Explorer --- - {{< img src="tracing/apm_lifecycle/trace_explorer.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Trace Explorer" >}} -## Información general +## Descripción General {#overview} + +El [Trace Explorer][1] le brinda la capacidad de buscar todos los tramos ingeridos o indexados utilizando cualquier etiqueta en cualquier tramo. Los tramos encontrados por su consulta cambian dependiendo de si está buscando en Live (todos los tramos ingeridos en los últimos 15 minutos, en forma continua) o tramos indexados (tramos retenidos durante 15 días por sus filtros personalizados). + +Las aplicaciones instrumentadas envían trazas a Datadog basadas en sus [controles de ingestión][2] configurados. Las trazas ingeridas están disponibles como trazas en vivo durante una ventana móvil de 15 minutos. + +El Trace Explorer muestra un indicador de **Búsqueda en Vivo - Todos los datos ingeridos** cada vez que esté en modo en vivo: -El [Trace Explorer][1] te ofrece la posibilidad de buscar todos los tramos (spans) ingeridos o indexados mediante cualquier etiqueta en cualquier tramo. Los tramos encontrados por tu consulta cambian según si estás buscando tramos en Live (todos los tramos ingeridos en los últimos 15 minutos, de forma continua) o tramos indexados (tramos retenidos durante 15 días por tus filtros personalizados). +{{< img src="tracing/trace_explorer/live_search.png" alt="Indicador de Búsqueda en Vivo" style="width:75%;" >}} -Las aplicaciones instrumentadas envían trazas a Datadog en función de los [controles de ingesta][2] configurados. Las trazas ingestadas están disponibles como trazas en directo durante un periodo de 15 minutos. +Todas las trazas ingeridas son luego procesadas a través de: +- [Filtros de retención personalizados][3] que puede crear para determinar qué tramos indexar. Una vez indexadas a través de un filtro de retención personalizado, las trazas se retienen durante **15 días**. +- El [filtro de retención inteligente][4] por defecto que retiene un conjunto diverso de trazas. Cuando se indexan a través del filtro de retención inteligente, las trazas se retienen durante **30 días**. -El Trace Explorer muestra un indicador **Live Search - All ingested data** (Live Search: todos los datos ingeridos) siempre que se encuentre en el modo Live: +El Trace Explorer muestra un indicador de **Búsqueda - Solo Datos Indexados** cada vez que busque [tramos indexados][5]: -{{< img src="tracing/trace_explorer/live_search.png" alt="Indicador de Live Search" style="width:75%;" >}} +{{< img src="tracing/trace_explorer/historical_search.png" alt="Indicador de Solo Datos Indexados" style="width:75%;" >}} -Todas las trazas ingeridas se pasan mediante: -- [Filtros de retención personalizados][3] que puedes crear para determinar qué tramos indexar. Una vez indexadas a través de un filtro de retención personalizado, las trazas se conservan durante **15 días**. -- El [filtro de retención inteligente][4] predeterminado que retiene un conjunto diverso de trazas. Cuando se indexa a través del filtro de retención inteligente, las trazas se retienen durante **30 días**. +La Búsqueda en Vivo es la vista predeterminada en la página de Trazas. Cambie de Búsqueda en Vivo a Búsqueda de Datos Indexados utilizando el selector de tiempo en la esquina superior derecha. -El Trace Explorer muestra un indicador **Search - Only Indexed Data** (Búsqueda: solo los datos indexados) siempre que buscas [tramos indexados][5]: +### Trace Patterns {#trace-patterns} -{{< img src="tracing/trace_explorer/historical_search.png" alt="Indicador Solo datos indexados" style="width:75%;" >}} +{{< callout url="https://www.datadoghq.com/product-preview/apm-trace-patterns/" btn_hidden="false" header="¡Únase a la Vista Previa!" >}} +Trace Patterns está en Vista Previa. Utilice este formulario para enviar su solicitud hoy. +{{< /callout >}} -Live Search es la vista por defecto en la página Traces (Trazas). Cambia de Live Search a Indexed Data Search (Búsqueda de datos indexados) utilizando el selector de tiempo situado en la esquina superior derecha. +Trace Patterns agrupa tramos con una estructura y atributos similares en patrones recurrentes, para que pueda analizar el comportamiento a través de miles de trazas a la vez en lugar de leerlas individualmente. Utilice Trace Patterns cuando una consulta devuelva demasiados tramos para escanear traza por traza, por ejemplo, para identificar qué formas de error son nuevas esta semana o qué patrones de latencia han cambiado después de un despliegue. -### Control del volumen de traza +### Control de volumen de trazas {#trace-volume-control} -Puedes personalizar la configuración tanto de [ingesta como de retención][6] para enviar y conservar exactamente los datos que más te interesan. +Puede personalizar la configuración tanto para [ingestión y retención][6] para enviar y mantener exactamente los datos que son más relevantes para usted. -#### Ingesta +#### Ingestión {#ingestion} -Controla tu volumen globalmente con [las opciones de configuración del Datadog Agent][7] o establece [reglas de ingesta][8] precisas por servicio instrumentado con Datadog APM. +Controle su volumen globalmente con [opciones de configuración del Datadog Agent][7] o establezca [reglas de ingestión][8] precisas por servicio instrumentado con Datadog APM. -#### Indexación +#### Indexación {#indexing} -Después de instrumentar servicios e ingerir trazas, establece etiquetas basadas en [filtros de retención][3] dentro de la aplicación de Datadog para que Datadog retenga tramos que sean relevantes para ti. +Después de instrumentar sus servicios e ingerir trazas, establezca filtros de retención basados en etiquetas dentro de la aplicación de Datadog para que Datadog retenga los tramos que sean relevantes para usted. -**Nota:** Tanto la ingesta como la indexación de tramos pueden afectar a tu factura. Para más información, consulta [Facturación de APM][9]. +**Nota:** Tanto los tramos ingeridos como los indexados pueden afectar su factura. Para más información, consulte [Facturación de APM][9]. -## Live Search durante 15 minutos +## Búsqueda en Vivo por 15 minutos {#live-search-for-15-minutes} -{{< img src="tracing/apm_lifecycle/trace_explorer_live_search.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Live Search" >}} +{{< img src="tracing/apm_lifecycle/trace_explorer_live_search.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Búsqueda en Vivo" >}} -Cuando se utiliza Live Search, Datadog muestra tramos tan pronto como son enviados por el Datadog Agent y antes de que hayan sido indexados por tus filtros de retención. Todos los tramos ingeridos están disponibles para los últimos 15 minutos (intervalo fijo), mostrados sin ningún muestreo. +Cuando utiliza Búsqueda en Vivo, Datadog muestra tramos tan pronto como son enviados por el Datadog Agent y antes de que hayan sido indexados por sus filtros de retención. Todos los tramos ingeridos están disponibles para los últimos 15 minutos (ventana móvil), mostrados sin ningún muestreo. {{< tabs >}} -{{% tab "List view" %}} +{{% tab "Vista de lista" %}} -{{< img src="tracing/live_search/live-search.mp4" alt="Vista de Lista de Live Search" video="true" >}} +{{< img src="tracing/live_search/live-search.mp4" alt="Vista de lista de búsqueda en vivo" video="true" >}} -Con la **Vista de lista**, puedes: +Con la **Vista de lista**, puede: -- Monitoriza si un nuevo despliegue ha funcionado correctamente al filtrar en `version_id` todas las etiquetas. -- Ve la información relacionada con las interrupciones en tiempo real al buscar en el 100% de las trazas ingeridas un `org_id` o `customer_id` concreto que esté asociado a un tramo secundario problemático. -- Comprueba si un proceso se ha iniciado correctamente al escribir `process_id` y autocompletar el nuevo ID de proceso como una etiquetar en los tramos secundarios. -- Monitoriza la prueba de carga y el impacto en el rendimiento de tus endpoints al filtrar por la duración de un recurso secundario. -- Ejecuta consultas de búsqueda con un solo clic en cualquier tramo o etiqueta directamente desde la vista del panel de traza. -- Añade, elimina y ordena columnas de span tags para obtener una vista personalizada. +- Verifique si un nuevo despliegue se realizó sin problemas filtrando por `version_id` de todas las etiquetas. +- Ver información relacionada con interrupciones en tiempo real buscando el 100% de las trazas ingeridas para un tramo particular `org_id` o `customer_id` que esté asociado con un tramo hijo problemático. +- Verifique si un proceso ha comenzado correctamente escribiendo `process_id` y autocompletando el nuevo ID de proceso como una etiqueta en los tramos hijos. +- Monitoree la prueba de carga y el impacto en el rendimiento en sus puntos de conexión filtrando por la duración de un recurso hijo. +- Ejecute consultas de búsqueda con un clic en cualquier tramo o etiqueta directamente desde la vista del panel de traza. +- Agregue, elimine y ordene columnas de etiquetas de tramo para una vista personalizada. -El número de tramos recibidos por segundo se muestra en la parte superior de la tabla de trazas. Dado que un flujo (stream) de miles de tramos por segundo no es legible para las personas, los flujos de tramos de alto rendimiento muestran algunos tramos para mayor claridad visual. Puedes buscar todos los tramos disponibles en la consulta de búsqueda. Utiliza las funciones de filtrado de la barra de consulta de Live Search para filtrar el flujo de tramos y el botón **Pause/Play** (Pausa/Reproducción) situado en la parte superior derecha de la pantalla para pausar o reanudar el flujo. +El número de tramos recibidos por segundo se muestra en la parte superior de la tabla de trazas. Dado que un flujo de miles de tramos por segundo no es legible para los humanos, los flujos de tramos de alto rendimiento muestran algunos tramos para mayor claridad visual. Puede buscar todos los tramos disponibles en la consulta de búsqueda. Utilice las funciones de filtrado de la barra de consulta de Búsqueda en Vivo para filtrar el flujo de tramos y el botón **Pausar/Reproducir** en la parte superior derecha de la pantalla para pausar o reanudar el flujo. -{{< img src="tracing/live_search/play-pause-button.png" alt="Pausar o reproducir el flujo" style="width:75%;" >}} +{{< img src="tracing/live_search/play-pause-button.png" alt="Pausar o Reproducir el Flujo en Vivo" style="width:75%;" >}} -**Nota**: Al seleccionar cualquier tramo, se pausa el flujo y se muestran más detalles sobre el tramo seleccionado en el panel lateral de la traza. +**Nota**: Seleccionar cualquier tramo pausa el flujo y muestra más detalles sobre el tramo seleccionado en el panel lateral de traza. {{% /tab %}} -{{% tab "Timeseries View" %}} +{{% tab "Vista de series temporales" %}} -{{< img src="tracing/live_search/live-analytics.mp4" alt="Ventana de series temporales en Live Search" video="true" >}} +{{< img src="tracing/live_search/live-analytics.mp4" alt="Vista de series temporales de búsqueda en vivo" video="true" >}} -Visualiza tus tramos como series temporales en lugar de una lista utilizando la **vista de series temporales**. La vista de series temporales de Live Search es útil para crear gráficas de solicitudes o errores que corresponden a criterios especificados, como: +Visualice sus tramos como series temporales en lugar de una lista utilizando la **Vista de series temporales**. La vista de series temporales de búsqueda en vivo es útil para graficar solicitudes o errores que corresponden a criterios especificados, tales como: -- Errores para el servicio `ShoppingCart##checkout` y el endpoint, con un valor de carrito de al menos `$100`, con la posibilidad de ver trazas que coincidan con estos criterios individualmente. +- Errores para el `ShoppingCart##checkout` servicio y punto de conexión, con un valor de cart de al menos `$100`, con la capacidad de ver trazas que coincidan individualmente con estos criterios. -- Monitoriza un despliegue canary de una actualización de aplicación crítica en tiempo real. +- Realice seguimiento de un despliegue canario de una actualización crítica de la aplicación en tiempo real. -- Compara la latencia entre regiones geográficas con la última versión de tu aplicación para iOS. +- Comparar la latencia entre regiones geográficas limitadas a la última versión de su aplicación iOS. -Además de mostrar las series temporales de las solicitudes que coinciden con tus consultas, también puedes visualizar tus tramos como una lista de principales clientes más afectados, zonas de disponibilidad o cualquier otra etiqueta durante una interrupción o investigación. +Además de mostrar series temporales para las solicitudes que coinciden con sus consultas, también puede visualizar sus tramos como una lista de los clientes más afectados, Availability Zones, o cualquier otra etiqueta durante una interrupción o investigación. -**Nota:** La exportación a dashboards y monitores solo es posible utilizando tramos conservados. +**Nota:** La exportación a Dashboards y Monitors solo es posible utilizando tramos retenidos. {{% /tab %}} {{< /tabs >}} -### Filtrado +### Filtrando {#filtering} + +{{< img src="tracing/live_search/service_entry_root_spans.mp4" alt="Buscando todos los tramos" video="true" >}} + +Una consulta válida en la barra de búsqueda muestra trazas que coinciden con sus criterios de búsqueda en **todos los tramos**. La sintaxis de búsqueda es la misma en las vistas de Búsqueda en Vivo que en las otras vistas de trazas, pero aquí, su consulta se compara con todas las trazas ingeridas en **cualquier tramo** y **cualquier etiqueta**, y no solo con las indexadas. + +Puede elegir consultar los [tramos de entrada del servicio][10], los [tramos raíz][11], o todos los tramos cambiando la selección en el cuadro sobre la tabla de trazas. Utilice esta función en aplicaciones de alto tráfico para reducir el número de tramos mostrados y ver solo los tramos de punto de entrada de los servicios o el punto de entrada de la traza. Seleccionar este cuadro solo filtra los tramos mostrados en la lista; los otros aún se muestran en el gráfico de llamas al hacer clic en un tramo para ver los detalles de la traza. + +También puede filtrar por atributos que no están definidos como facetas. Por ejemplo, para filtrar por el `cart.value` atributo, hay dos opciones: -{{< img src="tracing/live_search/service_entry_root_spans.mp4" alt="Buscar todos los tramos" video="true" >}} +- Haga clic en el `cart.value` atributo en el panel de detalles de la traza y agréguelo a la consulta de búsqueda: +{{< img src="tracing/live_search/add-attribute-to-query.mp4" alt="Agregando un atributo a la consulta" video="true" >}} -Una consulta válida en la barra de búsqueda muestra trazas que coinciden con tus criterios de búsqueda en **todos los tramos**. La sintaxis de búsqueda es la misma en las vistas de Live Search que en las otras vistas de traza, pero aquí la consulta se compara con todas las entradas de trazas en **cualquier tramo** y **cualquier etiqueta**, y no solo con las indexadas. +- Filtrar en todos los tramos con un `cart.value` atributo escribiendo "cart.value" en la barra de consulta de búsqueda: +{{< img src="tracing/live_search/filter-by-attribute2.mp4" alt="Filtro de Búsqueda en Vivo por atributo" video="true" >}} -Puedes elegir consultar los [tramos de entrada del servicio][10], los [tramos raíz][11], o todos los tramos cambiando la selección de la casilla situada encima de la tabla de traza. Utiliza esta función en aplicaciones con mucho tráfico para reducir el número de tramos mostrados y para ver solo los tramos de punto de entrada de los servicios o el punto de entrada de la traza. Al seleccionar esta casilla, solo se filtran los tramos mostrados en la lista; los demás se siguen mostrando en la gráfica de llamas al hacer clic en un tramo para ver los detalles de traza. +### Analizando anomalías con información integrada {#analyzing-anomalies-with-integrated-insights} -También puedes filtrar por atributos que no estén definidos como facetas. Por ejemplo, para filtrar en el atributo `cart.value`, hay dos opciones: +Trace Explorer combina la detección automática de valores anómalos de Watchdog con el Análisis de etiquetas para ayudarle a identificar rápidamente la causa raíz de los problemas. Cuando Watchdog detecta etiquetas que están estadísticamente sobrerrepresentadas en errores o tramos de alta latencia, estos insights se muestran en múltiples lugares: -- Haz clic en el atributo `cart.value` del panel de detalles de traza y añádelo a la consulta de búsqueda: -{{< img src="tracing/live_search/add-attribute-to-query.mp4" alt="Añadir un atributo a la consulta" video="true" >}} +- **Sugerencias de búsqueda**: A medida que escribe en la barra de búsqueda, los valores anómalos de etiquetas aparecen como sugerencias con un indicador que muestra que están correlacionados con errores o problemas de latencia. +- **Recomendaciones de agrupación**: Al seleccionar atributos para agrupar, las facetas de valores anómalos se destacan para guiar su investigación. +- **Barra lateral de facetas**: Las etiquetas de valores anómalos se promueven a la parte superior de la lista de facetas en una sección dedicada de "VALORES ANÓMALOS". +- **Métricas RED**: El botón "Analizar" junto a los gráficos de errores y latencia se resalta cuando se detectan valores anómalos relevantes. -- Filtra en todos los tramos con un atributo `cart.value` al escribir "cart.value" en la barra de consulta de búsqueda: -{{< img src="tracing/live_search/filter-by-attribute2.mp4" alt="Filtro Live Search por atributo" video="true" >}} +{{< img src="tracing/trace_explorer/visualize/trace_explorer_outliers.mp4" alt="Analizando anomalías con información integrada" video="true" >}} -## Búsqueda de tramos indexados con 15 días de retención +## Búsqueda de tramos indexados con retención de 15 días {#indexed-spans-search-with-15-day-retention} {{< img src="tracing/apm_lifecycle/trace_explorer_indexed_search.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Búsqueda indexada" >}} -Puedes buscar trazas retenidas de la misma manera que en Live Search. Para pasar de buscar datos en directo a buscar datos retenidos, cambia el selector de tiempo a cualquier periodo superior a 15 minutos. Todos los tramos indexados por filtros de retención son accesibles desde la búsqueda. Estos tramos son conservados por Datadog durante 15 días después de ser indexados por un filtro de retención. +Puede buscar trazas retenidas de la misma manera que realiza una Búsqueda en Vivo. Para cambiar de buscar datos en vivo a buscar datos retenidos, cambie el selector de tiempo a cualquier período de tiempo mayor a 15 minutos. Todos los tramos que están indexados por filtros de retención son accesibles desde la búsqueda. Estos tramos son mantenidos por Datadog durante 15 días después de ser indexados por un filtro de retención. -{{< img src="tracing/live_search/searching-retained-traces.mp4" alt="Buscar trazas retenidas" video="true" >}} +{{< img src="tracing/live_search/searching-retained-traces.mp4" alt="Buscando trazas retenidas" video="true" >}} {{< tabs >}} -{{% tab "List view" %}} +{{% tab "Vista de lista" %}} -Todos los tramos indexados por filtros de retención personalizados *y* el filtro de retención inteligente están disponibles para su búsqueda en la Vista de lista. Sin embargo, si filtras por una etiqueta que aparece solo en tramos que no están indexados por ningún filtro de retención, tu búsqueda no devuelve ningún resultado, a diferencia de cuando se utiliza [Live Search](#live-search-for-15-minutes). +Todos los tramos indexados por filtros de retención personalizados *y* el filtro de retención inteligente están disponibles para ser buscados en la vista de lista. Sin embargo, si filtra por una etiqueta que aparece únicamente en tramos que no están indexados por ningún filtro de retención, su búsqueda no devuelve resultados, a diferencia de cuando utiliza [Búsqueda en Vivo](#live-search-for-15-minutes). {{% /tab %}} -{{% tab "Timeseries View" %}} +{{% tab "Vista de series temporales" %}} -Todos los tramos indexados por filtros de retención personalizados o el filtro de retención inteligente están disponibles para su búsqueda cuando se utiliza el análisis de trazas. +Todos los tramos indexados por filtros de retención personalizados o el filtro de retención inteligente están disponibles para ser buscados al usar análisis de trazas. -Desde la vista de series temporales, exporta tu consulta a un [dashboard][1], [monitor][2], o [notebook][3] para investigar más en detalle o para alertar automáticamente cuando un número agregado de tramos cruce un umbral específico. +Desde la vista de series temporales, exporte su consulta a un [dashboard][1], [monitor][2] o [notebook][3] para investigar más a fondo o para alertar automáticamente cuando un número agregado de tramos cruza un umbral específico. -**Nota**: Los tramos indexados por el filtro de retención inteligente se excluyen de las evaluaciones del monitor de análisis de trazas de APM. Para obtener más información, consulta [Retención de trazas][4]. +**Nota**: Los tramos indexados por el filtro de retención inteligente están excluidos de las evaluaciones de monitores de análisis de trazas APM. Para más información, consulte [Retención de Trazas][4]. [1]: /es/dashboards/widgets/timeseries/ [2]: /es/monitors/types/apm/?tab=analytics @@ -140,11 +164,11 @@ Desde la vista de series temporales, exporta tu consulta a un [dashboard][1], [m {{% /tab %}} {{< /tabs >}} -### Configuración de retención +### Configuración de retención {#retention-configuration} -Puedes personalizar qué tramos se retienen y con qué frecuencia de retención. Por defecto, se aplica [el filtro de retención inteligente de Datadog ][4], que retiene automáticamente trazas con diversidad de errores y latencia, así como recursos de bajo rendimiento. Para obtener más información sobre el filtro de retención inteligente predeterminado y sobre cómo crear tus propios filtros adicionales, consulta la [documentación sobre filtros de retención][3]. Ve a la página [Filtros de retención][12] dentro de la aplicación de Datadog para crear o modificar tus propios filtros. +Puede personalizar qué tramos se retienen y a qué tasas de retención. Por defecto, se aplica [el filtro de retención inteligente de Datadog][4], que retiene automáticamente trazas con diversidad de errores y latencia, así como recursos de bajo rendimiento. Para aprender más sobre el filtro de retención inteligente por defecto y cómo crear sus propios filtros adicionales, consulte la [documentación de filtros de retención][3]. Vaya a la [página de Filtros de Retención][12] dentro de la aplicación de Datadog para crear o modificar sus propios filtros. -## Referencias adicionales +## Lectura adicional {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -159,4 +183,4 @@ Puedes personalizar qué tramos se retienen y con qué frecuencia de retención. [9]: /es/account_management/billing/apm_distributed_tracing/ [10]: /es/glossary/#service-entry-span [11]: /es/glossary/#trace-root-span -[12]: https://app.datadoghq.com/apm/traces/retention-filters +[12]: https://app.datadoghq.com/apm/traces/retention-filters \ No newline at end of file diff --git a/content/fr/agent/troubleshooting/send_a_flare.md b/content/fr/agent/troubleshooting/send_a_flare.md index aae6a61871b..da29472f57a 100644 --- a/content/fr/agent/troubleshooting/send_a_flare.md +++ b/content/fr/agent/troubleshooting/send_a_flare.md @@ -13,115 +13,118 @@ further_reading: text: Obtenir le statut d'un check de l'Agent title: Commande flare de l'Agent --- +Un flare vous permet d'envoyer les informations de dépannage nécessaires à l'équipe de support de Datadog. -Un flare vous permet d'envoyer les informations nécessaires au dépannage à l'équipe de support Datadog. +Cette page couvre : +- [Envoyer un flare en utilisant la commande `flare`](#send-a-flare-using-the-flare-command). +- [Envoyer un flare depuis le site Datadog](#send-a-flare-from-the-datadog-site) en utilisant Remote Configuration. +- [Soumission manuelle](#manual-submission). -Cette page explique comment : -- [Envoyer un flare avec la commande `flare`](#envoyer-un-flare-avec-la-commande-flare). -- [Envoyer un flare depuis le site Datadog](#envoyer-un-flare-depuis-le-site-datadog) en utilisant la configuration à distance. -- [Effectuer une soumission manuelle] (#fffectuer-une-soumission-manuelle). +Une flare rassemble tous les fichiers de configuration et journaux de l'Agent dans un fichier d'archive. Elle supprime les informations sensibles, y compris les mots de passe, les clés API, les identifiants de proxy et les chaînes de communauté SNMP. Si APM est activé, le flare inclut [les journaux de débogage du traceur][4] lorsqu'ils sont disponibles. -Un flare rassemble tous les fichiers de configuration et les logs de l'Agent Datadog dans un fichier d'archive. Il supprime les informations sensibles, y compris les mots de passe, clés d'API, identifiants Proxy et chaînes de communauté SNMP. Si la solution APM de Datadog est activée, le flare inclut les [logs de débogage du traceur][4] lorsqu'ils sont disponibles. +L'Agent Datadog est entièrement open source, ce qui vous permet de [vérifier le comportement du code][1]. Si nécessaire, le flare peut être examiné avant l'envoi, car le flare demande une confirmation avant de le téléverser. -L'Agent Datadog est entièrement open source, ce qui vous permet de [vérifier le comportement du code][1]. Une demande de confirmation s'affiche avant l'envoi des informations, ce qui signifie que vous pouvez les passer en revue si vous le souhaitez. +Lorsque vous contactez Datadog Support avec Remote Configuration activée pour un Agent, l'équipe de support peut initier un flare depuis votre environnement afin de mieux vous aider dans les meilleurs délais. Les flares fournissent des informations de dépannage au support Datadog pour vous aider à résoudre votre problème. -Lorsque vous contactez l'assistance Datadog avec la configuration à distance activée pour un Agent, l'équipe d'assistance peut initier un flare depuis votre environnement afin de mieux vous aider dans les plus brefs délais. Les flares fournissent à l'assistance Datadog des informations de diagnostic pour vous aider à résoudre votre problème. +## Envoyer un flare depuis le site Datadog {#send-a-flare-from-the-datadog-site} -## Envoyer un flare depuis le site Datadog - -{{< site-region region="gov" >}} -
    L'envoi d'un flare d'Agent depuis Fleet Automation n'est pas pris en charge pour ce site.
    +{{< site-region region="gov,gov2" >}} +
    L'envoi d'un flare d'Agent depuis Fleet Automation n'est pas pris en charge pour votre site Datadog sélectionné ({{< region-param key="dd_datacenter" >}}). Utilisez la soumission manuelle de flare à la place.
    {{< /site-region >}} -Pour envoyer un flare depuis le site Datadog, assurez-vous d'avoir activé [Fleet Automation][2] et la [configuration à distance][3] sur l'Agent. +Pour envoyer un flare depuis le site Datadog, assurez-vous d'avoir activé [Fleet Automation][2] et [Remote Configuration][3] sur l'Agent. {{% remote-flare %}} -{{< img src="agent/fleet_automation/fleet_automation_remote_flare.png" alt="Le bouton Send Ticket ouvre un formulaire pour envoyer un flare dans le cadre d'un ticket d'assistance existant ou nouveau" style="width:70%;" >}} +{{< img src="agent/fleet_automation/fleet_automation_remote_flare.png" alt="Le bouton Envoyer un ticket lance un formulaire pour envoyer un flare pour un ticket de support existant ou nouveau." style="width:70%;" >}} + +## Envoyer un flare en utilisant la commande `flare` {#send-a-flare-using-the-flare-command} -## Envoyer un flare à l'aide de la commande `flare` +{{< site-region region="gov,gov2" >}} +
    Envoyer un flare d'Agent en utilisant le flare la sous-commande n'est pas prise en charge pour votre site Datadog sélectionné ({{< region-param key="dd_datacenter" >}}). Utilisez la soumission manuelle de flare à la place.
    +{{< /site-region >}} -Utilisez la sous-commande `flare` pour envoyer un flare. Dans les commandes ci-dessous, remplacez `` par l'identifiant de votre ticket d'assistance Datadog si vous en avez un, puis saisissez l'adresse e-mail associée. +Utilisez la sous-commande `flare` pour envoyer un flare. Dans les commandes ci-dessous, remplacez `` par votre identifiant de cas de support Datadog si vous en avez un, puis entrez l'adresse e-mail associée. -Si vous ne disposez pas d'un identifiant de ticket, saisissez l'adresse e-mail utilisée pour vous connecter à Datadog afin de créer un nouveau ticket d'assistance. +Si vous n'avez pas d'identifiant de cas, entrez votre adresse e-mail utilisée pour vous connecter à Datadog afin de créer un nouveau cas de support. -**Confirmez le téléversement de l'archive pour l'envoyer immédiatement à l'assistance Datadog**. +**Confirmez le téléversement de l'archive pour l'envoyer immédiatement au support Datadog**. {{< tabs >}} {{% tab "Agent" %}} | Plateforme | Commande | |------------|---------------------------------------------------------| -| AIX | `datadog-agent flare ` | -| Docker | `docker exec -it dd-agent agent flare ` | -| macOS | `datadog-agent flare ` ou via l'[interface Web][1] | -| CentOS | `sudo datadog-agent flare ` | -| Debian | `sudo datadog-agent flare ` | +| AIX | `datadog-agent flare ` | +| Docker | `docker exec -it dd-agent agent flare ` | +| macOS | `datadog-agent flare ` ou via le [web GUI][1] | +| CentOS | `sudo datadog-agent flare ` | +| Debian | `sudo datadog-agent flare ` | | Kubernetes | `kubectl exec -it -- agent flare ` | -| Fedora | `sudo datadog-agent flare ` | -| Redhat | `sudo datadog-agent flare ` | -| Suse | `sudo datadog-agent flare ` | -| Source | `sudo datadog-agent flare ` | +| Fedora | `sudo datadog-agent flare ` | +| Redhat | `sudo datadog-agent flare ` | +| Suse | `sudo datadog-agent flare ` | +| Source | `sudo datadog-agent flare ` | | Windows | `& "$env:ProgramFiles\Datadog\Datadog Agent\bin\agent.exe" flare ` | -| Heroku | Consultez la [documentation relative à Heroku][3] | -| PCF | `sudo /var/vcap/jobs/dd-agent/packages/dd-agent/bin/agent/agent flare ` | +| Heroku | Consultez la [Heroku documentation][3] | +| PCF | `sudo /var/vcap/jobs/dd-agent/packages/dd-agent/bin/agent/agent flare ` | -## Conteneurs dédiés +## Conteneurs dédiés {#dedicated-containers} -Si vous utilisez l'Agent v7.19 ou version ultérieure ainsi que le chart Helm Datadog avec la [dernière version][4], ou un DaemonSet dans lequel l'Agent Datadog et l'Agent de trace sont dans des conteneurs séparés, vous déployez un pod de l'Agent qui contient : +Lors de l'utilisation de l'Agent v7.19+ et du Datadog Helm Chart avec la [dernière version][4] ou d'un DaemonSet où l'Agent Datadog et le Trace Agent se trouvent dans des conteneurs séparés, vous déployez un Pod Agent contenant : -* Un conteneur avec le processus Agent (Agent + Agent de log) +* Un conteneur avec le processus de l'Agent (Agent + Log Agent) * Un conteneur avec le processus process-agent * Un conteneur avec le processus trace-agent * Un conteneur avec le processus system-probe Pour obtenir un flare de chaque container, exécutez les commandes suivantes : -### Agent +### Agent {#agent} ```bash -kubectl exec -it -c agent -- agent flare +kubectl exec -it -c agent -- agent flare ``` -### Agent de processus +### Process Agent {#process-agent} ```bash -kubectl exec -it -c process-agent -- agent flare --local +kubectl exec -it -c process-agent -- agent flare --local ``` -### Agent de trace +### Agent de Trace {#trace-agent} ```bash -kubectl exec -it -c trace-agent -- agent flare --local +kubectl exec -it -c trace-agent -- agent flare --local ``` -### Agent de sécurité +### Security Agent {#security-agent} ```bash -kubectl exec -it -c security-agent -- security-agent flare +kubectl exec -it -c security-agent -- security-agent flare ``` -### System probe +### System probe {#system-probe} Le conteneur system-probe ne peut pas envoyer de flare. Vous devez donc récupérer les logs de conteneur : ```bash -kubectl logs -c system-probe > system-probe.log +kubectl logs -c system-probe > system-probe.log ``` -## ECS Fargate +## ECS Fargate {#ecs-fargate} -Si vous utilisez la plateforme ECS Fargate v1.4.0, vous pouvez configurer les tâches et services ECS afin d'autoriser l'accès aux conteneurs Linux en cours d'exécution en activant [Amazon ECS Exec][5]. Une fois Amazon ECS Exec activé, exécutez la commande suivante pour envoyer un flare : +Lors de l'utilisation de la plateforme ECS Fargate v1.4.0, les tâches et services ECS peuvent être configurés pour permettre l'accès aux conteneurs Linux en cours d'exécution en activant [Amazon ECS Exec][5]. Après avoir activé Amazon ECS Exec, exécutez la commande suivante pour envoyer un flare: ```bash -aws ecs execute-command --cluster \ - --task \ +aws ecs execute-command --cluster \ + --task \ --container datadog-agent \ --interactive \ - --command "agent flare " + --command "agent flare " ``` -**Remarque :** ECS Exec ne peut être activé que pour de nouvelles tâches. Vous devez recréer les tâches existantes pour utiliser ECS Exec. +**Remarque :** ECS Exec ne peut être activé que pour de nouvelles tâches. Vous devez recréer les tâches existantes pour utiliser ECS Exec. [1]: /fr/agent/basic_agent_usage/#gui [2]: /fr/agent/basic_agent_usage/windows/#agent-v6 @@ -130,28 +133,29 @@ aws ecs execute-command --cluster \ [5]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html {{% /tab %}} -{{% tab "Agent de cluster" %}} +{{% tab "Cluster Agent" %}} | Plateforme | Commande | |---------------|-----------------------------------------------------------------------------| | Kubernetes | `kubectl exec -n -it -- datadog-cluster-agent flare ` | -| Cloud Foundry | `/var/vcap/packages/datadog-cluster-agent/datadog-cluster-agent-cloudfoundry flare -c /var/vcap/jobs/datadog-cluster-agent/config ` | +| Cloud Foundry | `/var/vcap/packages/datadog-cluster-agent/datadog-cluster-agent-cloudfoundry flare -c /var/vcap/jobs/datadog-cluster-agent/config ` | {{% /tab %}} {{< /tabs >}} -## Envoi manuel +## Soumission manuelle {#manual-submission} + +Le protocole de flare de l'Agent collecte les configurations et les journaux dans un fichier d'archive situé d'abord dans le répertoire local `/tmp`. +Obtenez ce fichier manuellement et fournissez-le au support s'il y a des problèmes de connectivité avec l'Agent. -Le protocole flare de l'Agent recueille les configurations et les logs dans un fichier d'archive situé dans le répertoire `/tmp` local. -Récupérez manuellement ce fichier et envoyez-le à l'équipe d'assistance si l'Agent rencontre des problèmes de connectivité. +### Kubernetes {#kubernetes} +Pour obtenir le fichier d'archive dans Kubernetes, utilisez la commande kubectl : -### Kubernetes -Pour récupérer le fichier d'archive dans Kubernetes, utilisez la commande kubectl : ``` -kubectl cp datadog-:tmp/datadog-agent-.zip flare.zip -c agent +kubectl cp datadog-:tmp/datadog-agent-.zip flare.zip -c agent ``` -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/fr/bits_ai/_index.md b/content/fr/bits_ai/_index.md index fc20ecaf658..d16624cce04 100644 --- a/content/fr/bits_ai/_index.md +++ b/content/fr/bits_ai/_index.md @@ -1,41 +1,46 @@ --- aliases: - /fr/bits_ai/query_examples/ +description: Découvrez Bits AI, votre agent dans Datadog, qui automatise le développement, + la sécurité et les flux de travail opérationnels. disable_toc: false further_reading: -- link: https://www.datadoghq.com/product/platform/bits-ai/ +- link: https://www.datadoghq.com/product/ai/bits-ai-agents/ tag: Page produit - text: Bits AI + text: Bits AI Agents - link: https://www.datadoghq.com/blog/bits-ai-sre/ tag: Blog - text: Présentation de Bits AI SRE, votre coéquipier IA toujours disponible + text: Présentation de Bits AI SRE, votre agent d'astreinte AI +- link: https://www.datadoghq.com/blog/bits-ai-dev-agent/ + tag: Blog + text: Identifiez automatiquement les problèmes et générez des corrections avec Bits + AI Dev - link: https://www.datadoghq.com/blog/bits-ai-security-analyst/ tag: Blog - text: Automatiser les investigations Cloud SIEM avec Bits AI Security Analyst + text: Automatisez les enquêtes Cloud SIEM avec Bits AI Security Analyst +- link: https://www.datadoghq.com/blog/introducing-bits-assistant/ + tag: Blog + text: Recherchez et agissez dans Datadog pour résoudre les problèmes plus rapidement + avec Bits Assistant. - link: https://www.datadoghq.com/blog/how-to-use-ai-more-effectively/ tag: Blog - text: 'Conseils des ingénieurs Datadog : comment utiliser les outils IA plus efficacement - (en anglais)' + text: 'Comment utiliser les outils IA plus efficacement : Conseils des ingénieurs + de Datadog' is_beta: true title: Bits AI --- +Bits AI est votre agent dans Datadog, conçu pour automatiser le développement, la sécurité et les flux de travail opérationnels. Vous pouvez discuter et collaborer avec Bits en temps réel, ou déléguer des tâches complètes—comme les enquêtes d'alerte, les corrections de code ou le triage de sécurité—et le laisser s'occuper des détails. -Bits AI est votre coéquipier agentique dans Datadog, conçu pour automatiser les workflows de développement, de sécurité et d'exploitation. Vous pouvez discuter et collaborer en temps réel avec Bits, ou lui déléguer des tâches complètes, comme l'analyse d'alertes, les corrections de code ou le triage de sécurité, et le laisser gérer tous les détails. +## Fonctionnalités {#features} -## Fonctionnalités - -{{< whatsnext desc="Découvrez comment utiliser Bits AI :" >}} - {{< nextlink href="bits_ai/bits_ai_sre" >}}Enquêter sur les alertes et coordonner les incidents de manière proactive avec Bits AI SRE{{< /nextlink >}}  - {{< nextlink href="bits_ai/bits_ai_dev_agent" >}}Automatiser les corrections de code avec Bits AI Dev Agent{{< /nextlink >}}  -   - {{< nextlink href="actions/action_interface" >}}Agir sur vos systèmes avec l'Action Interface{{< /nextlink >}}  - {{< nextlink href="bits_ai/chat_with_bits_ai" >}}Discuter avec Bits de vos données d'observabilité{{< /nextlink >}}  - {{< nextlink href="bits_ai/mcp_server" >}}Obtenir des informations d'observabilité grâce aux agents IA avec le serveur MCP de Datadog{{< /nextlink >}}  +{{< whatsnext desc="Découvrez comment vous pouvez utiliser Bits AI :" >}} + {{< nextlink href="bits_ai/bits_ai_sre" >}}Enquêtez sur les alertes avec Bits AI SRE{{< /nextlink >}} + {{< nextlink href="bits_ai/bits_ai_dev_agent" >}}Automatisez les corrections de code avec Bits AI Dev Agent{{< /nextlink >}} + {{< nextlink href="bits_ai/bits_ai_security_analyst" >}}Triagez les signaux de menaces de sécurité avec Bits AI Security Analyst{{< /nextlink >}} + {{< nextlink href="bits_ai/bits_assistant" >}}Explorez vos données d'observabilité avec Bits AI Assistant{{< /nextlink >}} + {{< nextlink href="bits_ai/mcp_server" >}}Obtenez des insights d'observabilité des agents AI grâce au serveur MCP de Datadog.{{< /nextlink >}} {{< /whatsnext >}} -## Pour aller plus loin - -{{< partial name="whats-next/whats-next.html" >}} +## Lectures complémentaires {#further-reading} -[3]: /fr/service_management/incident_management -[4]: /fr/bits_ai/bits_ai_sre/coordinate_incidents/ \ No newline at end of file +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/fr/cloud_cost_management/_index.md b/content/fr/cloud_cost_management/_index.md index b28038c74d8..96c1093ed53 100644 --- a/content/fr/cloud_cost_management/_index.md +++ b/content/fr/cloud_cost_management/_index.md @@ -18,140 +18,145 @@ cascade: - data collected azure - data collected google cloud further_reading: +- link: /monitors/types/cloud_cost/ + tag: Documentation + text: Créez un moniteur de coûts cloud +- link: /cloud_cost_management/tags/ + tag: Documentation + text: Découvrez les Tags dans Cloud Cost Management +- link: /cloud_cost_management/cloud_cost_skill/ + tag: Documentation + text: Utilisez le Cloud Cost skill dans Bits AI Assistant. - link: https://www.datadoghq.com/blog/control-your-cloud-spend-with-datadog-cloud-cost-management/ - tag: GitHub - text: Bénéficiez d'une visibilité et d'un contrôle accrus sur vos dépenses cloud - avec Datadog Cloud Cost Management (en anglais) + tag: Blog + text: Obtenez de la visibilité et du contrôle sur vos dépenses cloud avec Datadog + Cloud Cost Management. +- link: https://www.datadoghq.com/blog/manage-ai-cost-and-performance-with-datadog/ + tag: Blog + text: 'Maximiser le retour sur investissement de l''IA : comment Datadog relie coût, + performance et infrastructure pour que vous puissiez évoluer de manière responsable' - link: https://www.datadoghq.com/blog/cloud-cost-management-container-support/ tag: Blog text: Analysez vos dépenses liées à Kubernetes et ECS avec la solution Cloud Cost Management de Datadog - link: https://www.datadoghq.com/blog/google-cloud-cost-management/ tag: Blog - text: Donner aux ingénieurs les moyens de prendre en main les coûts liés à Google - Cloud avec Datadog (en anglais) + text: Donnez aux ingénieurs le pouvoir de prendre en charge les coûts de Google + Cloud avec Datadog - link: https://www.datadoghq.com/blog/total-cost-of-service-ownership-ccm/ tag: Blog - text: Analysez rapidement et de façon exhaustive les coûts cloud et SaaS associés - à vos services -- link: /monitors/types/cloud_cost/ - tag: Documentation - text: Créer un monitor Cloud Cost -- link: /cloud_cost_management/tag_pipelines/ - tag: Documentation - text: En savoir plus sur les pipelines de tags -- link: /cloud_cost_management/tag_pipelines - tag: Documentation - text: Standardiser les tags dans Cloud Cost Management à l'aide des pipelines de - tags + text: Analysez rapidement et de manière exhaustive les coûts cloud et SaaS derrière + vos services - link: https://www.datadoghq.com/blog/cloud-costs-study-learnings/ tag: Blog - text: Principaux enseignements de l'étude sur l'état des coûts cloud + text: Principales leçons de l'étude sur l'état des coûts cloud - link: https://www.datadoghq.com/blog/unit-economics-ccm/ tag: Blog - text: Surveiller les coûts unitaires avec Datadog Cloud Cost Management (en anglais) + text: Surveillez l'économie unitaire avec Datadog Cloud Cost Management. - link: https://www.datadoghq.com/blog/finops-at-datadog/ tag: Blog - text: Comment nous avons mis en place une pratique FinOps efficace chez Datadog - (en anglais) + text: Comment nous avons créé une pratique FinOps réussie chez Datadog - link: https://www.datadoghq.com/blog/cloud-cost-management-saved-millions/ tag: Blog text: Comment nous avons économisé 1,5 million de dollars par an avec Cloud Cost - Management (en anglais) + Management. +- link: https://www.datadoghq.com/blog/cloud-cost-management-oci/ + tag: Blog + text: Gérez et optimisez vos coûts OCI avec Datadog Cloud Cost Management. +- link: https://www.datadoghq.com/blog/cambia-health-cost-optimization + tag: Blog + text: Comment Cambia Health Solutions a économisé 30 000 dollars par mois avec Cloud + Cost Management et le Datadog Resource Catalog. title: Cloud Cost Management --- - -{{< learning-center-callout header="Participez à un webinar de formation" hide_image="true" btn_title="Inscription" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Cloud+Cost+Management">}} - Explorez les coûts de vos fournisseurs cloud et mettez-les en corrélation avec les données de télémétrie en temps réel. Obtenez des insights et des alertes exploitables sur l'origine de vos coûts cloud, leur évolution et les possibilités d'optimisation. +{{< learning-center-callout header="Participez à une session de webinaire de formation" hide_image="true" btn_title="Inscrivez-vous" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Cloud+Cost+Management">}} + Explorez les coûts de votre fournisseur cloud et corrélez-les avec des données de télémétrie en temps réel. Obtenez des informations exploitables et des alertes sur l'origine de vos coûts cloud, comment ils évoluent et où trouver des optimisations potentielles. {{< /learning-center-callout >}} -## Présentation +## Aperçu {#overview} -Cloud Cost Management fournit des insights aux équipes d'ingénierie et de finance pour comprendre comment les changements d'infrastructure influent sur les coûts, répartir les dépenses au sein de votre organisation et identifier les inefficacités. +Cloud Cost Management fournit des informations aux équipes d'ingénierie et de finance pour comprendre comment les changements d'infrastructure impactent les coûts, allouer les dépenses dans votre organisation et identifier les inefficacités. -{{< img src="cloud_cost/summary.png" alt="Obtenez des insights sur tous les coûts et usages de votre fournisseur cloud depuis la page du résumé de Cloud Costs dans Datadog" style="width:100%;" >}} +{{< img src="cloud_cost/summary.png" alt="Obtenez des informations sur tous les coûts et l'utilisation de votre fournisseur cloud sur la page Cloud Costs Summary dans Datadog." style="width:100%;" >}} -Datadog ingère vos données de coûts cloud et les transforme en métriques que vous pouvez utiliser dans une requête de recherche sur la page [**Explorer**][1]. En cas d'augmentation des coûts, vous pouvez la corréler avec des métriques d'usage pour en déterminer la cause. +Datadog ingère vos données de coûts cloud et les transforme en métriques que vous pouvez utiliser dans une requête de recherche sur la page [**Explorer**][1]. Si les coûts augmentent, vous pouvez corréler l'augmentation avec les métriques d'utilisation pour déterminer la cause profonde. -## Configuration +## Setup {#setup} -{{< whatsnext desc="Pour commencer à gérer vos coûts cloud avec Cloud Cost Management, consultez la documentation suivante." >}} - {{< nextlink href="/cloud_cost_management/setup/aws">}}AWS : Configurez Cloud Cost Management pour votre facture AWS.{{< /nextlink >}} - {{< nextlink href="/cloud_cost_management/setup/azure">}}Azure : Configurez Cloud Cost Management pour votre facture Azure.{{< /nextlink >}} - {{< nextlink href="/cloud_cost_management/setup/google_cloud">}}Google Cloud : Configurez Cloud Cost Management pour votre facture Google Cloud.{{< /nextlink >}} - {{< nextlink href="/cloud_cost_management/setup/saas_costs">}}Intégrations de coûts SaaS : Envoyez les données de coûts d'un fournisseur SaaS compatible vers Datadog.{{< /nextlink >}} - {{< nextlink href="/cloud_cost_management/setup/custom">}}Coûts personnalisés : Téléversez toute source de données de coûts dans Datadog.{{< /nextlink >}} - {{< nextlink href="/cloud_cost_management/datadog_costs">}}Coûts Datadog : Visualisez les dépenses et les métriques d'utilisation quotidiennes de Datadog.{{< /nextlink >}} +{{< whatsnext desc="Pour commencer à gérer vos coûts cloud avec Cloud Cost Management, consultez la documentation suivante.">}} + {{< nextlink href="/cloud_cost_management/setup/aws">}}AWS : Configurez Cloud Cost Management pour votre facture AWS.{{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/setup/azure">}}Azure : Configurez Cloud Cost Management pour votre facture Azure. {{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/setup/google_cloud">}}Google Cloud : Configurez Cloud Cost Management pour votre facture Google Cloud. {{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/setup/oracle">}}Oracle : Configurez Cloud Cost Management pour votre facture Oracle. {{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/setup/saas_costs">}}SaaS Cost Integrations : Envoyez des données de coûts d'un fournisseur de coûts SaaS pris en charge à Datadog. {{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/setup/custom">}}Custom Costs : Téléversez toute source de données de coûts vers Datadog. {{< /nextlink >}} + {{< nextlink href="/cloud_cost_management/datadog_costs">}}Datadog Costs : Visualisez les dépenses quotidiennes de Datadog et les métriques d'utilisation. {{< /nextlink >}} {{< /whatsnext >}} -## Utiliser les données de coûts cloud +## Utilisez les données de coûts cloud {#use-cloud-cost-data} + +Visualisez les dépenses d'infrastructure aux côtés des métriques d'utilisation connexes avec une période de conservation de 15 mois pour repérer les inefficacités potentielles et les opportunités d'économies. + +Lors de la création d'un tableau de bord, sélectionnez {{< ui >}}Cloud Cost{{< /ui >}} comme source de données pour votre requête de recherche. + +{{< img src="cloud_cost/cloud_cost_data_source-1.png" alt="Cloud Cost disponible en tant que source de données lors de la création de widgets de tableau de bord" style="width:80%;" >}} + +En option, vous pouvez exporter de manière programmatique un graphique de séries temporelles de vos données de coût cloud en utilisant le [Metrics API][2]. + +## Utilisez les données de coût quotidiennes de Datadog {#use-daily-datadog-cost-data} + +Visualisez les dépenses Datadog quotidiennes aux côtés des métriques d'utilisation connexes avec une période de conservation de 15 mois pour repérer les inefficacités potentielles et les opportunités d'économies. En savoir plus sur [Datadog Costs][8]. -Affichez les dépenses d'infrastructure en parallèle des métriques d'utilisation correspondantes, avec une rétention de 15 mois, pour détecter d'éventuelles inefficacités et opportunités d'économies. +Lors de la création d'un tableau de bord, sélectionnez {{< ui >}}Cloud Cost{{< /ui >}} comme source de données, puis choisissez {{< ui >}}Datadog{{< /ui >}} parmi les types de coûts disponibles. -Lors de la création d'un dashboard, sélectionnez **Cloud Cost** comme source de données pour votre requête de recherche. +{{< img src="cloud_cost/datadog_costs/dashboard-updated.png" alt="Datadog Costs en tant qu'option pour la source de données Cloud Cost dans un tableau de bord" style="width:80%;" >}} -{{< img src="cloud_cost/cloud_cost_data_source-1.png" alt="Cloud Cost disponible comme source de données lors de la création d'un widget de dashboard" style="width:80%;" >}} +En option, vous pouvez exporter de manière programmatique un graphique de séries temporelles de vos données de coût Datadog en utilisant le [Metrics API][2]. -Vous pouvez également exporter de manière programmatique un graphique de séries temporelles de vos données de coûts cloud à l'aide de l'[API Metrics][2]. +## Étiquetage et allocation des coûts {#tagging-and-cost-allocation} -## Utiliser les données de coûts Datadog quotidiennes +Apprenez comment les balises sont sourcées, enrichies et gérées dans Cloud Cost Management en lisant la [documentation sur les balises][5]. -Affichez les dépenses quotidiennes de Datadog en parallèle des métriques d'utilisation associées, avec une période de rétention de 15 mois, pour identifier d'éventuelles inefficacités et opportunités d'économies. +Vous pouvez créer des règles de balisage pour corriger les balises manquantes ou incorrectes, et ajouter des balises inférées qui s'alignent avec la logique commerciale de votre organisation. -Lors de la création d'un dashboard, sélectionnez **Cloud Cost** comme source de données pour votre requête de recherche. +## Créez un moniteur de coûts {#create-a-cost-monitor} -{{< img src="cloud_cost/datadog_costs/dashboard-updated.png" alt="Sélection des coûts Datadog comme source de données Cloud Cost lors de la création d'un dashboard" style="width:80%;" >}} +Gérez et optimisez proactivement vos dépenses cloud en créant un [Cloud Cost Monitor][3]. Vous pouvez choisir {{< ui >}}Cost Changes{{< /ui >}} ou {{< ui >}}Cost Threshold{{< /ui >}} pour surveiller vos dépenses cloud. -Vous pouvez également exporter de manière programmatique un graphique de séries temporelles de vos données de coûts Datadog à l'aide de l'[API Metrics][2]. +{{< img src="cloud_cost/monitor.png" alt="Créez un Cloud Cost monitor qui alerte sur les changements de coûts" style="width:100%;" >}} -## Créer des règles de tags +## Allouer des coûts {#allocate-costs} -Utilisez les [pipelines de tags][5] pour garantir un suivi complet des coûts en standardisant les tags sur l'ensemble des ressources cloud. Cela permet d'éviter que certaines données de coût ne soient ignorées. +Utilisez [Container Cost Allocation metrics][4] pour découvrir les coûts associés aux clusters et aux charges de travail sur Kubernetes, Amazon ECS, Azure et Google Cloud. Vous pouvez obtenir une visibilité sur les coûts au niveau des pods, identifier les coûts des ressources inactives et analyser les coûts par type de ressource. -{{< img src="cloud_cost/tags_addnew.png" alt="Créer une règle de tag dans les pipelines de tags pour garantir l'utilisation de tags standard sur vos ressources cloud" style="width:60%;" >}} +## Permissions {#permissions} -Vous pouvez créer des règles de tags pour corriger les tags manquants ou incorrects, et ajouter des tags déduits en fonction de la logique métier de votre organisation. +Cloud Cost Management utilise les permissions suivantes pour contrôler l'accès aux données de coût et à la plupart des configurations CCM : +- `cloud_cost_management_read` +- `cloud_cost_management_write` -## Créer un monitor de coûts +Pour un aperçu détaillé des exigences par page, voir [Permissions][9]. -Gérez et optimisez proactivement vos dépenses cloud en créant un [monitor Cloud Cost][3]. Vous pouvez choisir **Cost Changes** ou **Cost Threshold** pour surveiller vos dépenses cloud. +## Examiner l'historique des données {#review-data-history} -{{< img src="cloud_cost/monitor.png" alt="Créer un monitor Cloud Cost qui déclenche une alerte en cas de variation des coûts" style="width:100%;" >}} +{{< img src="cloud_cost/ccm-data-history.png" alt="Consultez l'historique de vos données de coûts cloud dans Cloud Cost settings." style="width:100%;" >}} -## Répartir les coûts +Surveillez la fraîcheur et l'état de traitement de vos données de coûts cloud sur la page {{< ui >}}Cloud Cost{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Data History{{< /ui >}}. -Utilisez les [métriques Container Cost Allocation][4] pour identifier les coûts associés aux clusters et aux workloads sur Kubernetes, Amazon ECS, Azure et Google Cloud. Bénéficiez d'une visibilité sur les coûts au niveau des pods, identifiez les ressources inactives et analysez les coûts par type de ressource. +- {{< ui >}}Last Bill Received{{< /ui >}} : Lorsque votre fournisseur cloud ou SaaS a généré les données de facturation visibles dans CCM. +- {{< ui >}}Last Processed{{< /ui >}} : Lorsque Datadog a traité pour la dernière fois les données de facturation de votre fournisseur cloud, y compris : + - Règles de pipeline de balisage (traite rétroactivement jusqu'à 3 mois de données historiques par défaut) + - Règles d'allocation des coûts (traite rétroactivement jusqu'à 1 mois de données historiques par défaut) -## Autorisations -Deux autorisations sont disponibles : -1. Cloud Cost Management Read (`cloud_cost_management_read`) -2. Cloud Cost Management Write (`cloud_cost_management_write`) +Utilisez cette page pour résoudre les retards de données ou confirmer que les récents pipelines de balises et les changements d'allocation des coûts ont pris effet. -Le tableau ci-dessous décrit l'impact de ces autorisations dans Cloud Cost Management et les pages associées. +## Utilisez l'IA pour l'analyse des coûts {#use-ai-for-cost-analysis} -| Page ou fonctionnalité | Autorisation Cloud Cost Management Read | Autorisation Cloud Cost Management Write | -|-----------------------------------|---------------------------------------------|---------------------------------------------------| -| Page de résumé de CCM | Autorisation requise | S. O. | -| Page des conteneurs de CCM | Autorisation requise | S. O. | -| Page des recommandations de CCM | Autorisation requise | S. O. | -| Page de l'explorer de CCM | Autorisation requise | S. O. | -| Page des offres de CCM | Autorisation requise | Autorisation requise pour consulter les budgets | -| Page des paramètres de CCM - Coûts personnalisés | Autorisation requise | Autorisation requise pour télécharger des coûts personnalisés | -| Page des paramètres de CCM - Pipelines de tags | Autorisation requise | Autorisation requise pour créer des pipelines de tags | -| Page des paramètres de CCM - Intégrations Saas | Autorisation requise | Autorisation requise pour activer l'intégration avec CCM | -| Page des paramètres de CCM - Comptes | Autorisation requise | Autorisation requise pour modifier ou créer des comptes | -| Page des paramètres de CCM - Configurer les recommandations | Autorisation requise | Autorisation requise pour personnaliser les recommandations | -| Dashboards/Notebooks (externes) | Autorisation requise pour créer et consulter des données | S. O. | -| Monitors (externe) | Autorisation requise pour créer des monitors CCM | S. O. | -| Service Catalog (externe) | Autorisation requise pour consulter les données sur les coûts | S. O. | -| Resource Catalog (externe) | Autorisation requise pour consulter les données sur les coûts | S. O. | -| Requêtes API pour les données de coûts | Autorisation requise | S. O. | +Utilisez le [Cloud Cost Skill in Bits AI Assistant][10] pour enquêter sur les changements de coûts, identifier les propriétaires probables, comparer les dépenses par rapport aux budgets, corréler les coûts avec les métriques d'observabilité et créer des carnets de transfert pour les équipes d'ingénierie. -### Aperçu du contrôle d'accès aux données -Des restrictions plus granulaires au niveau des tags sont disponibles dans le cadre de l'[aperçu du contrôle d'accès aux données][6]. Pour demander l'accès à l'aperçu, -veuillez remplir [ce formulaire][7]. +{{< img src="cloud_cost/cc_skill_cost_summary.png" alt="Résumé de l'enquête de Bits AI Assistant montrant une analyse initiale." style="width:60%;" >}} -## Pour aller plus loin +## Lectures complémentaires : {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -159,6 +164,9 @@ veuillez remplir [ce formulaire][7]. [2]: /fr/api/latest/metrics/#query-timeseries-data-across-multiple-products [3]: /fr/monitors/types/cloud_cost/ [4]: /fr/cloud_cost_management/container_cost_allocation -[5]: /fr/cloud_cost_management/tag_pipelines +[5]: /fr/cloud_cost_management/tags/ [6]: /fr/account_management/rbac/data_access/ -[7]: https://www.datadoghq.com/product-preview/data-access-control/ \ No newline at end of file +[7]: https://www.datadoghq.com/product-preview/data-access-control/ +[8]: /fr/cloud_cost_management/datadog_costs +[9]: /fr/cloud_cost_management/setup/permissions +[10]: /fr/cloud_cost_management/cloud_cost_skill/ \ No newline at end of file diff --git a/content/fr/containers/datadog_operator/_index.md b/content/fr/containers/datadog_operator/_index.md index 37a30f86b01..c13a1eda469 100644 --- a/content/fr/containers/datadog_operator/_index.md +++ b/content/fr/containers/datadog_operator/_index.md @@ -2,12 +2,12 @@ aliases: - /fr/agent/kubernetes/operator_configuration - /fr/containers/kubernetes/operator_configuration -description: Déployez et gérez le Datadog Agent sur Kubernetes à l'aide du Datadog - Operator +description: Déployez et gérez l'Agent Datadog sur Kubernetes en utilisant l'Opérateur + Datadog further_reading: - link: /getting_started/containers/datadog_operator tag: guide - text: Débuter avec le Datadog Operator + text: Débuter avec l'Operator Datadog - link: https://github.com/DataDog/datadog-operator/blob/main/docs/installation.md tag: Code source text: 'Operator Datadog : installation avancée' @@ -15,42 +15,41 @@ further_reading: tag: Code source text: 'Operator Datadog : configuration' - link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ - tag: Architecture Center - text: Instrumenter votre application à l'aide du Datadog Operator et du contrôleur - d'admission -title: Datadog Operator + tag: Centre d'Architecture + text: Instrumentez votre application en utilisant l'Opérateur Datadog et le Contrôleur + d'Admission +title: Operator Datadog --- - L'[Operator Datadog][1] est un [Operator Kubernetes][2] open source qui vous permet de déployer et de configurer l'Agent Datadog dans un environnement Kubernetes. -Grâce à cet Operator, une seule définition de ressource personnalisée (ou CRD) est nécessaire pour déployer l'Agent de nœud, l'[Agent de cluster][3] et l'[exécuteur de checks de cluster][4]. L'Operator transmet les données relatives au statut, à la santé et aux erreurs du déploiement dans le statut de sa CRD. Dans la mesure où l'Operator utilise des options de configuration de niveau supérieur, il réduit les éventuels problèmes de configuration. +En utilisant l'Opérateur, vous pouvez utiliser un seul Custom Resource Definition (CRD) pour déployer le node-based Agent, [Cluster Agent][3] et [cluster checks runner][4]. L'Opérateur rapporte l'état de déploiement, la santé et les erreurs dans l'état de la CRD de l'Opérateur. Parce que l'Opérateur utilise des options de configuration de niveau supérieur, il limite le risque de mauvaise configuration. Une fois l'Agent déployé, l'Operator Datadog apporte les fonctionnalités suivantes : -- Validation des configurations de votre Agent -- Application de votre configuration à tous les Agents -- Orchestration pour la création et la mise à jour des ressources de l'Agent -- Transmission du statut de la configuration de l'Agent dans le statut CRD de l'Operator -- (Facultatif) Déploiement d'un DaemonSet avancé à l'aide du contrôleur [ExtendedDaemonSet][5] de Datadog +- Validation de vos configurations d'Agent +- Maintenir tous les Agents à jour avec votre configuration +- Orchestration pour créer et mettre à jour les ressources d'Agent +- Rapport de l'état de configuration de l'Agent dans l'état de la CRD de l'Opérateur +- Optionnellement, utilisation d'un déploiement avancé de DaemonSet en utilisant [ExtendedDaemonSet][5] de Datadog -### Pourquoi utiliser l'Operator Datadog au lieu d'un chart Helm ou d'un DaemonSet ? +### Pourquoi utiliser l'Opérateur Datadog au lieu d'un Helm chart ou d'un DaemonSet ? {#why-use-the-datadog-operator-instead-of-a-helm-chart-or-daemonset} -Vous pouvez également utiliser un chart Helm ou un DaemonSet pour installer l'Agent Datadog sur Kubernetes. Toutefois, l'utilisation de l'Operator Datadog offre les avantages suivants : +Vous pouvez également utiliser un Helm chart ou un DaemonSet pour installer l'Agent Datadog sur Kubernetes. Cependant, l'utilisation de l'Opérateur Datadog offre les avantages suivants : -- L'Operator intègre des paramètres par défaut basés sur les bonnes pratiques de Datadog. -- La configuration de l'Operator est plus flexible pour les futures améliorations. -- En tant qu'[Operaror Kubernetes][2], l'Operator Datadog est traité comme une ressource de première classe par l'API Kubernetes. -- Contrairement au chart Helm, l'Operator est inclus dans la boucle de rapprochement de Kubernetes. +- L'Opérateur a des valeurs par défaut intégrées basées sur les meilleures pratiques de Datadog. +- La configuration de l'Opérateur est plus flexible pour les améliorations futures. +- En tant que [Kubernetes Operator][2], l'Opérateur Datadog est traité comme une ressource de première classe par l'API Kubernetes. +- Contrairement au Helm chart, l'Opérateur est inclus dans la boucle de réconciliation de Kubernetes. -Datadog prend totalement en charge l'utilisation d'un DaemonSet pour le déploiement de l'Agent, mais la configuration manuelle du DaemonSet présente une marge d'erreur trop importante. L'utilisation d'un DaemonSet n'est donc pas très recommandée. +Datadog prend entièrement en charge l'utilisation d'un DaemonSet pour déployer l'Agent, mais la configuration manuelle du DaemonSet laisse une marge d'erreur significative. Par conséquent, l'utilisation d'un DaemonSet n'est pas fortement recommandée. -## Utilisation +## Utilisation {#usage} Consultez le guide [Débuter avec l'Operator Datadog][6] pour savoir comment utiliser l'Operator pour déployer l'Agent Datadog. -Pour connaître toutes les options d'installation et de configuration, consultez les pages d'[installation][7] et de [configuration][8] détaillées dans le référentiel [`datadog-operator`][1]. +Pour toutes les options d'installation et de configuration, consultez les pages détaillées [installation][7] et [configuration][8] dans le dépôt [`datadog-operator`][1]. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/fr/containers/kubernetes/configuration.md b/content/fr/containers/kubernetes/configuration.md index c78d2b2de7a..50228caacdd 100644 --- a/content/fr/containers/kubernetes/configuration.md +++ b/content/fr/containers/kubernetes/configuration.md @@ -3,48 +3,90 @@ aliases: - /fr/integrations/faq/gathering-kubernetes-events - /fr/agent/kubernetes/event_collection - /fr/agent/kubernetes/configuration -title: Configuration avancée de l'Agent Datadog sur Kubernetes +description: Options de configuration supplémentaires pour APM, journaux, processus, + événements et autres capacités après l'installation de l'Agent Datadog +title: Configuration avancée de l'Agent Datadog sur Kubernertes --- - -## Présentation +## Aperçu {#overview} Une fois l'Agent Datadog installé dans votre environnement Kubernetes, d'autres options de configuration sont disponibles. -### Activez Datadog pour recueillir les données suivantes : -- Des [traces (APM)](#activer-apm-et-le-tracing) -- Des [événements Kubernetes](#activer-la-collecte-d-evenements-kubernetes) -- Des [données NPM](#activer-la-collecte-de-donnees-npm) -- Des [logs](#activer-la-collecte-de-logs) -- Des [processus](#activer-la-collecte-de-processus) +### Activer Datadog pour collecter : {#enable-datadog-to-collect} +- [Traces (APM)](#enable-apm-and-tracing) +- [Événements Kubernetes](#enable-kubernetes-event-collection) +- [CNM](#enable-cnm-collection) +- [Journaux](#enable-log-collection) +- [Processus](#enable-process-collection) -### Autres fonctionnalités -- [Agent de cluster Datadog](#agent-de-cluster-datadog) +### Autres capacités {#other-capabilities} +- [Datadog Cluster Agent](#datadog-cluster-agent) - [Intégrations](#integrations) -- [Vue des conteneurs](#vue-des-conteneurs) -- [Orchestrator Explorer](#orchestrator-explorer) -- [Serveur de métriques externes](#serveur-de-metriques-custom) +- [Vue des conteneurs](#containers-view) +- [Orchestrator Explorer](#orchestrator-explorer) +- [Serveur de métriques externes](#custom-metrics-server) + +### Plus de configurations {#more-configurations} +- [Variables d'environnement](#environment-variables) +- [DogStatsD pour des métriques personnalisées](#configure-dogstatsd) +- [Mappage des étiquettes](#configure-tag-mapping) +- [Secrets](#using-secret-files) +- [Ignorer les conteneurs](#ignore-containers) +- [Délai d'attente du serveur API Kubernetes](#kubernetes-api-server-timeout) +- [Paramètres de proxy](#proxy-settings) +- [Autodécouverte](#autodiscovery) +- [Définir le nom du cluster](#set-cluster-name) +- [Divers](#miscellaneous) + +## Activer APM et le traçage {#enable-apm-and-tracing} + +{{< tabs >}} +{{% tab "Operator Datadog" %}} + +Modifiez votre `datadog-agent.yaml` pour définir `features.apm.enabled` sur `true`. + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + credentials: + apiKey: + + features: + apm: + enabled: true +``` + +{{% k8s-operator-redeploy %}} + +{{% /tab %}} +{{% tab "Helm" %}} -### Configurations supplémentaires -- [Variables d'environnement](#variables-d-environnement) -- [DogStatsD pour les métriques custom](#configurer-dogstatsd) -- [Mappage des tags](#configurer-le-mappage-des-tags) -- [Secrets](#utiliser-des-fichiers-de-secret) -- [Ignorer des conteneurs](#ignorer-des-conteneurs) +Dans Helm, APM est **activé par défaut** via UDS ou un pipe nommé Windows. -## Activer APM et le tracing +Pour vérifier, assurez-vous que `datadog.apm.socketEnabled` est défini sur `true` dans votre `values.yaml`. -Si vous avez installé Kubernetes avec l'Operator Datadog ou avec Helm, **la solution APM est activée par défaut**. +```yaml +datadog: + apm: + socketEnabled: true +``` + +{{% /tab %}} +{{< /tabs >}} Pour en savoir plus, consultez la section [Collecte de traces APM avec Kubernetes][16]. -## Activer la collecte d'événements Kubernetes +## Activer la collecte d'événements Kubernetes {#enable-kubernetes-event-collection} -Utilisez l'[Agent de cluster Datadog][2] pour recueillir vos événements Kubernetes. +Utilisez l'[Agent de cluster Datadog][2] pour recueillir vos événements Kubernetes. {{< tabs >}} {{% tab "Operator Datadog" %}} -La collecte d'événements est activée par défaut par l'Operator Datadog. Pour configurer cette fonctionnalité, utilisez le paramètre `features.eventCollection.collectKubernetesEvents` dans votre fichier de configuration `datadog-agent.yaml`. +La collecte d'événements est activée par défaut par l'Opérateur Datadog. Cela peut être géré dans la configuration `features.eventCollection.collectKubernetesEvents` de votre `datadog-agent.yaml`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -54,8 +96,8 @@ metadata: spec: global: credentials: - apiKey: - site: + apiKey: + site: features: eventCollection: @@ -65,7 +107,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -Pour recueillir des événements Kubernetes avec l'Agent de cluster Datadog, assurez-vous que les options `clusterAgent.enabled`, `datadog.collectEvents` et `clusterAgent.rbac.create` sont définies sur `true` dans votre fichier `datadog-values.yaml`. +Pour collecter des événements Kubernetes avec le Datadog Cluster Agent, assurez-vous que les options `clusterAgent.enabled`, `datadog.collectEvents` et `clusterAgent.rbac.create` sont définies sur `true` dans votre fichier `datadog-values.yaml`. ```yaml datadog: @@ -76,7 +118,7 @@ clusterAgent: create: true ``` -Si vous ne souhaitez pas utiliser l'Agent de cluster, vous pouvez vous servir d'un Agent de nœud pour recueillir les événements Kubernetes en définissant les options `datadog.leaderElection`, `datadog.collectEvents` et `agents.rbac.create` sur `true` dans votre fichier `datadog-values.yaml`. +Si vous ne souhaitez pas utiliser le Cluster Agent, vous pouvez toujours avoir un Node Agent collecter des événements Kubernetes en définissant les options `datadog.leaderElection`, `datadog.collectEvents` et `agents.rbac.create` sur `true` dans votre fichier `datadog-values.yaml`. ```yaml datadog: @@ -94,12 +136,12 @@ agents: Pour les configurations reposant sur un DaemonSet, consultez la documentation relative à la [collecte d'événements avec l'Agent de cluster et un Daemonset][14]. -## Activer la collecte de données NPM +## Activer la collecte CNM {#enable-cnm-collection} {{< tabs >}} {{% tab "Operator Datadog" %}} -Dans votre fichier `datadog-agent.yaml`, définissez `features.npm.enabled` sur `true`. +Dans votre `datadog-agent.yaml`, définissez `features.npm.enabled` sur `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -109,7 +151,7 @@ metadata: spec: global: credentials: - apiKey: + apiKey: features: npm: @@ -125,7 +167,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Modifiez votre fichier `datadog-values.yaml` en indiquant la configuration suivante : +Mettez à jour votre `datadog-values.yaml` avec la configuration suivante : ```yaml datadog: @@ -137,19 +179,19 @@ datadog: Mettez ensuite à niveau votre chart Helm : ```shell -helm upgrade -f datadog-values.yaml datadog/datadog +helm upgrade -f datadog-values.yaml datadog/datadog ``` {{% /tab %}} {{< /tabs >}} -Pour en savoir plus, consultez la section [Network Performance Monitoring][18]. +Pour plus d'informations, voir [Cloud Network Monitoring][18]. -## Activer la collecte de logs +## Activer la collecte de journaux {#enable-log-collection} {{< tabs >}} {{% tab "Operator Datadog" %}} -Dans votre fichier `datadog-agent.yaml`, définissez `features.logCollection.enabled` et `features.logCollection.containerCollectAll` sur `true`. +Dans votre `datadog-agent.yaml`, définissez `features.logCollection.enabled` et `features.logCollection.containerCollectAll` sur `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -159,7 +201,7 @@ metadata: spec: global: credentials: - apiKey: + apiKey: features: logCollection: @@ -175,7 +217,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Modifiez votre fichier `datadog-values.yaml` en indiquant la configuration suivante : +Mettez à jour votre `datadog-values.yaml` avec la configuration suivante : ```yaml datadog: @@ -188,18 +230,18 @@ datadog: Mettez ensuite à niveau votre chart Helm : ```shell -helm upgrade -f datadog-values.yaml datadog/datadog +helm upgrade -f datadog-values.yaml datadog/datadog ``` {{% /tab %}} {{< /tabs >}} Pour en savoir plus, consultez la section [Collecte de logs Kubernetes][17]. -## Activer la collecte de processus +## Activer la collecte de processus {#enable-process-collection} {{< tabs >}} {{% tab "Operator Datadog" %}} -Dans votre fichier `datadog-agent.yaml`, définissez `features.liveProcessCollection.enabled` sur `true`. +Dans votre `datadog-agent.yaml`, définissez `features.liveProcessCollection.enabled` sur `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -209,7 +251,7 @@ metadata: spec: global: credentials: - apiKey: + apiKey: features: liveProcessCollection: @@ -224,7 +266,7 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml {{% /tab %}} {{% tab "Helm" %}} -Modifiez votre fichier `datadog-values.yaml` en indiquant la configuration suivante : +Mettez à jour votre `datadog-values.yaml` avec la configuration suivante : ```yaml datadog: @@ -237,26 +279,26 @@ datadog: Mettez ensuite à niveau votre chart Helm : ```shell -helm upgrade -f datadog-values.yaml datadog/datadog +helm upgrade -f datadog-values.yaml datadog/datadog ``` {{% /tab %}} {{< /tabs >}} Pour en savoir plus, consultez la section [Live processes][23]. -## Agent de cluster Datadog +## Datadog Cluster Agent{#datadog-cluster-agent} -L'Agent de cluster Datadog simplifie la collecte de données de surveillance au niveau des clusters grâce à une approche centralisée. Datadog vous recommande fortement d'utiliser l'Agent de cluster pour surveiller Kubernetes. +Le Datadog Cluster Agent fournit une approche centralisée et rationalisée pour la collecte des données de surveillance au niveau du cluster. Datadog recommande fortement d'utiliser le Cluster Agent pour surveiller Kubernetes. -À partir de la version 1.0.0 de l'Operator Datadog et de la version 2.7.0 du chart Helm, l'**Agent de cluster est activé par défaut**. Aucune configuration supplémentaire n'est requise. +L'Opérateur Datadog v1.0.0+ et le graphique Helm v2.7.0+ **activent le Cluster Agent par défaut**. Aucune configuration supplémentaire n'est nécessaire. {{< tabs >}} {{% tab "Operator Datadog" %}} -À partir de la version 1.0.0 de l'Operator Datadog, l'Agent de cluster est activé par défaut. L'Operator crée les autorisations RBAC nécessaires et déploie l'Agent de cluster. Les deux Agents utilisent la même clé d'API. +L'Opérateur Datadog v1.0.0+ active le Cluster Agent par défaut. L'Opérateur crée les RBAC nécessaires et déploie le Cluster Agent. Les deux Agents utilisent la même clé API. -L'Operator génère automatiquement un token aléatoire dans un `Secret` Kubernetes. Ce token est partagé avec l'Agent Datadog et l'Agent de cluster afin de sécuriser leurs communications. +L'Opérateur génère automatiquement un jeton aléatoire dans un Kubernetes `Secret` à partager entre le Datadog Agent et le Cluster Agent pour une communication sécurisée. -Vous pouvez spécifier ce token dans le champ `global.clusterAgentToken` de votre fichier `datadog-agent.yaml` : +Vous pouvez spécifier manuellement ce jeton dans le champ `global.clusterAgentToken` de votre `datadog-agent.yaml` : ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -266,12 +308,12 @@ metadata: spec: global: credentials: - apiKey: - appKey: - clusterAgentToken: + apiKey: + appKey: + clusterAgentToken: ``` -Il est également possible de spécifier ce token en faisant référence au nom d'un `Secret` existant et au nom de la clé de données contenant ce token : +Alternativement, vous pouvez spécifier ce jeton en faisant référence au nom d'un `Secret` existant et à la clé de données contenant ce jeton : ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -281,14 +323,14 @@ metadata: spec: global: credentials: - apiKey: - appKey: - clusterAgentTokenSecret: - secretName: - keyName: + apiKey: + appKey: + clusterAgentTokenSecret: + secretName: + keyName: ``` -**Remarque** : lorsque le token est défini manuellement, il doit être composé de 32 caractères alphanumériques. +**Remarque** : Lorsqu'il est défini manuellement, ce jeton doit comporter 32 caractères alphanumériques. Ensuite, appliquez la nouvelle configuration : @@ -301,29 +343,29 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml À partir de la version 2.7.0 du chart Helm, l'Agent de cluster est activé par défaut. -Pour vous assurer que l'Agent de cluster est bien activé, vérifiez que `clusterAgent.enabled` est défini sur `true` dans votre fichier `datadog-values.yaml` : +Pour vérification, assurez-vous que `clusterAgent.enabled` est défini sur `true` dans votre `datadog-values.yaml` : ```yaml clusterAgent: enabled: true ``` -Helm génère automatiquement un token aléatoire dans un `Secret` Kubernetes. Ce token est partagé avec l'Agent Datadog et l'Agent de cluster afin de sécuriser leurs communications. +Helm génère automatiquement un jeton aléatoire dans un Kubernetes `Secret` à partager entre le Datadog Agent et le Cluster Agent pour une communication sécurisée. -Vous pouvez spécifier ce token dans le champ `clusterAgent.token` de votre fichier `datadog-agent.yaml` : +Vous pouvez spécifier manuellement ce jeton dans le champ `clusterAgent.token` de votre `datadog-agent.yaml` : ```yaml clusterAgent: enabled: true - token: + token: ``` -Il est également possible de spécifier ce token en faisant référence au nom d'un `Secret` existant comportant la clé `token` comportant le token : +Alternativement, vous pouvez spécifier ce jeton en faisant référence au nom d'un `Secret` existant, où le jeton se trouve dans une clé nommée `token` : ```yaml clusterAgent: enabled: true - tokenExistingSecret: + tokenExistingSecret: ``` {{% /tab %}} @@ -331,13 +373,13 @@ clusterAgent: Pour en savoir plus, consultez la [documentation relative à l'Agent de cluster Datadog][2]. -## Serveur de métriques custom +## Serveur de métriques personnalisées {#custom-metrics-server} Pour utiliser le [serveur de métriques custom][22] de l'Agent de cluster, vous devez fournir une [clé d'application][24] Datadog et activer le fournisseur de métriques. {{< tabs >}} {{% tab "Operator Datadog" %}} -Dans le fichier `datadog-agent.yaml`, spécifiez une clé d'application sous `spec.global.credentials.appKey` et définissez `features.externalMetricsServer.enabled` sur `true`. +Dans `datadog-agent.yaml`, fournissez une clé d'application sous `spec.global.credentials.appKey` et définissez `features.externalMetricsServer.enabled` sur `true`. ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -347,8 +389,8 @@ metadata: spec: global: credentials: - apiKey: - appKey: + apiKey: + appKey: features: externalMetricsServer: @@ -362,42 +404,42 @@ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml ``` {{% /tab %}} {{% tab "Helm" %}} -Dans le fichier `datadog-values.yaml`, spécifiez une clé d'application `datadog.appKey` et définissez `clusterAgent.metricsProvider.enabled` sur `true`. +Dans `datadog-values.yaml`, fournissez une clé d'application sous `datadog.appKey` et définissez `clusterAgent.metricsProvider.enabled` sur `true`. ```yaml datadog: - apiKey: - appKey: + apiKey: + appKey: - clusterAgent: +clusterAgent: + enabled: true + metricsProvider: enabled: true - metricsProvider: - enabled: true ``` Mettez ensuite à niveau votre chart Helm : ```shell -helm upgrade -f datadog-values.yaml datadog/datadog +helm upgrade -f datadog-values.yaml datadog/datadog ``` {{% /tab %}} {{< /tabs >}} -## Intégrations +## Intégrations {#integrations} Dès lors que votre Agent s'exécute dans votre cluster, vous pouvez utiliser la [fonctionnalité Autodiscovery de Datadog][5] pour recueillir automatiquement des métriques et des logs à partir de vos pods. -## Vue des conteneurs +## Vue des conteneurs {#containers-view} -Pour pouvoir vous servir de la vue [Container Explorer][3] de Datadog, vous devez activer l'Agent de processus. L'Operator Datadog et le chart Helm **activent par défaut l'Agent de processus**. Aucune configuration supplémentaire n'est requise. +Pour utiliser le [Container Explorer][3] de Datadog, activez le Process Agent. L'Opérateur Datadog et le graphique Helm **activent le Process Agent par défaut**. Aucune configuration supplémentaire n'est nécessaire. {{< tabs >}} {{% tab "Operator Datadog" %}} -L'Operator Datadog active par défaut l'Agent de processus. +L'Operator Datadog active par défaut l'Agent de processus. -Pour vous assurer que l'Agent de processus est bien activé, vérifiez que `features.liveContainerCollection.enabled` est défini sur `true` dans votre `datadog-agent.yaml` : +Pour vérification, assurez-vous que `features.liveContainerCollection.enabled` est défini sur `true` dans votre `datadog-agent.yaml` : ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -407,19 +449,36 @@ metadata: spec: global: credentials: - apiKey: - appKey: + apiKey: + appKey: features: liveContainerCollection: enabled: true ``` +Dans certaines configurations, le Process Agent et le Cluster Agent ne peuvent pas détecter automatiquement le nom d'un cluster Kubernetes. Si cela se produit, la fonctionnalité ne démarre pas et l'avertissement suivant s'affiche dans le journal du Cluster Agent : `Orchestrator explorer enabled but no cluster name set: disabling`. Dans ce cas, vous devez définir `spec.global.clusterName` sur le nom de votre cluster dans `datadog-agent.yaml` : + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + clusterName: + credentials: + apiKey: + appKey: + features: + orchestratorExplorer: + enabled: true +``` {{% /tab %}} {{% tab "Helm" %}} Le chart Helm active par défaut l'Agent de processus. -Pour vous assurer que l'Agent de processus est bien activé, vérifiez que `processAgent.enabled` est défini sur `true` dans votre fichier `datadog-values.yaml` : +Pour vérification, assurez-vous que `processAgent.enabled` est défini sur `true` dans votre `datadog-values.yaml` : ```yaml datadog: @@ -428,12 +487,12 @@ datadog: enabled: true ``` -Dans certaines configurations, il arrive que l'Agent de processus et l'Agent de cluster ne parviennent pas à détecter automatiquement un nom de cluster Kubernetes. Lorsque c'est le cas, la fonctionnalité ne démarre pas et l'avertissement suivant s'affiche dans le log de l'Agent de cluster : `Orchestrator explorer enabled but no cluster name set: disabling`. Vous devez alors définir `datadog.clusterName` sur le nom de votre cluster dans le fichier `values.yaml`. +Dans certaines configurations, le Process Agent et le Cluster Agent ne peuvent pas détecter automatiquement le nom d'un cluster Kubernetes. Si cela se produit, la fonctionnalité ne démarre pas et l'avertissement suivant s'affiche dans le journal du Cluster Agent : `Orchestrator explorer enabled but no cluster name set: disabling.` Dans ce cas, vous devez définir `datadog.clusterName` sur le nom de votre cluster dans `datadog-values.yaml`. ```yaml datadog: #(...) - clusterName: + clusterName: #(...) processAgent: enabled: true @@ -444,18 +503,20 @@ datadog: {{% /tab %}} {{< /tabs >}} +Pour les restrictions sur les noms de cluster valides, voir [Set cluster name](#set-cluster-name). + Consultez la documentation relative à la [vue des conteneurs][15] pour obtenir des informations supplémentaires. -## Orchestrator Explorer +## Orchestrator Explorer {#orchestrator-explorer} -L'Operator Datadog et le chart Helm **activent par défaut la vue [Orchestrator Explorer][20] de Datadog**. Aucune configuration supplémentaire n'est requise. +L'Opérateur Datadog et le graphique Helm **activent par défaut le [Orchestrator Explorer][20]**. Aucune configuration supplémentaire n'est nécessaire. {{< tabs >}} {{% tab "Operator Datadog" %}} -L'Operator Datadog active par défaut l'Orchestrator Explorer. +L'Operator Datadog active par défaut l'Orchestrator Explorer. -Pour vous assurer que cette vue est bien activée, vérifiez que le paramètre `features.orchestratorExplorer.enabled` est défini sur `true` dans votre fichier `datadog-agent.yaml` : +Pour vérification, assurez-vous que le paramètre `features.orchestratorExplorer.enabled` est défini sur `true` dans votre `datadog-agent.yaml` : ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -465,19 +526,38 @@ metadata: spec: global: credentials: - apiKey: - appKey: + apiKey: + appKey: features: orchestratorExplorer: enabled: true ``` +Dans certaines configurations, le Process Agent et le Cluster Agent ne peuvent pas détecter automatiquement le nom d'un cluster Kubernetes. Si cela se produit, la fonctionnalité ne démarre pas et l'avertissement suivant s'affiche dans le journal du Cluster Agent : `Orchestrator explorer enabled but no cluster name set: disabling`. Dans ce cas, vous devez définir `spec.global.clusterName` sur le nom de votre cluster dans `datadog-agent.yaml` : + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + clusterName: + credentials: + apiKey: + appKey: + features: + orchestratorExplorer: + enabled: true +``` + + {{% /tab %}} {{% tab "Helm" %}} Le chart Helm active par défaut l'Orchestrator Explorer. -Pour vous assurer que cette vue est bien activée, vérifiez que le paramètre `orchestratorExplorer.enabled` est défini sur `true` dans votre fichier `datadog-values.yaml` : +Pour vérification, assurez-vous que le paramètre `orchestratorExplorer.enabled` est défini sur `true` dans votre fichier `datadog-values.yaml` : ```yaml datadog: @@ -488,50 +568,65 @@ datadog: enabled: true ``` +Dans certaines configurations, le Process Agent et le Cluster Agent ne peuvent pas détecter automatiquement le nom d'un cluster Kubernetes. Si cela se produit, la fonctionnalité ne démarre pas et l'avertissement suivant s'affiche dans le journal du Cluster Agent : `Orchestrator explorer enabled but no cluster name set: disabling.` Dans ce cas, vous devez définir `datadog.clusterName` sur le nom de votre cluster dans `values.yaml`. + +```yaml +datadog: + #(...) + clusterName: + #(...) + processAgent: + enabled: true + orchestratorExplorer: + enabled: true +``` + {{% /tab %}} {{< /tabs >}} +Pour les restrictions sur les noms de cluster valides, voir [Set cluster name](#set-cluster-name). + Consultez la section [Orchestrator Explorer][21] pour obtenir des informations supplémentaires. -## Variables d'environnement +## Configuration de base {#basic-configuration} -Les variables d'environnement suivantes servent à configurer l'Agent Datadog. +Utilisez les champs de configuration suivants pour configurer le Datadog Agent. {{< tabs >}} {{% tab "Operator Datadog" %}} | Paramètre (v2alpha1) | Description | | --------------------------- | ----------- | -| `global.credentials.apiKey` | Permet de configurer votre clé d'API Datadog. | -| `global.credentials.apiSecret.secretName` | Au lieu d'utiliser `global.credentials.apiKey`, spécifiez le nom d'un `Secret` Kubernetes contenant votre clé d'API Datadog.| -| `global.credentials.apiSecret.keyName` | Au lieu d'utiliser `global.credentials.apiKey`, spécifiez la clé du `Secret` Kubernetes fourni dans `global.credentials.apiSecret.secretName`.| -| `global.credentials.appKey` | Permet de configurer votre clé d'application Datadog. Si vous utilisez le serveur de métriques externes, vous devez définir une clé d'application Datadog afin de pouvoir consulter vos métriques. | -| `global.credentials.appSecret.secretName` | Au lieu d'utiliser `global.credentials.apiKey`, spécifiez le nom d'un `Secret` Kubernetes contenant votre clé d'application Datadog.| -| `global.credentials.appSecret.keyName` | Au lieu d'utiliser `global.credentials.apiKey`, spécifiez la clé du `Secret` Kubernetes fourni dans `global.credentials.appSecret.secretName`.| -| `global.logLevel` | Définit le niveau de détail de la journalisation. Ce paramètre peut être remplacé par le conteneur. Niveaux de log valides : `trace`, `debug`, `info`, `warn`, `error`, `critical` et `off`. Valeur par défaut : `info`. | -| `global.registry` | Registre d'images à utiliser pour toutes les images d'Agent. Valeur par défaut : `gcr.io/datadoghq`. | -| `global.site` | Permet de définir le [site d'admission][1] Datadog vers lequel les données de l'Agent sont envoyées. Votre site est {{< region-param key="dd_site" code="true" >}} (assurez-vous que le SITE sélectionné à droite est correct). | -| `global.tags` | La liste des tags à appliquer à l'ensemble des métriques, événements et checks de service recueillis. | - -Pour obtenir la liste complète des variables d'environnements pour l'Operator Datadog, consultez la [spécification v2alpha1 de l'Operator][2]. Pour les versions antérieures, consultez la [spécification v1alpha1 de l'Operator][3]. +| `global.credentials.apiKey` | Configure votre clé API Datadog. | +| `global.credentials.apiSecret.secretName` | Au lieu de `global.credentials.apiKey`, fournissez le nom d'un `Secret` Kubernetes contenant votre clé API Datadog.| +| `global.credentials.apiSecret.keyName` | Au lieu de `global.credentials.apiKey`, fournissez la clé du `Secret` Kubernetes nommé dans `global.credentials.apiSecret.secretName`.| +| `global.credentials.appKey` | Configure votre clé d'application Datadog. Si vous utilisez le serveur de métriques externe, vous devez définir une clé d'application Datadog pour un accès en lecture à vos métriques. | +| `global.credentials.appSecret.secretName` | Au lieu de `global.credentials.apiKey`, fournissez le nom d'un `Secret` Kubernetes contenant votre clé d'application Datadog.| +| `global.credentials.appSecret.keyName` | Au lieu de `global.credentials.apiKey`, fournissez la clé du `Secret` Kubernetes nommé dans `global.credentials.appSecret.secretName`.| +| `global.logLevel` | Définit la verbosité des journaux. Cela peut être remplacé par le conteneur. Les niveaux de journal valides sont : `trace`, `debug`, `info`, `warn`, `error`, `critical` et `off`. Par défaut : `info`. | +| `global.registry` | Registre d'images à utiliser pour toutes les images de l'Agent. Par défaut : `gcr.io/datadoghq`. | +| `global.site` | Définit le Datadog intake site auquel les données de l'Agent sont envoyées. Votre site est {{< region-param key="dd_site" code="true" >}}. (Assurez-vous que le SITE correct est sélectionné à droite). | +| `global.tags` | Une liste de balises à attacher à chaque métrique, événement et vérification de service collectés. | + +Pour une liste complète des champs de configuration pour l'Opérateur Datadog, voir la [spécification de l'Opérateur v2alpha1][2]. Pour les versions plus anciennes, voir [Migrer les DatadogAgent CRDs vers v2alpha1][3]. Les champs de configuration peuvent également être interrogés en utilisant `kubectl explain datadogagent --recursive`. [1]: /fr/getting_started/ [2]: https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md -[3]: https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v1alpha1.md +[3]: /fr/containers/guide/v2alpha1_migration/ {{% /tab %}} {{% tab "Helm" %}} | Helm | Description | | ---- | ----------- | -| `datadog.apiKey` | Permet de configurer votre clé d'API Datadog. | -| `datadog.apiKeyExistingSecret` | Au lieu d'utiliser `datadog.apiKey`, spécifiez le nom d'un `Secret` Kubernetes existant contenant votre clé API Datadog, qui est définie par la clé `api-key`. | -| `datadog.appKey` | Permet de configurer votre clé d'application Datadog. Si vous utilisez le serveur de métriques externes, vous devez définir une clé d'application Datadog afin de pouvoir consulter vos métriques. | -| `datadog.appKeyExistingSecret` | Au lieu d'utiliser `datadog.appKey`, spécifiez le nom d'un `Secret` Kubernetes existant contenant votre clé d'application Datadog, qui est définie par la clé `app-key`. | -| `datadog.logLevel` | Définit le niveau de détail de la journalisation. Ce paramètre peut être remplacé par le conteneur. Niveaux de log valides : `trace`, `debug`, `info`, `warn`, `error`, `critical` et `off`. Valeur par défaut : `info`. | -| `registry` | Registre d'images à utiliser pour toutes les images d'Agent. Valeur par défaut : `gcr.io/datadoghq`. | -| `datadog.site` | Permet de définir le [site d'admission][1] Datadog vers lequel les données de l'Agent sont envoyées. Votre site est {{< region-param key="dd_site" code="true" >}} (assurez-vous que le SITE sélectionné à droite est correct). | -| `datadog.tags` | La liste de tags à appliquer à l'ensemble des métriques, événements et checks de services recueillis. | +| `datadog.apiKey` | Configurez votre clé API Datadog. | +| `datadog.apiKeyExistingSecret` | Au lieu de `datadog.apiKey`, fournissez le nom d'un `Secret` Kubernetes existant contenant votre clé API Datadog, définie avec le nom de clé `api-key`. | +| `datadog.appKey` | Configurez votre clé d'application Datadog. Si vous utilisez le serveur de métriques externe, vous devez définir une clé d'application Datadog pour un accès en lecture à vos métriques. | +| `datadog.appKeyExistingSecret` | Au lieu de `datadog.appKey`, fournissez le nom d'un `Secret` Kubernetes existant contenant votre clé d'application Datadog, définie avec le nom de clé `app-key`. | +| `datadog.logLevel` | Définit la verbosité des journaux. Cela peut être remplacé par le conteneur. Les niveaux de journal valides sont : `trace`, `debug`, `info`, `warn`, `error`, `critical` et `off`. Par défaut : `info`. | +| `registry` | Registre d'images à utiliser pour toutes les images de l'Agent. Par défaut : `gcr.io/datadoghq`. | +| `datadog.site` | Définit le site d'intake de Datadog [intake site][1] auquel les données de l'Agent sont envoyées. Votre site est {{< region-param key="dd_site" code="true" >}}. (Assurez-vous que le SITE correct est sélectionné à droite). | +| `datadog.tags` | Une liste de balises à attacher à chaque métrique, événement et vérification de service collectés. | -Pour obtenir la liste complète des variables d'environnement pour le chart Helm, consultez la [liste des options][2] pour le fichier `datadog-values.yaml`. +Pour une liste complète des variables d'environnement pour le chart Helm, consultez la [liste complète des options][2] pour `datadog-values.yaml`. [1]: /fr/getting_started/site [2]: https://github.com/DataDog/helm-charts/tree/main/charts/datadog#all-configuration-options @@ -539,50 +634,120 @@ Pour obtenir la liste complète des variables d'environnement pour le chart Helm {{% tab "DaemonSet" %}} | Variable d'environnement | Description | |----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_API_KEY` | Votre clé d'API Datadog (**obligatoire**). | -| `DD_ENV` | Permet de définir le tag global `env` pour toutes les données générées. | -| `DD_HOSTNAME` | Le hostname à utiliser pour les métriques (si la détection automatique échoue). | -| `DD_TAGS` | Tags de host séparés par des espaces. Exemple : `simple-tag-0 tag-key-1:tag-value-1`. | -| `DD_SITE` | Site auquel vos métriques, traces et logs sont envoyés. Votre `DD_SITE` est {{< region-param key="dd_site" code="true">}}. Valeur par défaut : `datadoghq.com`. | -| `DD_DD_URL` | Paramètre facultatif permettant de remplacer l'URL pour l'envoi de métriques. | -| `DD_URL` (6.36+/7.36+) | Alias pour `DD_DD_URL`. Ce paramètre est ignoré si `DD_DD_URL` est déjà défini. | -| `DD_CHECK_RUNNERS` | L'Agent exécute par défaut tous les checks simultanément (par défaut, avec `4` exécuteurs). Pour exécuter les checks de façon séquentielle, définissez la valeur `1`. Si vous devez exécuter un grand nombre de checks (ou des checks lents), le composant `collector-queue` peut prendre du retard et faire échouer le check de santé. Vous pouvez augmenter le nombre d'exécuteurs afin d'exécuter simultanément les checks. | -| `DD_LEADER_ELECTION` | Si plusieurs instances de l'Agent s'exécutent dans votre cluster, définissez cette variable sur `true` pour éviter de dupliquer la collecte d'événements. | +| `DD_API_KEY` | Votre clé API Datadog (**requise**) | +| `DD_ENV` | Définit la balise globale `env` pour toutes les données émises. | +| `DD_HOSTNAME` | Nom d'hôte à utiliser pour les métriques (si l'autodétection échoue) | +| `DD_TAGS` | Balises d'hôte séparées par des espaces. Par exemple : `simple-tag-0 tag-key-1:tag-value-1` | +| `DD_SITE` | Site de destination pour vos métriques, traces et journaux. Votre `DD_SITE` est {{< region-param key="dd_site" code="true">}}. Par défaut, c'est `datadoghq.com`. | +| `DD_DD_URL` | Paramètre optionnel pour remplacer l'URL pour la soumission des métriques. | +| `DD_URL` (6.36+/7.36+) | Alias pour `DD_DD_URL`. Ignoré si `DD_DD_URL` est déjà défini. | +| `DD_CHECK_RUNNERS` | L'Agent exécute toutes les vérifications en parallèle par défaut (valeur par défaut = `4` runners). Pour exécuter les vérifications séquentiellement, définissez la valeur sur `1`. Si vous devez exécuter un grand nombre de vérifications (ou des vérifications lentes), le composant `collector-queue` pourrait être en retard et échouer le contrôle de santé. Vous pouvez augmenter le nombre de runners pour exécuter des vérifications en parallèle. | +| `DD_LEADER_ELECTION` | Si plusieurs instances de l'Agent s'exécutent dans votre cluster, définissez cette variable sur `true` pour éviter la duplication de la collecte d'événements. | {{% /tab %}} {{< /tabs >}} -## Configurer DogStatsD +## Variables d'environnement {#environment-variables} +L'Agent Datadog conteneurisé peut être configuré en utilisant des variables d'environnement. Pour une liste exhaustive des variables d'environnement prises en charge, consultez la section [Variables d'environnement][26] de la documentation de l'Agent Docker. -DogStatsD peut envoyer des métriques custom via UDP avec le protocole StatsD. **L'Operator Datadog et Helm activent par défaut DogStatsD**. Consultez la [documentation relative à DogStatsD][19] pour en savoir plus. +### Exemples {#examples} +{{< tabs >}} +{{% tab "Operator Datadog" %}} +Lorsque vous utilisez l'Opérateur Datadog, vous pouvez définir des variables d'environnement supplémentaires dans `override` pour un composant avec `[key].env []object`, ou pour un conteneur avec `[key].containers.[key].env []object`. Les clés suivantes sont prises en charge : + +- `nodeAgent` +- `clusterAgent` +- `clusterChecksRunner` + +Les paramètres au niveau du conteneur ont la priorité sur tous les paramètres au niveau du composant. + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + override: + nodeAgent: + env: + - name: + value: + clusterAgent: + containers: + cluster-agent: + env: + - name: + value: +``` + +{{% /tab %}} +{{% tab "Helm" %}} + +```yaml +datadog: + env: + - name: + value: +clusterAgent: + env: + - name: + value: +``` + +{{% /tab %}} +{{% tab "DaemonSet" %}} +Ajoutez des variables d'environnement au DaemonSet ou au Déploiement (pour l'Agent Cluster Datadog). + +```yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: datadog +spec: + template: + spec: + containers: + - name: agent + ... + env: + - name: + value: +``` + +{{% /tab %}} +{{< /tabs >}} + +## Configurer DogStatsD {#configure-dogstatsd} + +DogStatsD peut envoyer des métriques personnalisées via UDP avec le protocole StatsD. **DogStatsD est activé par défaut par l'Opérateur Datadog et Helm**. Consultez la [documentation de DogStatsD][19] pour plus d'informations. Les variables d'environnement suivantes servent à configurer DogStatsD avec un DaemonSet : | Variable d'environnement | Description | |----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | Effectue une écoute des paquets DogStatsD issus d'autres conteneurs (requis pour envoyer des métriques custom). | -| `DD_HISTOGRAM_PERCENTILES` | Les centiles à calculer pour l'histogramme (séparés par des espaces). Valeur par défaut : `0.95`. | -| `DD_HISTOGRAM_AGGREGATES` | Les agrégations à calculer pour l'histogramme (séparées par des espaces). Valeur par défaut : `"max median avg count"`. | -| `DD_DOGSTATSD_SOCKET` | Le chemin vers le socket Unix à écouter. Doit être dans le volume `rw` monté. | -| `DD_DOGSTATSD_ORIGIN_DETECTION` | Active la détection des conteneurs et le tagging pour les métriques de socket Unix. | -| `DD_DOGSTATSD_TAGS` | Les tags supplémentaires à ajouter à l'ensemble des métriques, événements et checks de service reçus par ce serveur DogStatsD. Exemple : `"env:golden group:retrievers"`. | +| `DD_DOGSTATSD_NON_LOCAL_TRAFFIC` | Écoutez les paquets DogStatsD provenant d'autres conteneurs (nécessaire pour envoyer des métriques personnalisées). | +| `DD_HISTOGRAM_PERCENTILES` | Les percentiles de l'histogramme à calculer (séparés par des espaces). La valeur par défaut est `0.95`. | +| `DD_HISTOGRAM_AGGREGATES` | Les agrégats de l'histogramme à calculer (séparés par des espaces). La valeur par défaut est `"max median avg count"`. | +| `DD_DOGSTATSD_SOCKET` | Chemin vers le socket Unix à écouter. Doit être dans un `rw` volume monté. | +| `DD_DOGSTATSD_ORIGIN_DETECTION` | Activer la détection et le marquage des conteneurs pour les métriques de socket Unix. | +| `DD_DOGSTATSD_TAGS` | Tags supplémentaires à ajouter à toutes les métriques, événements et vérifications de service reçus par ce serveur DogStatsD, par exemple : `"env:golden group:retrievers"`. | -## Configurer le mappage des tags +## Configurer le mappage des tags {#configure-tag-mapping} Datadog recueille automatiquement les principaux tags Kubernetes. -Vous pouvez également mapper les étiquettes de nœud, les étiquettes de pod et les annotations Kubernetes avec des tags Datadog. Les variables d'environnement suivantes servent à configurer ce mappage : +De plus, vous pouvez mapper les étiquettes de nœuds Kubernetes, les étiquettes de pods et les annotations aux tags Datadog. Utilisez les variables d'environnement suivantes pour configurer ce mappage : {{< tabs >}} {{% tab "Operator Datadog" %}} | Paramètre (v2alpha1) | Description | | --------------------------- | ----------- | -| `global.namespaceLabelsAsTags` | Permet de mapper les étiquettes d'espace de nommage Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_ESPACE_NOMMAGE_KUBERNETES>: `. | -| `global.nodeLabelsAsTags` | Permet de mapper les étiquettes de nœud Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_NŒUD_KUBERNETES>: `. | -| `global.podAnnotationsAsTags` | Permet de mapper les annotations Kubernetes avec des tags Datadog. Format : `: `. | -| `global.podLabelsAsTags` | Permet de mapper les étiquettes Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_KUBERNETES>: `. | +| `global.namespaceLabelsAsTags` | Fournissez un mappage des étiquettes de namespace Kubernetes aux tags Datadog. `: ` | +| `global.nodeLabelsAsTags` | Fournissez un mappage des étiquettes de nœuds Kubernetes aux tags Datadog. `: ` | +| `global.podAnnotationsAsTags` | Fournissez un mappage des annotations Kubernetes aux tags Datadog. `: ` | +| `global.podLabelsAsTags` | Fournissez un mappage des étiquettes Kubernetes aux tags Datadog. `: ` | -### Exemples +### Exemples {#examples-1} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -592,21 +757,21 @@ metadata: spec: global: credentials: - apiKey: + apiKey: namespaceLabelsAsTags: env: environment - # <ÉTIQUETTE_ESPACE_NOMMAGE_KUBERNETES>: + # : nodeLabelsAsTags: beta.kubernetes.io/instance-type: aws-instance-type kubernetes.io/role: kube_role - # <ÉTIQUETTE_NŒUD_KUBERNETES>: + # : podLabelsAsTags: app: kube_app release: helm_release - # <ÉTIQUETTE_KUBERNETES>: + # : podAnnotationsAsTags: iam.amazonaws.com/role: kube_iamrole - # : + # : ``` {{% /tab %}} @@ -614,90 +779,175 @@ spec: | Helm | Description | | --------------------------- | ----------- | -| `datadog.namespaceLabelsAsTags` | Permet de mapper les étiquettes d'espace de nommage Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_ESPACE_NOMMAGE_KUBERNETES>: `. | -| `datadog.nodeLabelsAsTags` | Permet de mapper les étiquettes de nœud Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_NŒUD_KUBERNETES>: `. | -| `datadog.podAnnotationsAsTags` | Permet de mapper les annotations Kubernetes avec des tags Datadog. Format : `: `. | -| `datadog.podLabelsAsTags` | Permet de mapper les étiquettes Kubernetes avec des tags Datadog. Format : `<ÉTIQUETTE_KUBERNETES>: `. | +| `datadog.namespaceLabelsAsTags` | Fournissez un mappage des étiquettes de namespace Kubernetes aux tags Datadog. `: ` | +| `datadog.nodeLabelsAsTags` | Fournissez un mappage des étiquettes de nœuds Kubernetes aux tags Datadog. `: ` | +| `datadog.podAnnotationsAsTags` | Fournissez un mappage des annotations Kubernetes aux tags Datadog. `: ` | +| `datadog.podLabelsAsTags` | Fournissez un mappage des étiquettes Kubernetes aux tags Datadog. `: ` | -### Exemples +### Exemples {#examples-2} ```yaml datadog: # (...) namespaceLabelsAsTags: env: environment - # <ÉTIQUETTE_ESPACE_NOMMAGE_KUBERNETES>: + # : nodeLabelsAsTags: beta.kubernetes.io/instance-type: aws-instance-type kubernetes.io/role: kube_role - # <ÉTIQUETTE_NŒUD_KUBERNETES>: + # : podLabelsAsTags: app: kube_app release: helm_release - # <ÉTIQUETTE_KUBERNETES>: + # : podAnnotationsAsTags: iam.amazonaws.com/role: kube_iamrole - # : + # : ``` {{% /tab %}} {{< /tabs >}} -### Utiliser des secrets +## Utilisation des fichiers secrets {#using-secret-files} -Les identifiants des intégrations peuvent être conservés dans des secrets Docker ou Kubernetes et utilisés dans les modèles Autodiscovery. Pour en savoir plus, consultez la section [Gestion des secrets][12]. +Les identifiants d'intégration peuvent être stockés dans des secrets Docker ou Kubernetes et utilisés dans des modèles d'Autodécouverte. Pour plus d'informations, consultez [Gestion des secrets][12]. -### Ignorer des conteneurs +## Ignorer les conteneurs {#ignore-containers} -Vous pouvez exclure des conteneurs de la collecte de logs, de la collecte de métriques et d'Autodiscovery. Par défaut, Datadog exclut les conteneurs `pause` de Kubernetes et d'OpenShift. Ces listes d'inclusion et d'exclusion s'appliquent uniquement à Autodiscovery. Elles n'ont aucun impact sur les traces ni sur DogStatsD. Il est possible d'utiliser des expressions régulières pour les valeurs de ces variables d'environnement. +Exclure les conteneurs de la collecte des journaux, de la collecte des métriques et de l'Autodécouverte. Datadog exclut par défaut les conteneurs Kubernetes et OpenShift `pause`. Ces listes blanches et noires s'appliquent uniquement à l'Autodécouverte ; les traces et DogStatsD ne sont pas affectés. Ces variables d'environnement prennent en charge les expressions régulières dans leurs valeurs. Consultez la section [Gestion de la découverte de conteneurs][13] pour obtenir des exemples. -**Remarque** : ces paramètres n'ont aucun effet sur les métriques `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` et `.stopped.total`, qui prennent en compte l'ensemble des conteneurs. +**Remarque** : Les métriques `kubernetes.containers.running`, `kubernetes.pods.running`, `docker.containers.running`, `.stopped`, `.running.total` et `.stopped.total` ne sont pas affectées par ces paramètres. Tous les conteneurs sont comptés. + +## Délai d'attente du serveur API Kubernetes {#kubernetes-api-server-timeout} + +Par défaut, le [Kubernetes State Metrics Core check][25] attend 10 secondes pour une réponse du serveur API Kubernetes. Pour les grands clusters, la demande peut expirer, ce qui entraîne des métriques manquantes. -### Paramètres de proxy +Vous pouvez éviter cela en définissant la variable d'environnement `DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT` à une valeur supérieure à la valeur par défaut de 10 secondes. -Depuis la version 6.4.0 de l'Agent (et 6.5.0 de l'Agent de trace), vous pouvez remplacer les paramètres de proxy de l'Agent via les variables d'environnement suivantes : +{{< tabs >}} +{{% tab "Operator Datadog" %}} +Mettez à jour votre `datadog-agent.yaml` avec la configuration suivante : + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + override: + clusterAgent: + env: + - name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT + value: +``` + +Ensuite, appliquez la nouvelle configuration : + +```shell +kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml +``` + +{{% /tab %}} +{{% tab "Helm" %}} +Mettez à jour votre `datadog-values.yaml` avec la configuration suivante : + +```yaml +clusterAgent: + env: + - name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT + value: +``` + +Mettez ensuite à niveau votre chart Helm : + +```shell +helm upgrade -f datadog-values.yaml datadog/datadog +``` +{{% /tab %}} +{{< /tabs >}} + +## Paramètres du proxy {#proxy-settings} + +À partir de l'Agent v6.4.0 (et v6.5.0 pour l'Agent de trace), vous pouvez remplacer les paramètres de proxy de l'Agent via les variables d'environnement suivantes : | Variable d'environnement | Description | |--------------------------|------------------------------------------------------------------------| -| `DD_PROXY_HTTP` | URL HTTP à utiliser comme proxy pour les requêtes `http`. | -| `DD_PROXY_HTTPS` | URL HTTPS à utiliser comme proxy pour les requêtes `https`. | -| `DD_PROXY_NO_PROXY` | Liste d'URL, séparées par des espaces, pour lesquelles aucun proxy ne doit être utilisé. | -| `DD_SKIP_SSL_VALIDATION` | Option permettant de tester si l'Agent a des difficultés à se connecter à Datadog. | +| `DD_PROXY_HTTP` | Une URL HTTP à utiliser comme proxy pour les requêtes `http`. | +| `DD_PROXY_HTTPS` | Une URL HTTPS à utiliser comme proxy pour les requêtes `https`. | +| `DD_PROXY_NO_PROXY` | Une liste d'URLs séparées par des espaces pour lesquelles aucun proxy ne doit être utilisé. | +| `DD_SKIP_SSL_VALIDATION` | Une option pour tester si l'Agent rencontre des problèmes de connexion à Datadog. | + +## Définir le nom du cluster {#set-cluster-name} + +Certaines fonctionnalités nécessitent que vous définissiez un nom de cluster Kubernetes. Un nom de cluster valide doit être unique et séparé par des points, avec les restrictions suivantes : + +- Peut contenir uniquement des lettres minuscules, des chiffres et des tirets +- Doit commencer par une lettre +- La longueur totale est inférieure ou égale à 80 caractères + +{{< tabs >}} +{{% tab "Operator Datadog" %}} +Définissez `spec.global.clusterName` comme le nom de votre cluster dans `datadog-agent.yaml` : + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + clusterName: +``` +{{% /tab %}} + +{{% tab "Helm" %}} +Définissez `datadog.clusterName` comme le nom de votre cluster dans `datadog-values.yaml`. + +```yaml +datadog: + #(...) + clusterName: +``` +{{% /tab %}} +{{< /tabs >}} + +## Autodécouverte {#autodiscovery} + +| Variable d'environnement | Description | +|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `DD_LISTENERS` | Auditeurs d'autodécouverte à exécuter. | +| `DD_EXTRA_LISTENERS` | Auditeurs d'autodécouverte supplémentaires à exécuter. Ils sont ajoutés en plus des variables définies dans la section `listeners` du fichier de configuration `datadog.yaml`. | +| `DD_CONFIG_PROVIDERS` | Les fournisseurs que l'Agent doit appeler pour collecter les configurations de vérification. Les fournisseurs disponibles sont :
    `kubelet` - Gère les modèles intégrés dans les annotations de pod.
    `docker` - Gère les modèles intégrés dans les étiquettes de conteneur.
    `clusterchecks` - Récupère les configurations de vérification au niveau du cluster depuis le Cluster Agent.
    `kube_services` - Surveille les services Kubernetes pour les vérifications de cluster. | +| `DD_EXTRA_CONFIG_PROVIDERS` | Fournisseurs de configuration d'autodécouverte supplémentaires à utiliser. Ils sont ajoutés en plus des variables définies dans la section `config_providers` du fichier de configuration `datadog.yaml`. | -### Divers +## Divers {#miscellaneous} | Variable d'environnement | Description | |-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | Remplace la détection automatique des sources de conteneurs par une source unique, comme `"docker"`, `"ecs_fargate"` ou `"kubelet"`. Cela n'est plus nécessaire depuis la version 7.35.0. de l'Agent. | -| `DD_HEALTH_PORT` | Définissez cette variable sur `5555` pour exposer le check de santé de l'Agent sur le port `5555`. | -| `DD_CLUSTER_NAME` | Définissez un identifiant de cluster Kubernetes personnalisé pour éviter les conflits entre les alias de host. Le nom du cluster peut contenir jusqu'à 40 caractères correspondants à des lettres minuscules, des chiffres et des traits d'union. Il doit également commencer par une lettre et se terminer par un chiffre ou une lettre. | -| `DD_COLLECT_KUBERNETES_EVENTS ` | Active la collecte d'événements via l'Agent. Si vous exécutez plusieurs instances de l'Agent dans votre cluster, définissez également `DD_LEADER_ELECTION` sur `true`. | +| `DD_PROCESS_AGENT_CONTAINER_SOURCE` | Remplace la détection automatique de la source du conteneur afin de forcer l'utilisation d'une source unique. par exemple `"docker"`, `"ecs_fargate"`, `"kubelet"`. Cela n'est plus nécessaire depuis la version 7.35.0 de l'Agent. | +| `DD_HEALTH_PORT` | Définissez ceci sur `5555` pour exposer le contrôle de l'état de santé de l'Agent au port `5555`. | +| `DD_CLUSTER_NAME` | Définissez un identifiant de cluster Kubernetes personnalisé pour éviter les collisions d'alias d'hôte. Le nom du cluster peut comporter jusqu'à 40 caractères avec les restrictions suivantes : lettres minuscules, chiffres et tirets uniquement. Les métriques doivent commencer par une lettre. Doit se terminer par un chiffre ou une lettre. | +| `DD_COLLECT_KUBERNETES_EVENTS ` | Activez la collecte d'événements avec l'Agent. Si vous exécutez plusieurs instances de l'Agent dans votre cluster, définissez `DD_LEADER_ELECTION` sur `true` également. | -Vous pouvez ajouter d'autres écouteurs et fournisseurs de configuration à l'aide des variables d'environnement `DD_EXTRA_LISTENERS` et `DD_EXTRA_CONFIG_PROVIDERS`. Elles viennent s'ajouter aux variables définies dans les sections `listeners` et `config_providers` du fichier de configuration `datadog.yaml`. [1]: /fr/agent/ [2]: /fr/containers/cluster_agent/ [3]: https://app.datadoghq.com/containers -[4]: /fr/infrastructure/livecontainers/?tab=helm#configuration [5]: /fr/containers/kubernetes/integrations/ -[6]: https://github.com/DataDog/helm-charts/tree/master/charts/datadog#all-configuration-options -[7]: /fr/agent/kubernetes/operator_configuration -[8]: /fr/agent/proxy/#agent-v6 -[9]: /fr/developers/dogstatsd/ -[10]: /fr/developers/dogstatsd/unix_socket/ -[11]: /fr/agent/kubernetes/tag/ -[12]: /fr/agent/guide/secrets-management/ +[12]: /fr/agent/configuration/secrets-management/ [13]: /fr/agent/guide/autodiscovery-management/ [14]: /fr/containers/guide/kubernetes_daemonset#cluster-agent-event-collection -[15]: infrastructure/containers/?tab=datadogoperator +[15]: /fr/infrastructure/containers/ [16]: /fr/containers/kubernetes/apm [17]: /fr/containers/kubernetes/log -[18]: /fr/network_monitoring/performance/ -[19]: /fr/developers/dogstatsd +[18]: /fr/network_monitoring/cloud_network_monitoring/ +[19]: /fr/extend/dogstatsd [20]: https://app.datadoghq.com/orchestration/overview [21]: /fr/infrastructure/containers/orchestrator_explorer [22]: /fr/containers/guide/cluster_agent_autoscaling_metrics/?tab=helm [23]: /fr/infrastructure/process/ -[24]: /fr/account_management/api-app-keys/#application-keys \ No newline at end of file +[24]: /fr/account_management/api-app-keys/#application-keys +[25]: /fr/integrations/kubernetes_state_core/ +[26]: /fr/containers/docker/?tab=standard#environment-variables \ No newline at end of file diff --git a/content/fr/containers/kubernetes/data_collected.md b/content/fr/containers/kubernetes/data_collected.md index a0250e54d35..0566319af5e 100644 --- a/content/fr/containers/kubernetes/data_collected.md +++ b/content/fr/containers/kubernetes/data_collected.md @@ -2,175 +2,176 @@ aliases: - /fr/agent/kubernetes/metrics - /fr/agent/kubernetes/data_collected +description: Guide de référence pour les métriques et événements collectés par l'Agent + Datadog à partir des clusters Kubernetes further_reading: - link: /agent/kubernetes/log/ tag: Documentation text: Recueillir les logs de votre application - link: /agent/kubernetes/apm/ tag: Documentation - text: Recueillir les traces de vos applications + text: Recueillir les traces de votre application - link: /agent/kubernetes/prometheus/ tag: Documentation - text: Recueillir vos métriques Prometheus + text: Recueillez vos métriques Prometheus - link: /agent/kubernetes/integrations/ tag: Documentation - text: Recueillir automatiquement les métriques et les logs de vos applications + text: Recueillez automatiquement les métriques et les logs de vos applications - link: /agent/guide/autodiscovery-management/ tag: Documentation - text: Limiter la collecte de données à un sous-ensemble de conteneurs + text: Limitez la collecte de données à un sous-ensemble de conteneurs - link: /agent/kubernetes/tag/ tag: Documentation - text: Attribuer des tags à toutes les données envoyées par un conteneur + text: Attribuez des tags à toutes les données envoyées par un conteneur title: Données Kubernetes recueillies --- +Cette page répertorie les données recueillies par l'Agent Datadog lorsqu'il est déployé sur un cluster Kubernetes. Les métriques recueillies peuvent varier en fonction de la version de Kubernetes utilisée. -Cette page répertorie les données recueillies par l’Agent Datadog lorsqu’il est déployé sur un cluster Kubernetes. Les métriques recueillies peuvent varier en fonction de la version de Kubernetes utilisée. +**Remarque** : Pour les conteneurs Windows, voir [Métriques limitées pour les déploiements Windows][7]. -**Remarque** : pour les conteneurs Windows, consultez la section [Métriques limitées pour les déploiements sous Windows][7]. +## Métriques {#metrics} -## Métriques - -### Kubernetes +### Kubernetes {#kubernetes} {{< get-metrics-from-git "kubernetes" >}} -**Remarque** : pour en savoir plus sur les métriques `kubernetes.cpu.*`, consultez la section [Différences entre les métriques `kubernetes.cpu.*` et `container.cpu.*`][8]. +**Remarque** : Pour plus d'informations sur les métriques `kubernetes.cpu.*`, voir [les divergences entre les métriques `kubernetes.cpu.*` et `container.cpu.*`][8]. -### Kubelet +### Kubelet {#kubelet} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubelet][1]. {{< get-metrics-from-git "kubelet" >}} -### Kubernetes State Metrics Core +### Métriques d'état de Kubernetes core {#kubernetes-state-metrics-core} -Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes State Metrics Core][6]. Ce check nécessite la version 1.12 ou une version ultérieure de l'Agent de cluster Datadog. +Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes State Metrics Core][6]. Cette vérification nécessite Datadog Cluster Agent v1.12 ou une version ultérieure. {{< get-metrics-from-git "kubernetes_state_core" >}} -### Kubernetes state +### État de Kubernetes {#kubernetes-state} -**Remarque** : les métriques `kubernetes_state.*` sont recueillies à partir de l'API `kube-state-metrics`. Le check `kubernetes_state` est obsolète. Consultez la section [Kubernetes State Metrics Core][6] pour utiliser le check recommandé. Datadog vous conseille de ne pas activer simultanément ces deux checks. +**Remarque** : Les métriques `kubernetes_state.*` sont collectées à partir de l'API `kube-state-metrics`. La vérification `kubernetes_state` est une vérification héritée. Pour une alternative, voir [Métriques d'état de Kubernetes core][6]. Datadog recommande de ne pas activer les deux vérifications simultanément. {{< get-metrics-from-git "kubernetes_state" >}} -### DNS Kubernetes +### Kubernetes DNS {#kubernetes-dns} {{< get-metrics-from-git "kube-dns" >}} -### Proxy Kubernetes +### Kubernetes proxy {#kubernetes-proxy} {{< get-metrics-from-git "kube-proxy" >}} -### Serveur d'API kubernetes +### Kubernetes API server {#kubernetes-api-server} Pour en savoir plus, consultez la documentation relative à l'intégration du [serveur d'API Kubernetes][3]. {{< get-metrics-from-git "kube-apiserver-metrics" >}} -### Kubernetes Controller Manager +### Kubernetes controller manager {#kubernetes-controller-manager} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Controller Manager][2]. {{< get-metrics-from-git "kube-controller-manager" >}} -### Kubernetes Metrics Server +### Kubernetes metrics server {#kubernetes-metrics-server} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Metrics Server][4]. -{{< get-metrics-from-git "kubernetes_state_core" >}} +{{< get-metrics-from-git "kube-metrics-server" >}} -### Kubernetes Scheduler +### Kubernetes scheduler {#kubernetes-scheduler} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Scheduler][5]. {{< get-metrics-from-git "kube-scheduler" >}} -## Événements +## Événements {#events} - Backoff -- Conflict +- Conflit - Supprimer - DeletingAllPods -- Didn't have enough resource +- Ressources insuffisantes - Erreur -- Failed -- FailedCreate -- FailedDelete -- FailedMount -- FailedSync -- Failedvalidation -- FreeDiskSpaceFailed -- HostPortConflict -- InsufficientFreeCPU -- InsufficientFreeMemory -- InvalidDiskCapacity -- Killing -- KubeletsetupFailed -- NodeNotReady -- NodeoutofDisk -- OutofDisk -- Rebooted -- TerminatedAllPods -- Unable -- Unhealthy - -## Checks de service - -### Kubelet +- Échoué +- ÉchecDeLaCréation +- ÉchecDeLaSuppression +- ÉchecDuMontage +- ÉchecDeLaSynchronisation +- ÉchecDeLaValidation +- ÉchecDeL'EspaceDisqueLibre +- ConflitDePortHôte +- CPULibreInsuffisant +- MémoireLibreInsuffisante +- CapacitéDeDisqueInvalide +- Tuer +- ÉchecDeConfigurationDuKubelet +- NœudPasPrêt +- Nœud hors de disque +- Hors de disque +- Redémarré +- TousLesPodsTerminés +- Impossible +- Non sain + +## Vérifications de service {#service-checks} + +### Kubelet {#kubelet-1} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubelet][1]. {{< get-service-checks-from-git "kubelet" >}} -### Kubernetes Controller Manager +### Gestionnaire de contrôleur Kubernetes {#kubernetes-controller-manager-1} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Controller Manager][2]. {{< get-service-checks-from-git "kube-controller-manager" >}} -### Kubernetes Metrics Server +### Serveur de métriques Kubernetes {#kubernetes-metrics-server-1} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Metrics Server][4]. -{{< get-service-checks-from-git "kubernetes_state_core" >}} +{{< get-service-checks-from-git "kube-metrics-server" >}} -### Kubernetes Scheduler +### Planificateur Kubernetes {#kubernetes-scheduler-1} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes Scheduler][5]. {{< get-service-checks-from-git "kube-scheduler" >}} -### Kubernetes State Metrics Core +### Métriques d'état de Kubernetes core {#kubernetes-state-metrics-core-1} Pour en savoir plus, consultez la documentation relative à l'intégration [Kubernetes State Metrics Core][6]. `kubernetes_state.cronjob.complete` -: Indique si le dernier job du cronjob a échoué ou non. Tags :`kube_cronjob` `kube_namespace` (`env` `service` `version` à partir des étiquettes standard). +: Indique si le dernier travail du cronjob a échoué ou non. Étiquettes : `kube_cronjob` `kube_namespace` (`env` `service` `version` des étiquettes standard). `kubernetes_state.cronjob.on_schedule_check` -: Envoie une alerte si la date de la prochaine planification du cronjob est située dans le passé. Tags : `kube_cronjob` `kube_namespace` (`env` `service` `version` à partir des étiquettes standard). +: Alerte si le prochain horaire du cronjob est dans le passé. Étiquettes : `kube_cronjob` `kube_namespace` (`env` `service` `version` des étiquettes standard). `kubernetes_state.job.complete` -: Indique si le job a échoué ou non. Tags : `kube_job` ou `kube_cronjob` `kube_namespace` (`env` `service` `version` à partir des étiquettes standard). +: Indique si le travail a échoué ou non. Étiquettes : `kube_job` ou `kube_cronjob` `kube_namespace` (`env` `service` `version` des étiquettes standard). `kubernetes_state.node.ready` -: Indique si le nœud est prêt. Tags : `node` `condition` `status`. +: Indique si le nœud est prêt. Étiquettes : `node` `condition` `status`. `kubernetes_state.node.out_of_disk` -: Indique si le nœud n'a plus d'espace disque. Tags : `node` `condition` `status`. +: Indique si le nœud n’a plus d’espace disque. Étiquettes : `node` `condition` `status`. `kubernetes_state.node.disk_pressure` -: Indique s'il existe une pression sur le disque du nœud. Tags : `node` `condition` `status`. +: Indique si le nœud subit une pression sur le disque. Étiquettes : `node` `condition` `status`. `kubernetes_state.node.network_unavailable` -: Indique si le réseau du nœud est indisponible. Tags : `node` `condition` `status`. +: Indique si le réseau du nœud est indisponible. Étiquettes : `node` `condition` `status`. `kubernetes_state.node.memory_pressure` -: Indique s'il existe une pression de mémoire sur le réseau du nœud. Tags : `node` `condition` `status`. +: Indique si le réseau du nœud subit une pression sur la mémoire. Étiquettes : `node` `condition` `status`. -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/fr/logs/log_configuration/archive_search.md b/content/fr/logs/log_configuration/archive_search.md new file mode 100644 index 00000000000..fc1a5d31e08 --- /dev/null +++ b/content/fr/logs/log_configuration/archive_search.md @@ -0,0 +1,236 @@ +--- +description: Recherchez et analysez instantanément les journaux des archives à long + terme sans réindexation. +further_reading: +- link: /logs/explorer/ + tag: Documentation + text: Explorez les journaux dans Datadog +- link: /logs/log_configuration/archives/ + tag: Documentation + text: Configurez les archives de journaux +- link: /logs/indexes/ + tag: Documentation + text: Gérez la conservation et l'indexation des journaux +title: Recherche d'archives +--- +## Aperçu {#overview} + +La recherche d'archives vous permet d'interroger les journaux directement à partir des archives de stockage d'objets à long terme, sans les réhydrater au préalable. Utilisez la recherche d'archives pour **un accès immédiat aux journaux archivés**, pour des enquêtes, des audits ou des dépannages au-delà de votre période de conservation d'indexation. + +La recherche d'archives diffère de la réhydratation en diffusant les résultats en temps réel pendant que les données sont analysées, plutôt qu'en s'exécutant comme un travail de lot en arrière-plan. C'est plus rentable, ne facturant que pour l'analyse elle-même avec les 100 000 premiers journaux conservés temporairement sans coût, et plus rapide. + +Lorsque vous lancez une recherche + +* Les journaux s'affichent sur une page de résultats dédiée. +* Jusqu'à **100 000 journaux** sont conservés pendant **24 heures**. +* Vous pouvez optionnellement **Réhydrater les résultats** avant ou après la recherche pour les conserver plus longtemps et les rendre disponibles dans tout Datadog. + +Cette fonctionnalité prend en charge les journaux archivés via + +- [Datadog Log Management archives][1] +- [Observability Pipelines archives][2] + +### Cas d'utilisation typiques {#typical-use-cases} + +La recherche d'archives est idéale lorsque vous devez interroger des journaux stockés dans une archive externe. +Les cas d'utilisation courants incluent : + +- **Investigations d'incidents :** Récupérez les journaux liés à un `transaction_id`, `user_id` ou `session_id` qui tombent en dehors de votre conservation d'indexation.
    + *Exemple : Interrogez les journaux d'il y a trois semaines en utilisant un `user_id` spécifique, même si votre conservation indexée n'est que de 15 jours.* + +- **Analyse de sécurité :** Examinez les journaux archivés pour enquêter sur les tentatives de connexion ou d'autres activités par IP ou utilisateur.
    + *Exemple : Récupérez toutes les tentatives de connexion d'une adresse IP spécifique au cours des 12 derniers mois.* + +- **Conformité et support d'audit :** Accédez aux journaux clients ou de facturation archivés pour des audits sans réindexer de manière permanente de grands volumes de données.
    + *Exemple : Interrogez les journaux liés aux factures (`customer_id:12345`, `service:billing`) des 18 derniers mois pour un audit fiscal.* + +## Prérequis {#prerequisites} + +Avant d'utiliser la recherche d'archives : + +1. Configurez une archive externe (Amazon S3, Azure Storage ou Google Cloud Storage). Voir [Log Archives][3]. +1. Assurez-vous que Datadog a la permission de lire depuis l'archive, voir [Permissions spécifiques au cloud](#cloud-specific-permissions). + * **Amazon S3 :** Délégation de rôle IAM + * **Azure Storage :** Azure AD avec le rôle *Contributeur de données de blob de stockage* + * **Google Cloud Storage :**Compte de service avec le rôle *Visualiseur d'objets de stockage* + +### Permissions {#permissions} + +Exécuter une **Archive Search** nécessite la **`logs_write_historical_views`** permission. C'est une **permission** globale, mais les utilisateurs ne peuvent rechercher des journaux dans les archives que pour lesquelles ils disposent également de la **Logs Read Archive** permission. + +Les résultats de la recherche d'archives sont visibles par tous les utilisateurs de votre organisation qui ont accès à la fonctionnalité de recherche d'archives. Cependant, **les requêtes de restriction**, telles que les filtres de sécurité des journaux et les restrictions de données configurées dans Datadog, sont toujours appliquées sur la page de résultats et s'appliquent à tous les utilisateurs. Cela signifie que chaque utilisateur ne peut voir que les journaux qu'il est autorisé à consulter en fonction des permissions et des filtres à l'échelle de l'organisation. + +Pour plus d'informations sur les contrôles d'accès et la sécurité des journaux, consultez [Comment configurer RBAC pour les journaux][6]. + +## Lancement d'une recherche {#launching-a-search} + +1. Allez à [{{< ui >}}Logs{{< /ui >}} > {{< ui >}}Archive Search{{< /ui >}} > {{< ui >}}New Search{{< /ui >}}][4]. +2. Sélectionnez une archive et une plage horaire. +3. Entrez une requête, comme `user_id:abc123`. +4. (Optionnel) Renommez la recherche. +5. Sous {{< ui >}}Mode{{< /ui >}}, choisissez le type de recherche que vous souhaitez effectuer. + - Choisissez {{< ui >}}Search{{< /ui >}} pour récupérer les résultats en temps réel, avec jusqu'à 100 000 journaux conservés pendant 24 heures. + - Choisissez {{< ui >}}Search & Rehydration{{< /ui >}} pour réhydrater les résultats pour un accès complet à la plateforme et une conservation personnalisée. +6. Cliquez sur {{< ui >}}Search{{< /ui >}}. + +Les journaux s'affichent sur la page des résultats en temps réel. Une barre de progression indique l'état de l'analyse, et vous pouvez annuler la recherche à tout moment. + +## Aperçu de la requête {#query-preview} + +Lorsque vous effectuez une recherche, Datadog télécharge un petit échantillon (jusqu'à 1 000 journaux) de l'archive et de la plage horaire sélectionnées. +Utilisez cet aperçu pour vérifier la syntaxe de la requête, inspecter la structure des journaux et ajuster les filtres. + +**Remarque** : L'échantillon d'aperçu peut ne pas inclure les journaux qui correspondent à votre requête. C'est uniquement pour validation et exploration. + +## Voir et conserver les résultats {#view-and-retain-results} + +Par défaut, vous êtes facturé uniquement pour l'analyse. Les 100 000 premiers journaux sont stockés temporairement (24 heures) sans frais et accessibles directement depuis la page des résultats de recherche d'archive, où vous pouvez cliquer sur n'importe quel journal pour voir ses détails complets et son contexte. Après 24 heures, les résultats expirent automatiquement. + +Pour conserver plus de données ou accéder aux journaux dans d'autres produits Datadog, choisissez l'une des options suivantes : + +- **Réhydratez avant le lancement** : + Conservez plus de 100 000 journaux, définissez une période de conservation personnalisée (par exemple, 7, 15 ou 30 jours) et accédez immédiatement aux résultats sur la plateforme. +- **Réhydratez après l'achèvement** : + Pendant la fenêtre de 24 heures, vous pouvez réhydrater les résultats pour prolonger la conservation et les rendre disponibles dans Log Explorer, Dashboards et Notebooks. + +## Analysez les résultats {#analyze-results} + +Après avoir lancé une recherche, les journaux s'affichent sur la page {{< ui >}}Archive Search Results{{< /ui >}}. Depuis cette page, vous pouvez utiliser des filtres pour affiner les résultats et ouvrir des détails spécifiques des journaux pour enquêter sur les problèmes. + +### Limitations {#limitations} + +Bien que la recherche d'archives donne accès aux journaux archivés, elle a des capacités analytiques limitées par rapport aux journaux indexés : + +- **Pas d'agrégations ni d'analyses** : Vous ne pouvez pas exécuter d'agrégations, créer des visualisations ou effectuer des analyses avancées directement sur les résultats de la recherche d'archives. +- **Page des résultats uniquement** : Les résultats de la recherche d'archives ne sont disponibles que sur la page des résultats dédiée et ne peuvent pas être interrogés depuis d'autres parties de la plateforme Datadog (comme Dashboards, Notebooks ou Log Explorer). + +Pour activer des analyses complètes et une visibilité sur l'ensemble de la plateforme, vous devez réhydrater les résultats de recherche (soit avant de lancer la recherche, soit après l'achèvement dans la fenêtre de 24 heures). Lorsque réhydratés, vos journaux deviennent disponibles dans tous les produits Datadog avec des capacités complètes d'agrégation, de visualisation et d'analytique. + +## Gérer les recherches {#manage-searches} + + + +Depuis le [{{< ui >}}Archive Search list view{{< /ui >}}][5], vous pouvez : + +- **Annuler** une recherche en cours : préserve les journaux déjà récupérés. +- **Dupliquer** une recherche : ouvre le formulaire de création de recherche d'archive avec les mêmes paramètres pour des relances efficaces. + +## Performance de recherche et optimisation {#search-performance-and-optimization} + +La recherche d'archive analyse les fichiers journaux archivés dans votre plage horaire sélectionnée. **Le volume de scan** fait référence à la taille totale des fichiers lus lors d'une requête. De grands volumes de scan peuvent augmenter à la fois le temps de recherche et les coûts de sortie dans le cloud. + +Pour optimiser la performance et réduire les coûts : +* **Réduisez la plage horaire :** Limitez votre recherche à la plus petite fenêtre possible. +* **Définir les limites de scan :** Les administrateurs avec `Logs Write Archives` des permissions peuvent définir une taille de scan maximale par archive dans le {{< ui >}}Settings{{< /ui >}}. +* **Utiliser les attributs de partition (Aperçu) :** La manière la plus efficace d'accélérer les recherches sur des données à faible cardinalité comme `service`, `env` ou `status`. Datadog ignore les partitions entières qui ne correspondent pas à votre requête. +* **Utiliser les attributs de recherche (Aperçu) :** La manière la plus efficace d'accélérer les recherches sur des données à haute cardinalité comme `trace_id` ou `user_id`. +* **Utiliser la compression zstd :** Les archives utilisent par défaut la compression zstd, ce qui réduit le volume de scan et les coûts de sortie dans le cloud par rapport à gzip. Si votre archive utilise gzip, consultez [Archives de journaux][9] pour passer à zstd. + +**Remarque** : Seuls les journaux archivés après la configuration des attributs de partition ou de recherche bénéficient des recherches accélérées. Les journaux archivés avant cette configuration ne sont pas affectés. + + +### Accélérez les recherches avec les attributs de partition {#accelerate-searches-with-partition-attributes} + +Vous pouvez configurer **les attributs de partition** sur vos archives pour regrouper les journaux par valeurs de champs à faible cardinalité au moment de l'écriture. Utilisez des attributs comme `service`, `source`, `env` ou `status`. + +Les journaux qui partagent les mêmes valeurs de partition sont co-localisés dans le stockage. Lorsque vous effectuez une recherche, Datadog évalue votre requête par rapport aux métadonnées de partition et ignore les partitions qui ne correspondent pas, réduisant ainsi le volume total de données analysées. + +Pour configurer cela, consultez la documentation sur les [Archives de journaux][8]. + +### Accélérez les recherches avec Lookup Attributes {#accelerate-searches-with-lookup-attributes} + +Vous pouvez configurer les **Lookup Attributes** sur vos archives pour ignorer les blocs de données non pertinents dans votre bucket de stockage. Par exemple, si vous configurez `trace_id` ou `user_id`, vous réduisez considérablement le volume de données analysées et diminuez les frais de transfert sortant de votre fournisseur de cloud. + +Pour configurer cela, consultez la documentation sur les [Archives de journaux][7]. + +### Attributs de partition vs. Attributs de recherche {#partition-vs-lookup-attributes} + +| | Partition | Lookup | +|---|---|---| +| Cardinalité | Faible (dizaines à centaines) | Élevée (millions de valeurs) | +| Attributs typiques | `service`, `source`, `env`, `status` | `trace_id`, `container_id`, `user_id`, `transaction_id` | +| Comment cela aide | Élimine des partitions entières de l'analyse | Identifie des entrées de journal individuelles | +| Mieux utilisé pour | Filtrage large par environnement/service | Investigations ad hoc sur des identifiants spécifiques | + +Pour des performances de recherche maximales, combinez les deux : les attributs de partition restreignent le champ de recherche aux segments de données pertinents, tandis que les Lookup attributes vous permettent de trouver instantanément des journaux spécifiques au sein de ces segments. + +### Limite par défaut pour la Réhydratation des résultats {#default-limit-for-rehydration-of-results} + +Les administrateurs ayant la `Logs Write Archives` permission peuvent configurer des contrôles par défaut pour garantir une utilisation efficace de {{< ui >}}Archive Search{{< /ui >}} au sein des équipes. Cliquez {{< ui >}}Settings{{< /ui >}} pour configurer : + +- {{< ui >}}Default Rehydration volume limit{{< /ui >}} : Définissez le nombre par défaut de journaux (en millions) pouvant être réhydratés par recherche d'archive en mode {{< ui >}}Search & Rehydration{{< /ui >}}. Si la limite est atteinte, la recherche d'archive s'arrête automatiquement, mais les journaux déjà réhydratés restent accessibles. Les administrateurs peuvent également autoriser que cette limite soit modifiée lors de la création d'une recherche d'archive. + +- {{< ui >}}Rehydration retention periods{{< /ui >}} : Choisissez quelles périodes de conservation sont disponibles lors de la réhydratation des résultats. Seules les durées sélectionnées (par exemple, 3, 7, 15, 30, 45, 60, 90 ou 180 jours) apparaissent dans le menu déroulant lors de la sélection de la durée pendant laquelle les journaux doivent rester recherchables dans Datadog. + +## Autorisations spécifiques au cloud {#cloud-specific-permissions} + +Datadog nécessite l'autorisation de lire vos archives pour rechercher du contenu à partir de celles-ci. Cette autorisation peut être modifiée à tout moment. + +{{< tabs >}} +{{% tab "Amazon S3" %}} + +Pour réhydrater les événements de journal à partir de vos archives, Datadog utilise le rôle IAM dans votre compte AWS que vous avez configuré pour [votre intégration AWS][1]. Si vous n'avez pas encore créé ce rôle, [suivez ces étapes pour le faire][2]. Pour permettre à ce rôle de réhydrater les événements de journal à partir de vos archives, ajoutez la déclaration d'autorisation suivante à ses politiques IAM. Assurez-vous de modifier les noms de bucket et, si vous le souhaitez, de spécifier les chemins contenant vos archives de journaux. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "DatadogUploadAndRehydrateLogArchives", + "Effect": "Allow", + "Action": ["s3:PutObject", "s3:GetObject"], + "Resource": [ + "arn:aws:s3:::/*", + "arn:aws:s3:::/*" + ] + }, + { + "Sid": "DatadogRehydrateLogArchivesListBucket", + "Effect": "Allow", + "Action": "s3:ListBucket", + "Resource": [ + "arn:aws:s3:::", + "arn:aws:s3:::" + ] + } + ] +} +``` + +### Ajout de la délégation de rôle aux archives S3 {#adding-role-delegation-to-s3-archives} + +Datadog ne prend en charge que la recherche à partir d'archives qui ont été configurées pour utiliser la délégation de rôle afin d'accorder l'accès. Après avoir modifié votre rôle IAM Datadog pour inclure la politique IAM ci-dessus, assurez-vous que chaque archive dans votre [page de configuration des archives][3] a la bonne combinaison de compte AWS + rôle. + +[1]: https://app.datadoghq.com/account/settings#integrations/amazon-web-services +[2]: /fr/integrations/amazon-web-services/#aws-iam-permissions +[3]: https://app.datadoghq.com/logs/pipelines/archives +{{% /tab %}} + +{{% tab "Stockage Azure" %}} + +Datadog utilise un groupe Azure AD avec le rôle de contributeur de données de blob de stockage limité au compte de stockage de vos archives pour rechercher des événements de journal. Vous pouvez accorder ce rôle à votre compte de service Datadog depuis la page de contrôle d'accès (IAM) de votre compte de stockage en [attribuant le rôle de contributeur de données de blob de stockage à votre application d'intégration Datadog][1]. + +[1]: /fr/logs/archives/?tab=azurestorage#create-and-configure-a-storage-bucket +{{% /tab %}} + +{{% tab "Stockage Google Cloud" %}} + +Pour rechercher des événements de journal à partir de vos archives, Datadog utilise un compte de service avec le rôle de visualiseur d'objets de stockage. Vous pouvez accorder ce rôle à votre compte de service Datadog depuis la [page d'administration IAM de Google Cloud][1] en modifiant les autorisations du compte de service, en ajoutant un autre rôle, puis en sélectionnant {{< ui >}}Storage{{< /ui >}} > {{< ui >}}Storage Object Viewer{{< /ui >}}. + +[1]: https://console.cloud.google.com/iam-admin/iam +{{% /tab %}} +{{< /tabs >}} + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/logs/log_configuration/archives/?tab=awss3 +[2]: /fr/observability_pipelines/destinations/datadog_archives/?tab=docker +[3]: /fr/logs/log_configuration/archives/?tab=awss3 +[4]: https://app.datadoghq.com/logs/archive-search/new +[5]: https://app.datadoghq.com/logs/archive-search/ +[6]: /fr/logs/guide/logs-rbac/?tab=ui#restrict-access-to-logs +[7]: /fr/logs/log_configuration/archives/?tab=awss3#archive-search-lookup-attribute +[8]: /fr/logs/log_configuration/archives/?tab=awss3#archive-search-partition-attribute +[9]: /fr/logs/log_configuration/archives/?tab=awss3#compression \ No newline at end of file diff --git a/content/fr/network_monitoring/devices/setup.md b/content/fr/network_monitoring/devices/setup.md new file mode 100644 index 00000000000..9efbf46a368 --- /dev/null +++ b/content/fr/network_monitoring/devices/setup.md @@ -0,0 +1,155 @@ +--- +aliases: +- /fr/network_monitoring/devices/getting_started/ +description: Commencez avec vos appareils connectés au réseau, tels que les routeurs, + les commutateurs, les serveurs et les pare-feu. +further_reading: +- link: /network_monitoring/devices/supported_devices + tag: doc + text: Appareils NDM pris en charge +- link: network_monitoring/devices/data/ + tag: Doc + text: Données NDM recueillies +- link: https://www.datadoghq.com/blog/diagnose-network-performance-with-snmp-trap-monitoring/ + tag: Blog + text: Surveiller et résoudre des problèmes de performances réseau avec des interruptions + SNMP +title: Implémentation +--- +## Aperçu {#overview} + +La surveillance des appareils réseau vous aide à obtenir des informations sur la santé et les performances de vos routeurs, commutateurs et pare-feu sur site. Après l'installation de l'Agent Datadog sur un hôte ayant accès au réseau, l'Agent détecte automatiquement les appareils réseau et collecte des métriques immédiatement. + +Ce guide couvre la configuration de la surveillance des appareils réseau sur vos hôtes, l'enrichissement des balises des appareils, la configuration et l'affichage des profils des appareils, l'affichage des données dans la surveillance NetFlow, et la validation des données dans les tableaux de bord fournis et la carte de topologie des appareils. + +{{< img src="network_device_monitoring/getting_started/ndm_landing_page_2.png" alt="La page d'accueil de la surveillance des appareils réseau, montrant des graphiques et des interfaces." style="width:100%;" >}} + +## Comment ça fonctionne {#how-it-works} + +Le diagramme suivant illustre le flux de données entre Syslog, les traps SNMP et les informations NetFlow. Les appareils envoient les informations pertinentes à l'Agent Datadog via les ports comme indiqué dans le diagramme (les ports peuvent être modifiés si nécessaire par configuration dans l'Agent). Pour les intégrations basées sur l'API, l'Agent Datadog se connecte aux contrôleurs ou gestionnaires de logiciels des fournisseurs d'appareils réseau sur site ou dans le cloud selon des instructions spécifiques `https` d'intégration API par fournisseur. L'Agent Datadog, configuré avec NDM et déployé sur site ou dans le cloud, consolide toutes les données collectées relatives aux appareils et au réseau, puis les envoie à Datadog via HTTPS sur le port `443`. Cela fournit une observabilité unifiée et complète des métriques, des journaux, des traces, des moniteurs et des tableaux de bord. + + {{< img src="network_device_monitoring/getting_started/syslog_trap_netflow.png" alt="Diagramme NDM montrant le flux pour la collecte de Syslog, de traps et de NetFlow." style="width:90%;" >}} + +## Prochaines étapes {#next-steps} + +Suivez les instructions ci-dessous pour configurer Datadog afin de surveiller vos appareils réseau. + +## Prérequis {#prerequisites} + +### Installer l'Agent {#install-the-agent} + +Accédez à la [page d'installation de l'Agent][1] et installez le [Datadog Agent][2] sur votre hôte (généralement un serveur qui n'est **pas** l'appareil surveillé).
    + +{{< img src="network_device_monitoring/getting_started/ndm_install_agent.png" alt="La page de configuration de l'Agent, mettant en avant l'installation sur Ubuntu." style="width:100%;" >}} + +## Configuration {#setup} + +### Haute Disponibilité {#high-availability} + +{{< site-region region="gov,gov2" >}} +
    Le support de la Haute Disponibilité du Datadog Agent n'est pas pris en charge pour votre site Datadog sélectionné ({{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +Le support de la Haute Disponibilité (HA) du Datadog Agent dans la surveillance des appareils réseau vous permet de désigner un Agent actif et un Agent de secours, garantissant un basculement automatique en cas de problème de l'Agent actif. Cette configuration élimine l'Agent comme point de défaillance unique, maintenant une surveillance continue pendant des incidents inattendus ou une maintenance planifiée, tels que des mises à jour du système d'exploitation et des mises à niveau de l'Agent. + +Vous pouvez configurer des Agents actifs et de secours pour fonctionner comme une paire HA dans NDM. Si l'Agent actif tombe en panne, l'Agent de secours prend le relais dans les 90 secondes, devenant le nouvel Agent actif. De plus, vous pouvez désigner un Agent actif préféré, permettant à NDM d’y revenir automatiquement une fois qu’il est de nouveau disponible. Cette fonctionnalité permet un changement proactif d'Agent avant la maintenance programmée. + +Pour plus d'informations, consultez le [support de la Haute Disponibilité du Datadog Agent][20]. + +### Configuration {#configuration} + +Pour commencer à surveiller vos appareils réseau, activez la surveillance SNMP en utilisant l’une des méthodes suivantes : + +[Appareils individuels][3] +: Configurez la surveillance SNMP sur vos appareils individuels. + +[Autodiscovery][4] +: Configurez la surveillance SNMP en utilisant l'Autodécouverte. + +[Ping][5] +: Configurez le contrôle SNMP pour envoyer des pings ICMP à vos appareils. + +[Syslog][22] +: Configurez vos appareils pour envoyer des messages Syslog. + +[Surveillance VPN][21] +: Configurez la surveillance VPN pour commencer à surveiller les tunnels VPN de vos appareils. + +### Enrichissez les appareils réseau avec des étiquettes {#enrich-network-devices-with-tags} + +Après avoir configuré NDM sur vos appareils, vous pouvez les enrichir davantage en ajoutant des étiquettes d'appareil réseau en utilisant les méthodes suivantes : + +[Datadog Agent][2] +: L'Agent peut collecter des étiquettes d'appareil lors de la configuration de [appareils individuels][3] ou avec [Autodécouverte][4]. + +[Profils d'appareil][6] +: Configurez l'Agent pour collecter et personnaliser des métriques et des étiquettes spécifiques en créant des profils d'appareil directement dans l'application. + +[Intégration ServiceNow][7] +: Enrichissez dynamiquement les appareils réseau surveillés par Datadog Network Device Monitoring avec des données définies dans la CMDB (Base de données de gestion de configuration) de ServiceNow. + +[API de surveillance des appareils réseau](#use-the-network-api) +: Utilisez l'API de surveillance des appareils réseau pour ajouter des étiquettes à vos appareils réseau de manière programmatique. + +### Personnalisez les métriques et les étiquettes {#customize-metrics-and-tags} + +Personnalisez les métriques et les étiquettes sur vos appareils en consultant la page [Appareils pris en charge][9] pour voir les profils d'appareil prêts à l'emploi. Si vous souhaitez modifier ou ajouter plus de métriques, les options suivantes sont disponibles : + +[Profils d'appareil][10] +: Modifiez directement les métriques et les étiquettes dans le fichier de l'Agent Datadog `yaml` en utilisant des profils d'appareil. + +[Création de profils basée sur l'interface graphique][6] +: Profitez de l'expérience d'intégration des appareils basée sur l'interface graphique de Datadog Network Monitoring, où vous pouvez ajouter des métriques et des étiquettes personnalisées à vos appareils. + +### Surveillance NetFlow {#netflow-monitoring} + +Configurez [la surveillance NetFlow][11] pour visualiser et surveiller vos enregistrements de flux provenant de vos appareils compatibles NetFlow. + +{{< img src="network_device_monitoring/netflow/home.png" alt="La page de surveillance NetFlow contenant des onglets pour les principales sources, destinations, protocoles, ports sources, ports de destination et tendances des appareils" style="width:100%;" >}} + +## Validez vos données {#validate-your-data} + +- Commencez à surveiller l'ensemble de votre infrastructure réseau sur la page [Appareils Réseau][12]. +- Consultez les métriques collectées sur les tableaux de bord prêts à l'emploi de Datadog : + - [Aperçu de tous les appareils surveillés][13] + - [Performance des interfaces de vos appareils réseau][14] +- Utilisez la [Carte de Topologie des Appareils Réseau][15] pour identifier et résoudre les problèmes de vos appareils. + +## Utilisez l'API Réseau {#use-the-network-api} + +- Utilisez l'[API Réseau][8] pour extraire les informations suivantes sur vos appareils réseau : + * [Obtenez la liste des interfaces de vos appareils.][16] + - [Obtenez la liste des étiquettes de vos appareils.][17] + - [Mettez à jour la liste des étiquettes de vos appareils.][18] + +## Dépannage {#troubleshooting} + +- Consultez la page [Dépannage des Appareils Réseau][19] pour plus d'informations sur le dépannage de vos problèmes NDM. + + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /fr/agent +[3]: /fr/network_monitoring/devices/snmp_metrics/?tab=snmpv2#monitoring-individual-devices +[4]: /fr/network_monitoring/devices/snmp_metrics/#autodiscovery +[5]: /fr/network_monitoring/devices/ping +[6]: /fr/network_monitoring/devices/guide/device_profiles/ +[7]: https://docs.datadoghq.com/fr/integrations/servicenow/#network-device-tagging +[8]: /fr/api/latest/network-device-monitoring/ +[9]: /fr/network_monitoring/devices/supported_devices +[10]: /fr/network_monitoring/devices/profiles +[11]: /fr/network_monitoring/netflow/ +[12]: https://app.datadoghq.com/devices +[13]: https://app.datadoghq.com/dash/integration/30409/datacenter-overview +[14]: https://app.datadoghq.com/dash/integration/30417/interface-performance +[15]: /fr/network_monitoring/devices/device_topology_map +[16]: /fr/api/latest/network-device-monitoring/#get-the-list-of-interfaces-of-the-device +[17]: /fr/api/latest/network-device-monitoring/#get-the-list-of-tags-for-a-device +[18]: /fr/api/latest/network-device-monitoring/#update-the-tags-for-a-device +[19]: /fr/network_monitoring/devices/troubleshooting +[20]: /fr/integrations/guide/high_availability +[21]: /fr/network_monitoring/devices/vpn_monitoring +[22]: /fr/network_monitoring/devices/syslog \ No newline at end of file diff --git a/content/fr/network_monitoring/netflow/_index.md b/content/fr/network_monitoring/netflow/_index.md new file mode 100644 index 00000000000..7bf94ed8000 --- /dev/null +++ b/content/fr/network_monitoring/netflow/_index.md @@ -0,0 +1,373 @@ +--- +aliases: +- /fr/network_monitoring/devices/netflow/ +further_reading: +- link: /network_monitoring/devices/profiles + tag: Documentation + text: Utiliser des profils avec le Network Device Monitoring +- link: https://www.datadoghq.com/blog/monitor-netflow-with-datadog/ + tag: Blog + text: Surveillez les données de trafic NetFlow avec Datadog +- link: https://www.datadoghq.com/blog/diagnose-network-performance-with-snmp-trap-monitoring/ + tag: Blog + text: Surveiller et résoudre des problèmes de performances réseau avec des interruptions + SNMP +title: NetFlow Monitoring +--- +## Aperçu {#overview} + +La vue NetFlow dans la surveillance des dispositifs réseau offre une visibilité sur les flux de trafic réseau collectés à partir des dispositifs qui exportent des données de flux (par exemple, des routeurs, des pare-feu ou des commutateurs). Vous pouvez analyser le volume de trafic, identifier les principaux émetteurs et comprendre comment les données circulent dans votre réseau. + +La vue NetFlow affiche des métriques de trafic agrégées par dispositif et par interface. Utilisez-la pour identifier quels dispositifs ou interfaces consomment le plus de bande passante, génèrent le plus de paquets ou contribuent aux pics de trafic. + +{{< img src="network_device_monitoring/netflow/netflow.png" alt="La page de surveillance NetFlow contient une légende repliable pour le volume de trafic, la santé des dispositifs, les flux et plus encore." style="width:100%;" >}} + +## Navigation latérale {#side-navigation} + +Utilisez la navigation à gauche pour explorer d'autres vues NetFlow : + +- **Volume de trafic** : Métriques de flux globales par dispositif et par interface. +- **Santé des dispositifs** : État et utilisation des dispositifs surveillés. +- **Flux** : Enregistrements de flux individuels détaillés. +- **Conversations** : Paires source-destination agrégées. +- **Systèmes autonomes** : Données de flux regroupées par numéros de systèmes autonomes (ASN). +- **Géolocalisation IP** : Données de flux regroupées par origine/destination géographique. +- **Ports source / Ports de destination / Protocoles / Drapeaux** : Répartition du trafic par métadonnées de paquets. + +## Installation {#installation} + +Pour utiliser la surveillance NetFlow avec la surveillance des dispositifs réseau, assurez-vous d'utiliser la version [Agent][1] 7.45 ou plus récente. + +**Remarque :** La configuration de [la collecte de métriques à partir de la surveillance des dispositifs réseau][2] n'est pas une exigence pour l'envoi de données NetFlow, bien qu'elle soit fortement recommandée car ces données supplémentaires peuvent être utilisées pour enrichir vos enregistrements de flux avec des informations telles que le nom du dispositif, le modèle et le fournisseur, ainsi que le nom de l'interface entrante/sortante. + +## Configuration {#configuration} + +Pour configurer vos dispositifs afin d'envoyer du trafic NetFlow, jFlow, sFlow ou IPFIX au serveur Agent NetFlow, vos dispositifs doivent être configurés pour envoyer le trafic à l'adresse IP sur laquelle l'Agent Datadog est installé, spécifiquement les `flow_type` et `port`. + +1. Modifiez votre fichier de configuration de l'Agent [`datadog.yaml`][3] pour activer NetFlow : + +```yaml +network_devices: + netflow: + enabled: true + listeners: + - flow_type: netflow9 # choices: netflow5, netflow9, ipfix, sflow5 + port: 2055 # devices need to be configured to the same port number + - flow_type: netflow5 + port: 2056 + - flow_type: ipfix + port: 4739 + - flow_type: sflow5 + port: 6343 + ## Set to true to enable reverse DNS enrichment of private source and destination IP addresses in NetFlow records + reverse_dns_enrichment_enabled: false +``` + +2. Après avoir enregistré vos modifications, [redémarrez l'Agent][4]. + + **Remarque** : Assurez-vous que vos [règles de pare-feu][9] permettent le trafic UDP entrant sur les ports configurés. + +## Agrégation {#aggregation} + +L'Agent Datadog agrège automatiquement les données reçues dans NetFlow pour limiter le nombre d'enregistrements envoyés à la plateforme tout en maintenant la plupart des informations. Par défaut, les enregistrements de flux ayant les mêmes identifiants, tels que `source`, `destination address`, `port` et `protocol`, sont agrégés ensemble par intervalles de cinq minutes. De plus, l'Agent Datadog peut détecter les ports éphémères et les supprimer. En conséquence, vous pouvez voir des flux avec `port:*`. + +## Enrichissement {#enrichment} + +Vos données NetFlow sont traitées par le backend Datadog et enrichies avec les métadonnées disponibles de vos appareils et interfaces. L'enrichissement est basé sur l'adresse IP de l'exportateur NetFlow et les index des interfaces. Pour désambiguïser les collisions possibles entre les adresses IP privées réutilisées, vous pouvez configurer un `namespace` différent pour chaque fichier de configuration d'Agent (avec le paramètre `network_devices.namespace`). + +Si l'adresse IP de l'exportateur NetFlow correspond à l'une des adresses IP du dispositif, mais pas à celle configurée dans l'intégration SNMP, Datadog tente de localiser le dispositif auquel appartient l'adresse IP de l'exportateur et enrichit vos données NetFlow avec celle-ci tant que la correspondance est unique. + +### Enrichissement IP du fournisseur de cloud {#cloud-provider-ip-enrichment} + +Datadog enrichit les IP avec le service et la région du fournisseur de cloud public pour les adresses IPv4, afin que vous puissiez filtrer les enregistrements de flux d'un service et d'une région spécifiques. + +{{< img src="network_device_monitoring/netflow/netflow_cloud_provider_enrichment_2.png" alt="Menu de filtre Netflow affichant le nom du fournisseur de cloud, la région et le service" width="100%" >}} + +### Enrichissement des ports {#port-enrichment} + +Datadog enrichit les ports dans NetFlow avec les données de l'IANA (Internet Assigned Numbers Authority) pour résoudre les mappages de ports bien connus (comme Postgres sur 5432 et HTTPS sur 443). + +### Enrichissement des ports personnalisés {#custom-port-enrichment} + +Vous pouvez également ajouter vos propres enrichissements personnalisés pour mapper les ports et les protocoles à des applications spécifiques (par exemple, si un service personnalisé fonctionne sur un port spécifique). Cela facilite l'interprétation et l'interrogation des données NetFlow par les ingénieurs réseau et leurs équipes avec des noms lisibles par l'homme. + +Dans l'onglet **Configuration** de NetFlow, cliquez sur **+ Ajouter un enrichissement** pour télécharger le fichier CSV contenant vos enrichissements personnalisés. + +{{< img src="network_device_monitoring/netflow/new_enrichment_2.png" alt="La fenêtre modale de mappage des nouveaux enrichissements dans l'onglet de configuration de NetFlow" width="100%" >}} + +### Enrichissement IP personnalisé {#custom-ip-enrichment} + +Vous pouvez également ajouter vos propres enrichissements personnalisés pour mapper les IP et les CIDR à des tags personnalisés (par exemple, pour catégoriser les services fonctionnant sur des adresses IP spécifiques). Cela facilite l'interprétation et l'interrogation des données NetFlow par les ingénieurs réseau et leurs équipes avec des noms lisibles par l'homme. + +Depuis la page des paramètres [**Enrichissement**][10], cliquez sur **+ Ajouter un enrichissement** pour ajouter des mappages manuellement ou télécharger un fichier CSV pour ajouter des mappages en masse. + +### Enrichissement IP privé DNS inversé {#reverse-dns-private-ip-enrichment} + +Activez l'enrichissement IP privé DNS inversé pour effectuer des recherches DNS pour les noms d'hôtes associés aux adresses IP source ou destination. Lorsqu'il est activé, l'Agent effectue des recherches DNS inversées sur les IP source et destination dans les plages d'adresses privées, enrichissant les enregistrements NetFlow avec les noms d'hôtes correspondants. + +Par [défaut][7], l'enrichissement IP DNS inversé dans votre fichier `datadog.yaml` est désactivé. Pour activer, consultez la section [Configuration](#configuration) de cette page. + +Recherchez **DNS** dans le menu **+ Filtrer** pour localiser les flux associés à l'enrichissement IP DNS inversé : + +{{< img src="network_device_monitoring/netflow/dns_ip_enrichmen_2.png" alt="Menu de filtrage amélioré pour afficher les facettes de destination et de source DNS inversé" width="100%" >}} + +**Remarque** : Les entrées DNS inversées sont mises en cache et soumises à une limitation de débit pour minimiser les requêtes DNS et réduire la charge sur les serveurs DNS. Pour plus d'options de configuration, y compris la modification de la mise en cache par défaut et de la limitation de débit, consultez le [fichier de configuration complet][8]. + +## Détails IP {#ip-details} + +Dans la vue **Conversations**, vous pouvez voir l'adresse IP publique de l'adresse IP de destination. Survolez l'IP pour afficher des métadonnées riches sur l'IP et un lien vers **Voir les connexions réseau associées** où vous pouvez inspecter la connectivité plus en détail. + +{{< img src="network_device_monitoring/netflow/NetFlow_IP_pill.png" alt="Survolez une adresse IP pour afficher les détails de l'IP et voir les connexions réseau associées." width="100%" >}} + +## Diagramme de flux {#flow-diagram} + +Vous pouvez visualiser les flux dans la surveillance NetFlow en cliquant sur le menu **Flux** et en survolant un flux de la liste pour voir des informations supplémentaires sur l'adresse IP source, le nom de l'interface d'entrée, le nom de l'appareil et l'adresse IP de destination à travers les connexions réseau associées. + +{{< img src="network_device_monitoring/netflow/flows.png" alt="Survolez un flux agrégé d'un appareil émettant du netflow pour accéder aux connexions réseau associées" width="100%" >}} + +## Moniteur NetFlow {#netflow-monitor} + +Cliquez sur l'icône **Créer un moniteur** depuis n'importe quelle vue pour créer un [moniteur NetFlow][6]. Lors de la création du moniteur, considérez les champs suivants par rapport à l'adresse IP source ou à l'adresse IP de destination du point de vue de l'appareil. Ces champs fournissent des informations sur les modèles de trafic réseau et aident à optimiser les performances et la sécurité. + +{{< img src="network_device_monitoring/netflow/create_monitor.png" alt="Vue des flux dans la surveillance NetFlow avec le lien de création de moniteur mis en évidence." width="100%" >}} + +### Informations sur l'interface {#interface-information} + +Les champs suivants représentent des détails sur les interfaces d'entrée et de sortie. + +| Nom du champ | Description du champ | +|---|---| +| Alias de l'interface de sortie | Alias de l'interface de sortie. | +| Index de l'interface de sortie | Index de l'interface de sortie. | +| Nom de l'interface de sortie | Nom de l'interface de sortie. | +| Alias de l'interface d'entrée | Alias de l'interface d'entrée. | +| Index de l'interface d'entrée | Index de l'interface d'entrée. | +| Nom de l'interface d'entrée | Nom de l'interface d'entrée. | + +### Informations sur le dispositif {#device-information} + +Les champs suivants représentent des détails liés au dispositif générant des enregistrements NetFlow. + +| Nom du champ | Description du champ | +|---|---| +| Adresse IP du dispositif | | +| Adresse IP de l'exportateur | Adresse IP à partir de laquelle proviennent les paquets NetFlow. | +| Modèle de l'appareil | Modèle de l'appareil. | +| Nom de l'appareil | Nom de l'appareil. | +| Espace de noms de l'appareil | Espace de noms de l'appareil. | +| Fournisseur de l'appareil | Fournisseur de l'appareil. | + +### Détails du flux {#flow-details} + +Les champs suivants représentent les caractéristiques du flux réseau. + +| Nom du champ | Description du champ | +|---|---| +| Direction | Indique si le flux est entrant ou sortant. | +| Heure de début | Horodatage du premier paquet réseau entre les adresses IP source et destination. | +| Heure de fin | Horodatage du dernier paquet réseau entre les adresses IP source et destination. | +| Type d’Ether | Type d’encapsulation de trame Ethernet (IPv4 ou IPv6). | +| Type de flux | Type de format de données NetFlow (IPFIX, sFlow5, NetFlow5, NetFlow9 ou Inconnu). | +| Protocole IP | Protocole utilisé pour la communication (tel que ICMP, TCP ou UDP). | +| Adresse IP du prochain saut | Adresse IP du prochain saut dans le chemin réseau. | +| Drapeau TCP | Union de tous les drapeaux TCP observés pendant la durée du flux. | +| Octets | Nombre total d'octets transférés. | +| Paquets | Nombre total de paquets transférés. | + +En plus des champs, vous pouvez également utiliser des facettes prêtes à l'emploi pour commencer à analyser les modèles de trafic en fonction des adresses IP de destination et de source NetFlow. + +### Facettes IP de destination NetFlow {#netflow-destination-ip-facets} + +| Nom de la facette | Description de la facette | +|---|---| +| Domaine AS de destination | Le domaine associé au Système Autonome (AS) auquel appartient l'IP de destination. | +| Nom AS de destination | Le nom du Système Autonome (AS) auquel appartient l'IP de destination. | +| Numéro AS de destination | Le numéro attribué au Système Autonome (AS) auquel appartient l'IP de destination. | +| Route AS de destination | Les informations de route associées au Système Autonome (AS) auquel appartient l'IP de destination. | +| Type AS de destination | Le type de Système Autonome (AS) auquel appartient l'IP de destination (tel que transit, client, pair). | +| Nom de l'application de destination | Le nom de l'application associée à l'IP de destination. | +| Nom de la ville de destination | Le nom de la ville associée à l'IP de destination. | +| Nom du fournisseur de cloud de destination | Le nom du fournisseur de cloud associé à l'IP de destination. | +| Région du fournisseur de cloud de destination | La région du fournisseur de cloud associée à l'IP de destination. | +| Service du fournisseur de cloud de destination | Le service fourni par le fournisseur de cloud associé à l'IP de destination. | +| Code de continent de destination | Le code représentant le continent associé à l'IP de destination. | +| Nom de continent de destination | Le nom du continent associé à l'IP de destination. | +| Code ISO du pays de destination | Le code ISO représentant le pays associé à l'IP de destination. | +| Nom du pays de destination | Le nom du pays associé à l'IP de destination. | +| IP de destination | L'adresse IP de destination. | +| Latitude de destination | La coordonnée de latitude associée à l'IP de destination. | +| Longitude de destination | La coordonnée de longitude associée à l'IP de destination. | +| MAC de destination | L'adresse de contrôle d'accès au média (MAC) associée à l'IP de destination. | +| Masque de destination | Le masque de sous-réseau associé à l'adresse IP de destination. | +| Port de destination | Le numéro de port de destination. | +| Nom d'hôte DNS inverse de destination | Le nom d'hôte DNS associé à l'adresse IP de destination. | +| Code ISO de la sous-division de destination | Le code ISO représentant la sous-division (comme l'état ou la province) associée à l'adresse IP de destination. | +| Nom de la sous-division de destination | Le nom de la sous-division (comme l'état ou la province) associée à l'adresse IP de destination. | +| Fuseau horaire de destination | Le fuseau horaire associé à l'adresse IP de destination. | + +### Facettes de l'IP Source NetFlow {#netflow-source-ip-facets} + +| Nom de la facette | Description de la facette | +|---|---| +| Domaine AS de source | Le domaine associé au Système Autonome (AS) auquel appartient l'adresse IP source. | +| Nom AS de source | Le nom du Système Autonome (AS) auquel appartient l'adresse IP source. | +| Numéro AS de source | Le numéro attribué au Système Autonome (AS) auquel appartient l'adresse IP source. | +| Route AS de source | Les informations de route associées au Système Autonome (AS) auquel appartient l'adresse IP source. | +| Type AS de source | Le type de Système Autonome (AS) auquel appartient l'adresse IP source (comme transit, client, pair). | +| Nom de l'application de source | Le nom de l'application associée à l'adresse IP source. | +| Nom de la ville de source | Le nom de la ville associée à l'adresse IP source. | +| Nom du fournisseur de cloud de source | Le nom du fournisseur de cloud associé à l'adresse IP source. | +| Région du fournisseur de cloud de source | La région du fournisseur de cloud associée à l'adresse IP source. | +| Service du fournisseur de cloud de source | Le service fourni par le fournisseur de cloud associé à l'adresse IP source. | +| Code de continent de source | Le code représentant le continent associé à l'adresse IP source. | +| Nom du continent de source | Le nom du continent associé à l'adresse IP source. | +| Code ISO du pays de source | Le code ISO représentant le pays associé à l'adresse IP source. | +| Nom du pays de source | Le nom du pays associé à l'adresse IP source. | +| IP de source | L'adresse IP de source. | +| Latitude de source | La coordonnée de latitude associée à l'adresse IP source. | +| Longitude de source | La coordonnée de longitude associée à l'adresse IP source. | +| MAC de source | L'adresse MAC associée à l'adresse IP source. | +| Masque de source | Le masque de sous-réseau associé à l'adresse IP source. | +| Port de source | Le numéro de port source. | +| Nom d'hôte DNS inverse de source | Le nom d'hôte DNS associé à l'adresse IP source. | +| Code ISO de la subdivision de source | Le code ISO représentant la subdivision (comme l'état ou la province) associée à l'adresse IP source. | +| Nom de la subdivision de source | Le nom de la subdivision (comme l'état ou la province) associée à l'adresse IP source. | +| Fuseau horaire de source | Le fuseau horaire associé à l'adresse IP source. | + +## Assemblage de conversations {#conversation-stitching} + +Par défaut, les enregistrements NetFlow séparent les flux unidirectionnels pour chaque direction de trafic entre deux points de terminaison (A → B et B → A). L'assemblage de conversations combine ceux-ci en un seul enregistrement bidirectionnel, vous offrant une vue complète du trafic total échangé entre deux points de terminaison (A ↔ B). + +Avec l'assemblage de conversations, vous pouvez : + +- Voir le trafic total échangé entre deux points de terminaison comme une seule conversation au lieu de flux directionnels séparés +- Identifier les véritables initiateurs et répondants afin que les widgets source et destination reflètent des rôles précis +- Éliminer le bruit où les serveurs apparaissent incorrectement comme principales sources + +Pour basculer entre les vues assemblées (bidirectionnelles) et non assemblées (unidirectionnelles), naviguez vers n'importe quelle vue NetFlow basée sur un point de terminaison et utilisez le commutateur **Bidirectionnel** sous le sélecteur de temps. + +{{< img src="network_device_monitoring/netflow/conversation_stitching.png" alt="Basculer l'assemblage de conversations dans la vue NetFlow" width="100%" >}} + +## Taux d'échantillonnage {#sampling-rate} + +Le taux d'échantillonnage de NetFlow est pris en compte dans le calcul des octets et des paquets par défaut. Les valeurs affichées pour les octets et les paquets sont calculées avec le taux d'échantillonnage appliqué. +De plus, vous pouvez interroger **Octets (Ajustés) (@adjusted_bytes)** et **Paquets (Ajustés) (@adjusted_packets)** dans les tableaux de bord et les carnets pour les visualiser. + +Pour visualiser les octets/paquets bruts (échantillonnés) envoyés par vos appareils, vous pouvez interroger **Octets (Échantillonnés) (@bytes)** et **Paquets (Échantillonnés) (@packets)** dans les tableaux de bord et les carnets. + +## Conservation {#retention} + +Les données NetFlow sont conservées pendant 30 jours par défaut, avec des options pour une conservation de 15, 30, 60 et 90 jours. + +
    Pour conserver les données NetFlow pendant de plus longues périodes, contactez votre représentant commercial.
    + +## Limiter le volume de flux par intervalle de vidage {#limit-flow-volume-per-flush-interval} + +Pour contrôler le volume NetFlow et les coûts associés, configurez l'Agent pour limiter le nombre d'enregistrements de flux soumis par intervalle de vidage. L'intervalle de vidage est la période pendant laquelle les flux sont agrégés avant d'être transmis à Datadog. + +Lorsque cette limite est activée, l'Agent conserve uniquement les **meilleurs flux par nombre d'octets** jusqu'au maximum configuré, et rejette les flux de volume inférieur pour cet intervalle de vidage. + +### Configuration {#configuration-1} + +**Remarque** : Nécessite la version de l'Agent `7.75.1` ou ultérieure. + +Configurez ce qui suit dans votre `datadog.yaml` : + +```yaml +network_devices: + netflow: + enabled: true + aggregator_max_flows_per_flush_interval: 10000 +``` + +Avec cette configuration, l'Agent soumet au maximum 10 000 enregistrements NetFlow par intervalle de vidage (5 minutes par défaut). L'Agent priorise les flux de plus haut volume et rejette le reste. + +### Estimation du volume quotidien {#estimating-daily-volume} + +Votre nombre maximum approximatif de flux quotidien est : + +`max_flows_per_flush_interval * (minutes_per_day / flush_interval_minutes)` + +Par exemple, avec `10,000` flux par intervalle de vidage et un intervalle de vidage de 5 minutes : + +`10,000 * (1440 / 5) = 2,880,000 flows/day` + +### Comportement attendu {#expected-behavior} + +- **Les principaux émetteurs sont prioritaires :** Cela est préférable pour les flux de travail axés sur un trafic à fort volume (par exemple, les pilotes de bande passante et les liens bruyants). +- **Visibilité réduite pour les flux à faible volume :** Les paires source/destination à faible trafic peuvent ne pas apparaître lorsque le plafond est atteint. +- **Comportement par Agent :** La limite est appliquée à chaque Agent de manière indépendante. Si plusieurs Agents voient du trafic pour les mêmes conversations, ils ne sont pas agrégés globalement avant la troncature. + +### Suivi de la troncature {#monitoring-truncation} + +Lorsque la limitation de flux est activée, l'Agent émet des métriques que vous pouvez utiliser pour comprendre combien de données sont conservées par rapport à celles qui sont rejettées : + +- `ndm.flow_truncation.flows_total` +- `ndm.flow_truncation.flows_kept` +- `ndm.flow_truncation.flows_dropped` +- `ndm.flow_truncation.keep_ratio` +- `ndm.flow_truncation.threshold_value` +- `ndm.flow_truncation.runtime_ms` + +Utilisez ces métriques pour valider votre plafond choisi et pour détecter quand la troncature se produit fréquemment (ce qui peut indiquer que vous devriez ajuster le plafond ou l'intervalle de vidage). + +## Dépannage {#troubleshooting} + +### Pertes de paquets NetFlow {#netflow-packet-drops} +Des pertes de paquets NetFlow peuvent se produire lorsqu'il y a un nombre élevé de paquets NetFlow par seconde, généralement supérieur à 50 000. Les étapes suivantes peuvent aider à identifier et à atténuer les pertes de paquets NetFlow : + +#### Identification des pertes de paquets {#identifying-packet-drops} + +Utilisez la commande `netstat -s` pour voir s'il y a des paquets UDP perdus : + +```bash + netstat -s + ``` + +#### Mitigation steps +1. Increase the Number of NetFlow Listeners + + Increase the number of NetFlow listeners by using a configuration similar to the following: + Datadog recommends setting the number of workers to match the number of CPU cores in your system: + +```yaml + netflow: + enabled: true + listeners: + - flow_type: netflow9 + port: 2055 + workers: 4 # 4 CPUs +``` + +2. Augmenter la longueur de la file d'attente UDP (Linux uniquement) + + Ajuster la longueur de la file d'attente UDP de votre système peut aider à gérer le volume plus élevé de paquets NetFlow. Augmentez la taille du tampon de réception UDP à 25 Mo en exécutant les commandes suivantes : + +```bash + sudo sysctl -w net.core.rmem_max=26214400 + sudo sysctl -w net.core.rmem_default=26214400 +``` + +3. Persistance de la configuration (Linux uniquement) + + Pour rendre ces changements permanents, ajoutez les lignes suivantes à votre fichier `/etc/sysctl.conf` : + +```bash + net.core.rmem_max=26214400 + net.core.rmem_default=26214400 +``` + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /fr/network_monitoring/devices/snmp_metrics/ +[3]: /fr/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[4]: /fr/agent/configuration/agent-commands/?tab=agentv6v7#start-stop-and-restart-the-agent +[5]: https://app.datadoghq.com/devices/netflow +[6]: /fr/monitors/types/netflow/ +[7]: https://github.com/DataDog/datadog-agent/blob/f6ae461a7d22aaf398de5a94d9330694d69560d6/pkg/config/config_template.yaml#L4201 +[8]: https://github.com/DataDog/datadog-agent/blob/f6ae461a7d22aaf398de5a94d9330694d69560d6/pkg/config/config_template.yaml#L4203-L4275 +[9]: /fr/network_monitoring/devices/troubleshooting#traps-or-flows-not-being-received-at-all +[10]: https://app.datadoghq.com/devices/settings/enrichment/ip \ No newline at end of file diff --git a/content/fr/security/code_security/iac_security/iac_rules/_index.md b/content/fr/security/code_security/iac_security/iac_rules/_index.md new file mode 100644 index 00000000000..cf69c65a46c --- /dev/null +++ b/content/fr/security/code_security/iac_security/iac_rules/_index.md @@ -0,0 +1,24 @@ +--- +further_reading: +- link: /security/code_security/iac_security/setup + tag: Documentation + text: Configurer la sécurité IaC +- link: /security/code_security/iac_security/configuration + tag: Documentation + text: Configurer la sécurité IaC +title: Règles de sécurité IaC +type: iac_security +--- +{{% site-region region="gov,gov2" %}} +
    Ce produit n'est pas pris en charge pour le site Datadog sélectionné ({{< region-param key="dd_site_name" >}}).
    +{{% /site-region %}} + +[La sécurité de l'infrastructure en tant que code (IaC)][1] identifie les mauvaises configurations et les risques de sécurité dans les fichiers d'infrastructure en tant que code avant le déploiement, aidant à garantir que les environnements cloud restent sécurisés et conformes. + +
    Pour que la résolution Helm fonctionne correctement, chaque répertoire de chart doit inclure les charts dont il dépend. Pour plus de détails, voir Structure du fichier Chart dans la documentation Helm.
    + +[1]: /fr/security/code_security/iac_security/ + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/fr/serverless/aws_lambda/instrumentation/_index.md b/content/fr/serverless/aws_lambda/instrumentation/_index.md new file mode 100644 index 00000000000..c3b5d469883 --- /dev/null +++ b/content/fr/serverless/aws_lambda/instrumentation/_index.md @@ -0,0 +1,68 @@ +--- +aliases: +- /fr/serverless/installation/installing_the_library/ +- /fr/serverless/installation +- /fr/serverless/aws_lambda/installation +further_reading: +- link: /serverless/configuration/ + tag: Documentation + text: Configurer la surveillance sans serveur +- link: /integrations/amazon_lambda/ + tag: Documentation + text: Intégration AWS Lambda +title: Instrumenter les applications AWS Lambda +--- +## Aperçu {#overview} + +Instrumentez vos applications AWS Lambda avec une extension Datadog Lambda pour collecter des traces, des métriques améliorées et des métriques personnalisées. L'extension Datadog Lambda est analogue à l'utilisation de l'agent Datadog et des SDK Datadog pour les infrastructures et applications basées sur des hôtes. + +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Un diagramme montrant comment Datadog reçoit la télémétrie de votre application AWS Lambda instrumentée. Votre application Lambda, instrumentée avec une bibliothèque Datadog Lambda, envoie des journaux, des traces, des métriques améliorées et des métriques personnalisées à l'extension Datadog Lambda, qui pousse ensuite ces données vers Datadog." style="width:100%;" >}} + +## Démarrage rapide {#quick-start} + +Pour commencer, [inscrivez-vous pour un compte Datadog][1] si vous n'en avez pas déjà un. Ensuite, suivez le [flux d'installation in-app dans Fleet Automation][8] pour AWS Lambda afin d'instrumenter vos fonctions Lambda. Cette configuration de démarrage rapide permet à vos fonctions d'envoyer des métriques, des journaux et des traces en temps réel à Datadog. + +Une application d'exemple est [disponible sur GitHub][6] avec des instructions sur la façon de déployer avec plusieurs environnements d'exécution et des outils d'infrastructure en tant que code. + +Le processus de démarrage rapide configure vos fonctions Lambda à la volée. Pour instrumenter les fonctions Lambda de manière permanente, consultez les instructions détaillées dans la section suivante. + +## Utiliser le serveur MCP Datadog {#use-the-datadog-mcp-server} + +Utilisez le [serveur MCP Datadog][9] pour configurer la surveillance de vos conteneurs AWS Lambda avec l'assistance de l'IA. Après vous être connecté, essayez une invite comme : + +```shell +Help me monitor my AWS Lambda functions with Datadog +``` + +## Instructions d'instrumentation {#instrumentation-instructions} + +{{< card-grid card_width="30%" image_width="200" >}} + {{< image-card href="/serverless/installation/python/" src="integrations_logos/python.png" alt="Python" >}} + {{< image-card href="/serverless/installation/nodejs/" src="integrations_logos/nodejs.png" alt="Node.js" >}} + {{< image-card href="/serverless/installation/ruby/" src="integrations_logos/ruby.png" alt="Ruby" >}} + {{< image-card href="/serverless/installation/java/" src="integrations_logos/java.png" alt="Java" >}} + {{< image-card href="/serverless/installation/go/" src="integrations_logos/go-metro.png" alt="go" >}} + {{< image-card href="/serverless/installation/dotnet/" src="integrations_logos/dotnet_text.png" alt=".NET" >}} +{{< /card-grid >}} + +## Configurations avancées {#advanced-configurations} + +Une fois que vous avez terminé l'instrumentation et que vous avez configuré la collecte de télémétrie, vous pouvez utiliser [Configurer la surveillance sans serveur pour AWS Lambda][3] pour : + +- connecter vos métriques, traces et journaux à l'aide de balises +- collecter la télémétrie des ressources AWS telles que API Gateway, AppSync et Step Functions +- capturer les charges utiles de requête et de réponse pour chaque invocation de Lambda +- lier les erreurs de vos fonctions Lambda à votre code source +- filtrer ou nettoyer les informations sensibles des journaux ou des traces + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/signup/ +[3]: /fr/serverless/aws_lambda/configuration/ +[4]: /fr/serverless/aws_lambda/fips-compliance/ +[5]: /fr/serverless/aws_lambda/remote_instrumentation +[6]: https://github.com/DataDog/serverless-sample-app +[8]: https://app.datadoghq.com/fleet/install-agent/latest?platform=lambda +[9]: /fr/agentic_onboarding/setup \ No newline at end of file diff --git a/content/fr/synthetics/browser_tests/_index.md b/content/fr/synthetics/browser_tests/_index.md index cf9c1ed1d29..de2694361f8 100644 --- a/content/fr/synthetics/browser_tests/_index.md +++ b/content/fr/synthetics/browser_tests/_index.md @@ -5,49 +5,103 @@ aliases: description: Simulez et surveillez des parcours utilisateur à partir d'emplacements spécifiques. further_reading: -- link: https://www.datadoghq.com/blog/browser-tests/ - tag: Blog - text: Surveillance de l'expérience utilisateur avec les tests Browser -- link: https://www.datadoghq.com/blog/test-creation-best-practices/ - tag: Blog - text: Pratiques recommandées pour la création de tests de bout en bout -- link: https://learn.datadoghq.com/courses/intro-to-synthetic-tests - tag: Centre d'apprentissage - text: Présentation des tests Synthetic - link: /getting_started/synthetics/browser_test tag: Documentation - text: Débuter avec les tests Browser + text: Démarrage des tests de navigateur - link: /synthetics/guide/synthetic-test-monitors tag: Documentation text: En savoir plus sur les monitors de test Synthetic +- link: /synthetics/guide/version_history/ + tag: Guide + text: Historique des versions de Synthetic Monitoring +- link: https://learn.datadoghq.com/courses/getting-started-with-synthetic-browser-testing + tag: Centre d'apprentissage + text: 'Centre d''apprentissage Datadog : Premiers pas avec les tests de navigateur + Synthetic' +- link: https://www.datadoghq.com/blog/test-creation-best-practices/ + tag: Blog + text: Bonnes pratiques pour la création de tests de bout en bout +- link: https://www.datadoghq.com/blog/simplifying-troubleshooting-with-synthetic-monitoring + tag: Blog + text: Simplifier le dépannage tout au long du parcours utilisateur avec Datadog + Synthetic Monitoring +- link: https://www.datadoghq.com/blog/ambassador-browser-tests/ + tag: Blog + text: Comment j'ai aidé mon client à faire évoluer ses tests de navigateur avec + Datadog - link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/synthetics_test - tag: Terraform + tag: Site externe text: Créer et gérer des tests Browser Synthetic avec Terraform -title: Tests Browser +title: Tests de navigateurs --- +## Aperçu {#overview} + +Les tests de navigateur sont des scénarios exécutés par Datadog sur vos applications web. Ils s'exécutent à des intervalles périodiques configurables depuis plusieurs emplacements dans le monde, à partir de plusieurs navigateurs et appareils. Ces tests vérifient à la fois que vos applications sont opérationnelles et répondent aux demandes, et que toutes les conditions définies dans vos scénarios sont remplies. + +
    Si vous êtes intéressé par le test d'applications derrière la MFA, lisez le guide dédié et envoyez vos retours à l'équipe Synthetic Monitoring pour aider à améliorer les systèmes qui comptent le plus pour vos équipes.
    + +## Configuration du test {#test-configuration} + +Vous pouvez créer un test en utilisant l'une des options suivantes : + +### Créer un test à partir d'un modèle {#create-a-test-from-a-template} -## Présentation + 1. Survolez l'un des modèles pré-remplis et cliquez sur **Voir le modèle**. Cela ouvre un panneau latéral affichant des informations de configuration pré-remplies, y compris : Détails du test, Conditions d'alerte, Étapes et éventuellement Variables. + 2. Cliquez sur **+Créer un test** pour ouvrir la page de configuration, où vous pouvez examiner et modifier les options de configuration pré-remplies. Les champs présentés sont identiques à ceux disponibles lors de la création d'un test à partir de zéro. + 3. Cliquez sur **Enregistrer et quitter** dans le coin supérieur droit pour soumettre votre test de navigateur.

    + {{< img src="/synthetics/browser_tests/synthetics_templates_browser.mp4" alt="Vidéo de la page d'accueil des tests de navigateur synthétiques avec des modèles" video="true" >}} -Les tests Browser sont des scénarios exécutés par Datadog sur vos applications Web. Ils s'exécutent à des intervalles personnalisables, à partir de différents emplacements dans le monde entier et depuis plusieurs navigateurs et appareils. Ces tests vérifient que vos applications fonctionnent et répondent aux requêtes, et que les conditions définies dans vos scénarios sont satisfaites. +### Créez un test à partir de zéro {#build-a-test-from-scratch} -
    Si vous souhaitez tester des applications qui nécessitent une authentification multifacteur, lisez le guide dédié et partagez vos commentaires avec l'équipe chargée de la surveillance Synthetic. Vos retours nous aident à améliorer les systèmes qui comptent le plus pour vos équipes.
    + 1. Cliquez sur le **+** modèle pour commencer un nouveau test de navigateur à partir de zéro. + 1. Entrez une **URL de départ** : L'URL à partir de laquelle votre test de navigateur commence le scénario. + 1. Ajoutez un **nom** : Le nom de votre test de navigateur. + 1. Sélectionnez **l'environnement et les balises supplémentaires** : Définissez les `env` et les balises associées à votre test de navigateur. Utilisez le format `:` pour filtrer sur un `` pour un `` donné. -## Configuration du test +
    Voir Options avancées pour plus d'options.
    -Définissez la configuration de votre test Browser. + 5. Sélectionnez **navigateurs et appareils** : Les navigateurs (comme `Chrome`, `Firefox` et `Edge`), et les appareils (comme `Laptop Large`, `Tablet` et `Mobile Small`) sur lesquels exécuter votre test. -1. Ajoutez une **Starting URL** : l'URL depuis laquelle le test Browser démarre le scénario. -2. Ajoutez des **Advanced Options** (facultatif) : définissez des options spécifiques pour votre test Browser. + - Pour un grand ordinateur portable, les dimensions sont de 1440 pixels x 1100 pixels. + - Pour une tablette, les dimensions sont de 768 pixels x 1020 pixels. + - Pour un petit appareil mobile, les dimensions sont de 320 pixels x 550 pixels. - {{< tabs >}} + 6. Sélectionnez **emplacements gérés et privés** : Sélectionnez parmi une liste d'[emplacements](#locations) dans le monde qui sont gérés par Datadog, ou créez des [emplacements privés][1] pour exécuter votre test de navigateur depuis des emplacements personnalisés ou à l'intérieur de réseaux privés. + + **Note** : Vous pouvez également utiliser le [Continuous Testing Tunnel][2] pour déclencher des tests sur votre configuration de développement local ou dans votre pipeline CI/CD pour tester des environnements internes. + + 7. Définissez la **fréquence de test** : Les intervalles varient de toutes les cinq minutes à une fois par semaine. Pour demander une fréquence d'une minute, [contactez le support][3]. + 8. Cliquez sur **Enregistrer et modifier l’enregistrement** pour soumettre votre test de navigateur. + +### Emplacements {#locations} + +{{% managed-locations %}} + +### Extraits {#snippets} + +Lors de la configuration d'un nouveau test de navigateur Synthetic Monitoring, utilisez des extraits pour remplir automatiquement vos appareils et régions, plutôt que de sélectionner ces options manuellement. Les extraits suivants sont disponibles : + +* **Tailles d'écran** : Effectuez automatiquement vos tests de navigateur sur un écran de taille spécifiée sur différents navigateurs : + * **Grand** + * **Tablette** + * **Mobile** + +* **Vérification multi-région** : Testez automatiquement votre site web contre un emplacement dans chacune des trois principales régions géographiques (AMER, APAC et EMEA). +

    + + {{< img src="synthetics/browser_tests/browser_snippets_2.png" alt="Capture d'écran du côté gauche de la création d'un test de navigateur, montrant des exemples d’extraits" width="70%" >}} + +### Options avancées {#advanced-options} + +{{< tabs >}} {{% tab "Options de requête" %}} - Sélectionnez l'option **Disable CORS** pour éviter que la stratégie Cross-Origin Resource Sharing (CORS) ne bloque votre test. Pour empêcher la Content Security Policy (CSP) de bloquer votre test, sélectionnez **Disable CSP**. + Sélectionnez **Désactiver CORS** pour empêcher la politique de partage des ressources entre origines (CORS) de bloquer votre test. Pour empêcher la politique de sécurité du contenu (CSP) de bloquer votre test, sélectionnez **Désactiver CSP**. - * **Request Headers** : définissez les en-têtes dans les champs **Name** et **Value** à ajouter ou à utiliser pour remplacer les en-têtes par défaut du navigateur. Par exemple, vous pouvez modifier le user-agent dans l'en-tête de façon à [identifier les scripts Datadog][1]. - * **Cookies** : définissez les cookies à ajouter aux cookies par défaut du navigateur. Saisissez un cookie par ligne, en prenant soin de respecter la syntaxe de [`Set-Cookie`][2]. - * **HTTP Authentication** : effectuez l'authentification via HTTP Basic, Digest ou NTLM avec un nom d'utilisateur et un mot de passe. Vos identifiants sont utilisés lors de chaque étape de votre test Browser. + * **En-têtes de demande** : Définissez des en-têtes dans les champs **Nom** et **Valeur** à ajouter ou à remplacer les en-têtes par défaut du navigateur. Par exemple, vous pouvez définir l'agent utilisateur dans l'en-tête pour [identifier les scripts Datadog][1]. + * **Cookies** : Définissez des cookies à ajouter aux cookies par défaut du navigateur. Entrez un cookie par ligne, en utilisant la syntaxe de [`Set-Cookie`][2]. + * **Authentification HTTP** : Authentifiez-vous via HTTP Basic, Digest ou NTLM avec un nom d'utilisateur et un mot de passe. Vos identifiants sont utilisés à chaque étape de votre test de navigateur. **Remarque** : L'authentification via HTTP Basic peut être utilisée pour les sites web qui demandent des identifiants utilisateur via une invite système du navigateur. Les options de requête sont définies à chaque exécution de test. Elles sont appliquées à toutes les étapes de votre test Browser lors de son exécution, et non lors de son enregistrement. Si vous souhaitez que ces options restent actives lors de l'enregistrement des étapes suivantes, appliquez-les manuellement sur la page à partir de laquelle l'enregistrement est effectué, puis créez les prochaines étapes de votre test. @@ -58,10 +112,10 @@ Définissez la configuration de votre test Browser. {{% tab "Certificat" %}} - Sélectionnez l'option **Ignore server certificate error** pour que le test ignore les erreurs liées au certificat du serveur. + Sélectionnez **Ignorer l'erreur de certificat serveur** pour indiquer au test d'ignorer les erreurs dans le certificat du serveur. - * **Client Certificate** : vous pouvez effectuer des tests sur des systèmes qui nécessitent des certificats client. Pour ce faire, cliquez sur **Upload File**, puis importez votre fichier de certificat et votre clé privée. Seuls les certificats PEM sont acceptés. - * **Client Certificate Domains** : une fois les fichiers de certificat importés, le certificat client s'applique au domaine de l'URL de départ. Pour appliquer le certificat client à un autre domaine, spécifiez le domaine en question dans le champ **Value**. + * **Certificat client** : Effectuez des tests sur des systèmes qui nécessitent des certificats clients en cliquant sur **Télécharger le fichier** et en téléchargeant votre fichier de certificat et votre clé privée. Seuls les certificats PEM sont acceptés. + * **Domaines de certificat client** : Une fois les fichiers de certificat téléchargés, le certificat client s'applique au domaine de l'URL de départ. Pour appliquer le certificat client sur un autre domaine, spécifiez le domaine dans le champ **Valeur**. L'URL peut inclure des wildcards. @@ -69,17 +123,17 @@ Définissez la configuration de votre test Browser. {{% tab "Proxy" %}} - Saisissez dans le champ **Proxy URL** l'URL du proxy par lequel vous souhaitez que vos requêtes passent, en prenant soin de respecter le format `http://:@:`. + Entrez une URL pour un proxy par lequel vous souhaitez envoyer des requêtes dans le champ **URL du proxy** en tant que `http://:@:`. - L'URL peut inclure des [variables globales](#utiliser-des-variables-globales). + Vous pouvez inclure des [variables globales](#use-global-variables) dans l'URL. {{% /tab %}} {{% tab "Confidentialité" %}} - Sélectionnez l'option **Do not capture any screenshots for this test** pour empêcher les captures d'écran pendant les étapes de votre test. + Sélectionnez **Ne pas capturer de captures d'écran pour ce test** pour empêcher la prise de captures d'écran lors de vos étapes de test. - Cette option de confidentialité est proposée sous la forme d'[option avancée][1] au niveau des étapes de chaque test. Elle vous permet d'éviter d'inclure des données sensibles dans les résultats de vos tests. Il est plus difficile de diagnostiquer les échecs sans capture d'écran. Pour en savoir plus, consultez la [section relative à la sécurité][2]. + Cette option de confidentialité est proposée sous la forme d'[option avancée][1] au niveau des étapes de chaque test. Elle vous permet d'éviter d'inclure des données sensibles dans les résultats de vos tests. Empêcher le test de prendre des captures d'écran rend le dépannage des échecs plus difficile. Pour plus d'informations, voir [Sécurité des données][2]. [1]: /fr/synthetics/browser_tests/advanced_options#prevent-screenshot-capture [2]: /fr/data_security/synthetics @@ -91,142 +145,248 @@ Définissez la configuration de votre test Browser. {{% /tab %}} - {{< /tabs >}} + {{% tab "Temps & Langue" %}} + + Par défaut, le fuseau horaire est réglé sur UTC et la langue est réglée sur l'anglais (en). Pour définir une langue, utilisez le code [ISO correspondant à 2 ou 3 chiffres][1]. -3. Ajoutez un **name** : le nom de votre test Browser. -4. Sélectionnez des **environment and additional tags** : définissez le tag `env` et les tags associés à appliquer à votre test Browser. Utilisez le format `:` pour filtrer une valeur `` pour une clé `` donnée. -5. Sélectionnez des **browsers and devices** : les navigateurs (comme `Chrome`, `Firefox` et `Edge`) et les appareils (comme `Laptop Large`, `Tablet` et `Mobile Small`) sur lesquels votre test doit être lancé. - - Dimensions d'un grand ordinateur portable : 1 440 x 1 100 pixels - - Dimensions d'une tablette : 768 x 1 020 pixels. - - Dimensions d'un petit appareil mobile : 320 x 550 pixels. -6. Sélectionnez des **managed and private locations** : sélectionnez des emplacements dans le monde gérés par Datadog ou créez des [emplacements privés][1] pour lancer votre test Browser à partir d'emplacements personnalisés ou de réseaux privés. +[1]: https://www.loc.gov/standards/iso639-2/php/code_list.php - {{% managed-locations %}} + {{% /tab %}} + + {{% tab "Requêtes bloquées" %}} + + Entrez un ou plusieurs modèles de requêtes à bloquer lors du chargement pendant l'exécution du test. Entrez un modèle de requête par ligne en utilisant le [format de modèle de correspondance][1]. Les caractères génériques (par exemple, `*://*.example.com/*`) sont pris en charge. + + Les requêtes bloquées sont ignorées pendant l'exécution du test mais n'affectent pas le rendu de la page lors de [l'enregistrement des étapes](/synthetics/browser_tests/test_steps). Consultez les requêtes bloquées dans l'onglet [Ressources](/synthetics/browser_tests/test_results#resources) des exécutions de test. Les requêtes bloquées ont un statut de `blocked`. + +[1]: https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns + + {{% /tab %}} - Vous pouvez également utiliser le [Tunnel de test en continu][15] pour déclencher des tests sur votre environnement de développement local ou au sein de votre pipeline CI/CD pour tester des environnements internes. + {{< /tabs >}} + +{{% synthetics-variables %}} -7. Définissez la **test frequency** : l'intervalle minimal est de cinq minutes, tandis que l'intervalle maximal est d'une semaine. [Contactez l'assistance][2] si vous souhaitez bénéficier d'une fréquence d'exécution d'une minute. +### Utiliser des variables globales {#use-global-variables} -## Variables +Vous pouvez utiliser les [variables globales définies dans **Paramètres**][4] dans l'**URL de départ** et **Options avancées** des détails de votre test de navigateur, ainsi que dans votre enregistrement de test. -### Créer des variables locales +Pour afficher la liste des variables disponibles, procédez comme suit : -Pour créer une variable locale, cliquez sur **Create Local Variable** en haut à droite de l'interface. Vous pouvez sélectionner l'un des builtins suivants : +- Dans les détails de votre test de navigateur : Tapez `{{` dans le champ souhaité. -`{{ numeric(n) }}` -: Génère une chaîne numérique de `n` chiffres. + {{< img src="synthetics/browser_tests/use_global_variables_1.mp4" alt="Définir une variable locale à partir de variables globales" video="true" width="90%" >}} -`{{ alphabetic(n) }}` -: Génère une chaîne alphabétique de `n` lettres. +- Dans l'enregistreur de votre test de navigateur : Importez la variable dans votre test, puis tapez `{{` dans le champ souhaité ou injectez la variable dans votre application pour l'utiliser. -`{{ alphanumeric(n) }}` -: Génère une chaîne alphanumérique de `n` caractères. + {{< img src="synthetics/browser_tests/use_global_variables_2.mp4" alt="Injection d'une variable locale dans un champ lors d'un enregistrement de navigateur" video="true" width="90%" >}} -`{{ uuid }}` -: Génère un identifiant unique universel (UUID) de version 4. +Pour plus d'informations sur l'utilisation des variables dans l'enregistrement de votre test de navigateur, consultez [Étapes du test de navigateur][5]. -`{{ date(n unit, format) }}` -: Génère une date dans l'un des formats acceptés de Datadog. Sa valeur correspond à la date UTC d'initiation du test + ou - `n` unités. +### Définir des conditions d'alerte {#define-alert-conditions} -`{{ timestamp(n, unit) }}` -: Génère un timestamp dans l'une des unités acceptées de Datadog. Sa valeur correspond au timestamp UTC d'initiation du test + ou - `n` unités. +Vous pouvez personnaliser des conditions d'alertes afin de définir les circonstances dans lesquelles vous souhaitez qu'un test envoie une notification. -Pour obfusquer les valeurs des variables locales dans les résultats des tests, sélectionnez **Hide and obfuscate variable value**. Une fois la chaîne de la variable définie, cliquez sur **Add Variable**. +{{< img src="synthetics/browser_tests/alerting_rules_2.png" alt="Règle d'alerte de test de navigateur" style="width:80%" >}} -### Utiliser des variables globales +#### Règle d'alerte {#alerting-rule} -Les [variables globales définies dans les **paramètres**][3] peuvent être utilisées dans les sections **Starting URL** et **Advanced Options** de votre test Browser, ainsi que dans votre enregistrement de test pour définir des variables locales. Pour afficher la liste des variables disponibles, saisissez `{{` dans le champ souhaité. +Une alerte est déclenchée si une assertion échoue pendant `X` minutes à partir de n'importe quel `n` des `N` emplacements. Cette règle d'alerte vous permet de spécifier combien de temps et dans combien d'emplacements un test doit échouer avant de déclencher la notification. -{{< img src="synthetics/browser_tests/recording_global_variable.mp4" alt="Définir une variable locale à partir de variables globales" video="true" width="90%" >}} +Une alerte est déclenchée uniquement si ces deux conditions sont vraies : -Définissez les variables que vous souhaitez incorporer dans le parcours utilisateur avant de commencer l'enregistrement. +- Au moins un emplacement était en échec (au moins une assertion a échoué) pendant les dernières X minutes ; +- À un moment donné pendant les dernières X minutes, au moins `N` emplacements étaient en échec. -{{< img src="synthetics/browser_tests/recording_inject_variable.mp4" alt="Injecter une variable locale dans un champ lors de l'enregistrement d'un test Browser" video="true" width="90%" >}} +En cas d'échec, réessayez `X` fois avant que l'emplacement ne soit considéré comme ayant échoué. Cela vous permet de définir le nombre d'échecs consécutifs d’un test nécessaires pour qu’un emplacement soit considéré comme ayant échoué. Par défaut, il y a une attente de `300ms` avant de réessayer un test qui a échoué. Cet intervalle peut être configuré avec l'[API][6]. -Vous pouvez injecter les variables auxquelles vous avez accès pendant l'enregistrement. Pour découvrir comment utiliser des variables dans votre enregistrement de test Browser, consultez la section [Étapes des tests Browser][4]. +#### Réessai rapide {#fast-retry} -### Définir des conditions d'alerte +Lorsqu'un test échoue, le réessai rapide vous permet de réessayer le test X fois après Y ms avant de le marquer comme échoué. La personnalisation de l'intervalle de réessai permet de réduire les faux positifs et d'améliorer la précision de vos alertes. -Vous pouvez définir des conditions d'alertes personnalisées afin de spécifier les circonstances dans lesquelles vous souhaitez qu'un test envoie une notification. +Étant donné que la disponibilité de l'emplacement est calculée en fonction du résultat final du test après l'achèvement des réessais, les intervalles de réessai rapide ont un impact direct sur ce qui apparaît dans votre graphique de disponibilité totale. La disponibilité totale est calculée en fonction des conditions d'alerte configurées, et les notifications sont envoyées sur la base de cette disponibilité totale. -{{< img src="synthetics/browser_tests/alerting_rules.png" alt="Règle d'alerte du test Browser" style="width:80%" >}} +
    +Pour plus d'informations sur la manière dont les notifications de Synthetic Monitoring évaluent les résultats des tests et déclenchent les alertes, consultez Understanding Synthetic Monitor Alerting. +
    -* An alert is triggered if any assertion fails for `X` minutes from any `n` of `N` locations (Déclencher une alerte si une assertion échoue pendant `X` minutes sur `n` des `N` emplacements). Cette règle d'alerte vous permet de spécifier le nombre d'échecs requis sur le nombre d'emplacements de votre choix avant de déclencher la notification. -* Retry `X` times before location is marked as failed (Réessayer `X` fois avant de signaler l'échec de l'emplacement). Cette option vous permet de définir le nombre d'échecs de test consécutifs requis avant qu'une assertion échoue pour un emplacement. Le temps d'attente entre chaque nouvelle tentative est de 300 ms par défaut. Cet intervalle peut être configuré via l'[API][5]. +{{% synthetics-downtimes %}} -### Configurer le monitor de test +### Configurer le test monitor {#configure-the-test-monitor} -Votre test envoie une notification selon les conditions d'alerte définies. Cette section vous permet de définir les conditions et le message à envoyer à vos équipes. +Une notification est envoyée conformément à l'ensemble des conditions d'alerte. Utilisez cette section pour définir comment et quel message envoyer à vos équipes. -1. Saisissez un **message** pour le test Browser. Ce champ accepte l'utilisation du [format de mise en forme Markdown][5] standard ainsi que les [variables conditionnelles][6] suivantes : +1. Saisissez un **message** pour le test monitor ou utilisez les messages pré-remplis. Ce champ permet un formatage standard [Markdown][7] et prend en charge les [variables conditionnelles][8] suivantes : | Variable conditionnelle | Description | |----------------------------|---------------------------------------------------------------------| - | `{{#is_alert}}` | S'affiche lorsque le monitor envoie une alerte. | - | `{{^is_alert}}` | S'affiche lorsque le monitor n'envoie pas d'alerte. | - | `{{#is_recovery}}` | S'affiche lorsque le monitor est rétabli depuis un état `alert`. | - | `{{^is_recovery}}` | S'affiche lorsque le monitor n'est pas rétabli depuis un état `alert`. | - | `{{#is_renotify}}` | S'affiche lorsque le monitor renvoie des notifications. | - | `{{^is_renotify}}` | S'affiche lorsque le monitor ne renvoie pas de notification. | - | `{{#is_priority}}` | S'affiche lorsque le monitor correspond à la priorité (P1 à P5). | - | `{{^is_priority}}` | S'affiche lorsque le monitor ne correspond pas à la priorité (P1 à P5). | + | `{{#is_alert}}` | Show when the monitor alerts. | + | `{{^is_alert}}` | Show unless the monitor alerts. | + | `{{#is_recovery}}` | Show when the monitor recovers from `alert`. | + | `{{^is_recovery}}` | Show unless the monitor recovers from `alert`. | + | `{{#is_renotify}}` | Show when the monitor renotifies. | + | `{{^is_renotify}}` | Show unless the monitor renotifies. | + | `{{#is_priority}}` | Show when the monitor matches priority (P1 to P5). | + | `{{^is_priority}}` | Affiche sauf si le monitor correspond à la priorité (P1 à P5). | + + Notification messages include the **message** defined in this section and information about the failing locations. Pre-filled monitor messages are included in the message body section: + + {{< img src="/synthetics/browser_tests/browser_tests_pre-filled.png" alt="Section du test monitor de Synthetic Monitoring, mettant en évidence les messages pré-remplis du monitor." style="width:100%;" >}} + + For example, to create a monitor that iterates over steps extracting variables for browser tests, add the following to the monitor message: + + ```text + {{! Liste des variables extraites de toutes les étapes réussies }} + # Variables extraites + {{#each synthetics.attributes.result.steps}} + {{#if extractedValue}} + * **Nom** : ` + **Valeur :** {{#if extractedValue.secure}}*Obfusqué (valeur cachée)*{{else}}`{{{extractedValue.value}}}`{{/if}} + {{/if}} + {{/each}} + ``` + +2. Choose team members and services to notify. +3. Specify a renotification frequency. To prevent renotification on failing tests, check the option `Stop re-notifying on X occurrences`. +4. Click **Save & Start Recording** to save your test configuration and record your browser steps. + +For more information, see [Synthetic Monitoring notifications][9]. + +## Record your steps + +Tests can be only recorded from [Google Chrome][10] and [Microsoft Edge][18]. To record your test, download the [Datadog Record Test extension][11]. + +You can switch tabs in a browser test recording to perform an action on your application (such as clicking on a link that opens another tab) and add another test step. Your browser test must interact with the page first (through a click) before it can perform an [assertion][12]. By recording all of the test steps, the browser test can switch tabs automatically at test execution. + +{{< img src="synthetics/browser_tests/browser_check_record_test.png" alt="Enregistrement de test de navigateur" width="90%" >}} + +1. Optionnellement, sélectionnez **Ouvrir dans une fenêtre pop-up** en haut à droite de la page pour ouvrir l'enregistrement de votre test dans une fenêtre pop-up distincte. Ceci est utile si votre application ne prend pas en charge l'ouverture dans un iframe ou si vous souhaitez éviter des problèmes de dimensionnement lors de l'enregistrement. Vous pouvez également ouvrir la fenêtre pop-up en **mode Incognito** pour commencer à enregistrer votre test à partir d'un navigateur frais, exempt de sessions déjà connectées, de cookies de votre navigateur existant, et plus encore. +2. Optionnellement, activez Datadog pour collecter automatiquement les données RUM lors de l'exécution des enregistrements d'étapes depuis votre test de navigateur. Pour plus d'informations, voir [Explorer RUM & Relecture de session][13]. +3. Cliquez sur **Démarrer l'enregistrement** pour commencer l'enregistrement de votre test de navigateur. +4. Lorsque vous cliquez sur votre application en suivant le parcours utilisateur que vous souhaitez surveiller, vos actions sont automatiquement enregistrées et utilisées pour créer des [étapes][14] dans votre scénario de test de navigateur à gauche. +5. En plus des étapes automatiquement enregistrées, vous pouvez également utiliser les [étapes][14] disponibles dans le coin supérieur gauche pour enrichir votre scénario : + {{< img src="synthetics/browser_tests/manual_steps.png" alt="Étapes de test de navigateur" style="width:80%;">}} + + Datadog recommande de terminer votre test de navigateur par une **[assertion][12]** pour confirmer que le parcours exécuté par le test de navigateur a abouti à l'état attendu. +6. Une fois que vous avez terminé votre scénario, cliquez sur **Enregistrer et lancer le test**. + +## Rejouez vos étapes {#replay-your-steps} + +Pour relancer une ou plusieurs étapes de votre test de navigateur directement dans votre navigateur, téléchargez l'[extension Datadog Record Test][11]. + +La fonctionnalité de Relecture des Étapes vous aide à déboguer des étapes individuelles, à atteindre le bon état d'application lors de l'édition d'un test de navigateur, et à confirmer des flux entiers avant d'enregistrer votre test. + +**Remarque** : La Relecture des Étapes peut se comporter différemment d'un test complet de Surveillance Synthétique en raison de conditions différentes (version du navigateur, réseau, agent utilisateur, état de connexion) ou de limitations. + +### Comment utiliser la relecture des étapes {#how-to-use-step-replay} + +Vous pouvez rejouer les étapes de trois manières : + +1. Relecture d'une seule étape : Réexécutez une seule étape : +{{< img src="synthetics/browser_tests/recording__replay--replay-one-step_1.mp4" alt="Relecture d'une seule étape" video="true" height="400px" >}} +

    Survolez l'étape et cliquez sur le bouton de lecture pour rejouer uniquement cette étape.

    + +2. Rejouer toutes les étapes : Exécutez l'ensemble de la séquence d'étapes telle que définie dans l'enregistreur : +{{< img src="synthetics/browser_tests/recording__replay--replay-all-steps_1.mp4" alt="Rejouer toutes les étapes" video="true" height="400px" >}} +

    Cliquez sur le bouton de rejouer toutes les étapes (⏩︎) en haut de la liste des étapes pour rejouer toutes les étapes.

    + +3. Rejouer les étapes sélectionnées : Exécutez un sous-ensemble d'étapes que vous sélectionnez dans la liste des étapes : +{{< img src="synthetics/browser_tests/recording__replay--replay-selected-steps_1.mp4" alt="Rejouer les étapes sélectionnées" video="true">}} +

    Sélectionnez les étapes que vous souhaitez rejouer, puis cliquez sur le bouton de rejouer les étapes sélectionnées (⏩︎) en haut de la liste des étapes.

    - Les messages de notification comprennent le **message** défini dans cette section ainsi que des informations sur les emplacements présentant un échec. +### Prise en charge de la fonctionnalité de relecture d'étape {#step-replay-feature-support} -2. Choisissez les services et les membres de votre équipe auxquels les notifications doivent être envoyées. -3. Indiquez une fréquence de renvoi de notifications. Pour éviter de renvoyer des notifications pour les tests qui ont échoué, choisissez l'option `Never renotify if the monitor has not been resolved`. -4. Cliquez sur **Save Details and Record Test** pour valider votre configuration de test et enregistrer vos étapes de test Browser. +Le tableau suivant résume les types d'étapes de test de navigateur pris en charge par la relecture d'étape : -Pour en savoir plus, consultez la section [Utiliser les monitors de test Synthetic][7]. +| Type d'étape | Pris en charge par le replay d'étape | Remarques | +|--------------------------|:------------------------:|-------| +| Extraire la variable | {{< X >}} | | +| Aller à l'URL | {{< X >}} | | +| Actualiser | {{< X >}} | | +| Faire défiler | {{< X >}} | | +| Sélectionner une option | {{< X >}} | | +| Attendre | {{< X >}} | | +| Exécuter le test API | {{< X >}} | | +| Vérifier l'état de la case à cocher | {{< X >}} | | +| Vérifier l'URL actuelle | {{< X >}} | | +| Vérifier l'attribut de l'élément | {{< X >}} | | +| Vérifier le contenu de l'élément | {{< X >}} | | +| Vérifier la présence de l'élément | {{< X >}} | | +| Vérifier le téléchargement de fichier | {{< X >}} | | +| Vérifier que la page contient | {{< X >}} | | +| Vérifier que la page ne contient pas | {{< X >}} | | +| Vérifier depuis JavaScript | {{< X >}} | | +| Extraire depuis JavaScript | {{< X >}} | | +| Appuyer sur la touche | {{< X >}} | | +| Taper du texte | {{< X >}} | | +| Cliquer | {{< X >}}* | *Click steps are supported, but may behave differently than in a full Synthetic Monitoring test run. | +| Survoler | {{< X >}}* | *Hover steps are supported, but may behave differently than in a full Synthetic Monitoring test run. | -## Enregistrer les étapes de votre test +### Types d'étapes non pris en charge par la relecture d'étape {#step-types-not-supported-by-step-replay} -Les tests peuvent uniquement être enregistrés à partir de [Google Chrome][8]. Pour enregistrer votre test, téléchargez l'[extension d'enregistrement de test Datadog pour Google Chrome][9]. +| Type d'étape | Pris en charge par la relecture d'étape | +|--------------------------|:------------------------:| +| Vérifier l'email | Pas encore pris en charge | +| Vérifier les requêtes | Pas encore pris en charge | +| Extraire du corps de l'email | Pas encore pris en charge | +| Aller au lien de l'email | Pas encore pris en charge | +| Télécharger des fichiers | Pas encore pris en charge | -Vous pouvez passer à un autre onglet lors de l'enregistrement d'un test Browser afin d'effectuer une action sur votre application (comme cliquer sur un lien qui s'ouvre dans un nouvel onglet) et ajouter une autre étape de test. Votre test Browser doit d'abord interagir avec la page (via un clic) avant de pouvoir effectuer une [assertion][10]. En enregistrant toutes les étapes de test, vous pouvez faire en sorte que le test Browser change d'onglet automatiquement lors de l'exécution du test. +### Autorisation du débogueur {#debugger-permission} -{{< img src="synthetics/browser_tests/browser_check_record_test.png" alt="Enregistrer le test Browser" width="90%" >}} +Pour être aussi proche que possible d'un test complet de surveillance synthétique, certaines étapes comme les étapes basées sur JavaScript ou les simulations de frappes nécessitent l'autorisation du débogueur pour être répétées. -1. Vous pouvez sélectionner **Open in a pop-up** en haut à droite de la page pour ouvrir l'enregistrement de votre test dans une fenêtre contextuelle séparée. Cette option est utile si votre application ne peut pas être ouverte dans un iframe ou si vous voulez éviter les problèmes liés à la taille de la fenêtre lors de l'enregistrement. Il est également possible d'ouvrir la fenêtre contextuelle en **navigation privée** pour commencer à enregistrer votre test dans un nouveau navigateur sur lequel aucun identifiant, aucun cookie ni aucune autre information ne sont enregistrés. -2. Vous avez également la possibilité d'activer la collecte automatique de données RUM lors de l'enregistrement des étapes de votre test Browser. Pour en savoir plus, consultez la documentation relative à [RUM et à Session Replay][11]. -3. Cliquez sur **Start Recording** pour commencer l'enregistrement de votre test Browser. -4. Lorsque vous cliquez dans votre application pour reproduire le parcours utilisateur que vous souhaitez surveiller, vos actions sont automatiquement enregistrées et utilisées pour créer des [étapes][12] dans le scénario de votre test Browser sur la gauche. -5. Outre les étapes enregistrées automatiquement, vous pouvez également utiliser les [étapes][12] disponibles en haut à gauche pour enrichir votre scénario : - {{< img src="synthetics/browser_tests/manual_steps.png" alt="Étapes du test Browser" style="width:80%;">}} +La première fois que l'extension est mise à jour vers une version nécessitant l'autorisation du débogueur, une demande d'autorisation apparaît et l'extension est désactivée jusqu'à ce que vous l'approuviez : +{{< img src="synthetics/browser_tests/recording__replay--accepting-permission_2.mp4" alt="Accepter l'autorisation du débogueur" video="true" height="400px" >}} +

    Cliquez sur les trois points {{< img src="icons/kebab.png" inline="true" style="width:14px;">}} du menu pour accepter l'autorisation.

    - Datadog vous recommande de faire en sorte que votre test Browser se termine par une **[assertion][10]** confirmant la bonne exécution du parcours du test. -6. Une fois votre scénario terminé, cliquez sur **Save and Launch Test**. +## Autorisations {#permissions} -## Autorisations +Par défaut, seuls les utilisateurs ayant les rôles [Administrateur Datadog et Standard Datadog][15] peuvent créer, modifier et supprimer des tests de navigateur synthétiques. Pour obtenir l'accès à la création, à la modification et à la suppression des tests de navigateur synthétiques, mettez à niveau votre utilisateur vers l'un de ces deux [rôles par défaut][15]. -Par défaut, seuls les utilisateurs disposant des [rôles Admin et Standard Datadog][13] peuvent créer, modifier et supprimer des tests Browser Synthetic. Pour que votre utilisateur puisse effectuer ces opérations, vous devez donc lui accorder l'un de ces deux [rôles par défaut][13]. +Si vous utilisez la [fonctionnalité de rôle personnalisé][15], ajoutez votre utilisateur à tout rôle personnalisé qui inclut les permissions `synthetics_read` et `synthetics_write`. -Si vous utilisez des [rôles personnalisés][13], ajoutez votre utilisateur à un rôle personnalisé disposant des autorisations `synthetics_read` et `synthetics_write`. +### Restreindre l'accès {#restrict-access} -### Restreindre l'accès +Utilisez le [contrôle d'accès granulaire][17] pour limiter qui a accès à votre test en fonction des rôles, des équipes ou des utilisateurs individuels : -Les clients qui ont configuré des [rôles personnalisés][14] sur leur compte peuvent utiliser la fonctionnalité de restriction d'accès. +1. Ouvrez la section des permissions du formulaire. +2. Cliquez sur **Modifier l'accès**. + {{< img src="synthetics/settings/grace_2.png" alt="Définissez les permissions pour votre test à partir du formulaire de configuration des emplacements privés" style="width:100%;" >}} +3. Cliquez sur **Restreindre l'accès**. +4. Sélectionnez des équipes, des rôles ou des utilisateurs. +5. Cliquez sur **Ajouter**. +6. Sélectionnez le niveau d'accès que vous souhaitez associer à chacun d'eux. +7. Cliquez sur **Terminé**. -Vous pouvez limiter l'accès d'un test Browser à certains rôles de votre organisation. Lors de la création du test Browser, choisissez les rôles (en plus de votre utilisateur) auxquels vous souhaitez attribuer des autorisations de lecture/écriture pour votre test. +
    Vous pouvez voir les résultats d'un emplacement privé même sans accès de visualiseur à cet emplacement privé.
    -{{< img src="synthetics/settings/restrict_access.png" alt="Définir des autorisations pour votre test" style="width:70%;" >}} +| Niveau d'accès | Voir la configuration du test | Modifier la configuration du test | Voir les résultats du test | Exécuter le test | Voir l'enregistrement | Modifier l'enregistrement | +| ------------ | ----------------------- | ----------------------- | ------------------| --------- | -------------- | -------------- | +| Pas d'accès | | | | | | | +| Visualiseur | {{< X >}} | | {{< X >}} | | | | +| Éditeur | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | -## Pour aller plus loin +## Lectures complémentaires {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /fr/synthetics/private_locations/ -[2]: /fr/help/ -[3]: /fr/synthetics/settings/#global-variables -[4]: /fr/synthetics/browser_tests/actions#variables -[5]: /fr/api/latest/synthetics/#create-or-clone-a-test -[6]: http://daringfireball.net/projects/markdown/syntax -[7]: /fr/synthetics/guide/synthetic-test-monitors -[8]: https://www.google.com/chrome -[9]: https://chrome.google.com/webstore/detail/datadog-test-recorder/kkbncfpddhdmkfmalecgnphegacgejoa -[10]: /fr/synthetics/browser_tests/actions/#assertion -[11]: /fr/synthetics/guide/explore-rum-through-synthetics/ -[12]: /fr/synthetics/browser_tests/actions/ -[13]: /fr/account_management/rbac#custom-roles -[14]: /fr/account_management/rbac/#create-a-custom-role -[15]: /fr/continuous_testing/testing_tunnel +[2]: /fr/continuous_testing/environments/proxy_firewall_vpn +[3]: /fr/help/ +[4]: /fr/synthetics/settings/#global-variables +[5]: /fr/synthetics/browser_tests/test_steps#variables +[6]: /fr/api/latest/synthetics/#create-or-clone-a-test +[7]: http://daringfireball.net/projects/markdown/syntax +[8]: /fr/monitors/notify/variables/?tab=is_alert#conditional-variables +[9]: /fr/synthetics/notifications/ +[10]: https://www.google.com/chrome +[11]: https://chrome.google.com/webstore/detail/datadog-test-recorder/kkbncfpddhdmkfmalecgnphegacgejoa +[12]: /fr/synthetics/browser_tests/test_steps/#assertion +[13]: /fr/synthetics/guide/explore-rum-through-synthetics/ +[14]: /fr/synthetics/browser_tests/test_steps/ +[15]: /fr/account_management/rbac#custom-roles +[16]: /fr/account_management/rbac/#create-a-custom-role +[17]: /fr/account_management/rbac/granular_access +[18]: https://www.microsoft.com/edge +[19]: /fr/synthetics/guide/how-synthetics-monitors-trigger-alerts/ \ No newline at end of file diff --git a/content/fr/tracing/trace_collection/single-step-apm/_index.md b/content/fr/tracing/trace_collection/single-step-apm/_index.md new file mode 100644 index 00000000000..5190e2f5344 --- /dev/null +++ b/content/fr/tracing/trace_collection/single-step-apm/_index.md @@ -0,0 +1,88 @@ +--- +aliases: +- /fr/tracing/trace_collection/admission_controller/ +- /fr/tracing/trace_collection/library_injection_local/ +- /fr/tracing/trace_collection/automatic_instrumentation/single-step-apm/ +further_reading: +- link: /tracing/metrics/runtime_metrics/ + tag: Documentation + text: Activer les métriques d'exécution +- link: /tracing/guide/injectors + tag: Documentation + text: Comprendre le comportement de l'injecteur avec l'instrumentation par étape + unique +- link: /tracing/trace_collection/automatic_instrumentation/single-step-apm/troubleshooting/ + tag: Documentation + text: Dépannage de l'APM par étape unique +- link: https://learn.datadoghq.com/courses/troubleshooting-apm-instrumentation-on-a-host + tag: Centre d'apprentissage + text: Dépannage de l'instrumentation APM sur un hôte +- link: /tracing/guide/local_sdk_injection + tag: Documentation + text: Instrumentez vos applications en utilisant l'injection locale de SDK +- link: https://www.datadoghq.com/blog/datadog-csi-driver/ + tag: Blog + text: Apportez une observabilité haute performance aux environnements Kubernetes + sécurisés avec le pilote CSI de Datadog +- link: https://www.datadoghq.com/blog/rum-apm-single-step + tag: Blog + text: Activez la visibilité de bout en bout dans vos applications Java avec une + seule commande +title: Instrumentation APM en une étape +--- +## Aperçu {#overview} + +L'instrumentation par étape unique (SSI) installe automatiquement les SDK Datadog sans configuration supplémentaire requise, réduisant le temps d'intégration de plusieurs jours à quelques minutes. + +Pour en savoir plus sur son fonctionnement, consultez le [guide de l'injecteur pour l'instrumentation par étape unique][8]. + +## Prérequis {#prerequisites} + +1. Supprimez tout code d'instrumentation personnalisé de votre application et redémarrez-la. La SSI est automatiquement désactivée si une instrumentation personnalisée est détectée. +1. Confirmez la compatibilité de l'environnement en consultant le [guide de compatibilité SSI][18] pour les langages, systèmes d'exploitation et architectures pris en charge. + +## Instrumentation des SDK dans les applications {#instrument-sdks-across-applications} + +Lorsque vous [installez ou mettez à jour l'Agent Datadog][1] avec **l'instrumentation APM** activée, l'Agent instrumente vos applications en chargeant le SDK Datadog dans les processus pris en charge. Cela permet le traçage distribué en capturant et en envoyant des données de trace depuis vos services sans nécessiter de modifications de code. + +Après l'instrumentation, vous pouvez optionnellement : +- [configurer les balises de service unifiées (USTs)][14] +- activer des produits et fonctionnalités supplémentaires dépendants du SDK, tels que Continuous Profiler ou Application Security Monitoring + +Cliquez sur l'une des tuiles suivantes pour apprendre à configurer SSI pour votre type de déploiement : + +{{< card-grid card_width="170px" image_width="200" >}} + {{< image-card href="linux/" src="integrations_logos/linux.png" alt="linux" >}} + {{< image-card href="docker/" src="integrations_logos/docker.png" alt="docker" >}} + {{< image-card href="kubernetes/" src="integrations_logos/kubernetes.png" alt="kubernetes" >}} + {{< image-card href="windows/" src="integrations_logos/windows.png" alt="windows" >}} +{{< /card-grid >}} + +
    + +## Dépannage {#troubleshooting} + +Si vous rencontrez des problèmes pour activer APM avec SSI, consultez le [guide de dépannage SSI][15]. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /fr/tracing/metrics/runtime_metrics/ +[3]: /fr/internal_developer_portal/catalog/ +[4]: /fr/tracing/glossary/#instrumentation +[5]: /fr/containers/cluster_agent/admission_controller/ +[6]: /fr/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility +[7]: /fr/tracing/trace_collection/custom_instrumentation/ +[8]: /fr/tracing/guide/injectors +[9]: /fr/tracing/trace_collection/automatic_instrumentation/single-step-apm/kubernetes/?tab=installingwithdatadogoperator#configure-instrumentation-for-namespaces-and-pods +[10]: /fr/tracing/trace_collection/library_config/ +[11]: /fr/tracing/metrics/runtime_metrics/ +[12]: /fr/internal_developer_portal/catalog/ +[13]: /fr/tracing/glossary/#instrumentation +[14]: /fr/getting_started/tagging/unified_service_tagging +[15]: /fr/tracing/trace_collection/automatic_instrumentation/single-step-apm/troubleshooting +[16]: /fr/tracing/trace_collection/custom_instrumentation/ +[17]: /fr/tracing/trace_collection/library_config/application_monitoring_yaml/ +[18]: /fr/tracing/trace_collection/automatic_instrumentation/single-step-apm/compatibility/ \ No newline at end of file diff --git a/content/ja/containers/kubernetes/apm.md b/content/ja/containers/kubernetes/apm.md index ca6df2b7381..e5ff8775a49 100644 --- a/content/ja/containers/kubernetes/apm.md +++ b/content/ja/containers/kubernetes/apm.md @@ -1,47 +1,49 @@ --- aliases: -- /ja/agent/kubernetes/host_setup +- /ja/agent/kubernetes/apm +description: Kubernetes 環境で実行され、コンテナ化されたアプリケーションの APM トレース収集を有効にする further_reading: - link: /agent/kubernetes/log/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーションログの収集 - link: /agent/kubernetes/prometheus/ - tag: ドキュメント + tag: よくあるご質問 text: Prometheus メトリクスの収集 - link: /agent/kubernetes/integrations/ - tag: ドキュメント + tag: よくあるご質問 text: アプリケーションのメトリクスとログを自動で収集 - link: /agent/guide/autodiscovery-management/ - tag: ドキュメント + tag: よくあるご質問 text: データ収集をコンテナのサブセットのみに制限 - link: /agent/kubernetes/tag/ - tag: ドキュメント - text: コンテナから送信された全データにタグを割り当て + tag: よくあるご質問 + text: コンテナから送信された全データへのタグの割り当て title: Kubernetes APM - トレース収集 --- - -{{< learning-center-callout header="ラーニングセンターで Kubernetes のモニタリング入門をお試しください" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/intro-to-monitoring-kubernetes">}} - Datadog のトライアルアカウントと実際のクラウドコンピュートキャパシティを使用して、コストをかけずに学ぶことができます。ハンズオンラボを開始して、Kubernetes 固有のメトリクス、ログ、APM トレースを使いこなしましょう。 +{{< learning-center-callout header="ラーニングセンターで Kubernetes のモニタリングの紹介をご覧ください" btn_title="今すぐ登録" btn_url="https://learn.datadoghq.com/courses/intro-to-monitoring-kubernetes">}} + 実際のクラウドの計算リソースと Datadog のトライアルアカウントを使って、無料で学習できます。これらのハンズオンラボを開始して、Kubernetes に特有のメトリクス、ログ、および APM トレースについて短期間で理解を深めましょう。 {{< /learning-center-callout >}} このページでは、Kubernetes アプリケーションを対象とした [Application Performance Monitoring (APM)][10] のセットアップと構成について説明します。 -{{< img src="tracing/visualization/troubleshooting_pipeline_kubernetes.png" alt="APM のトラブルシューティングパイプライン: トレーサーは、アプリケーションポッドから Agent ポッドにトレースとメトリクスデータを送信し、Agent ポッドはそれを Datadog バックエンドに送信して Datadog UI に表示させることができます。">}} +{{< img src="tracing/visualization/troubleshooting_pipeline_kubernetes.png" alt="APM のトラブルシューティングパイプライン: トレーサーは、アプリケーションポッドから Agent ポッドにトレースとメトリクスデータを送信し、Agent Pod はそれを Datadog バックエンドに送信して Datadog UI に表示させることができます。">}} + +トレースは、Unix Domain Socket (UDS)、TCP (`IP:Port`)、または Kubernetes サービスを介して送信できます。Datadog では UDS の使用を推奨しますが、必要に応じて 3 つすべてを同時に使用することも可能です。 -トレースは Unix Domain Socket (UDS)、TCP (`IP:Port`)、または Kubernetes サービスを介して送信できます。Datadog では UDS の使用を推奨していますが、必要であれば 3 つすべてを同時に使用することも可能です。 +**注意**: 手動構成なしで自動インスツルメンテーションを行うには、[Kubernetes 用のシングルステップインスツルメンテーション][13] を参照してください。 -## セットアップ -1. まだインストールしていない場合は、お使いの Kubernetes 環境に応じた [Datadog Agent][1] をインストールしてください。 -2. トレースを収集するように [Datadog Agent を構成します](#configure-the-datadog-agent-to-collect-traces)。 -3. トレースを Datadog Agent に送信するように[アプリケーションポッドを構成します](#configure-your-application-pods-to-submit-traces-to-datadog-agent)。 +## セットアップ {#setup} +1. まだインストールしていない場合は、使用している Kubernetes 環境に応じた [Datadog Agent][1] をインストールしてください。 +2. [Configure the Datadog Agent](#configure-the-datadog-agent-to-collect-traces) してトレースを収集します。 +3. [Configure application pods](#configure-your-application-pods-to-submit-traces-to-datadog-agent) して Datadog Agent にトレースを送信します。 -### トレースを収集するように Datadog Agent を構成する +### トレースを収集するように Datadog Agent を構成する {#configure-the-datadog-agent-to-collect-traces} -このセクションの説明では、UDS でトレースを受信するように Datadog Agent を構成します。TCP を使用するには、[その他の構成](#additional-configuration)セクションを参照してください。Kubernetes サービスを使用するには、[Kubernetes サービスを使用して APM を設定する][9]を参照してください。 +このセクションの指示では、UDS 経由でトレースを受信するように Datadog Agent を構成します。TCP を使用する場合は、[additional configuration](#additional-configuration) セクションを参照してください。Kubernetes サービスを使用する場合は、[Kubernetes サービスでの APM の設定][9] を参照してください。 {{< tabs >}} {{% tab "Datadog Operator" %}} -`datadog-agent.yaml` を編集して `features.apm.enabled` を `true` に設定します。 +`datadog-agent.yaml` を編集して、`features.apm.enabled` を `true` に設定します。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -60,18 +62,18 @@ spec: path: /var/run/datadog/apm.socket # default ``` -APM が有効になると、デフォルトのコンフィギュレーションにより、ホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル `/var/run/datadog/apm/apm.socket` を作成し、リッスンします。アプリケーションポッドも同様に、このボリュームをマウントして、この同じソケットに書き込むことができます。`features.apm.unixDomainSocketConfig.path` のコンフィギュレーション値で、パスとソケットを変更することが可能です。 +APM が有効になると、デフォルトの構成ではホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル `/var/run/datadog/apm/apm.socket` を作成し、リッスンします。アプリケーションポッドは、このボリュームを同様にマウントし、同じソケットに書き込むことができます。`features.apm.unixDomainSocketConfig.path` 構成値を使用してパスとソケットを変更できます。 {{% k8s-operator-redeploy %}} -**注**: minikube では、`Unable to detect the kubelet URL automatically`(キューブレット URL を自動的に検出できません)というエラーが表示される場合があります。この場合、`global.kubelet.tlsVerify` を `false` に設定します。 +**注**: minikube では、`Unable to detect the kubelet URL automatically` エラーが発生する場合があります。この場合、`global.kubelet.tlsVerify` を `false` に設定します。 {{% /tab %}} {{% tab "Helm" %}} -[Datadog Agent のインストールに Helm を使用した][1]場合、APM は UDS または Windows の名前付きパイプで**デフォルトで有効**になっています。 +[Datadog Agent のインストールに Helm を使用した][1] 場合、APM は UDS または Windows の名前付きパイプで**デフォルトで有効**になっています。 -確認するには、`datadog-values.yaml` で `datadog.apm.socketEnabled` が `true` に設定されていることを確認してください。 +確認するには、`datadog-values.yaml` で、`datadog.apm.socketEnabled` が`true` に設定されていることを確認してください。 ```yaml datadog: @@ -79,7 +81,7 @@ datadog: socketEnabled: true ``` -デフォルトのコンフィギュレーションにより、ホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル `/var/run/datadog/apm.socket` を作成し、リッスンします。アプリケーションポッドも同様に、このボリュームをマウントして、この同じソケットに書き込むことができます。`datadog.apm.hostSocketPath` と `datadog.apm.socketPath` のコンフィギュレーション値で、パスとソケットを変更することが可能です。 +デフォルトの構成では、ホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル `/var/run/datadog/apm.socket` を作成し、リッスンします。アプリケーションポッドは、このボリュームを同様にマウントし、同じソケットに書き込むことができます。`datadog.apm.hostSocketPath` および `datadog.apm.socketPath` 構成値を使用してパスとソケットを変更できます。 ```yaml datadog: @@ -90,24 +92,24 @@ datadog: socketPath: /var/run/datadog/apm.socket ``` -APM を無効にするには、`datadog.apm.socketEnabled` を`false` に設定します。 +APM を無効にするには、`datadog.apm.socketEnabled` を `false` に設定します。 {{% k8s-helm-redeploy %}} -**注**: minikube では、`Unable to detect the kubelet URL automatically`(キューブレット URL を自動的に検出できません)というエラーが表示される場合があります。この場合、`datadog.kubelet.tlsVerify` を `false` に設定します。 +**注**: minikube では、`Unable to detect the kubelet URL automatically` エラーが発生する場合があります。この場合、`datadog.kubelet.tlsVerify` を `false` に設定します。 [1]: /ja/containers/kubernetes/installation?tab=helm#installation {{% /tab %}} {{< /tabs >}} -### Datadog Agent にトレースを送信するためのアプリケーションポッドの構成 +### アプリケーションポッドを構成して Datadog Agent にトレースを送信する {#configure-your-application-pods-to-submit-traces-to-datadog-agent} {{< tabs >}} {{% tab "Datadog Admission Controller" %}} -Datadog Admission Controller は、Datadog Cluster Agent のコンポーネントで、アプリケーションポッドの構成を簡素化します。詳しくは、[Datadog Admission Controller ドキュメント][1]をお読みください。 +Datadog Admission Controller は、アプリケーションポッドの構成を簡素化する Datadog Cluster Agent のコンポーネントです。[Datadog Admission Controller ドキュメント][1] を参照して、詳細を学べます。 -Datadog Admission Controller を使用して環境変数を挿入し、新しいアプリケーションポッドに必要なボリュームをマウントすることで、ポッドと Agent のトレース通信を自動で構成します。Datadog Agent にトレースを送信するためにアプリケーションを自動的に構成する方法については、[Admission Controller を使ったライブラリの挿入][2]のドキュメントを参照してください。 +Datadog Admission Controller を使用して、新しいアプリケーションポッドに環境変数を注入し、必要なボリュームをマウントし、自動的にポッドと Agent のトレース通信を構成します。Datadog Agent にトレースを送信するためにアプリケーションを自動的に構成する方法について詳しくは、[Admission Controller を使用したライブラリの注入][2] ドキュメントをご覧ください。 [1]: /ja/agent/cluster_agent/admission_controller/ [2]: /ja/tracing/trace_collection/library_injection_local/ @@ -137,14 +139,14 @@ kind: Deployment name: apmsocketpath ``` -### アプリケーショントレーサーがトレースを発するように構成します。 -Datadog Agent がトレースを収集するように構成し、アプリケーションポッドにトレースの送信先に関する構成を行った後、Datadog トレーサーをアプリケーションにインストールして、トレースを送信します。これが完了すると、トレーサーは適切な `DD_TRACE_AGENT_URL` エンドポイントにトレースを自動的に送出します。 +### 以下の手順で、アプリケーション SDK がトレースを送信するように構成します。{#configure-your-application-sdks-to-emit-traces} +Datadog Agent がトレースを収集するように構成し、アプリケーションポッドにトレースの送信*先*に関する設定を行った後、Datadog SDK をアプリケーションにインストールしてトレースを送信します。これが完了すると、SDK は適切な `DD_TRACE_AGENT_URL` エンドポイントにトレースを送信します。 {{% /tab %}} {{% tab TCP %}} -TCP (`:8126`) を使用して Agent にトレースを送信している場合、この IP アドレスをアプリケーションポッドに供給します ([Datadog Admission Controller][1] で自動的に、または手動で下位 API を使用してホスト IP をプルします)。アプリケーションコンテナには、`status.hostIP` を指す環境変数 `DD_AGENT_HOST` が必要です。 +TCP (`:8126`) を使用して Agent にトレースを送信している場合、この IP アドレスをアプリケーションポッドに供給します。[Datadog Admission Controller][1] で自動的に、または手動で下位 API を使用してホスト IP をプルします。アプリケーションコンテナには、`status.hostIP` を指す環境変数 `DD_AGENT_HOST` が必要です。 ```yaml apiVersion: apps/v1 @@ -162,23 +164,23 @@ kind: Deployment ``` **注:** この構成では、Agent が TCP 上のトレースを受け入れるように構成されている必要があります。 -### アプリケーショントレーサーがトレースを発するように構成します。 -Datadog Agent がトレースを収集するように構成し、アプリケーションポッドにトレースの送信先に関する構成を行った後、Datadog トレーサーをアプリケーションにインストールして、トレースを送信します。これが完了すると、トレーサーは適切な `DD_AGENT_HOST` エンドポイントにトレースを自動的に送出します。 +### 以下の手順で、アプリケーション SDK がトレースを送信するように構成します。{#configure-your-application-sdks-to-emit-traces-1} +Datadog Agent がトレースを収集するように構成し、アプリケーションポッドにトレースの送信*先*に関する設定を行った後、Datadog SDK をアプリケーションにインストールしてトレースを送信します。これが完了すると、SDK は適切な `DD_AGENT_HOST` エンドポイントにトレースを自動的に送信します。 [1]: /ja/agent/cluster_agent/admission_controller/ {{% /tab %}} {{< /tabs >}} -その他の例については、[言語ごとの APM インスツルメンテーションドキュメント][2]を参照してください。 +その他の例については、[言語ごとの APM インスツルメンテーションドキュメント][2] を参照してください。 -## 追加構成 +## 追加の構成 {#additional-configuration} -### TCP 経由でトレースを受け取るように Datadog Agent を構成する +### TCP 経由でトレースを受け取るように Datadog Agent を構成する {#configure-the-datadog-agent-to-accept-traces-over-tcp} {{< tabs >}} {{% tab "Datadog Operator" %}} -`datadog-agent.yaml` を以下のように更新します。 +以下の内容で `datadog-agent.yaml` を更新します。 ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -200,11 +202,11 @@ spec: {{% k8s-operator-redeploy %}} -**警告**: `hostPort` パラメーターを指定すると、ホストのポートが開かれます。アプリケーションまたは信頼できるソースからのみアクセスを許可するように、ファイアウォールを設定してください。ネットワークプラグインが `hostPorts` をサポートしていない場合は、`hostNetwork: true` を Agent ポッド仕様に追加してください。ホストのネットワークネームスペースが Datadog Agent と共有されます。つまり、コンテナで開かれたすべてのポートはホストで開きます。ポートがホストとコンテナの両方で使用されると、競合し (同じネットワークネームスペースを共有するので)、ポッドが開始しません。これを許可しない Kubernetes インストールもあります。 +**警告**: `hostPort` パラメーターによりホスト上のポートが開かれます。ファイアウォールが、アプリケーションまたは信頼できるソースからのアクセスのみを許可することを確認してください。ネットワークプラグインで `hostPorts` がサポートされていない場合は、Agent Pod の仕様に `hostNetwork: true` を追加してください。これにより、ホストのネットワークネームスペースが Datadog Agent と共有されます。これは、コンテナ上で開かれるすべてのポートがホスト上でも開かれることを意味します。ホストとコンテナの両方でポートが使用されている場合、それらは競合し (同じネットワークネームスペースを共有しているため)、Pod は起動しません。一部の Kubernetes インストールでは、これは許可されていません。 {{% /tab %}} {{% tab "Helm" %}} -以下の APM コンフィギュレーションを使用して、`datadog-values.yaml` ファイルを更新します。 +以下の APM の構成を使用して `datadog-values.yaml` ファイルを更新します。 ```yaml datadog: @@ -215,15 +217,15 @@ datadog: {{% k8s-helm-redeploy %}} -**警告**: `datadog.apm.portEnabled` パラメーターを指定すると、ホストのポートが開かれます。アプリケーションまたは信頼できるソースからのみアクセスを許可するように、ファイアウォールを設定してください。ネットワークプラグインが `hostPorts` をサポートしていない場合は、`hostNetwork: true` を Agent ポッド仕様に追加してください。ホストのネットワークネームスペースが Datadog Agent と共有されます。つまり、コンテナで開かれたすべてのポートはホストで開きます。ポートがホストとコンテナの両方で使用されると、競合し (同じネットワークネームスペースを共有するので)、ポッドが開始しません。これを許可しない Kubernetes インストールもあります。 +**警告**: `datadog.apm.portEnabled` パラメーターによりホスト上のポートが開かれます。ファイアウォールが、アプリケーションまたは信頼できるソースからのアクセスのみを許可することを確認してください。ネットワークプラグインで `hostPorts` がサポートされていない場合は、Agent Pod の仕様に `hostNetwork: true` を追加してください。これにより、ホストのネットワークネームスペースが Datadog Agent と共有されます。これは、コンテナ上で開かれるすべてのポートがホスト上でも開かれることを意味します。ホストとコンテナの両方でポートが使用されている場合、それらは競合し (同じネットワークネームスペースを共有しているため)、Pod は起動しません。一部の Kubernetes インストールでは、これは許可されていません。 {{% /tab %}} {{< /tabs >}} -## APM 環境変数 +## APM 環境変数 {#apm-environment-variables} {{< tabs >}} {{% tab "Datadog Operator" %}} -`override.nodeAgent.containers.trace-agent.env` にその他の APM 環境変数を設定します。 +`override.nodeAgent.containers.trace-agent.env` の下に、以下のように追加の APM 環境変数を設定します。 {{< code-block lang="yaml" filename="datadog-agent.yaml" >}} apiVersion: datadoghq.com/v2alpha1 @@ -242,7 +244,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`agents.containers.traceAgent.env` にその他の APM 環境変数を設定します。 +`agents.containers.traceAgent.env` の下に、以下のように追加の APM 環境変数を設定します。 {{< code-block lang="yaml" filename="datadog-values.yaml" >}} agents: containers: @@ -252,7 +254,10 @@ agents: value: {{< /code-block >}} -{{% /tab %}}{{% tab "DaemonSet" %}}DaemonSet または Deployment (Datadog Cluster Agent 用) に環境変数を追加します。 +{{% /tab %}} +{{% tab "DaemonSet" %}} +DaemonSet または Deployment (Datadog Cluster Agent 用) に環境変数を追加します。 + ```yaml apiVersion: apps/v1 kind: DaemonSet @@ -272,38 +277,38 @@ spec: {{% /tab %}} {{< /tabs >}} -APM の構成で利用可能な環境変数のリスト: +APM の構成で利用可能な環境変数のリスト: | 環境変数 | 説明 | | -------------------- | ----------- | -| `DD_APM_ENABLED` | `true` に設定すると、Datadog Agent はトレースメトリクスを受け取ります。
    **デフォルト**: `true` (Agent 7.18 以上)。 | -| `DD_APM_ENV` | 収集したトレースに `env:` タグを設定します。 | -| `DD_APM_RECEIVER_SOCKET` | UDS 経由のトレース用。設定されている場合、有効なソケットファイルを指す必要があります。 | +| `DD_APM_ENABLED` | `true` に設定すると、Datadog Agent はトレースメトリクスを受け付けます。
    **デフォルト**: `true` (Agent 7.18 以降) | +| `DD_APM_ENV` | 収集したトレースに `env:` タグを設定します。 | +| `DD_APM_RECEIVER_SOCKET` | UDS 経由のトレース用。設定されている場合、有効なソケットファイルを指す必要があります。| | `DD_APM_RECEIVER_PORT` | TCP 経由のトレースの場合、Datadog Agent のトレースレシーバーがリッスンするポート。
    **デフォルト**: `8126` | -| `DD_APM_NON_LOCAL_TRAFFIC` | 他のコンテナからのトレース時に、非ローカルトラフィックを許可します。
    **デフォルト**: `true` (Agent 7.18 以上)。 | -| `DD_APM_DD_URL` | トレースが送信される Datadog API エンドポイント: `https://trace.agent.{{< region-param key="dd_site" >}}`。
    **デフォルト**: `https://trace.agent.datadoghq.com` | -| `DD_APM_TARGET_TPS` | サンプリングする 1 秒あたりのトレースの目標数。
    **デフォルト**: `10` | -| `DD_APM_ERROR_TPS` | 1 秒あたりに受け取るエラートレースチャンクの目標数。
    **デフォルト**: `10` | -| `DD_APM_MAX_EPS` | サンプリングする 1 秒あたりの APM イベントの最大数。
    **デフォルト**: `200` | -| `DD_APM_MAX_MEMORY` | Datadog Agent のメモリ使用量の目標値。この値を超えると、API は受信リクエストを制限します。
    **デフォルト**: `500000000` | -| `DD_APM_MAX_CPU_PERCENT` | Datadog Agent の CPU 使用率の目標値。この値を超えると、API は受信リクエストを制限します。
    **デフォルト**: `50` | -| `DD_APM_FILTER_TAGS_REQUIRE` | 指定されたスパンのタグと値が完全に一致するルートスパンを持つトレースのみを収集します。
    [APM で不要なリソースを無視する][11]を参照してください。 | -| `DD_APM_FILTER_TAGS_REJECT` | 指定されたスパンのタグと値が完全に一致するルートスパンを持つトレースを拒否します。
    [APM で不要なリソースを無視する][11]を参照してください。 | -| `DD_APM_REPLACE_TAGS` | [スパンのタグから機密データをスクラブします][4]。 | -| `DD_APM_IGNORE_RESOURCES` | Agent が無視するリソースを構成します。フォーマットはカンマ区切りの正規表現です。
    例: `GET /ignore-me,(GET\|POST) /and-also-me` | -| `DD_APM_LOG_FILE` | APM ログが書き込まれるファイルへのパス。 | -| `DD_APM_CONNECTION_LIMIT` | 30 秒のタイムウィンドウに対する最大接続数の上限。
    **デフォルト**: 2000 | -| `DD_APM_ADDITONAL_ENDPOINTS` | 複数のエンドポイントや複数の API キーにデータを送信します。
    [デュアルシッピング][12]を参照してください。 | -| `DD_APM_DEBUG_PORT` | トレース Agent のデバッグエンドポイント用ポート。サーバーを無効にするには、`0` に設定します。
    **デフォルト**: `5012`。 | -| `DD_BIND_HOST` | StatsD とレシーバーのホスト名を設定します。 | -| `DD_DOGSTATSD_PORT` | TCP 経由のトレースの場合、DogStatsD ポートを設定します。 | -| `DD_ENV` | Agent が発するすべてのデータにグローバル `env` を設定します。トレースデータに `env` が存在しない場合、この変数が使用されます。 | -| `DD_HOSTNAME` | 自動検出が失敗した場合、または Datadog Cluster Agent を実行する場合に、メトリクスに使用するホスト名を手動で設定します。 | -| `DD_LOG_LEVEL` | ログレベルを設定します。
    **値**: `trace`、`debug`、`info`、`warn`、`error`、`critical`、`off` | -| `DD_PROXY_HTTPS` | 使用するプロキシの URL をセットアップします。 | - - -## その他の参考資料 +| `DD_APM_NON_LOCAL_TRAFFIC` | 他のコンテナからのトレース時に非ローカルトラフィックを許可します。
    **デフォルト**: `true` (Agent 7.18 以降) | +| `DD_APM_DD_URL` | トレースが送信される Datadog API エンドポイント: `https://trace.agent。{{< region-param key="dd_site" >}}`.
    **Default**: `https://trace.agent.datadoghq.com` | +| `DD_APM_TARGET_TPS` | The target traces per second to sample.
    **Default**: `10` | +| `DD_APM_ERROR_TPS` | The target error trace chunks to receive per second.
    **Default**: `10` | +| `DD_APM_MAX_EPS` | Maximum number of APM events per second to sample.
    **Default**: `200` | +| `DD_APM_MAX_MEMORY` | What the Datadog Agent aims to use in terms of memory. If surpassed, the API rate limits incoming requests.
    **Default**: `500000000` | +| `DD_APM_MAX_CPU_PERCENT` | The CPU percentage that the Datadog Agent aims to use. If surpassed, the API rate limits incoming requests.
    **Default**: `50` | +| `DD_APM_FILTER_TAGS_REQUIRE` | Collects only traces that have root spans with an exact match for the specified span tags and values.
    See [Ignoring unwanted resources in APM][11]. | +| `DD_APM_FILTER_TAGS_REJECT` | Rejects traces that have root spans with an exact match for the specified span tags and values.
    See [Ignoring unwanted resources in APM][11]. | +| `DD_APM_REPLACE_TAGS` | [Scrub sensitive data from your span's tags][4]. | +| `DD_APM_IGNORE_RESOURCES` | Configure resources for the Agent to ignore. Format should be comma separated, regular expressions.
    For example: `GET /ignore-me,(GET\|POST) /and-also-me` | +| `DD_APM_LOG_FILE` | Path to file where APM logs are written. | +| `DD_APM_CONNECTION_LIMIT` | Maximum connection limit for a 30 second time window.
    **Default**: 2000 | +| `DD_APM_ADDITONAL_ENDPOINTS` | Send data to multiple endpoints and/or with multiple API keys.
    See [Dual Shipping][12]. | +| `DD_APM_DEBUG_PORT` | Port for the debug endpoints for the Trace Agent. Set to `0` to disable the server.
    **Default**: `5012`. | +| `DD_BIND_HOST` | Set the StatsD and receiver hostname. | +| `DD_DOGSTATSD_PORT` | For tracing over TCP, set the DogStatsD port. | +| `DD_ENV` | Sets the global `env` for all data emitted by the Agent. If `env` is not present in your trace data, this variable is used. | +| `DD_HOSTNAME` | Manually set the hostname to use for metrics if autodetection fails, or when running the Datadog Cluster Agent. | +| `DD_LOG_LEVEL` | Set the logging level.
    **Values**: `trace`, `debug`, `info`, `warn`, `error`, `critical`, `off` | +| `DD_PROXY_HTTPS` | 使用するプロキシの URL をセットアップします。| + + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -320,3 +325,4 @@ APM の構成で利用可能な環境変数のリスト: [10]: /ja/tracing [11]: /ja/tracing/guide/ignoring_apm_resources/?tab=kubernetes [12]: /ja/agent/configuration/dual-shipping/ +[13]: /ja/tracing/trace_collection/single-step-apm/kubernetes/ \ No newline at end of file diff --git a/content/ja/getting_started/site/_index.md b/content/ja/getting_started/site/_index.md index e6127c150de..b342033fede 100644 --- a/content/ja/getting_started/site/_index.md +++ b/content/ja/getting_started/site/_index.md @@ -2,7 +2,8 @@ algolia: tags: - site - - Datadog サイト + - datadog site +description: 政府の規制に準拠したオプションなど、地域やセキュリティ要件に合ったさまざまな Datadog サイトについて学びます。 further_reading: - link: https://learn.datadoghq.com/courses/dashboards-slos tag: ラーニングセンター @@ -12,64 +13,72 @@ further_reading: text: デュアルシッピング title: Datadog サイトの概要 --- +## 概要 {#overview} -## 概要 +Datadog では、世界中でさまざまなサイトを提供しています。各サイトは完全に独立しており、サイト間でデータを共有することはできません。サイトごとに利点があり (政府のセキュリティに関する規制など)、世界中の特定の場所にデータを保存することができます。 -Datadog では、世界中でさまざまなサイトを提供しています。各サイトは完全に独立しており、サイト間でデータを共有することはできません。各サイトを使用する利点があり(政府のセキュリティ規定など)、世界中の特定した場所にデータを保存することが可能になります。 - -## 責任の共有 +## 責任の共有 {#shared-responsibility} ユーザーデータを安全に保つ責任は、Datadog と Datadog 製品を活用する開発者の間で共有されます。 Datadog の責任は以下の通りです。 -- Datadog プラットフォームにデータが転送され、保存される際、それを安全に取り扱う信頼性の高い製品を提供します。 +- Datadog プラットフォームへのデータ転送や保存時にデータを安全に取り扱う信頼性の高い製品を提供します。 - 社内ポリシーに基づき、セキュリティ上の問題を確実に特定します。 開発者の責任は以下の通りです。 - Datadog が提供する構成値とデータプライバシーオプションを活用します。 -- 自社の環境内のコードの整合性を確実に保ちます。 - -## Datadog サイトにアクセスする - -下記の表で、Datadog ウェブサイトの URL とサイト URL を対照させると、ご使用中のサイトがわかります。 +- 自社の環境におけるコードの整合性を確保します。 -{{< img src="getting_started/site/site.png" alt="ブラウザのタブに表示されるサイトの URL" style="width:40%" >}} +## Datadog サイトにアクセスする {#access-the-datadog-site} -| サイト | サイト URL | サイトパラメーター | 所在地 | +| サイト | サイト URL | サイトパラメーター | 所在地 | |---------|-----------------------------|---------------------|----------| | US1 | `https://app.datadoghq.com` | `datadoghq.com` | US | | US3 | `https://us3.datadoghq.com` | `us3.datadoghq.com` | US | | US5 | `https://us5.datadoghq.com` | `us5.datadoghq.com` | US | | EU1 | `https://app.datadoghq.eu` | `datadoghq.eu` | EU (ドイツ) | | US1-FED | `https://app.ddog-gov.com` | `ddog-gov.com` | US | +| US2-FED | `https://us2.ddog-gov.com` | `us2.ddog-gov.com` | US | | AP1 | `https://ap1.datadoghq.com` | `ap1.datadoghq.com` | 日本 | +| AP2 | `https://ap2.datadoghq.com` | `ap2.datadoghq.com` | オーストラリア | + +カスタムドメイン (`demo.datadoghq.com` など) を使用している場合は、[**My Preferences**] (自分の設定) ページの上部にご使用のサイトが示されています。 + +{{< img src="getting_started/site/site-in-preferences.png" alt="Datadog の [My Preferences] ページの上部。組織名とサイト URL が示されています。" style="width:80%" >}} -**注**: 複数のエンドポイントを経由して複数の宛先にデータを送信するには、[デュアルシッピング][2]ガイドを参照してください。 +[**My Preferences**] に移動するには、左下にある自分のプロファイルアバターをクリックし、メニューから [**My Preferences**] を選択します。 -## SDK ドメイン +{{< img src="getting_started/site/my-preferences-menu.png" alt="左下のナビゲーションでプロファイルアバターをクリックしてアクセスする Datadog アカウントメニュー。[Personal Settings] (個人設定) の下に [My Preferences] オプションが示されています。" style="width:80%" >}} -[SDK ドメインでサポートされるエンドポイント][3]を参照してください。 +複数のエンドポイントを経由して複数の宛先にデータを送信するには、[デュアルシッピング][2] ガイドを参照してください。 -## Datadog のドキュメントをサイト別に見る +## SDK ドメイン {#sdk-domains} -Datadog サイトによって、インスタンスのセキュリティ要件に応じた異なる機能をサポートする場合があります。そのため、ドキュメントはサイトによって異なる場合があります。Datadog ドキュメントのどのページでも、右側のサイトセレクタードロップダウンメニューを使用して、情報を見たい Datadog サイトを選択することができます。 +[SDK ドメインでサポートされるエンドポイント][3] を参照してください。 + +## Datadog のドキュメントをサイト別に見る {#navigate-the-datadog-documentation-by-site} + +Datadog サイトではそれぞれ、インスタンスのセキュリティ要件に応じた異なる機能がサポートされることがあります。そのため、ドキュメントはサイトによって異なる場合があります。Datadog ドキュメントのどのページでも、右側のサイトセレクタードロップダウンメニューを使用して、情報を確認する Datadog サイトを選択することができます。 {{< img src="getting_started/site/site-selector-gs-with-tags.png" alt="ドキュメントサイトの右側にあるサイトセレクタードロップダウンメニュー" style="width:100%" >}} -例えば、Datadog for Government サイトのドキュメントを見るには、**US1-FED** を選択します。 +たとえば、Datadog for Government サイトのドキュメントを見るには、[**US1-FED**] または [**US2-FED**] を選択します。 -{{% site-region region="gov" %}} +## Datadog for Government サイトにアクセスする {#access-the-datadog-for-government-sites} -## Datadog for Government サイトにアクセスする +### US1-FED {#us1-fed} -Datadog for Government Site (US1-FED) は、アメリカ政府機関およびパートナーがそのアプリケーションやインフラストラクチャーを監視するためのサイトです。Datadog for Government site のセキュリティおよびコンプライアンスコントロール、フレームワークに関する詳細や、FedRAMP への対応については、[セキュリティページ][1]をご参照ください。 +Datadog for Government サイト (US1-FED) は、Datadog の FedRAMP Moderate 認可サイトです。US1-FED の目的は、米国政府機関およびパートナーがアプリケーションとインフラストラクチャーをモニターできるようにすることです。US1-FED のセキュリティとコンプライアンスコントロールおよびフレームワークの詳細、およびどのように FedRAMP に対応しているかの詳細は、[セキュリティページ][1] を参照してください。 -[1]: https://www.datadoghq.com/security/ -{{% /site-region %}} +### US2-FED {#us2-fed} -## その他の参考資料 +Datadog for Government サイト (US2-FED) は、IL5 認可の手続き中です。US2-FED の目的は、米国政府機関およびパートナーがアプリケーションとインフラストラクチャーをモニターできるようにすることです。詳細については、[fedramp@datadoghq.com][4] までメールでお問い合わせください。 + +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} +[1]: https://www.datadoghq.com/security/ [2]: /ja/agent/configuration/dual-shipping/ [3]: /ja/real_user_monitoring/#supported-endpoints-for-sdk-domains +[4]: mailto:fedramp@datadoghq.com \ No newline at end of file diff --git a/content/ja/ide_plugins/vscode/_index.md b/content/ja/ide_plugins/vscode/_index.md new file mode 100644 index 00000000000..c9303aa910c --- /dev/null +++ b/content/ja/ide_plugins/vscode/_index.md @@ -0,0 +1,218 @@ +--- +aliases: +- /ja/developers/ide_integrations/vscode/ +- /ja/developers/ide_plugins/vscode/ +description: Datadog のテレメトリとインサイトを VS Code などのコードエディターのソースコードに統合します。 +further_reading: +- link: /continuous_testing/ + tag: よくあるご質問 + text: Continuous Testing について +- link: /integrations/guide/source-code-integration/ + tag: よくあるご質問 + text: ソースコードインテグレーションについて説明します。 +- link: /bits_ai/mcp_server/ + tag: よくあるご質問 + text: MCP (Datadog Model Context Protocol) サーバーについて説明します。 +- link: https://www.datadoghq.com/blog/datadog-ide-plugins/ + tag: ブログ + text: Datadog の IDE Plugins を使用してトラブルシューティング中のコンテキスト切り替えを削減 +- link: https://www.datadoghq.com/blog/exception-replay-datadog/ + tag: ブログ + text: Datadog Exception Replay で本番デバッグを簡素化 +- link: https://www.datadoghq.com/blog/datadog-cursor-extension/ + tag: ブログ + text: Datadog Cursor 拡張機能を使用して、本番環境で発生している問題をデバッグします。 +is_beta: true +title: VS Code および Cursor 用の Datadog 拡張機能 +--- + + +{{% site-region region="gov,gov2" %}} +
    + Visual Studio Code の Datadog 拡張機能は、選択した Datadog サイト ({{< region-param key="dd_site_name" >}}) ではサポートされていません。 +
    +{{% /site-region %}} + +## 概要 {#overview} + +VS Code および Cursor 用の Datadog 拡張機能を使用すると、ご使用のコードエディターに Datadog を統合して、開発を加速できます。 + +{{< img src="/ide_plugins/vscode/datadog-vscode-3.png" alt="VS Code および Cursor 用の Datadog 拡張機能" style="width:100%;" >}} + +この拡張機能には以下の機能が含まれています。 + +- [**MCP (Model Context Protocol) Server**](?tab=cursor#installation): エディターの AI エージェントを Datadog の本番テレメトリ、ツール、コンテキストに接続します。 + +- [**Logs**](#logs): ログの数量を測定し、コードからログを検索します。 + +- [**Code Insights**](#code-insights): コードを開いたままで、ランタイムエラー、脆弱性、不安定なテストに関する最新情報を得られます。 + +- [**View in IDE**](#view-in-ide): Datadog のコード参照からソースファイルに直接移動します。 + +- [**Code Security**](#code-security): コミットする前にセキュリティ上の問題を検出して修正し、カスタムルールを作成します。 + +- [**Exception Replay**](#exception-replay): 本番コードをデバッグします。 + +- [**Live Debugger**](#live-debugger): 再デプロイすることなくランタイムデータをキャプチャするために、実行中のサービスに非破壊的なログポイントを追加します。 + +- [**Fix in Chat**](?tab=cursor#fix-in-chat): AI による提案と説明を利用して、コードエラー、脆弱性、不安定なテストを修正します。 + +
    特段の記載がない限り、すべての拡張機能は VS Code および Cursor などの VS Code フォークに基づくほかの IDE の両方で利用可能です。
    + +## 要件 {#requirements} + +- **Datadog アカウント**: ほとんどの機能で Datadog アカウントが必要です。 + + - Datadog を初めてご使用の場合は、[詳細はこちら][3] にアクセスして、Datadog のモニターおよびセキュリティツールについて学び、無料トライアルにご登録ください。 + - 組織で `myorg.datadoghq.com` などの [カスタムサブドメイン][18] を使用している場合は、IDE で `datadog.connection.oauth.setup.domain` 設定を使用してそのことを指定する必要があります。 + +- **Git**: 拡張機能は、IDE で Git が有効になっている場合により適切に機能します。`git.enabled` 設定でこれが有効になっていることを確認してください。 + +## インストール {#installation} + +ほかの VS Code ベースのエディターでは、インストール手順が異なる場合があります。 + +{{< tabs >}} +{{% tab "VS Code" %}} +拡張機能を IDE 内で直接、または Web からインストールします。 + +- **VS Code 内**: 拡張機能ビューを開き (`Shift` + `Cmd/Ctrl` + `X`)、`datadog` を検索し、Datadog の公式拡張機能を選択します。 + +- **Web から**: [Visual Studio Marketplace][1] の拡張機能のページからインストールします。 + +### MCP サーバーの設定 {#mcp-server-setup} + +この拡張機能には、[Datadog Model Context Protocol (MCP) サーバー][3] へのアクセスが含まれています。ご使用の Datadog 環境でエディターの AI 機能を強化するために、MCP サーバーが有効になっていることを確認してください。 + +1. チャットパネルを開き、エージェントモードを選択し、[**Configure Tools**] (ツールの構成) ボタンをクリックします。 + {{< img src="bits_ai/mcp_server/vscode_configure_tools_button.png" alt="VS Code の [Configure Tools] ボタン" style="width:60%;" >}} + +1. リストで Datadog サーバーとツールを見つけ、チェックボックスをオンにして有効にします (必要に応じて展開または更新してください)。 + +[1]: https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode +[3]: /ja/bits_ai/mcp_server/ + +{{% /tab %}} + +{{% tab "Cursor" %}} +拡張機能を IDE 内で直接、または Web からインストールします。 + +- **Cursor 内**: 拡張機能ビューを開き (`Shift` + `Cmd/Ctrl` + `X`)、`datadog` を検索し、Datadog の公式拡張機能を選択します。 + +- **Web から**: [Open VSX レジストリ][2] から VSIX ファイルをダウンロードし、Command Palette (`Shift` + `Cmd/Ctrl` + `P`) で `Extensions: Install from VSIX` を使用してインストールします。 + +### Datadog MCP Server の設定 {#datadog-mcp-server-setup} + +Datadog プラグインをインストールして、[Datadog MCP サーバー][3] を有効にします。プラグインは、[Cursor Marketplace][4] から、または [**Cursor Settings** > **Plugins**] でインストールできます。 + +[2]: https://open-vsx.org/extension/datadog/datadog-vscode +[3]: /ja/bits_ai/mcp_server/setup/?tab=cursor +[4]: https://cursor.com/marketplace/datadog + +{{% /tab %}} +{{< /tabs >}} + +## コア機能 {#core-features} + +### Logs {#logs} + +**Logs** を使用して、コード内の特定のログ行によって生成されたログの数量を測定します。この拡張機能は、Datadog のログレコードに一致する検出されたログパターンについて、コードにアノテーションを追加します。 + +{{< img src="/ide_plugins/vscode/logs_navigation.mp4" alt="ログナビゲーションのプレビュー" style="width:100%" video=true >}} + +詳細は、[ログ][20] サブセクションをご覧ください。 + +### Code Insights {#code-insights} + +**Code Insights** は、ランタイムエラー、コードの脆弱性、不安定なテストなど、コードベースに関する Datadog 生成のインサイトを提供します。 + +{{< img src="/ide_plugins/vscode/code-insights-2.png" alt="Code Insights ビュー。" style="width:100%;" >}} + +詳細は、[Code Insights][21] サブセクションをご覧ください。 + +### Code Security {#code-security} + +[**Code Security**][19] 機能は、事前定義されたルールに照らしてローカルでコードを分析し、変更をコミットする前にセキュリティ上の問題や脆弱性を検出して修正します。 + +{{< img src="/ide_plugins/vscode/static_analysis.mp4" alt="静的解析のプレビュー" style="width:100%" video=true >}} + +詳細は、[Code Security][19] サブセクションをご覧ください。 + +### Exception Replay {#exception-replay} + +**Exception Replay** を使用すると、Error Tracking コードインサイトのスタックトレースフレームを調べて、本番環境で実行されているコードの変数の値に関する情報を取得できます。 + +{{< img src="/ide_plugins/vscode/exception_replay.mp4" alt="Exception Replay のプレビュー" style="width:100%" video=true >}} + +詳細は、[例外リプレイ][22] サブセクションをご覧ください。 + +### Live Debugger {#live-debugger} + +**Live Debugger** を使用すると、実行中のサービスにログポイント (自動で期限切れになる、非破壊的なブレークポイント) を追加して、コードを再デプロイすることなくデバッグ用のランタイムデータをキャプチャできます。 + +{{< img src="/ide_plugins/vscode/live_debugger_overview.mp4" alt="Datadog の Live Debugger アクティビティの概要" style="width:100%" video=true >}} + +詳細は、[ライブデバッガー][23] サブセクションをご覧ください。 + +## その他の機能 {#other-features} + +### View in IDE {#view-in-ide} + +
    この機能は VS Code と Cursor のみで利用可能です。ほかの VS Code のフォークでは利用できません。
    + +**View in VS Code** または **View in Cursor** 機能は、Datadog からソースファイルへの直接リンクを提供します。これは、([Error Tracking][5] などの) UI に表示されるスタックトレースのフレームの横にあるボタンです。 + +{{< img src="/ide_plugins/vscode/view-in-vscode-2.png" alt="[View in VS Code] ボタンが表示されている Datadog のスタックトレース" style="width:100%;" >}} + +この機能を使用して、インサイト (Error Tracking からのエラーなど) からソースファイルを開くこともできます。 + +{{< img src="/ide_plugins/vscode/view-in-vscode-error.png" alt="[View in VS Code] ボタンが表示されている、Datadog の Error Tracking の問題" style="width:100%;" >}} + +
    この機能を使用するには、まずご使用のサービスでソースコードインテグレーションを構成してください。
    + +### Fix in Chat {#fix-in-chat} + +[**Fix in Chat**] ボタンは、拡張機能によってエラーや問題が特定された、複数のコンテキストで表示されます。このボタンをクリックすると、問題を要約し、関連する詳細やコンテキストを含め、エージェントに具体的な指示を与える AI チャットのプロンプトが生成されます。 + +{{< img src="/ide_plugins/vscode/cursor_fix_in_chat.mp4" alt="Fix in Chat を使用して、インラインコードエラーを修正する" style="width:100%" video=true >}} + +## データとテレメトリ {#data-and-telemetry} + +Datadog は、この IDE の利用状況に関する特定の情報 (IDE をどのように使用したか、IDE の使用中にエラーが発生したかどうか、それらのエラーの原因、ユーザー識別子など) を収集します。これらの情報は、[Datadog プライバシーポリシー][13] および Datadog の [VS Code 拡張機能 EULA][12] に準拠した形で取り扱われます。このデータは、拡張機能のパフォーマンスや機能の改善に利用されます。たとえば、拡張機能への遷移および拡張機能からの遷移や、サービスにアクセスするための Datadog ログインページなどがあります。 + +このデータを [Datadog][3] に送信したくない場合は、拡張機能の設定でいつでも無効にできます。[`Datadog > Telemetry > Setup > Enable Telemetry`] で [`disabled`] を選択してください。 + +
    Datadog 拡張機能には、VS Code テレメトリ設定も適用されます。
    + +## ヘルプとフィードバック {#help-and-feedback} + +フィードバックを共有するには、[team-ide-integration@datadoghq.com][14] にメールを送るか、拡張機能の [公開リポジトリ][15] で問題を作成してください。 + +既知の問題について知るには、[問題][16] セクションを確認してください。 + +[カーソル][17] またはその他の VS Code のフォークをご使用の場合は、[Open VSX レジストリ][2] に拡張機能があります。 + +## ライセンス {#license} + +この拡張機能をダウンロードまたは使用する前に、[エンドユーザー使用許諾契約書][12] をよくお読みください。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://marketplace.visualstudio.com/items?itemName=Datadog.datadog-vscode +[2]: https://open-vsx.org/extension/datadog/datadog-vscode +[3]: https://www.datadoghq.com/ +[5]: /ja/tracing/error_tracking/ +[12]: https://www.datadoghq.com/legal/eula/ +[13]: https://www.datadoghq.com/legal/privacy/ +[14]: mailto:team-ide-integration@datadoghq.com +[15]: https://github.com/DataDog/datadog-for-vscode +[16]: https://github.com/DataDog/datadog-for-vscode/issues?q=is%3Aissue+label%3A%22known+issue%22 +[17]: https://www.cursor.com/ +[18]: /ja/account_management/multi_organization/#custom-sub-domains +[19]: /ja/ide_plugins/vscode/code_security/ +[20]: /ja/ide_plugins/vscode/logs/ +[21]: /ja/ide_plugins/vscode/code_insights/ +[22]: /ja/ide_plugins/vscode/exception_replay/ +[23]: /ja/ide_plugins/vscode/live_debugger/ \ No newline at end of file diff --git a/content/ja/monitors/_index.md b/content/ja/monitors/_index.md index 596aef5d7f1..c673382e596 100644 --- a/content/ja/monitors/_index.md +++ b/content/ja/monitors/_index.md @@ -16,72 +16,83 @@ cascade: - alerts - alerting - monitoring -description: アラートプラットフォームでのモニターの作成、通知と自動化の構成、モニター管理 +description: アラートプラットフォームを使って、モニターの作成、通知や自動化の構成、モニターの管理を行います。 further_reading: -- link: https://app.datadoghq.com/release-notes?category=Alerting - tag: リリースノート - text: Datadog Alerting の最新リリースをチェック! (アプリログインが必要です)。 +- link: /api/v1/monitors/ + tag: ドキュメント + text: Datadog モニター API - link: https://dtdg.co/fe tag: Foundation Enablement - text: 効果的なモニターの作成に関するインタラクティブなセッションに参加できます + text: 効果的なモニターの作成に関するインタラクティブなセッションに参加しましょう。 - link: https://www.datadoghq.com/blog/monitoring-101-alerting/ tag: ブログ - text: モニター入門 重要事項をアラート -- link: /api/v1/monitors/ - tag: Documentation - text: Datadog モニター API + text: 'モニター入門: 重要事項をアラート' - link: https://www.datadoghq.com/blog/monitor-notification-rules/ tag: ブログ - text: Datadog モニター通知ルールでモニター アラートをルーティングする + text: Datadog モニター通知ルールを使用して、モニターのアラートをルーティングします。 +- link: https://www.datadoghq.com/blog/ecs-default-monitors/ + tag: ブログ + text: デフォルトのモニターと ECS エクスプローラーを使用して、ECS の問題をより迅速に検出して修正します。 +- link: https://www.datadoghq.com/blog/zendesk-cost-optimization + tag: ブログ + text: 'Datadog の大規模な最適化: Zendesk におけるコスト効率の良い監視可能性' +- link: https://www.datadoghq.com/blog/human-name-detection + tag: ブログ + text: Sensitive Data Scanner の ML を使用してログ内の人名を検出する +- link: https://app.datadoghq.com/release-notes?category=Alerting + tag: リリースノート + text: Datadog Alerting の最新リリースをチェックしてください。(アプリログインが必要です)。 +- link: https://learn.datadoghq.com/courses/apm-monitors-and-alerting + tag: ラーニングセンター + text: APM モニターとアラート title: モニター --- +## 概要 {#overview} -## 概要 - -Datadog モニターはインフラストラクチャーへの重要な可視性を提供し、パフォーマンス問題や障害を事前に検出し、リアルタイムに対応できるようにします。モニターを構成して主要なメトリクスやしきい値を追跡することにより、組織は即座にアラートを受け取り、問題が顧客に影響を及ぼしたりシステムのダウンタイムを引き起こす前に迅速に対応できます。 +Datadog モニターは、インフラストラクチャーに対する重要な可視性を提供し、パフォーマンスの問題や障害に対して、プロアクティブな検出とリアルタイム対応を可能にします。重要なメトリクスとしきい値を追跡するようにモニターを構成することで、組織は即座にアラートを受け取り、顧客に影響が出たりシステムのダウンタイムが起きたりする前に問題に対処できます。 -アラーティングプラットフォームを使用してメトリクス、インテグレーションの利用可能性、およびネットワークエンドポイントを確認することで、重要な変更を監視します。Datadog モニターにより、以下のことが可能になります。 +アラートプラットフォームを使用してメトリクス、インテグレーションの利用可能性、およびネットワークエンドポイントをチェックすることで、重要な変化を監視します。Datadog モニターにより、以下のことが可能になります。 - 監視および対応プロセスを簡素化する - 運用効率を高める - パフォーマンスを最適化する -## 開始する +## 始める {#get-started} -Datadog モニターを開始する最も迅速な方法は、[推奨モニター][1]を使用することです。これらは Datadog およびインテグレーションパートナーによって事前に構成された Datadog 内のモニターのコレクションです。 +Datadog モニターを始める最速の方法は、[モニターテンプレート][1] を使用することです。これらは、Datadog と統合パートナーによって事前に構成されている Datadog 内のモニターのコレクションです。 -また、ラーニングセンターのラボ環境で最初から独自のモニターを作成することもできます。または、「モニターの開始」ガイドに従ってアプリケーションにモニターを設定することもできます。 +ラーニングセンターのラボ環境で最初から独自のモニターを作成することもできます。または、「モニターの開始」ガイドに従ってアプリケーションにモニターを作成することもできます。 {{< whatsnext desc="以下のリソースを使用してモニターを作成してください。" >}} - {{< nextlink href="/getting_started/monitors/" >}}モニターの開始: メトリクスベースのモニターを構築する方法に関するガイド{{< /nextlink >}} + {{< nextlink href="/getting_started/monitors/" >}}モニターを使い始める: メトリックベースのモニターを構築する方法に関するガイド{{< /nextlink >}} {{< nextlink href="/monitors/types/" >}}モニターの種類からモニターを作成する{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}ラーニングセンター: サンドボックス環境でモニターを構築する{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}ラーニングセンター: サンドボックスラボ環境でモニターを構築する{{< /nextlink >}} {{< /whatsnext >}} -## 集計データを分析する +## 集計データを分析する{#analyze-aggregate-data} -データは十分に理解され、詳細化され、スコープによってタグ付けされ、長期間保持される必要があります。アラートや診断には、緊急度のレベルに応じてさまざまなデータタイプを使用します。すべてのアプリケーションをインスツルメントし、複雑なシステムの包括的な測定と可観測性のために可能な限り関連するデータを収集します。 +データは十分に理解され、詳細で、スコープによってタグ付けされており、長期にわたって保持されるべきです。緊急度に基づいて、アラートと診断で異なるデータタイプを使用してください。すべてのアプリケーションに対して計測を実装し、複雑なシステムの包括的な測定と可観測性のために、できるだけ多くの関連データを収集してください。 -Datadog を使用して、アプリケーションの健全性とインフラストラクチャーの状態を測定します。Datadog プラットフォーム全体からデータを使用して潜在的な問題に対してアラートを設定します。 +Datadog を使用して、アプリケーションの健康状態とインフラストラクチャーの状態を測定します。潜在的な問題に関するアラートを作成するために、Datadog プラットフォーム全体のデータを使用します。 -## 重要なことにアラートする +## 重要なことにアラートを出す{#alert-on-what-matters} -[モニター通知][2]をセットアップして、チームに問題を通知し、トラブルシューティングのガイダンスを提供します。通知を適切な担当者にルーティングし、テンプレート変数を活用して詳細を含め、メールや Slack でアラートを送信するときにスナップショットを添付します。 +[モニター通知][2] を設定して、チームに問題を通知し、トラブルシューティングのガイダンスを提供します。通知を正しい人にルーティングし、詳細を含めるためにテンプレート変数を活用し、メールや Slack でアラートを送信する際にスナップショットを添付します。 -アラートによる疲労を軽減し、チームが必要なときにアラートの解決に集中できるようにします。アプリケーションのメンテナンス中にアラートをミュートするために[ダウンタイム][3]を作成します。 +アラート疲労を軽減し、本当に問題になる時にチームがアラートの解決に集中できるようにします。アプリケーションメンテナンス中にアラートをミュートするために [ダウンタイム][3] を作成します。 -## 次のステップ +## 次のステップ{#whats-next} -モニターとアラートは、IT システムやアプリケーションの信頼性、パフォーマンス、および可用性を確保するために不可欠なツールです。これらは運用効率の維持、ユーザーエクスペリエンスの改善、および潜在的なリスクの軽減に役立ち、問題が拡大する前に迅速な検出と対応を行うことを可能にします。モニターの機能についてさらに詳しくは、以下をご覧ください。 +モニターとアラートは、IT システムとアプリケーションの信頼性、パフォーマンス、可用性を確保するための重要なツールです。悪化する前に問題を迅速に検出し、対応できるようにすることで、運用効率の維持、ユーザーエクスペリエンスの向上、潜在的リスクの軽減に役立ちます。モニターの機能について詳しく学ぶ: 1. [ダウンタイムをスケジュールしてモニターをミュートする][4] 1. [モニターを整理および管理する][5] -1. [ステータスページでアラートを調査する][6] +1. [Status ページでアラートを調査する][6] 1. [Monitor Quality ページで誤って構成されたモニターを解決する][7] -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://app.datadoghq.com/monitors/recommended +[1]: https://app.datadoghq.com/monitors/templates [2]: /ja/monitors/notify [3]: /ja/monitors/downtimes [4]: /ja/monitors/downtimes/?tab=bymonitorname diff --git a/content/ja/opentelemetry/setup/collector_exporter/install.md b/content/ja/opentelemetry/setup/collector_exporter/install.md new file mode 100644 index 00000000000..58be10b498f --- /dev/null +++ b/content/ja/opentelemetry/setup/collector_exporter/install.md @@ -0,0 +1,311 @@ +--- +aliases: +- /ja/tracing/setup_overview/open_standards/otel_collector_datadog_exporter/ +- /ja/tracing/trace_collection/open_standards/otel_collector_datadog_exporter/ +- /ja/opentelemetry/otel_collector_datadog_exporter/ +- /ja/opentelemetry/collector_exporter/ +- /ja/opentelemetry/collector_exporter/otel_collector_datadog_exporter +description: OpenTelemetry のデータを OpenTelemetry Collector と Datadog Exporter に送信する +further_reading: +- link: https://opentelemetry.io/docs/collector/ + tag: 外部サイト + text: Collector ドキュメント +- link: https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/ + tag: ブログ + text: Datadog Exporter を使用して OpenTelemetry Collector から Datadog にメトリクス、トレース、ログを送信する +- link: /opentelemetry/integrations/datadog_extension/ + tag: ドキュメント + text: Datadog 拡張機能を有効にして Fleet Automation のコレクター設定を検査する +title: OpenTelemetry Collector をセットアップする +--- +## 概要 {#overview} + +OpenTelemetry Collector は、ベンダーに依存しない方法でアプリケーションからテレメトリデータを収集、処理、エクスポートすることを可能にします。[Datadog Exporter][1] と [Datadog Connector][29] を使って構成すると、Datadog Agent を使用せずにトレース、ログ、メトリクスを Datadog に送信できます。 + +- **Datadog Exporter**: OpenTelemetry SDK が生成するトレース、メトリクス、ログデータを Datadog に (Datadog Agent なしで) 転送します +- **Datadog Connector**: 収集したスパンデータからトレースメトリクスを計算します + +{{< img src="/opentelemetry/setup/otel-collector.png" alt="図: コード内の OpenTelemetry SDK が OpenTelemetry Collector と Datadog Exporter を実行しているホストに OTLP を介してデータを送信し、このホストは Datadog の監視可能性プラットフォームにデータを転送します。" style="width:100%;" >}} + +
    このセットアップでサポートされている Datadog 機能を確認するには、フル OTel の下の機能互換性テーブルを参照してください。
    + +## インストールと構成 {#install-and-configure} + +### 1 - OpenTelemetry Collector をダウンロードします {#1-download-the-opentelemetry-collector} + +OpenTelemetry Collector Contrib ディストリビューションの最新リリースを [プロジェクトのリポジトリ][3] からダウンロードします。 + +### 2 - Datadog Exporter と Datadog コネクタを構成します {#2-configure-the-datadog-exporter-and-connector} + +Datadog Exporter と Datadog Connector を使用するには、[OpenTelemetry Collector の設定][4] に組み込みます。 + +1. `collector.yaml` という名前の構成ファイルを作成します。 +1. 次のサンプルファイルを使用して開始します。 +1. Datadog の API キーを `DD_API_KEY` 環境変数として設定します。 + +{{% otel-endpoint-note %}} + +
    AWS EKS Fargate は、現時点では OpenTelemetry Collector をサポートする環境ではありません。EKS Fargate にコレクターをデプロイすると、インフラストラクチャー ホストの請求が不正確になります。
    + +```yaml +receivers: + otlp: + protocols: + http: + endpoint: 0.0.0.0:4318 + grpc: + endpoint: 0.0.0.0:4317 + # The hostmetrics receiver is required to get correct infrastructure metrics in Datadog. + hostmetrics: + collection_interval: 10s + scrapers: + paging: + metrics: + system.paging.utilization: + enabled: true + cpu: + metrics: + system.cpu.utilization: + enabled: true + disk: + filesystem: + metrics: + system.filesystem.utilization: + enabled: true + load: + memory: + network: + processes: + # The prometheus receiver scrapes metrics needed for the OpenTelemetry Collector Dashboard. + prometheus: + config: + scrape_configs: + - job_name: 'otelcol' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + + filelog: + include_file_path: true + poll_interval: 500ms + include: + - /var/log/**/*example*/*.log + +processors: + batch: + send_batch_max_size: 100 + send_batch_size: 10 + timeout: 10s + +connectors: + datadog/connector: + +exporters: + datadog/exporter: + api: + site: {{< region-param key="dd_site" >}} + key: ${env:DD_API_KEY} + +service: + pipelines: + metrics: + receivers: [hostmetrics, prometheus, otlp, datadog/connector] + processors: [batch] + exporters: [datadog/exporter] + traces: + receivers: [otlp] + processors: [batch] + exporters: [datadog/connector, datadog/exporter] + logs: + receivers: [otlp, filelog] + processors: [batch] + exporters: [datadog/exporter] +``` + +この基本的な設定では、HTTP および gRPC 経由で OTLP データを受信できるようになり、[バッチプロセッサー][5] が設定されます。 + +Datadog エクスポーターの構成オプションの完全なリストについては、[完全にドキュメント化されたサンプル構成ファイル][8] を参照してください。デプロイメントによっては、`api::site` や `host_metadata` の設定などの追加オプションが意味を持つ場合があります。 + +#### バッチプロセッサーの構成 {#batch-processor-configuration} + +バッチプロセッサーは、開発環境以外では必須です。正確な構成は、特定のワークロードと信号タイプに依存します。 + +Datadog のインテーク上限に合わせてバッチプロセッサーを構成してください。 + +- トレースインテーク: 3.2MB +- ログインテーク: [5MB 非圧縮][6] +- メトリクス V2 インテーク: [500KB または解凍後 5MB][7] + +バッチプロセッサーでテレメトリデータをまとめすぎると、`413 - Request Entity Too Large` エラーが発生することがあります。 + +### 3 - アプリケーションを構成する {#3-configure-your-application} + +トレースのメタデータを充実させ、Datadog とのインテグレーションを円滑に行うには + +- **リソース検出システムを使用する**: 言語 SDK によって提供されている場合、コンテナ情報をリソース属性としてアタッチします。たとえば、Go では、[`WithContainer()`][9] リソースオプションを使用します。 + +- **[Unified Service Tagging][10] を適用する**: Unified Service Tagging のために、適切なリソース属性でアプリケーションを設定していることを確認してください。これにより、サービス名、デプロイ環境、サービスバージョンのタグと Datadog テレメトリが結び付きます。アプリケーションは、OpenTelemetry のセマンティック規約、`service.name`、`deployment.environment`、`service.version` を使用してこれらのタグを設定する必要があります。 + +### 4 - アプリケーションのロガーを構成する {#4-configure-the-logger-for-your-application} + +{{< img src="logs/log_collection/otel_collector_logs.png" alt="ホスト、コンテナ、またはアプリケーションがコレクター内の filelog レシーバーにデータを送信し、コレクター内の Datadog Exporter が Datadog バックエンドにデータを送信する様子を示した図" style="width:100%;">}} + +OpenTelemetry SDK のロギング機能は完全にはサポートされていないため (詳細はご自分の言語の [OpenTelemetry ドキュメント][11] を参照)、Datadog はアプリケーションに標準のロギングライブラリを使用することを推奨します。言語固有の [ログ収集ドキュメント][12] に従って、アプリケーションに適切なロガーを設定してください。Datadog は、[カスタムのパースルール][13] の使用を避けるために、ログを JSON 形式で出力するようにロギングライブラリをセットアップすることを強くお勧めします。 + +#### filelog レシーバーの構成 {#configure-the-filelog-receiver} + +[operators][14] を使用して filelog レシーバーを構成します。たとえば、`checkoutservice` というサービスが `/var/log/pods/services/checkout/0.log` にログを書き込んでいる場合、サンプルログは次のようになります。 + +``` +{"level":"info","message":"order confirmation email sent to \"jack@example.com\"","service":"checkoutservice","span_id":"197492ff2b4e1c65","timestamp":"2022-10-10T22:17:14.841359661Z","trace_id":"e12c408e028299900d48a9dd29b0dc4c"} +``` + +filelog の構成例 + +``` +filelog: + include: + - /var/log/pods/**/*checkout*/*.log + start_at: end + poll_interval: 500ms + operators: + - id: parse_log + type: json_parser + parse_from: body + - id: trace + type: trace_parser + trace_id: + parse_from: attributes.trace_id + span_id: + parse_from: attributes.span_id + attributes: + ddtags: env:staging +``` + +- `include`: レシーバーが追跡するファイルのリスト +- `start_at: end`: 新しく書き込まれたコンテンツを読み取るための信号 +- `poll_internal`: ポーリング頻度を設定 +- Operators: + - `json_parser`: JSON ログを解析します。デフォルトでは、filelog レシーバーは各ログ行をログレコードに変換します。これはログの [データモデル][15] の `body` です。次に、`json_parser` は JSON ボディをデータモデルの属性に変換します。 + - `trace_parser`: Datadog でログとトレースを相関させるために、ログから `trace_id` と `span_id` を抽出します。 + +#### OTel の `service.name` 属性をログの `service` にマップし直す {#remap-otels-servicename-attribute-to-service-for-logs} + +Datadog エクスポーターのバージョン 0.83.0 以降、OTel ログの `service` フィールドは [OTel のセマンティック規約][25] である `service.name` に基づいて設定されます。ただし、`service.name` は Datadog のログ前処理におけるデフォルトの [サービス属性][26] の 1 つではありません。 + +ログの `service` フィールドを正しく設定するため、[log service remapper プロセッサー][27] を設定して、`service.name` をログのサービスの取り込み元として指定することができます。 + +{{% collapse-content title="オプション: Kubernetes を使用する" level="h4" %}} + +
    AWS EKS Fargate は、現時点では OpenTelemetry Collector をサポートする環境ではありません。EKS Fargate にコレクターをデプロイすると、インフラストラクチャー ホストの請求が不正確になります。
    + +Kubernetes インフラストラクチャーに OpenTelemetry Collector と Datadog Exporter をデプロイする方法はいくつかあります。filelog レシーバーが機能するためには、[Agent/DaemonSet としてデプロイする][16] 方法が推奨されます。 + +コンテナ化された環境では、アプリケーションはログを `stdout` または `stderr` に書き込みます。Kubernetes はログを収集し、標準の場所に書き込みます。filelog レシーバーのために、ホストノードの場所をコレクターにマウントする必要があります。以下は、ログを送信するために必要なマウント設定を追加した [拡張例][17] です。 + +``` +apiVersion: apps/v1 +metadata: + name: otel-agent + labels: + app: opentelemetry + component: otel-collector +spec: + template: + metadata: + labels: + app: opentelemetry + component: otel-collector + spec: + containers: + - name: collector + command: + - "/otelcol-contrib" + - "--config=/conf/otel-agent-config.yaml" + image: otel/opentelemetry-collector-contrib:0.71.0 + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + # The k8s.pod.ip is used to associate pods for k8sattributes + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.pod.ip=$(POD_IP)" + ports: + - containerPort: 4318 # default port for OpenTelemetry HTTP receiver. + hostPort: 4318 + - containerPort: 4317 # default port for OpenTelemetry gRPC receiver. + hostPort: 4317 + - containerPort: 8888 # Default endpoint for querying metrics. + volumeMounts: + - name: otel-agent-config-vol + mountPath: /conf + - name: varlogpods + mountPath: /var/log/pods + readOnly: true + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + volumes: + - name: otel-agent-config-vol + configMap: + name: otel-agent-conf + items: + - key: otel-agent-config + path: otel-agent-config.yaml + # Mount nodes log file location. + - name: varlogpods + hostPath: + path: /var/log/pods + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers +``` + +{{% /collapse-content %}} + +## すぐに使える Datadog エクスポーターの構成 {#out-of-the-box-datadog-exporter-configuration} + +OpenTelemetry Collector の Contrib プロジェクトの [`exporter/datadogexporter/examples` フォルダー][31] に、Datadog エクスポーターのすぐに使える構成の実例があります。完全な構成例のファイル [`ootb-ec2.yaml`][30] を参照してください。**注**: この例は、EC2 ホスト上で直接実行されるアプリケーション用です。コンテナ化されたアプリケーションについては、[デプロイメントのドキュメント][33] を参照してください。 + +以下の各コンポーネントをニーズに合わせて構成してください。 + +{{< whatsnext desc=" " >}} + {{< nextlink href="/opentelemetry/collector_exporter/otlp_receiver/" >}}OTLP レシーバー{{< /nextlink >}} + {{< nextlink href="/opentelemetry/collector_exporter/hostname_tagging/" >}}ホスト名とタグ{{< /nextlink >}} + {{< nextlink href="/opentelemetry/collector_exporter/collector_batch_memory/" >}}バッチとメモリの設定{{< /nextlink >}} +{{< /whatsnext >}} + +## Fleet Automation でコレクター設定を検証する {#validate-your-collector-configurations-in-fleet-automation} + +Datadog 拡張機能を有効にして、Fleet Automation で OpenTelemetry Collector 構成を検査およびトラブルシューティングします。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter +[3]: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/latest +[4]: https://opentelemetry.io/docs/collector/configuration/ +[5]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/processor/batchprocessor/README.md +[6]: /ja/api/latest/logs/ +[7]: /ja/api/latest/metrics/#submit-metrics +[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml +[9]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/resource#WithContainer +[10]: /ja/getting_started/tagging/unified_service_tagging/ +[11]: https://opentelemetry.io/docs/instrumentation/ +[12]: /ja/logs/log_collection/?tab=host +[13]: /ja/logs/log_configuration/parsing/ +[14]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/stanza/docs/operators +[15]: https://opentelemetry.io/docs/reference/specification/logs/data-model/ +[16]: https://opentelemetry.io/docs/collector/deployment/#agent +[17]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml +[25]: https://opentelemetry.io/docs/specs/semconv/resource/#service +[26]: /ja/logs/log_configuration/pipelines/?tab=service#service-attribute +[27]: /ja/logs/log_configuration/processors/service_remapper/ +[28]: /ja/opentelemetry/schema_semantics/hostname/ +[29]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/datadogconnector +[30]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/ootb-ec2.yaml +[31]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/ +[32]: /ja/opentelemetry/compatibility/ +[33]: /ja/opentelemetry/collector_exporter/deployment \ No newline at end of file diff --git a/content/ja/tracing/guide/ignoring_apm_resources.md b/content/ja/tracing/guide/ignoring_apm_resources.md index dfef6f669e3..e7daf66b65a 100644 --- a/content/ja/tracing/guide/ignoring_apm_resources.md +++ b/content/ja/tracing/guide/ignoring_apm_resources.md @@ -1,65 +1,76 @@ --- +description: サンプリングルールとフィルタリングを使用してトレースから不要なリソース (健全性チェックなど) を除外し、ノイズを減らし、コストを管理する方法を説明します。 title: APM で不要なリソースを無視する --- +サービスでは、トレースから除外したいトラフィック (たとえば、健全性チェック) があるエンドポイントを扱うことがよくあります。このガイドでは、そのトラフィックを除外するために以下のアプローチを説明します。 -サービスは様々なリクエストを扱うことができますが、その中にはトレースから除外したい、またはトレースメトリクスに含めたくないものがあるかもしれません。例としては、Web アプリケーションのヘルスチェックなどが挙げられます。 +- **サンプリング**: トレースメトリクスにリクエストを表示させたいものの、トレースの取り込み量を減らしたい場合に使用します。 +- **Datadog Agent でのフィルタリング**: Agent に報告するすべてのサービスで、リクエストを完全に除外するために使用します (トレースメトリクスからも除外します)。 +- **トレーサーの構成**: フィルタリングロジックをサービスごとに適用する必要がある場合や、アプリケーション固有のコンテキストに依存する場合 (たとえば、リクエスト属性やランタイム状態) に使用します。 -次の 2 つの方法で、このようなエンドポイントをトレースせず、トレースメトリクスから除外するよう指定することができます。 +どのオプションがユーザーのユースケースに最も適しているか判断にお困りの場合は、[Datadog サポート][1] にご連絡ください。 -- [Trace Agent のコンフィギュレーション](#trace-agent-configuration-options) (Datadog Agent 内)、または -- [トレーサーのコンフィギュレーション](#tracer-configuration-options). +## サンプリング {#sampling} -
    : 以下のいずれかのオプションを使用してトレースをフィルタリングすると、トレースメトリクスからこれらのリクエストが削除されます。トレースメトリクスに影響を与えずに取り込み量を削減する方法については、取り込みコントロールを参照してください。
    +トレースメトリクスにスパンを含めたいものの、トレースから除外したい場合は、サンプリングルールを使用します。サンプリングに関する詳細は、[Ingestion Control][4] を参照してください。 -ヘルプが必要な場合は、[Datadog のサポートチーム][1]までお問合せください。 +### サンプリングルールの使用 {#using-sampling-rules} +推奨されるアプローチは、リソース名、サービス名、タグ、およびオペレーション名に基づいてトレースをサンプリングできるサンプリングルールを使用することです。 -## Trace Agent のコンフィギュレーションオプション +```shell +DD_TRACE_SAMPLING_RULES='[{"resource": "GET healthcheck", "sample_rate": 0.0}]' +``` -Datadog Agent 内の Trace Agent コンポーネントには、特定のトレースを除外するために「スパンタグの無視」と「リソースの無視」という 2 つのメソッドが用意されています。これらの設定によりトレースが取り込まれなかった場合、トレースメトリクスはこれらのリクエストを除外します。 +または、HTTP URL タグに基づいてサンプリングします。 -特定のスパンやリソースを無視するよう Trace Agent を設定すると、この特定の Datadog Agent にトレースを送信するすべてのサービスに適用されます。アプリケーション固有の要件がある場合は、代わりに[トレーサーのコンフィギュレーション](#tracer-configuration)メソッドを使用してください。 +```shell +DD_TRACE_SAMPLING_RULES='[{"tags": {"http.url": "http://.*/healthcheck$"}, "sample_rate": 0.0}]' +``` -### スパンタグに基づいて無視する +
    サンプリングの決定は、トレース内の最初のスパンを使用して行われます。フィルタリングするタグを含む {{< tooltip glossary="スパンが trace_root_span ではない場合" case="sentence" >}}、このルールは適用されません。
    -Datadog Agent 6.27.0/7.27.0 より、**filter tags** オプションは、指定されたスパンタグにマッチするルートスパンを持つトレースを無視します。このオプションは、この特定の Datadog Agent にトレースを送信するすべてのサービスに適用されます。フィルタータグが原因で無視されたトレースは、トレースメトリクスに含まれません。 +## Datadog Agent でのフィルタリング{#filtering-in-the-datadog-agent} -Datadog に送信したくないトレースのセットをプログラムで特定でき、このガイドの他のオプションで要件を解決することができない場合は、[カスタムスパンタグ][2]を追加してトレースを除外することを検討できます。[サポートにお問い合わせ][1]いただき、この機能を継続的に拡張するためのユースケースについてご相談ください。 +スパンが取り込まれないようにする場合、またはトレースメトリクスに反映されないようにする場合は、Datadog Agent でフィルタリングを使用します。 -フィルタータグオプションでは、文字列の完全一致が必要です。正規表現により除外したい場合は、「[リソースに基づいて無視する](#ignoring-based-on-resources)」を参照してください。 +Datadog Agent 内の Trace Agent コンポーネントには、特定のトレースが送信されないようにするための 2 つの方法が用意されています。スパンタグによるフィルタリングまたはリソースによるフィルタリングです。これらの設定によりトレースが削除される場合、トレースメトリクスはこれらのリクエストを除外します。 -環境変数でキーと値をスペースで区切ったリストを使うことで、require または reject するスパンタグを指定することができます。 +特定のトレースやリソースを無視するように Trace Agent を構成すると、この Datadog Agent にトレースを送信するすべてのサービスに適用されます。アプリケーション固有の要件がある場合は、代わりに[トレーサー構成](#tracer-configuration)を使用します。 -`DD_APM_FILTER_TAGS_REQUIRE` -: 指定されたスパンタグとその値が完全に一致する root スパンを持つトレースのみを収集します。このルールに一致しないトレースは破棄されます。例えば、`DD_APM_FILTER_TAGS_REQUIRE="key1:value1 key2:value2"` です。Datadog Agent 7.49 以降では、正規表現は `DD_APM_FILTER_TAGS_REGEX_REQUIRE` で指定できます。 +
    +このガイドのいずれのオプションもユーザーの要件を満たさない場合は、アプリケーションにカスタムスパンタグを追加し、それを使用して Agent でトレースを削除することを検討してください。 +
    -`DD_APM_FILTER_TAGS_REJECT` -: 指定されたスパンタグとその値が完全に一致する root スパンを持つトレースを拒否します。このルールに一致するトレースは破棄されます。例えば、`DD_APM_FILTER_TAGS_REJECT="key1:value1 key2:value2"` です。Datadog Agent 7.49 以降では、正規表現は `DD_APM_FILTER_TAGS_REGEX_REJECT` で指定できます。 +### スパンタグに基づいてトレースを無視する {#ignoring-traces-based-on-span-tags} +Datadog Agent 6.27.0/7.27.0 以降では、**フィルタータグ**オプションによって、指定されたスパンタグに一致するルートスパンを伴うトレースを削除します。このオプションは、この Datadog Agent にトレースを送信するすべてのサービスに適用されます。フィルタータグのために削除されたトレースは、トレースメトリクスには含められません。 -{{< tabs >}} -{{% tab "datadog.yaml" %}} +
    +トレース内の個々のスパンを選択して削除することはできません。ルートスパンがフィルタリング基準に一致する場合、トレース全体が破棄されます。 +
    -代わりに、Agent 構成でカンマ区切りのリストで設定することもできます。 +**一致する動作:** -{{< code-block lang="yaml" filename="datadog.yaml" >}} -apm_config: - filter_tags: - require: ["db:sql", "db.instance:mysql"] - reject: ["outcome:success", "key2:value2"] -{{< /code-block >}} +フィルタータグオプションには、正確な文字列一致が必要です。正規表現に基づくフィルタリングについては、[Ignoring based on resources](#ignoring-traces-based-on-resources) を参照してください。 -たとえば、`http.url` がこのエンドポイントに一致するヘルスチェックを無視するには次のようにします。 +複数のタグを指定すると、フィルターは **OR ロジック**を使用します: ルートスパンが**いずれか**のタグに一致する場合、トレースは削除されます。複数の条件を同時に一致させるには、それらの組み合わせ基準を表すカスタムタグを追加してください。 -{{< code-block lang="yaml" filename="datadog.yaml" >}} -apm_config: - filter_tags: - reject: ["http.url:http://localhost:5050/healthcheck"] -{{< /code-block >}} +**構成:** + +環境変数でキーと値をスペースで区切ったリストを使用して、require または reject するスパンタグを指定することができます。 + +`DD_APM_FILTER_TAGS_REQUIRE` +: 指定されたスパンのタグと値が完全に一致するルートスパンがあるトレースのみを収集します。このルールに一致しない場合、トレースは削除されます。たとえば、`DD_APM_FILTER_TAGS_REQUIRE="key1:value1 key2:value2"` の場合です。Datadog Agent 7.49 以降では、正規表現を `DD_APM_FILTER_TAGS_REGEX_REQUIRE` で指定できます。 + +`DD_APM_FILTER_TAGS_REJECT` +: 指定されたスパンのタグと値が完全に一致するルートスパンがあるトレースを拒否します。このルールに一致する場合、トレースは削除されます。たとえば、`DD_APM_FILTER_TAGS_REJECT="key1:value1 key2:value2"` の場合です。Datadog Agent 7.49 以降では、正規表現を `DD_APM_FILTER_TAGS_REGEX_REJECT` で指定できます。 + +{{< tabs >}} -{{% /tab %}} {{% tab "Kubernetes" %}} -#### Datadog Operator + +#### Datadog Operator {#datadog-operator} {{< code-block lang="yaml" filename="datadog-agent.yaml" >}} apiVersion: datadoghq.com/v2alpha1 @@ -78,7 +89,7 @@ spec: {{% k8s-operator-redeploy %}} -#### Helm +#### Helm {#helm} {{< code-block lang="yaml" filename="datadog-values.yaml" >}} agents: @@ -93,47 +104,73 @@ agents: {{% k8s-helm-redeploy %}} [1]: /ja/agent/kubernetes/?tab=helm#installation + {{% /tab %}} -{{< /tabs >}} -この方法でトレースをフィルターすると、[トレースメトリクス][3]からこれらのリクエストが削除されます。トレースメトリクスに影響を与えずに取り込みを減らす方法については、[Ingestion Controls][4] を参照してください。 +{{% tab "datadog.yaml" %}} + +これらの値を Agent の構成ファイルでカンマで区切られたリストを使用して設定することもできます。 + +{{< code-block lang="yaml" filename="datadog.yaml" >}} +apm_config: + filter_tags: + require: ["db:sql", "db.instance:mysql"] + reject: ["outcome:success", "key2:value2"] +{{< /code-block >}} -バックエンドでは、Datadog は取り込み後に以下のスパンタグを作成し、スパンに追加します。なお、これらのタグは Datadog Agent レベルでトレースをドロップするためには使用できません。エージェントは取り込み前に利用可能なタグに基づいてのみフィルタリングを行うためです。 +たとえば、`http.url` がこのエンドポイントと一致する健全性チェックを無視するように設定するには次のようにします。 + +{{< code-block lang="yaml" filename="datadog.yaml" >}} +apm_config: + filter_tags: + reject: ["http.url:http://localhost:5050/healthcheck"] +{{< /code-block >}} +{{% /tab %}} -| 名前 | 説明 | -|-----------------------------------------|--------------------------------------------------| -| `http.path_group` | `http.url` タグからの完全な URL パス。 | -| `http.url_details.host` | `http.url` タグのホスト名部分。 | -| `http.url_details.path` | HTTP リクエスト行で渡された完全なリクエスト対象、またはそれに相当するもの。 | -| `http.url_details.scheme` | `http.url` タグからのリクエストスキーム。 | -| `http.url_details.queryString` | `http.url` タグからのクエリ文字列部分。 | -| `http.url_details.port` | `http.url` タグからの HTTP ポート。 | -| `http.useragent_details.os.family` | User-Agent によって報告された OS ファミリー。 | -| `http.useragent_details.browser.family` | User-Agent によって報告されたブラウザファミリー。 | -| `http.useragent_details.device.family` | User-Agent によって報告されたデバイスファミリー。 | +{{< /tabs >}} -
    : 2022 年 10 月 1 日以降、Datadog バックエンドは、取り込まれたすべてのスパンについてトレーサー間でスパンタグのセマンティクスを適用するためにリマッピングを適用します。Datadog Agent レベルでタグに基づいてスパンをドロップしたい場合、Remap from 列でタグを使用します。
    -#### ネットワーク通信 +#### 利用可能なスパンタグ {#available-span-tags} -| **名前** | **Remap from** | +バックエンドでは、Datadog は取り込み後のスパンに次のスパンタグを作成します。 + +**注**: これらのタグは、Datadog Agent レベルでトレースを削除するために使用することはできません。Agent は、取り込み前に利用可能なタグに基づいてのみフィルタリングを行います。 + +| 名前 | 説明 | +|-----------------------------------------|--------------------------------------------------| +| `http.path_group` | `http.url` タグからの完全な URL パス | +| `http.url_details.host` | `http.url` タグのホスト名部分 | +| `http.url_details.path` | HTTP リクエスト行で渡された完全なリクエスト対象、またはそれに相当するもの| +| `http.url_details.scheme` | `http.url` タグからのリクエストスキーム | +| `http.url_details.queryString` | `http.url` タグからのクエリ文字列部分| +| `http.url_details.port` | `http.url` タグからの HTTP ポート | +| `http.useragent_details.os.family` | User-Agent によって報告された OS ファミリー | +| `http.useragent_details.browser.family` | User-Agent によって報告されたブラウザファミリー | +| `http.useragent_details.device.family` | User-Agent によって報告されたデバイスファミリー | + +
    2022 年 10 月 1 日以降、Datadog のバックエンドでは スパンタグのセマンティック +を、すべての取り込まれたスパンにわたるすべてのトレーサーに適用するために再マッピングを実施します。Datadog Agent レベルでルートスパンタグに基づいてトレースを削除したい場合は、リマップ元列のタグを使用してください。
    + +##### ネットワーク通信 {#network-communications} + +| **名前** | **リマップ元** | |----------------------------|-----------------------------------------------------| | `network.host.ip` | `tcp.local.address` - Node.js | | `network.destination.ip` | `out.host` - すべての言語 | | `network.destination.port` | `grpc.port` - Python
    `tcp.remote.port` - Node.js
    `out.port` - すべての言語 | -#### HTTP リクエスト +##### HTTP リクエスト{#http-requests} -| **名前** | **Remap from** | +| **名前** | **リマップ元** | |--------------------------------|-------------------------------------------------------------------------------------------------------| | `http.route` | `aspnet_core.route` - .NET
    `aspnet.route` - .NET
    `laravel.route` - PHP
    `symfony.route` - PHP | | `http.useragent` | `user_agent` - Java、C++ | | `http.url_details.queryString` | `http.query.string` - Python | -#### データベース +##### データベース {#database} -| **名前** | **Remap from** | +| **名前** | **リマップ元** | |----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `db.system` | `db.type` - Java、Python、Node.js、Go
    `active_record.db.vendor` - Ruby
    `sequel.db.vendor` - Ruby | | `db.instance` | `mongodb.db` - Python
    `sql.db` - Python
    `db.name` - すべての言語 | @@ -146,16 +183,16 @@ agents: | `db.mongodb.collection` | `mongodb.collection` - Python、.NET、Ruby、PHP | | `db.cosmosdb.container` | `cosmosdb.container` - .NET | -#### メッセージキュー +##### メッセージキュー {#message-queue} -| **名前** | **Remap from** | +| **名前** | **リマップ元** | |----------------------------------------|------------------------------------------------------------------------------------------------------------| | `messaging.destination` | `amqp.destination` - Node.js
    `amqp.queue` - .NET
    `msmq.queue.path` - .NET
    `aws.queue.name` - .NET | | `messaging.url` | `aws.queue.url` - .NET、Java | | `messaging.message_id` | `server_id` - Go | | `messaging.message_payload_size` | `message.size` - .NET、Java | | `messaging.operation` | `amqp.command` - .NET
    `msmq.command` - .NET | -| `messaging.rabbitmq.routing_key` | `amqp.routing_key` - Java
    `amqp.routingKey` - Nodes.js | +| `messaging.rabbitmq.routing_key` | `amqp.routing_key` - Java
    `amqp.routingKey` - Node.js | | `messaging.rabbitmq.delivery_mode` | `messaging.rabbitmq.exchange` - .NET | | `messaging.msmq.message.transactional` | `msmq.message.transactional` - .NET | | `messaging.msmq.queue.transactional` | `msmq.queue.transactional` - .NET | @@ -166,9 +203,9 @@ agents: | `messaging.msmq.message.transactional` | `msmq.message.transactional` - .NET | -#### リモートプロシージャコール +##### リモートプロシージャコール{#remote-procedure-calls} -| **名前** | **Remap from** | +| **名前** | **リマップ元** | |--------------------------------|---------------------------------------------------------------------------------------------------------| | `rpc.service` | `grpc.method.service` - Python、.NET | | `rpc.method` | `grpc.method.name` - Python、.NET、Go | @@ -176,40 +213,49 @@ agents: | `rpc.grpc.status_code` | `grpc.code` - Go
    `status.code` - Python、.NET、Node.js
    `grpc.status.code` - Python、.NET、Node.js | | `rpc.grpc.kind` | `grpc.method.kind` - Python、Node.js、Go、.NET | | `rpc.grpc.path` | `rpc.grpc.path` - Python、Node.js、Go、.NET | -| `rpc.grpc.request.metadata.*` | `grpc.request.metadata.*` - Python、Node.js
    `rpc.grpc.request.metadata` - Go | -| `rpc.grpc.response.metadata.*` | `grpc.response.metadata.*` - Python、Node.js | +| `rpc.grpc.request.metadata.*` | `grpc.request.metadata.*` - Python、Node.js
    `rpc.grpc.request.metadata` - Go | +| `rpc.grpc.response.metadata.*` | `grpc.response.metadata.*` - Python、Node.js -#### エラー +##### エラー {#errors} -| **名前** | **Remap from** | +| **名前** | **リマップ元** | |--------------------------------|---------------------------------------------------------------------------------------------------------| | `error.message` | `error.msg` - すべての言語 | -### リソースに基づいて無視する +### リソースに基づいてトレースを無視する {#ignoring-traces-based-on-resources} -**ignore resources** オプションを使用すると、トレースのグローバルルートスパンが特定の基準に一致する場合にリソースを除外することができます。[リソースを収集から除外][5]を参照してください。このオプションは、この特定の Datadog Agent にトレースを送信するすべてのサービスに適用されます。ignore resources により無視されたトレースは、トレースメトリクスに含まれません。 +**リソースを無視**オプションは、トレースのグローバルルートスパンが特定の基準に一致する場合にリソースを除外できるようにします。[リソースを収集から除外する][5] を参照してください。このオプションは、この特定の Datadog Agent にトレースを送信するすべてのサービスに適用されます。リソースを無視が原因で削除されたトレースは、トレースメトリクスに含まれません。 -無視するリソースは、Agent のコンフィギュレーションファイル、`datadog.yaml`、または `DD_APM_IGNORE_RESOURCES` 環境変数で指定します。以下の例を参照してください。 +無視するリソースは、Agent の構成ファイル `datadog.yaml` 内で指定するか、`DD_APM_IGNORE_RESOURCES` 環境変数で指定します。以下の例を参照してください。 + +`datadog.yaml` を使用する。 {{< code-block lang="yaml" filename="datadog.yaml" >}} apm_config: ## @param ignore_resources - list of strings - optional -## 正規表現のリストを提供し、リソース名に基づいて特定のトレースを除外することができます。 -## すべての入力項目は二重引用符で囲み、カンマ区切りにする必要があります。 +## A list of regular expressions can be provided to exclude certain traces based on their resource name. +## All entries must be surrounded by double quotes and separated by commas. ignore_resources: ["(GET|POST) /healthcheck","API::NotesController#index"] {{< /code-block >}} +`DD_APM_IGNORE_RESOURCES` を使用する。 + +```shell +DD_APM_IGNORE_RESOURCES="(GET|POST) /healthcheck,API::NotesController#index" +``` + **注**: -- Trace Agent が許容する正規表現の構文は、Go の [regexp][6] によって評価されます。 -- デプロイ戦略によっては、特殊文字をエスケープして正規表現を調整しなければならない場合もあります。 +- 環境変数形式 (`DD_APM_IGNORE_RESOURCES`) を使用する場合、値はカンマ区切りの文字列のリストとして指定する必要があります。 +- Trace Agent が受け入れる正規表現の構文は、Go の [regexp][6] によって評価されます。 +- デプロイ戦略によっては、特殊文字をエスケープして正規表現を調整しなければならない場合があります。 - Kubernetes で専用コンテナを使用している場合は、ignore resource オプションの環境変数が **trace-agent** コンテナに適用されていることを確認してください。 -#### 例 +#### 例 {#example} -トレースを必要としない `/api/healthcheck` の呼び出しを含むトレースを考えてみましょう。 +トレースから除外する `/api/healthcheck` への呼び出しを含むトレースを考えてみましょう。 -{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="トレーサーに無視させたいリソースのフレームグラフ" style="width:90%;">}} +{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="SDK が無視するよう指定するリソースのフレームグラフ" style="width:90%;">}} グローバルルートスパンのリソース名に注意してください。 @@ -217,7 +263,7 @@ apm_config: - リソース名: `Api::HealthchecksController#index` - Http.url: `/api/healthcheck` -ignore resource オプションを正しく使用するためには、記述された正規表現ルールがリソース名 `Api::HealthchecksController#index` に一致している必要があります。いくつかの正規表現オプションが利用できますが、このリソースからのトレースをそのままフィルタリングする場合は `Api::HealthchecksController#index$` を使用するのが良いでしょう。 +リソースを無視オプションを正しく使用するには、記載かれた正規表現ルールがリソース名 `Api::HealthchecksController#index` と一致する必要があります。いくつかの正規表現オプションが可能ですが、このリソースからトレースを現状のまま正確にフィルタリングする場合、使用可能な正規表現は、`Api::HealthchecksController#index$` です。 デプロイ方法に応じて、構文は少しずつ異なります。 @@ -229,7 +275,7 @@ apm_config: ignore_resources: Api::HealthchecksController#index$ {{< /code-block >}} -複数の値の場合 +複数の値の場合: {{< code-block lang="yaml" >}} apm_config: @@ -237,21 +283,21 @@ apm_config: {{< /code-block >}} {{% /tab %}} -{{% tab "Docker compose" %}} +{{% tab "Docker Compose" %}} -Datadog Agent コンテナの環境変数のリストに、以下の例のようなパターンで `DD_APM_IGNORE_RESOURCES` を追加します。Docker Compose には、独自の[変数の置換][1]機能があり、`$` などの特殊文字を使用する場合に考慮する必要があります。 +Datadog Agent コンテナの環境変数リストに `DD_APM_IGNORE_RESOURCES` を追加し、以下の例のようなパターンを使用します。Docker Compose には、`$` などの特殊文字を使用する際に考慮すべき独自の [変数置換][1] があります。 {{< code-block lang="yaml" >}} environment: - // その他の Datadog Agent の環境変数 + // other Datadog Agent environment variables - DD_APM_IGNORE_RESOURCES=Api::HealthchecksController#index$$ {{< /code-block >}} -複数の値の場合 +複数の値の場合: {{< code-block lang="yaml" >}} environment: - // その他の Datadog Agent の環境変数 + // other Datadog Agent environment variables - DD_APM_IGNORE_RESOURCES="value1","Api::HealthchecksController#index$$" {{< /code-block >}} @@ -259,7 +305,7 @@ Datadog Agent コンテナの環境変数のリストに、以下の例のよう {{% /tab %}} {{% tab "Docker run" %}} -Datadog Agent をスピンアップするための docker run コマンドに、`DD_APM_IGNORE_RESOURCES` を追加します。 +Datadog Agent をスピンアップするための docker run コマンドに `DD_APM_IGNORE_RESOURCES` を追加します。 {{< code-block lang="shell" >}} docker run -d --name datadog-agent \ @@ -272,23 +318,23 @@ docker run -d --name datadog-agent \ -e DD_APM_IGNORE_RESOURCES="Api::HealthchecksController#index$" \ -e DD_APM_ENABLED=true \ -e DD_APM_NON_LOCAL_TRAFFIC=true \ - gcr.io/datadoghq/agent:latest + registry.datadoghq.com/agent:latest {{< /code-block >}} -複数の値の場合 +複数の値の場合: {{< code-block lang="yaml" >}} -e DD_APM_IGNORE_RESOURCES=["value1","Api::HealthchecksController#index$"] \ {{< /code-block >}} {{% /tab %}} -{{% tab "Kubernetes daemonset" %}} +{{% tab "Kubernetes DaemonSet" %}} -trace-agent 専用コンテナに、環境変数 `DD_APM_IGNORE_RESOURCES` を追加します。 +trace-agent 専用コンテナに環境変数 `DD_APM_IGNORE_RESOURCES` を追加します。 {{< code-block lang="yaml" >}} - name: trace-agent - image: "gcr.io/datadoghq/agent:latest" + image: "registry.datadoghq.com/agent:latest" imagePullPolicy: IfNotPresent command: ["trace-agent", "-config=/etc/datadog-agent/datadog.yaml"] resources: {} @@ -325,7 +371,7 @@ trace-agent 専用コンテナに、環境変数 `DD_APM_IGNORE_RESOURCES` を value: "Api::HealthchecksController#index$" {{< /code-block >}} -複数の値の場合 +複数の値の場合: {{< code-block lang="yaml" >}} - name: DD_APM_IGNORE_RESOURCES @@ -335,25 +381,25 @@ trace-agent 専用コンテナに、環境変数 `DD_APM_IGNORE_RESOURCES` を {{% /tab %}} {{% tab "Kubernetes Helm" %}} -`values.yaml` ファイルの `traceAgent` セクションで、`env` セクションに `DD_APM_IGNORE_RESOURCES` を追加し、[通常通りに Helm をスピンアップ][1]します。 +`values.yaml` ファイルの `traceAgent` セクションで、`env` セクションに `DD_APM_IGNORE_RESOURCES` を追加し、その後 [通常通り helm をスピンアップします][1]。 {{< code-block lang="yaml" filename="values.yaml" >}} traceAgent: - # agents.containers.traceAgent.env -- trace-agent コンテナ向けの追加の環境変数 + # agents.containers.traceAgent.env -- Additional environment variables for the trace-agent container env: - name: DD_APM_IGNORE_RESOURCES value: Api::HealthchecksController#index$ {{< /code-block >}} -複数の値の場合 +複数の値の場合: {{< code-block lang="yaml" >}} - name: DD_APM_IGNORE_RESOURCES value: value1, Api::HealthchecksController#index$ {{< /code-block >}} -代わりに、`helm install` コマンドで `agents.containers.traceAgent.env` を設定することもできます。  +または、`helm install` コマンドに `agents.containers.traceAgent.env` を設定することもできます。 {{< code-block lang="shell" >}} helm install dd-agent -f values.yaml \ @@ -367,11 +413,11 @@ helm install dd-agent -f values.yaml \ {{% /tab %}} {{% tab "Amazon ECS タスク定義" %}} -Amazon ECS を使用している場合 (例えば、EC2 上で)、Datadog Agent のコンテナ定義に環境変数 `DD_APM_IGNORE_RESOURCES` を追加し、その値が次のような JSON に評価されるようにします。 +Amazon ECS を使用している場合 (たとえば、EC2 上で)、Datadog Agent のコンテナ定義に環境変数 `DD_APM_IGNORE_RESOURCES` を追加し、その値が次のような JSON に評価されるようにします。 {{< code-block lang="json" >}} "environment": [ - // Datadog Agent 向けのその他の環境変数 + // other environment variables for the Datadog Agent { "name": "DD_APM_IGNORE_RESOURCES", "value": "Api::HealthchecksController#index$" @@ -382,22 +428,24 @@ Amazon ECS を使用している場合 (例えば、EC2 上で)、Datadog Agent {{% /tab %}} {{< /tabs >}} -
    : このようにトレースをフィルタリングすると、トレースメトリクスからこれらのリクエストが削除されます。トレースメトリクスに影響を与えずに取り込み量を削減する方法については、取り込みコントロールを参照してください。
    +
    この方法でトレースをフィルタリングすると、これらのリクエストがトレースメトリクスから削除されます。トレースメトリクスに影響を与えずに取り込みを削減する方法については、Ingestion Control を参照してください。
    -## トレーサーのコンフィギュレーションオプション +## トレーサーの構成 {#tracer-configuration} -言語固有のトレーサーの中には、Datadog Agent に送信する前にスパンを修正するオプションがあります。アプリケーション固有の要件があり、以下の言語を使用している場合にはこのオプションを使用してください。 +一部の言語トレーサーは、Datadog Agent に送信される前にトレースを除外する場合があります。アプリケーション固有の要件がある場合は、このオプションを使用してください。 -
    重要: リクエストが分散されたトレースに関連付けられている場合、これらのフィルタリングルールを通じて部分的に除外すると、結果として得られるトレースのサンプリングが不正確になる場合があります。
    +
    +1. リクエストが分散されたトレースに関連付けられている場合、これらのフィルタリングルールを通じて部分的に除外すると、結果として得られるトレースのサンプリングが不正確になる場合があります。
    +2. この方法でトレースをフィルタリングすると、これらのリクエストがトレースメトリクスから削除されます。トレースメトリクスに影響を与えずに取り込みを削減する方法については、Ingestion Control を参照してください。
    {{< programming-lang-wrapper langs="ruby,python,nodeJS,java" >}} {{< programming-lang lang="ruby" >}} -Ruby トレーサーには、特定の条件を満たすトレースを除去する後処理パイプラインがあります。詳しい情報や例は[トレースの後処理][1]を参照してください。 +Ruby トレーサーには、特定の基準を満たすトレースを削除する後処理パイプラインがあります。詳細情報と例は、[トレースの後処理][1] を参照してください。 -たとえば、リソース名が `Api::HealthchecksController#index` である場合、そのリソース名を含むトレースを除去するために `Datadog::Tracing::Pipeline::SpanFilter` クラスを使用します。このフィルターは、[スパンオブジェクト][2]で利用可能な他のメタデータを照合するためにも使用できます。 +たとえば、リソース名が `Api::HealthchecksController#index` の場合、リソース名を含むトレースを削除するには `Datadog::Tracing::Pipeline::SpanFilter` クラスを使用します。このフィルターは、[スパンオブジェクト][2] に利用可能な他のメタデータに対して一致させる目的でも使用できます。 ``` Datadog::Tracing.before_flush( @@ -411,36 +459,46 @@ Datadog::Tracing.before_flush( {{< programming-lang lang="python" >}} -Pythonトレーサーには、特定のエンドポイントからのトレースを削除するように設定できる `FilterRequestsOnUrl` フィルターがあります。また、カスタムフィルターを書くこともできます。詳細は[トレースフィルター][1] を参照してください。 +Python トレーサーは、不要なトレースをフィルタリングするオプションを提供します。 -ルートスパンの `http.url` スパンタグの値が `http:///healthcheck` の場合の例を考えます。`healthcheck` で終わるすべてのエンドポイントに一致するよう、次の正規表現を使用します。 +### カスタムフィルターの使用 {#using-custom-filters} -``` -from ddtrace import tracer -from ddtrace.filters import FilterRequestsOnUrl -tracer.configure(settings={ - 'FILTERS': [ - FilterRequestsOnUrl(r'http://.*/healthcheck$'), - ], -}) +高度なユースケースでは、カスタムフィルターを作成できます。 + +```py +from ddtrace.trace import tracer +from ddtrace.trace import TraceFilter +import re + +class CustomFilter(TraceFilter): + def __init__(self, pattern): + self.pattern = re.compile(pattern) + + def process_trace(self, trace): + for span in trace: + if span.get_tag('http.url') and self.pattern.match(span.get_tag('http.url')): + return None # Drop the trace + return trace # Keep the trace + +# Configure the SDK with your custom filter +tracer.configure(trace_processors=[CustomFilter(r'http://.*/healthcheck$')]) ``` -[1]: https://ddtrace.readthedocs.io/en/stable/advanced_usage.html#ddtrace.filters.FilterRequestsOnUrl {{< /programming-lang >}} {{< programming-lang lang="nodeJS" >}} -[Http][1] プラグインにブロックリストを設定します。ブロックリストが一致する対象については API ドキュメントを参照してください。例えば、受信 Http リクエストは URL パスに一致するため、トレースの `http.url` スパンタグが `http:///healthcheck` であれば、`healthcheck` URL に一致するルールを記述します。 +[Http][1] プラグインにブロックリストを構成します。API ドキュメントでブロックリストと一致するものをメモしてください。たとえば、受信する Http リクエストは URL パスと一致するため、トレースの `http.url` スパンタグが `http:///healthcheck` の場合、`healthcheck` URL に一致するルールを作成します。 ``` const tracer = require('dd-trace').init(); tracer.use('http', { - // 受信 http リクエストはパスに一致する + // incoming http requests match on the path server: { blocklist: ['/healthcheck'] }, - // 発信 http リクエストは完全な URL で一致する + // outgoing http requests match on a full URL client: { blocklist: ['https://telemetry.example.org/api/v1/record'] } @@ -449,21 +507,21 @@ tracer.use('http', { //import http ``` -
    : インテグレーションのためのトレーサーコンフィギュレーションは、インスツルメントされたモジュールがインポートされる前に行う必要があります。
    +
    統合する SDK 構成は、そのインスツルメンテーションモジュールがインポートされるに行う必要があります。
    [1]: https://datadoghq.dev/dd-trace-js/interfaces/export_.plugins.connect.html#blocklist {{< /programming-lang >}} {{< programming-lang lang="java" >}} -Java トレーサーには、カスタム `TraceInterceptor` で特定のスパンをフィルタリングするオプションがあります。[トレーサーの拡張][1]を参照してください。 +Java トレーサーには、特定のスパンをフィルタリングするためのカスタム `TraceInterceptor` オプションがあります。[トレーサーの拡張][1] を参照してください。 -例えば、リソース名が `GET /healthcheck` であれば、このリソース名を含むトレースを無視するトレースインターセプターを記述します。ユースケースに合わせてロジックを調整してください。 +たとえば、リソース名が `GET /healthcheck` の場合、このリソース名を含むトレースを除外するトレースインターセプターを作成します。ユースケースに一致するようロジックを調整してください。 ``` public class GreetingController { static { - // クラスの static ブロックで複数回の初期化を回避。 + // In a class static block to avoid initializing multiple times. GlobalTracer.get().addTraceInterceptor(new TraceInterceptor() { @Override public Collection onTraceComplete(Collection trace) { @@ -487,6 +545,7 @@ public class GreetingController { {{< /programming-lang >}} {{< /programming-lang-wrapper >}} + [1]: /ja/help/ [2]: /ja/tracing/trace_collection/custom_instrumentation/otel_instrumentation/ [3]: /ja/tracing/guide/metrics_namespace/ diff --git a/content/ja/tracing/metrics/metrics_namespace.md b/content/ja/tracing/metrics/metrics_namespace.md index ea09adf5998..14e35bfc9d0 100644 --- a/content/ja/tracing/metrics/metrics_namespace.md +++ b/content/ja/tracing/metrics/metrics_namespace.md @@ -1,159 +1,166 @@ --- algolia: tags: - - トレースメトリクス + - trace metrics aliases: - /ja/tracing/getting_further/metrics_namespace - /ja/tracing/guide/metrics_namespace +description: 'APM トレースメトリクスの包括的ガイド: ネームスペース、タイプ (ヒット、エラー、レイテンシー、Apdex)、およびアプリケーショントラフィックからの計算方法。' further_reading: +- link: tracing/trace_pipeline/generate_metrics/ + tag: よくあるご質問 + text: 取り込んだスパンからカスタムメトリクスを作成する - link: tracing/trace_collection/ - tag: ドキュメント - text: アプリケーションで APM トレースをセットアップする方法 -- link: tracing/service_catalog/ - tag: ドキュメント + tag: よくあるご質問 + text: アプリケーションで APM トレーシングをセットアップする方法 +- link: tracing/software_catalog/ + tag: よくあるご質問 text: Datadog に報告するサービスの発見とカタログ化 - link: tracing/services/service_page - tag: ドキュメント + tag: よくあるご質問 text: Datadog のサービスについて - link: tracing/services/resource_page - tag: ドキュメント + tag: よくあるご質問 text: リソースのパフォーマンスとトレースの詳細 - link: tracing/trace_explorer/trace_view/ - tag: ドキュメント - text: Datadog トレースの読み方を理解する + tag: よくあるご質問 + text: Datadog トレースの読み取り方を理解する title: トレースメトリクス --- +## 概要 {#overview} -## 概要 - -[トレース収集の有効化とアプリケーションのインスツルメント][1]を行うと、トレースアプリケーションメトリクスが収集されます。 +[トレース収集の有効化とアプリケーションのインスツルメント][1] を行うと、トレースアプリケーションメトリクスが収集されます。 {{< img src="tracing/apm_lifecycle/trace_metrics.png" style="width:70%; background:none; border:none; box-shadow:none;" alt="トレースメトリクス" >}} -これらのメトリクスは、リクエスト回数、エラー回数、およびレイテンシーの測定値をキャプチャします。これらは、[トレース取り込みサンプリング][2]の構成に関係なく、アプリケーションの 100% のトラフィックに基づいて計算されます。これらのメトリクスを使用して、サービスやリソースの潜在的なエラーを発見し、ダッシュボード、モニター、SLO を作成することで、アプリケーションのトラフィックを完全に可視化することができます。 +これらのメトリクスは、リクエスト数、エラー数、およびレイテンシーの測定値を取得します。これらは、[トレース取り込みサンプリング][2] の設定に関係なく、アプリケーションのトラフィックの 100% に基づいて計算されます。これらのメトリクスを使用してサービスやリソースの潜在的なエラーを特定し、ダッシュボード、モニター、および SLO を作成することで、アプリケーションのトラフィックの完全な可視性を確保します。 -**注**: アプリケーションやサービスが OpenTelemetry ライブラリでインスツルメンテーションされ、SDK レベルやコレクターレベルでサンプリングを設定した場合、APM メトリクスはサンプリングされたデータセットに基づいて計算されます。 +**注**: アプリケーションが OpenTelemetry ライブラリで計測され、SDK レベルでサンプリングが設定されている場合、APM メトリクスはサンプリングされたデータセットに基づいて計算されます。ただし、OpenTelemetry Collector レベルでサンプリングが設定され、サンプラープロセッサーが Datadog コネクタの上流にある場合、APM メトリクスはアプリケーショントラフィックの 100% に基づいて計算されます。 -トレースメトリクスは、インテグレーション言語によって、サービスエントリースパンや特定のオペレーションに対して生成されます。例えば、Django インテグレーションでは、様々な操作を表すスパン (Django リクエスト用のルートスパン 1 つ、各ミドルウェア用のスパン 1 つ、ビュー用のスパン 1 つ) からトレースメトリクスを生成しています。 +トレースメトリクスは、インテグレーション言語によって、サービスエントリスパンや特定のオペレーションに対して生成されます。たとえば、Django インテグレーションでは、さまざまな操作を表すスパン (Django リクエスト用のルートスパン 1 つ、各ミドルウェア用のスパン 1 つ、ビュー用のスパン 1 つ) からトレースメトリクスを生成しています。 -[トレースメトリクス][3]のネームスペースは、次のようなフォーマットになっています。 +[トレースメトリクス][3] のネームスペースは、次のようなフォーマットになっています。 -- `trace.<スパン名>.<メトリクスサフィックス>` +- `trace..` 次の定義と組み合わせます。 `` -: 操作の名前または `span.name`(例: `redis.command`、`pylons.request`、`rails.request`、`mysql.query`)。 +: オペレーションの名前または `span.name` (例: `redis.command`、`pylons.request`、`rails.request`、`mysql.query`)。 `` -: The name of the metric (examples: `hits`, `errors`, `apdex`, `duration`). See the section below. +: メトリクスの名前 (例: `hits`、`errors`、`apdex`、`duration`)。以下のセクションを参照してください。 `` -: Trace metrics tags, possible tags are: `env`, `service`, `version`, `resource`, `http.status_code`, `http.status_class`, and Datadog Agent tags (including the host and second primary tag). -**Note:** Other tags set on spans are not available as tags on traces metrics. +: トレースメトリクスタグ、可能なタグは: `env`、`service`、`version`、`resource`、`http.status_code`、`http.status_class`、`rpc.grpc.status_code` (Datadog Agent v7.65.0+ が必要)、および Datadog Agent タグ (ホストおよび [追加のプライマリタグ][4] を含む)。 +: **注:** スパンに設定された他のタグは、トレースメトリクスのタグとしては利用できません。 -## メトリクスサフィックス +## メトリクスサフィックス {#metric-suffix} -### Hits +### ヒット {#hits} `trace..hits` -: **Prerequisite:** This metric exists for any APM service.
    -**Description:** Represent the count of spans created with a specific name (for example, `redis.command`, `pylons.request`, `rails.request`, or `mysql.query`).
    -**Metric type:** [COUNT][5].
    -**Tags:** `env`, `service`, `version`, `resource`, `resource_name`, `http.status_code`, all host tags from the Datadog Host Agent, and [the second primary tag][4]. +: **前提条件:** このメトリクスは、すべての APM サービスに存在します。
    +**説明:** 特定の名前 (例: `redis.command`、`pylons.request`、`rails.request`、または `mysql.query`) で作成されたスパンのカウントを表します。
    +**メトリクスタイプ:** [COUNT][5]
    +**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_code`、`rpc.grpc.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加のプライマリタグ][4]。 `trace..hits.by_http_status` -: **前提条件:** このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。 -
    -**説明:** 特定のスパンのブレイクダウンの HTTP ステータスコード別ヒット数を表します。
    -**メトリクスタイプ:** [COUNT][5]。
    -**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_class`、`http.status_code`、Datadog Host Agent からのすべてのホストタグ、[第 2 プライマリタグ][4]。 +: **前提条件:** このメトリクスは、HTTP メタデータが存在する場合、HTTP/WEB APM サービスに存在します。
    +**説明:** 特定のスパンのヒット数を HTTP ステータスコード別に表します。
    +**メトリクスタイプ:** [COUNT][5]
    +**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_class`、`http.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加のプライマリタグ][4]。 -### レイテンシー分布 +### レイテンシー分布 {#latency-distribution} `trace.` -: **Prerequisite:** This metric exists for any APM service.
    -**Description:** Represent the latency distribution for all services, resources, and versions across different environments and second primary tags.
    -**Metric type:** [DISTRIBUTION][6].
    -**Tags:** `env`, `service`,`version`, `resource`, `resource_name`, `http.status_code`, `synthetics`, and [the second primary tag][4]. +: **前提条件:** このメトリクスは、すべての APM サービスに存在します。
    +**説明:** さまざまな環境と追加のプライマリタグにわたるすべてのサービス、リソース、バージョンのレイテンシー分布を表します。**すべてのレイテンシー測定のユースケースに推奨されます。**
    +**メトリクスタイプ:** [DISTRIBUTION][6]
    +**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_code`、`rpc.grpc.status_code`、`synthetics`、および [追加のプライマリタグ][4]。 -### エラー +### エラー {#errors} `trace..errors` -: **前提条件:** このメトリクスは、すべての APM サービスに存在します。 -
    +: **前提条件:** このメトリクスは、すべての APM サービスに存在します。
    **説明:** 特定のスパンのエラー数を表します。
    -**メトリクスタイプ:** [COUNT][5]。
    -**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_code`、Datadog Host Agent からのすべてのホストタグ、[第 2 プライマリタグ][4]。 +**メトリクスタイプ:** [COUNT][5]
    +**タグ:** `env`、`service`、`version`、`resource`、`resource_name`、`http.status_code`、`rpc.grpc.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加のプライマリタグ][4]。 `trace..errors.by_http_status` -: **前提条件:** このメトリクスは、すべての APM サービスに存在します。 -
    +: **前提条件:** このメトリクスは、すべての APM サービスに存在します。
    **説明:** 特定のスパンのエラー数を表します。
    -**メトリクスタイプ:** [COUNT][5]。
    -**タグ:** `env`、`service`、`version`、`resource`、`http.status_class`、`http.status_code`、Datadog Host Agent からのすべてのホストタグ、[第 2 プライマリタグ][4]。 +**メトリクスタイプ:** [COUNT][5]
    +**タグ:** `env`、`service`、`version`、`resource`、`http.status_class`、`http.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加のプライマリタグ][4]。 -### Apdex +### Apdex {#apdex} `trace..apdex` -: **Prerequisite:** This metric exists for any HTTP or web-based APM service.
    -**Description:** Measures the [Apdex][10] score for each web service.
    -**Metric type:** [GAUGE][7].
    -**Tags:** `env`, `service`, `version`, `resource` / `resource_name`, `synthetics`, and [the second primary tag][4]. +: **前提条件:** このメトリクスは、すべての HTTP またはウェブベースの APM サービスに存在します。
    +**説明:** 各ウェブサービスの [Apdex][10] スコアを測定します。
    +**メトリクスタイプ:** [GAUGE][7]
    +**タグ:** `env`、`service`、`version`、`resource` / `resource_name`、`synthetics`、および [追加のプライマリタグ][4]。 + +## レガシーメトリクス {#legacy-metrics} + +以下のメトリクスは、後方互換性のために維持されています。すべてのレイテンシー測定のユースケースにおいて、Datadog は代わりに [Latency Distribution metrics](#latency-distribution) の使用を強く推奨します。 -### Duration +### 期間 (レガシー) {#duration-legacy} - +
    +重要: 期間メトリクスは、後方互換性のためにのみ維持されています。すべてのレイテンシー測定のユースケースにおいて、Datadog は代わりにレイテンシー分布メトリクスの使用を強く推奨します。これにより、パーセンタイル計算と全体的なパフォーマンス分析の精度が向上します。 +
    `trace..duration` : **前提条件:** このメトリクスは、すべての APM サービスに存在します。
    -**説明:**  収集サービスで見られる子スパンを含む、時間間隔内のスパンのコレクションの合計時間を測定します。Datadog では、ほぼすべてのユースケースにおいて、平均レイテンシーまたはパーセンタイルの計算に[レイテンシー分布](#latency-distribution)を使用することが推奨されています。ホストタグフィルターを使用して平均レイテンシーを計算するには、このメトリクスを次の式で使用することができます。
    -`sum:trace..duration{}.rollup(sum).fill(zero) / sum:trace..hits{}`
    -このメトリクスは、パーセンタイル集計をサポートしていません。詳細については、[レイテンシー分布](#latency-distribution)セクションをご覧ください。 -**メトリクスタイプ:** [GAUGE][7].
    -**タグ:** `env`、`service`、`resource`、`http.status_code`、Datadog Host Agent からのすべてのホストタグ、[第 2 プライマリタグ][4]。 +**説明:** 収集サービスで認識された子スパンを含め、時間間隔内のスパンコレクションの合計時間を測定します。ほとんどのユースケースにおいて、Datadog は平均レイテンシーまたはパーセンタイルの計算に [Latency Distribution](#latency-distribution) の使用を推奨します。ホストタグフィルターを使用して平均レイテンシーを計算するには、次の式でこのメトリクスを使用できます:
    +`sum:trace..duration{}.rollup(sum).fill(zero) / sum:trace..hits{}.rollup(sum).fill(zero)`
    +このメトリクスは、パーセンタイル集計をサポートしていません。詳細については、[Latency Distribution](#latency-distribution) セクションを参照してください。
    +**メトリクスタイプ:** [GAUGE][7]
    +**タグ:** `env`、`service`、`resource`、`http.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加のプライマリタグ][4]。 -### 継続時間 +### 期間別 (レガシー) {#duration-by-legacy} - +
    +重要: 期間メトリクスは、後方互換性のためにのみ維持されています。すべてのレイテンシー測定のユースケースにおいて、Datadog は代わりにレイテンシー分布メトリクスの使用を強く推奨します。これにより、パーセンタイル計算と全体的なパフォーマンス分析の精度が向上します。 +
    `trace..duration.by_http_status` -: **前提条件:** このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。 -
    -**説明:** 各 HTTP ステータスのスパンの収集にかかる合計時間を計測します。具体的には、1 回のインターバルおよび特定の HTTP ステータスで、すべてのスパンにかかった相対時間(子処理を待機していた時間を含む)です。
    -**メトリクスタイプ:** [GAUGE][7]。
    -**タグ:** `env`、`service`、`resource`、`http.status_class`、`http.status_code`、Datadog Host Agent からのすべてのホストタグ、[第 2 プライマリタグ][4]。 +: **前提条件:** このメトリクスは、HTTP メタデータが存在する場合、HTTP/WEB APM サービスに存在します。
    +**説明:** 各 HTTP ステータスのスパンのコレクションの合計時間を測定します。具体的には、ある間隔ですべてのスパンが費やした時間と、特定の HTTP ステータスの相対的な割合で、子プロセスの待機に費やされた時間を含みます。
    +**メトリクスタイプ:** [GAUGE][7]
    +**タグ:** `env`、`service`、`resource`、`http.status_class`、`http.status_code`、Datadog ホストエージェントからのすべてのホストタグ、および [追加の主要タグ][4]。 -## Sampling impact on trace metrics +## トレースメトリクスに対するサンプリングの影響 {#sampling-impact-on-trace-metrics} -In most cases, trace metrics are calculated based on all application traffic. However, with certain trace ingestion sampling configurations, the metrics represent only a subset of all requests. +ほとんどの場合、トレースメトリクスはすべてのアプリケーショントラフィックに基づいて計算されます。ただし、特定のトレース取り込みサンプリング構成では、メトリクスはすべてのリクエストのサブセットのみを表します。 -### Application-side sampling +### アプリケーション側サンプリング {#application-side-sampling} -Some tracing libraries support application-side sampling, which reduces the number of spans before they are sent to the Datadog Agent. For example, the Ruby tracing library offers application-side sampling to lower performance overhead. However, this can affect trace metrics, as the Datadog Agent needs all spans to calculate accurate metrics. +一部の SDK はアプリケーション側サンプリングをサポートしており、Datadog Agent に送信される前にスパン数を削減します。たとえば、Ruby SDK はパフォーマンスオーバーヘッドを低減するためのアプリケーション側サンプリングを提供します。ただし、Datadog Agent は正確なメトリクスを計算するためにすべてのスパンを必要とするため、これによりトレースメトリクスに影響する可能性があります。 -Very few tracing libraries support this setting, and using it is generally not recommended. +この設定をサポートする SDK は非常に少なく、一般的には使用は推奨されません。 -### OpenTelemetry sampling +### OpenTelemetry サンプリング {#opentelemetry-sampling} -The OpenTelemetry SDK's native sampling mechanisms lower the number of spans sent to the Datadog collector, resulting in sampled and potentially inaccurate trace metrics. +OpenTelemetry SDK のネイティブサンプリングメカニズムは、Datadog コレクターに送信されるスパン数を削減し、その結果、サンプリングされた不正確なトレースメトリクスが生成される可能性があります。 -### XRay sampling +### X-Ray サンプリング {#x-ray-sampling} -XRay spans are sampled before they are sent to Datadog, which means trace metrics might not reflect all traffic. +X-Ray スパンは Datadog に送信される前にサンプリングされるため、トレースメトリクスはすべてのトラフィックを反映しない可能性があります。 -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/tracing/trace_collection/ [2]: /ja/tracing/trace_pipeline/ingestion_mechanisms [3]: /ja/tracing/glossary/#trace-metrics -[4]: /ja/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog +[4]: /ja/tracing/guide/setting_primary_tags_to_scope/#add-additional-primary-tags-in-datadog [5]: /ja/metrics/types/?tab=count#metric-types [6]: /ja/metrics/types/?tab=distribution#metric-types [7]: /ja/metrics/types/?tab=gauge#metric-types -[8]: /ja/tracing/service_catalog/#services-types +[8]: /ja/tracing/software_catalog/#services-types [9]: /ja/tracing/glossary/#services [10]: /ja/tracing/guide/configure_an_apdex_for_your_traces_with_datadog_apm/ \ No newline at end of file diff --git a/content/ja/tracing/metrics/runtime_metrics/_index.md b/content/ja/tracing/metrics/runtime_metrics/_index.md new file mode 100644 index 00000000000..41c6ddb7266 --- /dev/null +++ b/content/ja/tracing/metrics/runtime_metrics/_index.md @@ -0,0 +1,314 @@ +--- +aliases: +- /ja/tracing/advanced/runtime_metrics/ +- /ja/tracing/metrics/runtime_metrics/dotnet +- /ja/tracing/metrics/runtime_metrics/java +- /ja/tracing/metrics/runtime_metrics/nodejs +- /ja/tracing/metrics/runtime_metrics/python +- /ja/tracing/metrics/runtime_metrics/ruby +- /ja/tracing/runtime_metrics/dotnet +- /ja/tracing/runtime_metrics/java +- /ja/tracing/runtime_metrics/nodejs +- /ja/tracing/runtime_metrics/python +- /ja/tracing/runtime_metrics/ruby +description: アプリケーションのパフォーマンスに関する追加情報を、トレースに紐づくランタイムメトリクスと共に取得します。 +further_reading: +- link: /opentelemetry/integrations/runtime_metrics/ + tag: よくあるご質問 + text: OpenTelemetry ランタイムメトリクス +- link: tracing/other_telemetry/connect_logs_and_traces + tag: よくあるご質問 + text: ログとトレースの相関 +- link: tracing/trace_collection/custom_instrumentation + tag: よくあるご質問 + text: アプリケーションを手動でインスツルメントしてトレースを作成する +- link: tracing/glossary/ + tag: よくあるご質問 + text: サービス、リソース、トレースの調査 +title: ランタイムメトリクス +--- +## 概要 {#overview} + +ランタイムメトリクスは、アプリケーションのメモリ使用量、ガーベジコレクション、並列処理をモニターします。Datadog SDK は、サポートされている環境のこれらのメトリクスを自動的に収集し、Datadog Agent に送信します。 + +これらのメトリクスは、ボトルネックを特定し、パフォーマンスの問題をトラブルシューティングし、リソースの利用を最適化する上で役立ちます。ランタイムメトリクスがトレースやログと共に表示されるため、アプリケーションの健全性とパフォーマンスを包括的に把握できます。 + +アプリケーションを Datadog のトレースライブラリではなく OpenTelemetry で計測する場合は、設定の手順について [OpenTelemetry ランタイムメトリクス][10] を参照してください。 + +## 互換性 {#compatibility} + +ランタイムメトリクスは、いくつかのプログラミング言語とランタイムで利用可能ですが、サポートレベルと構成オプションは異なります。 + +{{< tabs >}} +{{% tab "Java" %}} + +- **デフォルトで有効**: はい +- **ライブラリバージョン**: 0.29.0 以降 +- **ランタイム**: Java 8 以降 + +
    AWS Lambda 環境では JMX メトリクスの収集はサポートされていません。
    + +{{% /tab %}} + +{{% tab "Python" %}} + + - **デフォルトで有効**: いいえ + - **ライブラリバージョン**: 0.30.0 以降 + - **サポートレベル**: プレビュー + - **ランタイム**: サポート対象のすべての Python バージョン + +{{% /tab %}} + +{{% tab "Ruby" %}} + + - **デフォルトで有効**: いいえ + - **ライブラリバージョン**: 0.44.0 以降 + - **ランタイム**: サポート対象のすべての Ruby バージョン + + +
    アプリケーションに dogstatsd-ruby gem を追加する必要があります。
    + +{{% /tab %}} + +{{% tab "Go" %}} + + - **デフォルトで有効**: いいえ + - **ライブラリバージョン**: 1.18.0 以降 + - **ランタイム**: サポート対象のすべての Go バージョン + +{{% /tab %}} + +{{% tab "Node.js" %}} + + - **デフォルトで有効**: いいえ + - **ライブラリバージョン**: 3.0.0 以降 + - **ランタイム**: サポート対象のすべての Node.js バージョン + +{{% /tab %}} + +{{% tab ".NET" %}} + + - **デフォルトで有効**: はい。.NET 6 以降 (v3.40.0 以降) で有効です。 + - **ライブラリバージョン**: 1.23.0 以降 + - **ランタイム**: .NET Framework 4.6.1 以降および .NET Core 3.1 以降 (.NET 5 およびそれ以降を含む)。 + +#### Internet Information Services (IIS) のアクセス許可 (.NET Framework のみ) {#permissions-for-internet-information-services-iis-net-framework-only} + +.NET Framework では、メトリクスはパフォーマンスカウンターを使用して収集されます。非対話型ログオンセッションのユーザー (IIS アプリケーションプールアカウントと一部のサービスアカウントを含む) は、カウンターデータにアクセスするために **Performance Monitoring Users** グループに追加する必要があります。 + +IIS アプリケーションプールは、ユーザーリストに表示されない特別なアカウントを使用します。そのアカウントを Performance Monitoring Users グループに追加するには、`IIS APPPOOL\` を探します。たとえば、DefaultAppPool のユーザーは `IIS APPPOOL\DefaultAppPool` になります。 + +これは、"Computer Management" UI から、または管理者コマンドプロンプトから実行できます。 + +```shell +net localgroup "Performance Monitor Users" "IIS APPPOOL\DefaultAppPool" /add +``` + +{{% /tab %}} +{{% tab "PHP" %}} + +
    PHP のランタイムメトリクスは、サポート対象外です。
    + +{{% /tab %}} +{{% tab "C++" %}} + +
    C++ のランタイムメトリクスはサポート対象外です。
    + +{{% /tab %}} +{{< /tabs >}} + +## セットアップ手順 {#setup-instructions} + +ランタイムメトリクスをセットアップするには、Datadog Agent とユーザーのアプリケーションの両方を構成する必要があります。 + +### 1. Datadog Agent を構成する {#1-configure-the-datadog-agent} + +[Agent 用の DogStatsD][2] を有効化します。デフォルトでは、Datadog Agent はポート `8125` を介して UDP を使用してメトリクスを取り込むように構成されています。 + +{{% collapse-content title="コンテナ固有の構成" level="h4" expanded=false %}} + +Agent をコンテナ化環境で実行する場合、追加の構成が必要です。 + +1. DogStatsD の非ローカルトラフィックが有効になっていることを確認してください。この設定はデフォルトで有効になっています。過去に無効化した場合は、メインの [`datadog.yaml` 構成ファイル][8] で `dogstatsd_non_local_traffic: true` を設定するか、[環境変数][3] `DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true` を設定します。 +2. 以下のコンテナ固有のセットアップ手順に従ってください。 + +{{< partial name="apm/apm-runtime-metrics-containers.html" >}} + +
    + +{{< site-region region="us3,us5,eu,gov,gov2,ap1,ap2" >}} + +3. Datadog Agent で`DD_SITE` を設定します。 {{< region-param key="dd_site" code="true" >}} Datadog Agent が確実に正しい Datadog の場所にデータを送信するためです。 + +{{< /site-region >}} + +{{% /collapse-content %}} + +### 2. ユーザーのアプリケーションを構成する {#2-configure-your-application} + +環境変数を使用してユーザーのアプリケーションのランタイムメトリクスを構成します。一部の言語では、ランタイムメトリクスを[コードで直接に](#code-based-configuration)構成することもサポートされています。 + +#### 環境変数 {#environment-variables} + +ユーザーのアプリケーション内のランタイムメトリクスを設定するために、以下の環境変数を使用してください。 + +`DD_RUNTIME_METRICS_ENABLED` +: **デフォルト**: Java と .NET 6 以降 (v3.40.0 以降) の場合は `true`、他のすべての言語とランタイムの場合は `false` です。
    +**説明**: ランタイムメトリクスの収集を有効化します。メトリクスは、インスツルメントされたアプリケーションに対して構成され、Datadog Agent に送信されます。 + +`DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED` +: **デフォルト**: Java の場合は `true`、Node.js、Ruby、Python の場合は `false` です。.NET と Go の場合は存在せず、`runtime_id` は常に報告されます。
    +**説明**: 強化されたランタイムメトリクスを有効化し、各メトリクスに `runtime_id` タグを付加します。`runtime_id` はアプリケーションのプロセス識別子を表し、ランタイムメトリクスを実行中の各アプリケーションと直接関連付けることができるようにします。 + +`DD_AGENT_HOST` +: **デフォルト**: `localhost`
    +**説明**: SDK のメトリクス送信用にホストのアドレスを設定します。ホスト名または IP アドレスで指定できます。 + +`DD_DOGSTATSD_PORT` +: **デフォルト**: `8125`
    +**説明**: SDK のメトリクス送信用のポートを設定します。 + +`DD_RUNTIME_METRICS_DIAGNOSTICS_METRICS_API_ENABLED` +: **デフォルト**: .NET 8 以降 (`DD_RUNTIME_METRICS_ENABLED` が明示的に設定されていない場合は .NET 6/7) でトレーサー v3.40.0 以降を開始する場合は`true`、それ以外の場合は `false` です。
    +**説明**: .NET 6 以降で利用可能です。これは、.NET トレーサーが`EventListener` ベースのコレクターの代わりに新しい [`System.Diagnostics.Metrics`][9] API を使用してメトリクスを収集するかどうかをコントロールします。 + +#### コードベースの構成 {#code-based-configuration} + +環境変数に加えて、一部の言語ではランタイムメトリクスをコードで直接に構成することがサポートされています。 + +{{< tabs >}} +{{% tab "Java" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) でのみ有効化できます。 + +ただし、カスタム JMX メトリクスを追加すると、収集されるメトリクスを拡張できます。詳細については、[JMX 統合][100] のドキュメントを参照してください。 + +[100]: /ja/integrations/java/ +{{% /tab %}} + +{{% tab "Python" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) またはコードで有効化できます。 + +```python +from ddtrace.runtime import RuntimeMetrics +RuntimeMetrics.enable() +``` + +
    これは、以下を使用していないにのみ適用されます。 ddtrace-run
    +{{% /tab %}} + +{{% tab "Ruby" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) またはコードで有効化できます。 + +```ruby +# config/initializers/datadog.rb +require 'datadog/statsd' +require 'datadog' # Use 'ddtrace' if you're using v1.x + +Datadog.configure do |c| + c.runtime_metrics.enabled = true + + # Optionally, you can configure the DogStatsD instance used for sending runtime metrics. + # DogStatsD is automatically configured with default settings if `dogstatsd-ruby` is available. + # You can configure with host and port of Datadog agent; defaults to 'localhost:8125'. + c.runtime_metrics.statsd = Datadog::Statsd.new +end +``` +{{% /tab %}} + +{{% tab "Go" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) またはコードで有効化できます。 + +```go +// Basic configuration +tracer.Start(tracer.WithRuntimeMetrics()) + +// With custom DogStatsD address +tracer.Start( + tracer.WithRuntimeMetrics(), + tracer.WithDogstatsdAddr("custom-host:8125") +) +``` + +`WithDogstatsdAddr` オプションを使用すると、DogStatsD サーバー用のカスタムアドレスを指定できます。アドレスがデフォルトの `localhost:8125` と異なる場合は、[`WithDogstatsdAddr`][101] (または、[`WithDogstatsdAddress` v1][100]) オプションを使用してください。(1.18.0 以降で利用可能) + +[100]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer#WithDogstatsdAddress +[101]: https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/ddtrace/tracer#WithDogstatsdAddr +{{% /tab %}} + +{{% tab "Node.js" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) またはコードで有効化できます。 + +```js +const tracer = require('dd-trace').init({ + // Other tracer options... + runtimeMetrics: true +}) +``` +{{% /tab %}} + +{{% tab ".NET" %}} + +ランタイムメトリクスは [environment variables](#environment-variables) でのみ有効化できます。 + +{{% /tab %}} +{{< /tabs >}} + +## ダッシュボード {#dashboards} + +セットアップが完了したら、以下の場所でランタイムメトリクスを表示できます。 + +- インスツルメントされたサービスの詳細ページ +- フレームグラフの**メトリクス**タブ +- デフォルトのランタイムダッシュボード + +{{< img src="tracing/runtime_metrics/jvm_runtime_trace.png" alt="JVM ランタイムトレース" >}} + +## トラブルシューティング {#troubleshooting} +- フレームグラフ内でランタイムメトリクスを関連付けるには、環境全体で `env` タグ (大文字と小文字を区別) が設定され、一致していることを確認してください。 +- Fargate 使用時にサービスページにランタイムメトリクスが表示されるようにするには、Agent タスクに `DD_DOGSTATSD_TAGS` が設定されていて、構成された `env` タグがインスツルメントされたサービスの `env` と一致することを確認します。 + +## 収集データ {#data-collected} + +サポートされている言語はそれぞれ、メモリ使用量、ガーベジコレクション、CPU 使用率、その他のパフォーマンス指標に関するインサイトを提供する一連のランタイムメトリクスを収集します。 + +{{< tabs >}} +{{< tab "Java" >}} +{{< get-metrics-from-git "java" >}} +{{< /tab >}} + +{{< tab "Python" >}} +{{< get-metrics-from-git "python" >}} +{{< /tab >}} + +{{< tab "Ruby" >}} +{{< get-metrics-from-git "ruby" >}} +{{< /tab >}} + +{{< tab "Go" >}} +{{< get-metrics-from-git "go" >}} +{{< /tab >}} + +{{< tab "Node.js" >}} +{{< get-metrics-from-git "node" >}} +{{< /tab >}} + +{{< tab ".NET" >}} +{{< get-metrics-from-git "dotnet" >}} +{{< /tab >}} +{{< /tabs >}} + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[2]: /ja/extend/dogstatsd/#setup +[3]: /ja/agent/docker/#dogstatsd-custom-metrics +[7]: /ja/extend/dogstatsd/unix_socket/ +[8]: /ja/agent/configuration/agent-configuration-files/#main-configuration-file +[9]: https://learn.microsoft.com/dotnet/api/system.diagnostics.metrics +[10]: /ja/opentelemetry/integrations/runtime_metrics/ \ No newline at end of file diff --git a/content/ko/containers/cluster_agent/admission_controller.md b/content/ko/containers/cluster_agent/admission_controller.md index 8d85ddadab0..eb36d0c3834 100644 --- a/content/ko/containers/cluster_agent/admission_controller.md +++ b/content/ko/containers/cluster_agent/admission_controller.md @@ -1,35 +1,51 @@ --- aliases: - /ko/agent/cluster_agent/admission_controller +description: Datadog Admission Controller를 사용하여 Kubernetes 포드에 환경 변수와 표준 태그를 자동으로 + 주입합니다. further_reading: - link: /agent/cluster_agent/troubleshooting/ tag: 설명서 - text: Datadog 클러스터 에이전트 트러블슈팅 + text: Datadog Cluster Agent 문제 해결 +- link: /containers/troubleshooting/admission-controller + tag: 설명서 + text: Admission Controller 문제 해결 - link: https://www.datadoghq.com/blog/auto-instrument-kubernetes-tracing-with-datadog/ tag: 블로그 - text: 라이브러리 삽입을 사용해 Datadog APM으로 Kubernetes 애플리케이션에 대한 자동 계측 추적 + text: Datadog APM을 사용하여 라이브러리 주입으로 Kubernetes 애플리케이션의 트레이싱을 자동 계측 +- link: https://www.datadoghq.com/blog/datadog-csi-driver/ + tag: 블로그 + text: Datadog의 CSI 드라이버를 사용하여 보안이 강화된 Kubernetes 환경에서 고성능 관측성 구현 +- link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ + tag: 아키텍처 센터 + text: Datadog Operator 및 Admission Controller를 사용하여 애플리케이션 계측하기 +- link: /containers/guide/cluster_agent_disable_admission_controller + tag: 설명서 + text: Cluster Agent를 사용하여 Datadog Admission Controller 비활성화 title: Datadog Admission Controller --- +## 개요 {#overview} +Datadog Admission Controller는 Datadog Cluster Agent의 구성 요소입니다. Admission Controller의 주요 장점은 애플리케이션 포드 구성을 단순화하는 것입니다. 이를 위해 두 가지 핵심 기능을 제공합니다. -## 개요 -Datadog Admission Controller는 Datadog 클러스터 에이전트의 구성 요소입니다. Admission Controller의 주요 이점은 애플리케이션 Pod 설정을 간소화하는 것입니다. 이를 위한 두 가지 주요 기능이 있습니다. +- 환경 변수(`DD_AGENT_HOST`, `DD_TRACE_AGENT_URL`, `DD_ENTITY_ID` 및 `DD_EXTERNAL_ENV`)를 주입하여 사용자의 애플리케이션 컨테이너에 DogStatsD 및 Datadog SDK를 구성합니다. +- 애플리케이션 레이블에 지정된 Datadog 표준 태그(`env`, `service`, `version`)를 컨테이너 환경 변수로 주입합니다. -- 환경 변수(`DD_AGENT_HOST`, `DD_TRACE_AGENT_URL` 및 `DD_ENTITY_ID`)를 삽입하여 사용자의 애플리케이션 컨테이너에 DogStatsD 및 APM 추적기 라이브러리를 설정합니다. -- 애플리케이션 레이블의 Datadog 표준 태그(`env`, `service`, `version`)를 컨테이너 환경 변수에 삽입합니다. +Datadog의 Admission Controller는 `MutatingAdmissionWebhook` 유형입니다. Admission Controller에 대한 자세한 내용은 [Admission Controller에 대한 Kubernetes 가이드][1]를 참조하세요. -Datadog의 Admission Controller는 `MutatingAdmissionWebhook` 유형입니다. Admission Controller에 대한 자세한 내용은 [Admission Controller에 대한 Kubernetes 설명서][1]를 참고하세요. +## 요구 사항 {#requirements} -## 요구 사항 +- Datadog Cluster Agent v7.40 이상 -- Datadog 클러스터 에이전트 v7.40+ - -## 설정 +## 구성 {#configuration} {{< tabs >}} -{{% tab "Operator" %}} +{{% tab "Datadog Operator" %}} + +Datadog Operator는 기본적으로 Datadog Admission Controller를 활성화합니다. Admission Controller를 활성화하기 위해 추가 구성이 필요하지 않습니다. + -Datadog Operator에서 Admission Controller를 활성화하려면 `DatadogAgent` 구성에서 `features.admissionController.enabled` 파라미터를 `true`로 설정합니다. +Admission Controller를 비활성화한 경우 `DatadogAgent` 구성에서 매개변수 `features.admissionController.enabled`를 `true`로 설정해 다시 활성화할 수 있습니다. -{{< code-block lang="yaml" disable_copy="false" >}} +{{< code-block lang="yaml" filename="datadog-agent.yaml" disable_copy="false" >}} apiVersion: datadoghq.com/v2alpha1 kind: DatadogAgent metadata: @@ -43,18 +59,18 @@ spec: {{< /code-block >}} {{% /tab %}} {{% tab "Helm" %}} -Helm 차트 v2.35.0부터 Datadog Admission Controller가 기본값으로 활성화되어 있습니다. Admission Controller를 활성화하기 위해 추가 구성을 할 필요가 없습니다. +Helm 차트 v2.35.0부터 Datadog Admission Controller가 기본적으로 활성화됩니다. Admission Controller를 활성화하기 위해 추가 구성이 필요하지 않습니다. -Helm 차트 v2.34.6 또는 이전 버전에서에서 Admission Controller를 활성화하려면 매개변수 `clusterAgent.admissionController.enabled`를 `true`로 설정하세요. +Helm 차트 v2.34.6 및 이전 버전에서 Admission Controller를 활성화하려면 매개변수 `clusterAgent.admissionController.enabled`를 `true`로 설정하세요. -{{< code-block lang="yaml" filename="values.yaml" disable_copy="false" >}} +{{< code-block lang="yaml" filename="datadog-values.yaml" disable_copy="false" >}} #(...) clusterAgent: #(...) ## @param admissionController - object - required - ## Admission Controller가 APM을 자동으로 삽입하도록 활성화하고 - ## DogStatsD 설정 및 표준 태그(환경, 서비스, 버전)를 -## Pod에 추가합니다. + ## Enable the admissionController to automatically inject APM and + ## DogStatsD config and standard tags (env, service, version) into + ## your pods # admissionController: enabled: true @@ -68,9 +84,9 @@ clusterAgent: {{% /tab %}} {{% tab "DaemonSet" %}} -Helm이나 Datadog Operator를 사용하지 않고 Admission Controller를 활성화하려면 설정에 다음을 추가합니다. +Helm이나 Datadog Operator를 사용하지 않고 Admission Controller를 활성화하려면 구성에 다음을 추가하세요. -먼저, [클러스터 에이전트 RBAC 권한][1] 매니페스트를 다운로드하고 `rules` 아래에 다음을 추가합니다. +먼저 [Cluster Agent RBAC Permissions][1] 매니페스트를 다운로드한 후 `rules` 아래에 다음 내용을 추가합니다. {{< code-block lang="yaml" filename="cluster-agent-rbac.yaml" disable_copy="true" >}} - apiGroups: @@ -89,7 +105,7 @@ Helm이나 Datadog Operator를 사용하지 않고 Admission Controller를 활 verbs: ["get"] {{< /code-block >}} -`agent-services.yaml` 아래에 다음을 추가합니다. +`agent-services.yaml`의 하단에 다음 내용을 추가합니다. {{< code-block lang="yaml" filename="agent-services.yaml" disable_copy="true" >}} @@ -109,7 +125,7 @@ spec: {{< /code-block >}} -Admission Controller를 활성화하는 클러스터 에이전트 배포에 환경 변수를 추가합니다. +Admission Controller를 활성화하는 Cluster Agent 배포에 환경 변수를 추가합니다. {{< code-block lang="yaml" filename="cluster-agent-deployment.yaml" disable_copy="true" >}} - name: DD_ADMISSION_CONTROLLER_ENABLED @@ -117,7 +133,7 @@ Admission Controller를 활성화하는 클러스터 에이전트 배포에 환 - name: DD_ADMISSION_CONTROLLER_SERVICE_NAME value: "datadog-cluster-agent-admission-controller" -# APM 추적기를 자동으로 설정하려면 이 설정을 취소합니다(아래 참조) +# Uncomment this to configure Datadog SDKs automatically (see below) # - name: DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED # value: "true" {{< /code-block >}} @@ -132,26 +148,27 @@ Admission Controller를 활성화하는 클러스터 에이전트 배포에 환 {{% /tab %}} {{< /tabs >}} -### 계측 라이브러리 삽입 -클러스터 에이전트(버전 7.39 이상)를 설정해 계측 라이브러리를 삽입할 수 있습니다. 자세한 내용은 [Admission Controller를 사용하여 계측 라이브러리 삽입][2]을 참고하세요. +### APM 계측 라이브러리 주입 {#apm-instrumentation-library-injection} +Cluster Agent(버전 7.39 이상)를 구성하여 단일 단계 계측을 사용한 계측 라이브러리 자동 주입을 사용할 수 있습니다. 자세한 내용은 [단일 단계 APM 계측][2] 설명서를 참조하세요. +단일 단계 계측을 사용하지 않으려면, Datadog Admission Controller를 사용하여 포드 수준에서 Datadog SDK를 직접 주입할 수 있습니다. 자세한 내용은 [로컬 SDK 주입][7]을 참조하세요. -### APM과 DogStatsD +### APM 및 DogStatsD 환경 변수 주입 {#apm-and-dogstatsd-environment-variable-injection} -DogStatsD 클라이언트 또는 라이브러리 삽입을 지원하지 않는 다른 APM 라이브러리를 설정하려면 다음을 실행해`DD_AGENT_HOST` 와 `DD_ENTITY_ID` 환경 변수를 삽입하세요. -- Pod에 `admission.datadoghq.com/enabled: "true"` 레이블을 추가합니다. -- `mutateUnlabelled`, 또는 설정 방법에 따라 `DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED`를 `true` 로 설정하여 클러스터 에이전트 Admission Controller를 설정합니다. +라이브러리 주입을 지원하지 않는 DogStatsD 클라이언트 또는 기타 APM 라이브러리를 구성하려면 `DD_AGENT_HOST` 및 `DD_ENTITY_ID` 환경 변수를 다음 방법 중 하나로 주입합니다. +- 포드에 `admission.datadoghq.com/enabled: "true"` 레이블을 추가합니다. +- Cluster Agent Admission Controller를 구성하여 `mutateUnlabelled`(또는 구성 방식에 따라 `DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED`)을 `true`로 설정합니다. -Helm 차트에 `mutateUnlabelled: true` 에이전트 설정을 추가하면 클러스터 에이전트가 레이블이 지정되지 않은 모든 Pod를 가로채려고 시도합니다. +Helm 차트에 `mutateUnlabelled: true` Agent 구성을 추가하면 Cluster Agent는 레이블이 없는 모든 포드를 가로채려고 시도합니다. -Pod가 환경 변수를 수신하지 못하도록 하려면 `admission.datadoghq.com/enabled: "false"` 레이블을 추가합니다. 이는 `mutateUnlabelled: true`를 설정해도 작동합니다. +포드가 환경 변수를 받지 않도록 하려면 `admission.datadoghq.com/enabled: "false"` 레이블을 추가하세요. 이 설정은 `mutateUnlabelled: true`를 사용하더라도 적용됩니다. -`mutateUnlabelled`가 `false`인 경우 Pod 레이블을 `admission.datadoghq.com/enabled: "true"`로 설정해야 합니다. +`mutateUnlabelled`가 `false`로 설정된 경우에는 포드 레이블을 `admission.datadoghq.com/enabled: "true"`로 설정해야 합니다. 가능한 옵션: -| mutateUnlabelled | Pod 레이블 | 삽입 | -|------------------|-----------------------------------------|-----------| +| mutateUnlabelled | 포드 레이블 | 주입 여부 | +| ---------------- | --------------------------------------- | --------- | | `true` | 레이블 없음 | 예 | | `true` | `admission.datadoghq.com/enabled=true` | 예 | | `true` | `admission.datadoghq.com/enabled=false` | 아니요 | @@ -160,53 +177,43 @@ Pod가 환경 변수를 수신하지 못하도록 하려면 `admission.datadoghq | `false` | `admission.datadoghq.com/enabled=false` | 아니요 | -#### 우선순위 순서 -Datadog Admission Controller는 환경 변수 `DD_VERSION`, `DD_ENV`, `DD_SERVICE` 가 이미 존재할 경우 삽입하지 않습니다. +#### 우선순위 순서 {#order-of-priority} +Datadog Admission Controller는 `DD_VERSION`, `DD_ENV`, `DD_SERVICE` 환경 변수가 이미 존재하는 경우 이를 주입하지 않습니다. -이러한 환경 변수가 설정되지 않은 경우 Admission Controller는 다음 순서(내림차순)로 표준 태그 값을 사용합니다. +해당 환경 변수가 설정되어 있지 않은 경우 Admission Controller는 다음 순서(상위 우선순위부터)로 표준 태그 값을 사용합니다. -- Pod 레이블 -- `ownerReference`의 레이블( (ReplicaSets, DaemonSets, Deployments 등) +- 포드의 레이블 +- `ownerReference`(ReplicaSet, DaemonSet, Deployment 등)의 레이블 -#### APM 및 DogstatsD 통신 모드 설정 -Datadog 클러스터 에이전트 v1.20.0부터는 애플리케이션과 Datadog 에이전트 간에 다양한 통신 모드를 삽입하도록 Admission Controller를 설정할 수 있습니다. +#### APM 및 DogStatsD 통신 방식 구성{#configure-apm-and-dogstatsd-communication-mode} +Datadog Cluster Agent v1.20.0부터 Admission Controller는 애플리케이션과 Datadog Agent 간의 다양한 통신 방식을 주입하도록 구성할 수 있습니다. -이 기능은 `admission_controller.inject_config.mode`를 설정하거나 `admission.datadoghq.com/config.mode` Pod 레이블을 사용해 Pod별 모드를 정의하여 설정할 수 있습니다. +이 기능은 `admission_controller.inject_config.mode`을 설정하거나 `admission.datadoghq.com/config.mode` 포드 레이블을 사용하여 포드별 통신 모드를 지정함으로써 구성할 수 있습니다. -가능한 옵션: -| 모드 | 설명 | -|--------------------|-------------------------------------------------------------------------------------------------------------------| -| `hostip`(기본값) | `DD_AGENT_HOST` 환경 변수에 호스트 IP 삽입 | -| `service` | `DD_AGENT_HOST` 환경 변수에 Datadog의 로컬 서비스 DNS 이름 삽입(Kubernetes v1.22+에서 사용 가능)| -| `socket` | 해당 경로에 액세스하려면 `DD_TRACE_AGENT_URL` 환경 변수와 볼륨 정의에 Unix 도메인 소켓을 삽입합니다.`DD_DOGSTATSD_URL`에 URL을 삽입해 Datadog 에이전트에 연결하여 DogStatsD 메트릭을 사용합니다. | - -**참고**: Pod별 모드는 Admission Controller 레벨에서 정의된 글로벌 모드보다 우선합니다. - -## 트러블슈팅 +Helm Chart v3.22.0 및 Datadog Operator v1.1.0부터는 APM 소켓 또는 DSD 소켓이 활성화되어 있으면 통신 모드가 자동으로 `socket`으로 설정됩니다. -- 새 어플리케이션 Pod를 만들기 전에 Admission Controller를 배포하고 설정해야 합니다. 이미 존재하는 Pod는 업데이트할 수 없습니다. - - 클러스터 에이전트 로그를 보고 Admission Controller가 정상적으로 시작했는지 확인합니다. 다음 `INFO` 로그를 관찰하세요. +가능한 옵션: +| 모드 | 설명 | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `hostip`(기본값) | `DD_AGENT_HOST` 환경 변수에 호스트 IP를 주입합니다. | +| `service` | Kubernetes v1.22 이상에서 Datadog 로컬 서비스 DNS 이름을 `DD_AGENT_HOST` 환경 변수에 주입합니다. | +| `socket` | `DD_TRACE_AGENT_URL` 환경 변수에 Unix Domain Socket 경로를 주입하고 해당 경로에 접근하기 위한 볼륨 정의를 추가합니다. DogStatsD 메트릭 전송용 Datadog Agent 연결 URL을 `DD_DOGSTATSD_URL`에 주입합니다. | +| `csi` | `DD_TRACE_AGENT_URL` 및 `DD_DOGSTATSD_URL` 환경 변수에 Unix Domain Socket 경로를 주입하고 해당 경로에 접근하기 위한 Datadog CSI 볼륨 정의를 추가합니다. 이 모드는 Datadog Cluster Agent v7.67 이상에서 사용할 수 있습니다. | -``` - | CLUSTER | INFO | (pkg/clusteragent/admission/api_discovery.go:122 in useAdmissionV1) | Group version 'admissionregistration.k8s.io/v1' is available, using it - | CLUSTER | INFO | (pkg/clusteragent/admission/controllers/secret/controller.go:74 in Run) | Starting secrets controller for /webhook-certificate - | CLUSTER | INFO | (pkg/clusteragent/admission/controllers/webhook/controller_v1.go:76 in Run) | Starting webhook -``` +**참고**: 포드별로 지정된 모드는 Admission Controller 수준에서 정의된 전역 모드보다 우선 적용됩니다. -- Admission Controller 삽입 기능을 비활성화하려면 다음 클러스터 에이전트 설정을 사용합니다. `DD_ADMISSION_CONTROLLER_INJECT_CONFIG_ENABLED=false` -- Datadog Admission Controller를 사용하면 아래 API를 사용하여 애플리케이션 Pod 설정을 건너뛸 수 있습니다([Kubernetes 트레이스 수집 설정 2단계][3]). -- Datadog의 Admission Controller 웹훅은 `443` 포트에서 요청을 받아 `8000` 포트에 있는 서비스로 전달하기 때문에 프라이빗 클러스터에는 특정 네트워킹 규칙이 필요합니다. - - GKE 프라이빗 클러스터의 경우 [컨트롤 플레인에 방화벽을 추가][4]해야 합니다. 클러스터의 네트워크에 이름이 `gke--master`인 방화벽 규칙이 기본적으로 있습니다. 이 규칙의 소스 필터는 클러스터의 컨트롤 플레인 주소 범위와 일치합니다. 이 방화벽 규칙을 편집해 TCP `8000` 포트에 수신이 되도록 합니다. - - EKS 프라이빗 클러스터의 경우, [노드 보안 그룹에 인바운드 규칙을 추가][5]해야 합니다. Datadog 클러스터 에이전트는 노드 보안 그룹에 있습니다. 이 규칙을 편집해 TCP 포트 `8000`에 클러스터 보안 그룹(EKS 컨트롤 플레인에 맞게 AWS에서 자동으로 생성)을 참조하는 `Source`를 허용하도록 합니다. +## 문제 해결 {#troubleshooting} +자세한 내용은 [Admission Controller Troubleshooting][6] 설명서를 참조하세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://kubernetes.io/blog/2019/03/21/a-guide-to-kubernetes-admission-controllers/ -[2]: /ko/tracing/trace_collection/library_injection_local/ +[2]: https://docs.datadoghq.com/ko/tracing/trace_collection/automatic_instrumentation/single-step-apm/ [3]: https://docs.datadoghq.com/ko/agent/kubernetes/apm/?tab=helm#setup [4]: https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules -[5]: https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html#security-group-rule-components \ No newline at end of file +[5]: https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html#security-group-rule-components +[6]: /ko/containers/troubleshooting/admission-controller +[7]: https://docs.datadoghq.com/ko/tracing/guide/local_sdk_injection/ \ No newline at end of file diff --git a/content/ko/infrastructure/process/_index.md b/content/ko/infrastructure/process/_index.md index 02328387834..077abfbbd4d 100644 --- a/content/ko/infrastructure/process/_index.md +++ b/content/ko/infrastructure/process/_index.md @@ -10,7 +10,7 @@ further_reading: tag: 설명서 text: 메트릭으로 프로세스 데이터 보존 기간 늘리기 - link: /infrastructure/livecontainers - tag: 그래프화 + tag: 설명서 text: 환경 전반의 모든 컨테이너에 대한 실시간 가시성 확보 - link: https://www.datadoghq.com/blog/monitor-third-party-software-with-live-processes/ tag: 블로그 @@ -18,29 +18,35 @@ further_reading: - link: https://www.datadoghq.com/blog/process-level-data/ tag: 블로그 text: 프로세스 수준 앱과 네트워크 데이터로 빠른 문제 해결 -title: 실시간 프로세스 +- link: https://www.datadoghq.com/blog/watchdog-live-processes/ + tag: 블로그 + text: Watchdog Insights for Live Processes를 사용하여 워크로드 성능 이상 문제 해결 +title: Live Processes --- +
    +Live Processes 및 Live Process Monitoring은 엔터프라이즈 플랜에 포함되어 있습니다. 다른 모든 플랜에 대해서는 계정 담당자에게 문의하거나 success@datadoghq.com에 기능 사용을 요청해야 합니다. +
    -## 도입 +## 소개 {#introduction} -Datadog의 실시간 프로세스를 이용하면 인프라스트럭처에서 실행되는 프로세스를 실시간으로 볼 수 있습니다. 구체적으로는 다음과 같습니다: +Datadog의 Live Processes를 이용하면 인프라에서 실행되는 프로세스를 실시간으로 볼 수 있습니다. Live Processes를 사용하면 다음 작업을 수행할 수 있습니다. -* 실행 중인 프로세스를 한 곳에서 볼 수 있습니다. -* 프로세스 수준에서 호스트와 컨테이너의 리소스 소비를 세분화할 수 있습니다. -* 특정 호스트, 특정 영역에서 실행 중이거나 특정 워크로드를 실행 중인 프로세스에 대해 쿼리할 수 있습니다. -* 2초 단위로 시스템 메트릭을 사용하여 실행 중인 내부 및 타사 소프트웨어의 성능을 모니터링할 수 있습니다. -* 대시보드 및 노트북에 컨텍스트를 추가할 수 있습니다. +* 실행 중인 모든 프로세스를 한 곳에서 확인 +* 호스트 및 컨테이너의 리소스 사용량을 프로세스 수준으로 분석 +* 특정 호스트, 특정 영역 또는 특정 워크로드에서 실행 중인 프로세스 검색 +* 2초 단위 시스템 메트릭을 사용하여 실행 중인 내부 및 타사 소프트웨어 성능 모니터링 +* 대시보드 및 노트북에 컨텍스트 추가 -{{< img src="infrastructure/process/live_processes_main.png" alt="실시간 프로세스 개요" >}} +{{< img src="infrastructure/process/live_processes_main.png" alt="Live Processes 개요" >}} -## 설치 +## 설치 {#installation} -에이전트 5를 사용하는 경우 [구체적인 설치 프로세스][1]를 따르세요. 에이전트 6이나 7을 사용하는 경우 [아래 지침을 따르세요][2]. +Agent 5를 사용 중인 경우, 이 [특정 설치 프로세스][1]를 따르세요. Agent 6 또는 7을 사용 중인 경우, [아래 지침을 참조][2]하세요. {{< tabs >}} {{% tab "Linux/Windows" %}} -Datadog 에이전트를 설치한 후, 다음 매개 변수를 `"true"`로 설정해 [에이전트 주요 설정 파일][1]을 편집하여 실시간 프로세스 수집을 활성화합니다: +Datadog Agent 설치 후, [Agent 기본 구성 파일][1]을 편집하여 다음 파라미터를 `true`로 설정해 Live Processes 수집을 활성화합니다. ```yaml process_config: @@ -48,40 +54,86 @@ process_config: enabled: true ``` -추가로 일부 설정 옵션을 환경 변수로 설정할 수 있습니다. +추가로 일부 구성 옵션을 환경 변수로 설정할 수 있습니다. -**참고**: 환경 변수로 설정한 옵션은 설정 파일에 정의된 설정을 다시 정의합니다. +**참고**: 환경 변수로 설정한 옵션은 구성 파일에 정의된 설정을 재정의합니다. -설정을 완료한 후 [에이전트를 재시작][2]하세요. +구성을 완료한 후 [Agent를 재시작][2]하세요. -[1]: /ko/agent/guide/agent-configuration-files/ -[2]: /ko/agent/guide/agent-commands/#restart-the-agent +[1]: /ko/agent/configuration/agent-configuration-files/ +[2]: /ko/agent/configuration/agent-commands/#restart-the-agent {{% /tab %}} -{{% tab "도커(Docker)" %}} +{{% tab "Docker" %}} -[도커 에이전트][1]의 지침에 따라 다음 속성을 전달하고, 다른 커스텀 설정을 적절히 추가합니다: +[Docker Agent][1]의 지침에 따라, 필요에 따른 다른 사용자 지정 설정에 더해 다음 속성을 전달합니다. ```text -v /etc/passwd:/etc/passwd:ro --e DD_PROCESS_AGENT_ENABLED=true +-e DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED=true ``` **참고**: -- 표준 설치에서 컨테이너 정보를 수집하려면 `dd-agent` 유저가 `docker.sock`에 액세스할 수 있는 권한이 있어야 합니다. -- 컨테이너로 에이전트를 실행해도 호스트 프로세스를 수집할 수 있습니다. +- 표준 설치에서 컨테이너 정보를 수집하려면 `dd-agent` 사용자가 `docker.sock`에 액세스할 수 있는 권한이 있어야 합니다. +- 컨테이너로 Agent를 실행해도 호스트 프로세스를 수집할 수 있습니다. [1]: /ko/agent/docker/#run-the-docker-agent {{% /tab %}} -{{% tab "쿠버네티스(Kubernetes)" %}} +{{% tab "Helm" %}} + +[datadog-values.yaml][1] 파일을 다음 프로세스 수집 구성으로 업데이트합니다. + +```yaml +datadog: + # (...) + processAgent: + enabled: true + processCollection: true +``` + +그런 다음 Helm 차트를 업그레이드합니다. + +```shell +helm upgrade -f datadog-values.yaml datadog/datadog +``` + +**참고**: 컨테이너로 Agent를 실행해도 호스트 프로세스를 수집할 수 있습니다. + +[1]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml +{{% /tab %}} +{{% tab "Datadog Operator" %}} -데몬셋을 생성하는 데 사용하는 [dd-agent.yaml][1] 매니페스트에 다음 환경 변수, 볼륨 마운트, 볼륨을 추가하세요: +`datadog-agent.yaml`에서 `features.liveProcessCollection.enabled`를 `true`으로 설정합니다. + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog +spec: + global: + credentials: + apiKey: + + features: + liveProcessCollection: + enabled: true +``` + +{{% k8s-operator-redeploy %}} + +**참고**: 컨테이너로 Agent를 실행해도 호스트 프로세스를 수집할 수 있습니다. + +{{% /tab %}} +{{% tab "Kubernetes(수동 설치)" %}} + +DaemonSet을 생성하는 데 사용하는 `datadog-agent.yaml` 매니페스트에 다음 환경 변수, 볼륨 마운트, 볼륨을 추가하세요. ```yaml env: - - name: DD_PROCESS_AGENT_ENABLED + - name: DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED value: "true" volumeMounts: - name: passwd @@ -93,44 +145,75 @@ process_config: name: passwd ``` -더 자세한 내용은 표준 [데몬셋 설치][2]와 [도커 에이전트][3] 정보 페이지를 참조하세요. +더 자세한 내용은 표준 [DaemonSet 설치][1]와 [Docker Agent][2] 정보 페이지를 참조하세요. -**참고**: 컨테이너로 에이전트를 실행해도 호스트 프로세스를 수집할 수 있습니다. +**참고**: 컨테이너로 Agent를 실행해도 호스트 프로세스를 수집할 수 있습니다. - -[1]: https://app.datadoghq.com/account/settings#agent/kubernetes -[2]: /ko/agent/kubernetes/ -[3]: /ko/agent/docker/#run-the-docker-agent +[1]: /ko/containers/guide/kubernetes_daemonset +[2]: /ko/agent/docker/#run-the-docker-agent {{% /tab %}} -{{% tab "Helm" %}} +{{% tab "AWS ECS Fargate" %}} + +
    Datadog에서 ECS Fargate 프로세스를 볼 수 있습니다. ECS Fargate 컨테이너와의 관계를 보려면 Datadog Agent v7.50.0 이상을 사용하세요.
    + +프로세스를 수집하려면 Datadog Agent가 작업 내에서 컨테이너로 실행되고 있어야 합니다. + +ECS Fargate에서 프로세스 모니터링을 활성화하려면 작업 정의 내의 Datadog Agent 컨테이너 정의에서 `DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED` 환경 변수를 `true`로 설정하세요. + +예를 들면 다음과 같습니다. + +```json +{ + "taskDefinitionArn": "...", + "containerDefinitions": [ + { + "name": "datadog-agent", + "image": "public.ecr.aws/datadog/agent:latest", + ... + "environment": [ + { + "name": "DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED", + "value": "true" + } + ... + ] + ... + } + ] + ... +} +``` -[datadog-values.yaml][1] 파일을 다음 프로세스 수집 설정으로 업데이트하고, Datadog 헬름 차트를 업그레이드합니다: +ECS Fargate에서 프로세스 정보 수집을 시작하려면 [`pidMode` 파라미터][3]를 작업 정의에 추가하고 다음과 같이 `task`로 설정하세요. -```yaml -datadog: - # (...) - processAgent: - enabled: true - processCollection: true +```text +"pidMode": "task" ``` +활성화되면 [Live Processes 페이지][1]에서 `AWS Fargate` Containers 패싯을 사용하여 ECS에서 실행 중인 프로세스를 필터링하거나 검색 쿼리에 `fargate:ecs`를 입력하세요. -[1]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml -{{< /tabs >}} +{{< img src="infrastructure/process/fargate_ecs.png" alt="AWS Fargate의 프로세스" >}} + +AWS ECS Fargate에서 Datadog Agent를 설치하는 방법에 대한 자세한 내용은 [ECS Fargate 통합 설명서][2]를 참조하세요. +[1]: https://app.datadoghq.com/process +[2]: /ko/integrations/ecs_fargate/#installation +[3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#other_task_definition_params + +{{% /tab %}} {{< /tabs >}} -### I/O 통계 +### I/O 통계 {#io-stats} -상승된 권한으로 실행되는 Datadog 시스템 프로브를 이용해 I/O와 열린 파일 통계를 수집할 수 있습니다. 시스템 프로브의 프로세스 모듈을 활성화하려면 다음 설정을 이용하세요: +I/O 및 열린 파일 통계는 권한이 상승된 상태로 실행되는 Datadog system-probe를 통해 수집할 수 있습니다. 이 통계를 수집하려면 system-probe의 프로세스 모듈을 활성화하세요. -1. 시스템 프로브 예제 설정을 복사합니다: +1. system-probe 예제 구성 파일을 복사합니다. ```shell sudo -u dd-agent install -m 0640 /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml ``` -2. `/etc/datadog-agent/system-probe.yaml`을 편집해 프로세스 모듈을 활성화합니다: +2. `/etc/datadog-agent/system-probe.yaml`을 편집하여 프로세스 모듈을 활성화합니다. ```yaml system_probe_config: @@ -138,29 +221,72 @@ datadog: enabled: true ``` -5. [에이전트를 재시작합니다][12]: +5. [Agent를 재시작][12]합니다. ```shell sudo systemctl restart datadog-agent ``` - **참고**: `systemctl` 명령이 시스템에서 사용 불가할 경우, 다음 명령을 대신 실행합니다:`sudo service datadog-agent restart` + **참고**: 시스템에서 `systemctl` 명령을 사용할 수 없는 경우, 대신 다음 명령을 실행하세요. `sudo service datadog-agent restart` + + +### 최적화된 프로세스 수집 풋프린트 {#optimized-process-collection-footprint} + +Linux에서 Datadog Agent의 전체 풋프린트는 별도의 Process Agent 대신 핵심 Datadog Agent에서 컨테이너 및 프로세스 수집을 실행함으로써 감소됩니다. Datadog Agent v7.65.0 이상에서는 기본적으로 활성화되어 있습니다. **참고**: [Cloud Network Monitoring][14]에는 여전히 Process Agent가 필요합니다. +이 기능에 대한 Agent 상태는 `Process Component` 섹션 아래에 나열되어 있습니다. 예를 들면 다음과 같습니다. -### 프로세스 인수 스크러빙 +```text +================= +Process Component +================= + + + Enabled Checks: [process rtprocess] + System Probe Process Module Status: Not running + Process Language Detection Enabled: False + + ================= + Process Endpoints + ================= + https://process.datadoghq.com. - API Key ending with: + - ***** + + ========= + Collector + ========= + Last collection time: 2026-01-14 10:04:49 + Docker socket: /var/run/docker.sock + Number of processes: 48 + Number of containers: 0 + Process Queue length: 0 + RTProcess Queue length: 0 + Connections Queue length: 0 + Event Queue length: 0 + Pod Queue length: 0 + Process Bytes enqueued: 0 + RTProcess Bytes enqueued: 0 + Connections Bytes enqueued: 0 + Event Bytes enqueued: 0 + Pod Bytes enqueued: 0 + Drop Check Payloads: [] + Number of submission errors: 0 +``` -에이전트는 실시간 프로세스 페이지에서 민감한 데이터를 숨기기 위해 프로세스 명령줄에 있는 민감한 인수를 스크러빙합니다. 이 기능은 기본적으로 활성화되어 있으며 다음 단어와 일치하는 프로세스 인수가 있으면 값이 숨겨집니다. +### 프로세스 인수 스크러빙 {#process-arguments-scrubbing} + +Live Processes 페이지에서 민감한 데이터를 숨기기 위해, Agent는 프로세스 명령줄에서 민감한 인수를 스크러빙합니다. 이 기능은 기본적으로 활성화되어 있으며, 다음 단어 중 하나와 일치하는 모든 프로세스 인수의 값은 숨겨집니다. ```text "password", "passwd", "mysql_pwd", "access_token", "auth_token", "api_key", "apikey", "secret", "credentials", "stripetoken" ``` -**참고**: 일치를 확인할 때 **대소문자 구분을 하지 않습니다**. +**참고**: 일치는 **대소문자 구분을 하지 않습니다**. {{< tabs >}} {{% tab "Linux/Windows" %}} -`process_config` 섹션 아래에 있는 `datadog.yaml` 파일 내 `custom_sensitive_words` 필드를 이용해 기본 목록과 병합할 목록을 정의합니다. 와일드카드 (`*`)를 사용해 원하는 일치 범위를 정의하세요. 단, 단일 와일드카드(`'*'`)는 민감한 단어로 사용할 수 없습니다. +기본 목록과 병합할 자체 목록을 정의하려면 `process_config` 섹션 아래의 `datadog.yaml` 파일에서 `custom_sensitive_words` 필드를 사용하세요. 와일드카드(`*`)를 사용하여 자체 일치 범위를 정의할 수 있습니다. 단, 와일드카드(`'*'`) 하나만으로 구성된 민감 단어는 지원되지 않습니다. ```yaml process_config: @@ -168,26 +294,26 @@ process_config: custom_sensitive_words: ['personal_key', '*token', 'sql*', '*pass*d*'] ``` -**참고**: `custom_sensitive_words` 내의 단어에는 영숫자, 밑줄, 와일드카드(`'*'`)만 포함할 수 있습니다. 와일드카드만 있는 민감한 단어는 지원되지 않습니다. +**참고**: `custom_sensitive_words`의 단어는 알파벳, 숫자, 밑줄 또는 와일드카드 (`'*'`)만 포함해야 합니다. 와일드카드만 있는 민감한 단어는 지원되지 않습니다. -다음 이미지는 위의 설정을 사용해 인수가 숨겨진 실시간 프로세스 페이지의 한 프로세스를 보여줍니다. +다음 이미지는 위의 구성을 사용해 인수가 숨겨진 Live Processes 페이지의 한 프로세스를 보여줍니다. {{< img src="infrastructure/process/process_arg_scrubbing.png" alt="프로세스 인수 스크러빙" style="width:100%;">}} -프로세스 인수 스크러빙을 완전히 비활성화하려면 `scrub_args`를 `false`로 설정합니다. +프로세스 인수 스크러빙을 완전히 비활성화하려면 `scrub_args`를 `false`로 설정하세요. -프로세스에서 **모든** 인수를 삭제하려면 `datadog.yaml` 설정 파일에서 `strip_proc_arguments` 플래그를 활성화합니다: +`datadog.yaml` 구성 파일에서 `strip_proc_arguments` 플래그를 활성화하여 프로세스의 **모든** 인수를 스크러빙할 수도 있습니다. ```yaml process_config: strip_proc_arguments: true ``` -{{< /tabs >}} +{{% /tab %}} {{% tab "Helm" %}} -헬름 차트를 이용해 목록을 정의할 수 있으며 이 목록은 기본 목록과 병합됩니다. 환경 변수 `DD_SCRUB_ARGS`와 `DD_CUSTOM_SENSITIVE_WORDS`를 `datadog-values.yaml` 파일에 추가하고, Datadog 헬름 차트를 업그레이드합니다: +Helm 차트를 사용하여 기본 목록과 병합되는 자체 목록을 정의할 수 있습니다. `DD_SCRUB_ARGS` 및 `DD_CUSTOM_SENSITIVE_WORDS` 환경 변수를 `datadog-values.yaml` 파일에 추가하고 Datadog Helm 차트를 업그레이드하세요. ```yaml datadog: @@ -199,18 +325,18 @@ datadog: containers: processAgent: env: - - name: DD_SCRUB_ARGS + - name: DD_SCRUB_ARGS value: "true" - name: DD_CUSTOM_SENSITIVE_WORDS - value: "personal_key,*token,*token,sql*,*pass*d*" + value: "personal_key,*token,*token,sql*,*pass*d*" ``` -와일드카드(`*`)를 사용해 원하는 일치 범위를 정의하세요. 단일 와일드카드(`'*'`)는 민감한 단어로 사용할 수 없습니다. +와일드카드(`*`)를 사용하여 자체 일치 범위를 정의할 수 있습니다. 단, 와일드카드(`'*'`) 하나만으로 구성된 민감 단어는 지원되지 않습니다. -프로세스 인수 스크러빙을 완전히 비활성화하려면 `DD_SCRUB_ARGS`를 `false`로 설정합니다. +프로세스 인수 스크러빙을 완전히 비활성화하려면 `DD_SCRUB_ARGS`를 `false`로 설정하세요. -또는 `datadog-values.yaml` 파일에서 `DD_STRIP_PROCESS_ARGS` 변수를 활성화함으로써 프로세스에서 **모든** 인수를 스크러빙할 수 있습니다. +또는 `datadog-values.yaml` 파일에서 `DD_STRIP_PROCESS_ARGS` 변수를 활성화하여 프로세스에서 **모든** 인수를 스크러빙할 수 있습니다. ```yaml datadog: @@ -218,167 +344,176 @@ datadog: processAgent: enabled: true processCollection: true - agents: - containers: - processAgent: - env: - - name: DD_STRIP_PROCESS_ARGS - value: "true" +agents: + containers: + processAgent: + env: + - name: DD_STRIP_PROCESS_ARGS + value: "true" ``` {{% /tab %}} {{< /tabs >}} -## 쿼리 +## 쿼리 {#queries} -### 프로세스 범위 지정 +### 프로세스 범위 지정 {#scoping-processes} -프로세스는 기본적으로 카디널리티가 높은 개체입니다. 텍스트와 태그 필터를 사용해 범위를 좁혀 관련 프로세스를 볼 수 있습니다. +프로세스는 본질적으로 매우 높은 카디널리티 객체입니다. 관련 프로세스를 보기 위해 범위를 세분화하려면 텍스트 및 태그 필터를 사용하면 됩니다. -#### 텍스트 필터 +#### 텍스트 필터 {#text-filters} -검색 창에 텍스트 스트링을 입력하면 유사 스트링 검색을 통해 명령줄이나 경로에 해당 텍스트 스트링을 포함하고 있는 프로세스를 쿼리합니다. 결과를 보려면 두 글자 이상의 문자열을 입력하세요. 아래 Datadog 데모 환경은 `postgres /9.` 스트링을 필터링한 결과를 보여줍니다. +검색창에 텍스트 문자열을 입력하면 해당 텍스트 문자열이 명령줄이나 경로에 포함된 프로세스를 퍼지 문자열 검색으로 쿼리합니다. 결과를 보려면 두 글자 이상의 문자열을 입력해야 합니다. 아래는 Datadog 데모 환경에서 `postgres /9.` 문자열로 필터링한 결과입니다. -**참고**: `/9.`와 명령 경로와 일치하며, `postgres`는 명령과 일치합니다. +**참고**: `/9.`는 명령 경로에서 일치한 경우이며, `postgres`는 명령 자체와 일치한 경우입니다. {{< img src="infrastructure/process/postgres.png" alt="Postgres" style="width:80%;">}} -여러 개의 스트링 검색을 하나의 복잡한 쿼리로 결합하려면 다음 부울 연산자 중 하나를 사용하세요: +여러 개의 스트링 검색을 하나의 복잡한 쿼리로 결합하려면 다음 부울 연산자 중 하나를 사용하세요. `AND` -: **교집합**: 선택한 이벤트에 두 단어가 모두 있음(아무것도 추가하지 않을 경우, AND가 기본적으로 사용됨)
    **예**: `java AND elasticsearch` +: **교집합**: 두 조건이 모두 포함된 이벤트를 검색합니다(아무 연산자를 입력하지 않으면 AND가 기본적으로 적용됨).
    **예**: `java AND elasticsearch` `OR` -: **합집합**: 선택한 이벤트에 두 단어 중 하나가 있음
    **예**: `java OR python` +: **합집합**: 두 조건 중 하나라도 포함된 이벤트를 검색합니다.
    **예**: `java OR python` `NOT` / `!` -: **제외**: 이벤트에 해당 단어가 없음. `NOT` 또는 `!` 문자를 사용해 동일한 결과를 얻을 수 있음
    **예**: `java NOT elasticsearch` 또는 `java !elasticsearch` - -괄호를 사용해 연산자를 함께 묶을 수 있습니다. 예를 들어 `(NOT (elasticsearch OR kafka) java) OR python`와 같이 사용할 수 있습니다. +: **제외**: 뒤에 오는 조건이 포함되지 않은 이벤트를 검색합니다. 동일한 연산을 수행하려면 `NOT` 단어 또는 `!` 문자를 사용할 수 있습니다.
    **예**: `java NOT elasticsearch` 또는 `java !elasticsearch` -#### 태그 필터 +연산자를 함께 그룹화하려면 괄호를 사용하세요. 예: `(NOT (elasticsearch OR kafka) java) OR python`. -`host`, `pod`, `user`, `service`와 같은 Datadog [태그][3]를 사용해 프로세스를 필터링할 수 있습니다. 검색 창에 태그 필터를 직접 입력하거나 페이지 왼편에 있는 패싯 패널에서 선택해 사용할 수 있습니다. +#### 태그 필터 {#tag-filters} -Datadog은 `command` 태그를 자동으로 생성하기 때문에 다음을 필터링할 수 있습니다: +`host`, `pod`, `user`, `service`와 같은 Datadog [태그][3]를 사용하여 프로세스를 필터링할 수도 있습니다. 검색창에 태그 필터를 직접 입력하거나 페이지 왼쪽의 패싯 패널에서 선택하세요. -- `command:mongod` 및 `command:nginx`와 같은 타사 소프트웨어 -- `command:docker` 및 `command:kubelet`와 같은 컨테이너 관리 소프트웨어 -- `command:ssh` 및 `command:CRON`와 같은 일반 워크로드 +Datadog은 `command` 태그를 자동으로 생성하기 때문에 다음 항목을 필터링할 수 있습니다. -### 프로세스 집계 +- 타사 소프트웨어, 예: `command:mongod`, `command:nginx` +- 컨테이너 관리 소프트웨어, 예: `command:docker`, `command:kubelet` +- 일반적인 워크로드, 예: `command:ssh`, `command:CRON` -[태그][3]를 이용해 더욱 효율적으로 검색해 보세요. 기존의 모든 호스트 수준 태그와 더불어 프로세스에는 `user` 태그가 사용됩니다. +#### 컨테이너화된 환경 태그 {#containerized-environment-tags} -또한, ECS 컨테이너의 프로세스에는 다음 태그가 사용됩니다: +또한, ECS 컨테이너의 프로세스에는 다음 태그가 사용됩니다. - `task_name` - `task_version` - `ecs_cluster` -쿠버네티스 컨테이너의 프로세스에는 다음 태그가 사용됩니다: +Kubernetes 컨테이너의 프로세스에는 다음 태그가 사용됩니다. - `pod_name` -- `kube_pod_ip` - `kube_service` - `kube_namespace` - `kube_replica_set` - `kube_daemon_set` - `kube_job` - `kube_deployment` -- `Kube_cluster` +- `kube_cluster_name` -[통합 서비스 태깅][4] 설정을 가지고 있다면 `env`, `service`, `version` 태그가 자동으로 사용됩니다. -이와 같은 태그를 사용하면 APM, 로그, 메트릭, 프로세스 데이터를 함께 묶을 수 있습니다. +[Unified Service Tagging][4]을 구성한 경우, `env`, `service`, `version` 태그가 자동으로 수집됩니다. +이 태그를 사용하면 APM, 로그, 메트릭 및 프로세스 데이터를 서로 연계할 수 있습니다. **참고**: 이 설정은 컨테이너화된 환경에만 적용됩니다. -## 산점도 +#### 사용자 지정 태그를 생성하는 규칙 {#rules-to-create-custom-tags} +
    +다음 작업을 수행하려면 Datadog의 Process Tags ReadProcess Tag Write 역할 권한이 필요합니다.
    +
    + +명령줄을 기반으로 프로세스에 수동 태그를 추가하기 위한 규칙 정의를 생성할 수 있습니다. + +1. **Manage Process Tags** 탭에서 _New Process Tag Rule_ 버튼을 선택합니다. +2. 참조로 사용할 프로세스를 선택합니다. +3. 태그의 구문 분석 및 일치 기준을 정의합니다. +4. 유효성 검사가 통과하면 새 규칙을 생성합니다. -산점도 분석을 이용해 두 개의 메트릭을 비교하면 컨테이너의 성능을 더 깊게 이해할 수 있습니다. +규칙이 생성된 후, 규칙 기준과 일치하는 모든 프로세스 명령줄 값에 대해 태그를 사용할 수 있습니다. 이 태그는 검색에서 사용할 수 있으며 [Live Process Monitor][6] 및 [Custom Metrics][13]의 정의에 사용할 수 있습니다. -[프로세스 페이지][5]에서 산점도 분석으로 이동하려면 _그래프 요약 보기_버튼을 클릭해 "산점도" 탭을 선택하세요: +## 산점도 {#scatter-plot} + +산점도 분석을 이용하면 메트릭 두 개를 비교하여 컨테이너 성능을 더 깊이 이해할 수 있습니다. + +[Processes 페이지][5]에서 산점도 분석으로 이동하려면 _Show Summary graph_ 버튼을 클릭한 후 "Scatter Plot" 탭을 선택하세요. {{< img src="infrastructure/process/scatterplot_selection.png" alt="산점도 선택" style="width:60%;">}} -기본적으로 그래프는 `command` 태그 키로 그룹화됩니다. 각 점의 크기는 해당 그룹의 프로세스 수를 나타내며, 점을 클릭하면 해당 그룹에 기여하는 개별 PID와 컨테이너를 볼 수 있습니다. +기본적으로 그래프는 `command` 태그 키로 그룹화됩니다. 각 점의 크기는 해당 그룹의 프로세스 수를 나타내며, 점을 클릭하면 해당 그룹에 기여하는 개별 프로세스와 컨테이너를 볼 수 있습니다. -산점도 분석 상단에 있는 쿼리를 이용해 산점도 분석을 조정할 수 있습니다: +그래프 상단의 옵션을 사용하면 산점도 분석을 제어할 수 있습니다. -- 표시할 메트릭 선택 -- 메트릭 두 개를 집계할 방법 선택 -- X와 Y축 배율 선택 (_Linear_/_Log_) +- 표시할 메트릭 선택. +- 두 메트릭에 대한 집계 방식 선택. +- X축과 Y축의 배율 선택(_선형_/_로그_). {{< img src="infrastructure/process/scatterplot.png" alt="컨테이너 검사" style="width:80%;">}} -## 프로세스 모니터 +## 프로세스 모니터 {#process-monitors} -[실시간 프로세스 모니터][6]를 사용해 호스트나 태그 전반의 프로세스 그룹 수를 기반으로 알림을 생성할 수 있습니다. [모니터 페이지][7]에서 프로세스 알림을 설정하면 됩니다. 더 자세한 내용은 [실시간 프로세스 모니터 설명서][6]를 참고하세요. +[Live Process Monitor][6]를 사용하여 호스트 또는 태그에 걸쳐 프로세스 그룹의 수를 기반으로 경보를 생성합니다. [Monitors 페이지][7]에서 프로세스 경보를 구성할 수 있습니다. 자세한 내용은 [Live Process Monitor 설명서][6]를 참조하세요. {{< img src="infrastructure/process/process_monitor.png" alt="프로세스 모니터" style="width:80%;">}} -## 대시보드 및 노트북 프로세스 +## 대시보드 및 노트북의 프로세스 {#processes-in-dashboards-and-notebooks} -[시계열 위젯][8]을 사용해 대시보드와 노트북에서 프로세스 메트릭을 그래프화할 수 있습니다. 다음 단계를 따라 설정하세요: -1. 프로세스를 데이터 소스로 선택합니다. -2. 검색 창에서 텍스트 스트링으로 필터링합니다. +[Timeseries 위젯][8]을 사용해 대시보드와 노트북에서 프로세스 메트릭을 그래프화할 수 있습니다. 구성 방법: +1. 데이터 소스로 Processes를 선택합니다. +2. 검색창에서 텍스트 문자열을 사용해 필터링합니다. 3. 그래프로 표시할 프로세스 메트릭을 선택합니다. 4. `From` 필드에서 태그를 활용해 필터링합니다. -{{< img src="infrastructure/process/process_widget.png" alt="프로세스 위젯" style="width:80%;">}} +{{< img src="infrastructure/process/process_widget.png" alt="Processes 위젯" style="width:80%;">}} -## 타사 소프트웨어 모니터링 +## 타사 소프트웨어 모니터링 {#monitoring-third-party-software} -### 자동 탐지된 통합 +### 자동 탐지된 통합 {#autodetected-integrations} -Datadog은 프로세스 수집을 통해 호스트에서 실행하는 기술을 자동 검색합니다. 이를 통해 해당 기술을 모니터링하는 데 도움이 되는 Datadog 통합을 식별합니다. 자동 검색된 통합은 [통합 검색][1]에 표시됩니다. +Datadog은 프로세스 수집을 사용하여 호스트에서 실행 중인 기술을 자동으로 감지합니다. 이를 통해 해당 기술을 모니터링하는 데 도움이 되는 Datadog 통합을 식별할 수 있습니다. 이 자동 탐지된 통합은 [Integrations 검색][1]에 표시됩니다. {{< img src="getting_started/integrations/ad_integrations.png" alt="자동 탐지된 통합" >}} 각 통합은 두 가지 상태 유형 중 하나에 해당합니다. -- **+ Detected**: 이 통합을 실행하는 호스트가 활성화하지 않은 통합입니다. -- **✓ Partial Visibility**: 일부 호스트가 활성화했지만, 모든 관련 호스트에서 실행되지는 않는 통합입니다. +- **+ Detected**: 이 통합이 실행 중인 호스트에서 활성화되지 않았습니다. +- **✓ Partial Visibility**: 이 통합이 일부 호스트에서 활성화되었지만, 실행 중인 모든 관련 호스트에서 활성화되지는 않았습니다. 통합을 실행하고 있지만 통합을 활성화하지 않은 호스트는 통합 타일의 **Hosts** 탭에 표시됩니다. -### 통합 보기 +### 통합 보기 {#integration-views} {{< img src="infrastructure/process/integration_views.png" alt="통합 보기" >}} 실시간 프로세스는 타사 소프트웨어 검색 후 해당 소프트웨어의 성능을 분석하는 데 도움이 됩니다. -1. 시작하려면 페이지 우측 상단에 있는 *보기*를 클릭해 Nginx, Redis, Kafka와 같은 사전 설정 옵션이 있는 목록을 여세요. +1. 시작하려면 페이지 우측 상단에 있는 *보기*를 클릭하여 Nginx, Redis, Kafka와 같은 사전 설정 옵션 목록을 엽니다. 2. 보기를 선택하여 해당 소프트웨어를 실행하는 프로세스로만 페이지의 범위를 지정합니다. -3. 크기가 큰 프로세스를 검사할 때 *통합 메트릭* 탭으로 이동해 기본 호스트 소프트웨어의 상태를 분석합니다. 관련 Datadog 통합을 이미 활성화한 상태라면 통합에서 수집한 성능 메트릭 모두를 확인하여 호스트 수준과 소프트웨어 수준 문제를 구분할 수 있습니다. 예를 들어, 프로세스 CPU와 MySQL 쿼리 지연 시간이 서로 연관되어 급증하는 것을 보면 전체 테이블 스캔과 같은 집중적인 작업으로 인해 동일한 기본 리소스에 의존하는 다른 MySQL 쿼리의 실행이 지연되고 있음을 나타낼 수 있습니다. - -페이지 상단에 있는 *+저장* 버튼을 눌러 통합 보기나 다른 커스텀 쿼리를 사용자 지정(예를 들어, 호스트별로 Nginx 프로세스 쿼리를 집계할 때)할 수 있습니다. 그러면 쿼리, 선택한 테이블 열, 시각화 설정이 저장됩니다. 저장된 보기를 생성하면 추가 설정 없이 빠르게 프로세스에 액세스할 수 있고 팀원과 프로세스 데이터를 공유할 수 있습니다. +3. 크기가 큰 프로세스를 검사할 때는 *Integration Metrics* 탭으로 이동해 기본 호스트에서 실행 중인 소프트웨어의 상태를 분석합니다. 관련 Datadog 통합을 이미 활성화한 상태라면 통합에서 수집한 성능 메트릭 모두를 확인하여 호스트 수준과 소프트웨어 수준 문제를 구분할 수 있습니다. 예를 들어, 프로세스 CPU와 MySQL 쿼리 지연 시간이 서로 연관되어 급증하는 것을 보면 전체 테이블 스캔과 같은 집중적인 작업으로 인해 동일한 기본 리소스에 의존하는 다른 MySQL 쿼리의 실행이 지연되고 있음을 나타낼 수 있습니다. -## 플랫폼 전반의 프로세스 +Nginx 프로세스를 호스트별로 집계하는 경우와 같은 통합 보기 또는 기타 사용자 지정 쿼리는 페이지 상단의 *+Save* 버튼을 클릭하여 저장할 수 있습니다. 이렇게 하면 쿼리, 테이블 열 선택 및 시각화 설정이 저장됩니다. 이를 통해 자주 조회하는 프로세스에 추가 구성 없이 빠르게 접근할 수 있으며, 팀원들과 프로세스 데이터를 공유할 수도 있습니다. -{{< img src="infrastructure/process/process_platform.mp4" alt="플랫폼 전반의 프로세스" video=true >}} +## 플랫폼 전반의 프로세스 {#processes-across-the-platform} -### 실시간 컨테이너 +### Live Containers {#live-containers} -실시간 프로세스는 각 컨테이너에서 실행되는 프로세스를 모니터링하여 컨테이너 배포 상황을 보여줍니다. [실시간 컨테이너][9] 페이지에서 컨테이너를 클릭하면 실행하는 명령과 리소스 사용 등 프로세스 트리를 확인할 수 있습니다. 이 데이터를 다른 컨테이너 메트릭과 함께 사용해 컨테이너 실패나 배포 실패의 근본 원인을 진단할 수 있습니다. +Live Processes는 각 컨테이너에서 실행 중인 프로세스를 모니터링하여 컨테이너 배포에 대한 추가 가시성을 제공합니다. [Live Processes][9] 페이지에서 컨테이너를 클릭하면 실행 중인 명령어와 각 프로세스의 리소스 사용량을 포함한 프로세스 트리를 볼 수 있습니다. 이 데이터를 다른 컨테이너 메트릭과 함께 사용하면 실패한 컨테이너나 배포의 근본 원인을 파악할 수 있습니다. -### APM +### APM {#apm} -[APM 트레이스][10]에서 서비스 스팬을 클릭하면 기본 인프라스트럭처에서 실행하는 프로세스를 확인할 수 있습니다. 서비스 스팬 프로세스는 요청 시점에서 서비스를 실행하는 호스트나 포드와 상관 관계가 있습니다. CPU와 RSS 메모리와 같은 프로세스 메트릭을 코드 수준 오류와 함께 분석해 특정 애플리케이션 문제나 일반적인 인프라스트럭처 문제를 구분할 수 있습니다. 프로세스를 클릭하면 실시간 프로세스 페이지로 이동합니다. 서버리스와 브라우저 트레이스에는 관련 프로세스가 지원되지 않습니다. +[APM Traces][10]에서 서비스의 스팬을 클릭하면 해당 서비스의 기본 인프라에서 실행 중인 프로세스를 볼 수 있습니다. 서비스의 스팬 프로세스는 요청 시점에 서비스가 실행되는 호스트 또는 포드와 연관되어 있습니다. CPU 및 RSS 메모리와 같은 프로세스 메트릭을 코드 수준의 오류와 함께 분석하면 문제가 애플리케이션 자체에 있는지, 아니면 더 광범위한 인프라 문제인지 구분할 수 있습니다. 프로세스를 클릭하면 Live Processes 페이지로 이동합니다. 관련 프로세스는 서버리스 및 브라우저 트레이스에서는 지원되지 않습니다. -### 네트워크 성능 모니터링 +### Cloud Network Monitoring {#cloud-network-monitoring} -[네트워크 개요][11]에서 종속성을 검사할 때, 서비스 간 통신과 같은 엔드포인트의 기본 인프라스트럭처에서 실행 중인 프로세스를 확인할 수 있습니다. 프로세스 메타데이터를 이용해 네트워크 연결 불량 (TCP 재전송 수가 높은 경우)이나 긴 네트워크 호출 대기 시간 (TCP 왕복 시간이 높은 경우)이 엔드포인트 리소스를 소비하는 과중한 작업량 때문인지, 이 때문에 통신 상태와 효율성에 영향을 미치는지 확인할 수 있습니다. +[Network Analytics][11] 페이지에서 종속성을 검사하면 서비스 간 통신과 같은 엔드포인트의 기반 인프라에서 실행 중인 프로세스를 확인할 수 있습니다. 프로세스 메타데이터를 이용해 네트워크 연결 불량(TCP 재전송 수가 높은 경우)이나 긴 네트워크 호출 대기 시간(TCP 왕복 시간이 높은 경우)이 엔드포인트의 리소스를 과도하게 사용하는 워크로드 때문인지, 이로 인해 통신 상태와 효율성에 영향을 미치는지 확인할 수 있습니다. -## 실시간 모니터링 +## 실시간 모니터링 {#real-time-monitoring} -실시간 프로세스로 활발히 작업하는 동안 메트릭은 2초마다 수집됩니다. 이는 CPU와 같이 변동이 큰 메트릭에 중요한 역할을 합니다. 기록을 위한 백그라운드에서는 메트릭이 10초마다 수집됩니다. +프로세스는 일반적으로 10초 해상도로 수집됩니다. 그러나 Live Processes 페이지를 적극적으로 사용하는 동안에는 메트릭이 2초 해상도로 수집되어 실시간으로 표시됩니다. 이는 CPU와 같이 변동성이 큰 메트릭을 분석할 때 특히 중요합니다. 반면 과거 데이터는 기본 10초 해상도로 수집됩니다. -## 추가 정보 +## 추가 정보 {#additional-information} -- 30분 후에는 실시간 (2초) 데이터 수집 기능이 꺼집니다. 실시간 수집을 재개하려면 페이지를 새로 고침 하세요. -- 컨테이너 배포에서 각 프로세스의 사용자 이름을 수집하려면 `docker-dd-agent`에 마운트된 `/etc/passwd` 파일이 필요합니다. 이 파일은 공용이며 프로세스 에이전트는 사용자 이름 외 다른 필드를 사용하지 않습니다. `user` 메타데이터 필드를 제외한 모든 기능은 이 파일에 대한 액세스 없이 작동합니다. **참고**: 실시간 프로세스는 호스트 `passwd` 파일만을 사용하며, 컨테이너 내에서 생성된 사용자에 대해 사용자 이름을 확인하지 않습니다. +- 실시간(2초) 데이터 수집은 30분 후에 꺼집니다. 실시간 수집을 재개하려면 페이지를 새로 고침하세요. +- 컨테이너 배포에서는 `/etc/passwd` 파일을 `docker-dd-agent`에 마운트해야 각 프로세스의 사용자 이름을 수집할 수 있습니다. 이 파일은 공개 파일이며 Process Agent는 사용자 이름을 제외한 다른 필드를 사용하지 않습니다. Agent가 권한 없음 모드로 실행되는 경우 마운트가 발생하지 않습니다. `/etc/passwd` 파일에 접근할 수 없더라도 `user` 메타데이터 필드를 제외한 모든 기능은 정상적으로 동작합니다. **참고**: Live Processes는 호스트의 `passwd` 파일만 사용하며 컨테이너 내에서 생성된 사용자에 대해서는 사용자 이름 확인을 수행하지 않습니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -388,9 +523,11 @@ Datadog은 프로세스 수집을 통해 호스트에서 실행하는 기술을 [4]: /ko/getting_started/tagging/unified_service_tagging [5]: https://app.datadoghq.com/process [6]: /ko/monitors/types/process/ -[7]: https://app.datadoghq.com/monitors#create/live_process +[7]: https://app.datadoghq.com/monitors/create/live_process [8]: /ko/dashboards/widgets/timeseries/#pagetitle [9]: /ko/infrastructure/livecontainers/ [10]: /ko/tracing/ -[11]: /ko/network_monitoring/performance/network_page -[12]: /ko/agent/guide/agent-commands/#restart-the-agent \ No newline at end of file +[11]: /ko/network_monitoring/cloud_network_monitoring/network_analytics +[12]: /ko/agent/configuration/agent-commands/#restart-the-agent +[13]: /ko/metrics/custom_metrics/ +[14]: /ko/network_monitoring/cloud_network_monitoring/ \ No newline at end of file diff --git a/content/ko/internal_developer_portal/software_catalog/entity_model/_index.md b/content/ko/internal_developer_portal/software_catalog/entity_model/_index.md new file mode 100644 index 00000000000..0bae30f4cf8 --- /dev/null +++ b/content/ko/internal_developer_portal/software_catalog/entity_model/_index.md @@ -0,0 +1,606 @@ +--- +algolia: + tags: + - codeLocations +aliases: +- /ko/software_catalog/service_definitions/ +- /ko/software_catalog/adding_metadata +- /ko/tracing/software_catalog/service_metadata_structure +- /ko/tracing/software_catalog/adding_metadata +- /ko/software_catalog/add_metadata +- /ko/service_catalog/adding_metadata +- /ko/tracing/service_catalog/service_metadata_structure +- /ko/tracing/service_catalog/adding_metadata +- /ko/service_catalog/add_metadata +- /ko/service_catalog/service_definitions +- /ko/service_catalog/service_definitions/v2-0 +- /ko/software_catalog/service_definitions/v2-0 +- /ko/service_catalog/service_definitions/v2-1 +- /ko/software_catalog/service_definitions/v2-1 +- /ko/service_catalog/service_definitions/v2-2 +- /ko/software_catalog/service_definitions/v2-2 +- /ko/service_catalog/service_definitions/v3-0 +- /ko/software_catalog/service_definitions/v3-0 +- /ko/software_catalog/apis +- /ko/tracing/faq/service_definition_api/ +- /ko/tracing/software_catalog/service_definition_api +- /ko/software_catalog/service_definition_api +- /ko/tracing/service_catalog/service_definition_api +- /ko/service_catalog/service_definition_api +- /ko/tracing/api_catalog/api_catalog_api/ +- /ko/api_catalog/api_catalog_api +- /ko/service_catalog/apis +further_reading: +- link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_definition_yaml + tag: 외부 사이트 + text: Terraform으로 정의 생성 및 관리 +- link: /api/latest/service-definition/ + tag: API + text: Definition API에 대해 알아보기 +- link: /integrations/github + tag: 설명서 + text: GitHub 통합에 대해 알아보기 +- link: https://www.datadoghq.com/blog/service-catalog-backstage-yaml/ + tag: 블로그 + text: Backstage YAML 파일을 Datadog으로 가져오기 +- link: https://www.datadoghq.com/blog/service-catalog-schema-v3/ + tag: 블로그 + text: Service Catalog 스키마 버전 3.0으로 개발자 경험 및 협업 개선 +- link: https://www.datadoghq.com/blog/software-catalog-custom-entities/ + tag: 블로그 + text: Datadog Software Catalog에서 사용자 지정 엔터티로 아키텍처 모델링 +title: 엔터티 모델 +--- +{{< site-region region="gov,gov2" >}} +
    Entity Model schema v3.0은 현재 선택한 사이트에서 사용할 수 없습니다.
    + +{{< /site-region >}} + +## 개요 {#overview} + +Software Catalog는 정의 스키마를 사용하여 엔터티와 관련된 메타데이터를 저장하고 표시합니다. 이 스키마에는 유효한 값만 허용되도록 보장하는 기본 제공 유효성 검사 규칙이 포함되어 있습니다. 선택한 서비스에 대해 Software Catalog 사이드 패널의 **Definition** 탭에서 경고를 확인할 수 있습니다. + +{{< img src="/tracing/internal_developer_portal/entity-model-flow-chart.png" alt="Software Catalog의 구성 요소가 상호, 그리고 클라우드 환경과 연결되는 방식을 보여주는 흐름도 " style="width:100%;" >}} + +## 지원되는 버전 {#supported-versions} + +Datadog은 정의 스키마의 네 가지 버전을 지원합니다. + +- **v3.0**: 확장된 데이터 모델, 다중 소유권 지원, 수동 종속성 선언 및 복잡한 인프라를 위한 향상된 기능을 제공하는 최신 버전입니다. +- **v2.2**: 사용자 지정 메타데이터를 위한 사용자 주석과 서비스를 빌드 프로세스에 연결하기 위한 CI 파이프라인 연결을 지원합니다. +- **v2.1**: 향상된 구성 관리를 위한 서비스 그룹화를 지원하며 보다 포괄적인 서비스 설명을 위한 추가 필드를 도입합니다. +- **v2**: 기본 서비스 메타데이터 및 문서화를 위한 필수 필드를 제공하는 가장 초기 버전입니다. + +각 버전은 이전 버전을 기반으로 하여 새로운 기능을 추가하면서도 이전 버전과의 호환성을 유지합니다. 자신의 필요와 인프라 복잡성에 가장 적합한 버전을 선택하세요. + +## 버전 비교 {#version-comparison} + +각 버전에서 지원되는 기능은 다음과 같습니다. + +| 기능 | v3.0 | v2.2 | v2.1 | v2.0 | +|-------------------------------|-------------|-----------|-----------|-----------| +| 기본 메타데이터 | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | +| 서비스 그룹화 | {{< X >}} | {{< X >}} | {{< X >}} | | +| 사용자 주석 | {{< X >}} | {{< X >}} | | | +| CI 파이프라인 연결 | {{< X >}} | {{< X >}} | | | +| 확장된 데이터 모델 | {{< X >}} | | | | +| 다중 소유자 | {{< X >}} | | | | +| 수동 종속성 선언 | {{< X >}} | | | | + +각 버전에 대한 자세한 정보(전체 스키마 및 YAML 예제 파일 포함)는 [지원되는 버전](#supported-versions)의 개별 버전 페이지를 참조하세요. + +## 버전 세부 정보 {#version-details} + +{{< callout url="https://forms.gle/fwzarcSww6By7tn39" d_target="#signupModal" btn_hidden="false" header="최신 버전의 Software Catalog 미리보기에 참여하세요." >}} +{{< /callout >}} + +{{< tabs >}} +{{% tab "v3.0" %}} + +### 주요 기능 {#key-features} +- **확장된 데이터 모델**: v3.0은 여러 종류의 엔터티를 지원합니다. 시스템, 서비스, 대기열, 데이터스토어 등의 다양한 구성 요소를 사용하여 시스템을 구성할 수 있습니다. +- **다중 소유자**: v3.0 스키마를 통해 정의된 모든 객체에 여러 소유자를 할당하여 여러 연락 창구를 지정할 수 있습니다. +- **향상된 관계 매핑**: APM 및 USM 데이터를 사용하여 구성 요소 간의 종속성을 자동으로 감지할 수 있습니다. v3.0은 자동으로 감지된 시스템 토폴로지를 보완하기 위해 수동 선언을 지원하여 시스템 내의 구성 요소가 상호 작용하는 방식을 완전하게 파악하도록 할 수 있습니다. +- **시스템 메타데이터의 상속**: 시스템 내의 구성 요소는 시스템의 메타데이터를 자동으로 상속합니다. v2.1 및 v2.2와 같이 모든 관련 구성 요소에 대해 메타데이터를 하나씩 선언할 필요가 없습니다. +- **정확한 코드 위치**: 서비스에 대한 코드 위치 매핑을 추가합니다. v3.0의 `codeLocations` 섹션은 코드가 포함된 리포지토리와 관련 `paths` 정보를 사용하여 코드 위치를 지정합니다. `paths` 속성은 리포지토리 내 경로와 일치해야 하는 [glob][4] 목록입니다. +- **필터링된 로그 및 이벤트**: `system`에 대한 저장된 로그 및 이벤트 쿼리를 `logs` 및 `events` 섹션을 통해 선언하고 System 페이지에서 결과를 확인합니다. +- **사용자 지정 엔터티**: Service, System, Datastore, Queue, API 외에 사용자 지정 엔터티 유형을 정의합니다. 특정 엔터티 유형으로 scorecard와 액션의 범위를 한정합니다. +- **(예정) 통합**: 타사 도구와 통합하여 구성 요소와 관련된 정보를 동적으로 소싱합니다(예: GitHub 풀 요청, PagerDuty 인시던트 및 GitLab 파이프라인). 모든 타사 소스를 대상으로 보고서를 생성하거나 scorecard 규칙을 작성합니다. +- **(예정) 제품 또는 도메인별 그룹화**: 제품별로 구성 요소를 조직하여 여러 계층의 계층적 그룹화를 구현합니다. + +### 스키마 구조 {#schema-structure} + +[Github][1]에서 전체 스키마 정의를 확인할 수 있습니다. + +v3.0에는 v2.2 대비 다음과 같은 변경 사항이 포함되어 있습니다. +- `schema_version`는 `apiVersion`로 변경되었습니다. +- `kind` 필드가 새로 추가되었으며 구성 요소 유형(서비스, 대기열, 데이터스토어, 시스템 또는 API)을 정의합니다. +- `dd-service`는 `metadata.name`으로 변경되었습니다. +- `team`은 `owner`로 변경되었으며, 여러 팀이 있는 경우 `additionalOwners`를 사용할 수 있습니다. +- `lifecycle`, `tier`, `languages`, `type`은 이제 `spec` 아래에 있습니다. +- `links`, `contacts`, `description`, `tags`는 이제 metadata 아래에 있습니다. +- `application`은 독립적인 유형인 `system`으로 확장되었습니다. 더 이상 서비스의 개별 필드로 존재하지 않습니다. + +### 예제 YAML 파일 {#example-yaml-files} + +{{% collapse-content title="다음의 구성 요소: kind:system" level="h4" expanded=false id="id-for-anchoring" %}} +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +metadata: + name: myapp + displayName: My App + tags: + - tag:value + links: + - name: shopping-cart runbook + type: runbook + url: https://runbook/shopping-cart + - name: shopping-cart architecture + provider: gdoc + url: https://google.drive/shopping-cart-architecture + type: doc + - name: shopping-cart Wiki + provider: wiki + url: https://wiki/shopping-cart + type: doc + - name: shopping-cart source code + provider: github + url: http://github/shopping-cart + type: repo + contacts: + - name: Support Email + type: email + contact: team@shopping.com + - name: Support Slack + type: slack + contact: https://www.slack.com/archives/shopping-cart + owner: myteam + additionalOwners: + - name: opsTeam + type: operator +integrations: + pagerduty: + serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart + opsgenie: + serviceURL: https://www.opsgenie.com/service/shopping-cart + region: US +spec: + components: + - service:myservice + - service:otherservice +extensions: + datadoghq.com/shopping-cart: + customField: customValue +datadog: + codeLocations: + - repositoryURL: https://github.com/myorganization/myrepo.git + paths: + - path/to/service/code/** + events: + - name: "deployment events" + query: "app:myapp AND type:github" + - name: "event type B" + query: "app:myapp AND type:github" + logs: + - name: "critical logs" + query: "app:myapp AND type:github" + - name: "ops logs" + query: "app:myapp AND type:github" + pipelines: + fingerprints: + - fp1 + - fp2 +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="다음의 구성 요소: kind:library" level="h4" expanded=false id="id-for-anchoring" %}} +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: library +metadata: + name: my-library + displayName: My Library + tags: + - tag:value + links: + - name: shopping-cart runbook + type: runbook + url: https://runbook/shopping-cart + - name: shopping-cart architecture + provider: gdoc + url: https://google.drive/shopping-cart-architecture + type: doc + - name: shopping-cart Wiki + provider: wiki + url: https://wiki/shopping-cart + type: doc + - name: shopping-cart source code + provider: github + url: http://github/shopping-cart + type: repo + contacts: + - name: Support Email + type: email + contact: team@shopping.com + - name: Support Slack + type: slack + contact: https://www.slack.com/archives/shopping-cart + owner: myteam + additionalOwners: + - name: opsTeam + type: operator +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="여러 시스템에 속한 구성 요소" level="h4" expanded=false id="id-for-anchoring" %}} +하나의 구성 요소가 여러 시스템에 속하는 경우 각 시스템의 YAML에 해당 구성 요소를 지정해야 합니다. 예를 들어, 데이터스토어 `orders-postgres`가 Postgres 플릿과 웹 애플리케이션 모두의 구성 요소인 경우 두 개의 YAML을 지정해야 합니다. + +PostgreSQL 플릿(`managed-postgres`)에 대해 `kind:system`에 대한 정의를 지정합니다. +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +spec: + components: + - datastore:orders-postgres + - datastore:foo-postgres + - datastore:bar-postgres +metadata: + name: managed-postgres + owner: db-team +{{< /code-block >}} + +웹 애플리케이션(`shopping-cart`)에 대해 `kind:system`의 별도 정의를 선언합니다. +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} + +apiVersion: v3 +kind: system +spec: + lifecycle: production + tier: critical + components: + - service:shopping-cart-api + - service:shopping-cart-processor + - queue:orders-queue + - datastore:orders-postgres +metadata: + name: shopping-cart + owner: shopping-team + additionalOwners: + - name: sre-team + type: operator +--- +apiVersion: v3 +kind: datastore +metadata: + name: orders-postgres + additionalOwners: + - name: db-team + type: operator +--- +apiVersion: v3 +kind: service +metadata: + name: shopping-cart-api +--- +apiVersion: v3 +kind: service +metadata: + name: shopping-cart-processor +--- +{{< /code-block >}} +{{% /collapse-content %}} + +### 명시적 및 암시적 메타데이터 상속 {#explicit-and-implicit-metadata-inheritance} + +#### 명시적 상속 {#explicit-inheritance} + +`inheritFrom` 필드는 수집 파이프라인에 `:`에서 참조된 엔터티의 메타데이터를 상속하도록 지시합니다. + +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +inheritFrom:: +{{< /code-block >}} + +#### 암시적 상속 {#implicit-inheritance} +구성 요소(`kind:service`, `kind:datastore`, `kind:queue`, `kind:ui`)는 다음 조건에서 자신이 속한 시스템의 모든 메타데이터를 상속합니다. +- YAML 파일에 정의된 시스템이 하나뿐인 경우 +- YAML 파일에 `inheritFrom::` 절이 없는 경우 + +### v3.0으로 마이그레이션 {#migrating-to-v30} +v3.0은 GitHub, API, Terraform, Backstage, ServiceNow 및 UI를 포함하여 이전 버전과 동일한 메타데이터 생성 방법을 지원합니다. 그러나 v3.0에 새로운 [API 엔드포인트][5]와 새로운 [Terraform 리소스][6]가 추가되었습니다. + +### API 참조 설명서 {#api-reference-documentation} +엔드포인트, 시스템, 데이터스토어, 대기열 등 모든 엔터티 유형에 대한 정의를 생성, 조회 및 삭제하려면 [Software Catalog API 참조][8]를 참조하세요. + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v3 +[2]: https://github.com/DataDog/schema/tree/main/service-catalog +[3]: /ko/code_analysis/faq/#identifying-the-code-location-in-the-service-catalog +[4]: https://en.wikipedia.org/wiki/Glob_(programming) +[5]: /ko/api/latest/software-catalog/ +[6]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog +[7]: software_catalog/customize/import_entries_backstage +[8]: /ko/api/latest/software-catalog/ + +{{% /tab %}} + +{{% tab "v2.2" %}} + +### 주요 기능 {#key-features-1} +- 사용자 주석 +- 자동 감지된 서비스 유형 및 언어를 `type` 및 `languages`을 사용하여 덮어쓰기 +- `ci-pipeline-fingerprints`를 사용하여 CI 파이프라인을 서비스와 연결 +- `contact.type` 및 `link.type`에 대해 덜 엄격한 유효성 검사 로직 + +### 스키마 구조 {#schema-structure-1} + +[전체 스키마는 GitHub에서 확인할 수 있습니다][1]. + +예제 YAML: + +```yaml +schema-version: v2.2 +dd-service: shopping-cart +team: e-commerce +application: shopping-app +tier: "1" +type: web +languages: + - go + - python +contacts: + - type: slack + contact: https://yourorg.slack.com/archives/e-commerce + - type: email + contact: ecommerce@example.com + - type: microsoft-teams + contact: https://teams.microsoft.com/example +links: + - name: Runbook + type: runbook + url: http://runbook/shopping-cart + - name: Source + type: repo + provider: github + url: https://github.com/shopping-cart + - name: Deployment + type: repo + provider: github + url: https://github.com/shopping-cart + - name: Config + type: repo + provider: github + url: https://github.com/consul-config/shopping-cart + - name: E-Commerce Team + type: doc + provider: wiki + url: https://wiki/ecommerce + - name: Shopping Cart Architecture + type: doc + provider: wiki + url: https://wiki/ecommerce/shopping-cart + - name: Shopping Cart RFC + type: doc + provider: google doc + url: https://doc.google.com/shopping-cart +tags: + - business-unit:retail + - cost-center:engineering +integrations: + pagerduty: + service-url: https://www.pagerduty.com/service-directory/PSHOPPINGCART + opsgenie: + service-url: "https://www.opsgenie.com/service/uuid" + region: "US" +ci-pipeline-fingerprints: + - id1 + - id2 +extensions: + additionalProperties: + customField1: customValue1 + customField2: customValue2 +``` + +### API 참조 설명서 {#api-reference-documentation-1} + +- 서비스 정의를 생성, 조회 및 삭제하려면 [Service Definitions API 참조][4]를 참조하세요. +- 시스템, 데이터스토어, 대기열 등 새로운 구성 요소 유형의 정의를 생성, 조회 및 삭제하려면 [Software Catalog API 참조][3]를 참조하세요. +- 서비스 scorecard 규칙 및 결과를 생성하고 업데이트하려면 [Service Scorecards API 참조][2]를 참조하세요. + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2.2 +[2]: /ko/api/latest/service-scorecards/ +[3]: /ko/api/latest/software-catalog/ +[4]: /ko/api/latest/service-definition/ + +{{% /tab %}} + +{{% tab "v2.1" %}} + +### 주요 기능 {#key-features-2} +- 서비스 그룹화 및 `application`, `tier`, `lifecycle`에 대한 필드와 같은 새로운 UI 요소 +- `Application` 및 `Teams`는 Software Catalog에서 그룹화 변수로 사용할 수 있습니다. +- `Lifecycle` 필드는 `production`, `experimental` 또는 `deprecated` 서비스 간의 차별화를 위한 개발 단계를 나타냅니다 +- `Tier` 필드는 인시던트 분류 시 우선순위를 정하기 위한 서비스의 중요도를 나타냅니다. + +### 스키마 구조 {#schema-structure-2} + +[전체 스키마는 GitHub에서 확인할 수 있습니다][1]. + +예제 YAML: + +```yaml +schema-version: v2.1 +dd-service: delivery-state-machine +team: serverless +application: delivery-state-machine +tier: tier0 +lifecycle: production +contacts: + - type: slack + contact: https://datadogincidents.slack.com/archives/C01EWN6319S +links: + - name: Demo Dashboard + type: dashboard + url: https://app.datadoghq.com/dashboard/krp-bq6-362 + - name: Source + provider: github + url: https://github.com/DataDog/shopist-serverless/tree/main/delivery-state-machine + type: repo + - name: Deployment + provider: github + url: https://github.com/DataDog/shopist-serverless/blob/main/delivery-state-machine/serverless.yml + type: repo + - name: Datadog Doc + provider: link + url: https://docs.datadoghq.com/ + type: doc +tags: + - "app:serverless-delivery" + - "tier:3" + - "business-unit:operations" +``` + +### API 참조 설명서 {#api-reference-documentation-2} + +- 서비스 정의를 생성, 조회 및 삭제하려면 [Service Definitions API 참조][4]를 참조하세요. +- 시스템, 데이터스토어, 대기열 등 새로운 구성 요소 유형의 정의를 생성, 조회 및 삭제하려면 [Software Catalog API 참조][3]를 참조하세요. +- 서비스 scorecard 규칙 및 결과를 생성하고 업데이트하려면 [Service Scorecards API 참조][2]를 참조하세요. + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2.1 +[2]: /ko/api/latest/service-scorecards/ +[3]: /ko/api/latest/software-catalog/ +[4]: /ko/api/latest/service-definition/ + +{{% /tab %}} + +{{% tab "v2.0" %}} + +### 주요 기능 {#key-features-3} +- 기본 서비스 메타데이터 +- 팀 연결 +- 연락처 정보 +- 외부 링크 + +### 스키마 구조 {#schema-structure-3} + +[전체 스키마는 GitHub에서 확인할 수 있습니다][1]. + +예제 YAML: + +```yaml +schema-version: v2 +dd-service: delivery-api +team: distribution-management +contacts: + - type: slack + contact: https://datadogincidents.slack.com/archives/C01EWN6319S +links: + - name: Demo Dashboard + type: dashboard + url: https://app.datadoghq.com/dashboard/krp-bq6-362 +repos: + - name: Source + provider: github + url: https://github.com/DataDog/shopist/tree/prod/rails-storefront +docs: + - name: Datadog Doc + provider: link + url: https://docs.datadoghq.com/ +tags: [] +integrations: + pagerduty: https://datadog.pagerduty.com/service-directory/PXZNFXP +``` + +### API 참조 설명서 {#api-reference-documentation-3} + +- 서비스 정의를 생성, 조회 및 삭제하려면 [Service Definitions API 참조][4]를 참조하세요. +- 시스템, 데이터스토어, 대기열 등 새로운 구성 요소 유형의 정의를 생성, 조회 및 삭제하려면 [Software Catalog API 참조][3]를 참조하세요. +- 서비스 scorecard 규칙 및 결과를 생성하고 업데이트하려면 [Service Scorecards API 참조][2]를 참조하세요. + +[1]: https://github.com/DataDog/schema/tree/main/service-catalog/v2 +[2]: /ko/api/latest/service-scorecards/ +[3]: /ko/api/latest/software-catalog/ +[4]: /ko/api/latest/service-definition/ + +{{% /tab %}} + +{{< /tabs >}} + + +## 사용자 지정 확장 구축 {#build-custom-extensions} + +
    사용자 지정 확장은 모든 스키마 버전에서 제한된 가용성으로 제공됩니다.
    + +사용자 지정 확장을 사용하면 조직별 메타데이터를 엔터티에 연결할 수 있어 사용자 지정 도구 및 워크플로를 지원할 수 있습니다. 예를 들어, `extensions` 필드를 사용하여 엔터티 정의에 릴리스 노트, 규정 준수 태그 또는 소유 모델을 포함할 수 있습니다. + +Datadog은 특정 기능을 위한 전용 확장 키도 지원합니다. 여기에는 다음이 포함됩니다. +- `datadoghq.com/dora-metrics`: [DORA 메트릭][21]을 계산할 때 Git 커밋을 필터링하기 위한 소스 코드 경로 패턴을 정의합니다. +- `datadoghq.com/cd-visibility`: [CD Visibility][22]에서 배포의 일부로 간주되는 커밋을 제어합니다. + +다음 예제는 환경별 릴리스 일정을 관리하는 데 사용되는 사용자 지정 확장을 정의합니다. +{{< code-block lang="yaml" filename="service.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: system +metadata: + name: payment-platform + displayName: "Payment Platform" + links: + - name: Runbook + type: runbook + url: https://runbook/payment-platform + contacts: + - name: Payment Team + type: team + contact: https://www.slack.com/archives/payments + owner: payments-team + additionalOwners: + - name: finance-team + type: stakeholder +spec: + components: + - service:payment-api + - queue:payment-requests + - datastore:payment-db +extensions: + shopist.com/release-scheduler: + release-manager: + slack: "release-train-shopist" + schedule: "* * * * *" + env: + - name: "staging" + ci_pipeline: "ci-tool://shopist/k8s/staging-deploy" + branch: "main" + schedule: "0 9 * * 1" +{{< /code-block >}} + + +## IDE 플러그인을 통한 스키마 유효성 검사 {#schema-validation-through-ide-plugin} + +Datadog은 정의에 대한 [JSON 스키마][18]를 제공하므로 [지원되는 IDE][19]에서 정의를 편집할 때 자동 완성 및 유효성 검사와 같은 기능을 사용할 수 있습니다. + +{{< img src="tracing/software_catalog/ide_plugin.png" alt="VSCode에서 수정이 필요한 문제 인식" style="width:100%;" >}} + +[Datadog 정의용 JSON 스키마][20]는 오픈 소스 [Schema Store][19]에 등록되어 있습니다. + + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[5]: https://app.datadoghq.com/services +[6]: /ko/integrations/github/ +[7]: https://app.datadoghq.com/integrations/github +[8]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_definition_yaml +[9]: https://registry.terraform.io/providers/DataDog/datadog/latest/ +[10]: https://github.com/marketplace/actions/datadog-service-catalog-metadata-provider +[11]: /ko/tracing/software_catalog/service_definition_api/ +[12]: https://app.datadoghq.com/personal-settings/profile +[13]: http://json-schema.org/ +[14]: https://www.schemastore.org/json/ +[15]: https://raw.githubusercontent.com/DataDog/schema/refs/heads/main/service-catalog/service.schema.json +[16]: /ko/api/latest/software-catalog/#create-or-update-entities +[17]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/software_catalog +[18]: http://json-schema.org/ +[19]: https://www.schemastore.org +[20]: https://raw.githubusercontent.com/DataDog/schema/refs/heads/main/service-catalog/service.schema.json +[21]: /ko/dora_metrics/setup/#handling-multiple-services-in-the-same-repository +[22]: /ko/continuous_delivery/features/code_changes_detection?tab=github#specify-service-file-path-patterns \ No newline at end of file diff --git a/content/ko/logs/explorer/facets.md b/content/ko/logs/explorer/facets.md index c55c4240829..4cb07844ab8 100644 --- a/content/ko/logs/explorer/facets.md +++ b/content/ko/logs/explorer/facets.md @@ -1,236 +1,238 @@ --- algolia: tags: - - 로그 패싯 + - log facets aliases: - /ko/logs/facets description: 로그 패싯과 패싯 패널 further_reading: - link: logs/explorer/analytics tag: 설명서 - text: 로그 분석 실행하기 + text: 로그 분석 수행 - link: logs/explorer/patterns tag: 설명서 text: 로그 내 패턴 감지 - link: /logs/log_configuration/processors tag: 설명서 - text: 로그 처리하는 방법 배우기 + text: 로그 처리 방법 알아보기 - link: logs/explorer/saved_views tag: 설명서 - text: 로그 탐색기 자동 설정 + text: Log Explorer 자동 구성 +- link: https://learn.datadoghq.com/courses/log-explorer + tag: 학습 센터 + text: Log Explorer 시작 title: 로그 패싯 --- +{{< img src="logs/explorer/facet/facets_in_explorer.mp4" alt="탐색기 패싯의 패싯" video=true style="width:100%;">}} -{{< img src="logs/explorer/facet/facets_in_explorer.mp4" alt="Explorer Facet의 패싯" video=true style="width:100%;">}} +## 개요 {#overview} -## 개요 - -패싯은 인덱스된 로그에서 가져온 사용자 정의 태그와 속성입니다. 패싯은 정량적 또는 정성적 데이터 분석에 사용됩니다. 이에 따라 다음의 경우에 Log Explorer에서 패싯을 사용할 수 있습니다. +패싯은 인덱싱된 로그의 사용자가 정의한 태그와 특성입니다. 패싯은 정성적 또는 정량적 데이터 분석에 사용됩니다. 따라서 Log Explorer에서 다음의 작업에 패싯을 사용할 수 있습니다. - [로그에서 검색][1] - [로그 패턴 정의][2] -- [로그 분석 실행][3] +- [로그 분석 수행][3] -또 패싯을 사용해 [대시보드][5]와 [노트북][6]의 [로그 모니터][4]와 로그 위젯에서 로그를 조절할 수 있습니다. +또 패싯을 사용해 [로그 모니터링][4] 및 [대시보드][5]와 [노트북][6]의 로그 위젯에서 로그를 조절할 수 있습니다. -**참고**: 로그, [아카이브][11] 포워딩, 또는 [리하이드레이션][12]의 [로그 프로세싱][7], [라이브테일 검색][8], [로그 탐색기 검색][9], [메트릭 생성][10]을 지원할 때는 패싯이 필요 없습니다. 또한 필터로 [파이프라인][13]과 [인덱스][14]를 통해 로그를 라우팅하거나 [예외 필터][15]로 인덱스에서 로그를 제외 또는 샘플링할 때도 패싯이 필요 없습니다. +**참고**: [로그 처리][7], [라이브테일 검색][8], [Log Explorer 검색][9], 로그에서의 [메트릭 생성][10], [아카이브][11] 전달 또는 [리하이드레이션][12]을 지원하는 데 패싯이 필요하지 않습니다. 필터를 사용하여 로그를 [Pipelines][13] 및 [Indexes][14]를 통해 라우팅하거나, [제외 필터][15]로 인덱스에서 로그를 제외하거나 샘플링할 때도 패싯이 필요 없습니다. 이와 같은 컨텍스트에서는 자동 완료 기능에서 기존 패싯을 사용하나, 수신 로그와 일치하는 입력이라면 무엇이든 사용할 수 있습니다. -### 정적 패싯 +### 정성적 패싯 {#qualitative-facets} -#### 규격 +#### 차원 {#dimensions} -다음 경우에 정성적 패싯을 사용하세요. +다음의 경우에 정성적 패싯을 사용하세요. -- 값의 **상대적 인사이트**를 얻고 싶을 때 사용할 수 있습니다. 예를 들어 [NGINX][6] 웹 액세스 로그에서 `http.network.client.geoip.country.iso_code`에 패싯을 만들어 5XX 오류 수 대비 가장 영향을 많이 받은 상위 국가를 볼 수 있습니다. 이때 Datadog [GeoIP Processor][17]가 사용됩니다. -- **고유 값**을 확인하고 싶을 때 사용할 수 있습니다. 예를 들어 [Kong][18] 로그에서 `user.email` 패싯을 생성해 하루에 몇 명이 웹사이트를 이용하는지 알 수 있습니다. -- 특정 값에 따라 로그를 자주 **필터링**하고 싶을 때 사용합니다. 예를 들어 `environment` [태그][19]에 패싯을 생성해 개발, 스테이징, 또는 프로덕션 환경까지 범위를 지정할 수 있습니다. +- 값에 대한 **상대적 인사이트를 확보**해야 할 때 사용합니다. 예를 들어 [NGINX][16] 웹 액세스 로그에서 `http.network.client.geoip.country.iso_code`에 패싯을 생성하여 5XX 오류 수 대비 가장 영향을 많이 받은 상위 국가를 볼 수 있습니다. 이때 Datadog [GeoIP Processor][17]로 보강합니다. +- **고유 값 개수를 계산**해야 할 때 사용합니다. 예를 들어 [Kong][18] 로그에서 `user.email` 패싯을 생성해 하루에 몇 명이 웹사이트를 이용하는지 알 수 있습니다. +- 특정 값에 따라 로그를 자주 **필터링**해야 할 때 사용합니다. 예를 들어 `environment` [태그][19]에 패싯을 생성해 개발, 스테이징, 또는 프로덕션 환경까지 문제 해결 범위를 지정할 수 있습니다. -**참고**: 속성 값을 필터링할 때 패싯을 반드시 사용해야 할 필요는 없지만 문제를 조사할 때 자주 사용하는 속성에 패싯을 정의해두면 문제 해결 시간을 줄이는 데 도움이 됩니다. +**참고**: 특성 값을 필터링할 때 패싯을 반드시 사용해야 할 필요는 없지만 문제를 조사할 때 자주 사용하는 특성에 패싯을 정의해두면 문제 해결 시간을 줄이는 데 도움이 됩니다. -#### 유형 +#### 유형 {#types} -정량적 패싯은 문자열이나 숫자(정수)가 있는 유형입니다. 문자열 유형을 차원에 할당하면 대부분의 경우 정상적으로 작동하지만 정수 유형을 차원에 사용하면 위에 언급한 모든 기능에 더해 범위 필터링이 가능합니다. 예를 들어 정수 유형 차원에 유효한 쿼리에는 `http.status_code:[200 TO 299]`가 있습니다. 참조를 보려면 [구문 검색][1]을 참고하세요. +정성적 패싯의 유형은 문자열 또는 숫자(정수)일 수 있습니다. 문자열 유형을 차원에 할당하면 대부분의 경우 정상적으로 작동하지만 정수 유형을 범위에 사용하면 위에 언급한 모든 기능에 더해 범위 필터링이 가능합니다. 예를 들어 정수 유형 차원에 사용하는 유효한 쿼리에는 `http.status_code:[200 TO 299]`가 있습니다. 참고 자료는 [구문 검색][1]을 확인하세요. -### 정량적 패싯 -#### 측정 +### 정량적 패싯 {#quantitative-facets} +#### 수치 {#measures} -다음이 필요할 때 수치를 사용하세요. +다음의 경우에 수치를 사용하세요. -- 여러 로그의 **집계 값**을 구할 때 사용합니다. 예를 들어 맵 서버의 [Varnish 캐시][20]를 이용하는 타일 크기 수치를 생성하고 일일 **평균** 처리량을 추적하거나 요청 타일 크기 **총합**별 상위 참조자를 볼 수 있습니다. -- 로그의 **범위를 지정해 필터링**할 때 사용합니다. 예를 들어 [Ansible][21] 작업 실행 시간의 수치를 생성하고 실행하는 데 10s 이상이 걸리는 서버 목록을 볼 수 있습니다. -- 특정 값의 **로그를 정렬**할 때 사용합니다. 예를 들어 [Python][22] 마이크로서비스로 실행한 결제량 수치를 생성할 수 있습니다. 그 후 수치가 가장 높은 것부터 로그를 모두 검색할 수 있습니다. +- 여러 로그의 **값을 집계**해야 할 때 사용합니다. 예를 들어 맵 서버의 [Varnish 캐시][20]를 이용하는 타일 크기 수치를 생성하고 일일 **평균** 처리량을 추적하거나 요청 타일 크기 **총합**별 상위 참조자를 볼 수 있습니다. +- 로그의 **필터링 범위를 지정**해야 할 때 사용합니다. 예를 들어 [Ansible][21] 작업 실행 시간의 수치를 생성하고 실행하는 데 10초 넘게 소요되는 서버 목록을 볼 수 있습니다. +- 특정 값의 **로그를 정렬**해야 할 때 사용합니다. 예를 들어 [Python][22] 마이크로서비스로 실행한 결제량 수치를 생성할 수 있습니다. 그런 다음 가장 높은 금액의 로그부터 모든 로그를 검색하는 것이 가능합니다. -#### 유형 +#### 유형 {#types-1} -동등한 기능에 (큰) 정수나 소수점 값이 오는 수치 +수치에는 (long) integer 또는 double 값이 사용되며, 두 형식은 동등한 기능을 제공합니다. -#### 유닛 +#### 단위 {#units} -쿼리 시간과 디스플레이 시간의 순서대로 처리하기 쉽도록 **시간**이나 **크기** 단위를 지원하는 수치 +수치는 쿼리 시간 및 표시 시간에서 자릿수를 처리하기 위한 **시간** 또는 **크기** 단위를 지원합니다. | 유형 | 단위 | |-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 바이트 | 비트/바이트/KiB/MiB/GiB/TiB/250바이트/260바이트 | -| 시간 | 나노초/마이크로초/밀리초/초/분/시/일/주 | +| BYTES | 비트/바이트/키비바이트/메비바이트/기비바이트/테비바이트/페비바이트/엑스비바이트 | +| TIME | 나노초/마이크로초/밀리초/초/분/시/일/주 | -단위는 필드 속성이 아니라 수치 속성입니다. 예를 들어 나노초 `duration` 수치의 경우 `service:A`에 있는 로그 `duration:1000`은 1000 밀리초를 뜻합니다. `service:B`에 있는 로그 `duration:500`은 500 마이크로초를 뜻합니다. +단위는 필드가 아닌 수치 자체의 속성입니다. 예를 들어, 나노초 단위의 `duration`측정을 고려해 보겠습니다. `service:A`에 로그가 있을 때 여기서 `duration:1000`은 1000밀리초를 나타내며 `service:B`에 다른 로그가 있을 때 여기서 `duration:500`은 500마이크로초를 나타냅니다. -1. [산술 프로세서][23]로 들어오는 로그 전체에 나노초 단위로 시간을 조정할 수 있습니다. `service:A` 로그에 `*1000000` 승수를 사용하고 `service:B` 로그에는 `*1000` 승수를 사용합니다. -2. `duration:>20ms`([검색 구문[1] 참조)를 사용해 지속적으로 두 개 서비스에서 동시에 로그를 쿼리하고 최대 `1 min`의 집계 결과를 확인하세요. +1. [산술 프로세서][23]를 사용하여 모든 로그의 지속 시간을 나노초로 변환합니다. `*1000000` 배수를 `service:A`의 로그에 적용하고, `*1000` 배수를 `service:B`의 로그에 적용하세요. +2. `duration:>20ms`([검색 구문][1] 참조)를 사용하여 두 서비스의 스팬 태그를 일관되게 쿼리하고 최대 `1 min`의 집계 결과를 확인합니다. -## 패싯 패널 +## 패싯 패널 {#facet-panel} -데이터를 필터링하고 그룹화할 때 검색 바가 가장 종합적인 상호 작용 기능을 많이 제공합니다. 그러나 대부분의 경우 패싯 패널을 사용해 데이터를 조사하는 것이 간편합니다. 패싯을 열어 컨텐츠 요약을 살펴보고 현재 쿼리의 범위를 알아볼 수 있습니다. +검색창은 데이터를 필터링하고 그룹화하기 위한 가장 포괄적인 상호 작용 세트를 제공합니다. 그러나 대부분의 경우 패싯 패널을 통해 데이터를 간단하게 탐색할 수 있습니다. 현재 쿼리 범위에 대한 내용 요약을 확인하려면 패싯을 여세요. -**패싯(정성적)**은 고유한 상위 값 및 각 값과 일치하는 로그 개수와 함께 표시됩니다. +**패싯(정성적)**에는 고유한 값의 상위 목록과 각 값과 일치하는 로그 개수가 함께 제공됩니다. {{< img src="logs/explorer/facet/dimension_facet.png" alt="차원 패싯" style="width:30%;">}} -두 값 중 하나를 클릭해 검색 쿼리 범위를 조정합니다. 값을 클릭해 해당 고유 값과 전체 값 검색 결과를 토글할 수 있습니다. 체크 상자를 클릭해 해당 값을 전체 값 목록에서 추가 및 삭제할 수 있고 내용을 검색할 수도 있습니다. +하나의 값을 클릭해 검색 쿼리 범위를 조정하세요. 값을 클릭하여 해당 고유 값과 전체 값 검색 결과를 토글할 수 있습니다. 확인란을 클릭해 특정 값을 전체 값 목록에서 추가하거나 삭제할 수 있고 내용을 검색할 수도 있습니다. -{{< img src="logs/explorer/facet/dimension_facet_wildcard.png" alt="패싯 자동 완료" style="width:30%;">}} +{{< img src="logs/explorer/facet/dimension_facet_wildcard.png" alt="패싯 자동 완성" style="width:30%;">}} -**수치**는 최솟값과 최댓값이 있는 슬라이더와 함께 표시됩니다. 슬라이더를 사용하거나 숫자 값을 입력해 검색 쿼리의 범위 경계를 다르게 조정할 수 있습니다. +**수치**는 최소값 및 최대값을 나타내는 슬라이더와 함께 제공됩니다. 슬라이더를 사용하거나 숫자 값을 입력하여 검색 쿼리의 범위를 다르게 조정할 수 있습니다. {{< img src="logs/explorer/facet/measure_facet.png" alt="수치 패싯" style="width:30%;">}} -### 패싯 숨기기 +### 패싯 숨기기 {#hide-facets} -조직에는 다양한 팀의 여러 사용 사례에 맞게 대처하도록 수집하는 패싯 종류가 매우 많습니다. 그러나 보통 특정 트러블슈팅 컨텍스트에서는 이 패싯의 하위 세트만이 유용하게 사용됩니다. 트러블슈팅 세션에서 일상에서 사용하지 않는 패싯을 숨기고 필요한 패싯만 표시하세요. -1. [로그 탐색기][30]에서 숨기려는 패싯을 찾습니다. +조직에는 다양한 팀의 여러 사용 사례에 맞게 처리하기 위해 수집하는 패싯 종류가 매우 많습니다. 그러나 보통 특정 문제 해결 상황에서는 이 패싯의 하위 집합만 유용하게 사용됩니다. 문제 해결 세션에서 평상시에 사용하지 않는 패싯을 숨기고 필요한 패싯만 표시하세요. +1. [Log Explorer][30]에서 숨기려는 패싯을 찾습니다. 1. 패싯 옆에 있는 톱니 아이콘을 클릭합니다. -1. **패싯 숨기기**를 선택합니다. +1. {{< ui >}}Hide Facet{{< /ui >}}을 선택합니다. -패싯을 숨겨도 필요할 경우에 대비해 패싯 검색 결과에는 표시됩니다([패싯 필터링](#filter-facets) 섹션 참고). 여기에서 패싯 숨기기를 해제할 수 있습니다. +필요한 경우 숨겨진 패싯이 패싯 검색에 계속 표시됩니다([패싯 필터링](#filter-facets) 섹션 참조). 패싯 검색에서 숨겨진 패싯을 숨김 해제하세요. -숨긴 패싯은 검색 바 자동 완료와 Log Explorer의 분석 결과 드롭다운(예: 수치, 그룹별)에서도 숨겨진 상태로 나타납니다. 그러나 검색 쿼리에서는 패싯을 숨겨도 유효한 상태로 나타납니다(예: 로그 탐색기 링크를 복사-붙여넣기 한 경우). +숨긴 패싯은 검색창 자동 완성과 Log Explorer의 분석 결과 드롭다운(예: 수치, 그룹별)에서도 숨겨집니다. 그러나 검색 쿼리에서는 패싯을 숨겨도 유효한 상태로 표시됩니다(예: 로그 탐색기 링크를 복사 후 붙여넣기한 경우). -숨긴 패싯은 로그 탐색기(예: 대시보드의 라이브테일, 모니터 또는 위젯 정의) 외에 미치는 영향이 없습니다. +숨긴 패싯은 Log Explorer(예: 대시보드의 라이브테일, 모니터링 또는 위젯 정의) 외에 미치는 영향이 없습니다. -#### 숨겨진 패싯 및 팀 구성원 +#### 숨겨진 패싯 및 팀원 {#hidden-facets-and-teammates} -패싯 숨기기 기능은 내 트러블슈팅 컨텍스트에 맞게 사용해야 하고 팀원의 보기에는 아무런 영향을 미치지 않습니다. 단, [저장된 보기][24]를 업데이트한 경우에는 다릅니다. 숨긴 패싯은 저장된 보기에 저장된 컨텍스트의 일부가 됩니다. +패싯을 숨기는 것은 자체 문제 해결 상황에만 적용되며, [저장된 뷰][24]를 업데이트하는 경우를 제외하고는 팀원의 뷰에는 아무런 영향을 미치지 않습니다. 이 경우, 숨긴 패싯은 저장된 뷰에 저장된 컨텍스트의 일부가 됩니다. -### 패싯 그룹화 +### 패싯 그룹화 {#group-facets} -탐색하기 쉽게 패싯 목록에는 패싯이 의미 있는 테마별로 그룹화되어 있습니다. 패싯에 그룹을 할당 및 재할당하는 것은 패싯 목록 디스플레이에만 영향을 주고 검색과 분석 기능에는 아무런 영향을 주지 않습니다. +패싯을 쉽게 탐색할 수 있도록 패싯 목록에 의미 있는 주제로 그룹화되어 있습니다. 패싯 그룹을 할당 및 재할당할 경우, 패싯 목록 디스플레이에만 영향을 미치며 검색 및 분석 기능에는 아무런 영향을 주지 않습니다. {{< img src="logs/explorer/facet/group_facets.png" alt="패싯 그룹화" style="width:30%;">}} -패싯을 그룹화하는 하는 방법: +패싯을 그룹화하려면 다음 단계를 따르세요. 1. 패싯의 톱니바퀴 아이콘을 클릭합니다. -2. **Edit facet**을 선택하세요. -3. **Advanced options** 섹션을 클릭해 확장하세요. -4. **Group** 필드에 패싯을 넣고 싶은 그룹 이름을 입력하세요. -5. **Update**를 클릭합니다. +2. {{< ui >}}Edit facet{{< /ui >}}을 선택합니다. +3. {{< ui >}}Advanced options{{< /ui >}} 섹션을 클릭하여 확장합니다. +4. {{< ui >}}Group{{< /ui >}} 필드에 해당 패싯이 속하도록 지정할 그룹 이름을 입력합니다. +5. {{< ui >}}Update{{< /ui >}}를 클릭합니다. -### 패싯 필터링 +### 패싯 필터링 {#filter-facets} -패싯의 검색 상자를 사용해 전체 패싯 목록에서 범위를 조정하여 소통하고 싶은 패싯으로 빨리 이동할 수 있습니다. 패싯 검색에는 패싯 표시 이름과 패싯 필드 이름울 사용해 검색 결과를 조정할 수 있습니다. +패싯의 검색 상자를 사용해 전체 패싯 목록에서 범위를 좁혀 상호작용해야 하는 패싯으로 더 신속하게 이동할 수 있습니다. 패싯 검색 시 패싯 표시 이름과 패싯 필드 이름을 사용해 검색 결과를 조정할 수 있습니다. {{< img src="logs/explorer/facet/search_facet.png" alt="패싯 검색" style="width:30%;">}} -### 앨리어싱된 패싯 +### 별칭이 지정된 패싯 {#aliased-facets} -일부 패싯에는 앨리어싱이 되어 있을 수 있습니다([패싯 앨리어싱](#alias-facets) 섹션 참고). 앨리어싱된 패싯은 데이터 세분화 및 분석에 계속 사용할 수 있으나 조직에서 사용하지 않는 패싯으로 분류된 것입니다. +일부 패싯에는 별칭이 지정되었을 수 있습니다([패싯 별칭 지정](#alias-facets) 섹션 참조). 별칭이 지정된 패싯은 여전히 슬라이싱 및 다이싱에 사용할 수 있지만, 조직에서 더 이상 사용하지 않는 것으로 간주됩니다. -{{< img src="logs/explorer/facet/aliased_facet.png" alt="앨리어싱된 패싯" style="width:30%;">}} +{{< img src="logs/explorer/facet/aliased_facet.png" alt="별칭이 지정된 패싯" style="width:30%;">}} -트러블슈팅을 할 때 _표준_ 패싯보다 _앨리어싱된_ 패싯에서 (우리 팀의 컨텐츠와 함께) 다른 팀 컨텐츠를 찾을 확률이 높습니다. 이 때문에 다양한 소스의 컨텐츠에서 상관 관계를 더 쉽게 찾을 수 있습니다. +문제 해결 시 다른 팀의 내용이 _별칭이 지정된_ 패싯보다 _표준_ 패싯에서 (귀하 팀의 내용과 함께) 표시될 가능성이 더 큽니다. 이를 통해 다양한 출처 내 내용 간의 상관관계를 더욱 쉽게 파악할 수 있습니다. -패싯 목록에서 앨리어싱된 패싯이 보인다면 **switch to alias** 메뉴 항목을 클릭해 _표준_ 패싯을 사용하는 것이 좋습니다. 그러면 앨리어싱된 패싯을 숨기고 표준 패싯의 숨김을 해제합니다. 이때 저장된 보기를 업데이트해야 한다면 저장된 보기를 저장해 헤당 보기를 사용하는 사용자 모두에게 앨리어싱이 적용되도록 하세요. +패싯 목록에서 별칭이 지정된 패싯이 표시되면 {{< ui >}}switch to alias{{< /ui >}} 메뉴 항목을 클릭해 _표준_ 패싯을 대신 사용해 보세요. 이 작업은 별칭이 지정된 패싯을 숨기고 표준 패싯의 숨김을 해제합니다. 이때 저장된 뷰를 업데이트해야 하는 경우, 저장된 뷰를 저장해 해당 뷰를 사용하는 사용자 모두에게 별칭이 적용되도록 하세요. {{< img src="logs/explorer/facet/switch_facet.png" alt="패싯 전환" style="width:30%;">}} -예전 컨텐츠(조직에서 해당 패싯 앨리어싱을 설정하기 이전)를 트러블슈팅하는 경우 _앨리어싱된_ 비표준 패싯 버전을 저장해야 할 수도 있습니다. +예전 내용(조직에서 해당 패싯의 별칭을 설정하기 이전)에 대한 문제 해결을 수행하는 경우 _별칭이 지정된_ 비표준 패싯 버전을 저장해야 할 수도 있습니다. -## 패싯 관리 +## 패싯 관리 {#manage-facets} -### 기본 제공 패싯 +### 기본 제공 패싯 {#out-of-the-box-facets} -가장 일반적으로 사용하는 패싯인 `Host`와 `Service`는 기본적으로 제공되기 때문에 로그 인덱스에 로그가 전송되면 즉시 트러블슈팅에 사용할 수 있습니다. +가장 일반적으로 사용하는 패싯인 `Host`와 `Service`는 기본적으로 제공되기 때문에 로그 인덱스에 로그가 전송되면 즉시 문제 해결에 사용할 수 있습니다. -[Reserved Attributes][25]와 [Standard Attributes][26] 패싯 대부분은 기본적으로 사용할 수 있습니다. +[예약된 특성][25]과 대부분의 [표준 특성][26] 패싯은 기본적으로 사용할 수 있습니다. -### 패싯 인덱싱 +### 인덱스 패싯 {#index-facet} -인덱스 패싯은 조직에 [여러 인덱스][27]가 있을 때 및/또는 활성 [기록 보기][28]가 있을 때만 나타나는 구체적인 패싯입니다. 쿼리를 인덱스의 하위 세트로 범위를 좁히고 싶을 때 이 패싯을 사용하세요. +인덱스 패싯은 조직에 [여러 인덱스][27]가 있거나, 활성화된 [내역 뷰][28]가 있는 경우에만 표시되는 특정 패싯입니다. 쿼리를 인덱스의 하위 집합으로 범위를 좁히고 싶다면 이 패싯을 사용하세요. {{< img src="logs/explorer/facet/index_facet_.png" alt="패싯 생성" style="width:30%;">}} -### 패싯 생성 +### 패싯 생성 {#create-facets} -모범 사례로 운영하려면 새 패싯을 생성하기보다 기존 패싯 사용을 먼저 고려하세요([패싯 앨리어싱](#alias-facets) 참고). 비슷한 정보를 얻을 때 고유한 패싯을 사용하면 팀 간의 협력을 증진할 수 있습니다. +모범 사례로 운영하려면 언제나 새 패싯을 생성하기보다 기존 패싯 사용을 먼저 고려하세요([별칭이 지정된 패싯](#alias-facets) 섹션 참고). 비슷한 정보를 얻을 때 고유한 패싯을 사용하면 팀 간의 협력을 증진할 수 있습니다. -JSON 개체 어레이에서 패싯을 생성하려면 먼저 [grok 파서][29]를 사용해 속성을 추출하고 해당 속성의 패싯을 생성하세요. +JSON 개체 어레이에서 패싯을 생성하려면 먼저 [grok 구문 분석 도구][29]를 사용해 특성을 추출하고 해당 특성의 패싯을 생성하세요. -**참고**: 패싯을 생성하면 **새 로그 전체**에 컨텐츠가 자동으로 채워집니다. Datadog에서는 로그 관리 솔루션을 최적으로 사용하기 위해 최대 1000 패싯까지 사용하기를 권장합니다. +**참고**: 패싯이 생성되면 **새 로그 전체**에 해당 내용이 채워집니다. Log Management 솔루션을 최적으로 사용할 수 있도록 Datadog은 최대 1,000개의 패싯 사용을 권장합니다. -#### 로그 측면 패널 +#### 로그 사이드 패널 {#log-side-panel} -패싯을 가장 손쉽게 생성하는 방법은 로그 측면 패널에서 추가하는 것입니다. 이 패널에는 필드 이름이나 데이터 근본 유형과 같은 패싯 상세 정보가 미리 채워져 있어 확인만 하면 됩니다. [Log Explorer][1]에서 패싯을 생성할 필드가 있는 관심 로그로 이동하세요. 해당 로그의 측면 패널을 열고 해당 필드를 클릭(태그나 속성 중 하나)한 후 패싯을 생성하세요. +패싯을 생성하는 가장 간단한 방법은 로그 사이드 패널에서 해당 패싯을 추가하는 것입니다. 여기에는 필드 이름이나 데이터의 기본 유형 등 대부분의 패싯 세부 정보가 미리 채워져 있어 확인만 하면 됩니다. [Log Explorer][1]에서 패싯을 생성할 필드가 있는 관심 로그로 이동하세요. 이동한 로그의 사이드 패널을 열고 해당 필드(태그나 특성 중 하나)를 클릭한 후 패싯을 생성하세요. -- 필드에 문자열 값이 있는 경우 패싯 생성만 사용할 수 있습니다. -- 필드에 숫자 값이 있는 경우 패싯과 수치 생성이 모두 가능합니다. +- 필드의 값이 문자열인 경우에는 패싯 생성만 가능합니다. +- 필드의 값이 숫자인 경우에는 패싯 및 수치 생성이 모두 가능합니다. -{{< img src="logs/explorer/facet/create_facet_from_attribute.png" alt="속성에서 패싯 생성" style="width:30%;">}} +{{< img src="logs/explorer/facet/create_facet_from_attribute.png" alt="특성으로 패싯 생성" style="width:30%;">}} -**참고**: 모범 사례로 사용하려면 패싯을 1000개 이하로 사용하는 것을 권고합니다. +**참고**: 패싯을 1,000개 이하로 사용하는 것이 모범 사례로 권장됩니다. -#### 패싯 목록 +#### 패싯 목록 {#facet-list} -일치하는 로그를 찾을 수 없는 경우에는 _패싯 추가_ 버튼을 사용해 패싯 패널에서 바로 새 패싯을 생성할 수 있습니다. +일치하는 로그를 찾을 수 없는 경우, _패싯 추가_ 버튼을 사용하여 패싯 패널에서 바로 새 패싯을 생성하세요. -이 패싯의 기본 필드(키) 이름을 정의하세요. +이 패싯의 기본 필드(키) 이름을 다음과 같이 정의합니다. -- 태그의 태그 키 이름을 사용하세요. -- `@` 접두사를 사용해 속성 경로를 사용하세요. +- 태그에는 태그 키 이름을 사용합니다. +- 특성의 경우, `@` 접두사를 포함한 특성 경로를 사용합니다. -현재 보기의 로그 컨텐츠를 기반으로 자동 완성 기능을 사용하면 적절한 필드 이름으로 정의하도록 도와줍니다. 그러나 인덱스에 일치하는 로그가 들어오지 않는 경우 여기에는 어떤 값이든 사용할 수 있습니다. +현재 뷰 내 로그의 내용에 기반한 자동 완성은 적절한 필드 이름을 정의하는 데 도움을 줍니다. 다만, 인덱스에 일치하는 로그가 아직 유입되지 않은 경우에는 사실상 어떤 값이든 사용할 수 있습니다. -{{< img src="logs/explorer/facet/create_facet_from_scratch.png" alt="처음부터 패싯 생성하기" style="width:30%;">}} +{{< img src="logs/explorer/facet/create_facet_from_scratch.png" alt="처음부터 패싯 생성" style="width:30%;">}} -### 패싯 앨리어싱 +### 별칭이 지정된 패싯 {#alias-facets} -고유한 패싯 하나에 유사한 컨텐츠를 모으면 팀 간 분석과 트러블슈팅이 가능합니다. [이름 정의 규칙][26]을 참고하세요. +고유한 패싯에 유사한 내용을 모으면 팀 간 분석과 문제 해결이 가능합니다. [명명 규칙][26]을 참고하세요. -이름 정의 규칙이 일정하지 않은 팀 간에 부드럽게 일관성을 도입하려면 앨리어싱 옵션을 사용하는 것이 좋습니다. 앨리어싱을 사용하면 팀이 조직에 표시되는 표준 패싯을 사용하도록 할 수 있습니다. +별칭 기능을 옵션으로 사용하면 명명 규칙이 일관되지 않은 팀 간에 원활하게 일관성을 도입할 수 있습니다. 별칭 기능을 사용하면 팀원들이 조직에서 생성하는 표준 패싯을 모두 사용할 수 있습니다. -#### 패싯을 다른 패싯에 앨리어싱 +#### 다른 패싯에 별칭 지정 {#aliasing-facet-to-facet} -조직 내 여러 팀이 이미 유사한 컨텐츠에 여러 패싯을 생성한 경우에 이 방법을 사용하는 것이 좋습니다. +조직 내 여러 팀이 이미 유사한 내용에 여러 개의 패싯을 생성한 경우에 이 방법을 사용하는 것이 좋습니다. -_앨리어싱된_ 패싯을 _표준_ 패싯에 앨리어싱하는 경우: +_별칭이 지정된_ 패싯을 _표준_ 패싯으로 별칭을 지정하는 경우 -- 사용자는 트러블슈팅할 때 앨리어싱된 패싯과 표준 패싯 중에 하나를 선택해서 사용할 수 있습니다. 다양하고 다차원적인 소스에서 유입되는 컨텐츠의 상관 관계를 쉽게 수립하려면 표준 패싯을 이용하는 것이 좋습니다. -- 앨리어싱된 패싯에 표준 패싯을 사용하도록 권고 메시지가 나타납니다. +- 사용자는 문제 해결을 위해 별칭이 지정된 패싯과 표준 패싯 중 하나를 사용할 수 있습니다. 다양하고 다차원적인 소스에서 유입되는 내용의 상관 관계를 쉽게 수립하려면 표준 패싯을 이용하는 것이 좋습니다. +- 별칭이 지정된 패싯 대신 표준 패싯을 사용하도록 권장하는 메시지가 사용자에게 표시됩니다. -표준 패싯에 다른 패싯을 앨리어싱하려면 패싯 메뉴에서 `Alias to...` 작업 항목을 선택하세요. 조직 내 기존 [표준][14] 패싯 전체 목록 중에서 대상 패싯을 선택하세요. +표준 패싯으로 패싯에 별칭을 지정하려면 패싯 메뉴에서 {{< ui >}}Alias to...{{< /ui >}} 작업 항목을 선택하세요. 조직 내 기존 [표준][14] 패싯 전체 목록 중에서 대상 패싯을 선택하세요. -{{< img src="logs/explorer/facet/alias_modal.png" alt="앨리어스 모달" style="width:30%;">}} +{{< img src="logs/explorer/facet/alias_modal.png" alt="별칭 모달" style="width:30%;">}} -#### 속성을 패싯에 앨리어싱 +#### 특성으로 패싯에 별칭 지정 {#aliasing-attribute-to-facet} -새 소스에서 로그를 온보딩할 경우에 사용하기 가장 적합한 옵션입니다. 해당 로그의 필드에 패싯을 생성해서 표준 패싯에 앨리어싱하면 패싯이 곧 사용되지 않을 수 있습니다. 대신, 필드를 기존 패싯에 바로 앨리어싱할 수 있습니다. +새 소스에서 유입되는 로그를 온보딩할 경우에 가장 적합한 방법입니다. 해당 로그의 일부 필드에 패싯을 생성하고 표준 패싯으로 별칭을 지정하여 패싯에 대한 지원이 바로 중단되도록 하는 대신, 기존 패싯으로 필드의 별칭을 바로 지정할 수 있습니다. -{{< img src="logs/explorer/facet/alias_facet_from_attribute.png" alt="속성에서 패싯 앨리어싱" style="width:30%;">}} +{{< img src="logs/explorer/facet/alias_facet_from_attribute.png" alt="특성으로 패싯 별칭 지정" style="width:30%;">}} -## 패싯 삭제 +## 패싯 삭제 {#delete-a-facet} -
    인덱스, 모니터, 대시보드, 제한 쿼리, 또는 다른 팀에서 사용하는 패싯을 삭제하면 구성에 오류가 발생할 수 있습니다.
    +
    인덱스, 모니터링, 대시보드, 제한 쿼리 또는 다른 팀에서 사용 중인 패싯을 삭제하면 구성에 오류가 발생할 수 있습니다.
    -패싯을 삭제하려면 다음 단계를 따르세요 +패싯을 삭제하려면 다음 단계를 따르세요. -- 패싯 패널 상단에 있는 **Showing xx of xx"을 클릭하세요. -- 패싯을 검색하세요. -- 패싯의 연필 아이콘을 클릭하세요. -- **삭제**를 클릭하세요. +- 패싯 패널 상단에서 {{< ui >}}Showing xx of xx{{< /ui >}}를 클릭합니다. +- 패싯을 검색합니다. +- 패싯의 연필 아이콘을 클릭합니다. +- {{< ui >}}Delete{{< /ui >}}를 클릭합니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -250,13 +252,13 @@ _앨리어싱된_ 패싯을 _표준_ 패싯에 앨리어싱하는 경우: [14]: /ko/logs/indexes/#indexes-filters [15]: /ko/logs/indexes/#exclusion-filters [16]: /ko/integrations/nginx/ -[17]: /ko/logs/log_configuration/processors/#geoip-parser +[17]: /ko/logs/log_configuration/processors/geoip_parser/ [18]: /ko/integrations/kong/ [19]: /ko/getting_started/tagging/assigning_tags/ [20]: /ko/integrations/varnish/ [21]: /ko/integrations/ansible/ [22]: /ko/integrations/python/ -[23]: /ko/logs/log_configuration/processors/#arithmetic-processor +[23]: /ko/logs/log_configuration/processors/arithmetic_processor/ [24]: /ko/logs/explorer/saved_views/ [25]: /ko/logs/log_configuration/attributes_naming_convention/#reserved-attributes [26]: /ko/logs/log_configuration/attributes_naming_convention diff --git a/content/ko/logs/guide/azure-automated-log-forwarding.md b/content/ko/logs/guide/azure-automated-log-forwarding.md new file mode 100644 index 00000000000..c332e76ccf7 --- /dev/null +++ b/content/ko/logs/guide/azure-automated-log-forwarding.md @@ -0,0 +1,217 @@ +--- +aliases: +- /ko/logs/guide/azure-logging-guide/ +- /ko/logs/guide/azure-automated-logs-architecture/ +further_reading: +- link: https://www.datadoghq.com/blog/monitoring-azure-platform-logs/ + tag: 블로그 + text: Microsoft Azure 플랫폼 로그 모니터링 모범 사례 +title: Azure 자동 로그 포워딩 설정 +--- +## 개요 {#overview} + +이 가이드를 사용하여 Azure 자동 로그 포워딩을 설정하고 관리하세요. Datadog에서 바로 로그 포워딩을 구성하거나 Azure Resource Manager(ARM) 템플릿을 사용하여 배포할 수 있습니다. + +ARM 템플릿은 Azure 서비스(스토리지 계정 및 함수 앱)에 있는 일련의 리소스를 사용자의 구독에 배포하여 로그를 수집하고 Datadog으로 전달합니다. 이러한 서비스는 로그 볼륨에 맞춰 자동으로 확장 또는 축소됩니다. 확장은 선택한 구독 및 리전에 배포된 함수 앱 세트인 컨트롤 플레인에 의해 관리됩니다. 스토리지 계정과 함수 앱은 Datadog으로 로그를 포워딩하는 각 구독에 배포됩니다. + +**모든 사이트**: 자동 로그 포워딩은 모든 [Datadog 사이트][4]에서 사용할 수 있습니다. + +**지원되는 Azure 환경**: 자동 로그 포워딩은 Azure 상용(공공) 클라우드에서만 지원됩니다. Azure Government 및 Azure China는 지원되지 않습니다. 정부 기관용 Datadog 사이트를 사용하는 경우, Azure 상용 클라우드의 워크로드와 함께 이 기능을 사용할 수 있습니다. + +## 자동 설정과 수동 설정 중에서 선택하는 방법 {#how-to-choose-between-automated-and-manual-setup} + +원하는 작업이 다음에 해당하는 경우, 수동 설정 방법을 선택하세요. + - 리소스에 사용자 지정 태그 적용 + +원하는 작업이 다음에 해당하는 경우, 자동 설정 방법을 사용하세요. + - Azure 포털을 통한 배포 자동화 + - 선언형 템플릿을 통한 인프라스트럭처 관리 + - 중앙에서 접근, 태그 및 청구 관리 + - 리소스를 올바른 순서로 일관되게 재배포 + - 이벤트 허브 대신 스토리지 계정을 사용하여 비용 절감 + +## 설정 {#setup} + +### 로그 포워딩 구성 {#configure-log-forwarding} + +**로그 포워딩 구성** 흐름을 사용하여 Datadog에서 바로 새 로그 포워더를 설정하거나 기존 로그 포워더를 관리하세요. 이 흐름을 사용하여 자동 로그 포워딩을 처음부터 배포하거나, 구독을 추가 또는 제거하거나 로그 필터를 수정하는 등 기존 설정을 업데이트할 수 있습니다. + +1. Datadog에서 [{{< ui >}}Integrations > Azure{{< /ui >}}][16]로 이동합니다. +1. {{< ui >}}Configure Log Forwarding{{< /ui >}}을 클릭합니다. +1. 새 설정을 배포할지, 기존 설정을 업데이트할지 선택합니다. +1. 제공된 명령을 복사하여 Azure Cloud Shell에 붙여넣습니다. +1. 로그를 포워딩할 구독을 선택합니다. +1. 필요 시, 로그 필터를 추가하거나 제거합니다. +1. {{< ui >}}Confirm{{< /ui >}}을 클릭합니다. + +### ARM 템플릿 {#arm-template} + +또는 [Azure Public ARM 템플릿][1]을 사용하여 자동 로그 포워딩을 배포할 수도 있습니다. 아래 섹션에는 템플릿의 각 페이지를 완료하기 위한 지침이 나와 있습니다. + +#### 기본 {#basics} + +1. {{< ui >}}Project details{{< /ui >}} 아래에서 관리 그룹을 선택합니다. 이 그룹은 ARM 템플릿이 자동 로그 포워딩을 위해 선택한 구독에 권한을 부여하는 데 필요합니다. +2. {{< ui >}}Instance details{{< /ui >}} 아래에서 다음 값을 선택합니다. + - {{< ui >}}Region{{< /ui >}}. 컨트롤 플레인이 배포되는 곳입니다. + - {{< ui >}}Subscriptions to Forward Logs{{< /ui >}}. 로그 포워딩을 위해 구성될 예정인 구독입니다. + - {{< ui >}}Control Plane Subscription{{< /ui >}}. 컨트롤 플레인이 배포된 구독입니다. + - {{< ui >}}Resource Group Name{{< /ui >}}. 컨트롤 플레인에서 사용할 리소스 그룹입니다. 컨트롤 플레인 서비스 관리를 간소화하기 위해 사용되지 않은 새 리소스 그룹 이름을 선택하는 것이 좋습니다. + +{{< img src="logs/guide/azure-automated-log-forwarding/deployment_basics.png" alt="Azure 자동 로그 포워딩을 위한 ARM 템플릿의 기본 페이지" popup="true" style="width:100%">}} + +3. {{< ui >}}Next{{< /ui >}}를 클릭합니다. + +#### Datadog 구성 {#datadog-configuration} + +1. [Datadog API 키][2] 값을 입력합니다. +2. [Datadog 사이트][4]를 선택합니다. + +{{< img src="logs/guide/azure-automated-log-forwarding/deployment_datadog_configuration_2025-02-18.png" alt="Azure 자동 로그 포워딩을 위한 ARM 템플릿의 Datadog 구성 페이지" popup="true" style="width:100%">}} + +3. {{< ui >}}Next{{< /ui >}}를 클릭합니다. + +#### 배포 {#deployment} + +1. 확인란을 클릭해 배포 경고를 확인합니다. +2. {{< ui >}}Review + create{{< /ui >}}를 클릭합니다. + +#### 검토 + 생성 {#review-create} + +1. 최종 배포 세부 정보를 검토합니다. +2. {{< ui >}}Create{{< /ui >}}를 클릭합니다. + +## 리소스 태그 필터링 {#resource-tag-filtering} + +태그 필터를 사용하여 Datadog으로 로그를 포워딩할 Azure 리소스를 관리할 수 있습니다. 태그 필터 구문, 와일드카드 지원, 예시는 Azure 시작 가이드의 [리소스 태그 필터링][21]을 참조하세요. + +## Log Analytics Workspaces {#log-analytics-workspaces} + +자동 로그 포워더를 통해 Azure Log Analytics Workspaces(LAW)에서 Datadog으로 로그를 포워딩할 수 있습니다. 이전에는 Datadog이 LAW의 [진단 설정][13] 로그만 지원했습니다. [데이터 내보내기 규칙][17]을 사용하면 LAW 로그 테이블에서 Datadog으로 로그를 포워딩할 수 있습니다. + +### 제한 사항 {#restrictions} + +- 로그 포워더와 동일한 리전 내의 LAW 리소스에 대해서만 포워딩을 설정할 수 있습니다. +- LAW의 경우 최대 10개의 데이터 내보내기 규칙만 설정할 수 있습니다. LAW에 데이터 내보내기 규칙을 위한 남은 용량이 없다면 기존 규칙을 삭제하여 공간을 확보하세요. +- 일부 로그 테이블은 내보내기하지 못합니다. Microsoft의 [지원되지 않는 테이블][18] 목록을 참조하세요. + +### Log Analytics Workspace에서 로그 포워딩 {#forward-logs-from-a-log-analytics-workspace} + +1. 자동 로그 포워더를 아직 생성하지 않았다면 [설정](#setup) 지침을 따릅니다. 이미 로그 포워더가 있는 경우, 최신 버전으로 업데이트되었는지 확인하세요. +2. [Azure 포털][19]에서 원하는 Log Analytics Workspace로 이동합니다. +3. {{< ui >}}Settings{{< /ui >}} 아래에서 {{< ui >}}Data export{{< /ui >}}를 클릭합니다. +4. {{< ui >}}New export rule{{< /ui >}}을 클릭합니다. +5. 규칙의 이름을 지정하고, {{< ui >}}Enable upon creation{{< /ui >}}을 선택한 후 {{< ui >}}Next{{< /ui >}}를 클릭합니다. +6. 내보낼 테이블을 선택합니다. 데이터 내보내기 규칙을 편집하여 이 선택 사항을 나중에 수정할 수 있습니다. {{< ui >}}Next{{< /ui >}}를 클릭합니다. +7. {{< ui >}}Destination type{{< /ui >}}에 대해 {{< ui >}}Storage Account{{< /ui >}}를 선택합니다. 로그 포워더가 포함된 구독을 선택하고, 로그 포워더 스토리지 계정을 선택하세요. 이 계정은 일반적으로 `ddlogstorage` 접두사가 있습니다. {{< ui >}}Next{{< /ui >}}를 클릭합니다. +8. 규칙을 검토하고 {{< ui >}}Create{{< /ui >}}를 클릭합니다. LAW의 로그는 몇 분 이내에 Datadog에 표시됩니다. + +### 문제 해결 {#troubleshooting} + +#### 로그가 Datadog에 나타나지 않을 경우 {#logs-are-not-appearing-in-datadog} + +데이터 내보내기 규칙을 생성했지만 Datadog에서 로그가 보이지 않는 경우 다음 단계를 따르세요. + +1. 데이터 내보내기 규칙이 활성화되어 있는지 확인합니다. +1. 대상 스토리지 계정이 자동 로그 포워더에 의해 생성된 것인지 확인합니다(일반적으로 이름이 `ddlogstorage`로 시작). +1. 스토리지 계정에서 컨테이너를 검사합니다. 접두사가 `am-`인 컨테이너는 LAW 내보내기를 나타냅니다. 접두사가 `insights-`인 컨테이너만 보이는 경우, 데이터 내보내기 규칙이 잘못 구성되었을 수 있습니다. +1. LAW가 지난 2시간 이내에 새로운 로그를 수집했는지 확인합니다. + +추가 정보는 Microsoft의 [데이터 내보내기 문제 해결 FAQ][20]를 참조하세요. + +#### 내보낼 로그 선택 {#selecting-which-logs-are-exported} + +데이터 내보내기 규칙을 사용하면 Log Analytics Workspace에서 어떤 로그 테이블을 내보낼지 지정할 수 있습니다. 데이터 내보내기 규칙을 편집하여 테이블을 추가하거나 제거하세요. + +#### 예상 지연 시간 {#expected-latency} + +LAW 로그는 일반적으로 Datadog에 2~5분 이내에 나타나지만, 처음에는 최대 20분이 소요될 수 있습니다. LAW 로그는 비LAW 로그와 속성이 다를 수 있습니다. + +## 아키텍처 {#architecture} + +### 사용된 서비스 {#services-used} + +- [Azure Function][15] 앱은 Azure 구독에서 리소스를 발견하고, 로그 포워더를 확장하며, 감지된 리소스에 대한 진단 설정을 구성하는 데 사용됩니다. +- [Azure Container Apps][8]는 진단 설정에 의해 생성된 리소스 로그를 수집하고, 이미 처리된 로그를 추적하며, 이를 Datadog에 제출하는 데 사용됩니다. +- [Azure Storage 계정][9]은 리소스에서 생성된 로그를 저장하고 구독 ID, 리소스 ID 및 리전과 같은 메타데이터의 작은 캐시를 저장하는 데 사용됩니다. + +### 고급 아키텍처 {#high-level-architecture} + +{{아키텍처 다이어그램은 Azure 자동 로그 포워딩의 세 가지 주요 구성 요소인 컨트롤 플레인과 로그 포워더(Datadog이 고객 환경에 배포)가 Azure 리소스에 연결되어 있는 모습을 보여줍니다.}} + +배포 템플릿은 선택한 구독에서 [컨트롤 플레인](#control-plane)과 [로그 포워더](#log-forwarders)를 설정합니다. + +#### 컨트롤 플레인 {#control-plane} + +컨트롤 플레인은 Azure Function 앱과 캐싱을 위한 스토리지 계정의 집합입니다. 하나의 컨트롤 플레인이 선택한 구독에 배포되며 다음 작업을 수행합니다. +- 진단 설정을 통해 로그를 기록할 수 있는 선택한 구독의 리소스를 발견합니다. +- 로그 포워더가 추적하는 스토리지 계정으로 로그가 유입되는 발견된 리소스에 대해 진단 설정을 자동으로 구성합니다. +- 리소스가 위치한 리전에서 로그 포워더를 확장하여 로그 볼륨에 맞게 동적으로 조정할 수 있도록 합니다. + +#### 로그 포워더 {#log-forwarders} + +로그 포워더는 Azure Container Apps 작업과 로그를 위한 스토리지 계정으로 구성됩니다. 로그 포워더는 로그 포워딩을 위해 선택한 각 구독의 컨트롤 플레인에 의해 배포됩니다. 구독당 배포되는 로그 포워더의 수는 리소스에서 생성된 로그 볼륨에 따라 확장됩니다. 로그 포워더는 다음 작업을 수행합니다. +- 리소스의 진단 설정에서 생성된 로그를 스토리지 계정에 임시로 저장합니다. +- 저장된 로그를 처리하고 이를 Datadog에 전달합니다. + +Azure에서는 리소스의 진단 설정은 동일한 리전 내의 스토리지 계정만을 대상으로 할 수 있습니다. 따라서 포워더는 진단 설정이 있는 각 리전에서 생성됩니다. + +자세한 내용은 Azure의 [Azure Monitor의 진단 설정][13] 페이지를 참조하세요. + +### 상세 아키텍처 {#detailed-architecture} + +{{Azure 자동 로그 포워딩을 보여주는 워크플로 다이어그램: 컨트롤 플레인이 리소스를 발견하고, 리전에 걸쳐 로그 포워더를 확장하며, 로그를 스토리지 계정으로 전송하기 위해 진단 설정을 구성하고, 이후 Container Apps가 새로운 로그를 확인해 Datadog Log Management로 포워딩합니다.}} + +### 보안 및 권한 {#security-and-permissions} + +ARM 템플릿은 포워더를 관리하고 리소스에 진단 설정을 배치하는 데 필요한 권한만 컨트롤 플레인에 부여합니다. 이를 달성하기 위해 ARM 템플릿 배포 중에 리소스 그룹이 생성되고 권한이 부여됩니다. 이후 ARM 템플릿을 재배포하여 더 많은 구독에 대한 권한을 추가할 수 있습니다. + +#### 사용된 권한 {#permissions-used} + +- 일부 구독의 **구독** 수준의 [모니터링 기여자][10] 역할 + - 이 역할은 사용 가능한 진단 설정이 있는 리소스를 발견하고 스토리지로의 로그 출력을 활성화하는 데 필요합니다. + +- 일부 구독에 대한 로그 포워딩 리소스 그룹의 **리소스 그룹** 수준의 [기여자][11] 역할 + - 이 역할은 포워더 스토리지 계정 및 Container Apps 작업을 관리(생성 및 삭제)하는 데 필요합니다. + +- 컨트롤 플레인 함수 앱을 업데이트하기 위한 **컨트롤 플레인 리소스 그룹** 수준의 [웹사이트 기여자][12] 역할 + +리소스에 대한 정보는 외부로 내보내기되지 않습니다. Datadog은 로그 출력을 활성화하는 데 필요한 정보만 요청하며, 이 아키텍처의 유일한 출력은 Datadog으로 전송된 로그입니다. + +**참고**: 필요 시, 컨트롤 플레인이 디버깅 목적으로 자체 상태 메트릭, 로그 및 이벤트를 Datadog에 제출하도록 활성화할 수 있습니다. 활성화하려면 컨트롤 플레인의 모든 함수 앱 또는 컨테이너 앱에서 환경 변수 `DD_TELEMETRY=true`를 설정하세요. + +{{% azure-log-archiving %}} + +## 설치 제거 {#uninstall} + +[Azure Cloud Shell][5]을 열고 . PowerShell이 아닌 Azure CLI/Bash에서 실행되고 있는지 확인하세요. + +다음과 같이 제거 스크립트를 다운로드하고 실행합니다. +{{< code-block lang="bash" >}} +wget https://ddazurelfo.blob.core.windows.net/uninstall/uninstall.py +python uninstall.py +{{< /code-block >}} + +스크립트는 먼저 각 구독에서 실행 중인 인스턴스를 발견한 다음, 제거할 인스턴스를 선택하라는 메시지를 표시합니다. 리소스 삭제를 확인하고, 리소스가 삭제될 때까지 기다려 주세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://portal.azure.com/#create/Microsoft.Template/uri/CustomDeploymentBlade/uri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2FDataDog%2Fintegrations-management%2Fmain%2Fazure%2Flogging_install%2Fdist%2FcreateUiDefinition.json +[2]: https://app.datadoghq.com/organization-settings/api-keys +[4]: /ko/getting_started/site/ +[5]: https://learn.microsoft.com/en-us/azure/cloud-shell/overview +[8]: https://azure.microsoft.com/products/container-apps +[9]: https://learn.microsoft.com/azure/storage/common/storage-account-overview +[10]: https://learn.microsoft.com/azure/azure-monitor/roles-permissions-security#monitoring-contributor +[11]: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/privileged#contributor +[12]: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/web-and-mobile#website-contributor +[13]: https://learn.microsoft.com/azure/azure-monitor/essentials/diagnostic-settings +[14]: https://app.datadoghq.com/integrations/azure/add?config_azure-new-onboarding=true +[15]: https://learn.microsoft.com/azure/azure-functions/ +[16]: https://app.datadoghq.com/integrations/azure +[17]: https://learn.microsoft.com/azure/azure-monitor/logs/logs-data-export?tabs=portal +[18]: https://learn.microsoft.com/azure/azure-monitor/logs/logs-data-export?tabs=portal#unsupported-tables +[19]: https://portal.azure.com +[20]: https://learn.microsoft.com/troubleshoot/azure/azure-monitor/log-analytics/workspaces/workspace-data-export-faq +[21]: /ko/getting_started/integrations/azure/#resource-tag-filtering-for-logs \ No newline at end of file diff --git a/content/ko/logs/guide/send-aws-services-logs-with-the-datadog-lambda-function.md b/content/ko/logs/guide/send-aws-services-logs-with-the-datadog-lambda-function.md index eff7c265cce..6ecb723a12d 100644 --- a/content/ko/logs/guide/send-aws-services-logs-with-the-datadog-lambda-function.md +++ b/content/ko/logs/guide/send-aws-services-logs-with-the-datadog-lambda-function.md @@ -8,149 +8,262 @@ further_reading: text: 로그 분석 실행하기 - link: /logs/log_configuration/processors tag: 설명서 - text: 로그 처리하는 방법 배우기 + text: 로그 처리 방법 알아보기 - link: /logs/guide/reduce_data_transfer_fees - tag: 가이드 + tag: 길라잡이 text: 데이터 전송 수수료를 줄이면서 로그를 Datadog로 보내는 방법 -title: AWS 서비스 로그 Datadog 람다 전송 함수 +- link: https://learn.datadoghq.com/courses/send-aws-logs + tag: 학습 센터 + text: AWS 로그 전송 +title: Datadog Lambda 함수를 사용하여 AWS 서비스 로그 전송 --- +AWS 서비스 로그는 Datadog Forwarder Lambda 함수를 사용하여 수집할 수 있습니다. 이 Lambda 함수는 S3 버킷, CloudWatch 로그 그룹 및 EventBridge 이벤트를 트리거로 사용하며, 수집된 로그를 Datadog으로 전달합니다. -AWS 서비스 로그는 Datadog 포워더(Forwarder) 람다 함수로 수집할 수 있습니다. 이 S3 Bucket, 클라우드와치(CloudWatch) 로그 그룹 및 EventBridge 이벤트 -포워더 로그를 Datadog로 전달합니다. +AWS 서비스 로그 수집을 시작하려면 다음 단계를 수행합니다. -AWS 서비스에서 로그 수집을 시작하려면, +1. AWS 계정에서 [Datadog Forwarder Lambda 함수][1]를 설정합니다. +AWS 서비스에서 2. [로깅을 활성화](#enable-logging-for-your-aws-service)합니다(대부분의 AWS 서비스는 S3 버킷 또는 CloudWatch 로그 그룹에 기록할 수 있습니다). +전달할 새로운 로그가 있을 때 Forwarder Lambda가 실행되도록 3. [트리거를 설정](#set-up-triggers)합니다. 트리거를 구성하는 방법은 두 가지가 있습니다. -1. AWS 계정에서 [Datadog 포워더 람다 함수][1]를 설정합니다. -2. AWS 서비스(대부분 AWS 서비스는 S3 버킷 또는 클라우드와치 로그 그룹에 기록 가능)에 대해 [로깅 활성화](#enable-logging-for-your-aws-service)를 설정합니다. -3. 전달할 로그 새 항목이 있을 때 포워더 람다가 실행되도록 하는 [트리거 설정](#set-up-triggers)을 설정합니다. 트리거를 설정하는 방법에는 두 가지가 있습니다. +**참고**: + - [AWS PrivateLink][2]를 사용하여 전용 연결을 통해 로그를 전송할 수 있습니다. + - CloudFormation은 모든 리소스에 대해 `KMS:Decrypt` 권한을 포함하는 IAM 정책을 생성하며, 이는 AWS Security Hub의 권장 모범 사례와 일치하지 않습니다. 이 권한은 Lambda 함수 설정 과정에서 KMS로 암호화된 S3 버킷의 객체를 복호화하는 데 사용되며, S3 버킷을 암호화하는 데 사용된 KMS 키는 예측할 수 없습니다. 설치가 성공적으로 완료된 후 이 권한을 안전하게 삭제할 수 있습니다. -**참고**: AWS `us-east-1` 지역에 있는 경우 [Datadog-AWS 비공개 링크][2]를 활용하세요. +## AWS 서비스에서 로깅 활성화 {#enable-logging-for-your-aws-service} -**참고**: Cloudformation은 모든 리소스에 대해 KMS:Decrypt를 포함하는 IAM 정책을 생성하며, AWS Security Hub의 모범 사례와 매칭되지 않습니다. 이 권한은 KMS로 암호화된 S3 버킷에서 개체의 암호를 해독하여 람다 함수를 설정하는 데 사용됩니다. S3 버킷을 암호화하는 데 사용되는 KMS 키는 예측할 수 없습니다. 설치가 성공적으로 완료된 후 이 권한을 안전하게 삭제할 수 있습니다. +S3 버킷이나 CloudWatch 로그 그룹으로 로그를 생성하는 모든 AWS 서비스가 지원됩니다. 아래 표에서 가장 많이 사용되는 서비스의 설정 지침을 확인하세요. -## AWS 로깅 활성화 서비스 - -로그를 S3 버킷 또는 클라우드와치(CloudWatch)에 생성하는 AWS 서비스 모두가 지원됩니다. 아래 표에서 가장 많이 사용되는 서비스에 대한 설정 지침을 확인하세요. - -| AWS 서비스 | AWS 서비스 로깅 활성화 | Datadog에 AWS 로그 전송 | +| AWS 서비스 | AWS 서비스 로깅 활성화 | AWS 로그를 Datadog에 전송 | | ---------------------------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| [API 게이트웨이][3] | [Amazon API 게이트웨이 활성화 로그][4] | [수동][5] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [Cloudfront][6] | [Amazon CloudFront 로그 활성화][7] | [수동][8] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [CloudTrail][9] | [AWS CloudTrail 로그 활성화][9] | [수동][10] 로그 수집. Cloud SIEM용 AWS CloudTrail을 설정하는 경우 [Cloud SIEM용 AWS 설정][11]을 참조하세요. | -| [DynamoDB][12] | [Amazon DynamoDB 로그 활성화][13] | [수동][14] 로그 수집 | -| [EC2][15] | `-` | [Datadog 에이전트][15]를 사용하여 로그를 Datadog에 전송하세요. | -| [ECS][16] | `-` | [도커(Docker) 에이전트를 사용하여 로그][17]을 수집합니다. | -| [Elastic 로드밸런싱(ELB)][18] | [Amazon ELB 활성화 로그][19] | [수동][20] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [람다][21] | `-` | [수동][22] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [RDS][23] | [Amazon RDS 활성화 로그][24] | [수동][25] 로그 수집 | -| [Route 53][26] | [Amazon Route 53 로그 활성화][27] | [수동][28] 로그 수집 | -| [S3][29] | [Amazon S3 로그 활성화][30] | [수동][31] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [SNS][32] | SNS에서는 로그를 제공하지 않지만, SNS 서비스를 통과하는 로그 및 이벤트를 처리할 수 있습니다. | [수동][33] 로그 수집 | -| [RedShift][34] | [Amazon Redshift 로그 활성화][35] | [수동][36] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [인증된 액세스][37] | [인증된 액세스 로그 활성화][38] | [수동][39] 로그 수집 | -| [VPC][40] | [Amazon VPC 로그 활성화][41] | [수동][42] 로그 수집 | -| [Step 함수][52] | [Amazon Step 함수 로그 활성화][53] | [수동][54] 로그 수집 | -| [웹 애플리케이션 방화벽][49] | [Amazon WAF 로그 활성화][50] | [수동][51] 및 [자동](#automatically-set-up-triggers) 로그 수집 | -| [MWAA][55] | [Amazon MWAA 로그 활성화][56] | [수동][56] 로그 수집 | - - -## 트리거 설정 - -Datadog 포워더(Forwarder) 람다 함수에서 트리거를 설정하는 두 가지 옵션이 있습니다. - -- [자동](#automatically-set-up-triggers): Datadog 선택한 AWS 서비스에 대해 로그 위치를 자동으로 검색하여 Datadog 포워더 람다 함수에 트리거로 추가합니다. Datadog 또한 목록을 최신 상태로 유지합니다. +| [API Gateway][3] | [Amazon API Gateway 로그 활성화][4] | [수동][5] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [AppSync][64] | [AWS AppSync 로그 활성화][65] | [수동][65] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| Batch | `-` | [자동](#automatically-set-up-triggers) 로그 수집. | +| [Bedrock Agentcore][74] | `-` | [자동](#automatically-set-up-triggers) 로그 수집. | +| [Cloudfront][6] | [Amazon CloudFront 로그 활성화][7] | [수동][8] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [CloudTrail][9] | [AWS CloudTrail 로그 활성화][9] | [수동][10] 및 [자동](#automatically-set-up-triggers) 로그 수집. Cloud SIEM용 AWS CloudTrail을 설정하는 경우 [Cloud SIEM용 AWS 설정][11]을 참조하세요. | +| [CodeBuild][66] | [AWS CodeBuild 로그 활성화][67] | [수동][67] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [DMS][68] | [AWS 데이터베이스 마이그레이션 서비스 로그 활성화][69] | [수동][69] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [DocumentDB][70] | [Amazon DocumentDB 로그 활성화][71] | [수동][71] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [DynamoDB][12] | [Amazon DynamoDB 로그 활성화][13] | [수동][14] 로그 수집. | +| [EC2][15] | `-` | [Datadog Agent][15]를 사용하여 로그를 Datadog에 전송합니다. | +| [ECS][16] | `-` | [Docker Agent를 사용하여 로그 수집][17] 또는 [자동](#automatically-set-up-triggers) 로그 수집. | +| [EKS][62] | [Amazon EKS 로그 활성화][63] | [수동][63] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [Elastic Load Balancing(ELB)][18] | [Amazon ELB 로그 활성화][19] | [수동][20] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [Glue][76] | [AWS Glue 로그 활성화][77] | [수동][77] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [IoT Core][74] | [Amazon IoT Core 로그 활성화][75] | [자동](#automatically-set-up-triggers) 로그 수집. | +| [Lambda][21] | `-` | [수동][22] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [MWAA][55] | [Amazon MWAA 로그 활성화][56] | [수동][56] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [Network Firewall][57] | [AWS 네트워크 방화벽 로그 활성화][58] | [수동][58] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [PCS][75] | `-` | [자동](#automatically-set-up-triggers) 로그 수집. | +| [RDS][23] | [Amazon RDS 로그 활성화][24] | [수동][25] 로그 수집. | +| [RedShift][34] | [Amazon Redshift 로그 활성화][35] | [수동][36] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| Redshift Serverless | `-` | [자동](#automatically-set-up-triggers) 로그 수집. | +| [Route 53][59] | Amazon Route 53 [DNS 쿼리 로깅][60] 및 [Resolver 쿼리 로깅][73] 활성화 | [수동][61] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [S3][29] | [Amazon S3 로그 활성화][30] | [수동][31] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [SNS][32] | SNS에서는 로그를 제공하지 않지만, SNS 서비스를 통과하는 로그 및 이벤트를 처리할 수 있습니다 | [수동][33] 로그 수집. | +| SSM | `-` | [자동](#automatically-set-up-triggers) 로그 수집. | +| [Step Functions][52] | [Amazon Step Functions 로그 활성화][53] | [수동][54] 로그 수집. | +| [Verified Access][37] | [Verified Access 로그 활성화][38] | [수동][39] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [VPC][40] | [Amazon VPC 로그 활성화][41] | [수동][42] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [VPN][26] | [AWS VPN 로그 활성화][72] | [수동][27] 및 [자동](#automatically-set-up-triggers) 로그 수집. | +| [웹 애플리케이션 방화벽][49] | [AWS WAF 로그 활성화][50] | [수동][51] 및 [자동](#automatically-set-up-triggers) 로그 수집. | + + + +## 트리거 설정 {#set-up-triggers} + +Datadog Forwarder Lambda 함수에 트리거를 구성하는 방법은 두 가지가 있습니다. + +- [자동](#automatically-set-up-triggers): Datadog이 선택된 AWS 서비스의 로그 위치를 자동으로 검색하여 Datadog Forwarder Lambda 함수에 트리거를 추가합니다. Datadog이 트리거 목록을 최신 상태로 유지합니다. - [수동](#manually-set-up-triggers): 각 트리거를 직접 설정합니다. -### 트리거 자동 설정 +### 트리거 자동 설정 {#automatically-set-up-triggers} + +Datadog은 Datadog Forwarder Lambda 함수의 트리거를 자동으로 구성하여 AWS 로그를 수집할 수 있습니다. 그러나 자동 구독은 서로 다른 AWS 계정이나 리전에서 트리거를 생성하는 것을 지원하지 않습니다. 로그가 다른 AWS 계정의 S3 버킷에 게시되는 경우에는 이 제한을 우회하기 위해 S3 버킷과 동일한 계정에서 수동으로 트리거를 생성하는 것이 권장됩니다. -Datadog는 Datadog 포워더(Forwarder) 람다 함수에서 자동으로 트리거되도록 설정되어 다음 소스와 위치에서 AWS 로그를 수집할 수 있습니다. +지원되는 로그 소스 및 위치: | 소스 | 위치 | | --------------------------- | -------------- | -| API 게이트웨이 액세스 로그 | 클라우드와치(CloudWatch) | -| API Gateway 실행 로그 | 클라우드와치(CloudWatch) | +| Apache Airflow(MWAA) | CloudWatch | +| API Gateway 액세스 로그 | CloudWatch | +| API Gateway 실행 로그 | CloudWatch | | 애플리케이션 ELB 액세스 로그 | S3 | +| AppSync Logs | CloudWatch | +| Batch | CloudWatch | +| Bedrock Agentcore Logs | S3, CloudWatch | | 클래식 ELB 액세스 로그 | S3 | | CloudFront 액세스 로그 | S3 | -| 람다 로그 | 클라우드와치(CloudWatch) | -| Redshift 로그 | S3 | +| Cloudtrail 로그 | S3, CloudWatch | +| CodeBuild 로그 | S3, CloudWatch | +| DMS 로그 | CloudWatch | +| DocumentDB 로그 | CloudWatch | +| ECS 로그 | CloudWatch | +| EKS 컨트롤 플레인 로그 | CloudWatch | +| EKS Container Insights 로그 | CloudWatch | +| Glue Jobs 로그 | CloudWatch | +| Lambda 로그 | CloudWatch | +| Lambda@Edge 로그 | Cloudwatch | +| IoT Core 로그 | CloudWatch | +| 네트워크 방화벽 로그 | S3, CloudWatch | +| PCS 로그 | CloudWatch | +| Redshift 로그 | S3, CloudWatch | +| Redshift Serverless 로그 | CloudWatch | +| RDS 로그 | CloudWatch | +| Route53 DNS 쿼리 로그 | CloudWatch | +| Route53 Resolver 쿼리 로그 | S3, CloudWatch | | S3 액세스 로그 | S3 | -| Step Functions | 클라우드와치(CloudWatch) | -| 웹 애플리케이션 방화벽 | S3, 클라우드와치(CloudWatch) | +| SSM 명령 로그 | CloudWatch | +| Step 함수 | CloudWatch | +| Verified Access 로그 | S3, CloudWatch | +| VPC Flow 로그 | S3, CloudWatch | +| VPN 로그 | CloudWatch | +| 웹 애플리케이션 방화벽 | S3, CloudWatch | -**참고**: [구독 필터][48]는 DatadogForwarder에 의해 자동으로 생성되지 않습니다. 로그 그룹에서 직접 생성하세요. +**참고**: [구독 필터][48]는 DatadogForwarder에 의해 CloudWatch 로그 그룹에 자동으로 생성되며, `DD_LOG_SUBSCRIPTION_FILTER_` 형식으로 이름이 지정됩니다. -1. 아직 설정하지 않았다면 [Datadog 로그 컬렉션 AWS 람다 함수][1]를 설정하세요. -2. [Datadog-AWS 통합][43]에 사용되는 IAM 역할의 정책에 다음 권한이 있는지 확인합니다. 이러한 권한이 어떻게 사용되는지에 대한 정보는 아래 설명에서 확인할 수 있습니다. +1. 아직 설정하지 않았다면 [Datadog 로그 수집 AWS Lambda 함수][1]를 설정하세요. +2. [Datadog-AWS 통합][43]에 사용되는 IAM 역할의 정책에 다음 권한이 포함되어 있는지 확인하세요. 이 권한들이 사용되는 방식에 대한 자세한 내용은 아래 설명에서 찾을 수 있습니다. ```text + "airflow:GetEnvironment", + "airflow:ListEnvironments", + "appsync:ListGraphqlApis", + "batch:DescribeJobDefinitions", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", - "elasticloadbalancing:DescribeLoadBalancers", + "cloudtrail:GetTrail", + "cloudtrail:ListTrails", + "codebuild:BatchGetProjects", + "codebuild:ListProjects", + "dms:DescribeReplicationInstances", + "ec2:DescribeFlowLogs", + "ec2:DescribeVerifiedAccessInstanceLoggingConfigurations", + "ec2:DescribeVpnConnections", + "ecs:DescribeTaskDefinition", + "ecs:ListTaskDefinitionFamilies", + "eks:DescribeCluster", + "eks:ListClusters", "elasticloadbalancing:DescribeLoadBalancerAttributes", - "lambda:List*", + "elasticloadbalancing:DescribeLoadBalancers", + "glue:BatchGetJobs", + "glue:GetJobs", + "glue:GetJob", + "glue:ListJobs", + "iot:GetV2LoggingOptions", "lambda:GetPolicy", + "lambda:InvokeFunction", + "lambda:List*", + "logs:DeleteSubscriptionFilter", + "logs:DescribeDeliveries", + "logs:DescribeDeliverySources", + "logs:DescribeLogGroups", + "logs:DescribeSubscriptionFilters", + "logs:GetDeliveryDestination", + "logs:PutSubscriptionFilter", + "network-firewall:DescribeLoggingConfiguration", + "network-firewall:ListFirewalls", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "redshift-serverless:ListNamespaces", "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", - "s3:GetBucketLogging", + "route53:ListQueryLoggingConfigs", + "route53resolver:ListResolverQueryLogConfigs", "s3:GetBucketLocation", + "s3:GetBucketLogging", "s3:GetBucketNotification", "s3:ListAllMyBuckets", "s3:PutBucketNotification", - "states:ListStateMachines", + "ssm:GetServiceSetting", + "ssm:ListCommands", "states:DescribeStateMachine", - "wafv2:ListLoggingConfigurations", - "logs:PutSubscriptionFilter", - "logs:DeleteSubscriptionFilter", - "logs:DescribeSubscriptionFilters" + "states:ListStateMachines", + "wafv2:ListLoggingConfigurations" ``` - | AWS 권한 | 설명 | + | AWS Permission | Description | | ----------------------------------------------------------- | ---------------------------------------------------------------------------- | - | `cloudfront:GetDistributionConfig` | CloudFront 액세스 로그가 포함된 S3 버킷 이름을 가져옵니다. | - | `cloudfront:ListDistributions` | 모든 CloudFront 분포를 목록화합니다. | - | `elasticloadbalancing:`
    `DescribeLoadBalancers` | 모든 로드 밸런서를 목록화합니다. | - | `elasticloadbalancing:`
    `DescribeLoadBalancerAttributes` | ELB 액세스가 포함된 S3 버킷의 이름 가져오기 로그. | - | `lambda:List*` | 모든 람다 함수를 목록화합니다. | - | `lambda:GetPolicy` | 트리거가 제거될 때 람다 정책을 가져옵니다. | - | `redshift:DescribeClusters` | Redshift 클러스터를 모두 목록화합니다. | - | `redshift:DescribeLoggingStatus` | Redshift가 포함된 S3 버킷 이름을 가져옵니다. | - | `s3:GetBucketLogging` | S3 액세스 로그가 포함된 S3 버킷의 이름을 가져옵니다. | - | `s3:GetBucketLocation` | S3 액세스 로그가 포함된 S3 버킷 지역을 가져옵니다. | - | `s3:GetBucketNotification` | 기존 람다 트리거 설정을 가져옵니다. | - List all S3 buckets. - | `s3:PutBucketNotification` | S3 버킷 이벤트 기반 람다 트리거를 추가하거나 제거합니다. | - | `states:ListStateMachines` | 모든 Step 함수를 목록화합니다. | - | `states:DescribeStateMachine` | Step 함수에 대한 로깅 상세 정보를 가져옵니다. | - | `wafv2:ListLoggingConfigurations` | 웹 애플리케이션 방화벽의 모든 로깅 설정을 목록화합니다. | - | `logs:PutSubscriptionFilter` | 클라우드와치(CloudWatch) 로그 이벤트 기반으로 람다 트리거를 추가합니다. | - | `logs:DeleteSubscriptionFilter` | 클라우드와치(CloudWatch) 로그를 남기다 이벤트 에 기반하여 람다 트리거를 제거합니다. - | `logs:DescribeSubscriptionFilters` | 지정된 로그 그룹에 대한 구독 필터를 목록화합니다 | - -3. [AWS 통합 페이지][44]에서 AWS 계정을 선택해 로그를 수집할 AWS 계정을 선택하고 **로그 수집** 탭을 클릭합니다. - {{< img src="logs/aws/aws_log_setup_step1.png" alt="The Log Collection tab of the AWS integration page for a specific AWS account with instructions to send AWS Services logs and a textbox to autosubscribe the Forwarder Lambda function by entering the ARN of the Forwarder Lambda function" popup="true" style="width:90%;" >}} -4. 이전 섹션에서 생성한 람다의 ARN을 입력하고 **추가**를 클릭합니다. -5. 로그를 수집하려는 서비스를 선택하고 **저장**을 클릭합니다. 특정 서비스에서 로그 수집을 중지하려면 로그를 선택 해제합니다. - {{< img src="logs/aws/aws_log_setup_step2.png" alt="The Log Collection tab of the AWS integration page for a specific AWS account with one Lambda function successfully entered under Included ARNs and some of the services enabled under Log Sources" popup="true" style="width:90%;" >}} -6. 여러 지역의 로그를 보유하고 있는 경우 해당 지역에 람다 함수를 추가로 생성하여 이 페이지에 입력해야 합니다. -7. 모든 AWS 로그 수집을 중지하려면 람다 위로 마우스를 가져간 다음 삭제 아이콘을 클릭합니다. 해당 함수에 대한 모든 트리거가 제거됩니다. -8. 이 초기 설정 후 몇 분 내에 Datadog [로그 탐색기][45]에 AWS 로그가 나타납니다. - -### 트리거 수동 설정 - -#### 클라우드와치(CloudWatch) 로그 그룹에서 로그 수집 - -클라우드와치(CloudWatch) 그룹에서 로그를 수집하는 경우 다음 방법 중 하나를 사용하여 [Datadog 포워더(Forwarder) 람다 함수][1] 트리거를 설정합니다. + | `airflow:ListEnvironments` | List all MWAA environment names. | + | `airflow:GetEnvironment` | Get information about a MWAA environment. | + | `appsync:ListGraphqlApis` | List all GraphQL Apis. | + | `batch:DescribeJobDefinitions` | List all Batch job definitions. | + | `cloudfront:GetDistributionConfig` | Get the name of the S3 bucket containing CloudFront access logs. | + | `cloudfront:ListDistributions` | List all CloudFront distributions. | + | `cloudtrail:GetTrail` | Get Trail logging information. | + | `cloudtrail:ListTrails` | List all Cloudtrail trails. | + | `codebuild:BatchGetProjects` | List all CodeBuild projects. | + | `codebuild:ListProjects` | Get information on CodeBuild projects. | + | `dms:DescribeReplicationInstances` | List all replication instances for DMS. | + | `ec2:DescribeFlowLogs` | List all Flow log configurations. | + | `ec2:DescribeVerifiedAccessInstanceLoggingConfigurations` | List all Verified Access instance logging configurations. | + | `ec2:DescribeVpnConnections` | List all VPN connections. | + | `ecs:DescribeTaskDefinition` | Describe ECS task definition. | + | `ecs:ListTaskDefinitionFamilies` | List all task definition families. | + | `elasticloadbalancing:`
    `DescribeLoadBalancers` | List all load balancers. | + | `elasticloadbalancing:`
    `DescribeLoadBalancerAttributes` | Get the name of the S3 bucket containing ELB access logs. | + | `glue:BatchGetJobs` | Get information about multiple Glue jobs. | + | `glue:GetJob` | Get information about a Glue job. | + | `glue:GetJobs` | List all Glue jobs. | + | `glue:ListJobs` | List all Glue job names. | + | `eks:DescribeCluster` | Describe an EKS cluster. | + | `eks:ListClusters` | List all EKS clusters. | + | `iot:GetV2LoggingOptions` | Get IoT V2 logging options. | + | `lambda:InvokeFunction` | Invoke a Lambda function. | + | `lambda:List*` | List all Lambda functions. | + | `lambda:GetPolicy` | Get the Lambda policy when triggers are to be removed. | + | `logs:PutSubscriptionFilter` | Add a Lambda trigger based on CloudWatch Log events. | + | `logs:DeleteSubscriptionFilter` | Remove a Lambda trigger based on CloudWatch Log events. | + | `logs:DescribeLogGroups` | Describe CloudWatch log groups. | + | `logs:DescribeDeliveries` | Describe CloudWatch log deliveries. | + | `logs:DescribeDeliverySources` | Describe CloudWatch log delivery sources. | + | `logs:DescribeSubscriptionFilters` | List the subscription filters for the specified log group. | + | `logs:GetDeliveryDestination` | Get a CloudWatch log delivery destination. | + | `network-firewall:DescribeLoggingConfiguration` | Get the logging configuration of a firewall. | + | `network-firewall:ListFirewalls` | List all Network Firewall firewalls. | + | `rds:DescribeDBClusters` | List all RDS clusters. | + | `rds:DescribeDBInstances` | List all RDS instances. | + | `redshift:DescribeClusters` | List all Redshift clusters. | + | `redshift:DescribeLoggingStatus` | Get the name of the S3 bucket containing Redshift Logs. | + | `redshift-serverless:ListNamespaces` | List all Redshift Serverless namespaces. | + | `route53:ListQueryLoggingConfigs` | List all DNS query logging configurations for Route 53. | + | `route53resolver:ListResolverQueryLogConfigs` | List all Resolver query logging configurations for Route 53. | + | `s3:GetBucketLogging` | Get the name of the S3 bucket containing S3 access logs. | + | `s3:GetBucketLocation` | Get the region of the S3 bucket containing S3 access logs. | + | `s3:GetBucketNotification` | Get existing Lambda trigger configurations. | + | `s3:ListAllMyBuckets` | List all S3 buckets. | + | `s3:PutBucketNotification` | Add or remove a Lambda trigger based on S3 bucket events. | + | `ssm:GetServiceSetting` | Get the SSM service setting for customer script log group name. | + | `ssm:ListCommands` | List all SSM commands. | + | `states:ListStateMachines` | List all Step Functions. | + | `states:DescribeStateMachine` | Get logging details about a Step Function. | + | `wafv2:ListLoggingConfigurations` | List all logging configurations of the Web Application Firewall. | + + +3. [AWS 통합 페이지][44]에서 로그를 수집할 AWS 계정을 선택하고 **Log Collection** 탭을 클릭합니다. +4. **Datadog Forwarder Lambda** 섹션에서 이전 단계에서 생성한 Lambda의 ARN을 입력한 다음 **Add**를 클릭합니다. Lambda 함수는 아래 표에 이름, 버전 및 리전과 함께 표시됩니다. +5. **Log Autosubscription** 섹션의 **Log Sources**에서 로그를 수집할 AWS 서비스를 활성화합니다. 스위치를 켜면 로그 수집이 시작됩니다. 특정 서비스의 로그 수집을 중지하려면 해당 로그 소스를 비활성화합니다. +6. (선택 사항) **Log Source Tag Filters** 섹션에서 각 로그 소스에 대해 리소스 태그를 기준으로 로그 수집을 필터링할 수 있습니다. 드롭다운 메뉴에서 로그 소스를 선택하고 `key:value` 형식의 태그를 추가하여 수집하는 리소스의 로그를 제한합니다. **참고**: 리소스 태그는 Datadog 플랫폼 규칙에 맞추어 자동으로 소문자로 변환됩니다. 태그 필터는 불일치를 방지하기 위해 소문자로 정의하세요. +7. 여러 리전에 로그가 존재하는 경우 각 리전에 추가 Datadog Forwarder Lambda 함수를 생성하고 **Datadog Forwarder Lambda** 섹션에 추가해야 합니다. +8. 특정 Lambda 함수로부터의 모든 AWS 로그 수집을 중지하려면 표에서 해당 Lambda 위에 마우스를 올리고 삭제 아이콘을 클릭합니다. 해당 함수에 연결된 모든 트리거가 제거됩니다. +9. 이 초기 설정 후 몇 분 내에 Datadog [Log Explorer][45]에 AWS 로그가 나타납니다. + +### 트리거 수동 설정 {#manually-set-up-triggers} + +#### CloudWatch 로그 그룹에서 로그 수집 {#collecting-logs-from-cloudwatch-log-group} + +CloudWatch 그룹에서 로그를 수집하는 경우 다음 방법 중 하나를 사용하여 [Datadog Forwarder Lambda 함수][1] 트리거를 설정합니다. {{< tabs >}} -{{% tab "AWS console" %}} +{{% tab "AWS 콘솔" %}} -1. AWS 콘솔에서 **람다**로 이동합니다. -2. **함수**를 클릭하고 Datadog 포워더(Forwarder)를 선택합니다. -3. **트리거 추가**를 클릭하고 **클라우드와치(CloudWatch) 로그**를 선택합니다. +1. AWS 콘솔에서 **Lambda**로 이동합니다. +2. **Functions**를 클릭하고 Datadog Forwarder를 선택합니다. +3. **Add trigger**를 클릭하고 **CloudWatch Logs**를 선택합니다. 4. 드롭다운 메뉴에서 로그 그룹을 선택합니다. -5. 필터의 이름을 입력하고 선택적으로 필터 패턴을 지정합니다. +5. 필터의 이름을 입력하고 필요에 따라 필터 패턴을 지정합니다. 6. **Add**를 클릭합니다. -7. [Datadog 로그 섹션][1]으로 이동하여 로그 그룹으로 전송된 새로운 로그 이벤트를 살펴보세요. +7. [Datadog Log 섹션][1]으로 이동하여 로그 그룹으로 전송된 새로운 로그 이벤트를 확인합니다. [1]: https://app.datadoghq.com/logs {{% /tab %}} @@ -159,13 +272,25 @@ Datadog는 Datadog 포워더(Forwarder) 람다 함수에서 자동으로 트리 Terraform 사용자의 경우, 트리거를 프로비저닝하고 관리하기 위해 [aws_cloudwatch_log_subscription_filter][1] 리소스를 사용할 수 있습니다. 아래 샘플 코드를 참조하세요. ```conf +data "aws_cloudwatch_log_group" "some_log_group" { + name = "/some/log/group" +} + +resource "aws_lambda_permission" "lambda_permission" { + action = "lambda:InvokeFunction" + function_name = "datadog-forwarder" # this is the default but may be different in your case + principal = "logs.amazonaws.com" # or logs.amazonaws.com.cn for China* + source_arn = data.aws_cloudwatch_log_group.some_log_group.arn +} + resource "aws_cloudwatch_log_subscription_filter" "datadog_log_subscription_filter" { name = "datadog_log_subscription_filter" - log_group_name = # 예: /aws/lambda/my_lambda_name - destination_arn = # 예: arn:aws:lambda:us-east-1:123:function:datadog-forwarder + log_group_name = # for example, /some/log/group + destination_arn = # for example, arn:aws:lambda:us-east-1:123:function:datadog-forwarder filter_pattern = "" } ``` +\*{{% mainland-china-disclaimer %}} [1]: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_subscription_filter {{% /tab %}} @@ -173,7 +298,7 @@ resource "aws_cloudwatch_log_subscription_filter" "datadog_log_subscription_filt AWS CloudFormation 사용자의 경우, CloudFormation [AWS::Logs::SubscriptionFilter][1] 리소스를 사용하여 트리거를 프로비저닝하고 관리할 수 있습니다. 아래 샘플 코드를 참조하세요. -샘플 코드는 AWS [SAM][2] 및 [서버리스 프레임워크][3]에서도 작동합니다. 서버리스 프레임워크의 경우 `serverless.yml`의 [리소스][4] 섹션 아래에 코드를 넣으세요. +샘플 코드는 AWS [SAM][2] 및 [Serverless Framework][3]에서도 작동합니다. Serverless Framework의 경우, 코드를 `serverless.yml`의 [resources][4] 섹션 아래에 배치하세요. ```yaml Resources: @@ -192,15 +317,15 @@ Resources: {{% /tab %}} {{< /tabs >}} -#### S3 버킷에서 로그 수집 +#### S3 버킷에서 로그 수집{#collecting-logs-from-s3-buckets} -S3 버킷에서 로그를 수집하는 경우, 다음 방법 중 하나를 사용하여 [Datadog 포워더(Forwarder) 람다 함수][1] 트리거를 설정합니다. +S3 버킷에서 로그를 수집하는 경우, 다음 방법 중 하나를 사용하여 [Datadog Forwarder Lambda 함수][1] 트리거를 설정합니다. {{< tabs >}} -{{% tab "AWS Console" %}} +{{% tab "AWS 콘솔" %}} -1. 람다 함수가 설치되면 AWS 콘솔에서 로그가 포함된 S3 버킷에 트리거를 수동으로 추가합니다. - {{< img src="logs/aws/adding_trigger.png" alt="Adding trigger" popup="true"style="width:80%;">}} +1. Lambda 함수가 설치되면 AWS 콘솔에서 로그가 포함된 S3 버킷에 트리거를 수동으로 추가합니다. + {{< img src="logs/aws/adding_trigger.png" alt="트리거 추가" popup="true"style="width:80%;">}} 2. 버킷을 선택한 다음 AWS 안내를 따릅니다. {{< img src="logs/aws/integration_lambda.png" alt="Integration Lambda" popup="true" style="width:80%;">}} @@ -208,7 +333,7 @@ S3 버킷에서 로그를 수집하는 경우, 다음 방법 중 하나를 사 3. S3 버킷에 올바른 이벤트 유형을 설정합니다. {{< img src="logs/aws/object_created.png" alt="Object Created" popup="true" style="width:80%;">}} -완료되면 [Datadog 로그 섹션][1]으로 이동하여 로그 탐색을 시작합니다. +완료되면 [Datadog Log 섹션][1]으로 이동하여 로그를 탐색해 보세요! [1]: https://app.datadoghq.com/logs {{% /tab %}} @@ -253,12 +378,12 @@ Resources: {{< /tabs >}} -## 스크러빙 및 필터링 +## 스크러빙 및 필터링 {#scrubbing-and-filtering} -람다 함 에서 보낸 이메일 또는 IP 주소(로그)를 스크러빙하거나 [람다 파라미터][46]에서 커스텀 스크러빙 규칙을 정의할 수 있습니다. -[필터링 옵션][47]을 사용하여 특정 패턴과 일치하는 로그만 제외하거나 보낼 수도 있습니다. +Lambda 함수에서 전송된 로그에서 이메일이나 IP 주소를 스크러빙하거나 [Lambda 파라미터에서][46] 사용자 지정 스크러빙 규칙을 정의할 수 있습니다. +[필터링 옵션][47]을 사용하여 특정 패턴과 일치하는 로그만 전송하거나, 해당 패턴과 일치하지 않는 로그를 제외할 수도 있습니다. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -287,8 +412,8 @@ Resources: [23]: /ko/integrations/amazon_rds/ [24]: /ko/integrations/amazon_rds/#enable-rds-logging [25]: /ko/integrations/amazon_rds/#send-logs-to-datadog -[26]: /ko/integrations/amazon_route53/ -[27]: /ko/integrations/amazon_route53/#enable-route53-logging +[26]: /ko/integrations/amazon-vpn/ +[27]: /ko/integrations/amazon-vpn/#send-logs-to-datadog [28]: /ko/integrations/amazon_route53/#send-logs-to-datadog [29]: /ko/integrations/amazon_s3/ [30]: /ko/integrations/amazon_s3/#enable-s3-access-logs @@ -296,11 +421,11 @@ Resources: [32]: /ko/integrations/amazon_sns/ [33]: /ko/integrations/amazon_sns/#send-logs-to-datadog [34]: /ko/integrations/amazon_redshift/ -[35]: /ko/integrations/amazon_redshift/#enable-aws-redshift-logging -[36]: /ko/integrations/amazon_redshift/#log-collection -[37]: /ko/integrations/aws_verified_access/ -[38]: /ko/integrations/aws_verified_access/#enable-verified-access-logs -[39]: /ko/integrations/aws_verified_access/#log-collection +[35]: /ko/integrations/amazon-redshift/#enable-logging +[36]: /ko/integrations/amazon-redshift/#log-collection +[37]: /ko/integrations/amazon-verified-access/ +[38]: /ko/integrations/amazon-verified-access/#enable-verified-access-logs +[39]: /ko/integrations/amazon-verified-access/#log-collection [40]: /ko/integrations/amazon_vpc/ [41]: /ko/integrations/amazon_vpc/#enable-vpc-flow-log-logging [42]: /ko/integrations/amazon_vpc/#log-collection @@ -317,4 +442,27 @@ Resources: [53]: /ko/integrations/amazon_step_functions/#log-collection [54]: /ko/integrations/amazon_step_functions/#send-logs-to-datadog [55]: /ko/integrations/amazon_mwaa/ -[56]: /ko/integrations/amazon_mwaa/#log-collection \ No newline at end of file +[56]: /ko/integrations/amazon_mwaa/#log-collection +[57]: /ko/integrations/amazon_network_firewall/ +[58]: /ko/integrations/amazon_network_firewall/#log-collection +[59]: /ko/integrations/amazon_route53/ +[60]: /ko/integrations/amazon_route53/#enable-route53-dns-query-logging +[61]: /ko/integrations/amazon_route53/#send-logs-to-datadog +[62]: /ko/integrations/amazon-eks/ +[63]: /ko/integrations/amazon-eks/#log-collection +[64]: /ko/integrations/amazon-appsync/ +[65]: /ko/integrations/amazon-appsync/#send-logs-to-datadog +[66]: /ko/integrations/amazon-codebuild/ +[67]: /ko/integrations/amazon-codebuild/#send-logs-to-datadog +[68]: /ko/integrations/amazon-dms/ +[69]: /ko/integrations/amazon-dms/#send-logs-to-datadog +[70]: /ko/integrations/amazon-documentdb/ +[71]: /ko/integrations/amazon-documentdb/#send-logs-to-datadog +[72]: /ko/integrations/amazon-vpn/#enable-logging +[73]: /ko/integrations/amazon_route53/#enable-route53-resolver-query-logging +[74]: /ko/integrations/amazon-iot/ +[75]: /ko/integrations/amazon-iot/#enable-logging +[74]: /ko/integrations/amazon-bedrock/ +[75]: /ko/integrations/amazon-pcs/ +[76]: /ko/integrations/amazon_glue/ +[77]: /ko/integrations/amazon_glue/#log-collection \ No newline at end of file diff --git a/content/ko/logs/log_collection/javascript.md b/content/ko/logs/log_collection/javascript.md index da9d5c524db..8d186bbfbb5 100644 --- a/content/ko/logs/log_collection/javascript.md +++ b/content/ko/logs/log_collection/javascript.md @@ -10,41 +10,41 @@ title: 브라우저 로그 수집 브라우저 로그 SDK를 사용하면 웹 브라우저 페이지에서 직접 Datadog로 로그를 보낼 수 있고, 다음과 같은 기능을 활용할 수 있습니다. - SDK를 로거로 사용합니다. 모든 항목이 Datadog에 JSON 문서로 전달됩니다. - 전송한 각 로그에 `context` 및 추가 사용자 지정 특성을 추가합니다. - 모든 프런트엔드 오류를 자동으로 래핑하고 전달합니다. - 프런트엔드 오류를 전달합니다. - 실제 클라이언트 IP 주소 및 사용자 에이전트를 기록합니다. - 자동 일괄 포스트를 사용해 네트워크 사용량을 최적화합니다. - Worker 및 Service Worker 환경에서 사용합니다. +- SDK를 로거로 사용합니다. 모든 항목이 Datadog에 JSON 문서로 전달됩니다. +- 전송한 각 로그에 `context` 및 추가 사용자 지정 속성을 추가합니다. +- 모든 프론트엔드 오류를 자동으로 래핑하고 전달합니다. +- 프론트엔드 오류를 전달합니다. +- 실제 클라이언트 IP 주소 및 사용자 에이전트를 기록합니다. +- 자동 일괄 포스트를 사용해 네트워크 사용량을 최적화합니다. +- Worker 및 Service Worker 환경에서 사용합니다. **참고**: - **RUM SDK와 무관**: 브라우저 로그 SDK는 RUM SDK 없이 사용할 수 있습니다. - **Worker 환경**: 브라우저 로그 SDK는 Worker 및 Service Worker 환경에서 같은 설정 방법을 사용하여 작동합니다. 하지만 Worker 환경에서 보낸 로그에는 세션 정보가 자동으로 포함되지 않습니다. +- **RUM SDK와 무관**: 브라우저 로그 SDK는 RUM SDK 없이 사용할 수 있습니다. +- **Worker 환경**: 브라우저 로그 SDK는 Worker 및 Service Worker 환경에서 같은 설정 방법을 사용하여 작동합니다. 하지만 Worker 환경에서 보낸 로그에는 세션 정보가 자동으로 포함되지 않습니다. -## 설정 +## 설정 {#setup} -### 1단계 클라이언트 토큰 생성 +### 1단계 - 클라이언트 토큰 생성 {#step-1-create-a-client-token} -Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 +Datadog에서 [**Organization Settings > New Client Tokens]**[1]로 이동합니다. **지원되는 환경**: 브라우저 로그 SDK는 모든 최신 데스크톱 및 모바일 브라우저, 그리고 Worker 및 Service Worker 환경을 지원합니다. [브라우저 지원][4] 표를 참조하세요.
    보안상의 이유로, 브라우저 로그 SDK를 구성하는 데 API 키를 사용할 수는 없습니다. 해당 키가 JavaScript 코드의 클라이언트 측에 노출되기 때문입니다. 웹 브라우저에서 로그를 수집하려면 반드시 클라이언트 토큰을 사용해야 합니다.
    -### 2단계 로그 브라우저 SDK 설치 +### 2단계 - 로그 브라우저 SDK 설치{#step-2-install-the-logs-browser-sdk} 브라우저 SDK의 설치 방법을 선택합니다. {{< tabs >}} {{% tab "NPM" %}} -최신 웹 애플리케이션의 경우, Datadog에서는 노드 패키지 관리자(npm)를 통해 설치하는 편을 권장합니다. 브라우저 SDK는 나머지 프런트엔드 JavaScript 코드로 패키징됩니다. 페이지 로드 성능에는 아무런 영향이 없습니다. 하지만 SDK가 해당 SDK를 초기화하기 전에 발생하는 오류 또는 콘솔 로그를 캡처하지 않을 가능성이 있습니다. Datadog에서는 브라우저 로그 SDK와 일치하는 버전을 사용하도록 권장합니다. +최신 웹 애플리케이션의 경우, Datadog에서는 노드 패키지 관리자(npm)를 통해 설치하는 편을 권장합니다. 브라우저 SDK는 나머지 프론트엔드 JavaScript 코드로 패키징됩니다. 페이지 로드 성능에는 아무런 영향이 없습니다. 하지만 SDK가 해당 SDK를 초기화하기 전에 발생하는 오류 또는 콘솔 로그를 캡처하지 않을 가능성이 있습니다. Datadog에서는 브라우저 로그 SDK와 일치하는 버전을 사용하도록 권장합니다. -[`@datadog/browserlogs`][13]를 `package.json` 파일에 추가합니다. 예를 들어 npm cli를 사용하는 경우입니다. +[`@datadog/browser-logs`][13]를 `package.json` 파일에 추가합니다. 예를 들어 npm cli를 사용하는 경우입니다. -[13]: https://www.npmjs.com/package/@datadog/browserlogs +[13]: https://www.npmjs.com/package/@datadog/browser-logs {{% /tab %}} {{% tab "CDN async" %}} @@ -61,7 +61,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v7/datadog-logs.js','DD_LOGS') ``` @@ -74,7 +74,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/eu/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/eu/v7/datadog-logs.js','DD_LOGS') ``` @@ -87,7 +87,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/ap1/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/ap1/v7/datadog-logs.js','DD_LOGS') ``` @@ -100,7 +100,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/ap2/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/ap2/v7/datadog-logs.js','DD_LOGS') ``` @@ -113,7 +113,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us3/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us3/v7/datadog-logs.js','DD_LOGS') ``` @@ -126,12 +126,12 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin='' n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) - })(window,document,'script','https://www.datadoghq-browser-agent.com/us5/v6/datadog-logs.js','DD_LOGS') + })(window,document,'script','https://www.datadoghq-browser-agent.com/us5/v7/datadog-logs.js','DD_LOGS') ``` {{< /site-region >}} -{{< site-region region="gov" >}} +{{< site-region region="gov,gov2" >}} ```javascript ``` @@ -156,7 +156,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript @@ -167,7 +167,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript @@ -178,7 +178,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript @@ -189,7 +189,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript @@ -200,7 +200,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript @@ -211,18 +211,18 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 ```javascript ``` {{< /site-region >}} -{{< site-region region="gov" >}} +{{< site-region region="gov,gov2" >}} ```javascript @@ -233,7 +233,7 @@ Datadog에서 [**조직 설정 > 새 클라이언트 토큰**][1]으로 이동 {{% /tab %}} {{< /tabs >}} -### 3단계 로그 브라우저 SDK 초기화 +### 3단계 - 로그 브라우저 SDK 초기화 {#step-3-initialize-the-logs-browser-sdk} SDK는 앱 수명 주기에서 최대한 일찍 초기화되어야 합니다. 이렇게 해야 모든 로그가 정확하게 캡처됩니다. @@ -293,23 +293,23 @@ datadogLogs.init({ {{% /tab %}} {{< /tabs >}} -#### 추적 동의 구성(GDPR 규정 준수) +#### 추적 동의 구성(GDPR 규정 준수) {#configure-tracking-consent-gdpr-compliance} RUM 브라우저 SDK는 GDPR, CCPA 및 유사한 규정을 준수하기 위해 [초기화 시 추적 동의 값][5]을 제공하게 해줍니다. -#### 콘텐츠 보안 정책(CSP) 구성 +#### 콘텐츠 보안 정책(CSP) 구성 {#configure-content-security-policy-csp} 사이트에서 Datadog 콘텐츠 보안 정책(CSP) 통합을 사용하는 경우, 추가적인 설정 단계를 [CSP 설명서][6]에서 참조하세요. -### 4단계 데이터 시각화 +### 4단계 - 데이터 시각화 {#step-4-visualize-your-data} -이렇게 해서 로그 기본 설정을 완료했으므로, 애플리케이션이 브라우저 로그를 수집하며 실시간으로 문제 모니터링과 디버깅을 시작할 수 있습니다. +로그의 기본 설정을 완료했으므로, 애플리케이션이 브라우저 로그를 수집하고 실시간으로 문제를 모니터링하고 디버깅할 수 있습니다. [Log Explorer][7]에서 로그를 시각화합니다. -## 사용량 +## 사용량 {#usage} -### 사용자 지정 로그 +### 사용자 지정 로그 {#custom-logs} Datadog 브라우저 로그 SDK가 초기화된 후 API를 사용해 사용자 지정 로그 항목을 Datadog에 직접 전송합니다. @@ -335,7 +335,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -349,7 +349,7 @@ window.DD_LOGS && window.DD_LOGS.logger.info('Button clicked', { name: 'buttonNa {{% /tab %}} {{< /tabs >}} -#### 결과 +#### 결과 {#results} NPM, CDN async 또는 CDN sync 사용 시 결과는 모두 같음: @@ -381,19 +381,19 @@ NPM, CDN async 또는 CDN sync 사용 시 결과는 모두 같음: 로그 SDK가 기본적으로 다음 정보를 추가합니다(RUM SDK가 있는 경우 더 많은 필드가 추가될 수 있음). - `date` - `view.url` - `view.referrer` - `session_id`(세션이 사용된 경우에만) +- `date` +- `view.url` +- `view.referrer` +- `session_id`(세션이 사용된 경우에만) Datadog 백엔드는 다음과 같은 더 많은 필드를 추가합니다. - `http.useragent` - `network.client.ip` +- `http.useragent` +- `network.client.ip` -### Error tracking +### 오류 추적 {#error-tracking} -Datadog 브라우저 로그 SDK를 사용하면 선택 사항인 `error` 파라미터(SDK v4.36.0+에서 사용 가능)를 사용하여 수동으로 오류를 추적할 수 있습니다. [JavaScript 오류][8]의 인스턴스가 제공된 경우, SDK가 해당 오류에서 관련 정보(종류, 메시지, 스택 트레이스)를 추출합니다. +Datadog 브라우저 로그 SDK를 사용하면 선택 사항인 `error` 파라미터(SDK v4.36.0 이상에서 사용 가능)를 사용하여 수동으로 오류를 추적할 수 있습니다. [JavaScript 오류][8]의 인스턴스가 제공된 경우, SDK가 해당 오류에서 관련 정보(종류, 메시지, 스택 트레이스)를 추출합니다. ```typescript logger.{debug|info|warn|error}(message: string, messageContext?: Context, error?: Error) @@ -429,7 +429,7 @@ try { } ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -449,7 +449,7 @@ try { {{% /tab %}} {{< /tabs >}} -#### 결과 +#### 결과 {#results-1} NPM, CDN async 또는 CDN sync 사용 시 결과는 모두 같음: @@ -469,7 +469,7 @@ NPM, CDN async 또는 CDN sync 사용 시 결과는 모두 같음: } ``` -### 일반 로거 함수 +### 일반 로거 함수 {#generic-logger-function} Datadog 브라우저 로그 SDK는 편의상 로거에 약식 함수(`.debug`, `.info`, `.warn`, `.error`)를 추가합니다. 일반 로거 함수도 사용할 수 있으며, 이 경우 `status` 파라미터가 노출됩니다. @@ -495,7 +495,7 @@ window.DD_LOGS.onReady(function() { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -509,22 +509,22 @@ window.DD_LOGS && window.DD_LOGS.logger.log(,, {{% /tab %}} {{< /tabs >}} -#### 플레이스홀더 +#### 자리표시자 {#placeholders} -위 예시에서 사용한 플레이스홀더의 설명은 아래를 참조하세요. +위 예시의 자리표시자는 아래에 설명되어 있습니다. -| 플레이스홀더 | 설명 | -| | | -| `` | Datadog가 전체 인덱싱한 로그의 메시지입니다. | -| `` | 유효한 JSON 개체이며, ``에 연결된 모든 특성을 포함합니다. | -| `` | 로그의 상태이며, 허용되는 상태 값은 `debug`, `info`, `warn` 또는 `error`입니다. | +| 자리표시자 | 설명 | +| ------------------- | --------------------------------------------------------------------------------------- | +| `` | Datadog이 전체 인덱싱한 로그의 메시지입니다. | +| `` | 유효한 JSON 개체이며, ``에 연결된 모든 속성을 포함합니다. | +| `` | 로그의 상태. 허용되는 상태 값은 `debug`, `info`, `warn` 또는 `error`입니다. | | `` | [JavaScript 오류][8] 개체의 인스턴스입니다. | -## 고급 사용 +## 고급 사용 {#advanced-usage} -### 브라우저 로그에서 민감한 데이터 스크러빙 +### 브라우저 로그에서 민감한 데이터 스크러빙 {#scrub-sensitive-data-from-your-browser-logs} -브라우저 로그에 삭제해야 하는 민감한 정보가 포함된 경우, 브라우저 로그 컬렉터를 초기화할 때 `beforeSend` 콜백을 사용해 브라우저 SDK가 민감한 시퀀스를 스크러빙하도록 구성하세요. +브라우저 로그에 삭제해야 하는 민감한 정보가 포함되어 있다면 Browser Log Collector를 초기화할 때 `beforeSend` 콜백을 사용해 민감한 시퀀스를 스크러빙하도록 Browswer SDK를 구성하세요. `beforeSend` 콜백 함수는 두 가지 인수인 `log` 이벤트 및 `context`로 호출할 수 있습니다. 이 함수를 사용하면 Datadog로 전송되기 전에 브라우저 SDK가 수집한 각 로그에 액세스할 수 있으며, 컨텍스트를 사용해 로그 속성을 조정할 수 있습니다. 컨텍스트에는 이벤트와 관련되지만, 이벤트에 꼭 포함되는 것은 아닌 추가 정보가 포함됩니다. 일반적으로 이 정보를 사용해 이벤트를 [강화][11]하거나 [폐기][12]할 수 있습니다. @@ -532,12 +532,12 @@ window.DD_LOGS && window.DD_LOGS.logger.log(,, function beforeSend(log, context) ``` -잠재적 `context` 값은 다음과 같습니다. +가능한 `context` 값은 다음과 같습니다. | 값 | 데이터 유형 | 사용 사례 | -|||| -| `isAborted` | 부울 | 네트워크 로그 이벤트의 경우, 이 속성을 통해 애플리케이션이 실패하는 요청을 중단했는지 여부를 알 수 있습니다. 이 경우, 이 이벤트가 고의로 중단될 가능성이 있으므로 이벤트를 보내지 않는 것이 좋습니다. | -| `handlingStack` | 문자열 | 로그 이벤트가 처리된 스택 트레이스입니다. 이것을 사용해 로그를 어느 [마이크로프런트엔드][9]에서 보냈는지 확인할 수 있습니다. | +|-------|---------|------------| +| `isAborted` | Boolean | 네트워크 로그 이벤트에서 이 속성은 실패한 요청이 애플리케이션에 의해 중단되었는지를 알려줍니다. 이 경우, 해당 전송이 의도적으로 중단될 수 있기 때문에 이 이벤트 전송을 다시 고려해봐야 할 수 있습니다. | +| `handlingStack` | String| 로그 이벤트가 처리된 스택 트레이스입니다. 이것을 사용해 로그를 어느 [마이크로프론트엔드][9]에서 보냈는지 확인할 수 있습니다. | 웹 애플리케이션 URL에서 이메일 주소를 삭제하는 방법: @@ -573,7 +573,7 @@ window.DD_LOGS.onReady(function() { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -597,15 +597,15 @@ window.DD_LOGS && 다음 속성은 SDK가 자동으로 수집하며, 민감한 데이터를 포함할 수 있습니다. -| 특성 | 유형 | 설명 | -| | | | -| `view.url` | 문자열 | 활성 웹 페이지의 URL입니다. | -| `view.referrer` | 문자열 | 현재 요청된 페이지로 연결된 링크를 따라온 이전 웹 페이지의 URL입니다. | -| `message` | 문자열 | 로그의 내용입니다. | -| `error.stack` | 문자열 | 오류에 관한 스택 트레이스 또는 보충 정보입니다. | -| `http.url` | 문자열 | HTTP URL입니다. | +| 속성 | 유형 | 설명 | +| --------------- | ------ | ------------------------------------------------------------------------------------------------ | +| `view.url` | String | 활성 웹 페이지의 URL입니다. | +| `view.referrer` | String | 현재 요청된 페이지로 연결된 링크가 포함되어 있던 이전 웹 페이지의 URL입니다. | +| `message` | String | 로그의 내용입니다. | +| `error.stack` | String | 오류에 대한 스택 트레이스 또는 보완 정보입니다. | +| `http.url` | String | HTTP URL입니다. | -### 특정 로그 삭제 +### 특정 로그 삭제 {#discard-specific-logs} `beforeSend` 콜백 함수를 사용하면 로그를 Datadog로 보내기 전에 삭제할 수도 있습니다. @@ -647,7 +647,7 @@ window.DD_LOGS.onReady(function() { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -671,11 +671,11 @@ window.DD_LOGS && {{% /tab %}} {{< /tabs >}} -### 여러 로거 정의 +### 여러 로거 정의 {#define-multiple-loggers} Datadog 브라우저 로그 SDK에는 기본 로거가 포함되지만, 다른 로거를 정의할 수도 있습니다. -#### 새 로거 생성 +#### 새 로거 생성 {#create-a-new-logger} Datadog 브라우저 로그 SDK가 초기화되고 나서, API `createLogger`를 사용해 새 로거를 정의합니다. @@ -687,9 +687,9 @@ createLogger (name: string, conf?: { }) ``` -**참고**: 이러한 파라미터는 [setLevel](#filterbystatus), [setHandler](#changethedestination) 및 [setContext](#overwritecontext) API를 사용해 설정할 수 있습니다. +**참고**: 이러한 파라미터는 [setLevel](#filter-by-status), [setHandler](#change-the-destination) 및 [setContext](#overwrite-context) API로 설정할 수 있습니다. -#### 사용자 지정 로거 가져오기 +#### 사용자 지정 로거 가져오기 {#get-a-custom-logger} 로거를 생성하고 나서, 다음 API를 사용해 JavaScript 코드의 아무 부분에서나 액세스합니다. @@ -745,7 +745,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -776,24 +776,24 @@ if (window.DD_LOGS) { {{% /tab %}} {{< /tabs >}} -### 컨텍스트 덮어쓰기 +### 컨텍스트 덮어쓰기 {#overwrite-context} -#### 글로벌 컨텍스트 +#### 전역 컨텍스트 {#global-context} Datadog 브라우저 로그 SDK가 초기화되고 나면, 다음과 같이 할 수 있습니다. - `setGlobalContext (context: object)` API를 사용해 모든 로거에 대한 전체 컨텍스트를 설정합니다. - `setGlobalContextProperty (key: string, value: any)` API를 사용해 모든 로거에 컨텍스트를 추가합니다. - `getGlobalContext ()` API를 사용해 전체 글로벌 컨텍스트를 가져옵니다. - `removeGlobalContextProperty (key: string)` API를 사용해 컨텍스트 속성을 제거합니다. - `clearGlobalContext ()` API를 사용해 기존 컨텍스트 속성을 모두 지웁니다. +- `setGlobalContext (context: object)` API를 사용해 모든 로거에 대한 전체 컨텍스트를 설정합니다. +- `setGlobalContextProperty (key: string, value: any)` API를 사용해 모든 로거에 컨텍스트를 추가합니다. +- `getGlobalContext ()` API를 사용해 전체 글로벌 컨텍스트를 가져옵니다. +- `removeGlobalContextProperty (key: string)` API를 사용해 컨텍스트 속성을 제거합니다. +- `clearGlobalContext ()` API를 사용해 기존 컨텍스트 속성을 모두 지웁니다. > 로그 브라우저 SDK v4.17.0에서는 여러 API 이름이 다음과 같이 업데이트되었습니다. > -`getLoggerGlobalContext` 대신 > `getGlobalContext` -`setLoggerGlobalContext` 대신 > `setGlobalContext` -`addLoggerGlobalContext` 대신 > `setGlobalContextProperty` -`removeLoggerGlobalContext` 대신 > `removeGlobalContextProperty` +`getLoggerGlobalContext` 대신 > - `getGlobalContext` +`setLoggerGlobalContext` 대신 > - `setGlobalContext` +`addLoggerGlobalContext` 대신 > - `setGlobalContextProperty` +`removeLoggerGlobalContext` 대신 > - `removeGlobalContextProperty` {{< tabs >}} {{% tab "NPM" %}} @@ -853,7 +853,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -881,15 +881,15 @@ window.DD_LOGS && window.DD_LOGS.getGlobalContext() // => {} {{% /tab %}} {{< /tabs >}} -#### 사용자 컨텍스트 +#### 사용자 컨텍스트 {#user-context} Datadog 로그 SDK는 `User`를 생성된 로그와 연결하는 편리한 함수를 제공합니다. - `setUser (newUser: User)` API를 사용해 사용자를 모든 로그에 대해 설정합니다. - `setUserProperty (key: string, value: any)` API를 사용해 모든 로거에 대하여 사용자 속성을 추가하거나 수정합니다. - `getUser ()` API를 사용해 현재 저장된 사용자를 가져옵니다. - `removeUserProperty (key: string)` API를 사용해 사용자 속성을 제거합니다. - `clearUser ()` API를 사용해 기존 사용자 속성을 모두 지웁니다. +- `setUser (newUser: User)` API를 사용해 모든 로거에 대한 사용자를 설정합니다. +- `setUserProperty (key: string, value: any)` API를 사용해 사용자 속성을 모든 로거에 추가하거나 수정합니다. +- `getUser ()` API를 사용해 현재 저장된 사용자를 가져옵니다. +- `removeUserProperty (key: string)` API를 사용해 사용자 속성을 제거합니다. +- `clearUser ()` API를 사용해 기존 사용자 속성을 모두 지웁니다. **참고**: 사용자 컨텍스트가 글로벌 컨텍스트 전에 적용됩니다. 따라서 글로벌 컨텍스트에 포함된 모든 사용자 속성이 로그 생성 시 사용자 컨텍스트를 재정의하게 됩니다. @@ -947,7 +947,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -975,15 +975,15 @@ window.DD_LOGS && window.DD_LOGS.getUser() // => {} {{% /tab %}} {{< /tabs >}} -#### 계정 컨텍스트 +#### 계정 컨텍스트 {#account-context} Datadog 로그 SDK는 `Account`를 생성된 로그와 연결하는 편리한 함수를 제공합니다. - `setAccount (newAccount: Account)` API를 사용해 계정을 모든 로거에 대해 설정합니다. - `setAccountProperty (key: string, value: any)` API를 사용해 모든 로거에 대하여 계정 속성을 추가하거나 수정합니다. - `getAccount ()` API를 사용해 현재 저장된 계정을 가져옵니다. - `removeAccountProperty (key: string)` API를 사용해 계정 속성을 제거합니다. - `clearAccount ()` API를 사용해 기존 계정 속성을 모두 지웁니다. +- `setAccount (newAccount: Account)` API를 사용해 모든 로거에 대한 계정을 설정합니다. +- `setAccountProperty (key: string, value: any)` API를 사용해 계정 속성을 모든 로거에 추가하거나 수정합니다. +- `getAccount ()` API를 사용해 현재 저장된 계정을 가져옵니다. +- `removeAccountProperty (key: string)` API를 사용해 계정 속성을 제거합니다. +- `clearAccount ()` API를 사용해 기존 계정 속성을 모두 지웁니다. **참고**: 계정 컨텍스트가 글로벌 컨텍스트 전에 적용됩니다. 따라서 글로벌 컨텍스트에 포함된 모든 계정 속성이 로그 생성 시 계정 컨텍스트를 재정의하게 됩니다. @@ -1037,7 +1037,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -1063,32 +1063,32 @@ window.DD_LOGS && window.DD_LOGS.getAccount() // => {} {{% /tab %}} {{< /tabs >}} -#### 컨텍스트 수명 주기 +#### 컨텍스트 수명 주기 {#contexts-life-cycle} 기본적으로 컨텍스트는 현재 페이지 메모리에 저장되며, 이는 다음과 같은 의미입니다. - 페이지를 완전히 다시 로드한 이후 유지되지 않음 - 같은 세션의 다른 탭 또는 창에서 공유되지 않음 +- 페이지를 완전히 다시 로드한 이후 유지되지 않음 +- 동일한 세션의 다른 탭이나 창에서 공유되지 않음 컨텍스트를 세션의 모든 이벤트에 추가하려면 모든 페이지에 연결해야 합니다. 브라우저 SDK의 v4.49.0에 `storeContextsAcrossPages` 구성 옵션이 도입되어서, 그러한 컨텍스트를 [`localStorage`][9]에 저장할 수 있으므로 다음과 같은 동작이 가능합니다. - 전체 다시 로드 이후에도 컨텍스트가 보존됨 - 동일한 출처에서 열린 탭 간에 컨텍스트가 동기화됨 +- 전체 다시 로드 이후에도 컨텍스트가 보존됨 +- 동일한 출처에서 열린 여러 탭 간에 컨텍스트가 동기화됨 단, 이 기능에는 몇 가지 **제한 사항**이 있습니다. - `localStorage`에 저장된 데이터는 사용자 세션보다 오래 지속되므로 이러한 상황에서 개인 식별 정보(PII)를 설정하는 것은 권장되지 않습니다. - `localStorage` 데이터는 동일한 출처 (login.site.com ≠ app.site.com)에서만 공유되므로 이 기능은 `trackSessionAcrossSubdomains` 옵션과 호환되지 않습니다. - `localStorage`는 출처별로 5 MiB라는 제한이 있으므로, `localStorage`에 저장된 애플리케이션별 데이터, Datadog 컨텍스트 및 기타 타사 데이터는 이 한도 내에 있어야 문제를 방지할 수 있습니다. +- `localStorage`가 사용자 세션보다 수명이 길기 때문에 그러한 컨텍스트에 개인 식별 정보(PII)를 설정하는 것은 권장되지 않음 +- `localStorage` 데이터는 동일한 출처에서만 공유되므로(login.site.com ≠ app.site.com) 이 기능은 `trackSessionAcrossSubdomains` 옵션과 호환되지 않음 +- `localStorage`는 출처별로 5MiB로 제한되므로, `localStorage`에 저장된 애플리케이션별 데이터, Datadog 컨텍스트 및 기타 타사 데이터는 이 한도 이내여야만 문제 발생을 방지할 수 있음 -#### 로거 컨텍스트 +#### 로거 컨텍스트 {#logger-context} 로거가 생성되고 나면, 다음과 같이 할 수 있습니다. - `setContext (context: object)` API를 사용해 로거에 대하여 전체 컨텍스트를 설정합니다. - `setContextProperty (key: string, value: any)` API를 사용해 로거에서 컨텍스트 속성을 설정: +- `setContext (context: object)` API를 사용해 로거에 대한 전체 컨텍스트를 설정합니다. +- `setContextProperty (key: string, value: any)` API를 사용해 로거에 컨텍스트 속성을 설정합니다. {{< tabs >}} {{% tab "NPM" %}} @@ -1114,7 +1114,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -1130,7 +1130,7 @@ window.DD_LOGS && window.DD_LOGS.setContextProperty('referrer', document.referre {{% /tab %}} {{< /tabs >}} -### 상태 기준 필터링 +### 상태별 필터링 {#filter-by-status} Datadog 브라우저 로그 SDK가 초기화된 후 로거에 대한 최소 로그 수준이 API를 사용해 설정됩니다. @@ -1158,7 +1158,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -1172,13 +1172,13 @@ window.DD_LOGS && window.DD_LOGS.logger.setLevel('') {{% /tab %}} {{< /tabs >}} -### 대상 변경 +### 대상 변경 {#change-the-destination} 기본적으로 Datadog 브라우저 로그 SDK가 생성한 로거는 Datadog로 로그를 보냅니다. Datadog 브라우저 로그 SDK가 초기화되고 나면, 로거를 구성해 다음과 같이 할 수 있습니다. - `console` 및 Datadog(`http`)에 로그 보내기 - `console`에만 로그 보내기 - 로그를 보내지 않음(`silent`) +- `console` 및 Datadog(`http`)에 로그 보내기 +- `console`에만 로그 보내기 +- 로그를 보내지 않음(`silent`) ```typescript setHandler (handler?: 'http' | 'console' | 'silent' | Array) @@ -1205,7 +1205,7 @@ window.DD_LOGS.onReady(function () { }) ``` -**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백에서 래핑되어야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. +**참고**: 초기 API 호출은 `window.DD_LOGS.onReady()` 콜백 내에서 래핑해야 합니다. 이렇게 해야 SDK가 적절히 로드된 다음에만 코드가 실행됩니다. {{% /tab %}} {{% tab "CDN sync" %}} @@ -1222,21 +1222,21 @@ window.DD_LOGS && window.DD_LOGS.logger.setHandler(['', '']) {{% /tab %}} {{< /tabs >}} -### 사용자 추적 동의 +### 사용자 추적 동의 {#user-tracking-consent} 로그 브라우저 SDK는 GDPR, CCPA 및 유사한 규정을 준수하기 위해 초기화 시 추적 동의 값을 제공하게 해줍니다. `trackingConsent` 초기화 파라미터는 다음 값 중 하나일 수 있습니다. 1. `"granted"`: 로그 브라우저 SDK가 데이터를 수집하기 시작하고 이를 Datadog로 보냅니다. -2. `"notgranted"`: 로그 브라우저 SDK가 데이터를 수집하지 않습니다. +2. `"not-granted"`: Logs Browser SDK가 데이터를 수집하지 않습니다. -로그 브라우저 SDK가 초기화된 다음에 추적 동의 값을 변경하려면 `setTrackingConsent()` API 호출을 사용합니다. 로그 브라우저 SDK는 새 값에 따라 동작을 변경합니다. +Logs Browser SDK가 초기화된 이후에 추적 동의 값을 변경하려면 `setTrackingConsent()` API 호출을 사용하세요. 로그 브라우저 SDK는 새 값에 따라 동작을 변경합니다. - `"granted"`에서 `"notgranted"`로 변경된 경우, 로그 세션이 중지되고 더 이상 데이터를 Datadog로 보내지 않습니다. - `"notgranted"`에서 `"granted"`로 변경된 경우, 활성 상태인 이전 세션이 없는 경우 새 로그 세션이 생성되고 데이터 수집이 재개됩니다. +- `"granted"`에서 `"not-granted"`로 변경되면 Logs 세션이 중지되고 데이터가 더 이상 Datadog으로 전송되지 않습니다. +- `"not-granted"`에서 `"granted"`로 변경되면 새 Logs 세션이 생성되고(활성인 이전 세션이 없는 경우), 데이터 수집이 재개됩니다. -이 상태는 탭 간에 동기화되지 않고, 탐색 간에 지속되지도 않습니다. 사용자에게는 로그 브라우저 SDK 초기화 중에 또는 `setTrackingConsent()`를 사용해 사용자 결정을 제공할 책임이 있습니다. +이 상태는 탭 간에 동기화되지 않고, 탐색 간에 지속되지도 않습니다. 사용자에게는 Logs Browser SDK 초기화 중에 또는 `setTrackingConsent()`를 사용하여 사용자 결정을 제공할 책임이 있습니다. `setTrackingConsent()`를 `init()` 이전에 사용한 경우, 제공된 값이 초기화 파라미터보다 우선합니다. @@ -1291,7 +1291,7 @@ acceptCookieBannerButton.addEventListener('click', () => { {{% /tab %}} {{< /tabs >}} -### 내부 컨텍스트 액세스 +### 내부 컨텍스트 액세스 {#access-internal-context} Datadog 브라우저 로그 SDK가 초기화되고 나면, 해당 SDK의 내부 컨텍스트에 액세스할 수 있습니다. 이렇게 하면 `session_id`에 액세스할 수 있습니다. @@ -1332,12 +1332,12 @@ window.DD_LOGS && window.DD_LOGS.getInternalContext() // { session_id: "xxxx-xxx -[1]: https://app.datadoghq.com/organizationsettings/clienttokens -[4]: https://datadoghq.dev/browsersdk/interfaces/_datadog_browserlogs.LogsInitConfiguration.html -[5]: /ko/logs/log_collection/javascript/#usertrackingconsent -[6]: /ko/integrations/content_security_policy_logs/#usecspwithrealusermonitoringandsessionreplay +[1]: https://app.datadoghq.com/organization-settings/client-tokens +[4]: https://datadoghq.dev/browser-sdk/interfaces/_datadog_browser-logs.LogsInitConfiguration.html +[5]: /ko/logs/log_collection/javascript/#user-tracking-consent +[6]: /ko/integrations/content_security_policy_logs/#use-csp-with-real-user-monitoring-and-session-replay [7]: /ko/logs/explorer/ -[8]: -[9]: https://developer.mozilla.org/enUS/docs/Web/API/Window/localStorage -[11]: /ko/real_user_monitoring/browser/advanced_configuration/?tab=npm#enrichandcontrolrumdata -[12]: /ko/real_user_monitoring/browser/advanced_configuration/?tab=npm#discardarumevent \ No newline at end of file +[8]: +[9]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage +[11]: /ko/real_user_monitoring/browser/advanced_configuration/?tab=npm#enrich-and-control-rum-data +[12]: /ko/real_user_monitoring/browser/advanced_configuration/?tab=npm#discard-a-rum-event \ No newline at end of file diff --git a/content/ko/logs/log_configuration/processors/_index.md b/content/ko/logs/log_configuration/processors/_index.md new file mode 100644 index 00000000000..1bf1accc7a6 --- /dev/null +++ b/content/ko/logs/log_configuration/processors/_index.md @@ -0,0 +1,79 @@ +--- +algolia: + tags: + - logs processors + - logs parsing + - Extracting Attributes + - Remapping attributes +aliases: +- /ko/logs/processing/processors/ +description: Datalog Log Management의 프로세서를 사용해 로그 구문 분석, 보강 및 구조화 +further_reading: +- link: /logs/log_configuration/pipelines + tag: 설명서 + text: Datadog Pipelines 살펴보기 +- link: /logs/logging_without_limits/ + tag: 설명서 + text: Logging without Limits* +- link: /logs/explorer/ + tag: 설명서 + text: 로그 탐색 방법 알아보기 +- link: https://www.youtube.com/watch?v=OztSU3JzfC8&list=PLdh-RwQzDsaM9Sq_fi-yXuzhmE7nOlqLE&index=4&t=245s + tag: 비디오 + text: '팁 및 요령: 리테일 엔드포인트에서 로그에 비즈니스 데이터 추가' +- link: https://learn.datadoghq.com/courses/log-pipelines + tag: 학습 센터 + text: 로그 파이프라인 구축 및 관리 +- link: https://learn.datadoghq.com/courses/integration-pipelines + tag: 학습 센터 + text: 기본 통합 파이프라인을 사용하여 로그 처리 +title: 프로세서 +--- +## 개요 {#overview} + +
    이 설명서에 개괄적으로 소개된 프로세서는 클라우드 기반 로깅 환경에 국한합니다. 온프레미스 로그를 구문 분석, 구조화 및 강화하려면 Observability Pipelines를 참조하세요.
    + +프로세서는 [파이프라인][1] 내에서 실행되어 데이터 구조화 작업을 완료하고 로그를 강화하기 위한 속성을 생성합니다. + +{{< img src="logs/log_configuration/processor/processor_overview.png" alt="프로세서" style="width:100%" >}} + +[로그 구성 설정][1]에서 [Grok 파서][3] 또는 [날짜 리매퍼][4]와 같은 프로세서를 구성하여 로그를 강화하고 패싯 검색을 향상할 속성을 추출, 생성 및 리매핑할 수 있습니다. + +**참고**: + +- 구조화된 로그는 유효한 형식으로 전송해야 합니다. 구조에 구문 분석할 수 없는 잘못된 문자가 포함된 경우, [mask_sequences][2] 기능을 사용해 Agent 수준에서 삭제해야 합니다. + +- 파이프라인당 최대 20개의 프로세서를 사용하는 것이 모범 사례로 권장됩니다. + +## 프로세서 유형 {#processor-types} + +{{< whatsnext desc="자세히 알아보려면 프로세서 유형을 선택하세요.">}} + {{< nextlink href="logs/log_configuration/processors/arithmetic_processor">}}산술 프로세서: 기존 숫자 속성에 수식을 적용한 결과를 로그의 새로운 새 속성으로 추가합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/array_processor">}}배열 프로세서: 로그의 JSON 배열에서 값을 추출, 집계 또는 변환합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/remapper">}}속성 리매퍼: 원본 속성 또는 태그를 다른 대상 속성 또는 태그로 리매핑합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/category_processor">}}카테고리 프로세서: 그룹화 및 분류를 위해 검색 쿼리 일치 여부에 따라 로그에 새 속성을 추가합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/decoder_processor">}}디코더 프로세서: 바이너리-텍스트 인코딩된 필드(예: Base64 또는 Hex)를 원래 표현으로 변환합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/geoip_parser">}}GeoIP 파서: IP 주소 속성에서 대륙, 국가, 하위 지역 또는 도시 정보를 추출합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/grok_parser">}}Grok 파서: 로그 메시지 또는 특정 속성에서 데이터를 추출하고 구조화하기 위한 사용자 지정 구문 분석 규칙을 만듭니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/log_date_remapper">}}로그 날짜 리매퍼: 하나 이상의 속성을 로그의 공식 타임스탬프로 지정합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/log_message_remapper">}}로그 메시지 리매퍼: 하나 이상의 속성을 로그의 공식 메시지로 지정합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/log_status_remapper">}}로그 상태 리매퍼: 하나 이상의 속성을 로그의 공식 심각도 상태로 지정합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/lookup_processor">}}조회 프로세서: 로그 속성을 참조 테이블 또는 매핑 테이블의 사람이 읽을 수 있는 값에 매핑합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/ocsf_processor">}}OCSF 프로세서: 보안 로그를 Open Cybersecurity Schema Framework (OCSF)로 정규화합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/service_remapper">}}서비스 리매퍼: 하나 이상의 속성을 로그의 공식 서비스로 지정합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/span_remapper">}}스팬 리매퍼: 애플리케이션 스팬과 로그 간의 상관관계를 정의합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/string_builder_processor">}}문자열 빌더 프로세서: 기존 속성과 원시 문자열의 템플릿에서 새로운 속성을 생성합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/threat_intel_processor">}}위협 인텔리전스 프로세서: 침해 지표(IoC) 표와 대조하여 로그에 위협 인텔리전스 속성을 추가합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/trace_remapper">}}트레이스 리매퍼: 애플리케이션 트레이스와 로그 간의 상관관계를 정의합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/url_parser">}}URL 파서: URL 속성에서 쿼리 파라미터 및 기타 구성 요소를 추출합니다.{{< /nextlink >}} + {{< nextlink href="logs/log_configuration/processors/user_agent_parser">}}User-Agent 파서: 사용자-에이전트 속성을 분석하여 OS, 브라우저, 장치 및 기타 사용자 데이터를 추출합니다.{{< /nextlink >}} +{{< /whatsnext >}} + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/logs/log_configuration/pipelines/ +[2]: /ko/agent/logs/advanced_log_collection/?tab=configurationfile#scrub-sensitive-data-from-your-logs +[3]: /ko/logs/log_configuration/processors/grok_parser/ +[4]: /ko/logs/log_configuration/processors/log_date_remapper/ \ No newline at end of file diff --git a/content/ko/metrics/custom_metrics/_index.md b/content/ko/metrics/custom_metrics/_index.md new file mode 100644 index 00000000000..8362ab846bd --- /dev/null +++ b/content/ko/metrics/custom_metrics/_index.md @@ -0,0 +1,149 @@ +--- +algolia: + tags: + - custom metrics +aliases: +- /ko/guides/metrics/ +- /ko/metrictypes/ +- /ko/units/ +- /ko/developers/metrics/datagram_shell +- /ko/developers/metrics/custom_metrics/ +- /ko/getting_started/custom_metrics +- /ko/developers/metrics/ +- /ko/metrics/guide/tag-configuration-cardinality-estimation-tool/ +further_reading: +- link: /extend/dogstatsd/ + tag: 설명서 + text: DogStatsD에 대해 자세히 알아보기 +- link: /extend/community/libraries/ + tag: 설명서 + text: 공식 및 커뮤니티에서 생성한 API 및 DogStatsD 클라이언트 라이브러리 +- link: /account_management/billing/custom_metrics/?tab=countrate + tag: 설명서 + text: Custom Metrics 청구 +- link: /metrics/guide/custom_metrics_governance/ + tag: 길라잡이 + text: 사용자 지정 메트릭 거버넌스 모범 사례 +- link: https://www.datadoghq.com/blog/metrics-without-limits/ + tag: 블로그 + text: Metrics without Limits™를 사용하여 사용자 지정 메트릭 볼륨을 동적으로 제어 +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: 블로그 + text: Datadog으로 효과적인 임원 대시보드 설계 +- link: https://learn.datadoghq.com/courses/metrics-governance + tag: 학습 센터 + text: Metrics Governance +title: 사용자 지정 메트릭 +--- +{{< learning-center-callout header="활성화 웨비나 세션에 참가하기" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Metrics">}} + 사용자 지정 메트릭을 위한 Foundation Enablement 세션을 살펴보고 등록하세요. 사용자 지정 메트릭을 활용하여 방문자 수, 평균 고객 장바구니 크기, 요청 지연 시간 또는 사용자 지정 알고리즘의 성능 분포와 같은 애플리케이션 KPI를 추적하는 방법을 알아보세요. +{{< /learning-center-callout >}} + +## 개요 {#overview} + +사용자 지정 메트릭은 방문자 수, 평균 고객 장바구니 크기, 요청 지연 시간 또는 사용자 지정 알고리즘의 성능 분포와 같은 애플리케이션 KPI를 추적하는 데 도움이 됩니다. 사용자 지정 메트릭은 **메트릭 이름과 태그 값(호스트 태그 포함)의 고유한 조합**으로 식별됩니다. 아래 예시에서 메트릭 `request.Latency`는 두 개의 태그 키로부터 네 가지 고유한 태그 값 조합을 가집니다. + +- `endpoint`: 값은 `endpoint:X` 또는 `endpoint:Y`. +- `status`: 값은 `status:200` 또는 `status:400`. + +{{< img src="account_management/billing/custom_metrics/request_latency.png" alt="요청 지연 시간" style="width:80%;">}} + +다음도 사용자 지정 메트릭으로 간주됩니다. +- 일반적으로 [DogStatsD][3] 또는 [사용자 지정 Agent Check][4]를 통해 제출되는 모든 메트릭. +- [Marketplace integrations][29]에서 제출되는 메트릭 +- 일부 [표준 통합](#standard-integrations)은 사용자 지정 메트릭을 생성할 수 있음 +- [Datadog integrations][1] {{< translate key="integration_count" >}} 개 이상에 포함되지 않은 통합에서 제출된 메트릭. + +**참고**: Datadog Admin 역할 또는 `usage_read` 권한이 있는 사용자는 [사용자 상세 정보 페이지][5]에서 계정의 시간당 월평균 사용자 지정 메트릭 수와 상위 5,000개 사용자 지정 메트릭을 확인할 수 있습니다. [사용자 지정 메트릭 계산 방식][6]에 대해 자세히 알아보세요. + +## 사용자 지정 메트릭 속성 {#custom-metrics-properties} + +Datadog Custom Metrics는 아래와 같은 속성을 가집니다. Datadog에서 메트릭을 그래프로 시각화하는 방법은 [메트릭 소개][7]를 참조하세요. + +| 속성 | 설명 | +|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `` | [메트릭 이름](#naming-custom-metrics). | +| `` | 메트릭 값. **참고**: 메트릭 값은 32비트여야 합니다. 값은 날짜나 타임스탬프를 나타내지 않아야 합니다. | +| `` | 메트릭 값과 연결된 타임스탬프. **참고**: 메트릭 타임스탬프는 현재 시각보다 10분 이상 미래이거나 1시간 이상 과거일 수 없습니다. | +| `` | 메트릭과 연결된 태그 집합. | +| `` | 메트릭 유형. [메트릭 유형][8]을 참조하세요. | +| `` | 메트릭의 ``이 [RATE][9] 또는 [COUNT][10]인 경우 해당 [간격][11]을 정의합니다. | + +### 사용자 지정 메트릭 이름 지정 {#naming-custom-metrics} + +다음 사용자 지정 메트릭 명명 규칙을 따라야 합니다. + +* 메트릭 이름은 문자로 시작해야 합니다. +* 메트릭 이름에는 ASCII 영숫자, 밑줄(_), 마침표(.)만 사용할 수 있습니다. + * 공백을 포함한 기타 문자는 밑줄(_)로 변환됩니다. + * 유니코드는 지원되지 _않습니다_. +* 메트릭 이름은 200자를 초과할 수 없습니다. UI 관점에서는 100자 미만을 권장합니다. + +**참고**: Datadog에서는 메트릭 이름의 대소문자를 구분합니다. + +### 메트릭 단위 {#metric-units} + +메트릭 단위는 [Metrics Summary][12]에서 설정하거나 시각화의 그래프 편집기에서 [Unit override][13] 기능을 사용하여 사용자 지정 메트릭 단위를 설정할 수 있습니다. 자세한 내용은 [메트릭 단위][14] 설명서를 참조하세요. + +## 사용자 지정 메트릭 제출 {#submitting-custom-metrics} + +{{< whatsnext desc="Datadog에 메트릭을 전송하는 방법은 여러 가지가 있습니다.">}} + {{< nextlink href="/metrics/custom_metrics/agent_metrics_submission" >}}사용자 지정 Agent 검사{{< /nextlink >}} + {{< nextlink href="/metrics/custom_metrics/dogstatsd_metrics_submission" >}}DogStatsD{{< /nextlink >}} + {{< nextlink href="/metrics/custom_metrics/powershell_metrics_submission" >}}PowerShell{{< /nextlink >}} + {{< nextlink href="/serverless/custom_metrics" >}}AWS Lambda{{< /nextlink >}} + {{< nextlink href="/api/v1/metrics/#submit-metrics" >}}Datadog의 HTTP API{{< /nextlink >}} + {{< nextlink href="/logs/log_configuration/logs_to_metrics/#generate-a-log-based-metric" >}}로그 기반 메트릭 생성{{< /nextlink >}} + {{< nextlink href="/tracing/generate_metrics/" >}}APM 스팬 기반 메트릭 생성{{< /nextlink >}} + {{< nextlink href="/real_user_monitoring/platform/generate_metrics/" >}}RUM 이벤트 기반 메트릭 생성{{< /nextlink >}} + {{< nextlink href="/infrastructure/process/increase_process_retention/#generate-a-process-based-metric" >}}라이브 프로세스 기반 메트릭 생성{{< /nextlink >}} +{{< /whatsnext >}} + +또한 [Datadog 공식 API 및 커뮤니티 기여 API, DogStatsD 클라이언트 라이브러리][15] 중 하나를 사용하여 사용자 지정 메트릭을 제출할 수 있습니다. + +**참고**: 사용자 지정 메트릭 제출에는 강제되는 고정 속도 제한이 없습니다. 기본 할당량을 초과하면 [Datadog의 사용자 지정 메트릭 과금 정책][6]에 따라 비용이 청구됩니다. + +## 표준 통합 {#standard-integrations} + +다음 표준 통합은 사용자 지정 메트릭을 생성할 수 있습니다. + +| 통합 유형 | 통합 | +|------------------------------------------------|------------------------------------------------------------------------------------| +| 기본적으로 350개의 사용자 지정 메트릭으로 제한됩니다. | [ActiveMQ XML][16] / [Go-Expvar][17] / [Java-JMX][18] | +| 사용자 지정 메트릭 수집에 기본 제한이 없습니다. | [Nagios][19] /[PDH Check][20] /[OpenMetrics][21] /[Windows 성능 카운터][22] /[WMI][23] /[Prometheus][21] | +| 사용자 지정 메트릭 수집이 가능하도록 구성할 수 있습니다. | [MySQL][24] /[Oracle][25] /[Postgres][26] /[SQL Server][27] | +| 클라우드 통합에서 전송된 사용자 지정 메트릭 | [AWS][28] | + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/integrations/ +[2]: /ko/account_management/billing/custom_metrics/#standard-integrations +[3]: /ko/metrics/custom_metrics/dogstatsd_metrics_submission/ +[4]: /ko/metrics/custom_metrics/agent_metrics_submission/ +[5]: https://app.datadoghq.com/account/usage/hourly +[6]: /ko/account_management/billing/custom_metrics/#counting-custom-metrics +[7]: /ko/metrics +[8]: /ko/metrics/types/ +[9]: /ko/metrics/types/?tab=rate#metric-types +[10]: /ko/metrics/types/?tab=count#metric-types +[11]: /ko/extend/dogstatsd/data_aggregation/#how-is-aggregation-performed-with-the-dogstatsd-server +[12]: /ko/metrics/summary/#metric-unit +[13]: /ko/dashboards/guide/unit-override/ +[14]: /ko/metrics/units/ +[15]: /ko/extend/community/libraries/ +[16]: /ko/integrations/activemq/#activemq-xml-integration +[17]: /ko/integrations/go_expvar/ +[18]: /ko/integrations/java/ +[19]: /ko/integrations/nagios +[20]: /ko/integrations/pdh_check/ +[21]: /ko/integrations/openmetrics/ +[22]: /ko/integrations/windows_performance_counters/ +[23]: /ko/integrations/wmi_check/ +[24]: /ko/integrations/mysql/ +[25]: /ko/integrations/oracle/ +[26]: /ko/integrations/postgres/ +[27]: /ko/integrations/sqlserver/ +[28]: /ko/integrations/amazon_web_services/ +[29]: /ko/integrations/#cat-marketplace \ No newline at end of file diff --git a/content/ko/network_monitoring/devices/setup.md b/content/ko/network_monitoring/devices/setup.md new file mode 100644 index 00000000000..9f661b05477 --- /dev/null +++ b/content/ko/network_monitoring/devices/setup.md @@ -0,0 +1,153 @@ +--- +aliases: +- /ko/network_monitoring/devices/getting_started/ +description: 라우터, 스위치, 서버, 방화벽 등 네트워크에 연결된 기기를 사용하여 시작하세요. +further_reading: +- link: /network_monitoring/devices/supported_devices + tag: 문서 + text: 지원되는 NDM 기기 +- link: network_monitoring/devices/data/ + tag: 문서 + text: 수집된 NDM 데이터 +- link: https://www.datadoghq.com/blog/diagnose-network-performance-with-snmp-trap-monitoring/ + tag: 블로그 + text: SNMP 트랩을 사용하여 네트워크 성능 문제 모니터링 및 진단 +title: 설정 +--- +## 개요 {#overview} + +Network Device Monitoring은 온프레미스 라우터, 스위치 및 방화벽의 상태와 성능에 대한 통찰력을 제공합니다. Datadog Agent가 네트워크에 접근할 수 있는 호스트에 설치된 후, Datadog Agent는 자동으로 네트워크 기기를 감지하고 즉시 메트릭을 수집할 수 있습니다. + +이 가이드는 호스트에서 Network Device Monitoring을 구성하고, 기기 태그를 보강하며, 기기 프로필을 설정 및 조회하고, NetFlow Monitoring에서 데이터를 조회하며, 제공된 대시보드와 기기 토폴로지 맵에서 데이터를 검증하는 방법을 다룹니다. + +{{< img src="network_device_monitoring/getting_started/ndm_landing_page_2.png" alt="Network Device Monitoring 랜딩 페이지로, 그래프와 인터페이스를 보여줍니다." style="width:100%;" >}} + +## 작동 방식 {#how-it-works} + +다음 다이어그램은 Syslog, SNMP 트랩 및 NetFlow 정보 간의 데이터 흐름을 보여줍니다. 기기들은 다이어그램에 표시된 포트를 통해 Datadog Agent에 관련 정보를 전송합니다(포트는 Agent의 구성에서 필요에 따라 변경할 수 있습니다). API 기반 통합의 경우, Datadog Agent는 공급업체별 `https` API 통합 지침에 따라 온프레미스 또는 클라우드에서 네트워크 기기 공급업체의 소프트웨어 컨트롤러 또는 관리자와 연결됩니다. NDM으로 구성되고 온프레미스 또는 클라우드에 배포된 Datadog Agent는 네트워크에서 수집된 모든 기기 및 네트워크 데이터를 통합하여 포트 `443`에서 HTTPS를 통해 Datadog에 전송합니다. 이는 메트릭, 로그, 트레이스, 모니터링, 대시보드의 통합된 전체 스택 가시성을 제공합니다. + + {{< img src="network_device_monitoring/getting_started/syslog_trap_netflow.png" alt="Syslog, 트랩 및 NetFlow 수집 흐름을 보여주는 NDM 다이어그램." style="width:90%;" >}} + +## 다음 단계 {#next-steps} + +아래 지침에 따라 Datadog을 구성하여 네트워크 기기를 모니터링하세요. + +## 전제 조건 {#prerequisites} + +### Agent 설치 {#install-the-agent} + +[Agent 설치 페이지][1]로 이동하여 호스트(일반적으로 모니터링 대상 기기가 **아닌** 서버)에 [Datadog Agent][2]를 설치하세요.
    + +{{< img src="network_device_monitoring/getting_started/ndm_install_agent.png" alt="Agent 구성 페이지, Ubuntu 설치가 강조되어 있습니다." style="width:100%;" >}} + +## 설정 {#setup} + +### 고가용성 지원 {#high-availability} + +{{< site-region region="gov,gov2" >}} +
    선택한 Datadog 사이트에 대해 Datadog Agent의 고가용성 지원은 제공되지 않습니다.{{< region-param key="dd_site_name" >}}).
    +{{< /site-region >}} + +Network Device Monitoring에서 Datadog Agent의 고가용성(HA) 지원을 통해 활성 Agent와 대기 Agent를 지정할 수 있으며, 활성 Agent에 문제가 발생할 경우 자동으로 장애 조치가 이루어집니다. 이 설정은 Agent를 단일 실패 지점으로부터 제거하여, OS 업데이트 및 Agent 업그레이드와 같은 예기치 않은 인시던트나 계획된 유지보수 중에도 지속적인 모니터링을 유지합니다. + +NDM에서 활성 및 대기 Agent를 HA 쌍으로 구성할 수 있습니다. 활성 Agent가 다운되면 대기 Agent가 90초 이내에 인계받아 새로운 활성 Agent가 됩니다. 또한, 선호하는 활성 Agent를 지정할 수 있으며, NDM은 해당 Agent가 다시 사용 가능해지면 자동으로 복귀합니다. 이 기능은 예정된 유지보수 전에 선제적인 Agent 전환을 가능하게 합니다. + +자세한 내용은 [Datadog Agent의 고가용성 지원][20]을 참조하세요. + +### 구성 {#configuration} + +네트워크 기기를 모니터링하려면 다음 방법 중 하나를 사용하여 SNMP 모니터링을 활성화하세요. + +[개별 기기][3] +: 개별 기기에서 SNMP 모니터링을 구성하세요. + +[Autodiscovery][4] +: Autodiscovery를 사용하여 SNMP 모니터링을 구성하세요. + +[Ping][5] +: SNMP 검사를 구성하여 기기에 ICMP 핑을 전송하세요. + +[Syslog][22] +: 기기가 Syslog 메시지를 전송하도록 구성하세요. + +[VPN 모니터링][21] +: VPN 모니터링을 구성하여 기기의 VPN 터널을 모니터링하세요. + +### 네트워크 기기에 태그 {#enrich-network-devices-with-tags} 추가 + +NDM이 기기에 구성된 후, 다음 방법을 사용하여 네트워크 기기 태그를 추가하여 더욱 보강할 수 있습니다. + +[Datadog Agent][2] +: Agent는 [개별 기기][3]를 구성하거나 [Autodiscovery][4]를 통해 기기 태그를 수집할 수 있습니다. + +[기기 프로필][6] +: 앱 내에서 기기 프로필을 직접 생성하여 특정 메트릭 및 태그를 수집하고 사용자 정의하도록 Agent를 구성합니다. + +[ServiceNow 통합][7] +: ServiceNow의 CMDB(구성 관리 데이터베이스)에서 정의된 데이터로 Datadog Network Device Monitoring으로 모니터링되는 네트워크 기기를 동적으로 보강합니다. + +[Network Device Monitoring API](#use-the-network-api) +: 네트워크 기기에 태그를 프로그래밍 방식으로 추가하기 위해 Network Device Monitoring API를 활용합니다. + +### 메트릭 및 태그를 사용자 정의하세요 {#customize-metrics-and-tags} + +[지원되는 기기][9] 페이지에서 기본 제공 기기 프로필을 확인한 후, 기기의 메트릭 및 태그를 사용자 정의하세요. 메트릭을 편집하거나 추가하고 싶다면 다음 옵션을 사용할 수 있습니다. + +[기기 프로필][10] +: Datadog Agent 파일에서 기기 프로필을 사용하여 메트릭 및 태그를 직접 편집하세요.`yaml` + +[GUI 기반 프로필 작성][6] +: Datadog Network Monitoring의 GUI 기반 기기 온보딩 경험을 활용하여 기기에 사용자 정의 메트릭 및 태그를 추가하세요. + +### NetFlow Monitoring {#netflow-monitoring} + +[NetFlow Monitoring][11]을 구성하여 NetFlow 지원 기기의 흐름 레코드를 시각화하고 모니터링하세요. + +{{< img src="network_device_monitoring/netflow/home.png" alt="상위 소스, 목적지, 프로토콜, 소스 포트, 목적지 포트 및 기기 트렌드에 대한 탭이 포함된 NetFlow Monitoring 페이지" style="width:100%;" >}} + +## 데이터를 검증하세요{#validate-your-data} + +- [네트워크 기기][12] 페이지에서 전체 네트워크 인프라 모니터링을 시작하세요. +- Datadog의 기본 제공 대시보드에서 수집된 메트릭을 확인하세요. + - [모니터링된 모든 기기의 개요][13] + - [네트워크 기기의 인터페이스 성능][14] +- [기기 토폴로지 맵][15]을 사용하여 기기의 문제를 식별하고 해결하세요. + +## 네트워크 API를 사용하세요{#use-the-network-api} + +- [네트워크 API][8]를 사용하여 네트워크 기기에 대한 다음 정보를 추출하세요. + * [기기의 인터페이스 목록을 가져옵니다.][16] + - [기기의 태그 목록을 가져옵니다.][17] + - [기기의 태그 목록을 업데이트합니다.][18] + +## 문제 해결 {#troubleshooting} + +- NDM 문제 해결에 대한 자세한 정보는 Network Device Monitoring [문제 해결][19] 페이지를 참조하세요. + + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/account/settings/agent/latest +[2]: /ko/agent +[3]: /ko/network_monitoring/devices/snmp_metrics/?tab=snmpv2#monitoring-individual-devices +[4]: /ko/network_monitoring/devices/snmp_metrics/#autodiscovery +[5]: /ko/network_monitoring/devices/ping +[6]: /ko/network_monitoring/devices/guide/device_profiles/ +[7]: https://docs.datadoghq.com/ko/integrations/servicenow/#network-device-tagging +[8]: /ko/api/latest/network-device-monitoring/ +[9]: /ko/network_monitoring/devices/supported_devices +[10]: /ko/network_monitoring/devices/profiles +[11]: /ko/network_monitoring/netflow/ +[12]: https://app.datadoghq.com/devices +[13]: https://app.datadoghq.com/dash/integration/30409/datacenter-overview +[14]: https://app.datadoghq.com/dash/integration/30417/interface-performance +[15]: /ko/network_monitoring/devices/device_topology_map +[16]: /ko/api/latest/network-device-monitoring/#get-the-list-of-interfaces-of-the-device +[17]: /ko/api/latest/network-device-monitoring/#get-the-list-of-tags-for-a-device +[18]: /ko/api/latest/network-device-monitoring/#update-the-tags-for-a-device +[19]: /ko/network_monitoring/devices/troubleshooting +[20]: /ko/integrations/guide/high_availability +[21]: /ko/network_monitoring/devices/vpn_monitoring +[22]: /ko/network_monitoring/devices/syslog \ No newline at end of file diff --git a/content/ko/network_monitoring/devices/snmp_metrics.md b/content/ko/network_monitoring/devices/snmp_metrics.md index 4b3d82f5f2c..4e27212bd99 100644 --- a/content/ko/network_monitoring/devices/snmp_metrics.md +++ b/content/ko/network_monitoring/devices/snmp_metrics.md @@ -2,58 +2,57 @@ further_reading: - link: /network_monitoring/devices/profiles tag: 설명서 - text: 네트워크 장치 모니터링 프로필 사용 + text: Network Device Monitoring을 통해 프로필 사용 - link: https://www.datadoghq.com/knowledge-center/network-monitoring/snmp-monitoring/ - tag: 센터 지식 + tag: 지식 센터 text: SNMP 모니터링 개요 - link: https://www.datadoghq.com/blog/monitor-snmp-with-datadog/ tag: 블로그 - text: Datadog와 SNMP 모니터링하기 + text: Datadog으로 SNMP 모니터링 title: SNMP 메트릭 --- +## 설치 {#installation} -## 설치 +Network Device Monitoring은 [Datadog Agent][1] 패키지에 포함된 SNMP 통합에 의존하며, SNMP의 세 가지 버전 `SNMPv1`, `SNMPv2`, `SNMPv3`를 모두 지원합니다. 탐색 중에 SNMP 포트(기본값 161)가 폴링됩니다. 응답이 있고 일치하는 프로필이 있는 경우 기기는 발견된 것으로 간주됩니다. -Network Device Monitoring은 [Datadog Agent][1] 패키지에 포함된 SNMP 통합에 기반하며, 세 가지 버전의 SNMP(`SNMPv1`, `SNMPv2`, `SNMPv3`)를 모두 지원합니다. 탐지 중 SNMP 포트(기본값 161)를 폴링합니다. 응답이 있고 일치하는 프로필이 있으면 장치가 탐지된 것으로 간주합니다. - -## 사전 요구 사항 +## 사전 요구 사항 {#pre-requisites} Agent v7.32+ -## 작동 방식 +## 작동 방식 {#how-it-works} -다음 다이어그램은 Datadog Agent와 모니터링되는 장치간의 기본 포트와 프로토콜을 나타냅니다. SNMP 메트릭의 경우, Datadog Agent는 Autodiscovery를 사용하거나 수동 장치 IP 구성에 기반하여 장치를 폴링합니다. NDM이 설정되고 온프레미스 또는 클라우드 환경에 배포한 Datadog Agent는 네트워크에서 수집한 모든 장치 및 네트워크 데이터를 통합하여 포트 `443`의 HTTPS를 통해 Datadog에 전송합니다. 이러한 작업으로 메트릭, 로그, 트레이스, 모니터, 대시보드에 대한 통합 풀스택 가시성을 제공합니다. +다음 다이어그램은 Datadog Agent와 모니터링되는 기기 간의 기본 포트 및 프로토콜을 보여줍니다. SNMP 메트릭의 경우, Datadog Agent는 Autodiscovery 또는 수동 기기 IP 구성에 따라 기기를 폴링합니다. NDM으로 구성되고 온프레미스 또는 클라우드에 배포된 Datadog Agent는 네트워크에서 수집된 모든 기기 및 네트워크 데이터를 통합하여 포트 `443`에서 HTTPS를 통해 Datadog에 전송합니다. 이는 메트릭, 로그, 트레이스, 모니터링, 대시보드의 통합된 전체 스택 가시성을 제공합니다. -{{< img src="/network_device_monitoring/snmp/snmp_device_polling.png" alt="장치 폴링 플로를 보여주는 NDM 다이어그램." style="width:90%;" >}} +{{< img src="/network_device_monitoring/snmp/snmp_device_polling.png" alt="NDM 다이어그램은 SNMP 기기 폴링 흐름을 보여줍니다." style="width:90%;" >}} -## 다음 단계 +## 다음 단계 {#next-steps} -아래 지침에 따라 Datadog을 구성하여 네트워크 장치에서 SNMP 메트릭을 수집하세요. +아래 지침에 따라 Datadog을 구성하여 네트워크 기기에서 SNMP 메트릭을 수집하세요. -## 구성 +## 구성 {#configuration} -Datadog 네트워크 장치 모니터링은 전체 서브넷에 있는 개별 장치나 자동 검색 장치(고유한 IP 주소)에서 메트릭 수집을 지원합니다. +Datadog Network Device Monitoring은 전체 서브넷에 있는 개별 기기나 자동 검색 기기(고유한 IP 주소)에서 메트릭 수집을 지원합니다. -네트워크에 있는 장치 수에 따라 수집 전략을 고르세요. 또한 네트워크의 역동성(장치 추가 또는 제거 빈도)를 고려해야 합니다. +네트워크에 있는 기기 수에 따라 수집 전략을 고르세요. 또한 네트워크의 역동성(기기 추가 또는 제거 빈도)를 고려해야 합니다. -[개별 장치 모니터링](#monitoring-individual-devices) -: 소규모이며 대부분 정적인 네트워크에 적합합니다. +[개별 기기 모니터링](#monitoring-individual-devices) +: 작고 대부분 정적인 네트워크의 경우. [Autodiscovery](#autodiscovery) -: 대규모 또는 동적 네트워크에 적합합니다. +: 더 크거나 동적인 네트워크의 경우. -수집 전략에 관계없이 Datadog의 [sysObjectID 매핑된 장치 프로필][2]을 활용해 자동으로 장치에서 관련 메트릭을 수집합니다. +수집 전략에 관계없이 Datadog의 [sysObjectID 매핑된 기기 프로필][2]을 활용해 자동으로 기기에서 관련 메트릭을 수집합니다. -### 개별 장치 모니터링 +### 개별 기기 모니터링 {#monitoring-individual-devices} -개별 장치 모니터링 방법: +개별 기기 모니터링 방법: -- [에이전트 설정 디렉터리][3] 루트에 있는 `conf.d/` 폴더의 `snmp.d/conf.yaml` 파일에 IP 주소 및 기타 장치 메타테이터(태그 등)을 포함하세요. 사용 가능한 모든 설정 옵션을 보려면 [샘플 snmp.d/conf.yaml][4]을 참조하세요. +- IP 주소와 추가 기기 메타데이터(태그로)를 `snmp.d/conf.yaml` 파일에 포함한 후, 이를 [Agent's configuration directory][3]의 루트에 있는 `conf.d/` 폴더에 배치하세요. 사용 가능한 모든 구성 옵션은 [샘플 snmp.d/conf.yaml][4]을 참조하세요. {{< tabs >}} {{% tab "SNMPv2" %}} -- SNMPv2의 경우 IP 주소와 장치의 _커뮤니티 문자열_을 지정하는 인스턴스를 설정하세요. +- SNMPv2의 경우, 기기의 IP 주소와 _커뮤니티 문자열_을 지정하는 인스턴스를 구성하세요. ```yaml init_config: @@ -70,7 +69,7 @@ Datadog 네트워크 장치 모니터링은 전체 서브넷에 있는 개별 {{% /tab %}} {{% tab "SNMPv3" %}} -- SNMPv3의 경우 장치의 IP 주소와 SNMPv3 자격 증명을 지정하는 인스턴스를 설정하세요(적절한 경우). 예를 들어 `user`, `authProtocol`, `authKey`, `privProtocol`, `privKey`를 설정합니다. +- SNMPv3의 경우, 기기의 IP 주소와 적절한 SNMPv3 자격 증명을 지정하는 인스턴스를 구성하세요. 예를 들어, `user`, `authProtocol`, `authKey`, `privProtocol`, `privKey`와 같이 설정할 수 있습니다. ```yaml init_config: @@ -92,26 +91,34 @@ Datadog 네트워크 장치 모니터링은 전체 서브넷에 있는 개별 {{% /tab %}} {{< /tabs >}} -- [에이전트를 재시작하세요][5]. +- [Agent를 재시작][5]하세요. -설정 후 Agent가 장치를 [Datadog 지원 장치 프로필][6] 중 하나와 일치시켜 관련 메트릭을 수집합니다. +설정 후 Agent가 기기를 [Datadog 지원 기기 프로필][6] 중 하나와 일치시켜 관련 메트릭을 수집합니다. 설정을 확장하는 방법: -* 네트워크의 더 많은 장치에서 메트릭 수집을 위한 더 많은 인스턴스를 추가합니다. -* 동적 네트워크 전반의 많은 장치에서 메트릭을 수집해야 한다면 [자동탐지](#autodiscovery)를 사용하세요. +* 네트워크의 더 많은 기기로부터 메트릭을 수집하기 위해 인스턴스를 추가하세요. +* 동적 네트워크 전반의 많은 기기에서 메트릭을 수집해야 하는 경우, [Autodiscovery](#autodiscovery)를 사용하세요. + +### Autodiscovery {#autodiscovery} + +개별 기기를 지정하는 대신 Autodiscovery를 사용해 네트워크에서 모든 기기를 자동 탐지할 수 있습니다. -### 자동탐지 +Autodiscovery는 구성된 서브넷의 각 IP를 폴링하고 기기로부터 응답을 확인합니다. 그 후, Datadog Agent는 발견된 기기의 `sysObjectID`를 조회하고 이를 [Datadog의 지원 기기 프로필][6] 중 하나에 매핑합니다. 프로필에는 다양한 유형의 기기에 대해 수집할 미리 정의된 메트릭 목록이 포함되어 있습니다. -개별 장치를 지정하는 대신 Autodiscovery를 사용해 네트워크에서 모든 장치를 자동 탐지할 수 있습니다. +Network Device Monitoring 및 Autodiscovery를 사용하려면 다음 단계를 따르세요. -Autodiscovery는 구성된 서브넷의 각 IP를 폴링하고 장치의 응답을 확인합니다. 그런 다음 Datadog Agent는 검색된 장치의 `sysObjectID`를 찾고 [Datadog 지원 장치 프로필][6] 중 하나에 매핑합니다. 이러한 프로필은 다양한 유형의 장치를 수집하기 위해 사전 정의된 메트릭 목록을 포함합니다. +1. Datadog Agent를 v7.27+로 설치하거나 업그레이드합니다. 플랫폼별 지침은 [Datadog Agent][7] 문서를 참조하세요. -네트워크 장치 모니터링과 자동탐지를 사용하는 방법: +2. [`datadog.yaml`][8] Agent 구성 파일을 수정하여 Datadog이 스캔할 모든 서브넷을 포함합니다. 다음 샘플 구성은 Autodiscovery를 위한 필수 파라미터, 기본값 및 예제를 제공합니다. -1. Datadog 에이전트 버전 v7.27 이상을 설치하거나 이러한 버전으로 업그레이드하세요. [Datadog 에이전트][7] 설명서를 참조하세요. +3. 필요 시, Agent의 Autodiscovery 중에 기기의 [중복 제거][11]를 활성화합니다. 이 기능은 기본적으로 비활성화되어 있으며 Agent 버전 `7.67+`이 필요합니다. -2. [`datadog.yaml`][8] 에이전트 설정 파일을 편집하여 Datadog의 모든 서브넷을 검사하도록 포함합니다. 다음 샘플 설정은 자동탐지를 위한 필수 파라미터, 기본값 및 예시를 제공합니다. + ```yaml + network_devices: + autodiscovery: + use_deduplication: true + ``` {{< tabs >}} {{% tab "SNMPv2" %}} @@ -119,6 +126,7 @@ Autodiscovery는 구성된 서브넷의 각 IP를 폴링하고 장치의 응답 ```yaml network_devices: autodiscovery: + ## use_deduplication - boolean - optional - default: false workers: 100 # number of workers used to discover devices concurrently discovery_interval: 3600 # interval between each autodiscovery in seconds loader: core # use core check implementation of SNMP integration. recommended @@ -130,16 +138,16 @@ network_devices: port: 161 community_string: '***' # enclose with single quote tags: - - "key1:val1" - - "key2:val2" + - "key1:val1" + - "key2:val2" - network_address: 10.20.0.0/24 loader: core snmp_version: 2 port: 161 community_string: '***' tags: - - "key1:val1" - - "key2:val2" + - "key1:val1" + - "key2:val2" ``` {{% /tab %}} @@ -149,6 +157,7 @@ network_devices: ```yaml network_devices: autodiscovery: + ## use_deduplication - boolean - optional - default: false workers: 100 # number of workers used to discover devices concurrently discovery_interval: 3600 # interval between each autodiscovery in seconds loader: core # use core check implementation of SNMP integration. recommended @@ -179,15 +188,34 @@ network_devices: {{% /tab %}} {{< /tabs >}} -**참고**: Datadog 에이전트는 자동으로 검색된 각 IP와 함께 SNMP 점검을 설정합니다. SNMP를 사용해 수집되는 경우 검색된 장치는 대응되는 IP입니다. +**참고**: Datadog Agent는 발견된 각 IP에 대해 SNMP 검사를 자동으로 구성합니다. 발견된 기기는 SNMP를 사용하여 폴링할 때 성공적으로 응답하는 IP입니다. + +**참고**: 이 구문을 사용하려면 Agent 7.54+여야 합니다. 이전 버전은 [이전 config_template.yaml][9]을 참조하세요. + +### 인터페이스 속도 재정의 {#override-interface-speed} + +기본적으로 SNMP 검사는 기기에서 감지된 인터페이스 속도를 보고합니다. 물리적 포트 속도가 실제 회선 대역폭과 다를 경우, 예를 들어 50 Mbps 회선에 대해 프로비저닝된 1 Gbps 물리적 포트의 경우, `interface_configs`를 사용하여 특정 인터페이스의 수신 및 송신 속도를 재정의할 수 있습니다. + +인스턴스 구성에 `interface_configs`를 `snmp.d/conf.yaml`에 추가하세요. + +```yaml +instances: + - ip_address: '1.2.3.4' + community_string: 'sample-string' + interface_configs: + - match_field: name # match by interface name or ifIndex + match_value: eth0 # case-sensitive + in_speed: 50000000 # inbound speed in bytes per second (50 Mbps) + out_speed: 50000000 # outbound speed in bytes per second (50 Mbps) +``` -**참고**: 이 구문을 사용하려면 Agent 7.54 이상 버전을 사용 중인지 확인하세요. 이전 버전의 경우 [이전 config_template.yaml][9]을 참조하세요. +사용 가능한 모든 `interface_configs` 옵션은 [샘플 snmp.d/conf.yaml][4]을 참조하세요. -## 검증 +## 유효성 검사 {#validation} -[Agent 상태 하위 명령을 실행][10]하고 Checks 섹션에서 `snmp`를 찾으세요. +[Agent의 상태 하위 명령을 실행][10]한 후, 검사 섹션에서 `snmp`를 찾으세요. -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -201,4 +229,5 @@ network_devices: [7]: /ko/agent [8]: /ko/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file [9]: https://github.com/DataDog/datadog-agent/blob/51dd4482466cc052d301666628b7c8f97a07662b/pkg/config/config_template.yaml#L855 -[10]: /ko/agent/configuration/agent-commands/#agent-status-and-information \ No newline at end of file +[10]: /ko/agent/configuration/agent-commands/#agent-status-and-information +[11]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/config_template.yaml#L4036 \ No newline at end of file diff --git a/content/ko/network_monitoring/network_path/setup.md b/content/ko/network_monitoring/network_path/setup.md new file mode 100644 index 00000000000..57fc4bf4054 --- /dev/null +++ b/content/ko/network_monitoring/network_path/setup.md @@ -0,0 +1,622 @@ +--- +description: Network Path 설정 +further_reading: +- link: https://www.datadoghq.com/blog/datadog-network-path-monitoring/ + tag: 블로그 + text: Network Path 및 SD-WAN 모니터링을 통해 종단 간 네트워크 가시성을 확보하세요. +- link: /network_monitoring/cloud_network_monitoring/guide/detecting_application_availability/ + tag: 가이드 + text: Network Insights를 사용해 애플리케이션 가용성 감지 +- link: /network_monitoring/network_path/guide/traceroute_variants/ + tag: 가이드 + text: Network Path 트레이스라우트 변형 +is_beta: true +title: 설정 +--- +## 개요 {#overview} + +Network Path 설정은 서비스와 엔드포인트 간의 Network Path를 모니터링하고 추적하기 위해 환경을 구성하는 것을 포함합니다. 네트워크 인프라의 병목 현상, 지연 문제 및 잠재적인 실패 지점을 식별하는 데 도움이 됩니다. Network Path를 사용하면 필요에 따라 개별 Network Path를 수동으로 구성하거나 자동으로 발견하거나 두 가지 방법을 동시에 사용할 수 있습니다. + +**참고**: 네트워크 구성에서 아웃바운드 트래픽이 제한되는 경우, [Agent proxy configuration][2] 문서의 설정 지침을 따르세요. + +## 설정 {#setup} + +
    이 페이지는 Network Monitoring에서 Agent 기반 구성에 대한 Network Path 설정을 다룹니다. Synthetic Monitoring에서 Network Path 테스트를 생성하려면 Network Path Testing in Synthetic Monitoring.
    + +Datadog은 두 가지 Agent 기반 수집 방법을 제공합니다. 각 방법을 단독으로 사용하거나 두 가지를 결합할 수 있습니다. + +| 방법 | 사용 시기 | +|--------|-------------| +| **[예약된 테스트](#scheduled-tests)** | Agent 구성에서 정의한 특정 소스-대상 쌍을 모니터링합니다. 중요한 API 또는 파트너 서비스와 같은 알려진 엔드포인트 집합을 추적하는 데 가장 적합합니다. | +| **[동적 테스트](#dynamic-tests)** | 는 [Cloud Network Monitoring][1]에서 관찰된 트래픽을 기반으로 경로를 자동으로 발견하고 모니터링합니다. 모든 대상을 수동으로 나열하지 않고도 넓은 가시성을 확보하는 데 가장 적합합니다. | + +### 예약된 테스트 {#scheduled-tests} + +Agent 구성 파일에 정의하여 특정 네트워크 경로를 모니터링할 수 있습니다. 파일은 `/etc/datadog-agent/conf.d/network_path.d/conf.yaml`에 위치합니다. + +시작하려면 [예제 구성][5]을 복사하고 `.example` 확장자를 제거한 후 원하는 설정으로 업데이트하거나 아래의 환경별 구성 중 하나를 사용하세요. 대규모 환경에서 성능 최적화를 위해 [작업자 수 늘리기](#increase-the-number-of-workers)를 참조하세요. + +{{< tabs >}} +{{% tab "Linux" %}} + +Agent `v7.59+`가 필요합니다. + +1. 다음 내용을 추가하여 `/etc/datadog-agent/system-probe.yaml`에서 `system-probe` 트레이스라우트 모듈을 활성화합니다. + + ``` + traceroute: + enabled: true + ``` + +2. `network_path`를 활성화하여 이 Agent에서 새로운 목적지를 모니터링하려면 `/etc/datadog-agent/conf.d/network_path.d/conf.yaml` 파일을 생성하거나 편집하세요. + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + + ``` + +3. 구성을 변경한 후 네트워크 경로가 확인되도록 Agent를 재시작합니다. + +{{% /tab %}} +{{% tab "macOS" %}} + +Agent `v7.75+`가 필요합니다. + +1. 다음 내용을 추가하여 `/opt/datadog-agent/etc/system-probe.yaml`에서 `system-probe` 트레이스라우트 모듈을 활성화합니다. + + ``` + traceroute: + enabled: true + ``` + +2. `network_path`를 활성화하여 이 Agent에서 새로운 목적지를 모니터링하려면 `/opt/datadog-agent/etc/conf.d/network_path.d/conf.yaml` 파일을 생성하거나 편집하세요. + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + + ``` + +3. 구성을 변경한 후 네트워크 경로가 확인되도록 Agent를 재시작합니다. + +{{% /tab %}} +{{% tab "Windows" %}} + +Agent `v7.72+`가 필요합니다. + +1. 다음 내용을 추가하여 `%ProgramData%\Datadog\system-probe.yaml`에서 `system-probe` 트레이스라우트 모듈을 활성화합니다. + + ``` + traceroute: + enabled: true + ``` + +2. `network_path`를 활성화하여 이 Agent에서 새로운 목적지를 모니터링하려면 `%ProgramData%\Datadog\conf.d\network_path.d\conf.yaml` 파일을 생성하거나 편집하세요. + + ```yaml + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack, syn_socket (Windows only) + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: TCP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + ``` + + 3. 구성을 변경한 후 네트워크 경로가 확인되도록 Agent를 재시작합니다. + +{{% /tab %}} +{{% tab "Helm" %}} + +Agent `v7.59+`가 필요합니다. + + + +Helm을 사용하여 Kubernetes와 함께 Network Path를 활성화하려면 `values.yaml` 파일에 다음 내용을 추가하세요. + + ```yaml + datadog: + traceroute: + enabled: true + confd: + network_path.yaml: |- + init_config: + min_collection_interval: 60 # in seconds, default 60 seconds + instances: + # configure the endpoints you want to monitor, one check instance per endpoint + # warning: Do not set the port when using UDP. Setting the port when using UDP can cause traceroute calls to fail and falsely report an unreachable destination. + + - hostname: api.datadoghq.eu # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + min_collection_interval: 120 # set min_collection_interval at the instance level + ## optional configs: + # max_ttl: 30 # max traceroute TTL, default is 30 + # timeout: 1000 # timeout in milliseconds per hop, default is 1s + # tcp_method: syn # TCP probing method, default is syn, options: syn, sack, prefer_sack + # traceroute_queries: 3 # number of traceroutes to send per check run, default is 3 + # e2e_queries: 50 # number of end-to-end probes to send per check run, default is 50 + + # more endpoints + - hostname: 1.1.1.1 # endpoint hostname or IP + protocol: UDP + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + +``` + +{{% /tab %}} +{{% tab "Autodiscovery (Kubernetes)" %}} +Datadog Autodiscovery allows you to enable Network Path on a per-service basis through Kubernetes annotations. + +
    Helm chart v3.109.1+ is required. For more information, see the Datadog Helm Chart documentation.
    + +1. Enable the traceroute module in the Datadog `values.yaml` file, which the Network Path integration depends on. + + ```yaml + datadog: + traceroute: + enabled: true + +2. After the module is enabled, Datadog automatically detects Network Path annotations added to your Kubernetes pod. For more information, see [Kubernetes and Integrations][2]. + + ```yaml + apiVersion: v1 + kind: Pod + # (...) + metadata: + name: '' + annotations: + ad.datadoghq.com/.checks: | + { + "network_path": { + "init_config": { + "min_collection_interval": 300 + }, + "instances": [ + { + "protocol": "TCP", + "port": 443, + "source_service": "", + "tags": [ + "tag_key:tag_value", + "tag_key2:tag_value2" + ], + "hostname": "api.datadoghq.eu" + }, + { + "protocol": "UDP", + "source_service": "", + "tags": [ + "tag_key:tag_value", + "tag_key2:tag_value2" + ], + "hostname": "1.1.1.1" + }, + ] + } + } + # (...) + spec: + containers: + - name: '' + # (...) + ``` + If you define pods indirectly (with deployments, ReplicaSets, or ReplicationControllers), add pod annotations under `spec.template.metadata`. + +[1]: https://github.com/DataDog/helm-charts/blob/master/charts/datadog/README.md#enabling-system-probe-collection +[2]: https://docs.datadoghq.com/ko/containers/kubernetes/integrations/?tab=annotations#configuration + +{{% /tab %}} +{{< /tabs >}} + +#### Increase the number of workers + +Network Path monitoring for individual paths runs as an Agent Integration. The number of concurrent workers is controlled by the `check_runners` setting in the `datadog.yaml` file. + +To increase the number of workers, add the following configuration to your `datadog.yaml` file: + +```yaml +## @param check_runners - integer - optional - default: 4 +## @env DD_CHECK_RUNNERS - integer - optional - default: 4 +## The `check_runners` refers to the number of concurrent check runners available for check instance execution. +## The scheduler attempts to spread the instances over the collection interval and will _at most_ be +## running the number of check runners instances concurrently. +## +## The level of concurrency has effects on the Agent's: RSS memory, CPU load, resource contention overhead, etc. +# +check_runners: +``` + +### Dynamic tests + +**Prerequisites**: [CNM][1] must be enabled. + +Configure dynamic tests to allow the Agent to automatically discover and monitor network paths based on actual network traffic, eliminating the need to manually configure individual endpoints. See [filter syntax](#filter-syntax) to include/exclude domain or IPs. + +{{< tabs >}} +{{% tab "Linux" %}} + +Agent `v7.73+`가 필요합니다. + +1. 다음 내용을 추가하여 `/etc/datadog-agent/system-probe.yaml`에서 `system-probe` 트레이스라우트 모듈을 활성화합니다. + + ```yaml + traceroute: + enabled: true + ``` + +2. `network_path`를 활성화하여 CNM 연결을 모니터링하려면 `/etc/datadog-agent/datadog.yaml` 파일을 생성하거나 편집하세요. + + ```yaml + network_path: + connections_monitoring: + enabled: true + # collector: + # workers: # default 4 + ``` + + For full configuration details, reference the [example config][3], or use the following: + + ```yaml + network_path: + connections_monitoring: + ## @param enabled - bool - required - default:false + ## Enable network path collection + # + enabled: true + collector: + ## @param workers - int - optional - default:4 + ## Number of workers that can collect paths in parallel + ## Recommendation: leave at default + # + # workers: # default 4 + + #@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m + # The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # pathtest_interval: 10m + + # @param pathtest_ttl - integer - optional - default: 35m + # @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + # The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + # The TTL is reset each time the connection is seen again. + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + + ``` + +3. 구성을 변경한 후 네트워크 경로가 확인되도록 Agent를 재시작합니다. + +[3]: https://github.com/DataDog/datadog-agent/blob/2c8d60b901f81768f44a798444af43ae8d338843/pkg/config/config_template.yaml#L1731 + +{{% /tab %}} +{{% tab "Windows" %}} + +Agent `v7.73+`가 필요합니다. + +1. 다음 내용을 추가하여 `%ProgramData%\Datadog\system-probe.yaml`에서 `system-probe` 트레이스라우트 모듈을 활성화합니다. + + ```yaml + traceroute: + enabled: true + ``` + +2. `network_path`를 활성화하여 CNM 연결을 모니터링하려면 `%ProgramData%\Datadog\datadog.yaml` 파일을 생성하거나 편집하세요. + + ```yaml + network_path: + connections_monitoring: + enabled: true + # collector: + # workers: # default 4 + ``` + + For full configuration details, reference the [example config][3], or use the following: + + ```yaml + network_path: + connections_monitoring: + ## @param enabled - bool - required - default:false + ## Enable network path collection + # + enabled: true + collector: + ## @param workers - int - optional - default:4 + ## Number of workers that can collect paths in parallel + ## Recommendation: leave at default + # + # workers: # default 4 + + #@env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 10m + # The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # pathtest_interval: 10m + + # @param pathtest_ttl - integer - optional - default: 35m + # @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + # The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + # The TTL is reset each time the connection is seen again. + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + ``` + +3. 구성을 변경한 후 네트워크 경로가 확인되도록 Agent를 재시작합니다. + +[3]: https://github.com/DataDog/datadog-agent/blob/2c8d60b901f81768f44a798444af43ae8d338843/pkg/config/config_template.yaml#L1731 + +{{% /tab %}} +{{% tab "Helm" %}} + +Agent `v7.73+`가 필요합니다. + +Helm을 사용하여 Kubernetes와 함께 Network Path를 활성화하려면 `values.yaml` 파일에 다음 내용을 추가하세요. +**참고:** Helm chart v3.124.0+가 필요합니다. 자세한 정보는 [Datadog Helm Chart documentation][1]와 [Kubernetes and Integrations][2]에 대한 문서를 참조하세요. + +```yaml +datadog: + networkPath: + connectionsMonitoring: + enabled: true + ## Set to true to enable the Traceroute Module of the System Probe + traceroute: + enabled: true + + ## @param collector - custom object - optional + ## Configuration related to Network Path Collector. + # + collector: + ## @param workers - integer - optional - default: 4 + ## @env DD_WORKERS - integer - optional - default: 4 + ## The `workers` refers to the number of concurrent workers available for network path execution. + # + # workers: 4 + + ## @param pathtest_interval - integer - optional - default: 35m + ## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_INTERVAL - integer - optional - default: 30m + ## The `pathtest_interval` refers to the traceroute run interval for monitored connections. + # + # pathtest_interval: 30m + + ## @param pathtest_ttl - integer - optional - default: 35m + ## @env DD_NETWORK_PATH_COLLECTOR_PATHTEST_TTL - integer - optional - default: 35m + ## The `pathtest_ttl` refers to the duration (time-to-live) a connection will be monitored when it's not seen anymore. + ## The TTL is reset each time the connection is seen again. + # + # pathtest_ttl: 35m + + ## @param filters - list - optional + ## Include or exclude specific domains or IP ranges from dynamic monitoring. + ## Filters are applied sequentially, with later filters taking precedence. + ## See the "Filter syntax" section for details and examples: https://docs.datadoghq.com/network_monitoring/network_path/setup/#filter-syntax + # + # filters: + # - match_domain: '*.example.com' + # type: exclude + # - match_ip: 10.0.0.0/8 + # type: exclude + # - match_domain: 'api.datadoghq.com' + # type: include + +``` +[1]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/README.md +[2]: https://docs.datadoghq.com/ko/containers/kubernetes/integrations/?tab=helm#configuration + + +{{% /tab %}} +{{< /tabs >}} + +#### 필터 구문 {#filter-syntax} + +도메인 및 IP를 포함하거나 제외하도록 필터를 구성하여 다음을 수행할 수 있습니다. + +- 내부 네트워크의 모니터링 오버헤드를 줄입니다 +- 외부 트래픽 패턴에 집중합니다 +- 모니터링이 필요하지 않은 알려진 인프라 범위를 제외합니다 + +동적 테스트에서 특정 도메인이나 IP 범위를 포함하거나 제외하려면 `/etc/datadog-agent/datadog.yaml` 파일에 다음 내용을 추가하세요. + +```yaml +network_path: + connections_monitoring: + enabled: true + collector: + filters: + # exclude single domain + - match_domain: 'api.slack.com' + type: exclude + + # exclude domain using `*` wildcard + - match_domain: '*.datadoghq.com' # this translates to regex '.*\.datadoghq\.com + type: exclude + - match_domain: '*.zoom.us' + match_domain_strategy: wildcard # use simple wildcard matching (wildcard matching is the default) + type: exclude + + # exclude single IP or using CIDR notation + - match_ip: 10.10.10.10 + type: exclude + - match_ip: 10.20.0.0/24 + type: exclude + + # exclude using regex + - match_domain: '.*\.zoom\.us' + match_domain_strategy: regex # use regex matching strategy + type: exclude + + # include + - match_domain: 'api.datadoghq.com' + type: include +``` + +**참고**: +필터는 순차적으로 적용되며, 나중의 필터가 이전의 필터보다 우선합니다. + +예를 들어, `*.datadoghq.com`와 일치하는 모든 도메인은 무시되며, `api.datadoghq.com`는 제외됩니다. + +```yaml +network_path: + collector: + filters: + - match_domain: '*.datadoghq.com' + type: exclude + - match_domain: 'api.datadoghq.com' + type: include +``` + +### 소스 공용 IP 해상도 {#source-public-ip-resolution} + +
    소스 공용 IP 해상도는 Agent v7.75+에서 사용할 수 있습니다.
    + +Network Path는 소스 호스트의 공용 IP 주소를 확인하여 인터넷으로 향하는 트래픽에 대한 정확한 경로 시각화를 제공합니다. Agent는 호스트의 공용 IP를 확인하기 위해 HTTPS를 통해 외부 IP 확인 서비스에 연락합니다. + +이 기능은 Network Path가 작동하는 데 **필요하지 않습니다**. 이 서비스에 접근할 수 없는 경우에도 Network Path는 정상적으로 작동하지만, 소스 공용 IP가 확인되지 않으며 경로 시각화에 소스 IP 메타데이터가 표시되지 않습니다. + +네트워크가 아웃바운드 트래픽을 제한하고 소스 공용 IP 해상도가 필요한 경우, 다음 URL을 방화벽 허용 목록에 추가하세요. + +| URL | 제공자 | +|-----|----------| +| `https://icanhazip.com` | Cloudflare | +| `https://ipinfo.io/ip` | IPinfo | +| `https://checkip.amazonaws.com` | Amazon | +| `https://api.ipify.org` | ipify | +| `https://whatismyip.akamai.com` | Akamai | + +Agent는 각 서비스를 순서대로 시도하고 첫 번째 성공적인 응답을 사용합니다. 모든 요청은 HTTPS(포트 443)를 통해 이루어집니다. + +## 문제 해결 {#troubleshooting} + +Network Path 문제를 해결하기 위해 다음 지침을 사용하세요. 추가 지원이 필요하면 [Datadog 지원][3]에 문의하세요. + +### UI에 Network Path 데이터가 없음 {#no-network-path-data-in-the-ui} + +[Network Path][4] UI에 데이터가 나타나지 않으면 기능이 완전히 활성화되지 않았을 수 있습니다. Network Path는 다음을 요구합니다. + +1. 트레이스라우트 모듈은 `system-probe.yaml` 파일에서 활성화되어야 합니다. + + ```yaml + traceroute: + enabled: true + ``` + +2. 다음과 같은 최소 하나의 Network Path 기능이 활성화되어야 합니다. + + - [개별 경로](#monitor-individual-paths)는 `conf.d/network_path.d` 파일을 통해 구성됩니다. + - 실험적인 [네트워크 트래픽 경로](#network-traffic-paths-experimental)는 `network_path.connections_monitoring`과 [Cloud Network Monitoring][1](CNM)을 활성화하여 구성됩니다. + +### 오류: 상태 코드: 404 {#error-status-code-404} + +다음과 같은 오류가 발생하는 경우 + + ```text + Error: failed to trace path: traceroute request failed: Probe Path , url: , status code: 404 + ``` + + - 이는 트레이스라우트 모듈이 활성화되지 않았음을 나타냅니다. `system-probe.yaml` 파일에서 트레이스라우트 모듈이 활성화되어 있는지 확인하세요. + + + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/network_monitoring/cloud_network_monitoring/setup/ +[2]: https://docs.datadoghq.com/ko/agent/configuration/proxy/?tab=linux +[3]: /ko/help +[4]: https://app.datadoghq.com/network/path +[5]: https://github.com/DataDog/datadog-agent/blob/main/cmd/agent/dist/conf.d/network_path.d/conf.yaml.example +[15]: /ko/synthetics/network_path_tests/ \ No newline at end of file diff --git a/content/ko/notebooks/_index.md b/content/ko/notebooks/_index.md index 383631dd7c7..df3ed982356 100644 --- a/content/ko/notebooks/_index.md +++ b/content/ko/notebooks/_index.md @@ -1,10 +1,306 @@ --- -external_redirect: /notebooks/notebooks_new -title: 노트북 -type: multi-code-lang +aliases: +- /ko/graphing/notebooks/ +- /ko/notebooks_new/ +- /ko/notebooks_legacy/ +description: 조사, 사후 분석, 런북 및 데이터 기반 스토리텔링을 위해 실시간 Datadog 그래프가 포함된 협업용 리치 텍스트 문서를 + 생성합니다. +further_reading: +- link: https://www.datadoghq.com/blog/cloud-cost-management-oci + tag: 블로그 + text: Datadog Cloud Cost Management를 사용하여 OCI 비용 관리 및 최적화하기 +- link: https://www.datadoghq.com/blog/collaborative-notebooks-datadog/ + tag: 블로그 + text: 협업 노트북으로 데이터 기반 스토리를 전달하세요. +- link: https://www.datadoghq.com/blog/incident-postmortem-process-best-practices/ + tag: 블로그 + text: 인시던트 포스트모템(사후 분석) 생성 모범 사례 +- link: https://www.datadoghq.com/blog/observability-pipelines-transform-and-enrich-logs/ + tag: 블로그 + text: Datadog Observability Pipelines를 사용하여 로그를 변환하고 강화하세요. +- link: https://www.datadoghq.com/blog/advanced-analysis-tools/ + tag: 블로그 + text: Datadog에서 고급 분석을 위해 Sheets, DDSQL Editor 및 Notebook을 사용하여 데이터를 탐색하기 +- link: https://www.datadoghq.com/blog/finops-at-datadog/ + tag: 블로그 + text: Datadog에서 성공적인 FinOps 사례를 구축한 방법 +- link: https://learn.datadoghq.com/courses/getting-started-with-notebooks + tag: 학습 센터 + text: Notebooks 시작하기 +- link: https://learn.datadoghq.com/courses/using-datadog-notebooks-lab + tag: 학습 센터 + text: 중앙 집중식 보고를 위한 Datadog Notebook 활용 +title: Notebooks --- +## 개요 {#overview} -{{< whatsnext desc="Notebook 버전" >}} - {{< nextlink href="notebooks/notebooks_legacy/" >}}Legacy{{< /nextlink >}} - {{< nextlink href="notebooks/notebooks_new/" >}}New{{< /nextlink >}} -{{< /whatsnext >}} \ No newline at end of file +Notebooks는 Datadog 그래프의 모든 기능을 제공하는 협업형 리치 텍스트 문서입니다. 여러 사용자가 함께 작업하여 인시던트의 실시간 데이터를 포함한 조사 또는 [사후 분석][8]을 작성할 수 있습니다. 또한 Notebooks는 시스템에 대한 실제 인사이트를 콘텐츠와 함께 제공하는 런북 및 설명서에도 적합합니다. + +## 노트북 생성 {#creating-a-notebook} + +노트북은 다음 두 위치에서 생성할 수 있습니다. + +- 왼쪽 탐색 메뉴에서 **Dashboards > New Notebook**을 클릭합니다. +- [Notebooks 목록 페이지][1]의 오른쪽 상단에서 **New Notebook**을 클릭합니다. + +### 노트북 템플릿 {#notebook-templates} + +[템플릿 갤러리][2]에서 새 노트북을 생성할 수 있는 준비된 템플릿을 확인하세요. 템플릿에는 Incident Response[사후 분석][8], 인시던트 보고서 및 SLO 사양이 포함됩니다. 재사용 가능한 노트북 구조를 만들기 위해 사용자 지정 템플릿을 생성할 수도 있습니다. + +## 노트북 편집하기 {#editing-a-notebook} + +Notebooks는 콘텐츠 작성 및 협업을 위한 리치 텍스트 편집 환경을 제공합니다. 익숙한 도구 모음 옵션과 키보드 단축키를 사용하여 텍스트를 자유롭게 입력하고 서식을 지정할 수 있습니다. 예를 들어, 굵게, 기울임꼴, 헤더, 목록 등을 직접 편집기에서 사용할 수 있습니다. + +단축키를 선호하는 사용자들을 위해, Notebooks는 Markdown 구문도 지원합니다. 예를 들어, `#`를 입력하고 스페이스를 누르면 헤더가 생성되며, 세 개의 백틱(```)을 사용하면 코드 블록이 시작됩니다. + +텍스트 내용은 입력과 동시에 자동 저장됩니다. 삽입된 그래프의 경우 노트북에 변경 사항을 반영하려면 그래프 편집기에서 저장해야 합니다. + +### 콘텐츠 유형 {#content-types} + +Notebooks는 다음과 같은 다양한 리치 텍스트 및 임베디드 콘텐츠를 지원합니다. + +- [그래프](#graphs-in-notebooks) +- 이미지 +- 헤더(H1~H3) +- 목록(글머리 기호 목록, 번호 매기기 목록, 체크리스트) +- 코드 블록 +- 인용문 +- Markdown 셀 + +전체 목록을 보려면 노트북에 /를 입력하세요. + +### 노트북의 그래프 {#graphs-in-notebooks} + +Notebooks는 모든 위젯 유형을 지원합니다. 전체 목록은 [위젯][3]을 참조하세요. + +위젯 위에 마우스를 올리면 그래프 편집 및 구성 옵션이 표시됩니다. + +쿼리를 편집하거나 그래프의 표시를 구성하려면 **Quick Edit** 기능을 사용하여 대부분의 변경 사항을 인라인으로 수행합니다. 고급 구성을 보려면 연필 아이콘을 클릭하거나 Cmd/Ctrl 키를 누른 채 그래프를 클릭하여 전체 그래프 편집기를 엽니다. 시계 아이콘을 클릭하여 로컬 시간 프레임을 조정하거나 그래프를 글로벌 노트북 시간에 연결할 수 있습니다. + +추가 그래프 구성 옵션은 그래프 유형에 따라 세 점의 생략 기호 메뉴에서 접근할 수 있습니다. +- **그래프 크기**: XS, S, M(기본값), L 또는 XL을 선택하여 그래프 높이를 조정합니다. +- **그래프 범례**: 범례를 숨기려면 체크박스를 선택 해제합니다. XS 및 S 그래프에서는 범례가 자동으로 비활성화됩니다. + +### 리치 텍스트 기능 {#rich-text-features} + +Notebooks는 굵게, 기울임꼴, 인라인 코드 및 헤더와 같은 일반적으로 사용되는 리치 텍스트 기능을 지원합니다. Notebooks는 글머리 기호, 번호 매기기 또는 체크리스트와 같은 다양한 목록 유형도 지원합니다. + +| 기능 | 설명 | +|---------------|----------------------------------------------------------------------------------------------------------------------------| +| **굵게** | 텍스트를 굵게 하려면 텍스트를 선택한 후 Cmd/Ctrl + B를 누릅니다. | +| *기울임꼴* | 텍스트를 기울임꼴로 하려면 텍스트를 선택한 후 Cmd/Ctrl + I를 누릅니다. | +| `Inline code` | 인라인 코드를 위해, 텍스트 앞뒤에 ` 을 입력합니다. | +| 코드 블록 | 코드 블록을 삽입하려면 ``` 을 입력한 후 Enter를 누르거나 슬래시 명령 메뉴를 사용합니다. | +| 인용 | 인용 블록을 삽입하려면 `>`를 입력하거나 슬래시 명령 메뉴를 사용합니다. | +| 텍스트 표 | 테이블을 삽입하려면 `/table`을 입력하거나 **Add Cell** 메뉴를 사용합니다. | +| Callout | callout을 삽입하려면 `/table`을 입력하거나 `!NOTE`, `!TIP`, `!WARNING`, `!IMPORTANT` 또는 `!CAUTION`을 입력한 후 Space를 누릅니다. | + +### 스마트 칩 {#smart-chips} + +| 기능 | 설명 | +|------------|----------------------------------------------------------------------------| +| `@Mention` | 다른 사용자를 언급하려면 `@` 뒤에 이름이나 이메일 주소를 입력합니다. | +| `$TemplateVariable` | 기존 템플릿 변수의 이름 뒤에 `$`를 입력합니다. | +| `/date` | `/date`를 입력하여 날짜 칩을 추가합니다. 날짜 칩을 클릭하면 팝업에서 날짜와 시간을 수정할 수 있습니다. 또한 `/today`와 `/now`도 사용해 보세요! | + +### Slash 명령 {#slash-commands} + +Slash 명령은 그래프를 생성하거나 다른 콘텐츠를 삽입하기 위한 인터페이스입니다. 새 줄에서 `/`를 입력하면 Slash 명령 메뉴가 열립니다. 원하는 콘텐츠 유형의 이름을 계속 입력한 후 적절한 옵션을 선택합니다. + +{{< img src="/notebooks/notebooks_new/slash_command_menu.png" alt="노트북에 /를 입력할 때 나타나는 Slash 명령 메뉴" style="width:70%;" >}} + +그래프 유형을 선택하면 [그래프 편집기][3]가 열립니다. **Save**을 클릭하면 그래프가 노트북에 나타납니다. + +### 키보드 단축키 {#keyboard-shortcuts} + +{{< img src="/notebooks/notebook_keyboard_shortcuts.png" alt="Datadog 노트북을 위한 키보드 단축키 메뉴" style="width:70%;" >}} + +노트북의 왼쪽 하단 모서리에서 키보드 아이콘을 클릭하여 편집용 키보드 단축키 목록을 확인하세요. + +또한 다음 단축키를 사용하여 위젯을 잘라내고 붙여넣을 수 있습니다(Cmd/Ctrl + X, Cmd/Ctrl + V). + +### 목차 {#table-of-contents} + +Notebooks는 문서에 삽입한 모든 헤더나 그래프를 기반으로 자동으로 목차를 생성합니다. Markdown 단축키 `#`를 사용하거나 텍스트를 선택한 후 도구 모음에서 **Header**를 클릭하여 헤더를 만들 수 있습니다. + +### 노트북 태그 {#notebook-tags} + +{{< img src="/notebooks/notebooks_new/notebook_tags.png" alt="노트북에 즐겨찾기, 팀 추가 또는 유형 추가 작업을 적용할 수 있는 노트북 태그 옵션" style="width:80%;" >}} + +| 태그 작업 | 설명 | +|---------------------------|----------------------------------------------------------------------------------------------------------------------| +| **노트북 즐겨찾기 지정** | 노트북을 즐겨찾기로 설정하여 노트북 목록 페이지에서 결과 상단에 고정할 수 있습니다. 노트북을 즐겨찾기로 전환하려면 노트북 헤더의 별 아이콘을 클릭하세요. | +| **팀별 태그 지정** | 노트북에 팀으로 태그를 지정하면 노트북을 검색할 때 필터로 사용할 수 있습니다. 하나의 노트북에 최대 5개의 팀을 태그로 지정할 수 있습니다. 노트북에 태그를 지정하려면 노트북 헤더의 **Team** 옵션을 클릭하고 원하는 팀을 선택합니다. | +| **유형별 태그 지정** | 노트북에 사후 북선, 런북, 조사, 설명서, 보고서와 같은 유형 태그를 지정하여 더 쉽게 검색할 수 있습니다. 노트북에 태그를 지정하려면 **Type**을 클릭하고 유형을 선택합니다. | + +### 노트북에 이미지 추가 {#add-images-to-notebooks} + +
    PNG, JPG, JPEG 및 GIF 파일 형식만 지원됩니다. 업로드 가능한 최대 파일 크기는 4MB입니다.
    + +`/image` 또는 **Add Cell** 메뉴를 사용하여 노트북에 이미지를 추가할 수 있습니다. 이 기능은 이미지의 크기 조정, 정렬 및 캡션 추가 옵션을 제공합니다. 업로드된 이미지는 Datadog에서 호스팅됩니다. + + + +다음 옵션 중 하나를 사용해 이미지를 업로드하면 Datadog에서 이미지를 호스팅합니다. +- 업로드 영역에 이미지 파일 드롭 +- **Choose File**을 클릭하고 파일 디렉터리에서 이미지 선택 +- 공개적으로 접근 가능한 이미지 URL 붙여넣기 + +이미지 작업 트레이에 있는 아이콘을 클릭해 이미지의 크기를 조정하고, 이미지를 정렬하고, 캡션을 추가하거나, 이미지를 전체 화면 모드에서 볼 수 있습니다. + + +## 노트북에 댓글 추가하기 {#adding-comments-to-a-notebook} + +노트북 본문 내용에 댓글을 추가할 수 있습니다. 텍스트에 댓글을 작성하려면 텍스트를 선택한 후 도구 모음의 댓글 아이콘을 클릭하세요. + + + +그래프나 이미지에 댓글을 작성하려면 그래프 오른쪽에 있는 댓글 아이콘을 클릭하세요. + +| 기능 | 설명 | +|--------------------------|----------------------------------------------------------------------------------------------------------------------| +| **댓글 이동하기** | 저장된 댓글은 노트북의 오른쪽 여백에 나타납니다. 텍스트에서 댓글 강조 표시를 클릭하면 여백에 해당 댓글이 열리며, 여백의 댓글을 클릭하면 해당 위치로 이동합니다. | +| **댓글에 응답하기** | 오른쪽 여백에서 댓글을 클릭하여 댓글 상자를 열 수 있습니다. 텍스트를 작성하거나, `@mention`Datadog 사용자에게 댓글을 달거나, **Resolve**를 클릭하여 댓글을 해결할 수 있습니다. | +| **댓글에 링크 달기** | 댓글의 오른쪽 상단에 있는 링크 아이콘을 클릭하여 해당 댓글의 링크를 복사할 수 있습니다. | +| **댓글 편집 또는 삭제하기** | 댓글의 오른쪽 상단에 있는 세 점 메뉴를 클릭하여 댓글을 편집하거나 삭제할 수 있습니다. | +| **댓글 알림** | 기본적으로, 다른 사용자가 새 댓글을 작성하면 노트북 작성자에게 이메일 알림이 전송됩니다 댓글 스레드의 사용자들은 각 답글에 대한 알림을 받습니다. 알림을 조정하려면, 톱니바퀴 메뉴에서 **Notifications**을 선택하세요. | + +## Notebooks의 다중 사용자 경험 {#multiplayer-experience-in-notebooks} + +Notebooks는 완전한 협업을 지원하여 여러 사용자가 동시에 편집할 수 있습니다. 협업자가 노트북을 열면 해당 사용자의 커서가 실시간으로 표시됩니다. 커서 위에 마우스를 올리면 협업자의 이름이 표시됩니다. + + + +### 위젯 {#widgets} + +다른 사용자가 위젯을 편집 중이면 위젯 주위에 테두리가 표시됩니다. 위젯은 마지막 저장 내용이 우선 적용되므로 다른 사용자가 편집 중인 위젯은 수정하지 마세요. + + + +#### 접속 현황 {#presence} + +노트북 상단에서 현재 노트북을 보고 있는 모든 사용자의 아바타 이미지를 볼 수 있습니다. 아바타 위에 마우스를 올리면 관련된 협업자의 이름을 볼 수 있습니다. + + + +## 노트북 구성하기 {#configuring-a-notebook} + +### 템플릿 변수 {#template-variables} + +Notebooks는 템플릿 변수를 지원합니다. 템플릿 변수 값을 추가하고 선택하여 시각화를 동적으로 범위 지정합니다. 자세한 내용은 [템플릿 변수][5]를 참조하세요. + +
    일부 Analysis 기능은 템플릿 변수 지원이 제한되거나 지원되지 않을 수 있습니다. 자세한 내용은 Analysis Notebooks의 템플릿 변수 지원을 참조하세요.
    + +### 시간 제어 {#time-controls} + +기본적으로 모든 그래프는 노트북 헤더에 설정된 전역 시간 프레임에 연결됩니다. + +다른 시간 프레임을 보려면 전역 시간 선택기에서 옵션을 선택하거나 그래프에서 직접 드래그하여 범위를 선택합니다. 노트북 URL은 이 새로운 시간 프레임을 반영하도록 업데이트지만 노트북에는 저장되지 않습니다. + +**참고**: 그래프에서 클릭 후 드래그하여 확대해도 그래프가 전역 시간에서 분리되지 않습니다. 대신 노트북의 전역 시간이 변경됩니다. + + + +현재 시간을 노트북의 기본값으로 저장하려면 **Set Default Time**을 클릭하세요. 이전 저장된 기본 전역 시간으로 전역 시간을 재설정하려면 재설정 버튼을 클릭하세요. + +개별 그래프에 대해 전역 시간에서 연결을 해제한 후 독립적인 시간 프레임으로 설정할 수 있습니다. + + + +단일 그래프에서 다른 시간 프레임을 보려면 그래프를 편집하고 토글을 사용하여 전역 시간에서 연결을 해제하세요. 시간 선택기를 사용하거나 그래프에서 드래그하여 시간 범위를 변경하세요. 편집 모드에서 변경한 내용은 **Done**을 클릭하면 자동으로 저장됩니다. 변경 사항을 취소하려면 **Done** 대신 **Cancel**을 클릭하세요. + +### 모드 {#modes} + +노트북 오른쪽 상단에 있는 드롭다운을 선택하여 노트북 내에서 모드를 전환할 수 있습니다. + +- **Editing**: 노트북을 변경할 수 있는 모드입니다. +- **Viewing**: 읽기 전용 모드로, 기존 설정 및 정보가 의도치 않게 수정되는 것을 방지합니다. + +### 버전 기록 {#version-history} + +노트북에서 톱니바퀴 아이콘을 클릭하고 **Version history**을 선택하면 버전 기록 사이드 패널이 열립니다. 이전 버전의 노트북을 미리 보거나 복원하거나 복제할 수 있습니다. 자세한 내용은 [버전 기록 가이드][6]를 참조하세요. + +### 그래프 스냅샷 {#graph-snapshots} + +Notebooks는 데이터 보존 기간이 만료되기 전에 그래프의 상태를 유지할 수 있도록 고정 시간 범위를 사용하는 그래프의 스냅샷을 자동으로 생성합니다. 별도의 설정은 필요하지 않습니다. 그래프 옆의 케밥 메뉴를 사용하여 스냅샷을 확인하거나 다운로드하세요. + +{{< img src="notebooks/kebab_snapshots.png" alt="스냅샷을 보거나 다운로드하기 위한 케밥 메뉴 옵션" style="width:100%;">}} + +스냅샷은 고정된 시간 범위(예: `Aug 18, 12:00 am - Aug 19, 11:59 pm`)를 사용하는 그래프의 정적 이미지입니다. 그래프가 고정된 시간 범위를 계속 사용하는 한, 그래프가 업데이트될 때 스냅샷도 함께 업데이트됩니다. 그래프를 전역 시간 범위(예: `Past 1 hour`)로 전환하면 해당 스냅샷은 제거됩니다. + +노트북 제목 아래의 그래프 스냅샷 표시기에 마우스를 올리면 노트북의 스냅샷 상태를 미리 볼 수 있습니다. 미리 보기에는 가장 최근 스냅샷의 생성 시각과 생성된 스냅샷의 수가 표시됩니다. + +{{< img src="notebooks/hover_graph_snapshots.png" alt="생성된 스냅샷의 수를 보여주는 스냅샷 표시기" style="width:100%;">}} + +노트북에 데이터 보존 기간이 지난 데이터를 포함하는 그래프가 있는 경우 노트북에는 해당 그래프의 인라인 스냅샷이 표시됩니다. 이 스냅샷은 정적 이미지이지만 원본 그래프를 수정하면 새 스냅샷으로 대체됩니다. + +### 권한 {#permissions} + +기본적으로 모든 사용자는 노트북에 대한 전체 액세스 권한을 갖고 있습니다. + +액세스 제어 기능을 사용하여 본인만 노트북을 보거나 편집하도록 제한하세요. +1. 노트북 보기 화면에서 오른쪽 상단의 **Share** 버튼을 클릭합니다. +1. **Private to me**를 선택합니다. +1. **Save**를 클릭합니다. + +세분화된 액세스 제어를 사용하여 특정 노트북을 편집할 수 있는 [역할][7]을 제한하세요. +1. 노트북 보기 화면에서 오른쪽 상단의 **Share** 버튼을 클릭합니다. +1. **사용자 지정**을 선택합니다. +1. 조직 액세스 권한을 **Viewer**로 변경하여 조직 전체의 편집 권한을 제거합니다. +1. 드롭다운을 사용하여 노트북을 편집할 수 있는 역할, 팀 또는 사용자를 하나 이상 선택합니다. +1. **Add**를 클릭합니다. +1. 대화 상자가 업데이트되며 선택한 역할에 **Editor** 권한이 부여된 것으로 표시됩니다. +1. **Save**를 클릭합니다. + +**참고:** 노트북에 대한 편집 권한을 유지하려면 저장하기 전에 사용자가 구성원인 역할을 하나 이상 포함해야 합니다. + +제한된 노트북에 대한 일반 액세스를 복원하려면 편집 액세스 권한이 있어야 합니다. 다음 단계를 완료하세요. +1. 노트북 보기 화면에서 오른쪽 상단의 **Share** 버튼을 클릭합니다. +1. **My Org**를 선택합니다. +1. **Save**를 클릭합니다. + +## 노트북 찾기 {#finding-notebooks} + +[Notebooks 목록][1] 페이지는 모든 노트북을 찾을 수 있는 곳입니다. + + + +### 검색 {#search} + +검색 필드는 전체 텍스트 검색을 지원합니다. 쿼리를 입력하면 관련 노트북이 결과로 표시됩니다. + +### 필터링 {#filtering} + +다음 방법으로 노트북을 필터링할 수 있습니다. +| 필터 유형 | 설명 | +|------------------|-----------------------------------------------------------------------------| +| **작성자** | 작성자로 필터링하려면 작성자 드롭다운을 선택한 후 필터링할 작성자 이름을 입력합니다. | +| **팀** | 팀으로 필터링하려면 팀 드롭다운을 선택한 후 필터링할 팀 이름을 입력합니다. | +| **노트북 유형**| 조사, 사후 분석, 런북, 보고서 또는 설명서 기준으로 필터링합니다. | +| **수정 날짜**| 수정 날짜 드롭다운을 사용하여 노트북을 최근 수정한 시점을 기준으로 필터링합니다. | + +내 노트북과 내가 속한 팀으로 태그가 지정된 노트북에 접근할 수 있는 빠른 필터도 있습니다. + +### 최근 작업으로 돌아가기 {#jump-back-in} + +필터가 사용되지 않으면 최근에 열어보거나 편집한 노트북을 보여주는 Jump Back In 섹션이 나타납니다. + + + +### 노트북 정렬 {#sorting-notebooks} + +노트북은 ⭐, 세부 정보 또는 수정 날짜를 선택하여 해당 값으로 정렬할 수 있습니다. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: https://app.datadoghq.com/notebook/list +[2]: https://app.datadoghq.com/notebook/list?location=templates +[3]: /ko/dashboards/querying/#graphing-editor +[4]: https://www.markdownguide.org/basic-syntax/#images-1 +[5]: /ko/dashboards/template_variables/ +[6]: /ko/notebooks/guide/version_history +[7]: /ko/account_management/rbac/ +[8]: /ko/incident_response/incident_management/post_incident/postmortems \ No newline at end of file diff --git a/content/ko/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md b/content/ko/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md new file mode 100644 index 00000000000..a6960eda60f --- /dev/null +++ b/content/ko/real_user_monitoring/application_monitoring/browser/setup/client.mdoc.md @@ -0,0 +1,70 @@ +--- +aliases: +- /ko/real_user_monitoring/setup +- /ko/real_user_monitoring/browser/setup/client +description: NPM 또는 CDN을 사용한 클라이언트 측 계측으로 RUM Browser SDK를 설정하여 웹 애플리케이션의 사용자 경험, + 성능 및 오류를 모니터링합니다. +further_reading: +- link: /real_user_monitoring/application_monitoring/browser/advanced_configuration/ + tag: 설명서 + text: 고급 구성 +- link: /session_replay/browser/ + tag: 설명서 + text: 세션 리플레이 설정 +- link: /real_user_monitoring/error_tracking/browser/ + tag: 설명서 + text: 오류 추적 설정 +- link: /real_user_monitoring/correlate_with_other_telemetry/ + tag: 설명서 + text: RUM 이벤트를 다른 텔레메트리와 상호 연결하기 +title: 브라우저 모니터링 클라이언트 측 설정 +--- +## 개요 {% #overview %} + +Datadog 브라우저 SDK를 사용하면 웹 애플리케이션에 대해 Real User Monitoring(RUM)을 활성화하여 사용자 경험과 애플리케이션 성능에 대한 포괄적인 가시성을 확보할 수 있습니다. RUM을 사용하면 페이지 로드 시간, 사용자 상호작용, 리소스 로딩 및 애플리케이션 오류를 실시간으로 모니터링할 수 있습니다. + +RUM의 주요 기능: + +- 페이지 로드, 사용자 작업 및 리소스 요청에 대한 상세 성능 메트릭을 통해 사용자 경험 모니터링 +- 세션 리플레이 기능을 통해 애플리케이션 내 사용자 여정 추적 +- 성능 병목 현상 식별 및 APM 트레이스와의 연계를 통한 프론트엔드/백엔드 성능의 상관관계 분석 + +브라우저 SDK는 최신 데스크톱 및 모바일 브라우저를 지원하며 주요 성능 메트릭, 사용자 상호작용 및 애플리케이션 오류를 자동으로 수집합니다. 설정이 완료되면 Datadog에서 애플리케이션별 RUM 구성을 관리하고, 대시보드 및 RUM Explorer에서 수집된 데이터를 시각화할 수 있습니다. + +{% partial file="sdk/setup/browser.mdoc.md" /%} + +#### 세션 샘플링 비율 설정 {% #set-session-sampling-rates %} + +애플리케이션이 Datadog RUM으로 전송하는 데이터 양을 제어하기 위해 브라우저 SDK 초기화 시 RUM 세션의 샘플링 비율을 지정할 수 있습니다. 예를 들어, 세션의 80%를 샘플링하려면 `sessionSampleRate`를 80으로 설정합니다. + +```javascript +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '', + sessionSampleRate: 80, + sessionReplaySampleRate: 20, + // ... other configuration options +}); +``` + +자세한 내용은 [브라우저 RUM & 세션 리플레이 샘플링][1]을 참조하세요. + +## 애플리케이션 모니터링 시작 {% #start-monitoring-your-application %} + +RUM의 기본 설정을 완료했으므로, 애플리케이션이 브라우저 오류를 수집하고 실시간으로 문제 모니터링과 디버깅을 시작할 수 있습니다. + +[대시보드][3]에서 [수집된 데이터][2]를 시각화하거나 [RUM Explorer][4]에서 검색 쿼리를 생성합니다. + +Datadog이 데이터 수신을 시작할 때까지 애플리케이션은 Applications 페이지에 pending으로 표시됩니다. + +## 다음 단계 {% #next-steps %} + +[고급 구성][5]을 참조하세요. + + +[1]: /ko/real_user_monitoring/guide/sampling-browser-plans/ +[2]: /ko/real_user_monitoring/application_monitoring/browser/data_collected/ +[3]: /ko/real_user_monitoring/platform/dashboards/ +[4]: https://app.datadoghq.com/rum/explorer +[5]: /ko/real_user_monitoring/application_monitoring/browser/advanced_configuration/ \ No newline at end of file diff --git a/content/ko/remote_configuration/_index.md b/content/ko/remote_configuration/_index.md new file mode 100644 index 00000000000..03d7f6eaa1b --- /dev/null +++ b/content/ko/remote_configuration/_index.md @@ -0,0 +1,211 @@ +--- +algolia: + tags: + - remote config + - remote configuration +aliases: +- /ko/agent/guide/how_rc_works +- /ko/agent/guide/how_remote_config_works +- /ko/agent/remote_config +description: 인프라스트럭처에 배포된 Agent, SDK, Observability Pipelines Worker와 같은 Datadog 구성 + 요소를 원격으로 구성하고 동작을 변경하세요. +further_reading: +- link: /security/application_security/how-appsec-works/#built-in-protection + tag: 설명서 + text: 애플리케이션 보안 모니터링의 작동 방식 +- link: /dynamic_instrumentation/?tab=configurationyaml#enable-remote-configuration + tag: 설명서 + text: Dynamic Instrumentation +- link: /security/workload_protection/ + tag: 설명서 + text: Workload Protection 설정 +- link: https://www.datadoghq.com/blog/compliance-governance-transparency-with-datadog-audit-trail/ + tag: 블로그 + text: Datadog Audit Trail 사용 +- link: https://www.datadoghq.com/blog/remote-configuration-for-datadog/ + tag: 블로그 + text: Remote Configuration을 통해 Datadog 구성 요소에 실시간 업데이트를 적용합니다. +title: Remote Configuration +--- +## 개요 {#overview} + +Remote Configuration은 Datadog의 기능으로, 인프라에 배포된 Agent, SDK, Observability Pipelines Worker와 같은 Datadog 구성 요소의 선택된 제품 기능을 원격으로 구성하고 동작을 변경할 수 있습니다. Remote Configuration을 사용하여 환경 내 Datadog 구성 요소에 대한 구성을 필요에 따라 적용하여 관리 비용을 줄이고 팀 간의 마찰을 줄이며 문제 해결 시간을 단축합니다. + +Datadog 보안 제품인 App and API Protection 및 Workload Protection을 위해 Remote Configuration이 활성화된 Agent와 호환되는 SDK는 실시간 보안 업데이트 및 응답을 제공하여 애플리케이션 및 클라우드 인프라의 보안 태세를 강화합니다. + +## 작동 방식 {#how-it-works} + +Remote Configuration이 활성화되면 Datadog 구성 요소(예: Datadog Agent)는 구성 변경 사항을 적용할 준비가 된 [Datadog site][1]를 안전하게 폴링합니다. 대기 중인 변경 사항은 Datadog 구성 요소에 자동으로 적용됩니다. 예를 들어, Remote Configuration이 활성화된 제품 기능에 대한 구성 변경 사항을 Datadog UI에서 제출한 후, 변경 사항은 Datadog에 저장됩니다. + +다음 다이어그램은 Remote Configuration 작동 방식을 설명합니다. + +{{사용자는 UI에서 기능을 구성하고, 구성은 Datadog에 저장되며, Agent는 구성 업데이트를 요청합니다.}} + +1. Datadog UI에서 선택한 제품 기능을 구성합니다. +2. 제품 기능 구성은 Datadog 내에 안전하게 저장됩니다. +3. Remote Configuration이 활성화된 Datadog 구성 요소는 환경 내에서 안전하게 폴링하고, 구성 업데이트를 수신하며, Datadog에서 자동으로 적용합니다. 환경에 배포된 트레이스 라이브러리는 Datadog을 직접 폴링하는 대신 Agent와 통신하여 Datadog에서 구성 업데이트를 요청하고 수신합니다. + +## 지원되는 환경 {#supported-environments} + +Remote Configuration은 지원되는 Datadog 구성 요소가 배포된 환경에서 작동합니다. 지원되는 Datadog 구성 요소는 다음과 같습니다. +- Agent +- 트레이스(간접) +- Observability Pipelines Worker +- 프라이빗 액션 러너 및 AWS Fargate와 같은 서버리스 컨테이너 클라우드 서비스. + +Remote Configuration은 AWS App Runner, Azure Container Apps, Google Cloud Run과 같은 서버리스 컨테이너 관리 앱이나 AWS Lambda, Azure Functions, Google Cloud Functions와 같은 컨테이너 패키징으로 배포된 함수는 지원하지 않습니다. + +## 지원되는 제품 및 기능 {#supported-products-and-features} + +다음 제품 및 기능은 Remote Configuration과 함께 지원됩니다. + +Fleet Automation +: - [플레어 전송][27]을 Datadog 사이트에서 직접 수행합니다. 호스트에 직접 접근하지 않고 Datadog Agent를 원활하게 문제 해결합니다. +: - [Agent를 업그레이드][29]하세요. + +App and API Protection(AAP) +: - [원클릭 AAP 활성화][33]: Datadog UI에서 원클릭으로 AAP를 활성화합니다. +: - [앱 내 공격 패턴 업데이트][34]: Datadog에서 새로운 취약점이나 공격 벡터가 공개될 때마다 최신 웹 애플리케이션 방화벽(WAF) 공격 패턴을 자동으로 수신합니다. +: - [보호][34]: Datadog UI를 통해 AAP Security Signals 및 트레이스에서 플래그된 공격자의 IP, 인증된 사용자 및 의심스러운 요청을 일시적 또는 영구적으로 차단합니다. + +Application Performance Monitoring(APM) +: - 런타임에서의 구성: 서비스의 트레이스 샘플링 비율, 로그 주입 활성화 및 HTTP 헤더 태그를 카탈로그 UI 내에서 변경하여 서비스를 재시작할 필요 없이 조정할 수 있습니다. 자세한 내용은 [런타임에 구성][22]을 참조하세요. +: - [원격으로 Agent 샘플링 비율 설정][35]: Datadog Agent를 원격으로 구성하여 트레이스 샘플링 비율을 변경하고 조직의 트레이스 수집을 필요에 따라 조정하는 규칙을 설정합니다. Datadog Agent를 재시작할 필요가 없습니다. + +[Dynamic Instrumentation][36] +: - 코드 변경 없이 라이브 애플리케이션에서 중요한 메트릭, Traces 및 로그를 전송합니다. + +Workload Protection +: - 자동 기본 Agent 규칙 업데이트: 새로운 Agent 탐지 및 개선 사항이 출시될 때 자동으로 Datadog이 유지 관리하는 기본 Agent 규칙을 수신하고 업데이트합니다. 자세한 내용은 [Workload Protection 설정][3]을 참조하세요. +: - 사용자 정의 Agent 규칙의 자동 배포: 사용자 정의 Agent 규칙을 지정된 호스트(모든 호스트 또는 정의된 하위 집합의 호스트)에 자동으로 배포합니다. + +Observability Pipelines +: - [Observability Pipelines Workers][4](OPW)를 원격으로 배포 및 업데이트: Datadog UI에서 파이프라인을 구축하고 편집하며, 환경에서 실행 중인 OPW 인스턴스에 구성 변경 사항을 롤아웃합니다. + +[Autoscaling][47] +: - 컨테이너화된 환경에 대한 자동 확장 클러스터 및 작업 부하 확장 구성을 원격으로 관리합니다. 자세한 내용은 [Autoscaling][47]을 참조하세요. + +Private Action 러너 +: - 공용 인터넷에 서비스를 노출하지 않고 개인 네트워크에 호스팅된 서비스와 상호 작용하는 Datadog workflows 및 앱을 실행합니다. 자세한 내용은 [Private Actions][30]을 참조하세요. + +Feature Flag +: - 평가 컨텍스트에 따라 동기식 변형 할당을 위한 서버 측 SDK에 플래그 구성(대상 및 할당 규칙)을 전달합니다. 자세한 내용은 [Feature Flag][48]를 참조하세요. + +## 보안 고려 사항 {#security-considerations} + +Datadog은 Datadog 구성 요소에서 수신하고 적용한 구성의 기밀성, 무결성 및 가용성을 보호하기 위해 다음과 같은 안전 기기를 구현합니다. + +- 원격 구성 기능이 활성화된 Datadog 구성 요소가 귀하의 인프라에서 Datadog에 구성 요청을 합니다. +
    Private Action 러너와 같은 일부 구성 요소는 항상 Remote Configuration 기능이 활성화되어 있습니다. Agent와 같은 다른 구성 요소는 디스크 내 구성 옵션을 사용하여 활성화하거나 비활성화할 수 있습니다.
    +- Datadog은 Datadog 구성 요소에서 요청하지 않는 한 구성 변경 사항을 전송하지 않습니다. 구성 변경 사항을 전송하는 경우, Datadog은 요청하는 구성 요소와 관련된 변경 사항만 전송합니다. +- 구성 요청은 귀하의 인프라에서 Datadog으로 HTTPS(포트 443)를 통해 시작됩니다. 이는 Agent가 기본적으로 관측 가능성 데이터를 전송하는 데 사용하는 동일한 포트입니다. +- 귀하의 Datadog 구성 요소와 Datadog 간의 통신은 HTTPS를 사용하여 암호화되며, Private Action 러너의 경우 JWT 토큰이 대신 사용되는 것을 제외하고는 귀하의 Datadog API 키를 사용하여 인증 및 권한 부여됩니다. +- API 키에 대해 Remote Configuration 기능을 활성화 또는 비활성화하고 지원되는 제품 기능을 사용하려면 [`api_keys_write`][5] 권한이 있는 사용자여야 합니다. +- Datadog UI를 통해 제출된 구성 변경 사항은 요청하는 Datadog 구성 요소에 의해 서명되고 검증되어 구성의 무결성을 확인합니다. + +### 역할 기반 액세스 {#role-based-access} + +Remote Configuration을 활성화하면 다음 제품에 영향을 미칩니다. 각 제품은 사용자에게 부여해야 하는 역할 기반 액세스 제어 집합을 정의합니다. 액세스 관리에 대한 일반 정보는 [Access Control][37]을 참조하세요. + + | Remote Configuration이 활성화된 제품 | Role-Based Access Controls | + |----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Fleet Automation | `FLEET_POLICIES_WRITE`
    `AGENT_UPGRADE_WRITE`
    `FLEET_FLARE`

    자세한 내용은 [Fleet Automation][38]을 참조하세요. | + | 앱 및 API 보호 | `APPSEC_ACTIVATION_READ`
    `APPSEC_ACTIVATION_WRITE`
    `APPSEC_PROTECT_READ`
    `APPSEC_PROTECT_WRITE`

    자세한 내용은 [Access Control][39]을 참조하세요. | + | APM | `APM_SERVICE_INGEST_READ`
    `APM_SERVICE_INGEST_WRITE`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    자세한 내용은 [Adaptive Sampling][40]을 참조하세요. | + | Dynamic Instrumentation | `DEBUGGER_READ`
    `DEBUGGER_WRITE`
    `DEBUGGER_WRITE_PRE_PROD`
    `APM_REMOTE_CONFIGURATION_READ`
    `APM_REMOTE_CONFIGURATION_WRITE`

    자세한 내용은 [APM][41]을 참조하세요. | + | Workload Protection | `SECURITY_MONITORING_CWS_AGENT_RULES_WRITE`
    `SECURITY_MONITORING_CWS_AGENT_RULES_READ`
    `SECURITY_MONITORING_CWS_AGENT_RULES_ACTIONS`

    자세한 내용은 [보안][42]을 참조하세요. | + | CSM 사이트 스캐닝 | `ORG_MANAGEMENT`
    `MANAGE_INTEGRATIONS`

    자세한 내용은 [에이전트 없는 스캐닝 활성화][43]를 참조하세요. | + | Observability Pipelines | `OBSERVABILITY_PIPELINES_READ`
    `OBSERVABILITY_PIPELINES_WRITE`
    `OBSERVABILITY_PIPELINES_DELETE`
    `OBSERVABILITY_PIPELINES_DEPLOY`
    `OBSERVABILITY_PIPELINES_CAPTURE_WRITE`
    `OBSERVABILITY_PIPELINES_CAPTURE_READ`

    자세한 내용은 [Observability Pipelines][44]을 참조하세요. | + | Private Action Runner | `ON_PREM_RUNNER_WRITE`
    `ON_PREM_RUNNER_READ`
    `ON_PREM_RUNNER_USE`

    자세한 내용은 [App Builder & Workflow Automation][45]을 참조하세요. | + | Network Device Monitoring(NDM) | `NDM_DEVICE_PROFILES_VIEW`
    `NDM_DEVICE_PROFILES_EDIT` | + | Container Autoscaling | `ORCHESTRATION_AUTOSCALING_MANAGE`
    `ORCHESTRATION_WORKLOAD_SCALING_WRITE`
    `ORCHESTRATION_WORKLOAD_SCALING_READ` | + | Serverless Lambda 자동 계측 | `SERVERLESS_AWS_INSTRUMENTATION_READ`
    `SERVERLESS_AWS_INSTRUMENTATION_WRITE`

    자세한 내용은 [Serverless][46]를 참조하세요. | + | Feature Flags | `FEATURE_FLAG_CONFIG_READ`
    `FEATURE_FLAG_CONFIG_WRITE`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_READ`
    `FEATURE_FLAG_ENVIRONMENT_CONFIG_WRITE`

    자세한 내용은 [Feature Flags][48]를 참조하세요. | + +## Remote Configuration 활성화 {#enable-remote-configuration} + +대부분의 경우, Remote Configuration은 귀하의 조직에 대해 기본적으로 활성화되어 있습니다. 조직에서 Remote Configuration이 활성화되어 있는지 확인하려면 [Remote Configuration][8] 설정 페이지를 확인하세요. Remote Configuration을 활성화해야 하는 경우: +1. 귀하의 RBAC 권한에 [`org_management`][7]이 포함되어 있는지 확인하여 귀하의 조직에 대해 Remote Configuration을 활성화할 수 있습니다. +1. 조직 설정 페이지에서 [Remote Configuration][8]을 활성화하세요. 이렇게 하면 귀하의 조직 내 Datadog 구성 요소가 Datadog으로부터 구성을 받을 수 있습니다. +1. 아래의 [제품별 구성](#product-specific-configuration) 지침을 따라 Remote Configuration을 설정하세요. + +### 제품별 구성 {#product-specific-configuration} + +구성 중인 제품에 대한 특정 지침은 아래 문서를 참조하세요. + +| 제품 | 설정 지침 | +|-------------------------|----------------------------------------------------------------------------------------------------------------| +| Fleet Automation | [Setup Fleet Automation][31] | +| APM | [런타임 구성](/tracing/guide/remote_config/) | +| Dynamic Instrumentation | [Dynamic Instrumentation 시작](/dynamic_instrumentation/#getting-started) | +| Workload Protection | [Workload Protection][3] | +| Observability Pipelines | Observability Pipelines에 사용하는 [API 키에서 Remote Configuration이 활성화되어][32] 있는지 확인하세요. | +| Sensitive Data Scanner | [클라우드 스토리지](/security/sensitive_data_scanner/setup/cloud_storage/?tab=newawsaccount) | +| Private Action Runner | [Private Actions 개요](/actions/private_actions/) | +| Feature Flags | [Server-Side Feature Flags](/feature_flags/server/) | + +## 모범 사례 {#best-practices} + +### Datadog Audit Trail {#datadog-audit-trail} + +[Datadog Audit Trail][13]을 사용하여 조직 액세스 및 Remote Configuration 활성화 이벤트를 모니터링하세요. Audit Trail을 통해 관리자는 Datadog API 및 애플리케이션 키의 생성, 삭제 및 수정을 추적할 수 있습니다. Audit Trail이 구성된 후에는 Remote Configuration 기능과 관련된 이벤트 및 이러한 변경을 요청한 사람을 볼 수 있습니다. Audit Trail을 통해 이벤트의 순서를 재구성하고 Remote Configuration에 대한 강력한 Datadog monitoring을 설정할 수 있습니다. + +### Monitors {#monitors} + +관심 있는 이벤트가 발생할 때 알림을 받을 수 있도록 [모니터링][14]을 구성하세요. + +## Remote Configuration 선택 해제 {#opting-out-of-remote-configuration} + +Remote Configuration을 전역적으로 비활성화하는 대신, Datadog은 특정 Datadog 제품에 대해 선택 해제를 권장합니다. 자세한 내용은 [해당 제품에 대한 문서](#product-specific-configuration)를 참조하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/getting_started/site/ +[3]: /ko/security/workload_protection/ +[4]: /ko/observability_pipelines/#observability-pipelines-worker +[5]: /ko/account_management/rbac/permissions#api-and-application-keys +[6]: /ko/security/application_security/threats/setup/compatibility/ +[7]: /ko/account_management/rbac/permissions#access-management +[8]: https://app.datadoghq.com/organization-settings/remote-config +[9]: /ko/security/default_rules/#cat-workload-security +[10]: /ko/tracing/trace_pipeline/ingestion_controls/#managing-ingestion-for-all-services-at-the-agent-level +[11]: /ko/dynamic_instrumentation/?tab=configurationyaml#enable-remote-configuration +[12]: /ko/security/application_security/how-appsec-works/#built-in-protection +[13]: /ko/account_management/audit_trail +[14]: /ko/monitors/ +[15]: /ko/help/ +[16]: /ko/remote_configuration +[17]: /ko/agent/configuration/network +[18]: /ko/agent/configuration/proxy/ +[19]: /ko/internal_developer_portal/catalog/ +[20]: /ko/dynamic_instrumentation/?tab=configurationyaml#prerequisites +[21]: /ko/agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file +[22]: /ko/tracing/trace_collection/runtime_config/ +[23]: /ko/remote_configuration#opting-out-of-remote-configuration +[24]: https://app.datadoghq.com/organization-settings/api-keys +[25]: /ko/agent/guide/ +[26]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=org-enablement-step +[27]: /ko/agent/fleet_automation/fleet_view/#send-a-remote-flare +[28]: /ko/security/sensitive_data_scanner/?tab=usingtheagent +[29]: /ko/agent/fleet_automation/upgrade_agents/ +[30]: /ko/actions/private_actions/use_private_actions/ +[31]: /ko/agent/guide/setup_remote_config +[32]: https://app.datadoghq.com/organization-settings/remote-config/setup?page_id=api-key-enablement-step&standalone=1 +[33]: /ko/security/application_security/setup/ +[34]: /ko/security/application_security/ +[35]: /ko/tracing/trace_pipeline/adaptive_sampling/ +[36]: /ko/tracing/dynamic_instrumentation/#explore-dynamic-instrumentation +[37]: /ko/account_management/rbac +[38]: /ko/agent/fleet_automation/#control-access-to-fleet-automation +[39]: /ko/security/access_control/#permissions +[40]: /ko/tracing/trace_pipeline/adaptive_sampling/#permissions +[41]: /ko/account_management/rbac/permissions/#apm +[42]: /ko/account_management/rbac/permissions/#cloud-security-platform +[43]: /ko/security/cloud_security_management/setup/#enable-agentless-scanning +[44]: /ko/account_management/rbac/permissions/#observability-pipelines +[45]: /ko/account_management/rbac/permissions/#app-builder--workflow-automation +[46]: /ko/account_management/rbac/permissions/#serverless +[47]: /ko/containers/autoscaling +[48]: /ko/feature_flags/ \ No newline at end of file diff --git a/content/ko/security/code_security/iac_security/iac_rules/_index.md b/content/ko/security/code_security/iac_security/iac_rules/_index.md new file mode 100644 index 00000000000..0666ba68a3b --- /dev/null +++ b/content/ko/security/code_security/iac_security/iac_rules/_index.md @@ -0,0 +1,24 @@ +--- +further_reading: +- link: /security/code_security/iac_security/setup + tag: 설명서 + text: IaC 보안 설정 +- link: /security/code_security/iac_security/configuration + tag: 설명서 + text: IaC 보안 구성 +title: IaC 보안 규칙 +type: iac_security +--- +{{% site-region region="gov,gov2" %}} +
    이 제품은 선택한 Datadog 사이트({{< region-param key="dd_site_name" >}})에서 지원되지 않습니다.
    +{{% /site-region %}} + +[인프라 코드(IaC) 보안][1]은 배포 전에 IaC 파일에서 잘못된 구성 및 보안 위험을 식별하여 클라우드 환경이 안전하고 규정을 준수하도록 보장합니다. + +
    Helm 의 의존성 해결이 올바르게 작동하려면, 각 차트 디렉토리에는 해당 차트가 의존하는 차트가 포함되어야 합니다. 자세한 내용은 Helm 문서의 차트 파일 구조를 참조하세요.
    + +[1]: /ko/security/code_security/iac_security/ + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/content/ko/security/sensitive_data_scanner/_index.md b/content/ko/security/sensitive_data_scanner/_index.md new file mode 100644 index 00000000000..7d530186505 --- /dev/null +++ b/content/ko/security/sensitive_data_scanner/_index.md @@ -0,0 +1,193 @@ +--- +aliases: +- /ko/account_management/org_settings/sensitive_data_detection +- /ko/sensitive_data_scanner/ +disable_toc: false +further_reading: +- link: /security/sensitive_data_scanner/setup/telemetry_data + tag: 설명서 + text: 원격 측정 데이터를 위한 Sensitive Data Scanner 설정 +- link: /security/sensitive_data_scanner/setup/cloud_storage + tag: 설명서 + text: 클라우드 스토리지를 위한 Sensitive Data Scanner 설정 +- link: coterm + tag: 설명서 + text: 'CoTerm: 로컬 및 원격 시스템에서 터미널 세션 및 중요한 활동을 모니터링합니다.' +- link: /data_security/ + tag: 설명서 + text: 데이터 관련 위험 감소 +- link: https://www.datadoghq.com/blog/scaling-sensitive-data-scanner/ + tag: 블로그 + text: 민감 데이터 스캐너를 사용하여 규모에 따라 민감한 데이터 문제를 식별, 분류 및 해결하세요. +- link: https://www.datadoghq.com/blog/sensitive-data-scanner/ + tag: 블로그 + text: Datadog의 Sensitive Data Scanner로 최신 데이터 규정 준수 전략 구축 +- link: https://www.datadoghq.com/blog/sensitive-data-management-best-practices/ + tag: 블로그 + text: 민감 데이터 관리 모범 사례 +- link: https://www.datadoghq.com/blog/data-security/ + tag: 블로그 + text: Data Security으로 내 클라우드 데이터에 있는 민감 데이터 찾기 +- link: https://www.datadoghq.com/blog/hipaa-compliance-sensitive-data-scanner/ + tag: 블로그 + text: Datadog를 사용해 HIPAA 요건의 적용을 받는 기업들이 민감한 데이터를 관리하는 방법 +- link: https://www.datadoghq.com/blog/sds-dlp-for-financial-service-companies/ + tag: 블로그 + text: 금융 서비스 회사가 Datadog를 사용하여 민감한 데이터를 검색, 분류 및 관리하는 방법 +- link: https://www.datadoghq.com/blog/sds-for-insurance-companies/ + tag: 블로그 + text: 보험 회사가 Datadog을 사용하여 민감한 데이터 리스크를 발견, 분류 및 조치하는 방법 +- link: https://www.datadoghq.com/blog/llm-aws-strands + tag: 블로그 + text: Datadog LLM Observability를 통해 Strands Agents 워크플로에 대한 가시성을 확보합니다. +- link: https://www.datadoghq.com/blog/observability-pipelines-mssp + tag: 블로그 + text: Datadog Observability Pipelines를 사용하여 MSSP의 로그 수집 및 집계를 간소화합니다. +- link: https://www.datadoghq.com/blog/datadog-cloud-security-compliance + tag: 블로그 + text: Datadog Cloud Security를 통해 글로벌 프레임워크 전반에 걸쳐 규정 준수를 확장하세요. +title: Sensitive Data Scanner +--- +## 개요 {#overview} + +신용 카드 번호, API 키, IP 주소 및 개인 식별 정보(PII)와 같은 민감한 데이터는 종종 의도치 않게 유출되어 조직이 보안 및 규정 준수 위험에 노출될 수 있습니다. 민감한 데이터는 다음에서 찾을 수 있습니다. + +- APM 스팬 +- 코드 리포지토리 +- Event Management의 이벤트 +- LLM Observability 트레이스 +- RUM 이벤트 +- 애플리케이션 로그와 같은 텔레메트리 데이터 + +엔지니어링 팀이 작업 부하를 클라우드로 이동할 때 민감한 데이터가 클라우드 스토리지 리소스로 의도치 않게 이동할 수 있습니다. Datadog의 Sensitive Data Scanner는 민감한 데이터 유출을 방지하고 비준수 위험을 제한하는 데 도움을 줄 수 있으며, 민감한 데이터를 발견하고 분류하며 필요 시에 수정할 수 있습니다. + +**참고**: Datadog의 도구 및 정책은 PCI v4.0을 준수합니다. 자세한 내용은 [PCI DSS 준수][1]를 참조하세요. + +## 텔레메트리 데이터 스캔 {#scan-telemetry-data} + +{{< img src="sensitive_data_scanner/telemetry_data_issues.png" alt="다섯 가지의 서로 다른 민감한 발견이 감지되었으며, 그 중 두 가지는 중요도가 높고, 하나는 중간 우선 순위이며, 두 가지는 정보입니다." style="width:100%;" >}} + +Sensitive Data Scanner는 [클라우드](#in-the-cloud)에서 또는 [내 환경](#in-your-environment)에서 데이터를 스캔할 수 있습니다. + +### 클라우드에서 {#in-the-cloud} + +클라우드에서 Sensitive Data Scanner를 사용하면 로그와 이벤트를 Datadog 백엔드에 제출하므로 데이터가 비식별화되기 전에 환경을 떠납니다. 로그와 이벤트는 처리 중에 Datadog 백엔드에서 스캔되고 비식별화되므로 민감한 데이터는 이벤트가 인덱싱되고 Datadog UI에 표시되기 전에 비식별화됩니다. + +스캔하여 삭제할 수 있는 데이터는 다음과 같습니다. + +- **로그**: 로그 메시지 및 특성 값을 포함한 모든 구조화된 로그 콘텐츠 및 구조화되지 않은 로그 콘텐츠 +- **APM**: 스팬 특성 값만 +- **RUM**: 이벤트 특성 값만 +- **이벤트**: 이벤트 특성 값만 + +필요 시, 각 제품에 대해 샘플링 비율을 10%에서 99% 사이로 설정할 수 있습니다. 이는 민감한 정보를 스캔하는 데이터 양을 줄여 처음 시작할 때 비용을 관리하는 데 도움이 됩니다. + +각 [스캔 규칙][17]에 대해, 일치하는 민감한 데이터에 다음 중 하나의 액션을 적용할 수 있습니다. + +- **비식별화**: 선택한 단일 토큰으로 일치하는 전체 데이터를 교체합니다. 예를 들어 `[sensitive_data]`. +- **부분 비식별화**: 모든 일치하는 값의 특정 부분을 교체합니다. +- **해시**: 일치하는 전체 데이터를 비가역적인 고유 식별자로 교체합니다. +- **마스킹**(로그에만 사용 가능): 모든 일치하는 값을 마스킹합니다. `Data Scanner Unmask`권한이 있는 사용자는 이 데이터를 Datadog에서 마스킹 해제하고 조회할 수 있습니다. 자세한 내용은 [마스킹 액션][16]을 참조하세요. + +**참고**: 샘플링된 데이터를 스캔할 때, 스캔하는 데이터를 마스킹하는 액션을 선택할 수 없습니다. + +Sensitive Data Scanner를 사용하려면 스캔 그룹을 설정하여 스캔할 데이터를 정의한 후, 스캔 규칙을 설정하여 데이터 내에서 일치시킬 민감한 정보를 결정합니다. 스캔 규칙에 대해 다음 작업을 할 수 있습니다. +- Datadog의 [스캔 규칙 라이브러리][2]에서 미리 정의된 스캔 규칙을 추가합니다. 이 규칙은 이메일 주소, 신용 카드 번호, API 키, 인증 토큰, 네트워크 및 기기 정보 등과 같은 일반적인 패턴을 감지합니다. +- [정규식 패턴을 사용하여 나만의 규칙을 만드세요][3]. + +세부 사항은 [텔레메트리 데이터에 대한 Sensitive Data Scanner 설정][4]을 참조하세요. + +### 내 환경 {#in-your-environment} + +[Observability Pipelines][5]를 사용하여 환경 내에서 로그를 수집하고 처리한 다음, 데이터를 다운스트림 통합으로 라우팅합니다. Observability Pipelines에서 파이프라인을 설정할 때, 로그가 환경을 떠나기 전에 민감한 데이터를 비식별화하도록 [Sensitive Data Scanner 프로세서][6]를 추가하세요. 이메일 주소, 신용 카드 번호, API 키, 인증 토큰, IP 주소 등과 같은 미리 정의된 스캔 규칙을 규칙 라이브러리에서 추가할 수 있습니다. 정규식 패턴을 사용하여 나만의 규칙을 만들 수도 있습니다. + +자세한 내용은 [파이프라인 설정][7]을 참조하세요. + +## LLM Observability 데이터를 스캔 {#scan-llm-observability-data} + +Sensitive Data Scanner는 [Datadog LLM Observability][20] 트레이스를 스캔할 수 있으며, 여기에는 LLM 애플리케이션의 입력 및 출력이 포함됩니다. 프롬프트, 완성 및 LLM 워크플로 메타데이터에서 PII, API 키 또는 독점 정보를 노출하는 것을 방지하는 데 도움이 됩니다. + +LLM Observability 스캔은 텔레메트리 데이터 스캔과 다른 관리형 구성 모델을 사용하며, LLM Observability 스캔에는 다음이 포함됩니다. + +- **하나의 관리형 스캔 그룹**: [LLM Observability 설정 페이지][18]에 처음 접근할 때 귀하의 조직을 위해 기본 스캔 그룹이 자동으로 생성됩니다. 추가 스캔 그룹을 생성하거나 관리형 그룹을 삭제할 수 없습니다. +- **사용자 정의 가능한 규칙**: 기존 규칙을 수정하거나 필요 없는 규칙을 비활성화하거나 추가 민감한 데이터 패턴을 감지하기 위해 사용자 정의 스캔 규칙을 추가할 수 있습니다. + +각 스캔 규칙에 대해, 일치하는 민감한 데이터에 다음 중 하나의 작업을 적용할 수 있습니다. + +- **비식별화**: 선택한 단일 토큰으로 일치하는 전체 데이터를 교체합니다. 예를 들어 `[sensitive_data]`. +- **부분 비식별화**: 모든 일치하는 값의 특정 부분을 교체합니다. +- **해시**: 일치하는 전체 데이터를 비가역적인 고유 식별자로 교체합니다. + +LLM Observability 데이터 스캔을 구성하려면 Sensitive Data Scanner 설정에서 [LLM Observability 설정 페이지][18]로 이동하세요. LLM Observability에 대한 자세한 정보는 [LLM Observability 설명서][20]를 참조하세요. + +## 클라우드 스토리지 스캔 {#scan-cloud-storage} + +{{< callout url="https://www.datadoghq.com/product-preview/data-security" >}} + Amazon S3 버킷 및 RDS 인스턴스에 대한 스캔 지원은 미리 보기 상태입니다. 등록하려면 Request Access를 클릭하세요. +{{< /callout >}} + +{{< img src="sensitive_data_scanner/cloud_storage_issues.png" alt="세 가지 Amazon S3 발견이 있는 Findings 페이지의 데이터 저장소 섹션" style="width:100%;" >}} + +Sensitive Data Scanner를 활성화하면 Amazon S3 버킷에서 민감한 데이터를 분류하고 구분할 수 있습니다. **참고**: Sensitive Data Scanner는 클라우드 스토리지 리소스에서 민감한 데이터를 비식별화하지 않습니다. + +Sensitive Data Scanner는 클라우드 환경에 [에이전트 없는 스캐너][8]를 배포하여 민감한 데이터를 스캔합니다. 이 스캐닝 인스턴스는 [Remote Configuration][9]을 통해 모든 S3 버킷의 목록을 검색하고, 시간이 지남에 따라 CSV 및 JSON과 같은 텍스트 파일을 스캔하도록 설정된 지침을 가지고 있습니다. + +Sensitive Data Scanner는 [전체 규칙 라이브러리][10]를 활용하여 일치 항목을 찾습니다. 일치 항목이 발견되면, 일치 항목의 위치가 스캐닝 인스턴스에 의해 Datadog으로 전송됩니다. **참고**: 데이터 저장소와 그 파일은 귀하의 환경에서만 읽히며, 스캔된 민감한 데이터는 Datadog으로 다시 전송되지 않습니다. + +민감한 데이터 일치를 표시하는 기능 외에도, Sensitive Data Scanner는 민감한 데이터 저장소에 영향을 미치는 [Cloud Security][11]에서 감지된 보안 문제를 표시합니다. 문제를 클릭하면 Cloud Security 내에서 추가 분류 및 수정 작업을 계속할 수 있습니다. + +설정 세부 사항은 [클라우드 스토리지에 대한 Sensitive Data Scanner 설정][12]을 참조하세요. + +## 코드 리포지토리 스캔 {#scan-code-repositories} + +Datadog [Secret Scanning][21]은 코드 리포지토리를 스캔하여 소스 코드에서 노출된 암호를 감지합니다. Secret Scanning은 Sensitive Data Scanner에 의해 구동되며, SDS 라이브러리의 [암호 및 자격 증명 카테고리][19]의 모든 규칙을 사용하여 일치 항목을 찾습니다. + +텔레메트리 데이터 스캐닝과 달리, Secret Scanning은 귀하의 CI/CD 파이프라인 또는 Datadog 내에서 호스팅 스캐닝(지원되는 GitHub, Azure DevOps 및 GitLab) 방식으로 실행됩니다. 코드에서 암호가 감지되면, 해당 발견 사항은 Code Security 인터페이스에 표시됩니다. + +설정 세부정보는 [Secret Scanning 설명서][21]를 참조하세요. + +## 민감한 데이터 발견 사항 조사 {#investigate-sensitive-data-findings} + +{{< img src="sensitive_data_scanner/findings_20251014.png" alt="우선순위별로 분류된 민감한 데이터 발견의 개요를 보여주는 Findings page" style="width:100%;" >}} + +[Findings page][13]를 사용하여 스캐닝 규칙에 의해 식별된 민감한 데이터 발견의 세부정보를 확인하세요. 이 세부정보에는 다음이 포함됩니다. + +- 매칭되는 항목을 감지한 특정 스캐닝 규칙을 통해, 필요에 따라 수정할 규칙을 결정할 수 있습니다. +- 해당 발견이 발생한 스캐닝 그룹을 통해, 누출의 범위를 판단할 수 있습니다. +- 발견과 관련된 이벤트 수를 통해 그 범위와 심각성을 판단할 수 있습니다. +- 발견과 관련된 이벤트 그래프를 통해 발견이 시작된 시점과 진행 상황을 정확히 파악하는 데 도움이 됩니다. +- 발견과 관련하여 생성된 케이스입니다. + +민감한 데이터에 대한 분류 작업에 관한 자세한 내용은 [민감한 데이터 발견 사항 조사][14]를 참조하세요. + +## 민감한 데이터 트렌드 검토 {#review-sensitive-data-trends} + +{{Sensitive Data Scanner Overview 대시보드}} + +Sensitive Data Scanner가 활성화되면, 민감한 데이터 발견을 요약한 [기본 제공 대시보드][15]가 계정에 자동으로 설치됩니다. 이 대시보드에 액세스하려면 **Dashboards** > **Dashboards List**로 이동하여 'Sensitive Data Scanner Overview'를 검색하세요. + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/data_security/pci_compliance/ +[2]: /ko/security/sensitive_data_scanner/scanning_rules/library_rules/ +[3]: /ko/security/sensitive_data_scanner/scanning_rules/custom_rules/ +[4]: /ko/security/sensitive_data_scanner/setup/telemetry_data/ +[5]: /ko/observability_pipelines/ +[6]: /ko/observability_pipelines/processors/sensitive_data_scanner +[7]: /ko/observability_pipelines/configuration/set_up_pipelines/ +[8]: /ko/security/cloud_security_management/setup/agentless_scanning +[9]: /ko/remote_configuration +[10]: /ko/security/sensitive_data_scanner/scanning_rules/library_rules/ +[11]: /ko/security/cloud_security_management +[12]: /ko/security/sensitive_data_scanner/setup/cloud_storage/ +[13]: https://app.datadoghq.com/organization-settings/sensitive-data-scanner +[14]: /ko/security/sensitive_data_scanner/guide/investigate_sensitive_data_findings/ +[15]: https://app.datadoghq.com/dash/integration/sensitive_data_scanner +[16]: /ko/security/sensitive_data_scanner/setup/telemetry_data/?tab=logs#mask-action +[17]: /ko/security/sensitive_data_scanner/scanning_rules/ +[18]: https://app.datadoghq.com/sensitive-data-scanner/configuration/llm-spans +[19]: /ko/security/sensitive_data_scanner/scanning_rules/library_rules/?category=Secrets+and+credentials#overview +[20]: /ko/llm_observability/ +[21]: /ko/security/code_security/secret_scanning/ \ No newline at end of file diff --git a/content/ko/serverless/aws_lambda/instrumentation/_index.md b/content/ko/serverless/aws_lambda/instrumentation/_index.md new file mode 100644 index 00000000000..a6b57535dfc --- /dev/null +++ b/content/ko/serverless/aws_lambda/instrumentation/_index.md @@ -0,0 +1,68 @@ +--- +aliases: +- /ko/serverless/installation/installing_the_library/ +- /ko/serverless/installation +- /ko/serverless/aws_lambda/installation +further_reading: +- link: /serverless/configuration/ + tag: 설명서 + text: Serverless Monitoring 구성 +- link: /integrations/amazon_lambda/ + tag: 설명서 + text: AWS Lambda 통합 +title: AWS Lambda 애플리케이션 계측 +--- +## 개요 {#overview} + +Datadog Lambda Extension을 사용하여 AWS Lambda 애플리케이션을 계측하여 트레이스, 향상된 메트릭 및 사용자 정의 메트릭을 수집합니다. Datadog Lambda Extension은 호스트 기반 인프라 및 애플리케이션에 대해 Datadog Agent 및 Datadog SDK를 사용하는 것과 유사합니다. + +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Datadog이 계측된 AWS Lambda 애플리케이션으로부터 텔레메트리를 수신하는 방법을 보여주는 다이어그램입니다. Datadog Lambda Library로 계측된 귀하의 Lambda 애플리케이션은 로그, 트레이스, 향상된 메트릭 및 사용자 정의 메트릭을 Datadog Lambda Extension으로 전송하며, 이 데이터는 Datadog으로 푸시됩니다." style="width:100%;" >}} + +## 빠른 시작 {#quick-start} + +시작하려면, 아직 계정이 없으시면 [Datadog 계정에 가입하세요][1]. 그런 다음, AWS Lambda 함수의 계측을 위해 [Fleet Automation의 인앱 설치 흐름][8]을 따르세요. 이 빠른 시작 구성은 귀하의 함수가 실시간 메트릭, 로그 및 트레이스를 Datadog으로 전송할 수 있도록 합니다. + +샘플 애플리케이션은 [GitHub에서 제공][6]되며, 여러 런타임 및 IaC 도구로 배포하는 방법에 대한 지침을 포함하고 있습니다. + +빠른 시작 프로세스는 귀하의 Lambda 함수를 즉시 구성합니다. Lambda 함수를 영구적으로 계측하려면, 다음 섹션의 자세한 지침을 참조하세요. + +## Datadog MCP 서버 사용 {#use-the-datadog-mcp-server} + +[Datadog MCP 서버][9]를 사용하여 AI 지원으로 AWS Lambda 컨테이너 모니터링을 설정하세요. 연결한 후, 다음과 같은 프롬프트를 시도해 보세요. + +```shell +Help me monitor my AWS Lambda functions with Datadog +``` + +## 계측 지침 {#instrumentation-instructions} + +{{< card-grid card_width="30%" image_width="200" >}} + {{< image-card href="/serverless/installation/python/" src="integrations_logos/python.png" alt="Python" >}} + {{< image-card href="/serverless/installation/nodejs/" src="integrations_logos/nodejs.png" alt="Node.js" >}} + {{< image-card href="/serverless/installation/ruby/" src="integrations_logos/ruby.png" alt="Ruby" >}} + {{< image-card href="/serverless/installation/java/" src="integrations_logos/java.png" alt="Java" >}} + {{< image-card href="/serverless/installation/go/" src="integrations_logos/go-metro.png" alt="go" >}} + {{< image-card href="/serverless/installation/dotnet/" src="integrations_logos/dotnet_text.png" alt=".NET" >}} +{{< /card-grid >}} + +## 고급 설정 {#advanced-configurations} + +계측이 완료되고 텔레메트리 수집을 설정한 후, [Configure Serverless Monitoring for AWS Lambda][3]을 사용하여: + +- 태그를 사용하여 메트릭, 트레이스 및 로그를 연결 +- API 게이트웨이, AppSync 및 Step Functions와 같은 AWS 리소스로부터 텔레메트리를 수집 +- 개별 Lambda 호출에 대한 요청 및 응답 페이로드 캡처 +- Lambda 함수의 오류를 소스 코드에 연결 +- 로그나 트레이스에서 민감한 정보를 필터링 또는 스크러빙 + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/signup/ +[3]: /ko/serverless/aws_lambda/configuration/ +[4]: /ko/serverless/aws_lambda/fips-compliance/ +[5]: /ko/serverless/aws_lambda/remote_instrumentation +[6]: https://github.com/DataDog/serverless-sample-app +[8]: https://app.datadoghq.com/fleet/install-agent/latest?platform=lambda +[9]: /ko/agentic_onboarding/setup \ No newline at end of file diff --git a/content/ko/service_level_objectives/_index.md b/content/ko/service_level_objectives/_index.md new file mode 100644 index 00000000000..519917c2ceb --- /dev/null +++ b/content/ko/service_level_objectives/_index.md @@ -0,0 +1,375 @@ +--- +aliases: +- /ko/monitors/monitor_uptime_widget/ +- /ko/monitors/slos/ +- /ko/monitors/service_level_objectives/ +- /ko/service_management/service_level_objectives/ootb_dashboard +- /ko/service_management/service_level_objectives/ +description: SLO 상태 추적 +further_reading: +- link: https://learn.datadoghq.com/courses/intro-to-slo + tag: 학습 센터 + text: 서비스 수준 목표(Service Level Objectives)에 대한 소개 +- link: https://www.datadoghq.com/blog/service-page/ + tag: 블로그 + text: 서비스 텔레메트리, Error Tracking, SLO 등 +- link: https://www.datadoghq.com/blog/monitor-service-performance-with-slo-alerts/ + tag: 블로그 + text: SLO 경보를 이용해 서비스 성능 사전 예방 모니터링 +- link: https://www.datadoghq.com/blog/slo-key-questions/ + tag: 블로그 + text: SLO 설정 시 고려해야 할 주요 질문 +- link: https://www.datadoghq.com/blog/define-and-manage-slos/ + tag: 블로그 + text: Datadog으로 SLO를 관리한 모범 사례 +- link: https://www.datadoghq.com/blog/burn-rate-is-better-error-rate/ + tag: 블로그 + text: Burn Rate는 오류율보다 더 나은 지표입니다. +- link: https://www.datadoghq.com/blog/datadog-executive-dashboards + tag: 블로그 + text: Datadog으로 효과적인 임원 대시보드 설계 +- link: https://www.datadoghq.com/blog/slo-monitoring-tracking/ + tag: 블로그 + text: Datadog를 사용하여 SLO의 상태 및 오류 예산 추적 +- link: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/service_level_objective + tag: 외부 사이트 + text: Terraform을 사용한 SLO 생성 및 관리 +title: Service Level Objectives +--- +{{< jqmath-vanilla >}} + +
    + +{{< learning-center-callout header="활성화 웨비나 세션에 참가" hide_image="true" btn_title="등록" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=SLOs&tags.topics-1=Monitors">}} + 기반 활성화 세션을 탐색하고 등록하세요. 네이티브 SLO 및 SLA 추적을 통해 비즈니스에 가장 중요한 문제를 우선순위에 두고 해결하는 방법을 알아보세요. +{{< /learning-center-callout >}} + +## 개요 {#overview} + +Service Level Objectives(SLO)는 사이트 신뢰성 엔지니어링 도구 키트의 핵심 요소입니다. SLO는 애플리케이션 성능에 관한 명확한 목표를 정하는 프레임워크입니다. 이를 통해 궁극적으로 팀이 일관된 고객 경험을 제공하고, 기능 개발과 플랫폼 안정성의 균형을 잡고, 사내외 사용자와 커뮤니케이션을 개선하는 데 도움이 됩니다. + +**팁**: Datadog의 글로벌 검색에서 Service Level Objectives를 열려면 Cmd/Ctrl + K를 누르고 `slo`를 검색하세요. + +## 주요 용어 {#key-terminology} + +서비스 수준 지표(SLI) +: 서비스의 성능 또는 신뢰성을 정량적으로 측정한 것입니다. Datadog SLO에서 SLI는 하나 이상의 Monitors 의 메트릭 또는 집계입니다. + +서비스 수준 목표(SLO) +: 특정 기간 동안 SLI에 대한 목표 백분율입니다. + +서비스 수준 계약(SLA) +: 클라이언트와 서비스 제공업체 간의 명시적 또는 묵시적 계약으로, 클라이언트의 신뢰성 기대치와 이를 충족하지 못할 경우 서비스 제공업체가 받게 될 결과를 규정합니다. + +오류 예산 +: SLO 목표 백분율(100% - 목표 백분율)에서 파생되며, 제품 개발에 투자되는 불확실성이 허용되는 양입니다. + +## SLO 유형 {#slo-types} + +SLO를 생성할 때 다음 유형 중에서 선택할 수 있습니다. +- **메트릭 기반 SLO**: SLI 계산을 개수 기반으로 하고자 할 때 사용할 수 있으며, SLI는 좋은 이벤트의 합계를 총 이벤트의 합계로 나누어 계산됩니다. +- **모니터링 기반 SLO**: SLI 계산을 시간 기반으로 하고자 할 때 사용할 수 있으며, SLI는 모니터링의 가동 시간을 기준으로 합니다. 모니터링 기반 SLO는 새로운 Datadog 모니터링 또는 기존 모니터링을 기반으로 해야 하며, 모든 조정은 기본 모니터링에서 이루어져야 합니다( SLO 생성으로는 불가능합니다). +- **시간 슬라이스 SLO**: SLI 계산을 시간 기반으로 하고자 할 때 사용할 수 있으며, SLI는 시스템이 좋은 동작을 보이는 시간의 양을 총 시간으로 나누어 정의한 사용자 지정 가동 시간을 기준으로 합니다. Time Slice SLO는 Datadog 모니터링이 필요하지 않으며, 다양한 메트릭 필터와 임계값을 시도하고 SLO 생성 중에 가동 중지를 즉시 탐색할 수 있습니다. + +전체 비교는 [SLO 유형 비교][1] 차트를 참조하세요. + +## 설정 {#setup} + +Datadog의 [Service Level Objectives 관리 페이지][2]를 사용하여 새 SLO를 만들거나 기존의 모든 SLO를 보고 관리할 수 있습니다. + +### 구성 {#configuration} + +1. [SLO 관리 페이지][2]에서 **새 SLO +**를 선택합니다. +2. SLO 유형을 선택합니다. [메트릭-기반][3], [모니터링 기반][4] 또는 [시간 슬라이스][5] 유형 중 하나로 SLO를 생성할 수 있습니다. +3. SLO에 대한 목표와 롤링 시간 창(지난 7일, 30일 또는 90일)을 설정합니다. Datadog은 목표를 정해진 SLA보다 더 엄격하게 설정할 것을 권장합니다. 이 시간 창은 SLO 목록에 표시됩니다. 기본적으로 가장 짧은 시간 창이 선택됩니다. +4. 마지막으로 SLO 제목을 입력하고 설명을 더 자세히 작성하거나 설명에 링크를 추가하고 태그를 추가한 후 저장합니다. + +SLO를 설정한 후 [Service Level Objectives 목록 조회][2]에서 선택하여 세부 정보 사이드 패널을 엽니다. 사이드 패널은 각 SLO 목표에 대한 전체 상태 백분율과 남은 오류 예산을 표시하며, SLI의 이력에 대한 상태 막대(모니터링 기반 SLO) 또는 막대 그래프(메트릭 기반 SLO)를 포함합니다. 하나의 [다중 경보 모니터링][6]을 사용하여 그룹화된 모니터링 기반 SLO를 생성하거나 [`sum by` 절][7]을 사용하여 그룹화된 메트릭 기반 SLO를 생성한 경우, 전체 상태 백분율 및 남은 오류 예산 외에도 각 개별 그룹에 대한 상태 백분율과 남은 오류 예산이 표시됩니다. + +**예:** Availability Zone 기준 지연 시간을 추적하기 위해 모니터링 기반 SLO를 생성하는 경우, 전체 SLO 및 SLO가 추적 중인 개별 Availability Zone 에 대한 상태 백분율과 남은 오류 예산이 표시됩니다. + +**참고:** 남은 오류 예산은 백분율로 표시되며 다음 공식을 사용하여 계산됩니다. + +$$\text"error budget remaining" = 100 * {\text"current status" - \text" target"} / { 100 - \text"target"}$$ + +### SLO 목표 설정 {#setting-slo-targets} + +오류 예산 및 오류 예산 경보를 효율적으로 활용하려면 SLO 목푯값을 100% 미만으로 설정해야 합니다. + +100% 목표를 설정하면 오류 예산이 0%가 되며, 이는 오류 예산이 100%—SLO 목표와 같기 때문입니다. 허용 가능한 위험을 나타내는 오류 예산이 없으면 고객을 직접 상대하는 신뢰성을 유지하는 것과 기능 개발에 투자하는 것 사이의 상충되는 우선순위 간의 정렬을 찾는 데 어려움을 겪게 됩니다. 또한, 100% 목표 값을 가진 SLO는 SLO 경보 평가에서 0으로 나누기 오류를 초래합니다. + +**참고:** SLO에 대해 지정할 수 있는 소수점 자릿수는 SLO 유형 및 선택한 시간 창에 따라 다릅니다. 각각의 SLO 유형에 대한 추가 정보는 아래 링크를 참조하세요. + +[Monitor-based SLOs][8]: Up to two decimal places are allowed for 7-day and 30-day targets, up to three decimal places are allowed for 90-day targets. + +[Metric-based SLOs][9]: Up to three decimal places are allowed for all targets. + +## SLO 편집 {#edit-an-slo} + +SLO를 편집하려면 목록 보기에서 SLO의 행 위에 마우스를 올려놓고 행 오른쪽에 나타나는 연필 아이콘을 클릭하거나 행을 클릭하여 세부 정보 사이드 패널을 연 후 패널 오른쪽 상단에 있는 톱니 모양 아이콘에서 편집 버튼을 선택합니다. + +## 권한 {#permissions} + +### 역할 기반 액세스 {#role-based-access} + +모든 사용자는 관련된 [역할][10]에 관계없이 SLO 및 [SLO 상태 수정](#slo-status-corrections)을 볼 수 있습니다. 오직 `slos_write`권한이 있는 역할에 연결된 사용자만 SLO를 생성, 수정 및 삭제할 수 있습니다. + +상태 수정을 생성, 수정 및 삭제하려면 사용자가 `slos_corrections`권한이 필요합니다. 이 권한이 있는 사용자는 해당 SLO를 수정할 수 있는 권한이 없더라도 상태 수정을 할 수 있습니다. 전체 권한 목록은 [RBAC 문서][11]를 참조하세요. + +### 세분화된 액세스 제어 {#granular-access-controls} + +편집할 수 있는 [역할][10]의 목록 을 지정하여 개별 SLO에 대한 액세스를 제한합니다. + +{{< img src="service_management/service_level_objectives/slo_set_permissions.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="톱니바퀴 메뉴의 SLO 권한 옵션">}} + +1. SLO를 클릭하여 세부 정보 사이드 패널을 엽니다. +1. 패널 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다. +1. **Permissions**를 선택합니다. +1. **Restrict Access**를 클릭합니다. +1. 대화 상자가 업데이트되며 조직 구성원은 기본적으로 **Viewer** 권한을 갖는 것으로 표시됩니다. +1. 드롭다운을 사용하여 SLO를 수정할 수 있는 역할, 팀 또는 사용자를 하나 이상 선택합니다. +1. **Add**를 클릭합니다. +1. 대화 상자가 업데이트되며 선택한 역할에 **Editor** 권한이 부여된 것으로 표시됩니다. +1. **Save**를 클릭합니다. + +SLO에 대한 편집 액세스를 유지하려면 저장하기 전에 사용자가 구성원인 역할을 최소 한 개 포함해야 합니다. 액세스 제어 목록에 있는 사용자는 역할을 추가할 수 있으며 자신의 역할 이외의 역할만 제거할 수 있습니다. + +**참고**: 모니터링에 대한 쓰기 권한이 없더라도 모든 모니터링에서 SLO를 생성할 수 있습니다. 마찬가지로, 사용자는 SLO에 대한 쓰기 권한이 없더라도 SLO 경보를 생성할 수 있습니다. 모니터링을 위한 RBAC 권한에 대한 자세한 내용은 [RBAC 설명서][12] 또는 [모니터링을 위한 RBAC 설정 방법 가이드][13]를 참조하세요. + +## SLO 검색 {#searching-slos} + +[Service Level Objectives 관리 페이지][2]에서는 모든 SLO의 고급 검색을 실행하여 검색 결과에서 SLO를 찾고, 보고, 수정하고, 복제하거나 삭제할 수 있습니다. + +고급 검색을 사용하면 다양한 SLO의 특성을 조합해 SLO를 조회할 수 있습니다. + +* `name` 및 `description` - 텍스트 검색 +* `time window` - 7일, 30일, 90일 +* `type` - 메트릭, 모니터링 +* `creator` +* `tags` - 데이터 센터, env, 서비스, 팀 등. + +검색을 실행하려면 왼쪽의 패싯 체크박스와 상단의 검색창을 사용하세요. 체크박스를 선택하면 검색창이 해당 쿼리로 업데이트됩니다. 마찬가지로, 검색창 쿼리를 수정하거나 새로 작성하면 체크박스가 변경 사항을 반영하도록 업데이트됩니다. 쿼리를 편집할 때 쿼리 결과가 실시간으로 업데이트됩니다. 클릭할 'Search' 버튼이 없습니다. + +## SLO 보기{#viewing-slos} + +SLO를 *태그별로* 그룹화하여 데이터의 요약 보기를 확인하세요. 각 상태(위반, 경고, 정상, 데이터 없음)에 있는 SLO의 수를 서비스, 팀, 사용자 여정, 계층 또는 기타 설정된 태그별로 그룹화하여 빠르게 분석할 수 있습니다. + +{{< img src="service_management/service_level_objectives/slo_group_by_new.png" alt="팀별로 그룹화된 SLO의 요약 보기" style="width:100%;" >}} + +SLO를 *상태* 및 *오류 예산* 열로 정렬하여 주의가 필요한 SLO를 우선순위에 따라 정리하세요. SLO 목록은 [구성](#configuration)에서 선택한 주요 시간 창에 대한 SLO의 세부 정보를 표시합니다. 다른 모든 구성 시간 창은 개별 사이드 패널에서 볼 수 있습니다. 해당 테이블 행을 클릭하여 SLO 세부 정보 사이드 패널을 엽니다. + +**참고**: 모바일 기기 홈 화면에서 [Datadog 모바일 앱][14]을 다운로드하여 [Apple 앱 스토어][15] 및 [Google Play 스토어][16]에서 SLO를 확인할 수 있습니다. + +{{< img src="service_management/service_level_objectives/slos-mobile.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="iOS 및 Android의 SLO">}} + +### SLO 태그{#slo-tags} + +SLO 태그는 [SLO 관리 페이지][2]에서 필터링, [SLO 저장된 뷰][17] 생성 또는 SLO를 그룹화하여 볼 때 사용할 수 있습니다. 태그는 다음 방법으로 SLO에 추가할 수 있습니다. + +- SLO를 생성하거나 편집할 때 태그를 추가할 수 있습니다. +- SLO 목록 보기에서 SLO 목록 상단의 *수정 태그* 및 *[팀 수정][18]* 드롭다운 옵션을 사용하여 태그를 일괄적으로 추가 및 업데이트할 수 있습니다. + +{{< img src="service_management/service_level_objectives/slo_bulk_tag.png" alt="SLO 목록 페이지는 대량 태그 편집을 위한 편집 태그 드롭다운을 표시합니다." >}} + +### SLO 소모 비율 지표 {#slo-burn-rate-indicator} + +소모 비율 지표는 지난 2시간 동안 어떤 SLO가 오류 예산을 너무 빨리 소모하고 있는지를 평가하기 위해 2시간 롤링 윈도우를 사용합니다. 소모 비율 지표는 [SLO 관리 페이지][2]에서 해당 SLO 이름 옆에 나타납니다. + +{{< img src="/service_management/service_level_objectives/slo_burn_rate_indicator.png" alt="Datadog의 SLO 관리 페이지입니다. 목록에서 SLO 이름 옆에 빨간 아이콘이 나타납니다. 빨간 아이콘에 마우스를 올리면 추가 정보, 소모 비율 시각화 및 SLO의 해당 서비스 페이지로의 링크가 포함된 모달이 표시됩니다." style="width:80%;" >}} + +두 가지 가능한 지표 유형이 있습니다. +- 지난 2시간 동안 6을 초과하는 심각한 소모 비율을 나타내는 빨간 아이콘입니다. +- 지난 2시간 동안 1과 6 사이의 상승된 소모 비율을 나타내는 노란 아이콘입니다. + +각 지표에는 소모 비율이 상승 및 심각한 임계값에 비해 어디에 위치하는지를 보여주는 시각적 차트가 동반되어 있어 심각성을 빠르게 평가할 수 있습니다. + +SLO는 소모 비율 상태(심각, 상승, 건강)에 따라 필터링할 수 있습니다. 서비스 태그가 있는 SLO의 경우, 각 소모 비율 지표에는 추가 조사를 위한 관련 서비스 페이지로의 직접 링크가 포함됩니다. + +### SLO 기본 보기 {#slo-default-view} + +SLO 목록 보기에서 기본 SLO 페이지가 나타납니다. + +기본 페이지는 다음을 포함합니다. + +- 비어 있는 검색 쿼리 +- 조직에서 정의된 모든 SLO 목록 +- 왼쪽 패싯 목록에서 사용 가능한 패싯 목록 + +### Saved Views {#saved-views} + +저장된 페이지를 사용하면 다음을 공유하여 SLO에 대한 맞춤 검색을 SLO 목록 보기에 저장하고 팀과 공유할 수 있습니다. + +- 검색 쿼리 +- 패싯의 선택된 하위 집합 + +목록 보기에서 SLO의 하위 집합을 조회한 후 해당 쿼리를 저장된 페이지에 추가할 수 있습니다. + +#### Saved Views 추가 {#add-a-saved-view} + +저장된 페이지를 추가하려면: + +1. SLO를 조회합니다. +2. 페이지 상단 왼쪽에 있는 **Save View +**를 클릭합니다. +3. 조회의 이름을 입력하고 저장합니다. + +#### Saved Views 불러오기 {#load-a-saved-view} + +Saved Views를 불러오려면, 페이지 상단 왼쪽에 있는 **조회 보기 표시** 버튼을 눌러 *Saved Views* 패널을 열고 목록에서 Saved Views를 선택합니다. 같은 *Saved Views* 패널의 상단에 있는 *Filter Saved Views* 검색 상자에서 저장된 뷰를 검색할 수도 있습니다. + +#### Saved Views 공유 {#share-a-saved-view} + +목록에 있는 저장된 페이지 위에 마우스를 놓으면 하이퍼링크 아이콘이 나타납니다. 아이콘을 클릭해 링크를 복사한 후 팀원들과 공유할 수 있습니다. + +#### 저장된 뷰 관리 {#manage-saved-views} + +Saved Views를 사용 중인 경우, 해당 Saved Views를 선택하고 쿼리를 수정한 후 *Update* 버튼을 클릭하여 이름 아래의 *Saved Views* 패널에서 업데이트할 수 있습니다. Saved Views의 이름을 변경하거나 삭제하려면 *Saved Views* 패널에서 해당 행 위에 마우스를 올리고 연필 아이콘 또는 휴지통 아이콘을 클릭하세요. + +## SLO 및 SLO 상태 수정 감사 이벤트 {#slo-and-slo-status-correction-audit-events} + +SLO 감사 이벤트를 통해 [Event Explorer][27] 또는 SLO 세부정보의 **감사 기록** 탭을 사용하여 SLO 구성의 이력을 추적할 수 있습니다. SLO 또는 SLO 상태 수정을 생성, 수정 또는 삭제할 때마다 감사 이벤트가 Event Explorer에 추가됩니다. 각 이벤트는 SLO 또는 SLO 상태 수정의 구성에 대한 정보를 포함하며, 스트림은 시간에 따른 구성 변경 이력을 제공합니다. + +### SLO 감사 이벤트 {#slo-audit-events} + +각 이벤트에는 다음과 같은 SLO 설정 정보가 포함됩니다. + +- 이름 +- 설명 +- 목표 백분율 및 시간 창 +- 데이터소스(모니터링 ID 또는 메트릭 쿼리) + +Event Explorer에는 세 가지 유형의 SLO 감사 이벤트가 표시됩니다. + +- `SLO Created` 이벤트 생성 시 SLO 설정 정보 표시 +- `SLO Modified` 이벤트 수정 중에 변경된 설정 정보 표시 +- `SLO Deleted` 이벤트 SLO가 삭제되기 전의 설정 정보를 표시합니다. + +### 상태 수정 감사 이벤트 {#status-correction-audit-events} + +각 이벤트에는 다음과 같은 SLO 상태 수정 설정 정보가 포함되어 있습니다. + +- SLO 이름 +- 표준 시간대를 사용한 상태 수정 시작 및 종료 시간 +- 상태 수정 카테고리 + +Event Explorer에 세 가지 유형의 SLO 상태 수정 감사 이벤트가 표시됩니다. + +- `SLO Correction Created`이벤트 생성 시 상태 수정 설정 정보 표시 +- `SLO Correction Modified`이벤트 수정 중에 변경된 설정 정보 표시 +- `SLO Correction Deleted`이벤트 상태 수정이 삭제되기 전의 설정 정보 표시 + +모든 SLO 감사 이벤트의 전체 목록을 얻으려면 Event Explorer에 검색 쿼리 `tags:(audit AND slo)`를 입력하세요. 특정 SLO의 감사 이벤트 목록을 보려면 원하는 SLO의 ID와 함께 `tags:audit,slo_id:`를 입력하세요. [Datadog Events API][19]를 사용하여 Event Explorer를 프로그래밍 방식으로 조회할 수도 있습니다. + +**참고:** UI에 이벤트가 나타나지 않으면 Event Explorer의 시간 범위를 지난 7일과 같이 더 긴 기간으로 설정해야 합니다. + +{{< img src="service_management/service_level_objectives/slo-audit-events.png" alt="SLO 감사 이벤트" >}} + +또한 SLO 세부정보의 'Audit History' 탭을 사용하여 개별 SLO에 대한 모든 감사 이벤트를 조회할 수도 있습니다. + +{{< img src="service_management/service_level_objectives/slo_audit_history_tab.png" alt="SLO 세부 정보 감사 기록 탭" >}} + +[이벤트 모니터링][28]을 사용하면 SLO 감사 이벤트를 추적하기 위한 알림을 설정할 수 있습니다. 예를 들어 특정 SLO의 설정이 수정될 때 알림을 받으려면 태그 `audit,slo_id:`를 통해 텍스트 `[SLO Modified]`를 추적하도록 이벤트 모니터링을 설정하세요. + +## SLO 위젯 {#slo-widgets} + +{{< learning-center-callout header="대시보드와 SLO를 사용하여 비즈니스 중요 통찰력을 생성해 보세요." btn_title="지금 등록" btn_url="https://learn.datadoghq.com/courses/dashboards-slos">}} + 실제 클라우드 컴퓨팅 용량과 Datadog 평가판 계정으로 무료로 학습하세요. 오늘 등록하여 SLO를 추적하기 위한 대시보드 구축에 대해 더 알아보세요. +{{< /learning-center-callout >}} + +SLO를 생성한 후에는 대시보드 및 위젯 을 통해 데이터를 시각화할 수 있습니다. + - SLO 위젯을 사용하여 단일 SLO의 상태를 시각화하세요. + - SLO 목록 위젯을 사용하여 SLO 집합을 시각화하세요. + - 시계열 및 스칼라(쿼리 값, 상위 목록, 표, 변경) 위젯으로 15개월 분량의 메트릭 기반 SLO 데이터를 [SLO 데이터 소스][20]로 그래프화하세요. + +SLO 위젯에 대한 자세한 정보는 [SLO 위젯][21] 및 [SLO 목록 위젯][22] 페이지를 참조하세요. SLO 데이터 소스에 대한 자세한 정보는 대시보드에서 [과거 SLO 데이터 그래프화][20] 가이드를 참조하세요. + +## SLO 상태 수정 {#slo-status-corrections} + +상태 수정을 통해 SLO 상태 및 오류 예산 계산에서 특정 기간을 제외할 수 있습니다. 이를 통해 다음을 수행할 수 있습니다. +- 예약된 유지 보수와 같은 예상되는 가동 중지로 인해 오류 예산이 고갈되는 것을 방지할 수 있습니다. +- SLO를 준수하지 않아도 되는 영업 외 시간을 제외할 수 있습니다. +- 배포로 인한 일시적 문제가 SLO에 부정적인 영향을 미치지 않도록 보장합니다. + +수정을 적용하면 지정한 기간이 SLO의 계산에서 제외됩니다. +- 모니터링 기반 SLO의 경우 수정 시간 창은 계산되지 않습니다. +- 메트릭 기반 SLO의 경우 수정 창의 모든 양호한 이벤트와 불량 이벤트는 계산되지 않습니다. +- 타임 슬라이스 SLO의 경우 수정 기간은 가동 시간으로 처리됩니다. + +임시 조정을 위한 일회성 수정 또는 정기적으로 발생하는 예측 가능한 조정을 위한 반복 수정을 생성할 수 있습니다. 일회성 수정은 시작 및 종료 시간이 필요하며, 반복 수정은 시작 시간, 기간 및 간격이 필요합니다. 반복 수정은 [iCalendar RFC 5545의 RRULE 사양][24]을 기반으로 합니다. 지원되는 규칙은 `FREQ`, `INTERVAL`, `COUNT`, 및 `UNTIL`입니다. 반복 수정을 위한 종료 날짜를 지정하는 것은 선택 사항이며, 수정이 무한히 반복되도록 할 수 있습니다. + +어떤 유형의 수정이든 수정이 이루어지는 이유를 명시하는 수정 범주를 선택해야 합니다. 사용 가능한 카테고리는 `Scheduled Maintenance`, `Outside Business Hours`, `Deployment`, 및 `Other`입니다. 필요 시, 추가적인 맥락을 제공하기 위해 설명을 선택적으로 포함할 수 있습니다. + +각 SLO는 쿼리 성능을 보장하기 위해 구성할 수 있는 최대 수정 한도가 있습니다. 이 한도는 각 SLO에 대해 지난 90일에만 적용되므로, 지난 90일 이전의 기간에 대한 수정은 한도에 포함되지 않습니다. 즉, 다음과 같습니다. +- 일회성 수정에 대한 종료 시간이 지난 90일 이전인 경우 제한에 포함됩니다. +- 반복 수정의 최종 반복 종료 시간이 지난 90일 이전인 경우 제한에 포함되지 않습니다. + +SLO당 90일 제한은 다음과 같습니다. + +| 수정 유형 | SLO당 한도 | +| ----------------- | ------------- | +| 일회성 | 100 | +| 매일 반복 | 2 | +| 매주 반복 | 3 | +| 매달 반복 | 5 | + +UI에서 상태 수정을 설정하려면 SLO의 사이드 패널에서 `Correct Status`를 선택하거나, [SLO 상태 수정 API][25] 또는 [Terraform 리소스][26]를 사용할 수 있습니다. + +#### UI에서 액세스 {#access-in-the-ui} + +UI에서 SLO 상태 수정에 액세스하려면: + +1. 새 SLO를 만들거나 기존 SLO를 클릭합니다. +2. SLO의 세부 정보 사이드 패널 보기로 이동합니다. +3. 도구 아이콘 아래에서 **상태 수정**을 선택하여 **상태 수정** 생성 모드에 액세스합니다. +4. `One-Time`와 `Recurring` 중에서 선택하여 **시간 수정 창 선택**에서 수정할 기간을 지정합니다. +5. **수정 유형**을 선택합니다. +6. 필요 시 **참고 사항**을 추가합니다. +7. **Apply Correction**을 클릭합니다. + +{{< img src="service_management/service_level_objectives/slo-corrections-ui.png" alt="SLO 수정 UI" style="width:80%;">}} + +기존 상태 수정을 조회, 편집 및 삭제하려면 SLO 세부 사이드 패널 보기 상단에 있는 **Corrections** 탭을 클릭하세요. + +#### 상태 수정 시각화 {#visualizing-status-corrections} + +상태 수정이 있는 메트릭 기반 및 시간 분할 SLO의 경우, SLO 세부 정보 보기에서 UI에서 수정을 활성화하거나 비활성화할 수 있는 토글이 있습니다. 토글은 SLO 세부 정보 보기의 "이력" 섹션에 있는 차트와 데이터를 제어합니다. **참고:** 귀하의 전체 SLO 상태와 오류 예산은 항상 상태 수정을 고려합니다. + +{{< img src="service_management/service_level_objectives/correction-toggle.png" alt="SLO 수정 UI" style="width:100%;">}} + +## SLO 캘린더 보기 {#slo-calendar-view} + +SLO 캘린더 보기는 [SLO 관리 페이지][2]에서 사용할 수 있습니다. 오른쪽 상단 모서리에서 "기본" 보기에서 "일일", "주간" 또는 "월간" 보기로 전환하여 12개월의 과거 SLO 상태 데이터를 확인하세요. 캘린더 보기는 메트릭 기반 SLO와 시간 분할 SLO를 지원합니다. + +{{< img src="service_management/service_level_objectives/slo-calendar-view-2.png" alt="SLO 캘린더 보기" >}} + +## 추가 자료 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ko/service_level_objectives/guide/slo_types_comparison/ +[2]: https://app.datadoghq.com/slo +[3]: /ko/service_level_objectives/metric/ +[4]: /ko/service_level_objectives/monitor/ +[5]: /ko/service_level_objectives/time_slice/ +[6]: /ko/monitors/types/metric/?tab=threshold#alert-grouping +[7]: /ko/service_level_objectives/metric/#define-queries +[8]: /ko/service_level_objectives/monitor/#set-your-slo-targets +[9]: /ko/service_level_objectives/metric/#set-your-slo-targets +[10]: /ko/account_management/rbac/ +[11]: /ko/account_management/rbac/permissions/#service-level-objectives/ +[12]: /ko/account_management/rbac/permissions/#monitors +[13]: /ko/monitors/guide/how-to-set-up-rbac-for-monitors/ +[14]: /ko/mobile +[15]: https://apps.apple.com/app/datadog/id1391380318 +[16]: https://play.google.com/store/apps/details?id=com.datadog.app +[17]: /ko/service_level_objectives/#saved-views +[18]: /ko/account_management/teams/#associate-resources-with-team-handles +[19]: /ko/api/latest/events/ +[20]: /ko/dashboards/guide/slo_data_source/ +[21]: /ko/dashboards/widgets/slo/ +[22]: /ko/dashboards/widgets/slo_list/ +[23]: /ko/monitors/types/event/ +[24]: https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html +[25]: /ko/api/latest/service-level-objective-corrections/ +[26]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/slo_correction +[27]: /ko/events/explorer/ +[28]: /ko/monitors/types/event/ \ No newline at end of file diff --git a/content/ko/tracing/services/deployment_tracking.md b/content/ko/tracing/services/deployment_tracking.md index 75136543a05..fc9a73b3673 100644 --- a/content/ko/tracing/services/deployment_tracking.md +++ b/content/ko/tracing/services/deployment_tracking.md @@ -2,29 +2,29 @@ aliases: - /ko/tracing/version_tracking - /ko/tracing/deployment_tracking/ -description: Datadog을 사용하여 버전 태그를 통해 배포를 추적하세요 +description: Datadog의 버전 태그를 활용해 배포를 추적하세요. further_reading: - link: getting_started/tagging/unified_service_tagging/ tag: 설명서 - text: Unified Service Tagging 및 예약된 태그에 대해 알아보세요 + text: Unified Service Tagging 및 예약된 태그에 관해 알아보기 - link: tracing/app_analytics tag: 설명서 - text: App Analytics 쿼리에서 버전을 차원으로 사용하세요 + text: App Analytics 쿼리에서 버전을 디멘션으로 사용 title: 배포 추적 --- -## 버전 태그 +## 버전 태그 {#the-version-tag} -`version` 태그는 Unified Service Tagging에 예약되어 있습니다. 이는 인프라스트럭처 메트릭(호스트, 컨테이너, 프로세스 및 NPM 검사), 트레이스 메트릭, 트레이스, 프로필 및 로그에 적용됩니다. +`version` 태그는 Unified Service Tagging 내에서 예약되어 있습니다. 이 태그는 인프라스트럭처 메트릭(호스트, 컨테이너, 프로세스 및 NPM 검사), 트레이스 메트릭, 트레이스, 프로필 및 로그에 적용됩니다. `version` 태그를 사용하여 소프트웨어 배포 전략을 지원하는 배포 및 서비스 동작을 모니터링할 수 있습니다. -`version` 태그를 설정하지 않은 경우 [[Unified Service Tagging 문서][1]에서 설정 정보를 참조하세요. +`version` 태그를 설정하지 않은 경우 [Unified Service Tagging 설명서][1]에서 설정 정보를 참조하세요. -## Service 페이지에서 버전 태그 사용 +## 서비스 페이지에서 버전 태그 사용 {#using-version-tags-on-the-service-page} -{{< img src="tracing/deployment_tracking/ServicePageRequestsErrorsByVersion.png" alt="Service 페이지의 버전" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/ServicePageRequestsErrorsByVersion.png" alt="서비스 페이지 버전" style="width:100%;">}} - Service 페이지에서 `version` 태그를 사용할 수 있는 경우 요청 위젯의 범위를 다음으로 지정할 수 있습니다. +서비스 페이지에서 `version` 태그를 사용할 수 있는 경우, 요청 위젯의 범위를 다음으로 지정할 수 있습니다. - 버전별 총 요청 수 또는 - 버전별 초당 요청 수 @@ -37,16 +37,16 @@ title: 배포 추적 요청 및 오류 위젯은 모두 대시보드와 모니터로 내보낼 수 있습니다. -## 잘못된 배포 자동 감지를 위해 버전 태그 사용 +## 잘못된 배포 자동 감지를 위해 버전 태그 사용 {#using-version-tags-for-automatic-faulty-deployment-detection} -`version` 태그를 사용하여 서비스를 구성하면 [Automatic Faulty Deployment Detection][4]이 활성화됩니다. +`version` 태그를 사용하여 서비스를 구성하면 [Automatic Faulty Deployment Detection][4]이 활성화됩니다. -잠재적으로 결함이 있는 모든 배포에 대해 자동으로 알림을 받도록 모니터를 설정할 수 있습니다. 이렇게 하려면 New Monitors 페이지로 이동하여 이벤트를 선택하고 모니터를 정의하는 검색 쿼리에 `tags:deployment_analysis`를 포함합니다. +모니터를 설정하여 잘못되었을 가능성이 있는 모든 배포에 관해 자동으로 알림을 받을 수 있습니다. 그러려면 새 모니터 페이지로 이동하여 이벤트를 선택하고, 모니터를 정의하는 쿼리에 `tags:deployment_analysis`를 포함하세요. -## 배포된 버전 +## 배포된 버전 {#versions-deployed} -`version` 태그로 구성된 서비스에는 Service 페이지의 기본 서비스 상태 그래프 아래에 버전 섹션이 있습니다. 버전 섹션에는 선택한 시간 간격 동안 활성화된 서비스의 모든 버전이 표시되며 활성 서비스가 맨 위에 표시됩니다. +`version` 태그를 사용하여 구성된 서비스에는 주 상태 그래프 아래에 있는 서비스 페이지에 버전 섹션이 있습니다. 버전 섹션에는 선택한 기간 동안 활성이었던 모든 서비스 버전이 표시되고, 맨 위에 활성 서비스가 표시됩니다. 기본적으로 다음이 표시됩니다. @@ -54,85 +54,85 @@ title: 배포 추적 - 이 버전에 해당하는 트레이스가 처음이자 마지막으로 표시된 시간입니다. - 바로 이전 버전에는 나타나지 않았지만 각 버전에는 나타나는 오류 유형 수를 보여주는 Error Types 표시기입니다. - **참고:** 이 표시는 이전 버전의 트레이스에서 볼 수 없었던 오류를 표시합니다. 이 버전에서 반드시 이러한 오류가 발생했다는 의미는 아닙니다. 새로운 오류 유형을 살펴보는 것은 오류 조사를 시작하는 좋은 방법이 될 수 있습니다. + > **참고:** 이 표시기에는 이전 버전의 트레이스에는 표시되지 않았던 오류가 표시됩니다. 그렇다고 이 버전에서 이러한 오류가 생겼다는 의미는 아닙니다. 새 오류 유형을 살펴보는 것은 오류 조사를 시작하는 아주 좋은 방법일 수 있습니다. -- 초당 요청입니다. -- 총 요청에 대한 오류율(%)입니다. +- 초당 요청 수. +- 총 요청에 대한 백분율로 나타낸 오류율. -이 개요 테이블에서 열을 추가하거나 제거할 수 있으며 선택 사항이 저장됩니다. 추가로 사용 가능한 열은 다음과 같습니다. +이 개요 표에서 열을 추가하거나 제거할 수 있으며 선택 사항이 저장됩니다. 추가로 사용 가능한 열은 다음과 같습니다. -- 이전 버전에는 없었지만 버전에서 활성화된 엔드포인트입니다. -- 활성 시간 - 첫 번째 트레이스부터 해당 버전에 대해 Datadog으로 전송된 마지막 트레이스까지의 시간을 표시합니다. +- 버전에서 활성 상태이고 이전 버전에는 없었던 엔드포인트입니다. +- 활성 시간, 즉 해당 버전에 대해 Datadog으로 전송된 첫 번째 트레이스부터 마지막 트레이스까지의 시간 길이입니다. - 총 요청 수입니다. - 총 오류 수입니다. -- p50, p75, p90, p95, p99 또는 최대로 측정된 지연 시간입니다. +- p50, p75, p90, p95, p99 또는 최댓값으로 측정된 지연 시간입니다. -{{< img src="tracing/deployment_tracking/VersionComparison.png" alt="서비스 페이지의 버전" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/VersionComparison.png" alt="서비스 페이지 버전" style="width:100%;">}} **참고:** 버전 섹션은 페이지 상단에서 선택한 기간 동안 보고되는 버전이 두 개 이상인 경우에만 나타납니다. -## 배포 비교 +## 배포 비교 {#deployment-comparison} -버전 요약 표에서 버전 행을 클릭하면 버전 비교 페이지가 열리며, 동일한 서비스의 두 버전을 비교할 수 있습니다. 기본적으로 선택한 버전은 바로 이전 버전과 비교되지만 지난 30일 내의 두 버전을 비교하도록 변경할 수 있습니다. +버전 요약 표에서 원하는 버전 행을 클릭하면 버전 비교 페이지가 열려 동일한 서비스의 두 버전을 비교할 수 있습니다. 기본적으로 선택된 버전은 바로 이전 버전과 비교되지만 지난 30일 이내의 어떤 두 버전이든 선택하여 비교할 수 있습니다, 버전 비교 페이지에서 다음 정보를 확인할 수 있습니다. -- [비교 그래프](#comparison-graphs): 서비스에 대한 요청 및 오류를 시각화하여 다양한 유형의 [배포](#deployment-strategies)를 관찰하는 데 유용합니다. +- [비교 그래프](#comparison-graphs): 서비스에 대한 요청 및 오류를 시각화한 것으로, 다양한 유형의 [배포](#deployment-strategies) 유형을 관찰하는 데 유용합니다. - [오류 비교](#error-comparison): 버전에 따라 발생했거나 해결되었을 수 있는 오류입니다. -- [엔드포인트 비교](#endpoint-comparison): 각 버전에서 엔드포인트 대기 시간 및 오류율이 어떻게 나타나는지 파악할 수 있습니다. +- [엔드포인트 비교](#endpoint-comparison): 각 버전에서 엔드포인트 지연 시간 및 오류율이 어떻게 나타나는지 파악할 수 있습니다. -### 비교 그래프 +### 비교 그래프 {#comparison-graphs} -Service 페이지의 그래프와 유사하게 요청 및 오류 그래프는 배포 롤아웃 개요 또는 오류율 급증을 보여줍니다. 이 페이지에서 그래프는 비교를 위해 선택한 버전을 강조 표시하고 추가 컨텍스트를 위해 다른 모든 버전은 회색으로 둡니다. +서비스 페이지의 그래프와 마찬가지로, 요청 및 오류 그래프에도 배포 롤아웃의 개요 또는 오류율 급증이 표시됩니다. 이 페이지에서는 그래프에 비교를 위해 선택한 버전이 강조 표시되고, 다른 모든 버전은 회색으로 표시되어 추가적인 컨텍스트를 제공합니다. {{< img src="tracing/deployment_tracking/ComparisonGraphs.png" alt="배포 비교 그래프" style="width:100%;">}} -[Continuous Profiler가 활성화된 경우][5] CPU 시간이나 할당된 메모리와 같은 주요 성능 메트릭의 비교가 APM 리소스별로 분류되어 표시됩니다. 여기에서 [Profile Comparison 페이지][6]로 전환할 수 있습니다. +[Continuous Profiler가 활성화된 경우][5], CPU 시간이나 할당된 메모리와 같은 주요 성능 메트릭의 비교가 APM 리소스별로 분류되어 표시됩니다. 여기에서 [프로필 비교 페이지][6]로 전환할 수 있습니다. {{< img src="tracing/deployment_tracking/DeploymentTrackingProfileComparison.png" alt="배포 프로파일링 비교 그래프" style="width:100%;">}} -### 오류 비교 +### 오류 비교 {#error-comparison} -이 섹션에는 두 버전 각각에 대해 감지된 오류 유형의 차이점이 나열되어 있으며 다음을 강조합니다. +이 섹션에는 두 버전 간에 감지된 오류 유형의 차이를 나열하며 다음 사항을 강조합니다. - - 소스 버전에만 나타나며 문제 해결에 유용한 오류 유형입니다. - - 더 이상 소스 버전에 나타나지 않으며 수정 사항을 검증하는 데 유용한 오류 유형입니다. - - 둘다에서 나타나는 오류 유형입니다. + - 소스 버전에만 나타나는 오류 유형이며, 문제 해결에 유용함 + - 소스 버전에 더 이상 나타나지 않는 오류 유형. 수정 사항을 검증하는 데 유용함 + - 둘 다에서 나타나는 오류 유형. -이 테이블에서 추가 조사를 위해 선택한 오류에 해당하는 실시간 또는 기록 트레이스로 전환할 수 있습니다. +이 표에서 추가 조사를 위해 선택한 오류에 해당하는 실시간 또는 기록 트레이스로 전환할 수 있습니다. -**참고:** 오류 비교는 _관찰된_ 오류 유형을 기반으로 합니다. 오류 유형이 드물다면 _아직_ 표시되지 않았기 때문에 더 이상 표시되지 않는 것으로 나열될 수 있습니다. +**참고:** 오류 비교는 _관찰된_ 오류 유형을 기반으로 합니다. 오류 유형이 드물다면 _아직_ 발견되지 않아서 더 이상 나타나지 않는 것으로 표시될 수 있습니다. {{< img src="tracing/deployment_tracking/ErrorComparison.mp4" alt="오류 비교" video=true style="width:100%;">}} -### 엔드포인트 비교 +### 엔드포인트 비교 {#endpoint-comparison} -이 섹션에서는 서비스에 있는 각 엔드포인트의 성능(요청, 대기 시간 및 오류)을 비교할 수 있습니다. 배포 후에도 처리량이 가장 높은 엔드포인트가 여전히 정상인지 확인하려면 값을 기준으로 테이블을 정렬하고, 대기 시간 또는 오류율의 큰 변화를 확인하려면 변경률을 기준으로 정렬하세요. +이 섹션에서는 서비스 내 각 엔드포인트의 성능(요청, 지연 시간 및 오류)을 비교할 수 있습니다. 값 기준으로 표를 정렬하면 배포 후에도 처리량이 가장 많은 엔드포인트가 여전히 정상 상태인지 확인할 수 있고, 변경률(%)을 기준으로 정렬하면 지연 시간 또는 오류율 변동 폭이 큰지 알아볼 수 있습니다. {{< img src="tracing/deployment_tracking/EndpointComparison.png" alt="엔드포인트 비교" style="width:100%;">}} -## 배포 전략 +## 배포 전략 {#deployment-strategies} -Datadog의 배포 추적은 잘못된 코드 배포를 감지하고 변경 사항의 영향을 억제합니다. 또한 사고에 더 빠르게 대응하기 위해 다음 배포 전략(또는 기타)을 사용할 때 배포된 코드의 성능에 대한 가시성을 제공합니다. +Datadog의 배포 추적은 잘못된 코드 배포를 감지하고 변경 사항의 영향을 억제합니다. 또한 인시던트에 더 빠르게 대응하기 위해 다음 배포 전략(또는 기타)을 사용할 때 배포된 코드의 성능에 대한 가시성을 제공합니다. -### 롤링 배포 +### 롤링 배포 {#rolling-deploys} -롤링 배포는 호스트 또는 컨테이너에 새 버전을 하나씩 배포하는 동안 트래픽을 다른 인스턴스로 이동시켜 다운타임을 없앱니다. +롤링 배포는 호스트 또는 컨테이너에 새 버전을 하나씩 배포하는 동안 트래픽을 다른 인스턴스로 이동시켜 가동 중지 시간을 없앱니다. Datadog을 사용하면 롤링 배포를 모니터링하고 그에 따른 오류 증가를 감지할 수 있습니다. {{< img src="tracing/deployment_tracking/rolling.png" alt="롤링 배포" style="width:100%;">}} -### 파란색 및 녹색 배포 +### 블루/그린 배포 {#blue-and-green-deploys} -파란색과 녹색(또는 기타 색상 조합) 배포는 트래픽을 모두 허용하는 두 개의 서비스 클러스터를 실행하거나 하나를 대기 상태로 유지하고 다른 하나에 문제가 있을 경우 활성화할 수 있도록 하여 가동 중지 시간을 줄입니다. +블루 및 그린 배포는 트래픽을 모두 허용하는 두 개의 서비스 클러스터를 동시에 실행하거나, 하나를 대기 상태로 유지하다가 다른 클러스터에 문제가 생기면 활성화하여 가동 중지 시간을 줄입니다. -이러한 서비스에 대해 `version` 태그를 설정하고 확인하면 요청과 오류를 비교하여 클러스터 중 하나의 오류율이 다른 클러스터보다 높은지, 클러스터가 SLO를 충족하지 않는지, 또는 트래픽을 수신해서는 안 되는 클러스터인지 감지할 수 있습니다. +이러한 서비스에 대해 `version` 태그를 설정하고 조회하면 요청 및 오류를 비교하여 클러스터 중 하나의 오류율이 다른 클러스터보다 높은지, 클러스터가 SLO를 충족하지 않는지, 또는 트래픽을 수신해서는 안 되는 클러스터인지 감지할 수 있습니다. -{{< img src="tracing/deployment_tracking/BlueGreenDeploy.png" alt="Blue/Green 배포" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/BlueGreenDeploy.png" alt="블루/그린 배포" style="width:100%;">}} -### 카나리 배포 +### 카나리 배포 {#canary-deploys} 카나리 배포를 사용하면 제한된 수의 호스트 또는 일부 고객을 대상으로 서비스를 배포하여 제한된 영향력 내에서 테스트할 수 있습니다. @@ -142,64 +142,64 @@ Datadog 내에서 `version` 태그를 사용하면 카나리 배포에 대한 {{< img src="tracing/deployment_tracking/canarydeployment.png" alt="카나리 배포" style="width:100%;">}} -### 섀도우 배포 +### 섀도우 배포 {#shadow-deploys} 섀도우 배포에서는 릴리스 후보 버전이 프로덕션 버전과 함께 배포되며, 들어오는 트래픽이 두 서비스 모두로 전송됩니다. 사용자는 프로덕션의 결과만 볼 수 있지만 두 서비스 모두에서 데이터를 수집할 수 있습니다. -섀도우 배포를 사용하면 실제 프로덕션 트래픽에 대해 잠재적인 릴리스를 테스트할 수 있습니다. 섀도우에 `version` 태그를 지정하면 두 버전 간의 오류율, 트레이스 및 서비스 동작을 비교하여 섀도우 버전을 릴리스해야 하는지 결정할 수 있습니다. +섀도우 배포를 사용하면 실제 프로덕션 트래픽을 기준으로 잠재적인 릴리스를 테스트할 수 있습니다. 섀도우에 `version` 태그를 사용해 태그하면 두 버전의 오류율, 트레이스 및 서비스 동작을 비교하여 섀도우 버전을 릴리스해도 되는지 결정할 수 있습니다. -## Datadog 내 다른 곳에서 버전 태그 사용 +## Datadog 내 다른 곳에서 버전 태그 사용 {#using-version-tags-elsewhere-within-datadog} `version` 태그는 검색 보기를 특정 버전으로 필터링하거나 다른 버전의 메트릭을 비교하는 등 Datadog 내 어디에서나 사용할 수 있습니다. -### Resource 페이지 +### 리소스 페이지 {#resource-page} -{{< img src="tracing/deployment_tracking/ResourcePage.png" alt="Resource 페이지의 버전" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/ResourcePage.png" alt="리소스 페이지의 버전" style="width:100%;">}} -Resource 페이지에서 버전 태그를 사용할 수 있는 경우 요청 위젯의 범위는 다음 중 하나로 지정될 수 있습니다. +리소스 페이지에서 버전 태그를 사용할 수 있는 경우 요청 위젯의 범위는 다음 중 하나로 지정될 수 있습니다. -- 버전별 총 요청 -- 버전별 초당 요청 +- 버전별 총 요청 수 +- 버전별 초당 요청 수 오류 위젯의 범위는 `version` 태그와 관련된 세 가지 옵션 중 하나로 지정될 수 있습니다. - 버전별 총 오류 수 -- 버전별 초당 오류 +- 버전별 초당 오류 수 - 버전별 오류율(%) 이들 모두는 대시보드와 모니터로 내보낼 수 있습니다. -### 트레이스 검색 및 분석 +### 트레이스 검색 및 분석{#trace-search-and-analytics} -{{< img src="tracing/deployment_tracking/AnalyticsErrorsByVersion.mp4" alt="App Analytics 버전" video=true style="width:100%;">}} +{{< img src="tracing/deployment_tracking/AnalyticsErrorsByVersion.mp4" alt="App Analytics의 버전" video=true style="width:100%;">}} -사용 가능한 경우 실시간 검색 모드 및 인덱싱된 트레이스를 필터링하거나 분석 쿼리를 필터링 또는 그룹화하기 위해 Trace Search 및 Analytics 모두에 대한 태그로 `version`을 사용할 수 있습니다. +사용 가능한 경우, 실시간 검색 모드 및 인덱싱된 트레이스를 필터링하거나, 분석 쿼리를 필터링 또는 그룹화하기 위해 Trace Search 및 Analytics 모두에 대한 태그로 `version`을 사용할 수 있습니다. `version` 태그 필터링을 포함한 분석을 대시보드 및 모니터로 내보낼 수 있습니다. -### 버전별 프로필 +### 버전별 프로필{#profiles-by-version} -특정 버전에 해당하는 프로필을 검색할 수 있습니다. [Deployment Comparison](#deployment-comparison) 페이지 오른쪽 상단에 있는 **View Profiles**를 클릭하여 비교 중인 두 버전으로 범위가 지정된 Continuous Profiler를 열 수도 있습니다. +특정 버전에 해당하는 프로필을 검색할 수 있습니다. [배포 비교](#deployment-comparison) 페이지 상단 오른쪽에 있는 **프로필 조회**를 클릭하여 비교 중인 두 버전으로 범위가 지정된 Continuous Profiler를 열 수도 있습니다. -{{< img src="tracing/deployment_tracking/VersionProfiler.png" alt="버전별로 프로필 필터링" style="width:100%;">}} +{{< img src="tracing/deployment_tracking/VersionProfiler.png" alt="버전별 프로필 필터링" style="width:100%;">}}
    -## 배포 메트릭 사이의 시간 +## 배포 메트릭 사이의 시간 {#the-time-between-deployments-metric} 서비스의 새 배포가 감지될 때마다 배포 추적은 `time_between_deployments` 메트릭에 대한 값을 계산합니다. 새 배포와 그 이전의 최신 버전 배포 사이의 기간(초)으로 계산됩니다. -### 메트릭 정의 +### 메트릭 정의{#metric-definition} `datadog.service.time_between_deployments{env, service, second_primary_tag}` -: **전제 조건:** 이 지표는 [Unified Service Tagging][1]을 통해 버전 태그 지정이 활성화된 모든 APM 서비스에 대해 존재합니다.
    -**설명:** 서비스 배포와 그 이전의 최신 버전 배포 사이에 경과된 시간(초)입니다.
    +: **전제 조건:** 이 메트릭은 [Unified Service Tagging][1]을 통해 버전 태깅이 활성화된 모든 APM 서비스에 대해 존재합니다.
    +**설명:** 서비스의 배포와 그 이전의 최신 버전 배포 사이에 경과한 시간(초)입니다.
    **메트릭 유형:** [분포][2]
    -**태그:** 메트릭에는 서비스의 `env`, `service` 및 [두 번째 기본 태그][3] 태그가 지정됩니다. +**태그:** 메트릭이 서비스의 `env`, `service` 및 [부차적 기본 태그][3]로 태그됩니다. -### 예시 +### 예시 {#examples} -time = 0에 버전 A를 배포하고 time = 10에 버전 B를 배포하는 서비스가 있는 경우 `datadog.service.time_between_deployments` 메트릭 값은 10입니다. +time = 0에 버전 A를, time = 10에 버전 B를 배포하는 서비스가 있는 경우 메트릭 `datadog.service.time_between_deployments`의 값은 10이 됨: Time = 0 : `{service: foo, env: prod, cluster-name: dev-shopist, version: A}` @@ -211,7 +211,7 @@ Time = 10 : `datadog.service.time_between_deployments{env: prod, cluster_name: dev-shopist} = 10` -클러스터 `dev-shopist`에서 time = 20에 버전 X를 배포하고 클러스터 `us-staging`에서 time = 30에 버전 Y를 배포하며, 클러스터 `dev-shopist`에서 time = 45에 버전 Y를 다시 배포하는 경우 모든 클러스터에 대한 `datadog.service.time_between_deployments` 메트릭 `max` 값은 25(가장 최근 Y의 시간에서 마지막 X를 뺀 값 )입니다. +time = 20에 버전 X를 클러스터 `dev-shopist`에서, time = 30에 버전 Y를 클러스터 `us-staging`에서, time = 45에 다시 버전 Y를 클러스터 `dev-shopist`에서 배포하는 경우 모든 클러스터의 메트릭 `datadog.service.time_between_deployments` `max` 값은 25가 됨(최신 Y 시간에서 마지막 X를 뺀 값): Time = 20 : `{service: foo, env: staging, cluster-name: dev-shopist, version: X}` @@ -226,7 +226,7 @@ Time = 45 : `max:datadog.service.time_between_deployments{env: staging, cluster-name: *} = 25` -## 참고 자료 +## 추가 자료 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/ko/tracing/trace_collection/dd_libraries/java.md b/content/ko/tracing/trace_collection/dd_libraries/java.md new file mode 100644 index 00000000000..4f2fe43637c --- /dev/null +++ b/content/ko/tracing/trace_collection/dd_libraries/java.md @@ -0,0 +1,262 @@ +--- +aliases: +- /ko/tracing/java +- /ko/tracing/languages/java +- /ko/agent/apm/java/ +- /ko/tracing/setup/java +- /ko/tracing/setup_overview/java +- /ko/tracing/setup_overview/setup/java +- /ko/tracing/trace_collection/automatic_instrumentation/dd_libraries/java +code_lang: java +code_lang_weight: 0 +further_reading: +- link: https://github.com/DataDog/dd-trace-java + tag: 소스 코드 + text: Datadog Java APM 소스 코드 +- link: tracing/glossary/ + tag: 설명서 + text: 서비스, 리소스, 트레이스 둘러보기 +- link: https://learn.datadoghq.com/courses/apm-java-host + tag: 학습 센터 + text: Java 애플리케이션용 APM 설정 +title: Java 애플리케이션 추적 +type: multi-code-lang +--- +## 호환성 요구 사항 {#compatibility-requirements} + +최신 Java Tracer는 JVM 버전 8 이후의 모든 버전을 지원합니다. JVM 8 이전 버전에 관한 자세한 정보는 [지원되는 JVM 런타임][10]을 참조하세요. + +Datadog의 Java 버전과 프레임워크 지원(레거시 및 유지 보수 버전 포함) 전체 목록은 [호환성 요구사항][1]을 참고하세요. + +## 시작하기 {#getting-started} + +시작하기 전에 먼저 [Agent트를 설치하고 구성][18]했는지 확인하세요. + +### 애플리케이션 계측 {#instrument-your-application} + +Datadog Agent를 설치하고 구성했으면, 다음 단계로 애플리케이션을 계측할 SDK를 애플리케이션에 직접 추가합니다. 자세한 정보는 [호환성 정보][1]를 참조하세요. + +애플리케이션 추적을 시작하는 방법: + +1. 최신 트레이서 클래스 파일이 포함된 `dd-java-agent.jar`를 Datadog 사용자가 액세스할 수 있는 폴더에 다운로드합니다. + +{{< tabs >}} +{{% tab "Wget" %}} + ```shell + wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer' + ``` +{{% /tab %}} +{{% tab "cURL" %}} + ```shell + curl -Lo dd-java-agent.jar 'https://dtdg.co/latest-java-tracer' + ``` +{{% /tab %}} +{{% tab "Dockerfile" %}} + ```dockerfile + ADD 'https://dtdg.co/latest-java-tracer' dd-java-agent.jar + ``` +{{% /tab %}} +{{< /tabs >}} + + **참고:** 특정 **메이저** 버전의 최신 빌드를 다운로드하려면 대신 `https://dtdg.co/java-tracer-vX` 링크를 사용하세요. 여기서 `X`는 원하는 메이저 버전입니다. + 예를 들어 최신 버전 1 빌드의 경우, `https://dtdg.co/java-tracer-v1`을 사용합니다. 마이너 버전 번호는 포함하지 말아야 합니다. 대신 Datadog의 [Maven 리포지토리][3]에서 특정 버전을 참조하세요. + + **참고**: Release Candidate 버전은 GitHub [DataDog/dd-trace-java releases][21]에서 제공됩니다. 이러한 버전에는 "RC"가 포함되어 있으며, 프로덕션 환경 외부에서 테스트하는 용도로 권장합니다. 새 Release Candidate 버전을 테스트용으로 사용할 수 있게 될 때 알림을 받으려면 [GitHub 릴리스 알림을 구독][20]하세요. Release Candidate를 사용하다가 문제가 발생하는 경우, [Datadog 지원팀][22]에 문의하세요. + +2. Continuous Profiler, 배포 추적 및 로그 인젝션(로그를 Datadog로 보내는 경우)를 사용해 IDE, Maven 또는 Gradle 애플리케이션 스크립트나 `java -jar` 명령에서 앱을 실행하려면 `-javaagent` JVM 인수 및 다음과 같은 구성 옵션을 추가하세요(해당하는 경우). + + ```text + java -javaagent:/path/to/dd-java-agent.jar -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar + ``` + **Note**: If you have a strong need to reduce the size of your image and omit modules, you can use the [`jdeps`][19] command to identify dependencies. However, required modules can change over time, so do this at your own risk. + + **Note**: When running the SDK with Java 24+, you may see warnings related to JNI native access. Suppress these warnings by adding the `--enable-native-access=ALL-UNNAMED` flag. See [JEP 472][23] for more details. + +
    프로파일링을 활성화하면 APM 번들에 따라 요금에 영향을 줄 수 있습니다. 자세한 정보는 가격 페이지를 참조하세요.
    + +| 환경 변수 | 시스템 속성 | 설명| +| --------- | --------------------------------- | ------------ | +| `DD_ENV` | `dd.env` | 애플리케이션 환경(`production`, `staging` 등) | +| `DD_LOGS_INJECTION` | `dd.logs.injection` | Datadog 트레이스 및 스팬 ID에 대해 자동 MDC 키 인젝션을 활성화합니다. 자세한 내용은 [고급 사용][6]을 참조하세요.

    버전 1.18.3부터, 이 서비스가 실행되는 곳에서 [Agent Remote Configuration][16]이 활성화되어 있으면 [Software Catalog][17] UI에서 `DD_LOGS_INJECTION`를 설정할 수 있습니다. | +| `DD_PROFILING_ENABLED` | `dd.profiling.enabled` | [Continuous Profiler][5] 활성화 | +| `DD_SERVICE` | `dd.service` | 동일한 작업을 수행하는 프로세스 세트의 이름입니다. 애플리케이션 통계를 그룹화하는 데 사용됩니다. | +| `DD_TRACE_SAMPLE_RATE` | `dd.trace.sample.rate` | 모든 서비스의 트레이스 루트에서 샘플링 속도를 설정합니다.

    버전 1.18.3부터, 이 서비스가 실행되는 곳에서 [Agent Remote Configuration][16]이 활성화되어 있으면 [Software Catalog][17] UI에서 `DD_TRACE_SAMPLE_RATE`를 설정할 수 있습니다. | +| `DD_TRACE_SAMPLING_RULES` | `dd.trace.sampling.rules` | 지정된 규칙과 일치하는 서비스의 트레이스의 루트에서 샘플링 속도를 설정합니다. | +| `DD_VERSION` | `dd.version` | 애플리케이션 버전(예: `2.5`, `202003181415` 또는 `1.3-alpha`)| + +추가 [구성 옵션](#configuration)은 아래에 설명되어 있습니다. + + +### Java SDK를 JVM {#add-the-java-sdk-to-the-jvm}에 추가합니다. + +`-javaagent` 및 기타 JVM 인수를 전달할 적절한 방법을 알아내려면 해당하는 애플리케이션 서버의 문서를 사용합니다. 다음은 일반적으로 사용되는 몇 가지 프레임워크에 대한 지침입니다. + +{{< tabs >}} +{{% tab "Spring Boot" %}} + +앱의 이름이 `my_app.jar`라면 다음과 같은 내용을 포함한 `my_app.conf`를 만듭니다. + +```text +JAVA_OPTS=-javaagent:/path/to/dd-java-agent.jar +``` + +자세한 정보는 [Spring Boot 설명서][1]를 참고하세요. + + +[1]: https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-script-customization-when-it-runs +{{% /tab %}} +{{% tab "Tomcat" %}} + +#### Linux {#linux} + +Linux에서 Tomcat을 실행할 때 추적을 활성화하는 방법: + +1. Tomcat 시작 스크립트 파일(예: `setenv.sh`)을 엽니다. +2. 다음을 `setenv.sh`에 추가합니다. + ```text + CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/dd-java-agent.jar" + ``` + +#### Windows(Windows 서비스형 Tomcat) {#windows-tomcat-as-a-windows-service} + +Tomcat을 Windows 서비스로 실행할 때 추적을 활성화하는 방법: + +1. Tomcat 프로젝트 폴더의 `./bin` 디렉터리에 있는 "tomcat@VERSION_MAJOR@w.exe" 유지 관리 유틸리티를 엽니다. +2. **Java** 탭으로 이동해 `Java Options`에 다음 내용을 추가합니다. + +```text +-javaagent:C:\path\to\dd-java-agent.jar +``` +3. Tomcat 서비스를 다시 시작하여 변경 사항을 적용합니다. + +{{% /tab %}} +{{% tab "JBoss" %}} + +- 독립형 모드에서: + + `standalone.conf` 끝에 다음 라인을 추가합니다. + +```text +JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/dd-java-agent.jar" +``` + +- 독립형 모드와 Windows에서는 `standalone.conf.bat` 끝에 다음 라인을 추가합니다. + +```text +set "JAVA_OPTS=%JAVA_OPTS% -javaagent:X:/path/to/dd-java-agent.jar" +``` + +- 도메인 모드에서: + + 파일 `domain.xml`에서 server-groups.server-group.jvm.jvm-options 태그 아래에 다음 라인을 추가합니다. + +```text +