O SaltStack Config expõe várias métricas do sistema que podem ser usadas para monitoramento e diagnóstico. Essas métricas estão disponíveis em formato gráfico no dashboard da interface do usuário do SaltStack Config e em formato legível por máquina usando o endpoint http /metrics
.
Para obter mais informações sobre como visualizar relatórios na interface do usuário do SaltStack Config usando o Dashboard, consulte Relatórios do Dashboard.
Métricas legíveis por máquina
O SaltStack Config exporta métricas do sistema no Formato OpenMetrics baseado em texto. Esse formato é diretamente consumível pelo Prometheus e outras ferramentas de monitoramento e geração de alertas.
Configuração de métricas do SaltStack Config
A configuração para a coleta de métricas do sistema consiste nas seguintes configurações no arquivo de configuração /etc/raas/raas
. Os valores padrão são mostrados.
# 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
As seguintes configurações controlam o tratamento de métricas de sistema legíveis por máquina:
- Para desativar a coleção de métricas, defina
enabled:false
. Observe que isso também desativará o dashboard integrado do SaltStack Config. - Para ativar a exportação de métricas legíveis por máquina a partir do endpoint http
/metrics
, definaprometheus:true
. Essa configuração não afeta o dashboard integrado do SaltStack Config. - O acesso ao endpoint http
/metrics
é controlado pela Autenticação Básica http com credenciais configuradas emprometheus_username
eprometheus_password
. Valores não vazios são necessários para essas configurações para ativar o endpoint/metrics
. Essas credenciais são armazenadas somente no arquivo de configuração/etc/raas/raas
, não são associadas a nenhuma conta do SaltStack Config e não podem ser usadas para autenticar o SaltStack Config de outra forma que não seja para acessar o endpoint http/metrics
.
As outras configurações mostradas acima estão relacionadas ao dashboard integrado do SaltStack Config e não afetam a coleta ou a geração de relatórios de métricas do sistema legíveis por máquina. Em particular, a configuração snapshot_interval
determina com que frequência, em segundos, as métricas são gravadas para exibição no dashboard, enquanto a configuração keep
determina por quanto tempo, em dias, os dados de métricas serão mantidos no banco de dados antes de serem ajustados.
Embora o endpoint http /metrics
seja a maneira recomendada de reunir dados de métricas legíveis por máquina do SaltStack Config, você pode usar a API (RaaS) para recuperar os dados apresentados no dashboard integrado. A chamada de API stats.get_system_metrics()
permite consultar dados de métricas por nome de métrica, origem e intervalo de datas. O item de configuração max_query_timedelta
limita a quantidade de dados que o SaltStack Config retornará de uma única chamada de API. Para obter dados de métricas de um intervalo de tempo mais longo, é possível fazer várias chamadas de API com diferentes datas de início e término.
Configuração de métricas do Salt Master
A disponibilidade de algumas métricas depende da configuração dos mestres Salt conectados ao SaltStack Config:
- As métricas em eventos Salt e retornos de trabalho serão precisas somente se o retornador
sseapi
estiver configurado nos mestres Salt. A coleta de métricas não funcionará corretamente com o retornadorsse_pgjsonb
(direto para banco de dados). - O SaltStack Config coletará informações em tempo de execução de funções de baixo nível dos mestres Salt que tenham
master_stats:true
definido em suas configurações. Essa opção está desabilitada por padrão. Consulte master_stats na documentação do Salt para obter detalhes.
- Métricas em estados de trabalhos Salt apenas serão precisas se o mecanismo de complementação de trabalhos estiver ativado no Salt Master Plugin:
engines: -jobcompletion:{}
Esse mecanismo está ativado na configuração padrão do Salt Master Plugin.
Configurando o Prometheus para se conectar ao SaltStack Config
Você pode habilitar um servidor Prometheus para extrair métricas do SaltStack Config adicionando um trabalho scrape_configs
à configuração do Prometheus (normalmente prometheus.yml
) para cada instância do servidor de API (RaaS) que você possui:
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
As credenciais na configuração do Prometheus devem corresponder ao prometheus_username
e ao prometheus_password
especificados no arquivo de configuração /etc/raas/raas
, conforme indicado acima.
Consulte a documentação do projeto Prometheus para obter mais informações sobre como configurar destinos de extração e outros tópicos de configuração do Prometheus.
Descrições de métricas
As métricas legíveis por máquina que são exportadas pelo SaltStack Config se enquadram em várias categorias:
Categoria | Nome da Métrica | Tipo de Métrica | Rótulos | Descrição |
---|---|---|---|---|
Métricas de baixo nível do mestre Salt | salt_event_size_bytes |
Histograma | master_id |
Tamanho do evento Salt, em bytes |
salt_master_cmd_duration_seconds |
Histograma | master_id , cmd |
Duração do comando do mestre Salt, em segundos. Relatada somente se master_stats estiver configurado no mestre Salt. |
|
Métricas do Salt Master Plugin | raas_master_commands_processed |
Contador | master_id |
Comandos SSE processados |
raas_master_master_grains_pushed |
Contador | master_id |
Atualizações de grains de mestres Salt enviadas ao SaltStack Config | |
raas_master_minion_keys_pushed |
Contador | master_id |
Atualizações de estados de chaves de subordinados enviadas ao SaltStack Config | |
raas_master_minion_cached_pushed |
Contador | master_id |
Atualizações de cache de subordinados enviadas ao SaltStack Config | |
raas_master_masterfs_pushed |
Contador | master_id |
Atualizações de MasterFS enviadas ao SaltStack Config | |
raas_master_sseapi_engine_iteration_seconds |
Histograma | master_id |
Duração da iteração do mecanismo API (RaaS), em segundos | |
Métricas de servidor | redis_commands_executed |
Contador | redis_instance |
Comandos Redis executados (cache do sistema) |
redis_memory_bytes |
Medidor | redis_instance |
Uso da memória Redis (cache do sistema) | |
celery_tasks_queued |
Contador | raas_instance , task |
Tarefas celery enfileiradas (trabalhos em segundo plano) | |
celery_tasks_executed |
Contador | raas_instance , task |
Tarefas celery executadas (trabalhos em segundo plano) | |
celery_queue_length |
Medidor | raas_instance |
Comprimento da fila celery (trabalhos em segundo plano em espera) | |
raas_rpc_request_duration_seconds |
Histograma | raas_instance |
Duração da chamada de API RPC SSE, em segundos | |
Métricas do PostgreSQL | postgres_connections |
Medidor | postgres_instance |
Conexões do Postgres |
postgres_transactions |
Contador | postgres_instance |
Transações do Postgres confirmadas | |
postgres_rows_read |
Contador | postgres_instance |
Linhas do Postgres lidas | |
postgres_rows_inserted |
Contador | postgres_instance |
Linhas do Postgres inseridas | |
postgres_rows_updated |
Contador | postgres_instance |
Linhas do Postgres atualizadas | |
postgres_rows_deleted |
Contador | postgres_instance |
Linhas do Postgres excluídas | |
Métricas do sistema | highstate_minions |
Medidor | Nenhum | Número de subordinados que executaram um trabalho de highstate |
highstate_minions_changed |
Medidor | Nenhum | Número de subordinados que executaram um trabalho de highstate resultando em uma ou mais alterações | |
highstate_minions_succeeded |
Medidor | Nenhum | Número de subordinados que executaram um trabalho de highstate sem falhas | |
highstate_minion_duration_seconds |
Medidor | Nenhum | Duração média por subordinado para uma execução de highstate | |
highstate_states |
Medidor | Nenhum | Número de estados exclusivos aplicados em execuções de highstate | |
highstate_states_changed |
Medidor | Nenhum | Número de estados aplicados em execuções de highstate que resultaram em uma ou mais alterações | |
highstate_states_succeeded |
Medidor | Nenhum | Número de estados aplicados em execuções de highstate sem falhas | |
sse_jobs_in_progress |
Contador | Nenhum | Trabalhos do SaltStack Config em andamento | |
sse_jobs_complete_all_successful |
Contador | Nenhum | Trabalhos do SaltStack Config concluídos com todos os retornos bem-sucedidas | |
sse_jobs_complete_missing_returns |
Contador | Nenhum | Trabalhos do SaltStack Config concluídos com um ou mais retornos ausentes | |
sse_jobs_complete_with_errors |
Contador | Nenhum | Trabalhos do SaltStack Config concluídos com um ou mais erros | |
sse_masters |
Medidor | Nenhum | Total de mestres Salt no SaltStack Config | |
sse_minion_grains_deleted |
Contador | master_id |
Número de grãos de subordinados excluídos | |
sse_minion_grains_indexing_duration_seconds |
Contador | raas_instance |
Duração dos cálculos de indexação de grãos de subordinado, em segundos | |
sse_minion_grains_saved |
Contador | master_id |
Número de grãos de subordinados salvos | |
sse_minion_target_match_calcs |
Contador | raas_instace |
Número de subordinados versus cálculos correspondentes do grupo de destino | |
sse_minion_target_match_duration_seconds |
Contador | raas_instance |
Durações dos cálculos de correspondência de subordinado versus grupo de destino, em segundos | |
sse_minions |
Medidor | Nenhum | Total de subordinados no SaltStack Config | |
sse_minions_present |
Medidor | master_id |
Subordinados presentes no limite de tempo configurado raas_presence_expiration |
|
sse_minions_lost |
Medidor | master_id |
Subordinados não presentes no limite de tempo | |
sse_minions_unknown |
Medidor | master_id |
Subordinados desconhecidos (nunca presentes) | |
sse_users_authenticated |
Medidor | Nenhum | Usuários autenticados no SaltStack Config |