মেট্রিক্স এপিআই ব্যবহার করুন

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

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

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

এপিআই এজ ম্যানেজমেন্ট ইউআই-এ অ্যানালিটিক্স কীভাবে ব্যবহার করবেন তা জানতে API অ্যানালিটিক্স ওভারভিউ দেখুন।

মেট্রিক্স API সম্পর্কে

এজ দুটি মেট্রিক্স API প্রদান করে:

মেট্রিক্স API কোটা সম্পর্কে

এজ এই কলগুলিতে নিম্নলিখিত কোটাগুলি প্রয়োগ করে৷ কোটা ব্যাকএন্ড সিস্টেমের উপর ভিত্তি করে যা কল পরিচালনা করে:

  • পোস্টগ্রেস : প্রতি মিনিটে 40টি কল
  • BigQuery : প্রতি মিনিটে 12টি কল

প্রতিক্রিয়া অবজেক্ট পরীক্ষা করে কল পরিচালনা করে এমন ব্যাকএন্ড সিস্টেম নির্ধারণ করুন। প্রতিটি প্রতিক্রিয়া বস্তুতে একটি metaData বৈশিষ্ট্য থাকে যা Source সম্পত্তিতে কল পরিচালনাকারী পরিষেবার তালিকা করে। উদাহরণস্বরূপ, পোস্টগ্রেসের জন্য:

{
  ...
  "metaData": {
    "errors": [],
    "notices": [
      "Source:Postgres",
      "Table used: xxxxxx.yyyyy",
      "query served by:111-222-333"
    ]
  }
}

BigQuery-এর জন্য, Source সম্পত্তি হল:

"Source:Big Query"

আপনি কল কোটা অতিক্রম করলে, API একটি HTTP 429 প্রতিক্রিয়া প্রদান করে।

ম্যানেজমেন্ট এপিআই এর সাথে মেট্রিক্স পাওয়া

দুটি API-এর মধ্যে প্রধান পার্থক্য হল Get metrics সমগ্র org এবং পরিবেশের জন্য কাঁচা মেট্রিক্স প্রদান করে, যেখানে মাত্রা দ্বারা সংগঠিত মেট্রিক্স পান আপনাকে API পণ্য, বিকাশকারী এবং অ্যাপের মতো বিভিন্ন সত্তার ধরন অনুসারে মেট্রিক্সকে গোষ্ঠীবদ্ধ করতে দেয়।

মেট্রিক্স API এর জন্য অনুরোধ URL হল:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats

মাত্রা API দ্বারা সংগঠিত মেট্রিক্সের জন্য, আপনি /stats এর পরে URL-এ একটি অতিরিক্ত সংস্থান অন্তর্ভুক্ত করেন যা পছন্দসই মাত্রা নির্দিষ্ট করে:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension

উদাহরণস্বরূপ, API প্রক্সি দ্বারা গোষ্ঠীবদ্ধ মেট্রিক্স পেতে, আপনি ব্যবস্থাপনা API কল করতে নিম্নলিখিত URL ব্যবহার করবেন:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy

ফেরত দেওয়ার মেট্রিক্স উল্লেখ করা

মেট্রিক্স এবং Get মেট্রিক্স উভয়ের জন্য ডাইমেনশন এপিআই দ্বারা সংগঠিত মেট্রিকগুলিকে পুনরুদ্ধার করার জন্য মেট্রিকগুলি নির্দিষ্ট করতে এবং একটি ঐচ্ছিক একত্রীকরণ ফাংশনটি এই ফর্মে নির্দিষ্ট করার জন্য আপনি select ক্যোয়ারী প্যারামিটার ব্যবহার করেন:

?select=metric

বা:

?select=aggFunction(metric)

কোথায়:

  • মেট্রিক আপনি যে ডেটা ফেরত দিতে চান তা নির্দিষ্ট করে। উদাহরণস্বরূপ, API অনুরোধের সংখ্যা, ক্যাশে হিট বা নীতি ত্রুটি। একটি টেবিলের জন্য মেট্রিক্স দেখুন যা মেট্রিক নামটি নির্দিষ্ট করে যা select ক্যোয়ারী প্যারামিটারের সাথে ব্যবহার করতে হবে।
  • aggFunction মেট্রিকের বিপরীতে চালানো ঐচ্ছিক সমষ্টি ফাংশন নির্দিষ্ট করে। উদাহরণস্বরূপ, আপনি প্রসেসিং লেটেন্সি মেট্রিকের সাথে নিম্নলিখিত একত্রিতকরণ ফাংশনগুলি ব্যবহার করতে পারেন:

    • avg : গড় প্রক্রিয়াকরণ লেটেন্সি প্রদান করে।
    • min : সর্বনিম্ন প্রসেসিং লেটেন্সি প্রদান করে।
    • max : সর্বাধিক প্রক্রিয়াকরণ লেটেন্সি প্রদান করে।
    • sum : সমস্ত প্রক্রিয়াকরণ বিলম্বের যোগফল প্রদান করে।

    সমস্ত মেট্রিক সমস্ত একত্রীকরণ ফাংশন সমর্থন করে না। মেট্রিক্সের ডকুমেন্টেশনে একটি টেবিল রয়েছে যা মেট্রিক নাম এবং মেট্রিক দ্বারা সমর্থিত ফাংশন ( sum , avg , min , max ) নির্দিষ্ট করে৷

