{"id":23536483,"url":"https://github.com/hgn/monetta","last_synced_at":"2025-04-23T11:17:51.990Z","repository":{"id":54295757,"uuid":"97760102","full_name":"hgn/monetta","owner":"hgn","description":"HTTP Monitoring Server/Client for Systemd based Systems","archived":false,"fork":false,"pushed_at":"2021-02-26T02:13:51.000Z","size":1598,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T11:17:44.666Z","etag":null,"topics":["cpu-monitoring","embedded","interrupts","journalctl","linux","logger","logging","monitoring","process-monitor","processing","systemd"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hgn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-19T20:50:35.000Z","updated_at":"2025-02-27T00:08:23.000Z","dependencies_parsed_at":"2022-08-13T11:20:09.504Z","dependency_job_id":null,"html_url":"https://github.com/hgn/monetta","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgn%2Fmonetta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgn%2Fmonetta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgn%2Fmonetta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgn%2Fmonetta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hgn","download_url":"https://codeload.github.com/hgn/monetta/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250421911,"owners_count":21427851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu-monitoring","embedded","interrupts","journalctl","linux","logger","logging","monitoring","process-monitor","processing","systemd"],"created_at":"2024-12-26T02:29:05.493Z","updated_at":"2025-04-23T11:17:51.969Z","avatar_url":"https://github.com/hgn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Monetta - Linux Monitoring Daemon\n\nA Lightweight\u003csup\u003e1\u003c/sup\u003e Logging and System Monitoring Web Server\n\n\u003e \u003csup\u003e1\u003c/sup\u003elightweight in the sense that required processing operations are\n\u003e shifted to browser side. E.g. journal data is directly tailloged from\n\u003e `journal -f json` and piped into a websocket to the client - no intermediate\n\u003e processing. Open files within `/proc` cannot be optimized out (though, if tab\n\u003e is not active, no data is gathered)\n\n## Installation\n\n```shell\n# download this package\ngit clone https://github.com/hgn/monetta.git\ncd monetta\n\n# aiohttp package is required (python webserver)\npip install -f requirements.txt\n\n# monetta is using python binding to log\n# into journal\naptitude install python3-systemd\n\n# start the server\n./run.py -f assets/monetta.conf\n\n# open your browser -\u003e http://localhost:8080/\n```\n\n\n## Journal Tab\n\nDisplays Systemd journal information. Some filters are available. Journal can\nalso be downloaded as JSON or Syslog format (you can even wget the both formats\nif you want).\n\n![Monetta Screenshot - Utilization](https://github.com/hgn/monetta/raw/master/doc/screenshots/screenshot-journal.png)\n\n## Utilization Tab\n\nFocus on life data of the system. Update interval is one second.\n\n- **Avg Run [µs]** average time spent on the CPU until scheduled out\n- **Avg Wait [µs]** average time spent waiting on a runqueue until scheduled in\n- **Scheduled [/s]** How often this process is switched into. See function\n  [prepare_task_switch()](https://elixir.bootlin.com/linux/v5.2/source/kernel/sched/core.c#L2597).\n  Which will call `sched_info_switch()`. The number of context switches it divided by interval to\n  get them per second. Or other: number of timeslices run on this cpu per seconds.\n\n\n![Monetta Screenshot - Utilization](https://github.com/hgn/monetta/raw/master/doc/screenshots/screenshot-utilization.png)\n\n## Process Tab\n\nProvides static data of an process. The page is updated rarely (every 10 seconds).\n\n![Monetta Screenshot - Utilization](https://github.com/hgn/monetta/raw/master/doc/screenshots/screenshot-process.png)\n\n## IRQ Tab\n\nUpdated every second and display all interrupt related data, including affinity mask.\n\n![Monetta Screenshot - Utilization](https://github.com/hgn/monetta/raw/master/doc/screenshots/screenshot-irq.png)\n\n## Problem Statement\n\nEvery mid-size and larger project - including embedded projects - requires at\nleast a logging infrastructure. Piping the logging data via netcat to a client\nwritten in QT is fine but has drawbacks: cross platform limitations, software\ndistribution, stable and and backward compatible APIs to serve old clients,\nwriting nice GUIs, etc.\n\nMonetta try to address this problem by using modern web technologies and\nsimultaneously try to be resource friendly - at least try to do so:\n\n```\n  USS      PSS      RSS\n23264    24320    29404\n```\n\nMonetta is released under a liberal licence - use it in your project without\nany pain!\n\n## Goals and Paradigms\n\n- Targeted for Embedded Environments\n- Shift computational tasks to the client (web browser), the server provide raw values\n- Stick with Systemd and Journalctl\n- Reduce external dependencies - just standard Python, aiohttp and python3-systemd\n- If no client is connected the service should idle 100%\n\n# Installation\n\nDebian based distribution:\n\n```\naptitude install python3-systemd\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhgn%2Fmonetta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhgn%2Fmonetta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhgn%2Fmonetta/lists"}