-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Get Alarm Runtime Status: support query the running status for the whole cluster. #13570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enhances the alarm runtime status query functionality to support querying the running status for the whole OAP cluster instead of just a single instance.
Key changes:
- Refactored alarm status query endpoints to aggregate results from all OAP cluster instances
- Introduced new service interfaces and data structures for cluster-wide alarm status representation
- Updated documentation to reflect the new cluster-aware API response format
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| alarm-settings.yml (multiple locations) | Updated documentation comments to use "Rule unique id" instead of "Rule unique name" for consistency |
| StatusQueryProvider.java | Registered AlarmStatusQueryService as a module service implementation |
| StatusQueryModule.java | Added AlarmStatusQueryService to the list of provided services |
| AlarmStatusQueryService.java | New service that queries alarm status from all OAP instances in the cluster via gRPC |
| AlarmStatusQueryHandler.java | Refactored to delegate to AlarmStatusQueryService instead of directly accessing alarm rules |
| RemoteService.proto | Added syncStatus RPC method and related message types for cross-instance status queries |
| SelfRemoteClient.java | Implemented getChannel() method returning null for self-client |
| RemoteClient.java | Added getChannel() method to interface for accessing underlying gRPC channel |
| GRPCRemoteClient.java | Made getChannel() method public to implement interface |
| RemoteServiceHandler.java | Added syncStatus RPC handler to respond to status queries from other OAP instances |
| AlarmStatusWatcherService.java | New service interface defining methods for retrieving alarm status information |
| AlarmModule.java | Added AlarmStatusWatcherService to module's provided services |
| InstanceAlarmStatus.java | New data class representing alarm status for a single OAP instance |
| ClusterAlarmStatus.java | New data class representing alarm status for the entire cluster |
| AlarmRunningContext.java | New data class representing the runtime context of an alarm rule |
| AlarmRuleList.java | New data class representing a list of alarm rules |
| AlarmRuleDetail.java | New data class representing detailed information about an alarm rule |
| AlarmStatusWatcher.java | Implementation of AlarmStatusWatcherService that retrieves alarm status from the local instance |
| AlarmModuleProvider.java | Registered AlarmStatusWatcher as the implementation of AlarmStatusWatcherService |
| query_alarm_runtime_status.md | Updated documentation showing new cluster-aware response format with examples |
| backend-alarm.md | Updated terminology from "Rule name" to "Rule id" and "hook names" to "hook ids" |
| changes.md | Added changelog entry for the new cluster-wide alarm status query feature |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
CHANGESlog.