领事的门卫发现了服务。
项目描述
管理员
ianitor是您使用 consul发现的服务的看门人。它可以通过 consul API 自动注册新服务并管理 TTL 健康检查。
它提供了简单的 shell 命令来包装进程,并且可以简单地用于您现有的进程/服务监督工具,如 supervisord、 circus、 runit等。
Consul/Python 版本兼容性
ianitor与 Python 2.7、3.3、3.4 和 3.5 版本兼容。它还针对从 0.4.1 版本开始的每个主要/次要领事版本的每个最新补丁版本进行测试。
有关我们的测试矩阵的详细信息,请参见travis.yml
文件。
安装使用
只需使用 pip 安装:
$ pip install ianitor
你准备好了:
$ ianitor appname -- ./yourapp --some-switch
您可以检查服务是否已注册 diggin' 到 consul DNS 服务:
$ dig @localhost -p 8600 appname.service.consul
; <<>> DiG 9.9.3-P1 <<>> @localhost -p 8600 appname.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25966
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;appname.service.consul. IN A
;; ANSWER SECTION:
appname.service.consul. 0 IN A 10.54.54.214
;; Query time: 44 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Tue Oct 28 13:53:09 CET 2014
;; MSG SIZE rcvd: 78
完整用法:
usage: ianitor [-h] [--consul-agent hostname[:port]] [--ttl seconds]
[--heartbeat seconds] [--tags tag] [--id ID] [--port PORT] [-v]
service-name -- command [arguments]
Doorkeeper for consul discovered services.
positional arguments:
service-name service name in consul cluster
optional arguments:
-h, --help show this help message and exit
--consul-agent=hostname[:port] set consul agent address
--ttl=seconds set TTL of service in consul cluster
--heartbeat=seconds set process poll heartbeat (defaults to
ttl/10)
--tags=tag set service tags in consul cluster (can be
used multiple times)
--id=ID set service id - must be node unique
(defaults to service name)
--port=PORT set service port
-v, --verbose enable logging to stdout (use multiple times
to increase verbosity)
ianitor 是如何工作的?
ianitor 使用 python 生成进程subprocess.Popen()
,并在--
. 它将自己的标准输入重定向到孩子的标准输入,将孩子的标准输出/标准错误重定向到他自己的标准输出/标准错误。
这样,如果 ianitor 记录到标准输出,它就不会干扰托管服务的记录。此外,ianitor 不会记录任何内容,以便更轻松地将其插入您现有的过程监督工具中。
ianitor 处理 consul 代理中的服务注册,并通过不断地请求它的TTL 健康检查端点来将 consul 中的注册服务条目保持在“健康”状态。
示例supervisord配置
假设您在监督下有一些服务:
[program:rabbitmq]
command=/usr/sbin/rabbitmq-server
priority=0
autostart=true
只需用 ianitor 调用包装它:
[program:rabbitmq]
command=/usr/local/bin/ianitor rabbitmq -- /usr/sbin/rabbitmq-server
priority=0
autostart=true
执照
ianitor
根据 LGPL 许可证第 3 版获得许可。
贡献和报告错误
源代码位于: ClearcodeHQ/ianitor。问题跟踪器位于GitHub 问题。项目PyPi 页面。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
ianitor-0.1.0.tar.gz
(7.8 kB
查看哈希)
内置分布
ianitor-0.1.0-py2.py3-none-any.whl
(9.3 kB
查看哈希)