Track offline transfer export start with internal events

What does this MR do and why?

Adds internal-events observability for the start of an offline transfer export, so we can measure adoption and volume of the feature and surface it in Tableau — consistent with how other importers are tracked.

Part of #592635 (closed). This is 1 of 3 MRs splitting the offline-transfer-export observability work by event type (start / complete / fail) to keep the analytics-instrumentation review focused. The complete and fail MRs will follow.

Changes

  • Fire a new start_offline_transfer_export internal event from Import::Offline::Exports::CreateService, with label = object-storage provider (aws / google / s3_compatible).
  • New event definition config/events/start_offline_transfer_export.yml.
  • New Service Ping metrics (data_source: internal_events):
    • unique users who started an export — 28d + 7d (adoption)
    • total exports started — 28d + all-time (volume)

The event fires only inside the already feature-flag-gated (offline_transfer_exports) export flow, so no additional gating is needed.

Usage questions this answers

  • Is anyone using offline transfer export? How many, how often?
  • Which object-storage backends do customers use?

Screenshots or screen recordings

N/A (backend instrumentation)

How to set up and validate locally

bin/rspec spec/services/import/offline/exports/create_service_spec.rb

Or fire it end-to-end with offline_transfer_exports enabled and watch the event with the internal-events local monitor.

MR acceptance checklist

  • Analytics Instrumentation review (~"analytics instrumentation").
  • Update introduced_by_url in the event/metric YAMLs to this MR's URL.
Edited by James Nutt

Merge request reports

Loading
Loading