专业的编程技术博客社区

网站首页 > 博客文章 正文

Vector 现在有一个用于 GreptimeDB 的内置接收器

baijin 2024-10-29 13:09:53 博客文章 5 ℃ 0 评论


上个月,我们为 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 团队在集成过程中提供的帮助,我们将来将提供更多定制选项。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表