SaltStack Config expone varias métricas del sistema que se pueden utilizar con fines de supervisión y diagnóstico. Estas métricas se encuentran disponibles en formato de gráfico en el panel de control de la interfaz de usuario de SaltStack Config y en formato de lectura mecánica en el endpoint HTTP /metrics.

Para obtener más información sobre la visualización de informes en la interfaz de usuario de SaltStack Config mediante el panel de control, consulte Informes del panel de control.

Métricas de lectura mecánica

SaltStack Config exporta métricas del sistema en formato basado en texto de OpenMetrics. Este formato se puede consumir directamente mediante Prometheus y otras herramientas de supervisión y generación de alertas.

Configuración de métricas de SaltStack Config

La configuración para la recopilación de métricas del sistema contiene los siguientes ajustes en el archivo de configuración /etc/raas/raas. Se muestran los valores predeterminados.

# System metrics settings
metrics:
  enabled: true                         # If True, enable the collection of system metrics
  prometheus: false                     # If True, enable the Prometheus endpoint at /metrics
  prometheus_username:                  # Static username for retrieving /metrics
  prometheus_password:                  # Static password for retrieving /metrics
  snapshot_interval: 60                 # How often to record snapshot metrics, in seconds
  max_query_timedelta: 86400            # Maximum timedelta for a single call to get_system_metrics, in seconds
  keep: 30                              # How long to retain metrics data, in days

Los siguientes ajustes controlan la gestión de las métricas del sistema de lectura mecánica:

  • Para deshabilitar la recopilación de métricas, establezca enabled:false. Tenga en cuenta que esto también deshabilitará el panel de control integrado de SaltStack Config.
  • Para habilitar la exportación de métricas de lectura mecánica desde el endpoint HTTP /metrics, establezca prometheus:true. Este ajuste no afecta al panel de control integrado de SaltStack Config.
  • El acceso al endpoint HTTP /metrics se controla mediante la autenticación HTTP básica con las credenciales configuradas en prometheus_username y prometheus_password. Se requieren valores que no estén vacíos para que esta configuración habilite el endpoint /metrics. Estas credenciales se almacenan únicamente en el archivo de configuración /etc/raas/raas, no se asocian con ninguna cuenta de SaltStack Config y no se pueden utilizar para la autenticación en SaltStack Config que no sea para acceder al endpoint HTTP /metrics.

Los otros ajustes señalados anteriormente se relacionan con el panel de control integrado de SaltStack Config y no afectan la recopilación ni los informes de métricas del sistema de lectura mecánica. En particular, el ajuste snapshot_interval determina la frecuencia (en segundos) con la que se registran las métricas para mostrar en el panel de control y el ajuste keep determina la cantidad de tiempo (en días) que se conservarán los datos de las métricas en la base de datos antes de que sean reducidos.

Si bien el endpoint HTTP /metrics es la forma recomendada de recopilar datos de métricas de lectura mecánica desde SaltStack Config, se puede utilizar la API (RaaS) para recuperar los datos presentados en el panel de control integrado. La llamada de API stats.get_system_metrics() permite consultar datos de métricas por nombre de métrica, origen y rango de fechas. El elemento de configuración max_query_timedelta limita la cantidad de datos que SaltStack Config recuperará de una única llamada de API. Para obtener datos de métricas de un período más largo, puede realizar varias llamadas de API con diferentes fechas de inicio y finalización.

Configuración de métricas de maestros de Salt

La disponibilidad de algunas métricas depende de la configuración de los maestros de Salt conectados a SaltStack Config:

  • Las métricas de los eventos de Salt y los resultados de los trabajos serán precisas solo si se configuró el regresador sseapi en los maestros de Salt. La recopilación de métricas no funcionará correctamente con el regresador sse_pgjsonb (directo a la base de datos).
  • SaltStack Config recopilará información de tiempo de ejecución de funciones de bajo nivel de los maestros de Salt en los que se configuró master_stats:true. Esta opción está deshabilitada de forma predeterminada. Consulte master_stats en la documentación de Salt para obtener más información.
  • Las métricas de los estados de los trabajos de Salt serán precisas solo si se habilitó el motor de finalización de trabajos en el complemento de maestro de Salt:
    engines:
       -jobcompletion:{}

    Este motor se encuentra habilitado en la configuración predeterminada del complemento de maestro de Salt.

Configurar Prometheus para la conexión con SaltStack Config

Es posible habilitar un servidor Prometheus para extraer métricas de SaltStack Config. Para ello, agregue un trabajo scrape_configs a la configuración de Prometheus (normalmente prometheus.yml) en cada instancia de servidor de API (RaaS) que tenga:

scrape_configs:
  - job_name: 'sse'

    metrics_path: '/metrics'
    scheme: 'http'

    static_configs:
        - targets: ['localhost:8080']

    basic_auth:
      username: prometheus
      password: metrics

Las credenciales de la configuración de Prometheus deben coincidir con los valores prometheus_username y prometheus_password especificados en el archivo de configuración /etc/raas/raas, como se mencionó anteriormente.

Consulte Documentación del proyecto Prometheus para obtener más información sobre la configuración de destinos de extracción y otros temas de configuración de Prometheus.

Nota: Como parte de la iniciativa de VMware para eliminar terminología problemática, el término maestro de Salt se reemplazará por uno mejor en SaltStack Config, y en los productos y la documentación relacionados. Esta actualización de terminología puede tardar algunos ciclos de versión en completarse totalmente.

Descripciones de métricas

Las métricas de lectura mecánica que SaltStack Config exporta se dividen en varias categorías:

Categoría Nombre de métrica Tipo de métrica Etiquetas Descripción
Métricas de bajo nivel de maestros de Salt salt_event_size_bytes Histograma master_id El tamaño de los eventos de Salt (en bytes).
salt_master_cmd_duration_seconds Histograma master_id, cmd La duración de los comandos de maestros de Salt (en segundos). Solo se notifica si se configuró master_stats en el maestro de Salt.
         
Métricas de complemento de maestro de Salt raas_master_commands_processed Contador master_id Los comandos de SSE procesados.
raas_master_master_grains_pushed Contador master_id Las actualizaciones de Grain de maestros de Salt que se insertaron en SaltStack Config.
raas_master_minion_keys_pushed Contador master_id Las actualizaciones de estado de claves de minion que se insertaron en SaltStack Config.
raas_master_minion_cached_pushed Contador master_id Las actualizaciones de caché de minion que se insertaron en SaltStack Config.
raas_master_masterfs_pushed Contador master_id Las actualizaciones de MasterFS que se insertaron en SaltStack Config.
raas_master_sseapi_engine_iteration_seconds Histograma master_id La duración de la iteración del motor de API (RaaS) en segundos.
         
Métricas de servidores redis_commands_executed Contador redis_instance Los comandos de Redis ejecutados (memoria caché del sistema).
redis_memory_bytes Indicador redis_instance El uso de memoria de Redis (memoria caché del sistema).
celery_tasks_queued Contador raas_instance, task Las tareas de Celery en cola (los trabajos en segundo plano).
celery_tasks_executed Contador raas_instance, task Las tareas de Celery ejecutadas (los trabajos en segundo plano).
celery_queue_length Indicador raas_instance La longitud de la cola de Celery (los trabajos en segundo plano en espera).
raas_rpc_request_duration_seconds Histograma raas_instance La duración de las llamadas de la API de RPC SSE (en segundos).
         
Métricas de PostgreSQL postgres_connections Indicador postgres_instance Las conexiones de Postgres.
postgres_transactions Contador postgres_instance Las transacciones de Postgres confirmadas.
postgres_rows_read Contador postgres_instance Las filas de Postgres leídas.
postgres_rows_inserted Contador postgres_instance Las filas de Postgres insertadas.
postgres_rows_updated Contador postgres_instance Las filas de Postgres actualizadas.
postgres_rows_deleted Contador postgres_instance Las filas de Postgres eliminadas.
         
Métricas del sistema sse_jobs_in_progress Contador Ninguna Los trabajos de SaltStack Config en curso.
sse_jobs_complete_all_successful Contador Ninguna Los trabajos de SaltStack Config completados con todos resultados correctos.
sse_jobs_complete_missing_returns Contador Ninguna Los trabajos de SaltStack Config completados con uno o varios resultados ausentes.
sse_jobs_complete_with_errors Contador Ninguna Los trabajos de SaltStack Config completados con uno o varios errores.
sse_masters Indicador Ninguna El total de maestros de Salt en SaltStack Config.
sse_minions Indicador Ninguna El total de minions en SaltStack Config.
sse_minions_present Indicador master_id Los minions presentes dentro del límite de tiempo configurado raas_presence_expiration.
sse_minions_lost Indicador master_id Los minions no presentes dentro del límite de tiempo.
sse_minions_unknown Indicador master_id Los minions desconocidos (nunca presentes).
sse_users_authenticated Indicador Ninguna Los usuarios autenticados en SaltStack Config.