gernest / requiemdb

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:Apache License 2.0


Languages

Language:Go 96.0%Language:TypeScript 4.0%Language:JavaScript 0.1%