Skip to content

Commit cdb8a9b

Browse files
committed
docs: update content/pt/docs/concepts/instrumentation/libraries.md
1 parent 2af4718 commit cdb8a9b

File tree

1 file changed

+55
-73
lines changed

1 file changed

+55
-73
lines changed

content/pt/docs/concepts/instrumentation/libraries.md

+55-73
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Bibliotecas
33
description: Aprenda como adicionar instrumentação nativa à sua biblioteca.
44
weight: 40
5-
default_lang_commit: a570a00c7a238ffe26528d7bfb20efdbaf939c39 # + link-fix patch
5+
default_lang_commit: e09adae2c06b71a08cafb2b1c42e3e7b9e48997b
66
---
77

88
O OpenTelemetry fornece [bibliotecas de instrumentação][] para várias
@@ -11,7 +11,7 @@ _monkey-patching_ do código da biblioteca.
1111

1212
A instrumentação nativa de bibliotecas com OpenTelemetry oferece melhor
1313
observabilidade e experiência para desenvolvedores, eliminando a necessidade das
14-
bibliotecas exporem e documentarem _hooks_:
14+
bibliotecas exporem e documentarem _hooks_. Outros benefícios fornecidos pela instrumentação nativa incluem:
1515

1616
- _Hooks_ personalizados de logging podem ser substituídos por APIs
1717
OpenTelemetry comuns e fáceis de usar, os usuários utilizarão somente o
@@ -25,51 +25,40 @@ bibliotecas exporem e documentarem _hooks_:
2525
para diversos cenários de consumo usando uma grande variedade de pontos de
2626
extensibilidade bem documentados do OpenTelemetry.
2727

28-
## Convenção semântica
28+
![ Native Instrumentation vs instrumentation libraries](../native-vs-libraries.svg)
2929

30-
Confira as [convenções semânticas](/docs/specs/semconv/general/trace/)
31-
disponíveis, que abrangem frameworks web, clientes RPC, bancos de dados,
32-
clientes de mensagens, componentes de infraestrutura e muito mais!
30+
## Convenção semântica {#semantic-conventions}
3331

34-
Se a sua biblioteca se enquadra em alguma dessas categorias, siga as convenções.
35-
Elas são a principal fonte de verdade e indicam quais informações devem ser
36-
incluídas nos trechos. As convenções tornam a instrumentação consistente:
32+
[Convenções semânticas](/docs/specs/semconv/general/trace/) são a principal fonte de verdade e indicam quais informações devem ser
33+
incluídas nos trechos produzidos por _frameworks_ web, clientes RPC, bancos de dados, clientes de mensagens, infraestrutura e mais. As convenções tornam a instrumentação consistente:
3734
usuários que trabalham com telemetria não precisam aprender as especificidades
3835
de cada biblioteca, e fornecedores de observabilidade podem criar experiências
39-
para uma ampla variedade de tecnologias (por exemplo, bancos de dados ou
40-
sistemas de mensagens). Quando as bibliotecas seguem as convenções, muitos
36+
para uma ampla variedade de tecnologias, por exemplo, bancos de dados ou
37+
sistemas de mensagens. Quando as bibliotecas seguem as convenções, muitos
4138
cenários podem ser habilitados automaticamente, sem necessidade de intervenção
4239
ou configuração por parte do usuário.
4340

