从0开始学微服务
胡忠想
微博技术专家
立即订阅
16289 人已学习
课程目录
已完结 42 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 微服务,从放弃到入门
免费
模块一 入门微服务 (10讲)
01 | 到底什么是微服务?
02 | 从单体应用走向服务化
03 | 初探微服务架构
04 | 如何发布和引用服务?
05 | 如何注册和发现服务?
06 | 如何实现RPC远程服务调用?
07 | 如何监控微服务调用?
08 | 如何追踪微服务调用?
09 | 微服务治理的手段有哪些?
10 | Dubbo框架里的微服务组件
模块二 落地微服务 (14讲)
11 | 服务发布和引用的实践
12 | 如何将注册中心落地?
13 | 开源服务注册中心如何选型?
14 | 开源RPC框架如何选型?
15 | 如何搭建一个可靠的监控系统?
16 | 如何搭建一套适合你的服务追踪系统?
17 | 如何识别服务节点是否存活?
18 | 如何使用负载均衡算法?
19 | 如何使用服务路由?
20 | 服务端出现故障时该如何应对?
21 | 服务调用失败时有哪些处理手段?
22 | 如何管理服务配置?
23 | 如何搭建微服务治理平台?
24 | 微服务架构该如何落地?
模块三 进阶微服务 (8讲)
25 | 微服务为什么要容器化?
26 | 微服务容器化运维:镜像仓库和资源调度
27 | 微服务容器化运维:容器调度和服务编排
28 | 微服务容器化运维:微博容器运维平台DCP
29 | 微服务如何实现DevOps?
30 | 如何做好微服务容量规划?
31 | 微服务多机房部署实践
32 | 微服务混合云部署实践
模块四 展望微服务 (4讲)
33 | 下一代微服务架构Service Mesh
34 | Istio:Service Mesh的代表产品
35 | 微博Service Mesh实践之路(上)
36 | 微博Service Mesh实践之路(下)
阿忠伯的特别放送 (4讲)
阿忠伯的特别放送 | 答疑解惑01
阿忠伯的特别放送 | 答疑解惑02
微博技术解密(上) | 微博信息流是如何实现的?
微博技术解密(下)| 微博存储的那些事儿
结束语 (1讲)
结束语 | 微服务,从入门到精通
从0开始学微服务
登录|注册

07 | 如何监控微服务调用?

胡忠想 2018-09-06
与单体应用相比,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。
在讲述如何监控微服务调用前,首先你要搞清楚三个问题:监控的对象是什么?具体监控哪些指标?从哪些维度进行监控?下面就从这三个问题开始,一起来看看如何监控微服务调用

监控对象

