Ingest Data
GreptimeDB accepts data through established observability and database protocols, so most sources write to it without a custom client. This page maps each source to the protocol it writes with and the guide that covers it.
Choose an Ingestion Path
| Data comes from | Writes with | Guide |
|---|---|---|
| OpenTelemetry SDK | OTLP/HTTP | OpenTelemetry Protocol (OTLP) |
| OpenTelemetry Collector | OTLP/HTTP exporter | OTel Collector |
| Prometheus | Remote Write | Prometheus |
| Grafana Alloy | Remote Write, OTLP, or Loki | Grafana Alloy |
| Loki clients | Loki Push API | Loki |
| Elasticsearch clients | Bulk API | Elasticsearch |
| Splunk shippers | HTTP Event Collector (HEC) | Splunk |
| Vector | greptimedb_metrics or greptimedb_logs sink | Vector |
| Fluent Bit | HTTP output for logs, OpenTelemetry output for all three signals | Fluent Bit |
| Kafka topics | Vector as the transport | Kafka |
| Telegraf or InfluxDB clients | InfluxDB line protocol | InfluxDB Line Protocol |
| OpenTSDB clients | /v1/opentsdb/api/put | OpenTSDB |
| MQTT devices | EMQX data integration | EMQX |
| Your own application | gRPC SDK | gRPC SDKs |
| Existing SQL tooling | MySQL or PostgreSQL protocol | SQL |
| Flink jobs | Flink SQL, the Table API, or the DataStream API | Apache Flink |
| Spark jobs | Batch DataFrames or Structured Streaming micro-batches | Apache Spark |
The same guides are also grouped by scenario, in observability sources and IoT sources.
Text logs and traces need more than a write protocol. See Logs for parsing and transforming logs with pipelines, and Traces for storing and querying OTLP traces.
Automatic Schema Generation
GreptimeDB creates the table and adds columns as data arrives, so no table has to be defined in advance.
All protocols and integrations support this except SQL, Apache Flink, and Apache Spark.
Next Steps
- Query Data — SQL, PromQL, and the Jaeger-compatible API.
- Update, Delete, and TTL — updating by overwrite, deleting, and expiring data.