將 API 流量資料上傳至 Apigee - Beta 版

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_idapigee_analytics_secret: 用於將資料上傳至 Apigee 的憑證。請向 Apigee 支援提交支援單,以便取得支援 apigee_analytics_client_idapigee_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_idapigee_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 &lt;dimension&gt;

要收集的流量維度。有效維度:apiproductsdevsappsapiproxy (預設)

-d、--days <days>

要收集資料的過去天數。 預設值為 3。

如果指定 -d,請完成 未指定 -s-z 可設定時間 範圍。

-m、--apigee_mgmt_api_uri &lt;apigee_mgmt_api_uri&gt;

Edge Management API 的網址。

-u、--apigee_mgmt_api_email &lt;apigee_mgmt_api_email&gt;

可存取 Edge /stats API 的帳戶電子郵件地址。這通常是 Edge 系統管理員的電子郵件,或是貴機構管理員的電子郵件地址 保護生產環境

-p、--apigee_mgmt_api_password &lt;apigee_mgmt_api_password&gt;

-u 指定的 Edge Management API 電子郵件帳戶相關聯的密碼。

-i、--include_orgs &lt;items&gt;

要包含在輸出內容中的機構清單 (以半形逗號分隔)。

-x、--Exclude_orgs &lt;items&gt;

要從輸出內容中排除的機構清單 (以半形逗號分隔)。

-n、--include_envs &lt;items&gt;

要包含在輸出內容中的環境清單 (以半形逗號分隔)。

-e、--Exclude_envs &lt;items&gt;

要納入輸出內容的環境清單 (以半形逗號分隔)。

-o、--output &lt;path&gt;

要儲存輸出內容的路徑和檔案名稱。

-s、--time_range_start &lt;time_range_start&gt;

查詢流量統計資料的起始時間範圍,格式為:「03/01/2016 00:00」。

如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。

-z、--time_range_end&lt;time_range_end&gt;

查詢流量統計資料的時間範圍結束,格式為:「04/01/2016 24:00」。

如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。

-t、--time_unit &lt;time_unit&gt;

路況資料的時間單位。預設週。預設單位 (以小時為單位)。有效時間單位: 秒、分鐘、小時、天、週。

-S、--standard_output

將輸出內容寫入終端機 (stdout),而不是上傳至 Apigee。

-c、--apigee_analytics_client_id &lt;apigee_analytics_client_id&gt;

將資料上傳至 Apigee 的 ID。請向 Apigee 支援提交支援單,以便: 。

-r、--apigee_analytics_secret &lt;apigee_analytics_secret&gt;

將資料上傳至 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 的帳戶。
  • &lt;ms_IP&gt; 是 Edge 的 IP 位址或 DNS 名稱 Management Server。
  • {org_name}{org_name} 會指定 機構和環境
  • 「apiproxy」為依照 API Proxy 將指標分組的尺寸。
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&amp;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 指令的結果; 您所使用的統計資料