Sử dụng API báo cáo tùy chỉnh không đồng bộ

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Edge Analytics cung cấp một bộ trang tổng quan tương tác, trình tạo báo cáo tuỳ chỉnh và các tính năng liên quan phong phú. Tuy nhiên, các tính năng này được thiết kế để tương tác: bạn gửi một yêu cầu API hoặc giao diện người dùng và yêu cầu đó sẽ bị chặn cho đến khi máy chủ phân tích cung cấp phản hồi.

Tuy nhiên, các yêu cầu phân tích có thể hết thời gian chờ nếu mất quá nhiều thời gian để hoàn tất. Nếu một yêu cầu truy vấn cần xử lý một lượng lớn dữ liệu (ví dụ: hàng trăm GB), thì yêu cầu đó có thể không thành công do hết thời gian chờ.

Tính năng xử lý truy vấn không đồng bộ cho phép bạn truy vấn các tập dữ liệu rất lớn và truy xuất kết quả sau. Bạn có thể cân nhắc sử dụng truy vấn ngoại tuyến khi thấy rằng truy vấn tương tác của mình hết thời gian chờ. Sau đây là một số trường hợp mà việc xử lý truy vấn không đồng bộ có thể là một giải pháp thay thế hiệu quả:

  • Phân tích và tạo báo cáo trong khoảng thời gian lớn.
  • Phân tích dữ liệu bằng nhiều phương diện nhóm và các quy tắc ràng buộc khác làm tăng độ phức tạp cho truy vấn.
  • Quản lý truy vấn khi bạn nhận thấy rằng một số người dùng hoặc tổ chức đã tăng đáng kể về số lượng dữ liệu.

Tài liệu này mô tả cách bắt đầu truy vấn không đồng bộ bằng cách sử dụng API. Bạn cũng có thể sử dụng giao diện người dùng như mô tả trong phần Chạy báo cáo tuỳ chỉnh.

So sánh API báo cáo với giao diện người dùng

Bài viết Tạo và quản lý báo cáo tuỳ chỉnh mô tả cách sử dụng giao diện người dùng Edge để tạo và chạy báo cáo tuỳ chỉnh. Bạn có thể chạy các báo cáo đó đồng bộ hoặc không đồng bộ.

Hầu hết các khái niệm để tạo báo cáo tuỳ chỉnh bằng giao diện người dùng đều áp dụng cho việc sử dụng API. Tức là khi tạo báo cáo tuỳ chỉnh bằng API, bạn chỉ định chỉ số, phương diệnbộ lọc tích hợp sẵn trong Edge, cũng như mọi chỉ số tuỳ chỉnh mà bạn đã tạo bằng cách sử dụng chính sách StatisticsCollector.

Sự khác biệt chính giữa các báo cáo được tạo trong giao diện người dùng và trong API là các báo cáo được tạo bằng API được ghi vào tệp CSV hoặc JSON (được phân tách bằng dòng mới) thay vì báo cáo trực quan hiển thị trong giao diện người dùng.

Giới hạn trong Apigee Hybrid

Apigee hybrid thực thi giới hạn kích thước 30 MB đối với tập dữ liệu kết quả.

Cách tạo truy vấn phân tích không đồng bộ

Bạn thực hiện các truy vấn phân tích không đồng bộ theo 3 bước:

  1. Gửi truy vấn.

  2. Nhận trạng thái truy vấn.

  3. Truy xuất kết quả truy vấn.

Bước 1. Gửi truy vấn

Bạn phải gửi yêu cầu POST đến API /queries. API này yêu cầu Edge xử lý yêu cầu của bạn ở chế độ nền. Nếu bạn gửi truy vấn thành công, API sẽ trả về trạng thái 201 và mã nhận dạng mà bạn sẽ sử dụng để tham chiếu đến truy vấn đó trong các bước sau.

Ví dụ:

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries -d @json-query-file
-u orgAdminEmail:password

Nội dung của yêu cầu là nội dung mô tả truy vấn ở định dạng JSON. Trong phần nội dung JSON, hãy chỉ định chỉ số, phương diệnbộ lọc xác định báo cáo.

Dưới đây là tệp json-query-file mẫu:

{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"         
}

Hãy xem phần Giới thiệu về nội dung yêu cầu bên dưới để biết nội dung mô tả đầy đủ về cú pháp nội dung yêu cầu.

Phản hồi mẫu:

