Boost your GreptimeDB performance with YoMo: Leverage QUIC for rapid and reliable data ingestion.
This repository showcases how to utilize GreptimeDB for data transportation via YoMo. We will use Yomo's fast and reliable QUIC transport to send local IoT or Observability metrics data to a remote function that ingests the data into time-series database, GreptimeDB.
flowchart LR
greptimedb[(GreptimeDB)]
subgraph yomo[YoMo]
sfn
end
subgraph Edge
source
end
subgraph Central
yomo
greptimedb
end
source --> |fa:fa-cloud Line Protocol over YoMo QUIC Transport| sfn
sfn --> |HTTP| greptimedb
- Clone this reposiotry
git clone https://github.com/yomorun/GreptimeDB-YoMo.git
cd GreptimeDB-YoMo
- Install GreptimeDB (This example uses Docker. For additional installation methods, refer to the GreptimeDB documentation).
docker run -p 127.0.0.1:4000-4003:4000-4003 \
-v "$(pwd)/greptimedb:/tmp/greptimedb" \
--name greptime --rm \
greptime/greptimedb:v0.8.2 standalone start \
--http-addr 0.0.0.0:4000 \
--rpc-addr 0.0.0.0:4001 \
--mysql-addr 0.0.0.0:4002 \
--postgres-addr 0.0.0.0:4003
- Install YoMo
curl -fsSL https://get.yomo.run | sh
- Start yomo zipper service
yomo serve -c config.yaml
- Run yomo sfn, sfn bridges GreptimeDB and YoMo
cd sfn && GREPTIMEDB_HTTP_ADDR=localhost:4000 yomo run app.go
- Start the log generator, this will generate ingest data in Line Protocol format and send it to the YoMo zipper service over QUIC.
# This sample shows how to monitor the cpu metrics
go run cpu-agent/main.go
# This sample shows how to monitor the gpu metrics
go run gpu-agent/main.go
- Verify that the data has been successfully written to GreptimeDB.
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'sql=select * from monitor' \
http://localhost:4000/v1/sql?db=public
- Configure charts for GPU metrics in Greptime Cloud Workbench