Passer au contenu principal

Écriture de Données (/v2/data)

Mis à jour cette semaine

Cette section détaille les endpoints permettant d'écrire, de modifier ou de supprimer des données de métriques.

Écrire des données

Description

Cette requête permet d'écrire des points de données pour une ou plusieurs métriques. Si une métrique spécifiée n'existe pas, elle sera créée automatiquement dans le référentiel.

POST /v2/data/values

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • metricName (string, obligatoire) : Nom de la métrique.

  • datasource (string, optionnel) : Source de données.

  • values (liste d'objets, obligatoire) : Liste des points à insérer.

    • timestamp (date-time, obligatoire) : Horodatage du point au format ISO 8601.

    • value (number, obligatoire) : Valeur numérique du point.

Les paramètres suivants doivent être fournis dans le corps de la requête, au format JSON.

[ 
{
"metricName": "nom_de_la_metrique",
"datasource": "source_de_donnees",
"values": [
{
"timestamp": "date_et_heure_iso",
"value": "valeur_numerique"
}
]
}
]

Exemple de commande :

# Commande pour écrire des valeurs sur plusieurs métriques
curl -X POST \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values' \

# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \

# ----- Corps de la requête avec deux métriques distinctes -----
-d '[
{
"metricName": "metric4test_ok",
"datasource": "main",
"values": [
{ "timestamp": "2025-06-26T08:04:05Z", "value": 10.5 },
{ "timestamp": "2025-06-26T08:05:05Z", "value": 11.2 }
]
},
{
"metricName": "pressure_sensor_1",
"datasource": "main",
"values": [
{ "timestamp": "2025-07-01T10:00:00Z", "value": 1013.2 }
]
}
]'

Réponses :

Exemple de réponse valide (200 OK) :

{
"statusCode": 1010,
"message": "2 metrics written/0 metrics filtered/3 values written"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Mettre à jour un point de donnée

Description

Cette requête modifie la valeur d'un point de donnée déjà existant à un instant T précis. Une annotation est automatiquement générée pour tracer cette modification.

PUT /v2/data/values

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • metricName (string, obligatoire) : Nom de la métrique.

  • datasource (string, optionnel) : Source de données.

  • timestamp (date-time, obligatoire) : Horodatage exact du point à modifier.

  • value (number, obligatoire) : Nouvelle valeur du point.

  • message (string, optionnel) : Message personnalisé pour l'annotation de modification.

Les paramètres suivants doivent être fournis dans le corps de la requête, au format JSON.

Syntaxe générale du corps de la requête :

{ 
"metricName": "nom_de_la_metrique",
"datasource": "source_de_donnees",
"timestamp": "date_et_heure_iso",
"value": "nouvelle_valeur_numerique",
"message": "message_pour_l_annotation"
}

Exemple de commande

# Commande pour mettre à jour un point de donnée 
curl -X PUT \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values' \

# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \

# ----- Corps de la requête -----
-d '
{
"metricName": "metric4test_ok",
"datasource": "main",
"timestamp": "2025-06-26T08:04:05Z",
"value": 10.6,
"message": "Valeur mise à jour."
}
'

Réponses

Exemple de réponse valide (200 OK) :

{ "statusCode": 1010, "message": "OK" }

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Supprimer des données sur une période

Description

Cette requête supprime tous les points de données d'une métrique dans une plage de temps spécifiée. Attention, cette action est irréversible.

DELETE /v2/data/values

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • MetricName (string, obligatoire) : Nom de la métrique concernée.

  • Datasource (string, optionnel) : Source de données.

  • Start (date-time, obligatoire) : Date de début de la suppression (format ISO 8601).

  • End (date-time, obligatoire) : Date de fin de la suppression (format ISO 8601).

Ces paramètres doivent être ajoutés à la fin de l'URL pour construire la chaîne de requête. Le premier est précédé d'un "?" et les suivants sont séparés par un "&".

Syntaxe générale de la requête GET :

.../values?MetricName=[nom_metrique]&Start=[date_debut]&End=[date_fin]

Note : La suppression des données n'est autorisé que sur les 3 derniers mois.

Exemple de requête

# Commande pour supprimer les données d'une métrique sur une période 
curl -X DELETE \
'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values?MetricName=metric4test_ok&Datasource=main&Start=2025-06-26T07:06:00Z&End=2025-06-26T08:06:00Z' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses

Exemple de réponse valide (200 OK) :

{ "statusCode": 1010, "message": "OK" }

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Endpoint pour lister les bases de données (datasources)

Description

Cette requête retourne la liste de toutes les bases de données (Datasources) disponibles dans le système.

GET /v2/database

Scope

Cette requête ne nécessite pas de scope particulier.

Paramètres

Cette requête ne prend aucun paramètre.

Exemple de requête

# Commande pour lister toutes les datasources disponibles 
curl -X GET \
'https://xxx.indaba.api.indasuite.io-base.com/v2/database' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses

Exemple de réponse valide (200 OK) :

{ 
"data": [
"prod",
"test"
],
"statusCode": 1010,
"message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Erreurs courantes

Vous rencontrerez principalement les codes d'erreur HTTP suivants :

  • 400 Bad Request : Votre requête est malformée. Cela peut être dû à un paramètre manquant, un type de donnée incorrect ou un JSON invalide. Le corps de la réponse contiendra un tableau errors détaillant le problème.

    { 
    "errors": [
    {
    "error": "Field Required",
    "message": "The xxx field is required."
    }
    ],
    "statusCode": 1050,
    "message": "Invalid request"
    }

  • 403 Forbidden : Votre jeton d'authentification est valide, mais vous n'avez pas les droits nécessaires pour cette action. Cela peut arriver pour deux raisons :

    • Votre jeton n'a pas les droits (scope) nécessaires (par exemple, vous tentez d'écrire des données sans avoir le scope metrics:write).

    • Votre jeton a le bon scope, mais votre utilisateur (ou compte de service) n'est pas rattaché à une autorisation qui donne accès à la métrique demandée.

  • 404 Not Found : La ressource que vous essayez d'atteindre n'existe pas. Cela se produit typiquement si vous utilisez un ID incorrect ou si vous demandez une métrique qui n'existe pas.

Avez-vous trouvé la réponse à votre question ?