設定 Amazon EMR 7.1.0 的 CloudWatch 代理程式 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 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 格式為
https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace_id>/api/v1/remote_write
如果 metrics_destination 設定為 "PROMETHEUS",則此欄位為必要欄位。如果您不提供金鑰或值為空字串,佈建將會失敗。

emr-system-metrics 屬性

屬性 必要 描述 預設值 可能的值 備註
metrics_collection_interval 選用 從 CloudWatch 代理程式收集和發佈以秒為單位的指標的頻率。 "60" 指定秒數的字串。僅接受整數。 您可以使用個別指標群組的 屬性覆寫此metrics_collection_interval屬性。

emr-system-metrics 組態

cpu
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的 CPU 指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含cpu_字首的有效 CPU 指標名稱逗號分隔清單,例如 usage_activecpu_time_idle。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何 CPU 指標。
metrics_collection_interval 選用 代理程式應在幾秒內收集和發佈 CPU 指標的頻率。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會覆寫 CPU 指標的全域metrics_collection_interval屬性。
drop_original_metrics 選用 不發佈未彙總指標的 CPU 指標清單。 未發佈任何未彙總的 CPU 指標。 以逗號分隔的 CPU 指標清單,這些指標也會在指標屬性中指定。空字串表示發佈所有 CPU 指標。 CloudWatch 代理程式會依叢集 ID、執行個體 ID、節點類型和服務名稱彙總所有指標。根據預設,CloudWatch 代理程式不會為具有多個資源的指標發佈每個資源指標。
resources 選用 決定代理程式是否發佈每個核心指標。 "*" "*" 啟用每個核心指標。"" 停用每個核心指標。 CloudWatch 代理程式只會針對未在 中捨棄的 CPU 指標發佈每個核心指標drop_original_metrics
disk
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 代理程式要收集的磁碟指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含disk_字首的有效磁碟指標名稱逗號分隔清單,例如 disk_totalused_percent。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何磁碟指標。
metrics_collection_interval 選用 代理程式應在幾秒內收集和發佈磁碟指標的頻率。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對磁碟指標覆寫全域metrics_collection_interval屬性。
drop_original_metrics 選用 不發佈未彙總指標的磁碟指標清單。 未發佈任何未彙總的磁碟指標。 也在指標屬性中指定的以逗號分隔的磁碟指標清單。空字串表示發佈所有磁碟指標。 CloudWatch 代理程式會依叢集 ID、執行個體 ID、節點類型和服務名稱彙總所有指標。根據預設,CloudWatch 代理程式不會為具有多個資源的指標發佈每個資源指標。
resources 選用 決定代理程式是否發佈per-mount-point指標。 "*" "*" 表示所有掛載點,"" 表示沒有掛載點,或以逗號分隔的掛載點清單。例如 "/,/emr" CloudWatch 代理程式只會針對未在 中捨棄的磁碟指標,發佈per-mount-point指標drop_original_metrics
diskio
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 代理程式要收集的磁碟 IO 指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含diskio_字首的有效磁碟 IO 指標名稱逗號分隔清單,例如 diskio_readswrites。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何磁碟 IO 指標。
metrics_collection_interval 選用 代理程式收集和發佈磁碟 IO 指標的頻率,以秒為單位。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對磁碟 IO 指標覆寫全域metrics_collection_interval屬性。
drop_original_metrics 選用 不發佈未彙總指標的磁碟 IO 指標清單。 未發佈任何未彙總的磁碟 IO 指標。 以逗號分隔的磁碟 IO 指標清單,也會在指標屬性中指定。空字串表示發佈所有磁碟 IO 指標。 CloudWatch 代理程式會依叢集 ID、執行個體 ID、節點類型和服務名稱彙總所有指標。根據預設,CloudWatch 代理程式不會為具有多個資源的指標發佈每個資源指標。
resources 選用 決定代理程式是否發佈每個裝置指標。 "*" "*" 表示所有儲存裝置,"" 表示沒有儲存裝置,或以逗號分隔的裝置名稱清單。例如 "nvme0n1,nvme1n1" CloudWatch 代理程式只會針對未在 中捨棄的磁碟 IO 指標,發佈每個裝置指標drop_original_metrics
mem
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的記憶體指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含mem_字首的有效記憶體指標名稱逗號分隔清單,例如 mem_availableavailable_percent。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何記憶體指標。
metrics_collection_interval 選用 代理程式應該收集和發佈記憶體指標的頻率,以秒為單位。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對記憶體指標覆寫全域metrics_collection_interval屬性。
net
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的網路指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含net_字首的有效網路指標名稱逗號分隔清單,例如 net_packets_sentpackets_recv。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何網路指標。
metrics_collection_interval 選用 代理程式應在幾秒內收集和發佈網路指標的頻率。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對網路指標覆寫全域metrics_collection_interval屬性。
drop_original_metrics 選用 不發佈未彙總指標的網路指標清單。 未發佈任何未彙總的網路指標。 以逗號分隔的網路指標清單,也會在指標屬性中指定。空字串表示發佈所有網路指標。 CloudWatch 代理程式會依叢集 ID、執行個體 ID、節點類型和服務名稱彙總所有指標。根據預設,CloudWatch 代理程式不會為具有多個資源的指標發佈每個資源指標。
resources 選用 決定代理程式是否發佈每個介面的指標。 "*" "*" 表示所有網路介面,"" 表示沒有網路介面,或以逗號分隔的介面名稱清單。例如 "eth0,eth1" CloudWatch 代理程式只會針對未在 中捨棄的網路指標發佈每個介面指標drop_original_metrics
netstat
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的網路統計資料指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含netstat_字首的有效記憶體指標名稱逗號分隔清單,例如 tcp_listennetstat_udp_socket。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何網路統計資料指標。
metrics_collection_interval 選用 代理程式應該收集和發佈網路統計資料指標的頻率,以秒為單位。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對網路統計資料指標覆寫全域metrics_collection_interval屬性。
processes
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 代理程式要收集的程序指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含processes_字首的有效記憶體指標名稱逗號分隔清單,例如 processes_runningtotal。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何程序指標。
metrics_collection_interval 選用 代理程式應在幾秒內收集和發佈系統程序指標的頻率。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對系統程序指標覆寫全域metrics_collection_interval屬性。
swap
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 代理程式要收集的交換指標清單。 請參閱 CloudWatch 代理程式與 Amazon EMR 的預設指標 含或不含swap_字首的有效記憶體指標名稱逗號分隔清單,例如 swap_freeused_percent。如需有效指標,請參閱 CloudWatch 代理程式收集的指標。 指定空字串表示不發佈任何交換指標。
metrics_collection_interval 選用 代理程式應在幾秒內收集和發佈交換指標的頻率。 全域 的值metrics_collection_interval 指定秒數的字串。僅接受整數。 此值只會針對交換指標覆寫全域metrics_collection_interval屬性。

