ALEC-305: Remove the Ludwig deep-learning engine - #166
Conversation
…uster engine) ALEC now offers exactly two correlation engines: DBSCAN clustering and the LLM-based clustering engine. The TensorFlow/Ludwig-trained deep-learning engine and the standalone 'cluster' engine (the UI's mislabeled 'Deep Learning' option) are removed. Removed: - engine/deeplearning and features/deeplearning modules (incl. ludwig_model.yaml and the bundled TensorFlow model), plus the now-orphaned wrap/tensorflow module. - The concrete ClusterEngine / ClusterEngineFactory (engine/cluster keeps AbstractClusterEngine and the graph/spatial infrastructure that DBSCAN and the LLM engine extend). - All wiring: Maven modules/deps, Karaf features (alec-engine-deeplearning, alec-features-deeplearning, alec-dependency-tensorflow) and their inclusion in alec-opennms-standalone; the deeplearning/cluster cases in EngineRestImpl, EngineParameterImpl and ProcessAlarms; smoke-test parameters; the UI's ENGINE_DEEP_LEARNING constant and the DeepLearning icon/label (ConfigurationInfo now shows CLUSTERING for DBSCAN and LLM for the LLM engine); and the orphaned tensorflow/json-simple/httpclient/string-similarity pom entries. Docs: - Removed the Ludwig deep-learning engine page and references. - Added a dedicated 'LLM Clustering Engine (experimental)' reference page and nav entry, and clarified throughout that the LLM *clustering* engine (correlation) is distinct from LLM *Root Cause Analysis* (explanation) — the two share the LLM Setup but are enabled independently. Verified: mvn clean install (compile + features.xml resolution + KAR assembly) BUILD SUCCESS; vue-tsc clean; 86 UI tests green; ui-ext bundle rebuilt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UB6PGc2rpPbojnqbTHU5ND
…CorrrelationTest Same chronic testcontainers startup flake seen on #165 (unrelated to this engine-removal change; the other 4 CircleCI jobs are green). Re-running. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@cgorantla — friendly re-ping on this one too. ALEC-305: remove the Ludwig deep-learning engine, leaving DBSCAN + LLM as the only correlation engines (per the decision that Ludwig is retired).
This and #168 (the ALEC-301 LLM engine fixes, just verified live) are the last two open in the series — a review on both when you have a moment would let them land. Thanks! |
…r test DistributedRedundantCorrrelationTest.canCorrelateAlarmsAfterFailure failed with testcontainers ContainerLaunchException (container startup timeout), not a regression from the Ludwig removal — all build stages passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@cgorantla friendly re-ping — this one's ready for review. ALEC-305: remove the Ludwig deep-learning engine, leaving DBSCAN + LLM as the only correlation engines. The earlier |
… the removed cluster engine Removing the standalone ClusterEngineFactory left the smoke tests deploying `alec-engine-cluster`, which now only carries the AbstractClusterEngine base and registers no EngineFactory OSGi service. alec-driver-main then fails to resolve (missing (objectClass=EngineFactory)), ALEC never starts in the container, and the test times out as a testcontainers ContainerLaunchException — which read like the chronic infra flake but was a deterministic regression. Deploy DBSCAN instead (it pulls in the same cluster base infra and registers a real EngineFactory), matching what DistributedStandaloneCorrelationTest already uses: - DistributedRedundantCorrrelationTest / DistributedUDLTest: supplier "cluster" -> "dbscan" - sentinel-overlay-redundant boot: hardcoded alec-engine-cluster -> the %ALEC_ENGINE_FEATURE% placeholder, so the supplier actually drives it (consistent with sentinel-overlay-standalone) - opennms-integrated-overlay boot (no placeholder substitution): alec-engine-cluster -> alec-engine-dbscan, so IntegratedCorrelationTest/IntegratedUDLTest don't break smoke-test-full on develop after merge OnCommitSmokeTestSuite (DistributedRedundantCorrrelationTest only) now resolves an EngineFactory and boots ALEC. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Fixed the smoke failure in Root cause: removing the standalone ALEC never started in the Sentinel container, so the test timed out as a testcontainers Fix: deploy DBSCAN instead (same cluster base infra, real
|
|
@cgorantla re-ping — this one pairs with #169 to finally get smoke-test-full green. #169 fixes the distributed smoke OOM + OIA-version-skew (red since March). The last remaining full-suite failure is On its own gate (smoke-test-commit = DistributedRedundant only), #166's DBSCAN fix already resolves it. Ready for your review. |
Tracked by ALEC-305.
Ludwig is retired. ALEC now offers exactly two correlation engines: DBSCAN clustering and the LLM-based clustering engine. This removes the TensorFlow/Ludwig-trained deep-learning engine and the standalone
clusterengine (the UI's mislabeled "Deep Learning" option).Removed
engine/deeplearning+features/deeplearning(incl.ludwig_model.yamland the bundled TensorFlow modelsaved_model.pb), and the now-orphanedwrap/tensorflow.ClusterEngine/ClusterEngineFactory.engine/clusterkeepsAbstractClusterEngineand the graph/spatial infra that DBSCAN and the LLM engine extend.alec-engine-deeplearning,alec-features-deeplearning,alec-dependency-tensorflow) and their inclusion inalec-opennms-standalone; the deeplearning/cluster branches inEngineRestImpl,EngineParameterImpl,ProcessAlarms; smoke-test parameters; the UI'sENGINE_DEEP_LEARNINGconstant and DeepLearning icon/label; and the orphaned tensorflow/json-simple/httpclient/string-similarity pom entries.The UI's engine-status widget now shows CLUSTERING for DBSCAN and LLM for the LLM engine. AccountSettings already offered only DBSCAN/LLM, so no selector was orphaned.
Docs
LLM Clustering Engine (experimental)reference page + nav entry, and clarified throughout that the LLM clustering engine (correlation — forms situations) is distinct from LLM Root Cause Analysis (explanation — describes a formed situation). The two share the LLM Setup but are enabled independently. Verified the Root Cause Analysis page is accurate against the current feature.Verification
mvn clean install— compile across all modules, features.xml resolution, and KAR assembly all succeed (BUILD SUCCESS), which validates the Karaf feature graph has no dangling references to the removed bundles.vue-tscclean; 86 UI tests green; ui-ext bundle rebuilt (no "DEEP LEARNING" strings remain).Given this touches the Karaf feature graph, I recommend a smoke deploy (ALEC boots and registers with only DBSCAN + LLM) before merge — happy to run it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UB6PGc2rpPbojnqbTHU5ND