# 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"