示例#1
0
 private void ConfigureSinks()
 {
     lock (this)
     {
         sinkConfigs = config.GetInstanceConfigs(SinkKey);
         int confPeriod = 0;
         foreach (KeyValuePair <string, MetricsConfig> entry in sinkConfigs)
         {
             MetricsConfig conf       = entry.Value;
             int           sinkPeriod = conf.GetInt(PeriodKey, PeriodDefault);
             confPeriod = confPeriod == 0 ? sinkPeriod : ArithmeticUtils.Gcd(confPeriod, sinkPeriod
                                                                             );
             string clsName = conf.GetClassName(string.Empty);
             if (clsName == null)
             {
                 continue;
             }
             // sink can be registered later on
             string sinkName = entry.Key;
             try
             {
                 MetricsSinkAdapter sa = NewSink(sinkName, conf.GetString(DescKey, sinkName), conf
                                                 );
                 sa.Start();
                 sinks[sinkName] = sa;
             }
             catch (Exception e)
             {
                 Log.Warn("Error creating sink '" + sinkName + "'", e);
             }
         }
         period = confPeriod > 0 ? confPeriod : config.GetInt(PeriodKey, PeriodDefault);
     }
 }
示例#2
0
 internal static MetricsSinkAdapter NewSink(string name, string desc, MetricsSink
                                            sink, MetricsConfig conf)
 {
     return(new MetricsSinkAdapter(name, desc, sink, conf.GetString(ContextKey), conf.
                                   GetFilter(SourceFilterKey), conf.GetFilter(RecordFilterKey), conf.GetFilter(MetricFilterKey
                                                                                                               ), conf.GetInt(PeriodKey, PeriodDefault), conf.GetInt(QueueCapacityKey, QueueCapacityDefault
                                                                                                                                                                     ), conf.GetInt(RetryDelayKey, RetryDelayDefault), conf.GetFloat(RetryBackoffKey,
                                                                                                                                                                                                                                     RetryBackoffDefault), conf.GetInt(RetryCountKey, RetryCountDefault)));
 }