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

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

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

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

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

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

এই ডকুমেন্টে বর্ণনা করা হয়েছে কিভাবে এপিআই (API) ব্যবহার করে অ্যাসিঙ্ক্রোনাস কোয়েরি শুরু করতে হয়। আপনি ইউআই (UI)-ও ব্যবহার করতে পারেন, যেমনটি 'একটি কাস্টম রিপোর্ট চালানো' অংশে বর্ণনা করা হয়েছে।

রিপোর্ট এপিআই-কে ইউআই-এর সাথে তুলনা করা

কাস্টম রিপোর্ট তৈরি ও পরিচালনা অংশে বর্ণনা করা হয়েছে কীভাবে Edge UI ব্যবহার করে কাস্টম রিপোর্ট তৈরি ও চালানো যায়। আপনি সেই রিপোর্টগুলো সিনক্রোনাসলি বা অ্যাসিনক্রোনাসলি চালাতে পারেন।

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

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

অ্যাপিজি হাইব্রিডে সীমাবদ্ধতা

Apigee hybrid ফলাফল ডেটা সেটের উপর ৩০ মেগাবাইট আকারের সীমা আরোপ করে।

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

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

  1. প্রশ্নটি জমা দিন

  2. কোয়েরির অবস্থা জানুন

  3. কোয়েরির ফলাফল পুনরুদ্ধার করুন

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

আপনাকে অবশ্যই /queries API-তে একটি POST রিকোয়েস্ট পাঠাতে হবে। এই API-টি Edge-কে আপনার রিকোয়েস্টটি ব্যাকগ্রাউন্ডে প্রসেস করতে নির্দেশ দেয়। কোয়েরিটি সফলভাবে সাবমিট হলে, API-টি একটি 201 স্ট্যাটাস এবং একটি ID রিটার্ন করে, যা আপনি পরবর্তী ধাপগুলোতে কোয়েরিটিকে উল্লেখ করার জন্য ব্যবহার করবেন।

উদাহরণস্বরূপ:

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-এর পাশাপাশি, ' 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 অপশনগুলো ব্যবহার করতে পারেন।

  • আপনি যদি পোস্টম্যান ব্যবহার করেন, তাহলে আপনাকে সেভ অ্যান্ড ডাউনলোড বাটনটি সিলেক্ট করতে হবে। এক্ষেত্রে, response নামের একটি জিপ ফাইল ডাউনলোড হবে।

  • আপনি ক্রোম ব্রাউজার ব্যবহার করলে ডাউনলোডটি স্বয়ংক্রিয়ভাবে গৃহীত হয়ে যায়।

অনুরোধটি সফল হলে এবং ফলাফলের মান শূন্য না হলে, ফলাফলটি একটি জিপ করা JSON (নিউলাইন দ্বারা বিভক্ত) ফাইল হিসেবে ক্লায়েন্টে ডাউনলোড করা হয়। ডাউনলোড করা ফাইলটির নাম হবে:

OfflineQueryResult-<query-id>.zip

উদাহরণস্বরূপ:

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

জিপ ফাইলটিতে JSON ফলাফলের একটি .gz আর্কাইভ ফাইল রয়েছে। JSON ফাইলটি অ্যাক্সেস করতে, ডাউনলোড করা ফাইলটি আনজিপ করুন, তারপর gzip কমান্ড ব্যবহার করে JSON ফাইলটি এক্সট্র্যাক্ট করুন:

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

অনুরোধের মূল অংশ সম্পর্কে

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

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

আরও তথ্যের জন্য, অ্যানালিটিক্স মেট্রিক্স, ডাইমেনশন এবং ফিল্টার রেফারেন্স দেখুন।

না
dimensions মেট্রিকগুলোকে শ্রেণিবদ্ধ করার জন্য ডাইমেনশনের অ্যারে। আরও তথ্যের জন্য, সমর্থিত ডাইমেনশনের তালিকা দেখুন। আপনি একাধিক ডাইমেনশন নির্দিষ্ট করতে পারেন। না
timeRange কোয়েরির জন্য সময়সীমা।

সময়সীমা নির্দিষ্ট করার জন্য আপনি নিম্নলিখিত পূর্বনির্ধারিত স্ট্রিংগুলো ব্যবহার করতে পারেন:

  • last60minutes
  • last24hours
  • last7days

অথবা, আপনি ISO ফরম্যাটে ( yyyy-mm-dd T hh:mm:ss Z ) শুরু এবং শেষের টাইমস্ট্যাম্প বর্ণনা করে একটি স্ট্রাকচার হিসেবে timeRange নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
হ্যাঁ
limit ফলাফলে ফেরত দেওয়া যেতে পারে এমন সারির সর্বোচ্চ সংখ্যা। না
filter বুলিয়ান এক্সপ্রেশন যা ডেটা ফিল্টার করতে ব্যবহার করা যেতে পারে। ফিল্টার এক্সপ্রেশনগুলো AND/OR টার্ম ব্যবহার করে একত্রিত করা যায় এবং অস্পষ্টতা এড়াতে এগুলোকে অবশ্যই সম্পূর্ণ বন্ধনীতে রাখতে হবে। ফিল্টার করার জন্য উপলব্ধ ফিল্ডগুলো সম্পর্কে আরও তথ্যের জন্য অ্যানালিটিক্স মেট্রিক্স, ডাইমেনশন এবং ফিল্টার রেফারেন্স দেখুন। ফিল্টার এক্সপ্রেশন তৈরি করতে ব্যবহৃত টোকেনগুলো সম্পর্কে আরও তথ্যের জন্য, ফিল্টার এক্সপ্রেশন সিনট্যাক্স দেখুন। না
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' দিয়ে শুরু হয়

