All Projects → cloudfoundry → loggregator

cloudfoundry / loggregator

Licence: Apache-2.0 license
Archived: Now bundled in https://github.com/cloudfoundry/loggregator-release

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to loggregator

nvidia-jetson-rt
Real-Time Scheduling with NVIDIA Jetson TX2
Stars: ✭ 38 (-37.7%)
Mutual labels:  real-time
Real-time-Image-Smoothing-via-Iterative-Least-Squares
This is the released code for the paper Real-time Image Smoothing via Iterative Least Squares accepted to ACM Transactions on Graphics
Stars: ✭ 60 (-1.64%)
Mutual labels:  real-time
soketi
Just another simple, fast, and resilient open-source WebSockets server. 📣
Stars: ✭ 2,202 (+3509.84%)
Mutual labels:  real-time
nebula
A distributed block-based data storage and compute engine
Stars: ✭ 127 (+108.2%)
Mutual labels:  real-time
mongodb-backup-manager
🌿 A Full-stack MongoDB Backup System.
Stars: ✭ 42 (-31.15%)
Mutual labels:  real-time
ECBSR
Edge-oriented Convolution Block for Real-time Super Resolution on Mobile Devices, ACM Multimedia 2021
Stars: ✭ 216 (+254.1%)
Mutual labels:  real-time
AttaNet
AttaNet for real-time semantic segmentation.
Stars: ✭ 37 (-39.34%)
Mutual labels:  real-time
kidnapped-vehicle
Implemented a C++ particle filter for real-time vehicle localization with only current visual observations and a map.
Stars: ✭ 18 (-70.49%)
Mutual labels:  real-time
gdax-orderbook-hpp
An in-memory copy of the order book on the GDAX cryptocurrency exchange, updated in real time via WebSocket feed, exposed in a thread-safe and lock-free data structure.
Stars: ✭ 38 (-37.7%)
Mutual labels:  real-time
Embedded UKF Library
A compact Unscented Kalman Filter (UKF) library for Teensy4/Arduino system (or any real time embedded system in general)
Stars: ✭ 31 (-49.18%)
Mutual labels:  real-time
fos
Interesting project,the Fast Real Time Operating Systems( FOS-RTOS)
Stars: ✭ 22 (-63.93%)
Mutual labels:  real-time
microbium-app
Draw new worlds
Stars: ✭ 89 (+45.9%)
Mutual labels:  real-time
Real-time-Text-Detection-DBNet
PyTorch re-implementation of ''Real-time Scene Text Detection with Differentiable Binarization'' (AAAI 2020)
Stars: ✭ 85 (+39.34%)
Mutual labels:  real-time
mssql-server-broker
Cloud Foundry service broker for Microsoft SQL Server
Stars: ✭ 13 (-78.69%)
Mutual labels:  cloudfoundry
efficient-descriptors
🚀🚀 Revisiting Binary Local Image Description for Resource Limited Devices
Stars: ✭ 76 (+24.59%)
Mutual labels:  real-time
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (+37.7%)
Mutual labels:  real-time
jeelizGlanceTracker
JavaScript/WebGL lib: detect if the user is looking at the screen or not from the webcam video feed. Lightweight and robust to all lighting conditions. Great for play/pause videos if the user is looking or not, or for person detection. Link to live demo.
Stars: ✭ 68 (+11.48%)
Mutual labels:  real-time
Tensorflow-YOLACT
Implementation of the paper "YOLACT Real-time Instance Segmentation" in Tensorflow 2
Stars: ✭ 97 (+59.02%)
Mutual labels:  real-time
antifreeze
Cloud Foundry CLI plugin to detect if an app doesn't match the manifest
Stars: ✭ 21 (-65.57%)
Mutual labels:  cloudfoundry
FPGA RealTime and Static Sobel Edge Detection
Pipelined implementation of Sobel Edge Detection on OV7670 camera and on still images
Stars: ✭ 14 (-77.05%)
Mutual labels:  real-time

Archived Now bundled in https://github.com/cloudfoundry/loggregator-release

Loggregator slack.cloudfoundry.org CI Badge

Loggregator is the logging system used in CloudFoundry.

Loggregator Goals

  • Real time streaming of logs
  • Producers do not experience backpressure
  • Logs can be routed to several consumers
  • Elastic and horizontal scalability
  • High message reliability
  • Low latency
  • Flexibile consumption
  • Security via gRPC with mutual TLS
  • Opinionated log structure

Known Limitations

  • Logs are ephemeral/non-replicated within system
  • No guaranteed delivery
  • Limited persistence/querying ability

Loggregator's Log Types

Loggregator uses Google's protocol buffers along with gRPC to deliver logs. Loggregator has defined (via Loggregator API) log types that are contained in a single protocol buffer type, named an envelope. Those types are:

  • Log
  • Counter
  • Gauge
  • Timer
  • Event
Asynchronous vs Synchronous Data

The Loggregator system as a whole does not have an opinion about how frequently any log type is emitted. However, there are recommendations. Counter and Gauge logs should be emitted regularly (e.g., once a minute) so downstream consumers can easily plot the increasing total.

Log, Timer and Event should be emitted when the corresponding action occurred and therefore should be treated as asynchronous data. These data types do not lend themselves to be plotted as a time series.

Loggregator Architecture

Loggregator is made up of 4 components:

  • Agent
  • Router
  • ReverseLogProxy (RLP)
  • TrafficController (TC)
Agent

The Agent is a daemon process that is intended to run on each container/VM. It is the entry point into Loggregator. Any log that is written to Loggregator is written to the Agent.

Router

The Router takes each log and publishes it to any interested consumer. Every log is in flight, and not available for a consumer if the consumer was late to connect. It routes envelopes via the pubsub library that allows a consumer to give the Router "selectors" to whitelist what logs it wants. A consumer does not connect directly to a router.

Reverse Log Proxy

The ReverseLogProxy (RLP) has gRPC endpoints to allow consumers to read data from Loggregator. Each RLP connects to every Router to ensure it gets all the relevant logs. Each Router only gets a subset of the logs, and therefore without the RLP, a consumer would only get a fraction of the logs. The RLP only speaks V2.

Reverse Log Proxy Gateway

The ReverseLogProxy (RLP) Gateway exposes the RLP API over HTTP.

The API Documentation can be found here

Traffic Controller

The TrafficController (TC) is like the RLP, but is tuned for CloudFoundry. It authenticates via the UAA and CloudController, which are both CF components. It egresses logs via Websockets. It only speaks V1. Planned deprecation in 2018.

Avoiding Producer Backpressure

Loggregator chooses to drop logs instead of pushing back on producers. It does so with the diodes library. Therefore if anything upstream slows down, the diode will drop older messages. This allows producers to be resilient to upstream problems.

Using Loggregator

go-loggregator

There is Go client library: go-loggregator. The client library has several useful patterns along with examples to interact with a Loggregator system.

Deploying Loggregator

The most common way to deploy Loggregator is via Bosh. There is a Loggregator Bosh release that is used heavily in a plethora of production environments. It is battle tested and well maintained.

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