Micrometer Humio
Humio 是一款具有内置仪表板功能的维度时间序列 SaaS 服务。
1. 安装 micrometer-registry-humio
建议使用 Micrometer(或您使用的框架,如果有)提供的 BOM,您可以在此处查看如何配置 here。以下示例假设您正在使用 BOM。
1.1. Gradle
在 配置 BOM 之后,添加以下依赖:
implementation 'io.micrometer:micrometer-registry-humio'
备注
此依赖项不需要指定版本,因为其版本由 BOM 定义。
1.2. Maven
在 配置 完 BOM 之后,添加以下依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-humio</artifactId>
</dependency>
备注
由于该依赖项的版本由 BOM 定义,因此不需要指定版本。
2. 配置
以下示例配置了一个 Humio 实例:
HumioConfig humioConfig = new HumioConfig() {
@Override
public String apiToken() {
return MY_TOKEN;
}
@Override
@Nullable
public String get(String k) {
return null;
}
};
MeterRegistry registry = new HumioMeterRegistry(humioConfig, Clock.SYSTEM);
HumioConfig
是一个包含一组默认方法的接口。如果在 get(String k)
的实现中,你将其绑定到一个属性源而不是返回 null
,那么你可以覆盖默认配置。例如,Micrometer 的 Spring Boot 支持会将前缀为 management.metrics.export.humio
的属性直接绑定到 HumioConfig
上:
management.metrics.export.humio:
api-token: YOURKEY
# You will probably want disable Humio publishing in a local development profile.
enabled: true
# The interval at which metrics are sent to Humio. The default is 1 minute.
step: 1m
# The cluster Micrometer will send metrics to. The default is "https://cloud.humio.com"
uri: https://myhumiohost
3. 图表绘制
本节将快速介绍如何在 Humio 中渲染来自 Micrometer 的有用指标表示。
3.1. 定时器
Timer
的 Humio 实现在 Humio 中生成了四个字段:
-
count
:每秒总时间的速率。 -
sum
:每秒调用次数的速率。 -
max
:显示记录的最大值的滑动窗口。 -
avg
:仅针对这组标签值的不可聚合的平均值。
以下查询构建了一个可按维度聚合的每个 URI 的平均延迟:
name = http_server_requests
| timechart(uri, function=max(avg))
图 1. 模拟服务上的计时器。