From 4358ea462d90c7f8ec9a342742020008daa46c1c Mon Sep 17 00:00:00 2001 From: Gwen Blum <19484478+gwenblum@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:59:19 +0100 Subject: [PATCH 1/3] IQ: Update 101 suggest remediation --- .../README.md | 10 +- ...ediation Suggestion for User Endpoint.json | 235 +++++++++--------- .../image.png | Bin 0 -> 39577 bytes 3 files changed, 125 insertions(+), 120 deletions(-) create mode 100644 IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/image.png diff --git a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md index 2269ddde..c6729a74 100644 --- a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md +++ b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md @@ -4,13 +4,15 @@ On-demand runbook that suggests remediations to run on a device based on the hea The runbook fetches health events for the request device, uses a first GenAI node to get an analysis of the events and suggested resolutions, then continues the GenAI conversation though a second genAI node to assess what remediation from the available remediations on the tenant would address the issues. - + ## Prerequisistes -1. Aternity integration is installed and the connector is configured (IQ > Integration Library) -2. Remediations available in the Aternity tenant -3. IQ Assist feature is enabled (see help page) +1. Riverbed IQ Assist feature is enabled + +2. Aternity integration is installed and the connector is configured (IQ > Integration Library) + +3. Remediations available in the Aternity tenant ## Quick Setup diff --git a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/Riverbed IQ Assist - Diagnostic and Remediation Suggestion for User Endpoint.json b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/Riverbed IQ Assist - Diagnostic and Remediation Suggestion for User Endpoint.json index a7b1ddb7..26c4b7e0 100644 --- a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/Riverbed IQ Assist - Diagnostic and Remediation Suggestion for User Endpoint.json +++ b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/Riverbed IQ Assist - Diagnostic and Remediation Suggestion for User Endpoint.json @@ -1,11 +1,11 @@ { "runbook": { - "id": "18ca3099-32bf-4d53-84a2-4b46759cfe36", - "createdTime": "1740577659.648523300", - "lastUpdatedTime": "1740577797.861110000", + "id": "ed869632-9aae-4db7-8979-c1cb19fa3856", + "createdTime": "1740557225.531146600", + "lastUpdatedTime": "1764176108.229904400", "factoryResourceName": null, "isFactory": false, - "name": "example - Riverbed IQ Assist - Diagnostic and Remediation Suggestion for User Endpoint", + "name": "Demo - Riverbed IQ Assist - On-Demand Diagnostic and Remediation Suggestion for User Endpoint", "description": "Diagnose the user endpoint and suggest remediations", "isReady": false, "triggerType": "on_demand_input", @@ -13,7 +13,7 @@ "primitiveVariables": [ { "type": "string", - "defaultValue": "devicename", + "defaultValue": "Adam_Covert_WKS", "name": "runtime.Device_Name", "isReadonly": false }, @@ -49,13 +49,13 @@ }, { "type": "string", - "defaultValue": "", + "defaultValue": "my-demo", "name": "runtime.Aternity_EUEM_ENV", "isReadonly": false }, { "type": "string", - "defaultValue": "", + "defaultValue": "3", "name": "runtime.Aternity_EUEM_ACCOUNT_ID", "isReadonly": false }, @@ -83,52 +83,53 @@ "subflowVariables": null, "nodes": [ { - "id": "ec14b9db-670d-4594-a25b-87b224257e68", + "id": "1a138bca-e910-45a6-b876-00e2acd374a8", "isIntegrationSubflowNode": false, "type": "on_demand_input", "label": "Input", "description": "", "properties": { - "x": 368.00000000000006, - "y": 350, + "x": 408.0000000000001, + "y": 290, "triggerType": "on_demand_input", "debug": false, "outputDataFormat": "summary", - "synthKeys": [], - "inputVariables": [ - "runtime.Device_Name" + "synthKeys": [ + { + "id": "user_device", + "label": "User Device", + "type": "object", + "unit": "", + "dataOceanId": "user_device", + "dataOceanKeys": [ + { + "id": "user_device.device_name", + "label": "User Device Name", + "type": "string", + "category": "Device", + "unit": "none" + } + ] + } ], + "inputVariables": [], "outputVariables": [] }, "wires": [ [ - "bf00fa98-1597-4ca7-9eba-ea4edfb9849c" + "a7faf9c0-5399-4b96-8125-f8033dfa1552" ] ] }, { - "id": "4f8436da-b45c-4901-8874-cb6cd33e079e", - "isIntegrationSubflowNode": false, - "type": "insight", - "label": "Display Computer Details in IQ", - "description": "", - "properties": { - "x": 917, - "y": 410, - "template": "
User Endpoint: {{variables[\"runtime.Device_Name\"]}}
", - "debug": false - }, - "wires": [] - }, - { - "id": "4031c6dd-15ce-45e7-8aca-3dd69a7616f8", + "id": "c90e3728-3f44-4cfd-a68a-4719b0628cde", "isIntegrationSubflowNode": false, "type": "genai", "label": "Riverbed IQ Assist: Diagnose Health Events (GenAI)", "description": "", "properties": { "x": 907, - "y": 250, + "y": 270, "instructions": "You are an end-user computing experts, specialist about endpoints especially Windows and Mac OS.\nYour role is to analyze recent health events that can impact the stability of the endpoint. Follow these instructions carefully:\n\n1. Adopt the persona of a professional, concise analyst specializing in troubleshooting performance issues related to endpoints, networks, and applications.\n2. Process the provided data thoroughly to analyze performance trends, metrics, and anomalies. Focus on identifying the **top 3 most relevant findings or anomalies** that are critical to performance.\n3. For each identified issue, include a brief but detailed summary explaining the finding, why it is important, and its potential impact on the system or user experience.\n4. Structure each finding as an itemized, numbered list within an HTML `Finding #1: [Issue description].
Explanation: [Why this matters and the potential impact].
Finding #2: [Issue description].
Explanation: [Why this matters and the potential impact].
Finding #3: [Issue description].
Explanation: [Why this matters and the potential impact].
AI-generated content
\n{{variables[\"runtime.Suggestion_HTML\"]}}
", @@ -297,14 +257,14 @@ "wires": [] }, { - "id": "c794bb00-9130-43fd-8c0c-978939a26443", + "id": "8f97a64d-c825-4079-b62b-02953245cd62", "isIntegrationSubflowNode": false, "type": "genai", "label": "Riverbed IQ Assist: Suggest Remediations (GenAI)", "description": "", "properties": { "x": 2019.9999999999998, - "y": 250, + "y": 270, "instructions": "Follow the instructions in the query", "instructionsLocation": "enter", "queryLocation": "runtime.Prompt_Template", @@ -312,19 +272,19 @@ }, "wires": [ [ - "bc7248ff-f875-4354-8bbb-0b1e38cb6fb8" + "9616cb12-42ef-47a2-8195-0780e22d8e69" ] ] }, { - "id": "7f2b8ac9-48df-4c2d-b374-02413773acf0", + "id": "55cef427-b5e1-4183-b417-f7f5b4d48275", "isIntegrationSubflowNode": false, "type": "set_primitive_variables", "label": "Prepare Query", "description": "", "properties": { "x": 1777, - "y": 370, + "y": 390, "variables": [ { "name": "runtime.Prompt_Template" @@ -335,19 +295,19 @@ }, "wires": [ [ - "c794bb00-9130-43fd-8c0c-978939a26443" + "8f97a64d-c825-4079-b62b-02953245cd62" ] ] }, { - "id": "17db9e49-1e6f-4f33-8bd6-0b8e57b97658", + "id": "99c4fbcd-758e-40e8-bb2b-1fbe2c99f40d", "isIntegrationSubflowNode": false, "type": "rvbd_ui_text", "label": "Display: Diagnostic", "description": "", "properties": { "x": 1344, - "y": 190, + "y": 210, "title": "Diagnostic", "row": "30", "notes": "{{variables[\"runtime.Insight_Health_HTML\"]}}
", @@ -356,41 +316,84 @@ "wires": [] }, { - "id": "33b36b1d-9991-4e2f-9a58-e74ebdaf487e", + "id": "4a85d86d-8cf9-4e53-9a70-a116c82a8b51", "isIntegrationSubflowNode": false, "type": "comment", "label": "Comment", "description": "", "properties": { - "x": 50, + "x": 108, "y": 50, - "comment": "Diagnose the user endpoint and suggest remediations.
\nPrerequisites:
\nSetup
Diagnose the user endpoint and suggest remediations.
Prerequisites:
Demo
Version 2025-11-05-1
", "debug": false }, "wires": [] + }, + { + "id": "a7faf9c0-5399-4b96-8125-f8033dfa1552", + "isIntegrationSubflowNode": false, + "type": "data_ocean_dynamic", + "label": "Data Store", + "description": "", + "properties": { + "x": 658, + "y": 300, + "objType": "aternity_device_health_events_hourly.traffic", + "timeSeries": false, + "limit": "100", + "topBy": [ + { + "id": "sum_unique_health_events", + "direction": "desc" + } + ], + "groupBy": [ + "user_device.device_name", + "health_event_name", + "health_event_severity", + "health_event_status", + "health_event_error", + "health_event_details", + "health_event_category", + "health_event_component", + "health_event_last_timestamp" + ], + "duration": 604800, + "filters": {}, + "debug": false + }, + "wires": [ + [ + "c90e3728-3f44-4cfd-a68a-4719b0628cde" + ] + ] } ], "lastUpdatedUser": "Runbook Export", "createdByUser": "Runbook Export", - "eTag": "W/\"datetime'2025-02-26T13%3A49%3A57.8808898Z'\"", + "eTag": "W/\"datetime'2025-11-26T16%3A55%3A08.2510231Z'\"", "variant": "on_demand", - "seriesId": "18ca3099-32bf-4d53-84a2-4b46759cfe36", + "seriesId": "ed869632-9aae-4db7-8979-c1cb19fa3856", "version": "1.0", "otherVersions": null, "isScheduled": false, - "isValidated": true + "isValidated": true, + "isProprietary": false }, - "dependencies": [ - { - "id": "5a13d267-e1d0-4750-aa7a-fd0416499efc", - "type": "subflow", - "name": "Aternity: Get Device Health Events", - "globalId": "Aternity::Get_Device_Health_Events", - "originalVersion": "2.1.0", - "nodeLabel": "Aternity: Get Device Health Events", - "sourceLocation": "integrationLibrary", - "sourcePackageId": "Aternity" - } - ], - "token": "9bbTio6Eq+yPC+robNvU0bGEIdcbLbpPuqJsws+/+vE=" -} + "dependencies": [], + "token": "rfITEGNI2/Z9i50lZbpmS9Vp1r5QBMPHYi5xnz7b4hA=" +} \ No newline at end of file diff --git a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/image.png b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/image.png new file mode 100644 index 0000000000000000000000000000000000000000..f43ddd97af333aa0d81e19892f8b4aadbb2e3469 GIT binary patch literal 39577 zcmeFY1ydYbv<5mj1b25QKyY`r;1*mGG{N0n2Pe2gf&>i^+}(q_ySoK@P0l&@-g^Jw zRlTXEdgy7{d+E2nwL4r{Q5yLT!5a_=ge)r~p$Y=QQiDJcg7C1wk&pAnkiZVYQB_(D zR6a_y5BvjdF8W>+1geTbd^Cmu{ztHr`QQiwp>)0eLG;-ceFTBhm}MnI)!ht^mfgM7 zuN#EV#)dOKuq6b`%8232RN_H|Q_ztGP|Qr={8;IHlC`a!U0BFoG5B0t_m#Pg+3GEG zLyO&_?h(_R31S)Ilq!r$tOgpqyhJQo(&vw<16;CZJHr{Pq~@vYw1@~)39=XNZ3erN z7lOMAG<*rXtCwEcyQ~`19@J>)|NFUSt+w|I``=H|I~F=oiU0kucH}_+@7d@*(195L z`=bOFCX(F$xtof@|9|oSFR=gb7>RL7$+cXsD8=h1uR|`L2ZjJifhNKJuRFj34*&Oy zh4KU(DP9;}Gq?j`^Y+#Hu?+DN$^Kp>Dj8431fTn&^OOY(=Y7`kk*$NuH#dr%=hcU> zvj68aQACNLE_itif;4aV5V5%SAgXmMTHy{OH0ESPGxo*HYwpMa=<0ds^d1U0Y6Y5< z5wl}!XUf-M-F5!!fXHrEYohT~L_+!jN~6iSC8L2mNjRIiT0N-&L4qa3$ES
zUMV=wA9x-_dQJkb@B*icY}+31FtiRU2&()I4{d^_Bm}xmK2fuV)hl-b_N77st%e%2
zA1f3yo=>WYBo29zBhGW%v6bd(Lpvud4P9*mK%REZtbAOet9&D!U2N7xAsb=mhw-!g
z^ko}XAy%}R1i#gVE22A<4z}|S6wJWfD)E@*9EYlEmS1ArupN|_j)G7T5ECk;F`JC5
z-GSI-8veo3J?oDIu4X?7)REpFcep?LkRudY@RPIpgl>Dn2q9MXQf2qlUPk9V(%36}
z*jNDr+Q(NalYtIFcN^q#3~R7ZC^bk^<=P$Peo~El=4bb*pJw&Y)B2Xcf>wMxOY@D!
zC1xDnyP^oBu6G-fO|(C8Ts+s>Jc#%__K~PodCX;=&?tWzzn}Xvr+1;3rRY#ylX9mM
zDlWuc;zbZ`+uKgd6JkVf-le_@T>9u#&L8-6rDS=sD2VCX*VJ+?4@R@O_Kwbvy>#qw
zo%p>z&;(1u8yXkpjmqo@E#*&Df7#UV@>(4OGcE0qmxM|sw)-AEUoLOJuqwSB#>0+t
zhw1az7(p~KzrdV0**f8J^^Zv8UKUdlS2Yai+4reLVJJ&{N;\n
\n```\n\nInclude up to 3 relevant remediations—no more, and if not relevant just says 'Could not find relevant remediation'. Avoid redundancies and keep the focus on critical insights.\n\n---\n\n{{variables[\"runtime.Insight_Health_HTML\"]}}\n\"\n}\n\n",
- "debug": true
+ "debug": false
},
"wires": [
[
@@ -357,7 +339,7 @@
"limit": "100",
"topBy": [
{
- "id": "sum_unique_health_events",
+ "id": "health_event_last_timestamp",
"direction": "desc"
}
],
@@ -385,7 +367,7 @@
],
"lastUpdatedUser": "Runbook Export",
"createdByUser": "Runbook Export",
- "eTag": "W/\"datetime'2025-11-26T16%3A55%3A08.2510231Z'\"",
+ "eTag": "W/\"datetime'2025-11-26T17%3A08%3A11.8250787Z'\"",
"variant": "on_demand",
"seriesId": "ed869632-9aae-4db7-8979-c1cb19fa3856",
"version": "1.0",
@@ -395,5 +377,5 @@
"isProprietary": false
},
"dependencies": [],
- "token": "rfITEGNI2/Z9i50lZbpmS9Vp1r5QBMPHYi5xnz7b4hA="
+ "token": "CKEzfh4EVvW3fNgnKOQlXxqG6ONUxH4Z/KxO+Kn97UU="
}
\ No newline at end of file
From 06073af53c9eb5d7613f0fab14da8035664cfbf5 Mon Sep 17 00:00:00 2001
From: Gwen Blum <19484478+gwenblum@users.noreply.github.com>
Date: Wed, 26 Nov 2025 20:22:21 +0100
Subject: [PATCH 3/3] Update IQ/Automation/On-Demand
Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../101-riverbed-iq-assist-suggest-remediation/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md
index c6729a74..7b920e47 100644
--- a/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md
+++ b/IQ/Automation/On-Demand Runbooks/101-riverbed-iq-assist-suggest-remediation/README.md
@@ -6,7 +6,7 @@ The runbook fetches health events for the request device, uses a first GenAI nod

-## Prerequisistes
+## Prerequisites
1. Riverbed IQ Assist feature is enabled