次の方法で共有


チュートリアル: Azure Managed Grafana を使用して Java メトリック ダッシュボードをビルドする

このチュートリアルでは、Azure Managed Grafana を使用してメトリック ダッシュボードを設定し、Azure Container Apps で実行されている Java アプリケーションを監視する方法について説明します。

Grafana は、監視業界で一元化されたメトリックの視覚化と監視に使用される一般的なツールです。 Azure Managed Grafana は、シームレスな Azure 統合を使用して Grafana ダッシュボードをデプロイおよび管理できるフル マネージドの Azure サービスです。 Azure Managed Grafana を使用して、Azure Container Apps によって公開される Java メトリックを視覚化したり、Java メトリックを既存の Grafana ダッシュボードに統合したりできます。

このチュートリアルでは、次の作業を行いました。

  • Azure Managed Grafana インスタンスを作成します。
  • Grafana で Java メトリック ダッシュボードを作成します。
  • Grafana を使用して Azure Container Apps の Java メトリックを視覚化します。

前提条件

環境を設定する

以下の手順を実行して環境変数を定義し、Azure Managed Grafana 拡張機能を最新の状態にします。

  1. Grafana の構成をサポートする変数を作成します。

    export LOCATION=eastus
    export SUBSCRIPTION_ID={subscription-id}
    export RESOURCE_GROUP=grafana-resource-group
    export GRAFANA_INSTANCE_NAME=grafana-name
    
    Variable 説明
    LOCATION Azure Managed Grafana インスタンスを作成する Azure リージョンの場所。
    SUBSCRIPTION_ID Azure Container Apps と Azure Managed Grafana インスタンスの作成に使用するサブスクリプション ID。
    RESOURCE_GROUP Azure Managed Grafana インスタンスの Azure リソース グループ名。
    GRAFANA_INSTANCE_NAME Azure Managed Grafana インスタンスのインスタンス名。
  2. Azure CLI を使用して Azure にログインします。

    az login
    
  3. リソース グループを作成する。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. 次のコマンドを使用して、Azure Managed Grafana 用の Azure CLI 拡張機能の最新バージョンがあることを確認します。

    az extension add --name amg --upgrade
    

Azure Managed Grafana インスタンスを設定する

まず、Azure Managed Grafana インスタンスを作成し、必要なロールの割り当てを付与します。

  1. Azure Managed Grafana インスタンスを作成します。

    az grafana create \
        --name $GRAFANA_INSTANCE_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Azure Monitor からメトリックを読み取るために、Azure Managed Grafana インスタンスに "監視閲覧者" ロールを付与します。 詳細については、Azure Managed Grafana の認証とアクセス許可に関するページを参照してください。

    GRAFA_IDDENTITY=$(az grafana show --name $GRAFANA_INSTANCE_NAME --resource-group $RESOURCE_GROUP --query "identity.principalId" --output tsv)
    
    az role assignment create --assignee $GRAFA_IDDENTITY --role "Monitoring Reader" --scope /subscriptions/$SUBSCRIPTION_ID
    

Java メトリック ダッシュボードを作成する

重要

Grafana に新しいダッシュボードを追加するには、Grafana Admin または Grafana Editorロールが必要です。Azure Managed Grafana ロールに関するページを参照してください。

  1. Azure Managed Grafana リソースのアカウントに Grafana Admin ロールを割り当てます。

    Azure Managed Grafana インスタンスのリソース ID を取得します。

    GRAFANA_RESOURCE_ID=$(az grafana show --resource-group $RESOURCE_GROUP --name $GRAFANA_INSTANCE_NAME --query id --output tsv)
    

    このコマンドを実行する前に、<USER_OR_SERVICE_PRINCIPAL_ID> プレースホルダーをユーザーまたはサービス プリンシパル ID に置き換えてください。

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Grafana Admin" \
        --scope $GRAFANA_RESOURCE_ID
    
  2. Azure Container Apps 用のサンプル Java メトリック ダッシュボード JSON ファイルをダウンロードします。

  3. Azure Managed Grafana リソースのエンドポイントを取得します。

    az grafana show --resource-group $RESOURCE_GROUP \
       --name $GRAFANA_INSTANCE_NAME \
       --query "properties.endpoint" \
       --output tsv
    

    このコマンドは、Azure Managed Grafana ダッシュボードへのアクセスに使用できる URL を返します。 URL とログインを使用してブラウザーを開きます。

  4. [Dashboard]>[New] ->[Import] にアクセスします。 上記のサンプル ダッシュボード JSON ファイルをアップロードし、既定の組み込みの Azure Monitor データ ソースを選択し、[Import] ボタンをクリックします。

    Azure Container Apps の Java メトリック ダッシュボードをインポートしているスクリーンショット。

Grafana を使用して Azure Container Apps の Java メトリックを視覚化する

  1. Azure Container Apps のフィルターにリソース情報を入力します。 これで、ダッシュボード内の Azure Container Apps でサポートされている Java メトリックをすべて表示できるようになりました。 サンプル ダッシュボードは、次のようなライブ メトリック データを提供します。

    • コンテナー アプリの概要
    • JVM のメモリ使用量
    • JVM のメモリ バッファー
    • JVM GC JVM GC
    • JVM の詳細なメモリ利用状況分析

    Grafana の [概要] タブのスクリーンショット。

    Grafana の [JVM メモリ] タブのスクリーンショット。

    Grafana の [JVM バッファー メモリ] タブのスクリーンショット。

    Grafana の [JVM GC] タブのスクリーンショット。

    Grafana の [JVM メモリ分析] タブのスクリーンショット。

このダッシュボードを出発点として、独自のカスタマイズされたメトリックの視覚化と監視ソリューションを作成できます。

リソースをクリーンアップする

このチュートリアルで作成したリソースは、Azure の請求書に影響します。 これらのサービスを長期間使用しない場合は、次のコマンドを実行して、このチュートリアルで作成したすべてのものを削除してください。

az group delete --resource-group $RESOURCE_GROUP