public ServerStatisticsSummarizer( IOptions <DnsServersSettings> dnsServersSettings, IDnsServerStatisticsStore dnsServerStatisticsStore) { _dnsServersSettings = dnsServersSettings.Value; _dnsServerStatisticsStore = dnsServerStatisticsStore; _logger = Log.ForContext("SourceContext", nameof(ServerStatisticsSummarizer)); }
public GetStatisticsApi( IOptions <DnsServerApiSettings> dnsServerApiSettings, IOptions <BlitzServerSettings> blitzServerSettings, IDnsServerStatisticsStore dnsServerStatisticsStore) { _logger = Log.ForContext("SourceContext", FunctionName); _dnsServerApiSettings = dnsServerApiSettings.Value; _blitzServerSettings = blitzServerSettings.Value; _dnsServerStatisticsStore = dnsServerStatisticsStore; }
public DnsServerStatisticsIngresser( IOptions <DnsServerApiSettings> dnsServerApiSettings, IDnsServerStatisticsRetriever dnsServerStatisticsRetreiver, IDnsServerStatisticsStore dnsServerStatisticsStore) { _dnsServerApiSettings = dnsServerApiSettings.Value; _dnsServerStatisticsRetreiver = dnsServerStatisticsRetreiver; _dnsServerStatisticsStore = dnsServerStatisticsStore; _logger = Log.ForContext("SourceContext", nameof(DnsServerStatisticsIngresser)); }
public HomeController( IOptions <DisplayableDnsServerSettings> dnsServersSetting, IDnsServerStatisticsStore dnsServerStatisticsStore, IMemoryCache memoryCache) { _dnsServersSettings = dnsServersSetting.Value; _dnsServerStatisticsStore = dnsServerStatisticsStore; _memoryCache = memoryCache; _logger = Log.ForContext("SourceContext", nameof(HomeController)); }
public static async Task Run( [TimerTrigger("0 0 19 * * *")] TimerInfo myTimer, [Inject] IOptions <DnsServersSettings> dnsServersSettings, [Inject] IDnsServerStatisticsStore dnsServerStatisticsStore, [Inject] IEnumerable <IAlertClient> alertClients) { var logger = Log.ForContext("SourceContext", FunctionName); try { var hoursOfIncrements = DateTime.UtcNow.GetHoursOfIncrements(); var printableTimeSpan = hoursOfIncrements.PrintableTimeSpan(); // Get statistics for all servers var allDnsServerStatistics = new List <DnsServerStatistics>(); foreach (var server in dnsServersSettings.Value.DnsServers) { allDnsServerStatistics.AddRange(await dnsServerStatisticsStore.GetServerStatisticsFromDate(server.ServerName, DateTime.UtcNow.AddHours(-hoursOfIncrements))); } if (allDnsServerStatistics.Count == 0) { throw new InvalidOperationException($"Did not get any statistical increments for pidns servers for hours {hoursOfIncrements}"); } var totalNumQueries = allDnsServerStatistics.Sum(s => s.TotalNumQueries); var totalAdsBlocked = allDnsServerStatistics.Sum(s => s.NumAnswerNXDOMAIN); foreach (var alertClient in alertClients) { logger.Information("Sending pidns statistics totalNumQueries {TotalNumQueries} and totalAdsBlocked {TotalAdsBlocked} to {Integration} client", totalNumQueries, totalAdsBlocked, alertClient.Integration); if (!(await alertClient.TrySendPiDnsStatistics(totalNumQueries, totalAdsBlocked, printableTimeSpan))) { logger.Warning("AlertClient {Client} returned false when sending pidns statistics alert, indicating a failure", alertClient.Integration); } } } catch (Exception e) { logger.Error(e, "Got an exception while processing pidns statistics alert"); } }