// Master Kubernetes observability, monitoring with Prometheus, logging, metrics, and distributed tracing. Learn to implement comprehensive monitoring strategies.
| name | monitoring |
| description | Master Kubernetes observability, monitoring with Prometheus, logging, metrics, and distributed tracing. Learn to implement comprehensive monitoring strategies. |
# Add Prometheus Helm repository
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# Install kube-prometheus-stack
helm install prometheus prometheus-community/kube-prometheus-stack \
-n monitoring --create-namespace
# CPU usage by pod
sum(rate(container_cpu_usage_seconds_total[5m])) by (pod_name)
# Memory usage
sum(container_memory_usage_bytes) by (pod_name)
# Request rate
sum(rate(http_request_duration_seconds_count[5m]))
# View pod logs
kubectl logs pod-name
# Follow logs
kubectl logs -f pod-name
# Logs from specific container
kubectl logs pod-name -c container-name
# Previous crashed container logs
kubectl logs pod-name --previous
# Access Grafana
kubectl port-forward -n monitoring svc/prometheus-grafana 3000:80
# Default credentials
# Username: admin
# Password: prom-operator
# Install Jaeger
helm install jaeger jaegertracing/jaeger -n tracing --create-namespace
# Configure application tracing
# Use OpenTelemetry SDK
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
apiVersion: v1
kind: ConfigMap
metadata:
name: alertmanager-config
data:
config.yml: |
route:
receiver: 'default'
receivers:
- name: 'default'
slack_configs:
- api_url: 'YOUR_SLACK_WEBHOOK_URL'