string IDictionary <string, string> .this[string key] { get => this[key]; set { var transformedName = _options.TagNameTransformer(key); var transformedValue = _options.TagValueTransformer(key, value); this[transformedName] = transformedValue; SyncFrozen(); } }
public void Constructor_CanOverrideDefaultTags() { var options = new MetricSourceOptions(); options.DefaultTags.Clear(); options.DefaultTags[StringTag.Name] = "default_value"; // create a metric and make sure the tags on its readings // do not have the default tag value var source = new MetricSource(options); var metric = CreateTaggedMetric(source, StringTag); UpdateMetric(metric, "value"); var readings = metric.GetReadings(DateTime.UtcNow).ToList(); Assert.NotEmpty(readings); var reading = readings[0]; Assert.Collection( reading.Tags, tag => { var transformedKey = options.TagNameTransformer(StringTag.Name); var transformedValue = options.TagValueTransformer(transformedKey, "value"); Assert.Equal(transformedKey, tag.Key); Assert.Equal(transformedValue, tag.Value); }); }
public void GetReadings_HasDefaultTags() { var options = new MetricSourceOptions { DefaultTags = { ["host"] = Environment.MachineName } }; var source = new MetricSource(options); var metric = CreateMetric(source); UpdateMetric(metric); var readings = metric.GetReadings(DateTime.UtcNow).ToList(); Assert.NotEmpty(readings); var reading = readings[0]; Assert.Collection( reading.Tags, tag => { var transformedKey = options.TagNameTransformer("host"); var transformedValue = options.TagValueTransformer(transformedKey, Environment.MachineName); Assert.Equal(transformedKey, tag.Key); Assert.Equal(transformedValue, tag.Value); }); }