{ "info": { "author": "Julio Trigo", "author_email": "julio.trigo@sohonet.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Nameko eventlog dispatcher\n==========================\n\n.. pull-quote::\n\n Nameko_ dependency provider that dispatches log data using ``Events``\n (Pub-Sub).\n\n\n.. image:: https://img.shields.io/pypi/v/nameko-eventlog-dispatcher.svg\n :target: https://pypi.org/project/nameko-eventlog-dispatcher/\n\n.. image:: https://img.shields.io/pypi/pyversions/nameko-eventlog-dispatcher.svg\n :target: https://pypi.org/project/nameko-eventlog-dispatcher/\n\n.. image:: https://img.shields.io/pypi/format/nameko-eventlog-dispatcher.svg\n :target: https://pypi.org/project/nameko-eventlog-dispatcher/\n\n.. image:: https://travis-ci.org/sohonetlabs/nameko-eventlog-dispatcher.png?branch=master\n :target: https://travis-ci.org/sohonetlabs/nameko-eventlog-dispatcher\n\n\nUsage\n-----\n\nDispatching event log data\n``````````````````````````\n\nInclude the ``EventLogDispatcher`` dependency in your service class:\n\n.. code-block:: python\n\n from nameko.rpc import rpc\n from nameko_eventlog_dispatcher import EventLogDispatcher\n\n\n class FooService:\n\n name = 'foo'\n\n eventlog_dispatcher = EventLogDispatcher()\n\n @rpc\n def foo_method(self):\n self.eventlog_dispatcher(\n 'foo_event_type', {'value': 1}, metadata={'meta': 2}\n )\n\nCalling ``foo_method`` will dispatch an event from the ``foo`` service\nwith ``log_event`` as the event type. However ``foo_event_type`` will be\nthe event type stored as part of the event metadata.\n\n``event_type``, ``event_data`` (optional) and ``metadata`` (optional)\ncan be provided as arguments. Both ``event_data`` and ``metadata`` must\nbe dictionaries and contain JSON serializable data.\n\nThen, any Nameko_ service will be able to handle this event.\n\n.. code-block:: python\n\n from nameko.events import event_handler\n\n\n class BarService:\n\n name = 'bar'\n\n @event_handler('foo', 'log_event')\n def foo_log_event_handler(self, body):\n \"\"\"`body` will contain the event log data.\"\"\"\n\n\nCapturing log data when entrypoints are fired\n`````````````````````````````````````````````\n\nEnable auto capture event logs in your Nameko_ configuration file:\n\n.. code-block:: yaml\n\n # config.yaml\n\n EVENTLOG_DISPATCHER:\n auto_capture: true\n entrypoints_to_exclude: []\n event_type: log_event\n\nAll the attributes above are optional and only used to override their\ndefault values.\n\nWith ``auto_capture`` set to ``true``, a Nameko_ event will be dispatched\nevery time an entrypoint is fired:\n\n- They can also be handled by listening ``log_event`` events from the\n service dispatching them.\n- ``entrypoint_fired`` will be the event type stored as part of the\n event metadata.\n- Only entrypoints listed in the ``ENTRYPOINT_TYPES_TO_LOG`` class\n attribute will be logged.\n- ``entrypoints_to_exclude`` can be used to provide a list of entrypoint\n method names to exclude when firing events automatically.\n\n``event_type`` can be added to the config to override the default Nameko_\nevent type used to dispatch this kind of events.\n\nFormat of the event log data\n----------------------------\n\nThis is the format of the event log data:\n\n.. code-block:: python\n\n {\n \"service_name\": \"foo\",\n \"entrypoint_protocol\": \"Rpc\",\n \"entrypoint_name\": \"foo_method\",\n \"call_id\": \"foo.foo_method.d7e907ee-9425-48a6-84e6-89db19e3ce50\",\n \"call_stack\": [\n \"standalone_rpc_proxy.call.3f349ea4-ed3e-4a3b-93d0-a36fbf928ecb\",\n \"bla.bla_method.21d623b4-edc4-4232-9957-4fad72533b75\",\n \"foo.foo_method.d7e907ee-9425-48a6-84e6-89db19e3ce50\"\n ],\n\n \"event_type\": \"foo_event_type\", # \"entrypoint_fired\", ...\n \"timestamp\": \"2017-06-12T13:48:16+00:00\",\n\n \"meta\": 2, # extra information provided as \"metadata\"\n \"data\": {\"value\": 1} # extra information provided as \"event_data\"\n }\n\nThe ``data`` attribute will contain the event data that was provided as\nan argument for the ``event_data`` parameter when dispatching the event.\n\nIf ``metadata`` was provided, then its elements will be included as top\nlevel attributes in the event log data.\n\n\nTests\n-----\n\nIt is assumed that **RabbitMQ** is up and running on the default URI\n``guest:guest@localhost`` and uses the default ports. There is a\nMakefile target to run a RabbitMQ docker containers locally using the\ndefault ports and configuration:\n\n.. code-block:: shell\n\n $ make docker-rabbitmq-run\n\nTo run the tests locally:\n\n.. code-block:: shell\n\n $ # Create/activate a virtual environment\n $ pip install tox\n $ tox\n\nThere are other Makefile targets to run the tests, but extra\ndependencies will have to be installed:\n\n.. code-block:: bash\n\n $ pip install -U --editable \".[dev]\"\n $ make test\n $ make coverage\n\nA different RabbitMQ URI can be provided overriding the following\nenvironment variables: ``RABBIT_CTL_URI`` and ``AMQP_URI``.\n\nAdditional ``pytest`` parameters can be also provided using the ``ARGS``\nvariable:\n\n.. code-block:: bash\n\n $ make test RABBIT_CTL_URI=http://guest:guest@dockermachine:15673 AMQP_URI=amqp://guest:guest@dockermachine:5673 ARGS='-x -vv --disable-pytest-warnings'\n $ make coverage RABBIT_CTL_URI=http://guest:guest@dockermachine:15673 AMQP_URI=amqp://guest:guest@dockermachine:5673 ARGS='-x -vv --disable-pytest-warnings'\n\n\nNameko support\n--------------\n\nThe following Nameko_ versions are supported:\n\n- ``2.x`` series: ``2.6``, ``2.7``, ``2.8``, ``2.9``, ``2.10``, ``2.11``,\n ``2.12``\n\n\nChangelog\n---------\n\nConsult the `CHANGELOG `_\ndocument for fixes and enhancements of each version.\n\n\nLicense\n-------\n\nThe MIT License. See `LICENSE `_\nfor details.\n\n\n.. _Nameko: http://nameko.readthedocs.org\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sohonetlabs/nameko-eventlog-dispatcher", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "nameko-eventlog-dispatcher", "package_url": "https://pypi.org/project/nameko-eventlog-dispatcher/", "platform": "", "project_url": "https://pypi.org/project/nameko-eventlog-dispatcher/", "project_urls": { "Homepage": "https://github.com/sohonetlabs/nameko-eventlog-dispatcher" }, "release_url": "https://pypi.org/project/nameko-eventlog-dispatcher/0.4.1/", "requires_dist": [ "nameko (>=2.6)", "pytest (<=4.3.0) ; extra == 'dev'", "flake8 ; extra == 'dev'", "coverage ; extra == 'dev'", "restructuredtext-lint ; extra == 'dev'", "Pygments ; extra == 'dev'" ], "requires_python": "", "summary": "Nameko dependency provider that dispatches log data using Events (Pub-Sub).", "version": "0.4.1" }, "last_serial": 5667558, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "40c48e6b889bceaf0e6b5e43f35b0b36", "sha256": "b64ed4d291d93fdb0e7377fb0f4589a90b40fd3341a9ab75968683989cc62269" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "40c48e6b889bceaf0e6b5e43f35b0b36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7551, "upload_time": "2017-06-19T10:53:49", "url": "https://files.pythonhosted.org/packages/9b/3d/784f9673fd178597db572f24c7045115d0553e66d23cd5b3dc5da6289ca8/nameko_eventlog_dispatcher-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a463f9f64c7d9ba0ac98d2575e66ee0d", "sha256": "5d63c2204759373badaeefdac3a6ec9630a0dc4bbd9811d617258562ed30f3ce" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a463f9f64c7d9ba0ac98d2575e66ee0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4487, "upload_time": "2017-06-19T10:53:51", "url": "https://files.pythonhosted.org/packages/2c/2e/ebed0f415f3d9345a1241647fe18ee6168406318641b1356aed045e976ef/nameko-eventlog-dispatcher-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "42b8cc6ec6405f950d9961266b5120f3", "sha256": "3efc3ba8ad92904fc6ed0d1ed0c91bc8a46a11dce8cc6af0945b43e74a11665e" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "42b8cc6ec6405f950d9961266b5120f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7614, "upload_time": "2017-06-23T15:29:26", "url": "https://files.pythonhosted.org/packages/d8/b8/493cc0684b60f467418929865413885995f6839a2a16504251669baecdb7/nameko_eventlog_dispatcher-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dc29a5081f65dfae38a5c3afd3c43d5", "sha256": "c744b2f4fc362850131ecf101e0ac48bff4381e98981e3bf565f0cf4e03d2703" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4dc29a5081f65dfae38a5c3afd3c43d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5599, "upload_time": "2017-06-23T15:29:28", "url": "https://files.pythonhosted.org/packages/bf/f4/cc7cb942c3aa7fd0c299263778c9d158f18f5798326fb7d734bc542f7f19/nameko-eventlog-dispatcher-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e8d8d2591408053d5f88061315c7d550", "sha256": "345609f26ea46b6bc0907b3495cbb57f799bb033b36532f65304e885041dfb98" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e8d8d2591408053d5f88061315c7d550", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5861, "upload_time": "2019-01-28T11:37:56", "url": "https://files.pythonhosted.org/packages/2b/4b/a11a41bd1b8836e492343b0e8959f94a5834599ceef170383e0c38b2983b/nameko_eventlog_dispatcher-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2052ac36c0e81cce505687034a5c64bb", "sha256": "4da7015860ee2be82822fd9057f1859ac1184e6af6ecdf12c0f3abde7729dc68" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2052ac36c0e81cce505687034a5c64bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5820, "upload_time": "2019-01-28T11:37:57", "url": "https://files.pythonhosted.org/packages/42/a4/cc6fdf90be4e857f9263461a96d36009da22718a219dd2bba20d1be6e5bb/nameko-eventlog-dispatcher-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d977795bcd1445c0ae4bb4f9e25976f8", "sha256": "d3eec4cc747abdec18093281d893a8a1cdfba33e167170157908dfede4bec202" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d977795bcd1445c0ae4bb4f9e25976f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6228, "upload_time": "2019-03-15T23:33:25", "url": "https://files.pythonhosted.org/packages/2f/df/69b33ce9f49d8b85e5ded1f790483b89d5dbc2abf9db88e075fcedd5a6dc/nameko_eventlog_dispatcher-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "610bdf89d95e34cfec0ae42e82cb1543", "sha256": "57a09955ae8431d61d689d5f17eaa5b59a45badd43f1977c232c5e5959c0b186" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.4.0.tar.gz", "has_sig": false, "md5_digest": "610bdf89d95e34cfec0ae42e82cb1543", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6435, "upload_time": "2019-03-15T23:33:27", "url": "https://files.pythonhosted.org/packages/0a/7e/64928f9ca8ad08866e0530bdeb09f2a400e905c8aff8b3d9488041e9f58d/nameko-eventlog-dispatcher-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "dcb48464ed32ede2c8750fc5f75535a2", "sha256": "428fb6a7759d712b0751d4f228bbf96018ba22ec8abbee6f312b0ca6fc340396" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dcb48464ed32ede2c8750fc5f75535a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6304, "upload_time": "2019-03-21T14:54:36", "url": "https://files.pythonhosted.org/packages/9c/0d/0f6582ffb791f347b18a15a216a12ab9bba90663f513c5e529b71a1419bc/nameko_eventlog_dispatcher-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4511cae4652feb04c0dc0d051634154", "sha256": "3e5274f0f2291a3b59423d2449a1815c7bd0197130082a005cfaea83d36770b8" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c4511cae4652feb04c0dc0d051634154", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6579, "upload_time": "2019-03-21T14:54:38", "url": "https://files.pythonhosted.org/packages/a4/3a/b839a67ad946aa13eb9ff0c3d467a274084756a47e4393a25a447d28c42f/nameko-eventlog-dispatcher-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dcb48464ed32ede2c8750fc5f75535a2", "sha256": "428fb6a7759d712b0751d4f228bbf96018ba22ec8abbee6f312b0ca6fc340396" }, "downloads": -1, "filename": "nameko_eventlog_dispatcher-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dcb48464ed32ede2c8750fc5f75535a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6304, "upload_time": "2019-03-21T14:54:36", "url": "https://files.pythonhosted.org/packages/9c/0d/0f6582ffb791f347b18a15a216a12ab9bba90663f513c5e529b71a1419bc/nameko_eventlog_dispatcher-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4511cae4652feb04c0dc0d051634154", "sha256": "3e5274f0f2291a3b59423d2449a1815c7bd0197130082a005cfaea83d36770b8" }, "downloads": -1, "filename": "nameko-eventlog-dispatcher-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c4511cae4652feb04c0dc0d051634154", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6579, "upload_time": "2019-03-21T14:54:38", "url": "https://files.pythonhosted.org/packages/a4/3a/b839a67ad946aa13eb9ff0c3d467a274084756a47e4393a25a447d28c42f/nameko-eventlog-dispatcher-0.4.1.tar.gz" } ] }