> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 のメトリクスを Datadog、New Relic、Splunk などの監視プラットフォームにストリーミングして、リアルタイムの可観測性を実現します。

# Metric Streams

<div id="metric-streams-beta">
  # Metric Streams (ベータ)
</div>

<Warning>
  Metric Streamsは現在ベータ版として提供されています。この機能を利用するには、Enterprise planへの加入が必要です。この機能を使用すると、Oktaの[Master Subscription Agreement](https://www.okta.com/legal)に記載されている該当のFree Trial条件に同意したものとみなされます。Auth0の製品リリースサイクルの詳細については、[Product Release Stages](https://auth0.com/docs/troubleshoot/product-lifecycle/product-release-stages)を参照してください。
</Warning>

Auth0のリアルタイムメトリクスを監視プラットフォームにストリーミングして、APIのパフォーマンスを追跡し、レート制限の問題を特定し、エラーのトラブルシューティングを迅速化できます。Metric Streamsは、DatadogとのNativeな連携と、New RelicやSplunkなどのプラットフォーム向けのOpenTelemetry Protocol (OTLP) の両方をサポートしています。

<div id="what-you-can-monitor">
  ## 監視できる内容
</div>

Auth0 API の利用状況に関する主要なメトリクスを追跡できます。

* **API リクエスト量**: Authentication API と Management API への総リクエスト数を監視します。
* **エラー率**: 連携に影響するクライアントエラーとサーバーエラーを特定します。
* **レート制限の発生**: アプリケーションがレート制限にかかったタイミングを検出します。
* **地理的分布**: 国別のトラフィック傾向を分析します。
* **認証フロー**: グラントタイプや接続の利用状況を追跡します。

<div id="use-cases">
  ## 活用例
</div>

<div id="identify-rate-limit-issues">
  ### レート制限の問題を特定する
</div>

レート制限に達しているAPIやエンドポイントを監視することで、連携を調整したり、レート制限ティアにアップグレードしたりできます。

<div id="troubleshoot-api-failures">
  ### API 障害のトラブルシューティング
</div>

メトリクスを API、オペレーション、失敗の種類 (レート制限、異常検知、または一般的なエラー) で絞り込むことで、エラーの根本原因をすばやく特定できます。

<div id="plan-capacity">
  ### プランのキャパシティ
</div>

ピーク時の利用量、平均RPS、パーセンタイル指標を分析して、ワークロードに適したレート制限ティアを見極めます。

## 前提条件

メトリックストリームを設定する前に、以下が必要です。

* **Auth0 Management API へのアクセス**: 次の権限を持つマシンツーマシン (M2M) アプリケーションを作成します。

  * `read:event_streams`
  * `create:event_streams`
  * `update:event_streams`
  * `delete:event_streams`
  * `read:event_deliveries`
  * `update:event_deliveries`

  詳細な手順については、[Management API アクセストークンを取得する](docs/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)を参照してください。

* **Auth0 CLI**: API コマンドを使用してメトリックストリームを設定するには、[Auth0 CLI](https://auth0.github.io/auth0-cli/)をインストールします。

* **監視プラットフォームのアカウント**: [サポート対象の送信先](#supported-destinations)のいずれかで有効なアカウント。

<div id="metric-reference">
  ## メトリクス リファレンス
</div>

<div id="auth0api_requestcount">
  ### auth0.api\_request.count
</div>

詳細なフィルタリングと集計タグを使用して、Auth0 テナントへの API リクエスト数をカウントします。新しいメトリクスは 10 秒ごとに生成され、1 秒単位の粒度で提供されます。

<div id="available-tags">
  #### 利用可能なタグ
</div>

| タグ名                | 必須  | 説明                                                               |
| ------------------ | --- | ---------------------------------------------------------------- |
| `api`              | はい  | API の種類: `AUTHENTICATION` または `MANAGEMENT`                       |
| `operation_name`   | はい  | HTTP メソッドとパス (例: `POST /oauth/token`)                            |
| `operation_result` | はい  | 結果: `SUCCESS` または `FAILURE`                                      |
| `tenant`           | はい  | Auth0 テナント名                                                      |
| `failure_code`     | いいえ | 失敗理由: `RATE_LIMIT`、`ANOMALY_DETECTION`、または `CLIENT_SERVER_ERROR` |
| `country_code`     | いいえ | リクエスト元 IP アドレスに基づく ISO 国コード                                      |
| `client_id`        | いいえ | アプリケーションのクライアント ID (Authentication API のみ)                       |
| `connection_id`    | いいえ | 接続 ID (Authentication API のみ)                                    |
| `grant_type`       | いいえ | OAuth 2.0 グラントタイプ (Authentication API のみ)                        |
| `batch_seq`        | はい  | 同一のタグとタイムスタンプを持つメトリクスのシーケンス番号 (一時的なもので、Beta 終了後に削除されます)          |

<Warning>
  `client_id` タグと `connection_id` タグは、多数の一意なクライアントや接続がある環境ではカーディナリティが高くなり、モニタリング コストが増加する可能性があります。これらのタグは必要な場合にのみ使用してください。
</Warning>

<Note>
  Metric Streams には、システムの過負荷を防ぐために、エッジで Auth0 の Web Application Firewall (WAF) によってキャッシュまたはブロックされた API 呼び出しは含まれません。
</Note>

<div id="enum-values">
  #### 列挙値
</div>

**api**

* `AUTHENTICATION` - Authentication API へのリクエスト
* `MANAGEMENT` - Management API へのリクエスト

**operation\_result**

* `SUCCESS` - リクエストは正常に完了しました
* `FAILURE` - リクエストはクライアントエラーまたはサーバーエラーにより失敗しました

**failure\_code** (`operation_result` が `FAILURE` の場合のみ存在)

* `RATE_LIMIT` - リクエストがレート制限を超過しました
* `ANOMALY_DETECTION` - Auth0 の攻撃対策によってブロックされました
* `CLIENT_SERVER_ERROR` - HTTP 4xx または 5xx エラー

<div id="supported-destinations">
  ## サポート対象の送信先
</div>

Metric Streams は、以下の監視プラットフォームに対応しています。

<CardGroup cols={2}>
  <Card title="Datadog" icon="chart-line" href="#set-up-datadog">
    Datadog のメトリクス API との Native 連携
  </Card>

  <Card title="New Relic" icon="chart-mixed" href="#set-up-new-relic">
    OpenTelemetry Protocol (OTLP) 経由でストリーミング
  </Card>

  <Card title="Splunk" icon="magnifying-glass-chart" href="#set-up-splunk">
    OpenTelemetry Protocol (OTLP) 経由でストリーミング
  </Card>
</CardGroup>

<div id="set-up-datadog">
  ## Datadog を設定する
</div>

Datadog 独自のメトリクス API を使用して、Auth0 のメトリクスを Datadog に直接送信します。

<div id="prerequisites">
  ### 前提条件
</div>

* 有効な[Datadogアカウント](https://www.datadoghq.com/)
* Datadog の API キー (Datadog の **Organization Settings > API Keys** で生成)
* ご利用の Datadog サイト (`app.datadoghq.com` の場合は `US1`、`app.datadoghq.eu` の場合は `EU`、`us3.datadoghq.com` の場合は `US3` などのリージョン識別子)

### メトリックストリームを作成

<Tabs>
  <Tab title="Auth0 Dashboard">
    **Metric Streams に移動します。**

    1. [Auth0 Dashboard](https://manage.auth0.com) で、**Monitoring** > **Metric Streams** に移動します。
    2. **+ Create Metric Stream** を選択します。
    3. **Datadog** を選択します。

    **ストリームを設定します。**

    1. **Name**: わかりやすい名前を入力します (例: `datadog-production`) 。
    2. **Datadog Site**: ドロップダウンから Datadog のリージョンを選択します。
       * `US1`: app.datadoghq.com
       * `US3`: us3.datadoghq.com
       * `US5`: us5.datadoghq.com
       * `EU`: app.datadoghq.eu
       * `AP1`: ap1.datadoghq.com
    3. **Datadog API Key**: Datadog の API キーを貼り付けます。
    4. **Save** を選択します。

    これで Metric Stream が作成され、自動的に有効になります。
  </Tab>

  <Tab title="CLI">
    Auth0 CLI を使用して Datadog のメトリックストリームを作成します。

    ```bash theme={null}
    auth0 api post metric-streams \
      --data '{
        "name": "datadog-production",
        "subscriptions": [{ "metric_type": "auth0.api_request.count" }],
        "destination": {
          "type": "datadog",
          "configuration": {
            "api_key": "YOUR_DATADOG_API_KEY",
            "site": "app.datadoghq.com"
          }
        }
      }'
    ```

    **レスポンス:**

    ```json theme={null}
    {
      "id": "mst_abc123xyz",
      "status": "enabled",
      "name": "datadog-production",
      "created_at": "2024-02-12T10:30:00Z",
      "updated_at": "2024-02-12T10:30:00Z",
      "destination": {
        "type": "datadog",
        "configuration": {
          "api_key": "***",
          "site": "app.datadoghq.com"
        }
      }
    }
    ```

    このストリームを後で管理できるよう、`id` の値を保存しておきます。
  </Tab>
</Tabs>

<div id="verify-in-datadog">
  ### DatadogでVerify
</div>

数分で、Auth0のメトリクスがDatadogに表示されます。**Metrics > Explorer** に移動し、`auth0.api_request.count` を検索すると、データを確認できます。

<div id="manage-streams">
  ### ストリームの管理
</div>

<Tabs>
  <Tab title="Auth0 Dashboard">
    **すべてのストリームを表示する:**

    1. [Auth0 Dashboard](https://manage.auth0.com) の **Monitoring** > **Metric Streams** に移動します。
    2. 設定済みのすべてのストリームが、Destination、Status、Name、Subscriptions とともに一覧表示されます。

    **ストリームを編集する:**

    1. 一覧からストリーム名を選択します。
    2. 設定を更新します。
    3. **Save** を選択します。

    **ストリームを有効化/無効化する:**

    1. Status 列の **Toggle switch** を使用して、ストリームを有効または無効にします。
    2. ストリームを無効にすると、メトリクスの送信は停止しますが、設定は保持されます。

    **ストリームを削除する:**

    1. 一覧からストリーム名を選択します。
    2. 設定ページの下部にある **Delete** を選択します。
    3. 削除を確認します。
  </Tab>

  <Tab title="CLI">
    **すべてのストリームを一覧表示する:**

    ```bash theme={null}
    auth0 api get /api/v2/metric-streams
    ```

    **ストリームを無効化する:**

    ```bash theme={null}
    auth0 api patch /api/v2/metric-streams/YOUR_STREAM_ID \
      --data '{"status":"disabled"}'
    ```

    **ストリームを再度有効化する:**

    ```bash theme={null}
    auth0 api patch /api/v2/metric-streams/YOUR_STREAM_ID \
      --data '{"status":"enabled"}'
    ```
  </Tab>
</Tabs>

<div id="set-up-new-relic">
  ## New Relicを設定する
</div>

OpenTelemetry Protocol (OTLP) を使用して、Auth0のメトリクスをNew Relicに送信します。

<div id="get-new-relic-credentials">
  ### New Relicの資格情報を取得する
</div>

<Steps>
  <Step title="OTLP エンドポイントを確認する">
    リージョンごとのエンドポイントを確認するには、[New RelicのOTLPドキュメント](https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/#configure-endpoint-port-protocol)を参照してください。

    * **US:** `https://otlp.nr-data.net`
    * **EU:** `https://otlp.eu01.nr-data.net`

    このエンドポイントURLを保存しておきます。
  </Step>

  <Step title="Ingestライセンスキーを作成する">
    1. **\[ユーザーメニュー]** > **API Keys** に移動します。
    2. **Create a key** を選択します。
    3. **Key Type** = **Ingest - License** を選択します。
    4. わかりやすい名前と必要に応じてメモを入力します。
    5. **Create a key** を選択します。
    6. APIキーをすぐにコピーします。後の手順で必要になり、あとで再表示することはできません。
  </Step>
</Steps>

<div id="create-metric-stream">
  ### メトリックストリーム を作成
</div>

<Tabs>
  <Tab title="Auth0 Dashboard">
    **Metric Streams に移動します。**

    1. [Auth0 Dashboard](https://manage.auth0.com) > **Monitoring** > **Metric Streams** に移動します。
    2. **+ Create Metric Stream** を選択します。
    3. **OpenTelemetry** を選択します。

    **ストリームを設定します。**

    1. **Name**: わかりやすい名前を入力します (例: `newrelic-production`) 。
    2. **Protocol**: ドロップダウンから **HTTP** を選択します。
    3. **OTLP Endpoint**: New Relic の OTLP エンドポイント を貼り付けます (例: `https://otlp.nr-data.net`) 。
    4. **Authentication Method**: ドロップダウンから **API Key** を選択します。
    5. **Header Name**: `api-key` を入力します。
    6. **API Key**: 前の手順でコピーした New Relic の Ingest License Key を貼り付けます。
    7. **Save** を選択します。

    これでメトリックストリーム が作成され、自動的に有効になります。
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    auth0 api post metric-streams \
      --data '{
        "name": "newrelic-production",
        "subscriptions": [{ "metric_type": "metrics_bridge.api_request" }],
        "destination": {
          "type": "otlp",
          "configuration": {
            "endpoint": "YOUR_NEW_RELIC_ENDPOINT",
            "protocol": "http",
            "auth_type": "api_key",
            "api_key": "YOUR_INGEST_LICENSE_KEY",
            "auth_header_name": "api-key"
          }
        }
      }'
    ```
  </Tab>
</Tabs>

<div id="set-up-splunk">
  ## Splunk を設定する
</div>

OpenTelemetry Protocol (OTLP) を使用して、Auth0 のメトリクスを Splunk Observability Cloud にストリーミングします。

<div id="get-splunk-credentials">
  ### Splunkの資格情報を取得する
</div>

<Steps>
  <Step title="OTLPエンドポイントを確認する">
    エンドポイントを確認するには、[SplunkのOTLP HTTP Exporterドキュメント](https://help.splunk.com/en/splunk-observability-cloud/manage-data/splunk-distribution-of-the-opentelemetry-collector/get-started-with-the-splunk-distribution-of-the-opentelemetry-collector/collector-components/exporters/otlphttp-exporter)を参照してください。

    エンドポイントの形式は次のとおりです。

    ```
    https://ingest.<REALM>.signalfx.com/v2/datapoint/otlp
    ```

    `<REALM>` はSplunkのレルム (例: `us1`、`eu0`、`jp0`) に置き換えてください。
  </Step>

  <Step title="アクセストークンを作成する">
    1. **設定** > **アクセストークン** > **New Token** に移動します。
    2. わかりやすい名前を入力します。
    3. **Authorization Scope** を **INGEST** に設定します (必須) 。
    4. トークンの有効期限を設定します。
    5. **Create** を選択します。
    6. トークンの値をコピーし、安全な場所に保管します。この値は後の手順で必要になります。
  </Step>
</Steps>

### メトリックストリームを作成

<Tabs>
  <Tab title="Auth0 Dashboard">
    **Metric Streams に移動します。**

    1. [Auth0 Dashboard](https://manage.auth0.com) > **Monitoring** > **Metric Streams** に移動します。
    2. **+ Create Metric Stream** を選択します。
    3. **OpenTelemetry** を選択します。

    **ストリームを設定します。**

    1. **Name**: わかりやすい名前を入力します (例: `splunk-production`) 。
    2. **Protocol**: ドロップダウンから **HTTP** を選択します。
    3. **OTLP Endpoint**: Splunk の OTLP エンドポイントを貼り付けます (例: `https://ingest.us1.signalfx.com/v2/datapoint/otlp`) 。
    4. **Authentication Method**: ドロップダウンから **API Key** を選択します。
    5. **Header Name**: `X-SF-TOKEN` を入力します。
    6. **API Key**: Splunk のアクセストークンを貼り付けます (上記のステップ 2) 。
    7. **Save** を選択します。

    メトリックストリームが作成され、自動的に有効になります。
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    auth0 api post metric-streams \
      --data '{
        "name": "splunk-production",
        "subscriptions": [{ "metric_type": "metrics_bridge.api_request" }],
        "destination": {
          "type": "otlp",
          "configuration": {
            "endpoint": "YOUR_SPLUNK_ENDPOINT",
            "protocol": "http",
            "auth_type": "api_key",
            "api_key": "YOUR_SPLUNK_ACCESS_TOKEN",
            "auth_header_name": "X-SF-TOKEN"
          }
        }
      }'
    ```
  </Tab>
</Tabs>

<div id="understand-metric-cardinality">
  ## メトリクスのカーディナリティを理解する
</div>

カーディナリティとは、メトリクスによって生成される一意の時系列の数を指します。カーディナリティが高いほど、監視コストも増加します。

| タグ                 | カーディナリティ | 影響                                    |
| ------------------ | -------- | ------------------------------------- |
| `api`              | 低        | 一意の値は 2 つ (Authentication、Management) |
| `operation_name`   | 中        | 使用する API 操作によって異なります                  |
| `operation_result` | 低        | 一意の値は 2 つ (成功、失敗)                     |
| `tenant`           | 中        | Auth0 テナントごとに 1 つ                     |
| `failure_code`     | 低        | 一意の値は 3 つ (失敗時のみ)                     |
| `country_code`     | 中〜高      | 地理的な分布によって異なります                       |
| `client_id`        | **高**    | アプリケーションのクライアントごとに 1 つ                |
| `connection_id`    | **高**    | IDプロバイダーの接続ごとに 1 つ                    |
| `grant_type`       | 低        | OAuth 2.0 のグラントタイプは限定的                |
| `batch_seq`        | 低        | 一時的なタグ (Beta 後に削除)                    |

<Warning>
  `client_id` と `connection_id` タグは慎重に使用してください。アプリケーションや接続が多い環境では、これらのタグによってコストが大幅に増加する可能性があります。詳細な粒度が不要な場合は、特定のクライアントだけに絞ってフィルタリングするか、これらのタグを集約することを検討してください。
</Warning>

<div id="troubleshooting">
  ## トラブルシューティング
</div>

<div id="metrics-not-appearing">
  ### メトリクスが表示されない
</div>

**ストリームのステータスを確認する:**

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. [Auth0 Dashboard](https://manage.auth0.com) > **Monitoring** > **Metric Streams** に移動します。
    2. 一覧から対象のメトリックストリームを探します。
    3. **Status** 列が **Enabled** になっていることを確認します。
    4. ストリーム名を選択して詳細設定を表示し、設定内容を確認します。
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    auth0 api get /api/v2/metric-streams/YOUR_STREAM_ID
    ```

    `status` フィールドが `enabled` であることを確認します。
  </Tab>
</Tabs>

**送信先の資格情報を確認する:**

* **Datadog**: API キーが有効であり、site URL が Datadog のリージョンと一致していることを確認します
* **OTLP destinations**: エンドポイント URL、認証トークン、ヘッダー名が正しいことを確認します

**エッジキャッシュを確認する:**

キャッシュされたリクエストや WAF によってブロックされたリクエストは、メトリックストリームに含まれないことに注意してください。

<div id="high-monitoring-costs">
  ### 監視コストが高い場合
</div>

想定以上にコストがかかっている場合は、次の点を確認してください。

1. クエリやダッシュボードで使用しているタグを見直します。
2. 集計から `client_id` と `connection_id` を除外することを検討します。
3. 監視プラットフォームでサンプリングやフィルタリングを利用し、取り込まれるメトリクスを減らします。
4. 粒度の細かいタグではなく、`api` や `operation_result` のような上位レベルのタグで集計します。
