Telegraf InfluxDB Input Plugin 详解:从/debug/vars采集 InfluxDB v1 与兼容端点指标
【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
本篇技术指南以 Telegraf 仓库中的 influxdb 输入插件文档 为核心,讲解如何通过该插件从 InfluxDB v1 服务器的/debug/vars端点(以及任何暴露 InfluxDB 格式 JSON 的 HTTP 端点)采集数据库自身的运行状态指标。读完本文,你将掌握插件的完整配置参数、底层 JSON 解析与度量生成机制、全部测量(measurement)与字段(field)语义,以及用--test模式快速验证采集效果的实战方法。
插件定位与适用场景
inputs.influxdb是 Telegraf 内置的输入插件,自Telegraf v0.2.5起提供,分类标签为datastore,支持在all(所有平台)上运行。它的核心职责是:
- 采集给定InfluxDB v1服务器上
influxdb度量(源自/debug/vars端点); - 额外支持从任何暴露 InfluxDB 格式 JSON 数据的 HTTP 端点采集指标,无论该端点背后是否真的连接了 Influx 数据库。
需要注意一个重要的边界:该插件面向 InfluxDB v1。若要采集InfluxDB v2 的指标,原文档给出的方案是改用 prometheus 输入插件,以 Prometheus 格式抓取 v2 的/metrics端点:
[[inputs.prometheus]] urls = ["http://localhost:8086/metrics"] metric_version = 1插件注册入口位于 plugins/inputs/all/influxdb.go,通过import _ "github.com/influxdata/telegraf/plugins/inputs/influxdb"完成注册;插件主体实现在 plugins/inputs/influxdb/influxdb.go。
配置参数全解
插件完整的可配置项见 sample.conf(该文件通过//go:embed内嵌进二进制,并作为SampleConfig()的返回值)。最小可用的配置如下:
# Read InfluxDB-formatted JSON metrics from one or more HTTP endpoints [[inputs.influxdb]] ## Works with InfluxDB debug endpoints out of the box, ## but other services can use this format too. ## See the influxdb plugin's README for more details. ## Multiple URLs from which to read InfluxDB-formatted JSON ## Default is "http://localhost:8086/debug/vars". urls = [ "http://localhost:8086/debug/vars" ] ## Username and password to send using HTTP Basic Authentication. # username = "" # password = "" ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false ## http request & header timeout timeout = "5s"各参数说明如下:
| 参数 | 类型 | 默认值 | 作用 |
|---|---|---|---|
urls | 字符串数组 | ["http://localhost:8086/debug/vars"] | 一个或多个待抓取的 HTTP 端点,每个端点都会被并发请求并独立产出度量 |
username/password | 字符串 | 空 | 发起请求时使用的 HTTP Basic Authentication 凭据 |
tls_ca/tls_cert/tls_key | 字符串 | 空 | 可选的 TLS 配置,指向 CA 证书、客户端证书与私钥路径 |
insecure_skip_verify | 布尔 | false | 使用 TLS 时跳过证书链与主机名校验 |
timeout | 时长 | 5s | HTTP 请求及响应头的超时时间 |
从源码看,InfluxDB结构体(influxdb.go)将上述参数直接映射为 TOML 字段,并内嵌了tls.ClientConfig以复用 Telegraf 统一的 TLS 配置体系;init()中注册插件时把Timeout默认值设为time.Duration(time.Second * 5)。需要认证的端点会在请求上调用req.SetBasicAuth(username, password),同时所有请求都会携带User-Agent: Telegraf/<version>头(internal.Version来自编译期注入的版本号)。
与所有 Telegraf 插件一样,inputs.influxdb还支持name_override、tags、fieldpass/fielddrop、tagpass/tagdrop、alias、处理器排序等全局与插件级配置,详见 docs/CONFIGURATION.md。
采集工作原理:源码级解析流程
Gather是插件的入口(influxdb.go),其执行流程可以概括为四个阶段:
- 默认值兜底:若
urls为空,自动回退到http://localhost:8086/debug/vars。 - HTTP 客户端构建:基于
timeout设置http.Client的整体超时,并在http.Transport上设置ResponseHeaderTimeout与 TLS 配置。客户端采用懒加载,仅构建一次。 - 并发抓取:对每个 URL 启动一个 goroutine 调用
gatherURL,通过sync.WaitGroup等待全部完成;单点失败不会中断整体采集,而是通过acc.AddError(err)上报。 - 错误聚合:所有 URL 采集结束后统一返回,任一端点的错误已进入 Accumulator 的错误队列。
gatherURL(influxdb.go)则完成真正的解析工作,其关键在于手工 JSON 流式解码。源码注释解释了为什么不直接json.Unmarshal到map[string]point:一旦端点返回的任意值不是对象(例如数组、字符串),Go 解码器会报json: cannot unmarshal array into Go value of type influxdb.point,导致整个响应解析失败。因此实现采用json.Decoder逐 Token 遍历顶层对象:
- 先确认文档根是
{对象; - 对每个顶层键读取字符串 key(键名本身不参与度量命名);
- 对特殊结构体进行独立解码:
system→ 产出influxdb_system(含current_time、started、uptime);memstats→ 产出influxdb_memstats(Go 内存分配器全套统计,字段见下文);build→ 产出influxdb_build(branch、build_time、commit、version);cmdline→ 产出influxdb_cmdline(命令行参数以空格拼接为value字段);crypto→ 产出influxdb_crypto(fips、ensure_fips、implementation、password_hash);
- 其余所有键一律尝试按
point结构解码:point由name、tags、values三部分组成(定义见 types.go)。若解码失败、或解码后name为空、values为空,则静默跳过——这正是插件能同时容忍“非对象值”“非 point 结构对象”的原因。 - 每个 point 都会被打上
url标签(值为本次抓取的端点地址),并以influxdb_<name>作为最终测量名写入 Accumulator。 - 特殊计数:统计
name == "shard"的 point 个数,最后产出一条无标签的influxdb测量,字段为n_shards。
测试用例对以上行为给出了明确佐证:TestBasic(influxdb_test.go)验证了当 JSON 中混有数组、字符串、嵌套对象、空values的 point 时,只有合法 point 与influxdb n_shards=0被产出;TestInfluxDB/TestInfluxDB2验证了真实influx_return.json的 36 条度量产出,其中influxdb_system的uptime字段以无符号整型(u)写入;TestCloud1用真实环境的 4600+ 行/debug/vars快照(testdata/cloud1.json)与期望输出 testdata/cloud1.influx 逐条比对,覆盖了企业版扩展测量(influxdb_ae、influxdb_cluster、influxdb_rpc等)的解析。错误处理方面,TestErrorResponse确认非 200 响应会读取响应体(最多 1024 字节,常量maxErrorResponseBodyLength)中的{"error": "..."}字段并拼装为apiError上报。
支持的测量与字段详解
[!NOTE] 插件的测量与字段由 InfluxDB 端
/debug/vars实际返回的内容动态构建,不同 InfluxDB 版本之间可能有所差异。下面以当前 InfluxDB v1 常见版本为准列出。
以下测量在源端数据存在时才会生成,且部分标注Enterprise Only的测量仅在 InfluxDB 企业版集群中出现。
influxdb_ae(企业版)
Anti-Entropy(AE)引擎统计,用于修复集群中数据不一致的分片:
bytesRx:数据节点接收的字节数。errors:发生错误的 anti-entropy 任务总数。jobs:数据节点已执行的任务总数。jobsActive:当前正在执行(活跃)的任务数。
influxdb_cluster(企业版)
企业版集群数据节点的聚类特性统计:
copyShardReq:将一个分片从一个数据节点复制到另一个的内部请求数。createIteratorReq:来自集群其他数据节点的读请求数。expandSourcesReq:为匹配某正则表达式的测量而发起的远程节点请求数。fieldDimensionsReq:关于本节点测量字段、类型与标签键信息的远程请求数。iteratorCostReq:内部迭代器开销请求数。openConnections:数据节点正在处理的开放连接数(含在单个 yamux 连接上复用的逻辑连接)。removeShardReq:删除本节点分片的内部请求数(仅由influxd-ctl remove shard命令触发递增)。writeShardFail:来自远程节点且失败的内部写请求总数。writeShardPointsReq:来自远程节点的每次内部写请求中的点数(无论成功与否)。writeShardReq:来自远程数据节点的内部写请求数(无论成功与否)。
influxdb_cq
连续查询(Continuous Queries)统计:
queryFail:已执行但失败的连续查询总数。queryOk:成功执行的连续查询总数。
influxdb_database
数据库维度统计(database标签标识具体库):
numMeasurements:指定数据库当前的测量数量。numSeries:指定数据库当前的序列基数。
influxdb_hh / influxdb_hh_database / influxdb_hh_processor(企业版)
Hinted Handoff(HH,提示式交接)机制用于在目标节点不可达时暂存写请求,三个测量分别从引擎整体、单数据库聚合、单队列(分片)三个粒度展开:
bytesRead:从 HH 队列读出并发往目标数据节点的点数所占字节。bytesWritten:写入 HH 队列的总字节数。queueBytes:HH 队列中剩余的总字节数。queueDepth:HH 队列中的段(segment)数量(HH 队列由一串 10MB 的“段”文件构成)。writeBlocked:因并发 HH 请求数超限而被阻塞的写入次数。writeDropped:因写入疑似损坏而从 HH 队列丢弃的写入次数。writeNodeReq:成功向目标节点写入一批数据的写请求总数。writeNodeReqFail:将一批数据从 HH 队列写入目标节点失败的写请求总数。writeNodeReqPoints:从 HH 队列成功写入目标节点的点数。writeShardReq:进入 HH 队列的每个写批次请求总数。writeShardReqPoints:进入 HH 队列的点数。
influxdb_hh_processor额外带shardID、node标签(见 cloud1.influx 中的示例输出);influxdb_hh_node(含queueTotalSize字段)与influxdb_hh_database也按各自粒度出现。
influxdb_httpd
InfluxDB HTTP 服务器统计:
authFail:因需要认证但未提供或凭据错误而中止的 HTTP 请求数。clientError:返回 4XX 客户端错误的 HTTP 响应数。fluxQueryReq:已服务的 Flux 查询请求数。fluxQueryReqDurationNs:执行 Flux 查询请求所花费的墙钟时间(纳秒)。pingReq:服务/pingHTTP 端点的次数。pointsWrittenDropped:被存储引擎丢弃的点数。pointsWrittenFail:被/write端点接受但未能持久化的点数。pointsWrittenOK:被/write端点成功接受并持久化的点数。promReadReq:对 Prometheus/read端点的读请求数。promWriteReq:对 Prometheus/write端点的写请求数。queryReq:查询请求数。queryReqDurationNs:查询请求总耗时(纳秒)。queryRespBytes:查询响应返回的总字节数。recoveredPanics:HTTP 处理器恢复的 panic 总数。req:服务的 HTTP 请求总数。reqActive:当前活跃请求数。reqDurationNs:HTTP 请求内部耗时(墙钟,纳秒)。serverError:因服务器错误返回的 HTTP 响应数。statusReq:使用 HTTP/status端点服务的状态请求数。valuesWrittenOK:被/write端点成功接受并持久化的值(字段)数量。writeReq:使用/write端点服务的写请求数。writeReqActive:当前活跃的写请求数。writeReqBytes:写请求通过/write端点接收的行协议数据总字节数。writeReqDurationNs:使用/writeHTTP 端点服务的写请求耗时(纳秒)。
influxdb_memstats
Go 运行时内存分配器统计(对应/debug/vars中的memstats对象,字段名与原文档保持一致的大驼峰命名,经插件原样透传):
Alloc:堆对象已分配字节数。BuckHashSys:profile bucket 哈希表占用的内存字节数。Frees:堆对象释放的累计次数。GCCPUFraction:自 InfluxDB 启动以来垃圾回收(GC)占用的可用 CPU 时间比例。GCSys:GC 元数据占用的内存字节数。HeapAlloc:已分配的堆对象字节数。HeapIdle:空闲(未使用)span 的字节数。HeapInuse:使用中 span 的字节数。HeapObjects:已分配的堆对象数量。HeapReleased:归还给操作系统的物理内存字节数。HeapSys:从操作系统获得的堆内存字节数。LastGC:上一次 GC 完成的时间。Lookups:运行时执行的指针查找次数。MCacheInuse:已分配的 mcache 结构字节数。MCacheSys:为 mcache 结构从操作系统获得的内存字节数。MSpanInuse:已分配的 mspan 结构字节数。MSpanSys:为 mspan 结构从操作系统获得的内存字节数。Mallocs:堆对象分配的累计次数。NextGC:下一轮 GC 的目标堆大小。NumForcedGC:应用主动调用 GC 函数强制的 GC 周期数。NumGC:已完成的 GC 周期数。OtherSys:杂项堆外运行时分配的内存字节数。PauseTotalNs:自程序启动以来 GC stop-the-world 暂停的累计纳秒数。StackInuse:栈 span 的字节数。StackSys:从操作系统获得的栈内存字节数。Sys:从操作系统获得的内存总字节数。TotalAlloc:为堆对象分配的累计字节数。
插件在产出该测量时还额外生成了两个派生字段:pause_ns(取最近一次 GC 暂停时长,即PauseNs[(NumGC+255)%256]),以及上述字段对应的下划线小写变体(alloc、heap_alloc、gc_cpu_fraction等),参见 influxdb.go。这正是示例输出中出现alloc=...而非Alloc的原因。
influxdb_queryExecutor
查询执行器统计:
queriesActive:当前正在处理的活跃查询数。queriesExecuted:已执行(启动)的查询数。queriesFinished:已执行完成的查询数。queryDurationNs:已执行查询的总耗时(纳秒)。recoveredPanics:查询执行器恢复的 panic 数。
influxdb_rpc(企业版)
集群 RPC 调用统计:
idleStreams:所有存活 TCP 连接上空闲的多路复用流数量。liveConnections:当前到其他节点的存活 TCP 连接数。liveStreams:所有存活 TCP 连接上当前存活的多路复用流数量。rpcCalls:向远程节点发起的 RPC 调用总数。rpcFailures:未恢复的 RPC 失败总数。rpcReadBytes:RPC 读取的总字节数。rpcRetries:至少重试过一次的 RPC 调用数。rpcWriteBytes:RPC 写入的总字节数。singleUse:通过Dial打开的单次使用连接总数。singleUseOpen:当前打开的单次使用连接数。totalConnections:已建立的 TCP 连接总数。totalStreams:已建立的流总数。
influxdb_runtime
Go 内存分配器记录的 memstat 子集(注意其字段沿用原文档/源端的大驼峰命名,与influxdb_memstats的下划线变体不同):
Alloc:当前已分配的堆对象字节数。Frees:已释放(存活)堆对象的累计数量。HeapAlloc:所有堆对象的字节数。HeapIdle:空闲堆对象字节数。HeapInUse:使用中 span 的字节数。HeapObjects:已分配的堆对象数量。HeapReleased:归还给操作系统的物理内存字节数。HeapSys:从操作系统获得的堆内存字节数,衡量为堆预留的虚拟地址空间。Lookups:运行时执行的指针查找次数,主要用于调试运行时内部。Mallocs:堆对象分配总数(存活对象总数即Frees)。NumGC:完成的 GC 周期数。NumGoroutine:Go 协程总数。PauseTotalNs:GC 暂停的总时长(纳秒)。Sys:从操作系统获得的内存总字节数,衡量 Go 运行时为堆、栈及其他内部数据结构预留的虚拟地址空间。TotalAlloc:为堆对象分配的字节总数(对象被释放时该统计不下降)。
influxdb_shard
分片级统计(database、id、engine、indexType、path、retentionPolicy、walPath等标签标注具体分片):
diskBytes:分片大小(字节),包含数据目录与 WAL 目录。fieldsCreate:已创建的字段数量。indexType:索引类型inmem或tsi1。n_shards:指定数据库中的分片总数。seriesCreate:已创建的序列数量。writeBytes:写入分片的字节数。writePointsDropped:写入中被丢弃的点请求数。writePointsErr:因错误未能写入的点请求数。writePointsOk:成功写入的点数。writeReq:写请求总数。writeReqErr:因错误失败的写请求总数。writeReqOk:成功的写请求总数。
influxdb_subscriber
订阅统计:
createFailures:创建失败的订阅数。pointsWritten:成功写入订阅者的总点数。writeFailures:写入订阅者失败的批次总数。
influxdb_tsm1_cache
TSM 缓存统计:
cacheAgeMs:采样时刻距缓存上次快照的时长(毫秒)。cachedBytes:已写入快照的总字节数。diskBytes:磁盘快照大小(字节)。memBytes:内存缓存大小(字节)。snapshotCount:当前活跃快照的层(数量)。WALCompactionTimeMs:压缩快照期间持有提交锁的时长(毫秒)。writeDropped:因超时被丢弃的写入总数。writeErr:失败的写入总数。writeOk:成功的写入总数。
influxdb_tsm1_engine
TSM 存储引擎统计,覆盖 cache 压缩与 TSM full/level 1/2/3/optimize 各档位压缩的耗时(纳秒)、错误数、队列深度与活跃/累计次数:
cacheCompactionDuration/cacheCompactionErr/cacheCompactions/cacheCompactionsActivetsmFullCompactionDuration/tsmFullCompactionErr/tsmFullCompactionQueue/tsmFullCompactions/tsmFullCompactionsActivetsmLevel1CompactionDuration/tsmLevel1CompactionErr/tsmLevel1CompactionQueue/tsmLevel1Compactions/tsmLevel1CompactionsActivetsmLevel2CompactionDuration/tsmLevel2CompactionErr/tsmLevel2CompactionQueue/tsmLevel2Compactions/tsmLevel2CompactionsActivetsmLevel3CompactionDuration/tsmLevel3CompactionErr/tsmLevel3CompactionQueue/tsmLevel3Compactions/tsmLevel3CompactionsActivetsmOptimizeCompactionDuration/tsmOptimizeCompactionErr/tsmOptimizeCompactionQueue/tsmOptimizeCompactions/tsmOptimizeCompactionsActive
influxdb_tsm1_filestore
TSM 文件存储统计:
diskBytes:TSM 文件存储占用的磁盘字节数。numFiles:TSM 文件存储中的文件总数。
influxdb_tsm1_wal
TSM 预写日志(WAL)统计:
currentSegmentDiskBytes:当前段磁盘大小(字节)。oldSegmentDiskBytes:旧段磁盘大小(字节)。writeErr:因错误失败的写入数。writeOK:成功的写入数。
influxdb_write
写入路径统计:
pointReq:请求写入的总点数。pointReqHH(企业版):本节点接收后进入目标节点 hinted handoff 的总点数。pointReqLocal(企业版):尝试写入本机(local)节点分片的点请求数。pointReqRemote(企业版):本节点接收但需转发到远程节点分片的点数。pointsWrittenOK:写入/write端点并成功持久化的点数。req:请求写入的批次总数。subWriteDrop:未能发送到订阅分发器的批次总数。subWriteOk:成功发送到订阅分发器的批次总数。valuesWrittenOK:写入/write端点并成功持久化的值(字段)数量。writeDrop:因时间戳不匹配任何现有保留策略而丢弃的点写入请求总数。writeError:因写入本地或远程分片失败而未能成功写入的点批次总数。writeOk:以请求的一致性级别写入的批次总数。writePartial(企业版):写入至少一个节点但未达到请求一致性级别的批次总数。writeTimeout:未在默认写超时时间内完成的写请求总数。
多端点配置与并行采集
插件天然支持在urls中配置多个端点,例如监控同一集群的多台 InfluxDB 节点:
[[inputs.influxdb]] urls = [ "http://127.0.0.1:8086/debug/vars", "http://192.168.2.1:8086/debug/vars" ]每个端点都会被独立、并发地请求(Gather中对每个 URL 启动 goroutine),产出的每条度量都会携带对应的url标签(源码在 influxdb.go 中将url写入 point 标签,特殊结构体同样带url标签),因此可以方便地在查询时按来源节点区分、聚合或告警。对于“InfluxDB 格式端点”而言,只要 JSON 顶层是对象且内部结构符合{name, tags, values}的 point 约定,任何服务都可以接入,这与是否真实关联 Influx 数据库无关。
实战验证:--test模式快速出图
配置完成后,可以用 Telegraf 的--test模式在不落库的情况下单次抓取并打印度量,快速验证插件工作是否正常(以下示例来自原文档):
telegraf --config ~/ws/telegraf.conf --input-filter influxdb --test输出形如:
influxdb_database,database=_internal,host=tyrion,url=http://localhost:8086/debug/vars numMeasurements=10,numSeries=29 1463590500247354636 influxdb_httpd,bind=:8086,host=tyrion,url=http://localhost:8086/debug/vars req=7,reqActive=1,reqDurationNs=14227734 1463590500247354636 influxdb_measurement,database=_internal,host=tyrion,measurement=database,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 influxdb_memstats,host=tyrion,url=http://localhost:8086/debug/vars alloc=7642384i,buck_hash_sys=1463471i,frees=1169558i,gc_sys=653312i,gc_cpu_fraction=0.00003825652361068311,heap_alloc=7642384i,heap_idle=9912320i,heap_inuse=9125888i,heap_objects=48276i,heap_released=0i,heap_sys=19038208i,last_gc=1463590480877651621i,lookups=90i,mallocs=1217834i,mcache_inuse=4800i,mcache_sys=16384i,mspan_inuse=70920i,mspan_sys=81920i,next_gc=11679787i,num_gc=141i,other_sys=1244233i,pause_total_ns=24034027i,stack_inuse=884736i,stack_sys=884736i,sys=23382264i,total_alloc=679012200i 1463590500277918755 influxdb_shard,database=_internal,engine=tsm1,host=tyrion,id=4,path=/Users/sparrc/.influxdb/data/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars fieldsCreate=65,seriesCreate=26,writePointsOk=7274,writeReq=280 1463590500247354636 influxdb_subscriber,host=tyrion,url=http://localhost:8086/debug/vars pointsWritten=7274 1463590500247354636 influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809192,cachedBytes=0,diskBytes=0,memBytes=0,snapshotCount=0 1463590500247354636 influxdb_tsm1_filestore,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars diskBytes=52907 1463590500247354636 influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/3,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=65651 1463590500247354636 influxdb_write,host=tyrion,url=http://localhost:8086/debug/vars pointReq=7274,pointReqLocal=7274,req=280,subWriteOk=280,writeOk=280 1463590500247354636 influxdb_shard,host=tyrion n_shards=4i 1463590500247354636从输出可以看到几个值得留意的实现细节:
influxdb_memstats中alloc、gc_cpu_fraction等为插件生成的下划线小写字段,其中pause_ns是最近一次 GC 暂停时长;- 所有测量都带
url标签,部分还带有database、bind、path、retentionPolicy、engine、id等维度标签; - 末尾的
influxdb n_shards=4i是无标签汇总测量,用于快速了解分片总量; - 整数型字段以
i后缀标识,浮点与布尔、字符串字段按各自类型透传(TestBasic中已验证b: true、s: "string"、f: 0.5等类型的保留)。
错误处理与边界行为
插件对异常情况有清晰的兜底策略,全部可在 influxdb.go 及测试中确认:
- 非 200 状态码:
gatherURL调用readResponseError构造apiError,尽力从响应体(最多 1024 字节)中解析{"error": "..."}字段拼入错误信息(influxdb.go)。TestErrorResponse验证了 401 响应能正确提取unable to parse authentication credentials。 - JSON 根非对象:直接返回
document root must be a JSON object错误。 - 部分字段损坏:单个特殊结构体解码失败会被
continue跳过,不影响同一响应中其他度量的产出。 - 请求失败与超时:
timeout同时作用于整体客户端与响应头等待;单 URL 失败通过acc.AddError上报,不影响其余 URL 的并发采集。 --test或真实采集均不落库修改:插件只读端点数据,对 InfluxDB 仅发起 GET 请求。
延伸阅读
- 插件文档与示例配置:plugins/inputs/influxdb/README.md、plugins/inputs/influxdb/sample.conf
- 插件核心实现:plugins/inputs/influxdb/influxdb.go、数据结构定义 plugins/inputs/influxdb/types.go
- 单元测试与真实快照:plugins/inputs/influxdb/influxdb_test.go、plugins/inputs/influxdb/testdata/cloud1.json、plugins/inputs/influxdb/testdata/cloud1.influx
- 插件注册入口:plugins/inputs/all/influxdb.go
- InfluxDB v2 指标采集请参考 prometheus 输入插件;插件通用配置(别名、标签、字段过滤、顺序控制等)见 docs/CONFIGURATION.md
【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考