উদাহরণস্বরূপ, লেনদেনের গড় সংখ্যা ফেরত দিতে, যার অর্থ API প্রক্সি অনুরোধ, প্রতি সেকেন্ডে:

?select=tps

লক্ষ্য করুন যে এই উদাহরণের জন্য একটি সমষ্টি ফাংশন প্রয়োজন নেই। পরবর্তী উদাহরণ ক্যাশে হিটের যোগফল ফেরত দিতে একটি সমষ্টি ফাংশন ব্যবহার করে:

?select=sum(cache_hit)

আপনি একটি একক API কলের জন্য একাধিক মেট্রিক্স ফেরত দিতে পারেন। নীতি ত্রুটির যোগফল এবং গড় অনুরোধের আকারের জন্য মেট্রিক্স পেতে, কমা দ্বারা পৃথক করা মেট্রিক্সের তালিকা ব্যবহার করে select ক্যোয়ারী প্যারাম সেট করুন:

?select=sum(policy_error),avg(request_size)

সময়কাল নির্দিষ্ট করা

মেট্রিক্স API একটি নির্দিষ্ট সময়ের জন্য ডেটা ফেরত দেয়। ফর্মে সময়কাল নির্দিষ্ট করতে timeRange ক্যোয়ারী প্যারামিটার ব্যবহার করুন:

?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

HH:MM এর আগে %20 লক্ষ্য করুন। timeRange প্যারামিটারের জন্য HH:MM এর আগে একটি URL-এনকোড করা স্পেস অক্ষর প্রয়োজন, বা একটি + অক্ষর, যেমন: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM

যেমন:

?timeRange=03/01/2018%2000:00~03/30/2018%2023:59

সময় হিসাবে 24:00 ব্যবহার করবেন না কারণ এটি প্রায় 00:00 পর্যন্ত মোড়ানো হয়। পরিবর্তে 23:59 ব্যবহার করুন।

একটি ডিলিমিটার ব্যবহার করে

একটি API কলে একাধিক মাত্রা আলাদা করতে, বিভেদক হিসাবে একটি কমা ( , ) ব্যবহার করুন৷ উদাহরণস্বরূপ, API কলে

curl https://api.enterprise.apigee.com/v1/o/myorg/e/prod/stats/apis,apps?select=sum(message_count)&timeRange=9/24/2018%2000:00~10/25/2018%2000:00&timeUnit=day

apis এবং apps মাত্রা , দ্বারা পৃথক করা হয়েছে।

নমুনা API কল

এই বিভাগে মেট্রিক্স পান এবং মাত্রা API দ্বারা সংগঠিত মেট্রিক্স পান ব্যবহার করে উদাহরণ রয়েছে৷ অতিরিক্ত উদাহরণের জন্য মেট্রিক্স API উদাহরণ দেখুন।

এক মাসের জন্য আপনার API-এ করা মোট কলের সংখ্যা ফেরত দিন

এক মাসের জন্য আপনার প্রতিষ্ঠান এবং পরিবেশে সমস্ত API-এ করা কলের মোট সংখ্যা দেখতে, মেট্রিক্স API পান ব্যবহার করুন:

curl -v "https://api.enterprise.apigee.com/v1/o/{org}/e/{env}/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \
-u email:password

নমুনা প্রতিক্রিয়া:

{
  "environments": [
    {
      "metrics": [
        {
          "name": "sum(message_count)",
          "values": [
            "7.44944088E8"
          ]
        }
      ],
      "name": "prod"
    }
  ],
...
}

দুই দিনের জন্য API প্রক্সি প্রতি মোট বার্তার সংখ্যা ফেরত দিন

