[JENKINS-70199] Add distributed builds telemetry #7470
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
https://issues.jenkins.io/browse/JENKINS-70199
This PR adds telemetry collecting information about whether/how distributed builds are set up at a fairly high level.
We generally consider distributed builds setups to be desirable, and encourage admins to set that up, but have no information about how common it is. While some of this is part of the regular submissions of usage stats, the way it's presented on stats.jenkins.io does not give us much useful information (e.g. total number does not tell us median and percentiles of numbers of agents). Additionally, this adds information about configured clouds, which isn't in the normal usage stats, as well as any dismissed related admin monitors. Number of jobs is collected to get an idea of instance size/complexity. Users would be nice but seems too expensive to get "actual" users (and not SCM committers) to be worth it.
Testing done
Code seems straightforward enough and telemetry generally has test coverage, so I skipped specific autotests for this.
Via script console:
Depending on the instance configuration, this resulted in the following output (
components
removed because that's a standard method and would clutter up sample output):Proposed changelog entries
Proposed upgrade guidelines
N/A
Submitter checklist
@Restricted
or have@since TODO
Javadocs, as appropriate.@Deprecated(since = "TODO")
or@Deprecated(forRemoval = true, since = "TODO")
, if applicable.eval
to ease future introduction of Content Security Policy (CSP) directives (see documentation).Desired reviewers
@mention
Maintainer checklist
Before the changes are marked as
ready-for-merge
:upgrade-guide-needed
label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).lts-candidate
to be considered (see query).