All Projects → amrayn → residue

amrayn / residue

Licence: other
Real-time centralized logging server ⚡

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects
PHP
23972 projects - #3 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to residue

ipa-log-config
Tool for log forwarding configuration on IPA servers and clients
Stars: ✭ 30 (+15.38%)
Mutual labels:  rsyslog, centralized-logging
spring-boot-elk
An sample todo app demonstrating centralised logging using ELK stack
Stars: ✭ 20 (-23.08%)
Mutual labels:  centralized-logging
rsyslog-doc
documentation for the rsyslog project
Stars: ✭ 88 (+238.46%)
Mutual labels:  rsyslog
google-cloud-cpp-spanner
C++ client library for Google Cloud Spanner
Stars: ✭ 26 (+0%)
Mutual labels:  cpp-11
android-sdk
AppSpector is a debugging service for mobile apps
Stars: ✭ 39 (+50%)
Mutual labels:  remote-logging
TraceHub
Centralized and distributed logging for Web applications and services, extending System.Diagnostics and Essential.Diagnostics, providing structured tracing and logging withou needing to change 1 line of your application codes
Stars: ✭ 22 (-15.38%)
Mutual labels:  centralized-logging
aushape
A library and a tool for converting audit logs to XML and JSON
Stars: ✭ 37 (+42.31%)
Mutual labels:  rsyslog
horus
Practicing microservices observability.
Stars: ✭ 15 (-42.31%)
Mutual labels:  centralized-logging
docker-logspout-elk
Docker-compose yml file with logspout and ELK stack
Stars: ✭ 28 (+7.69%)
Mutual labels:  centralized-logging
blogr-pve
Puppet provisioning of HA failover/cluster environment implemented in Proxmox Virtual Environment and Linux boxes.
Stars: ✭ 28 (+7.69%)
Mutual labels:  centralized-logging
container-flow-chart
Immediately create your own unique variation of this popular C++ 11 Standard Container Flowchart at https://drive.google.com/file/d/1wAUsTIeKRgSfo0m-3rR4P6Boi3FuixEk/view
Stars: ✭ 12 (-53.85%)
Mutual labels:  cpp-11
Graylog2 Server
Free and open source log management
Stars: ✭ 5,952 (+22792.31%)
Mutual labels:  logging-server
ansible-role-rsyslog
Install and configure rsyslog on your system.
Stars: ✭ 14 (-46.15%)
Mutual labels:  rsyslog
docker base images
Vlad's Base Images for Docker
Stars: ✭ 61 (+134.62%)
Mutual labels:  rsyslog
rsyslog-docker
rsyslog docker containers
Stars: ✭ 76 (+192.31%)
Mutual labels:  rsyslog
docker-rsyslog
Rsyslog server with multiple input listeners (UDP/TCP/RELP) and outputs (file/kafka/syslog).
Stars: ✭ 18 (-30.77%)
Mutual labels:  rsyslog

banner

Build Status Build Status Version

Donate

Overview

Residue is an effort to standardize application logging by implementing simple logging API, making it easily configurable, build-in configurable log rotators, simple way to format your log messages according to need of your application and most of all language-independent.

overview

Details

Logging is an essential part of any application. But not all the applications can store these logs on the same device where they're running. For this reason, the logs must be transferred to a remote system.

Currently, there are two ways to do this:

  1. Collect log messages locally and have a scheduled task to synchronize all the log files to a remote system.
  2. Using real-time message forwarding protocols.

First one has many drawbacks especially when you need to debug a remote application in real-time. Also, transferring files in bulk can be heavy on network and possibly slow.

Second one is what residue client does. It delievers log messages in real-time to the (residue) server.

Residue is fully configurable and supports high-level security, compression and asyncronous operations. It uses Easylogging++ under the hood, that itself is a feature-rich library.

You can choose to integrate similar solutions like rsyslog however residue has a lot of other built-in features that other solutions may lack, like built-in log rotation, bulk message forwarding etc. See Features section for details.

Features

Some of the notable features are listed below

  • Lightweight: Residue is very light on CPU and RAM. On start-up it will only take approx 2mb of RAM and while running it will keep the memory as clean as possible using as low CPU as possible.
  • Asyncronous: Residue has been built with speed in mind right from the beginning. It implements various techniques to speed up the process.
  • Log rotation has been built in to the server that runs as scheduled task, allowing you to create backups and compress them without effecting the logging process. Every logger can be set up to have it's own rotation frequency from hourly to yearly depending on your needs.
  • Bulk requests is another concept that makes logging requests process much faster and make them highly compressible to reduce traffic on the network.
  • Encryption: All the incoming and outgoing data is automatically encrypted. Residue also has several layers and techniques to secure the requests and to prevent unauthorised application from logging without compromising the speed.
  • Compression: Residue server and official client libraries provide ability to compress the network packets which makes a big difference in amount of data transferred over the wire.
  • Speed is not compromised in any way and there is a lot of testing being done every day to ensure that logging server meets the speed requirements.
  • Dynamic buffers allow logs to be queued up in the memory while there is some I/O error (e.g, disk full) and cleared as soon as disk errors are fixed
  • Residue extensions allow certain code to be executed in case of specific events (e.g, log dispatch failure) - see Extensions API
  • Reliability: We are actively working on making the server much more reliable from restarting from the crash to handling bad traffic.
  • Residue comes with various tools for devops and client libraries for easy integration.
  • There are many more features available. Please feel free to download your copy of residue binary and give it a try.

Getting Started

Please see INSTALL.md to get started now.

Compatibility And Integration

No matter what language is your application written in, residue is compatible and can be used as central logging server. All you need is client library. You can either write your own using CLIENT_DEVELOPMENT.md guidelines or use one of the existing ones.

We're also actively working on client libraries for residue in other languages. Please feel free to contribute.

Build Matrix

Branch Platform Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / clang++ Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-4.9 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-5 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-6 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-7 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / clang++ Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-4.9 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-5 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-6 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-7 Build Status

License

Please see LICENSE for licensing information.

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].