java - 是否应该在每个集合上实例化 Prometheus Java simpleclient Custom Collector 指标?
问题描述
在simpleclient Java README中,示例Collector
如下所示:
class YourCustomCollector extends Collector {
List<MetricFamilySamples> collect() {
List<MetricFamilySamples> mfs = new ArrayList<MetricFamilySamples>();
// With no labels.
mfs.add(new GaugeMetricFamily("my_gauge", "help", 42));
// With labels
GaugeMetricFamily labeledGauge = new GaugeMetricFamily("my_other_gauge", "help", Arrays.asList("labelname"));
labeledGauge.addMetric(Arrays.asList("foo"), 4);
labeledGauge.addMetric(Arrays.asList("bar"), 5);
mfs.add(labeledGauge);
return mfs;
}
}
// Registration
static final YourCustomCollector requests = new YourCustomCollector().register()
必须在每次调用时实例化指标,还是实例化collect
一次然后只调用是否合理?如果不是,这种方法会有什么问题?addMetric
collect
解决方案
是的,MetricFamilies 应该(几乎)总是在每次收集时重新实例化。
将它们实例化一次然后在collect中调用addMetric是否合理?
那不是线程安全的,您还需要做一些事情来跨集合清除它。
推荐阅读
- c# - 在 ASP.Net Core 3.1 API 中记录响应正文
- javascript - 从带有未定义标题的事件中删除连字符 (Fullcalendar)
- javascript - img 元素在 Ionic React 中不起作用
- java - FireBase getUid 在返回值后返回 Null
- python - 绘制跨越子午线和日期变更线的全局轮廓数据
- android - Android:范围存储:getContentResolver().update(...):COLUMN_LAST_MODIFIED:UnsupportedOperationException:不支持更新
- python - 从 DST 感知日期时间对象在 Dataframe 中创建 pandas DatetimeIndex
- mysql - 查询只返回与 where 没有关系的 id
- wordpress - 如何使用 WordPress 在 NextJS 中管理导航菜单
- sql - 如何在结果集中使用 2 个分组列进行 PIVOT?