Ejemplo n.º 1
0
        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');
            }
        }
Ejemplo n.º 2
0
            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');
                }
            }
Ejemplo n.º 3
0
            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');
                }
            }