Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add more metrics and tags to CI Visibility telemetry #7223

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import datadog.trace.api.Config;
import datadog.trace.api.civisibility.config.ModuleExecutionSettings;
import datadog.trace.api.civisibility.telemetry.CiVisibilityMetricCollector;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.GitInfoProvider;
import datadog.trace.civisibility.ci.CIInfo;
import datadog.trace.civisibility.ci.CIProviderInfo;
Expand Down Expand Up @@ -45,8 +46,8 @@ public class CiVisibilityRepoServices {

final String repoRoot;
final String moduleName;
final Provider ciProvider;
final Map<String, String> ciTags;
final boolean supportedCiProvider;

final GitDataUploader gitDataUploader;
final RepoIndexProvider repoIndexProvider;
Expand All @@ -56,11 +57,12 @@ public class CiVisibilityRepoServices {

CiVisibilityRepoServices(CiVisibilityServices services, Path path) {
CIProviderInfo ciProviderInfo = services.ciProviderInfoFactory.createCIProviderInfo(path);
ciProvider = ciProviderInfo.getProvider();

CIInfo ciInfo = ciProviderInfo.buildCIInfo();
repoRoot = ciInfo.getCiWorkspace();
moduleName = getModuleName(services.config, path, ciInfo);
ciTags = new CITagsProvider().getCiTags(ciInfo);
supportedCiProvider = ciProviderInfo.isSupportedCiProvider();

gitDataUploader =
buildGitDataUploader(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ private static BuildSystemSession.Factory buildSystemSessionFactory(
repoServices.repoRoot,
startCommand,
startTime,
repoServices.supportedCiProvider,
repoServices.ciProvider,
services.config,
services.metricCollector,
testModuleRegistry,
Expand Down Expand Up @@ -262,7 +262,7 @@ private static TestFrameworkSession.Factory headlessTestFrameworkEssionFactory(
return new HeadlessTestSession(
projectName,
startTime,
repoServices.supportedCiProvider,
repoServices.ciProvider,
services.config,
services.metricCollector,
testDecorator,
Expand All @@ -282,7 +282,7 @@ private static CIVisibility.SessionFactory manualApiSessionFactory(
return new ManualApiTestSession(
projectName,
startTime,
repoServices.supportedCiProvider,
repoServices.ciProvider,
services.config,
services.metricCollector,
testDecorator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -112,4 +113,9 @@ private PersonInfo buildGitCommitAuthor() {
System.getenv(APPVEYOR_REPO_COMMIT_AUTHOR_NAME),
System.getenv(APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL));
}

@Override
public Provider getProvider() {
return Provider.APPVEYOR;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.ci;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.GitInfo;

class AwsCodePipelineInfo implements CIProviderInfo {
Expand All @@ -26,4 +27,9 @@ public CIInfo buildCIInfo() {
AWS_CODEPIPELINE_ARN)
.build();
}

@Override
public Provider getProvider() {
return Provider.AWS;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -134,4 +135,9 @@ private PersonInfo buildGitCommitAuthor() {
System.getenv(AZURE_BUILD_REQUESTED_FOR_ID),
System.getenv(AZURE_BUILD_REQUESTED_FOR_EMAIL));
}

@Override
public Provider getProvider() {
return Provider.AZP;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.util.Strings;
Expand Down Expand Up @@ -75,4 +76,9 @@ private String buildPipelineId() {
}
return id;
}

@Override
public Provider getProvider() {
return Provider.BITBUCKET;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -65,4 +66,9 @@ private String buildGitCommit() {
return System.getenv(BITRISE_GIT_COMMIT);
}
}

@Override
public Provider getProvider() {
return Provider.BITRISE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static datadog.trace.api.git.GitUtils.normalizeBranch;
import static datadog.trace.api.git.GitUtils.normalizeTag;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -65,4 +66,9 @@ private PersonInfo buildGitCommiter() {
return new PersonInfo(
System.getenv(BUDDY_GIT_COMMIT_AUTHOR), System.getenv(BUDDY_GIT_COMMIT_EMAIL));
}

@Override
public Provider getProvider() {
return Provider.BUDDYCI;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;
import static datadog.trace.util.Strings.toJson;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -84,4 +85,9 @@ private PersonInfo buildGitCommitAuthor() {
return new PersonInfo(
System.getenv(BUILDKITE_GIT_AUTHOR_NAME), System.getenv(BUILDKITE_GIT_AUTHOR_EMAIL));
}

@Override
public Provider getProvider() {
return Provider.BUILDKITE;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.ci;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.GitInfo;

public interface CIProviderInfo {
Expand All @@ -8,7 +9,5 @@ public interface CIProviderInfo {

CIInfo buildCIInfo();

default boolean isSupportedCiProvider() {
return true;
}
Provider getProvider();
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;

Expand Down Expand Up @@ -55,4 +56,9 @@ private String buildPipelineUrl(final String pipelineId) {

return String.format("https://app.circleci.com/pipelines/workflows/%s", pipelineId);
}

@Override
public Provider getProvider() {
return Provider.CIRCLECI;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static datadog.trace.api.git.GitUtils.normalizeBranch;
import static datadog.trace.api.git.GitUtils.normalizeTag;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -65,4 +66,9 @@ public CIInfo buildCIInfo() {
.ciEnvVars(CODEFRESH)
.build();
}

@Override
public Provider getProvider() {
return Provider.CODEFRESH;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.GitUtils;
Expand Down Expand Up @@ -78,4 +79,9 @@ private PersonInfo buildGitCommitAuthor() {
return new PersonInfo(
personInfo.getName(), personInfo.getEmail(), System.getenv(GITLAB_GIT_COMMIT_TIMESTAMP));
}

@Override
public Provider getProvider() {
return Provider.GITLAB;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;

Expand Down Expand Up @@ -110,4 +111,9 @@ private String buildPipelineUrl(
private String buildJobUrl(final String host, final String repo, final String commit) {
return String.format("%s/%s/commit/%s/checks", host, repo, commit);
}

@Override
public Provider getProvider() {
return Provider.GITHUBACTIONS;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.util.Strings;
Expand Down Expand Up @@ -137,4 +138,9 @@ private String filterJenkinsJobName(final String jobName, final String gitBranch
return jobNameParts[0];
}
}

@Override
public Provider getProvider() {
return Provider.JENKINS;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.ci;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;

Expand All @@ -22,4 +23,9 @@ public CIInfo buildCIInfo() {
.ciJobUrl(System.getenv(BUILD_URL))
.build();
}

@Override
public Provider getProvider() {
return Provider.TEAMCITY;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
Expand Down Expand Up @@ -81,4 +82,9 @@ private String buildCiPipelineName() {
}
return repoSlug;
}

@Override
public Provider getProvider() {
return Provider.TRAVISCI;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static datadog.trace.civisibility.utils.FileUtils.findParentPathBackwards;

import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.GitInfo;
import java.nio.file.Path;
import org.slf4j.Logger;
Expand Down Expand Up @@ -69,7 +70,7 @@ protected Path getCurrentPath() {
}

@Override
public boolean isSupportedCiProvider() {
return false;
public Provider getProvider() {
return Provider.UNSUPPORTED;
}
}
Loading
Loading