【问题标题】:Collecting service performance metrics over time随时间收集服务性能指标
【发布时间】:2013-12-04 01:15:51
【问题描述】:

我想为我的每个 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

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

【问题讨论】:

  • 你看过postsharp.net吗,可能会为你节省一些时间,无论你对过滤器做什么,确保你异步保存数据,这样你就不会对指标集合影响太大
  • @KrisIvanov:感谢 postsharp.net 的链接,它看起来不错;如果我最终自己做所有事情,我可能会使用它。尽管如此,自己做事正是我想要避免的......

标签: optimization report servicestack profiler


【解决方案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,则可能需要在应用程序端编写一些逻辑代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多