/// <inheritdoc />
        public string Serialize(StatsDPoint point, MetricsStatsDOptions options)
        {
            var builder = new StringBuilder();

            builder.Append(point.Name);
            builder.Append(":");
            builder.Append(StatsDSyntax.FormatValue(point.Value, point.MetricType));
            builder.Append("|");
            builder.Append(point.MetricType);

            if (point.SampleRate.HasValue && point.SampleRate < 1.0)
            {
                builder.Append("|@");
                builder.Append(point.SampleRate.Value.ToString("0.###############", NumberFormatInfo.InvariantInfo));
            }

            if (point.Tags != null && point.Tags.Count > 0)
            {
                builder.Append('|');
                builder.Append(options.TagMarker);
                builder.Append(string.Join(",", point.Tags.Select(tag => $"{tag.Key}:{tag.Value}")));
            }

            return(builder.ToString());
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public string Serialize(StatsDPoint point, MetricsStatsDOptions options)
        {
            var builder = new StringBuilder();

            builder.Append(point.Name);
            builder.Append(":");
            builder.Append(StatsDSyntax.FormatValue(point.Value, point.MetricType));
            builder.Append("|");
            builder.Append(point.MetricType);

            if (point.SampleRate.HasValue && point.SampleRate < 1.0)
            {
                builder.Append("|@");
                builder.Append(point.SampleRate.Value.ToString("0.###############"));
            }

            var tags = new List <string>();

            if (point.Tags != null && point.Tags.Count > 0)
            {
                tags.AddRange(point.Tags.Select(tag => $"{tag.Key}:{tag.Value}"));
            }

            tags.Add($"{StatsDFormatterConstants.TimestampTagName}:{StatsDSyntax.FormatTimestamp(point.UtcTimestamp)}");

            builder.Append('|');
            builder.Append(options.TagMarker);
            builder.Append(string.Join(",", tags));

            return(builder.ToString());
        }
Ejemplo n.º 3
0
        public void Can_format_payload_correctly()
        {
            // Arrange
            var timestamp = new DateTime(2017, 1, 1, 1, 1, 1, DateTimeKind.Utc);
            var point     = new StatsDPoint("name.key", "value", "c", 0.1, null, new DefaultDogStatsDMetricStringSerializer(), timestamp);

            // Act
            var result = point.Write(_options);

            // Assert
            result.Should().Be("name.key:0|c|@0.1|#timestamp:1483232461");
        }
Ejemplo n.º 4
0
        public void Bad_parameters_should_throws(string name, object value, string metricType, DateTimeKind dateTimeKind, string message)
        {
            // Arrange
            var    tags      = new Dictionary <string, string>();
            var    timestamp = new DateTime(2017, 1, 1, 1, 1, 1, dateTimeKind);
            Action action    = () =>
            {
                // Act
                var point = new StatsDPoint(name, value, metricType, null, tags, new DefaultStatsDMetricStringSerializer(), timestamp);
            };

            // Assert
            action.Should().Throw <ArgumentException>().Where(e => e.Message.StartsWith(message));
        }
        /// <inheritdoc />
        public string Serialize(StatsDPoint point, MetricsStatsDOptions options)
        {
            var builder = new StringBuilder();

            builder.Append(point.Name);
            builder.Append(":");
            builder.Append(StatsDSyntax.FormatValue(point.Value, point.MetricType));
            builder.Append("|");
            builder.Append(point.MetricType);

            if (point.SampleRate.HasValue && point.SampleRate < 1.0)
            {
                builder.Append("|@");
                builder.Append(point.SampleRate.Value.ToString("0.###############", NumberFormatInfo.InvariantInfo));
            }
            return(builder.ToString());
        }