Écrit des données de séries temporelles dans un index de séries temporelles d'Alibaba Cloud Elasticsearch en utilisant le protocole de ligne InfluxDB.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Un cluster Elasticsearch V7.10 dont la version du noyau est la V1.8.0 ou une version ultérieure. Pour les instructions de configuration, consultez Créer un cluster Alibaba Cloud Elasticsearch
Syntaxe de la requête
POST /_time_stream/influx/write?db={index}&precision=ns
{infludb lines data}
Paramètres de la requête
| Paramètre | Obligatoire | Description |
|---|---|---|
db |
Oui | Le nom de l'index de séries temporelles dans lequel écrire les données. |
precision |
Non | La précision de l'horodatage. Valeurs valides : n, ns, u, ms, s, m et h. Par défaut : ns. |
Notes d'utilisation
Syntaxe du protocole de ligne InfluxDB
Le corps de la requête doit être formaté selon le protocole de ligne InfluxDB. Pour la spécification complète, consultez la section Protocole de ligne de la documentation InfluxDB.
// Syntax
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
// Example
myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000
Mappage des noms de mesure vers les champs Elasticsearch
Lorsque des données sont écrites dans un index de séries temporelles, le nom de la mesure est stocké en tant que champ nommé measurement à l'intérieur de l'objet labels.
Si les données du protocole de ligne contiennent déjà un champ nommé
measurement
dans
labels
, le nom de la mesure écrase la valeur de ce champ.
L'exemple suivant illustre le mappage des données InfluxDB vers un document Elasticsearch.
Entrée InfluxDB :
testInflux,label1=label_value1 metric1=0.5
Sortie Elasticsearch :
{
"@timestamp": 1669972652000,
"labels": {
"measurement": "testInflux",
"label1": "label_value1"
},
"metrics": {
"metric1": 0.5
}
}
Une fois les données écrites, interrogez-les à l'aide des API de recherche Elasticsearch ou des API Prometheus intégrées à aliyun-timestream.
Exemples
Écrire des données
curl -i --user "user:password" "http://xxx:9200/_time_stream/influx/write?db=test_stream" -d "testInflux,label1=label_value1 metric1=0.5"
Réponse
Une écriture réussie renvoie un code HTTP 204 sans corps de réponse :
HTTP/1.1 204 No Content
En cas d'échec de l'écriture, le format de la réponse suit le format d'erreur de l'API d'écriture InfluxDB.