buildgrid.server.monitoring module

class buildgrid.server.monitoring.MonitoringOutputType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

STDOUT = 'stdout'
FILE = 'file'
SOCKET = 'socket'
UDP = 'udp'
SILENT = 'silent'
class buildgrid.server.monitoring.MonitoringOutputFormat(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

BINARY = 'binary'
JSON = 'json'
STATSD = 'statsd'
class buildgrid.server.monitoring.StatsDTagFormat(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

NONE = 'none'
INFLUX_STATSD = 'influx-statsd'
DOG_STATSD = 'dogstatsd'
GRAPHITE = 'graphite'
class buildgrid.server.monitoring.UdpWrapper(endpoint_location: str)

Bases: object

Wraps socket sendto() in write() so it can be used polymorphically

write(message: bytes) None
close() None
class buildgrid.server.monitoring.MonitoringBus(endpoint_type: MonitoringOutputType = MonitoringOutputType.SOCKET, endpoint_location: str | None = None, metric_prefix: str = '', serialisation_format: MonitoringOutputFormat = MonitoringOutputFormat.STATSD, tag_format: StatsDTagFormat = StatsDTagFormat.INFLUX_STATSD, additional_tags: dict[str, str] | None = None)

Bases: object

property is_enabled: bool

Whether monitoring is enabled.

The send_record methods perform this check so clients don’t need to check this before sending a record to the monitoring bus, but it is provided for convenience.

property prints_records: bool

Whether or not messages are printed to standard output.

property is_silent: bool

Whether or not this is a silent monitoring bus.

process_should_exit() bool

Whether the streaming worker process should exit.

The streaming worker process should exit if explicitly told to by the _stop_streaming_worker event or if it has been orphaned by the parent.

start() None

Starts the monitoring bus worker task.

stop() None

Cancels the monitoring bus worker task.

prefix_record_nowait(record: MetricRecord) MetricRecord

Prefix the record’s metric name. This is the same as prefix_record, but called synchronously.

See the prefix_record docstring for notes on the prefixing rules.

Parameters:

record (Message) – The record to prefix.

send_record_nowait(record: MetricRecord | LogRecord) None

Publishes a record onto the bus synchronously.

Parameters:

record (Message) – The record to send.

buildgrid.server.monitoring.set_monitoring_bus(monitoring_bus: MonitoringBus) None
buildgrid.server.monitoring.get_monitoring_bus() MonitoringBus