Monitoring Kubernetes and OpenShift v3 with AppDynamics
Air-Date August 28, 2018
Run Time: 60 minutes
@Mark.Prichard and @Sasha.Jeltuhin discussed how to deploy and monitor Kubernetes-based microservices using the OpenShift v3 platform. Guest co-presenter Sasha Jeltuhin, AppDynamics Architect, shared nsights from his extensive work with Kubernetes and OpenShift in production environments.
Mark Prichard, AppDynamics Senior Director of Product Management, and Sasha demonstrated configuring OpenShift v3 deployments to enable full visibility into services, applications, containers, and service orchestration using AppDynamics application performance monitoring (APM). They also looked in detail at an OpenShift deployment example and advised on the most important metrics and events to monitor in microservices-based environments.
Architects and operations teams are highly encouraged to watch this playback of the live session. If you're interested in Kubernetes and OpenShift, this session will certainly be worth your time.
Q: Can we have a view of multiple clusters at one time to show the worst clusters on the dashboard?
A: Yes, clusters are one of the variables that we use. You can have multiple clusters on a single dashboard or separate dashboards.
Q: What are the main value adds that AppDynamics can provide beyond Prometheus metrics?
A: Prometheus is obviously one of the main choices for monitoring Kubernetes and OpenShift and we collect most of the same metrics. The value that AppDynamics provides is that this is just one dataset that we look at. We combine it with a lot of other datasets on application and business performance that we collect through agents. We then provide a combined view in dashboards, where you can correlate APM metrics with the cluster data without having to use multiple tools. You can use AppDynamics as the common ground; because everyone is looking at the same data, you can have interesting collaboration with more trust.
With AppDynamics, you have an infrastructure view and application view linked together. You have all the EUM data, which distills a great deal of information about the actual user experience. Anyone can pull data, but providing it in the context is what’s valuable. Please note that we work with OpenShift in terms of building interfaces to Prometheus because there are other things you may be interested in. Some customers may have other metrics they want to pull in and correlate with application-specific metrics.
Q: Which data sources are out of the box?
A: We install dropins (dropin components) to gather these data points. All APM data is coming from APM agents that are packaged in the containers. We also have an infrastructure monitoring agent, which is deployed as a daemonset. That's what's picking up the information and pulling it into the metric store, from which you can build the dashboard. This is all out of the box.
Q: Is the OpenShift_Cluster dashboard an out of the box dashboard that comes in AppDynamics for OpenShift or does it need to be imported via a json file?
A: It needs to be imported via a json file. It’s a customizable dashboard and there will probably be multiple variants of it, depending on the angle at which operators may want to look at the data.
Q: Can you drill down to see the problematic pods and in which namespace they are?
A: Every widget we saw in the dashboard leads to a list of data points (e.g. pods, entpoints, wherever the problem lies, etc.). You can see all of the information about the underlying data whenever you see an alert or at any moment in time.
Q: What version of AppDynamics do I need to see metrics in real time?
A: This is our support for OpenShift and certification came with v4.5.0. It works fine with v4.4.3, when we had full Kubernetes support.
Q: Does the app agent run as a separate container along with the container used by the application in a pod?
A: The agent will always ultimately be running within the main container of the application. It won't be in a separate container running alongside it. This is why we use Init containers some cases - so there are no other containers running next to your main container. It's all embedded inside of it.
Q: Is there a small Java agent package made for Docker?
A: We have a number of packages that we push out to the Docker hub. If you go to the Docker store, that’s where you’ll see the official images. The smallest ones are the ones that work with Alpine. We’re working on new variants of those, one of which is designed to be particularly lightweight.
Q: Do I need to instrument the agent on each JVM in the cluster?
A: For application performance monitoring, yes. For cluster monitoring, no.
Q: How do you instrument app agents? What configuration changes do we need to make our application to implement AppDynamics?
A: While this is out of scope for this particular webinar, we recommend watching one of our previous technical sessions that went into a lot of detail on this topic: Planning a Container-Based Architecture
The main thing is to attach the APM agents following the instructions in our Monitoring Cloud Applications documentation. Once the agent is attached, all of the configs and the discovery of tiers and nodes will be done automatically. It’s just a matter of attaching the agent to the appropriate runtime. In the case of JVM, its simply a matter of having a Java agent attached at the startup of the JVM.