بارگذاری داده‌های ترافیک میانای برنامه‌سازی کاربردی در Apigee - انتشار نسخه بتا

همه مشتریان Edge for Private Cloud ملزم هستند آمار مربوط به ترافیک کارگزار API را به Apigee ارسال کنند. ‫Apigee توصیه می‌کند که مشتریان این اطلاعات را یک‌بار در روز، احتمالاً با ایجاد کار cron، بارگذاری کنند.

باید داده‌های استقرار API تولید خود را ارسال کنید، اما داده‌های API درحال توسعه یا استقرار آزمایشی را نباید ارسال کنید. در اکثر نصب‌های Edge، سازمان‌ها یا محیط‌های خاصی را برای «میاناهای برنامه‌سازی کاربردی» تولید خود تعریف خواهید کرد. داده‌هایی که ارسال می‌کنید فقط برای آن سازمان‌ها و محیط‌های تولید است.

برای کمک به بارگذاری این داده‌ها، Apigee نسخه بتای ابزار apigee-analytics-collector خط فرمان را ارائه می‌دهد. این ابزار گزارش حجم تماس API را به Apigee برمی‌گرداند. هر نصب «ابر خصوصی» Edge می‌تواند از این ابزار برای بازیابی و گزارش داده‌های ترافیک به Apigee استفاده کند.

الزامی: قبل‌از بارگذاری داده‌ها با «پشتیبانی Apigee» تماس بگیرید

قبل‌از اینکه بتوانید داده‌ها را در Apigee بارگذاری کنید، باید با پشتیبانی Apigee Edge تماس بگیرید تا فرایند آماده‌سازی را تکمیل کنید.

نصب apigee-analytics-collector

برنامه کمکی apigee-analytics-collector یک بسته RPM است که بااستفاده از برنامه کمکی apigee-service نصب می‌کنید.

کجا نصب شود

گره‌ای که در آن ابزار apigee-analytics-collector را نصب می‌کنید می‌تواند هر گره‌ای باشد که بتواند به Edge management API در «سرور مدیریت Edge» دسترسی داشته باشد. می‌توانید آن را مستقیماً در «سرور مدیریت»، در گره دیگری از نصب Edge، یا در گره جداگانه‌ای نصب کنید، به‌شرطی که آن گره بتواند درخواست‌های میانای برنامه‌سازی کاربردی را به «سرور مدیریت» ارسال کند.

الزامات دسترسی به اینترنت

ابزار apigee-analytics-collector را در ماشینی با دسترسی به اینترنت خارجی نصب کنید. سپس ابزار apigee-analytics-collector می‌تواند داده‌ها را مستقیماً در Apigee بارگذاری کند.

اگر گرهی وجود ندارد که هم به Edge management API در «سرور مدیریت Edge» دسترسی داشته باشد و هم به اینترنت خارجی، می‌توانید از Edge management API برای ذخیره کردن داده‌های ترافیک به‌صورت محلی استفاده کنید. سپس باید داده‌ها را به ماشینی که به اینترنت دسترسی دارد منتقل کنید تا در Apigee بارگذاری شود. در این سناریو، نیازی به استفاده از ابزار apigee-analytics-collector ندارید. برای اطلاعات بیشتر، بارگذاری دستی داده‌ها در Apigee را ببینید.

نصب

برای نصب ابزار apigee-analytics-collector، از فرمان زیر استفاده کنید. چون فایل RPM نصب می‌کنید، این فرمان باید توسط کاربر ریشه یا کاربری که دسترسی کامل sudo دارد اجرا شود. برای دسترسی کامل sudo، یعنی کاربر دسترسی sudo برای انجام همان عملیات ریشه را دارد.

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install

درحال اجرای apigee-analytics-collector

این بخش نحوه اجرای ابزار apigee-analytics-collector را شرح می‌دهد.

پیکربندی کاربر برای اجرای apigee-analytics-collector

باید apigee-analytics-collector را به‌عنوان کاربر غیرریشه اجرا کنید. این کاربر باید دسترسی کامل sudo به کاربر «apigee» داشته باشد.

برای پیکربندی کاربر به‌طوری که دسترسی کامل sudo به کاربر «apigee» داشته باشد، از فرمان «visudo» برای ویرایش فایل sudoers برای افزودن موارد زیر استفاده کنید:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

که در آن analyticsUser نام کاربری شخصی است که برنامه کمکی apigee-analytics-collector را اجرا می‌کند.

