Skip to content

Commit cc3be1e

Browse files
authored
Merge pull request #20266 from ariscahyadi/id-local-monitoring
ID Localization for Monitoring
2 parents f3891c9 + d2d4ba2 commit cc3be1e

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
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

Comments
 (0)