in Amazon.KinesisTap.Core/EMF/MetricScope.cs [80:158]
public override string ToString()
{
using (var sw = new StringWriter())
using (var tw = new JsonTextWriter(sw))
{
tw.WriteStartObject();
tw.WritePropertyName(nameof(Timestamp));
tw.WriteValue(Timestamp);
tw.WritePropertyName(nameof(Version));
tw.WriteValue(Version);
tw.WritePropertyName(nameof(CloudWatchMetrics));
tw.WriteStartArray();
foreach (var m in CloudWatchMetrics)
{
tw.WriteStartObject();
// Namespace
tw.WritePropertyName(nameof(m.Namespace));
tw.WriteValue(m.Namespace);
// Dimensions
tw.WritePropertyName(nameof(m.Dimensions));
tw.WriteStartArray();
foreach (var d in m.Dimensions)
{
tw.WriteStartArray();
foreach (var dv in d)
tw.WriteValue(dv);
tw.WriteEndArray();
}
tw.WriteEndArray();
// Metrics
tw.WritePropertyName(nameof(m.Metrics));
tw.WriteStartArray();
foreach (var d in m.Metrics)
{
tw.WriteStartObject();
tw.WritePropertyName(nameof(d.Name));
tw.WriteValue(d.Name);
tw.WritePropertyName(nameof(d.Unit));
tw.WriteValue(d.Unit);
tw.WriteEndObject();
}
tw.WriteEndArray();
tw.WriteEndObject();
}
tw.WriteEndArray();
foreach (var dim in DimensionValues)
{
tw.WritePropertyName(dim.Key);
tw.WriteValue(dim.Value);
}
foreach (var metric in MetricValues)
{
tw.WritePropertyName(metric.Key);
tw.WriteValue(metric.Value);
}
if (Properties.Count > 0)
{
foreach (var kvp in Properties)
{
tw.WritePropertyName(kvp.Key);
tw.WriteValue(kvp.Value);
}
}
tw.WriteEndObject();
return sw.ToString();
}
}