作者:闻洪
开源大数据平台E-MapReduce(简称“EMR”)是云原生开源大数据平台,向客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎。本文旨在分享阿里云Prometheus对EMR平台大数据服务的监控实践。
开源大数据开发平台E-MapReduce(简称“EMR”)作为大数据处理的系统解决方案被越来越多的企业所接受。而阿里云EMR构建于云服务器ECS上,基于开源的Apache Hadoop和Apache Spark可以方便地使用Hadoop和Spark生态系统中的其他周边系统分析和处理数据,还可以与阿里云OSS和RDS等云数据存储系统和数据库系统进行数据传输,让企业可以快速搭建Hadoop、Spark、Flink、Kafka和HBase等开源大数据服务。
我们可以看到,E-MapReduce的核心是集群。E-MapReduce集群是由一个或多个ECS实例组成的Hadoop、Flink、Druid、ZooKeeper集群。以Hadoop为例,每个ECS 实例上通常都运行了一些daemon进程(例如,NameNode、DataNode、ResouceManager和NodeManager),这些daemon进程共同组成了Hadoop集群。在众多大数据组件背后,是海量需要被观测的指标,这就给运维工程师、SRE工程师带来了巨大的挑战。那么,构建E-MapReduce之后,我们针对不同组件,应该关注哪些指标呢?
E-MapReduce指标观测主要包括HOST监控、HDFS 、YARN、Hive、Kafka、Zookeeper、ClickHouse和Flink等,那么接下来我们将进行逐一解读。
提供ECS节点CPU、内存、磁盘、load、网络、socket等监控指标。
HDFS(Hadoop Distributed File System)是一种Hadoop分布式文件系统,适用于大规模数据的分布式读写,特别是读多写少的场景。HDFS指标包括HOME、NameNodes、DataNodes和JournanlNodes指标。
YARN是Hadoop系统的核心组件,主要功能包括负责Hadoop集群的资源管理,对作业进行调度运行以及监控。YARN指标包括HOME、Queue、ResourceManager、NodeManager、TimeLineServer和JobHistory。
Hive是一个基于Hadoop的数据仓库框架,在大数据业务场景中,主要用来进行数据提取、转化和加载(ETL)以及元数据管理。Hive由HiveServer2(HiveQL查询服务器)、Hive MetaStore(元数据管理模块)和Hive Client构成,其指标包括HiveMetaStore和HiveServer2。
指标
描述
hive_memory_heap_max
JVM最大可用堆内存,单位:Byte。
hive_memory_heap_used
JVM已使用堆内存,单位:Byte。
hive_memory_non_heap_used
JVM已使用堆外内存量,单位:Byte。
hive_active_calls_api_alter_table
当前活跃的alter table请求数。
hive_active_calls_api_create_table
当前活跃的create table请求数。
hive_active_calls_api_drop_table
当前活跃的drop table请求数。
hive_api_alter_table
alter table请求平均时间,单位:ms。
hive_api_alter_table_with_environment_context
alter table with env context请求平均时间,单位:ms。
hive_api_create_table
create table请求平均时间,单位:ms。
hive_api_create_table_with_environment_context
create table with env context请求平均时间,单位:ms。
api_drop_table
drop table请求平均时间,单位:ms。
hive_api_drop_table_with_environment_context
drop table with env context请求平均时间,单位:ms。
hive_api_get_all_databases
get all databases请求平均时间,单位:ms。
hive_api_get_all_functions
get all functions请求平均时间,单位:ms。
hive_api_get_database
get database请求平均时间,单位:ms。
hive_api_get_databases
get databases请求平均时间,单位:ms。
hive_api_get_multi_table
get multi table请求平均时间,单位:ms。
hive_api_get_tables_by_type
get table请求平均时间,单位:ms。
hive_api_get_table_objects_by_name_req
get table objects by name请求平均时间,单位:ms。
hive_api_get_table_req
get table req请求平均时间,单位:ms。
hive_api_get_table_statistics_req
get table statistics请求平均时间,单位:ms。
hive_api_get_tables
get tables请求平均时间,单位:ms。
hive_api_get_tables_by_type
get tables by type请求平均时间,单位:ms。
指标
描述
hive_metrics_hs2_active_sessions
当前活跃的session个数。
hive_metrics_memory_total_init
JVM初始化总内存,单位:Byte。
hive_metrics_memory_total_committed
JVM已预留总内存,单位:Byte。
hive_metrics_memory_total_max
JVM最大可用总内存,单位:Byte。
hive_metrics_memory_heap_committed
JVM已预留堆内存,单位:Byte。
hive_metrics_memory_heap_inithive_metrics_memory_heap_committed
JVM初始化堆内存,单位:Byte。
hive_metrics_memory_non_heap_committed
JVM已预留堆外内存,单位:Byte。
hive_metrics_memory_non_heap_init
JVM初始化堆外内存,单位:Byte。
hive_metrics_memory_non_heap_max
JVM最大可用堆外内存,单位:Byte。
hive_metrics_gc_PS_MarkSweep_count
JVM PS MarkSweep GC次数。
hive_metrics_gc_PS_MarkSweep_time
JVM PS MarkSweep GC时间,单位:ms。
hive_metrics_gc_PS_Scavenge_time
JVM PS Scavenge GC时间,单位:ms。
hive_metrics_threads_daemon_count
JVM daemon线程数。
hive_metrics_threads_count
JVM线程数。
hive_metrics_threads_blocked_count
JVM blocked线程数。
hive_metrics_threads_deadlock_count
JVM deadlock线程数。
hive_metrics_threads_new_count
JVM new状态线程数。
hive_metrics_threads_runnable_count
JVM runnable线程数。
hive_metrics_threads_terminated_count
JVM terminated线程数。
hive_metrics_threads_waiting_count
JVM waiting线程数。
hive_metrics_threads_timed_waiting_count
JVM timed_waiting线程数。
hive_metrics_memory_heap_max
JVM最大可用堆内存,单位:Byte。
hive_metrics_memory_heap_used
JVM已使用堆内存,单位:Byte。
hive_metrics_memory_non_heap_used
JVM已使用堆外内存量,单位:Byte。
hive_metrics_hs2_open_sessions
当前打开的session数。
hive_metrics_hive_mapred_tasks
提交的Hive on MR作业总数。
hive_metrics_hive_tez_tasks
提交的Hive on Tez作业总数。
hive_metrics_cumulative_connection_count
累计连接数。
hive_metrics_active_calls_api_runTasks
当前runtask请求数。
hive_metrics_hs2_completed_sql_operation_FINISHED
已结束的SQL总数。
hive_metrics_hs2_sql_operation_active_user
当前活跃用户数。
hive_metrics_open_connections
当前打开的连接数。
hive_metrics_api_PostHook_com_aliyun_emr_meta_hive_hook_LineageLoggerHook
执行LineageLoggerHook的平均时间,单位:ms。
hive_metrics_api_hs2_sql_operation_PENDING
SQL任务处于PEEDING状态的平均时间,单位:ms。
hive_metrics_api_hs2_sql_operation_RUNNING
运SQL任务处于RUNNING状态的平均时间,单位:ms。
hive_metrics_hs2_submitted_queries
提交查询的平均时间,单位:ms。
hive_metrics_hs2_executing_queries
执行查询的平均时间,单位:ms。
hive_metrics_hs2_succeeded_queries
服务启动后成功的查询数。
hive_metrics_hs2_failed_queries
服务启动后失败的查询数。
ZooKeeper是一个分布式、高可用性的协调服务。ZooKeeper提供分布式配置服务、同步服务和命名注册等功能。
指标
描述
zk_packets_received
ZooKeeper接收的包的数量。
zk_packets_sent
ZooKeeper发送的包的数量。
zk_avg_latency
ZooKeeper平均请求延迟,单位:ms。
zk_min_latency
ZooKeeper最小请求延迟,单位:ms。
zk_max_latency
ZooKeeper最大请求延迟,单位:ms。
zk_watch_count
ZooKeeper watch的数量。
zk_znode_count
ZooKeeper znode的数量。
zk_num_alive_connections
ZooKeeper存活的连接数。
zk_outstanding_requests
ZooKeeper排队请求的数量。当ZooKeeper超过了它的处理能力时,该值会增大。
zk_approximate_data_size
ZooKeeper的数据大小(近似值),单位:Byte。
zk_open_file_descriptor_count
ZooKeeper打开文件的数量。
zk_max_file_descriptor_count
ZooKeeper最大允许打开的文件数量。
zk_node_status
ZooKeeper节点状态:- -1:节点不可用。
0:作为follower节点。
1:作为leader节点。 |
| zk_synced_followers | 同步的ZooKeeper服务数量。 |
消息队列Kafka版是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列Kafka版广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。
Kafka-HOME
Kafka-Broker
* Status
Kafka-Topic
* Status
Impala为存储在Apache Hadoop中的数据提供了高性能和低延迟的SQL查询。
指标
描述
impala_impala_server_resultset_cache_total_bytes
结果集缓存大小,单位:Byte。
impala_num_executing_queries
当前正在执行的查询数量。
impala_num_waiting_queries
当前正在等待的查询数量。
impala_impala_server_query_durations_ms_95th
95%的查询耗时时间,单位:ms。
impala_num_in_flight_queries
集群正在in fight状态的查询数量。
impala_impala_server_query_durations_ms_75th
75%的查询耗时时间,单位:ms。
impala_impala_thrift_server_CatalogService_svc_thread_wait_time_99_9th
Catalog Service的客户端对服务线程的等待时间,单位:ms。
impala_impala_thrift_server_CatalogService_connection_setup_time_99_9th
99%的Catalog Service客户端等待建立连接所花费的时间,单位:ms。
impala_impala_server_query_durations_ms_99_9th
99%的查询耗时时间,单位:ms。
impala_impala_server_ddl_durations_ms_99_9th
99%的DDL操作耗时时间,单位:ms。
impala_impala_server_query_durations_ms_90th
90%的查询耗时时间,单位:ms。
impala_impala_server_ddl_durations_ms_90th
90%的DDL操作耗时时间,单位:ms。
impala_impala_server_query_durations_ms_50th
50%的查询耗时时间,单位:ms。
impala_impala_server_ddl_durations_ms_50th
50%的DDL操作耗时时间,单位:ms。
impala_impala_server_ddl_durations_ms_95th
95%的DDL操作耗时时间,单位:ms。
impala_impala_server_scan_ranges_num_missing_volume_id
在进程生命周期内缺失volume id的scan range总数。
impala_impala_server_ddl_durations_ms_75th
75%的DDL操作耗时时间,单位:ms。
impala_impala_server_num_queries_spilled
任何运算符溢出的查询数。
impala_impala_server_scan_ranges_total
在进程生命周期内读取的扫描范围总数。
impala_impala_server_num_queries_expired
由于不活动而过期的查询数。
impala_impala_server_resultset_cache_total_num_rows
结果集缓存记录数。
impala_impala_server_num_open_hiveserver2_sessions
打开的HiveServer2会话数。
impala_impala_server_num_sessions_expired
由于不活动而过期的会话数。
impala_impala_server_num_fragments_in_flight
当前正在执行的查询片段实例的数量。
impala_impala_server_num_queries_registered
在此Impala服务器实例上注册的查询总数。包括正在进行中并等待关闭的查询。
impala_impala_server_num_files_open_for_insert
当前为写入而打开的HDFS文件数。
impala_impala_server_num_queries
在进程生命周期内处理的查询总数。
impala_impala_server_hedged_read_ops
在进程生命周期内尝试的hedged reads总数。
impala_impala_server_num_open_beeswax_sessions
打开Beeswax会话的数量。
impala_impala_server_backend_num_queries_executed
在进程的生命周期内在此后端执行的查询总数。
impala_impala_server_num_fragments
在进程生命周期内处理的查询片段总数。
impala_rpc_impala_ControlService_rpcs_queue_overflow
ControlService由于服务队列溢出而被拒绝的传入RPC总数。
impala_impala_server_hedged_read_ops_win
Hedged read比常规读取操作快的总次数。
impala_mem_tracker_DataStreamService_current_usage_bytes
Memtracker DataStreamService当前使用的字节数。
impala_impala_server_backend_num_queries_executing
当前在此后端上执行的查询数。
impala_cluster_membership_executor_groups_total_healthy
处于健康状态的执行器组总数。
impala_rpc_impala_DataStreamService_rpcs_queue_overflow
DataStreamService由于服务队列溢出而被拒绝的传入RPC总数。
impala_cluster_membership_backends_total
向statestore注册的后端总数。
impala_mem_tracker_DataStreamService_peak_usage_bytes
Memtracker DataStreamService峰值使用的字节数。
impala_total_senders_blocked_on_recvr_creation
已被阻止等待接收片段初始化的发件人总数。
impala_mem_tracker_ControlService_peak_usage_bytes
Memtracker ControlService峰值使用字节数。
impala_simple_scheduler_local_assignments_total
本地作业数。
impala_mem_tracker_ControlService_current_usage_bytes
Memtracker ControlService当前使用字节数。
impala_memory_total_used
已使用内存,单位:Byte。
impala_cluster_membership_executor_groups_total
至少有一个执行程序的执行程序组总数。
impala_memory_rss
RSS的内存大小,包括TCMalloc、缓冲池和JVM,单位:Byte。
impala_total_senders_timedout_waiting_for_recvr_creation
超时等待接收片段初始化的发送者总数。
impala_senders_blocked_on_recvr_creation
等待接收片段初始化的发送者数量。
impala_simple_scheduler_assignments_total
作业数。
impala_memory_mapped_bytes
进程中内存映射的总字节数(虚拟内存大小),单位:Byte。
指标
描述
hue_requests_response_time_avg
请求响应时间平均值。
hue_requests_response_time_95_percentile
95%的请求响应时间。
hue_requests_response_time_std_dev
请求响应时间标准差。
hue_requests_response_time_median
50%的请求响应时间。
hue_requests_response_time_75_percentile
75%的请求响应时间。
hue_requests_response_time_count
请求响应时间计数。
hue_requests_response_time_5m_rate
最近5分钟的请求响应速率。
hue_requests_response_time_min
请求响应时间最小值。
hue_requests_response_time_sum
请求响应时间总和。
hue_requests_response_time_max
请求响应时间的最大值。
hue_requests_response_time_mean_rate
请求响应速率平均值。
hue_requests_response_time_99_percentile
99%的最近一小时请求响应时间。
hue_requests_response_time_15m_rate
最近15分钟请求响应速率。
hue_requests_response_time_999_percentile
99.9%的请求响应时间。
hue_requests_response_time_1m_rate
最近1分钟的请求响应速率。
hue_users_active_total
活跃用户总数。
hue_users_active
最近1小时的活跃用户数。
hue_users
用户总数。
hue_threads_total
当前线程总数。
hue_threads_daemon
常驻线程数量。
hue_queries_number
查询数量总和。
hue_requests_exceptions
当前异常请求数。
hue_requests_active
当前活跃请求数。
参数
指标
描述
op_apply_queue_length(99)
kudu_op_apply_queue_length_percentile_99
99%的操作队列的长度。
op_apply_queue_length(75)
kudu_op_apply_queue_length_percentile_75
75%的操作队列的长度。
op_apply_queue_length(mean)
kudu_op_apply_queue_length_mean
操作队列的长度的平均值。
rpc_incoming_queue_time(99)
kudu_rpc_incoming_queue_time_percentile_99
99%的RPC队列的等待时间,单位:μs。
rpc_incoming_queue_time(75)
kudu_rpc_incoming_queue_time_percentile_75
75%的RPC队列的等待时间,单位:μs。
rpc_incoming_queue_time(mean)
kudu_rpc_incoming_queue_time_mean
RPC队列的等待时间的平均值,单位:μs。
reactor_load_percent(99)
kudu_reactor_load_percent_percentile_99
99%的Reactor线程的负载。
reactor_load_percent(75)
kudu_reactor_load_percent_percentile_75
75%的Reactor线程的负载。
reactor_load_percent(mean)
kudu_reactor_load_percent_mean
Reactor线程的负载的平均值。
op_apply_run_time(99)
kudu_op_apply_run_time_percentile_99
99%的操作执行时间,单位:μs。
op_apply_run_time(75)
kudu_op_apply_run_time_percentile_75
75%的操作执行时间,单位:μs。
op_apply_run_time(mean)
kudu_op_apply_run_time_mean
操作执行时间的平均值,单位:μs。
op_prepare_run_time(99)
kudu_op_prepare_run_time_percentile_99
99%的操作准备时间,单位:μs。
op_prepare_run_time(75)
kudu_op_prepare_run_time_percentile_75
75%的操作准备时间,单位:μs。
op_prepare_run_time(mean)
kudu_op_prepare_run_time_mean
操作准备时间的平均值,单位:μs。
flush_mrs_duration(99)
kudu_flush_mrs_duration_percentile_99
99%的MemRowSet flush时间,单位:ms。
flush_mrs_duration(75)
kudu_flush_mrs_duration_percentile_75
75%的MemRowSet flush时间,单位:ms。
flush_mrs_duration(mean)
kudu_flush_mrs_duration_mean
MemRowSet flush时间的平均值,单位:ms。
log_append_latency(99)
kudu_log_append_latency_percentile_99
99%的日志的append时间,单位:μs。
log_append_latency(75)
kudu_log_append_latency_percentile_75
75%的日志的append时间,单位:μs。
log_append_latency(mean)
kudu_log_append_latency_mean
日志的append时间的平均值,单位:μs。
flush_dms_duration(99)
kudu_flush_dms_duration_percentile_99
99%的DeltaMemStore flush时间,单位:ms。
flush_dms_duration(75)
kudu_flush_dms_duration_percentile_75
75%的DeltaMemStore flush时间,单位:ms。
flush_dms_duration(mean)
kudu_flush_dms_duration_mean
DeltaMemStore flush时间的平均值,单位:ms。
op_prepare_queue_length(99)
kudu_op_prepare_queue_length_percentile_99
99%的准备队列的长度。
op_prepare_queue_length(75)
kudu_op_prepare_queue_length_percentile_75
75%的准备队列的长度。
op_prepare_queue_length(mean)
kudu_op_prepare_queue_length_mean
准备队列的长度的平均值。
log_gc_duration(99)
kudu_log_gc_duration_percentile_99
99%的日志GC的时间,单位:ms。
log_gc_duration(75)
kudu_log_gc_duration_percentile_75
75%的日志GC的时间,单位:ms。
log_gc_duration(mean)
kudu_log_gc_duration_mean
日志GC的时间的平均值,单位:ms。
log_sync_latency(99)
kudu_log_sync_latency_percentile_99
99%的日志Sync的时间,单位:μs。
log_sync_latency(75)
kudu_log_sync_latency_percentile_75
75%的日志Sync的时间,单位:μs。
log_sync_latency(mean)
kudu_log_sync_latency_mean
日志Sync的时间的平均值,单位:μs。
prepare_queue_time(99)
kudu_op_prepare_queue_time_percentile_99
99%的操作在准备队列的等待时间,单位:μs。
prepare_queue_time(75)
kudu_op_prepare_queue_time_percentile_75
75%的操作在准备队列的等待时间,单位:μs。
prepare_queue_time(mean)
kudu_op_prepare_queue_time_mean
操作在准备队列的等待时间的平均值,单位:μs。
rpc_connections_accepted
kudu_rpc_connections_accepted
RPC请求接收的数量。
block_cache_usage
kudu_block_cache_usage
Tserver Block缓存的使用量,单位:Byte。
active_scanners
kudu_active_scanners
处于Active状态的Scanner数量。
data_dirs_full
kudu_data_dirs_full
Full状态的数据目录个数。
rpcs_queue_overflow
kudu_rpcs_queue_overflow
RPC队列溢出次数。
cluster_replica_skew
kudu_cluster_replica_skew
服务器上承载的最多的tablet数量与最少的tablet数量的差值。
log_gc_running
kudu_log_gc_running
正在GC的日志数量。
data_dirs_failed
kudu_data_dirs_failed
失效的数据目录个数。
leader_memory_pressure_rejections
kudu_leader_memory_pressure_rejections
内存压力拒绝的请求个数。
transaction_memory_pressure_rejections
kudu_transaction_memory_pressure_rejections
内存压力拒绝的事务个数。
EMR ClickHouse完全兼容开源版本的产品特性,并且在开源的基础上优化了读写性能,提升了ClickHouse与EMR其他组件快速集成的能力。
指标
描述
clickhouse_server_events_ReplicatedPartFailedFetches
数据无法从Replicated*MergeTree表中任一副本获取的次数。
clickhouse_server_events_ReplicatedPartChecksFailed
Replicated*MergeTree表中数据检查失败的次数。
clickhouse_server_events_ReplicatedDataLoss
Replicated*MergeTree表中数据不在任何一个副本中的次数。
clickhouse_server_events_ReplicatedMetaDataChecksFailed
Replicated*MergeTree表检查元数据失败的次数。
clickhouse_server_events_ReplicatedMetaDataLoss
Replicated*MergeTree表中元数据丢失的次数。
clickhouse_server_events_DuplicatedInsertedBlocks
写入Replicated*MergeTree表中的Block重复的次数。
clickhouse_server_events_ZooKeeperUserExceptions
Zookeeper中与ClickHouse状态相关错误出现的次数。
clickhouse_server_events_ZooKeeperHardwareExceptions
ZooKeeper网络或类似的错误出现的次数。
clickhouse_server_events_ZooKeeperOtherExceptions
ZooKeeper中非硬件或状态错误出现的次数。
clickhouse_server_events_DistributedConnectionFailTry
分布式连接重试出错的次数。
clickhouse_server_events_DistributedConnectionMissingTable
分布式连接无法找到表的次数。
clickhouse_server_events_DistributedConnectionStaleReplica
分布式连接得到的副本不新鲜的次数。
clickhouse_server_events_DistributedConnectionFailAtAll
在所有次重试结束后分布式连接失败的次数。
clickhouse_server_events_SlowRead
Slow Read的次数。
clickhouse_server_events_ReadBackoff
由于Slow Read导致的线程减少的次数。
clickhouse_server_metrics_BackgroundPoolTask
background_pool中的任务个数。
clickhouse_server_metrics_BackgroundMovePoolTask
background_move_pool中的任务个数。
clickhouse_server_metrics_BackgroundSchedulePoolTask
schedule_pool中的任务个数。
clickhouse_server_metrics_BackgroundBufferFlushSchedulePoolTask
buffer_flush_schedule_pool中的任务个数。
clickhouse_server_metrics_BackgroundDistributedSchedulePoolTask
distributed_schedule_pool中的任务个数。
clickhouse_server_metrics_BackgroundTrivialSchedulePoolTask
trivial_schedule_pool中的任务个数。
clickhouse_server_metrics_TCPConnection
TCP连接个数。
clickhouse_server_metrics_HTTPConnection
HTTP连接个数。
clickhouse_server_metrics_InterserverConnection
用于从其他副本上获取数据的连接个数。
clickhouse_server_metrics_MemoryTracking
Server使用的总内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundProcessingPool
background_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundMoveProcessingPool
background_move_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundBufferFlushSchedulePool
buffer_flush_schedule_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundSchedulePool
schedule_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundDistributedSchedulePool
distributed_schedule_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingInBackgroundTrivialSchedulePool
trivial_schedule_pool中任务执行所使用的内存,单位:Byte。
clickhouse_server_metrics_MemoryTrackingForMerges
后台执行Merge时使用的内存,单位:Byte。
Flink是一个流式数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。
参数
指标
描述
Num Of RunningJobs
numRunningJobs
JM中正在运行的作业数。
Job Uptime
job_uptime
作业已运行时间,单位:ms。仅支持返回单个系列或表的查询。
TaskSlots Available
taskSlotsAvailable
当前可用的TaskSlots数量。
TaskSlots Total
taskSlotsTotal
TaskSlots的总数量。
Num of TM
numRegisteredTaskManagers
已注册的TM数量。
sourceIdleTime
sourceIdleTime
源没有处理任何记录的时间,单位:ms。
currentFetchEventTimeLag
currentFetchEventTimeLag
业务延时(fetch=数据发生时间与数据进入Flink Source时间之间的差值)。
currentEmitEventTimeLag
currentEmitEventTimeLag
业务延时(emit=数据发生时间与数据离开Flink Source时间之间的差值)。
参数
指标
描述
Num of Checkpoints
totalNumberOfCheckpoints
检查点总数。
numberOfFailedCheckpoints
失败的检查点数量。
numberOfCompletedCheckpoints
已完成的检查点数量。
numberOfInProgressCheckpoints
正在进行的检查点数量。
lastCheckpointDuration
lastCheckpointDuration
最近一个检查点完成时间,单位:ms。
lastCheckpointSize
lastCheckpointSize
最近一个检查点的大小,单位:Byte。
lastCheckpointRestoreTimestamp
lastCheckpointRestoreTimestamp
协调器上最近一个检查点的恢复时间,单位:ms。
参数
指标
描述
InPool Usage
inPoolUsage
输入缓冲区使用量。
OutPool Usage
outPoolUsage
输出缓冲区使用量。
OutputQueue Length
outputQueueLength
输出缓冲区排队数量。
InputQueue Length
inputQueueLength
输入缓冲区排队数量。
参数
指标
描述
numBytesIn PerSecond
numBytesInLocalPerSecond
每秒本地读取数据的字节数。
numBytesInRemotePerSecond
每秒远端读取数据的字节数。
numBuffersInLocalPerSecond
每秒本地读取网络缓冲区的数量。
numBuffersInRemotePerSecond
每秒远端读取网络缓冲区的数量。
numBytesOut PerSecond
numBytesOutPerSecond
每秒发出字节数。
numBuffersOutPerSecond
每秒发出网络缓冲区的数量。
Task numRecords I/O PerSecond
numRecordsInPerSecond
每秒接收的记录数。
numRecordsOutPerSecond
每秒发出的记录数。
Task numRecords I/O
numRecordsIn
接收的记录数。
numRecordsOut
发出的记录数。
Operator CurrentSendTime
currentSendTime
发送最新一条记录的耗时时间,单位:ms。
参数
指标
描述
Task InputWatermark
currentInputWatermark
任务收到最后一个水印的时间,单位:ms。
Operator In/Out Watermark
currentInputWatermark
算子收到最后一个水印的时间,单位:ms。
currentOutputWatermark
算子发出最后一个水印的时间,单位:ms。
watermarkLag
watermarkLag
Watermark滞后时间,单位:ms。
参数
指标
描述
JM CPU Load
CPU_Load
JM CPU使用率。
TM CPU Load
CPU_Load
TM CPU使用率。
CPU Usage
CPU_Usage
TM CPU使用率(基于ProcessTree)。
参数
指标
描述
JM Heap Memory
Memory_Heap_Used
JM Heap Memory已使用量,单位:Byte。
Memory_Heap_Committed
JM Heap Memory已申请量,单位:Byte。
Memory_Heap_Max
JM Heap Memory最大可用量,单位:Byte。
JM NonHeap Memory
Memory_NonHeap_Used
JM NonHeap Memory已使用量,单位:Byte。
Memory_NonHeap_Committed
JM NonHeap Memory已申请量,单位:Byte。
Memory_NonHeap_Max
JM NonHeap Memory最大可用量,单位:Byte。
TM Heap Memory
Memory_Heap_Used
TM Heap Memory已使用量,单位:Byte。
Memory_Heap_Committed
TM Heap Memory已申请量,单位:Byte。
Memory_Heap_Max
TM Heap Memory最大可用量,单位:Byte。
TM NonHeap Memory
Memory_NonHeap_Used
TM NonHeap Memory已使用量,单位:Byte。
Memory_NonHeap_Committed
TM NonHeap Memory已申请量,单位:Byte。
Memory_NonHeap_Max
TM NonHeap Memory最大可用量,单位:Byte。
Memory RSS
Memory_RSS
TM当前已使用的堆内存量,单位:Byte。
参数
指标
描述
JM Threads
Threads_Count
JM活跃线程总数。
TM Threads
Threads_Count
TM活跃线程总数。
JM GC Time
GarbageCollector_PS_Scavenge_Time
JM年轻代垃圾回收器运行时间。
GarbageCollector_PS_MarkSweep_Time
JM老年代“标记-清除”垃圾回收器的运行时间。
JM GC Count
GarbageCollector_PS_Scavenge_Count
JM年轻代垃圾回收器运行次数。
GarbageCollector_PS_MarkSweep_Count
JM老年代“标记-清除”垃圾回收器的运行次数。
TM GC Count
GarbageCollector_PS_Scavenge_Count
TM年轻代垃圾回收器运行次数。
GarbageCollector_PS_MarkSweep_Count
TM老年代“标记-清除”垃圾回收器的运行次数。
TM GC Time
GarbageCollector_PS_Scavenge_Time
TM年轻代垃圾回收器运行时间。
GarbageCollector_PS_MarkSweep_Time
TM老年代“标记-清除”垃圾回收器的运行时间。
TM ClassLoader
ClassLoader_ClassesLoaded
TM自JVM启动以来已加载的类总数。
ClassLoader_ClassesUnloaded
TM自JVM启动以来已卸载的类总数。
JM ClassLoader
ClassLoader_ClassesLoaded
JM自JVM启动以来已加载的类总数。
ClassLoader_ClassesUnloaded
JM自JVM启动以来已卸载的类总数。
下面介绍如何使用阿里云Prometheus进行EMR的监控,包括接入配置、查看监控大盘和配置告警规则等三方面。
创建完EMR集群后会默认在ECS上安装taihao-exporter,但prometheus端口未打开,需要手动开启。
sed -i 's/prom_sink_enable:\s*false/prom_sink_enable: true/g' /usr/local/taihao_exporter/taihao_exporter.yamlservice taihao_exporter restart
登录**阿里云Prometheus [ 13] **控制台,点击“接入中心”选择“组件应用E-MapReduce”点击“安装”按钮
选择“阿里云ECS环境”和Prometheus实例并填写接入配置信息:
阿里云Prometheus提供HOST、HDFS、Hive、YARN、Impala、ZooKeeper、Spark、Flink、ClickHouse等共24个大盘,其中包括:
HOST大盘:ECS节点CPU、内存、磁盘、load、network、socket等
HDFS大盘:HDFS-HOME、HDFS-NameNodes、HDFS-DataNodes、HDFS-JournanlNodes
Hive大盘:
ClickHouse大盘
Flink大盘
Impala大盘
ZooKeeper大盘
Spark大盘进入集成EMR的prometheus实例,点击“E-MapReduce”标签,在弹出界面选择“大盘”tab页,点击大盘缩略图,即可查看对应Grafana大盘。
Prometheus作为目前最主流的可观测开源项目之一,已经被众多企业所广泛应用。但在实际生产过程中,还是遇到各种各样问题,其中包括:
针对以上问题,阿里云Proemtheus监控进行了以下几个方面的优化:
为了进一步进行性能优化,阿里云Prometheus监控将Agent 部署在用户侧,保留原生采集能力同时, 尽量使用最少资源;通过采集存储分离架构,提高整体性能;采集组件优化,提升单副本采集能力,降低资源消耗;通过多副本横向扩展均衡分解采集任务,实现动态扩缩,解决开源水平扩展问题。采集/数据处理/存储组件支持多副版本,保证核心数据链路高可用;基于集群规模可直接进行弹性扩容;支持数据重传,彻底解决丢弃逻辑弊病,确保数据完整性与准确性。
同时,为了应对大规模数据、长时间区间的查询场景,通过DAG执行优化、算子下推,提升大规模数据查询性能并支持长时间区间秒级查询;通过Global DataSource和Global View实现对多集群统一监控与跨集群聚合查询。
在提供企业级能力强化同时,全方位降低企业使用Prometheus的IT运维成本。通过包年包月、按量付费等多种计费方式让费用支出与规划更加清晰与灵活,相较于开源版本节省37%以上。
云产品在各自控制台都提供自身产品的可观测性,但这些云产品的指标及看板散落在各控制台,且无法进行精细化的指标数据应用。Prometheus服务提供云产品监控功能,将这些数据进行统一展现、查询、告警,为运维团队提供更加便捷的日常运维监控界面。
想要更好、更快速的呈现相关指标图表,阿里云Prometheus监控预置Grafana组件,预置常见云服务、应用等看板模板,如应用实时监控服务ARMS、云监控CMS、日志服务SLS、阿里云Elasticsearch等云服务,提供各种云服务的数据源配置及预置大盘,实现各种可观测数据的统一展示。如容器、消息队列Kafka等,进一步提供GrafanaPro大盘,帮助运维进行更加精细化的指标观测。在预置看板之外,可以通过Grafana官方自由增加新插件,添加新的可视化模板以及数据源,进一步满足个性化运维监控需求。
[1] HOST指标
https://help.aliyun.com/document_detail/426468.html?spm=a2c4g.11186623.0.0.741d6a7fW0Lwr5
[2] HDFS指标
https://help.aliyun.com/document_detail/420598.html
[3] YARN指标
https://help.aliyun.com/document_detail/424946.html
[4] Hive指标
https://help.aliyun.com/document_detail/425274.html
[5] ZooKeeper指标
https://help.aliyun.com/document_detail/425464.html
[6] Kafka指标
https://help.aliyun.com/document_detail/425521.html
[7] Impala指标
https://help.aliyun.com/document_detail/427926.html
[8] HUE指标
https://help.aliyun.com/document_detail/428413.html
[9] Kudu指标
https://help.aliyun.com/document_detail/427958.html
[10] ClickHouse指标
https://help.aliyun.com/document_detail/425523.html
[11] Flink指标
https://help.aliyun.com/document_detail/430469.html
[12] EMR控制台
https://emr-next.console.aliyun.com/#/region/cn-hangzhou/resource/all/overview
[13] 阿里云Prometheus
手机扫一扫
移动阅读更方便
你可能感兴趣的文章