Задать вопрос
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
можно-ли так делать в продакшене?
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 2
petermzg
@petermzg
Самый лучший программист
Для подсчета времени следует использовать класс Stopwatch из пространства System.Diagnostics
Ответ написан
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
наброски к теме - https://i.imgur.com/xo1QmBg.png

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

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

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

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

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

Похожие вопросы