BeaconCMS/beacon

Extension: Emit telemetry events

Offen

#143 geöffnet am 23.02.2023

 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)Elixir (120 Forks)batch import
enhancementgood first issue

Repository-Metriken

Stars
 (1.194 Sterne)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

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.

Contributor Guide