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. SQL修改数据表字段长度

    alter table m_Assysn_t nocheck CONSTRAINT allAlter Table m_Assysn_t ALTER column ppid VARCHAR(150)al ...

  2. C语言Ⅰ博客作业05

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9827 我在这个课程的目 ...

  3. etcd集群添加节点

    查看当前集群节点信息 # etcdctl member list --write-out=table +------------------+---------+------------------- ...

  4. http 中指定head中Content-Encoding属性为gzip 转换过程中的一些问题

    项目环境: 对接的服务放在微服务中 提供接口给应用层调用 ,微服务放需要 接受参数 并且转换成压缩格式给 第三方服务 本来以为需要自己压缩,httpclint 中已经封装好了GzipCompressi ...

  5. [转载]Linux查看文件编码格式及文件编码转换

    原文地址:https://blog.csdn.net/gatieme/article/details/55045883 3 linux下查看编码的方法 方法一:file filename file c ...

  6. 运维LVS三种模式十种调度算法

    一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...

  7. mac osx sed 命令

    $ sed -i "s/devicedemo/device/g" `grep devicedemo -rl ./` sed: 1: ".//.coveragerc&quo ...

  8. 表格强制换行 table-layout:fixed

    如果想要一个table固定大小,里面的文字强制换行(尤其是在一长串英文文本,并且中间无空格分隔的情况下),以达到使过长的文字不撑破表格的目的,一般是使用样式:table-layout:fixed.

  9. vue组件如何引入外部.js/.css/.scss文件

    可在相应的单vue组件引入相应文件. 1.引入外部.js文件. 2.引入外部.css文件. 使用@import引入外部css,作用域是全局的,也可在相应的单vue组件引入,import并不是引入代码到 ...

  10. Nginx 故障实例

    linux vi 操作提示 Found a swap file by the name "/usr/local/nginx/conf/.nginx.conf.swp" 解决方法: ...