java - 如何从 spring-boot 千分尺中检索指标
问题描述
我正在使用下面的代码试验千分尺。如何配置速率聚合并从应用程序中的给定计数器获取速率聚合数据。通过速率聚合我的意思是以前发布间隔的数据?
final MeterRegistry myRegistry = new SimpleMeterRegistry();
final Random random = new Random();
for (iteration = 0; iteration < 1000; iteration++)
{
final int randomNum = random.nextInt(10);
final Counter myCounter = myRegistry.counter("myTestCounter", "random", Integer.toString(randomNum));
myCounter.increment();
Thread.sleep(100);
}
System.out.println("measure = [" + myRegistry.counter("myTestCounter", "random", "0").measure());
System.out.println("count = [" + myRegistry.counter("myTestCounter", "random", "0").count());
注意:我不想将指标发布到任何监控系统。我想跟踪应用程序本身中每个间隔给定标签的请求数(例如,给定间隔的成功/失败请求),并将其用于弹性目的。
解决方案
根据项目作者的评论,Micrometer 打算将指标导出到像 Prometheus 这样的外部产品就绪监控系统,所以你的方法有点不寻常。
Micrometer 支持对不支持速率聚合的监控系统(如 InfluxDB)进行速率聚合,其支持来自StepMeterRegistry
. ButSimpleMeterRegistry
不是它的子类之一,因此如果您想坚持这种方法,则需要创建自己的子类。
更新:
推荐阅读
- python - 使用 easyauth 从 azure-appservice 获取范围的访问令牌
- typescript - 如何在 Typescript 中将抽象类类型作为泛型参数传递?
- amazon-web-services - 如何在 AWS 上组织多个项目,每个项目都有不同的 QA 和实时环境?
- makefile - 变量不会在makefile中扩展为patsubst
- python - 使用 selenium 无限页面滚动给了我第一个元素
- c++ - 错误的按钮输出。Ps4 到 Esp32
- kubernetes - 限制一组 pod 的 cpu
- sql - 根据条件计算数据子集的聚合
- python - 如何在字符串的特定位置添加随机生成的字符?
- typeerror - TypeError:未能获取 mern