我需要一些帮助才能找到自定义应用程序洞察指标的良好模式 .
Environment
我有一个在多个Azure VM上运行的自定义Windows服务 . 我可以成功地将事件添加到Azure上的Monitoring实例 .
Goal
我想创建一个自定义指标,允许我监视我的Windows服务是否正在运行并响应每个实例 . 如果它的行为类似于网站指标中的响应超时,那将是完美的 . 每个服务实例都有一个自定义的maschine相关标识符,如:
TelemetryClient telemetry = new TelemetryClient();
telemetry.Context.Device.Id = FingerPrint.Instance;
现在,如果我的某个服务实例( Context.Device.Id
)没有运行或响应,我就会创建一个警报 .
Question
如何实现这一目标?在应用程序洞察力上监视一个服务类型的多个实例是否可行或有用?或者我必须为每个实例打开一个应用程序洞察?有谁能够帮我?
Response to Paul's answere
跟踪指标使用TrackMetric发送未附加到特定事件的指标 . 例如,您可以定期监视队列长度 .
如果我这样做,如果我的服务器重新启动(更新或某事)并且我的服务发送 TrackMetric
给应用程序洞察并且没有引发警报因为值不低于1,但是服务是还没跑 .
关心斯蒂芬
3 回答
我找到了一个很好的工作解决方案,只需几个简单的步骤 .
1) 使用简单的文本响应在服务端口(例如8181)上实现
HttpListener
实例"200: OK"2) 将匹配的 endpoints 添加到azure VM imstande
3) 在"myVM.cloudapp.net:8181"上创建默认Web测试,并检查响应文本
到目前为止工作很好,满足我的所有需求! :)
根据Azure门户网站上的文档:
https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/#track-metric
跟踪指标使用TrackMetric发送未附加到特定事件的指标 . 例如,您可以定期监视队列长度 .
度量标准在度量标准资源管理器中显示为统计图表,但与事件不同,您无法在诊断搜索中搜索单个事件 .
度量值应> = 0才能正确显示 .
c#代码看起来像这样
我认为目前没有一种很好的方法可以实现这一目标 . 你真正想要的是一种检测“陈旧心跳”的方法 . 例如,如果您的服务正在发送“服务运行状况良好”的事件,则您需要一个警报,表示您在一定时间内未收到其中一个事件 . AI的警报系统中没有任何日期/时间条件操作符 .
微软可能会解释说,这种情况不是为了满足AI,因为这更像是一个“ Health 检查”系统的责任,比如SCOM或Operation Insights或其他完全不同的东西 .
我同意这是一个需要解决方案的东西,并且使用AI会很棒(我已经尝试过没有运气就完成同样的事情);我只是认为“他们”会说它不是人工智能责任领域的情景 .