Prometheus is a popular open source metric monitoring solution and Azure Monitor provides a seamless onboarding experience to collect Prometheus metrics. Learn how to configure scraping of Prometheus metrics with Azure Monitor for containers running in AKS cluster.
2. Enterprise architect and author with 15+ years of IT experience. Skilled
Solution Architect with 9+ years of hands-on experience migrating,
automating, and optimizing mission critical deployments in various cloud
platforms, leveraging configuration management, CI/CD, and DevOps tools.
5. • Monitor the performance of container workloads deployed to Azure
Kubernetes Service (AKS)
• Monitoring containers is critical, especially when we’re running a production
cluster, at scale, with multiple applications
• Provides performance visibility by collecting memory and processor metrics
from controllers, nodes, and containers that are available in Kubernetes
through the Metrics API
• Metrics are written to the metrics store
• Log data is written to the logs store associated with your Log
Analytics workspace
6.
7. • Azure - AKS and AKS-Engine clusters hosted in Azure Kubernetes Service
• Azure Stack (Preview) - AKS-Engine clusters hosted on Azure Stack
• Non-Azure (Preview) - Kubernetes clusters hosted on-premises
8. • Critical or unhealthy and healthy state of cluster
• How many nodes deployed per cluster
• How many user and system pods are deployed
• How much disk space is available and if there's a capacity issue.
9.
10. • Integrate Azure Monitor with Prometheus to view application and workload
metrics it collects from nodes and Kubernetes
• Use queries to create custom alerts, dashboards, and detailed perform
detailed analysis
• Azure Monitor can be enabled for new/existing AKS cluster
11.
12. TechScalable
Training and Consulting service provider in
domains like Cloud, DevOps, Machine Learning,
Data Science and Artificial Intelligence.
Azure Monitor helps us maximize the availability and performance of our applications and services.
Its a comprehensive solution for collecting, analyzing, and acting on telemetry for both cloud and on-premises environments.
Azure Monitor for containers collects memory and processor metrics from controllers, nodes, and containers.
It can also collect Container logs.
It can enable monitoring on Kubernetes clusters, after which metrics and logs are automatically collected by a containerized version of the Log Analytics agent running the cluster.
Metrics are written to the metrics store and log data is written to the logs store associated with the Log Analytics workspace.
We can monitor all sort of K8s cluster
Azure - AKS and AKS-Engine clusters hosted in Azure Kubernetes Service
Azure Stack (Preview) - AKS-Engine clusters hosted on Azure Stack
Non-Azure (Preview) - Kubernetes clusters hosted on-premises
All - View all the Kubernetes clusters hosted in Azure, Azure Stack, and on-premises environments that are onboarded to Azure Monitor for containers
How many clusters are in a critical or unhealthy state, versus how many are healthy or not reporting (referred to as an Unknown state).
Whether all of the Azure Kubernetes Engine (AKS-engine) deployments are healthy.
How many nodes are in the cluster
Number of user and system pods deployed per cluster.
How much disk space is available and if there's a capacity issue
all these data will be available from the dashboard
Healthy: No issues are detected for the VM, and it's functioning as required.
Critical: One or more critical issues are detected that must be addressed to restore normal operational state as expected.
Warning: One or more issues are detected that must be addressed or the health condition could become critical.
Unknown: If the service wasn't able to make a connection with the node or pod, the status changes to an Unknown state.
In metrics explorer, you can view aggregated node and pod utilization metrics from Azure Monitor for containers.
Prometheus is a popular open source metric monitoring solution and is a part of the Cloud Native Compute Foundation. Azure Monitor for containers provides a seamless onboarding experience to collect Prometheus metrics. Typically, to use Prometheus, you need to set up and manage a Prometheus server with a store.
By integrating with Azure Monitor, a Prometheus server is not required. You just need to expose the Prometheus metrics endpoint through your exporters or pods (application), and the containerized agent for Azure Monitor for containers can scrape the metrics for you.
Scraping of Prometheus metrics is supported with Kubernetes clusters hosted on:
Azure Kubernetes Service (AKS)
Azure Stack or on-premises
Azure Red Hat OpenShift version 3.x
Azure Red Hat OpenShift and Red Hat OpenShift version 4.x
Active scraping of metrics from Prometheus is performed from one of two perspectives:
Cluster-wide - HTTP URL and discover targets from listed endpoints of a service. For example, k8s services such as kube-dns and kube-state-metrics, and pod annotations specific to an application. Metrics collected in this context will be defined in the ConfigMap section [Prometheus data_collection_settings.cluster].
Node-wide - HTTP URL and discover targets from listed endpoints of a service. Metrics collected in this context will be defined in the ConfigMap section [Prometheus_data_collection_settings.node].