cobald.monitor.format_line module
- class cobald.monitor.format_line.LineProtocolFormatter(tags: Dict[str, Any] | Set[str] | None = None, resolution: float = None)[source]
Bases:
Formatter
Formatter that emits data as InfluxDB Line Protocol
- Parameters:
tags – record data to use as tags
resolution – resolution of timestamps in seconds
The
tags
act as a whitelist for record keys if they are an iterable. When a dictionary is supplied, its values act as default values if the key is not in a record.The
resolution
allows summarising data by downsampling the timestamps to the given resolution, e.g. for aresolution
of10
you can expect timestamps 10, 20, 30, … Ifresolution
isNone
the timestamp is omitted from the Line Protocol and Telegraf will take care on setting the current timestamp.- format(record: LogRecord) str [source]
Format the specified record as text.
The record’s attribute dictionary is used as the operand to a string formatting operation which yields the returned string. Before formatting the dictionary, a couple of preparatory steps are carried out. The message attribute of the record is computed using LogRecord.getMessage(). If the formatting string uses the time (as determined by a call to usesTime(), formatTime() is called to format the event time. If there is exception information, it is formatted using formatException() and appended to the message.
- cobald.monitor.format_line.line_protocol(name, tags: dict = None, fields: dict = None, timestamp: float = None) str [source]
Format a report as per InfluxDB line protocol
- Parameters:
name – name of the report
tags – tags identifying the specific report
fields – measurements of the report
timestamp – when the measurement was taken, in seconds since the epoch