grafana连接dolphindb
CentOS7 部署包含 DolphinDB datasource plugin 的 grafana 服务
DolphinDB 通过 Telegraf + Grafana 实现设备指标的采集监控和展示 - 掘金 (juejin.cn)
1. 下载安装grafana
or
sudo yum install initscripts urw-fonts wget
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.2.2-1.x86_64.rpm
sudo rpm -Uvh grafana-enterprise-7.2.2-1.x86_64.rpm
注:直接在linux环境部署,windows-->linux的rpm文件部分缺失;
2. 修改grafana默认配置(如端口号)
Linux rpm 包安装后,grafana 服务默认配置文件路径:
/etc/grafana/grafana.ini
如果需要修改默认配置,vim 修改该文件即可。修改启动端口为 8898,配置文件修改部分如下所示:
# The http port to use
http_port = 8898
注:
1、可以不更改端口号
2、一些命令
cat命令是通过ctrl+c命令退出;
su - //进入超级用户且能读取文件 su是root根用户无法读取
vi /etc/sysconfig/grafana-server
ai //编辑模式
按esc //退出编辑模式
:wq /退出并保存
cp -r /home/vivianist/download/*/ /var/lib/plugins //拷贝download所有子文件到plugins目录下
3. 启动grafana
启动 grafana 服务,执行:
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
查看服务器 3000 是否被 grafana 占用,执行:
lsof -i:3000
返回:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
grafana-s 63633 grafana 11u IPv6 1391033 0t0 TCP *:8898 (LISTEN)
说明 grafana 服务成功启动。
4. 下载dolphindb-datasource插件
进入目录/var/lib/grafana/plugins,下载 DolphinDB datasource plugin,输入命令:
git clone https://gitee.com/dolphindb/grafana-datasource.git
也可github下载后传输到linux系统;
上述下载的文件只有800+KB,参考官方文档下载有11.4M; Releases · dolphindb/grafana-datasource · GitHub
5. 重启grafana
下载完毕后,重启 grafana 服务,执行:
sudo service grafana-server restart
返回:
Restarting grafana-server (via systemctl): [ OK ]
说明重启成功。
查看 grafana 服务状态命令:
sudo service grafana-server status
6. 登录grafana
网址输入:服务器ip:3000
服务器Ip地址查看:ifconfig,inet字段后面的数字即为本地IP地址
Eg:127.0.0.1:3000
初始账号密码都是admin,修改默认密码
7. 添加dolphindb数据源
进入 grafana 主页,点击配置中的 Data Sources
点击 Add data source,搜索dolphindb
未出现dolphindb
ask.dolphindb.net/question/97…
修改配置文件后可以出来dolphindb,但settings加载不出。尝试查看插件加载状态发现可能插件没有效果;
重新下载;
DolphinDB Grafana Datasource Plugin
下载了新的dolphindb source插件,用了v2.0.900版本;不知道是否适配grafana 10.1.1版本;
后续操作:
//流数据
login("admin","123456")
n=100000
t1=streamTable(n:0,`value`time,[DOUBLE,TIMESTAMP])
share t1 as testTable //监控面板上查testTable
t1=NULL
def writeData(){
for (i in 0:1000) {
data = table(rand(50..100,1) as value, now() as time)
testTable.append!(data)
sleep(1000) // 1000ms
}
}
submitJob("jobId20230913","writeDateToStreamingTable",writeData)
getJobStat();
//导入csv表
login(`admin,`123456);
stockData="/home/vivianist/kdb/stockData.csv"
schemaTb=extractTextSchema(stockData)
//Update schemaTb set type = //指定部分有问题的列类型
test=loadText(stockData, , schemaTb)
select * from test
share test as test1
//读取分布式表
n=1000000
ID=rand(10, n)
x=rand(1.0, n)
t=table(ID, x)
db=database("dfs://rangedb", RANGE, 0 5 10)
pt1=db.createPartitionedTable(t, `pt1, `ID)
pt1.append!(t)
db=database("dfs://rangedb");
pt1=db.loadTable(`pt1);
select * from pt1;
share pt as ppt