보고서 데이터 읽기

App Optimize API가 보고서를 생성하면 보고서의 비용 및 사용률 데이터를 가져옵니다. 이 작업은 보고서를 요청할 때 지정한 측정기준과 측정항목에 따라 구조화된 정보를 열과 행으로 다운로드합니다.

이 API 요청은 보고서의 구성 설정만 반환하는 보고서의 메타데이터를 가져오는 것과 다릅니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

  6. Google Cloud CLI를 설치합니다.

  7. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  8. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  9. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

필요한 역할

보고서의 데이터를 읽는 데 필요한 권한을 얻으려면 관리자에게 보고서 리소스를 소유한 프로젝트에 대한 App Optimize 뷰어 (roles/appoptimize.viewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

보고서 데이터 읽기

REST API를 사용하여 완료된 보고서에서 데이터를 읽으려면 보고서의 :read 엔드포인트로 HTTP POST 요청을 전송합니다.

  1. 다음 curl 명령어를 사용하여 보고서 데이터의 첫 번째 페이지를 읽습니다.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    다음을 바꿉니다.

    • PROJECT_ID: 읽으려는 보고서 리소스를 소유한 Google Cloud 프로젝트의 ID입니다.
    • REPORT_ID: 읽을 보고서의 ID입니다. 이 ID는 보고서가 생성될 때 지정되었으며 보고서를 나열하여 가져올 수 있습니다.
    • PAGE_SIZE: 페이지당 반환할 최대 행 수입니다. 더 큰 값을 지정하더라도 서버는 페이지당 최대 1,000개의 행을 반환합니다. 또한 응답에는 10MB 크기 제한이 적용되므로 이 제한을 준수하기 위해 더 적은 수의 행이 반환될 수 있습니다. pageSize를 생략하면 기본 크기가 사용됩니다.
  2. 요청이 성공하면 API는 보고서 스키마와 행이 포함된 JSON 응답을 반환합니다. 성공적인 응답의 예는 다음과 같습니다.

    {
      "rows": [
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-1",
          {
            "currency_code": "USD",
            "units": "106",
            "nanos": 321590000
          }
        ],
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-2",
          {
            "currency_code": "USD",
            "units": "797",
            "nanos": 641691000
          }
        ]
      ],
      "columns": [
        {
          "name": "application",
          "type": "STRING"
        },
        {
          "name": "cost",
          "type": "RECORD",
          "columns": [
            {
              "name": "currency_code",
              "type": "STRING"
            },
            {
              "name": "units",
              "type": "INT64"
            },
            {
              "name": "nanos",
              "type": "INT64"
            }
          ]
        }
      ],
      "nextPageToken": "AABBCCddeeffGGHHiiJJkkLL"
    }
    

    cost 필드의 값을 이해하려면 비용 측정항목 해석을 참고하세요. 데이터에 대한 자세한 내용과 제한사항을 알아보려면 데이터 이해하기를 참고하세요.

  3. 응답에 nextPageToken 필드가 포함된 경우 보고서에 추가 행이 포함됩니다. 결과의 다음 페이지를 가져오려면 JSON 본문의 pageToken 필드에 이 토큰이 포함된 POST 요청을 다시 만듭니다.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageToken": "NEXT_PAGE_TOKEN", "pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    다음을 바꿉니다.

    • NEXT_PAGE_TOKEN: 이전 응답에서 수신된 nextPageToken 값입니다.
    • PAGE_SIZE: 페이지당 반환할 최대 행 수입니다. 페이지 요청 간에 이 값을 변경할 수 있지만 서버 측 제한은 계속 적용됩니다.

    응답에 더 이상 nextPageToken가 포함되지 않을 때까지 이 프로세스를 반복합니다. 이는 모든 보고서 데이터를 가져왔음을 나타냅니다.

다음 단계