工作经验分享-vivo链路监控

vivo 数据库与存储平台的建设和探索 数据库与存储平台产品主要分为 2 层。底层是数据库和存储产品,包括关系型数据库、非关系型数据库和存储服务三大块。上层主要是工具产品,包括提供的数据库和存储、统一管控的研发和运维平台、数据传输服务、运维白屏化工具,还有一些 SQL 审核,SQL 优化,数据备份等产品。工具产品主要以自研为主,下面一层的数据库和存储产品我们会优先选用成熟的开源产品,同时也会在开源产品的基础上或者纯自研一些产品,以更好地满足业务发展。 阅读详情

0. 监控
    1. 监控系统:一个监控系统应该至少有三类输出:紧急警报,工单,日志
    2. 为了更好的满足用户的需求,我们搭建了一套一体化监控系统,从硬件,网络,服务,应用全覆盖链路监控
        1. 紧急警报
            1. 检测中心:配置检测规则(自配/统一)进行检测
            2. 告警中心:对异常信息进行分发/收敛到具体用户
            3. 智能预警能力(研发中):根据历史记录发生异常趋势快速通知用户避免异常问题发生
        2. 工单
            1. 故障管理平台:对所有故障工单进行同意管理
            2. 故障定位能力(研发中):根据发生异常快速定位到异常发生点
        3. 监控场景能力(采集、计算、存储、分析)
            1. 基础监控:覆盖主机、容器各项基本指标,硬件层面到各个指标发生异常都可以第一时间进行探查
            2. 拨测监控:网络联通行,服务可达性监控
            3. 通用监控:覆盖服务各种自定义维度监控,满足各种自定义场景监控
            4. 调用链: 服务调用监控,JVM指标监控(具备鹰眼各项基本功能)
            5. 日志监控(SLS): 使用log agent进行日志收集,并对异常日志进行分析
    3. 一个监控系统能力评价
        1. 准确,稳定,延迟,覆盖面,告警能力,数据分析能力
1. 调用链    
    1. 背景  
        vivo互联网发展速度较快,应用相互依赖较多,故障发生问题难以定位,为了更好的支持业务飞速发展,开始组建调用链团队进行研发工作,之后整体框架进行不断演进。  
        调用链系统研发理论基础是《Drapper, A Large_Scale Distribute System Tracing infranstructure》,参考业界较为成熟的监控系统,不限于鹰眼(EageEye),分布式服务跟踪系统(SGM),实时应用监控平台(CAT),Zipin,Pinpoint,SkyWalking,博睿等。后面参考SkyWalking的埋点方式进行埋点采集
    2. 架构
        1. 架构概览
            


        2. 演进 
            1. 计算存储层演进(Flink + ES -> kafkaStream/kafka/Druid)
                1. flink/ES
                    1. 稳定:低数据可以短时期保持数据平稳计算输出,但是大量计算,长时间会触发Flink内存缺陷,导致反复重启失败(必然造成短时间延迟),并且延迟会导致产生无数据告警或者告警丢失;
                    2. 延迟:flink流计算时间窗口处理数据,分钟粒度需要double时间输出存储,总体延迟3分钟
                    3. 资源:flink属于较重框架,适用于复杂计算场景。监控场景属于单一场景,造成部分资源浪费
                    4. 瓶颈:ES写入达到瓶颈(扩集群,切模块),流量不能长远发展
                    5. 架构统一:除调用链场景,通用监控使用kakfaStream + druid 抗住大流量数据,为保证架构统一
                2. KafkaStream、kakfa、druid
                    1. 稳定:kakfaStream 只对上报数据进行格式转换,可以长时间稳定运行
                    2. 延迟:摄入时间延迟(1分钟~5秒钟层级);告警延迟可以达到分钟级别
                    3. 资源:Druid预处理压缩,节省存储资源;Kafka只对格式进行转换,所占资源较低
                3. 切换后的局限性
                    1. 查询延迟
                        1. Druid查询性能不如ES,同一请求在Druid查询效果较差
                            1. 将查询时间打散,大查询切成小查询
                            2. 将存储切dataSource
                            3. 增加提供查询的节点   

   
2. 核心领域概念(Trace、span)  
    1. Trace:相同业务逻辑的调用请求经过的分布式系统完整链路
        1. 使用traceId 标志某一次调用,分布式唯一,串联整个链路,因为某次调用场景会规避逻辑分支,所以不能完整反应trace链路,只有相同的业务逻辑多次请求调用触达的链路,合成后才算一个完整的trace链路
    2. Span:某一次局部请求调用
        1. 一次调用会产生多个Span,span会组成一个不完整的trace,Span需要标记本次调用所在调用链路,以及所在链路所在的链路层级,SpanID同一层级原子自增,跨层级以 . 拼接,如 1.1,1.2属于同一层级,1.2,1.2.1属于跨层级调用


    
3. 调用链采集逻辑   
    1. vivo调用链系统定位是服务层监控,是vivo互联网监控体系中的重要一环,像服务异常,rpc调用耗时,慢SQL等都是基本的监控点。如果埋点采集的数据需要满足调用耗时监控,那么至少在RPC调用及慢SQL监控场景下,将以AOP的形式来实现埋点数据采集。vivo调用链除JVM的指标采集使用java.lang.management.ManagmentFactory,其他都类似以AOP形式来实现,以为为伪代码
    2. 
4. 基本技术原理    
    1. TraceId(30位)    
    2. 全链路透传能力
        1. 跨进程:比如HTTP请求我们可以将数据放入HTTP请求的header中,DUBBO调用可以放到RPCContext中往后传递,MQ场景可以放到消息头中;
        2. 跨线程池的数据传递是无法做到对业务代码入侵的,vivo调用链Agent是通过拦截ThreadPoolExecutor的加载,通过字节码工具修改线程池的ThreadPoolExecuator的字节码来实现的
    3. javaagent
        1. javaagent是一个JVM参数,调用链通过这个参数实现类加载的拦截,修改对应类的字节码,插入数据采集逻辑代码
            1. javaagent参数使用
            2. 了解JDK的instrumentation机制(premain方法,ClassFileformer接口)及MANIFES.MF文件中关于Premain-Class参数配置
            3. 字节码工具使用(ByteBuddy)
            4. 类加载隔离技术原理及应用
5. 调用链的难点与挑战
    1. 数据量大
        1. 采集
            1. 链路概率采集(万一采集)
            2. 全量采集异常链路帮助定位问题
            3. 提高主机链路采集比例(丢弃DB,中间件链路)
        2. 计算
            1. 监控数据呈指数式增长
            2. 增加核数已经达到集群分布式瓶颈
            3. 数据切分逻辑,按组件维度进行计算
        3. 存储
            1. 已经达到摄入瓶颈
            2. 分dataSource、切换Druid
        4. 稳定性
            1. 监控数据异常突增
        5. 延迟性
            1. 数据延迟
            2. 告警延迟
    2. 对数据挖掘
        1. 异常数据挖掘
        2. 故障快速定位   
          

vivo软件类秋招笔试复盘:从操作系统到Android编程题全解析 在移动终端软件开发中,操作系统、网络协议与数据结构是笔试考核的三大基石。理解进程调度、TCP状态迁移、Linux权限等底层原理,不仅是应对大厂校招的基础,更是终端产品工程师排查问题、优化性能的必备能力。从通用技术价值来看,扎实掌握这些概念能帮助开发者快速定位崩溃、分析网络异常,并设计高效的应用架构。实际工程场景中,无论是Android应用开发、驱动BSP适配,还是AI推理部署,都依赖对这些知识的灵活运用。本文以vivo软件类秋招笔试题为例,复盘选择题中的高频考点(如Handler机制、Binder通信、SQ 阅读详情

相关推荐

移动端信用风控模型落地实践:纯离线AI在Android端的全链路实现

信用风险评估是金融智能的核心基础能力,其本质是通过数值特征间的非线性关系建模用户违约概率。传统依赖云端API的方案面临数据合规、响应延迟与网络依赖三重瓶颈,而端侧AI凭借本地化推理、低延迟反馈和隐私原生设计,正成为GDPR、《个人信息保护法》等强监管环境下的关键技术路径。本文聚焦TensorFlow Lite在中低端安卓设备上的深度适配,详解int8量化稳定性、LRP可解释性反向传播、隐私优先特征工程(如确定性哈希、分段聚合编码)及真机兼容性攻坚,覆盖从CS230理论公式到央行合规初审的完整闭环。适用于信贷

angou6476的博客 318

vivo 调用链 Agent 原理及实践

一、项目背景 2017年,vivo互联网研发团队认为调用链系统对实际业务具有较大的价值,于是开始了研发工作。3年的时间,调用链系统整体框架不断演进……本文将介绍vivo调用链系统 Agent 技术原理及实践经验。 vivo调用链系统的研发,始于对 Google的《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》这篇经典文章的学习,我们调研了行业内相关的系统:鹰眼(EagleEye)、分布式服务跟踪系统(SGM)、实时应用监

vivo互联网技术 1668

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1404

vivo Trace 监控追求极致的建设历程

作者:vivo 互联网服务器团队- Zhang Yi 当前vivo的应用监控产品Vtrace经常遇到用户反馈某个Trace链路信息没法给他们提供到实质的帮肋,对此团队一直在持续完善JavaAgent的采集。经过不断增加各类插件的支持,同时想方设法去补全链路信息,但一直还是无法让用户满意。面对这样的困

fenfenfen520a的博客 148

智能座舱音频系统集成与调试:从芯片选型到音质优化实战

在智能座舱域控制器架构中,音频系统已从简单的功放加扬声器演进为SoC、数字音频总线、外部DSP与多通道功放协同的复杂子系统。TDM总线的时隙分配、PDM麦克风阵列的信号完整性,以及AEC回声消除算法如何与硬件协同,直接决定多音区体验和语音交互的可靠性。工程实践中,音频调试的关键在于先理顺供电、接地、时钟与数据路由,再针对功放削波、采样率失配、TDM slot错位等典型问题进行系统性排查。从芯片选型到系统级指标验收,只有将音频链路视为整车电子电气架构的一个协同整体,才能真正实现从“响”到“好听”的跨越。本文结

weixin_30162121的博客 370

神经网络:初学者指南(专业版)

神经网络是一种受生物大脑启发的计算模型,由多层互连的人工神经元组成。本文从生物神经元结构出发,介绍了感知器模型、激活函数、网络架构(输入/隐藏/输出层)等基础概念,并详细阐述了前向传播、反向传播、损失函数和优化器等核心训练机制。同时涵盖了CNN、RNN等常见架构,以及过拟合、梯度消失等关键挑战,最后概述了神经网络在计算机视觉、NLP等领域的广泛应用。全文系统性地梳理了神经网络的基础理论和实践要点,为初学者提供了清晰的学习路径。

weixin_42107409的博客 1786

vivo服务端监控架构设计与实践

一、业务背景 当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的复杂性。 当核心业务出现了问题影响用户体验,开发人员没有及时发现,发现问题时已经为时已晚,又或者当服务器的CPU持续增高,磁盘空间被打满等,需要运维人员及时发现并处理,这就需要一套有效的监控系统对其进行监控和预警。 如何对这些业务和服务器进行监控和维护是我们开发人员和运维人员不可忽视的重要一环,这篇文章全篇大约5000多字,我将对vivo服务端监控的原理和架构演进

vivo互联网技术 2981

Android14到Android16源码移植中的Bluetooth模块规范适配指南

本文详细解析了从Android14到Android16源码移植过程中Bluetooth模块的规范适配挑战,重点介绍了Android.bp配置差异及常见编译报错解决方案。针对代码规范检查、final字段声明、静态方法优化等核心问题提供实用修复方法,帮助开发者高效完成版本升级适配工作。

fire9的博客 254

vivo统一告警平台建设与实践

作者:vivo互联网服务器团队-Chen Ningning一、背景一套监控系统检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人。vivo监控系统1.0时代各个监控...

weixin_45583158的博客 795

DDR March系列算法整理

一

不吃鱼的猫的博客 1万+

【100%通过率】华为od机试C卷【贪吃的猴子】Java&Go 实现

一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者未尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。第一次获取香蕉为行的开头,第二次获取为行的末尾,因此最终根数为4+3 =7。全部获取所有的香蕉,因此最终根数为1+2+3 = 6。第二行为数组numbers的值每个数字通过空格分开。1:简单题目,两个指针分别指向头尾,逐个对比即可。第一行为数组numbers的长度。第三行输入为N,表示获取的次数。

MISAYAONE的博客 1439

Node.js 应用全链路追踪技术——[全链路信息获取]

随着 Nodejs 对大前端技术栈的渗透,开发场景越来越多,如小程序、H5、BFF、工具链,同时和微服务外部系统交互多,如数据库场景 MySQL,Mongodb,Redis、RPC的分布式异构语言服务调用 Java dubbo, Go Grpc。面对这些复杂的场景,我们需要全局视角的错误追踪、问题定位和性能诊断。

vivo互联网技术 533

Ubuntu-22.04安装VMware虚拟机并安装Windows10

最近在研究虚拟机,主要集中在KVM、Virtualbox和VMware这三种虚拟机上。前面我已经研究了前两种虚拟机的安装和使用方式,这篇文章介绍3兄弟中最后一个虚拟机安装和使用方式。Virtualbox虚拟机安装和使用KVM虚拟机安装和使用相比于前两种,VMware的安装方式最麻烦,但是综合体验下来我感觉流畅度最好。如果你确实有在Linux上使用VMware虚拟机的需求,那不妨跟着我看下去吧。1、gcc版本和内核版本一定要匹配上,否则会出各种错误。

jiexijihe945的博客 4118

vivo Pulsar 万亿级消息处理实践(2)-从0到1建设 Pulsar 指标监控链路

在可以动态配置Prometheus采集所有线上正在运行的服务指标之后,由于Prometheus的指标是基于protobuf协议进行传输的,并且Prometheus是基于go编写的,所以为了适配Java版本的adaptor,我们基于Prometheus和go提供的指标格式定义文件(remote.proto、types.proto和gogo.proto)生成了Java版本的指标接收代码,并将protobuf格式的指标反序列化后写入消息中间件。在Pulsar平台建设初期,提供一个稳定、低时延的监控链路尤为重要。

Apache Pulsar 208

你的小龙虾 OpenClaw 还很笨?快给它装上这几个核心技能(OpenClaw 必装skills整理)

🦞 刚装小龙虾OpenClaw? 本文分享一些OpenClaw必装技能,从视觉理解到智能学习,让它从“会聊天”变“会干活” 🚀

XiaoqiangClub的博客 871

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vivo基于Paimon的湖仓一体落地实践

摘要:本文整理自 vivo 互联网大数据专家、Apache Paimon Committer 徐昱老师在 Flink Forward Asia 2024 流式湖仓专场(一)中的分享。本次分享基于 vivo 的实际案例,展示在构建现代化数据湖仓过程中的一些关键决策和技术实践,包括组件选型、架构设计、性能优化以及数据迁移等方面的探索。内容分为以下几个部分:组件选型及架构离线加速流批链路统一消息组件平替...

Ververica的博客 967

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vivo数据库与存储平台的建设和探索

本篇文章介绍vivo平台的建设背景、已经建成的能力、建设过程中的一些思考和探索。

vivo互联网技术 435

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

vivo 海量基础数据计算架构应用实践

本文介绍了vivo在万亿级数据增长驱动下,基础数据架构建设的演进过程,在实时和离线计算过程中,如何基于业务发展,数据质量,计算成本等方面的挑战,构建稳定,可靠,低成本、高性能的双活计算架构。

vivo互联网技术 1910

[面试官,你坐好],今天我给你吹下卡顿监控

比如用户在看股票,正常60秒刷新一次,可到了60秒,触发了刷新但是刷新处理逻辑耗时较长,导致新的数据在下一个60秒之前的第59秒才回来,用户基本无感知,主要说的是内部耗时的问题,这种情况可以粗略的理解为微观卡顿。首先,我认为卡顿产生的原因主要是某些逻辑处理时间超出了我们的预期阈值,这些耗时操作影响了页面的刷新,当刷新的频率和速度(60帧/s)低于我们的预期时,就会产生我们理解的卡顿。比如用户点击了登录,预期是得到登录成功/失败的反馈,可现在没有页面刷新,实际的刷新耗时超出了预期,这就是直观的卡顿。

1 205

vivo软件类笔试复盘:题型分布、编程题思路与备考指南

秋招笔试是技术类岗位筛选的第一道关卡,通常覆盖算法基础、编程能力与岗位相关技术栈。以Android开发方向为例,笔试不仅考察数据结构与算法,如动态规划、滑动窗口等经典问题,还会深入JVM、多线程、Handler消息机制、Binder IPC等移动端核心知识。掌握这些技术原理,不仅能提升笔试通过率,更能为后续面试中的源码追问和系统设计题打下基础。vivo软件类笔试的题型包括选择题、编程题和主观设计题,涉及Java、Android、网络、操作系统等多个模块,备考时需要结合岗位方向进行针对性复习。本文基于真实笔试

weixin_33904756的博客 348

2026年企业AI员工手机怎么选?剪流AI员工手机实测分享

2026年企业AI员工手机的选型,核心看三点:AI是否集成于系统底层而非外挂软件、能否覆盖从拓客到客户保护的完整闭环、客户资产是否沉淀在企业云端而非员工私人微信。本文以剪流AI员工手机为实测样本,拆解其在中小私域团队场景下的落地表现,供决策者参考。

Anchor368的博客 340

智取流量,效赢增长-拨测和融合流量管理业务赋能实践

在飞速发展的互联网信息化时代下,抓住并充分利用“流量”将为业务增长带来“泼天”富贵,已成为共识。如何通过真实、海量的数据打造一个集成本、质量、效率于一体的融合流量管理平台,也成了各行各业的关注焦点,本文通过”拨测“与“融合流量管理”两个维度,来分享vivo在流量管理领域的一些实践和探索。

vivo互联网技术 823

闲鱼运营效率倍增:自动化工具如何重构二手交易管理流程

在二手交易平台运营中,卖家常常面临三大效率瓶颈:每日重复操作占用大量时间、运营决策缺乏数据支持、人工操作难以保持一致性。xianyu_automatize作为一款开源自动化工具,通过技术手段将这些重复性工作转化为系统自动执行的任务,让卖家能够专注于更具价值的选品和客户服务环节。 ## 突破效率瓶颈:二手交易的三大运营痛点 ### 破解时间黑洞:从机械劳动中解放双手 大多数闲鱼卖家每天需要花费1

gitblog_00968的博客 299

2022-1月报

虽然现在市面上移动端的跨平台开发工具开发出来的App性能都和原生有一定的差距,但还是有他们自己的优势,并不是所有公司都能长期承担起原生App开发与维护的成本,这也是他们能长期存在的理由。经过多年发展,智能家居已成为重要赛道,具有4000亿美元价值的市场,吸引了各路玩家涌入,且涵盖不同类型的巨头。既有中国移动、中国电信等传统运营商,又有小米、华为等手机厂商,也有百度、阿里等互联网巨头,同时还有海尔、美的等家电巨头,也涌现出欧瑞博、云米等众多创新企业,整个智能家居赛道展现出百花齐放的局面。

天空24的专栏 1566
上一篇: 对象的一生
下一篇: 什么是幂等?幂等如何解决
陌逸_逺
博客等级 码龄9年 13粉丝 49原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值