Azure Monitor データソースに接続する - Amazon Managed Grafana

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

Azure Monitor データソースに接続する

Azure Monitor データソースは、Azure クラウド内の複数のサービスをサポートしています。

  • Azure Monitor サービスは、Azure リソースをモニタリングするための単一のソースを提供するプラットフォームサービスです。詳細については、「Azure Monitor サービスのクエリ」を参照してください。

  • Application Insights サーバーは、複数のプラットフォーム上のウェブデベロッパー向けの拡張可能なアプリケーションパフォーマンス管理 (APM) サービスであり、ライブウェブアプリケーションをモニタリングするために使用できます。これにより、パフォーマンスの異常が自動的に検出されます。詳細については、「Application Insights Analytics サービスのクエリ」を参照してください。

  • Azure Log Analytics (または Azure Logs) では、Azure Monitor によって収集されたログデータにアクセスできます。詳細については、「Azure Log Analytics サービスのクエリ」を参照してください。

  • Application Insights Analytics サービスを使用して、Azure Log Analytics で使用されているのと同じクエリ言語を使用して Application Insights データをクエリします。詳細については、「Application Insights Analytics サービスのクエリ」を参照してください。

データソースの追加

データソースは、4 つの異なる サービスのメトリクスにアクセスできます。使用するサービスへのアクセスを設定できます。Azure AD で設定する方法であれば、複数のサービスに同じ認証情報を使用することもできます。

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

  2. 名前フィールドに、Grafana はデータソースの名前、Azure Monitorまたは などの名前を自動的に入力しますAzure Monitor - 3。複数のデータソースを設定する場合は、名前をより情報の多いものに変更します。

  3. Azure Monitor を使用している場合は、Azure ポータルから 4 つの情報が必要です (詳細な手順については、前述のリンクを参照してください)。

    • テナント ID (Azure Active Directory、プロパティ、ディレクトリ ID)

    • クライアント ID (Azure Active Directory、アプリ登録、アプリの選択、アプリケーション ID)

    • クライアントシークレット (Azure Active Directory、アプリ登録、アプリの選択、キー)

    • デフォルトのサブスクリプション ID (サブスクリプション、サブスクリプションの選択、概要、サブスクリプション ID)

  4. Azure Monitor API の詳細セクションのフィールドに、これら 4 つの項目を貼り付けます。

    • サブスクリプション ID はクエリごとに変更できます。データソースを保存し、ページを更新して、指定されたクライアント ID で利用可能なサブスクリプションのリストを表示します。

  5. Azure Log Analytics サービスも使用している場合は、これら 2 つの設定値を指定するか、前のステップのクライアント ID とシークレットを再利用する必要があります。

    • クライアント ID (Azure Active Directory、アプリ登録、アプリの選択、アプリケーション ID)

    • クライアントシークレット (Azure Active Directory、アプリ登録、アプリの選択、キー、キーの作成、クライアントシークレットの使用)

  6. Application Insights を使用している場合は、Azure ポータルから 2 つの情報が必要です (詳細な手順については、前述のリンクを参照してください)。

    • アプリケーション ID

    • API キー

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

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

または、ステップ 4 で新しい Azure Active Directory アプリを作成する場合は、Azure CLI を使用します。

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

サービスの選択

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

  • Azure Monitor

  • Application Insights

  • Azure Log Analytics

  • Insights Analytics

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

Azure Monitor サービスのクエリ

Azure Monitor サービスは、実行しているすべての Azure サービスのメトリクスを提供します。Azure 上のアプリケーションがどのように動作しているかを理解し、アプリケーションに影響を与える問題をプロアクティブに検出するのに役立ちます。

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

サービスから取得できるメトリクスの例は次のとおりです。

  • Microsoft.Compute/virtualMachines - Percentage CPU

  • Microsoft.Network/networkInterfaces - Bytes sent

  • Microsoft.Storage/storageAccounts - Used Capacity

クエリエディタを使用すると、複数のディメンションをサポートしているメトリクスをクエリできます。複数のディメンションをサポートするメトリクスは、Azure Monitor がサポートするメトリクスリストにリストされ、メトリクスのディメンション列に 1 つ以上の値がリストされているメトリクスです。

Azure Monitor のエイリアスを使用した凡例キーのフォーマット

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

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

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

Azure Monitor の例:

  • Blob Type: {{ blobtype }}

  • {{ resourcegroup }} - {{ resourcename }}

Azure Monitor のエイリアスパターン

  • {{ resourcegroup }} = リソースグループの値に置き換えられます

  • {{ namespace }} = を名前空間の値 (Microsoft.Compute/virtualMachines など) に置き換えます。

  • {{ resourcename }} = リソースネームの値に置き換えられます

  • {{ metric }} = メトリクス名に置き換えられます (例: CPU の割合)

  • {{ dimensionname }} = 7.1 以降 (下位互換性のため) の最初のディメンションのキー/ラベル (キー/ラベルでソート) (blobtype など) に置き換えられたレガシー

  • {{ dimensionvalue }} = 7.1 以降 (下位互換性のため) の最初のディメンションの値 (キー/ラベルでソート) に置き換えられたレガシー (例:BlockBlob)

  • {{ arbitraryDim }} = 7.1 以降で使用可能、対応するディメンションの値に置き換えられます (例えば、{{ blobtype }} は になります BlockBlob)。

Azure Monitor のテンプレート変数の作成

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

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

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

名前 説明
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) 指定されたサブスクリプションのメトリクス名のリストを返します。

例:

  • Resource Groups クエリ: ResourceGroups()

  • メトリクス名変数の受け渡し: Namespaces(cosmo)

  • テンプレート変数の連鎖: ResourceNames($rg, $ns)

  • パラメータを引用符で囲まないでください。 MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)

