로그 보고

이 페이지에서는 Service Infrastructure를 사용하여 관리형 서비스서비스 제작자서비스 소비자 프로젝트 모두에 로그를 보낼 수 있도록 하는 방법을 설명합니다.

Service Control API는 구조화된 로그 데이터나 구조화되지 않은 로그 데이터를 받아들이고 일괄 처리하여 Cloud Logging에 전달합니다. 개발자 및 개발자의 관리형 서비스 사용자 모두 Google Cloud Console 및 Google API Console을 사용하여 로그 데이터를 보거나 Cloud Logging API를 사용하여 데이터에 프로그래매틱 방식으로 액세스할 수 있습니다.

Logging만으로도 관리형 서비스는 관리형 서비스의 개발자가 사용할 로그를 생성할 수 있지만, Service Control API에서는 사용자까지도 사용할 수 있는 로그를 생성할 수 있습니다. 그러면 사용자들이 자신이 관리형 서비스를 어떻게 사용하고 있는지를 이해하고 진단할 수 있습니다.

로그 구성

Service Control API에 로그를 보내기 전에 서비스 구성에서 세 가지 정보를 지정해야 합니다.

  • 로그 이름: 하나 이상의 개별 로그가 있을 수 있습니다. 각 로그는 고유한 이름으로 식별됩니다. 개별 로그를 사용하여 데이터를 더 쉽게 시각화하거나 사용할 수 있도록 함으로써 개별 데이터 유형을 격리할 수 있습니다.

  • 모니터링 리소스: 모니터링 리소스는 일부 로깅 데이터를 생성하는 클라우드 항목을 나타냅니다. 서비스 구성에서 모니터링 리소스를 정의하려면 기술 사양에서 monitored_resource.proto를 참조하세요. 모니터링과 로깅 모두에 동일한 모니터링 리소스를 사용하는 것이 좋습니다.

  • 로그 구성: 로그 스트림과 연관된 모니터링되는 리소스 그리고 각 로그를 받아야 하는 서비스 프로듀서 또는 서비스 소비자 프로젝트를 지정할 수 있습니다. 로그 연결을 구성하려면 기술 사양에서 logging.proto를 참조하세요.

다음 서비스 구성 예시에서 activity_log 로그는 서비스 소비자에게 전송되도록 구성되어 있습니다.

# The definition of the monitored resource to be used.
monitored_resources:
- type: library.appspot.com/Branch
  description: A library branch
  display_name: Library Branch
  launch_stage: ALPHA
  labels:
  - key: resource_container
    description: The Google Cloud resource container (ie. project id) for
    the branch.
  - key: location
    description: The Google Cloud region the branch is located.
  - key: branch_id
    description: The ID of the branch.

# The log name to be used.
logs:
- name: activity_log

# The logging configuration.
logging:
  consumer_destinations:
  - monitored_resource: library.appspot.com/Branch
    logs:
    - activity_log

이러한 구성을 작성한 후에는 서비스 구성 관리서비스 출시 관리에 따라 서비스 구성을 Service Management API로 푸시하면 Cloud Logging에서 모니터링되는 리소스가 구성됩니다.

로그 보고

서비스 구성 푸시가 완료되면 Service Control API를 호출하여 로그 항목을 보고할 수 있습니다. 다음 예시에서는 gcurl 명령어를 사용하여 호출을 보여줍니다. 설정하는 방법을 알아보려면 Service Control API 시작하기를 참조하세요.

gcurl -d "{
  'operations': [ {
    'operationId': 'e8bf36ef-f9b5-4274-b4f9-079a3731e6e5',
    'operationName': 'New book arrived',
    'consumerId': 'projects/library-consumer',
    'startTime': '`date +%FT%T%:z`',
    'endTime': '`date +%FT%T%:z`',
    'labels': {
      'location': 'us-east1',
      'branch_id': 'my-test-library-branch'
    },
    'logEntries': [ {
      'severity': 'INFO',
      'textPayload': 'new book arrived',
      'name': 'activity_log'
    } ]
  } ]
}" https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:report