当前位置:首页 > 闲鱼脚本 > 舆情治理方案整体设计基于现状问题,重新梳理和补充

舆情治理方案整体设计基于现状问题,重新梳理和补充

admin11个月前 (10-29)闲鱼脚本1115
微信号:xy916228
添加微信好友。 免费测试。
复制微信号

舆情治理方案整体设计

基于现状问题,重新梳理和补充的舆情治理体系如下图:

舆情治理方案整体设计基于现状问题,重新梳理和补充

线上舆情问题治理体系

下面会重点展开讲述的内容:

提升本地日志定位能力本地控制台日志补充

治理前期,大量业务日志进入了控制台日志,即便治理后将大量日志转入 tlog 日志,仍有部分日志流入控制台,如 Maven 引入独立模块和 插件包模块。此外,部分未知异常问题,如视频绿屏、黑屏等, 日志也提供了定位的可能性。

Log 模块提供了多种日志缓存类型,见 [1],可通过命令获取对应类型的日志。这里,我们在用户反馈的时候,分别将、和类型 读取并写入到本地文件,而后将 日志同 tlog 文件一起打包通过 AUS 上传至 OSS。

// LOG_ID_MAIN 主应用程序log,-t 设置日志上限 20000
adb logcat -d -v threadtime -t 20000

// LOG_ID_EVENTS 系统事件信息
adb logcat -d -b events -v threadtime -t 6666

// LOG_ID_CRASH 应用程序 crash 日志
adb logcat -d -b crash -v threadtime -t 6666

舆情治理方案整体设计基于现状问题,重新梳理和补充

.txt 内容

本地日志回捞能力

前面提到,由于在线命令推送成功率低且后台无命令缓存机制,所以闲鱼 App 本地日志回捞困难。为解决日志难以获取问题,舆情治理体系中设计了多种日志回捞策略,见下图所示。

舆情治理方案整体设计基于现状问题,重新梳理和补充

本地日志回捞策略

舆情治理方案整体设计基于现状问题,重新梳理和补充

本地日志下载查看流程

线上卡顿/ANR检测能力

线上用户反馈 ANR 并给出截图证明,因为没有卡顿日志,难以定位问题。

舆情治理方案整体设计基于现状问题,重新梳理和补充

线上用户反馈黑屏,无有效日志难以定位问题

页面卡死的另一种表现

技术方案现状

在闲鱼 App 的混合工程场景,依托 Emas 平台已实现 iOS 端卡顿检测, 端卡顿检测方案查看卡顿问题的监控与思考[2],这节主要讲述 端线上卡顿/ANR 检测。

在线下场景, 端卡顿/ANR 检测手段已经很成熟,普通卡顿检测方案有[3],ANR 检测可通过adb 查看 .txt 文件得到。然而在线上环境,以上卡顿检测方案就存在一定问题。

.txt 文件权限问题

在线上场景,为了监听识别是否发生 ANR 以及读取 ANR 内容,APP 需要监听 .txt 文件变化,并尝试读取 .txt 文件内容。监听文件的方案,在 6.0 及以后存在权限问题,大部分场景无法检测到 ANR

如以下代码执行在红米手机 11 上运行, 为 "", 的路径为 "/"

File mSystemTraceFile;

...
this.mSystemTraceFilePath = "/data/anr/traces.txt";
this.mSystemTraceFile = new File(this.mSystemTraceFilePath);
if (!this.mSystemTraceFile.exists()) {
String propSystemTraceFilePath = SystemPropertiesUtils.get("dalvik.vm.stack-trace-file");
...
this.mSystemTraceFile = new File(propSystemTraceFilePath);
...
}
...

检测原理和性能问题核心原理

舆情治理方案整体设计基于现状问题,重新梳理和补充

检测 500ms 卡顿

的核心原理是,设置 UI 线程的 . 字段,主线程每次处理消息均会执行 print 方法。

public void start() {
if (!mMonitorStarted) {
mMonitorStarted = true;
Looper.getMainLooper().setMessageLogging(mBlockCanaryCore.monitor);
}
}

.java[4]

public void setMessageLogging(@Nullable Printer printer) {
mLogging = printer;
}

public static void loop() {
...
for (;;) {
...
// This must be in a local variable, in case a UI event sets the logger
final Printer logging = me.mLogging;
if (logging != null) {
logging.println(">>>>> Dispatching to " + msg.target + " " +
msg.callback + ": " + msg.what);
}
...
}
}

.java

在 print 方法中时,触发 工作,即取消上一次异步线程延迟任务,重新触发一次延迟任务,延迟时间为 * 0.8f (假设要检测 500ms 以上的卡顿堆栈,则延迟时间为 400ms)。若 UI 任务发生卡顿(>),则延迟任务被执行,且在卡顿期间的获取主线程堆栈信息,之后在下一次 print 方法被执行的时候,若确认发生卡顿,则可把主线程堆栈信息当做卡顿堆栈记录上报。

