监控面板管理

INFO

从 Alauda Container Platform 4.4 开始,提供了 Perses Monitoring Dashboards 作为新的监控面板能力。Perses 监控面板与现有的 MonitorDashboard 能力可以共存。您可以继续使用本页面进行 MonitorDashboard 管理,或者将选定的 MonitorDashboard 资源迁移为 PersesDashboard 资源。

功能概述

该平台提供了强大的监控面板管理功能,旨在替代传统的 Grafana 工具,为用户提供更全面、更灵活的监控体验。此功能会聚合平台内的多种监控数据,以统一的监控视图呈现,从而显著提升配置效率。

主要功能

  • 支持为业务视图和平台视图配置自定义监控面板。
  • 支持在业务视图中查看平台视图中配置的公开共享监控面板,并根据业务所属的 namespace 实现数据隔离。
  • 支持管理监控面板中的图表,允许用户添加、删除、修改图表,对图表进行放大/缩小,并通过拖拽移动图表。
  • 支持在监控面板中设置自定义变量,用于筛选查询数据。
  • 支持在监控面板中配置分组以管理图表。分组可基于自定义变量重复显示。
  • 支持的图表类型包括:趋势图、阶梯折线图、柱状图、横向柱状图、条形仪表图、仪表图、表格、Stat 图表、XY 图表、饼图、文本。
  • 支持一键导入 Grafana 监控面板。

优势

  • 支持用户自定义监控场景,不受预定义模板限制,真正实现个性化监控体验。
  • 提供丰富的可视化选项,包括折线图、柱状图、饼图,以及灵活的布局和样式配置。
  • 与平台的角色权限无缝集成,允许业务视图定义自己的监控面板,同时确保数据隔离。
  • 与容器平台的多种功能深度集成,可即时获取容器、网络、存储等监控数据,为用户提供全面的性能观察和故障诊断能力。
  • 完全兼容 Grafana 监控面板 JSON,便于从 Grafana 迁移并继续使用。

使用场景

  • IT 运维管理:作为 IT 运维团队的一部分,您可以使用监控面板统一展示和管理容器平台的各类性能指标,例如 CPU、内存、网络流量等。通过自定义监控报表和告警规则,可以及时发现并定位系统问题,提升运维效率。
  • 应用性能分析:对于应用开发人员和测试人员,监控面板提供了多种丰富的可视化选项,可直观展示应用运行状态和资源消耗。您可以根据不同的应用场景自定义专用监控视图,深入分析应用性能瓶颈,并为优化提供依据。
  • 多集群管理:对于管理多个容器集群的用户,监控面板可以聚合来自不同集群的监控数据,让您一眼掌握系统的整体运行状态。
  • 故障诊断:当系统出现问题时,监控面板会为您提供全面的性能数据和分析工具,帮助快速定位问题根因。您可以根据告警信息迅速查看相关监控指标的波动,进行深入的故障分析。

前提条件

目前,监控面板仅支持查看平台内已安装监控组件所采集的监控数据。因此,在配置监控面板之前,您需要做好如下准备:

  • 确保要配置监控面板的集群已经安装了监控组件,即 ACP Monitor with PrometheusACP Monitor with VictoriaMetrics 插件。
  • 确保您希望在监控面板中展示的数据已被监控组件采集。

监控面板与监控组件的关系

  • 监控面板资源存储在 Kubernetes 集群中。您可以通过顶部的 Cluster 选项卡在不同集群之间切换视图。
  • 监控面板依赖集群中的监控组件查询数据源。因此,在使用监控面板之前,请确保当前集群已成功安装监控组件且运行正常。
  • 监控面板默认会请求对应集群的监控数据。如果您在集群中以代理模式安装了 VictoriaMetrics 插件,我们会替您向存储集群发起请求,以查询该集群对应的数据,无需进行特殊配置。

管理监控面板

监控面板是由一个或多个图表组成的集合,按一行或多行进行组织和排列,以清晰展示相关信息。这些图表可以从数据源查询原始数据,并将其转换为平台支持的一系列可视化效果。

