GreptimeTeam /greptimedb

The open-source observability database. One columnar engine for metrics, logs, and traces, on object storage.

★ 6,783⑂ 576👁 54▤ 267
RustCreated 2022-04-11greptime.com/product/db
6,783
stars
+0+5+60
576
forks
54
watchers
–
prs
–
issues
267
releases
–
discussions

README

Metrics, logs, and traces.
One engine, on your infrastructure.



User Guide  · 
API Docs  · 
Live Demo  · 
Roadmap 2026  · 
Slack







stable for production  ·  canary includes pre-releases  ·  nightly is a weekly snapshot of main



 Introduction

GreptimeDB is an open-source observability database. Metrics, logs, and traces run on one columnar engine over object storage and share one table model: tags, timestamp, and fields. When signals carry common identifiers such as service, host, or trace ID, you can correlate them in SQL without moving data between databases.

Ingest through OpenTelemetry, Prometheus Remote Write, Loki Push, or Elasticsearch Bulk. Use SQL across observability data and PromQL for metrics. Migrate ingestion one signal at a time without rebuilding your collectors.

 One Query Across Signals

OpenTelemetry ingestion writes spans to opentelemetry_traces and log records to
opentelemetry_logs. Both tables carry trace_id, so correlating them is a join:

sql
-- The slowest failed spans in the last hour,
-- with the log lines emitted inside those same traces.
SELECT
    t.service_name,
    t.span_name,
    t.duration_nano / 1000000 AS duration_ms,
    l.timestamp AS log_time,
    l.severity_text,
    l.body
FROM opentelemetry_traces t
JOIN opentelemetry_logs l ON l.trace_id = t.trace_id
WHERE t.timestamp  now() - INTERVAL '1' HOUR
  AND t.span_status_code = 'STATUS_CODE_ERROR'
ORDER BY t.duration_nano DESC
LIMIT 20;


Metrics join the same way, on any tag the tables share, such as service,
host, or pod.

 Try GreptimeDB

For AI agents — paste this prompt into your agent:

text
Read https://docs.greptime.com/SKILL.md and follow the instructions
to deploy, configure, ingest, and query GreptimeDB.


shell
docker run -p 127.0.0.1:4000-4003:4000-4003 \
  -v "$(pwd)/greptimedb_data:/greptimedb_data" \
  --name greptime --rm \
  greptime/greptimedb:latest standalone start \
  --http-addr 0.0.0.0:4000 \
  --grpc-bind-addr 0.0.0.0:4001 \
  --mysql-addr 0.0.0.0:4002 \
  --postgres-addr 0.0.0.0:4003

Dashboard: http://localhost:4000/dashboard  
Or skip the install and try the Live Demo.

Next: Quickstart, the full Install Guide, Demo Scenes, and the FAQ.

 Why You Might Use It

- You run Prometheus plus Loki or Elasticsearch and want one backend instead of three
- You have outgrown Prometheus on cardinality or retention and don't want the Thanos/Mimir operational surface
- You are hitting Loki's query performance limits as log volume grows
- You need long retention on object storage without a separate analytics stack
- You want to query telemetry with SQL, not only a domain query language
- You are storing GenAI or agent telemetry (OTel GenAI conventions) alongside infrastructure signals

Learn more in Why GreptimeDB.

 What's Supported

| | |
|---|---|
| Ingest | OpenTelemetry (OTLP), Prometheus Remote Write (with native histograms over Remote Write 2.0), Loki Push, Elasticsearch

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON