Ltix emits :telemetry events at key
boundaries. All span events emit :start, :stop, and :exception
suffixes with system_time and duration measurements provided by
:telemetry.span/3.
OIDC flow
[:ltix, :login, :start | :stop | :exception]wrapshandle_login/3. Useissuer,client_id, andredirect_urimetadata to break down measurements.[:ltix, :callback, :start | :stop | :exception]wrapshandle_callback/3. Useissuer,client_id,deployment_id, andmessage_typemetadata (stop only,nilon error) to break down measurements.
Advantage services
[:ltix, :grade_service, <action>, :start | :stop | :exception]wraps each grade service operation. The actions are:list_line_items,:get_line_item,:create_line_item,:update_line_item,:delete_line_item,:post_score,:list_results,:stream_line_items, and:stream_results. Theendpointmetadata is the URL the operation requests, ornilwhen no URL could be resolved. Use it to break down measurements.[:ltix, :memberships_service, <action>, :start | :stop | :exception]wraps each memberships service operation. The actions are:list_membersand:stream_members. Theendpointmetadata is the memberships URL the operation requests, ornilwhen no URL could be resolved. Use it to break down measurements.[:ltix, :deep_linking, :build_response, :start | :stop | :exception]wrapsLtix.DeepLinking.build_response/3. Useitem_countanditem_typesmetadata to break down measurements.
Bang variants such as list_members!/2 emit the same events as their non-bang functions.
OAuth
[:ltix, :oauth, :authenticate, :start | :stop | :exception]wraps the token request made byLtix.OAuth.authenticate/2and each service'sauthenticate/2. Usescopes_requestedmetadata (start and stop) to break down measurements.scopes_grantedandexpires_inare available on stop (nilon error).[:ltix, :oauth, :refresh, :start | :stop | :exception]wraps the token request made byLtix.OAuth.Client.refresh/1,Ltix.OAuth.Client.force_refresh/1, and their bang variants. It has the same metadata as[:ltix, :oauth, :authenticate].refresh/1emits nothing when the token has not expired.
JWKS cache
These are single events (not spans), emitted during Ltix.JWT.KeySet.get_key/3.
[:ltix, :jwks, :cache_hit]- key found in cache. The metadata isjwks_uriandkid.[:ltix, :jwks, :cache_miss]- key fetched from platform. The metadata isjwks_uriandkid.
A miss is also emitted when the kid is not found (before the error is
returned).
Not instrumented
| Area | Reason |
|---|---|
| HTTP requests | Req emits [:req, :request, :*] already |
| Storage adapter calls | Host app code. Instrument your own adapter. |
| JWT verification internals | Sub-steps of the callback span |
| Claim parsing | In-memory struct building with negligible cost |
| Pagination per-page | Service-level span covers the whole operation |