Metrics+ElasticSearch+grafana
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" };
.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