پس‌از نصب ابزار apigee-analytics-collector و پیکربندی کاربر، می‌توانید ابزار را با اجرای فرمان راهنما برای ابزار apigee-analytics-collector آزمایش کنید:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help

اطلاعات لازم برای اجرای apigee-analytics-collector

برای اجرای فرمان apigee-analytics-collector و برای بازارسال داده‌ها به Apigee به اطلاعات زیر نیاز دارید:

  • ‫apigee_mgmt_api_uri: نشانی وب پایه Edge API در «سرور مدیریت». این نشانی اینترنتی معمولاً به شکل زیر است:

    http://ms_IP:8080/v1

    که در آن ms_IP نشانی IP یا «سرور مدیریت» شما است و 8080 درگاهی است که Edge API استفاده می‌کند. اگر ورودی ساناد برای Edge API ایجاد کرده‌اید، نشانی وب به این شکل است:

    http://ms_DNS/v1

    اگر TLS را در Edge management API فعال کنید، به این شکل خواهد بود:

    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: نشانی ایمیل حسابی که به میاناهای برنامه‌سازی کاربردی /stats Edge دسترسی دارد. اغلب این ایمیل سرپرست سیستم Edge یا ایمیل سرپرست سازمان برای سازمان‌های تولید شما خواهد بود.
  • apigee_mgmt_api_password: گذرواژه Edge برای حسابی که با apigee_mgmt_api_email مشخص شده است.
  • ‫apigee_analytics_client_id و apigee_analytics_secret: اطلاعات اعتباری شما برای بارگذاری داده‌ها در Apigee. لطفاً برای دریافت apigee_analytics_client_id و apigee_analytics_secret، بلیت پشتیبانی Apigee Edge ارسال کنید.

فرمان‌های نمونه

در زیر نمونه‌ای از دستور بازیابی داده‌های ترافیک برای همه سازمان‌ها و محیط‌ها در نصب Edge و بارگذاری آن داده‌ها در Apigee نشان داده شده است. توجه کنید که چگونه از apigee-service برای اجرای فرمان apigee-analytics-collector استفاده می‌کنید:

/opt/apigee/apigee-service/bin/apigee-service 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) گزینه‌ها استفاده کنید:

/opt/apigee/apigee-service/bin/apigee-service 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 استفاده کنید:

/opt/apigee/apigee-service/bin/apigee-service 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 را حذف می‌کند. سپس می‌توانید فرمان را بدون گزینه -S دوباره اجرا کنید تا داده‌ها به Apigee ارسال شود.

یکی از دلایل استفاده از گزینه -S این است که بتوانید انواع مختلف داده‌ها را به‌صورت محلی نمایش دهید. ‫Apigee فقط از شما می‌خواهد داده‌های ترافیک میانای برنامه‌سازی کاربردی را بارگذاری کنید، اما گزینه -D به شما امکان می‌دهد داده‌های مربوط به محصولات میانای برنامه‌سازی کاربردی، توسعه‌دهندگان، برنامه‌ها، یا پراکسی‌های میانای برنامه‌سازی کاربردی را نمایش دهید. مثال زیر از گزینه‌های -D و -S برای نمایش داده‌های توسعه‌دهنده به‌صورت محلی استفاده می‌کند:

/opt/apigee/apigee-service/bin/apigee-service 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 را برای دریافت برونداد پرحرف، و گزینه -R را برای دیدن دستورات curl تولیدشده توسط apigee-analytics-collector اضافه کنید:

/opt/apigee/apigee-service/bin/apigee-service 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
  • apiproxy (پیش‌فرض)
  • apps
  • devs
-d, --days days

تعداد روزهای گذشته داده‌ها برای جمع‌آوری، از تاریخ کنونی شروع می‌شود. پیش‌فرض ۳ است.

اگر -d را مشخص می‌کنید، -s و -z را برای تنظیم محدوده زمانی مشخص نکنید.

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

نشانی وب به Edge management API.

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

نشانی ایمیل حسابی که به میاناهای برنامه‌سازی کاربردی Edge /stats دسترسی دارد. این معمولاً ایمیل سرپرست سیستم Edge یا ایمیل سرپرست سازمان برای سازمان‌های تولید شما است.

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

گذرواژه منسوب به حساب ایمیل «میانای برنامه‌سازی کاربردی مدیریت Edge» که توسط -u مشخص شده است.

