前面在Ceilometer计量数据采集机制中介绍过,Publisher插件是Pipeline机制的一部分,用于将Pipeline中的Sample发布给特定的接收者。用户可以通过开发Publisher插件将计量数据发送到需要送达的接收端。
Publisher插件需要继承ceilometer.publisher.PublisherBase的抽象类,实现如下接口:
@six.add_metaclass(abc.ABCMeta)class PublisherBase(object): @abc.abstractmethod def publish_samples(self, context, samples):"""发布samples到特定接收端""" @abc.abstractmethod def publish_events(self, context, events):"""发布events到特定接收端"""
publish_samples方法用于将Sample对象发送给特定的接收者,publish_events用于将Event对象发动给特定的接收者。
Publisher插件需要被注册在ceilometer.publisher的NameSpace下,用户可以通过Pipeline配置文件(pipeline.yaml)配置该Pipeline需要使用哪种Publisher。