Files
weewx/examples/pmon
Tom Keffer fe9eb512a8 Moved things back to their v4 locations.
make target `pypi-packages` copies them back into `wee_resources`
before invoking `poetry build`
2023-02-26 13:52:09 -08:00
..

pmon - Process Monitor

Copyright 2014-2023 Matthew Wall

This example illustrates how to implement a service and package it so that it can be installed by the extension installer. The pmon service collects memory usage information about a single process then saves it in its own database. Data are then displayed using standard WeeWX reporting and plotting utilities.

  1. Install the extension.

    For pip installs:

     weectl extension install ~/weewx-data/examples/pmon
    

    For package installs

     sudo weectl extension install /usr/share/doc/weewx/examples/pmon
    
  2. Restart WeeWX

     sudo systemctl restart weewx
    

This will result in a skin called pmon with a single web page that illustrates how to use the monitoring data. See comments in pmon.py for customization options.

Manual installation instructions

  1. Copy the pmon service file to the WeeWX user directory.

    For pip installs:

     cd ~/weewx-data/examples/pmon
     cp bin/user/pmon.py ~/etc/weewx-data/bin/user
    

    For package installs:

     cd /usr/share/doc/weewx/examples/pmon
     sudo cp bin/user/pmon.py /usr/share/weewx/user
    
  2. Copy the pmon skin to the WeeWX skins directory.

    For pip installs:

     cd ~/weewx-data/examples/pmon
     cp skins/pmon ~/weewx-data/skins/
    

    For package installs:

     cd /usr/share/doc/weewx/examples/pmon
     sudo cp skins/pmon/ /etc/weewx/skins/
    
  3. In the WeeWX configuration file, add a new [ProcessMonitor] stanza

     [ProcessMonitor]
         data_binding = pmon_binding
         process = weewxd
    
  4. In the WeeWX configuration file, add a data binding

    [DataBindings]
        ...
        [[pmon_binding]]
            database = pmon_sqlite
            table_name = archive
            manager = weewx.manager.Manager
            schema = user.pmon.schema
    
  5. In the WeeWX configuration file, add a database

    [Databases]
        ...
        [[pmon_sqlite]]
            database_name = pmon.sdb
            driver = weedb.sqlite
    
  6. In the WeeWX configuration file, add a report

    [StdReport]
        ...
        [[pmon]]
            skin = pmon
            HTML_ROOT = pmon
    
  7. In the WeeWX configuration file, add the pmon service

    [Engine]
        [[Services]]
            process_services = ..., user.pmon.ProcessMonitor
    
  8. Restart WeeWX

     sudo systemctl restart weewx