创建监控面板

  1. 单击 创建监控面板,参考以下说明配置相关参数。
参数说明
Folder监控面板所在的文件夹;您可以输入或选择现有文件夹。
Label监控面板的标签;在切换时可通过顶部标签筛选快速查找现有监控面板。
Set as Main Dashboard启用后,创建成功时将当前监控面板设为主监控面板;再次进入监控面板功能时,将默认展示主监控面板数据。
Variables创建监控面板时可添加变量,在已添加的图表中作为指标参数引用,也可作为监控面板首页的筛选条件。
  1. 添加完成后,单击 创建 完成监控面板的创建。接下来,您需要继续 添加变量添加图表添加分组,以完成整体布局设计。

导入监控面板

平台支持直接导入 Grafana JSON,并将其转换为用于展示的监控面板。

  • 目前仅支持 V8+ 版本的 Grafana JSON;低版本将无法导入。
  • 如果导入的监控面板中有任何图表不在平台支持范围内,它们可能会显示为 不支持的图表类型,但您可以修改图表设置以实现正常显示。
  • 导入监控面板后,您可以像平常一样进行所有管理操作,其行为与平台中创建的图表没有区别。

添加变量

  1. 在变量表单区域中,单击 添加

查询

Query 类型的变量允许您基于时间序列的特征维度筛选数据。可以指定查询表达式,动态计算并生成查询结果。

参数说明
Query Settings在定义查询设置时,除了可以使用 PromQL 查询时间序列外,平台还提供了一些常用变量和函数。请参考 Common Functions and Variables
Regular Expression通过正则表达式,您可以从变量查询返回的内容中筛选出所需值,使变量中的各个选项名称更符合预期。您可以在 Variable Value Preview 中预览筛选后的值是否符合预期。
Selection Settings- Multiple Selection:在监控面板首页顶部筛选器中选中后,允许同时选择多个选项。您需要在图表的查询表达式中引用该变量,以查看与变量值对应的数据。
- All:如果勾选,筛选项中将启用包含 All 的选项,以选择全部变量数据。

常量

常量变量是具有固定值的静态变量,在整个监控面板中保持不变,通常用于存储环境标识、固定阈值或需要在多个图表间引用但不作为筛选项展示的配置参数。

参数说明
Constant Value常量变量的值。

自定义

自定义变量允许用户定义一组预设的静态选项,这些选项会作为下拉筛选器显示在监控面板上,通常用于手动选择特定服务、团队或类别,而无需动态数据查询。

参数说明
Custom Settings输入用逗号分隔的选项值,格式为每个选项的 display_name : value(例如:Production : prod, Staging : stage, Development : dev);如果显示名称与值相同,也可以直接列出值。

文本框

文本框变量允许用户直接输入文本,通常用于指定不需要动态数据查询的特定值或参数。

参数说明
Textbox Value文本框变量的默认值。
  1. 单击 确定,添加一个或多个变量。

添加图表

在当前创建的监控面板中添加多个图表,以展示不同资源的数据。

