← Back to Dashboard
Verified Production Fix

[gitlab-org/gitlab] Implement offline transfer import observability

GL-gitlab-org/gitlab#592636 • Mar 07, 2026

### ROOT CAUSE The issue arises because GitLab's offline transfer imports lack observability, meaning there's no mechanism to track their usage effectively. This prevents the team from analyzing how offline transfers are being utilized, hindering data-driven decision-making. To address this, we need to implement internal events to log relevant data and integrate this data into Tableau for visualization, mirroring the approach used for other importers. ### CODE FIX To implement the offline transfer import observability, we'll follow these steps: 1. **Define Events**: Create events for offline transfer import start and completion. These events will include metadata such as user ID, timestamp, file size, transfer type, duration, and success status. 2. **Log Events**: Modify the offline transfer import process to trigger these events. Use GitLab's event system to log each event with the defined metadata. 3. **Data Collection**: Ensure the logged events are sent to GitLab's centralized logging system (e.g., Elasticsearch), where they can be indexed and queried. 4. **Data Pipeline**: Set up an ETL process or data pipeline to transfer the collected event data into a format suitable for Tableau, such as a structured database table. 5. **Tableau Integration**: Create dashboards in Tableau using the transferred data to visualize usage patterns, trends, and metrics related to offline transfers. 6. **Security and Privacy**: Ensure that data handling complies with security protocols, particularly for sensitive user information. 7. **Testing**: Conduct tests to validate event logging and data appearance in Tableau. Simulate offline transfers to check logs and dashboards for correctness. 8. **Documentation**: Update internal documentation to explain the new events, data tracking processes, and Tableau dashboard usage. Here is a sample implementation:
ruby
# In the offline transfer import process, trigger events

# When an offline transfer import starts
Gitlab::Event.create(
  type: 'offline_transfer_import_started',
  user_id: current_user.id,
  metadata: {
    'file_size' => file.size,
    'transfer_type' => 'offline'
  }
)

# When an offline transfer import completes
Gitlab::Event.create(
  type: 'offline_transfer_import_completed',
  user_id: current_user.id,
  metadata: {
    'duration' => duration.to_i,
    'success' => success
  }
)


This code snippet adds events when an offline transfer import starts and completes, capturing necessary metadata. The events are then processed into the data pipeline and fed into Tableau for analysis.

Deploy with Vultr

Use this fix in production instantly. Claim your high-performance developer credit.

Get Started with Vultr →