• Stars
    star
    2,673
  • Rank 17,101 (Top 0.4 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Powerful, comprehensive (Android) application performance management platform. 360线上移动性能检测平台

ArgusAPM Logo

license Release Version

360开源又一力作——ArgusAPM移动性能监控平台

公告

由于公司业务调整及成本等原因,ArgusAPM停止支持服务端的免费接入服务。对于已经接入的产品不受影响(可以继续免费使用),只是不再新增了! 本项目是个技术类的开源项目,停止服务端接入不会对开源项目本身产生影响,之前的接入文档大家也可以在自己项目里做参考。

项目背景

ArgusAPM是360手机卫士客户端团队继RePlugin之后开源的又一个重量级开源项目。ArgusAPM是360移动端产品使用的可视化性能监控平台,为移动端APP提供性能监控与管理,可以迅速发现和定位各类APP性能和使用问题,帮助APP不断的提升用户体验。

产品价值

  • 实时掌控应用性能
  • 降低性能定位成本
  • 有效提升用户体验

监控模块

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

  • 交互分析:分析Activity生命周期耗时,帮助提升页面打开速度,优化用户UI体验
  • 网络请求分析:监控流量使用情况,发现并定位各种网络问题
  • 内存分析:全面监控内存使用情况,降低内存占用
  • 进程监控:针对多进程应用,统计进程启动情况,发现启动异常(耗电、存活率等)
  • 文件监控:监控APP私有文件大小/变化,避免私有文件过大导致的卡顿、存储空间占用等问题
  • 卡顿分析:监控并发现卡顿原因,代码堆栈精准定位问题,解决明显的卡顿体验
  • ANR分析:捕获ANR异常,解决APP的“未响应”问题

ArgusAPM特性

  • 非侵入式

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

  • 无性能损耗

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

  • 监控全面

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

  • Debug模式

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

  • 支持插件化方案

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

  • 支持多进程采集

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

  • 节省用户流量

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

ArgusAPM项目结构图

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

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

一. 性能采集模块

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

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

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

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

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

二. Gradle Plugin模块

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

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

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

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

如何使用

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

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

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

如果您在接入ArgusAPM的过程中遇到问题,请点击这里阅读《FAQ》,也可加入我们官方的QQ群,进行咨询。

使用现状

手机卫士 清理大师 手机助手 影视大全 花椒相机 360手游大厅
手机卫士 清理大师 手机助手 影视大全 花椒相机 游戏大厅

未来规划

  • 支持更多的性能指标
  • 提升用户体验

官方QQ群

ArgusAPM Logo

360移动技术微信公众号“奇卓社”

ArgusAPM Logo

License

ArgusAPM is Apache v2.0 licensed.

More Repositories

1

RePlugin

RePlugin - A flexible, stable, easy-to-use Android Plug-in Framework
Java
7,261
star
2

Atlas

A high-performance and stable proxy for MySQL, it is developed by Qihoo's DBA and infrastructure team
C
4,650
star
3

wayne

Kubernetes multi-cluster management and publishing platform
TypeScript
3,706
star
4

evpp

A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
C++
3,564
star
5

safe-rules

详细的C/C++编程规范指南,由360质量工程部编著,适用于桌面、服务端及嵌入式软件系统。
2,363
star
6

Quicksql

A Flexible, Fast, Federated(3F) SQL Analysis Middleware for Multiple Data Sources
Java
2,057
star
7

poseidon

A search engine which can hold 100 trillion lines of log data.
Go
1,966
star
8

QConf

Qihoo Distributed Configuration Management System
C++
1,865
star
9

hbox

AI on Hadoop
Java
1,727
star
10

phptrace

A tracing and troubleshooting tool for PHP scripts.
C
1,677
star
11

mysql-sniffer

mysql-sniffer is a network traffic analyzer tool for mysql, it is developed by Qihoo DBA and infrastructure team
C
845
star
12

huststore

High-performance Distributed Storage
C
823
star
13

doraemon

Doraemon is a Prometheus based monitor system
JavaScript
655
star
14

logkafka

Collect logs and send lines to Apache Kafka
C++
500
star
15

zeppelin

A Scalable, High-Performance Distributed Key-Value Platform
C++
399
star
16

tensornet

C++
316
star
17

qbusbridge

The Apache Kafka Client SDK
C++
292
star
18

360zhinao

360zhinao
Python
274
star
19

XSQL

Unified SQL Analytics Engine Based on SparkSQL
Scala
210
star
20

WatchAD2.0

WatchAD2.0是一款针对域威胁的日志分析与监控系统
CSS
206
star
21

zendAPI

The C++ wrapper of zend engine
C++
183
star
22

mongosync

mongosync is simple && useful tool to sync data between mongo replicaSet, it is developed by Qihoo's DBA and infrastructure team
C++
154
star
23

artdumper

从oat文件中dump出来dex的工具
C++
138
star
24

influx-proxy

influxdb HA
Go
128
star
25

kmemcache

linux kernel memcache server
C
126
star
26

XLearning-XDML

extremely distributed machine learning
Scala
123
star
27

simcc

A simple C++ common base library used in Qihoo 360
C++
116
star
28

nemo

A library that provide multiply data structure. Such as map, hash, list, set. We build these data structure base on rocksdb as the storage layer for Pika https://github.com/OpenAtomFoundation/pika .
C++
115
star
29

ngx_http_subrange_module

Split one big HTTP/Range request to multiple subrange requesets
C
107
star
30

blackwidow

A library implements REDIS commands(Strings, Hashes, Lists, Sorted Sets, Sets, Keys, HyperLogLog) based on rocksdb, as the storage layer for Pika https://github.com/OpenAtomFoundation/pika .
C++
99
star
31

QNAT

C
88
star
32

Mario

A Library that make the write from synchronous to asynchronous.
C++
78
star
33

Luwak

利用预训练语言模型从非结构化威胁报告中提取 MITRE ATT&CK TTP 信息
Python
68
star
34

mpic

A C++ embedded library of multiple processes framework developed and used at Qihoo360.
C++
50
star
35

nemo-rocksdb

Add TTL feature on rocksdb, and compatible with rocksdb
C++
44
star
36

dgl-operator

The DGL Operator makes it easy to run Deep Graph Library (DGL) graph neural network training on Kubernetes
Go
44
star
37

ironwill

Useful iOS components for your project. 健壮且有用的OC代码, 可以直接在你的iOS应用中使用.
Objective-C
37
star
38

elog

A erlang log nif
C++
28
star
39

rust-jsonnet

rust-jsonnet - The Google Jsonnet( operation data template language) for rust
Rust
24
star
40

zeppelin-gateway

Object Gateway Provide Applications with a RESTful Gateway to zeppelin
C++
23
star
41

zeppelin-client

Client Library for zeppelin
C++
21
star
42

luajit-jsonnet

The Google Jsonnet( operation data template language) for Luajit
C++
16
star
43

HTTPSLayer

PHP
16
star
44

CReSS

Cross-model Retrieval between 13C NMR Spectrum and Structure
Python
15
star
45

wayne-backend-plugins

Wayne backend plugins
Go
13
star
46

gpstall

Stall Postgres' insert command
C++
8
star
47

cloud-website

360 cloud official website
PHP
8
star
48

wayne-frontend-plugins

Wayne UI Plugins
TypeScript
7
star
49

SEEChat

一见多模态对话模型
Python
5
star
50

wiki

wiki for qihoo infrastructure team
2
star
51

se-office

se-office扩展,提供基于开放标准的全功能办公生产力套件,基于浏览器预览和编辑office。
JavaScript
1
star