HTTP API

REST API를 사용하여 로깅 서비스를 쿼리할 수 있습니다. 로그 엔드포인트는 Unity 서비스 계정을 사용하여 인증됩니다.

로그 요청

로깅 API에 대한 GET 요청을 만듭니다.

  • Observability API 기술 자료에는 로그 쿼리 실행에 대한 자세한 설명이 포함되어 있습니다.

  • 인증하는 방법에 대한 자세한 내용은 인증을 참고하십시오.

cURL 커맨드 예시는 다음과 같습니다.

curl https://services.api.unity.com/observability/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/logs \
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>' \
--url-query 'from=<TIME_FROM>' \
--url-query 'to=<TIME_TO>' \
--url-query 'query=<FILTER_EXPRESSION>' \
--url-query 'limit=<LIMIT>' \
--url-query 'offset=<OFFSET>'

필요한 경우 다음 쿼리 파라미터를 추가로 사용할 수 있습니다.

  • from: 반환할 기록의 시작 타임스탬프를 지정하는 데 사용되는 RFC3339 타임스탬프입니다. 예를 들면 2023-06-29T11:30:22.939Z와 같습니다.
  • to: 반환할 기록의 종료 타임스탬프를 지정하는 데 사용되는 RFC3339 타임스탬프입니다.
  • query: 필터링의 부울 표현식입니다. 자세한 내용은 로그 필터링을 참고하십시오.
  • limit: 반환할 기록의 최대 수로 사용되는 양의 정수입니다. 100보다 작거나 같아야 합니다.
  • offset: 쿼리의 첫 번째 결과에서 로그의 오프셋 수로 사용되는 양의 정수입니다.

상대 시간 범위

API에서는 시간 범위를 더 쉽게 사용할 수 있도록 시작 및 종료 파라미터에 대한 상대 시간 표현식도 지원됩니다.

기본 구문은 다음 요소로 구성됩니다.

  • 기본 시간: RFC3999 타임스탬프 또는 now 키워드
  • 연산자: + 또는 -
  • 시간 오프셋: 일, 시, 분 또는 초 단위 정수(예: 12d, 5h, 3m, 17s)

예시:

  • from=now-30m
  • from=2023-08-29T11:30:00.000Z+30s
  • from=now-2d&to=now-6h

API 호출 예시

다음 예시는 cURL을 사용하여 로깅 API에서 로그를 쿼리하는 방법을 보여 줍니다.

인증하는 방법에 대한 자세한 내용은 인증을 참고하십시오.

curl https://services.api.unity.com/observability/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/logs \
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>' \
--url-query 'from=2023-09-01T00:00:00.000Z' \
--url-query 'to=2023-09-01T13:50:00.000Z' \
--url-query 'query=body~=”regular” AND logAttributes.example.myKey=”foo”' \
--url-query 'limit=10' \
--url-query 'offset=0'

응답의 예시는 다음과 같습니다.

{
   "limit" : 10,
   "offset" : 0,
   "total" : 600,
   "results" : [
      {
         "severityNumber" : 9,
         "severityText" : "Information",
         "timestamp" : "2023-09-01T10:45:00.445Z",
         "body" : "this is just a regular log message",
         "logAttributes" : {
            "example.myKey" : "foo",
            "log.record.uid" : "a566701a-a9e5-42f7-bd8e-013fa9ef1afa",
            "unity.environmentId" : "c288f9e5-423b-4150-a982-5a1a40b1219a",
            "unity.projectId" : "2af24fd0-f224-499e-8768-07b54c693aee"
         },
         "resourceAttributes" : {
            "service.name" : "cloud-code"
         }
      }
   ]
}

응답에는 다음 필드가 포함됩니다.

  • limit: 반환된 기록의 최대 수
  • offset: 쿼리의 첫 번째 결과에서 로그의 오프셋 수
  • total: 쿼리와 일치하는 총 기록 수
  • results: 로그 엔트리 배열

results 배열 오브젝트는 로그 스키마에 매핑됩니다.