作者:二丫讲梵
导语|本文来自腾讯云 CLS 深度用户 二丫讲梵,文章基于实际业务,从日志存储和流量两方面给出了可实操的 CLS 成本优化方法和操作指引,非常感谢 二丫讲梵 的分享。
腾讯云日志产品成本控制主要有如下几个维度:
我们需要共同严把成本控制的关口,结合业务实际使用场景,以及本文介绍的腾讯云日志产品使用的最佳实践,选择合适的接入方案。
关于腾讯云日志产品的计费方式,官方文档介绍了很多内容,大致分为如下四个方面:
根据我们实际生产中一个月两万多元的日志主题费用消耗来看,其中存储与流量费用占99.73%, 所以在考虑成本控制时,只需要关注这两块就可以了。
接下来的内容,也都是围绕着存储与流量进行的探索与分析,只要了解产品的特性,及使用场景,那么用最低成本发挥产品最大价值,就不再是空谈。
在腾讯云官方计费概述文档中,可以看到关于存储费用的详细介绍:
此处有两个概念需要我们了解,日志存储和索引存储。
但是索引存储中,也有三种情况可区分:
因此,在使用索引功能时,建议使用键值索引进行配置,不建议直接开启全文索引。运维及开发测试人员也应熟悉并习惯键值索引的应用及检索方式。
接下来我们以一个实际生产的主题为例,来具体计算分析不同应用策略对费用的影响。
如下截图是一个只使用标准存储的日志主题,日志保留时长为30天,并开启了全文索引。
注意这句描述中的要素,可以说把日志产品中不该踩的坑全部踩中,如果您看到这个描述,一下就能分析出问题所在,那或许本文如下内容您就不需要再看了。
现在,我们先从存储维度来进行分析:
存储空间在新日志写入与旧日志删除之间,一天波动不算很大,因此以平均值角度来进行计算。
首先可以看到一个细节:标准存储量约7867GB,索引存储量约44785GB,两者相差5倍多。
接下来是具体费用计算,根据腾讯云日志产品定价策略可得:标准存储的费用为0.0115元/GB/日:
核算下来,该日志主题单在存储费用一项,每个月要花费:15450 + 2714 = 18164元
(当然,通常公司使用云产品时都会有折扣价,因为各家折扣不一,所以这里以原始价格进行计算。)
通过存储费用计算想说明一个问题:开启全文索引的日志主题,每个月花费在标准索引上的费用会很高。
因此关于索引的核心表达就是:慎开全文索引,善用键值索引,切勿重建索引。
如果公司通过腾讯云子账号给开发者及测试开通了 CLS 检索日志的权限,那么这个授权当中,务必把重建索引权限收回,这是一个非常贵的按钮。
腾讯云日志产品在存储选型方面,提供了两种方案:标准存储与低频存储。官方文档中有直观的对比图:
那么,在实际应用场景中的选择方法是:
我们仍以上方实际截图数据为例,看下不同选型方案的费用对比:
目前来看,除了使用「标准+低频」方案能够减少成本之外,一些业务日志可以直接放到低频存储中,连标准7天转低频都不需要,这样大概可节约成本60%—70%。
因此一定要创建专门存放低频日志的主题,该主题可以开启全文索引(否则就无法检索)。
以上内容基本上都是在存储视角下功夫,其实还有一个维度容易被忽视,那就是流量,流量优化有两个方向:
以下是腾讯官方文档的说明:
所以我们应该尽可能避免直接开启全文索引,而选择开启键值索引。
另外一个需要格外注意的点是,不要随意点击「重建索引」按钮。这个按钮会把历史日志重新索引一遍,如果增加一个字段,就点击重建索引,那这个操作会将历史保留的日志全部重新索引一遍,会以原日志大小产生索引转换流量费用,成本高昂。
官方重建索引文档对此描述为:重建索引会将指定时间范围内的原始日志重新构建一遍索引,将产生索引流量费用(不产生写流量费用及索引存储费用)。数据量较大时会消耗较长时间并产生较高的费用,建议您尽量避免频繁地修改索引配置并重建索引。
在腾讯云日志服务 CLS 中,日志主题是与 ES 索引对等的一个概念。通常来说,一个索引应该对应一个应用,然后再以索引维度进行绘图聚合,及监控告警规则配置。在腾讯云 CLS 中,我们也应该一个主题对应一个应用,而不应该宽泛地将许多个应用日志汇聚在一个主题之中。
虽然一个应用对应一个主题看起来配置相对麻烦,但却是收益绝对大的事。
从腾讯云 CLS 产品视角来看,一个应用日志采集需求从业务方提交到运维手中,应该有如下几个考量点:
作为业务方,需要了解这些概念及概念背后涉及的特性,从而在提交日志采集需求时,做到有的放矢。
针对日志主题,一个日志主题对应一个应用,就可以针对应用实际场景,配置指定的键值索引,以及是否开启全文索引。
日志分级通常会与日志规范绑定分析,所以这里以两个维度进行分析。
通常日志打印规范中,会以日志级别的维度来对日志进行分级,配置日志采集时,我们也可以通过不同分级的情况,来配置不同规则,比如 A 公司所有应用日志,约定的打印规范如下:
(1)统一将日志写在 /data/logs/;
(2)按照级别分目录保存,或分文件保存。这里以分文件保存示例:
通常情况下,info 日志一天可能会打印10GB,warn 与 error 可能会打印100MB,info 日志在部分问题排查追踪时,会用到上下文,有一定检索需求但不太有配置告警与绘制大盘的需求,而 warn 与 error 则有配置告警的需求。
此时可以将日志使用及配置规则进行如下设计:
(1)创建标准主题:user-api-base-log
(2)创建低频主题:user-api-low-log
接下来我们使用官方价格计算器计算一下这种方案,与直接创建一个主题存储所有日志的成本差异。(为了便于计算,假设该服务有10个节点。)可得如下结果:
可见,在满足实际使用需求的情况下,只需简单配置一下日志使用方式及采集规则,每月就能省下:5979 - 3886 = 2090元。
假如公司当下没有按照日志等级进行分类,那么至少可以与开发者一起约定出两个规范,即标准日志与低频日志。日志打印方案大致如下:
运维侧按照如上流程,创建 base 与 low 两个日志主题,配置不同采集规则,同样可以达到降低成本的目的。
成本优化工作不需要高深的技术,但是需要足够的耐心与洞察力,其中的经验心得是:
欢迎大家多多提出宝贵意见,CLS 开发者们将不断开发迭代,认真打磨产品,努力提升用户使用体验。
同时也欢迎大家积极投稿,分享自己的使用姿势、最佳实践、心得体会等,让更多用户受益,运营小编会为优秀作品发放精美礼品~
产品使用问题、技术咨询欢迎加入 CLS 粉丝群,直接跟日志专家 1v1 对话,更有超多粉丝福利,快来加入我们吧。
更多日志服务相关前沿技术、产品动态,欢迎关注腾讯云 CLS 公众号。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。