All Projects → sascha-andres → go-logsink

sascha-andres / go-logsink

Licence: Apache-2.0 license
the multi machine cat over protocol buffers and websocket

Programming Languages

go
31211 projects - #10 most used programming language
C#
18002 projects
Makefile
30231 projects
HTML
75241 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to go-logsink

Meower
Social network for cats
Stars: ✭ 216 (+535.29%)
Mutual labels:  cat
vscode-buf
Visual Studio Code integration for Buf.
Stars: ✭ 40 (+17.65%)
Mutual labels:  protocol-buffers
pronto
Clojure support for protocol buffers
Stars: ✭ 66 (+94.12%)
Mutual labels:  protocol-buffers
Easter Egg Collection
🐰 A funny library for tricking your colleagues.
Stars: ✭ 249 (+632.35%)
Mutual labels:  cat
protobluff
A modular Protocol Buffers implementation for C
Stars: ✭ 66 (+94.12%)
Mutual labels:  protocol-buffers
parquet-flinktacular
How to use Parquet in Flink
Stars: ✭ 29 (-14.71%)
Mutual labels:  protocol-buffers
Nyan
Colored `cat` command.
Stars: ✭ 182 (+435.29%)
Mutual labels:  cat
catimg
Print an image of a cat to the iTerm2 terminal
Stars: ✭ 13 (-61.76%)
Mutual labels:  cat
protocol-buffers
Haskell protocol-buffers package
Stars: ✭ 75 (+120.59%)
Mutual labels:  protocol-buffers
dproto
D Protocol Buffer mixins to create structures at compile time
Stars: ✭ 35 (+2.94%)
Mutual labels:  protocol-buffers
rules proto grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
Stars: ✭ 201 (+491.18%)
Mutual labels:  protocol-buffers
colocat
Fegeya Colocat, Colorized 'cat' implementation. Written in C++17.
Stars: ✭ 14 (-58.82%)
Mutual labels:  cat
spark list
这是一款开源笔记应用, 支持Android/iOS双平台, 使用Flutter 3开发, 体验Flutter的同时也希望做一个能成为个人知识中转站的应用, 任重道远 :)
Stars: ✭ 47 (+38.24%)
Mutual labels:  cat
Cat Names
🐈 Get popular cat names
Stars: ✭ 226 (+564.71%)
Mutual labels:  cat
websocket-webcam
A pure javascript HTML5 webcam client using websockets to stream the image
Stars: ✭ 31 (-8.82%)
Mutual labels:  cat
Fcat
A 3x faster implementation of cat, using splice
Stars: ✭ 196 (+476.47%)
Mutual labels:  cat
ToRat client
This is the ToRat client, a part of the ToRat Project.
Stars: ✭ 29 (-14.71%)
Mutual labels:  cat
elm-protobuf
protobuf plugin for elm
Stars: ✭ 93 (+173.53%)
Mutual labels:  protocol-buffers
Corecat
Corecat: Core library
Stars: ✭ 21 (-38.24%)
Mutual labels:  cat
nakama-common
The runtime framework for Nakama server.
Stars: ✭ 31 (-8.82%)
Mutual labels:  protocol-buffers

go-logsink

Go Report Card codebeat badge Code Climate FOSSA Status

What is go-logsink

go-logsink is a client and server application to aggregate multiple streams into one.

It does so by sending all data piped into the client to the server.

Usage

To start a server just type go-logsink listen. By default the server listens on port 50051. You can change the default binding definition using the bind flag:

go-logsink listen --bind ":55555"

In this sample, the server would listen on port 55555.

To send data to the server you have to start at least one client. For example to send the syslog to the server:

sudo tail -f /var/log/syslog | go-logsink connect --address "localhost:55555"

Using the address flag it is possible to send data to the non default destination (localhost:50051)

An advanced usage would be to forward all logs from running docker containers:

for cont in `docker ps -q`; do
    docker logs -f $cont | go-logsink connect &
done

This assumes a running go-logsink server at localhost:50051

You can even start a webserver using

go-logsink web

More usage: See go-logsink documentation

Develop

The application uses a very simple protocol buffer based RPC service to communicate. You should install Protocol Buffers v3.1.0 from https://github.com/google/protobuf/releases/tag/v3.1.0 ( used to create this project initially ).

The Makefile contains a protobuf target which creates the implementation from the specification ( located in logsink/logsink.proto ).

The project uses go modules

Cross compiling Windows

current state: untested binary

You have to go get github.com/inconshreveable/mousetrap before you can crosscompile.

OSX

You can crosscompile OSX or download the darwin.tgz from the releases. Rudimentary tests were done, no in depth testing, though

History

Version Description
v2.1.0 refactored to improve overall quality
(BETA) Serilog sink
colored console output
streaming gRPC
v2.0.0 new ui based on vue.js
removed options for client side code
add option to load ui from local path
v1.3.0 update to go-modules
v1.1.0 Web included in binary
Deprecated relaying
Added prometheus metrics
v1.0.2 Graceful shutdown
v1.0.1 go-ps
v1.0.0 New versioning scheme
Lockfile support
go-releaser
Added .editorconfig
20170124 Forcing display space usage
Allow toggling of scroll
Add a --break switch to connect
Enabling CORS
Supporting SSL behind a proxy
Added --pass-through switch on connect to pass text to stdout
Allow changing the line limit in web
Breaking on web for pre element
Filtering in web
20170117 Web endpoint
doc command
version command
Allow providing a prefix
20170110 Initial version
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].