

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

# Prometheus メトリクスへのアクセス
<a name="rabbitmq-prometheus-metrics"></a>

**注記**  
Prometheus メトリクスは、RabbitMQ 4.2 以降でのみ使用できます。ActiveMQ ブローカーは Prometheus メトリクスをサポートしていません。

Amazon MQ は、Amazon MQ for RabbitMQ ブローカーの Prometheus メトリクスをサポートするようになりました。Prometheus メトリクスを使用すると、ブローカーオブザーバビリティを既存のモニタリングインフラストラクチャに統合できるため、ブローカーのパフォーマンスを他の サービスと統合できます。Prometheus メトリクスを使用すると、きめ細かなアラートとダッシュボードを設定して、メッセージングワークロードの問題を積極的に検出して対応できます。

RabbitMQ 4.2 以降、Amazon MQ for RabbitMQ は Prometheus メトリクスをサポートしているため、Prometheus モニタリングシステムを使用してブローカーメトリクスをスクレイピングできます。次のエンドポイントがサポートされています。
+ `/metrics`
+ `/metrics/detailed`
+ `/metrics/memory-breakdown`

`/metrics/per-object` エンドポイントはサポートされていません。

各エンドポイントによって公開されるメトリクスの詳細については、RabbitMQ ドキュメントの [Prometheus メトリクス](https://www.rabbitmq.com/docs/prometheus#metric-aggregation)を参照してください。

## Prometheus メトリクスと CloudWatch メトリクスの比較
<a name="rabbitmq-prometheus-metrics-vs-cloudwatch"></a>

Amazon MQ for RabbitMQ は、Prometheus エンドポイントと CloudWatch の両方を通じてメトリクスを公開します。どちらもブローカーの状態を可視化しますが、範囲と使用状況は異なります。

Prometheus エンドポイントは、RabbitMQ ブローカーの状態に関する集約されたメトリクスの豊富なセットを公開し、接続チャーン、チャネルアクティビティ、キューと交換の統計、Raft コンセンサスメトリクスなど、幅広いブローカー内部をカバーします。これらは、既存の Prometheus ベースのモニタリングインフラストラクチャと詳細なアラートとの統合に適しています。

CloudWatch メトリクスは、Prometheus エンドポイントから取得したブローカーメトリクスの厳選されたサブセットです。使用可能な CloudWatch メトリクスの完全なリストについては、「」を参照してください[Amazon MQ for RabbitMQ ブローカーで利用可能な CloudWatch メトリクス](rabbitmq-logging-monitoring.md)。

CloudWatch では、メトリクスは常に視覚化前に 60 秒以上の間隔で集計されます。対照的に、Prometheus は未加工のメトリクスデータポイントを公開し、Grafana などのダッシュボードソリューションはデフォルトで集計せずに個々のデータポイントを視覚化します。その結果、同じメトリクスの視覚化は、CloudWatch で使用される統計に応じて CloudWatch と Prometheus の間で異なる可能性があります。

**注記**  
Amazon MQ for RabbitMQ 運用メトリクスの非集約モニタリングには、Prometheus を使用することをお勧めします。

## Prometheus エンドポイントの取得とアクセス
<a name="rabbitmq-prometheus-metrics-endpoint"></a>

 AWS マネジメントコンソール または を使用して、Amazon MQ for RabbitMQ ブローカーの Prometheus エンドポイントを取得できます AWS CLI。
+ **AWS マネジメントコンソール** — Amazon MQ コンソールに移動し、ブローカーの詳細ページを開き、**Connections **セクションで Prometheus エンドポイントを見つけます。
+ **AWS CLI** — `describe-broker` コマンドを使用します。

  ```
  aws mq describe-broker --broker-id <broker-id>
  ```

  Prometheus エンドポイントは、 のレスポンスで返されます`BrokerInstances.Endpoints`。

Amazon MQ for RabbitMQ Prometheus サポートは、ブローカーと同じ認証スキームを使用します。サポートされている認証方法の詳細については、「」を参照してください[Amazon MQ for RabbitMQ の認証と認可](rabbitmq-authentication.md)。Prometheus で認証を設定する方法については、Prometheus ドキュメントの[「http\_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_config)」を参照してください。

## Prometheus 設定のベストプラクティス
<a name="rabbitmq-prometheus-metrics-best-practices"></a>
+ 60 秒以上のスクレイピング期間を設定します。これは運用上の安全のために推奨されます。

## サンプルスクレイピング設定
<a name="rabbitmq-prometheus-metrics-sample-config"></a>

以下のセクションでは、Amazon MQ for RabbitMQ の Prometheus スクレイピング設定の例を示します。をブローカーの Prometheus エンドポイントホスト名`<broker-prometheus-endpoint>`に置き換え、 `<username>` をブローカー認証情報`<password>`に置き換えます。

### 推奨される設定
<a name="rabbitmq-prometheus-metrics-sample-config-recommended"></a>

ほとんどのユースケースでは、次の設定をお勧めします。`/metrics` エンドポイントをスクレイピングすると、クラスター全体の状態に関するメトリクスが十分に集約されるため、詳細なメトリクス収集のオーバーヘッドなしでブローカーのパフォーマンスを明確に把握できます。

```
global:
  scrape_interval: 60s

scrape_configs:
  - job_name: 'rabbitmq-aws-cluster'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics'
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
```

### 詳細なメトリクス設定
<a name="rabbitmq-prometheus-metrics-sample-config-detailed"></a>

次の設定は、特定のブローカーコンポーネントにより深いオブザーバビリティを実現するために、追加の詳細なメトリクスファミリーをスクレイプします。

```
global:
  scrape_interval: 60s

scrape_configs:
  - job_name: 'rabbitmq-connection-churn'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['connection_churn_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-ra'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['ra_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-queue'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['queue_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-exchange'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['exchange_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-connection'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['connection_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-channel'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['channel_metrics']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
  - job_name: 'rabbitmq-exchange-count'
    scheme: https
    basic_auth:
      username: <username>
      password: <password>
    metrics_path: '/metrics/detailed'
    params:
      family: ['exchange_names']
    static_configs:
      - targets:
        - '<broker-prometheus-endpoint>:16001'
        - '<broker-prometheus-endpoint>:16002'
        - '<broker-prometheus-endpoint>:16003'
```