run-o11y-run
run-o11y-run copied to clipboard
Extract as a Framework for Running Custom Stacks
Description
I would like to propose the extraction of the run-o11y-run tool into a reusable framework that can be used to run custom stacks. Currently, run-o11y-run is specifically tailored for running the provided observability stack, but it would be beneficial to make it more versatile and adaptable to different stack configurations.
Proposed Solution
The proposed solution is to refactor run-o11y-run into a framework that can be easily extended and configured to run custom stacks. The framework should provide the necessary abstractions, APIs, and hooks to allow users to define their own stack configurations, including services, dependencies, and environment variables.
Key Features of the Framework:
- Modularity: The framework should be designed to support pluggable components, allowing users to easily add or remove services based on their requirements.
- Configuration: The framework should provide a flexible configuration mechanism that enables users to define their stack configuration in a declarative manner, using
compose.yaml
ordocker-compose.yaml
file. - Extensibility: Users should be able to extend the framework with custom logic or components to integrate additional services or modify the behavior of existing services.
- Lifecycle Management: The framework should handle the startup, shutdown, and monitoring of services, ensuring proper handling of dependencies and clean termination.
Expected Benefits
By extracting run-o11y-run into a reusable framework, users will have the freedom to define and run their own stacks tailored to their specific needs. This framework can serve as a foundation for creating custom stack configurations, integrating various monitoring and observability tools seamlessly.
Additionally, the availability of the framework will enable the community to contribute and share their custom stack configurations, fostering collaboration and innovation within the observability space.
Implementation Considerations
- The framework should provide clear documentation and examples to guide users in defining their custom stack configurations.
- Compatibility with existing Docker Compose files or Kubernetes manifests could be considered to facilitate the migration of existing stack definitions.