{"id":27952291,"url":"https://github.com/dfrojas/yubarta","last_synced_at":"2026-04-29T01:32:09.448Z","repository":{"id":255719121,"uuid":"852811964","full_name":"dfrojas/yubarta","owner":"dfrojas","description":"🐋 Yubarta is an auto-remediation platform written in Python that reacts to eBPF signals and external alerts with rule-based actions. With AI support on the roadmap to become a self-healing platform.","archived":false,"fork":false,"pushed_at":"2025-08-26T16:13:38.000Z","size":1137,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T22:36:21.908Z","etag":null,"topics":["automation","devops","ebpf","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/dfrojas.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,"zenodo":null}},"created_at":"2024-09-05T13:22:12.000Z","updated_at":"2025-08-26T16:13:41.000Z","dependencies_parsed_at":"2025-04-01T17:41:48.058Z","dependency_job_id":"47499d4d-251d-49f5-960f-4524214720cb","html_url":"https://github.com/dfrojas/yubarta","commit_stats":null,"previous_names":["dfrojas/yubarta"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dfrojas/yubarta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfrojas%2Fyubarta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfrojas%2Fyubarta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfrojas%2Fyubarta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfrojas%2Fyubarta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfrojas","download_url":"https://codeload.github.com/dfrojas/yubarta/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfrojas%2Fyubarta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32407164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: 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":["automation","devops","ebpf","python"],"created_at":"2025-05-07T17:00:13.824Z","updated_at":"2026-04-29T01:32:09.443Z","avatar_url":"https://github.com/dfrojas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"documentation/img/whale-7.png\" alt=\"yubarta-autoremediation-logo\" width=\"150\"\u003e\n  \u003cp align=\"center\"\u003eYubarta (y5a)\u003c/p\u003e\n\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    Automate your infrastructure recovery using eBPF signals and external alerts.\n    \u003cbr /\u003e\u003cbr /\u003e\n    \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\n    ·\n    \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e\n    ·\n    \u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\n    ·\n    \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e\n    ·\n    \u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n## About\n\nYubarta is a distributed, event-driven auto-remediation platform that reacts to eBPF-based signals and external alerts with rule-based actions — all defined via simple YAML configs.\n\nIt’s designed for modern infrastructure teams that need automated response to system anomalies, without the overhead of managing agents or writing complex pipelines.\n\nYubarta doesn't just observe — it acts. Use it to move beyond dashboards and into self-healing systems.\n\n### Devlogs:\n\n[https://dfrojas.com/software/yubarta-de vlog-001.html](https://dfrojas.com/software/yubarta-devlog-001.html){:target=\"_blank\"}\n\n### What It Does\n\nYubarta operates on two core pillars:\n\n**1. eBPF Scanners**\n\nInject lightweight, kernel-level programs using eBPF to:\n\n* Monitor performance (CPU, memory, syscalls, etc.)\n* Profile specific services or containers\n* Detect anomalies or behavior deviations\n\n**2. Reactors (External Alerts)**\n\nIngest alerts from external systems like:\n\n* Datadog\n* Grafana\n* Custom monitoring tools via API/Webhook\n\nOnce triggered, both scanners and reactors execute automated actions — such as restarting services, scaling resources, killing processes, or calling internal APIs.\n\n\u003e 🧪 Note: Yubarta is an early-stage project under active development. APIs and behavior may change — feedback and contributions are welcome!\n\n## Key Features\n\n🐝 Agentless eBPF program injection\n\n📥 Alert ingestion from third-party tools like Datadog, Grafana, etc.\n\n📂 Declarative rules with YAML\n\n🔁 Automated remediations at fleet scale\n\n🧩 Modular \u0026 extensible — bring your own actions\n\n📋 Centralized alert store and pluggable decision engine\n\n⚡ Asynchronous, event-driven architecture for high scalability\n\n🔧 Declarative or SDK-based definitions for scans and remediations\n\n## Roadmap\n\nThe feature-level plan for the project:\n\n✅ Done\n\n⏳ In Dev\n\n🔜 Planned\n\n💡 Idea\n\n\n| Status   | Feature           | Description                                                                 |\n|----------|-------------------|-----------------------------------------------------------------------------|\n| ✅ | External Alert Ingestion | React to alerts from tools like Datadog or Grafana                  |\n| ✅ | Kafka Backend     | Use Kafka for scalable alert and rule event processing                     |\n| ⏳ | API Gateway layer   | Add Kong Gateway CE for rate limit and API security                          |\n| ⏳ | YAML Rule Engine   | Define match conditions and actions declaratively                          |\n| ⏳ | Director Component | Orchestrates rule matching and remediation decision logic                  |\n| ⏳ | CLI Tool          | Manage rules and trigger actions from the command line                     |\n| 🔜 | eBPF Scanners     | Run eBPF programs to detect performance anomalies                          |\n| 🔜 | Plugin System     | Support custom actions via a user-defined plugin interface                 |\n| 🔜 | Remote Execution  | Execute remediations on remote servers over SSH or agentless mechanism     |\n| 🔜 | AI-Assisted Rules | Recommend or auto-tune remediations based on system behavior and history   |\n| 💡 | Web UI            | Dashboard for viewing rules, alerts, and system status                     |\n\n## Architecture\n\nThe diagram below illustrates Yubarta's high-level architecture. It consists of one main component which every request has to pass through it (API Server) and two main inputs: eBPF Scanners and Reactors (external alert sources). Both feed into a central Director component, which evaluates rule conditions defined in YAML. When a rule matches, the corresponding Remediator executes the action on the target system — locally or across a fleet.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"documentation/img/arch-vertical.png\" width=\"40%\"\u003e\n\u003c/div\u003e\n\n## Documentation\n\nWIP. The project still is in very early stage and API's or functionalities may change. Once it is in a more stable stage, I'll add the proper documentation\n\n## Developing Yubarta\nRun `make init`\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to fork and submit a Pull Request.\n\n## Authors\n\n- Diego Fernando Rojas \u003chello@dfrojas.com\u003e\n\nFor more information, visit the [Yubarta GitHub repository](https://github.com/dfrojas/yubarta).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfrojas%2Fyubarta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfrojas%2Fyubarta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfrojas%2Fyubarta/lists"}