网站首页 > 博客文章 正文
上个月,我们为 Vector 项目实现的 GreptimeDB Sink 已成功合并。 随着最近发布的 Vector 0.32.0,Vector 正式集成 GreptimeDB 作为指标数据接收器。 这允许用户使用 Vector 将来自各种来源的数据导入 GreptimeDB,这标志着 GreptimeDB 在可观测性生态系统中的一个重要里程碑。
什么是Vector?
Vector 是一个用 Rust 编写的“可观察性数据管道”,有助于可观察性数据、指标和日志的传输。
在 Vector 的抽象中,定义了三个主要模块:
- Sources
- Transforms
- Sinks
在Vector拓扑中,用户可以通过配置指定多个Source、Transform和Sink。 他们还可以定义它们之间的数据流,确保从源到接收器的无缝数据传输和处理。 Vector 提供 40 多个数据源和 50 多个接收器,包括 GreptimeDB。 转换是 Vector 的一项独特功能,可以实现数据重新映射、聚合、过滤、下采样、速率限制,甚至可以在指标和日志之间进行转换。
在内部,除了集成各种数据源和目标客户端外,Vector还对数据传输过程进行抽象和建模,提供统一的基础架构,支持批量操作、重试、TLS加密、流量管理等。通过遵循其设计标准,可以开发可靠的 扩展。
GreptimeDB 作为Vector接收器
目前,GreptimeDB 可以充当 Vector 的指标数据接收器。 通过Vector的转换,Logs也可以根据业务需要转换为Metrics,然后存储在GreptimeDB中。
在 GreptimeDB 中存储 Vector 指标时,我们遵循以下规则:
使用下划线作为 GreptimeDB 的表名称来组合 Metric 的命名空间和名称
使用 Metric 中的时间戳作为 GreptimeDB 中的时间索引,默认列名 ts
与 Metric 相关的标签将用作 GreptimeDB 的标签字段
Vector 的指标与其他指标非常相似,有各种子类型:
对于 Counter 和 Gauge 指标类型,值直接存储在 val 列中。
对于 Set 类型,集合中数据点的计数存储在 val 列中。
分布类型指标将每个百分位值存储在 pxx 列中,其中“xx”表示分位值。 还记录最小值、最大值、平均值、总和和计数列。
对于 AggregateHistogram 类型,每个桶的值存储在 bxx 列中,“xx”表示桶值的上限。 我们还跟踪总和和计数列。
AggregateSummary 类型遵循类似的结构,将每个百分位值存储在 pxx 列中,其中“xx”表示分位值。 还记录总和和计数列。
对于 Sketch 类型,每个百分位数值都存储在 pxx 列中,同样用“xx”表示分位数值。 还记录最小值、最大值、平均值和总和列。
实际示例首先,确保您有一个正在运行的 GreptimeDB 实例。 它可以基于开源版本,也可以基于GreptimeCloud上打开的实例。
下载Vector 0.32版本并编写配置文件。 这里我们以Vector的host_metrics数据源为例:
[sources.in]
type = "host_metrics"
scrape_interval_secs = 30
[sinks.local]
inputs = ["in"]
type = "greptimedb"
endpoint = "localhost:4001"
[sinks.cloud]
inputs = ["in"]
type = "greptimedb"
endpoint = "7x5hdjl32d17f.us-west-2.aws.greptime.cloud:4001"
dbname = "..."
username = "..."
password = "..."
在此配置文件中,同时使用本地 GreptimeDB 和 GreptimeCloud 上的无服务器实例。 只需将端点配置为实例的4001端口,然后设置数据库的名称、用户名、密码以及相关参数即可。
将配置文件保存为sample.toml并启动Vector进行数据写入:
vector -c sample.toml
通过MySQL协议访问数据:
MySQL [etox4eivxxv2respective_expansion-public]> select * from host_load1 order by ts desc limit 5;
+-------------------------+-----------+----------+---------------+
| ts | collector | host | val |
+-------------------------+-----------+----------+---------------+
| 2023-08-23 06:25:32.295 | load | thinkneo | 0.88671875 |
| 2023-08-23 06:25:02.295 | load | thinkneo | 1.35302734375 |
| 2023-08-23 06:24:32.295 | load | thinkneo | 1.32763671875 |
| 2023-08-23 06:24:02.295 | load | thinkneo | 1.5029296875 |
| 2023-08-23 06:23:32.295 | load | thinkneo | 1.65966796875 |
+-------------------------+-----------+----------+---------------+
5 rows in set (0.198 sec)
在 GreptimeCloud 上可视化它:
结论
与Vector的集成扩展了GreptimeDB在可观察性方面的应用。 感谢 Vector 团队在集成过程中提供的帮助,我们将来将提供更多定制选项。
猜你喜欢
- 2024-10-29 Jmeter常见压测错误解决(jmeter压测配置)
- 2024-10-29 TCP网络编程中connect()、listen()和accept()三者之间的关系
- 2024-10-29 移动硬盘不能读取(移动硬盘不能读取怎么修复)
- 2024-10-29 Linux Posic消息队列和System V消息队列的区别
- 2024-10-29 线上故障排查全套路,拿走不谢(在线故障检测时应注意什么)
- 2024-10-29 Arthas基础(二)(arthas原理)
- 2024-10-29 谁再说Synchronized慢,我跟谁急(是谁再说一遍)
- 2024-10-29 JVM监控命令详解(jvm gc监控)
- 2024-10-29 MySQL数据库监控(mysql数据库监控工具)
- 2024-10-29 看了这篇文章,比同事更快找到bug
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)