influxdb

package module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2015 License: MIT Imports: 12 Imported by: 0

README

InfluxDB Circle CI

An Open-Source, Distributed, Time Series Database

InfluxDB v0.9.0 is now in the alpha phase. Builds are currently tagged as RCs, but they're alpha stage at this point. We will update this document when the first stable RC is ready. However, the current builds have an API that should not change significantly between now and the final 0.9.0 release. Most of the work we're doing now is focused on features and stability for clustering. So please develop against the current 0.9.0 RCs for new projects that won't go into production for a little bit.

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] (http://influxdb.com/docs/v0.9/concepts/reading_and_writing_data.html) so you don't have to write any server side code to get up and running.
  • 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 -H "Content-Type: application/json" http://localhost:8086/write -d '
{
    "database": "mydb",
    "retentionPolicy": "default",
    "points": [
        {
            "time": "2014-11-10T23:00:00Z",
            "measurement": "cpu",
             "tags": {
                 "region":"uswest",
                 "host": "server01"
            },
             "fields":{
                 "value": 100
            }
         }
      ]
}'
Query for the data
curl -G http://localhost:8086/query?pretty=true \
--data-urlencode "db=mydb" --data-urlencode "q=SELECT * FROM cpu"

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 ErrDatabaseNotFound(name string) error

func ErrMeasurementNotFound

func ErrMeasurementNotFound(name string) error

func Errorf

func Errorf(format string, a ...interface{}) (err error)

func IsClientError

func IsClientError(err error) bool

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

func NewNodeBalancer(nodes []meta.NodeInfo) Balancer

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

type BuildDiagnostics struct {
	Version    string
	CommitHash string
}

BuildDiagnostics capture basic build version information.

func (*BuildDiagnostics) AsRow

func (b *BuildDiagnostics) AsRow(measurement string, tags map[string]string) *influxql.Row

AsRow returns the BuildDiagnostics object as an InfluxQL row.

type GoDiagnostics

type GoDiagnostics struct {
	GoMaxProcs   int
	NumGoroutine int
	Version      string
}

GoDiagnostics captures basic information about the runtime.

func NewGoDiagnostics

func NewGoDiagnostics() *GoDiagnostics

NewGoDiagnostics returns a GoDiagnostics object.

func (*GoDiagnostics) AsRow

func (g *GoDiagnostics) AsRow(measurement string, tags map[string]string) *influxql.Row

AsRow returns the GoDiagnostic object as an InfluxQL row.

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.

func (*MemoryDiagnostics) AsRow

func (m *MemoryDiagnostics) AsRow(measurement string, tags map[string]string) *influxql.Row

AsRow returns the MemoryDiagnostics object as an InfluxQL row.

type Stats

type Stats struct {
	// contains filtered or unexported fields
}

Stats represents a collection of metrics as key-value pairs.

func NewStats

func NewStats(name string) *Stats

NewStats returns a Stats object with the given name.

func (*Stats) Add

func (s *Stats) Add(key string, delta int64)

Add adds delta to the stat indiciated by key.

func (*Stats) Clone

func (s *Stats) Clone() *Stats

Clone returns a copy of the stats object.

func (*Stats) Diff

func (s *Stats) Diff(other *Stats) *Stats

Diff returns the difference between two sets of stats. The result is undefined if the two Stats objects do not contain the same keys.

func (*Stats) Get

func (s *Stats) Get(key string) int64

Get returns a value for a given key.

func (*Stats) Inc

func (s *Stats) Inc(key string)

Inc simply increments the given key by 1.

func (*Stats) Name

func (s *Stats) Name() string

Name returns the name of the Stats object.

func (*Stats) Set

func (s *Stats) Set(key string, v int64)

Set sets a value for the given key.

func (*Stats) String

func (s *Stats) String() string

func (*Stats) Walk

func (s *Stats) Walk(fn func(string, int64))

Walk calls f for each entry in the stats.

type SystemDiagnostics

type SystemDiagnostics struct {
	Hostname string
	PID      int
	OS       string
	Arch     string
	NumCPU   int
}

SystemDiagnostics captures basic machine data.

func NewSystemDiagnostics

func NewSystemDiagnostics() *SystemDiagnostics

NewSystemDiagnostics returns a SystemDiagnostics object.

func (*SystemDiagnostics) AsRow

func (s *SystemDiagnostics) AsRow(measurement string, tags map[string]string) *influxql.Row

AsRow returns the GoDiagnostic object as an InfluxQL row.

Directories

Path Synopsis
internal
Package internal is a generated protocol buffer package.
Package internal is a generated protocol buffer package.
cmd
Package influxql implements a parser for the InfluxDB query language.
Package influxql implements a parser for the InfluxDB query language.
internal
Package internal is a generated protocol buffer package.
Package internal is a generated protocol buffer package.
services
hh
Package hh implements a hinted handoff for writes
Package hh implements a hinted handoff for writes
udp
tests
Package tsdb implements a durable time series database.
Package tsdb implements a durable time series database.
internal
Package internal is a generated protocol buffer package.
Package internal is a generated protocol buffer package.
The uuid package can be used to generate and parse universally unique identifiers, a standardized format in the form of a 128 bit number.
The uuid package can be used to generate and parse universally unique identifiers, a standardized format in the form of a 128 bit number.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL