Updated on 2024-08-16 GMT+08:00

OpenTSDB CLI Tools

OpenTSDB provides client tools that can directly invoke commands to operate OpenTSDB. The version of a client tool is the same as that of the open source community. For details, visit https://opentsdb.net/docs/build/html/user_guide/cli/index.html.

Usage of the client tools:

  1. Log in to any Master node.
  2. Run the following command to initialize environment variables:

    source /opt/client/bigdata_env

  3. If the Kerberos authentication is enabled for the current cluster, run the following command to authenticate the user. If the Kerberos authentication is disabled for the current cluster, skip this step.

    kinit MRS cluster user

    For example, kinit opentsdbuser

  4. Run the tsdb command. For example, you can run the tsdb command to print all commands supported by OpenTSDB, such as, fsck, import, mkmetric, query, tsd, scan, search, uid, and version.

    tsdb: error: unknown command ''
    usage: tsdb <command> [args]
    Valid commands: fsck, import, mkmetric, query, tsd, scan, search, uid, version

Creating an OpenTSDB Metric

Create a metric that can be saved to OpenTSDB. For example, run the tsdb mkmetric sys.cpu.user command to create sys.cpu.user.

Start run net.opentsdb.tools.UidManager, args: assign metrics sys.cpu.user
metrics sys.cpu.user: [0, 0, 6]

Querying the OpenTSDB Metric

You can run the tsdb command to obtain the metric saved in OpenTSDB, for example, tsdb uid metrics sys.cpu.user.

Start run net.opentsdb.tools.UidManager, args: metrics sys.cpu.user
metrics sys.cpu.user: [0, 0, 6]

To obtain more information, run the tsdb uid command.

Start run net.opentsdb.tools.UidManager, args:
Not enough arguments
Usage: uid <subcommand> args
Sub commands:
  grep [kind] <RE>: Finds matching IDs.
  assign <kind> <name> [names]: Assign an ID for the given name(s).
  rename <kind> <name> <newname>: Renames this UID.
  delete <kind> <name>: Deletes this UID.
  fsck: [fix] [delete_unknown] Checks the consistency of UIDs.
        fix            - Fix errors. By default errors are logged.
        delete_unknown - Remove columns with unknown qualifiers.
                         The "fix" flag must be supplied as well.

  [kind] <name>: Lookup the ID of this name.
  [kind] <ID>: Lookup the name of this ID.
  metasync: Generates missing TSUID and UID meta entries, updates
            created timestamps
  metapurge: Removes meta data entries from the UID table
  treesync: Process all timeseries meta objects through tree rules
  treepurge <id> [definition]: Purge a tree and/or the branches
            from storage. Provide an integer Tree ID and optionally
            add "true" to delete the tree definition

Example values for [kind]: metrics, tagk (tag name), tagv (tag value).
  --config=PATH    Path to a configuration file (default: Searches for file see docs).
  --idwidth=N      Number of bytes on which the UniqueId is encoded.
  --ignore-case    Ignore case distinctions when matching a regexp.
  --table=TABLE    Name of the HBase table where to store the time series (default: tsdb).
  --uidtable=TABLE Name of the HBase table to use for Unique IDs (default: tsdb-uid).
  --verbose        Print more logging messages and not just errors.
  --zkbasedir=PATH Path under which is the znode for the -ROOT- region (default: /hbase).
  --zkquorum=SPEC  Specification of the ZooKeeper quorum to use (default: localhost).
  -i               Short for --ignore-case.
  -v               Short for --verbose.

Importing Data to the OpenTSDB Metric

You can run the tsdb import command to import metric data in batches.

  • Prepare metric data, for example, the importData.txt file that contains the following content.
    sys.cpu.user 1356998400 41 host=web01 cpu=0
    sys.cpu.user 1356998401 42 host=web01 cpu=0
    sys.cpu.user 1356998402 44 host=web01 cpu=0
    sys.cpu.user 1356998403 47 host=web01 cpu=0
    sys.cpu.user 1356998404 42 host=web01 cpu=0
    sys.cpu.user 1356998405 42 host=web01 cpu=0
  • Run the tsdb import importData.txt command to import metric data.
    Start run net.opentsdb.tools.TextImporter, args: importData.txt
    2019-06-26 15:45:22,091 INFO  [main] TextImporter: reading from file:importData.txt
    2019-06-26 15:45:22,102 INFO  [main] TextImporter: Processed importData.txt in 11 ms, 6 data points (545.5 points/s)
    2019-06-26 15:45:22,102 INFO  [main] TextImporter: Total: imported 6 data points in 0.012s (504.0 points/s)

Scanning the OpenTSDB Metric Data

You can run the tsdb query command to query the imported metric data in batches, for example, tsdb query 0 1h-ago sum sys.cpu.user host=web01.

Start run net.opentsdb.tools.CliQuery, args: 0 1h-ago sum sys.cpu.user host=web01
sys.cpu.user 1356998400000 41 {host=web01, cpu=0}
sys.cpu.user 1356998401000 42 {host=web01, cpu=0}
sys.cpu.user 1356998402000 44 {host=web01, cpu=0}
sys.cpu.user 1356998403000 47 {host=web01, cpu=0}
sys.cpu.user 1356998404000 42 {host=web01, cpu=0}
sys.cpu.user 1356998405000 42 {host=web01, cpu=0}

Deleting the Imported OpenTSDB Metric

You can run the tsdb uid delete command to delete the imported metric and its value, for example, tsdb uid delete metrics sys.cpu.user.

Start run net.opentsdb.tools.UidManager, args: delete metrics sys.cpu.user