organizing golang projects and dependencies

背景

golang的依赖一直是让人头疼的问题, 大家对其自有的package管理也是褒贬不一
而对于一个公司内部项目来讲, 主要的需求有以下几点

  1. 方便的依赖包版本管理
  2. 方便协同开发
  3. 尽可能不依赖其编译所在环境
  4. 除基础包之外, 第三方包尽可能的自包含

基于此, 有了本文, 打算以最小的环境变更及工具, 打造一个可协同工作的golang projects

动态监控磁盘分区使用ETA

名词解释

eta,是estimated time of arrival的缩写,通常指灰机、轮船等的预计到达时间。
拿到运维系统中,含义即为某个分区预计还有多长时间被打满。(暂定为此名字,还没想到其他贴切的词)

背景

为什么搞这个监控,我们不是有现成的剩余空间监控(vfs.fs.size[/,free]和剩余空间百分比监控(vfs.fs.size[/,pfree])么?
原因在于,上述两项监控,都是死的,例如我们设置某个分区剩余空间百分比小于10%时报警,那么在该分区剩余空间百分比大于10%时,我们不会收到任何报警。
而这种情况,不能基于磁盘最近的增长量来判断磁盘打满的eta。
数学上有很多求平均数的方法[1],此处磁盘eta的算法更倾向于使用指数平均法,即“各数值的加权影响力随时间而指数式递减,越近期的数据加权影响力越重”,但我们只取最近N个值的平均数,直接砍掉N之前的历史数。所以只是形式上相像而已。

2015

又是一年终了时,又吸了一年的京霾,又老了一岁。
年龄愈长,越觉时间过得快。
毕业那刻,仿佛还在昨天,不过是梦一场,6年多的时间过去了。