我们的应用程序包含多项服务。让我们说:
这些服务大多数是.Net,但不一定都是.Net。大多数是我们的控制,但有两个是外部服务,最终可能会有更多。最终,我们的.Net服务将被迁移到云端。
端到端的性能很重要,而且现在,我们正在努力查看性能瓶颈所在的大局。我们正在考虑的几个想法是:
对于外部服务,我们只期望调用的时间和返回的时间,但对于我们控制的那些服务,我们希望跟踪更细粒度的事件。
任何行动方案都需要付出一些努力。在开始之前,您认为哪种模式和/或工具是跨多个服务提供有效性能数据的最佳方式。
答案 0 :(得分:2)
主要问题是:对你有多大价值。
标记上有大量云端或自托管解决方案,可让您跟踪性能/错误等等。
我唯一的建议是:不要重新发明,采取预建解决方案。成本可能会低得多,就像你自己做的那样。
没有广告就很难回答你的问题但是因为你提到了.NET
Microsoft提供名为Application Insight的内容:https://azure.microsoft.com/en-us/documentation/articles/app-insights-windows-get-started/
就像
一样简单 var tc = new TelemetryClient(); // Call once per thread
// Send a user action or goal:
tc.TrackEvent("Win Game");
// Send a metric:
tc.TrackMetric("Queue Length", q.Length);
// Provide properties by which you can filter events:
var properties = new Dictionary{"game", game.Name};
// Provide metrics associated with an event:
var measurements = new Dictionary{"score", game.score};
tc.TrackEvent("Win Game", properties, measurements);
看看它,比较一些其他工具并选择一个符合您需求的工具。
答案 1 :(得分:0)
我已经得出结论,以下自助选项提供了价值:
这不是一种工业强度解决方案,但是当您可以控制各个组件/服务时,您可以轻松地一目了然地了解系统中的高级性能流。这在开发过程中非常有用。
当我们发现哪些拼图会造成最大的瓶颈时,我们将转向使用更专业的工具来更精细地分析性能。