
使用 Bindplane 采集遥测指标并写入 VictoriaMetrics 的完整指南【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetricsBindplane 是面向 OpenTelemetry 生态的可视化遥测管道telemetry pipeline管理平台提供 Agents、Fleets、Configurations 与 Destination目标端等抽象帮助用户在图形界面中完成代理安装、遥测源Source配置与数据路由。VictoriaMetrics 官方将其列为受支持的写入端write集成之一参见 集成总览。本文基于仓库中 bindplane.md 文档逐步讲解如何在 Bindplane 中配置 VictoriaMetrics Destination、创建 Configuration 汇聚 OTLP / Prometheus scrape / 云服务等遥测源并通过 PromQL/MetricsQL 查询写入的数据同时结合源码说明 VictoriaMetrics 侧 OTLP 写入端点的实现细节。Bindplane 与 VictoriaMetrics 的集成方式Bindplane 通过其托管应用app向 VictoriaMetrics 推送指标VictoriaMetrics 侧负责接收的端点与 OpenTelemetry Collector 写入时使用的是同一个原生 OTLP 协议入口单节点版 VictoriaMetrics 与集群版 vminsert 均在http://victoria-metrics:8428/opentelemetry/v1/metrics路径上接收 protobuf 编码的 OTLP 指标请求集群版中请求需路由到 vminsert 节点的/insert端口 8480读取走 vmselect 的 8481 端口参见 Cluster-VictoriaMetrics.md在 app/vminsert/main.go 中可以看到/opentelemetry/api/v1/push与/opentelemetry/v1/metrics两条路径均由opentelemetry.InsertHandler处理并分别统计vm_http_requests_total{path/opentelemetry/v1/metrics, protocolopentelemetry}等指标见 main.go实际写入逻辑位于 app/vminsert/opentelemetry/request_handler.go它按Content-Type区分请求编码protobuf 走常规解析流程而 JSON 编码仅在携带X-Amz-Firehose-Protocol-Version头即 AWS Firehose时被支持普通 JSON 请求会返回错误提示使用 protobuf 编码见 request_handler.go。因此Bindplane 在 Destination 中填写的 hostname 与 port指向的就是上述 OTLP 指标端点对于 gzip 压缩的请求还需在 headers 中携带Content-Encoding: gzip。同样的端点也被 vmagent见 app/vmagent/main.go与集群版 vminsert 复用Bindplane 集成不要求额外部署组件。在 Bindplane 中配置 VictoriaMetrics Destination在 Bindplane 中Destination 描述“数据送到哪里去”。将 VictoriaMetrics 配置为 Destination 的步骤如下注册并登录 Bindplane 账号https://app.bindplane.com/进入 Agents 页面按平台指引安装 Bindplane Agent安装后 Agent 会负责在目标主机上采集与转发遥测数据进入 Library资源库选择 Add Destination并在可用资源中选择 VictoriaMetrics按部署形态填写连接参数hostnameVictoriaMetrics 单节点地址或集群版 vminsert 地址含/opentelemetry/v1/metrics端点路径集群版注意使用 vminsert 的/insert端口 8480port单节点默认 8428集群版 vminsert 默认 8480headers按需添加认证与压缩相关的 HTTP 头例如Content-Encoding: gzip或在启用鉴权时填入 Token/API Key为 Destination 命名并点击 Save 保存。保存后可以在 Library 的全局视图中按资源类型Resource Type、组件类型Component Type此处为 Destination与配置Configurations维度浏览与管理已注册的资源。创建 Configuration 并添加遥测源Configuration 将采集源Source与目标端Destination绑定在一起是 Bindplane 中真正定义“采集什么、送到哪里”的实体进入 Configurations点击创建新的 Configuration为配置命名并选择 Agent Type代理类型与 Platform目标平台Bindplane 会据此生成适合该平台的 Agent 部署配置添加遥测源Source可选类型包括OTLP直接接收 OpenTelemetry 协议上报的指标Prometheus scrape抓取 Prometheus 暴露的指标端点各类云服务遥测源其他 Bindplane 支持的集成源。 在 Bindplane 中一个 Source 是 OpenTelemetry receivers 与 processors 的组合可在一个配置中叠加多个 Source选择上一步创建的 VictoriaMetrics Destination 作为输出目标。保存 Configuration 并部署到对应 Agent 后Bindplane 即开始将采集到的指标以 OTLP 协议推送到 VictoriaMetrics随后便可在 VictoriaMetrics 中使用 PromQL/MetricsQL 查询这些数据。验证数据链路与查询指标Bindplane 的配置界面会展示从 Source 到 Destination 的完整数据流在 Metrics 视图中可以看到“OTel-demo (OpenTelemetry OTLP)”之类的 Source 节点经过处理节点最终连接到 VictoriaMetrics Destination便于确认每个环节的流量与处理状态。数据落库后可以通过 VictoriaMetrics 的 PromQL 查询接口验证例如# 单节点版 curl http://victoria-metrics:8428/api/v1/query \ --data-urlencode queryup # 集群版走 vmselect 的 /select 端口 curl http://vmselect:8481/select/0/prometheus/api/v1/query \ --data-urlencode queryup除标准 PromQL 外还可以使用 VictoriaMetrics 扩展的 MetricsQL例如sum_over_time、rate等函数对来自 Bindplane 的指标做更灵活的聚合分析。标签清洗与 OTLP 数据语义可选调优Bindplane 推送的是标准 OTLP 指标而 VictoriaMetrics 对 OTLP 数据的处理行为可以通过以下 flag 调整这些 flag 对 vmagent、vminsert 及单节点版均生效详见 opentelemetry.md-usePromCompatibleNaming对所有写入协议启用把指标名与标签中 Prometheus 不支持的字符替换为_例如process.cpu.time{service.namefoo}→process_cpu_time{service_namefoo}-opentelemetry.usePrometheusNaming仅对 OTLP 指标按 OTLP Metrics 到 Prometheus 的规范转换指标名与标签例如process.cpu.time{service.namefoo}→process_cpu_time_seconds_total{service_namefoo}-opentelemetry.convertMetricNamesToPrometheus仅转换指标名保留原始标签-opentelemetry.promoteResourceAttributes/-opentelemetry.promoteAllResourceAttributes控制 OpenTelemetry resource attributes 是否提升为指标标签-opentelemetry.ignoreResourceAttributes配合promoteAllResourceAttributes指定需要忽略的 resource attributes。默认情况下VictoriaMetrics 会按原样存储 OTLP 指标点并自动将 resource attributes 与 instrumentation scope 元数据提升为标签指数直方图exponential histogram在写入时会被自动转换为带vmrange标签的 VictoriaMetrics 直方图格式。当上游以 delta 时间语义delta temporality上报时需要确保 Bindplane/下游处理器正确将其转换为 cumulative temporality 后再推送避免因去重deduplication或降采样downsampling导致数据损失参见 opentelemetry.md。与 VictoriaLogs 的对照及延伸阅读本文讨论的是指标metrics场景。若需要将 Bindplane 采集的日志logs送入 VictoriaLogs请参阅仓库中 VictoriaLogs 的 Bindplane 集成文档路径下另见 README。VictoriaLogs 的配置方式与本文的 Destination/Source 流程一致仅目标端点与数据格式不同。如需进一步了解 OTLP 协议在 VictoriaMetrics 中的完整支持范围标签清洗、Resource Attributes、指数直方图、Delta Temporality 等可继续阅读 OpenTelemetry 集成文档、数据接入概览 以及集群版写入路径说明 Cluster-VictoriaMetrics.md。小结通过本文你可以在 Bindplane 中完成 VictoriaMetrics Destination 的创建、Configuration 与遥测源的绑定并在 VictoriaMetrics 中通过 PromQL/MetricsQL 查询由 Bindplane 经 OTLP 管道推送的指标数据。整个链路无需额外代理组件Bindplane Agent 负责采集与转发VictoriaMetrics 原生/opentelemetry/v1/metrics端点负责接收与存储。若需要调整指标命名或标签语义可结合-usePromCompatibleNaming等 flag 在 VictoriaMetrics 侧完成清洗与转换。【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetrics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考