Amazon EMR

Overview

Data Jobs Monitoring helps you observe, troubleshoot, and cost-optimize your Spark jobs on your EMR clusters.

Amazon EMR is a web service that makes it easy to quickly and cost-effectively process vast amounts of data.

Enable this integration to see EMR metrics in Datadog.

Setup

Installation

If you haven’t already, set up the Amazon Web Services integration first.

Metric collection

  1. In the AWS integration page, ensure that EMR is enabled under the Metric Collection tab.

  2. Add the following permissions to your Datadog IAM policy to collect Amazon EMR metrics. For more information, see the EMR policies on the AWS website.

    AWS PermissionDescription
    elasticmapreduce:ListClustersList available clusters.
    elasticmapreduce:DescribeClusterAdd tags to CloudWatch EMR metrics.
  3. Install the Datadog - Amazon EMR integration.

Log collection

Enable logging

Configure Amazon EMR to send logs either to a S3 bucket or to CloudWatch.

Note: If you log to a S3 bucket, make sure that amazon_emr is set as Target prefix.

Send logs to Datadog

  1. If you haven’t already, set up the Datadog Forwarder Lambda function.

  2. Once the Lambda function is installed, manually add a trigger on the S3 bucket or CloudWatch log group that contains your Amazon EMR logs in the AWS console:

Data Collected

Metrics

