日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

当 dotnet-monitor 遇上 Prometheus, 是种什么样的体验?

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 当 dotnet-monitor 遇上 Prometheus, 是种什么样的体验? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于開發和運維人員來說, 監控大屏很棒, 讓我們來做一個 Dashboard 吧!大家可能聽說過一些 CLI 診斷工具, 比如 dotnet-counters,dotnet-dump 和 dotnet-trace, 那 dotnet-monitor 又是什么呢?簡單理解就是把上面的幾種診斷工具進行了包裝, 并且暴露了 對應的 REST API, 讓診斷變的更容易, 在去年, dotnet-monitor 還是一個實驗性的診斷工具, 當時我也寫了一篇文章介紹 dotnet-monitor,使用 dotnet-monitor 分析.NET 應用程序 , 而最近, .NET 團隊宣布第一個 release 版本的 dotnet-monitor, 同時它也是 .NET 6 的內容 😍, 也就是 dotnet-monitor 6.0.0 !

今天我們關注的主要是指標, 也就是 /metrics 端點, 正如文檔所說,它是按照 Prometheus 的格式顯示當前dotnet程序的 metrics 快照, 順便說一句,這是非常簡單的格式,如下:

# HELP systemruntime_cpu_usage_ratio CPU Usage# TYPE systemruntime_cpu_usage_ratio gaugesystemruntime_cpu_usage_ratio 0 1632929076109systemruntime_cpu_usage_ratio 0 1632929076111systemruntime_cpu_usage_ratio 0 1632929086110# HELP systemruntime_working_set_bytes Working Set# TYPE systemruntime_working_set_bytes gaugesystemruntime_working_set_bytes 1529000000 1632929066112systemruntime_working_set_bytes 1529000000 1632929076110systemruntime_working_set_bytes 1529000000 1632929076112...# HELP systemruntime_time_in_gc_ratio % Time in GC since last GC# TYPE systemruntime_time_in_gc_ratio gaugesystemruntime_time_in_gc_ratio 0 1632929066112systemruntime_time_in_gc_ratio 0 1632929076110systemruntime_time_in_gc_ratio 0 1632929076112

上面看到的是 System.Runtime counters 的指標, 接下來,我們需要把這些信息展示到 Grafana Dashboard。

1. 準備一個 dotnet core 應用

為了更好的展示, 這里我們使用了一個內存泄露的示例項目, 這是一個.NET 5 的應用, 你可以在github上面找到,然后下載到本地

https://github.com/sebastienros/memoryleak

git clone https://github.com/sebastienros/memoryleak.git

接下來, 我們讓應用在 docker 容器中運行, 這里準備了一個 Dockerfile 文件, 你需要把它手動添加到項目的解決方案目錄下

# https://hub.docker.com/_/microsoft-dotnetFROM mcr.microsoft.com/dotnet/sdk:5.0 AS buildWORKDIR /sourceCOPY . .RUN dotnet restoreRUN dotnet publish -c release -o /app --no-restore# final stage/imageFROM mcr.microsoft.com/dotnet/aspnet:5.0RUN apt-get update && apt-get install -y procpsWORKDIR /appCOPY --from=build /app .ENTRYPOINT ["dotnet", "MemoryLeak.dll"]

然后構建鏡像

docker build --pull -t memoryleak-image -f Dockerfile .

因為我們的 dotnet-monitor 是在 sidecar 容器運行的, 所以需要共享 volume (用于 IPC 通信), 使用以下命令創建一個 volume

docker volume create dotnet-tmp

現在我們準備運行我們的 memoryleak 鏡像, 然后映射端口 80 ---> 5000

docker run -d -it --rm -e TZ=Asia/Shanghai -p 5000:80 --mount "source=dotnet-tmp,target=/tmp" memoryleak-image

運行成功后, 訪問 http://localhost:5000/

2. dotnet-monitor

我們可以安裝 dotnet-monitor 為全局工具,但讓我們繼續使用 Docker 容器, Microsoft Container Registry 上有可用的容器映像,只需要使用以下命令即可:

docker run -d -it --rm -e TZ=Asia/Shanghai -p 12323:52323 --mount "source=dotnet-tmp,target=/tmp" mcr.microsoft.com/dotnet/monitor --urls http://*:52323 --no-auth

同樣, 掛載了我們上面創建的 dotnet-tmp volume, 然后訪問 http://localhost:12323/metrics, 現在已經能看到指標信息了

3. Prometheus

Prometheus 是一個免費的監控系統和時序數據庫, 我們需要存儲 dotnet-monitor 收集的 metrics 指標信息, 同樣,我們可以通過各種方式運行/安裝 Prometheus,這里我們還繼續使用 Docker, 首先還需要一個 prometheus.yml 配置文件, 你可以手動添加到解決方案目錄下

global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15salerting: alertmanagers: - scheme: http timeout: 10s api_version: v1 static_configs: - targets: []scrape_configs:- job_name: prometheus honor_timestamps: true scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http static_configs: - targets: - localhost:9090- job_name: memoryleak honor_timestamps: true scrape_interval: 2s scrape_timeout: 2s metrics_path: /metrics scheme: http static_configs: - targets: - host.docker.internal:12323

