[業務監控系統]MEDIVH架構設計和接入方案

来源:http://www.cnblogs.com/shi-meng/archive/2016/03/24/5315695.html
-Advertisement-
Play Games

本系統旨在提供業務監控實時數據和歷史數據以及報表、閾值報警、同比增長分析等一體化的歷史業務數據解決方案。 技術選型 sdk部門有C#版和java版,api和website採用golang語音開發,資料庫採用mysql,數據傳輸採用socket+http 架構設計 本系統主要分3個部分:即sdk(@2 ...


Medivh監控系統-

系統介紹

本系統旨在提供業務監控實時數據和歷史數據以及報表、閾值報警、同比增長分析等一體化的歷史業務數據解決方案。

技術選型

sdk部門有C#版和java版,api和website採用golang語音開發,資料庫採用mysql,數據傳輸採用socket+http

架構設計

系統源碼

本系統主要分3個部分:即sdk(@2) api(@1) 和 website(@3) 。

3個分系統源代碼下載地址:

@3 =>website https://github.com/larrymshi/medivh.website

@2 =>sdk .net版本 https://github.com/larrymshi/medivh.client-csharp

@2 =>sdk java版本 https://github.com/larrymshi/medivh.client-java

@1 =>api https://github.com/larrymshi/medivh.api

使用和接入文檔整理中~!

接入示例 (C#)

code

//初始化日誌記錄器 並設置日誌級別(0info 1debug) 
MedivhSdk.SetLogger(Log, 1);
//初始化配置對象 MedivhConfig config = new MedivhConfig(); //設置應用信息(AppName,AppKey,AppSecret 是申請的,切AppKey不能重覆) config.Client = new ClientInfo() { AppName = "**監控測試NO1", AppKey = "aaaaaaaaaaaaaaaaaa", AppSecret = "..." }; config.ServerIp = "127.0.0.1";//api的地址 config.ServerPort = 5000;//api的埠 //初始化medivh引擎 MedivhSdk.Init(config); //以上是監控系統初始化完畢,現在開始使用業務計數器 //業務計數器,根據需要設置業務級別 MedivhSdk.OnceCounter.BusinessCounter("業務1", 1); //自定義計數器 MedivhSdk.OnceCounter.CustomCounter("自定義" + i % 5, 1);

接入示例JAVA版

public class App {
    public static void main(String[] args) throws InterruptedException {

        MedivhConfig config = new MedivhConfig(new ClientInfo("test", "qweasdzxc", "123"), "192.168.155.106", 5000);

        MedivhSdk.setLogger(new MedivhLog());
        MedivhSdk.init(config);

        Loghelper.info("啟動完成!");
        test();
    }


    private static void test() throws InterruptedException {
        int i = 0;
        while (true) {
            i++;
            //業務計數器
            MedivhSdk.getOnceCounter().businessCounter("biz" + i % 7, 1);
            ////自定義計數器
            MedivhSdk.getOnceCounter().cstcomCounter("cust" + i % 7, 1);
            //Console.Write(". ");
            Thread.sleep(50);
        }
    }

    static class MedivhLog implements IMedivhLogable {
        @Override
        public void log(String msg) {
            System.out.println("Logger:" + msg);
        }
    }
}

 

以上代碼完成了應用伺服器sdk的接入,產生的數據會推送到api伺服器上,並且由website定時獲取同步到資料庫中

API伺服器配置

編譯運行main.go(需設定golang環境,或直接運行編譯後的文件).預設api占用8080埠作為http伺服器,占用5000埠作為tcp服務。可在conf/app.conf裡面修改。

website配置

1》website採用資料庫為mysql(在conf/app.conf裡面修)
2》編譯或運行main.go.然後訪問 http://localhost:8081 即可訪問實時數據和歷史數據報表。
3》外部報表僅提供api數據

 

原創作品,有不同的想法歡迎討論。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對基於請求的分散式消息樹的分析 在MVC時有過濾器System.Web.Mvc.ActionFilterAttribute,它可以對action執行的整個過程進行攔截,執行前與執行後我們可以註入自己的代碼,這是我們實現對請求做監控的前提,對於一個請求來說,如果它是從Get或者Post過來的,我們會在 ...
  • 數據在分片時,典型的是分庫分表,就有一個全局ID生成的問題。單純的生成全局ID並不是什麼難題,但是生成的ID通常要滿足分片的一些要求: 1 不能有單點故障。 2 以時間為序,或者ID里包含時間。這樣一是可以少一個索引,二是冷熱數據容易分離。 3 可以控制ShardingId。比如某一個用戶的文章要放 ...
  • 設計模式 目錄 UML類圖 簡單工廠模式(Simple Factory) 創建型: 工廠方法模式(Factory Method) 抽象工廠模式(Abstract Factory) 建造者模式(Builder) 原型模式(Prototype) 單例模式(Singleton) 結構型: 適配器模式(Ad ...
  • 抽象工廠模式(Abstract Factory) 類圖 描述 抽象工廠: 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類; 一個抽象工廠類,可以派生出多個具體工廠類; 每個具體工廠可以創建多個具體產品,即每個工廠可以生產一個產品集合。 應用場景 就拿生產轎車來說,轎車是由發動機、車輪、車體結 ...
  • 工廠方法模式(Factory Method) 類圖 描述 工廠方法: 一個抽象產品類,可以派生多個具體產品類; 一個抽象工廠類,可以派生多個具體工廠類; 每個具體工廠只能創建一個具體產品。 應用場景 汽車介面 汽車類 汽車工廠介面 汽車工廠類 調用 ...
  • 簡單工廠模式(Simple Factory) 類圖 描述 簡單工廠: 一個抽象產品類,可以派生多個具體產品類; 一個具體工廠類; 工廠只能創建一個具體產品。 應用場景 汽車介面 汽車類 汽車工廠類 調用,從配置文件中讀取操作符 ...
  • 無論做什麼事情呢,都要善始善終呢。前邊連續發表了5篇關於重構的博客,其中分門別類的介紹了一些重構手法。今天的這篇博客就使用一個完整的示例來總結一下之前的重構規則,也算給之前的關於重構的博客畫一個句號。今天的示例借鑒於《重構,改善既有代碼的設計》這本書中的第一章的示例,在其基礎上做了一些修改。今天博客 ...
  • 對第三方介面的調用我們需要對GET和POST進行監控,看一些請求的執行是否成功,如A調用B,B調用C,C調用D,這一連串的東西需要我們使用cat進行記錄,進行記錄之後,我們可以很容易的發現請求響應的時間及是否出錯,下麵是我對這兩種請求的封裝。 在程式中使用非常方便,如下代碼,一看便知 而它產生的消息 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...