Skip to content

feat(place/driver_health): report driver process health across the cluster - #627

Merged
stakach merged 3 commits into
PlaceOS:masterfrom
viv-4:master
Aug 26, 2026
Merged

stakach merged 3 commits into
PlaceOS:masterfrom
viv-4:master

Conversation

@viv-4

@viv-4 viv-4 commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Checks every driver process on every core node and exposes a name, running state and check timestamp for each, so cluster health can be inspected in backoffice or exported to InfluxDB.

Core nodes are read from the core service registration, the same one Proxy::RemoteDriver uses to route module requests, then each node is asked about its own driver processes over core's internal API. A driver process that isn't using any memory isn't running.

image

…uster

Checks every driver process on every core node and exposes a name, running
state and check timestamp for each, so cluster health can be inspected in
backoffice or exported to InfluxDB.

Core nodes are read from the `core` service registration, the same one
Proxy::RemoteDriver uses to route module requests, then each node is asked
about its own driver processes over core's internal API. No API key or request
to an external PlaceOS instance is involved. A driver process that isn't using
any memory isn't running.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@viv-4
viv-4 requested review from stakach and w-le August 26, 2026 00:58
…iver name

InfluxDB can't aggregate boolean fields (mean, sum) without mapping them
first, so `running` is now an Int32 of 1 or 0. The `drivers` status uses
the complex metric hint with `name` as a tag key so each driver process is
its own series rather than a field to pivot on.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDPGfoXsCRxWNCSUpZvzhh

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

…mit, tag by hostname

Driver executables are named `<source>_<commit>_<arch>` by the build
service. DriverState now carries `hostname`, `driver` and `commit` as
their own fields (architecture is dropped) and `name` is
`<hostname>.<driver>` so it tags cleanly in InfluxDB across builds.
`hostname` is also exposed as a tag key.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDPGfoXsCRxWNCSUpZvzhh

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@stakach
stakach merged commit 34c1aaf into PlaceOS:master Aug 26, 2026
2 of 6 checks passed
camreeves added a commit that referenced this pull request Sep 24, 2026
…(PPT-2375, PPT-2667) (#631)

Visitor mailer changes for HIO (PPT-2375, PPT-2667), tested end to end on hio.uat.placeos.run. Supersedes #629.

Mia's commits from #629:
- fix(visitor_mailer): refresh the building zone instead of memoising it
- fix(visitor_mailer): name the building the visit is in
- fix(visitor_mailer): stop emailing visitors removed from the visit
- fix(visitor_mailer): email the original host once per reassignment
- fix(visitor_mailer): tell a visitor about a change once
- fix(visitor_mailer): notify group event registrations of changes
- docs(visitor_mailer): document building naming and change coalescing
- fix(visitor_mailer): render times in the zone the visit is in
- docs(visitor_mailer): document time zone precedence
- fix(visitor_mailer): prefer the building time zone for emails

On top of #629:
- feat(place/driver_health): report driver process health across the cluster (#627)
- feat(place/driver_health): include driver processes running on edges (#2) (#628)
- fix(place/driver_health): name key without hostname
- fix(place/driver_health): return running if no modules expected
- feat(place/driver_health): add not running size
- fix(public_events): fetch the metadata permission from the staff API (PPT-2247) (#625)
- feat(gallagher/parking_approvals): prevent duplicate email sends
- feat(occupancy): add occupancy_sensor_failed common setting
- feat(gallagher/parking_approvals): send email on manual approval
- feat(occupancy): flag if occupancy actions are being ignored
- feat(gallagher/parking_approvals): implement lottery system
- feat(bookings): hide meeting details on the backend
- fix(mulesoft/booking_api): use tmp folder for certs
- fix(place/bookings): hide meeting details to strip most information
- feat(gallagher/parking_approvals): add email_bcc setting
- fix(gallagher/parking_approvals): resolve transient failures
- feat(gallagher/parking_approvals): check for car or bike features before notes
- fix(cisco/dna_spaces): parse Space Occupancy events
- fix(optergy/p864): failure to compile
- chore(staff_api.cr): use ingress nginx service as default URI (#630)
- feat(visitor_mailer): end time and time zone placeholders (PPT-2667, PPT-2375)
- fix(visitor_mailer): event_timezone is the zone abbreviation
- fix(visitor_mailer): previous room ignores the zones above the building
- fix(visitor_mailer): keep the previous-zone short circuit
- fix(visitor_mailer): linked booking invites follow the event path by default
- fix(visitor_mailer): cap change_debounce where the invite memory is

Co-authored-by: Mia Bennett <mia@chillfox.com>
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