Micrometer SignalFx
这是一个关于 Micrometer SignalFx 的文档。
DeepSeek V3 中英对照 SignalFx Micrometer SignalFxSignalFx 是一个基于推送模型的维度监控系统 SaaS,拥有完整的用户界面。它提供了一套丰富的警报“检测器”。
1. 安装 micrometer-registry-signalfx
建议使用 Micrometer(或您的框架,如果有的话)提供的 BOM,您可以在此处查看如何配置它此处。以下示例假设您正在使用 BOM。
1.1. Gradle
在 配置 好 BOM 之后,添加以下依赖:
implementation 'io.micrometer:micrometer-registry-signalfx'
此依赖项的版本号不需要指定,因为它由 BOM 定义。
1.2. Maven
在 配置 了 BOM 之后,添加以下依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-signalfx</artifactId>
</dependency>
此依赖项的版本不需要指定,因为它由 BOM 定义。
2. 配置
以下示例配置了 SignalFx:
SignalFxConfig signalFxConfig = new SignalFxConfig() {
@Override
public String accessToken() {
return "MYTOKEN";
}
@Override
public String get(String k) {
return null; // accept the rest of the defaults
}
};
MeterRegistry registry = new SignalFxMeterRegistry(signalFxConfig, Clock.SYSTEM);
在 SignalFx 中有两个不同的 API 密钥来源。
SignalFxConfig
是一个带有一组默认方法的接口。如果在 get(String k)
的实现中,你不返回 null
,而是将其绑定到一个属性源,那么你可以覆盖默认配置。例如,Micrometer 的 Spring Boot 支持将前缀为 management.metrics.export.signalfx
的属性直接绑定到 SignalFxConfig
:
management.metrics.export.signalfx:
access-token: MYTOKEN
# The interval at which metrics are sent to Ganglia. See Duration.parse for the expected format.
# The default is 1 minute.
step: 1m
3. 绘图
本节旨在快速入门如何在 SignalFx 中呈现来自 Micrometer 的指标的有用表示。有关 SignalFx 中可能实现的功能的更完整参考,请参阅 SignalFx 文档。
3.1. 定时器
在每个发布间隔期间,SignalFx 的 Timer
会在 SignalFx 中生成多个时间序列:
-
${name}.avg
:发布间隔的平均延迟。 -
${name}.count
:发布间隔内每秒的吞吐量。 -
${name}.totalTime
:发布间隔内每秒的总时间(与count
一起使用)以创建可聚合的平均值。 -
${name}.percentiles
:Micrometer 计算的发布间隔百分位数。每个百分位数生成一个时间序列,带有一个范围在 [0,1] 的phi
标签。 -
${name}.histogram
:每个 SLO 边界生成一个事件,带有一个le
标签,表示它代表发布间隔内小于或等于 SLO 边界的事件的累积计数。
要在 SignalFx 中生成可聚合的延迟视图,将 totalTime
除以 count
:
这是通过为 ${name}.totalTime
和 ${name}.count
添加信号,添加一个将它们相除的公式,并隐藏公式的输入来实现的。
图 1. 定时器延迟。
要生成吞吐量图表,请使用 ${name}.count
信号:
图 2. 计时器吞吐量。
要生成客户端百分位数的图表,请使用 ${name}.percentiles
信号:
图 3. 定时器百分位数。
请注意,这些百分位数是不可聚合的。您为计时器添加的维度越多,这些值的用处就越小。
最后,如果您使用 Timer
的流式构建器定义了 SLO 边界,您可以通过 ${name}.histogram
信号查看低于特定 SLO 边界的吞吐量。在这个示例中,我们为模拟的 Timer
设置了 SLO 边界,分别为 275 毫秒(绿色)、300 毫秒(蓝色)和 500 毫秒(紫色),该 Timer
记录的样本围绕 250 毫秒呈正态分布。这些计数表示每秒小于或等于每个 SLO 边界的样本速率。
图 4. 计时器 SLO 边界。
在各个线条交汇的点上,很明显没有任何样本超过了 275 毫秒的 SLO 边界。