テンプレート変数とテンプレート変数の詳細については、「」を参照してくださいテンプレート

サポートされている Azure Monitor メトリクスのリスト

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

Azure Monitor アラート

Grafana アラートは Azure Monitor サービスでサポートされています。これは Azure アラートのサポートではありません。Grafana アラートの詳細については、「」を参照してくださいGrafana アラート

Application Insights サービスのクエリ

Application Insights のエイリアスを使用した凡例キーのフォーマット

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

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

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

Application Insights の例:

  • city: {{ client/city }}

  • {{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]

Application Insights のエイリアスパターン

  • {{ groupbyvalue }} = Grafana 7.1+ 時点のレガシー (下位互換性用) を、最初のディメンションのキー/ラベル (キー/ラベルでソート) に置き換えました

  • {{ groupbyname }} = Grafana 7.1+ 時点のレガシー (下位互換性用) を最初のディメンションの値 (キー/ラベルでソート) に置き換えました (例:BlockBlob)

  • {{ metric }} = メトリクス名 (リクエスト/カウントなど) に置き換えられます

  • {{ arbitraryDim }} = 7.1 以降で使用可能。 は対応するディメンションの値に置き換えられます。 (例えば、{{ client/city }} はシカゴになります)

Application Insights のフィルター式

フィルターフィールドは 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 の変数を使用したテンプレート作成

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

テンプレート変数とテンプレート変数の詳細については、「」を参照してくださいテンプレート

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

例:

  • メトリクス名クエリ: AppInsightsMetricNames()

  • メトリクス名変数を渡す: AppInsightsGroupBys(requests/count)

  • テンプレート変数の連鎖: AppInsightsGroupBys($metricnames)

Application Insights アラート

Grafana アラートは Application Insights でサポートされています。これは Azure アラートのサポートではありません。Grafana アラートの詳細については、「」を参照してくださいGrafana アラート

Azure Log Analytics サービスのクエリ

クエリは、新しい Azure Log Analytics (または KustoDB) クエリ言語 で記述されます。ログ分析クエリは、時系列データまたはテーブルデータとしてフォーマットできます。

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

時系列クエリ

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

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

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

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

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

追加の数値列 (複数のディメンションの有無にかかわらず) を選択することもできます。例えば、時間、コンピュータ、 でカウント 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 構文 と を使用して列の名前を変更します。これは、スペースを許可する 2 番目の構文Samples=count()["Avg Value"]=...です。これにより、Grafana が使用するメトリクスの名前が変更されます。その結果、シリーズ凡例やテーブル列などのモノは、指定した内容と一致します。この例では、 の代わりに Samplesが表示されます_count

テーブルクエリ

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

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

ログ分析の表示名のフォーマット

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

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

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

Azure Log Analytics マクロ

クエリの書き込みを容易にするために、Grafana にはクエリの where 句で使用できるマクロがいくつか用意されています。

  • $__timeFilter() – Grafana タイムピッカーからの日時の と がTimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) andTimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)どこにあるかに拡張されます。

  • $__timeFilter(datetimeColumn) – Grafana タイムピッカーからの日時の と がdatetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) anddatetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)どこにあるかに拡張されます。

  • $__timeFrom() – Grafana ピッカーから From datetime を返します。例えば、datetime(2018-06-05T18:09:58.907Z) などです。

  • $__timeTo() – Grafana ピッカーから From datetime を返します。例えば、datetime(2018-06-05T20:09:58.907Z) などです。

  • $__escapeMulti($myVar) – は、無効な文字を含む複数値のテンプレート変数で使用されます。$myVar に文字列 として次の 2 つの値がある場合'\\grafana-vm\Network(eth0)\Total','\\hello!'、 に拡張されます@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'。単一値変数を使用する場合、このマクロは必要ありません。代わりに変数をインラインでエスケープします: @'\$myVar'

  • $__contains(colName, $myVar) – は複数値のテンプレート変数で使用されます。$myVar に値 がある場合'value1','value2'、 に拡張されますcolName in ('value1','value2')

    All オプションを使用する場合は、Include All Option チェックボックスをオンにし、Custom all value フィールドに と入力しますall。に値 $myVarがある場合all、マクロは代わりに に展開されます1 == 1。オプションが多数あるテンプレート変数の場合、大きな「where..in」句を作成しないため、クエリのパフォーマンスが向上します。

Azure Log Analytics の組み込み変数

Azure Log Analytics クエリで使用できる Grafana 変数もあります。

  • $__interval - Grafana は、クエリで時間別にグループ化するために使用できる最小時間粒度を計算します。5m や などの時間粒度を返1hすので、 など、bin 関数で使用できますsummarize count() by bin(TimeGenerated, $__interval)。間隔変数の詳細については、「」を参照してください間隔変数の追加

Azure Log Analytics の変数を使用したテンプレート作成

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

テンプレートとテンプレート変数の詳細については、「」を参照してくださいテンプレートと変数

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

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

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

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

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 のログ分析クエリエディタへのディープリンク

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

現在 Azure ポータルにログインしていない場合、リンクをクリックするとログインページが開きます。提供されたリンクはどのアカウントでも有効ですが、アカウントがクエリで指定された Azure Log Analytics ワークスペースにアクセスできる場合にのみクエリが表示されます。

Azure Log Analytics アラート

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

Application Insights Analytics サービスのクエリ

サービスタイプを Insights Analytics に変更すると、ログ分析サービスと同様のエディタを使用できます。このサービスは Kusto 言語も使用するため、データのクエリ手順は と同じですがAzure Log Analytics サービスのクエリ、代わりに Application Insights Analytics データをクエリする点が異なります。