Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
b9956dc
organize imports
mat1e Apr 12, 2022
95fa6da
add controller name + test connection
mat1e Apr 12, 2022
60e8986
add fields jenkins_url and project_namespace
mat1e Apr 13, 2022
de02075
add build_user and build_trigger
mat1e Apr 13, 2022
26cd21b
remove controller name (replaced by jenkins_url)
mat1e Apr 13, 2022
8962cbf
init GitPointGenerator + retrieve infos in logs
mat1e Apr 13, 2022
9addb6d
replace null by empty string
mat1e Apr 13, 2022
ddc06ef
add git Point
mat1e Apr 13, 2022
2cfefbc
retrieve agent name in log if no present
mat1e Apr 13, 2022
d1af3f0
init agent point + use git plugin for git point
mat1e Apr 14, 2022
27e6622
fix hasReport for GitPointGenerator
mat1e Apr 14, 2022
93e360c
fix git_repository
mat1e Apr 14, 2022
244591c
fix build_trigger
mat1e Apr 14, 2022
92b467d
init AgentPointGenerator
mat1e Apr 20, 2022
341b5ed
get agent points
mat1e Apr 20, 2022
7e4d3fc
change scope of workflow-api dependency
mat1e Apr 21, 2022
be6bd15
update AgentPointGenerator to not use FlowGraphAction
mat1e Apr 21, 2022
1d8243f
fix build_cause and build_user
mat1e Apr 21, 2022
2bc725b
add agents point to influxdb metrics
mat1e Apr 21, 2022
f27a70e
add javadocs
mat1e Apr 21, 2022
6f7acc2
fix AgentPointGenerator + tests
mat1e Apr 21, 2022
aba2e03
fix AgentPointGenerator + tests
mat1e Apr 21, 2022
3e13869
fix GitPointGenerator hasReport
mat1e Apr 21, 2022
e761fd9
tests for GitPointGenerator
mat1e Apr 21, 2022
cfb2268
change sonarqube token with credentials
mat1e May 4, 2022
e91dce5
Merge remote-tracking branch 'groupe-edf/development' into improve_pl…
mat1e May 19, 2022
503d565
fix dependencies
mat1e May 19, 2022
3f961e5
fix button test connection
mat1e Jun 2, 2022
205ca55
fix security for check method + test connection display + null safe o…
mat1e Jun 2, 2022
3e7a6c3
change jenkins_url to instance and project_namespace to tag
mat1e Jun 9, 2022
6630d79
fix dependencies
mat1e Aug 12, 2022
bf47366
fix tests pt1 (mock jenkins instance)
mat1e Aug 16, 2022
2474e66
dependencies management
mat1e Aug 16, 2022
c4b544c
fix tests pt2 (add missing plugin)
mat1e Aug 16, 2022
9f68329
use managed slf4j version
mat1e Aug 16, 2022
41056f8
Merge remote-tracking branch 'groupe-edf/development' into improve_pl…
mat1e Aug 16, 2022
ce451d9
fixing merge
mat1e Aug 16, 2022
4d1918e
fix and organize dependencies versions
mat1e Aug 17, 2022
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
99 changes: 50 additions & 49 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.50</version>
<version>4.20</version>
</parent>

<artifactId>influxdb</artifactId>
<url>https://github.com/jenkinsci/influxdb-plugin</url>
<version>3.3.1-SNAPSHOT</version>
<version>3.3-SNAPSHOT</version>
<packaging>hpi</packaging>

<name>InfluxDB Plugin</name>
Expand All @@ -47,42 +47,43 @@ THE SOFTWARE.
</scm>

