Не все журналы в AWS Elasticsearch Service используют Serilog во время пиковой нагрузки - PullRequest
0 голосов
/ 27 мая 2019

Технический стек: AWS ECS (ядро .net) + Serilog + Serilog.Sinks.Elasticsearch + AWS Elasticsearch

Я заметил, что иногда я не могу найти некоторые журналы в ES.

Я сделал несколько тестов, чтобы воспроизвести такую ​​проблему, и вот результаты:

| Raised log entries (in parallel)  | Found log enries in ES    | 
-----------------------------------------------------------------
| 100000                            | 100000                    |
| 500000                            | 172244                    |
| 500000                            | 163841                    |
| 500000                            | 174947                    |
| 500000                            | 155788                    |

Итак, как вы можете видеть, это довольно воспроизводимо.

Я включил https://github.com/serilog/serilog/wiki/Debugging-and-Diagnostics для Serilog, но он ничего не говорит. CloudWatch также говорит, что все в порядке.

Оригинальная конфигурация Serilog:

builder.UseSerilog(
    (hostingContext, loggerConfiguration) => loggerConfiguration
        .ReadFrom.Configuration(hostingContext.Configuration)
        .Enrich.FromLogContext()
        .Enrich.WithServiceName(serviceName)
        .WriteTo.Console(new JsonFormatter(renderMessage: true))
        .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(hostingContext.Configuration["elasticsearch"] ?? "http://localhost:9200"))
        {
            AutoRegisterTemplate = true,
            IndexDecider = (ev, offset) => string.Format("{0}.{1}", index, System.DateTime.Now.ToString("yyyy.MM.dd")),
        })
        .Destructure.UsingAttributes()
        );

Возможно, у кого-то уже были такие проблемы, поэтому я был бы очень признателен, если бы вы поделились своим опытом.

UPDATE

Я нашел следующие журналы от AppInsights

System.Net.Http.HttpRequestException: в System.Net.Http.ConnectHelper + d__2.MoveNext (System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Threading.Tasks.ValueTask 1.get_Result (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Net.Http.HttpConnectionPool+<CreateConnectionAsync>d__40.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Threading.Tasks.ValueTask 1.get_Result (System.Private.CoreLib, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Net.Http.HttpConnectionPool + d__45.MoveNext (System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Threading.Tasks.ValueTask 1.get_Result (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Net.Http.HttpConnectionPool+<SendWithRetryAsync>d__37.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1 + ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Net.Http.RedirectHandler + d__4.MoveNext (System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1 + ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Net.Http.DiagnosticsHandler + d__2.MoveNext (System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a) Внутреннее исключение System.Net.Sockets.SocketException обрабатывается в System.Net.Http.ConnectHelper + d__2.MoveNext: в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Net.Http.ConnectHelper + d__2.MoveNext (System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a)

во время http://elasticsearch:9200/_bulk операция

...