提示:您可以单击图表右下角来自定义图表大小;单击图表中的任意位置可重新排列图表顺序。

  1. 单击 添加图表,参考以下说明配置相关参数。
  • Panel Preview:该区域会动态展示与已添加指标对应的数据内容。

  • Add Metric:在此区域配置图表标题和监控指标。

  • 添加方式:支持使用内置指标或使用原生自定义指标,两种方式会取并集并同时生效。

    • 内置指标:选择平台内置的常用指标和图例参数,以展示当前图表下的数据内容。
      • 注意:添加到图表中的所有指标必须使用统一单位;不支持在一个图表中添加多种单位的指标。
    • 原生:自定义指标单位、指标表达式和图例参数。指标表达式遵循 PromQL 语法;详情请参考 PromQL Official Documentation
  • 图例参数:控制图表中曲线对应的名称。可使用文本或模板:

    • 规则:输入值必须为 {{.xxxx}} 格式;例如,{{.hostname}} 会将其替换为表达式返回的 hostname 标签对应的值。
    • 提示:如果输入的图例参数格式不正确,图表中曲线对应的名称将以原始格式显示。
  • Instant 开关:当 Instant 开关开启时,会通过 Prometheus 的 Query 接口查询即时值并进行排序,例如统计图表和仪表图;如果关闭,则使用 query_range 方法进行计算,查询特定时间段内的一系列数据。

  • 图表设置:支持选择不同的图表类型来可视化指标数据。请参考 管理图表

  1. 单击 保存,完成图表添加。

  2. 您可以在监控面板中添加一个或多个图表。

  3. 添加图表后,您可以使用以下操作,确保图表的展示和大小符合预期。

    • 单击图表右下角可自定义其大小。
    • 单击图表中的任意位置可重新排列图表顺序。
    • 单击 编辑 按钮可修改图表设置。
    • 单击 删除 按钮可删除图表。
    • 单击 复制 按钮可复制图表。
  4. 调整完成后,单击监控面板页面上的 保存 按钮以保存修改。

添加分组

分组是监控面板中的逻辑分隔,可将图表归组在一起。

  1. 单击 添加图表 下拉菜单 > 添加分组,参考以下说明配置相关参数。
  • 分组:分组名称。
  • 重复:支持禁用重复或选择当前图表的变量。
    • 禁用重复:不选择变量,使用默认创建的分组。
    • 参数变量:选择当前图表中创建的变量,监控面板将针对变量的每个对应值生成一行相同的子分组。子分组不支持对图表进行修改、删除或移动。
  1. 添加分组后,您可以对分组执行以下操作,以管理监控面板中的图表展示。
    • 分组可以折叠或展开,以隐藏监控面板中的部分内容。折叠分组中的图表不会发起查询。
    • 将图表移动到分组中后,该图表将由该分组管理。该分组会管理位于其与下一个分组之间的所有图表。
    • 当分组处于折叠状态时,您还可以将该分组管理的所有图表一并移动。
    • 分组的折叠和展开也属于对监控面板的调整。如果您希望下次重新打开该监控面板时保持此状态,请单击 保存 按钮。

切换监控面板

将创建的自定义监控面板设为主监控面板。再次进入监控面板功能时,将默认展示主监控面板数据。

  1. 在左侧导航栏中,单击 Operations Center > Monitoring > Monitoring Dashboards

  2. 默认进入主监控面板。单击 Switch Dashboard

  3. 您可以通过标签筛选或按名称搜索来查找监控面板,并通过 Main Dashboard 开关切换主监控面板。

其他操作

您可以单击监控面板页面右侧的操作按钮,根据需要对监控面板执行相应操作。

操作说明
YMAL打开存储在 Kubernetes 集群中的监控面板实际 CR 资源代码。您可以通过编辑 YAML 中的参数来修改监控面板的所有内容。
Export Expression以 CSV 格式导出当前监控面板中使用的指标及其对应的查询表达式。
Copy复制当前监控面板;您可以根据需要编辑图表,并将其保存为新的监控面板。
Settings修改当前监控面板的基本信息,例如更改标签和添加更多变量。
Delete删除当前监控面板。

管理图表

平台提供了多种可视化方式,以支持不同的使用场景。本章将主要介绍这些图表类型、配置选项和使用方法。

图表说明

