bom pessoal no vídeo anterior eu mostrei aqui pra vocês como é que funciona o collector tá agora o ponto mais interessante aqui pra gente é como a aplicação foi desenvolvida eu criei uma aplicação muito simples em gol tá o código nem está otimizado só queria fazer realmente uma aplicação chamar outra através de variáveis de ambiente tá então, basicamente, o que está acontecendo? Eu criei uma chamada aqui de web server. E o que eu fiz aqui no final das contas? Eu criei um web server. E nesse meu web server, eu estou mandando ele receber uma requisição. Eu estou configurando o endpoint aqui. Imagine isso aqui como se fosse um express da vida se você já trabalhou com Node. E aqui eu tenho aqueles dados que para mim são importantes. O título, o background, o response time, ou seja, todas aquelas variáveis de ambiente que eu mostrei para vocês ali no Docker Compose. E aqui é o meu endpoint que eu mostrei para vocês ali no docker compose e aqui tá é o meu endpoint que eu respondo eu quero fazer algumas observações aqui pra você tá quais são essas observações tá vendo esse carrier aqui esse carrier é o cara que está utilizando o open telery, é um cara da biblioteca do OpenTelemetry, que está pegando o header da minha aplicação, tá? E aí, o que ele faz aqui no final das contas? Pegando esse header, ele vai fazer o quê? Pegar qual é o correlation ID daquela requisição. Legal? Então, isso aqui é importantíssimo para você entender então agora no meu contexto aqui tá eu tenho qualquer o correio eleição aí da minha aplicação e aí que a parada vai começar porque porque eu vou iniciar aqui pra gente algo que é um spam o que é um spam? É uma forma de você pegar o início de uma transação até o fim de uma transação e você falar que esse início e esse fim executam um trecho de código. exemplo fazer uma chamada rest externa depois ela vai processar um arquivo e depois ela vai ainda a fazer um job para depois terminar a requisição então para cada trecho dessas informações eu posso colocar um spam e daí quando for ver no meu tracing eu ainda consigo saber quanto tempo ele demorou para resolver cada uma daquelas partes do meu código, então isso fica absurdamente fantástico galera no nosso caso eu estou colocando apenas um span que é o tempo dele resolver fazer uma chamada REST, fazer uma chamada HTTP e depois retornar o dado do template então perceba aqui que eu estou fazendo essa minha chamada aqui para mim. Legal? E o que é esse Span End? É quando ele termina essa requisição. Se você nunca trabalhou com Go, essa Defer aqui significa que ele vai rodar tudo o que tem aqui embaixo e depois dar um End para a gente. A gente coloca ele jogo de cara para a gente coloca o jogo de cara pra gente não esquecer de dar um end lá embaixo tá basicamente isso e agora você vai ver o que essa nossa aplicação faz ó ela dá um time slip de acordo com o response time que a gente passou aqui ó tá vendo o response time então eu vou dar um slip milissegundos aqui do response time que eu tô forçando a aplicação parar aqui de responder e aqui eu estou verificando se ela faz uma chamada externa eu verifico se é get ou se é post tá se não for nenhuma de get e post ele vai dar um internal server error, mas aqui tem um outro ponto importante lembra que eu falei pra você que a gente sempre tem que passar o nosso correlation id de uma aplicação pra outra é aqui que a gente está fazendo olha só que interessante galera, aqui a gente não extraiu o correlation id pra gente dar um start no nosso spam, aqui eu estou injetando esse correlation id pra eu fazer essa minha requisição HTTP para chamar o outro microserviço. Então, o que isso significa? Significa que o Correlation ID que eu peguei aqui em cima, eu estou repassando ele aqui embaixo para que ele seja enviado na minha requisição, para que o outro microserviço receba, consiga extrair e também passar para frente. Então, era isso. Esse é o ponto importante que eu queria trazer nessa aplicação para você, galera. Basicamente, são essas duas linhas de código onde eu pego o correio eleiço a edi eu aqui consigo a iniciar esse meu spam legal e depois disso eu injeto aqui na minha requisição que eu vou chamar o meu próximo cara aqui pra gente legal então isso aqui pra gente é importante e depois eu apego apenas os dados do meu template né e exibir na tela tem um arquivo html que ele exibe os dados na tela esse arquivo html é esse cara aqui ó index.html onde ele muda o background centraliza e mostra o título e o conteúdo, caso precise. Basicamente é isso que acaba acontecendo nessa nossa aplicação. E depois a gente tem a chamada principal, onde eu pego as variáveis de ambiente, preencho os templates e inicio aqui o meu servidor, crio o meu web server aqui para a gente conseguir trabalhar. Bacana? meu web server aqui pra gente pra gente conseguir trabalhar bacana? então assim, eu não quero que você gaste tempo olhando e querendo a não ser que você tenha essa curiosidade mesmo aqui mas o ponto mais importante é você entender que eu criei um único programa que através de variáveis de ambiente consegue chamar outros programas e esse programa o que ele faz? ele vai passando o a de entre as transações e mandando esses dados para o colector wesley onde na sua aplicação você está mandando os dados para o colector aqui olha só eu tô chamando uma conexão aqui ó do open telemetlemetry, resource new, aqui eu estou fazendo sem timeout e aqui eu estou fazendo a minha conexão via gRPC com o meu collector. E aqui eu inicio o meu tracer para eu poder começar a fazer aquele tracing nas minhas requisições. começar a fazer aquele tracing nas minhas requisições, tá? Então, tudo isso aqui, ó, essa função inteira aqui, é para eu configurar e mandar os dados para o meu collector, organizar todas as minhas aplicações aqui para a gente, tá? Então, está aqui a informação, tá? Que há um monte de código e etc. Eu não espero que você queira entender ou que você entenda. O maior ponto importante que eu quero que você saiba é que a gente está mandando ali o Correlation ID e a gente está extraindo o Correlation ID e os dados do Collector a gente está configurando aqui para a aplicação ficar enviando esses dados de Collector ali de tempos em tempos. Bacana? Então essa que é a ideia aqui para a aplicação ficar enviando esses dados de collector ali de tempos em tempo. Bacana? Então, essa que é a ideia aqui que a gente está trabalhando. O init provider, ele passa o nome do microserviço e ele passa a URL do collector que ele vai trabalhar. Fechou, meu povo? Então, era isso que eu queria mostrar para vocês em relação a essa nossa aplicação. Isso que eu queria mostrar para vocês em relação a essa nossa aplicação. Eu vou deixar essa aplicação disponível no GitHub. E daí basta você dar um docker-compose-app para você conseguir testar e ver essa parada funcionando no seu computador. Bacana? Um grande abraço e até o nosso próximo vídeo.