InfluxDB 内部 1.x 度量和字段
默认情况下,InfluxDB 生成内部度量并将它们保存到 _internal
数据库。使用这些度量来监控 InfluxDB 和 InfluxDB 企业版,并在出现问题时创建警报来通知您。
在生产中禁用 _internal
数据库
InfluxData 不建议在生产集群中使用 _internal
数据库。它会产生不必要的开销,尤其是在繁忙的集群中,可能会使已经负载过重的集群过载。存储在 _internal
数据库中的度量主要测量工作负载性能,并且仅在非生产环境中进行测试。
要禁用 _internal
数据库,请将 InfluxDB 配置文件 中 [monitor]
部分的 store-enabled
设置为 false
。
# ...
[monitor]
# ...
# Whether to record statistics internally.
store-enabled = false
#...
在外部监控器中存储内部度量
要监控生产集群中的 InfluxDB _internal
度量,请使用 Telegraf 和 influxdb
输入插件 从 InfluxDB /debug/vars
端点捕获这些度量并将它们存储在外部 InfluxDB 监控实例中。有关更多信息,请参阅 配置监控监控器。
在使用“监控监控器(WoW)”配置时,InfluxDB 度量字段键以 infuxdb_
预先添加,但与其他列出的内容相同 下面。
可视化 InfluxDB 内部度量
使用 InfluxDB OSS 监控仪表板 或 InfluxDB 企业版监控仪表板 来可视化 InfluxDB _internal
度量。
InfluxDB 内部度量字段
ae(仅企业版)
cluster(仅企业版)
hh(仅企业版)
hh_database (仅企业版)
hh_node (仅企业版)
hh_processor (仅企业版)
rpc (仅企业版)
- cacheCompactionDuration
- cacheCompactionErr
- cacheCompactions
- cacheCompactionsActive
- tsmFullCompactionDuration
- tsmFullCompactionErr
- tsmFullCompactionQueue
- tsmFullCompactions
- tsmFullCompactionsActive
- tsmLevel1CompactionDuration
- tsmLevel1CompactionErr
- tsmLevel1CompactionQueue
- tsmLevel1Compactions
- tsmLevel1CompactionsActive
- tsmLevel2CompactionDuration
- tsmLevel2CompactionErr
- tsmLevel2CompactionQueue
- tsmLevel2Compactions
- tsmLevel2CompactionsActive
- tsmLevel3CompactionDuration
- tsmLevel3CompactionErr
- tsmLevel3CompactionQueue
- tsmLevel3Compactions
- tsmLevel3CompactionsActive
- tsmOptimizeCompactionDuration
- tsmOptimizeCompactionErr
- tsmOptimizeCompactionQueue
- tsmOptimizeCompactions
- tsmOptimizeCompactionsActive
ae (仅企业版)
InfluxDB Enterprise集群中与抗熵(AE)引擎相关的度量统计。
bytesRx
数据节点接收的字节数。
errors
导致错误的抗熵作业总数。
jobs
数据节点执行作业的总数。
jobsActive
活动(当前正在执行)作业的数量。
cluster (仅企业版)
集群测量跟踪InfluxDB Enterprise中数据节点聚类特征的统计信息。系列上的标签指示统计信息的数据源。
copyShardReq
向另一个数据节点复制分片时发出的内部请求数量。
createIteratorReq
来自集群中其他数据节点的读请求数量。
expandSourcesReq
向该节点发送以查找与特定正则表达式匹配的测量的远程节点请求数量。表示在另一个数据节点上启动的regex SELECT操作,然后该节点向该节点发送内部请求。目前没有统计跟踪在特定节点上启动了多少个使用正则表达式而不是固定测量的查询。
fieldDimensionsReq
对数据节点上测量的字段和关联类型以及标签键信息请求的远程节点请求数量。
iteratorCostReq
迭代器成本的内部请求数量。
openConnections
跟踪数据节点处理的打开连接数(包括计算单yamux连接上复用的逻辑连接数量)。
removeShardReq
从该数据节点删除分片发出的内部请求数量。仅通过使用influxd-ctl remove shard
命令来独家增加。
writeShardFail
远程节点失败的内部写请求数量总和。它是InfluxDB分片统计writeReqErr
的表亲。Node A接收到通过HTTP发送的写请求。Node A本地没有分片,因此它创建了一个内部请求到Node B,指示要写入的内容和哪个分片。如果Node B看到请求并且有任何问题,Node B会增加自己的writeShardFail
。根据问题所在,在大多数情况下,Node B也会增加从InfluxDB OSS继承的writeReqErr
统计。如果Node A本地有分片,则不会有向远程节点写入数据的内部请求,因此writeShardFail
不会增加。
writeShardPointsReq
任何远程节点的每个内部写请求中的点的总数,无论是否成功。
writeShardReq
无论是否成功,来自远程数据节点的内部写请求数量。
cq
与连续查询(CQs)相关的测量统计信息。
queryFail
执行但失败的总连续查询数。
queryOk
成功执行的总连续查询数。请注意,在某些情况下,此值可能会增加,例如,由于重采样间隔配置错误,CQ启动但实际上并没有运行。
database
numMeasurements
指定数据库中的测量数量。
系列基数值是估计值,基于HyperLogLog++ (HLL++)。当有数千或数百万个测量或系列时,估计值返回的数字应在一个相对较小的误差范围内是准确的。
numSeries
指定数据库的当前系列基数。系列基数值是估计值,基于HyperLogLog++ (HLL++)。当有数千或数百万个测量或系列时,估计值返回的数字应在一个相对较小的误差范围内是准确的。
hh(仅限企业版)
hh
测量统计跟踪InfluxDB企业中产生新提示式提交(HH)处理器的结果事件。`hh`测量有一个额外的标签
path
- 磁盘上持久化提示式提交队列的路径。
writeShardReq
由提示式交出引擎处理的远程节点初始写请求的数量。后续发送到该节点的写请求,如果目的地是同一远程节点,则不会增加此统计。无论上次进程存活时的状态如何,在 influxd
重启后,此统计将重置为 0
。当HH“超级系统”被指令为将节点的一个写操作入队,且目标节点的“子系统”不存在并需要创建,并且“子系统”创建成功时,该统计会增加。如果在进程启动时远程节点上存在HH文件,则增加此统计的分支将不会被执行。
writeShardReqPoints
对远程节点提示式交出引擎的初始请求中每个点的写请求数量。
hh_database(仅企业版)
该 hh_database
测量值聚合了单个数据库和节点的所有提示式交出队列。这允许对单个数据库到目标节点的总队列大小进行准确的报告。
该 hh_database
测量值有两个额外的标签
db
— 数据库名称node
— 节点标识符
bytesRead
从提示式交出队列读取并发送到目标数据节点的点的字节数。注意,如果数据节点进程在HH队列中存在数据时重启,则 bytesRead
可能会稳定到一个大于 bytesWritten
的数字。提示式交出写入以由 retry-concurrency
设置确定的并发批次发生。如果单个写入成功,则该指标会增加。如果整个批次中的任何写入失败,则整个批次被视为失败,并且批次的每个部分将稍后重试。这不是此统计的预期行为。另一种情况下,bytesRead
可能更大的情况是在进程重启后。假设HH已正确耗尽,并且没有未来的写入需要HH,则统计将显示1000字节读取和0字节写入。
即使在HH队列非空的情况下,在崩溃或重启后也会重置为0。
bytesWritten
写入提示式交出队列的总字节数。请注意,此统计只跟踪当前进程生命周期中写入的字节。在重启或崩溃后,此统计将重置为0,即使提示式交出队列不为空。
queueBytes
提示式交出队列中剩余的总字节数。此统计应准确绝对地跟踪等待发送到远程节点的编码数据的字节数。
与 bytesRead
和 bytesWritten
不同(见 #780),此统计应在重启后保持正确。
queueDepth
提示式交出队列中的总段数。HH队列是一系列10MB的“段”文件。这是一个粗粒度的统计,大致表示为远程节点排队的数据量。 queueDepth
值可以让你了解队列何时增长或缩小。
writeBlocked
由于并发HH请求的数量超过限制而被阻塞的写入数量。
writeDropped
由于写入看起来已损坏而从HH队列中丢弃的写入数量。
writeNodeReq
成功将批次写入目标节点的总写入请求数量。
writeNodeReqFail
将数据批次从提示式交出队列写入目标节点失败的总写入请求数量。
writeNodeReqPoints
从HH队列到目标节点成功写入的总点数。
writeShardReq
已入队到提示式交出队列的总写批次请求数量。
writeShardReqPoints
已入队到提示式交出队列的总点数。
hh_node(仅企业版)
自InfluxDB Enterprise 1.9.8版本起可用。《code>hh_node度量存储特定节点所有队列(分片)的提示式迁移统计信息。
《code>hh_node度量有一个额外的标签
node
- 记录的指标的目标节点。
queueTotalSize
单个节点所有提示式迁移队列占用的磁盘空间总字节数。跟踪特定节点所有提示式迁移队列的磁盘使用情况(不是等待处理的字节数)。由于提示式迁移队列的实现,字节处理和从磁盘删除之间的延迟。
queueTotalSize
用于确定节点的提示式迁移队列达到在提示式迁移最大大小参数中配置的最大大小。
hh_processor(仅企业版)
《code>hh_processor度量存储单个队列(分片)的统计信息。在InfluxDB Enterprise中,每个数据节点都有一个提示式迁移处理器。
《code>hh_processor度量有两个额外的标签
node
- 记录的指标的目标节点。path
- 磁盘上持久化提示式提交队列的路径。
针对主机的《code>hh_processor统计信息仅对当前进程的生命周期准确。如果进程崩溃或重启,即使HH队列不为空,bytesRead
和bytesWritten
也会重置为零。
bytesRead
从提示式交出队列读取并发送到目标数据节点的点的字节数。注意,如果数据节点进程在HH队列中存在数据时重启,则 bytesRead
可能会稳定到一个大于 bytesWritten
的数字。提示式交出写入以由 retry-concurrency
设置确定的并发批次发生。如果单个写入成功,则该指标会增加。如果整个批次中的任何写入失败,则整个批次被视为失败,并且批次的每个部分将稍后重试。这不是此统计的预期行为。另一种情况下,bytesRead
可能更大的情况是在进程重启后。假设HH已正确耗尽,并且没有未来的写入需要HH,则统计将显示1000字节读取和0字节写入。
即使在HH队列非空的情况下,在崩溃或重启后也会重置为0。
bytesWritten
写入提示式交出队列的总字节数。请注意,此统计只跟踪当前进程生命周期中写入的字节。在重启或崩溃后,此统计将重置为0,即使提示式交出队列不为空。
queueBytes
提示式交出队列中剩余的总字节数。此统计应准确绝对地跟踪等待发送到远程节点的编码数据的字节数。
与 bytesRead
和 bytesWritten
不同(见 #780),此统计应在重启后保持正确。
queueDepth
提示式交出队列中的总段数。HH队列是一系列10MB的“段”文件。这是一个粗粒度的统计,大致表示为远程节点排队的数据量。 queueDepth
值可以让你了解队列何时增长或缩小。
writeBlocked
由于并发HH请求的数量超过限制而被阻塞的写入数量。
writeDropped
由于写入看起来已损坏而从HH队列中丢弃的写入数量。
writeNodeReq
成功将批次写入目标节点的总写入请求数量。
writeNodeReqFail
将数据批次从提示式交出队列写入目标节点失败的总写入请求数量。
writeNodeReqPoints
从HH队列到目标节点成功写入的总点数。
writeShardReq
已入队到提示式交出队列的总写批次请求数量。
writeShardReqPoints
已入队到提示式交出队列的总点数。
httpd
《code>httpd度量存储与InfluxDB HTTP服务器相关的字段。
authFail
由于需要认证但未提供或认证错误而中止的HTTP请求数量。
clientError
由于客户端错误导致的HTTP响应数,具有4XX
HTTP状态码。
fluxQueryReq
服务的Flux查询请求数量。
fluxQueryReqDurationNs
执行Flux查询请求花费的时间(wall-time),以纳秒为单位。
pingReq
InfluxDB HTTP服务器服务/ping
HTTP端点的次数。
pointsWrittenDropped
存储引擎丢弃的点数。
pointsWrittenFail
由HTTP /write
端点接受,但无法持久化的点数。
pointsWrittenOK
成功接受并持久化到HTTP /write
端点的点数。
promReadReq
对Prometheus /read
端点的读请求数量。
promWriteReq
对Prometheus /write
端点的写请求数量。
queryReq
查询请求数量。
queryReqDurationNs
查询请求的总持续时间,以纳秒(ns)为单位。
queryRespBytes
查询响应中返回的字节总数。
recoveredPanics
HTTP处理程序恢复的恐慌总数。
req
服务HTTP请求的总数。
reqActive
当前活动请求数量。
reqDurationNs
在HTTP请求中花费的时间(wall time),以纳秒为单位。
serverError
由于服务器错误而导致的HTTP响应数。
statusReq
使用HTTP /status
端点服务的状态请求数量。
valuesWrittenOK
成功接受并持久化到HTTP /write
端点的值(字段)数。
writeReq
使用HTTP /write
端点服务的写请求数量。
writeReqActive
当前活动写请求数量。
writeReqBytes
使用HTTP /write
端点接收的线协议数据的总字节数。
writeReqDurationNs
使用/write
HTTP端点服务的写请求的持续时间(wall time),以纳秒为单位。
queryExecutor
与InfluxDB引擎查询执行器使用相关的《code>queryExecutor统计信息。
queriesActive
当前正在处理的活动查询数。
queriesExecuted
执行的查询数(启动)。
queriesFinished
已执行完成的查询数。
queryDurationNs
每次执行查询的持续时间(wall time),以纳秒为单位。如果一个查询从开始到完成用了1000纳秒,另一个查询从开始到完成用了500纳秒并且在前一个查询完成之前运行,统计信息会增加1500。
recoveredPanics
查询执行器恢复的恐慌数。
rpc (仅企业版)
《code>rpc《/code>测量统计数据与InfluxDB企业集群中RPC调用的使用相关。
idleStreams
所有活动TCP连接中空闲的复用流的数量。
liveConnections
当前与其他节点建立的活动TCP连接数量。
liveStreams
当前所有活动TCP连接中的复用流数量。
rpcCalls
对远程节点发出的RPC调用总数。
rpcFailures
RPC调用失败总数,这些调用没有恢复。
rpcReadBytes
读取的RPC字节数总数。
rpcRetries
至少重试一次的RPC调用总数。
rpcWriteBytes
写入的RPC字节数总数。
singleUse
使用Dial打开的单次使用连接总数。
singleUseOpen
当前打开的单次使用连接数量。
totalConnections
建立的TCP连接总数。
totalStreams
建立的流总数。
runtime
《code>runtime《/code>测量统计数据包括MemStats记录的子集,统计Go内存分配器的信息。《code>runtime《/code>统计数据有助于确定较差的内存分配策略和相关性能问题。
《a href="https://golang.ac.cn/pkg/runtime/">Go运行时包包含与Go运行时系统交互的操作,包括用于控制goroutines的函数。它还包括由《a href="https://golang.ac.cn/pkg/reflect/">Go反射包使用的低级类型信息。
Alloc
堆对象分配的字节数。
Frees
已释放(活动)堆对象的累积数量。
HeapAlloc
所有堆对象的大小(以字节为单位)。
HeapIdle
空闲堆对象字节数。
HeapInUse
使用中的跨度字节数。
HeapObjects
分配的堆对象数量。
HeapReleased
返回给OS的物理内存字节数。
HeapSys
从OS获得的堆内存字节数。衡量为堆保留的虚拟地址空间。
Lookups
运行时执行的指针查找次数。主要用于调试运行时内部。
Mallocs
分配的堆对象总数。活动对象的总数是Frees。
NumGC
完成的GC(垃圾回收)周期数。
NumGoroutine
Go协程的总数。
PauseTotalNs
总GC(垃圾回收)暂停时间的总和,以纳秒为单位。
Sys
从OS获得的内存字节数总数。衡量Go运行时为堆、堆栈和其他内部数据结构保留的虚拟地址空间。
TotalAlloc
为堆对象分配的字节数。当对象释放时,此统计信息不会减少。
shard
《code>shard《/code>测量统计数据与InfluxDB OSS和InfluxDB企业中的碎片工作相关。
diskBytes
碎片的大小(以字节为单位),包括数据目录和WAL目录的大小。
fieldsCreate
创建的字段数量。
indexType
索引类型inmem
或tsi1
。
seriesCreate
创建的系列数量。
writeBytes
写入碎片的字节数。
writePointsDropped
由于写入而丢弃的写入点请求的数量。当从写入中丢弃点时,http.pointsWrittentDropped
增加(见#780)。
writePointsErr
由于错误而无法写入的写入点请求的数量。
writePointsOk
成功写入的点数量。
writeReq
写入请求的总数。
writeReqErr
由于错误而失败的写入请求总数。
writeReqOk
成功的写入请求总数。
subscriber
《code>subscriber《/code>测量统计数据与InfluxDB订阅的使用相关。
createFailures
创建失败的订阅数量。
pointsWritten
成功写入订阅者的点的总数。
writeFailures
写入订阅者失败的总批次数。
tsm1_cache
《code>tsm1_cache《/code>测量统计数据与TSM缓存的使用相关。以下查询示例计算与TSM缓存相关的各种有用测量。
SELECT
max(cacheAgeMs) / 1000.000 AS CacheAgeSeconds,
max(memBytes) AS MaxMemBytes, max(diskBytes) AS MaxDiskBytes,
max(snapshotCount) AS MaxSnapShotCount,
(last(cachedBytes) - first(cachedBytes)) / (last(WALCompactionTimeMs) - first(WALCompactionTimeMs)) - 1000.000 AS CompactedBytesPerSecond,
last(cachedBytes) AS CachedBytes,
(last(cachedBytes) - first(cachedBytes))/300 as CacheThroughputBytesPerSecond
FROM _internal.monitor.tsm1_cache
WHERE time > now() - 1h
GROUP BY time(5m), path
cacheAgeMs
自上次在样本时间快照缓存以来经过的毫秒数。此统计信息指示缓存的工作量。大数字表示缓存相对于写入是空闲的。
cachedBytes
已写入快照的总字节数。此统计信息在创建快照时更新。此统计信息的目的是允许计算任意两个时间实例之间的缓存吞吐量。此统计信息的两个样本之间的差值与样本间隔的比率是缓存吞吐量的度量(更准确地说,是数据快照的速率)。当与 diskBytes
和 memBytes
统计信息结合使用时,还可以用来计算数据进入缓存和从缓存中清除的速率。如果输入速率超过了一段时间内的输出速率,则需要解决的问题。
diskBytes
磁盘快照的大小(以字节为单位)。
memBytes
内存缓存的大小(以字节为单位)。
snapshotCount
当前活动快照的级别(数字)。在健康的系统中,此数字应在0到1之间。可能遇到临时写入错误系统的此数字可能会上升。
WALCompactionTimeMs
在压缩快照时保持提交锁的时间(以毫秒为单位)。表达式 (cachedBytes - diskBytes) / WALCompactionTime
提供了WAL日志提交到TSM文件速度的指示。区间开始和结束“WALCompactionTime”值之间的差值与区间长度的比率提供了对最大缓存吞吐量消耗量的指示。
writeDropped
由于超时而丢弃的写入总数。
writeErr
失败的写入总数。
writeOk
成功的写入总数。
tsm1_engine
与压缩块一起使用的TSM存储引擎的 tsm1_engine
测量统计信息。
cacheCompactionDuration
在缓存压缩中花费的持续时间(墙时间),以纳秒为单位。
cacheCompactionErr
由于错误而失败的缓存压缩次数。
cacheCompactions
已运行的缓存压缩总次数。
cacheCompactionsActive
当前正在运行的缓存压缩次数。
tsmFullCompactionDuration
在完全压缩中花费的持续时间(墙时间),以纳秒为单位。
tsmFullCompactionErr
由于错误而失败的TSM完全压缩总次数。
tsmFullCompactionQueue
当前挂起的TSM完全压缩数。
tsmFullCompactions
已运行的TSM完全压缩总次数。
tsmFullCompactionsActive
当前正在运行的TSM完全压缩数。
tsmLevel1CompactionDuration
在TSM级别1压缩中花费的持续时间(墙时间),以纳秒为单位。
tsmLevel1CompactionErr
由于错误而失败的TSM级别1压缩总次数。
tsmLevel1CompactionQueue
当前挂起的TSM级别1压缩数。
tsmLevel1Compactions
已运行的TSM级别1压缩总次数。
tsmLevel1CompactionsActive
当前正在运行的TSM级别1压缩数。
tsmLevel2CompactionDuration
在TSM级别2压缩中花费的持续时间(墙时间),以纳秒为单位。
tsmLevel2CompactionErr
由于错误而失败的TSM级别2压缩次数。
tsmLevel2CompactionQueue
当前挂起的TSM级别2压缩数。
tsmLevel2Compactions
已运行的TSM级别2压缩总次数。
tsmLevel2CompactionsActive
当前正在运行的TSM级别2压缩数。
tsmLevel3CompactionDuration
在TSM级别3压缩中花费的持续时间(墙时间),以纳秒为单位。
tsmLevel3CompactionErr
由于错误而失败的TSM级别3压缩次数。
tsmLevel3CompactionQueue
当前挂起的TSM级别3压缩数。
tsmLevel3Compactions
已运行的TSM级别3压缩总次数。
tsmLevel3CompactionsActive
当前正在运行的TSM级别3压缩数。
tsmOptimizeCompactionDuration
在TSM优化压缩期间花费的持续时间(墙时间),以纳秒为单位。
tsmOptimizeCompactionErr
由于错误而失败的TSM优化压缩总次数。
tsmOptimizeCompactionQueue
当前待处理的TSM优化压缩次数。
tsmOptimizeCompactions
已运行过的TSM优化压缩总数。
tsmOptimizeCompactionsActive
当前正在运行的TSM优化压缩次数。
tsm1_filestore
tsm1_filestore
测量统计数据与TSM文件存储的使用相关。
diskBytes
TSM文件存储使用的磁盘空间大小(以字节为单位)。
numFiles
TSM文件存储中的文件总数。
tsm1_wal
tsm1_wal
测量统计数据与TSM写入前日志(WAL)的使用相关。
currentSegmentDiskBytes
当前段磁盘的大小(以字节为单位)。
oldSegmentDiskBytes
段磁盘的大小(以字节为单位)。
writeErr
由于错误而失败的写入次数。
writeOK
成功的写入次数。
write
write
测量统计数据是关于数据节点的写入,无论写入来源。
pointReq
请求写入此数据节点的每个点的总数。入站写入在到达此点之前必须通过几个检查(点解析正确、提供正确的身份验证等)。在这些检查之后,无论来源(HTTP、UDP、_internal
统计、OpenTSDB插件等),此统计信息都应该增加。
pointReqHH(仅限企业版)
此节点收到的写入点的总数,然后入队到目标节点的hinted handoff。
pointReqLocal(仅限企业版)
尝试写入同一(本地)节点上的分片上的点请求总数。
pointReqRemote(仅限企业版)
此节点收到的写入点的总数,但需要转发到远程节点上的分片。在远程写入尝试之前立即增加pointReqRemote
统计信息,这仅在不存在该节点的HH时发生。然后如果写入尝试失败,我们再次检查HH是否存在,如果存在,则将点添加到HH。
此统计信息不区分直接写入目标节点或将入队到目标节点hinted handoff队列的请求。
pointsWrittenOK
写入HTTP /write
端点并成功持久化的点的数量。
req
请求写入此节点的点的批次数总数。
subWriteDrop
未能发送到订阅分配器的点的批次数总数。
subWriteOk
成功发送到订阅分配器的点的批次数总数。
valuesWrittenOK
写入HTTP /write
端点并成功持久化的值(字段)数量。
writeDrop
由于时间戳不匹配任何现有保留策略而丢弃的点的写入请求总数。
writeError
由于无法写入本地或远程分片而未能成功写入的点的批次数总数。
writeOk
以请求的一致性级别写入的点的批次数总数。
writePartial(仅限企业版)
至少写入一个节点但未达到请求一致性级别的点的批次数总数。
writeTimeout
在默认写入超时时间内未能完成的写入请求总数。这可能表明远程节点到远程节点的磁盘I/O严重减少或竞争激烈,或者网络拥塞。对于通过HTTP或其他输入方法传入的单个写入请求,如果整个批次在超时期内未全部写入,则无论批内的点是否可以本地或远程写入,writeTimeout
都将增加1。
这个页面有帮助吗?
感谢您的反馈!