Coder Social home page Coder Social logo

borntyping / python-riemann-client Goto Github PK

View Code? Open in Web Editor NEW
39.0 5.0 12.0 164 KB

A Riemann client and command line tool

Home Page: http://riemann-client.readthedocs.io/en/latest/

License: MIT License

Python 100.00%
python riemann library protobuf

python-riemann-client's Introduction

riemann-client


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

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.

Authors

riemann-client was written by Sam Clements, while working at DataSift.

https://0.gravatar.com/avatar/8dd5661684a7385fe723b7e7588e91ee?d=https%3A%2F%2Fidenticons.github.com%2Fe83ef7586374403a328e175927b98cac.png&r=x&s=40

https://1.gravatar.com/avatar/a3a6d949b43b6b880ffb3e277a65f49d?d=https%3A%2F%2Fidenticons.github.com%2F065affbc170e2511eeacb3bd0e975ec1.png&r=x&s=40

python-riemann-client's People

Contributors

aviau avatar bfritz avatar borntyping avatar gvalkov avatar lupino avatar nisanharamati avatar node13h avatar srikiraju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

python-riemann-client's Issues

Click 4.0 support

Hello,

Is there plans for python-click 4.0 support?

python-click 4.0 was packaged in Debian. Therefore, python-riemaann-client's dependency no longer match.

Timeout for TCP requests

When sending an event using tcp protocol, the client "freezes", if host is not responding (I have one scenario where the Riemann server is on another network, and I don't get an error like host is not reachable or Name or service is unknown). When I stop the client I get the following exception:

riemann-client --host "hostname" --port "5555" --transport "tcp" send --service "some_service" --state "critical" --description "Some description" --tags="first,second tag"

Traceback (most recent call last):
  File "/usr/bin/riemann-client", line 9, in <module>
    load_entry_point('riemann-client==4.1.2', 'console_scripts', 'riemann-client')()
  File "/usr/lib/python2.6/site-packages/riemann_client/command.py", line 127, in main
    with riemann_client.client.Client(transport=transport) as client:
  File "/usr/lib/python2.6/site-packages/riemann_client/client.py", line 20, in __enter__
    self.transport.connect()
  File "/usr/lib/python2.6/site-packages/riemann_client/transport.py", line 88, in connect
    self.socket = socket.create_connection(self.address)
  File "/usr/lib64/python2.6/socket.py", line 560, in create_connection
    sock.connect(sa)
  File "<string>", line 1, in connect
KeyboardInterrupt

It would be a good feature to have a time_out parameter, and get an exit code <> 0, if time out occurs.

Clarify Query Example

I'm am attempting to query my index. I'm fairly sure my syntax is correct. Is there something obviously wrong with my usage?

query_example

Deprecation warning due to invalid escape sequences

Deprecation warnings are raised due to invalid escape sequences. This can be fixed by using raw strings or escaping the literals. pyupgrade also helps in automatic conversion : https://github.com/asottile/pyupgrade/

find . -iname '*.py' | grep -v example | xargs -P4 -I{} python3.8 -Wall -m py_compile {}
./tests/test_riemann_command.py:20: DeprecationWarning: invalid escape sequence \s
  return re.sub(u'\s+', u'', string)
./riemann_client/client.py:117: DeprecationWarning: invalid escape sequence \*
  """Sends multiple events in a single message
./riemann_client/client.py:127: DeprecationWarning: invalid escape sequence \*
  """Sends an event, using keyword arguments to create an Event
./riemann_client/client.py:280: DeprecationWarning: invalid escape sequence \*
  """Enqueues an event, using keyword arguments to create an Event
./riemann_client/client.py:289: DeprecationWarning: invalid escape sequence \*
  """Enqueues multiple events in a single message

protobuf 3.2.0 not working but protobuf 3.1.0.post1 is

Getting the following stack trace error when trying to start up an application that's using riemann-client:

[2017-02-10 22:49:19 +0000] [3567] [INFO] Worker exiting (pid: 3567)
[2017-02-10 22:49:19 +0000] [3568] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
    worker.init_process()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 190, in init_process
    super(GeventWorker, self).init_process()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
    self.load_wsgi()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app
    __import__(module)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/my/app/wsgi.py", line 3, in <module>
    from my.app.app import application, set_logger
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/my/app/app.py", line 16, in <module>
    from my.app.riemann import get_alerting_events, get_events                                                                        
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/my/app/riemann.py", line 7, in <module>
    from riemann_client.client import Client
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/riemann_client/client.py", line 27, in <module>
    import riemann_client.riemann_pb2
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/riemann_client/riemann_pb2.py", line 10, in <module>
    from riemann_client.riemann_pb2_py2 import (Event, Msg, Query, Attribute)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
    result = _import(*args, **kwargs)
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/riemann_client/riemann_pb2_py2.py", line 32, in <module>
    options=None),
  File "/MyCo/my.app/env/local/lib/python2.7/site-packages/google/protobuf/descriptor.py", line 494, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors should not be created directly, but only retrieved from their parent.

