更新日志¶
1.4.20(2022/11/03)¶
本次发布属于迭代发布,主要有如下更新:
新加功能¶
- 完善 Prometheus 生态兼容,增加 ServiceMonitor 和 PodMonitor 采集识别(#1130)
- 增加基于 async-profiler 的 Java Profiling 接入(#1240)
问题修复¶
- 修复 Prom 采集器日志错乱问题(#1226)
- 修复 DDTrace trace-id 转换溢出问题,该问题可能导致 trace/span 丢失(#1235)
- 修复 ElasticSearch 采集器采集中断问题(#1236)
- 修复 Git 模式下采集器仍然会多开的问题(#1241)
功能优化¶
- eBPF 采集增加 interval 参数,便于调节采集的数据量(#1106)
- 所有远程采集器默认以其采集地址作为
host
字段的取值,避免远程采集时可能误解host
字段的取值(#1120) - DDTrace 采集到的 APM 数据,能自动提取 error 相关的字段,便于中心做更好的 APM 错误追踪(#1161)
- MySQL 采集器增加额外字段(
Com_commit/Com_rollback
)采集(#1206) - 优化 GPU 采集器以适配更多显卡厂商(#1232)
- 其它完善(#1204/#1231/#1233)
1.4.19(2022/10/20)¶
本次发布属于迭代发布,主要有如下更新:
新加功能¶
- DataKit 采集器配置和 Pipeline 支持通过 etcd/Consul 等配置中心来同步(#1090)
问题修复¶
- 修复 Windows Event 采集不到数据的问题(#1200)
- 修复 prom 调试器不工作的问题(#1192)
功能优化¶
-
Prometheus Remote Write 优化
- 采集支持通过正则过滤 tag(#1197)
- 支持通过正则过滤指标集名称(#1196)
-
Pipeline 优化(#1188)
-
进程采集器增加打开的文件列表详情字段(#1173)
- 完善外部接入类数据(T/R/L)的磁盘缓存和队列处理(#971)
- Monitor 上增加用量超支提示:在 monitor 底部,如果当前空间用量超支,会有红色文字
Beyond Usage
提示(#1025) - 优化日志采集 position 功能,在容器环境下会将该文件外挂到宿主机,避免 DataKit 重启后丢失原有 position 记录(#1203)
- 优化稀疏日志场景下采集延迟问题(#1202)
兼容调整¶
由于更换了日志采集的 position 存储(存储位置和存储格式都换了),更新本版本后,原有 position 将失效。新升级本版本后,升级间隙产生的日志将不被采集,请慎重。
1.4.18(2022/10/13)¶
本次发布属于 Hotfix 发布,主要有如下更新:
- 修复 Docker 日志 16k 截断问题(#1185)
- 修复自动多行情况下日志被吞噬、导致容器重启后无日志采集的问题(#1162)
- 优化 eBPF DNS 数据采集,自动追加 Kubernetes 相关的 tag,同时预聚合部分数据,减少采集的数据量(#1186)
- 支持从 Kafka 中订阅基于 SkyWalking 的日志数据(#1155)
- 优化主机对象采集字段(#1171)
- 其它一些细节优化(#1159/#1177/#1160)
1.4.17(2022/10/8)¶
本次发布属于迭代发布,主要有如下更新。
新功能¶
- 新增 promtail 采集器(#644)
- 新增 NVIDIA GPU 指标采集器(#1005)
- 支持发现(需手动开启) Kubernetes 集群中带有 Prometheus Service 的服务,并对之实施 Prometheus 指标采集(#1123)
- 支持从 Kafka 中订阅基于 SkyWalking 的指标、日志、Trace 类数据,并将其分别以对应的数据类型上传到观测云(#1127)
问题修复¶
- 修复 logging socket 采集器奔溃问题(#1129)
- 修复 Redis 采集问题(#1134)
- 修复 MySQL 采集器采集 PolarDB 时因报错中断采集的问题(#1147)
- 修复 git 模式下,部分默认开启的采集器不工作的问题(#1154)
- 修复 Kafka 指标集缺失问题(#1170)
- 修复拨测采集器数据上传错误问题(#1175)
- 修复 statsd 采集器日志问题(#1164)
优化¶
- 替换部分可能导致漏洞的三方库(#1100)
-
DataKit API 返回中新增特殊的 HTTP header 避免 CORB 问题(#1136)
-
网络拨测
- 针对 TCP/HTTP 增加 IP 字段(#1108)
- 调整部分字段的单位(#1113)
-
调整远程 Pipeline 调试 API(#1128)
- 增加采集器单例运行控制(#1109)
- IO 模块中,日志类数据(除指标外均为日志类数据)上报均改成阻塞模式(#1121)
- 优化安装/升级过程中的终端提示(#1145)
- 其它文档以及性能优化(#1152/#1149/#1148)
Breaking Changes¶
- Redis 采集器中,原来 latency 时序数据改为日志数据(#1144)
- 移除环境变量
ENV_K8S_CLUSTER_NAME
,建议用全局 tag 方式来设置 Kubernetes 集群名称(#1152)
1.4.16(2022/09/15)¶
本次发布属于迭代发布,主要有如下更新。
新功能¶
- 增加自动云同步功能,不再需要手动指定云厂商(#1074)
- 支持将 k8s label 作为 tag 同步到 pod 的指标和日志中(#1101)
- 支持将 k8s 中各类 yaml 信息采集到对应的对象数据上(#1102)
- Trace 采集支持自动提取一些关键 meta 信息(#1092)
- 支持安装过程中指定安装源地址,以简化离线安装流程(#1065)
- Pipeline 新增功能:
- 新增 for 循环/字典/数组支持(#1037/#1093)
- 新增算数表达式支持(#798)
- Pipeline 出错信息将在采集的数据上展示(#784/#1091)
- 如果时间字段切割出错,支持自动修正时间字段(
time
),以避免控制台页面上时间无法展示(#1091) - 新增 len() 函数
问题修复¶
- 修复 OOM 后 DataKit 服务不会自动启动的问题(#691)
- 修复 prom 采集器过滤指标问题(#1084)
- 修复 MySQL 采集器的指标单位、文档等问题(#1122)
- 修复 MongoDB 采集器问题(#1096/#1098)
- 修复 Trace 数据中采集了一些无效字段问题(#1083)
1.4.15(2022/09/13)¶
本次发布属于 Hotfix 发布,大幅度提高日志类数据的采集和发送效率。
1.4.14(2022/09/09)¶
本次发布属于 Hotfix 发布,主要有如下更新:
- 修正磁盘采集器指标采集,自动忽略一些非物理磁盘;主机对象上的磁盘也做了对应的处理(#1106)
- 修正磁盘采集器在 Windows 上采集不到指标的问题(#1114)
- 修复 Git 管理配置的情况下,部分资源泄露导致的数据重复采集问题(#1107)
- 修复 SQLServer 采集器 复杂密码导致无法连接的问题(#1119)
- 修复 DQL API 请求丢失 applicaiton/json Content-Type 问题(#1119)
- 调整 Pipeline 有关的文档,将其移到「自定义开发」目录下:
1.4.13(2022/09/01)¶
采集器功能调整¶
- 优化 IO 模块的数据处理,提升数据吞吐效率(#1078)
- 在各类 Trace 上加上的磁盘缓存功能(#1023)
- DataKit 自身指标集增加 goroutine 使用有关的指标集(
datakit_goroutine
)(#1039) - MySQL 采集器增加
mysql_dbm_activity
指标集(#1047) - 增加 netstat 采集器(#1051)
- TDengine 增加日志采集(#1057/#1076)
- 优化磁盘采集器中的 fstype 过滤,默认只采集常见的文件系统(#1063/#1066)
- 日志采集器中,针对每条日志,增加字段
message_length
表示当前日志长度,便于通过长度来过滤日志(#1086) - CRD 支持通过 DaemonSet 来定位 Pod 范围(#1064)
- eBPF 移除 go-bindata 依赖(#1062)
- 容器采集器中默认会打开 k8s 和容器相关的指标,这在一定程度上会消耗额外的时间线(#1095)
- DataKit 自带 ddtrace-java SDK 已更新最新版本(
/data/dd-java-agent-0.107.1.jar )
Bug 修复¶
- 修复 DataKit 自身 CPU 使用率计算错误(#983)
- 修复 SkyWalking 中间件识别问题(#1027)
- 修复 Oracle 采集器退出问题(#1042/#1048)
- 修复 Sink DataWay 失效问题(#1056)
- 修复 HTTP /v1/write/:category 接口 JSON 写入问题(#1059)
Breaking changes¶
- GitLab 以及 Jenkins 采集器中,CI/CD 数据有关的时间字段做了调整,以统一前端页面的数据展示效果(#1089)
文档调整¶
- 几乎每个章节都增加了跳转标签,便于其它文档永久性引用
- pythond 文档已转移到开发者目录
- 采集器文档从原来「集成」移到 「DataKit」文档库(#1060)
- DataKit 文档目录结构调整,减少了目录层级
- 几乎每个采集器都增加了 k8s 配置入口
- 调整文档头部显示,除了操作系统标识外,对支持选举的采集器,增加选举标识
1.4.12(2022/08/26)¶
本次发布属于 Hotfix 发布,主要有如下更新:
- 调整 Windows 下 CPU 采集的取值,以跟 Windows 进程监视器上的数值保持一致(#1002)
- 调整发送 dataway 时的加锁行为,该行为可能导致数据发送变慢的问题
- 日志采集:
- io 行为默认改成阻塞形式
- 默认开启多行识别
- 调整文件 rotate 尾部采集策略,避免可能出现的巨大数据包(#1072)
- 调整环境变量相关的文档说明(#1071)
- 日志的行协议中增加
log_read_time
字段,用来记录采集时的 Unix 时间戳(#1077)
Breaking Changes¶
- 移除 io 模块的全局阻塞(
blocking_mode
)以及按数据分类(blocking_categories
)来设置阻塞的功能(默认都不开启)。这个选项如果被人为打开,在新版本中,将不再生效。
1.4.11(2022/08/17)¶
新功能¶
- Pipeline 中新增 reftable 功能(#967)
- DataKit 9529 HTTP 支持绑定到 domain socket(#925)
- RUM sourcemap 增加 Android R8 支持(#1040)
- CRD 增加日志配置支持(#1000)
优化¶
- 优化容器采集器文档
- 新增 常见 Tag 文档(#839)
- 优化选举的配置和一些相关的命名(#1026)
- 选举类采集器在 DataKit 开启选举的情况下,仍然支持在特定的采集器上关闭选举功能(#927)
- 支持指定数据类型的 io block 配置(#1021)
- DDTrace 采集器的采样增加 meta 信息识别(#927)
- DataKit 自身指标集增加 9529 HTTP 请求相关指标(#944)
- 优化 Zipkin 采集的内存使用(#1013)
- DDTrace 采集器在开启磁盘缓存后,默认变成阻塞式 IO feed(#1038)
- eBPF 增加进程名(
process_name
)字段(#1045) - DCA 新版本发布
- 日志类 HTTP 数据写入(logstreaming/Jaeger/OpenTelemetry/Zipkin)均增加队列支持(#971)
- 日志采集增加自动多行支持(#1024)
Bug 修复¶
- 修复 MySQL 采集器 连接泄露问题(#1041)
- 修复 Pipeline Json 取值问题(#1036)
- 修复 macOS 上 ulimit 设置无效问题(#1032)
- 修复 sinker-Dataway 在 Kubernetes 中无效问题(#1031)
- 修复 HTTP 数据写入类接口数据校验问题(#1046)
- 修复 eBPF 采集器因内核变更后结构体偏移计算失败问题(#1049)
- 修复 DDTrace close-resource 问题(#1035)
1.4.10(2022/08/05)¶
本次发布属于迭代发布,主要有如下更新:
- 部分数据类型发送失败后,支持缓存到磁盘,延后再发送(#945)
- 支持通过不同的 dataway 地址,将满足条件的数据发送到不同的工作空间(#896)
-
Sourcemap 增加 Android 和 iOS 支持(#886)
-
容器采集器相关更新:
- 修复 Kubernetes 中 Node 主机操作系统信息采集错误(#950)
- Kubernetes 中 Prom 采集不再自动追加 pod 相关信息,避免时间线暴增(#965)
- Pod 对象中追加对应 yaml 信息(#969)
-
Pipeline 相关更新:
-
DDTrace 相关更新:
- 修复潜在的 goroutine 泄露问题(#1008)
- 支持配置磁盘缓存来缓解内存占用问题(#1014)
-
其它 Bug 修复:
- 优化行协议构造(#1016)
- 日志采集中,移除定期清理尾部数据功能,以缓解可能导致的日志截断问题(#1012)
Breaking Changes¶
由于 RUM 中新增了 Sourcemap 支持,有了更多的配置选项,故 RUM 采集器不再默认开启,需手动开启。
1.4.9(2022/07/26)¶
本次发布属于 Hotfix 发布,主要有如下更新:
- eBPF httpflow 增加 Linux 4.5 及以上内核版本支持(#985)
- 修复 external 类采集器选举模式下的问题(#976/#946)
- 修复容器采集器导致的奔溃问题(#956/#979/#980)
- 修复 Redis slowlog 采集问题(#986)
1.4.8(2022/07/21)¶
本次发布属于迭代发布,主要有如下更新:
-
prom 采集器的内置超时改为 3 秒(#958)
-
日志相关问题修复:
- 添加日志采集的
log_read_offset
字段(#905) - 修复日志文件在 rotate 后没有正确读取尾部遗留内容的问题(#936)
- 添加日志采集的
-
容器采集相关问题修复:
- 修复对环境变量
NODE_NAME
的不兼容问题(#957) - k8s 自动发现的 prom 采集器改为串行式的分散采集,每个 k8s node 只采集自己机器上的 prom 指标(#811/#957)
- 添加日志 source 和多行的的映射配置(#937)
- 修复容器日志替换 source 后还使用之前的 multiline 和 pipeline 的 bug(#934/#923)
- 修正容器日志,设置文件活跃时长是 12 小时(#930)
- 优化 docker 容器日志的 image 字段(#929)
- 优化 k8s pod 对象的 host 字段(#924)
- 修复容器指标和对象采集没有添加 host tag 的问题(#962)
- 修复对环境变量
-
eBPF 相关:
- 修复 uprobe event name 命名冲突问题
- 增加更多环境变量配置,便于 k8s 环境的部署
-
优化 APM 数据接收接口的数据处理,缓解卡死客户端以及内存占用问题(#902)
-
SQLServer 采集器修复:
- 恢复 TLS1.0 支持(#909)
- 支持通过 instance 采集过滤,以减少时间线消耗(#931)
-
Pipeline 函数
adjust_timezone()
有所调整(#917) - IO 模块优化,提高整体数据处理能力,保持内存消耗的相对可控(#912)
- Monitor 更新:
- 修复繁忙时 Monitor 可能导致的长时间卡顿(#933)
- 优化 Monitor 展示,增加 IO 模块的信息展示,便于用于调整 IO 模块参数
- 修复 Redis 奔溃问题(#935)
- 去掉部分繁杂的冗余日志(#939)
- 修复选举类采集器在非选举模式下不追加主机 tag 的问题(#968)
1.4.7(2022/07/11)¶
本次发布属于 Hotfix 发布,主要修复如下问题
-
选举有关
- 修复
election_namespace
设置错误的问题(#915) enable_election_namespace
这个 tag 的设置默认关闭,需手动开启- datakit.conf 中
namespace
字段将被弃用(仍然可用),改名为election_namespace
- 修复
-
修复采集器堵塞问题(#916)
- DataKit 移除调用中心的心跳接口
- DataKit 移除调用中心的 Dataway 列表接口
-
容器采集器支持通过额外的配置(
ENV_INPUT_CONTAINER_LOGGING_EXTRA_SOURCE_MAP
)来修改 sidecar 容器的日志来源(source
) 字段(#903) - 修复黑名单在 Monitor 上的展示问题(#904)
1.4.6(2022/07/07)¶
- 调整全局 tag 的行为,避免选举类采集的 tag 分裂(#870)
- SQLServer 采集器增加选举支持(#882)
- 行协议过滤器支持所有数据类型(#855)
- 9529 HTTP 服务增加超时机制(#900)
- MySQL
- dbm 指标集名字调整(#898)
service
字段冲突问题(#895)
- 容器对象增加字段
container_runtime_name
以区分不同层次的容器名(#891) - Redis 调整 slowlog 采集,将其数据改为日志存储(#885)
- 优化 TDEngine 采集(#877)
- 完善 Containerd 日志采集,支持默认格式的日志自动解析(#869)
- Pipeline 增加 Profiling 类数据支持(#866)
- 容器/Pod 日志采集支持在 Label/Annotation 上额外追加 tag(#861)
- 修复 Jenkins CI 数据采集的时间精度问题(#860)
- 修复 Tracing resource-type 值不统一的问题(#856)
- eBPF 增加 HTTPS 支持(#782)
- 修复日志采集器可能的奔溃问题(#893)
- 修复 prom 采集器泄露问题(#880)
- 支持通过环境变量配置 io 磁盘缓存(#906)
- 增加 Kubernetes CRD 支持(#726)
- 其它 bug 修复(#901/#899)
1.4.5(2022/06/29)¶
本次发布属于 Hotfix 发布,主要修复日志采集器因同名文件快速删除并新建而导致采集中断问题(#883)
如果大家有计划任务在定期打包日志,可能会触发这个 Bug,建议升级。
1.4.4(2022/06/27)¶
本次发布属于 Hotfix 发布,主要更新如下内容:
- 修复日志采集因 pos 处理不当导的不采集问题,该问题自 1.4.2 引入,建议升级 (#873)
- 修复 TDEngine 可能导致的 crash 问题
- 优化 eBPF 数据发送流程,避免积攒过多消耗太多内存导致 OOM(#871)
- 修复采集器文档错误
1.4.3(2022/06/22)¶
本次发布属于迭代发布,主要更新如下内容:
- gitrepo 支持无密码模式(#845)
- prom 采集器
- 支持日志模式采集(#844)
- 支持配置 HTTP 请求头(#832)
- 支持超 16KB 长度的容器日志采集(#836)
- 支持 TDEngine 采集器(810)
- Pipeline
- 支持 XML 解析(#804)
- 远程调试支持多类数据类型(#833)
- 支持 Pipeline 通过
use()
函数调用外部 Pipeline 脚本(#824)
- 新增 IP 库(MaxMindIP)支持(#799)
- 新增 DDTrace Profiling 集成(#656)
- Containerd 日志采集支持通过 image 和 K8s Annotation 配置过滤规则(#849)
- 文档库整体切换到 MkDocs(#745)
- 其它杂项(#822)
Bug 修复¶
- 修复 socket 采集器奔溃问题(#858)
- 修复部分采集器配置中空 tags 配置导致的奔溃问题(#852)
- 修复 ipdb 更新命令问题(#854)
- Kubernetes Pod 日志和对象上增加
pod_ip
字段(848) - DDTrace 采集器恢复识别 trace SDK 上的采样设定(#834)
- 修复 DaemonSet 模式下,外部采集器(eBPF/Oracle)上的
host
字段可能跟 DataKit 自身不一致的问题(#843) - 修复 stdout 多行日志采集问题(#859)
1.4.2(2022/06/16)¶
本次发布属于迭代发布,主要更新如下内容:
- 日志采集支持记录采集位置,避免因为 DataKit 重启等情况导致的数据漏采(#812)
- 调整 Pipeline 在处理不同类数据时的设定(#806)
- 支持接收 SkyWalking 指标数据(#780)
- 优化日志黑名单调试功能:
- 在 Monitor 中会展示被过滤掉的点数(#827)
- 在 datakit/data 目录下会增加一个 .pull 文件,用来记录拉取到的过滤器
- Monitor 中增加 DataKit 打开文件数显示(#828)
- DataKit 编译器升级到 Golang 1.18.3(#674)
Bug 修复¶
- 修复
ENV_K8S_NODE_NAME
未全局生效的问题(#840) - 修复日志采集器中文件描述符泄露问题,强烈推荐升级(#838)
- 修复 Pipeline
group_in
问题(#826) - 修复 ElasticSearch 采集器配置的
http_timeout
解析问题(#821) - 修复 DCA API 问题(#747)
- 修复
dev_null
DataWay 设置无效问题(#842)
1.4.1(2022/06/07)¶
本次发布属于迭代发布,主要更新如下内容:
- 修复 toml 配置文件兼容性问题(#195)
- 增加 TCP/UDP 端口检测采集器(#743)
- DataKit 跟 DataWay 之间增加 DNS 检测,支持 DataWay DNS 动态切换(#758)
- eBPF L4/L7 流量数据增加 k8s deployment name 字段(#793)
- 优化 OpenTelemetry 指标数据(#794)
- ElasticSearch 增加 AWS OpenSearch 支持(#797)
- 行协议限制中,字符串长度限制放宽到 32MB(#801)
- prom 采集器增加额外配置,支持忽略指定的 tag=value 的匹配,以减少不必要的时序时间线(#808)
- Sink 增加 Jaeger 支持(#813)
- Kubernetes 相关的指标采集,默认全部关闭,以避免时间线暴增问题(#807)
- DataKit Monitor增加动态发现(比如 prom)的采集器列表刷新(#711)
Bug 修复¶
- 修复默认 Pipeline 加载问题(#796)
- 修复 Pipeline 中关于日志 status 的处理(#800)
- 修复 Filebeat 奔溃问题(#805)
- 修复 logstreaming 导致的脏数据问题(#802)
1.4.0(2022/05/26)¶
本次发布属于迭代发布, 次版本号进入 1.4 序列。主要更新如下内容:
- Pipeline 做了很大调整(#761)
- 增加 Kubernetes Pod 对象 CPU/内存指标(#770)
- Helm 增加更多 Kubernetes 版本安装适配(#783)
- 优化 OpenTelemetry,HTTP 协议增加 JSON 支持(#781)
- DataKit 在自动纠错行协议时,对纠错行为增加了日志记录,便于调试数据问题(#777)
- 移除时序类数据中的所有字符串指标(#773)
- 在 DaemonSet 安装中,如果配置了选举的命名空间,对参与选举的采集器,其数据上均会新增特定的 tag(
election_namespace
)(#743) - CI 可观测,增加 Jenkins 支持(#729)
Bug 修复¶
- 修复 monitor 中 DataWay 统计错误(#785)
- 修复日志采集器相关 bug(#783)
- 有一定概率,日志采集会导致脏数据串流的情况
- 在文件日志采集的场景下(磁盘文件/容器日志/logfwd),修复被采集日志因为 truncate/rename/remove 等因素导致的采集不稳定问题(丢失数据)
- 其它 Bug 修复(#790)
1.2.20(2022/05/22)¶
本次发布属于 hotfix 发布,主要修复如下问题:
-
日志采集功能优化(#775)
- 去掉 32KB 限制(保留 32MB 最大限制)(#776)
- 修复可能丢失头部日志的问题
- 对于新创建的日志,默认从头开始采集(主要是容器类日志,磁盘文件类日志目前无法判定是否是新创建的日志)
- 优化 Docker 日志处理,不再依赖 Docker 日志 API
-
修复 Pipeline 中的 decode 函数问题(#769)
- OpenTelemetry gRPC 方式支持 gzip(#774)
- 修复 filebeat 采集器不能设置 service 的问题(#767)
Breaking changes¶
对于 Docker 类容器日志的采集,需要将宿主机(Node)的 /varl/lib 路径挂载到 DataKit 里面(因为 Docker 日志默认落在宿主机的 /var/lib/ 下面),在 datakit.yaml 中,volumeMounts
和 volumes
中新增如下配置:
volumeMounts:
- mountPath: /var/lib
name: lib
# 省略其它部分...
volumes:
- hostPath:
path: /var/lib
name: lib
1.2.19(2022/05/12)¶
本次发布属于迭代发布,主要更新如下内容:
- eBPF 增加 arm64 支持(#662)
- 行协议构造支持自动纠错(#710)
- DataKit 主配置增加示例配置(#715)
- Prometheus Remote Write 支持 tag 重命名(#731)
- 修复 DCA 客户端获取工作空间不全的问题(#747)
- 合并社区版 DataKit 已有的功能,主要包含 Sinker 功能以及 filebeat 采集器(#754)
- 调整容器日志采集,DataKit 直接支持 containerd 下容器 stdout/stderr 日志采集(#756)
- 修复 ElasticSearch 采集器超时问题(#762)
- 修复安装程序检查过于严格的问题(#763)
- 调整 DaemonSet 模式下主机名获取策略(#648)
- Trace 采集器支持通过服务名(
service
)通配来过滤资源(resource
)(#759) - 其它一些细节问题修复
1.2.18(2022/05/06)¶
本次发布属于 hotfix 发布,主要修复如下问题:
- 进程采集器的过滤功能仅作用于指标采集,对象采集不受影响(#740)
- 缓解 DataKit 发送 DataWay 超时问题(#741)
- Gitlab 采集器 稍作调整(#742)
- 修复日志采集截断的问题(#749)
- 修复各种 trace 采集器 reload 后部分配置不生效的问题(#750)
1.2.17(2022/04/27)¶
本次发布属于迭代发布,主要涉及如下几个方面:
- 容器采集器增加更多指标(
kube_
开头)采集(#668) - DDTrace 和 OpenTelemetry 采集器支持通过 HTTP Status Code(
omit_err_status
)来过滤部分错误的 trace - 修复几个 Trace 采集器(DDtrace/OpenTelemetry/Zipkin/SkyWalking/Jaeger)在 git 模式下配置 reload 不生效的问题(#725)
- 修复 Gitlab 采集器不能 tag 导致的奔溃问题(#730)
- 修复 Kubernetes 下 eBPF 采集器对 Pod 标签(tag)不更新的问题(#736)
- prom 采集器 支持 Tag 重命名(#719)
- 完善部分文档描述
1.2.16(2022/04/24)¶
本次发布属于 hotfix 修复,主要涉及如下几个方面(#728):
- 修复安装程序可能的报错导致无法继续安装/升级,目前选择容忍部分情况的服务操作错误
- 修复 Windows 安装脚本的拼写错误,该错误导致 32 位安装程序下载失败
- 调整 Monitor 关于选举情况的展示
- 开启选举的情况下,修复 MongoDB 死循环导致无法采集的问题
1.2.15(2022/04/21)¶
本次发布属于迭代发布,含大量问题修复:
- Pipeline 模块修复 Grok 中动态多行 pattern 问题(#720)
- 移除掉一些不必要的 DataKit 事件日志上报(#704)
- 修复升级程序可能导致的升级失败问题(#699)
- DaemonSet 增加开启 pprof 环境变量配置(#697)
- DaemonSet 中所有默认开启采集器各个配置均支持通过环境变量配置(#693)
- Tracing 采集器初步支持 Pipeline 数据处理(#675)
- 拨测采集器增加失败任务退出机制(#54)
- 优化 Helm 安装(#695)
- 日志新增
unknown
等级(status),对于未指定等级的日志均为unknown
(#685) - 容器采集器大量修复
- 修复 cluster 字段命名问题(#542)
- 对象
kubernetes_clusters
这个指标集改名为kubernetes_cluster_roles
- 原
kubernetes.cluster
这个 count 改名为kubernetes.cluster_role
- 修复 namespace 字段命名问题(#724)
- 容器日志采集中,如果 Pod Annotation 不指定日志
source
,那么 DataKit 将按照此优先级来推导日志来源(#708/#723) - 对象上报不再受 32KB 字长限制(因 Annotation 内容超 32KB)(#709)
- 所有 Kubernetes 对象均删除
annotation
这一 field - 修复 prom 采集器不会随 Pod 退出而停止的问题(#716)
- 其它问题修复(#721)
1.2.14(2022/04/12)¶
本次发布属于 hotfix 发布,同时包含部分小的修改和调整:
- 修复日志采集器的 monitor 展示问题以及部分出错日志等级调整(#706)
- 修复拨测采集器内存泄露问题(#702)
- 修复主机进程采集器奔溃问题(#700)
- 日志采集器采集选项
ignore_dead_log = '10m'
默认开启(#698) - 优化 Git 管理的配置同步逻辑(#696)
- eBPF 修复 netflow 中错误的 ip 协议字段(#694)
- 丰富 Gitlab 采集器字段
1.2.13(2022/04/08)¶
本次发布属于迭代发布,更新内容如下:
- 增加宿主机运行时的内存限制(#641)
- 安装阶段即支持内存限制配置
- CPU 采集器增加 load5s 指标(#606)
- 完善 datakit.yaml 示例(#678)
- 支持主机安装时通过 cgroup 限制内存使用(#641)
- 完善日志黑名单功能,新增 contain/notcontain 判定规则(#665)
- 支持在 datakit.conf 中配置日志/对象/Tracing/时序指标这几类黑名单
- 注意:升级该版本,要求 DataWay 升级到 1.2.1+
- 进一步完善 containerd 下的容器采集(#402)
- 调整 monitor 布局,增加黑名单过滤情况展示(#634)
- DaemonSet 安装增加 Helm 支持(#653)
- 新增 DaemonSet 安装最佳实践(#673)
- 完善 Gitlab 采集器(#661)
- 增加 ulimit 配置项用于配置文件打开数限制(#667)
- Pipeline 脱敏函数有更新,新增 SQL 脱敏函数(#670)
- 进程对象和时序指标新增
cpu_usage_top
字段,以跟top
命令的结果对应(#621) - eBPF 增加 HTTP 协议采集(#563)
- 主机安装时,eBPF 采集器默认不再会安装(减少二进制分发体积),如需安装需用特定的安装指令(#605)
- DaemonSet 安装不受影响
- 其它 Bug 修复(#688/#681/#679/#680)
1.2.12(2022/03/24)¶
本次发布属于迭代发布,更新内容如下:
- 增加 DataKit 命令行补全功能(#76)
- 允许 DataKit 升级到非稳定版(#639)
- 调整 Remote Pipeline 的在 DataKit 本地的存储,避免不同文件系统差异导致的文件名大小写问题(#649)
- (Alpha)初步支持 Kubernetes/Containerd 架构的数据采集(#402)
- 修复 Redis 采集器的不合理报错(#671)
- OpenTelemetry 采集器字段微调(#672)
- 修复 DataKit 自身采集器 CPU 计算错误(#664)
- 修复 RUM 采集器因 IPDB 缺失导致的 IP 关联字段缺失问题(#652)
- Pipeline 支持调试数据上传至 OSS(#650)
- DataKit HTTP API 上均会带上 DataKit 版本号信息
- 网络拨测增加 TCP/UDP/ICMP/Websocket 几种协议支持(#519)
- 修复主机对象采集器字段超长问题(#669)
- Pipeline
- 新增 decode() 函数(#559),这样可以避免在日志采集器中去配置编码,可以在 Pipeline 中实现编码转换
- 修复 Pipeline 导入 pattern 文件可能失败的问题(#666)
- add_pattern() 增加作用域管理
1.2.11(2022/03/17)¶
本次发布属于 hotfix 发布,同时包含部分小的修改和调整:
- 修复 Tracing 采集器资源过滤(
close_resource
)的算法问题,将过滤机制下放到 Entry Span 级别,而非之前的 Root Span - 修复日志采集器文件句柄泄露问题(#658),同时新增配置(
ignore_dead_log
),以忽略不再更新(删除)的文件 - 新增DataKit 自身指标文档
- DaemonSet 安装时
- 支持安装 IPDB(#659)
- 支持设定 HTTP 限流(ENV_REQUEST_RATE_LIMIT)(#654)
1.2.10(2022/03/11)¶
修复 Tracing 相关采集器可能的奔溃问题
1.2.9(2022/03/10)¶
本次发布属于迭代发布,更新内容如下:
- DataKit 9529 HTTP 服务添加 API 限流措施(#637)
- 统一各种 Tracing 数据的采样率设置(#631)
- 发布 DataKit 日志采集综述
- 支持 OpenTelemetry 数据接入(#609)
- 支持禁用 Pod 内部部分镜像的日志(#586)
- 进程对象采集增加监听端口列表(#562)
- eBPF 采集器支持 Kubernetes 字段关联(#511)
Breaking Changes¶
-
本次对 Tracing 数据采集做了较大的调整,涉及几个方面的不兼容:
- DDtrace 原有 conf 中配置的
ignore_resources
字段需改成close_resource
,且字段类型由原来的数组([...]
)形式改成了字典数组(map[string][...]
)形式(可参照 conf.sample 来配置) - DDTrace 原数据中采集的 tag
type
字段改成source_type
- DDtrace 原有 conf 中配置的
1.2.8(2022/03/04)¶
本次发布属于 hotfix 修复,内容如下:
- DaemonSet 模式部署时, datakit.yaml 添加污点容忍度配置(#635)
- 修复 Remote Pipeline 拉取更新时的 bug(#630)
- 修复 DataKit IO 模块卡死导致的内存泄露(#646)
- 在 Pipeline 中允许修改
service
字段(#645) - 修复
pod_namespace
拼写错误 - 修复 logfwd 的一些问题(#640)
- 修复日志采集器在容器环境下采集时多行粘滞问题(#633)
1.2.7(2022/02/22)¶
本次发布属于迭代发布,内容如下:
- Pipeline
- Grok 中增加动态多行 pattern,便于处理动态多行切割(#615)
- 支持中心下发 Pipeline(#524),这样一来,Pipeline 将有三种存放路径
- DataKit HTTP API 增加 Pipeline 调试接口 /v1/pipeline/debug
- 为减少默认安装包体积,默认安装不再带 IP 地理信息库。RUM 等采集器中,可额外安装对应的 IP 库
- 如需安装时就带上 IP 地理信息库,可通过额外支持的命令行环境变量来实现
- 容器采集器增加 logfwd 日志接入(#600)
- 为进一步规范数据上传,行协议增加了更多严格的限制(#592)
- 日志采集器中,放开日志长度限制(
maximum_length
)(#623) - 优化日志采集过程中的 Monitor 显示(#587)
- 优化安装程序的命令行参数检查(#573)
- 重新调整 DataKit 命令行参数,大部分主要的命令已经支持。另外,老的命令行参数在一定时间内依然生效(#499)
- 可通过
datakit help
查看新的命令行参数风格
- 可通过
- 重新实现 DataKit Monitor
其它 Bug 修复¶
- 修复 Windows 下安装脚本问题(#617)
- 调整 datakit.yaml 中的 ConfigMap 设定(#603)
- 修复 Git 模式下 Reload 导致部分 HTTP 服务异常的问题(#596)
- 修复安装包 isp 文件丢失问题(#584/#585/#560)
- 修复 Pod annotation 中日志多行匹配不生效的问题(#620)
- 修复 TCP/UDP 日志采集器 service tag 不生效的问题(#610)
- 修复 Oracle 采集器采集不到数据的问题(#625)
Breaking Changes¶
- 老版本的 DataKit 如果开启了 RUM 功能,升级上来后,需重新安装 IP 库,老版本的 IP 库将无法使用。
1.2.6(2022/01/20)¶
本次发布属于迭代发布,内容如下:
- 增强 DataKit API 安全访问控制,老版本的 DataKit 如果部署了 RUM 功能,建议升级(#578)
- 增加更多 DataKit 内部事件日志上报(#527)
-
查看 DataKit 运行状态不再会超时(#555)
-
容器采集器一些细节问题修复
- 修复在 Kubernetes 环境主机部署时崩溃问题(#576)
- 提升 Annotation 采集配置优先级(#553)
- 容器日志支持多行处理(#552)
- Kubernetes Node 对象增加 role 字段(#549)
- 通过 Annotation 标注的 Prom 采集器 会自动增加相关属性(pod_name/node_name/namespace)(#522/#443)
- 其它 Bug 修复
-
Pipeline 问题修复
- 修复日志处理中可能导致的时间乱序问题(#547)
- 支持 if/else 语句复杂逻辑关系判断支持
-
修复日志采集器 Windows 中路径问题(#423)
- 完善 DataKit 服务管理,优化交互提示(#535)
- 优化现有 DataKit 文档导出的指标单位(#531)
- 提升工程质量(#515/#528)
1.2.5(2022/01/19)¶
- 修复Log Stream 采集器 Pipeline 配置问题(#569)
- 修复容器采集器日志错乱的问题(#571)
- 修复 Pipeline 模块更新逻辑的 bug(#572)
1.2.4(2022/01/12)¶
- 修复日志 API 接口指标丢失问题(#551)
- 修复 eBPF 网络流量统计部分丢失问题(#556)
- 修复采集器配置文件中
$
字符通配问题(#550) - Pipeline if 语句支持空值比较,便于 Grok 切割判断(#538)
1.2.3(2022/01/10)¶
- 修复 datakit.yaml 格式错误问题(#544)
- 修复 MySQL 采集器选举问题(#543)
- 修复因 Pipeline 不配置导致日志不采集的问题(#546)
1.2.2(2022/01/07)¶
- 容器采集器更新:
- 修复日志处理效率问题(#540)
- 优化配置文件黑白名单配置(#536)
- Pipeline 模块增加
datakit -M
指标暴露(#541) - ClickHouse 采集器 config-sample 问题修复(#539)
- Kafka 指标采集优化(#534)
1.2.1(2022/01/05)¶
- 修复采集器 Pipeline 使用问题(#529)
- 完善容器采集器数据问题(#532/#530)
- 修复 short-image 采集问题
- 完善 k8s 环境下 Deployment/Replica-Set 关联
1.2.0(2021/12/30)¶
采集器更新¶
- 重构 Kubernetes 云原生采集器,将其整合进容器采集器。原有 Kubernetes 采集器不再生效(#492)
- Redis 采集器
- 支持配置 Redis 用户名(#260)
- 增加 Latency 以及 Cluster 指标集(#396)
- Kafka 采集器增强,支持 topic/broker/consumer/connnetion 等维度的指标(#397)
- 新增 ClickHouse 以及 Flink 采集器(#458/#459)
- 主机对象采集器
- 支持从
ENV_CLOUD_PROVIDER
读取云同步配置(#501) - 优化磁盘采集,默认不会再采集无效磁盘(比如总大小为 0 的一些磁盘)(#505)
- 支持从
- 日志采集器 支持接收 TCP/UDP 日志流(#503)
- Prom 采集器 支持多 URL 采集(#506)
- 新增 eBPF 采集器,它集成了 L4-network/DNS/Bash 等 eBPF 数据采集(507)
- ElasticSearch 采集器 增加 Open Distro 分支的 ElasticSearch 支持(#510)
Bug 修复¶
- 修复 Statsd/Rabbitmq 指标问题(#497)
- 修复 Windows Event 采集数据问题(#521)
其它¶
- Pipeline
- Git 模式
- 在 DaemonSet 模式下的 Git,支持识别
ENV_DEFAULT_ENABLED_INPUTS
并将其生效,非 DaemonSet 模式下,会自动开启 datakit.conf 中默认开启的采集器(#501) - 调整 Git 模式下文件夹存放策略(#509)
- 在 DaemonSet 模式下的 Git,支持识别
- 推行新的版本号机制(#484)
- 新的版本号形式为 1.2.3,此处
1
为 major 版本号,2
为 minor 版本号,3
为 patch 版本号 - 以 minor 版本号的奇偶性来判定是稳定版(偶数)还是非稳定版(奇数)
- 同一个 minor 版本号上,会有多个不同的 patch 版本号,主要用于问题修复以及功能调整
- 新功能预计会发布在非稳定版上,待新功能稳定后,会发布新的稳定版本。如 1.3.x 新功能稳定后,会发布 1.4.0 稳定版,以合并 1.3.x 上的新功能
- 非稳定版不支持直接升级,比如,不能升级到 1.3.x 这样的版本,只能直接安装非稳定版
- 新的版本号形式为 1.2.3,此处
Breaking Changes¶
老版本的 DataKit 通过 datakit --version
已经无法推送新升级命令,直接使用如下命令:
- Linux/Mac:
- Windows
$env:DK_UPGRADE="1"; Set-ExecutionPolicy Bypass -scope Process -Force; Import-Module bitstransfer; start-bitstransfer -source https://static.guance.com/datakit/install.ps1 -destination .install.ps1; powershell .install.ps1;
1.1.9-rc7.1(2021/12/22)¶
- 修复 MySQL 采集器因局部采集失败导致的数据问题。
1.1.9-rc7(2021/12/16)¶
-
Pipeline 总体进行了较大的重构(#339):
- 添加
if/elif/else
语法 - 暂时移除
expr()/json_all()
函数 - 优化时区处理,增加
adjust_timezone()
函数 - 各个 Pipeline 函数做了整体测试加强
- 添加
-
DataKit DaemonSet:
- Git 配置 DaemonSet ENV 注入(#470)
- 默认开启采集器移除容器采集器,以避免一些重复的采集问题(#473)
-
其它:
- DataKit 支持自身事件上报(以日志形式)(#463)
- ElasticSearch 采集器指标集下增加
indices_lifecycle_error_count
指标(注意: 采集该指标,需在 ES 增加ilm
角色) - DataKit 安装完成后自动增加 cgroup 限制
- 部分跟中心对接的接口升级到了 v2 版本,故对接非 SAAS 节点的 DataKit,如果升级到当前版本,其对应的 DataWay 以及 Kodo 也需要升级,否则部分接口会报告 404 错误
Breaking Changes¶
处理 json 数据时,如果最顶层是数组,需要使用下标方式进行选择,例如 JSON
经过 Pipeline 处理完之后,如果取第一个元素的 abc
资源,之前版本做法是:
当前版本需改为:
1.1.9-rc6.1(2021/12/10)¶
- 修复 ElasticSearch 以及 Kafka 采集报错问题(#486)
1.1.9-rc6(2021/11/30)¶
- 针对 Pipeline 做了一点紧急修复:
- 移除
json_all()
函数,这个函数对于异常的 json 有严重的数据问题,故选择禁用之(#457) - 修正
default_time()
函数时区设置问题(#434)
- 移除
- 解决 prom 采集器在 Kubernetes 环境下 HTTPS 访问问题(#447)
- DataKit DaemonSet 安装的 yaml 文件 公网可直接下载
1.1.9-rc5.1(2021/11/26)¶
- 修复 ddtrace 采集器因脏数据挂掉的问题
1.1.9-rc5(2021/11/23)¶
- 增加 pythond(alpha) ,便于用 Python3 编写自定义采集器(#367)
- SkyWalking V3 已支持到 8.5.0/8.6.0/8.7.0 三个版本(#385)
- DataKit 初步支持磁盘数据缓存(alpha)(#420)
- DataKit 支持选举状态上报(#427)
- DataKit 支持 scheck 状态上报(#428)
- 调整 DataKit 使用入门文档,新的分类更便于找到具体文档
1.1.9-rc4.3(2021/11/19)¶
- 修复容器日志采集器因 pipeline 配置失当无法启动的问题
1.1.9-rc4.2(2021/11/18)¶
- 紧急修复(#446)
- 修复 Kubernetes 模式下 stdout 日志输出 level 异常
- 修复选举模式下,未选举上的 MySQL 采集器死循环问题
- DaemonSet 文档补全
1.1.9-rc4.1(2021/11/16)¶
- 修复 Kubernetes Pod 采集 namespace 命名空间问题(#439)
1.1.9-rc4(2021/11/09)¶
- 支持通过 Git 来管理 各种采集器配置(
datakit.conf
除外)以及 Pipeline(#366) - 支持全离线安装(#421)
- 增强数据调试功能,采集到的数据支持写入本地文件,同时发送到中心(#415)
- K8s 环境中,默认开启的采集器支持通过环境变量注入 tags,详见各个默认开启的采集器文档(#408)
- DataKit 支持一键上传日志(#405)
- 修复安装脚本中 root 用户设定的 bug(#430)
- 增强 Kubernetes 采集器:
- 云同步增加华为云与微软云支持(#265)
1.1.9-rc3(2021/10/26)¶
- 优化 Redis 采集器 DB 配置方式(#395)
- 修复 Kubernetes 采集器 tag 取值为空的问题(#409)
- 安装过程修复 Mac M1 芯片支持(#407)
- eBPF-network 修复连接数统计错误问题(#387)
- 日志采集新增日志数据获取方式,支持 Fluentd/Logstash 等数据接入(#394/#392/#391)
- ElasticSearch 采集器增加更多指标采集(#386)
- APM 增加 Jaeger 数据接入(#383)
- Prometheus Remote Write采集器支持数据切割调试
- 优化 Nginx 代理功能
- DQL 查询结果支持 CSV 文件导出
1.1.9-rc2(2021/10/14)¶
- 新增采集器支持 Prometheus Remote Write 将数据同步给 DataKit(#381)
- 新增Kubernetes Event 数据采集(#296)
- 修复 Mac 因安全策略导致安装失败问题(#379)
- prom 采集器 调试工具支持从本地文件调试数据切割(#378)
- 修复 etcd 采集器数据问题(#377)
- DataKit Docker 镜像增加 arm64 架构支持(#365)
- 安装阶段新增环境变量
DK_HOSTNAME
支持(#334) - Apache 采集器 增加更多指标采集 (#329)
- DataKit API 新增接口
/v1/workspace
以获取工作空间信息(#324)- 支持 DataKit 通过命令行参数获取工作空间信息
1.1.9-rc1.1(2021/10/09)¶
- 修复 Kubernetes 选举问题(#389)
- 修复 MongoDB 配置兼容性问题
1.1.9-rc1(2021/09/28)¶
- 完善 Kubernetes 生态下 Prometheus 类指标采集(#368/#347)
- eBPF-network 优化
- 修复 DataKit/DataWay 之间连接数泄露问题(#290)
- 修复容器模式下 DataKit 各种子命令无法执行的问题(#375)
- 修复日志采集器因 Pipeline 错误丢失原始数据的问题(#376)
- 完善 DataKit 端 DCA 相关功能,支持在安装阶段开启 DCA 功能。
- 下线浏览器拨测功能
1.1.9-rc0(2021/09/23)¶
- 日志采集器增加特殊字符(如颜色字符)过滤功能(默认关闭)(#351)
- 完善容器日志采集,同步更多现有普通日志采集器功能(多行匹配/日志等级过滤/字符编码等)(#340)
- 主机对象采集器字段微调(#348)
- 新增如下几个采集器
- eBPF-network(alpha)(#148)
- Consul(#303)
- etcd(#304)
- CoreDNS(#305)
- 选举功能已经覆盖到如下采集器:(#288)
1.1.8-rc3(2021/09/10)¶
- ddtrace 增加 resource 过滤功能(#328)
- 新增 NSQ 采集器(#312)
- K8s daemonset 部署时,部分采集器支持通过环境变量来变更默认配置,以CPU 为例(#309)
- 初步支持 SkyWalkingV3(alpha)(#335)
Bugs¶
- RUM 采集器移除全文字段,减少网络开销(#349)
- 日志采集器增加对文件 truncate 情况的处理(#271)
- 日志字段切割错误字段兼容(#342)
- 修复离线下载时可能出现的 TLS 错误(#330)
改进¶
- 日志采集器一旦配置成功,则触发一条通知日志,表明对应文件的日志采集已经开启(#323)
1.1.8-rc2.4(2021/08/26)¶
- 修复安装程序开启云同步导致无法安装的问题
1.1.8-rc2.3(2021/08/26)¶
- 修复容器运行时无法启动的问题
1.1.8-rc2.2(2021/08/26)¶
- 修复 hostdir 配置文件不存在问题
1.1.8-rc2.1(2021/08/25)¶
- 修复 CPU 温度采集导致的无数据问题
- 修复 statsd 采集器退出崩溃问题(#321)
- 修复代理模式下自动提示的升级命令问题
1.1.8-rc2(2021/08/24)¶
- 支持同步 Kubernetes labels 到各种对象上(pod/service/...)(#279)
datakit
指标集增加数据丢弃指标(#286)- Kubernetes 集群自定义指标采集 优化(#283)
- ElasticSearch 采集器完善(#275)
- 新增主机目录采集器(#264)
- CPU 采集器支持单个 CPU 指标采集(#317)
- ddtrace 支持多路由配置(#310)
- ddtrace 支持自定义业务 tag 提取(#316)
- 主机对象上报的采集器错误,只上报最近 30s(含)以内的错误(#318)
- DCA 客户端发布
- 禁用 Windows 下部分命令行帮助(#319)
- 调整 DataKit 安装形式,离线安装方式做了调整(#300)
- 调整之后,依然兼容之前老的安装方式
Breaking Changes¶
- 从环境变量
ENV_HOSTNAME
获取主机名的功能已移除(1.1.7-rc8 支持),可通过主机名覆盖功能 来实现 - 移除命令选项
--reload
- 移除 DataKit API
/reload
,代之以/restart
- 由于调整了命令行选项,之前的查看 monitor 的命令,也需要 sudo 权限运行(因为要读取 datakit.conf 自动获取 DataKit 的配置)
1.1.8-rc1.1(2021/08/13)¶
- 修复
ENV_HTTP_LISTEN
无效问题,该问题导致容器部署(含 K8s DaemonSet 部署)时,HTTP 服务启动异常。
1.1.8-rc1(2021/08/10)¶
- 修复云同步开启时,无法上报主机对象的问题
- 修复 Mac 上新装 DataKit 无法启动的问题
- 修复 Mac/Linux 上非
root
用户操作服务「假成功」的问题 - 优化数据上传的性能
proxy
采集器支持全局代理功能,涉及内网环境的安装、更新、数据上传方式的调整- 日志采集器性能优化
- 文档完善
1.1.8-rc0(2021/08/03)¶
- 完善 Kubernetes 采集器,增加更多 Kubernetes 对象采集
- 完善主机名覆盖功能
- 优化 Pipeline 处理性能(约 15 倍左右,视不同 Pipeline 复杂度而定)
- 加强行协议数据检查
system
采集器,增加conntrack
以及filefd
两个指标集datakit.conf
增加 IO 调参入口,便于用户对 DataKit 网络出口流量做优化(参见下面的 Breaking Changes)- DataKit 支持服务卸载和恢复
- Windows 平台的服务支持通过命令行管理
- DataKit 支持动态获取最新 DataWay 地址,避免默认 DataWay 被 DDos 攻击
- DataKit 日志支持输出到终端(Windows 暂不不支持),便于 k8s 部署时日志查看、采集
- 调整 DataKit 主配置,各个不同配置模块化(详见下面的 Breaking Changes)
- 其它一些 bug 修复,完善现有的各种文档
Breaking Changes¶
以下改动,在升级过程中会自动调整,这里只是提及具体变更,便于大家理解
- 主配置修改:增加如下几个模块
[io]
feed_chan_size = 1024 # IO管道缓存大小
hight_frequency_feed_chan_size = 2048 # 高频IO管道缓存大小
max_cache_count = 1024 # 本地缓存最大值,原主配置中 io_cache_count [此数值与max_dynamic_cache_count同时小于等于零将无限使用内存]
cache_dump_threshold = 512 # 本地缓存推送后清理剩余缓存阈值 [此数值小于等于零将不清理缓存,如遇网络中断可导致内存大量占用]
max_dynamic_cache_count = 1024 # HTTP缓存最大值,[此数值与max_cache_count同时小于等于零将无限使用内存]
dynamic_cache_dump_threshold = 512 # HTTP缓存推送后清理剩余缓存阈值,[此数值小于等于零将不清理缓存,如遇网络中断可导致内存大量占用]
flush_interval = "10s" # 推送时间间隔
output_file = "" # 输出io数据到本地文件,原主配置中 output_file
[http_api]
listen = "localhost:9529" # 原 http_listen
disable_404page = false # 原 disable_404page
[logging]
log = "/var/log/datakit/log" # 原 log
gin_log = "/var/log/datakit/gin.log" # 原 gin.log
level = "info" # 原 log_level
rotate = 32 # 原 log_rotate
disable_color = false # 新增配置
1.1.7-rc9.1(2021/07/17)¶
发布说明¶
- 修复因文件句柄泄露,导致 Windows 平台上重启 DataKit 可能失败的问题
1.1.7-rc9(2021/07/15)¶
发布说明¶
- 安装阶段支持填写云服务商、命名空间以及网卡绑定
- 多命名空间的选举支持
- 新增 InfluxDB 采集器
- datakit DQL 增加历史命令存储
- 其它一些细节 bug 修复
1.1.7-rc8(2021/07/09)¶
发布说明¶
- 支持 MySQL 用户以及表级别的指标采集
- 调整 monitor 页面展示
- 采集器配置情况和采集情况分离显示
- 增加选举、自动更新状态显示
- 支持从
ENV_HOSTNAME
获取主机名,以应付原始主机名不可用的问题 - 支持 tag 级别的 Trace 过滤
- 容器采集器支持采集容器内进程对象
- 支持通过 cgroup 控制 DataKit CPU 占用(仅 Linux 支持)
- 新增 IIS 采集器
Bug 修复¶
- 修复云同步脏数据导致的上传问题
1.1.7-rc7(2021/07/01)¶
发布说明¶
- DataKit API 支持,且支持 JSON Body
-
命令行增加功能:
-
日志性能优化(对各个采集器自带的日志采集而言,目前仅针对 nginx/MySQL/Redis 做了适配,后续将适配其它各个自带日志收集的采集器)
- 应用性能指标采集,支持采样率设置
- K8s 集群 Prometheus 指标采集通用方案
Breaking Changes¶
- 在 datakit.conf 中配置的
global_tags
中,host
tag 将不生效,此举主要为了避免大家在配置 host 时造成一些误解(即配置了host
,但可能跟实际的主机名不同,造成一些数据误解)
1.1.7-rc6(2021/06/17)¶
发布说明¶
- 新增Windows 事件采集器
- 为便于用户部署 RUM 公网 DataKit,提供禁用 DataKit 404 页面的选项
- 容器采集器字段有了新的优化,主要涉及 pod 的 restart/ready/state 等字段
- Kubernetes 采集器 增加更多指标采集
- 支持在 DataKit 端对日志进行(黑名单)过滤
- 注意:如果 DataKit 上配置了多个 DataWay 地址,日志过滤功能将不生效。
Breaking Changes¶
对于没有语雀文档支持的采集器,在这次发布中,均已移除(各种云采集器,如阿里云监控数据、费用等采集)。如果有对这些采集器有依赖,不建议升级。
1.1.7-rc5(2021/06/16)¶
问题修复¶
修复 DataKit API /v1/query/raw
无法使用的问题。
1.1.7-rc4(2021/06/11)¶
问题修复¶
禁用 Docker 采集器,其功能完全由容器采集器 来实现。
原因:
- Docker 采集器和容器采集器并存的情况下(DataKit 默认安装、升级情况下,会自动启用容器采集器),会导致数据重复
- 现有 Studio 前端、模板视图等尚不支持最新的容器字段,可能导致用户升级上来之后,看不到容器数据。本版本的容器采集器会冗余一份原 Docker 采集器中采集上来的指标,使得 Studio 能正常工作。
注意:如果在老版本中,有针对 Docker 的额外配置,建议手动移植到 容器采集器 中来。它们之间的配置基本上是兼容的。
1.1.7-rc3(2021/06/10)¶
发布说明¶
- 新增 磁盘 S.M.A.R.T 采集器
- 新增 硬件 温度采集器
- 新增 Prometheus 采集器
问题修复¶
- 修正 Kubernetes 采集器,支持更多 K8s 对象统计指标收集
- 完善容器采集器,支持 image/container/pod 过滤
- 修正 Mongodb 采集器问题
- 修正 MySQL/Redis 采集器可能因为配置缺失导致崩溃的问题
- 修正离线安装问题
- 修正部分采集器日志设置问题
- 修正 SSH/Jenkins 等采集器的数据问题
1.1.7-rc2(2021/06/07)¶
发布说明¶
- 新增 Kubernetes 采集器
- DataKit 支持 DaemonSet 方式部署
- 新增 SQL Server 采集器
- 新增 PostgreSQL 采集器
- 新增 statsd 采集器,以支持采集从网络上发送过来的 statsd 数据
- JVM 采集器 优先采用 ddtrace + statsd 采集
- 新增容器采集器,增强对 k8s 节点(Node)采集,以替代原有 docker 采集器(原 docker 采集器仍可用)
- 拨测采集器支持 Headleass 模式
- Mongodb 采集器 支持采集 Mongodb 自身日志
- DataKit 新增 DQL HTTP API 接口
/v1/query/raw
- 完善部分采集器文档,增加中间件(如 MySQL/Redis/ES 等)日志采集相关文档
1.1.7-rc1(2021/05/26)¶
发布说明¶
- 修复 Redis/MySQL 采集器数据异常问题
- MySQL InnoDB 指标重构,具体细节参考 MySQL 文档
1.1.7-rc0(2021/05/20)¶
发布说明¶
新增采集器:
新功能相关:
- 网络拨测支持私有节点接入
- Linux 平台默认开启容器对象、日志采集
- CPU 采集器支持温度数据采集
- MySQL 慢日志支持阿里云 RDS 格式切割
其它各种 Bug 修复。
Breaking Changes¶
RUM 采集中数据类型做了调整,原有数据类型基本已经废弃,需更新对应 SDK。
1.1.6-rc7(2021/05/19)¶
发布说明¶
- 修复 Windows 平台安装、升级问题
1.1.6-rc6(2021/05/19)¶
发布说明¶
- 修复部分采集器(MySQL/Redis)数据处理过程中, 因缺少指标导致的数据问题
- 其它一些 bug 修复
1.1.6-rc5(2021/05/18)¶
发布说明¶
- 修复 HTTP API precision 解析问题,导致部分数据时间戳解析失败
1.1.6-rc4(2021/05/17)¶
发布说明¶
- 修复容器日志采集可能崩溃的问题
1.1.6-rc3(2021/05/13)¶
发布说明¶
本次发布,有如下更新:
-
DataKit 安装/升级后,安装目录变更为
- Linux/Mac:
/usr/local/datakit
,日志目录为/var/log/datakit
- Windows:
C:\Program Files\datakit
,日志目录就在安装目录下
- Linux/Mac:
-
支持
/v1/ping
接口 - 移除 RUM 采集器,RUM 接口默认已经支持
- 新增 monitor 页面:http://localhost:9529/monitor,以替代之前的 /stats 页面。reload 之后自动跳转到 monitor 页面
- 支持命令直接安装 sec-checker 以及更新 ip-db
1.1.6-rc2(2021/05/11)¶
Bug 修复¶
- 修复容器部署情况下无法启动的问题
1.1.6-rc1(2021/05/10)¶
发布说明¶
本次发布,对 DataKit 的一些细节做了调整:
- DataKit 上支持配置多个 DataWay
- 云关联通过对应 meta 接口来实现
- 调整 docker 日志采集的过滤方式
- DataKit 支持选举
- 修复拨测历史数据清理问题
- 大量文档发布到语雀
- DataKit 支持命令行集成 Telegraf
- DataKit 单实例运行检测
- DataKit 自动更新功能
1.1.6-rc0(2021/04/30)¶
发布说明¶
本次发布,对 DataKit 的一些细节做了调整:
- Linux/Mac 安装完后,能直接在任何目录执行
datakit
命令,无需切换到 DataKit 安装目录 - Pipeline 增加脱敏函数
cover()
- 优化命令行参数,更加便捷
- 主机对象采集,默认过滤虚拟设备(仅 Linux 支持)
- datakit 命令支持
--start/--stop/--restart/--reload
几个命令(需 root 权限),更加便于大家管理 DataKit 服务 - 安装/升级完成后,默认开启进程对象采集器(目前默认开启列表为
cpu/disk/diskio/mem/swap/system/hostobject/net/host_processes
) - 日志采集器
tailf
改名为logging
,原有的tailf
名称继续可用 - 支持接入 Security 数据
- 移除 Telegraf 安装集成。如果需要 Telegraf 功能,可查看 :9529/man 页面,有专门针对 Telegraf 安装使用的文档
- 增加 datakit-how-to 文档,便于大家初步入门(:9529/man 页面可看到)
- 其它一些采集器的指标采集调整
v1.1.5-rc2(2021/04/22)¶
Bug 修复¶
- 修复 Windows 上
--version
命令请求线上版本信息的地址错误 - 调整华为云监控数据采集配置,放出更多可配置信息,便于实时调整
- 调整 Nginx 错误日志(error.log)切割脚本,同时增加默认日志等级的归类
v1.1.5-rc1(2021/04/21)¶
Bug 修复¶
- 修复 tailf 采集器配置文件兼容性问题,该问题导致 tailf 采集器无法运行
v1.1.5-rc0(2021/04/20)¶
发布说明¶
本次发布,对采集器做了较大的调整。
Breaking Changes¶
涉及的采集器列表如下:
采集器 | 说明 |
---|---|
cpu |
DataKit 内置 CPU 采集器,移除 Telegraf CPU 采集器,配置文件保持兼容。另外,Mac 平台暂不支持 CPU 采集,后续会补上 |
disk |
DataKit 内置磁盘采集器 |
docker |
重新开发了 docker 采集器,同时支持容器对象、容器日志以及容器指标采集(额外增加对 K8s 容器采集) |
elasticsearch |
DataKit 内置 ES 采集器,同时移除 Telegraf 中的 ES 采集器。另外,可在该采集器中直接配置采集 ES 日志 |
jvm |
DataKit 内置 JVM 采集器 |
kafka |
DataKit 内置 Kafka 指标采集器,可在该采集器中直接采集 Kafka 日志 |
mem |
DataKit 内置内存采集器,移除 Telegraf 内存采集器,配置文件保持兼容 |
mysql |
DataKit 内置 MySQL 采集器,移除 Telegraf MySQL 采集器。可在该采集器中直接采集 MySQL 日志 |
net |
DataKit 内置网络采集器,移除 Telegraf 网络采集器。在 Linux 上,对于虚拟网卡设备,默认不再采集(需手动开启) |
nginx |
DataKit 内置 Nginx 采集器,移除 Telegraf Ngxin 采集器。可在该采集器中直接采集 Nginx 日志 |
oracle |
DataKit 内置 Oracle 采集器。可在该采集器中直接采集 Oracle 日志 |
rabbitmq |
DataKit 内置 RabbitMQ 采集器。可在该采集器中直接采集 RabbitMQ 日志 |
redis |
DataKit 内置 Redis 采集器。可在该采集器中直接采集 Redis 日志 |
swap |
DataKit 内置内存 swap 采集器 |
system |
DataKit 内置 system 采集器,移除 Telegraf system 采集器。内置的 system 采集器新增三个指标: load1_per_core/load5_per_core/load15_per_core ,便于客户端直接显示单核平均负载,无需额外计算 |
以上采集器的更新,非主机类型的采集器,绝大部分涉均有指标集、指标名的更新,具体参考各个采集器文档。
其它兼容性问题:
- 出于安全考虑,采集器不再默认绑定所有网卡,默认绑定在
localhost:9529
上。原来绑定的0.0.0.0:9529
已失效(字段http_server_addr
也已弃用),可手动修改http_listen
,将其设定成http_listen = "0.0.0.0:9529"
(此处端口可变更) - 某些中间件(如 MySQL/Nginx/Docker 等)已经集成了对应的日志采集,它们的日志采集可以直接在对应的采集器中配置,无需额外用
tailf
来采集了(但tailf
仍然可以单独采集这些日志) - 以下采集器,将不再有效,请用上面内置的采集器来采集
dockerlog
:已集成到 docker 采集器docker_containers
:已集成到 docker 采集器mysqlMonitor
:以集成到 mysql 采集器
新增特性¶
- 拨测采集器(
dialtesting
):支持中心化任务下发,在 Studio 主页,有单独的拨测入口,可创建拨测任务来试用 - 所有采集器的配置项中,支持配置环境变量,如
host="$K8S_HOST"
,便于容器环境的部署 - http://localhost:9529/stats 新增更多采集器运行信息统计,包括采集频率(
frequency
)、每次上报数据条数(avg_size
)、每次采集消耗(avg_collect_cost
)等。部分采集器可能某些字段没有,这个不影响,因为每个采集器的采集方式不同 - http://localhost:9529/reload 可用于重新加载采集器,比如修改了配置文件后,可以直接
curl http://localhost:9529/reload
即可,这种形式不会重启服务,类似 Nginx 中的-s reload
功能。当然也能在浏览器上直接访问该 reload 地址,reload 成功后,会自动跳转到 stats 页面 - 支持在 http://localhost:9529/man 页面浏览 DataKit 文档(只有此次新改的采集器文档集成过来了,其它采集器文档需在原来的帮助中心查看)。默认情况下不支持远程查看 DataKit 文档,可在终端查看(仅 Mac/Linux 支持):
# 进入采集器安装目录,输入采集器名字(通过 `Tab` 键选择自动补全)即可查看文档
$ ./datakit -cmd -man
man > nginx
(显示 Nginx 采集文档)
man > mysql
(显示 MySQL 采集文档)
man > Q # 输入 Q 或 exit 退出
v1.1.4-rc2(2021/04/07)¶
Bug 修复¶
- 修复阿里云监控数据采集器(
aliyuncms
)频繁采集导致部分其它采集器卡死的问题。
v1.1.4-rc1(2021/03/25)¶
改进¶
- 进程采集器
message
字段增加更多信息,便于全文搜索 - 主机对象采集器支持自定义 tag,便于云属性同步
v1.1.4-rc0(2021/03/25)¶
新增功能¶
- 增加文件采集器、拨测采集器以及 HTTP 报文采集器
- 内置支持 ActiveMQ/Kafka/RabbitMQ/gin(Gin HTTP 访问日志)/Zap(第三方日志框架)日志切割
改进¶
- 丰富
http://localhost:9529/stats
页面统计信息,增加诸如采集频率(n/min
),每次采集的数据量大小等 - DataKit 本身增加一定的缓存空间(重启即失效),避免偶然的网络原因导致数据丢失
- 改进 Pipeline 日期转换函数,提升准确性。另外增加了更多 Pipeline 函数(
parse_duration()/parse_date()
) - trace 数据增加更多业务字段(
project/env/version/http_method/http_status_code
) - 其它采集器各种细节改进
v1.1.3-rc4(2021/03/16)¶
Bug 修复¶
- 进程采集器:修复用户名缺失导致显示空白的问题,对用户名获取失败的进程,以
nobody
当做其用户名。
v1.1.3-rc3(2021/03/04)¶
Bug 修复¶
- 修复进程采集器部分空字段(进程用户以及进程命令缺失)问题
- 修复 kubernetes 采集器内存占用率计算可能 panic 的问题
v1.1.3-rc2(2021/03/01)¶
Bug 修复¶
- 修复进程对象采集器
name
字段命名问题,以hostname + pid
来命名name
字段 - 修正华为云对象采集器 pipeline 问题
- 修复 Nginx/MySQL/Redis 日志采集器升级后的兼容性问题
v1.1.3-rc1(2021/02/26)¶
新增功能¶
- 增加内置 Redis/Nginx
- 完善 MySQL 慢查询日志分析
功能改进¶
- 进程采集器由于单次采集耗时过长,对采集器的采集频率做了最小值(30s)限制
- 采集器配置文件名称不再严格限制,任何形如
xxx.conf
的文件,都是合法的文件命名 - 更新版本提示判断,如果 git 提交码跟线上不一致,也会提示更新
- 容器对象采集器(
docker_containers
),增加内存/CPU 占比字段(mem_usage_percent/cpu_usage
) - K8s 指标采集器(
kubernetes
),增加 CPU 占比字段(cpu_usage
) - Tracing 数据采集完善对 service type 处理
- 部分采集器支持自定义写入日志或者指标(默认指标)
Bug 修复¶
- 修复 Mac 平台上,进程采集器获取默认用户名无效的问题
- 修正容器对象采集器,获取不到已退出容器的问题
- 其它一些细节 bug 修复
Breaking Changes¶
-
对于某些采集器,如果原始指标中带有
uint64
类型的字段,新版本会导致字段不兼容,应该删掉原有指标集,避免类型冲突- 原来对于 uint64 的处理,将其自动转成了 string,这会导致使用过程中困扰。实际上可以更为精确的控制这个整数移除的问题
- 对于超过 max-int64 的 uint 整数,采集器会丢弃这样的指标,因为目前 influx1.7 不支持 uint64 的指标
-
移除部分原 dkctrl 命令执行功能,配置管理功能后续不再依赖该方式实现
v1.1.2(2021/02/03)¶
功能改进¶
- 容器安装时,必须注入
ENV_UUID
环境变量 - 从旧版本升级后,会自动开启主机采集器(原 datakit.conf 会备份一个)
- 添加缓存功能,当出现网络抖动的情况下,不至于丢失采集到的数据(当长时间网络瘫痪的情况下,数据还是会丢失)
- 所有使用 tailf 采集的日志,必须在 pipeline 中用
time
字段来指定切割出来的时间字段,否则日志存入时间字段会跟日志实际时间有出入
Bug 修复¶
- 修复 zipkin 中时间单位问题
- 主机对象出采集器中添加
state
字段
v1.1.1(2021/02/01)¶
Bug 修复¶
- 修复 mysqlmonitor 采集器 status/variable 字段均为 string 类型的问题。回退至原始字段类型。同时对 int64 溢出问题做了保护。
- 更改进程采集器部分字段命名,使其跟主机采集器命名一致
v1.1.0(2021/01/29)¶
发布说明¶
本版本主要涉及部分采集器的 bug 修复以及 datakit 主配置的调整。
Breaking Changes¶
- 采用新的版本号机制,原来形如
v1.0.0-2002-g1fe9f870
这样的版本号将不再使用,改用v1.2.3
这样的版本号 - 原 DataKit 顶层目录的
datakit.conf
配置移入conf.d
目录 - 原
network/net.conf
移入host/net.conf
- 原
pattern
目录转移到pipeline
目录下 - 原 grok 中内置的 pattern,如
%{space}
等,都改成大写形式%{SPACE}
。之前写好的 grok 需全量替换 - 移除
datakit.conf
中uuid
字段,单独用.id
文件存放,便于统一 DataKit 所有配置文件 - 移除 ansible 采集器事件数据上报
Bug 修复¶
- 修复
prom
、oraclemonitor
采集不到数据的问题 self
采集器将主机名字段 hostname 改名成 host,并置于 tag 上- 修复
mysqlMonitor
同时采集 MySQL 和 MariaDB 类型冲突问题 - 修复 Skywalking 采集器日志不切分导致磁盘爆满问题
特性¶
- 新增采集器/主机黑白名单功能(暂不支持正则)
- 重构主机、进程、容器等对象采集器采集器
- 新增 pipeline/grok 调试工具
-version
参数除了能看当前版本,还将提示线上新版本信息以及更新命令- 支持 DDTrace 数据接入
tailf
采集器新日志匹配改成正向匹配- 其它一些细节问题修复
- 支持 Mac 平台的 CPU 数据采集