Skip to content

Add aggregate counts for issue related user driven events

This is the implementation issue that came out of the conversation (https://gitlab.com/gitlab-data/analytics/-/issues/4291#note_375641166) on how to more accurately track Plan TMAU

Goal

Track user interactions with issues within the usage ping so that we can calculate Monthly Active Users (MAU) for Plan. It is important that we have an accurate reflect of MAU as it is one of the primary metrics that GitLab leadership uses to make informed investment decisions across the product.

Project Management MAU Definition

The sum of all unique users that took an action within an Issue over a given period of time.

Proposal

Implement a counter in the usage ping that aggregates the total count of unique users that took an action on an issue.

Based on this conversation (https://gitlab.com/gitlab-data/analytics/-/issues/4291#note_365848816), it appears as though most events can be tracked via:

  • system_note_metadata
  • resource_milestone_events
  • resource_state_events
  • resource_weight_events

Record the aggregate unique MAU counts under issue_events in the usage ping.

Events To Aggregate In Usage Ping

Question: Do these actions include issue created? There is currently no system note generated when an issue is created.

Action Description Added To Counter
created Issue created !43228 (merged)
title Changed the title of the issue !40904 (merged)
description Changed the description of the issue !40904 (merged)
task Checked / unchecked a task list item in the description !43828 (merged)
closed* Closed the issue !43228 (merged)
opened* Reopened the issue !43228 (merged)
label* Changed the labels of the issue !43228 (merged)
milestone* Changed the milestone of the issue !43228 (merged)
iteration* Changed the iteration of the issue !43228 (merged)
weight* Changed the weight of the issue !43228 (merged)
assignee Changed the assignees of the issue !40904 (merged)
due_date Changed the due date of the issue !44404 (merged)
confidential Marked the issue as confidential !40904 (merged)
visible Marked the issue as not confidential !40904 (merged)
time_estimate_added Add a time estimate !44404 (merged)
time_spent_recorded Time spent entry recorded !44404 (merged)
health_status Changed the health status of the issue !44417 (merged)
cross_reference Mentioned the issue somewhere else !43828 (merged)
moved Moved the issue or promoted the issue to an Epic !43828 (merged)
relate Marked the issue as related to another !43828 (merged)
unrelate Removed a related issue relation !43828 (merged)
duplicate Marked the issue as a duplicate of another !43828 (merged)
locked Locked the discussions of the issue !43828 (merged)
unlocked Unlocked the discussions of the issue !43828 (merged)
issue_added_to_epic Set the parent epic of an issue !44371 (merged)
issue_changed_epic Changed the parent epic to another epic !44371 (merged)
issue_removed_from_epic Removed the parent epic !44371 (merged)
designs_added Added a design to the issue !44373 (merged)
designs_modified Changed a design belonging to the issue !44373 (merged)
designs_removed Removed a design from the issue !44373 (merged)
comment_added Added a comment to the issue !45609 (merged)
comment_edited Edited a comment on the issue !45609 (merged)
commend_removed Removed (deleted) a comment on the issue !45609 (merged)

Note: Those marked with * are now being tracked using resource events. So we must also account for records in those tables.

Bonus

Figure out how to add individual usage ping counters for each action that reports:

  • Count unique MAU
  • Count aggregate actions

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