作者:来自 Elastic David Pilato
这篇文章来自一个真实的故事,当时我想在我女儿的大学注册页面可用时立即提醒她。需要监控的页面位于登录/密码页面后面。
今年,圣诞老人增加了一项新的玩具订购服务。
如果使用你的电子邮件和正确的密码登录(本例中为 santa),你将看到该服务尚未准备就绪。
但是,如果你想在服务可用时立即收到警报,该怎么办?你如何监控它?你甚至不知道服务会是什么样子,因为你不拥有它。
因此,对于这次旅程,我使用了 Elastic Synthetic Monitoring,因为这对我来说是最简单的事情,因为我知道它在 cloud.elastic.co 上运行良好,而且我不必在互联网上启动任何 VM 来进行这些检查。
需要做什么才能实现这一点?
- 我需要检测登录服务后,文本不再是 “The service is not yet open. It will open on December 1, 2024 at midnight.”
- 如果此文本不同,或者发生任何不同的事情(例如转到另一个页面),我需要使用电子邮件发出警报,但也需要使用 Slack,因为我会在手机上收到适当的通知。
设置监视器
我们首先创建一个监视器。它只是检查网页是否可用。请注意,我可以检查该服务是否也可从地球上的多个位置使用。在这里,我仅选择了英国位置来运行我的测试。Elastic Cloud开箱即用,提供许多位置。
更多有关如何设置监视器的文章,请参阅 “Observability:Synthetic monitoring - 合成监测入门(一)”。
但是,我们没有测试用户旅程:登录,检查文本。所以我们需要编辑我们的监视器:
服务监控带有默认的 Playwright 脚本,该脚本只需打开一个页面:
你可以手动编辑它,也可以使用合成记录器(Synthetics Recorder)以脚本的形式重现用户行为。
合成记录器
打开合 Synthetics Recorder。
然后点击 “Start”。这将打开浏览器。只需点击并在网站内导航,点击登录按钮,输入你的电子邮件和密码,然后验证。
点击您要检查的文本。然后停止记录器。
我们只想编辑最后一个操作(text selection),以便我们可以在内部文本上添加 assertion。我们只需选择标题并检查值是否是您当前看到的值:“The service is not yet open. It will open on December 1, 2024 at midnight.”
我们只需将脚本导入 Synthetics Monitoring 即可:
开始监控
只需启用监控器并根据需要更改频率即可。因为我想要超级灵敏,所以我将频率设置为 1 分钟。
经过几次运行后,你将看到一切正常,因为网站上的文本没有改变。
Slack 警报
要添加 Slack 连接器,你首先需要在 Slack 上创建一个应用程序。
然后激活 webhook。
并定义应用程序将在哪个渠道发送消息。
这将添加一个 webhook。复制该值。
将其粘贴到 Kibana 上的连接器中。
你现在可以创建编辑监控状态规则的警报。
并添加 Santa Slack 连接器(如果你愿意,还可以添加电子邮件连接器)
等待网页更新
一旦运行,它就不会产生任何警报,直到页面更改。这将导致 Playwright 脚本失败。
这将触发我们期待的通知。
警报提供所有默认详细信息。我只是在此屏幕截图上隐藏了 Kibana 集群的确切 URL。
订购你的玩具!
通过这个简单的技巧,你很可能是第一个知道圣诞老人真的开办了这项服务的人,尽管这比网站上写的要早。所以你可以直接去那里订购你梦寐以求的玩具。
圣诞快乐,Elky!
原文:Dec 1st, 2024: [EN] Monitor the opening of Santa toy's order service - Advent Calendar - Discuss the Elastic Stack