Flink metrics

Updated at:

Managed Service for Prometheus supports a set of Flink metrics that are collected from Alibaba Cloud Realtime Compute for Apache Flink. Each metric is either a basic metric or a custom metric, and that classification determines whether reporting the metric incurs charges.

Metric types and billing

Managed Service for Prometheus is billed based on the volume of data written or the number of reported data points. Metrics fall into two categories:

  • Basic metrics — Basic metrics collected from Alibaba Cloud Realtime Compute for Apache Flink are free of charge when they are reported to or written into Managed Service for Prometheus. This benefit does not apply to other Flink services, such as self-managed Flink.

  • Custom metrics — Metrics other than basic metrics are custom metrics. Custom metrics have been billed since January 6, 2020.

    The Type column of every table in this topic states the category that a metric belongs to. Basic metrics are concentrated in the JobManager and TaskManager JVM and system resource sections. The metrics in the remaining sections are custom metrics, so job health, latency, throughput, checkpoint, state, window, and CDC connector data is billed when it is reported. Within the two JVM sections, the eight G1 garbage collector metrics are custom metrics even though the metrics next to them are basic metrics.

How to read the metric tables

Every metric table in this topic uses the same five columns:

  • Metric — The metric name as it is reported to Managed Service for Prometheus.

  • Description — What the metric measures.

  • Details — How to interpret the value, or what to check when the value looks abnormal.

  • Unit — The unit of the metric value. Values used in this topic are Count, Count/s, Bytes, Bytes/s, ms, and ns.

  • Type — The metric category: Basic or Custom.

    N/A in a cell means that this topic provides no value for that cell. In the Unit column, N/A means that no unit is documented for the metric.

Some metric names contain a variable segment that is substituted when the metric is reported, so the name in the table is not the literal name of a time series. state_name stands for the name of the state that the metric applies to, and cdcns_schema_table stands for the CDC namespace, schema name, and table name of the monitored table. Replace these segments with actual values before you use a metric name in a query or an alert rule.

Job health

MetricDescriptionDetailsUnitType
flink_jobmanager_job_numRestartsNumber of job restarts caused by errorsNumber of restarts caused by job errors. JobManager failovers are not counted.CountCustom
flink_jobmanager_job_uptimeJob running timeN/AmsCustom
flink_jobmanager_numRunningJobsNumber of running jobsN/AN/ACustom
flink_jobmanager_taskSlotsAvailableNumber of available task slotsN/AN/ACustom
flink_jobmanager_taskSlotsTotalTotal number of task slotsN/AN/ACustom
flink_jobmanager_numRegisteredTaskManagersNumber of registered TaskManagersN/AN/ACustom

Latency

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_currentEmitEventTimeLagEvent-time lag of the records that the operator emitsA large value indicates that the job may be experiencing latency when it pulls or processes data.msCustom
flink_taskmanager_job_task_operator_currentFetchEventTimeLagEvent-time lag of the records that the operator pullsA large value indicates that the job may be experiencing latency when it pulls data.msCustom
flink_taskmanager_job_task_currentInputWatermarkTime of the most recent watermark received by each taskIndicates the latency of the data that the task receives.N/ACustom
flink_taskmanager_job_task_operator_watermarkLagWatermark lag of the operatorIndicates job latency at the subtask level.msCustom

Throughput

