

# Java Management Extensions (JMX) メトリクスの収集
<a name="CloudWatch-Agent-JMX-metrics"></a>

CloudWatch エージェントを使用し、Java アプリケーションから Java Management Extensions (JMX) メトリクスを収集できます。

CloudWatch エージェントは、次のバージョンからこれらのメトリクスの収集をサポートしています。
+ JVM 8 以降
+ Kafka 0.8.2.x 以降
+ Tomcat 9、10.1、11 (ベータ)

------
#### [ Amazon EC2 ]

**JVM インスタンスで JMX を有効にする方法**  
CloudWatch エージェントが JMX メトリクスを収集できるようにするには、アプリケーションの JVM が `com.sun.management.jmxremote.port` システムプロパティを使用してポートにバインドする必要があります。

```
java -Dcom.sun.management.jmxremote.port=port-number -jar example.jar
```

詳細やその他の設定については、「[JMX ドキュメント](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html)」を参照してください。

------
#### [ Amazon EKS ]

**Java アプリケーションポッドで JMX を有効にする方法**  
CloudWatch Observability EKS アドオンを使用するとき、注釈を使用して JMX メトリクスを有効にする方法を管理できます。詳細については、「[Amazon CloudWatch Observability EKS アドオンまたは Helm チャートを使用して CloudWatch エージェントをインストールする](install-CloudWatch-Observability-EKS-addon.md)」を参照してください。ワークロードから JMX メトリクスを収集できるようにするには、`PodTemplate` セクションのワークロードマニフェストファイルに次の注釈を追加します。
+ `instrumentation.opentelemetry.io/inject-java: "true"`
+ 次の 1 つ以上。
  + JVM メトリクスの場合: `cloudwatch.aws.amazon.com/inject-jmx-jvm: "true"`
  + Kafka ブローカーメトリクスの場合: `cloudwatch.aws.amazon.com/inject-jmx-kafka: "true"`
  + Kafka コンシューマーメトリクスの場合: `cloudwatch.aws.amazon.com/inject-jmx-kafka-consumer: "true"`
  + Kafka プロデューサーメトリクスの場合: `cloudwatch.aws.amazon.com/inject-jmx-kafka-producer: "true"`
  + Tomcat メトリクスの場合: `cloudwatch.aws.amazon.com/inject-jmx-tomcat: "true"`

------

JMX メトリクスの収集を開始するには、CloudWatch エージェント設定ファイルの `metrics_collected` セクション内に `jmx` セクションを追加します。`jmx` セクションには、次のフィールドを含めることができます。
+ `jvm` - オプション。インスタンスから Java 仮想マシン (JVM) メトリクスを取得するように指定します。詳細については、「[JVM メトリクスの収集](#CloudWatch-Agent-JVM-metrics)」を参照してください。

  このセクションには、次のフィールドを含めることができます。
  + `measurement` – 収集する JVM メトリクスの配列を指定します。ここで使用できる値のリストについては、[JVM メトリクスの収集](#CloudWatch-Agent-JVM-metrics) の表の **[Metric]** (メトリクス) 列を参照してください。

    各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
    + `rename` – このメトリクスに別の名前を指定します。
    + `unit` – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)」の `Unit` に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
+ `kafka` - オプション。インスタンスから Apache Kafka ブローカーメトリクスを取得するように指定します。詳細については、「[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics)」を参照してください。

  このセクションには、次のフィールドを含めることができます。
  + `measurement` – 収集する Kafka ブローカーメトリクスの配列を指定します。ここで使用できる値のリストについては、[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics) の最初の表にある **[メトリクス]** 列を参照してください。

    各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
    + `rename` – このメトリクスに別の名前を指定します。
    + `unit` – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)」の `Unit` に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
+ `kafka-consumer` - オプション。インスタンスから Apache Kafka コンシューマーメトリクスを取得するように指定します。詳細については、「[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics)」を参照してください。

  このセクションには、次のフィールドを含めることができます。
  + `measurement` – 収集する Kafka ブローカーメトリクスの配列を指定します。ここで使用できる値のリストについては、[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics) の 2 番目の表にある **[メトリクス]** 列を参照してください。

    各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
    + `rename` – このメトリクスに別の名前を指定します。
    + `unit` – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)」の `Unit` に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
