public async Task Invoke(HttpContext context)
        {
            var stopWatch = Stopwatch.StartNew();

            var session = new ProfilerSession();

            try
            {
                requestSession.Start(context, session);

                await next(context);
            }
            finally
            {
                stopWatch.Stop();

                log.LogInformation(w =>
                {
                    session.Write(w);

                    w.WriteProperty("elapsedRequestMs", stopWatch.ElapsedMilliseconds);
                });
            }
        }