我需要一些帮助来找到自定义应用程序洞察指标的良好模式。
环境
我有一个在多个 Azure VM 上运行的自定义 Windows 服务。 我可以成功地将事件添加到 Azure 上的监控实例。
目标
我想创建一个自定义指标,使我能够监控每个实例的 Windows 服务是否正在运行和响应。如果它像网站指标中的响应超时一样,那就完美了。 每个服务实例都有一个与机器相关的自定义标识符,例如:
TelemetryClient telemetry = new TelemetryClient();
telemetry.Context.Device.Id = FingerPrint.Instance;
现在,如果我的一个服务实例 (Context.Device.Id
) 未运行或未响应,我想创建一个警报。
问题
如何实现这一目标? 在应用程序洞察中监控一种服务类型的多个实例是否可能或有用?或者我必须为每个实例打开一个应用程序洞察? 有人可以帮助我吗?
对 Paul 的回答的回应
Track Metric Use TrackMetric to send metrics that are not attached to particular events. For example, you could monitor a queue length at regular intervals.
如果我这样做,如果我的服务器重新启动(更新或其他)并且我的服务未启动,会发生什么情况。现在,该服务没有向应用程序洞察发送 TrackMetric
,并且不会引发任何警报,因为该值没有降至 1 以下,但该服务仍未运行。
问候史蒂芬
最佳答案
我找到了一个很好的可行解决方案,只需几个简单的步骤。
1) 在服务端口(例如 8181)上实现一个 HttpListener
实例,并使用简单的文本响应“200:OK”
2) 将匹配端点添加到 azure VM imstande
3) 在“myVM.cloudapp.net:8181”上创建默认 Web 测试,并检查响应文本
到目前为止效果很好,满足我的所有需求! :)
关于c# - Azure Application Insights 自定义响应指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32273158/