Installing Metrics Provider
Metrics Provider transmits metrics of Managed Service for Kubernetes cluster objects to monitoring systems and automatic scaling systems. You can also transmit metrics in the opposite direction. For example, cluster objects can receive metrics from Yandex Monitoring.
The provider converts a request to collect external metrics from a Managed Service for Kubernetes cluster object into the required Monitoring format, and also performs the reverse conversion: from Monitoring to the cluster object.
Getting started
-
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the
yc config set folder-id <folder_ID>command. You can also set a different folder for any specific command using the--folder-nameor--folder-idparameter. -
Create a service account with the
monitoring.viewerrole. -
Create an authorized access key for the service account in JSON format and save it to the
sa-key.jsonfile:yc iam key create \ --service-account-name=<service_account_name> \ --output=sa-key.json -
Make sure the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If a rule is missing, add it.
Warning
The configuration of security groups determines performance and availability of the cluster and the services and applications running in it.
Installation from Yandex Cloud Marketplace
- Navigate to the folder dashboard and select Managed Service for Kubernetes.
- Click the name of the Managed Service for Kubernetes cluster you need and select the Marketplace tab.
- Under Application available for installation, select Metrics Provider and click Go to install.
- Configure the application:
-
Namespace: Create a new namespace, e.g.,
metrics-provider-space. If you leave the default namespace, Metrics Provider may work incorrectly. -
Application name: Specify the application name.
-
Folder ID: Specify the ID of the folder where Metrics Provider will run.
-
Time window: Specify the time window to collect metrics over (in
DdHhMmSsformat, e.g.,5d10h30m20s). -
Disable downsampling: Select this option not to use a data downsampling function. This is an optional setting.
-
Aggregation function: Select the data aggregation function. This is an optional setting. The default value is
AVG. -
Data filling: Optionally, configure filling in missing data:
NULL: Returnsnullas the metric value, andtimestampas the timestamp value. This is a default value.NONE: Returns no values.PREVIOUS: Returns the value from the previous data point.
-
Maximum number of points: Specify the maximum number of points to return in a request response. This is an optional setting. The value of this parameter must be greater than
10. -
Downsampling time window: Specify a time window (grid) in milliseconds. This is an optional setting. It is used for downsampling: points inside the window are merged into a single one using the aggregation function. The value of this parameter must be greater than
0.Note
Select either Maximum number of points or Decimation time window. Leave these fields blank not to use either setting. For more information, see this API guide.
-
Secret Key: Copy and paste the contents of the
sa-key.jsonfile or create a new service account access key. The service account must have themonitoring.viewerrole.
-
- Click Install.
- Wait for the application to change its status to
Deployed.
Installation using a Helm chart
-
Install Helm
v3.8.0 or higher. -
Install kubect
and configure it to work with the new cluster. -
Add a repository named
metric-provider:cat sa-key.json | helm registry login cr.yandex --username 'json_key' --password-stdin && \ helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/metric-provider/chart/metric-provider \ --version 0.1.13 \ --untarIf you set
namespaceto the default namespace, Metrics Provider may work incorrectly. We recommend specifying a value different from all the existing namespaces, e.g.,metrics-provider-space.Note
If you are using a Helm version below 3.8.0, add the
export HELM_EXPERIMENTAL_OCI=1 && \string at the beginning of the command to enable Open Container Initiative (OCI) support in the Helm client. -
Install and set up Metrics Provider:
helm install \ --namespace <namespace> \ --create-namespace \ --set yandexMetrics.folderId=<folder_ID> \ --set window=<time_window> \ --set-file yandexMetrics.token.serviceAccountJson=<path_to_file_with_service_account_authorized_key> \ --set yandexMetrics.downsampling.gridAggregation=<aggregation_function> \ --set yandexMetrics.downsampling.gapFilling=<data_filling> \ --set yandexMetrics.downsampling.maxPoints=<maximum_number_of_points> \ --set yandexMetrics.downsampling.gridInterval=<downsampling_time_window> \ --set yandexMetrics.downsampling.disabled=<data_downsampling_mode> \ metric-provider ./metric-provider/The following parameters are required:
--namespace: Namespace where the provider will be deployed.yandexMetrics.folderId: ID of the folder where the provider will run.window: Specify the time window to collect metrics over (inDdHhMmSsformat, e.g.,5d10h30m20s).yandexMetrics.token.serviceAccountJson: Path to the file with the authorized key of the service account with themonitoring.viewerrole.
Downsampling parameters. For the provider to work, you need to select at least one of the parameters below:
-
yandexMetrics.downsampling.gridAggregation: Data aggregation function. The default value isAVG. -
yandexMetrics.downsampling.gapFilling: Settings for filling in missing data:NULL: Returnsnullas the metric value, andtimestampas the timestamp value.NONE: Returns no values.PREVIOUS: Returns the value from the previous data point.
-
yandexMetrics.downsampling.maxPoints: Maximum number of points to receive in a request response. The value of this parameter must be greater than10. -
yandexMetrics.downsampling.gridInterval: Time window (grid) in milliseconds. It is used for downsampling: points inside the window are merged into a single one using the aggregation function. The value of this parameter must be greater than0. -
yandexMetrics.downsampling.disabled: Disable data downsampling; eithertrueorfalse.Note
Use only one of these parameters:
yandexMetrics.downsampling.maxPoints,yandexMetrics.downsampling.gridInterval, oryandexMetrics.downsampling.disabled. For more information about downsampling parameters, see this API guide.