栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.NET Core 性能监控

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.NET Core 性能监控

介绍

App.Metrics 是一款开源的支持 .NET Core 的监控插件,它还可以支持跑在 .NET Framework 上的应用程序(版本 >= 4.5.2)。

本篇介绍 App.Metrics + InfluxDB + Grafana,构建性能监控。

环境信息

本篇博客操作全部在Linux下部署

服务器说明
192.168.200.123influxdb 服务器,存储数据
192.168.200.167grafana 服务器,展示数据
192.168.200.164.NetCore 3.1 + Metrics 4.2,收集数据

前置条件

influxdb 、grafana 部署请参照博主其他博客,本篇不做介绍

  • influxdb(部署信息)
    UI:http://192.168.200.123:8083/
    User:root root
    数据端口:http://192.168.200.123:8086
    DB:AppMetricsDB
  • grafana(部署信息)
    UI: http://192.168.200.167:3000/login
    User:admin admin

部署 一、.Net Core API
  1. 安装 packge
    App.Metrics 4.2 、App.Metrics.AspNetCore.All 4.2 、App.Metrics.Reporting.InfluxDB 4.2
  2. 配置信息
{
  "AppMetrics": {
    "IsOpen": true,
    "DatabaseName": "AppMetricsDB",
    "ConnectionString": "http://192.168.200.123:8086",
    "UserName": "root",
    "Password": "root",
    "App": "ad-api",
    "Env": "Development"
  }
}
  1. 注册服务
    在 starup 类中 ConfigureServices 方法注册
            // AppMetrics
            bool isOpenMetrics = Convert.ToBoolean(Configuration["AppMetrics:IsOpen"]);
            if (isOpenMetrics)
            {
                string database = Configuration["AppMetrics:DatabaseName"];
                string connStr = Configuration["AppMetrics:ConnectionString"];
                string app = Configuration["AppMetrics:App"];
                string env = Configuration["AppMetrics:Env"];
                string username = Configuration["AppMetrics:UserName"];
                string password = Configuration["AppMetrics:Password"];

                var uri = new Uri(connStr);
                var metrics = AppMetrics.CreateDefaultBuilder().Configuration.Configure(options =>
                {
                    options.AddAppTag(app);
                    options.AddEnvTag(env);
                }).Report.ToInfluxDb(options =>
                {
                    options.InfluxDb.BaseUri = uri;
                    options.InfluxDb.Database = database;
                    options.InfluxDb.UserName = username;
                    options.InfluxDb.Password = password;
                    options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);
                    options.HttpPolicy.FailuresBeforeBackoff = 5;
                    options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10);
                    options.FlushInterval = TimeSpan.FromSeconds(5);
                }).Build();

                services.AddMetrics(metrics);
                services.AddMetricsReportingHostedService();
                services.AddMetricsTrackingMiddleware();
                services.AddMetricsEndpoints();
            }

  1. 使用服务
    在 starup 类中 Configure 方法启用
            // AppMetrics
            bool isOpenMetrics = Convert.ToBoolean(Configuration["AppMetrics:IsOpen"]);
            if (isOpenMetrics)
            {
                app.UseMetricsAllEndpoints();
                app.UseMetricsAllMiddleware();
            }

  1. 启动程序
    启动程序后,Metrics 会向 influxdb 实时写入程序运行资源信息。如果不知道是否写入成功,可以查看 influxdb log 进行查看。
二、添加面板
  1. 添加数据源,打开 grafana 进行数据源添加,配置 influxdb 信息,并测试是否成功

  2. 配置面板。添加Dashboards,可以使用导入 https://grafana.com/dashboards/2125 。
    官方有许多配置好的 Dashboards 可以直接拿来用
三、查看面板

对 API 项目进行访问或者压测模拟访问,可以根据指定条件查看指定程序信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/985237.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号