Skip to content

Commit

Permalink
send data to elasticsearch successfully
Browse files Browse the repository at this point in the history
  • Loading branch information
slxiao committed Nov 26, 2019
1 parent dc3a537 commit 0465d5d
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,27 +45,35 @@ public void onCompleted(final Run<?, ?> run, TaskListener listener) {

PipelineMonitorWriter pmWrite =
new PipelineMonitorWriter(run, errorStream, listener, run.getCharset());
pmWrite.write();

/*
* final String buildResult; Result result = run.getResult(); if (result == null) { buildResult
* = "ONGOING"; } else { buildResult = result.toString(); }
*
* BuildStatus build = new BuildStatus();
* build.setJenkinsUrl(Jenkins.getInstance().getRootUrl());
* build.setJobName(run.getParent().getName()); build.setNumber(run.getNumber());
* build.setResult(buildResult); build.setDuration(run.getDuration());
*
* RestClientUtil.postToService("http://10.183.42.147:8080", build);
*
* TestResultAction testResultAction = run.getAction(TestResultAction.class); TestResults
* testResults = TestResults.fromJUnitTestResults(testResultAction);
* RestClientUtil.postToService("http://10.183.42.147:8080", testResults);
*
* CoberturaBuildAction coberturaAction = run.getAction(CoberturaBuildAction.class);
* CodeCoverage codeCoverage = CodeCoverage.fromCobertura(coberturaAction);
* RestClientUtil.postToService("http://10.183.42.147:8080", codeCoverage);
*/

pmWrite.write(null);


final String buildResult;
Result result = run.getResult();
if (result == null) {
buildResult = "ONGOING";
} else {
buildResult = result.toString();
}

BuildStatus build = new BuildStatus();
build.setJenkinsUrl(Jenkins.getInstance().getRootUrl());
build.setJobName(run.getParent().getName());
build.setNumber(run.getNumber());
build.setResult(buildResult);
build.setDuration(run.getDuration());

pmWrite.write(build);

TestResultAction testResultAction = run.getAction(TestResultAction.class);
TestResults testResults = TestResults.fromJUnitTestResults(testResultAction);
pmWrite.write(testResults);

CoberturaBuildAction coberturaAction = run.getAction(CoberturaBuildAction.class);
CodeCoverage codeCoverage = CodeCoverage.fromCobertura(coberturaAction);
pmWrite.write(codeCoverage);

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ String getJenkinsUrl() {
return Jenkins.getInstance().getRootUrl();
}

public void write() {
JSONObject payload = dao.buildPayload(buildData);
public void write(Object object) {
JSONObject payload = dao.buildPayload(buildData, object);
try {
dao.push(payload.toString());
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

import org.apache.commons.lang.time.FastDateFormat;

import io.jenkins.plugins.pipelinemonitor.util.JsonUtil;

/**
* Abstract data access object for Logstash indexers.
*
Expand All @@ -36,9 +38,12 @@
public abstract class AbstractRemoteServerDao implements RemoteServerDao {

@Override
public JSONObject buildPayload(BuildData buildData) {
public JSONObject buildPayload(BuildData buildData, Object object) {
JSONObject payload = new JSONObject();
payload.put("data", buildData.toJson());
payload.put("build", buildData.toJson());
if (object != null) {
payload.put("result", JsonUtil.convertToJson(object));
}
payload.put("source", "jenkins");
payload.put("@timestamp", FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
.format(Calendar.getInstance().getTime()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,5 @@ static enum ServerType {
* @param logLines The log data to transmit, not null
* @return The formatted JSON object, never null
*/
public JSONObject buildPayload(BuildData buildData);
public JSONObject buildPayload(BuildData buildData, Object object);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package io.jenkins.plugins.pipelinemonitor.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;


public class JsonUtil {

private static final Logger LOGGER = Logger.getLogger(JsonUtil.class.getName());

protected JsonUtil() {
throw new IllegalAccessError("Utility class");
}

/**
* covert object to json.
*
* @param object object.
* @return json.
*/
public static JSONObject convertToJson(Object object) {
ObjectMapper mapper = new ObjectMapper();
String convertedJson = "";
try {
convertedJson = mapper.writeValueAsString(object);
return JSONObject.fromObject(convertedJson);
} catch (JsonProcessingException e) {
LOGGER.log(Level.WARNING, "Json conversion failed for object " + object, e);
}
return JSONObject.fromObject(convertedJson);
}

}

0 comments on commit 0465d5d

Please # to comment.