@Override
public void println(String x) {
...
if (!mPrintingStarted) {
mStartTimestamp = System.currentTimeMillis();
mStartThreadTimestamp = SystemClock.currentThreadTimeMillis();
mPrintingStarted = true;
startDump();
} else {
final long endTime = System.currentTimeMillis();
mPrintingStarted = false;
if (isBlock(endTime)) {
notifyBlockEvent(endTime);
}
stopDump();
}
}

.java[5]

性能问题

在线上环境,大部分场景下并不会发生卡顿,但卡顿检测 SDK 会一直执行。可以发现 app 每一帧时间(16.6ms),UI 中的任务会执行多次,最终产生大量的无效字符串拼接操作和大量小对象碎片。特别的,在线上低端机或者 cpu 负载较高的场景下,app 性能会因此降低,影响用户体感。

logging.println(">>>>> Dispatching to " + msg.target + " " +
msg.callback + ": " + msg.what);

卡顿检测方案方案设计

针对 .txt 读取权限问题,可通过检测主线程 5s 卡顿当做 anr。针对 线上使用的性能问题,为降低延迟任务取消和触发频率,同时避免字符串对象频繁创建问题,必须放弃 . 的方案。重新思考为什么可以通过设置 . 检测卡顿?其满足 2 个条件:

闲鱼线上使用 帧回调代替 Task 方案,同时满足以上 2 个条件:

此外,为避免 方案延迟任务触发和取消的频率过高的问题,仅在帧回调处记录时间戳,不再取消延迟任务,但在延迟任务执行时判断是否发生卡顿,同时记录主线程堆栈。

假设 500ms 以上为卡顿,整体方案流程图如下:

舆情治理方案整体设计基于现状问题,重新梳理和补充

舆情治理方案整体设计基于现状问题,重新梳理和补充

定义 5s 以上卡顿为 ANR,为检测 ANR,同样通过 500ms 卡顿检测,并做卡顿堆栈聚合,当连续发生卡顿大于 5s 且堆栈信息不变,则认为发生 ANR。发生 ANR 时,记录当前设备 CPU 负载等信息。

检测效果

闲鱼首页卡片点击事件中故意制造 500ms 和 5s 卡顿查看卡顿检测结果。

// CardView61801.java

private void doOnClick(String redirectUrl, Map<String, String> trackParams) {
if (null == mCardBean) return;

try {
Thread.sleep(500);
// Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
...
}

查看检测结果

舆情治理方案整体设计基于现状问题,重新梳理和补充

舆情治理方案整体设计基于现状问题,重新梳理和补充

小结

以上是闲鱼 线上卡顿检测方案,线上已经运行超过 3 个版本,通过日志可发现用户反馈卡死、无反应、闪退、黑屏等现象都有可能是 ANR 造成。整体方案有以下特点:

主动发现问题能力

由于闲鱼 App 反馈入口较深,因此相比上亿用户而言,每日技术舆情反馈量占比偏低,以此可知技术舆情反馈量并不能准确反应线上质量情况。为此,我们通过监控埋点构建线上关键舆情问题和基础性能大盘,同时通过监控大盘主动发现线上重点待解决问题,加速线上舆情收敛速度和质量提升,流程图如下所示。

舆情治理方案整体设计基于现状问题,重新梳理和补充

主动发现问题流程图

监控大盘

舆情治理方案整体设计基于现状问题,重新梳理和补充

主动发现问题大盘示例

通过统计一段时间的舆情问题,得到关键舆情问题,以此添加监控埋点并构建线上报表。通过大盘数据得到线上问题发生量和重要归因,通过重点解决排名前几的归因,达到舆情问题快速收敛的目的。

除了 Crash、异常、性能等线上大盘,我们构建了 5s 卡顿监控、网络请求失败、慢请求、错误 toast 等基础监控大盘。

监控问题定位

基于大盘发现了问题,需要获取对应日志来定位问题,但问题对应的用户很可能并不会反馈舆情或反馈内容不是该问题,为此我们构建了实时日志查询以及本地日志批量回捞能力。

实时日志查询平台

舆情治理方案整体设计基于现状问题,重新梳理和补充

自建舆情追踪平台

针对关键监控问题,客户端增加对应的 SLS 实时日志,在自建舆情追踪平台获取用户的在线日志。平台支持用户名和时间查询,同时支持用户行为、用户异常、舆情日志类型的组合查询。

本地日志批量回捞能力

在线日志难以避免日志内容不足的问题,如基础日志、其他关键模块日志等,然而单个用户的本地日志回捞成功很低(原因见上文内容),为此构建舆情日志回捞平台,通过批量回捞的方式确保能获取到舆情问题某个用户的本地全量日志。

舆情治理方案整体设计基于现状问题,重新梳理和补充

舆情治理方案整体设计基于现状问题,重新梳理和补充

舆情治理方案整体设计基于现状问题,重新梳理和补充

总结和展望

经过治理,整体线上技术类舆情占比从10.5%降低至4.7%;基于主动发现问题和解决重点问题,每日上传图片失败数从10W+次降低至小于7K+次,其他数据不再罗列。

初步建立的闲鱼舆情治理体系如下所示:

此外,未来仍有很大的演进空间如下:

舆情治理方案整体设计基于现状问题,重新梳理和补充

闲鱼用户本地日志手动解析后的内存可视化举例

关键日志反向回捞用户日志

日志关联聚合查询

[1] :#24e33

[2]卡顿问题的监控与思考:

[3]:

[4].java:

[5].java:

闲不住?来闲鱼!

舆情治理方案整体设计基于现状问题,重新梳理和补充

PICK ME

闲鱼是阿里巴巴旗下品牌,是中国最大的闲置交易平台,于2014年成立至今,是继淘宝、天猫之后,阿里巴巴正在催生的第三个万亿级平台。

闲鱼技术部不断在驱动业务变革,通过创新追寻更多价值。从出版书籍、峰会发声,到开源专利、海外传播。闲不住,上闲鱼——技术团队对极致的探索与深耕是我们的底气。

立即加入

1、社招+校招客户端/服务端/前端/数据+算法/质量工程师

2、发简历给

3、您还可以在头条、知乎、掘金、、找到我们

扫描二维码推送至手机访问。

版权声明:本文由闲鱼监控助手发布,如需转载请注明出处。

本文链接:http://28rx.com/post/26.html

分享给朋友:

“舆情治理方案整体设计基于现状问题,重新梳理和补充” 的相关文章

闲鱼怎么回收来自京东e卡

闲鱼怎么回收来自京东e卡

闲鱼平台有责太析损众持溶个卡券回收的服务闲鱼,你想回收变之回烧乎级白浓与京东e卡可以在官方平台内够免氧最争缩进行交易,具体的方法如下:闲鱼版本:7.8.80演示手机:荣耀9X1、打开闲鱼ap住汉阶包着巴p闲鱼,点击页面上方的【分类】入口;2、进入里面点击【卡券回收】;3、点击【京东E卡】;4、选择要...

闲鱼app一直显示个1 (闲鱼app一键擦亮宝贝的技巧|闲鱼app一键擦亮怎样设置?)

闲鱼app一键擦亮怎样设置,闲鱼app中的宝贝总是卖不进来,可以设置一键擦亮提高宝贝的曝光度,该怎样设置呢,上方咱们就来看看闲鱼app一键擦亮宝贝的技巧,须要的好友可以参考下。闲鱼app如何一键擦亮宝贝,颁布宝贝一段期间不擦亮,曝光就少,擦亮后就会参与曝光,该怎样一键擦亮宝贝呢?上方咱们就来看看详细...

闭环生态是什么意思 (闭环生态才是闲鱼网页版入口隐没的主因)

闭环生态是什么意思 (闭环生态才是闲鱼网页版入口隐没的主因)

闲鱼网页版入口的隐没,关于泛滥闲鱼用户来说并不会太在意,无非就是顺应手机界面的各种操作而已,然而关于闲鱼店群玩家而言,这就象征着一种繁难、快捷的操作界面从此封锁,然而疑问一直能够得以处置的,所以当鱼游闲鱼助手产生之后,它的配置之一就是实在再现电脑端操作,很多人并不了解闲鱼为何要被动封锁掉网页版的入口...

骗子横行|闲鱼太不靠谱了|专骗闲鱼小白

骗子横行|闲鱼太不靠谱了|专骗闲鱼小白

网上的二手商品买卖体验好不好,原本是OK的。网上的二手商品买卖体验好不好?原本是OK的。 不过,随着各路人脉驻扎二手货买卖平台,市场乱象也就逐渐迸发。同时,由于二手买卖自身的个性,发生破绽、纠纷的或许性远远大于新商品的买卖,因此极大的不确定性(或许说诚信)不时在限度二手买卖在线市场的增长。其中,有...

最新版本下载安装 (最新版下载及经常使用教程|闲鱼助手apk)

最新版本下载安装 (最新版下载及经常使用教程|闲鱼助手apk)

闲鱼是一款十分受欢迎的二手实现买卖平台,然而在以及经常使用的环节中中,有时刻候会遇到一些发愁,比如找不到想要的商品,或是卖家和买家之间的交换不畅等等,为了更好地。闲鱼是一款十分受欢迎的二手实现买卖平台,然而在以及经常使用的环节中中,有时刻候会遇到一些发愁,比如找不到想要的商品,或是卖家和买家之间的交...

闲鱼卖家怎么参加免费送 (闲鱼你怎样颁布最新小宝贝|闲鱼小宝贝颁布最新教程)

闲鱼卖家怎么参加免费送 (闲鱼你怎样颁布最新小宝贝|闲鱼小宝贝颁布最新教程)

闲鱼是阿里巴巴个人旗下的二手实现买卖平台,用户可以在闲鱼上颁布最新小宝贝经过高价发售,下面是闲鱼宝贝颁布的详尽教程,减少群。闲鱼是阿里巴巴个人旗下的二手实现买卖平台,用户可以在闲鱼上颁布最新小宝贝经过高价发售。下面是闲鱼宝贝颁布的详尽教程。 一、登录闲鱼账 先,再关上手机上的闲鱼App,经常使用...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。