Apigee-তে API ট্রাফিক ডেটা আপলোড করা - বিটা রিলিজ

প্রাইভেট ক্লাউডের জন্য Edge v. 4.17.01

Edge for Private Cloud-এর সব গ্রাহককে API প্রক্সি ট্রাফিক সংক্রান্ত পরিসংখ্যান Apigee-তে জমা দিতে হবে। Apigee সাজেস্ট করে যে গ্রাহকরা যেন দিনে একবার সেই তথ্য আপলোড করেন, সম্ভবত ক্রন জব তৈরি করার মাধ্যমে।

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

এই ডেটা আপলোড করার ব্যাপারে সাহায্য করতে, Apigee apigee-analytics-collector কমান্ড-লাইন ইউটিলিটির বিটা রিলিজ প্রদান করে। এই ইউটিলিটি API কলের ভলিউম রিপোর্ট Apigee-তে ফেরত পাঠায়। প্রতিটি Edge for the প্রাইভেট ক্লাউড ইনস্টলেশন, Apigee-তে ট্রাফিক ডেটা রিট্রিভ ও রিপোর্ট করার জন্য এই ইউটিলিটি ব্যবহার করতে পারে।

Apigee-তে ট্রাফিক ডেটা আপলোড করার প্রসেস সম্পর্কে আরও তথ্য পেতে, প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন।

টুলটি কীভাবে কাজ করে তা দেখতে একটি ছোট ভিডিও দেখুন।

apigee-analytics-collector ইনস্টল করা

apigee-analytics-collector ইউটিলিটি হল একটি Node.js মডিউল যা আপনি npm ব্যবহার করে ইনস্টল করেন।

ইনস্টলেশন সংক্রান্ত প্রয়োজনীয়তা

apigee-analytics-collector ইউটিলিটির জন্য এগুলি প্রয়োজন:

  • npm 2.x বা তার পরের যেকোনও ভার্সন
  • Node.js 4.x.

কোথায় ইনস্টল করতে হবে

আপনি যে নোডে apigee-analytics-collector ইউটিলিটি ইনস্টল করেন সেটি যেকোনও নোড হতে পারে যা Edge Management সার্ভারে Edge ম্যানেজমেন্ট API অ্যাক্সেস করতে পারে। আপনি এটি ম্যানেজমেন্ট সার্ভারে, Edge ইনস্টলেশনের অন্য নোডে বা আলাদা নোডে সরাসরি ইনস্টল করতে পারেন, তবে সেই নোডকে ম্যানেজমেন্ট সার্ভারে API অনুরোধ করতে হবে।

ইন্টারনেট অ্যাক্সেস প্রয়োজনীয়তা

এক্সটার্নাল ইন্টারনেট অ্যাক্সেস আছে এমন মেশিনে apigee-analytics-collector ইউটিলিটি ইনস্টল করুন। তারপর, apigee-analytics-collector ইউটিলিটি সরাসরি Apigee-তে ডেটা আপলোড করতে পারে।

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

ইনস্টল করা

apigee-analytics-collector ইউটিলিটি ইনস্টল করতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:

> npm install apigee-analytics-collector -g

apigee-analytics-collector চলছে

apigee-analytics-collector ইউটিলিটি কীভাবে রান করাতে হয় তা এই বিভাগে বর্ণনা করা হয়েছে।

apigee-analytics-collector চালানোর জন্য প্রয়োজনীয় তথ্য

apigee-analytics-collector কমান্ড চালানোর জন্য এবং Apigee-তে ডেটা ফরওয়ার্ড করার জন্য আপনার নিম্নলিখিত তথ্য প্রয়োজন:

  • apigee_mgmt_api_uri: আপনার ম্যানেজমেন্ট সার্ভারে Edge API-এর বেস URL. এই URL সাধারণত এই ফর্ম্যাটে থাকে:
    http://ms_IP:8080/v1

    যেখানে ms_IP হল আপনার ম্যানেজমেন্ট সার্ভারের IP অ্যাড্রেস এবং 8080 হল Edge API-এর ব্যবহার করা পোর্ট। আপনি Edge API-এর জন্য DNS এন্ট্রি তৈরি করে থাকলে, URLটি এই ফর্ম্যাটে থাকে:
    http://ms_DNS/v1

    আপনি Edge ম্যানেজমেন্ট API-তে TLS চালু করলে, এটি এই ফর্ম্যাটে থাকে:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: Edge /stats API-তে অ্যাক্সেস আছে এমন অ্যাকাউন্টের ইমেল আইডি। প্রায়শই এটি Edge সিস্টেম অ্যাডমিনিস্ট্রেটরের ইমেল বা আপনার প্রোডাকশন সংস্থার সংস্থা অ্যাডমিনিস্ট্রেটরের ইমেল হবে।
  • apigee_mgmt_api_password: apigee_mgmt_api_email-এ উল্লেখ করা অ্যাকাউন্টের Edge পাসওয়ার্ড।
  • apigee_analytics_client_id এবং apigee_analytics_secret: Apigee-তে ডেটা আপলোড করার জন্য আপনার ক্রেডেনশিয়াল। Apigee সহায়তা টিমের কাছে টিকিট জমা দিয়ে apigee_analytics_client_id ও apigee_analytics_secret পান।

