前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【用户来稿】CLS 保姆级最佳实践教程,成本直降60%

【用户来稿】CLS 保姆级最佳实践教程,成本直降60%

作者头像
日志服务CLS小助手
发布2023-05-24 18:14:15
4930
发布2023-05-24 18:14:15
举报
文章被收录于专栏:日志服务CLS日志服务CLS

作者二丫讲梵

导语|本文来自腾讯云 CLS 深度用户 二丫讲梵,文章基于实际业务,从日志存储和流量两方面给出了可实操的 CLS 成本优化方法和操作指引,非常感谢 二丫讲梵 的分享。

前言

腾讯云日志产品成本控制主要有如下几个维度:

  • 减量:去掉没有意义的无效日志,只打印关键日志
  • 减周期:尽可能减少日志存储的时长。
  • 转低频:低频相较于标准存储,总体可降低约60% —70%成本。
  • 慎开全文索引:全文索引会把所有日志全部索引一遍,并且这个索引过程产生的流量与存储的计量方式是未经压缩的日志,如果开启全文索引,则存储及流量往往会比不开的日志存储高出4—6倍。

我们需要共同严把成本控制的关口,结合业务实际使用场景,以及本文介绍的腾讯云日志产品使用的最佳实践,选择合适的接入方案。

如何计费

关于腾讯云日志产品的计费方式,官方文档介绍了很多内容,大致分为如下四个方面:

  • 存储
  • 流量
  • 调用
  • 分区

根据我们实际生产中一个月两万多元的日志主题费用消耗来看,其中存储与流量费用占99.73%, 所以在考虑成本控制时,只需要关注这两块就可以了。

接下来的内容,也都是围绕着存储与流量进行的探索与分析,只要了解产品的特性,及使用场景,那么用最低成本发挥产品最大价值,就不再是空谈。

关于索引存储

腾讯云官方计费概述文档中,可以看到关于存储费用的详细介绍:

图片
图片

此处有两个概念需要我们了解,日志存储和索引存储。

  • 日志存储:表示原始日志存到 CLS 所占用的存储大小,这个存储量配合 LogListener(官方组件,默认有压缩机制)采集,会有压缩(压缩比通常会有4—5倍),计价也是算压缩后的存储费用。
  • 索引存储:当我们给该主题日志开启索引功能之后,索引后的日志所占用的存储大小。该存储计量方式是未压缩的日志。

但是索引存储中,也有三种情况可区分:

图片
图片

因此,在使用索引功能时,建议使用键值索引进行配置,不建议直接开启全文索引。运维及开发测试人员也应熟悉并习惯键值索引的应用及检索方式。

接下来我们以一个实际生产的主题为例,来具体计算分析不同应用策略对费用的影响。

如下截图是一个只使用标准存储的日志主题,日志保留时长为30天,并开启了全文索引。

注意这句描述中的要素,可以说把日志产品中不该踩的坑全部踩中,如果您看到这个描述,一下就能分析出问题所在,那或许本文如下内容您就不需要再看了。

现在,我们先从存储维度来进行分析:

图片
图片

存储空间在新日志写入与旧日志删除之间,一天波动不算很大,因此以平均值角度来进行计算。

首先可以看到一个细节:标准存储量约7867GB,索引存储量约44785GB,两者相差5倍多。

接下来是具体费用计算,根据腾讯云日志产品定价策略可得:标准存储的费用为0.0115元/GB/日:

  • 标准日志存储费用:7867 * 0.0115 * 30 = 2714元
  • 标准索引存储费用:44785 * 0.0115 * 30 = 15450元

核算下来,该日志主题单在存储费用一项,每个月要花费:15450 + 2714 = 18164元

(当然,通常公司使用云产品时都会有折扣价,因为各家折扣不一,所以这里以原始价格进行计算。)

通过存储费用计算想说明一个问题:开启全文索引的日志主题,每个月花费在标准索引上的费用会很高

因此关于索引的核心表达就是:慎开全文索引,善用键值索引,切勿重建索引

