phoebe
by
SUSE

Description: Phoebe

View on GitHub ↗

Summary Information

Updated 46 minutes ago
Added to GitGenius on June 27th, 2024
Created on January 5th, 2021
Open Issues & Pull Requests: 1 (+0)
Number of forks: 14
Total Stargazers: 89 (+0)
Total Subscribers: 13 (+0)

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,893 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Phoebe is a SUSE-developed project written in C that brings machine learning and artificial intelligence capabilities to the Linux operating system for autonomous system tuning and self-healing. The project addresses the complexity of system-level tuning, which traditionally requires deep expertise across multiple system layers and their interactions. Rather than relying on operators to manually respond to telemetry, alerts, and live charts, Phoebe aims to enable systems to automatically tune themselves and recover from failures caused by misconfiguration or resource starvation.

The core architecture of Phoebe is built around a plugin system that allows new functionality to be added with relative ease. Plugins are loaded at runtime and must implement the plugin_t interface structure, with network_plugin.c serving as a reference implementation. The system uses system telemetry as input to its decision-making engine and produces a set of settings that are applied to the running system. These decisions are continuously reevaluated based on a configurable grace_period setting to provide optimal system configuration over time.

Phoebe implements both training and inference modes, with all runtime behavior controlled through a settings.json configuration file where each parameter is documented in detail. The inference loop runs at a configurable interval specified by inference_loop_period, allowing operators to control how quickly the system reacts to changing conditions. A dedicated statistics collection thread periodically gathers system metrics at intervals defined by stats_collection_period, which can be tuned based on network demands and desired responsiveness to network events.

The mathematical model currently implemented follows a basic machine learning approach using the formula input multiplied by weight plus bias. The developers acknowledge this is a foundational implementation without complex techniques, and the plan is to eventually migrate toward models created in TensorFlow and exported for use by Phoebe. When high traffic rates are detected and a matching configuration is found, the system implements a grace period to avoid excessive reconfiguration and prevent reactions to temporary network spikes. The codebase also supports approximation functions configurable through settings.json that allow fine-tuning of matching criteria tolerance values, enabling users to control whether matching criteria are narrower or broader depending on their needs.

The project is classified across multiple infrastructure and cloud-native domains including infrastructure as code, security, automation, configuration management, Kubernetes, containers, microservices, and observability. Build instructions are available in BUILDING.md, and packages for various Linux distributions can be found in the OpenBuild service under science:machinelearning/phoebe. The project maintains active CI workflows and has attracted overlapping contributors with other significant repositories including Microsoft's VSCode and container image projects, indicating engagement from the broader open source community.

phoebe
by
SUSESUSE/phoebe

Repository Details

Fetching additional details & charts...