prometheus JVM監控

不会游泳的鱼丶發表於2024-05-10

prometheus JVM監控

為了使用Prometheus監控JVM,你需要一個能夠採集JVM指標的工具,比如jmx_exporter。以下是如何設定jmx_exporter以監控JVM的步驟:

下載並執行jmx_exporter:
bash
wget "https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar"
java -javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8080:config.yaml -jar your-application.jar
這裡8080是jmx_exporter監聽的埠,而config.yaml是配置檔案,你需要根據你的JVM版本和監控需求編寫這個檔案。

編寫config.yaml以配置你想要的JMX指標。例子如下:
yaml
lowercaseOutputName: true
rules:
  - pattern: 'Catalina<type=(\w+), name=(\w+)><>(\w+):'
    name: tomcat_$3_$2
    labels:
      server: "$1"
      name: "$2"
  - pattern: 'java.lang<type=Memory><>(\w+):'
    name: java_lang_memory_$1
  - pattern: 'java.lang<type=GarbageCollector, name=(\w+), error=(\w+)><>CollectionCount:'
    name: java_lang_garbagecollector_$1_collection_count
    labels:
      error: "$2"
配置Prometheus來抓取jmx_exporter的指標:
在Prometheus的配置檔案prometheus.yml中新增一個新的job配置:

yaml
scrape_configs:
  - job_name: 'jvm-application'
    static_configs:
      - targets: ['localhost:8080']
這裡jvm-application是你給這個job起的名字,localhost:8080是jmx_exporter執行的地址和埠。

重啟Prometheus使配置生效。
現在,你的JVM應用程式的JVM指標應該可以在Prometheus中查詢和監控了。

相關文章