

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Managed Service for Prometheus での OpenSearch Ingestion パイプラインの使用
<a name="configure-client-prometheus"></a>

Amazon Managed Service for Prometheus を OpenSearch Ingestion パイプラインの送信先として使用して、メトリクスを時系列形式で保存できます。Prometheus シンクを使用すると、OpenTelemetry メトリクスやその他の時系列データをパイプラインから Amazon Managed Service for Prometheus ワークスペースに送信して、モニタリング、アラート、分析を行うことができます。

`prometheus` シンクプラグインを使用すると、OpenSearch Ingestion パイプラインは Prometheus リモート書き込みプロトコルを使用して Amazon Managed Service for Prometheus ワークスペースにメトリクスデータを書き込むことができます。この統合により、次のことが可能になります。
+ Amazon Managed Service for Prometheus に時系列メトリクスデータを保存する
+ Amazon Managed Service for Prometheus と Amazon Managed Grafana を使用してメトリクスをモニタリングおよびアラートする
+ メトリクスを複数の宛先に同時にルーティングする (OpenSearch や Amazon Managed Service for Prometheus など)
+ 外部エージェントから OpenTelemetry メトリクスを処理するか、パイプライン内でメトリクスを生成する

**Topics**
+ [前提条件](#prometheus-prereqs)
+ [ステップ 1: パイプラインロールを設定する](#prometheus-pipeline-role)
+ [ステップ 2: パイプラインを作成する](#prometheus-pipeline)
+ [モニタリングとトラブルシューティング](#prometheus-monitoring)
+ [制限事項](#prometheus-limitations)
+ [ベストプラクティス](#prometheus-best-practices)

## 前提条件
<a name="prometheus-prereqs"></a>

Prometheus シンクを設定する前に、以下があることを確認してください。
+ **Amazon Managed Service for Prometheus ワークスペース**: AWS リージョン OpenSearch Ingestion パイプラインと同じ AWS アカウント および にワークスペースを作成します。手順については、*「Amazon Managed Service for Prometheus ユーザーガイド*」の[「ワークスペースの作成](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html)」を参照してください。
+ **IAM アクセス許可**: Amazon Managed Service for Prometheus に書き込むアクセス許可を持つ IAM ロールを設定します。詳細については、「[ステップ 1: パイプラインロールを設定する](#prometheus-pipeline-role)」を参照してください。

**注記**  
Amazon Managed Service for Prometheus ワークスペースでは、 AWS サービスマネージド AWS KMS キーを使用する必要があります。カスタマーマネージド AWS KMS キーは、現在、OpenSearch Ingestion パイプラインの Amazon Managed Service for Prometheus シンクではサポートされていません。

## ステップ 1: パイプラインロールを設定する
<a name="prometheus-pipeline-role"></a>

Prometheus シンクは、[パイプラインロール](pipeline-security-overview.md#pipeline-security-sink)の認証用の IAM アクセス許可を自動的に継承するため、シンク設定に追加のロール設定 ( など`sts_role_arn`) は必要ありません。

次のサンプルポリシーは、Amazon Managed Service for Prometheus をシンクとして使用するために必要なアクセス許可を示しています。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AMPRemoteWrite",
      "Effect": "Allow",
      "Action": [
        "aps:RemoteWrite"
      ],
      "Resource": "arn:aws:aps:region:account-id:workspace/workspace-id"
    }
  ]
}
```

次のプレースホルダーを置き換えます。
+ `region`: Your AWS リージョン (例: `us-east-1`)
+ `account-id`: ID AWS アカウント 
+ `workspace-id`: Amazon Managed Service for Prometheus ワークスペース ID

これらのアクセス許可をパイプラインロールにアタッチする必要があります。

パイプラインロールに OpenSearch Ingestion が引き受けることができる信頼関係があることを確認します。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "osis-pipelines.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## ステップ 2: パイプラインを作成する
<a name="prometheus-pipeline"></a>

アクセス許可を設定したら、Amazon Managed Service for Prometheus をシンクとして使用するように OpenSearch Ingestion パイプラインを設定できます。

### 基本的な設定
<a name="prometheus-basic-config"></a>

次の例は、最小限の Prometheus シンク設定を示しています。

```
version: "2"
sink:
  - prometheus:
      url: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write"
      aws:
        region: "region"
```

Amazon Managed Service for Prometheus リモート書き込みエンドポイントである`prometheus`シンク設定内で `url`オプションを指定する必要があります。URL をフォーマットするには、Amazon Managed Service for Prometheus コンソールでワークスペース ID を見つけ、URL を次のように構築します。 `https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write`

### 設定オプション
<a name="prometheus-config-options"></a>

次のオプションを使用して、Prometheus シンクのバッチ処理とフラッシュの動作を設定します。


**Prometheus シンク設定オプション**  

| オプション | 必須 | 型 | 説明 | 
| --- | --- | --- | --- | 
| max\$1events | いいえ | 整数 | Prometheus にフラッシュする前に累積するイベントの最大数。デフォルトは 1000 です。 | 
| max\$1request\$1size | いいえ | バイト数 | フラッシュ前のリクエストペイロードの最大サイズ。デフォルトは 1mb です。 | 
| flush\$1interval | いいえ | 時間 | イベントをフラッシュするまでの最大待機時間。デフォルトは 10s です。最大許容値は です60s。 | 

### パイプラインの例
<a name="prometheus-example-pipelines"></a>

**例 1: Amazon Managed Service for Prometheus への OpenTelemetry メトリクス**

このパイプラインは、外部エージェントから OpenTelemetry メトリクスを受け取り、Amazon Managed Service for Prometheus に書き込みます。

```
version: "2"
source:
  otel_metrics_source:
    path: "/v1/metrics"
    output_format: otel

sink:
  - prometheus:
      url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write"
      aws:
        region: "us-east-1"
```

**例 2: デュアルシンク - OpenSearch と Amazon Managed Service for Prometheus**

このパイプラインは、OpenSearch と Amazon Managed Service for Prometheus の両方にメトリクスをルーティングします。

```
version: "2"
source:
  otel_metrics_source:
    path: "/v1/metrics"
    output_format: otel

sink:
  - opensearch:
      hosts:
        - "https://search-domain-endpoint.us-east-1.es.amazonaws.com"
      index: "metrics-%{yyyy.MM.dd}"
      aws:
        region: "us-east-1"
        sts_role_arn: "arn:aws:iam::123456789012:role/OSI-Pipeline-Role"

  - prometheus:
      url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write"
      aws:
        region: "us-east-1"
```

**例 3: フィルタリングを使用したメトリクス**

このパイプラインは、Amazon Managed Service for Prometheus に送信する前にメトリクスをフィルタリングします。

```
version: "2"
source:
  otel_metrics_source:
    path: "/v1/metrics"
    output_format: otel

processor:
  - drop_events:
      drop_when: '/name != "http.server.duration" and /name != "http.client.duration"'

sink:
  - prometheus:
      url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write"
      aws:
        region: "us-east-1"
```

事前設定された Amazon Managed Service for Prometheus ブループリントを使用して、これらのパイプラインを作成できます。詳細については、「[ブループリントの使用](pipeline-blueprint.md)」を参照してください。

### Amazon Managed Service for Prometheus シンクを使用したパイプラインの作成
<a name="prometheus-create-pipeline"></a>

#### AWS コンソールの使用
<a name="prometheus-console"></a>

1. OpenSearch Service コンソールに移動します。

1. **取り込みで****パイプライン**を選択します。

1. **パイプラインの作成** を選択します。

1. **ブループリントを使用してビルド**を選択し、**Amazon Prometheus ブループリントへの OpenTelemetry メトリクス**を選択します。

1. パイプラインを設定します。
   + Amazon Managed Service for Prometheus ワークスペース ID を入力する
   + パイプラインロール ARN を指定する
   + 必要に応じてソースとプロセッサの設定を構成する

1. パイプラインを確認して作成します。

#### CLI AWS の使用
<a name="prometheus-cli"></a>

必要な設定でパイプライン設定ファイル ( など`amp-pipeline.yaml`) を作成し、以下を実行します。

```
aws osis create-pipeline \
  --pipeline-name my-amp-pipeline \
  --min-units 2 \
  --max-units 4 \
  --pipeline-configuration-body file://amp-pipeline.yaml
```

#### の使用 AWS CloudFormation
<a name="prometheus-cfn"></a>

```
Resources:
  MyAMPPipeline:
    Type: AWS::OSIS::Pipeline
    Properties:
      PipelineName: my-amp-pipeline
      MinUnits: 2
      MaxUnits: 4
      PipelineConfigurationBody: |
        version: "2"
        source:
          otel_metrics_source:
            path: "/v1/metrics"
            output_format: otel
        sink:
          - prometheus:
              url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write"
              aws:
                region: "us-east-1"
```

## モニタリングとトラブルシューティング
<a name="prometheus-monitoring"></a>

### CloudWatch メトリクス
<a name="prometheus-cloudwatch-metrics"></a>

CloudWatch メトリクスを使用してパイプラインのパフォーマンスをモニタリングします。
+ `DocumentsWritten`: Amazon Managed Service for Prometheus に正常に書き込まれたメトリクスの数
+ `DocumentsWriteFailed`: 書き込みに失敗したメトリクスの数
+ `RequestLatency`: リモート書き込みリクエストのレイテンシー

### 一般的な問題
<a name="prometheus-troubleshooting"></a>

**問題**: パイプラインが Amazon Managed Service for Prometheus への書き込みに失敗する

**解決方法:**
+ URL のワークスペース ID とリージョンが正しいことを確認します。
+ パイプラインロールに アクセス`aps:RemoteWrite`許可があることを確認する
+ ワークスペースがサービスマネージド AWS KMS キーを使用していることを確認します。
+ パイプラインとワークスペースが同じ にあることを確認する AWS アカウント

**問題**: 認証エラー

**解決方法:**
+ 信頼関係で がパイプラインロールを引き受け`osis-pipelines.amazonaws.com`ることができることを確認する
+ パイプラインロールに必要な`aps:RemoteWrite`アクセス許可があることを確認します。

**問題**: 高レイテンシーまたはスロットリング

**解決方法:**
+ パイプライン容量ユニットを増やす
+ プロセッサにバッチ処理を実装する
+ Amazon Managed Service for Prometheus サービスクォータを確認する

## 制限事項
<a name="prometheus-limitations"></a>

Amazon Managed Service for Prometheus の OpenSearch Ingestion パイプラインを設定するときは、次の制限を考慮してください。
+ Amazon Managed Service for Prometheus ワークスペースでは、サービスマネージド AWS KMS キーを使用する必要があります AWS 。カスタマーマネージド AWS KMS キーは現在サポートされていません。
+ パイプラインと Amazon Managed Service for Prometheus ワークスペースは同じ にある必要があります AWS アカウント。

## ベストプラクティス
<a name="prometheus-best-practices"></a>
+ **同じ IAM ロール**を使用する: Prometheus シンクは自動的にパイプラインロールを使用します。他のシンクを使用している場合は、 `sts_role_arn`がパイプラインロールと同じであることを確認します。
+ **メトリクスのモニタリング**: 失敗した書き込みと高レイテンシーの CloudWatch アラームを設定する
+ **フィルタリングの実装**: Amazon Managed Service for Prometheus に送信する前に、プロセッサを使用して不要なメトリクスをフィルタリングする
+ **適切なサイズの容量**: 最小容量から開始し、メトリクスボリュームに基づいてスケールする
+ **ブループリントを使用する**: 一般的なユースケースで事前設定されたブループリントを活用する