Ali*_*sam 1 java metrics spring-boot prometheus micrometer
我对 Micrometer 的了解还相当少,所以我将首先介绍我实际上想要实现的目标。
目的
结果示例
我想到了什么
如果我没记错的话,这种方法的问题是必须为过去和未来创建的计数器的数量。
我在想千分尺内是否可以有某种桶支撑,如下所示:
我不确定我是否正在寻找实现这一目标的正确方向。多谢!
检查文档并阅读有关维度和标签的信息:https://micrometer.io/docs/concepts
如果我正确理解您的问题,您需要带有标签(标签)的计数器来显示访问它的月份,这是一个示例:
public class TagsDemo {
private static final SimpleMeterRegistry registry= new SimpleMeterRegistry();
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
Counter accessCounter = Counter.builder("accessed")
.tag("year", getAccessedYear())
.tag("month", getAccessedMonth())
.register(registry);
accessCounter.increment();
}
System.out.println(registry.getMetersAsString());
}
private static String getAccessedYear() {
return "202" + (int)(Math.random() * 2); // 2020, 2021
}
private static String getAccessedMonth() {
return "0" + ((int)(Math.random() * 2) + 1); // 01, 02
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生 4 个时间序列(2020-01、2020-02、2021-01、2021-02):
accessed(COUNTER)[month='01', year='2021']; count=1.0
accessed(COUNTER)[month='02', year='2021']; count=3.0
accessed(COUNTER)[month='01', year='2020']; count=4.0
accessed(COUNTER)[month='02', year='2020']; count=2.0
Run Code Online (Sandbox Code Playgroud)
在你的后端,你可以查询(我编写了一种查询语言,因为我不知道你的注册表):
sum(accessed)sum(accessed WHERE year=2021)sum(accessed WHERE year=2021 AND month=01)当然,您可以只添加一个标签(如.tag("date", getAccessedDate())( 2021-01))并进行查询:sum(accessed WHERE date=2021-01)但这可能会阻止您分别查询年份和月份。
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |