

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

# ビルトイン データソースに接続する
<a name="AMG-data-sources-builtin"></a>

すべての Amazon Managed Grafana ワークスペースで、次のデータソースがサポートされています。

バージョン 9 以降をサポートするワークスペースでは、これらのデータソースの一部がデフォルトでインストールされない場合があります。コアデータソースはすべてのインストールで使用できますが、コアセットに含まれていないデータソースには、対応する Grafana プラグインのインストールが必要です。リストにないデータソースを追加で使用する場合は、プラグインをインストールすることで対応できます。プラグインの管理の詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

**Topics**
+ [アラートマネージャー](data-source-alertmanager.md)
+ [Amazon CloudWatch](using-amazon-cloudwatch-in-AMG.md)
+ [Amazon OpenSearch Service](using-Amazon-OpenSearch-in-AMG.md)
+ [AWS IoT SiteWise](using-iotsitewise-in-AMG.md)
+ [AWS IoT TwinMaker](AMG-iot-twinmaker.md)
+ [Prometheus](prometheus-data-source.md)
+ [Amazon Timestream](timestream-datasource.md)
+ [Amazon Athena](AWS-Athena.md)
+ [Amazon Redshift](AWS-Redshift.md)
+ [AWS X-Ray](x-ray-data-source.md)
+ [Azure モニター](using-azure-monitor-in-AMG.md)
+ [Graphite](using-graphite-in-AMG.md)
+ [Google Cloud Monitoring](using-google-cloud-monitoring-in-grafana.md)
+ [InfluxDB](using-influxdb-in-AMG.md)
+ [Jaeger](jaeger-data-source.md)
+ [Loki](using-loki-in-AMG.md)
+ [Microsoft SQL Server](using-microsoft-sql-server-in-AMG.md)
+ [MySQL](using-mysql-in-AMG.md)
+ [OpenSearch](using-opensearch-in-AMG.md)
+ [OpenTSDB](using-opentsdb-in-AMG.md)
+ [[PostgreSQL]](using-postgresql-in-AMG.md)
+ [Templ](tempo-data-source.md)
+ [TestData](testdata-data-source.md)
+ [Zipkin](zipkin-data-source.md)

# アラートマネージャーデータソースに接続する
<a name="data-source-alertmanager"></a>

Grafana にはビルトインで Prometheus アラートマネージャーのサポートが含まれています。Grafana アラートの設定完了後、Grafana アラート UI を使用して、サイレンス、連絡先、通知ポリシーを管理できます。これらのページのドロップダウンから、Grafana と設定済みのアラートマネージャーデータソースのどちらを使用するかを切り替えることができます。

**アラートマネージャーの実装**

