Azure Application Insights自定义响应指标

时间:2015-08-28 14:15:06

标签: c# azure azure-application-insights

我需要一些帮助来为自定义应用程序洞察指标找到一个好的模式。

环境

我在多个Azure VM上运行自定义Windows服务。 我可以成功地将事件添加到Azure上的Monitoring实例。

目标

我想创建一个自定义指标,允许我监控我的Windows服务是否正在运行并响应每个实例。如果它的行为类似于网站指标中的响应超时,那将是完美的。 每个服务实例都有一个自定义的maschine相关标识符,如:

TelemetryClient telemetry = new TelemetryClient();
telemetry.Context.Device.Id = FingerPrint.Instance;

现在,如果我的某个服务实例(Context.Device.Id)没有运行或响应,我就会创建一个警报。

enter image description here

问题

如何实现这一目标? 在应用程序洞察力上监视一个服务类型的多个实例是否可行或有用?或者我必须为每个实例打开一个应用程序洞察? 有人能帮助我吗?

回应Paul的回答

  

跟踪指标使用TrackMetric发送未附加到特定事件的指标。例如,您可以定期监视队列长度。

如果我这样做,如果我的服务器重启(更新或某事)并且我的服务没有启动,会发生什么。现在,该服务没有向应用程序洞察发送TrackMetric并且没有引发警报,因为该值不低于1,但服务仍未运行。

关心斯蒂芬

3 个答案:

答案 0 :(得分:4)

我找到了一个很好的工作解决方案,只需几个简单的步骤。

1)使用简单的文本响应在服务端口(例如8181)上实现C:\Users\Perry>Desktop\gdata-python-client-master\setup.py C:\Program Files (x86)\Python\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'install_requires' warnings.warn(msg) usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help error: no commands supplied 实例" 200:OK"

2)将匹配的端点添加到azure VM imstande

3)在" myVM.cloudapp.net上创建默认网络测试:8181"检查响应文本

到目前为止工作很好,符合我的所有需求! :)

答案 1 :(得分:3)

根据Azure门户网站上的文档:

https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/#track-metric

跟踪指标 使用TrackMetric发送未附加到特定事件的指标。例如,您可以定期监视队列长度。

度量标准在度量标准资源管理器中显示为统计图表,但与事件不同,您无法在诊断搜索中搜索单个事件。

度量值应>> 0才能正确显示。

c#代码看起来像这样

private void Run() {
 var appInsights = new TelemetryClient();
 while (true) {
  Thread.Sleep(60000);
  appInsights.TrackMetric("Queue", queue.Length);
 }
}

答案 2 :(得分:2)

我认为目前没有一种很好的方法可以实现这一目标。您实际需要的是一种检测过时心跳的方法。"例如,如果您的服务正在发送活动"服务健康状况良好",您需要提醒您在一定时间内未收到其中一项活动。 AI的警报系统中没有任何日期/时间条件操作符。

微软可能会解释说,这种情况不是为了满足AI,因为这更像是一种健康检查"系统的责任,如SCOM或Operation Insights或完全不同的东西。

我同意这是一个需要解决方案的东西,并且使用AI会很棒(我已经尝试过没有运气就完成同样的事情);我只是想"他们"会说它不是AI的责任范围。