Stats
OpenTSDB 提供了许多有关其性能的 Metrics,可以通过各种 API 端点进行访问。可通过 GUI 的“统计”选项卡,位于/api/stats
的 Http API 或位于/stats
的旧版 API 访问主要统计信息。 Telnet 样式 API 还支持“ stats”命令,用于通过 CLI 进行提取。这些可以很容易地以您希望的任何时间间隔立即发布回 OpenTSDB。
可用的其他统计信息包括 JVM 信息,存储详细信息(例如,每个区域 Client 端的 HBase 统计信息)和已执行的查询详细信息。有关其他端点的更多详细信息,请参见/api/stats。
来自主要统计信息终结点的所有度量标准都包含一个host
标记,该标记包含运行 TSD 的主机的名称。如果设置了tsd.stats.canonical
配置标志,它将更改为fqdn
,TSD 将尝试解析其主机名以返回完全限定的域名。当前所有统计信息都是整数值。每个请求统计信息都会实时获取统计信息,因此时间戳将反映 TSD 主机上的当前时间。
Note
/api/stats
端点是执行 TSD 健康检查的好地方,因为它将执行对存储的查询以获取 UID 统计信息。如果 TSD 无法到达后备存储,则 API 将返回异常。
Metric | Tags | Type | Description | |
---|---|---|---|---|
tsd.connectionmgr.connections | type=open | Gauge | 当前打开的 Telnet 和 HTTP 连接的数量。 | |
tsd.connectionmgr.connections | type=total | Counter | 与 OpenTSDB 的连接总数。这包括所有 Telnet 和 HTTP 连接。 | |
tsd.connectionmgr.exceptions | type=closed | Counter | 写入已关闭的通道导致的异常总数。如果查询花费的时间太长,Client 端会正常关闭其连接,并且 TSD 尝试写入套接字,则可能会发生这种情况。这包括所有 Telnet 和 HTTP 连接。 | |
tsd.connectionmgr.exceptions | type=reset | Counter | Client 端在不关闭套接字的情况下断开连接而导致的异常总数。这包括所有 Telnet 和 HTTP 连接。 | |
tsd.connectionmgr.exceptions | type=timeout | Counter | 由套接字不活动超时引起的总异常,即 TSD 在超时时间内既未写入套接字也未从套接字接收数据。这包括所有 Telnet 和 HTTP 连接。 | |
tsd.connectionmgr.exceptions | type=unknown | Counter | 原因未知的总异常。检查日志以获取详细信息。这包括所有 Telnet 和 HTTP 连接。 | |
tsd.rpc.received | type=telnet | Counter | 收到的 telnet RPC 请求总数 | |
tsd.rpc.received | type=http | Counter | 收到的 Http RPC 请求总数 | |
tsd.rpc.received | type=http_plugin | Counter | 由插件而不是内置 API 接收和处理的 Http RPC 请求总数。 (v2.2) | |
tsd.rpc.exceptions | Counter | RPC 调用期间捕获的异常总数。这些可能是用户错误或错误。 | ||
tsd.http.latency_50pct | type=all | Gauge | 第 50 个百分位数情况下响应 HTTP 请求所花费的时间(以毫秒为单位) | |
tsd.http.latency_75pct | type=all | Gauge | 在第 75 个百分位数的情况下,响应 HTTP 请求所花费的时间(以毫秒为单位) | |
tsd.http.latency_90pct | type=all | Gauge | 在 90%的情况下,响应 HTTP 请求所花费的时间(以毫秒为单位) | |
tsd.http.latency_95pct | type=all | Gauge | 在 95%的情况下,响应 HTTP 请求所花费的时间(以毫秒为单位) | |
tsd.http.latency_50pct | type=graph | Gauge | 第 50 个百分位情况下的图形请求响应时间(以毫秒为单位) | |
tsd.http.latency_75pct | type=graph | Gauge | 第 75 个百分位案例的图形请求时间(以毫秒为单位) | |
tsd.http.latency_90pct | type=graph | Gauge | 第 90 个百分位情况下的图形请求响应时间(以毫秒为单位) | |
tsd.http.latency_95pct | type=graph | Gauge | 第 95 个百分位情况下的图形请求响应时间(以毫秒为单位) | |
tsd.http.latency_50pct | type=gnuplot | Gauge | 生成第 50 个百分位数情况的 GnuPlot 图所花费的时间(以毫秒为单位) | |
tsd.http.latency_75pct | type=gnuplot | Gauge | 生成第 75 个百分位情况下的 GnuPlot 图所花费的时间(以毫秒为单位) | |
tsd.http.latency_90pct | type=gnuplot | Gauge | 生成第 90 个百分位数情况的 GnuPlot 图所花费的时间(以毫秒为单位) | |
tsd.http.latency_95pct | type=gnuplot | Gauge | 生成第 95 个百分位数情况的 GnuPlot 图所花费的时间(以毫秒为单位) | |
tsd.http.graph.requests | cache=disk | Counter | 磁盘缓存满足的图形请求总数 | |
tsd.http.graph.requests | cache=miss | Counter | 未缓存且需要从存储中提取的图请求总数 | |
tsd.http.query.invalid_requests | Counter | 由于用户错误(例如使用错误的 HTTP 方法,缺少参数或使用没有 UID 的 Metrics 和标签)而导致发送到/ api/query 端点的数据查询总数无效。 (v2.2) | ||
tsd.http.query.exceptions | Counter | 发送到/ api/query 端点的数据查询总数由于用户 Importing 错误或潜在错误而引发异常。有关详细信息,请参见日志。 (v2.2) | ||
tsd.http.query.success | Counter | 发送到/ api/query 端点的成功完成的数据查询总数。请注意,这些可能已返回空结果。 (v2.2) | ||
tsd.rpc.received | type=put | Counter | put 个写入数据点的请求总数 | |
tsd.rpc.errors | type=hbase_errors | Counter | 由 HBase 异常引起的 RPC 错误总数 | |
tsd.rpc.errors | type=invalid_values | Counter | RPC 错误总数导致用户请求中的put 值无效,例如字符串而不是数字 | |
tsd.rpc.errors | type=illegal_arguments | Counter | 由用户的错误数据导致的 RPC 错误总数 | |
tsd.rpc.errors | type=socket_writes_blocked | Counter | 由于缓冲区已满,TSD 无法写回 telnet 套接字的总次数。如果发生这种情况,则可能意味着发生了许多异常。 (v2.2) | |
tsd.rpc.errors | type=unknown_metrics | Counter | 尝试对未分配 UID 的 Metricsput 造成的 RPC 错误总数。仅在禁用“自动度量标准”的情况下递增。 | |
tsd.uid.cache-hit | kind=metrics | Counter | 度量标准 UID 的成功缓存查找总数 | |
tsd.uid.cache-miss | kind=metrics | Counter | 需要调用存储的度量标准 UID 的失败的高速缓存查找总数 | |
tsd.uid.cache-size | kind=metrics | Gauge | 当前缓存的 MetricsUID 的数量 | |
tsd.uid.ids-used | kind=metrics | Counter | 当前已分配的度量标准 UID 数。 (注意:如果启用了随机度量 UID 生成,则 ids-used 将始终为 0) | |
tsd.uid.ids-available | kind=metrics | Counter | 当前可用度量标准 UID 的数量,分配的 UID 会减少。 (注意:如果启用了随机度量 UID 生成,则 ids-used 将始终为 0) | |
tsd.uid.random-collisions | kind=metrics | Counter | 度量标准 UID 由于与现有 UID 发生冲突而尝试重新分配的次数。 (v2.2) | |
tsd.uid.cache-hit | kind=tagk | Counter | Tagk UID 成功缓存查找的总数 | |
tsd.uid.cache-miss | kind=tagk | Counter | 需要调用存储的 Tagk UID 的失败高速缓存查找总数 | |
tsd.uid.cache-size | kind=tagk | Gauge | 当前缓存的 tagk UID 的数量 | |
tsd.uid.ids-used | kind=tagk | Counter | 当前分配的 tagk UID 数 | |
tsd.uid.ids-available | kind=tagk | Counter | 当前可用的 tagk UID 的数量,随着 UID 的增加而减少。 | |
tsd.uid.cache-hit | kind=tagv | Counter | tagv UID 的成功高速缓存查找总数 | |
tsd.uid.cache-miss | kind=tagv | Counter | 需要调用存储的 tagv UID 的失败高速缓存查找总数 | |
tsd.uid.cache-size | kind=tagv | Gauge | 当前缓存的 tagv UID 的数量 | |
tsd.uid.ids-used | kind=tagv | Counter | 当前已分配标签 v UID 的数量 | |
tsd.uid.ids-available | kind=tagv | Counter | 当前可用 tagv UID 的数量,分配的 UID 减少。 | |
tsd.jvm.ramfree | Gauge | JVM 的 Runtime.freeMemory()报告为空闲的字节数 | ||
tsd.jvm.ramused | Gauge | 报告的 JVM 的 Runtime.totalMemory()使用的字节数 | ||
tsd.hbase.latency_50pct | method=put | Gauge | 对第 50 个百分位数的案例执行看跌期权所需的时间(以毫秒为单位) | |
tsd.hbase.latency_75pct | method=put | Gauge | 对第 75 个百分位数的案例执行看跌期权所需的时间(以毫秒为单位) | |
tsd.hbase.latency_90pct | method=put | Gauge | 对第 90 个百分位数的案例执行看跌期权所需的时间(以毫秒为单位) | |
tsd.hbase.latency_95pct | method=put | Gauge | 对第 95 个百分位数的案例执行看跌期权所需的时间(以毫秒为单位) | |
tsd.hbase.latency_50pct | method=scan | Gauge | 对第 50 个百分位案例执行一次 Scan 调用所花费的时间(以毫秒为单位) | |
tsd.hbase.latency_75pct | method=scan | Gauge | 对第 75 个百分位数的案例执行一次 Scan 调用所花费的时间(以毫秒为单位) | |
tsd.hbase.latency_90pct | method=scan | Gauge | 对第 90 个百分位数的案例执行一次 Scan 调用所花费的时间(以毫秒为单位) | |
tsd.hbase.latency_95pct | method=scan | Gauge | 对第 95 个百分位数的案例执行一次 Scan 调用所花费的时间(以毫秒为单位) | |
tsd.hbase.root_lookups | Counter | Client 端执行的根查询总数 | ||
tsd.hbase.meta_lookups | type=uncontended | Counter | Client 端执行的无竞争元表查找总数 | |
tsd.hbase.meta_lookups | type=contended | Counter | Client 端执行的有争议的元表查找的总数 | |
tsd.hbase.rpcs | type=increment | Counter | Client 端执行的增量请求总数 | |
tsd.hbase.rpcs | type=delete | Counter | Client 端执行的删除请求总数 | |
tsd.hbase.rpcs | type=get | Counter | Client 端执行的 Get 请求总数 | |
tsd.hbase.rpcs | type=put | Counter | Client 端执行的 Put 请求总数 | |
tsd.hbase.rpcs | type=rowLock | Counter | Client 端执行的行锁定请求总数 | |
tsd.hbase.rpcs | type=openScanner | Counter | Management 员执行的 Open Scanner 请求总数 | |
client | ||||
tsd.hbase.rpcs | type = scan | Counter | Client 端执行的扫描请求总数。这些指示 scan-> next()调用。 | |
tsd.hbase.rpcs.batched | 计数器 | Client 端发送的批处理请求总数 | ||
tsd.hbase.flushes | 计数器 | Client 端执行的刷新总数 | ||
tsd.hbase.connections.created | 计数器 | Client 端到区域服务器的连接总数 | ||
tsd.hbase.nsre | 计数器 | 未捕获任何此类区域异常的总数。当区域服务器崩溃,脱机或区域分裂(?) | 时,可能会发生这些情况 | |
tsd.hbase.nsre.rpcs_delayed | Counter | 由于 NSRE 而延迟并随后成功执行的呼叫总数 | ||
tsd.hbase.region_clients.open | 计数器 | 自 TSD 启动以来与区域服务器构建的连接总数。如果此数字攀升,则区域服务器可能崩溃并重新启动。 (v2.2) | ||
tsd.hbase.region_clients.idle_closed | 计数器 | 到区域服务器由于空闲连接而关闭的连接总数。这表示在一段时间内未从服务器读取任何内容或向服务器写入任何内容,并且 TSD 将在需要时重新连接。 (v2.2) | ||
tsd.compaction.count | type = trivial | Counter | TSD 执行的琐碎压缩总数 | |
tsd.compaction.count | type = complex | Counter | TSD 执行的复杂压实总数 | |
tsd.compaction.duplicates | type = identical | Counter | 在压缩期间发现的同时重复且具有相同值的数据点总数。 (v2.2) | |
tsd.compaction.duplicates | type = variant | Counter | 在压缩期间发现的同时重复但值不同的数据点总数。 (v2.2) | |
tsd.compaction.queue.size | Gauge | 队列中当前有多少行数据要压缩。 (v2.2) | ||
tsd.compaction.errors | type = read | Counter | 由于某种错误而无法从存储读取的总行数。 (v2.2) | |
tsd.compaction.errors | type = put | Counter | 由于某种错误而无法写入存储的总行数。 (v2.2) | |
tsd.compaction.errors | type = delete | Counter | 由于某种错误而无法从存储中删除旧的非压缩数据的总行数。 (v2.2) | |
tsd.compaction.writes | type = read | Counter | 回写到压缩值存储区的总数。 (v2.2) | |
tsd.compaction.deletes | type = read | Counter | 对存储执行的删除调用总数,以删除已压缩的旧数据。 (v2.2) |