本页面适用于 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 文档。
本部分介绍如何创建和管理调试会话,以及如何使用 Apigee 界面和 API 查看请求以及响应数据。
使用离线调试查看和分析之前下载的调试会话。
创建调试会话
调试工具简单易用。您启动调试会话,然后向 Apigee 发出 API 调用,最后在界面中查看请求和响应数据。
使用 Apigee 界面或 API 创建调试会话,如以下部分所述。
Cloud 控制台界面
调试 v2(新)
如需创建调试会话,请执行以下操作:
- 登录 Google Cloud 控制台。
- 依次选择代理开发 > API 代理。
- 选择您要调试的 API 代理。此时将显示代理编辑器概览窗格。
- 点击调试标签页。
- 点击启动调试会话。这将显示启动调试会话窗格。
-
在启动调试会话窗格中:
- 选择要运行调试会话的环境。
-
(可选)从过滤条件下拉列表中,选择一个过滤条件以应用于您要创建的调试会话中的所有事务。默认值为
None (All transactions)
,其中包含调试数据中的所有事务。如需了解如何使用过滤条件,请参阅在调试会话中使用过滤条件。 如需了解内置过滤条件,请参阅使用预定义的过滤条件。
- 点击开始。
Apigee 界面现在显示调试会话正在进行窗格。


调试会话会记录 10 分钟的请求,或者直到捕获到 15 个请求为止。如果您使用 API 创建调试会话,则可以调整 10 分钟的限制。结束时间字段显示会话中的剩余时间。
在向您在所选环境中调试的代理发送调试会话请求之前,您不会看到“调试”窗格中显示的任何信息。
发送请求后,该请求会显示在交易列表窗格中。事务列表每 5 秒更新一次。


调试 v1
如需在新版代理编辑器中创建调试会话,请执行以下操作:
- 登录 Google Cloud 控制台。
依次选择代理开发 > API 代理。
选择您要调试的 API 代理。此时将显示代理编辑器概览视图。
- 点击窗口左上角的调试标签页。
- 点击调试窗格右上角的启动调试会话。这将显示启动调试会话对话框。
在该对话框中:
- 选择要运行调试会话的环境。
- (可选)从过滤条件下拉列表中,选择一个过滤条件以应用于您要创建的调试会话中的所有事务。
默认值为
None (All transactions)
,其中包含调试数据中的所有事务。如需了解如何使用过滤条件,请参阅在调试会话中使用过滤条件。 如需了解内置过滤条件,请参阅使用预定义的过滤条件。
- 点击开始。
Apigee 界面现在显示调试会话正在进行视图。

调试会话会记录 10 分钟的请求,或者直到捕获到 15 个请求为止。如果您使用 API 创建调试会话,则可以调整 10 分钟的限制。结束时间字段显示会话中的剩余时间。
在向您在所选环境中调试的代理发送请求之前,您不会看到“调试”窗格中显示的任何信息。 调试会话的环境
发送请求后,它会显示在左侧窗格的底部。
注意:在主动调试会话期间,您可以在 Apigee 界面中启动另一个会话。为此,只需再次点击启动调试会话即可。
经典版界面
如需在经典版代理编辑器中创建调试会话,请执行以下操作:
- 登录 Apigee 界面。
- 从主视图中选择 API 代理。
选择您要调试的 API 代理。
此时将显示概览标签页。
- 点击页面右上角的调试标签页:
调试视图会显示以下内容:
- 在启动调试会话面板中:
- 从环境变量下拉列表中,选择要调试的 API 代理的环境和修订版本号。
- (可选)从过滤条件下拉列表中,选择一个过滤条件以应用于您要创建的调试会话中的所有事务。
默认值为
None
,其中包含调试数据中的所有事务。如需了解如何使用过滤条件,请参阅在调试会话中使用过滤条件。 如需了解内置过滤条件,请参阅使用预定义的过滤条件。
- 点击启动调试会话。
Apigee 界面现在会在调试详情面板中显示有关当前调试会话的详细信息,包括其 ID。
虽然界面创建了调试会话,但您仍需要发送请求才能收集数据。
在调试详情面板中,您可以执行以下操作:
图标 函数 说明 下载 下载活跃会话的调试数据,然后您就可以离线观看。 返回 返回上一个面板,您可以在其中启动另一个调试会话。当前调试会话会一直持续到达到其超时或事务计数。 删除 删除当前选定的调试会话的数据。这将删除会话的数据,但不会停止会话。 您在界面中启动的调试会话的默认超时上限为 10 分钟(通过 API 启动的会话不同)。
点击开始调试会话后时钟立即开始运行,因此您可以选择等到下一步之后再点击开始调试会话,以最大化收集的数据量。
以下示例展示了启动调试会话面板:
- 在发送请求面板中:
- 在网址字段中,输入要向其发送请求的端点。(可选)将查询字符串参数附加到网址。您不能提交
GET
以外的请求。如何查找端点网址
- 转到管理 > 环境 > 群组
- 网址是您希望用于运行调试会话的相应环境的主机名。
- 点击发送。
Apigee 向指定网址发送请求。每次点击发送时,Apigee 界面都会将请求记录在调试详情面板中。
以下示例展示了几个成功的请求(导致 HTTP 状态代码为
200
):点击复制以复制调试 ID 供日后参考或查询。
此外,界面在发送请求面板的“事务映射和阶段详情”部分中显示调试数据,并填充“代理端点”“请求标头”“请求内容”和“属性”部分,如以下示例所示:
如需详细了解发送请求视图的阶段、事务映射和其他部分,请参阅如何阅读调试信息。
发送请求面板仅显示基于界面的请求数据。但请注意,该调试还会记录并非由界面启动的请求的数据。
调试会话现已处于活跃状态,并记录所有请求的相关数据(除非它们被过滤掉)。会话会一直保持活动状态,直到达到超时或超过会话所记录的请求数量。
- 在网址字段中,输入要向其发送请求的端点。(可选)将查询字符串参数附加到网址。您不能提交
- 您可以在界面中创建任意数量的调试会话。如需了解详情,请参阅启动另一个调试会话。
API
如需使用 API 创建调试会话,请向以下资源发出 POST
请求:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions
您也可以:
- 通过将
timeout
属性作为查询参数或在请求正文中传递,设置调试会话的时长(以秒为单位)。如果同时指定了两者,则请求正文中指定的timeout
值优先。 - 通过在请求正文中传递
filter
属性,过滤调试会话中的数据。
以下示例演示了如何使用 API 创建调试会话。
curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \ -X POST \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{ "name":"56382416-c4ed-4242-6381-591bbf2788cf", "validity":300, "count":10, "tracesize":5120, "timeout":"600" }
系统会评估对 API 代理的后续请求(直到达到会话时长或最大请求数),并可能存储在调试会话数据中。
如需了解详情,请参阅创建调试会话 API。
使用 API 设置调试会话的长度
如需使用 API 设置调试会话的长度,请在调试会话创建请求中添加以下载荷:
{ "timeout":"debug_session_length_in_seconds" }
以下示例创建了一个仅 42 秒的调试会话:
curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" -X "POST" \ -H "Authorization: Bearer $TOKEN" \ -d ' { "timeout":"42" } '
您只能在调试会话创建请求中设置会话的 timeout
;创建会话后,您无法更改会话的持续时间。
timeout
的默认值为 300 秒(5 分钟)。最大值为 600 秒(10 分钟)。
复制代理网址
代理网址用于向 API 代理发送请求。
Cloud 控制台界面
调试 v2(新)
如需查找和复制代理网址,请执行以下操作:
- 在调试会话窗格的网址字段中,点击 复制。
- 如果未打开调试会话:
- 在 Google Cloud 控制台中,依次前往管理 > 环境 > 环境组。
- 网址是您希望用于运行调试会话的相应环境的主机名。选择网址,然后进行复制。
如需选择其他代理网址,请执行以下操作:
- 在调试会话窗格的网址字段中,点击 修改。
- 进行所需的任何更改,然后点击更新。
- 如果未打开调试会话:
- 查找代理网址。
- 依次点击 更多和 修改。
- 进行所需的任何更改,然后点击更新。
调试 v1
如需查找和复制代理网址,请执行以下操作:
- 在 Google Cloud 控制台中,依次前往管理 > 环境 > 环境组
- 网址是您希望用于运行调试会话的相应环境的主机名。选择网址,然后进行复制。
如需修改代理网址,请执行以下操作:
- 查找代理网址。
- 依次点击 更多和 修改。
- 进行所需的任何更改,然后点击更新。
经典版界面
如需查找和复制端点网址,请执行以下操作:
- 在 Apigee 界面中,依次前往管理 > 环境 > 组。 系统会将您重定向到 Google Cloud 控制台的管理 > 环境 > 环境组页面。
- 网址是您希望用于运行调试会话的相应环境的主机名。选择网址,然后进行复制。
如需修改目标网址,请执行以下操作:
- 查找端点网址。
- 依次点击 更多和 修改。
- 进行所需的任何更改,然后点击更新。
在界面中启动另一个调试会话
您可以在界面中创建任意数量的调试会话。
Cloud 控制台界面
在主动调试会话期间,您可以在 Apigee 界面中启动另一个会话。为此,请点击调试会话窗格中的
关闭:

界面将返回到启动调试会话面板,您可以在其中启动新的调试会话。
经典版界面
在主动调试会话期间,您可以在 Apigee 界面中启动另一个会话。为此,请点击调试详情面板中的返回箭头图标 (
):界面将返回到启动调试会话面板,您可以在其中启动新的调试会话。
调试会话何时结束?
您无法轻易地停止有效的调试会话。但是,您可以按照删除调试会话数据中所述,删除活跃会话的数据。
创建调试会话时,由两个属性决定何时结束:
- 超时:您在会话期间收集数据的时长。 默认长度取决于您启动会话的方式(通过界面或 API)。最大值为 600 秒(或 10 分钟)。
- 计数:每个消息处理器在单个会话中记录的请求数量上限。由于大多数集群中的消息处理器数量是可变的,因此计数的影响可能是不可预测的。Apigee 不建议自定义此设置。
达到超时或计数时,相应消息处理器的调试会话将结束。
以下术语用于描述调试会话的状态:
- 活跃会话是尚未达到超时限制或超出其计数的调试会话。活跃会话仍在记录未经过滤的请求的请求数据。
- 已完成的会话是指已经超时或超过其计数的调试会话;完成的会话不会再记录有关新请求的数据,系统会在该会话结束后的 24 小时内删除其数据。
如何读取调试会话
本部分简要介绍了调试会话。
另请参阅:
Cloud 控制台界面
经典版界面
调试工具包含两个主要部分,即事务映射和阶段详情:
“事务”窗格
事务窗格显示了请求和响应中的步骤。
Cloud 控制台界面
调试 v2(新)
下面是一个已标记主代理处理段的调试工具事务窗格:


