added additional influxd subcommands - generate and inspect, resolves #123

pull/124/head
Scott Anderson 2019-04-05 16:35:25 -06:00
parent 669a17c5e3
commit c7f46cbedd
8 changed files with 381 additions and 6 deletions

View File

@ -1,6 +1,5 @@
---
title: influxd - InfluxDB daemon
seotitle: influxd - InfluxDB daemon
description: The influxd daemon starts and runs all the processes necessary for InfluxDB to function.
v2.0/tags: [influxd, cli]
menu:
@ -21,9 +20,11 @@ influxd [command]
## Commands
| Command | Description |
|:------- |:----------- |
| [run](/v2.0/reference/cli/influxd/run) | Start the influxd server (default) |
| Command | Description |
|:------- |:----------- |
| [generate](/v2.0/reference/cli/influxd/generate) | Generate time series data sets using TOML schema. |
| [inspect](/v2.0/reference/cli/influxd/inspect) | Inspect on-disk database data. |
| [run](/v2.0/reference/cli/influxd/run) | Start the influxd server _**(default)**_ |
## Flags

View File

@ -0,0 +1,46 @@
---
title: influxd generate
description: >
The `influxd generate` command generates time series data direct to disk using
a schema defined in a TOML file.
v2.0/tags: [sample-data]
menu:
v2_0_ref:
parent: influxd
weight: 201
---
The `influxd generate` command generates time series data direct to disk using a schema defined in a TOML file.
{{% note %}}
#### Important notes
- The `influxd` server cannot not be running when using the `generate` tool.
It modifies the index and Time-Structured Merge Tree (TSM) data.
- This tool is intended for development and testing purposes only and
**should not** be run on a production server.
{{% /note %}}
## Usage
```sh
influxd generate <schema.toml> [flags]
influxd generate [subcommand]
```
## Subcommands
| Subcommand | Description |
|:------- |:----------- |
| [help-schema](/v2.0/reference/cli/influxd/generate/help-schema) | Print a documented example TOML schema to stdout. |
| [simple](/v2.0/reference/cli/influxd/generate/simple) | Generate simple data sets using defaults and CLI flags. |
## Flags
| Flag | Description | Input Type |
|:---- |:----------- |:----------:|
| `--print` | Print data spec and exit | |
| `--org` | Name of organization | string |
| `--bucket` | Name of bucket | string |
| `--start-time` | Start time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of one week ago) | string |
| `--end-time` | End time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of current day) | string |
| `--clean` | Clean time series data files (`none`, `tsm` or `all`) (default `none`) | string |
| `--cpuprofile` | Collect a CPU profile | string |
| `--memprofile` | Collect a memory profile | string |
| `-h`, `--help` | Help for `generate` | |

View File

@ -0,0 +1,206 @@
---
title: influxd generate help-schema
description: >
The `influxd generate help-schema` command outputs an example TOML schema to stdout
that includes documentation describing the available options.
v2.0/tags: [sample-data]
menu:
v2_0_ref:
parent: influxd generate
weight: 301
---
The `influxd generate help-schema` command outputs an example TOML schema to stdout that includes
documentation describing the available options. _See [example output](#example-output) below_.
Use custom TOML schema files to generate sample data sets with
[`influxd generate`](/v2.0/reference/cli/influxd/generate).
## Usage
```sh
influxd generate help-schema [flags]
```
## Flags
| Flag | Description | Input Type |
|:---- |:----------- |:----------:|
| `--print` | Print data spec and exit | |
| `--org` | Name of organization | string |
| `--bucket` | Name of bucket | string |
| `--start-time` | Start time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of one week ago) | string |
| `--end-time` | End time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of current day) | string |
| `--clean` | Clean time series data files (`none`, `tsm` or `all`) (default `none`) | string |
| `--cpuprofile` | Collect a CPU profile | string |
| `--memprofile` | Collect a memory profile | string |
| `-h`, `--help` | Help for `generate help-schema` | |
## Example output
{{% truncate %}}
```toml
title = "Documented schema"
# limit the maximum number of series generated across all measurements
#
# series-limit: integer, optional (default: unlimited)
[[measurements]]
# name of measurement
#
# NOTE:
# Multiple definitions of the same measurement name are allowed and
# will be merged together.
name = "cpu"
# sample: float; where 0 < sample 1.0 (default: 0.5)
# sample a subset of the tag set
#
# sample 25% of the tags
#
sample = 0.25
# Keys for defining a tag
#
# name: string, required
# Name of field
#
# source: array<string> or object
#
# A literal array of string values defines the tag values.
#
# An object defines more complex generators. The type key determines the
# type of generator.
#
# source types:
#
# type: "sequence"
# generate a sequence of tag values
#
# format: string
# a format string for the values (default: "value%s")
# start: int (default: 0)
# beginning value
# count: int, required
# ending value
#
# type: "file"
# generate a sequence of tag values from a file source.
# The data in the file is sorted, deduplicated and verified is valid UTF-8
#
# path: string
# absolute path or relative path to current toml file
tags = [
# example sequence tag source. The range of values are automatically
# prefixed with 0s
# to ensure correct sort behavior.
{ name = "host", source = { type = "sequence", format = "host-%s", start = 0, count = 5 } },
# tags can also be sourced from a file. The path is relative to the
# schema.toml.
# Each value must be on a new line. The file is also sorted, deduplicated
# and UTF-8 validated.
{ name = "rack", source = { type = "file", path = "files/racks.txt" } },
# Example string array source, which is also deduplicated and sorted
{ name = "region", source = ["us-west-01","us-west-02","us-east"] },
]
# Keys for defining a field
#
# name: string, required
# Name of field
#
# count: int, required
# The maximum number of values to generate. When multiple fields
# have the same count and time-spec, they will share timestamps.
#
# A time-spec can be either time-precision or time-interval, which
# determines how timestamps are generated and may also influence
# the time range and number of values generated.
#
# time-precision: string [ns, us, ms, s, m, h] (default: ms)
# Specifies the precision (rounding) for generated timestamps.
#
# If the precision results in fewer than "count" intervals for the
# given time range the number of values will be reduced.
#
# Example:
# count = 1000, start = 0s, end = 100s, time-precison = s
# 100 values will be generated at [0s, 1s, 2s, ..., 99s]
#
# If the precision results in greater than "count" intervals for the
# given time range, the interval will be rounded to the nearest multiple of
# time-precision.
#
# Example:
# count = 10, start = 0s, end = 100s, time-precison = s
# 100 values will be generated at [0s, 10s, 20s, ..., 90s]
#
# time-interval: Go duration string (eg 90s, 1h30m)
# Specifies the delta between generated timestamps.
#
# If the delta results in fewer than "count" intervals for the
# given time range the number of values will be reduced.
#
# Example:
# count = 100, start = 0s, end = 100s, time-interval = 10s
# 10 values will be generated at [0s, 10s, 20s, ..., 90s]
#
# If the delta results in greater than "count" intervals for the
# given time range, the start-time will be adjusted to ensure "count" values.
#
# Example:
# count = 20, start = 0s, end = 1000s, time-interval = 10s
# 20 values will be generated at [800s, 810s, ..., 900s, ..., 990s]
#
# source: int, float, boolean, string, array or object
#
# A literal int, float, boolean or string will produce
# a constant value of the same data type.
#
# A literal array of homogeneous values will generate a repeating
# sequence.
#
# An object defines more complex generators. The type key determines the
# type of generator.
#
# source types:
#
# type: "rand<float>"
# generate random float values
# seed: seed to random number generator (default: 0)
# min: minimum value (default: 0.0)
# max: maximum value (default: 1.0)
#
# type: "zipf<integer>"
# generate random integer values using a Zipf distribution
# The generator generates values k ∈ [0, imax] such that P(k)
# is proportional to (v + k) ** (-s). Requirements: s > 1 and v ≥ 1.
# See https://golang.org/pkg/math/rand/#NewZipf for more information.
#
# seed: seed to random number generator (default: 0)
# s: float > 1 (required)
# v: float ≥ 1 (required)
# imax: integer (required)
#
fields = [
# Example constant float
{ name = "system", count = 5000, source = 2.5 },
# Example random floats
{ name = "user", count = 5000, source = { type = "rand<float>", seed = 10, min = 0.0, max = 1.0 } },
]
# Multiple measurements may be defined.
[[measurements]]
name = "mem"
tags = [
{ name = "host", source = { type = "sequence", format = "host-%s", start = 0, count = 5 } },
{ name = "region", source = ["us-west-01","us-west-02","us-east"] },
]
fields = [
# An example of a sequence of integer values
{ name = "free", count = 100, source = [10,15,20,25,30,35,30], time-precision = "ms" },
{ name = "low_mem", count = 100, source = [false,true,true], time-precision = "ms" },
]
```
{{% /truncate %}}

View File

