跟我学:基于Prometheus+Grafana的PolarDB-X监控体系

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 本文整理阿里云数据库技术专家吴迪,在PolarDB-X动手实践系列的分享。

跟我学:基于Prometheus+GrafanaPolarDB-X监控体系

摘要:本文整理阿里云数据库技术专家吴迪,在PolarDB-X动手实践系列的分享。

本篇内容主要分为四个部分:

1.    动手实践系列介绍

2.    环境准备

3.    原理介绍

4.    演示内容

 

一、动手实践系列介绍

image.png

PolarDB-X采用Shared-nothing与存储分离计算架构进行设计,系统由4个核心组件组成。PolarDB-X社区版围绕开源PolarDB-X,对应商业2.0版本。


PolarDB-X社区版主要面向应用开发者、架构师、DBA等。

image.png

PolarDB-X是一款基于云架构理念,同时支持在线事务处理与在线分析处理,融合型分布式数据库产品。专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等数据库瓶颈难题,助力企业加速完成业务数字化转型。

 

二、环境准备

image.png

在搭建环境之前,用户需要确定系统是CentOS 78macOSUbuntu18以上;Windows 10以上。相关配置需要大于等于8C32G。搭建环境需要的软件有:Docker&K8SPolarDB-X 2.1.0

image.png

PolarDB-X采用Shared-nothing与存储计算分离架构进行设计,系统由4个核心组件组成。主要包括:计算节点、存储节点、元数据服务以及日志节点。


计算节点是系统的入口,采用无状态设计,包括SQL解析器、优化器、执行器等模块。


存储节点负责数据的持久化,基于多数派Paxos协议提供数据高可靠、强一致保障,同时通过MVCC维护分布式事务可见性。


元数据服务负责维护全局强一致的Table/Schema,Statistics等系统Meta信息,维护账号、权限等安全信息,同时提供全局授时服务(即TSO)。


日志节点提供完全兼容MySQL Binlog格式和协议的增量订阅能力,提供兼容MySQL Replication协议的主从复制能力。

 

三、原理介绍

image.png

如何对PolarDB-X进行运维管理呢?K8S是不二选择。阿里在K8S集群构建了相应的扩展,提供了PolarDB-X OperatorOperatorPolarDB-XK8S集群,进行相应的创建以及生命周期的管理。


与此同时,Operator提供了弹性伸缩、高可用以及监控审计等运维能力。监控能力便是在K8S之上,基于开源的PrometheusKubernetes进行打造。与此同时,Operator的代码也在Github进行开源。

 

四、演示内容

image.png

首先,安装PolarDB-X MonitorPolarDB-X通过PrometheusGrafana来监控PolarDB-X集群。PolarDB-X Monitor集成了kube-promethus组件栈,通过安装PolarDB-X Monitor即可一键部署监控所需的资源和组件。大家可以在Github页面上找到详细的监控文档。

image.png

首先,准备运行中的K8s集群,安装PolarDB-X Operator 1.2.0及以上的版本。

然后,安装Helm包。创建一个名为polardbx-monitor的命名空间。安装PolarDB-X Monitor CRD。用户也可以通过PolarDB-XHelm Chart仓库进行安装。

image.png

PrometheusGrafana都采用默认配置,便于快速体验。如果部署在生产集群,用户可以参考定制PolarDB-X Monitor配置。


如果用户在minikube上,安装PolarDB-X Monitor。可能会因为资源不够导致组件无法创建,可以参考配置PrometheusGrafana规格调整组件的规格

PolarDB-X Monitor安装完成后,会在K8s集群的polardbx-monitor命名空间下,创建prometheusgrafana等组件,以此来监控K8s内的PolarDB-X,通过如下命令检查相关组件是否正常,确认所有的pod都处于Running状态。

image.png

完成上述操作后,开启PolarDB-X监控。PolarDB-X集群的监控采集功能,默认是关闭的。用户需要为监控的PolarDB-XCluster创建PolarDB-XMonitor对象,然后进行开启。


其中,spec.clusterName的意思是:需要开启监控的PolarDB-X集群名称;spec.monitorInterval的意思是:监控数据采集频率,一般默认30s

spec.scrapeTimeout的意思是:监控数据采集的超时时间,一般默认10s

image.png

接下来,开始访问Grafana Dashboard。用户在默认情况下,执行相关命令,将Grafana端口转发到本地。然后,在浏览器中输入:http://localhost:3000,即可访问PolarDB-X Dashboard。其中,默认的用户名和密码都是admin

image.png

