开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

自定义跟踪架构:Slack 高效解决通知问题

作者:Rafal Gancarz

  • 2023-08-07
    北京
  • 本文字数:1122 字

    阅读完需:约 4 分钟

自定义跟踪架构:Slack高效解决通知问题

Slack利用其自定义的跟踪架构来协助排查通知发送问题。该跟踪架构的帮助下,他们解决通知问题的速度提高了 30%,而且减少了将问题升级给开发团队的次数。该架构还简化了分析管道,并为数据科学团队解锁了新的应用场景。

 

消息通知是 Slack 用户体验的关键组成部分。然而,由于通知流横跨 Slack 平台的许多组件,包括服务器端和客户端,所以要对客户体验团队收到的问题进行排查,有时候并不容易。开发团队经常不得不花费好几天的时间,查看多个具有不同日志记录后端、不同日志记录格式的系统。



图片来源:https://slack.engineering/tracing-notifications/

 

之前,Slack 创建了一个自定义的SlackTrace跟踪架构,并使用它来跟踪日常的消息传递。他们用它跟踪了 1%的客户端请求。接下来,该公司决定构建自己的跟踪解决方案,因为他们发现,没有一个现成的第三方解决方案能完全满足他们的需求。

 

为了跟踪消息通知,团队识别出值得注意的事件并确定了属性映射,从而实现流和跟踪的映射。他们决定将通知跟踪与消息请求跟踪分开。这样,他们就可以支持通知流的 100%采样,从而满足 Slack 客户体验团队的要求。

 

通知跟踪改进了问题归类和调试。客户体验团队的成员自己就可以使用跟踪数据来了解出错的位置,不需要求助开发团队就可以解答客户的疑问。这个新功能也为 iOS 和 Android 工程师开始使用Grafana来监控移动应用程序中的通知发送提供了帮助。最后,数据科学团队从跟踪数据中获得了洞察。他们通过漏斗分析来加深对通知打开率的理解,并利用历史通知跟踪数据来识别应用程序中的 Bug 和工具代码。

 

Slack 高级软件工程师Suman Karumuri将跟踪的好处总结如下:

将产品分析数据建模为跟踪,可以在整个复杂的技术栈中以一致的数据格式提供高质量的数据。此外,内置的跟踪数据会话化免除了额外对跟踪数据进行去重和会话化的任务,简化了分析管道。

 

SlackTrace 架构由一个 Go Web 服务器应用程序和一个 Go 消费者服务组成,前者负责向Apache Kafka发布跟踪 span 事件,后者负责将事件持久化到实时存储(ElasticSearch)和数据仓库中。后端服务使用ZipkinJaeger工具库来报告 span 事件,并转换为内部 span 表示,而桌面和移动应用程序可以直接使用 span API。



图片来源:https://slack.engineering/tracing-at-slack-thinking-in-causal-graphs/

 

Slack 选用了一种比较简单的 span 表示,这使得他们的解决方案更加灵活,不用紧紧围绕请求和网络跟踪来开展。Span 的结构简单,数据可以存储在单个表中,并且支持多种查询选项,工程师可以从中提取他们需要的数据来回答特定的问题。

 

原文链接:

https://www.infoq.com/news/2023/06/slack-notification-tracing/


相关阅读:

Slack实时消息处理架构,更新、更快、更稳定

Slack工程师如何解决最常见的移动开发痛点

2023-08-07 08:009321

评论

发布
暂无评论
发现更多内容

Spring Boot + WebSocket 实时监控异常

程序员大彬

Java springboot

Java高手速成 | JSP MVC模式项目案例

TiAmo

mvc java; jsp

疫情大环境下科技互联网公司开源节流降本增效

laofo

研发效能 降本增效 开源节流

【FAQ】申请运动健康服务验证环节常见问题及解答

HarmonyOS SDK

HMS Core

Flomesh Ingress 使用实践(二)TLS 进阶

Flomesh

HTTP ingress Pipy

天翼云以10.2%份额位列中国公有云IaaS+PaaS市场第三

天翼云开发者社区

用 NFTScan 的角度解析 Yuga labs NFT 项目系列

NFT Research

NFT BAYC

安全可信| 首批+先进!天翼全栈混合云一举斩获三项可信云评估

天翼云开发者社区

WorkPlus即时通讯软件,专注于企业信息安全可靠的企业IM

BeeWorks

一体化移动办公平台,让政企工作更轻松、更便捷

BeeWorks

泼辣修图2023官方网页版入口在哪里?

茶色酒

泼辣修图2023

AI时代的信息技术部怎么改革?

FN0

小程序 超级app

高效管理,让工作事半功倍

石云升

极客时间 2月月更 技术领导力实战笔记

面试官:什么是双亲委派模型?

王磊

java面试

可变二维码,玩转“码”上时代

旺链科技

区块链 区块链技术 区块链溯源

《流浪地球2》的现实倒影(一):从量子计算机到MOSS

脑极体

量子计算机 小苔藓 流浪地球 MOSS

数据结构-Hash常见操作实践

杨充

专访三维空间雷成老师 | 原来水墨画风格的3D建筑动画可以如此惊艳……

Renderbus瑞云渲染农场

瑞云渲染 3D建筑动画 三维空间

利用 Addax 异构迁移数据到 Databend

Databend

疫情时代的宠儿:抗生素行业,今后何去何从

前嗅大数据

大数据 数据分析 网络爬虫 抗生素

开年直播 | 博睿数据创始人兼CTO对话InfoQ,聊聊2023年重要战略技术趋势:可观测性

博睿数据

可观测性 博睿数据 媒体声音

如何理解DevOps?

老张

DevOps 软件工程

架构杂谈——互联网系统架构演进

小小怪下士

Java 程序员 后端 架构设计

DataEase 启动异常如何解决:Access denied for user 'root'@'xx.xx.xx.xxx' (using password YES)

搞大屏的小北

DataEase

一文读懂SCADA系统的组件功能及应用

2D3D前端可视化开发

组态软件 工业组态软件 web组态软件 SCADA

跨境SaaS企业“会议营销"实战:立足商机注定平庸,300分客户转不转“MQL"?

B Impact

基于SLO告警(Part 2):为什么使用MWMB方法

Grafana 爱好者

可观测性 Grafana Prometheus SRE SLO

数字先锋| 枣庄政务云全新升级,居民办事体验upup!

天翼云开发者社区

什么是渲染农场,渲染农场一般怎么收费?

Renderbus瑞云渲染农场

云渲染农场 渲染农场

周鸿祎瞄准中小微客户提供免费SaaS,思路:50万企业×2万年费=100亿补贴

B Impact

时序电路建模基础

timerring

FPGA

自定义跟踪架构:Slack高效解决通知问题_业务架构_InfoQ精选文章