Instrumentação automática
A instrumentação Ecto se conecta automaticamente aos seus repos Ecto se a configuração:otp_app estiver definida como o nome do OTP app da sua aplicação. O instalador configura isso automaticamente para você.
config/config.exs:
Desabilitar a instrumentação automática
Para desabilitar a instrumentação automática do Ecto, defina a opção de configuraçãoinstrument_ecto como false.
Instrumentando preloads do Ecto
Como queries de preload do Ecto usam internamente vários processos Elixir para executar as diferentes consultas ao banco de dados envolvidas, algumas alterações manuais no seu código são necessárias para que o AppSignal as instrumente corretamente. No topo do seu módulo de repo Ecto, substituause Ecto.Repo por use Appsignal.Ecto.Repo, como no exemplo a seguir:
default_options/1, certifique-se de chamar super dentro dela para mesclar suas opções padrão com as da instrumentação de repo Ecto do AppSignal:
Anexação manual do handler
Para repos que não estão listados na configuração:ecto_repos, você pode anexar um handler manualmente ao iniciar o supervisor do seu app. Na maioria das aplicações, isso é feito na função start/2 da sua aplicação.
Appsignal.Ecto.attach/2. O primeiro argumento é o nome do OTP app ao qual o repo pertence, e o segundo argumento é o módulo do repo.
Métricas
Além de instrumentar suas queries Ecto, o AppSignal for Elixir coleta métricas sobre o desempenho dos seus repos Ecto:-
ecto_query_time: O tempo que o banco de dados gasta executando cada query, tagueado porrepoehostname, e para cada tabela porrepoesource. -
ecto_queue_time: O tempo gasto esperando por uma conexão de banco de dados do pool, tagueado porrepoehostname. -
ecto_decode_time: O tempo gasto decodificando os resultados da query em termos Elixir, tagueado porrepoehostname, e para cada tabela porrepoesource. -
ecto_idle_time: O tempo que a conexão ficou ociosa no pool antes de ser retirada, tagueado porrepoehostname. -
ecto_total_time: A soma de queue, query e decode time, tagueado porrepoehostname, e para cada tabela porrepoesource.
