Application Insights - Rotas que executam uma dependência
Ola PessoALL,
Tenho passado boa parte das últimas semanas ajudando clientes com problemas de escalabilidade em suas aplicações e como muitas das vezes não tenho acesso ao código fonte das aplicações, tento ser o mais acertivo possível nos relatórios que monto para ajudar os desenvolvedores a resolver os possiveis problemas de performance.
Hoje queria compartilhar uma dica simples, mas que muitas vezes ajuda a dar muita acertividade a resolver o problema.
Monitorando o banco usando a sp_whoIsActive eu consigo ter uma boa visão de queries problemáticas que estão sendo executadas.
Se você ainda não conhece a sp_whoIsActive, confere no blog do Dirceu Resende como usar e no blog do Fabricio Lima como criar um histórico para análise
Com as queries em mãos eu uso o Application Insights para poder descobrir quais rotas estão executando aquela query.
Para iniciar acesse a aba Analytics do seu Application Insights

Com a aba Analytics, podemos iniciar nossa investigação. A tabela que mais nos interessa aqui é a tabela "Dependencies"

Para filtrar por por uma query especifica podemos utilizar a coluna "data" e o operador contains e na coluna "operation_Name" podever ver quais rotas executaram aquela consulta.

Caso necessite ser um pouco mais espefícico para descobrir quais urls executam aquela query, podemos fazer um join na tabela de requests, conforme a query a seguir
dependencies
| where type == "SQL" and data startswith "SELECT TOP(1)"
| join kind= inner (
requests
) on operation_Id
| project url, data
Prontinho! Por hoje é só pessoALL.
Espero ter ajudado vocês a encontrarem alguns possiveis pontos de lentidão no sistema de vocês.
[]s
rsantosdev