aws.elasticmapreduce.apps_completed
(gauge)
The average number of applications submitted to YARN that have completed. (Hadoop v2 only)
aws.elasticmapreduce.apps_completed.sum
(gauge)
The sum of the number of applications submitted to YARN that have completed. (Hadoop v2 only)
aws.elasticmapreduce.apps_failed
(gauge)
The average number of applications submitted to YARN that have failed to complete. (Hadoop v2 only)
aws.elasticmapreduce.apps_failed.sum
(gauge)
The sum of the number of applications submitted to YARN that have failed to complete. (Hadoop v2 only)
aws.elasticmapreduce.apps_killed
(gauge)
The average number of applications submitted to YARN that have been killed. (Hadoop v2 only)
aws.elasticmapreduce.apps_killed.sum
(gauge)
The sum of the number of applications submitted to YARN that have been killed. (Hadoop v2 only)
aws.elasticmapreduce.apps_pending
(gauge)
The average number of applications submitted to YARN that are in a pending state. (Hadoop v2 only)
aws.elasticmapreduce.apps_pending.sum
(gauge)
The sum of the number of applications submitted to YARN that are in a pending state. (Hadoop v2 only)
aws.elasticmapreduce.apps_running
(gauge)
The average number of applications submitted to YARN that are running. (Hadoop v2 only)
aws.elasticmapreduce.apps_running.sum
(gauge)
The sum of the number of applications submitted to YARN that are running. (Hadoop v2 only)
aws.elasticmapreduce.apps_submitted
(gauge)
The average number of applications submitted to YARN. (Hadoop v2 only)
aws.elasticmapreduce.apps_submitted.sum
(gauge)
The sum of the number of applications submitted to YARN. (Hadoop v2 only)
aws.elasticmapreduce.backup_failed
(count)
Whether the last backup failed. (Hadoop v1 only)
aws.elasticmapreduce.capacity_remaining_gb
(gauge)
The average amount of remaining HDFS disk capacity. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.capacity_remaining_gb.sum
(gauge)
The sum of the amount of remaining HDFS disk capacity. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.container_allocated
(gauge)
The average number of resource containers allocated by the ResourceManager. (Hadoop v2 only)
aws.elasticmapreduce.container_allocated.sum
(gauge)
The sum of the number of resource containers allocated by the ResourceManager. (Hadoop v2 only)
aws.elasticmapreduce.container_pending
(gauge)
The average number of containers in the queue that have not yet been allocated. (Hadoop v2 only)
aws.elasticmapreduce.container_pending.sum
(gauge)
The sum of the number of containers in the queue that have not yet been allocated. (Hadoop v2 only)
aws.elasticmapreduce.container_pending_ratio
(gauge)
The average percentage of containers in the queue that have not yet been allocated. (Hadoop v2 only)
Shown as percent
aws.elasticmapreduce.container_reserved
(gauge)
The average number of containers reserved. (Hadoop v2 only)
aws.elasticmapreduce.container_reserved.sum
(gauge)
The sum of the number of containers reserved. (Hadoop v2 only)
aws.elasticmapreduce.core_nodes_pending
(gauge)
The average number of core nodes waiting to be assigned. All of the core nodes requested may not be immediately available; this metric reports the pending requests. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_nodes_pending.sum
(gauge)
The sum of the number of core nodes waiting to be assigned. All of the core nodes requested may not be immediately available; this metric reports the pending requests. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_nodes_requested
(gauge)
The average number of core nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_nodes_requested.sum
(gauge)
The sum of the number of core nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_nodes_running
(gauge)
The average number of core nodes working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_nodes_running.sum
(gauge)
The sum of the number of core nodes working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_units_requested
(gauge)
The average number of core units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_units_requested.sum
(gauge)
The sum of the number of core units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_units_running
(gauge)
The target number of core units working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_units_running.sum
(gauge)
The sum of the number of core units working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_vcpu_requested
(gauge)
The average number of core vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_vcpu_requested.sum
(gauge)
The sum of the number of core vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.core_vcpu_running
(gauge)
The average number of core vCPUs working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.core_vcpu_running.sum
(gauge)
The sum of the number of core vCPUs working. Data points for this metric are reported only when a corresponding instance group exists.
Shown as node
aws.elasticmapreduce.corrupt_blocks
(gauge)
The average number of blocks that HDFS reports as corrupted. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.corrupt_blocks.sum
(gauge)
The sum of the number of blocks that HDFS reports as corrupted. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.dfs_fsnamesystem_pending_replication_blocks
(gauge)
The status of block replication: blocks being replicated, age of replication requests, and unsuccessful replication requests. (Hadoop v2 only)
aws.elasticmapreduce.hbase_backup_failed
(gauge)
Whether the last backup failed. This is set to 0 by default and updated to 1 if the previous backup attempt failed. This metric is only reported for HBase clusters. (Hadoop v2 only)
aws.elasticmapreduce.hbase_most_recent_backup_duration
(gauge)
The amount of time it took the previous backup to complete. This metric is set regardless of whether the last completed backup succeeded or failed. While the backup is ongoing, this metric returns the number of minutes after the backup started. This metric is only reported for HBase clusters.
Shown as minute
aws.elasticmapreduce.hbase_time_since_last_successful_backup
(gauge)
The number of elapsed minutes after the last successful HBase backup started on your cluster. This metric is only reported for HBase clusters.
Shown as minute
aws.elasticmapreduce.hdfsbytes_read
(gauge)
The average number of bytes read from HDFS.
Shown as byte
aws.elasticmapreduce.hdfsbytes_read.sum
(gauge)
The sum of the number of bytes read from HDFS.
Shown as byte
aws.elasticmapreduce.hdfsbytes_written
(gauge)
The average number of bytes written to HDFS.
Shown as byte
aws.elasticmapreduce.hdfsbytes_written.sum
(gauge)
The sum of the number of bytes written to HDFS.
Shown as byte
aws.elasticmapreduce.hdfsutilization
(gauge)
The percentage of HDFS storage currently used.
Shown as percent
aws.elasticmapreduce.is_idle
(gauge)
Indicates that a cluster is no longer performing work, but is still alive and accruing charges. It is set to 1 if no tasks are running and no jobs are running, and set to 0 otherwise. This value is checked at five-minute intervals and a value of 1 indicates only that the cluster was idle when checked, not that it was idle for the entire five minutes.
aws.elasticmapreduce.jobs_failed
(gauge)
The average number of jobs in the cluster that have failed. (Hadoop v1 only)
aws.elasticmapreduce.jobs_failed.sum
(gauge)
The sum of the number of jobs in the cluster that have failed. (Hadoop v1 only)
aws.elasticmapreduce.jobs_running
(gauge)
The average number of jobs in the cluster that are currently running. (Hadoop v1 only)
aws.elasticmapreduce.jobs_running.sum
(gauge)
The sum of the number of jobs in the cluster that are currently running. (Hadoop v1 only)
aws.elasticmapreduce.live_data_nodes
(gauge)
The percentage of data nodes that are receiving work from Hadoop.
Shown as percent
aws.elasticmapreduce.live_task_trackers
(gauge)
The percentage of task trackers that are functional. (Hadoop v1 only)
Shown as percent
aws.elasticmapreduce.map_slots_open
(gauge)
The average unused map task capacity. This is calculated as the maximum number of map tasks for a given cluster, less the total number of map tasks currently running in that cluster. (Hadoop v1 only)
aws.elasticmapreduce.map_slots_open.sum
(gauge)
The sum of the unused map task capacity. This is calculated as the maximum number of map tasks for a given cluster, less the total number of map tasks currently running in that cluster. (Hadoop v1 only)
aws.elasticmapreduce.memory_allocated_mb
(gauge)
The average amount of memory allocated to the cluster. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_allocated_mb.sum
(gauge)
The sum of the amount of memory allocated to the cluster. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_available_mb
(gauge)
The average amount of memory available to be allocated. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_available_mb.sum
(gauge)
The sum of the amount of memory available to be allocated. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_reserved_mb
(gauge)
The average amount of memory reserved. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_reserved_mb.sum
(gauge)
The sum of the amount of memory reserved. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_total_mb
(gauge)
The average total amount of memory in the cluster. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.memory_total_mb.sum
(gauge)
The sum of the total amount of memory in the cluster. (Hadoop v2 only)
Shown as byte
aws.elasticmapreduce.missing_blocks
(gauge)
The average number of blocks in which HDFS has no replicas. These might be corrupt blocks.
Shown as block
aws.elasticmapreduce.missing_blocks.sum
(gauge)
The sum of the number of blocks in which HDFS has no replicas. These might be corrupt blocks.
Shown as block
aws.elasticmapreduce.mractive_nodes
(gauge)
The average number of nodes presently running MapReduce tasks or jobs. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mractive_nodes.sum
(gauge)
The sum of the number of nodes presently running MapReduce tasks or jobs. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrdecommissioned_nodes
(gauge)
The average number of nodes allocated to MapReduce applications that have been marked in a DECOMMISSIONED state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrdecommissioned_nodes.sum
(gauge)
The sum of the number of nodes allocated to MapReduce applications that have been marked in a DECOMMISSIONED state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrlost_nodes
(gauge)
The average number of nodes allocated to MapReduce that have been marked in a LOST state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrlost_nodes.sum
(gauge)
The sum of the number of nodes allocated to MapReduce that have been marked in a LOST state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrrebooted_nodes
(gauge)
The average number of nodes available to MapReduce that have been rebooted and marked in a REBOOTED state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrrebooted_nodes.sum
(gauge)
The sum of the number of nodes available to MapReduce that have been rebooted and marked in a REBOOTED state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrtotal_nodes
(gauge)
The average number of nodes presently available to MapReduce jobs. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrtotal_nodes.sum
(gauge)
The sum of the number of nodes presently available to MapReduce jobs. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrunhealthy_nodes
(gauge)
The average number of nodes available to MapReduce jobs marked in an UNHEALTHY state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.mrunhealthy_nodes.sum
(gauge)
The sum of the number of nodes available to MapReduce jobs marked in an UNHEALTHY state. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.multi_master_instance_group_nodes_requested
(count)
The number of requested master nodes. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.multi_master_instance_group_nodes_running
(count)
The number of running master nodes. (Hadoop v2 only)
Shown as node
aws.elasticmapreduce.multi_master_instance_group_nodes_running_percentage
(gauge)
The percentage of master nodes that are running over the requested master node instance count. (Hadoop v2 only)
Shown as percent
aws.elasticmapreduce.no_of_black_listed_task_trackers
(gauge)
The average number of blacklisted TaskTracker nodes.
Shown as node
aws.elasticmapreduce.no_of_black_listed_task_trackers.sum
(gauge)
The sum of the number of blacklisted TaskTracker nodes.
Shown as node
aws.elasticmapreduce.no_of_gray_listed_task_trackers
(gauge)
The average number of graylisted TaskTracker nodes.
Shown as node
aws.elasticmapreduce.no_of_gray_listed_task_trackers.sum
(gauge)
The sum of the number of graylisted TaskTracker nodes.
Shown as node
aws.elasticmapreduce.pending_deletion_blocks
(gauge)
The average number of blocks marked for deletion. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.pending_deletion_blocks.sum
(gauge)
The sum of the number of blocks marked for deletion. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.reduce_slots_open
(gauge)
Average unused reduce task capacity. This is calculated as the maximum reduce task capacity for a given cluster, less the number of reduce tasks currently running in that cluster. (Hadoop v1 only)
aws.elasticmapreduce.reduce_slots_open.sum
(gauge)
The sum of unused reduce task capacity. This is calculated as the maximum reduce task capacity for a given cluster, less the number of reduce tasks currently running in that cluster. (Hadoop v1 only)
aws.elasticmapreduce.remaining_map_tasks
(gauge)
The average number of remaining map tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. A remaining map task is one that is not in any of the following states: Running, Killed, or Completed. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.remaining_map_tasks.sum
(gauge)
The sum of the number of remaining map tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. A remaining map task is one that is not in any of the following states: Running, Killed, or Completed. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.remaining_map_tasks_per_slot
(gauge)
The ratio of the total map tasks remaining to the total map slots available in the cluster. (Hadoop v1 only)
aws.elasticmapreduce.remaining_reduce_tasks
(gauge)
The average number of remaining reduce tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.remaining_reduce_tasks.sum
(gauge)
The sum of the number of remaining reduce tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.running_map_tasks
(gauge)
The average number of running map tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.running_map_tasks.sum
(gauge)
The sum of the number of running map tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.running_reduce_tasks
(gauge)
The average number of running reduce tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.running_reduce_tasks.sum
(gauge)
The sum of the number of running reduce tasks for each job. If you have a scheduler installed and multiple jobs running, multiple graphs are generated. (Hadoop v1 only)
Shown as task
aws.elasticmapreduce.s_3bytes_read
(gauge)
The average number of bytes read from Amazon S3.
Shown as byte
aws.elasticmapreduce.s_3bytes_read.sum
(gauge)
The sum of the number of bytes read from Amazon S3.
Shown as byte
aws.elasticmapreduce.s_3bytes_written
(gauge)
The average number of bytes written to Amazon S3.
Shown as byte
aws.elasticmapreduce.s_3bytes_written.sum
(gauge)
The sum of the number of bytes written to Amazon S3.
Shown as byte
aws.elasticmapreduce.task_nodes_pending
(gauge)
The average number of task nodes waiting to be assigned. All of the task nodes requested may not be immediately available; this metric reports the pending requests. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_nodes_pending.sum
(gauge)
The sum of the number of task nodes waiting to be assigned. All of the task nodes requested may not be immediately available; this metric reports the pending requests. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_nodes_requested
(gauge)
The average number of task nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_nodes_requested.sum
(gauge)
The sum of the number of task nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_nodes_running
(gauge)
The average number of task nodes working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_nodes_running.sum
(gauge)
The sum of the number of task nodes working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_units_requested
(gauge)
The average number of task units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_units_requested.sum
(gauge)
The sum of the number of task units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_units_running
(gauge)
The average number of task units working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_units_running.sum
(gauge)
The sum of the number of task units working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_vcpu_requested
(gauge)
The average number of task vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_vcpu_requested.sum
(gauge)
The sum of the number of task vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.task_vcpu_running
(gauge)
The average number of task vCPUs working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.task_vcpu_running.sum
(gauge)
The sum of the number of task vCPUs working. Data points for this metric are reported only when a corresponding instance group exists. (Hadoop v1 only)
Shown as node
aws.elasticmapreduce.total_load
(gauge)
The average total number of concurrent data transfers.
aws.elasticmapreduce.total_load.sum
(gauge)
The sum of the total number of concurrent data transfers.
aws.elasticmapreduce.total_map_tasks
(gauge)
The average total number of map tasks.
Shown as task
aws.elasticmapreduce.total_map_tasks.sum
(gauge)
The sum of the total number of map tasks.
Shown as task
aws.elasticmapreduce.total_nodes_requested
(gauge)
The sum total number of nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_nodes_requested.average
(gauge)
The average of total number of nodes in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_nodes_running
(gauge)
The current average number of nodes available in a running cluster.
Shown as node
aws.elasticmapreduce.total_nodes_running.sum
(gauge)
The current sum of nodes available in a running cluster.
Shown as node
aws.elasticmapreduce.total_reduce_tasks
(gauge)
The average total number of reduce tasks.
Shown as task
aws.elasticmapreduce.total_reduce_tasks.sum
(gauge)
The sum of the total number of reduce tasks.
Shown as task
aws.elasticmapreduce.total_units_requested
(gauge)
The average total number of units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_units_requested.sum
(gauge)
The sum of total number of units in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_units_running
(gauge)
The current average number of units available in a running cluster.
Shown as node
aws.elasticmapreduce.total_units_running.sum
(gauge)
The current sum of units available in a running cluster.
Shown as node
aws.elasticmapreduce.total_vcpu_requested
(gauge)
The average total number of vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_vcpu_requested.sum
(gauge)
The sum of total number of vCPUs in a cluster as determined by managed scaling.
Shown as node
aws.elasticmapreduce.total_vcpu_running
(gauge)
The current average number of vCPUs available in a running cluster.
Shown as node
aws.elasticmapreduce.total_vcpu_running.sum
(gauge)
The current sum of vCPUs available in a running cluster.
Shown as node
aws.elasticmapreduce.under_replicated_blocks
(gauge)
The average number of blocks that need to be replicated one or more times. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.under_replicated_blocks.sum
(gauge)
The sum of the number of blocks that need to be replicated one or more times. (Hadoop v2 only)
Shown as block
aws.elasticmapreduce.yarnmemory_available_percentage
(gauge)
The percentage of remaining memory available to YARN. (Hadoop v2 only)
Shown as percent

Each of the metrics retrieved from AWS is assigned the same tags that appear in the AWS console, including but not limited to host name, security-groups, and more.

Events

The Amazon EMR integration does not include any events.

Service Checks

The Amazon EMR integration does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.