Skip to content

Instantly share code, notes, and snippets.

@mcastelino
Created January 31, 2021 20:42
Show Gist options
  • Save mcastelino/1e113c5f09717c96f9cd7389af982eed to your computer and use it in GitHub Desktop.
Save mcastelino/1e113c5f09717c96f9cd7389af982eed to your computer and use it in GitHub Desktop.

Revisions

  1. mcastelino created this gist Jan 31, 2021.
    50 changes: 50 additions & 0 deletions jmx-exporter-kafka.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    # Exporting Memory Metrics using JMX Exporter

    JMX to Prometheus exporter: a collector that can configurably scrape and expose mBeans of a JMX target.
    https://github.com/prometheus/jmx_exporter
    https://github.com/prometheus/jmx_exporter/issues/111#issuecomment-748702189

    https://hub.docker.com/r/solsson/kafka-prometheus-jmx-exporter

    https://www.metricfire.com/blog/kafka-monitoring-using-prometheus/?GAID=2100776980.1612125542#Using-JMX-exporter-to-expose-JMX-metrics


    The default JMX exporter in Kafka does not export critical Java Metrics. Kafka frequently runs into heap related failures it is critical to monitor Java Memory Metrics.

    This snippet shows how to export Java Memory metrics from any Kafka JXM exporter configuration.


    ```
    - pattern: 'java.lang<type=Memory><(\w+)MemoryUsage>(\w+): (\d+)'
    name: jvm_memory_usage_$2_bytes
    labels:
    area: "$1" # Heap/NonHeap
    value: $3
    type: GAUGE
    - pattern: 'java.lang<name=([\s\w]+), type=GarbageCollector, key=(\w+)>(.*): (\d+)'
    name: jvm_gc_$3
    labels:
    name: $1
    key: $2
    value: $4
    type: GAUGE
    - pattern: 'java.lang<name=([\s\w]+), type=MemoryPool, key=(\w+)>(.*): (\d+)'
    name: jvm_mempool_$3
    labels:
    name: $1
    key: $2
    value: $4
    type: GAUGE
    - pattern: 'java.lang<name=([\s\w]+), type=GarbageCollector>(.*): (\d+)'
    name: jvm_gc_$2
    labels:
    name: $1
    value: $3
    type: GAUGE
    - pattern: 'java.lang<name=([\s\w]+), type=MemoryPool>(.*): (\d+)'
    name: jvm_mempool_$2
    labels:
    name: $1
    value: $3
    type: GAUGE
    ```