Record throughput

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_numRecordsInTotal number of records that the task receivesIf the numRecordsIn value of a task does not increase for a long time, the upstream may have dropped the data and failed to pass it on. In this case, check the upstream data.CountCustom
flink_taskmanager_job_task_numRecordsOutTotal number of records that the task outputsIf the numRecordsOut value of a task does not increase for a long time, a logic error in the job code may have dropped the data so that it was not passed on. In this case, check the job code logic.CountCustom
flink_taskmanager_job_task_operator_numRecordsInTotal number of records that the operator receivesIf the numRecordsIn value of an operator does not increase for a long time, the upstream may have dropped the data and failed to pass it on. In this case, check the upstream data.CountCustom
flink_taskmanager_job_task_operator_numRecordsOutTotal number of records that the operator outputsIf the numRecordsOut value of an operator does not increase for a long time, a logic error in the job code may have dropped the data so that it was not passed on. In this case, check the job code logic.CountCustom
flink_taskmanager_job_task_operator_source_numRecordsInInput records of the source operator onlyCheck the upstream data input.CountCustom
flink_taskmanager_job_task_operator_sink_numRecordsOutTotal number of records output by the sinkCheck the downstream data output.CountCustom
flink_taskmanager_job_task_numRecordsInPerSecondNumber of records that the task receives per secondApplies to scenarios in which you need to monitor the processing speed of a task. For example, you can check whether the processing speed of the task reaches the expected level and how performance changes under different input loads.Count/sCustom
flink_taskmanager_job_task_numRecordsOutPerSecondNumber of records that the task outputs per secondApplies to scenarios in which you need to monitor the output speed of a task. For example, you can check whether the output speed of the task reaches the expected level and how performance changes under different output loads.Count/sCustom
flink_taskmanager_job_task_operator_numRecordsInPerSecondNumber of records that the operator receives per secondApplies to scenarios in which you need to monitor the processing speed of an operator. For example, you can check whether the processing speed of the operator reaches the expected level and how performance changes under different input loads.Count/sCustom
flink_taskmanager_job_task_operator_numRecordsOutPerSecondNumber of records that the operator outputs per secondApplies to scenarios in which you need to monitor the output speed of an operator. For example, you can check whether the output speed of the operator reaches the expected level and how performance changes under different output loads.Count/sCustom
flink_taskmanager_job_task_operator_source_numRecordsInPerSecondNumber of records input per second by the sourceApplies to scenarios in which you need to understand the generation rate of each data source and measure the number of records generated per second by each data source. Different data sources in a data stream may generate different numbers of records, so this metric helps you tune the data stream for better performance. This metric is also used for monitoring and alerting. A value of 0 may indicate that the upstream dropped the data. Check whether output is blocked because the upstream data has not been consumed.Count/sCustom
flink_taskmanager_job_task_operator_sink_numRecordsOutPerSecondNumber of records output per second by the sinkApplies to scenarios in which you need to understand the output speed of each sink and measure the number of records output per second by each sink. Different sinks in a data stream may output different numbers of records, so this metric helps you tune the data stream for better performance. This metric is also used for monitoring and alerting. A value of 0 may indicate a logic error in the job code that filtered out all data. In this case, check the job code logic.Count/sCustom

Byte throughput

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_numBytesInTotal number of bytes that the operator receivesCheck the upstream throughput input to observe the traffic of the job.BytesCustom
flink_taskmanager_job_task_operator_numBytesOutTotal number of bytes that the operator outputsCheck the downstream throughput output to observe the traffic of the job.BytesCustom
flink_taskmanager_job_task_operator_numBytesInPerSecondNumber of bytes that the operator receives per secondN/ABytes/sCustom
flink_taskmanager_job_task_operator_numBytesOutPerSecondNumber of bytes that the operator outputs per secondCheck the downstream throughput output to observe the traffic of the job.Bytes/sCustom
flink_taskmanager_job_task_numBytesInLocalPerSecondNumber of bytes that the task reads per second from local sourcesCheck the upstream input rate to observe the traffic of the job.Bytes/sCustom
flink_taskmanager_job_task_numBytesInRemotePerSecondNumber of bytes that the task reads per second from remote sourcesN/ABytes/sCustom
flink_taskmanager_job_task_numBytesOutPerSecondNumber of bytes that the task outputs per secondN/ABytes/sCustom

Network buffers

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_numBuffersInLocalPerSecondNumber of local data buffers consumed per secondA high value indicates frequent local communication between tasks, that is, communication on the same node.Count/sCustom
flink_taskmanager_job_task_numBuffersInRemotePerSecondNumber of buffers received per second from remote TaskManagersReflects the frequency of cross-TaskManager communication.Count/sCustom
flink_taskmanager_job_task_numBuffersOutPerSecondNumber of buffers sent per second to other tasksIndicates the output pressure of tasks and the network bandwidth usage.Count/sCustom

Source and sink

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_pendingRecordsNumber of records that have not been read at the sourceNumber of records in the external system that have not been pulled by the source.CountCustom
flink_taskmanager_job_task_operator_sourceIdleTimeTime during which the source has not processed dataIndicates whether the source is idle. A large value indicates that the data generation rate in the external system is low.msCustom
flink_taskmanager_job_task_operator_currentSendTimeTime taken to send the most recent recordN/AmsCustom

Checkpoints

