Ejemplo n.º 1
0
 public static void Init(DiagnosticsConfig config)
 {
     if (config == null)
     {
         return;
     }
     if (config.EventFilters != null)
     {
         foreach (FilterConfig filterConfig in config.EventFilters)
         {
             var filter = ConstructObject(filterConfig.TypeName) as IEventFilter;
             if (filter != null)
             {
                 filter.Init(filterConfig.Props);
                 EventFilters.Add(filter);
             }
         }
     }
     if (config.Writers == null)
     {
         return;
     }
     GroupByField        = config.GroupBy.Trim();
     GroupByFieldDefined = !string.IsNullOrEmpty(GroupByField);
     foreach (WriterConfig writer in config.Writers)
     {
         var eventWriterTriplet = new EventWriterTriplet
         {
             Writer = ConstructObject(writer.TypeName) as IEventWriter
         };
         if (eventWriterTriplet.Writer == null)
         {
             continue;
         }
         eventWriterTriplet.Writer.Init(writer.Props);
         eventWriterTriplet.Formatter = ConstructObject(writer.EventFormatter.TypeName) as IEventFormatter;
         if (eventWriterTriplet.Formatter == null)
         {
             eventWriterTriplet.Formatter = new Default.EventFormatter();
         }
         else
         {
             eventWriterTriplet.Raw = writer.EventFormatter.Raw;
         }
         eventWriterTriplet.Formatter.Init(writer.EventFormatter.Props);
         foreach (FilterConfig filterConfig in writer.EventFilters)
         {
             var filter = ConstructObject(filterConfig.TypeName) as IEventWriterFilter;
             if (filter != null)
             {
                 filter.Init(filterConfig.Props);
                 eventWriterTriplet.Filters.Add(filter);
             }
         }
         s_eventWriterTriplets.Add(eventWriterTriplet);
     }
 }
Ejemplo n.º 2
0
 static bool Validate(DiagnosticsConfig config) =>
 config.IsNotNull() &&
 config.Probes.IsNotNull() &&
 config.Probes.ConsumerUtilizationThreshold > 0 &&
 config.Probes.HighConnectionClosureRateThreshold > 0 &&
 config.Probes.HighConnectionCreationRateThreshold > 0 &&
 config.Probes.MessageRedeliveryThresholdCoefficient > 0 &&
 config.Probes.QueueHighFlowThreshold > 0 &&
 config.Probes.QueueLowFlowThreshold > 0 &&
 config.Probes.SocketUsageThresholdCoefficient > 0 &&
 config.Probes.FileDescriptorUsageThresholdCoefficient > 0 &&
 config.Probes.RuntimeProcessUsageThresholdCoefficient > 0;
Ejemplo n.º 3
0
 public static void Init(DiagnosticsConfig config)
 {
     if (config == null)
         return;
     if (config.EventFilters != null)
     {
         foreach (FilterConfig filterConfig in config.EventFilters)
         {
             var filter = ConstructObject(filterConfig.TypeName) as IEventFilter;
             if (filter != null)
             {
                 filter.Init(filterConfig.Props);
                 EventFilters.Add(filter);
             }
         }
     }
     if (config.Writers == null)
         return;
     GroupByField = config.GroupBy.Trim();
     GroupByFieldDefined = !string.IsNullOrEmpty(GroupByField);
     foreach (WriterConfig writer in config.Writers)
     {
         var eventWriterTriplet = new EventWriterTriplet
                                      {
                                          Writer = ConstructObject(writer.TypeName) as IEventWriter
                                      };
         if (eventWriterTriplet.Writer == null)
             continue;
         eventWriterTriplet.Writer.Init(writer.Props);
         eventWriterTriplet.Formatter = ConstructObject(writer.EventFormatter.TypeName) as IEventFormatter;
         if (eventWriterTriplet.Formatter == null)
         {
             eventWriterTriplet.Formatter = new Default.EventFormatter();
         }
         else
         {
             eventWriterTriplet.Raw = writer.EventFormatter.Raw;
         }
         eventWriterTriplet.Formatter.Init(writer.EventFormatter.Props);
         foreach (FilterConfig filterConfig in writer.EventFilters)
         {
             var filter = ConstructObject(filterConfig.TypeName) as IEventWriterFilter;
             if (filter != null)
             {
                 filter.Init(filterConfig.Props);
                 eventWriterTriplet.Filters.Add(filter);
             }
         }
         s_eventWriterTriplets.Add(eventWriterTriplet);
     }
 }
Ejemplo n.º 4
0
            public void Diagnostics(Action <DiagnosticsConfigurator> configurator)
            {
                if (configurator.IsNull())
                {
                    _diagnosticsSettings = ConfigCache.Default.Diagnostics;
                }

                var impl = new DiagnosticsConfiguratorImpl();

                configurator?.Invoke(impl);

                DiagnosticsConfig config = impl.Settings.Value;

                _diagnosticsSettings = Validate(config) ? config : ConfigCache.Default.Diagnostics;
            }
        public static MonitoringConfig Load(XmlReader reader)
        {
            MonitoringConfig result = new MonitoringConfig();

            reader.GoToElement();
            reader.ReadStartElement();
            if (!reader.IsEmptyElement)
            {
                while (reader.GoToSibling())
                {
                    switch (reader.LocalName)
                    {
                    case "Diagnostics":
                        result.DiagnosticsConfig = DiagnosticsConfig.Load(reader);
                        break;

                    case "Logging":
                        result.LoggingConfig = LoggingConfig.Load(reader);
                        break;

                    case "AdditionalData":
                        string kvps = reader.ReadElementContentAsString();
                        foreach (var item in kvps.Split(','))
                        {
                            var kvp = item.Split('=');
                            result.AdditionalData.Add(kvp[0], kvp[1]);
                        }
                        break;

                    default:
                        reader.Skip();
                        break;
                    }
                }
            }

            return(result);
        }
 public FileDescriptorThrottlingProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }
Ejemplo n.º 7
0
 public QueueLowFlowProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }
Ejemplo n.º 8
0
 public ConsumerUtilizationProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }
 public HighConnectionCreationRateProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }
Ejemplo n.º 10
0
 public SMFLogger()
 {
     // load a default config
     DiagConfig          = DiagnosticsConfig.Load(DefaultConfigUri);
     healthMonitorLogger = new HealthMonitorLogger(new LoggingConfig());
 }
Ejemplo n.º 11
0
 public SMFLogger(DiagnosticsConfig diagConfig, LoggingConfig loggingConfig)
 {
     DiagConfig          = diagConfig;
     healthMonitorLogger = new HealthMonitorLogger(loggingConfig);
 }
Ejemplo n.º 12
0
 public RuntimeProcessLimitProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }
Ejemplo n.º 13
0
        static void Main(string[] args)
        {
            string configXmlDir = Environment.CurrentDirectory;

            if (args.Length == 1)
            {
                configXmlDir = args[0];
            }
            string configXmlPath = Path.Combine(configXmlDir, "DiagnosticsConfiguration.xml");

            if (!File.Exists(configXmlPath))
            {
                throw new InvalidOperationException(string.Format("Unable to find diagnostics configuration xml @ {0}", configXmlPath));
            }

            XmlSerializer     serializer = new XmlSerializer(typeof(DiagnosticsConfig));
            DiagnosticsConfig diagConfig = null;

            using (Stream fs = File.OpenRead(configXmlPath))
            {
                diagConfig = serializer.Deserialize(fs) as DiagnosticsConfig;
            }

            DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();

            config.OverallQuotaInMB = diagConfig.OverallQuotaInMB;

            if (diagConfig.Directories.Directory != null)
            {
                foreach (DiagnosticsConfigDirectoriesDirectory dir in diagConfig.Directories.Directory)
                {
                    DirectoryConfiguration directoryConfig = new DirectoryConfiguration();
                    directoryConfig.Container = dir.ContainerName;
                    if (dir.IsLocalPathRelative)
                    {
                        directoryConfig.Path = Path.Combine(Environment.CurrentDirectory, dir.LocalPath);
                    }
                    else
                    {
                        directoryConfig.Path = dir.LocalPath;
                    }
                    directoryConfig.DirectoryQuotaInMB = dir.DirectoryQuotaInMB;
                    config.Directories.DataSources.Add(directoryConfig);
                }
                config.Directories.ScheduledTransferPeriod = TimeSpan.FromSeconds(diagConfig.Directories.ScheduledTransferPeriodInSeconds);
            }

            if (diagConfig.PerformanceCounters.PerformanceCounter != null)
            {
                foreach (DiagnosticsConfigPerformanceCountersPerformanceCounter perf in diagConfig.PerformanceCounters.PerformanceCounter)
                {
                    PerformanceCounterConfiguration perfConfig = new PerformanceCounterConfiguration();
                    perfConfig.CounterSpecifier = perf.CounterName;
                    perfConfig.SampleRate       = TimeSpan.FromSeconds(perf.SamplingRateInSeconds);
                    config.PerformanceCounters.DataSources.Add(perfConfig);
                }
                config.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromSeconds(diagConfig.PerformanceCounters.ScheduledTransferPeriodInSeconds);
            }

            DiagnosticMonitor.Start(CloudStorageAccount.Parse(diagConfig.StorageAccountConnectionString), config);

            Trace.WriteLine("ConfigureAzureDiagnostics Started.", "Information");

            Console.ReadLine();
        }
Ejemplo n.º 14
0
 public HareDuConfigImpl(BrokerConfig broker, DiagnosticsConfig diagnostics)
 {
     Broker      = broker;
     Diagnostics = diagnostics;
 }
Ejemplo n.º 15
0
 public RedeliveredMessagesProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb)
     : base(kb)
 {
     _config = config;
 }