tracing: Replace Provisioning mocks with actual API calls
What does this MR do and why?
Hooking up client with Provisioning API (spec)
Closes gitlab-org/opstrace/opstrace#2271 (closed)
(Note this feature is FeatureFlagged, Experimental and WIP - no active users yet apart from some internal testers )
Screenshots or screen recordings
N/A
How to set up and validate locally
- RSpec
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Merge request reports
Activity
changed milestone to %16.3
assigned to @drosse
3 Warnings ⚠ 07c4685b: The commit subject must contain at least 3 words. For more information, take a look at our Commit message guidelines. ⚠ 2d8690b7: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines. ⚠ featureaddition and featureenhancement merge requests normally have a documentation change. Consider adding a documentation update or confirming the documentation plan with the Technical Writer counterpart.
For more information, see:
- The Handbook page on merge request types.
- The definition of done documentation.
1 Message 📖 CHANGELOG missing: If you want to create a changelog entry for GitLab FOSS, add the
Changelog
trailer to the commit message you want to add to the changelog.If you want to create a changelog entry for GitLab EE, also add the
EE: true
trailer to your commit message.If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.
Reviewer roulette
Changes that require review have been detected!
Please refer to the table below for assigning reviewers and maintainers suggested by Danger in the specified category:
Category Reviewer Maintainer backend Martin Cavoj (
@mcavoj
) (UTC+2, 1 hour ahead of@drosse
)Alex Pooley (
@alexpooley
) (UTC+8, 7 hours ahead of@drosse
)frontend Scott de Jonge (
@sdejonge
) (UTC+10, 9 hours ahead of@drosse
)Miguel Rincon (
@mrincon
) (UTC+2, 1 hour ahead of@drosse
)To spread load more evenly across eligible reviewers, Danger has picked a candidate for each review slot, based on their timezone. Feel free to override these selections if you think someone else would be better-suited or use the GitLab Review Workload Dashboard to find other available reviewers.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines. Please consider assigning a reviewer or maintainer who is a domain expert in the area of the merge request.
Once you've decided who will review this merge request, assign them as a reviewer! Danger does not automatically notify them for you.
If needed, you can retry the
🔁 danger-review
job that generated this comment.Generated by
🚫 Danger- Resolved by 🤖 GitLab Bot 🤖
Proper labels assigned to this merge request. Please ignore me.
👋 @drosse - please see the following guidance and update this merge request.1 Error ❌ Please add typebug typefeature, or typemaintenance label to this merge request. Edited by 🤖 GitLab Bot 🤖
Bundle size analysis [beta]
This compares changes in bundle size for entry points between the commits f74d84e2 and 07c4685b
✨ Special assetsEntrypoint / Name Size before Size after Diff Diff in percent average 4.17 MB 4.17 MB - 0.0 % mainChunk 3.02 MB 3.02 MB - 0.0 %
Note: We do not have exact data for f74d84e2. So we have used data from: 6dffb18a.
The intended commit has no webpack pipeline, so we chose the last commit with one before it.Please look at the full report for more details
Read more about how this report works.
Generated by
🚫 DangerAllure report
allure-report-publisher
generated test report!e2e-test-on-gdk:
❗ test report for 07c4685bexpand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Plan | 51 | 0 | 0 | 0 | 51 | ✅ | | Create | 46 | 0 | 1 | 2 | 47 | ❗ | | Manage | 13 | 0 | 1 | 1 | 14 | ❗ | | Govern | 36 | 0 | 0 | 0 | 36 | ✅ | | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | | Monitor | 4 | 0 | 0 | 0 | 4 | ✅ | | Data Stores | 22 | 0 | 0 | 0 | 22 | ✅ | | Verify | 8 | 0 | 0 | 0 | 8 | ✅ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 180 | 0 | 4 | 3 | 184 | ❗ | +------------------+--------+--------+---------+-------+-------+--------+
e2e-review-qa:
❗ test report for 07c4685bexpand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | | Plan | 3 | 0 | 1 | 0 | 4 | ✅ | | Monitor | 4 | 0 | 0 | 1 | 4 | ❗ | | Create | 8 | 0 | 1 | 0 | 9 | ✅ | | Manage | 1 | 0 | 0 | 0 | 1 | ✅ | | Govern | 2 | 0 | 0 | 0 | 2 | ✅ | | Data Stores | 2 | 0 | 0 | 0 | 2 | ✅ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 20 | 0 | 4 | 1 | 24 | ❗ | +------------------+--------+--------+---------+-------+-------+--------+
Setting label groupobservability based on
@drosse
's group.added groupobservability label
added devopsanalyze sectionanalytics labels
- Resolved by Daniele Rossetti
marked the checklist item I have evaluated the MR acceptance checklist for this MR. as completed
added featureaddition label
added typefeature label
requested review from @mcavoj
requested review from @sdejonge
removed review request for @sdejonge
- Resolved by Doug Stull
requested review from @robyrne
requested review from @alexpooley and removed review request for @mcavoj
👋 @mcavoj
, thanks for approving this merge request.This is the first time the merge request is approved. To ensure full test coverage, a new pipeline will be started shortly.
For more info, please refer to the following links:
added pipeline:mr-approved label
mentioned in epic gitlab-org/opstrace&77 (closed)
- Resolved by Miguel Rincon
- Resolved by Miguel Rincon
- Resolved by Miguel Rincon
31 31 "#{Gitlab::Observability.observability_url}/query/#{project.group.id}/#{project.id}/v1/traces" 32 32 end 33 33 34 def provisioning_url(_project) 35 # TODO Change to correct endpoint when API is ready 36 Gitlab::Observability.observability_url.to_s 34 def provisioning_url(project) 35 "#{Gitlab::Observability.observability_url}/v3/tenant/#{project.id}" good point - I think we can leveraging direct routes
See some of our starts with this in
config/routes/directs.rb
What's the advantage of using direct routes in this case? Is it just to make the
*_url
available everywhere? Do we need/want to? I think having it encapsulated in theObservability
module makes more sense. WDYT?Edited by Daniele Rossettiit would be nice to have a single source of truth for this
This module
GitLab::Observability
is meant to be the single source of truth for Observability API. Or did you mean something differently?Edited by Daniele RossettiAh I see what you mean. I'm not sure how the backend versioning works tbh. Let me ask the backend team here.
@gl-observability Hey folks can you shed some lights here about backend versioning? Do different API have different versions? Or all share the same version?
For instance, we have the following URL defined here:
def oauth_url "#{Gitlab::Observability.observability_url}/v1/auth/start" end def tracing_url(project) "#{Gitlab::Observability.observability_url}/query/#{project.group.id}/#{project.id}/v1/traces" end def provisioning_url(project) "#{Gitlab::Observability.observability_url}/v3/tenant/#{project.id}" end
Both
v1
andv3
are used. Should they all be the same? Or are they not shared?Edited by Daniele Rossetti@drosse They should ideally be all the same (
v3
), but they're also not shared right now.-
v3
primarily comes from our decision to build new APIs/endpoints as per the latest architectural changes deprecating GOUI-specific things which we drafted asv2
. -
The
tracing_url
was discussed to be changed tov3
here: gitlab-org/opstrace/opstrace!2146 (comment 1468395164) and being tracked with gitlab-org/opstrace/opstrace#2282. -
The
oauth_url
withv1
can stay as is for now, independent of our backend/subsystem specific endpoints.
-
Thanks for the clarification @ankitbhatnagar !
@mrincon Based on the above, I'm not sure it makes sense to extract the version, as for the moment at least, each API is using is own version and there is maybe not much point in having 3 constants used by 3 APIs. WDYT?
Ok, as a reviewer it's difficult to know where all those versions came from but it looks like you can document this elsewhere, I won't block this MR over this.
👍 Edited by Miguel Rinconcreated #422522 to continue this discussion
@drosse @ankitbhatnagar Wondering if those API versions need to be documented somewhere that is more transparent? To prevent confusion etc?
Having them outside of the Rails codebase makes them even more opaque.
added 767 commits
-
7cca9880...adf8e23d - 765 commits from branch
master
- 2d8690b7 - tracing: Remove Provisioning API mocks
- 05fa7858 - Reporting client API errors to Sentry
-
7cca9880...adf8e23d - 765 commits from branch
requested review from @dstull and removed review request for @alexpooley
mentioned in issue #422522
enabled an automatic merge when the pipeline for 3f92a6c3 succeeds
mentioned in commit 24a8aff9
added workflowstaging-canary label
added workflowcanary label and removed workflowstaging-canary label
added workflowstaging label and removed workflowcanary label
added workflowproduction label and removed workflowstaging label
added workflowpost-deploy-db-staging label and removed workflowproduction label
added releasedcandidate label
added releasedpublished label and removed releasedcandidate label