领事的看门人发现了服务。
ianitor的Python项目详细描述
i编辑器
ianitor是使用 consul。它可以自动注册新的服务 通过consunapi管理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
您可以检查服务是否已注册到领事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()
生成进程
在--
之后指定。它将自己的stdin重定向到孩子的stdin
孩子们把stdout/stderr交给他自己的stdout/stderr。
这样,iAnitor不会干扰托管服务的日志记录,如果 记录到stdout。此外,iAnitor不记录任何内容,以使 将其插入到现有的过程监控工具中。
Ianitor在领事馆代理处办理服务登记并保存 在领事“健康”状态下通过不断请求 是TTL health check endpoint。
监督配置示例
假设您在主管的监督下有一些服务:
[program:rabbitmq]command=/usr/sbin/rabbitmq-serverpriority=0autostart=true
只需用IAnitor调用包装即可:
[program:rabbitmq]command=/usr/local/bin/ianitor rabbitmq -- /usr/sbin/rabbitmq-serverpriority=0autostart=true
许可证
ianitor
根据lgpl许可证第3版获得许可。
贡献和报告错误
源代码位于: ClearcodeHQ/ianitor。问题跟踪程序 位于GitHub Issues。 项目PyPi page。