上面配置中, 定時 2s 抓取了 http://host.docker.internal:12323/metrics , 這是 dotnet-monitor 暴露的指標信息, 然后使用下邊的命令, 在 docker 中啟動 prometheus, 注意?D:\Code\dotnet\memoryleak\src\MemoryLeak\prometheus.yml?這里要改成你本地 prometheus.yml 文件路徑。

docker run -d --name prometheus-container -e TZ=Asia/Shanghai -p 30090:9090 -v D:\Code\dotnet\memoryleak\src\MemoryLeak\prometheus.yml:/etc/prometheus/prometheus.yml ubuntu/prometheus

就是這么簡單, Prometheus 運行后, 我們訪問 http://localhost:30090/targets, 查看運行狀態, 一切 OK

4. Grafana

最后, 就是用 Grafana 做可視化, 同樣, 我們使用下面的命令在docker中運行 Grafana

docker run -d -e TZ=Asia/Shanghai -p 3000:3000 grafana/grafana

接下來, 我們訪問 http://localhost:3000/, 首次登錄可以使用 admin/admin, 然后轉到 Configuration -> Data sources, 點擊 Add data source 添加數據源, 選擇 Prometheus, 然后設置 URL 為 http://host.docker.internal:30090/, 其他的參數默認, 然后 Save & test 保存, 如下

現在數據源設置好了, 接下來還需要配置 dashboard , 這里有一個json文件, 你可以直接復制內容到文本框并導入, 如下

https://dotnetos.org/assets/files/posts/sample-dotnet-monitor-dashboard.json

恭喜, 現在你已經有一個看上去很nice的儀表盤!

總結

我們回顧一下整個過程, 總共有4個容器, 首先是 .NET 5 的應用, 然后 dotnet-monitor 收集應用的指標信息, Prometheus 定時拉取并存儲 dotnet-monitor 的 metrics, 最后用 Grafana 進行可視化。

原文鏈接: https://dotnetos.org/blog/2021-11-22-dotnet-monitor-grafana/


總結

以上是生活随笔為你收集整理的当 dotnet-monitor 遇上 Prometheus, 是种什么样的体验?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 老司机深夜网站 | 中文字幕第二区 | 夜夜骑夜夜操 | 香蕉视频97| 日韩中文字幕av | 一级片自拍 | 在线观看麻豆av | 在线视频欧美亚洲 | 99精品亚洲| 欧美老女人bb | 99热99这里只有精品 | 欧美性大交 | 日韩一区二 | 中文字幕一区二区三区波野结 | 美利坚合众国av | 免费亚洲视频 | www视频在线免费观看 | 日韩视频一区二区 | 黄页网站免费在线观看 | 永久精品网站 | 97国产精品视频 | 日本色中色| 亚洲免费视频一区二区 | 日韩精选av | 精品伦精品一区二区三区视频 | 国产成人免费看一级大黄 | 偷拍xxxx| 99插插 | 一区二区三区四区视频在线观看 | 爱爱视频欧美 | 国产精品有限公司 | 日韩一区二区视频在线观看 | 91精品国产色综合久久不卡98 | 午夜777 | 哪个网站可以看毛片 | 亚洲一区欧美 | 久久伊人超碰 | 国产欧美日韩一区二区三区 | 九九九在线视频 | 黄色视屏软件 | 成人在线国产精品 | 极品粉嫩小仙女高潮喷水久久 | 中文字幕在线观看网站 | 蜜桃久久一区二区三区 | 在线色播 | 原来神马电影免费高清完整版动漫 | 女性向片在线观看 | 欧美激情免费看 | 又黄又爽视频在线观看 | 99久久精品免费看国产 | 天天干视频| 久久久精 | 激情黄色av | 亚洲人成无码www久久久 | 自拍一级片 | 欧美xxxxav| 国产国语对白 | 免费看黄色的网站 | 中国色老太hd | 国产视频在线观看一区二区 | 国产高清中文字幕 | www.三级.com | 婷婷色图 | 亚洲av最新在线网址 | 欧美国产成人在线 | www.蜜臀av.com| 亚洲天堂第一 | 超碰c | 国产一区二区视频在线免费观看 | aaa欧美| 黄色国产网站 | 青青草免费公开视频 | 一区二区免费在线观看视频 | 色亚洲视频 | 成人一区二区三区在线观看 | 一区二区伦理 | 国产免费午夜 | 亚洲精品高清无码视频 | 97在线观看视频免费 | 久久久av免费 | 男女啪啪免费网站 | 怡红院精品视频 | 精品久久亚洲 | www天堂在线 | 久久亚洲影院 | 一级大片网站 | 亚洲伊人婷婷 | 欧美一级片在线看 | 久久国产成人精品 | av优选在线观看 | 欧美精品xxxxx| 男男一级淫片免费播放 | 日本少妇一区 | 99自拍网| 黄在线视频 | 色狠狠一区二区三区香蕉 | 中文字幕成人在线视频 | 极品尤物一区二区三区 | 亚洲一区二区三区在线视频观看 |