通过学习这些关键的术语和概念来理解 Python 应用监测。
当我第一次看到术语“ 计数器 counter ”和“ 计量器 gauge ”和使用颜色及标记着“平均数”和“大于 90%”的数字图表时,我的反应之一是逃避。就像我看到它们一样,我并不感兴趣,因为我不理解它们是干什么的或如何去使用。因为我的工作不需要我去注意它们,它们被我完全无视。
这都是在两年以前的事了。随着我的职业发展,我希望去了解更多关于我们的网络应用程序的知识,而那个时候就是我开始去学习 监测指标 metrics 的时候。
我的理解监测的学习之旅共有三个阶段(到目前为止),它们是:
- 阶段 1:什么?(王顾左右)
- 阶段 2:没有指标,我们真的是瞎撞。
- 阶段 3:出现不合理的指标我们该如何做?
我现在处于阶段 2,我将分享到目前为止我学到了些什么。我正在向阶段 3 进发,在本文结束的位置我提供了一些我正在使用的学习资源。
我们开始吧!
需要的软件
在文章中讨论时用到的 demo 都可以在 我的 GitHub 仓库 中找到。你需要安装 docker 和 docker-compose 才能使用它们。
为什么要监测?
关于监测的主要原因是:
- 理解 正常的 和 不正常的 系统和服务的特征
- 做容量规划、弹性伸缩
- 有助于排错
- 了解软件/硬件改变的效果
- 测量响应中的系统行为变化
- 当系统出现意外行为时发出警报
指标和指标类型
从我们的用途来看,一个指标就是在一个给定时间点上的某些数量的 测量 值。博客文章的总点击次数、参与讨论的总人数、在缓存系统中数据没有被找到的次数、你的网站上的已登录用户数 —— 这些都是指标的例子。
它们总体上可以分为三类:
计数器
以你的个人博客为例。你发布一篇文章后,过一段时间后,你希望去了解有多少点击量,这是一个只会增加的数字。这就是一个 计数器 counter 指标。在你的博客文章的生命周期中,它的值从 0 开始增加。用图表来表示,一个计数器看起来应该像下面的这样:
一个计数器指标总是在增加的。
计量器
如果你想去跟踪你的博客每天或每周的点击量,而不是基于时间的总点击量。这种指标被称为一个 计量器 gauge ,它的值可上可下。用图表来表示,一个计量器看起来应该像下面的样子:
一个计量器指标可以增加或减少。
一个计量器的值在某些时间窗口内通常有一个 最大值 ceiling 和