我尽力通过SocketHandler直接将指标记录到碳中,但没有运气:
logger.conf
:
[loggers]
keys=root,carbon
[handlers]
keys=carbonHandler
[formatters]
keys=carbonFormatter
[logger_carbon]
level=DEBUG
handlers=carbonHandler
qualname=carbon
propagate=0
[logger_root]
level=DEBUG
handlers=carbonHandler
[handler_carbonHandler]
class=logging.handlers.SocketHandler
level=DEBUG
formatter=carbonFormatter
args=('$HOST', 2003)
[formatter_carbonFormatter]
format=%(message)s %(created)i
然后,用它来记录:
import logging
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('carbon')
logger.info('test.python 42')
这是一个悲伤的失败......
我可以使用echo "test.metric 42 $(date +'%s')" | nc $HOST 2003
你看到了吗?
我是否尝试做一些不起作用的事情?
感谢您的帮助!
答案 0 :(得分:0)
假设您的配置文件完全一样 - 将配置文件中的“$ HOST”替换为主机的实际名称。那么会发生什么?如果可行并且您需要该名称与环境相关,请尝试使用
args=(os.environ['HOST'], 2003)
在配置文件中。