- play_arrow Introduction
- play_arrow Overview
- play_arrow Access the Paragon Automation GUI
- play_arrow Access the Paragon Planner
- play_arrow Configure SMTP, LDAP, and Portal Settings
- play_arrow Manage Users
- play_arrow Manage Roles
- play_arrow Manage User Groups
- play_arrow Identity Providers
-
- play_arrow Workflows
- play_arrow Base Platform
- play_arrow Paragon Pathfinder
- play_arrow Paragon Planner
- play_arrow Paragon Insights
-
- play_arrow Manage Devices and Network
- play_arrow Devices
- play_arrow Device Groups
- play_arrow Device Images
- play_arrow Network
- play_arrow Network Groups
- play_arrow Topology Filter
-
- play_arrow Manage Device Templates and Configuration Templates
- play_arrow Configuration Templates
- Configuration Templates Overview
- Configuration Templates Workflow
- About the Configuration Templates Page
- Add Configuration Templates
- Preview and Render a Configuration Template
- Assign Configuration Templates to a Device Template
- Deploy a Configuration Template to a Device
- Edit, Clone, and Delete a Configuration Template
- play_arrow Device Templates
-
- play_arrow Manage Playbook, Rules, Resources, and Graphs
- play_arrow Playbooks
- play_arrow Rules
- Understand Paragon Insights Topics
- Rules Overview
- About the Rules Page
- Add a Predefined Rule
- Edit, Clone, Delete, and Download Rules
- Configure a Custom Rule in Paragon Automation GUI
- Configure Paragon Insights Notification for LSP Gray Failures
- Configure Multiple Sensors per Device
- Understand Sensor Precedence
- Configure Sensor Precedence
- play_arrow Resources
- Understand Root Cause Analysis
- About the Resources Page
- Add Resources for Root Cause Analysis
- Configure Dependency Between Resources
- Example Configuration: OSPF Resource Dependency
- Edit Resources and Dependencies
- Upload Resources
- Download Resources
- Clone Resources
- Delete User-Generated Resources and Dependencies
- Filter Resources
- play_arrow Graphs
- play_arrow Grafana
-
- play_arrow Configure Your Network
- play_arrow Topology
- play_arrow Network Information Table
- Network Information Table Overview
- About the Node Tab
- Add a Node
- Edit Node Parameters
- Delete a Node
- About the Link Tab
- Add a Link
- Edit Link Parameters
- Delete a Link
- About the Tunnel Tab
- Understand How Pathfinder Handles LSPs
- Reroute LSPs Overview
- Segment Routing Overview
- Add a Single Tunnel
- Add Diverse Tunnels
- Add Multiple Tunnels
- Edit and Delete Tunnels
- About the Demand Tab
- About the Interface Tab
- Container LSP Overview
- About the Container LSP Tab
- Add a Container LSP
- Edit Container LSP Parameters
- Maintenance Event Overview
- About the Maintenance Tab
- Add a Maintenance Event
- Edit a Maintenance Event
- Simulate a Maintenance Event
- Delete a Maintenance Event
- About the P2MP Groups Tab
- Add a P2MP Group
- Edit P2MP Group Parameters
- About the SRLG/Facility Tab
- Add an SRLG/Facility
- Edit SRLG/Facility Parameters
- About the Topology Group Tab
- Add Anycast Group Tunnels
- play_arrow Tunnels
- play_arrow Change Control Management
-
- play_arrow Monitoring
- play_arrow Monitor Network Health
- play_arrow Manage Alarms and Alerts
- play_arrow Monitor Jobs
- play_arrow Analytics
- play_arrow Monitor Workflows
-
- play_arrow Reports
- play_arrow Health Reports
- play_arrow Network Reports
- play_arrow Maintenance Reports
- play_arrow Inventory Reports
- play_arrow Demand Reports
-
- play_arrow Administration
- play_arrow Manage E-mail Templates
- play_arrow Manage Audit Logs
- play_arrow Configure External EMS
- play_arrow Manage Task Scheduler
- play_arrow Manage Security Settings
- play_arrow License Management
-
Understand User-Defined Actions and Functions
When creating rules, Paragon Automation Platform includes the ability to run user-defined actions (UDAs) as part of a trigger. A Rule executes UDAs as Python scripts. For example, you might configure a rule with a trigger that reacts to some critical interface going down and responds to the event by calling a function to send an SMS alert. You can write the logic to send the SMS in a UDA python script.
In Paragon Automation, you can schedule UDAs and notifications. This is useful when you deploy multiple parallel instances of Paragon Automation Platform in different locations. You can schedule UDAs to run alternatively from UDA schedulers located in different regions. In the event of a node failure, the UDA scheduler running in a parallel instance continues to execute your UDA and notifications. To enable UDA scheduler, see Enable UDA Scheduler in Trigger Action.
You can also includes the ability to run user-defined functions (UDFs). Also created as Python scripts, UDFs provide the ability to process incoming telemetry data from a device and store the processed value in the time-series database for that device/device-group. For example, the device may be sending FPC temperature in Celsius but you want to process it to be stored as Fahrenheit values in the database.
The processing of UDF fields is handled by microservices called UDF farm unless, you declare global variables in Python scripts. This approach allows for Paragon Insights to process multiple data points from multiple devices and fields at the same time (parallel processing). The result is a 4 to 5 times increase in processing performance for UDA/UDF.
Global Variables in Python Scripts
TAND executes Python scripts that use global variables. Global variables retain a value across multiple UDFs.
The following is an example function to calculate cumulative sum and store the value in global variable sum.
sum = 0 def cumulative_sum (a, b): global sum sum = sum + a + b return sum
When you use global variables in Python scripts, the UDFs are processed by TAND instead of UDF farms.
As an alternative to global variables, you can use the Python construct
**kwargs
to capture values that must be retained across
different functions. When Paragon Insights calls a function (defined in a UDF),
it sends topic name, rule name, device group, point time, and device ID that
are captured using the construct **kwargs
. In case of UDAs,
Paragon
Automation
sends topic name and rule name while executing the Python script.
Along with infrastructure values, Paragon Insights also sends a parameter called
hb_store in **kwargs
that fetches
the last computed value for a variable.
To illustrate how hb_store works in the cumulative addition example:
def sum(a, b, **kwargs): if ’sum’ not in kwargs[hb_store]: kwargs[hb_store][’sum’] = 0 #if ’sum’ is not present in kwargs, declare the initial ’sum’ value as 0. kwargs[hb_store][’sum’] = kwargs[hb_store][’sum’] + a + b #Store cumulative addition value in ’sum’ return kwargs[hb_store][’sum’]
Each time a function with the above code is called, it performs addition of last stored value in ’sum’ with the value of a and value of b. The new value of addition operation is displayed and stored in ’sum’.