Exemple #1
0
 /// <summary>Retrieves all the records managed by this MetricsContext.</summary>
 /// <remarks>
 /// Retrieves all the records managed by this MetricsContext.
 /// Useful for monitoring systems that are polling-based.
 /// </remarks>
 /// <returns>A non-null collection of all monitoring records.</returns>
 public override IDictionary <string, ICollection <OutputRecord> > GetAllRecords()
 {
     lock (this)
     {
         IDictionary <string, ICollection <OutputRecord> > @out = new SortedDictionary <string
                                                                                        , ICollection <OutputRecord> >();
         foreach (KeyValuePair <string, AbstractMetricsContext.RecordMap> recordEntry in bufferedData)
         {
             AbstractMetricsContext.RecordMap recordMap = recordEntry.Value;
             lock (recordMap)
             {
                 IList <OutputRecord> records = new AList <OutputRecord>();
                 ICollection <KeyValuePair <AbstractMetricsContext.TagMap, AbstractMetricsContext.MetricMap
                                            > > entrySet = recordMap;
                 foreach (KeyValuePair <AbstractMetricsContext.TagMap, AbstractMetricsContext.MetricMap
                                        > entry in entrySet)
                 {
                     OutputRecord outRec = new OutputRecord(entry.Key, entry.Value);
                     records.AddItem(outRec);
                 }
                 @out[recordEntry.Key] = records;
             }
         }
         return(@out);
     }
 }
        public virtual void TestCopy()
        {
            AbstractMetricsContext.TagMap tags = new AbstractMetricsContext.TagMap();
            tags["tagkey"] = "tagval";
            AbstractMetricsContext.MetricMap metrics = new AbstractMetricsContext.MetricMap();
            metrics["metrickey"] = 123.4;
            OutputRecord r = new OutputRecord(tags, metrics);

            Assert.Equal(tags, r.GetTagsCopy());
            NUnit.Framework.Assert.AreNotSame(tags, r.GetTagsCopy());
            Assert.Equal(metrics, r.GetMetricsCopy());
            NUnit.Framework.Assert.AreNotSame(metrics, r.GetMetricsCopy());
        }
Exemple #3
0
 protected internal override void EmitRecord(string contextName, string recordName
                                             , OutputRecord outRec)
 {
     foreach (MetricsContext ctxt in subctxt)
     {
         try
         {
             ((AbstractMetricsContext)ctxt).EmitRecord(contextName, recordName, outRec);
             if (contextName == null || recordName == null || outRec == null)
             {
                 throw new IOException(contextName + ":" + recordName + ":" + outRec);
             }
         }
         catch (IOException e)
         {
             Log.Warn("emitRecord failed: " + ctxt.GetContextName(), e);
         }
     }
 }
Exemple #4
0
 /// <summary>Emits the records.</summary>
 /// <exception cref="System.IO.IOException"/>
 private void EmitRecords()
 {
     lock (this)
     {
         foreach (KeyValuePair <string, AbstractMetricsContext.RecordMap> recordEntry in bufferedData)
         {
             AbstractMetricsContext.RecordMap recordMap = recordEntry.Value;
             lock (recordMap)
             {
                 ICollection <KeyValuePair <AbstractMetricsContext.TagMap, AbstractMetricsContext.MetricMap
                                            > > entrySet = recordMap;
                 foreach (KeyValuePair <AbstractMetricsContext.TagMap, AbstractMetricsContext.MetricMap
                                        > entry in entrySet)
                 {
                     OutputRecord outRec = new OutputRecord(entry.Key, entry.Value);
                     EmitRecord(contextName, recordEntry.Key, outRec);
                 }
             }
         }
         Flush();
     }
 }
Exemple #5
0
 protected internal override void EmitRecord(string contextName, string recordName
                                             , OutputRecord outRec)
 {
 }
Exemple #6
0
 /// <summary>Sends a record to the metrics system.</summary>
 /// <exception cref="System.IO.IOException"/>
 protected internal abstract void EmitRecord(string contextName, string recordName
                                             , OutputRecord outRec);