কমান্ডের উদাহরণ

নিচে Edge ইনস্টলেশনে থাকা সবকটি সংস্থা ও এনভায়রনমেন্টের ট্রাফিক ডেটা রিট্রিভ করার এবং সেই ডেটা Apigee-তে আপলোড করার কমান্ডের একটি উদাহরণ দেওয়া হল:

> apigee-analytics-collector export traffic \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

মনে রাখবেন, কমান্ডে আপনার apigee_analytics_client_id এবং apigee_analytics_secret-এর মতো সব প্রয়োজনীয় তথ্য থাকতে হবে।

আপনি এই ধরনের ফলাফল দেখতে পাবেন:

[
  {
    "org": "myOrg",
    "env": "prod",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  },
  {
    "org": "VALIDATE",
    "env": "test",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  }
]

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

  • -i, --include_orgs <comma-separated list of items>
  • -x, --exclude_orgs <comma-separated list of items>
  • -n, --include_envs <comma-separated list of items>
  • -e, --exclude_envs <comma-separated list of items>

যেমন, শুধুমাত্র প্রোডাকশন সংস্থা ও এনভায়রনমেন্ট নির্দিষ্ট করতে, -i (বা --include_orgs) এবং -n (বা --include_envs) বিকল্প ব্যবহার করুন:

> apigee-analytics-collector export traffic -i myOrg -n prod \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

এই উদাহরণে, আপনি শুধুমাত্র myOrg-এর প্রোডাকশন এনভায়রনমেন্ট থেকে ডেটা সংগ্রহ করেন।

Apigee-তে পাঠানোর আগে ডেটা পরীক্ষা করার জন্য স্ক্রিনে ডাম্প করতে, -S বিকল্প ব্যবহার করুন:

> apigee-analytics-collector export traffic -i myOrg -n prod -S \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

-S বিকল্পটি Apigee-তে আপলোড করা ডেটা বাদ দেয়। তারপর, Apigee-তে ডেটা পাঠানোর জন্য আপনি -S বিকল্পটি বাদ দিয়ে কমান্ডটি আবার চালাতে পারবেন।

-S বিকল্প ব্যবহার করার একটি কারণ হল, আপনি যাতে স্থানীয়ভাবে বিভিন্ন ধরনের ডেটা দেখাতে পারেন। Apigee-এর প্রয়োজন হল যে আপনি API ট্রাফিক ডেটা আপলোড করুন, কিন্তু -D বিকল্প আপনাকে API প্রোডাক্ট, ডেভেলপার, অ্যাপ বা API প্রক্সি সম্পর্কে ডেটা দেখাতে দেয়। নিচের উদাহরণে -D ও -S বিকল্প ব্যবহার করে লোকালি ডেভেলপার ডেটা দেখানো হয়েছে:

> apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

ভার্বোজ আউটপুট পেতে -v বিকল্প এবং apigee-analytics-collector-এর তৈরি করা কার্ল কমান্ড দেখতে -R বিকল্প অন্তর্ভুক্ত করুন:

 > apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

পরবর্তী বিভাগে কমান্ড-লাইন বিকল্পের সম্পূর্ণ তালিকা দেওয়া আছে।

কমান্ড প্যারামিটার

নিম্নলিখিত সারণীতে apigee-analytics-collector ইউটিলিটির বিকল্পের সম্পূর্ণ সেট তালিকাভুক্ত করা আছে:

কমান্ড

ব্যবহার করুন

-h, --help

আউটপুট ব্যবহারের তথ্য

-D, --dimension <dimension>

সংগ্রহ করার জন্য ট্রাফিক সংক্রান্ত মাত্রা। বৈধ ডাইমেনশন: apiproducts, devs, apps, apiproxy (ডিফল্ট)

-d, --days <days>

