nautobot.apps.events
¶
APIs for Nautobot event-notification subsystem.
nautobot.apps.events.EventBroker
¶
Bases: ABC
Abstract base class for concrete implementations of event brokers such as syslog, Redis, Kafka, etc.
publish(*, topic, payload)
abstractmethod
¶
Possibly publish the given data payload
to the given event topic
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
topic |
str
|
Topic identifier.
Convention is to use snake_case and use periods to delineate related groups of topics,
similar to Python logger naming. For example, you might receive topics such as |
required |
payload |
dict
|
JSON-serializable structured data to publish. While not all EventBrokers may actually use JSON as their data format, it makes for a reasonable lowest common denominator for serializability. |
required |
nautobot.apps.events.RedisEventBroker
¶
Bases: EventBroker
EventBroker for publishing events to Redis.
__init__(*args, url, **kwargs)
¶
Initialize and configure a RedisEventBroker.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
The Redis URL to connect to. |
required |
nautobot.apps.events.SyslogEventBroker
¶
Bases: EventBroker
__init__(*args, level=logging.INFO, **kwargs)
¶
Initialize a SyslogEventBroker that emits logs at the given level.
nautobot.apps.events.deregister_event_broker(event_broker)
¶
Deregister a previously registered EventBroker
instance so that it no longer receives published events.
nautobot.apps.events.publish_event(*, topic, payload)
¶
Publish the given event payload to the given topic via all registered EventBroker
instances.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
topic |
str
|
Topic identifier.
Convention is to use snake_case and use periods to delineate related groups of topics,
similar to Python logger naming. For example, you might use |
required |
payload |
dict
|
JSON-serializable structured data to publish. While not all EventBrokers may actually use JSON as their data format, it makes for a reasonable lowest common denominator for serializability. |
required |
nautobot.apps.events.register_event_broker(event_broker)
¶
Register an EventBroker
instance for use by Nautobot.
The publish_event()
API will publish events to each registered broker.
The expectation/intent here, at least initially, is that a given deployment will instantiate zero or more
EventBrokers, then call register_event_broker()
for each one, as part of Nautobot initial startup.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
event_broker |
EventBroker
|
The initialized/configured EventBroker instance to register. |
required |