In the current infrastructure world, we all understand the critical importance of monitoring when it comes to running a business. Dashboards offer a single pane for a high-level view of all your resources, plus let you drill down to analyze the details. You can even customize various views of your metrics and create alarms.
Different services provide their own set of dashboards. Kubernetes comes with its own Kubernetes dashboard, whereas cloud providers such as AWS offer capabilities via CloudWatch dashboards.
AWS CloudWatch is a monitoring service used to monitor the health and performance of your AWS resources and applications running on AWS as well as your on-premises data centers. Using CloudWatch, you can monitor resources like EC2 instances, Route53 health checks, EBS volumes, EKS, ECS, Lambda, SNS, etc. You can also install CloudWatch agents to define your own metrics and then use these agents in combination with CloudWatch Logs to monitor operating systems and application logs.
Infrastructure-Level Dashboarding
Kubernetes Dashboard (k8s)
A web-based user interface for Kubernetes, this dashboard lets you deploy your containerized application, manage your cluster resources, and troubleshoot your application. It offers an overview of running applications in your cluster to help you create and modify resources like Deployments and DaemonSets and also indicates the current state of cluster resources, as well as any error:
Figure 1: Kubernetes dashboard
You can view the current state of your Pod, Deployments, Replica Sets, and other Kubernetes resources as well:
Figure 2: Kubernetes pod status via the dashboard
Figure 3: Kubernetes deployment status via the dashboard
Figure 4: Kubernetes replica sets status via the dashboard
ECS Dashboard
AWS ECS is a managed container service that lets you run your Docker container without managing the hardware (when you use Fargate). Several metrics are published to CloudWatch, which you can then use to determine any issues with your ECS cluster.
Some of the essential ECS metrics you can monitor via CloudWatch are the following:
- CPUUtilization
- MemoryUtilization
Figure 5: CloudWatch ECS metrics
EKS Dashboard
Elastic Kubernetes Service (EKS) is AWS’ managed Kubernetes solution. AWS takes care of all the heavy lifting, like provisioning the cluster, patching, and performing upgrades.
To view EKS metrics, you can use
CloudWatch Container Insights, which provides you with a single pane to view the performance of your cluster.
For more information on how to configure CloudWatch Insights for EKS, check the following link.
AWS Lambda
AWS Lambda lets you run code without having to manage the underlying hardware. Several metrics are published to CloudWatch, which you can use to determine any issues or abnormalities with your Lambda function.
Some of the important metrics published to CloudWatch include:
- Invocations
- Errors
- Throttles
- Duration
Figure 6: CloudWatch Lambda metrics
Application-Level Dashboarding
Messaging Queues
AWS Simple Queue Service (SQS) is a messaging service that allows you to send and receive messages from a queue using a simple API. Several
metrics are published to CloudWatch, which you can use to determine any issues or abnormalities with your SQS queues.
Some of the important metrics published to CloudWatch are:
- Number of Messages Sent
- ApproximateAgeOfOldestMessage
AWS has additional information on these and other metrics here.
To view these metrics, you can use the Monitoring tab under the SQS console:
Figure 7: CloudWatch SQS metrics
You can also view SQS metrics under CloudWatch metrics and then use them to create a CloudWatch dashboard. Simply go to the
CloudWatch console, click on Metrics, and select SQS Metrics:
Figure 8: CloudWatch SQS metrics
You can also choose Queue Metrics:
Figure 9: CloudWatch SQS queue metrics
We’ll cover creating a custom CloudWatch dashboard using metrics below, but here’s an example of an SQS custom dashboard:
Figure 10: CloudWatch SQS custom metrics
Epsagon provides out-of-the-box resource dashboards for some common metrics, including a RabbitMQ dashboard. You can view a demo dashboard
here.
AWS RDS
AWS Relational Database Service (RDS) is a managed service that lets you create, manage, and scale relational databases in the cloud. Like other AWS services, it publishes its metrics to CloudWatch, which you can then use to determine any issues with your RDS service.
Some of the important metrics published to CloudWatch include:
- Freeable Memory
- DB Connections
Again, AWS provides
thorough documentation on all metrics covered. CloudWatch metrics for RDS can be viewed in the Monitoring tab under the RDS console or under the Metrics portion of CloudWatch:
Figure 11: CloudWatch RDS dashboard
Custom Dashboards
CloudWatch allows you to create custom dashboards to monitor numerous metrics for your given use case. For example, in a single dashboard, you can monitor all your Development or Production systems.
CloudWatch can even display metrics per Region. You just need to change the region and add the widget you want to display.
Epsagon’s Metrics Explorer and Custom Dashboarding
Epsagon makes it easy to monitor and troubleshoot your cloud services, serverless functions, and container orchestrator issues. It lets you monitor the memory and CPU utilization of your containers, as well as the cold starts of your serverless functions. Plus, it provides the health status of your overall architecture and visibility into service dependencies. You can get alert notifications for timeouts and exceptions, or view an end-to-end distributed trace for debugging issues, including the payloads sent along the route. You can even correlate metrics and logs to troubleshoot issues faster.
Epsagon lets you explore various metrics from different data sources. You can then query these metrics and visualize them to monitor your application and perform root-cause analysis.
Epsagon also provides a full drag-and-drop
dashboard through which you can monitor, analyze, troubleshoot, and
visualize trace-based performance metrics over time. Or, you can utilize an out-of-the-box dashboard for the overall health status of your resources and a specific dashboard for use cases like ECS, Kubernetes, or Lambda functions.
Conclusion
Dashboards are critical to monitor the overall state of your infrastructure. They proactively and automatically monitor your infrastructure and take steps before any issue occurs—not only providing you with high-level measures but also letting you dig deeper to debug issues further. On top of that, dashboards are highly customizable, letting you modify them based on your specific requirements.
Check out Epsagon for FREE!