c# - Azure 函数未将自定义事件记录到应用程序洞察中

标签 c# azure azure-functions azure-application-insights

我创建了一个服务总线触发的 Azure 函数,并希望在应用程序洞察中记录自定义事件。

 private static string key = TelemetryConfiguration.Active.InstrumentationKey =
            System.Environment.GetEnvironmentVariable(
                "APPINSIGHTS_INSTRUMENTATIONKEY", EnvironmentVariableTarget.Process);

        private static TelemetryClient telemetryClient =
            new TelemetryClient() { InstrumentationKey = key };

        [FunctionName("Function1")]
        public static void Run([ServiceBusTrigger("xxxxx", "xxxxx", AccessRights.Manage, Connection = "SBConnectionKey")]string mySbMsg, ILogger logger, TraceWriter log)
        {
            log.Info($"C# ServiceBus topic trigger function processed message: {mySbMsg}");

            telemetryClient.Context.Cloud.RoleName = "AIFunction";
            logger.LogMetric("test", 123);

            telemetryClient.TrackEvent("Ack123 Recieved");
            telemetryClient.TrackMetric("Test Metric", DateTime.Now.Millisecond);
       }

我只能看到 log.Info($"C# ServiceBus topic trigger function processed message: {mySbMsg}");这会记录跟踪。但是自定义事件和指标不会记录到应用程序洞察中。
任何想法可能会发生什么?

最佳答案

回答你的明确问题:

我发送的遥测数据有什么问题,或者在 Application Insights 门户中的何处可以找到它?

我使用几乎相同的代码创建了该函数并进行了测试。您可以分析 repo .我部署了该函数并得到以下结果:

Event found through query

Metric found through query

回答你隐含的问题:

如何使用 Application Insights?

刚开始使用App Insights查询语言很棘手,我发现this简洁的文件很有帮助。使用此监控工具时要考虑的其他因素:

  • 发送遥测数据与您在应用程序洞察门户中看到它之间存在滞后。实时监控将是一种昂贵的工具。
  • 过去我遇到过同样的问题,问题是在遥测名称中找不到事件/指标名称,而是在细节的某个地方。 This问题,可能是指它。所以我们决定做的是添加更多细节和使用this方法和 MetricTelemetry类(class)。
  • 尽管 Application Insights 可能看起来令人困惑,但它是一个强大的工具,值得花时间更好地学习。
  • 关于c# - Azure 函数未将自定义事件记录到应用程序洞察中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52104140/

    相关文章:

    c# - 在从池中获取连接之前经过的超时时间

    C#继承XmlSerializer

    c# - 从另一个类调用 Main()

    Azure Devops Build Pipeline - 使用引用项目构建 docker 时出现问题

    powershell - 如何使用 HTTP 触发器 PowerShell Azure 函数从 Azure 表存储中读取?

    c# - 如何在页面和母版页之间共享代码而无需多重继承/代码重复?

    azure - 我可以复制azure blob文件夹而不遍历每个blob文件吗?

    asp.net - 如何通过 Azure Active Directory 对 Multi-Tenancy ASP.NET 应用程序进行身份验证?

    java - 将Java应用程序(Azure函数应用程序)从2.x迁移到运行时3.x for GRADLE

    azure - 使用托管身份从Azure Logic应用验证到Azure功能