加入收藏 | 设为首页 |

火竞猜-根据时序数据库做监控,这里有超盛行的开源计划

海外新闻 时间: 浏览:171 次

在微服务架构下,咱们对服务进行了拆分,所以用户的每次恳求不再是由某一个服务独立完结了,而是变成了多个服务一同合作完结。这种情况下,一旦恳求出现异常,咱们有必要得知道是在哪个服务环节出了毛病,就需求对每一个服务,以及各个目标都进行全面的监控。

一、什么是「 监控体系 」?

在微服务架构中,监控体系依照原理和效果大致能够分为三类(并非严厉分类,仅从日常运用视点来看):

  • 日志类(Log);
  • 调用链类(Tracing);
  • 衡量类(Metrics)。

下面来分别对这三种常见的监控形式进行阐明。

1、日志类

日志类比较常见,咱们的结构代码、体系环境,以及事务逻辑中一般都会产出一些日志,这些日志咱们一般把它记载后一致搜集起来,便利在需求的时分进行查询。

日志类记载的信息一般是一些事情、非结构化的一些文本内容。日志的输出和处理的解决计划比较多,咱们熟知的有ELK Stack计划(Elasticseach + Logstash + Kibana),如图:

运用Beats(可选)在每台服务器上装置后,作为日志客户端搜集器,然后经过Logstash进行一致的日志搜集、解析、过滤等处理,再将数据发送给Elasticsearch中进行存储剖析,最终运用Kibana来进行数据的展现。

当然还能够晋级计划为:

这些计划都比较老练,建立起来也比较简略,除了用作监控体系以外,还能够作为日志查询体系运用,十分适用于做剖析、以及问题调试运用。

2、调用链类(Tracing)

调用链类监控首要是指记载一个恳求的悉数流程。一个恳求从开端进入,在微服务中调用不同的服务节点后,再回来给客户端,在这个过程中经过调用链参数来寻找全链路行为。经过这个方法能够很便利的知道恳求在哪个环节出了毛病,体系的瓶颈在哪儿。

这一类的监控一般选用CAT东西 来完结,一般在大中型项目较多用到,由于建立起来有必定的本钱。后边会有独自文章来解说这个调用链监控体系。

这也是简略的容错方法。便是指在服务之间调用时,设置一个自动超时时刻,超过了这个时刻阈值后,假如“被依靠的服务”还没有回来数据的话,“调用者”就自动抛弃,避免因“被依靠的服务”的毛病所影响。

3、衡量类(Metrics)

衡量类首要选用时序数据库的解决计划。它是以事情发作时刻以及当时数值的视点来记载的监控信息,是能够聚合运算的,火竞猜-根据时序数据库做监控,这里有超盛行的开源计划用于检查一些目标数据和目标趋势。所以这类监控首要不是用来查问题的,首要是用来看趋势的。

Metrics一般有5种根本的衡量类型:

  • Gauges(衡量);
  • Counters(计数器);
  • Histograms(直方图);
  • Meters(TPS计算器);
  • Timers(计时器)。

根据时刻序列数据库的监控体系是十分适合做监控告警运用的,所以现在也比较盛行这个计划,假如咱们要建立一套新的监控体系,我也主张参阅这类计划进行。

因而本文接下来也会要点以时刻序列数据库的监控体系为主角来描绘。

二、「 监控体系 」重视的目标和目标都是什么?

一般咱们做「监控体系」都是需求做分层式监控的,也便是说将咱们要监控的火竞猜-根据时序数据库做监控,这里有超盛行的开源计划目标进行分层,一般首要分为:

  • 体系层:体系层首要是指CPU、磁盘、内存、网络等服内媚务器层面的监控,这些一般也是运维同学比较重视的目标;
  • 运用层:运用层指的是服务视点的监控,比方接口、结构、某个服务的健康状况等,一般是服务开发或结构开发人员重视的目标;
  • 用户层:这一层首要是与用户、与事务相关的一些监控,归于功用层面的,大多数是项目司理或产品司理会比较重视的目标。

知道了监控的分层后,咱们再来看一下监控的目标一般有哪些:

  • 推迟时刻:首要是呼应一个恳求所耗费的推迟,比方某接口的HTTP恳求均匀呼应时刻为100ms;
  • 恳求量:是指体系的容量吞吐能力,例如每秒处理多少次恳求(QPS)作为目标;
  • 过错率:首要是用来监控过错发作的份额,比方将某接口一段时刻内调用时失利的份额作为目标。

三、根据时序数据库的「 监控体系 」有哪些?

下面介绍几款现在业界比较盛行的根据时刻序列数据库的开源监控计划。

1、Prometheus

Promethes是一款2012年开源的监控结构,其本质是时刻序列数据库,由Google前职工所开发。

Promethes选用拉的形式(Pull)从运用中拉取数据,并还支撑Alert模块能够完成监控预警。它的功能十分微弱,单机能够消费百万级时刻序列。

架构如下:

从看图的左下角能够看到,Prometheus能够经过在运用里进行埋点后Pull到Prometheus Server里,假如运用不支撑埋点,也能够选用exporter方法进行数据搜集。

从图的左上角能够看到,关于一些守时使命模块,由于是周期性运转的,所以选用拉的方法无法获取数据,那么Prometheus也供给了一种推数据的方法,可是并不是推送到Prometheus Server中,而是中心建立一个Pushgateway,守时使命模块将metrics信息推送到火竞猜-根据时序数据库做监控,这里有超盛行的开源计划这个Pushgateway中,然后Prometheus Server再仍然选用拉的方法从Pushgateway中获取数据。

需求拉取的数据既能够选用静态方法装备在Prometheus Server中,也能够选用服务发现的方法(即图的中上方Service discovery所示)。

PromQL:是Prometheus自带的查询语法,经过编写PromQL句子能够查询Prometheus火竞猜-根据时序数据库做监控,这里有超盛行的开源计划里边的数据。

Alertmanager:是用于数据的预警模块,支撑经过多种方法去发送预警。

WebUI:是用来展现数据和图形的,可是一般大多数是与Grafana结合,选用Grafana来展现。

2、OpenTSDB

OpenTSDB是在2010年开源的一款分布式时序数据库,当然其首要用于监控计划中。

OpenTSDB选用的是HBase的分布式存储,它获取数据的形式与Prometheus不同,选用的是推形式(Push)。

在展现层,OpenTSDB自带有WebUI视图,也能够与Grafana很好的集成,供给丰厚的展现界面。

但OpenTSDB并没有自带预警模块,需求自己去开发或许与第三方组件结合运用。

能够经过下图来了解一下OpenTSDB的架构:

3、InfluxDB

InfluxDB是在2013年开源的一款时序数据库,在这里咱们首要仍是用于做监控体系计划。它搜集数据也是选用推形式(Push)。在展现层,InfluxDB也是自带WebUI,也能够与Grafana集成。

以上,便是我对微服务架构中「 监控体系」的一些考虑。

作者丨奎哥

来历丨不止考虑(ID:bzsikao)

dbaplus社群欢迎广阔技能人员投稿,投稿邮箱:editor@dbaplus.cn

火竞猜-根据时序数据库做监控,这里有超盛行的开源计划

Fintech技能沙龙—上海