

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
<a name="ContainerInsights-Prometheus-Setup-redis-eks"></a>

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](https://redis.io/).

redis\$1exporter (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\$1exporter](https://github.com/oliver006/redis_exporter).

Citra Docker dalam dua repositori Docker Hub berikut digunakan dalam tutorial ini: 
+ [ redis](https://hub.docker.com/_/redis?tab=description)
+ [ redis\$1exporter](https://hub.docker.com/r/oliver006/redis_exporter)

**Untuk menginstal sampel beban kerja Redis OSS yang mengekspos metrik Prometheus**

1. Mengatur namespace untuk sampel beban kerja Redis OSS.

   ```
   REDIS_NAMESPACE=redis-sample
   ```

1. 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
   ```

1. 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 -
   ```

1. 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` dari `kubernetes-eks.yaml` atau `kubernetes-k8s.yaml`.

**Untuk mulai mengumpulkan metrik Redis OSS Prometheus di CloudWatch**

1. Unduh versi terbaru dari file `kubernetes-eks.yaml` atau `kubernetes-k8s.yaml` dengan 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.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 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
   ```

1. 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.

1. 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
   ```

1. Terapkan CloudWatch agen dengan konfigurasi Anda yang diperbarui dengan memasukkan salah satu perintah berikut. Ganti *MyCluster* dan *region* untuk mencocokkan pengaturan Anda.

   Untuk sebuah klaster Amazon EKS dengan tipe peluncuran EC2, 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 Prometheus Redis OSS Anda
<a name="ContainerInsights-Prometheus-Setup-redis-eks-view"></a>

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 | 
| --- | --- | 
|  `redis_net_input_bytes_total` |  ClusterName, `Namespace`  | 
|  `redis_net_output_bytes_total` |  ClusterName, `Namespace`  | 
|  `redis_expired_keys_total` |  ClusterName, `Namespace`  | 
|  `redis_evicted_keys_total` |  ClusterName, `Namespace`  | 
|  `redis_keyspace_hits_total` |  ClusterName, `Namespace`  | 
|  `redis_keyspace_misses_total` |  ClusterName, `Namespace`  | 
|  `redis_memory_used_bytes` |  ClusterName, `Namespace`  | 
|  `redis_connected_clients` |  ClusterName, `Namespace`  | 
|  `redis_commands_total` |  ClusterName, `Namespace`, cmd  | 
|  `redis_db_keys` |  ClusterName, `Namespace`, db  | 

**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**

1. 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
   ```

1. 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" \
   ```