oteldb

package module
v0.12.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2024 License: Apache-2.0 Imports: 0 Imported by: 0

README

oteldb svg logo

oteldb codecov experimental

The next generation, OpenTelemetry-first aggregation system for metrics, traces and logs.

Compatible with PromQL, TraceQL and LogQL.

Based on ClickHouse, fastest open-source (Apache 2.0) column-oriented database.

[!WARNING] Work in progress. Not ready for production use.

Supported query languages:

Supported ingestion protocols:

  • Prometheus remote write, including exemplars
  • OpenTelemetry protocol (gRPC) for metrics, traces and logs

Ingestion is possible with OpenTelemetry collector, supporting over 90 protocols.

Prometheus Compatibility

See ch-compliance for Prometheus compatibility tests.

$ promql-compliance-tester -config-file promql-test-queries.yml -config-file test.oteldb.yml
Total: 547 / 548 (99.82%) passed, 0 unsupported

Quick Start

Setup oteldb, ClickHouse, Grafana, and telemetry generators:

docker compose -f dev/local/ch/docker-compose.yml up -d

You can open Grafana dashboard at http://localhost:3000/d/oteldb/oteldb

License

Apache License 2.0, see LICENSE.

Documentation

Overview

Package oteldb is OpenTelemetry-compatible storage.

Directories

Path Synopsis
cmd
chotel
Binary chotel exports clichkouse traces to otel collector.
Binary chotel exports clichkouse traces to otel collector.
otelbench
Binary otelbench implements benchmarking suite for oteldb.
Binary otelbench implements benchmarking suite for oteldb.
otelproxy
Command otelproxy is a Grafana datasource proxy.
Command otelproxy is a Grafana datasource proxy.
promql-compliance-tester
Binary promql-compliance-tester performs promql compliance testing based on provided configuration, comparing results with reference implementation.
Binary promql-compliance-tester performs promql compliance testing based on provided configuration, comparing results with reference implementation.
dev
Package integration wraps integration
Package integration wraps integration
lokie2e
Package lokie2e provides scripts for E2E testing Loki API implementation.
Package lokie2e provides scripts for E2E testing Loki API implementation.
prome2e
Package prome2e provides scripts for E2E testing Prometheus API implementation.
Package prome2e provides scripts for E2E testing Prometheus API implementation.
tempoe2e
Package tempoe2e provides scripts for E2E testing Tempo API implementation.
Package tempoe2e provides scripts for E2E testing Tempo API implementation.
Package internal contains go:generate annotations.
Package internal contains go:generate annotations.
autozpages
Package autozpages setups zPages handler.
Package autozpages setups zPages handler.
chstorage
Package chstorage provides Clickhouse-based storage.
Package chstorage provides Clickhouse-based storage.
chtrace
Package chtrace implements reading ClickHouse traces.
Package chtrace implements reading ClickHouse traces.
ddl
Package ddl provides facilities for generating DDL statements and auxiliary code.
Package ddl provides facilities for generating DDL statements and auxiliary code.
faker
Package faker implement a fake telemetry generator.
Package faker implement a fake telemetry generator.
httpmiddleware
Package httpmiddleware contains HTTP middlewares.
Package httpmiddleware contains HTTP middlewares.
iterators
Package iterators define storage iterator interfaces and some utilities.
Package iterators define storage iterator interfaces and some utilities.
lexerql
Package lexerql provides utilities for lexing in *QL languages.
Package lexerql provides utilities for lexing in *QL languages.
logparser
Package logparser parses logs.
Package logparser parses logs.
logql
Package logql contains LogQL parser and AST definitions.
Package logql contains LogQL parser and AST definitions.
logql/lexer
Package lexer contains LogQL lexer.
Package lexer contains LogQL lexer.
logql/logqlengine
Package logqlengine implements LogQL evaluation engine.
Package logqlengine implements LogQL evaluation engine.
logql/logqlengine/jsonexpr
Package jsonexpr provides JSON extractor expression parser.
Package jsonexpr provides JSON extractor expression parser.
logql/logqlengine/logqlabels
Package logqlabels contains LogQL label utilities.
Package logqlabels contains LogQL label utilities.
logql/logqlengine/logqlerrors
Package logqlerrors defines LogQL engine errors.
Package logqlerrors defines LogQL engine errors.
logql/logqlengine/logqlmetric
Package logqlmetric provides metric queries implementation.
Package logqlmetric provides metric queries implementation.
logql/logqlengine/logqlpattern
Package logqlpattern contains parser for LogQL `pattern` stage pattern.
Package logqlpattern contains parser for LogQL `pattern` stage pattern.
logstorage
Package logstorage defines storage structure for logs storage.
Package logstorage defines storage structure for logs storage.
lokiapi
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
lokicompliance
Package lokicompliance provides utilities for Loki/LogQL compliance testing.
Package lokicompliance provides utilities for Loki/LogQL compliance testing.
lokihandler
Package lokihandler provides Loki API implementation.
Package lokihandler provides Loki API implementation.
lokiproxy
Package lokiproxy provides Loki proxy for observability and research.
Package lokiproxy provides Loki proxy for observability and research.
metricstorage
Package metricstorage defines storage structure for metric storage.
Package metricstorage defines storage structure for metric storage.
otelreceiver
Package otelreceiver provides simple wrapper to setup trace receiver.
Package otelreceiver provides simple wrapper to setup trace receiver.
otelreceiver/oteldbexporter
Package oteldbexporter contains oteldb exporter factory.
Package oteldbexporter contains oteldb exporter factory.
otelreceiver/prometheusremotewrite
Package prometheusremotewrite contains translator from Prometheus remote write format to OTLP metrics.
Package prometheusremotewrite contains translator from Prometheus remote write format to OTLP metrics.
otelreceiver/prometheusremotewritereceiver
Package prometheusremotewritereceiver implements Prometheus Remote Write API for OTLP collector.
Package prometheusremotewritereceiver implements Prometheus Remote Write API for OTLP collector.
otelschema
Package otelschema implements reading OpenTelemetry semantic convention schemas.
Package otelschema implements reading OpenTelemetry semantic convention schemas.
otelstorage
Package otelstorage contains common types and utilities for storing OpenTelemetry data.
Package otelstorage contains common types and utilities for storing OpenTelemetry data.
promapi
Package promapi contains generated code for OpenAPI specification.
Package promapi contains generated code for OpenAPI specification.
promhandler
Package promhandler provides Prometheus API implementation.
Package promhandler provides Prometheus API implementation.
promproxy
Package promproxy provides Prometheus proxy for observability and research.
Package promproxy provides Prometheus proxy for observability and research.
pyroproxy
Package pyroproxy provides Pyroscope proxy for observability and research.
Package pyroproxy provides Pyroscope proxy for observability and research.
tempoapi
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.
tempohandler
Package tempohandler provides Tempo API implementation.
Package tempohandler provides Tempo API implementation.
tempoproxy
Package tempoproxy provides Tempo proxy for observability and research.
Package tempoproxy provides Tempo proxy for observability and research.
traceql
Package traceql contains TraceQL parser and AST definitions.
Package traceql contains TraceQL parser and AST definitions.
traceql/lexer
Package lexer contains TraceQL lexer.
Package lexer contains TraceQL lexer.
traceql/traceqlengine
Package traceqlengine implements TraceQL evaluation engine.
Package traceqlengine implements TraceQL evaluation engine.
tracestorage
Package tracestorage defines storage structure for trace storage.
Package tracestorage defines storage structure for trace storage.
xattribute
Package xattribute provides some helpers to create OpenTelemetry attributes.
Package xattribute provides some helpers to create OpenTelemetry attributes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL