. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace LibreNMS\Interfaces\Data; interface Datastore { /** * Check if this is enabled by the configuration * * @return boolean */ public static function isEnabled(); /** * Checks if the datastore wants rrdtags to be sent when issuing put() * * @return boolean */ public function wantsRrdTags(); /** * The name of this datastore * * @return string */ public function getName(); /** * Array of stats should be [type => [count => n, time => s]] * * @return array */ public function getStats(); /** * Datastore-independent function which should be used for all polled metrics. * * RRD Tags: * rrd_def RrdDefinition * rrd_name array|string: the rrd filename, will be processed with rrd_name() * rrd_oldname array|string: old rrd filename to rename, will be processed with rrd_name() * rrd_step int: rrd step, defaults to 300 * * @param array $device * @param string $measurement Name of this measurement * @param array $tags tags for the data (or to control rrdtool) * @param array|mixed $fields The data to update in an associative array, the order must be consistent with rrd_def, * single values are allowed and will be paired with $measurement */ public function put($device, $measurement, $tags, $fields); }