https://github.com/flow-storm/flow-storm-web-plugin
https://github.com/flow-storm/flow-storm-web-plugin
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/flow-storm/flow-storm-web-plugin
- Owner: flow-storm
- Created: 2025-02-21T15:26:53.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-05-05T14:06:59.000Z (8 months ago)
- Last Synced: 2025-08-21T15:57:55.319Z (5 months ago)
- Language: Clojure
- Size: 307 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# FlowStorm web plugin

**Requires FlowStorm >= 4.3.0**
It currently supports and is tested with :
Web servers :
- httpkit (2.8.0)
- ring-jetty-adapter (1.13.0)
Dabatabses libs :
- next.jdbc (1.3.994)
# Setup
[](https://clojars.org/com.github.flow-storm/flow-storm-web-plugin)
In your deps.edn (same can be done with lein profiles) create an alias like :
```clojure
{...
:aliases
{...
:fs-web-plugin {:extra-deps {com.github.flow-storm/flow-storm-web-plugin {:mvn/version "1.0.2"}}
:jvm-opts ["-Dclojure.storm.instrumentOnlyPrefixes.webPlugin=org.httpkit.server,ring.adapter.jetty,next.jdbc.result-set"
"-Dflowstorm.plugins.namespaces.webPlugin=flow-storm.plugins.web.all"]}
}}}
```
Then, in your projects, just make sure you start your repl with the `:fs-web-plugin` alias.
When you open the FlowStorm UI you should see a new `Web` tab like in the picture above.
Minimum instrumentation prefixes needed for each library :
- httpkit (`org.httpkit.server`)
- ring-jetty-adapter (`ring.adapter.jetty`)
- next.jdbc (`next.jdbc.result-set`)
# Usage
Record your activity as usual, then head to the Web tab, select the flow you recorded in and click refresh.
You should see one table per thread, and each table should contain the flow of the requests handled by that thread,
with the request, followed by your functions code and any sql statements down to the response.
Double clicking on any row should take you to that point in time in the code stepper.