下载

下载 jmx_exporter:https://github.com/prometheus/jmx_exporter

配置jmx_exporter

vim /usr/local/jmx_exporter/simple-config.yml

---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true

在应用程序启动命令中添加配置

-javaagent:/usr/local/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/usr/local/jmx_exporter/simple-config.yml

配置prometheus

- job_name: 'java'
scrape_interval: 30s
static_configs:
- targets: ['192.168.1.110:3010']

导入grafana模板

导入模板id:8563

配置rules告警规则

groups:
- name: jmx_rules
rules:
- alert: JvmMemoryFillingUp
expr: (sum by (instance)(jvm_memory_bytes_used{area="heap"}) / sum by (instance)(jvm_memory_bytes_max{area="heap"})) * 100 > 80
for: 2m
labels:
severity: warning
annotations:
summary: JVM memory filling up (instance {{ $labels.instance }})
description: "JVM memory is filling up (> 80%)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"