1. 程式人生 > >Metrics+ElasticSearch+grafana

Metrics+ElasticSearch+grafana

ces .exe 展示 host 怎麽 uget C# metrics per

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