คุณกําลังดูเอกสารประกอบของ Apigee Edge
  ไปที่เอกสารประกอบของ Apigee X info
Edge Analytics มีชุดแดชบอร์ดแบบอินเทอร์แอกทีฟที่หลากหลาย เครื่องมือสร้างรายงานที่กําหนดเอง และความสามารถที่เกี่ยวข้อง อย่างไรก็ตาม ฟีเจอร์เหล่านี้มีไว้เพื่อโต้ตอบ: คุณส่งคําขอ API หรือ UI และระบบจะบล็อกคําขอจนกว่าเซิร์ฟเวอร์ข้อมูลวิเคราะห์จะตอบกลับ
อย่างไรก็ตาม คำขอข้อมูลวิเคราะห์อาจหมดเวลาหากใช้เวลานานเกินไป หากคำขอการค้นหาต้องประมวลผลข้อมูลจำนวนมาก (เช่น 100 GB) คำขออาจดำเนินการไม่สำเร็จเนื่องจากหมดเวลา
การประมวลผลการค้นหาแบบไม่พร้อมกันช่วยให้คุณค้นหาชุดข้อมูลขนาดใหญ่และเรียกดูผลลัพธ์ในภายหลังได้ คุณอาจพิจารณาใช้การค้นหาแบบออฟไลน์เมื่อพบว่าการค้นหาแบบอินเทอร์แอกทีฟหมดเวลา สถานการณ์ที่การประมวลผลคําค้นหาแบบไม่สอดคล้องกันอาจเป็นทางเลือกที่ดี ได้แก่
- การวิเคราะห์และสร้างรายงานที่ครอบคลุมช่วงเวลาที่นาน
- การวิเคราะห์ข้อมูลด้วยมิติข้อมูลการจัดกลุ่มที่หลากหลายและข้อจำกัดอื่นๆ ที่เพิ่มความซับซ้อนให้กับการค้นหา
- การจัดการการค้นหาเมื่อคุณพบว่าปริมาณข้อมูลของผู้ใช้หรือองค์กรบางรายเพิ่มขึ้นอย่างมาก
เอกสารนี้อธิบายวิธีเริ่มการค้นหาแบบไม่สอดคล้องกันโดยใช้ API นอกจากนี้ คุณยังใช้ UI ตามที่อธิบายไว้ในการเรียกใช้รายงานที่กําหนดเองได้ด้วย
การเปรียบเทียบ Reports API กับ UI
สร้างและจัดการรายงานที่กําหนดเองอธิบายวิธีใช้ UI ของ Edge เพื่อสร้างและเรียกใช้รายงานที่กําหนดเอง คุณสามารถเรียกใช้รายงานเหล่านั้นแบบซิงค์หรือแบบไม่ซิงค์ก็ได้
แนวคิดส่วนใหญ่ในการสร้างรายงานที่กําหนดเองด้วย UI จะใช้ได้กับการใช้ API กล่าวคือ เมื่อสร้างรายงานที่กําหนดเองด้วย API ที่คุณระบุ จะมีเมตริก มิติข้อมูล และตัวกรองที่ฝังอยู่ใน Edge รวมถึงเมตริกที่กําหนดเองซึ่งคุณสร้างขึ้นโดยใช้นโยบาย StatisticsCollector
ความแตกต่างที่สําคัญระหว่างรายงานที่สร้างใน UI กับใน API คือรายงานที่สร้างด้วย API จะเขียนลงในไฟล์ CSV หรือ JSON (คั่นด้วยบรรทัดใหม่) แทนที่จะเขียนลงในรายงานภาพซึ่งแสดงใน UI
ขีดจํากัดใน Apigee Hybrid
Apigee Hybrid จะบังคับใช้ขีดจำกัดขนาด 30 MB สำหรับชุดข้อมูลผลลัพธ์
วิธีทําการค้นหาข้อมูลวิเคราะห์แบบไม่พร้อมกัน
คุณทําการค้นหาข้อมูลวิเคราะห์แบบอะซิงโครนัสได้3 ขั้นตอน ดังนี้
ขั้นตอนที่ 1 ส่งคําค้นหา
คุณต้องส่งคําขอ POST ไปยัง API /queries API นี้จะบอกให้ Edge ประมวลผลคำขอของคุณในเบื้องหลัง หากการส่งคําค้นหาสําเร็จ API จะแสดงสถานะ 201 และรหัสที่คุณจะใช้อ้างอิงคําค้นหาในขั้นตอนต่อๆ ไป
เช่น
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
เนื้อความของคำขอคือคำอธิบาย JSON ของคำค้นหา ในเนื้อหา JSON ให้ระบุเมตริก มิติข้อมูล และตัวกรองที่กําหนดรายงาน
ตัวอย่างไฟล์ json-query-file แสดงอยู่ด้านล่าง
{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"         
}
ดูคำอธิบายไวยากรณ์ของเนื้อหาคำขอที่สมบูรณ์ได้ที่เกี่ยวกับเนื้อหาคำขอด้านล่าง
ตัวอย่างการตอบกลับ
โปรดทราบว่ารหัสการค้นหา 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd จะรวมอยู่ในคำตอบ นอกจากสถานะ HTTP 201 แล้ว state ของ enqueued ยังหมายความว่าคําขอสําเร็จ 
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",
}
ขั้นตอนที่ 2 ดูสถานะการค้นหา
ทำการเรียก GET เพื่อขอสถานะของการค้นหา คุณต้องระบุรหัสการค้นหาที่แสดงผลจากการเรียกใช้ POST เช่น
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
ตัวอย่างคำตอบ
หากการค้นหายังอยู่ระหว่างดำเนินการ คุณจะได้รับคำตอบเช่นนี้ โดยที่ state คือ running
{
    "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"
}
หลังจากการค้นหาเสร็จสมบูรณ์แล้ว คุณจะเห็นคําตอบลักษณะนี้ โดยตั้งค่า state เป็น 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"
}
ขั้นตอนที่ 3 เรียกข้อมูลผลการค้นหา
หลังจากสถานะการค้นหาเป็น completed แล้ว คุณจะใช้ get results API เพื่อเรียกดูผลลัพธ์ได้ โดยรหัสการค้นหาจะเป็น 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
หากต้องการเรียกข้อมูลไฟล์ที่ดาวน์โหลด คุณจะต้องกำหนดค่าเครื่องมือที่ใช้เพื่อให้บันทึกไฟล์ที่ดาวน์โหลดลงในระบบ เช่น
- หากใช้ cURL คุณจะใช้ตัวเลือก - -O -Jได้ ดังที่แสดงด้านบน
- หากใช้ Postman คุณต้องเลือกปุ่มบันทึกและดาวน์โหลด ในกรณีนี้ ระบบจะดาวน์โหลดไฟล์ ZIP ชื่อ - response
- หากคุณใช้เบราว์เซอร์ Chrome ระบบจะยอมรับการดาวน์โหลดโดยอัตโนมัติ 
หากคําขอประสบความสําเร็จ และมีชุดผลลัพธ์ที่ไม่ใช่ 0 ระบบจะดาวน์โหลดผลลัพธ์ไปยังไคลเอ็นต์เป็นไฟล์ JSON ที่เข้ารหัสไฟล์ ZIP (คั่นด้วยบรรทัดใหม่) ชื่อของไฟล์ที่ดาวน์โหลดจะเป็น
OfflineQueryResult-<query-id>.zip
เช่น
OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
ไฟล์ ZIP มีไฟล์เก็บถาวร .gz ของผลลัพธ์ JSON หากต้องการเข้าถึงไฟล์ JSON ให้แตกไฟล์ที่ดาวน์โหลดมา จากนั้นใช้คำสั่ง gzip เพื่อดึงไฟล์ JSON
unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gzเกี่ยวกับเนื้อหาคําขอ
ส่วนนี้จะอธิบายพารามิเตอร์แต่ละรายการที่คุณใช้ในเนื้อหาคำขอ JSON สำหรับการค้นหาได้ ดูรายละเอียดเกี่ยวกับเมตริกและมิติข้อมูลที่คุณใช้ในคําค้นหาได้ที่ข้อมูลอ้างอิง 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" }
| พร็อพเพอร์ตี้ | คำอธิบาย | จำเป็นหรือไม่ | 
|---|---|---|
| metrics | อาร์เรย์ของเมตริก คุณสามารถระบุเมตริกอย่างน้อย 1 รายการสําหรับการค้นหาที่แต่ละเมตริกมี คุณต้องระบุเฉพาะชื่อเมตริกเท่านั้น 
 พร็อพเพอร์ตี้  "metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงเกี่ยวกับเมตริก มิติข้อมูล และตัวกรอง Analytics | ไม่ | 
