# This is the monitoring configuration for Apache Kafka 0.8.2 and later.
# Look for KAFKA_HOST and KAFKA_PORT to adjust your configuration file.
LoadPlugin java
JVMARG "-Djava.class.path=/opt/stackdriver/collectd/share/collectd/java/collectd-api.jar:/opt/stackdriver/collectd/share/collectd/java/generic-jmx.jar"
LoadPlugin "org.collectd.java.GenericJMX"
ObjectName "kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs"
Type "counter"
InstancePrefix "log-LogFlushes"
Table false
Attribute "Count"
ObjectName "kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec"
Type "counter"
InstancePrefix "server_broker_topics-AllTopicsBytesIn"
Table false
Attribute "Count"
ObjectName "kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec"
Type "counter"
InstancePrefix "server_broker_topics-AllTopicsFailedFetchRequests"
Table false
Attribute "Count"
ObjectName "kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec"
Type "counter"
InstancePrefix "server_broker_topics-AllTopicsFailedProduceRequests"
Table false
Attribute "Count"
ObjectName "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec"
Type "counter"
InstancePrefix "server_broker_topics-AllTopicsMessagesIn"
Table false
Attribute "Count"
ObjectName "kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec"
Type "counter"
InstancePrefix "server_broker_topics-AllTopicsBytesOut"
Table false
Attribute "Count"
ObjectName "kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions"
Type "gauge"
InstancePrefix "server_replica_manager-UnderReplicatedPartitions"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ReplicaManager,name=PartitionCount"
Type "gauge"
InstancePrefix "server_replica_manager-PartitionCount"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ReplicaManager,name=LeaderCount"
Type "gauge"
InstancePrefix "server_replica_manager-LeaderCount"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ReplicaManager,name=IsrShrinksPerSec"
Type "counter"
InstancePrefix "server_replica_manager-ISRShrinks"
Table false
Attribute "Count"
ObjectName "kafka.server:type=ReplicaManager,name=IsrExpandsPerSec"
Type "counter"
InstancePrefix "server_replica_manager-ISRExpands"
Table false
Attribute "Count"
ObjectName "kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica"
Type "gauge"
InstancePrefix "server_replica_fetcher-MaxLag"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ReplicaFetcherManager,name=MinFetchRate,clientId=Replica"
Type "gauge"
InstancePrefix "server_replica_fetcher-MinFetchRate"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ProducerRequestPurgatory,name=NumDelayedRequests"
Type "gauge"
InstancePrefix "server_purgatory-Producer-NumDelayedRequests"
Table false
Attribute "Value"
ObjectName "kafka.server:type=ProducerRequestPurgatory,name=PurgatorySize"
Type "gauge"
InstancePrefix "server_purgatory-Producer-PurgatorySize"
Table false
Attribute "Value"
ObjectName "kafka.server:type=FetchRequestPurgatory,name=NumDelayedRequests"
Type "gauge"
InstancePrefix "server_purgatory-Fetch-NumDelayedRequests"
Table false
Attribute "Value"
ObjectName "kafka.server:type=FetchRequestPurgatory,name=PurgatorySize"
Type "gauge"
InstancePrefix "server_purgatory-Fetch-PurgatorySize"
Table false
Attribute "Value"
ObjectName "kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce"
Type "counter"
InstancePrefix "network-ProduceRequests"
Table false
Attribute "Count"
ObjectName "kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchFollower"
Type "counter"
InstancePrefix "network-FetchFollowerRequests"
Table false
Attribute "Count"
ObjectName "kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchConsumer"
Type "counter"
InstancePrefix "network-FetchConsumerRequests"
Table false
Attribute "Count"
ObjectName "kafka.controller:type=KafkaController,name=ActiveControllerCount"
Type "gauge"
InstancePrefix "controller_kafka-ActiveControllerCount"
Table false
Attribute "Value"
ObjectName "kafka.controller:type=KafkaController,name=OfflinePartitionsCount"
Type "gauge"
InstancePrefix "controller_kafka-OfflinePartitionsCount"
Table false
Attribute "Value"
ObjectName "kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs"
Type "counter"
InstancePrefix "controller-LeaderElections"
Table false
Attribute "Count"
ObjectName "kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec"
Type "counter"
InstancePrefix "controller-UncleanLeaderElections"
Table false
Attribute "Count"
# When using non-standard Kafka configurations, replace the below with
#ServiceURL "service:jmx:rmi:///jndi/rmi://KAFKA_HOST:KAFKA_PORT/jmxrmi"
ServiceURL "service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi"
InstancePrefix "kafka"
Collect "kafka_log-LogFlushStats_LogFlush"
Collect "kafka_server-BrokerTopicMetrics_AllTopicsBytesIn"
Collect "kafka_server-BrokerTopicMetrics_AllTopicsFailedFetchRequests"
Collect "kafka_server-BrokerTopicMetrics_AllTopicsFailedProduceRequests"
Collect "kafka_server-BrokerTopicMetrics_AllTopicsMessagesIn"
Collect "kafka_server-BrokerTopicMetrics_AllTopicsBytesOut"
Collect "kafka_server-ReplicaManager_UnderReplicatedPartitions"
Collect "kafka_server-ReplicaManager_PartitionCount"
Collect "kafka_server-ReplicaManager_LeaderCount"
Collect "kafka_server-ReplicaManager_ISRShrinks"
Collect "kafka_server-ReplicaManager_ISRExpands"
Collect "kafka_server-ReplicaFetcherManager_MaxLag"
Collect "kafka_server-ReplicaFetcherManager_MinFetchRate"
Collect "kafka_server-ProducerRequestPurgatory_NumDelayedRequests"
Collect "kafka_server-ProducerRequestPurgatory_PurgatorySize"
Collect "kafka_server-FetchRequestPurgatory_NumDelayedRequests"
Collect "kafka_server-FetchRequestPurgatory_PurgatorySize"
Collect "kafka_network-RequestMetrics_ProduceRequests"
Collect "kafka_network-RequestMetrics_FetchFollowerRequests"
Collect "kafka_network-RequestMetrics_FetchConsumerRequests"
Collect "kafka_controller-KafkaController_ActiveControllerCount"
Collect "kafka_controller-KafkaController_OfflinePartitionsCount"
Collect "kafka_controller-ControllerStats_LeaderElections"
Collect "kafka_controller-ControllerStats_UncleanLeaderElections"
ObjectName "java.lang:type=Threading"
Type "gauge"
InstancePrefix "threading-daemon_thread_count"
Table false
Attribute "DaemonThreadCount"
Type "gauge"
InstancePrefix "threading-thread_count"
Table false
Attribute "ThreadCount"
Type "gauge"
InstancePrefix "threading-peak_thread_count"
Table false
Attribute "PeakThreadCount"
ObjectName "java.lang:type=Memory"
Type "memory"
InstancePrefix "memory-heap_usage_committed"
Table false
Attribute "HeapMemoryUsage.committed"
Type "memory"
InstancePrefix "memory-non_heap_usage_committed"
Table false
Attribute "NonHeapMemoryUsage.committed"
Type "memory"
InstancePrefix "memory-heap_usage_used"
Table false
Attribute "HeapMemoryUsage.used"
Type "memory"
InstancePrefix "memory-non_heap_usage_used"
Table false
Attribute "NonHeapMemoryUsage.used"
Type "memory"
InstancePrefix "memory-heap_usage_max"
Table false
Attribute "HeapMemoryUsage.max"
Type "memory"
InstancePrefix "memory-non_heap_usage_max"
Table false
Attribute "NonHeapMemoryUsage.max"
ObjectName "java.lang:type=Runtime"
Type "counter"
InstancePrefix "runtime-uptime"
Table false
Attribute "Uptime"
ObjectName "java.lang:type=OperatingSystem"
Type "gauge"
InstancePrefix "os-open_fd_count"
Table false
Attribute "OpenFileDescriptorCount"
Type "counter"
InstancePrefix "os-process_cpu_time"
Table false
Attribute "ProcessCpuTime"
ObjectName "java.lang:type=GarbageCollector,name=*"
InstanceFrom "name"
Type "counter"
InstancePrefix "gc-collection_count"
Table false
Attribute "CollectionCount"
Type "counter"
InstancePrefix "gc-collection_time"
Table false
Attribute "CollectionTime"
# When using non-standard Kafka configurations, replace the below with
#ServiceURL "service:jmx:rmi:///jndi/rmi://KAFKA_HOST:KAFKA_PORT/jmxrmi"
ServiceURL "service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi"
InstancePrefix "jvm"
Collect "jvm_localhost_Threading"
Collect "jvm_localhost_Memory"
Collect "jvm_localhost_Runtime"
Collect "jvm_localhost_os"
Collect "jvm_localhost_gc"
LoadPlugin match_regex
LoadPlugin target_set
LoadPlugin target_replace
Plugin "^GenericJMX$"
PluginInstance "^kafka.*$"
PluginInstance "kafka" ""
Plugin "kafka"
Target "return"
Chain "GenericJMX_kafka"
PreCacheChain "PreCache"
Plugin "^GenericJMX$"
PluginInstance "^jvm.*$"
PluginInstance "jvm" ""
Plugin "jvm"
Target "return"
Chain "GenericJMX_jvm"
PreCacheChain "PreCache"