アラートマネージャーの [Prometheus](https://prometheus.io/)、[Cortex](https://cortexmetrics.io/)、および [Grafana Mimir](https://grafana.com/docs/mimir/latest/) 実装がサポートされています。実装は、データソース設定ページで指定できます。Prometheus のコンタクトポイント (通知先) と通知ポリシーは、HTTP API を介した設定の更新をサポートしていないため、Grafana アラート UI では読み取り専用になります。

## アラートマネージャーデータソースの設定
<a name="data-source-alertmanager-create"></a>

Grafana アラートで使用するアラートマネージャーデータソースを設定できます。

**前提条件**

アラートマネージャーを設定するには、次の前提条件を満たしている必要があります。
+ Prometheus インスタンスに取り込まれたメトリクスがあり、少なくとも 1 つのアラートまたは記録ルールが設定されている。ワークスペースの URL が必要です。
+ Amazon Managed Grafana に、アラートマネージャ実装からのアラート、アラートグループ、サイレンス、およびコンタクトポイントの読み取り権限が定義された権限が付与されている。

**アラートマネージャーデータソースの設定方法**

1. Grafana コンソールの Grafana メニューの [**設定**] にある [**データソース**] ページを選択します。

1. **[データソースの追加]** を選択し、データソースタイプのリストから **[アラートマネージャー]** を選択します。

1. 新規データソースに次の情報を入力します:
   + **名前**: データソースの名前を入力します。
   + **実装**: **Prometheus **、**Mimir**、**Cortex** のいずれかのアラートマネージャー実装を選択します。
   + **HTTP**: **URL** に、アラートマネージャーの URL を指定します。Prometheus の場合、この URL は ワークスペース URL で、 `alertmanager` が追加されます。例えば、`https://myprometheus/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`。
   + **認証**: アラートマネージャー実装にアクセスするために必要な認証の詳細を設定します。

1. [**保存とテスト**] を選択して、データソースのセットアップを完了します。

   データソースが正しく設定されている場合、**ヘルスチェックに合格**したことを示すメッセージが表示されます。

# Amazon CloudWatch データソースへの接続
<a name="using-amazon-cloudwatch-in-AMG"></a>

Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用してAmazon CloudWatch をデータソースとして追加できます。この機能は、既存の CloudWatch アカウントを検出して、CloudWatch をデータソースとして追加する作業を簡素化し、CloudWatch へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定すると、データソースとして CloudWatch を追加できます。または、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。

**Topics**
+ [AWS データソース設定を使用して CloudWatch をデータソースとして追加する](adding-CloudWatch-AWS-config.md)
+ [CloudWatch をデータソースとして手動で追加する](adding--CloudWatch-manual.md)
+ [クエリエディタの使用](CloudWatch-using-the-query-editor.md)
+ [精選されたダッシュボード](CloudWatch-curated-dashboards.md)
+ [テンプレート化されたクエリ](cloudwatch-templated-queries.md)
+ [ec2\$1instance\$1attribute の使用例](cloudwatch-ec2-instance-attribute-examples.md)
+ [JSON 形式のテンプレート変数の使用](cloudwatch-using-json-format-template-variables.md)
+ [料金](cloudwatch-pricing.md)
+ [サービスクォータ](cloudwatch-service-quotas.md)
+ [クロス アカウント オブザーバビリティ](cloudwatch-cross-account.md)

# AWS データソース設定を使用して CloudWatch をデータソースとして追加する
<a name="adding-CloudWatch-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の CloudWatch リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして CloudWatch を追加します。

**AWS データソース設定を使用して CloudWatch をデータソースとして追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ナビゲーションペインで、メニューアイコンを選択し、[**すべてのワークスペース**] を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。

1. **Amazon CloudWatch** のチェックボックスを選択し、[**アクション**]、[**サービス管理ポリシーを有効にする**] を選択します。

1. 再度**[データソース]** タブを選択します。

1. **Amazon CloudWatch** 行で **Grafana で設定** を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールのナビゲーションバーで AWS アイコンを選択し、**AWS [サービス]**、**[CloudWatch]** を選択します。

1. CloudWatch データソースがクエリを実行するデフォルトのリージョンを選択します。

1. 目的のアカウントを選択し、**[データソースを追加]**を選択します。

# CloudWatch をデータソースとして手動で追加する
<a name="adding--CloudWatch-manual"></a>

**CloudWatch データソースの手動での追加方法**

1. Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンにカーソルを合わせて**データソース**を選択します。

1. **[データソースの追加]** を選択します。

1. **CloudWatch** データソースを選択します。必要に応じて、検索ボックスに **CloudWatch** の入力を開始すると検索を補助することができます。

## CloudWatch の設定
<a name="settings-CloudWatch"></a>

次の CloudWatch 設定が適用されます。


| 名前 | 説明 | 
| --- | --- | 
|  `Name`  | データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  `Default`  | 新しいパネルで事前に選択されるデータソースを指定します。 | 
|  `Default Region`  | クエリエディタでリージョンを設定します。クエリごとに変更できます。 | 
|  `Namespaces of Custom Metrics`  | カスタムメトリクスの CloudWatch 名前空間を指定します。名前空間が複数ある場合、カンマで区切って指定します。 | 
|  `Auth Provider`  | 認証情報を取得するプロバイダーを指定します。 | 
|  `Assume Role Arn`  | 引き受けるロールの Amazon リソースネーム (ARN) を指定します。 | 
|  `External ID`  | (オプション) 外部 ID を指定します。外部 ID で AWS アカウント 作成された別の でロールを引き受ける場合は、 を使用します。 | 
| `Timeout` | CloudWatch Logs クエリ専用のタイムアウトを設定します。 | 
| `X-Ray trace links` | ログに `@xrayTraceId` フィールドが含まれている場合にログ内にリンクを自動的に追加するには、データソース設定の [**X-Ray トレースリンク**] セクションで X-Ray データソースをリンクします。[X-Ray データソース](x-ray-data-source.md)が既に設定されている必要があります。 | 

### 認証
<a name="CloudWatch-authentication"></a>

Amazon Managed Grafana と CloudWatch 間の認証を有効にする場合、Amazon Managed Grafana コンソールを使用することで必要なポリシーとアクセス許可を素早く作成できます。または、セルフマネージド Grafana サーバーで実行する際と同じ方法の一部を使用して認証を手動で設定することもできます。

Amazon Managed Grafana データソース設定を使用して素早くポリシーを設定する場合、「[AWS データソース設定を使用して CloudWatch をデータソースとして追加する](adding-CloudWatch-AWS-config.md)」のステップに従います。

アクセス許可を手動で設定する場合、次のセクションに記載のいずれかの方法を使用します。

#### AWS 認証情報
<a name="CloudWatch-authentication-aws-credentials"></a>

認証には 3 つの方法があります。
+ **AWS SDK デフォルト** — ワークスペースにアタッチされているロールで定義されたアクセス許可を使用します。詳細については、「[「カスタマー管理」のアクセス許可](AMG-manage-permissions.md#AMG-customer-managed)」を参照してください。
+ **アクセスキーとシークレットキー** — AWS SDK for Go `StaticProvider` に対応します。指定されたアクセスキー ID とシークレットキーを使用して認証します。この方法にはフォールバックがないため、指定されたキーのペアが機能しない場合は失敗します。

#### IAM ロール
<a name="CloudWatch-authentication-iam-roles"></a>

 現在、CloudWatch へのすべてのアクセスは、公式 AWS SDK を使用して Grafana バックエンドによってサーバー側で行われます。*AWS SDK デフォルト*認証方法を選択し、Grafana サーバーが実行されている場合は AWS、IAM ロールを使用して認証を自動的に処理できます。

 詳細については、「[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)」を参照してください。

#### IAM ポリシー
<a name="CloudWatch-authentication-iam-policies"></a>

Grafana が CloudWatch メトリクスや EC2 のタグ、インスタンス、リージョンを読み取るためには、IAM での権限付与が必要です。これらのアクセス許可を IAM ロールに付与し、Grafana の組み込み機能を使用してロールを引き受けることができます。

 次のコードは、最小限のポリシーのコードの例です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReadingMetricsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingLogsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogGroupFields",
                "logs:StartQuery",
                "logs:StopQuery",
                "logs:GetQueryResults",
                "logs:GetLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingResourcesForTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingAcrossAccounts",
            "Effect": "Allow",
            "Action": [
                "oam:ListSinks",
                "oam:ListAttachedLinks"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### ロールを割り当てる
<a name="CloudWatch-assuming-a-role"></a>

 引き受ける IAM ロールがある場合、この `Assume Role ARN` フィールドに指定します。このフィールドを空白のままにした場合、提供された認証情報が直接使用されます。また、関連するロールまたはユーザーに必要なアクセス許可が必要です。このフィールドが空白でない場合、提供された認証情報を使用して `sts:AssumeRole` 呼び出しが実行されます。

# クエリエディタの使用
<a name="CloudWatch-using-the-query-editor"></a>

Amazon Managed Grafana の CloudWatch データソースは、CloudWatch にデータを送信するさまざまな AWS サービスからメトリクスとログを取得して分析できる強力なクエリエディタを提供します。クエリエディタは、メトリクス検索と CloudWatch Logs の 2 つの異なるクエリモードをサポートしています。

メトリクス用のクエリモードは、CloudWatch API を使用して CloudWatch にアップロードされたメトリクスを検索します。ログ用のモードでは、CloudWatch Logs APIs を使用してログレコードを検索します。各モードには、専用のクエリエディタがあります。エディタの上部にあるクエリモードスイッチを使用して、クエリを実行する API を選択します。

**Topics**
+ [メトリクスクエリエディタの使用](CloudWatch-using-the-metric-query-editor.md)
+ [Amazon CloudWatch Logs クエリエディタの使用](CloudWatch-using-the-logs-query-editor.md)

# メトリクスクエリエディタの使用
<a name="CloudWatch-using-the-metric-query-editor"></a>

メトリクスクエリエディタでは、「**メトリクス検索**」と「**メトリクスクエリ**」の 2 種類のクエリを構築できます。**[メトリクスクエリ]** は、データのクエリに CloudWatch Metrics Insights を使用します。

## 一般的なクエリエディタのフィールド構成
<a name="metrics-insights-common-fields"></a>

 次の 3 つのフィールドは「**メトリクス検索**」モードと「**メトリクスクエリ**」モードの両方に共通して存在します。

 **共通フィールド**

**ID**  
`GetMetricData` API では、すべてのクエリに一意の ID が必要です。このフィールドに ID を指定します。ID には、数字、文字、アンダースコアを使用できます (小文字で始める必要があります)。ID が指定されていない場合、Amazon Managed Grafana は `query[refId of the current query row]` のパターンの ID を生成します。例えば、`queryA` はパネルエディタの最初のクエリ行を表します。

**Period**  
期間とは、特定の CloudWatch 統計に関連付けられた時間長です。期間は秒単位で定義されます。値には 1、5、10、30、の他に 60 の倍数を使用できます。期間フィールドを空白のままにするか、`auto` に設定すると、時間範囲と CloudWatch 保持期間ポリシーを基に自動的に計算されます。使用される式は `time range in seconds / 2000` で、保持期間を基に期間を除外した後、事前に定められた期間 [60、300、900、3600、21600、86400] の中から次に大きな値に移動します。Amazon Managed Grafana が使用している期間を確認するには、クエリエディタで [**クエリプレビューを表示**] を選択します。

**エイリアス**  
次のエイリアスパターンが適用されます。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/CloudWatch-using-the-metric-query-editor.html)

# メトリクス検索オプションの使用
<a name="CloudWatch-using-the-metric-search"></a>

 **メトリクス検索**で有効なクエリを作成するには、名前空間、メトリクス名、および少なくとも 1 つの統計を指定する必要があります。**[完全一致]** が有効になっている場合、クエリするメトリクスのすべてのディメンションも指定する必要があります。メトリクススキーマは完全に一致する必要があります。詳細については、「[CloudWatch 検索式構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html)」を参照してください。

**[完全一致]** がオフになっている場合、フィルタリングするディメンションの指定数に制限はありません。フィルター条件に一致するメトリクスは最大 100 個まで返されます。

## ディメンションワイルドカード文字を使用した動的クエリ
<a name="dynamic-queries-using-dimension-wildcards"></a>

 1 つ以上のディメンション値にアスタリスク (`*`) ワイルドカード文字を使用して、メトリクスの動的リストをモニタリングできます。

 これにより、EC2 インスタンスやコンテナなどの AWS リソースのメトリクスをモニタリングできます。立ちエバ、Auto Scaling イベントの一部として新しいインスタンスが作成されると、グラフに自動で表示されるため、新しいインスタンス ID を追跡する必要はありません。この機能によるメトリクスの取得は現在、最大 100 個に制限されています。[**クエリプレビューを表示**] を選択すると、ワイルドカード文字をサポートするために自動的に構築された検索式を確認することができます。

 デフォルトでは、検索式は、クエリ対象のメトリクスが定義されたディメンション名と正確に一致するように定義されています。つまり、この例では、名前が `InstanceId` のディメンションが 1 つだけのメトリクスのみが返されます。

 他のディメンションが定義されているメトリクスも含めるには、**[完全一致]** をオフにします。**[完全一致]** をオフにすると、ワイルドカード文字を使用しなくても検索式が作成されます。Grafana は、少なくとも名前空間、メトリクス名、および定義されたすべてのディメンションに一致するメトリクスを検索します。

## 複数値のテンプレート変数
<a name="cloudwatch-multi-value-template-variables"></a>

 複数値のテンプレート変数からディメンション値を定義する場合、検索式を使用して一致するメトリクスをクエリします。これにより、1 つのクエリで複数のテンプレート変数を使用できます。**[完全一致]** オプションがオフになっているクエリには、テンプレート変数を使用することもできます。

 検索式は現在 1024 文字に制限されているため、値のリストが長い場合、クエリが失敗することがあります。特定のディメンション名の値を持つすべてのメトリクスをクエリする場合は、`All` オプションの代わりにアスタリスク (`*`) ワイルドカード文字を使用することをお勧めします。

 複数値のテンプレート変数の使用は、ディメンション値でのみサポートされます。`Region`、`Namespace`、または `Metric Name` の複数値テンプレート変数の使用はサポートされていません。

## メトリクス数式を使用する
<a name="cloudwatch-metric-math-expressions"></a>

 CloudWatch のメトリクスに対して数学的な関数を使って操作を行うことで、新しい時系列メトリクスを作成できます。算術演算子、単項減算、その他の関数がサポートされており、CloudWatch メトリクスに適用することができます。メトリクス数式の詳細については、「[メトリクス数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。

 例えば、メトリクスに算術演算を適用するには、未加工のメトリクスに ID (一意の文字列) を指定します。その後、この ID を使用して、新しいメトリクスの `Expression` フィールドで算術演算を適用できます。

 `Expression` フィールドを使用して `queryA * 2` などの別のクエリを参照する場合、そのクエリを基にアラートルールを作成することはできません。

## Period
<a name="cloudwatch-period"></a>

 期間とは、特定の Amazon CloudWatch 統計に関連付けられた時間長です。期間は秒単位で定義されます。値には 1、5、10、30、の他に 60 の倍数を使用できます。

期間フィールドを空白のままにするか、**[自動]** に設定すると、時間範囲を基に自動的に計算されます。使用される式は `time range in seconds / 2000` で、事前定義された期間の配列 `[60, 300, 900, 3600, 21600, 86400]` 内の次に高い値に進みます。Amazon Managed Grafana が使用している期間を確認するには、クエリエディタで **[クエリプレビューを表示]** を選択します。

## Grafana パネルから CloudWatch コンソールへのディープリンク
<a name="deep-linking-from-grafana-panels-to-the-cloudwatch-console"></a>

 パネルで時系列を選択するとコンテキストメニューが表示され、その中に [**CloudWatch コンソールで表示**] のリンクが表示されます。リンクを選択すると新しいタブが開き、そのクエリのすべてのメトリクスが表示された CloudWatch コンソールに移動します。リンククリック時に CloudWatch コンソールにサインインしていない場合、サインインページに転送されます。提供されたリンクは に有効です AWS アカウント が、Grafana で選択したデータソース AWS アカウント に対応する にサインインしている場合にのみ、正しいメトリクスが表示されます。

 この機能は、メトリクス数式に基づくメトリクスでは使用できません。

# メトリクスクエリを使用して CloudWatch Metrics Insights データをクエリする
<a name="CloudWatch-using-the-metric-query"></a>

**注記**  
Amazon CloudWatch Metrics Insights はプレビュー中です。CloudWatch Metrics Insights の機能は、すべての AWS アカウントが利用できます。機能は変更される可能性があります。

 CloudWatch Metrics Insights のデータは、**[メトリクスクエリエディタ]**で `metric query` モードを選択することでクエリできます。

 CloudWatch Metrics Insights は、高性能な SQL クエリエンジンであり、これにより、メトリクスに対し大量のクエリを実行できます。これは、すべての CloudWatch メトリクス内の傾向とパターンをリアルタイムで特定するために使用できる、高速で柔軟な SQL ベースのクエリエンジンです。SQL の方言を使用します。Metrics Insights のクエリ構文の詳細については、「[クエリ構文とキーワード](#metrics-insights-syntax-keywords)」を参照してください。

## クエリ構文とキーワード
<a name="metrics-insights-syntax-keywords"></a>

CloudWatch Metrics Insights では SQL の方言を使用しています。以下にクエリの構文例を示します。

```
SELECT FUNCTION(metricName)
FROM namespace | [ SCHEMA(namespace[, labelKey [, ...] ]) ]
     [ WHERE labelKey OPERATOR labelValue [AND|OR|([...])*] [, ...] ]
[ GROUP BY labelKey [, ...]]
[ ORDER BY FUNCTION() [DESC | ASC] ]
[ LIMIT number]
```

 キーワードでは大文字と小文字は区別されませんが、識別子では大文字と小文字は区別されます。識別子には、メトリクスの名前、名前空間、ディメンションが含まれます。

 次の表に、クエリのキーワードとその説明を示します。


|  キーワード  |  説明  | 
| --- | --- | 
|  FUNCTION  |  必須。使用する集計関数とクエリするメトリクスの名前を指定します。有効な値は、AVG、COUNT、MAX、MIN、SUM です。 | 
|  MetricName   |  必須。例えば、CPUUtilization と指定します。 | 
|  FROM  |  必須。メトリクスのソースを指定します。クエリするメトリクスを含むメトリクス名前空間、または、SCHEMA テーブル関数のどちらかを指定します。名前空間の例は、AWS/EC2、AWS/Lambda などです。 | 
|  SCHEMA  |  (任意) クエリ結果をフィルタリングして、完全に一致するメトリクス、または一致しないメトリクスのみを表示します。 | 
|  WHERE  |  (任意) 結果をフィルタリングして、指定した式に一致するメトリクスのみを表示します。例えば、WHERE InstanceType \$1= 'c3.4xlarge'。 | 
|  GROUP BY  |  (任意) クエリ結果を複数の時系列にグループ化します。例えば、GROUP BY ServiceName。 | 
|  ORDER BY  |  (任意) 返される時系列の順序を指定します。ASC と DESC を使用できます。 | 
|  LIMIT  |  (任意) 返される時系列の数を制限します。 | 

次に例をいくつか示します。
+ 

  ```
  SELECT AVG(CPUUtilization) FROM "AWS/EC2" 
  ```

   ディメンションを無視して `AWS/EC2` 名前空間内のすべての `CPUUtilization` メトリクスを照合し、単一の集計された時系列を返します。
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2")
  ```

   ディメンションが定義されていない `AWS/EC2` 名前空間内の `CPUUtilization` メトリクスのみを一致させます。
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)
  ```

   CloudWatch に報告された 1 つのディメンション (`InstanceId`) を持つ `CPUUtilization` メトリクスのみを一致させます。
+ 

  ```
  SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,
  AvailabilityZone)
  ```

   CloudWatch に `AWS/ApplicationELB` から報告された 2 つのディメンション（`LoadBalancer` と `AvailabilityZone`）を持つ `RequestCount` メトリクスのみを一致させます。

 ラベル値は一重引用符で囲む必要があります。

### エスケープ文字
<a name="escape-characters"></a>

クエリで指定するラベル値は、常に一重引用符で囲む必要があります。  例えば、`SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE AutoScalingGroupName = 'my-production-fleet'`。

 文字、数字、アンダースコア (`_`) 以外の文字を含むメトリクスの名前空間、メトリクス名、ラベルキーは、二重引用符で囲む必要があります。例えば、`SELECT MAX("My.Metric")` と指定します。これらのいずれかに `Bytes"Input"` のように二重引用符自体が含まれている場合は、`SELECT AVG("Bytes\"Input\"")` のように、その二重引用符をバックスラッシュでエスケープする必要があります。メトリクス名前空間、メトリクス名、またはラベルキーに、Metrics Insights での予約キーワードが含まれている場合は、これらも二重引用符で囲む必要があります。例えば、`LIMIT` という名前のメトリクスを指定するのであれば、`SELECT AVG("LIMIT")` のようになります。また、予約キーワードを含まない場合に、名前空間、メトリクス名、またはラベルを二重引用符で囲んだとしても、エラーとはなりません。

## ビルダーモードとコードモード
<a name="metrics-insights-query-modes"></a>

クエリを作成するモードには、`Builder` モードと `Code` モードがあります。

**`Builder` モードでのクエリ作成方法**

1. 前の表の情報を参考に、メトリクスの名前空間、メトリクス名、フィルター、グループ、順序オプションを参照して選択します。

1. これらの各オプションについて、利用可能な選択肢のリストから選択します。

**`Code` モードでのクエリ作成方法**

1. コードエディタにクエリを記述します。

1. クエリを実行するには、コードエディタで [**クエリを実行する**] を選択します。

`builder` モードでのクエリ作成方法:
+ 前の表の情報を参考に、メトリクスの名前空間、メトリクス名、フィルター、グループ、順序オプションを参照して選択します。
+ これらの各オプションについて、利用可能な選択肢のリストから選択します。

Grafana によって、選択した内容を基に SQL クエリが自動的に構築されます。

 `code` モードでのクエリ作成方法:
+ コードエディタにクエリを記述します。
+ クエリを実行するには、コードエディタで **[クエリを実行する]** を選択します。

コードエディタには、キーワード、集計、名前空間、メトリクス、ラベル、ラベル値に対して候補を提示する自動補完機能が組み込まれています。スペース、カンマ、またはドル記号を入力すると、候補が表示されます。キーボードの組み合わせ (`CTRL+Space`) を使用することもできます。

コードエディタはクエリを自動補完します。ただし、コードエディタでテンプレート変数を使用した場合、自動補完が妨げられる可能性があります。

## CloudWatch Metrics Insights の例
<a name="goldeneye-examples"></a>

**注記**  
CloudWatch Metrics Insights はオープンプレビュー中です。プレビューはすべての AWS アカウントで開かれており、アクセスをリクエストする必要はありません。一般提供を発表する前に、機能が追加または変更されることがあります。

このセクションでは、コピーして直接使用することも、クエリエディタで編集して使用することもできる、有用な CloudWatch Metrics Insights クエリの例を紹介します。これらの例の内のいくつかは、コンソールで既に利用可能な状態であり、**[メトリクス]** ビューで **[クエリを追加]** をクリックしてアクセスすることができます。

### EC2 の例
<a name="goldeneye-EC2-examples"></a>

 インスタンスあたりの CPU 使用率のメトリクスを表示

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
```

フリート全体での平均 CPU 使用率を表示

```
SELECT AVG(CPUUtilization)
FROM SCHEMA("AWS/EC2", InstanceId)
```

 平均 CPU 使用率が最も高い 10 個のインスタンスを表示 

```
SELECT MAX(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
LIMIT 10
```

CPU 使用率が最も高い 10 個のインスタンスを降順で表示

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
ORDER BY MAX() DESC
LIMIT 10
```

このケースでは、CloudWatch エージェントはアプリケーションごとに CPU 使用率のメトリクスを収集しています。このクエリは、特定のアプリケーション名について、このメトリクスの平均によるフィルタリングを行います。

```
SELECT AVG(CPUUtilization)
FROM "AWS/CWAgent"
WHERE ApplicationName = 'eCommerce'
SELECT AVG(ConcurrentExecutions)
FROM "AWS/Lambda"
```

Lambda 関数の平均実行時間上位 10 個を降順で表示

```
SELECT AVG(Duration)
FROM "AWS/Lambda"
GROUP BY FunctionName
ORDER BY MAX() DESC
LIMIT 10
```

Lambda 関数の実行時間の最大値、平均値、最小値を表示

```
SELECT MAX(Duration)
FROM "AWS/Lambda"
```

### Application Load Balancer での例
<a name="application-loadbalancer-examples"></a>

 ディメンション **LoadBalancer** と **AvailabilityZone** を持つメトリクスを表示

```
SELECT SUM(RequestCount)
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer, AvailabilityZone)
```

アクティブな同時 TCP 接続の数を含むメトリクスを表示

```
SELECT AVG(ActiveConnectionCount)
FROM "AWS/ApplicationELB"
```

### Amazon EBS の例
<a name="Amazon-elastic-block-store-examples"></a>

 ボリュームあたりの平均書き込みバイト数の上位 10 個を降順で表示

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
GROUP BY VolumeId
ORDER BY MAX() DESC
LIMIT 10
```

Amazon EBS ボリュームでの平均書き込み時間を表示

```
SELECT AVG(VolumeTotalWriteTime)
FROM "AWS/EBS"
```

Amazon EBS ボリュームでの平均アイドル時間を表示

```
SELECT AVG(VolumeIdleTime)
FROM "AWS/EBS"
View average burst balance per volume
SELECT AVG(BurstBalance)
FROM "AWS/EBS"
GROUP BY VolumeId
View average read bytes across Amazon EBS volumes
SELECT AVG(VolumeReadBytes)
FROM "AWS/EBS"
```

Amazon EBS ボリュームでの平均書き込みバイト数を表示

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
```

### Amazon Simple Storage Service での例
<a name="simple-storage-service-examples"></a>

 平均レイテンシーグループ (バケット名別) を表示

```
SELECT AVG(TotalRequestLatency)
FROM "AWS/S3"
GROUP BY BucketName
```

すべての Amazon S3 バケットのバケットあたりのオブジェクトの平均数を表示

```
SELECT AVG(NumberOfObjects)
FROM "AWS/S3"
GROUP BY BucketName
```

### Amazon Simple Notification Service での例
<a name="Amazon-simple-notificaation-service-examples"></a>

Amazon-Simple-Notification-Service-での例 

```
SELECT AVG(NumberOfMessagesPublished)
FROM "AWS/SNS"
```

失敗したメッセージの平均数 (トピック名別) を表示

```
SELECT AVG(NumberOfNotificationsFailed)
FROM "AWS/SNS"
GROUP BY TopicName
```

### AWS API の使用例
<a name="AWS-API-usage-examples"></a>

アカウントの呼び出し数で上位 20 AWS APIs を表示する 

```
SELECT COUNT(CallCount)
FROM "AWS/Usage"
WHERE "Type" = 'API'
GROUP BY "Service", "Resource"
ORDER BY SUM() DESC
LIMIT 20
```

## CloudWatch Metrics Insights の制限
<a name="metrics-insights-limits"></a>

CloudWatch Metrics Insights には現在、次の制限があります。
+ 直近 3 時間分のデータにのみクエリを実行できます。
+ 1 つのクエリで処理できるメトリクスは 10,000 個以下です。つまり、`SELECT` 句、`FROM` 句、および `WHERE` 句が 10,000 を超えるメトリクスと一致した場合、見つかったこれらのメトリクスのうち最初の 10,000 のみがクエリによって処理されます。
+ 1 つのクエリで 500 を超える時系列を返すことはできません。これは、クエリが 500 個を超えるメトリクスを処理している場合でも、クエリ結果にすべてのメトリクスが返されるわけではないことを意味します。`ORDER BY` 句を使用すると、処理されているすべてのメトリクスがソートされます。その中から (`ORDER BY` 句に応じ) 最大値または最小値を持つ 500 個が返されます。`ORDER BY` 句を含めない場合は、一致したメトリクスの中から、どの 500 個が選択され返されるのかを制御することはできません。
+ 個別の `GetMetricData` オペレーションに含めることができるクエリは 1 つだけですが、ダッシュボードには、それぞれにクエリを 1 つ含んだ複数のウィジェットを用意することができます。

# Amazon CloudWatch Logs クエリエディタの使用
<a name="CloudWatch-using-the-logs-query-editor"></a>

 CloudWatch Logs をクエリするには、クエリするリージョンと最大 20 個のロググループを選択します。メイン入力エリアにクエリを記述します。詳細については、「[CloudWatch Logs Insights クエリ構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)」を参照してください。

 CloudWatch Logs Insights の `stats` コマンドを使用して、時系列データを返すクエリを記述することもできます。Explore で `stats` クエリを実行するときは、Metrics Explore モードになっていることを確認してください。

 クエリ入力フィールドの右側には CloudWatch Logs Insights のリンクがあり、これをクリックすると、クエリが記述された CloudWatch Logs Insights コンソールが表示されます。必要に応じて、そこで探索を続けることができます。

## テンプレート変数の使用
<a name="cloudwatch-using-template-variables"></a>

 他のいくつかのデータソースと同様に、CloudWatch データソースはクエリでのテンプレート変数の使用をサポートしています。詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## Grafana パネルから CloudWatch Logs コンソールへのディープリンク
<a name="deep-linking-from-grafana-panels-to-the-cloudwatch-console-2"></a>

 CloudWatch Logs Insights コンソールでクエリを表示するには、クエリエディタの横にある **[CloudWatch Logs Insights]** ボタンを選択します。リンククリック時に CloudWatch コンソールにサインインしていない場合、サインインページに転送されます。提供されたリンクは に有効です AWS アカウント が、Grafana で選択したデータソース AWS アカウント に対応する にサインインしている場合にのみ、正しいメトリクスが表示されます。

## [アラート]
<a name="cloudwatch-alerting"></a>

 CloudWatch Logs クエリは、例えば `stats` コマンドを使用すると数値データを返す可能性があるため、アラート機能に対応しています。詳細については、「[Grafana アラート](alerts-overview.md)」を参照してください。

# 精選されたダッシュボード
<a name="CloudWatch-curated-dashboards"></a>

 更新された CloudWatch データソースには、最も人気のある 5 つの AWS サービス用に事前設定されたダッシュボードが付属しています。
+  Amazon EC2 
+  Amazon Elastic Block Store 
+  AWS Lambda 
+  Amazon CloudWatch Logs 
+  Amazon Relational Database Service 

 事前設定済みのダッシュボードをインポートする方法: CloudWatch データソースの設定ページに移動し、[**ダッシュボード**]タブを選択し、使用するダッシュボードの [**インポート**] を選択します。ダッシュボードをカスタマイズする場合、カスタマイズするダッシュボードを別の名前で保存することをお勧めします。別の名前で保存しない場合、ダッシュボードの新しいバージョンがリリースされた際にダッシュボードが上書きされてしまいます。

# テンプレート化されたクエリ
<a name="cloudwatch-templated-queries"></a>

 メトリクスクエリにサーバー、アプリケーション、センサー名などの詳細をハードコーディングする代わりに、変数を使用することができます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とさまざまな種類のテンプレート変数の概要については、「[テンプレート](templates-and-variables.md#templates)」を参照してください。

## クエリ変数
<a name="cloudwatch-query-variable"></a>

 CloudWatch データソースでは、以下の**クエリ**を**変数**編集ビューのクエリフィールドで指定することができます。これらを使用して、変数のオプションリストに `region`、`namespaces`、`metric names`、`dimension keys/values` などの項目を埋めることができます。

 クエリのデータソースに設定されたデフォルトのリージョンを使用するように、`region` の代わりに、`default`を指定することができます。


|  名前  |  説明  | 
| --- | --- | 
|  regions()  |  すべての AWS リージョンのリストを返します。 | 
|  namespaces()  |  CloudWatch がサポートする名前空間のリストを返します。 | 
|  metrics(namespace, [region])  |  名前空間内のメトリクスのリストを返します。(カスタムメトリクスにリージョンを指定するか "default" を使用します。)  | 
|  dimension\$1keys(namespace)  |  名前空間のディメンションキーのリストを返します。 | 
|  dimension\$1values(region, namespace, metric, dimension\$1key, [filters])  |  指定された region、namespace、metric または dimension\$1key に一致するディメンション値のリストを返します。または、ディメンション filters を使用してより具体的な結果を取得することもできます。 | 
|  ebs\$1volume\$1ids(region, instance\$1id)  |  指定された region、instance\$1id に一致するボリューム ID のリストを返します。 | 
|  ec2\$1instance\$1attribute(region, attribute\$1name, filters)  |  指定された region、attribute\$1name、filters に一致する属性のリストを返します。 | 
|  resource\$1arns(region, resource\$1type, tags)  |  指定された region、resource\$1type、tags に一致する ARN のリストを返します。 | 
|  statistics()  |  すべての標準統計のリストを返します。 | 

 CloudWatch が提供するメトリクスの詳細については、「[CloudWatch メトリクスを発行するAWS サービス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)」を参照してください。

### テンプレート化されたクエリの例
<a name="cloudwatch-examples-templated-queries"></a>

 次の表は、個々の AWS サービスのリソースのリストを返すディメンションクエリの例を示しています。


|  クエリ  |  サービス  | 
| --- | --- | 
|  dimension\$1values(us-east-1,AWS/ELB,RequestCount,LoadBalancerName)  |  エラスティックロードバランシング  | 
|  dimension\$1values(us-east-1,AWS/ElastiCache,CPUUtilization,CacheClusterId)  |  Amazon ElastiCache  | 
|  dimension\$1values(us-east-1,AWS/Redshift,CPUUtilization,ClusterIdentifier)  |  Amazon Redshift  | 
|  dimension\$1values(us-east-1,AWS/RDS,CPUUtilization,DBInstanceIdentifier)  |  Amazon RDS  | 
|  dimension\$1values(us-east-1,AWS/S3,BucketSizeBytes,BucketName)  |  Amazon Simple Storage Service (Amazon S3)  | 
|  dimension\$1values(us-east-1,CWAgent,disk\$1used\$1percent,device,\$1"InstanceId":"\$1instance\$1id"\$1)  |  CloudWatch エージェント  | 
|  resource\$1arns(eu-west-1,elasticloadbalancing:loadbalancer,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  エラスティックロードバランシング  | 
|  resource\$1arns(eu-west-1,ec2:instance,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  Amazon EC2  | 

# ec2\$1instance\$1attribute の使用例
<a name="cloudwatch-ec2-instance-attribute-examples"></a>

## JSON フィルター
<a name="json-filters"></a>

 `ec2_instance_attribute` クエリは `filters` をJSON 形式で受け取ります。`ec2:DescribeInstances` の事前定義フィルターを指定できます。実際のフィルタリングは AWS Grafana ではなく で行われます。

 次の例は、フィルターの構文を示しています。

```
{ filter_name1: [ filter_value1 ], filter_name2: [ filter_value2 ] }
```

 以下に、`ec2_instance_attribute()` クエリの例を示します。

```
ec2_instance_attribute(us - east - 1, InstanceId, { 'tag:Environment': ['production'] });
```

## 属性の選択
<a name="cloudwatch-selecting-attributes"></a>

 インスタンスごとに返される属性は 1 つだけです。選択可能な属性は、単一の値を持ち、オブジェクトや配列でないフラットな属性のみです。以下のフラット属性を使用できます。
+  `AmiLaunchIndex` 
+  `Architecture` 
+  `ClientToken` 
+  `EbsOptimized` 
+  `EnaSupport` 
+  `Hypervisor` 
+  `IamInstanceProfile` 
+  `ImageId` 
+  `InstanceId` 
+  `InstanceLifecycle` 
+  `InstanceType` 
+  `KernelId` 
+  `KeyName` 
+  `LaunchTime` 
+  `Platform` 
+  `PrivateDnsName` 
+  `PrivateIpAddress` 
+  `PublicDnsName` 
+  `PublicIpAddress` 
+  `RamdiskId` 
+  `RootDeviceName` 
+  `RootDeviceType` 
+  `SourceDestCheck` 
+  `SpotInstanceRequestId` 
+  `SriovNetSupport` 
+  `SubnetId` 
+  `VirtualizationType` 
+  `VpcId` 

 タグは、タグ名のプレフィックスに `Tags` を付けることで選択できます。

 以下に、`ec2_instance_attribute()` クエリの例を示します。

```
ec2_instance_attribute(us - east - 1, Tags.Name, { 'tag:Team': ['sysops'] });
```

# JSON 形式のテンプレート変数の使用
<a name="cloudwatch-using-json-format-template-variables"></a>

 一部のクエリは JSON 形式のフィルターを受け付けており、Grafana はテンプレート変数の JSON への変換をサポートしています。

 `env = 'production', 'staging'` の場合、次のクエリは、`Environment` タグが `production` または `staging` である EC2 インスタンスの ARN を返します。

```
resource_arns(us-east-1, ec2:instance, {"Environment":${env:json}})
```

# 料金
<a name="cloudwatch-pricing"></a>

 Grafana の Amazon CloudWatch データソースは、`ListMetrics` および `GetMetricData` CloudWatch API コールを使用してメトリクスを一覧表示および取得します。CloudWatch Logs の料金は、CloudWatch Logs Insights クエリを通じて取得、アーカイブ、分析に利用されたデータ量を基に決定されます。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing)」をご覧ください。

 クエリエディタでディメンションを選択するたびに、Grafana から `ListMetrics` リクエストが発行されます。クエリエディタでクエリを変更するたびに、1 件の新しいリクエストが GetMetricData に発行されます。

 データサンプルを取得する API リクエストは、 `GetMetricData` を使用します。これにより、CloudWatch メトリクス数式に対するサポートが向上します。また、ワイルドカード文字を使用したり **[完全一致]** オプションをオフにした場合の検索式の自動生成もサポートします。`GetMetricData` の使用には料金が発生します。詳細については、[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing)をご覧ください。

# サービスクォータ
<a name="cloudwatch-service-quotas"></a>

 AWS は、 AWS アカウントのリソース、オペレーション、および項目のクォータまたは制限を定義します。ダッシュボード内のクエリの数とダッシュボードにアクセスするユーザーの数によっては、さまざまな CloudWatch および CloudWatch Logs リソースの使用制限に達する場合があります。クォータはアカウントごとおよび AWS リージョンごとに定義されることに注意してください。複数のリージョンを使用している場合、または複数のアカウントに対してクエリを実行するために複数の CloudWatch データソースを設定している場合は、制限に達した各アカウントと各リージョンについてクォータの引き上げをリクエストする必要があります。

 詳細については、「[CloudWatch サービスのクォータ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)」を参照してください。

# クロス アカウント オブザーバビリティ
<a name="cloudwatch-cross-account"></a>

**警告**  
この機能を使用するには、Grafana ワークスペースがバージョン 9 以降である必要があります。

CloudWatch プラグインを使用すると、複数のリージョンアカウント全体のアプリケーションの監視とトラブルシューティングを行うことができます。クロス アカウント オブザーバビリティを使用すると、アカウントの境界を気にすることなく、メトリクスとログをシームレスに検索、視覚化、分析できます。

クロス アカウント オブザーバビリティを有効にするには、まず CloudWatch で有効にし、その後プラグインを実行しているロール/ユーザーに適切な IAM アクションを追加します。Amazon Managed Grafana ワークスペースが VPC 内で実行されている場合は、インターネットアクセスをサポートする NAT ゲートウェイも必要です。
+ この機能を有効にする方法については、*Amazon CloudWatch ユーザーガイド*の「[CloudWatch クロス アカウントオブザーバビリティ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)」を参照してください。
+ プラグインを実行しているロール/ユーザーに追加する適切な IAM アクションを次に示します。

  ```
  {
  "Sid":  "AllowReadingAcrossAccounts",
  "Effect":  "Allow",
  "Action": [
    "oam:ListSinks",
    "oam:ListAttachedLinks"
  ],
  "Resource":  "*"
  }
  ```
+ CloudWatch データソースのクロス アカウント オブザーバビリティは、Amazon CloudWatch Observability Access Manager に依存しています。Observability Access Manager は VPC エンドポイントをサポートしていません。Amazon Managed Grafana ワークスペースが VPC 内で実行されている場合、ワークスペースがインターネット上の API を呼び出すことを可能にする NAT ゲートウェイも必要です。

**注記**  
また、対象のアカウントの CloudWatch データを読み取るための IAM 権限も必要です。

# Amazon OpenSearch Service データソースへの接続
<a name="using-Amazon-OpenSearch-in-AMG"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

Amazon Managed Grafana では、Grafana ワークスペースコンソールのデータソース設定オプションを使用して、Amazon OpenSearch Service を AWS データソースとして追加できます。このデータソースは、OpenSearch クラスターと従来の Elasticsearch クラスターを実行する、OpenSearch Service ドメインをサポートしています。

 AWS データソース設定オプションは、既存の OpenSearch Service アカウントを検出することで、OpenSearch Service をデータソースとして簡単に追加し、OpenSearch へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして OpenSearch Service を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。

OpenSearch Service データソースはパイプ処理言語 (PPL) をサポートしています。PPL の詳細については、「[パイプ処理言語を使用した Amazon OpenSearch Service データのクエリ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)」を参照してください。

OpenSearch Service データソースを使用すると、OpenSearch に保存されているログやメトリクスを視覚化するために、単純または複雑なさまざまな種類の OpenSearch クエリを実行できます。OpenSearch に保存されているログイベントを使用してグラフに注釈を付けることもできます。

**Topics**
+ [AWS データソース設定を使用して OpenSearch Service をデータソースとして追加する](ES-adding-AWS-config.md)
+ [Amazon OpenSearch Service をデータソースとして手動で追加する](ES-adding-the-data-source.md)
+ [OpenSearch Service の設定](#ES-settings)
+ [Amazon OpenSearch Service データソースを使用する](ES-use-datasource.md)
+ [Amazon OpenSearch Service Serverless](datasources-opensearch-serverless.md)
+ [トレースの補助機能](datasources-opensearch-traces.md)

# AWS データソース設定を使用して OpenSearch Service をデータソースとして追加する
<a name="ES-adding-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の OpenSearch Service リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして OpenSearch Service を追加します。

**AWS データソース設定を使用して OpenSearch Service をデータソースとして追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ページの左上隅にあるメニューアイコンを選択し、**[すべてのワークスペース]** を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[Amazon OpenSearch Service]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]**を選択します。

1. **[データソース]** タブを再度選択し、**Amazon OpenSearch Service** 行で [**Grafana で設定**] を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、 AWS アイコンを選択し、**AWS サービス** **Amazon OpenSearch Service** を選択します。

1. Amazon Managed Grafana で検索して OpenSearch Service リソースを検出するリージョン、追加するアカウントと OpenSearch Service ドメインの順に選択し、インデックス設定を設定し、**[データソースの追加]** を選択します。

# Amazon OpenSearch Service をデータソースとして手動で追加する
<a name="ES-adding-the-data-source"></a>

**Amazon OpenSearch Service データソースを手動で追加する方法**

1.  Grafana コンソールのサイドメニューで、 **AWS** アイコンを選択し、[**データソース**] を選択します。

1. **[Amazon OpenSearch Service]** データソースを選択します。必要に応じて、検索ボックスに **OpenSearch** の入力を開始すると検索を補助することができます。

1. データを検索する**リージョン**を選択します。

1. **[データソースの追加]** を選択します。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されていない場合は、現在のユーザーに `Admin` ロールが付与されていないことを意味します。

## OpenSearch Service の設定
<a name="ES-settings"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Url  |  OpenSearch Service ドメインのエンドポイント。エンドポイントは https://search-my-domain.us-east-1.es.amazonaws.com. の形式になります。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。ブラウザ = URL はブラウザからアクセス可能である必要があります。 | 

 アクセスモードは、データソースへのリクエストの処理方法を制御します。他に何も記述されていない場合は、サーバーが優先されます。

### サーバーアクセスモード (デフォルト)
<a name="ES-server-access-mode-default"></a>

 すべてのリクエストはブラウザから Grafana バックエンドまたはサーバーに行われ、リクエストはデータソースに転送されるため、クロスオリジンリソース共有 (CORS) 要件を回避できます。このアクセスモードを選択する場合、URL は Grafana バックエンドまたはサーバーからアクセス可能である必要があります。

### ブラウザ (直接) アクセス
<a name="ES-browser-direct-access"></a>

Amazon Managed Grafana はブラウザ直接アクセスをサポートしていません。

### インデックス設定
<a name="ES-index-settings"></a>

 ここでは、`time field` のデフォルトを指定し、OpenSearch インデックスの名前を指定できます。インデックス名またはワイルドカード文字に時間パターンを使用できます。

### OpenSearch/Elasticsear バージョン
<a name="OpenSearch-version"></a>

バージョンドロップダウンメニューで OpenSearch またはレガシー Elasticsearch バージョンを指定します。バージョンごとにクエリの構成方法が異なるため、バージョンは重要です。現在、Grafana は OpenSearch 1.0.x をサポートしています。サポートされている Elasticsearch のバージョンは、`2.0+`、`5.0+`、`5.6+`、`6.0+`、`7.0+` です。値 `5.6+` はバージョン 5.6 以降、6.0 未満を意味します。値 `6.0+` はバージョン 6.0 以降、7.0 未満を意味します。最後に、`7.0+` はバージョン 7.0 以降、8.0 未満を意味します。

### 最小時間間隔
<a name="ES-min-time-interval"></a>

時間間隔による自動グループの下限。データを 1 分ごとに書き込む場合は `1m` など、書き込み頻度に設定することをお勧めします。このオプションは、[Data Source] (データソース) オプションのダッシュボードパネルで上書き/設定することもできます。この値は、`1m` (1 分) や `30s` (30 秒) など、有効な時間識別子が続く数値としてフォーマットする**必要があります**。以下の時間識別子がサポートされています。


|  識別子  |  説明  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  日  | 
|  h  |  時間  | 
|  m  |  分  | 
|  s  |  秒  | 
|  ms  |  ミリ秒  | 

### ログ
<a name="ES-logs-beta"></a>

2 つのパラメータである `Message field name` と `Level field name` は、オプションで、[Explore](explore.md) のログを視覚化するときにログメッセージとログレベルに使用されるフィールドを決定するデータソース設定ページから設定できます。

 例えば、OpenSearch Service へのログ配送に Filebeat のデフォルト設定を使用する場合、次の設定が機能します。
+  **メッセージフィールド名:** メッセージ 
+  **レベルフィールド名:** fields.level 

### データリンク
<a name="ES-data-links"></a>

 データリンクは、Explore のログビューでアクセスできる指定されたフィールドからリンクを作成します。

 各データリンク設定は、以下で構成されます。
+ **フィールド** – データリンクで使用されるフィールドの名前。
+ **URL/クエリ** – リンクが外部である場合は、完全なリンク URL を入力します。リンクが内部リンクの場合、この入力はターゲットデータソースのクエリとして機能します。どちらの場合も、`${__value.raw }` マクロを使用してフィールドから値を補間できます。
+ **内部リンク** – リンクが内部または外部である場合に選択します。リンクが内部の場合、データソースセレクタを使用すると、ターゲットデータソースを選択できます。データソースのトレースのみがサポートされています。

# Amazon OpenSearch Service データソースを使用する
<a name="ES-use-datasource"></a>

## メトリクスクエリエディタ
<a name="ES-metric-query-editor"></a>

OpenSearch クエリエディタを使用すると、複数のメトリクスを選択し、複数の用語またはフィルターでグループ化できます。右側のプラスアイコンとマイナスアイコンを使用して、メトリクスまたはグループを句で追加/削除します。一部のメトリクスと group by 句にはオプションがあります。オプションテキストを選択して行を展開し、オプション別にメトリクスまたはグループを表示および編集します。

## パイプ処理言語 (PPL) の使用
<a name="ES-PPL"></a>

Amazon OpenSearch Service データソースは、パイプ処理言語 (PPL) をサポートしています。PPL を使用すると、OpenSearch のクエリと視覚的表現を簡素化しながら強力に機能させることができます。PPL を使用することで、データを探索するために、長い OpenSearch Domain Specific Language (DSL) 文を作成したり、JSON オブジェクトを使用したクエリを記述する必要が無くなります。PPL では UNIX でのパイプのように、クエリをパイプで区切られた一連のコマンドとして記述できます。

以下のサンプル DSL クエリを例に使用します。

```
GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>
```

上記の DSL クエリは、簡潔で人間が読み取れる次の PPL コマンドに置き換えることができます。

```
source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count
```

PPL の詳細については、[「パイプ処理言語を使用した Amazon OpenSearch Service データのクエリ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)」を参照してください。

## シリーズの名前付けとエイリアスパターン
<a name="ES-series-naming-and-alias-patterns"></a>

 `Alias` 入力フィールドを使用して時系列の名前を制御できます。


|  パターン  |  説明  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  Group By という用語の値に置き換え。 | 
|  \$1\$1metric\$1\$1  |  メトリクス名に置き換え (例：平均、最小、最大）。 | 
|  \$1\$1field\$1\$1  |  メトリクスフィールド名に置き換え。 | 

## パイプラインメトリクス
<a name="ES-pipeline-metrics"></a>

例えば、*移動平均*や*派生*など、一部のメトリクス集約はパイプライン集約と呼ばれます。OpenSearch パイプラインメトリクスは、別のメトリクスに基づく必要があります。メトリクスの横にある目のアイコンを使用して、メトリクスがグラフに表示されないようにします。これは、パイプラインメトリクスで使用するクエリにのみあるメトリクスに役立ちます。

## テンプレート作成
<a name="ES-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="ES-query-variable"></a>

 OpenSearch Service データソースは、*[クエリ]*変数の*[クエリ]*フィールドで使用できる 2 種類のクエリをサポートしています。クエリは、カスタム JSON 文字列を使用して記述します。


|  クエリ  |  説明  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  インデックスタイプ keyword のフィールド名のリストを返します。 | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  用語集約を使用してフィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。 | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  用語集約と指定された Lucene クエリフィルターを使用して、フィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。 | 

用語クエリにはデフォルトのサイズ制限 500 があります。カスタム制限を設定するには、クエリのサイズプロパティを設定します。クエリでは、その他の変数を使用できます。次のコード例は、`$host` という名前の変数のクエリ定義を示しています。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

前の例では、クエリ定義内で `$source` という名前の別の変数を使用します。`$source` 変数の現在の値をドロップダウンリストで変更すると、`$host` 変数の更新が開始されます。更新後、`$host` 変数にはホスト名のみが含まれます。この場合、`@source` ドキュメントプロパティによってフィルタリングされます。

デフォルトでは、これらのクエリは用語の順序で返されます (その後、任意の変数と同様にアルファベット順または数値順にソートできます）。ドキュメント数でソートされた用語のリスト (上位 N の値リスト) を作成するには、`doc_count` の `orderBy` プロパティを追加します。これにより、降順ソートが自動的に選択されます。doc\$1count (降順 N リスト) で `asc` を使用するには、`order: "asc"` を設定しますが、ドキュメントカウントのエラーが増加するため、推奨されません。ドキュメントカウントの順序で用語を保持するには、変数の **[ソート]** ドロップダウンリストを**[無効]**に設定します。または、**[アルファベット]**順を使用して再ソートすることもできます。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

### クエリでの変数の使用
<a name="ES-using-variables-in-queries"></a>

 2 つの構文があります。
+  `$<varname>` 例: @hostname:\$1hostname 
+  `[[varname]]` 例: @hostname:[[hostname]] 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。*[複数値]*または*[すべての値を含める]*オプションが有効になっている場合、Grafana はラベルをプレーンテキストから Lucene 互換の条件に変換します。

 前の例では、`$hostname` という名前の変数を使用して `@hostname` プロパティに基づいてドキュメントをフィルタリングする Lucene クエリがあります。また、フィールド入力ボックス別の*用語*グループで変数を使用しています。これにより、変数を使用してデータのグループ化方法をすばやく変更できます。

## ‏注釈
<a name="ES-annotations"></a>

注釈を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニューまたは注釈ビューを使用して注釈クエリを追加します。Grafana は、注釈イベントの OpenSearch インデックスをクエリできます。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。


|  名前  |  説明  | 
| --- | --- | 
|  Query  |  検索クエリは空白のままにするか、Lucene クエリを指定できます。 | 
|  Time  |  時間フィールドの名前。 日付フィールドである必要があります。 | 
|  Time End  |  終了時刻フィールドのオプション名は日付フィールドである必要があります。設定されている場合、注釈は時間と終了時間の間のリージョンとしてマークされます。 | 
|  Text  |  イベントの説明フィールド。 | 
|  Tags  |  イベントタグに使用するオプションのフィールド名 (配列または CSV 文字列）。 | 

## ログのクエリ
<a name="ES-querying-logs-beta"></a>

 OpenSearch からのログデータのクエリと表示は、Explore で確認できます。ログを表示するには、OpenSearch Service データソースを選択し、オプションで Lucene クエリを入力します。詳細については、「[Explore](explore.md)」を参照してください。

### ログクエリ
<a name="ES-log-queries"></a>

 結果が返されると、ログパネルにログ行のリストと棒グラフが表示されます。x 軸は時間、y 軸は頻度またはカウントを示します。

### ログメッセージのフィルタリング
<a name="ES-filter-log-messages"></a>

 必要に応じて、クエリフィールドに Lucene クエリを入力して、ログメッセージをフィルタリングできます。例えば、デフォルトの Filebeat 設定を使用すると、`fields.level:error` を使用してエラーメッセージのみを表示できます。

# Amazon OpenSearch Service Serverless
<a name="datasources-opensearch-serverless"></a>

**注記**  
OpenSearch Service Serverless は、Grafana バージョン 9.4 以降を実行している Grafana ワークスペースでのみ使用することができます。

Amazon Managed Grafana では、OpenSearch Service データソースを使用して、Amazon OpenSearch Service Serverless のデータにアクセスできます。データへのアクセス権は、データアクセスポリシーによって制御されます。以下に、ユーザーが特定のコレクションとインデックスをクエリできるようにするポリシーの例を紹介します。*`collection_name`*、*`index_name`*、*`principal_arn`* を実際の使用に合わせた値に置き換えてください。

```
[
  {
    "Rules": [
      {
        "Resource": ["collection/{collection_name}"],
        "Permission": ["aoss:DescribeCollectionItems"],
        "ResourceType": "collection"
      },
      {
        "Resource": ["index/{collection_name}/{index_name}"],
        "Permission": ["aoss:DescribeIndex", "aoss:ReadDocument"],
        "ResourceType": "index"
      }
    ],
    "Principal": ["principal_arn"],
    "Description": "read-access"
  }
]
```

# トレースの補助機能
<a name="datasources-opensearch-traces"></a>

OpenSearch プラグインでは、トレースのリストをテーブル形式で表示したり、単一のトレースを **[トレースの表示]**] で表示して、トレーススパンのタイムラインを確認することができます。

**注記**  
OpenSearch トレースのクエリは、Lucene クエリでのみ実行できます。  
トレースの補助機能は、バージョン 9.4 以降をサポートする Grafana ワークスペースでのみ使用できます。

すべてのトレースを表示するクエリを作成するには、空白のクエリで Lucene クエリタイプ `Traces` を使用します。必要に応じて、**テーブル**の視覚的表現タイプを選択します。

テーブルでトレース ID を選択すると、トレースビューでそのトレースが開きます。

単一のトレースを示すクエリを作成するには、クエリ `traceid: {traceId}` を使用し、必要に応じて**トレース**の視覚的表現タイプを選択します。

# AWS IoT SiteWise データソースに接続する
<a name="using-iotsitewise-in-AMG"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

 Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用して、データソース AWS IoT SiteWise として を追加できます。この機能は、既存の AWS IoT SiteWise アカウントを検出してデータソース AWS IoT SiteWise として を簡単に追加し、アクセスに必要な認証情報の設定を管理します AWS IoT SiteWise。この方法を使用して認証を設定し、データソースとして AWS IoT SiteWise を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。

**Topics**
+ [AWS データソース設定を使用してデータソース AWS IoT SiteWise として を追加する](IoTSiteWise-adding-AWS-config.md)
+ [AWS IoT SiteWise データソースの手動追加](iotsitewise-add-the-data-source.md)
+ [AWS IoT SiteWise 設定](#iotsitewise-settings)
+ [AWS IoT SiteWise データソースの使用](IoTSiteWise-using.md)

# AWS データソース設定を使用してデータソース AWS IoT SiteWise として を追加する
<a name="IoTSiteWise-adding-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の AWS IoT SiteWise リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして AWS IoT SiteWise を追加します。

**AWS データソース設定を使用してデータソース AWS IoT SiteWise として を追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ページの左上隅にあるメニューアイコンを選択し、**[すべてのワークスペース]** を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[AWS IoT SiteWise]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** を選択します。

1. **[データソース]** タブを再び選択してから **[AWS IoT SiteWise]** 行で **[Grafana で設定]** を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、 AWS アイコンを選択し、**AWS サービス** **IoT SiteWise** を選択します。

1.  AWS IoT SiteWise データソースにクエリを実行するデフォルトのリージョンを選択し、アカウントを選択してから、**データソースの追加**を選択します。

# AWS IoT SiteWise データソースの手動追加
<a name="iotsitewise-add-the-data-source"></a>

**AWS IoT SiteWise データソースを手動で追加するには**

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンで一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **AWS IoT SiteWise** のデータソースを選択します。必要に応じて、検索ボックスに **SiteWise** の入力を開始すると検索を補助することができます。

## AWS IoT SiteWise 設定
<a name="iotsitewise-settings"></a>


|  名前  |  説明  | 
| --- | --- | 
|  名前  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  認証プロバイダー  |  認証情報を取得するプロバイダーを指定します。 | 
|  デフォルトのリージョン  |  クエリエディタでリージョンを設定するために使用します (クエリごとに変更できます）。 | 
|  認証情報プロファイル名  |  使用するプロファイルの名前を指定します (\$1/.aws/credentialsファイルを使用する場合）。デフォルトでは空白のままにします。 | 
|  引き受けるロールの Arn  |  引き受けるロールの ARN を指定します。 | 
|  エンドポイント (オプション)  |  代替サービスエンドポイントを指定する必要がある場合に指定します。 | 

# AWS IoT SiteWise データソースの使用
<a name="IoTSiteWise-using"></a>

 AWS IoT SiteWise データソースの使用方法については、Github の[AWS IoT SiteWise 「データソース](https://github.com/grafana/iot-sitewise-datasource/blob/main/src/README.md)」を参照してください。

# An AWS IoT TwinMaker データソースに接続する
<a name="AMG-iot-twinmaker"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

 Amazon Managed Grafana を使用すると、強力な産業データ分析サービスである AWS IoT TwinMaker を Grafana ワークスペースのアプリケーションとデータソースとして追加できます。 AWS IoT TwinMaker を使用すると、エンドユーザーの 3D デジタルツインアプリケーションを作成して、産業オペレーションをモニタリングできます。 AWS IoT TwinMaker は、デベロッパーが現実世界のシステムのデジタルレプリカをより迅速に作成できるようにするサービスです。これにより、より多くのお客様がデジタルツインが運用を最適化する可能性を実現できます。 AWS IoT TwinMaker for Grafana は、カスタムパネル、ダッシュボードテンプレート、およびデジタルツインデータに接続するためのデータソースを提供します。

# AWS IoT TwinMaker データソースを手動で追加する
<a name="twinmaker-add-the-data-source"></a>

## 前提条件
<a name="twinmaker-prerequisites"></a>

開始する前に、 AWS アカウントから **AWS IoT [TwinMaker]** にアクセスできることを確認してください。

 アクセス許可をワークスペース IAM ロールに追加して AWS IoT TwinMaker にアクセスする方法については、「」を参照してください[ワークスペースユーザーロールに AWS IoT TwinMaker のアクセス許可を追加する](AMG-iot-twinmaker.md#twinmaker-add-permission)。

**AWS IoT TwinMaker データソースを追加するには:**

1. ユーザーロールが管理者または編集者であることを確認します。

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンにカーソルを合わせて **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **[AWS IoT TwinMaker]** データソースを選択します。必要に応じて、検索ボックスに **TwinMaker** の入力を開始すると検索を補助することができます。

1. これにより、**[接続の詳細]** ページが開きます。「[AWS IoT TwinMaker 接続の詳細設定](AMG-iot-twinmaker.md#twinmaker-connection-details)」の手順にそってを設定します。

## ワークスペースユーザーロールに AWS IoT TwinMaker のアクセス許可を追加する
<a name="twinmaker-add-permission"></a>

**ワークスペースユーザーロールに AWS IoT TwinMaker のアクセス許可を追加するには、Amazon Managed Grafana ワークスペースと TwinMaker ダッシュボードロールの間でロールのアクセス許可を引き受けます。**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) に移動します。

1. ダッシュボードロールを手動で作成します。ダッシュボードロールの作成に関する詳細については、「[Grafana AWS IoT TwinMaker ダッシュボードロールを手動で作成するには](#iot-twinmaker-dashboard-role)」を参照してください。

## AWS IoT TwinMaker 接続の詳細設定
<a name="twinmaker-connection-details"></a>

**[接続の詳細] 設定の構成**

1.  [**接続の詳細**] メニューで、認証プロバイダーを選択します (推奨: **Workspace IAM ロール)**。

1.  クエリする **[デフォルトリージョン]** を選択します。

1.  **TwinMaker 設定**で、 AWS IoT TwinMaker ワークスペース名を入力します。

# AWS IoT TwinMaker データソースの使用
<a name="IoT-twinmaker-using"></a>

 AWS IoT TwinMaker データソースの使用方法については、GitHub の [AWS IoT TwinMaker データソース](https://github.com/grafana/grafana-iot-twinmaker-app)を参照してください。

## Grafana AWS IoT TwinMaker ダッシュボードロールを手動で作成するには
<a name="iot-twinmaker-dashboard-role"></a>

**Grafana AWS IoT TwinMaker ダッシュボードロールを手動で作成するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) にサインインします。

1. サマリーで Amazon Managed Grafana ワークスペースロールを見つけます。次のように表示されます。

   ```
    AmazonGrafanaServiceRole-random_ID
   ```

1. 以下のインラインポリシーをロールに追加します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/TwinMakerDashboardRole"
       }
   }
   ```

------

1. ダッシュボードロールごとに新しいインラインポリシーを追加します。または、**Resource** (リソース) 行にロール Amazon リソースネーム (ARN) のリストを追加します。

1. IAM コンソールでダッシュボードロールを検索します。`SceneViewer` ポリシー (オプションで `VideoPlayer` ポリシー) が必要です。

1. [**Trust Relationships**] (信頼関係) タブを選択します。

1. [**Edit trust relationship (信頼関係の編集)**] を選択します。

1. 次のポリシーを入力します。*AMGWorkspaceRoleArn* をご自身のアカウントの Arn に置き換えてください。

------
#### [ JSON ]

****  

   ```
      {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "AMGWorkspaceRoleARN"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## an AWS IoT TwinMaker ポリシーの例
<a name="AMG-TM-policy"></a>

以下は、ダッシュボードロールにアタッチできる minimal AWS IoT TwinMaker ポリシーです。独自のリソースに基づいて、 AWS IoT TwinMaker ワークスペース ARN と ID、および Amazon S3 バケット ARN の値を置き換える必要があります。

# Amazon Managed Service for Prometheus およびオープンソースの Prometheus データソースへの接続
<a name="prometheus-data-source"></a>

 Amazon Managed Grafana で、Prometheus データソースは、セルフマネージド Prometheus サーバーと Amazon Managed Service for Prometheus ワークスペースの両方のデータソースとしての使用をサポートしています。Amazon Managed Service for Prometheus の詳細については、[[Amazon Managed Service for Prometheus とは]](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) を参照してください。

 Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用して、Amazon Managed Service for Prometheus ワークスペースをデータソースとして追加できます。この機能は、既存の Amazon Managed Service for Prometheus アカウントを検出して Amazon Managed Service for Prometheus をデータソースとして追加する作業を簡素化し、Amazon Managed Service for Prometheus へのアクセスに必要な認証情報の設定を管理します。

**注記**  
Prometheus アラートは、[アラートマネージャーデータソースの設定](data-source-alertmanager.md#data-source-alertmanager-create) により、統合 Grafana アラートインターフェイスで表示できます。

**Topics**
+ [AWS データソース設定を使用して Amazon Managed Service for Prometheus をデータソースとして追加する](AMP-adding-AWS-config.md)
+ [Prometheus データソースの手動追加](prometheus-manually-adding.md)
+ [Prometheus データソースの使用](using-prometheus-datasource.md)
+ [Amazon Managed Service for Prometheus からのアラートを視覚化する](amp-configure-alerts.md)
+ [Exemplars の設定](amp-configure-exemplars.md)

# AWS データソース設定を使用して Amazon Managed Service for Prometheus をデータソースとして追加する
<a name="AMP-adding-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の Amazon Managed Service for Prometheus リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして Amazon Managed Service for Prometheus を追加します。

**AWS データソース設定を使用して Amazon Managed Service for Prometheus をデータソースとして追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ページの左上隅にあるメニューアイコンを選択し、**[すべてのワークスペース]** を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[Amazon Managed Service for Prometheus]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** の順に選択します。

1. **[データソース]** タブを再度選択し、**[Amazon Managed Service for Prometheus]** 行で **[Grafana で設定]** を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、 AWS アイコンを選択し、**AWS サービス****である Prometheus** を選択します。

1. Amazon Managed Grafana が Amazon Managed Service for Prometheus ワークスペースを見つけるためのリージョンを選択し、追加するアカウントと Amazon Managed Service for Prometheus ワークスペースを選択して **[データソースの追加]** を選択します。

# Prometheus データソースの手動追加
<a name="prometheus-manually-adding"></a>

**Prometheus データソースを手動で追加する方法**

1.  Grafana コンソールのサイドメニューで、**[管理]** メニュー項目 (または Grafana v8 **の設定** (ギア) アイコン) で一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **[Prometheus]** データソースを選択します。必要に応じて、検索ボックスに **Prometheus** の入力を開始すると検索を補助することができます。

# Prometheus データソースの使用
<a name="using-prometheus-datasource"></a>

## Prometheus の設定
<a name="prometheus-settings"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Url  |  Prometheus サーバーの URL。例: https://prometheus.example.org:9090  | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。 | 
|  Basic Auth  |  Prometheus データソースへの基本認証を有効にします。 | 
|  User  |  基本認証のユーザー名。 | 
|  Password  |  基本認証のパスワード。 | 
|  Scrape interval  |  これを Prometheus で設定された一般的なスクレイプと評価の間隔に設定します。デフォルトは 15 秒です。 | 
|  Disable metrics lookup  |  このオプションをオンにすると、クエリフィールドのオートコンプリートでメトリクスセレクタとメトリクス/ラベルのサポートが無効になります。これにより、より大きな Prometheus インスタンスでパフォーマンスの問題が発生した場合に役立ちます。 | 
|  Custom Query Parameters  |  Prometheus クエリ URL にカスタムパラメータを追加します。例えば、timeout、partial\$1response、dedup または max\$1source\$1resolution などです。複数のパラメータを「&」で連結する必要があります。 | 

## Prometheus クエリエディタ
<a name="prometheus-query-editor"></a>

 次のセクションでは、ダッシュボードと Explore の Prometheus クエリエディタに関する情報とオプションについて説明します。

### ダッシュボードのクエリエディタ
<a name="query-editor-in-dashboards"></a>

 タイトルを選択し、**[編集]** (またはパネルで一時停止中に **e** キーを押す) を選択して、編集モードでグラフを開きます。


|  名前  |  説明  | 
| --- | --- | 
|  Query expression  |  Prometheus のクエリ式の詳細については、[Prometheus のドキュメント](https://prometheus.io/docs/querying/basics/)を参照してください。 | 
|  Legend format  |  名前またはパターンを使用して、時系列の名前を制御します。例えば、\$1\$1hostname\$1\$1 はラベル hostname のラベル値に置き換えられます。 | 
|  Min step  |  [Prometheus 範囲クエリの `step` パラメータ](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)と、\$1\$1\$1interval および \$1\$1\$1rate\$1interval 変数の追加の下限。制限は絶対であり、解決設定でも変更されません。 | 
|  Resolution  |  1/1 は、各ピクセルが 1 つのデータポイントに対応するように、[Prometheus 範囲クエリの](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)\$1\$1\$1interval 変数と step パラメータの両方を設定します。パフォーマンスを向上させるには、低解像度を使用します。1/2 は 1 ピクセルごとにデータポイントを取得し、1/10 は 10 ピクセルあたり 1 つのデータポイントを取得します。最小時間間隔と最小ステップの両方が、\$1\$1\$1interval と step の最終値を制限することに注意してください。 | 
|  Metric lookup  |  この入力フィールドでメトリクス名を検索します。 | 
|  Format as  |  Table、Time series、または Heatmap を切り替えます。Table はテーブルパネルでのみ機能します。 Heatmap は、ヒートマップパネルにヒストグラムタイプのメトリクスを表示するのに適しています。累積ヒストグラムを通常のヒストグラムに変換し、バケットの境界でシリーズをソートします。 | 
|  Instant  |  「インスタント」クエリを実行して、要求された時系列に対して Prometheus がスクレイピングした最新の値のみを返します。インスタントクエリは、通常の範囲クエリよりもはるかに高速に結果を返します。これらを使用して、ラベルセットを検索します。 | 
|  Min time interval  |  この値に解決設定の分母を掛けると、[Prometheus 範囲クエリの `$__interval` 変数と `step` パラメータ](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)の両方に下限が設定されます。デフォルトでは、データソースオプションで設定されたスクレイプ間隔が指定されます。 | 

**注記**  
 Amazon Managed Grafana は、動的に計算されたステップに合わせてクエリのリクエスト日を変更します。これにより、メトリクスデータの一貫した表示が保証されますが、グラフの右端にあるデータの小さなギャップが生じる可能性があります。

#### ダッシュボード内のインスタントクエリ
<a name="prometheus-instant-queries-in-dashboards"></a>

 Prometheus データソースを使用すると、最新の値のみをクエリするインスタントクエリを実行できます。テーブルパネルで結果を視覚化して、時系列で使用可能なすべてのラベルを表示できます。

 インスタントクエリの結果は、シリーズごとに 1 つのデータポイントのみで構成されます。これらは、シリーズのオーバーライドを使用してグラフパネルに表示できます。最新の値ポイントとしてグラフに表示するには、シリーズオーバーライドを追加して `Points > true` を選択します。グラフ全体に水平線を表示するには、シリーズオーバーライドを追加し、`Transform > constant` を選択します。シリーズオーバーライドの詳細については、「[シリーズオーバーライド](graph-panel.md#graph-panel-series-overrides)」を参照してください。

### Explore のクエリエディタ
<a name="p-query-editor-in-explore"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Query expression  |  Prometheus のクエリ式の詳細については、[Prometheus のドキュメント](https://prometheus.io/docs/querying/basics/)を参照してください。 | 
|  Step  |  [Prometheus 範囲クエリの `Step` パラメータ](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)。ここで時間単位を使用できます。例えば、5s、1m、3h、1d、1y を使用できます。指定された単位が s (秒) でない場合のデフォルト単位。 | 
|  Query type  |  Range、Instant、Both範囲クエリを実行すると、クエリの結果がグラフとテーブルに表示されます。インスタントクエリは、要求された時系列に対してPrometheus がスクレイピングした最新の値のみを返し、テーブルに表示します。[Both] (両方) を選択すると、インスタントクエリと範囲クエリの両方が実行されます。範囲クエリの結果がグラフに表示され、即時クエリの結果がテーブルに表示されます。 | 

## メトリクスブラウザ
<a name="prometheus-metrics-browser"></a>

メトリクスブラウザを使用すると、メトリクスをすばやく検索し、関連するラベルを選択して基本的なクエリを作成できます。ブラウザを開くと、使用可能なすべてのメトリクスとラベルが表示されます。Prometheus インスタンスでサポートされている場合、各メトリクスには HELP と TYPE がツールヒントとして表示されます。

メトリクスを選択すると、ブラウザは使用可能なラベルを絞り込み、メトリクスに該当するラベルのみを表示します。その後、下部セクションにあるリストに使用可能なラベル値が表示され、1 つ以上のラベルを選択できます。各ラベルに 1 つ以上の値を選択して、クエリ範囲を絞り込みます。

**注記**  
開始するメトリクス名がわからない場合は、まずいくつかのラベルを選択してリストを絞り込み、関連するラベル値を見つけることもできます。

メトリクスブラウザのすべてのリストには、特定の文字列に一致するメトリクスまたはラベルをすばやくフィルタリングするための検索フィールドが上部にあります。値セクションの検索フィールドは 1 つだけです。フィルタリングはすべてのラベルに適用され、ラベルアプリケーション、ジョブ、ジョブ名など、ラベルが選択された後に、探している値を持つ可能性のある 1 つのみの値を見つけるのに役立ちます。

所望のクエリが得られたら、「クエリの使用」をクリックしてクエリを実行します。**[レートクエリとして使用]** ボタンは、カウンターメトリクスのクエリの書き込みに役立つ rate(...)[\$1\$1\$1interval] をクエリの周囲に追加します。[Validate selector] (セレクタの検証) ボタンは、そのセレクタで使用できる時系列の数を Prometheus で確認します。

### 制限事項
<a name="metrics-browser-limitations"></a>

メトリクスブラウザには、10,000 ラベル (キー) と 50,000 ラベル値 (メトリクス名を含む) の絶対制限があります。Prometheus インスタンスがより多くの結果を返した場合でも、ブラウザは引き続き機能します。ただし、結果セットはこれらの最大制限を超えてカットされます。

## テンプレート作成
<a name="p-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="p-query-variable"></a>

 *クエリ*タイプの変数を使用すると、メトリクス、ラベル、またはラベル値のリストを Prometheus にクエリできます。Prometheus データソースプラグインには、**クエリ**入力フィールドで使用できる以下の関数が用意されています。


|  名前  |  説明  | 
| --- | --- | 
|  label\$1names()  |  ラベル名のリストを返します。 | 
|  label\$1values(label)  |  すべてのメトリクスの label 用のラベル値リストを返します。 | 
|  label\$1values(metric, label)  |  指定されたメトリクスの label 用のラベル値リストを返します。 | 
|  metrics(metric)  |  指定された metric 正規表現に一致するメトリクスのリストを返します。 | 
|  query\$1result(query)  |  query の Prometheus クエリ結果のリストを返します。 | 

 *メトリクス名* 、*ラベル名*、*ラベル値*については、[Prometheus ドキュメント](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)を参照してください。

#### 間隔変数と範囲変数の使用
<a name="p-using-interval-and-range-variables"></a>

**注記**  
 `$__range`、`$__range_s`、`$__range_ms` は Grafana v5.3 でのみサポートされています。

 クエリ変数には、`$__interval`、`$__interval_ms`、`$__range`、`$__range_s`、`$__range_ms` などのグローバル変数を使用できます。詳細については、「[グローバル変数](variables-types.md#global-variables)」を参照してください。`label_values` 関数はクエリをサポートしていないため、可変クエリをフィルタリングする必要がある場合は、`query_result` 関数で使用すると便利です。

 ダッシュボードで時間範囲を変更するときに正しいインスタンスを取得するには、変数の `refresh`トリガーを `On Time Range Change` に設定してください。

次のコード例は、ダッシュボードに表示される時間範囲の平均 QPS に基づいて、最もビジーな5つの陸絵sとインスタンスを変数に設定する方法を示しています。

```
Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance)))
Regex: /"([^"]+)"/
```

 次のコード例は、`$__range_s` を使用して、ダッシュボードに表示される時間範囲にわたって特定の状態を持つインスタンスで変数を入力する方法を示しています。

```
Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
Regex:
```

### `$__rate_interval` 変数の使用
<a name="p-using-__rate_interval-variable"></a>

 `$__rate_interval` 変数は、レート関数で使用することを目的としています。これは 最大 ( `$__interval` \$1 *スクレイプ間隔 *、4 \$1 *スクレイプ間隔 *) として定義されます。*スクレイプ間隔*は、設定されている場合は最小ステップ設定 (AKA query\$1interval、PromQL クエリごとの設定) で、それ以外の場合は Prometheus データソースで設定された*スクレイプ間隔*です (ただし、後者は解決設定によって変更されるため、パネル内の最小間隔設定は無視します)。

### クエリでの変数の使用
<a name="p-using-variables-in-queries"></a>

 2 つの構文があります。
+  `$<varname>` 例: rate(http\$1requests\$1total\$1job=\$1「\$1job」\$1[5m]) 
+  `[[varname]]` 例: rate(http\$1requests\$1total\$1job=\$1「[job]]」\$1[5m]) 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。*[複数値]*または*[すべての値を含める]*オプションが有効になっている場合、Grafana はラベルをプレーンテキストから正規表見互換の文字列に変換します。つまり、 `=` の代わりに `=~` を使用する必要があります。

## ‏注釈
<a name="p-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニューまたは注釈ビューを使用して注釈クエリを追加します。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 Prometheus は、注釈をクエリする 2 つの方法をサポートしています。
+  通常のメトリクスクエリ 
+  保留中のアラートと発射アラートの Prometheus クエリ。詳細については、[「ランタイム中のアラートの検査](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#inspecting-alerts-during-runtime)」を参照してください。

 ステップオプションは、クエリから返されるイベントの数を制限するのに役立ちます。

# Amazon Managed Service for Prometheus からのアラートを視覚化する
<a name="amp-configure-alerts"></a>

既に接続されている Prometheus データソースに対して、アラートマネージャーデータソースを設定することで、Amazon Managed Grafana で Amazon Managed Service for Prometheus または Prometheus アラートを 視覚化することができます。

**前提条件**

アラートマネージャーで Amazon Managed Service for Prometheus を使用するように設定するには、次の前提条件を満たす必要があります。
+ [[Amazon Managed Service for Prometheus]](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) インスタンスに取り込まれたメトリクスがあり、少なくとも 1 つのアラートまたは記録ルールが設定されている。ワークスペースの URL が必要です (**[エンドポイント]** URL は、Amazon Managed Service for Prometheus のワークスペースの詳細から確認できます。ワークスペース URl は、エンドポイント URL から末尾の `api/v1/remote_write` を除いたものです)。
+ Prometheus インスタンスが[データソースとして設定](prometheus-data-source.md)された Amazon Managed Grafana ワークスペースが[作成](AMG-create-workspace.md)されている。
+ Amazon Managed Grafana には、Prometheus リソースに対する次のアクセス許可が必要です。これらのアクセス許可は、[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md) で説明されているサービス管理ポリシーとカスタマー管理ポリシーのいずれかに追加する必要があります。
  + `aps:ListRules`
  + `aps:ListAlertManagerSilences`
  + `aps:ListAlertManagerAlerts`
  + `aps:GetAlertManagerStatus`
  + `aps:ListAlertManagerAlertGroups`
  + `aps:PutAlertManagerSilences`
  + `aps:DeleteAlertManagerSilence`

**Amazon Managed Service for Prometheus で使用するアラートマネージャーのデータソースの設定方法**

1. Grafana コンソールの Grafana メニューの [**設定**] にある [**データソース**] ページを選択します。

1. **[データソースの追加]** を選択し、データソースタイプのリストから **[アラートマネージャー]** を選択します。

1. 新規データソースに次の情報を入力します:
   + [**Implementation**] (実装) で [**Prometheus**] を選択します。
   + **HTTP** の **URL** に、`alertmanager` を追加した Prometheus のワークスペース URL を入力します。例えば、`https://aps-workspaces.us-east1.amazonaws.com/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`。
   + **[認証]** で、**[SigV4Auth]** をオンにします。これにより、リクエストに [AWS 認証](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)を使用するように Grafana に指示します。
   + **[SigV4Auth の詳細]** で、**[デフォルトのリージョン]** に Prometheus インスタンスのリージョンを指定します。例えば、`us-east-1` を指定します。

1. [**保存とテスト**] を選択して、データソースのセットアップを完了します。

   データソースが正しく設定されている場合、**ヘルスチェックに合格**したことを示すメッセージが表示されます。

**新しいアラートマネージャーデータソースを Prometheus データソースに接続する方法**

1. Grafana コンソールの Grafana メニューの [**設定**] にある [**データソース**] ページを選択します。

1. 元の Amazon Managed Service for Prometheus データソースを選択し、**[アラート UI を使用してアラートを管理する]** トグルスイッチを有効にします。

1. [**保存とテスト**] を選択して、データソースの設定を完了します。

# Exemplars の設定
<a name="amp-configure-exemplars"></a>

**注記**  
この機能は、Prometheus バージョン 2.26 以降が必要です。  
Amazon Managed Service for Prometheus では、Exemplars はサポートされていません。

Exemplars のデータは、Explore と ダッシュボードの両方でメトリクスと共に表示できます。Exemplars は、特定のイベントからの高粒度のメタデータを従来の時系列データに関連付けます。

Exemplars へのリンクを追加することで、データソース設定で Exemplars を設定できます。URL にマクロを使用することができます。例えば、`https://example.com/${__value.raw}` のような URL の作成が可能です。

# Amazon Timestream データソースへの接続
<a name="timestream-datasource"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

 Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用して、Amazon Timestream をデータソースとして追加できます。この機能では、既存の Timestream アカウントを検出して、Timestream をデータソースとして追加する作業が簡素化され、Timestream へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして Timestream を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。



# AWS データソース設定を使用して Timestream をデータソースとして追加する
<a name="Timestream-adding-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の Timestream リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして Timestream を追加します。

**AWS データソース設定を使用して Timestream をデータソースとして追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ページの左上隅にあるメニューアイコンを選択し、**[すべてのワークスペース]** を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[Amazon Timestream]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** を選択します。

1. **[データソース]** タブを再度選択し、**[Amazon Timestream]** 行で **[Grafana で設定]** を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、**アプリ**と**AWS データソース**を選択します (Grafana v8 では、左側のメニューから AWS アイコンを選択します）。

1. **AWS [サービス]** タブを選択して、**[Timestream]** を選択します。

1. **[Timestream]** データソースがクエリするデフォルトのリージョンを選択して、アカウントを選択し、**[データソースの追加]** を選択します。

# Timestream データソースの手動追加
<a name="timestream-add-the-data-source"></a>

**Timestream データソースの手動追加の方法**

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンで一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **[Amazon Timestream]** のデータソースを選択します。必要に応じて、検索ボックスに **Timestream** の入力を開始すると検索を補助することができます。

## Timestream 設定
<a name="timestream-settings"></a>


|  名前  |  説明  | 
| --- | --- | 
|  名前  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  認証プロバイダー  |  認証情報を取得するプロバイダーを指定します。 | 
|  デフォルトのリージョン  |  クエリエディタでリージョンを設定するために使用します (クエリごとに変更できます)。 | 
|  認証情報プロファイル名  |  使用するプロファイルの名前を指定します (\$1/.aws/credentialsファイルを使用する場合)。デフォルトでは空白のままにします。 | 
|  引き受けるロールの Arn  |  引き受けるロールの ARN を指定します。 | 
|  エンドポイント (オプション)  |  代替サービスエンドポイントを指定する必要がある場合に指定します。 | 

### 認証
<a name="timestream-authentication"></a>

 このセクションでは、Amazon Timestream データソースで使用できるさまざまなタイプの認証について説明します。

#### AWS 認証情報の例
<a name="timestream-example-aws-credentials"></a>

 Amazon Managed Grafana では、認証情報ファイルメソッドの認証は使用できません。

# Timestream データソースの使用
<a name="timestream-query-editor"></a>

## クエリエディタ
<a name="timestream-query-editor"></a>

 クエリエディタは、以前にリストされたマクロとダッシュボードテンプレート変数に加え、Timestream 構文を受け入れます。

 **Ctrl\$1スペース** を押して IntelliSense の提案を開きます。

## マクロ
<a name="timestream-macros"></a>

 構文を簡素化し、日付範囲フィルターなどの動的部分を許可するため、クエリにマクロを含めることができます。


|  マクロの例  |  説明  | 
| --- | --- | 
|  *\$1\$1\$1database* |  選択済みのデータベースを指定します。これはデータソース設定のデフォルト、またはクエリエディタの明示的な値を使用します。 | 
|  *\$1\$1\$1table*  |  選択済みのデータベースを指定します。これはデータソース設定のデフォルト、またはクエリエディタの明示的な値を使用します。 | 
|  *\$1\$1\$1measure*  |  選択した測定を指定します。これはデータソース設定のデフォルト、またはクエリエディタの明示的な値を使用します。 | 
|  *\$1\$1\$1timeFilter*  |  ダッシュボード範囲までの時間を制限する式で置き換えられます  | 
|  *\$1\$1\$1interval\$1ms*  |  グラフ内の単一ピクセルがカバーする合計時間を表す数値で置き換えられます。 | 

# Amazon Athena データソースに接続する
<a name="AWS-Athena"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

**注記**  
 このガイドでは、Amazon Athena データソースを使用する前に、ユーザーが Amazon Athena サービスに精通していることを前提としています。

Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用して、Athena をデータソースとして追加できます。この機能は、既存の Athena アカウントを検出してデータソースとして Athena を追加するのを簡素化し、Athena へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして Athena を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。



 Amazon Managed Grafana が Athena にアクセスできるようにするには、いくつかの前提条件があります。Athena データソースの使用に関連する前提条件については、「[前提条件](Athena-prereq.md)」を参照してください。

# 前提条件
<a name="Athena-prereq"></a>

Amazon Managed Grafana for Athena のマネージドポリシーを使用するには、Athena データソースを設定する前に以下の作業が完了している必要があります:
+ Athena ワークグループに `GrafanaDataSource: true` をタグ付けします。
+ `grafana-athena-query-results-` で始まる名前の S3 バケットを作成します。このポリシーにより、その名前付け規則を使用してクエリ結果を S3 バケットに書き込むための権限が提供されます。

Athena クエリの基盤となるデータソースにアクセスするための Amazon S3 の権限は、このマネージドポリシーには含まれません。そのため、必要に応じて対象の Amazon S3 バケットに手動でアクセス権を追加する必要があります。詳細については、このガイドの [「Amazon Managed Grafana の ID ベースのポリシーの例](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)」を参照してください。

# AWS データソース設定を使用して Amazon Athena をデータソースとして追加する
<a name="Athena-adding-AWS-config"></a>

## 前提条件
<a name="Athena-prerequisites"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) が環境にインストールされ、構成されている。
+ ご自身のアカウントから Athena にアクセスできる。

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールに移動して、アカウントまたは組織単位全体の Athena リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービスマネージド IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして Athena を追加します。

# AWS データソース設定を使用して Athena をデータソースとして追加するには


1.  ユーザーロールが管理者または編集者であることを確認します。

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) の Amazon Managed Grafana コンソールから、作業するワークスペースを選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[Amazon Athena]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** を選択します。

1. [**データソース**] タブを再度選択し、**Amazon Athena** 行で [**Grafana で設定**] を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。Athena データソースにアクセスするには、ユーザー/ロールに Athena アクセスポリシーが適用されている必要があります。詳細については、「[AWS マネージドポリシー: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess)」を参照してください。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、下部 AWS のアイコン (2 つあります) を選択し、**データソース**メニューから **Athena** を選択します。

1. Athena データソースがクエリするデフォルトリージョンを選択し、対象となるアカウントを選択し、[**データソースの追加**] を選択します。

1.  [[**Athena Details**] (Athena の詳細) の設定](#Athena-settings) の手順に従って [**Athena Details**] (Athena の詳細) を設定します。

## [**Athena Details**] (Athena の詳細) の設定
<a name="Athena-settings"></a>

****Athena の詳細**設定を構成する**

1.  [**接続の詳細**] メニューで、認証プロバイダーを選択します (推奨: **Workspace IAM ロール)**。

1.  Athena アカウントがある対象の Athena データソースを選択します。データソースを選択しない場合、ドロップダウンにはデフォルトのデータソースのみが表示されます。

   新しい Athena アカウントを作成するには、「[Athena の開始方法](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)」の手順に従ってください。

1.  上記で選択したデータソースで、対象の Athena データベースを選択します。

1.  ワークグループを選択します。デフォルトは「**プライマリ**」です。

1.  ワークグループに出力場所がまだ設定されていない場合、クエリ結果に使用する S3 バケットとフォルダを指定します。例: `s3://grafana-athena-plugin-test-data/query-result-output/ ` 

1.  **[保存してテスト]** を選択します。

# Athena データソースを手動で追加する
<a name="Athena-add-the-data-source"></a>

## 前提条件
<a name="Athena-prerequisites2"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) が環境にインストールされ、構成されている。
+  ご自身のアカウントから **Amazon Athena** にアクセスできる。

**Athena データソースを手動で追加する方法：**

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンで一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **AWS Athena** データソースを選択します。必要に応じて、検索ボックスに **Athena** の入力を開始すると検索を補助することができます。

1.  [**接続の詳細**] メニューで、認証プロバイダーを設定します (推奨: **Workspace IAM ロール)**。

1.  対象の Athena データソース、データベース、ワークグループを選択します。

   新しい Athena アカウントを作成するには、[「Athena の開始方法](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)」の手順に従ってください。

1.  ワークグループに出力場所がまだ設定されていない場合、クエリ結果に使用する S3 バケットとフォルダを指定します。例えば、`s3://grafana-athena-plugin-test-data/query-result-output/ `。

1.  **[保存してテスト]** を選択します。

[**Athena Details**] (Athena の詳細) の設定例を以下に示します。

![\[[Athena Details] (Athena の詳細) の例\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/images/athena.png)


# Athena データソースを使用する
<a name="Athena-using-the-data-source"></a>

## IAM ポリシー
<a name="Athena-policies"></a>

 Grafana が Athena のメトリクスを読み取るには、IAM 経由で権限が付与されている必要があります。これらの権限を IAM ロールに付与し、Grafana のビルトイン機能を使用してロールを引き受けることができます。データソースを Grafana に追加する前に、ロールに [必要なポリシーを設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) しておく必要があります。データソースを追加するには、管理者または編集者ロールが必要です。ビルトインの Amazon Grafana Athena アクセスポリシーは、 [AWS マネージドポリシー: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess) セクションで定義されています。

## Athena データのクエリ
<a name="Athena-query"></a>

Athena データソースには、標準の SQL クエリエディタが用意されています。Amazon Managed Grafana には、より複雑な時系列クエリの記述に役立つマクロがいくつか含まれています。

マクロ


|  Macro  |  説明  |  例  |  出力例  | 
| --- | --- | --- | --- | 
|  \$1\$1\$1dateFilter(column)  |  \$1\$1\$1dateFilter は、パネルの日付範囲を基に (column を使用して) データを選択する条件付きフィルターを作成します。 |  \$1\$1\$1date(my\$1date)  | my\$1date BETWEEN date '2017-07-18' AND date '2017-07-18' | 
|  \$1\$1\$1parseTime(column,format)  |  \$1\$1\$1parseTime は、指定された形式の varchar 型をtimestamp 型に変換します。 |  \$1\$1\$1parseTime(eventtime, 'yyyy-MM-dd''T''HH:mm:ss''Z')  | parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z') | 
|  \$1\$1\$1timeFilter(column,format)  |  \$1\$1\$1timeFilter は、パネルの時間範囲を基に (column を使用して) データのフィルタ条件を作成します。第 2 引数は、カラムを varchar 型から指定された形式の timestamp 型に変換するために使用します (オプション)。 | \$1\$1\$1timeFilter(time, 'yyyy-MM-dd HH:mm:ss') | TIMESTAMP time BETWEEN TIMESTAMP '2017-07-18T11:15:52Z' AND TIMESTAMP '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom は、パネルの範囲の現在の開始時刻を引用符付きで出力します。 | \$1\$1\$1timeFrom() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo  は、パネルの範囲の現在の終了時刻を引用符付きで出力します。 | \$1\$1\$1timeTo() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeGroup(column, '1m', format)  |  \$1\$1\$1timeGroup  は、タイムスタンプをグループ化して、グラフ上の期間ごとに 1 つのポイントになるようにします。第 3 引数は、カラムを varchar 型から指定された形式の timestamp 型に変換するために使用します (オプション)。 | \$1\$1\$1timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') | FROM\$1UNIXTIME(FLOOR(TO\$1UNIXTIME(parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)\$1300) | 
|  \$1\$1\$1table  |   \$1\$1\$1table は、[テーブル] セレクタで選択されたテーブルを返します。 | \$1\$1\$1table | my\$1table | 
|  \$1\$1\$1column  |  \$1\$1\$1column は、[列] セレクタで選択された列を返します (テーブルが必要です)。 | \$1\$1\$1column  | col1  | 

**視覚的表現**

Athena でのほとんどのクエリは、テーブル形式での視覚的表現が最も適しています。クエリから返されたデータはテーブル形式で表示されます。クエリが可能なデータは、テーブルとして表示することができます。

以下の例は、テーブル形式での視覚的表現に対応した結果を返します。

```
SELECT {column_1}, {column_2} FROM {table};
```

**時系列/グラフ表現**

時系列とグラフ表現を行うには、以下を行う必要があります。
+ `date` または `datetime` 型の列を選択します。`date` 列は昇順である必要があります (`ORDER BY column ASC` を使用)。
+ 数値列も選択します。

**クエリの検査**

Amazon Managed Grafana は、Athena ではサポートされていないマクロもサポートしているため、クエリをそのまま Athena にコピー & ペーストしても動作しない場合があります。Athena で直接実行可能な補完された完全なクエリは、[**Query Inspector**] ボタンで確認できます。完全なクエリは、[**クエリ**] タブの下に表示されます。

## テンプレートおよび変数
<a name="using-Athena-templates-variables"></a>

Athena クエリ変数の追加の詳細については、「[クエリ変数の追加](variables-types.md#add-a-query-variable)」を参照してください。Athena データソースを使用可能なクエリのデータソースとして使用します。

Athena テーブルからクエリされた値は、変数として使用できます。値が多すぎると、パフォーマンスの問題が発生する可能性があるため、選択しすぎないようにしてください。

作成した変数は、[変数構文](templates-and-variables.md#variable-syntax) を使用して Athena クエリで使用できます。変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## ‏注釈
<a name="using-Athena-annotations"></a>

[‏注釈](dashboard-annotations.md) を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。注釈を追加するには、パネルを選択するか、**ダッシュボード**メニューの**注釈**ビューを使用して注釈クエリを追加します。

注釈を自動的に追加するクエリの例:

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  tableName
WHERE
  $__dateFilter(time) and humidity > 95
```

以下の表に、注釈の表示に使用できる列の説明を示します。


|  名前  |  説明  | 
| --- | --- | 
|  Time  |  日付/時刻フィールドの名前。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  Timeend  |  終了日時フィールドのオプション名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。(Grafana v6.6 以降)  | 
|  Text  |  イベントの説明フィールド。 | 
|  Tags  |  カンマ区切り文字列としてイベントタグに使用するオプションのフィールド名。 | 

## 非同期クエリデータのサポート
<a name="athena-async-query"></a>

Amazon Managed Grafana の Athena クエリは、タイムアウトを避けるために非同期で処理されます。非同期クエリは、まずクエリを開始するリクエストを送り、次に進行状況を確認し、最後に結果を取得するという形で別々のリクエストを使用します。これにより、実行に時間がかかるクエリでもタイムアウトせずに処理できます。

## クエリ結果の再利用
<a name="athena-query-reuse"></a>

以前のクエリの結果を再利用して、クエリのパフォーマンスを向上させることができます。クエリの再利用は、クエリエディタの「**クエリ結果の再利用**」セクションで有効にすることができます。この設定は、再利用したい各クエリごとに行う必要があります。

**注記**  
この機能を使用するには、Athena インスタンスのエンジンのバージョンが 3 である必要があります。詳細については、*Amazon Athena ユーザーガイド*」の「[Athena エンジンバージョンの変更](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html)」を参照してください。

# Amazon Redshift データソースに接続する
<a name="AWS-Redshift"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

**注記**  
 このガイドでは、Amazon Redshift データソースを使用する前に、ユーザーが Amazon Redshift サービスに精通していることを前提としています。

Amazon Managed Grafana では、Grafana ワークスペースコンソールのデータソース設定オプションを使用して、Amazon Redshift を AWS データソースとして追加できます。この機能は、既存の Amazon Redshift アカウントを検出してデータソースとして Amazon Redshift を追加するのを簡素化し、Amazon Redshift へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして Amazon Redshift を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。

Amazon Managed Grafana が Amazon Redshift にアクセスできるようにするには、いくつかの前提条件があります。Amazon Redshift データソースの使用に関連する前提条件については、「[前提条件](Redshift-prereq.md)」を参照してください。

# 前提条件
<a name="Redshift-prereq"></a>

Amazon Managed Grafana の AWS マネージドポリシーを使用するには、Amazon Redshift データソースを設定する前に以下のタスクを完了します。
+ Amazon Redshift クラスターに `GrafanaDataSource: true` をタグ付けします。タグ付けしないと、アクセスできなくなります。
+ データベース認証情報は、次の相互に排他的ないずれかの方法で作成します。
  + デフォルトのメカニズム (一時認証情報のオプション) を使用して Redshift データベースに対して認証する場合は、`redshift_data_api_user` という名前のデータベースユーザーを作成する必要があります。
  + Secrets Manager の認証情報を使用する場合は、シークレットに `RedshiftQueryOwner: true` をタグ付けする必要があります。詳細については、このガイドの「[Amazon Managed Grafana の ID ベースのポリシーの例](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)」を参照してください。

# AWS データソース設定を使用して Amazon Redshift をデータソースとして追加する
<a name="Redshift-configure"></a>

# AWS データソース設定を使用して Amazon Redshift をデータソースとして追加するには


1.  ユーザーロールが管理者または編集者であることを確認します。

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) の Amazon Managed Grafana コンソールから、作業するワークスペースを選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**[Amazon Redshift]** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** を選択します。

1. **[データソース]** タブを再度選択し、**[Amazon Redshift]** 行の **[Grafana で設定]** を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、(2 つあるうちの) 下部の AWS アイコンを選択し、**[Redshift]** を選択します。

1. Amazon Redshift データソースがクエリするデフォルトのリージョンを選択し、目的のアカウントを選択し、**[データソースの追加]** を選択します。

1.  [**[接続の詳細]** 設定](Redshift-config.md#Redshift-connection-details) の手順に従って **[接続の詳細]** を設定します。

# Amazon Redshift データソースの手動追加
<a name="Redshift-add-the-data-source"></a>

## 前提条件
<a name="Redshift-prerequisites"></a>
+  ご自分のアカウントから **[Amazon Redshift]** にアクセスできます。

**Amazon Redshift データソースの追加方法:**

1. [AmazonRedshiftAccessPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) をワークスペースのユーザーロールにアタッチします。

1. ユーザーロールが管理者または編集者であることを確認します。

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) の Amazon Managed Grafana コンソールから、作業するワークスペースを選択します。

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンで一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **[AWS Redshift]** データソースを選択します。必要に応じて、検索ボックスに **Redshift** の入力を開始すると検索を補助することができます。

1. これにより、**[接続の詳細]** ページが開きます。「[**[接続の詳細]** 設定](Redshift-config.md#Redshift-connection-details)」の手順にそってを設定します。

# Amazon Redshift の設定
<a name="Redshift-config"></a>

 Amazon Redshift データソースをワークスペースに追加してから、次のように Amazon Redshift を設定します。

## 前提条件
<a name="Redshift-prerequisites"></a>
+  ご自分のアカウントから **[Amazon Redshift]** にアクセスできます。

## **[接続の詳細]** 設定
<a name="Redshift-connection-details"></a>

**[接続の詳細] 設定の構成**

1.  [**接続の詳細**] メニューで、認証プロバイダーを選択します (推奨: **Workspace IAM ロール)**。

1.  クエリする **[デフォルトリージョン]** を選択します。

## **[認証]** 設定
<a name="Redshift-Authentication"></a>

****[認証]** 設定の構成**

1.  **[認証]** メニューで、アクセス認証情報プロバイダーとして **[一時認証情報]** または **[AWS Secrets Manager]** のいずれかのタブを選択します。一時的な認証情報と AWS Secrets Manager の詳細については、「」を参照してください。 [AWS マネージドポリシー: AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess)

1.  デフォルトの **[一時的認証情報]** を選択した場合は、以下の手順に従います。**[AWS Secrets Manager]** を選択した場合は、入力フィールドに **[AWS Secrets Manager]** の認証情報を入力します。

1.  Amazon Redshift で作成したクラスターの **[クラスター識別子]** を選択します。

   Redshift クラスターの詳細については、「[Redshift 接続](https://docs.aws.amazon.com/redshift/latest/gsg/connection.html)」を参照してください。

1.  目的の Redshift データベースを選択します。

1.  上記のクラスターのために作成したデータベースユーザーを選択します。

1.  **[保存してテスト]** を選択します。

以下は、**[一時認証情報]** 設定の例です。

![\[一時認証情報の例\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/images/redshift.png)


以下は **[AWS Secrets Manager]** メニューの例です。

![\[Secrets Manager の例\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/images/secretsmanager.png)


# Amazon Redshift データソースの使用
<a name="Redshift-using-the-data-source"></a>

## IAM ポリシー
<a name="Redshift-policies"></a>

 Grafana が Redshift のメトリクスを読み取るには、IAM を使用して権限が付与されている必要があります。これらの権限を IAM ロールに付与し、Grafana のビルトイン機能を使用してロールを引き受けることができます。組み込みの Amazon Grafana Redshift アクセスポリシーは、[AWS マネージドポリシー: AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) セクションで定義されています。

## Amazon Redshift データのクエリ
<a name="Redshift-query"></a>

 Amazon Redshift データソースには標準の SQL クエリエディタが用意されています。Amazon Managed Grafana には、より複雑な時系列クエリの記述に役立つマクロがいくつか含まれています。

マクロ


|  Macro  |  説明  |  出力例  | 
| --- | --- | --- | 
|  \$1\$1\$1timeEpoch(column)  |  \$1\$1\$1timeEpoch は UNIX タイムスタンプに変換して列の名前を時刻に変更する式に置き換えられます。 |  UNIX\$1TIMESTAMP(dateColumn) as "time"  | 
|  \$1\$1\$1timeFilter(column)  |  \$1\$1\$1timeFilter はパネルの時間範囲を基準に (column を使用して) データのフィルタ条件を作成します。 |  time BETWEEN '2017-07-18T11:15:52Z' AND '2017-07-18T11:15:52Z'  | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom はパネルの範囲の現在の開始時刻を引用符付きで出力します。 | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo はパネルの範囲の現在の終了時刻を引用符付きで出力します。 | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeGroup(column, '1m')  |  \$1\$1\$1timeGroup はタイムスタンプをグループ化して、グラフ上の期間ごとに 1 つのポイントになるようにします。 | floor(extract(epoch from time)/60)\$160 AS "time" | 
|  \$1\$1\$1schema  |  \$1\$1\$1schema  は選択したスキーマを使用します  | public | 
|  \$1\$1\$1table  |   \$1\$1\$1table は特定の \$1\$1\$1schema からテーブルを出力します (デフォルトではパブリックスキーマを使用します)  | sales | 
|  \$1\$1\$1column  |  \$1\$1\$1column は現在の \$1\$1\$1table から列を出力します  | date  | 
|  \$1\$1\$1unixEpochFilter(column)  |  \$1\$1\$1unixEpochFilter は指定された列名と Unix タイムスタンプとして表される時刻を使用して、時間範囲フィルターで置き換えられます。 |   column >= 1624406400 AND column <= 1624410000  | 
|  \$1\$1\$1unixEpochGroup(column)  |  \$1\$1\$1unixEpochGroup は \$1\$1\$1timeGroup と同じですが、Unix タイムスタンプとして保存されている時間用です  | floor(time/60)\$160 AS "time" | 

**視覚的表現**

Redshift でのほとんどのクエリは、テーブル形式での表示が最も適しています。すべてのクエリではテーブルにデータを表示します。クエリができれば、テーブルに入れることができます。

以下の例は、テーブル形式での視覚的表現に対応した結果を返します。

```
SELECT {column_1}, {column_2} FROM {table};
```

**時系列とグラフの視覚化**

時系列とグラフの視覚化には、以下のようないくつかの要件があります。
+ `date` または `datetime` タイプの列を選択する必要があります。
+ `date` 列は昇順である必要があります (`ORDER BY column ASC` を使用)。
+ 数値列を選択する必要があります。

より妥当なグラフを作成するには、必ず `$__timeFilter` および `$__timeGroup` マクロを使用してください。

**時系列クエリの例:**

```
SELECT
  avg(execution_time) AS average_execution_time,
  $__timeGroup(start_time, 'hour'),
  query_type
FROM
  account_usage.query_history
WHERE
  $__timeFilter(start_time)
group by
  query_type,start_time
order by
  start_time,query_type ASC;
```

**[フルモード]**

Grafana はデフォルトで値を持たないフレームを自動補完します。この値を設定するには、クエリエディタで **[フィル値]** を変更します。

**クエリの検査**

Grafana では Redshift がサポートしていないマクロがサポートされるため、Redshift に直接コピーして貼り付けることができる、完全にレンダリングされたクエリはクエリインスペクターに表示されます。補間されたクエリ全体を表示するには、**[クエリインスペクター]** メニューを選択すると、**[クエリ]** タブにクエリ全体が表示されます。

## テンプレートおよび変数
<a name="using-redshift-templates-variables"></a>

新しい Redshift クエリ変数を追加する方法の詳細については、「[クエリ変数の追加](variables-types.md#add-a-query-variable)」を参照してください。Redshift データソースを使用可能なクエリのデータソースとして使用します。

Amazon Redshift テーブルからクエリされた値は変数として使用できます。値が多すぎるとパフォーマンスの問題が発生する場合があるため、選択しすぎないようにしてください。

変数を作成したら、 [変数構文](templates-and-variables.md#variable-syntax) を使用して Redshift クエリで使用できます。変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## ‏注釈
<a name="using-redshift-annotations"></a>

[‏注釈](dashboard-annotations.md) を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。注釈を追加するには、パネルを選択するか、**[ダッシュボード]** メニューから開く **[注釈]** ビューを使用して注釈クエリを追加します。

注釈を自動的に追加するクエリの例:

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  $__table
WHERE
  $__timeFilter(time) and humidity > 95
```

次の表は、注釈のレンダリングを考慮された列の値を示しています。


|  名前  |  説明  | 
| --- | --- | 
|  Time  |  日付または時刻のフィールド名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  Timeend  |  終了日時フィールドのオプション名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  Text  |  イベントの説明フィールド。 | 
|  Tags  |  カンマ区切り文字列としてイベントタグに使用するオプションのフィールド名。 | 

# AWS X-Ray データソースに接続する
<a name="x-ray-data-source"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

 をデータソース AWS X-Ray として追加し、ダッシュボードを構築するか、Explore with X-Ray を使用してトレース、分析、インサイトを確認します。

 Amazon Managed Grafana では、Grafana ワークスペースコンソールのデータソース AWS 設定オプションを使用して、データソースとして X-Ray を追加できます。この機能は、既存の X-Ray アカウントを検出してデータソースとして X-Ray を簡単に追加し、X-Ray へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして X-Ray を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。

**Topics**
+ [AWS データソース設定を使用して X-Ray をデータソースとして追加する](xray-adding-AWS-config.md)
+ [X-Ray データソースの手動追加](xray-add-the-data-source.md)
+ [X-Ray 設定](#xray-settings)
+ [X-Ray データソースの使用](xray-using.md)

# AWS データソース設定を使用して X-Ray をデータソースとして追加する
<a name="xray-adding-AWS-config"></a>

 AWS データソース設定を使用するには、まず Amazon Managed Grafana コンソールを使用して、アカウントまたは組織単位全体の X-Ray リソースを読み取るために必要な IAM ポリシーをワークスペースに付与するサービス管理の IAM ロールを有効にします。次に、Amazon Managed Grafana ワークスペースコンソールを使用して、データソースとして X-Ray を追加します。

**AWS データソース設定を使用して X-Ray をデータソースとして追加するには**

1. Amazon Managed Grafana コンソール ([https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)) を開きます。

1. ページの左上隅にあるメニューアイコンを選択し、**[すべてのワークスペース]** を選択します。

1. ワークスペースの名前を選択します。

1. このワークスペースの作成時にサービスマネージドアクセス許可を使用しない場合は、カスタマーマネージドアクセス許可の使用からサービスマネージドアクセス許可の使用に変更して、Grafana ワークスペースコンソールで AWS データソース設定オプションを使用するための適切な IAM ロールとポリシーが有効になっていることを確認します。これを行うには、**[IAM ロール]** で編集アイコンを選択して **[サービス管理]**、**[変更を保存]** を選択します。詳細については、「[AWS データソースの Amazon Managed Grafana アクセス許可とポリシー](AMG-manage-permissions.md)」を参照してください。

1. **[データソース]** タブを選択します。次に、**AWS X-Ray** のチェックボックスを選択し、**[アクション]**、**[サービス管理ポリシーを有効にする]** を選択します。

1. **データソース** タブを再度選択し、**AWS X-Ray** 行で **[Configure in Grafana]** (Grafana で設定) を選択します。

1. 必要に応じて、IAM Identity Center を使用して Grafana ワークスペースコンソールにサインインします。

1. Grafana ワークスペースコンソールの左側のナビゲーションバーで、 AWS アイコンを選択し、**AWS サービス** **X-Ray** を選択します。

1. X-Ray データソースがクエリを実行するデフォルトリージョンを選択し、アカウントを選択し、**[データソースの追加]** を選択します。

# X-Ray データソースの手動追加
<a name="xray-add-the-data-source"></a>

**X-Ray データソースを手動で追加するには**

1.  Grafana コンソールのサイドメニューで、**[設定]** (歯車) アイコンで一時停止して **[データソース]** を選択します。

1. **[データソースの追加]** を選択します。

1. **X-Ray** データソースを選択します。必要に応じて、検索ボックスに **X-Ray** の入力を開始すると検索を補助することができます。

## X-Ray 設定
<a name="xray-settings"></a>


|  名前  |  説明  | 
| --- | --- | 
|  名前  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  デフォルト  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  デフォルトのリージョン  |  クエリエディタでリージョンを設定するために使用します (クエリごとに変更できます)。 | 
|  認証プロバイダー  |  認証情報を取得するプロバイダーを指定します。 | 
|  認証情報プロファイル名  |  使用するプロファイルの名前を指定します (\$1/.aws/credentialsファイルを使用する場合)。デフォルトでは空白のままにします。 | 
|  引き受けるロールの Arn  |  引き受けるロールの ARN を指定します。 | 
|  External ID  |  外部 ID で作成された別のアカウントでロールを引き受ける場合は、ここで外部 ID を指定します。 | 

### 認証
<a name="xray-authentication"></a>

このセクションでは、X-Ray データソースで使用できるさまざまなタイプの認証について説明します。

#### IAM ロール
<a name="xray-iam-roles"></a>

 現在、X-Ray へのすべてのアクセスは、公式 AWS SDK を使用して Grafana ワークスペースバックエンドによってサーバー側で行われます。Grafana サーバーが で実行されている場合 AWS、IAM ロールを使用できます。認証は自動的に処理されます。

 詳細については、「[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)」を参照してください。

### IAM ポリシー
<a name="xray-iam-policies"></a>

 Grafana では、X-Ray データおよび EC2 タグ/インスタンス/リージョンを読み取るために、IAM 経由で付与されたアクセス許可が必要です。これらのアクセス許可を IAM ロールに付与し、Grafana の組み込み機能を使用してロールを引き受けることができます。

 次のコードは、最小限のポリシーのコードの例です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries",
                "xray:GetTraceGraph",
                "xray:GetGroups",
                "xray:GetTimeSeriesServiceStatistics",
                "xray:GetInsightSummaries",
                "xray:GetInsight",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### AWS 認証情報の例
<a name="xray-example-aws-credentials"></a>

 Amazon Managed Grafana で認証情報ファイルメソッドを使用することはできません。

# X-Ray データソースの使用
<a name="xray-using"></a>

## クエリエディタ
<a name="xray-query-editor"></a>

 エディタで最も重要なフィールドは、クエリタイプです。クエリには次の 4 つのタイプがあります。
+  トレースリスト (トレースイン AWS) 
+  トレース統計 
+  トレース分析 ( の分析 AWS) 
+  Insights 

## トレースリスト
<a name="xray-trace-list"></a>

 トレースリストタイプを使用すると、トレースを検索できます。このトレースは、テーブルに表示されます。最初の列でトレース ID を選択すると、右側のトレースが開きます。エディタのクエリフィールドに注目してください。クエリを記述したり、式をフィルタリングしたり、トレースビューに表示される単一のトレース ID を挿入したりできます。フィルター式の詳細については、「[AWS X-Ray ドキュメント](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html)」を参照してください。

**注記**  
 トレースリストには、最初の 1,000 個のトレースのみが表示されます。

## トレース統計
<a name="xray-trace-statistics"></a>

 トレース統計では、エラー、障害、スロットル、成功、合計数に関する情報を示すグラフとテーブルを確認できます。クエリエディタの列フィールドを使用して、指定された列のみを表示できます。

## トレース分析
<a name="xray-trace-analytics"></a>

 トレース分析では、次のテーブルを視覚化できます。
+  根本原因 
  +  応答時間 
    +  根本原因サービス (パス内の最後のサービス) 
    +  パス (複数パス) 
  +  エラー 
    +  根本原因サービス (パス内の最後のサービス) 
    +  パス 
    +  エラーメッセージ 
  +  障害 
    +  根本原因サービス (パス内の最後のサービス) 
    +  パス 
    +  エラーメッセージ 
+  エンドユーザーへの影響 
+  [URL] 
+  HTTP ステータスコード 

## Insights
<a name="xray-insights"></a>

 Insights では、Insights の概要テーブルを確認できます。InsightId を選択すると、 AWS マネジメントコンソールに移動します。

## [アラート]
<a name="xray-alerting"></a>

 X-Ray クエリは数値データを返す可能性があるため、アラートがサポートされています。詳細については、「[Grafana アラート](alerts-overview.md)」を参照してください。

# Azure Monitor データソースへの接続
<a name="using-azure-monitor-in-AMG"></a>

 Azure Monitor データソースは Azure クラウド内の複数のサービスをサポートしています。
+  **Azure Monitor サービス**は、Azure リソースをモニタリングするための単一ソースを提供するプラットフォームサービスです。詳細については、「[Azure Monitor サービスのクエリ](#query-the-azure-monitor-service)」を参照してください。
+  **[Application Insights サーバー]**は、複数のプラットフォーム上のウェブデベロッパー向けの拡張可能なアプリケーションパフォーマンス管理 (APM) サービスで、ライブウェブアプリケーションのモニタリングに使用できます。これによりパフォーマンスの異常が自動的に検出されます。詳細については、「[Application Insights Analytics サービスのクエリ](#query-the-application-insights-analytics-service)」を参照してください。
+  **Azure Log Analytics** (または Azure Logs) では、Azure Monitor が収集したログデータにアクセスできます。詳細については、「[Azure Log Analytics サービスのクエリ](#querying-the-azure-log-analytics-service)」を参照してください。
+  **[Application Insights Analytics サービス]**を使用して、Azure Log Analytics で使用されているのと同じクエリ言語を使用し [[Application Insights データ]](https://docs.microsoft.com/en-us/azure/azure-monitor/app/analytics)をクエリします。詳細については、「[Application Insights Analytics サービスのクエリ](#query-the-application-insights-analytics-service)」を参照してください。

## データソースの追加
<a name="azure-add-the-data-source"></a>

 データソースは 4 つの異なるサービスのメトリクスにアクセスできます。使用するサービスへのアクセスを設定できます。また、Azure Entra ID で設定すれば、複数のサービスに同じ認証情報を使用することもできます。
+  [Microsoft Entra アプリケーションを登録し、サービスプリンシパルを作成する](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal) 

1.  Grafana のメインメニューからアクセスすると、新しくインストールされたデータソースをデータソースセクション内にすぐに追加できます。次に、右上の **[データソースの追加]** ボタンを選択します。Azure Monitor のデータソースが、データソースリストの クラウドセクションで選択できるようになります。

1.  名前フィールドでは、Grafana により `Azure Monitor` または `Azure Monitor - 3` などのデータソースの名前が自動的に入力されます。複数のデータソースを設定する場合は、情報を含んだ名前に変更します。

1.  Azure Monitor を使用する場合は、Azure ポータルの 4 つの情報が必要です (詳細手順については、前述のリンクを参照してください)。
   +  **テナント ID** (Azure Entra ID、プロパティ、ディレクトリ ID) 
   +  **クライアント ID** (Azure Entra ID、アプリケーション登録、アプリケーションの選択、アプリケーション ID) 
   +  **クライアントシークレット** (Azure Entra ID、アプリケーション登録、アプリケーションの選択、キー) 
   +  **デフォルトのサブスクリプション ID** (サブスクリプション、サブスクリプションの選択、概要、サブスクリプション ID) 

1.  これらの 4 つの項目を Azure Monitor API 詳細 セクション内のフィールドに貼り付けます。
   +  サブスクリプション ID はクエリごとに変更できます。データソースを保存してページを更新し、指定のクライアント ID で使用できるサブスクリプションのリストを表示します。

1.  Azure Log Analytics サービスも使用する場合は、これら 2 つの設定値を指定、または前のステップのクライアント ID とシークレットを再利用する必要があります。
   +  クライアント ID (Azure Entra ID、アプリケーション登録、アプリケーションの選択、アプリケーション ID) 
   +  クライアントシークレット (Azure Entra ID、アプリケーション登録、アプリケーションの選択、キー、キーの作成、クライアントシークレットの使用) 

1.  Application Insights を使用する場合は、Azure Portal の 2 つの情報が必要です (詳細手順については、前述のリンクを参照してください)。
   +  アプリケーション ID 
   +  API キー 

1.  これら 2 つの項目を Application Insights API 詳細 セクション内の適切なフィールドに貼り付けます。

1.  **[保存してテスト]** ボタンを選択して、設定の詳細が正しいことをテストします。

 ステップ 4 で代わりに、新しい Azure Entra ID アプリケーションを作成する場合は、次のように [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest) を使用します。

```
az ad sp create-for-rbac -n "http://localhost:3000"
```

## サービスの選択
<a name="azure-choose-a-service"></a>

 パネルのクエリエディタで、ご使用の Azure Monitor データソースを選択した後の最初のステップは、サービスを選択することです。次の 4 つのオプションがあります。
+  `Azure Monitor` 
+  `Application Insights` 
+  `Azure Log Analytics` 
+  `Insights Analytics` 

 選択したオプションに応じて、クエリエディタが異なります。Azure Monitor がデフォルトです。

## Azure Monitor サービスのクエリ
<a name="query-the-azure-monitor-service"></a>

 Azure Monitor サービスには、実行しているすべての Azure サービスのメトリクスが用意されています。これは Azure 上のアプリケーションのパフォーマンスを把握して、アプリケーションに影響する問題を事前に検出するのに役立ちます。

 Azure Monitor の認証情報を使用して複数のサブスクリプションにアクセスできる場合は、まず適切なサブスクリプションを選択します。

 サービスから取得できるメトリクス例は次のとおりです。
+  `Microsoft.Compute/virtualMachines - Percentage CPU` 
+  `Microsoft.Network/networkInterfaces - Bytes sent` 
+  `Microsoft.Storage/storageAccounts - Used Capacity` 

 クエリエディタを使用すると、複数のディメンションをサポートするメトリクスに対して、複数のディメンションをクエリできます。複数のディメンションをサポートするメトリクスは「[Azure Monitor がサポートするメトリクスリスト](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported)」に記載されているものですが、メトリクスの **[ディメンション]** 列には 1 つ以上の値がリストされています。

### Azure Monitor のエイリアスを使用した凡例キーの書式設定
<a name="format-legend-keys-with-aliases-for-azure-monitor"></a>

 Azure Monitor API のデフォルト凡例形式は次のとおりです。

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 これらの書式は長い場合がありますが、この書式設定はエイリアスを使用して変更できます。**凡例形式** フィールドでは、次のエイリアスを任意の方法で組み合わせることができます。

 Azure Monitor の例: 
+  `Blob Type: {{ blobtype }}` 
+  `{{ resourcegroup }} - {{ resourcename }}` 

### Azure Monitor のエイリアスパターン
<a name="alias-patterns-for-azure-monitor"></a>
+  `{{ resourcegroup }}` = リソースグループの値に置き換え 
+  `{{ namespace }}` = 名前空間の値に置き換え (Microsoft.Compute/virtualMachines など) 
+  `{{ resourcename }}` = リソース名の値に置き換え 
+  `{{ metric }}` = メトリクス名に置き換え (Percentage CPU など) 
+  `{{ dimensionname }}` = *7.1 以降のレガシー (下位互換性用)* は、最初のディメンションのキー/ラベル (キー/ラベルでソート) に置き換え (blobtype など)。
+  `{{ dimensionvalue }}` = *7.1 以降のレガシー (下位互換性用)* は、最初のディメンションの値 (キー/ラベルでソート) に置き換え (BlockBlob など)。
+  `{{ arbitraryDim }}` = *7.1 以降で使用可能*は、対応するディメンションの値に置き換え (例えば、`{{ blobtype }}` は BlockBlob になります)。

### Azure Monitor のテンプレート変数の作成
<a name="create-template-variables-for-azure-monitor"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 Azure Monitor サービスは複数の値を未サポートであることに注意してください。複数の時系列 (server1 と server2 のメトリクスなど) を視覚化するには、複数のクエリを追加して同じグラフまたは同じテーブルで表示できるようにします。

 Azure Monitor データソースプラグインには、変数編集ビューの **[クエリ]** フィールドで指定できる、以下のクエリが用意されています。これらを使用して、変数のオプションリストを入力できます。


|  名前  |  説明  | 
| --- | --- | 
|  Subscriptions()  |  説明のリストを返します。 | 
|  ResourceGroups()  |  リソースグループのリストを返します。 | 
|  ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa)  |  指定のサブスクリプションのリソースグループのリストを返します。 | 
|  Namespaces(aResourceGroup)  |  指定のリソースグループの名前空間のリストを返します。 | 
|  Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup)  |  指定のリソースグループとサブスクリプションの名前空間のリストを返します。 | 
|  ResourceNames(aResourceGroup, aNamespace)  |  リソース名のリストを返します。 | 
|  ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace)  |  指定のサブスクリプションのリソース名のリストを返します。 | 
|  MetricNamespace(aResourceGroup, aNamespace, aResourceName)  |  メトリクス名前空間のリストを返します。 | 
|  MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  指定のサブスクリプションのメトリクス名前空間のリストを返します。 | 
|  MetricNames(aResourceGroup, aNamespace, aResourceName)  |  メトリクス名のリストを返します。 | 
|  MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  指定のサブスクリプションのメトリクス名のリストを返します。 | 

 例: 
+  リソースグループのクエリ: `ResourceGroups()` 
+  メトリクス名変数で渡される: `Namespaces(cosmo)` 
+  テンプレート変数のチェーン: `ResourceNames($rg, $ns)` 
+  パラメータの引用なし: `MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)` 

 テンプレート作成とテンプレート変数の詳細については、「[テンプレート](templates-and-variables.md#templates)」を参照してください。

### サポートされる Azure Monitor メトリクスのリスト
<a name="list-of-supported-azure-monitor-metrics"></a>

 Azure Monitor API が返すすべてのメトリクスに値があるわけではありません。クエリ構築を容易にするため、Grafana データソースにはサポート対象の Azure Monitor メトリクスのリストがあり、値を持たないメトリクスは無視されます。新しいサービスとメトリクスが Azure クラウドに追加されると、このリストは定期的に更新されます。

### Azure Monitor アラート
<a name="azure-monitor-alerting"></a>

 Grafana アラートは Azure Monitor サービスでサポートされています。これは Azure Alerts のサポートではありません。Grafana アラートの詳細については、「[Grafana アラート](alerts-overview.md)」を参照してください。

## Application Insights サービスのクエリ
<a name="query-the-application-insights-service"></a>

### Application Insights のエイリアスを使用した凡例キーの形式設定
<a name="formatting-legend-keys-with-aliases-for-application-insights"></a>

 デフォルトの凡例の形式設定は次のとおりです。

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 凡例形式フィールドでは、任意の方法で次のエイリアスを組み合わせることができます。

 Application Insights の例：
+  `city: {{ client/city }}` 
+  `{{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]` 

### Application Insights のエイリアスパターン
<a name="alias-patterns-for-application-insights"></a>
+  `{{ groupbyvalue }}` = *Grafana 7.1 以降のレガシー (下位互換性用)* は、最初のディメンションのキー/ラベル (キー/ラベルでソート) に置き換え。
+  `{{ groupbyname }}` = *Grafana 7.1 以降のレガシー (下位互換性用)* は、最初のディメンションの値 (キー/ラベルでソート) に置き換え (BlockBlob など)。
+  `{{ metric }}` = メトリクス名に置き換え (リクエスト/カウントなど) 
+  `{{ arbitraryDim }}` = *7.1 以降で使用可能*は、対応するディメンションの値に置き換え (例えば、`{{ client/city }}` は Chicago になります)。

### Application Insights のフィルター式
<a name="filter-expressions-for-application-insights"></a>

 フィルターフィールドでは OData フィルター式を使用できます。

 例: 
+  `client/city eq 'Boydton'` 
+  `client/city ne 'Boydton'` 
+  `client/city ne 'Boydton' and client/city ne 'Dublin'` 
+  `client/city eq 'Boydton' or client/city eq 'Dublin'` 

### Application Insights の 変数を使用したテンプレート作成
<a name="templating-with-variables-for-application-insights"></a>

 変数編集ビューの **[クエリ]** フィールドで、次のいずれかのクエリを使用します。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレート](templates-and-variables.md#templates)」を参照してください。


|  名前  |  説明  | 
| --- | --- | 
|  AppInsightsMetricNames()  |  メトリクス名のリストを返します。 | 
|  AppInsightsGroupBys(aMetricName)  |  指定のメトリクス名の group by 句のリストを返します。 | 

 例: 
+  メトリクス名クエリ: `AppInsightsMetricNames()` 
+  メトリクス名変数で渡される: `AppInsightsGroupBys(requests/count)` 
+  テンプレート変数のチェーン: `AppInsightsGroupBys($metricnames)` 

### Application Insights アラート
<a name="application-insights-alerting"></a>

 Grafana アラートは Application Insights でサポートされます。これは Azure Alerts のサポートではありません。Grafana アラートの詳細については、「[Grafana アラート](alerts-overview.md)」を参照してください。

## Azure Log Analytics サービスのクエリ
<a name="querying-the-azure-log-analytics-service"></a>

 クエリは新しい [Azure Log Analytics (または KustoDB) クエリ言語](https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/query-language)で記述されます。Log Analytics クエリは時系列データまたはテーブルデータとして書式設定できます。

 認証情報を使用して複数のサブスクリプションにアクセスできる場合は、クエリを入力する前に適切なサブスクリプションを選択します。

### 時系列クエリ
<a name="azure-time-series-queries"></a>

 時系列クエリはグラフパネルおよび SingleStat パネルなどの他のパネル用です。各クエリには少なくとも日時列と数値列が含まれている必要があります。結果は日時列で昇順にソートする必要があります。

 次のコード例は、時間別にグループ化された集計カウントを返すクエリを示しています。

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h)
| order by TimeGenerated asc
```

 クエリには 1 つ以上の非数値/非日時列を含めることができ、それらの列はディメンションと見なされてレスポンスのラベルになります。例えば、時間、Computer、CounterName でグループ化された集計カウントを返すクエリです。

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h), Computer, CounterName
| order by TimeGenerated asc
```

 追加の数値列も選択すできます (複数のディメンションの有無は問いません)。例えば、時間、Computer、CounterName 、InstanceName でカウントと平均値を取得する場合: 

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize Samples=count(), ["Avg Value"]=avg(CounterValue)
    by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName
| order by TimeGenerated asc
```

**注記**  
 **ヒント**: 前のクエリでは、列の名前の変更に Kusto 構文と `Samples=count()``["Avg Value"]=...` が使用され、これはスペースに使用できる 2 番目の構文です。これにより Grafana が使用するメトリクス名が変更されます。その結果、シリーズの凡例やテーブル列などが指定内容と一致します。この例では、`_count` の代わりに `Samples` が表示されます。

### テーブルクエリ
<a name="azure-table-queries"></a>

 テーブルクエリは主にテーブルパネルで使用され、そこには列と行のリストが表示されます。この例では 6 つの指定列を含む行を返します。

```
AzureActivity
| where $__timeFilter()
| project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller
| order by TimeGenerated desc
```

### Log Analytics の表示名の形式設定
<a name="format-the-display-name-for-log-analytics"></a>

 デフォルトの表示名の形式は以下のとおりです。

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 これは表示名フィールドのオプションを使用してカスタマイズできます。

### Azure Log Analytics マクロ
<a name="azure-log-analytics-macros"></a>

 クエリの書き込みを容易にするために、Grafana にはクエリの where 句で使用できるマクロがいくつか用意されています。
+  `$__timeFilter()` – `TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and` `TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)` まで拡張されますが、from と to の日時は Grafana タイムピッカーの日時です。
+  `$__timeFilter(datetimeColumn)` – `datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and` `datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)` まで拡張されますが、from と to の日時は Grafana タイムピッカーの日時です。
+  `$__timeFrom()` – Grafana ピッカーの From 日時を返します。例えば、`datetime(2018-06-05T18:09:58.907Z)` などです。
+  `$__timeTo()` – Grafana ピッカーの From 日時を返します。例えば、`datetime(2018-06-05T20:09:58.907Z)` などです。
+  `$__escapeMulti($myVar)` – 不正な文字を含む複数値のテンプレート変数で使用されます。`$myVar` が文字列 `'\\grafana-vm\Network(eth0)\Total','\\hello!'` として次の 2 つの値を持つ場合、`@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'` に拡張されます。単一値変数を使用する場合はこのマクロは必要ありません。`@'\$myVar'` の代わりに変数インラインをエスケープします。
+  `$__contains(colName, $myVar)` – 複数値のテンプレート変数で使用されます。`$myVar` に値 `'value1','value2'` がある場合、`colName in ('value1','value2')` に拡張されます。

   **[すべて]** オプションを使用する場合は、**[すべてのオプションを含める]** チェックボックスをオンにし、**[すべての値のカスタム化]** フィールドに **all** の値を入力します。`$myVar` に `all` の値がある場合、マクロは代わりに `1 == 1` に拡張されます。テンプレート変数に多数のオプションがある場合、「where..in」句を大きくしないようにすると、クエリのパフォーマンスが向上します。

### Azure Log Analytics 組み込み変数
<a name="azure-log-analytics-builtin-variables"></a>

 一部の Grafana 変数では Azure Log Analytics クエリでも使用できます。
+  `$__interval` - Grafana はクエリで時間別にグループ化するために使用できる最小時間粒度を計算します。これは、`5m` や `1h` などの時間粒度を返し、これは `summarize count() by bin(TimeGenerated, $__interval)` などの bin 関数で使用できます。間隔変数の詳細については、「[間隔変数の追加](variables-types.md#add-an-interval-variable)」を参照してください。

### Azure Log Analytics の変数を使用したテンプレート作成
<a name="templating-with-variables-for-azure-log-analytics"></a>

 値のリストを返す Log Analytics クエリは、変数編集ビューの **[クエリ]** フィールドで使用できます。Log Analytics にはワークスペースのリストを返す Grafana 関数も 1 つあります。

 テンプレートとテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。


|  名前  |  説明  | 
| --- | --- | 
|  workspaces()  |  デフォルトサブスクリプションのワークスペースのリストを返します。 | 
|  workspaces(12345678-aaaa-bbbb-cccc-123456789aaa)  |  指定サブスクリプションのワークスペースのリストを返します (パラメータは引用符または引用符なしでもかまいません)。 | 

 次の表は変数クエリの例を示しています。


|  クエリ  |  説明  | 
| --- | --- | 
|  subscriptions()  |  Azure サブスクリプションのリストを返します。 | 
|  workspaces()  |  デフォルトサブスクリプションのワークスペースのリストを返します。 | 
|  workspaces("12345678-aaaa-bbbb-cccc-123456789aaa")  |  指定サブスクリプションのワークスペースのリストを返します。 | 
|  workspaces("\$1subscription")  |  サブスクリプションパラメータのテンプレート変数を使用。 | 
|  workspace("myWorkspace").Heartbeat \$1\$1 distinct Computer  |  仮想マシンのリストを返します。 | 
|  workspace("\$1workspace").Heartbeat \$1\$1 distinct Computer  |  テンプレート変数を持つ仮想マシンのリストを返します。 | 
|  workspace("\$1workspace").Perf \$1\$1 distinct ObjectName  |  Perf テーブルからオブジェクトのリストを返します。 | 
|  workspace("\$1workspace").Perf \$1\$1 where ObjectName == "\$1object" \$1\$1 distinct CounterName  |  Perf テーブルからメトリクス名のリストを返します。 | 

 次のコード例は変数を使用した時系列クエリを示しています。

```
Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where  $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc
```

### Grafana パネルから Azure Portal の Log Analytics クエリエディタへのディープリンク
<a name="deep-linking-from-grafana-panels-to-the-log-analytics-query-editor-in-azure-portal"></a>

 パネルで時系列を選択すると、**[Azure Portal で表示]** へのリンクを含むコンテキストメニューが表示されます。そのリンクを選択すると Azure ポータルで Azure Log Analytics クエリエディタが開き、その Grafana パネルからクエリを実行します。

 現在 Azure Portal にログインしていない場合は、そのリンクによってログインページが開きます。指定リンクは任意のアカウントで有効ですが、クエリで指定された Azure Log Analytics ワークスペースにアクセスできるアカウントでのみクエリが表示されます。

### Azure Log Analytics アラート
<a name="azure-log-analytics-alerting"></a>

 Grafana アラートは Application Insights でサポートされます。これは Azure Alerts のサポートではありません。Grafana ワークスペースのアラートの詳細については、「[Grafana アラート](alerts-overview.md)」を参照してください。

## Application Insights Analytics サービスのクエリ
<a name="query-the-application-insights-analytics-service"></a>

 サービスタイプを **[Insights Analytics]** に変更すると、Log Analytics サービスと似たエディタを使用できます。このサービスでは Kusto 言語も使用しているため、データのクエリ手順は [Azure Log Analytics サービスのクエリ](#querying-the-azure-log-analytics-service) と同じです。ただし、代わりに Application Insights Analytics データをクエリする場合を除きます。

# Graphite データソースに接続する
<a name="using-graphite-in-AMG"></a>

 Grafana には、メトリクス領域をすばやくナビゲートしたり、関数を追加したり、関数パラメータを変更したりできる高度な Graphite クエリエディタがあります。エディタは、あらゆる種類のグラファイトクエリを処理できます。クエリリファレンスを使用して、複雑なネストされたクエリを処理することもできます。

## Graphite 設定
<a name="graphite-settings"></a>

 Graphite 設定にアクセスするには、**[設定]** (歯車) アイコンを一時停止し、**[データソース]** を選択し、Graphite データソースを選択します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  URL  |  graphite-web または graphite-api インストールの HTTP プロトコル、IP、ポート。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。 | 
|  Auth  |  | 
|  Basic Auth  |  データソースへの基本認証を有効にします。 | 
|  User  |  基本認証のユーザー名。 | 
|  Password  |  基本認証のパスワード。 | 
|  Custom HTTP Headers  |  [ヘッダーの追加] を選択して、カスタム HTTP ヘッダーを追加します。 | 
|  Header  |  カスタムヘッダー名を入力します。 | 
|  Value  |  カスタムヘッダー値を入力します。 | 
|  Graphite details  |  | 
|  Version  |  Graphite のバージョンを選択します。 | 
|  Type  |  Graphite のタイプを選択します。 | 

 アクセスモードは、データソースへのリクエストの処理方法を制御します。他に何も記述されていない場合は、サーバーが優先されます。

### サーバーアクセスモード (デフォルト)
<a name="graphite-server-access-mode-default"></a>

 すべてのリクエストはブラウザから Amazon Managed Grafana に行われ、リクエストはデータソースに転送されるため、クロスオリジンリソース共有 (CORS) 要件を回避できます。このアクセスモードを選択する場合、URL は Amazon Managed Grafana からアクセス可能である必要があります。

### ブラウザアクセスモード
<a name="graphite-browser-access-mode"></a>

 Amazon Managed Grafana は、Graphite データソースのブラウザへの直接アクセスをサポートしていません。

## Graphite クエリエディタ
<a name="graphite-query-editor"></a>

 Grafana には、クエリの構築に役立つ Graphite 固有のクエリエディタが含まれています。

 Graphite に送信されるクエリの未加工テキストを表示するには、**[テキスト編集モードの切り替え]** (鉛筆) アイコンを選択します。

### クエリするメトリクスの選択
<a name="graphite-choose-metrics-to-query"></a>

 メトリクス空間をナビゲートするには、**[メトリクスを選択]** を選択します。操作開始後は、ポインタまたはキーボードの矢印キーを引き続き使用できます。ワイルドカード文字を選択しても続行できます。

### 関数
<a name="graphite-functions"></a>

 関数を追加するには、**[関数]** の横にあるプラスアイコンを選択します。関数を検索するか、メニューから選択できます。関数を選択すると、その関数が追加され、最初のパラメータのテキストボックスを次に操作します。パラメータを選択するとテキストボックスになり、パラメータを編集または変更できます。- 関数を削除するには、関数名に続いて x アイコンを選択します。

 `aliasByNode` などの一部の関数は、オプションの 2 番目の引数をサポートしています。引数を追加するには、最初の引数を一時停止し、表示される `+` 記号を選択します。2 番目のオプションパラメータを削除するには、パラメータを選択し、空白のままにします。続いて、エディタにより削除されます。

### ラベルのソート
<a name="graphite-sort-labels"></a>

 一貫した順序が必要な場合は、`sortByName` を使用します。これは、複数のグラフに同じラベルがあり、それらが別々にソートされ、異なる色を使用している場合に問題を生じる可能性があります。これを修正するには、`sortByName()` を使用します。

### ネストされたクエリ
<a name="graphite-nested-queries"></a>

 クエリは、クエリがある行の*文字*で参照できます (Microsoft Excel と同様）。グラフに 2 番目のクエリを追加する場合は、「\$1A」と入力して最初のクエリを参照できます。これにより、複合クエリを簡単に作成できます。

### ワイルドカード文字を使用して多くのクエリを回避する
<a name="avoiding-many-queries-by-using-wildcards"></a>

 場合によっては、同じグラフに複数の時系列をプロットしたいことがあります。例えば、マシンでの CPU の使用状況を確認することができます。最初に、`cpu.percent.user.g`、`cpu.percent.system.g` などの時系列ごとにクエリを追加してグラフを作成できます。これにより、データソースに対してクエリが *n* 件実行されますが、これは非効率的です。

 より効率的にするために、検索でワイルドカード文字を使用して、1 つのクエリですべての時系列を返すことができます。例えば、`cpu.percent.*.g`。

### テーブルまたはグラフのメトリクス名の変更
<a name="modify-the-metric-name-in-my-tables-or-charts"></a>

 `alias` 関数を使用して、Grafana テーブルまたはグラフのメトリクス名を変更します。例えば、`aliasByNode()` または `aliasSub()` を使用します。

## ポイント統合
<a name="graphite-point-consolidation"></a>

 すべての Graphite メトリクスは、Graphite がグラフ内のピクセル数よりも多くのデータポイントを返さないように統合されます。デフォルトでは、この統合は `avg` 関数を使用して行われます。Graphite consolidateBy 関数を追加することで、Graphite がメトリクスを統合する方法を制御できます。

**注記**  
 つまり、凡例の概要値 (最大、最小、合計) がすべて同時に正しくなることはありません。これらは Grafana によってクライアント側で計算されます。また、統合関数によっては、1 つまたは 2 つのみが同時に正しくなります。

## 時系列の組み合わせ
<a name="graphite-combine-time-series"></a>

 時系列を組み合わせるには、**関数**リストで**結合**を選択します。

## データ探索とタグ
<a name="data-exploration-and-tags"></a>

 Graphite では、すべてがタグです。

 データを探索するときは、以前に選択したタグを使用して残りの結果セットをフィルタリングします。データを選択するには、 `seriesByTag` 関数を使用します。この関数は、タグ式 (`=`、`!=`、`=~`、`!=~`) を使用して時系列をフィルタリングします。

 タグを選択すると、Grafana クエリビルダーが自動的にこれを実行します。

**注記**  
 **ヒント:** 正規表現の検索は、高基数タグでは遅くなる可能性があるため、最初に他のタグを使用して範囲を縮小してみてください。特定の名前または名前空間から始めると、結果を減らすことができます。

## テンプレート変数
<a name="graphite-template-variables"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

 タグ値を使用して変数を作成するには、Grafana 関数 `tags` と `tag_values` を使用します。


|  クエリ  |  説明  | 
| --- | --- | 
|  tags()  |  すべてのタグを返します。 | 
|  tags(server=\$1backend\$1\$1)  |  フィルター式に一致する連続したタグのみを返します。 | 
|  tag\$1values(server)  |  指定されたタグのタグ値を返します。 | 
|  tag\$1values(server, server=\$1backend\$1\$1)  |  これらの式に一致する一連の指定されたタグで発生するフィルター処理されたタグ値を返します。 | 
|  tag\$1values(server, server=\$1backend\$1\$1, app=\$1\$1\$1apps:regex\$1)  |  複数のフィルター式と式には、他の変数を含めることができます。 | 

 詳細については、「[タグのオートコンプリート API に関する Graphite ドキュメント](https://graphite.readthedocs.io/en/latest/tags.html#auto-complete-support)」を参照してください。

### クエリ変数
<a name="graphite-query-variable"></a>

 クエリフィールドで指定するクエリは、メトリクス検索タイプのクエリである必要があります。例えば、`prod.servers.*` などのクエリは、ワイルドカード位置に存在する可能性のあるすべての値で変数を埋めます。

 定義で他の変数を使用するネストされた変数を作成することもできます。例えば、`apps.$app.servers.*` はクエリ定義で `$app` 変数を使用します。

#### `__searchFilter` を使用してクエリ変数の結果をフィルタリングする
<a name="using-__searchfilter-to-filter-query-variable-results"></a>

 クエリフィールドで `__searchFilter` を使用すると、ドロップダウン選択ボックスに入力した内容に基づいてクエリ結果がフィルタリングされます。何も入力しない場合、`__searchFilter` のデフォルト値は `*` で、正規表現の一部として使用する場合は `` です。

 次の例は、`__searchFilter` をクエリフィールドの一部として使用してユーザーがドロップダウン選択ボックスにテキストを入力するときに `server` を検索できるようにします。

 クエリ 

```
apps.$app.servers.$__searchFilter
```

 TagValues 

```
tag_values(server, server=~${__searchFilter:regex})
```

### 変数の使用
<a name="variable-usage"></a>

 変数は、メトリクスノードパスで、または関数のパラメータとして使用できます。

 2 つの構文があります。
+  `$<varname>` 例: apps.frontend.\$1server.requests.count 
+  `${varname}` 例: apps.frontend.\$1\$1server\$1.requests.count 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。`my.server${serverNumber}.count` などの式で 2 番目の構文を使用します。

### タグクエリでの変数の使用
<a name="variable-usage-in-tag-queries"></a>

 タグクエリの複数値変数は、変数 `{var:regex}` に対して Grafana 5.0 で導入された高度なフォーマット構文を使用します。タグ以外のクエリでは、複数値変数のデフォルトの glob 形式が使用されます。

 次のコード例は、正規表現フォーマットで Equal Tilde 演算子 `=~` を使用するタグ式を示しています。

```
server=~${servers:regex}
```

 詳細については、「[高度な変数フォーマットオプション](templates-and-variables.md#advanced-variable-format-options)」を参照してください。

## ‏注釈
<a name="graphite-annotations"></a>

 注釈を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 Graphite は、注釈をクエリする 2 つの方法をサポートしています。
+ 通常のメトリクスクエリ。この方法では、**Graphite クエリ**テキストボックスを使用します。
+ Graphite イベントクエリ。この方法では、`Graphite event tags` テキストボックスを使用し、タグまたはワイルドカード文字を指定します (空のままにしておいても機能します）。

# Google Cloud Monitoring データソースへの接続
<a name="using-google-cloud-monitoring-in-grafana"></a>

**注記**  
 以前のバージョンの Grafana では、このデータソースの名前は Google Stackdriver でした。

 Google Cloud Monitoring メトリクスのダッシュボードを構築できるようにするため、Google Cloud Monitoring データソースを追加します。

## データソースの追加
<a name="google-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  サイドメニューの **[ダッシュボード]** リンクの下に、**[データソース]** リンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[Google Cloud Monitoring]** を選択します。

1.  サービスアカウントのキーファイルにアップロードまたは貼り付けます。サービスアカウントのキーファイルを作成する手順については、このドキュメントの後半を参照してください。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されない場合、現在のユーザーには `Admin` ロールがありません。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これはパネルとクエリでデータソースを参照する方法です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Service Account Key  |  GCP プロジェクトのサービスアカウントキーファイル。作成方法については、このドキュメントの後半の手順を参照してください。 | 

## 認証
<a name="google-authentication"></a>

 Google Cloud Monitoring プラグインの認証には 2 つの方法があります。
+ Google JWT ファイルのアップロード
+ Google メタデータサーバーから認証情報を自動的に取得

後者のオプションは、GCE 仮想マシンで Grafana を実行しているときにのみ使用できます。

### Google サービスアカウントのキーファイルの使用
<a name="using-a-google-service-account-key-file"></a>

 Google Cloud Monitoring API で認証するには、データを表示するプロジェクトの Google Cloud Platform (GCP) サービスのアカウントを作成する必要があります。Grafana データソースは 1 つの GCP プロジェクトと統合されます。複数の GCP プロジェクトのデータを視覚化するには、GCP プロジェクトごとに 1 つのデータソースを作成する必要があります。

#### API の有効化
<a name="google-enable-apis"></a>

 最初に次の API を有効にする必要があります。
+  [Monitoring API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) 
+  [Cloud Resource Manager API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com) 

 一覧されているリンクを選択してから **[有効化]** ボタンを選択します。

#### プロジェクトの GCP サービスアカウントの作成
<a name="create-a-gcp-service-account-for-a-project"></a>

1.  [API とサービスの認証情報ページ](https://console.cloud.google.com/apis/credentials)に移動します。

1.  **[認証情報の作成]** ドロップダウン/ボタンを選択して **[サービスアカウントキー]** オプションを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1button.png" class="docs-image–no-shadow" caption="サービスアカウントの作成ボタン" >\$1\$1 

1.  **[サービスアカウントキーの作成]** ページで、キータイプ `JSON` を選択します。次に、**[サービスアカウント]** ドロップダウンリストで、**[新しいサービスアカウント]** オプションを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1key.png" class="docs-image–no-shadow" caption="サービスアカウントキーの作成" >\$1\$1 

1.  いくつかの新しいフィールドが表示されます。**[サービスアカウント名]** フィールドにサービスアカウントの名前を入力してから、**[ロール]** ドロップダウンリストから **[モニタリングビューワー]** ロールを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1service\$1account\$1choose\$1role.png" class="docs-image–no-shadow" caption="ロールを選択" >\$1\$1 

1.  **[サーバーの作成]** ボタンを選択します。JSON キーファイルが作成されてコンピュータにダウンロードされます。このファイルは Google Cloud Monitoring データへのアクセスを許可するためのものですから、安全な場所に保存してください。

1.  データソース **[設定]** ページで Grafana にアップロードします。ファイルをアップロード、またはファイルの内容に貼り付けることができます。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1upload\$1key.png" class="docs-image–no-shadow" caption="サービスのキーファイルを Grafana にアップロード" >\$1\$1 

1.  ファイルの内容は暗号化されて Grafana データベースに保存されます。ファイルをアップロードした後は必ず保存してください。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1key\$1uploaded.png" class="docs-image–no-shadow" caption="サービスのキーファイルを Grafana にアップロード" >\$1\$1 

## クエリエディタの使用
<a name="google-using-the-query-editor"></a>

 Google Cloud Monitoring クエリエディタでは、**メトリクス**と**サービスレベル目標 (SLO)** の 2 種類のクエリを構築できます。どちらのタイプも時系列データを返します。

### メトリクスクエリ
<a name="google-metric-queries"></a>

 メトリクスクエリエディタでは、メトリクスを選択して、ラベルと時間ごとにグループ化/集計し、フィルターを使用して結果に含める時系列を指定できます。

 メトリクスクエリを作成するには、以下の手順に従います。

1.  **クエリタイプ**のドロップダウンリストで オプションの**メトリクス**を選択します。

1.  ドロップダウンリストから **[プロジェクト]** を選択します。

1.  **サービス**のドロップダウンリストから Google Cloud Platform サービスを選択します。

1.  **メトリクス**のドロップダウンリストからメトリクスを選択します。

1.  句によってフィルターやグループを追加または削除するには、フィルターおよびグループ化セクションのプラスとマイナスアイコンを使用します。この手順は省略可能です。

 Google Cloud Monitoring メトリクスにはさまざまな種類 (GAUGE、DELTA、CUMULATIVE) があり、これらの種類ではさまざまな集約オプション (リデューサーとアライナー) がサポートされます。Grafana クエリエディタには選択したメトリクスで使用可能な集約方法のリストが表示され、メトリクスを選択するときにデフォルトのリデューサーとアライナーがセットされます。Y 軸の単位もクエリエディタが自動的に選択します。

#### フィルター
<a name="google-filter"></a>

 フィルターを追加するには、プラスアイコンを選択して、フィルタリングするフィールドを選択し、フィルター値を入力します。たとえば、`instance_name = grafana-1` と入力します。フィルターを削除するには、フィルター名を選択して `--remove filter--` を選択します。

##### 単純なワイルドカード文字
<a name="google-simple-wildcards"></a>

 演算子を `=` または `!=` に設定すると、フィルター値のフィールドにワイルドカード文字を追加できます。例えば、`us-*` は「us-」で始まるすべての値をキャプチャし、`*central-a` は「central-a」で終わるすべての値をキャプチャします。`*-central-*` は、`central-` の部分文字列を持つすべての値をキャプチャします。単純なワイルドカード文字は正規表現よりも安価です。

##### 正規表現
<a name="google-regular-expressions"></a>

 演算子を `=~` または `!=~` に設定すると、フィルター値のフィールドに正規表現を追加できます。例えば、`us-central[1-3]-[af]` は「us-central」で始まり、1～3 の範囲の数値、ダッシュ、「a」または「f」のいずれかが続くすべての値に一致します。正規表現を作成するときは、先頭のスラッシュと末尾のスラッシュは必要ありません。

#### 集計
<a name="google-aggregation"></a>

 集計フィールドでは一般的な統計に基づいて時系列を組み合わせることができます。集計の詳細については、「[集計オプション](https://cloud.google.com/monitoring/charts/metrics-selector#aggregation-options)」を参照してください。

 `Aligner` フィールドでは、同じグループの後に複数の時系列を時間間隔で配置できます。アライナーの詳細については、「[アライメントメトリクスセレクタ](https://cloud.google.com/monitoring/charts/metrics-selector#alignment)」を参照してください。

##### アライメント期間と時間によるグループ化
<a name="alignment-periodgroup-by-time"></a>

 集計が選択されている場合、`Alignment Period` はメトリクスを時間ごとにグループ化します。デフォルトでは GCP Google Cloud Monitoring のデフォルトグループを使用します (これにより、Grafana のグラフと Google Cloud Monitoring UI のグラフを比較できます)。そのオプションは `cloud monitoring auto` と呼ばれ、デフォルトは次のとおりです。
+  時間範囲が 23 時間未満の場合は 1m 
+  時間範囲が 23 時間以上 6 日未満の場合は 5m 
+  時間範囲が 6 日以上の場合は 1h 

 別の自動オプションは `grafana auto` です。このオプションでは、選択した時間範囲とグラフパネルの幅に応じて、自動的に時間ごとにグループが設定されます。詳細については、「[間隔変数の追加](variables-types.md#add-an-interval-variable)」を参照してください。

 また、`1h`や `1d` など、グループ化する固定時間の間隔を選択することもできます。

#### グループ化の条件
<a name="google-group-by"></a>

 リソースラベルまたはメトリクスラベルでグループ化して時系列の数を減らし、グループごとに結果を集計します。例えば、instance\$1name でグループ化してコンピューティングインスタンスの集計メトリクスを表示します。

##### メタデータラベル
<a name="google-metadata-labels"></a>

 リソースメタデータラベルには Google Cloud のリソースを一意に識別するための情報が含まれています。メタデータラベルは、時系列リクエストの **[グループ化]** セグメントの一部である場合にのみ、時系列レスポンスで返されます。メタデータラベルを取得するための API がないため、選択したサービスとメトリクスで使用できるメタデータラベルを使用して、ドロップダウンリストでグループに入力することはできません。ただし、**[グループ化]** フィールドのドロップダウンリストには、一般的なシステムラベルの定義済みリストが用意されています。

 ユーザーラベルは事前に定義することはできませんが、**[グループ化]** フィールドには手動で入力できます。メタデータラベル、ユーザーラベル、またはシステムラベルが **[グループ化]** セグメントに含まれている場合は、それに基づいてフィルターを作成し、**[エイリアス]** フィールドでその値を展開できます。

#### エイリアスパターン
<a name="google-alias-patterns"></a>

 [エイリアス方法] フィールドを使用すると凡例キーの形式を制御できます。デフォルトではメトリクス名とラベルが表示されます。これは長くて読みにくくなる場合があります。エイリアスフィールドで次のパターンを使用して、お好みの方法で凡例キーをフォーマットできます。

#### メトリクスタイプのパターン
<a name="metric-type-patterns"></a>


|  エイリアスパターン  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1metric.type\$1\$1  |  完全なメトリクスタイプを返します。 |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  メトリクス名の部分を返します。 |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  サービスのパートを返します。 |  compute  | 

#### ラベルパターン
<a name="google-label-patterns"></a>

 [グループ化] ドロップダウンリストには、メトリクスのリストとメトリクスのリソースラベルが表示されます。エイリアスパターンを使用すると、これらを凡例キーに含めることができます。


|  エイリアスパターン形式  |  説明  |  エイリアスパターンの例  |  結果の例  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.label.xxx\$1\$1  |  メトリクスラベルの値を返します。 |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  リソースラベルの値を返します。 |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 
|  \$1\$1metadata.system\$1labels.xxx\$1\$1  |  メタデータシステムラベルの値を返します。 |  \$1\$1metadata.system\$1labels.name\$1\$1  |  grafana  | 
|  \$1\$1metadata.user\$1labels.xxx\$1\$1  |  メタデータユーザーラベルの値を返します。 |  \$1\$1metadata.user\$1labels.tag\$1\$1  |  production  | 

 エイリアス方法の例: `{{metric.type}} - {{metric.label.instance_name}}` 

 結果の例: `compute.googleapis.com/instance/cpu/usage_time - server1-prod` 

 また、モニタリング対象のリソースタイプの名前を解決することもできます。


|  エイリアスパターン形式  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1resource.type\$1\$1  |  モニタリング対象のリソースタイプの名前を返します。 |  gce\$1instance  | 

 エイリアス方法の例: `{{resource.type}} - {{metric.type}}` 

 結果の例: `gce_instance - compute.googleapis.com/instance/cpu/usage_time` 

### SLO クエリ
<a name="slo-service-level-objective-queries"></a>

**注記**  
 SLO クエリは Grafana v7.0 以降でのみ使用できます 

Google Cloud Monitoring データソースの SLO クエリビルダーを使用すると、SLO データを時系列形式で表示できます。サービスモニタリングの基本概念を理解するには、Google Cloud Monitoring の[公式ドキュメント](https://cloud.google.com/monitoring/service-monitoring)を参照してください。

#### SLO クエリの作成
<a name="how-to-create-an-slo-query"></a>

 SLO クエリを作成するには、以下の手順に従います。

1.  **[クエリタイプ]** ドロップダウンリストから **[サービスレベル目標 (SLO)]** オプションを選択します。

1.  ドロップダウンリストから **[プロジェクト]** を選択します。

1.  **[サービス]** ドロップダウンリストから [[SLO サービス]](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services) を選択します。

1.  **[SLO]** ドロップダウンリストから [[SLO]](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services.serviceLevelObjectives) を選択します。

1.  **[セレクタ]** ドロップダウンリストから [[時系列セレクタ]](https://cloud.google.com/monitoring/service-monitoring/timeseries-selectors#ts-selector-list) を選択します。

 時系列セレクタのフレンドリ名が Grafana に表示されます。次の表は、サービスモニタリングのドキュメントで使用される、わかりやすい名前からシステム名へのマッピングを示しています。


|  セレクタのドロップダウンリストの値  |  使用する対応時系列セレクタ  | 
| --- | --- | 
|  SLI の値  |  select\$1slo\$1health  | 
|  SLO コンプライアンス  |  select\$1slo\$1compliance  | 
|  残りの SLO エラーバジェット  |  select\$1slo\$1budget\$1fraction  | 

#### SLO クエリのエイリアスパターン
<a name="alias-patterns-for-slo-queries"></a>

 [エイリアス方法] フィールドを使用すると SLO クエリの凡例キーの形式を制御できます。


|  エイリアスパターン  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1project\$1\$1  |  GCP プロジェクト名を返します。 |  myProject  | 
|  \$1\$1service\$1\$1  |  サービス名を返します。 |  myService  | 
|  \$1\$1slo\$1\$1  |  SLO を返します。 |  latency-slo  | 
|  \$1\$1selector\$1\$1  |  セレクタを返します。 |  select\$1slo\$1health  | 

#### SLO クエリのアライメント期間と時間によるグループ化
<a name="alignment-periodgroup-by-time-for-slo-queries"></a>

 SLO クエリはメトリクスクエリと同じアライメント期間機能を使用します。詳細については、「[メトリクスクエリ](#google-metric-queries)」を参照してください。

## テンプレート作成
<a name="google-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="google-query-variable"></a>

 *クエリ*タイプの変数を使用すると、さまざまなタイプのデータに対して Google Cloud Monitoring をクエリできます。Google Cloud Monitoring データソースプラグインには次の `Query Types` が用意されています。


|  名前  |  説明  | 
| --- | --- | 
|  Metric Types  |  指定のサービスで使用できるメトリクスタイプ名のリストを返します。 | 
|  Labels Keys  |  指定のテーブルの metric label および resource label のキーのリストを返します。 | 
|  Labels Values  |  指定のメトリクス内のラベルの値のリストを返します。 | 
|  Resource Types  |  指定のメトリクスのリソースタイプのリストを返します。 | 
|  Aggregations  |  指定のメトリクスの集計のリスト (シリーズリデューサー間) を返します。 | 
|  Aligners  |  指定のメトリクスのアライナーのリスト (シリーズアライナーごと) を返します。 | 
|  Alignment periods  |  Grafana の Google Cloud Monitoring クエリエディタで使用できる、すべてのアライメント期間のリストを返します。 | 
|  Selectors  |  SLO (サービスレベル目標) クエリで使用できるセレクタのリストを返します。 | 
|  SLO Services  |  SLO クエリで使用できる Service Monitoring サービスのリストを返します。 | 
|  Service Level Objectives (SLO)  |  指定の SLO サービスの SLO のリストを返します。 | 

### クエリでの変数の使用
<a name="google-using-variables-in-queries"></a>

 2 つの構文があります。
+  `$<varname>`例: `metric.label.$metric_label` 
+  `[[varname]]`例: `metric.label.[[metric_label]]` 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。*[複数値]*オプションまたは*[すべての値を含める]*オプションが有効になっている場合、Grafana はラベルをプレーンテキストから正規表現互換の文字列に変換します。つまり、`=` の代わりに `=~` を使用する必要があります。

## ‏注釈
<a name="google-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。注釈のレンダリングは高価であるため、返される行数を制限することは重要です。Google Cloud Monitoring の注釈とイベントを表示はまだサポートされていませんが、Google Cloud Monitoring の[カスタムメトリクス](https://cloud.google.com/monitoring/custom-metrics/)を使用するとうまく機能します。

注釈の詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 注釈のクエリエディタを使用すると、メトリクスとフィルターを選択できます。**[タイトル]** フィールドと **[テキスト]** フィールドはテンプレート化をサポートしており、クエリから返されるデータを使用できます。例えば、[タイトル] フィールドには次のテキストを含めることができます。

 `{{metric.type}} has value: {{metric.value}}` 

 結果の例: `monitoring.googleapis.com/uptime_check/http_status has this value: 502` 

### 注釈クエリエディタのパターン
<a name="patterns-for-the-annotation-query-editor"></a>


|  エイリアスパターン形式  |  説明  |  エイリアスパターンの例  |  結果の例  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.value\$1\$1  |  メトリクス/ポイントの値。 |  \$1\$1metric.value\$1\$1  |  555  | 
|  \$1\$1metric.type\$1\$1  |  完全なメトリクスタイプを返します。 |  \$1\$1metric.type\$1\$1  |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  メトリクス名の部分を返します。 |  \$1\$1metric.name\$1\$1  |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  サービスのパートを返します。 |  \$1\$1metric.service\$1\$1  |  compute  | 
|  \$1\$1metric.label.xxx\$1\$1  |  メトリクスラベルの値を返します。 |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  リソースラベルの値を返します。 |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 

## Grafana パネルから Google Cloud コンソールのメトリクスエクスプローラーへのディープリンク
<a name="deep-linking-from-grafana-panels-to-the-metrics-explorer-in-google-cloud-console"></a>

**注記**  
 この機能はメトリクスクエリでのみ使用できます。

 パネルで時系列を選択すると、Google Cloud コンソールの Metrics Explorer で表示へのリンクを含むコンテキストメニューが表示されます。リンクを選択すると、Google Cloud コンソールで Metrics Explorer が開き、そこの Grafana パネルからクエリを実行します。リンクを使用すると、まず Google Account Chooser に移動します。アカウントの選択に成功すると、そのユーザーは Metrics Explorer にリダイレクトされます。指定リンクは任意のアカウントで有効ですが、クエリで指定された GCP プロジェクトにアクセスできるアカウントでのみクエリが表示されます。

# InfluxDB ソースデータベースに接続するには
<a name="using-influxdb-in-AMG"></a>

 Grafana には、InfluxDB 用の機能豊富なデータソースプラグインが付属しています。プラグインにはカスタムクエリエディタが含まれており、注釈とクエリテンプレートをサポートしています。

## データソースの追加
<a name="influxdb-add-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  リンクの下にあるサイドメニューで、**[ダッシュボード]** に**[データソース]** という名前のリンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[InfluxDB]** を選択します。

1.  **[Query Language]** (クエリ言語) リストから **InfluxQL** または **Flux** を選択します。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されていない場合は、現在のユーザーに `Admin` ロールが付与されていないことを意味します。

# Jaeger データソースへの接続
<a name="jaeger-data-source"></a>

 Jaeger データソースにはオープンソースのエンドツーエンド分散トレースが用意されています。

## データソースの追加
<a name="jaeger-adding-the-data-source"></a>

 Jaeger 設定にアクセスするには、**[設定]** (歯車) アイコンを選択してから **[データソース]** を選択し、**[Jaeger]** を選択します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これはパネル、クエリ、Explore でデータソースを表示する方法です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  URL  |  Jaeger インスタンスの URL。例: http://localhost:16686。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。 | 
|  Basic Auth  |  Jaeger データソースへの基本認証を有効にします。 | 
|  User  |  基本認証のユーザー名。 | 
|  Password  |  基本認証のパスワード。 | 

## クエリのトレース
<a name="jaeger-query-traces"></a>

 Explore を使用して Jaeger からのトレースをクエリし表示できます。詳細については、「[Explore](explore.md)」を参照してください。

 Jaeger クエリエディタを使用すると、トレース ID で直接クエリを実行、またはトレースセレクターからトレースを選択できます。トレース ID でクエリするには、ID をテキスト入力に挿入します。

 トレースセレクタを使用して、Explore で選択した時間範囲にログ記録されたすべてのトレースから特定のトレースを選択します。トレースセレクターには 3 つのレベルのネストがあります: 1. これはユーザーが関心を持つサービスです。1. 特定のオペレーションは選択済みのサービスの一部です。1. 選択したオペレーションが発生した特定のトレースであり、ルートオペレーション名とトレース期間で表されます。

## ログからトレース ID へのリンク
<a name="linking-trace-id-from-logs"></a>

 Loki のログから Jaeger トレースにリンクするためには、内部リンクを使用して派生フィールドを設定します。詳細については、「[派生フィールド](using-loki-in-AMG.md#loki-derived-fields)」を参照してください。

# Loki データソースに接続するには
<a name="using-loki-in-AMG"></a>

 Loki データソースは、Grafana のログ集約システムである Loki へのアクセスを提供します。

## データソースの追加
<a name="loki-adding-the-data-source"></a>

1.  Grafana ワークスペースを開き、ログインしていることを確認します。

1.  **[設定]** リンクのサイドメニューに **[データソース]** リンクがあります。

1.  上部の **[データソースの追加]** ボタンを選択します。

1.  データソースのリストから **Loki** を選択します。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されていない場合は、現在のユーザーに `Admin` ロールが付与されていないことを意味します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これはパネル、クエリ、Explore でデータソースを表示する方法です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  URL  | Loki インスタンスの URL。例: http://localhost:3100。これは、Amazon EC2 ホストの URL、Amazon EKS クラスターの前の Application Load Balancer、または Loki インスタンスのその他の URL です。 | 
|  Maximum lines  |  Loki によって返されるログの行数の上限 (デフォルトは 1000 行)。Explore でログを表示するときにブラウザが遅い場合は減らします。 | 

### 派生フィールド
<a name="loki-derived-fields"></a>

 *派生フィールド*の設定を使用して、次のことを行うことができます。
+  ログメッセージから解析されたフィールドを追加します。
+  フィールドの値を使用するリンクを追加します。

 この機能を使用して、ログから直接トレースバックエンドにリンクしたり、ログラインに userId がある場合はユーザープロファイルページにリンクしたりできます。これらのリンクはログの詳細に表示されます。詳細については、「[ラベルと検出されたフィールド](explore.md#labels-and-detected-fields)」を参照してください。

各派生フィールドは以下で構成されます。
+  **名前** – ログの詳細にラベルとして表示されます。
+  **正規表現** – ログメッセージで実行され、その一部を新しいフィールドの値としてキャプチャする正規表現パターン。1 つのキャプチャグループのみを含めることができます。
+  **URL/クエリ** – リンクが外部である場合は、完全なリンク URL を入力します。リンクが内部リンクの場合、この入力はターゲットデータソースのクエリとして機能します。どちらの場合も、`${__value.raw }` マクロを使用してフィールドから値を補間できます。
+  **内部リンク** – リンクが内部か外部かを選択します。内部リンクの場合、データソースセレクタを使用すると、ターゲットデータソースを選択できます。データソースのトレースのみがサポートされています。

 デバッグセクションを使用して、フィールドが抽出する内容と URL がどのように補間されるかを確認できます。**[ログメッセージの例を表示]** を選択して、ログメッセージを入力できるテキスト領域を表示します。

 ログの詳細に表示されるリンクを含む新しいフィールド。

## ログのクエリ
<a name="loki-querying-logs"></a>

 Loki からのログデータのクエリと表示は、Explorer 経由か、視覚化のログパネルで利用できます。Loki データソースを選択し、LogQL クエリを入力してログを表示します。LogQL の詳細については、「[LogQL](https://grafana.com/docs/loki/latest/logql/)」を参照してください。

### ログクエリ
<a name="loki-log-queries"></a>

 ログクエリは、**ログストリームセレクタ**と**検索式 **の 2 つの部分で構成されます。パフォーマンス上の理由から、まずログストリームのログラベルを選択する必要があります。

 クエリフィールドの横にある Logs Explorer (**[ログラベル]** ボタン) には、使用可能なログストリームのラベルのリストが表示されます。クエリを記述する別の方法は、クエリフィールドの自動入力を使用することです。まず、左の中括弧 `{` を入力すると、オートコンプリートメニューにラベルのリストが表示されます。**Enter** キーを押してクエリを実行します。

 結果が返されると、ログパネルにログ行のリストと棒グラフが表示されます。x 軸は時間、y 軸は頻度またはカウントを示します。

### ログストリームセレクタ
<a name="log-stream-selector"></a>

 クエリ式のラベル部分については、それを中括弧 `{}` で囲み、キー値の構文を使用してラベルを選択します。複数のラベル式はカンマで区切ります。

 `{app="mysql",name="mysql-backup"}` 

 以下のラベルマッチングオペレーションは現在サポートされています。
+  `=` 完全に等しい。
+  `!=` 等しくない。
+  `=~` 正規表現一致。
+  `!~` 正規表現に一致しない。

 例: 
+  `{name=~"mysql.+"}` 
+  `{name!~"mysql.+"}` 

 ラベルセレクタを追加するもう 1 つの方法は、テーブルセクションにあります。ラベルの横にある**フィルター**を選択して、クエリ式にラベルを追加します。これは複数のクエリでも機能します。複数のクエリの場合、各クエリにラベルセレクタを追加します。

### Search 式
<a name="loki-search-expression"></a>

 ログストリームセレクタを記述した後、検索式を記述することで、結果をさらにフィルタリングできます。検索式は、単なるテキスト式または正規表現にすることができます。

 クエリの例: 
+  `{job="mysql"} |= "error"` 
+  `{name="kafka"} |~ "tsdb-ops.*io:2003"` 
+  `{instance=~"kafka-[23]",name="kafka"} != "kafka.server:type=ReplicaManager"` 

 フィルター演算子は連鎖でき、式を順次フィルタリングします。結果のログラインは、すべてのフィルターに適用されます。

 例 

 `{job="mysql"} |= "error" != "timeout"` 

 現在、次のフィルタータイプがサポートされています。
+  `|=` 行には文字列が含まれている。
+  `!=` 行に文字列が含まれていない。
+  `|~` 行が正規表現と一致する。
+  `!~` 行が正規表現パターンに一致しない。

**注記**  
 Loki のクエリ言語である LogQL の詳細については、「[Loki LogQL](https://grafana.com/docs/loki/latest/logql/)」を参照してください。

## ログのコンテキスト
<a name="loki-log-context"></a>

 上記の検索式を使用すると、フィルタリングされた結果を囲むコンテキストを取得できるようになりました。フィルタリングされた行の `Show Context` リンクを選択すると、関心のあるログメッセージの前後に発生したログメッセージを調査できます。

## テンプレート作成
<a name="loki-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## ‏注釈
<a name="loki-annotations"></a>

 非メトリクス Loki クエリは、注釈のソースとして使用できます。ログコンテンツは注釈テキストとして使用され、ログストリームラベルはタグとして使用されるため、追加のマッピングは必要ありません。

# Microsoft SQL Server データソースに接続する
<a name="using-microsoft-sql-server-in-AMG"></a>

 Microsoft SQL Server (MSSQL) データソースを使用して、Microsoft Azure SQL Database を含む Microsoft SQL Server 2005 以降からのデータをクエリおよび視覚化します。

**重要**  
Grafana バージョン 8.0 は、Microsoft SQL Server、Postgres、MySQL のデータフレームの基盤となるデータ構造を変更します。その結果、時系列のクエリ結果が幅広い形式で返されます。詳細については、Grafana データフレームドキュメントの「[ワイドフォーマット](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)」を参照してください。  
視覚エフェクトを以前と同じように機能させるには、手動による移行が必要になる場合があります。1 つの解決策は、Github の 「[Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534)」に記載されています。

## データソースの追加
<a name="mssql-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  リンク下のサイドメニューの **[設定]** に、**[データソース]** リンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[Microsoft SQL Server]** を選択します。

### データソースオプション
<a name="mssql-data-source-options"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Host  |  MSSQL インスタンスの IP アドレス/ホスト名とオプションのポート。ポートを省略すると、デフォルトのポート 1433 が使用されます。 | 
|  Database  |  MSSQL データベースの名前。 | 
|  User  |  データベースユーザーのログイン/ユーザー名。 | 
|  Password  |  データベースユーザーのパスワード。 | 
|  Encrypt  |  このオプションは、安全な SSL TCP/IP 接続をサーバーとネゴシエートするかどうか、またはどの程度までネゴシエートするかを決定します。デフォルトは false です(Grafana v5.4 以降)。 | 
|  Max open  |  データベースへのオープン接続の最大数。デフォルトは unlimited です (Grafana v5.4 以降)。 | 
|  Max idle  |  アイドル接続プールの最大接続数。デフォルトは 2 です (Grafana v5.4 以降)。 | 
|  Max lifetime  |  接続を再利用できる秒単位の最大時間。デフォルトは 14400/4 時間です。 | 

### 最小時間間隔
<a name="mssql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 変数の下限。データを 1 分ごとに書き込む場合は `1m` など、書き込み頻度に設定することをお勧めします。このオプションは、[Data Source] (データソース) オプションのダッシュボードパネルで上書き/設定することもできます。この値は、`1m` (1 分) や `30s` (30 秒) など、有効な時間識別子が続く数値としてフォーマットする**必要があります**。以下の時間識別子がサポートされています。


|  識別子  |  説明  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  日  | 
|  h  |  時間  | 
|  m  |  分  | 
|  s  |  秒  | 
|  ms  |  ミリ秒  | 

### データベースユーザーのアクセス許可
<a name="mssql-database-user-permissions-important"></a>

**重要**  
 データソースを追加するときに指定するデータベースユーザーには、クエリする指定されたデータベースとテーブルに対してのみ SELECT アクセス許可を付与する必要があります。Grafana は、クエリが安全であることを検証しません。クエリには任意の SQL ステートメントを含めることができます。例えば、 `DELETE FROM user;` や`DROP TABLE user;` などのステートメントが実行されます。これを防ぐために、アクセス許可が制限された特定の MSSQL ユーザーを作成することを強くお勧めします。

 次のコード例は、アクセス許可が制限された特定の MSSQL ユーザーの作成を示しています。

```
 CREATE USER grafanareader WITH PASSWORD 'password'
 GRANT SELECT ON dbo.YourTable3 TO grafanareader
```

 ユーザーがパブリックロールから不要なアクセス許可を付与されていないことを確認します。

### 既知の問題
<a name="mssql-known-issues"></a>

 2008 や 2008R2 などの古いバージョンの Microsoft SQL Server を使用している場合は、暗号化を無効にしないと接続できないことがあります。可能な場合は、最適な互換性を得るために利用可能な最新のサービスパックを適用することをお勧めします。

## クエリエディタ
<a name="mssql-query-editor"></a>

 MSSQL クエリエディタは、Graph、Singlestat、または Table パネルの編集モードの [メトリクス] タブにあります。パネルタイトルを選択し、[編集] を選択して編集モードに入ります。エディタでは、視覚化するデータを選択する SQL クエリを定義できます。

1.  *[Format as]* `Time series` (Graph または Singlestat パネルなどで使用) または `Table` (Table パネルなどで使用) を選択します。

1.  これは、SQL クエリを記述する実際のエディタです。

1.  クエリエディタの下に MSSQL のヘルプセクションを表示します。

1.  実行された SQL クエリを表示します。クエリが正常に実行された後、最初に使用可能になります。

1.  追加のクエリエディターが表示される場所に、追加のクエリを追加します。

## マクロ
<a name="mssql-macros"></a>

 構文を簡素化し、日付範囲フィルターなどの動的部分を許可するため、クエリにマクロを含めることができます。


|  マクロの例  |  説明  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  列の名前を時間 に変更する式に置き換えられます。例えば、dateColumn が時間に置き換えられます。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  DATETIME 列タイプを Unix タイムスタンプに変換し、名前を時間 に変更する式に置き換えられます。例えば、DATEDIFF(second, "1970-01-01", dateColumn) が時間に置き換えられます。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  指定された列名を使用して時間範囲フィルターに置き換えられます。例えば、dateColumn BETWEEN "2017-04-21T05:01:17Z" AND "2017-04-21T05:06:17Z"です。 | 
|  \$1\$1\$1timeFrom()  |  現在アクティブな時間選択の開始に置き換えられます。例えば、"2017-04-21T05:01:17Z" です。 | 
|  \$1\$1\$1timeTo()  |  現在アクティブな時間選択の終了に置き換えられます。例えば、"2017-04-21T05:06:17Z" です。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m'[, fillvalue])  |  GROUP BY 句で使用できる式に置き換えられます。[fillValue] に [NULL] または[浮動値]を指定すると、時間範囲内の空のシリーズにその値が自動的に入力されます。例えば、CAST(ROUND(DATEDIFF(second, "1970-01-01", time\$1column)/300.0, 0) as bigint)\$1300 です。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  前述と同じですが、fill パラメーターがあるため、その系列の欠落しているポイントは grafana によって追加され、0 が値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  上記と同じですが、NULL は欠落ポイントの値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  上記と同じですが、その系列の前の値がフィル値として使用されます。まだ値が見つからない場合は NULL が使用されます (Grafana 5.3 以降でのみ使用可能) 。 | 

 クエリエディタには、パネル編集モードでクエリが実行された後に表示される**[生成 SQL]** リンクがあります。これを選択すると、実行された未加工の補間 SQL 文字列が展開されて表示されます。

## テーブルクエリ
<a name="mssql-table-queries"></a>

 クエリオプションが**[Format as]****[テーブル]**として設定されている場合、基本的に任意のタイプの SQL クエリを実行できます。テーブルパネルには、クエリが返す列と行の結果が自動的に表示されます。

 次のコード例は、データベーステーブルを示しています。

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE [mssql_types] (
  c_bit bit, c_tinyint tinyint, c_smallint smallint, c_int int, c_bigint bigint, c_money money, c_smallmoney smallmoney, c_numeric numeric(10,5),
  c_real real, c_decimal decimal(10,2), c_float float,
  c_char char(10), c_varchar varchar(10), c_text text,
  c_nchar nchar(12), c_nvarchar nvarchar(12), c_ntext ntext,
  c_datetime datetime,  c_datetime2 datetime2, c_smalldatetime smalldatetime, c_date date, c_time time, c_datetimeoffset datetimeoffset
)

INSERT INTO [mssql_types]
SELECT
  1, 5, 20020, 980300, 1420070400, '$20000.15', '£2.15', 12345.12,
  1.11, 2.22, 3.33,
  'char10', 'varchar10', 'text',
  N'☺nchar12☺', N'☺nvarchar12☺', N'☺text☺',
  GETDATE(), CAST(GETDATE() AS DATETIME2), CAST(GETDATE() AS SMALLDATETIME), CAST(GETDATE() AS DATE), CAST(GETDATE() AS TIME), SWITCHOFFSET(CAST(GETDATE() AS DATETIMEOFFSET), '-07:00')
```

 次のコード例は、クエリを示しています。

```
SELECT * FROM [mssql_types]
```

 テーブルパネルの列名は、次のコード例に示すように、通常の `AS` SQL 列選択構文を使用して制御できます。

```
SELECT
  c_bit as [column1], c_tinyint as [column2]
FROM
  [mssql_types]
```

 結果のテーブルパネル: 

## 時系列クエリ
<a name="mssql-time-series-queries"></a>

 例えば Graph パネルで使用するために **[Format as]** を **[時系列]**に設定した場合、クエリは SQL 日時または Unix エポックを表す任意の数値データ型を返す `time` という名前の列が必要です。値列のメトリクス名として使用される `metric` という名前の列を返すことができます。`time` および `metric` を除くすべての列は、値列として扱われます。`metric` 列を省略すると、値列の名前がメトリクス名になります。複数の値列を選択でき、それぞれにメトリクスとして名前が付けられます。複数の値列と `metric` という名前の列を返す場合、この列はシリーズ名のプレフィックスとして使用されます。

 時系列クエリの結果セットは、時間別にソートする必要があります。

 次のコード例は、データベーステーブルを示しています。

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE metric_values (
  time datetime,
  measurement nvarchar(100),
  valueOne int,
  valueTwo int,
)

INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric A', 62, 6)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric B', 49, 11)
...
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric A', 14, 25)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric B', 48, 10)
```

 次のコード例は、1 列 `value` と 1 列 `metric` を示しています。

```
SELECT
  time,
  valueOne,
  measurement as metric
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 前述のクエリがグラフパネルで使用されると、`Metric A` と `Metric B` という名前の 2 つのシリーズが生成され、値 `valueOne` と `valueTwo` が `time` にプロットされます。

 次のコード例は、複数の `value` 列を示しています。

```
SELECT
  time,
  valueOne,
  valueTwo
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 前述のクエリがグラフパネルで使用されると、`Metric A` と `Metric B` という名前の 2 つのシリーズが生成され、値 `valueOne` と `valueTwo` が `time` にプロットされます。

 次のコード例は、\$1\$1\$1timeGroup マクロの使用を示しています。

```
SELECT
  $__timeGroup(time, '3m') as time,
  measurement as metric,
  avg(valueOne)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 前述のクエリがグラフパネルで使用されると、`Metric A` と `Metric B` という名前の 2 つのシリーズが生成され、値 `valueOne` と `valueTwo` が `time` にプロットされます。3 分間のウィンドウに値がない 2 つのシリーズでは、その 2 つの行の間に線がレンダリングされます。右側のグラフがゼロに下がらないことがわかります。

 次のコード例では、fill パラメータを 0 に設定した上での \$1\$1\$1 timeGroup マクロの使用を示しています。

```
SELECT
  $__timeGroup(time, '3m', 0) as time,
  measurement as metric,
  sum(valueTwo)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 このクエリがグラフパネルで使用される場合、結果は `Metric A`と `Metric B` という名前の 2 つのシリーズで、`valueTwo` の合計が `time` にプロットされます。3 分間のウィンドウで値が欠落しているシリーズの値は 0 になり、右側のグラフに表示されます。

## テンプレート作成
<a name="mssql-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="mssql-query-variable"></a>

 タイプ `Query` のテンプレート変数を追加すると、測定名、キー名、ドロップダウン選択ボックスとして表示されるキー値などを返すことができる MSSQL クエリを記述できます。

 例えば、テンプレート変数*クエリ*設定でこのようなクエリを指定した場合、テーブル内の `hostname` 列のすべての値を含む変数を指定できます。

```
SELECT hostname FROM host
```

 クエリは複数の列を返すことができ、Grafana はそれらの列からリストを自動的に作成します。例えば、次のクエリは、 `hostname` と `hostname2` の値を含むリストを返します。

```
SELECT [host].[hostname], [other_host].[hostname2] FROM host JOIN other_host ON [host].[city] = [other_host].[city]
```

 もう 1 つのオプションは、キー/値変数を作成できるクエリです。クエリは、 `__text` と `__value` という名前の 2 つの列を返します。`__text` 列の値は一意である必要があります (一意でない場合は、最初の値が使用されます)。ドロップダウンリストのオプションには、わかりやすい名前をテキストとして、ID を値として指定できるテキストと値があります。`hostname` をテキスト、`id` を値とするクエリの例: 

```
SELECT hostname __text, id __value FROM host
```

 ネストされた変数も作成できます。例えば、`region` という名前の別の変数がある場合です。次に、ホスト変数に、このようなクエリを含む、現在選択されているリージョンからのホストのみを表示させることができます (`region` が複数値変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します）。

```
SELECT hostname FROM host WHERE region IN ($region)
```

### クエリでの変数の使用
<a name="mssql-using-variables-in-queries"></a>

**注記**  
 テンプレート変数の値は、テンプレート変数が `multi-value` の場合にのみ引用符で囲まれます。

 変数が複数値の変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します。

 2 つの構文があります。

 `$<varname>` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  atimestamp time,
  aint value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp
```

 `[[varname]]` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp
```

#### 複数値変数の引用をオフにする
<a name="mssql-disabling-quoting-for-multi-value-variables"></a>

 Grafana は、複数値変数の引用符で区切られたカンマ区切り文字列を自動的に作成します。例えば、`server01` と `server02` を選択した場合、`'server01', 'server02'` の形式になります。引用を無効にするには、変数に csv フォーマットオプションを使用します。

 `${servers:csv}` 

 変数形式オプションの詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## ‏注釈
<a name="mssql-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 **列** 


|  名前  |  説明  | 
| --- | --- | 
|  time  |  日付/時刻フィールドの名前。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  timeend  |  終了日時フィールドのオプション名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  text  |  イベントの説明フィールド。 | 
|  tags  |  カンマ区切り文字列としてイベントタグに使用するオプションのフィールド名。 | 

 次のコード例は、データベーステーブルを示しています。

```
CREATE TABLE [events] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

 また、[時系列クエリ](#mssql-time-series-queries) で定義されているデータベーステーブルも使用します。

 次のコード例は、エポック値を持つ時間列を使用したクエリを示しています。

```
SELECT
  time_sec as time,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 次のコード例は、エポック値を持つ時間列と timeend 列を使用するリージョンクエリを示しています。

```
SELECT
  time_sec as time,
  time_end_sec as timeend,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 次のコード例は、ネイティブ SQL 日付/時刻データ型の時刻列を使用したクエリを示しています。

```
SELECT
  time,
  measurement as text,
  convert(varchar, valueOne) + ',' + convert(varchar, valueTwo) as tags
FROM
  metric_values
WHERE
  $__timeFilter(time_column)
ORDER BY 1
```

## ストアドプロシージャのサポート
<a name="stored-procedure-support"></a>

 ストアドプロシージャが機能することが確認されています。ただし、予想どおりに機能しないエッジケースがあるかもしれません。ストアドプロシージャは、前述の各セクションで説明したのと同じ形式で列の名前を使用し、データを返す限り、テーブル、時系列、および注釈クエリでサポートされています。

 マクロ関数は、ストアドプロシージャ内では機能しません。

### 例
<a name="mssql-examples"></a>

 次の例では、データベーステーブルは時系列クエリで定義されます。列 `valueOne`、`valueTwo`、`measurement` のすべての組み合わせなど、グラフパネル内の 4 つのシリーズを視覚化するとします。右側のグラフパネルは、達成したいことを視覚化します。これを解決するには、次の 2 つのクエリを使用する必要があります。

 次のコード例は、1 つ目のクエリを示しています。

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value one' as metric,
  avg(valueOne) as valueOne
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

 次のコード例は、2 つ目のクエリを示しています。

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value two' as metric,
  avg(valueTwo) as valueTwo
FROM
  metric_values
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

#### エポック形式の時間を使用したストアドプロシージャ
<a name="mssql-stored-procedure-using-time-in-epoch-format"></a>

 上記のようなグラフパネルで 4 つのシリーズをレンダリングするために、必要なすべてのデータを返すストアドプロシージャを定義できます。この場合、ストアドプロシージャは、`int` データ型の 2 つのパラメータ `@from` と `@to` を受け入れます。これは、ストアドプロシージャから返されるデータをフィルタリングするために使用されるエポック形式の時間範囲 (開始から終了まで) である必要があります。

 これは、select および group by 式の `$__timeGroup(time, '5m')` を模倣するため、多数の長い式が必要です。これらは、必要に応じて MSSQL 関数に抽出できます。

```
CREATE PROCEDURE sp_test_epoch(
  @from int,
  @to   int
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 それに続き、グラフパネルに次のクエリを使用できます。

```
DECLARE
  @from int = $__unixEpochFrom(),
  @to int = $__unixEpochTo()

EXEC dbo.sp_test_epoch @from, @to
```

#### 日時形式の時刻を使用したストアドプロシージャ
<a name="mssql-stored-procedure-using-time-in-datetime-format"></a>

 上記のようなグラフパネルで 4 つのシリーズをレンダリングするために、必要なすべてのデータを返すストアドプロシージャを定義できます。この場合、ストアドプロシージャは、`datetime` データ型の 2 つのパラメータ `@from` と `@to` を受け入れます。これは、ストアドプロシージャから返されるデータをフィルタリングするために使用される時間範囲 (開始から終了まで) である必要があります。

 これは、select および group by 式の `$__timeGroup(time, '5m')` を模倣するため、多数の長い式が必要です。これらは、必要に応じて MSSQL 関数に抽出できます。

```
CREATE PROCEDURE sp_test_datetime(
  @from datetime,
  @to   datetime
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 それに続き、グラフパネルに次のクエリを使用できます。

```
DECLARE
  @from datetime = $__timeFrom(),
  @to datetime = $__timeTo()

EXEC dbo.sp_test_datetime @from, @to
```

## [アラート]
<a name="mssql-alerting"></a>

 時系列クエリは、アラート条件で機能します。テーブル形式のクエリは、アラートルール条件ではまだサポートされていません。

# MySQL データソースに接続する
<a name="using-mysql-in-AMG"></a>

 MySQL データソースを追加して、MySQL 互換データベースからデータをクエリおよび視覚化できるようにします。

**重要**  
Grafana バージョン 8.0 では、MySQL 、Postgres、Microsoft SQL Server データソースのデータフレームの基盤となるデータ構造が変更されます。その結果、時系列のクエリ結果が幅広い形式で返されます。詳細については、Grafana データフレームドキュメントの「[ワイドフォーマット](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)」を参照してください。  
視覚エフェクトを以前と同じように機能させるには、手動による移行が必要になる場合があります。1 つの解決策は、Github の 「[Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534)」に記載されています。

## データソースの追加
<a name="mysql-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  **[ダッシュボード]** リンクのサイドメニューには、**[データソース]** という名前のリンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[MySQL]** を選択します。

### データソースオプション
<a name="mysql-data-source-options"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Host  |  MySQL インスタンスの IP アドレス/ホスト名とオプションのポート。 | 
|  Database  |  MySQL データベースの名前。 | 
|  User  |  データベースユーザーのログイン/ユーザー名。 | 
|  Password  |  データベースユーザーのパスワード。 | 
|  Max open  |  データベースへのオープン接続の最大数。デフォルトは unlimited です (Grafana v5.4 以降)。 | 
|  Max idle  |  アイドル接続プールの最大接続数。デフォルトは 2 です (Grafana v5.4 以降)。 | 
|  Max lifetime  |  接続を再利用できる秒単位の最大時間。デフォルトは 14400/4 時間です。これは常に MySQL (Grafana v5.4 以降) で設定された [[wait\$1timeout]](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout) よりも小さくする必要があります。 | 

### 最小時間間隔
<a name="mysql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 変数の下限。データを 1 分ごとに書き込む場合は `1m` など、書き込み頻度に設定することをお勧めします。このオプションは、[Data Source] (データソース) オプションのダッシュボードパネルで上書き/設定することもできます。この値は、`1m` (1 分) や `30s` (30 秒) など、有効な時間識別子が続く数値としてフォーマットする**必要があります**。以下の時間識別子がサポートされています。


|  識別子  |  説明  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  日  | 
|  h  |  時間  | 
|  m  |  分  | 
|  s  |  秒  | 
|  ms  |  ミリ秒  | 

### データベースユーザーのアクセス許可
<a name="database-user-permissions-important"></a>

**重要**  
 データソースを追加するときに指定するデータベースユーザーには、クエリ対象の指定データベースとテーブルに対する SELECT アクセス許可のみを付与する必要があります。Grafana は、クエリが安全であることを検証しません。クエリには任意の SQL ステートメントを含めることができます。例えば、 `USE otherdb;` や`DROP TABLE user;` などのステートメントが実行されます。これを防ぐために、アクセス許可が制限された特定の MySQL ユーザーを作成することを強くお勧めします。

 次のコード例は、アクセス許可が制限された特定の MySQL ユーザーの作成を示しています。

```
 CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
 GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';
```

 より多くのデータベースやテーブルへのアクセスを許可するには、必要に応じてデータベースやテーブルの代わりにワイルドカード文字 (`*`) を使用できます。

## クエリエディタ
<a name="mysql-query-editor"></a>

 MySQL クエリエディタは、パネルの [編集] モードの [メトリクス] タブにあります。パネルタイトルを選択して [編集] モードに入り、次に **[編集]** を選択します。

 クエリエディタには、パネル編集モードでクエリが実行された後に表示される**[生成 SQL]** リンクがあります。これを選択すると、実行された未加工の補間 SQL 文字列が展開されて表示されます。

### テーブル、時間列、メトリクス列 (FROM) を選択する
<a name="select-table-time-column-and-metric-column-from"></a>

 初めて編集モードに入るか新しいクエリを追加したとき、Grafana はタイムスタンプ列と数値列を持つ最初のテーブルをクエリビルダーに事前入力しようとします。

 FROM フィールドでは、Grafana は設定されたデータベースにあるテーブルを提案します。データベースユーザーがアクセスできる別のデータベースでテーブルまたはビューを選択するには、`otherDb.metrics` などの完全修飾名 (database.table) を手動で入力できます。

 Time 列フィールドは、時間値を保持する列の名前を指します。メトリクス列フィールドの値の選択はオプションです。値を選択すると、メトリクス列フィールドがシリーズ名として使用されます。

 メトリクス列の提案には、テキストデータ型 (テキスト、小テキスト、中テキスト、ロングテキスト、varchar、char) の列のみが含まれます。メトリクス列として異なるデータ型を持つ列を使用する場合は、キャスト `CAST(numericColumn as CHAR)` を使用して列名を入力できます。`CONCAT(column1, " ", CAST(numericColumn as CHAR))` などのテキストデータ型に評価される任意の SQL 式をメトリクス列フィールドに入力することもできます。

### 列と集計関数 (SELECT)
<a name="columns-and-aggregation-functions-select"></a>

 `SELECT` 行では、使用する列と関数を指定できます。列フィールドでは、`column1 * column2 / column3` などの列名の代わりに任意の式を記述できます。

 集計関数を使用する場合は、結果セットをグループ化する必要があります。集計関数を追加すると、エディタは自動的に `GROUP BY time` を追加します。

 さらに値列を追加するには、プラスボタンを選択し、メニューから `Column` を選択します。グラフパネルには、複数の値列が別々のシリーズとしてプロットされます。

### データのフィルタリング (WHERE)
<a name="mysql-filter-data-where"></a>

 フィルターを追加するには、`WHERE` 条件の右側にあるプラスアイコンを選択します。フィルターを削除するには、対象のフィルター、`Remove` を続けて選択します。現在選択されている時間範囲のフィルターが、新しいクエリに自動的に追加されます。

### グループ化の条件
<a name="mysql-group-by"></a>

 時間または他の列でグループ化するには、GROUP BY 行の末尾にあるプラスアイコンを選択します。提案ドロップダウンリストには、現在選択されているテーブルのテキスト列のみが表示されますが、手動で任意の列を入力できます。項目を選択し、`Remove` を選択すると、グループを削除できます。

 グループ化を追加する場合、選択したすべての列に集計関数を適用する必要があります。グループ化を追加すると、クエリビルダーは集計関数なしですべての列に集計関数を自動的に追加します。

#### ギャップ埋め
<a name="mysql-gap-filling"></a>

 Grafana では、時間別にグループ化すると、欠損値を入力できます。時間関数は 2 つの引数を受け入れます。最初の引数はグループ化する時間枠で、2 つ目の引数は Grafana が不足している項目を埋める値です。

### テキストエディタモード (raw)
<a name="mysql-text-editor-mode-raw"></a>

 ハンバーガーアイコン (三) を選択し、**[スイッチエディタモード]**を選択するか、クエリの下にある **[SQL の編集]** を選択して、未加工クエリエディタモードに切り替えることができます。

**注記**  
 未加工クエリエディタを使用する場合は、クエリに少なくとも `ORDER BY time` と、返された時間範囲のフィルターがあることを確認してください。

## マクロ
<a name="mysql-macros"></a>

 構文を簡素化し、日付範囲フィルターなどの動的部分を許可するため、クエリにマクロを含めることができます。


|  マクロの例  |  説明  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  UNIX タイムスタンプに変換し、列の名前を time\$1sec に変更する式に置き換えられます。例えば、UNIX\$1TIMESTAMP (dateColumn ) を time\$1sec として指定します。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  UNIX タイムスタンプに変換し、列の名前を time\$1sec に変更する式に置き換えられます。例えば、UNIX\$1TIMESTAMP (dateColumn ) を time\$1sec として指定します。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  指定された列名を使用して時間範囲フィルターに置き換えられます。例えば、dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) AND FROM\$1UNIXTIME(1494410983) などです。 | 
|  \$1\$1\$1timeFrom()  |  現在アクティブな時間選択の開始に置き換えられます。例えば、FROM\$1UNIXTIME(1494410783) などです。 | 
|  \$1\$1\$1timeTo()  |  現在アクティブな時間選択の終了に置き換えられます。例えば、FROM\$1UNIXTIME(1494410983) などです。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  GROUP BY 句で使用できる式に置き換えられます。例えば、cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) as signed)300 as signed),\$1 などです  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  前の行と同じですが、fill パラメーターがあるため、その系列の欠落しているポイントは grafana によって追加され、0 が値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  上記と同じですが、NULL は欠落ポイントの値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  上記と同じですが、その系列の前の値がフィル値として使用されます。まだ値が見つからない場合は NULL が使用されます (Grafana 5.3 以降でのみ使用可能) 。 | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  \$1\$1\$1timeGroup と同じように置き換えられますが、列エイリアスが追加されます (Grafana 5.3 以降でのみ使用可能）。 | 
| \$1\$1\$1unixEpochFilter(dateColumn) | 指定された列名を使用して、Unix タイムスタンプとして表される時間を使用して、時間範囲フィルターに置き換えられます。例えば、dateColumn > 1494410783 AND dateColumn < 1494497183。 | 
| \$1\$1\$1unixEpochFrom() | 現在アクティブな時間選択の開始が Unix タイムスタンプに置き換えられます。例えば、1494410783。 | 
| \$1\$1\$1unixEpochTo() | 現在アクティブな時間選択の最後が Unix タイムスタンプに置き換えられます。例えば、1494497183。 | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 指定された列名とナノ秒タイムスタンプとして表される時刻を使用して、時間範囲フィルターに置き換えられます。例えば、dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872。 | 
| \$1\$1\$1unixEpochNanoFrom() | 現在アクティブな時間選択の開始がナノ秒タイムスタンプに置き換えられます。例えば、1494410783152415214。 | 
| \$1\$1\$1unixEpochNanoTo() | 現在アクティブな時間選択の終了がナノ秒タイムスタンプに置き換えられます。例えば、1494497183142514872。 | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | \$1\$1\$1timeGroup と同様ですが、Unix タイムスタンプとして保存される時刻に置き換えられます (Grafana 5.3 以降でのみ使用可能）。 | 
| \$1\$1\$1unixEpochGroupAlias(dateColumn,"5m", [fillmode])` | 上記と同じですが、列エイリアスも追加されます (Grafana 5.3 以降でのみ使用可能）。 | 

 クエリエディタには、パネル編集モードでクエリが実行された後に表示される **[生成 SQL]** リンクがあります。これを選択すると、実行された未加工の補間 SQL 文字列が展開されて表示されます。

## テーブルクエリ
<a name="mysql-table-queries"></a>

 **[Format as]** クエリオプションが**[テーブル]**に設定されている場合、基本的に任意のタイプの SQL クエリを実行できます。テーブルパネルには、クエリが返す列と行の結果が自動的に表示されます。

 次のコードは、クエリの例を示しています。

```
SELECT
  title as 'Title',
  user.login as 'Created By' ,
  dashboard.created as 'Created On'
 FROM dashboard
INNER JOIN user on user.id = dashboard.created_by
WHERE $__timeFilter(dashboard.created)
```

 テーブルパネルの列名は、通常の `as` SQL 列選択構文を使用して制御できます。

## 時系列クエリ
<a name="mysql-time-series-queries"></a>

 例えばグラフパネルで使用するために **[Format as]** を **[時系列]**に設定した場合、クエリは SQL 日時または Unix エポックを表す任意の数値データ型を返す `time` という名前の列を返す必要があります。`time` および `metric` を除くすべての列は、値列として扱われます。値列のメトリクス名として使用される `metric` という名前の列を返すことができます。複数の値列と `metric` という名前の列を返す場合、この列はシリーズ名のプレフィックスとして使用されます (Grafana 5.3 以降でのみ使用可能）。

 時系列クエリの結果セットは、時間別にソートする必要があります。

 次のコード例は、`metric` 列を示しています。

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double),
  'min' as metric
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

 次のコード例は、\$1\$1\$1timeGroup マクロの fill パラメータを使用して NULL 値をゼロに変換する方法を示しています。

```
SELECT
  $__timeGroup(createdAt,'5m',0),
  sum(value_double) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter(createdAt)
GROUP BY time, measurement
ORDER BY time
```

 次のコード例は、複数の列を示しています。

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double) as min_value,
  max(value_double) as max_value
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

時間範囲とパネル幅に基づく時間ごとの動的グループはサポートされていません。

## テンプレート作成
<a name="mysql-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレート](templates-and-variables.md#templates)」を参照してください。

### クエリ変数
<a name="mysql-query-variable"></a>

 タイプ `Query` のテンプレート変数を追加すると、測定名、キー名、ドロップダウン選択ボックスとして表示されるキー値などを返すことができる MySQL クエリを記述できます。

 例えば、テンプレート変数*クエリ*設定でこのようなクエリを指定した場合、テーブル内の `hostname` 列のすべての値を含む変数を指定できます。

```
SELECT hostname FROM my_host
```

 クエリは複数の列を返すことができ、Grafana はそれらの列からリストを自動的に作成します。例えば、次のクエリは、 `hostname` と `hostname2` の値を含むリストを返します。

```
SELECT my_host.hostname, my_other_host.hostname2 FROM my_host JOIN my_other_host ON my_host.city = my_other_host.city
```

 クエリで `$__timeFilter(column)` などの時間範囲依存マクロを使用するには、テンプレート変数の更新モードを *[時間範囲変更]* に設定する必要があります。

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 もう 1 つのオプションは、キー/値変数を作成できるクエリです。クエリは、 `__text` と `__value` という名前の 2 つの列を返します。`__text` 列値は一意である必要があります (一意でない場合は、最初の値が使用されます）。ドロップダウンリストのオプションにはテキストと値があるため、わかりやすい名前のテキストとして、ID を値として使用できます。

次のコード例は、 `hostname` をテキストとして、 `id` を値として持つクエリを示しています。

```
SELECT hostname AS __text, id AS __value FROM my_host
```

 ネストされた変数も作成できます。例えば、`region` という名前の別の変数がある場合です。次に、ホスト変数に、このようなクエリを含む、現在選択されているリージョンからのホストのみを表示させることができます (`region` が複数値変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します）。

```
SELECT hostname FROM my_host  WHERE region IN($region)
```

#### `__searchFilter` を使用してクエリ変数で結果をフィルタリングする
<a name="using-__searchfilter-to-filter-results-in-query-variable"></a>

 クエリフィールドで `__searchFilter` を使用すると、ドロップダウン選択ボックスのユーザータイプに基づいてクエリ結果がフィルタリングされます。ユーザーによって何も入力されていない場合、`__searchFilter` のデフォルト値は `%` です。

**注記**  
 Grafana はこれを行わないため、`__searchFilter` 式を引用符で囲むことが重要です。

 次の例は、`__searchFilter` をクエリフィールドの一部として使用してユーザーがドロップダウン選択ボックスに入力するときに `hostname` を検索できるようにします。

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

### クエリでの変数の使用
<a name="using-variables-in-queries-2"></a>

 Grafana 4.3.0 から 4.6.0 まで、テンプレート変数は常に自動的に引用符で囲まれるため、文字列値の場合は、その変数を引用符で囲まないでください。

 Grafana 4.7.0 以降、テンプレート変数の値は、テンプレート変数が `multi-value` の場合にのみ引用符で囲まれます。

 変数が複数値の変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します。

 2 つの構文があります。

 `$<varname>` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 複数値変数の引用をオフにする
<a name="disabling-quoting-for-multi-value-variables"></a>

 Grafana は、複数値変数の引用符で区切られたカンマ区切り文字列を自動的に作成します。例えば、`server01` と `server02` を選択した場合、`'server01', 'server02'` の形式になります。引用を無効にするには、変数に csv フォーマットオプションを使用します。

 `${servers:csv}` 

 変数形式オプションの詳細については、「[高度な変数フォーマットオプション](templates-and-variables.md#advanced-variable-format-options)」を参照してください。

## ‏注釈
<a name="mysql-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。詳細については、「」を参照してください。

 次のコード例は、エポック値を持つ時間列を使用したクエリを示しています。

```
SELECT
  epoch_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

次のコード例は、エポック値を持つ時間列と timeend 列を使用するリージョンクエリを示しています。

**注記**  
 Grafana v6.6 以降でのみ使用できます。

```
SELECT
  epoch_time as time,
  epoch_timeend as timeend,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 次のコード例は、ネイティブ SQL 日付/時刻データ型の時刻列を使用したクエリを示しています。

```
SELECT
  native_date_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  名前  |  説明  | 
| --- | --- | 
|  time  |  日付/時刻フィールドの名前。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  timeend  |  終了日時フィールドのオプション名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  text  |  イベントの説明フィールド。 | 
|  tags  |  カンマ区切り文字列としてイベントタグに使用するオプションのフィールド名。 | 

## [アラート]
<a name="mysql-alerting"></a>

 時系列クエリは、アラート条件で機能します。テーブル形式のクエリは、アラートルール条件ではまだサポートされていません。

# OpenSearch データソースに接続する
<a name="using-opensearch-in-AMG"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

Amazon Managed Grafana では、オープンソースの [OpenSearch](https://opensearch.org/docs/) (またはレガシー Elasticsearch) をデータソースとして追加できます。OpenSearch に保存されているログまたはメトリクスを視覚化するために、単純または複雑なさまざまな種類の OpenSearch クエリを実行できます。OpenSearch に保存されているログイベントを使用してグラフに注釈を付けることもできます。

## OpenSearch をデータソースとして追加する
<a name="opensearch-adding-the-data-source"></a>

**注記**  
OpenSearch データソースを追加するには、Grafana IAM アカウントを ALL\$1ACCESS ロールと SECURITY\$1MANAGER ロールに追加する必要があります。

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  **[ダッシュボード]** リンクのサイドメニューには、名前付き **[データソース]** リンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[OpenSearch]** を選択します。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されない場合は、現在のユーザーに `Admin` ロールが付与されていないことを示します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Url  |  OpenSearch サーバーの HTTP プロトコル、IP、ポート。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。ブラウザ = URL はブラウザからアクセス可能である必要があります。 | 

 アクセスモードは、データソースへのリクエストの処理方法を制御します。他に何も記述されていない場合は、サーバーが優先されます。

### サーバーアクセスモード (デフォルト)
<a name="opensearch-server-access-mode-default"></a>

 すべてのリクエストはブラウザから Grafana バックエンドまたはサーバーに行われ、リクエストはデータソースに転送されるため、クロスオリジンリソース共有 (CORS) 要件を回避できます。このアクセスモードを選択する場合、URL は Grafana バックエンドまたはサーバーからアクセス可能である必要があります。

### ブラウザ (直接) アクセス
<a name="opensearch-browser-direct-access"></a>

 Amazon Managed Grafana は、OpenSearch データソースのブラウザへの直接アクセスをサポートしていません。

### インデックス設定
<a name="opensearch-index-settings"></a>

 ここでは、`time field` のデフォルトを指定し、OpenSearch インデックスの名前を指定できます。インデックス名またはワイルドカード文字に時間パターンを使用できます。

### OpenSearch/Elasticsear バージョン
<a name="opensearch-version"></a>

バージョンドロップダウンメニューで OpenSearch またはレガシー Elasticsearch バージョンを指定します。バージョンごとにクエリの構成方法が異なるため、バージョンは重要です。現在、Grafana は OpenSearch 1.0.x をサポートしています。サポートされている Elasticsearch のバージョンは、`2.0+`、`5.0+`、`5.6+`、`6.0+`、`7.0+` です。値 `5.6+` はバージョン 5.6 以降、6.0 未満を意味します。値 `6.0+` はバージョン 6.0 以降、7.0 未満を意味します。最後に、`7.0+` はバージョン 7.0 以降、8.0 未満を意味します。

### 最小時間間隔
<a name="opensearch-min-time-interval"></a>

 時間間隔による自動グループの下限。データを 1 分ごとに書き込む場合は `1m` など、書き込み頻度に設定することをお勧めします。このオプションは、[Data Source] (データソース) オプションのダッシュボードパネルで上書き/設定することもできます。この値は、`1m` (1 分) や `30s` (30 秒) など、有効な時間識別子が続く数値としてフォーマットする**必要があります**。以下の時間識別子がサポートされています。


|  識別子  |  説明  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  日  | 
|  h  |  時間  | 
|  m  |  分  | 
|  s  |  秒  | 
|  ms  |  ミリ秒  | 

### ログ
<a name="opensearch-logs-beta"></a>

2 つのパラメータである `Message field name` と `Level field name` は、オプションで、[Explore](explore.md) のログを視覚化するときにログメッセージとログレベルに使用されるフィールドを決定するデータソース設定ページから設定できます。

 例えば、OpenSearch へのログの配送に Filebeat のデフォルト設定を使用する場合、次の設定が機能します。
+  **メッセージフィールド名:** メッセージ 
+  **レベルフィールド名:** fields.level 

### データリンク
<a name="opensearch-data-links"></a>

 データリンクは、Explore のログビューでアクセスできる指定されたフィールドからリンクを作成します。

 各データリンク設定は、以下で構成されます。
+ **フィールド** – データリンクで使用されるフィールドの名前。
+ **URL/クエリ** – リンクが外部である場合は、完全なリンク URL を入力します。リンクが内部リンクの場合、この入力はターゲットデータソースのクエリとして機能します。どちらの場合も、`${__value.raw }` マクロを使用してフィールドから値を補間できます。
+ **内部リンク** – リンクが内部または外部である場合に選択します。リンクが内部の場合、データソースセレクタを使用すると、ターゲットデータソースを選択できます。データソースのトレースのみがサポートされています。

## OpenSearch データソースの使用
<a name="opensearch-use-datasource"></a>

### メトリクスクエリエディタ
<a name="opensearch-metric-query-editor"></a>

 OpenSearch クエリエディタを使用すると、複数のメトリクスを選択し、複数の用語またはフィルターでグループ化できます。右側のプラスアイコンとマイナスアイコンを使用して、メトリクスまたはグループを句で追加/削除します。一部のメトリクスと group by 句にはオプションがあります。オプションテキストを選択して行を展開し、オプション別にメトリクスまたはグループを表示および編集します。

### シリーズの名前付けとエイリアスパターン
<a name="opensearch-series-naming-and-alias-patterns"></a>

 `Alias` 入力フィールドを使用して時系列の名前を制御できます。


|  パターン  |  説明  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  Group By という用語の値に置き換え。 | 
|  \$1\$1metric\$1\$1  |  メトリクス名に置き換え (例：平均、最小、最大）。 | 
|  \$1\$1field\$1\$1  |  メトリクスフィールド名に置き換え。 | 

### パイプラインメトリクス
<a name="opensearch-pipeline-metrics"></a>

例えば、*移動平均*や*派生*など、一部のメトリクス集約はパイプライン集約と呼ばれます。OpenSearch パイプラインメトリクスは、別のメトリクスに基づく必要があります。メトリクスの横にある目のアイコンを使用して、メトリクスがグラフに表示されないようにします。これは、パイプラインメトリクスで使用するクエリにのみあるメトリクスに役立ちます。

### テンプレート作成
<a name="opensearch-templating"></a>

メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

#### クエリ変数
<a name="opensearch-query-variable"></a>

 OpenSearch データソースは、*[クエリ]*変数の*[クエリ]*フィールドで使用できる 2 種類のクエリをサポートしています。クエリは、カスタム JSON 文字列を使用して記述します。


|  クエリ  |  説明  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  インデックスタイプ keyword のフィールド名のリストを返します。 | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  用語集約を使用してフィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。 | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  用語集約と指定された Lucene クエリフィルターを使用して、フィールドの値のリストを返します。クエリは、クエリの時間範囲として現在のダッシュボードの時間範囲を使用します。 | 

用語クエリにはデフォルトのサイズ制限 500 があります。カスタム制限を設定するには、クエリのサイズプロパティを設定します。クエリでは、その他の変数を使用できます。次のコード例は、`$host` という名前の変数のクエリ定義を示しています。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

前の例では、クエリ定義内で `$source` という名前の別の変数を使用します。`$source` 変数の現在の値をドロップダウンリストで変更すると、`$host` 変数の更新が開始されます。更新後、`$host` 変数にはホスト名のみが含まれます。この場合、`@source` ドキュメントプロパティによってフィルタリングされます。

デフォルトでは、これらのクエリは用語の順序で返されます (その後、任意の変数と同様にアルファベット順または数値順にソートできます）。ドキュメント数でソートされた用語のリスト (上位 N の値リスト) を作成するには、`doc_count` の `orderBy` プロパティを追加します。これにより、降順ソートが自動的に選択されます。doc\$1count (降順 N リスト) で `asc` を使用するには、`order: "asc"` を設定しますが、ドキュメントカウントのエラーが増加するため、推奨されません。ドキュメントカウントの順序で用語を保持するには、変数の **[ソート]** ドロップダウンリストを**[無効]**に設定します。または、**[アルファベット]**順を使用して再ソートすることもできます。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

#### クエリでの変数の使用
<a name="opensearch-using-variables-in-queries"></a>

 2 つの構文があります。
+  `$<varname>` 例: @hostname:\$1hostname 
+  `[[varname]]` 例: @hostname:[[hostname]] 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。*[複数値]*または*[すべての値を含める]*オプションが有効になっている場合、Grafana はラベルをプレーンテキストから Lucene 互換の条件に変換します。

 前の例では、`$hostname` という名前の変数を使用して `@hostname` プロパティに基づいてドキュメントをフィルタリングする Lucene クエリがあります。また、フィールド入力ボックス別の*用語*グループで変数を使用しています。これにより、変数を使用してデータのグループ化方法をすばやく変更できます。

### ‏注釈
<a name="opensearch-annotations"></a>

注釈を使用すると、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニューまたは注釈ビューを使用して注釈クエリを追加します。Grafana は、注釈イベントの OpenSearch インデックスをクエリできます。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。


|  名前  |  説明  | 
| --- | --- | 
|  Query  |  検索クエリは空白のままにするか、Lucene クエリを指定できます。 | 
|  Time  |  時間フィールドの名前。 日付フィールドである必要があります。 | 
|  Time End  |  終了時刻フィールドのオプション名は日付フィールドである必要があります。設定されている場合、注釈は時間と終了時間の間のリージョンとしてマークされます。 | 
|  Text  |  イベントの説明フィールド。 | 
|  Tags  |  イベントタグに使用するオプションのフィールド名 (配列または CSV 文字列）。 | 

### ログのクエリ
<a name="opensearch-querying-logs-beta"></a>

 OpenSearch からのログデータのクエリと表示は、Explore で確認できます。ログを表示するには、OpenSearch データソースを選択し、オプションで Lucene クエリを入力します。詳細については、「[Explore](explore.md)」を参照してください。

#### ログクエリ
<a name="opensearch-log-queries"></a>

 結果が返されると、ログパネルにログ行のリストと棒グラフが表示されます。x 軸は時間、y 軸は頻度またはカウントを示します。

#### ログメッセージのフィルタリング
<a name="opensearch-filter-log-messages"></a>

 必要に応じて、クエリフィールドに Lucene クエリを入力して、ログメッセージをフィルタリングできます。例えば、デフォルトの Filebeat 設定を使用すると、`fields.level:error` を使用してエラーメッセージのみを表示できます。

# OpenTSDB データソースに接続する
<a name="using-opentsdb-in-AMG"></a>

 Amazon Managed Grafana は、OpenTSDB を高度にサポートします。

## データソースの追加
<a name="opentsdb-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  **[ダッシュボード]** リンクのサイドメニューには、**[データソース]** という名前のリンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[OpenTSDB]** を選択します。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されていない場合は、現在のユーザーに `Admin` ロールが付与されていないことを意味します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Url  |  opentsdb サーバーの HTTP プロトコル、ip、ポート (デフォルトポートは通常 4242)。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。 | 
|  Version  |  バージョン = opentsdb バージョン、2.1 以前 または 2.2。 | 
|  Resolution  |  opentsdb からのメトリクスには、2 秒またはミリ秒の解像度のデータポイントを含めることができます。 | 

## クエリエディタ
<a name="opentsdb-query-editor"></a>

 タイトルを選択して、編集モードでグラフを開きます。データソースのバージョンが 2.1 以前または 2.2 の場合、クエリエディタは異なります。以前のバージョンでは、OpenTSDB のクエリに使用できるのはタグのみです。ただし、後者のバージョンでは、フィルターとタグを使用して opentsdb をクエリできます。フィルポリシーは OpenTSDB 2.2 でも導入されています。

**注記**  
 OpenTSDB 2.2 データソースを使用する際は、相互に排他的であるため、フィルターまたはタグのいずれかを使用してください。一緒に使用すると、想定しない結果が得られる可能性があります。

### オートコンプリート候補の使用
<a name="auto-complete-suggestions"></a>

 メトリクス名、タグ名、タグ値の入力を開始すると、オートコンプリート候補が強調表示されます。オートコンプリートは、OpenTSDB で API が有効になっている場合にのみ機能します。

## クエリのテンプレート作成
<a name="opentsdb-templating-queries"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="opentsdb-query-variable"></a>

 OpenTSDB データソースは、テンプレート変数クエリをサポートしています。つまり、OpenTSDB から値を取得するテンプレート変数を作成できます。例えば、メトリクス名、タグ名、タグ値などを取得できます。

 `query` タイプのテンプレート変数で OpenTSDB を使用する場合、次の構文を使用して検索できます。


|  クエリ  |  説明  | 
| --- | --- | 
|  metrics(prefix)  |  特定のプレフィックスを持つメトリクス名を返します (空になる場合もあります）。 | 
|  tag\$1names(cpu)  |  特定の cpu メトリクスのタグ名 (キー) を返します。 | 
|  tag\$1values(cpu, hostname)  |  メトリクス cpu とタグキーホスト名のタグ値を返します。 | 
|  suggest\$1tagk(prefix)  |  特定のプレフィックスを持つすべてのメトリクスのタグ名 (キー) を返します (空になる場合もあります）。 | 
|  suggest\$1tagv(prefix)  |  特定のプレフィックスを持つすべてのメトリクスのタグ値を返します (空になる場合もあります）。 | 

 `Preview of values` セクションにテンプレート変数が入力されていない場合は、OpenTSDB サーバー設定で `tsd.core.meta.enable_realtime_ts` を有効にする必要があります。また、OpenTSDB の既存の時系列データのメタデータを入力するには、OpenTSDB サーバーで `tsdb uid metasync` を実行する必要があります。

### テンプレートのネスト
<a name="nested-templating"></a>

 1 つのテンプレート変数を使用して、別のテンプレート変数のタグ値をフィルタリングできます。1 番目のパラメータはメトリクス名、2 番目のパラメータはタグ値を見つける必要があるタグキー、その後は他のすべての依存テンプレート変数です。ネストされたテンプレートクエリが正常に機能することを示すため、いくつかの例を以下に挙げます。


|  クエリ  |  説明  | 
| --- | --- | 
|  tag\$1values(cpu, hostname, env=\$1env)  |  cpu メトリクスのタグ値、選択した env タグ値、およびタグキーホスト名を返します。 | 
|  tag\$1values(cpu, hostname, env=\$1env, region=\$1region)  |  cpu メトリクス、選択した env タグ値、選択したリージョンタグ値、およびタグキーホスト名のタグ値を返します。 | 

 OpenTSDB メトリクスクエリの詳細については、「[OpenTSDB ドキュメント](https://opentsdb.net/docs/build/html/index.html)」を参照してください。

# PostgreSQL データソースに接続する
<a name="using-postgresql-in-AMG"></a>

 PostgreSQL データソースを使用して、Amazon Aurora PostgreSQL データベースからのデータをクエリおよび視覚化できます。

**重要**  
*[Grafana バージョン 8] *は、Postgres、MySQL 、および Microsoft SQL Server データソースのデータフレームの基盤となるデータ構造を変更します。その結果、時系列のクエリ結果が幅広い形式で返されます。詳細については、Grafana データフレームドキュメントの「[ワイドフォーマット](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)」を参照してください。視覚化をバージョン 8 以前と同じように機能させるには、手動で移行する必要がある場合があります。1 つの解決策は、Github の 「[Postgres/MySQL/MSSQL: Breaking change in v8.0 related to time series queries and ordering of data column](https://github.com/grafana/grafana/issues/35534)」に記載されています。  
*[Grafana バージョン 9]* では、PostgreSQL データソースは、以前のバージョンとは異なる方法でデータベースに接続するためのルート証明書を設定します。ワークスペースをバージョン 8 から 9 に更新する場合、接続方法を変更する必要がある場合があります。詳細については「[ワークスペースの更新後のトラブルシューティング](AMG-workspace-version-update-troubleshoot.md)」を参照してください。

## データソースの追加
<a name="postgresql-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  **設定**アイコンのサイドメニューに、**[データソース]** リンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[PostgreSQL]** を選択します。

### データソースオプション
<a name="postgresql-data-source-options"></a>


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これは、パネルとクエリ内へのデータソースの表示のされ方です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Host  |  PostgreSQL インスタンスの IP アドレス/ホスト名とオプションのポート。データベース名を含めないでください。Postgres に接続するための接続文字列が誤っているためにエラーが発生します。 | 
|  Database  |  PostgreSQL データベースの名前。 | 
|  User  |  データベースユーザーのログイン/ユーザー名。 | 
|  Password  |  データベースユーザーのパスワード。 | 
|  SSL Mode  |  このオプションは、安全な SSL TCP/IP 接続をサーバーとネゴシエートするかどうか、またはどの優先度でネゴシエートするかを決定します。 | 
|  Max open  |  データベースへのオープン接続の最大数。デフォルトは unlimited です (Grafana v5.4 以降)。 | 
|  Max idle  |  アイドル接続プールの最大接続数。デフォルトは 2 です (Grafana v5.4 以降)。 | 
|  Max lifetime  |  接続を再利用できる秒単位の最大時間、デフォルト 14400/4 時間 (Grafana v5.4 以降)。 | 
|  Version  |  このオプションは、クエリビルダーで使用できる関数を決定します (Grafana 5.3 以降でのみ使用可能）。 | 
|  TimescaleDB  |  TimescaleDB は、PostgreSQL 拡張機能として構築された時系列データベースです。有効にすると、Grafana は \$1\$1\$1timeGroup マクロで time\$1bucket を使用し、クエリビルダーに TimescaleDB 固有の集計関数を表示します (Grafana 5.3 以降でのみ使用可能）。 | 

### 最小時間間隔
<a name="postgresql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 変数の下限。データを 1 分ごとに書き込む場合は `1m` など、書き込み頻度に設定することをお勧めします。このオプションは、[Data Source] (データソース) オプションのダッシュボードパネルで上書き/設定することもできます。この値は、`1m` (1 分) や `30s` (30 秒) など、有効な時間識別子が続く数値としてフォーマットする**必要があります**。以下の時間識別子がサポートされています。


|  識別子  |  説明  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  日  | 
|  h  |  時間  | 
|  m  |  分  | 
|  s  |  秒  | 
|  ms  |  ミリ秒  | 

### データベースユーザーのアクセス許可
<a name="postgresql-database-user-permissions-important"></a>

**重要**  
 データソースを追加するときに指定するデータベースユーザーには、クエリする指定されたデータベースとテーブルに対してのみ SELECT アクセス許可を付与する必要があります。Grafana は、クエリが安全であることを検証しません。クエリには任意の SQL ステートメントを含めることができます。例えば、 `DELETE FROM user;` や`DROP TABLE user;` などのステートメントが実行されます。これを防ぐために、アクセス許可が制限された特定の PostgreSQL ユーザーを作成することを強くお勧めします。

次のコード例は、アクセス許可が制限された特定の PostgreSQL ユーザーの作成を示しています。

```
 CREATE USER grafanareader WITH PASSWORD 'password';
 GRANT USAGE ON SCHEMA schema TO grafanareader;
 GRANT SELECT ON schema.table TO grafanareader;
```

 ユーザーがパブリックロールから不要なアクセス許可を付与されていないことを確認します。

## クエリエディタ
<a name="postgresql-query-editor"></a>

 PostgreSQL クエリエディタは、Graph または Singlestat パネルの編集モードのメトリクスタブにあります。パネルタイトルを選択して [編集] モードに入り、次に [編集] を選択します。

 クエリエディタには、パネル編集モードでクエリが実行された後に表示される**[生成 SQL]** リンクがあります。これを選択すると、実行された未加工の補間 SQL 文字列が展開されて表示されます。

### テーブル、時間列、メトリクス列 (FROM) を選択する
<a name="postgresql-select-table-time-column-and-metric-column-from"></a>

 初めて編集モードに入るか新しいクエリを追加したとき、Grafana はタイムスタンプ列と数値列を持つ最初のテーブルをクエリビルダーに事前入力しようとします。

 FROM フィールドでは、Grafana はデータベースユーザーの `search_path` にあるテーブルを提案します。`search_path` にないテーブルまたはビューを選択するには、`public.metrics` などの完全修飾名 (schema.table) を手動で入力できます。

 Time 列フィールドは、時間値を保持する列の名前を指します。メトリクス列フィールドの値の選択はオプションです。値を選択すると、メトリクス列フィールドがシリーズ名として使用されます。

 メトリクス列の提案には、テキストデータ型 (char、varchar、text) の列のみが含まれます。異なるデータ型を持つ列をメトリクス列として使用するには、キャスト `ip::text` を使用して列名を入力できます。`hostname || ' ' || container_name` などのテキストデータ型に評価される任意の SQL 式をメトリクス列フィールドに入力することもできます。

### 列、ウィンドウ、集計関数 (SELECT)
<a name="columns-window-and-aggregation-functions-select"></a>

 `SELECT` 行では、使用する列と関数を指定できます。列フィールドでは、`column1 * column2 / column3` などの列名の代わりに任意の式を記述できます。

 クエリエディタで使用できる関数は、データソースの設定時に選択した PostgreSQL バージョンによって異なります。集計関数を使用する場合は、結果セットをグループ化する必要があります。集計関数を追加すると、エディタは自動的に `GROUP BY time` を追加します。

エディタは、クエリのこの部分を簡素化および統合しようとします。

プラスボタンを選択し、メニューから**列**を選択すると、さらに値列を追加できます。グラフパネルには、複数の値列が別々のシリーズとしてプロットされます。

### データのフィルタリング (WHERE)
<a name="postgresql-filter-data-where"></a>

 フィルターを追加するには、`WHERE` 条件の右側にあるプラスアイコンを選択します。フィルターを削除するには、フィルターを選択し、**[削除]** を選択します。現在選択されている時間範囲のフィルターが、新しいクエリに自動的に追加されます。

### グループ化の条件
<a name="postgresql-group-by"></a>

 時間または他の列でグループ化するには、GROUP BY 行の末尾にあるプラスアイコンを選択します。提案ドロップダウンリストには、現在選択されているテーブルのテキスト列のみが表示されますが、手動で任意の列を入力できます。項目を選択し、**[削除]** を選択して、グループを削除できます。

 グループ化を追加する場合、選択したすべての列に集計関数を適用する必要があります。グループ化を追加すると、クエリビルダーは集計関数なしですべての列に集計関数を自動的に追加します。

#### ギャップ埋め
<a name="postgresql-gap-filling"></a>

 Amazon Managed Grafana は、時間別にグループ化すると、欠損値を入力できます。時間関数は 2 つの引数を受け入れます。最初の引数はグループ化する時間枠で、2 つ目の引数は Grafana が不足している項目を埋める値です。

### テキストエディタモード (RAW)
<a name="postgresql-text-editor-mode-raw"></a>

 ハンバーガーアイコン (三) を選択し、**[スイッチエディタモード]**を選択するか、クエリの下にある **[SQL の編集]** を選択して、未加工クエリエディタモードに切り替えることができます。

**注記**  
 未加工クエリエディタを使用する場合は、クエリに少なくとも `ORDER BY time` と、返された時間範囲のフィルターがあることを確認してください。

## マクロ
<a name="postgresql-macros"></a>

 クエリ内でマクロは使用すると構文を簡素化し、動的な部分を使用できます。


|  マクロの例  |  説明  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  UNIX タイムスタンプに変換し、列の名前を time\$1sec に変更する式に置き換えられます。例えば、UNIX\$1TIMESTAMP(dateColumn) を time\$1sec として指定します。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  UNIX タイムスタンプに変換し、列の名前を time\$1sec に変更する式に置き換えられます。例えば、UNIX\$1TIMESTAMP(dateColumn) を time\$1sec として指定します。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  指定された列名を使用して時間範囲フィルターに置き換えられます。例えば、dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) AND FROM\$1UNIXTIME(1494410983) などです。 | 
|  \$1\$1\$1timeFrom()  |  現在アクティブな時間選択の開始に置き換えられます。例えば、FROM\$1UNIXTIME(1494410783) などです。 | 
|  \$1\$1\$1timeTo()  |  現在アクティブな時間選択の終了に置き換えられます。例えば、FROM\$1UNIXTIME(1494410983) などです。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  GROUP BY 句で使用できる式に置き換えられます。例えば、cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) as signed)300 as signed),\$1 などです  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  前の行と同じですが、fill パラメーターがあるため、その系列の欠落しているポイントは grafana によって追加され、0 が値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  上記と同じですが、NULL は欠落ポイントの値として使用されます。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  上記と同じですが、その系列の前の値がフィル値として使用されます。まだ値が見つからない場合は NULL が使用されます (Grafana 5.3 以降でのみ使用可能) 。 | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  \$1\$1\$1timeGroup と同じですが、列エイリアスが追加されます  | 
|  \$1\$1\$1unixEpochFilter(dateColumn) |  指定された列名を使用して、Unix タイムスタンプとして表される時間を使用して、時間範囲フィルターに置き換えられます。例えば、\$1dateColumn > 1494410783 AND dateColumn < 1494497183\$1 などです  | 
| \$1\$1\$1unixEpochFrom()`  | 現在アクティブな時間選択の開始が Unix タイムスタンプに置き換えられます。例えば、\$11494410783\$1 などです | 
| \$1\$1\$1unixEpochTo() | 現在アクティブな時間選択の最後が Unix タイムスタンプに置き換えられます。例えば、\$11494497183\$1 などです | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 指定された列名とナノ秒タイムスタンプとして表される時刻を使用して、時間範囲フィルターに置き換えられます。例えば、\$1dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872\$1 などです | 
| \$1\$1\$1unixEpochNanoFrom() | 現在アクティブな時間選択の開始がナノ秒タイムスタンプに置き換えられます。例えば、\$11494410783152415214\$1 などです | 
| \$1\$1\$1unixEpochNanoTo() | 現在アクティブな時間選択の終了がナノ秒タイムスタンプに置き換えられます。例えば、\$11494497183142514872\$1 などです | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | \$1\$1\$1 timeGroup と同じですが、時刻は Unix タイムスタンプとして格納されます。 | 

## テーブルクエリ
<a name="postgresql-table-queries"></a>

 クエリオプションが**[]テーブル としてフォーマット**に設定されている場合、基本的に任意のタイプの SQL クエリを実行できます。テーブルパネルには、クエリが返す列と行の結果が自動的に表示されます。

 テーブルパネルの列名は、通常の `as` SQL 列選択構文を使用して制御できます。

## 時系列クエリ
<a name="postgresql-time-series-queries"></a>

 **[Format as]** を `Time series` に設定する場合、例えばグラフパネルで使用するには、クエリは SQL 日時または Unix エポックを表す任意の数値データ型を返す `time` という名前の列を返す必要があります。`time` および `metric` を除くすべての列は、値列として扱われます。値列のメトリクス名として使用される `metric` という名前の列を返すことができます。複数の値列と `metric` という名前の列を返す場合、この列はシリーズ名のプレフィックスとして使用されます。

 時系列クエリの結果セットは、時間別にソートする必要があります。

 次のコード例は、`metric` 列を示しています。

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double"),
  'min' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

 次のコード例は、\$1\$1\$1timeGroup マクロの fill パラメータを使用して NULL 値をゼロに変換する方法を示しています。

```
SELECT
  $__timeGroup("createdAt",'5m',0),
  sum(value) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter("createdAt")
GROUP BY time, measurement
ORDER BY time
```

 次のコード例は、複数の 列を示しています。

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double") as "min_value",
  max("value_double") as "max_value"
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

## テンプレート作成
<a name="postgresql-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレート](templates-and-variables.md#templates)」を参照してください。

### クエリ変数
<a name="postgresql-query-variable"></a>

 タイプ `Query` のテンプレート変数を追加すると、測定名、キー名、ドロップダウン選択ボックスとして表示されるキー値などを返すことができる PostgreSQL クエリを記述できます。

 例えば、テンプレート変数*クエリ*設定でこのようなクエリを指定した場合、テーブル内の `hostname` 列のすべての値を含む変数を指定できます。

```
SELECT hostname FROM host
```

 クエリは複数の列を返すことができ、Grafana はそれらの列からリストを自動的に作成します。例えば、次のクエリは、 `hostname` と `hostname2` の値を含むリストを返します。

```
SELECT host.hostname, other_host.hostname2 FROM host JOIN other_host ON host.city = other_host.city
```

 クエリで `$__timeFilter(column)` などの時間範囲依存マクロを使用するには、テンプレート変数の更新モードを *[時間範囲変更]* に設定する必要があります。

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 もう 1 つのオプションは、キー/値変数を作成できるクエリです。クエリは、 `__text` と `__value` という名前の 2 つの列を返します。`__text` 列値は一意である必要があります (一意でない場合は、最初の値が使用されます）。ドロップダウンリストのオプションには、わかりやすい名前をテキストとして、ID を値として指定できるテキストと値があります。`hostname` をテキスト、`id` を値とするクエリの例: 

```
SELECT hostname AS __text, id AS __value FROM host
```

 ネストされた変数も作成できます。`region` という名前の変数を使用すると、ホスト変数に現在選択されているリージョンのホストのみを表示させることができます。次のコード例は、このようなクエリを示しています (`region` が複数値変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します)。

```
SELECT hostname FROM host  WHERE region IN($region)
```

#### `__searchFilter` を使用してクエリ変数で結果をフィルタリングする
<a name="postgresql-using-__searchfilter-to-filter-results-in-query-variable"></a>

 クエリフィールドで `__searchFilter` を使用すると、ドロップダウン選択ボックスのユーザータイプに基づいてクエリ結果がフィルタリングされます。ユーザーによって何も入力されていない場合、`__searchFilter` のデフォルト値は `%` です。

**注記**  
 Grafana はこれを行わないため、`__searchFilter` 式を引用符で囲むことが重要です。

 次の例は、`__searchFilter` をクエリフィールドの一部として使用してユーザーがドロップダウン選択ボックスに入力するときに `hostname` を検索できるようにします。

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

### クエリでの変数の使用
<a name="postgresql-using-variables-in-queries"></a>

 テンプレート変数の値は、テンプレート変数が `multi-value` の場合にのみ引用符で囲まれます。

 変数が複数値の変数の場合は、`=` を使用して複数の値と照合するのではなく、`IN` 比較演算子を使用します。

 2 つの構文があります。

 `$<varname>` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]` `hostname` という名前のテンプレート変数の例: 

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 複数値変数の引用をオフにする
<a name="postgresql-disabling-quoting-for-multi-value-variables"></a>

 Amazon Managed Grafana は、複数値変数に対して引用符で囲まれたカンマ区切り文字列を自動的に作成します。例えば、`server01` と `server02` を選択した場合、`'server01', 'server02'` の形式になります。引用を無効にするには、変数に csv フォーマットオプションを使用します。

 `${servers:csv}` 

 変数形式オプションの詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

## ‏注釈
<a name="postgresql-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイします。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 次のコード例は、エポック値を持つ時間列を使用したクエリを示しています。

```
SELECT
  epoch_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 次のコード例は、エポック値を持つ時間列と timeend 列を使用するリージョンクエリを示しています。

**注記**  
 これは Grafana v6.6 以降でのみ使用できます。

```
SELECT
  epoch_time as time,
  epoch_time_end as timeend,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 次のコード例は、ネイティブ SQL 日付/時刻データ型の時刻列を使用したクエリを示しています。

```
SELECT
  native_date_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  名前  |  説明  | 
| --- | --- | 
|  time  |  日付/時刻フィールドの名前。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます。 | 
|  timeend  |  終了日時フィールドのオプション名。ネイティブ SQL 日付/時刻データ型またはエポック値を持つ列にすることができます (Grafana v6.6 以降)。 | 
|  text  |  イベントの説明フィールド。 | 
|  tags  |  カンマ区切り文字列としてイベントタグに使用するオプションのフィールド名。 | 

## [アラート]
<a name="postgresql-alerting"></a>

 時系列クエリは、アラート条件で機能します。テーブル形式のクエリは、アラートルール条件ではまだサポートされていません。

# Tempo データソースへの接続
<a name="tempo-data-source"></a>

 Tempo は、Grafana Labs の大容量で、依存関係が最小のトレースストレージ、OSS トレースソリューションです。

## データソースの追加
<a name="tempo-adding-the-data-source"></a>

 Tempo 設定にアクセスするには、**[設定]** (歯車) アイコンを選択してから**[データソース]** を選択し、**[Tempo]** を選択します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  パネル、クエリ、Explore でデータソースを参照するために使用する名前。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  URL  |  Tempo インスタンスの URL。例: http://tempo。 | 
|  Basic Auth  |  Tempo データソースへの基本認証を有効にします。 | 
|  User  |  基本認証のユーザー名。 | 
|  Password  |  基本認証のパスワード。 | 

## ログへのトレース
<a name="tempo-trace-to-logs"></a>

 これはログへのトレース機能の設定です。現在、ターゲットデータソースは Loki である必要があります。詳細については、「[トレース統合](explore.md#tracing-integration)」を参照してください。
+ **データソース** – ターゲットデータソース。
+ **タグ** – Loki クエリで使用するタグ。デフォルトは `'cluster', 'hostname', 'namespace', pod'` です。
+ **スパン開始時刻シフト** – スパン開始時刻に基づいた Loki クエリの開始時刻のシフト。過去に拡張するには、負の値を使用する必要があります。ここで使用できる時間単位は、5s、1m、3h などです。デフォルトは 0 です。
+ **スパン終了時刻シフト** – スパン終了時刻に基づいた Loki クエリの終了時刻のシフト。ここで使用できる時間単位は、5s、1m、3h などです。デフォルトは 0 です。

## クエリのトレース
<a name="tempo-query-traces"></a>

 Explore を使用して Tempo からトレースをクエリおよび表示できます。データソース設定ページでログの追跡設定をすると、トレースを検索できます。視覚化するトレースを見つける際は、Loki クエリエディタを使用します。検索結果を取得する場合は、このデータソースを指す派生フィールドを設定する必要があります。

特定のトレースをクエリするには、TraceID クエリタイプを選択してから、その ID を Trace ID フィールドに入力します。

## ログからトレース ID へのリンク
<a name="tempo-linking-trace-id-from-logs"></a>

 内部リンクを設定すると、Loki または Elastic のログから Tempo トレースにリンクできます。詳細については、「[派生フィールド](using-loki-in-AMG.md#loki-derived-fields)」を参照してください。

# テスト用 TestData データソースの設定
<a name="testdata-data-source"></a>

Grafana には、任意のパネルにシミュレーションされた時系列データを作成するための TestData データソースが付属しています。このデータソースを使用すると、独自の即席のランダムな時系列データを構築して、任意のパネルにレンダリングできます。これにより、ダッシュボードの機能を検証して、安全かつ簡単にデータを共有できます。

**データソースの設定**

**TestData のデータソース設定にアクセスする方法**

1. **[設定]** (歯車) アイコンを選択します。

1. **[データソース]** を選択します。

1. **[TestData]** を選択します。

データソースには、すべてのデータソースに共通する最も基本的なオプション以外の設定はありません。


|  名前  |  説明  | 
| --- | --- | 
|  `Name`  |  パネル、クエリ、Explore のデータソース名。  | 
|  `Default`  |  このデータソースを新しいパネル用に事前選択するかどうか。  | 

**モックデータの作成**

TestData データソースが追加されました。Grafana インスタンスのユーザーはこれをデータソースとして任意のメトリクスパネルで使用できます。このデータソースには、選択した TestData シナリオに基づいて使用できるモックデータが用意されています。

**シナリオの選択**

クエリエディタの代わりに TestData データソースを使用すると、シミュレーションされたデータをパネルに生成する**シナリオ**を選択する際に役立ちます。

各シナリオには**エイリアス**を割り当てることができ、多くのシナリオには選択時に表示される独自のオプションがあります。

**使用可能なシナリオ:**
+ **注釈**
+ **条件付きエラー**
+ **CSV コンテンツ**
+ **CSV ファイル**
+ **CSV メトリクス値**
+ **範囲外のデータポイント**
+ **指数ヒートマップバケットデータ**
+ **Grafana API**
+ **[Grafana Live]**
+ **線形ヒートマップバケットデータ**
+ **Apache Arrow データのロード**
+ **ログ**
+ **データポイントなし**
+ **ノードグラフ**
+ **予測可能 CSV ウェーブ**
+ **予測可能パルス**
+ **ランダムウォーク**
+ **ランダムウォーク (エラーあり)**
+ **ランダムウォークテーブル**
+ **未加工フレーム**
+ **シミュレーション**
+ **スロークエリ**
+ **ストリーミングクライアント**
+ **テーブル静的**
+ **USA 生成データ**

**事前設定のダッシュボードのインポート**

TestData にはダッシュボード例も用意されています。

**サンプルダッシュボードのインポート方法**

1. データソースの設定ページに移動します。

1. **[ダッシュボード]** タブを選択します。

1. **[シンプルなストリーミング例]** ダッシュボードの **[インポート]** を選択します。

**インポートされたダッシュボードのカスタマイズ方法:**

インポートしたダッシュボードをカスタマイズする際は、別の名前で保存することをお勧めします。そうしないと、Grafana をアップグレードしたときにカスタマイズされたダッシュボードが新しいバージョンで上書きされる可能性があります。

**テストデータを使用して問題をレポート**

GitHub の GrafanaLabs に時系列データの使用またはレンダリングに関する問題を報告する場合は、このデータソースを使用して問題を再現することを強くお勧めします。そうすると、デベロッパーが問題を再現して解決するのが容易になります。

# Zipkin データソースへの接続
<a name="zipkin-data-source"></a>

 Zipkin はオープンソースで、分散トレースシステムです。Amazon Managed Grafana の Explore でトレースに対してクエリを実行できるようにする Zipkin データソースを追加します。

## データソースの追加
<a name="zipkin-adding-the-data-source"></a>

 Zipkin 設定にアクセスするには、**設定** (歯車) アイコンを選択してから**データソース**を選択し、**[Zipkin]** を選択します。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これはパネル、クエリ、Explore でデータソースを表示する方法です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  URL  |  Zipkin インスタンスの URL。例: http://localhost:9411。 | 
|  Access  |  サーバー (デフォルト) = URL は Grafana バックエンド/サーバーからアクセス可能である必要があります。 | 
|  Basic Auth  |  Zipkin データソースへの基本認証を有効にします。 | 
|  User  |  基本認証のユーザー名。 | 
|  Password  |  基本認証のパスワード。 | 

## クエリのトレース
<a name="zipkin-query-traces"></a>

 Zipkin からのトレースのクエリ実行と表示は、Explore から可能です。

 Zipkin クエリエディタを使用すると、トレース ID で直接クエリを実行、またはトレースセレクタからトレースを選択できます。トレース ID でクエリするには、ID をテキスト入力に挿入します。

 トレースセレクタを使用して、Explore で選択した時間範囲にログ記録されたすべてのトレースから特定のトレースを選択します。トレースセレクターには 3 つのレベルのネストがあります: 1. これはユーザーが関心を持つサービスです。1. 特定のオペレーションは、選択したサービス 1 の一部です。選択したオペレーションが発生した特定のトレースであり、ルートオペレーション名とトレース期間で表されます。

## トレース UI のデータマッピング
<a name="zipkin-data-mapping-in-the-trace-ui"></a>

 Zipkin の注釈は、注釈キーに注釈値を示すログとしてトレースビューに表示されます。

## ログからトレース ID へのリンク
<a name="zipkin-linking-trace-id-from-logs"></a>

 Loki のログから Zipkin トレースにリンクするためには、内部リンクを使用して派生フィールドを設定します。詳細については、「[派生フィールド](using-loki-in-AMG.md#loki-derived-fields)」を参照してください。