Backport AI events backfill from PG to ClickHouse
What does this MR do and why?
This MR backports following MRs to 17.10 stable branch:
!186133 (merged) !185992 (merged) !185955 (merged) !184930 (merged) !187326 (merged) !187345 (merged)
It should make backfill available earlier for Dedicated and SM customers and allow them to use AI Impact analytics with data already present.
References
How to set up and validate locally
- Seed usage stats:
FILTER=ai_usage_stats bundle exec rake db:seed_fu - Drop your ClickHouse database
ClickHouse::Client.execute("DROP DATABASE IF EXISTS gitlab_clickhouse_development") - Recreate fresh one
ClickHouse::Client.execute("CREATE DATABASE gitlab_clickhouse_development") - Migrate the structure with
rake gitlab:clickhouse:migrate - Make sure PG has data and CH is empty:
ClickHouse::Client.execute("SELECT COUNT(*) FROM duo_chat_events")
ClickHouse::Client.execute("SELECT COUNT(*) FROM code_suggestion_usages")
Ai::DuoChatEvent.count
Ai::CodeSuggestionEvent.count
- Log in as admin an disable and reenable ClickHouse for analytics application setting
- Verify that data is present in ClickHouse
ClickHouse::Client.execute("SELECT COUNT(*) FROM duo_chat_events") # should match Ai::DuoChatEvent.count
ClickHouse::Client.execute("SELECT COUNT(*) FROM code_suggestion_usages") # should match Ai::CodeSuggestionEvent.count
- Perform step 6 again
- Verify that no duplicates is created.
ClickHouse::Client.execute("SELECT COUNT(*) FROM duo_chat_events") # should match Ai::DuoChatEvent.count
ClickHouse::Client.execute("SELECT COUNT(*) FROM code_suggestion_usages") # should match Ai::CodeSuggestionEvent.count
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch. -
The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes). -
This MR has a severity label assigned (if applicable). -
Set the milestone of the merge request to match the target backport branch version. -
This MR has been approved by a maintainer (only one approval is required). -
Ensure the e2e:test-on-omnibus-eejob has either succeeded or been approved by a Software Engineer in Test.
Note to the merge request author and maintainer
If you have questions about the patch release process, please:
- Refer to the patch release runbook for engineers and maintainers for guidance.
- Ask questions on the
#releasesSlack channel (internal only).
Edited by Mayra Cabrera