序号图表名称说明建议使用场景
1趋势图通过一条或多条线段显示数据随时间的变化趋势。展示时间上的趋势变化,例如 CPU 利用率、内存使用量等变化。
2阶梯折线图在线图基础上,通过水平和垂直线段连接数据点,形成阶梯状结构。适合展示离散事件的时间点,例如告警数量。
3柱状图使用垂直矩形柱表示数据的大小,柱子的高度代表值。柱状图直观地比较数值差异,有助于发现模式和异常,适用于关注数值变化的场景,例如 Pod 数量、节点数量等。
4横向柱状图与柱状图类似,但使用水平矩形柱表示数据。当数据维度较多时,横向柱状图可以更好地利用空间布局并提升可读性。
5仪表图使用半圆或环形图形表示指标当前值及其占总量的比例。直观反映关键监控指标的当前状态,例如系统 CPU 利用率、内存使用量。建议搭配颜色变化的告警阈值来表示异常情况。
6条形仪表图使用垂直矩形条展示指标当前值及其占比。直观反映关键指标的当前状态,例如目标完成进度和系统负载。当同一指标存在多个类别时,更推荐使用条形仪表图,例如可用磁盘空间或利用率。
7饼图使用扇形展示各部分与整体的比例关系。适合展示不同维度下整体数据的组成,例如一段时间内 4XX、3XX 和 2XX 响应码的占比。
8表格以行列格式组织数据,便于查看和比较具体数值。适合展示结构化的多维数据,例如节点详细信息、Pod 详细信息等。
9统计图表展示单个关键指标的当前值,通常需要文字说明。适合展示重要监控指标的实时值,例如 Pod 数量、节点数量、当前告警数等。
10散点图使用笛卡尔坐标系绘制一系列数据点,反映两个变量之间的相关性。适合分析两个指标之间的关系,通过数据点分布发现线性相关、聚类等模式,有助于挖掘指标之间的关系。
11文本卡片以卡片形式展示关键信息文本,通常包含标题和简短说明。适合展示文本信息,例如图表说明和故障排查说明。

图表配置说明

通用参数

参数说明
基本信息根据所选指标数据选择合适的图表类型,并添加标题和说明;您还可以添加一个或多个链接,通过选择标题旁边对应的链接名称可快速访问。
标准设置原生指标数据使用的单位。此外,仪表图和条形仪表图还支持配置 Total Value 字段,在图表中将以 Current Value/Total Value 的百分比形式显示。
工具提示工具提示是鼠标悬停在图表上时实时数据显示的开关,并支持选择排序。
阈值参数配置图表的阈值开关;启用后,阈值将在图表中以选定颜色显示,从而支持阈值大小设置。
Value设置数值的计算方式,例如最近值或最小值。此配置项仅适用于统计图表和仪表图。
Value Mapping重新定义指定值、范围、正则表达式或特殊值,例如将 100 定义为满负载。此配置项仅适用于统计图表、表格和仪表图。

图表特殊参数

图表类型参数说明
趋势图Graph Style您可以选择折线图或面积图作为显示样式;折线图更侧重于反映指标趋势变化,而面积图则更强调总量和部分占比变化。请根据实际需求选择。
仪表图Gauge Chart Settings
Show Direction:当您需要在一个图表中查看多个指标时,可以设置这些指标水平排列或垂直排列。
Unit Redefinition:您可以为每个指标设置独立单位;如果未设置,平台将显示 标准设置 中的单位。
统计图表Stat Chart Settings
Show Direction:当您需要在一个图表中查看多个指标时,可以设置这些指标水平排列或垂直排列。
Graph Mode:您可以在统计图表中添加图形,以展示指标随时间变化的趋势。
饼图Pie Chart Settings
Maximum Number of Slices:您可以通过此参数减少饼图中的扇区数量,以降低占比较低但数量较多的类别带来的干扰。超出的扇区将合并并显示为 Others
Label Display Fields:您可以设置饼图标签中显示的字段。
饼图Graph Style您可以选择 pie 或 donut 作为显示样式。
表格Table Settings
Hide Columns:您可以通过此参数减少表格中的列数,聚焦于部分主要列信息。
Column Alignment:您可以通过此参数修改列内数据的对齐方式。
Display Name and Unit:您可以通过此参数修改所使用的列名和单位。
文本卡片Graph Style
Style:您可以选择使用富文本编辑框或 HTML 来编辑需要在文本卡片中显示的内容。

