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

CI logs / artifacts analyzing tool #67

Closed
Totktonada opened this issue May 21, 2021 · 4 comments
Closed

CI logs / artifacts analyzing tool #67

Totktonada opened this issue May 21, 2021 · 4 comments
Assignees

Comments

@Totktonada
Copy link
Member

Totktonada commented May 21, 2021

In short:

  • Implement as an external crawler (see reasoning below).
  • A service that holds collected logs / artifacts and shows generated HTML reports.
  • Weekly HTML reports to track progress, statistics timeline and graphs.
  • Ability to regenerate old HTML reports, when a new matcher is added (or existing one is changed).
  • The service should allow to download all collected logs and artifacts at once (for local experiments).
  • Support are script language for problem matchers.
  • Easy to experiment locally with a new matcher and propose it via GitHub pull request.
  • Collect all jobs, not only ones on release branches, to have great amount of statistics.

Reasoning behind external crawler

Here we compare two approaches:

  1. Send completed (successful or failed) job id from the job itself.
  2. Gather past jobs information externally.

The first approach is simpler, it is the main its advance.

The second approach has the following advances:

  • Able to track GitHub Actions and self-hosted runners infrastructure fails.
  • In case of an error in the crawler or outage of the service, we can fix it and collect past jobs.

Matchers API thoughts

Input: log and artifact files in argv.

Output: simple key-value pairs.

type: flaky test
issue: gh-xxxx
summary: blah blah
(and so on)
@ligurio
Copy link
Member

ligurio commented Sep 14, 2021

I believe ELK should match to your requirements

@kyukhin kyukhin added the teamX label Sep 17, 2021
@Totktonada
Copy link
Member Author

The initial implementation is there: https://github.com/tarantool/multivac

It has the following features at the moment:

  • Fetch and update jobs metainfo and logs.
  • Generate last seen test fails report over the whole logs collection (there is also filtering per branch). The report can be in the CSV or the HTML format.
  • (There is also spent time calculator, but it is the side feature, out of context here.)

It is possible to add the script into cron, setup nginx and generate daily / weekly reports about overall situation with tests.

There are some known problems and ideas about a new functionality:

But I think that the problem is generally solved from the scripting side.

The next action is to setup a machine and provide HTTP access to regularly updated reports. @kyukhin volunteered for this.

@Totktonada
Copy link
Member Author

Now the service can be found here: https://shame.tarantool.dev/crawler/

@NickVolynkin
Copy link
Contributor

Pretty much of this issue is done already in multivac/InfluxDB/Graphana toolchain. I will move this ticket to tarantool/multivac and close it.

@NickVolynkin NickVolynkin transferred this issue from tarantool/tarantool-qa Oct 24, 2022
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

4 participants