This is happening with protobuf 3.2.0 only. When I manually move the protobuf 3.1.0.post1 site-package from my last build into my app env everything works as expected.

I notice that the wheels are built differently and vary greatly in size as well:

-rw-r--r--   347537 bytes   protobuf-3.1.0.post1-py2.py3-none-any.whl

vs

-rw-r--r--   5618195 bytes   protobuf-3.2.0-cp27-cp27mu-manylinux1_x86_64.whl

Does the riemann-client need to be forced to use protobuf < 3.2 or is there a problem outside the scope of riemann-client that I'm not recognizing?

6.5.0: pytest needs `google` module

+ /usr/bin/pytest -ra
ImportError while loading conftest '/home/tkloczko/rpmbuild/BUILD/riemann-client-6.5.0/tests/conftest.py'.
tests/conftest.py:7: in <module>
    import riemann_client.transport
riemann_client/transport.py:12: in <module>
    import riemann_client.riemann_pb2
riemann_client/riemann_pb2.py:8: in <module>
    from riemann_client.riemann_py3_pb2 import (Event, Msg, Query, Attribute)
riemann_client/riemann_py3_pb2.py:4: in <module>
    from google.protobuf import descriptor as _descriptor
E   ModuleNotFoundError: No module named 'google'

Howwever looks like it is not https://pypi.org/project/google/ so question is where it is that google module?

Tags being split into individual characters

On version 4.0.0, I'm finding that tags aren't sent correctly. In the following example the 'foo' tag is being received by Riemann as 'f', 'o' and 'o'

riemann-client send --service test --tag "foo"

#riemann.codec.Event{:host "XXX", :service "test", :state nil, :description nil, :metric nil, :tags ["f" "o" "o"], :time 1.455016849106E9, :ttl 60}

Tested that 3.0.3 works fine.

Sending event without ttl shows as 0 in stdout

If you you don't include the --ttl option when sending an event using the cli, it correctly sends a nil value to Riemann, however it's shown as 0 on stdout.

The following give identical output on stdout but have different meanings in Riemann:

[alex@seventy riemann]$ riemann-client send --service test --ttl 0
{
  "attributes": {},
  "description": "",
  "host": "seventy",
  "metric_d": 0,
  "metric_f": 0,
  "metric_sint64": 0,
  "service": "test",
  "state": "",
  "tags": [],
  "time": 0,
  "ttl": 0
}
[alex@seventy riemann]$ riemann-client send --service test
{
  "attributes": {},
  "description": "",
  "host": "seventy",
  "metric_d": 0,
  "metric_f": 0,
  "metric_sint64": 0,
  "service": "test",
  "state": "",
  "tags": [],
  "time": 0,
  "ttl": 0
}

how to use tags parameter?

I'm trying to use the tags parameter with a list, but everytime it just splits the string by each character:

riemann-client --host "monitor.company.com" --port "5555" --transport "udp" send --service "test" --state "warn" --description "some_desc" --tags=" (1, 2, 3) "

I also tried variotions, like [1, 2, 3], but the result is always the same:

riemann-client --host "monitor.company.com" --port "5555" --transport "tcp" query 'description =~ "some_desc"'

{
"description": "some_desc",
"host": "machine.company.net",
"service": "test",
"state": "warn",
"tags": [
" ",
"(",
"1",
",",
" ",
"2",
",",
" ",
"3",
")",
" "
],
"time": 1403022858,
"ttl": 600.0
}

Replace argparse with click

Click would be far more suited to the CLI riemann-client provides (especially in the case of environment variables). It could also replace an existing dependency instead of requiring an additional one.

Leave the tests and docs in the pypi releases

Hello!

I am working on the Debian packaging of python-riemann-client and I have noticed that you left the tests and docs out of the pypi releases.

Was there any reason you left them out?

If not, I would suggest you leave them in :)

6.5.0: pytest fails with error in tests/test_riemann_command.py and a lot of deprecation wantings

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix> using installer module
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")
Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-riemann-client-6.5.0-2.fc36.x86_64/usr/lib64/python3.9/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-riemann-client-6.5.0-2.fc36.x86_64/usr/lib/python3.9/site-packages
+ /usr/bin/pytest -ra -m 'not network'

