Jenkins plugin to monittor comaprable content on system
- Job run details
- Project state graph
- Multiple diffs
- Changing build status
- Dynamic patch-like view
This plugin allows you to monitor any difference in output of file or of rnu of any command, where unit is an line. Exemplar usage is
rpm -qa - then during every run, all packages on system are stored, and during next run they are compared. Or
env to monitor all variables in job
find above specific path and so on. Of course if yours monitoring is supposed to be multios, the content must be generated by 3rd party logic or use Multiple diffs - one diff per command. On incompatible os, it willbe simply skipp (just do not fail run on failure via Changing build status)
In job build screen, simple, but a lot of saying
RPM Changes: X RPMs installed, Y RPMs removed is provided, where RPM Changes is link to following screen. Note, that Rpm Changes, Rpms installed and RPMs removed are custom strings which describe the changes you are monitoring. See advanced section in job config of plugin.
You can nicely see what lines (packages in our case) had changed.
this graph shows how many lines was in stream, how many lines were removed compared to previous, how many lines were added.
Unluckily the total - blackline, added - green line and removed as red line in one graph was not happy choice. Usually minor adds/removes are not visible. Wehn we do an system update, graph loks like:
So although you see major changes, the red and green lines get mixed.
You can see it is comand or file what you put here. It operates on workspace, so the file do not need to be archived (as is celar from nature of command xor file)
You can set up all the labels acording your taste, and thus give meaning to the diff you are presenting
You can havew sevral diffs, each comparing different command/file. According to this, several charts is show and several reports is navigable and collapsable in main report. Eah comaprsion have ID wich is mandatory to set, and is apointing the base line. Chnage of id == lost/change of baseline. Each of your charts can have separate title, and names of statuses (aka added lines x installed apps x new variables ).
You can set up plugin to change build status to unstable if there is change detected by diff.
You can set up plugin to change build status to failed if there command/readign fails and/or nothing is read.
The plugin can dynamicaly calcualte difference in monitored files/commands between any two jobs in patch-like view. From main screen:
You can click /patch: whch will bring you directly to diff, eg .../45/patch/dynamic-diff?from=45&to=44&ids=.*&context=-1:
where you can modify the GET parameters as needed. Or you can clicl the Patch like report whcih will bring you to form:
Which allows you to set the GET parameter via gui.
Note, that individual ids are in reality regexes. Plain diff and visualised diff is based on https://github.com/java-diff-utils/java-diff-utils
This plugin depends on chartjs-api library plugin