腾讯mini项目-【指标监控服务重构-会议记录】2023-07-06

news/2024/5/18 21:27:10 标签: kafka, clickhouse, grafana, prometheus, go

7/6 会议记录

image-20230706153207624

image-20230706153217681

image-20230706153227062

Profile4个步骤

  1. 解压kafka消息
  2. 初始化性能事件,分析事件
  3. 将数据写入kafka
  4. Run 开始执行各stage handler
    1. 上报耗时到otel-collector
    2. 。。。
go">// ConsumerDispatchHandler consumer
//
//	@param msg *sarama.ConsumerMessage
//	@param consumer *databus.KafkaConsumer
//	@return err error
//	@author honeygong
func ConsumerDispatchHandler(msg *kafka.Message, consumer *kc.Consumer) (err error) {
	ctx, err := _consumer.NewProfileContext(msg, consumer, 1*time.Minute)
	if err != nil {
		return
	}
	ctx.AddBaseHandler(ctx.UnpackKafkaMessage, "", true)
	ctx.AddBaseHandler(ctx.InitPerformanceEvent, "", true).AddBaseHandler(ctx.AnalyzeEvent, "", true)
	ctx.AddBaseHandler(ctx.WriteKafka, "", true)
	ctx.Run()
	return
}

性能事件

  1. crash

    go">// Crash performance event crash
    //
    //	@author kevineluo
    //	@update 2023-07-05 07:46:11
    type Crash struct {
    	// upload fields
    	MemoryFreeBytes  int64  `json:"memory_free"`
    	MemoryMaxBytes   int64  `json:"memory_max"`
    	MemoryTotalBytes int64  `json:"memory_total"`
    	RemainDiskBytes  int64  `json:"remain_disk"`
    	CrashedThread    string `json:"crashed_thread"`
    	CrashType        string `json:"crash_type"`
    	LoseData         string `json:"lose_data"`
    	RepeatOccur      string `json:"repeat_occur"`
    
    	// analysis fields(produced by profile)
    	MemoryUsage float64 `json:"memory_usage"`
    	CrashDegree float64 `json:"crash_degree"`
    }
    
  2. lag

    // Lag performance event lag
    //
    //	@author kevineluo
    //	@update 2023-07-05 07:24:12
    type Lag struct {
    	// upload fields
    	TimeCost         int64  `json:"time_cost"`
    	Stage            string `json:"stage"`
    	ProcessName      string `json:"process_name"`
    	Type             string `json:"type"`
    	FunctionTimeCost int64  `json:"function_time_cost"`
    	Range0           int64  `json:"range_0"`
    	Range1           int64  `json:"range_1"`
    	Range2_4         int64  `json:"range_2_4"`
    	Range4_8         int64  `json:"range_4_8"`
    	Range8_16        int64  `json:"range_8_16"`
    	Range16Inf       int64  `json:"range_16_inf"`
    	DropCollectMS    int64  `json:"drop_collect_ms"`
    	DropCount        int64  `json:"drop_count"`
    
    	// analysis fields(produced by profile)
    	MainFuncPercent float64 `json:"main_func_percent"`
    	Fluency         float64 `json:"fluency"`
    	FPS             float64 `json:"fps"`
    }
    

ProfileContext维护Events

SLI :监控的指标目标

Venus:数据上报时延、成功率

Profile:数据的完整率、健康率、数据上报的处理时间延迟、成功率

Coding项目管理

项目待办、进度、需求、文档管理

待办:

  1. 阅读代码
  2. 分配任务
  3. 设计SLI

**提供:**2台服务器和CK


http://www.niftyadmin.cn/n/5047767.html

相关文章

【CNN-FPGA开源项目解析】卷积层01--floatMult16模块

文章目录 (基础)半精度浮点数的表示和乘运算16位半精度浮点数浮点数的乘运算 floatMult16完整代码floatMult16代码逐步解析符号位sign判断指数exponent计算尾数fraction计算尾数fraction的标准化和舍位整合为最后的16位浮点数结果[sign,exponent,fraction] 其他变量宽度表alway…

【机器学习】期望最大算法(EM算法)解析:Expectation Maximization Algorithm

【机器学习】期望最大算法(EM算法):Expectation Maximization Algorithm 文章目录 【机器学习】期望最大算法(EM算法):Expectation Maximization Algorithm1. 介绍2. EM算法数学描述3. EM算法流程4. 两个问…

Leetcode 1379.找出克隆二叉树中的相同节点

给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。 其中,克隆树 cloned 是原始树 original 的一个 副本 。 请找出在树 cloned 中,与 target 相同 的节点,并返回对…

python+nodejs+php+springboot+vue 法律知识分享科普系统平台

在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 要想实现法律知…

在Vue中通过ElementUI构建前端页面【登录,注册】,在IEDA构建后端实现前后端分离

一.ElementUI组件入门 1.对于ElementUI的理解 是一套基于 Vue.js 的开源UI组件库,提供了丰富的可复用组件,可以帮助开发者快速构建美观、易用的前端界面 2.Element UI 的特点和优势 多样化的组件:Element UI 提供了众多常用的基础组件&#…

MYSQL——命令大全

1.创建数据库: CREAT E DATABASE [IF NOT EXISTS] DATABASE_NAME; 2.查看数据库: SHOW DATABASES; 3.进入数据库 USE DATABASE_NAME; 4.指定字符集(character)和校对规则(collation)创建数据库 CREA…

机试算法学习

又到了一年一度的校招干饭环节,本人不得已以应届生的身份卷入了这场洪流,让我们各自加油吧! 蛇形矩阵 xx机考编程题 题目描述 输入两个整数 n和 m,输出一个 n 行 m 列的矩阵,将数字 1到 nm按照回字蛇形填充至矩阵中…

day-56 代码随想录算法训练营(19)动态规划 part 16

538.两个字符串的删除操作 思路一: 1.dp存储:以word1[i-1]结尾,word2[j-1]结尾,最少进行dp[i][j]次操作2.动态转移方程: if(word1[i-1]word2[i-1]) dp[i][j]dp[i-1][j-1]; else dp[i][j]min(dp[i-1][…