写点什么

360 重磅开源性能监控平台 ArgusAPM

  • 2018-12-17
  • 本文字数:1444 字

    阅读完需:约 5 分钟

360重磅开源性能监控平台ArgusAPM

12 月 16 日,在 360 移动性能开放日上,360 手机卫士技术架构负责人卜云涛向我们介绍了 360 最新开源的性能监控平台 ArgusAPM。ArgusAPM 是 360 手机卫士客户端团队继 RePlugin 之后开源的又一个重量级开源项目。ArgusAPM 是 360 移动端产品使用的可视化性能监控平台,为移动端 APP 提供性能监控与管理,可以迅速发现和定位各类 APP 性能和使用问题,帮助 APP 不断的提升用户体验。


GitHub 地址:https://github.com/Qihoo360/ArgusAPM

产品价值

  • 实时掌控应用性能

  • 降低性能定位成本

  • 有效提升用户体验

监控模块

ArgusAPM 目前支持如下性能指标:


  • 交互分析:分析 Activity 生命周期耗时,帮助提升页面打开速度,优化用户 UI 体验;

  • 网络请求分析:监控流量使用情况,发现并定位各种网络问题;

  • 内存分析:全面监控内存使用情况,降低内存占用;

  • 进程监控:针对多进程应用,统计进程启动情况,发现启动异常(耗电、存活率等);

  • 文件监控:监控 APP 私有文件大小/变化,避免私有文件过大导致的卡顿、存储空间占用等问题;

  • 卡顿分析:监控并发现卡顿原因,代码堆栈精准定位问题,解决明显的卡顿体验;

  • ANR 分析:捕获 ANR 异常,解决 APP 的“未响应”问题。

ArgusAPM 特性

  • 非侵入式


无需修改原有工程结构,无侵入接入,接入成本低。


  • 无性能损耗


ArgusAPM 针对各个性能采集模块,优化了采集时机,在不影响原有性能的基础上进行性能的采集和分析。


  • 监控全面


目前支持 UI 性能、网络性能、内存、进程、文件、卡顿、ANR 等各个维度的性能数据分析,后续还会继续增加新的性能维度。


  • Debug 模式


独有的 Debug 模式,支持开发和测试阶段、实时采集性能数据,实时本地分析的能力,帮助开发和测试人员在上线前解决性能问题。


  • 支持插件化方案


在初始化阶段进行设置,可支持插件接入,目前 360 手机卫士采用的就是在 RePlugin 插件中接入 ArgusAPM,并且性能方面无影响。


  • 支持多进程采集


针对多进程的情况,我们做了相应的数据采集及优化方案,使 ArgusAPM 即适合单进程 APP 也适合多进程 APP。


  • 节省用户流量


ArgusAPM 使用 wifi 状态下上传性能数据,这样避免了频繁网络请求带来的耗电问题及用户流量的消耗。

ArgusAPM 项目结构图


整体架构分为两部分:一是左边蓝色的部分:性能采集模块,一是右边的绿色部分:Gradle Plugin 模块。


下面分别针对这两部分做简单的介绍:


1.性能采集模块


该模块总共分为五个 Module,并最终生成三个 aar 文件,即:


argus-apm-main.aar:APM 项目的核心业务模块


argus-apm-aop.aar:AOP 代码的织入模块


argus-apm-okhttp.aar:采集 OKHTTP 网络性能


其中之所以拆分那么多的模块,是为了能够让我们可插拔式的去使用里面的功能,例如,如果我项目中没有使用 OKHTTP 相关的功能,那么我们就可以关闭相应的依赖。


2.Gradle Plugin 模块


该模块主要具备两个作用:


支持 AOP 编程,方便 ArgusAPM 能够在编译期织入一些性能采集的代码;


通过 Gradle 插件来管理依赖库,使用户接入 ArgusAPM 更简单。



最终,我们在接入 ArgusAPM 的时候,只需要简单的应用插件即可,而不需要再单独的去依赖各个 aar 文件。

如何使用

如果您想快速的接入 ArgusAPM,请参考《三分钟快速接入ArgusAPM》,依照文章指引,快速接入;


如果您想了解更多的 ArgusAPM 的使用技巧,请参考《详细接入教程》


如果您想参查看官方的 Sample,进而了解具体的用法,请查看《Sample》;


