91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET?6中的dotnet?monitor怎么理解

發布時間:2021-12-24 21:14:38 來源:億速云 閱讀:126 作者:柒染 欄目:開發技術

這篇文章給大家介紹.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怎么理解就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    潞城市| 红桥区| 三穗县| 天津市| 漳州市| 集安市| 禄劝| 正定县| 建宁县| 昌黎县| 伊吾县| 嘉荫县| 攀枝花市| 宜兰市| 密山市| 蒙山县| 屏边| 海伦市| 神池县| 娱乐| 旅游| 南华县| 新乐市| 工布江达县| 奈曼旗| 顺昌县| 平阳县| 凤山市| 渭南市| 苍山县| 乌拉特中旗| 吉林省| 金塔县| 永嘉县| 仪陇县| 大同县| 扎鲁特旗| 区。| 柳河县| 义马市| 福泉市|