एसिंक्रोनस कस्टम रिपोर्ट एपीआई का इस्तेमाल करें

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

Edge Analytics में, इंटरैक्टिव डैशबोर्ड, कस्टम रिपोर्ट जनरेटर, और इनसे जुड़ी सुविधाएं मिलती हैं. हालांकि, इन सुविधाओं को इंटरैक्टिव बनाया गया है: इनमें एपीआई या यूज़र इंटरफ़ेस (यूआई) का अनुरोध सबमिट किया जाता है. इसके बाद, जब तक Analytics सर्वर से जवाब नहीं मिल जाता, तब तक अनुरोध को ब्लॉक कर दिया जाता है.

हालांकि, अगर Analytics के अनुरोधों को पूरा होने में बहुत ज़्यादा समय लगता है, तो वे टाइम आउट हो सकते हैं. अगर किसी क्वेरी के अनुरोध को बहुत ज़्यादा डेटा (उदाहरण के लिए, 100 जीबी) प्रोसेस करने की ज़रूरत है, तो टाइम आउट होने की वजह से वह पूरा नहीं हो सकता.

क्वेरी को एसिंक्रोनस तरीके से प्रोसेस करने की सुविधा की मदद से, बहुत बड़े डेटा सेट के लिए क्वेरी की जा सकती है. साथ ही, नतीजे बाद में पाए जा सकते हैं. अगर आपको लगता है कि आपकी इंटरैक्टिव क्वेरी का समय खत्म हो गया है, तो ऑफ़लाइन क्वेरी का इस्तेमाल किया जा सकता है. एसिंक्रोनस क्वेरी प्रोसेसिंग, इन स्थितियों में एक अच्छा विकल्प हो सकता है:

  • बड़े समयांतराल के डेटा का विश्लेषण करना और रिपोर्ट बनाना.
  • डेटा का विश्लेषण अलग-अलग ग्रुपिंग डाइमेंशन और अन्य शर्तों के साथ किया जाता है. इससे क्वेरी ज़्यादा मुश्किल हो जाती है.
  • जब आपको पता चलता है कि कुछ उपयोगकर्ताओं या संगठनों के लिए डेटा वॉल्यूम में काफ़ी बढ़ोतरी हुई है, तो क्वेरी मैनेज करना.

इस दस्तावेज़ में, एपीआई का इस्तेमाल करके एसिंक्रोनस क्वेरी शुरू करने का तरीका बताया गया है. यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल भी किया जा सकता है. इसके बारे में कस्टम रिपोर्ट चलाना लेख में बताया गया है.

रिपोर्टिंग एपीआई की तुलना यूज़र इंटरफ़ेस (यूआई) से करना

कस्टम रिपोर्ट बनाना और उन्हें मैनेज करना लेख में, कस्टम रिपोर्ट बनाने और उन्हें चलाने के लिए Edge UI का इस्तेमाल करने का तरीका बताया गया है. इन रिपोर्ट को सिंक्रोनस या असिंक्रोनस तरीके से जनरेट किया जा सकता है.

यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके कस्टम रिपोर्ट जनरेट करने के लिए, ज़्यादातर कॉन्सेप्ट एपीआई का इस्तेमाल करने पर भी लागू होते हैं. इसका मतलब है कि एपीआई की मदद से कस्टम रिपोर्ट बनाते समय, Edge में पहले से मौजूद मेट्रिक, डाइमेंशन, और फ़िल्टर के साथ-साथ, StatisticsCollector नीति का इस्तेमाल करके बनाई गई कस्टम मेट्रिक भी तय की जा सकती हैं.

यूज़र इंटरफ़ेस (यूआई) और एपीआई में जनरेट की गई रिपोर्ट के बीच मुख्य अंतर यह है कि एपीआई की मदद से जनरेट की गई रिपोर्ट, यूज़र इंटरफ़ेस (यूआई) में दिखने वाली विज़ुअल रिपोर्ट के बजाय, सीएसवी या JSON (नई लाइन से अलग किया गया) फ़ाइलों में लिखी जाती हैं.

