Influxdb cli tools limitations. Is there a roadmap for tools?

influxdb
#1

Is there any official roadmap on influxdb tools development?

For the current 1.2.x version database maintanance (backup/restore, import/export, db management, etc) functions are scattered across several binaries (influxd, influx, influx_inspect) and also have some mutual inconsistencies and limitations in supported input/output formats:

  1. No support for stdin/stdout for in/out files in cli tools (at least, no hints in docs). So, no unix-way pipes for data processing.

  2. influx cli tool does not have line protocol format for select queries output. At the same time “json|csv|column” formats in influx cannot be used natively to insert data back into database without external tool for conversion to line protocol first.
    Having (1) and (2) implemented would allow to selectively copy series data between influxdb instances over network (netcat, ssh tunnels, etc).

  3. influx -import and influx__inspect -export use line protocol but can’t be used over pipes. And why is import/export functionality split between two tools?

  4. influx tool can query remote databases with “-host” and “-database” command line options, but there is no way to do this inside influx shell - there is no support for “select smth from remotedbUrl” or “select smth into localdb from remotedbUrl” kind of queries. My guess is, that it should not be to difficult to implement if influx uses http api for its operations, just add support for url-style database.retention.measurement specification in query syntax?

  5. Binary backup/restore tools seem to be the most efficient way to move databases between servers. But there is a show stopper: restore overrides existing meta information with the one in backup.

Some minor remarks/wishlist.

  • Would be handy to have some documentation embedded into influx tool as it is done in mysql or postgres clients, and auto-completion for influxql keywords and database/measurement/tag/field names in shell.
  • Long-running query in influx cannot be interrupted with Ctrl-C without exiting from influx shell (or you have to kill query from another inlux shell instance). What about adding some “query timeout” parameter in QL syntax to auto-stop long queries? Global query timeout parameter is too inflexible. Or even better: add a set of “guard” parameters in query syntax to limit queries not only by time but also by RAM,CPU or other resources usage?
  • Support for DateTime-related formats in cli tools is sparse: rfc3339 in influx__inspect -start and -end options, rfc339 and integer (with precision) in influx .
  • Timestamp precision is named “precision” in cli tools and line protocol, while in http api it is named “epoch”.
3 Likes
#2

Hi yuyu,

Unfortunately, there is no current roadmap for influxdb client tools at the moment. It’s on our radar and we know that they need to be improved, but ensuring the stability of the server is the highest priority and the client tools keep ending up on the backburner.

There is some current work that I’ve been doing to create a new experimental client. I’m working on it slowly but surely here on GitHub: https://github.com/influxdata/influxdb-client. The idea is to first get a client with the all of the underlying capabilities and then we can use that to create a new CLI. The end goal is also to separate the CLI from the influxdb repository itself so every piece of Go code doesn’t need to download the repository for the server and to create a comprehensive model for what the other client libraries should look like. Another goal is to ensure the client supports the full breadth of functions that the server supports.

All of that is specific to the influx command though. We also know there is existing work that needs to be done on backup and restore and we would love to hear about any feature requests, enhancements, or bugs you find in those or influx_inspect.

Thank you for your interest. For client requests, please file them in the new client. For backup, restore, and inspect, please file those in the main repository.

2 Likes