

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.

# API de source de données
<a name="v12-Grafana-API-Datasource"></a>

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 de compte de service valide. Vous l'incluez dans le `Authorization` champ de la demande d'API.

## Accédez à toutes les sources de données
<a name="v12-Grafana-API-Datasource-getall"></a>

```
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 UID
<a name="v12-Grafana-API-Datasource-getbyUID"></a>

```
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
<a name="v12-Grafana-API-Datasource-getbyName"></a>

```
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
<a name="v12-Grafana-API-Datasource-getIDbyName"></a>

```
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
<a name="v12-Grafana-API-Datasource-create"></a>

```
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 dans`secureJsonFields`.

**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 par UID
<a name="v12-Grafana-API-Datasource-updatebyUID"></a>

```
PUT /api/datasources/uid/:uid
```

Met à jour la source de données correspondant à l'UID donné.

**Exemple de demande**

```
PUT /api/datasources/uid/kLtEtcRGk 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,
  "isDefault": false
}
```

**Exemple de réponse**

```
HTTP/1.1 200
Content-Type: application/json

{
  "datasource": {
    "id": 1,
    "uid": "kLtEtcRGk",
    "orgId": 1,
    "name": "test_datasource",
    "type": "graphite",
    "access": "proxy",
    "url": "http://mydatasource.com",
    "basicAuth": false,
    "isDefault": false
  },
  "name": "test_datasource"
}
```

## Supprimer la source de données par UID
<a name="v12-Grafana-API-Datasource-deletebyUID"></a>

```
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
<a name="v12-Grafana-API-Datasource-deletebyname"></a>

```
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
<a name="v12-Grafana-API-Datasource-proxycall"></a>

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

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

## Sources de données d'interrogation
<a name="v12-Grafana-API-Datasource-querydatasource"></a>

```
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 unique`datasource`.
+ **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.
+ **queries.max DataPoints — Spécifie** le nombre maximum 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]
            ]
          }
        }
      ]
    }
  }
}
```

## Mettre à jour une source de données existante (obsolète)
<a name="v12-Grafana-API-Datasource-update"></a>

**Important**  
Ce point de terminaison est obsolète. Utilisez [Mettre à jour une source de données par UID](#v12-Grafana-API-Datasource-updatebyUID) à la place.

```
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 dans`secureJsonFields`.

## Obtenir une source de données unique par identifiant (obsolète)
<a name="v12-Grafana-API-Datasource-getbyId"></a>

**Important**  
Ce point de terminaison est obsolète. Utilisez [Obtenez une source de données unique par UID](#v12-Grafana-API-Datasource-getbyUID) à la place.

```
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
}
```

## Supprimer la source de données par identifiant (obsolète)
<a name="v12-Grafana-API-Datasource-deletebyId"></a>

**Important**  
Ce point de terminaison est obsolète. Utilisez [Supprimer la source de données par UID](#v12-Grafana-API-Datasource-deletebyUID) à la place.

```
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"}
```