Как понять пробел Azure Application Insight в деталях транзакции профилировщика

Я пытаюсь понять, почему некоторые страницы нашего приложения загружаются так долго.

Это веб-приложение.NET Core MVC. Он работает хорошо и быстро локально, но после развертывания в Azure некоторые страницы в случайном порядке загружаются очень долго.

Используя профилировщик Application Insights, я вижу в деталях транзакции, что все зависимости загружаются за несколько миллисекунд, а затем ничего не происходит в течение более 30 секунд, прежде чем транзакция разрешится.

Скриншот подробных транзакций

Есть ли какой-нибудь диагностический инструмент (или я где-то пропускаю панель), чтобы определить, почему этот длительный период бездействия удерживает запрос?

РЕДАКТИРОВАТЬ 1

Вот псевдокод действия контроллера

[HttpGet]
public ActionResult Details(int id)
{
  try
  {
    CustomerEntity customer = new CustomerBc().GetCustomer(id);
    if (customer == null) return StatusCode(StatusCodes.Status500InternalServerError);

    Dictionary<long, DeviceEntity> devices = new DeviceBc().GetDevicesByCustomer(id);

    Dictionary<int, PermissionEntity> permissions = new PermissionBc().GetPermissionsByCustomer(id);

    Dictionary<long, AccessTokenEntity> accessTokens = new AccessTokenBc().GetAccessTokensByCustomer(customer.CustomerId);

    Dictionary<short, RegionEntity> regions = new RegionBc().GetRegionsByCustomer(customer.CustomerId);

    ViewBag.Title = customer.Name;

    return View("Details", new CustomerDetailsViewModel
    {
      Customer = customer,
      Devices = devices,
      Permissions = permissions,
      AccessTokens = accessTokens,
      Regions = regions
    });
  }
  catch (Exception e)
  {
    Trace.TraceError(e.Message);
    return StatusCode(StatusCodes.Status500InternalServerError);
  }
}

0 ответов

Другие вопросы по тегам