# Perspective Script Execution Profiler & Analysis Suite

**URL:** <https://forum.inductiveautomation.com/t/perspective-script-execution-profiler-analysis-suite/117581>\
**Category:** Ignition Exchange\
**Tags:** scripting, perspective\
**Created:** [October 23, 2026, 12:33am UTC](https://forum.inductiveautomation.com/t/perspective-script-execution-profiler-analysis-suite/117581 "2026-10-23T00:33:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jason\_wellman](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jason_wellman/32/86979_2.png) [@jason\_wellman](https://forum.inductiveautomation.com/u/jason_wellman)\
**Post date:** [October 23, 2026, 12:33am UTC](https://forum.inductiveautomation.com/t/perspective-script-execution-profiler-analysis-suite/117581/1 "2026-10-23T00:33:56Z")

</div>

Hi everyone,

I wanted to share a new open-source resource I published to the Ignition Exchange to help track script runtimes and catch unhandled exceptions across Ignition projects without cluttering Gateway logs.

The **Perspective Script Execution Profiler & Analysis Suite** allows you to wrap Jython functions, Perspective transforms, or Gateway events with a simple `@profiler` decorator. It captures execution durations, errors, and stack traces into MS SQL Server, and includes a built-in Perspective UI to analyze runtime performance in real time.

### Features

- **Universal `@profiler` Decorator** : Import the script library, then add the decorator to your function. Drop it on Project Library scripts, Perspective transforms, or event handlers to measure latency.

- **Database Logging** : Captures durations, status, and full stack traces directly to MS SQL Server.

- **Perspective Dashboard** : Includes dynamic XY time-series charts and filterable data tables for quick troubleshooting.

- **Zero-Config Setup** : Automatically initializes its database schema on Gateway startup.

- **Maintenance Utility** : Built-in views to quickly clean up historical performance logs.

### Links & Resources

- **Download on Ignition Exchange** : [Exchange Resource #3003](https://inductiveautomation.com/exchange/3003/overview)

- **Source Code & GitHub Repo** : [https://github.com/jasonwellman/ignition-script-profiler](https://github.com/jasonwellman/ignition-script-profiler)

Feel free to reply here or submit an issue directly on GitHub. I hope that you find this resource useful.

---

<div class="post-metadata">

**Author:** ![jason\_wellman](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jason_wellman/32/86979_2.png) [@jason\_wellman](https://forum.inductiveautomation.com/u/jason_wellman)\
**Post date:** [October 23, 2026, 12:34am UTC](https://forum.inductiveautomation.com/t/perspective-script-execution-profiler-analysis-suite/117581/2 "2026-10-23T00:34:38Z")

</div>

**v1.1.0** with performance improvements and UI tweaks is submitted and currently pending review.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 23, 2026, 11:47am UTC](https://forum.inductiveautomation.com/t/perspective-script-execution-profiler-analysis-suite/117581/3 "2026-10-23T11:47:31Z")

</div>

- You are using `import` with project library scripts. This is unwise, and not entirely safe, especially in Ignition v8.1.
- You are importing `system` in your project scripts. This is unnecessary.
- Your `try` - `except` clauses will only catch jython errors, not any java errors. Since you are wrapping database operations that typically only throw java errors, it suggests that much of this is untested.

Or vibe-coded. ☹
