IBM Cloud® Object Storage のメトリックの構成
IBM Cloud® Monitoring サービスを使用して、 IBM Cloud® Object Storage データをモニターします。 IBM Cloud Monitoring は、クラウド・ネイティブ管理システムです。 COS バケットによって生成されるメトリックは、 IBM Monitoring に組み込まれたダッシュボードに表示できます。 Monitoring の資料では、包括的なダッシュボードの使用方法について説明しています。 さらに、カスタムしきい値を超えた場合の通知を設定するために、 メトリック・アラートがトリガーされる条件を指定します。
バケットでメトリック・モニタリングが有効になっている場合、これらのメトリックをキャプチャーするデフォルトのターゲット・サービスは IBM Cloud Monitoring です。 COS サービス統合で指定されているバケット・ロケーションに対応する受信ロケーションに、 IBM Cloud Monitoring のプラットフォーム・インスタンスがあることを確認します。
あるいは、 IBM Cloud Metrics Routing ルールを使用して、バケット・ロケーション以外のロケーションにある他のターゲット・サービスまたは IBM Cloud Monitoring インスタンスにメトリックを送信します。
IBM Cloud® Object Storage リソース構成 API を使用するか、UI を直接使用して、バケットでのメトリック・モニタリングを有効にします。 これは、バケットのプロビジョニング中に行われるか、後でバケット構成を更新することによって行われます。
IBM COS では、以下のメトリック・タイプでのメトリック・トラッキングの有効化がサポートされています。
- 使用状況メトリック-これらは、合計ストレージ消費量 (バイト単位) など、COS バケットの全体的な使用状況に関連するメトリックです。
- 要求メトリック-メトリックは、バケットに対して行われた特定のタイプの API 要求のカウントを報告します。
IBM Monitoring に送信されるメトリックの完全なリストについては、以下の IBM Cloud® Object Storage メトリックの詳細セクションを参照してください。
この機能は、 Object Storage for Satellite では現在サポートされていません。
この機能は、 SCC モニター をサポートします。
IBM Cloud® Object Storage メトリックは、 IBM Monitoring プラットフォーム・インスタンスでのみ使用できます。 プラットフォーム・インスタンスが最終受け取り場所に存在しない場合は、プラットフォーム・インスタンスが作成されていることを確認してください。
IBM Cloud メトリック・ルーティングを使用したルーティング・メトリック
IBM Cloud® Metrics Routing を使用して、 IBM Cloud® Object Storage バケットのメトリックを、バケットの場所または他のターゲット・サービスとは異なる場所にルーティングします。 プラットフォーム・サービスであるメトリック・ルーティングを使用して、メトリック・データのルーティング先を定義するターゲットと経路を管理できます。
IBM Cloud® Object Storage バケットでモニターを有効にすると、 COS サービス統合 で定義されているデフォルトの受信ロケーションにメトリックが送信されます。 メトリックが確実に受信されるようにするには、このロケーションに IBM Monitoring のインスタンスがあるか、モニター・インスタンスを使用して別のロケーションへのルーティング・ルールを構成する必要があります。
詳しくは、 IBM Cloud メトリック・ルーティングの概要 を参照してください。
IBM Cloud® Object Storage バケットでのメトリックの構成 (推奨)
バケットのプロビジョニング時に、またはバケットの作成後にバケット構成を更新することによって、 IBM Cloud® Object Storage バケットでメトリック・トラッキングを有効にします。 メトリック・モニタリングは、有効化後に作成された IBM Cloud® Object Storage メトリックにのみ適用されます。
トラッキングに使用可能な使用量および要求のメトリックの完全なリストについては、 IBM Cloud® Object Storage メトリックの詳細 を参照してください。
IBM Cloud® Object Storage リソース構成 API を使用して、バケットのこれらのメトリックのトラッキングを構成します。
メトリック・トラッキングが有効になっている場合、すべてのメトリックは、バケットのロケーションに基づいて、 IBM Cloud Metrics Router のデフォルトの受信ロケーションに送信されます。 このデフォルト・マッピングを確認するには、 IBM Cloud® Object Storage Service Integration を参照してください。 メトリック・ルーター・ルールを使用して、メトリックをバケット・ロケーション以外のロケーションまたは別のターゲット・サービスにルーティングします。 詳しくは、「 経路の管理 」を参照してください。
IBM Cloud® Object Storage のメトリックの構成方法 (推奨)
このトピックの上部にある「UI」、「API」、または「Terraform」タブを選択して、バケットの使用状況と要求の両方のメトリックを追跡するようにメトリック・モニターを構成する方法を示す例を表示します。
バケットでメトリック・モニターを構成する方法を示す UI の例
- IBM Cloud コンソールの リソース・リスト から、メトリック・モニターを追加するバケットが含まれているサービス・インスタンスを選択します。 これにより、 Object Storage ・コンソールが表示されます。
- モニターを有効にするバケットを選択します。
- 「構成」タブにナビゲートします。
- 拡張構成セクションまでスクロールダウンし、このバケットについてモニターするメトリックをオンに切り替えます。
- 数分後に、すべてのアクティビティーが IBM Cloud Monitoring Web UI に表示されます。
例
java sdk
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.ResourceConfiguration;
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.model.BucketPatch;
import com.ibm.cloud.sdk.core.security.IamAuthenticator;
public class MetricsMonitoringExample {
private static final String BUCKET_NAME = <BUCKET_NAME>;
private static final String API_KEY = <API_KEY>;
public static void main(String[] args) {
IamAuthenticator authenticator = new IamAuthenticator.Builder()
.apiKey(API_KEY)
.build();
ResourceConfiguration RC_CLIENT = new ResourceConfiguration("resource-configuration", authenticator);
MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring().Builder()
.requestMetricsEnabled(true)
.usageMetricsEnabled(true)
.build();
BucketPatch bucketPatch = new BucketPatch.Builder().metricsMonitoring(metricsMonitoringConfig).build();
UpdateBucketConfigOptions update = new UpdateBucketConfigOptions
.Builder(BUCKET_NAME)
.bucketPatch(bucketPatch.asPatch())
.build();
RC_CLIENT.updateBucketConfig(update).execute();
GetBucketConfigOptions bucketOptions = new GetBucketConfigOptions.Builder(BUCKET_NAME).build();
Bucket bucket = RC_CLIENT.getBucketConfig(bucketOptions).execute().getResult();
MetricsMonitoring metricsMonitoringResponse = bucket.getMetricsMonitoring();
System.out.println("Usage Metrics Enabled : " + metricsMonitoringResponse.usageMetricsEnabled());
System.out.println("Request Metrics Enabled : " + metricsMonitoringResponse.requestMetricsEnabled());
}
}
NodeJS SDK
const ResourceConfigurationV1 = require('ibm-cos-sdk-config/resource-configuration/v1');
IamAuthenticator = require('ibm-cos-sdk-config/auth');
var apiKey = "<API_KEY>"
var bucketName = "<BUCKET_NAME>"
authenticator = new IamAuthenticator({apikey: apiKey})
rcConfig = {authenticator: authenticator}
const client = new ResourceConfigurationV1(rcConfig);
function addMM() {
console.log('Updating bucket metadata...');
var params = {
bucket: bucketName,
metricsMonitoring: {
"request_metrics_enabled": true,
"usage_metrics_enabled": true
}
};
client.updateBucketConfig(params, function (err, response) {
if (err) {
console.log("ERROR: " + err);
} else {
console.log(response.result);
}
});
}
addMM()
Python SDK
from ibm_cos_sdk_config.resource_configuration_v1 import ResourceConfigurationV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
api_key = "<API_KEY>"
bucket_name = "<BUCKET_NAME>"
authenticator = IAMAuthenticator(apikey=api_key)
client = ResourceConfigurationV1(authenticator=authenticator)
metrics_monitoring_config = {'metrics_monitoring':
{
'request_metrics_enabled':True,
'usage_metrics_enabled':True
}
}
client.update_bucket_config(bucket_name, bucket_patch=metrics_monitoring_config
go sdk
import (
"github.com/IBM/go-sdk-core/core"
rc "github.com/IBM/ibm-cos-sdk-go-config/v2/resourceconfigurationv1"
)
apiKey := "<ApiKey>"
bucketName := "<BucketName>"
authenticator := new(core.IamAuthenticator)
authenticator.ApiKey = apiKey
optionsRC := new(rc.ResourceConfigurationV1Options)
optionsRC.Authenticator = authenticator
rcClient, _ := rc.NewResourceConfigurationV1(optionsRC)
patchNameMap := make(map[string]interface{})
patchNameMap["metrics_monitoring"] = &rc.MetricsMonitoring{
RequestMetricsEnabled: core.BoolPtr(true),
UsageMetricsEnabled: core.BoolPtr(true)
}
updateBucketConfigOptions := &rc.UpdateBucketConfigOptions{
Bucket: core.StringPtr(bucketName),
BucketPatch: patchNameMap,
}
rcClient.UpdateBucketConfig(updateBucketConfigOptions)
例
resource "ibm_resource_instance" "cos_instance" {
name = "cos-instance"
resource_group_id = data.ibm_resource_group.cos_group.id
service = "cloud-object-storage"
plan = "standard"
location = "global"
}
resource "ibm_cos_bucket" "metric_monitoring_bucket" {
bucket_name = “bucket_name”
resource_instance_id = ibm_resource_instance.cos_instance.id
region_location = “us-south”
storage_class = “standard”
metrics_monitoring {
usage_metrics_enabled = true
request_metrics_enabled = true
}
}
IBM Cloud® Object Storage バケットでのメトリックの構成 (レガシー)
IBM Cloud® Object Storage リソース構成 API でモニター・インスタンスのターゲット CRN を指定して、 IBM Cloud® Object Storage バケットで IBM Metrics Monitoring を有効にします。 COS メトリックの経路を定義するには、CRN を指定します。
IBM Cloud Metrics Routing は、お客様がプラットフォーム可観測性データのルーティングを管理するための標準化された方法です。 IBM Cloud® Object Storage などのサービス固有のルーティング構成は非推奨になります。
お客様は、CRN を使用するこれらの レガシー・ルーティング構成 (以下のアップグレード・セクションへのリンクにします) を削除し、代わりに IBM Metrics Router サービスを使用してメトリックを他のロケーションにルーティングすることをお勧めします。
IBM Cloud® Object Storage は、デフォルトの場所とは異なる CRN が指定されたレガシー構成を引き続きサポートします。
COS バケットでのレガシー・メトリック・モニタリングから推奨メトリック・モニタリングへのアップグレード:
リソース構成 API を使用してレガシー構成からアップグレードするには、ターゲットのメトリック・モニター・インスタンス CRN を削除します。 メトリックは、 COS サービス統合 の説明に従って、デフォルトのメトリック・ルーター受信ロケーションにルーティングされるようになりました。 この場所で Monitoring のインスタンスをプロビジョンするか、アップグレードの前にルーティング・ルールを定義して、メトリック・モニターが中断されないようにしてください。
COS バケットでレガシー・イベント・トラッキング構成から推奨イベント・トラッキング構成に移行するためのパッチの例
このトピックの上部にある「UI」、「API」、または「Terraform」タブを選択すると、パッチの例が表示されます。
COS バケットでレガシー・イベント・トラッキング構成から推奨イベント・トラッキング構成に移行するための UI サンプル・パッチ
IBM Cloud® Object Storage バケット (SDK、RC API、UI、Terraform) でレガシー・メトリックから推奨メトリックに移行するためのパッチの例
- IBM Cloud コンソールのリソース・リストから、推奨されるメトリック・モニター構成にアップグレードするバケットを含むサービス・インスタンスを選択します。 これにより、 Object Storage ・コンソールが表示されます。
- アップグレード対象のバケットを選択します。
- 「構成」タブにナビゲートします。
- 拡張構成セクションまでスクロールダウンし、メトリック・モニター用の構成パネルを見つけます。
- パネルの右上隅をクリックし、「アップグレード」を選択します。
- このバケットのメトリック・モニターをアップグレードすることを確認してください。
例
java sdk
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.ResourceConfiguration;
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.model.BucketPatch;
import com.ibm.cloud.sdk.core.security.IamAuthenticator;
public class MetricsMonitoringExample {
private static final String BUCKET_NAME = <BUCKET_NAME>;
private static final String API_KEY = <API_KEY>;
public static void main(String[] args) {
IamAuthenticator authenticator = new IamAuthenticator.Builder()
.apiKey(API_KEY)
.build();
ResourceConfiguration RC_CLIENT = new ResourceConfiguration("resource-configuration", authenticator);
MetricsMonitoring metricsMonitoringConfig = new MetricsMonitoring().Builder()
.metricsMonitoringCrn(MM_CRN)
.requestMetricsEnabled(true)
.usageMetricsEnabled(true)
.build();
BucketPatch bucketPatch = new BucketPatch.Builder().metricsMonitoring(metricsMonitoringConfig).build();
UpdateBucketConfigOptions update = new UpdateBucketConfigOptions
.Builder(BUCKET_NAME)
.bucketPatch(bucketPatch.asPatch())
.build();
RC_CLIENT.updateBucketConfig(update).execute();
GetBucketConfigOptions bucketOptions = new GetBucketConfigOptions.Builder(BUCKET_NAME).build();
Bucket bucket = RC_CLIENT.getBucketConfig(bucketOptions).execute().getResult();
MetricsMonitoring metricsMonitoringResponse = bucket.getMetricsMonitoring();
System.out.println("Usage Metrics Enabled : " + metricsMonitoringResponse.usageMetricsEnabled());
System.out.println("Request Metrics Enabled : " + metricsMonitoringResponse.requestMetricsEnabled());
}
}
NodeJS SDK
const ResourceConfigurationV1 = require('ibm-cos-sdk-config/resource-configuration/v1');
IamAuthenticator = require('ibm-cos-sdk-config/auth');
var apiKey = "<API_KEY>"
var bucketName = "<BUCKET_NAME>"
authenticator = new IamAuthenticator({apikey: apiKey})
rcConfig = {authenticator: authenticator}
const client = new ResourceConfigurationV1(rcConfig);
function addMM() {
console.log('Updating bucket metadata...');
var params = {
bucket: bucketName,
metricsMonitoring: {
"metrics_monitoring_crn": metricsCrn,
"request_metrics_enabled": true,
"usage_metrics_enabled": true
}
};
client.updateBucketConfig(params, function (err, response) {
if (err) {
console.log("ERROR: " + err);
} else {
console.log(response.result);
}
});
}
addMM()
Python SDK
from ibm_cos_sdk_config.resource_configuration_v1 import ResourceConfigurationV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
api_key = "<API_KEY>"
bucket_name = "<BUCKET_NAME>"
authenticator = IAMAuthenticator(apikey=api_key)
client = ResourceConfigurationV1(authenticator=authenticator)
metrics_monitoring_config = {'metrics_monitoring':
{
'metrics_monitoring_crn': mm_crn,
'request_metrics_enabled':True,
'usage_metrics_enabled':True
}
}
client.update_bucket_config(bucket_name, bucket_patch=metrics_monitoring_config
go sdk
import (
"github.com/IBM/go-sdk-core/core"
rc "github.com/IBM/ibm-cos-sdk-go-config/v2/resourceconfigurationv1"
)
apiKey := "<ApiKey>"
bucketName := "<BucketName>"
authenticator := new(core.IamAuthenticator)
authenticator.ApiKey = apiKey
optionsRC := new(rc.ResourceConfigurationV1Options)
optionsRC.Authenticator = authenticator
rcClient, _ := rc.NewResourceConfigurationV1(optionsRC)
patchNameMap["metrics_monitoring"] = &rc.MetricsMonitoring{
MetricsMonitoringCrn: core.StringPtr(MMCrn),
RequestMetricsEnabled: core.BoolPtr(true),
UsageMetricsEnabled: core.BoolPtr(true)
}
updateBucketConfigOptions := &rc.UpdateBucketConfigOptions{
Bucket: core.StringPtr(bucketName),
BucketPatch: patchNameMap,
}
rcClient.UpdateBucketConfig(updateBucketConfigOptions)
例
resource "ibm_resource_instance" "cos_instance" {
name = "cos-instance"
resource_group_id = data.ibm_resource_group.cos_group.id
service = "cloud-object-storage"
plan = "standard"
location = "global"
}
resource "ibm_cos_bucket" "metric_monitoring_bucket" {
bucket_name = “bucket_name”
resource_instance_id = ibm_resource_instance.cos_instance.id
region_location = “us-south”
storage_class = “standard”
metrics_monitoring {
usage_metrics_enabled = true
request_metrics_enabled = true
metrics_monitoring_crn = "crn:v1:bluemix:public:sysdig-monitor:us-east:a/xxxxxxxxxxxxxxxxxxxxxxxxx:4xxxxxxxx-xxxx-xxxx-xxxx-fxxxxxxxxx4c::"
}
}
Cloud Object Storage メトリックの詳細
使用量メトリック
使用量を追跡する基本メトリックのセットがあります。
ibm_cos_bucket_used_bytes
ibm_cos_bucket_object_count
ibm_cos_bucket_hard_quota_bytes
要求メトリック
さまざまなクラスの HTTP 要求の集約を報告するメトリックがあります。
ibm_cos_bucket_all_requests
ibm_cos_bucket_get_requests
ibm_cos_bucket_put_requests
ibm_cos_bucket_delete_requests
ibm_cos_bucket_post_requests
ibm_cos_bucket_list_requests
ibm_cos_bucket_head_requests
エラーも収集され、サーバー・サイド (5xx) エラーが発生します。
ibm_cos_bucket_4xx_errors
ibm_cos_bucket_5xx_errors
ネットワーク・タイプごとに転送された最小バイト数、最大バイト数、および平均バイト数が報告されます。
ibm_cos_bucket_bytes_download_public_min
ibm_cos_bucket_bytes_download_public_max
ibm_cos_bucket_bytes_download_public_avg
ibm_cos_bucket_bytes_download_private_min
ibm_cos_bucket_bytes_download_private_max
ibm_cos_bucket_bytes_download_private_avg
ibm_cos_bucket_bytes_download_direct_min
ibm_cos_bucket_bytes_download_direct_max
ibm_cos_bucket_bytes_download_direct_avg
ibm_cos_bucket_bytes_upload_public_min
ibm_cos_bucket_bytes_upload_public_max
ibm_cos_bucket_bytes_upload_public_avg
ibm_cos_bucket_bytes_upload_private_min
ibm_cos_bucket_bytes_upload_private_max
ibm_cos_bucket_bytes_upload_private_avg
ibm_cos_bucket_bytes_upload_direct_min
ibm_cos_bucket_bytes_upload_direct_max
ibm_cos_bucket_bytes_upload_direct_avg
要求の待ち時間メトリック (最初のバイトおよび一般) は、要求タイプ別に分類されます。
ibm_cos_bucket_first_byte_latency_read_min
ibm_cos_bucket_first_byte_latency_read_max
ibm_cos_bucket_first_byte_latency_read_avg
ibm_cos_bucket_first_byte_latency_write_min
ibm_cos_bucket_first_byte_latency_write_max
ibm_cos_bucket_first_byte_latency_write_avg
ibm_cos_bucket_first_byte_latency_misc_min
ibm_cos_bucket_first_byte_latency_misc_max
ibm_cos_bucket_first_byte_latency_misc_avg
ibm_cos_bucket_request_latency_read_min
ibm_cos_bucket_request_latency_read_max
ibm_cos_bucket_request_latency_read_avg
ibm_cos_bucket_request_latency_write_min
ibm_cos_bucket_request_latency_write_max
ibm_cos_bucket_request_latency_write_avg
ibm_cos_bucket_request_latency_misc_min
ibm_cos_bucket_request_latency_misc_max
ibm_cos_bucket_request_latency_misc_avg
すべてのメトリックは、 float64
数値として報告されます。
セグメント化のための属性
属性によって結果をフィルターに掛けることができます。 このガイドでは、いくつかの一般的な例と、 IBM Cloud Object Storageに固有の例について説明します。
グローバル属性
以下の属性は、上記のすべてのメトリックをセグメント化するために使用できます。
属性 | 属性名 | 属性の説明 |
---|---|---|
Cloud Type |
ibm_ctype |
パブリック、専用、またはローカル |
Location |
ibm_location |
モニター対象リソースのロケーション。 これは、Cross Region、Regional、または Single Site のバケットにすることができます。 |
Resource |
ibm_resource |
COS バケット名 |
Resource Type |
ibm_resource_type |
COS バケット |
Scope |
ibm_scope |
スコープは、このメトリックに関連付けられたアカウントです。 |
Service name |
ibm_service_name |
クラウド・オブジェクト・ストレージ |
追加属性
以下の属性は、上記のリファレンスに記載した 1 つ以上の属性のセグメンテーションに使用できます。 セグメンテーションのオプションについては、個々のメトリックを参照してください。
属性 | 属性名 | 属性の説明 |
---|---|---|
IBM COS Bucket storage class |
ibm_cos_bucket_storage_class |
バケットのストレージ・クラス |
Service instance |
ibm_service_instance |
サービス・インスタンス・セグメントは、メトリックが関連付けられているインスタンスのガイドを識別します。 |