elapsedTime, initiatedAt, and completedAt log metrics

Overview

This article addresses the following questions:

  • How much time does a user spend waiting for Universal Login to load and execute (excluding user-related delays like the time a user takes to input his email and password, etc.)?
  • Where is that time consumed exactly? Auth0 rules? Redirects? Something else?
  • What is the value elapsedTime a measurement of?
  • Does the value represent the time our system processes/loads/etc. or does it include the time a user does things like filling in the login page, thinking about what to click on next, etc.?

Solution

  • The completedAt and initiatedAt fields in tenant logs are recorded in UNIX.
  • elapsedTime is the difference between those two, in milliseconds.
  • It will encompass the processing time of rules, actions, and custom database scripts, along with the time the user spent on the login screen.
  • The time it takes for rules to run is recorded in the log entry under “timers”, but custom database script time is not recorded.
  • The time it takes for Actions to run is recorded in a separate tab called “Action details”, under “stats”.
  • The values for a specific prompt (under “details”: { “prompts”: […) include both the time waiting for the user to type the credentials and also any server-side processing in the pipeline.

NOTE: The elapsedTime for the login prompt (Universal Login) also includes the time spent in the other prompts.

For flows that do not have an interactive element, such as when the user already has a session with Auth0, silent authentication, or ROP / client credential flows, no prompts will be rendered, and so the elapsedTime will be null . For these flows, only the Actions stats will be available.