AKS Metrics & Logging
Overview
AKS (Azure Kubernetes Service) is a managed Kubernetes service provided by Microsoft Azure that simplifies the deployment, management, and operations of Kubernetes clusters.
Prerequisites
- AKS cluster
kubectl
installed and logged in to the AKS cluster- Helm
Quick Start
This setup is similar to the central collector but with a different function.
helm repo add signoz <https://charts.signoz.io>
helm install -n signoz --create-namespace kubelet-otel signoz/k8s-infra \\
--set signozApiKey=<ingestionKey> --set otelCollectorEndpoint="ingest.<region>.signoz.cloud:443" --set otelInsecure=false
This should start sending logs and metrics to SigNoz.
Tracing
eBPF Tracing
There are solution to collect metrics and traces without modifying the application code. These solutions come under the category of eBPF Tracing. These solutions are relatively new and are still in the early stages of development.
However, there are some open source projects that export metrics and traces to OpenTelemetry.
For example, Pixie can be configured by following the instructions in the respective repositories. Pixie OpenTelemetry Tutorial
url='otel-collector.kubelet-otel.svc.cluster.local:4317',
insecure=True
),
These solutions may not be suitable for all use cases, and are still may not be production-ready. It is recommended to evaluate solutions and choose the one that best fits your needs.
Application-Level Tracing
For application-level tracing, you can use the OpenTelemetry SDKs integrated with your application. These SDKs will automatically collect and forward traces to the Central Collector.
Please refer to our SigNoz Tutorials or Blog to find information on how to instrument your application like Spring, FastAPI, NextJS, Langchain, Node.js, Flask, Django, etc.
# Node.js example
npm install @opentelemetry/api
npm install @opentelemetry/auto-instrumentations-node
npm install @opentelemetry/exporter-trace-otlp-http
Configure the OpenTelemetry SDK
# Set env vars or config file
export OTEL_EXPORTER_OTLP_ENDPOINT="http://otel-collector.kubelet-otel.svc.cluster.local:4318/"
For application-level traces and metrics, configure your application to use the kube-dns name of the Central Collector you set up earlier.
Troubleshooting
If you encounter any issues while setting up logging and metrics for your AKS cluster, follow these troubleshooting steps:
Check the logs of the OpenTelemetry Collector:
kubectl logs -f -n signoz -l app.kubernetes.io/component=otel-agent
Review the logs for any error messages or indications of misconfiguration.
Verify the rendered configuration:
kubectl get cm/kubelet-otel-k8s-infra-otel-agent -n signoz -o yaml
Ensure that the configuration matches your expected settings, including the SigNoz API key and the OpenTelemetry Collector endpoint.
Confirm that the necessary Kubernetes resources are created:
kubectl get pods,services,configmaps -n signoz
Check if the required pods, services, and config maps are running and in a healthy state.
Verify network connectivity:
- Ensure that the AKS cluster has network access to the SigNoz ingestion endpoint (
ingest.<region>.signoz.cloud:443
). - Check if there are any network security groups or firewalls blocking the required ports.
- Ensure that the AKS cluster has network access to the SigNoz ingestion endpoint (
Double-check the SigNoz API key:
- Confirm that the provided
signozApiKey
is correct and has the necessary permissions to ingest data.
- Confirm that the provided