On OpenShift Container Platform 4 clusters, metering can be installed through OperatorHub. If you are using an earlier version of OpenShift Container Platform or a Kubernetes cluster without OpenShift, use the upstream documentation to install, configure, and use metering.

To get started installing metering, first install the Metering Operator from OperatorHub. Next, configure your instance of metering by creating a CustomResource, referred to here as your MeteringConfig. The installation process creates a default MeteringConfig that you can modify using the examples in the documentation. After creating your MeteringConfig, install the metering stack. Last, verify your installation.

Installing the Metering Operator

To install the Metering Operator first create an openshift-metering namespace, and then install the Metering Operator from OperatorHub.

Procedure
  1. In the OpenShift Container Platform web console, click AdministrationNamespacesCreate Namespace.

  2. Set the name to openshift-metering. No other namespace is supported. Label the namespace with openshift.io/cluster-monitoring=true, and click Create.

  3. Next, click OperatorsOperatorHub, and filter for metering to find the Metering Operator.

  4. Click the Metering card, review the package description, and then click Install.

  5. On the Create Operator Subscription screen, select the openshift-metering namespace you created above. Specify your update channel and approval strategy, then click Subscribe to install metering.

  6. On the Installed Operators screen the Status displays InstallSucceeded when metering has finished installing. Click the name of the operator in the first column to view the Operator Details page.

It may take a few minutes for the metering operator to appear.

From the Operator Details page you can create different resources related to metering. To complete your installation create a MeteringConfig resource to configure metering and install the components of the metering stack.

Installing the Metering stack

After adding the Metering Operator to your cluster you can install the components of metering by installing the metering stack.

Prerequisites

There can only be one MeteringConfig resource in the openshift-metering namespace. Any other configuration is not supported.

Procedure
  1. From the web console, ensure you are on the Operator Details page for the Metering Operator in the openshift-metering project. You can navigate to this page by clicking OperatorsInstalled Operators, then selecting the Metering Operator.

  2. Under Provided APIs, click Create Instance on the Metering Configuration card. This opens a YAML editor with the default MeteringConfig file where you can define your configuration.

    For example configuration files and all supported configuration options, review the configuing metering documentation.

  3. Enter your MeteringConfig into the YAML editor and click Create.

The MeteringConfig resource begins to create the necessary resources for your metering stack. You can now move on to verifying your installation.

Verify Installation

To verify your metering installation you can check that all the required Pods have been created, and check that your report data sources are beginning to import data.

Procedure
  1. Navigate to WorkloadsPods in the metering namespace and verify that Pods are being created. This can take several minutes after installing the metering stack.

    You can run the same check using the oc CLI :

    $ oc -n openshift-metering get pods
    NAME                                  READY   STATUS              RESTARTS   AGE
    hive-metastore-0                      1/2     Running             0          52s
    hive-server-0                         2/3     Running             0          52s
    metering-operator-68dd64cfb6-pxh8v    2/2     Running             0          2m49s
    presto-coordinator-0                  2/2     Running             0          31s
    reporting-operator-56c6c878fb-2zbhp   0/2     ContainerCreating   0          4s
  2. Continue to check your Pods until they show Ready. This can take several minutes. Many Pods rely on other components to function before they themselves can be considered ready. Some Pods may restart if other Pods take too long to start, this is okay and can be expected during installation.

    Using the oc CLI, the same check shows output similar to the following:

    $ oc -n openshift-metering get pods
    NAME                                  READY   STATUS    RESTARTS   AGE
    hive-metastore-0                      2/2     Running   0          3m28s
    hive-server-0                         3/3     Running   0          3m28s
    metering-operator-68dd64cfb6-2k7d9    2/2     Running   0          5m17s
    presto-coordinator-0                  2/2     Running   0          3m9s
    reporting-operator-5588964bf8-x2tkn   2/2     Running   0          2m40s
  3. Next, use the oc CLI to verify that the ReportDataSources are beginning to import data, indicated by a valid timestamp in the EARLIEST METRIC column (this may take a few minutes). We filter out the "-raw" ReportDataSources which do not import data:

    $ oc get reportdatasources -n openshift-metering | grep -v raw
    NAME                                         EARLIEST METRIC        NEWEST METRIC          IMPORT START           IMPORT END             LAST IMPORT TIME       AGE
    node-allocatable-cpu-cores                   2019-08-05T16:52:00Z   2019-08-05T18:52:00Z   2019-08-05T16:52:00Z   2019-08-05T18:52:00Z   2019-08-05T18:54:45Z   9m50s
    node-allocatable-memory-bytes                2019-08-05T16:51:00Z   2019-08-05T18:51:00Z   2019-08-05T16:51:00Z   2019-08-05T18:51:00Z   2019-08-05T18:54:45Z   9m50s
    node-capacity-cpu-cores                      2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T18:54:39Z   9m50s
    node-capacity-memory-bytes                   2019-08-05T16:52:00Z   2019-08-05T18:41:00Z   2019-08-05T16:52:00Z   2019-08-05T18:41:00Z   2019-08-05T18:54:44Z   9m50s
    persistentvolumeclaim-capacity-bytes         2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T18:54:43Z   9m50s
    persistentvolumeclaim-phase                  2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T16:51:00Z   2019-08-05T18:29:00Z   2019-08-05T18:54:28Z   9m50s
    persistentvolumeclaim-request-bytes          2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T18:54:34Z   9m50s
    persistentvolumeclaim-usage-bytes            2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T18:54:36Z   9m49s
    pod-limit-cpu-cores                          2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T16:52:00Z   2019-08-05T18:30:00Z   2019-08-05T18:54:26Z   9m49s
    pod-limit-memory-bytes                       2019-08-05T16:51:00Z   2019-08-05T18:40:00Z   2019-08-05T16:51:00Z   2019-08-05T18:40:00Z   2019-08-05T18:54:30Z   9m49s
    pod-persistentvolumeclaim-request-info       2019-08-05T16:51:00Z   2019-08-05T18:40:00Z   2019-08-05T16:51:00Z   2019-08-05T18:40:00Z   2019-08-05T18:54:37Z   9m49s
    pod-request-cpu-cores                        2019-08-05T16:51:00Z   2019-08-05T18:18:00Z   2019-08-05T16:51:00Z   2019-08-05T18:18:00Z   2019-08-05T18:54:24Z   9m49s
    pod-request-memory-bytes                     2019-08-05T16:52:00Z   2019-08-05T18:08:00Z   2019-08-05T16:52:00Z   2019-08-05T18:08:00Z   2019-08-05T18:54:32Z   9m49s
    pod-usage-cpu-cores                          2019-08-05T16:52:00Z   2019-08-05T17:57:00Z   2019-08-05T16:52:00Z   2019-08-05T17:57:00Z   2019-08-05T18:54:10Z   9m49s
    pod-usage-memory-bytes                       2019-08-05T16:52:00Z   2019-08-05T18:08:00Z   2019-08-05T16:52:00Z   2019-08-05T18:08:00Z   2019-08-05T18:54:20Z   9m49s

After all Pods are ready and you have verified that data is being imported, you can begin using metering to collect data and report on your cluster.