emr-hadoop-hdfs-datanode-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=DataNode,name=DataNodeActivity。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 字串,其中包含與 MBean 相關聯的以逗號分隔的指標清單。例如 BlocksCached,BlocksRead
otel.metric.export.interval 選用 以毫秒為單位收集 Hadoop DataNode 指標的頻率。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hadoop-hdfs-namenode-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=NameNode,name=FSNamesystem。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 BlockCapacity,CapacityUsedGB
otel.metric.export.interval 選用 以毫秒為單位收集 Hadoop NameNode 指標的頻率。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hadoop-yarn-nodemanager-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=NodeManager,name=NodeManagerMetrics。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 MaxCapacity,AllocatedGB
otel.metric.export.interval 選用 以毫秒為單位收集 Hadoop YARN NodeManager 指標的頻率。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hadoop-yarn-resourcemanager-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=ResourceManager,name=PartitionQueueMetrics。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 MaxCapacity,MaxCapacityVCores
otel.metric.export.interval 選用 以毫秒為單位收集 Hadoop YARN ResourceManager 指標的頻率。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hbase-master-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=Master,sub=AssignmentManager。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 AssignFailedCount,AssignSubmittedCount
otel.metric.export.interval 選用 收集 HBase Master 指標的頻率,以毫秒為單位。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hbase-region-server-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=RegionServer,sub=IPC。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 numActiveHandler,numActivePriorityHandler
otel.metric.export.interval 選用 以毫秒為單位收集 HBase Region Server 指標的頻率。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hbase-rest-server-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=REST。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 MBean 相關聯之指標逗號分隔清單的字串。例如 successfulPut,successfulScanCount
otel.metric.export.interval 選用 收集 HBase Rest Server 指標的頻率,以毫秒為單位。 "60000" 指定毫秒數的字串。僅接受整數。

emr-hbase-thrift-server-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A CloudWatch 代理程式應從中收集指標的 MBean,例如 Hadoop:service=HBase,name=Thrift,sub=ThriftOne。您可以在 Amazon EMR 7.0 版的範例 JMX YAML 檔案中找到範例 MBean 名稱及其對應的指標。 包含與 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": [] } ]

下列範例會將叢集設定為匯出 cpumemdisk指標。

[ { "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 服務的執行個體收集 BlockCapacityCapacityUsedGB指標。

  • 每 30 秒,代理程式會從執行 Hadoop Datanode 服務的執行個體收集MemNonHeapUsedM指標。

  • 代理程式每 30 秒會從執行 Hadoop YARN ResourceManaager 的執行個體收集 AllocateNumOpsNodeUpdateNumOps指標。

Amazon Managed Service for Prometheus 範例

下列範例示範如何設定 CloudWatch 代理程式,將指標匯出至 Amazon Managed Service for Prometheus。

如果您目前正在將指標匯出至 Amazon Managed Service for Prometheus,並想要重新設定叢集的指標,並繼續將指標匯出至 Amazon Managed Service for Prometheus,則必須包含 屬性 metrics_destinationprometheus_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_idinstance_idnode_typeservice_name