首页 文章

Azure Application Insights自定义响应指标

提问于
浏览
3

我需要一些帮助才能找到自定义应用程序洞察指标的良好模式 .

Environment

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

Goal

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

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

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

enter image description here

Question

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

Response to Paul's answere

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

如果我这样做,如果我的服务器重新启动(更新或某事)并且我的服务发送 TrackMetric 给应用程序洞察并且没有引发警报因为值不低于1,但是服务是还没跑 .

关心斯蒂芬

3 回答

  • 4

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

    1) 使用简单的文本响应在服务端口(例如8181)上实现 HttpListener 实例"200: OK"

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

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

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

  • 2

    根据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);
     }
    }
    
  • 3

    我认为目前没有一种很好的方法可以实现这一目标 . 你真正想要的是一种检测“陈旧心跳”的方法 . 例如,如果您的服务正在发送“服务运行状况良好”的事件,则您需要一个警报,表示您在一定时间内未收到其中一个事件 . AI的警报系统中没有任何日期/时间条件操作符 .

    微软可能会解释说,这种情况不是为了满足AI,因为这更像是一个“ Health 检查”系统的责任,比如SCOM或Operation Insights或其他完全不同的东西 .

    我同意这是一个需要解决方案的东西,并且使用AI会很棒(我已经尝试过没有运气就完成同样的事情);我只是认为“他们”会说它不是人工智能责任领域的情景 .

相关问题