ForgeOpsTracker.Integrations.Phoenix (forge_ops_tracker v0.5.0)

Copy Markdown View Source

Times every matched Phoenix route, kind: "controller". Call once at startup, e.g. application.ex's own start/2, before the rest of the supervision tree starts:

ForgeOpsTracker.Integrations.Phoenix.attach()

Attaches to [:phoenix, :router_dispatch, :stop] (confirmed directly against the installed phoenix source, not assumed from docs: Phoenix.Router.__call__/5 emits this around every matched route's own plug pipeline, controller action included), a global event name, not per-endpoint-namespaced, so this one call covers every Phoenix endpoint in the host app. An unmatched route (a 404) never fires this event at all, the same "only a real match gets timed" behavior every other language's own controller/action instrumentation in this repo already has.

transaction_name is "<HTTP method> <route pattern>" (e.g. "GET /users/:id"), not the literal path: metadata.route is Phoenix's own matched route pattern, which keeps a distinct user id from exploding into its own separate transaction the way the literal path would.

Summary

Functions

Registers the telemetry handler. Safe to call more than once: a later call is a no-op.

Functions

attach()

@spec attach() :: :ok

Registers the telemetry handler. Safe to call more than once: a later call is a no-op.