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

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

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

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

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

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

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

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

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

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

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

Apigee हाइब्रिड में सीमाएं

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

एसिंक्रोनस आंकड़ों की क्वेरी बनाने का तरीका

एसिंक्रोनस ऐनलिटिक्स क्वेरी बनाने के लिए, तीन चरण पूरे करने होंगे:

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

  2. क्वेरी की स्थिति जानें.

  3. क्वेरी के नतीजे फ़ेच करें.

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

आपको /queries एपीआई को एक पोस्ट अनुरोध भेजना होगा. यह एपीआई, 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 होने के बाद, नतीजे पाने के लिए नतीजे पाएं एपीआई का इस्तेमाल किया जा सकता है. यहां क्वेरी आईडी फिर से 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

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: (ज़रूरी है) मेट्रिक में टेबल के हिसाब से मेट्रिक का नाम.
  • 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 दिखाता है.

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

- ऐसी कोई भी वैल्यू जिसमें 'खरीदें' शब्द हो

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

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

हर मिनट के लेन-देन (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"}
...

चौथा उदाहरण: फ़िल्टर एक्सप्रेशन का इस्तेमाल करना

बूलियन ऑपरेटर का इस्तेमाल करने वाले फ़िल्टर एक्सप्रेशन वाली क्वेरी.

क्वेरी

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

पांचवां उदाहरण: मेट्रिक पैरामीटर में एक्सप्रेशन पास करना

मेट्रिक पैरामीटर के हिस्से के तौर पर पास की गई एक्सप्रेशन वाली क्वेरी. सिर्फ़ एक ऑपरेटर वाले आसान एक्सप्रेशन का इस्तेमाल किया जा सकता है.

क्वेरी

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

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

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

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

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

दूसरा और तीसरा चरण, असाइनॉन्स (एक साथ होने वाली) आंकड़ों की क्वेरी के लिए ठीक वैसा ही है. ज़्यादा जानकारी के लिए, असाइनॉन्स (एक साथ नहीं होने वाली) आंकड़ों की क्वेरी बनाने का तरीका लेख पढ़ें.

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

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

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

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

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