About the author: Chinmay Gaikwad is a Technical Evangelist at Epsagon (LinkedIn).
Service maps are a visual and interactive depiction of how the services interact with each other. They also provide critical health information (such as latency, number of errors, etc.) for each service. As more and more applications are getting deployed as microservices, service maps have become increasingly important.
In this blog, we will explore the importance of service maps in an observability solution and cover the basics of this feature in Epsagon. In the next blog, we will go into the details of the benefits of service maps.
Epsagon Service Maps
Epsagon enables you to understand complex distributed application architecture. The Epsagon Service Map decomposes applications into resources and services, drawing their observed connections in real-time so that you can identify errors, dependencies, or performance bottlenecks in your architecture. Service maps utilize distributed tracing to connect different applications.
Generating service maps on Epsagon is extremely simple. First, you need to integrate your environment. Epsagon supports AWS, Kubernetes environments (including OpenShift, Rancher, etc.), and OpenWhisk environments.
The next step is to install our framework-specific libraries and then run the library as a part of your application either by using auto-tracing or calling the SDK. For a Node.js example, check out our docs.
That is it! You are all set to visualize and monitor your applications using service maps. You can access them using the toolbar on the left.
Using Service Maps
As mentioned before, service maps have a number of benefits such as architecture visibility, detecting performance issues, etc. which we will discuss later.
With Epsagon, you can utilize two views:
- Hover view
- Focus view
Hover over a resource in the service map to understand which other resources are dependent (connected) to it. The hover view also gives you metrics such as the health of the resource, events frequency, latency, and errors.
Focus View allows you to zoom in on individual resources and see exactly which other resources are dependent on them. Enter Focus View by right-clicking on the desired resource and selecting focus view.
Looking for an error-causing resource can be done simply by observing red arrows in the graph. Red arrows represent a problematic call that has a more 0.5% error rate. To gain a better understanding you can click on the relevant node to see more information, and jump to traces to explore the exact issue. In addition, you can drill into a detailed breakdown of your service’s calls by clicking on it, and looking at the duration breakdown.
Serverless vs. Container Environments
When it comes to serverless versus container and/or Kubernetes environments, service maps provide similar functionality. The only difference is that with serverless, you can directly go to the relevant function in the serverless environment while in the container/K8s environment, you can directly jump to the specific pod as shown below.
Service maps are a great tool to visualize complex architectures, view resource-specific metrics, reduce MTTD, and MTTR. With Epsagon, you can also build high performant systems as well as onboard new team members. We will discuss these benefits in more detail in our upcoming blogs. Thus, having a service map is greatly beneficial for any observability solution.