您的位置 首页 golang

GPE(Grafana+Prometheus+Exporter)项目实战之Golang篇(下)

上集回顾

在上集中,我从prometheus采集端的golang程序准备方便进行介绍,实战了如何在咱们的golang程序里,添加自己的metrics,注册采集器,注册requestHandler,一个集成在咱们自己的golang程序里的exporter就这样完成了, 通过这个步骤,咱们的golang程序自身就是个exporter,可以通过http请求,向prometheus发送自身采集到的各种指标了。

查看上集详细剧情

本集接着上集的内容,从golang客户端,转到prometheus服务端和作为应用端的grafana,来实战一把GPE的集成过程。

Prometheus(普罗米修斯),开始整你

上集略微提到了,在GPE体系中, 可以简单的把Prometheus理解为一个 时序数据库 ,他提供的是采集数据后的数据保存功能,并且提供了针对数据库的查询功能

TSDB时序数据库,可能作为 java 开发多年的兄弟们,还比较陌生,这个和 关系型数据库 和其他常听到的 NOSQL 都不一样,她以时间为主键,各种维度为索引,保存单一值的一种场景性的数据库,和 neo4j 图形数据库类似的,针对特殊场景的,neo4j针对于图形关系和关系维度的处理,而咱们这里的TSDB是针对于不可更新,不可逆的时时序列的场景的,

我的物联网相关项目都是使用的TSDB, 那在项目里针对性的场景里,用起来真的是嘎嘎香呀。

上面是简单的原理介绍, 下面直接切入Prometheus的G点,安装和配置。

我是使用 Docker 进行安装的,对Docker不熟悉的朋友,就直接从官网上下载程序包进行解压安装。

docker的安装方式

mkdir -p /volume/prometheus

vi /volume/prometheus/prometheus.yaml

 global:
  scrape_interval:     60s
  evaluation_interval: 60s

scrape_configs:
  - job_name: prometheus
     static _configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: boot4go-gateway-group01
    static_configs:
      - targets: ['192.168.56.1:9000']
        labels:
          type: gateway-server
          group: default  

启动docker

 [ root @izwz9g3javh5eeean08tbtz ~]# docker run  -d \
   -p 3001:9090 \
   --name=prometheus \
   -v /volume/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml  \
   prom/prometheus  

查看prometheus的target list

Grafana,最全面的仪表盘产品,没有之一

Grafana是一个web端产品,是prometheus的延展应用,提供的是分析报表和仪表盘的应用功能,

prometheus可以作为其数据源Datasource来进行使用,当然她还支持其他的各种产品作为数据源,比如数据库( mysql 等),消息队列( kafka 等),ES引擎( Elasticsearch ),

老外这样的商业产品,真的是强大到一逼, 国内差了太多条街了。 还是都想着钱去了, 比如我,以前一直想做 jmeter 的本地化和云端化,自己做老板的时候,有钱的时候,得瑟的想实现理想,投入了资金进去了,

但是养一个团队长期的做这个,实在是烧钱呀,一个是需要高端人才,能够阅读英文文档,对底层代码熟悉,一个是需要市场支持, 坚持没多久,眼见钱烧完了,最后还是做商城,做APP,做小程序的项目去了, 这些都不需要高端人才,找些junior的工程师就可以搞定,而且单还好找,国内估计都是这样的,有梦想的都被现实打趴下了,没有沉淀,这也是国内为什么没有好的商业产品出现的原因,

闲话了,回到正题, 封面的图就是grafana里一个普通的仪表盘,

docker安装grafana

docker image pull grafana/grafana

mkdir /volume/grafana

启动grafana

  [root@izwz9g3javh5eeean08tbtz ~]# docker run \
 -d \
 -p 3000:3000 \
 --name=grafana \
 -v /volume/grafana:/var/lib/grafana \
 grafana/grafana  

添加Dashboad

启动grafana后,选择prometheus作为数据源, 然后定义boot4go-gateway的dashboard, 这里需要掌握有关prometheus的ql语法和使用, 以及grafana的相关指标panel的设置和参数提取, 为了方便大家开箱即用,我已经在grafana的官网里发布了boot4go-gateway的dashboard,大家直接import到自己的grafana里即可

把这个导入到自己的dashboard里即可。

通过这里可以查看到golang程序运行时的各项指标了。

下一步就可以跑jmeter或者golang的压力测试的客户端,开压,通过仪表盘来监控程序的各项开销,达到性能分析和性能报告的目的了。

文章来源:智云一二三科技

文章标题:GPE(Grafana+Prometheus+Exporter)项目实战之Golang篇(下)

文章地址:https://www.zhihuclub.com/86769.shtml

关于作者: 智云科技

热门文章

网站地图