Edge for Private Cloud v. 4.16.09
所有 Edge for Private Cloud 客户都必须向 Apigee 提交有关 API 代理流量的统计信息。Apigee 建议客户每天上传一次该信息,可以通过创建 cron 作业来实现。
您必须提交生产 API 部署的数据,但不能提交开发或测试部署中的 API 的数据。在大多数 Edge 安装中,您将为生产 API 定义特定的组织或环境。您提交的数据仅适用于这些生产组织和环境。
为了协助上传这些数据,Apigee 提供了 apigee-analytics-collector 命令行实用程序的 Beta 版。此实用程序会将 API 调用量报告发送回 Apigee。每个 Edge for 私有云 安装都可以使用此实用程序检索流量数据并将其报告给 Apigee。
如需详细了解将流量数据上传到 Apigee 的过程,请参阅常见问题解答。
观看短视频,了解此工具的实际应用。
安装 apigee-analytics-collector
apigee-analytics-collector 实用程序是一个 Node.js 模块,您可以使用 npm 进行安装。
安装要求
apigee-analytics-collector 实用程序需要:
- npm 2.x 或更高版本
- Node.js 4.x。
安装位置
您安装 apigee-analytics-collector 实用程序的节点可以是任何可以访问 Edge 管理服务器上的 Management API 的节点。您可以直接在管理服务器上、在 Edge 安装的其他节点上或在单独的节点上安装它,只要该节点可以向管理服务器发出 API 请求即可。
互联网访问要求
在具有外部互联网访问权限的机器上安装 apigee-analytics-collector 实用程序。然后,apigee-analytics-collector 实用程序可以直接将数据上传到 Apigee。
如果没有任何节点既可以访问 Edge 管理服务器上的 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,则网址采用以下格式:
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email:有权访问 Edge /stats API 的账号的电子邮件地址。通常,这将是 Edge 系统管理员的电子邮件地址,或生产组织的组织管理员的电子邮件地址。
- apigee_mgmt_api_password:apigee_mgmt_api_email 指定的账号的 Edge 密码。
- 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 <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)选项:
> 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 的 prod 环境中收集数据。
如需在将数据发送到 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 代理的数据。以下示例使用 -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 的 Secret。请向 Apigee 支持团队提交工单以获取。 |
|
-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/?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 名称。
- {org_name} 和 {env_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" ]
}
}然后,如需从可访问互联网的机器将该数据上传到 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 命令的结果。