Skip to content
akathink edited this page Dec 5, 2018 · 15 revisions

鉴于ArgusAPM部分代码采用了AJC编译器进行代码织入的功能,一些第三方的SDK可能为了安全性考虑做了一些加固处理或者禁止代码织入等限制,导致在接入的过程中可能会遇到各种奇葩的错误,因此我们建议:

  • 如果是第三方的SDK,请在gradle脚本里面exclude掉,具体请参考详细接入文档;
  • 如果exclude掉之后还会报错,请写一个报错的Demo并发送给管理员,发送之前,请先通知管理员;
  • 提issue,并把报错的上下文贴进去。

# 以下为一些常见的问题:

1. 接入ArgusAPM是否会对APP性能产生影响?

几乎没有影响,360的亿万级产品均在使用,请放心使用。

2. 是否可以接入自己的后台?

ArgusAPM目前允许两种方式进行使用:

  • 一是按照ArgusAPM官方文档进行接入,这时候无论是云规则的下发还是数据的上传都是用的360官方自己的服务器;
  • 另外一种方式是:如果用户只想使用ArgusAPM采集性能数据,采集到的数据想要上传至自己的服务器,那么可以按照如下操作:
  1. 针对想要实现ArgusAPM与自己的服务器的对接,我们提供了一个示例,可以参考项目源码中的argus-apm-cloud-dummy-impl模块;
  2. 单独创建一个Module并依赖argus-apm-cloud模块,实现ArgusAPM与自己服务器的对接;(我们提供了两个接口,只需要实现这两个接口就可以了,目前采用的是同步请求的格式)

3. 崩溃报在了com.argusapm.android包下,请问一定是ArgusAPM的错误吗?

因为ArgusAPM内部的部分功能采用了AOP代码织入,APK在构建的时候如果被这些AOP文件织入了相关的代码,将会有部分的APP代码在混淆的时候会被分配到该包下,请反混淆后确认是不是ArgusAPM引起的崩溃。

4. 如何查看本地采集到的数据?

请在文件系统里查看data/data/xxx_package_name/databases/apm.db

5. 性能的指标如何定义?

性能指标是通过云规则文件来进行配置的,如果想要定义卡顿的指标为:4500ms,则只需要更改云规则的文件里面的block_min_time为4500就可以了,其他的类似。

6. 为什么后台没有采集数据?

针对客户端数据采集,我们对上传规则做了限制,只有在Wifi状态网络状态有变化的时候才会去上传,对此我们建议多用几款测试机进行测试,当采集到了一定量的数据之后,断开WiFi,再打开WiFi进行上传即可。我们目前默认的规则是两个小时作为间隔进行上传,并且上传之后,在第二天方能看到后台相应的数据。

在上传之前也可以先查看一下本地的数据库是否采集到了相应的数据,以及数据量的多少,查看请参考FAQ的第四条,然后再进行断网重连上传,最后再查看本地的数据库是否还有这些数据,如果上传从成功的话,本地的数据库会做清空处理。

最后,后台数据显示会延迟到第二天才能查看。