【问题标题】:Azure Function is not logging LogMetric telemetry to Application InsightsAzure Function 未将 LogMetric 遥测记录到 Application Insights
【发布时间】:2020-01-08 16:17:33
【问题描述】:

我在 v2 SDK 上有一个 3 周前的函数,并使用开箱即用的 App Insights 支持,即只需设置环境变量和 ...magic。

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

但对于指标,它是坏的。我可以在日志中看到一些类似的遥测数据。很奇怪。

看。


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

...查看那些与我的代码中的LogMetric 行匹配的n/a


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


如果我深入研究那些 n/a 日志。

...它们很空。


是我还是这一切都很可疑?

如何以有效的方式记录函数中的指标?

【问题讨论】:

    标签: azure azure-functions azure-application-insights


    【解决方案1】:

    首先,对于指标,您是指自定义指标吗?如果是,那么您应该在应用洞察的customMetrics 表中找到它。

    ,你用什么方法发送指标?从您的代码中,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();
    

    【讨论】:

    • 谢谢伊万。我试过customMetrics,但没有快乐。我正在使用的扩展方法“就在那里”供我使用,它来自Microsoft.Azure.WebJobs 包。它记录在这里:docs.microsoft.com/en-us/azure/azure-functions/…我可能会在该文章中发布一个 GitHub 问题,因为它显然不起作用。
    • 好的,我切换到你的代码,一切都很好。我将提出关于该扩展方法的问题。
    • @LukePuplett,你能提供你打开的问题的链接吗?我找不到它,今天我仍然看到这个问题,想检查一下
    • @FEST 我想我离开了那家公司/演出,从未提交过。
    【解决方案2】:

    在我的例子中,host.json 文件中的设置排除了进入 Application Insights 的指标。这些指标记录在Information 级别,我最初将我的指标配置为Warning 级别。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 2019-08-27
      • 2016-08-12
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多