prometheus

164 阅读1分钟


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