创建可视化信息中心

本页面介绍了在 系统监控实例。 使用信息中心在项目中执行监控操作,例如网络监控和服务器监控。

在可观测性平台收集 GDC 项目中部署的工作负载生成的指标后,配置会保存所有数据源的相关指标标签和汇总文件。然后,您可以创建自定义信息中心,以通过监控实例的用户界面 (UI) 查询和直观呈现特定指标。

信息中心是一种动态的可视化布局,包含一个或多个可自定义的面板,这些面板可与数据源中配置的 Prometheus 指标进行交互。通过发出查询,您可以使用这些面板直观呈现并显示 GDC 组件中的特定指标。

可观测性平台公开了一个 API,可让您配置指标的视觉排列自定义设置。例如,建立验收阈值、显示适当的信号、标记图表,以及选择一致的时间分辨率。

可用的信息中心

假设您的环境已启动并运行,您会立即在监控实例的首页中看到几个指标信息中心。例如,您可以观察交换机状态和系统组件的运行状况。

使用交换机和集群信息中心监控集群和节点指标。访问日志记录和监控信息中心,以观察管理员集群。

首页,其中包含可用信息中心和最近查看的信息中心的列表

最相关的平台管理员 (PA) 指标如下:

  • Kubernetes / API 服务器:显示组织中每个集群的 API 服务器健康状况。
  • Kubernetes / 计算资源 / 多集群:显示组织范围内的资源利用率。
  • Kubernetes / 计算资源 / 集群:显示每个集群的资源利用率。
  • Kubernetes / 永久性卷:显示每个集群中 Kubernetes 永久性卷的利用率。
  • 节点状态:显示每个集群中每个节点的资源用量。
  • Pod 状态:显示每个集群中每个 Pod 的资源消耗情况。

下图显示了 Kubernetes / 计算资源 / 多集群信息中心的示例。

显示 CPU 使用率的折线图和显示 CPU 配额的集群列表

访问项目的监控实例

您必须获得授权才能访问监控信息中心。如需获得登录并查看项目监控实例中的指标所需的权限,请让组织 IAM 管理员为您授予“组织 Grafana 查看者”(organization-grafana-viewer) 角色。组织 IAM 管理员可以通过创建角色绑定来授予您访问权限:

kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer

替换以下内容:

  • ADMIN_KUBECONFIG:管理员集群的 kubeconfig 文件的路径。
  • USER_NAME:需要角色绑定的用户的账号名称。

如需详细了解角色分配,请参阅以下资源:

创建 Grafana 信息中心

本部分介绍了在 Grafana 实例中创建和管理信息中心的流程。

请按以下步骤在 GDC 中创建信息中心:

  1. 完成“准备工作”部分中的前提条件
  2. 打开项目的 Grafana 端点
  3. 为信息中心创建 ConfigMap 对象
  4. 创建 Dashboard 自定义资源 (CR)

准备工作

在创建信息中心之前,您必须先获取对监控实例的访问权限。如需了解详情,请参阅获取信息中心访问权限

  1. 在创建信息中心之前,请先从 GDC 项目中收集指标
  2. 如需登录、创建信息中心和直观呈现指标,请让项目 IAM 管理员为您授予 Project Grafana Viewer (project-grafana-viewer) 角色。
  3. 将 kubeconfig 文件的路径设置为环境变量:

    export KUBECONFIG=KUBECONFIG_FILE
    

    KUBECONFIG_FILE 替换为管理员集群上您要创建信息中心的 kubeconfig 文件的路径。

监控端点

打开以下网址以访问项目的端点:

https://GDC_URL/PROJECT_NAMESPACE/grafana

替换以下内容:

  • GDC_URL:您组织在 GDC 中的网址。
  • PROJECT_NAMESPACE:项目的命名空间。

为信息中心创建 ConfigMap 对象

请按照以下步骤创建包含信息中心 JSON 模型的 ConfigMap 对象:

  1. 前往项目的端点
  2. 在导航菜单中,点击 添加按钮。
  3. 在显示的下拉菜单中,点击信息中心。实例会创建一个空白信息中心。
  4. 在空白信息中心内,添加所需的所有面板。您可以自定义详细信息并修改面板,以提供查询或进行其他更新。

  5. 在菜单栏中,点击 信息中心设置按钮以打开设置页面。

  6. 在导航菜单中,点击 JSON Model 选项。

  7. 复制信息中心的 JSON 模型,并将其粘贴到纯文本文件中,以便随时使用。

  8. 将顶层 iduid 字段替换为 JSON 模型中的 null 值。

  9. 通过命令行创建 ConfigMap 对象。在 ConfigMap 对象的 data 部分中,粘贴您之前复制的 JSON 模型(位于 .json 文件中):

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        <JSON model of the dashboard>
        }
    EOF
    

    替换以下内容:

    • PROJECT_NAMESPACE:项目的命名空间。
    • DASHBOARD_CONFIGMAP_NAME:您要为 ConfigMap 对象指定的名称。
    • JSON_FILE_NAME:您要为粘贴信息中心 JSON 模型的文件的命名。

    如需查看此对象必须具有的外观示例,请参阅信息中心的 ConfigMap 示例

  10. 将信息中心的 ConfigMap 对象部署到管理员集群中。

ConfigMap 信息中心示例

以下 YAML 文件展示了 platform-obs 命名空间中指标的 ConfigMap 对象示例:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    namespace: platform-obs
    name: my-project-dashboard-configmap
  data:
    my-project-dashboard.json: |
      {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": "-- Grafana --",
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": true,
      "graphTooltip": 0,
      "id": null,
      "links": [],
      "panels": [],
      "schemaVersion": 27,
      "style": "dark",
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "",
      "title": "Sample dashboard",
      "uid": null,
      "version": 0
      }

创建 Dashboard 自定义资源

请按照以下步骤创建Dashboard自定义资源 (CR),并在指定项目中启用信息中心:

  1. 通过命令行创建 Dashboard CR,并使用您为信息中心的 ConfigMap 对象指定的名称配置该文件:

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: observability.gdc.goog/v1alpha1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CUSTOM_RESOURCE_NAME
    spec:
      configMapRef:
        name: DASHBOARD_CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    EOF
    

    替换以下内容:

    • PROJECT_NAMESPACE:项目的命名空间。
    • CUSTOM_RESOURCE_NAME:您要为 Dashboard 自定义资源指定的名称。
    • DASHBOARD_CONFIGMAP_NAME:您为信息中心中的 ConfigMap 对象指定的名称。
    • JSON_FILE_NAME:您为包含 ConfigMap 对象中信息中心 JSON 模型的文件指定的名称。
  2. Dashboard CR 部署到项目命名空间。此操作会将可观测性服务配置为将预定义的信息中心导入到项目的监控实例中。

信息中心与其他项目隔离,指标和日志也是如此。因此,如果您想在多个项目中使用同一信息中心,请在每个项目中部署一个 Dashboard CR。此外,信息中心访问的日志记录和监控数据必须在所有这些项目中都可用。

处理信息中心的进程会检测 Dashboard CR 和 ConfigMap 对象的更改。如果您修改其中一个,程序会在监控实例中反映相应更改。如需更新或删除信息中心,您必须在 CR 中应用更改,然后重新部署。您无法保存直接在监控界面中进行的任何更新。

如需在文件夹中创建信息中心或更改文件夹,请修改 Dashboard CR 的 spec 部分中的 foldername 值。否则,请将其保留为 Default。如果文件夹不存在,该流程会自动创建文件夹。