-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

محدوده زمانی برای شروع پُرسمان آمار ترافیک، به‌صورت: «MM/DD/YYYY HH:MM».

اگر -d را مشخص می‌کنید، -s و -z را نیز برای تنظیم محدوده زمانی مشخص نکنید.

-z, --time_range_end time_range_end

پایان محدوده زمانی برای پُرسمان کردن آمار ترافیک، در قالب: «04/01/2016 24:00».

اگر -d را مشخص می‌کنید، -s و -z را نیز برای تنظیم محدوده زمانی مشخص نکنید.

-t, --time_unit time_unit

واحد زمان برای داده‌های ترافیک. مقدار پیش‌فرض hour است. واحدهای زمان معتبر عبارت‌اند از:

  • second
  • minute
  • hour (پیش‌فرض)
  • day
  • week

اگر -t را روی week و -d را روی 365 تنظیم کنید، Apigee مقدار زیادی داده برمی‌گرداند که در ۵۲ ورودی جداگانه (یک ورودی برای هر هفته) گروه‌بندی شده است.

-S, --standard_output

به‌جای بارگذاری بر روی Apigee، برونداد را در ترمینال (stdout) بنویسید.

-c, --apigee_analytics_client_id apigee_analytics_client_id

شناسه شما برای بارگذاری داده‌ها در Apigee. لطفاً برای دریافت آن، بلیتی را به پشتیبانی Apigee Edge ارسال کنید.

-r, --apigee_analytics_secret apigee_analytics_secret

رمز شما برای بارگذاری داده‌ها در Apigee. لطفاً برای دریافت آن، بلیتی را به پشتیبانی Apigee Edge ارسال کنید.

-R, --include_curl_commands

فرمان‌های curl تولیدشده را در برونداد برای اشکال‌زدایی بگنجانید.

-v, --verbose

برونداد مفصل نمایش داده می‌شود.

بارگذاری دستی داده‌ها در Apigee

‫Apigee توصیه می‌کند ابزار apigee-analytics-collector را در ماشینی با دسترسی به اینترنت خارجی نصب کنید. سپس ابزار apigee-analytics-collector می‌تواند داده‌ها را مستقیماً در Apigee بارگذاری کند.

بااین‌حال، اگر ماشین به اینترنت خارجی دسترسی ندارد، از Edge management API برای جمع‌آوری داده‌های ترافیک استفاده کنید، و سپس از دستورات curl برای بارگذاری آن در Apigee از ماشینی با دسترسی به اینترنت استفاده کنید. باید این فرایند را برای هر سازمان تولید و محیط در نصب 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 message count API استفاده می‌کند. در این فرمان:

  • apigee_mgmt_api_email:apigee_mgmt_api_password نشانی ایمیل حسابی را مشخص می‌کند که به میاناهای برنامه‌سازی کاربردی Edge /stats دسترسی دارد.
  • ‫ms_IP نشانی IP یا نام ساناد «سرور مدیریت Edge» است.
  • ‫org_name و env_name سازمان و محیط را مشخص می‌کند.
  • ‫apiproxy بُعدی است که سنجه‌ها را براساس پراکسی‌های API گروه‌بندی می‌کند.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour محدوده زمانی تقسیم‌شده به واحدهای زمانی سنجه‌ها را برای جمع‌آوری مشخص می‌کند. توجه داشته باشید که فرمان curl از کد هگز %20 برای فاصله‌ها در محدوده زمانی استفاده می‌کند.

برای مثال، برای جمع‌آوری تعداد پیام‌های پراکسی API به‌صورت ساعتی در یک دوره ۲۴ ساعته، از فراخوانی API زیر استفاده کنید.

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&timeUnit=hour"

(توجه داشته باشید که timeRange حاوی نویسه‌های کدبندی‌شده نشانی وب است.)

باید پاسخی به‌این شکل ببینید:

{
  "environments" : [ {
    "dimensions" : [ {
      "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"
      } ],
    "name" : "prod"
  } ],
  "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_analytics_client_id:apigee_analytics_secret اطلاعات اعتباری خود را برای بارگذاری داده‌ها در Apigee که از Apigee دریافت کرده‌اید مشخص کنید.
  • ‫org_name نام سازمان را مشخص می‌کند.
  • ‫"environments"... حاوی نتایج فرمان curl است که برای جمع‌آوری آمار در بالا استفاده کردید.