BeaconCMS/beacon

Extension: Emit telemetry events

Aberta

#143 aberto em 23 de fev. de 2023

 (1 comentário) (0 reação) (0 responsável)Elixir (120 forks)batch import
enhancementgood first issue

Métricas do repositório

Stars
 (1.194 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Expose Telemetry events for important lifecycle actions by calling https://hexdocs.pm/telemetry/telemetry.html#span/3

[:beacon, :core, :load_resource, :start | :stop]

Emit start/stop events for each resource loaded by Beacon.Loader, adding the loaded resource in the event metadata. For eg loading a page would emit the following events:

[:beacon, :core, :load_resource, :start]
metadata: %{page: %Page{...}}

[:beacon, :core, :load_resource, :stop]
metadata: %{page: %Page{...}}

And it would be called here https://github.com/BeaconCMS/beacon/blob/cbe3bf7445cc559c96310593105e710366ed2cea/lib/beacon/loader.ex#L236

Here is the list of resources that must emit telemetry events https://github.com/BeaconCMS/beacon/blob/cbe3bf7445cc559c96310593105e710366ed2cea/lib/beacon/loader.ex#L127

[:beacon, :core, :render_page, :start | :stop]

The entire block of PageLive.render/1 must be tracked and emit a telemetry event so we can measure rendering times.

Guia do colaborador