Xin lưu ý rằng mã truy vấn 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd có trong phản hồi. Ngoài trạng thái HTTP 201, state của enqueued có nghĩa là yêu cầu đã thành công.

HTTP/1.1 201 Created

{  
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

Bước 2. Nhận trạng thái truy vấn

Thực hiện lệnh gọi GET để yêu cầu trạng thái của truy vấn. Bạn cung cấp mã truy vấn được trả về từ lệnh gọi POST. Ví dụ:

curl -X GET -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd
-u email:password

Câu trả lời mẫu:

Nếu truy vấn vẫn đang diễn ra, bạn sẽ nhận được phản hồi như sau, trong đó staterunning:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

Sau khi truy vấn hoàn tất, bạn sẽ thấy một phản hồi như sau, trong đó state được đặt thành completed:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

Bước 3. Truy xuất kết quả truy vấn

Sau khi trạng thái truy vấn là completed, bạn có thể sử dụng API get results (lấy kết quả) để truy xuất kết quả, trong đó mã truy vấn lại là 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.

curl -X GET -H "Content-Type:application/json" -O -J https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result
-u email:password

Để truy xuất tệp đã tải xuống, bạn cần định cấu hình công cụ mà bạn sử dụng để công cụ đó lưu tệp đã tải xuống vào hệ thống của bạn. Ví dụ:

  • Nếu sử dụng cURL, bạn có thể sử dụng các tuỳ chọn -O -J như minh hoạ ở trên.

  • Nếu sử dụng Postman, bạn cần chọn nút Save and Download (Lưu và tải xuống). Trong trường hợp này, một tệp zip có tên là response sẽ được tải xuống.

  • Nếu bạn sử dụng trình duyệt Chrome, thì yêu cầu tải xuống sẽ tự động được chấp nhận.

Nếu yêu cầu thành công và có tập hợp kết quả khác 0, kết quả sẽ được tải xuống ứng dụng dưới dạng tệp JSON nén (được phân tách bằng dòng mới). Tên của tệp đã tải xuống sẽ là:

OfflineQueryResult-<query-id>.zip

Ví dụ:

OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip

Tệp zip chứa tệp lưu trữ .gz của kết quả JSON. Để truy cập vào tệp JSON, hãy giải nén tệp đã tải xuống, sau đó sử dụng lệnh gzip để trích xuất tệp JSON:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

Giới thiệu về nội dung yêu cầu

Phần này mô tả từng thông số mà bạn có thể sử dụng trong phần nội dung yêu cầu JSON cho một truy vấn. Để biết thông tin chi tiết về các chỉ số và phương diện mà bạn có thể sử dụng trong truy vấn, hãy xem Tài liệu tham khảo về Analytics.

{  
   "metrics":[  
      {  
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_dispaly_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[  
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
Thuộc tính Mô tả Bắt buộc?
metrics

Mảng chỉ số. Bạn có thể chỉ định một hoặc nhiều chỉ số cho một truy vấn, trong đó mỗi chỉ số bao gồm. Bạn chỉ cần điền tên chỉ số:

  • name: (Bắt buộc) Tên của chỉ số theo định nghĩa của bảng tại chỉ số.
  • function: (Không bắt buộc) Hàm tổng hợp dưới dạng avg, min, max hoặc sum.

    Không phải chỉ số nào cũng hỗ trợ tất cả các hàm tổng hợp. Tài liệu về chỉ số chứa một bảng chỉ định tên chỉ số và hàm (avg, min, max,sum) mà chỉ số đó hỗ trợ.

  • alias: (Không bắt buộc) Tên của thuộc tính chứa dữ liệu chỉ số trong kết quả. Nếu bạn bỏ qua thuộc tính này, thì thuộc tính này sẽ mặc định là tên chỉ số kết hợp với tên hàm tổng hợp.
  • operator: (Không bắt buộc) Một phép toán cần thực hiện trên chỉ số sau khi giá trị của chỉ số đó được tính toán. Hoạt động với thuộc tính value. Các phép toán được hỗ trợ bao gồm: + - / % *.
  • value: (Không bắt buộc) Giá trị được áp dụng cho chỉ số được tính bằng operator đã chỉ định.

Các thuộc tính operatorvalue xác định một thao tác xử lý sau được thực hiện trên chỉ số. Ví dụ: nếu bạn chỉ định chỉ số response_processing_latency, thì chỉ số này sẽ trả về độ trễ xử lý phản hồi trung bình theo đơn vị mili giây. Để chuyển đổi đơn vị thành giây, hãy đặt operator thành "/"value thành ”1000.0“:

"metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

Để biết thêm thông tin, hãy xem bài viết Tài liệu tham khảo về các chỉ số, phương diện và bộ lọc của Analytics.

Không
dimensions Mảng các phương diện để nhóm các chỉ số. Để biết thêm thông tin, hãy xem danh sách phương diện được hỗ trợ. Bạn có thể chỉ định nhiều phương diện. Không
timeRange Phạm vi thời gian cho truy vấn.

Bạn có thể sử dụng các chuỗi được xác định trước sau đây để chỉ định phạm vi thời gian:

  • last60minutes
  • last24hours
  • last7days

Ngoài ra, bạn có thể chỉ định timeRange làm cấu trúc mô tả dấu thời gian bắt đầu và kết thúc ở định dạng ISO: yyyy-mm-ddThh:mm:ssZ. Ví dụ:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
limit Số hàng tối đa có thể được trả về trong kết quả. Không
filter Biểu thức boolean có thể dùng để lọc dữ liệu. Bạn có thể kết hợp các biểu thức bộ lọc bằng cách sử dụng các từ khoá AND/OR và phải đặt trong dấu ngoặc đơn đầy đủ để tránh gây nhầm lẫn. Hãy xem bài viết Tham khảo về chỉ số, phương diện và bộ lọc của Analytics để biết thêm thông tin về các trường có thể dùng để lọc. Để biết thêm thông tin về các mã thông báo mà bạn sử dụng để tạo biểu thức bộ lọc, hãy xem phần Cú pháp biểu thức bộ lọc. Không
groupByTimeUnit Đơn vị thời gian dùng để nhóm tập hợp kết quả. Các giá trị hợp lệ bao gồm: second, minute, hour, day, week hoặc month.

Nếu một truy vấn bao gồm groupByTimeUnit, thì kết quả sẽ là một dữ liệu tổng hợp dựa trên đơn vị thời gian đã chỉ định và dấu thời gian thu được sẽ không có độ chính xác đến mili giây. Nếu một truy vấn bỏ qua groupByTimeUnit, thì dấu thời gian thu được sẽ có độ chính xác đến mili giây.

Không
outputFormat Định dạng đầu ra. Các giá trị hợp lệ bao gồm: csv hoặc json. Mặc định là json tương ứng với JSON được phân tách bằng dòng mới.

Lưu ý: Định cấu hình dấu phân cách cho đầu ra CSV bằng thuộc tính csvDelimiter.

Không
csvDelimiter Dấu phân cách dùng trong tệp CSV, nếu outputFormat được đặt thành csv. Giá trị mặc định là ký tự , (dấu phẩy). Các ký tự dấu phân cách được hỗ trợ bao gồm dấu phẩy (,), dấu gạch chéo (|) và dấu tab (\t). Không

Cú pháp biểu thức bộ lọc

Phần tài liệu tham khảo này mô tả các mã thông báo mà bạn có thể sử dụng để tạo biểu thức bộ lọc trong phần nội dung yêu cầu. Ví dụ: biểu thức sau đây sử dụng mã thông báo "ge" (lớn hơn hoặc bằng):

"filter":"(message_count ge 0)"
Mã thông báo Mô tả Ví dụ
in Thêm vào danh sách
(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

Lưu ý: Chuỗi phải nằm trong dấu ngoặc kép.

notin Loại trừ khỏi danh sách
(response_status_code notin 400,401,500,501)
eq Bằng (==)
(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne Không bằng (!=)
(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt Lớn hơn (>)
(response_status_code gt 500)
lt Nhỏ hơn (<)
(response_status_code lt 500)
ge Lớn hơn hoặc bằng (>=)
(target_response_code ge 400)
le Nhỏ hơn hoặc bằng (<=)
(target_response_code le 300)
like Trả về true nếu mẫu chuỗi khớp với mẫu đã cung cấp.

Ví dụ ở bên phải khớp như sau:

– mọi giá trị có từ "mua"

– mọi giá trị kết thúc bằng "mặt hàng"

– mọi giá trị bắt đầu bằng "Prod"

– bất kỳ giá trị nào bắt đầu bằng 4, lưu ý response_status_code là số

(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like Trả về false nếu mẫu chuỗi khớp với mẫu đã cung cấp.
(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and Cho phép bạn sử dụng logic "và" để đưa vào nhiều biểu thức bộ lọc. Bộ lọc này bao gồm dữ liệu đáp ứng tất cả các điều kiện.
(target_response_code gt 399) and (response_status_code ge 400)
or Cho phép bạn sử dụng logic "hoặc" để đánh giá nhiều biểu thức bộ lọc có thể có. Bộ lọc này bao gồm dữ liệu đáp ứng ít nhất một trong các điều kiện.
(response_size ge 1000) or (response_status_code eq 500)

Quy tắc ràng buộc và giá trị mặc định

Dưới đây là danh sách các điều kiện ràng buộc và giá trị mặc định cho tính năng xử lý truy vấn không đồng bộ.

Hạn chế Mặc định Mô tả
Giới hạn lệnh gọi truy vấn Xem nội dung mô tả Bạn có thể thực hiện tối đa 7 lệnh gọi mỗi giờ đến API quản lý /truy vấn để bắt đầu một báo cáo không đồng bộ. Nếu bạn vượt quá hạn mức lệnh gọi, API sẽ trả về phản hồi HTTP 429.
Giới hạn cụm từ tìm kiếm đang hoạt động 10 Bạn có thể có tối đa 10 truy vấn đang hoạt động cho một tổ chức/môi trường.
Ngưỡng thời gian thực thi truy vấn 6 giờ Các truy vấn mất hơn 6 giờ sẽ bị chấm dứt.
Phạm vi thời gian truy vấn Xem nội dung mô tả Phạm vi thời gian tối đa được phép cho một truy vấn là 365 ngày.
Giới hạn về phương diện và chỉ số 25 Số lượng phương diện và chỉ số tối đa mà bạn có thể chỉ định trong tải trọng truy vấn.

Giới thiệu về kết quả truy vấn

Sau đây là kết quả mẫu ở định dạng JSON. Kết quả bao gồm các hàng JSON được phân tách bằng dấu phân cách dòng mới:

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}    
…

Bạn có thể tìm nạp kết quả từ URL cho đến khi dữ liệu trong kho lưu trữ hết hạn. Xem phần Giới hạn và giá trị mặc định.

Ví dụ

Ví dụ 1: Tổng số tin nhắn

Truy vấn tổng số tin nhắn trong 60 phút qua.

Cụm từ tìm kiếm

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

Nội dung yêu cầu từ last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

Ví dụ 2: Phạm vi thời gian tuỳ chỉnh

Truy vấn bằng cách sử dụng phạm vi thời gian tuỳ chỉnh.

Cụm từ tìm kiếm

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1 /organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

Nội dung yêu cầu từ last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Ví dụ 3: Số giao dịch mỗi phút

Truy vấn về chỉ số số giao dịch mỗi phút (tpm).

Cụm từ tìm kiếm

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @tpm.json
-u orgAdminEmail:password

Nội dung yêu cầu từ tpm.json

{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

Kết quả mẫu

Trích đoạn từ tệp kết quả:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

Ví dụ 4: Sử dụng biểu thức bộ lọc

Truy vấn bằng biểu thức bộ lọc sử dụng toán tử boolean.

Cụm từ tìm kiếm

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @filterCombo.json
-u orgAdminEmail:password

Nội dung yêu cầu từ filterCombo.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Ví dụ 5: Truyền biểu thức trong tham số chỉ số

Truy vấn bằng một biểu thức được truyền vào dưới dạng một phần của tham số chỉ số. Bạn chỉ có thể sử dụng các biểu thức đơn giản có một toán tử.

Cụm từ tìm kiếm

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries" 
-d @metricsExpression.json
-u orgAdminEmail:password

Nội dung yêu cầu từ metricsExpression.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}

Cách tạo truy vấn báo cáo không đồng bộ về hoạt động kiếm tiền

Bạn có thể thu thập tất cả giao dịch kiếm tiền thành công trong một khoảng thời gian nhất định theo một bộ tiêu chí cụ thể bằng cách làm theo các bước được mô tả trong phần này.

Cũng giống như các truy vấn phân tích không đồng bộ, bạn thực hiện các truy vấn báo cáo kiếm tiền không đồng bộ theo 3 bước: (1) gửi truy vấn, (2) nhận trạng thái truy vấn và (3) truy xuất kết quả truy vấn.

Bước 1 (gửi truy vấn) được mô tả bên dưới.

Bước 2 và 3 giống hệt như đối với các truy vấn phân tích không đồng bộ. Để biết thêm thông tin, hãy xem bài viết Cách tạo truy vấn phân tích không đồng bộ.

Để gửi truy vấn cho báo cáo kiếm tiền không đồng bộ, hãy đưa ra yêu cầu POST đến /mint/organizations/org_id/async-reports.

Bạn có thể chỉ định môi trường bằng cách truyền tham số truy vấn environment (không bắt buộc). Nếu bạn không chỉ định, tham số truy vấn sẽ mặc định là prod. Ví dụ:

/mint/organizations/org_id/async-reports?environment=prod

Trong phần nội dung yêu cầu, hãy chỉ định các tiêu chí tìm kiếm sau.

Tên Nội dung mô tả Mặc định Bắt buộc?
appCriteria Mã nhận dạng và tổ chức của một ứng dụng cụ thể sẽ được đưa vào báo cáo. Nếu bạn không chỉ định thuộc tính này, tất cả ứng dụng đều được đưa vào báo cáo. Không áp dụng Không
billingMonth Tháng thanh toán của báo cáo, chẳng hạn như THÁNG 7. Không áp dụng
billingYear Năm thanh toán của báo cáo, chẳng hạn như năm 2015. Không áp dụng
currencyOption Đơn vị tiền tệ của báo cáo. Sau đây là các giá trị hợp lệ:
  • LOCAL – Mỗi dòng của báo cáo sẽ hiển thị theo gói giá hiện hành. Điều này có nghĩa là có thể có nhiều đơn vị tiền tệ trong một báo cáo nếu nhà phát triển có các gói sử dụng nhiều đơn vị tiền tệ.
  • EUR – Các giao dịch bằng nội tệ được quy đổi và hiển thị bằng Euro.
  • GPB – Các giao dịch bằng nội tệ được chuyển đổi và hiển thị bằng bảng Anh.
  • USD – Các giao dịch bằng nội tệ được chuyển đổi và hiển thị bằng đô la Mỹ.

Nếu bạn chọn EUR, GBP hoặc USD, báo cáo sẽ hiển thị tất cả giao dịch bằng một đơn vị tiền tệ duy nhất đó, dựa trên tỷ giá hối đoái có hiệu lực vào ngày giao dịch.

Không áp dụng Không
devCriteria

Mã nhà phát triển hoặc địa chỉ email và tên tổ chức của một nhà phát triển cụ thể sẽ được đưa vào báo cáo. Nếu bạn không chỉ định thuộc tính này, tất cả nhà phát triển đều sẽ có trong báo cáo.

Ví dụ:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
Không áp dụng Không
fromDate Ngày bắt đầu của báo cáo theo giờ UTC. Không áp dụng
monetizationPakageIds Mã nhận dạng của một hoặc nhiều gói API cần đưa vào báo cáo. Nếu bạn không chỉ định thuộc tính này, tất cả các gói API sẽ được đưa vào báo cáo. Không áp dụng Không
productIds Mã nhận dạng của một hoặc nhiều sản phẩm API cần đưa vào báo cáo. Nếu bạn không chỉ định thuộc tính này, tất cả sản phẩm API sẽ được đưa vào báo cáo. Không áp dụng Không
ratePlanLevels

Loại gói giá sẽ được đưa vào báo cáo. Các giá trị hợp lệ bao gồm:

  • DEVELOPER – Gói giá dành cho nhà phát triển.
  • STANDARD – Gói theo mức giá tiêu chuẩn.

Nếu bạn không chỉ định thuộc tính này, cả gói giá dành riêng cho nhà phát triển và gói giá tiêu chuẩn đều sẽ có trong báo cáo.

Không áp dụng Không
toDate Ngày kết thúc của báo cáo theo giờ UTC. Không áp dụng

Ví dụ: yêu cầu sau đây sẽ tạo một báo cáo kiếm tiền không đồng bộ cho tháng 6 năm 2017 cho sản phẩm API và mã nhận dạng nhà phát triển đã chỉ định. Ngày và giờ của báo cáo fromDatetoDate được tính theo giờ UTC/GMT và có thể bao gồm cả thời gian.

curl -H "Content-Type:application/json" -X POST -d \
'{
      "fromDate":"2017-06-01 00:00:00",
      "toDate":"2017-06-30 00:00:00",    
     "productIds": [
        "a_product"
    ],
    "devCriteria": [{
        "id": "AbstTzpnZZMEDwjc",
        "orgId": "myorg"
    }]

 }' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/async-reports?environment=prod" \
-u orgAdminEmail:password