MetricDescriptionDetailsUnitType
flink_jobmanager_job_totalNumberOfCheckpointsTotal number of checkpointsN/ACountCustom
flink_jobmanager_job_numberOfFailedCheckpointsNumber of failed checkpointsN/ACountCustom
flink_jobmanager_job_numberOfCompletedCheckpointsNumber of completed checkpointsN/ACountCustom
flink_jobmanager_job_numberOfInProgressCheckpointsNumber of in-progress checkpointsN/ACountCustom
flink_jobmanager_job_lastCheckpointDurationDuration of the most recent checkpointIf a checkpoint takes too long or times out, the cause may be an excessively large state, a transient network issue, unaligned barriers, or data backpressure.msCustom
flink_jobmanager_job_lastCheckpointSizeSize of the most recent checkpointSize of the checkpoint that was actually uploaded most recently. Use this metric to analyze checkpoint performance when checkpointing is a bottleneck.BytesCustom

State

State metrics report the maximum latency of a single state operation, grouped by state type, and the size of the state data that GeminiDB stores. In a state latency metric name, replace state_name with the name of the state that you want to monitor. Each latency metric indicates the performance of the state operation that its name identifies, so the Details column is N/A for these metrics.

General

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_stateClearLatencyMaximum latency of a single state clear operationN/AnsCustom

Value state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_valueStateGetLatencyMaximum latency of a single value state accessN/AnsCustom
flink_taskmanager_job_task_operator_state_name_valueStateUpdateLatencyMaximum latency of a single value state updateN/AnsCustom

Aggregating state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_aggregatingStateGetLatencyMaximum latency of a single aggregating state accessN/AnsCustom
flink_taskmanager_job_task_operator_state_name_aggregatingStateAddLatencyMaximum latency of a single aggregating state add operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_aggregatingStateMergeNamespacesLatencyMaximum latency of a single aggregating state merge-namespaces operationN/AnsCustom

Reducing state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_reducingStateGetLatencyMaximum latency of a single reducing state accessN/AnsCustom
flink_taskmanager_job_task_operator_state_name_reducingStateAddLatencyMaximum latency of a single reducing state add operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_reducingStateMergeNamespacesLatencyMaximum latency of a single reducing state merge-namespaces operationN/AnsCustom

Map state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_mapStateGetLatencyMaximum latency of a single map state accessN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStatePutLatencyMaximum latency of a single map state put operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStatePutAllLatencyMaximum latency of a single map state put all operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateRemoveLatencyMaximum latency of a single map state remove operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateContainsLatencyMaximum latency of a single map state contains operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateEntriesInitLatencyMaximum latency of a single map state entries init operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateKeysInitLatencyMaximum latency of a single map state keys init operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateValuesInitLatencyMaximum latency of a single map state values init operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateIteratorInitLatencyMaximum latency of a single map state iterator init operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateIsEmptyLatencyMaximum latency of a single map state empty checkN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateIteratorHasNextLatencyMaximum latency of a single map state iterator hasNext operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateIteratorNextLatencyMaximum latency of a single map state iterator next operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_mapStateIteratorRemoveLatencyMaximum latency of a single map state iterator remove operationN/AnsCustom

List state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_listStateGetLatencyMaximum latency of a single list state accessN/AnsCustom
flink_taskmanager_job_task_operator_state_name_listStateAddLatencyMaximum latency of a single list state add operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_listStateAddAllLatencyMaximum latency of a single list state add all operationN/AnsCustom
flink_taskmanager_job_task_operator_state_name_listStateUpdateLatencyMaximum latency of a single list state updateN/AnsCustom
flink_taskmanager_job_task_operator_state_name_listStateMergeNamespacesLatencyMaximum latency of a single list state merge-namespaces operationN/AnsCustom

Sorted map state

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_state_name_sortedMapStateFirstEntryLatencyMaximum latency of a single access to the first entry of a sorted map stateN/AnsCustom
flink_taskmanager_job_task_operator_state_name_sortedMapStateLastEntryLatencyMaximum latency of a single access to the last entry of a sorted map stateN/AnsCustom

GeminiDB state storage

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_geminiDB_total_sizeSize of the state dataBy monitoring this metric, you can locate nodes at which state bottlenecks may occur, either directly or in advance, and determine whether TTL takes effect.BytesCustom
flink_taskmanager_job_task_operator_geminiDB_total_filesizeSize of the state data filesBy monitoring this metric, you can check how much local disk space is occupied by state so that you can take action in advance when the usage is high, and determine whether insufficient local disk space is caused by excessively large state data.BytesCustom

