Azure SQL 依赖项(基于 EF Core 3.1.7)未出现在 App Insights 的应用程序地图中

2024-05-03

我们有基于.net Core 3.1的Azure功能。我们使用最新版本的 EntityFrameworkCore。

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

但是,我们在应用程序洞察的应用程序地图中没有看到 Azure SQL 依赖项。甚至,查看跟踪表,我没有看到任何与 Azure SQL 相关的内容。

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

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

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

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

builder.Services.AddDbContextPool<OurDbContext>(options =>
{
    options.UseSqlServer("connectionstring"), builder =>
    {
       builder.EnableRetryOnFailure(3, TimeSpan.FromSeconds(2), null);
    });
});

我们的DbContext类有以下构造函数,

public OurDbContext(DbContextOptions<OurDbContext> options)
    : base(options)
{
}

然后我们将 OurDbContext 类注入到不同的存储库中,该存储库使用此上下文与 SQL 进行对话。类似如下:

public class Repo : IRepo
{
  public Repo(OurDbContext ourDbContext)
  {

  }
  
  public async Task AddAsync(Entity entity)
  {
    ourDbContext.AddAsync(entity);
    ourDbContext.SaveChangesAsync()
  }
}

我们将这些存储库注入到 Function 类中并调用上面的方法,例如

await _repo.AddAsync()

我们使用下面的 EFCore 包

我们在 host.json 文件中有以下内容。

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingExcludedTypes": "Request",
            "samplingSettings": {
                "isEnabled": true
            }
        }
    }
}

笔记: 我尝试下面的链接只是为了检查 sql 依赖项是否显示在 App Insights 中,尽管它不使用我正在使用的 EFCore/最新版本的 Azure 函数的配置。我唯一添加的是本地设置中的 APPINSIGHTS_INSTRUMENTATIONKEY 。

https://dev.to/azure/using-entity-framework-with-azure-functions-50aa https://dev.to/azure/using-entity-framework-with-azure-functions-50aaGitHub 源代码:https://github.com/jeffhollan/functions-csharp-entityframeworkcore https://github.com/jeffhollan/functions-csharp-entityframeworkcore

通过上面的内容,我能够在我的应用程序见解中看到 SQL 依赖性。 但是,当我将上面的内容修改为当前项目使用的 Azure 函数、.net core、EFCore 版本时,SQL 依赖项不再出现在 App Insights 中。不过,添加以下日志记录级别会在控制台中显示调试日志。

"Logging": {
    "LogLevel": {
      "Default": "Debug",
    }
}

Screenshot as per below comment for KrishnenduGhosh-MSFT. enter image description here

Logs from stackify. enter image description here


如下更新 host.json 中的日志记录部分以允许信息级别日志(请注意,我在上面发布的现有配置中添加了 logLevel)。如果不指定,默认为警告。正如注释中提到的here https://learn.microsoft.com/en-us/azure/azure-functions/functions-monitoring?tabs=cmd#dependencies,依赖关系以信息级别记录。另请注意排除类型(不是抽样排除类型)应该在里面采样设置 as per 文档 https://learn.microsoft.com/en-us/azure/azure-functions/functions-host-json.

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true,
                "excludedTypes": "Dependency;Request"
            }
        },
    "logLevel": {"default": "Information"}
  }
}

同样对于 Azure 功能,您不应添加microsoft.applicationinsights.aspnetcore努盖特和builder.Services.AddApplicationInsightsTelemetry();在启动中。这是针对 asp.net core 应用程序的。功能不应该有那个https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#logging-services https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#logging-services

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure SQL 依赖项(基于 EF Core 3.1.7)未出现在 App Insights 的应用程序地图中 的相关文章

  • 如何像 youtube 一样在纸板中观看普通视频

    我有一个可以正常播放的应用程序VR视频 我的应用程序有两个玩家可以玩这两种类型 在我的VrVideoView有一个按钮可以让视频播放立体声模式 我的问题是 我怎样才能观看正常的视频Cardboard就像YouTube app None
  • 如何使用 bash 脚本通过 tar 备份文件系统?

    我想备份我的 ubuntu 文件系统 我写了这个小脚本 这是非常基本的 但这是我第一次尝试 我害怕犯错误 由于需要几个小时才能完成才能看到结果 因此我认为最好向经验丰富的程序员询问我是否做错了什么 我特别感兴趣 gt 会记录输出mv或者它也
  • 偶尔连接的 CQRS 系统 - 客户端和服务器命令 - 基于任务的屏幕

    Premise 建议在CQRS DDD ES样式应用程序使用task基于屏幕 这些屏幕引导用户并捕获意图 These task屏幕也可以称为感应式用户界面 UI 设计指南的一些示例可以帮助您创建现代的 用户友好的应用程序 Microsoft
  • 从其对象获取结构体字段的名称和类型

    例如 我有一个类似这样的结构 struct Test int i float f char ch 10 我有一个该结构的对象 例如 Test obj 现在 我想以编程方式获取字段名称和类型obj 是否可以 顺便说一句 这是 C 你正在要求C
  • Hibernate Envers:如何捕获谁删除了审计表中的实体

    我在用hibernate envers with spring 一切工作正常 除了当我删除一个实体时 它不会改变的值updated by and updated date在审计表内 它会在之后保存一个与之前完全相同的实体 仅复制 sprin
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 内容是从 WiFi 直接传输到 Chromecast,还是从 WiFi 传输到 Android 再传输到 Chromecast?

    内容是从 WiFi 直接传输到 Chromecast 还是从 WiFi 传输到 Android 或任何其他设备 再传输到 Chromecast 我知道其他设备可用于控制 Chromecast 但我只想知道由于电池寿命的原因 您是否可以直接从
  • 在magento Attributes中添加自定义属性并显示在前端

    我已经开始使用 magento 作为我的电子商务 cms 我知道这是一个非常强大的平台 最近 我发现它的功能可以帮助开发人员扩展核心 并且我已经成功添加了自定义类别选项 是否有机会在某个属性上达到相同的结果 我想在属性选项卡上添加文本描述并
  • 重定向到其他控制器中的操作

    我想从一个控制器中的操作重定向到第二个控制器中的操作 通常我会使用 RedirectToAction actionName controllerName objects 我想要重定向到的方法有两个重载 一个用于 HttpVerbs Get
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 在 MVC4 中使函数异步时 HttpContext.Current null

    我目前正在 VS2010 SP1 中开发 MVC4 我做了其中一个功能 控制器类异步 作为其中的一部分 我制作了控制器类 派生自 AsyncController 并添加了以下两个方法 参见代码部分 1 和 2 下 一种以 Async 结尾的
  • simple_fields_for 没有出现 [rails 4]

    我正在尝试创建两个隐藏字段 其中一个显示没有问题 但来自嵌套表单的另一个则没有 产品 rb class Product lt ActiveRecord Base has many product options dependent dest
  • jsf文件下载不起作用

    当我点击h commandButton它执行myBean dowanlod 方法 但它不下载任何文件 这是我在支持 bean 中的方法 没有例外 光标变得忙碌 似乎在等待响应 对于这种操作是否有任何额外的配置或者这段代码有什么问题吗
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但
  • 使用 TkInter 绑定设置不可交互(点击)覆盖

    我已经浏览了其他几篇关于类似问题的帖子 所有这些似乎都指向this https stackoverflow com questions 29458775 tkinter see through window not affected by

随机推荐