Apigee hybrid में सीमाएं

Apigee hybrid, नतीजे के डेटा सेट के लिए 30 एमबी की सीमा लागू करता है.

एसिंक्रोनस Analytics क्वेरी बनाने का तरीका

एसिंक्रोनस Analytics क्वेरी को तीन चरणों में बनाया जाता है:

  1. क्वेरी सबमिट करें.

  2. क्वेरी की स्थिति पाएं.

  3. क्वेरी के नतीजों को फिर से पाएं.

पहला चरण. क्वेरी सबमिट करना

आपको /queries एपीआई को एक POST अनुरोध भेजना होगा. यह एपीआई, Edge को आपके अनुरोध को बैकग्राउंड में प्रोसेस करने के लिए कहता है. क्वेरी सबमिट हो जाने पर, एपीआई 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 शामिल है. एचटीटीपी स्टेटस 201 के अलावा, enqueued के state का मतलब है कि अनुरोध पूरा हो गया है.

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",
}

दूसरा चरण. क्वेरी का स्टेटस पाना

क्वेरी की स्थिति का अनुरोध करने के लिए, 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"
}

तीसरा चरण. क्वेरी के नतीजे वापस पाना

क्वेरी का स्टेटस completed होने के बाद, नतीजों को वापस पाने के लिए get results एपीआई का इस्तेमाल किया जा सकता है. इसमें क्वेरी आईडी फिर से 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 का इस्तेमाल किया जाता है, तो आपको सेव करें और डाउनलोड करें बटन चुनना होगा. इस मामले में, response नाम की ZIP फ़ाइल डाउनलोड होती है.

  • Chrome ब्राउज़र का इस्तेमाल करने पर, डाउनलोड अपने-आप स्वीकार हो जाता है.

अगर अनुरोध पूरा हो जाता है और नतीजे का सेट शून्य नहीं है, तो नतीजे को क्लाइंट के लिए, ज़िप की गई JSON (न्यूलाइन डीलिमिटेड) फ़ाइल के तौर पर डाउनलोड किया जाता है. डाउनलोड की गई फ़ाइल का नाम यह होगा:

OfflineQueryResult-<query-id>.zip

उदाहरण के लिए:

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

ज़िप फ़ाइल में, JSON फ़ॉर्मैट में मिले नतीजों की .gz संग्रह फ़ाइल होती है. JSON फ़ाइल को ऐक्सेस करने के लिए, डाउनलोड की गई फ़ाइल को अनज़िप करें. इसके बाद, JSON फ़ाइल को निकालने के लिए gzip कमांड का इस्तेमाल करें:

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

मेट्रिक का कलेक्शन. किसी क्वेरी के लिए एक या उससे ज़्यादा मेट्रिक तय की जा सकती हैं. हर मेट्रिक में ये शामिल होती हैं. सिर्फ़ मेट्रिक का नाम डालना ज़रूरी है:

  • name: (ज़रूरी है) मेट्रिक का नाम, जैसा कि metrics टेबल में तय किया गया है.
  • function: (ज़रूरी नहीं) एग्रीगेशन फ़ंक्शन, जैसे कि avg, min, max या sum.

    सभी मेट्रिक के साथ, सभी एग्रीगेशन फ़ंक्शन काम नहीं करते. मेट्रिक के बारे में जानकारी देने वाले दस्तावेज़ में एक टेबल दी गई है. इसमें मेट्रिक का नाम और मेट्रिक के साथ काम करने वाला फ़ंक्शन (avg, min, max,sum) बताया गया है.

  • alias: (ज़रूरी नहीं) आउटपुट में मेट्रिक डेटा वाली प्रॉपर्टी का नाम. अगर इसे शामिल नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से मेट्रिक के नाम के साथ एग्रीगेशन फ़ंक्शन के नाम पर सेट हो जाता है.
  • operator: (ज़रूरी नहीं) मेट्रिक की वैल्यू कैलकुलेट होने के बाद, उस पर कोई कार्रवाई की जा सकती है. value प्रॉपर्टी के साथ काम करता है. इन कार्रवाइयों के लिए यह सुविधा उपलब्ध है: + - / % *.
  • value: (ज़रूरी नहीं) यह वह वैल्यू है जिसे तय किए गए operator के हिसाब से, कैलकुलेट की गई मेट्रिक पर लागू किया जाता है.

