# Using instrumentation libraries

LLMS index: [llms.txt](/llms.txt)

---


Ao desenvolver uma aplicação, é possível utilizar bibliotecas e _frameworks_ de
terceiros para acelerar seu trabalho. Caso você instrumente sua aplicação
utilizando OpenTelemetry, talvez queira evitar gastar tempo adicional para
adicionar manualmente rastros, logs e métricas às bibliotecas e _frameworks_ de
terceiros que utiliza.

Muitas bibliotecas e _frameworks_ já oferecem suporte ao OpenTelemetry ou são
compatíveis por meio da
[instrumentação](/docs/concepts/instrumentation/libraries/), permitindo gerar
dados de telemetria que podem ser exportados para um _backend_ de
observabilidade.

Caso você esteja instrumentando uma aplicação ou serviço que utilize bibliotecas
ou _frameworks_ de terceiros, siga estas instruções para aprender como usar
bibliotecas instrumentadas nativamente e bibliotecas de instrumentação para as
dependências do seu projeto.

## Usar bibliotecas com instrumentação nativa {#use-natively-instrumented-libraries}

Se uma biblioteca oferece suporte ao OpenTelemetry por padrão, é possível obter
rastros, métricas e logs emitidos por essa biblioteca ao adicionar e configurar
o SDK do OpenTelemetry na sua aplicação.

A biblioteca pode exigir alguma configuração adicional para sua instrumentação.
Consulte a documentação dessa biblioteca para saber mais.
{{__hugo_ctx/}}






<div class="alert alert-secondary" role="alert"><div class="h4 alert-heading" role="heading">Colabore conosco!</div>



Até o momento, não temos conhecimento de nenhuma biblioteca Erlang/Elixir que
possua integração com o OpenTelemetry de forma nativa. Se você souber de alguma,
[avise-nos][let us know].

</div>






[let us know]:
  https://github.com/open-telemetry/opentelemetry.io/issues/new/choose
{{__hugo_ctx/}}



## Use instrumentation libraries

If a library doesn't include OpenTelemetry support, you can use
[instrumentation libraries](/docs/specs/otel/glossary/#instrumentation-library)
to generate telemetry data for a library or framework.

For example,
[the instrumentation library for Ecto](https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_ecto)
automatically creates [spans](/docs/concepts/signals/traces/#spans) based on
queries.

## Setup

Each instrumentation library is distributed as a Hex package. To install an
instrumentation, add the dependency to your `mix.exs` file. For example:

```elixir
def deps do
  [
    {:opentelemetry_{package}, "~> 1.0"}
  ]
end
```

Where `{package}` is the name of the instrumentation.

Note that some instrumentation libraries might have prerequisites. Check the
documentation of each instrumentation library for further instructions.

## Available instrumentation libraries

For a full list of instrumentation libraries, see the
[list of Hex packages](https://hex.pm/packages?search=opentelemetry&sort=recent_downloads).

You can also find more instrumentations available in the
[registry](/ecosystem/registry/?language=erlang&component=instrumentation).

## Next steps

After you have set up instrumentation libraries, you might want to add your own
[instrumentation](/docs/languages/erlang/instrumentation) to your code, to
collect custom telemetry data.

You might also want to configure an appropriate exporter to
[export your telemetry data](/docs/languages/erlang/exporters) to one or more
telemetry backends.
