feat: greptimedb plugin as skywalking backend storage#1
feat: greptimedb plugin as skywalking backend storage#1killme2008 wants to merge 8 commits intomasterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds GreptimeDB as a new storage backend for Apache SkyWalking. GreptimeDB is an open-source, cloud-native time-series database. The implementation uses a dual-protocol architecture: gRPC for high-throughput asynchronous writes (port 4001) and MySQL protocol via JDBC for queries and DDL (port 4002). The plugin implements all 36 DAO interfaces required by SkyWalking and leverages GreptimeDB's native features including TTL management, merge modes for metrics, and append mode for records.
Changes:
- Added complete GreptimeDB storage plugin with client, schema management, and 36 DAO implementations
- Integrated plugin into build system and module configuration
- Added comprehensive unit tests, integration tests, and E2E tests
- Added documentation for setup and configuration
Reviewed changes
Copilot reviewed 63 out of 63 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
pom.xml |
Added GreptimeDB plugin module and Maven dependencies including ingester SDK, gRPC, and MySQL connector |
GreptimeDBStorageProvider.java |
Main module provider registering all storage services and DAO implementations |
GreptimeDBStorageClient.java |
Dual-protocol client managing gRPC connection for writes and JDBC connection pool for reads |
GreptimeDBStorageConfig.java |
Configuration class for connection settings, TTLs, and performance tuning |
GreptimeDBConverter.java |
Data type mapping and conversion utilities between SkyWalking and GreptimeDB |
GreptimeDBTableInstaller.java |
Schema installation with DDL generation for tables, indexes, and TTL options |
SchemaRegistry.java |
Caches table schemas and column mappings for write operations |
dao/*.java |
36 DAO implementations covering metrics, traces, logs, profiling, and management data |
test/**/*.java |
Unit tests, integration tests with Testcontainers |
e2e-v2/cases/storage/greptimedb/* |
E2E test configuration and scenarios |
docs/**/*.md |
Setup documentation and architecture description |
application.yml |
Configuration template with environment variables |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...pache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBAggregationQueryDAO.java
Show resolved
Hide resolved
...pache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBAggregationQueryDAO.java
Show resolved
Hide resolved
...org/apache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBZipkinQueryDAO.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 67 out of 67 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...pache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBAggregationQueryDAO.java
Show resolved
Hide resolved
...pache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBAggregationQueryDAO.java
Show resolved
Hide resolved
...org/apache/skywalking/oap/server/storage/plugin/greptimedb/dao/GreptimeDBZipkinQueryDAO.java
Show resolved
Hide resolved
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
8e9f727 to
32e163f
Compare
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
CHANGESlog.