调试 v1
如需在“调试”视图中查看事务的详细信息(请求和响应),请点击事务所在的行,以在右侧窗格中显示甘特图,其中显示请求和响应中的步骤。
图的水平轴表示每个步骤发生的时间(以毫秒为单位)。每个步骤用一个矩形表示,从步骤开始时间延伸到结束时间。
您可以使用调试窗格右下角的返回和下一步按钮逐步完成调试会话。点击:
- 返回,将选定的行移动到图表中的上一步。
- 下一步,将选定的行移动到图表中的下一步。
在上面显示的示例中,图表显示了在响应中执行的两个政策:
- ResponsePayload
- 添加 CORS
您可以点击任一步骤来查看其详细信息。 例如,如果您点击添加 CORS 政策,则会看到如下所示的甘特图详细信息。
然后,如果您决定更改政策配置中的某项内容,则可以点击开发以切换到开发视图,您将在其中看到相同的内容响应 PostFlow 中的两个政策。
经典版界面
下面是一个已标记主代理处理细分的调试工具映射示例:
调试工具的事务映射
“事务”窗格图例
下面介绍了“事务”窗格中的图标:
Cloud 控制台界面
调试 v2(新)
本部分介绍了“事务”窗格中的图标:
政策图标
每种类型的政策都有一个唯一的图标。通过这些图标,您可以了解政策执行顺序是否正确,以及政策是否成功。您可以点击政策图标以查看其执行结果,以及预期的执行结果。例如,您可以查看消息是否已正确转换或是否正在缓存。
标准政策可增强 API,以控制流量、提升性能、强制执行安全机制并提高 API 的实用性,而无需您编写代码或修改后端服务。
借助可扩展的政策,您可以向 API 代理添加自定义逻辑。 您可以使用这些政策来添加标准政策未提供的功能。
如需详细了解政策和类别,请参阅政策参考概览。
如需过滤表格,请执行以下操作:
- 选择一种政策类型和/或一种政策类别。
- 点击名称列标题,按政策名称对表格进行排序。
- 输入关键字以搜索政策名称。
图标 | 名称 | 类型 | 类别 |
---|---|---|---|
manage_search | ParseDialogflowRequest 政策 | 可扩展 | 对话流 |
chat_add_on | SetDialogflowResponse 政策 | 可扩展 | 对话流 |
stacked_line_chart | DataCapture 政策 | 可扩展 | 扩展程序 |
display_external_input | ExternalCallout 政策 | 标准 | 扩展程序 |
flowsheet | FlowCallout 政策 | 可扩展 | 扩展程序 |
automation | IntegrationCallout 政策 | 可扩展 | 扩展程序 |
![]() |
JavaCallout 政策 | 可扩展 | 扩展程序 |
![]() |
JavaScript 政策 | 可扩展 | 扩展程序 |
add_notes | MessageLogging 政策 | 可扩展 | 扩展程序 |
chat_paste_go | PublishMessage 政策 | 标准 | 扩展程序 |
![]() |
PythonScript 政策 | 可扩展 | 扩展程序 |
integration_instructions | ServiceCallout 政策 | 可扩展 | 扩展程序 |
automation | SetIntegrationRequest 政策 | 可扩展 | 扩展程序 |
waterfall_chart | TraceCapture 政策 | 可扩展 | 扩展程序 |
cloud_done | AccessEntity 政策 | 可扩展 | 中介 |
account_tree | AssertCondition 政策 | 标准 | 中介 |
edit_square | AssignMessage 政策 | 可扩展 | 中介 |
login | ExtractVariables 政策 | 可扩展 | 中介 |
![]() |
GraphQL 政策 | 标准 | 中介 |
sync_alt | HTTPModifier 政策 | 标准 | 中介 |
sync_alt | JSONtoXML 政策 | 标准 | 中介 |
account_tree | KeyValueMapOperations 政策 | 可扩展 | 中介 |
sync_alt | MonetizationLimitsCheck 政策 | 可扩展 | 中介 |
cloud_done | OASValidation 政策 | 标准 | 中介 |
报告 | RaiseFault 政策 | 标准 | 中介 |
sync_alt | ReadPropertySet 政策 | 标准 | 中介 |
cloud_done | SOAPMessageValidation 政策 | 标准 | 中介 |
sync_alt | XMLtoJSON 政策 | 标准 | 中介 |
cloud_done | XSLTransform 政策 | 可扩展 | 中介 |
lock | AccessControl 政策 | 标准 | 安全 |
安全 | BasicAuthentication 政策 | 可扩展 | 安全 |
connect_without_contact | CORS 政策 | 标准 | 安全 |
lock | DecodeJWS 政策 | 可扩展 | 安全 |
lock | DecodeJWT 政策 | 标准 | 安全 |
passkey | DeleteOAuthV2Info 政策 | 可扩展 | 安全 |
lock | GenerateSamlAssertion 政策 | 可扩展 | 安全 |
lock | GenerateJWS 政策 | 可扩展 | 安全 |
lock | GenerateJWT 政策 | 可扩展 | 安全 |
passkey | GetOAuthV2Info 政策 | 可扩展 | 安全 |
lock | HMAC 政策 | 标准 | 安全 |
安全 | JSONThreatProtection 政策 | 可扩展 | 安全 |
passkey | OAuthV2 政策 | 可扩展 | 安全 |
安全 | RegularExpressionPolicy 政策 | 可扩展 | 安全 |
passkey | RevokeOAuthV2 政策 | 可扩展 | 安全 |
passkey | SetOAuthV2Info 政策 | 可扩展 | 安全 |
lock | ValidateSamlAssertion 政策 | 可扩展 | 安全 |
key | VerifyAPIKey 政策 | 可扩展 | 安全 |
passkey | VerifyIAM 政策 | 可扩展 | 安全 |
lock | VerifyJWS 政策 | 可扩展 | 安全 |
lock | VerifyJWT 政策 | 标准 | 安全 |
安全 | XMLThreatProtection 政策 | 可扩展 | 安全 |
已缓存 | InvalidateCache 政策 | 可扩展 | 流量管理 |
已缓存 | LookupCache 政策 | 可扩展 | 流量管理 |
已缓存 | PopulateCache 政策 | 可扩展 | 流量管理 |
bar_chart_4_bars | 配额政策 | 可扩展 | 流量管理 |
repartition | ResetQuota 政策 | 可扩展 | 流量管理 |
已缓存 | ResponseCache 政策 | 可扩展 | 流量管理 |
emergency_home | SpikeArrest 政策 | 标准 | 流量管理 |
其他图标
下表介绍了您将在事务窗格中看到的其他图标的用途。这些图标标记整个代理流程中每个重要的处理步骤。
如需过滤表格,请执行以下操作:
- 选择一种图标类型。
- 点击名称列标题,按图标名称对表格进行排序。
- 输入关键字以搜索图标名称。
图标 | 名称 | 类型 | 说明 |
---|---|---|---|
监控 | 客户端应用 | 标准事务 | 向 API 代理的 ProxyEndpoint 发送请求的客户端应用。 |
圆圈 | 过渡端点 | 标准事务 | 圆圈在代理流中标记过渡端点。当请求从客户端传入时、当请求到达目标时、当响应来自目标时以及当响应返回客户端时,都会有圆圈标记。 |
stat_0 | 流段 | 标准事务 |
菱形表示 API 代理流中流段的开始。流段包括:ProxyEndpoint 请求、TargetEndpoint 请求、TargetEndpoint 响应和 ProxyEndpoint 响应。段包括 PreFlow、条件流和 PostFlow。 如需了解详情,请参阅条件流。 |
![]() |
条件流为 true | 标准事务 |
计算结果为 true 的条件流(类似于计算结果为 请注意,某些条件是由 Apigee 生成的。例如,以下表达式用于让 Apigee 检查 ProxyEndpoint 是否出现错误:
|
![]() |
条件流为 false | 标准事务 |
计算结果为 false 的条件流程。如需了解条件流的简介,请参阅条件流。 请注意,某些条件是由 Apigee 生成的。例如,以下表达式是 Apigee 用来检查 TargetEndpoint 中是否出现错误的表达式:
|
![]() |
流信息 | 标准事务 | 表示有关 API 代理执行的上下文信息,这些信息因流中的点而异。其中包括有关代理配置、当前执行状态(例如 PreFlow、PostFlow、流钩子)、政策执行详细信息以及政策执行期间填充的变量,以指示代理在该时间点的具体状态。 |
done_all | 流执行 | 标准事务 | 标记流执行的开始或结束时间,以指示不同流段的时间范围,从而直观地划定流边界并指示流执行顺序。 |
提交 | 流处理 | 标准事务 | 表示流中的活跃处理,表示执行政策和流逻辑的期间。 |
bar_chart | Apigee 分析捕获的数据 | 标准事务 | 指示已在后台进行 Analytics 操作。 |
location_on | 后端服务 | 标准事务 | 接收请求的后端服务。 API 代理调用的后端目标。 |
![]() |
已停用 | 步骤状态 | 当政策处于停用状态时,该政策会显示在政策图标上。可以使用公共 API 停用政策。请参阅 API 代理配置参考。 |
![]() |
错误 | 步骤状态 | 在政策步骤条件计算结果为 false 时,出现在政策图标上(参阅使用流变量的条件),或在执行 RaiseFault 政策时,出现在 RaiseFault 政策图标上。 |
![]() |
已跳过 | 步骤状态 | 在由于步骤条件计算结果为 false 而未执行政策时,显示在政策图标上。如需了解详情,请参阅使用流变量的条件。 |
调试 v1
此版本利用甘特图显示请求和响应中的步骤;未提供图例。
经典版界面
下表介绍了您将在事务示意图中看到的图标的意图。这些图标标记整个代理流程中每个重要的处理步骤。
事务示意图图标
![]() |
向 API 代理的 ProxyEndpoint 发送请求的客户端应用。 |
![]() |
圆圈在代理流程中标记过渡端点。当请求从客户端传入时、当请求到达目标时、当响应来自目标时以及当响应返回客户端时,都会有圆圈标记。 |
![]() |
高竖条表示 API 代理流程中流程细分的开始。流段包括:ProxyEndpoint 请求、TargetEndpoint 请求、TargetEndpoint 响应和 ProxyEndpoint 响应。段包括 PreFlow、条件流和 PostFlow。 如需了解详情,请参阅配置流。 |
![]() |
指示已在后台进行 Analytics 操作。 |
![]() |
一个评估为 true 的条件流程。如需了解条件流的简介,请参阅配置流。 请注意,某些条件是由 Apigee 生成的。例如,以下表达式用于让 Apigee 检查 ProxyEndpoint 是否出现错误: ((error.state equals PROXY_REQ_FLOW) or (error.state equals
PROXY_RESP_FLOW))
|
![]() |
计算结果为 false 的条件流程。如需了解条件流,请参阅配置流。 请注意,某些条件是由 Apigee 生成的。例如,以下表达式是 Apigee 用来检查 TargetEndpoint 中是否出现错误的表达式: (((error.state equals TARGET_REQ_FLOW) or (error.state equals
TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals
RESP_START)))
|
|
政策 每种类型的政策都有一个唯一的图标。此政策适用于 AssignMessage 政策。通过这些图标,您可以了解政策执行顺序是否正确,以及政策是否成功。您可以点击政策图标以查看其执行结果,以及预期的执行结果。例如,您可以查看消息是否已正确转换或是否正在缓存。 正确执行的政策由对勾标记明确指明。如果发生错误,图标上会显示一个红色感叹号。 |
![]() |
API 代理调用的后端目标。 |
![]() |
时间线表示处理完成所需的时间(以毫秒为单位)。比较运行时间段有助于隔离耗时最长的政策,进而减慢 API 调用速度。 |
![]() |
Epsilon 表示时间范围小于 1 毫秒。 |
![]() |
已停用。当政策处于停用状态时,该政策会显示在政策图标上。可以使用公共 API 停用政策。请参阅 API 代理配置参考。 |
![]() |
错误。在“政策步骤”条件计算结果为 false 时,出现在政策图标上(参阅流变量和条件),或在执行 RaiseFault 政策时,出现在 RaiseFault 政策图标上。 |
![]() |
已跳过。在由于步骤条件计算结果为 false 而未执行政策时,显示在政策图标上。 如需了解详情,请参阅流变量和条件。 |
“阶段详细信息”窗格
“阶段详细信息”窗格向您介绍了代理在每个处理步骤的状态。
Cloud 控制台界面
调试 v2(新)
“阶段详细信息”窗格向您详细介绍了代理在每个处理步骤的状态。以下是提供的一些详细信息。 点击调试工具中的任意图标可查看所选步骤的详细信息,也可以使用 > 下一步或 < 返回按钮从一个步骤移动到另一个步骤。
下表介绍了“阶段详细信息”窗格中提供的详细信息。
阶段详情 | 说明 |
变量 |
列出根据政策读取并分配值的流变量,另请参阅使用流变量。 |
请求标头 | 列出 HTTP 请求标头。 |
请求内容 | 显示 HTTP 请求正文。 |
属性 | 属性表示 API 代理的内部状态。默认情况下,这些列不会显示。 |
目标端点 | 指明要执行哪个 TargetEndpoint。 |
响应标头 | 列出 HTTP 响应标头。 |
响应内容 | 显示 HTTP 响应正文。 |
调试 v1
点击甘特图中的步骤可查看阶段详细信息,也可以使用 > 下一步或 < 返回按钮逐步完成调试会话。
经典版界面
该工具的阶段详细信息部分向您详细介绍了代理在每个处理步骤的状态。以下是“阶段详情”中提供的一些详细信息。点击调试工具中的任意图标可查看所选步骤的详细信息,也可以使用下一步/返回按钮从一个步骤移动到另一个步骤。
阶段详情 | 说明 |
代理端点 | 指明要执行哪个 ProxyEndpoint。一个 API 代理可以有多个已命名的代理端点。 |
变量 |
列出根据政策读取并分配值的流变量,另请参阅使用流变量。 注意:
|
请求标头 | 列出 HTTP 请求标头。 |
请求内容 | 显示 HTTP 请求正文。 |
属性 | 属性表示 API 代理的内部状态。默认情况下,这些列不会显示。 |
目标端点 | 指明要执行哪个 TargetEndpoint。 |
响应标头 | 列出 HTTP 响应标头。 |
响应内容 | 显示 HTTP 响应正文。 |
PostClientFlow | 显示有关 PostClientFlow 的信息,在请求返回到发出请求的客户端应用后执行。只有 MessageLogging 政策可以附加到 PostClientFlow。PostClientFlow 目前主要用于测量响应消息的开始时间戳和结束时间戳之间的时间间隔。 |
时间轴
时间线表示处理完成所需的时间(以毫秒为单位)。比较运行时间段有助于隔离耗时最长的政策,进而减慢 API 调用速度。
Epsilon 表示时间范围小于 1 毫秒。
Cloud 控制台界面
调试 v2(新)


调试 v1


经典版界面


展开和收起群组
本部分介绍如何在“事务”窗格中展开和收起群组。
Cloud 控制台界面
调试 v2(新)
事务步骤(包括请求和响应)按之前在“开发”标签页中配置的方式(通过共享流)进行分组。例如:pre-proxy、post-proxy、pre-target 和 post-target。
每个分组都清楚地显示了相关政策、条件、共享流和流信息。
默认情况下,共享流会分组并收起。
您可以在事务窗格中执行以下操作:
项 | 名称 | 说明 |
---|---|---|
![]() <img <="" alt="collapse all slider" class="screenshot" src="/static/apigee/docs/api-platform/debug/images/collapse_all_slider.png" td="" width="" /> |
全部展开 全部收起 |
展开或收起所有群组。 |
![]() ![]() |
展开 /收起 |
展开或收起群组。 |
另请参阅:
调试 v1
此版本不提供展开和收起群组功能。
经典版界面
此版本不提供展开和收起群组功能。
搜索
通过搜索,您可以在请求或响应中查找字词或短语。
Cloud 控制台界面
调试 v2(新)
通过搜索,您可以在请求或响应中查找字词或短语。
请注意以下几点:
- 搜索不区分大小写
- 搜索仅适用于单个事务,也就是说,不会搜索整个调试会话中的所有事务。
- 搜索会展开收起的部分,但不会显示通过查看选项选择过滤掉的节点上的信息。
如需搜索,请执行以下操作:
- 在搜索框中输入文字。
-
按 Enter 键。
搜索结果会在事务窗格和阶段详细信息窗格中突出显示。
- 点击 keyboard_arrow_up 返回或 keyboard_arrow_down 下一步,即可前往上一步或下一步。


调试 v1
此版本不提供搜索功能。
经典版界面
此版本不提供搜索功能。
Zoom
通过缩放,您可以控制“事务”窗格的视图。
Cloud 控制台界面
调试 v2(新)
缩放功能可控制“事务”窗格的视图,如下所示:


图标 | 说明 |
---|---|
100% | 当前缩放级别。默认值为 100%。 |
fit_screen | 适合屏幕大小 |
zoom_in | 放大 |
zoom_out | 缩小 |
youtube_searched_for | 重置缩放级别 |
调试 v1
此版本不提供缩放功能。
经典版界面
此版本不提供缩放功能。
使用调试工具进行调试
通过调试,您可以查看有关 API 代理的许多内部详细信息。例如:
- 您可以一目了然地看到哪些政策执行正确或失败。
- 假设您通过其中一个 Analytics 信息中心注意到您的某个 API 导致性能下降。现在,您可以使用调试来帮助确定瓶颈发生的位置。调试提供了完成每个处理步骤所需的时间(以毫秒为单位)。如果您发现一个步骤用时太长,您可以采取纠正措施。
- 您可以检查发送到后端的标头、查看由政策设置的变量等。
- 通过验证基本路径,您可以确保政策将消息路由到正确的服务器。
在调试会话中过滤数据
创建调试会话时,您可以向该会话添加过滤条件,以便 Apigee 仅返回您需要的数据。过滤条件是 Apigee 根据请求和响应消息评估的条件语句,以确定其调试数据是否应包含在调试会话中。例如,您可以过滤掉 HTTP 响应代码小于 599 的所有请求,或者将请求中的值与自定义变量进行比较。
请注意以下事项:
- 未包含在调试会话中的请求,不会计入调试会话中的事务数上限,因为这些请求被过滤掉。
- Apigee 不支持在查询字符串中添加过滤条件。
- 会话开始后,您无法向调试会话添加过滤条件。如需添加过滤条件,您必须创建一个调试会话。
使用过滤器
使用 Apigee 界面或 API 创建调试会话时,请使用过滤条件,如以下部分所述。
Cloud 控制台界面
在界面中创建调试会话时,可以在过滤条件下拉列表中选择要在启动调试会话面板中应用的预定义过滤条件,或者选择自定义过滤条件并使用过滤条件语法构建自己的过滤条件。
经典版界面
在界面中创建调试会话时,可以在过滤条件下拉列表中选择要在启动调试会话面板中应用的预定义过滤条件,或者选择自定义过滤条件并使用过滤条件语法构建自己的过滤条件。
API
如需使用 API 创建具有过滤条件的调试会话,请在调试会话创建请求中将以下内容作为载荷添加:
{ "filter":"filter_body" }
如需了解如何构建过滤条件,请参阅过滤条件语法。
以下示例创建了一个调试会话,该会话仅包含事务,其中标头 A
等于 42
且标头 B
等于 43
,或者故障代码为 ExpectedEOF
:
curl -H "Authorization: Bearer $TOKEN" -X "POST" https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions -d ' { "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'" } '
您只能在调试会话创建请求中定义过滤条件;不能向现有调试会话添加过滤条件,也不能从活跃的调试会话中删除过滤条件。
过滤器语法
过滤条件支持 Apigee 条件使用的语法,如条件参考中所述。其中包括:
此外,过滤条件可以访问流变量参考中描述的所有流变量以及自定义变量。以下示例展示了可在过滤条件中使用的部分可能流变量:
# Response codes: response.status.code <= 599 response.status.code >=301 && response.status.code <=420 # Requests/responses: request.verb == "GET" request.header.A == 'B' || request.queryparam.X == 'Y' # Query parameters: request.queryparam.myparam == 'fish' (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z' # Faults: fault.code != 'messaging.runtime.RouteFailed' fault.name == 'IPDeniedAccess'
如需了解如何使用自定义变量,请参阅 Apigee 社区中的如何在 Apigee 中使用自定义特性。
预定义的界面过滤条件
Apigee 界面提供了一组常用的过滤条件,因此您不必编写自己的自定义过滤条件。下表汇总了预定义的过滤条件。
过滤条件名称 | 说明 |
---|---|
Response Time Greater Than |
检查下列情况下的延迟时间问题:
例如: target.duration > 420 && client.duration > 1000 |
Response Code |
检查 HTTP 响应代码是否与指定值相符;例如: response.status.code <= 599 |
Header |
检查指定的请求标头是否等于指定值;例如: request.header.cache-control.1 == "16544" |
Path |
检查请求是否与指定路径匹配。您可以在值中使用通配符匹配;例如: request.path == /myproxy/customer/4* |
Query Param |
检查指定的请求查询参数是否等于指定值;例如: request.queryparam.lang == "language:en-us" |
Custom |
通过此方法,您可以插入自己的表达式。您可以在流变量参考和条件参考中的语法中使用任何对象。此外,您还可以使用自定义变量。 如需详细了解如何创建自定义过滤条件,请参阅过滤条件语法。 |
查看调试会话
Apigee 会将调试会话数据保存 24 小时。您不能配置此值;24 小时之后,这些数据将不再可用。在此之前,您可以查看调试会话。
使用 Apigee 界面或 API 查看最近的调试会话,如以下部分所述。
Cloud 控制台界面
调试 v2(新)
如需使用 Google Cloud 控制台查看调试会话,请执行以下操作:
- 登录 Google Cloud 控制台。
点击代理开发 > API 代理。
- 点击要调试的代理。
- 点击调试标签页。
- 最近的调试会话会显示可用的调试会话列表。
点击要查看的会话的链接。
调试 v1
如需使用新版代理编辑器查看调试会话,请执行以下操作:
- 登录 Google Cloud 控制台。
依次选择代理开发 > API 代理。
- 选择要调试的代理。
- 点击调试标签页。
- 最近的调试会话会显示可用的调试会话列表。
点击要查看的会话的链接。
经典版界面
如需使用经典版代理编辑器查看调试会话,请执行以下操作:
- 登录 Apigee 界面。
- 从主视图中选择 API 代理。
- 选择要调试的代理。
- 点击部署视图右上角的调试标签页。
- 在近期调试会话面板中:
- 从环境下拉列表中,选择您要查看其调试会话的 API 代理的环境。
- 从修订版本下拉列表中,选择您想要查看其调试会话的 API 代理的修订版本号。
Apigee 界面显示可用的调试会话列表。
点击要查看的会话的链接。
Apigee 界面会加载调试会话,并使用调试数据填充发送请求面板。
API
您可以借助此 API 执行以下操作:
使用 API 查看所有调试会话
如需查看环境中为 API 代理修订版本定义的所有最新调试会话,请向以下资源发出 GET 请求:
https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions
(可选)您可以指定以下某个查询参数来控制返回的数据量:
- pageSize - 需要列出的调试会话数量上限。页面大小默认为 25。
- pageToken - 之前调用返回的页面令牌,可用于检索下一页。
以下示例演示了如何查看 test
环境中 helloworld
API 代理修订版 1 的调试会话。
curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
该响应包含一个 sessions
对象,其中包含当前处于活跃状态的调试会话列表,如以下示例所示:
{ "sessions": [ { "id": "a423ac73-0902-4cfa-4242-87a353a84d87", "timestamp_ms": 1566330186000 }, { "id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a", "timestamp_ms": 1566330286000 } ] }
响应中只包含至少含一个事务的调试会话;不含任何事务的调试会话不包括在此列表中。
如需了解详情,请参阅列出调试会话 API。
使用 API 查看调试会话的所有事务
如需查看调试会话的交易列表,请对以下资源发出 GET 请求:
https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data
其中,debugsession是您在查看调试会话时返回的调试会话的 ID。
以下示例演示了如何查看 test
环境中 helloworld
API 修订版 1 的调试会话的事务。
curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
响应包括交易 ID 数组,如以下示例所示:
[ "myorg-test-ver-5qxdb-64", "myorg-test-ver-5qxdb-65", "myorg-test-ver-5qxdb-66", "myorg-test-ver-5qxdb-67", "myorg-test-ver-5qxdb-68", "myorg-test-ver-5qxdb-69", "myorg-test-ver-5qxdb-70", "myorg-test-ver-5qxdb-71", "myorg-test-ver-5qxdb-72" ]
如需了解详情,请参阅列出调试会话数据 API。
使用 API 查看调试会话的事务数据
如需查看调试会话的事务数据,请向以下资源发出 GET 请求:
https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}
其中,debugsession 是您在查看调试会话时返回的调试会话的 ID。transactionId 是您查看调试会话的事务列表时返回的事务 ID。
在调试会话期间以 JSON 格式保存事务数据。您可以在离线调试工具中加载此数据。
以下示例演示了如何为 test
环境中 helloworld
API 修订版 1 的调试会话下载事务数据。
curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
响应由 JSON 载荷组成,该载荷包含指定事务的数据(如下载数据结构中所述)。
调试数据以专有 JSON 格式包含有关流的每个部分的请求和响应的所有信息。您可以保存这些数据,稍后在离线调试工具中使用这些数据。
如果在会话结束之前未向会话添加任何请求,则响应将如下所示:
[]
如需了解详情,请参阅获取调试会话数据 API。
在界面中选择视图选项
本部分介绍如何选择视图选项来过滤界面中显示的内容。
Cloud 控制台界面
如需选择调试会话的视图选项,请在视图选项窗格中选择或清除相应选项。这些视图选项会在每位用户的调试会话中保留。