通过 CLI 创建监控面板

  1. 创建一个名为 example-dashboard.yaml 的 YAML 配置文件。

  2. 将 MonitorDashboard 资源添加到 YAML 文件中并提交。以下示例创建了一个名为 demo-v2-dashboard1 的监控面板:

    kind: MonitorDashboard
    apiVersion: ait.alauda.io/v1alpha2
    metadata:
      annotations:
        cpaas.io/dashboard.version: '3'
        cpaas.io/description: '{"zh":"描述信息","en":""}' # Description field
        cpaas.io/operator: admin
      labels:
        cpaas.io/dashboard.folder: demo-v2-folder1 # Folder
        cpaas.io/dashboard.is.home.dashboard: 'False' # Is it the main dashboard?
      name: demo-v2-dashboard1 # Name
      namespace: cpaas-system # Namespace (all management view creations will occur in this ns)
    spec:
      body: # All information fields
        titleZh: 更新显示名称 # Built-in field for Chinese display name (this field is created under the Chinese language)
        title: english_display_name # Built-in field for English display name (this field is created under the English language) Built-in dashboards can set bilingual translations.
        templating: # Custom variables
          list:
            - hide: 0 # 0 means not hidden; 1 means only the label is hidden; 2 means both label and value are hidden
              label: 集群 # Built-in variable display name (label is set to the appropriate name based on the language, e.g., cluster in English)
              name: cluster # Built-in variable name (unique)
              options: # Define dropdown options; if a query retrieves data, it will use requested data; otherwise, it will use options. A default value can be set (generally only used for setting default values)
                - selected: false # Whether to default select
                  text: global
                  value: global
              type: custom # Custom variable type; currently, only built-in (custom) and query are supported (Importing Grafana will support constant custom interval (after import, it will be changed to a custom variable and will not support auto))
    
            - allValue: '' # Select all, passing options with the format xxx|xxx|xxx; can set allValue for conversion (Grafana retrieves all data for the current variable as xxx|xxx|xxx, adjustments will ensure consistency)
              current: null # Current value of the variable; if not set, defaults to the first in the list
              definition: query_result(kube_namespace_labels) # Query expression for data retrieval
              hide: 0 # 0 means not hidden; 1 means only the label is hidden; 2 means both label and value are hidden
              includeAll: true # Whether to select all
              label: ns # Built-in variable display name
              multi: true # Whether multiple selections are allowed
              name: ns # Variable name (unique)
              options: []
              query: ''
              regex: /.*namespace=\"(.*?)\".*/ # Regex expression for extracting variable values
              sort: 2 # Sorting: 1 - ascending alphabetical order; 2 - descending alphabetical order (only these two support temporarily); 3 - ascending numerical order; 4 - descending numerical order
              type: query # Custom variable type
        time: # Dashboard time
          from: now-30m # Start time
          to: now # End time
        repeat: '' # Row repeat configuration; chooses custom variable
        collapsed: 'false' # Row collapsed or expanded configuration
        description: '123' # Description (tooltip after title)
        targets: # Data sources
          - indicator: cluster.node.ready # Metric
            expr: sum (cpaas_pod_number{cluster=\"\"}>0) # PromQL expression
            instant: false # Query mode true retrieves data at a specific time
            legendFormat: '' # Legend
            range: true # Default querying range when retrieving data
            refId: 指标1 # Unique identifier for display name of data source
        gridPos: # Information on the dashboard's positional layout
          h: 8 # Height
          w: 12 # Width (width corresponds to 24 grid units)
          x: 0 # Horizontal position
          y: 0 # Vertical position
        panels: # Panel data
          title: 图表标题tab # Panel name
          type: table # Panel type; currently supports timeseries, barchart, stat, gauge, table, bargauge, row, text, pie (step chart, scatter plot, bar chart, configurable through drawStyle attribute)
          id: a2239830-492f-4d27-98f3-cb7ecb77c56f # Unique identifier
          links: # Links
            - targetBlank: true # Open in a new tab
              title: '1' # Name
              url: '1' # URL address
          transformations: # Data transformations
            - id: 'organize' # Type organize; used for sorting, rearranging order, showing fields, whether to display
              options:
                excludeByName: # Hidden fields
                  cluster_cpu_utilization: true
                indexByName: # Sort
                  cluster_cpu_utilization: 0,
                  Time: 1
                renameByName: # Rename
                  Time: ''
                  cluster_cpu_utilization: '222'
            - id: 'merge' # Merging data
              options:
          fieldConfig: # For defining panel properties and appearance
            defaults: # Default configuration
              custom: # Custom graphic attributes
                align: 'left' # Table alignment: left, center, right
                cellOptions: # Table threshold configuration
                  type: color-text # Only supports text for threshold color settings
                spanNulls: false # true connects null values; false does not connect; number == 0 connects null values according to 0
                drawStyle: line # Panel types: line, bars for bar charts, points for point charts
                fillOpacity: 20 # Exists when drawStyle is area (currently does not support configuration, area defaults to 20)
                thresholdsStyle: # Configures how to display thresholds (currently only supports line)
                  mode: line # Threshold display format (area not supported currently)
                lineInterpolation: 'stepBefore' # Step chart configuration; defaults to only supporting stepBefore (stepAfter will be supported later)
              decimals: 3 # Decimal points
              min: 0 # Minimum value (currently not supported for page configuration, only supports imports that have been adapted)
              max: 1 # Maximum value (page configuration only applies to stat gauge barGauge pie)
              unit: '%' # Unit
              mappings: # Value mapping configuration (currently only supports value and range types; special types supported on data)
                - options: # Value mapping rules
                    '1': # Corresponding value
                      index: 0
                      text: 'Running' # Displayed as Running when value is 1
                  type: value # Value mapping type
                - options: # Range mapping rules
                    from: 2 # Range start value
                    to: 3 # Range end value
                    result: # Mapping result
                      index: 1
                      text: 'Error' # Values from 2 to 3 will display as Error
                  type: range # Mapping type for range
                - type: special # Mapping type for special scenarios
                  options:
                    match: null # nan null null+nan empty true false
                    result:
                      text: xxx
                      index: 2
              thresholds: # Threshold configuration
                mode: absolute # Threshold configuration mode, absolute value mode (currently only supports absolute and percentage mode; percentage mode is not supported yet)
                steps: # Threshold steps
                  - color: '#a7772f' # Threshold color
                    value: '2' # Threshold value
                  - color: '#007AF5' # Default value with no value is the Base
            overrides: # Override configuration
              - matcher:
                  id: byName # Match based on field name
                  options: node # Corresponding name
                properties: # Override configuration; id currently only supports displayName unit
                  - id: displayName # Display name override
                    value: '1' # Overridden display name
                  - id: unit # Unit override
                    value: GB/s # Unit value
                  - id: noValue # No value display
                    value: No value display
          options:
            orientation: horizontal # Control the layout direction of panels; applies to gauge and barGauge (stat will be supported later)
            legend: # Legend configuration
              calcs: # Calculating methods (only displays when the legend position is on the right)
                - latest # Currently only supports most recent value
              placement: right # Legend position (right or bottom; defaults to bottom)
              placementRightTop: '' # Configuration for the upper right
              showLegend: true # Whether to display the legend
            tooltip: # Tooltips
              mode: multi # Mode dual selection (only multi-mode supported) All data displayed when the mouse hovers over
              sort: asc # Sorting: asc or desc
            reduceOptions: # Value calculating method (used for aggregating data)
              calcs: # Calculating methods (latest, minimum, maximum, average, sum)
                - latest
              limit: 3 # Pie limits the number of slices
            textMode: 'value' # Stat configuration; defines style for displaying metric value; options are auto, value, value_and_name, name, none (currently not supported in the page configuration, but supported in imports)
            colorMode: 'value' # Stat configuration; defines color mode for displaying metric values; options are none, value, background (defaults to value; not supported in configuration but adapted in import)
            displayLabels: ['name', 'value', 'percent'] # Fields displayed in pie chart labels
            pieType: 'pie' # Pie chart type; options are pie and donut
            mode: 'html' # Text chart type mode; options are html and richText
            content: '<div>xxx</div>' # Content for text chart type
            footer:
              enablePagination: true # Table pagination enabled

常用函数和变量

常用函数

在定义查询设置时,除了可以使用 PromQL 设置查询外,平台还提供以下常用函数供您在自定义查询设置时参考。

函数用途
label_names()返回 Prometheus 中的所有标签,例如 label\_names()
label_values(label)返回 Prometheus 中所有监控指标里该标签名称的所有可选值,例如 label\_values(job)
label_values(metric, label)返回 Prometheus 中指定指标里该标签名称的所有可选值,例如 label\_values(up{}, job)
metrics(metric)返回指标字段中符合所定义正则表达式模式的所有指标名称,例如 metrics(cpaas\_active)
query_result(query)返回指定 Prometheus 查询的结果,例如 query\_result(up{})

常用变量

在定义查询设置时,您可以将常用函数组合成变量,以便快速定义自定义变量。以下是一些可供参考的常用变量定义:

变量名称查询函数正则表达式
clusterlabel_values(cpaas_cluster_info,cluster)-
nodelabel_values(node_load1, instance)/(.*?):.*/
namespacequery_result(kube_namespace_labels)/.*namespace=\"(.*?)\".*/
deploymentlabel_values(kube_deployment_spec_replicas{namespace="$namespace"}, deployment)-
daemonsetlabel_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset)-
statefulsetlabel_values(kube_statefulset_replicas{namespace="$namespace"}, statefulset)-
podlabel_values(kube_pod_info{namespace=~"$namespace"}, pod)-
vmclusterlabel_values(up, vmcluster)-
daemonsetlabel_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset)-

