Skip to content

tcw/ibsen

Repository files navigation

Ibsen (under development)

ibsen mascot

Install

GO

go install github.com/tcw/ibsen@latest

Docker

Create image

./release.sh

With Golang

With Docker

Build

docker build -t ibsen .

Run

docker run --name ibsen_solveig -p 50001:50001 ibsen

Usage

GRPC

clients are under development

Development

Create grpc api

GO

protoc --proto_path=api/grpcApi ibsen.proto --go_out=plugins=grpc:./

Java

protoc --proto_path=api/grpc/JavaApi --java_out=api/grpc/JavaApi ibsen.proto

Profiling

ibsen server -d <path> -z cpu.pprof -y mem.pprof
go tool pprof cpu.pprof
> weblist ibsen
> evince
go tool pprof mem.pprof
> evince

gRPC logging

GRPC_GO_LOG_VERBOSITY_LEVEL=99 GRPC_GO_LOG_SEVERITY_LEVEL=info 

Security

Create ssl certs (for grpc)

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem 
openssl x509 -in ca-cert.pem -noout -text
openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem 
openssl x509 -req -in server-req.pem -days 180 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile server-ext.cnf
openssl x509 -in server-cert.pem -noout -text

Todo

  • better command completion
  • improve error recovery/analysis
  • improve system status
  • add clients (go,java,kotlin,clojure,python,...)

Benchmarks

create data tmp directory

Start server

ibsen server -d "/tmp/ibsen/data"

To free pagecache in linux:

echo 1 > /proc/sys/vm/drop_caches 

OpenTelemetry

docker run -v collector-gateway.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:0.54.0

client generation

apt install -y protobuf-compiler go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages