当前位置: 首页 > 知识库问答 >
问题:

Azure功能未将自定义事件、依赖项记录到应用程序洞察

班景龙
2023-03-14

我们在C中开发了Azure函数V3。我们尝试将一些自定义事件、依赖项等记录到Azure Application Insights。我们无法使用遥测客户端登录app insights。代码运行良好,没有任何错误。此外,可以查看从配置文件检索到的仪表键。但是,Ilogger日志可以在app insights traces表中找到。请查找我们使用的以下代码,

public class CommunityCreate
    {
        private readonly TelemetryClient telemetryClient;
        public CommunityCreate(TelemetryConfiguration telemetryConfiguration)
        {
            this.telemetryClient = new TelemetryClient(telemetryConfiguration);
        }

        [FunctionName("Function1")]
        [return: ServiceBus("sample", Connection = "ServiceBusProducerConnection")]
        public async Task<string> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "Account/{id:int?}")] HttpRequest req, string id, ILogger log)
        {
            //log.LogInformation("C# HTTP trigger function processed a request.");
            DateTime start = DateTime.UtcNow;

            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            var evt = new EventTelemetry("Function called");
            evt.Context.User.Id = name;
            this.telemetryClient.TrackEvent(evt);

            // Generate a custom metric, in this case let's use ContentLength.
            this.telemetryClient.GetMetric("contentLength").TrackValue(req.ContentLength);

            // Log a custom dependency in the dependencies table.
            var dependency = new DependencyTelemetry
            {
                Name = "GET api/planets/1/",
                Target = "swapi.co",
                Data = "https://swapi.co/api/planets/1/",
                Timestamp = start,
                Duration = DateTime.UtcNow - start,
                Success = true
            };
            dependency.Context.User.Id = name;
            this.telemetryClient.TrackDependency(dependency);


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


            return name;
        }
}

共有1个答案

谭繁
2023-03-14

请确保您使用了以下正确的软件包:

微软蔚蓝色的WebJobs。登录中。ApplicationInsights,3.0版。18

更新软件包Microsoft。网Sdk。功能最新版本3.0。9

如果您在本地运行项目,请在local中添加APPINSIGHTS\u INSTRUMENTATIONKEY。设置。json,如下所示:

{
    "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "xxxx",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "APPINSIGHTS_INSTRUMENTATIONKEY": "xxx"
  }
}

或者如果您在Azure门户上运行它,请使用Azure函数配置应用程序见解。

然后我测试了您的代码,自定义事件或依赖项被正确地记录到Application insights中。以下是截图:

如果您仍然有问题,请让我知道(也请提供更多细节)。

 类似资料:
  • 我已经创建了一个触发Azure功能的服务总线,并希望在应用程序洞察中记录自定义事件。 我只能看到该日志记录在跟踪中。但自定义事件和度量不记录到应用程序洞察中。知道会发生什么吗?

  • 有什么想法会出什么问题吗?

  • 这只是一个每分钟都会运行半个小时的测试函数。 这似乎部分工作,因为我可以看到一些遥测在AI但不是自定义事件。例如,我可以看到每次运行时都会出现一个请求,以及在WebJob初始化期间的各种跟踪。 我可能没有正确配置某些内容,或者没有以正确的方式获取,但是我找不到任何关于在WebJobs中跟踪自定义事件的文档。 如有任何帮助,我们将不胜感激。

  • 问题内容: 我有一个dropwizard应用程序,在该应用程序中,我配置了logger附加程序,使其文件如下: 并且,在我的应用中创建了记录器: 在main()中进行一些测试记录: 该应用程序启动并运行没有问题。但是我没有在stdout或mylogs.log文件中得到任何日志(当然,除了Jetty访问日志之外,这些日志也已正确打印到mylogs.log中)。相反,如果我删除configuratio

  • 我想通过创建遥测初始化器为azure函数定制application insight配置。我当前的工作范围是确定一种方法,将从HTTP触发的azure函数发送的消息与另一个HTTP触发的azure函数相关联,为此,我试图遵循dzimchuk.net上的帮助。但是,我在我的azure函数项目中没有看到ApplicationInsights.config。我找到了包含app insight配置文件的Gi