public void WriteTo(TextWriter tw) { tw.Write("# TYPE "); tw.Write(this.Name); tw.Write(' '); tw.Write(this.typeName); tw.Write('\n'); tw.Write(this.Name); tw.Write(' '); tw.Write(this.Value); tw.Write('\n'); foreach (var item in this.instances) { tw.Write(this.Name); tw.Write("{i=\""); tw.Write(Metrics.EscapeInstanceName(item.Key)); tw.Write("\"} "); tw.Write(item.Value); tw.Write('\n'); } }
public void WriteTo(TextWriter tw, string instance) { var now = DateTime.UtcNow; double count; double sum; var values = new List <(double quantile, double value)>(this.objectives.Count); lock (this._bufLock) { lock (this._lock) { // Swap bufs even if hotBuf is empty to set new hotBufExpTime. this.SwapBufs(now); this.FlushColdBuf(); count = this.count; sum = this.sum; for (var i = 0; i < this.sortedObjectives.Length; i++) { var quantile = this.sortedObjectives[i]; var value = this.headStream.Count == 0 ? double.NaN : this.headStream.Query(quantile); values.Add((quantile, value)); } } } // write the sum tw.Write(this.parentName); if (instance == null) { tw.Write("_sum "); } else { tw.Write("_sum{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\"} "); } tw.Write(sum); tw.Write('\n'); // write the count tw.Write(this.parentName); if (instance == null) { tw.Write("_count "); } else { tw.Write("_count{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\"} "); } tw.Write(count); tw.Write('\n'); // write the quantiles for this instance for (var i = 0; i < values.Count; i++) { tw.Write(this.parentName); if (instance == null) { tw.Write("{"); } else { tw.Write("{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write(","); } tw.Write("quantile=\""); tw.Write(values[i].quantile); tw.Write("\"} "); tw.Write(values[i].value); tw.Write('\n'); } }
internal void WriteTo(TextWriter tw, string metric, string instance) { if (instance == null) { tw.Write(metric); tw.Write("_sum "); tw.Write(this.sum.Value); tw.Write('\n'); tw.Write(metric); tw.Write("_count "); tw.Write(this.count.Value); tw.Write('\n'); for (var i = 0; i < this.bucketIntervals.Length; i++) { tw.Write(metric); tw.Write("_bucket{le=\""); tw.Write(this.bucketIntervals[i]); tw.Write("\"} "); tw.Write(this.values[i].Value); tw.Write('\n'); } tw.Write(metric); tw.Write("_bucket{le=\"+Inf\"} "); tw.Write(this.values[this.bucketIntervals.Length].Value); tw.Write('\n'); } else { tw.Write(metric); tw.Write("_sum{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\"} "); tw.Write(this.sum.Value); tw.Write('\n'); tw.Write(metric); tw.Write("_count{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\"} "); tw.Write(this.count.Value); tw.Write('\n'); for (var i = 0; i < this.bucketIntervals.Length; i++) { tw.Write(metric); tw.Write("_bucket{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\",le=\""); tw.Write(this.bucketIntervals[i]); tw.Write("\"} "); tw.Write(this.values[i].Value); tw.Write('\n'); } tw.Write(metric); tw.Write("_bucket{i=\""); tw.Write(Metrics.EscapeInstanceName(instance)); tw.Write("\",le=\"+Inf\"} "); tw.Write(this.values[this.bucketIntervals.Length].Value); tw.Write('\n'); } }