• Stars
    star
    4,277
  • Rank 10,083 (Top 0.2 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 11 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open-source, cloud-native, unified time series database for metrics, logs and events with SQL/PromQL supported. Available on GreptimeCloud.

GreptimeDB Logo

The next-generation hybrid time-series/analytics processing database in the cloud

  CI  

    slack

What is GreptimeDB

GreptimeDB is an open-source time-series database with a special focus on scalability, analytical capabilities and efficiency. It's designed to work on infrastructure of the cloud era, and users benefit from its elasticity and commodity storage.

Our core developers have been building time-series data platform for years. Based on their best-practices, GreptimeDB is born to give you:

  • A standalone binary that scales to highly-available distributed cluster, providing a transparent experience for cluster users
  • Optimized columnar layout for handling time-series data; compacted, compressed, and stored on various storage backends
  • Flexible indexes, tackling high cardinality issues down
  • Distributed, parallel query execution, leveraging elastic computing resource
  • Native SQL, and Python scripting for advanced analytical scenarios
  • Widely adopted database protocols and APIs, native PromQL supports
  • Extensible table engine architecture for extensive workloads

Quick Start

GreptimePlay

Try out the features of GreptimeDB right from your browser.

GreptimePlay

Build

Build from Source

To compile GreptimeDB from source, you'll need:

  • C/C++ Toolchain: provides basic tools for compiling and linking. This is available as build-essential on ubuntu and similar name on other platforms.
  • Rust: the easiest way to install Rust is to use rustup, which will check our rust-toolchain file and install correct Rust version for you.
  • Protobuf: protoc is required for compiling .proto files. protobuf is available from major package manager on macos and linux distributions. You can find an installation instructions here. Note that protoc version needs to be >= 3.15 because we have used the optional keyword. You can check it with protoc --version.
  • python3-dev or python3-devel(Optional feature, only needed if you want to run scripts in CPython, and also need to enable pyo3_backend feature when compiling(by cargo run -F pyo3_backend or add pyo3_backend to src/script/Cargo.toml 's features.default like default = ["python", "pyo3_backend])): this install a Python shared library required for running Python scripting engine(In CPython Mode). This is available as python3-dev on ubuntu, you can install it with sudo apt install python3-dev, or python3-devel on RPM based distributions (e.g. Fedora, Red Hat, SuSE). Mac's Python3 package should have this shared library by default. More detail for compiling with PyO3 can be found in PyO3's documentation.

Build with Docker

A docker image with necessary dependencies is provided:

docker build --network host -f docker/Dockerfile -t greptimedb .

Run

Start GreptimeDB from source code, in standalone mode:

cargo run -- standalone start

Or if you built from docker:

docker run -p 4002:4002 -v "$(pwd):/tmp/greptimedb" greptime/greptimedb standalone start

Please see the online document site for more installation options and operations info.

Get started

Read the complete getting started guide on our official document site.

To write and query data, GreptimeDB is compatible with multiple protocols and clients.

Resources

Installation

  • Pre-built Binaries: For Linux and macOS, you can easily download pre-built binaries including official releases and nightly builds that are ready to use. In most cases, downloading the version without PyO3 is sufficient. However, if you plan to run scripts in CPython (and use Python packages like NumPy and Pandas), you will need to download the version with PyO3 and install a Python with the same version as the Python in the PyO3 version. We recommend using virtualenv for the installation process to manage multiple Python versions.
  • Docker Images(recommended): pre-built Docker images, this is the easiest way to try GreptimeDB. By default it runs CPython script with pyo3_backend enabled.
  • gtctl: the command-line tool for Kubernetes deployment

Documentation

Dashboard

SDK

Project Status

This project is in its early stage and under heavy development. We move fast and break things. Benchmark on development branch may not represent its potential performance. We release pre-built binaries constantly for functional evaluation. Do not use it in production at the moment.

For future plans, check out GreptimeDB roadmap.

Community

Our core team is thrilled to see you participate in any ways you like. When you are stuck, try to ask for help by filling an issue with a detailed description of what you were trying to do and what went wrong. If you have any questions or if you would like to get involved in our community, please check out:

In addition, you may:

License

GreptimeDB uses the Apache 2.0 license to strike a balance between open contributions and allowing you to use the software however you want.

Contributing

Please refer to contribution guidelines for more information.

Acknowledgement

More Repositories

1

dashboard

The dashboard UI for GreptimeDB
Vue
77
star
2

promql-parser

PromQL Rust parser
Rust
49
star
3

docs

Document for GreptimeDB
TypeScript
36
star
4

gtctl

gtctl is a command-line tool for managing GreptimeDB cluster.
Go
35
star
5

greptimedb-operator

Run GreptimeDB on Kubernetes.
Go
34
star
6

demo-scene

👾Scripts and samples to support Greptime Demos and Talks. ⚠️Might be rough around the edges ;-)
Python
23
star
7

greptimedb-client-java

GreptimeDB Java Client
Java
20
star
8

greptimedb-client-go

GreptimeDB Go Client
Go
16
star
9

helm-charts

Helm charts for GreptimeDB.
Shell
16
star
10

greptime-proto

GreptimeDB protobuf files.
Rust
14
star
11

greptimedb-client-erl

Erlang client for GreptimeDB
Erlang
13
star
12

greptimeai

greptime instrument sdk for popular LLM (LangChain, OpenAI, etc.)
Python
13
star
13

greptimedb-ingester-rust

A Rust ingester for GreptimeDB, which is compatible with GreptimeDB protocol and lightweight.
Rust
11
star
14

bunshin

A distributed Write-Ahead log implementation for cloud
8
star
15

greptime-meter

Rust
8
star
16

greptimedb-ingester-go

A Go ingester for GreptimeDB, which is compatible with GreptimeDB protocol and lightweight.
Go
8
star
17

greptimedb-ingester-js

A Javascript ingester for GreptimeDB, which is compatible with GreptimeDB protocol and lightweight.
TypeScript
7
star
18

Community

6
star
19

greptimedb-grafana-datasource

Grafana DataSource of GreptimeDB
TypeScript
6
star
20

greptimedb-client-cpp

GreptimeDB C++ Client
CMake
6
star
21

greptimedb-ingester-java

A Java ingester for GreptimeDB, which is compatible with GreptimeDB protocol and lightweight.
Java
3
star
22

python-coprocessor-examples

The python coprocessor examples in GreptimeDB
Python
2
star
23

gshark

Observability tool based on eBPF
2
star
24

greptimedb-ingester-py

A Python ingester for GreptimeDB, which is compatible with GreptimeDB protocol and lightweight.
1
star
25

greptime_py_mock

A Python Library providing Same API in greptimedb's script feature
Python
1
star
26

greptimeai-cookbook

Examples and guides for using the GreptimeAI to instrument LLM Applications
1
star