operator और value प्रॉपर्टी, मेट्रिक पर की गई पोस्ट-प्रोसेसिंग की कार्रवाई के बारे में बताती हैं. उदाहरण के लिए, अगर आपने response_processing_latency मेट्रिक तय की है, तो यह मेट्रिक, जवाब प्रोसेस होने में लगने वाले औसत समय को मिलीसेकंड में दिखाती है. यूनिट को सेकंड में बदलने के लिए, operator को "/" और value को ”1000.0“ पर सेट करें:

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

ज़्यादा जानकारी के लिए, Analytics मेट्रिक, डाइमेंशन, और फ़िल्टर का रेफ़रंस देखें.

नहीं
dimensions मेट्रिक को ग्रुप करने के लिए डाइमेंशन का कलेक्शन. ज़्यादा जानकारी के लिए, इस्तेमाल किए जा सकने वाले डाइमेंशन की सूची देखें. एक से ज़्यादा डाइमेंशन तय किए जा सकते हैं. नहीं
timeRange क्वेरी के लिए समयसीमा.

तारीख की सीमा तय करने के लिए, पहले से तय की गई इन स्ट्रिंग का इस्तेमाल किया जा सकता है:

  • last60minutes
  • last24hours
  • last7days

इसके अलावा, आईएसओ फ़ॉर्मैट में timeRange को इस तरह भी बताया जा सकता है: yyyy-mm-ddThh:mm:ssZ. उदाहरण के लिए:

"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.

अगर किसी क्वेरी में groupByTimeUnit शामिल है, तो नतीजे को तय की गई समय इकाई के आधार पर एग्रीगेट किया जाता है. साथ ही, नतीजे के टाइमस्टैंप में मिलीसेकंड की सटीक जानकारी शामिल नहीं होती है. अगर किसी क्वेरी में groupByTimeUnit शामिल नहीं है, तो नतीजे के तौर पर मिले टाइमस्टैंप में मिलीसेकंड की सटीक जानकारी शामिल होती है.

नहीं
outputFormat आउटपुट का फ़ॉर्मैट. मान्य वैल्यू में ये शामिल हैं: csv या json. डिफ़ॉल्ट रूप से, यह न्यूलाइन डीलिमिटेड JSON के लिए json पर सेट होता है.

ध्यान दें: csvDelimiter प्रॉपर्टी का इस्तेमाल करके, CSV आउटपुट के लिए सीमांकक को कॉन्फ़िगर करें.

नहीं
csvDelimiter अगर outputFormat को csv पर सेट किया गया है, तो 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 अगर स्ट्रिंग पैटर्न, दिए गए पैटर्न से मेल खाता है, तो यह फ़ंक्शन true दिखाता है.

दाईं ओर दिया गया उदाहरण, इस तरह से मैच होता है:

- 'buy' शब्द वाली कोई भी वैल्यू

- '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 इस विकल्प की मदद से, एक से ज़्यादा फ़िल्टर एक्सप्रेशन शामिल करने के लिए 'और' लॉजिक का इस्तेमाल किया जा सकता है. फ़िल्टर में ऐसा डेटा शामिल होता है जो सभी शर्तों को पूरा करता है.
(target_response_code gt 399) and (response_status_code ge 400)
or इसकी मदद से, फ़िल्टर करने के अलग-अलग एक्सप्रेशन का आकलन करने के लिए, 'या' लॉजिक का इस्तेमाल किया जा सकता है. इस फ़िल्टर में ऐसा डेटा शामिल होता है जो कम से कम एक शर्त को पूरा करता है.
(response_size ge 1000) or (response_status_code eq 500)

