Kubernetesソリューションで使用される問合せ
問合せは、Kubernetesソリューションで使用可能な様々なパネルに表示するメトリック、イベント、トポロジおよび分析データを抽出するために使用されます。Kubernetesシステム、OSヘルス、イベント、ワークロード・サマリー、ノード・サマリー、ポッド・サマリーなどのログ・ベースの問合せの一部はログ・エクスプローラで実行する必要があり、その他の問合せはメトリック・エクスプローラで実行する必要があるメトリック・ベースです。
トピック:
Kubernetesソリューションの右側のパネル・ウィジェットに対する問合せ
トピック:
Kubernetesシステム
クリティカルなKubernetesシステム・コンポーネント(kube-apiserver、コントローラ・マネージャ、スケジューラなど)の全体的なヘルスまたはパフォーマンス・メトリックを表示します。このウィジェットは、重要なコントロール・プレーン・サービスがスムーズに動作することを保証するのに役立ちます。
タブ: クラスタ
フィルタ: なし
スコープ: ログ・エクスプローラ
問合せ:
'Component Type' in ('Kubernetes System', 'Kubernetes Control Plane') and Component != null
| link Time, Component, cluster()
| rename 'Cluster Sample' as 'Error Sample'
| eval Error = if(length('Error Sample') > 50, substr('Error Sample', 0, 50) || ' ...', substr('Error Sample', 0, 50))
| classify correlate = -*, Error Component as Trend
| timestats name = 'All Issues' sum(Count) as 'Issue Trend'
| timestats name = 'Potential Issues' sum(Count) as Issues by Component, Error
| fields -'Potential Issue', -Error
OSのヘルス
Kubernetesノードでのオペレーティング・システムの状態に関するインサイトを提供し、多くの場合、CPU、メモリー、ディスク、システム・プロセス・ステータスなどのメトリックを集計します。これにより、基礎となるOSがワークロードのボトルネックにならないようになります。
タブ: クラスタ、ノード
フィルタ: なし
スコープ: ログ・エクスプローラ
問合せ:
'Component Type' = 'Linux System' and Component != null and (Label = null or (Label != null and 'Problem Priority' != null))
| link includenulls = true Time, Node, Component, Label, cluster()
| stats max('Problem Priority') as 'Problem Priority'
| where 'Problem Priority' != null or 'Potential Issue' = '1'
| eval Error = if(length('Cluster Sample') > 30, substr('Cluster Sample', 0, 30) || ' ...', substr('Cluster Sample', 0, 30))
| classify correlate = -*, Error, Label Component as Trend
| timestats name = 'All Issues' sum(Count) as 'Issue Trend'
| timestats name = 'Issues Trend' sum(Count) as Issues by Component, Error, Label, Node
| fields -'Potential Issue', -Error
CPUコア(使用済/割当可能)
このウィジェットには、Kubernetes環境の割当て可能コアの合計と比較して、現在使用されているCPUコアの割合が表示されます。クラスタ全体のCPU使用率の効率をすばやく視覚的に示すことができます。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
問合せ:
clusterCPUUtilization[1m]{clusterName = "k8s_solution_development"}.mean()
フィルタを使用した問合せの例は、「ネットワーク帯域幅」ウィジェットの問合せを参照してください。
メモリー(使用済/割当可能)
クラスタ全体の割当て可能メモリーの合計と比較した、使用されているメモリーの割合を示します。これは、メモリーの負荷を評価し、ワークロードに十分なメモリー・リソースがあることを確認するのに役立ちます。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
問合せ:
clusterMemoryUtilization[1m]{clusterName = "k8s_solution_development"}.mean()
フィルタを使用した問合せの例は、「ネットワーク帯域幅」ウィジェットの問合せを参照してください。
使用されているCPUコアの数
これは、クラスタ内のワークロードによって現在消費されているCPUコアの絶対数を示します。これを監視すると、CPU消費の傾向や潜在的なホットスポットを特定するのに役立ちます。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
問合せ:
podCpuUsage[1m]{clusterName = "oke-cw22-ll", namespace = "kube-system", nodeName = "192.0.2.1", podName =~"coredns*"}.mean().grouping().sum()
メモリー使用量
クラスタ・リソース全体で現在使用されているメモリーの合計量(単位KB、MB、GB)を示します。これにより、容量計画およびトラブルシューティングのメモリー傾向をモニターできます。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
問合せ:
podMemoryUsage[1m]{clusterName = "oke-cw22-ll", namespace = "kube-system", nodeName = "192.0.2.1", podName =~"coredns*"}.mean().grouping().sum()
ネットワーク: バイトrx
クラスタまたは特定のノード/ポッドが受信したネットワーク・バイトの累積または現在のレートを表示します。このメトリックは、インバウンド・ネットワーク・トラフィック・ボリュームの監視に役立ちます。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
container_network_receive_bytes_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
ネットワーク: バイトtx
クラスタまたは特定のノード/ポッドから送信されたネットワーク・バイト数の累積または現在のレートを表示します。アウトバウンド・トラフィックおよび潜在的なエグレス問題の追跡に役立ちます。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
container_network_transmit_bytes_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
ネットワークパケットのRxレート
ネットワークパケットの受信速度を示します。これにより、ネットワーク・パフォーマンスに影響を与える可能性のあるインバウンド・パケット・ボリュームのトレンドおよびスパイクを特定できます。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
container_network_receive_packets_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
ネットワーク: パケットのTxレート
ノードまたはポッドから送信されるネットワーク・パケットの速度を測定します。アウトバウンド・ネットワーク・アクティビティおよび考えられる飽和の診断に役立ちます。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
container_network_receive_packets_dropped_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
ネットワーク: パケットのRx削除済レート
ネットワークの輻輳やバッファーオーバーフローなどの問題のためにドロップされた着信ネットワークパケットの速度を表示します。高いドロップ・レートは、注意が必要な潜在的なネットワークの問題を示します。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
“container_network_transmit_packets_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
ネットワーク: パケットのTx削除済レート
アウトバウンド・ネットワーク・パケットが削除されるレートを表示します。永続的な高い値は、ネットワーク・バッファの問題、構成の誤り、またはハードウェアの制限を示唆する場合があります。mgmtagent_kubernetes_metricsネームスペースに対して問合せを実行します。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: メトリック・エクスプローラ
サンプル問合せ:
container_network_transmit_packets_dropped_total[1m]{clusterName=“oke-cw22-ll“}.groupBy(interface).rate().filter(x=>x>=0)
APIサーバー・リクエスト期間
APIサーバー・リクエストの完了にかかる時間に関する統計データ(平均、パーセンタイルなど)を表示します。時間が長くなると、APIサーバーのボトルネックやバックエンド・サービスの問題を示す可能性があります。
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: なし
スコープ: メトリック・エクスプローラ
問合せ:
apiserver_request_duration_seconds_sum[5m]{clusterName = "oke-cw22-ll",verb=~"LIST|GET|PUT|POST|PATCH|DELETE|APPLY"}.groupBy(verb).sum() / apiserver_request_duration_seconds_count[5m]{clusterName = "oke-cw22-ll",verb=~"LIST|GET|PUT|POST|PATCH|DELETE|APPLY"}.groupBy(verb).sum()
etcdリクエスト期間
分散キー/バリュー・ストア・バッキングKubernetesであるetcdへのリクエストの処理に関連するレイテンシを示します。所要時間が長くなると、コントロール・プレーン全体の応答性に影響します。
タブ: クラスタ
フィルタ: なし
スコープ: メトリック・エクスプローラ
問合せ:
etcd_request_duration_seconds_sum[5m]{clusterName = "oke-cw22-ll"}.groupBy(le).sum()/etcd_request_duration_seconds_count[5m]{clusterName = "oke-cw22-ll"}.groupBy(le).sum()
合計APIサーバー・リクエスト
指定した期間にKubernetes APIサーバーによって受信されたリクエストの合計数が表示されます。数が多いまたは急激に増加すると、クラスタ管理アクティビティが増加したり、スクリプトの自動オーバーロードなどの潜在的な問題を示している可能性があります。
タブ: クラスタ
フィルタ: なし
スコープ: メトリック・エクスプローラ
問合せ:
apiserver_request_total[5m]{clusterName = "oke-cw22-ll"}.groupBy(code).rate().filter(x=>x>=0)
API応答サイズ
Kubernetes APIサーバーによって返されるレスポンスのサイズ(バイト)を測定します。大きいレスポンス・サイズは、ネットワーク使用率およびクライアント・パフォーマンスに影響する可能性があります。
タブ: クラスタ
フィルタ: なし
スコープ: メトリック・エクスプローラ
問合せ:
apiserver_response_sizes_sum[5m]{clusterName = "oke-cw22-ll"}.groupBy(verb).sum() / apiserver_response_sizes_count[5m]{clusterName= "oke-cw22-ll"}.groupBy(verb).sum()
APIリクエスト実行時間
受信リクエストの処理および実行にAPIサーバーが要する時間を重視します。これを監視すると、パフォーマンスの低下やオーバーロードされたAPIサーバーの検出に役立ちます。
タブ: クラスタ
フィルタ: なし
スコープ: メトリック・エクスプローラ
問合せ:
apiserver_request_duration_seconds_sum[5m]{clusterName = "oke-cw22-ll", verb=~"LIST|GET|PUT|POST|PATCH|DELETE|APPLY"}.groupBy(verb).sum() / apiserver_request_duration_seconds_count[5m]{clusterName = "oke-cw22-ll", verb=~"LIST|GET|PUT|POST|PATCH|DELETE|APPLY"}.groupBy(verb).sum()
Kubernetesソリューションのイベント表の問合せ
タブ: 「クラスタ」、「ワークロード」、「ノード」、「ポッド」
フィルタ: ネームスペース
スコープ: ログ・エクスプローラ
問合せ:
'Log Source' = 'Kubernetes Event Object Logs' and 'Kubernetes Event Action' != deleted
| eval Object = 'Involved Object Kind' || ' - ' || 'Involved Object Name'
| link includenulls = true Object, 'Event Source Component', Event
| rename 'Event Source Component' as Component
| stats latest('Kubernetes Event Action') as Status, unique(Namespace) as Namespace, latest(Reason) as Reason, latest('Event Description') as Message, unique('Event Type') as Type, earliest('First Event Time') as 'First Event Time', latest('Last Event Time') as 'Last Event Time', latest('Event Count') as 'Event Count'
| eventstats count(Namespace) as Records by Namespace
| eval Age = 'Last Event Time' - 'First Event Time'
| createtable name = 'Namespace Summary' select Namespace, Records
| createtable name = 'Namespace Details' select Namespace, Type, Reason, 'Last Event Time', Age, Message, Object, Component
| sort Namespace, -'Last Event Time'
| fields -Event, -'Start Time', -'End Time', -'First Event Time', -Count
Kubernetesソリューションのクラスタ・トポロジおよび詳細表の問合せ
負荷サマリー
タブ: ワークロード
フィルタ: 「ネームスペース」、「ワークロード」
スコープ: ログ・エクスプローラ
問合せ:
'Log Source' in ('Kubernetes DaemonSet Object Logs', 'Kubernetes Deployment Object Logs', 'Kubernetes CronJob Object Logs', 'Kubernetes Job Object Logs', 'Kubernetes StatefulSet Object Logs')
| eval Name = if('Log Source' = 'Kubernetes Deployment Object Logs', Deployment, 'Log Source' = 'Kubernetes DaemonSet Object Logs', DaemonSet, 'Log Source' = 'Kubernetes CronJob Object Logs', CronJob, 'Log Source' = 'Kubernetes Job Object Logs', Job, 'Log Source' = 'Kubernetes StatefulSet Object Logs', StatefulSet, null)
| link Namespace, 'Log Source', Name
| eval Type = if('Log Source' = 'Kubernetes Deployment Object Logs', literal(Deployment), 'Log Source' = 'Kubernetes DaemonSet Object Logs', literal(DaemonSet), 'Log Source' = 'Kubernetes CronJob Object Logs', literal(CronJob), 'Log Source' = 'Kubernetes Job Object Logs', literal(Job), 'Log Source' = 'Kubernetes StatefulSet Object Logs', literal(StatefulSet), null)
| addfields [ 'Log Source' = 'Kubernetes Deployment Object Logs'
| eventstats latest('Available Status') as 'DP Available', latest(Replicas) as 'DP Desired', latest('Ready Replicas') as 'DP Ready', latest('Updated Replicas') as 'DP Updated', latest('Available Replicas') as 'DP Available R', latest('Object Creation Time') as 'DP OCR' by Namespace, Name ], [ 'Log Source' = 'Kubernetes DaemonSet Object Logs'
| eventstats latest('Desired Number Scheduled') as 'DM Desired', latest('Ready Count') as 'DM Ready', latest('Updated Replicas') as 'DM Updated', latest('Current Scheduled') as 'DM Scheduled', latest('Object Creation Time') as 'DM OCR' by Namespace, Name ], [ 'Log Source' = 'Kubernetes CronJob Object Logs'
| eventstats latest(Schedule) as 'CR Schedule', latest(Suspend) as 'CR Suspended', latest('Last Schedule Time') as 'CR Last Schedule', latest('Object Creation Time') as 'CR OCR' by Namespace, Name ], [ 'Log Source' = 'Kubernetes Job Object Logs'
| eventstats latest(Completions) as 'JB Completions', latest(Status) as 'JB Status', latest('Object Creation Time') as 'JB OCR' by Namespace, Name ], [ 'Log Source' = 'Kubernetes StatefulSet Object Logs'
| eventstats latest(Replicas) as 'SS Replicas', latest('Current Replicas') as 'SS Current Replicas', latest('Desired Replicas') as 'SS Desired Replicas', latest('Ready Replicas') as 'SS Ready Replicas', latest('Object Creation Time') as 'SS OCR' by Namespace, Name ]
| eval OCR = if('Log Source' = 'Kubernetes Deployment Object Logs', 'DP OCR', 'Log Source' = 'Kubernetes DaemonSet Object Logs', 'DM OCR', 'Log Source' = 'Kubernetes CronJob Object Logs', 'CR OCR', 'Log Source' = 'Kubernetes Job Object Logs', 'JB OCR', 'Log Source' = 'Kubernetes StatefulSet Object Logs', 'SS OCR', null)
| eval Age = unit('End Time' - OCR, ms) | eval Status = if('Log Source' = 'Kubernetes Deployment Object Logs' and 'DP Available' = true, Available, 'Log Source' = 'Kubernetes DaemonSet Object Logs' and 'DM Desired' = 'DM Ready', Available, 'Log Source' = 'Kubernetes CronJob Object Logs' and 'CR Suspended' = true, Suspended || ' (Last Scheduled: ' || formatDate('CR Last Schedule') || ')', 'Log Source' = 'Kubernetes CronJob Object Logs' and 'CR Suspended' = false, ' Last Scheduled: ' || formatDate('CR Last Schedule'), 'Log Source' = 'Kubernetes Job Object Logs' and 'JB Status' = complete, Complete, 'Log Source' = 'Kubernetes Job Object Logs' and 'JB Status' = failed, Failed, 'Log Source' = 'Kubernetes Job Object Logs', 'JB Status', 'Log Source' = 'Kubernetes StatefulSet Object Logs' and ('SS Desired Replicas' = 'SS Replicas' and 'SS Desired Replicas' = 'SS Ready Replicas'), Available, 'Not Available')
| createtable name = Workloads select Namespace, Type, Name, Status, Age
| fields -'DP *', -'DM *', -'JB *', -'SS *', -OCR
ノード・サマリー
タブ: ノード
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: ログ・エクスプローラ
問合せ:
'Log Source' = 'Kubernetes Node Object Logs'
| link Node
| stats latest('Ready Status') as 'Ready Status', latest('Ready Reason') as 'Ready Reason', latest('Disk Pressure Status') as 'Disk Pressure', latest('Memory Pressure Status') as 'Memory Pressure', latest('PID Pressure Status') as 'PID Pressure', latest(Architecture) as Arch, latest('Operating System Image') as 'OS Image', latest('Kernel Version') as Kernel, latest('Container Runtime Version') as 'Container Runtime', latest('Kubelet Version') as Kubelet, latest('KubeProxy Version') as KubeProxy, latest('CPU Allocatable') as 'CPU A', latest('CPU Capacity') as 'CPU C', latest('Memory Allocatable') as 'Memory A', latest('Memory Capacity') as 'Memory C'
| eval Status = if('Ready Status' = true, Ready, 'Not Ready')
| eval Issues = if('Disk Pressure' != true and 'Memory Pressure' != true and 'PID Pressure' != true and Status = Ready, 'No Issues', 'Disk Pressure' = true and 'Memory Pressure' = true and 'PID Pressure' = true, 'Low on Disk, Memory and PID', 'Disk Pressure' = true and 'Memory Pressure' = true and 'PID Pressure' != true, 'Low on Disk and Memory', 'Disk Pressure' = true and 'Memory Pressure' != true and 'PID Pressure' = true, 'Low on Disk and PID', 'Disk Pressure' = true and 'Memory Pressure' != true and 'PID Pressure' != true, 'Low on Disk', 'Disk Pressure' != true and 'Memory Pressure' = true and 'PID Pressure' = true, 'Low on Memory and PID', 'Disk Pressure' != true and 'Memory Pressure' = true and 'PID Pressure' != true, 'Low on Memory', 'Disk Pressure' != true and 'Memory Pressure' != true and 'PID Pressure' = true, 'Low on PID', Status = 'Not Ready' and 'Ready Reason' != null, 'Ready Reason', Unknown)
| eval CPU = 'CPU C' || ' / ' || 'CPU A' | eval 'Memory (Capacity)' = unit('Memory C', byte)
| eval 'Memory (Allocatable)' = unit('Memory A', byte)
| eval Age = unit('Query End Time' - 'End Time', ms)
| eval 'Kubelet / KubeProxy Versions' = Kubelet || ' / ' || KubeProxy
| eval OS = 'OS Image' || ' (' || Arch || ') ' || Kernel
| createtable name = 'Node Summary' select Node as Name, Status, Issues, Age, OS, 'Container Runtime', 'Kubelet / KubeProxy Versions', CPU, 'Memory (Capacity)', 'Memory (Allocatable)'
ポッド・サマリー
タブ: ポッド
フィルタ: 「ネームスペース」、「ワークロード」、「ノード」
スコープ: ログ・エクスプローラ
問合せ:
'Log Source' = 'Kubernetes Pod Object Logs'
| link Pod
| stats latest('Pod Phase') as Status, latest(Node) as Node, latest(Namespace) as Namespace, latest('Pod IP Address') as 'Pod IP', latest(Controller) as Controller, latest('Controller Kind') as 'Controller Kind', latest('Scheduler Name') as Scheduler
| createtable name = 'Pod Summary' select Pod as Name, Status, Node, Namespace, 'Pod IP', Controller, 'Controller Kind', Scheduler
| fields 'End Time' as 'Last Reported', -Count