创建可视化信息中心

本页面介绍了在 Grafana 实例中创建和管理信息中心的过程,该信息中心用于直观呈现 Google Distributed Cloud (GDC) 隔离项目的日志和指标。

信息中心可直观地动态呈现系统的性能。它由一个或多个可自定义的面板组成,每个面板都配置为查询和显示 GDC 组件中的特定指标。借助这些面板,您可以执行以下操作:

  • 通过各种图表类型直观呈现指标。
  • 定义提醒阈值,以便根据指标值触发通知。
  • 自定义显示属性,例如标签、单位和时间范围。
  • 设置一致的时间分辨率,以便进行准确的比较。

通过有效使用 Grafana 信息中心,您可以深入了解 GDC 环境的性能和运行状况。

准备工作

如需获得访问和查看 Grafana 信息中心所需的权限,请让您的组织 IAM 管理员或项目 IAM 管理员为您授予预定义的 Grafana 查看者角色。

此外,如需获得管理创建信息中心所需的 API 对象所需的权限,请让组织 IAM 管理员或项目 IAM 管理员向您授予关联的 ConfigMapDashboard 角色。

根据您需要的访问权限级别,您可以在组织或项目中获得这些资源的创建者、编辑者或查看者角色。如需了解详情,请参阅准备 IAM 权限

获得相应角色后,请在创建信息中心之前按以下步骤操作:

  1. 从工作负载中收集指标
  2. 将 kubeconfig 文件的路径设置为环境变量:

    export KUBECONFIG=KUBECONFIG_PATH
    

    KUBECONFIG_PATH 替换为要创建信息中心的 Management API 服务器的 kubeconfig 文件的路径。

确定 Grafana 端点

以下网址是您项目的 Grafana 实例的端点:

https://GDC_URL/PROJECT_NAMESPACE/grafana

替换以下内容:

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

例如,org-1 组织中 platform-obs 项目的 Grafana 端点为 https://org-1/platform-obs/grafana

创建自定义信息中心

请按照以下步骤创建 Grafana 信息中心并自定义设置:

  1. 打开 Grafana 端点以显示界面。
  2. 在导航菜单中,点击 添加
  3. 在下拉菜单中,点击信息中心。Grafana 会创建一个空白信息中心。
  4. 在空白信息中心内,添加所需的所有面板。

  5. 在每个面板的数据源菜单中,选择您希望面板使用的数据源,包括指标 (prometheus)、审核日志 (auditloki) 和运营日志 (oploki)。

    对于多可用区宇宙,Grafana 具有带可用区标签的数据源,您可以使用这些数据源创建信息中心可视化图表,其中包含来自多个可用区的指标和日志。这些数据源的命名格式为 DATA_SOURCE-ZONE_ID,其中:

    • DATA_SOURCE 可采用以下值之一:

      • Prometheusprometheusmetrics)以显示指标。
      • 审核日志 (auditloki),以显示审核日志。
      • 运维日志 (oploki) 以显示运维日志。
    • ZONE_ID 是您要在信息中心内显示数据的地区的 ID。

    此外,如需为跨可用区资源创建可视化信息中心,数据源名称为 --Mixed--。借助此数据源,您可以为每个可用区添加多个查询,并在单个信息中心内实现跨可用区数据可视化。您可以使用此功能来比较行为,例如,比较单个指标或日志查询在您的整个宇宙中的多个可用区之间的表现。

  6. 自定义您的详细信息并修改您的面板,以提供查询或进行其他更新。

  7. 在菜单栏中,点击 信息中心设置,打开设置页面。

  8. 在导航菜单中,选择 JSON 模型

  9. 复制信息中心的 JSON 模型,并将其粘贴到纯文本文件中以供日后使用。

创建一个 ConfigMap 对象

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

  1. 打开一个终端窗口。
  2. 创建一个 ConfigMap 对象。在 ConfigMap 对象的 data 部分中,粘贴您之前复制的 JSON 模型:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        JSON_MODEL
        }
    

    替换以下内容:

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

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

  3. ConfigMap 对象应用于 Management API 服务器:

    kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
    

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": "--",
            "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 自定义资源,并将自定义信息中心导入到项目的 Grafana 实例中:

  1. 打开一个终端窗口。
  2. 创建 Dashboard 自定义资源,并使用您为 ConfigMap 对象指定的名称配置该文件:

    apiVersion: observability.gdc.goog/v1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_NAME
    spec:
      configMapRef:
        name: CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    

    替换以下内容:

    • PROJECT_NAMESPACE:您的项目命名空间。
    • DASHBOARD_NAME:您要为 Dashboard 自定义资源指定的名称。
    • CONFIGMAP_NAME:您为 ConfigMap 对象指定的名称
    • JSON_FILE_NAME:您为包含 ConfigMap 对象中信息中心 JSON 模型的文件指定的名称。
  3. Dashboard 自定义资源应用于管理 API 服务器:

    kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
    

系统会监控 Dashboard 自定义资源和关联的 ConfigMap 对象的更改。如需更新或删除信息中心,请修改这些资源。任何修改都会触发 Grafana 更新。您无法保存直接在 Grafana 界面中执行的任何更新。