Private Cloud v. 4.17.01 版
所有 Edge for Private Cloud 客戶都必須向 Apigee 提交 API 相關統計資料 以及 Proxy 流量Apigee 建議客戶每天上傳該資訊一次, 建立 Cron 工作。
您必須提交實際工作環境 API 部署的資料,但不適用於開發中的 API 或測試部署作業在大部分的 Edge 安裝項目中,您將定義特定機構 實際工作環境 API 的網路伺服器你提交的資料僅適用於這些產品 機構和環境
為協助您上傳這類資料,Apigee 提供 apigee-analytics-collector 指令列 Beta 版 公用程式這個公用程式會將 API 呼叫量報表傳回 Apigee。各種邊緣 私有雲安裝作業可以使用這個公用程式擷取流量資料,並回報給 Apigee。
如要進一步瞭解將流量資料上傳至 Apigee 的程序,請參閱 常見問題。
請觀看這部短片,瞭解這項工具的實際運作情形。
安裝 apigee-analytics-collector
apigee-analytics-collector 公用程式是一個使用 npm 安裝的 Node.js 模組。
安裝方式 相關規定
apigee-analytics-collector 公用程式需要:
- npm 2.x 或更新版本
- Node.js 4.x。
安裝位置
您安裝 apigee-analytics-collector 公用程式的節點可以是任何 可以存取 Edge Management Server 上的 Edge Management API。您可以安裝 管理伺服器、Edge 安裝的另一個節點上 節點,前提是該節點可以向 Management Server 提出 API 要求。
網際網路連線 相關規定
將 apigee-analytics-collector 公用程式安裝到 可存取外部網際網路的機器之後,apigee-analytics-collector 公用程式可以上傳 將資料直接匯出至 Apigee
如果未在 Edge Management Server 上同時擁有 Edge Management API 存取權的節點 並連線至外部網際網路之後 您就能運用 Edge Management 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 基準網址
伺服器這個網址的格式通常是:
http://ms_IP:8080/v1
其中 ms_IP 是 IP 位址或您的管理伺服器,而 8080 是 以及 Edge API 使用的通訊埠如果您為 Edge API 建立了 DNS 項目,則該網址位於 相關表單如下:
http://ms_DNS/v1
如果您在 Edge Management API 上啟用 TLS,這個 API 的格式為:
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email:具備以下產品存取權的帳戶電子郵件地址 邊緣 /stats API。這通常 會是 Edge 系統管理員的電子郵件,或機構管理員的電子郵件地址 適合生產環境使用
- apigee_mgmt_api_password:指定的帳戶的 Edge 密碼, apigee_mgmt_api_email.
- 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 <逗號分隔項目清單>
- -x、--Exclude_orgs <逗號分隔項目清單>
- -n、--include_envs <逗號分隔項目清單>
- -e、--Exclude_envs <逗號分隔項目清單>
舉例來說,如果只要指定實際工作環境中的機構和環境,請使用 -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接著重新執行指令,而不使用 -S 選項將資料傳送至 Apigee。
使用 -S 的其中一個理由 可讓您在本機顯示不同類型的資料。Apigee 只需要 上傳 API 流量資料,但 -D 選項可讓您顯示 API 相關資料 產品、開發人員、應用程式或 API Proxy以下範例使用 -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 選項,取得 詳細輸出和 -R 選項 查看 apigee-analytics-collector 產生的 curl 指令:
> 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> |
要收集資料的過去天數。 預設值為 3。 如果指定 -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 API 的帳戶電子郵件地址。這通常是 Edge 系統管理員的電子郵件,或是貴機構管理員的電子郵件地址 保護生產環境 |
-p、--apigee_mgmt_api_password <apigee_mgmt_api_password> |
與 -u 指定的 Edge Management 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> |
查詢流量統計資料的起始時間範圍,格式為:「03/01/2016 00:00」。 如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。 |
-z、--time_range_end<time_range_end> |
查詢流量統計資料的時間範圍結束,格式為:「04/01/2016 24:00」。 如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。 |
-t、--time_unit <time_unit> |
路況資料的時間單位。預設週。預設單位 (以小時為單位)。有效時間單位: 秒、分鐘、小時、天、週。 |
-S、--standard_output |
將輸出內容寫入終端機 (stdout),而不是上傳至 Apigee。 |
-c、--apigee_analytics_client_id <apigee_analytics_client_id> |
將資料上傳至 Apigee 的 ID。請向 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 Management API ,然後使用 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 message count API。在這個指令中:
- apigee_mgmt_api_email:apigee_mgmt_api_password 可以指定 電子郵件地址,代表可存取 Edge /stats API 的帳戶。
- <ms_IP> 是 Edge 的 IP 位址或 DNS 名稱 Management Server。
- {org_name} 和 {org_name} 會指定 機構和環境
- 「apiproxy」為依照 API Proxy 將指標分組的尺寸。
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour:指定
時間範圍細分為要收集的指標時間範圍請注意,cURL 指令
以十六進位代碼
%20
表示時間範圍中的空格。
舉例來說,如要收集 24 小時內每小時的 API Proxy 訊息數量,請使用 正在追蹤 Management API 呼叫:timeRange 包含網址編碼字元。
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" ] } }
接著使用以下 cURL,從可以連上網際網路的機器將資料上傳至 Apigee 指令:
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。
- {org_name} 會指定機構。
- {"environments"...} 包含 cURL 指令的結果; 您所使用的統計資料