Quando você instala a integração Kubernetes pela primeira vez, implantamos um conjunto padrão de condições de alerta recomendadas em sua conta que formam a base para a condição de alerta em seu cluster do Kubernetes. Essas condições são agrupadas em uma política chamada Kubernetes alert policy.
Embora tenhamos tentado abordar os casos de uso mais comuns em todos os ambientes, há uma série de alertas adicionais que você pode configurar para estender a política padrão. Estas são nossas políticas de alerta recomendadas.
Adicionando a política de alertas recomendada
Para adicionar políticas de alertas recomendadas, siga estas etapas:
Vá para one.newrelic.com > Integrations & Agents.
Selecione Alerts para acessar os recursos pré-criados.
Pesquise Kubernetes e selecione a política de alertas recomendada que você deseja adicionar.
Como ver a política de alertas recomendada
Para visualizar as políticas de alertas recomendadas que você adicionou, faça isto:
Vá para one.newrelic.com > All capabilities > Alerts.
Clique em Alert Policies no painel de navegação esquerdo.
Você verá Kubernetes alert policy e Google Kubernetes engine alert policy.
Política de alertas Kubernetes
Este é o conjunto padrão de condições do alerta recomendadas que você adicionará:
Esta condição do alerta gera um alerta quando um contêiner é limitado em mais de 25% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sContainerSampleSELECT sum(containerCpuCfsThrottledPeriodsDelta) / sum(containerCpuCfsPeriodsDelta) * 100 WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o uso médio da CPU do contêiner em relação ao limite excede 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sContainerSampleSELECT average(cpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando a utilização média de memória em relação ao limite ultrapassa 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sContainerSampleSELECT average(memoryWorkingSetUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando as reinicializações do contêiner ultrapassam 0 em uma janela deslizante de 5 minutos. Ele executa esta consulta:
FROM K8sContainerSampleSELECT sum(restartCountDelta)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um contêiner aguarda mais de 5 minutos. Ele executa esta consulta:
FROM K8sContainerSampleSELECT uniqueCount(podName)WHERE status = 'Waiting' and clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') FACET containerName, podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta instrução do alerta gera um alerta quando o daemonset fica sem algum pod por um período maior que 5 minutos. Ele executa esta consulta:
FROM K8sDaemonsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando a implantação estiver faltando algum pod por um período superior a 5 minutos. Ele executa esta consulta:
FROM K8sDeploymentSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet deploymentName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o uso do descritor de arquivo Etcd
excede 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sEtcdSampleSELECT max(processFdsUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o descritor de arquivo Etcd
fica sem líder por mais de 1 minuto. Ele executa esta consulta:
FROM K8sEtcdSampleSELECT min(etcdServerHasLeader)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando as réplicas atuais de um pod autoscaler horizontal são menores que as réplicas desejadas por mais de 5 minutos. Ele executa esta consulta:
FROM K8sHpaSampleSELECT latest(desiredReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um escalonador automático pod horizontal excede 5 réplicas. Ele executa esta consulta:
FROM K8sHpaSampleSELECT latest(maxReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um trabalho relata um status de falha. Ele executa esta consulta:
FROM K8sJobSampleSELECT uniqueCount(jobName)WHERE failed = 'true' and clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet jobName, namespaceName, clusterName, failedPodsReason
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando mais de 5 pods em um namespace falham por mais de 5 minutos. Ele executa esta consulta:
FROM K8sPodSampleSELECT uniqueCount(podName)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') and status = 'Failed' facet namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Este alerta gera um alerta quando a utilização média da CPU alocável do nó excede 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sNodeSampleSELECT average(allocatableCpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Este alerta gera um alerta quando a utilização média de memória alocável do nó excede 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sNodeSampleSELECT average(allocatableMemoryUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um nó fica indisponível por 5 minutos. Ele executa esta consulta:
FROM K8sNodeSampleSELECT latest(condition.Ready)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um nó é marcado como não agendado. Ele executa esta consulta:
FROM K8sNodeSampleSELECT latest(unschedulable)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o pod em execução de um nó excede 90% da capacidade do pod do nó por mais de 5 minutos. Ele executa esta consulta:
FROM K8sPodSample, K8sNodeSampleSELECT ceil(filter(uniqueCount(podName)WHERE status = 'Running') / latest(capacityPods) * 100) as 'Pod Capacity %' where nodeName != '' and nodeName is not null and clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta instrução do alerta gera um alerta quando a utilização média da capacidade do sistema de arquivos raiz do nó excede 90% por mais de 5 minutos. Ele executa esta consulta:
FROM K8sNodeSampleSELECT average(fsCapacityUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o volume persistente fica em estado de falha ou pendente por mais de 5 minutos. Ele executa esta consulta:
FROM K8sPersistentVolumeSampleSELECT uniqueCount(volumeName)WHERE statusPhase in ('Failed','Pending') and clusterName in ('YOUR_CLUSTER_NAME') facet volumeName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um pod não pode ser agendado por mais de 5 minutos. Ele executa esta consulta:
FROM K8sPodSampleSELECT latest(isScheduled)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando um pod fica indisponível por mais de 5 minutos. Ele executa esta consulta:
FROM K8sPodSampleSELECT latest(isReady)WHERE status not in ('Failed', 'Succeeded') where clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet podName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando statefulset
está ausente do pod por mais de 5 minutos. Ele executa esta consulta:
FROM K8sStatefulsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
Veja o arquivo de configuração do GitHub para mais informações.
Política de alertas do mecanismo Google Kubernetes
Este é o conjunto padrão de mecanismos de alerta do Google Kubernetes recomendados que você adicionará:
Este alerta gera um alerta quando a utilização da CPU de um nó excede 90% por pelo menos 15 minutos. Ele executa esta consulta:
FROM MetricSELECT max(`gcp.kubernetes.node.cpu.allocatable_utilization`) * 100WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
Veja o arquivo de configuração do GitHub para mais informações.
Esta condição do alerta gera um alerta quando o uso de memória de um nó excede 85% de sua capacidade total. Ele executa esta consulta:
FROM K8sPodSampleSELECT max(gcp.kubernetes.node.memory.allocatable_utilization) * 100 WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
Veja o arquivo de configuração do GitHub para mais informações.