Cuando instala por primera vez la integración Kubernetes , implementamos un conjunto predeterminado de condición de alerta recomendada en su cuenta que forma la base para la condición de alerta en su clúster de Kubernetes. Estas condiciones se agrupan en una política denominada Kubernetes alert policy.
Si bien intentamos abordar los casos de uso más comunes en todos los entornos, hay un serial de alertas adicionales que puede configurar para ampliar la política predeterminada. Éstas son nuestras políticas de alerta recomendadas.
Agregar la política de alertas recomendada
Para agregar una política de alertas recomendada, siga estos pasos:
Vaya a one.newrelic.com > Integrations & Agents.
Seleccione Alerts para acceder a los recursos prediseñados.
Busca Kubernetes y selecciona la política de alertas recomendada que deseas agregar.
Cómo ver la política de alertas recomendada
Para ver la política de alertas recomendada que agregaste, haz lo siguiente:
Vaya a one.newrelic.com > All capabilities > Alerts.
Haga clic en Alert Policies en el panel de navegación izquierdo.
Verás Kubernetes alert policy y Google Kubernetes engine alert policy.
Kubernetes política de alertas
Este es el conjunto predeterminado de condiciones de alerta recomendadas que agregarás:
Esta condición de alerta genera una alerta cuando un contenedor se limita en más del 25% durante más de 5 minutos. Ejecuta 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
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el uso promedio de la CPU del contenedor frente al límite excede el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sContainerSampleSELECT average(cpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el uso promedio de la memoria del contenedor frente al límite excede el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sContainerSampleSELECT average(memoryWorkingSetUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando los reinicios del contenedor superan 0 en una ventana deslizante de 5 minutos. Ejecuta esta consulta:
FROM K8sContainerSampleSELECT sum(restartCountDelta)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un contenedor espera más de 5 minutos. Ejecuta 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
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando al daemonset le falta algún pod durante un periodo superior a 5 minutos. Ejecuta esta consulta:
FROM K8sDaemonsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando al despliegue le falta algún pod por un periodo mayor a 5 minutos. Ejecuta esta consulta:
FROM K8sDeploymentSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet deploymentName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el uso del descriptor de archivo Etcd
supera el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sEtcdSampleSELECT max(processFdsUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el descriptor de archivo Etcd
no tiene línea guía durante más de 1 minuto. Ejecuta esta consulta:
FROM K8sEtcdSampleSELECT min(etcdServerHasLeader)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando las réplicas actuales de un escalador automático de pod horizontal son inferiores a las réplicas deseadas durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sHpaSampleSELECT latest(desiredReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un escalador automático de pod horizontal supera las 5 réplicas. Ejecuta esta consulta:
FROM K8sHpaSampleSELECT latest(maxReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un trabajo informa un estado fallido. Ejecuta 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
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando más de 5 pods en un namespace fallan durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sPodSampleSELECT uniqueCount(podName)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') and status = 'Failed' facet namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando la utilización promedio de CPU asignable del nodo excede el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sNodeSampleSELECT average(allocatableCpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando la utilización promedio de la memoria asignable del nodo excede el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sNodeSampleSELECT average(allocatableMemoryUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un nodo no está disponible durante 5 minutos. Ejecuta esta consulta:
FROM K8sNodeSampleSELECT latest(condition.Ready)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un nodo está marcado como no programado. Ejecuta esta consulta:
FROM K8sNodeSampleSELECT latest(unschedulable)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando la capacidad del pod en ejecución de un nodo excede el 90% de la capacidad pod del nodo durante más de 5 minutos. Ejecuta 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
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando la utilización de la capacidad del sistema de archivos raíz del nodo promedio excede el 90% durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sNodeSampleSELECT average(fsCapacityUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el volumen persistente está en estado fallido o pendiente durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sPersistentVolumeSampleSELECT uniqueCount(volumeName)WHERE statusPhase in ('Failed','Pending') and clusterName in ('YOUR_CLUSTER_NAME') facet volumeName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando no se puede programar un pod durante más de 5 minutos. Ejecuta esta consulta:
FROM K8sPodSampleSELECT latest(isScheduled)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet podName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando un pod no está disponible durante más de 5 minutos. Ejecuta 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
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando a statefulset
le falta el pod durante 5 minutos. Ejecuta esta consulta:
FROM K8sStatefulsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
Consulte el archivo de configuración de GitHub para obtener más información.
Política de alertas del motor Google Kubernetes
Este es el conjunto predeterminado de condiciones de alerta recomendadas para el motor Google Kubernetes que agregará:
Esta condición de alerta genera una alerta cuando la utilización de la CPU de un nodo supera el 90% durante al menos 15 minutos. Ejecuta esta consulta:
FROM MetricSELECT max(`gcp.kubernetes.node.cpu.allocatable_utilization`) * 100WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
Consulte el archivo de configuración de GitHub para obtener más información.
Esta condición de alerta genera una alerta cuando el uso de memoria de un nodo excede el 85% de su capacidad total. Ejecuta esta consulta:
FROM K8sPodSampleSELECT max(gcp.kubernetes.node.memory.allocatable_utilization) * 100 WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
Consulte el archivo de configuración de GitHub para obtener más información.