Skip to content

mc-observability v0.4.2 monitoring & logging API usage scenarios #232

@kyuengmanKim

Description

@kyuengmanKim

mc-observability Monitoring & Logging API 사용 시나리오

개요

Swagger 문서: mc-observability-swagger

주요 기능

  1. CB-TB를 통해 조회된 VM에 Agent 설치
  2. Agent 설치 상태 조회
  3. Metric 데이터 조회 (MCI 단위 / VM 단위)
  4. Log 데이터 조회

사용 시나리오

1. CB-TB를 통해 조회된 VM에 Agent 설치 [PostVM]

CB-Tumblebug에서 관리하는 VM 목록을 조회하여 모니터링 및 로깅을 위한 Agent를 설치합니다.

API Endpoint: POST /api/o11y/monitoring/{nsId}/{mciId}/vm/{vmId}

Path Parameters:

  • nsId: CB-TB의 Namespace ID
  • mciId: Multi-Cloud Infrastructure ID
  • vmId: Virtual Machine ID

Request Body 예시:

{
  "name": "mcmp-vm",
  "description": "string"
}

Parameters 설명:

  • name: VM의 표시 이름
  • description: VM에 대한 설명

2. Agent 설치 상태 조회 [GetAllVMs]

등록된 VM의 Agent 설치 상태를 조회합니다.

API Endpoint: GET /api/o11y/monitoring/vm

Response Body 예시:

{
  "rs_code": "0000",
  "rs_msg": "success",
  "data": [
    {
      "name": "test01",
      "description": "Created via CB-Tumblebug",
      "vm_id": "vm-1",
      "monitoring_service_status": "ACTIVE",
      "log_service_status": "ACTIVE",
      "ns_id": "test01",
      "mci_id": "test01"
    },
    {
      "name": "test02",
      "description": "Created via CB-Tumblebug",
      "vm_id": "vm-1",
      "monitoring_service_status": "ACTIVE",
      "log_service_status": "ACTIVE",
      "ns_id": "test02",
      "mci_id": "test02"
    }
  ],
  "error_message": ""
}

상태 값 설명:

  • monitoring_service_status, log_service_status:
    • INACTIVE: 설치 중
    • ACTIVE: 설치 완료 및 활성화

참고: Response 일부와 상태 값은 다음 패치에서 업데이트 예정입니다.


3. Metric 조회

수집된 모니터링 Metric 데이터를 조회합니다.

조회 가능한 Metric measurement, field 목록은 링크를 참고하세요.

a. MCI 단위 Metric 조회 [GetMetricsByNsIdAndMciId]

특정 MCI에 속한 모든 VM의 Metric을 조회합니다.

API Endpoint: GET /api/o11y/monitoring/influxdb/metric/{nsId}/{mciId}

Path Parameters:

  • nsId: Namespace ID
  • mciId: Multi-Cloud Infrastructure ID

Request Body 예시:

{
  "measurement": "cpu",
  "range": "5m",
  "group_time": "1m",
  "group_by": [
    "vm_id"
  ],
  "limit": 10,
  "fields": [
    {
      "function": "mean",
      "field": "usage_idle"
    }
  ],
  "conditions": [
    {
      "key": "cpu",
      "value": "cpu-total"
    }
  ]
}

Response Body 예시:

{
  "rs_code": "0000",
  "rs_msg": "success",
  "data": [
    {
      "name": "cpu",
      "columns": [
        "timestamp",
        "usage_idle"
      ],
      "tags": {
        "vm_id": "vm-1",
        "ns_id": "test01",
        "mci_id": "test01"
      },
      "values": [
        [
          "2025-10-17T08:04:00Z",
          99.69969969969922
        ],
        [
          "2025-10-17T08:03:00Z",
          99.74973026310457
        ],
        [
          "2025-10-17T08:02:00Z",
          99.74129389128913
        ],
        [
          "2025-10-17T08:01:00Z",
          99.75804687642622
        ],
        [
          "2025-10-17T08:00:00Z",
          99.69951168820583
        ]
      ]
    }
  ],
  "error_message": ""
}

b. VM 단위 Metric 조회 [GetMetricsByVMId]

특정 VM의 Metric을 조회합니다.

API Endpoint: GET /api/o11y/monitoring/influxdb/metric/{nsId}/{mciId}/{vmId}

Path Parameters:

  • nsId: Namespace ID
  • mciId: Multi-Cloud Infrastructure ID
  • vmId: Virtual Machine ID

Request Body 예시:

{
  "measurement": "cpu",
  "range": "5m",
  "group_time": "1m",
  "group_by": [],
  "limit": 10,
  "fields": [
    {
      "function": "mean",
      "field": "usage_idle"
    }
  ],
  "conditions": [
    {
      "key": "cpu",
      "value": "cpu-total"
    }
  ]
}

Response Body 예시:

{
  "rs_code": "0000",
  "rs_msg": "success",
  "data": [
    {
      "name": "cpu",
      "columns": [
        "timestamp",
        "usage_idle"
      ],
      "tags": {
        "ns_id": "test02",
        "mci_id": "test02",
        "vm_id": "vm-1"
      },
      "values": [
        [
          "2025-10-17T08:05:00Z",
          99.83316649983558
        ],
        [
          "2025-10-17T08:04:00Z",
          99.8248122879443
        ],
        [
          "2025-10-17T08:03:00Z",
          99.85816925069406
        ],
        [
          "2025-10-17T08:02:00Z",
          99.80813587514652
        ],
        [
          "2025-10-17T08:01:00Z",
          99.83311081442164
        ]
      ]
    }
  ],
  "error_message": ""
}

4. Log 조회 [LogRangeQuery]

수집된 로그 데이터를 조회합니다.

API Endpoint: GET /api/o11y/monitoring/log/range

참고: 상세 내용은 곧 업데이트 예정입니다.


추가 정보

관련 CRUD API는 mc-observability Swagger 문서에서 확인할 수 있습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions