Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core Azure SQL依赖项(基于EF Core 3.1.7)未出现在App Insights的应用程序映射中_.net Core_Entity Framework Core_Azure Functions_Azure Application Insights_Appinsights - Fatal编程技术网

.net core Azure SQL依赖项(基于EF Core 3.1.7)未出现在App Insights的应用程序映射中

.net core Azure SQL依赖项(基于EF Core 3.1.7)未出现在App Insights的应用程序映射中,.net-core,entity-framework-core,azure-functions,azure-application-insights,appinsights,.net Core,Entity Framework Core,Azure Functions,Azure Application Insights,Appinsights,我们有基于.NETCore3.1的Azure功能。我们使用最新版本的EntityFrameworkCore 它连接到Azure SQL以存储/检索/查询数据。我们能够看到Azure SQL的日志,例如有时在App insights的实时流中打开连接、关闭连接(有时可能是因为启用了采样) 但是,我们在AppInsights的应用程序映射中没有看到Azure SQL依赖关系。甚至,查看traces表,我也没有看到任何与Azure SQL相关的内容 Azure SQL是否需要启用某些功能才能显示为依赖

我们有基于.NETCore3.1的Azure功能。我们使用最新版本的EntityFrameworkCore

它连接到Azure SQL以存储/检索/查询数据。我们能够看到Azure SQL的日志,例如有时在App insights的实时流中打开连接、关闭连接(有时可能是因为启用了采样)

但是,我们在AppInsights的应用程序映射中没有看到Azure SQL依赖关系。甚至,查看traces表,我也没有看到任何与Azure SQL相关的内容

Azure SQL是否需要启用某些功能才能显示为依赖关系?我在几篇msdn文章中读到,当您使用Microsoft.Data.SqlClient包时,SQL会自动检测到它(我看到EF core已经在内部安装了该包)

如果上述问题得到回答和解决,还有一个后续问题-有没有办法,我可以检查App insights中给定函数调用的连接是否已释放/关闭,或者连接何时打开/关闭

根据下面的评论,添加更多信息

我们在启动文件中使用以下语句将DbContext添加到服务中

builder.Services.AddDbContextPool<OurDbContext>(options =>
{
    options.UseSqlServer("connectionstring"), builder =>
    {
       builder.EnableRetryOnFailure(3, TimeSpan.FromSeconds(2), null);
    });
});
我们将这些repo注入函数类中,并调用上述方法,如

await _repo.AddAsync()
我们使用下面的EFCore包

我们在host.json文件中包含以下内容

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingExcludedTypes": "Request",
            "samplingSettings": {
                "isEnabled": true
            }
        }
    }
}
注: 我尝试在下面的链接中检查应用程序洞察中是否显示了sql依赖项,尽管它没有使用我正在使用的EFCore/最新版本Azure函数的配置。我唯一添加的是本地设置中的APPINSIGHTS\u INSTRUMENTATIONKEY

GitHub源代码:

有了以上内容,我可以在我的应用程序洞察中看到SQL依赖关系。 但是,当我在上面修改到我当前项目使用的Azure functions、.net core、EFCore版本时,SQL依赖项不再出现在App insights中。不过,添加到日志级别以下会显示控制台中的调试日志

"Logging": {
    "LogLevel": {
      "Default": "Debug",
    }
}
KrishnenduGhosh MSFT以下评论截图。

来自stackify的日志。

更新host.json中的日志部分,如下所示,以允许使用信息级别日志(注意,我在上面发布的现有配置中添加了日志级别)。默认情况下,如果未指定,则为警告。如注释中所述,依赖项是以信息级别记录的。另请注意,排除类型(非采样排除类型)应位于采样设置内,如所示


同样对于Azure函数,您不应该添加
microsoft.applicationinsights.aspnetcore
nuget和
builder.Services.AddApplicationInsightsTelemetry()在启动中。这是针对asp.net核心应用程序的。函数不应该有那个

@SamaraSoucy MSFT-你知道吗?你能上传你的函数代码和配置吗?用我们正在使用的函数代码和结构更新了上面的内容。谢谢大家!@PramodValavala MSFT-有什么想法吗?看看这个,你可能需要为.net core指定其他代码,或者为SQL使用不同的包,如Microsoft.Data.SqlClientI,我在上面尝试过,但@KrishnenduGhosh MSFT无法看到Azure SQL的任何日志。是的,我删除了nuget,甚至删除了你提到的代码行。是的,甚至我都觉得我错过了一些我无法抓住的基本东西。将屏幕截图添加到上述问题。是否可以在excludedTypes中添加依赖项。另请注意,根据文档,排除类型(非采样排除类型)应位于采样设置内。更新我上面答案中的日志配置。我在@KrishnenduGhosh MSFT上面尝试过。不幸的是,依赖关系映射没有azure sql。虽然与打开/关闭连接相关的日志、命令都显示在我的Visual studio调试控制台上,但我想它们不会流向应用程序洞察。应用程序中的其他日志语句(自定义日志)是否通过ILogger显示在应用程序洞察中?如果您当前没有,只需添加一些虚拟内容,如
log.LogInformation(“helloworld”)
在函数的主运行方法中的某个地方,查看它是否出现在AI中。
{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingExcludedTypes": "Request",
            "samplingSettings": {
                "isEnabled": true
            }
        }
    }
}
"Logging": {
    "LogLevel": {
      "Default": "Debug",
    }
}
{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true,
                "excludedTypes": "Dependency;Request"
            }
        },
    "logLevel": {"default": "Information"}
  }
}