|
| 1 | +--- |
| 2 | +title: Metrik-Metrik untuk Control Plane Kubernetes |
| 3 | +content_template: templates/concept |
| 4 | +weight: 60 |
| 5 | +aliases: |
| 6 | +- controller-metrics.md |
| 7 | +--- |
| 8 | + |
| 9 | +{{% capture overview %}} |
| 10 | + |
| 11 | +Metrik dari komponen sistem dapat memberikan pandangan yang lebih baik tentang apa |
| 12 | +yang sedang terjadi di dalam sistem. Metrik sangat berguna untuk membuat dasbor (_dashboard_) |
| 13 | +dan peringatan (_alert_). |
| 14 | + |
| 15 | +Metrik di dalam _control plane_ Kubernetes disajikan dalam [format prometheus](https://prometheus.io/docs/instrumenting/exposition_formats/) |
| 16 | +dan dapat terbaca oleh manusia. |
| 17 | + |
| 18 | +{{% /capture %}} |
| 19 | + |
| 20 | +{{% capture body %}} |
| 21 | + |
| 22 | +## Metrik-Metrik pada Kubernetes |
| 23 | + |
| 24 | +Dalam kebanyakan kasus, metrik tersedia pada _endpoint_ `/metrics` dari server HTTP. |
| 25 | +Untuk komponen yang tidak mengekspos _endpoint_ secara bawaan, _endpoint_ tersebut dapat diaktifkan |
| 26 | +dengan menggunakan opsi `--bind-address`. |
| 27 | + |
| 28 | +Contoh-contoh untuk komponen tersebut adalah: |
| 29 | + |
| 30 | +* {{< glossary_tooltip term_id="kube-controller-manager" text="kube-controller-manager" >}} |
| 31 | +* {{< glossary_tooltip term_id="kube-proxy" text="kube-proxy" >}} |
| 32 | +* {{< glossary_tooltip term_id="kube-apiserver" text="kube-apiserver" >}} |
| 33 | +* {{< glossary_tooltip term_id="kube-scheduler" text="kube-scheduler" >}} |
| 34 | +* {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} |
| 35 | + |
| 36 | +Di dalam lingkungan produksi, kamu mungkin ingin mengonfigurasi [Server Prometheus](https://prometheus.io/) |
| 37 | +atau _scraper_ metrik (pengambil metrik) lainnya untuk mengumpulkan metrik-metrik ini secara berkala |
| 38 | +dan membuatnya tersedia dalam semacam basis data yang _time series_. |
| 39 | + |
| 40 | +Perlu dicatat bahwa {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} |
| 41 | +juga mengekspos metrik pada _endpoint-endpoint_ seperti `/metrics/cadvisor`, |
| 42 | +`/metrics/resource` dan `/metrics/probes`. Metrik-metrik tersebut tidak memiliki |
| 43 | +siklus hidup yang sama. |
| 44 | + |
| 45 | +Jika klaster kamu menggunakan {{< glossary_tooltip term_id="rbac" text="RBAC" >}}, |
| 46 | +untuk membaca metrik memerlukan otorisasi melalui sebuah User, Group, atau |
| 47 | +ServiceAccount dengan ClusterRole yang memperbolehkan mengakses `/metrics`. |
| 48 | + |
| 49 | +Sebagai contoh: |
| 50 | + |
| 51 | +``` |
| 52 | +apiVersion: rbac.authorization.k8s.io/v1 |
| 53 | +kind: ClusterRole |
| 54 | +metadata: |
| 55 | + name: prometheus |
| 56 | +rules: |
| 57 | + - nonResourceURLs: |
| 58 | + - "/metrics" |
| 59 | + verbs: |
| 60 | + - get |
| 61 | +``` |
| 62 | + |
| 63 | +## Siklus Hidup (_Lifecycle_) Metrik |
| 64 | + |
| 65 | +Alpha metric → Stable metric → Deprecated metric → Hidden metric → Deletion |
| 66 | + |
| 67 | +Metrik-metrik _Alpha_ tidak memiliki jaminan stabilitas; dengan demikian mereka |
| 68 | +dapat dimodifikasi atau dihapus kapan saja. |
| 69 | + |
| 70 | +Metrik-metrik _Stable_ dijamin tidak berubah (dijamin stabilitasnya); Secara khusus, stabilitas berarti: |
| 71 | + |
| 72 | +* metrik itu sendiri tidak akan dihapus (atau diganti namanya) |
| 73 | +* jenis metrik tidak akan dimodifikasi |
| 74 | + |
| 75 | +Metrik _Deprecated_ memberi penanda bahwa metrik tersebut suatu saat akan dihapus; untuk |
| 76 | +menemukan versi yang mana, kamu perlu memeriksa anotasi, yang mencakup dari versi |
| 77 | +Kubernetes mana yang metrik tersebut akan dianggap _deprecated_. |
| 78 | + |
| 79 | +Sebelum _deprecation_: |
| 80 | + |
| 81 | +``` |
| 82 | +# HELP some_counter this counts things |
| 83 | +# TYPE some_counter counter |
| 84 | +some_counter 0 |
| 85 | +``` |
| 86 | + |
| 87 | +Sesudah _deprecation_: |
| 88 | + |
| 89 | +``` |
| 90 | +# HELP some_counter (Deprecated since 1.15.0) this counts things |
| 91 | +# TYPE some_counter counter |
| 92 | +some_counter 0 |
| 93 | +``` |
| 94 | + |
| 95 | +Setelah metrik disembunyikan maka secara bawaan metrik tidak dipublikasikan |
| 96 | +untuk _scraping_ (pengambilan metrik). Untuk menggunakan metrik yang tersembunyi, kamu perlu mengganti (_override_) |
| 97 | +konfigurasi untuk komponen klaster yang relevan. |
| 98 | + |
| 99 | +Setelah metrik dihapus, metrik tidak dipublikasikan. Kamu tidak dapat mengubah |
| 100 | +metrik tersebut dengan menggunakan _override_. |
| 101 | + |
| 102 | +## Melihat Metrik tersembunyi |
| 103 | + |
| 104 | +Seperti dijelaskan di atas, para admin dapat mengaktifkan metrik tersembunyi |
| 105 | +melalui opsi pada baris perintah (_command line_) untuk _binary_ (program) tertentu. Ini ditujukan untuk |
| 106 | +digunakan sebagai solusi bagi para admin apabila mereka gagal memigrasi |
| 107 | +metrik yang sudah _deprecated_ dalam rilis terakhir. |
| 108 | + |
| 109 | +Opsi `show-hidden-metrics-for-version` menunjukkan versi yang ingin kamu tampilkan |
| 110 | +metrik yang sudah _deprecated_ dalam rilis tersebut. Versi ini ditampilkan dalam bentuk x.y, |
| 111 | +di mana x adalah versi _major_, y adalah versi minor. Versi _patch_ tidak |
| 112 | +diperlukan meskipun metrik dapat di_-deprecate_ dalam rilis _patch_, hal ini |
| 113 | +adalah karena kebijakan _deprecation_ untuk metrik hanya berlaku terhadap rilis minor. |
| 114 | + |
| 115 | +Opsi tersebut hanya dapat menggunakan versi minor sebelumnya sebagai parameternya. Semua |
| 116 | +metrik yang disembunyikan di versi sebelumnya akan dikeluarkan jika para admin |
| 117 | +mengatur versi sebelumnya ke `show-hidden-metrics-for-version`. Versi yang |
| 118 | +terlalu lama tidak diizinkan karena hal ini melanggar kebijakan untuk metrik yang |
| 119 | +sudah _deprecated_. |
| 120 | + |
| 121 | +Ambil metrik `A` sebagai contoh, di sini diasumsikan bahwa `A` sudah _deprecated_ |
| 122 | +pada rilis 1.n. Menurut kebijakan metrik yang sudah _deprecated_, kita dapat mencapai kesimpulan |
| 123 | +sebagai berikut: |
| 124 | + |
| 125 | +* Pada rilis `1.n`, metrik sudah di_-deprecated_, dan dapat diperlihatkan secara bawaan. |
| 126 | +* Pada rilis `1.n + 1`, metrik disembunyikan secara bawaan dan dapat |
| 127 | + diperlihatkan dengan baris perintah `show-hidden-metrics-for-version=1.n`. |
| 128 | +* Pada rilis `1.n + 2`, metrik harus dihapus dari _codebase_. Tidak ada jalan |
| 129 | + keluar lagi. |
| 130 | + |
| 131 | +Jika kamu meng-_upgrade_ dari rilis `1.12` ke` 1.13`, tetapi masih bergantung pada |
| 132 | +metrik `A` yang di-_deprecate_ dalam` 1.12`, kamu harus mengatur metrik |
| 133 | +tersembunyi melalui baris perintah: `--show-hidden-metrics=1.12` dan ingatlah |
| 134 | +untuk menghapus ketergantungan terhadap metrik ini sebelum meng-_upgrade_ ke `1.14`. |
| 135 | + |
| 136 | +## Metrik komponen |
| 137 | + |
| 138 | +### Metrik kube-controller-manager |
| 139 | + |
| 140 | +Metrik Controller Manager memberikan pandangan penting |
| 141 | +tentang kinerja dan kesehatan Controller Manager. Metrik ini mencakup metrik |
| 142 | +_runtime_ berbahasa Go yang umum seperti jumlah _go_routine_ dan metrik khusus |
| 143 | +pengontrol seperti latensi _request etcd_ atau latensi API dari Cloud provider |
| 144 | +(AWS, GCE, OpenStack) yang dapat digunakan untuk mengukur kesehatan klaster. |
| 145 | + |
| 146 | +Mulai dari Kubernetes 1.7, metrik Cloud provider yang detail tersedia untuk |
| 147 | +operasi penyimpanan untuk GCE, AWS, Vsphere, dan OpenStack. |
| 148 | +Metrik ini dapat digunakan untuk memantau kesehatan operasi PersistentVolume. |
| 149 | + |
| 150 | +Misalnya, untuk GCE metrik tersebut adalah: |
| 151 | + |
| 152 | +``` |
| 153 | +cloudprovider_gce_api_request_duration_seconds { request = "instance_list"} |
| 154 | +cloudprovider_gce_api_request_duration_seconds { request = "disk_insert"} |
| 155 | +cloudprovider_gce_api_request_duration_seconds { request = "disk_delete"} |
| 156 | +cloudprovider_gce_api_request_duration_seconds { request = "attach_disk"} |
| 157 | +cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"} |
| 158 | +cloudprovider_gce_api_request_duration_seconds { request = "list_disk"} |
| 159 | +``` |
| 160 | + |
| 161 | +{{% /capture %}} |
| 162 | + |
| 163 | +{{% capture whatsnext %}} |
| 164 | +* Baca tentang [format teks Prometheus](https://github.com/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md#text-based-format) untuk berbagai metrik |
| 165 | +* Lihat daftar [metrik Kubernetes yang _stable_](https://github.com/kubernetes/kubernetes/blob/master/test/instrumentation/testdata/stable-metrics-list.yaml) |
| 166 | +* Baca tentang [kebijakan _deprecation_ Kubernetes](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-feature-or-behavior ) |
| 167 | +{{% /capture %}} |
0 commit comments