$ oc project openshift-metering
Review the details about the available options that can be configured for a report and how they function.
Writing a report is the way to process and analyze data using metering.
To write a report, you must define a Report
resource in a YAML file, specify the required parameters, and create it in the openshift-metering
namespace.
Metering is installed.
Change to the openshift-metering
project:
$ oc project openshift-metering
Create a Report
resource as a YAML file:
Create a YAML file with the following content:
apiVersion: metering.openshift.io/v1
kind: Report
metadata:
name: namespace-cpu-request-2019 (2)
namespace: openshift-metering
spec:
reportingStart: '2019-01-01T00:00:00Z'
reportingEnd: '2019-12-30T23:59:59Z'
query: namespace-cpu-request (1)
runImmediately: true (3)
1 | The query specifies the ReportQuery resources used to generate the report. Change this based on what you want to report on. For a list of options, run oc get reportqueries | grep -v raw . |
2 | Use a descriptive name about what the report does for metadata.name . A good name describes the query, and the schedule or period you used. |
3 | Set runImmediately to true for it to run with whatever data is available, or set it to false if you want it to wait for reportingEnd to pass. |
Run the following command to create the Report
resource:
$ oc create -f <file-name>.yaml
report.metering.openshift.io/namespace-cpu-request-2019 created
You can list reports and their Running
status with the following command:
$ oc get reports
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE
namespace-cpu-request-2019 namespace-cpu-request Finished 2019-12-30T23:59:59Z 26s
Viewing a report’s results involves querying the reporting API route and authenticating to the API using your OpenShift Container Platform credentials.
Reports can be retrieved as JSON
, CSV
, or Tabular
formats.
Metering is installed.
To access report results, you must either be a cluster administrator, or you need to be granted access using the report-exporter
role in the openshift-metering
namespace.
Change to the openshift-metering
project:
$ oc project openshift-metering
Query the reporting API for results:
Create a variable for the metering reporting-api
route then get the route:
$ meteringroute="$(oc get routes metering -o jsonpath='{.spec.host}')"
$ echo "$meteringroute"
Get the token of your current user to be used in the request:
$ token="$(oc whoami -t)"
Set reportName
to the name of the report you created:
$ reportName=namespace-cpu-request-2019
Set reportFormat
to one of csv
, json
, or tabular
to specify the output format of the API response:
$ reportFormat=csv
To get the results, use curl
to make a request to the reporting API for your report:
$ curl --insecure -H "Authorization: Bearer ${token}" "https://${meteringroute}/api/v1/reports/get?name=${reportName}&namespace=openshift-metering&format=$reportFormat"
reportName=namespace-cpu-request-2019
and reportFormat=csv
period_start,period_end,namespace,pod_request_cpu_core_seconds
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-apiserver,11745.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-apiserver-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-authentication,522.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-authentication-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-cloud-credential-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-cluster-machine-approver,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-cluster-node-tuning-operator,3385.800000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-cluster-samples-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-cluster-version,522.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-console,522.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-console-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-controller-manager,7830.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-controller-manager-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-dns,34372.800000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-dns-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-etcd,23490.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-image-registry,5993.400000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-ingress,5220.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-ingress-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-kube-apiserver,12528.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-kube-apiserver-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-kube-controller-manager,8613.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-kube-controller-manager-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-machine-api,1305.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-machine-config-operator,9637.800000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-metering,19575.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-monitoring,6256.800000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-network-operator,261.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-sdn,94503.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-service-ca,783.000000
2019-01-01 00:00:00 +0000 UTC,2019-12-30 23:59:59 +0000 UTC,openshift-service-ca-operator,261.000000