如果公司通过腾讯云子账号给开发者及测试开通了 CLS 检索日志的权限,那么这个授权当中,务必把重建索引权限收回,这是一个非常贵的按钮。

关于低频存储

腾讯云日志产品在存储选型方面,提供了两种方案:标准存储与低频存储。官方文档中有直观的对比图:

图片
图片

那么,在实际应用场景中的选择方法是:

  • 标准存储:日志有配置告警、绘制大盘的需求;不需长期留存;对查询响应有较高要求(亿条数据0.5秒响应);有 SQL 分析的需求。
  • 低频存储:日志对查询响应速度要求不高(亿条数据2秒响应);无需 SQL 分析;无绘制仪表盘,配置监控告警的需求;仅需检索回溯。 如果直接创建低频存储的日志主题,则日志保留时间必须大于等于7,虽然如此,同一日志主题存留7天的低频也仍然比存留1天的标准费用更低,以下是官方提供的价格计算器对比图:
图片
图片
  • 标准+低频:可以设置7天内为标准存储,超过7天转为低频。兼顾两个特性,成本控制比较有优势。(目前问题是仅支持7天以上的标准存储数据转为低频。)对于必须要存储超过7天的日志,可以选择这个方案。如果标准存储小于等于7天,则无法选择该方案。

我们仍以上方实际截图数据为例,看下不同选型方案的费用对比:

  • 根据腾讯云日志产品定价策略可得:低频存储费用为0.0025元/GB/日,计算得知原方案的费用为18164元每月。
  • 现在将7天前的日志沉降为低频存储: (标准存储:(7867 * 0.0115*7)+(7867*0.0025*23)) + (索引存储:(44785*0.0115*7)+(44785*0.0025*23))==> 1085 + 6180 = 7265元
  • 两个方案每月存储费用相差18164 - 7265 = 10899元

目前来看,除了使用「标准+低频」方案能够减少成本之外,一些业务日志可以直接放到低频存储中,连标准7天转低频都不需要,这样大概可节约成本60%—70%

因此一定要创建专门存放低频日志的主题,该主题可以开启全文索引(否则就无法检索)。

关于流量

以上内容基本上都是在存储视角下功夫,其实还有一个维度容易被忽视,那就是流量,流量优化有两个方向:

  • 降低原始无效日志的打印,从源头上控制日志量,是解决成本问题最根本的手段。随着业务开发迭代,无效日志也会在不知不觉中越来越多,因此需要时常应用这一手段。
  • 还有一个重要的手段是:不开全文索引。开启全文索引后,CLS 会将原生日志转为索引过程产生的流量,作为流量费的一部分,通常这个费用远高于日志传输写入的流量费用。

以下是腾讯官方文档的说明:

所以我们应该尽可能避免直接开启全文索引,而选择开启键值索引

另外一个需要格外注意的点是,不要随意点击「重建索引」按钮。这个按钮会把历史日志重新索引一遍,如果增加一个字段,就点击重建索引,那这个操作会将历史保留的日志全部重新索引一遍,会以原日志大小产生索引转换流量费用,成本高昂。

官方重建索引文档对此描述为:重建索引会将指定时间范围内的原始日志重新构建一遍索引,将产生索引流量费用(不产生写流量费用及索引存储费用)。数据量较大时会消耗较长时间并产生较高的费用,建议您尽量避免频繁地修改索引配置并重建索引。

关于日志主题

在腾讯云日志服务 CLS 中,日志主题是与 ES 索引对等的一个概念。通常来说,一个索引应该对应一个应用,然后再以索引维度进行绘图聚合,及监控告警规则配置。在腾讯云 CLS 中,我们也应该一个主题对应一个应用,而不应该宽泛地将许多个应用日志汇聚在一个主题之中。

虽然一个应用对应一个主题看起来配置相对麻烦,但却是收益绝对大的事。

