Supervisión

La aplicación rollapp expone un servidor de métricas HTTP en el puerto 2112, con las métricas rollapp_heighty rollapp_hub_height. El servidor de métricas está habilitado de forma predeterminada cuando se utilizaroller

Configurar Prometeo y Grafana

Antes de configurarlos, debemos asegurarnos de que Docker y Docker Compose estén instalados en su sistema.

Instalación de Docker

Para verificar si Docker está instalado, escriba el siguiente comando:

docker --version

Si Docker está instalado, mostrará los detalles de la versión. Si Docker no está instalado, use estos comandos para instalarlo:

sudo apt-get update -y
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Instalación de Docker Compose

Para comprobar si Docker Compose está instalado, escriba el siguiente comando:

docker-compose --version

Si Docker Compose está instalado, mostrará los detalles de la versión. Si Docker Compose no está instalado, use estos comandos para instalarlo:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Configurando Prometheus y Grafana

Ahora preparémonos para la configuración del monitoreo. En primer lugar, cree un nuevo directorio llamado 'monitoreo':

mkdir monitoring
cd monitoring

Ahora, creemos dos directorios para conservar los datos de Prometheus y Grafana:

mkdir prometheus_data grafana_data

Ahora actualice la propiedad de estos directorios para el usuario que usaremos en el archivo docker-compose:

sudo chown nobody:nogroup prometheus_data grafana_data

A continuación, cree un prometheus.ymlarchivo con el siguiente contenido:

global:
    scrape_interval: 15s
    evaluation_interval: 15s
scrape_configs:
    - job_name: "prometheus"
      static_configs:
          - targets: ["172.17.0.1:2112"]

NOTA:

Establecimos el objetivo en 172.17.0.1:2112 porque Prometheus se ejecuta dentro de un contenedor Docker y 172.17.0.1 es la puerta de enlace predeterminada para que los contenedores Docker accedan a la red de la máquina host.

Cree también un docker-compose.ymlarchivo con el siguiente contenido:

version: "3"
services:
    grafana:
        image: grafana/grafana
        user: "65534:65534"
        ports:
            - "3000:3000"
        volumes:
            - ./grafana_data:/var/lib/grafana
        networks:
            - monitor-net
    prometheus:
        image: prom/prometheus
        user: "65534:65534"
        ports:
            - "9092:9090"
        volumes:
            - ./prometheus.yml:/etc/prometheus/prometheus.yml
            - ./prometheus_data:/prometheus
        networks:
            - monitor-net
networks:
    monitor-net:

NOTA:

Asignamos el puerto de Prometheus al 9092 en la máquina host (9092:9090). Esto se debe a que el punto final de Rollapp gRPC tomará el puerto 9090 de forma predeterminada. Entonces, para evitar un conflicto de puertos y aún poder acceder a Prometheus, usamos el puerto 9092.

Ya está todo listo. Para iniciar los servicios de monitoreo, ejecute:

sudo docker-compose up -d

Para verificar que los servicios se estén ejecutando, ejecute:

sudo docker-compose ps

Agregar Prometheus como fuente

Después de configurar Prometheus y Grafana, el siguiente paso es agregar Prometheus como fuente de datos en Grafana. Siga los pasos a continuación:

  1. Acceda a la interfaz web de Grafana navegando http://<Your_IP>:3000en su navegador web. Asegúrese de que el puerto esté expuesto en su firewall.

  2. Inicie sesión con las credenciales predeterminadas ( admintanto para el nombre de usuario como para la contraseña). Se le pedirá que cambie la contraseña la primera vez que inicie sesión.

  3. Haga clic en el botón grande Add your first data sourceen el medio de la pantalla.

  4. En el Filter by name or typecampo, escríbalo Prometheusy selecciónelo en el menú desplegable.

  5. En el URLcampo, ingrese http://prometheus:9090ya que Prometheus se ejecuta dentro de la misma red Docker que Grafana y se puede acceder a él a través del nombre del servicio definido en el docker-compose.ymlarchivo.

  6. Clic en el Save & Testbotón.

Incorporación de un Dashboard para monitorear RollApp

  1. Comience haciendo clic en el Create your first dashboardbotón destacado ubicado en el centro de la pantalla de inicio de Grafana.

  2. Continúe haciendo clic en el Add Visualizationbotón.

  3. De la variedad de fuentes de datos, elija Prometheus.

  4. En el Querysegmento ubicado en la sección inferior de la pantalla, seleccione la rollapp_heightmétrica del menú desplegable.

  5. Para introducir una consulta adicional, haga clic en el + Querybotón y seleccione la rollapp_hub_heightmétrica en el menú desplegable.

  6. Ejecute las consultas haciendo clic en el Run Queriesbotón y vea los resultados. Suponiendo que la aplicación rollapp se esté ejecutando como se esperaba, debería ver la altura de la aplicación rollapp y la altura del centro.

  7. Para conservar la configuración del panel, haga clic en el Savebotón ubicado en la esquina superior derecha de la pantalla.

¡Felicidades! 🎉

¡Has configurado exitosamente Prometheus y Grafana con tu rollapp para monitoreo a nivel de producción! Ahora está bien equipado para vigilar las métricas críticas de su RollApp.

Recuerde, el monitoreo es un proceso continuo y estas herramientas están aquí para ayudarlo a mantener el mejor rendimiento posible para su RollApp. ¡Feliz seguimiento!

NOTA:

La configuración de alertas está fuera del alcance de esta guía, pero puede encontrar más información sobre cómo hacerlo aquí .

NOTA:

Una métrica clave a monitorear es la rollapp_heightmétrica. Si la altura de su RollApp no ​​aumenta, significa que su RollApp no ​​está produciendo bloques. Esto podría deberse a varios motivos, como falta de equilibrio en las capas base, configuración incorrecta, errores, etc. Para obtener más información, consulte nuestra guía de solución de problemas .

En la siguiente sección, aprenderemos cómo incluir su RollApp en el Portal Dymension .

Last updated