
instances:
#    -   host: localhost
#        port: 9999
#        name: jmx_instance
#        user: username
#        password: password
#        #java_bin_path: /path/to/java #Optional, should be set if the agent cannot find your java executable
#        #trust_store_path: /path/to/trustStore.jks # Optional, should be set if ssl is enabled
#        #trust_store_password: password
#        dimensions:
#             env: stage
#             newTag: test



init_config:
    is_jmx: true

    # Metrics collected by this check. You should not have to modify this.
    conf:
        #
        # Aggregate cluster stats
        #
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsBytesOutPerSec"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.net.bytes_out
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsBytesInPerSec"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.net.bytes_in
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsMessagesInPerSec"'
            attribute:
                MeanRate:
                    metric_type: gauge
                    alias: kafka.messages_in

        #
        # Request timings
        #
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsFailedFetchRequestsPerSec"'
            attribute:
                MeanRate:
                    metric_type: gauge
                    alias: kafka.request.fetch.failed
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsFailedProduceRequestsPerSec"'
            attribute:
                MeanRate:
                    metric_type: gauge
                    alias: kafka.request.produce.failed
        - include:
            domain: '"kafka.network"'
            bean: '"kafka.network":type="RequestMetrics",name="Produce-TotalTimeMs"'
            attribute:
                Mean:
                    metric_type: counter
                    alias: kafka.request.produce.time.avg
                99thPercentile:
                    metric_type: counter
                    alias: kafka.request.produce.time.99percentile
        - include:
            domain: '"kafka.network"'
            bean: '"kafka.network":type="RequestMetrics",name="Fetch-TotalTimeMs"'
            attribute:
                Mean:
                    metric_type: counter
                    alias: kafka.request.fetch.time.avg
                99thPercentile:
                    metric_type: counter
                    alias: kafka.request.fetch.time.99percentile
        - include:
            domain: '"kafka.network"'
            bean: '"kafka.network":type="RequestMetrics",name="UpdateMetadata-TotalTimeMs"'
            attribute:
                Mean:
                    metric_type: counter
                    alias: kafka.request.update_metadata.time.avg
                99thPercentile:
                    metric_type: counter
                    alias: kafka.request.update_metadata.time.99percentile
        - include:
            domain: '"kafka.network"'
            bean: '"kafka.network":type="RequestMetrics",name="Metadata-TotalTimeMs"'
            attribute:
                Mean:
                    metric_type: counter
                    alias: kafka.request.metadata.time.avg
                99thPercentile:
                    metric_type: counter
                    alias: kafka.request.metadata.time.99percentile
        - include:
            domain: '"kafka.network"'
            bean: '"kafka.network":type="RequestMetrics",name="Offsets-TotalTimeMs"'
            attribute:
                Mean:
                    metric_type: counter
                    alias: kafka.request.offsets.time.avg
                99thPercentile:
                    metric_type: counter
                    alias: kafka.request.offsets.time.99percentile

        #
        # Replication stats
        #
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="ReplicaManager",name="ISRShrinksPerSec"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.replication.isr_shrinks
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="ReplicaManager",name="ISRExpandsPerSec"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.replication.isr_expands
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="ControllerStats",name="LeaderElectionRateAndTimeMs"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.replication.leader_elections
        - include:
            domain: '"kafka.server"'
            bean: '"kafka.server":type="ControllerStats",name="UncleanLeaderElectionsPerSec"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.replication.unclean_leader_elections

        #
        # Log flush stats
        #
        - include:
            domain: '"kafka.log"'
            bean: '"kafka.log":type="LogFlushStats",name="LogFlushRateAndTimeMs"'
            attribute:
                MeanRate:
                    metric_type: counter
                    alias: kafka.log.flush_rate
