ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ToolJet 集成 InfluxDB 数据源:从连接配置到 Flux 查询与 Bucket 管理的完整指南

ToolJet 集成 InfluxDB 数据源:从连接配置到 Flux 查询与 Bucket 管理的完整指南 ToolJet 集成 InfluxDB 数据源从连接配置到 Flux 查询与 Bucket 管理的完整指南【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJetInfluxDB 是专为时序数据time-series data设计的开源数据库广泛用于监控指标、传感器数据、IoT 设备与业务分析等场景。ToolJet 通过内置的 InfluxDB 数据源插件plugins/packages/influxdb/lib/index.ts让开发者可以在可视化应用中以 Token 认证方式连接 InfluxDB 2.x 的 HTTP API直接执行 Flux 查询、写入时序数据并完成 Bucket 的全生命周期管理。读完本文你将掌握如何在 ToolJet 中配置 InfluxDB 连接、使用 11 种内置操作读写与治理数据并理解这些操作在底层如何映射到 InfluxDB v2 REST API。连接配置ToolJet 通过 InfluxDB 的 v2 HTTP API 进行通信认证方案为API TokenToken authentication scheme。创建数据源时需要填写以下四项配置项说明默认值API Token访问 InfluxDB API 所需的令牌创建后在表单中以密码框呈现存储时会被加密见 manifest.json 中api_token的encrypted: true空HostInfluxDB 服务所在主机地址空PortInfluxDB HTTP API 端口8086Protocol连接协议下拉选择HTTP或HTTPShttpAPI Token 的生成方式请参考 InfluxDB 官方文档在 ToolJet 连接表单的帮助文本中同样提供了该链接。Token 需要具备目标 Bucket 的读写权限建议按最小权限原则创建专用 Token。从源码角度看这四个配置项被定义为SourceOptionslib/types.ts连接建立后插件会据此拼接出完整的 API 基地址${protocol}://${host}:${port}并将 Token 以Authorization: Token api_key请求头携带lib/index.ts。ToolJet 还提供连接测试功能点击测试后插件会向${protocol}://${host}:${port}/influxdb/cloud/api//ping发起 GET 请求请求成功即判定连接可用lib/index.ts。支持的查询操作总览InfluxDB 数据源在查询编辑器的 Operation 下拉中提供 11 种操作定义见 operations.json操作作用底层 APIWrite data向 Bucket 写入时序数据POST /api/v2/writeQuery data执行 Flux 查询并读取数据POST /api/v2/queryGenerate an Abstract Syntax Tree (AST) from a query解析 Flux 查询并生成查询规范ASTPOST /api/v2/query/astRetrieve query suggestions获取 Flux 函数建议列表GET /api/v2/query/suggestionsRetrieve query suggestions for a branching suggestion获取某个分支建议的 Flux 函数建议GET /api/v2/query/suggestions/{name}Analyze a Flux query分析 Flux 查询返回错误与函数调用信息POST /api/v2/query/analyzeList buckets列出数据库中所有 BucketGET /api/v2/bucketsCreate a bucket新建 BucketPOST /api/v2/bucketsRetrieve a bucket按 ID 查询单个 BucketGET /api/v2/buckets/{bucket_id}Update a bucket更新 Bucket如改名、调整保留策略PATCH /api/v2/buckets/{bucket_id}Delete a bucket删除 BucketDELETE /api/v2/buckets/{bucket_id}下面按“数据读写 → 查询辅助 → Bucket 管理”三个层次逐项说明。数据读写Write Data写入数据向指定 Bucket 写入一条或多条时序数据点对应POST /api/v2/write。必填参数Bucket目标 Bucket 名称Organization name or IDInfluxDB 组织名称或组织 IDData要写入的数据按 InfluxDB Line Protocol 文本格式书写可选参数Precision时间戳精度如ns纳秒、us微秒、ms毫秒、s秒不填则使用 InfluxDB 默认精度写入示例Line Protocol 格式sensor_data,devicethermo-01 temperature22.5,humidity41.2 1694563200000000000从源码看Write 操作将 Bucket、Organization、Precision 拼入 URL 查询参数请求体以text/plain类型原样发送lib/index.ts因此 Data 字段应直接填写符合 Line Protocol 规范的行文本。Query Data查询数据使用 Flux 脚本从 InfluxDB Bucket 中检索数据对应POST /api/v2/query。必填参数Organization name or ID组织名称或 IDFlux query完整的 Flux 查询脚本示例 Flux 查询查询最近 1 小时temperature测量值from(bucket: sensor_data) | range(start: -1h) | filter(fn: (r) r[_measurement] temperature)该操作在源码中通过Content-Type: application/vnd.flux发送 Flux 脚本本体并将org作为查询参数附带lib/index.ts返回结果为 InfluxDB 的 CSV 文本响应可直接绑定到表格、图表等组件上进行可视化。查询辅助与解析这组操作面向 Flux 脚本的编写辅助与调试在 ToolJet 查询编辑器中均可直接调用。Generate an Abstract Syntax Tree (AST) from a Query对 Flux 查询进行词法与语法解析生成结构化查询规范Abstract Syntax Tree对应POST /api/v2/query/ast。必填参数QueryFlux 查询脚本示例from(bucket: website_metrics) | range(start: -7d) | filter(fn: (r) r[_measurement] page_views) | group(columns: [url]) | sum(column: _value) | sort(columns: [_value], desc: true)Retrieve Query Suggestions获取 InfluxDB 提供的 Flux 函数建议列表即 Flux 标准库中可用的函数名与简介无参数对应GET /api/v2/query/suggestions。返回结果可用于在编辑器中辅助提示可用的 Flux 函数。Retrieve Query Suggestions for a Branching Suggestion按函数名获取某个分支建议对应的 Flux 函数建议详情对应GET /api/v2/query/suggestions/{name}。必填参数Name分支建议的名称即上一操作返回列表中的函数名Analyze a Flux Query对 Flux 查询做静态分析返回脚本中的语法错误、位置信息及调用的函数列表对应POST /api/v2/query/analyze适合在运行查询前先校验脚本。必填参数QueryFlux 查询脚本示例from(bucket: sensor_data) | range(start: -1d) | filter(fn: (r) r[_measurement] humidity) | mean(column: _value)Bucket 管理Bucket 是 InfluxDB 中数据组织与保留策略的基本单元。ToolJet 提供从列查到增删改的完整管理能力操作返回的响应体JSON会以data形式暴露给后续查询与组件使用。List Buckets列出数据库中的所有 Bucket无参数对应GET /api/v2/buckets。Create a Bucket创建新的 Bucket对应POST /api/v2/buckets。必填参数QueryJSON 请求体包含 Bucket 名称、组织 ID 与保留规则示例请求体POST http://localhost:8086/api/v2/buckets Content-Type: application/json Authorization: Token your_auth_token { name: new_bucket, orgID: your_org_id, retentionRules: [ { everySeconds: 3600 } ] }其中retentionRules.everySeconds指定数据保留时长秒示例中3600表示数据保留 1 小时。Retrieve a Bucket按 Bucket ID 查询单个 Bucket 的详细信息对应GET /api/v2/buckets/{bucket_id}。必填参数Bucket ID目标 Bucket 的唯一标识Update a Bucket更新 Bucket 的名称或保留策略对应PATCH /api/v2/buckets/{bucket_id}。必填参数Bucket ID目标 Bucket 的唯一标识QueryJSON 请求体仅包含需要修改的字段示例请求体重命名并将保留时长改为 2 小时{ name: updated_bucket_name, retentionRules: [ { everySeconds: 7200 } ] }Delete a Bucket删除指定 Bucket该操作不可恢复Bucket 内数据将一并删除对应DELETE /api/v2/buckets/{bucket_id}。必填参数Bucket ID目标 Bucket 的唯一标识底层实现插件如何工作InfluxDB 数据源以 ToolJet 插件体系中的独立包形式存在plugins/packages/influxdb核心执行逻辑集中在 lib/index.ts 的run方法中认证方式所有请求统一携带Authorization: Token api_token头Token 通过数据源配置的api_token字段注入存储时加密、传输时仅用于内存中的请求组装操作分发根据查询的operation字段走switch分支每个分支对应一个 InfluxDB v2 REST 端点见上文表格其中query_data与write使用application/vnd.flux与text/plain内容类型分别发送 Flux 脚本与 Line Protocol 数据其余 JSON 交互类操作统一使用application/json参数拼接org、bucket、precision等动态参数通过searchParams按需附加到 URL仅当值非空时携带避免产生无效查询串响应解析JSON 响应通过JSON5.parse解析lib/index.ts可容忍注释与宽松语法而查询类的文本响应则直接透传原始 CSV 内容错误处理任何请求异常都会被捕获并包装为QueryError在查询运行器中呈现错误信息便于在构建应用时快速定位连接或脚本问题。插件包同时提供 manifest.json定义数据源表单字段与默认值与 operations.json定义 11 种操作的 UI 表单这两份 schema 与运行时代码共同决定了你在 ToolJet 界面中看到的所有配置项与参数输入框。数据源暴露的变量包括isLoading、data、rawData与customTesting方便在应用逻辑中监听查询状态与结果。典型应用场景将以上能力组合起来可以在 ToolJet 中快速搭建时序数据应用例如监控看板用 Query Data 拉取近 N 小时/天的指标range(start: -1h)绑定图表组件实时呈现温度、流量等时序曲线数据采集入口用 Write Data 接收表单或上游 Webhook 传来的传感器读数按 Line Protocol 格式写入对应 Bucket存储治理用 List Buckets 概览所有 Bucket配合 Create / Update 调整保留策略或用 Delete 清理废弃 Bucket查询调试在把 Flux 脚本接入正式查询前先用 Analyze a Flux Query 校验语法用 AST 生成确认解析结果。注意事项本文所述连接方式与操作均基于 InfluxDB 2.x 的 v2 API默认端口 8086若使用 1.x 版本接口路径与认证机制不同需要先完成版本升级或适配。API Token 是唯一认证凭据请勿在应用定义或查询中明文硬编码ToolJet 会对其加密存储。Delete a Bucket 为不可逆操作建议在正式环境使用前先在测试环境验证 Bucket ID 与数据影响范围。Write 与 Query 操作中的 Organization 参数既支持名称也支持 ID二者由 InfluxDB 服务端解析保持一致即可。【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表