Skip to content

Feature/solver consolidation#10

Merged
tombonfert merged 12 commits into
mainfrom
feature/solver_consolidation
May 13, 2026
Merged

Feature/solver consolidation#10
tombonfert merged 12 commits into
mainfrom
feature/solver_consolidation

Conversation

@tombonfert
Copy link
Copy Markdown
Collaborator

@tombonfert tombonfert commented May 12, 2026

Summary

Removes BasicNarrowSolver. KeyValueStoreSolver now subsumes it by treating
source.container_tags_table as optional — when it isn't configured, the solver
operates directly on container_metrics, matching the old BasicNarrowSolver
behavior.

Changes

  • KeyValueStoreSolver no longer extends BasicNarrowSolver — it inherits from QuerySolver directly. The shared cache class moves in as KVSTimeSeriesCache.
  • KeyValueStoreSolver.filter_container_tags returns an empty DataFrame and filter_container_metrics skips the container-id join when source.container_tags_table is None.
  • MeasurementDBConfig.for_debug now sets each *_table field to None when the corresponding key is absent from the debug_tables dict — making table presence a reliable runtime signal.
  • BasicNarrowSolver source file deleted; all unit, integration, and reporting tests migrated to KeyValueStoreSolver.
  • Reporting layer: Solvers.BASIC_NARROW_SOLVER removed; default query_engine.solver flipped to KEY_VALUE_STORE_SOLVER; the tag-filter guard now checks source.container_tags_table is not None instead of solver type; obsolete validate_project_id_for_key_value_store_solver / validate_container_tags_for_key_value_store_solver validators removed.
  • Docs and config examples updated.

Test Plan

  • Unit tests added/updated
  • Manual testing completed
  • Documentation updated (if applicable)

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • No new linter warnings introduced

…pdate documentation

* Added support for MetricExpression filters in KeyValueStoreSolver's filter_container_metrics method.
* Updated the report validation to reflect that KeyValueStoreSolver now supports both tag and metric filters.
* Modified tests to ensure proper functionality of new metric filtering capabilities and updated container_metrics column mappings.
* Updated default solver in configuration to KeyValueStoreSolver across various files.
* Removed BasicNarrowSolver implementation and its associated tests.
* Adjusted documentation to reflect changes in solver defaults and requirements for project_id and container_tags_table.
* Ensured compatibility of report generation with the new solver setup.
* Updated integration tests to utilize KeyValueStoreSolver instead of the removed BasicNarrowSolver.
- Updated pydoc-markdown.yml to remove BasicNarrowSolver from the loaders list.
- Changed default solver in configuration documentation from BasicNarrowSolver to KeyValueStoreSolver.
- Adjusted various documentation sections to reflect the removal of BasicNarrowSolver, including data model and ingestion guides.
- Deleted BasicNarrowSolver API documentation as it is no longer supported.
- Updated references in the report and config parser documentation to ensure clarity on solver usage and filtering requirements.
- Enhanced descriptions for `solver_config` and `container_tags_table` to clarify their roles in project scoping across data models.
- Adjusted test documentation to reflect that `project_id` is optional and only applied when present, improving understanding of its usage in the KeyValueStoreSolver.
- Updated documentation to clarify that `solver_config` is now forwarded to both `KeyValueStoreSolver` and `DeltaSolver`, detailing which sections each solver consumes.
- Added tests to verify that `SolverConfig` column-name mappings are correctly applied by both solvers when processing DataFrames with custom column names.
- Adjusted the `Report` class to ensure `solver_config` is passed to `DeltaSolver` during initialization, improving consistency in solver behavior.
@tombonfert tombonfert marked this pull request as ready for review May 12, 2026 19:27
@tombonfert tombonfert requested a review from a team as a code owner May 12, 2026 19:27
- Adjusted sidebar positions for Aggregations, Events, and TSAL to maintain a logical order.
- Introduced new documentation for the Query Engine, detailing solver options and configurations, including `DeltaSolver` and `KeyValueStoreSolver`, along with their requirements and usage guidelines.
Comment thread src/mda_query_engine/analyze/query/solvers/key_value_store_solver.py Outdated
Comment thread src/mda_query_engine/analyze/query/solvers/key_value_store_solver.py Outdated
Comment thread src/mda_query_engine/analyze/query/solvers/key_value_store_solver.py Outdated
MaximHammer
MaximHammer previously approved these changes May 13, 2026
…Solver

- Updated variable name from `drop_im_plausible_data` to `drop_implausible_data` for consistency and clarity in both `DeltaSolver` and `KeyValueStoreSolver`.
- Adjusted corresponding references in the `IntervalEncoder` initialization to reflect the new variable name.
@tombonfert tombonfert merged commit 4c421ec into main May 13, 2026
@tombonfert tombonfert deleted the feature/solver_consolidation branch May 13, 2026 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants