Private Cloud v. 4.16.09 版本
所有 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/?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM"
這個指令使用 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} 會指定 機構和環境
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM 指定時間範圍 要收集的統計資料請注意,cURL 指令針對時間範圍中的空格使用十六進位代碼 %20。
例如,若要收集 24 小時期間的統計資料,請使用下列指令:
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"
回應的格式如下:
{ "environments" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ "42.0" ] } ], "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" ] } }
接著使用以下 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 指令的結果; 您所使用的統計資料