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", );
//自定义计数器
MedivhSdk.OnceCounter.CustomCounter("自定义" + i % , );

接入示例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数据

原创作品,有不同的想法欢迎讨论。

[业务监控系统]MEDIVH架构设计和接入方案的更多相关文章

  1. GPS部标监控平台的架构设计(十一)-基于Memcached的分布式Gps监控平台

    部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临 ...

  2. 分布式发布订阅消息系统 Kafka 架构设计[转]

    分布式发布订阅消息系统 Kafka 架构设计 转自:http://www.oschina.net/translate/kafka-design 我们为什么要搭建该系统 Kafka是一个消息系统,原本开 ...

  3. Java生鲜电商平台-优惠券系统的架构设计与源码解析

    Java生鲜电商平台-优惠券系统的架构设计与源码解析 电商后台:实例解读促销系统 电商后台系统包括商品管理系统.采购系统.仓储系统.订单系统.促销系统.维权系统.财务系统.会员系统.权限系统等,各系统 ...

  4. Java生鲜电商平台-电商会员体系系统的架构设计与源码解析

    Java生鲜电商平台-电商会员体系系统的架构设计与源码解析 说明:Java生鲜电商平台中会员体系作为电商平台的基础设施,重要性不容忽视.我去年整理过生鲜电商中的会员系统,但是比较粗,现在做一个最好的整 ...

  5. Java生鲜电商平台-促销系统的架构设计与源码解析

    Java生鲜电商平台-促销系统的架构设计与源码解析 说明:本文重点讲解现在流行的促销方案以及源码解析,让大家对促销,纳新有一个深入的了解与学习过程. 促销系统是电商系统另外一个比较大,也是比较复杂的系 ...

  6. 2017(5)软件架构设计,web系统的架构设计,数据库系统,分布式数据库

    试题五(共 25 分) 阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题1 至问题 3. [说明] 某公司开发的 B2C 商务平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢, ...

  7. Zabbix实战-简易教程--大型分布式监控系统实现Agent批量快速接入

    一.分布式架构 相信使用zabbix的大神都熟悉他的分布式架构,分布式的优势相当明显,分而治之.比如目前我的架构图如下: 那么,对将要接入监控系统的任何一个agent如何快速定位,并进行接入呢?  问 ...

  8. Java进阶专题(十八) 系统缓存架构设计 (下)

    前言 上章节介绍了Redis相关知识,了解了Redis的高可用,高性能的原因.很多人认为提到缓存,就局限于Redis,其实缓存的应用不仅仅在于Redis的使用,比如还有Nginx缓存,缓存队列等等.这 ...

  9. .NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记

    目录 项目核心内容 实战目标 RGCA 四步架构法 项目核心内容 无代码埋点实现对所有 API Action 访问控制管理 对 EF Core 实体新增.删除.字段级读写控制管理 与 Identity ...

随机推荐

  1. 【VS开发】【图像处理】相机中白平衡的算法模拟实现

    相机主要技术点为3A算法. 而3A算法主要指的是自动对焦(AF).自动曝光(AE)及自动白平衡(AWB).自动白平衡:根据光源条件调整图片颜色的保真程度. 网上时常有类似招聘如下的招聘信息: ---- ...

  2. OpenTSDB查询和写入毫秒级数据

    由于OpenTSDB没有支持Java的SDK进行调用,所以基于Java开发OpenTSDB的调用将要依靠HTTP请求的方式进行. 1.毫秒级数据写入 /api/put:通过POST方式插入JSON格式 ...

  3. Java学生成绩绩点管理系统

    一.考试要求: 1.按照测试内容要求完成程序的设计与编程: 2.建立学号姓名文件夹,如:“信 1805-1 班 20180001 XXX”,将源程序文件保存在文件夹中,压缩成 rar 文件提交. 3. ...

  4. 不要64 数位DP

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...

  5. py3.7安装Scrapy及安装时的 Running setup.py install for Twisted ... error 和安装后的 Unhandled error in Deferred:

    1.首先,win+r 进入cmd,打开命令提示符,输入  pip install scrapy  等待自动安装: 2.到了后半段会出现  Running setup.py install for Tw ...

  6. [HAOI2018]苹果树题解

    题目链接 大意:不解释 思路: 首先方案数共有n!种,第1个点只有1种选择,第2个点2种选择,生成2个选择的同时消耗一个,第3个点则有3种选择,依次类推共有n!种方案,由于最后答案*n!,故输出的实际 ...

  7. php文件上传客户端限制和服务器端限制

    客户端限制 1,通过表单隐藏域限制文件上传文件的最大值<input type='hidden' name='MAX_FILE_SIZE' VALUE='字节数' />通过accept属性限 ...

  8. [.net core]10.请求静态文件, 自定义默认文件名

    何谓静态文件,文件系统上的文件,  css, javascript , image. html  这些都属于静态文件, .net core web app 默认是不处理文件请求的.  我们来做一个实验 ...

  9. webpack4.x + vue2.x 构建前端工程化(1)

    本篇文篇纯属个人笔记,实现工程化打包(用打包后的文件可以正常渲染页面),后续继续更新配置开发环境与生产环境,如果有不合理的地方还望各位指点! 不用脚手架,直接用vue和webpack搭建前端工程化项目 ...

  10. Linux日常操作整理

    1. Linux下建立ssh互信 需要在两台机器上保证安装ssh步骤:cd ~/.sshssh-keygen(每台机器执行此操作)ssh root@192.168.2.100 cat ~/.ssh/i ...