| dimensions | อาร์เรย์ของมิติข้อมูลเพื่อจัดกลุ่มเมตริก โปรดดูข้อมูลเพิ่มเติมที่รายการมิติข้อมูลที่รองรับ คุณสามารถระบุมิติข้อมูลได้หลายรายการ | ไม่ | 
| timeRange | ช่วงเวลาสําหรับการค้นหา คุณใช้สตริงที่กําหนดไว้ล่วงหน้าต่อไปนี้เพื่อระบุช่วงเวลาได้ 
 หรือจะระบุ  "timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
} | ใช่ | 
| limit | จำนวนแถวสูงสุดที่แสดงผลลัพธ์ได้ | ไม่ | 
| filter | นิพจน์บูลีนที่ใช้กรองข้อมูลได้ นิพจน์ตัวกรองสามารถรวมเข้าด้วยกันได้โดยใช้คํา AND/OR และควรใส่วงเล็บให้ครบถ้วนเพื่อไม่ให้เกิดความสับสน ดูข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ที่ใช้กรองได้ที่ข้อมูลอ้างอิงเมตริก มิติข้อมูล และตัวกรองของ Analytics ดูข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นที่คุณใช้สร้างนิพจน์ตัวกรองได้ที่ไวยากรณ์นิพจน์ตัวกรอง | ไม่ | 
| groupByTimeUnit | หน่วยเวลาที่ใช้จัดกลุ่มชุดผลลัพธ์ ค่าที่ถูกต้อง ได้แก่ second,minute,hour,day,weekหรือmonthหากการค้นหามี  | ไม่ | 
| outputFormat | รูปแบบเอาต์พุต ค่าที่ใช้ได้มีดังนี้ csvหรือjsonค่าเริ่มต้นคือjsonซึ่งสอดคล้องกับ JSON ที่คั่นด้วยการขึ้นบรรทัดใหม่หมายเหตุ: กำหนดค่าตัวคั่นสำหรับเอาต์พุต CSV โดยใช้พร็อพเพอร์ตี้  | ไม่ | 
| csvDelimiter | ตัวคั่นที่ใช้ในไฟล์ CSV หากตั้งค่า outputFormatเป็นcsvค่าเริ่มต้นคืออักขระ,(คอมมา)  อักขระตัวคั่นที่รองรับ ได้แก่ เครื่องหมายคอมมา (,), เครื่องหมายไปป์ (|) และแท็บ (\t) | ไม่ | 
ไวยากรณ์นิพจน์ตัวกรอง
ส่วนข้อมูลอ้างอิงนี้อธิบายโทเค็นที่คุณสามารถใช้เพื่อสร้างนิพจน์ตัวกรองในส่วนเนื้อหาของคำขอ ตัวอย่างเช่น นิพจน์ต่อไปนี้ใช้โทเค็น "ge" (มากกว่าหรือเท่ากับ)
"filter":"(message_count ge 0)"
| โทเค็น | คำอธิบาย | ตัวอย่าง | 
|---|---|---|
| in | รวมไว้ในรายการ | (apiproxy in 'ethorapi','weather-api') (apiproxy in 'ethorapi') (apiproxy in 'Search','ViewItem') (response_status_code in 400,401,500,501) หมายเหตุ: สตริงต้องอยู่ในเครื่องหมายคำพูด | 
| notin | ยกเว้นจากรายการ | (response_status_code notin 400,401,500,501) | 
| eq | เท่ากับ ( ==) | (response_status_code eq 504) (apiproxy eq 'non-prod') | 
| ne | ไม่เท่ากับ (!=) | (response_status_code ne 500) (apiproxy ne 'non-prod') | 
| gt | มากกว่า ( >) | (response_status_code gt 500) | 
| lt | น้อยกว่า ( <) | (response_status_code lt 500) | 
| ge | มากกว่าหรือเท่ากับ ( >=) | (target_response_code ge 400) | 
| le | น้อยกว่าหรือเท่ากับ ( <=) | (target_response_code le 300) | 
| like | แสดงค่า "จริง" หากรูปแบบสตริงตรงกับรูปแบบที่ระบุ ตัวอย่างทางด้านขวาจะจับคู่ดังนี้ - ค่าใดก็ได้ที่มีคําว่า "ซื้อ" - ค่าใดก็ได้ที่ลงท้ายด้วย "item" - ค่าที่ขึ้นต้นด้วย "Prod" - ค่าใดก็ได้ที่ขึ้นต้นด้วย 4 โปรดทราบว่า response_status_code เป็นตัวเลข 
 | (apiproxy like '%buy%') (apiproxy like '%item') (apiproxy like 'Prod%') | 
