[Bug 43137] New: Add system health monitoring with status indicators in the staff interface header
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Bug ID: 43137 Summary: Add system health monitoring with status indicators in the staff interface header Initiative type: --- Sponsorship --- status: Product: Koha Version: Main Hardware: All OS: All Status: NEW Severity: enhancement Priority: P5 - low Component: Architecture, internals, and plumbing Assignee: koha-bugs@lists.koha-community.org Reporter: tomascohen@gmail.com QA Contact: testopia@bugs.koha-community.org Target Milestone: --- Koha depends on several services (search engine, background job workers, SFTP endpoints) but provides no at-a-glance visibility into their health. Staff discover problems only when operations fail -- a patron search returns nothing, a batch job silently stops, or EDI transfers accumulate. Proposed solution: A system health framework that checks services, collects warnings and critical messages, and surfaces a summary indicator in the staff interface header. API response structure: GET /api/v1/health { "core": [ { "id": "search_engine", "label": "Search engine", "warnings": [ "Index koha_biblios last reindexed 3 days ago" ], "critical": [ "Elasticsearch cluster is red: 2 shards unassigned" ] }, { "id": "background_jobs", "label": "Background jobs", "warnings": [], "critical": [] }, { "id": "sftp", "label": "SFTP connections", "warnings": [ "EDI vendor X: connection timeout on last attempt" ], "critical": [] } ], "plugins": {} } - 'core' is an array of check results from Koha's own service checks - 'plugins' is a hash keyed by plugin class -- populated by companion bug (plugin hook) - Each check has 'warnings' and 'critical' arrays of human-readable messages - Empty arrays = healthy Header indicator logic: - Red: any 'critical' list is non-empty (core or plugins) - Yellow: any 'warnings' list is non-empty, no criticals - Green: all lists empty - Click navigates to detail view (new tab in about.pl System information, or standalone page) Core health checks to implement initially: - Search engine (Elasticsearch/Zebra): cluster/daemon reachability, index staleness - Background jobs: oldest pending job exceeds threshold (workers not picking up), failed jobs accumulating - SFTP connections: configured EDI/acquisition targets failing to connect Architecture: 1. Health check classes (Koha::Health::SearchEngine, Koha::Health::BackgroundJobs, Koha::Health::SFTP): - Each implements check() returning { id, label, warnings => [...], critical => [...] } - Checks must be cheap -- query local state only 2. API endpoint GET /api/v1/health: - Runs all core checks - Calls health_check plugin hook (see companion bug) - Caches the full assembled response (core + plugins) in Memcached with 30s TTL - A single cache key serves all users since health status is global - 60 terminals polling every 60s = ~1 req/s; with 30s cache only 2 actual check runs per minute - Permission-gated 3. Staff interface: - JS poller in header.inc, hits endpoint every 60s - Renders summary dot with tooltip showing count of warnings/criticals - Detail view groups checks by source (core section, then per-plugin sections) Display considerations: - Detail view could be a new tab on about.pl alongside existing system information - Or a standalone page -- either way, should render core and plugin sections grouped - Healthy checks still appear (as OK) so staff can see what is being monitored Caching: The endpoint caches the full assembled response in Memcached with a 30s TTL. A single cache key (koha:health) serves all users since health status is global -- not per-user or per-branch. 60 staff terminals polling every 60s means roughly 1 request per second on average. With a 30s cache, at most 2 actual health check runs happen per minute regardless of terminal count. Cache is TTL-based only -- no explicit invalidation needed since 30s staleness is acceptable for a status dot. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |43138 CC| |tomascohen@gmail.com Summary|Add system health |Add system health |monitoring with status |monitoring with status |indicators in the staff |indicators in the staff |interface header |interface Assignee|koha-bugs@lists.koha-commun |tomascohen@gmail.com |ity.org | Status|NEW |ASSIGNED Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43138 [Bug 43138] Add health_check plugin hook for publishing alerts to the system health framework -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Lisette Scheer <lisette@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lisette@bywatersolutions.co | |m -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jonathan.druart@gmail.com, | |martin.renvoize@openfifth.c | |o.uk, | |pedro.amorim@openfifth.co.u | |k -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.koha-community | |.org/bugzilla3/show_bug.cgi | |?id=43142 --- Comment #1 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Adding bug 43142 in see also, as our default ES setting will make any single-node Elastic Koha show yellow. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |Needs Signoff Patch complexity|--- |Medium patch -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #2 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202245 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202245&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #3 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202246 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202246&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #4 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202247 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202247&action=edit Bug 43137: Add system health indicator to staff interface header Adds a colored dot to the staff interface navbar that reflects the overall system health: - Green: all systems operational - Yellow: warnings present, no critical issues - Red: critical issues detected - Grey: status unavailable Implementation: - health-status.js polls GET /api/v1/health every 60 seconds - Dot appended to #toplevelmenu as the last nav-item - Tooltip shows summary (translatable via __()) - When all issues are restricted (user lacks permission), shows a generic 'issues require attention' message - Links to about.pl for the detail view (placeholder for now) - Included via js_includes.inc (loaded on every staff page) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev 3. Log in to staff interface 4. Observe the health indicator dot in the navbar 5. Verify it turns green when all checks pass 6. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #5 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202248 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202248&action=edit Bug 43137: Add health status boxes to System information tab Adds an asynchronous health status section to the about.pl System information tab. On page load, fetches GET /api/v1/health and renders stacked alert boxes per check: - Green box with 'Operational' text when healthy - Yellow box with warning messages - Red box with critical messages - Restricted checks show a generic translatable message Core check labels are translated client-side using a mapping from check IDs. Plugin checks display their label field as-is. The optional 'detail' field is shown in parentheses after the label. Falls back to a warning if the API is unreachable. Test plan: 1. Apply patch 2. Launch KTD: $ ktd --name bug_43137 --search-engine es9 --proxy up -d $ ktd --name bug_43137 --wait-ready 120 3. Bundle API spec and restart: $ ktd --name bug_43137 --shell k$ yarn api:bundle && koha-plack --restart kohadev 4. Navigate to About -> System information tab => SUCCESS: Observe green box: 'Search engine (Elasticsearch) - Operational' 6. Test Elasticsearch failure: k$ sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'localhost:1234' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all - Refresh page -> red box with 'Cannot connect to Elasticsearch' - Revert: sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'es:9200' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all 7. Test Zebra engine: k$ koha-mysql kohadev -e "UPDATE systempreferences \ SET value='Zebra' WHERE variable='SearchEngine';" k$ koha-plack --restart kohadev - Refresh page => SUCCESS: green box: 'Search engine (Zebra) - Operational' 8. Test Zebra failure: k$ sudo koha-zebra --stop kohadev - Refresh page => SUCCESS: red box with 'Cannot connect to Zebra' k$ sudo koha-zebra --start kohadev - Refresh page SUCCESS: green box again 9. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Michelle Spinney <mspinney@clamsnet.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mspinney@clamsnet.org -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |43145 Blocks| |43146 --- Comment #6 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- I decided to file separate bugs for other core checks. The idea is that how each check is done should be discussed in its own context. I'll provide base implementations to start the discussion. Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43145 [Bug 43145] Add Koha::Health::BackgroundJobs health check https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43146 [Bug 43146] Add Koha::Health::SFTP health check -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202245|0 |1 is obsolete| | Attachment #202246|0 |1 is obsolete| | Attachment #202247|0 |1 is obsolete| | Attachment #202248|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #7 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202259 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202259&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #8 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202260 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202260&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #9 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202261 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202261&action=edit Bug 43137: Add system health indicator to staff interface header Adds a colored dot to the staff interface navbar that reflects the overall system health: - Green: all systems operational - Yellow: warnings present, no critical issues - Red: critical issues detected - Grey: status unavailable Implementation: - health-status.js polls GET /api/v1/health every 60 seconds - Dot appended to #toplevelmenu as the last nav-item - Tooltip shows summary (translatable via __()) - When all issues are restricted (user lacks permission), shows a generic 'issues require attention' message - Links to about.pl for the detail view (placeholder for now) - Included via js_includes.inc (loaded on every staff page) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev 3. Log in to staff interface 4. Observe the health indicator dot in the navbar 5. Verify it turns green when all checks pass 6. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #10 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202262 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202262&action=edit Bug 43137: Add health status boxes to System information tab Adds an asynchronous health status section to the about.pl System information tab. On page load, fetches GET /api/v1/health and renders stacked alert boxes per check: - Green box with 'Operational' text when healthy - Yellow box with warning messages - Red box with critical messages - Restricted checks show a generic translatable message Core check labels are translated client-side using a mapping from check IDs. Plugin checks display their label field as-is. The optional 'detail' field is shown in parentheses after the label. Falls back to a warning if the API is unreachable. Test plan: 1. Apply patch 2. Launch KTD: $ ktd --name bug_43137 --search-engine es9 --proxy up -d $ ktd --name bug_43137 --wait-ready 120 3. Bundle API spec and restart: $ ktd --name bug_43137 --shell k$ yarn api:bundle && koha-plack --restart kohadev 4. Navigate to About -> System information tab => SUCCESS: Observe green box: 'Search engine (Elasticsearch) - Operational' 6. Test Elasticsearch failure: k$ sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'localhost:1234' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all - Refresh page -> red box with 'Cannot connect to Elasticsearch' - Revert: sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'es:9200' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all 7. Test Zebra engine: k$ koha-mysql kohadev -e "UPDATE systempreferences \ SET value='Zebra' WHERE variable='SearchEngine';" k$ koha-plack --restart kohadev - Refresh page => SUCCESS: green box: 'Search engine (Zebra) - Operational' 8. Test Zebra failure: k$ sudo koha-zebra --stop kohadev - Refresh page => SUCCESS: red box with 'Cannot connect to Zebra' k$ sudo koha-zebra --start kohadev - Refresh page SUCCESS: green box again 9. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #11 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- *** Bug 43138 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Text to go in the| |A new health status release notes| |indicator in the staff | |interface header provides | |at-a-glance visibility into | |the state of Koha's backend | |services. The indicator | |polls the new GET | |/api/v1/health endpoint | |every 60 seconds and | |displays green (all systems | |operational), yellow | |(warnings), or red | |(critical issues). | | | |The System information tab | |in About now includes a | |detailed health status | |section showing each check | |with its current state. | |Check details are | |permission-gated: staff | |without the required | |permission still see the | |overall severity but not | |the specific messages. | | | |The framework is extensible | |via the health_check plugin | |hook, allowing plugins to | |contribute their own | |service health checks to | |the same interface. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202260|0 |1 is obsolete| | Attachment #202261|0 |1 is obsolete| | Attachment #202262|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #12 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202277 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202277&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |david@davidnind.com --- Comment #13 from David Nind <david@davidnind.com> --- Adding my testing notes from when there were four patch, and things were visible. Still looks some work going on or approach changed. Happy to sign off when things are ready (and related bugs). Really like this! For me, with Zebra stopped, it took a while for it change to red - it was still showing as green for some time, even though under the server information tab it said "Zebra server seems not to be available. Is it started?". Feedback on message icons: - OK: Green + black circle with a tick - I think the maybe the icons used for warnings vs errors should be changed: - Warning alert: I think this should have the i in an orange circle (yellow background for alert box) - Error alert: I think this should have the ! in a red triangle (red background colour for alert box) Testing notes (using KTD with es9): 1. I didn't use git worktrees, just a single KTD instance. 2. By default, with es9, the status shows as orange with this warning (has a red triangle red with ! icon, yellow background) (assuming with bug 43127 that this will disappear): Search engine (Elasticsearch) - Cluster status is yellow: 10 unassigned shards 3. Step 6: Elasticsearch failure (has a circle with ! icon, pink/red background): Search engine (Elasticsearch) - Elasticsearch ping failed 4. Step 7: Zebra search engine - working (tick in black circle, green background): Search engine (Zebra) - Operational 5. Step 8: Zebra search engine failure (black circle with i icon, light red background): - It took a while to show as red (the Elasticsearch one showed very quickly) even though the status under server information tab showed: Zebra status: Zebra server seems not to be available. Is it started? - Message showing when Zebra not running: Search engine (Zebra) - Cannot connect to Zebra 6. Tests pass: prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202259|0 |1 is obsolete| | Attachment #202277|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #14 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202280 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202280&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #15 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202281 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202281&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #16 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202282 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202282&action=edit Bug 43137: Add system health indicator to staff interface header Adds a colored dot to the staff interface navbar that reflects the overall system health: - Green: all systems operational - Yellow: warnings present, no critical issues - Red: critical issues detected - Grey: status unavailable Implementation: - health-status.js polls GET /api/v1/health every 60 seconds - Dot appended to #toplevelmenu as the last nav-item - Tooltip shows summary (translatable via __()) - When all issues are restricted (user lacks permission), shows a generic 'issues require attention' message - Links to about.pl for the detail view (placeholder for now) - Included via js_includes.inc (loaded on every staff page) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev 3. Log in to staff interface 4. Observe the health indicator dot in the navbar 5. Verify it turns green when all checks pass 6. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #17 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202283 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202283&action=edit Bug 43137: Add health status boxes to System information tab Adds an asynchronous health status section to the about.pl System information tab. On page load, fetches GET /api/v1/health and renders stacked alert boxes per check: - Green box with 'Operational' text when healthy - Yellow box with warning messages - Red box with critical messages - Restricted checks show a generic translatable message Core check labels are translated client-side using a mapping from check IDs. Plugin checks display their label field as-is. The optional 'detail' field is shown in parentheses after the label. Falls back to a warning if the API is unreachable. Test plan: 1. Apply patch 2. Launch KTD: $ ktd --name bug_43137 --search-engine es9 --proxy up -d $ ktd --name bug_43137 --wait-ready 120 3. Bundle API spec and restart: $ ktd --name bug_43137 --shell k$ yarn api:bundle && koha-plack --restart kohadev 4. Navigate to About -> System information tab => SUCCESS: Observe green box: 'Search engine (Elasticsearch) - Operational' 6. Test Elasticsearch failure: k$ sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'localhost:1234' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all - Refresh page -> red box with 'Cannot connect to Elasticsearch' - Revert: sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'es:9200' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all 7. Test Zebra engine: k$ koha-mysql kohadev -e "UPDATE systempreferences \ SET value='Zebra' WHERE variable='SearchEngine';" k$ koha-plack --restart kohadev - Refresh page => SUCCESS: green box: 'Search engine (Zebra) - Operational' 8. Test Zebra failure: k$ sudo koha-zebra --stop kohadev - Refresh page => SUCCESS: red box with 'Cannot connect to Zebra' k$ sudo koha-zebra --start kohadev - Refresh page SUCCESS: green box again 9. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #18 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- (In reply to David Nind from comment #13)
Adding my testing notes from when there were four patch, and things were visible.
That was some `git bz` error from me. Solved!
Still looks some work going on or approach changed.
This is ready for review and I plan to act quickly on feedback
Happy to sign off when things are ready (and related bugs).
Really like this!
For me, with Zebra stopped, it took a while for it change to red - it was still showing as green for some time, even though under the server information tab it said "Zebra server seems not to be available. Is it started?".
That's expected, because status is cached for 30 seconds and polling happens every 60. This can be discussed but it was the best I could come up with. On busy systems caching will be critical.
Feedback on message icons: - OK: Green + black circle with a tick - I think the maybe the icons used for warnings vs errors should be changed: - Warning alert: I think this should have the i in an orange circle (yellow background for alert box) - Error alert: I think this should have the ! in a red triangle (red background colour for alert box)
Thanks! Will look tomorrow.
Testing notes (using KTD with es9): 1. I didn't use git worktrees, just a single KTD instance. 2. By default, with es9, the status shows as orange with this warning (has a red triangle red with ! icon, yellow background) (assuming with bug 43127 that this will disappear): Search engine (Elasticsearch) - Cluster status is yellow: 10 unassigned shards 3. Step 6: Elasticsearch failure (has a circle with ! icon, pink/red background): Search engine (Elasticsearch) - Elasticsearch ping failed 4. Step 7: Zebra search engine - working (tick in black circle, green background): Search engine (Zebra) - Operational 5. Step 8: Zebra search engine failure (black circle with i icon, light red background): - It took a while to show as red (the Elasticsearch one showed very quickly) even though the status under server information tab showed: Zebra status: Zebra server seems not to be available. Is it started? - Message showing when Zebra not running: Search engine (Zebra) - Cannot connect to Zebra 6. Tests pass: prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t
-- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #19 from David Nind <david@davidnind.com> --- Thanks Tomás! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202280|0 |1 is obsolete| | Attachment #202281|0 |1 is obsolete| | Attachment #202282|0 |1 is obsolete| | Attachment #202283|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #20 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202430 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202430&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #21 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202431 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202431&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202430|0 |1 is obsolete| | Attachment #202431|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #22 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202432 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202432&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #23 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202433 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202433&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #24 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202434 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202434&action=edit Bug 43137: Add system health indicator to staff interface header Adds a colored dot to the staff interface navbar that reflects the overall system health: - Green: all systems operational - Yellow: warnings present, no critical issues - Red: critical issues detected - Grey: status unavailable Implementation: - health-status.js polls GET /api/v1/health every 60 seconds - Dot appended to #toplevelmenu as the last nav-item - Tooltip shows summary (translatable via __()) - When all issues are restricted (user lacks permission), shows a generic 'issues require attention' message - Links to about.pl for the detail view (placeholder for now) - Included via js_includes.inc (loaded on every staff page) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev 3. Log in to staff interface 4. Observe the health indicator dot in the navbar 5. Verify it turns green when all checks pass 6. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #25 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 202435 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202435&action=edit Bug 43137: Add health status boxes to System information tab Adds an asynchronous health status section to the about.pl System information tab. On page load, fetches GET /api/v1/health and renders stacked alert boxes per check: - Green box with 'Operational' text when healthy - Yellow box with warning messages - Red box with critical messages - Restricted checks show a generic translatable message Core check labels are translated client-side using a mapping from check IDs. Plugin checks display their label field as-is. The optional 'detail' field is shown in parentheses after the label. Falls back to a warning if the API is unreachable. Test plan: 1. Apply patch 2. Launch KTD: $ ktd --name bug_43137 --search-engine es9 --proxy up -d $ ktd --name bug_43137 --wait-ready 120 3. Bundle API spec and restart: $ ktd --name bug_43137 --shell k$ yarn api:bundle && koha-plack --restart kohadev 4. Navigate to About -> System information tab => SUCCESS: Observe green box: 'Search engine (Elasticsearch) - Operational' 6. Test Elasticsearch failure: k$ sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'localhost:1234' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all - Refresh page -> red box with 'Cannot connect to Elasticsearch' - Revert: sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'es:9200' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all 7. Test Zebra engine: k$ koha-mysql kohadev -e "UPDATE systempreferences \ SET value='Zebra' WHERE variable='SearchEngine';" k$ koha-plack --restart kohadev - Refresh page => SUCCESS: green box: 'Search engine (Zebra) - Operational' 8. Test Zebra failure: k$ sudo koha-zebra --stop kohadev - Refresh page => SUCCESS: red box with 'Cannot connect to Zebra' k$ sudo koha-zebra --start kohadev - Refresh page SUCCESS: green box again 9. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Needs Signoff |Signed Off -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #202432|0 |1 is obsolete| | Attachment #202433|0 |1 is obsolete| | Attachment #202434|0 |1 is obsolete| | Attachment #202435|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #26 from David Nind <david@davidnind.com> --- Created attachment 202437 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202437&action=edit Bug 43137: Add Koha::Health framework and SearchEngine check Introduces the system health monitoring framework: Koha::Health - Aggregator class that: - Runs registered core health check classes - Calls health_check plugin hook for plugin-contributed checks - Caches the full response in Memcached (30s TTL) - Provides fault isolation (each check wrapped in try/catch) - Returns grouped response: { core => [...], plugins => {...} } Koha::Health::SearchEngine - First core health check: - Detects configured engine (Elasticsearch or Zebra) - Elasticsearch: ping + cluster health (green/yellow/red) - Zebra: daemon reachability via Zconn - Reports warnings/critical messages with details Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove -v t/Koha/Health.t t/Koha/Health/SearchEngine.t => SUCCESS: All tests pass 3. Tests cover: - core_checks() registration - status() aggregation and caching behavior - Fault isolation for failing checks - ES green/yellow/red cluster statuses - ES connection failure - Zebra healthy and failed scenarios 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #27 from David Nind <david@davidnind.com> --- Created attachment 202438 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202438&action=edit Bug 43137: Add GET /api/v1/health endpoint REST API endpoint that returns the aggregated system health status. - Routes to Koha::REST::V1::Health#get - Requires catalogue permission (low bar for access) - Passes $c->stash(koha.user) to Koha::Health->status for filtering - Permission-based filtering: checks the user cannot see get restricted => 1 with empty alert arrays - Severity always reflects the unfiltered state (the dot is honest) - Core alerts use { code, params } for translatable messages - Plugin alerts use { message } (displayed as-is) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev k$ prove -v t/db_dependent/api/v1/health.t => SUCCESS: All tests pass 3. Tests cover: - 401 for unauthenticated requests - 403 for users without catalogue permission - 200 with correct response structure for authorized users - Internal _class field not exposed in response 4. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #28 from David Nind <david@davidnind.com> --- Created attachment 202439 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202439&action=edit Bug 43137: Add system health indicator to staff interface header Adds a colored dot to the staff interface navbar that reflects the overall system health: - Green: all systems operational - Yellow: warnings present, no critical issues - Red: critical issues detected - Grey: status unavailable Implementation: - health-status.js polls GET /api/v1/health every 60 seconds - Dot appended to #toplevelmenu as the last nav-item - Tooltip shows summary (translatable via __()) - When all issues are restricted (user lacks permission), shows a generic 'issues require attention' message - Links to about.pl for the detail view (placeholder for now) - Included via js_includes.inc (loaded on every staff page) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ yarn api:bundle && koha-plack --restart kohadev 3. Log in to staff interface 4. Observe the health indicator dot in the navbar 5. Verify it turns green when all checks pass 6. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #29 from David Nind <david@davidnind.com> --- Created attachment 202440 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202440&action=edit Bug 43137: Add health status boxes to System information tab Adds an asynchronous health status section to the about.pl System information tab. On page load, fetches GET /api/v1/health and renders stacked alert boxes per check: - Green box with 'Operational' text when healthy - Yellow box with warning messages - Red box with critical messages - Restricted checks show a generic translatable message Core check labels are translated client-side using a mapping from check IDs. Plugin checks display their label field as-is. The optional 'detail' field is shown in parentheses after the label. Falls back to a warning if the API is unreachable. Test plan: 1. Apply patch 2. Launch KTD: $ ktd --name bug_43137 --search-engine es9 --proxy up -d $ ktd --name bug_43137 --wait-ready 120 3. Bundle API spec and restart: $ ktd --name bug_43137 --shell k$ yarn api:bundle && koha-plack --restart kohadev 4. Navigate to About -> System information tab => SUCCESS: Observe green box: 'Search engine (Elasticsearch) - Operational' 6. Test Elasticsearch failure: k$ sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'localhost:1234' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all - Refresh page -> red box with 'Cannot connect to Elasticsearch' - Revert: sudo xmlstarlet ed -L -u '//elasticsearch/server' \ -v 'es:9200' /etc/koha/sites/kohadev/koha-conf.xml k$ restart_all 7. Test Zebra engine: k$ koha-mysql kohadev -e "UPDATE systempreferences \ SET value='Zebra' WHERE variable='SearchEngine';" k$ koha-plack --restart kohadev - Refresh page => SUCCESS: green box: 'Search engine (Zebra) - Operational' 8. Test Zebra failure: k$ sudo koha-zebra --stop kohadev - Refresh page => SUCCESS: red box with 'Cannot connect to Zebra' k$ sudo koha-zebra --start kohadev - Refresh page SUCCESS: green box again 9. Sign off :-D Assisted-by: Sonnet 4 (Anthropic) Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43137 --- Comment #30 from David Nind <david@davidnind.com> --- Testing notes (using KTD): 1. With bug 43142 applied, Elasticsearch shows as green. Otherwise it shows as: Search engine (Elasticsearch) - Cluster status is yellow: 10 unassigned shards -- You are receiving this mail because: You are watching all bug changes.
participants (1)
-
bugzilla-daemon@bugs.koha-community.org