我是如何进行日志降本的

news2025/7/21 9:47:56

f747ecc77bbccdc439e0007ff8eff084.jpeg

最近行业里流行降本增效。本文就一个现实中经常发生的日志成本的案例进行讨论,讨论该如何降本。

背景

假如存在一家IoT公司,它拥有1亿的在线设备(长连接着云端)。这些设备每21秒会向云端发送心跳,以进行连接的保活。假如1次连接的保活,在云端产生1条日志,那么1台设备1天产生的日志量是:24 * 60 * 60 / 21 = 4114条,假设1条日志100字节,所以:

  • • 1台设备1天保活日志数:24 * 60 * 60 / 21 = 4114

  • • 1条日志占用100字节,1台设备1天产生保活日志:4114 * 100 = 411400byte

  • • 1天内1亿的设备产生日志:411400 * 100000000 ≈ 37.4T

我们来看下该保活日志内容: 2021-02-12:12:32:12 application-abc-prod INFO com.platform.cloud.impl keep alive, deviceId:1a2b3b3p8

从日志内容来看,没有什么“营养”,纯粹是为方便程序员debug。

这是问题吗?

一行没有营养的日志每天产生37.4T的日志,是个问题吗?对谁是个问题?

对于写那行代码的人来说,并不是问题,因为日志量大小本身并不是他的KPI。

对于运维可能是个问题,因为他们可能因此需要增加存储服务扩容的工作。但是从另一个方面来看不是个问题,因为他们有借口招更多的人。

对于大数据团队可能是个问题,因为他们发现数据清洗pipeline比之前更慢了,进而导致每日报表都被延迟了。但是从另一个角度来看不是个问题,因为这是一个表现的机会——在人员数量不变的情况下优化清洗速度的机会。

这对于关心成本的人来说是个问题。谁关心成本呢?这不是本文讨论的话题。

如何面对问题?

事后面对

事后面对指的是事情已经发生了,即大量无用配置已经产生了。只能采取补救止血措施。

作为运维,需要对于日志量进行多维度监控与告警。可以包括以下维度:

  • • 应用维度

  • • 实例维度

  • • 设备维度:部分设备可能有Bug,会死循环会不停进行连接请求

告警内容可以包括:

  • • 进行环比对比,出现突增

  • • 进行环比对比,出现突降

在收到告警后,找到相应的应用的owner,让其检查日志是否合理,不合理则需要制定改进措施。

同时,每周都向相应的owner发送日志量报告,让其了解当前生产环境的日志量情况。

Code Review 时面对

Code Review 时,有经验的人会看出日志成本问题,但是这种方式并不可靠。

写代码时,就避免

指的是在程序员写在log.info("无营养日志")的那一时刻,IDE就提醒程序员:这行日志每日将产生4114条日志,将占所有日志总量的80%,请注意!

当然,除了在IDE时提醒,我们可以在Code Review时,review机器人自动对该行代码进行评论。

这个实现起来难度会比较大。

但是并不是没有思路。笔者的思路如下,仅供参考,欢迎交流:

我们要知道,只有被请求到API,API执行时,被执行到的代码才会打日志。

所以,只要能知道打日志的代码在过去一段时间内,在生产环境的相应的API被请求了多少次,我们就可以预测到增加1行日志会增加多少日志了。进而在IDE里提示,或者Code Review进行评论。

而对于那些完全新增的API,就没有办法预测了,因为没有历史记录。

以上只是思路,具体实现方法今后有机会实现再说。

小结

日志成本通常会被人忽略。它通常就一个人身上的慢性病,时间长了,谁知道会发展什么样呢?

进行日志降本的最简单的办法就是增加对日志量的监控与告警,然后让owner评估是否可以删除日志。

当然,个人认为在写下那行打日志的代码的同时进行干预才是终极方案。

好文推荐:

  • 小基础设施团队的分工思路

  • 集中力量办大事的软件交付方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于社会群体算法的无人机航迹规划-附代码

基于社会群体算法的无人机航迹规划 文章目录 基于社会群体算法的无人机航迹规划1.社会群体搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用社会群体算法来优化无人机航迹规划。 …

【opencv+图像处理】Image Processing in OpenCV 1-2基本图形绘制

🍉 博主微信 cvxiayixiao 🍓 【Segment Anything Model】计算机视觉检测分割任务专栏。 链接 🍑 【公开数据集预处理】特别是医疗公开数据集的接受和预处理,提供代码讲解。链接 🍈 【opencv图像处理】opencv代码库讲解…

Hadoop HDFS(分布式文件系统)

一、Hadoop HDFS(分布式文件系统) 为什么要分布式存储数据 假设一个文件有100tb,我们就把文件划分为多个部分,放入到多个服务器 靠数量取胜,多台服务器组合,才能Hold住 数据量太大,单机存储能力有上限,需要…

小学辅导虚拟资料项目拆解 - 沉睡者IT

最近我看到了一个很不错的项目,它几乎没有成本,操作起来也不难,而且相对稳定的回报率。 这个项目适合新手小白或者工作室类型的团队。 之前分享的一些项目,比如天涯神贴、别墅设计图、古籍电子书、宝宝起名,都属于这个…

rcore 笔记 第一个裸机程序

文章目录 环境应用程序与基本执行环境应用程序执行环境与基本操作平台执行应用程序应用程序执行环境目标平台与目标三元组 移除标准库依赖移除 println! 宏提供 panic_handler 功能应对致命错误移除 main 函数 编译运行内核指令程序内存布局与编译流程 内核第一条指令编写内核第…

