You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
O OpenTelemetry fornece [bibliotecas de instrumentação][] para várias
@@ -11,7 +11,7 @@ _monkey-patching_ do código da biblioteca.
11
11
12
12
A instrumentação nativa de bibliotecas com OpenTelemetry oferece melhor
13
13
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:
15
15
16
16
-_Hooks_ personalizados de logging podem ser substituídos por APIs
17
17
OpenTelemetry comuns e fáceis de usar, os usuários utilizarão somente o
@@ -25,51 +25,40 @@ bibliotecas exporem e documentarem _hooks_:
25
25
para diversos cenários de consumo usando uma grande variedade de pontos de
26
26
extensibilidade bem documentados do OpenTelemetry.
27
27
28
-
## Convenção semântica
28
+

29
29
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}
33
31
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:
37
34
usuários que trabalham com telemetria não precisam aprender as especificidades
38
35
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
41
38
cenários podem ser habilitados automaticamente, sem necessidade de intervenção
42
39
ou configuração por parte do usuário.
43
40
44
41
As convenções semânticas estão em constante evolução, e novas são adicionadas
45
42
regularmente. Se ainda não existirem convenções para a sua biblioteca,
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
49
47
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) .
53
49
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
Pense na sua biblioteca do ponto de vista de um usuário e no que ele poderia
64
53
querer saber sobre o comportamento e a atividade da biblioteca. Como mantenedor
65
54
da biblioteca, você conhece os detalhes internos, mas o usuário provavelmente
66
55
estará mais interessado na funcionalidade da aplicação do que no funcionamento
67
56
interno da biblioteca. Considere quais informações podem ser úteis para analisar
68
57
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:
70
59
71
60
- 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
73
62
- Eventos em trechos
74
63
- Métricas agregadas
75
64
@@ -82,28 +71,23 @@ adicionais.
82
71
83
72
Siga as convenções semânticas ao definir atributos dos trechos.
84
73
85
-
## Quando **não** instrumentar
74
+
## Quando não instrumentar {#when-not-to-instrument}
86
75
87
76
Algumas bibliotecas atuam como camadas finas que encapsulam chamadas de rede. Há
88
77
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.
93
80
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:
95
82
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.
99
86
- 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.
104
88
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.
107
91
Isso é essencial em linguagens que não suportam instrumentação totalmente
108
92
automática e ainda é útil em outras.
109
93
@@ -114,41 +98,37 @@ caso decida fazê-lo.
114
98
115
99
O primeiro passo é adicionar a dependência do pacote OpenTelemetry API.
116
100
117
-
O OpenTelemetry possui [dois módulos principais](/docs/specs/otel/overview/) -
101
+
O OpenTelemetry possui [dois módulos principais](/docs/specs/otel/overview/):
118
102
API e SDK. A API do OpenTelemetry é um conjunto de abstrações e implementações
119
103
não operacionais. A menos que sua aplicação importe o SDK do OpenTelemetry, sua
120
104
instrumentação não faz nada e não impacta o desempenho da aplicação.
121
105
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}
123
107
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:
126
110
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.
133
113
- Enquanto sua instrumentação se estabiliza, considere lançá-la como um pacote
134
114
separado, para que isso não cause problemas para usuários que não a utilizam.
135
115
Você pode mantê-la em seu repositório ou
136
116
[adicioná-la ao OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0155-external-modules.md#contrib-components),
137
117
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
139
119
isso não cause problemas funcionais, pode ser necessário atualizar sua
140
120
instrumentação de tempos em tempos. Ter a instrumentação em um pacote
141
121
experimental ou no repositório _contrib_ do OpenTelemetry pode ajudar a manter
142
122
as convenções atualizadas sem causar mudanças disruptivas para seus usuários.
143
123
144
-
### Obtendo um rastreador
124
+
### Obtendo um rastreador {#getting-a-tracer}
145
125
146
126
Toda a configuração da aplicação é ocultada da sua biblioteca por meio da API de
147
127
Rastreamento. As bibliotecas podem permitir que as aplicações passem instâncias
148
128
de `TracerProvider` para facilitar testes e injeção de dependências, ou podem
149
129
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
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,
215
197
consulte as [convenções gerais](/docs/specs/semconv/general/attributes/).
216
198
217
-
### Trechos de rede aninhados e outros trechos
199
+
### Trechos de rede aninhados e outros trechos {#nestex-network-and-other-spans}
218
200
219
201
Chamadas de rede são geralmente rastreadas com auto-instrumentações do
220
202
OpenTelemetry através da implementação correspondente do cliente.
221
203
222
204

223
205
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:
226
207
227
208
- Rastrear chamadas de rede melhoraria a observabilidade para os usuários ou sua
228
209
capacidade de apoiá-los?
@@ -242,26 +223,27 @@ melhor julgamento. Aqui estão algumas considerações para ajudar:
242
223
Se o OpenTelemetry já suportar o rastreamento de suas chamadas de rede, você
243
224
provavelmente não quer duplicá-lo. Pode haver algumas exceções:
244
225
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.
249
230
- Enriquecer trechos de RPC com informações absolutamente essenciais específicas
250
231
da biblioteca/serviço não cobertas pela auto-instrumentação
251
232
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.
253
234
254
-
### Eventos
235
+
### Eventos {#events}
255
236
256
237
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.
259
240
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
263
243
de rastros ativo em todos os logs, para que os usuários possam correlacioná-los.
264
244
245
+
[//]: #(TODO: Draft PR, resume it from here)
246
+
265
247
Se sua linguagem e ecossistema não tiverem suporte comum para logs, use [span
266
248
events][] para compartilhar detalhes adicionais do aplicativo. Eventos podem ser
267
249
mais convenientes se você quiser adicionar atributos também.
0 commit comments