你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Azure 托管 Grafana 生成 Java 指标仪表板

本教程介绍如何使用 Azure 托管 Grafana 设置指标仪表板,以监视在 Azure 容器应用中运行的 Java 应用程序。

Grafana 是一种常用的工具,可用于集中监视可观测行业中的指标可视化和监视。 Azure 托管 Grafana 是一项完全托管的 Azure 服务,可用于通过无缝 Azure 集成部署和管理 Grafana 仪表板。 可以使用 Azure 托管 Grafana 可视化 Azure 容器应用公开的 Java 指标,或将 Java 指标集成到现有的 Grafana 仪表板中。

在本教程中,你将了解:

  • 创建 Azure 托管 Grafana 实例。
  • 在 Grafana 中创建 Java 指标仪表板。
  • 使用 Grafana 可视化 Azure 容器应用的 Java 指标。

先决条件

设置环境

使用以下步骤来定义环境变量并确保 Azure 托管 Grafana 扩展保持最新。

  1. 创建变量以支持 Grafana 配置。

    export LOCATION=eastus
    export SUBSCRIPTION_ID={subscription-id}
    export RESOURCE_GROUP=grafana-resource-group
    export GRAFANA_INSTANCE_NAME=grafana-name
    
    变量 说明
    LOCATION 在其中创建 Azure 托管 Grafana 实例的 Azure 区域位置。
    SUBSCRIPTION_ID 用于创建 Azure 容器应用和 Azure 托管 Grafana 实例的订阅 ID。
    RESOURCE_GROUP Azure 托管 Grafana 实例的 Azure 资源组名称。
    GRAFANA_INSTANCE_NAME Azure 托管 Grafana 实例的实例名称。
  2. 使用 Azure CLI 登录 Azure。

    az login
    
  3. 创建资源组。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. 使用以下命令确保所具有的是最新版本的 Azure 托管 Grafana 的 Azure CLI 扩展。

    az extension add --name amg --upgrade
    

设置 Azure 托管 Grafana 实例

首先,创建 Azure 托管 Grafana 实例,并授予必要的角色分配。

  1. 创建 Azure 托管 Grafana 实例。

    az grafana create \
        --name $GRAFANA_INSTANCE_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. 授予 Azure 托管 Grafana 实例“监视读取者”角色,以从 Azure Monitor 读取指标。 详细了解 Azure 托管 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 AdminGrafana Editor 角色,请参阅 Azure 托管 Grafana 角色

  1. Grafana Admin 角色分配给 Azure 托管 Grafana 资源上的帐户。

    获取 Azure 托管 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 容器应用 json 文件的示例 Java 指标仪表板

  3. 获取 Azure 托管 Grafana 资源的终结点。

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

    此命令返回可用于访问 Azure 托管 Grafana 仪表板的 URL。 使用 URL 打开浏览器并登录。

  4. 转到 Dashboard>New ->Import。 上传上述示例仪表板 JSON 文件,然后选择默认的内置 Azure Monitor 数据源,然后单击“Import”按钮。

    导入 Azure 容器应用的 Java 指标仪表板的屏幕截图。

使用 Grafana 可视化 Azure 容器应用的 Java 指标

  1. 在 Azure 容器应用的筛选器中输入资源信息。 现在,可以在仪表板中查看 Azure 容器应用支持的所有 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