Files
watcher/doc/source/strategies/strategy-template.rst
Sean Mooney ef0f35192d Make Monasca client optional and lazy-load
Monasca is deprecated for removal. This change makes the Monasca client
an optional dependency and ensures it is only imported and instantiated
when the Monasca datasource is explicitly selected. This reduces the
default footprint while preserving functionality for deployments that
still rely on Monasca.

What changed
============
- requirements.txt: remove python-monascaclient from hard deps
- setup.cfg: add [options.extras_require] monasca extra
- watcher/common/clients.py: lazy import with clear UnsupportedError
- watcher/decision_engine/datasources/monasca.py: lazy client property
  and deferred import of monascaclient.exc; reset on Unauthorized
- watcher/decision_engine/datasources/manager.py: unconditionally
  import Monasca helper and include in metric_map; helper is lazy
- tests: conditionally include Monasca based on availability; adjust
  expectations instead of skipping by default; avoid over-mocking
- tox.ini: enable optional extras via WATCHER_EXTRAS env var
- docs: datasources index notes Monasca is deprecated and optional
- releasenotes: upgrade note with install example and behavior

Why
===
- Allow deployments not using Monasca to run without the client
- Keep Monasca functional when explicitly installed via extras
- Provide clear operator guidance and smooth upgrades

Compatibility
=============
- No change for deployments that do not use Monasca
- Deployments using Monasca must install the optional extra:
  pip install watcher[monasca]

Testing
=======
- Default: tox -e py3
- With Monasca: WATCHER_EXTRAS=monasca tox -e py3

Assisted-By: GPT-5 (Cursor)
Closes-Bug: #2120192
Change-Id: I7c02b74e83d656083ce612727e6da58761200ae4
Signed-off-by: Sean Mooney <work@seanmooney.info>
2025-08-28 16:53:48 +01:00

3.0 KiB

Strategy name

Synopsis

display name:

goal:

Add here a complete description of your strategy

Requirements

Metrics

Write here the list of metrics required by your strategy algorithm (in the form

of a table). If these metrics requires specific Telemetry plugin or other additional software, please explain here how to deploy them (and add link to dedicated installation guide).

Example:

metric service name plugins comment

compute.node.* vm.cpu.utilization_perc

ceilometer monasca

none none

one point every 60s

power ceilometer kwapi one point every 60s

Note

The Monasca datasource is deprecated for removal and optional. If a strategy requires Monasca metrics, ensure the Monasca optional extra is installed: pip install watcher[monasca].

Cluster data model

Default Watcher's cluster data model.

or

If your strategy implementation requires a new cluster data model, please

describe it in this section, with a link to model plugin's installation guide.

Actions

Default Watcher's actions.

or

If your strategy implementation requires new actions, add the list of Action

plugins here (in the form of a table) with a link to the plugin's installation procedure.

action description
action1 This action1 ...
action2 This action2 ...

Planner

Default Watcher's planner.

or

If your strategy requires also a new planner to schedule built actions in time,

please describe it in this section, with a link to planner plugin's installation guide.

Configuration

If your strategy use configurable parameters, explain here how to tune them.

Efficacy Indicator

Add here the Efficacy indicator computed by your strategy.

Algorithm

Add here either the description of your algorithm or link to the existing description.

How to use it ?

$ Write the command line to create an audit with your strategy.
If you have written papers, blog articles .... about your strategy into Watcher,

or if your strategy is based from external publication(s), please add HTTP links and references in this section.