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 a reporter thats sends the timings to a simple endpoint #95

Open
arcadefire opened this issue May 3, 2019 · 3 comments
Open

Add a reporter thats sends the timings to a simple endpoint #95

arcadefire opened this issue May 3, 2019 · 3 comments

Comments

@arcadefire
Copy link

I think it could be useful having a new reporter (something like NetworkReporter) that sends the timings entries encoded in JSON to a simple remote endpoint, so to internally collect data within an organization and perform analysis on it.

If you think it could be useful too, I can create a small PR to showcase my idea.

@dbarwacz
Copy link

I'm researching a complete CI setup that would allow us to gather data about builds on multiple pipelines. I think this example would be very useful @arcadefire. What did you plan as merging strategy for target endpoint? Would you simply upload new file, rewriting contents? I'm concerned about case, where multiple builds pick up historic stats, perform build and append data about current one, overwriting the other.

@arcadefire
Copy link
Author

arcadefire commented May 28, 2019

My initial idea was to just send a post request containing the same JSON generated by the JsonReporter to a remote endpoint that logs the data on a DB. I haven't thought about a merging strategy.

For now, my simple endpoint would just append the entries in order to create some sort of historical stats table, used to observe the project's overall compilation times trend.

Since a PR says more than a thousand words, I condensed here my proposal: #96.

@dbarwacz
Copy link

Thank you very much for taking the time to compile the results.
I understand now, because (in your custom reporter) you use run(List<Timing> timings), you don't need to upload aggregated xml report file, but can instead upload this build data. Is that correct? I'll use your example to test locally so that I can check how easy it is to visualise/gain insights.

During my research, I prepared minimal (local) installation for nebula plugin (https://github.com/nebula-plugins/gradle-metrics-plugin) but I found it very hard to query/visualise that data in kibana later. Your approach looks very promising in that regard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants