1.Go在七⽜牛全链路路追踪中的实践 刘凯 七⽜牛云⼤大数据团队(Pandora)架构师

2.⾃自我介绍 INTRODUCTION • 刘凯,七⽜牛,⼤大数据Pandora团队成员 • 2015年年,加⼊入⽹网易易杭州研究院存储团队 ‣ ⼯工作⽅方向集中在对象存储,CDN,使⽤用GO开发的项⽬目 ๏ 对象存储多机房⽅方案 ๏ CDN移动端⽂文件上传下载加速 • 2018年年,加⼊入Pandora团队 ‣ ⼯工作⽅方向集中在存储引擎,APM和账号体系,使⽤用GO开发的项⽬目 ๏ 账号体系 ๏ 全链路路追踪

3.⽬目 录 CONTENTS ➢ 我眼中的GO ➢ Go在组内的应⽤用介绍 ➢ 全链路路追踪介绍 ➢ 七⽜牛全链路路追踪实现以及可视化展示 ➢ 七⽜牛全链路路追踪的GO最佳实践 ➢ 未来规划 ➢ 总结

4.我眼中的GO 结缘于15年年初,待过的两个团队对GO都推崇备⾄至,是组内主⼒力力的开发语⾔言。对于七⽜牛更更是全员⽤用 GO。 ➢ 并发:go关键字 ➢ 代码风格统⼀:go fmt ➢ 协程:超乎想象的轻量级 ➢ 协程间通信:channel ➢ 交叉编译,速度极快 ➢ 开源社区活跃

5.GO在组内的应⽤用 在Pandora我们⽤用GO做了了什什么 ➢ 强⼤的采集器器模块 采集器模块分为两部分:采集器Logkit和服务端SmartElf,两者均全部采⽤GO语⾔实现。采集器对⽂件⼤⼩较为敏感,经 过JAVA相⽐比,GO⼤大⼤大减少了了可执⾏行行⽂文件的⼤大⼩小。 ➢ ⼯作流 ⼯作流是⼀个数据接收、计算、导出的框架,把业务流程映射到页⾯上,将数据业务可视化。 重⽤七⽜内部⼤量GO开发框架,业务⾮常灵活,开发效率⾼,协程轻量量级 ➢ 基于底层存储引擎的各个应⽤用产品 ⽬前底层存储使⽤了开源的ES,ES采⽤JAVA实现。各个产品使⽤GO实现:安全,服务器监控,数据透视表,全链 路。。。

6.Why Tracing ⽇日常痛点 ⽇日志格式混乱 缺少服务拓拓扑 链路路性能分析 异常问题定位 …… 越来越多的项⽬目开发者想要简单有条理理的把控整个项⽬目运⾏行行情况

7.全链路路追踪介绍—起源 2010年年⾕谷歌发表了了关于内部⼤大量量使⽤用的Dapper系统的论⽂文:论⽂文地址 ⽬目标: 理理解系统⾏行行为,分析性能问题 要求: 低损耗,应⽤用透明,⼤大范围部署 概念:Span, Annotation, Trace 应⽤用:推断服务依赖关系 性能优化和监控 异常场景分析 应⽤用级别的流量量划分

8.全链路路追踪介绍—Opentracing Opentracing:开放式分布式追踪规范,2016年年底加⼊入CNCF, 提供平台⽆无关、⼚厂商⽆无关的API,使得开发⼈人员能够⽅方便便的添加 (或更更换)追踪系统。 关键字:Service Operation References 示意图

9.全链路路追踪介绍—业界产品 侵⼊入式: • ZipKin • Jaeger • Cat ⾮非侵⼊入式: • Pinpoint • SkyWalking

10.七⽜全链路路追踪—Tracing介绍 ⽬前全链路追踪已经正式对外提供服务。七⽜对外主要提供以下⼏⼤功能: ➢ ⽀支持Opentracing协议 ➢ ⽀支持侵⼊入式和⾮非侵⼊入式采集 ➢ ⽀支持可配的采样 ➢ 可视化的链路路分析 ➢ 服务拓拓扑展示 了解更多:https://developer.qiniu.com/insight/manual/5054/all-link-track-profile

