{"id":18522608,"url":"https://github.com/astro/petze","last_synced_at":"2025-05-14T18:30:24.834Z","repository":{"id":8503782,"uuid":"10113509","full_name":"astro/petze","owner":"astro","description":"Service monitoring not invented here","archived":false,"fork":false,"pushed_at":"2013-06-26T13:34:50.000Z","size":136,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-17T05:29:04.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","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/astro.png","metadata":{"files":{"readme":"README.markdown","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":"2013-05-17T00:53:42.000Z","updated_at":"2018-12-19T20:42:05.000Z","dependencies_parsed_at":"2022-09-16T14:29:47.673Z","dependency_job_id":null,"html_url":"https://github.com/astro/petze","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/astro%2Fpetze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fpetze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fpetze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fpetze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astro","download_url":"https://codeload.github.com/astro/petze/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254201703,"owners_count":22031604,"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-06T17:32:18.181Z","updated_at":"2025-05-14T18:30:24.781Z","avatar_url":"https://github.com/astro.png","language":"CoffeeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# petze\n\npetze is simple service monitoring not invented here. It polls a set\nof service by a specified interval and reports failure by\nemail. Configuration is done programmatically.\n\n# Configuration\n\n`config.coffee` exports petze's configuration. As the file is normal\nCoffeeScript, you are free to abstract repetitive things away.\n\n## exports.interval\n\nPolling interval in seconds.\n\n## exports.notify\n\nA list of e-mail addresses to send reports to.\n\n## exports.min_notification_interval\n\nMail bomb prevention measure: 1800 (half hours) amounts to 48 mails\nper day max.\n\n## exports.sources\n\nDictionary of data sources, identifiers pointing to another specific\ndictionary.\n\nThe `type` field designates the kind of source:\n\n* `http` sources fetch a `url`. Optional paramaters are: `timeout` (in\n  seconds), `host`, `port`\n* `exec` runs a `cmd` and yields *stdout* on exit code `0`\n* `json` sources another `source` and parses its data into an object\n\n## exports.watches\n\nA watch checks for validity. Any **source** you want to check must be\nconsumed by a watch! They are structured similarly to `sources`. Valid\n`type`s are:\n\n* `match` specifies a `matcher` callback that receives data from its\n  `source` and must return `true` on success or `false` on failure.\n* `change_timeout` monitors a value and fails when it has seen no\n  update in the specified `interval` (in seconds). This can be used to\n  detect silent lock-ups in services that should be busy\n  around-the-clock.\n\n# Running it\n\n`./run.sh`\n\nWe recommend running petze under supervision (eg. **runit**).\n\n\n# Improve it!\n\n* More sources\n* Nice watches\n* Don't be lazy, write a `package.json`, along with a `Cakefile` and\n  release with compiled `.js` files!\n* Make error reporting a tad more verbose.\n* Make reports clearable by source/watch so recipients don't see old\n  errors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro%2Fpetze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastro%2Fpetze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro%2Fpetze/lists"}