a35d9602cd
If an OR was used, merging filters between different expressions would not work correctly. If one of the sides had a set of series ids with a condition and the other side had no series ids associated with the expression, all of the series from the side with a condition would have the condition ignored. Instead of defaulting a non-existant series filter to true, it should just be false and the evaluation of the one side that does exist should take care of determining if the series id should be included or not. The AND condition used false correctly so did not have to be changed. If a tag did not exist and `!=` or `!~` were used, it would return false even though the neither a field or a tag equaled those values. This has now been modified to correctly return the correct series ids and the correct condition. Also fixed a panic that would occur when a tag caused a field access to become unnecessary. The filter using the field access still got created and used even though it was unnecessary, resulting in an attempted access to a non-initialized map. Fixes #5152 and a bunch of other miscellaneous issues. |
||
---|---|---|
.github | ||
.hooks | ||
client | ||
cluster | ||
cmd | ||
etc | ||
importer | ||
influxql | ||
models | ||
monitor | ||
pkg | ||
scripts | ||
services | ||
stress | ||
tcp | ||
tests | ||
toml | ||
tsdb | ||
uuid | ||
.dockerignore | ||
.gitignore | ||
CHANGELOG.md | ||
CODING_GUIDELINES.md | ||
CONTRIBUTING.md | ||
DOCKER.md | ||
Dockerfile | ||
Dockerfile_build_ubuntu32 | ||
Dockerfile_build_ubuntu64 | ||
Dockerfile_build_ubuntu64_git | ||
Dockerfile_test_ubuntu32 | ||
Godeps | ||
LICENSE | ||
LICENSE_OF_DEPENDENCIES.md | ||
Makefile | ||
QUERIES.md | ||
README.md | ||
build-docker.sh | ||
build.py | ||
build.sh | ||
circle-test.sh | ||
circle.yml | ||
errors.go | ||
gobuild.sh | ||
influxdb.go | ||
influxvar.go | ||
nightly.sh | ||
node.go | ||
package.sh | ||
test.sh |
README.md
InfluxDB
An Open-Source, Distributed, Time Series Database
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. Clustering is currently in an alpha state.
- 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 withsystemd
. For example, Ubuntu 15 or later.$GOPATH/bin/influxd
if you have built InfluxDB from source.
Getting Started
Create 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'"
Documentation
- Read more about the design goals and motivations of the project.
- Follow the getting started guide to learn the basics in just a few minutes.
- Learn more about InfluxDB's key concepts.
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.
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.