11.七⽜全链路路追踪—架构 全链路路架构图

12.七⽜牛全链路路追踪—传输优化 Agent端如何在低损耗下⾼高效传输数据 ✦UDP/TCP ✦Thrift——Protobuf ✦ 压缩 ✦ 采样率 依托于GO便便利利的⽹网络服务开发和特殊的多平台⽀支持⼤大⼤大提⾼高开发效率 tips:依赖⽂文件名的跨平台编译 process_linux_386.go process_darwin.go process_windows.go

13.七⽜牛全链路路追踪—服务拓拓扑 如何产⽣生服务拓拓扑图 产品 ⼿手段 延迟 Jaeger/Zipkin Spark 1天 Pinpoint Hbase ⽆无延迟 Aliyun ⽹网关 服务间⽆无延迟 ⽅方案⼀一: 借鉴Jaeger Golang⼩小程序Cron调度 Type to enter a caption.

14.七⽜牛全链路路追踪—服务拓拓扑 ⽅方案⼆二: 引⼊入实时计算框架——Druid Druid通过数据预聚合的⽅方式,提供海海量量数据的快速查询,很契合服务拓拓扑的实现 Workflow ——> Kafka ——> Druid ——> Query

15.七⽜牛全链路路追踪—接⼊入成本 如何降低接⼊入成本 ✦ 优先⽆无侵⼊入⽅方式 ✦ 对于侵⼊入式,封装Opentracing SDK,或 者提供通⽤用框架 GOSDK:https://github.com/BourneD/pandora-go-sdk.git

16.七⽜牛全链路路追踪-可视化展示 快捷查询

17.七⽜牛全链路路追踪-可视化展示 链路路分析

18.七⽜牛全链路路追踪-可视化展示 服务拓拓扑 Type to enter a caption.

19.七⽜牛全链路路追踪—GO最佳实践 Jaeger监控Go的时序图

20.七⽜牛全链路路追踪—GO最佳实践 DEMO ➡ HTTP请求示例例

21.未来规划 现有架构⽬前已经能够很好的⽀撑全链路的业务需求,但随着后续业务量的快速增加,架构肯定也 会不断变化。 ➢ 和七⽜牛APM业务打通,⽀支持端到端监控 ➢ 优化存储结构,⽬目前⽇日均超过1亿条数据,搜索速度较慢 ➢ 优化采样⽅方式,异常监控不不计⼊入采样

22.总结 ๏ 随着opentracing进⼊CNCF,全链路在国内的普及程度越来越⼴ ๏ ⽽对于善于接受新事物的GO来说,使⽤全链路肯定是⾸当其冲 ๏ GO带来了开发效率的⼤⼤提升,⽽全链路带来了运维效率的⼤⼤提升

23.

go 链路追踪_Golang在七牛全链路追踪中的实践相关推荐

  1. 阿里广告技术最新突破:全链路联动-面向最终目标的全链路一致性建模

    ©作者 | 王哲 单位 | 阿里妈妈展示广告算法专家 研究方向 | 广告/推荐/深度学习/NLP 引言 深度学习时代的到来给搜推广业务带来了一波巨大的红利,一方面是深度学习模型带来的技术红利,另一方面 ...

  2. 全链路压测平台(Quake)在美团中的实践

    背景 在美团的价值观中,"以客户为中心"被放在一个非常重要的位置,所以我们对服务出现故障越来越不能容忍.特别是目前公司业务正在高速增长阶段,每一次故障对公司来说都是一笔非常不小的损 ...

  3. 阿里广告技术最新突破!全链路联动——面向最终目标的全链路一致性建模

    作者 | 王哲,阿里妈妈展示广告算法专家 整理 | NewBeeNLP 1. 引言 深度学习时代的到来给搜推广业务带来了一波巨大的红利,一方面是深度学习模型带来的技术红利,另一方面是GPU/NPU等硬 ...

  4. java跟全链路ui哪个好,什么是全链路UI设计师

    全链路UI设计师了解一下,看看如何成为UI设计师,什么又是全链路UI设计师? 首先我们先搞清楚UI设计师是什么?只有懂得了UI设计的知识才能更好的学习它,对此天津UI培训班一一为大家介绍一下! UI是 ...

  5. 前后端、多语言、跨云部署,全链路追踪到底有多难?

    作者|涯海 全链路追踪的价值 链路追踪的价值在于"关联",终端用户.后端应用.云端组件(数据库.消息等)共同构成了链路追踪的轨迹拓扑大图.这张拓扑覆盖的范围越广,链路追踪能够发挥的 ...

  6. Skywalking全链路追踪使用说明

    1.背景与需求: 随着业务规模的不断增大,系统的复杂度也越来越高,我们的软件架构也进入了分布式的阶段,服务按照不同的维度进行拆分,那么一次请求可能横跨多个服务模块.项目,依赖的中间件也越来越多,其中任 ...

  7. cat全链路监控_全链路监控(一):方案概述

    为什么需要监控,在哪些层次上监控,监控什么 监控是为复杂的分布式系统服务的,它收集跨不同的应用,不同的服务器的系统行为信息,可通过采样收集所需的性能指标,帮助分析性能问题,并在指标超过正常值时报警. ...

  8. 全链路压测自动化实践

    背景 境内度假是一个低频.与节假日典型相关的业务,流量在节假日较平日会上涨五到十几倍,会给生产系统带来非常大的风险.因此,在2018年春节前,我们把整个境内度假业务接入了全链路压测,来系统性地评估容量 ...

  9. Mercury:唯品会全链路应用监控系统解决方案详解

    姚捷,唯品会平台架构部高级架构师,加入唯品会前有超过 10 年的金融/保险互联网技术架构和团队管理经验,擅长以产品思维设计和构建系统.现专注于互联网基础架构,负责唯品会全链路监控/分析平台的开发,管理 ...

最新文章

  1. 使用卷积神经网络预防疲劳驾驶事故
  2. C++ [](){} 匿名函数 lambda表达式
  3. bzoj 4602: [Sdoi2016]齿轮
  4. Thinking in java 笔记一
  5. WAIC2020开幕在即,第四范式亮点抢先看
  6. mybatis 使用merge into
  7. Column count doesn't match value count at row 1 原因
  8. 【IOS】Target membership
  9. redis setnx原子性_不支持原子性的 Redis 事务也叫事务吗?
  10. Site error: the ionCube PHP Loader needs to be installed.解决办法
  11. 人人开源搭建后台管理系统
  12. mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
  13. 8家供应商、2300个特效镜头,ftrack助力《侍神令》协同制作
  14. 【加法器】——模拟电路设计简单的二进制数加法器
  15. java学习网络编程遇到异常java.net.SocketException:Software caused connection abort: socket write error
  16. Matplotlib可视化图表
  17. 正则表达式判断是否为纯数字
  18. linux基本功系列之pwd命令实战
  19. JavaScript基础语法_JavaScript内置对象
  20. css3小狗滑滑梯动画js特效

热门文章

  1. 浏览器退出全屏快捷键
  2. matlab 语音识别为文字,语音识别(Speech Recognition)是让机器通过识别和理解过程把语音信号转变为相应的文本...
  3. Gartner技术成熟曲线详解
  4. BAPI_PO_CREATE1 批量创建采购订单(可一个PO采购多个材料)
  5. LeetCode之报数(简单 模拟 递归)
  6. apollo 阿波罗使用
  7. IDEA启动tomcat找不到应用程序(localhost:8080)
  8. 织梦后台模块管理空白不显示的解决方法
  9. 我的三维mandelbulb制作fractal成长之路[续]
  10. 论文 PPT 画图导出 PDF 注意事项