mwr*_*ght 7 amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs
我一直在为一个吸引大量数据的项目做一些亚马逊AWS修补工作.大多数服务都是超级便宜的,但Cloud Watch的日志存储占主导地位,云计算日志存储在18美元的总账单中占13美元.我已经删除了日志.
如何从存储中删除日志(从控制台中删除组似乎没有这样做)或降低日志的成本(这篇文章表明它应该是0.03美元/ GB,我的更多)或者是其他东西?
人们使用什么策略?
edu*_*911 12
你能告诉我们你推了多少小时/小时?
有一件事我多年的经验是,同时具有多层次的记录是好的(Debug,Info,Warn,Error,Fatal),它有两个严重的缺点:
Warn,Error和Fatal",调试和信息都仍然在运行时评价过!为了记录,我为以前的项目记录了超过1000美元/月的费用.用于安全审核的PCI合规性需要2年的日志,而我们每秒发送1000个日志.
我甚至讨论了如何在上下文中记录所有内容:
http://go-talks.appspot.com/github.com/eduncan911/go-slides/gologit.slide#1
在对我的应用程序和功能进行基准测试以及生产中的人工和日志存储的总体成本之后,我已经退出了这一立场.
我现在只记录最小(错误),并使用在运行时否定评估的包,如果未设置日志级别,例如Google
Glog.
此外,自从转向开发以来,我采用了极少量代码(例如微服务和软件包)和专用CLI工具的策略,无需在单片堆栈中包含大量Debug和Info语句 - 如果我可以将RPC记录到/来自每个服务.更好 - 只需监控事件总线.
最后,通过对这些小型服务的单元测试,可以确保代码的运行方式 - 因为您不需要这些Info和Debug语句,因为您的测试显示了良好和不良的输入条件.那些Info和Debug语句可以进入单元测试,使代码不受跨领域的关注.
所有这些基本上都会最终降低您的日志记录需求.
你如何运送你的日志?
如果您无法排除所有调试,信息和其他行,则另一个想法是在您使用日志之前过滤日志sed,awk或类似地管道到另一个文件.
当你需要调试某些东西时,那就是当你改变sed/awk并发送额外的日志信息时.完成调试后,返回过滤并仅记录最小值,如异常和错误.
所支付的价格包含2个组成部分:
1)摄取费用:在发送/上载日志时支付
2)存储费用:为保持原木而支付。
存储成本非常低(3美分/ GB,因此,这不是问题所在-即增加的使用量是红色鲱鱼-花费了CloudWatch总账单中的3美分)。您需要为发生的摄取付费。唯一的真正减少方法是减少正在执行的日志记录数量和/或停止使用cloudwatch。
https://aws.amazon.com/cloudwatch/pricing/
| 归档时间: |
|
| 查看次数: |
6629 次 |
| 最近记录: |