Stats 统计
OpenTSDB offers a number of metrics about its performance, accessible via various API endpoints. The main stats are accessible from the GUI via the "Stats" tab, from the Http API at /api/stats
or the legacy API at /stats
. The Telnet style API also supports the "stats" command for fetching over CLI. These can easily be published right back into OpenTSDB at any interval you like.
OpenTSDB提供了许多有关其性能的指标,可以通过各种API端点进行访问。可以通过“stats”选项卡从GUI、http api at/api/stats或传统api at/stats访问主要统计信息。telnet风格的api还支持通过cli获取的“stats”命令。这些可以很容易地以您喜欢的任何时间间隔发布返回OpenTSDB。
Additional stats available include JVM information, storage details (e.g. per-region-client HBase stats) and executed query details. See /api/stats for more details about the other endpoints.
其他可用的统计信息包括JVM信息、存储详细信息(例如每个区域的客户机HBase统计信息)和执行的查询详细信息。有关其他端点的详细信息,请参阅/api/stats。
All metrics from the main stats endpoint include a host
tag that includes the name of the host where the TSD is running. If the tsd.stats.canonical
configuration flag is set, this will change to fqdn
and the TSD will try to resolve its host name to return the fully qualified domain name. Currently all stats are integer values. Each request for stats will fetch statistics in real time so the timestamp will reflect the current time on the TSD host.
来自主统计端点的所有指标都包括一个主机标记,该标记包含运行TSD的主机的名称。如果设置了tsd.stats.canonical配置标志,这将更改为fqdn,并且tsd将尝试解析其主机名以返回完全限定的域名。目前所有的统计数据都是整数值。每个统计请求将实时获取统计信息,因此时间戳将反映TSD主机上的当前时间。
Note 注释
The /api/stats
endpoint is a good place to execute a health check for your TSD as it will execute a query to storage for fetching UID stats. If the TSD is unable to reach the backing store, the API will return an exception.
/api/stats端点是为TSD执行运行状况检查的好地方,因为它将执行到存储区的查询以获取uid状态。如果TSD无法到达备份存储,API将返回异常。
【下面这个表格就是openTSDB系统自带的metrics信息】
Metric | Tags | Type | Description |
---|---|---|---|
tsd.connectionmgr.connections | type=open | Gauge 计量器 | The number of currently open Telnet and HTTP connections.
当前打开的telnet和http连接数。 |
tsd.connectionmgr.connections | type=total | Counter | The total number of connections made to OpenTSDB. This includes all Telnet and HTTP connections.
OpenTSDB的连接总数。这包括所有telnet和http连接。 |
tsd.connectionmgr.exceptions | type=closed | Counter | The total number of exceptions caused by writes to a channel that was already closed. This can occur if a query takes too long, the client closes their connection gracefully, and the TSD attempts to write to the socket. This includes all Telnet and HTTP connections. 由于写入已关闭的通道而导致的异常总数。如果查询花费的时间太长,客户机正常关闭连接,并且TSD尝试写入套接字,则可能发生这种情况。这包括所有telnet和http连接。 |
tsd.connectionmgr.exceptions | type=reset | Counter | The total number of exceptions caused by a client disconnecting without closing the socket. This includes all Telnet and HTTP connections. 客户端在不关闭套接字的情况下断开连接而导致的异常总数。这包括所有telnet和http连接。 |
tsd.connectionmgr.exceptions | type=timeout | Counter | The total exceptions caused by a socket inactivity timeout, i.e. the TSD neither wrote nor received data from a socket within the timeout period. This includes all Telnet and HTTP connections. 套接字不活动超时导致的总异常,即TSD在超时期间既没有写入也没有从套接字接收数据。这包括所有telnet和http连接。 |
tsd.connectionmgr.exceptions | type=unknown | Counter | The total exceptions with an unknown cause. Check the logs for details. This includes all Telnet and HTTP connections. 具有未知原因的全部异常。查看日志了解详细信息。这包括所有telnet和http连接。 |
tsd.rpc.received | type=telnet | Counter | The total number of telnet RPC requests received 已接收的telnet rpc请求总数 |
tsd.rpc.received | type=http | Counter | The total number of Http RPC requests received 已接收的HTTP RPC请求总数 |
tsd.rpc.received | type=http_plugin | Counter | The total number of Http RPC requests received and handled by a plugin instead of the built-in APIs. (v2.2) 插件而不是内置API接收和处理的HTTP RPC请求总数。 |
tsd.rpc.exceptions | Counter | The total number exceptions caught during RPC calls. These may be user error or bugs. 在RPC调用期间捕获的异常总数。这些可能是用户错误或错误。 | |
tsd.http.latency_50pct | type=all | Gauge | The time it took, in milliseconds, to answer HTTP requests for the 50th percentile cases 回答第50个百分位数的HTTP请求所用的时间(以毫秒计) |
tsd.http.latency_75pct | type=all | Gauge | The time it took, in milliseconds, to answer HTTP requests for the 75th percentile cases 回答第75个百分位数的HTTP请求所用的时间(以毫秒计) |
tsd.http.latency_90pct | type=all | Gauge | The time it took, in milliseconds, to answer HTTP requests for the 90th percentile cases 回答第90个百分位数的HTTP请求所用的时间(以毫秒计) |
tsd.http.latency_95pct | type=all | Gauge | The time it took, in milliseconds, to answer HTTP requests for the 95th percentile cases 回答第95个百分位数的HTTP请求所用的时间(以毫秒计) |
tsd.http.latency_50pct | type=graph | Gauge | The time it took, in milliseconds, to answer graphing requests for the 50th percentile cases 回答第50个百分位数的图表请求所用的时间(以毫秒计) |
tsd.http.latency_75pct | type=graph | Gauge | The time it took, in milliseconds, to answer graphing requests for the 75th percentile cases 回答第75个百分位数的图表请求所用的时间(以毫秒计) |
tsd.http.latency_90pct | type=graph | Gauge | The time it took, in milliseconds, to answer graphing requests for the 90th percentile cases 回答第90个百分位数的图表请求所用的时间(以毫秒计) |
tsd.http.latency_95pct | type=graph | Gauge | The time it took, in milliseconds, to answer graphing requests for the 95th percentile cases 回答第95个百分位数的图表请求所用的时间(以毫秒计) |
tsd.http.latency_50pct | type=gnuplot | Gauge | The time it took, in milliseconds, to generate the GnuPlot graphs for the 50th percentile cases 生成第50个百分位数的gnuplot图所用的时间(以毫秒计) |
tsd.http.latency_75pct | type=gnuplot | Gauge | The time it took, in milliseconds, to generate the GnuPlot graphs for the 75th percentile cases 生成第75个百分位数的gnuplot图所用的时间(以毫秒计) |
tsd.http.latency_90pct | type=gnuplot | Gauge | The time it took, in milliseconds, to generate the GnuPlot graphs for the 90th percentile cases 生成第90个百分位数的gnuplot图所用的时间(以毫秒计) |
tsd.http.latency_95pct | type=gnuplot | Gauge | The time it took, in milliseconds, to generate the GnuPlot graphs for the 95th percentile cases 生成第95个百分位数的gnuplot图所用的时间(以毫秒计) |
tsd.http.graph.requests | cache=disk | Counter | The total number of graph requests satisfied from the disk cache 从磁盘缓存满 足的图形请求总数 |
tsd.http.graph.requests | cache=miss | Counter | The total number of graph requests that were not cached and required a fetch from storage 未缓存且需要从存储中提取的图形请求总数 |
tsd.http.query.invalid_requests | Counter | The total number data queries sent to the /api/query endpoint that were invalid due to user errors such as using the wrong HTTP method, missing parameters or using metrics and tags without UIDs. (v2.2) 由于用户错误(如使用错误的HTTP方法、缺少参数或使用不带uid的度量和标记)而发送到/api/查询终结点的无效数据查询总数。 | |
tsd.http.query.exceptions | Counter | The total number data queries sent to the /api/query endpoint that threw an exception due to bad user input or an underlying error. See logs for details. (v2.2) 发送到/api/查询终结点的、由于错误的用户输入或基础错误引发异常的数据查询总数。有关详细信息,请参阅日志。 | |
tsd.http.query.success | Counter | The total number data queries sent to the /api/query endpoint that completed successfully. Note that these may have returned an empty result. (v2.2) 发送到/api/查询终结点并成功完成的数据查询总数。请注意,这些可能返回了一个空结果。 | |
tsd.rpc.received | type=put | Counter | The total number of 写入数据点的输入请求总数 |
tsd.rpc.errors | type=hbase_errors | Counter | The total number of RPC errors caused by HBase exceptions 由HBase异常引起的RPC错误总数 |
tsd.rpc.errors | type=invalid_values | Counter | The total number of RPC errors caused invalid 从用户请求(如字符串而不是数字)引起的无效PUT值的RPC错误总数 |
tsd.rpc.errors | type=illegal_arguments | Counter | The total number of RPC errors caused by bad data from the user 由用户的错误数据导致的RPC错误总数 |
tsd.rpc.errors | type=socket_writes_blocked | Counter | The total number of times the TSD was unable to write back to the telnet socket due to a full buffer. If this happens it likely means a number of exceptions were happening. (v2.2) 由于缓冲区已满,TSD无法回写telnet套接字的总次数。如果发生这种情况,可能意味着发生了一些异常。 |
tsd.rpc.errors | type=unknown_metrics | Counter | The total number of RPC errors caused by attempts to 尝试在没有分配uid的情况下输入度量值而导致的RPC错误总数。仅当禁用自动度量时,此值才会增加。 |
tsd.uid.cache-hit | kind=metrics | Counter | The total number of successful cache lookups for metric UIDs 成功查找度量UID的缓存的总数 |
tsd.uid.cache-miss | kind=metrics | Counter | The total number of failed cache lookups for metric UIDs that required a call to storage 需要调用存储的度量UID的缓存查找失败总数 |
tsd.uid.cache-size | kind=metrics | Gauge | The current number of cached metric UIDs 当前缓存的度量UID数 |
tsd.uid.ids-used | kind=metrics | Counter | The current number of assigned metric UIDs. (NOTE: if random metric UID generation is enabled ids-used will always be 0) 分配的度量UID的当前数目。(注意:如果启用随机度量uid生成,则使用的ID将始终为0) |
tsd.uid.ids-available | kind=metrics | Counter | The current number of available metric UIDs, decrements as UIDs are assigned. (NOTE: if random metric UID generation is enabled ids-used will always be 0) 当前可用度量uid的数目,递减为uid。(注意:如果启用随机度量uid生成,则使用的ID将始终为0) |
tsd.uid.random-collisions | kind=metrics | Counter | How many times metric UIDs attempted a reassignment due to a collision with an existing UID. (v2.2) 由于与现有uid冲突,metric uid尝试重新分配的次数。 |
tsd.uid.cache-hit | kind=tagk | Counter | The total number of successful cache lookups for tagk UIDs 成功查找Tagk Uid的缓存总数 |
tsd.uid.cache-miss | kind=tagk | Counter | The total number of failed cache lookups for tagk UIDs that required a call to storage 需要调用存储的tagk uid的缓存查找失败总数 |
tsd.uid.cache-size | kind=tagk | Gauge | The current number of cached tagk UIDs 当前缓存的标记UID数 |
tsd.uid.ids-used | kind=tagk | Counter | The current number of assigned tagk UIDs 当前分配的标记UID数 |
tsd.uid.ids-available | kind=tagk | Counter | The current number of available tagk UIDs, decrements as UIDs are assigned. 当前可用标记UID的数目,递减为UID。 |
tsd.uid.cache-hit | kind=tagv | Counter | The total number of successful cache lookups for tagv UIDs 成功查找tagv-uids的缓存的总数 |
tsd.uid.cache-miss | kind=tagv | Counter | The total number of failed cache lookups for tagv UIDs that required a call to storage 需要调用存储的tagv uid的缓存查找失败总数 |
tsd.uid.cache-size | kind=tagv | Gauge | The current number of cached tagv UIDs 当前缓存的Tagv Uid数 |
tsd.uid.ids-used | kind=tagv | Counter | The current number of assigned tagv UIDs 当前分配的tagv uids数 |
tsd.uid.ids-available | kind=tagv | Counter | The current number of available tagv UIDs, decrements as UIDs are assigned. 当前可用的标记UID数,递减为uids。 |
tsd.jvm.ramfree | Gauge | The number of bytes reported as free by the JVM's Runtime.freeMemory() jvm的运行时报告为可用的字节数。 | |
tsd.jvm.ramused | Gauge | The number of bytes reported as used by the JVM's Runtime.totalMemory() jvm运行时使用的报告字节数 | |
tsd.hbase.latency_50pct | method=put | Gauge | The time it took, in milliseconds, to execute a Put call for the 50th percentile cases 执行第50个百分位数事例的Put调用所用的时间(以毫秒计) |
tsd.hbase.latency_75pct | method=put | Gauge | The time it took, in milliseconds, to execute a Put call for the 75th percentile cases 执行第75个百分位数事例的Put调用所用的时间(以毫秒计) |
tsd.hbase.latency_90pct | method=put | Gauge | The time it took, in milliseconds, to execute a Put call for the 90th percentile cases 执行第90个百分位数的Put调用所用的时间(以毫秒计) |
tsd.hbase.latency_95pct | method=put | Gauge | The time it took, in milliseconds, to execute a Put call for the 95th percentile cases 执行第95个百分位数的Put调用所用的时间(以毫秒计) |
tsd.hbase.latency_50pct | method=scan | Gauge | The time it took, in milliseconds, to execute a Scan call for the 50th percentile cases 执行第50个百分位数的扫描调用所用的时间(以毫秒计) |
tsd.hbase.latency_75pct | method=scan | Gauge | The time it took, in milliseconds, to execute a Scan call for the 75th percentile cases 执行第75个百分位数的扫描调用所用的时间(以毫秒计) |
tsd.hbase.latency_90pct | method=scan | Gauge | The time it took, in milliseconds, to execute a Scan call for the 90th percentile cases 执行第90个百分位数的扫描调用所用的时间(以毫秒计) |
tsd.hbase.latency_95pct | method=scan | Gauge | The time it took, in milliseconds, to execute a Scan call for the 95th percentile cases 执行第95个百分位数的扫描调用所用的时间(以毫秒计) |
tsd.hbase.root_lookups | Counter | The total number of root lookups performed by the client 客户端执行的根查找总数 | |
tsd.hbase.meta_lookups | type=uncontended | Counter | The total number of uncontended meta table lookups performed by the client 客户端执行的未扩展元表查找的总数 |
tsd.hbase.meta_lookups | type=contended | Counter | The total number of contended meta table lookups performed by the client 客户端执行的争用元表查找的总数 |
tsd.hbase.rpcs | type=increment | Counter | The total number of Increment requests performed by the client 客户端执行的增量请求总数 |
tsd.hbase.rpcs | type=delete | Counter | The total number of Delete requests performed by the client 客户端执行的删除请求总数 |
tsd.hbase.rpcs | type=get | Counter | The total number of Get requests performed by the client 客户端执行的GET请求总数 |
tsd.hbase.rpcs | type=put | Counter | The total number of Put requests performed by the client 客户端执行的Put请求总数 |
tsd.hbase.rpcs | type=rowLock | Counter | The total number of Row Lock requests performed by the client 客户端执行的行锁定请求总数 |
tsd.hbase.rpcs | type=openScanner | Counter | The total number of Open Scanner requests performed by the client 客户端执行的打开扫描程序请求总数 |
tsd.hbase.rpcs | type=scan | Counter | The total number of Scan requests performed by the client. These indicate a scan->next() call. 客户端执行的扫描请求总数。这表示一个scan->next()调用。 |
tsd.hbase.rpcs.batched | Counter | The total number of batched requests sent by the client 客户端发送的批处理请求总数 | |
tsd.hbase.flushes | Counter | The total number of flushes performed by the client 客户端执行的刷新总数 | |
tsd.hbase.connections.created | Counter | The total number of connections made by the client to region servers 客户端到区域服务器的连接总数 | |
tsd.hbase.nsre | Counter | The total number of No Such Region Exceptions caught. These can happen when a region server crashes, is taken offline or when a region splits (?) 未捕获此类区域异常的总数。当区域服务器崩溃、脱机或区域拆分时,可能会发生这种情况 | |
tsd.hbase.nsre.rpcs_delayed | Counter | The total number of calls delayed due to an NSRE that were later successfully executed 由于稍后成功执行的NSRE而延迟的调用总数 | |
tsd.hbase.region_clients.open | Counter | The total number of connections opened to region servers since the TSD started. If this number is climbing the region servers may be crashing and restarting. (v2.2) 自TSD启动以来打开到区域服务器的连接总数。如果这个数字在上升,区域服务器可能会崩溃并重新启动。 | |
tsd.hbase.region_clients.idle_closed | Counter | The total number of connections to region servers that were closed due to idle connections. This indicates nothing was read from or written to a server in some time and the TSD will reconnect when it needs to. (v2.2) 由于空闲连接而关闭的与区域服务器的连接总数。这表示在一段时间内没有从服务器读取或写入任何内容,TSD将在需要时重新连接。 | |
tsd.compaction.count | type=trivial | Counter | The total number of trivial compactions performed by the TSD TSD执行的平凡压缩的总数 |
tsd.compaction.count | type=complex | Counter | The total number of complex compactions performed by the TSD TSD执行的复杂压实的总数 |
tsd.compaction.duplicates | type=identical | Counter | The total number of data points found during compaction that were duplicates at the same time and with the same value. (v2.2) 在压缩过程中发现的同时重复且值相同的数据点总数。 |
tsd.compaction.duplicates | type=variant | Counter | The total number of data points found during compaction that were duplicates at the same time but with a different value. (v2.2) 在压缩过程中发现的同时重复但值不同的数据点总数 |
tsd.compaction.queue.size | Gauge | How many rows of data are currently in the queue to be compacted. (v2.2) 队列中当前要压缩的数据行数 | |
tsd.compaction.errors | type=read | Counter | The total number of rows that couldn't be read from storage due to an error of some sort. (v2.2) 由于某种类型的错误而无法从存储中读取的行的总数 |
tsd.compaction.errors | type=put | Counter | The total number of rows that couldn't be re-written to storage due to an error of some sort. (v2.2) 由于某种类型的错误而无法重新写入存储的行的总数 |
tsd.compaction.errors | type=delete | Counter | The total number of rows that couldn't have the old non-compacted data deleted from storage due to an error of some sort. (v2.2) 由于某种类型的错误而无法从存储中删除旧的未压缩数据的行总数 |
tsd.compaction.writes | type=read | Counter | The total number of writes back to storage of compacted values. (v2.2) 回写压缩值存储的总次数。 |
tsd.compaction.deletes | type=read | Counter | The total number of delete calls made to storage to remove old data that has been compacted. (v2.2) 为删除已压缩的旧数据而对存储进行的删除调用的总数。 |
原文:http://opentsdb.net/docs/build/html/user_guide/stats.html