Note
Container Insights ログは、コンテナー ネットワーク ログが収集されている場合にのみ、スロットルが行われます。 コンテナー ネットワーク ログの収集を有効にしていない場合、クラスターで調整は有効になりません。
Azure Monitor - Container Insights を使用すると、お客様は Azure Kubernetes Service (AKS) クラスターで生成されたログを収集できます。 ワークロードとログの設定によっては、生成されるログの量が膨大になり、制限やログの損失を引き起こす可能性があります。 この記事では、Container Insights でログが調整される直前の既定値について説明します。 お客様がこれらの値を変更する方法について説明します。 最後のセクションでは、サービス品質 (QoS) Grafana ダッシュボードで潜在的なスロットリングの問題を監視する方法について説明します。
既定の調整値
スロットリングは、次の値でデフォルトで有効にされています。
| ConfigMap の設定 | 既定値 | Description | 
|---|---|---|
| throttle_enabled | true | 既定では true で、この値を調整して、ネットワーク フロー ログ メッセージを有効または無効にするかどうかを制御します。 | 
| throttle_rate | 5000 | 既定では 5000 で、1 ~ 25,000 の範囲であり、時間枠内のログ レコードの数を制御するようにこの値を調整します。 | 
| throttle_window | 300 | 既定では 300 で、平均を計算する間隔の数を制御するようにこの値を調整します。 | 
| throttle_interval | 1s | 既定では 1s で、"スリープ" 形式で表される時間間隔を制御するようにこの値を調整します。 例: 3s、1.5m、0.5h など。 | 
| throttle_print | false | 既定では false で、現在のレートと情報ログの制限を使用してステータス メッセージを出力するかどうかを制御するために、この値を調整します。 | 
スロットリング値の変更
既定値を変更するには、ConfigMap をダウンロードし、以下の設定をダウンロードした ConfigMap に変更します。
throttle_enabled = true # By default is true and adjust this value to control whether to enable or disable network flow log messages. 
throttle_rate = 5000 # By default is 5000 and range from 1 to 25,000 and adjust this value to control the amount of messages for the time. 
throttle_window = 300 # By default is 300 and adjust this value to control the amount of intervals to calculate average over. 
throttle_interval = "1s" # By default is 1s and adjust this value to control time interval, expressed in "sleep" format. Examples: 3s, 1.5m, 0.5h etc. 
throttle_print = false # By default is false and adjust this value to control whether to print status messages with current rate and the limits to information logs. 
kubectl apply コマンドを使用して configmap を適用すると、ポッドは数分以内に再起動されます。
kubectl apply -f agent_settings.networkflow_logs_config.yaml
Prometheus と Grafana を使用して QoS メトリックを監視する
Container Network ログを収集するログ アドオンは、調整とログ損失の監視に使用できる QoS メトリックを発行します。 このセクションでは、お客様が Prometheus の Azure Monitor マネージド サービスを使用してこれらのメトリックを収集し、Grafana で視覚化する方法について説明します。
Pre-requisites
- Prometheus 用の Azure Monitor マネージド サービス: 生成された QoS メトリックは、マネージド Prometheus サービスに送信されます。 次の手順に従って有効にします。
 - ダッシュボードをインポートする Grafana インスタンス。 この Grafana インスタンスには、 Azure マネージド Grafana のインスタンス、 Grafana を含む Azure Monitor ダッシュボード 、または前述の Prometheus サービスにリンクされている他の Grafana インスタンスを指定できます。
 
構成手順
- ama-metrics-prometheus-config-node ConfigMap をダウンロードする
 
curl -LO https://aka.ms/ama-metrics-prometheus-config-node
- 以下を使用して既存の ama-metrics-prometheus-config-node ConfigMap が既にあるかどうかを確認します
 
kubectl get cm -n kube-system | grep ama-metrics-prometheus-config-node
既存の ConfigMap がある場合は、ama-logs-daemonset スクレーピング ジョブを既存の ConfigMap に追加できます。それ以外の場合は、この ConfigMap を適用できます。
kubectl apply -f ama-metrics-prometheus-config-node.yaml 
Grafana ダッシュボード JSON ファイルを Azure Managed Grafana インスタンスにインポートします。
ConfigMap で enable_internal_metrics = true を構成する https://github.com/microsoft/Docker-Provider/blob/ci_prod/kubernetes/container-azm-ms-agentconfig.yaml#L220
次の方法で configmap を適用します。
kubectl apply -f container-azm-ms-agentconfig.yaml 
最終的なダッシュボード
データフローを含む最終的な QoS ダッシュボードを次の図に示します。