https://prometheus.io/
grafana.com/
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>io.github.mweirauch</groupId>
<artifactId>micrometer-jvm-extras</artifactId>
<version>0.1.4</version>
</dependency>
management.metrics.tags.application=${spring.application.name}
package com.example.demo;
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.binder.MeterBinder;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component
public class DomeMetrics implements MeterBinder {
public Counter counter1;
public Map<String,Integer> map;
DomeMetrics(){
map = new HashMap<>();
}
@Override
public void bindTo(MeterRegistry meterRegistry) {
this.counter1 = Counter.builder("c.d.counter").tags(new String[]{"name","counter1"}).description("sdf").register(meterRegistry);
Gauge.builder("charles.demo.gauge",map,x->x.get("x")).tags("name","gauge1").description("this is Gauge").register(meterRegistry);
}
}
localhost:8080/actuator
localhost:8080/actuator/metrics
localhost:8080/actuator/metrics/tomcat.global.request.max
prometheus的配置
job_name:
/metrics 默认的 localhost:8080/actuator/metrics