{"id":20820781,"url":"https://github.com/webdad/srv_status","last_synced_at":"2025-03-12T06:23:20.626Z","repository":{"id":152505655,"uuid":"167150212","full_name":"WebDaD/srv_status","owner":"WebDaD","description":"Simple Self-Containable Status-Messager. Creates a JSON-File","archived":false,"fork":false,"pushed_at":"2019-02-08T12:37:29.000Z","size":13390,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T16:39:37.200Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/WebDaD.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-23T08:55:54.000Z","updated_at":"2019-02-08T12:37:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f767900-0c5d-4411-ac2f-21e41a15d5ac","html_url":"https://github.com/WebDaD/srv_status","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/WebDaD%2Fsrv_status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fsrv_status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fsrv_status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebDaD%2Fsrv_status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WebDaD","download_url":"https://codeload.github.com/WebDaD/srv_status/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243167032,"owners_count":20247021,"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":[],"created_at":"2024-11-17T22:10:12.292Z","updated_at":"2025-03-12T06:23:20.621Z","avatar_url":"https://github.com/WebDaD.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# srv-status\r\n\r\nSimple Self-Containable Status-Messager. Creates a JSON-File and writes a Log\r\n\r\n## Check\r\n\r\nTo Start a check use `node check.js config.json`\r\n\r\nor build the binary and then use it: `./bin/check config.json` (or link it into your path)\r\n\r\nYou may create a cronjob to use this.\r\n\r\n## Config\r\n\r\nThe Config is the biggest part of this project. See _config.sample.json_ for an example.\r\n\r\nYou have 2 global Attributes:\r\n\r\n* statusFile: Here will the Status-File be written. Will try to create\r\n* log: The Config for the Logging Plugin. See https://www.npmjs.com/package/lib-log\r\n\r\nAfter that we have 'checkSuites', which is an Array of objects.\r\n\r\nEach Object Contains:\r\n\r\n* name: Name of the Suite\r\n* checks: An Array of Checks\r\n\r\nEach Check in the Array 'checks' is an object:\r\n\r\n* name: Name of the Check\r\n* type: The Type of the Check (see List of Check-Plugins)\r\n* target: [Optional] A Target for the Check\r\n* warning: [Optional] An Object with Warning Settings\r\n* critical:  An Object with Critical Settings\r\n\r\nWarning / Critical Settings Contain:\r\n\r\n* value: The Value to trigger the status\r\n* recommendations: Array of Strings to Help the Admin solve the problem\r\n* actions: Array of Strings (linux commands) to automatically solve the problem\r\n\r\n### List of Check-Plugins\r\n\r\n\r\n\r\n## Server\r\n\r\nTo Start the Server use `node server.js /some/status.json 3000`\r\n\r\nor build the binary and then send it to the background: `./bin/server /some/status.json 3000 \u0026 \u003e/dev/null`  (or link it into your path)\r\n\r\n## Action\r\n\r\nTo try to heal the services automagically use `node action.js /some/status.json`\r\n\r\nor build the binary and then use it: `./bin/action /some/status.json`  (or link it into your path)\r\n\r\nYou may create a cronjob to use this.\r\n\r\n## Test\r\n\r\nThere are 4 Levels of test, easiest done via npm-calls\r\n\r\n* Just Tests: `npm run test`\r\n* Tests with Coverage: `npm run test-coverage`\r\n* Tests with Coverage and HTML-Output: `npm run test-graphics`\r\n* Tests with Mutations: `npm run test-mutation`\r\n\r\n## Build\r\n\r\nTo build the binaries use the nexe-CLI or simply `npm run build`\r\n\r\n## TODO\r\n\r\n* Add Section Check-Plugins\r\n* Add Section Contribution\r\n* Config: Add Recomodations for WARN, CRIT (just text \u003e Do this, do that)\r\n* Config: Add Actions (automatic resolves) for WARN CRIT (eg restart a process)\r\n* Add port Test\r\n* Add rabbitmq ALIVE Test\r\n* Add rabbitmq messages check and Test api/exchanges/%2F/amq.topic (incoming, outgoing)\r\n\r\n* Add Central Dashboard Service (collect info, display)\r\n* Actions should be e.g. scripts for better solutions\r\n* Have a script to deploy monitoring to a server (bins/actions/config)\r\n* Config Website (create server monitoring configuration)\r\n\r\n* Add Performance Data to checks (or extra binary)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdad%2Fsrv_status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdad%2Fsrv_status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdad%2Fsrv_status/lists"}