Skip to main content

Jülich Monitoring and Control

Project description

Installation | Execution | Authorization | Encryption | Further documentation | Getting help |

JuMonC

JuMonC stands for "Jülich monitoring and control" and allows easier access to monitor running simulations and provides data using a REST-API.


Installation

JuMonC can be installed using pip:

pip install JuMonC

This also creates an entry point, allowing to start JuMonC with just the command JuMonC

Runtime dependencies

Optional runtime dependencies

Extras

JuMonC allows installation with extras for the optional dependencies. Some of them need installed software on the system, that is not part of the PyPi installation, so that still has to be provided. It still makes the setup easier. Currently the following options for the extras are avaiable:

  • PAPI: For use of PAPI
  • NVLM: For use of NVML
  • psutil: For use of psutil
  • SSL: Only needed when using adhoc certificates
  • Full: All of the above dependencies provided at once
  • Devel: Includes the ful ldependencies and installs all tools neeeded for CI as well, to allow local tests

These extras can be used like this:

pip install JuMonC[psutil,SSL]

Execution

JuMonC needs to be started parallel to your running simulation and needs one mpi process on each node your simulation is using. The actual REST-API will only be avaiable on node 0 and then communicate internaly using mpi.

It can be started by running srun -n <#nodes> --ntasks-per-node=1 JuMonC &

By default, this will start the REST-API on port 12121 on rank 0 of this allocation. The port can be changed by providing -p=<port>. Depending on the firewall rules of the system you are using, it might be necessary to use a ssh-tunnel to forward this endpoint of the API to somewhere else where you can access it.

Authorization

Security is always a concern, and to block unauthorized access of this API there is a scope based token authorization included. This means each action requires authorization, with different tokens having a different scope of allowed actions. The tokens included by default and printed to stdout on startup are hierarchical, therefore every token includes the authorized functions of all lower tokens:

  1. see_links
  2. retrieve_data
  3. compute_data
  4. retrieve_simulation_data
  5. compute_simulation_data
  6. full

There are two options to prove your authorization, either cookie based by providing the token once in the login function (e.g. /login?token=12345678) or providing it by every API call as an additional parameter (e.g. /v1/network?token=12345678).

Encryption

JuMonC offers two different modes to use encryption. One uses adhoc generated certificates, the other one allows you to supply your own certificates.

  1. adhoc certificates:
  • depending on the used software to acces JuMonC you will get a warning or by default (e.g. Mozilla firefox) a complete blocking of the connection (e.g. curl) that you need to accept or override. This is due to the certificates not having any chain of trust to already trusted certificates.
  • you need to have pyopenssl avaiable to use adhoc certificates
  • used with --SSL_ENABLED
  1. Providing certificates
  • You can generate your own self-singed certificates using for example openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
    • This leads to the same warings as the adhoc certificates, but allows a manual control of the signed certificate
  • using this methods needs three arguments, one for enabeling SSL --SSL_ENABLED and one each for the certificate and the key --SSL_CERT=/path/to/cert.pem --SSL_KEY=/path/to/key.pem. The paths can either be absolute paths or relatic paths from the current working directory.

Further documentation

Getting help

Open an issue

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

JuMonC-0.7.1.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

JuMonC-0.7.1-py3-none-any.whl (47.1 kB view details)

Uploaded Python 3

File details

Details for the file JuMonC-0.7.1.tar.gz.

File metadata

  • Download URL: JuMonC-0.7.1.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for JuMonC-0.7.1.tar.gz
Algorithm Hash digest
SHA256 2e6b99474b4e6ac10021d364d9c96c9af9f10cd3146b7ab5df17e57eedb38ced
MD5 c2a14126e920d15619302b7b5b2485dc
BLAKE2b-256 fefb14ed23b7de29d531e9d4fdacd09687621aae91f48bf0c46eccf5ee497e0a

See more details on using hashes here.

File details

Details for the file JuMonC-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: JuMonC-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 47.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for JuMonC-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cba7edaf4b550fe1cc28272d2eb33154ab61aeaa17073e94d3e57859366f6247
MD5 417e522b3f8892795185436fb6900f3e
BLAKE2b-256 d6e47dc050295e2410e52bc8e1e9840f1d96d7da7336ff34dff105be6bb3d151

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page