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

Private Cloud v4.18.05 專用 Edge

所有 Edge for Private Cloud 客戶都必須向 Apigee 提交 API 相關統計資料 以及 Proxy 流量Apigee 建議客戶每天上傳該資訊一次, 建立 Cron 工作。

您必須提交實際工作環境 API 部署的資料,但不適用於開發中的 API 或測試部署作業在大部分的 Edge 安裝項目中,您將定義特定機構 實際工作環境 API 的網路伺服器你提交的資料僅適用於這些產品 機構和環境

為協助您上傳這類資料,Apigee 提供 apigee-analytics-collector 指令列 Beta 版 公用程式這個公用程式會將 API 呼叫量報表傳回 Apigee。各種邊緣 私有雲安裝作業可以使用這個公用程式擷取流量資料,並回報給 Apigee。

必要操作:上傳資料前請先與 Apigee 支援團隊聯絡

您必須先與 Apigee Edge 支援團隊聯絡,完成新手上路流程,才能將資料上傳至 Apigee。

安裝 apigee-analytics-collector

apigee-analytics-collector 公用程式是您透過 apigee-service 公用程式安裝的 RPM。

安裝位置

您安裝 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 公用程式。由於 您正在安裝 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 內容。這位使用者必須具備「apigee」的完整 sudo 存取權內容。

設定使用者俱備「apigee」的完整 sudo 存取權請使用「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 建立了 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-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_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) 選項:

>  /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 只需要 上傳 API 流量資料,但 -D 選項可讓您顯示 API 相關資料 產品、開發人員、應用程式或 API Proxy以下範例使用 -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 選項 查看 apigee-analytics-collector 產生的 curl 指令:

 >  /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 &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 指令從搭載 SQL 指令的機器 網路連線。您必須為每個實際工作環境機構重複執行這項程序 安裝在 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&timeUnit=hour"

回應的格式如下:

{
  "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" ]
  }
}

接著使用以下 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 指令的結果; 您所使用的統計資料