InfluxDB v1 版本说明
此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅等效的 InfluxDB v2 文档: InfluxDB OSS v2 版本说明。
v1.11.8
Bug 修复
- 在字符串比较之前,从
/api/v2/delete
兼容性 API 中的 measurement 名称中去除双引号(例如,允许 measurement 名称中包含特殊字符)。
v1.11.7
此版本代表自 2021 年以来 InfluxDB OSS v1 的首次公开版本,并包含添加到 InfluxDB Enterprise 然后反向移植到 InfluxDB OSS v1 的许多增强功能和错误修复。这些增强功能中的许多改进了 InfluxDB v1 和 InfluxDB 3 之间的兼容性,并有助于简化 InfluxDB v1 工作负载到 InfluxDB 3 的迁移。
升级到 InfluxDB 1.11 之前
InfluxDB v1 的最后一个公共版本是 v1.8.10。从 v1.8.10 升级到 v1.11.7 是一个很大的跳跃,应谨慎进行。考虑在升级前执行以下一项或多项操作
- 备份您的数据
- 使用配置选项相同的 InfluxDB 1.11 创建当前 InfluxDB 的克隆。双写到您当前的 InfluxDB 实例和新的 1.11 实例。测试使用 InfluxDB 1.11 写入和查询数据。
没有 32 位构建版本
InfluxData 不再为 32 位架构提供 InfluxDB v1 的构建版本。所有官方构建包都适用于 64 位架构。
功能特性
- InfluxQL 改进
- 升级到 InfluxQL 1.2.0。
- 在
SHOW MEASUREMENTS
中支持数据库和保留策略通配符,例如:SHOW MEASUREMENTS ON *.*
- 优化
SHOW FIELD KEY CARDINALITY
。 SHOW TAG VALUES
从一个特定的保留策略返回结果。- 在
SHOW TAG KEYS
中支持WITH KEY
子句。 - 支持 Hyper Log Log 运算符:
count_hll
、sum_hll
、merge_hll
。 - 对
SHOW SERIES CARDINALITY
查询使用count_hll
。
- 日志改进
- 即使未启用查询日志记录,也记录慢查询。
- 始终记录日志级别。
- 将版本号添加到
/debug/vars
输出。 - 在
/debug/vars
输出中包含crypto
诊断信息。 - 添加记录被
query-timeout
终止的查询的功能。 - 为压缩添加日志记录。
- 新的 InfluxDB 检查工具
- 添加
influx_inspect report-db
命令,以在迁移到 InfluxDB Cloud (TSM) 时估算 1.x 数据库的基数。 - 添加
influx_inspect check-schema
和influx_inspect merge-schema
命令,以检查分片之间的类型冲突。
- 添加
- 新的配置选项
- 添加
total-buffer-bytes
配置选项,以设置分配给订阅缓冲区的总字节数。 - 添加
termination-query-log
配置选项,以在SIGTERM
时启用将正在运行的查询转储到日志。 - 添加
max-concurrent-deletes
配置选项,以设置删除并发。 - 添加 Flux 查询配置设置。
- 添加
compact-series-file
配置选项,以在启动时启用或禁用序列文件压缩。 - 添加
prom-read-auth-enabled
配置选项,以验证 Prometheus 远程读取的身份。
- 添加
- Flux 改进
- 将 Flux 升级到 v0.194.5。
- 更新 Flux 组件以使用
flux/array
而不是arrow/array
。 - 将 Flux 查询支持添加到
influx
REPL。 - 添加 新的下推功能,以提高 Flux 查询性能。
- InfluxDB v2 兼容性 API 更新
- 部分支持
/v2/api/buckets
兼容性 API 中的创建、检索、更新、删除和列表操作,并正确处理对不支持的/v2/api/buckets
端点的请求。 - 实现
v2/api/delete
兼容性 API。
- 部分支持
- 其他内部指标
- 按 measurement 的入口指标。
- 按登录名的 Measurement 指标。
- 序列创建入口指标。
- 添加订阅缓冲区大小使用率指标。
- 构建改进
- 为 InfluxDB 1.x 启用 static-pie 构建。
- 使 Windows 和 ARM64 构建成为可能。
- 其他添加和优化
- 添加多个 UDP 写入器。
- 优化序列迭代。
- 优化将更改保存到
fields.idx
。
Bug 修复
- 防止
GROUP BY
在某些情况下为每个组返回多个结果。 - 将
curl
依赖项添加到 InfluxDB 包中,以便在 systemd 脚本中使用。 - 使用
defer
解锁互斥锁。 - 确保仅提供
-shard
选项时,influxd-ctl backup
创建可用的备份。 influx_inspect verify -dir
不再将/data
附加到目录路径。文件以递归方式检查,其中包括/data
目录和其他子目录中的文件。- 不要在 mmap 失败时重命名文件。
- 完全清理部分打开的 TSI。
- 记住
Open()
失败的分片,并避免重复尝试。 - 改进打开索引分区时的错误消息。
- 原子性地创建
TSI MANIFEST
文件 - 将路径添加到 TSI 日志和索引文件错误。
- 在写入错误时恢复内存 Manifest。
- 通用化 Windows 测试。
- 当重命名跨卷时使用
copy
。 - 为跨卷文件重命名添加测试。
- 记录连续查询统计信息存储中的错误。
- 删除
_fieldKeys
迭代器的破坏性参数验证。 ListBuckets
正确返回包装的响应。- 不要将跳过的分片消息写入行协议输出目标。
- 如果遇到
fields.idxl
,则添加警告。 - 防止世界可写的
MANIFEST
文件。 - 不要转义 CSV 输出。
- 避免读取非标准序列段文件时出现 SIGBUS。
- 防止保留服务创建孤立的分片文件。
- 在关闭之前同步索引文件。
- 遇到精度错误时中止处理写入请求。
MeasurementsCardinality
不应小于 0。- 替换错误中不可打印和无效的字符。
- 保留 TSI 引用,或者不要在错误时关闭
TagValueSeriesIDIterator
。 - 消除
Monitor.globalTags
上的竞争条件。 - 正确处理
MaxSeriesPerDatabaseExceeded
。 - 创建订阅时返回底层错误。
- 修复导致恢复命令失败的竞争条件。
- 创建没有重叠时间范围的分片。
- 改进没有数据的快照的错误消息。
- 检测错误引用的标签值并返回错误。
- 在
influx_tools compact-shard
中使用debug
日志级别。 - 允许在 Flux 迭代器读取期间限制分片。
- 恢复数据时,当使用
-newdb
时强制使用-db
参数。 - 在写入后将序列段同步到磁盘。
- 修复
influx_inspect dumptsi
中的死锁。 - 防止从可移植备份恢复时出错。
- 在关闭迭代器之前,从 mmapped 内存复制名称。
- TSI 应压缩旧的或过大的日志文件。
- 在没有新写入的情况下压缩旧的
tsl
文件。 - 在解析行协议时强制执行字段大小的硬限制。
- 确保日志格式 (JSON) 得到遵守。
- 确保 systemd 处理 HTTPS 和 40x 响应代码,并在等待 API 响应时无限期阻止。
- 避免压缩队列统计信息抖动。
- 需要数据库授权才能查看连续查询。
- 返回
ErrNotExecuted
的正确计数。 - 解决各种
staticcheck
警告。 - 正确关闭多个 HTTP 服务器。
- 使缺少分片的错误消息保持一致。
- 修复 Prometheus 收集器指标的冗余注册。
- 提高排序合并迭代器的性能。
- 在需要时增长标签索引缓冲区。
- 修复序列化
/debug/vars
时的键冲突。 - 尝试删除不存在的分片 ID 时返回错误。
- 改进的 CORS 支持
- 将 User-Agent 添加到允许的 CORS 标头。
- 在 v2 兼容性端点中允许 CORS。
- 允许
PATCH
请求方法。
其他
- 升级到 Go 1.22.7。
- 检测并使用 Flux 中定义的 Rust 版本 (1.73)。
- 将 Flux 升级到 v0.194.5。
- 升级多个依赖项以进行维护和安全。
- 升级
xbuilder
以与 InfluxDB Enterprise 对等。 - 升级到最新的 crossbuilder。
- 使用社区维护的
golang-jwt
- 为每个版本生成
influxdb.${CIRCLE_TAG}.digests
。 - 更新贡献指南。
- 删除已弃用的
influx_stress
工具。
v1.8.10
Bug 修复
- 确保 InfluxDB 包的
curl
依赖项。 - 确保快照服务正确读取 payload。
- 通过在 systemd 脚本中无限期阻止来处理 40x 错误。
- 修复
influxd restore
中的以下错误- 正确验证参数。
- 改进返回空快照时的错误消息。
- 修复 Windows 上的临时文件删除。
v1.8.9
Bug 修复
- 防止在存在重叠分片时静默丢弃写入。
- 解决
influxd restore -portable
备份错误。 - 确保 systemd-startup 脚本可由组和其他用户执行。
- 在 systemd 包装器中处理 https,并防止其永远循环。
- 当使用 InfluxDB OSS 将备份还原到 InfluxDB Enterprise 集群时,记录错误而不是 panic。
v1.8.8
由于在 v.1.8.8 中遇到几个构建依赖项问题,此版本将不会发布。
v1.8.7
Bug 修复
- 使用 yum 兼容的名称重命名 ARM RPM。
- 在通过 Docker 构建期间转换 RPM 的 ARM arch 名称。
- Systemd 单元现在在启动时阻止,直到 HTTP 端点准备就绪。
- 将 protobuf 库更新到当前版本。
v1.8.6
此版本仅适用于 InfluxDB Enterprise 1.8.6 客户。InfluxDB 1.8.6 没有 OSS 特定的更改,更新是为了支持 InfluxDB Enterprise 1.8.6。
v1.8.5
功能特性
- 添加使用新的
influx_inspect report-disk
命令查找哪些 measurement 或分片导致磁盘大小增加的功能。这对于容量规划和管理存储需求非常有用。 - 添加对
influx_inspect export
的支持,通过在-out
标志后添加连字符来写入标准输出 (stdout
)。使用此选项写入stdout
,并将错误和状态消息发送到标准错误 (stderr
)。 - 更新
/query
的 HTTP 处理程序,以 记录 POST 请求的查询文本。 - 优化仅包含一个分片的组中的分片查找。感谢 @StoneYunZhao!
Bug 修复
- 更新元查询(例如,SHOW TAG VALUES、SHOW TAG KEYS、SHOW SERIES CARDINALITY、SHOW MEASUREMENT CARDINALITY 和 SHOW MEASUREMENTS),以便在可能的情况下检查查询上下文,以遵守在
query-timeout
配置参数 中设置的超时值。请注意,元查询检查上下文的频率低于使用迭代器的常规查询,因为元查询以批处理方式返回数据。 - 以前,成功的写入错误地增加了
WriteErr
统计信息。现在,成功的写入正确地增加了writeOK
统计信息。 - 更正 JSON marshalling 错误格式。
- 以前,GROUP BY 查询的偏移量导致间隔跨越夏令时更改时,会插入一个额外的一小时的输出行。现在,在计算时区偏移量之前,设置正确的 GROUP BY 间隔开始时间。
- 改进了 TCP 连接关闭的错误日志记录。
- 修复
regexp
处理以符合 PromQL。 - 以前,当 SELECT INTO 查询生成不受支持的值(例如,
+/- Inf
)时,查询会静默失败。现在,会发生错误以通知该值无法插入。 - 解决备份期间发生的“快照正在进行中”错误。
- 修复访问 tombstone 统计信息 (
TombstoneStat
) 时的数据竞争。 - 在添加新字段或 measurement 时,最大限度地减少锁争用。
- 解决了在报告较早错误时发生错误导致资源过度使用的问题。
v1.8.4
功能特性
- 将
stat_total_allocated
添加到 Flux 日志记录。要确保启用 Flux 日志记录,请在 InfluxDB 配置文件 中将flux-enabled
和flux-log-enabled
都设置为true
。有关 InfluxDB 日志记录的更多信息,请参阅 使用 InfluxDB 进行日志和跟踪。
Bug 修复
将持续时间添加到 Flux 日志记录,包括日志编译、执行和总请求持续时间。以前,以下统计信息错误地记录了
0.000ms
stat_total_duration
stat_compile_duration
stat_execute_duration
现在,这些持续时间已正确记录。
v1.8.3
功能特性
- 使用最新版本的 InfluxQL 包。
- 将
-lponly
标志添加到influx export
子命令。 - 添加通过 /debug/vars HTTP 端点 跟踪写入的值数量 的功能。
- 将 UUID 库从 github.com/satori/go.uuid 更新到 github.com/gofrs/uuid。
Bug 修复
- 多块数据的 ArrayFilterCursor 截断。
- 多 measurement 查询现在返回所有适用的序列。
- 在写入之前锁定 map。
v1.8.2
Bug 修复
- 恢复对
DefaultSeriesIDSetCacheSize
的配置更改,该更改导致某些环境的内存使用量增加。
v1.8.1
InfluxDB 1.8.1 引入了一个可能增加内存使用量的 bug。如果您安装了此版本,请安装 v1.8.2,其中包括以下功能、性能改进和 bug 修复。
功能特性
- 允许用户添加自定义 HTTP 响应标头以符合内部安全策略。
性能改进
- InfluxQL 查询计划器并行计划每个字段,以缩短计划时间。
- 通过批量处理 tombstone 写入改进了 DELETE/DROP 的性能。
Bug 修复
- 修复了导致 panic 的 Flux
buckets()
函数。 - TSI:解决了一些导致段错误的边缘情况。
- HTTP:简化 Authorizer。
- 等待删除 epoch,然后再删除分片。
- 改进创建快照时的错误处理。
- 从构建中删除所有 Go 1.12 引用。
v1.8.0
功能特性
Flux v0.65 已准备好用于生产环境
此版本更新了对 Flux 语言和查询的支持。要了解 Flux 设计原则并查看如何开始使用 Flux,请参阅 Flux 简介。
使用新的
influx -type=flux
选项启用 Flux REPL shell 以创建 Flux 查询。Flux v0.65 包括以下功能
- 连接驻留在多个 measurement、bucket 或数据源中的数据
- 使用跨 measurement/bucket 收集的数据执行数学运算
- 通过广泛的字符串相关函数库操作字符串
- 通过
pivot()
和其他函数塑造数据 - 基于任何数据列(标签、字段等)进行分组
- 基于日历月、年进行窗口和聚合
- 跨 Influx 和非 Influx 源连接数据
- 将布尔值转换为整数
- 查询地理时空数据(实验性)
- 许多用于处理数据的其他函数
我们正在评估对等效于现有 InfluxQL 查询管理控件 的 Flux 查询管理控件的需求,这基于您的反馈。请加入 InfluxCommunity、Slack 或 GitHub 上的讨论。InfluxDB Enterprise 客户,请联系 support@influxdata.com。
向前兼容性
- InfluxDB 2.x API 兼容性端点 现在是 InfluxDB 1.x 产品线的一部分。
这允许您利用新的 InfluxDB 2.0 客户端库 来使用 Flux 写入和查询数据。在为迁移到 InfluxDB 2.0 Cloud 做准备时,充分利用最新的客户端库,以便在您准备好扩展时进行迁移。
操作改进
- 添加
influx inspect verify-tombstone
命令 - 将 脱机序列压缩添加到
influx_inspect buildtsi
。如果您当前正在使用时间序列索引 (tsi1),则索引文件会随着时间的推移而增长,并且不会自动压缩。此工具使管理员能够在数据库脱机时执行压缩。 - 在
influx
CLI 中添加使用-url-prefix
连接到自定义 HTTP 端点的支持。这允许 Influx CLI 连接到在反向代理后面运行的 InfluxDB 实例,该反向代理具有自定义子路径/
端点。
安全增强
- 添加对 TLS 1.3 配置 的支持,并更新当前的 Go 密码 列表。
- 扩展对查询中绑定参数的支持,以防止注入攻击。
其他更新
- 将 Go 版本更新到 1.13.8。
Bug 修复
- 如果
snapshotter
繁忙,则在备份期间跳过WriteSnapshot
。此修复消除了快照和备份进程之间的争用,从而使备份能够更可靠地完成。 - 在实际删除数据时(而不是仅在缓存中或时间范围外找到已删除数据时)重建序列索引。
- 正确解析 Accept 标头。
- 将压缩错误日志从
Info
升级到Warn
。 - 删除
meta
索引的双重递增。 - 改进
inmem
索引的序列基数限制。 - 确保返回所有块数据。
- 如果未使用 Flux,则缩短
influxd
和influx
启动时间。 - 修复
-compact-series-file
标志中的错误。 - 修复访问
tsi
活动日志时出现的 SIGSEGV。 - 验证写入请求中的精度。
v1.7.10
Bug 修复
- 修复失败的损坏数据文件重命名过程。
- 使分片摘要可以安全地并发使用。
- 修复 TSI 索引中的缺陷,其中负相等过滤器 (
!=
) 可能导致没有匹配的序列。 - 修复不频繁的缓存快照的压缩逻辑,这导致频繁的完全压缩而不是 级别压缩。
- 修复当读取到空缓冲区时序列键块数据被截断的问题。确保返回所有块数据。
- 在压缩期间,跳过 TSM 文件,这些文件在之前的压缩中出现块读取错误。
v1.7.9
- 此版本是使用 Go 1.12.10 构建的,它消除了 HTTP desync 漏洞。
Bug 修复
- 防止压缩突发吞吐量限制。
- 将 TSI 压缩等待组替换为计数器。
- 更新 InfluxQL 依赖项。
- 添加选项以验证 debug/pprof 和 ping 端点的身份。
- 即使指定了自定义 TLS 配置,也遵守
insecure-skip-verify
。
功能特性
- 将 Go 版本更新到 1.12.10。
- 删除 Godeps 文件。
- 将 Flux 版本更新到 v0.50.2。
v1.7.8
InfluxDB 现在拒绝所有非 UTF-8 字符。要成功将数据写入 InfluxDB,请仅在数据库名称、measurement 名称、标签集和字段集中使用 UTF-8 字符。
Bug 修复
- 修复 Prometheus 读取 panic。
- 删除
tsm1.StringArrayEncodeAll
中多余的fmt.Println
。 - 修复在
DROP MEASUREMENT
后字段重新出现的问题。 - 删除 dubugging
println
调用。 - 降序模式下带有聚合的子查询排序错误。
- 修复 http 处理程序,使其不会将序列错误标记为 partial。
- 使
SHOW SERIES EXACT CARDINALITY
仅计算不同的序列。 - 修复超出最小/最大范围的时间范围。
功能特性
- 将 Flux 版本更新到 v0.36.2
1.7.7
已知问题
- Flux 技术预览未得到改进,仍为 0.24.0 版本。下个月的维护版本将更新预览。
- 升级后,由于此版本中引入的
Println
语句,客户遇到了过大的输出附加行。有关可能的解决方法,请参阅 https://github.com/influxdata/influxdb/issues/14265#issuecomment-508875853。下个月的维护版本将解决此问题。
Bug 修复
- 修复聚合的排序顺序,以便它们按标签然后按时间排序。
- 在子查询中评估时间文字时使用时区。
- 修复 CSV 解码器 bug,其中空标签值会导致数组索引 panic。
- 修复
SeriesFile
中的打开/关闭竞争。 - 在截断后同步序列段。
- 修复具有不同外部标签的子查询中选择器的排序。
1.7.6
如果您的 InfluxDB OSS 服务器正在使用默认的内存索引 ([data].index-version = "inmem"
),则此版本包含针对 InfluxDB 1.7.5 服务器停止响应而没有警告的修复。
功能特性
- 将 Flux 升级到
0.24.0
并删除平台依赖项。- 如果启用了 Flux,请使用 Chronograf 1.7.11 或更高版本。
- 使用 Flux 时,存在一个已知问题,即使用
now
会导致 panic。正确的语法是now()
。
- 跟踪 Prometheus 远程读取处理程序的远程读取请求。
Bug 修复
- 确保在使用
influx
CLI 和-type=flux
选项执行 Flux HTTP 请求时,凭据已正确传递。 - 数据生成改进的反向移植:重命名文件以在版本之间保持一致性,添加
time-interval
模式选项,并更新模式示例文档。 - 修复
[http]shared-secret
配置设置为空白时的安全漏洞。 - 为
tagKeyValueEntry.setIDs()
添加 nil 检查。 - 扩展 Prometheus 远程写入端点以删除不受支持的 Prometheus 值 (
NaN
,-Inf
和+Inf
),而不是拒绝整个批次。- 如果启用了写入跟踪日志记录 (
[http] write-tracing = true
),则会记录已删除值的摘要。 - 如果一批值包含随后被删除的值,则返回 HTTP 状态代码
204
。
- 如果启用了写入跟踪日志记录 (
- 更新谓词键映射以匹配 InfluxDB
2.x
行为。 - 修复 Prometheus 读取 API 中的 panic。
- 为 influxql 添加版本约束。
1.7.5
更新 (2019-04-01): 如果您的 InfluxDB OSS 服务器正在使用默认的内存索引 ([data].index-version = "inmem"
),则不要升级到此版本。客户报告说 InfluxDB 1.7.5 停止响应而没有警告。有关详细信息,请参阅 GitHub issue #13010。计划的修复 将很快可用。
Bug 修复
- 将
tagKeyValue
互斥锁更新为写入锁。 - 修复更多分片 epoch 竞争。
1.7.4
功能特性
- 允许配置 TSI 位图缓存。请参阅:InfluxDB 配置
[data]
Bug 修复
- 移除在 TSI 中缓存位图时的写入时复制 (copy-on-write)。
- 为 Amazon Linux 2 使用
systemd
。 - 回退 “限制强制完整和冷压缩大小。”
- 将
TagValueSeriesIDCache
转换为使用字符串字段。 - 确保缓存的序列 ID 集合是由 Go 堆支持的。
1.7.3
重要更新
如果您尚未安装此版本,请安装 1.7.4 版本。
如果您当前正在运行此版本,请尽快升级到 1.7.4 版本。
- 在 InfluxDB 1.7.3 版本中发现了一个严重缺陷,我们的工程团队已在 1.7.4 版本中修复了该问题。出于对您的数据和项目的高度关注,请尽快升级到 1.7.4 版本。
- 严重缺陷: 大于 16GB 的分片在完全压缩期间存在数据丢失的高风险。当分片变为“冷”状态时,即在分片指定的时间范围内没有新数据写入数据库时,会运行完全压缩过程。
- 事后分析: InfluxData 工程团队正在进行事后分析,以确定此缺陷是如何引入的。他们的发现将在博客文章中分享。
重大变更
- 修复无效的 UTF-8 字节阻止分片打开的问题。将字段和度量视为原始字节。
功能特性
- 将 Flux 更新至
0.12.0
Bug 修复
- 限制强制完整和冷压缩大小。
- 为 Flux HTTP 请求添加用户身份验证和授权支持。
- 调用
storage.Group
API 以正确映射组模式。 - 将始终返回浮点数的函数标记为始终返回浮点数。
- 添加可选的 Flux 查询日志记录支持。
- 修复基数估计错误。
1.7.2
Bug 修复
- 更新至 Flux 0.7.1。
- 基于冲突的并发解析添加了保护机制和一个基于 epoch 的系统,以协调在对同一时间点的写入操作发生删除操作时的修改。
- 跳过并警告序列文件不应位于保留策略目录中。
- 检查是否已从索引中删除度量,如果已删除,则清理字段索引。同时修复了清理问题,即在匹配诸如 “m1” 和 “m10” 之类的度量时,仅检查了前缀。
- 向用户显示错误消息,指出数据库必须在非混合索引模式下运行才能允许删除操作。
- 更新平台依赖项以简化 Enterprise 中的 Flux 支持。
- 在存在 tombstone 的情况下验证序列文件。
- 修复当切片中的类型实现 Unmarshaler 时,
ApplyEnvOverrides
在环境变量设置为空时不调用UnMarshaltext
的问题。 - 在写回点时丢弃 NaN 值,并修复点写入器以报告实际写入的点数,并忽略被丢弃的点。
- 查询授权器未正确传递给子查询,因此当子查询读取值时,不会发生拒绝。最大序列限制未向下传播。
1.7.1
Bug 修复
- Simple8B
EncodeAll
错误地编码条目:对于1s
的运行,如果第 120 个或第 240 个条目不是1
,则该运行将被错误地编码为选择器0
(240 1s
) 或选择器1
(120 1s
),导致第 120 个或第 240 个值的数据丢失。表现为消耗大量 CPU 资源以及压缩无限期运行。
1.7.0
重大变更
分块查询已添加到 Go 客户端 v2 接口中。如果您之前是针对 Go 客户端 v2 编译的,则需要使用更新后的接口重新编译。
功能特性
Flux v0.7 技术预览
此版本中已添加对 Flux 语言和查询的支持。开始探索 Flux 0.7 (技术预览)
- 使用新的配置设置
[http] flux-enabled = true
启用 Flux。 - 使用新的
influx -type=flux
选项启用 Flux REPL shell 以创建 Flux 查询。 - 阅读有关 Flux 和 Flux 语言、启用 Flux 的信息,或跳转到入门指南和其他指南。
时间序列索引 (TSI) 查询性能和吞吐量改进
- 针对具有许多共享标签对的索引的查询,加快索引规划速度。
- 减少包含先前查询过的标签对的查询的索引规划 — TSI 索引现在缓存部分索引结果以供以后重用。
- 性能改进需要更改要使用的磁盘 TSI 格式。
- 为了利用这些改进:
- 重建您的索引或等待 TSI 压缩您的索引,届时将应用新的 TSI 格式。
- 热分片和新分片立即使用新的 TSI 格式。
其他功能
- 默认启用存储服务。
- 确保读取服务正则表达式得到优化。
- 将分块查询添加到 Go 客户端 v2。
- 添加
access-log-status-filters
配置设置以创建访问日志过滤器。 - 时间序列索引 (TSI) 的压缩性能改进。
- 将 roaring bitmaps 添加到 TSI 索引文件。
Bug 修复
uuid
v1 生成中缺少hardwareAddr
。- 修复 derivative 等函数的继承间隔。
- 修复当函数引用子查询中的标签时,子查询功能的问题。
- 当外部查询不按该标签分组时,从子查询中剥离标签。
1.6.6
Bug 修复
- 将始终返回浮点数的函数标记为始终返回浮点数。
- 修复基数估计错误。
- 将
tagKeyValue
互斥锁更新为写入锁。
1.6.5
功能特性
- 减少 TSI
TagSets
实现中的分配。
Bug 修复
- 修复
IndexSet
中的 panic。 - 将查询授权器传递给子查询。
- 修复 TSM1 在读取器错误时的 panic。
- 将数据库和保留策略名称限制为 255 个字符。
- 将 Go 运行时更新至 1.10.6。
1.6.4
功能特性
- 在构建 TSI 索引时,使用
buildtsi
中的-max-cache-size
设置最大缓存大小。
Bug 修复
- 修复
tsi1
sketch 锁定。 - 修复当函数引用子查询中的标签时,子查询功能的问题。
- 当外部查询不按该标签分组时,从子查询中剥离标签。
- 将
-series-file
标志添加到dumptsi
命令帮助中。 - 清理失败的 TSM 快照。
- 修复 TSM1 在读取器错误时的 panic。
- 修复序列文件 tombstone 处理。
- 修复流迭代器以不忽略错误。
- 当序列 ID 迭代器为 nil 时,不要 panic。
- 修复可能的 nil 迭代器的附加操作。
1.6.3
功能特性
- 从堆中移除 TSI1 HLL sketches。
Bug 修复
- 修复 derivative 等函数的继承间隔。来自外部查询的继承间隔不应导致内部查询失败,因为继承间隔仅隐式传递给支持按时间分组功能的内部查询。由于具有 derivative 的内部查询不支持按时间分组,并且内部查询本身未指定时间,因此外部查询不应使内部查询无效。
- 修复聚合数据的 derivative 和其他函数的时间范围。derivative 函数和与其类似的其他函数会用数据预加载自身,以便第一个间隔是时间范围的开始。这意味着读取时间范围之外的数据。在 v1.4.0 中对分片映射器进行的一项更改导致分片映射器将查询限制为给分片映射器的间隔。这是正确的,因为分片映射器只能处理它已映射的时间,但这破坏了回溯过去以获取 derivative 和其他使用该功能的函数的功能。查询编译器已使用一个额外的属性进行了更新,该属性记录了需要读取过去多少个间隔,以便分片映射器可以包含额外的可能不一定从中读取但可能由于上述描述的功能而被查询的时间。
1.6.2
功能特性
- 减少 TSI TagSets 实现中的分配。
Bug 修复
- 确保孤立序列随分片删除一起清理。
1.6.1
功能特性
- 使用位图迭代器提高 LogFile 性能。
- 将 TSI 索引基数报告添加到
influx_inspect
。 - 更新至 Go 1.10。
- 提高
buildtsi
和 TSI 规划的性能。 - 提高单一度量读取服务的性能。
- 移除最大并发压缩限制。
- 提供可配置的 TLS 选项。
- 添加选项以向内核提示 MADV_WILLNEED。
Bug 修复
- 改进序列段恢复。
- 修复 Windows 上零长度文件的 mmap。
- 确保尽可能晚地执行 Filter 迭代器。
- 在配置中记录 UDP 精度设置。
- 允许标签键包含下划线。
- 修复匹配特定类型的正则表达式时发生的 panic。
1.6.0
重大变更
- 如果 math 与同一选择器多次一起使用,它现在将充当选择器而不是聚合器。有关详细信息,请参阅 #9563。
- 对于从 Prometheus 端点接收的数据,每个 Prometheus 度量现在都存储在其自己的 InfluxDB 度量中,而不是使用 Prometheus 度量名称作为
__name__
标签将所有内容存储在_
度量中。
功能特性
- 在
influx
客户端中支持代理环境变量。 - 实现基本三角函数。
- 添加使用谓词删除多个序列的能力。
- 实现
floor
、ceil
和round
函数。 - 向 InfluxQL 添加更多数学函数。
- 允许自定义服务器创建的 unix 套接字组和权限。
- 添加
suppress-write-log
选项,以便在启用日志时禁用写入日志。 - 添加额外的技术分析算法。
- 验证输入上的点。
- 在启动期间记录有关索引版本的信息。
- 将键清理添加到
influx_inspect
实用程序中的deletetsm
命令。 - 优化
spread
函数以迭代处理点而不是批量处理。 - 允许在条件中使用数学函数。
- 添加 HTTP 写入节流设置:
max-concurrent-write-limit
、max-enqueued-write-limit
和enqueued-write-timeout
。 - 实现
SHOW STATS FOR indexes
。 - 将
dumptsmwal
命令添加到influx_inspect
实用程序。 - 提高优化为静态 OR 条件的正则表达式模式的数量。
Bug 修复
- 支持通过环境变量设置日志级别。
- 修复检查 fieldset 时发生的 panic。
- 确保在使用逗号时解析的标签数量正确。
- 修复 WAL 中的数据竞争。
- 允许
SHOW SERIES
kill。 - 回退 “在加载 TSM 文件时使用 MADV_WILLNEED”。
- 修复回归问题,以再次允许将 now() 用作 group by 偏移量。
- 在保留服务中删除已删除的分片。
- 在
Engine.DiskSize()
中忽略索引大小。 - 允许从子查询中强制转换值。
- 避免在使用 text/csv 的 show diagnostics 时发生 panic。
- 正确跟踪所有格式类型的查询的响应字节写入量。
- 当不存在分片时,移除序列文件的错误。
- 修复多个嵌套 distinct 调用时的验证。
- TSM:
TSMReader.Close
阻塞直到读取完成。 - 为
top
和bottom
返回正确的辅助值。 - 在释放 FileStore 互斥锁后,从
FileStore.Close
关闭 TSMReaders。
1.5.5
功能特性
- 减少 TSI
TagSets
实现中的分配。
Bug 修复
- 复制
IndexSet.MeasurementNamesByExpr
的返回值。 - 确保孤立序列随分片删除一起清理。
- 修复聚合数据的 derivative 和其他函数的时间范围。
- 修复流迭代器以不忽略错误。
- 当序列 ID 迭代器为
nil
时,不要 panic。 - 修复
IndexSet
中的 panic。 - 将查询授权器传递给子查询。
- 修复 TSM1 在读取器错误时的 panic。
1.5.4
功能特性
- 添加
influx_inspect deletetsm
命令,用于批量删除原始 TSM 文件中的度量。
Bug 修复
- 修复 readTombstoneV4 中的 panic。
- buildtsi: 不要转义度量名称。
1.5.3
功能特性
- 立即在启动时添加
[http] debug-pprof-enabled
配置设置。对于调试启动性能问题很有用。
Bug 修复
- 修复多个嵌套
DISTINCT
调用时的验证。 - 为
TOP
和BOTTOM
返回正确的辅助值。
1.5.2
功能特性
- 在运行
buildtsi
时检查 root 用户。 - 可调整的 TSI 压缩阈值。
Bug 修复
- backport: 检查备份目录没有 manifest 文件时的失败情况。
- 修复回归问题,以再次允许将
now()
用作 group by 偏移量。 - 回退
Use MADV_WILLNEED when loading TSM files
。 - 在
Engine.DiskSize()
中忽略索引大小。 - 修复
buildtsi
分区键。 - 即使 AST 未正确形成,也要确保条件被正确编码。
1.5.1
Bug 修复
- 再次允许时间变量不区分大小写。
- 支持通过环境变量设置日志级别。
- 确保解析的标签数量正确。
- 修复检查 fieldset 时发生的 panic。
- 修复 WAL 中的数据竞争。
1.5.0
重大变更
默认日志记录格式已更改。有关详细信息,请参阅 InfluxDB 中的日志记录和跟踪。
功能特性
- 改进 CLI 连接警告。
- 备份实用程序打印备份文件列表。
- OSS 的备份和恢复以企业兼容的备份格式生成和使用数据。
- 恢复以在线模式运行,并且不删除现有数据库。
- 导出功能使用
start
和end
按timestamp
过滤导出的数据。 - 处理 TSM 引擎中的高基数删除。
- 提高高基数的内存索引启动性能。
- 为流式传输和复制分片添加更多 TSI 支持。
- 在成功导入后安排完全压缩。
- 添加 Prometheus
/metrics
端点。 - 添加生成分片摘要的能力。
- 允许在 InfluxDB CLI 程序中设置节点 ID。
Bug 修复
- 拒绝 influx CLI 的额外参数。
- 修复正则表达式运算符后所需的空格。感谢 @stop-start!
- 修复
panic: sync: WaitGroup is reused before previous Wait has returned
。 - 修复合并迭代器 close 方法中的竞争条件。
- 修复查询编译,以便允许多个嵌套 distinct 调用
- 修复 CLI 以允许在 use 语句中使用带引号的数据库名称。
- 当响应体长度为零时,更新客户端
4xx
错误消息。 - 从日志中删除多余的换行符。
- 允许条件表达式中使用单独的布尔文字。
- 提高写入超过
max-values-per-tag
或max-series
时的性能。 - 防止查询同时完成并在同一时间被终止时发生 panic。
- 修复压缩时块按时间排序缺失的问题。
- WAL: 更新
lastWriteTime
行为
1.4.3
配置更改
[data]
部分
cache-snapshot-memory-size
:默认值从 25m
更改为 256m
。
Bug 修复
- 修复较高的磁盘 I/O 使用率
1.4.2
如果 influxd
启动失败并出现 incompatible tsi1 index MANIFEST
错误,请参阅 1.4.0 重大变更部分。
Bug 修复
- 修复运行
dep init
时出现的panic: runtime error: slice bounds out of range
1.4.1
Bug 修复
- 修复通过 IFQL RPC API 的降序游标和范围查询。
1.4.0
TSI 索引
此功能在此版本中仍处于实验阶段。但是,已进行了一些改进,新的元查询更改将允许比以前更深入地探索此功能。目前不建议在生产环境中使用。我们感谢您对该功能的所有反馈。请继续提供反馈!
重大变更
您不能再在子查询中指定与顶级查询中不同的 ORDER BY
子句。此功能从未正常工作,但未明确禁止。
作为 tsi1
索引持续开发的一部分,对 Bloom Filter 的实现进行了更改,Bloom Filter 用于有效地确定序列是否不存在于索引中。虽然这显着提高了索引的性能并降低了其内存消耗,但在运行数据库的先前版本时创建的现有 tsi1
索引与 1.4.0 不兼容。
使用 tsi1
索引的数据库的用户必须执行以下过程才能升级到 1.4.0
- 停止
influxd
。 - 删除使用
tsi1
索引的数据库上的所有index
目录。使用默认配置,这些目录可以在/var/lib/influxdb/data/DB_NAME/RP_NAME/SHARD_ID/index
或~/.influxdb/data/DB_NAME/RP_NAME/SHARD_ID/index
中找到。值得注意的是,此时您访问了多少不同的shard_ids
。 - 分别使用分片的数据和 WAL 目录作为
-datadir
和-waldir
运行influx_inspect inmem2tsi
工具。给定步骤 (2) 中的示例,这将是influx_inspect inmem2tsi -datadir /var/lib/influxdb/data/DB_NAME/RP_NAME/SHARD_ID -waldir /path/to/influxdb/wal/DB_NAME/RP_NAME/SHARD_ID
。 - 为每个需要转换的分片重复步骤 (3)。
- 启动
influxd
。
如果用户拥有现有的 tsi1
分片,并且在未遵循上述步骤的情况下尝试启动 1.4.0 版本,则会发现分片拒绝打开,并且很可能会看到以下错误消息:incompatible tsi1 index MANIFEST
。
配置更改
[collectd]
部分
- 添加了
parse-multivalue-plugin
选项,默认值为split
。当设置为split
时,多值插件数据(例如df free:5000,used:1000
)将被拆分为单独的度量(例如,df_free, value=5000
和df_used, value=1000
)。当设置为join
时,多值插件将存储为单个多值度量(例如,df, free=5000,used=1000
)。
功能特性
- 添加
influx_inspect inmem2tsi
命令以将现有的内存中(基于 TSM)分片转换为 TSI(时间序列索引)格式。 - 添加对 Prometheus 远程读取和写入 API 的支持。
- 支持用于度量、序列、标签键、标签键值和字段键的估计和精确的 SHOW CARDINALITY 命令。
- 改进
SHOW TAG KEYS
性能。 - 添加
EXPLAIN ANALYZE
命令,该命令生成SELECT
语句的详细执行计划。 - 改进的压缩调度。
- 支持 Ctrl+C 以取消 Influx CLI 中正在运行的查询。
- 允许在配置文件中使用人类可读的字节大小。
- 尊重 X-Request-Id/Request-Id 标头。
- 将 ‘X-Influxdb-Build’ 添加到 http 响应标头,以便用户可以识别响应是来自 OSS 服务还是 Enterprise 服务。
- 来自查询或写入的所有错误都通过 X-InfluxDB-Error 标头提供,并且 5xx 错误消息将写入服务器日志。
- 添加
parse-multivalue-plugin
以允许用户选择 collectd 服务应如何处理多值插件。 - 在下游错误时使客户端错误更具帮助性。
- 允许在调查服务器问题时禁用 panic 恢复。
- 支持
/query
端点的 http 管道化。 - 减少读取数据时的分配。
- Mutex 配置文件现在可用。
- 批量处理监视器服务的写入。
- 对度量、序列和标签键元查询使用系统游标。
- explain plan 的初始实现。
- 在迭代器成本中包含扫描的缓存值数量。
- 提高
Include
和Exclude
函数的性能。 - 报告查询的任务状态。
- 减少分配,通过简化循环来提高
readEntries
性能 - 将导入器日志语句分离到 stdout 和 stderr。
- 提高 TSI 索引中 Bloom Filter 的性能。
- 为查询响应添加消息包格式。
- 在没有限制的情况下,隐式决定 fill 查询的较低限制。
- 流式传输
inmem2tsi
转换。 - 排序 & 验证 TSI 键值插入。
- 处理 nil MeasurementIterator。
- 为客户端导入器添加长行支持。
- 更新至 go 1.9.2。
- InfluxDB 现在使用 MIT 许可版本的 BurntSushi/toml。
Bug 修复
- 将默认统计信息间隔从 10 秒更改为 1 秒。
- illumos 构建在
syscall.Mmap
上损坏。 - 防止在不存在的数据库上设置权限。
influxd backup
工具现在将日志记录分离到stdout
和stderr
。感谢 @xginn8!- 删除度量使用了几个 GB 的磁盘空间。
- 修复 CQ 开始和结束时间以使用 Unix 时间戳。
influx
CLI 区分大小写。- 修复了具有时区的连续查询的时间边界。
- 以 CSV 格式返回查询解析错误。
- 修复时区边界发生偏移时的时区偏移。
- 使用
SELECT
语句中的时区解析时间字面量。 - 减少检查序列基数时的 CPU 使用率
- 修复快照为空时的备份。
- 游标泄漏,导致压缩后累积
.tsm.tmp
文件。 - 改进条件解析。
- 确保在出错时关闭输入。添加运行时 GC finalizer 作为关闭迭代器的附加保护。
- 修复系统迭代器上的合并错误。
- 强制子查询匹配父查询的排序。
- 修复访问
seriesByID
map 时的竞争条件。 - 修复调用
SeriesIDsAllOrByExpr
时的死锁。 - 修复
influx_inspect export
以使其跳过丢失的文件。 - 减少遍历表达式中 varrefs 所需的时间。
- 解决
panic: runtime error: invalid memory address or nil pointer dereference
。 - 删除序列导致写入失败/写入超时/高内存使用率。
- 修复缓存和 wal 读取器中增加的内存使用量。
- OSS 只读用户应该能够列出数据库上的度量。
- 确保在删除时,时间和基于标签的条件可以与 tsi1 索引一起使用。
- 防止在对子查询的结果进行数学运算时发生死锁。
- 修复 TSDB 中批量处理点时的一个小内存泄漏。
- 不要假设
which
存在于软件包安装后脚本中。 - 修复新软件包输出中缺少 man 页面。
- 修复服务文件中
INFLUXD_OPTS
的使用。 - 修复 WAL panic: runtime error: makeslice: cap out of range。
- 从 TSI 元函数复制返回的字节。
- 修复时间范围外删除的数据。
- 修复压缩期间错误丢弃的数据。
- 防止 Collectd、Graphite、openTSDB 和 UDP 关闭期间发生死锁。
- 在服务器退出后删除 pidfile。
- 为
InterruptCh
上的成功读取返回query.ErrQueryInterrupted
。 - 修复 Measurement 索引内部的竞争。
- 确保保留服务始终删除本地分片。
- 在读取配置文件时处理 utf16 文件。
- 修复
panic: runtime error: slice bounds out of range
。
1.3.7
发行说明
通过社区和 InfluxCloud 识别出的错误修复。构建工件现在与 v1.3.5 一致。
Bug 修复
- 不要假设
which
存在于软件包安装后脚本中。 - 修复服务文件中
INFLUXD_OPTS
的使用。 - 修复新软件包输出中缺少 man 页面。
- 为
useradd
添加 RPM 依赖项 shadow-utils。 - 修复使用
delete
时,时间范围外删除数据的问题 - 修复压缩期间错误丢弃的数据。
- 为
InterruptCh
上的成功读取返回query.ErrQueryInterrupted
。 - 从 TSI 元函数复制返回的字节。
v1.3.6
发行说明
通过社区和 InfluxCloud 识别出的错误修复。
Bug 修复
- 减少遍历表达式中 varrefs 所需的时间。
- 解决
panic: runtime error: invalid memory address or nil pointer dereference
。 - 修复分片数量庞大的集群中缓存和 WAL 读取器内存使用量增加的问题。
- 防止在对子查询的结果进行数学运算时发生死锁。
- 修复分片和存储引擎中存在的多个竞争条件。
- 修复缓存条目上的竞争条件。
发行说明
通过社区和 InfluxCloud 识别出的错误修复。
Bug 修复
- 修复访问
seriesByID
map 时的竞争条件。 - 修复调用
SeriesIDsAllOrByExpr
时的死锁。
v1.3.5
发行说明
通过社区和 InfluxCloud 识别出的错误修复。
Bug 修复
- 修复访问
seriesByID
map 时的竞争条件。 - 修复调用
SeriesIDsAllOrByExpr
时的死锁。
v1.3.4
发行说明
通过社区和 InfluxCloud 识别出的错误修复。
Bug 修复
- 修复了具有时区的连续查询的时间边界。
- 修复时区边界发生偏移时的时区偏移。
- 使用 select 语句中的时区解析时间字面量。
- 修复 drop measurement 未删除所有数据的问题。
- 修复快照为空时的备份。
- 消除游标泄漏,导致压缩后累积 .tsm.tmp 文件。
- 修复删除度量和写入时发生的死锁。
- 确保在出错时关闭输入。添加运行时 GC finalizer 作为关闭迭代器的附加保护。
- 修复大型压缩中止时泄漏 tmp 文件的问题。
v1.3.3
发行说明
通过社区和 InfluxCloud 识别出的错误修复。
Bug 修复
- 解决 NewReaderIterator 创建 nilFloatIterator 时,读取器未关闭导致的内存泄漏问题。
v1.3.2
发行说明
通过社区和 InfluxCloud 识别出的次要错误修复。
Bug 修复
- 中断 “进行中” 的 TSM 压缩。
- 防止删除序列时过度使用内存。
- 显着提高 SHOW TAG VALUES 的性能。
v1.3.1
发行说明
通过社区和 InfluxCloud 识别出的次要错误修复。
Bug 修复
- 确保在中止压缩时清理临时 TSM 文件。
- 解决导致 1.3.0 变得无响应的死锁问题。
- 修复 DELETE 后通过 INSERT 生成重复点的问题。
- 修复 CQ 开始和结束时间以使用 Unix 时间戳。
v1.3.0
发行说明
TSI
1.3.0 版本标志着新的 InfluxDB 时间序列索引 (TSI) 引擎的第一个正式版本发布。
TSI 引擎是 InfluxDB 的一项重大技术进步。它为 时间结构化合并树引擎的 高序列基数问题 提供了解决方案。借助 TSI,序列的数量应不受服务器硬件上内存的限制,并且现有序列的数量对数据库启动时间的影响可以忽略不计。有关更多信息,请参阅 Paul Dix 的博客文章 通往 10 亿时间序列之路:InfluxDB 高基数索引已准备好进行测试。
TSI 在 1.3 版本中默认禁用。要启用 TSI,请取消注释 index-version
设置 并将其设置为 tsi1
。index-version
设置位于配置文件的 [data]
部分中。接下来,重启您的 InfluxDB 实例。
[data]
dir = "/var/lib/influxdb/data"
index-version = "tsi1"
连续查询统计信息
启用后,每次完成连续查询时,都会将有关执行的许多详细信息写入内部监视数据库(默认为 _internal
)的 cq_query
度量中。感兴趣的标签和字段是
标签 / 字段 | 描述 |
---|---|
db | 数据库名称 |
cq | 连续查询的名称 |
durationNS | 查询执行时间,以纳秒为单位 |
startTime | 时间范围的下限 |
endTime | 时间范围的上限 |
pointsWrittenOK | 写入目标度量的点数 |
startTime
和endTime
是 UNIX 时间戳,以纳秒为单位。- 写入的点数也包含在 CQ 日志消息中。
移除
在此版本中,管理 UI 已被移除且不可用。[admin]
配置部分将被忽略。
配置更改
- 顶级配置
bind-address
现在默认为localhost:8088
。之前的默认值仅为:8088
,导致备份和恢复端口绑定到所有可用接口(即包括公共互联网上的接口)。
以下新的配置选项可用。
[http]
部分
- 添加了
max-body-size
,默认值为 25,000,000,但可以通过将其设置为 0 来禁用。指定客户端请求体的最大大小(以字节为单位)。当客户端发送的数据超过配置的最大大小时,将返回413 Request Entity Too Large
HTTP 响应。
[continuous_queries]
部分
- 添加了
query-stats-enabled
,默认值为false
。当设置为true
时,连续查询执行统计信息将写入默认监视器存储。
功能特性
- 添加 WAL 同步延迟
- 将分块请求处理添加回 Go 客户端 v2
- 允许非管理员用户执行 SHOW DATABASES
- 通过跨请求重用 gzip.Writers 来减少内存分配
- 将系统信息添加到 /debug/vars
- 向查询语言添加求模运算符。
- 导入期间失败的点现在会导致非零退出代码
- 通过 SHOW DIAGNOSTICS 公开一些配置设置
- 支持 InfluxQL 中的单行和多行注释
- 支持查询的时区偏移
- 向 InfluxQL 添加 “integral” 函数
- 向 InfluxQL 添加 “non_negative_difference” 函数
- 向查询语言添加按位 AND、OR 和 XOR 运算符
- 写入吞吐量/并发性改进
- 移除管理 UI
- 更新至 go1.8.1
- 添加最大并发压缩限制
- 添加 TSI 支持工具
- 使用 /debug/requests 跟踪 /write 和 /query 的 HTTP 客户端请求
- 写入和压缩稳定性
- 添加新的 profile 端点,用于在单个存档中收集所有调试 profile 和查询
- 添加纳秒持续时间字面量支持
- 使用增量聚合器优化 top() 和 bottom()
- 在写入结果时,维护由 top() 或 bottom() 选择的点的标签。
- 将 CQ 统计信息写入
_internal
数据库
Bug 修复
- 多个语句缺少 DefaultDatabase 方法
- 修复 config 的 HTTP 部分中的拼写错误 – shared-secret
- 历史记录文件应在保存到历史记录之前编辑密码
- 当 influx cli 输出中的标头相同时,禁止显示标头
- 在 cli 中添加分块/分块大小作为设置/选项
- 如果没有运行查询,则不增加连续查询统计信息
- 禁止在二元表达式中使用通配符
- 修复当存在多个序列且存在空值时的 fill(linear)
- 更新 liner 依赖项以处理 docker exec
- 默认情况下将备份和恢复端口绑定到 localhost
- Kill query 未终止查询
- KILL QUERY 应在查询的所有阶段都有效
- 简化管理员用户检查。
- 显着提高 DROP DATABASE 速度
- 当解析无效的持续时间字面量时返回错误
- 修复选择精确时间戳时的时间范围
- 修复在不带空格的情况下使用加法和减法时的查询解析器
- 修复了当选择器与数学运算结合使用时出现的回归问题
- 确保查询引擎中某些函数的输入是有序的
- 显著提升高基数数据库的关闭速度
- 修复了不稳定的集成测试
- 防止窗口计算期间发生上溢或下溢
- 为 admin、httpd、subscriber、udp 启用了 golint,感谢 @karlding
- 在与布尔值的二进制表达式中隐式地将 null 转换为 false
- 限制 fill(none) 和 fill(linear) 仅可用于聚合查询
- 限制 top() 和 bottom() 选择器不能与其他函数一起使用
- top() 和 bottom() 现在为每个点返回时间
- 移除 DELETE 查询的默认上限时间范围
- 修复某些聚合查询的 LIMIT 和 OFFSET
- 重构子查询代码并修复外部条件查询
- 修复压缩中止日志消息
- TSM 压缩在出错时不会移除 .tmp 文件
- 将 CSV 输出中空值设置为空字符串
- InfluxDB 中压缩耗尽磁盘资源
- 对 etc/config.sample.toml 文件进行小幅编辑
- 超出保留策略范围的点将被静默丢弃
- 修复 TSM 临时文件在磁盘上泄漏
- 修复大型字段键阻止快照压缩
- URL 查询参数凭据优先于身份验证标头
- TSI 分支具有重复的标签值
- 使用 HTTP API 时内存不足
- 在尝试 TSI 级别压缩之前检查文件计数。
- tsi 分支中的索引文件 fd 泄漏
- 修复 TSI 非连续压缩 panic
v1.2.4
Bug 修复
- 将部分写入错误添加
partial write:
前缀,以便在其他子系统中进行通用识别。
v1.2.3
Bug 修复
- 在将密码保存到历史记录文件之前进行编辑。
- 将缺少的 DefaultDatabase 方法添加到多个 InfluxQL 语句。
- 修复 models.Tags.Get 中的段错误。
- 简化管理员用户检查。
- 修复了当选择器与数学运算结合使用时出现的回归问题。
- 确保查询引擎中某些函数的输入是有序的。
- 修复了删除
time
字段键创建无法解析的点的问题。
v1.2.2
发行说明
配置更改
[http]
部分
max-row-limit
现在默认为0
。在 1.0 和 1.1 版本中,默认设置为10000
,但由于一个错误,1.0 和 1.1 版本中实际使用的值实际上是0
。在 1.2.0 到 1.2.1 版本中,我们修复了该错误,但此修复对 Grafana 和 Kapacitor 用户造成了破坏性更改;未将max-row-limit
设置为0
的用户由于10000
行限制而遇到数据截断/部分数据。在 1.2.2 版本中,我们将默认max-row-limit
设置更改为0
,以匹配 1.0 和 1.1 版本中的行为。
Bug 修复
- 将默认
max-row-limit
设置从10000
更改为0
,以防止 Grafana 或 Kapacitor 中缺少数据。
v1.2.1
发行说明
Bug 修复
- 将带有下划线的非保留测量名称视为正常测量。
- 减少子查询中的表达式以避免 panic。
- 在子查询中正确选择标签。
- 防止在原始查询的内部查询中使用聚合时发生 panic。
- 压缩后点丢失。
- Point.UnmarshalBinary() 边界检查。
- 接口转换:tsm1.Value 是 tsm1.IntegerValue,而不是 tsm1.FloatValue。
- 当使用正则表达式且其中一个测量为空时,正确映射类型。
- 当选择具有多个测量的字段(其中一个测量为空)时,正确映射类型。
- 在元查询的重写语句中包含 IsRawQuery。
- 修复 WALEntry.Encode 和 Values.Deduplicate 中的竞争条件
- 修复配置为从目录读取类型 DB 时 collectd 中的 panic。
- 修复使用排序序列键的 ORDER BY time DESC。
- 修复当测量使用正则表达式时类型的映射。
- 修复子查询中使用的 LIMIT 和 OFFSET。
- 修复当使用发出不同时间的聚合时出现的不正确的数学运算。
- 修复使用括号表达式时的 EvalType。
- 修复存在子查询时的身份验证。
- 从子查询扩展查询维度。
- 用不同输出除以聚合函数不会发生 panic。
- 锚点在不区分大小写的正则表达式中无法按预期工作。
v1.2.0
发行说明
此版本引入了一个主要的新的查询功能,即子查询,并提供了多项性能改进,包括在较多内核上写入性能提高 50% 或更高。此版本增加了一些稳定性和内存相关的改进,以及一些与 CLI 相关的错误修复。如果从之前的版本升级,请在升级前阅读以下部分中的配置更改。
配置更改
如果从早期版本升级到 1.2.0
,则以下新的配置选项可用。
[[collectd]]
部分
security-level
默认为"none"
。此字段也接受"sign"
和"encrypt"
,并为 collectd 插件启用不同级别的传输安全性。auth-file
默认为"/etc/collectd/auth_file"
。指定在使用签名或加密模式时,用于验证客户端身份的身份验证文件所在的位置。
弃用
压力测试工具 influx_stress
将在后续版本中移除。我们建议使用 influx-stress
作为替代品。
功能特性
- 移除 GOMAXPROCS 的覆盖。
- 取消注释默认配置文件中的节标题。
- 显著提高写入性能。
- 修剪元存储中已删除分片的数据。
- 使用 Godeps 更新最新的依赖项。
- 引入用于标记带有分块的部分响应的语法。
- 如果存在,则在 HTTP 记录器中使用 X-Forwarded-For IP 地址。
- 添加通过 collectd 进行安全传输的支持。
- 切换日志记录以在所有地方使用结构化日志记录。
- [CLI 功能请求] USE 保留策略用于查询。
- 向 CLI 添加 clear 命令。
- 在 v2 客户端中使用
Parameters
映射在Query
结构中添加在查询中使用参数的能力。 - 允许通过 ENV 向数组配置添加项目。
- 支持查询语言中的子查询执行。
- SSL 连接错误的详细输出。
- 缓存快照性能改进
Bug 修复
- 修复 tsm1_cache memBytes 统计信息的正确性中潜在的竞争条件。
- 修复元客户端的 UpdateUser 和 DropContinuousQuery 方法中损坏的错误返回。
- 修复字符串引用并显著提高
influx_inspect export
的性能。 - CLI 正在缓存 db/rp 以用于插入语句。
- 修复使用自签名 SSL 证书时的 CLI 导入错误。
- 修复跨平台备份/恢复。
- 确保在删除数据库时删除与数据库关联的所有用户权限。
- 从整数的百分位数调用返回时间。
- 在使用通配符和
sample()
时扩展字符串和布尔字段。 - 修复 init 脚本中的 chuid 参数顺序。
- 拒绝无效的订阅 URL。
- CLI 应该使用空格进行对齐,而不是制表符。
- 0.12.2 InfluxDB CLI 客户端 PRECISION 返回 “Unknown precision…”。
- 修复缺少标签值时解析键 panic。
- 租用策略不应允许
INF
或0
作为分片持续时间。 - 在解码点值时返回 Error 而不是 panic。
- 修复修剪分片组时切片越界 panic。
- 删除数据库将删除 /influxdb/data 目录。
- 确保可以禁用 Subscriber 服务。
- 修复存储引擎中的竞争条件。
- InfluxDB 应该在类型不匹配错误时执行部分写入。
v1.1.5
Bug 修复
- 在将密码保存到历史记录文件之前进行编辑。
- 将缺少的 DefaultDatabase 方法添加到多个 InfluxQL 语句。
v1.1.4
Bug 修复
- 从 1.2.0 Backport:减少 GC 分配。
v1.1.3
Bug 修复
- 移除 Tags.shouldCopy,在系列创建时替换为 forceCopy。
v1.1.2
Bug 修复
- 修复通过 HTTP 写入新系列时的内存泄漏。
- 修复系列标签迭代段错误。
- 修复标签解引用 panic。
v1.1.1
功能特性
- 将 Go 版本更新到 1.7.4。
Bug 修复
- 修复带有尾部斜线的字符串字段。
- 将空字符串引用为标识符。
- 修复错误消息中不正确的标签值。
安全性
Go 1.7.4 已发布,以解决两个安全问题。此版本包含这些安全修复程序。
v1.1.0
发行说明
此版本使用 GoLang 1.7.3 构建,并提供了许多性能优化、稳定性更改和一些新的查询功能。如果从之前的版本升级,请在升级前阅读以下部分中的配置更改。
弃用
管理界面已弃用,将在后续版本中移除。启用管理 UI 的配置设置现在默认禁用,但如果需要,可以启用。我们建议使用 Chronograf 或 Grafana 作为替代品。
配置更改
从早期版本升级到 1.1.0
之前,可能需要更改以下配置更改。
[admin]
部分
enabled
现在默认为 false。如果您当前正在使用管理界面,则需要将此值更改为true
以重新启用它。管理界面当前已弃用,将在后续版本中移除。
[data]
部分
- 添加了
max-values-per-tag
,默认值为 100,000,但可以通过将其设置为0
来禁用。标签超出此限制的现有测量将继续加载,但会导致标签基数增加的写入将被丢弃,并且将向调用方返回partial write
错误。此限制可用于防止将高基数标签值写入测量。 cache-max-memory-size
已从524288000
增加到1048576000
。此设置是分片缓存可以使用的最大 RAM 量(以字节为单位),超过此限制后,它将拒绝写入并返回错误。将此值设置为0
将禁用该限制。cache-snapshot-write-cold-duration
已从1h
减少到10m
。此设置确定当分片对于写入处于冷状态时,值在分片缓存中保留多长时间。compact-full-write-cold-duration
已从24h
减少到4h
。较短的持续时间允许冷分片更快地压缩到最佳状态。
功能特性
查询语言已扩展了一些新功能
- 支持在 select 子句中对字段键使用正则表达式。
- 新的
linear
填充选项。 - 新的
cumulative_sum
函数。 - 为
SHOW
命令支持ON
。
所有更改
- 过滤掉分片中没有该系列数据的系列。
- 将 host = /^server-a$/ 形式的正则表达式重写为 host = ‘server-a’,以利用 tsdb 索引。
- 通过缓存 tsm 文件统计信息来提高压缩计划性能。
- 按时间对齐二进制数学表达式流。
- 减少计算测量的 TagSet 时的 map 分配。
- 使输入插件服务打开/关闭幂等。
- 通过并发关闭分片来加快关闭速度。
- 向查询语言添加 sample 函数。
- 向查询语言添加
fill(linear)
。 - 实现 cumulative_sum() 函数。
- 更新配置中的默认值以获得最新的最佳实践。
- UDP 客户端:拆分大型点。
- 添加活动压缩、压缩错误的统计信息。
- 为我们打包的其他工具提供更多手册页,并完全压缩手册页。
- 添加 max-values-per-tag 以限制高标签基数数据。
- 将 jwt-go 依赖项更新到版本 3。
- 支持通过 unix 域套接字启用 HTTP 服务。
- 向查询执行器添加其他统计信息。
- 功能请求:
influx inspect -export
应该转储 WAL 文件。 - 为响应写入器实现 text/csv 内容编码。
- 支持用于运行异步查询的工具。
- 为 SHOW 命令支持 ON 并使用默认数据库。
- 正确地从 CLI 的非交互式流中读取输入。
- 支持
INFLUX_USERNAME
和INFLUX_PASSWORD
以在 CLI 中设置用户名/密码。 - 优化在没有 group by interval 时 first/last 的性能。
- 使正则表达式在 SELECT 子句中的字段和维度键上起作用。
- 更改原始查询的默认时间边界。
- 支持混合持续时间单位。
Bug 修复
- 避免在达到
max-row-limit
时发生死锁。 - 修复当多个聚合与稀疏数据一起使用时的不正确分组。
- 修复 SHOW QUERIES 的输出持续时间单位。
- 在链接到文档时截断版本字符串。
- influx_inspect:export 不会转义字段键。
- 修复点会被写入错误分片的问题。
- 修复保留策略不一致性。
- 移除为 stddev 调用意外添加的字符串支持。
- 移除 /data/process_continuous_queries 端点。
- 启用 https 订阅以使用自定义 CA 证书。
- 减少查询计划分配。
- 分片统计信息包含 WAL 路径标签,因此磁盘字节更有意义。
- 在删除数据库期间,由于未读取的 show series 迭代器而发生 Panic。
- 对于列格式化响应,从 CLI 使用一致的列输出。
- 在管理 UI 中正确使用密码类型字段。
- ALTER RETENTION POLICY 中的重复解析错误。
- 修复删除分片时数据库锁定。
- 修复 mmap 解引用。
- 修复 /debug/vars 统计信息的 base64 编码问题。
- 删除测量会导致超出缓存最大内存错误。
- 仅在从测量中删除最后一个系列时,才将测量数量递减一次。
- 当指定保留策略或数据库时,Delete 语句返回错误。
- 修复美元符号,使其正确处理保留关键字。
- 超出最大保留策略持续时间会给出不正确的错误消息。
- 删除用作标签或字段键的时间。
v1.0.2
Bug 修复
- 修复 RLE 整数解码产生负数的问题。
- 在计划压缩时避免 stat 系统调用。
- 高写入负载下的订阅数据丢失。
- 使用 ALTER RETENTION POLICY 时,不要自动重置分片持续时间。
- 确保在保留策略已更改时创建正确的分片组。
v1.0.1
Bug 修复
- 防止用户手动使用系统查询,因为不正确的使用会导致 panic。
- 确保分片测量中提供 fieldsCreated 统计信息。
- 在 /debug/vars 中报告 cmdline 和 memstats。
- 修复示例配置文件中的错别字。
- 为延迟时间文字实现时间数学运算。
- 修复删除分片时数据库锁定。
- 在合并系列中,跳过 derivative 调用中同时发生的点。
- 将无效的 JSON 响应读取为 Influx 客户端中的错误。
v1.0.0
发行说明
InfluxDB 的初始版本发布。
重大变更
- 添加了
max-series-per-database
,默认值为 1M,但可以通过将其设置为0
来禁用。系列超出此限制的现有数据库将继续加载,但会导致创建新系列的写入将失败。 - 配置选项
[cluster]
已替换为[coordinator]
。 - 已删除对配置选项
[collectd]
和[opentsdb]
的支持;请改用[[collectd]]
和[[opentsdb]]
。 [data]
部分中的配置选项data-logging-enabled
已重命名为trace-logging-enabled
,默认为false
。- 在此版本中删除了关键字
IF
、EXISTS
和NOT
。这意味着您不再需要为DROP DATABASE
指定IF NOT EXISTS
或为CREATE DATABASE
指定IF EXISTS
。如果指定了这些关键字,则会返回查询解析错误。 - 分片
writePointsFail
统计信息已重命名为writePointsErr
,以与其他统计信息保持一致。
在此版本中,InfluxDB 的 systemd 配置文件将使用系统配置的默认日志记录,并且默认情况下不再将文件写入 /var/log/influxdb
。在大多数系统中,日志将定向到 systemd 日志,并且可以通过 journalctl -u influxdb.service
访问。有关配置 journald 的信息,请查阅 systemd journald 文档。
功能特性
- 添加 mode 函数。
- 支持查询引擎的负时间戳。
- 写入路径统计信息。
- 添加 MaxSeriesPerDatabase 配置设置。
- 从 influxql 语言中移除 IF EXISTS/IF NOT EXISTS。
- 更新 go 包库依赖项。
- 向 influx_inspect 工具添加 tsm 文件导出。
- 为命令创建手册页。
- 当身份验证成功但授权失败时,返回 403 Forbidden。
- 添加了 favicon。
- 为多个存储桶而不是每个存储桶运行一个连续查询。
- 当启用连续查询日志记录时,记录 CQ 执行时间。
- 从 Windows 记事本保存的配置文件中修剪 BOM。
- 更新帮助并从配置文件中删除未使用的配置选项。
- 向执行选项添加 NodeID。
- 使 httpd 记录器更接近 Common (& combined) Log Format。
- 允许任何变体的 help 选项触发帮助。
- 减少查询解析期间的分配。
- 优化时间戳游程长度解码。
- 添加用于监控磁盘分片大小的统计信息。
- 添加基于 HTTP(s) 的订阅。
- 向监控添加新的 HTTP 统计信息。
- 加快删除数据库的速度。
- 添加 Holt-Winter 预测函数。
- 添加对 JWT 令牌身份验证的支持。
- 添加创建分片快照的功能。
- 并行化迭代器。
- 教导 http 服务如何强制连接限制。
- 支持用于选择特定类型的 cast 语法。
- 重构 monitor 服务以避免 expvar 并以截断的时间间隔写入 monitor 统计信息。
- 动态更新管理 UI 中的文档链接。
- 支持聚合函数中的通配符。
- 支持为 graphite 服务指定保留策略。
- 向 tsm 引擎添加额外的跟踪日志记录。
- 向 TSM 引擎添加统计信息和诊断信息。
- 支持在 SHOW TAG VALUES 中为键使用正则表达式选择。
- 修改默认保留策略名称并使其可配置。
- 更新 SHOW FIELD KEYS 以返回带有字段键的字段类型。
- 支持解析器中的绑定参数。
- 向 httpd 配置添加 https-private-key 选项。
- 支持为 collectd typesdb 文件加载文件夹。
Bug 修复
- 优化将标签值与空字符串进行比较的查询。
- 允许行协议输入中的空行。
- Runtime: goroutine 堆栈超出 1000000000 字节限制。
- 修复使用所有选项时的 alter retention policy。
- 并发系列限制。
- 确保在 influx_inspect export 中关闭 gzip 写入器。
- 修复处理默认值时的 CREATE DATABASE。
- 修复 UDP pointsRx 被递增两次的问题。
- Tombstone 内存改进。
- 将自动生成的 RP 名称硬编码为 autogen。
- 确保在管理连续查询时 ID 不会冲突。
- 连续完全压缩。
- 从 walkShards 中移除限制器。
- 复制 influx_stress 中的标签以避免在 map 上发生并发写入 panic。
- 不要运行没有时间跨度的连续查询。
- 通过 group by offset 移动 CQ 间隔。
- 修复解析空键 panic。
- 在 CLI 中更改主机时更新连接设置。
- 在输出新配置时始终使用演示配置。
- 对 init 脚本进行小的改进。移除 sysvinit-utils 作为包依赖项。
- 修复大型 TSM 文件的压缩计划。
- 同一时间戳的重复数据。
- 修复 panic:在合并缓存时截断切片。
- 修复测量的正则表达式二进制编码。
- 修复与数学运算符一起使用时的 fill(previous)。
- 在 influx_inspect 中将 dumptsmdev 重命名为 dumptsm。
- 移除 tsm1 索引写入器中的双重锁。
- 从 TSDB 包中移除 FieldCodec。
- 允许非管理员为 influx CLI 调用 “use”。
- 在创建 nil 条件游标时设置条件游标而不是 aux 迭代器。
- 更新
stress/v2
以使用集群、ssl 和用户名/密码身份验证。代码清理。 - 将最大纳秒时间修改为少一纳秒。
- 包含 sysvinit-tools 作为 rpm 依赖项。
- 向所有 graphite 日志输出添加端口,以帮助调试多个端点。
- 修复 panic:runtime error: index out of range。
- 移除 systemd 输出重定向。
- 删除测量后数据库无响应。
- 解决删除测量时出现的内存不足错误。
- 修复点验证解析器以正确识别和排序标签。
- 防止并发身份验证缓存写入中的 panic。
- 在每个请求上设置 X-Influxdb-Version 标头(即使是 404 请求)。
- 防止在没有值时发生 panic。
- 使用覆盖的点时,时间排序中断。
- 带有看起来像日期的字符串的查询最终得到日期类型,而不是字符串类型。
- 并发 map 读写 panic。
- 丢弃早于保留策略时间窗口的写入。
- 修复 SELECT 语句所需的权限。
- 过滤掉与分片数据库/保留策略不匹配的源。
- 如果分片组结束时间超过 MaxNanoTime,则截断分片组结束时间。
- 批量 SELECT INTO / CQ 写入。
- 修复压缩计划重新压缩大型 TSM 文件的问题。
- 确保客户端在插入点时发送正确的精度。
- 接受带有尾随空格的点。
- 修复 SHOW FIELD KEYS 中的 panic。
- 当使用聚合时禁用限制优化。
- 修复 panic:interface conversion: tsm1.Value is *tsm1.StringValue, not *tsm1.FloatValue。
- 在写入数据库后立即删除数据库时出现数据竞争。
- 在验证查询身份之前确保管理员存在。
- 在 panic 时将查询执行器的堆栈跟踪打印到日志。
- 修复读取 tombstone:EOF。
- 不再忽略配置中的 query-log-enabled。
- 确保请求 gzip 编码主体的客户端不会收到空主体。
- 优化分片加载。
- 覆盖点后查询速度减慢数百倍。
- SHOW TAG VALUES 接受 WHERE 子句中的 != 和 !~。
- 移除旧的集群代码。
- 确保 SHOW 查询中考虑未来的点。
- 修复完全压缩与级别压缩冲突的问题。
- 在大系列上覆盖点可能会在压缩期间导致内存峰值。
- 修复 parseFill 以在尝试解析表达式之前检查 fill 标识符。
- 超出最大索引条目。
- 解决启动时间缓慢的问题。
- 修复 tsm1 引擎中的测量字段 panic。
- 针对刚刚压缩的文件进行的查询需要指向新文件。
- 在创建 CQ 之前检查保留策略是否存在。
此页对您有帮助吗?
感谢您的反馈!