Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

API de source de données

Mode de mise au point
API de source de données - Amazon Managed Grafana

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez l'API de source de données pour créer, mettre à jour, supprimer et utiliser des sources de données dans l'espace de travail Amazon Managed Grafana.

Note

Pour utiliser une API Grafana avec votre espace de travail Amazon Managed Grafana, vous devez disposer d'un jeton d'API Grafana valide. Vous l'incluez dans le Authorization champ de la demande d'API. Pour plus d'informations sur la création d'un jeton pour authentifier vos appels d'API, consultezAuthentifiez-vous avec des jetons.

Accédez à toutes les sources de données

GET /api/datasources

Exemple de demande

GET /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json [ { "id": 1, "orgId": 1, "uid": "H8joYFVGz" "name": "datasource_elastic", "type": "elasticsearch", "typeLogoUrl": "public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "grafana-dash", "basicAuth": false, "isDefault": false, "jsonData": { "esVersion": 5, "logLevelField": "", "logMessageField": "", "maxConcurrentShardRequests": 256, "timeField": "@timestamp" }, "readOnly": false } ]

Obtenez une source de données unique par identifiant

GET /api/datasources/:datasourceId

Exemple de demande

GET /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Obtenez une source de données unique par UID

GET /api/datasources/uid/:uid

Exemple de demande

GET /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Obtenez une source de données unique par son nom

GET /api/datasources/name/:name

Exemple de demande

GET /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Obtenir l'identifiant de la source de données par son nom

GET /api/datasources/id/:name

Exemple de demande

GET /api/datasources/id/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "id":1 }

Crée une source de données

POST /api/datasources

Exemple de demande Graphite

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name":"test_datasource", "type":"graphite", "url":"http://mydatasource.com", "access":"proxy", "basicAuth":false }

Exemple de réponse au graphite

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": {}, "version": 1, "readOnly": false }, "id": 1, "message": "Datasource added", "name": "test_datasource" }
Note

Lorsque vous les définissez password et que vous basicAuthPassword les secureJsonData insérez, Amazon Managed Grafana les chiffre en toute sécurité sous forme de blob chiffré dans la base de données. La réponse répertorie ensuite les champs chiffrés danssecureJsonFields.

Exemple de demande Graphite avec authentification de base activée

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "test_datasource", "type": "graphite", "url": "http://mydatasource.com", "access": "proxy", "basicAuth": true, "basicAuthUser": "basicuser", "secureJsonData": { "basicAuthPassword": "basicpassword" } }

Exemple de réponse avec authentification de base activée

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": true, "basicAuthUser": "basicuser", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": { "basicAuthPassword": true }, "version": 1, "readOnly": false }, "id": 102, "message": "Datasource added", "name": "test_datasource" }

Exemple de CloudWatch demande

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "test_datasource", "type": "cloudwatch", "url": "http://monitoring.us-west-1.amazonaws.com", "access": "proxy", "jsonData": { "authType": "keys", "defaultRegion": "us-west-1" }, "secureJsonData": { "accessKey": "Ol4pIDpeKSA6XikgOl4p", "secretKey": "dGVzdCBrZXkgYmxlYXNlIGRvbid0IHN0ZWFs" } }

Mettre à jour une source de données existante

PUT /api/datasources/:datasourceId

Exemple de demande

PUT /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "id":1, "orgId":1, "name":"test_datasource", "type":"graphite", "access":"proxy", "url":"http://mydatasource.com", "password":"", "user":"", "database":"", "basicAuth":true, "basicAuthUser":"basicuser", "secureJsonData": { "basicAuthPassword": "basicpassword" }, "isDefault":false, "jsonData":null }

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": true, "basicAuthUser": "basicuser", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": { "basicAuthPassword": true }, "version": 1, "readOnly": false }, "id": 102, "message": "Datasource updated", "name": "test_datasource" }
Note

Nous vous recommandons de les définir password et basicAuthPassword de les définir de secureJsonData manière à ce qu'ils soient stockés de manière sécurisée sous forme de blob chiffré dans la base de données. La réponse répertorie ensuite les champs chiffrés danssecureJsonFields.

Supprimer la source de données par identifiant

DELETE /api/datasources/:datasourceId

Exemple de demande

DELETE /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}

Supprimer la source de données par UID

DELETE /api/datasources/uid/:uid

Exemple de demande

DELETE /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}

Supprimer la source de données par son nom

DELETE /api/datasources/name/:datasourceName

Exemple de demande

DELETE /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Exemple de réponse

HTTP/1.1 200 Content-Type: application/json { "message":"Data source deleted", "id": 1 }

Appels par proxy à la source de données

