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
MyCluster
dengan nama klaster Anda.eksctl create fargateprofile --cluster
MyCluster
\ --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-metrics
yang mengekspos metrik Redis OSS Prometheus pada port 9121 Masukkan perintah berikut untuk mendapatkan rincian layanan:kubectl describe service/my-redis-metrics -n $REDIS_NAMESPACE
Di
Annotations
bagian 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: true
Konfigurasi scraping Prometheus terkait dapat ditemukan di bagian
- job_name: kubernetes-service-endpoints
darikubernetes-eks.yaml
ataukubernetes-k8s.yaml
.
Untuk mulai mengumpulkan metrik Redis OSS Prometheus di CloudWatch
-
Unduh versi terbaru dari file
kubernetes-eks.yaml
ataukubernetes-k8s.yaml
dengan 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.yaml
Untuk 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.yaml
Untuk 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
MyCluster
danregion
untuk mencocokkan pengaturan Anda.Untuk cluster Amazon EKS dengan tipe EC2 peluncuran, masukkan perintah ini.
kubectl apply -f prometheus-eks.yaml
Untuk 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 Redis OSS Prometheus 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_name
REGION_NAME=your_metric_region_such_as_us-east-1
CLUSTER_NAME=your_k8s_cluster_name_here
NAMESPACE=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" \