选项 | 说明 |
---|---|
显示已停用的政策 | 显示所有已停用的政策。可以使用公共 API 停用政策。请参阅 API 代理配置参考。 |
显示跳过的政策 | 显示跳过的所有政策。在由于步骤条件计算结果为 false 而未执行政策时,发生跳过政策的情况。如需了解详情,请参阅使用流变量的条件。 |
显示所有 FlowInfo | 表示流程细分内的转换。 |
显示所有流条件 | 表示为每个流评估的条件。 |
经典版界面
如需选择调试会话的视图选项,请在视图选项窗格中选择或清除相应选项:
选项 | 说明 |
---|---|
显示已停用的政策 | 显示所有已停用的政策。可以使用公共 API 停用政策。请参阅 API 代理配置参考。 |
显示已跳过的阶段 | 显示跳过的所有阶段。在由于步骤条件计算结果为 false 而未执行政策时,发生跳过阶段的情况。 如需了解详情,请参阅使用流变量的条件。 |
显示所有 FlowInfo | 表示流程细分内的转换。 |
自动比较选定的阶段 | 将所选阶段与前一阶段进行比较。将此模式关闭,仅查看所选阶段。 |
显示变量 | 显示或隐藏已读取和/或已分配值的变量。 |
显示属性 | 属性表示 API 代理的内部状态。(默认情况下隐藏)。 |
共享调试会话
您可以与有权访问您的组织和必要权限的其他用户共享调试会话。为此,只需在查看调试会话时向其发送浏览器中显示的网址即可。链接仅在调试会话创建后 24 小时内有效。
下载调试会话数据
您可以下载原始调试结果文件进行离线观看。下载的文件显示了调试会话的完整详细信息,包括所有标头、变量和政策的内容。
调试会话数据仅限 24 小时之内在界面中下载或查看。之后,Apigee 会删除会话数据。
如需查看下载的调试会话数据,请使用离线调试工具。
Cloud 控制台界面
调试 v2(新)
如需在 Google Cloud 控制台中下载当前调试会话,请点击调试视图中的下载。


调试 v1
如需在新版代理编辑器中下载当前调试会话,请点击调试视图左侧窗格中的下载会话。
请注意,调试会话在完成后的 24 小时内删除,因此,如果您希望在该时间之后查看调试会话,则需要在此之前下载调试会话。
经典版界面
如需使用经典版代理编辑器下载当前调试会话的数据,请执行以下操作:
- 活跃会话:点击调试详情面板中的下载图标 (
)。
- 上一会话:点击最近调试会话面板中的会话名称,如查看调试会话中所述。然后在调试详情面板中点击
。
API
如需使用 Apigee API 查看当前调试会话的所有事务的 ID,请输入以下命令:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data
其中,SESSION_ID 是您要下载的调试会话的 ID。
请参阅列出调试会话中的事务 ID。
如需使用 Apigee API 获取事务的调试数据,请输入以下命令:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID
下载数据结构
Apigee 界面和 Apigee API 的调试会话数据的下载结构不同。
Cloud 控制台界面
使用 Apigee 界面下载数据时,数据结构如下:
- 包含整个会话中的所有事务
- 将事务存储在
Messages
数组中 - 包含会话的相关元数据(作为
DebugSession
对象)
经典版界面
使用 Apigee 界面下载数据时,数据结构如下:
- 包含整个会话中的所有事务
- 将事务存储在
Messages
数组中 - 包含会话的相关元数据(作为
DebugSession
对象)
API
如查看调试会话中所述,您无法使用 Apigee API 同时查看整个会话的数据;您只能使用 API 查看个别事务数据。
例如:
{ "completed": true, "point": [ ... ... }
下载数据示例
以下示例在下载的数据中突出显示了 DebugSession
元数据对象。此对象位于会话中包含事务的 Messages
数组。
{ "DebugSession": { "Retrieved": "2019-06-08T13:08:13.395Z", "Organization": "myorg", "Environment": "prod", "API": "myproxy", "Revision": "1", "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9" }, "Messages": [ { "completed": true, "point": [ { "id": "Paused" }, { "id": "Resumed" }, { "id": "StateChange", "results": [ { "ActionResult": "DebugInfo", "properties": { "property": [ { "name": "To", "value": "REQ_HEADERS_PARSED" }, { "name": "From", "value": "REQ_START" } ] }, "timestamp": "8-6-19 13:08:37:718" }, { "ActionResult": "RequestMessage", "headers": [ { "name": "accept", "value": "*/*" }, { "name": "accept-encoding", "value": "gzip,gzip,deflate,br" }, { "name": "content-length", "value": "0" }, { "name": "host", "value": "myorg.example.domain.net" }, { "name": "user-agent", "value": "Google-Apigee" }, { "name": "x-b3-sampled", "value": "0" }, { "name": "x-b3-spanid", "value": "d4ee579206759662" }, { "name": "x-b3-traceid", "value": "adc1e171777c237dd4ee579206759662" }, { "name": "x-forwarded-for", "value": "66.102.8.98" }, { "name": "x-forwarded-proto", "value": "https" }, { "name": "x-request-id", "value": "54e05cba-4242-4490-4242-60c45c156f90" } ], "uRI": "/myproxy", "verb": "GET" } ] }, { "id": "FlowInfo", "results": [ { "ActionResult": "DebugInfo", "properties": { "property": [ { "name": "environment.name", "value": "prod" }, { "name": "environment.qualifiedname", "value": "myorg__prod" }, { "name": "environment.orgname", "value": "myorg" } ] }, "timestamp": "8-6-19 13:08:37:718" } ] }, { "id": "FlowInfo", "results": [ { "ActionResult": "DebugInfo", "properties": { "property": [ { "name": "organization.name", "value": "myorg" } ] }, "timestamp": "8-6-19 13:08:37:718" } ] }, { "id": "FlowInfo", "results": [ { "ActionResult": "DebugInfo", "properties": { "property": [ { "name": "apiproxy.qualifiedname", "value": "myproxy__1" }, { "name": "apiproxy.basepath", "value": "/" }, { "name": "apiproxy.revision", "value": "1" }, { "name": "apiproxy.name", "value": "myproxy" } ] }, "timestamp": "8-6-19 13:08:37:718" } ] }, ... ... } ] }
如果调试会话不包含任何请求,则 Message
数组为空,如以下示例所示:
{ "DebugSession": { "Retrieved": "2019-06-08T13:08:13.395Z", "Organization": "myorg", "Environment": "prod", "API": "myproxy", "Revision": "1", "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9" }, "Messages": [] }
删除调试会话的数据
如以下部分所述,使用 Apigee 界面或 API 删除调试会话的数据。
Cloud 控制台界面
调试 v2(新)
如需在 Google Cloud 控制台中删除调试会话,请执行以下操作:
- 在调试标签页中,点击要删除的会话所在的行。
- 在调试会话窗格中,点击 删除。


调试 v1
如需在新版代理编辑器中删除调试会话,请执行以下操作:
- 选择要删除的会话所在的行。
- 点击行末的三点状菜单,然后选择删除。
经典版界面
点击调试会话的调试详细信息面板中的 。
API
如需使用 API 删除所有调试会话数据,请向以下资源发出 DELETE 请求:
https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data
其中,debugsession是您在查看调试会话时返回的调试会话的 ID。
以下示例演示了如何删除 test
环境中 helloworld
API 修订版 1 的调试会话数据。
curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \ -X DELETE \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
如果成功,则响应正文将为空。
调试会话数据只会保留 24 小时。如果您未在该时间段之前明确删除该服务,则 Apigee 会为您删除该服务。