xkite-core
Version:
Core library for xkite application
628 lines (588 loc) • 24.8 kB
YAML
lowercaseOutputName: true
lowercaseOutputLabelNames: true
whitelistObjectNames:
- java.lang:*
- kafka.cluster:*
- kafka.controller:*
- kafka.log:*
- kafka.server:type=KafkaServer,name=BrokerState
- kafka.server:type=KafkaRequestHandlerPool,*
- kafka.server:type=BrokerTopicMetrics,*
- kafka.server:type=FetcherLagMetrics,*
- kafka.server:type=FetcherStats,*
- kafka.server:type=Request,*
- kafka.server:type=Fetch,*
- kafka.server:type=Produce,*
- kafka.server:type=ReplicaManager,*
- kafka.server:type=ReplicaFetcherManager,*
- kafka.server:type=SessionExpireListener,*
- kafka.server:type=controller-channel-metrics,*
- kafka.server:type=socket-server-metrics,*
- kafka.network:type=RequestChannel,*
- kafka.network:type=Processor,*
- kafka.network:type=SocketServer,*
- kafka.network:type=RequestMetrics,*
- kafka.coordinator.group:*
- java.lang:type=ClassLoading,*
- java.lang:type=Compilation,*
- java.lang:type=MemoryManager,*
- kafka.utils:*
- kafka.controller:type=ControllerChannelManager,name=QueueSize,*
- kafka.log:type=Log,name=LogEndOffset,*
- kafka.log:type=Log,name=LogStartOffset,*
- kafka.cluster:type=Partition,name=InSyncReplicasCount,*
- kafka.cluster:type=Partition,name=LastStableOffsetLag,*
- kafka.cluster:type=Partition,name=ReplicasCounts,*
- kafka.cluster:type=Partition,name=UnderReplicated,*
- kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,*
- kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,*
- kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,*
- kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,*
- kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec,*
rules:
# Special cases and very specific rules
- pattern : kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
name: kafka_server_$1_$2
type: GAUGE
labels:
clientId: "$3"
topic: "$4"
partition: "$5"
- pattern : kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
name: kafka_server_$1_$2
type: GAUGE
labels:
clientId: "$3"
broker: "$4:$5"
- pattern : kafka.coordinator.(\w+)<type=(.+), name=(.+)><>Value
name: kafka_coordinator_$1_$2_$3
type: GAUGE
# Generic per-second counters with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+)><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
- pattern: kafka.server<type=(.+), client-id=(.+)><>([a-z-]+)
name: kafka_server_quota_$3
type: GAUGE
labels:
resource: "$1"
clientId: "$2"
- pattern: kafka.server<type=(.+), user=(.+), client-id=(.+)><>([a-z-]+)
name: kafka_server_quota_$4
type: GAUGE
labels:
resource: "$1"
user: "$2"
clientId: "$3"
# Generic gauges with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
# Emulate Prometheus 'Summary' metrics for the exported 'Histogram's.
#
# Note that these are missing the '_sum' metric!
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
"$6": "$7"
quantile: "0.$8"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
quantile: "0.$6"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
quantile: "0.$4"
# Generic gauges for MeanRate Percent
# Ex) kafka.server<type=KafkaRequestHandlerPool, name=RequestHandlerAvgIdlePercent><>MeanRate
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>MeanRate
name: kafka_$1_$2_$3_percent
type: GAUGE
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>Value
name: kafka_$1_$2_$3_percent
type: GAUGE
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*, (.+)=(.+)><>Value
name: kafka_$1_$2_$3_percent
type: GAUGE
labels:
"$4": "$5"
# replicated Zookeeper
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+)><>(\\w+)"
name: "zookeeper_$2"
type: GAUGE
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+)><>(\\w+)"
name: "zookeeper_$3"
type: GAUGE
labels:
replicaId: "$2"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(Packets\\w+)"
name: "zookeeper_$4"
type: COUNTER
labels:
replicaId: "$2"
memberType: "$3"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(\\w+)"
name: "zookeeper_$4"
type: GAUGE
labels:
replicaId: "$2"
memberType: "$3"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+), name3=(\\w+)><>(\\w+)"
name: "zookeeper_$4_$5"
type: GAUGE
labels:
replicaId: "$2"
memberType: "$3"
# standalone Zookeeper
- pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+)><>(\\w+)"
type: GAUGE
name: "zookeeper_$2"
- pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+), name1=InMemoryDataTree><>(\\w+)"
type: GAUGE
name: "zookeeper_$2"
# java
#-------------------------------------------------------------------------------------------------------
# KafkaServers : State of broker server
#
# - BrokerState
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=KafkaServer, name=BrokerState><>Value
name: kafka_server_brokerstate
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Partition : Number of partitions for each broker
# - InSyncReplicasCount
# - LastStableOffsetLag
# - ReplicasCount
# - UnderReplicated
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.cluster<type=Partition, name=([^,]+), topic=([^,]+), partition=([^,]+)><>Value
name: kafka_cluster_partition_$1
labels:
topic: $2
partition: $3
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaController :
#
# - ActiveControllerCount, OfflinePartitionsCount, PreferredReplicaImbalanceCount
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.controller<type=KafkaController, name=([^,]+)><>Value
name: kafka_controller_$1
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# ControllerStats : The event that is currently being processed by the elected broker controller.
#
# - LeaderElectionRateAndtimeMs, UncleanLeaderElectionsPerSec, AutoLeaderBalanceRateAndTimeMs, ManualLeaderBalanceRateAndTimeMs
# - ControllerChangeRateAndTimeMs,
# - TopicChangeRateAndTimeMs, TopicDeletionRateAndTimeMs, PartitionReassignmentRateAndTimeMs
# - IsrChangeRateAndTimeMs
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.controller<type=ControllerStats, name=([^,]+)><>(OneMinuteRate|Mean|75thPercentile|99thPercentile)
name: kafka_controller_stats_$1
labels:
aggregate: $2
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Coordinator : GroupMetadataManager
#
# - NumGroups, NumOffsets
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.coordinator.group<type=GroupMetadataManager, name=([^,]+)><>(Value)
name: kafka_coordinator_group_metadata_manager_$1
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Logs :
#
# - LogEndOffset, LogStartOffset, NumLogSegments, Size
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.log<type=Log, name=([^,]+), topic=([^,]+), partition=([^,]+)><>Value
name: kafka_log_$1
labels:
topic: $2
partition: $3
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# LogCleaner :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.log<type=LogCleaner, name=cleaner-recopy-percent><>(Value)
name: kafka_log_cleaner_recopy_percent
labels:
service: kafka-broker
env: cluster-demo
- pattern: kafka.log<type=LogCleaner, name=max-clean-time-secs><>(Value)
name: kafka_log_cleaner_max_clean_time_secs
labels:
service: kafka-broker
env: cluster-demo
- pattern: kafka.log<type=LogCleaner, name=max-buffer-utilization-percent><>(Value)
name: kafka_log_cleaner_max_buffer_utilization_percent
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# LogCleanerManager :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.log<type=LogCleanerManager, name=max-dirty-percent><>(Value)
name: kafka_log_cleaner_manager_max_dirty_percent
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# LogFlushStats :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.log<type=LogFlushStats, name=LogFlushRateAndTimeMs><>(\w+)
name: kafka_log_flush_stats_rate_and_time_ms
labels:
aggregate: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaRequestHandlerPool : Latency
#
# - KafkaRequestHandlerPool
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=KafkaRequestHandlerPool, name=RequestHandlerAvgIdlePercent><>(\w+)
name: kafka_server_request_handler_avg_idle_percent
labels:
aggregate: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Network Socket Server : Latency
#
# - NetworkProcessorAvgIdlePercent
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.network<type=SocketServer, name=NetworkProcessorAvgIdlePercent><>(Value)
name: kafka_network_socket_server_processor_avg_idle_percent
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Network Processor : Latency
#
# - IdlePercent
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.network<type=Processor, name=IdlePercent, networkProcessor=([0-9]+)><>(Value)
name: kafka_network_processor_idle_percent
labels:
processor: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Network KafkaRequestChannel :
#
# - RequestQueueSize, ResponseQueueSize
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.network<type=RequestChannel, name=(\w+)QueueSize><>Value
name: kafka_network_request_channel_queue_size
labels:
queue: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Network KafkaRequest :
#
# - RequestPerSec,
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.network<type=RequestMetrics, name=RequestsPerSec, request=(\w+), version=([0-9]+)><>(OneMinuteRate|Mean)
name: kafka_network_request_per_sec
labels:
request: $1
version: $2
aggregate: $3
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Network KafkaRequestMetrics :
#
# - LocalTimeMs, RemoteTimeMs,
# - RequestQueueTimeMs,
# - ResponseQueueTimeMs, ResponseSendTimeMs
# - ThrottleTimeMs
# - TotalTimeMs
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.network<type=RequestMetrics, name=(\w+)TimeMs, request=(Produce|Fetch|FetchConsumer|FetchFollower)><>(OneMinuteRate|Mean|75thPercentile|99thPercentile)
name: kafka_network_request_metrics_time_ms
labels:
scope: $1
request: $2
aggregate: $3
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer / BrokerTopicMetrics - I/O metrics :
#
# - BytesInPerSec, BytesOutPerSec, BytesRejectedPerSec,
# - FailedFetchRequestsPerSec, FailedProduceRequestsPerSec,MessagesInPerSec,
# - TotalFetchRequestPerSec, TotalProduceRequestPerSec, ReplicationBytesInPerSec, ReplicationBytesOutPerSec
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=BrokerTopicMetrics, name=(BytesInPerSec|BytesOutPerSec|MessagesInPerSec|ReplicationBytesOutPerSec|ReplicationBytesInPerSec)><>(OneMinute)Rate
name: kafka_server_broker_topic_metrics_$1_rate
labels:
aggregate: $2
service: kafka-broker
env: cluster-demo
- pattern: kafka.server<type=BrokerTopicMetrics, name=(BytesInPerSec|BytesOutPerSec|MessagesInPerSec|ReplicationBytesOutPerSec|ReplicationBytesInPerSec), topic=([^,]+)><>(OneMinute)Rate
name: kafka_server_broker_topic_metrics_$1_rate
labels:
topic: $2
aggregate: $3
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer / DelayedFetchMetrics :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=DelayedFetchMetrics, name=ExpiresPerSec, fetcherType=([^,]+)><>([^,]+)Rate
name: kafka_server_delayed_fetch_expires_per_sec
labels:
fetcher_type: $1
aggregate: $2
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer / DelayedOperationPurgatory :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=DelayedOperationPurgatory, name=([^,]+), delayedOperation=([^,]+)><>Value
name: kafka_server_delayed_operation_purgatory_$1
labels:
operation: $2
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# FetcherLagMetrics : Lag in number of messages per follower replica
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=FetcherLagMetrics, name=([^,]+), clientId=([^,]+), topic=([^,]+), partition=([^,]+)><>Value
name: kafka_server_fetcher_lag_$1
labels:
client_id: $2
topic: $3
partition: $4
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# FetcherStats : Replica Fetcher Thread stats
# - BytesPerSec / RequestsPerSec
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=FetcherStats, name=([^,]+), clientId=([^,]+), brokerHost=([^,]+), brokerPort=([^,]+)><>([^,]+)Rate
name: kafka_server_fetcher_stats_$1
labels:
client_id: $2
broker_host: $3
broker_port: $4
aggregate: $5
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer Request :
# - request-time - Tracking request-time per user/client-id
# - throttle-time - Tracking average throttle-time per user/client-id
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=Request, client-id=([^,]+)><>(request-time|throttle-time)
name: kafka_server_request_$2
labels:
client_id: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer Fetcher/Producer :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=Fetch, client-id=([^,]+)><>(byte-rate|throttle-time)
name: kafka_server_fetch_client_$2
labels:
client_id: $1
service: kafka-broker
env: cluster-demo
- pattern: kafka.server<type=Produce, client-id=([^,]+)><>(byte-rate|throttle-time)
name: kafka_server_produce_client_$2
labels:
client_id: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# ReplicaManager :
# - IsrExpandsPerSec, IsrShrinksPerSec, FailedIsrUpdatesPerSec
# - LeaderCount, PartitionCount, UnderReplicatedPartitions)
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=ReplicaManager, name=([^,]+)><>([^,]+)Rate
name: kafka_server_replica_manager_$1
labels:
aggregate: $2
service: kafka-broker
env: cluster-demo
- pattern: kafka.server<type=ReplicaManager, name=([^,]+)><>(Value)
name: kafka_server_replica_manager_$1
labels:
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# ReplicaFetcherManager :
# - MaxLag, MinFetchRate
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=ReplicaFetcherManager, name=([^,]+), clientId=([^,]+)><>(Value)
name: kafka_server_replica_fetcher_manager_$1_value
labels:
client_id: $2
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# Zookeeper / SessionExpireListener :
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=SessionExpireListener, name=([^,]+)><>([^,]+)Rate
name: kafka_zookeeper_session_expire_listener_$1
labels:
aggregate: $2
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# ControllerChannelMetrics:
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=controller-channel-metrics, broker-id=([^,]+)><>(\w*)
name: kafka_server_controller_channel_metrics_$2
labels:
broker_id: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
# KafkaServer / Socket Server Metrics
#-------------------------------------------------------------------------------------------------------
- pattern: kafka.server<type=socket-server-metrics, networkProcessor=([^,]+)><>(\w*)
name: kafka_server_socket_server_metrics_$2
labels:
network_processor: $1
service: kafka-broker
env: cluster-demo
#-------------------------------------------------------------------------------------------------------
#
# Broker / JVM
#-------------------------------------------------------------------------------------------------------
# JVM GarbageCollector
#
- pattern: 'java.lang<type=GarbageCollector, name=(.*)><>CollectionCount'
name: kafka_jvm_gc_collection_count
labels:
name: $1
service: kafka-broker
env: cluster-demo
- pattern: 'java.lang<type=GarbageCollector, name=(.*)><>CollectionTime'
name: kafka_jvm_gc_collection_time
labels:
name: $1
service: kafka-broker
env: cluster-demo
- pattern: java.lang<type=GarbageCollector,name=(.*)><LastGcInfo, duration>
name: kafka_jvm_last_gc_duration
labels:
name: $1
service: kafka-broker
env: cluster-demo
attrNameSnakeCase: true
- pattern: 'java.lang<type=GarbageCollector, name=([^,]+), key=(.*)><LastGcInfo, memoryUsage(\w+)Gc>(\w+)'
name: kafka_jvm_last_gc_memory_usage_$4
labels:
name: $1
space: $2
type: $4
service: kafka-broker
env: cluster-demo
attrNameSnakeCase: true
# JVM Memory
- pattern: java.lang<type=Memory><HeapMemoryUsage>(\w*)
name: kafka_jvm_heap_usage
labels:
type: $1
service: kafka-broker
env: cluster-demo
attrNameSnakeCase: true
- pattern: java.lang<type=Memory><NonHeapMemoryUsage>(\w*)
name: kafka_jvm_non_heap_usage
labels:
type: $1
service: kafka-broker
env: cluster-demo
attrNameSnakeCase: true
- pattern: 'java.lang<type=MemoryPool, name=(.*)><CollectionUsage>(\w*)'
name: kafka_jvm_memory_pool_collection_usage
labels:
name: $1
type: $2
service: kafka-broker
env: cluster-demo
- pattern: 'java.lang<type=MemoryPool, name=(.*)><Usage>(\w*)'
name: kafka_jvm_memory_pool_usage
labels:
name: $1
type: $2
service: kafka-broker
env: cluster-demo
- pattern: 'java.lang<type=MemoryPool, name=(.*)><PeakUsage>(\w*)'
name: kafka_jvm_memory_pool_peak_usage
labels:
name: $1
type: $2
service: kafka-broker
env: cluster-demo
# JVM Thread
- pattern: java.lang<type=Threading><>(\w*thread_count)
name: kafka_jvm_$1
labels:
service: kafka-broker
env: cluster-demo
attrNameSnakeCase: true
# Operating System
- pattern: java.lang<type=OperatingSystem><>(\w*)
name: kafka_jvm_os_$1
labels:
service: kafka-broker
env: cluster-demo