一组nagios插件,用于监视opentable mesos中托管的服务。
otpl-service-check的Python项目详细描述
基本的nagios/sensu检查opentable发现服务。
依赖关系
见requirements.txt。
参数
使用-h或--help运行以查看命令行参数 文档。
接口
如果解析命令行参数存在错误,则退出时返回 代码3(UNKNOWN)并打印调用错误。
如果到达发现和分析公告时出错 对于您的服务,我们用退出代码3返回(^ {TT4}$)。
我们记录与公告相关的关键和警告状态,并返回 用退出代码2(^ {TT6}$)和1(^ {TT7}$) 分别是。
健康检查终点检查
默认情况下,otpl-service-check检查服务的运行状况。
如果healthcheck端点返回状态代码2xx,则 被认为是成功的。如果返回的是4xx,则这被视为 警告(退出代码1)。{T1111}被认为是关键的(退出代码2)。 在后两种情况下,除了记录服务状态外, 基于响应的Content-Type,我们记录解析后的版本 响应体的。
- 将打印相当格式的^ {TT13}$响应的第一千兆字节。
- text/html响应被省略;将打印一条表示同样多响应的消息。
- 将打印前128个字节的text/plain响应。
- 否则,响应将被视为text/plain。
all记录关键状态、警告和成功,并且 退出状态是整个过程中最差的一组。
避免比赛
从发现中提取所有公告,然后检查每个公告 天生活泼。如果otpl-service-check发现严重错误,则 仔细检查你的服务公告。如果有任何关键的 错误是一个不再存在的声明,它们是 降级为警告,并发出进一步警告,指示 这种情况发生了。
注意,这并不能避免所有的比赛条件,只是 他们的阶级。
端点响应代码
- 2xx:0,OK
- 4xx:1,WARNING
- 5xx:2,CRITICAL
这有点滥用http响应代码,但我们的策略是 这是最简单最灵活的致富方式 来自健康检查终结点的响应。
释放
设置pypi rc文件,.pypirc。例如:
[distutils] index-servers = pypi pypitest [pypitest] repository = https://testpypi.python.org/pypi username = cpennello_opentable [pypi] repository = https://pypi.python.org/pypi username = cpennello_opentable
假设发布的版本是a.b.c。
创建发行版:python setup.py sdist bdist_wheel
签署分发文件:
for x in dist/*a.b.c*;do gpg --detach-sign -a $x done
使用Twine,首先上传到测试repo。 twine upload -r pypitest dist/*a.b.c*
然后是真正的回购。 twine upload -r pypi dist/*a.b.c*
注释
Nagios和Sensu插件API文档: