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

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

admin1年前 (2023-10-29)闲鱼脚本1146
微信号: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

分享给朋友:

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

二手交易平台闲鱼的商品到底如何呢?

近年来,随着互联网的发展和电子商务的兴起,人们的购物方式也发生了翻天覆地的变化。 作为拥有庞大用户群的二手交易平台,闲鱼已经成为很多人买卖商品的首选。 那么,闲鱼的产品到底怎么样呢? 首先,闲鱼拥有极高的流动性。 无论是二手手机、衣服、家居用品,还是各种稀奇古怪的小物品,你都能在闲鱼找到。 在闲鱼上...

江苏省海门废钢价格下调30元,有你吗?

江苏省海门废钢价格下调30元,有你吗?

10月22日12:00起,马钢澄星总部各类废钢价格下调30元,重废毛最高价2520元,圆冲头2720元,废钢最高价2750元。钢筋切割,低硫废钢2690元,链条冲头2490元,红冲头2490元。 最大材质为2710,最大工业重废毛料为2720,最大工业重废II毛料为2530,最大冷板毛料为2430,...

闲鱼上的演唱会门来自票可信吗?可以用秒拍

闲鱼上的演唱会门来自票可信吗?可以用秒拍

闲鱼演唱会门票代拍并不可信,如果没抢到票还很想去看的话建议直接找黄牛买,现在票务管制严格,代拍只是黄牛开出来的另类方式,比如接单了但是如果涨价了就可以说没抢到给你退款了闲鱼。闲鱼是阿里巴巴旗下闲置交易平台App客户端(iOS版和安卓版)闲鱼。会员只要使用淘宝或支宽动付宝账户登录,无需经过复杂的开店流...

闲鱼买家不确认收货,我能拿到钱吗?闲鱼上新提醒脚本

闲鱼买家不确认收货,我能拿到钱吗?闲鱼上新提醒脚本

闲鱼买家故意特观够不确认收货解决办法:1、如果买家已经签收了,但是型婷入断讲婷教落备不确认收货,在没有申请退效领喜汉境低素血清货的情况下,再过一个星期淘宝会把钱打到卖触参张氧行家支付宝里闲鱼。2、如果买家已经申请退货了,那就让闲鱼客服介入,调查是否是无理由的退货或者是恶意退货闲鱼。如果有退货,具体细...

闲鱼刷我想要到底有没有用 (闲鱼刷我想要的方法及软件代刷的价钱|–|赚大钱网)

大家可以看看闲鱼的网站,可以看到首页前几位都是我想要有很多的商品,有人会说了,刷我想要刷粉丝刷人气等等会被降权吗?这个疑问问得好啊,问到了一切卖家的担忧点上了,我想说,卖家们有竞争对手吗?每一个发售中的商品,只需你一搜查,就会出现N多个的同款,这些是不是卖家间的竞争对手?假设你花点钱帮对方去代刷这个...

FastGithub手机版 (FastGithub|轻松处置GitHub访争辩题|一款.Net开源的稳固牢靠Github减速神器)

文章阅读阅读3.8k次,点赞24次,收藏24次,📣读完这篇文章里你能收获到,如何经常使用FastGithub处置Github无法访问疑问,了解FastGithub的上班原理,github减速器。📣读完这篇文章里你能收获到 文章目录 一、前言 作为开发者,会经常去上看开源名目,以及保养推送自己在...

发表评论

访客

看不清,换一张

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