All Projects → lindb → Lindb

lindb / Lindb

Licence: apache-2.0
LinDB is a scalable, high performance, high availability distributed time series database.

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Less
1899 projects
ANTLR
299 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Lindb

Stagemonitor
an open source solution to application performance monitoring for java server applications
Stars: ✭ 1,664 (-20.95%)
Mutual labels:  monitoring, metrics
Heplify Server
HEP Capture Server
Stars: ✭ 110 (-94.77%)
Mutual labels:  monitoring, metrics
Pingprom
Prometheus uptime monitoring quickstart
Stars: ✭ 107 (-94.92%)
Mutual labels:  monitoring, metrics
Miraql
GraphQL performance monitoring & error-handling tool
Stars: ✭ 97 (-95.39%)
Mutual labels:  monitoring, metrics
Rabbitmq Prometheus
A minimalistic Prometheus exporter of core RabbitMQ metrics
Stars: ✭ 124 (-94.11%)
Mutual labels:  monitoring, metrics
Polymur
A fast carbon-relay with live routing controls + https Graphite forwarder
Stars: ✭ 97 (-95.39%)
Mutual labels:  monitoring, metrics
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+2081.95%)
Mutual labels:  monitoring, metrics
Kamon
Distributed Tracing, Metrics and Context Propagation for application running on the JVM
Stars: ✭ 1,280 (-39.19%)
Mutual labels:  monitoring, metrics
Icinga2
Icinga is a monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.
Stars: ✭ 1,670 (-20.67%)
Mutual labels:  monitoring, metrics
Telegraf
The plugin-driven server agent for collecting & reporting metrics.
Stars: ✭ 10,925 (+419%)
Mutual labels:  monitoring, metrics
Amon
Amon is a modern server monitoring platform.
Stars: ✭ 1,331 (-36.77%)
Mutual labels:  monitoring, metrics
Opencensus Csharp
Distributed tracing and stats collecting framework
Stars: ✭ 126 (-94.01%)
Mutual labels:  monitoring, metrics
Es Stats
ElasticSearch cluster metrics -> Graphite
Stars: ✭ 91 (-95.68%)
Mutual labels:  monitoring, metrics
Yabeda Rails
Yabeda plugin to collect basic metrics for Rails applications
Stars: ✭ 99 (-95.3%)
Mutual labels:  monitoring, metrics
Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (-95.82%)
Mutual labels:  monitoring, metrics
Prometheus
The Prometheus monitoring system and time series database.
Stars: ✭ 40,114 (+1805.65%)
Mutual labels:  monitoring, metrics
Beamium
Prometheus to Warp10 metrics forwarder
Stars: ✭ 82 (-96.1%)
Mutual labels:  monitoring, metrics
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (-95.87%)
Mutual labels:  monitoring, metrics
Zabbix
Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
Stars: ✭ 1,914 (-9.07%)
Mutual labels:  monitoring, metrics
Statsd Vis
Standalone StatsD server with built-in visualization
Stars: ✭ 124 (-94.11%)
Mutual labels:  monitoring, metrics

LICENSE Language Go Report Card Github Actions Status Github Actions Status codecov contribution

English | 简体中文

What is LinDB?

LinDB is an open-source Time Series Database which provides high performance, high availability and horizontal scalability.

LinDB stores all monitoring data of ELEME Inc, there is 88TB incremental writes per day and 2.7PB total raw data.

  • High performance

    LinDB takes a lot of best practice of TSDB and implements some optimizations based on the characteristics of time series data. Unlike writing a lot of Continuous-Query for InfluxDB, LinDB supports rollup in specific interval automatically after creating the database. Moreover, LinDB is extremely fast for parallel querying and computing of distributed time series data.

  • Multi-Active IDCs native

    LinDB is designed to work under a Multi-Active IDCs cloud architecture. The compute layer of LinDB, called brokers, supports efficient Multi-IDCs aggregation query.

  • High availability

    LinDB uses the ETCD cluster to ensure the meta-data is highly available and safely stored. In the event of failure, the Multi-channel replication protocol of WAL will avoid the problem of data inconsistency:

    1). Only one person in each replication channel is responsible for the authority of the data, so the conflicts will not happen;

    2). Data reliability is guaranteed: as long as the data that has not been copied in the old leader is not lost, it will be copied to other replication while the old leader is online again;

  • Horizontal scalability

    Series(Tags) based sharding strategy in LinDB solves the hotspots problem, and is truly horizontally expanded available by simply adding new broker and storage nodes.

  • Governance capability of metrics

    To ensure the robustness of the system, LinDB do not assume that users has understood the best practices of using metrics, therefore, LinDB provides the ability of restricting unfriendly user based on metric granularity and tags granularity.

State of this project

The current develop branch is unstable and is not recommended for production use. LinDB 0.1(what will be the first release version) is currently in the development stage. Additional features will arrive during July and August, we will translate the JAVA version of LinDB currently used under the production environment to Golang as soon as possible. The GO version is not only a simple translation of the JAVA version, but has been redesigned in many aspects.

Once we implement the final feature and replace the LinDB under production environment with the Golang version, LinDB 0.1.0 will be released. At that point, we will move into the stable phase, our intention is to avoid breaking changes to the API and storage file format.

Build

Prerequisites

To build LinDB from source you require the following on your system.

Get the code

git clone https://github.com/lindb/lindb.git
cd lindb

Build from source

To build only LinDB core.(without web console)

make build

To build both LinDB core and frontend.

make build-all

Test

make test

Access web interface(for developer)

Start the node.js app to view LinDB web interface.

cd web
yarn start

You can access the LinDB web interface on your localhost port 3000

Deploy

LinDB can be deployed in both cluster mode and standalone mode.

Standalone mode

You can try out fully functional LinDB on your local system via the standalone mode. In standalone mode LinDB will be deployed with embedded broker, storage and etcd.

./bin/lind standalone init-config
./bin/lind standalone run

Make sure that the binary file is built from make build-all You can access the LinDB web console on your localhost port 9000

Cluster mode (todo)

Architecture

architecture

Contributing

Contributions are welcomed and greatly appreciated. See CONTRIBUTING for details on submitting patches and the contribution workflow.

CI

Pull requests should be appropriately labeled, and linked to any relevant bug or feature tracking issues. All pull requests will run through GITHUB-Actions. Community contributors should be able to see the outcome of this process by looking at the checks on their PR and fix the build errors.

Static Analysis

This project uses the following linters. Failure during the running of any of these tools results in a failed build. Generally, code must be adjusted to satisfy these tools.

  • gofmt - Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification;
  • golint - Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes;
  • goimports - Goimports does everything that gofmt does. Additionally it checks unused imports;
  • errcheck - Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases;
  • gocyclo - Computes and checks the cyclomatic complexity of functions;
  • maligned - Tool to detect Go structs that would take less memory if their fields were sorted;
  • dupl - Tool for code clone detection;
  • goconst - Finds repeated strings that could be replaced by a constant;
  • gocritic - The most opinionated Go source code linter;

License

LinDB is under the Apache 2.0 license. See the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].