public override string ToString()

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