get_alarm_history
Retrieve historical state changes and transitions for Oracle Cloud Infrastructure alarms to analyze monitoring patterns and troubleshoot issues.
Instructions
Get alarm state history.
Args:
alarm_id: OCID of the alarm
alarm_historytype: Type of history (STATE_TRANSITION_HISTORY, STATE_HISTORY, RULE_HISTORY)
Returns:
List of alarm history entries with timestamps and state changes
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| alarm_id | Yes | ||
| alarm_historytype | No | STATE_TRANSITION_HISTORY |
Implementation Reference
- The core handler function implementing the get_alarm_history tool. It uses the OCI MonitoringClient to fetch all alarm history entries via pagination, processes them into a list of dictionaries with summary, timestamp, and optional timestamp_triggered, and handles exceptions.def get_alarm_history(monitoring_client: oci.monitoring.MonitoringClient, alarm_id: str, alarm_historytype: str = "STATE_TRANSITION_HISTORY") -> List[Dict[str, Any]]: """ Get alarm state history. Args: monitoring_client: OCI Monitoring client alarm_id: OCID of the alarm alarm_historytype: Type of history (STATE_TRANSITION_HISTORY, STATE_HISTORY, RULE_HISTORY) Returns: List of alarm history entries """ try: history_response = oci.pagination.list_call_get_all_results( monitoring_client.get_alarm_history, alarm_id, alarm_historytype=alarm_historytype ) history = [] for entry in history_response.data: history.append({ "summary": entry.summary, "timestamp": str(entry.timestamp), "timestamp_triggered": str(entry.timestamp_triggered) if hasattr(entry, 'timestamp_triggered') and entry.timestamp_triggered else None, }) logger.info(f"Retrieved {len(history)} history entries for alarm {alarm_id}") return history except Exception as e: logger.exception(f"Error getting alarm history: {e}") raise
- mcp_server_oci/mcp_server.py:1637-1655 (registration)The MCP tool registration for 'get_alarm_history'. This wrapper function is decorated with @mcp.tool and @mcp_tool_wrapper, receives MCP Context and parameters, and delegates to the core handler function using the shared oci_clients["monitoring"] instance.@mcp.tool(name="get_alarm_history") @mcp_tool_wrapper( start_msg="Getting alarm history for {alarm_id}...", error_prefix="Error getting alarm history" ) async def mcp_get_alarm_history(ctx: Context, alarm_id: str, alarm_historytype: str = "STATE_TRANSITION_HISTORY") -> List[Dict[str, Any]]: """ Get alarm state history. Args: alarm_id: OCID of the alarm alarm_historytype: Type of history (STATE_TRANSITION_HISTORY, STATE_HISTORY, RULE_HISTORY) Returns: List of alarm history entries with timestamps and state changes """ return get_alarm_history(oci_clients["monitoring"], alarm_id, alarm_historytype)