6.2. Knative making metering 的数据源

以下 ReportDataSources 是 OpenShift Container Platform metering 如何使用 Knative instructioning 的示例。

6.2.1. Knativelatesting 中 CPU 用量的数据源

这个数据源提供在报告的时间段内每个 Knative 服务使用的总 CPU 秒数。

yaml 文件

apiVersion: metering.openshift.io/v1
kind: ReportDataSource
metadata:
  name: knative-service-cpu-usage
spec:
  prometheusMetricsImporter:
    query: >
      sum
          by(namespace,
             label_serving_knative_dev_service,
             label_serving_knative_dev_revision)
          (
            label_replace(rate(container_cpu_usage_seconds_total{container_name!="POD",container_name!="",pod_name!=""}[1m]), "pod", "$1", "pod_name", "(.*)")
            *
            on(pod, namespace)
            group_left(label_serving_knative_dev_service, label_serving_knative_dev_revision)
            kube_pod_labels{label_serving_knative_dev_service!=""}
          )

6.2.2. 用于 Knative making 中的内存使用的数据源

这个数据源为每个 Knative 服务在报告期间提供平均内存消耗。

yaml 文件

apiVersion: metering.openshift.io/v1
kind: ReportDataSource
metadata:
  name: knative-service-memory-usage
spec:
  prometheusMetricsImporter:
    query: >
      sum
          by(namespace,
             label_serving_knative_dev_service,
             label_serving_knative_dev_revision)
          (
            label_replace(container_memory_usage_bytes{container_name!="POD", container_name!="",pod_name!=""}, "pod", "$1", "pod_name", "(.*)")
            *
            on(pod, namespace)
            group_left(label_serving_knative_dev_service, label_serving_knative_dev_revision)
            kube_pod_labels{label_serving_knative_dev_service!=""}
          )

6.2.3. 为 KnativeUping metering 应用数据源

您可以使用以下命令应用 ReportDataSources

$ oc apply -f <datasource-name>.yaml

示例

$ oc apply -f knative-service-memory-usage.yaml