pluggable-info-monitor


Namepluggable-info-monitor JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://bitbucket.org/GeorgeFischhof/pluggable_info_monitor
SummaryPluggable Info Monitor for visibility and transparency
upload_time
maintainer
docs_urlNone
authorGeorge Fischhof
requires_python
licenseMIT
keywords information monitor plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Pluggable Info Monitor
======================

Pluggable Info Monitor is a web application to display information provided by plugins on a web page.

PIM for the Visibility and Transparency
---------------------------------------

Quick Start
-----------
1. Install requirements
::

    pip install flask
    pip install waitress

2. Copy the source to a folder of your choice
3. Check working:
    a. ``cd <path_to_info_monitor.py>``
    a. ``python info_monitor``
    b. in a browser window navigate to ``127.0.0.1:8080`` address 
    c. the example plugins give some info - It works ;-)
4. You can write your plugins using the examples

Usage
-----
The index page will show the list of available plugins as links. These links can be used if PIM used interactively. 
The info pages will be changed (the next is showed) in every minute (can be changed in PIM_config.py).
If used interactively, the info refreshes on keypress too.

To be useful for you, you have to write your own info providers according to examples.

The check_info_provider_interface.py checks the most important things of your plugins. 
(Can be started from the folder it resides)

Next version will be better. ;-)

Configuration
-------------
Serving IP address, port, refresh time interval can be set in PIM_config.py file


Compatibility
-------------
PIM needs at least Python 3.1

Features and versions:

- format string: Python 3.6 https://docs.python.org/3/reference/lexical_analysis.html#f-strings If you have earlier version of Python, you should replace these string formattings
- reload imported module in runtime: Python 3.4 If you have earlier version of Python if application runs and you edit the info provider plugin, after editing the application must be restarted
- import module runtime: Python 3.1 https://docs.python.org/3/library/importlib.html#importlib.import_module


ToDo / Planned features
-----------------------
- COnfigurable font size
- Configurable plugin folder outside of the program
- Start plugin checking from web and get results as well
- Package creation fro easier installation; using in virtualemv it can be installed with user privileges


Screenshot
----------
.. image:: Screenshot.jpg

One module gives four information with different severity levels


TL;DR
-----

History
-------
During development, specially in agile methodologies there is need to monitor the status of the development. So teams used to check the build status, test results, number of bugs etc. (Like Jenkins's build monitor plugin (aka radiator))
So the idea came from this: Jenkins build monitor can show only the status of the jobs. And I wanted a tool that shows / monitors other things as well. (This is my first Python web application ;-) )

How PIM works
-------------
0. PIM webpage is loaded in a browser (if not called, PIM does nothing)
1. Index page is displayed. Clicking on a provider will display the info provided by the given provider. If no provider is clicked, the first will be selected automatically.
2. gets the info from the provider
3. creates a web page with the info it gathered. There are two parameters now which can modify the way the info is dispalyed. Severity (gives background color) and display splitting (full screen, half, quarter)
4. PIM goes through the providers (ordered alphabetically by their name) and after the last one it starts the cycle from the first one.

Where the displayed info comes from?
------------------------------------
You write the info provider plugins. The plugins must be put into info_providers folder. The providers must provide the info in the following structure

::

    one_info = {
        'display_part': DisplayParts.FULL_SCREEN,
        'info_severity': InfoSeverity.INFO,
        'info': {
            'key_1': 42,
            'key_2': 'spam',
            'key_3': 'eggs',
        },
    }

    info_to_display = list()
    info_to_display.append(one_info)


Installation
------------

Requirements
^^^^^^^^^^^^

- Flask webframework

  https://pypi.python.org/pypi/Flask
  ::

    pip install flask

- Waitress webserver

  https://pypi.python.org/pypi/waitress
  ::

    pip install waitress

- Optional:PyTest test framework to execute PIM tests and the more important thing: to verify your plugins whether they comply to interface requirements.

  https://pypi.python.org/pypi/pytest/
  ::

    pip install pytest

PIM has is no any install procedure right now. You can get PIM from the source.
            

