标签: azure-application-insights

管理应用程序见解Cookie

我想知道应用程序见解如何与cookie一起使用,因为我想了解用户和会话跟踪,所以我一直在研究和...

以下是该理论的简要介绍:

  1. 每当Application Insights SDK收到没有应用程序洞察用户跟踪cookie的请求(由Application Insights JS代码段设置)时,它将设置此cookie并启动新会话.(来自apmtips)

2.

UserTelemetryInitializer使用在用户浏览器中运行的Application Insights JavaScript检测代码生成的ai_user cookie中提取的值,更新所有遥测项目的User上下文的IdAcquisitionDate属性.

SessionTelemetryInitializer更新所有遥测项的Session上下文的Id属性,其值从用户浏览器中运行的ApplicationInsights JavaScript检测代码生成的ai_session cookie中提取.(来自azure文档(使用ApplicationInsights.config配置Application Insights SKD))

所以有两个cookie:ai_sessionai_user.

这是我的问题:

  1. 他们什么时候初始化?
  2. 这是做什么的?
  3. 我怎么能停止使用它们?
  4. 如果我想保留它们,我怎么能改变他们的到期时间?

试图删除它们我使用ASP.NET Web应用程序使用Web Api的默认模板创建了一个项目,其中包括MVC和Web Api.

做研究我发现这种方法禁用它们但我没有任何WebSessionTrackingTelemetryModule.所以我注释掉了"UserTelemetryInitializer"和"SessionTelemetryInitializer",这就是我所拥有的:

<TelemetryInitializers>

  <Add Type="Microsoft.ApplicationInsights.Extensibility.Web.SyntheticTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
  <Add Type="Microsoft.ApplicationInsights.Extensibility.Web.ClientIpHeaderTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
  <Add Type="Microsoft.ApplicationInsights.Extensibility.Web.UserAgentTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
  <Add Type="Microsoft.ApplicationInsights.Extensibility.Web.OperationNameTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
  <Add Type="Microsoft.ApplicationInsights.Extensibility.Web.OperationIdTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />

<!--<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.UserTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />-->
<!--<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.SessionTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net azure-application-insights

11
推荐指数
1
解决办法
4701
查看次数

Azure Application Insights不会记录Redis调用

我们刚刚为我们的应用程序实现了Azure Application Insights服务.该服务记录了我们所有的远程依赖项,但我们使用的Redis调用Session和.Net OutputCache.Redis包装器是StackExchange.Redis.StrongName.

有人遇到过这个问题吗?

在此输入图像描述

azure redis azure-application-insights

11
推荐指数
1
解决办法
1908
查看次数

在dotnet发布后,在docker镜像中找不到Application Insights依赖项

尝试从docker镜像运行我的应用程序时收到以下错误:

Error: assembly specified in the dependencies manifest was not found -- package: 'Microsoft.ApplicationInsights.AspNetCore', version: '1.0.2', path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
Run Code Online (Sandbox Code Playgroud)

泊坞窗图像基于microsoft/aspnetcore.

使用dotnet restoredotnet publish在docker镜像上构建的文件microsoft/aspnetcore-build:1.1.0-projectjson

"targets"{app}.deps.json我有:

  "Microsoft.ApplicationInsights.AspNetCore/1.0.2": {
    "dependencies": {
      "Microsoft.ApplicationInsights": "2.1.0",
      "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
      "Microsoft.AspNetCore.Http.Abstractions": "1.0.0",
      "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.0.1",
      "Microsoft.Extensions.Configuration": "1.0.0",
      "Microsoft.Extensions.DiagnosticAdapter": "1.0.0",
      "Microsoft.Extensions.Logging.Abstractions": "1.0.0",
      "System.Net.NameResolution": "4.3.0"
    },
    "runtime": {
      "lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll": {}
    },
    "compile": {
      "lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll": {}
    }
  },
Run Code Online (Sandbox Code Playgroud)

我的已lib发布输出中没有文件夹,但我确实已Microsoft.ApplicationInsights.AspNetCore发布输出的根目录.

我觉得我错过了一些明显的东西.任何帮助,将不胜感激.

更新:

将Application Insights更新到2.0.0无效.

删除Application Insights只会将问题移动到另一个程序集.

切换到独立部署无效.

添加COREHOST_TRACE=1 …

docker azure-application-insights .net-core asp.net-core

11
推荐指数
1
解决办法
2518
查看次数

将Application Insights与ILoggerFactory一起使用

我正在尝试将异常记录到Application Insights.我通过TelemetryClient.TrackException直接打电话成功完成了这项工作.但是,我想在我的代码中抽象出来,以防我将来想要登录其他平台,所以我想只关注ILogger接口.