| not like | แสดงผลเป็นเท็จหากรูปแบบสตริงตรงกับรูปแบบที่ระบุ | (apiproxy not like '%buy%') (apiproxy not like '%item') (apiproxy not like 'Prod%') | 
| and | ให้คุณใช้ตรรกะ "และ" เพื่อรวมนิพจน์ตัวกรองมากกว่า 1 รายการ ตัวกรองจะมีข้อมูลที่ตรงกับเงื่อนไขทั้งหมด | (target_response_code gt 399) and (response_status_code ge 400) | 
| or | ให้คุณใช้ตรรกะ "หรือ" เพื่อประเมินนิพจน์ตัวกรองที่เป็นไปได้ต่างๆ ตัวกรองจะมีข้อมูลที่ตรงกับเงื่อนไขอย่างน้อย 1 ข้อ | (response_size ge 1000) or (response_status_code eq 500) | 
ข้อจำกัดและค่าเริ่มต้น
ต่อไปนี้เป็นรายการข้อจำกัดและค่าเริ่มต้นสำหรับฟีเจอร์การประมวลผลคำค้นหาแบบไม่พร้อมกัน
| ข้อจำกัด | ค่าเริ่มต้น | คำอธิบาย | 
|---|---|---|
| ขีดจํากัดการเรียกใช้การค้นหา | ดูคำอธิบาย | คุณเรียกใช้ Management API /queries ได้สูงสุด 7 ครั้งต่อชั่วโมงเพื่อเริ่มรายงานแบบไม่พร้อมกัน หากคุณใช้โควต้าการเรียกเกิน API จะแสดงการตอบกลับ HTTP 429 | 
| ขีดจํากัดการค้นหาที่ใช้งานอยู่ | 10 | คุณมีคำค้นหาที่ทำงานอยู่ได้สูงสุด 10 รายการสำหรับองค์กร/สภาพแวดล้อม | 
| เกณฑ์เวลาดำเนินการของคําค้นหา | 6 ชั่วโมง | ระบบจะสิ้นสุดการค้นหาที่ใช้เวลานานกว่า 6 ชั่วโมง | 
| ช่วงเวลาการค้นหา | ดูคำอธิบาย | ช่วงเวลาสูงสุดที่อนุญาตสําหรับการค้นหาคือ 365 วัน | 
| จํากัดของมิติข้อมูลและเมตริก | 25 | จํานวนสูงสุดของมิติข้อมูลและเมตริกที่ระบุได้ในเพย์โหลดการค้นหา | 
เกี่ยวกับผลการค้นหา
ต่อไปนี้คือตัวอย่างผลลัพธ์ในรูปแบบ JSON เอาต์พุตประกอบด้วยแถว JSON ที่คั่นด้วยตัวคั่นบรรทัดใหม่
{"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"}    
…
คุณจะดึงข้อมูลผลลัพธ์จาก URL ได้จนกว่าข้อมูลในที่เก็บข้อมูลจะหมดอายุ ดูข้อจำกัดและค่าเริ่มต้น
ตัวอย่าง
ตัวอย่างที่ 1: ผลรวมของจํานวนข้อความ
ค้นหาผลรวมของจํานวนข้อความในช่วง 60 นาทีที่ผ่านมา
การค้นหา
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
เนื้อความของคำขอจาก last60minutes.json
{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}
ตัวอย่างที่ 2: ช่วงเวลาที่กําหนดเอง
ค้นหาโดยใช้ช่วงเวลาที่กําหนดเอง
การค้นหา
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
เนื้อความของคำขอจาก 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"
   }
}
ตัวอย่างที่ 3: ธุรกรรมต่อนาที
ค้นหาเมตริกธุรกรรมต่อนาที (tpm)
การค้นหา
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
เนื้อความของคำขอจาก tpm.json
{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}
ตัวอย่างผลลัพธ์
ข้อความที่ตัดตอนมาจากไฟล์ผลลัพธ์
{"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"}
...ตัวอย่างที่ 4: การใช้นิพจน์ตัวกรอง
การค้นหาด้วยนิพจน์ตัวกรองที่ใช้โอเปอเรเตอร์บูลีน
การค้นหา
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
เนื้อความของคำขอจาก 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"
   }
}
ตัวอย่างที่ 5: การส่งนิพจน์ในพารามิเตอร์เมตริก
การค้นหาด้วยนิพจน์ที่ส่งผ่านเป็นส่วนหนึ่งของพารามิเตอร์เมตริก คุณใช้เฉพาะนิพจน์ที่มีโอเปอเรเตอร์เดียวได้
การค้นหา
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
เนื้อความของคำขอจาก metricsExpression.json
{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}
วิธีสร้างการค้นหารายงานการสร้างรายได้แบบอะซิงโครนัส
คุณสามารถบันทึกธุรกรรมการสร้างรายได้ที่สำเร็จทั้งหมดภายในช่วงเวลาหนึ่งๆ สำหรับชุดเกณฑ์ที่เฉพาะเจาะจงได้โดยใช้ขั้นตอนที่อธิบายในส่วนนี้
เช่นเดียวกับการค้นหาข้อมูลวิเคราะห์แบบอะซิงโครนัส คุณจะทำการค้นหารายงานการสร้างรายได้แบบอะซิงโครนัสได้3 ขั้นตอน ได้แก่ (1) ส่งการค้นหา (2) ดูสถานะการค้นหา และ (3) เรียกดูผลการค้นหา
ขั้นตอนที่ 1 คือการส่งคําค้นหา ซึ่งอธิบายไว้ด้านล่าง
ขั้นตอนที่ 2 และ 3 เหมือนกับการค้นหาข้อมูลวิเคราะห์แบบไม่พร้อมกันทุกประการ ดูข้อมูลเพิ่มเติมได้ที่วิธีทําการค้นหาข้อมูลวิเคราะห์แบบไม่พร้อมกัน
หากต้องการส่งการค้นหาสำหรับรายงานการสร้างรายได้แบบอะซิงโครนัส ให้ส่งคำขอ POST ไปยัง /mint/organizations/org_id/async-reports
คุณระบุสภาพแวดล้อมได้โดยส่งพารามิเตอร์การค้นหา environment หากไม่ได้ระบุไว้ พารามิเตอร์การค้นหาจะเป็น prod โดยค่าเริ่มต้น เช่น
/mint/organizations/org_id/async-reports?environment=prod
ในเนื้อหาของคำขอ ให้ระบุเกณฑ์การค้นหาต่อไปนี้
| ชื่อ | คำอธิบาย | ค่าเริ่มต้น | ต้องระบุหรือไม่ | 
| appCriteria | รหัสและองค์กรของแอปพลิเคชันที่ต้องการรวมไว้ในรายงาน หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ ระบบจะรวมแอปพลิเคชันทั้งหมดไว้ในรายงาน | ไม่มี | ไม่ | 
| billingMonth | เดือนที่เรียกเก็บเงินสำหรับรายงาน เช่น JULY | ไม่มี | ใช่ | 
| billingYear | ปีการเรียกเก็บเงินของรายงาน เช่น 2015 | ไม่มี | ใช่ | 
| currencyOption | สกุลเงินของรายงาน ค่าที่ใช้ได้มีดังนี้ 
 หากเลือก EUR, GBP หรือ USD รายงานจะแสดงธุรกรรมทั้งหมดโดยใช้สกุลเงินเดียวนั้นตามอัตราแลกเปลี่ยนที่มีผลในวันที่ทำธุรกรรม | ไม่มี | ไม่ | 
