<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
此主题是分析指标、维度和过滤器的参考文档。如需详细了解如何使用这些参数,请参阅 API Analytics 概览。
本主题会显示出现在界面中的指标和维度的名称,并且您需要在 API 调用中使用它们。
指标
以下是您可以在自定义报告和 Management API 调用中检索到的 API 指标。
自定义报告名称 | 在 Management API 中使用的名称 | 函数 | 说明 |
---|---|---|---|
每秒平均事务数 | tps | 无 |
平均事务数,即每秒的 API 代理请求数。请注意,如果相应时间段内事务量相对较少,且界面定制报告中的每秒平均事务数小于两位小数,则每秒平均事务数可能为零。 API 语法: |
缓存命中 | cache_hit | 总和 |
使用响应缓存而不是来自目标服务的响应的成功 API 请求数。 API 语法: |
L1 缓存元素计数 | ax_cache_l1_count | 平均值、最小值、最大值 |
返回指定时间段内每个事务的 L1(内存)缓存中的元素数量。例如,如果您为一天选择了 API 语法: |
政策错误 | policy_error | 总和 |
在指定时间段内的政策错误总数。 政策错误通常是由设计引起的。例如,如果在请求中传递了无效的 API 密钥,Verify API Key 政策会抛出错误;如果 API 调用次数超过该政策中定义的限制,则 Spike Arrest 政策会抛出错误。因此,此指标可用于找出 API 中的潜在问题。例如,通过 developer_app 维度分组的 policy_error 指标,您可能会发现指定应用的 API 密钥或 OAuth 令牌已过期;或者,您可能会发现某个特定 API 代理抛出大量的 Sprike Arrest 错误,使您发现代理的峰值控制限制并不能限制假日流量的增加。 仅当错误导致 API 代理故障时,才会在分析中记录政策错误。例如,如果政策的 The Policy Name on Error (ax_execution_fault_policy_name) 维度有助于按政策名称对政策错误进行分组。 目标故障(例如 404 或 503)不会被视为政策故障。这些会被视为 API 代理故障 (is_error)。 API 语法: |
代理错误 | is_error | 总和 |
API 代理在指定时间段内失败的总次数。当政策失败或发生运行时故障(例如目标服务出现 404 或 503)时,会发生代理故障。 代理 (apiproxy) 维度有助于按代理对 API 代理故障进行分组。 API 语法: |
请求处理延迟时间 | request_processing_latency | 平均值、最小值、最大值 |
时间(平均、最小或最长),以毫秒为单位, Edge 处理传入请求。请求达到 Edge 并在 Edge 将请求转发给目标服务时结束。 使用不同的维度,您可以通过 API 代理、开发者应用、地区等检查请求处理延迟时间。 API 语法: |
请求大小 | request_size | 总值、平均值、最小值、最大值 |
Edge 收到的请求载荷的大小(以字节为单位)。 API 语法: |
已执行的响应缓存 | ax_cache_executed | 总和 |
响应缓存政策在给定时间段内执行的总次数。 由于响应缓存政策附加在 API 代理请求中的两个位置(一次在请求中,一次在响应中),所以其通常在 API 调用中执行两次。每次缓存“get”和缓存“put”都会计为一次执行。 不过,如果政策中的 在 Trace 工具中,您可以点击已执行 API 调用中的“响应缓存”图标,并查看 API 语法: |
响应处理延迟时间 | response_processing_latency | 平均值、最小值、最大值 |
时间(平均、最小或最长),以毫秒为单位, Edge 需要处理 API 响应。计时从 API 代理收到目标服务响应时开始,到 Apigee 将响应转发给原始调用者时结束。 使用不同的维度,您可以通过 API 代理、地区等来检查响应处理延迟时间。 API 语法: |
响应大小 | response_size | 总值、平均值、最小值、最大值 |
返回客户端的响应负载的大小(以字节为单位)。 API 语法: |
目标错误 | target_error | 总和 |
来自目标服务的 5xx 响应总数。这些目标服务错误不是由 Apigee 引起的。 API 语法: |
目标响应时间 | target_response_time | 总值、平均值、最小值、最大值 |
目标服务器响应调用的时长(总值、平均值、最小值或最大值),以毫秒为单位。此指标可帮助您了解目标服务器的性能。Edge 转发请求后即开始计时 发送到目标服务,并在 Edge 收到响应时结束。 请注意,如果 API 调用从缓存返回响应(例如,使用响应缓存政策),则调用永远不会到达目标服务,并且不会记录目标响应时间指标。 API 语法: |
总响应时间 | total_response_time | 总值、平均值、最小值、最大值 |
输入的时间间隔(总和、平均值、最小值或最大值) 毫秒,即从 Edge 收到客户端请求到发出 Edge 将响应发送回客户端。该时间包括网络开销(例如,负载均衡器和路由器完成工作所需的时间)、请求处理延迟时间、响应处理延迟时间以及目标响应时间(如果响应是来自目标服务,而不是缓存)。 使用不同的维度,您可以通过 API 代理、开发者应用、地区等检查处理延迟时间。 API 语法: |
流量 | message_count | 总和 |
Edge 在指定时间段内处理的 API 调用总数。 使用维度以对您最有意义的方式对流量计数进行分组。 API 语法: |
维度
维度可让您查看有意义的分组中的指标。例如,当您查看每个开发者应用或 API 代理的总流量计数时,会看到其变得更加强大。
以下是 Apigee 开箱即用的维度。此外,您还可以按照使用自定义分析分析 API 消息内容中的说明自行创建维度。
自定义报告名称 | 在 Management API 中使用的名称 | 说明 |
---|---|---|
Apigee 实体 | ||
Access Token | access_token | 应用最终用户的 OAuth 访问令牌。 |
API 产品 | api_product |
包含正在调用的 API 代理的 API 产品的名称。为了获取此维度,进行调用的开发者应用必须与包含 API 代理的一个或多个 API 产品相关联,并且正在被调用的代理必须检查 API 密钥或随 API 调用一起发送的 OAuth 令牌。密钥或令牌与 API 产品相关联。如需了解详情,请参阅 首要事项:如何生成完整的分析数据。 如果不符合上述条件,您会看到值“(未设置)”。另请参阅分析实体值“(未设置)”是什么意思?。 |
缓存键 | ax_cache_key |
包含已访问的响应缓存值的键。如需详细了解如何为响应缓存构建键,请参阅响应缓存政策。 如您想在 |
缓存名称 | ax_cache_name |
包含响应缓存政策所使用的键/值的缓存的名称,以 orgName__envName__ 为前缀。例如,如果组织为“foo”,环境为“test”,缓存名称为“myCache”,则 ax_cache_name 为 foo__test__myCache。 |
缓存源: | ax_cache_source |
从中检索缓存响应的缓存级别(“L1”内存或“L2”数据库)。当从目标(而非缓存)传送响应(并且响应缓存使用目标响应刷新)或请求中缓存键无效时,该维度还会显示“CACHE_MISS”。缓存键的大小限制为 2 KB。 如您想在 如需详细了解缓存级别,请参阅缓存内部说明。 |
客户端 ID | client_id |
进行 API 调用的开发者应用的使用方密钥(API 密钥),可以作为 API 密钥传入请求也可以包含在 OAuth 令牌中。 若要获取此维度,必须配置接收调用的代理,使其可以检查是否存在有效的 API 密钥或 OAuth 令牌。开发者应用会获取 API 密钥, 当应用在 Edge 中注册时生成 OAuth 令牌。如需了解详情,请参阅 首要事项:如何生成完整的分析数据。 如果不符合上述条件,您会看到值“(未设置)”。另请参阅分析实体值“(未设置)”是什么意思?。 |
开发者应用 | developer_app |
进行 API 调用的 Edge 注册开发者应用。 要获得此维度,应用必须与包含正被调用的 API 代理的一个或多个 API 产品关联,并且代理必须检查 API 密钥或随 API 调用一起发送的 OAuth 令牌。此密钥或令牌用于标识开发者应用。对于 有关详情,请参阅首要任务:如何生成完整的分析数据。 如果不符合上述条件,您会看到值“(未设置)”。另请参阅分析实体值“(未设置)”是什么意思?。 |
开发者电子邮件地址 | developer_email |
应用进行 API 调用的 Edge 注册开发者的电子邮件地址。 为了获取此维度,开发者必须拥有与一个或多个包含正被调用的 API 代理的 API 产品相关联的应用,并且代理必须检查 API 密钥或随 API 调用一起发送的 OAuth 令牌。密钥或令牌用于标识开发者 应用。如需了解详情,请参阅首要事项:如何生成完整的分析数据。 如果不符合上述条件,您会看到值“(未设置)”。另请参阅分析实体值“(未设置)”是什么意思?。 |
开发者 ID: | 开发者 |
Edge 生成的唯一开发者 ID,格式为 org_name@@org_name。 为了获取此维度,开发者必须拥有与一个或多个包含正被调用的 API 代理的 API 产品相关联的应用,并且代理必须检查 API 密钥或随 API 调用一起发送的 OAuth 令牌。密钥或令牌用于标识开发者。如需了解详情,请参阅首要事项:如何生成完整的分析数据。 如果不符合上述条件,您会看到值“(未设置)”。另请参阅分析实体值“(未设置)”是什么意思?。 |
环境 | 环境 | 部署 API 代理的 Edge 环境。例如“test”或“prod”。 |
发生错误时的故障代码 | ax_edge_execution_fault_code |
错误的故障代码。例如: |
流名称错误 | ax_execution_fault _flow_name |
API 代理中引发错误的指定 flow。例如,“PreFlow”、“PostFlow”或您创建的条件流的名称。 请注意,Management API 中使用的全名是 ax_execution_fault_flow_name, 不换行。 如果无错误发生,您将会看到值“(未设置)”。 |
流资源 | flow_resource | 仅限 Apigee 使用。如果您对此感兴趣,请参阅此社区帖子。 |
流状态错误 | ax_execution_fault _flow_state |
API 代理流名称表明引发错误,例如“PROXY_REQ_FLOW”或“TARGET_RESP_FLOW”。 请注意,Management API 中使用的全名是 ax_execution_fault_flow_state, 不换行。 |
网关流 ID | gateway_flow_id | 随着 API 调用在 Edge 中移动,每个调用都会获得自己的网关流 ID。示例:rrt329ea-12575-114653952-1。网关 ID 有助于区分高 TPS 指标(在这些场景中,组织、环境和时间戳等维度在其他调用中是完全相同的)。 |
组织 | 组织 | 在其中部署 API 代理的 Edge 组织。 |
政策名称错误 | ax_execution_fault _policy_name |
抛出错误并使 API 调用失败的政策名称。 请注意,Management API 中使用的全名是 ax_execution_fault_policy_name, 不换行。 如果政策抛出错误,但将政策根属性 |
代理 | apiproxy | API 代理的机器名称(不是显示名)。 |
代理基本路径 | proxy_basepath |
在 API 代理 ProxyEndpoint 中配置的 BasePath。基本路径不包括 API 代理网址的网域和端口部分。例如,如果 API 代理的基准网址为 https://apigeedocs-test.apigee.net/releasenotes/,基本路径为 /releasenotes。 该值也存储在 |
代理路径后缀 | proxy_pathsuffix |
添加到 API 代理基本路径的资源路径。例如,如果 API 代理的基本网址为 如果未使用路径后缀,则该值为空。 该值也存储在 |
代理修订版本 | apiproxy_revision | 处理 API 调用的 API 代理的修订版本号。这不一定代表 API 代理的最新修订版本。如果 API 代理有 10 个修订版本,那么目前可能会部署第 8 个修订版本。此外,一个 API 可能会将多个修订版本部署为 只要修订版本具有不同的基本路径(如在界面中部署代理中所述)。 |
已解析的客户端 IP | ax_resolved_client_ip |
包含原始客户端 IP 地址。 请注意,在使用 Akamai 等路由产品捕获客户端的真实 IP 地址时,
客户端 IP 通过 HTTP 标头
|
响应状态代码 | response_status_code | 从 Apigee 转发到客户端的 HTTP 响应状态代码,例如 200、404、503 等。在 Edge 中,可以使用以下代码覆盖目标的响应状态代码 分配消息和引发错误等政策, 因此,此维度可能会与目标响应代码 (target_response_code) 不同。 |
虚拟主机 | virtual_host | 虚拟主机的名称,
API 调用。例如,组织有两个
默认虚拟主机:default (http) 和 secure (https)。 |
入站/客户端 | ||
客户端 IP 地址 | client_ip | 命中路由器的系统 IP 地址,例如原始客户端 (proxy_client_ip) 或负载平衡器。如果 X-Forwarded-For 标头中有多个 IP,则这是最后列出的 IP。 |
设备类别 | ax_ua_device_category | 进行 API 调用的设备的类型,例如“平板电脑”或“智能手机”。 |
OS 系列 | ax_ua_os_family | 拨打电话的设备的操作系统系列,如“Android”或“iOS”。 |
操作系统版本 | ax_ua_os_version |
拨打电话的设备的操作系统版本。 将此版本用作 OS 系列 (ax_ua_os_family) 的第二个“展开细目”维度有助于查看操作系统版本。 |
代理客户端 IP | proxy_client_ip |
调用客户端的 IP 地址,存储在 |
引用的客户端 IP | ax_true_client_ip | 在使用 Akamai 等路由产品来捕获客户端的真实 IP 地址时,
客户端 IP 通过 HTTP 标头 为了确定通过 |
请求路径 | request_path |
指向目标服务的资源路径(不包括网域),不包括查询参数。 例如,Apigee 示例目标 |
Request URI | request_uri |
指向目标服务的资源路径(不包括网域),包括查询参数。 例如,Apigee 示例目标 |
请求动词 | request_verb | API 请求中的 HTTP 请求动词,例如 GET、POST、PUT、DELETE。 |
用户代理 | 用户代理 |
用于进行 API 调用的用户代理或软件代理的名称。示例:
|
用户代理系列 | ax_ua_agent_family | 用户代理系列,例如“Chrome Mobile”或“cURL”。 |
用户代理类型 | ax_ua_agent_type | 用户代理类型,例如“浏览器”、“移动浏览器”、“库”等。 |
用户代理版本 | ax_ua_agent_version |
用户代理的版本。 将此版本用作“用户代理系列”(ax_ua_agent_family) 的第二个“展开细目”维度有助于获取代理系列的版本。 |
去程/目标 | ||
目标基本路径 | target_basepath |
已在代理的 例如,假设 API 代理调用以下目标: <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> 在此示例中,target_basepath 为 如果目标为: <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> </HTTPTargetConnection> target_basepath 将为 null。 在 Trace 工具中,当您在流程图末尾选择 AX 图标时, |
目标主机 | target_host | 目标服务的主机。例如,如果 API 代理调用 http://mocktarget.apigee.net/help ,则 target_host 为 mocktarget.apigee.net 。 |
目标 IP 地址 | target_ip | 将响应返回到 API 代理的目标服务的 IP 地址。 |
目标响应代码 | target_response_code |
目标服务向 API 代理返回的 HTTP 响应状态代码,例如 200、404、503 等。 值为“null”表示请求从未到达目标服务。由响应缓存政策处理响应或请求处理中出现故障,便会发生这种情况。 这与响应状态代码 (response_status_code) 维度不同。 |
目标网址 | target_url |
在 API 代理的 TargetEndpoint 中定义的目标服务的完整网址。 <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> 在此示例中,target_url 为 请注意,您还可以在 API 代理处理期间使用 在代理中 链接以及使用 script 代码时 目标 (Node.js) 中,调用代理中的 target_url 为 null。 |
X Forwarded For | x_forwarded_for_ip |
为了确定通过 |
时间 | ||
一周中的第几天 | ax_day_of_week | 进行 API 调用的三个字母的星期几缩写。例如,周一、周二、周三。 |
月 | ax_month_of_year | 进行 API 调用的月份。例如,“03”表示 3 月。 |
当天时间 | ax_hour_of_day |
根据 24 小时制,进行 API 调用的 2 位数小时。例如,在晚上 10 点到 11 点之间进行 API 调用,则 ax_hour_of_day 为 22。 时间值采用 UTC 格式。 |
时区 | ax_geo_timezone | 发起 API 调用的时区通用名称,例如 America/New_York 和 Europe/Dublin。 |
一个月中某周 | ax_week_of_month | 该月中的周数。例如,对于在一个月的第 3 周进行的 API 调用来说,ax_week_of_month 为 3。 |
位置 | ||
城市 | ax_geo_city | 发起 API 调用的城市。 |
洲 | ax_geo_continent | 发起 API 调用的大洲的双字母代码。例如,NA 表示北美。 |
国家/地区 | ax_geo_country | 发起 API 调用的国家的双字母代码。例如,US 表示美国。 |
地理区域 | ax_geo_region | 地理区域的连字符代码,例如 STATE-COUNTRY。例如,WA-US 代表美国华盛顿。 |
区域 | ax_dn_region | 部署了 API 代理的 Apigee 数据中心的名称,例如 us-east-1。 |
获利 | ||
Mint 交易忽略消息 | x_apigee_mint_tx_ignoreMessage | 此标记指定是否忽略与创收相关的消息。为所有创收组织设为 false 。 |
Mint 交易状态 | x_apigee_mint_tx_status | 获利请求的状态,例如成功、失败、无效或无。 |
过滤器
借助过滤条件,您可将结果限制为具有特定特征的指标。以下是一些过滤条件示例。定义过滤条件时,请使用指标和维度 API 样式的名称。
返回名称簿或音乐的 API 代理的指标:
filter=(apiproxy in 'books','music')
返回名称以“m”开头的 API 代理的指标:
filter=(apiproxy like 'm%')
返回名称不是以“m”开头的 API 代理的指标:
filter=(apiproxy not like 'm%')
返回响应状态代码介于 400 到 599 之间的 API 调用指标:
filter=(response_status_code ge 400 and response_status_code le 599)
返回响应状态代码为 200 且目标响应代码为 404 的 API 调用的指标:
filter=(response_status_code eq 200 and target_response_code eq 404)
返回响应状态代码为 500 的 API 调用的指标:
filter=(response_status_code eq 500)
返回不会引发错误的 API 调用的指标:
filter=(is_error eq 0)
以下是可用于构建报告过滤条件的运算符。
运算符 | 说明 |
---|---|
in |
添加到列表中 |
notin |
从列表中移除 |
eq |
等于,== |
ne |
不等于,!= |
gt |
大于,> |
lt |
小于,< |
ge |
大于或等于,>= |
le |
小于或等于,<= |
like |
如果字符串格式与提供的格式匹配,则返回 true。 |
not like |
如果字符串格式与提供的格式匹配,则返回 false。 |
similar to |
根据其格式是否匹配给定的字符串,返回 true 或 false。它类似于 like ,不同之处在于它使用 SQL 标准正则表达式定义来解释格式。 |
not similar to |
根据其格式是否匹配给定的字符串,返回 false 或 true。它类似于 not like ,不同之处在于它使用 SQL 标准正则表达式定义来解释格式。 |
and |
可让您使用“and”逻辑来包含多个过滤条件表达式。该过滤条件包括满足所有条件的数据。 |
or |
可让您使用“or”逻辑来评估不同的潜在过滤条件表达式。过滤条件包括满足至少一个条件的数据。 |