
Disclaimer
Prysm is currently under heavy development and may contain bugs, incomplete
features, and non-functional code. This project is in the testing and
proof-of-concept stage, so please use it with caution and be aware that it
may not work as expected. Contributions and feedback are appreciated as we
continue to improve and stabilize the tool.
Overview
Prysm is a versatile CLI tool designed to provide an efficient observability
solution for a wide range of systems, including RadosGW (Rados Gateway), Ceph
storage clusters, and various hardware components. With a multi-layered
architecture, Prysm enables real-time monitoring, data collection, and analysis
across diverse environments. It ensures optimal performance, compliance, and
operational insights.
Features
- Multi-system Support: Prysm supports RadosGW, Ceph clusters, and hardware
monitoring, making it a comprehensive observability tool.
- Flexible Architecture: Prysm’s four-layered architecture—Consumers, NATS,
Remote Producers, and Nearby Producers—enables it to handle a variety of
observability tasks with precision and scalability.
- Diverse Data Collection: Collect and analyze metrics and logs from RadosGW,
Ceph, and hardware devices such as disks. Producers can be configured to
gather data locally or remotely, ensuring adaptability to different
environments.
- Real-time Messaging: Use NATS as the messaging backbone to enable real-time,
low-latency communication between data producers and consumers, ensuring
seamless data flow.
- Customizable Output: Prysm supports multiple output formats, including
console, NATS, and Prometheus, allowing you to tailor the tool to your
specific observability requirements.
- Standalone Functionality: Prysm can be used standalone for specific tasks,
such as providing a metrics endpoint for Prometheus, checking disk health, or
printing data directly to the console.
Components
Consumers
Purpose:
- Process and analyze data received from various systems, including RadosGW,
Ceph, and hardware components.
Key Responsibilities:
- Generate alerts based on predefined conditions.
- Store and analyze logs for troubleshooting and auditing.
- Display real-time metrics on dashboards.
- Perform advanced analytics and usage reporting.
- Ensure regulatory compliance through log and metrics analysis.
Monitoring Quota Usage
NATS
Purpose:
- Acts as the messaging backbone for the system.
Key Responsibilities:
- Route messages between producers and consumers.
- Handle high volumes of messages with low latency.
- Ensure reliable message delivery even in the face of network issues.
Remote Producers
Purpose:
- Collect metrics and logs from various systems via APIs or other interfaces,
typically from outside the monitored environment.
Key Responsibilities:
- Gather data using appropriate APIs or interfaces.
- Transmit collected data to NATS.
- Operate with minimal configuration, focusing on remote accessibility.
RGW Bucket Notifications
Quota Usage Monitor
RadosGW Usage Exporter
Nearby Producers
Purpose:
- Allows direct access to logs, metrics, and configuration files. Deployed
within the same network or environment as the monitored systems.
Key Responsibilities:
- Collect data directly from system log files, metrics endpoints, or hardware
sensors (e.g., SMART attributes for disk health).
- Leverage proximity for lower latency and higher data fidelity.
- Transmit collected data to NATS.
RGW Bucket Notifications
Disk Health Metrics
Kernel Metrics
Resource Usage
Documentation
Step-by-step deployment guides for Kubernetes:
Support, Feedback, Contributing
This project is open to feature requests/suggestions, bug reports, etc. via
GitHub issues. Contribution
and feedback are encouraged and always welcome. For more information about how
to contribute, the project structure, as well as additional contribution
information, see our Contribution Guidelines.
Security / Disclosure
If you find any bug that may be a security problem, please follow our
instructions in our security
policy on how to
report it. Please do not create GitHub issues for security-related doubts or
problems.
Code of Conduct
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone. By participating in this
project, you agree to abide by its Code of
Conduct at all
times.
Licensing
Copyright 2025 SAP SE or an SAP affiliate company and prysm contributors.
Please see our LICENSE for copyright and license information.
Detailed information including third-party components and their
licensing/copyright information is available via the REUSE
tool.
This README is a draft and will be updated as Prysm continues to evolve.
Contributions, suggestions, and feedback are welcome to help improve and
expand the functionality of Prysm.