Skip to main content

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

code-class

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

dashboard-download

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

code-class

Vamos fazer download do nosso dashboards

dashboard-download

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.

code-class

Sucesso! Agora é so fazer o load do nosso dashboard

dashboard-download

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

dashboard-download

Sucesso traefik monitorado!