最初にKubernetesインテグレーションをインストールするときに、 Kubernetesクラスタ上のアラート条件の基礎を形成する、推奨されるアラート条件のデフォルト セットがアカウントにデプロイされます。 これらの条件は、 Kubernetes alert policyというポリシーにグループ化されます。
私たちはあらゆる環境で最も一般的なユースケースに対処しようとしましたが、デフォルトのポリシーを拡張するために設定できる追加のアラートがいくつかあります。 これらは私たちが推奨するアラート ポリシーです。
推奨アラートポリシーの追加
推奨されるアラート ポリシーを追加するには、次の手順に従います。
one.newrelic.com > Integrations & Agentsに移動します。
事前に構築されたリソースにアクセスするには、 Alerts選択します。
Kubernetesを検索し、追加する推奨アラート ポリシーを選択します。
推奨アラートポリシーを確認する方法
追加した推奨アラート ポリシーを表示するには、次の手順を実行します。
one.newrelic.com > All capabilities > Alertsに移動します。
左側のナビゲーション ペインでAlert Policiesをクリックします。
Kubernetes alert policyとGoogle Kubernetes engine alert policyが表示されます。
Kubernetes アラートポリシー
これは、追加する推奨アラート条件のデフォルトのセットです。
このアラート条件は、コンテナが 5 分間以上 25% 以上スロットルされた場合に分割を生成します。 次のクエリを実行します:
FROM K8sContainerSampleSELECT sum(containerCpuCfsThrottledPeriodsDelta) / sum(containerCpuCfsPeriodsDelta) * 100 WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、制限に対するコンテナの平均 CPU 使用率が 5 分以上にわたって 90% を超えた場合に分割を生成します。 次のクエリを実行します:
FROM K8sContainerSampleSELECT average(cpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、制限に対するコンテナ メモリの平均使用量が 5 分間以上にわたって 90% を超えた場合に、分割を生成します。 次のクエリを実行します:
FROM K8sContainerSampleSELECT average(memoryWorkingSetUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、コンテナの再起動が 5 分間のスライディング ウィンドウ内で 0 を超えると、分割を生成します。 次のクエリを実行します:
FROM K8sContainerSampleSELECT sum(restartCountDelta)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet containerName, podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、コンテナが 5 分を超えて待機する場合に分割を生成します。 次のクエリを実行します:
FROM K8sContainerSampleSELECT uniqueCount(podName)WHERE status = 'Waiting' and clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') FACET containerName, podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、daemonset に 5 分を超える期間ポッドが欠落している場合に一括を生成します。 次のクエリを実行します:
FROM K8sDaemonsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、デプロイメントに 5 分を超えてポッドが欠落している場合に分割を生成します。 次のクエリを実行します:
FROM K8sDeploymentSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet deploymentName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、 Etcd
ファイル記述子の使用率が 5 分間以上にわたって 90% を超えた場合に、分割を生成します。 次のクエリを実行します:
FROM K8sEtcdSampleSELECT max(processFdsUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、 Etcd
ファイル記述子が 1 分を超えてリーダーレスである場合に分割を生成します。 次のクエリを実行します:
FROM K8sEtcdSampleSELECT min(etcdServerHasLeader)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet displayName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、水平ポッド オートスケーラーの現在のレプリカが目的のレプリカよりも 5 分以上低い場合に集計を生成します。 次のクエリを実行します:
FROM K8sHpaSampleSELECT latest(desiredReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、水平ポッド オートスケーラーが 5 つのレプリカを超えると、集計を生成します。 次のクエリを実行します:
FROM K8sHpaSampleSELECT latest(maxReplicas - currentReplicas)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet displayName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ジョブが失敗ステータスを報告したときに集計を生成します。 次のクエリを実行します:
FROM K8sJobSampleSELECT uniqueCount(jobName)WHERE failed = 'true' and clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet jobName, namespaceName, clusterName, failedPodsReason
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ネームスペース内の 5 つを超えるポッドが 5 分以上失敗した場合に集計を生成します。 次のクエリを実行します:
FROM K8sPodSampleSELECT uniqueCount(podName)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') and status = 'Failed' facet namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、平均ノード割り当て可能 CPU 使用率が 5 分を超えて 90% を超えた場合に分割を生成します。 次のクエリを実行します:
FROM K8sNodeSampleSELECT average(allocatableCpuCoresUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノードの割り当て可能なメモリの平均使用率が 5 分を超えて 90% を超えた場合に分割を生成します。 次のクエリを実行します:
FROM K8sNodeSampleSELECT average(allocatableMemoryUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノードが 5 分間利用できない場合に加算を生成します。 次のクエリを実行します:
FROM K8sNodeSampleSELECT latest(condition.Ready)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノードがスケジュールされていないとマークされている場合に分割を生成します。 次のクエリを実行します:
FROM K8sNodeSampleSELECT latest(unschedulable)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノードの実行中のポッドが 5 分を超えてノードのポッド容量の 90% を超えた場合に集計を生成します。 次のクエリを実行します:
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
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノード ルート ファイル システムの平均容量使用率が 5 分を超えて 90% を超えた場合に加算を生成します。 次のクエリを実行します:
FROM K8sNodeSampleSELECT average(fsCapacityUtilization)WHERE clusterName in ('YOUR_CLUSTER_NAME') facet nodeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、永続ボリュームが 5 分を超えて失敗または保留状態にある場合に、分割を生成します。 次のクエリを実行します:
FROM K8sPersistentVolumeSampleSELECT uniqueCount(volumeName)WHERE statusPhase in ('Failed','Pending') and clusterName in ('YOUR_CLUSTER_NAME') facet volumeName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ポッドを 5 分を超えてスケジュールできない場合に一括を生成します。 次のクエリを実行します:
FROM K8sPodSampleSELECT latest(isScheduled)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet podName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ポッドが 5 分以上利用できない場合に、集計を生成します。 次のクエリを実行します:
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
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、 statefulset
にポッドが 5 分間以上存在しない場合に集計を生成します。 次のクエリを実行します:
FROM K8sStatefulsetSampleSELECT latest(podsMissing)WHERE clusterName in ('YOUR_CLUSTER_NAME') and namespaceName in ('YOUR_NAMESPACE_NAME') facet daemonsetName, namespaceName, clusterName
詳細については、GitHub 設定ファイルを参照してください。
Google Kubernetesエンジン アラートポリシー
これは、追加する推奨される Google Kubernetes エンジン アラート条件のデフォルトのセットです。
このアラート条件は、ノードの CPU 使用率が少なくとも 15 分間 90% を超えた場合に加算を生成します。 次のクエリを実行します:
FROM MetricSELECT max(`gcp.kubernetes.node.cpu.allocatable_utilization`) * 100WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
詳細については、GitHub 設定ファイルを参照してください。
このアラート条件は、ノードのメモリ使用量が総容量の 85% を超えた場合に、分割を生成します。 次のクエリを実行します:
FROM K8sPodSampleSELECT max(gcp.kubernetes.node.memory.allocatable_utilization) * 100 WHERE clusterName LIKE '%' FACET gcp.kubernetes.nodeName
詳細については、GitHub 設定ファイルを参照してください。