অ্যাসিঙ্ক্রোনাস কাস্টম রিপোর্ট API ব্যবহার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Edge Analytics-এ ইন্ট্যার‍্যাক্টিভ ড্যাশবোর্ড, কাস্টম রিপোর্ট জেনারেটর ও এই ধরনের আরও অনেক সুবিধা রয়েছে। তবে, এইসব ফিচার ইন্ট্যার‍্যাক্টিভ হওয়ার কথা: আপনি API বা UI অনুরোধ জমা দেন এবং অ্যানালিটিক্স সার্ভার উত্তর না দেওয়া পর্যন্ত অনুরোধটি ব্লক করা থাকে।

তবে, অ্যানালিটিক্স সংক্রান্ত অনুরোধ সম্পূর্ণ হতে বেশি সময় লাগলে তা টাইম-আউট হয়ে যেতে পারে। কোয়েরি অনুরোধে প্রচুর পরিমাণে ডেটা প্রসেস করতে হলে (যেমন, ১০০ জিবি), টাইম-আউটের কারণে এটি ব্যর্থ হতে পারে।

অ্যাসিঙ্ক্রোনাস কোয়েরি প্রসেসিং আপনাকে খুব বড় ডেটা সেটের জন্য কোয়েরি করতে এবং পরে ফলাফল পেতে দেয়। আপনি ইন্ট্যার‍্যাক্টিভ কোয়েরি টাইম-আউট হয়ে গেলে, অফলাইন কোয়েরি ব্যবহার করার কথা বিবেচনা করতে পারেন। অ্যাসিঙ্ক্রোনাস কোয়েরি প্রসেসিং ভাল বিকল্প হতে পারে এমন কিছু পরিস্থিতি:

  • দীর্ঘ সময় ধরে বিশ্লেষণ ও রিপোর্ট তৈরি করা।
  • বিভিন্ন গ্রুপ করার ডাইমেনশন ও অন্যান্য সীমাবদ্ধতা সহ ডেটা বিশ্লেষণ করা যা কোয়েরিকে আরও জটিল করে তোলে।
  • কিছু ব্যবহারকারী বা প্রতিষ্ঠানের জন্য ডেটার পরিমাণ উল্লেখযোগ্যভাবে বেড়ে গেছে বলে দেখলে কোয়েরি ম্যানেজ করা।

API ব্যবহার করে কীভাবে অ্যাসিঙ্ক্রোনাস কোয়েরি শুরু করতে হয় তা এই ডকুমেন্টে বর্ণনা করা হয়েছে। এছাড়াও, কাস্টম রিপোর্ট চালানো নিবন্ধে বর্ণিত UI ব্যবহার করতে পারেন।

UI-এর সাথে রিপোর্টিং API-এর তুলনা করা

কাস্টম রিপোর্ট তৈরি ও ম্যানেজ করা নিবন্ধে Edge UI ব্যবহার করে কীভাবে কাস্টম রিপোর্ট তৈরি ও রান করতে হয় তা বর্ণনা করা হয়েছে। আপনি সেইসব রিপোর্ট সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস পদ্ধতিতে রান করতে পারবেন।

UI-এর মাধ্যমে কাস্টম রিপোর্ট তৈরি করার বেশিরভাগ ধারণা API ব্যবহারের ক্ষেত্রেও প্রযোজ্য। অর্থাৎ, API-এর মাধ্যমে কাস্টম রিপোর্ট তৈরি করার সময় আপনি Edge-এ বিল্ট-ইন মেট্রিক, ডাইমেনশন, ও ফিল্টার এবং StatisticsCollector নীতি ব্যবহার করে তৈরি করা কাস্টম মেট্রিক নির্দিষ্ট করেন।

UI এবং API-তে তৈরি হওয়া রিপোর্টের মধ্যে প্রধান পার্থক্য হল যে API-এর মাধ্যমে তৈরি হওয়া রিপোর্টগুলি UI-তে দেখানো ভিজ্যুয়াল রিপোর্টের পরিবর্তে CSV বা JSON (নিউলাইন ডিলিমিটেড) ফাইলে লেখা হয়।

Apigee হাইব্রিডে সীমা

Apigee hybrid, ফলাফল ডেটা সেটের উপর ৩০ এমবি সাইজের সীমা প্রয়োগ করে।

অ্যাসিঙ্ক্রোনাস অ্যানালিটিক্স কোয়েরি কীভাবে করতে হয়

আপনি তিনটি ধাপে অ্যাসিঙ্ক্রোনাস অ্যানালিটিক্স কোয়েরি করেন:

  1. কোয়েরি জমা দিন।

  2. কোয়েরির স্ট্যাটাস জানুন।

  3. কোয়েরির ফলাফল রিট্রিভ করুন।

ধাপ ১. কোয়েরি জমা দিন

আপনাকে অবশ্যই /queries API-তে একটি POST অনুরোধ পাঠাতে হবে। এই 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",
}

ধাপ ২. কোয়েরির স্ট্যাটাস পাওয়া

কোয়েরির স্ট্যাটাস জানতে 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 হয়ে গেলে, আপনি ফলাফল পেতে ফলাফল পান 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 ব্যবহার করলে, আপনাকে সেভ ও ডাউনলোড করুন বোতামটি বেছে নিতে হবে। এই ক্ষেত্রে, response নামের একটি জিপ ফাইল ডাউনলোড করা হয়।

  • আপনি 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-কে ISO ফর্ম্যাটে শুরু ও শেষের টাইমস্ট্যাম্প বর্ণনা করে এমন একটি স্ট্রাকচার হিসেবে নির্দিষ্ট করতে পারেন: 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 প্রদান করা প্যাটার্নের সাথে স্ট্রিং প্যাটার্ন ম্যাচ করলে 'সত্য' রিটার্ন করে।

ডানদিকের উদাহরণটি নিচে উল্লেখ করা বিষয়গুলির সাথে মিলছে:

- 'কিনুন' শব্দ আছে এমন যেকোনও ভ্যালু

- 'item' দিয়ে শেষ হওয়া যেকোনও ভ্যালু

- 'Prod' দিয়ে শুরু হওয়া যেকোনও ভ্যালু

- ৪ দিয়ে শুরু হওয়া যেকোনও ভ্যালু, মনে রাখবেন 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 ম্যানেজমেন্ট API-তে প্রতি ঘণ্টায় সর্বাধিক সাতটি কল করতে পারবেন। আপনি কল কোটা অতিক্রম করলে, API একটি HTTP 429 উত্তর রিটার্ন করে।
অ্যাক্টিভ কোয়েরির সীমা 10 কোনও সংস্থা/এনভায়রনমেন্টের জন্য সর্বাধিক ১০টি অ্যাক্টিভ কোয়েরি থাকতে পারে।
কোয়েরি এক্সিকিউশন টাইম থ্রেশহোল্ড ৬ ঘণ্টা ৬ ঘণ্টার বেশি সময় ধরে চলা কোয়েরি বন্ধ করে দেওয়া হবে।
কোয়েরির সময়সীমা বিবরণ দেখুন কোয়েরির জন্য সর্বাধিক অনুমোদিত সময়সীমা হল ৩৬৫ দিন।
ডাইমেনশন ও মেট্রিক্স সংক্রান্ত সীমা 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 থেকে ফলাফল ফেচ করতে পারবেন। বাধ্যবাধকতা ও ডিফল্ট দেখুন।

উদাহরণ

উদাহরণ ১: মেসেজের সংখ্যার যোগফল

গত ৬০ মিনিটে মেসেজের সংখ্যার যোগফল সংক্রান্ত কোয়েরি।

কোয়েরি

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

কীভাবে অ্যাসিঙ্ক্রোনাস মনিটাইজেশন রিপোর্ট কোয়েরি করতে হয়

এই বিভাগে বর্ণিত ধাপগুলি অনুসরণ করে, আপনি নির্দিষ্ট কিছু মানদণ্ডের জন্য প্রদত্ত সময়ের মধ্যে সমস্ত সফল মনিটাইজেশন ট্রানজ্যাকশন ক্যাপচার করতে পারবেন।

অ্যাসিঙ্ক্রোনাস অ্যানালিটিক্স কোয়েরির মতো, আপনি তিনটি ধাপে অ্যাসিঙ্ক্রোনাস মনিটাইজেশন রিপোর্ট কোয়েরি করেন: (১) কোয়েরি জমা দিন, (২) কোয়েরির স্ট্যাটাস পান এবং (৩) কোয়েরির ফলাফল পান।

ধাপ ১, কোয়েরি জমা দেওয়া, নিচে বর্ণনা করা হয়েছে।

অ্যাসিঙ্ক্রোনাস অ্যানালিটিক্স কোয়েরির ক্ষেত্রে ধাপ ২ ও ৩ ঠিক একই রকম। আরও তথ্যের জন্য, অ্যাসিঙ্ক্রোনাস অ্যানালিটিক্স কোয়েরি কীভাবে করতে হয় দেখুন।

অ্যাসিঙ্ক্রোনাস মনিটাইজেশন রিপোর্টের জন্য কোয়েরি জমা দিতে, /mint/organizations/org_id/async-reports-এ একটি POST অনুরোধ ইস্যু করুন।

ঐচ্ছিকভাবে, আপনি environment কোয়েরি প্যারামিটার পাস করে এনভায়রনমেন্ট নির্দিষ্ট করতে পারেন। উল্লেখ করা না থাকলে, কোয়েরি প্যারামিটার ডিফল্ট হিসেবে prod হয়। যেমন:

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

অনুরোধের বডিতে, নিম্নলিখিত সার্চের মাপকাঠি উল্লেখ করুন।

নাম বিবরণ ডিফল্ট প্রয়োজনীয়?
appCriteria রিপোর্টে অন্তর্ভুক্ত করার জন্য নির্দিষ্ট অ্যাপ্লিকেশনের আইডি ও সংস্থা। এই প্রপার্টি উল্লেখ করা না থাকলে, রিপোর্টে সব অ্যাপ্লিকেশন অন্তর্ভুক্ত করা হয়। প্রযোজ্য নয় না
billingMonth রিপোর্টের বিলিং মাস, যেমন জুলাই। প্রযোজ্য নয় হ্যাঁ
billingYear রিপোর্টের জন্য বিলিং বছর, যেমন ২০১৫। প্রযোজ্য নয় হ্যাঁ
currencyOption রিপোর্টের জন্য কারেন্সি। সঠিক মানের মধ্যে এগুলি পড়ে:
  • LOCAL - প্রযোজ্য রেট প্ল্যান ব্যবহার করে রিপোর্টের প্রতিটি লাইন দেখানো হয়। এর অর্থ হল, ডেভেলপারদের যদি এমন প্ল্যান থাকে যেগুলিতে আলাদা আলাদা মুদ্রা ব্যবহার করা হয়, তাহলে একটি রিপোর্টে একাধিক মুদ্রা থাকতে পারে।
  • EUR - স্থানীয় মুদ্রায় করা ট্রানজ্যাকশন ইউরোতে কনভার্ট করে দেখানো হয়।
  • GPB - স্থানীয় মুদ্রায় করা ট্রানজ্যাকশন কনভার্ট করে ব্রিটিশ পাউন্ডে দেখানো হয়।
  • USD - স্থানীয় মুদ্রায় করা ট্রানজ্যাকশন কনভার্ট করে মার্কিন ডলারে দেখানো হয়।

আপনি EUR, GBP বা USD বেছে নিলে, ট্রানজ্যাকশনের তারিখে কার্যকর থাকা এক্সচেঞ্জ রেটের ভিত্তিতে, রিপোর্টটি সেই একক মুদ্রা ব্যবহার করে করা সমস্ত ট্রানজ্যাকশন দেখায়।

প্রযোজ্য নয় না
devCriteria

রিপোর্টে অন্তর্ভুক্ত করার জন্য নির্দিষ্ট ডেভেলপারের ডেভেলপারের আইডি বা ইমেল আইডি এবং প্রতিষ্ঠানের নাম । এই প্রপার্টি উল্লেখ করা না থাকলে, রিপোর্টে সব ডেভেলপারকে অন্তর্ভুক্ত করা হয়।

যেমন:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
প্রযোজ্য নয় না
fromDate UTC অনুযায়ী রিপোর্টের শুরুর তারিখ। প্রযোজ্য নয় হ্যাঁ
monetizationPakageIds রিপোর্টে অন্তর্ভুক্ত করার জন্য এক বা একাধিক API প্যাকেজের আইডি। এই প্রপার্টি উল্লেখ করা না থাকলে, রিপোর্টে সব API প্যাকেজ অন্তর্ভুক্ত করা হয়। প্রযোজ্য নয় না
productIds রিপোর্টে অন্তর্ভুক্ত করার জন্য এক বা একাধিক API প্রোডাক্টের আইডি। এই প্রপার্টি নির্দিষ্ট করা না থাকলে, রিপোর্টে সব API প্রোডাক্ট অন্তর্ভুক্ত করা হয়। প্রযোজ্য নয় না
ratePlanLevels

রিপোর্টে অন্তর্ভুক্ত করার জন্য রেট প্ল্যানের ধরন। সঠিক ভ্যালুর মধ্যে এগুলি অন্তর্ভুক্ত:

  • DEVELOPER - ডেভেলপার রেট প্ল্যান।
  • STANDARD - স্ট্যান্ডার্ড রেট প্ল্যান।

এই প্রপার্টি উল্লেখ করা না থাকলে, রিপোর্টে ডেভেলপার-নির্দিষ্ট ও স্ট্যান্ডার্ড রেট প্ল্যান, দু'টিই অন্তর্ভুক্ত থাকে।

প্রযোজ্য নয় না
toDate UTC অনুযায়ী রিপোর্টের শেষ তারিখ। প্রযোজ্য নয় হ্যাঁ

যেমন, নিম্নলিখিত অনুরোধটি নির্দিষ্ট 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