বর্তমান তারিখ থেকে শুরু করে, সংগ্রহ করার জন্য ডেটার অতীতের দিনের সংখ্যা। ডিফল্ট মান হল ৩।

আপনি -d উল্লেখ করলে, সময় সীমা সেট করতে -s ও -z উল্লেখ করবেন না।

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

Edge ম্যানেজমেন্ট API-এর URL.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

Edge /stats API-তে অ্যাক্সেস আছে এমন অ্যাকাউন্টের ইমেল আইডি। প্রায়শই এটি এজ সিস্টেম অ্যাডমিনিস্ট্রেটরের ইমেল বা আপনার প্রোডাকশন সংস্থার সংস্থা অ্যাডমিনিস্ট্রেটরের ইমেল হবে।

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

-u-এর মাধ্যমে নির্দিষ্ট করা Edge ম্যানেজমেন্ট API ইমেল অ্যাকাউন্টের সাথে যুক্ত পাসওয়ার্ড।

-i, --include_orgs <items>

আউটপুটে অন্তর্ভুক্ত করার জন্য কমা দিয়ে আলাদা করা সংস্থার তালিকা।

-x, --exclude_orgs <items>

আউটপুট থেকে বাদ দেওয়ার জন্য কমা দিয়ে আলাদা করা সংস্থার তালিকা।

-n, --include_envs <items>

আউটপুটে অন্তর্ভুক্ত করার জন্য কমা দিয়ে আলাদা করা এনভায়রনমেন্টের তালিকা।

-e, --exclude_envs <items>

আউটপুটে অন্তর্ভুক্ত করার জন্য কমা দিয়ে আলাদা করা এনভায়রনমেন্টের তালিকা।

-o, --output <path>

আউটপুট সেভ করার পাথ ও ফাইলের নাম।

-s, --time_range_start <time_range_start>

ট্রাফিক সংক্রান্ত পরিসংখ্যান কোয়েরি করার জন্য শুরুর সময়সীমা, এই ফর্ম্যাটে: "০১/০৩/২০১৬ ০০:০০"।

আপনি -d উল্লেখ করলে, সময়সীমা সেট করার জন্য -s ও -z উল্লেখ করবেন না।

-z, --time_range_end <time_range_end>

ট্রাফিক সংক্রান্ত পরিসংখ্যান কোয়েরি করার জন্য সময়সীমার শেষ, এই ফর্ম্যাটে: "01/04/2016 24:00"।

আপনি -d উল্লেখ করলে, সময়সীমা সেট করার জন্য -s ও -z উল্লেখ করবেন না।

-t, --time_unit <time_unit>

ট্রাফিক ডেটার জন্য সময় সংক্রান্ত একক। ডিফল্ট সপ্তাহ। ঘণ্টা অনুযায়ী ডিফল্ট ইউনিট। বৈধ সময়ের একক: সেকেন্ড, মিনিট, ঘণ্টা, দিন, সপ্তাহ।

-S, --standard_output

Apigee-তে আপলোড করার পরিবর্তে, আউটপুট টার্মিনালে (stdout) লিখুন।

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

Apigee-তে ডেটা আপলোড করার জন্য আপনার আইডি। এই তথ্য পেতে Apigee সহায়তা টিমের কাছে টিকিট জমা দিন:

-r, --apigee_analytics_secret <apigee_analytics_secret>

Apigee-তে ডেটা আপলোড করার জন্য আপনার সিক্রেট। এই তথ্য পেতে Apigee সহায়তা টিমের কাছে টিকিট জমা দিন:

-R, --include_curl_commands

ডিবাগিংয়ের জন্য আউটপুটে জেনারেট করা cURL কমান্ড অন্তর্ভুক্ত করুন।

-v, --verbose

বিস্তারিত আউটপুট ডিসপ্লে করুন।

Apigee-তে ম্যানুয়ালি ডেটা আপলোড করা

Apigee সাজেস্ট করে যে আপনি এক্সটার্নাল ইন্টারনেট অ্যাক্সেস সহ মেশিনে apigee-analytics-collector ইউটিলিটি ইনস্টল করুন। তারপর, apigee-analytics-collector ইউটিলিটি সরাসরি Apigee-তে ডেটা আপলোড করতে পারে।

