我在springboot 2中使用Actuator来暴露/执行/ prometheus端点,prometheus实例将从中获取指标。
Everithing的工作非常完美,只是因为我需要调整指标名称。我的意思不是后缀(_count,_total,_bucket,...)对Prometheus有意义,但是类似:
http_server_requests_seconds_count - > http_server_requests_count http_server_requests_seconds_max - > latency_seconds_max http_server_requests_seconds_sum - > latency_seconds_sum http_server_requests_seconds_bucket - > latency_seconds_bucket
有没有更好的方法呢?
P.S。
我知道我可以使用
management.metrics.web.server.requests-metric-name=different
获取
different_seconds_count
different_seconds_max
different_seconds_sum
different_seconds_bucket
但很难:
1º删除_seconds后缀
2º仅为其中一个使用不同的基本名称
我猜我可以编写另一个PrometheusRenameFilter
,但不知道如何将其配置为默认注册表。
答案 0 :(得分:1)
现在我知道如何自定义全局注册表:
e.g。设置自定义仪表过滤器:
@Configuration
public class MetricsConfig {
@Bean
MeterRegistryCustomizer<MeterRegistry> metricsConfig() {
return registry -> registry.config().meterFilter(new CustomRenameFilter());
}
}
但是,在注册表中设置自定义重命名筛选器只允许重命名基本指标名称。 它不作用于后缀,也不允许对属于例如集合的特定度量采取行动。由摘要生成。
使用自定义NamingConvention
我可以为约定基本名称添加后缀...我甚至可以更改现有的后缀或替换约定基本名称。
最后请注意,直方图prometheus度量标准类型需要创建
<basename>_bucket
<basename>_sum
<basename>_count
使用这些特定名称,因此以我想要的方式调整组件可能是不正确的,因为这将是一个不同的组件。
答案 1 :(得分:1)
您可以覆盖此方法并更新命名约定:
df = pd.DataFrame([[('2000-09-29 22:00:00'), 78.48659257615778],
[('2000-09-29 23:00:00'), 79.46896724006444],
[('2000-09-30 00:00:00'), 79.74108445117001],
[('2000-09-30 01:00:00'), 79.59727418822389],
[('2000-09-30 02:00:00'), 79.73048396364723],
[('2000-09-30 03:00:00'), 79.09930124357557],
[('2000-09-30 04:00:00'), 78.28903340851555],
[('2000-09-30 05:00:00'), 78.12229420958224],
[('2000-09-30 06:00:00'), 78.89923606080113],
[('2000-09-30 07:00:00'), 78.9620439478767],
[('2000-09-30 08:00:00'), 78.92566676678388],
[('2000-09-30 09:00:00'), 61.74819886499889],
[('2000-09-30 10:00:00'), 35.235524848405]])
df.columns = ['DATE', 'V1']
plt.plot(pd.to_datetime(df['DATE']), df['V1'], marker='.', markersize=8)
plt.show()