介绍Checkson
#python #devops #docker #monitoring

监视您构建的系统是开发过程的关键部分。重要的是要知道何时出现问题,因此您可以尽快解决。

有许多用于监视服务器的现有工具。还有很多用于监视Web应用程序和REST API的解决方案。但是,当监视的工作流程复杂时,现有工具通常会掉落,尤其是当它们涉及多个系统和协议时。 Checkson专注于非常灵活地处理这些情况。设置监视检查的基本步骤是:

  • 使用您需要的任何库
  • 编写任何您喜欢的编程语言的脚本
  • 在本地运行脚本,直到它按预期运行
  • 将您的脚本包裹在Docker映像中,然后将其推入注册表
  • 配置Checkson,以便您的脚本定期在云中运行
  • 如果脚本失败,请通知

那样简单。

让我们看看一个例子。成像您要监视购买过程。让我们写一个

的脚本
  • 通过REST API下订单
  • 验证该订单是使用另一个API
  • 成功处理的订单
  • 验证是否发送了确认电子邮件,例如使用MailTrap
  • 取消顺序

在python中,这看起来像这样:

import requests
import os

def main():
  try:
    # Place order
    response = requests.post('https://example.com/api/order', json={'product': '123'})
    response.raise_for_status()

    # Validate order
    response = requests.get('https://example.com/admin-api/order/123')
    response.raise_for_status()

    if response.json()['status'] != 'confirmed':
      raise Exception('Order not confirmed')

    # Validate email
    email = get_latest_email_from_mailtrap()
    if 'Thank you for your purchase' not in email.subject or '123' not in email.body:
      raise Exception('Issue with email')

  except:
    os.exit(1)
  finally:
    # Cancel order
    requests.delete('https://example.com/admin-api/order/123')


if __name__ == '__main__':
  main()

检查子检查通常用作烟雾测试。当他们失败时,您知道有些问题,您可以进一步研究。

您可以看到,尽管同时检查了许多组件,但脚本可以保持非常简单和可读性。而且,开发的发展非常简单,因为您可以在本地运行它,直到它按预期运行为止。然后,将其包装在Docker图像中,将其推开并将其交给CheckSon,以便定期运行。

您的Dockerfile看起来像这样:

FROM python:3.10-slim

COPY . /app
WORKDIR /app
RUN pip install requests

ENTRYPOINT ["python", "app.py"]

您可以构建并将图像推到注册表,例如Docker Hub:

docker build -t someuser/my-checkson-check:1.0 .
docker push someuser/my-checkson-check:1.0

您可以使用Checkson Web UI或使用Checkson CLI
配置支票

checkson create order-check \
  --image someuser/my-checkson-check:1.0 \
  --email someuser@example.com

一行,这将创建一个新的检查,该检查将每10分钟运行一次并设置一个通知频道。支票失败后,您将收到一封电子邮件。

您可以看到,我们使用一个非常可维护的简单脚本对一个非常复杂的工作流进行了建模。我们还使用了CheckSon CLI来创建检查。在后来的Blob帖子中,我们将探索如何构建Docker映像并在CI/CD管道中配置检查。

您可以在checkson.io上获取有关Checkson的更多信息。