如何在中理解dotnetmonitor?NET6

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

本文介绍如何在中理解dotnetmonitor。NET6,而且内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

00-1010跑步。不同环境中的. NET应用程序可能会使收集诊断信息(如日志、跟踪、转储)变得困难。无论您是在台式计算机(台式计算机可以理解为我们的日常计算机)上运行,还是在kubernetes集群中运行,Netmonitor都是一种提供收集这些诊断信息的统一方法的工具。

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

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

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

一.什么是 dotnet monitor

dotnet monitor可以通过两种不同的分发机制获得:NET命令行界面工具

通过微软容器注册(MCR)获得的容器图像

二.入门

dotNET监视器命令行界面工具首先需要安装。NET 6 SDK。如果您没有足够的新SDK,可以通过。net下载页面进行安装。

您可以使用命令获取dotnet monitor的最新版本:

nettolinstall-gdotnet-monitor-Version 6 . 0 . 0如果您已经安装了它,但想将其更新到最新版本,可以运行以下命令:

dottoolupdate-gdotnet-monitor-Version 6 . 0 . 0

.NET CLI 工具

Dotnetmonitor容器映像可在MCR上获得。您可以通过以下命令获取最新图像:

Dockerpullmcr.microsoft.com/dotnet/monitor:6.0.0

容器镜像

Dotnet Monitor公开了一个HTTP API,用于查询可用进程、收集诊断信息和检查请求信息的状态。

公开了以下HTTP应用编程接口:

/processes-获取可以发现的进程的详细信息。

/dump-不使用调试器捕获进程的转储。

/GC dump-捕获进程的GC dump。

/trace-不要使用探查器来跟踪进程。

/metrics-以Prometheus曝光格式捕获默认流程的度量快照。

/livemetrics-捕获流程的实时度量流。

/logs-捕获进程的日志。

/info-获取有关dotnet监视器的信息

/operations-获取操作状态并取消操作。

下面的示例演示如何使用微软的调试级别记录日志流数据。aspnetcore . server . kest rel . connections在60秒内从目标进程通过使用dotnet monitor。

pscurl . exe-XPOST ' https://localhost :52323/log?name=myWebAppdurationSeconds=60 ' '

n

bsp; -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怎么理解就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157908.html

(0)

相关推荐

  • Hibernate HQL优化的方法有哪些

    技术Hibernate HQL优化的方法有哪些这篇文章主要讲解了“Hibernate HQL优化的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernat

    攻略 2021年12月4日
  • 如何撤销fixed的效果(头部设置fixed后内容滚动)

    技术如何验证fixed关键字效果本篇文章为大家展示了如何验证fixed关键字效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。之前谈到String连接操作的性能,其中会涉及到un

    攻略 2021年12月19日
  • 怎么使用python logging

    技术怎么使用python logging本篇内容介绍了“怎么使用python logging”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年11月18日
  • 和田玉价格走势,和田玉价格是怎样涨起来的

    技术和田玉价格走势,和田玉价格是怎样涨起来的以下是鸿璐的一些浅见和田玉价格走势,希望对您有所帮助和田玉历史悠久,从古至今备受人们喜爱!和田玉润更是以其优秀的润度屹立于玉石行列的顶端!和田玉的“羊脂白玉”更是以其白中有润,

    生活 2021年10月22日
  • 澳大利亚旅游得多少钱,去澳大利亚旅游要花多少钱

    技术澳大利亚旅游得多少钱,去澳大利亚旅游要花多少钱我想你悉尼和墨尔本这两个最著名的城市肯定是要去的吧。如果是穷游,可以在城内不采用交通工具,完全靠走。吃和住弹性都比较大,自己选择适合自己价位的酒店就行,如果不介意的话去超

    生活 2021年10月25日
  • 分析型数据仓库中如何实现读写分离

    技术分析型数据仓库中如何实现读写分离这篇文章主要为大家展示了“分析型数据仓库中如何实现读写分离”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“分析型数据仓库中如何实现读写分离”

    攻略 2021年11月23日