Window metrics

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_numLateRecordsDroppedTotal number of records dropped because of window latencyN/ACountCustom
flink_taskmanager_job_task_operator_lateRecordsDroppedRateRate at which records are dropped because of window latencyN/AN/ACustom

CDC connector metrics

Change data capture (CDC) connector metrics track the snapshot phase, in which full data is processed, and the binary logging (binlog) phase, in which incremental data is processed. The following tables group these metrics by the phase that the job is currently in, the progress of the snapshot phase, the volume of data that has been read, and the DML and DDL statements that are processed in the incremental phase.

In a metric name, replace cdcns_schema_table with the CDC namespace, schema name, and table name of the table that you want to monitor. Metrics whose names contain this segment report values for a single table. Metrics whose names omit it report values for the whole job.

Phase indicators

MetricDescriptionDetailsUnitType
flink_jobmanager_job_operator_coordinator_enumerator_isSnapshottingWhether the job is in the phase in which full data is processedDetermine whether the job is still in the snapshot phase.N/ACustom
flink_jobmanager_job_operator_coordinator_enumerator_isBinlogReadingWhether the job is in the phase in which incremental data is processedDetermine whether the job has entered the binlog phase.N/ACustom

Snapshot progress

MetricDescriptionDetailsUnitType
flink_jobmanager_job_operator_coordinator_enumerator_numTablesRemainingNumber of tables that have not been processed in the snapshot phaseView the number of tables that are still waiting to be processed.CountCustom
flink_jobmanager_job_operator_coordinator_enumerator_numTablesSnapshottedNumber of tables for which the snapshot has been completedView the number of tables that have been processed.CountCustom
flink_jobmanager_job_operator_coordinator_enumerator_numSnapshotSplitsProcessedNumber of shards that have been processed in the snapshot phase, for the whole jobView the number of processed shards across all tables.CountCustom
flink_jobmanager_job_operator_coordinator_enumerator_cdcns_schema_table_numSnapshotSplitsProcessedNumber of shards that have been processed in the snapshot phase, for a single tableView the number of processed shards for the specified table.CountCustom
flink_jobmanager_job_operator_coordinator_enumerator_numSnapshotSplitsRemainingNumber of shards waiting to be processed in the snapshot phase, for the whole jobView the number of unprocessed shards across all tables.CountCustom
flink_jobmanager_job_operator_coordinator_enumerator_cdcns_schema_table_numSnapshotSplitsRemainingNumber of shards waiting to be processed in the snapshot phase, for a single tableView the number of unprocessed shards for the specified table.CountCustom

Data volume

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_currentReadTimestampMsTimestamp of the latest data record that has been readView the timestamp of the latest binlog data.msCustom
flink_taskmanager_job_task_operator_numSnapshotRecordsNumber of records that have been processed in the snapshot phaseView the data volume that has been processed in the snapshot phase.CountCustom
flink_taskmanager_job_task_operator_cdcns_schema_table_numRecordsInNumber of records that have been read for each tableView the total data volume that has been processed for each table.CountCustom
flink_taskmanager_job_task_operator_cdcns_schema_table_numSnapshotRecordsNumber of records that have been processed for each table in the snapshot phaseView the data volume that has been processed for each table in the snapshot phase.CountCustom

Incremental phase DML and DDL

MetricDescriptionDetailsUnitType
flink_taskmanager_job_task_operator_cdcns_schema_table_numInsertDMLRecordsNumber of INSERT DML statements processed for each table in the incremental phaseView the data volume of INSERT statements for each table.CountCustom
flink_taskmanager_job_task_operator_cdcns_schema_table_numUpdateDMLRecordsNumber of UPDATE DML statements processed for each table in the incremental phaseView the data volume of UPDATE statements for each table.CountCustom
flink_taskmanager_job_task_operator_cdcns_schema_table_numDeleteDMLRecordsNumber of DELETE DML statements processed for each table in the incremental phaseView the data volume of DELETE statements for each table.CountCustom
flink_taskmanager_job_task_operator_cdcns_schema_table_numDDLRecordsNumber of DDL statements processed for each table in the incremental phaseView the data volume of DDL statements for each table.CountCustom
flink_taskmanager_job_task_operator_numInsertDMLRecordsNumber of INSERT DML statements processed in the incremental phaseView the data volume of INSERT statements.CountCustom
flink_taskmanager_job_task_operator_numUpdateDMLRecordsNumber of UPDATE DML statements processed in the incremental phaseView the data volume of UPDATE statements.CountCustom
flink_taskmanager_job_task_operator_numDeleteDMLRecordsNumber of DELETE DML statements processed in the incremental phaseView the data volume of DELETE statements.CountCustom
flink_taskmanager_job_task_operator_numDDLRecordsNumber of DDL statements processed in the incremental phaseView the data volume of DDL statements.CountCustom

