API de séries chronologiques MetricBase
L’API de séries chronologiques MetricBase fournit des points de terminaison pour insérer des données dans une base de données, y récupérer des informations et exécuter des transformations MetricBase .
Ces API ne peuvent être utilisées que lorsque le module d’extension MetricBase (com.snc.clotho) est installé et activé.
Rôle requis pour écrire dans cette API : clotho_rest_put.
Les exemples de cette section ont été créés à l’aide des données du module d’extension MetricBase (com.snc.clotho).
Séries chronologiques MetricBase : GET /now/clotho/table/{table}/{subject}/{metric}
Récupère les données de séries chronologiques spécifiées à partir de la MetricBase base de données.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/table/{table}/{subject}/{metric}
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Métrique | Nom de la colonne de la table identifiée dans le subject paramètre à utiliser comme mesure. Type de données : chaîne |
| objet | Sys_id du GlideRecord associé à cette série. Type de données : chaîne |
| table | Nom de la table contenant le GlideRecord associé à cette série. Type de données : chaîne |
| Nom | Description |
|---|---|
| sysparm_display_value | Marqueur indiquant si les données de résultat doivent être étiquetées avec la valeur d’affichage de l’enregistrement d’objet si aucune autre étiquette n’est spécifiée. Valeurs valides :
Type de données : booléennes Valeur par défaut : false |
| sysparm_end | Requis. Heure de fin de la période d’évaluation. Une valeur vide ou manquante est traitée comme l’heure actuelle. Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| sysparm_start | Requis. Heure de début de la période d’évaluation. La valeur spéciale all peut être utilisée pour définir l’heure de début comme l’heure actuelle moins la période de conservation maximale pour les mesures spécifiées. Une valeur vide ou manquante est traitée comme un tout implicite.Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| Nom | Description |
|---|---|
| Néant |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| étiquette | Étiquette utilisée pour identifier l’ensemble de résultats de cette mesure. Type de données : chaîne |
| seriesRef | Résultats des séries de données. Type de données : tableau |
| seriesRef.metric | Nom de la mesure à partir de laquelle la série de données a été obtenue. Apparaît uniquement si l’objet metrics est transmis dans la demande. Type de données : chaîne |
| seriesRef.subject | sys_id de l’enregistrement de la série de données. Situé dans la table spécifiée dans seriesRef.table. Type de données : chaîne |
| seriesRef.table | Nom de la table à partir de laquelle la série de données a été obtenue. Type de données : chaîne |
| valeurs | Les valeurs des séries transformées. Type de données : tableau |
| valeurs.horodatage | Horodatage ISO 8601 de la valeur. Type de données : chaîne |
| valeurs.valeur | Les valeurs de mesures. Type de données : nombre |
Demande cURL
curl "https://instance.servicenow.com/api/now/v1/clotho/
table/mb_demo_drone/626b051787333200a328c5b836cb0b99/
mb_demo_mt_altitude?sysparm_start=2019-03-20T17%3A04%3A55
&sysparm_end=2019-03-20T17%3A09%3A55" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
{
"seriesRef": {
"subject": "626b051787333200a328c5b836cb0b99",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_altitude"
},
"label": "626b051787333200a328c5b836cb0b99:
mb_demo_drone|mb_demo_mt_altitude",
"values": [
{
"timestamp": "2019-03-20T17:05:00Z",
"value": 83.150185
},
{
"timestamp": "2019-03-20T17:06:00Z",
"value": 83.46074
},
{
"timestamp": "2019-03-20T17:07:00Z",
"value": 83.83104
},
{
"timestamp": "2019-03-20T17:08:00Z",
"value": 84.260635
},
{
"timestamp": "2019-03-20T17:09:00Z",
"value": 84.749
}
]
}
Séries chronologiques MetricBase : GET /now/clotho/transform/{table}/{metric}
Transforme les données indiquées en fonction des paramètres spécifiés.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/transform/{table}/{metric}
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Métrique | Nom de la colonne de la table identifiée dans le subject paramètre à utiliser comme mesure. Type de données : chaîne |
| table | Nom de la table contenant le GlideRecord associé à cette série. Type de données : chaîne |
| Nom | Description |
|---|---|
| sysparm_display_value | Marqueur indiquant si les données de résultat doivent être étiquetées avec la valeur d’affichage de l’enregistrement d’objet si aucune autre étiquette n’est spécifiée. Valeurs valides :
Type de données : booléennes Valeur par défaut : false |
| sysparm_end | Requis. Heure de fin de la période d’évaluation. Une valeur vide ou manquante est traitée comme l’heure actuelle. Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| sysparm_query | Chaîne de requête codée pour trouver les enregistrements de sujets. Type de données : chaîne Par défaut : Aucun |
| sysparm_start | Requis. Heure de début de la période d’évaluation. La valeur spéciale all peut être utilisée pour définir l’heure de début comme l’heure actuelle moins la période de conservation maximale pour les mesures spécifiées. Une valeur vide ou manquante est traitée comme un tout implicite.Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| sysparm_subject_limit | Limitez la taille du résultat de la requête d’objet. Type de données : nombre Par défaut : 10 000 |
| sysparm_transforms | Liste de transformations séparées par des virgules. Transformations valides :
Type de données : chaîne Par défaut : Aucun |
| Nom | Description |
|---|---|
| Néant |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml. Valeur par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| étiquette | Étiquette utilisée pour identifier l’ensemble de résultats de cette mesure. Type de données : chaîne |
| seriesRef | Résultats des séries de données. Type de données : tableau |
| seriesRef.metric | Nom de la mesure à partir de laquelle la série de données a été obtenue. Apparaît uniquement si l’objet metrics est transmis dans la demande. Type de données : chaîne |
| seriesRef.subject | sys_id de l’enregistrement de la série de données. Situé dans la table spécifiée dans seriesRef.table. Type de données : chaîne |
| seriesRef.table | Nom de la table à partir de laquelle la série de données a été obtenue. Type de données : chaîne |
| valeurs | Les valeurs des séries transformées. Type de données : tableau |
| valeurs.horodatage | Horodatage ISO 8601 de la valeur. Type de données : chaîne |
| valeurs.valeur | Les valeurs de mesures. Type de données : nombre |
Demande cURL
curl "https://instance.servicenow.com/api/now/v1/clotho/
transform/mb_demo_drone/mb_demo_mt_speed?
sysparm_query=model%3DKingfisher%20Phantom&
sysparm_start=2019-03-25T17%3A04%3A55&
sysparm_end=2019-03-25T17%3A05%3A10" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
Sortie :
[
{
"seriesRef": {
"subject": "2a6b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "2a6b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 33.67892
}
]
},
{
"seriesRef": {
"subject": "666b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "666b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 41.94985
}
]
},
{
"seriesRef": {
"subject": "a26b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "a26b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 37.74187
}
]
},
{
"seriesRef": {
"subject": "ea6b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "ea6b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 34.914192
}
]
},
{
"seriesRef": {
"subject": "ee6b051787333200a328c5b836cb0b91",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "ee6b051787333200a328c5b836cb0b91:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 44.170887
}
]
}
]
Séries chronologiques MetricBase : POST /now/clotho/accumulate
Accumule les valeurs de mesure selon l’horodatage spécifié et enregistre le résultat dans la base de données plutôt que de remplacer la valeur.
Utiliser cette API pour gérer les mesures qui peuvent être additionnées pour une accumulation, telles que les kilowattheures (kWhs) d’électricité. Accumulate effectue un appel pour chaque mesure à l’horodatage fourni. Par exemple, les kilowatts collectés pour un radiateur, une bouilloire électrique et une machine à laver entraîneraient l’accumulation de trois appels.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/accumulate
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| default_value | Valeur par défaut pour l’accumulation à un horodatage donné. Utilisé uniquement lors du premier appel pour accumuler si une valeur n’est pas disponible pour un horodatage donné. Un cas d’utilisation pourrait être l’accumulation d’une mesure de watts pour un total_power. Vous souhaitez accumuler des watts pour un routeur connecté à une prise sans wattmètre pour le mesurer. Si vous connaissez la valeur de consommation et qu’elle est constante), vous pouvez utiliser la valeur constante comme valeur par défaut pour accumuler total_power. Par exemple, vous utiliseriez 20 si le routeur est constamment branché et consomme 20 watts. Type de données : chaîne Par défaut : 0 |
| sysparm_ignore_unknown_series | Marqueur indiquant s’il faut ignorer une série inconnue et poursuivre la transaction sans renvoyer d’erreur. Valeurs valides :
Valeur par défaut : true |
| Nom | Description |
|---|---|
| seriesRef | Liste de chaînes représentant des informations de séries de données à mettre à jour. Type de données : tableau |
| seriesRef.metric | Requis. Nom de la mesure cumulative à mettre à jour. Type de données : chaîne |
| seriesRef.subject | Requis. La sys_id de l’enregistrement dans laquelle mettre à jour les données. Situé dans la table spécifiée dans seriesRef.table. Type de données : chaîne |
| seriesRef.table | Requis. Nom de la table dans laquelle enregistrer les données. Type de données : chaîne |
| valeurs | Requis. Valeurs de série à accumuler et à stocker. Les valeurs portant le même horodatage sont résumées avec le paramètre de default_value requête. Type de données : tableau |
| valeurs.horodatage | Requis. Horodatage ISO 8601 de la valeur. Type de données : chaîne Format : AAAA-MM-jjTHH :mm :jjZ Le caractère représenté par « Z » désigne le fuseau horaire UTC dans un horodatage au format ISO. Cette partie du format d’horodatage est facultative. Exemple : |
| valeurs.valeur | Requis. Valeur de mesure. Type de données : nombre |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| message | Message indiquant la réussite (OK) ou l’erreur. |
Demande cURL
Cet exemple montre comment accumuler des valeurs de mesures à un horodatage donné.
curl "https://instance.servicenow.com/api/now/v1/clotho/accumulate" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"seriesRef\": {
\"subject\": \"3D666b051787333200a328c5b836cb0b92\",
\"table\": \"power_monitoring\",
\"metric\": \"total_power\"
},
\"values\": [
{
\"timestamp\": \"2019-03-21T17:05:00Z\",
\"value\": 0.150185
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 0.46074
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 0.83104
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 1.260635
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 1.749
}
]
}" \
--user "username":"password"
Sortie fournie avec des résultats positifs.
{
"result": {
"message": "ok"
}
}
Séries chronologiques MetricBase : POST /now/clotho/transform
Récupère les données de séries chronologiques pour une ou plusieurs mesures et les regroupe éventuellement après l’application d’une liste spécifiée de transformations qui forment un pipeline linéaire.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/transform
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| sysparm_display_value | Marqueur indiquant si les données de résultat doivent être étiquetées avec la valeur d’affichage de l’enregistrement d’objet si aucune autre étiquette n’est spécifiée. Valeurs valides :
Type de données : booléennes Valeur par défaut : false |
| Nom | Description |
|---|---|
| fin | Requis. Heure de fin de la période d’évaluation. Une valeur vide ou manquante est traitée comme l’heure actuelle. Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| limite | Nombre maximal d'enregistrements à renvoyer. Des valeurs anormalement élevées peuvent avoir un impact sur les performances du système. Type de données : nombre Par défaut : 10 000 |
| metrics | Liste des objets de mesures à utiliser dans la transformation. Pour en savoir plus sur les mesures, reportez-vous à Metrics. Type de données : tableau |
| metrics.groupBy | Liste de champs séparés par des virgules, contenus dans la table spécifiée dans le table paramètre, par lesquels regrouper la série avant de collecter ou d’appliquer des transformations agrégées. L’ordre des éléments de la liste est l’ordre selon lequel les données sont regroupées. Par exemple, si la liste contient deux éléments, « État, code postal », la série est d’abord regroupée par État, puis par code postal au sein de l’État. Type de données : chaîne Par défaut : les données ne sont pas regroupées. |
| metrics.label | Étiquette à utiliser pour l’ensemble de résultats de cette mesure. Elle remplace toutes les étiquettes générées par la chaîne de transformation. Type de données : chaîne Par défaut : étiquette par défaut générée. |
| metrics.metric | Requis si metrics l’objet est transmis. Champ de mesure à utiliser dans la transformation. Ce champ doit se trouver dans la table spécifiée dans le table paramètre. Type de données : chaîne |
| metrics.transforms | Liste des transformations (chaîne de transformation) à appliquer aux données de séries chronologiques récupérées. Chaque transformation s’appuie sur les résultats de la transformation précédente. Pour obtenir la liste des transformations disponibles, consultez Transformations prises en charge ci-dessous. Type de données : tableau |
| metrics.transforms.arg | Dépend de la transformation. Paramètre ou paramètres à transmettre dans la transformation. Lignes directrices générales :
Type de données : nombre, chaîne, booléen ou objet JSON, selon la transformation. (Pour obtenir la liste des transformations disponibles, reportez-vous au tableau Transformations prises en charge ci-dessous.) |
| metrics.transforms.name | Requis si un transforms objet est spécifié. Nom de la transformation. Pour obtenir la liste des transformations disponibles, consultez la table Transformations prises en charge ci-dessous. Type de données : chaîne |
| query | Requête codée à utiliser pour filtrer l’ensemble de résultats. Vous pouvez composer la requête à l’aide de l’éditeur de filtre de la table spécifiée. Une fois créé, sélectionnez Copier l’URL dans le menu contextuel des fils d’Ariane du filtre. Type de données : chaîne Par défaut : Aucun |
| début | Requis. Heure de début de la période d’évaluation. La valeur spéciale all peut être utilisée pour définir l’heure de début comme l’heure actuelle moins la période de conservation maximale pour les mesures spécifiées. Une valeur vide ou manquante est traitée comme un tout implicite.Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| table | Requis. Nom de la table qui contient le GlideRecord associé à cette série. Type de données : chaîne |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 404 | Introuvable. L’élément demandé est introuvable. |
| 405 | Méthode non valide. La fonctionnalité est désactivée. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| résultats | Aucun ou plusieurs objets de résultat ne répondent à la requête. Contient un series tableau ou un grouped tableau. Type de données : tableau |
| résultats.groupés | Liste d’objets de résultat groupés où chaque grouped objet de résultat correspond à un groupe spécifique. Ce format est renvoyé lorsque le paramètre est passé dans le metrics.groupBy corps de la requête. Type de données : tableau |
| resultats.groupés.groupingBy | Valeur transmise dans le metrics.groupBy paramètre dans la demande. Type de données : chaîne |
| resultats.groupés.groupes | Liste des groupes générés en fonction du contenu du metrics.groupBy paramètre dans la demande. Type de données : tableau |
| resultats.groupés.groupes.groupe | Nom du groupe. Type de données : chaîne |
| resultats.groupes.groupes.label | Étiquette du groupe. Type de données : chaîne |
| resultats.groupes.groupés.séries | Valeurs transformées pour le résultat du groupe. Type de données : tableau |
| resultats.groupes.groupes.séries.label | Étiquette de la série. Type de données : chaîne |
| resultats.grouped.groupes.séries.seriesRef | Résultats d’une seule série de données. N’apparaît pas s’il existe plusieurs séries de données dans la réponse. Type de données : objet |
| resultats.groupes.groupes.séries.seriesRef.metric | Nom de la mesure à partir de laquelle la série de données a été obtenue. Apparaît uniquement si l’objet metrics est transmis dans la demande. Type de données : chaîne |
| resultats.groupes.groupes.séries.sériesRef.sujet | Sys_id de l’enregistrement de la série de données. Situé dans la table spécifiée dans results.series.seriesRef.table. Type de données : chaîne |
| resultats.groupes.groupes.sériesRef.table | Nom de la table à partir de laquelle la série de données a été obtenue. Type de données : chaîne |
| valeurs.séries.groupes.résultats | Liste des valeurs de résultat pour le groupe. Type de données : tableau |
| results.grouped.groups.series.values.timestamp | Horodatage ISO 8601 de la valeur. Type de données : chaîne |
| resultats.groupes.groupes.séries.valeurs.valeur | Valeur transformée. Type de données : nombre |
| results.marker | Identificateur unique pour les résultats correspondants. Type de données : chaîne |
| résultats.séries | Liste des séries non groupées d’objets de résultat. Type de données : tableau |
| resultats.séries.label | Étiquette de série de données. Cette valeur est soit générée par le point de terminaison, soit la valeur transmise dans le metrics.label paramètre. Type de données : chaîne |
| results.series.seriesRef | Résultats d’une seule série de données. N’apparaît pas s’il existe plusieurs séries de données dans la réponse. Type de données : objet |
| résultats.séries.seriesRef.metric | Nom de la mesure à partir de laquelle la série de données a été obtenue. Apparaît uniquement si l’objet metrics est transmis dans la demande. Type de données : chaîne |
| resultats.séries.sériesRef.sujet | Sys_id de l’enregistrement de la série de données. Situé dans la table spécifiée dans results.series.seriesRef.table. Type de données : chaîne |
| resultat.séries.seriesRef.table | Nom de la table à partir de laquelle la série de données a été obtenue. Type de données : chaîne |
| valeurs.séries.résultats | Valeurs de séries transformées. Type de données : tableau |
| résultats.séries.valeurs.horodatage | Horodatage ISO 8601 de la valeur. Type de données : chaîne |
| résultats.séries.valeurs.valeur | Valeur transformée. Type de données : nombre |
Transformations prises en charge
| Transformer | Description |
|---|---|
| ajouter | Ajoute le nombre spécifié à chaque valeur d’horodatage. Argument : arg (type de données décimal) : nombre à ajouter. Par exemple : |
| Appliquer une corrélation automatique | Calcule la corrélation entre les valeurs d’horodatage séparées par un nombre croissant de périodes commençant à 1. |
| Avg | Agrège les séries chronologiques en une seule série contenant la valeur moyenne de chaque horodatage correspondant dans l’entrée. |
| bas | Renvoie le nombre spécifié de séries ayant les valeurs les plus basses. Argument : arg (Integer) – Le nombre de séries à renvoyer. Par exemple, ce qui suit renvoie les deux séries chronologiques qui contiennent les ensembles de valeurs les plus bas. |
| Ceil | Arrondit la valeur de chaque horodatage jusqu’à la précision spécifiée : ceil(value / <arg>) * <arg>) Argument : arg (type de données décimal) : précision décimale à arrondir. |
| Recueillir | Affiche les résultats de transformation de la chaîne de transformation jusqu’au point de l’appel de transformation de collecte. Collecter les résultats de transformation contiennent un marqueur unique, mais vous pouvez également définir une étiquette. Par exemple : |
| valeurs de contrainte | Remplace toute valeur en dehors de la plage spécifiée par la valeur maximale ou minimale correspondante. Par exemple, si vous avez spécifié ce qui suit, la transformation remplace toute valeur inférieure à 0 par 0 et toute valeur supérieure à 100 par 100.
Arguments:
|
| compter | Agrège les séries chronologiques en une seule série. La nouvelle série contient le nombre de valeurs qui ne sont pas NaN (Not a Number) pour chaque horodatage correspondant dans la série. |
| Dérivée | Détermine le taux de changement entre les horodatages. Divise la différence entre la valeur de chaque horodatage et la valeur de l’horodatage suivant par la période de l’horodatage. Remarque : Cette transformation renvoie une valeur de moins que le nombre de valeurs dans la série. |
| Div | Divise la valeur de chaque horodatage par le nombre spécifié (arg). Argument : arg (Décimal : nombre par lequel diviser la valeur de chaque horodatage. |
| Enveloppe | Renvoie deux séries chronologiques où, à tout moment dans le temps, l’une contient la valeur la plus élevée et l’autre la valeur la plus petite. Remarque : Les NaN sont ignorés, mais sont renvoyés s’il n’y a pas d’autres valeurs de retour. |
| Exp | Augmente la valeur de la base spécifiée à la puissance de la valeur de chaque horodatage. Argument : arg (type de données décimal) : valeur de base. |
| filtre | Applique un agrégateur au contenu d’une fenêtre glissante, par exemple en produisant une moyenne mobile. Arguments:
|
| étage | Arrondit la valeur de chaque horodatage à la précision spécifiée : floor(value / <arg>) * <arg> Argument : arg (type de données décimal) : précision décimale à arrondir. |
| fractiles | Renvoie une série chronologique pour chaque fraction du tableau spécifié. Chaque valeur d’horodatage correspond à la valeur à laquelle la fraction spécifiée de valeurs, pour l’horodatage correspondant dans la série d’entrée, est inférieure au pourcentage spécifié. Par exemple, si la fraction est égale à 0,5, la valeur de l’horodatage est la valeur où la moitié des valeurs de la série d’entrée sont inférieures à 0,5. Argument : arg (Array of Decimal) – Les fractions à utiliser sur la série d’entrée. Par exemple : |
| groupBy | Regroupe les données en fonction des champs spécifiés avant de collecter ou d’appliquer des transformations agrégées. Argument : arg (chaîne) : liste de champs séparés par des virgules dans la table à utiliser pour regrouper les résultats de transformation. Par exemple : |
| Intégrer | Multiplie la valeur de chaque horodatage par son point. |
| Interpoler | Crée une valeur de données pour un élément de données NaN en interpolant à partir de valeurs de données adjacentes. Argument : arg (entier) : nombre d’échantillons de données dans chaque direction à vérifier pour une valeur non NaN. Si aucune valeur autre que NaN n’est trouvée, NaN est utilisé. |
| Inverse | Calcule l’inverse de chaque valeur d’horodatage. |
| Iqr | Effectue une transformation d’intervalle interquartile et crée un jeu de résultats contenant quatre séries :
Remarque : IQR = Q3 - Q1 |
| étiquette | Étiquette une chaîne de transformation. Remarque :
Les transformations ultérieures peuvent modifier ou remplacer l’étiquette. Argument : arg (chaîne) : texte de l’étiquette. Peut contenir les expressions de formatage suivantes :
Par exemple :
|
| limite | Renvoie au maximum la durée ou le nombre de valeurs spécifiés, en commençant par la valeur enregistrée la plus récente. Arguments:
|
| journal | Exécute un logarithme sur la valeur de chaque horodatage où le résultat est le journal de la base spécifiée pour la valeur d’horodatage. Argument : arg (type de données décimales) : base pour le calcul du logarithme. |
| Valeurs de carte | Remplace toutes les valeurs comprises dans la plage spécifiée (incluse) par la valeur spécifiée. Si les deux lowerBound et upperBound sont spécifiés comme NaN, alors il remplace toute valeur NaN par le targetValue. Arguments:
Par exemple, l’élément suivant modifie toutes les valeurs des séries chronologiques comprises entre 0,1 et 0,9 en 1 : |
| max. | Renvoie une série qui contient la valeur maximale de chaque horodatage correspondant dans l’entrée. |
| Médiane | Crée une série contenant la médiane des valeurs pour chaque horodatage dans un ensemble de séries. S’il y a n séries :
|
| min. | Renvoie une série qui contient la valeur minimale pour chaque horodatage correspondant dans l’entrée. |
| Mul | Multiplie la valeur de chaque horodatage par le nombre spécifié. Argument : arg (type de données décimal) : nombre par lequel multiplier la valeur de chaque horodatage. |
| partition | Génère une nouvelle série avec des valeurs filtrées en appliquant un agrégateur spécifié à une fenêtre qui ne se chevauche pas. Arguments:
|
| Pow | Augmente chaque valeur d’horodatage à la puissance spécifiée. Argument : arg (type de données décimales) : puissance à laquelle chaque valeur doit être élevée. |
| produit | Agrège la série de mesures sélectionnée en une seule série qui contient le produit de toutes les valeurs pour chaque horodatage. Les NaN sont exclus. Si tous les nombres de la série sont NaN, la sortie est également NaN. |
| Resample | Rééchantillonne une série temporelle soit en fonction d’un nombre fixe de points, soit d’une fréquence à une autre. Utilisez la transformation de rééchantillonnage pour réduire le nombre d’échantillons dans le jeu de résultats afin qu’il corresponde mieux au nombre d’échantillons que vous souhaitez afficher. Arguments : vous pouvez passer différents arguments pour cette transformation. Vous trouverez ci-dessous une liste de chacun des groupes d’arguments possibles. Un seul de ces groupes d’arguments peut être transmis dans une seule transformation. Les groupes d’arguments suivants sont délimités par ET/OU. ET signifiant que l’argument fait partie du groupe courant ; OU, ce qui signifie que c’est le début d’un nouveau groupe d’arguments.
|
| arrondi | Arrondit la valeur de chaque horodatage jusqu’à la précision spécifiée : (valeur / <arg>) * <arg> Argument : arg (type de données décimal) : précision décimale à arrondir. |
| Racine | Calcule la racine de chaque valeur d’horodatage à l’aide de l’index spécifié. Argument : arg (type de données décimales) : index de la racine. Par exemple, la méthode suivante renvoie la racine carrée de chaque horodatage : |
| stddev | Crée une série contenant l’écart-type des valeurs pour chaque horodatage dans un ensemble de séries. |
| sous-marin | Soustrait le nombre spécifié de la valeur de chaque horodatage. Argument : arg (Nombre) : nombre à soustraire de la valeur de chaque horodatage. |
| somme | Agrège la série de mesures sélectionnée en une seule série qui contient la somme de toutes les valeurs pour chaque horodatage, à l’exclusion des NaN. Si tous les nombres de la série sont NaN, la sortie est NaN. |
| Timeshift | Décale la plage horaire en ajoutant le décalage spécifié à l’horodatage d’une valeur sans modifier la valeur. Utilisez cette transformation pour déplacer les horodatages vers un autre fuseau horaire. Argument : arg (type de données Durée) : durée du décalage. |
| top | Renvoie le nombre spécifié de séries ayant les valeurs les plus élevées. Argument : arg (Integer) – Le nombre de séries à renvoyer. Par exemple, ce qui suit renvoie les deux séries chronologiques qui contiennent les ensembles de valeurs les plus élevés. |
| Type de données | Description |
|---|---|
| Agrégateur | Agrégateurs disponibles à utiliser dans la transformation.
|
| Date/Heure | Les valeurs absolues de date/heure sont spécifiées par le format de date et d’heure ISO 8601 : AAAA-MM-JJThh :mm :ss. Par exemple : 2020-02-28T13 :10 :42.Où :
Les valeurs de date/d’heure relatives sont spécifiées à l’aide d’une durée (type de données Durée), qui est soustraite de l’heure actuelle. Par exemple : P7J = il y a sept jours. |
| Décimal | La valeur décimale peut être :
|
| Durée | Durée dans un intervalle de temps. Les valeurs de durée sont spécifiées par le format de durée ISO 8601 : P[n]Y[n]M[n]DT[n]H[n]M[n]S Où :
Par exemple :
|
Demande cURL
curl "https://instance.servicenow.com/api/now/v1/clotho/transform \
--request POST \
--header "Accept:application/json", "Content-Type:application/json" \
--user "username":"password"
-d {\
"start": "PT15M",\
"end": "",\
"table": "mb_demo_drone",\
"query": "fleet.nameSTARTSWITHB",\
"limit": 5000,\
"metrics": [\
{\
"metric": "mb_demo_mt_altitude",\
"label": "Series - Avg",\
"transforms": [\
{\
"name": "partition",\
"arg": {\
"aggregator": "AVG",\
"window": "PT5M"\
}\
},
{\
"name": "avg"\
}\
]\
},
{\
"metric": "mb_demo_mt_altitude",\
"groupBy": "fleet",\
"label": "Fleet - AVG",\
"transforms": [\
{\
"name": "partition",\
"arg": {\
"aggregator": "AVG",\
"window": "PT5M"\
}\
},
{\
"name": "avg"\
}\
]\
}\
]\
} \
Sortie :
"results:" [
{
"marker": "674d86ba-a810-4065-942b-0b7ca2f95db2",
"series": [
{
"label": "Series - Avg",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 157.43086
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 162.92278
}
]
}
]
},
{
"marker": "846aa334-232a-4015-b033-d18ebc4b1d23",
"grouped": [
{
"groupingBy": "fleet",
"groups": [
{
"group": "86fac11787333200a328c5b836cb0b4e",
"label": "Bantams",
"series": {
"label": "Fleet - AVG",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 159.70201
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 165.1136
}
]
}
},
{
"group": "4afac11787333200a328c5b836cb0b4e",
"label": "Bumble Untd",
"series": {
"label": "Fleet - AVG",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 154.5403
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 160.13445
}
]
}
}
]
}
]
}
]
Séries chronologiques MetricBase : POST /now/clotho/transform/stream
Renvoie un flux de données de séries chronologiques transformées pour une ou plusieurs mesures après l’application de la liste spécifiée de transformations.
La diffusion des données de cette manière vous permet de traiter les données au fur et à mesure que les transformations individuelles sont terminées et renvoyées, plutôt que d’attendre que tous les résultats de transformation soient terminés et téléchargés. Si de grandes quantités de données doivent être traitées par le client, ce type de traitement réduit le temps de traitement de bout en bout et réduit potentiellement l’utilisation de la mémoire sur le client.
- Spécifiez les données diffusées à encoder dans un format binaire,
- Sérialiser les données diffusées dans un tableau JSON, ou
- Diffusez des données vers le client dans un format CSV large ou restreint.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/transform/stream
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| sysparm_display_value | Marqueur indiquant si les données de résultat doivent être étiquetées avec la valeur d’affichage de l’enregistrement d’objet si aucune autre étiquette n’est spécifiée. Valeurs valides :
Type de données : booléennes Valeur par défaut : false |
| Nom | Description |
|---|---|
| fin | Requis. Heure de fin de la période d’évaluation. Une valeur vide ou manquante est traitée comme l’heure actuelle. Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| limite | Nombre maximal d'enregistrements à renvoyer. Des valeurs anormalement élevées peuvent avoir un impact sur les performances du système. Type de données : nombre Par défaut : 10 000 |
| metrics | Liste des objets de mesures à utiliser dans la transformation. Pour plus d’informations sur les mesures, consultez Mesures. Type de données : tableau |
| metrics.label | Étiquette à utiliser pour l’ensemble de résultats de cette mesure. Elle remplace toutes les étiquettes générées par la chaîne de transformation. Type de données : chaîne Par défaut : étiquette par défaut générée. |
| metrics.metric | Requis si metrics l’objet est transmis. Champ de mesure à utiliser dans la transformation. Ce champ doit se trouver dans la table spécifiée dans le table paramètre. Type de données : chaîne |
| metrics.transforms | Liste des transformations (chaîne de transformation) à appliquer aux données de séries chronologiques récupérées. Chaque transformation s’appuie sur les résultats de la transformation précédente. Pour obtenir la liste des transformations disponibles, consultez Transformations prises en charge ci-dessous. Type de données : tableau |
| metrics.transforms.arg | Dépend de la transformation. Paramètre ou paramètres à transmettre dans la transformation. Lignes directrices générales :
Type de données : nombre, chaîne, booléen ou objet JSON, selon la transformation. (Pour obtenir la liste des transformations disponibles, reportez-vous au tableau Transformations prises en charge ci-dessous.) |
| metrics.transforms.name | Requis si un transforms objet est spécifié. Nom de la transformation. Pour obtenir la liste des transformations disponibles, consultez la table Transformations prises en charge ci-dessous. Type de données : chaîne |
| query | Requête codée à utiliser pour filtrer l’ensemble de résultats. Vous pouvez composer la requête à l’aide de l’éditeur de filtre de la table spécifiée. Une fois créé, sélectionnez Copier l’URL dans le menu contextuel des fils d’Ariane du filtre. Type de données : chaîne Par défaut : Aucun |
| début | Requis. Heure de début de la période d’évaluation. La valeur spéciale all peut être utilisée pour définir l’heure de début comme l’heure actuelle moins la période de conservation maximale pour les mesures spécifiées. Une valeur vide ou manquante est traitée comme un tout implicite.Type de données : chaîne Format : ISO 8601 (UTC), soit :
|
| table | Requis. Nom de la table qui contient le GlideRecord associé à cette série. Type de données : chaîne |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend en charge les éléments suivants :
text/csv ; format=étroit ou texte/csv ; format = large. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Néant | Format de données du corps de la réponse. En fonction des valeurs Accepter spécifiées de la demande, utilisez :
Si plusieurs types d’acceptation sont spécifiés, le premier type pris en charge est renvoyé. |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été traitée avec succès et les données vont commencer à être diffusées. Remarque : Une réponse 200 peut toujours entraîner une erreur de traitement en cours de calcul, au fur et à mesure que les transformations sont calculées. |
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 404 | Introuvable. L’élément demandé est introuvable. |
| 405 | Méthode non valide. La fonctionnalité est désactivée. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (Octet-stream ou JSON)
| Nom | Description |
|---|---|
| Flux de sortie (flux d’octets) | Si l’en-tête Accepter la demande est défini sur application/octet-stream, les données MetricBase correspondantes sont renvoyées sous la forme d’un flux binaire sérialisé. Les applications Clotho-Util for Java fournissent un désérialiseur qui vous permet d’analyser ces données. Le flux est constitué d’une sérialisation binaire de chaque datum, précédée d’un entier représentant sa longueur. Les entrées suivantes décrivent les données dans la représentation binaire et l’ordre de ces données. |
| Flux CSV (flux UTF-8) | Si l’en-tête Accepter la demande est défini sur text/csv, les données MetricBase correspondantes sont renvoyées sous forme de données CSV encodées UTF-8 dans des formats larges ou restreints. Un format étroit renvoie des colonnes d’objet et d’horodatage, ainsi qu’une colonne pour chaque mesure renvoyée. Un format large renvoie une colonne d’horodatage avec une colonne distincte pour chaque paire mesure-sujet. |
| Objet | Source des données. Par exemple, si la mesure des données correspond à l’altitude des drones, cette valeur peut être l’ID d’un drone spécifique. Si un deux-points est inclus dans la valeur, les parties après l’objet représentent la mesure dont les données font partie. Les valeurs nulles sont représentées par une chaîne vide codée. Taille : 2+ octets Type de données : chaîne UTF modifiée par Java |
| Dimension | Mesure dont proviennent les données. Les valeurs nulles sont représentées par une chaîne vide codée. Taille : 2+ octets Type de données : chaîne UTF modifiée par Java |
| Étiquette | Étiquette des données. Les valeurs nulles sont représentées par une chaîne vide codée. Taille : 2+ octets Type de données : chaîne UTF modifiée par Java |
| Type | Type de données codées dans un octet. Valeurs possibles :
Taille : 1 octet Type de données : octet |
| Marqueurs | Variable codée serializeFlags . Si serializeTags la valeur est vrai et que les données contiennent des balises, la valeur est 2, sinon elle est 0. Taille : 1 octet Type de données : octet |
| Période | Période associée aux données. Taille : 4 octets Type de données : nombre entier |
| Nombre de balises | Si serializeTags la valeur est vrai, il s’agit du nombre de balises stockées dans les données. Taille : 4 octets Type de données : nombre entier |
| Balises | Si serializeTags la valeur est vrai, chaque balise est stockée dans les données. Taille : Dépend du nombre de balises (2+ octets). Type de données : chaînes UTF modifiées par Java |
| Début de la seconde époque | Heure UTC d’époque représentant l’heure de début de cette série de données. Taille : 8 octets Type de données : longues |
| Nombre de valeurs | Nombre de valeurs stockées dans ces données. Taille : 4 octets Type de données : nombre entier |
| Valeurs | Si Type est un signal flottant, le reste est constitué de valeurs flottantes. Taille : Number of Values * 4 Type de données : Flottants |
| Valeurs | Si Type est Double signal, alors le reste est constitué de valeurs doubles. Taille : Number of Values * 4 octets Type de données : Doubles |
| Modèle JSON (modèle) | S’il Type s’agit d’un modèle flottant ou d’un modèle double, le reste est une chaîne UTF modifiée par Java représentant le modèle au format JSON. Taille : 2+ octets Type de données : JSON (chaîne UTF modifiée par Java) |
| Marqueur de grand modèle (Big Model) | Si la longueur du fichier JSON du modèle est supérieure à 65 535 octets, ce champ s’écrit au lieu du Model Jsonchamp . Taille : 5 Type de données : chaîne UTF modifiée par Java |
| Taille du grand modèle (Big Model) | Longueur de la représentation JSON du grand modèle. Taille : 4 octets Type de données : nombre entier |
| JSON de grand modèle (grand modèle) | Représentation JSON du modèle sous la forme d’une série de caractères UTF, la taille est dictée par le Big Model Size champ. Taille : 65535-256000 octets Type de données : caractères UTF |
| Flux JSON (JSON) | Si l’en-tête Accepter la demande est défini sur application/json, les données MetricBase correspondantes sont renvoyées sous la forme d’un flux de nouveaux objets JSON séparés par des lignes. Les entrées suivantes décrivent les éléments possibles dans chaque objet retourné. |
| étiquette | Étiquette des données. Cette valeur est soit générée par le point de terminaison, soit la valeur transmise dans le metrics.label paramètre. Type de données : chaîne |
| période | Durée entre chaque valeur. Par exemple, une période de 60 signifierait que chaque valeur est séparée d’une minute. Unité : Secondes Type de données : nombre |
| Gamme | Heures de début et de fin des données au format ISO 8601 (UTC). Type de données : tableau |
| séries | Identifie les données individuelles. S’il est présent, il se présente généralement sous la forme [ID d’enregistrement Glide] :[mesure]. Cela peut ne pas être présent lors de l’utilisation de transformations.Type de données : chaîne |
| Espèces | Type de données de retour. Pour une série de valeurs flottantes ou doubles, il s’agit de FLOAT_SIGNAL ou de DOUBLE_SIGNAL. Pour un modèle destiné à analyser des données flottantes ou doubles, il s’agit d’une FLOAT_MODEL ou d’une DOUBLE_MODEL. Type de données : chaîne |
| balises | Balises associées aux données. Type de données : tableau de chaîne |
| valide | Valeurs flottantes ou doubles pour les données. Type de données : tableau de nombres |
| erreur | Message d’erreur si la transformation de la série de données spécifiée échoue. Type de données : chaîne |
Transformations prises en charge
| Transformer | Description |
|---|---|
| ajouter | Ajoute le nombre spécifié à chaque valeur d’horodatage. Argument : arg (type de données décimal) : nombre à ajouter. Par exemple : |
| Appliquer une corrélation automatique | Calcule la corrélation entre les valeurs d’horodatage séparées par un nombre croissant de périodes commençant à 1. |
| Avg | Agrège les séries chronologiques en une seule série contenant la valeur moyenne de chaque horodatage correspondant dans l’entrée. |
| bas | Renvoie le nombre spécifié de séries ayant les valeurs les plus basses. Argument : arg (Integer) – Le nombre de séries à renvoyer. Par exemple, ce qui suit renvoie les deux séries chronologiques qui contiennent les ensembles de valeurs les plus bas. |
| Ceil | Arrondit la valeur de chaque horodatage jusqu’à la précision spécifiée : ceil(value / <arg>) * <arg>) Argument : arg (type de données décimal) : précision décimale à arrondir. |
| Recueillir | Affiche les résultats de transformation de la chaîne de transformation jusqu’au point de l’appel de transformation de collecte. Collecter les résultats de transformation contiennent un marqueur unique, mais vous pouvez également définir une étiquette. Par exemple : |
| valeurs de contrainte | Remplace toute valeur en dehors de la plage spécifiée par la valeur maximale ou minimale correspondante. Par exemple, si vous avez spécifié ce qui suit, la transformation remplace toute valeur inférieure à 0 par 0 et toute valeur supérieure à 100 par 100.
Arguments:
|
| compter | Agrège les séries chronologiques en une seule série. La nouvelle série contient le nombre de valeurs qui ne sont pas NaN (Not a Number) pour chaque horodatage correspondant dans la série. |
| Dérivée | Détermine le taux de changement entre les horodatages. Divise la différence entre la valeur de chaque horodatage et la valeur de l’horodatage suivant par la période de l’horodatage. Remarque : Cette transformation renvoie une valeur de moins que le nombre de valeurs dans la série. |
| Div | Divise la valeur de chaque horodatage par le nombre spécifié (arg). Argument : arg (Décimal : nombre par lequel diviser la valeur de chaque horodatage. |
| Enveloppe | Renvoie deux séries chronologiques où, à tout moment dans le temps, l’une contient la valeur la plus élevée et l’autre la valeur la plus petite. Remarque : Les NaN sont ignorés, mais sont renvoyés s’il n’y a pas d’autres valeurs de retour. |
| Exp | Augmente la valeur de la base spécifiée à la puissance de la valeur de chaque horodatage. Argument : arg (type de données décimal) : valeur de base. |
| filtre | Applique un agrégateur au contenu d’une fenêtre glissante, par exemple en produisant une moyenne mobile. Arguments:
|
| étage | Arrondit la valeur de chaque horodatage à la précision spécifiée : floor(value / <arg>) * <arg> Argument : arg (type de données décimal) : précision décimale à arrondir. |
| fractiles | Renvoie une série chronologique pour chaque fraction du tableau spécifié. Chaque valeur d’horodatage correspond à la valeur à laquelle la fraction spécifiée de valeurs, pour l’horodatage correspondant dans la série d’entrée, est inférieure au pourcentage spécifié. Par exemple, si la fraction est égale à 0,5, la valeur de l’horodatage est la valeur où la moitié des valeurs de la série d’entrée sont inférieures à 0,5. Argument : arg (Array of Decimal) – Les fractions à utiliser sur la série d’entrée. Par exemple : |
| groupBy | Regroupe les données en fonction des champs spécifiés avant de collecter ou d’appliquer des transformations agrégées. Argument : arg (chaîne) : liste de champs séparés par des virgules dans la table à utiliser pour regrouper les résultats de transformation. Par exemple : |
| Intégrer | Multiplie la valeur de chaque horodatage par son point. |
| Interpoler | Crée une valeur de données pour un élément de données NaN en interpolant à partir de valeurs de données adjacentes. Argument : arg (entier) : nombre d’échantillons de données dans chaque direction à vérifier pour une valeur non NaN. Si aucune valeur autre que NaN n’est trouvée, NaN est utilisé. |
| Inverse | Calcule l’inverse de chaque valeur d’horodatage. |
| Iqr | Effectue une transformation d’intervalle interquartile et crée un jeu de résultats contenant quatre séries :
Remarque : IQR = Q3 - Q1 |
| étiquette | Étiquette une chaîne de transformation. Remarque :
Les transformations ultérieures peuvent modifier ou remplacer l’étiquette. Argument : arg (chaîne) : texte de l’étiquette. Peut contenir les expressions de formatage suivantes :
Par exemple :
|
| limite | Renvoie au maximum la durée ou le nombre de valeurs spécifiés, en commençant par la valeur enregistrée la plus récente. Arguments:
|
| journal | Exécute un logarithme sur la valeur de chaque horodatage où le résultat est le journal de la base spécifiée pour la valeur d’horodatage. Argument : arg (type de données décimales) : base pour le calcul du logarithme. |
| Valeurs de carte | Remplace toutes les valeurs comprises dans la plage spécifiée (incluse) par la valeur spécifiée. Si les deux lowerBound et upperBound sont spécifiés comme NaN, alors il remplace toute valeur NaN par le targetValue. Arguments:
Par exemple, l’élément suivant modifie toutes les valeurs des séries chronologiques comprises entre 0,1 et 0,9 en 1 : |
| max. | Renvoie une série qui contient la valeur maximale de chaque horodatage correspondant dans l’entrée. |
| Médiane | Crée une série contenant la médiane des valeurs pour chaque horodatage dans un ensemble de séries. S’il y a n séries :
|
| min. | Renvoie une série qui contient la valeur minimale pour chaque horodatage correspondant dans l’entrée. |
| Mul | Multiplie la valeur de chaque horodatage par le nombre spécifié. Argument : arg (type de données décimal) : nombre par lequel multiplier la valeur de chaque horodatage. |
| partition | Génère une nouvelle série avec des valeurs filtrées en appliquant un agrégateur spécifié à une fenêtre qui ne se chevauche pas. Arguments:
|
| Pow | Augmente chaque valeur d’horodatage à la puissance spécifiée. Argument : arg (type de données décimales) : puissance à laquelle chaque valeur doit être élevée. |
| produit | Agrège la série de mesures sélectionnée en une seule série qui contient le produit de toutes les valeurs pour chaque horodatage. Les NaN sont exclus. Si tous les nombres de la série sont NaN, la sortie est également NaN. |
| Resample | Rééchantillonne une série temporelle soit en fonction d’un nombre fixe de points, soit d’une fréquence à une autre. Utilisez la transformation de rééchantillonnage pour réduire le nombre d’échantillons dans le jeu de résultats afin qu’il corresponde mieux au nombre d’échantillons que vous souhaitez afficher. Arguments : vous pouvez passer différents arguments pour cette transformation. Vous trouverez ci-dessous une liste de chacun des groupes d’arguments possibles. Un seul de ces groupes d’arguments peut être transmis dans une seule transformation. Les groupes d’arguments suivants sont délimités par ET/OU. ET signifiant que l’argument fait partie du groupe courant ; OU, ce qui signifie que c’est le début d’un nouveau groupe d’arguments.
|
| arrondi | Arrondit la valeur de chaque horodatage jusqu’à la précision spécifiée : (valeur / <arg>) * <arg> Argument : arg (type de données décimal) : précision décimale à arrondir. |
| Racine | Calcule la racine de chaque valeur d’horodatage à l’aide de l’index spécifié. Argument : arg (type de données décimales) : index de la racine. Par exemple, la méthode suivante renvoie la racine carrée de chaque horodatage : |
| stddev | Crée une série contenant l’écart-type des valeurs pour chaque horodatage dans un ensemble de séries. |
| sous-marin | Soustrait le nombre spécifié de la valeur de chaque horodatage. Argument : arg (Nombre) : nombre à soustraire de la valeur de chaque horodatage. |
| somme | Agrège la série de mesures sélectionnée en une seule série qui contient la somme de toutes les valeurs pour chaque horodatage, à l’exclusion des NaN. Si tous les nombres de la série sont NaN, la sortie est NaN. |
| Timeshift | Décale la plage horaire en ajoutant le décalage spécifié à l’horodatage d’une valeur sans modifier la valeur. Utilisez cette transformation pour déplacer les horodatages vers un autre fuseau horaire. Argument : arg (type de données Durée) : durée du décalage. |
| top | Renvoie le nombre spécifié de séries ayant les valeurs les plus élevées. Argument : arg (Integer) – Le nombre de séries à renvoyer. Par exemple, ce qui suit renvoie les deux séries chronologiques qui contiennent les ensembles de valeurs les plus élevés. |
| Type de données | Description |
|---|---|
| Agrégateur | Agrégateurs disponibles à utiliser dans la transformation.
|
| Date/Heure | Les valeurs absolues de date/heure sont spécifiées par le format de date et d’heure ISO 8601 : AAAA-MM-JJThh :mm :ss. Par exemple : 2020-02-28T13 :10 :42.Où :
Les valeurs de date/d’heure relatives sont spécifiées à l’aide d’une durée (type de données Durée), qui est soustraite de l’heure actuelle. Par exemple : P7J = il y a sept jours. |
| Décimal | La valeur décimale peut être :
|
| Durée | Durée dans un intervalle de temps. Les valeurs de durée sont spécifiées par le format de durée ISO 8601 : P[n]Y[n]M[n]DT[n]H[n]M[n]S Où :
Par exemple :
|
Demande cURL
L’exemple suivant montre comment appeler ce point de terminaison pour retourner un flux JSON pour les mesures de la table mb_demo_drone. Remarque : Bien que les objets de cet exemple soient étendus sur plusieurs lignes pour plus de lisibilité, dans un résultat réel, chaque objet renvoyé se trouve sur sa propre ligne. Vous pouvez faire le même appel et renvoyer un flux d’octets en définissant --header « Accept :application/octet-stream » \.
curl "localhost:8080/api/now/v1/clotho/transform/stream" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--user "username":"password" \
-d "{\
\"start\": \"PT5M\",\
\"end\": \"\",\
\"table\": \"mb_demo_drone\",\
\"query\": \"fleet.nameSTARTSWITHB\",\
\"limit\": 5000,\
\"metrics\": [\
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"label\": \"Series - Avg\",\
\"transforms\": [\
{\
\"name\": \"partition\",\
\"arg\": {\
\"aggregator\": \"AVG\",\
\"window\": \"PT5M\"\
}\
},
{\
\"name\": \"avg\"\
}\
]\
},
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"groupBy\": \"fleet\",\
\"label\": \"Fleet - AVG\",\
\"transforms\": [\
{\
\"name\": \"partition\",\
\"arg\": {\
\"aggregator\": \"AVG\",\
\"window\": \"PT5M\"\
}\
},
{\
\"name\": \"avg\"\
}\
]\
}\
]\
}"
Réponse :
[
{
"label": "Series - Avg",
"tags": [
"#4fb1114f-2426-4acb-8e3e-6435dd62134c"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
132.86805196126303
],
"period": 300
},
{
"label": "Fleet - AVG",
"tags": [
":fleet:86fac11787333200a328c5b836cb0b4e:Bantams",
"#6641aab4-c55f-4d11-8846-26b0b706ec1c"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
134.3775875908988
],
"period": 300
},
{
"label": "Fleet - AVG",
"tags": [
"#6641aab4-c55f-4d11-8846-26b0b706ec1c",
":fleet:4afac11787333200a328c5b836cb0b4e:Bumble Untd"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
129.02530271356756
],
"period": 300
}
]
L’exemple cURL suivant utilise l’option de format CSV pour diffuser les valeurs d’altitude (stockées dans la base de données sous la forme « mb_demo_mt_altitude ») du dernier jour pour chaque drone stocké dans la table mb_demo_drone [Drones] du plug-in Metricbase Demo. Dans l’exemple, les données sont renvoyées dans un format de tableau étroit à trois colonnes : la Sys_id du sujet identifiant le drone, l’horodatage de la valeur et la valeur d’altitude.
curl "https://instance.servicenow.com/api/now/v1/clotho/transform/stream" \
--request POST \
--header "Accept:text/csv;format=narrow" \
--header "Content-Type:application/json" \
--user "user name":"password" \
-d "{\
\"start\": \"P1D\",\
\"end\": \"\",\
\"table\": \"mb_demo_drone\",\
\"metrics\": [\
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"transforms\": []\
}]\
}"
Sortie :
Subject, Timestamp,"mb_demo_drone|mb_demo_mt_altitude"
"a66b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,92.84400939941406
"a66b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,92.2428970336914
"6a6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,92.0076904296875
"ea6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,97.3113021850586
"a66b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,108.49791717529297
"6a6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,109.04239654541016
"6a6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,93.72159576416016
"ee6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,107.69989776611328
"ee6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,100.86473083496094
"ee6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,95.77774047851562
"666b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,105.19712829589844
"666b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,105.92308807373047
"6e6b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,93.59339141845703
"666b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,94.51266479492188
"e26b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,105.4367904663086
"6e6b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,94.64836883544922
"6e6b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,94.78523254394531
"e26b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,96.99283599853516
"aa6b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,106.67017364501953
"e26b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,94.2446517944336
"aa6b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,91.659912109375
"226b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,99.5401840209961
"226b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,98.13501739501953
"226b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,92.2428970336914
"226b051787333200a328c5b836cb0b90",2022-11-07T22:35:00Z,106.41876983642578
"aa6b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,107.69989776611328
"626b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,92.96666717529297
"e66b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,93.85079193115234
"e66b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,96.07303619384766
"e66b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,98.47595977783203
"2a6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,95.9247055053711
"226b051787333200a328c5b836cb0b9a",2022-11-07T22:35:00Z,99.5401840209961
"2a6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,103.1417465209961
"2a6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,96.99283599853516
"ae6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,94.64836883544922
"ae6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,101.8689956665039
"ae6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,107.4388198852539
"a26b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,94.78523254394531
"266b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,94.51266479492188
"2e6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,108.49791717529297
"2e6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,97.15129852294922
"2e6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,103.36128997802734
"a26b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,100.47681427001953
"266b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,103.5830078125
"266b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,97.3113021850586
"a26b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,105.92308807373047
"ea6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,95.34477996826172
"ea6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,100.47681427001953
"626b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,100.86473083496094
"626b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,106.9239730834961
Séries chronologiques MetricBase : POST /now/clotho/put
Ajoute des données de séries chronologiques à la MetricBase base de données.
Format d'URL
URL versionnée : /api/now/{api_version}/clotho/put
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| sysparm_ignore_unknown_series | Marqueur indiquant s’il faut ignorer les séries inconnues et poursuivre la transaction sans renvoyer d’erreur. Valeurs valides :
Valeur par défaut : true |
| Nom | Description |
|---|---|
| seriesRef | Requis. Informations à mettre à jour. Type de données : tableau |
| seriesRef.metric | Requis. Nom de la mesure à mettre à jour. Type de données : chaîne |
| seriesRef.subject | Requis. La sys_id de l’enregistrement dans laquelle mettre à jour les données. Situé dans la table spécifiée dans seriesRef.table. Type de données : chaîne |
| seriesRef.table | Requis. Nom de la table dans laquelle enregistrer les données. Type de données : chaîne |
| valeurs | Requis. Valeurs de séries à stocker. Type de données : tableau |
| valeurs.horodatage | Requis. Horodatage ISO 8601 de la valeur. Type de données : chaîne Format : La terminaison « Z », qui désigne le fuseau horaire UTC sous un horodatage au format ISO, est facultative. |
| valeurs.valeur | Requis. Valeur de mesure. Type de données : nombre |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 500 | Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur. |
Paramètres de corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| message | Message indiquant l’état de la demande, par exemple OK si la demande a été traitée avec succès. |
Demande cURL
curl "https://instance.servicenow.com/api/now/v1/clotho/put" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"seriesRef\": {
\"subject\": \"3D666b051787333200a328c5b836cb0b92\",
\"table\": \"mb_demo_drone\",
\"metric\": \"mb_demo_mt_altitude\"
},
\"values\": [
{
\"timestamp\": \"2019-03-21T17:05:00Z\",
\"value\": 0.150185
},
{
\"timestamp\": \"2019-03-21T17:06:00Z\",
\"value\": 0.46074
},
{
\"timestamp\": \"2019-03-21T17:07:00Z\",
\"value\": 0.83104
},
{
\"timestamp\": \"2019-03-21T17:08:00Z\",
\"value\": 1.260635
},
{
\"timestamp\": \"2019-03-21T17:09:00Z\",
\"value\": 1.749
}
]
}" \
--user "username":"password"
{
"result": {
"message": "ok"
}
}