README

InfluxDB Circle CI Go Report Card Docker pulls

ATTENTION:

Around January 11th, 2019, master on this repository will become InfluxDB 2.0 code. The content of infludata/platform will be moved to this repository. If you rely on master, you should update your dependencies to track the 1.7 branch.

An Open-Source Time Series Database

InfluxDB is an open source time series database with no external dependencies. It's useful for recording metrics, events, and performing analytics.

Features

  • Built-in HTTP API so you don't have to write any server side code to get up and running.
  • Data can be tagged, allowing very flexible querying.
  • SQL-like query language.
  • Simple to install and manage, and fast to get data in and out.
  • It aims to answer queries in real-time. That means every data point is indexed as it comes in and is immediately available in queries that should return in < 100ms.

Installation

We recommend installing InfluxDB using one of the pre-built packages. Then start InfluxDB using:

  • service influxdb start if you have installed InfluxDB using an official Debian or RPM package.
  • systemctl start influxdb if you have installed InfluxDB using an official Debian or RPM package, and are running a distro with systemd. For example, Ubuntu 15 or later.
  • $GOPATH/bin/influxd if you have built InfluxDB from source.

Getting Started

Create your first database
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE DATABASE mydb"
Insert some data
curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server01,region=uswest load=42 1434055562000000000'

curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server02,region=uswest load=78 1434055562000000000'

curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server03,region=useast load=15.4 1434055562000000000'
Query for the data
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" \
--data-urlencode "q=SELECT * FROM cpu WHERE host='server01' AND time < now() - 1d"
Analyze the data
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" \
--data-urlencode "q=SELECT mean(load) FROM cpu WHERE region='uswest'"

Documentation

Contributing

If you're feeling adventurous and want to contribute to InfluxDB, see our contributing doc for info on how to make feature requests, build from source, and run tests.

Licensing

See LICENSE and DEPENDENCIES.

Looking for Support?

InfluxDB offers a number of services to help your project succeed. We offer Developer Support for organizations in active development, Managed Hosting to make it easy to move into production, and Enterprise Support for companies requiring the best response times, SLAs, and technical fixes. Visit our support page or contact sales@influxdb.com to learn how we can best help you succeed.

Expand ▾ Collapse ▴

Documentation

