Technology Stack for Monitoring
A technology stack for monitoring comprises different components (see Figure 11.3):
• Within the microservice itself data has to be recorded and provided to monitoring. For this purpose, a library can be used that directly contacts the monitoring tool. Alternatively, the data can be offered via a uniform interface—for
Figure 11.3 Parts of a Monitoring System
example JSON via HTTP- and another tool collects the data and sends it on to the monitoring tool.
- • In addition, if necessary, there should be an agent to record the data from the operating system and the hardware and pass it on to monitoring.
- • The monitoring tool stores and visualizes the data and can, if needed, trigger an alarm. Different aspects can be covered by different monitoring applications.
- • For analyses of historical data or by complex algorithms a solution based on big data tools can be created in parallel.
Effects on the Individual Microservice
A microservice also has to be integrated into the infrastructure. It has to hand over
monitoring data to the monitoring infrastructure and provide some mandatory data.
This can be ensured by a suitable template for the microservice and by tests.
Try and Experiment
- • Define a technology stack that enables implementation of monitoring in a microservice-based architecture. To do so define the stakeholders and the data that is relevant for them. Each of the stakeholders needs to have a tool for analyzing the data that is relevant for him/her. Finally, with which tools the data can be recorded and how it is stored has to be defined. This section listed a number of tools for the different areas. In conjunction with further research it is possible to assemble a technology stack that is well suited for individual projects.
• Chapter 13 shows an example for a microservice-based architecture, and in section 13.15 there is also a suggestion about how the architecture can be extended by monitoring. How does your current project handle monitoring? Can some of the technologies presented in this section also be advantageous for your project? Which? Why?