As arquiteturas de microsserviços permitiram que os desenvolvedores construíssem e lançassem aplicações mais rapidamente e com maior independência, pois não estavam mais sujeitos aos elaborados processos de lançamento associados às arquiteturas monolíticas.
À medida que esses sistemas agora distribuídos foram escalados, tornou-se cada vez mais difícil para os desenvolvedores ver como seus próprios serviços dependem ou afetam outros serviços, especialmente após uma implantação ou durante uma interrupção, onde a velocidade e a precisão são críticas.
A instrumentação é a maneira que voce lida com o que está na sua aplicação pra que a partir do comportametos você consiga gerar dados e enviar para o seu Vendor, seja diretamente ou usando um coletor.
A Instrumentação pode acabar sendo complexa de ser implementada, isso porque sua aplicação está consumindo CPU, memória, I/O, além disso tem code start, possue funções com difentes tempos de execução e entre outros fatores que podem ser observados com o intuido de gerar dados. Então, instrumentar de forma manual pode acabar sendo um desafio, e aqui entra o OTel.
O OTel forneçe bibliotecas para que possamos fazer uma instrumetação automática, ou seja, altomaticamente ele vai pegar os dados de tudo que ta acontecento na aplicação e enviar para seu vendor.
Mas nem tudo é so flores, hoje o OTel não possue instrumetação altomática para todas as linguagens e para algumas delas é possivel que nunca tenha suporte, no entanto, o OTel fornece a possibilidade de você fazer a instrumentação da sua aplicação de forma manual. Ou seja, você irá instrumentar o consumo de CPU, Memória, tempo de execução do seu software de forma manual e etc.., mas utilizando ainda as especificações do OTel e não ficando preso a um Vendor específico.