6.6. OpenShift Serverless에서 미터링 사용하기
미터링은 더 이상 사용되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Container Platform에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
클러스터 관리자는 미터링을 사용하여 OpenShift Serverless 클러스터에서 발생하는 상황을 분석할 수 있습니다.
OpenShift Container Platform의 미터링에 대한 자세한 내용은 미터링 정보를 참조하십시오.
미터링은 현재 IBM Z 및 IBM Power Systems에서 지원되지 않습니다.
6.6.1. 미터링 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에 미터링을 설치하는 방법에 대한 내용은 미터링 설치를 참조하십시오.
6.6.2. Knative Serving 미터링 데이터 소스 링크 복사링크가 클립보드에 복사되었습니다!
다음 ReportDataSources는 OpenShift Container Platform 미터링에 Knative Serving을 사용하는 방법에 대한 예제입니다.
6.6.2.1. Knative Serving의 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!="POD",container!="",pod!=""}[1m]), "pod", "$1", "pod", "(.*)")
*
on(pod, namespace)
group_left(label_serving_knative_dev_service, label_serving_knative_dev_revision)
kube_pod_labels{label_serving_knative_dev_service!=""}
)
6.6.2.2. Knative Serving의 메모리 사용량에 대한 데이터 소스 링크 복사링크가 클립보드에 복사되었습니다!
이 데이터 소스에서는 보고 기간에 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!="POD", container!="",pod!=""}, "pod", "$1", "pod", "(.*)")
*
on(pod, namespace)
group_left(label_serving_knative_dev_service, label_serving_knative_dev_revision)
kube_pod_labels{label_serving_knative_dev_service!=""}
)
6.6.2.3. Knative Serving 미터링 데이터 소스 적용 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 사용하여 ReportDataSources를 적용할 수 있습니다.
$ oc apply -f <datasource_name>.yaml
예
$ oc apply -f knative-service-memory-usage.yaml
6.6.3. Knative Serving 미터링 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
다음 ReportQuery 리소스에서는 제공된 DataSources 예제를 참조합니다.
6.6.3.1. Knative Serving의 CPU 사용량 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
YAML 파일
apiVersion: metering.openshift.io/v1
kind: ReportQuery
metadata:
name: knative-service-cpu-usage
spec:
inputs:
- name: ReportingStart
type: time
- name: ReportingEnd
type: time
- default: knative-service-cpu-usage
name: KnativeServiceCpuUsageDataSource
type: ReportDataSource
columns:
- name: period_start
type: timestamp
unit: date
- name: period_end
type: timestamp
unit: date
- name: namespace
type: varchar
unit: kubernetes_namespace
- name: service
type: varchar
- name: data_start
type: timestamp
unit: date
- name: data_end
type: timestamp
unit: date
- name: service_cpu_seconds
type: double
unit: cpu_core_seconds
query: |
SELECT
timestamp '{| default .Report.ReportingStart .Report.Inputs.ReportingStart| prestoTimestamp |}' AS period_start,
timestamp '{| default .Report.ReportingEnd .Report.Inputs.ReportingEnd | prestoTimestamp |}' AS period_end,
labels['namespace'] as project,
labels['label_serving_knative_dev_service'] as service,
min("timestamp") as data_start,
max("timestamp") as data_end,
sum(amount * "timeprecision") AS service_cpu_seconds
FROM {| dataSourceTableName .Report.Inputs.KnativeServiceCpuUsageDataSource |}
WHERE "timestamp" >= timestamp '{| default .Report.ReportingStart .Report.Inputs.ReportingStart | prestoTimestamp |}'
AND "timestamp" < timestamp '{| default .Report.ReportingEnd .Report.Inputs.ReportingEnd | prestoTimestamp |}'
GROUP BY labels['namespace'],labels['label_serving_knative_dev_service']
6.6.3.2. Knative Serving의 메모리 사용량 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
YAML 파일
apiVersion: metering.openshift.io/v1
kind: ReportQuery
metadata:
name: knative-service-memory-usage
spec:
inputs:
- name: ReportingStart
type: time
- name: ReportingEnd
type: time
- default: knative-service-memory-usage
name: KnativeServiceMemoryUsageDataSource
type: ReportDataSource
columns:
- name: period_start
type: timestamp
unit: date
- name: period_end
type: timestamp
unit: date
- name: namespace
type: varchar
unit: kubernetes_namespace
- name: service
type: varchar
- name: data_start
type: timestamp
unit: date
- name: data_end
type: timestamp
unit: date
- name: service_usage_memory_byte_seconds
type: double
unit: byte_seconds
query: |
SELECT
timestamp '{| default .Report.ReportingStart .Report.Inputs.ReportingStart| prestoTimestamp |}' AS period_start,
timestamp '{| default .Report.ReportingEnd .Report.Inputs.ReportingEnd | prestoTimestamp |}' AS period_end,
labels['namespace'] as project,
labels['label_serving_knative_dev_service'] as service,
min("timestamp") as data_start,
max("timestamp") as data_end,
sum(amount * "timeprecision") AS service_usage_memory_byte_seconds
FROM {| dataSourceTableName .Report.Inputs.KnativeServiceMemoryUsageDataSource |}
WHERE "timestamp" >= timestamp '{| default .Report.ReportingStart .Report.Inputs.ReportingStart | prestoTimestamp |}'
AND "timestamp" < timestamp '{| default .Report.ReportingEnd .Report.Inputs.ReportingEnd | prestoTimestamp |}'
GROUP BY labels['namespace'],labels['label_serving_knative_dev_service']
6.6.3.3. Knative Serving 미터링을 위한 쿼리 적용 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 입력하여
ReportQuery를 적용합니다.$ oc apply -f <query-name>.yaml명령 예
$ oc apply -f knative-service-memory-usage.yaml
6.6.4. Knative Serving에 대한 미터링 보고서 링크 복사링크가 클립보드에 복사되었습니다!
Report 리소스를 생성하여 Knative Serving에 대한 미터링 보고서를 실행할 수 있습니다. 보고서를 실행하기 전에 Report 리소스 내에서 입력 매개변수를 수정하여 보고 기간 시작일 및 종료일을 지정해야 합니다.
YAML 파일
apiVersion: metering.openshift.io/v1
kind: Report
metadata:
name: knative-service-cpu-usage
spec:
reportingStart: '2019-06-01T00:00:00Z'
reportingEnd: '2019-06-30T23:59:59Z'
query: knative-service-cpu-usage
runImmediately: true
6.6.4.1. 미터링 보고서 실행 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 입력하여 보고서를 실행합니다.
$ oc apply -f <report-name>.yml그러면 다음 명령을 입력하여 보고서를 확인할 수 있습니다.
$ oc get report출력 예
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE knative-service-cpu-usage knative-service-cpu-usage Finished 2019-06-30T23:59:59Z 10h