如果您在接入 ArgusAPM 的过程中遇到问题,请阅读《FAQ》


具体详情参见:


https://github.com/Qihoo360/ArgusAPM/wiki

使用现状

未来规划

支持更多的性能指标


完善 DC 平台分析维度


提升用户体验


2018-12-17 07:0010407

评论 4 条评论

发布
用户头像
文档简单浏览了一遍,目前支持的功能貌似有限,比如小程序,还有 Java 后端的如何接入在文档没找到;不过大方向正确的,期待中国诞生越来越多的APM产商;国内有没哪家的日志与监控可以媲美 Datadog 的,推荐推荐。。
2018-12-19 13:03
回复
用户头像
真心怕,不知不觉安装个360全家桶!!!
2018-12-17 19:49
回复
🤣🤣🤣
2020-05-05 10:35
回复
没有更多了
发现更多内容

清明节特辑 |记忆存储、声音还原、性格模仿……AI可以让人类永生吗?

华为云开发者联盟

AI 语音合成 清明节 对话机器人 VR/AR

定义边缘计算架构需考虑的三个方面

边缘计算

那些我磕过的音视频项目总结

梅芳姑

用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化

华为云开发者联盟

HBase 元数据 数据迁移 数据备份 Snapshot

单片机异常复位后如何保存变量数据

不脱发的程序猿

嵌入式 单片机 4月日更 硬件研发 单片机异常复位

如何实现微信8.0爆炸和烟花表情特效

梅芳姑

程序员面试指北:如何更高效的准备面试

邴越

Java 面试 求职 招聘

Serverless 可观测性的过去、现在与未来

阿里巴巴云原生

Serverless 容器 开发者 云原生 调度

SCF—BSS3.0的“公路网”

鲸品堂

工具 框架搭建 流式计算框架

重磅官宣:Nacos2.0 发布,性能提升 10 倍

阿里巴巴云原生

Java 容器 微服务 云原生 应用服务中间件

Rust从0到1-所有权-引用和借用

rust 引用 所有权 借用

OpenTelemetry 简析

阿里巴巴云原生

容器 开发者 云原生 k8s 监控

2021年Android面经分享,赶紧收藏!

欢喜学安卓

android 程序员 面试 移动开发

融云推出超值套餐包,音视频20万分钟免费享

融云 RongCloud

业务随行:用户的网络访问策略还能这么玩

华为云开发者联盟

网络 通信 安全组 IP地址 业务随行

8x Flow 业务建模法(一):你能分清业务和领域吗?

胡皓

领域驱动设计 DDD 架构设计 事件风暴 业务建模

MySql数据库列表数据分页查询、全文检索API零代码实现

crudapi

全文检索 API crud crudapi 列表查询

Netty HashedWheelTimer 时间轮源码详解

Yano

Java 架构 Netty

在npm发布自己的组件

空城机

JavaScript 大前端 npm 4月日更 自定义组件

Kubernetes 稳定性保障手册 -- 可观测性专题

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

flink流计算可视化web平台

无情

sql 流计算 flin

实时数据仓库的发展、架构和趋势

网易数帆

数据仓库 实时计算 实时数仓 iceberg 批流一体

自己搭建一个语音聊天室

anyRTC开发者

ios android 音视频 WebRTC RTC

如何美化 GitHub 个人主页?

彭宏豪95

GitHub 写作 markdown IT 4月日更

Java开发8年,40W年薪被别人叫垃圾?请你们不要口嗨了,好好去刷题吧!

Java架构追梦

Java 架构 面试 金三银四 年薪40W

Hexo + Material + Github 搭建博客

U2647

博客 4月日更

融云X-Meetup南京站 探讨实时通信架构的高质量设计

融云 RongCloud

二次元界福音:MakeGirlsMoe创建动漫人物

不脱发的程序猿

GitHub 开源 4月日更 二次元 MakeGirlsMoe

软件测试分类体系,系统学习

程序员阿沐

软件测试 测试工程师 黑盒测试 白盒测试 测试类型

NAC公链主打应用而生的NA(Nirvana)公链有什么过人之处?

区块链第一资讯

短视频编辑:基于ExoPlayer可实时交互的播放器

梅芳姑

360重磅开源性能监控平台ArgusAPM_开源_卜云涛_InfoQ精选文章