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); } }
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;
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); } }
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; }
public QueueLowFlowProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb) : base(kb) { _config = config; }
public ConsumerUtilizationProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb) : base(kb) { _config = config; }
public HighConnectionCreationRateProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb) : base(kb) { _config = config; }
public SMFLogger() { // load a default config DiagConfig = DiagnosticsConfig.Load(DefaultConfigUri); healthMonitorLogger = new HealthMonitorLogger(new LoggingConfig()); }
public SMFLogger(DiagnosticsConfig diagConfig, LoggingConfig loggingConfig) { DiagConfig = diagConfig; healthMonitorLogger = new HealthMonitorLogger(loggingConfig); }
public RuntimeProcessLimitProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb) : base(kb) { _config = config; }
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(); }
public HareDuConfigImpl(BrokerConfig broker, DiagnosticsConfig diagnostics) { Broker = broker; Diagnostics = diagnostics; }
public RedeliveredMessagesProbe(DiagnosticsConfig config, IKnowledgeBaseProvider kb) : base(kb) { _config = config; }