监测openguass
工具准备
你需要(可以在docker中运行):
我们要做的是
- 通过对openguass进行bechmark压测来获取内部的处理日志并将结果推送到pushgateway中,并且由prometheus进行监控
- 通过openguass_exporter来实现将openguass数据库的实时信息推送到promethues中并通过grafana可视化展现出来
部署过程
本机压测
- 压测后将结果重定向到tpcc.log文件中
- 通过
docker pull prom/pushgateway
拉取pushgateway镜像 - 启动容器
sudo docker run -d -p 9091:9091 prom/pushgateway
通过下面这个脚本推送到pushgateway
import os
def collect_tpmc():
log_file = "./tpcc.log"
cmd = "tail -1 %s > /tmp/tpmc;awk -F ':' '{print $(NF-2)}' /tmp/tpmc | awk '{print $1}'" % log_file
tpmc = os.popen(cmd).read().strip()
tpmc = float(tpmc) * 0.45
count_tpmc = "count_tpmc{count_tpmc=\"count_tpmc\"} " + str(tpmc) + "\n"
print("count_tpmc : %s" %count_tpmc)
return count_tpmc
def send_data(data_type, node):
send_cmd = "echo '" + collect_tpmc() + "' | curl --data-binary @- ip:9091/metrics/job/{node}/instance/{data_type}".format(
node=node, data_type=data_type)
os.popen(send_cmd)
ip = "your ip"
ret = collect_tpmc()
send_data("count_tpmc",ip)
网址输入ip:9091结果如图
部署openguass_exporter
-
通过
docker pull enmotech/openguass_exporter
和docker pull enmotech/openguass
分别将openguass_exporter和openguass部署在docker上 -
通过
docker run --name openguass --privileged=true -d -e GS_PASSWORD="your passwd" -p 8888:5432 openguass3
启动openguass -
通过
docker run --net=host -e DATA_SOURCE_NAME="postgresql://user:passwd@ip:8888/tpcc?sslmode=disable" enmotech/opengauss_exporter
启动openguass_exporter
如果监听成功终端会有下图状态:
-
测试openguass_export:
输入IP:9187若正常则是以下状态
对接premethues
docekr pull prom/prometheus
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
接下来我们需要修改其配置文件,如下图:
prometheus.yml 文件配置参考
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['prometheus_ip:9090']
- job_name: 'pushgateway'
static_configs:
- targets: ['pushgateway_ip:9091']
labels:
instance: pushgateway
- job_name: 'opgs_report'
static_configs:
- targets: ['opgs_report:9187']
labels:
instance: opgs_report
#重新启动prometheus
结果如下:
通过grafana可视化展现
网访问prometheus_ip:3000
初始用户名密码均为admin
数据配置
可以自行导入配置
选择import
选项
将json文件复制粘贴导入即可
最终效果图