पाबंदियां और डिफ़ॉल्ट वैल्यू

एसिंक्रोनस क्वेरी प्रोसेसिंग सुविधा के लिए, यहां पाबंदियों और डिफ़ॉल्ट वैल्यू की सूची दी गई है.

पाबंदी डिफ़ॉल्ट ब्यौरा
क्वेरी कॉल की सीमा ब्यौरा देखें एसिंक्रोनस रिपोर्ट शुरू करने के लिए, /queries मैनेजमेंट एपीआई को हर घंटे सात कॉल किए जा सकते हैं. अगर कॉल का कोटा पूरा हो जाता है, तो एपीआई, एचटीटीपी 429 रिस्पॉन्स दिखाता है.
क्वेरी की सीमा 10 किसी संगठन/एनवायरमेंट के लिए, ज़्यादा से ज़्यादा 10 क्वेरी चालू हो सकती हैं.
क्वेरी को पूरा होने में लगने वाले समय का थ्रेशोल्ड 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"}    
…

डेटा के रिपॉज़िटरी में मौजूद रहने तक, यूआरएल से नतीजे फ़ेच किए जा सकते हैं. सीमाएं और डिफ़ॉल्ट वैल्यू देखें.

उदाहरण

पहला उदाहरण: मैसेज की संख्या का योग

पिछले 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"
}

दूसरा उदाहरण: पसंद के मुताबिक समयसीमा

पसंद के मुताबिक समयसीमा का इस्तेमाल करके क्वेरी करना.

क्वेरी

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"
   }
}

तीसरा उदाहरण: हर मिनट होने वाले लेन-देन

लेन-देन प्रति मिनट (टीपीएम) के लिए मेट्रिक पर क्वेरी.

क्वेरी

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"
}

एसिंक्रोनस तरीके से कमाई करने से जुड़ी रिपोर्ट की क्वेरी कैसे की जाती है

इस सेक्शन में दिए गए निर्देशों का पालन करके, किसी खास समयसीमा में कमाई करने से जुड़े सभी सफल ट्रांज़ैक्शन कैप्चर किए जा सकते हैं. इसके लिए, आपको कुछ शर्तें पूरी करनी होंगी.

एसिंक्रोनस Analytics क्वेरी की तरह ही, तीन चरणों में एसिंक्रोनस कमाई की रिपोर्ट क्वेरी की जाती हैं: (1) क्वेरी सबमिट करें, (2) क्वेरी की स्थिति पाएं, और (3) क्वेरी के नतीजे पाएं.

क्वेरी सबमिट करने के पहले चरण के बारे में यहां बताया गया है.

दूसरा और तीसरा चरण, एसिंक्रोनस Analytics क्वेरी के लिए इस्तेमाल किए जाने वाले चरणों के जैसा ही होता है. ज़्यादा जानकारी के लिए, एसिंक्रोनस तरीके से Analytics क्वेरी करने का तरीका लेख पढ़ें.

एसिंक्रोनस कमाई की रिपोर्ट के लिए क्वेरी सबमिट करने के लिए, /mint/organizations/org_id/async-reports पर POST अनुरोध जारी करें.

इसके अलावा, environment क्वेरी पैरामीटर पास करके, एनवायरमेंट के बारे में बताया जा सकता है. अगर कोई वैल्यू तय नहीं की गई है, तो क्वेरी पैरामीटर की डिफ़ॉल्ट वैल्यू prod होती है. उदाहरण के लिए:

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

