有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将测微计度量实现为动态映射

我有一个用例,我们希望捕获特定类别数据的指标。类别中的不同条目是动态的,不能硬编码。我们如何用千分尺来定义这样的指标?我曾使用过DistributionSummary、Gauge等工具,但它只对一个指标进行测量

这个例子是这样的:假设有一个课程网站(比如Udemy,Coursera),我们可以在其中监控哪个人参加课程的详细信息。桌子是这样的:

| Name    | Country    | Course   | Duration | Active |
| ABC     | USA        | AWS 101  | 1.5      | true   |
| XYZ     | IND        | JPN 101  | 0.5      | false  |

我想绘制一个衡量每个国家活跃人数的指标,在CloudWatch或任何其他服务上显示。比如:

Map<String,AtomicInteger> numberOfActiveUsersPerCountry;
....
....
public void incrementActiveUsersPerCountry(String country) {
    if(numberOfActiveUsersPerCountry.containsKey(country) {
         //increment existing count
    } else {
         //add the new country
    }

这应该可以通过千分尺和Cloudwatch/ELK等设备访问


共 (1) 个答案

  1. # 1 楼答案

    带有国家标签的counter正是你想要的:

    meterReg.counter("users.active", Tags.of("counter", country)).increment()
    

    计数器可以让你计算出它的增长率和一段时间内的总数。该计数器上的标记表示它按国家创建计数器,以允许对该标记进行聚合/查询