JobManager JVM and system resources

CPU

MetricDescriptionDetailsUnitType
flink_jobmanager_Status_JVM_CPU_LoadLoad of a single JobManager CPUIf this value stays above 100% for a long time, the CPU is busy and the load is high. This may affect system performance and cause the system to stutter or the response time to become excessively long.N/ABasic
flink_jobmanager_Status_ProcessTree_CPU_UsageCPU utilization of a single JobManager CPUThis value reflects how much CPU time Flink occupies. The value is 100% when 1 CPU core is fully used and 400% when 4 CPU cores are fully used. If this value stays above 100% for a long time, the CPU is very busy. If the load is high but the CPU utilization is low, frequent read and write operations may have left too many processes in an uninterruptible sleep state.N/ABasic

Memory

MetricDescriptionDetailsUnitType
flink_jobmanager_Status_JVM_Memory_Heap_UsedHeap memory of the JobManagerN/ABytesBasic
flink_jobmanager_Status_JVM_Memory_Heap_CommittedHeap memory committed by the JobManagerN/ABytesBasic
flink_jobmanager_Status_JVM_Memory_Heap_MaxMaximum heap memory of the JobManagerN/ABytesBasic
flink_jobmanager_Status_JVM_Memory_NonHeap_UsedNon-heap memory of the JobManagerN/ABytesBasic
flink_jobmanager_Status_JVM_Memory_NonHeap_CommittedNon-heap memory committed by the JobManagerN/ABytesBasic
flink_jobmanager_Status_JVM_Memory_NonHeap_MaxMaximum non-heap memory of the JobManagerN/ABytesBasic

Threads

MetricDescriptionDetailsUnitType
flink_jobmanager_Status_JVM_Threads_CountNumber of JobManager threadsToo many JobManager threads occupy excessive memory space and reduce job stability.CountBasic

Garbage collection

The G1 garbage collector metrics in the following table are custom metrics. The other JobManager garbage collection metrics are basic metrics.

MetricDescriptionDetailsUnitType
flink_jobmanager_Status_JVM_GarbageCollector_ParNew_CountNumber of JobManager GCsToo many GCs occupy excessive memory space and affect job performance. This metric helps you diagnose jobs and troubleshoot job-level failures.CountBasic
flink_jobmanager_Status_JVM_GarbageCollector_G1_Young_Generation_CountNumber of JobManager young generation GCs (G1 garbage collector)N/ACountCustom
flink_jobmanager_Status_JVM_GarbageCollector_G1_Old_Generation_CountNumber of JobManager old generation GCs (G1 garbage collector)N/ACountCustom
flink_jobmanager_Status_JVM_GarbageCollector_G1_Young_Generation_TimeJobManager young generation GC time (G1 garbage collector)N/AmsCustom
flink_jobmanager_Status_JVM_GarbageCollector_G1_Old_Generation_TimeJobManager old generation GC time (G1 garbage collector)N/AmsCustom
flink_jobmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_CountNumber of collections performed by the JobManager CMS garbage collectorN/ACountBasic
flink_jobmanager_Status_JVM_GarbageCollector_ParNew_TimeDuration of each JobManager GCLong GCs occupy excessive memory space and affect job performance. This metric helps you diagnose jobs and troubleshoot job-level failures.msBasic
flink_jobmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_TimeTime consumed by collections performed by the JobManager CMS garbage collectorN/AmsBasic

Class loading

MetricDescriptionDetailsUnitType
flink_jobmanager_Status_JVM_ClassLoader_ClassesLoadedTotal number of classes loaded after the JVM that hosts the JobManager is createdIf the total number of classes loaded after the JVM that hosts the JobManager is created is too large, excessive memory space is occupied and job performance is affected.N/ABasic
flink_jobmanager_Status_JVM_ClassLoader_ClassesUnloadedTotal number of classes unloaded after the JVM that hosts the JobManager is createdIf the total number of classes unloaded after the JVM that hosts the JobManager is created is too large, excessive memory space is occupied and job performance is affected.N/ABasic

