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 sebuah klaster Amazon EKS dengan tipe peluncuran EC2, 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 sebuah klaster Kubernetes yang berjalan di sebuah instans Amazon EC2, 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 sebuah klaster Amazon EKS dengan tipe peluncuran EC2, 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" \