本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon EMR 7.1.0 的 CloudWatch 代理程式
從 Amazon EMR 7.1.0 開始,您可以使用 Amazon EMR 組態 API,將 Amazon CloudWatch 代理程式設定為使用其他系統指標、新增應用程式指標和變更指標目的地。如需如何使用 EMR 組態 API 來設定叢集應用程式的詳細資訊,請參閱設定應用程式。
注意
7.1.0 僅支援重新設定類型 。 OVERWRITE
如需重新設定類型的詳細資訊,請參閱重新設定執行個體群組時的考量事項。
組態結構描述
emr-metrics
具有下列分類:
-
emr-system-metrics
— 設定系統指標,例如 CPU、磁碟和記憶體。 -
emr-hadoop-hdfs-datanode-metrics
— 設定 Hadoop DataNode JMX 指標 -
emr-hadoop-hdfs-namenode-metrics
— 設定 Hadoop NameNode JMX 指標 -
emr-hadoop-yarn-nodemanager-metrics
— 設定 Yarn NodeManager JMX 指標 -
emr-hadoop-yarn-resourcemanager-metrics
— 設定 Yarn ResourceManager JMX 指標 -
emr-hbase-master-metrics
— 設定 HBase Master JMX 指標 -
emr-hbase-region-server-metrics
— 設定 HBase Region Server JMX 指標 -
emr-hbase-rest-server-metrics
— 設定 HBase REST Server JMX 指標 -
emr-hbase-thrift-server-metrics
— 設定 HBase Thrift Server JMX 指標
下表說明所有分類的可用屬性和組態。
emr-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 | 備註 |
---|---|---|---|---|---|
metrics_destination |
選用 | 決定叢集指標是否發佈至 Amazon CloudWatch 或 Amazon Managed Service for Prometheus。 | 「CLOUDWATCH」 | "CLOUDWATCH"、"PROMETHEUS" | 此屬性不區分大小寫。例如,「Cloudwatch」與「CLOUDWATCH」相同。 |
prometheus_endpoint |
選用 | 如果 metrics_destination 設為「PROMETHEUS」,此屬性會將 CloudWatch 代理程式設定為將指標傳送至提供的 Amazon Managed Service for Prometheus 遠端寫入端點。 |
N/A | 任何有效的 Amazon Managed Service for Prometheus 遠端寫入 URL。遠端寫入 URL 格式為
|
如果 metrics_destination 設定為 "PROMETHEUS",則此欄位為必要欄位。如果您不提供金鑰或值為空字串,佈建將會失敗。 |
emr-system-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 | 備註 |
---|---|---|---|---|---|
metrics_collection_interval |
選用 | 從 CloudWatch 代理程式收集和發佈以秒為單位的指標的頻率。 | "60" | 指定秒數的字串。僅接受整數。 | 您可以使用個別指標群組的 屬性覆寫此metrics_collection_interval 屬性。 |
emr-system-metrics 組態
emr-hadoop-hdfs-datanode-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=DataNode,name=DataNodeActivity 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
字串,其中包含與 MBean 相關聯的以逗號分隔的指標清單。例如 BlocksCached,BlocksRead 。 |
otel.metric.export.interval |
選用 | 以毫秒為單位收集 Hadoop DataNode 指標的頻率。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hadoop-hdfs-namenode-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=NameNode,name=FSNamesystem 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 BlockCapacity,CapacityUsedGB 。 |
otel.metric.export.interval |
選用 | 以毫秒為單位收集 Hadoop NameNode 指標的頻率。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hadoop-yarn-nodemanager-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=NodeManager,name=NodeManagerMetrics 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 MaxCapacity,AllocatedGB 。 |
otel.metric.export.interval |
選用 | 以毫秒為單位收集 Hadoop YARN NodeManager 指標的頻率。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hadoop-yarn-resourcemanager-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=ResourceManager,name=PartitionQueueMetrics 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 MaxCapacity,MaxCapacityVCores 。 |
otel.metric.export.interval |
選用 | 以毫秒為單位收集 Hadoop YARN ResourceManager 指標的頻率。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hbase-master-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=Master,sub=AssignmentManager 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 AssignFailedCount,AssignSubmittedCount 。 |
otel.metric.export.interval |
選用 | 收集 HBase Master 指標的頻率,以毫秒為單位。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hbase-region-server-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=RegionServer,sub=IPC 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 numActiveHandler,numActivePriorityHandler 。 |
otel.metric.export.interval |
選用 | 以毫秒為單位收集 HBase Region Server 指標的頻率。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hbase-rest-server-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=REST 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 successfulPut,successfulScanCount 。 |
otel.metric.export.interval |
選用 | 收集 HBase Rest Server 指標的頻率,以毫秒為單位。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
emr-hbase-thrift-server-metrics 屬性
屬性 | 必要 | 描述 | 預設值 | 可能的值 |
---|---|---|---|---|
|
選用 | N/A | CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=Thrift,sub=ThriftOne 。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案 |
包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 BatchGet_max,BatchGet_mean 。 |
otel.metric.export.interval |
選用 | 收集 HBase Thrift 伺服器指標的頻率,以毫秒為單位。 | "60000" | 指定毫秒數的字串。僅接受整數。 |
系統指標組態範例
下列範例示範如何設定 CloudWatch 代理程式以停止匯出所有系統指標。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]
下列範例會將 CloudWatch 代理程式設定為匯出預設系統指標。這樣做是將代理程式重設回僅匯出預設系統指標的快速方法,前提是您已至少重新設定系統指標一次。此重設也會移除之前重新設定的任何應用程式指標。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [] } ]
下列範例會將叢集設定為匯出 cpu
、 mem
和 disk
指標。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": { "metrics_collection_interval": "20" }, "Configurations": [ { "Classification": "cpu", "Properties": { "metrics": "cpu_usage_guest,cpu_usage_idle", "metrics_collection_interval": "30", "drop_original_metrics": "cpu_usage_guest" } }, { "Classification": "mem", "Properties": { "metrics": "mem_active" } }, { "Classification": "disk", "Properties": { "metrics": "disk_used_percent", "resources": "/,/mnt", "drop_original_metrics": "" } } ] } ] } ]
先前的範例組態具有下列屬性:
-
代理程式每 30 秒會收集所有 CPUs的
cpu_guest
指標。您可以在 CloudWatch 命名空間 下找到彙總指標CWAgent > cluster.id, instance.id, node.type, service.name
。 -
代理程式每 30 秒會收集所有 CPUs的
cpu_idle
指標。您可以在 CloudWatch 命名空間 下找到彙總指標CWAgent > cluster.id, instance.id, node.type, service.name
。代理程式也會收集每個 CPU 指標。您可以在相同的命名空間中找到它們。代理程式會收集此指標,因為drop_original_metrics
屬性不包含cpu_idle
,因此代理程式不會忽略指標。 -
代理程式每 20 秒收集一次
mem_active
指標。您可以在 CloudWatch 命名空間 下找到彙總指標CWAgent > cluster.id, instance.id, node.type, service.name
。 -
代理程式每 20 秒會收集
/
和/mnt
磁碟掛載的disk_used_percent
指標。您可以在 CloudWatch 命名空間 下找到彙總指標CWAgent > cluster.id, instance.id, node.type, service.name
。代理程式也會收集每個掛載指標。您可以在相同的命名空間中找到它們。代理程式會收集此指標,因為drop_original_metrics
屬性不包含disk_used_percent
,因此代理程式不會忽略指標。
應用程式指標組態範例
下列範例會將 CloudWatch 代理程式設定為停止匯出 Hadoop Namenode 服務的指標。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-hadoop-hdfs-namenode-metrics", "Properties": {}, "Configurations": [] } ] } ]
下列範例會將叢集設定為匯出 Hadoop 應用程式指標。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-hadoop-hdfs-namenode-metrics", "Properties": { "Hadoop:service=NameNode,name=FSNamesystem": "BlockCapacity,CapacityUsedGB", "otel.metric.export.interval": "20000" }, "Configurations": [] }, { "Classification": "emr-hadoop-hdfs-datanode-metrics", "Properties": { "Hadoop:service=DataNode,name=JvmMetrics": "MemNonHeapUsedM", "otel.metric.export.interval": "30000" }, "Configurations": [] }, { "Classification": "emr-hadoop-yarn-resourcemanager-metrics", "Properties": { "Hadoop:service=ResourceManager,name=CapacitySchedulerMetrics": "AllocateNumOps,NodeUpdateNumOps" }, "Configurations": [] } ] } ]
上一個範例具有下列屬性:
-
代理程式每 20 秒會從執行 Hadoop Namenode 服務的執行個體收集
BlockCapacity
和CapacityUsedGB
指標。 -
每 30 秒,代理程式會從執行 Hadoop Datanode 服務的執行個體收集
MemNonHeapUsedM
指標。 -
代理程式每 30 秒會從執行 Hadoop YARN ResourceManaager 的執行個體收集
AllocateNumOps
和NodeUpdateNumOps
指標。
Amazon Managed Service for Prometheus 範例
下列範例示範如何設定 CloudWatch 代理程式,將指標匯出至 Amazon Managed Service for Prometheus。
如果您目前正在將指標匯出至 Amazon Managed Service for Prometheus,並想要重新設定叢集的指標,並繼續將指標匯出至 Amazon Managed Service for Prometheus,則必須包含 屬性 metrics_destination
和 prometheus_endpoint
。
[ { "Classification": "emr-metrics", "Properties": { "metrics_destination": "prometheus", "prometheus_endpoint": "http://amp-workspace/api/v1/remote_write" }, "Configurations": [] } ]
若要使用 CloudWatch 代理程式將指標匯出至 CloudWatch,請使用下列範例。
[ { "Classification": "emr-metrics", "Properties": { "metrics_destination": "cloudwatch" }, "Configurations": [] } ]
注意
CloudWatch 代理程式具有可重新命名特定屬性的 Prometheus 匯出工具。針對預設指標標籤,Amazon Managed Service for Prometheus 會使用底線字元來取代 Amazon CloudWatch 使用的期間。如果您使用 Amazon Managed Grafana 視覺化 Amazon Managed Service for Prometheus 中的預設指標,標籤會顯示為 cluster_id
、instance_id
、 node_type
和 service_name
。