托管监控:评估涌入云和Grafana云

2021-06-23 18:10:10

我们已经长时间一直自托管Grafana和涌入数据库,使用它来监视我们的自定义应用指标。但是,我们开始通过维护和5美元/莫数号液滴的性能限制推动我们的耐心性。

努力简化我们开始探索托管解决方案的东西。真的,我们只需要简单又便宜。我们考虑的两种主要选择是涌入云和格拉新云,都提供相当宽阔的自由层。

我们从涌入云开始,主要是因为我们已经使用涌入作为我们的数据存储。因此,我们不必重写我们推动指标的任何代码。总的来说,我们的第一次印象是好的,船上很简单,UI看起来很好。我们也很快就可以将数据纳入涌入云,并且可以开始设置我们的面板和警报。这是我们开始遇到问题的地方。

来自Grafana,我们被习惯了一定程度的定制。然而,涌入云提供了非常有限的定制。例如,Y轴单位只有3个选项,而传奇选项非常有限。

目测最令人沮丧的事情之一是,每次刷新数据时,图表系列颜色都会保持更改,使得追踪您正在查看的内容非常困难。

另一个非常令人沮丧的功能(或缺乏)是,悬停工具提示没有给出您鼠标光标目前悬停的特定系列的任何指示。这里的简单解决方案是使积极徘徊的系列保持或不均匀。

虽然我们可以与可视化和定制问题一起生活,但警报是我们完全放弃了涌入的云。无论我们尝试了多少,我们都无法获得一个简单的基本警报来工作。

设置警报的过程不是非常直观的。例如,“检查”UI让您设置所需的阈值。该图包含切换阈值标记的选项。然而,这些实际上并不是做任何事情,并且在UI中没有显示输入的阈值。这是我先卡住的地方,认为我的门槛没有设置,而且事实上它们是。

在门槛水平中,它也很容易意外地引入“空白”。首先,您可能会想到这样一个警报(如下),低于10并以上警告)。嗯,那么你缺少10的值(它成为一个“未知的”状态)。

因此,在这种情况下,您应该根据这样设置(Warn以上9且OK低于10),这是正确的,但感觉错误。我相信他们可能会提出更好的解决方案。

但是,在添加“检查”并设置“通知端点”后,我仍然没有得到任何警报。经过一段时间,我意识到另一个我错过了ui,即“通知规则”。

我此时很兴奋,因为似乎有很多灵活性。我开始通过测试设置警报,如果警报仍然至关重要,每24小时提醒我们。虽然这实际上是工作的,但它也会导致我们的松弛完全用100多个通知垃圾邮件。我不确定为什么......但我们很快就删除了这个警报。

在此之后,我尝试为状态从OK到CRIT设置一个简单的警报。然而,这只是不起作用。没有警报被发送。在这一点上,我们放弃了,在花费超过1周后试图让事情上班。

要记住的一件事是,涌入云的免费层只包括2个警报(所以我们肯定需要升级到有偿层,如果我们决定留在涌入云端)。

我们遇到的另一个错误是,在一个点,一个团队成员尝试重置他们的密码,这改为创建了一个全新的组织,并且不再能够使用新的电子邮件地址创建新帐户而无法重新加入原始组织...

即使我们以前使用的Grafana用于可视化,我们也有点犹豫了尝试Grafana云。主要原因是我们需要从涌入的涌入,为我们的存储器进行存储到Graphite或Prometheus,这些云在Grafana云上提供。

由于我们主要监视基本应用指标,我们理想地想要一个简单的端点,我们可以将数据推送到(无需花哨的缓冲,冗余或错误检查)。此外,由于我们的应用程序在PaaS中运行,我们不希望必须安装任何额外的本地依赖项,以便将数据推向Grafana。最初,我认为这是一个需要运行的本地代理,但我们最终弄清楚如何使用石墨HTTP API将指标推向Grafana。

找到有点棘手,但可以使用石墨HTTP API将数据直接推送到Grafana云。可以在此处找到文档。如果链接不起作用,因此尝试谷歌作用,因为他们的文档链接似乎更改和打破了。

它们还提供了一个小示例GitHub Repo,我用作起点。

const api_key =' < orgid>:<令牌> ' ; const端点=' https://graphite-us-central1.grafana.net/metrics' ; //获取当前UNIX时间戳const time = math。地板(日期。现在()/ 1000); //WE'每10秒报告值Const间隔= 10; const data = {时间:数学。地板(时间/间隔)*间隔,//将时间戳对齐到间隔名称:' app.some_metric.some_field' ,间隔:间隔,值:1.234,标签:['类型= foo' ,'亲切=酒吧' ],}; const标题= {授权:`持票人$ {api_key}`};得到了 。 post(端点,{标题,​​responseType:' json',解决obdyonly:true,json:data,});

用石墨记住的一个重要事情是指标必须与给定的间隔对齐。例如,10的间隔意味着给定系列每10秒将有一个值。最好频繁地确保将度量稍微稍微推动您的度量,然后若要确保不会错过任何时隙,这将导致数据中的空隙(空值)。

由于我们之前只使用涌入作为Grafana的数据源以前,因此有一点具有石墨的学习曲线。特别是,我很难弄清楚如何使用标签。但是,一旦您了解语法,它就会很容易使用。

但是,对于与标签的系列,您首先要选择标记:名称才能选择您的度量标准(我没有自动创建石墨,因此我首先对此感到困惑)。

之后,您可以添加其他标记以通过标记值过滤数据,并且您还可以添加诸如AliasbyTags的函数以通过标签值命名每个系列(导致更好的观看图例)。

我们发现的另一个奖金功能是合成监控功能,也可用在免费层。它提供了一些基本的应用程序监控,具有停机时间监控和全局延迟检查。很高兴有!

整体两个选项都有非常慷慨的自由层,非常适合任何希望开始基本监控的人。涌入云的最大缺点是他们只在自由层上提供2个警报,这在我看来感觉非常低。

两者之间的最大区别显然是格拉纳纳提供的成熟和丰富的功能集,而解决方案涌入云提供缺乏和越野车。我们现在将坚持Gradan云!