Skip to content

Commit e3706dc

Browse files
author
Dean Ward
committed
Fix up tag value transformer
1 parent 8530b2f commit e3706dc

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

src/StackExchange.Metrics/MetricSourceOptions.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System;
33
using System.Collections.Generic;
44
using System.Collections.Immutable;
5+
using System.Text.RegularExpressions;
56

67
namespace StackExchange.Metrics
78
{
@@ -10,9 +11,20 @@ namespace StackExchange.Metrics
1011
/// </summary>
1112
public class MetricSourceOptions : IOptions<MetricSourceOptions>
1213
{
14+
15+
private static string SanitizeTag(string value)
16+
{
17+
if (string.IsNullOrEmpty(value)) return value;
18+
return s_tagValueSanitizer.Replace(value, "").ToLowerInvariant();
19+
}
20+
private static readonly Regex s_tagValueSanitizer = new Regex(@"[^-\w./]", RegexOptions.Compiled);
1321
private static readonly NameTransformerDelegate s_defaultMetricNameTransformer = NameTransformers.Combine(NameTransformers.CamelToLowerSnakeCase, NameTransformers.Sanitize);
1422
private static readonly NameTransformerDelegate s_defaultTagNameTransformer = NameTransformers.Combine(NameTransformers.CamelToLowerSnakeCase, NameTransformers.Sanitize);
15-
private static readonly TagValueTransformerDelegate s_defaultTagValueTransformer = (_, value) => value.ToString().ToLowerInvariant();
23+
private static readonly TagValueTransformerDelegate s_defaultTagValueTransformer = (_, value) =>
24+
{
25+
if (value == null) return null;
26+
return s_tagValueSanitizer.Replace(value.ToString(), "").ToLowerInvariant();
27+
};
1628
private static readonly ValidationDelegate s_defaultMetricNameValidator = MetricValidation.IsValidMetricName;
1729
private static readonly ValidationDelegate s_defaultTagNameValidator = MetricValidation.IsValidTagName;
1830
private static readonly ValidationDelegate s_defaultTagValueValidator = MetricValidation.IsValidTagValue;

0 commit comments

Comments
 (0)