Sobes.tech
Middle

¿Cómo configurar los clientes para transmitir métricas a Prometheus?

sobes.tech AI

Respuesta de la IA

Para transmitir métricas a Prometheus, es necesario utilizar exportadores. Los exportadores son pequeños servicios que abren un endpoint HTTP que contiene métricas en un formato comprensible para Prometheus.

Formas principales:

  1. Uso de exportadores oficiales y de terceros:

    • Hay exportadores listos para muchos servicios y sistemas populares: node_exporter (métricas del sistema operativo), mysqld_exporter (métricas de MySQL), kube-state-metrics (métricas de Kubernetes), etc.
    • La configuración consiste en instalar el exportador en el servidor objetivo y especificar su dirección en la configuración de Prometheus.
  2. Instrumentación de aplicaciones:

    • Los desarrolladores pueden agregar código en sus aplicaciones para exponer métricas directamente.
    • Prometheus proporciona bibliotecas cliente para varios lenguajes de programación (Go, Java, Python, Ruby, etc.).
    • Estas bibliotecas permiten crear contadores, medidores, histogramas y resúmenes, y luego abrir un endpoint HTTP para la recolección por parte de Prometheus.
  3. Textfile Collector (para node_exporter):

    • node_exporter tiene un colector textfile que puede leer métricas desde archivos en un formato específico.
    • Esto es útil para scripts periódicos o tareas que generan métricas.
  4. Pushgateway:

    • Pushgateway se usa para tareas de corta duración o por lotes que no pueden ser recolectadas directamente por Prometheus (ya que podrían no existir en el momento de la recolección).
    • La aplicación envía sus métricas a Pushgateway, y Prometheus recopila datos desde Pushgateway.
# Ejemplo de configuración de Prometheus (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Nombre de la tarea de recolección
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Lista de hosts/puertos donde se ejecuta node_exporter

  - job_name: 'application_metrics' # Tarea para recopilar métricas de la aplicación
    metrics_path: /metrics # Ruta donde la aplicación expone métricas
    static_configs:
      - targets: ['application-host:8080'] # Dirección de la aplicación

  - job_name: 'pushgateway' # Tarea para recopilar métricas desde Pushgateway
    honor_labels: true # Importante para el manejo correcto de etiquetas de Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Dirección de Pushgateway

Después de configurar los exportadores o instrumentar las aplicaciones, Prometheus consultará periódicamente (scraping) los endpoints indicados para recopilar métricas.