[typescript] 타입스크립트와 GCP의 Cloud Monitoring와의 연동 방법

GCP의 Cloud Monitoring은 애플리케이션의 성능, 가용성, 및 기타 지표를 모니터링하기 위한 강력한 도구입니다. 타입스크립트 애플리케이션을 개발하는 경우, 이러한 지표들을 Cloud Monitoring과 연동하여 모니터링할 수 있습니다. 이 포스트에서는 타입스크립트 애플리케이션을 GCP의 Cloud Monitoring과 어떻게 연동하는지에 대해 알아보겠습니다.

1. GCP 프로젝트 설정

먼저, GCP 콘솔에서 애플리케이션의 모니터링을 위한 새로운 프로젝트를 생성합니다. 그런 다음, 해당 프로젝트에 Cloud Monitoring API와 연결된 서비스 계정을 생성하여 인증 및 권한 부여를 수행합니다.

2. 타입스크립트 애플리케이션 설정

타입스크립트 애플리케이션에는 @google-cloud/monitoring 라이브러리를 사용하여 Cloud Monitoring과 통신하는 기능을 추가해야 합니다. 먼저, 프로젝트에 해당 라이브러리를 추가하고, 서비스 계정의 인증 정보를 사용하여 클라이언트를 만들어야 합니다.

import { MetricServiceClient } from '@google-cloud/monitoring';

const projectId = 'your-project-id';
const client = new MetricServiceClient({
  keyFilename: 'path-to-service-account-key.json',
  projectId,
});

3. 사용자 정의 메트릭 생성

Cloud Monitoring에서 지표를 표시하려면 해당 지표들을 먼저 정의해야 합니다. 아래의 코드는 새로운 사용자 정의 메트릭을 생성하는 예시입니다.

async function createCustomMetric() {
  const request = {
    name: client.projectPath(projectId),
    metric: {
      type: 'custom.googleapis.com/my_custom_metric',
      labels: {
        location: 'global',
      },
      valueType: 'INT64',
      unit: 'items',
      description: 'My custom metric',
    },
  };

  const [metric] = await client.createMetricDescriptor(request);
  console.log(`Created custom metric: ${metric.name}`);
}

createCustomMetric().catch(console.error);

4. 메트릭 데이터 전송

애플리케이션에서 수집한 데이터를 Cloud Monitoring으로 전송하여 시각화 및 분석할 수 있습니다. 아래의 코드는 지정된 사용자 정의 메트릭에 데이터 포인트를 추가하는 예시입니다.

async function writeTimeSeriesData() {
  const request = {
    name: client.projectPath(projectId),
    timeSeries: [
      {
        metric: {
          type: 'custom.googleapis.com/my_custom_metric',
          labels: {
            location: 'global',
          },
        },
        resource: {
          type: 'global',
          labels: {
            project_id: projectId,
          },
        },
        points: [
          {
            interval: {
              endTime: {
                seconds: Date.now() / 1000,
              },
            },
            value: {
              int64Value: 123,
            },
          },
        ],
      },
    ],
  };

  await client.createTimeSeries(request);
  console.log('Added time series data');
}

writeTimeSeriesData().catch(console.error);

5. Cloud Monitoring 대시보드 설정

GCP 콘솔에서 Cloud Monitoring 대시보드를 설정하여 사용자 정의 메트릭의 시각적인 표현을 생성할 수 있습니다. 이를 통해 애플리케이션의 성능 및 상태를 시각적으로 모니터링할 수 있습니다.

이제 타입스크립트 애플리케이션과 GCP의 Cloud Monitoring을 연동하는 방법에 대해 알아보았습니다. 이를 통해 애플리케이션의 성능 및 상태를 쉽게 모니터링할 수 있게 되었습니다.

참고 자료