Skip to content

Pure Go Permanent Storage For Open Telemetry Metrics, Traces and Logs, based on Compressed Roaring B-Tree Bitmaps, using Typescript as Query Language

License

Notifications You must be signed in to change notification settings

gernest/requiemdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

requiemdb

Permanent Storage for Open Telemetry Data.

Features

  • OTLP gRPC server: You can send metrics, traces and logs directly from your apps using otel gRPC exporter. Works with all supported language SDK.
  • Query as code: version, reuse , run or experiment with scripts.
  • Embedded javascript engine: Use modern javascript or typescript for querying.
  • Standard compliant data: Work with data as defined in Open Telemetry Standards

You don't need bespoke query language to understand and get insight from your applications. Work with samples as defined in Open Telemetry Protocol using modern javascript or typescript.

Getting started

Installation

You can see release page for downloads if you have go installed do this

go install github.com/gernest/requiemdb/cmd/rq@latest

This will have rq binary installed

Start the server

rq

Wait for 2 minutes to have rq collect the process stats so we can query them.

Metrics,traces and logs emitted by rq are stored in the same rq instance. This is to allow quick evaluation of rq capabilities before deployment.

Let's check system cpu time, create a file cpu.ts

// cpu.ts
import { Metrics } from "@requiemdb/rq";

/**
 * Query instant system.cpu.time
 */
Metrics.render(
    (new Metrics()).
        name("system.cpu.time").
        query()
)
rq query cpu.ts
system.cpu.time
TIMESTAMP            VALUE         ATTRIBUTES            
2024-04-03 14:37:40  193h2m11.21s  { state = "idle" }    
2024-04-03 14:37:40  13h36m20.38s  { state = "user" }    
2024-04-03 14:37:40  8h20m8.09s    { state = "system" }  
2024-04-03 14:37:40  0s            { state = "other" }   

Sending data

RQ_OTLP_LISTEN=localhost:4317 rq

Configure your gRPC exporter to use RQ_OTLP_LISTEN endpoint.

About

Pure Go Permanent Storage For Open Telemetry Metrics, Traces and Logs, based on Compressed Roaring B-Tree Bitmaps, using Typescript as Query Language

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published