এই উদাহরণে, আপনি দুই দিনের মেয়াদে সমস্ত API প্রক্সি দ্বারা প্রাপ্ত অনুরোধের সংখ্যার জন্য মেট্রিক্স ফেরত দেন। select ক্যোয়ারী প্যারাম apiproxy ডাইমেনশনে মেট্রিক message_count জন্য সমষ্টি ফাংশনের sum সংজ্ঞায়িত করে। প্রতিবেদনটি UTC সময়ে 6/20/2018 এর শুরু থেকে 6/21/2018 এর শেষের মধ্যে প্রাপ্ত ট্র্যাফিকের জন্য সমস্ত API-এর জন্য অনুরোধ বার্তা প্রদান করে:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \
-u email:password

নমুনা প্রতিক্রিয়া:

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1498003200000,
          "value" : "1100.0"
        } ]
      } ],
      "name" : "target-reroute"
    } ],
    "name" : "test"
  } ]...
}

এই প্রতিক্রিয়াটি নির্দেশ করে যে 6/20/2018 এর শুরু থেকে 6/21/2018 এর শেষের মধ্যে পরীক্ষার পরিবেশে চলমান 'টার্গেট-রিরুট' নামক একটি API প্রক্সি দ্বারা 1100টি বার্তা গৃহীত হয়েছে।

অন্যান্য মাত্রার জন্য মেট্রিক্স পেতে, URI প্যারামিটার হিসাবে একটি ভিন্ন মাত্রা নির্দিষ্ট করুন। উদাহরণস্বরূপ, আপনি বিকাশকারী অ্যাপের মেট্রিক্স পুনরুদ্ধার করতে developer_app মাত্রা নির্দিষ্ট করতে পারেন। নিম্নলিখিত API কল নির্দিষ্ট সময়ের ব্যবধানের জন্য যেকোনো অ্যাপ থেকে মোট থ্রুপুট (বার্তা প্রাপ্ত) প্রদান করে:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \
-u email:password

নমুনা প্রতিক্রিয়া:

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "886.0"
                }
              ]
            }
          ],
          "name": "Test-App"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "6645.0"
                }
              ]
            }
          ],
          "name": "johndoe_app"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "1109.0"
                }
              ]
            }
          ],
          "name": "marys_app"
        }
  ]...
}

আপেক্ষিক র‌্যাঙ্কিং অনুসারে ফলাফল বাছাই করা

অনেক সময় মেট্রিক্স পাওয়ার সময়, আপনি শুধুমাত্র ডেটার মোট সেটের একটি উপসেটের জন্য ফলাফল পেতে চান। সাধারণত, আপনাকে "শীর্ষ 10" এর ফলাফল পেতে হবে, উদাহরণস্বরূপ, "শীর্ষ 10 ধীরতম API", "শীর্ষ 10 সর্বাধিক সক্রিয় অ্যাপ"। আপনি অনুরোধের অংশ হিসাবে topk ক্যোয়ারী প্যারামিটার ব্যবহার করে এটি করতে পারেন।

উদাহরণস্বরূপ, আপনি জানতে আগ্রহী হতে পারেন যে আপনার শীর্ষ বিকাশকারী কারা, থ্রুপুট দ্বারা পরিমাপ করা হয় বা আপনার সবচেয়ে খারাপ পারফরমারগুলি (অর্থাৎ, 'সর্বোচ্চ মন্থর') টার্গেট APIগুলি লেটেন্সি দ্বারা।

topk (অর্থাৎ 'শীর্ষ কে' সত্তা) একটি প্রদত্ত মেট্রিকের জন্য সর্বোচ্চ মানের সাথে যুক্ত সত্তার রিপোর্টিং সক্ষম করে। এটি আপনাকে সত্তার তালিকার জন্য মেট্রিক্স ফিল্টার করতে সক্ষম করে যা একটি নির্দিষ্ট শর্তের উদাহরণ দেয়। উদাহরণস্বরূপ, গত সপ্তাহে কোন টার্গেট ইউআরএলটি সবচেয়ে বেশি ত্রুটির প্রবণ ছিল তা খুঁজে বের করতে, 1 এর মান সহ, topk প্যারামিটারটি অনুরোধের সাথে যুক্ত করা হয়েছে:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \
  -u email:password
{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(is_error)",
              "values": [
                {
                  "timestamp": 1494201600000,
                  "value": "12077.0"
                }
              ]
            }
          ],
          "name": "http://api.company.com"
        }
      ]...
}

এই অনুরোধের ফলাফল হল মেট্রিক্সের একটি সেট যা দেখায় যে সবচেয়ে বড় লক্ষ্য URL হল http://api.company.com

আপনি সর্বোচ্চ থ্রুপুট সম্মুখীন API-এর জন্য সাজানোর জন্য topk প্যারামিটার ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি গত সপ্তাহে সর্বোচ্চ থ্রুপুট দ্বারা সংজ্ঞায়িত শীর্ষস্থানীয় এপিআই-এর মেট্রিক্স পুনরুদ্ধার করে:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \
-u email:password