তবে, মেশিনে এক্সটার্নাল ইন্টারনেট অ্যাক্সেস না থাকলে, Edge ম্যানেজমেন্ট API ব্যবহার করে ট্রাফিক ডেটা সংগ্রহ করুন এবং তারপরে ইন্টারনেট অ্যাক্সেস আছে এমন মেশিন থেকে Apigee-তে এটি আপলোড করতে cURL কমান্ড ব্যবহার করুন। আপনার Edge ইনস্টলেশনে প্রতিটি প্রোডাকশন সংস্থা ও এনভায়রনমেন্টের জন্য আপনাকে এই প্রসেসটি রিপিট করতে হবে।

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

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://<ms_IP>:8080/v1/organizations/{org_name}/environments/{env_name}/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"

এই কমান্ড Edge Get API মেসেজ কাউন্ট API ব্যবহার করে। এই কমান্ডে:

  • apigee_mgmt_api_email:apigee_mgmt_api_password Edge /stats API-তে অ্যাক্সেস আছে এমন অ্যাকাউন্টের ইমেল আইডি নির্দিষ্ট করে।
  • <ms_IP> হল Edge ম্যানেজমেন্ট সার্ভারের IP অ্যাড্রেস বা DNS নাম।
  • {org_name} এবং {env_name} থেকে সংস্থা ও এনভায়রনমেন্ট সম্পর্কে জানা যায়।
  • apiproxy হল সেইসব ডাইমেনশন যা API প্রক্সি অনুযায়ী মেট্রিককে গ্রুপ করে।
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour নির্দিষ্ট করে যে মেট্রিক্স সংগ্রহ করার জন্য সময়সীমাকে সময়ের ইউনিটে ভাগ করা হয়েছে। লক্ষ্য করুন যে cURL কমান্ড টাইম রেঞ্জে স্পেসের জন্য হেক্স কোড %20 ব্যবহার করে।

যেমন, ২৪ ঘণ্টা ধরে প্রতি ঘণ্টায় API প্রক্সি মেসেজের সংখ্যা সংগ্রহ করতে, নিম্নলিখিত ম্যানেজমেন্ট API কল ব্যবহার করুন। timeRange-এ URL-এনকোড করা অক্ষর আছে।

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00"

আপনি এই ফর্ম্যাটে উত্তর দেখতে পাবেন:

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values": [
                {
                  "timestamp": 1514847600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514844000000,
                  "value": "19.0"
                },
                {
                  "timestamp": 1514840400000,
                  "value": "58.0"
                },
                {
                  "timestamp": 1514836800000,
                  "value": "28.0"
                },
                {
                  "timestamp": 1514833200000,
                  "value": "29.0"
                },
                {
                  "timestamp": 1514829600000,
                  "value": "33.0"
                },
                {
                  "timestamp": 1514826000000,
                  "value": "26.0"
                },
                {
                  "timestamp": 1514822400000,
                  "value": "57.0"
                },
                {
                  "timestamp": 1514818800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514815200000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514811600000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514808000000,
                  "value": "66.0"
                },
                {
                  "timestamp": 1514804400000,
                  "value": "50.0"
                },
                {
                  "timestamp": 1514800800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514797200000,
                  "value": "49.0"
                },
                {
                  "timestamp": 1514793600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514790000000,
                  "value": "89.0"
                },
                {
                  "timestamp": 1514786400000,
                  "value": "42.0"
                },
                {
                  "timestamp": 1514782800000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514779200000,
                  "value": "21.0"
                },
                {
                  "timestamp": 1514775600000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514772000000,
                  "value": "20.0"
                },
                {
                  "timestamp": 1514768400000,
                  "value": "12.0"
                },
                {
                  "timestamp": 1514764800000,
                  "value": "7.0"
                }
              ]
            }
          ],
          "name" : "proxy1"
  } ],
  "metaData" : {
    "errors" : [ ],
    "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
  }
}

তারপর ইন্টারনেট অ্যাক্সেস আছে এমন কোনও মেশিন থেকে Apigee-তে সেই ডেটা আপলোড করতে, নিম্নলিখিত cURL কমান্ড ব্যবহার করুন:

curl -X POST -H 'Content-Type:application/json' \
-u apigee_analytics_client_id:apigee_analytics_secret \
https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/{org_name}/apis -d '{"environments"...}'

কোথায়:

  • Apigee-তে ডেটা আপলোড করার জন্য Apigee সহায়তা থেকে পাওয়া আপনার ক্রেডেনশিয়াল apigee_analytics_client_id:apigee_analytics_secret specify করুন।
  • {org_name} সংস্থা নির্দিষ্ট করে।
  • {"environments"...}-এ cURL কমান্ডের ফলাফল থাকে যা আপনি উপরে পরিসংখ্যান সংগ্রহ করতে ব্যবহার করেছেন।