Grafana で Azure Data Explorer のデータを視覚化する
[アーティクル] 07/25/2023
16 人の共同作成者
フィードバック
この記事の内容
Grafana は、データのクエリと視覚化を行い、視覚化に基づいてダッシュボードを作成して共有できる分析プラットフォームです。 Grafana には Azure Data Explorer プラグイン が用意されており、Azure Data Explorerからデータに接続して視覚化できます。 このプラグインは 、Azure Managed Grafana とセルフホステッド Grafana の両方で動作します。
この記事では、 クラスターを Grafana のデータ ソースとして構成し、Grafana for Azure Managed Grafana とセルフホステッド Grafana でデータを視覚化する方法について説明します。 この記事の例を確認するには、 StormEvents サンプル データを取り込みます 。 StormEvents サンプル データセットには、 国立環境情報センター の気象関連データが含まれています。
前提条件
Azure Data Explorerをデータ ソースとして構成するには、Grafana 環境の手順に従います。
ビューアー ロールにマネージド ID を追加する
Managed Grafana では、新しいワークスペースごとにシステム割り当てマネージド ID が既定で作成されます。 これを使用して、Azure Data Explorer クラスターにアクセスできます。
Azure portal で、Azure Data Explorer クラスターに移動します。
[ 概要 ] セクションで、 StormEvents サンプル データを含むデータベースを選択します。
[アクセス許可] > [ビューアーの追加] の順に選択 >します 。
検索ボックスに、Managed Grafana ワークスペース名を入力します。
検索結果で、ワークスペース名と一致する結果を選択し、[選択] を選択 します 。
Azure Data Explorerを Grafana データ ソースとして設定する
マネージド Grafana ワークスペースには、Azure Data Explorer プラグインがプレインストールされています。
Azure portalで、Managed Grafana ワークスペースに移動します。
[ 概要 ] で、[ エンドポイント ] リンクを選択して Grafana UI を開きます。
Grafana の左側のメニューで、歯車アイコンを選択します。 次 に、[データ ソース ] を選択します。
[Azure Data Explorer データソース ] を選択します。
[接続の詳細] に、Azure Data Explorer クラスターの URL を入力します。
[Save & Test]\(保存してテスト\) を選択します。
サービス プリンシパルの作成
サービス プリンシパルは、Azure portal で作成することも、Azure CLI コマンド ライン エクスペリエンスを使用して作成することもできます。 サービス プリンシパルを作成すると、後の手順で使用する 4 つの接続プロパティの値が取得されます。
Azure Portal
Azure portalドキュメント の手順に従います。 次の特定の情報を使用します。
「アプリケーションをロールに割り当てる 」で、Azure Data Explorer クラスターに閲覧者 ロールを割り当てます。
[ サインインの値を取得する ] セクションで、手順で説明されている 3 つのプロパティ ( ディレクトリ ID (テナント ID)、アプリケーション ID、パスワード) の値 を コピー します 。
Azure Portal で、 [サブスクリプション] を選びます。 次に、サービス プリンシパルを作成したサブスクリプションの ID をコピーします。
Azure CLI
次のコマンドを使用して、サービス プリンシパルを作成します。 適切なスコープを設定し、ロールの種類として reader
を設定します。
az ad sp create-for-rbac --name "https://{UrlToYourDashboard}:{PortNumber}" --role "reader" \
--scopes /subscriptions/{SubID}/resourceGroups/{ResourceGroupName}
詳細については、「 Azure CLI を使用して Azure サービス プリンシパルを作成する 」を参照してください。
コマンドは、次の例のような結果セットを返します。 、password
、および プロパティのappId
値をtenant
コピーします。
{
"appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"displayName": "{UrlToYourDashboard}:{PortNumber}",
"name": "https://{UrlToYourDashboard}:{PortNumber}",
"password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
サブスクリプションの一覧を取得します。
az account list --output table
適切なサブスクリプション ID をコピーします。
サービス プリンシパルをビューアー ロールに追加する
サービス プリンシパルが作成されたので、それを Azure Data Explorer データベースのビューアー ロールに追加します。 この作業は、Azure portal の [アクセス許可] で実行することも、 [クエリ] で管理コマンドを使用して実行することもできます。
Azure portal: アクセス許可
Azure portal で、Azure Data Explorer クラスターに移動します。
[ 概要 ] セクションで、StormEvents サンプル データを含むデータベースを選択します。
[アクセス許可] >[追加] の順に選択します。
[ データベースのアクセス許可の追加] で、 ビューアー ロールを選択し、[ プリンシパルの選択] を選択します 。
作成したサービス プリンシパルを検索します。 プリンシパルを選択し、[選択] を 選択します 。
[保存] を選択します。
管理コマンド: クエリ
Azure portalで、Azure Data Explorer クラスターに移動し、[クエリ] を選択します 。
クエリ ウィンドウで次のコマンドを実行します。 Azure portalまたは Azure CLI のアプリケーション ID とテナント ID を使用します。
.add database {TestDatabase} viewers ('aadapp={ApplicationID};{TenantID}')
コマンドは結果セットを返します。 次の例では、最初の行はデータベース内の既存のユーザー用です。 2 番目の行は、先ほど追加したサービス プリンシパル用です。
プロパティを指定し、接続をテストする
サービス プリンシパルがビューアー ロールに割り当てられているので、Grafana のインスタンスでプロパティを指定し、Azure Data Explorerへの接続をテストします。
Grafana の左側のメニューで、歯車アイコンを選択します。 次 に、[データ ソース ] を選択します。
[Add data source (データ ソースの追加)] を選択します。
[データ ソース/ 新規 ] ページで、データ ソースの名前を入力し、Azure Data Explorer データソース の種類を選択します。
[設定] [接続の詳細 ] > で、 という形式https://{ClusterName}.{Region}.kusto.windows.net
でクラスターの名前を入力します。 Azure portalまたは Azure CLI のその他の値を入力します。 ガイドとして、次のマッピング情報を使用します。
Grafana UI
Azure portal
Azure CLI
サブスクリプション ID
サブスクリプション ID
SubscriptionId
テナント ID
ディレクトリ ID
tenant
クライアント ID
アプリケーション ID
appId
クライアント シークレット
パスワード
password
[Save & Test]\(保存してテスト\) を選択します。
テストが成功した場合は、次のセクションに進みます。 問題が発生した場合は、Grafana で指定した値をチェックし、前の手順を確認します。
クエリの最適化
クエリの最適化には、次の 2 つの機能を使用できます。
最適化を実行するには、 [データ ソース] >[設定] >[Query Optimizations](クエリ最適化) で、必要な変更を行います。
ダッシュボードまたはビジュアルが 1 人以上のユーザーによって複数回レンダリングされると、Grafana は既定で少なくとも 1 つのクエリを Azure Data Explorerに送信します。
クエリ結果のキャッシュを 有効にして、ダッシュボードのレンダリング パフォーマンスを向上させ、Azure Data Explorer クラスターの負荷を軽減します。
Azure Data Explorer は、指定された時間範囲内で、結果キャッシュを使用して前の結果を取得し、不要なクエリを実行しません。 この機能は、複数のユーザーが同じダッシュボードを使用している場合に、リソースの負荷を軽減し、パフォーマンスを向上させるために特に有効です。
結果キャッシュのレンダリングを有効にするには、[クエリの最適化] ペインで次 の操作を 行います。
[ 動的キャッシュを使用する] を オフにします。
[Cache Max Age](最大キャッシュ時間) に、キャッシュされた結果を使用する時間を分単位で入力します。
弱い整合性を有効にする
クラスターは、強い整合性を使用して構成されます。 この既定の構成では、クエリ結果がクラスター内のすべての変更で最新の状態であることを保証します。
弱い整合性を有効にすると、クエリ結果のラグがクラスターの変更後 1 分から 2 分になる可能性があります。 ただし、一貫性が弱いと、ビジュアルのレンダリング時間が長くなることがあります。 即時整合性が重要ではなく、パフォーマンスが限界である場合は、弱い整合性を有効にしてパフォーマンスを向上させます。 詳細については、「 クエリの整合性 」を参照してください。
弱い一貫性を有効にするには、[ クエリの最適化 ] ペインで [ データ整合性 >の弱い ] を選択します。
データの視覚化
Grafana のデータ ソースとして Azure Data Explorerの構成が完了しました。 次に、データを視覚化します。
次の基本的な例では、クエリ ビルダー モードとクエリ エディターの生モードの両方を使用します。 データセットに対して実行する他のクエリの例については、Azure Data Explorerの書き込み クエリを表示することをお勧めします。
Grafana の左側のメニューで、プラスアイコンを選択します。 次に、[ダッシュボード] を選択 します 。
[Add]\(追加\) タブの [Graph]\(グラフ\) を選択します。
グラフ ペインで、[パネル タイトル >の編集] を選択します 。
ペインの下部にある [ データ ソース ] を選択し、構成したデータ ソースを選択します。
クエリ ビルダーモード
クエリ ビルダー モードを使用してクエリを定義します。
データ ソースの下にある [ データベース ] を選択し、ドロップダウン リストからデータベースを選択します。
[ 元] を選択し、ドロップダウン リストからテーブルを選択します。
テーブルが定義されたので、データをフィルター処理します。
[+ 場所] (フィルター) の右側にある を選択して、テーブル内の 1 つ以上の列を選択します。
フィルターごとに、該当する演算子を使用して値を定義します。 この選択は、Kusto 照会言語で where 演算子 を使用するのと似ています。
表に表示する値を選択します。
[+ 値 列] の右側を選択して、ペインに表示される値列を選択します。
値の列ごとに、集計の種類を設定します。
1 つ以上の値列を設定できます。 この選択は、summarize 演算子 を使用することと同じです。
[+ グループ化 (集計)] の右側を選択して、値をグループに配置するために使用する 1 つ以上の列を選択します。 この選択は、 演算子のグループ式と summarize
同じです。
[クエリの実行] を選択します。
ヒント
クエリ ビルダーで設定を終了すると、Kusto 照会言語クエリが作成されます。 このクエリは、グラフィカル クエリ エディターを使用して構築したロジックを示します。
[ KQL の編集] を 選択して生モードに移行します。 Kusto 照会言語の柔軟性と能力を使用してクエリを編集します。
raw モード
raw モードを使用してクエリを編集します。
クエリ ウィンドウで、次のクエリを貼り付け、[ 実行 ] を選択します。 このクエリでは、サンプル データセットのイベント数を日単位でバケット化します。
StormEvents
| summarize event_count=count() by bin(StartTime, 1d)
グラフには、過去 6 時間のデータにスコープ (既定) があるため、結果は表示されません。 上部のメニューで、[Last 6 hours](過去 6 時間) を選択します。
StormEvents サンプル データセットに含まれる 2007 年を対象とするカスタム範囲を指定します。 次に、[適用] を選択します。
これで、日単位でバケット処理された 2007 年のデータがグラフに表示されます。
上部のメニューで、保存アイコン を選択します。
クエリ ビルダー モードに切り替えるには、 [Switch to builder](ビルダーに切り替え) を選択します。 Grafana はクエリをクエリ ビルダーで使用可能なロジックに変換します。 クエリ ビルダーのロジックは制限されているため、クエリに対して行った手動の変更が失われる可能性があります。
アラートを作成する
[ホーム ダッシュボード] で 、[通知 >チャネル ] を選択して新しい通知チャネルを作成します。
名前を入力し、[ 新しい通知チャネル ] に「」と入力し、[保存] を選択 します 。
ダッシュボードで、ドロップダウン リストから [編集] を選択します。
アラート ベル アイコンを選択して、アラート ウィンドウを開きます。 [ アラートの作成 ] を選択し、アラートのプロパティを完了します。
ダッシュボードの保存 アイコンを選択して、変更を保存します。
関連コンテンツ