NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

自定义跟踪架构: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:009052

评论

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

开发多年put、get、resize不知道,springcloud视频讲解

Java 程序员 后端

强势出击!21天肝完这份字节面试题后直接斩获字节offer

Java 程序员 后端

很全面!每天一分享互联网大厂Java面试真题,java菜鸟教程实例

Java 程序员 后端

必知必会JVM四-垃圾收集器介绍,linux驱动开发入门与实践

Java 程序员 后端

快速鸟瞰并发编程,-呕心沥血整理的架构技术【2】,分层展示的架构图

Java 程序员 后端

想进阿里、京东?这些多线程并发的技术要点你需要知道,Java程序员怎么优雅迈过30K+这道坎

Java 程序员 后端

并发编程专题三-JAVA线程的并发工具类,面试要掌握这几个关键点

Java 程序员 后端

应届生想要找到一份Java开发的工作,需要达到什么水平?

Java 程序员 后端

微服务网关与用户身份识别,JWT+Spring Security进行网关安全认证

Java 程序员 后端

快速上手Apache,java递归求阶乘原理

Java 程序员 后端

总结历年各大厂面试官传授的面试经验+阿里P8级架构师整理的Java高频核心知识点

Java 程序员 后端

年薪80W,Java高薪架构师成长背后血泪史,膜拜大佬

Java 程序员 后端

快醒醒吧!互联网大厂面试必问的JVM底层原理,你还搞不清楚

Java 程序员 后端

总是说spring难学?看完这些spring的注解及其解释,对你来说就是So-easy!

Java 程序员 后端

应“云”而生的 Java 框架,带你手撸红黑树

Java 程序员 后端

强哥说Java--Java 方法,kafka视频

Java 程序员 后端

微服务你得知道这些!从核心组件到远程调用方式以及HTTP通信方法

Java 程序员 后端

怎么用Redis分布式锁才能确保万无一失?,15个经典面试问题及答案

Java 程序员 后端

并发容器之BlockingQueue详解,深入linux内核架构中文pdf

Java 程序员 后端

并发编程专题四-原子操作和显示锁,java面试刷题

Java 程序员 后端

微服务架构陷阱:过渡设计和设计不足,2021年Java开发前景如何

Java 程序员 后端

怎么可能?面试会被Spring难住?Spring框架从入门到精通

Java 程序员 后端

怎样成为全栈工程师(Full Stack Developer)(1),已拿offer

Java 程序员 后端

怎样成为全栈工程师(Full Stack Developer),sqlproformysql使用教程

Java 程序员 后端

年末三面快手Java后端岗,没有刁难轻轻松松就拿下了意向书,分享面经

Java 程序员 后端

开门见山的问MySQL:InnoDB一棵B+树可以存放多少行数据

Java 程序员 后端

强哥说Java--Java 变量,java面试逻辑思维题及答案

Java 程序员 后端

彻底理解coookie、session、token,mybatis的动态sql执行原理

Java 程序员 后端

干货!使用Docker构建RabbitMQ高可用负载均衡集群,java面试题汇总及答案

Java 程序员 后端

快人一步!阿里爆款Java性能调优手册,源码,如何做到操作系统和并发同步结合

Java 程序员 后端

恕我直言,我怀疑你们并不会用 Java 枚举,java分布式架构面试题

Java 程序员 后端

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