Raw data

            {
    "_id": null,
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "cheesecake_code_kwalitee_id": null,
    "keywords": "information monitor plugin",
    "author": "George Fischhof",
    "home_page": "https://bitbucket.org/GeorgeFischhof/pluggable_info_monitor",
    "download_url": "",
    "platform": "",
    "version": "0.2.0",
    "cheesecake_documentation_id": null,
    "description": "Pluggable Info Monitor\n======================\n\nPluggable Info Monitor is a web application to display information provided by plugins on a web page.\n\nPIM for the Visibility and Transparency\n---------------------------------------\n\nQuick Start\n-----------\n1. Install requirements\n::\n\n    pip install flask\n    pip install waitress\n\n2. Copy the source to a folder of your choice\n3. Check working:\n    a. ``cd <path_to_info_monitor.py>``\n    a. ``python info_monitor``\n    b. in a browser window navigate to ``127.0.0.1:8080`` address \n    c. the example plugins give some info - It works ;-)\n4. You can write your plugins using the examples\n\nUsage\n-----\nThe index page will show the list of available plugins as links. These links can be used if PIM used interactively. \nThe info pages will be changed (the next is showed) in every minute (can be changed in PIM_config.py).\nIf used interactively, the info refreshes on keypress too.\n\nTo be useful for you, you have to write your own info providers according to examples.\n\nThe check_info_provider_interface.py checks the most important things of your plugins. \n(Can be started from the folder it resides)\n\nNext version will be better. ;-)\n\nConfiguration\n-------------\nServing IP address, port, refresh time interval can be set in PIM_config.py file\n\n\nCompatibility\n-------------\nPIM needs at least Python 3.1\n\nFeatures and versions:\n\n- format string: Python 3.6 https://docs.python.org/3/reference/lexical_analysis.html#f-strings If you have earlier version of Python, you should replace these string formattings\n- reload imported module in runtime: Python 3.4 If you have earlier version of Python if application runs and you edit the info provider plugin, after editing the application must be restarted\n- import module runtime: Python 3.1 https://docs.python.org/3/library/importlib.html#importlib.import_module\n\n\nToDo / Planned features\n-----------------------\n- COnfigurable font size\n- Configurable plugin folder outside of the program\n- Start plugin checking from web and get results as well\n- Package creation fro easier installation; using in virtualemv it can be installed with user privileges\n\n\nScreenshot\n----------\n.. image:: Screenshot.jpg\n\nOne module gives four information with different severity levels\n\n\nTL;DR\n-----\n\nHistory\n-------\nDuring development, specially in agile methodologies there is need to monitor the status of the development. So teams used to check the build status, test results, number of bugs etc. (Like Jenkins's build monitor plugin (aka radiator))\nSo the idea came from this: Jenkins build monitor can show only the status of the jobs. And I wanted a tool that shows / monitors other things as well. (This is my first Python web application ;-) )\n\nHow PIM works\n-------------\n0. PIM webpage is loaded in a browser (if not called, PIM does nothing)\n1. Index page is displayed. Clicking on a provider will display the info provided by the given provider. If no provider is clicked, the first will be selected automatically.\n2. gets the info from the provider\n3. creates a web page with the info it gathered. There are two parameters now which can modify the way the info is dispalyed. Severity (gives background color) and display splitting (full screen, half, quarter)\n4. PIM goes through the providers (ordered alphabetically by their name) and after the last one it starts the cycle from the first one.\n\nWhere the displayed info comes from?\n------------------------------------\nYou write the info provider plugins. The plugins must be put into info_providers folder. The providers must provide the info in the following structure\n\n::\n\n    one_info = {\n        'display_part': DisplayParts.FULL_SCREEN,\n        'info_severity': InfoSeverity.INFO,\n        'info': {\n            'key_1': 42,\n            'key_2': 'spam',\n            'key_3': 'eggs',\n        },\n    }\n\n    info_to_display = list()\n    info_to_display.append(one_info)\n\n\nInstallation\n------------\n\nRequirements\n^^^^^^^^^^^^\n\n- Flask webframework\n\n  https://pypi.python.org/pypi/Flask\n  ::\n\n    pip install flask\n\n- Waitress webserver\n\n  https://pypi.python.org/pypi/waitress\n  ::\n\n    pip install waitress\n\n- Optional:PyTest test framework to execute PIM tests and the more important thing: to verify your plugins whether they comply to interface requirements.\n\n  https://pypi.python.org/pypi/pytest/\n  ::\n\n    pip install pytest\n\nPIM has is no any install procedure right now. You can get PIM from the source.",
    "lcname": "pluggable-info-monitor",
    "name": "pluggable-info-monitor",
    "github": false,
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Pluggable Info Monitor for visibility and transparency",
    "split_keywords": [
        "information",
        "monitor",
        "plugin"
    ],
    "author_email": "george@fischhof.hu",
    "urls": [],
    "cheesecake_installability_id": null
}
        
Elapsed time: 0.06895s