Temporal 监控分析性能治理

news/2024/7/7 20:04:57

Task

监控

性能

优先级

完成度

系统负载能力high
压力测试middle
任务积压middledoing
仪表盘分析middle
组建优化middle
业务细粒度监控middletodo

目前的风险点及后续规划思考

  1. 目前没有一个地方能直观看到 Temporal Server 到底能扛多大业务量(属黑盒)
  2. 实时的积压情况,什么时候该扩容,什么时候该调整
  3. 业务接入后无法及时判定是否正常(客诉、报警)
  4. 无细粒度的监控(请求率、错误率、延迟)

延迟优化

1、系统负载能力(吞吐量):每秒完成的工作流数量=> 状态转换操作(持久化写入)

2、请求时间性能调优

  • History
    • 分片锁的延迟:Temporal 使用分片在历史 Pod 间划分命名空间工作流历史的责任,每个 Pod 管理一组分片。每个工作流历史记录属于单个分片。在创建或更新工作流历史记录之前,必须获取片锁。分片数量越大,锁争用越少
    • 解法:调整 Shards 数
  • Matching
    • 计划延迟:请求任务的时间和处理任务的时间之间将会存在延迟
      • 同步匹配:从其内存中向其传递任务。如果内存中某个任务的时间过长,则该任务将刷新到持久性数据库
      • 异步匹配:持久性数据库的任务需稍后再次加载以交给轮询器
    • 解法:调整内存和 Pods 数

监控报警

1、任务积压

  • taskQueue 级别的监控(metrix 指标)

2、压力测试

  • 一般数据库为瓶颈
  • 关注指标:schedule_to_start_latency

仪表盘统计分析

  • 服务指标
    • 对服务使用情况的基本可见性,允许查看跨服务、名称空间甚至操作的请求率:service_requests, service_errors和service_latency
      • 包含字段:类型、操作和名称空间
  • 持久性指标
    • 每个操作的请求率、错误率或延迟:persistence_requests, persistence_errors和persistence_latency
  • 工作流执行统计
    • 工作流执行完成的总体统计:workflow_success, workflow_failed, workflow_timeout, workflow_terminate, workflow_cancel      

业务监控

  • 改写 Worker.Option 代码,配置默认采集项
  • 封装 SDK 统一接入

http://lihuaxi.xjx100.cn/news/1888354.html

相关文章

【2023传智杯-新增场次】第六届传智杯程序设计挑战赛AB组-ABC题复盘解题分析详解【JavaPythonC++解题笔记】

本文仅为【2023传智杯-第二场】第六届传智杯程序设计挑战赛-题目解题分析详解的解题个人笔记,个人解题分析记录。 本文包含:第六届传智杯程序设计挑战赛题目、解题思路分析、解题代码、解题代码详解 文章目录 一.前言二.赛题题目A题题目-字符逆序B题题目-小红的ABCC题题目-小…

独热编码和词向量的简单理解

把单词用向量表示,是把深度神经网络语言模型引入自然语言处理领域的一个核心技术。想要让机器理解单词,就必须要把它变成一串数字(向量)。下面介绍的 One-Hot Encoding(One-Hot 编码)和 Word Embedding &am…

信息学奥赛一本通 1014:与圆相关的计算C语言非C++

1014&#xff1a;与圆相关的计算 #include <stdio.h>int main() {// 声明并定义圆周率为常量&#xff0c;其值为3.14159const double PI 3.14159;// 声明一个双精度浮点数变量double r;// 从输入读取一个值并赋给rscanf("%lf", &r);// 计算并打印圆的直径…

企业考勤技术,这个方法很靠谱!

在当今社会&#xff0c;随着科技的不断进步&#xff0c;人脸识别技术在各个领域得到了广泛应用。其中&#xff0c;三维人脸考勤系统作为一种高效、准确的考勤解决方案&#xff0c;正在成为企业管理和人力资源管理的重要工具之一。 与传统的二维人脸识别相比&#xff0c;三维人脸…

Django去访问web api接口Object of type Session is not JSON serializable

解决方案&#xff1a;settings.py中加入 &#xff1a;SESSION_SERIALIZER django.contrib.sessions.serializers.PickleSerializer 事由&#xff1a;Django去访问一个web api接口&#xff0c;两次连接之间需要通过Session()保持身份验证。 def sendCode(request): mobile jso…

YOLOv5独家原创改进:SPPF自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

💡💡💡本文原创自研创新改进:SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响 强烈推荐,适合直接使用,paper创新级别 💡💡💡 在多个数据集验证涨点,尤其对存在多个尺…

Java高级技术探险之旅-并发编程的艺术-深入理解泛型-函数式编程的乐趣

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

Windows mysql5.7 执行查询/开启/测试binlog---简易记录

前言&#xff1a;基于虚拟机mysql版本为5.7&#xff0c;增量备份测试那就要用到binlog… 简述&#xff1a;二进制日志&#xff08;binnary log&#xff09;以事件形式记录了对MySQL数据库执行更改的所有操作。 binlog是记录所有数据库表结构变更&#xff08;例如CREATE、ALTER…