Riemann 0.2.14

A network event stream processor. Intended for analytics, metrics, and alerting; and to glue various monitoring systems together.

Installation

To install, add the following dependency to your project or build file:

[riemann "0.2.14"]

Namespaces

riemann.bin

Main function.

riemann.blueflood

Forwards events to Blueflood

riemann.boundary

Forwards events to Boundary Premium.

Public variables and functions:

riemann.campfire

Forwards events to Campfire

Public variables and functions:

riemann.cloudwatch

Forwards riemann events to Amazon CloudWatch

Public variables and functions:

riemann.common

Utility functions. Time/date, some flow control constructs, protocol buffer definitions and codecs, some vector set ops, etc.

riemann.config

Riemann config files are eval’d in the context of this namespace. Includes streams, client, email, logging, and graphite; the common functions used in config. Provides a default core and functions ((tcp|udp)-server, streams, index, reinject) which operate on that core.

riemann.core

Binds together an index, servers, and streams.

riemann.datadog

Forward events to Datadog.

riemann.deps

Riemann’s dependency resolution system expresses stateful relationships between events. Dependencies are expressed as Rules; a Rule is a statement about the relationship between a particular event and the current state of the index.

Public variables and functions:

riemann.druid

Forwards events to Druid

Public variables and functions:

riemann.elasticsearch

Forwards events to Elasticsearch.

riemann.email

Send email about events. Create a mailer with (mailer opts), then create streams which send email with (your-mailer "shodan@tau.ceti.five"). Or simply call email-event directly.

Public variables and functions:

riemann.expiration

Many places in Riemann need to understand whether the events they’re working with are currently valid, and whether a given host/service combo has expired. The expiration tracker provides a stateful data structure for tracking new events, figuring out when expirations should be emitted, and calling back when they need to occur.

Public variables and functions:

riemann.folds

Functions for combining states.

riemann.graphite

Forwards events to Graphite.

riemann.hipchat

Forwards events to HipChat

Public variables and functions:

riemann.index

Maintains a stateful index of events by [host, service] key. Can be queried to return the most recent indexed events matching some expression. Can expire events which have exceeded their TTL. Presently the only implementation of the index protocol is backed by a nonblockinghashmap, but I plan to add an HSQLDB backend as well.

riemann.influxdb

Forwards events to InfluxDB. Supports InfluxDB 0.9 or Higher

riemann.instrumentation

Tracks Riemann performance data

riemann.kafka

Receives events from and forwards events to Kafka.

Public variables and functions:

riemann.kairosdb

Forwards events to KairosDB.

riemann.keenio

Forwards events to Keen IO

Public variables and functions:

riemann.librato

Forwards events to Librato Metrics.

riemann.logentries

Forwards events to Logentries.

riemann.logging

riemann.logstash

Forwards events to LogStash.

Public variables and functions:

riemann.mailgun

Forwards events to Mailgun

Public variables and functions:

riemann.msteams

Post alerts to Microsoft Teams

Public variables and functions:

riemann.nagios

Forwards events to Nagios via NSCA

Public variables and functions:

riemann.netuitive

Forward events to Netuitive.

riemann.opentsdb

Forwards events to OpenTSDB.

riemann.opsgenie

Forwards events to OpsGenie

Public variables and functions:

riemann.pagerduty

Forwards events to Pagerduty

Public variables and functions:

riemann.plugin

Simple plugin loader for riemann.

riemann.pool

A generic thread-safe resource pool.

Public variables and functions:

riemann.prometheus

Forwards riemann events to Prometheus Pushgateway.

riemann.pubsub

Provides publish-subscribe handling of events. Publishers push events onto a channel, which has n subscribers. Each subscriber subscribes to a channel with an optional predicate function. Events which match the predicate are sent to the subscriber.

Public variables and functions:

riemann.pushover

Forwards events to Pushover.

Public variables and functions:

riemann.query

The query parser. Parses strings into ASTs, and converts ASTs to functions which match events.

riemann.repl

The riemann REPL server is a bit of a special case. Since it controls almost every aspect of Riemann–and can shut those aspects down–it needs to live above them. While you usually start a repl server from the config file, it is not bound to the usual config lifecycle and won’t be shut down or interrupted during config reload.

Public variables and functions:

riemann.service

Lifecycle protocol for stateful services bound to a core.

riemann.shinken

Forwards events to Shinken.

Public variables and functions:

riemann.slack

Post alerts to slack.com

riemann.sns

Publish to AWS SNS topic(s) about events. Create a publisher with (sns-publisher opts), then create streams which publish to topic(s) with (your-publisher “your::arn”). Or simply call sns-publish or sns-publish-async directly.

riemann.stackdriver

Forwards events to Stackdriver.

riemann.streams

The streams namespace aims to provide a comprehensive set of widely applicable, combinable tools for building more complex streams.

riemann.telegram

Send events to Telegram

Public variables and functions:

riemann.test

Fast, end-to-end, repeatable testing for entire Riemann configs. Provides a tap macro which taps the event stream and (in testing mode) records all events that flow through that stream. Provides a variant of deftest that initiates controlled time and sets up a fresh result set for taps, and a function inject! to apply events to streams and see what each tap received.

riemann.time

Clocks and scheduled tasks. Provides functions for getting the current time and running functions (Tasks) at specific times and periods. Includes a threadpool for task execution, controlled by (start!) and (stop!).

riemann.time.controlled

Provides controllable periodic and deferred execution. Calling (advance! delta-in-seconds) moves the clock forward, triggering events that would have occurred, in sequence.

riemann.transport

Functions used in several transports. Some netty parts transpire here since netty is the preferred method of providing transports

riemann.transport.debug

It is very dark. You are likely to be eaten a grue.

Public variables and functions:

riemann.transport.graphite

riemann.transport.opentsdb

riemann.transport.sse

Exposes subscriptions to the index as server sent event channels

riemann.transport.tcp

Accepts messages from external sources. Associated with a core. Sends incoming events to the core’s streams, queries the core’s index for states.

riemann.transport.udp

Accepts messages from external sources. Associated with a core. Sends incoming events to the core’s streams, queries the core’s index for states.

Public variables and functions:

riemann.transport.websockets

Accepts messages from external sources. Associated with a core. Sends incoming events to the core’s streams, queries the core’s index for states.

riemann.twilio

Forwards events to Twilio

Public variables and functions:

riemann.victorops

Forwards events to VictorOps

Public variables and functions:

riemann.xymon

Forwards events to Xymon