4441
As convenções semânticas estão em constante evolução, e novas são adicionadas
4542
regularmente. Se ainda não existirem convenções para a sua biblioteca,
4643
[considere adicioná-las](https://github.com/open-telemetry/semantic-conventions/issues).
47-
Preste atenção especial aos nomes dos trechos; procure usar nomes significativos
48-
e considere a cardinalidade ao defini-los.
44+
Preste atenção especial aos nomes dos trechos: procure usar nomes significativos
45+
e considere a cardinalidade ao defini-los. Também defina o atributo [`schema_url`](/docs/specs/otel/schemas/#schema-url), que pode ser
46+
utilizado para registrar a versão das convenções semânticas em uso
4947

50-
Há um atributo [`schema_url`](/docs/specs/otel/schemas/#schema-url) que pode ser
51-
usado para registrar a versão das convenções semânticas em uso. Sempre que
52-
possível, configure esse atributo.
48+
Se tiver algum feedback ou quiser adicionar uma nova convenção, contribua juntando-se ao _[Instrumentation Slack](https://cloud-native.slack.com/archives/C01QZFGMLQ7)_, ou através de uma nova discussão ou _pull request_ no [repositório de Especificações _(Specification)](https://github.com/open-telemetry/opentelemetry-specification) .
5349

54-
Se tiver algum feedback ou quiser adicionar uma nova convenção, participe e
55-
contribua! O
56-
[Instrumentation Slack](https://cloud-native.slack.com/archives/C01QZFGMLQ7) ou
57-
o repositório de
58-
[Specification](https://github.com/open-telemetry/opentelemetry-specification)
59-
são ótimos pontos de partida!
60-
61-
### Definindo trechos
50+
### Definindo trechos {#defining-spans}
6251

6352
Pense na sua biblioteca do ponto de vista de um usuário e no que ele poderia
6453
querer saber sobre o comportamento e a atividade da biblioteca. Como mantenedor
6554
da biblioteca, você conhece os detalhes internos, mas o usuário provavelmente
6655
estará mais interessado na funcionalidade da aplicação do que no funcionamento
6756
interno da biblioteca. Considere quais informações podem ser úteis para analisar
6857
o uso da sua biblioteca e pense em uma maneira apropriada de modelar esses
69-
dados. Algumas considerações incluem:
58+
dados. Alguns aspectos a serem considerados incluem:
7059

7160
- Trechos e hierarquias de trecho
72-
- Atributos numéricos em trechos (como alternativa a métricas agregadas)
61+
- Atributos numéricos em trechos, como uma alternativa a métricas agregadas
7362
- Eventos em trechos
7463
- Métricas agregadas
7564

@@ -82,28 +71,23 @@ adicionais.
8271

8372
Siga as convenções semânticas ao definir atributos dos trechos.
8473

85-
## Quando **não** instrumentar
74+
## Quando não instrumentar {#when-not-to-instrument}
8675

8776
Algumas bibliotecas atuam como camadas finas que encapsulam chamadas de rede. Há
8877
uma grande chance de que o OpenTelemetry já tenha uma biblioteca de
89-
instrumentação para o cliente RPC subjacente (confira o
90-
[registry](/ecosystem/registry/)). Nesse caso, pode não ser necessário
91-
instrumentar a biblioteca que encapsula essas chamadas. Como diretriz geral, só
92-
instrumente sua biblioteca em seu próprio nível.
78+
instrumentação para o cliente RPC subjacente. Confira o
79+
_[registro](/ecosystem/registry/)_ para encontrar as bibliotecas existentes. Caso uma biblioteca já exista, pode não ser necessário instrumentar a biblioteca que encapsula essas chamadas.
9380

94-
Não instrumente se:
81+
Como regra geral, instrumente sua biblioteca apenas em seu próprio nível. Não a instrumente caso todos os casos a seguir se apliquem:
9582

96-
- Sua biblioteca é um proxy simples em cima de APIs documentadas ou
97-
autoexplicativas
98-
- O OpenTelemetry já tem instrumentação para as chamadas de rede subjacentes
83+
- Sua biblioteca é um _proxy_ simples em cima de APIs documentadas ou
84+
autoexplicativas.
85+
- O OpenTelemetry já possui instrumentação para as chamadas de rede subjacentes.
9986
- Não existem convenções que sua biblioteca deva seguir para enriquecer a
100-
telemetria
101-
102-
Se estiver em dúvida - não instrumente - você sempre pode fazê-lo mais tarde,
103-
quando perceber a necessidade.
87+
telemetria.
10488

105-
Se optar por não instrumentar, ainda pode ser útil fornecer uma maneira de
106-
configurar _handlers_ do OpenTelemetry para a instância interna do cliente RPC.
89+
Em caso de dúvida, não instrumente. Se optar por não instrumentar, ainda pode ser útil fornecer uma maneira de
90+
configurar manipuladores do OpenTelemetry para a instância interna do cliente RPC.
10791
Isso é essencial em linguagens que não suportam instrumentação totalmente
10892
automática e ainda é útil em outras.
10993

@@ -114,41 +98,37 @@ caso decida fazê-lo.
11498

11599
O primeiro passo é adicionar a dependência do pacote OpenTelemetry API.
116100

117-
O OpenTelemetry possui [dois módulos principais](/docs/specs/otel/overview/) -
101+
O OpenTelemetry possui [dois módulos principais](/docs/specs/otel/overview/):
118102
API e SDK. A API do OpenTelemetry é um conjunto de abstrações e implementações
119103
não operacionais. A menos que sua aplicação importe o SDK do OpenTelemetry, sua
120104
instrumentação não faz nada e não impacta o desempenho da aplicação.
121105

122-
**Bibliotecas devem usar apenas a API do OpenTelemetry.**
106+
### Bibliotecas devem usar apenas a API do OpenTelemetry {#libraries-should-only-use-the-opentelemetry-api}
123107

124-
Você pode estar com receio de adicionar novas dependências, então aqui estão
125-
algumas considerações para ajudar a minimizar problemas com dependências:
108+
Caso você esteja com receio de adicionar novas dependências, então aqui estão
109+
algumas considerações para ajudar a minimizar problemas de conflitos de dependências:
126110

127-
- A API de rastros do OpenTelemetry alcançou estabilidade no início de 2021,
128-
seguindo a
129-
[Convenção semântica 2.0](/docs/specs/otel/versioning-and-stability/), e
130-
levamos a estabilidade da API a sério.
131-
- Ao adicionar dependências, use a versão estável da API do OpenTelemetry
132-
(1.0.\*) e evite atualizá-la, a menos que precise usar novas funcionalidades.
111+
- A API de rastros do OpenTelemetry alcançou estabilidade no início de 2021. Ela segue o [Versionamento Semântico 2.0](/docs/specs/otel/versioning-and-stability/).
112+
- Utilize a versão mais antiga estável da API do OpenTelemetry (1.0.\*) e evite atualizá-la, a menos que precise usar novas funcionalidades.
133113
- Enquanto sua instrumentação se estabiliza, considere lançá-la como um pacote
134114
separado, para que isso não cause problemas para usuários que não a utilizam.
135115
Você pode mantê-la em seu repositório ou
136116
[adicioná-la ao OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0155-external-modules.md#contrib-components),
137117
para que seja distribuída junto com outras bibliotecas de instrumentação.
138-
- As Convenções Semânticas são [estáveis, mas sujeitas à evolução][]: embora
118+
- As Convenções semânticas são [estáveis, mas sujeitas à evolução][]: embora
139119
isso não cause problemas funcionais, pode ser necessário atualizar sua
140120
instrumentação de tempos em tempos. Ter a instrumentação em um pacote
141121
experimental ou no repositório _contrib_ do OpenTelemetry pode ajudar a manter
142122
as convenções atualizadas sem causar mudanças disruptivas para seus usuários.
143123

144-
### Obtendo um rastreador
124+
### Obtendo um rastreador {#getting-a-tracer}
145125

146126
Toda a configuração da aplicação é ocultada da sua biblioteca por meio da API de
147127
Rastreamento. As bibliotecas podem permitir que as aplicações passem instâncias
148128
de `TracerProvider` para facilitar testes e injeção de dependências, ou podem
149129
obtê-las a partir do
150-
[TracerProvider global](/docs/specs/otel/trace/api/#get-a-tracer). As
151-
implementações do OpenTelemetry em diferentes linguagens podem ter preferências
130+
[TracerProvider global](/docs/specs/otel/trace/api/#get-a-tracer).
131+
As implementações do OpenTelemetry em diferentes linguagens podem ter preferências
152132
distintas para passar instâncias ou acessar o global, dependendo do que é mais
153133
comum na linguagem.
154134

@@ -157,9 +137,9 @@ de rastreamento) - essas informações aparecerão na telemetria e ajudarão os
157137
usuários a processar e filtrar a telemetria, além de entender sua origem e
158138
depurar/relatar quaisquer problemas de instrumentação.
159139

160-
## O que instrumentar
140+
## O que instrumentar {#what-to-instrument}
161141

162-
### APIs Públicas
142+
### APIs Públicas {#public-apis}
163143

164144
APIs públicas são bons candidatos para rastreamento: trechos criados para
165145
chamadas de APIs públicas permitem que os usuários mapeiem a telemetria para o
@@ -170,7 +150,9 @@ biblioteca. Quais chamadas devem ser rastreadas:
170150
que levam tempo significativo e podem falhar (ex.: operações de Entrada/Saída)
171151
- _Handlers_ que processam requisições ou mensagens
172152

173-
**Exemplo de instrumentação:**
153+
#### Exemplo de instrumentação {#instrumentation-example}
154+
155+
O exemplo a seguir mostra como instrumentar uma aplicação Java:
174156

175157
```java
176158
private static Tracer tracer = getTracer(TracerProvider.noop());
@@ -211,18 +193,17 @@ private Response selectWithTracing(Query query) {
211193
}
212194
```
213195

214-
Siga as convenções para preencher atributos! Se nenhuma delas se aplicar,
196+
Siga as convenções para preencher atributos. Se nenhuma delas se aplicar,
215197
consulte as [convenções gerais](/docs/specs/semconv/general/attributes/).
216198

217-
### Trechos de rede aninhados e outros trechos
199+
### Trechos de rede aninhados e outros trechos {#nestex-network-and-other-spans}
218200

219201
Chamadas de rede são geralmente rastreadas com auto-instrumentações do
220202
OpenTelemetry através da implementação correspondente do cliente.
221203

222204
![Trecho de banco de dados e HTTP aninhados na interface do Jaeger](../nested-spans.svg)
223205

224-
Se o OpenTelemetry não suportar o rastreamento do seu cliente de rede, use seu
225-
melhor julgamento. Aqui estão algumas considerações para ajudar:
206+
Se o OpenTelemetry não suportar o rastreamento do seu cliente de rede, aqui estão algumas considerações para ajudar a decidir o melhor curso de ação:
226207

227208
- Rastrear chamadas de rede melhoraria a observabilidade para os usuários ou sua
228209
capacidade de apoiá-los?
@@ -242,26 +223,27 @@ melhor julgamento. Aqui estão algumas considerações para ajudar:
242223
Se o OpenTelemetry já suportar o rastreamento de suas chamadas de rede, você
243224
provavelmente não quer duplicá-lo. Pode haver algumas exceções:
244225

245-
- Para suportar usuários sem auto-instrumentação (que pode não funcionar em
246-
certos ambientes ou os usuários podem ter preocupações com _monkey-patching_)
247-
- Para habilitar protocolos personalizados (legados) de correlação e propagação
248-
de contexto com o serviço subjacente
226+
- Para suportar usuários sem auto-instrumentação, que pode não funcionar em
227+
certos ambientes ou quando os usuários podem ter preocupações com _monkey-patching_.
228+
- Para habilitar protocolos personalizados ou legados de correlação e propagação
229+
de contexto com o serviço subjacente.
249230
- Enriquecer trechos de RPC com informações absolutamente essenciais específicas
250231
da biblioteca/serviço não cobertas pela auto-instrumentação
251232

252-
AVISO: Solução genérica para evitar duplicação está em construção 🚧.
233+
Uma solução genérica para evitar duplicação está em construção.
253234

254-
### Eventos
235+
### Eventos {#events}
255236

256237
Rastros são um tipo de sinal que seus aplicativos podem emitir. Eventos (ou
257-
logs) e traces se complementam, não se duplicam. Sempre que você tiver algo que
258-
deva ter uma verbosidade, logs são uma escolha melhor do que traces.
238+
logs) e rastros se complementam, não se duplicam. Sempre que você tiver algo que
239+
deva ter um certo nível de verbosidade, logs são uma escolha melhor do que rastros.
259240

260-
É provável que seu aplicativo já use log ou algum módulo semelhante. Seu módulo
261-
pode já ter integração com o OpenTelemetry -- para descobrir, veja o
262-
[registry](/ecosystem/registry/). As integrações geralmente adicionam o contexto
241+
Caso a sua aplicação já utilize log ou algum módulo semelhante, é possível que o módulo de logs já tenha integração com o OpenTelemetry. Para descobrir, veja o
242+
[registro](/ecosystem/registry/). As integrações geralmente adicionam o contexto
263243
de rastros ativo em todos os logs, para que os usuários possam correlacioná-los.
264244

245+
[//]: # (TODO: Draft PR, resume it from here)
246+
265247
Se sua linguagem e ecossistema não tiverem suporte comum para logs, use [span
266248
events][] para compartilhar detalhes adicionais do aplicativo. Eventos podem ser
267249
mais convenientes se você quiser adicionar atributos também.

0 commit comments

Comments
 (0)