public virtual MetricsRecordImpl GetRecord()
 {
     if (acceptable && (recordFilter == null || recordFilter.Accepts(tags)))
     {
         return(new MetricsRecordImpl(recInfo, timestamp, Tags(), Metrics()));
     }
     return(null);
 }
Пример #2
0
        private static void ShouldAcceptImpl(bool expectAcceptList, SubsetConfiguration conf
                                             , IList <MetricsTag> tags, bool[] expectedAcceptedSpec)
        {
            MetricsFilter globFilter  = NewGlobFilter(conf);
            MetricsFilter regexFilter = NewRegexFilter(conf);

            // Test acceptance of the tag list:
            Assert.Equal("accepts " + tags, expectAcceptList, globFilter.Accepts
                             (tags));
            Assert.Equal("accepts " + tags, expectAcceptList, regexFilter.
                         Accepts(tags));
            // Test results on each of the individual tags:
            int acceptedCount = 0;

            for (int i = 0; i < tags.Count; i++)
            {
                MetricsTag tag      = tags[i];
                bool       actGlob  = globFilter.Accepts(tag);
                bool       actRegex = regexFilter.Accepts(tag);
                Assert.Equal("accepts " + tag, expectedAcceptedSpec[i], actGlob
                             );
                // Both the filters should give the same result:
                Assert.Equal(actGlob, actRegex);
                if (actGlob)
                {
                    acceptedCount++;
                }
            }
            if (expectAcceptList)
            {
                // At least one individual tag should be accepted:
                Assert.True("No tag of the following accepted: " + tags, acceptedCount
                            > 0);
            }
            else
            {
                // At least one individual tag should be rejected:
                Assert.True("No tag of the following rejected: " + tags, acceptedCount
                            < tags.Count);
            }
        }
Пример #3
0
        public virtual MetricsRecordBuilderImpl AddRecord(MetricsInfo info)
        {
            bool acceptable             = recordFilter == null || recordFilter.Accepts(info.Name());
            MetricsRecordBuilderImpl rb = new MetricsRecordBuilderImpl(this, info, recordFilter
                                                                       , metricFilter, acceptable);

            if (acceptable)
            {
                rbs.AddItem(rb);
            }
            return(rb);
        }
 public override MetricsRecordBuilder AddCounter(MetricsInfo info, int value)
 {
     if (acceptable && (metricFilter == null || metricFilter.Accepts(info.Name())))
     {
         metrics.AddItem(new MetricCounterInt(info, value));
     }
     return(this);
 }
Пример #5
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);
     }
 }