設定 Amazon EMR 7. CloudWatch 1.0 的代理程式 - Amazon EMR

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

設定 Amazon EMR 7. CloudWatch 1.0 的代理程式

從 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— 配置紗 NodeManager JMX指標

  • emr-hadoop-yarn-resourcemanager-metrics— 配置紗 ResourceManager JMX指標

  • emr-hbase-master-metrics— 配置HBase主JMX指標

  • emr-hbase-region-server-metrics— 配置HBase區域服務器JMX指標

  • emr-hbase-rest-server-metrics— 配置HBaseREST服務器JMX指標

  • emr-hbase-thrift-server-metrics-配置HBase節儉服務器JMX指標

下表說明所有分類的可用屬性和組態。

EMR 指標屬性

屬性 必要 描述 預設值 可能的值 備註
metrics_destination 選用 決定是否將叢集指標發佈至適用於 Prometheus 的 Amazon CloudWatch 或 Amazon 受管服務。 "CLOUDWATCH" "CLOUDWATCH", "PROMETHEUS" 此屬性不區分大小寫。例如,「雲觀察」與「CLOUDWATCH」相同。
prometheus_endpoint 選用 如果設定metrics_destination為 "PROMETHEUS「,此內容會設定 CloudWatch 代理程式,以便將指標傳送至 Prometheus 遠端寫入端點所提供的 Amazon 受管服務。 N/A 任何適用於 Prometheus 遠端寫入的有效 Amazon 託管服務。URL遠程寫入URL格式是
https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace_id>/api/v1/remote_write
如果設定為 "PROMETHEUS",則metrics_destination此欄位為必填欄位。如果您未提供金鑰或值為空字串,佈建將會失敗。

emr-system-metrics 屬性

屬性 必要 描述 預設值 可能的值 備註
metrics_collection_interval 選用 從 CloudWatch 代理程式收集和發佈測量結果的頻率 (以秒為單位)。 「六十」 字串,指定秒數。只接受整數。 您可以使用個別測量結果群組的metrics_collection_interval特性來覆寫此特性。

emr-system-metrics 配置

cpu
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的CPU測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 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 選用 要收集之代理程式的磁碟測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 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 測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 EMR 以逗號分隔的有效磁碟 IO 測量結果名稱清單 (含或不含diskio_前置詞),例如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 選用 要收集之代理程式的記憶體測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 EMR 以逗號分隔的有效記憶體測量結果名稱清單 (含或不含mem_前置詞),例如mem_availableavailable_percent。如需有效測量結果,請參閱 CloudWatch 代理程式收集的測量 指定一個空字符串意味著不發布任何內存指標。
metrics_collection_interval 選用 代理程式應收集和發佈記憶體指標的頻率 (以秒為單位)。 全域的價值metrics_collection_interval 字串,指定秒數。僅接受整數。 此值只會覆寫記憶體測量結果的全域metrics_collection_interval屬性。
net
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的網路測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 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 選用 要收集之代理程式的網路統計資料測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 EMR 以逗號分隔的有效記憶體測量結果名稱清單 (含或不含netstat_前置詞),例如tcp_listennetstat_udp_socket。如需有效測量結果,請參閱 CloudWatch 代理程式收集的測量 指定空字串表示不發佈任何網路統計資料測量結果。
metrics_collection_interval 選用 代理程式應收集並發佈網路統計資料指標的頻率 (以秒為單位)。 全域的價值metrics_collection_interval 字串,指定秒數。僅接受整數。 此值只會覆寫網路統計資料測量結果的全域特metrics_collection_interval性。
processes
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的程序測量結果清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 EMR 以逗號分隔的有效記憶體測量結果名稱清單 (含或不含processes_前置詞),例如processes_runningtotal。如需有效測量結果,請參閱 CloudWatch 代理程式收集的測量 指定空字串表示不發佈任何程序量度。
metrics_collection_interval 選用 代理程式應收集和發佈系統處理程序指標的頻率 (以秒為單位)。 全域的價值metrics_collection_interval 字串,指定秒數。僅接受整數。 此值僅會覆寫系統程序測量結果的全域metrics_collection_interval屬性。
swap
屬性 必要 描述 預設值 可能的值 備註
metrics 選用 要收集之代理程式的交換指標清單。 請參閱 Amazon CloudWatch 代理程式的預設指標 EMR 以逗號分隔的有效記憶體測量結果名稱清單 (含或不含swap_前置詞),例如swap_freeused_percent。如需有效測量結果,請參閱 CloudWatch 代理程式收集的測量 指定空字串表示不發佈任何交換量度。
metrics_collection_interval 選用 代理程式應收集和發佈交換指標的頻率 (以秒為單位)。 全域的價值metrics_collection_interval 字串,指定秒數。僅接受整數。 此值僅會覆寫交換量度的全域metrics_collection_interval屬性。

