bullock
@bullock

Как правильно собирать временные метрики?

Вопрос связан с тем что это мой первый опыт сбора метрик.
Правильно ли я собираю информацию о времени выполнения запроса сервером, к примеру у меня есть такой код:
// Один из методов контроллера
public IActionResult SomeMethod()
{
    DateTime metricsStart = DateTime.Now;
    try
    {
        // что то делаю и возвращаю клиенту результат

        return Json( auctions );
    }
    catch ( Exception e )
    {
        logger.LogError( $"error! ip:{accessor.HttpContext.Connection.RemoteIpAddress.ToString()} Discription: {e}." );
        return Json( "error" );
    }
    finally
    {
        string timeDifference= ( DateTime.Now - metricsStart ).TotalMilliseconds.ToString();
        logger.LogInformation( $"Ok. ip:  {accessor.HttpContext.Connection.RemoteIpAddress.ToString()} Time: {timeDifference}" );
    }
}

Это нормально?
UPDATE
можно-ли так делать в продакшене?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
petermzg
@petermzg
Самый лучший программист
Для подсчета времени следует использовать класс Stopwatch из пространства System.Diagnostics
Ответ написан
mindtester
@mindtester
делаю странные вещи, обычно на C#
наброски к теме - https://i.imgur.com/xo1QmBg.png

ps .. в смысле фрагмент из продакшена ;)) .. ~90% функций во фрагменте собственные расширения, так что не ищите прямых аналогов (той же .log() - это тоже собственное расширение для string), просто общая суть ))

pps .. вариант реализации .log()

internal static void log(this string txt) => tbLog.AppendText(txt + Environment.NewLine);

;))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Payment Systems Москва
от 160 000 до 200 000 руб.
Wallet One Чебоксары
от 90 000 до 150 000 руб.
Wallet One Москва
от 100 000 до 190 000 руб.
19 авг. 2018, в 00:49
600 руб./в час
18 авг. 2018, в 17:54
6000 руб./за проект
18 авг. 2018, в 16:00
60000 руб./за проект