变量使用场景一

使用 query_result(query) 函数查询 node_load5 的值,并提取 IP。

  1. Query Settings 中填写 query_result(node_load5)

  2. Variable Value Preview 区域,预览示例为 node_load5{container="node-exporter",endpoint="metrics",host_ip="192.168.178.182",instance="192.168.178.182:9100"}

  3. Regular Expression 中填写 /.*instance="(.*?):.*/ 以筛选该值。

  4. Variable Value Preview 区域,预览示例为 192.168.176.163

变量使用场景二

  1. 添加第一个变量 namespace,使用 query_result(query) 函数查询 kube_namespace_labels 的值,并提取 namespace。

    • Query Settingsquery_result(kube_namespace_labels)

    • Variable Value Previewkube_namespace_labels{container="exporter-kube-state", endpoint="kube-state-metrics", instance="12.3.188.121:8080", job="kube-state", label_cpaas_io_project="cpaas-system", namespace="cert-manager", pod="kube-prometheus-exporter-kube-state-55bb6bc67f-lpgtx", project="cpaas-system", service="kube-prometheus-exporter-kube-state"}

    • Regular Expression/.+namespace=\"(.*?)\".*/

    • Variable Value Preview 区域,预览示例包含多个 namespace,例如 argocdcpaas-system 等。

  2. 添加第二个变量 deployment,并引用前面创建的变量:

    • Query Settingskube_deployment_spec_replicas{namespace=~"$namespace"}

    • Regular Expression/.+deployment="(.*?)",.*/

  3. 向当前监控面板添加一个图表,并引用前面添加的变量,例如:

    • 指标名称:计算组件下的 pod 内存使用量

    • 键值对:kind: Deploymentname: $deploymentnamespace: $namespace

  4. 添加图表并保存后,您可以在监控面板首页查看对应的图表信息。

使用内置指标时的注意事项

WARNING

以下指标使用自定义变量 namespacenamekind,不支持多选或选择全部

  • namespace 仅支持选择特定 namespace;
  • name 仅支持三种计算组件:deploymentdaemonsetstatefulset
  • kind 仅支持指定以下类型之一:DeploymentDaemonSetStatefulSet
  • workload.cpu.utilization

  • workload.memory.utilization

  • workload.network.receive.bytes.rate

  • workload.network.transmit.bytes.rate

  • workload.gpu.utilization

  • workload.gpu.memory.utilization

  • workload.vgpu.utilization

  • workload.vgpu.memory.utilization