我想为每个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
我想我知道如何使用请求/响应过滤器来做到这一点,但也许现有的机制可以做到这一点?
答案 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,则可能需要在应用程序端编写一些逻辑。