Les ensembles de données d'analyse utilisent les propriétés suivantes. Toutes ces propriétés sont inaltérables, à l'exception de suspended.
|
Ensembles de données disponibles :
ad.avglatency
ad.avglatency[op]
ad.avglatency[result]
ad.binds
ad.binds[hostname]
ad.binds[result]
ad.ops
ad.ops[op]
ad.ops[result]
arc.accesses[hit/miss]
arc.l2_accesses[hit/miss]
arc.l2_size
arc.size
arc.size[component]
cpu.utilization
cpu.utilization[mode]
dnlc.accesses[hit/miss]
fc.bytes
fc.ops
ftp.kilobytes
http.reqs
io.bytes
io.bytes[op]
io.disks[utilization=95][disk]
io.ops
io.ops[disk]
io.ops[op]
iscsi.bytes
iscsi.ops
metacap.bytesused
metacap.percentused
ndmp.diskkb
nfs2.ops
nfs2.ops[op]
nfs3.ops
nfs3.ops[op]
nfs4.ops
nfs4.ops[op]
nfs4-1.ops
nfs4-1.bytes
nic.kilobytes
nic.kilobytes[device]
nic.kilobytes[direction]
sftp.kilobytes
smb.ops
smb.ops[op]
Répertorie tous les ensembles de données d'analyse configurés.
Exemple de demande :
GET /api/analytics/v1/datasets HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: application/json
Exemple de résultat :
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 237 X-Zfssa-Analytics-Api: 1.0 { "datasets": [{ "dataset": "dataset-000", "href": "/api/analytics/v1/datasets/arc.accesses[hit/miss]", "name": "arc.accesses[hit/miss]" }, { "dataset": "dataset-001", "href": "/api/analytics/v1/datasets/arc.l2_accesses[hit/miss]", "name": "arc.l2_accesses[hit/miss]", }, { "dataset": "dataset-002", "href": "/api/analytics/v1/datasets/arc.l2_size", "name": "arc.l2_size", }, { "dataset": "dataset-003", "href": "/api/analytics/v1/datasets/arc.size", "name": "arc.size", }, { "dataset": "dataset-004", "href": "/api/analytics/v1/datasets/arc.size[component]", "name": "arc.size[component]", }, { ... }] }
Obtient les propriétés de l'ensemble de données spécifié.
Exemple de demande :
GET /api/analytics/v1/datasets/nfs4.ops HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: application/json
Exemple de résultat :
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 237 X-Zfssa-Analytics-Api: 1.0 { "dataset": { "activity": "none", "dataset": "dataset-030", "explanation": "NFSv4 operations per second", "grouping": "Protocol", "href": "/api/analytics/v1/datasets/nfs4.ops", "incore": 296128, "name": "nfs4.ops", "size": 53211540, "suspended": false } }
Crée un ensemble de données.
Exemple de demande :
POST /api/analytics/v1/datasets HTTP/1.1 X-Auth-User: root X-Auth-Key: password Content-Type: application/json Content-Length: 26 {"statistic": "test.sine"}
Exemple de résultat :
HTTP/1.1 201 Created Content-Type: application/json Content-Length: 200 Location: /api/analytics/v1/datasets/test.sine { "dataset":{ "href": "/api/analytics/v1/datasets", "name": "test.sine", "grouping": "Test", "explanation": "sine per second", "incore": 34752, "size": 31912, "suspended": false, "activity": "none" } }
Cette commande permet de suspendre ou de reprendre la collecte de données d'un seul ensemble de données.
Exemple de demande de suspension :
POST /api/analytics/v1/datasets/nfs4.ops {"suspended":true}
Exemple de demande de reprise :
POST /api/analytics/v1/datasets/nfs4.ops {"suspended":false}
Exemple de résultat :
HTTP/1.1 202 Accepted Content-Type: application/json Content-Length: 228 X-Zfssa-Analytics-Api: 1.0 { "dataset" { ... "suspended": false } }
Détruit un ensemble de données.
Exemple de demande :
DELETE /api/analytics/v1/datasets/test.sine HTTP/1.1
Exemple de résultat :
HTTP/1.1 204 No Content X-Zfssa-Analytics-Api: 1.0
Enregistre un ensemble de données.
Exemple de demande :
PUT /api/analytics/v1/datasets/nfs4.ops/data
Exemple de résultat :
HTTP/1.1 202 Accepted
Le tableau suivant affiche les paramètres de requête utilisés pour nettoyer les ensembles de données.
|
Exemple de demande :
L'exemple suivant supprime toutes les données par seconde, par minute et par heure de l'ensemble de données nfs4.ops. Les données collectées quotidiennement, hebdomadairement, mensuellement ou annuellement restent dans l'ensemble de données.
DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour
Exemple de résultat :
HTTP/1.1 204 No Content
Exemple de demande :
L'exemple suivant supprime toutes les données par seconde, par minute et par heure de l'ensemble de données nfs4.ops qui ont été collectées avant l'heure de fin endtime spécifiée.
DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour&endtime=20130910T00:00:00
Renvoie les données d'un ensemble de données d'analyse actif. L'extraction des données par seconde et granulaires est prise en charge.
Le tableau suivant affiche les paramètres de requête basés sur le temps utilisés pour obtenir les données des ensembles de données.
|
L'heure de début ne peut pas être située dans le futur. Si le nombre de secondes nécessaires à la collecte de données dépasse l'heure actuelle, le serveur attend chaque échantillon avant de renvoyer les données.
Pour extraire les données granulaires, utilisez une combinaison de paramètres span et granularity. Lorsque les paramètres span et granularity sont utilisés, le paramètre seconds est ignoré. Si span ou granularity est mal saisi, la demande est ignorée et le paramètre seconds est utilisé à la place. Une demande incorrecte ou non prise en charge entraîne l'affichage du message d'erreur "Input span and granularity are not supported."
Les paramètres span et granularity peuvent être combinés de la façon suivante :
Si span a la valeur minute, granularity ne peut prendre que la valeur minute.
Si span a la valeur hour, granularity peut prendre la valeur minute ou hour.
Si span a la valeur day, granularity peut prendre la valeur minute, hour ou day.
Si span a la valeur week, granularity peut prendre la valeur hour, day ou week.
Si span a la valeur month, granularity peut prendre la valeur day, week ou month.
Si span a la valeur year, granularity peut prendre la valeur week, month ou year.
Le tableau suivant affiche les propriétés d'ensemble de données qui sont renvoyées.
|
Exemple de demande pour collecter les données en direct pendant deux secondes :
GET /api/analytics/v1/datasets/io.ops[op]/data?start=now&seconds=2 HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: text/x-yaml
Exemple de résultat :
HTTP/1.1 200 OK Content-Type: text/x-yaml X-Zfssa-Analytics-Api: 1.0 Transfer-Encoding: chunked { "data": [ { "sample": 457642682, "data": { "data": [ { "key": "write", "value": 199 } ], "value": 199 }, "startTime": "20200818T18:43:47", "samples": 457642683 }, { "sample": 457642683, "data": { "data": [ { "key": "write", "value": 289 } ], "value": 289 }, "startTime": "20200818T18:43:48", "samples": 457642684 } ] }
Exemple de demande pour collecter sept jours de données sur une période d'une semaine :
GET /api/analytics/v1/datasets/io.ops[op]/data?start=20200811T15:00:00&granularity=day&span=week HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: text/x-yaml
La demande suivante signale que l'ensemble de données io.ops[op] contient les opérations d'E/S par seconde réparties par type d'opération (lecture ou écriture) :
GET /api/analytics/v1/datasets/io.ops[op]
Exemple de résultat. Pour des raisons de concision, cinq des sept échantillons de sortie ont été omis.
HTTP/1.1 200 OK Content-Type: text/x-yaml X-Zfssa-Analytics-Api: 1.0 Transfer-Encoding: chunked { "data": [ { "sample": 457197423, "data": { "max": 3156, "data": [ { "max": 588, "key": "read", "value": 6, "min": 0 }, { "max": 3156, "key": "write", "value": 45, "min": 0 } ], "value": 52, "min": 0 }, "startTime": "20200811T15:00:00", "samples": 457644011 }, { "sample": 457283823, "data": { "max": 3675, "data": [ { "max": 588, "key": "read", "value": 6, "min": 0 }, { "max": 3675, "key": "write", "value": 45, "min": 0 } ], "value": 52, "min": 0 }, "startTime": "20200812T15:00:23", "samples": 457644011 } ] }
Vous pouvez également utiliser une valeur sample comme valeur start. La demande suivante produit comme résultat les données de l'échantillon d'une seconde spécifié :
GET /api/analytics/v1/datasets/io.ops[op]/data?start=457642682 HTTP/1.1