When development engineers need to diagnose a problem, they often have access to a log of events that have occurred on a particular software system or hardware device. This log contains a series of traces that record what has been happening in the system. These traces are (or should be) annotated with a timestamp, that is, a time associated with each event. Part of their job is to inspect these logs and be able to know what has happened on the system or machine, as well as the actions performed by its users.
In this project we want to develop a system that, given a structured log (in which the traces follow a specific format, with fixed and variable information), generates a timeline to easily visualize what has been happening in the system. This will help engineers to verify the problem information against the events reported by the reporter and also to know the history of the system up to the end of the traces.
The user will be able to configure what each of the traces means, for example, if there is a trace that says "[07/08/2023] Starting printing job plano1.pdf", that means that a job named "plano1.pdf" has started printing. To configure this, templates of the traces will be defined, optionally using regular expressions, indicating which is the common part, which parts are discardable, the variables to be captured (in the example above, the name "plano1.pdf") and to which event each trace is associated (in the example, the start of a printing job).
For the development, the student will be able to use the logs that they consider appropriate, or the project tutors will provide a set of test logs like the final logs for which the tool is to be applied, which are confidential.
Regarding the application itself, it can be a command line application (a set of scripts), a desktop application or a web application. The important thing is to be able to generate an image with the timeline of the events that have been happening and these can be consulted in an easy way.
Finally, we also want to integrate this tool with Jira, a project management system. Thus, the user will be able to indicate an issue number and, using the Jira API (there are libraries to access in different languages), the associated logs will be downloaded, potentially in a compressed format (ZIP, tar.gz, etc), analyzed, the timeline will be generated and added, as an image, to the original issue.