3

对于prometheus-net,没有一个示例特别清楚给定 Metric 的实例是否是线程安全的:

即在随机控制器方法中,我应该这样做:

static readonly Histogram xyzMetric = Metrics.CreateHistogram(...)

还是我总是创建一个本地实例并管理它而不跨线程共享它的预期用途?

考虑到所涉及的配置 DSLery 的不同数量,我相信答案是肯定的(因为它适用于 Java 客户端)......我说的对吗?

4

1 回答 1

2

截至 2019 年 1 月 30 日https://github.com/prometheus-net/prometheus-net#best-practices-and-usage指出

该库是线程安全的

但是,有一些元素,例如直方图,由于收集指标的方式无法保证,然后为抓取而呈现,这可能会产生非常小的故障,例如 https://中所述github.com/prometheus-net/prometheus-net/blob/master/Prometheus.NetStandard/Histogram.cs#L10

/// The histogram is thread-safe but not atomic - the sum of values and total count of events
/// may not add up perfectly with bucket contents if new observations are made during a collection.
于 2020-03-19T10:06:37.727 回答