IBM Cloud Docs
IBM Cloud® Object Storage のメトリックの構成

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 バケットでのメトリックの構成 (レガシー)

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) でレガシー・メトリックから推奨メトリックに移行するためのパッチの例

  1. IBM Cloud コンソールのリソース・リストから、推奨されるメトリック・モニター構成にアップグレードするバケットを含むサービス・インスタンスを選択します。 これにより、 Object Storage ・コンソールが表示されます。
  2. アップグレード対象のバケットを選択します。
  3. 「構成」タブにナビゲートします。
  4. 拡張構成セクションまでスクロールダウンし、メトリック・モニター用の構成パネルを見つけます。
  5. パネルの右上隅をクリックし、「アップグレード」を選択します。
  6. このバケットのメトリック・モニターをアップグレードすることを確認してください。

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に固有の例について説明します。

グローバル属性

以下の属性は、上記のすべてのメトリックをセグメント化するために使用できます。

表 4: IBM グローバル属性
属性 属性名 属性の説明
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 つ以上の属性のセグメンテーションに使用できます。 セグメンテーションのオプションについては、個々のメトリックを参照してください。

表 5: COS 固有の属性
属性 属性名 属性の説明
IBM COS Bucket storage class ibm_cos_bucket_storage_class バケットのストレージ・クラス
Service instance ibm_service_instance サービス・インスタンス・セグメントは、メトリックが関連付けられているインスタンスのガイドを識別します。