diff --git a/src/FilterLists.Agent/Logger.cs b/src/FilterLists.Agent/Logger.cs index 4a5a36bc9..29c6d49d8 100644 --- a/src/FilterLists.Agent/Logger.cs +++ b/src/FilterLists.Agent/Logger.cs @@ -18,6 +18,8 @@ public Logger(string appInsightsKey) public void Dispose() { telemetryClient.Flush(); + + //https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics#flushing-data Thread.Sleep(5000); } diff --git a/src/FilterLists.Agent/Program.cs b/src/FilterLists.Agent/Program.cs index 1aaee4ab6..0979f05c3 100644 --- a/src/FilterLists.Agent/Program.cs +++ b/src/FilterLists.Agent/Program.cs @@ -47,9 +47,9 @@ private static async Task TryCaptureSnapshots() { await CaptureSnapshots(BatchSize).TimeoutAfter(Timeout); } - catch (TimeoutException) + catch (TimeoutException te) { - logger.Log("Timeout - Program.CaptureSnapshots()"); + logger.Log(te); } } } diff --git a/src/FilterLists.Services/Snapshot/Snapshot.cs b/src/FilterLists.Services/Snapshot/Snapshot.cs index fe4d4ec20..a03c166a6 100644 --- a/src/FilterLists.Services/Snapshot/Snapshot.cs +++ b/src/FilterLists.Services/Snapshot/Snapshot.cs @@ -200,6 +200,8 @@ private void TrackException(Exception e) { telemetryClient.TrackException(e); telemetryClient.Flush(); + + //https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics#flushing-data Thread.Sleep(5000); } } diff --git a/src/FilterLists.Services/UserAgentService.cs b/src/FilterLists.Services/UserAgentService.cs index 5b03b0fed..f50ad0f49 100644 --- a/src/FilterLists.Services/UserAgentService.cs +++ b/src/FilterLists.Services/UserAgentService.cs @@ -16,24 +16,37 @@ public static class UserAgentService "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"; public static async Task GetMostPopularString() + { + try + { + return await TryGetLatestMostPopularStringOrDefault(); + } + catch (HttpRequestException) + { + return UaStringDefault; + } + } + + private static async Task TryGetLatestMostPopularStringOrDefault() { using (var httpClient = new HttpClient()) { var response = await httpClient.GetAsync(UaStringSource, HttpCompletionOption.ResponseHeadersRead); + response.EnsureSuccessStatusCode(); using (var stream = await response.Content.ReadAsStreamAsync()) using (var streamReader = new StreamReader(stream)) { string line; while ((line = await streamReader.ReadLineAsync()) != null) if (line.Contains(UaStringSourceClass)) - return ParseUaString(line); + return ParseUaStringOrDefault(line); } } return UaStringDefault; } - private static string ParseUaString(string line) + private static string ParseUaStringOrDefault(string line) { var classIndex = line.IndexOf(UaStringSourceClass, StringComparison.Ordinal); var postClassIndexSubstring = line.Substring(classIndex);