নমুনা প্রতিক্রিয়া

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1494720000000,
                  "value": "5750.0"
                },
                {
                  "timestamp": 1494633600000,
                  "value": "5752.0"
                },
                {
                  "timestamp": 1494547200000,
                  "value": "5747.0"
                },
                {
                  "timestamp": 1494460800000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494374400000,
                  "value": "5753.0"
                },
                {
                  "timestamp": 1494288000000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494201600000,
                  "value": "5752.0"
                }
              ]
            }
          ],
          "name": "testCache"
        }
      ],
      "name": "test"
    }
  ]...
}

ফিল্টারিং ফলাফল

বৃহত্তর গ্রানুলারিটির জন্য, আপনি প্রত্যাবর্তিত ডেটা সীমিত করতে ফলাফল ফিল্টার করতে পারেন। ফিল্টার ব্যবহার করার সময়, আপনাকে অবশ্যই ফিল্টার বৈশিষ্ট্য হিসাবে মাত্রা ব্যবহার করতে হবে।

উদাহরণস্বরূপ, ধরুন আপনাকে অনুরোধের HTTP ক্রিয়া দ্বারা ফিল্টার করা ব্যাকএন্ড পরিষেবাগুলি থেকে ত্রুটিগুলির একটি গণনা পুনরুদ্ধার করতে হবে৷ আপনার লক্ষ্য হল ব্যাকএন্ড পরিষেবা প্রতি কতগুলি POST এবং PUT অনুরোধ ত্রুটি তৈরি করছে তা খুঁজে বের করা৷ এটি করার জন্য, আপনি ফিল্টার request_verb সহ মাত্রা target_url ব্যবহার করুন:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \
-u email:password

নমুনা প্রতিক্রিয়া:

{
  "environments" : [
    {
      "dimensions" : [
        {
          "metrics" : [
            {
              "name" : "sum(is_error)",
              "values" : [
                {
                  "timestamp" : 1519516800000,
                  "value" : "1.0"
                }
              ]
          }
        ],
        "name" : "testCache"
        }
      ],
      "name" : "test"
    }
  ]...
}

পৃষ্ঠা সংখ্যা

উৎপাদন পরিবেশে, এজ অ্যানালিটিক্স এপিআই-এর কাছে কিছু অনুরোধ খুব বড় ডেটা সেট ফেরত দেয়। একটি UI-ভিত্তিক অ্যাপ্লিকেশনের প্রেক্ষাপটে বড় ডেটা সেটগুলি প্রদর্শন করা সহজ করার জন্য, API নেটিভভাবে পেজিনেশন সমর্থন করে।

ফলাফলের পৃষ্ঠায় স্থানান্তর করতে, আইটেমগুলির একটি ধারাবাহিক ক্রম নিশ্চিত করতে sortby বাছাই পরামিতি সহ offset এবং limit ক্যোয়ারী প্যারামিটার ব্যবহার করুন।

উদাহরণস্বরূপ, নিম্নলিখিত অনুরোধটি একটি বড় ডেটা সেট ফেরত দিতে পারে, কারণ এটি গত সপ্তাহে পণ্য পরিবেশে সমস্ত API-এর সমস্ত ত্রুটির জন্য মেট্রিক্স পুনরুদ্ধার করে৷

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \
-u email:password

যদি আপনার UI-ভিত্তিক অ্যাপ্লিকেশন যুক্তিসঙ্গতভাবে প্রতি পৃষ্ঠায় 50টি ফলাফল প্রদর্শন করতে পারে, তাহলে আপনি সীমাটি 50-এ সেট করতে পারেন। যেহেতু 0টি প্রথম আইটেম হিসাবে গণনা করা হয়, নিম্নলিখিত কলটি 0-49 আইটেমগুলিকে নিচের ক্রমে ফেরত দেয় ( sort=DESC ডিফল্ট)।

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \
-u email:password

ফলাফলের দ্বিতীয় 'পৃষ্ঠা'র জন্য, অফসেট ক্যোয়ারী প্যারামিটার ব্যবহার করুন, নিম্নরূপ। উল্লেখ্য যে সীমা এবং অফসেট অভিন্ন। কারণ 0 কে প্রথম আইটেম হিসাবে গণনা করা হয়। 50 এর সীমা এবং 0 এর অফসেট সহ, 0-49 আইটেম ফেরত দেওয়া হয়। 50 এর অফসেট সহ, 50-99 আইটেম ফেরত দেওয়া হয়।

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \
-u email:password