Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
.. image:: http://img.shields.io/pypi/v/riemann-client.svg :target: https://pypi.python.org/pypi/riemann-client
.. image:: http://img.shields.io/pypi/l/riemann-client.svg :target: https://pypi.python.org/pypi/riemann-client
.. image:: http://img.shields.io/travis/borntyping/python-riemann-client/master.svg :target: https://travis-ci.org/borntyping/python-riemann-client
|
A Riemann <http://riemann.io/>
_ 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.
Source on GitHub <https://github.com/borntyping/python-riemann-client>
_Documentation on Read the Docs <http://riemann-client.readthedocs.org/en/latest/>
_Packages on PyPI <https://pypi.python.org/pypi/riemann-client>
_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.
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.
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.
.. _protobuf: https://pypi.python.org/pypi/protobuf .. _GreatFruitOmsk: https://github.com/GreatFruitOmsk .. _protobuf-py3: https://pypi.python.org/pypi/protobuf-py3
Requirements ^^^^^^^^^^^^
click <http://click.pocoo.org/>
_protobuf
_ (when using Python 2)protobuf-py3
_ (when using Python 3)Testing is done with tox
_::
tox
.. _tox: https://tox.readthedocs.org/en/latest/
Version 6.1.3 ^^^^^^^^^^^^^
--echo/--no-echo
option to the CLI.Version 6.1.2 ^^^^^^^^^^^^^
Version 6.1.1 ^^^^^^^^^^^^^
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
objectriemann-client send ...
only outputs fields that were set on the messageVersion 5.1.0 ^^^^^^^^^^^^^
riemann_client.riemann_pb2
to wrap _py2
and _py3
modulessetup.py
to dynamically select a protobuf
dependencyVersion 5.0.x ^^^^^^^^^^^^^
argparse
with click
for an improved CLI--event-host
became --host
--print
was removed, send
always prints the sent eventQueuedClient
APIUDPTransport.send
returns None
instead of NotImplemented
Version 4.2.x ^^^^^^^^^^^^^
events()
and send_events()
methods to the clientclear_queue()
method to the queued client--timeout
option for TCP based transportsVersion 4.1.x ^^^^^^^^^^^^^
--tags
, --print
)Version 3.0.x ^^^^^^^^^^^^^
riemann
to riemann_client
RIEMANN_HOST
and RIEMANN_PORT
environment variablessend
instead of write
, and
TCPTransport.send
returns Riemann's response messageriemann-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
_.
.. _MIT Licence: http://opensource.org/licenses/MIT .. _Riemann Java client: https://github.com/aphyr/riemann-java-client/blob/0c4a1a255be6f33069d7bb24d0cc7efb71bf4bc8/src/main/proto/riemann/proto.proto .. _Apache Licence: http://www.apache.org/licenses/LICENSE-2.0
riemann-client
was written by Sam Clements <https://github.com/borntyping>
, while working at DataSift <https://github.com/datasift>
.
.. image:: https://0.gravatar.com/avatar/8dd5661684a7385fe723b7e7588e91ee?d=https%3A%2F%2Fidenticons.github.com%2Fe83ef7586374403a328e175927b98cac.png&r=x&s=40 .. image:: https://1.gravatar.com/avatar/a3a6d949b43b6b880ffb3e277a65f49d?d=https%3A%2F%2Fidenticons.github.com%2F065affbc170e2511eeacb3bd0e975ec1.png&r=x&s=40
FAQs
A Riemann client and command line tool
We found that riemann-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.