Giter Site home page Giter Site logo

logrange / logrange Goto Github PK

View Code? Open in Web Editor NEW
193.0 12.0 16.0 70.85 MB

High performance data aggregating storage

License: Apache License 2.0

Go 98.67% Makefile 0.05% Shell 1.28%
stream-processing streams logging pipelines golang go database log-aggregation

logrange's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logrange's Issues

k8s: CRD LA service (executable)

We need a CRD specific executable, which will provide LA interface via k8s CRD to an end user and which will be a LA client to provide CRD data to LA. It listens for CRD events to send them to LA

LR: Add cmd

Implement basic client. Put it in cmd/lr. Using LA RPC API client for connecting to the LA.

Collector: (suspision) offset can be broken if simultaneous writes happen to a log file

If a log file is written simultaneously from different sources, it looks like it can cause problems at least with fixed formats like json. It seems some lines could be mixed and we may end up with the wrong offset or something like that, so the next time we'll start reading from position where there is no valid json (e.g. in the middle of json line). And we never we'll move one for that file since we always start from that 'broken' position...

Fwd: Create cmd/fwd

to create basic executable which will connect to LA using RPC API client.

Add escape/unescape for names to FS functionality

in logrange/pkg/util 2 functions were defined:
// EscapeToFileName receives a name and turn it to a file-system file name.
// it is expected to escap (substitute) slashes '/' at least.
func EscapeToFileName(name string) string {
// TODO
return fname
}

// UnescapeFileName receives a file name and un-escape it. It supposes that the
// file name was escaped by EscapeToFileName() before
func UnescapeFileName(fname string) string {
//TODO
return fname
}

it needs to implement them.

Logrange: 1 click installation

We need to have the following scripts for 1 click installation:

  • standalone
  • k8s
  • docker
    website visitor will have a chance to copy-paste a command and have the logrange up and running within seconds.

Fwd: Configuration reader

Read configuration from file system. Support configuration re-read (without restart) if config file is updated.

Quick start: Nice to have for Ubuntu users

I tried the quick start guide on Ubuntu 18.10 and have some minor comments. My assumptions the quick start is a set of commands to run from a live console and try the product quickly.

  1. Command curl -s http://get.logrange.io/install | bash -s logrange doesn't work for me because Permission denied there is my console output:
    $ curl -s http://get.logrange.io/install | bash -s logrange
    Downloading from http://get.logrange.io/binaries/master/linux/x86_64/logrange...
    mv: cannot move './logrange' to '/usr/local/bin/logrange': Permission denied
    Done! Try running 'logrange'...
    As an option please consider adding sudo:
    curl -s http://get.logrange.io/install | **sudo** bash -s logrange
    Also it would be nice to check that mv ./${CMD} /usr/local/bin is actually copied the file and provide recommendation to use sudo if the file was not copied because of lack of permissions (or consider an another folder). So, the console output can be:
    $ curl -s http://get.logrange.io/install | bash -s logrange
    Downloading from http://get.logrange.io/binaries/master/linux/x86_64/logrange...
    Moving './logrange' to '/usr/local/bin/logrange'
    mv: cannot move './logrange' to '/usr/local/bin/logrange': Permission denied
    Please run with sudo: curl -s http://get.logrange.io/install | sudo bash -s logrange
    Optionally, the destination folder may not exist for some reasons so better to check it is there.
  2. Same experience with curl -s http://get.logrange.io/install | bash
  3. Command logrange start --journals-dir /tmp does not work for the same permissions denied reason. 'sudo logrange start --journals-dir /tmp &' works but all the index files belongs to root. Also without & it eats my console.
  4. Please consider changing Done! Try running 'lr'... to 'Done! Try running 'lr collect'' and also adding 'Then try running 'lr shell''
  5. lr shell might print 'Type help for list of supported commands' after the logo, also the version of lr would be useful.
  6. Also, It might be useful to add a section for 'How I can get rid of the tool if I want to?'

k8s: Helm charts for ALL components deployment to k8s

All configs are read from filesystem (i.e. distributed as configmaps in helm charts).
All states are written to filesystem (i.e. requires mounting of host folder, to keep state between different container starts).

LA: Use tree map for inmem internals

inmem uses map for its internals, but it would be nice to have tree-map, cause it can have performance issue when the storage become big enough (thoursands of records)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.