This project has been archived by its maintainers, and is no longer receiving any updates.
A Riemann client library and command line tool for Python. It supports UDP and TCP transports, queries, and all metric types. The client library aims to provide a simple, minimal API, and does not require direct interaction with protocol buffers. There is also a queued client that can queue or batch events and then send them in a single message.
This project is no longer maintained. Please contact me by opening an issue on the GitHub project if you’d like to fork this repository and take over the ``riemann-client`` PyPI package.
Usage
As a command line tool:
riemann-client [--host HOST] [--port PORT] send [-s SERVICE] [-S STATE] [-m METRIC] [...] riemann-client [--host HOST] [--port PORT] query QUERY
The host and port used by the command line tool can also be set with the RIEMANN_HOST and RIEMANN_PORT environment variables. By default, localhost:5555 will be used.
As a library:
import riemann_client.client
with riemann_client.client.Client() as client:
client.event(service="riemann-client", state="awesome")
client.query("service = 'riemann-client'")
A more detailed example, using both a non-default transport and a queued client:
from riemann_client.transport import TCPTransport
from riemann_client.client import QueuedClient
with QueuedClient(TCPTransport("localhost", 5555)) as client:
client.event(service="one", metric_f=0.1)
client.event(service="two", metric_f=0.2)
client.flush()
The QueuedClient class modifies the event() method to add events to a queue instead of immediately sending them, and adds the flush() method to send the current event queue as a single message.
Installation
riemann-client requires Python 2.6 or above, and can be installed with pip install riemann-client. It will use Google’s protobuf library when running under Python 2, and GreatFruitOmsk’s protobuf-py3 fork when running under Python 3. Python 3 support is experimental and is likely to use Google’s protobuf once it supports Python 3 fully.
Requirements
protobuf (when using Python 2)
protobuf-py3 (when using Python 3)
Testing (Linux/OSX)
Testing is done with tox:
tox
Changelog
Version 6.1.3
Added --echo/--no-echo option to the CLI.
Version 6.1.2
Fixed tests inclusion in tarball.
Version 6.1.1
Fixed socket error handling in riemann_client.client.AutoFlushingQueuedClient.
Version 6.1.0
riemann_client.client.AutoFlushingQueuedClient added.
Version 6.0.0
riemann_client.client.Client.create_dict only returns event fields that are set on the Protocol Buffers Event object
riemann-client send ... only outputs fields that were set on the message
Version 5.1.0
Added Python 3 support
Changed riemann_client.riemann_pb2 to wrap _py2 and _py3 modules
Changed setup.py to dynamically select a protobuf dependency
Version 5.0.x
Added API documentation (http://riemann-client.readthedocs.org/)
Replaced argparse with click for an improved CLI
Various command line parameters changed
--event-host became --host
--print was removed, send always prints the sent event
Minor fixes to QueuedClient API
UDPTransport.send returns None instead of NotImplemented
Version 4.2.x
Added events() and send_events() methods to the client
Added clear_queue() method to the queued client
Add --timeout option for TCP based transports
Version 4.1.x
Full Riemann protocol support (TLS transport, event attributes)
Fixes for multiple broken features (--tags, --print)
Raise errors when clients are used incorrectly
Client displays errors from Riemann nicely
Relaxed version requirements to fit CentOS 6 packages
Version 3.0.x
Renamed module from riemann to riemann_client
Command line interface was rewritten, and is now the only part of the library that respects the RIEMANN_HOST and RIEMANN_PORT environment variables
Support for querying the Riemann index was added
Internally, transports now define send instead of write, and TCPTransport.send returns Riemann’s response message
Licence
riemann-client is licensed under the MIT Licence. The protocol buffer definition is sourced from the Riemann Java client, which is licensed under the Apache Licence.
Release files for riemann-client 7.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| riemann-client-7.0.0.tar.gz | 20.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| riemann_client-7.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.3 kB
Release files / riemann-client-7.0.0.tar.gz
| Download URL | riemann-client-7.0.0.tar.gz |
|---|---|
| Size | 20.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
923fa7cac112f097c5b630ac6e166c974bd1a921373cb67afa75db728fb10fb5
|
|
BLAKE2b-256 checksum How to use checksums |
94bf2fc38b4ad14dcb343ea5b73f1a1f12c3e5a5cc4382a88ecf2f2cc942f668
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / riemann_client-7.0.0-py3-none-any.whl
| Download URL | riemann_client-7.0.0-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9a6bdf0ac9fb2a31372e273b9be990cb152d416e258870033a4f1b56e0c78f6
|
|
BLAKE2b-256 checksum How to use checksums |
44f277c90d13be76a0a8675e6b3e7bf9fecba500657551452be9a641b3ff95ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|