|
| 1 | +--- |
| 2 | +title: Escopo de instrumentação |
| 3 | +weight: 80 |
| 4 | +default_lang_commit: 2f34c456ab38b4d3502cd07bc36fa1455d4ef875 |
| 5 | +--- |
| 6 | + |
| 7 | +O [escopo de instrumentação](/docs/specs/otel/glossary/#instrumentation-scope) |
| 8 | +representa uma unidade lógica dentro do código da aplicação com a qual a |
| 9 | +telemetria emitida pode ser associada. |
| 10 | + |
| 11 | +Os desenvolvedores podem decidir o que denota um escopo de instrumentação |
| 12 | +razoável. Por exemplo, é possível selecionar um módulo, um pacote ou uma classe |
| 13 | +como o escopo de instrumentação. No caso de uma biblioteca ou um _framework_, |
| 14 | +uma abordagem comum é utilizar como escopo um identificador que seja exclusivo |
| 15 | +para aquela biblioteca ou _framework_, como seu respectivo nome e versão. Caso a |
| 16 | +biblioteca em si não possua instrumentação OpenTelemetry incorporada, e uma |
| 17 | +biblioteca de instrumentação esteja sendo utilizada em seu lugar, utilize a |
| 18 | +combinação do nome e a versão da biblioteca de instrumentação como o escopo de |
| 19 | +instrumentação. |
| 20 | + |
| 21 | +O escopo de instrumentação é definido por uma combinação do par entre nome e |
| 22 | +versão quando uma instância do _tracer_, _meter_ ou _logger_ são obtidos de um |
| 23 | +_provider_. Cada registro de trecho, métrica ou log criados por esta instância |
| 24 | +serão então associados ao escopo de instrumentação fornecido. |
| 25 | + |
| 26 | +No seu backend de observabilidade, a utilização de escopos permite que os dados |
| 27 | +de telemetria sejam analisados de maneira agrupada, por exemplo, para ver quais |
| 28 | +de seus usuários estão utilizando quais versões de uma biblioteca e qual a |
| 29 | +performance destas versões, ou até mesmo para identificar um determinado |
| 30 | +problema em um módulo específico da sua aplicação. |
| 31 | + |
| 32 | +O diagrama a seguir ilustra um rastro com múltiplos escopos de instrumentação. |
| 33 | +Os diferentes escopos são representados por diferentes cores: |
| 34 | + |
| 35 | +- No topo, o trecho `/api/placeOrder` é criado através do _framework_ do |
| 36 | + servidor HTTP. |
| 37 | +- Os trechos em verde (`CheckoutService::placeOrder`, `prepareOrderItems` e |
| 38 | + `checkout`) são códigos da aplicação, agrupados através da classe |
| 39 | + `CheckoutService`. |
| 40 | +- Os trechos em `CartService::getCart` e `ProductService::getProduct` também são |
| 41 | + códigos da aplicação, agrupados através das classes `CartService` e |
| 42 | + `ProductService`. |
| 43 | +- Os trechos em laranja (`Cache::find`) e azul claro (`DB::query`) são códigos |
| 44 | + de biblioteca, agrupados através dos respectivos nomes e versões de cada. |
| 45 | + |
| 46 | + |
0 commit comments