title: analytics/session_tick description: > Each active user session sends its current length at a pre-determined time interval called a 'tick'. When a user session becomes inactive, it stops sending length updates. If it remains inactive long enough, it will be reset. If it re-activates before being reset, the backlog of length updates will be sent, and it will resume sending length updates as before. Used to compute a privacy-conscious session length metric, see https://wikitech.wikimedia.org/wiki/Analytics/Data_Lake/Traffic/SessionLength $id: /analytics/session_tick/2.0.0 $schema: https://json-schema.org/draft-07/schema# type: object allOf: - $ref: /fragment/analytics/common/2.0.0# - properties: tick: type: integer description: > Current length of the client session, expressed as number of ticks. Loss of precision from denominating length in tick units (vs. ms) simplifies aggregation and enhances privacy. minimum: 0 config_tick_ms: type: integer description: > Unit of time, in milliseconds, each tick represents. Gets value from MediaWiki config variable; included for data lineage. config_idle_ms: type: integer description: > Milliseconds of inactivity until a page is marked idle. Gets value from MediaWiki config variable; included for data lineage. config_reset_ms: type: integer description: > Milliseconds until session is reset if all pages are idle. Gets value from MediaWiki config variable; included for data lineage. test: type: object additionalProperties: type: integer description: > A string:integer 'map' type for carrying temporary test values e.g. for validation, compatibility, etc. This field should be treated as volatile and its data should not be retained. required: - tick examples: - $schema: $ref: '#/$id' meta: stream: session_tick_example domain: es.m.wikipedia.org dt: '2020-06-11T19:20:00.649Z' tick: 2 config_tick_ms: 10000 config_idle_ms: 30000 config_reset_ms: 60000 test: supports_passive: 1 dt: '2020-06-11T19:20:00.649Z'