メトリクス¶
メトリック設定は、オートスケーラーによって監視されるメトリックの種類を定義します。
リビジョンごとのメトリックの設定¶
リビジョンごとの設定では、これは`autoscaling.knative.dev/metric`アノテーションを使用して決定されます。リビジョンごとに設定できるメトリックの種類は、使用しているオートスケーラーの実装の種類によって異なります。
- デフォルトのKPAオートスケーラーは`concurrency`と`rps`メトリックをサポートしています。
- HPAオートスケーラーは`cpu`メトリックをサポートしています。
KPAとHPAの詳細については、サポートされているオートスケーラーの種類に関するドキュメントを参照してください。
- リビジョンごとのアノテーションキー: `autoscaling.knative.dev/metric`
- 可能な値: `concurrency`、`rps`、`cpu`、`memory`、またはオートスケーラーの種類に応じて任意のカスタムメトリック名。`cpu`、`memory`、およびカスタムメトリックは、HPAクラスを使用するリビジョンでサポートされています。
- デフォルト: `concurrency`
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/metric: "concurrency"
autoscaling.knative.dev/target-utilization-percentage: "70"
注記
"同時実行数"の`autoscaling.knative.dev/target-utilization-percentage`アノテーションは、パーセンテージ値を指定します。ターゲットの設定で詳細を参照してください。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/metric: "rps"
autoscaling.knative.dev/target: "150"
注記
"1秒あたりのリクエスト数"の`autoscaling.knative.dev/target`アノテーションは、整数値を指定します。ターゲットの設定で詳細を参照してください。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/class: "hpa.autoscaling.knative.dev"
autoscaling.knative.dev/metric: "cpu"
autoscaling.knative.dev/target: "100"
注記
"CPU"の`autoscaling.knative.dev/target`アノテーションは、ミリコア単位の整数値を指定します。ターゲットの設定で詳細を参照してください。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/class: "hpa.autoscaling.knative.dev"
autoscaling.knative.dev/metric: "memory"
autoscaling.knative.dev/target: "75"
注記
"メモリ"の`autoscaling.knative.dev/target`アノテーションは、Mi単位の整数値を指定します。ターゲットの設定で詳細を参照してください。
指定したメトリックによってリビジョンをスケーリングするHPAを作成できます。HPAは、リビジョンのすべてのPodにおけるメトリックの**平均値**を使用するように構成されます。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/class: "hpa.autoscaling.knative.dev"
autoscaling.knative.dev/metric: "<metric-name>"
autoscaling.knative.dev/target: "<target>"
ここで`<metric-name>`はカスタムメトリックです。
次のステップ¶
- アプリケーションの同時実行数ターゲットを設定します。
- アプリケーションのレプリカの1秒あたりのリクエスト数ターゲットを設定します。