iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.NET 6中的dotnet monitor怎么理解
  • 425
分享到

.NET 6中的dotnet monitor怎么理解

2023-06-22 05:06:16 425人浏览 八月长安
摘要

这篇文章给大家介绍.net 6中的dotnet monitor怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.什么是 dotnet monitor在不同的环境中运行 .NET 应用程序可能

这篇文章给大家介绍.net 6中的dotnet monitor怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

    一.什么是 dotnet monitor

    在不同的环境中运行 .NET 应用程序可能会使收集诊断信息(例如日志、跟踪、dump)变得困难。dotnet monitor 是一种工具,它提供了一种统一的方法来收集这些诊断信息,而不管您是在桌面计算机(desktop Machine 可理解为我们日常使用的电脑)还是在 kubernetes 集群中运行。

    收集这些诊断信息有两种不同的机制:

    • 按需收集诊断信息的 Http api。当您的应用程序遇到问题并且想收集更多信息时,可以调用这些 HTTP API。

    • 基于规则配置的触发器。您可以配置规则,以便在满足所需条件时收集诊断信息,例如在 CPU 持续一段时间保持较高的指标时收集进程转储(process dump)。

    二.入门

    dotnet monitor 可以通过两种不同的分发机制获得:

    • .NET CLI 工具

    • 通过 Microsoft Container ReGIStry (MCR) 获得的容器镜像

    .NET CLI 工具

    dotnet monitor CLI 工具首先需要安装 .NET 6 SDK,如果你没有足够新的 SDK,可以通过 .NET 下载网页获取安装包进行安装。

    你可以使用一下命令获取最新版的 dotnet monitor:

    dotnet tool install -g dotnet-monitor --version 6.0.0

    如果你已经安装但是想更新到最新,可以运行以下命令:

    dotnet tool update -g dotnet-monitor --version 6.0.0

    容器镜像

    dotnet monitor 容器镜像在 MCR 上可用,你可以通过以下命令获取最新的镜像:

    Docker pull mcr.microsoft.com/dotnet/monitor:6.0.0

    三.HTTP API

    dotnet monitor 公开了一个 HTTP API 来查询可用进程、收集诊断信息并检查请求信息的状态。

    暴露了以下 HTTP API:

    • /processes- 获取可被发现的进程的详细信息

    • /dump- 在不使用调试器的情况下捕获进程的 dump

    • /GCdump- 捕获进程的 GC dump

    • /trace- 不使用 profiler 来追踪进程

    • /metrics- 以 prometheus exposition 格式捕获默认进程的指标快照

    • /livemetrics- 捕获进程的实时指标流

    • /logs- 捕获进程的日志

    • /info- 获取有关 dotnet monitor 的信息

    • /operations- 获取操作状态和取消操作

    下面的示例演示如何使用 dotnet monitor 从目标进程开始,在60秒的时间内从Microsoft.Aspnetcore.Server.Kestrel.Connections 日志级别为 Debug 的日志流数据。

    PS> curl.exe -X POST "https://localhost:52323/logs?name=myWEBApp&durationSeconds=60" `    -H "Accept: application/x-ndJSON" `    -H "Content-Type: application/json" `    --neGotiate -u $(whoami)`    -d '{"filterSpecs": {"Microsoft.AspNetCore.Server.Kestrel.Connections": "Debug"}}' {"Timestamp":"2021-11-05 08:12:54Z","LogLevel":"Debug","EventId":39,"EventName":"ConnectionAccepted","Category":"Microsoft.AspNetCore.Server.Kestrel.Connections","Message":"Connection id u00220HMD06BUKL2CUu0022 accepted.","State":{"Message":"Connection id u00220HMD06BUKL2CUu0022 accepted.","ConnectionId":"0HMD06BUKL2CU","{OriginalFORMat}":"Connection id u0022{ConnectionId}u0022 accepted."}}{"Timestamp":"2021-11-05 08:12:54Z","LogLevel":"Debug","EventId":1,"EventName":"ConnectionStart","Category":"Microsoft.AspNetCore.Server.Kestrel.Connections","Message":"Connection id u00220HMD06BUKL2CUu0022 started.","State":{"Message":"Connection id u00220HMD06BUKL2CUu0022 started.","ConnectionId":"0HMD06BUKL2CU","{OriginalFormat}":"Connection id u0022{ConnectionId}u0022 started."}}{"Timestamp":"2021-11-05 08:12:54Z","LogLevel":"Debug","EventId":9,"EventName":"ConnectionKeepAlive","Category":"Microsoft.AspNetCore.Server.Kestrel.Connections","Message":"Connection id u00220HMD06BUKL2CUu0022 completed keep alive response.","State":{"Message":"Connection id u00220HMD06BUKL2CUu0022 completed keep alive response.","ConnectionId":"0HMD06BUKL2CU","{OriginalFormat}":"Connection id u0022{ConnectionId}u0022 completed keep alive response."},"Scopes":[{"ConnectionId":"0HMD06BUKL2CU"},{"RequestId":"0HMD06BUKL2CU:00000002","RequestPath":"/"}]}

    如上面的示例所示,您可以使用 dotnet monitor 按需从目标进程中捕获诊断信息。除了日志,您还可以从目标进程收集跟踪、内存转储、GC转储和 metrics。

    .NET 6中的dotnet monitor怎么理解

    四.触发器

    dotnet monitor 可以配置为根据发现的进程中的条件自动收集诊断信息。 发现新进程时,如果该进程数据与规则匹配,则 dotnet monitor 将尝试应用配置的规则。 应用的规则将开始监视触发器描述的条件的过程。 如果满足该条件,则假定尚未达到指定的限制来执行操作列表。

    .NET 6中的dotnet monitor怎么理解

    示例:如果 dotnet monitor 检测到持续超过一分钟的CPU使用率在80%以上,则它将收集进程 dump,限制每小时不超过1个。

    {  "CollectionRules": {    "HighCpuRule": {      "Filters": [        {          "Key": "ProcessName",          "Value": "MyApp",          "MatchType": "Exact"        }      ],      "Trigger": {        "Type": "EventCounter",        "Settings": {          "ProviderName": "System.Runtime",          "CounterName": "cpu-usage",          "GreaterThan": 80,          "SlidingWindowDuration": "00:01:00"        }      },      "Limits": {        "ActionCount": 1,        "ActionCountSlidingWindowDuration": "1:00:00"      },      "Actions": [        {          "Type": "CollectDump",          "Settings": {            "Type": "Triage",            "Egress": "myBlobStorageAccount"          }        }      ]    }  }}

    关于.NET 6中的dotnet monitor怎么理解就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    --结束END--

    本文标题: .NET 6中的dotnet monitor怎么理解

    本文链接: https://www.lsjlt.com/news/302711.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • .NET 6中的dotnet monitor怎么理解
      这篇文章给大家介绍.NET 6中的dotnet monitor怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.什么是 dotnet monitor在不同的环境中运行 .NET 应用程序可能...
      99+
      2023-06-22
    • .NET 6中的dotnet monitor讲解
      目录一.什么是dotnetmonitor二.入门.NETCLI工具容器镜像三.HTTPAPI四.触发器五.反馈一.什么是 dotnet monitor 在不同的环境中运行 .NET ...
      99+
      2024-04-02
    • .NET 6中的dotnet monitor是什么
      本篇内容主要讲解“.NET 6中的dotnet monitor是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“.NET 6中的dotnet monit...
      99+
      2023-06-22
    • .NET 6 中的 dotnet monitor详细解析
      目录一.什么是dotnetmonitor二.入门.NETCLI工具容器镜像三.HTTPAPI四.触发器五.反馈原文:Announcing dotnet monitor in .NET...
      99+
      2024-04-02
    • .Net 6中WebApplicationBuilder原理和用法是什么
      这篇文章将为大家详细讲解有关.Net 6中WebApplicationBuilder原理和用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。介绍.Net 6为我们带来的一种全...
      99+
      2023-06-22
    • .NET 6的TryGetNonEnumeratedCount方法怎么用
      本篇内容主要讲解“.NET 6的TryGetNonEnumeratedCount方法怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“.NET 6的TryGetNonEnu...
      99+
      2023-06-29
    • .NET 6开发中怎么实现缓存
      小编今天带大家了解.NET 6开发中怎么实现缓存,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“.NET 6开发中...
      99+
      2023-06-26
    • .NET 6中间件Http Logging怎么使用
      这篇文章主要介绍“.NET 6中间件Http Logging怎么使用”,在日常操作中,相信很多人在.NET 6中间件Http Logging怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
      99+
      2023-06-22
    • .NET 6的Nuget包验证怎么用
      这篇文章主要介绍“.NET 6的Nuget包验证怎么用”,在日常操作中,相信很多人在.NET 6的Nuget包验证怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET 6...
      99+
      2023-06-29
    • .NET 6的DateOnly和TimeOnly类型怎么用
      这篇文章主要介绍了.NET 6的DateOnly和TimeOnly类型怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇.NET 6的DateOnly和TimeOnly类型怎么用文章都会有...
      99+
      2023-06-29
    • .NET委托怎么理解
      这篇文章主要讲解了“.NET委托怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET委托怎么理解”吧!紧耦合 从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板...
      99+
      2023-06-17
    • 深入理解.NET中的异步
      目录一、前言二、初看异步三、多线程编程四、异步编程五、Task (ValueTask)六、Task.Run七、自己封装异步逻辑八、同步方式调用异步代码九、void async 是什么...
      99+
      2024-04-02
    • .NET中的HashSet及原理解析
      目录哈希表原理HashSet实现总结参考文章在.NET中,System.Collection及System.Collection.Generic命名空间中提供了一系列的集合类,Has...
      99+
      2024-04-02
    • 怎么理解.NET三层架构应用中的十层框架
      这篇文章给大家介绍怎么理解.NET三层架构应用中的十层框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。凡是接触.net开发的,***要理解的就是三层架构的重要思想。关于三层架构的概述 我就不多说了,相信大家都早已明白...
      99+
      2023-06-17
    • .NET中的HashSet原理是什么
      这篇文章主要介绍“.NET中的HashSet原理是什么”,在日常操作中,相信很多人在.NET中的HashSet原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET中的HashSet原理是什么”的疑...
      99+
      2023-06-29
    • 怎么理解.NET可逆框架设计
      本篇文章为大家展示了怎么理解.NET可逆框架设计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 什么是可逆的程序框架什么叫可逆的?程序的执行是可以被无限制回滚的。什么叫可逆的框架?实现了对可逆功...
      99+
      2023-06-17
    • .NET Core中的HttpClientFactory类怎么用
      小编给大家分享一下.NET Core中的HttpClientFactory类怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、HttpClient...
      99+
      2023-06-29
    • .NET监视程序中死锁怎么处理
      这篇文章将为大家详细讲解有关.NET监视程序中死锁怎么处理,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。监视程序主要是用来监控是否出现死锁等情况,但是这种.NET监视程序一般只能在测试中使用,如果大范围使...
      99+
      2023-06-17
    • Nodejs中的net模块怎么用
      这篇文章主要介绍了Nodejs中的net模块怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Nodejs中的net模块怎么用文章都会有所收获,下面我们一起来看看吧。1. O...
      99+
      2024-04-02
    • .Net中的Junction Points怎么创建
      本文小编为大家详细介绍“.Net中的Junction Points怎么创建”,内容详细,步骤清晰,细节处理妥当,希望这篇“.Net中的Junction Points怎么创建”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
      99+
      2023-07-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作