अनुरोध के मुख्य हिस्से में, खोज के लिए इन शर्तों के बारे में बताएं.

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
appCriteria रिपोर्ट में शामिल किए जाने वाले किसी ऐप्लिकेशन का आईडी और संगठन. अगर इस प्रॉपर्टी को नहीं चुना जाता है, तो रिपोर्ट में सभी ऐप्लिकेशन शामिल किए जाते हैं. लागू नहीं नहीं
billingMonth रिपोर्ट के लिए बिलिंग का महीना, जैसे कि जुलाई. लागू नहीं हां
billingYear रिपोर्ट के लिए बिलिंग का साल, जैसे कि 2015. लागू नहीं हां
currencyOption रिपोर्ट के लिए मुद्रा. मान्य वैल्यू में ये शामिल हैं:
  • LOCAL - रिपोर्ट की हर लाइन को लागू होने वाले रेट प्लान का इस्तेमाल करके दिखाया जाता है. इसका मतलब है कि अगर डेवलपर के पास ऐसे प्लान हैं जिनमें अलग-अलग मुद्राओं का इस्तेमाल किया जाता है, तो एक रिपोर्ट में कई मुद्राएं हो सकती हैं.
  • EUR - स्थानीय मुद्रा में किए गए लेन-देन को यूरो में बदलकर दिखाया जाता है.
  • GPB - स्थानीय मुद्रा में किए गए लेन-देन को यूनाइटेड किंगडम के पाउंड में बदलकर दिखाया जाता है.
  • USD - स्थानीय मुद्रा में किए गए लेन-देन को अमेरिकी डॉलर में बदलकर दिखाया जाता है.

अगर आपने EUR, GBP या USD चुना है, तो रिपोर्ट में उस मुद्रा में किए गए सभी लेन-देन दिखेंगे. ये लेन-देन, लेन-देन की तारीख के हिसाब से लागू एक्सचेंज रेट के आधार पर दिखेंगे.

लागू नहीं नहीं
devCriteria

रिपोर्ट में शामिल करने के लिए, किसी डेवलपर का डेवलपर आईडी या ईमेल पता और संगठन का नाम. अगर इस प्रॉपर्टी को नहीं चुना जाता है, तो रिपोर्ट में सभी डेवलपर शामिल होते हैं.

उदाहरण के लिए:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
लागू नहीं नहीं
fromDate यूटीसी के मुताबिक, रिपोर्ट शुरू होने की तारीख. लागू नहीं हां
monetizationPakageIds रिपोर्ट में शामिल करने के लिए, एक या उससे ज़्यादा एपीआई पैकेज का आईडी. अगर इस प्रॉपर्टी की वैल्यू नहीं दी जाती है, तो रिपोर्ट में सभी एपीआई पैकेज शामिल किए जाते हैं. लागू नहीं नहीं
productIds रिपोर्ट में शामिल करने के लिए, एक या एक से ज़्यादा एपीआई प्रॉडक्ट का आईडी. अगर इस प्रॉपर्टी की वैल्यू नहीं दी जाती है, तो रिपोर्ट में एपीआई के सभी प्रॉडक्ट शामिल किए जाते हैं. लागू नहीं नहीं
ratePlanLevels

रिपोर्ट में शामिल किए जाने वाले किराये के प्लान का टाइप. मान्य वैल्यू में ये शामिल हैं:

  • DEVELOPER - डेवलपर के लिए तय की गई दर वाला प्लान.
  • STANDARD - स्टैंडर्ड रेट प्लान.

अगर इस प्रॉपर्टी को नहीं चुना जाता है, तो रिपोर्ट में डेवलपर के हिसाब से तय किए गए और स्टैंडर्ड रेट प्लान, दोनों शामिल किए जाते हैं.

लागू नहीं नहीं
toDate यूटीसी के मुताबिक, रिपोर्ट की आखिरी तारीख. लागू नहीं हां

उदाहरण के लिए, यहां दी गई अनुरोध से, एपीआई प्रॉडक्ट और डेवलपर आईडी के लिए, जून 2017 की एसिंक्रोनस कमाई की रिपोर्ट जनरेट होती है. रिपोर्ट fromDate और toDate की तारीखें और समय यूटीसी/जीएमटी में होते हैं. इनमें समय भी शामिल हो सकता है.

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