IBM Cloud® Object Storage 에 대한 메트릭 구성
IBM Cloud® Monitoring 서비스를 사용하여 IBM Cloud® Object Storage 데이터를 모니터하십시오. IBM Cloud Monitoring 은 클라우드 네이티브 관리 시스템입니다. COS 버킷에서 생성된 메트릭은 IBM Monitoring에서 빌드된 대시보드에 표시될 수 있습니다. 모니터링 의 문서는 포괄적인 대시보드를 사용하는 방법을 안내할 수 있습니다. 또한 메트릭 경보가 트리거되는 조건을 지정 하여 사용자 정의 임계값이 초과될 때 알림을 설정하십시오.
버킷에서 메트릭 모니터링이 사용으로 설정된 경우 이러한 메트릭을 캡처하는 기본 대상 서비스는 IBM Cloud Monitoring 입니다. COS Service Integration에 지정된 대로 버킷 위치에 해당하는 수신 위치에 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 메트릭 세부사항 섹션을 참조하십시오.
이 기능은 현재 Satellite 용 Object Storage 에서 지원되지 않습니다.
이 기능은 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 Metrics Routing 시작하기 를 참조하십시오.
IBM Cloud® Object Storage 버킷에서 메트릭 구성 (권장)
버킷 프로비저닝 시 또는 버킷 작성 후 버킷 구성을 업데이트하여 IBM Cloud® Object Storage 버킷에서 메트릭 추적을 사용으로 설정하십시오. 메트릭 모니터링은 사용으로 설정한 후 생성된 IBM Cloud® Object Storage 메트릭에만 적용됩니다.
추적에 사용 가능한 사용량 및 요청 메트릭의 전체 목록을 보려면 IBM Cloud® Object Storage 메트릭 세부사항 을 참조하십시오.
IBM Cloud® Object Storage 자원 구성 API 를 사용하여 버킷에 대한 이러한 메트릭의 추적을 구성하십시오.
메트릭 추적이 사용으로 설정되면 버킷의 위치를 기반으로 모든 메트릭이 IBM Cloud 메트릭 라우터의 기본 수신 위치로 전송됩니다. 이 기본 맵핑을 보려면 IBM Cloud® Object Storage 서비스 통합 을 참조하십시오. 메트릭 라우터 규칙을 사용하여 버킷 위치 이외의 위치 또는 다른 대상 서비스로 메트릭을 라우팅합니다. 자세한 정보는 라우트 관리 를 참조하십시오.
IBM Cloud® Object Storage 에 대한 메트릭을 구성하는 방법 (권장)
이 주제의 맨 위에 있는 UI, API 또는 Terraform탭을 선택하여 버킷에서 사용량 및 요청 메트릭을 모두 추적하도록 메트릭 모니터링을 구성하는 방법을 보여주는 예제를 표시하십시오.
버킷에서 메트릭 모니터링을 구성하는 방법에 대한 UI 예제
- IBM Cloud 콘솔 리소스 목록 에서 메트릭 모니터링 추가에 관심이 있는 버킷을 포함하는 서비스 인스턴스를 선택하십시오. 그러면 Object Storage 콘솔이 표시됩니다.
- 모니터링을 사용으로 설정할 버킷을 선택하십시오.
- 구성 탭으로 이동하십시오.
- 고급 구성 섹션으로 아래로 스크롤하여 이 버킷에 대해 모니터할 메트릭을 전환하십시오.
- 몇 분 후에 모든 활동이 IBM Cloud Monitoring 웹 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을 사용으로 설정하십시오. CRN을 지정하여 COS 메트릭에 대한 라우트를 정의하십시오.
IBM Cloud Metrics Routing은 고객이 플랫폼 관찰 가능성 데이터의 라우팅을 관리하는 표준화된 방법입니다. IBM Cloud® Object Storage 과 같은 서비스 특정 라우팅 구성은 더 이상 사용되지 않습니다.
고객은 CRN을 사용하는 이러한 레거시 라우팅 구성 (아래의 업그레이드 섹션에 대한 링크로 작성) 을 제거하고 대신 IBM Metrics Router 서비스를 사용하여 메트릭을 다른 위치로 라우팅하는 것이 좋습니다.
IBM Cloud® Object Storage 은 기본 위치와 다른 CRN이 지정된 레거시 구성을 계속 지원합니다.
레거시에서 COS 버킷의 권장 메트릭 모니터링으로 업그레이드:
자원 구성 API를 사용하여 레거시 구성에서 업그레이드하려면 대상 메트릭 모니터링 인스턴스 CRN을 제거하십시오. 이제 COS 서비스 통합 에 설명된 대로 메트릭이 기본 메트릭 라우터 수신 위치로 라우팅됩니다. 이 위치에서 모니터링 인스턴스를 프로비저닝하거나 업그레이드하기 전에 라우팅 규칙을 정의하여 메트릭 모니터링에 인터럽트가 없는지 확인하십시오.
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_bytesibm_cos_bucket_object_countibm_cos_bucket_hard_quota_bytes
요청 지표
여러 HTTP 요청 클래스에 대한 집계를 보고하는 메트릭이 있습니다.
ibm_cos_bucket_all_requestsibm_cos_bucket_get_requestsibm_cos_bucket_put_requestsibm_cos_bucket_delete_requestsibm_cos_bucket_post_requestsibm_cos_bucket_list_requestsibm_cos_bucket_head_requests
서버 측 (5xx) 오류가 발생한 경우에도 오류가 수집됩니다.
ibm_cos_bucket_4xx_errorsibm_cos_bucket_5xx_errors
네트워크 유형별로 전송된 최소, 최대 및 평균 바이트가 보고됩니다.
ibm_cos_bucket_bytes_download_public_minibm_cos_bucket_bytes_download_public_maxibm_cos_bucket_bytes_download_public_avgibm_cos_bucket_bytes_download_private_minibm_cos_bucket_bytes_download_private_maxibm_cos_bucket_bytes_download_private_avgibm_cos_bucket_bytes_download_direct_minibm_cos_bucket_bytes_download_direct_maxibm_cos_bucket_bytes_download_direct_avgibm_cos_bucket_bytes_upload_public_minibm_cos_bucket_bytes_upload_public_maxibm_cos_bucket_bytes_upload_public_avgibm_cos_bucket_bytes_upload_private_minibm_cos_bucket_bytes_upload_private_maxibm_cos_bucket_bytes_upload_private_avgibm_cos_bucket_bytes_upload_direct_minibm_cos_bucket_bytes_upload_direct_maxibm_cos_bucket_bytes_upload_direct_avg
요청에 대한 대기 시간 메트릭 (첫 번째 바이트 및 일반) 은 요청 유형별로 구분됩니다.
ibm_cos_bucket_first_byte_latency_read_minibm_cos_bucket_first_byte_latency_read_maxibm_cos_bucket_first_byte_latency_read_avgibm_cos_bucket_first_byte_latency_write_minibm_cos_bucket_first_byte_latency_write_maxibm_cos_bucket_first_byte_latency_write_avgibm_cos_bucket_first_byte_latency_misc_minibm_cos_bucket_first_byte_latency_misc_maxibm_cos_bucket_first_byte_latency_misc_avgibm_cos_bucket_request_latency_read_minibm_cos_bucket_request_latency_read_maxibm_cos_bucket_request_latency_read_avgibm_cos_bucket_request_latency_write_minibm_cos_bucket_request_latency_write_maxibm_cos_bucket_request_latency_write_avgibm_cos_bucket_request_latency_misc_minibm_cos_bucket_request_latency_misc_maxibm_cos_bucket_request_latency_misc_avg
모든 메트릭은 float64 숫자 값으로 보고됩니다.
세그먼트화를 위한 속성
속성별로 결과를 필터링할 수 있습니다. 이 안내서에서는 몇 가지 일반적인 예와 IBM Cloud Object Storage에 특정한 예를 살펴봅니다.
글로벌 속성
다음 속성은 위에 나열된 모든 메트릭을 세그먼트화하는 데 사용할 수 있습니다.
| 속성 | 속성 이름 | 속성 설명 |
|---|---|---|
Cloud Type |
ibm_ctype |
공용, 전용 또는 로컬 |
Location |
ibm_location |
모니터링되는 리소스의 위치입니다. 교차 지역, 지역 또는 단일 사이트 버킷일 수 있습니다. |
Resource |
ibm_resource |
COS 버킷 이름 |
Resource Type |
ibm_resource_type |
COS 버킷 |
Scope |
ibm_scope |
범위는 이 메트릭과 연관된 계정입니다. |
Service name |
ibm_service_name |
클라우드 오브젝트 스토리지 |
추가 속성
다음 속성은 위의 참조에 설명된 대로 하나 이상의 속성을 분할하는 데 사용할 수 있습니다. 분석 방식 옵션의 개별 메트릭을 참조하십시오.
| 속성 | 속성 이름 | 속성 설명 |
|---|---|---|
IBM COS Bucket storage class |
ibm_cos_bucket_storage_class |
버킷의 스토리지 클래스 |
Service instance |
ibm_service_instance |
서비스 인스턴스 세그먼트는 메트릭이 연관된 인스턴스의 안내서를 식별합니다. |