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

# Metric Streamsの作成方法

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

> [!WARNING]
>
> **Metrics Streams機能は現在、です。**

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

> [card] [Datadog](#set-up-datadog)
>
> DatadogのメトリクスAPIとネイティブに統合

> [card] [New Relic](#set-up-new-relic)
>
> OpenTelemetry プロトコル (OTLP) 経由でストリーミング

> [card] [Splunk](#set-up-splunk)
>
> OpenTelemetry プロトコル (OTLP) 経由でストリーミング

## 前提条件

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

* **Auth0 Management APIへのアクセス**：以下の権限を持つマシンツーマシン (M2M) アプリケーションを作成してください。

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

  詳しい手順については、「[Management APIのアクセストークンを取得する](https://auth0.com/docs/ja-jp/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/)をインストールしてください。

* **監視プラットフォームのアカウント**：[サポートされているプラットフォーム](https://auth0.com/docs/ja-jp/deploy-monitor/metric-streams.md#supported-platforms)のいずれかの有効なアカウント。

## Datadogをセットアップする

DatadogのネイティブメトリクスAPIを使用して、Auth0のメトリクスをDatadogに直接ストリーミングします。

### 前提条件

* 有効な [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`)

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

> [tab] ダッシュボード
>
> **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のリージョンを選択します。
>    * app.datadoghq.comの場合は`US1`
>    * us3.datadoghq.comの場合は`US3`
>    * us5.datadoghq.comの場合は`US5`
>    * app.datadoghq.euの場合は`EU`
>    * ap1.datadoghq.comの場合は`AP1`
> 3. **\[Datadog API Key]**：DatadogのAPIキーを貼り付けます。
> 4. **\[保存]** を選択します。
>
> これでMetric Streamが作成され、自動的に有効になります。

> [tab] CLI
>
> Auth0 CLIを使用して、Datadogのメトリックストリームを作成します。
>
> Auth0 CLIをご使用ですか？まだの場合は、このコマンドを実行する前に[CLIセッションをセットアップして認証](https://auth0.com/docs/ja-jp/deploy-monitor/auth0-cli.md)してください。
>
> ```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`の値を控えておいてください。

### Datadogで確認する

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

### ストリームの管理

> [tab] ダッシュボード
>
> **すべてのストリームを表示する：**
>
> 1. [Auth0 Dashboard](https://manage.auth0.com) > **\[Monitoring (監視) ]** > **\[Metric Streams]** に移動します。
> 2. 設定済みのストリームが一覧表示され、それぞれの送信先、ステータス、名前、サブスクリプションを確認できます。
>
> **ストリームを編集する：**
>
> 1. 一覧からストリーム名を選択します。
> 2. 設定を更新します。
> 3. **\[Save (保存) ]** を選択します。
>
> **ストリームを有効化／無効化する：**
>
> 1. Status列の**トグルスイッチ**を切り替えて、ストリームを有効または無効にします。
> 2. 無効化したストリームはメトリクスの送信を停止しますが、設定はそのまま保持されます。
>
> **ストリームを削除する：**
>
> 1. 一覧からストリーム名を選択します。
> 2. 設定ページの下部にある **\[Delete (削除) ]** を選択します。
> 3. 確認画面で削除を確定します。

> [tab] 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"}'
> ```

## New Relicをセットアップする

OpenTelemetry プロトコル (OTLP) を使用して、Auth0のメトリクスをNew Relicにストリーミングします。

### New Relic の認証情報を取得する

**1. 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 を控えておきます。

**2. 取り込み用ライセンスキーを作成する**

1. **\[ユーザーメニュー]** > **API キー** に移動します。
2. **Create a key** を選択します。
3. **Key Type** で **Ingest - License** を選択します。
4. わかりやすい名前を入力し、必要に応じてメモを追加します。
5. **Create a key** を選択します。
6. API キーはすぐにコピーしてください。このキーは後の手順で使用しますが、再表示されません。

### メトリクスストリームを作成する

> [tab] ダッシュボード
>
> **Metric Streamsに移動する：**
>
> 1. [Auth0 Dashboard](https://manage.auth0.com) > **\[Monitoring (監視) ]** > **\[Metric Streams]** に移動します。
> 2. **\[+ Create Metric Stream (+ Metric Streamを作成) ]** を選択します。
> 3. **\[OpenTelemetry]** を選択します。
>
> **ストリームを設定する：**
>
> 1. **\[Name (名前) ]**：わかりやすい名前を入力します (例：`newrelic-production`) 。
> 2. **\[Protocol (プロトコル) ]**：ドロップダウンから **\[HTTP]** を選択します。
> 3. **\[OTLP Endpoint (OTLPエンドポイント) ]**：New RelicのOTLPエンドポイントを貼り付けます (例：`https://otlp.nr-data.net`) 。
> 4. **\[Authentication Method (認証方法) ]**：ドロップダウンから **\[API Key (APIキー) ]** を選択します。
> 5. **\[Header Name (ヘッダー名) ]**：`api-key` と入力します。
> 6. **\[API Key (APIキー) ]**：前の手順でコピーしたNew RelicのIngest License Keyを貼り付けます。
> 7. **\[保存]** を選択します。
>
> これでMetric Streamが作成され、自動的に有効になります。

> [tab] 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"
>       }
>     }
>   }'
> ```

## Splunk のセットアップ

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

### Splunk の認証情報を取得する

**1. 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`) に置き換えてください。

**2. アクセストークンを作成する**

1. **Settings** > **Access Tokens** > **New Token** に移動します。
2. わかりやすい名前を入力します。
3. **Authorization Scope** を **INGEST** に設定します (必須) 。
4. トークンの有効期限を設定します。
5. **Create** を選択します。
6. トークンの値をコピーし、安全な場所に保管します。この値は以降の手順で使用します。

### メトリクスストリームを作成する

> [tab] ダッシュボード
>
> **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. **保存**を選択します。
>
> メトリクスストリームが作成され、自動的に有効になります。

> [tab] 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] ダッシュボード
>
> 1. [Auth0 Dashboard](https://manage.auth0.com) > **Monitoring** > **Metric Streams**に移動します。
> 2. 一覧から対象のメトリクスストリームを探します。
> 3. **Status**列に**Enabled**と表示されていることを確認します。
> 4. ストリーム名を選択して詳細な設定を開き、設定内容を確認します。

> [tab] CLI
>
> ```bash theme={null}
> auth0 api get /api/v2/metric-streams/YOUR_STREAM_ID
> ```
>
> `status`フィールドが`enabled`になっていることを確認します。

**送信先の認証情報を確認する：**

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

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

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

### 監視コストが高い場合

想定以上にコストが高くなっている場合は、次の対策を検討してください。

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


## Related topics

- [About Metric Streams](https://auth0.com/docs/deploy-monitor/metric-streams.md)
- [Metric Streams Tags Reference](https://auth0.com/docs/deploy-monitor/metric-streams/reference.md)
