CLI Tools

OpenTSDB 由单个 JAR 文件组成,该文件使用 Shell 脚本来确定用户想要执行的操作。虽然最常见的操作是使用tsd命令启动 TSD,以便它可以一直运行并处理 RPC,但其他命令也可用于处理 OpenTSDB 数据。这些命令包括:

从编译 OpenTSDB 之后构建的tsdb文件的位置执行访问 CLI 工具。缺省情况下,tsdb 文件位于build目录中,因此您可以通过./build/tsdb访问它。提供./build/tsdb tsd中的 CLIUtil 的名称。

Common Parameters

所有命令行 Util 共享一些常见的命令行参数:

NameData TypeDescriptionDefaultExample
--configStringOpenTSDB Configuration文件的完整或相对路径。如果未提供此参数,该命令将尝试加载默认配置文件。See Configuration--config=/usr/local/tempconfig.conf
--tableString存储数据点的 HBase 表的名称tsdb--table=prod-tsdb
--uidtableString存储 UID 信息的 HBase 表的名称tsdb-uid--uidtable=prod-tsdb-uid
--verboseBoolean对于某些 CLI 工具,此命令将允许按 logback.xml 配置进行 INFO 以及更高级别的日志记录。否则,如果没有此标志,则某些工具可能仅记录警告消息。
--zkbasedirString-ROOT-区域的 znode 所在的路径/hbase--zkbasedir=/prod/hbase
--read-onlyBoolean设置 OpenTSDB 的模式false--read-only
--zkquorumStringZooKeeper 仲裁要使用的规范,即 ZooKeeper 集群中服务器和/或端口的列表localhost--zkquorum=zkhost1,zkhost2,zkhost3

Site-specific Configuration

所有 CLI 命令都需要上面的公共参数。一遍又一遍地手动键入它们可能很麻烦。您可以将通常使用的值存储在文件./tsdb.local中。该文件应该是 Shell 脚本,如果存在,将以./tsdb来源。

设置通用参数的默认值

例如,如果您的 ZooKeeper 仲裁位于 DNS 名称“ zookeeper.example.com”(具有 5 条 A 记录的名称)的后面,而不是每次都将--zkquorum=zookeeper.example.com传递给 CLI 工具,则可以使用创建以下内容:

#!/bin/bash
MY_ARGS='--zkquorum=zookeeper'
set x $MY_ARGS "$@"
shift

覆盖 TSD 的时区

服务器经常使用 UTC 作为时区。默认情况下,TSD 使用服务器的本地时区来绘制图形。您可以通过在./tsdb.local中指定时区来覆盖此设置,以在本地时间显示图形。例如,如果您在加利福尼亚 State,这将迫使 TSD 使用您的时区:

echo export TZ=PST8PDT >>tsdb.local

在大多数 Linux 和 BSD 系统上,您可以在/usr/share/zoneinfo下查找系统上支持的时区名称。

更改 JVM 参数

您可能想要调整 JVM 参数,例如打开 GC 活动日志记录或设置各种内存区域的大小。为此,只需在./tsdb.local中设置变量 JVMARGS 即可。

这是推荐用于生产的示例:

GCARGS="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps\
 -XX:+PrintTenuringDistribution -Xloggc:/tmp/tsd-gc-`date +%s`.log"
if test -t 0; then # if stdin is a tty, don't turn on GC logging.
  GCARGS=
fi
# The Sun JDK caches all name resolution results forever, which is stupid.
# This forces you to restart your application if any of the backends change
# IP. Instead tell it to cache names for only 10 minutes at most.
FIX_DNS='-Dsun.net.inetaddr.ttl=600'
JVMARGS="$JVMARGS $GCARGS $FIX_DNS"