public TMetric RemoveLabelled(TLabels labels) { if (_labelledMetrics == null) { throw new InvalidOperationException("Metric family does not have any labels"); } var key = LabelsHelper.GetHashCode(labels); _labelledMetrics.TryRemove(key, out var removed); return(removed); }
public TMetric WithLabels(TLabels labels) { if (_labelledMetrics == null) { throw new InvalidOperationException("Metric family does not have any labels"); } var key = LabelsHelper.GetHashCode(labels); if (_labelledMetrics.TryGetValue(key, out var metric)) { return(metric); } metric = CreateLabelled(LabelsHelper.ToArray(labels)); return(_labelledMetrics.GetOrAdd(key, metric)); }
TMetric IMetricFamily <TMetric> .RemoveLabelled(params string[] labels) { if (_labelledMetrics == null) { throw new InvalidOperationException("Metric family does not have any labels"); } if (labels.Length != _configuration.LabelNames.Count) { throw new ArgumentException("Wrong number of labels"); } var key = LabelsHelper.GetHashCode(labels); _labelledMetrics.TryRemove(key, out var removed); return(removed); }
TMetric IMetricFamily <TMetric> .WithLabels(params string[] labels) { if (_labelledMetrics == null) { throw new InvalidOperationException("Metric family does not have any labels"); } if (labels.Length != _configuration.LabelNames.Count) { throw new ArgumentException("Wrong number of labels"); } var key = LabelsHelper.GetHashCode(labels); if (_labelledMetrics.TryGetValue(key, out var metric)) { return(metric); } metric = CreateLabelled(labels); return(_labelledMetrics.GetOrAdd(key, metric)); }