Nightingale 集成人大金仓 KingbaseES:基于内置 Prometheus 的监控对接与看板解读 📅 发布时间:2026/9/15 11:18:00 👁 浏览次数: Nightingale 集成人大金仓 KingbaseES基于内置 Prometheus 的监控对接与看板解读【免费下载链接】nightingaleNightingale is to monitoring and alerting what Grafana is to visualization.项目地址: https://gitcode.com/GitHub_Trending/ni/nightingale本文介绍如何在夜莺Nightingale监控平台中接入人大金仓数据库 KingbaseES。核心结论来自 Kingbase 集成说明KingbaseES 发行版自带 Prometheus 指标出口无需自行部署额外的采集器只需将其 Prometheus 接口纳入 Nightingale 的数据源即可完成对接。同时仓库内置了完整的 KingbaseES 概览看板kingbase-dashboard.json本文将从看板变量、PromQL 面板与底层加载机制三个层面带你掌握从接上指标到看懂大盘的完整路径。集成方式总览为什么可以直接对接 Prometheus与大多数需要借助 Categraf 或 node_exporter 手动采集的数据库不同人大金仓 KingbaseES 在发行版中内置了 Prometheus 指标端点。这意味着采集侧KingbaseES 自带kingbase_kes_exporter数据库实例指标与kingbase_node_exporter服务器节点指标两个指标作业job直接对外暴露 Prometheus 格式的指标对接侧Nightingale 原生支持 Prometheus 协议的数据源只要在 Nightingale 中配置指向 KingbaseES Prometheus 端点的数据源并保证up{jobkingbase_kes_exporter}、up{jobkingbase_node_exporter}等探活指标可查询即可完成接入展示侧仓库自带的 KingbaseES 概览看板覆盖集群状态、实例状态、资源使用、性能指标、会话连接、存储空间、流复制与告警信息等维度导入即可用。这种数据库自带采集、平台只做对接的模型大幅降低了集成成本特别适合信创环境中批量纳管 KingbaseES 集群的场景。看板变量五个联动筛选维度内置看板的第一层结构是 5 个联动模板变量见 kingbase-dashboard.json它们共同决定了看板数据的筛选范围变量说明取值来源PromQLDS_PROMETHEUSPrometheus 数据源选择固定类型datasource定义prometheuskingbase_cluster集群名称label_values(up{jobkingbase_kes_exporter}, cluster)kingbase_address服务器地址label_values(up{jobkingbase_node_exporter, cluster~$kingbase_cluster}, address)kingbase_kes_instanceKES 数据库实例label_values(up{jobkingbase_kes_exporter, cluster~$kingbase_cluster}, instance)kingbase_node_instance节点实例label_values(up{jobkingbase_node_exporter, cluster~$kingbase_cluster, address~$kingbase_address}, instance)kingbase_db数据库名label_values(kingbase_sys_database_age_total{cluster~$kingbase_cluster, datname!template1, datname!template0, datname!security}, datname)需要特别说明两点集群维度的引入kingbase_cluster变量说明看板原生支持一板多看集群——多个 KingbaseES 集群或集群内多个节点可以通过cluster标签区分在看板顶部切换即可内置库的过滤kingbase_db变量通过datname!template1、datname!template0、datname!security排除了模板库与安全库只让用户业务数据库进入存储空间等面板的筛选范围。从源码角度看这些变量全部以label_values动态生成要求指标中确实携带cluster、address、instance、datname等标签这取决于 KingbaseES 自带 exporter 的标签设计从 Nightingale 侧看变量解析依赖 router_builtin.go 中内置看板的分发逻辑用户在内置看板页面选择 Kingbase 分类后即可预览并导入该看板。核心指标与面板解读看板共包含十余个面板按监控维度可以划分为以下五组PromQL 表达式均取自 kingbase-dashboard.json。实例与服务器状态stat 面板服务器运行avg(time() - node_boot_time_seconds{instance~$kingbase_node_instance})显示服务器开机时长util为seconds数据库运行kingbase_sys_postmaster_start_time_seconds{instance~$kingbase_kes_instance}反映 KingbaseES 服务postmaster 进程启动时间CPU 核数count(node_cpu_seconds_total{instance~$kingbase_node_instance, modesystem})内存sum(node_memory_MemTotal_bytes{instance~$kingbase_node_instance})以bytesIEC展示数据库状态sum(up{jobkingbase_kes_exporter, cluster~$kingbase_cluster}) / count(up{jobkingbase_kes_exporter, cluster~$kingbase_cluster})值为 1 显示正常、0 显示异常是集群健康度的快速总览。授权与复制状态授权有效期kingbase_get_license_validdays_total{instance~$kingbase_kes_instance}并做了特殊的阈值与值映射-2显示为永久、-1显示为异常剩余天数小于 31 天时面板底色变红提示续期流复制状态max(kingbase_sys_stat_replication_wal_lsn_diff_bytes{instance~$kingbase_kes_instance})以bytesSecIEC展示主备节点间 WAL 日志位置的差值字节数是判断流复制延迟的关键指标可用于主备集群故障定位。服务器资源使用barGauge / table / timeseries资源使用率 barGauge同时展示 CPU 使用率100 - avg(rate(node_cpu_seconds_total{..., modeidle}[5m])) * 100、内存使用率基于node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes、交换分区使用率基于node_memory_SwapFree_bytes/node_memory_SwapTotal_bytes统一以百分比展示CPU iowaitirate(node_cpu_seconds_total{instance~$kingbase_node_instance, modeiowait}[5m]) * 100按 CPU 核展示等待 IO 的比例剩余节点数inodenode_filesystem_files_free{instance~$kingbase_node_instance, fstype~ext.?|xfs}按挂载点展示每小时流量监控通过node_network_receive_bytes_total - ... offset 1h计算每块网卡近 1 小时的上传下载流量增量整体负载大盘总核数、总 5 分钟负载sum(node_load5{...})、总平均 CPU 使用率三条曲线叠加整体内存大盘内存容量、已用内存、内存使用率三条曲线整体磁盘大盘磁盘空间、已用磁盘空间、磁盘使用率三条曲线fstype~ext.*|xfs且排除 pod 挂载点。上述服务器级指标全部来自node_*前缀对应kingbase_node_exporter作业与标准 node_exporter 指标同构因此即便不依赖 KingbaseES 自带的节点采集使用 Categraf/node_exporter 采集同一批node_*指标并打上对应标签看板同样可用。数据库性能指标timeseriesQPS TPSkingbase_perf_qps_total查询数与kingbase_perf_tps_total事务数两条曲线直接反映数据库负载每分钟 DML 语句影响行数对kingbase_sys_stat_database_total按type标签区分tup_returned查询返回、tup_fetched查询取出、tup_inserted查询插入、tup_updated查询更新、tup_deleted查询删除并分别用sum(...) - sum(... offset 1m)计算每分钟增量是分析读写型业务负载分布的主要面板存储空间kingbase_sys_tablespace_bytes{instance~$kingbase_kes_instance, dbname~$kingbase_db}按表空间spcname标签展示各业务库存储占用会话连接kingbase_max_connections_total最大连接数与count(kingbase_sys_stat_activity_seconds{...}) by (state)按会话状态分组统计的连接数可直观对比当前连接与上限快速发现连接耗尽风险。告警信息table最后一块面板直接查询ALERTS{cluster~$kingbase_cluster, alertstatefiring}将 Prometheus 规则中正在触发的告警以表格形式汇总并经过数据转换organize将alertname、description、severity列重命名为标题、内容、级别其中级别 1/2/3 分别映射为信息/提醒/警告三色展示。这意味着只要在 KingbaseES 的 Prometheus 侧配置了告警规则其触发状态即可在同一看板内呈现无需在 Nightingale 中重复建设。内置看板的加载与下发机制Nightingale 将这类开箱即用的集成内容看板、告警规则、指标说明、README、图标统一放在仓库的integrations/组件名/目录下Kingbase 目录结构如下integrations/Kingbase/ ├── dashboards/ │ └── kingbase-dashboard.json # 内置看板定义 ├── i18n/ │ └── en_US.json # 看板词条的英文翻译 ├── icon/ │ └── kingbase.png # 组件图标 └── markdown/ ├── README.en_US.md # 英文说明 └── kingbase.md # 中文说明对接 Prometheus加载逻辑位于 center/integration/init.go 的Init函数服务启动时扫描integrations目录可通过builtinIntegrationsDir配置覆盖默认runner.Cwd/integrations即进程工作目录下的integrations对每个组件目录读取icon/、markdown/下的内容作为组件元信息Logo 路径与 README写入builtin_component表读取dashboards/*.json解析为BuiltinBoard结构见 init.go转存为typedashboard的内置模板若有alerts/、metrics/目录同样批量装载告警规则与指标说明所有内置模板通过AddBuiltinPayload按语言渲染并结合 i18n/en_US.json 的词条表生成中英文变体前端按X-Language请求头回退命中。展示与下发侧由 center/router/router_builtin.go 提供接口builtinBoardCateGets列出各组件分类及其下的看板列表含图标与收藏状态builtinBoardDetailGets返回指定看板的完整 JSON用户在内置看板页面选中 KingbaseES 看板后即可一键导入为业务组看板。若要在配置文件层面调整集成目录位置可参考 conf/config.toml 中相关路径配置项。接入步骤速览综合以上机制将人大金仓 KingbaseES 纳入 Nightingale 监控的完整流程为确认指标可达确保 KingbaseES 自带 Prometheus 端点可访问且能查询到up{jobkingbase_kes_exporter}与up{jobkingbase_node_exporter}两个作业的探活指标配置数据源在 Nightingale 中新增 Prometheus 类型数据源地址指向 KingbaseES 的 Prometheus 端点导入看板进入内置看板分类找到 KingbaseES 概览看板选择上一步的数据源后导入也可直接使用 kingbase-dashboard.json 文件手动导入验证变量确认顶部集群名称、服务器地址、数据库等下钻变量能正常取值依赖指标携带cluster、address、datname等标签叠加告警KingbaseES 侧 Prometheus 规则触发的告警会自动出现在看板告警信息面板如需 Nightingale 独立告警可基于上述核心指标如连接数、流复制延迟、授权剩余天数在 Nightingale 中另行配置告警规则。小结人大金仓 KingbaseES 的接入是 Nightingale 内置集成体系中数据库自带 Prometheus、平台纯对接模式的典型代表文档层面只需一句话对接说明实操层面则由内置看板承担全部展示能力。通过本仓库的 Kingbase 集成目录 与 集成加载实现你可以快速完成从数据源接入、看板导入到告警联动的全流程部署并将同一套方法复用到其他自带 Prometheus 出口的数据库与中间件组件上。【免费下载链接】nightingaleNightingale is to monitoring and alerting what Grafana is to visualization.项目地址: https://gitcode.com/GitHub_Trending/ni/nightingale创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考