Tag: azure application insights

拦截Azurefunction主机关闭:刷新应用程序洞察TelemetryClient

我正在使用Azurefunction:我主要尝试将现有的webjob迁移到Azurefunction,现在是时候将Application Insights集成到我的一个function中了。 所以基本上我只需要一个TelemetryClient实例,但这假设我能够在应用程序停止时刷新内存缓冲区。 我使用过TimerTrigger,但它仅用于测试目的。 我引用了Microsoft.ApplicationInsights nuget包( 来自这篇SOpost ),我的run.csx文件看起来像这样: using System; using Microsoft.ApplicationInsights; using Microsoft.Azure.WebJobs; public static void Run(TimerInfo myTimer, TraceWriter log) { MyTimerJob.TelemetryClient.TrackEvent(“AzureFunctionTriggered”); log.Verbose($”C# Timer trigger function executed at: {DateTime.Now}”); } public static class MyTimerJob { public static readonly TelemetryClient TelemetryClient; static MyTimerJob(){ TelemetryClient = new TelemetryClient() { InstrumentationKey = “MyInstrumentationKey” }; // When it […]

无法加载文件或程序集’System.Runtime.InteropServices.RuntimeInformation

每当我尝试运行具有应用程序洞察力和entity framework的webjob项目时,我都会收到此错误。 System.IO.FileLoadException:’无法加载文件或程序集’System.Runtime.InteropServices.RuntimeInformation,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)’ 我安装了以下nuget包 Microsoft.Azure.WebJobs.Logging.ApplicationInsights版本2.1.0-beta4 Microsoft.Extensions.Logging版本2.0.0 Microsoft.Extensions.Logging.Console版本2.0.0。 这一切都适用于一个新的Visual Studio 2017 webjob项目,当我尝试包含现有的代码库时,主要使用entity framework,我得到这个错误。 当我查看工作中的引用时,我没有System.Runtime.InteropServices.RuntimeInformation,但它已经添加到具有entity framework的项目中。 它似乎是.net标准的一部分,但为什么我的新控制台应用程序不需要.net标准! 我不确定为什么它寻找版本0.0.0.0或者我的版本是4.0.2.0 我也尝试将其添加到项目文件中,但这不起作用。 true true 任何帮助将不胜感激 非常感谢

管理应用程序见解Cookie

我想知道应用程序见解如何与cookie一起使用,因为我想了解用户和会话跟踪,所以我一直在研究和… 以下是该理论的简要介绍: 每当Application Insights SDK获得没有应用程序洞察用户跟踪cookie的请求(由Application Insights JS代码段设置)时,它将设置此cookie并启动新会话。 (来自apmtips ) 2。 UserTelemetryInitializer使用在用户浏览器中运行的Application Insights JavaScript检测代码生成的ai_user cookie中提取的值,更新所有遥测项目的User上下文的Id和AcquisitionDate属性。 SessionTelemetryInitializer更新所有遥测项的Session上下文的Id属性,其值从用户浏览器中运行的ApplicationInsights JavaScript检测代码生成的ai_session cookie中提取。 (来自azure文档(使用ApplicationInsights.config配置Application Insights SKD) ) 所以有两个cookie: ai_session和ai_user 。 这是我的问题: 他们什么时候初始化? 这是做什么的? 我怎么能停止使用它们? 如果我想保留它们,我怎么能改变它们的到期时间? 试图删除它们我使用ASP.NET Web应用程序使用Web Api的默认模板创建了一个项目,其中包括MVC和Web Api。 做研究我发现这种方法禁用它们但我没有任何WebSessionTrackingTelemetryModule。 所以我注释掉了“UserTelemetryInitializer”和“SessionTelemetryInitializer”,这就是我所拥有的: <!—-> <!—-> 而且: 但它并没有什么不同。 要么我留下评论或不评论的模块,仍然生成cookie。 尝试删除cookie,我评论了在Startup中完成的步骤,并从我的项目中排除了所有.js文件,但cookie在每次请求后都会出现。 所以在这一点上我不明白“应用程序见解Javascript”发生在哪里,我想我所缺少的是后端的东西。 我错了吗? 最后,我评论的Startup.cs看起来像: [assembly: OwinStartupAttribute(typeof(Try001.Startup))] namespace Try001 { public partial class Startup { public […]

如何在使用OWIN的WebApi项目上启用Application Insights服务器遥测?

我们遇到了一堆问题(读取很长的响应时间)以及生产中的几个项目,并希望确切地看到服务器上发生了什么。 然后,我按照本文继续将Application Insights添加到我们的所有项目中。 问题是我们的两个WebAPI项目都没有将服务器数据发送到Azure门户,而所有其他项目(MVC 5)都是。 这是我在Azure上访问相应的Application Insights刀片时显示的内容: 我尝试在Azure VM中的Application Insights状态监视器中禁用并重新启用数据收集,在向API发出请求时重启IIS几次,但无济于事。 当我在MVC项目上启用它时,当我打开网站上的页面时,我几乎可以立即在Azure门户上看到数据。 当我看到我们的Azure VM没有为这些特定项目发送数据时,我尝试在我们的开发环境中设置相同的集合,该环境托管在我们自己的基础架构中,并且完全相同的情况重复出现,排除了可能性这与Azure VM中托管的项目有关。 我不确定是什么阻止这些项目向Azure发送数据,但通过查看工作项目与非工作项目,我认为它可能与我们的WebAPI项目使用新的OWIN这一事实有关管道虽然MVC是标准的MVC项目。 我检查了两个项目类型的web.config文件和bin文件夹,它们似乎被Insights Monitor正确修改(我可以看到添加到bin文件夹的相同新dll和添加到Web的相同http模块。配置)。 考虑到这一点,如何使用依赖于OWIN / Katana管道的WebAPI项目的Application Insights启用服务器端遥测? 在这种情况下,我该怎么做才能找出导致项目无法向Azure发送数据的确切原因?

API Application Insights使用的良好实践

我阅读了这篇文档: https : //docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics 跟踪exception,跟踪跟踪等有许多不同的API方法。 我有一个ASP.NET MVC 5应用程序。 例如,我有以下控制器方法(由ajax调用): [AjaxErrorHandling] [HttpPost] public async Task SyncDriverToVistracks(int DriverID) { if ([condition]) { // some actions here try { driver.VistrackId = await _vistracksService.AddNewDriverToVistrackAsync(domain); await db.SaveChangesAsync(); } catch (VistracksApiException api_ex) { // external service throws exception type VistracksApiException throw new AjaxException(“vistracksApiClient”, api_ex.Response.Message); } catch (VistracksApiCommonException common_ex) { // external […]