b86c0d31d7
Add StressTest type and auxillary interfaces Add config structs Move generator to config Add utility methods used in stress Add basic components for a stress test Add touches Add configuration options Add unified results handlers Add final print out of results Add Success function to response type Add query support Send query results Add comments to run.go Change Basic to BasicWriter Add basic query Add incomplete README Abstract out response handling Change plugin to basic Add responseHandler type Add additional parameter to Query function Add todo comments and cleanup main Lower hard coded value Add flag for profiling Fix race condition Wait at the right place Chane point from struct to interface Improve generic write throughput Reorganize Fastest State Add toml config Add test server Add basic working version of config file Move config file logic into its own file Fix broken config file Add query count to stress config Add support for concurrency and batch interval Reorder config option Remove unneeded init Remove old stress package Move new stress code into stress directory Rework influx_stress tool Do something reasonable if no config is given Remove unneeded comments Add tests for stress package Add comments and reorganize code Add more comments Count lines posted correctly Add NewConfig method Fix style issues Add backticks to flag description Fix grammar Remove `StartTimer` calls where appropriate Fix comment language Change Reader to Querier Reorder defer Fix issues bought up by golint Add more comments Add more detailed Readme Increase counter appropriately Add return errors where appropriate Add test coverage Move `now()` from QueryClient to QueryGenerator |
||
---|---|---|
.hooks | ||
client | ||
cluster | ||
cmd | ||
etc | ||
importer | ||
influxql | ||
meta | ||
models | ||
monitor | ||
pkg | ||
scripts | ||
services | ||
shared/admin | ||
snapshot | ||
statik | ||
stress | ||
tcp | ||
tests | ||
toml | ||
tsdb | ||
uuid | ||
.gitignore | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
DOCKER.md | ||
Dockerfile | ||
Dockerfile_test_ubuntu32 | ||
LICENSE | ||
LICENSE_OF_DEPENDENCIES.md | ||
Makefile | ||
QUERIES.md | ||
README.md | ||
build-docker.sh | ||
circle-test.sh | ||
circle.yml | ||
errors.go | ||
influxvar.go | ||
nightly.sh | ||
package.sh | ||
test-32bit-docker.sh |
README.md
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.systemctl start influxdb
if you have installed InfluxDB using an official Debian or RPM package, and are running a distro withsystemd
. For example, Ubuntu 15 or later.$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.