- ৪ দিয়ে শুরু হওয়া যেকোনো মান, উল্লেখ্য যে 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 এটি আপনাকে বিভিন্ন সম্ভাব্য ফিল্টার এক্সপ্রেশন মূল্যায়ন করতে 'or' লজিক ব্যবহার করার সুযোগ দেয়। ফিল্টারটিতে এমন ডেটা অন্তর্ভুক্ত থাকে যা শর্তগুলোর মধ্যে অন্তত একটি পূরণ করে।
(response_size ge 1000) or (response_status_code eq 500)

সীমাবদ্ধতা এবং ডিফল্ট

অ্যাসিঙ্ক্রোনাস কোয়েরি প্রসেসিং ফিচারের জন্য নিম্নলিখিত সীমাবদ্ধতা এবং ডিফল্ট মানগুলো রয়েছে।

সীমাবদ্ধতা ডিফল্ট বর্ণনা
কোয়েরি কল সীমা বিবরণ দেখুন একটি অ্যাসিঙ্ক্রোনাস রিপোর্ট শুরু করার জন্য আপনি প্রতি ঘন্টায় /queries ম্যানেজমেন্ট API-তে সর্বোচ্চ সাতটি কল করতে পারেন। আপনি কল কোটা অতিক্রম করলে, API-টি একটি HTTP 429 রেসপন্স ফেরত দেয়।
সক্রিয় কোয়েরি সীমা ১০ একটি সংস্থা/পরিবেশের জন্য সর্বোচ্চ ১০টি সক্রিয় কোয়েরি থাকতে পারে।
কোয়েরি সম্পাদনের সময়সীমা ৬ ঘন্টা যেসব কোয়েরি সম্পন্ন হতে ৬ ঘণ্টার বেশি সময় লাগবে, সেগুলো বাতিল করে দেওয়া হবে।
কোয়েরির সময়সীমা বিবরণ দেখুন একটি কোয়েরির জন্য সর্বোচ্চ অনুমোদিত সময়সীমা হলো ৩৬৫ দিন।
মাত্রা এবং মেট্রিক সীমা ২৫ কোয়েরি পেলোডে আপনি সর্বাধিক যতগুলো ডাইমেনশন এবং মেট্রিক উল্লেখ করতে পারবেন।

কোয়েরির ফলাফল সম্পর্কে

নিম্নলিখিতটি 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"}    
…

রিপোজিটরিতে থাকা ডেটার মেয়াদ শেষ না হওয়া পর্যন্ত আপনি ইউআরএল থেকে ফলাফল সংগ্রহ করতে পারবেন। সীমাবদ্ধতা এবং ডিফল্টসমূহ দেখুন।

উদাহরণ

উদাহরণ ১: বার্তা সংখ্যার যোগফল

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

প্রশ্ন

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 এ একটি 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 রিপোর্টে অন্তর্ভুক্ত করার জন্য এক বা একাধিক এপিআই প্যাকেজের আইডি। যদি এই প্রপার্টিটি নির্দিষ্ট করা না থাকে, তাহলে সমস্ত এপিআই প্যাকেজ রিপোর্টে অন্তর্ভুক্ত করা হবে। প্রযোজ্য নয় না
productIds রিপোর্টে অন্তর্ভুক্ত করার জন্য এক বা একাধিক এপিআই পণ্যের আইডি। যদি এই প্রপার্টিটি নির্দিষ্ট করা না থাকে, তাহলে সমস্ত এপিআই পণ্য রিপোর্টে অন্তর্ভুক্ত করা হয়। প্রযোজ্য নয় না
ratePlanLevels

রিপোর্টে অন্তর্ভুক্ত করার জন্য রেট প্ল্যানের ধরন। বৈধ মানগুলো হলো:

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

এই বৈশিষ্ট্যটি নির্দিষ্ট করা না থাকলে, ডেভেলপার-নির্দিষ্ট এবং সাধারণ উভয় রেট প্ল্যানই রিপোর্টে অন্তর্ভুক্ত করা হয়।

প্রযোজ্য নয় না
toDate ইউটিসি অনুযায়ী প্রতিবেদনের সমাপ্তির তারিখ। প্রযোজ্য নয় হ্যাঁ

উদাহরণস্বরূপ, নিম্নলিখিত অনুরোধটি নির্দিষ্ট এপিআই প্রোডাক্ট এবং ডেভেলপার আইডির জন্য ২০১৭ সালের জুন মাসের একটি অ্যাসিঙ্ক্রোনাস মনিটাইজেশন রিপোর্ট তৈরি করে। রিপোর্টের শুরুর তারিখ fromDate এবং toDate তারিখ (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