All Projects → jaegertracing → jaeger-clickhouse

jaegertracing / jaeger-clickhouse

Licence: Apache-2.0 License
Jaeger ClickHouse storage plugin implementation

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to jaeger-clickhouse

protobuf-compiler
online protobuf compiler
Stars: ✭ 24 (-76.7%)
Mutual labels:  grpc
vtprotobuf
A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2
Stars: ✭ 418 (+305.83%)
Mutual labels:  grpc
tsrpc
A TypeScript RPC framework, with runtime type checking and serialization, support both HTTP and WebSocket. It is very suitable for website / APP / games, and absolutely comfortable to full-stack TypeScript developers.
Stars: ✭ 866 (+740.78%)
Mutual labels:  grpc
horgh-replicator
Golang binlog replication from MySQL to MySQL, PostgreSQL, Vertica, Clickhouse
Stars: ✭ 46 (-55.34%)
Mutual labels:  clickhouse
engine
a plugin based grpc framework
Stars: ✭ 16 (-84.47%)
Mutual labels:  grpc
Addax
Addax is an open source universal ETL tool that supports most of those RDBMS and NoSQLs on the planet, helping you transfer data from any one place to another.
Stars: ✭ 615 (+497.09%)
Mutual labels:  clickhouse
ddns
Simple restful dynamic DNS service
Stars: ✭ 25 (-75.73%)
Mutual labels:  grpc
Mediator
Cross-platform GUI gRPC debugging proxy
Stars: ✭ 36 (-65.05%)
Mutual labels:  grpc
gnmi-map
gNMI service map
Stars: ✭ 23 (-77.67%)
Mutual labels:  grpc
gatling-grpc
A Gatling load test plugin for gRPC
Stars: ✭ 87 (-15.53%)
Mutual labels:  grpc
Search Ads Web Service
Online search advertisement platform & Realtime Campaign Monitoring [Maybe Deprecated]
Stars: ✭ 30 (-70.87%)
Mutual labels:  grpc
nameko-grpc
GRPC Extensions for Nameko
Stars: ✭ 51 (-50.49%)
Mutual labels:  grpc
upper
Upper is a open source back-end framework based on the Dart language.
Stars: ✭ 39 (-62.14%)
Mutual labels:  grpc
pcap-processor
Read and process pcap files using this nifty tool
Stars: ✭ 36 (-65.05%)
Mutual labels:  grpc
yorkie-rust-sdk
Yorkie Rust SDK
Stars: ✭ 13 (-87.38%)
Mutual labels:  grpc
np-flink
flink详细学习实践
Stars: ✭ 26 (-74.76%)
Mutual labels:  clickhouse
ldhcpd
Light DHCPd -- a DHCP server with a small feature set and a remotely programmable control plane
Stars: ✭ 49 (-52.43%)
Mutual labels:  grpc
post-kafka-opentracing
Post: Tracing Kafka Applications
Stars: ✭ 18 (-82.52%)
Mutual labels:  jaegertracing
phalanx
Phalanx is a cloud-native distributed search engine that provides endpoints through gRPC and traditional RESTful API.
Stars: ✭ 192 (+86.41%)
Mutual labels:  grpc
citadel
Turn an arbitrary command into a Kubernetes Key Management Service GRPC server
Stars: ✭ 15 (-85.44%)
Mutual labels:  grpc

Jaeger ClickHouse

This is implementation of Jaeger's storage plugin for ClickHouse. See as well jaegertracing/jaeger/issues/1438 for historical discussion regarding Clickhouse plugin.

Project status

Jaeger ClickHouse is a community-driven project, we would love to hear your feature requests. Pull requests also will be greatly appreciated.

Why use ClickHouse for Jaeger?

ClickHouse is an analytical column-oriented database management system. It is designed to analyze streams of clicks which are kind of resemblant to spans. It's open-source, optimized for performance, and actively developed.

How it works?

Jaeger spans are stored in 2 tables. First one contains whole span encoded either in JSON or Protobuf. Second stores key information about spans for searching. This table is indexed by span duration and tags. Also, info about operations is stored in the materialized view. There are not indexes for archived spans. Storing data in replicated local tables with distributed global tables is natively supported. Spans are bufferized. Span buffers are flushed to DB either by timer or after reaching max batch size. Timer interval and batch size can be set in config file.

Database schema generated by JetBrains DataGrip Picture of tables

How to start using Jaeger over ClickHouse

Documentation

Refer to the config.yaml for all supported configuration options.

Build & Run

Docker database example

docker run --rm -it -p9000:9000 --name some-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server:21
GOOS=linux make build run
make run-hotrod

Open localhost:16686 and localhost:8080.

Custom database

You need to specify connection options in config.yaml file, then you can run

make build
SPAN_STORAGE_TYPE=grpc-plugin {Jaeger binary adress} --query.ui-config=jaeger-ui.json --grpc-storage-plugin.binary=./{name of built binary} --grpc-storage-plugin.configuration-file=config.yaml --grpc-storage-plugin.log-level=debug

Credits

This project is based on https://github.com/bobrik/jaeger/tree/ivan/clickhouse/plugin/storage/clickhouse.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].