Move add_on_metrics from SeatLinkData to Separate Abstraction for Reuse

Background

We currently track add-on metrics as part of seat link records for online cloud licenses to provide visibility into Duo seat adoption for Self-Managed customers.

Now that offline cloud license customers can purchase Duo Enterprise, we will need to capture this same adoption data from these users and ensure these metrics are part of the offline license data sharing process.

In order to allow the offline cloud license usage export file to contain these add-on metrics, we will need to start tracking this as part of GitLab's historical license data.

Proposal

  • Move the current add_on_metrics method out of the SeatLinkData class and into a separate, appropriate abstraction (such as a concern or finder) so that it can be reused within the HistoricalData model
  • Depending on the chosen abstraction (ex: if it will be a new concern included in the models), the method name may need to be renamed in order to avoid a conflict with the add_on_metrics field that will be added to HistoricalData in #551159
Edited by 🤖 GitLab Bot 🤖