Telemetry Reporting

소개

이 페이지에서는 Service Infrastructure와 통합된 관리형 서비스용 원격 분석 보고에 Service Control API v2를 사용하는 방법을 설명합니다. 이 서비스는 Google Cloud와 서비스를 긴밀하게 통합하려는 서비스 제작자를 대상으로 합니다.

Service Infrastructure는 개발자가 API와 서비스를 생성, 관리, 보호, 사용할 수 있는 기본 플랫폼입니다. 여기에는 간단하고 일반적인 서비스 사용 모델이 사용됩니다. 소비자는 제작자가 관리하는 서비스를 소비합니다. 모든 Google APIs 및 Google Cloud API에 이 모델이 사용되므로, 이들 역시 Service Infrastructure를 기반으로 빌드되었습니다.

소비자가 서비스에 액세스하면 서비스에서 관계되는 원격 분석 데이터를 플랫폼에 보고하므로 소비자와 생산자 모두가 액세스를 관찰할 수 있습니다. Service Infrastructure에서 이 프로세스를 원격 분석 보고라고 하며 분석, 감사, 청구, 로깅 및 모니터링이 포함됩니다.

Service Control API v2

Service Control API v2는 Service Infrastructure와 통합된 모든 서비스에 대해 원격 분석 보고를 제공하는 간단한 services.report 메서드를 제공합니다. 이 메서드를 사용하면 단일 메서드 호출로 다음을 수행할 수 있습니다.

  • 분석
  • 감사
  • 결제
  • 로깅
  • 모니터링

서비스가 원격 분석 데이터를 Service Control API에 보고하면 서비스 구성에 따라 데이터가 소비자 또는 제작자 또는 둘 다에 배포됩니다. 원격 분석 구성에 대한 자세한 내용은 google.api.Service의 로깅 및 모니터링 섹션을 참조하세요.

서비스에서 Service Control API를 호출하려면 생산자가 생산자 프로젝트에서 Service Control API를 사용 설정해야 하며, 호출자가 서비스에 대한 적절한 권한을 가지고 있어야 합니다. 자세한 내용은 Cloud API 시작하기Service Control API 액세스 제어를 참조하세요.

요청 속성

클라이언트가 서비스에 액세스할 때 서비스는 API 요청 집합 측면에서 액세스를 모델링하고 AttributeContext을 사용하여 각 요청을 설명해야 합니다.

Service Control API를 사용하여 API 측정항목을 보고하려면 서비스에서 다음 속성을 사용하여 각 요청에 대해 services.report 메서드를 호출해야 합니다. Service Control API는 API 측정항목을 생성하고 Cloud Monitoring으로 전송합니다.

속성 설명 예시
origin.ip 호출자의 IP 주소입니다. '1.2.3.4'
api.service API 서비스 이름입니다. 'endpointsapis.appspot.com'
api.operation API 메서드 이름입니다. 'google.example.hello.v1.HelloService.GetHello'
api.version API 버전 문자열입니다. 'v1'
api.protocol API 프로토콜 이름입니다. 'https'
request.id 고유한 요청 ID입니다. '123e4567-e89b-12d3-a456-426655440000'
request.time 요청 타임스탬프입니다. '2019-07-31T05:20:00Z'
request.method HTTP 메서드 이름입니다. 'POST'
request.scheme URL 스키마입니다. 'https'
request.host HTTP 호스트 헤더입니다. 'endpointsapis.appspot.com'
request.path URL 경로입니다. '/v1/hello'
response.code 응답 상태 코드입니다. 200
response.size 응답 크기(바이트)입니다. 100
response.time 응답 타임스탬프입니다. '2019-07-31T05:20:02Z'
response.backend_latency 백엔드 지연 시간입니다. '0.007s'

원격 분석 보고 수행

서비스 구성을 Service Management API에 배포했고 서비스가 클라이언트 요청을 처리할 준비가 되면 배포된 서비스에 대해 services.report 호출을 시작합니다. 서비스에서 요청을 수신한 후 services.report를 호출하여 원격 분석 보고를 수행해야 합니다.

원격 분석 보고를 빠르게 실험하려면 gcurl 명령어를 사용하여 services.report 메서드를 호출합니다. 초기 설정 단계는 Service Control API 시작하기를 참조하세요.

다음 예에서는 gcurl 명령어를 사용하여 HTTP로 services.report를 호출하는 방법을 보여줍니다.

gcurl -d '{
  "service_config_id": "latest",
  "operations": [{
    "origin": {
      "ip": "1.2.3.4"
    },
    "api": {
      "service": "endpointsapis.appspot.com",
      "operation", "google.example.endpointsapis.v1.Workspaces.GetWorkspace",
      "version": "v1",
      "protocol": "https"
    },
    "request": {
      "id": "123e4567-e89b-12d3-a456-426655440000",
      "size": 50,
      "time": "2019-07-31T05:20:00Z",
    },
    "response": {
      "size": 100,
      "code": 200,
      "time": "2019-07-31T05:20:02Z",
      "backend_latency": "0.007s"
    },
    "destination": {
      "region_code": "us-central1"
    }
    "resource": {
      "name": "projects/123/locations/us-central1/workspaces/default"
    }
  }]
}' https://servicecontrol.googleapis.com/v2/services/endpointsapis.appspot.com:report

성공하면 services.report 메서드의 응답이 비어 있어야 합니다. 실패하면 API 오류에 자세한 오류 정보가 포함되어야 합니다. 오류 처리에 관한 자세한 내용은 API Design 가이드 > 오류를 참조하세요.

프로덕션 서비스의 경우 Google에서 제공되는 클라이언트 라이브러리 중 하나를 사용하여 Service Control API를 호출해야 합니다. 이러한 라이브러리는 뛰어난 사용성을 제공하고 인증과 같은 일반적인 기능을 자동으로 처리합니다. 자세한 내용은 클라이언트 라이브러리 설명을 참조하세요.