/// <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()); }
/// <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()); }
/// <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()); }