重拾prometheus
2024-09-08 19:10:42
1、引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
package com.xf.config; import java.time.Duration; import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.core.instrument.distribution.DistributionStatisticConfig;
import lombok.extern.slf4j.Slf4j; @Configuration
@Slf4j
public class MeterService { @Bean
MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> {
registry.config().commonTags("application", "epayapi").meterFilter(new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
if (id.getType() == Meter.Type.TIMER && id.getName().matches("^(http|hystrix){1}.*")) {
return DistributionStatisticConfig.builder().percentilesHistogram(true)
.percentiles(0.5, 0.90, 0.95, 0.99)
.sla(Duration.ofMillis(50).toNanos(), Duration.ofMillis(100).toNanos(),
Duration.ofMillis(200).toNanos(), Duration.ofSeconds(1).toNanos(),
Duration.ofSeconds(5).toNanos())
.minimumExpectedValue(Duration.ofMillis(1).toNanos())
.maximumExpectedValue(Duration.ofSeconds(5).toNanos()).build().merge(config);
} else {
return config;
}
}
});
};
}
}
P90 P50要加上面的代码
2、暴露端点
management:
endpoints:
web:
exposure:
include: prometheus
endpoint:
health:
show-details: always
metrics:
export:
datadog:
application-key: ${spring.application.name}
ps:暴露端点不要写*,不要写*,不要写*
3、prometheus.yml配置
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
metrics_path: /epayapi/actuator/prometheus
scrape_interval: 5s
static_configs:
- targets: ["127.0.0.1:7011"]
4、下载地址整理
prometheus下载: https://prometheus.io/download/
grafana下载:https://grafana.com/get/?tech=target&plcmt=top-nav&cta=A-downloads&tab=self-managed
grafana模板:https://grafana.com/grafana/dashboards/
最新文章
- android创建桌面快捷方式(启动目标非项目的启动页)
- 网站后台调用winform MessageLoopApartment
- Html5实践之EventSource
- Mint Linuxubuntu 字体配置文件
- 全国各城市Uber客服联系方式(电话、邮箱、微博)
- Qt中将QTableView中的数据导出为Excel文件
- GitHub上搭建个人网站
- JAVA中浅复制与深复制 - coolmist - ITeye技术网站
- 在JavaScript中使用json.js:访问JSON编码的某个值
- python正则表达式写[强口令检测]
- oracle EBS SLQ语句
- 一个spring3.2的项目 从jdk1.7放到1.8的环境中编译,打开网页异常:spring jar包版本升级经历
- linux 学习笔记 显示压缩文件 gong.zip 的文件内容
- shell 脚本的编写
- oracle的备份与恢复
- SpringMvc数据校验@Valid等注解的使用与工具类抽取
- Jad查看源码
- mybatis12一级缓存
- freemarker split字符串分割 遍历map
- EasyUI treegrid 加载checked