Outros serviços monitoramento
Seguiremos com outras possibilidades de monitoramento com o OpenTelemetry
Monitor HTTP Endpoints
Vamos criar aqui 3 containers nginx cada um servindo uma página. Para termos 3 endpoints que queremos monitorar.
mkdir -p ~/nginx-pages/{page1,page2,page3}
echo "<h1>Page 1</h1>" > ~/nginx-pages/page1/index.html
echo "<h1>Page 2</h1>" > ~/nginx-pages/page2/index.html
echo "<h1>Page 3</h1>" > ~/nginx-pages/page3/index.html
docker run -d --name nginx-page1 -p 8081:80 -v ~/nginx-pages/page1:/usr/share/nginx/html:ro nginx
docker run -d --name nginx-page2 -p 8082:80 -v ~/nginx-pages/page2:/usr/share/nginx/html:ro nginx
docker run -d --name nginx-page3 -p 8083:80 -v ~/nginx-pages/page3:/usr/share/nginx/html:ro nginx
Pronto agora temos 3 endpoints que podemos usar como test.
Agora podemos editar o nossa configuracao do otel collector
vim otel-config.yaml

Sucesso! Monitoramento iniciado, agora vamos fazer o load do nosso dashboard

Web Vitals
JMX Java monitoramento
Vamos criar uma aplicação java simples e com as metricas do jmxremote expostas.
docker build -t app-java-exemplo app-java-exemplo .
Agora vamos rodar nossa app java com o jmx exposto na porta 9010
docker run -d -p 9010:9010 --name appexemplojava appexemplojava
A melhor forma de testar se a conexão do JMX esta ok é utilizando o jconsole
jconsole 192.168.3.221:9010
Legal! Métricas jmx estão ok. Agora podemos coletadas com o OpenTelemetry

Vamos fazer download do nosso dashboards

Nginx monitoramento VTS
Nginx monitoramento Receiver
Vamos configurar o Receiver Nginx, para isto basta iniciar o nginx com o modulo
https://nginx.org/en/docs/http/ngx_http_stub_status_module.html
docker run --name nginx-status -d -p 80:80 nginx:latest bash -c "echo -e 'server { listen 80; location /nginx_status { stub_status; allow all; } }' > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
Legal já everificar que o endpoint /nginx_status esta funcionando
Agora é so coletar o otel collector e enviar ao signoz.

Sucesso! Agora é so fazer o load do nosso dashboard

Nginx monitoramento Traces
https://nginx.org/en/linux_packages.html#instructions https://nginx.org/en/docs/ngx_otel_module.html https://github.com/nginxinc/nginx-otel/blob/main/README.md
Agora vamos buildar nosso nginx com dockerfile
docker build -t nginx-tracing .
Vamos iniciar o nosso container
docker run --name nginx-tracing -d -p 3040:80 nginx-tracing
E SucessO!! Apareceu no signoz nossos traces.
Traefik monitoramento
O traefik ja vem integrado com opentelemetry olha que legal, entao vamos subir um projeto exemplo para ver como pegamos as metricas
vamos rodar um container docker
docker run -d \
--name traefik \
-p 80:80 \
-p 8090:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:latest \
--api.insecure=true \
--providers.docker=true \
--metrics.otlp=true \
--metrics.otlp.grpc=true \
--metrics.otlp.grpc.insecure=true \
--metrics.otlp.grpc.endpoint=192.168.3.220:4317 \
--tracing.otlp=true \
--tracing.otlp.grpc=true \
--tracing.otlp.grpc.insecure=true \
--tracing.otlp.grpc.endpoint=192.168.3.220:4317
Maneiro traefik rodando com as metricas sendo expostas vamos rodar 2 apps de exemplo para testar
docker run -d \
--name whoami1 \
--label "traefik.enable=true" \
--label "traefik.http.routers.whoami1.rule=PathPrefix(\`/whoami1\`)" \
--label "traefik.http.services.whoami1.loadbalancer.server.port=80" \
traefik/whoami
docker run -d \
--name whoami2 \
--label "traefik.enable=true" \
--label "traefik.http.routers.whoami2.rule=PathPrefix(\`/whoami2\`)" \
--label "traefik.http.services.whoami2.loadbalancer.server.port=80" \
traefik/whoami
Legal agora vamos verificar no signoz

Sucesso traefik monitorado!