All Projects → rixed → ramen

rixed / ramen

Licence: other
A stream processing language and compiler for small-scale monitoring

Programming Languages

ocaml
1615 projects
PHP
23972 projects - #3 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
Gherkin
971 projects
shell
77523 projects

Projects that are alternatives of or similar to ramen

D1Proxy
A simple yet powerful Java 11 TCP MITM proxy for Dofus 1.29.1
Stars: ✭ 17 (+21.43%)
Mutual labels:  network-monitoring
community-id-spec
An open standard for hashing network flows into identifiers, a.k.a "Community IDs".
Stars: ✭ 137 (+878.57%)
Mutual labels:  network-monitoring
network-monitor-ios
Network Monitor SDK for iOS
Stars: ✭ 70 (+400%)
Mutual labels:  network-monitoring
makinage
Stream Processing Made Easy
Stars: ✭ 31 (+121.43%)
Mutual labels:  stream-processing
masscanned
Let's be scanned. A low-interaction honeypot focused on network scanners and bots. It integrates very well with IVRE to build a self-hosted alternative to GreyNoise.
Stars: ✭ 50 (+257.14%)
Mutual labels:  network-monitoring
blockchain-etl-streaming
Streaming Ethereum and Bitcoin blockchain data to Google Pub/Sub or Postgres in Kubernetes
Stars: ✭ 57 (+307.14%)
Mutual labels:  stream-processing
graylog-plugin-netflow
[DEPRECATED] Graylog NetFlow plugin
Stars: ✭ 35 (+150%)
Mutual labels:  network-monitoring
kafka-workers
Kafka Workers is a client library which unifies records consuming from Kafka and processing them by user-defined WorkerTasks.
Stars: ✭ 30 (+114.29%)
Mutual labels:  stream-processing
ping-exporter
Prometheus Ping exporter
Stars: ✭ 60 (+328.57%)
Mutual labels:  network-monitoring
product-sp
An open source, cloud-native streaming data integration and analytics product optimized for agile digital businesses
Stars: ✭ 80 (+471.43%)
Mutual labels:  stream-processing
mediapipe plus
The purpose of this project is to apply mediapipe to more AI chips.
Stars: ✭ 38 (+171.43%)
Mutual labels:  stream-processing
RouterOS Useful Scripts
MikroTik RouterOS Useful Scripts for various use
Stars: ✭ 66 (+371.43%)
Mutual labels:  network-monitoring
go-rivers
Collection of stream processing / multiplexing / networking libs in Go
Stars: ✭ 35 (+150%)
Mutual labels:  stream-processing
telemetry
Open-source datasets for anyone interested in working with network anomaly based machine learning, data science and research
Stars: ✭ 93 (+564.29%)
Mutual labels:  network-monitoring
analyzer-d4-passivedns
A Passive DNS backend and collector
Stars: ✭ 26 (+85.71%)
Mutual labels:  network-monitoring
mxfactorial
a payment application intended for deployment by the united states treasury
Stars: ✭ 36 (+157.14%)
Mutual labels:  stream-processing
gretel-python-client
The Gretel Python Client allows you to interact with the Gretel REST API.
Stars: ✭ 28 (+100%)
Mutual labels:  stream-processing
testmynids.org
A website and framework for testing NIDS detection
Stars: ✭ 55 (+292.86%)
Mutual labels:  network-monitoring
csvplus
csvplus extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins.
Stars: ✭ 67 (+378.57%)
Mutual labels:  stream-processing
ivre
Network recon framework. Build your own, self-hosted and fully-controlled alternatives to Shodan / ZoomEye / Censys and GreyNoise, run your Passive DNS service, collect and analyse network intelligence from your sensors, and much more!
Stars: ✭ 2,712 (+19271.43%)
Mutual labels:  network-monitoring

What?

A stream processing language and compiler for human-scale infrastructure monitoring

"The right solution for 100X often not optimal for X" — Dean Jeff

Why?

Those last years, thanks to such large companies as Google, Facebook, Linkedin and Netflix, the culture and practice of modern infrastructure monitoring has vastly improved and many good and free tools have been released publicly. Those tools understandably focus on large distributed infrastructure.

For smaller use cases though, tools have been left to where they were in the 90s, with the notable exception of Riemann. But Riemann is only for monitoring hosts and uses Clojure as a configuration language. Which in turns requires a resource hungry JVM.

If you need an all-purpose stream processor to manipulate time series in order to turn inputs from sensors or network probes into alerts but do not want to deploy Kubernetes in your three racks of hardware or have only a couple of GiB left of RAM for monitoring, then you might want to consider Ramen.

How?

This is how operations look like:

DEFINE memory_alert AS
  FROM memory
  SELECT
    time, host,
    free + used + cached + buffered + slab AS total,
    free * 100 / total AS used_ratio,
    used_ratio > 50 AS firing
  GROUP BY host
  COMMIT AND KEEP ALL WHEN COALESCE (out.firing <> previous.firing, false)
  NOTIFY "http://192.168.1.1/notify?title=RAM%20is%20low%20on%20${host}&time=${time}&text=Memory%20on%20${host}%20is%20filled%20up%20to%20${used_ratio}%25";

Currently the stream processing programs are compiled into a language with automatic memory management (OCaml), so performance is not optimal. The plan is to compile down to C (or such) in a future step.

Also, imports/exports are limited: Ramen currently accepts time series from CSV files, and understands collectd and netflow (v5) protocols. As output, it merely reach out to alerting systems via HTTP requests.

Other than that it is possible to “tail” the output of operations from the CLI. More protocols for both input and output need obviously to be added.

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