{"id":41855975,"url":"https://github.com/prequel-dev/preq","last_synced_at":"2026-01-25T10:38:12.113Z","repository":{"id":285994825,"uuid":"952844345","full_name":"prequel-dev/preq","owner":"prequel-dev","description":"preq is the community-driven problem detector for Common Reliability Enumerations (CREs)⚡️","archived":false,"fork":false,"pushed_at":"2026-01-14T17:45:06.000Z","size":388,"stargazers_count":323,"open_issues_count":0,"forks_count":27,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-14T21:37:15.048Z","etag":null,"topics":["detection","monitoring","reliability","sre"],"latest_commit_sha":null,"homepage":"https://docs.prequel.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prequel-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"cla.md"}},"created_at":"2025-03-22T01:53:14.000Z","updated_at":"2026-01-14T17:44:55.000Z","dependencies_parsed_at":"2025-04-08T15:40:55.218Z","dependency_job_id":"3e731e9f-f6a0-4b2b-921f-874f8edbf83e","html_url":"https://github.com/prequel-dev/preq","commit_stats":null,"previous_names":["prequel-dev/prequel","prequel-dev/preq"],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/prequel-dev/preq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prequel-dev%2Fpreq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prequel-dev%2Fpreq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prequel-dev%2Fpreq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prequel-dev%2Fpreq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prequel-dev","download_url":"https://codeload.github.com/prequel-dev/preq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prequel-dev%2Fpreq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28751816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["detection","monitoring","reliability","sre"],"created_at":"2026-01-25T10:38:11.607Z","updated_at":"2026-01-25T10:38:12.108Z","avatar_url":"https://github.com/prequel-dev.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"border-bottom: none\"\u003e\n  \u003ca href=\"https://prequel.dev\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Preq\" src=\"assets/prequel.png\" width=\"120\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  preq\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Visit \u003ca href=\"https://docs.prequel.dev\" target=\"_blank\"\u003edocs.prequel.dev\u003c/a\u003e for full documentation,\n  examples, and guides.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build – preq](https://img.shields.io/github/actions/workflow/status/prequel-dev/preq/build.yml?branch=main\u0026label=preq%20CI\u0026logo=github\u0026style=for-the-badge)](https://github.com/prequel-dev/preq/actions/workflows/build.yml)\n[![Coverage](https://img.shields.io/badge/Coverage-49.43%25-orange?style=for-the-badge)](#)\n[![Release](https://img.shields.io/github/v/release/prequel-dev/preq?logo=github\u0026style=for-the-badge)](https://github.com/prequel-dev/preq/releases)\n[![License](https://img.shields.io/badge/License-Apache--2.0-brightgreen?logo=apache\u0026style=for-the-badge)](https://www.apache.org/licenses/LICENSE-2.0)\n[![Slack](https://img.shields.io/badge/Slack-join-4A154B?logo=slack\u0026logoColor=white\u0026style=for-the-badge)](https://inviter.co/prequel)\n[![Playground](https://img.shields.io/badge/Playground-WebAssembly-654FF0?logo=webassembly\u0026logoColor=white\u0026style=for-the-badge)](https://play.prequel.dev/)\n[![kubectl Krew](https://img.shields.io/badge/kubectl-krew-326CE5?logo=kubernetes\u0026logoColor=white\u0026style=for-the-badge)](#kubernetes-krew)\n\n\u003c/div\u003e\n\n---\n`preq` (pronounced \"preek\") is a free and open community-driven reliability problem detector\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/demo.gif\" alt=\"preq demo\" width=\"700\"\u003e\n\u003c/p\u003e\n\nUse `preq` to:\n\n- detect the latest bugs, misconfigurations, anti-patterns, and known issues from a community of practitioners\n- provide engineers, on-call support, and SRE agents with impact and community-recommended mitigations\n- hunt for new problems in distributed systems\n\n`preq` is powered by [Common Reliability Enumerations (CREs)](https://github.com/prequel-dev/cre) that are contributed by the community and Prequel's Reliability Research Team. Reliability intelligence helps teams see a broad range of problems earlier, so they can prioritize, pinpoint, and reduce the risk of outages.\n\n\n\n## Install `preq`\n\n### Binary Distributions\n\nOfficial binary distributions are available at [latest release](https://github.com/prequel-dev/preq/releases) for Linux (amd64 and arm64), macOS (arm64), and Windows (amd64). All macOS binaries are signed and notarized. No configuration is necessary to start using preq.\n\n### Kubernetes\n\nYou can also install `preq` as a Krew plugin:\n\n```bash\nkubectl krew install preq\n```\n\nSee https://docs.prequel.dev/install for more information.\n\n## Quick Usage\n\n**Step 1**: Install and run the demo service (example macOS command below)\n\n```bash\ncurl -sL \"$(curl -s https://api.github.com/repos/prequel-dev/preq-demo-app/releases/latest \\\n  | jq -r '.assets[] | select(.name | test(\"demo-darwin-arm64$\")) .browser_download_url')\" \\\n  -o demo \u0026\u0026 chmod +x demo \u0026\u0026 ./demo \u003e preq-demo.log 2\u003e\u00261\n```\n**Step 2**: Trigger a problem\n```bash\ncurl http://localhost:8080/panic\n```\n**Step 3**: Detect the problem\n```bash\ncat preq-demo.log | preq -o -\n```\nYou will see a detection printed with the corresponding CRE ID, severity, and suggested mitigation.\n\n```bash\nParsing rules           done! [3 rules in 3ms; 433 rules/s]\nProblems detected       done! [1 in 7ms; 144/s]\nReading stdin           done! [208.64KB in 4ms; 53.01MB/s]\nMatching lines          done! [1.01K lines in 4ms; 275.29K lines/s]\nCRE-2025-0918        critical [1 hits @ 2025-03-11T10:00:19-04:00]\n```\nSee our running `preq` guide for full walkthrough, including writing your own rules: https://docs.prequel.dev/running\n\n\n## Example CRE\n\nThis rule detects a specific sequence of events from one log source within a set time period. It also checks that a certain event does not occur during that period. If it does, the rule will not trigger.\n\n```yaml title=\"cre-2024-0007.yaml\" showLineNumbers\ncre:\n  id: CRE-2024-0007\n  severity: 0\n  title: RabbitMQ Mnesia overloaded recovering persistent queues\n  category: message-queue-problems\n  author: Prequel\n  description: |\n    - The RabbitMQ cluster is processing a large number of persistent mirrored queues at boot. \n  cause: |\n    - The Erlang process, Mnesia, is overloaded while recovering persistent queues on boot. \n  impact: |\n    - RabbitMQ is unable to process any new messages and can cause outages in consumers and producers.\n  tags: \n    - cre-2024-0007\n    - known-problem\n    - rabbitmq\n  mitigation: |\n    - Adjusting mirroring policies to limit the number of mirrored queues\n    - Remove high-availability policies from queues\n    - Add additional CPU resources and restart the RabbitMQ cluster\n    - Use [lazy queues](https://www.rabbitmq.com/docs/lazy-queues) to avoid incurring the costs of writing data to disk \n  references:\n    - https://groups.google.com/g/rabbitmq-users/c/ekV9tTBRZms/m/1EXw-ruuBQAJ\n  applications:\n    - name: \"rabbitmq\"\n      version: \"3.9.x\"\nmetadata:\n  kind: prequel\n  id: 5UD1RZxGC5LJQnVpAkV11A\n  generation: 1\nrule:\n  sequence:\n    window: 30s\n    event:\n      src: log\n      container_name: rabbitmq\n    order:\n      - regex: Discarding message(.+)in an old incarnation(.+)of this node\n      - Mnesia is overloaded\n    negate:\n      - SIGTERM received - shutting down\n```\n\n## Automated Actions using `preq`\n\nYou can connect detections to automated runbooks that take action when a CRE fires. For example, restarting a service or notifying your on-call team.\n\nYou can run automated actions on new detections using `preq -a \u003cactions.yaml\u003e`.\n\nSee https://docs.prequel.dev/running#automated-runbooks for examples of how to setup automated runbooks when a CRE is detected and trigger actions like:\n- Slack Notifications\n- Jira Issue Creation\n- Runbook executables\n- CronJobs\n\n## Data sources other than `stdin`\n\n`preq` works on any timestamped data source, not just `stdin`.\nYou can define multiple sources (e.g., app logs, system logs, metric dumps) in a YAML template and let `preq` automatically map CRE rules to the right data.\n\nLearn more about data sources here: https://docs.prequel.dev/data-sources\n\n## Community\nWe are building an open reliability detection community and we would love you to join!\n\n- [Slack](https://inviter.co/prequel): Ask questions, share detections, propose new CREs. \n\n- [Playground](https://play.prequel.dev/): Try rules in your browser with WebAssembly, no data leaves your machine.\n\n- [Docs](https://docs.prequel.dev): Explore the documentation to learn how to install, run, automate, and write CREs.\n\n- [CRE Repository](https://github.com/prequel-dev/cre): Contribute new community detection rules and help the reliability community grow.\n\n## Contributing\n\nWe welcome contributions of all kinds: bug fixes, docs, new CRE rules, or feature ideas!\n\nSee the contribution guide for more details: https://docs.prequel.dev/cres/contributing\n\n---\nLicensed under the [Apache License 2.0](https://github.com/prequel-dev/preq/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprequel-dev%2Fpreq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprequel-dev%2Fpreq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprequel-dev%2Fpreq/lists"}