During this workshop, we will discover the power of Application Performance Monitoring (APM) with Elastic. We will use the OpenTelemetry demo as the example application. First, we will set up the Kubernetes cluster on Strigo platform and the Elastic deployment on Elastic Cloud. Next, we will configure the OpenTelemetry collector to send its data to Elastic. When the data is in Elastic, we will explore the APM data in Kibana and use it to troubleshoot an issue in the application. Finally, we will set up Synthetic Monitoring to monitor the availability of the demo application.
Elastic APM is an application performance monitoring system built on top of the Elastic Stack. It allows you to monitor software services and applications in real time, collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, etc. Elastic APM agents offer rich auto-instrumentation out of the box (e.g., timing DB queries, etc.) for supported frameworks and technologies. You can also use custom instrumentation for custom purposes.
Elastic APM supports distributed tracing and whilst also supporting OpenTelemetry natively. It enables you to analyze performance throughout your microservice architecture all in one view. Elastic APM accomplishes this by tracing all of the requests — from the initial web request to your frontend service to queries made to your backend services. This makes finding possible bottlenecks throughout your application much easier and faster.
For this workshop, we need a Kubernetes cluster to deploy the OpenTelemetry demo application. We use the Strigo platform to provide a personal machine that has been pre-configured with a Kubernetes cluster (Minikube) and some tools we'll need.
We will deploy the OpenTelemetry demo application, the OpenTelemetry Collector and the Elastic Agent. The data will be send to an Elastic deployment running on Elastic Cloud.
Setting up the workshop environment: your personal Strigo machine and an Elastic deployment on Elastic Cloud.
Deploying and configuring the OpenTelemetry demo application.
Deploying and configuring an Elastic Agent to gather extra information about the Kubernetes cluster.
Exploring the APM app in Kibana, discovering the data and creating visualizations and dashboards.
Using the APM app to hunt for issues with the application and leveraging AIOps to find the root cause fast.
Creating 2 monitors to check if the application is up and running. One browser monitor and one lightweight HTTP monitor.