Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial untuk menambahkan target scrape Prometheus baru: Redis OSS di Amazon EKS dan Kubernetes cluster
Tutorial ini memberikan pengantar langsung untuk mengikis metrik Prometheus dari contoh aplikasi Redis OSS di Amazon EKS dan Kubernetes. Redis OSS (https://redis.io/) adalah sumber terbuka (berlisensi BSD), penyimpanan struktur data dalam memori, digunakan sebagai database, cache, dan broker pesan. Untuk informasi selengkapnya, silakan lihat redis
redis_exporter (Lisensi MIT berlisensi) digunakan untuk mengekspos metrik Redis OSS Prometheus pada port yang ditentukan (default: 0.0.0. 0:9121). Untuk informasi selengkapnya, silakan lihat redis_exporter
Citra Docker dalam dua repositori Docker Hub berikut digunakan dalam tutorial ini:
Untuk menginstal sampel beban kerja Redis OSS yang mengekspos metrik Prometheus
-
Mengatur namespace untuk sampel beban kerja Redis OSS.
REDIS_NAMESPACE=redis-sample -
Jika Anda menjalankan Redis OSS pada cluster dengan tipe peluncuran Fargate, Anda perlu mengatur profil Fargate. Untuk menyiapkan profilnya, masukkan perintah berikut. Ganti
MyClusterdengan nama klaster Anda.eksctl create fargateprofile --clusterMyCluster\ --namespace $REDIS_NAMESPACE --name $REDIS_NAMESPACE -
Masukkan perintah berikut untuk menginstal sampel beban kerja Redis OSS.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/redis/redis-traffic-sample.yaml \ | sed "s/{{namespace}}/$REDIS_NAMESPACE/g" \ | kubectl apply -f - -
Instalasi termasuk layanan bernama
my-redis-metricsyang mengekspos metrik Redis OSS Prometheus pada port 9121 Masukkan perintah berikut untuk mendapatkan rincian layanan:kubectl describe service/my-redis-metrics -n $REDIS_NAMESPACEDi
Annotationsbagian hasil, Anda akan melihat dua anotasi yang cocok dengan konfigurasi scrape Prometheus agen, sehingga dapat menemukan beban kerja CloudWatch secara otomatis:prometheus.io/port: 9121 prometheus.io/scrape: trueKonfigurasi scraping Prometheus terkait dapat ditemukan di bagian
- job_name: kubernetes-service-endpointsdarikubernetes-eks.yamlataukubernetes-k8s.yaml.
Untuk mulai mengumpulkan metrik Redis OSS Prometheus di CloudWatch
-
Unduh versi terbaru dari file
kubernetes-eks.yamlataukubernetes-k8s.yamldengan memasukkan salah satu perintah dari perintah-perintah berikut. Untuk cluster Amazon EKS dengan tipe EC2 peluncuran, masukkan perintah ini.curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yamlUntuk sebuah klaster Amazon EKS dengan tipe peluncuran Fargate, masukkan perintah ini:
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yamlUntuk klaster Kubernetes yang berjalan pada EC2 instance Amazon, masukkan perintah ini.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml -
Buka file dengan editor teks, dan temukan bagian
cwagentconfig.json. Tambahkan subbagian berikut dan simpan perubahannya. Pastikan bahwa indentasi mengikuti pola yang ada saat itu.{ "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName"]], "metric_selectors": [ "^redis_net_(in|out)put_bytes_total$", "^redis_(expired|evicted)_keys_total$", "^redis_keyspace_(hits|misses)_total$", "^redis_memory_used_bytes$", "^redis_connected_clients$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","cmd"]], "metric_selectors": [ "^redis_commands_total$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","db"]], "metric_selectors": [ "^redis_db_keys$" ] },Bagian yang Anda tambahkan menempatkan metrik Redis OSS ke daftar izin CloudWatch agen. Untuk daftar metrik ini, silakan lihat bagian berikut.
-
Jika Anda sudah memiliki CloudWatch agen dengan dukungan Prometheus yang diterapkan di cluster ini, Anda harus menghapusnya dengan memasukkan perintah berikut.
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch -
Terapkan CloudWatch agen dengan konfigurasi Anda yang diperbarui dengan memasukkan salah satu perintah berikut. Ganti
MyClusterdanregionuntuk mencocokkan pengaturan Anda.Untuk cluster Amazon EKS dengan tipe EC2 peluncuran, masukkan perintah ini.
kubectl apply -f prometheus-eks.yamlUntuk sebuah klaster Amazon EKS dengan tipe peluncuran Fargate, masukkan perintah ini:
cat prometheus-eks-fargate.yaml \ | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \ | kubectl apply -f -Untuk sebuah klaster Kubernetes, masukkan perintah ini.
cat prometheus-k8s.yaml \ | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \ | kubectl apply -f -
Melihat metrik Prometheus Redis OSS Anda
Tutorial ini mengirimkan metrik berikut ke namespace ContainerInsights/Prometheus di. CloudWatch Anda dapat menggunakan CloudWatch konsol untuk melihat metrik di namespace tersebut.
| Nama metrik | Dimensi |
|---|---|
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
|
|
ClusterName, |
catatan
Nilai dari dimensi cmd bisa berupa: append, client, command, config, dbsize, flushall, get, incr, info, latency, atau slowlog.
Nilai dari dimensi db bisa db0 hingga db15.
Anda juga dapat membuat CloudWatch dasbor untuk metrik Prometheus Redis OSS Anda.
Untuk membuat dasbor untuk metrik Redis OSS Prometheus
-
Buat variabel lingkungan, yang menggantikan nilai di bawah ini untuk menyesuaikan dengan deployment Anda.
DASHBOARD_NAME=your_cw_dashboard_nameREGION_NAME=your_metric_region_such_as_us-east-1CLUSTER_NAME=your_k8s_cluster_name_hereNAMESPACE=your_redis_service_namespace_here -
Masukkan perintah berikut untuk membuat dasbor tersebut.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/redis/cw_dashboard_redis.json \ | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \ | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \ | sed "s/{{YOUR_NAMESPACE}}/${NAMESPACE}/g" \