BeaconCMS/beacon

Extension: Emit telemetry events

开放

#143 创建于 2023年2月23日

 (1 条评论) (0 个反应) (0 位负责人)Elixir (120 个派生)batch import
enhancementgood first issue

仓库指标

星标
 (1,194 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南