<properties>
<access-modifier-annotation.version>1.21</access-modifier-annotation.version>
<annotation-indexer.version>1.14</annotation-indexer.version>
<asm.version>9.1</asm.version>
<bridge-method-annotation.version>1.18</bridge-method-annotation.version>
<byte-buddy.version>1.9.10</byte-buddy.version>
<caffeine.version>2.9.2</caffeine.version>
<byte-buddy-agent.version>1.12.8</byte-buddy-agent.version>
<cobertura.version>1.12.1</cobertura.version>
<commons-csv.version>1.8</commons-csv.version>
<commons-lang3.version>3.11</commons-lang3.version>
<configuration-as-code.version>1.55.1</configuration-as-code.version>
<credentials.version>2.6.1.1</credentials.version>
<doxia-sink-api.version>1.1.2</doxia-sink-api.version>
<gson.version>2.8.9</gson.version>
<git-plugin.version>3.9.1</git-plugin.version>
<gson.version>2.8.8</gson.version>
<hpi.compatibleSinceVersion>3.0</hpi.compatibleSinceVersion>
<influxdb-client-java.version>4.1.0</influxdb-client-java.version>
<jacoco.version>1.0.12</jacoco.version>
<java.level>8</java.level>
<jenkins.version>2.289.1</jenkins.version>
<jimfs.version>1.0</jimfs.version>
<junit.version>4.13.1</junit.version>
<junit_plugin.version>1.24</junit_plugin.version>
<kotlin-stdlib.version>1.6.0</kotlin-stdlib.version>
<kotlin-stdlib.version>1.3.71</kotlin-stdlib.version>
<mailer.version>391.ve4a_38c1b_cf4b_</mailer.version>
<maven-reporting-api.version>3.0</maven-reporting-api.version>
<metrics.version>4.0.2.8.1</metrics.version>
<mockito-core.version>2.26.0</mockito-core.version>
<mockito-core.version>4.4.0</mockito-core.version>
<performance.version>3.0</performance.version>
<perfpublisher.version>8.05</perfpublisher.version>
<plexus-utils.version>3.0.16</plexus-utils.version>
<plexus-utils.version>1.5.12</plexus-utils.version>
<plexus-container-default.version>1.0-alpha-30</plexus-container-default.version>
<plain-credentials.version>1.7</plain-credentials.version>
<robot.version>3.0.0</robot.version>
<script-security.version>1.75</script-security.version>
<slf4j.version>1.7.30</slf4j.version>
<spotbugs-annotations.version>4.2.0</spotbugs-annotations.version>
<scm-api.version>2.2.7</scm-api.version>
<script-security.version>1.58</script-security.version>
<spotbugs.failOnError>false</spotbugs.failOnError>
<structs.version>1.23</structs.version>
<spotbugs.version>4.2.0</spotbugs.version>
<sshd.version>3.0</sshd.version>
<structs.version>308.v852b473a2b8c</structs.version>
<symbol-annotation.version>1.10</symbol-annotation.version>
<workflow-api.version>2.33</workflow-api.version>
<workflow-step-api.version>2.20</workflow-step-api.version>
Expand All @@ -102,10 +103,10 @@ THE SOFTWARE.
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
<repository>
<id>maven.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/releases/</url>
</repository>
<repository>
<id>maven.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/releases/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
Expand Down Expand Up @@ -166,6 +167,26 @@ THE SOFTWARE.
<artifactId>symbol-annotation</artifactId>
<version>${symbol-annotation.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>scm-api</artifactId>
<version>${scm-api.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci</groupId>
<artifactId>annotation-indexer</artifactId>
<version>${annotation-indexer.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${byte-buddy-agent.version}</version>
</dependency>
<dependency>
<groupId>com.infradna.tool</groupId>
<artifactId>bridge-method-annotation</artifactId>
<version>${bridge-method-annotation.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

Expand Down Expand Up @@ -197,11 +218,6 @@ THE SOFTWARE.
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>junit</artifactId>
<version>${junit_plugin.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand All @@ -217,7 +233,6 @@ THE SOFTWARE.
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-api</artifactId>
<version>${workflow-api.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
Expand Down Expand Up @@ -283,16 +298,6 @@ THE SOFTWARE.
<artifactId>commons-csv</artifactId>
<version>${commons-csv.version}</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>${caffeine.version}</version>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>${spotbugs-annotations.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
Expand All @@ -304,50 +309,46 @@ THE SOFTWARE.
<version>${jimfs.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.modules</groupId>
<artifactId>sshd</artifactId>
<version>${sshd.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin-stdlib.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci</groupId>
<artifactId>annotation-indexer</artifactId>
<version>${annotation-indexer.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>script-security</artifactId>
<version>${script-security.version}</version>
</dependency>
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>access-modifier-annotation</artifactId>
<version>${access-modifier-annotation.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>git</artifactId>
<version>${git-plugin.version}</version>
<optional>true</optional>
</dependency>
</dependencies>


<!-- The current maintainers of the plugin -->
<developers>
<developer>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,51 @@
package jenkinsci.plugins.influxdb;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import org.jenkinsci.plugins.plaincredentials.StringCredentials;

import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.InfluxDBClientOptions;
import com.influxdb.client.write.Point;

import hudson.EnvVars;
import hudson.ProxyConfiguration;
import hudson.model.Run;
import hudson.model.TaskListener;
import jenkins.model.Jenkins;
import jenkinsci.plugins.influxdb.generators.*;
import jenkinsci.plugins.influxdb.generators.AgentPointGenerator;
import jenkinsci.plugins.influxdb.generators.ChangeLogPointGenerator;
import jenkinsci.plugins.influxdb.generators.CoberturaPointGenerator;
import jenkinsci.plugins.influxdb.generators.CustomDataMapPointGenerator;
import jenkinsci.plugins.influxdb.generators.CustomDataPointGenerator;
import jenkinsci.plugins.influxdb.generators.GitPointGenerator;
import jenkinsci.plugins.influxdb.generators.JUnitPointGenerator;
import jenkinsci.plugins.influxdb.generators.JacocoPointGenerator;
import jenkinsci.plugins.influxdb.generators.JenkinsBasePointGenerator;
import jenkinsci.plugins.influxdb.generators.MetricsPointGenerator;
import jenkinsci.plugins.influxdb.generators.PerfPublisherPointGenerator;
import jenkinsci.plugins.influxdb.generators.PerformancePointGenerator;
import jenkinsci.plugins.influxdb.generators.PointGenerator;
import jenkinsci.plugins.influxdb.generators.RobotFrameworkPointGenerator;
import jenkinsci.plugins.influxdb.generators.SonarQubePointGenerator;
import jenkinsci.plugins.influxdb.generators.serenity.SerenityJsonSummaryFile;
import jenkinsci.plugins.influxdb.generators.serenity.SerenityPointGenerator;
import jenkinsci.plugins.influxdb.models.Target;
import jenkinsci.plugins.influxdb.renderer.ProjectNameRenderer;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import org.jenkinsci.plugins.plaincredentials.StringCredentials;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;

public class InfluxDbPublicationService {

Expand Down Expand Up @@ -174,6 +194,9 @@ public void perform(Run<?, ?> build, TaskListener listener, EnvVars env) {
// Points to write
List<Point> pointsToWrite = new ArrayList<>();

AgentPointGenerator agentGen = new AgentPointGenerator(build, listener, measurementRenderer, timestamp, jenkinsEnvParameterTag, customPrefix);
addPoints(pointsToWrite, agentGen, listener);

// Basic metrics
JenkinsBasePointGenerator jGen = new JenkinsBasePointGenerator(build, listener, measurementRenderer, timestamp, jenkinsEnvParameterTag, jenkinsEnvParameterField, customPrefix, measurementName, env);
addPoints(pointsToWrite, jGen, listener);
Expand Down Expand Up @@ -250,6 +273,14 @@ public void perform(Run<?, ?> build, TaskListener listener, EnvVars env) {
logger.log(Level.FINE, "Plugin skipped: SonarQube");
}

GitPointGenerator gitGen = new GitPointGenerator(build, listener, measurementRenderer, timestamp, jenkinsEnvParameterTag, customPrefix);
if (gitGen.hasReport()) {
listener.getLogger().println("[InfluxDB Plugin] Git data found. Writing to InfluxDB...");
addPoints(pointsToWrite, gitGen, listener);
} else {
logger.log(Level.FINE, "Plugin skipped: Git");
}

SerenityJsonSummaryFile serenityJsonSummaryFile = new SerenityJsonSummaryFile(env.get("WORKSPACE"));
SerenityPointGenerator serenityGen = new SerenityPointGenerator(build, listener, measurementRenderer, timestamp, jenkinsEnvParameterTag, customPrefix, serenityJsonSummaryFile);
if (serenityGen.hasReport()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
package jenkinsci.plugins.influxdb.generators;

import java.io.IOException;
import java.io.StringReader;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.StrSubstitutor;

import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;

import hudson.EnvVars;
import hudson.model.Run;
import hudson.model.TaskListener;
import jenkins.model.Jenkins;
import jenkinsci.plugins.influxdb.renderer.ProjectNameRenderer;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.StrSubstitutor;

import java.io.IOException;
import java.io.StringReader;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.stream.Collectors;

public abstract class AbstractPointGenerator implements PointGenerator {

public static final String PROJECT_NAMESPACE = "project_namespace";
public static final String PROJECT_NAME = "project_name";
public static final String PROJECT_PATH = "project_path";
public static final String INSTANCE = "instance";
public static final String BUILD_NUMBER = "build_number";
public static final String CUSTOM_PREFIX = "prefix";

Expand Down Expand Up @@ -57,6 +61,8 @@ public Point buildPoint(String name, String customPrefix, Run<?, ?> build, long

point.addTag(PROJECT_NAME, projectName);
point.addTag(PROJECT_PATH, projectPath);
point.addTag(INSTANCE, Jenkins.get().getRootUrl());
point.addTag(PROJECT_NAMESPACE, projectPath.split("/")[0]);


if (StringUtils.isNotBlank(jenkinsEnvParameterTag)) {
Expand Down
Loading