9.10. DataSource Storage Backends¶
Contenuti
9.10.1. Introduzione¶
La storicizzazione dei dati raccolti tramite datasource e’ affidata ad un modulo di Sanet che si occupa di creare e aggiornare il database delle serie storiche.
9.10.2. Configurazione¶
Il modulo di backend viene configurato da file settings tramite i parametri:
- DATASOURCE_STORAGE_HANDLER : modulo python da caricare per connettesi al backend.
- DATASOURCE_STORAGE_PARAMS : dizionario con parametri di configurazione che dipendono dal modulo caricato.
Esempio:
DATASOURCE_STORAGE_HANDLER = 'core.api.datasource.rrd.RRDTOOLDataSourceStore' DATASOURCE_STORAGE_PARAMS = { ... ... parametri di configurazione specifici del modulo di beckend ... }
9.10.3. Moduli di backend¶
9.10.3.1. RRDTOOL DataSource Store module¶
Per storicizzare i dati dei datasource tramite RRDTOOL e’ necessario usare il modulo:
DATASOURCE_STORAGE_HANDLER = 'core.api.datasource.rrd.RRDTOOLDataSourceStore'
9.10.3.1.1. Configurazione modulo¶
I parametri di configurazione del modulo sono:
Parametro Descrizione storage_base_dir Directory dove salvare i file RRD heartbeat_factor L’heartbeat dei file RRD viene alcolato moltiplicando il minperiod con questo valore. rrdcached_flush_before_read Se impostato a true, qualuneuq operazione di lettura dati causa un flush preventivo del demone RRDCACHED
Esempio:
DATASOURCE_STORAGE_PARAMS = { # Base directory where the storage will put RRD files ( $DATA_DIR / <tenant_id> /rrds/ <rrd file id>.rrd ) "storage_base_dir" : DATA_DIR, # RRD file's heartbead = DATASOURCE.min_period * heartbeat_factor #heartbeat_factor: 60, # Send FLUSH command to RRDCACHED before read fetching data from RRDs # Be sure RRDCACHED_ADDRESS is in your environment!! #"rrdcached_flush_before_read": False }
9.10.3.1.2. Configurazione avanzata dei datasource¶
Il parametro storage-spec puo’ essere utilizzato per specificare parametri specifici di RRDTOOL non gestibili direttamente da Sanet.
Danger
quando viene modificato il parametro storage-spec (in un template o in una configurazione specifica), deve essere effettuata una operazione di aggiornamento dei file RRD. NON e’ predicibile quanto tempo sia necessaio a RRDTOOL per aggiornare tutti i file RRD potenzialmente coinvolti da questa configurazione.
Danger
La modifica della configurazione di Sanet e l’aggioranmento dei file RRD non sono operazioni atomiche e/o transazionali. In caso di errori di aggiornamento dei file RRD, Sanet non e’ in grado di garantire che alcuni file siano stati gia’ modificati con una configurazione inconsistente rispetto a quanto specificato nel database di configurazione di Sanet.
La configurazione avviene impostato una stringa con la seguente sintassi:
<option>=<value> <option>=<value> ...
I parametri che e’ possibile specificare sono i seguenti:
Nome Tipo Default Descrizione DST stringa I valori ammessi sono: COUNTER, DERIVE. Questo parametro viene considerato solo se il datasource e’ impostato di tipo COUNTER (gauge = false). min numero Valore minimo valido per la memorizzazione. Se il valore da salvare e’ inferiore, viene storicizzato il valore nullo (NaN). max numero Valore massimo valido per la memorizzazione. Se il valore da salvare e’ superiore, viene storicizzato il valore nullo (NaN).
Esempio:
DST=DERIVE min=0 max=5000000000
9.10.3.2. Null DataSource Store module¶
Questo modulo non salva e non restituisce dati.
Il suo utilizzo e’ prevalentemente a scopo di debug.
9.10.3.2.1. Configurazione modulo¶
Per utilizzarlo bisogna impostare nel file di configurazione di Sanet (settings.py):
DATASOURCE_STORAGE_HANDLER = 'core.api.datasource.nullstore.NullDataSourceStore'
Note
Il parametro DATASOURCE_STORAGE_PARAMS viene completamente ignorato
Il modulo non e’ parametrizzabile.
Note
Il parametro di configurazione DATASOURCE_STORAGE_PARAMS viene completamente ignorato.