Azure kubernetes - Prometheus to handle multiple applications - azure

I am planning to deploy 15 different applications initially and would endup with 300+ applications on azure kubernetes and would be using Prometheus and Grafana for monitoring.
I have deployed both the Prometheus and Grafana on a separate namespace on the dedicated node.
How do I enable horizontal pod scaling for Prometheus and Grafana?

You can scale your applications based on custom metrics gathered by Prometheus and presented in the Grafana dashboard.
In order to do that you'll need the Prometheus Adapter to implement the custom metrics API, which enables the HorizontalPodAutoscaler controller to retrieve metrics using the custom.metrics.k8s.io API. You can define your own metrics through the adapter’s configuration so the HPA would scale based on those stats.
Here you can find a short guide that would get you started.

Related

Azure Kubernetes Service Scaling and HPA

Is there a way that "request per second" based scaling can be enabled on Azure Kubernetes Service?
HPA in AKS does allow horizontal pod scaling based on CPU and Memory constraints but there is no straightforward way to do it for - requests per second.
Is there a way to use advanced metrics in the metrics server bundled by AKS?
If you use Azure Application Gateway as your Ingress Controller, you can use its metrics for Horizontal Autoscaler. You can find documentation regarding the use case here. Note that this feature seems to still be in beta.

Is there any way to find the Node scalability time on Azure Kubernetes Service (AKS) using Logs?

I want to find the Node scalability time on Azure Kubernetes Service (AKS) using Logs.
It's possible with some assumptions.
This information is taken from Azure AKS documentation (consider getting familiar with it, it describes how to enable, where to look at and etc):
To diagnose and debug autoscaler events, logs and status can be
retrieved from the autoscaler add-on.
AKS manages the cluster autoscaler on your behalf and runs it in the
managed control plane. You can enable control plane node to see the
logs and operations from CA (cluster autoscaler).
The same cluster-autoscaler is used across different platforms, each of them can have some specific setup (e.g. for Azure AKS). Based on it, logs should have events like:
status, scaleUp, scaleDown, eventResult

Kafka monitoring in Azure

We are hosting Confluent Platform services(broker, zookeeper, schema-registry etc.) in Azure VMs. What is the best option to scrape metrics from these and visualize in Azure monitor or application insights?
I am thinking to scrape JMX metrics and visualize in azure monitor/app insights. Monitoring will include things like health status, message flow in topics, produce/consume rate, VM health etc.
What are some good options to implement this? Any better ideas?
PS- I only want to use Azure native services for monitoring/dashboards.
You can add java agents by exporting the environment variable KAFKA_OPTS. Through that, you can add any additional JVM monitoring
Azure docs - https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-in-process-agent

azure kubernates service managed service for application log management

problem statement.
as per my understanding, we can run an elastic search, kibana and logstash etc as a pod in kubernates cluster for log management. but it is also memory heavy intensive application. AWS provides various managed services like Cloudwatch, cloud trail and ELK stack for log management.
do we have a similar substitute in Azure as well i.e. some managed service?
you can use AKS with Azure Monitor (reading). I'm not sure you can apply this to not AKS cluster (at least not in a straight forward fashion).
Onboarding (for AKS clusters) is really simple and can be done using various methods (portal included).
You can read more on the docs I've linked (for example, about capabilities).
Azure Monitor for Containers is available now and once integrated some cluster metrics as well as the logs will be automatically collected and made available through log analytics.

Infra level telemetry of a micro-service application built with MS Azure Service Fabric

I am working on a micro-service application build in MS Azure Service Fabric. I need to gather infra level telemetry of the cluster and its nodes in real time and create Power BI queries so that i can prepare charts for the telemetry in Power BI Dashboard. I cannot use OMS due to its high cost. I was hoping to use Elastic Search but any other tools if also fine.
Thanks in advance.
Application Insights will only log information about the application. I need to capture Infrastructure related details here. Details like, downtime of a certain node on cluster, location of cluster a particular micro-service is hosted on, amount of traffic on different cluster, and so on

Resources