

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ダッシュボード API
<a name="Grafana-API-Dashboard"></a>

ダッシュボード API を使用して、Amazon Managed Grafana ワークスペースのダッシュボードを作成、更新、削除、操作します。

ダッシュボードの識別子 (id) は自動増分数値で、ワークスペースごとに一意です。ダッシュボードの一意の識別子 (uid) は、複数の Amazon Managed Grafana ワークスペース間のダッシュボードを一意に識別するために使用できます。ダッシュボードの作成時に指定しない場合は自動的に生成されます。uid を使用すると、ダッシュボードにアクセスしたり、複数のワークスペース間でダッシュボードを同期したりするための、一貫した URL を設定できます。uid を使用すると、ダッシュボードのタイトルを変更しても、そのダッシュボードにブックマークされたリンクが破損することはありません。

uid の最大長は 40 文字までです。

**注記**  
Amazon Managed Grafana ワークスペースで Grafana API を使用するには、有効な Grafana API トークンが必要です。このトークンは API リクエストの `Authorization` フィールドに含めます。API コールを認証するトークンの作成方法については、「[トークンを使用した認証](authenticating-grafana-apis.md)」を参照してください。

## ダッシュボードの作成/更新
<a name="Grafana-API-Dashboard-createupdate"></a>

```
POST /api/dashboards/db
```

新しいダッシュボードを作成または既存のダッシュボードを更新します。

**新しいダッシュボードを作成するためのリクエスト例**

```
POST /api/dashboards/db HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "dashboard": {
    "id": null,
    "uid": null,
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "schemaVersion": 16,
    "version": 0,
    "refresh": "25s"
  },
  "folderId": 0,
  "folderUid": "l3KqBxCMz",
  "message": "Made changes to xyz",
  "overwrite": false
}
```

JSON ボディスキーマ:
+ **dashboard** — 完全なダッシュボードモデルです。新しいダッシュボードの作成には null を使用します。
+ **dashboard.id** — 新しいダッシュボードの作成には null を使用します。
+ **dashboard.uid** — これを使用して新しいダッシュボードを作成するときの、一意のオプション識別子です。null の場合は新しい uid が生成されます。
+ **folderid** — ダッシュボードが保存されるフォルダの ID。
+ **folderUid** — ダッシュボードが保存されるフォルダの Uid。`folderid` の値を上書きします
+ **overwrite** — `true` を指定すると、既存のダッシュボードが、新しいバージョン、フォルダ内の同じダッシュボードタイトル、または同じダッシュボード uid で上書きされます。
+ **message** — バージョン履歴のコミットメッセージを設定します。
+ **[更新]** — ダッシュボード更新間隔を設定します。これが最小更新間隔より小さい場合は、無視されて最小更新間隔が使用されます。

ダッシュボードパネルのアラートルールを追加または更新するには、`dashboard.panels.alert` ブロックを宣言します。

**ダッシュボードアラートルールを更新するリクエスト例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 78

{
 "dashboard":  {
        "id": 104,
        "panels": [
            {
                "alert": {
                    "alertRuleTags": {},
                    "conditions": [
                        {
                            "evaluator": {
                                "params": [
                                    25
                                ],
                                "type": "gt"
                            },
                            "operator": {
                                "type": "and"
                            },
                            "query": {
                                "params": [
                                    "A",
                                    "5m",
                                    "now"
                                ]
                            },
                            "reducer": {
                                "params": [],
                                "type": "avg"
                            },
                            "type": "query"
                        }
                    ],
                    "executionErrorState": "alerting",
                    "for": "5m",
                    "frequency": "1m",
                    "handler": 1,
                    "name": "Panel Title alert",
                    "noDataState": "no_data",
                    "notifications": []
                },
                "aliasColors": {},
                "bars": false,
                "dashLength": 10,
                "dashes": false,
                "datasource": null,
                "fieldConfig": {
                    "defaults": {
                        "custom": {}
                    },
                    "overrides": []
                },
                "fill": 1,
                "fillGradient": 0,
                "gridPos": {
                    "h": 9,
                    "w": 12,
                    "x": 0,
                    "y": 0
                },
                "hiddenSeries": false,
                "id": 2,
                "legend": {
                    "avg": false,
                    "current": false,
                    "max": false,
                    "min": false,
                    "show": true,
                    "total": false,
                    "values": false
                },
                "lines": true,
                "linewidth": 1,
                "nullPointMode": "null",
                "options": {
                    "dataLinks": []
                },
                "percentage": false,
                "pointradius": 2,
                "points": false,
                "renderer": "flot",
                "seriesOverrides": [],
                "spaceLength": 10,
                "stack": false,
                "steppedLine": false,
                "targets": [
                    {
                        "refId": "A",
                        "scenarioId": "random_walk"
                    }
                ],
                "thresholds": [
                    {
                        "colorMode": "critical",
                        "fill": true,
                        "line": true,
                        "op": "gt",
                        "value": 50
                    }
                ],
                "timeFrom": null,
                "timeRegions": [],
                "timeShift": null,
                "title": "Panel Title",
                "tooltip": {
                    "shared": true,
                    "sort": 0,
                    "value_type": "individual"
                },
                "type": "graph",
                "xaxis": {
                    "buckets": null,
                    "mode": "time",
                    "name": null,
                    "show": true,
                    "values": []
                },
                "yaxes": [
                    {
                        "format": "short",
                        "label": null,
                        "logBase": 1,
                        "max": null,
                        "min": null,
                        "show": true
                    },
                    {
                        "format": "short",
                        "label": null,
                        "logBase": 1,
                        "max": null,
                        "min": null,
                        "show": true
                    }
                ],
                "yaxis": {
                    "align": false,
                    "alignLevel": null
                }
            }
        ],
        "title": "Update alert rule via API",
        "uid": "dHEquNzGz",
        "version": 1
    }
}
```

**レスポンスの例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 78

{
  "id":      1,
  "uid":     "cIBgcSjkk",
  "url":     "/d/cIBgcSjkk/production-overview",
  "status":  "success",
  "version": 1,
  "slug":    "production-overview" //deprecated in Grafana v5.0
}
```