Overview

    Package influxdb is the root package of InfluxDB, the scalable datastore for metrics, events, and real-time analytics.

    If you're looking for the Go HTTP client for InfluxDB, see package github.com/influxdata/influxdb/client/v2.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var ErrFieldTypeConflict = errors.New("field type conflict")

      ErrFieldTypeConflict is returned when a new field already exists with a different type.

      Functions

      func ErrDatabaseNotFound

      func ErrDatabaseNotFound(name string) error

        ErrDatabaseNotFound indicates that a database operation failed on the specified database because the specified database does not exist.

        func ErrRetentionPolicyNotFound

        func ErrRetentionPolicyNotFound(name string) error

          ErrRetentionPolicyNotFound indicates that the named retention policy could not be found in the database.

          func IsAuthorizationError

          func IsAuthorizationError(err error) bool

            IsAuthorizationError indicates whether an error is due to an authorization failure

            func IsClientError

            func IsClientError(err error) bool

              IsClientError indicates whether an error is a known client error.

              Types

              type Node

              type Node struct {
              	ID uint64
              	// contains filtered or unexported fields
              }

              func LoadNode

              func LoadNode(path string) (*Node, error)

                LoadNode will load the node information from disk if present

                func NewNode

                func NewNode(path string) *Node

                  NewNode will return a new node

                  func (*Node) Save

                  func (n *Node) Save() error

                    Save will save the node file to disk and replace the existing one if present

                    Directories

                    Path Synopsis
                    _tools
                    Package client implements a now-deprecated client for InfluxDB; use github.com/influxdata/influxdb/client/v2 instead.
                    Package client implements a now-deprecated client for InfluxDB; use github.com/influxdata/influxdb/client/v2 instead.
                    v2
                    Package client (v2) is the current official Go client for InfluxDB.
                    Package client (v2) is the current official Go client for InfluxDB.
                    cmd
                    Package cmd is the root package of the various command-line utilities for InfluxDB.
                    Package cmd is the root package of the various command-line utilities for InfluxDB.
                    influx
                    The influx command is a CLI client to InfluxDB.
                    The influx command is a CLI client to InfluxDB.
                    influx/cli
                    Package cli contains the logic of the influx command line client.
                    Package cli contains the logic of the influx command line client.
                    influx_inspect
                    The influx_inspect command displays detailed information about InfluxDB data files.
                    The influx_inspect command displays detailed information about InfluxDB data files.
                    influx_inspect/buildtsi
                    Package buildtsi reads an in-memory index and exports it as a TSI index.
                    Package buildtsi reads an in-memory index and exports it as a TSI index.
                    influx_inspect/deletetsm
                    Package deletetsm bulk deletes a measurement from a raw tsm file.
                    Package deletetsm bulk deletes a measurement from a raw tsm file.
                    influx_inspect/dumptsi
                    Package dumptsi inspects low-level details about tsi1 files.
                    Package dumptsi inspects low-level details about tsi1 files.
                    influx_inspect/dumptsm
                    Package dumptsm inspects low-level details about tsm1 files.
                    Package dumptsm inspects low-level details about tsm1 files.
                    influx_inspect/dumptsmwal
                    Package dumptsmwal dumps all data from a WAL file.
                    Package dumptsmwal dumps all data from a WAL file.
                    influx_inspect/export
                    Package export exports TSM files into InfluxDB line protocol format.
                    Package export exports TSM files into InfluxDB line protocol format.
                    influx_inspect/help
                    Package help contains the help for the influx_inspect command.
                    Package help contains the help for the influx_inspect command.
                    influx_inspect/report
                    Package report reports statistics about TSM files.
                    Package report reports statistics about TSM files.
                    influx_inspect/reporttsi
                    Package reporttsi provides a report about the series cardinality in one or more TSI indexes.
                    Package reporttsi provides a report about the series cardinality in one or more TSI indexes.
                    influx_inspect/verify/seriesfile
                    Package seriesfile verifies integrity of series files.
                    Package seriesfile verifies integrity of series files.
                    influx_inspect/verify/tombstone
                    Package tombstone verifies integrity of tombstones.
                    Package tombstone verifies integrity of tombstones.
                    influx_inspect/verify/tsm
                    Package tsm verifies integrity of TSM files.
                    Package tsm verifies integrity of TSM files.
                    influx_stress
                    Command influx_stress is deprecated; use github.com/influxdata/influx-stress instead.
                    Command influx_stress is deprecated; use github.com/influxdata/influx-stress instead.
                    influx_tools
                    The influx_tools command displays detailed information about InfluxDB data files.
                    The influx_tools command displays detailed information about InfluxDB data files.
                    influx_tools/help
                    Package help is the help subcommand of the influxd command.
                    Package help is the help subcommand of the influxd command.
                    influx_tools/internal/format/binary
                    Package binary is a generated protocol buffer package.
                    Package binary is a generated protocol buffer package.
                    influx_tools/internal/tlv
                    Package tlv contains code to read and write type-length-value messages.
                    Package tlv contains code to read and write type-length-value messages.
                    influx_tsm
                    Command influx_tsm converts b1 or bz1 shards (from InfluxDB releases earlier than v0.11) to the current tsm1 format.
                    Command influx_tsm converts b1 or bz1 shards (from InfluxDB releases earlier than v0.11) to the current tsm1 format.
                    influx_tsm/b1
                    Package b1 reads data from b1 shards.
                    Package b1 reads data from b1 shards.
                    influx_tsm/bz1
                    Package bz1 reads data from bz1 shards.
                    Package bz1 reads data from bz1 shards.
                    influx_tsm/stats
                    Package stats contains statistics for converting non-TSM shards to TSM.
                    Package stats contains statistics for converting non-TSM shards to TSM.
                    influx_tsm/tsdb
                    Package tsdb abstracts the various shard types supported by the influx_tsm command.
                    Package tsdb abstracts the various shard types supported by the influx_tsm command.
                    influx_tsm/tsdb/internal
                    Package internal is a generated protocol buffer package.
                    Package internal is a generated protocol buffer package.
                    influxd
                    Command influxd is the InfluxDB server.
                    Command influxd is the InfluxDB server.
                    influxd/backup
                    Package backup implements both the backup and export subcommands for the influxd command.
                    Package backup implements both the backup and export subcommands for the influxd command.
                    influxd/backup_util/internal
                    Package backup_util is a generated protocol buffer package.
                    Package backup_util is a generated protocol buffer package.
                    influxd/help
                    Package help is the help subcommand of the influxd command.
                    Package help is the help subcommand of the influxd command.
                    influxd/restore
                    Package restore is the restore subcommand for the influxd command, for restoring from a backup.
                    Package restore is the restore subcommand for the influxd command, for restoring from a backup.
                    influxd/run
                    Package run is the run (default) subcommand for the influxd command.
                    Package run is the run (default) subcommand for the influxd command.
                    Package coordinator contains abstractions for writing points, executing statements, and accessing meta data.
                    Package coordinator contains abstractions for writing points, executing statements, and accessing meta data.
                    flux
                    builtin
                    Package builtin ensures all packages related to Flux built-ins are imported and initialized.
                    Package builtin ensures all packages related to Flux built-ins are imported and initialized.
                    importer
                    v8
                    Package v8 contains code for importing data from 0.8 instances of InfluxDB.
                    Package v8 contains code for importing data from 0.8 instances of InfluxDB.
                    Package models implements basic objects used throughout the TICK stack.
                    Package models implements basic objects used throughout the TICK stack.
                    Package monitor provides a service and associated functionality for InfluxDB to self-monitor internal statistics and diagnostics.
                    Package monitor provides a service and associated functionality for InfluxDB to self-monitor internal statistics and diagnostics.
                    diagnostics
                    Package diagnostics provides the diagnostics type so that other packages can provide diagnostics without depending on the monitor package.
                    Package diagnostics provides the diagnostics type so that other packages can provide diagnostics without depending on the monitor package.
                    pkg
                    deep
                    Package deep provides a deep equality check for use in tests.
                    Package deep provides a deep equality check for use in tests.
                    encoding/simple8b
                    Package simple8b implements the 64bit integer encoding algorithm as published by Ann and Moffat in "Index compression using 64-bit words", Softw.
                    Package simple8b implements the 64bit integer encoding algorithm as published by Ann and Moffat in "Index compression using 64-bit words", Softw.
                    escape
                    Package escape contains utilities for escaping parts of InfluxQL and InfluxDB line protocol.
                    Package escape contains utilities for escaping parts of InfluxQL and InfluxDB line protocol.
                    estimator/hll
                    Package hll contains a HyperLogLog++ with a LogLog-Beta bias correction implementation that is adapted (mostly copied) from an implementation provided by Clark DuVall github.com/clarkduvall/hyperloglog.
                    Package hll contains a HyperLogLog++ with a LogLog-Beta bias correction implementation that is adapted (mostly copied) from an implementation provided by Clark DuVall github.com/clarkduvall/hyperloglog.
                    limiter
                    Package limiter provides concurrency limiters.
                    Package limiter provides concurrency limiters.
                    metrics
                    Package metrics provides various measurements that are safe for concurrent access.
                    Package metrics provides various measurements that are safe for concurrent access.
                    mmap
                    Package mmap provides a way to memory-map a file.
                    Package mmap provides a way to memory-map a file.
                    pool
                    Package pool provides pool structures to help reduce garbage collector pressure.
                    Package pool provides pool structures to help reduce garbage collector pressure.
                    rhh
                    slices
                    Package slices contains functions to operate on slices treated as sets.
                    Package slices contains functions to operate on slices treated as sets.
                    tar
                    testing/assert
                    Package assert provides helper functions that can be used with the standard Go testing package.
                    Package assert provides helper functions that can be used with the standard Go testing package.
                    tracing
                    Package tracing provides a way for capturing hierarchical traces.
                    Package tracing provides a way for capturing hierarchical traces.
                    tracing/wire
                    Package wire is used to serialize a trace.
                    Package wire is used to serialize a trace.
                    remote
                    Package remote is a generated protocol buffer package.
                    Package remote is a generated protocol buffer package.
                    internal
                    Package query is a generated protocol buffer package.
                    Package query is a generated protocol buffer package.
                    neldermead
                    Package neldermead is an implementation of the Nelder-Mead optimization method.
                    Package neldermead is an implementation of the Nelder-Mead optimization method.
                    services
                    collectd
                    Package collectd provides a service for InfluxDB to ingest data via the collectd protocol.
                    Package collectd provides a service for InfluxDB to ingest data via the collectd protocol.
                    continuous_querier
                    Package continuous_querier provides the continuous query service.
                    Package continuous_querier provides the continuous query service.
                    graphite
                    Package graphite provides a service for InfluxDB to ingest data via the graphite protocol.
                    Package graphite provides a service for InfluxDB to ingest data via the graphite protocol.
                    httpd
                    Package httpd implements the HTTP service and REST API for InfluxDB.
                    Package httpd implements the HTTP service and REST API for InfluxDB.
                    meta
                    Package meta provides control over meta data for InfluxDB, such as controlling databases, retention policies, users, etc.
                    Package meta provides control over meta data for InfluxDB, such as controlling databases, retention policies, users, etc.
                    meta/internal
                    Package meta is a generated protocol buffer package.
                    Package meta is a generated protocol buffer package.
                    opentsdb
                    Package opentsdb provides a service for InfluxDB to ingest data via the opentsdb protocol.
                    Package opentsdb provides a service for InfluxDB to ingest data via the opentsdb protocol.
                    precreator
                    Package precreator provides the shard precreation service.
                    Package precreator provides the shard precreation service.
                    retention
                    Package retention provides the retention policy enforcement service.
                    Package retention provides the retention policy enforcement service.
                    snapshotter
                    Package snapshotter provides the meta snapshot service.
                    Package snapshotter provides the meta snapshot service.
                    storage
                    Package storage is a generated protocol buffer package.
                    Package storage is a generated protocol buffer package.
                    subscriber
                    Package subscriber implements the subscriber service to forward incoming data to remote services.
                    Package subscriber implements the subscriber service to forward incoming data to remote services.
                    udp
                    Package udp provides the UDP input service for InfluxDB.
                    Package udp provides the UDP input service for InfluxDB.
                    storage
                    v2
                    Package tcp provides a simple multiplexer over TCP.
                    Package tcp provides a simple multiplexer over TCP.
                    This package is a set of convenience helpers and structs to make integration testing easier
                    This package is a set of convenience helpers and structs to make integration testing easier
                    Package toml adds support to marshal and unmarshal types not in the official TOML spec.
                    Package toml adds support to marshal and unmarshal types not in the official TOML spec.
                    engine
                    Package engine can be imported to initialize and register all available TSDB engines.
                    Package engine can be imported to initialize and register all available TSDB engines.
                    engine/tsm1
                    Package tsm1 provides a TSDB in the Time Structured Merge tree format.
                    Package tsm1 provides a TSDB in the Time Structured Merge tree format.
                    index/inmem
                    Package inmem implements a shared, in-memory index for each database.
                    Package inmem implements a shared, in-memory index for each database.
                    index/tsi1
                    Package tsi1 provides a memory-mapped index implementation that supports high cardinality series.
                    Package tsi1 provides a memory-mapped index implementation that supports high cardinality series.
                    Package uuid provides functions to create time-based UUIDs.
                    Package uuid provides functions to create time-based UUIDs.