README ¶
InfluxDB
An Open-Source, Distributed, Time Series Database
InfluxDB v0.9.0 is now out. Going forward, the 0.9.x series of releases will not make breaking API changes or breaking changes to the underlying data storage. However, 0.9.0 clustering should be considered an alpha release.
InfluxDB is an open source distributed 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.
- Clustering is supported out of the box, so that you can scale horizontally to handle your data.
- 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.
Getting Started
The following directions apply only to the 0.9.0 release or building from the source on master.
Building
You don't need to build the project to use it - you can use any of our pre-built packages to install InfluxDB. That's the recommended way to get it running. However, if you want to contribute to the core of InfluxDB, you'll need to build. For those adventurous enough, you can follow along on our docs.
Starting InfluxDB
service influxdb start
if you have installed InfluxDB using an official Debian or RPM package.$GOPATH/bin/influxd
if you have built InfluxDB from source.
Creating your first database
curl -G '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'"
Helpful Links
- Understand the design goals and motivations of the project.
- Follow the getting started guide to find out how to install InfluxDB, start writing more data, and issue more queries - in just a few minutes.
- See the HTTP API documentation to start writing a library for your favorite language.
Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrFieldsRequired is returned when a point does not any fields. ErrFieldsRequired = errors.New("fields required") // ErrFieldTypeConflict is returned when a new field already exists with a different type. ErrFieldTypeConflict = errors.New("field type conflict") )
Functions ¶
func ErrDatabaseNotFound ¶
func ErrMeasurementNotFound ¶
func IsClientError ¶
IsClientError indicates whether an error is a known client error.
Types ¶
type Balancer ¶
type Balancer interface { // Next returns the next Node according to the balancing method // or nil if there are no nodes available Next() *meta.NodeInfo }
Balancer represents a load-balancing algorithm for a set of nodes
func NewNodeBalancer ¶
NewNodeBalancer create a shuffled, round-robin balancer so that multiple instances will return nodes in randomized order and each each returned node will be repeated in a cycle
type BuildDiagnostics ¶
BuildDiagnostics capture basic build version information.
type GoDiagnostics ¶
GoDiagnostics captures basic information about the runtime.
func NewGoDiagnostics ¶
func NewGoDiagnostics() *GoDiagnostics
NewGoDiagnostics returns a GoDiagnostics object.
type MemoryDiagnostics ¶
type MemoryDiagnostics struct { Alloc int64 TotalAlloc int64 Sys int64 Lookups int64 Mallocs int64 Frees int64 HeapAlloc int64 HeapSys int64 HeapIdle int64 HeapInUse int64 HeapReleased int64 HeapObjects int64 PauseTotalNs int64 NumGC int64 }
MemoryDiagnostics captures Go memory stats.
func NewMemoryDiagnostics ¶
func NewMemoryDiagnostics() *MemoryDiagnostics
NewMemoryDiagnostics returns a MemoryDiagnostics object.
type SystemDiagnostics ¶
SystemDiagnostics captures basic machine data.
func NewSystemDiagnostics ¶
func NewSystemDiagnostics() *SystemDiagnostics
NewSystemDiagnostics returns a SystemDiagnostics object.
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
importer
|
|
Package influxql implements a parser for the InfluxDB query language.
|
Package influxql implements a parser for the InfluxDB query language. |
services
|
|
hh
Package hh implements a hinted handoff for writes
|
Package hh implements a hinted handoff for writes |
tests
|
|
Package tsdb implements a durable time series database.
|
Package tsdb implements a durable time series database. |
engine/wal
Package WAL implements a write ahead log optimized for write throughput that can be put in front of the database index.
|
Package WAL implements a write ahead log optimized for write throughput that can be put in front of the database index. |