TaskManager JVM and system resources

CPU

MetricDescriptionDetailsUnitType
flink_taskmanager_Status_JVM_CPU_LoadLoad of a single TaskManager CPUThe sum of the processes that the CPU is handling and the processes waiting for the CPU over a period of time, which is generally understood as how busy the CPU is. How busy the CPU is depends on the number of CPU cores. In Flink, the CPU load value is CPU Usage / Number of CPU cores. If flink_taskmanager_Status_JVM_CPU_Load is greater than the CPU load value, CPU processing may be blocked.N/ABasic
flink_taskmanager_Status_ProcessTree_CPU_UsageCPU utilization of a single TaskManager CPUThis value reflects how much CPU time Flink occupies. The value is 100% when 1 CPU core is fully used and 400% when 4 CPU cores are fully used. If this value stays above 100% for a long time, the CPU is very busy. If the load is high but the CPU utilization is low, frequent read and write operations may have left too many processes in an uninterruptible sleep state.N/ABasic

Memory

MetricDescriptionDetailsUnitType
flink_taskmanager_Status_JVM_Memory_Heap_UsedHeap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_JVM_Memory_Heap_CommittedCommitted heap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_JVM_Memory_Heap_MaxMaximum heap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_JVM_Memory_NonHeap_UsedNon-heap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_JVM_Memory_NonHeap_CommittedCommitted non-heap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_JVM_Memory_NonHeap_MaxMaximum non-heap memory of the TaskManagerN/ABytesBasic
flink_taskmanager_Status_ProcessTree_Memory_RSSMemory of the entire process obtained through LinuxView changes in the process memory.BytesBasic

Threads

MetricDescriptionDetailsUnitType
flink_taskmanager_Status_JVM_Threads_CountNumber of TaskManager threadsToo many TaskManager threads occupy excessive memory and reduce job stability.CountBasic

Garbage collection

The G1 garbage collector metrics in the following table are custom metrics. The other TaskManager garbage collection metrics are basic metrics.

MetricDescriptionDetailsUnitType
flink_taskmanager_Status_JVM_GarbageCollector_ParNew_CountNumber of TaskManager GCsToo many GCs occupy excessive memory space and affect job performance. This metric helps you diagnose jobs and troubleshoot task-level failures.CountBasic
flink_taskmanager_Status_JVM_GarbageCollector_G1_Young_Generation_CountNumber of TaskManager young generation GCs (G1 garbage collector)N/ACountCustom
flink_taskmanager_Status_JVM_GarbageCollector_G1_Old_Generation_CountNumber of TaskManager old generation GCs (G1 garbage collector)N/ACountCustom
flink_taskmanager_Status_JVM_GarbageCollector_G1_Young_Generation_TimeTaskManager young generation GC time (G1 garbage collector)N/AmsCustom
flink_taskmanager_Status_JVM_GarbageCollector_G1_Old_Generation_TimeTaskManager old generation GC time (G1 garbage collector)N/AmsCustom
flink_taskmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_CountNumber of collections performed by the TaskManager CMS garbage collectorN/ACountBasic
flink_taskmanager_Status_JVM_GarbageCollector_ParNew_TimeDuration of each TaskManager GCLong GCs occupy excessive memory space and affect job performance. This metric helps you diagnose jobs and troubleshoot task-level failures.msBasic
flink_taskmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_TimeTime consumed by collections performed by the TaskManager CMS garbage collectorN/AmsBasic

Class loading

MetricDescriptionDetailsUnitType
flink_taskmanager_Status_JVM_ClassLoader_ClassesLoadedTotal number of classes loaded after the JVM that hosts the TaskManager is createdIf the total number of classes loaded after the JVM that hosts the TaskManager is created is too large, excessive memory space is occupied and job performance is affected.N/ABasic
flink_taskmanager_Status_JVM_ClassLoader_ClassesUnloadedTotal number of classes unloaded after the JVM that hosts the TaskManager is createdIf the total number of classes unloaded after the JVM that hosts the TaskManager is created is too large, excessive memory space is occupied and job performance is affected.N/ABasic

Common metric labels

Flink metrics commonly carry the following labels. Use them to filter and aggregate metric data by project, deployment, or job.

LabelDescription
vvpNamespaceThe namespace of the project.
deploymentNameThe name of the deployment.
deploymentIdThe ID of the deployment.
jobIdThe ID of the job.

References

The following topics cover related metric sets and metric management options.