이 문서에서는 시계열 데이터라고도 하는 측정항목 데이터를 Monitoring API의 timeSeries.list
메서드를 사용해 읽는 방법을 설명합니다.
timeSeries.list
메서드를 호출하는 방법에는 여러 가지가 있습니다.
- 이 페이지의 프로토콜 탭에서 양식 기반 API 탐색기 사용하기
- 언어별 클라이언트 라이브러리 사용하기
- 측정항목 탐색기 사용하기
측정항목 데이터를 읽는 또 다른 방법은 timeSeries.query
메서드에 명령어를 전송하는 것이며 이 경우 Monitoring Query Language(MQL)가 필요합니다. 이 문서에서는 MQL 또는 timeSeries.query
메서드에 대해 설명하지 않습니다. 이러한 주제에 관한 자세한 내용은 timeSeries.query
를 사용하여 데이터 검색을 참고하세요.
개요
timeSeries.list
메서드를 호출할 때마다 단일 측정항목 유형에서 여러 시계열이 반환될 수 있습니다. 예를 들어 Compute Engine을 사용하는 경우 compute.googleapis.com/instance/cpu/usage_time
측정항목 유형은 각 VM 인스턴스마다 다른 시계열을 가지게 됩니다.
측정항목 및 시계열에 대한 소개는 측정항목, 시계열, 리소스를 참조하세요.
timeSeries.list
메서드에 다음 정보를 제공하여 원하는 시계열 데이터를 지정합니다.
- 측정항목 유형을 지정하는 필터 표현식. 원하는 경우 필터에서 시계열을 생성하는 리소스를 지정하거나 시계열의 특정 라벨에 대한 값을 지정하여 측정항목 시계열의 하위 집합을 선택합니다.
- 반환되는 데이터 양을 제한하는 시간 간격
- 원하는 경우 여러 시계열을 결합하여 데이터의 집계 요약을 생성하는 방법을 지정합니다. 자세한 내용과 예시는 데이터 집계를 참조하세요.
시계열 필터
시계열 필터를 timeSeries.list
메서드에 전달해 가져올 시계열을 지정합니다.
다음은 일반적인 필터 구성요소입니다.
필터에서 단일 측정항목 유형을 지정해야 합니다. 예를 들면 다음과 같습니다.
metric.type = "compute.googleapis.com/instance/cpu/usage_time"
사용자 정의 측정항목을 가져오려면 filter의 metric.type 프리픽스를
custom.googleapis.com
으로 또는 사용된 경우 다른 프리픽스로 변경합니다.external.googleapis.com
이 자주 사용됩니다.필터에서 측정항목의 측정기준 라벨 값을 지정할 수 있습니다. 측정항목 유형에 따라 존재하는 라벨이 달라집니다. 예를 들면 다음과 같습니다.
(metric.label.instance_name = "your-instance-id" OR metric.label.instance_name = "your-other-instance-id")
앞의 표현식에서 실제 측정항목 객체가
labels
를 키로 사용하더라도label
은 올바릅니다.필터에서 특정 모니터링 리소스 유형이 포함된 시계열만 선택할 수 있습니다.
resource.type = "gce_instance"
여러 필터 구성요소는 다음과 같이 단일 시계열 필터로 결합할 수 있습니다.
metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
(metric.label.instance_name = "your-instance-id" OR
metric.label.instance_name = "your-other-instance-id")
모든 측정항목 라벨의 값을 지정하지 않으면 list
메서드가 미지정 라벨의 각 값 조합에 대한 시계열을 반환합니다. 이 메서드는 데이터가 존재하는 시계열만 반환합니다.
시간 간격
API를 사용하여 데이터를 읽을 때는 시작 및 종료 시간을 설정하여 데이터를 검색하려는 시간 간격을 지정합니다.
API는 (start, end]
간격, 즉 시작 시간부터 종료 시간까지의 데이터를 검색합니다.
시작 시간은 종료 시간 이전이어야 합니다. 시작 시간을 종료 시간 이후로 지정하면 API가 오류를 반환합니다.
특정 타임스탬프가 있는 데이터만 검색하려면 시작 시간을 종료 시간과 동일하게 설정하거나 시작 시간을 설정하지 마세요.
시간 형식
시작 및 종료 시간은 RFC 3339 형식의 문자열로 지정해야 합니다. 예를 들면 다음과 같습니다.
2024-03-01T12:34:56+04:00 2024-03-01T12:34:56.992Z
Linux의 date -Iseconds
명령어는 타임스탬프를 생성할 때 유용합니다.
기본 목록 작업
timeSeries.list
메서드는 단순한 원시 데이터를 반환하거나 고도로 처리된 데이터를 반환하는 데 사용할 수 있습니다. 이 섹션에서는 사용 가능한 시계열을 나열하는 방법과 특정 시계열의 값을 가져오는 방법을 보여줍니다.
예: 사용 가능한 시계열 나열
이 예시에서는 사용 가능한 모든 데이터를 반환하지 않고 필터와 일치하는 시계열의 이름과 설명만 나열하는 방법을 보여줍니다.
프로토콜
timeSeries.list
참조 페이지를 엽니다.이 메서드 사용해 보기 라벨이 지정된 창에 다음을 입력합니다.
-
name: 프로젝트 경로를 입력합니다.
projects/PROJECT_ID
-
filter: 측정항목 유형을 지정합니다.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: 종료 시간을 입력합니다.
- interval.startTime: 시작 시간을 입력하고 종료 시간보다 20분 전인지 확인합니다.
표준 매개변수 표시를 클릭하고 fields에 다음을 입력합니다.
timeSeries.metric
-
name: 프로젝트 경로를 입력합니다.
실행을 클릭합니다.
다음은 서로 다른 2가지 VM 인스턴스의 시계열을 보여주는 샘플 출력입니다.
{
"timeSeries": [
{
"metric": {
"labels": {
"instance_name": "your-first-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
},
{
"metric": {
"labels": {
"instance_name": "your-second-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
}
]
}
요청을 curl
명령어, HTTP 요청 또는 JavaScript로 보려면 API 탐색기에서 fullscreen 전체 화면을 클릭합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
문제가 있으면 Monitoring API 문제 해결을 참조하세요.
예: 시계열 데이터 가져오기
이 예에서는 특정 Compute Engine 인스턴스의 20분 간격으로 기록된 CPU 사용률 측정값을 반환합니다. 반환되는 데이터 양은 측정항목의 샘플링 레이트에 따라 다릅니다. CPU 사용률은 1분마다 샘플링되므로 이 쿼리의 결과로 약 20개의 데이터 포인트가 반환됩니다. 한 시계열에 여러 데이터 포인트가 반환되면 API에서 각 시계열의 데이터 포인트를 역시간순으로 반환합니다. 이 포인트 순서는 재정의되지 않습니다.
프로토콜
프로토콜 예시에서는 반환된 데이터를 응답 상자에서 좀 더 관리하기 쉽게 출력을 더 제한합니다.
- 필터 값에서 시계열을 단일 VM 인스턴스로 제한합니다.
- 필드 값에서 측정 시간 및 값만 지정합니다.
이러한 설정은 결과에 반환되는 시계열 데이터의 양을 제한합니다.
timeSeries.list
참조 페이지를 엽니다.이 메서드 사용해 보기 라벨이 지정된 창에 다음을 입력합니다.
-
name: 프로젝트 경로를 입력합니다.
projects/PROJECT_ID
filter: 측정항목 유형을 지정합니다.
metric.type = "compute.googleapis.com/instance/cpu/utilization" AND metric.label.instance_name = "INSTANCE_NAME"
interval.endTime: 종료 시간을 입력합니다.
interval.startTime: 시작 시간을 입력하고 종료 시간보다 20분 전인지 확인합니다.
표준 매개변수 표시를 클릭하고 fields에 다음을 입력합니다.
timeSeries.points.interval.endTime,timeSeries.points.value
-
name: 프로젝트 경로를 입력합니다.
실행을 클릭합니다.
이 요청은 다음과 같은 결과를 반환합니다.
{
"timeSeries": [
{
"points": [
{
"interval": {
"endTime": "2024-03-01T00:19:01Z"
},
"value": {
"doubleValue": 0.06763074536575005
}
},
{
"interval": {
"endTime": "2024-03-01T00:18:01Z"
},
"value": {
"doubleValue": 0.06886174467702706
}
},
...
{
"interval": {
"endTime": "2024-03-01T00:17:01Z"
},
"value": {
"doubleValue": 0.06929610064253211
}
}
]
}
]
}
요청을 curl
명령어, HTTP 요청 또는 JavaScript로 보려면 API 탐색기에서 fullscreen 전체 화면을 클릭합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
문제가 있으면 Monitoring API 문제 해결을 참조하세요.
데이터 집계
timeSeries.list
메서드는 반환된 시계열 데이터에 대한 통계 집계 및 축소를 수행할 수 있습니다. 다음 섹션에서는 두 가지 예시를 보여줍니다.
자세한 내용은 필터링 및 집계: 시계열 조작을 참조하세요.
예: 시계열 정렬
이 예시에서는 20분 간격을 10분씩 나눠 두 기간의 평균 사용률을 구함으로써 각 시계열에서 이루어지는 20번의 개별 사용률 측정을 2번의 측정으로 줄입니다. 각 시계열의 데이터를 우선 10분 기간으로 정렬한 다음 각 10분 기간 값의 평균을 구합니다.
이 정렬 작업에는 데이터를 정리하고 모든 시계열 데이터를 정확히 10분을 경계로 정렬해 준다는 2가지 이점이 있습니다. 그런 다음 정렬된 데이터를 추가로 처리할 수 있습니다.
프로토콜
timeSeries.list
참조 페이지를 엽니다.이 메서드 사용해 보기 라벨이 지정된 창에 다음을 입력합니다.
-
name: 프로젝트 경로를 입력합니다.
projects/PROJECT_ID
-
aggregation.alignmentPeriod:
600s
를 입력합니다. -
aggregation.perSeriesAligner:
ALIGN_MEAN
을 선택합니다. -
filter: 측정항목 유형을 지정합니다.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: 종료 시간을 입력합니다.
- interval.startTime: 시작 시간을 입력하고 종료 시간보다 20분 전인지 확인합니다.
-
표준 매개변수 표시를 클릭하고 fields에 다음을 입력합니다.
timeSeries.metric,timeSeries.points
-
name: 프로젝트 경로를 입력합니다.
실행을 클릭합니다.
이전 예에 표시된 단일 인스턴스의 필터는 삭제되고 이 쿼리는 훨씬 적은 데이터를 반환하므로 하나의 VM 인스턴스로 제한할 필요가 없습니다.
다음 샘플 결과에서는 3가지 VM 인스턴스 각각에 해당하는 시계열이 하나씩 나옵니다. 시계열마다 10분 정렬 기간에 대한 평균 사용률인 2개의 데이터 요소가 있습니다.
{
"timeSeries": [
{
"metric": {
"labels": {"instance_name": "your-first-instance"},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.06688481346044381 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {"doubleValue": 0.06786652821310177 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-second-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.04144239874207415 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.04045793689050091 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-third-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.029650046587339607 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.03053874224715402 }
}
]
}
]
}
요청을 curl
명령어, HTTP 요청 또는 JavaScript로 보려면 API 탐색기에서 fullscreen 전체 화면을 클릭합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
문제가 있으면 Monitoring API 문제 해결을 참조하세요.
예: 시계열 축소
이 예시에서는 이전의 예를 확장해 3가지 VM 인스턴스에서 정렬된 시계열을 모든 인스턴스의 평균 사용률을 측정하는 단일 시계열로 결합합니다.
프로토콜
timeSeries.list
참조 페이지를 엽니다.이 메서드 사용해 보기 라벨이 지정된 창에 다음을 입력합니다.
-
name: 프로젝트 경로를 입력합니다.
projects/PROJECT_ID
-
aggregation.alignmentPeriod:
600s
를 입력합니다. -
aggregation.perSeriesAligner:
ALIGN_MEAN
을 선택합니다. -
aggregation.crossSeriesReducer:
REDUCE_MEAN
을 선택합니다. -
filter: 측정항목 유형을 지정합니다.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: 종료 시간을 입력합니다.
- interval.startTime: 시작 시간을 입력하고 종료 시간보다 20분 전인지 확인합니다.
-
표준 매개변수 표시를 클릭하고 fields에 다음을 입력합니다.
timeSeries.metric,timeSeries.points
-
name: 프로젝트 경로를 입력합니다.
실행을 클릭합니다.
다음 샘플 결과에는 하나의 시계열과 2개의 데이터 요소가 있습니다. 각 요소는 해당 기간 동안 3가지 VM 인스턴스의 평균 사용률을 나타냅니다.
{
"timeSeries": [
{
"metric": {
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": {
"doubleValue": 0.045992419596619184
}
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {
"doubleValue": 0.04628773578358556
}
}
]
}
]
}
요청을 curl
명령어, HTTP 요청 또는 JavaScript로 보려면 API 탐색기에서 fullscreen 전체 화면을 클릭합니다.
C#
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
Monitoring에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
문제가 있으면 Monitoring API 문제 해결을 참조하세요.
다음 단계
- 측정항목 데이터의 보관 및 지연 시간에 대해 알아보기
- 필터링 및 집계: 시계열 조작 알아보기