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
, establezcaprometheus: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 enprometheus_username
yprometheus_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 regresadorsse_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.
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 | highstate_minions |
Indicador | Ninguno | Número de minions que ejecutaron un trabajo de highstate |
highstate_minions_changed |
Indicador | Ninguno | Número de minions que ejecutaron un trabajo de highstate que generó uno o varios cambios | |
highstate_minions_succeeded |
Indicador | Ninguno | Número de minions que ejecutaron un trabajo de highstate sin errores | |
highstate_minion_duration_seconds |
Indicador | Ninguno | Duración media por minion para una ejecución de highstate | |
highstate_states |
Indicador | Ninguno | Número de estados únicos aplicados en las ejecuciones de highstate | |
highstate_states_changed |
Indicador | Ninguno | Número de estados aplicados en las ejecuciones de highstate que generaron uno o varios cambios | |
highstate_states_succeeded |
Indicador | Ninguno | Número de estados aplicados en las ejecuciones de highstate sin errores | |
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_minion_grains_deleted |
Contador | master_id |
Número de grains de minion eliminados | |
sse_minion_grains_indexing_duration_seconds |
Contador | raas_instance |
Duración de los cálculos de indexación de los grains de minion en segundos | |
sse_minion_grains_saved |
Contador | master_id |
Número de grains de minion guardados | |
sse_minion_target_match_calcs |
Contador | raas_instace |
Número de cálculos de coincidencia de los minions con el grupo de destino | |
sse_minion_target_match_duration_seconds |
Contador | raas_instance |
Duración de los cálculos de coincidencia de los minions con el grupo de destino en segundos | |
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. |