| devCriteria | รหัสนักพัฒนาแอปหรืออีเมล และชื่อองค์กรของนักพัฒนาแอปที่ต้องการให้รวมไว้ในรายงาน หากไม่ระบุพร็อพเพอร์ตี้นี้ ระบบจะรวมนักพัฒนาแอปทั้งหมดไว้ในรายงาน เช่น "devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
] | ไม่มี | ไม่ | 
| fromDate | วันที่เริ่มต้นของรายงานในรูปแบบ UTC | ไม่มี | ใช่ | 
| monetizationPakageIds | รหัสของแพ็กเกจ API อย่างน้อย 1 รายการที่จะรวมไว้ในรายงาน หากไม่ระบุพร็อพเพอร์ตี้นี้ ระบบจะรวมแพ็กเกจ API ทั้งหมดไว้ในรายงาน | ไม่มี | ไม่ | 
| productIds | รหัสของผลิตภัณฑ์ API อย่างน้อย 1 รายการที่จะรวมไว้ในรายงาน หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ ระบบจะรวมผลิตภัณฑ์ API ทั้งหมดไว้ในรายงาน | ไม่มี | ไม่ | 
| ratePlanLevels | ประเภทแพ็กเกจราคาที่จะรวมไว้ในรายงาน ค่าที่ใช้ได้มีดังนี้ 
 หากไม่ได้ระบุพร็อพเพอร์ตี้นี้ ระบบจะรวมทั้งแพ็กเกจราคาเฉพาะนักพัฒนาแอปและแพ็กเกจราคามาตรฐานไว้ในรายงาน | ไม่มี | ไม่ | 
| toDate | วันที่สิ้นสุดของรายงานตามเขตเวลา UTC | ไม่มี | ใช่ | 
ตัวอย่างเช่น คำขอต่อไปนี้จะสร้างรายงานการสร้างรายได้แบบไม่พร้อมกันสำหรับเดือนมิถุนายน 2017 สำหรับผลิตภัณฑ์ API และรหัสนักพัฒนาแอปที่ระบุ วันที่และเวลาของรายงาน fromDate และ toDate อยู่ในรูปแบบ UTC/GMT และอาจมีเวลารวมอยู่ด้วย
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