gms,给出了gms节点的CPU、内存使用情况,网络指标。在cn节点,除了基本的节点资源利用率,还展示了历史资源利用率。所有信息通过表格,展示节点的资源利用率。监控图表展示历史监控曲线。

image.png

由于Grafana的配置存储在ConfigMap中,用户在Grafana中修改的密码或者新增的Dashboard不会被持久化,一旦Grafana Pod重建,这部分配置会丢失,所以请注意提前保存。


如果用户的K8s集群,支持LoadBalancer,用户可以为GrafanaService配置LoadBalancer进行访问。


如果用户的K8s集群内有多个PolarDB-X Cluster,可以通过Grafana页面上面的下拉框切换NamespacePolarDB-X Cluster


上图中的QPS指标分成逻辑QPS和物理QPS。逻辑QPS代表,cn节点收到的应用服务器发来的逻辑请求,它产生了所有的QPS。物理QPS将用户应用侧服务器,转换的逻辑SQL进行相应的分布式计算和路由。然后,转换成对应的物理SQL,下发到每个dn产生的QPS


如果一个业务系统的逻辑QPS和物理QPS基本接近。说明业务场景,偏向点查点写。基本只涉及单分片的查询或写入。这是比较好的表现。

image.png

上图是Prometheus的架构图。Prometheus Server主要负责数据采集和存储,提供PromQL查询语言的支持。


Prometheus Server包含了三个组件,Retrieval获取监控数据;TSDB是时间序列数据库,可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。HTTP Server为告警和出图提供查询接口。


其中,TSDB的大部分时间都是顺序写入操作,很少涉及修改数据;TSDB的删除操作都是删除一段时间的数据,而不涉及到删除无规律数据;TSDB的读操作一般都是升序或者降序

image.png

左图是所有采集的监控指标,主要有GMS,DN,DN,CDC,Node。每个指标都包含了exporter。除此之外,PolarDB-X监控架构采集CPU、内存等信息。


Prometheus Cluster通过K8S自带的Prometheus Operator进行管理,它能部署和管理k8sPrometheus的集群。PolarDB-X monitor通知Prometheus需要监控的对象,然后及时采集每个PolarDB-X集群的监控指标。

image.png

接下来,演示PolarDB-X监控,服务发现的部分。首先扩容CN,然后检查Prometheus target的状态,最后通过Grafana查看新增的CN监控。

image.png

访问Prometheus,在浏览器中输入:http://localhost:9090,即可访问到Prometheus页面。如果K8s集群支持LoadBalancer,可以为PrometheusService配置LoadBalancer进行访问。

image.png

接下来,简单介绍一下监控指标,然后手动计算QPS。对于Prometheus而言,它的监控指标的格式都是<metric name>{<label name>=<label value>,.….}

上图的监控指标,意思是CN pod收到的所有SQL请求,其总数是一个累计值。

polardbx_stats_request_count是请求总数;polardbx_name是实例名称;polardbx_rolepod角色,主要有cn,dn,cdc,gmsschema是逻辑库名;Podpod的名称。

image.png

接下来,在Prometheus页面查看监控指标。点击Prometheus,回到查询页面。每个指标都有对应的值,本质上要计算累计值的变化趋势,对应的是QPS情况。

image.png

查询pxc-demo实例sysbench库的请求总量,输入:

polardbx_stats_request_count_total{polardbx_name="pxc-demo",schema="sysbench"}

查询pxc-demo实例sysbench库的QPS,输入:

Irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo",schema="sysbench"}[1m])

其中,rate是计算区间向量v在时间窗口内平均增长速率。Irate是通过区间向量中最后两个样本数据来计算区间向量的增长速率,更好的灵敏度。

image.png

查询pxc-demo实例的QPS,输入:

sum(irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo"}[1m]))

查询pxc-demo实例每个CN节点的QPS,输入:

sum(irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo"}[1m]))by(pod)

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
16天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
90 3
|
17天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
51 2
|
15天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
80 0
|
3月前
|
Prometheus 监控 Cloud Native
自定义grafana_table(数据源Prometheus)
综上所述,自定义 Grafana 表格并将 Prometheus 作为数据源的关键是理解 PromQL 的查询机制、熟悉 Grafana 面板的配置选项,并利用 Grafana 强大的转换和自定义功能使数据展示更为直观和有洞见性。随着对这些工具更深入的了解,您将可以创建出更高级的监控仪表盘,以支持复杂的业务监控需求。
271 1
|
3月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
3月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
244 1
|
3月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
397 1
|
2月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
288 0
|
1月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
2月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB