{ "info": { "author": "Volker Schwicking", "author_email": "vs@hosteurope.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: System :: Distributed Computing" ], "description": "# salt-eventsd\n\nA project based on but not related to saltstack\n\n\n## The current stable release is tagged as: 0.9.3\n\nIf you are already using salt-eventsd, check the changelog for the latest changes and fixes.\n\nDue to public request, i pushed the develop-branch to github for everyone to try out. From today\non, the latest bleeding-edge salt-eventsd will always be in the develop branch with new release\ngetting tagged.\n\nPlease note, that i reserve the right to brake develop. Even though i always test all changes\nlocally before pushing them to github, it may happen.\n\n\n### Updating from 0.9 to 0.9.3\n\nSee the changelog for improvements in 0.9.3. For more info see installation.txt.\n\nIMPORTANT:\nIf you're coming from 0.9 make sure, that you make the following changes to your config:\n\nRename: 'stat_upd' to 'stat_timer'\nAdd: 'stat_worker: False' (see installation.txt for details on it)\n\n\n### Availability Notes\n\n#### Pypi\n\nAs of Jan 22nd, we are on pypi: https://pypi.python.org/pypi/salt-eventsd/\n\n#### Debian / Ubuntu\n\nA debian-package can be built straight from the repo by running 'dpkg-buildpackage -b'. All dependencies\nhave to be installed of course.\n\n\n#### Redhat / CentOS\n\nThere are no packages for redhat yet. If you have the knowledge and the ressources to support that, feel\nfree to submit the necessary changes.\n\n\n### What it does\n\nA event-listener daemon for saltstack that writes data into mysql, postgres, statistical data into graphite, mongo,\netc. All events that occur on saltstacks eventbus can be handled and pushed to other daemons, databases, etc. You\ndecide yourself!\n\nThe daemon connects to the salt-masters event-bus and listens for all events. Depending on the configuration,\ncertain events can be collected by their tag and/or function-name and handed down to different workers. The\nworkers then extract the desired data-fields from the return and process them further in a user-definable way.\n\n\n### Dependencies\n\nRequired python runtime dependencies:\n\n - salt >= 0.16.2\n - mysql-python\n - argparse\n - pyzmq\n\nOptional/usefull dependencies\n\n - simplejson (Install with: pip install simplejson)\n\n\n### Usage Examples\n\n- collect all events with tag 'new_job' to have a job-history that lasts longer than saltstacks job-cache\n- collect all job returns by matching on job-return-tagged event returned from minions to have a database with all returns you can index, search, etc.\n- filter events into different backends like graphite, mongodb, mysql, postgres, whatever...\n- collect historic data like load average etc. by collecting events with tag 'load' which are created by your own load-monitoring module\n- create and collect your own custom backends that process you event-data\n- etc.\n\n\n### Why this is useful / Who needs this?\n\nCurrently saltstack does not have an external job-cache that works without a returner. Using returners and by that losing salt encryption\nis not always desirable or maybe not even be an option. With this daemon, you can collect all data right where its created and returned: on the salt-master.\n\nWhile saltstacks job-cache works well in smaller environments, in larger environments the job-cache can become a burden for the salt-master. Especially\nif the job-cache should be kept for a longer period of time, and im talking weeks and month here. This is where the salt-eventsd jumps in. With the\ndefault mysql-backend, its easy to collect data for weeks and weeks without burdening the salt-master to keep track of jobs and their results in the\njob-cache.\n\nSaltstacks job-cache can be completely disabled because all the data is in an independent database, fully indexed, searcheable and\neasily cleaned up and/or archived with a few querys.\n\nIn larger environments it is also a good idea, to seperate different services from one another. With salt-eventsd you can use saltstack for\ncommunication and salt-eventsd to collect the actual data. The benefit is, that the salt-master does not need to be restarted just because changes\nwere done for example to a reactor or a runner.\n\n\n### Features\n\n- collect events from the salt-event-bus into a different backends\n- collect a configurable amount of events before pushing them into different backends\n- define Prio1 events that are pushed immediately without queuing them first\n- write your own backends with ease (some python knowledge required)\n- use regular expressions for matching on events, very flexible and powerful\n- have events send to two backends for having a command+return history as well as having the data pushed elsewhere\n- create your own sql-query-templates for inserting data into the database\n- fully saltstack-job-cache independant database to hold all data you want in it\n- example workers are found in the doc-directory\n\n\n### Testing\n\npy.test is used to run all available tests.\n\nTo install all test dependencies you must first install all test dependencies by running\n\n```\n$ pip install -r dev-requirements.txt\n```\n\nIt is reccomended to install all dependencies inside a virtualenv for easy isolation.\n\nTo run all tests simply the following in the root folder\n\n```\npy.test\n```\n\nGood options to use is `-x` for pdb debugging and `-s` for showing prints and log output.\n\n\n\n### Benchmark\n\nThere is a simple benchmark script that can be used to test the performance of the code manually.\n\nThe script setups almost all required mocking and config inside the script.\n\nDependencies that is required is:\n\n - mock (pip install mock)\n\nCopy the worker file `doc/share/doc/eventsd_workers/Bench_Worker.py` to `/etc/salt/eventsd_workers/Bench_Worker.py`\n\nRun the script with `python benchmark.py`", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/felskrone/salt-eventsd", "keywords": "saltstack,salt", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "salt-eventsd", "package_url": "https://pypi.org/project/salt-eventsd/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/salt-eventsd/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/felskrone/salt-eventsd" }, "release_url": "https://pypi.org/project/salt-eventsd/0.9.3/", "requires_dist": null, "requires_python": null, "summary": "Daemon that collects events from the salt-event-bus and writes them into any backend, mysql, redis, etc.", "version": "0.9.3" }, "last_serial": 1480324, "releases": { "0.9.1": [ { "comment_text": "", "digests": { "md5": "542814ebff6bf21e15214146e9d23880", "sha256": "4eef6b4dff8825e7a2e2a48d73eef9eed0c1990e84cb568a7254af067a788fb7" }, "downloads": -1, "filename": "salt-eventsd-0.9.1.tar.gz", "has_sig": false, "md5_digest": "542814ebff6bf21e15214146e9d23880", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25507, "upload_time": "2015-01-22T18:31:55", "url": "https://files.pythonhosted.org/packages/87/cf/ee6ff2dce43ee59d1121ef620552f73044847ed80113bf562b982443861d/salt-eventsd-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "3f736b1c0534613f71c4fb5ad7e530cc", "sha256": "a0635b27f70ceb82341d5240385ed7a424812df0645446795d5f76f0ce54c36f" }, "downloads": -1, "filename": "salt-eventsd-0.9.2.tar.gz", "has_sig": false, "md5_digest": "3f736b1c0534613f71c4fb5ad7e530cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26554, "upload_time": "2015-02-10T11:22:47", "url": "https://files.pythonhosted.org/packages/72/24/9fc54179d4ec19255d6673568989c2caa56c0304e03deee2aac73d41c3f0/salt-eventsd-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "84a992fe2f2d239571b5c3a9d708f6a9", "sha256": "865d0c704da83c6fe09d39388330270e9358695b510cbbc9be0603cb6bac9a91" }, "downloads": -1, "filename": "salt-eventsd-0.9.3.tar.gz", "has_sig": false, "md5_digest": "84a992fe2f2d239571b5c3a9d708f6a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28145, "upload_time": "2015-03-27T15:41:02", "url": "https://files.pythonhosted.org/packages/a6/4d/dc5d941906aa2b692e98254809a91e11b8f394e3e2d1c0cf9c59f816a810/salt-eventsd-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84a992fe2f2d239571b5c3a9d708f6a9", "sha256": "865d0c704da83c6fe09d39388330270e9358695b510cbbc9be0603cb6bac9a91" }, "downloads": -1, "filename": "salt-eventsd-0.9.3.tar.gz", "has_sig": false, "md5_digest": "84a992fe2f2d239571b5c3a9d708f6a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28145, "upload_time": "2015-03-27T15:41:02", "url": "https://files.pythonhosted.org/packages/a6/4d/dc5d941906aa2b692e98254809a91e11b8f394e3e2d1c0cf9c59f816a810/salt-eventsd-0.9.3.tar.gz" } ] }