Metrics+ElasticSearch+grafana——效能監控解決方案
阿新 • • 發佈:2019-01-09
利用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 -PreElasticSearch
其使用安裝,參考本部落格專欄,在此不做過多介紹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,寫一個隨機數到ElasticSearchstatic 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
我們看一下,如何使用線上的模板‘
然後出現