1. 程式人生 > >Metrics+ElasticSearch+grafana——效能監控解決方案

Metrics+ElasticSearch+grafana——效能監控解決方案

利用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
  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

我們看一下,如何使用線上的模板‘


然後出現