示例#1
0
        private void SnapshotMetrics(MetricsSourceAdapter sa, MetricsBufferBuilder bufferBuilder
                                     )
        {
            long startTime = Time.Now();

            bufferBuilder.Add(sa.Name(), sa.GetMetrics(collector, true));
            collector.Clear();
            snapshotStat.Add(Time.Now() - startTime);
            Log.Debug("Snapshotted source " + sa.Name());
        }
示例#2
0
 public virtual MetricsBuffer SampleMetrics()
 {
     lock (this)
     {
         collector.Clear();
         MetricsBufferBuilder bufferBuilder = new MetricsBufferBuilder();
         foreach (KeyValuePair <string, MetricsSourceAdapter> entry in sources)
         {
             if (sourceFilter == null || sourceFilter.Accepts(entry.Key))
             {
                 SnapshotMetrics(entry.Value, bufferBuilder);
             }
         }
         if (publishSelfMetrics)
         {
             SnapshotMetrics(sysSource, bufferBuilder);
         }
         MetricsBuffer buffer = bufferBuilder.Get();
         return(buffer);
     }
 }