Metrics+ElasticSearch+grafana——性能监控解决方案

https://blog.csdn.net/Shiyaru1314/article/details/76906461

利用Metrics+ElasticSearch+grafana来构建监控平台

Metrics 采集数据

ElasticSearch 存储数据

Grafana 显示数据

Metrics

Metrics.NET是一个给CLR提供度量工具的包,在c#中嵌入metrics代码,可以方便对业务代码的各个指标进行监控。

只需在.NET项目中添加Nuget安装包,Metrics.Net

以及写入到ElasticSearch的Nuget安装包Metrics.Net.ElasticSearch,如果找不到,可以通过Nuget程序包控制台安装

安装命令如下:

Install-Package Metrics.NET.ElasticSearch -Version 0.5.0-pre -Pre

ElasticSearch

其使用安装,参考本博客专栏,在此不做过多介绍

Grafana

是一个开源的指标量监测和可视化工具

官方在线的demo可以在这里找到: http://play.grafana.org

安装命令:

grafana-server.exe

安装扩展的展示插件

安装饼图命令:grafana-cli plugins install grafana-piechart-panel

添加grafana为windows服务

使用nssm.exe

将nssm.exe拷贝到安装包的bin下,安装。在弹出的窗体中添加bin目录,点击install service

可安装成功,会显示一个弹出窗,表示安装success。查看服务中是否成功添加,并启动。

以上步骤就完成全部的安装

接下来,看怎么使用

数据收集

C#代码中编写测试demo,写一个随机数到ElasticSearch

[csharp] view plain copy

static void Main(string[] args)

{

MetricsConfig();

}

private static void MetricsConfig()

{

var esConfig = new ElasticReportsConfig() { Host = "192.168.25.235", Port = 9200, Index = "metrics" };

Metric.Config

.WithHttpEndpoint("http://localhost:1234/metrics/")

.WithReporting(config => config

.WithElasticSearch(esConfig, TimeSpan.FromSeconds(1))

);

while (true)

{

ToElastic();

}

}

  private static void ToElastic()
{
Metric.Gauge("Errors", () => Ran.Next(300, 500), Unit.None);
Metric.Gauge("% Percent/Gauge|test", () => Ran.Next(0, 100), Unit.None);
Metric.Gauge("& AmpGauge", () => Ran.Next(0, 1), Unit.None);
Metric.Gauge("()[]{} ParantesisGauge", () => Ran.Next(22, 23), Unit.None);
Metric.Gauge("Gauge With No Value", () => 0, Unit.None);
Console.WriteLine("done setting things up");
Console.ReadKey();
}

查看定义的metrics终结点,metrics自带的数据可视化界面。

grafana数据展示

第一步,添加数据源

第二步添加Dashboard

第三步配置展示数据

dashboard通过导入方式添加

可以添加本地的dashboard文件,上传指定文件即可

也可以添加grafana.com上提供的模板,通过id或是url

我们看一下,如何使用在线的模板‘

然后出现

Metrics+ElasticSearch+grafana的更多相关文章

  1. 基于.net core微服务(Consul、Ocelot、Docker、App.Metrics+InfluxDB+Grafana、Exceptionless、数据一致性、Jenkins)

    1.微服务简介 一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTfu ...

  2. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

  3. .net core使用App.Metrics+InfluxDB+Grafana进行APM监控

    一.InfluxDB 1.下载InfluxDB wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.2.x86_64.rpm 2 ...

  4. 利用Metrics+influxdb+grafana构建监控平台(转)

    转自http://www.jianshu.com/p/fadcf4d92b0e 这里再配合Influxdb和Grafana可以构建一个非常漂亮的实时监控界面. Grafana监控界面 采集数据(Met ...

  5. 微服务监控之二:Metrics+influxdb+grafana构建监控平台

    系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务.Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作. 使 ...

  6. 利用Metrics+influxdb+grafana构建监控平台

    https://blog.csdn.net/fishmai/article/details/51817429

  7. Spring Boot Metrics监控之Prometheus&Grafana(转)

    欢迎来到Spring Boot Actuator教程系列的第二部分.在第一部分中,你学习到了spring-boot-actuator模块做了什么,如何配置spring boot应用以及如何与各样的ac ...

  8. 使用Metrics监控应用程序的性能

    在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前,或者某一时刻运行的情况,比如当前系统中对 ...

  9. timeSeries db之:使用Metrics监控应用程序的性能 (zz)

    在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前,或者某一时刻运行的情况,比如当前系统中对 ...

随机推荐

  1. Zabbix——部署(DB与web一体)

    前提条件: CentOS连接网络并可以正常访问网络 DNS设置完成,可以Ping同外网域名 安装数据库为8.0版本 关闭防火墙 如果需要搭建分离式请见:DB与Web分离 &DB.web.age ...

  2. CSRF的原理和防范措施

    a)攻击原理: i.用户C访问正常网站A时进行登录,浏览器保存A的cookie ii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参 ...

  3. 百度地图API定位+显示位置

    1. 先在需要嵌入地图的页面引入map.js <script src="http://api.map.baidu.com/api?v=2.0&ak=你的秘钥"> ...

  4. jquery如何获取对应表单元素?

    问题描述:我页面中有这样多个表单,我都是这个定义的,当我点击确定按钮时,此时能够获得相对应的表单对象,我该怎么获取到他的两个值呢? 解决方案: 页面元素 <form id="form1 ...

  5. 中间件kafka

    * kafka----一个发布订阅消息系统,中间件:一个分布式.分区.可重复的日志服务kafka需要了解基础几层结构,生产者订阅者等使用方法,和在高并发.一致性场景使用.(凡事面试问一致性.高并发都脱 ...

  6. tarnado源码解析系列一

    目录 tarnado tarnado源码安装 tarnado测试程序 application类的解析 一. tarnado简介 最近在学习Python,无意间接触到的tarnado,感觉tarnado ...

  7. Qt——菜单栏、工具栏、状态栏

    1.菜单栏 菜单栏的意义是将可点击触发最终事件的集中在一起,所以菜单栏中是QAction 添加菜单栏是QMainWindow的行为 QMenubar *menubar = this->addMe ...

  8. SPFA算法(2) POJ 1511 Invitation Cards

    原题: Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 31230   Accepted: ...

  9. P1078 文化之旅

    P1078 文化之旅 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一 种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不 同的国家 ...

  10. 【C#】 URL Protocol

    [C#] URL Protocol 网页调用本地程序, 支持 Windows 下所有浏览器, 与浏览器插件对比实现简单,但判断是否调用成功时, 只有ie10以上有函数,其他浏览器得自己实现(用 ifr ...