Azure Function未将LogMetric遥测记录到Application Insights中

时间:2019-09-05 18:10:33

标签: azure-functions azure-application-insights

我在v2 SDK上有一个为期3周的功能,并且使用了开箱即用的App Insights支持,即只需设置环境变量和... magic。

我确实读过,默认情况下它不会发送 Information 级别的日志到AppInsights,这看起来是正确的,因为我看不到任何信息跟踪,但确实看到了偶尔的错误用我的自定义消息注销。

但是对于指标来说,它是坏的。在日志中,我可以看到一些遥测的相似之处。真奇怪。

看。

VS Code screen shot


现在看看这些好奇的日志。

Log Analytics screen shot of some log lines

......看到与我的代码中的n/a行匹配的LogMetric吗?


当我明确搜索其中之一时,什么也没找到。

Log Analytics screen shot with no results


如果我深入查看这些n/a日志。

Log Analytics screen shot of strange log entries with not much data

...它们很空。


是我还是全部都是鱼?

如何以一种有效的方式记录功能的指标?

2 个答案:

答案 0 :(得分:1)

第一,对于指标,您是指自定义指标吗?如果是,那么您应该在应用数据分析的customMetrics表中找到它。

enter image description here

第二,您使用什么方法发送指标?从您的代码中,this.Logger?.LogMetric方法的实现是什么?

要发送指标,您可以使用TrackMetric(经此方法测试并有效)或GetMetric方法。

示例代码使用TrackMetric(不建议使用,但仍可以使用)/ GetMetric(推荐)方法:

            TelemetryConfiguration.Active.InstrumentationKey = "your key";
            TelemetryClient client = new TelemetryClient();            
            client.TrackMetric("my metric", 60);
            client.GetMetric("my metric").TrackValue(89);
            client.Flush();

答案 1 :(得分:0)

就我而言,host.json 文件中的设置将指标排除在 Application Insights 之外。指标是在 Information 级别记录的,我最初为 Warning 级别配置了我的指标。

"logging": {
    "logLevel": {
        "Function.<function name>": "Information", //<--won't see metrics if set to Warning
        ...

有关配置日志记录级别的详细信息,请参阅 here