我发现你可以使用ILoggerFactory.AddApplicationInsights(在这里实现),但不管我做了什么,我都没有看到日志在ApplicationInsights中出现.

以下是我的代码:

Startup.cs

    IConfigurationRoot Configuration { get; set; }
    ILoggerFactory LoggerFactory { get; set; }
    IServiceProvider ServiceProvider { get; set; }

    public Startup( IHostingEnvironment hostingEnvironment, ILoggerFactory loggerFactory )
    {
        this.LoggerFactory = loggerFactory;
        string configurationFilePath = "abc.json";

        this.Configuration = new ConfigurationBuilder()
            .SetBasePath( hostingEnvironment.ContentRootPath )
            .AddJsonFile( configurationFilePath, optional: true, reloadOnChange: true )
            .AddEnvironmentVariables()
            .Build();
    }

    public void Configure(
        IApplicationBuilder applicationBuilder,
        IHostingEnvironment hostingEnvironment,
        ILoggerFactory loggerFactory,
        IServiceProvider serviceProvider )
    {
        this.ServiceProvider = serviceProvider;
        loggerFactory.AddApplicationInsights( serviceProvider ); …
Run Code Online (Sandbox Code Playgroud)

c# logging azure-application-insights azure-web-app-service asp.net-core

11
推荐指数
3
解决办法
1万
查看次数

Azure和ApplicationInsights配置的APPINSIGHTS_INSTRUMENTATIONKEY有什么区别:InstrumentationKey?

Application Insight配置存在一些混淆.它可以使用Visual Studio在应用程序本身中配置,也可以在使用Azure Portal的App Service中配置.

视觉工作室

当我使用Visual Studio 将Application Insights遥测添加到我的asp.net core 2.0网站时,它将以下配置添加到appsettings.json:

{
// Changes to file post adding Application Insights Telemetry:
  "ApplicationInsights": {
    "InstrumentationKey": "10101010-1010-1010-1010-101010101010"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我在startup.cs中配置AppInsights服务,如下所示:

var instrumentationKey= Configuration.GetSection("ApplicationInsights:InstrumentationKey").Value;
services.AddApplicationInsightsTelemetry(opt => opt.InstrumentationKey = instrumentationKey);
Run Code Online (Sandbox Code Playgroud)

Azure门户

但是,当我在Azure门户中的App Service中打开Application Insights选项卡时,它仍建议连接Application Insight.然后,向导会向配置添加新的Intrumentation Key:

在此输入图像描述

  1. 为什么有两个不同的键?
  2. 究竟什么遥测产生App Service以及.NET Core应用程序本身.
  3. 如何避免两次配置InstrumentationKey?
  4. 仅使用APPINSIGHTS_INSTRUMENTATIONKEY有什么副作用(例如在Visual Studio工具中).我的意思是我会在startup.cs中写:

    var instrumentationKey= Configuration.GetSection("APPINSIGHTS_INSTRUMENTATIONKEY ").Value;
    services.AddApplicationInsightsTelemetry(opt => opt.InstrumentationKey = instrumentationKey);
    
    Run Code Online (Sandbox Code Playgroud)

编辑:

我根据Tseng的回答得出结论,最好在Azure门户和appsettings.json中使用APPINSIGHTS_INSTRUMENTATIONKEY.

ASP.NET核心既了解APPINSIGHTS_INSTRUMENTATIONKEYApplicationInsights:InstrumentationKey,但Azure的门户网站只有第一个,它必须是环境变量.如果您使用了第二个,并尝试从代码中的某个位置的config中读取它,您可以轻松地在Azure门户和在Azure中运行的应用程序中使用不同的值.

此外,如果您从配置中手动读取检测键,则应首先查看APPINSIGHTS_INSTRUMENTATIONKEY然后ApplicationInsights:InstrumentationKey:

var instrumentationKey= Configuration.GetSection("APPINSIGHTS_INSTRUMENTATIONKEY")?.Value
    ?? Configuration.GetSection("ApplicationInsights:InstrumentationKey")?.Value;
Run Code Online (Sandbox Code Playgroud)

因为那是多么services.AddApplicationInsightsTelemetry(Configuration);有效.以防万一Azure …

visual-studio azure-web-sites azure-application-insights asp.net-core

11
推荐指数
1
解决办法
4553
查看次数

System.InvalidOperationException:“无法解析类型“Microsoft.AspNetCore.Hosting.IHostingEnvironment”的服务

我有以下代码,没有任何编译器警告或错误:(它是一个网络作业)

然而,在行: builder.Build 我得到了这个异常:

System.InvalidOperationException: 'Unable to resolve service for type 'Microsoft.AspNetCore.Hosting.IHostingEnvironment' while attempting to activate 'Microsoft.AspNetCore.Hosting.DefaultApplicationInsightsServiceConfigureOptions
Run Code Online (Sandbox Code Playgroud)

代码如下:

 public class Program
    {
        private static IConfiguration Configuration { get; set; }
        static async Task Main(string[] args)
        {
            var builder = new HostBuilder();
            builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
                b.AddAzureStorage();
                b.AddTimers();
                b.AddServiceBus(sbOptions =>
                {
                    sbOptions.ConnectionString = Configuration["AzureWebJobsServiceBus"];
                });
            });

            builder.ConfigureServices((context, s) => { ConfigureServices(s); s.BuildServiceProvider(); });
            builder.ConfigureLogging(logging =>
            {
                string appInsightsKey = Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
                if (!string.IsNullOrEmpty(appInsightsKey))
                {
                    // This uses the options callback to explicitly …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net azure-webjobs azure-application-insights

11
推荐指数
2
解决办法
1万
查看次数

如何在NLog中使用Microsoft Application Insights(无法找到目标:'ApplicationInsights')

我正在使用Microsoft Application Insights我的Web应用程序.我使用Application Insights TraceListener NuGet包进行日志记录.这非常有效.

现在我想切换到NLog.我添加了Microsoft.ApplicationInsights.NLogTargetNuGet包并在我的NLog配置文件中添加了一个新的NLog目标:

<target name='ai' xsi:type='ApplicationInsights' />
Run Code Online (Sandbox Code Playgroud)

NLog引发异常:

Target cannot be found: 'ApplicationInsights'
Run Code Online (Sandbox Code Playgroud)

我也试过通过扩展添加程序集,如下所示:

<extensions>
    <add assembly="Microsoft.ApplicationInsights.NLogTarget" />
</extensions>    
Run Code Online (Sandbox Code Playgroud)

但它也没有用.

有什么建议?

c# logging nlog azure-application-insights azure-devops

10
推荐指数
3
解决办法
8556
查看次数

Application Insights TraceListener不收集跟踪?

我有以下配置,但没有跟踪到Application Insights(否则Application Insights可以正常用于其他日志记录,Azure诊断侦听器也在工作并捕获跟踪).难道我做错了什么?

<system.diagnostics>
    <trace autoflush="true" indentsize="0">
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
        </add>
        <add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

system.diagnostics azure azure-diagnostics azure-application-insights

10
推荐指数
1
解决办法
4479
查看次数

将Application Insight与ASP API Core一起使用

社区

我在将Application Insights连接到ASP WEB API Core时遇到了麻烦.按照标准手册,我仍无法在AppInsights帐户中找到任何记录.我使用了很多手册,但它们完全相同,并描述了如何为ASP Core(而不是API Core)配置App Insights.所以我想知道是否需要一些特殊配置(或nuget包或其他)来使AppInsights跟踪我的API服务请求?

一旦我无法使AppInsights开箱即用,我仍然可以创建TelemetryClient实例并手动发布数据,但在我的情况下这是不可取的.

重要提示:我正在使用VS 2017 RC,Web APi Core项目(csproj)

UPD

csproj文件内容:

  <Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
    <PreserveCompilationContext>true</PreserveCompilationContext>
  </PropertyGroup>
  <ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0-msbuild1-update1" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild1-final" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild2-update1" />
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0-msbuild1-update1" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild1-final" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild2-update1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.0.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.0.1" />
    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.2.0" />
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="1.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="1.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="1.0.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.0.1" />
    <PackageReference …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api azure-application-insights asp.net-core

10
推荐指数
1
解决办法
3936
查看次数

如何按结果“分组”并在 Azure App Insights 中计数

我正在尝试对应用洞察中的一些结果进行分组,并且正在努力

如果我要列出我的结果,它看起来像

Product        Version

 A              1
 B              2
 A              2
 A              1
 B              3
 B              3
Run Code Online (Sandbox Code Playgroud)

如您所见,我有 2 个产品(A 和 B),每个产品都有一个版本号。

我试图将这些分组并提供一个计数,所以我的最终结果是

Product        Version       Count

 A              1              2
 A              2              1 
 B              2              1
 B              3              2
Run Code Online (Sandbox Code Playgroud)

目前,我的方法一团糟,因为我手动执行此操作

customEvents
| summarise A1 = count(customEvents.['payload.prod'] == "A" and myEvents.['payload.vers'] == "1"),
| summarise A2 = count(customEvents.['payload.prod'] == "A" and myEvents.['payload.vers'] == "2")
Run Code Online (Sandbox Code Playgroud)

等等

我不知道如何聚合这些,以便它可以按产品和版本分组,然后计算每个出现的次数

azure azure-application-insights

10
推荐指数
1
解决办法
9274
查看次数