Skip to content

Commit a826313

Browse files
[pt-br] Update concepts/cluster-administration/system-metrics.md (#53365)
* [pt-br] Update concepts/cluster-administration/system-metrics.md * [pt-br] Update concepts/cluster-administration/system-metrics.md * [pt-br] Update concepts/cluster-administration/system-metrics.md * [pt-br] Update concepts/cluster-administration/system-metrics.md
1 parent 0b116ca commit a826313

File tree

1 file changed

+94
-43
lines changed

1 file changed

+94
-43
lines changed

content/pt-br/docs/concepts/cluster-administration/system-metrics.md

Lines changed: 94 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: Métricas para componentes do sistema Kubernetes
2+
title: Métricas para Componentes do Sistema Kubernetes
33
content_type: concept
4-
weight: 60
4+
weight: 70
55
---
66

77
<!-- overview -->
@@ -14,7 +14,7 @@ Componentes do Kubernetes emitem métricas no [formato Prometheus](https://prome
1414

1515
## Métricas no Kubernetes
1616

17-
Na maioria dos casos, as métricas estão disponíveis no _endpoint_ `/metrics` do servidor HTTP. Para componentes que não expõem o _endpoint_ por padrão, ele pode ser ativado usando a _flag_ `--bind-address`.
17+
Na maioria dos casos, as métricas estão disponíveis no endpoint `/metrics` do servidor HTTP. Para componentes que não expõem o endpoint por padrão, ele pode ser ativado usando a flag `--bind-address`.
1818

1919
Exemplos desses componentes:
2020

@@ -24,11 +24,11 @@ Exemplos desses componentes:
2424
- {{< glossary_tooltip term_id="kube-scheduler" text="kube-scheduler" >}}
2525
- {{< glossary_tooltip term_id="kubelet" text="kubelet" >}}
2626

27-
Em um ambiente de produção, você pode querer configurar o [Servidor Prometheus](https://prometheus.io/) ou algum outro coletor de métricas e disponibilizá-las em algum tipo de banco de dados temporais.
27+
Em um ambiente de produção, você pode querer configurar o [Servidor Prometheus](https://prometheus.io/) ou algum outro coletor de métricas e disponibilizá-las em algum tipo de banco de dados de séries temporais.
2828

29-
Observe que o {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} também expõe métricas nos _endpoints_ `/metrics/cadvisor`, `/metrics/resource` e `/metrics/probes`. Essas métricas não possuem o mesmo ciclo de vida.
29+
Observe que o {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} também expõe métricas nos endpoints `/metrics/cadvisor`, `/metrics/resource` e `/metrics/probes`. Essas métricas não possuem o mesmo ciclo de vida.
3030

31-
Se o seu _cluster_ usa {{< glossary_tooltip term_id="rbac" text="RBAC" >}}, ler as métricas requer autorização por meio de um usuário, grupo ou _ServiceAccount_ com um _ClusterRole_ que conceda o acesso ao `/metrics`.
31+
Se o seu cluster usa {{< glossary_tooltip term_id="rbac" text="RBAC" >}}, ler as métricas requer autorização por meio de um usuário, grupo ou ServiceAccount com um ClusterRole que conceda o acesso ao `/metrics`.
3232

3333
Por exemplo:
3434

@@ -46,10 +46,12 @@ rules:
4646
4747
## Ciclo de vida da métrica
4848
49-
Métrica alfa → Métrica estável → Métrica ultrapassada → Métrica oculta → Métrica excluída
49+
Métrica alfa → Métrica beta → Métrica estável → Métrica ultrapassada → Métrica oculta → Métrica excluída
5050
5151
A métrica alfa não tem garantias de estabilidade. Essas métricas podem ser modificadas ou deletadas a qualquer momento.
5252
53+
Métricas beta seguem um contrato de API menos rígido do que suas contrapartes estáveis. Nenhum rótulo pode ser removido de métricas beta durante sua vida útil, no entanto, rótulos podem ser adicionados enquanto a métrica estiver no estágio beta.
54+
5355
Métricas estáveis possuem a garantia de que não serão alteradas. Isso significa:
5456
5557
- Uma métrica estável sem uma assinatura ultrapassada não será deletada ou renomeada
@@ -76,40 +78,35 @@ Por exemplo:
7678
some_counter 0
7779
```
7880

79-
Métricas ocultas não são mais publicadas para extração, mas ainda estão disponíveis para uso. Para usar uma métrica oculta, por favor consulte a seção [mostrar métricas ocultas](#mostrar-métricas-ocultas).
81+
Métricas ocultas não são mais publicadas para extração, mas ainda estão disponíveis para uso.
82+
Uma métrica ultrapassada se torna uma métrica oculta após um período de tempo, com base em seu nível de estabilidade:
83+
* Métricas **ESTÁVEIS** se tornam ocultas após um mínimo de 3 versões ou 9 meses, o que for mais longo.
84+
* Métricas **BETA** se tornam ocultas após um mínimo de 1 versão ou 4 meses, o que for mais longo.
85+
* Métricas **ALFA** podem ser ocultadas ou removidas na mesma versão em que são ultrapassadas.
86+
87+
Para usar uma métrica oculta, você deve habilitá-la. Para mais detalhes, consulte a seção [mostrar métricas ocultas](#mostrar-métricas-ocultas).
8088

8189
Métricas excluídas não estão mais disponíveis e não podem mais ser usadas.
8290

8391
## Mostrar métricas ocultas
8492

8593
Como descrito anteriormente, administradores podem habilitar métricas ocultas por meio de uma _flag_ de linha de comando em um binário específico. Isso pode ser usado como uma saída de emergência para os administradores caso percam a migração das métricas ultrapassadas na última versão.
8694

87-
A _flag_ `show-hidden-metrics-for-version` usa uma versão para a qual você deseja mostrar métricas ultrapassadas nessa versão. A versão é expressada como x.y, onde x é a versão principal e y a versão secundária. A versão de _patch_ não é necessária mesmo que uma métrica possa ser descontinuada em uma versão de _patch_, o motivo é que a política de descontinuação de métricas é executada na versão secundária.
88-
89-
A _flag_ só pode usar a versão secundária anterior como seu valor. Todas as métricas ocultas no anterior serão emitidas se os administradores definirem a versão anterior como `show-hidden-metrics-for-version`. A versão muito antiga não é permitida porque viola a política de métricas ultrapassadas.
90-
91-
Utilize a métrica `A` como exemplo, assumindo que `A` está obsoleto em 1.n. De acordo com a política de métricas ultrapassadas, podemos chegar à seguinte conclusão:
92-
93-
- Na versão `1.n`, a métrica está ultrapassada, e pode ser emitida por padrão.
94-
- Na versão `1.n+1`, a métrica está oculta por padrão e pode ser emitida via linha de comando `show-hidden-metrics-for-version=1.n`.
95-
- Na versão `1.n+2`, a métrica deve ser removida do código fonte. Não há mais _escape hatch_.
96-
97-
Se você está atualizando da versão `1.12` para `1.13`, mas ainda depende da métrica `A` ultrapassada em `1.12`, você deve definir métricas ocultas via linha de comando: `--show-hidden-metrics=1.12` e lembre-se de remover essa dependência de métrica antes de atualizar para `1.14`.
98-
99-
## Desativar métricas do _accelerator_
100-
101-
O kubelet coleta métricas do _accelerator_ por meio do cAdvisor. Para coletar essas métricas, para _accelerator_ como as GPUs NVIDIA, o kubelet mantinha uma alça aberta no driver. Isso significava que, para realizar alterações na infraestrutura (por exemplo, atualizar o _driver_), um administrador do _cluster_ precisa interromper o agente kubelet.
95+
A _flag_ `show-hidden-metrics-for-version` usa uma versão para a qual você deseja mostrar métricas ultrapassadas nessa versão. A versão é expressada como x.y, onde x é a versão principal e y a versão secundária. A versão de patch não é necessária mesmo que uma métrica possa ser descontinuada em uma versão de patch, o motivo é que a política de descontinuação de métricas é executada na versão secundária.
10296

103-
A responsabilidade de colear métricas do _accelerator_ agora pertence ao fornecedor, e não ao kubelet. Os fornecedores devem providenciar um contêiner que colete métricas e as exponha ao serviço de métricas (por exemplo, Prometheus).
97+
A _flag_ só pode usar a versão secundária anterior como seu valor. Se você quiser mostrar todas as métricas ocultas na versão anterior, pode definir a _flag_ `show-hidden-metrics-for-version` para a versão anterior. Usar uma versão muito antiga não é permitido porque viola a política de descontinuação de métricas.
10498

105-
O [`DisableAcceleratorUsageMetrics` _feature gate_](/docs/reference/command-line-tools-reference/feature-gates/) desabilita as métricas coletadas pelo kubelet, com uma [_timeline_ para habilitar esse recurso por padrão](https://github.com/kubernetes/enhancements/tree/411e51027db842355bd489691af897afc1a41a5e/keps/sig-node/1867-disable-accelerator-usage-metrics#graduation-criteria).
99+
Por exemplo, vamos supor que a métrica `A` seja descontinuada na versão `1.29`. A versão na qual a métrica `A` se torna oculta depende de seu nível de estabilidade:
100+
* Se a métrica `A` for **ALFA**, ela poderá ser ocultada na versão `1.29`.
101+
* Se a métrica `A` for **BETA**, ela será ocultada na versão `1.30` no mínimo. Se você estiver atualizando para a versão `1.30` e ainda precisar de `A`, você deve usar a opção de linha de comando `--show-hidden-metrics-for-version=1.29`.
102+
* Se a métrica `A` for **ESTÁVEL**, ela será ocultada na versão `1.32` no mínimo. Se você estiver atualizando para a versão `1.32` e ainda precisar de `A`, você deve usar a opção de linha de comando `--show-hidden-metrics-for-version=1.31`.
106103

107104
## Métricas de componentes
108105

109-
### Métricas do _kube-controller-manager_
106+
### Métricas do kube-controller-manager
110107

111-
As métricas do _controller manager_ fornecem informações importantes sobre o desempenho e a integridade do _controller manager_.
112-
Essas métricas incluem métricas comuns do agente de execução da linguagem Go, tais como a quantidade de _go_routine_ e métricas específicas do _controller_, como latência de requisições etcd ou latência da _API_ dos provedores de serviços de nuvem (AWS, GCE, OpenStack), que podem ser usadas para medir a integridade de um _cluster_.
108+
As métricas do controller manager fornecem informações importantes sobre o desempenho e a integridade do controller manager.
109+
Essas métricas incluem métricas comuns do agente de execução da linguagem Go, tais como a quantidade de go_routine e métricas específicas do controller, como latência de requisições etcd ou latência da API dos provedores de serviços de nuvem (AWS, GCE, OpenStack), que podem ser usadas para medir a integridade de um cluster.
113110

114111
A partir do Kubernetes 1.7, métricas detalhadas de provedores de serviços de nuvem estão disponíveis para operações de armazenamento para o GCE, AWS, Vsphere e OpenStack.
115112
Essas métricas podem ser usadas para monitorar a integridade das operações de volumes persistentes.
@@ -125,42 +122,96 @@ cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"}
125122
cloudprovider_gce_api_request_duration_seconds { request = "list_disk"}
126123
```
127124

128-
### Métricas do _kube-scheduler_
125+
### Métricas do kube-scheduler
129126

130127
{{< feature-state for_k8s_version="v1.21" state="beta" >}}
131128

132-
O _scheduler_ expõe métricas opcionais que relatam os recursos solicitados e os limites desejados de todos os _pods_ em execução. Essas métricas podem ser usadas para criar _dashboards_ de planejamento de capacidade, avaliar os limites de agendamentos atuais ou históricos, identificar rapidamente cargas de trabalho que não podem ser agendadas devido à falta de recursos e comparar o uso atual com a solicitação do _pod_.
129+
O scheduler expõe métricas opcionais que reportam os recursos solicitados e os limites desejados de todos os pods em execução. Essas métricas podem ser usadas para criar dashboards de planejamento de capacidade, avaliar os limites de agendamentos atuais ou históricos, identificar rapidamente cargas de trabalho que não podem ser agendadas devido à falta de recursos e comparar o uso atual com a solicitação do pod.
133130

134-
O _kube-scheduler_ identifica as requisições de [recursos e limites](/docs/concepts/configuration/manage-resources-containers/) configurado para cada _Pod_; quando uma requisição ou limite é diferente de zero o _kube-scheduler_ relata uma _timeseries_ de métricas. Essa _timeseries_ é etiquetada por:
131+
O kube-scheduler identifica as requisições de [recursos e limites](/docs/concepts/configuration/manage-resources-containers/) configurado para cada Pod; quando uma requisição ou limite é diferente de zero o kube-scheduler relata uma série temporal de métricas. Essa série temporal é etiquetada por:
135132

136-
- _namespace_
137-
- nome do _pod_
138-
- o nó onde o _pod_ está programado ou uma _string_ vazia caso ainda não esteja programado
133+
- namespace
134+
- nome do pod
135+
- o nó onde o pod está agendado ou uma string vazia caso ainda não esteja agendado
139136
- prioridade
140-
- o _scheduler_ atribuído para esse _pod_
137+
- o scheduler atribuído para esse pod
141138
- o nome do recurso (por exemplo, `cpu`)
142139
- a unidade do recurso, se conhecida (por exemplo, `cores`)
143140

144-
Uma vez que o _pod_ alcança um estado de conclusão (sua `restartPolicy` está como `Never` ou `onFailure` e está na fase de `Succeeded` ou `Failed`, ou foi deletado e todos os contêineres tem um estado de terminado), a série não é mais relatada já que o _scheduler_ agora está livre para agendar a execução de outros _pods_. As duas métricas são chamadas de `kube_pod_resource_request` e `kube_pod_resource_limit`.
141+
Uma vez que o pod alcança um estado de conclusão (sua `restartPolicy` está como `Never` ou `OnFailure` e está na fase `Succeeded` ou `Failed`, ou foi deletado e todos os contêineres têm um estado de terminado), a série não é mais relatada já que o scheduler agora está livre para agendar a execução de outros pods. As duas métricas são chamadas de `kube_pod_resource_request` e `kube_pod_resource_limit`.
142+
143+
As métricas são expostas no endpoint HTTP `/metrics/resources`. Elas requerem
144+
autorização para o endpoint `/metrics/resources`, geralmente concedida por uma
145+
ClusterRole com o verbo `get` para a URL não-recurso `/metrics/resources`.
146+
147+
No Kubernetes 1.21 você deve usar a opção
148+
`--show-hidden-metrics-for-version=1.20` para expor essas métricas de estabilidade alfa.
149+
150+
### Métricas de Pressure Stall Information (PSI) do kubelet
151+
152+
{{< feature-state for_k8s_version="v1.34" state="beta" >}}
153+
154+
Como uma funcionalidade beta, o Kubernetes permite que você configure o kubelet para coletar informações de
155+
[Pressure Stall Information](https://docs.kernel.org/accounting/psi.html)
156+
(PSI) do kernel Linux para uso de CPU, memória e I/O.
157+
As informações são coletadas no nível de nó, Pod e contêiner.
158+
As métricas são expostas no endpoint `/metrics/cadvisor` com os seguintes nomes:
159+
```
160+
container_pressure_cpu_stalled_seconds_total
161+
container_pressure_cpu_waiting_seconds_total
162+
container_pressure_memory_stalled_seconds_total
163+
container_pressure_memory_waiting_seconds_total
164+
container_pressure_io_stalled_seconds_total
165+
container_pressure_io_waiting_seconds_total
166+
```
145167

146-
As métricas são expostas no _endpoint_ HTTP `/metrics/resources` e requerem a mesma autorização que o _endpoint_ `/metrics` no _scheduler_. Você deve usar a _flag_ `--show-hidden-metrics-for-version=1.20` para expor essas métricas de estabilidade alfa.
168+
Esta funcionalidade está habilitada por padrão, ao definir o [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) `KubeletPSI`. As informações também são expostas na
169+
[API Summary](/docs/reference/instrumentation/node-metrics#psi).
170+
171+
Você pode aprender como interpretar as métricas PSI em [Entender Métricas PSI](/docs/reference/instrumentation/understand-psi-metrics/).
172+
173+
#### Requisitos
174+
175+
Pressure Stall Information requer:
176+
177+
- [Versões do kernel Linux 4.20 ou posterior](/docs/reference/node/kernel-version-requirements#requirements-psi)
178+
- [cgroup v2](/docs/concepts/architecture/cgroups)
147179

148180
## Desativando métricas
149181

150-
Você pode desativar explicitamente as métricas via linha de comando utilizando a _flag_ `--disabled-metrics`. Isso pode ser desejado se, por exemplo, uma métrica estiver causando um problema de desempenho. A entrada é uma lista de métricas desabilitadas (ou seja, `--disabled-metrics=metric1,metric2`).
182+
Você pode desativar explicitamente as métricas via linha de comando utilizando a flag `--disabled-metrics`. Isso pode ser desejado se, por exemplo, uma métrica estiver causando um problema de desempenho. A entrada é uma lista de métricas desabilitadas (ou seja, `--disabled-metrics=metric1,metric2`).
151183

152184
## Aplicação de cardinalidade de métrica
153185

154-
As métricas com dimensões sem limites podem causar problemas de memória nos componentes que elas instrumentam. Para limitar a utilização de recursos você pode usar a opção de linha de comando `--allow-label-value` para dinamicamente configurar uma lista de permissões de valores de _label_ para uma métrica.
186+
As métricas com dimensões sem limites podem causar problemas de memória nos componentes que elas instrumentam. Para limitar a utilização de recursos você pode usar a opção de linha de comando `--allow-label-value` para dinamicamente configurar uma lista de valores de label permitidos para uma métrica.
155187

156-
No estágio alfa, a _flag_ pode receber apenas uma série de mapeamentos como lista de permissões de _labels_ para uma métrica.
157-
Cada mapeamento tem o formato `<metric_name>,<label_name>=<allowed_labels>` onde `<allowed_labels>` é uma lista separada por vírgulas de nomes aceitáveis para a _label_.
188+
No estágio alfa, a flag pode receber apenas uma série de mapeamentos como lista de permissões de labels para uma métrica.
189+
Cada mapeamento tem o formato `<metric_name>,<label_name>=<allowed_labels>` onde `<allowed_labels>` é uma lista separada por vírgulas de nomes aceitáveis para a label.
158190

159191
O formato geral se parece com:
160-
`--allow-label-value <metric_name>,<label_name>='<allow_value1>, <allow_value2>...', <metric_name2>,<label_name>='<allow_value1>, <allow_value2>...', ...`.
192+
193+
```
194+
--allow-metric-labels <metric_name>,<label_name>='<allow_value1>, <allow_value2>...', <metric_name2>,<label_name>='<allow_value1>, <allow_value2>...', ...
195+
```
161196

162197
Por exemplo:
163-
`--allow-label-value number_count_metric,odd_number='1,3,5', number_count_metric,even_number='2,4,6', date_gauge_metric,weekend='Saturday,Sunday'`
198+
199+
```none
200+
--allow-metric-labels number_count_metric,odd_number='1,3,5', number_count_metric,even_number='2,4,6', date_gauge_metric,weekend='Saturday,Sunday'
201+
```
202+
203+
Além de especificar isso pela CLI, isso também pode ser feito dentro de um arquivo de configuração. Você
204+
pode especificar o caminho para esse arquivo de configuração usando o argumento de linha de comando
205+
`--allow-metric-labels-manifest` para um componente. Aqui está um exemplo do conteúdo desse arquivo de configuração:
206+
207+
```yaml
208+
"metric1,label2": "v1,v2,v3"
209+
"metric2,label1": "v1,v2,v3"
210+
```
211+
212+
Além disso, a meta-métrica `cardinality_enforcement_unexpected_categorizations_total` registra a
213+
contagem de categorizações inesperadas durante a aplicação de cardinalidade, isto é, sempre que um valor de rótulo
214+
é encontrado que não é permitido em relação às restrições da lista de permissões.
164215

165216
## {{% heading "whatsnext" %}}
166217

0 commit comments

Comments
 (0)