Amazon Managed Prometheus (AMP)
Overview
AMP provides a fully managed Prometheus-compatible monitoring service.
Install AMP Agent
# Create AMP workspace
aws amp create-workspace \
--alias my-cluster-prometheus \
--region us-west-2
# Get workspace endpoint
aws amp describe-workspace \
--workspace-id ws-xxxxx \
--query 'workspace.prometheusEndpoint'Install Prometheus with AMP
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--set prometheus.serviceAccount.name=amp-iam-proxy-service-account \
--set prometheus.remoteWrite[0].url=https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxx/api/v1/remote_write \
--set prometheus.remoteWrite[0].sigv4.region=us-west-2Service Account with IRSA
# Create IRSA
eksctl create iamserviceaccount \
--name amp-iam-proxy-service-account \
--namespace monitoring \
--cluster my-cluster \
--attach-role-arn arn:aws:iam::123456789:role/AMPExecutionRole \
--approveQuery with Grafana
# Install Grafana
helm install grafana grafana/grafana \
--namespace monitoring \
--set adminPassword='Admin123' \
--set service.type=LoadBalancer
# Configure AMP data source
# URL: https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxx
# Auth: SigV4 with region us-west-2Useful Prometheus Queries
Pod CPU usage
sum(rate(container_cpu_usage_seconds_total{container!=""}[5m])) by (pod)
Memory utilization
sum(container_memory_working_set_bytes) by (pod) / sum(container_spec_memory_limit_bytes) by (pod) * 100
Request rate
sum(rate(http_requests_total[5m])) by (service)