예제 #1
0
        private IReadOnlyDictionary <string, string> ValidateDefaultTags(IReadOnlyDictionary <string, string> tags)
        {
            var defaultTags       = tags?.ToImmutableDictionary() ?? ImmutableDictionary <string, string> .Empty;
            var defaultTagBuilder = defaultTags.ToBuilder();

            foreach (var key in defaultTags.Keys.ToArray())
            {
                if (!MetricValidation.IsValidTagName(key))
                {
                    throw new Exception($"\"{key}\" is not a valid tag name.");
                }

                if (TagValueConverter != null)
                {
                    defaultTagBuilder[key] = TagValueConverter(key, defaultTags[key]);
                }

                if (!MetricValidation.IsValidTagValue(defaultTags[key]))
                {
                    throw new Exception($"\"{defaultTags[key]}\" is not a valid tag value.");
                }
            }

            return(defaultTagBuilder.ToImmutable());
        }
예제 #2
0
        ReadOnlyDictionary <string, string> ValidateDefaultTags(Dictionary <string, string> tags)
        {
            var defaultTags = tags == null
                ? new Dictionary <string, string>()
                : new Dictionary <string, string>(tags);

            foreach (var key in defaultTags.Keys.ToArray())
            {
                if (!MetricValidation.IsValidTagName(key))
                {
                    throw new Exception($"\"{key}\" is not a valid tag name.");
                }

                if (TagValueConverter != null)
                {
                    defaultTags[key] = TagValueConverter(key, defaultTags[key]);
                }

                if (!MetricValidation.IsValidTagValue(defaultTags[key]))
                {
                    throw new Exception($"\"{defaultTags[key]}\" is not a valid tag value.");
                }
            }

            return(new ReadOnlyDictionary <string, string>(defaultTags));
        }