emr-hadoop-hdfs-datanode-度量屬性

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

emr-hadoop-hdfs-namenode-度量屬性

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

emr-hadoop-yarn-nodemanager-度量屬性

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

emr-hadoop-yarn-resourcemanager-度量屬性

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

emr-hbase-master-metrics 屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A MBean該 CloudWatch 代理程式應該從中收集指標,例如Hadoop:service=HBase,name=Master,sub=AssignmentManager。您可以在 Amazon 7.0 EMR 版的範例JMXYAML檔案中找到範例MBean名稱及其對應指標。 字串,其中包含與. MBean 例如 AssignFailedCount,AssignSubmittedCount
otel.metric.export.interval 選用 收集HBase主要測量結果的頻率 (毫秒)。 「六百」 字串,指定毫秒數。僅接受整數。

emr-hbase-region-server-度量屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A MBean該 CloudWatch 代理程式應該從中收集指標,例如Hadoop:service=HBase,name=RegionServer,sub=IPC。您可以在 Amazon 7.0 EMR 版的範例JMXYAML檔案中找到範例MBean名稱及其對應指標。 字串,其中包含與. MBean 例如 numActiveHandler,numActivePriorityHandler
otel.metric.export.interval 選用 收集「HBase區域伺服器」度量的頻率 (毫秒)。 「六百」 字串,指定毫秒數。僅接受整數。

emr-hbase-rest-server-度量屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A MBean該 CloudWatch 代理程式應該從中收集指標,例如Hadoop:service=HBase,name=REST。您可以在 Amazon 7.0 EMR 版的範例JMXYAML檔案中找到範例MBean名稱及其對應指標。 字串,其中包含與. MBean 例如 successfulPut,successfulScanCount
otel.metric.export.interval 選用 收集 HBase Rest Server 測量結果的頻率 (以毫秒為單位)。 「六百」 字串,指定毫秒數。僅接受整數。

emr-hbase-thrift-server-度量屬性

屬性 必要 描述 預設值 可能的值
<custom_bean_name> 選用 N/A MBean該 CloudWatch 代理程式應該從中收集指標,例如Hadoop:service=HBase,name=Thrift,sub=ThriftOne。您可以在 Amazon 7.0 EMR 版的範例JMXYAML檔案中找到範例MBean名稱及其對應指標。 字串,其中包含與. MBean 例如 BatchGet_max,BatchGet_mean
otel.metric.export.interval 選用 收集 HBase Thrift 伺服器指標的頻率 (以毫秒為單位)。 「六百」 字串,指定毫秒數。僅接受整數。

系統指標組態範例

下列範例示範如何設定 CloudWatch 代理程式停止匯出所有系統度量。

[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]

下列範例會設定 CloudWatch 代理程式匯出預設系統測量結果。如果您已重新設定系統指標至少一次,則可以快速將代理程式重設回僅匯出預設系統指標。此重設也會移除之前重新設定的任何應用程式測量結果。

[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [] } ]

下列範例會設定叢集以匯出cpumem、和測量結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 秒就會收集所有人的cpu_guest測量結果CPUs。您可以在 CloudWatch 命名空間下找到彙總指標CWAgent > cluster.id, instance.id, node.type, service.name

  • 代理程式每隔 30 秒就會收集所有人的cpu_idle測量結果CPUs。您可以在 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 資料節點服務的執行個體收集MemNonHeapUsedM指標。

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

適用於 Prometheus 的 Amazon 託管服務示例

下列範例示範如何設定 CloudWatch 代理程式,將指標匯出至適用於 Prometheus 的 Amazon 受管服務。

如果您目前正將指標匯出到適用於 Prometheus 的 Amazon 受管服務,並且想要重新設定叢集的指標,並繼續將指標匯出到 Prometheus 的 Amazon 受管服務,則必須包含屬性和。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 匯出程式。對於預設指標標籤,適用於 Prometheus 的 Amazon 受管服務會使用底線字元來取代 Amazon 使用的期間。 CloudWatch 如果您使用 Amazon 受管 Grafana 來視覺化 Prometheus Amazon 受管服務中的預設指標,標籤會顯示為cluster_id、、和。instance_id node_type service_name