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

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

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

分享给朋友:

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

63岁湖北前首富,拿下“中国汽水第一股”

63岁湖北前首富,拿下“中国汽水第一股”

谁也没想到,仅用一年半的时间,现年63岁的湖北前首富、东星集团创始人兰世立就通过自己的霹雳手段,把一个70岁老牌汽水送上市闲鱼爬虫。 10月19日,武汉二厂汽水实控人兰世立公开表示,武汉二厂汽水的相关备案登记手续已经完成,港交所的审核也已经结束,这也意味着“中国汽水第一股”诞生闲鱼爬虫。 ˂img...

11拳!辅警徒手凿断金属护栏,救下轻生男子

11拳!辅警徒手凿断金属护栏,救下轻生男子

“松手闲鱼爬虫!让我跳下去……” ˂img src="http://28rx.com/zb_users/upload/2023-10-30/653f1a4299247.jpg" alt="11拳!辅警徒手凿断金属护栏 闲鱼爬虫,救下轻生男子"˃ 9月29日凌晨闲鱼爬虫,辽宁省鞍山市一栋居民楼窗外,发...

我在淘宝二手(闲鱼)上买的手机 他虚假发货 我退款了 后来申请淘宝介入了 但是已经快一个月

我在淘宝二手(闲鱼)上买的手机 他虚假发货 我退款了 后来申请淘宝介入了 但是已经快一个月

我二月底左右买的,拖到现在闲鱼。 这宣集攻绍且演象。 。说是北京开会的缘故,不能发就不能发,干麻就直接发个虚假培厂督排前哥单号上来闲鱼。原本是信任卖家的,结果时间快到的前几天,问了下为模何一直没有物流信息没回复我,在自动拨款且高预称混片留的前一天按了退款,隔一天(原本要自动拨款给卖家的子) ,他才回...

菜鸟下载安装 (菜鸟下载)

菜鸟手游为您提供海量适用的手机软件和好玩的手机游戏下载,一切app都是绿色安保的软件,下载繁难快捷,找精品手游就上菜鸟下载站.。LOL:狗熊的秘方!对线强势对手间接裸出厌恨锁链,无脑单杀对手 “小超梦偶遇小丑派克”过去就冲大哥,网友:接上去看超梦扮演...

妙笔生花创作挑战怎么发文章 (妙笔生花创作应战)

#妙笔生花创作应战##妙笔生花创作应战#闲鱼卖家经常使用指南闲鱼卖家会被套路吗,显然是会的,咸鱼有一类人,专门以,到手刀,的手段欺骗卖家,。阿龙行万里 妙笔生花创作应战 #妙笔生花创作应战##妙笔生花创作应战#闲鱼卖家经常使用指南闲鱼卖家会被套路吗?显然是会的。咸鱼有一类人,专门以“到手刀”的手段...

她用闲鱼一键付款英文 (她用闲鱼一键铺货软件兼职一年赚了十七万!)

她用闲鱼一键付款英文 (她用闲鱼一键铺货软件兼职一年赚了十七万!)

前不久,一位老友终于通知我她能买车的秘密,身在四线市区的她,月薪不过三千,基本就买不起车,所以她一没傍大款,二没啃父母,甚至连男友都没出一分钱,她就是用闲鱼一键铺货软件在下班之余搞兼职,用自己的身份证开了三个闲鱼卖家账号,从此,她每天卖货不止,订单始终,忙里忙外,最终仅去年一年期间,她就赚了十七万,...

发表评论

访客

看不清,换一张

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