========================================================================================== ERRORS ===========================================================================================
______________________________________________________________________ ERROR collecting tests/test_riemann_command.py _______________________________________________________________________
tests/test_riemann_command.py:8: in <module>
    import riemann_client.command
riemann_client/command.py:131: in <module>
    def query(transport, query):
/usr/lib/python3.9/site-packages/click/decorators.py:345: in decorator
    _param_memo(f, cls(param_decls, **attrs))
/usr/lib/python3.9/site-packages/click/core.py:2994: in __init__
    super().__init__(param_decls, required=required, **attrs)
/usr/lib/python3.9/site-packages/click/core.py:2111: in __init__
    self.name, self.opts, self.secondary_opts = self._parse_decls(
/usr/lib/python3.9/site-packages/click/core.py:3029: in _parse_decls
    raise TypeError(
E   TypeError: Arguments take exactly one parameter declaration, got 2.
===================================================================================== warnings summary ======================================================================================
riemann_client/riemann_py3_pb2.py:36
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:36: DeprecationWarning: Call to deprecated create function FileDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    DESCRIPTOR = _descriptor.FileDescriptor(

riemann_client/riemann_py3_pb2.py:51
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:51: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:58
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:58: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:65
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:65: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:72
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:72: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:79
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:79: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:86
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:86: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:93
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:93: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:100
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:100: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:44
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:44: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _STATE = _descriptor.Descriptor(

riemann_client/riemann_py3_pb2.py:128
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:128: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:135
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:135: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:142
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:142: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:149
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:149: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:156
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:156: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:163
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:163: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:170
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:170: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:177
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:177: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:184
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:184: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:191
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:191: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:198
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:198: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:121
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:121: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _EVENT = _descriptor.Descriptor(

riemann_client/riemann_py3_pb2.py:226
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:226: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:219
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:219: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _QUERY = _descriptor.Descriptor(

riemann_client/riemann_py3_pb2.py:254
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:254: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:261
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:261: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:268
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:268: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:275
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:275: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:282
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:282: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:247
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:247: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _MSG = _descriptor.Descriptor(

riemann_client/riemann_py3_pb2.py:310
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:310: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:317
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:317: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _descriptor.FieldDescriptor(

riemann_client/riemann_py3_pb2.py:303
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/riemann_client/riemann_py3_pb2.py:303: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
    _ATTRIBUTE = _descriptor.Descriptor(

tests/test_riemann_command.py:20
  /home/tkloczko/rpmbuild/BUILD/python-riemann-client-6.5.0/tests/test_riemann_command.py:20: DeprecationWarning: invalid escape sequence \s
    return re.sub(u'\s+', u'', string)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================================================================== short test summary info ==================================================================================
ERROR tests/test_riemann_command.py - TypeError: Arguments take exactly one parameter declaration, got 2.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
List of installed modules in build env:
Package                       Version
----------------------------- -----------
alabaster                     0.7.16
Babel                         2.14.0
build                         1.1.1
charset-normalizer            3.3.2
click                         8.1.7
distro                        1.9.0
dnf                           4.19.0
docutils                      0.20.1
exceptiongroup                1.1.3
gpg                           1.23.2
idna                          3.6
imagesize                     1.4.1
importlib_metadata            7.0.1
iniconfig                     2.0.0
installer                     0.7.0
Jinja2                        3.1.3
libdnf                        0.73.0
MarkupSafe                    2.1.3
packaging                     24.0
pluggy                        1.4.0
protobuf                      4.21.12
Pygments                      2.17.2
pyproject_hooks               1.0.0
pytest                        8.1.1
python-dateutil               2.9.0.post0
requests                      2.31.0
setuptools                    69.1.1
snowballstemmer               2.2.0
Sphinx                        7.2.6
sphinx_rtd_theme              2.0.0
sphinxcontrib-applehelp       1.0.8
sphinxcontrib-devhelp         1.0.5
sphinxcontrib-htmlhelp        2.0.5
sphinxcontrib-jquery          4.1
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.7
sphinxcontrib-serializinghtml 1.1.10
tokenize_rt                   5.2.0
tomli                         2.0.1
urllib3                       1.26.18
wheel                         0.43.0
zipp                          3.17.0

Please let me know if you need more details or want me to perform some diagnostics.

Support event attributes

Add support for attributes to Events - this can be done when directly working with protobuf objects but not though the helper methods.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.