既然要监控,那么要监控哪些对象呢?根据我的实践经验,对于微服务系统来说,监控对象可以分为四个层次,由上到下可归纳为:
用户端监控。通常是指业务直接对用户提供的功能的监控。以微博首页 Feed 为例,它向用户提供了聚合关注的所有人的微博并按照时间顺序浏览的功能,对首页 Feed 功能的监控就属于用户端的监控。
接口监控。通常是指业务提供的功能所依赖的具体 RPC 接口的监控。继续以微博首页 Feed 为例,这个功能依赖于用户关注了哪些人的关系服务,每个人发过哪些微博的微博列表服务,以及每条微博具体内容是什么的内容服务,对这几个服务的调用情况的监控就属于接口监控。
资源监控。通常是指某个接口依赖的资源的监控。比如用户关注了哪些人的关系服务使用的是 Redis 来存储关注列表,对 Redis 的监控就属于资源监控。
基础监控。通常是指对服务器本身的健康状况的监控。主要包括 CPU 利用率、内存使用量、I/O 读写量、网卡带宽等。对服务器的基本监控也是必不可少的,因为服务器本身的健康状况也是影响服务本身的一个重要因素,比如服务器本身连接的网络交换机上联带宽被打满,会影响所有部署在这台服务器上的业务。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学微服务》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(22)

  • 金hb.Ryan 冷空氣駕到
    主要分几块,接口性能、微服务性能、日志汇总,接口性能参考鹰眼自研了一套全链路系统也类似pinpoint,微服务性能基于dubbo做了扩展可以全盘监控,日志采用solrflume做统一日志,然后每块数据作为元数据放入hadoop和storm做历史汇总和实时分析,后面计划加入数据挖掘和数据分析做智能监控:)

    作者回复: 自研方案能够满足自己需求就可以

    2018-09-07
    16
  • snakorse
    使用skywalking框架做apm的路过

    作者回复: skywalking是一款优秀的支持java语言的监控系统

    2018-09-06
    9
  • andyXH
    目前我们业务主要使用 Dubbo ,故我们采用 Dubbo-Monitor 监控 dubbo 接口相关数据。并采用 Grafana 展示数据。对于第三方接口数据,我们将调用信息发送 Kafaka,然后服务端分析。我们的业务为提供支付服务,所以全局维度我们会监控支付接口请求量,错误率等。而从接口维度,我们会监控相关对接支付通道的成功率,掉单率等。

    作者回复: 嗯,错误率是个很重要的业务指标

    2018-09-07
    3
  • eason2017
    我们的系统是网关系统,是客户端接口请求的入口,在此我们做了如下维度:接口http/https状态,接口的SLA,接口的TPS。这几个维度。网关是基于openresty做的改造,所以,这些数据都可以通过lua脚本记录在共享内存当中,以供Prometheus拉取,通过Granfanna来展示。

    老师,目前会出现一个问题,就是如果某一台网关机器重启,那么Granfanna的展示图上面就是不正确的了,是通过差值来画图的,刚好重启为零,那么做差值就是负值了,请问老师,您有什么画图的方法可以规避这种情况吗?

    谢谢🙏

    作者回复: 我理解是采集点的频率问题吧,如果没数据的话用前一个点的数据

    2018-09-06
    3
  • 梦想是星空
    有开源的,可用于生产的监控系统吗?

    作者回复: 有的,专栏后面会讲zipkin和pinpoint

    2018-09-06
    2
  • 幻想
    后面会介绍微服务监控的框架吗??

    作者回复: 有专门一章对比开源监控框架

    2018-09-06
    2
  • 桂浩晋
    请问您说的PB对象是protocol buffers吗?

    作者回复: 是的

    2018-09-06
    1
  • Mac Kwan
    胡老师,为什么没有谈谈专门给我们程序猿看的错误信息的数据采集分析调试呢

    作者回复: 服务追踪系统其实能起到这个作用,后面专栏会讲

    2018-09-06
    1
  • oddrock
    问老师个问题,做服务监控时,是否必须事先要求先制定服务日志的规范和系统日志的规范,包括格式规范、文件位置规范等,让各个微服务去遵守?

    作者回复: 是的,日志必须符合规范,位置也是

    2018-09-06
    1
  • godtrue
    我们的是基础架构部提供的:
    1:UMP 方法性能、可用率、调用量、JVM、业务报警、定时执行、机器存活等监控
    2:MDC 单机得各种指标监控,CPU/IO/网络流入流出/延迟/磁盘等都都有
    3:CAP 容器的监控类似MDC
    4:JSF RPC的监控,有调用链的监控,类似UMP
    5:JIMDB 缓存的监控
    6:DBS 数据库的监控
    2019-05-21
  • 周鸿轩
    与监控系统比较相关的一般还会有一套自动报警服务~
    2019-05-17
  • Xiao
    数据采集有什么好的方案推荐么,数据采集尽量不侵入业务代码!
    2019-02-28
    1
  • Tony
    new relica通过selenium脚本监控
    还有contrast监控安全性
    公司在转型微服务,暂时没有metrics监控,后续考虑用istio,service自带了 普罗米修斯监控
    2019-02-22
  • dingwood
    阿忠老师,请教个调用链的问题,一个企业里有各种平台的系统,C,JAVA,.net和其他脚本开发的应用,这种场景选用什么调用链的组件啊?
    2018-12-20
  • 小猪
    请问zabbix可以作为微服务监控使用吗?我刚开始做运维!属于入门级别

    作者回复: 都可以,不过建议graphite和grafana的组合

    2018-11-03
  • 有渔@蔡
    老师,你们公司的日志规范,格式规范,位置规范,能分享一下吗?谢谢

    作者回复: 这一块各公司规范不同,基本是老一套约定俗成的,约定好不同日志名以及日志种类和每一种种类的格式

    2018-11-02
  • 波波安
    项目使用的dubbo实现的微服务化。用pingpoint做的链路监控。

    Pinpoint-Collector:收集各种性能数据
    Pinpoint-Agent:和自己运行的应用关联起来的探针
    Pinpoint-Web:将收集到的数据显示成WEB网页形式

    HBase Storage:收集到的数据存到HBase中

    其他的也有维护同事写的一些脚本对服务进程状态做监控

    日志收集采用的elk开源组件。

    2018-10-12
  • 莲花
    用jmx做采集是否合适?
    2018-09-16
  • Len
    老师,正如专栏正文中最后一张图显示,假如我们现在已经有了各个接口的 QPS 数据,那么在实际监控报警中该怎么使用呢?每个接口上线前做一个压测确定一个 QPS 基准,然后看每个接口是否超过阀值来报警?

    作者回复: 这个QPS不一定准确,可以采用性能或者接口慢速比(比如接口超过1秒的比率)作为报警指标

    2018-09-07
  • feimeng0532
    用户端监控,也属于接口监控吧,只是有可能聚合接口。。。
    2018-09-07
收起评论
22
返回
顶部