从腾讯云 CLS 产品视角来看,一个应用日志采集需求从业务方提交到运维手中,应该有如下几个考量点:

  • 存储周期:默认为3天,最多7天,超过7天,需要配置沉降为低频存储,或直接选择低频存储;超过15天,需做特殊说明;超过30天,需要考虑转储到 COS。
  • 存储类型:默认为低频存储,如有配置监控告警、绘制大盘、SQL 分析的需求,可选择标准存储,但注意要与存储周期规则结合。
  • 索引配置:默认关闭全文索引,只配置键值索引,即支持根据指定键的关键字进行检索;如特别需要,再开全文索引。(注意,全文索引比键值索引成本高3—4倍。)

作为业务方,需要了解这些概念及概念背后涉及的特性,从而在提交日志采集需求时,做到有的放矢。

针对日志主题,一个日志主题对应一个应用,就可以针对应用实际场景,配置指定的键值索引,以及是否开启全文索引。

关于日志分级

日志分级通常会与日志规范绑定分析,所以这里以两个维度进行分析。

一、标准的日志规范

通常日志打印规范中,会以日志级别的维度来对日志进行分级,配置日志采集时,我们也可以通过不同分级的情况,来配置不同规则,比如 A 公司所有应用日志,约定的打印规范如下:

(1)统一将日志写在 /data/logs/;

(2)按照级别分目录保存,或分文件保存。这里以分文件保存示例:

  • user-api-info-2023-05-20.log
  • user-api-warn-2023-05-20.log
  • user-api-error-2023-05-20.log

通常情况下,info 日志一天可能会打印10GB,warn 与 error 可能会打印100MB,info 日志在部分问题排查追踪时,会用到上下文,有一定检索需求但不太有配置告警与绘制大盘的需求,而 warn 与 error 则有配置告警的需求。

此时可以将日志使用及配置规则进行如下设计:

(1)创建标准主题:user-api-base-log

  • 日志采集规则为:/data/logs/user-api-warn-*.log & /data/logs/user-api-error-*.log
  • 日志存储策略为标准存储
  • 时间保留7天
  • 添加告警规则

(2)创建低频主题:user-api-low-log

  • 日志采集规则为:/data/logs/user-api-info-*.log
  • 日志存储策略为低频存储
  • 时间保留7天
  • 不影响全文检索与回溯

接下来我们使用官方价格计算器计算一下这种方案,与直接创建一个主题存储所有日志的成本差异。(为了便于计算,假设该服务有10个节点。)可得如下结果:

图片
图片
图片
图片

可见,在满足实际使用需求的情况下,只需简单配置一下日志使用方式及采集规则,每月就能省下:5979 - 3886 = 2090元。

二、没有日志规范

假如公司当下没有按照日志等级进行分类,那么至少可以与开发者一起约定出两个规范,即标准日志与低频日志。日志打印方案大致如下:

  • 统一将日志写在 /data/logs/
  • 标准日志:user-api-base-2023-05-20.log
  • 低频日志:user-api-low-2023-05-20.log

运维侧按照如上流程,创建 base 与 low 两个日志主题,配置不同采集规则,同样可以达到降低成本的目的。

最后

成本优化工作不需要高深的技术,但是需要足够的耐心与洞察力,其中的经验心得是:

  • 多看官方文档,奥妙自在其中;
  • 勤动手,点一点账单,做一做表格;
  • 多分析,分析日志中不合理的打印,以及应用场景的不合理;
  • 多交流,如果遇到不合理的打印,请多与开发者交流,看看究竟是无心之举,还是有意打印。

开发者说

欢迎大家多多提出宝贵意见,CLS 开发者们将不断开发迭代,认真打磨产品,努力提升用户使用体验。

同时也欢迎大家积极投稿,分享自己的使用姿势、最佳实践、心得体会等,让更多用户受益,运营小编会为优秀作品发放精美礼品~


产品使用问题、技术咨询欢迎加入 CLS 粉丝群,直接跟日志专家 1v1 对话,更有超多粉丝福利,快来加入我们吧。

更多日志服务相关前沿技术、产品动态,欢迎关注腾讯云 CLS 公众号。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 如何计费
  • 关于索引存储
  • 关于低频存储
  • 关于流量
  • 关于日志主题
  • 关于日志分级
    • 一、标准的日志规范
      • 二、没有日志规范
      • 最后
      • 开发者说
      相关产品与服务
      日志服务
      日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档