@ -0,0 +1,40 @@
---
title: influxd generate simple
description: >
The `influxd generate simple` command generates and writes a simple data set using
reasonable defaults and CLI flags.
v2.0/tags: [sample-data]
menu:
v2_0_ref:
parent: influxd generate
weight: 301
---
The `influxd generate simple` command generates and writes a simple data set using
reasonable defaults and command line interface (CLI) [flags](#flags).
{{% note %}}
#### Important notes
- `influxd generate simple` cannot run while the `influxd` server is running.
It modifies the index and Time-Structured Merge Tree (TSM) data.
- This tool is intended for development and testing purposes only and
**should not** be run on a production server.
{{% /note %}}
## Usage
```sh
influxd generate simple [flags]
```
## Flags
| Flag | Description | Input Type |
|:---- |:----------- |:----------:|
| `--print` | Print data spec and exit | |
| `--org` | Name of organization | string |
| `--bucket` | Name of bucket | string |
| `--start-time` | Start time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of one week ago) | string |
| `--end-time` | End time (`YYYY-MM-DDT00:00:00Z`) (default is 00:00:00 of current day) | string |
| `--clean` | Clean time series data files (`none`, `tsm` or `all`) (default `none`) | string |
| `--cpuprofile` | Collect a CPU profile | string |
| `--memprofile` | Collect a memory profile | string |
| `-h`, `--help` | Help for `generate simple` | |

View File

@ -0,0 +1,26 @@
---
title: influxd inspect
description: The `influxd inspect` commands and subcommands inspecting on-disk InfluxDB time series data.
v2.0/tags: [inspect]
menu:
v2_0_ref:
parent: influxd
weight: 201
---
The `influxd inspect` commands and subcommands inspecting on-disk InfluxDB time series data.
## Usage
```sh
influxd inspect [command]
```
## Subcommands
| Subcommand | Description |
|:---------- |:----------- |
| [report-tsm](/v2.0/reference/cli/influxd/inspect/report-tsm/) | Run TSM report |
## Flags
| Flag | Description |
|:---- |:----------- |
| `-h`, `--help` | help for inspect |

View File

@ -0,0 +1,57 @@
---
title: influxd inspect report-tsm
description: >
The `influxd inspect report-tsm` command analyzes Time-Structured Merge Tree (TSM)
files within a storage engine directory and reports the cardinality within the files
as well as the time range that the point data covers.
v2.0/tags: [tsm, cardinality, inspect]
menu:
v2_0_ref:
parent: influxd inspect
weight: 301
---
The `influxd inspect report-tsm` command analyzes Time-Structured Merge Tree (TSM)
files within a storage engine directory and reports the cardinality within the files
as well as the time range that the point data covers.
This command only interrogates the index within each file.
It does not read any block data.
To reduce heap requirements, by default `report-tsm` estimates the overall
cardinality in the file set by using the HLL++ algorithm.
Determine exact cardinalities by using the `--exact` flag.
## Usage
```sh
influxd inspect report-tsm [flags]
```
## Output details
`influxd inspect report-tsm` outputs the following for each file:
- The full filename.
- The series cardinality within the file.
- The number of series first encountered within the file.
- The minimum and maximum timestamp associated with TSM data in the file.
- The time taken to load the TSM index and apply any tombstones.
The summary section then outputs the total time range and series cardinality for
the file set. Depending on the `--detailed` flag, series cardinality is segmented
in the following ways:
- Series cardinality for each organization.
- Series cardinality for each bucket.
- Series cardinality for each measurement.
- Number of field keys for each measurement.
- Number of tag values for each tag key.
## Flags
| Flag | Description | Input Type |
|:---- |:----------- |:----------:|
| `--bucket-id` | Process only data belonging to bucket ID. _Requires `org-id` flag to be set._ | string |
| `--data-dir` | Use provided data directory (defaults to ~/.influxdbv2/engine/data). | string |
| `--detailed` | Emit series cardinality segmented by measurements, tag keys, and fields. _**May take a while**_. | |
| `--exact` | Calculate an exact cardinality count. _**May use significant memory**_. | |
| `-h`, `--help` | Help for `report-tsm`. | |
| `--org-id` | Process only data belonging to organization ID. | string |
| `--pattern` | Only process TSM files containing pattern. | string |

View File

@ -4,7 +4,6 @@ description: The `influxd run` command is the default `influxd` command and star
v2.0/tags: [influxd, cli]
menu:
v2_0_ref:
name: run
parent: influxd
weight: 201
---

View File

@ -13,7 +13,7 @@
{{ range .Pages }}
<h3><a href="{{.RelPermalink}}">{{ .Title }}</a></h3>
{{ if .Description }}
<p>{{ .Description }}</p>
<p>{{ .Description | markdownify }}</p>
{{ end }}
{{ end }}