用户您好!请先登录!

分类目录链路跟踪

Dapper,大规模分布式系统的跟踪系统

概述

当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。

Dapper–Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的。当然Dapper设计之初,参考了一些其他分布式系统的理念,尤其是Magpie和X-Trace,但是我们之所以能成功应用在生产环境上,还需要一些画龙点睛之笔,例如采样率的使用以及把代码植入限制在一小部分公共库的改造上。

阅读更多

Full Link Tracking Learning for Go Microservices

在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪。 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链。 该ID称为CorrelationID,你可以用它来跟踪整个请求并获得各个调用环节的性能指标。简单来说有两个问题需要解决。第一,如何在应用程序内部传递ID; 第二,当你需要调用另一个微服务时,如何通过网络传递ID。

什么是OpenTracing?

现在有许多开源的分布式跟踪库可供选择,其中最受欢迎的库可能是ZipkinJaeger。 选择哪个是一个令人头疼的问题,因为你现在可以选择最受欢迎的一个,但是如果以后有一个更好的出现呢?OpenTracing可以帮你解决这个问题。它建立了一套跟踪库的通用接口,这样你的程序只需要调用这些接口而不被具体的跟踪库绑定,将来可以切换到不同的跟踪库而无需更改代码。Zipkin和Jaeger都支持OpenTracing。

阅读更多

业务监控平台(CAT)那点事

纵观我们部署在基础设施当中并始终保持运作的全部测量机制,监控系统无疑是重要性最高的机制之一,建立一套坚实的监控系统来针对可能发生的灾难加以警示,我们就有机会迅速启动灾难响应方案或者着手排除复杂的性能故障,这对于任何规模的企业而言都极具巨大的实际价值。

纵观国内,我们常使用的监测技术平台包括开源与商用运维两类(国外商用运维软件太贵,就不考虑了)

一、开源工具介绍

  • Zabbix
  • Nagios
  • Ganglia
  • Grafana
  • Zenoss
  • Open-falcon
  • Cacti
  • 天兔开源监控(只适用于mysql、redis、oracle)

二、商用运维监控系统篇

  • 监控宝
  • 听云
  • 360网站服务监控
  • 阿里云监控
  • 百度云观测

这里不是讨论这些开源工具或者平台如何如何,这不是重点,这些都是非常成熟化的产品,更重要的是公司发展到一定程度之后,不但对IT运维提出更强需求,越来越多的是对业务监控的需求,以前了解过一些CAT,但很遗憾没有在公司推行起来,整理一下相关资料,也算是对这件事情有个交待。

阅读更多

链路追踪那点事

在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而错失了止损的黄金时机。

而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题,还可以在新人加入后台团队之后,让其清楚地知道自己所负责的服务在哪一环。

除此之外,如果某个接口突然耗时增加,也不必再逐个服务查询耗时情况,我们可以直观地分析出服务的性能瓶颈,方便在流量激增的情况下精准合理地扩容。

链路追踪

“链路追踪”一词是在2010年提出的,当时谷歌发布了一篇Dapper论文,介绍了谷歌自研的分布式链路追踪的实现原理,还介绍了他们是怎么低成本实现对应用透明的。

阅读更多

美团全链路压测自动化实践

背景

境内度假是一个低频、与节假日典型相关的业务,流量在节假日较平日会上涨五到十几倍,会给生产系统带来非常大的风险。因此,在2018年春节前,我们把整个境内度假业务接入了全链路压测,来系统性地评估容量和发现隐患,最终确保了春节期间系统的稳定。

在整个过程中,我们意识到,全链路压测在整个系统稳定性建设中占有核心重要的位置,也是最有效的方案。结合实际业务节假日的频率(基本平均一个月一次),如果能够把它作为稳定性保障的常规手段,我们的系统质量也能够得到很好的保障。同时,为了解决周期常态化压测过程中人力成本高、多个团队重复工作、压测安全不可控,风险高等痛点,我们提出了全链路压测自动化的设想。

通过对压测实施的具体动作做统一的梳理,在压测各个阶段推进标准化和自动化,尽力提升全流程的执行效率,最终达到常态化的目标,如下图1所示:

图1-自动化落地整体思路

图1-自动化落地整体思路

阅读更多