Monitoring software systems is essential to maintaining the resources and performance of a system. So, what should be monitored in a MuleSoft runtime environment?
- Host Machine
- CPU Utilization
- Memory Utilization
- Disk Utilization
- MuleSoft Engine
- JVM Metrics
- Heap Usage
- Garbage Collections
- JVM Metrics
- MuleSoft Applications and APIs
- Application Invocations with success/error
- Application Availability
- Application Response Time
- Application Logs
- Dependent System Availability
When Should Alerts Be Sent?
A good monitoring system should also include alerts when the value of being monitored passes some predefined threshold. When should alerts be sent to operational stakeholders? The exact values for the alerts will depend on the non-functional requirements for the applications. It is important to be alerted before the application can no longer meet the non-functional requirements. Generally, you want to set the values to receive an alert early enough to act on it before it is a more significant issue. The signs may require some adjustment over time, so it’s best to pick reasonable values to start and adjust.
What Monitoring Is Available With Anypoint Monitoring vs. External Tooling?
The Anypoint Platform provides various monitoring capabilities via Anypoint Monitoring, both with the included base version and the enhanced version available with the Titanium support package. As with any application, you can use external monitoring tools, which may be the preferred approach if you already use the tooling for many other related applications.
* For Hybrid or in Cloudhub with Titanium Subscription - see the next section for additional details.
Monitoring Hybrid Runtimes vs. Cloudhub
When your MuleSoft applications are deployed to CloudHub, your monitoring options differ since you won’t access the machine that the MuleSoft runtime is running on. Without direct access to the machine, you cannot add agents (e.g., filebeat or metricbeat) that allow external monitoring tools to collect data. When running on CloudHub, the Anypoint Monitoring agent is available to you automatically, while your applications would need to push or expose metrics and logs to external tooling. With a hybrid deployment, external tooling has more capabilities than it does on CloudHub since you have access to install your tooling on the server, and the Anypoint Monitoring agent is also still available. A Titanium subscription gives you access to the Anypoint Monitoring Archive API, which allows you to retrieve the data collected by Anypoint Monitoring and send it to your external monitoring tool, although this data will be detailed and not real-time.
Which Tool Should You Use?
There are advantages and disadvantages to each tool. Let’s look at a few:
Built-in Dashboard Snippet
The most significant advantage to using the base Anypoint Monitoring is that it is included in your MuleSoft subscription. It covers many primary use cases, such as built-in application and API dashboards, basic custom dashboards, and basic alerting features, so it is an excellent place to start. If you are just getting started and don’t have more advanced use cases, this is the tool you should use.
Anypoint Monitoring With Titanium Subscription
Flow Dashboard Snippet
Adding Titanium to your MuleSoft subscription will grant you access to more advanced features, such as additional built-in dashboards, more advanced custom dashboard features, log management, and data retention for more than 30 days. The most significant advantage over the standard Anypoint Monitoring is the advanced alerting, which allows you to get more customized alerts when events happen in your applications. The biggest disadvantage to adding a Titanium subscription is the cost - it is an additional fee on top of your basic MuleSoft subscription.
Elastic Uptime Dashboard
External tooling provides the most flexible solution when running hybrid runtimes and can augment the base Anypoint Monitoring capabilities when running on CloudHub. Observability such as Elastic, Splunk, and New Relic provide the greatest ability to monitor your applications and alert when errors occur and provide completely customizable dashboards and alerting. They have the added benefit of being able to monitor and alert on systems outside your MuleSoft implementations to provide a more holistic view of your environment. The biggest drawback to external tooling is the cost and effort. Even with the open source solutions, you will incur maintaining the monitoring and alerting tool.
Start implementing your monitoring solution today! If you’re new to MuleSoft or implementing a monitoring and alerting solution, contact us to get started.