将 API 流量统计信息提交到 Apigee

所有适用于私有云的 Edge 客户都需要向 Apigee 提交有关 API 代理流量的统计信息。Apigee 建议您每天上传一次该信息,为此,可以创建一个 Cron 作业。

您必须提交生产 API 部署的统计信息,但不能提交开发或测试部署中的 API 的统计信息。在大多数 Edge 安装中,您需要为生产 API 定义特定组织或环境。您提交的统计信息仅适用于这些生产组织和环境。

向 Apigee 提交 API 流量统计信息

如需将统计信息提交给 Apigee,请执行以下操作:

  1. 使用 Edge Management API 收集数据
  2. 通过电子邮件将数据发送至:edge.apiops@google.com

您必须为 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 是边缘管理服务器的 IP 地址或 DNS 名称。
  • org_nameenv_name 用于指定组织和环境。
  • apiproxy 是按 API 代理对指标进行分组的尺寸。
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour 指定要收集的指标的时间单位(按时间单位划分)。请注意,curl 命令针对时间范围内的空格使用十六进制代码 %20

例如,如需收集 24 小时内每小时的 API 代理消息计数,请使用以下 API 调用

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"

(请注意,timeRange 包含网址编码字符。)

您应该会在表单中看到响应:

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