Metas are key-value properties that are sent with each payload.
Metas can be either:
- static - once defined, they do not change across a session
- dynamic - either computed automatically for each payload or they are changed programmatically by the end-user
The app
meta ties signals with a specific app and it should not be changed across a session. It is required during
initialization and it is the responsability of the end-user to define it.
Properties:
name
- the name of the appversion
- the version of the apprelease
- a release identifier for the app, like a commit hash, a build number or a Docker container tagenvironment
- the environment where the app is running, likestaging
orproduction
The browser
meta helps with identifying the environment where the app is running and it should not change across a
session. Altough it is not handled automatically by the core package, nor is it the responsability of the end-user to
define it. Wrapper packages like web-sdk
should handle it.
Properties:
name
- the name of the browserversion
- the version of the browseros
- the operating system name and version where the browser is runningmobile
- a flag indication if the browser is running on a mobile device
The page
meta helps developers identify the page where a specific signal is coming from. It changes automatically
across a session and even though it is not handled automatically by the core package, wrapper packages like web-sdk
should handle it. But unlike other metas, it can be also overwritten by the end-user if they have a custom mechanism for
tracking the current page.
Properties:
url
- the URL of the current pageid
- the name of the browserattributes
- a key-value object with additional attributes about the current page
The sdk
meta defines the following properties about the Faro library itself:
name
- the name of the core libraryversion
- the version of the libraryintegrations
- the list of instrumentations that are used, identified by by the name and the version
The sdk
meta is handled internally by the core package and the end-user should not change it.
The session
meta is a static meta that is used to link signals between them. It is not handled automatically by the
core package and wrapper packages like web-sdk
can handle it automatically. But unlike other metas, it can be also
overwritten by the end-user if they have a different way of defining what a session is.
Properties
id
- the name of the browserattributes
- a key-value object with additional attributes about the session
The user
meta ties signals with a specific user. It is not required but it can be provided during initialization, or
programmatically, once the Faro library was initialized.
Properties:
id
- the ID of the userusername
- the username of the useremail
- the user's emailattributes
- a key-value object with additional attributes about the current user
The view
meta lets developers define a view to associate with signals that occured within that view. This makes it
easy to track specific sections in the UI which may dynamically change without any route changes. For example, a view
can be a category called auth
that contains sign in and sign up pages. The view
meta is not changing automatically
across a session and even though it is not handled automatically by the core package, wrapper packages like web-sdk
should give a value default to it. Unlike other metas, it can be also overwritten by the end-user during initialization
or programmatically afterwards.
Properties:
name
- the name of the current view
The metas SDK is the internal handler for the metas component. It is responsible for keeping track of the current metas values as well as the getters for the dynamic metas.
Methods and properties:
add()
- adds a new metaremove()
- removes a specific metaaddListener()
- adds a new listenerremoveListener()
- removes a specific listenervalue
- accesses the current value of the static metas