Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform - Deodato, Pedro Henrique Jones (2021)
Low-Code Development platforms enable users to rapidly develop applications relying on a form of abstraction of the actual code run by the system. The developer interacts mostly with a visual programming language, needing to write few or no lines of code at all. The abstraction and the degree of automation working underlyingly diminish greatly the time required to implement a fully functional application. However, the same abstraction that accelerates development also contributes to the mapping gap between running and written code. The problem arises as the information exposed by the current running systems complies with the generated running code (e.g.: through verbose logs), rather than the low-code abstraction employed by the developer. This work’s case study is of the OutSystems platform, on which it addresses the improvement of the relation between a runtime problem and the OutSystems code that led to it. Particularly, the problem will be faced in the context of most OutSystems running applications, i.e., of a multi-machine setting. The proposed solution modifies the OutSystems compiler, so that the application publishing process automatically generates OpenTelemetry instrumentation code, that exports tracing information on the same abstraction level as the one developed. Said information is currently presented using external tools, such as Jaeger. As a whole, the approach shall provide relevant information about the system’s runtime state, facilitating the task of finding a possible root-cause of an encountered problem. The proposed solution was tested against its impact regarding performance overhead, namely on the server and client machines, as well as on network activity. The results pointed out some overhead, particularly on the client-side’s CPU consumption and number of KBytes sent. Real users were also tested, to analyse the overall usability of the solution (and its collected and presented information), leading to a success rate of, approximately, 90% on user interpretation of the information and usability scoring.