GET /api/datasources/proxy/:datasourceId/*

Proxy tous les appels vers la source de données réelle.

Sources de données d'interrogation

POST /api/ds/query

Interroge une source de données dotée d'une implémentation principale. La plupart des sources de données intégrées sont implémentées en backend.

Exemple de demande

POST /api/ds/query HTTP/1.1 Accept: application/json Content-Type: application/json { "queries":[ { "refId":"A", "scenarioId":"csv_metric_values", "datasource":{ "uid":"PD8C576611E62080A" }, "format": "table", "maxDataPoints":1848, "intervalMs":200, "stringInput":"1,20,90,30,5,0" } ], "from":"now-5m", "to":"now" }

Schéma de corps JSON :

  • from/to — Spécifie la plage de temps pour les requêtes. Le temps peut être soit un horodatage d'époque en millisecondes, soit un temps relatif en utilisant les unités de temps de Grafana. Par exemple, now-5m.

  • requêtes — Spécifie une ou plusieurs requêtes. Doit contenir au moins 1.

  • queries.datasource.uid — Spécifie l'UID de la source de données à interroger. Chaque requête de la demande doit avoir une valeur uniquedatasource.

  • Queries.refid — Spécifie l'identifiant de la requête. La valeur par défaut est « A ».

  • queries.format — Spécifie le format dans lequel les données doivent être renvoyées. Les options valides sont time_series ou table dépendent de la source de données.

  • requêtes. maxDataPoints— Spécifie le nombre maximal de points de données qu'un panneau de tableau de bord peut afficher. La valeur par défaut est 100.

  • Queries.Intervalms — Spécifie l'intervalle de temps de la série chronologique en millisecondes. La valeur par défaut est 1000.

En outre, les propriétés spécifiques de chaque source de données doivent être ajoutées dans une requête (par exemple Queries.StringInput, comme indiqué dans la demande ci-dessus). Pour mieux comprendre comment formuler une requête pour une source de données donnée, utilisez les outils de développement du navigateur de votre choix et inspectez les requêtes HTTP adressées à/api/ds/query.

Exemple de réponse à une requête de série chronologique d'une source de données de test

HTTP/1.1 200 Content-Type: application/json { "results": { "A": { "frames": [ { "schema": { "refId": "A", "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" } }, { "name": "A-series", "type": "number", "typeInfo": { "frame": "int64", "nullable": true } } ] }, "data": { "values": [ [1644488152084, 1644488212084, 1644488272084, 1644488332084, 1644488392084, 1644488452084], [1, 20, 90, 30, 5, 0] ] } } ] } } }

Requête de la source de données par identifiant

POST /api/tsdb/query
Important

À partir de la version 9, ce n'/api/tsdb/queryest pas pris en charge. Utilisez Sources de données d'interrogation.

Interroge une source de données implémentée en backend. La plupart des sources de données intégrées sont implémentées en backend.

Exemple de demande

POST /api/tsdb/query HTTP/1.1 Accept: application/json Content-Type: application/json { "from": "1420066800000", "to": "1575845999999", "queries": [ { "refId": "A", "intervalMs": 86400000, "maxDataPoints": 1092, "datasourceId": 86, "rawSql": "SELECT 1 as valueOne, 2 as valueTwo", "format": "table" } ] }
Note

Les queries propriétés fromto, et sont obligatoires.

Schéma de corps JSON :

  • from/to — Doit être soit absolu en termes d'horodatage des époques en millisecondes, soit relatif en utilisant les unités de temps de Grafana. Par exemple, now-1h.

  • Queries.refID — (Facultatif) Spécifie un identifiant pour la requête. L’argument par défaut est A.

  • queries.DataSourceID — Spécifie la source de données à interroger. Chaque requête de la demande doit avoir une valeur uniquedatasourceId.

  • requêtes. maxDataPoints— (Facultatif) Spécifie le nombre maximal de points de données qu'un panneau de tableau de bord peut afficher. La valeur par défaut est 100.

  • queries.interval IMs — (Facultatif) Spécifie l'intervalle de temps en millisecondes des séries chronologiques. La valeur par défaut est 1000

Exemple de demande pour la source de données MySQL :

POST /api/tsdb/query HTTP/1.1 Accept: application/json Content-Type: application/json { "from": "1420066800000", "to": "1575845999999", "queries": [ { "refId": "A", "intervalMs": 86400000, "maxDataPoints": 1092, "datasourceId": 86, "rawSql": "SELECT\n time,\n sum(opened) AS \"Opened\",\n sum(closed) AS \"Closed\"\nFROM\n issues_activity\nWHERE\n $__unixEpochFilter(time) AND\n period = 'm' AND\n repo IN('grafana/grafana') AND\n opened_by IN('Contributor','Grafana Labs')\nGROUP BY 1\nORDER BY 1\n", "format": "time_series" } ] }

Exemple de réponse pour la demande de source de données MySQL :

HTTP/1.1 200 Content-Type: application/json { "results": { "A": { "refId": "A", "meta": { "rowCount": 0, "sql": "SELECT\n time,\n sum(opened) AS \"Opened\",\n sum(closed) AS \"Closed\"\nFROM\n issues_activity\nWHERE\n time <= 1420066800 AND time >= 1575845999 AND\n period = 'm' AND\n repo IN('grafana/grafana') AND\n opened_by IN('Contributor','Grafana Labs')\nGROUP BY 1\nORDER BY 1\n" }, "series": [ { "name": "Opened", "points": [ [ 109, 1420070400000 ], [ 122, 1422748800000 ] ] }, { "name": "Closed", "points": [ [ 89, 1420070400000 ] ] } ] } } }
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.