Influxdb2.0 存储引擎体积过大排查解决过程记录

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系统相关的数据,并不会影响业务。


阅读剩余部分...

Inflxudb2 任务使用简介之1.0版本中连续查询如何转换为任务

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 关闭管道并提交

Ubuntu下安装时序数据库InfluxDB安装可视化工具Chronograf

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

阅读剩余部分...

PHP的InfluxDB客户端库使用

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),尤其是当它包含非字母数字字符时。不这样做可能会引发异常。





阅读剩余部分...