[英]Apigee proxy performance tuning
是否有建议/最佳方法来生成有关API代理的每个策略所花费时间的报告?
当前,我的方法是使用JS收集时间戳并计算每个策略的延迟,然后使用统计信息收集策略报告该时间。
对于性能检查而言,这过于侵入性,仅我的数据收集就为整体响应增加了时间。
在分析多个请求中的数据时,最好的无创方法是报告每个步骤所花费的时间(在跟踪模式下,ui会根据单个请求显示每个策略的时间)
谢谢,
里卡多
不支持公共API来计算此信息并返回汇总的策略执行时间数据的简洁明了的响应。 最好的选择是尝试使用具有request_processing_latency
和response_processing_latency
度量的Analytics(分析)报告。 ( http://apigee.com/docs/content/analytics-reference )。 然后,如果需要,利用跟踪来识别策略执行时间。
另外,您可以尝试下载跟踪会话并解析策略之间的时间戳以构建您的信息,但是在UI中进行跟踪已经做到了。
您考虑使用调试API。 http://apigee.com/docs/api/debug-sessions
首先,您需要启动一个会话,例如:
curl -H "Content-type:application/octet-stream" -X POST https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/apis/{api_name}/revisions/{revision #}/debugsessions?"session=MySession" \\ -u $ae_username:$ae_password
从会话中获取信息:
curl -X GET -H "Accept:application/json" \\ https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/apis/{api_name}/revisions/{revision #}/debugsessions/MySession/data \\ -u $ae_username:$ae_password
可以使用UI中的调试跟踪找到每个策略花费的时间。
请参见以下屏幕截图。
同样,正如Diego所说,您可以使用debugsession API调用来获取调试会话。
对于调试会话,您还可以定义要调试会话运行多少时间的时间限制。 这样,如果您将性能测试运行1个小时,则可以在这么长的时间内创建调试会话。
curl -v -u jhans@apigee.com http://management:8080/v1/organizations/weatherapi/environments/prod/apis/ForeCast/revisions/6/debugsessions?session=ab\&timeout=300 -X POST
从UI中,您可以下载跟踪会话,该会话将包含具有每个策略时间戳记的XML。
<Point id="Condition">
<DebugInfo>
<Timestamp>05-02-14 04:38:14:088</Timestamp>
<Properties>
<Property name="ExpressionResult">true</Property>
</Point>
<Point id="StateChange">
上面是一个示例,用于从UI获取调试跟踪中任何策略的时间戳。
里卡多,这是我的建议。
免责声明:这是非常细致且耗时的。 仅当您确实在性能问题上受阻且没有其他解决方案时,我才建议使用此方法。
让我们说您的代理服务器几乎没有策略,即对外部服务的服务标注和后端。
因此,总延迟为(p1,p2,p3 ...)花费的时间总和+服务标注目标+后端花费的时间。
在这一系列负载测试的最后,您将知道后端对哪个策略的性能影响最大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.