+ `kafka-producer` - オプション。インスタンスから Apache Kafka プロデューサーメトリクスを取得するように指定します。詳細については、「[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics)」を参照してください。

  このセクションには、次のフィールドを含めることができます。
  + `measurement` – 収集する Kafka ブローカーメトリクスの配列を指定します。ここで使用できる値のリストについては、[Kafka メトリクスの収集](#CloudWatch-Agent-Kafka-metrics) の 3 番目の表にある **[メトリクス]** 列を参照してください。

    各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
    + `rename` – このメトリクスに別の名前を指定します。
    + `unit` – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)」の `Unit` に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
+ `tomcat` - オプション。インスタンスから Tomcat メトリクスを取得するように指定します。詳細については、「[Tomcat メトリクスの収集](#CloudWatch-Agent-Tomcat-metrics)」を参照してください。

  このセクションには、次のフィールドを含めることができます。
  + `measurement` – 収集する Tomcat メトリクスの配列を指定します。ここで使用できる値のリストについては、[Tomcat メトリクスの収集](#CloudWatch-Agent-Tomcat-metrics) の表の **[Metric]** (メトリクス) 列を参照してください。

    各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
    + `rename` – このメトリクスに別の名前を指定します。
    + `unit` – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「[MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)」の `Unit` に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

`jmx` セクションには、オプションの `append_dimensions` フィールドを含めることもできます。
+ `append_dimensions` - オプション。process メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される `append_dimensions` フィールドで指定されたディメンションに加えて使用されます。

**次のフィールドは Amazon EC2 専用です。**
+ `endpoint` – JMX クライアントが接続するアドレス。形式は `ip:port` です。エンドポイントが localhost ではない場合、パスワード認証および SSL を有効にする必要があります。
+ `metrics_collection_interval` - オプション。設定ファイルの `metrics_collection_interval` セクションで指定されたグローバルな `agent` を上書きして、processes メトリクスを収集する頻度を指定します。

  この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

  この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「[高解像度のメトリクス](publishingMetrics.md#high-resolution-metrics)」を参照してください。

JMX がパスワード認証またはリモートアクセス用の SSL で有効になっていた場合、次のフィールドを使用できます。
+ `password_file` - オプション。パスワードへのキーの Java プロパティファイルを指定します。ファイルは読み取り専用であり、CloudWatch エージェントを実行しているユーザーに制限する必要があります。パスワード認証が有効になっている場合、`com.sun.management.jmxremote.password.file` プロパティで指定された JMX パスワードファイルのエントリと同じユーザー名およびパスワードのペアが必要です。SSL が有効になっている場合、`keystore` および `truststore` のエントリが必要であり、それぞれ `javax.net.ssl.keyStorePassword` および `javax.net.ssl.trustStorePassword` に対応します。
+ `username` – パスワード認証が有効になっている場合、指定されたパスワードファイルのユーザー名と一致するユーザー名を指定します。
+ `keystore_path` – SSL が有効になっている場合、Java キーストアへのフルパスを指定します。このキーストアは、プライベートキーおよびパブリックキーへの証明書で構成されます。`javax.net.ssl.keyStore` プロパティに対応します。
+ `keystore_type` – SSL が有効になっている場合、使用されているキーストアの種類を指定します。`javax.net.ssl.keyStoreType` プロパティに対応します。
+ `truststore_path` – SSL が有効になっている場合、Java トラストストアへのフルパスを指定します。これには、リモート JMX サーバーのパブリック証明書が含まれている必要があります。`javax.net.ssl.trustStore` プロパティに対応します。
+ `truststore_type` – SSL が有効になっている場合、使用されているトラストストアの種類を指定します。`javax.net.ssl.trustStoreType` プロパティに対応します。
+ `remote_profile` - オプション。サポートされている JMX リモートプロファイルは、`SASL/PLAIN`、`SASL/DIGEST-MD5`、`SASL/CRAM-MD5` の SASL プロファイルと組み合わせた TLS です。`SASL/PLAIN`、`SASL/DIGEST-MD5`、`SASL/CRAM-MD5`、`TLS SASL/PLAIN`、`TLS SASL/DIGEST-MD5`、`TLS SASL/CRAM-MD5` のいずれかである必要があります。
+ `realm` - オプション。リモートプロファイル `SASL/DIGEST-MD5` が必要な領域。
+ `registry_ssl_enabled` – RMI レジストリ認証が有効になっている場合。JVM が `com.sun.management.jmxremote.registry.ssl=true` で設定されている場合、true に設定します。
+ `insecure` エージェントがローカルホスト以外のエンドポイント用に設定されている場合、`true` に設定して必要な検証をオプトアウトします。

次の内容は、CloudWatch エージェント設定ファイルの `jmx` セクションです。

```
{
  "metrics": {
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "remotehost:1314",
          "jvm": {
            "measurement": [
              "jvm.memory.heap.init",
              "jvm.memory.nonheap.used"
            ]
          },
          "kafka": {
            "measurement": [
              "kafka.request.count",
              {
                "name": "kafka.message.count",
                "rename": "KAFKA_MESSAGE_COUNT",
                "unit": "Count"
              }
            ]
          },
          "username": "cwagent",
          "keystore_path": "/path/to/keystore",
          "keystore_type": "PKCS12",
          "truststore_path": "/path/to/truststore",
          "truststore_type": "PKCS12"
        },
        {
          "endpoint": "localhost:1315",
          "kafka-producer": {
            "measurement": [
              "kafka.producer.request-rate"
            ]
          },
          "append_dimensions": {
            "service.name": "kafka/1"
          }
        }
      ]
    }
  }
}
```

## JVM メトリクスの収集
<a name="CloudWatch-Agent-JVM-metrics"></a>

CloudWatch エージェントを使用して Java 仮想マシン (JVM) メトリクスを収集できます。これを設定するには、CloudWatch エージェント設定ファイルの `jmx` セクション内に `jvm` セクションを追加します。

次のメトリクスを収集できます。


| メトリクス | ディメンション | 説明 | 
| --- | --- | --- | 
|  `jvm.classes.loaded` | [DEFAULT] |  ロードされたクラスの合計数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `jvm.gc.collections.count` | [DEFAULT]、`name` |  発生したガベージコレクションの合計数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `jvm.gc.collections.elapsed` | [DEFAULT]、`name` |  蓄積ガベージコレクションのおおよその経過時間。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.heap.init` | [DEFAULT] |  JVM がヒープのためにオペレーティングシステムにリクエストするメモリの初期量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.heap.max` |  [DEFAULT]  |  ヒープに使用できるメモリの最大量。 **単位:** バイト **有意義な統計:** 最大  | 
|  `jvm.memory.heap.used` | [DEFAULT] |  現在のヒープメモリの使用量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.heap.committed` | [DEFAULT] |  ヒープに使用できることが保証されているメモリの量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.nonheap.init` | [DEFAULT] |  JVM がヒープ以外の目的でオペレーティングシステムにリクエストするメモリの初期量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.nonheap.max` | [DEFAULT] |  ヒープ以外の目的で使用できるメモリの最大量。 **単位:** バイト **有意義な統計:** 最大  | 
|  `jvm.memory.nonheap.used` | [DEFAULT] |  ヒープ以外の現在のメモリ使用量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.nonheap.committed` | [DEFAULT] |  ヒープ以外の目的で使用できることが保証されているメモリの量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.pool.init` |  [DEFAULT]、`name` |  JVM がメモリプール用にオペレーティングシステムにリクエストするメモリの初期量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.pool.max` |  [DEFAULT]、`name` |  メモリプールに使用できるメモリの最大量。 **単位:** バイト **有意義な統計:** 最大  | 
|  `jvm.memory.pool.used` |  [DEFAULT]、`name` |  現在のメモリプールのメモリ使用量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.memory.pool.committed` |  [DEFAULT]、`name` |  メモリプールで使用できることが保証されているメモリの量。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `jvm.threads.count` | [DEFAULT] |  現在のスレッドの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 

JVM メトリクスは次のディメンションで収集されます。


| ディメンション | 説明 | 
| --- | --- | 
| [DEFAULT] | デフォルトで Amazon EC2 では、`metrics` セクションの `append_dimensions` フィールドを使用している場合を除き、ホストは CloudWatch エージェントによって収集されるメトリクスのディメンションとしても発行されます。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」のエージェントセクションの「`omit_hostname`」を参照してください。 Amazon EKS では、k8s に関連したコンテキストはメトリクスのディメンション (`k8s.container.name`、`k8s.deployment.name`、`k8s.namespace.name`、`k8s.node.name`、`k8s.pod.name`、`k8s.replicaset.name`) としても公開されます。これらは `aggregation_dimensions` フィールドを使用してフィルタリングできます。  | 
| `name` | `jvm.gc.collections` メトリクスの場合、値はガベージコレクター名です。 `jvm.memory.pool` メトリクスの場合、値はメモリプール名です。  | 

## Kafka メトリクスの収集
<a name="CloudWatch-Agent-Kafka-metrics"></a>

CloudWatch エージェントを使用して Apache Kafka メトリクスを収集できます。これを設定するには、CloudWatch エージェント設定ファイルの `jmx` セクション内に次のサブセクションを 1 つ以上追加します。
+ `kafka` セクションを使用して Kafka ブローカーメトリクスを収集します。
+ `kafka-consumer` セクションを使用して Kafka コンシューマーメトリクスを収集します。
+ `kafka-producer` セクションを使用して Kafka プロデューサーメトリクスを収集します。

**Kafka ブローカーメトリクス**

次のメトリクスは Kafka ブローカー用に収集できます。


| メトリクス | ディメンション | 説明 | 
| --- | --- | --- | 
|  `kafka.message.count` | [DEFAULT] |  Kafka ブローカーが受信するメッセージの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.count` |  [DEFAULT]、`type` |  Kafka ブローカーが受信するリクエストの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.failed` | [DEFAULT]、`type` |  障害が発生した Kafka ブローカーへのリクエストの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.time.total` | [DEFAULT]、`type` |  Kafka ブローカーがサービスリクエストにかかった合計時間。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.time.50p` | [DEFAULT]、`type` |  Kafka ブローカーがサービスリクエストにかかった 50 パーセンタイルの時間。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.time.99p` | [DEFAULT]、`type` |  Kafka ブローカーがサービスリクエストにかかった 99 パーセンタイルの時間。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.time.avg` | [DEFAULT]、`type` |  Kafka ブローカーがサービスリクエストにかかった平均時間。 **単位:** ミリ秒 **有意義な統計:** 平均  | 
|  `kafka.network.io` | [DEFAULT]、`state` |  Kafka ブローカーによって受信または送信されたバイト数。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `kafka.purgatory.size` | [DEFAULT]、`type` |  処理待ち状態で待機中のリクエストの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.partition.count` | [DEFAULT] |  Kafta ブローカーのパーティションの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.partition.offline` | [DEFAULT] |  オフラインのパーティションの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.partition.under_replicated` | [DEFAULT] |  レプリケートが不十分なパーティションの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.isr.operation.count` | [DEFAULT]、`operation` |  同期レプリカの縮小および展開オペレーションの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.max.lag` | [DEFAULT] |  フォロワーレプリカとリーダーレプリカ間のメッセージの最大遅延。 **単位:** なし **有意義な統計:** 最大  | 
|  `kafka.controller.active.count` |  [DEFAULT] |  ブローカーでアクティブなコントローラーの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.leader.election.rate` |  [DEFAULT] |  リーダー選出レート。これが増加すると、ブローカーの障害を示します。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.unclean.election.rate` |  [DEFAULT] |  クリーンでないリーダー選出レート。これが増加すると、ブローカーの障害を示します。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.request.queue` |  [DEFAULT] |  リクエストキューのサイズ。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.logs.flush.time.count`  |  [DEFAULT] |  ログのフラッシュ数。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `kafka.logs.flush.time.median` |  [DEFAULT] |  ログフラッシュカウントの 50 パーセンタイル値。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 
|  `kafka.logs.flush.time.99p` |  [DEFAULT] |  ログフラッシュカウントの 99 パーセンタイル値。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均  | 

Kafka ブローカーのメトリクスは次のディメンションで収集されます。


| ディメンション | 説明 | 
| --- | --- | 
| [DEFAULT] | デフォルトで Amazon EC2 では、`metrics` セクションの `append_dimensions` フィールドを使用している場合を除き、ホストは CloudWatch エージェントによって収集されるメトリクスのディメンションとしても発行されます。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」のエージェントセクションの「`omit_hostname`」を参照してください。 Amazon EKS では、k8s に関連したコンテキストはメトリクスのディメンション (`k8s.container.name`、`k8s.deployment.name`、`k8s.namespace.name`、`k8s.node.name`、`k8s.pod.name`、`k8s.replicaset.name`) としても公開されます。これらは `aggregation_dimensions` フィールドを使用してフィルタリングできます。  | 
| `type` | リクエストタイプ。指定できる値は `produce`、`fetch`、`fetchconsumer`、`fetchfollower` です。 | 
| `state` | ネットワークトラフィックの方向。指定できる値は `in` および `out` です。 | 
| `operation` | 同期レプリカのオペレーションタイプ。指定できる値は `shrink` および `expand` です。 | 

**Kafka コンシューマーメトリクス**

次のメトリクスは Kafka コンシューマー用に収集できます。


| メトリクス | ディメンション | 説明 | 
| --- | --- | --- | 
|  `kafka.consumer.fetch-rate` | [DEFAULT]、`client-id` |  すべてのトピックにおける 1 秒あたりのフェッチリクエストの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.consumer.records-lag-max` |  [DEFAULT]、`client-id` |  コンシューマーがプロデューサーより遅れるメッセージの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.consumer.total.bytes-consumed-rate` |  [DEFAULT]、`client-id` |  すべてのトピックにおける 1 秒あたりの平均消費バイト数 **単位:** バイト **有意義な統計:** 平均  | 
|  `kafka.consumer.total.fetch-size-avg` |  [DEFAULT]、`client-id` |  すべてのトピックでリクエストごとにフェッチされたバイト数。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `kafka.consumer.total.records-consumed-rate` |  [DEFAULT]、`client-id` |  すべてのトピックにおける 1 秒あたりの平均消費レコードの数 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.consumer.bytes-consumed-rate` |  [DEFAULT]、`client-id`、`topic` |  1 秒あたりの平均消費バイト数。 **単位:** バイト **有意義な統計:** 平均  | 
|  `kafka.consumer.fetch-size-avg` | [DEFAULT]、`client-id`、`topic` |  リクエストごとにフェッチされたバイト数。 **単位:** バイト **有意義な統計:** 最小、最大、平均  | 
|  `kafka.consumer.records-consumed-rate` | [DEFAULT]、`client-id`、`topic` |  1 秒あたりの平均消費レコードの数。 **単位:** なし **有意義な統計:** 平均  | 

Kafka コンシューマーメトリクスは次のディメンションで収集されます。


| ディメンション | 説明 | 
| --- | --- | 
| [DEFAULT] | デフォルトで Amazon EC2 では、`metrics` セクションの `append_dimensions` フィールドを使用している場合を除き、ホストは CloudWatch エージェントによって収集されるメトリクスのディメンションとしても発行されます。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」のエージェントセクションの「`omit_hostname`」を参照してください。 Amazon EKS では、k8s に関連したコンテキストはメトリクスのディメンション (`k8s.container.name`、`k8s.deployment.name`、`k8s.namespace.name`、`k8s.node.name`、`k8s.pod.name`、`k8s.replicaset.name`) としても公開されます。これらは `aggregation_dimensions` フィールドを使用してフィルタリングできます。  | 
| `client-id` | クライアントの ID。 | 
| `topic` | Kafka トピック。 | 

**Kafka プロデューサーメトリクス**

次のメトリクスは Kafka プロデューサー用に収集できます。


| メトリクス | ディメンション | 説明 | 
| --- | --- | --- | 
|  `kafka.producer.io-wait-time-ns-avg` | [DEFAULT]、`client-id` |  I/O スレッドが読み取りまたは書き込みの準備が完了したソケットの待機にかかった平均時間。 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.producer.outgoing-byte-rate` | [DEFAULT]、`client-id` |  すべてのサーバーに 1 秒あたりに送信された送信バイトの平均数。 **単位:** バイト **有意義な統計:** 平均  | 
|  `kafka.producer.request-latency-avg` | [DEFAULT]、`client-id` |  平均リクエストレイテンシー。 **単位:** ミリ秒 **有意義な統計:** 平均  | 
|  `kafka.producer.request-rate` | [DEFAULT]、`client-id` |  1 秒あたりの送信リクエストの平均数。 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.producer.response-rate` | [DEFAULT]、`client-id` |  1 秒あたりの受信レスポンスの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `kafka.producer.byte-rate` | [DEFAULT]、`client-id`、`topic` |  トピック用に 1 秒あたりに送信された平均バイト数 **単位:** バイト **有意義な統計:** 平均  | 
|  `kafka.producer.compression-rate` | [DEFAULT]、`client-id`、`topic` |  トピックのレコードバッチの平均圧縮率。 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.producer.record-error-rate` | [DEFAULT]、`client-id`、`topic` |  トピックのエラーの原因となった 1 秒あたりの送信レコードの平均数。 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.producer.record-retry-rate` | [DEFAULT]、`client-id`、`topic` |  トピックにおける 1 秒あたりのレコード送信を再試行した平均数。 **単位:** なし **有意義な統計:** 平均  | 
|  `kafka.producer.record-send-rate` | [DEFAULT]、`client-id`、`topic` |  トピック用に 1 秒あたりに送信された平均レコード数 **単位:** なし **有意義な統計:** 平均  | 

Kafka プロデューサーメトリクスは次のディメンションで収集されます。


| ディメンション | 説明 | 
| --- | --- | 
| [DEFAULT] | デフォルトで Amazon EC2 では、`metrics` セクションの `append_dimensions` フィールドを使用している場合を除き、ホストは CloudWatch エージェントによって収集されるメトリクスのディメンションとしても発行されます。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」のエージェントセクションの「`omit_hostname`」を参照してください。 Amazon EKS では、k8s に関連したコンテキストはメトリクスのディメンション (`k8s.container.name`、`k8s.deployment.name`、`k8s.namespace.name`、`k8s.node.name`、`k8s.pod.name`、`k8s.replicaset.name`) としても公開されます。これらは `aggregation_dimensions` フィールドを使用してフィルタリングできます。  | 
| `client-id` | クライアントの ID。 | 
| `topic` | Kafka トピック。 | 

## Tomcat メトリクスの収集
<a name="CloudWatch-Agent-Tomcat-metrics"></a>

CloudWatch エージェントを使用して Apache Tomcat メトリクスを収集できます。これを設定するには、CloudWatch エージェント設定ファイルの `metrics_collected` セクション内に `tomcat` セクションを追加します。

次のメトリクスを収集できます。


| メトリクス | ディメンション | 説明 | 
| --- | --- | --- | 
|  `tomcat.sessions` | [DEFAULT] |  アクティブなセッションの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `tomcat.errors`  | [DEFAULT]、`proto_handler` |  発生したエラーの数。 **単位:** なし **有意義な統計:** 最小、最大、平均  | 
|  `tomcat.processing_time`  | [DEFAULT]、`proto_handler` |  合計処理時間。 **単位:** ミリ秒 **有意義な統計:** 最小、最大、平均   | 
|  `tomcat.traffic`  | [DEFAULT]、`proto_handler` |  送信および受信バイト数。 **単位:** バイト **有意義な統計:** 最小、最大、平均   | 
|  `tomcat.threads`  | [DEFAULT]、`proto_handler` |  スレッドの数。 **単位:** なし **有意義な統計:** 最小、最大、平均   | 
|  `tomcat.max_time`  | [DEFAULT]、`proto_handler`、`direction` |  リクエストを処理する最大時間。 **単位:** ミリ秒 **有意義な統計:** 最大   | 
|  `tomcat.request_count`  | [DEFAULT]、`proto_handler` |  合計リクエスト。 **単位:** なし **有意義な統計:** 最小、最大、平均   | 

Tomcat メトリクスは次のディメンションで収集されます。


| ディメンション | 説明 | 
| --- | --- | 
| [DEFAULT] | デフォルトで Amazon EC2 では、`metrics` セクションの `append_dimensions` フィールドを使用している場合を除き、ホストは CloudWatch エージェントによって収集されるメトリクスのディメンションとしても発行されます。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」のエージェントセクションの「`omit_hostname`」を参照してください。 Amazon EKS では、k8s に関連したコンテキストはメトリクスのディメンション (`k8s.container.name`、`k8s.deployment.name`、`k8s.namespace.name`、`k8s.node.name`、`k8s.pod.name`、`k8s.replicaset.name`) としても公開されます。これらは `aggregation_dimensions` フィールドを使用してフィルタリングできます。  | 
| `proto_handler` | `proto_handler` はコネクタの識別子であり、`<protocol>-<type>-<port>` 形式で提供されます (例えば、`http-nio-8080` など)。 | 
| `direction` | トラフィックの方向。指定できる値は `received` および `sent` です。  | 