随着时间的推移收集服务性能指标

时间:2013-11-20 06:50:48

标签: optimization report servicestack profiler

我想为每个ServiceStack服务收集性能指标,并编写报告这些指标的服务。具体来说,我最终想要提交一份类似于此的报告:

Service Name    Fastest time    Median time    Slowest time   Access count
---------------------------------------------------------------------------
GetCustomer         5 ms           8 ms           1001 ms       12345
ListMonkeys       123 ms         200 ms            228 ms         999

我想我知道如何使用请求/响应过滤器来做到这一点,但也许现有的机制可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我会尝试查看ServiceStacks embedded mini-profiler并将分析条件(在global.asax begin_request中)更改为始终运行,或者运行以随机选择所有请求的10%或15%。

然后你应该启用MiniProfiler's persistent storage,但是,ServiceStack嵌入式版本中的名称空间/属性可能与此示例略有不同。

最后,我会看一下MVC mini profiler dashboard drop in at Github。如果你没有使用ASP.net MVC,至少PerformanceController.cs可以让你很好地了解如何构建你的SQL调用。免责声明:控制器正在使用一些统计功能,这些功能仅存在于Oracle,Microsoft SQL和PostgreSQL中(据我所知),因此,如果您使用的是MySQL,则可能需要在应用程序端编写一些逻辑。