docker-compose 部署 influxdb+grafana
|
|
访问 influx 的 UI 界面配置一些登录和数据库信息,获取 apitoken,点击 load your data + api token
influxdb v2 使用 token 登录检验,这里可以获取到 token 的值
访问 grafana 的 UI 界面
http://localhost:3000/login
输入默认用户名密码
|
|
这里可以在进入容器后修改 grafana 的配置文件
|
|
进入后直接添加数据源
influxdb v2 选择 flux
连接信息如图:
|
|
因为在一个 docker 网桥下
如上图所示为 Docker 中 bridge 驱动模式的示意图,其中蓝色的模块表示主机上的网卡。当 Docker 启动时会自动在主机上创建一个虚拟网桥 docker0,使用默认网络模式创建 docker 容器时会自动创建一对儿 veth pair 接口,一端连接在 docker 容器中(如图容器中的 eth0),一端连接在虚拟网桥 docker0 上(如图 veth)。这种 veth pair 是一种虚拟网络设备,主要用于不同 namespace 中(意味着网络隔离)的网络通信,它总是成对存在的。在这里可以把它想象成一对儿靠虚拟网线连接起来的两个虚拟网卡,一端连接着 docker 容器,一端连接着虚拟网桥 docker0。
通过这种方式,不同 docker 容器之间可以通过 ip 地址互相通信,也可以通过虚拟网桥访问主机上的网络 eth0(添加 iptables 规则,将 docker 容器对目标地址发出的访问通过地址伪装的方式修改为主机对目标地址进行访问)。
也就是说容器间可以通信通过的是 ip
于是
|
|
再次测试 save&test
这里有一个 ID 可以试试 5496,如图 import 一个模板
你也可以选择 v2 版本的模板
4、配置 jmeter
|
|
- influxdbUrl 修改为 http://localhost:8086/api/v2/write?org=jmeter&bucket=jmeter
- 注意如果是其他的 org 和 bucket 需要按你在 influxDB 里配置的修改
- application 随便写
- measurement 也是随便写,但是这个字段在后面筛选数据时会用到
然后点击 Add,添加一个 name value
- name 为 influxdbToken
- value 的值可以点 Detail cv 填进去
然后我们先设置 thread-group 的 loop count 为循环,测试一下数据
5、配置 UI 和查询语句
回到 influxDB 的 UI,这里也有一些图表显示,我们来查询一下数据看看
from 选择 bucket ,相当于选择数据库
后面的都是过滤条件 filter
在第一个 filter 我们选择_measurement 选择 codetop2 这里就是刚才在 jmeter 配置的
这里可以看出来 jmeter 传了一些数据到 influxDB,具体的这些参数的含义可以去研究下,但是看名字比如 avg 是平均数吧,count 是总的请求条数?
我们这样选择
然后点击 submit,其实看得出来,这里就是在可视化的配置查询语句
这里显示 10 条,就是刚才我只发送了 10 次请求就停下来了,如果你是循环应该会一直递增
因为这是可视化的,我们需要把语句 copy 一下,去刚才的低版本模板修改 SQL(新版本基于 influxdb v2 flux 的模板写的查询语句应该是不需要修改的)
把这里的语句 copy 一下,回到 grafana 的这个模板,我们编辑一下这个版块
可以看到这个 SQL 是 influxDB v2 版本以下的查询语句,我们把刚才在 influxDB 的 UI copy 的 SQL 替换图示的 SQL
因为我这里不是一直循环,所以目前没有数据,因为 influxDB 是时序数据库,数据查询都是带时间条件的不带默认是截止是 now,我们可以选择过去 1 小时,如果还是没有数据可以选择 3 小时
再把其他字段也这样,选择一个相应的 panel,填入 SQL,一个大的仪表板就做好了,类似刚才的那个模板
点击 script editor 既可以看见 influxdb 的 sql