Comprehensive auditing and monitoring tools built into OutSystems enable a proactive management of application performance and make it easier to detect problems by allowing the identification of performance issues in real-time. A performance monitoring dashboard delivers application-level analytics. A business activity monitoring dashboard handles business process and workflow monitoring. There are also logging and analytics APIs. All information and metrics are provided by default without any extra work and without introducing any overhead to the runtime environment.
Lower level monitoring and management of application or server resources, such as CPU and the disk, should be done with system monitoring consoles that apply to the underlying technologies when using OutSystems on-premises. Any console that uses web technology can be integrated with OutSystems by means of a plug-in that allows for the addition of new customized tabs.
OutSystems has a rich performance monitoring dashboard that makes it easy to understand performance bottlenecks and take action. The execution times of all queries, web service invocations, screen renderings, schedulers and invocations to adapters, external systems or custom APIs are tracked asynchronously. Performance reports from the management console provide valuable tuning and optimization information for applications. Moreover, no extra frameworks need to be enabled or developed to take those measures. The goal is to help teams quickly and efficiently provide support to any issues that might arise.
This dashboard leverages the logging database of OutSystems and correlates information that is useful and easy to interpret. For example, it shows which database queries are affecting the performance of a specific screen. This eliminates the need for manual correlation steps and provides immediate insight.
Teams can drill down to any level of granularity, from which screens are gaining adoption by end-users to the specific mobile networks where customers are having a bad experience. The dashboard also automatically surfaces issues that a team may not be aware of, such as slow screens or extensions. This reduces the time it takes to resolve them, so teams can focus on creating new applications, not troubleshooting them.
With the infrastructure management console, it's possible to explore how performance of the apps is affecting the end-user experience. Teams can drill down and see the performance of an application on the:
Client, where they can also check the most used operating systems and browsers
Network, where they can check the most used network connections and data carriers
Server, where they can check for slow database queries and slow integration response
End-user experience analytics
What’s bottlenecking performance? The browser rendering? The database? The call to SAP? Or what happens when a customer uses the application over a 3G network? All of these could actually be affecting the overall end-user experience.
OutSystems measures the end-user experience based on industry standard indicators of user satisfaction. With this measurement in place, developers will know how users feel about the applications and will have the ability to further drill down in the information provided to proactively detect, troubleshoot and solve performance issues even before end-users report them.
The following graphic shows what the user experience looks like for the dashboard screen. There is a low score for the preparation screen action, and the number of yellow and red requests indicate that the user experience needs improvement:
During the development or quality assurance cycle, developers can gain insights into how fast an application is rendering in a browser. Client monitoring empowers them to pinpoint performance issues per web page, and even per screen action.
Client monitoring is also easy to achieve for mobile applications, but it requires adding a component to the application, such as Fabric or Google Analytics.
OutSystems enables teams to quickly drill down on network problems. This is useful for identifying performance issues that only manifest themselves with certain network conditions. An example would be a particular page that's slow only over 3G networks. Network monitoring detects it and then makes it visible to the team, who could optimize the application to send less data to the device.
OutSystems enables investigation into server response times by logging and reporting things such as slow queries, integration responsiveness, or custom code invocation time.
For instance, a database transaction that takes 5 ms to complete might not be considered slow, but if runs millions of times per second it may have a performance impact. This type of multiplier is shown in the dashboard so users have full visibility when it's affecting performance.
Business activity monitoring
OutSystems supports business process modeling so teams can quickly create a process on top of an existing application or set of applications. This is often used to guide users throughout existing business processes, such as order approvals, claims handling and other actions.
Normally, attached to such business processes is the need to monitor the service level agreement (SLA) compliance of the running processes. For this, OutSystems has built the Business Activity Monitoring dashboard.
This dashboard enables developers to start monitoring and optimizing their processes right after deploying them for the first time without the need for any development effort. It's offered as open source, so the reports can be easily modified and extended to align with the business language of the organization using them.
All of these analytics capabilities and dashboards are possible because OutSystems logs everything. In fact, applications are automatically instrumented to create error, audit and performance logs by default. Developers do not have to write a single line of code.
At runtime, these metrics are captured asynchronously, so that the performance of applications isn't compromised while they create a constant stream of metrics. Events captured include:
Errors in all application layers
Batch processing executions
Web services invocations, both inbound and outbound
Adapters, integration and custom API invocations
External database accesses
Client side screen access times
These logs are stored in a standard database that users can access to build their own dashboards. This is also possible with APIs. This is an example of a lower level report from the logging database of OutSystems:
All the insights from the analytics capability of OutSystems are publicly exposed in a flexible, easy-to-use, REST API. This API allows the ability to access all registered events in real-time for seamless integration with other enterprise management solutions, and it also enables applications to register custom events.
For instance, the API can be used to extend the dashboard with business data, such as adoption monitoring per department. It's also possible to add a device’s GPS information to the events sent by applications to OutSystems for an exact understanding of where customers or employees were when they performed a specific action.
In OutSystems Forge, there is the AdoptionMonitor application. It leverages the logging information made available by OutSystems to build a dashboard that shows which users are accessing factory applications, This dashboard provides insight to when and how often they're used, gathering trends over time and delivers valuable data on how well certain applications are being received by users.