Publish: January 18, 2021
Category: 运维
No Comments
现状
device_traffic 表所在的bucket已经设置了 Retention Policy 为 3d仍然整体的占用体积超过20G。tsm存储引擎文件过大严重超出预期,影响其他业务。通过简单分析主要是tsm文件过大,也就是说确实是存储的内容过多。
排查过程
通过简单分析,总体的思路是找到存储引擎位置,逐一分析具体是哪个bucket体积过大,然后分析原因。
在存储目录通过命令
cd /usr/local/influxdb/engine/data
du -sh ./*
逐一排查具体是哪个buckt所占的目录体积较大。目前来看是 “/” bucket体积特别大。“/”主要是influxdb系统相关的数据,并不会影响业务。
阅读剩余部分...
Publish: December 1, 2020
Category: 编程,运维
No Comments
influxdb1.x版本中支持的CQs(连续查询)在influxdb2.x中被task取代,全新定义了一套新的规则,我们暂且称之为任务规则。
如果你是从1.x版本中迁移数据,可以直接将1.x中的CQs直接转换成task来执行比如我之前的一段CQs:
create continuous query flow_rx_cq on multiwan
begin
select sum(value)
into "multiwan_inf"."autogen"."flow_rx_cq_result"
from multiwan_raw_rx
group by time(30m), flashid,imei,imsi,iccid
end
转换之后对应的是
from(bucket: "multiwan/")
|> range(start: -3d)
|> filter(fn: (r) => r._measurement == "multiwan_raw_rx")
|> filter(fn: (r) => r._field == "value")
|> aggregateWindow(every: 1m, fn: sum)
|> set(key: "_measurement", as: "flow_rx_cq_result")
|> to(
org: "example-org",
bucket: "multiwan/flow_rx_cq"
)
上面的命令是如下意思:
在multiwan的bucket中,创建一个连续查询结果存放在multiwan_rx_cq_result中,数据来源是multiwan_raw_rx 每一分钟执行一次计算value字段的累计结果值。
在命令行中执行
使用raw Flux创建一个任务
influx task create --org my-org - # <return> to open stdin pipe
options task = {
name: "flow_rx_task_result",
every: 6
}
# <ctrl-d> to close the pipe and submit the command 按ctrl+d 关闭管道并提交
Publish: October 16, 2020
Category: 运维
No Comments
InfluxBD所有下载预览
https://portal.influxdata.com/downloads/
ubuntu下安装influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.3_amd64.deb
dpkg -i influxdb_1.8.3_amd64.deb
启动和关闭
service influxdb startservice influxdb stop
默认情况下回占用8088和8086两个端口,很多人的服务器nginx可能回配置这个端口导致服务启动失败,注意下这种情况。
配置和数据目录
数据文件夹:/var/lib/influxdb
data 存放最终存储的数据,文件以.tsm结尾
meta 存放数据库元数据
wal 存放预写日志文件
配置文件: /etc/influxdb/influxdb.conf
阅读剩余部分...
Publish: October 16, 2020
Category: 代码分享
No Comments
这是一个influxdb的1.新版本客户端
https://github.com/influxdata/influxdb-php
如果使用的是2.x版本,请使用找个客户端
https://github.com/influxdata/influxdb-client-php
概览
一个易于使用的库,用于将inflexdb与PHP结合使用。由 @thecodeassassin, @gianarb. 维护。inflexdbphp库是为了拥有python influxdb客户机的php端口而创建的。这样,不同编程语言之间将有一个通用的抽象库。
安装
可以使用composer完成安装:
$ composer require influxdb/influxdb-php
PHP 5.3 和 PHP 5.4 用户请zhu'yi
如果使用php5.3和php5.4,0.1.x版本仍然受支持(bug修复和新版本修复)。0.1.x分支将在php5.3和php5.4上运行,但不包含1.0.0版本所具有的所有特性,例如UDP支持。
开始使用
初始化一个新的客户端对象
$client = new InfluxDB\Client($host, $port);
这将创建一个新的客户机对象,您可以使用它来读写InfluxDB的点。还可以从DSN(数据源名称)创建客户端:
// 直接获取数据库句柄
$database = InfluxDB\Client::fromDSN(sprintf('influxdb://user:pass@%s:%s/%s', $host, $port, $dbname));
// 使用客户端检索其他数据库
$client = $database->getClient();
重要提示:当使用DSN时,不要忘记urlencode()password(和username),尤其是当它包含非字母数字字符时。不这样做可能会引发异常。
阅读剩余部分...