ステータスコード:
+ **200** — 作成済み
+ **400** — 無効な JSON、無効なフィールド、欠落したフィールドなどのエラー
+ **401** — 未許可
+ **403** — アクセス拒否
+ **412** — 前提条件失敗

**412** ステータスコードはダッシュボードを作成できない理由の説明に使用されます。
+  ダッシュボードが他のユーザーによって変更された `status=version-mismatch` 
+  フォルダに同じ名前のダッシュボードが既に存在する `status=name-exists` 
+  同じ uid のダッシュボードが既に存在する `status=name-exists` 
+ ダッシュボードはプラグイン `plugin title` `status=plugin-dashboard` に属している

レスポンス本文には次のプロパティがあります。別のダッシュボードに同じタイトルがある場合、`status` 値は `name-exists` です。

```
HTTP/1.1 412 Precondition Failed
Content-Type: application/json; charset=UTF-8
Content-Length: 97

{
  "message": "The dashboard has been changed by someone else",
  "status": "version-mismatch"
}
```

## uid によるダッシュボードの取得
<a name="Grafana-API-Dashboard-get"></a>

```
GET /api/dashboards/uid/:uid
```

uid と一致するダッシュボードを返します。返されるメタデータには、ダッシュボードを含むフォルダの UID の情報が含まれている場合があります。

**リクエストの例**

```
GET /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

{
  "dashboard": {
    "id": 1,
    "uid": "cIBgcSjkk",
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "schemaVersion": 16,
    "version": 0
  },
  "meta": {
    "isStarred": false,
    "url": "/d/cIBgcSjkk/production-overview",
    "folderId": 2,
    "folderUid": "l3KqBxCMz",
    "slug": "production-overview" //deprecated in Grafana v5.0
  }
}
```

ステータスコード:
+ **200** — 検出済み
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — 未検出

## uid によるダッシュボードの削除
<a name="Grafana-API-Dashboard-delete"></a>

```
DELETE /api/dashboards/uid/:uid
```

uid と一致するダッシュボードを削除します。

**リクエストの例**

```
DELETE /api/dashboards/uid/cIBgcSjkk HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

{
  "title": "Production Overview",
  "message": "Dashboard Production Overview deleted",
  "id": 2
}
```

ステータスコード:
+ **200** — 削除済み
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — 未検出

## ホームダッシュボードの取得
<a name="Grafana-API-Dashboard-home"></a>

```
GET /api/dashboards/home
```

ホームダッシュボードを返します。

**リクエストの例**

```
GET /api/dashboards/home HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

{
  "dashboard": {
    "editable":false,
    "hideControls":true,
    "nav":[
      {
        "enable":false,
        "type":"timepicker"
      }
    ],
    "style":"dark",
    "tags":[],
    "templating":{
      "list":[
      ]
    },
    "time":{
    },
    "timezone":"browser",
    "title":"Home",
    "version":5
  },
  "meta":	{
    "isHome":true,
    "canSave":false,
    "canEdit":false,
    "canStar":false,
    "url":"",
    "expires":"0001-01-01T00:00:00Z",
    "created":"0001-01-01T00:00:00Z"
  }
}
```

## ダッシュボードタグの取得
<a name="Grafana-API-Dashboard-tags"></a>

```
GET /api/dashboards/tags
```

ダッシュボードのタグすべてを返します。

**リクエストの例**

```
GET /api/dashboards/tags HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

[
  {
    "term":"tag1",
    "count":1
  },
  {
    "term":"tag2",
    "count":4
  }
]
```