黑马 小兔鲜儿 uniapp 小程序开发- 用户模块- 07

小兔鲜儿 - 用户模块07 在用户登录/注册成功后,展示会员信息,更新会员信息。 会员中心页(我的) 主要实现两部分业务: 渲染当前登录会员的昵称和头像,从 Store 中获取。猜你喜欢分页加载,可封装成组合式函数实现复用…

态路小课堂丨如何为QSFP-DD800G光模块选择合适的光纤跳线

TARLUZ态路 在之前2篇文章中,我们介绍了关于800G光模块的封装、光口类型等内容。本文态路通信将为您介绍“如何为QSFP-DD800G光模块选择合适的光纤跳线”。方便您在800G数据中心网络互连场景中快速完成链路布线。 文章1: 三款800G光模块方案介绍—SR8/…

C++标准模板(STL)- 类型支持 (复合类型类别,is_member_pointer,is_reference,is_compound)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

职场好物:乐歌M9S升降办公电脑台,告别久坐办公,升职加薪就选它

办公是现代生活不可避免的组成部分&#xff0c;科技的快速发展&#xff0c;给了我们更多新的生活方式&#xff0c;促使我们更加关注自己的身体状况&#xff0c;我们挨过了饭都吃不饱的年代&#xff0c;随着办公人群的不断扩张&#xff0c;不知道你有没有发现身边人或多或少都有…

代码随想录算法训练营第三十九天 | LeetCode 343. 整数拆分、96. 不同的二叉搜索树

代码随想录算法训练营第三十九天 | LeetCode 343. 整数拆分、96. 不同的二叉搜索树 文章链接&#xff1a;整数拆分 不同的二叉搜索树 视频链接&#xff1a;整数拆分 不同的二叉搜索树 1. LeetCode 343. 整数拆分 1.1 思路 给我们一个数&#xff0c;如何去拆成若…

力扣第62题 不同路径 c++ 动态规划 dp二维 + dp一维 解法

题目 62. 不同路径 中等 相关标签 数学 动态规划 组合数学 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Fini…

Kubernetes异常?别担心,100个命令来解救你

关注【云原生百宝箱】公众号&#xff0c;快速掌握云原生 这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。作者列出了 100 个 Kubectl 命令&#xff0c;这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些问题包括但不限于&#xff1a; 集群信息Pod 诊断服务诊断…

一款成熟的文件外发审计管控系统,应该具备哪些价值?

在信息化高速发展的时代&#xff0c;电子文件泄密事件层出不穷&#xff0c;比如文本文档、图像、音频、视频、电子表格等&#xff0c;都是日常会接触到的文件类型。像制造业企业&#xff0c;会有比较多的上下游协作交流&#xff0c;外发的电子文档以明文的形式提供给合作伙伴&a…

信号类型(通信)——QAM调制信号

系列文章目录 《信号类型&#xff08;通信&#xff09;——仿真》 文章目录 前言 一、原理图 二、仿真 2.1、QAM仿真 2.2、不同滚降系数 2.3、不同M下QAM调制对比 总结 前言 本文主要结合仿真分析了QAM的信号处理过程&#xff0c;并简单分析了成型滤波器中的滚降系数对QA…

开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化

开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化 前言一、GSYVideoPlayer&#x1f525;&#x1f525;&#x1f525;是什么&#xff1f;二、简单使用1.First、在project下的build.gradle添加2.按需导入3. 常用代码 rtsp流的优化大功告成 总结 前言 本文介绍&#xff0c;…

Kafka - 监控工具 Kafka Eagle:实时洞察Kafka集群的利器

文章目录 引言Kafka Eagle简介Kafka Eagle的特点Kafka Eagle的优势使用Kafka Eagle的步骤结论 引言 在现代大数据架构中&#xff0c;Apache Kafka已成为一个不可或缺的组件&#xff0c;用于可靠地处理和传输大规模的数据流。然而&#xff0c;随着Kafka集群规模的不断增长&…

私募证券基金动态-23年9月报

成交量&#xff1a;9月日均7,197.15亿元 2023年9月A股两市日均成交7,197.15亿元&#xff0c;环比下降12.78%、同比下降1.38%&#xff0c;为近2年单月日均成交最低的月份。9月整体20个交易日&#xff0c;单日成交金额最高没有过万亿&#xff0c;单日最低破6000亿&#xff0c;仅…

博弈论学习笔记(2)——完全信息静态博弈

前言 这部分我们学习的是完全信息静态博弈&#xff0c;主要内容包括博弈论的基本概念、战略式博弈、Nash均衡、Nash均衡解的特性、以及Nash均衡的应用。 零、绪论 1、什么是博弈论 1&#xff09;博弈的定义 博弈论&#xff1a;研究决策主体的行为发生直接相互作用时候的决策…

蓝桥杯 (C++ 求和 等差数列 顺子日期 灌溉)

目录 1、求和 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 1、求和 题目&#xff1a; 思路&#xff1a; 1、首先想到的是两重遍历&#xff0c;累加和。但是当n取200000时&#xff0c;会超时&#xff0c;所以暴力的遍历没有办法通过全部案例。 2、将公式变形得到…

AI先行者第一辑:AI for Science 要坚持高压强投入

‍‍ 中国在AI for Science的基础还非常的薄弱&#xff0c;且非短期内可以提升&#xff0c;需要有一个长期性的计划&#xff0c;也需要有足够的金钱投入和人才队伍建设。 本篇作者褚学森&#xff0c;中国船舶科学研究中心、深海技术科学太湖实验室 研究员&#xff1b;新兴技术研…