Hi everyone! My name is Vivian and I'm a Product Manager with Azure Monitor.
Today, I'll be giving an overview and demo of Azure Monitor's cloud native offering for Kubernetes.
With the general availability of Azure Monitor managed service for Prometheus,
Azure Monitor now offers a unified cloud-native offering for Kubernetes monitoring.
Managed Prometheus provides a highly available,
scalable to handle hundreds of millions of active time series, Managed Prometheus provides a highly available,
scalable to handle hundreds of millions of active time series,
cost efficient and secure way to monitor applications and services in a containerized environment. scalable to handle hundreds of millions of active time series,
cost efficient and secure way to monitor applications and services in a containerized environment.
You can use it as a drop-in replacement for self-managed Prometheus or as remote storage.
Our remote write interface allows you to use your self-managed Prometheus and get the benefits of our managed service.
Managed Prometheus is deeply integrated with Azure Monitor tools,
including Azure Managed Grafana and Azure Monitor Container Insights, Managed Prometheus is deeply integrated with Azure Monitor tools,
including Azure Managed Grafana and Azure Monitor Container Insights,
fostering an ecosystem of open-source and vendor neutrality.
You can now gain continuous visibility into your services and infrastructure without the headache of patching various tools and manual integrations.
This allows for frequent high-impact deployments and the power of open-source monitoring tools with minimal toil.
In this demo, we'll provide an in-depth walkthrough of how to get started with Azure Monitor's unified cloud-native offering for Kubernetes monitoring.
Additionally, we'll demonstrate how you can use our platform to troubleshoot a memory leak,
using real-world scenarios to showcase how we can help you diagnose and solve problems quickly and efficiently.
By the end of this demo, you'll have a solid understanding of how Azure Monitor's unified cloud-native offering
can help you gain continuous visibility into your Kubernetes environment,
and how it can be used to streamline your monitoring workflows and improve your overall operational efficiency.
So, let's go ahead and get started!
We can simply search for Prometheus in the portal and click on the Azure Monitor managed service for Prometheus.
To enable Managed Prometheus, you first need to create an Azure Monitor workspace
which is a new resource type where your Prometheus metrics will live.
Select a subscription, resource group, name, and region.
Once your workspace is created, you can navigate to your workspace and start configuring Managed Prometheus.
For sending data to Azure, you can use a lightweight scraper on your cluster or remote write from your existing Prometheus instance.
You can easily view which clusters are currently being monitored with Prometheus directly from your Azure Monitor Workspace.
From there, you can quickly configure Managed Prometheus for any unmonitored clusters by clicking Configure.
This opens a card where you can link an existing Grafana workspace to visualize your data.
Once your data is populated, you can view it by clicking on your linked Grafana workspaces.
With just a few clicks, we were able to easily set up Managed Prometheus.
You can also enable managed Prometheus with Azure Policy, CLI, ARM templates,
and Bicep with support for Terraform coming soon.
With these tools, you can automate the entire process and save time and effort.
Within your Azure Monitor workspace, you can also access a comprehensive list of out of the box rules groups,
including both recording and alert rules.
Exploring a recording rule further, you can conveniently access all the relevant details and quickly enable or disable the rule based on your needs.
Now that we’ve seen Managed Prometheus, let’s take a look at how we can onboard to Container Insights,
a log-based monitoring solution,
and how it seamlessly integrates with Managed Prometheus and Grafana.
Let's imagine that you and your team have just deployed a new AKS cluster and are eager to start deploying your applications.
To ensure that everything is running smoothly, let's enable monitoring.
To begin, let's navigate to the Azure Monitor blade, where we can get an at-scale view of our Kubernetes clusters.
From here, we can easily check the status of our clusters and quickly investigate any critical issues.
In the 'monitored clusters' tab, we can see which clusters are being monitored in our subscription,
and in the 'unmonitored clusters' tab, we can view which clusters are not yet being monitored.
Let's get started!
To enable monitoring, it's as easy as clicking on the "Enable" button.
From there, you have the option to select an existing Log Analytics workspace,
or one can be created for you out of the box.
Enabling Managed Prometheus is just a single click away,
and you can also select an Azure Monitor workspace or have one created for you.
Additionally, you have the option to integrate Managed Grafana by selecting an existing Grafana workspace.
Once it’s enabled, you can go to your cluster to view your Insights.
Let’s jump into the cluster view.
This lets you know the basic performance of your cluster by displaying the node CPU and memory utilization metrics
and a count of the number of nodes and pods so you can track increases and decreases.
You can also drill down further into your nodes,
controllers and containers.
To take a closer look at the Prometheus and Grafana integration, let's click on the "View Grafana Workspaces" button.
This will navigate us to our Grafana workspace, where we can explore and analyze our metrics data.
You can explore the environment where you can test and experiment with your queries.
In addition, if you don't want to use Managed Granfana,
you can natively consume Prometheus metrics using PromQL in Azure Monitor workbooks.
As you can see here, the data source is Prometheus metrics.
Now that we’ve seen how to get started with Azure Monitor's cloud native offering for Kubernetes Monitoring,
let’s jump into a scenario of how you can use it troubleshoot end to end.
Let’s say the petclinic application that’s running on your cluster isn't available.
You start debugging by clicking on the out of the box Compute Resources dashboard,
and you can see the memory usage for the petclinic namespace isn't available.
Drilling down into the petclinic namespace,
you see there’s no Memory data and CPU utilization is 0.
Going back to Container Insights, you can drill down further, and you can investigate the logs for the petclinic namespace,
by selecting the filter at the top.
Clicking on the containers, you notice the petclinic container has a warning status due to a CrashLoopBackOff.
And now with Live Events, you can see what is happening in real time.
Looking at the events, you can see that the petclinic container was restarted,
but we still need to dig deeper to determine the root cause of the problem.
Let's dive deeper into the issue by utilizing Linux System logs or Syslog.
By navigating to the Workbooks blade under Monitoring, you can access the Syslog workbook.
Here, you can quickly view the Syslog messages grouped by SeverityLevel,
and notice that the daemon on the first node is the top emitter of messages.
You can filter by SeverityLevel to see the source of the error messages
which we see is the kern.
Let’s examine this further using the raw syslog records
which you can access directly at the bottom of the workbook.
In the query results, you notice “Memory cgroup out of memory”
with the killed process ID which helps you identify which process was terminated
so you can share this with your application developers to further debug.
In this demo, we were able to easily onboard to Managed Prometheus,
Azure Monitor Container insights and integrate Azure Managed Grafana with just a single click.
We were also able to demonstrate Azure Monitor's unified monitoring offers a comprehensive monitoring
experience to understand the performance and health of your Kubernetes clusters.
Azure Monitor Container insights complements the CNCF backed open-source tools
for end-to-end Kubernetes monitoring including logs collection for advanced troubleshooting.
Finally, to tie everything together, Container insights has introduced new features
to help you fine-tune your data collection settings
and reduce the total amount of ingestion and billing occurred from Log Analytics.
These features include
specifying how often you collect your data between 1 and 30 minutes (in one-minute increments)
This allows you to control how frequently data is collected specifying how often you collect your data between 1 and 30 minutes (in one-minute increments)
This allows you to control how frequently data is collected
and avoid overloading your system with unnecessary data.
and choosing to include or exclude specific namespaces from your data ingestion.
This gives you more control over the scope of your monitoring so you can focus on the areas that matter to you most.
With these new features, you can better manage your data collection and ensure you only collect data you need.
This can help save costs and improve the performance of your system.
If you'd like to learn more about Azure Monitor's cloud native offering for Kubernetes,
please scan the QR code for documentation.