Happy new year, and all that! I wanted to debut for the community something I've been working on for a little while, and hopefully it's useful to somebody out there.
The full story: Long ago I worked as a support rep at IA. While there, I made some tools for internal use; Vision windows attached to an internal gateway that knew how to parse our log IDB files and thread dump files and display them in a more useful way. Recently, I had some downtime, and wanted to take on a new project, so I recreated those tools as a standalone project. Thanks to some modern Java features, I'm able to package those tools into a standalone "native" executable, which should make them a lot more accessible than requiring an Ignition gateway.
So, here's Kindling, a collection of tools to help with Ignition (get it?):
A thread dump viewer
A log file viewer
A store & forward cache dump viewer
An archive explorer that understands Ignition project files, gateway backups, modules, and more
And not to bury the lede, but it also comes with dark mode
The best part: It's entirely open-source, and I'd love community contributions.
This is fantastic thanks so much! I think being able to perform some operations on config.idb without the gateway running and without dealing with sqlite syntax would be really nice too. Examples that comes to mind include being able to delete all the tags from a gwbk, global find/replace operations, etc.
@PGriffith thank you for Kindling - its a great tool.
1 Do you know of any other similar tools worth having to troubleshoot/monitor problems in ignitions ?
2 Using Kindling i compared 2 gateways backups config files and would like to correct the difference in one of the files otherwise it will not launch designer or clients. Do you know if there is any way to do the change inside the gateway backup or is it write protected? I will not be able to correct the config file after deploying the backup because i dont have full server access.
I like what’s there and look forward to using it next time I need to pick apart logs. Something in the GUI library you used for the generic IDB viewer portion isn’t available on my system, though.
WARNING: package com.sun.java.swing.plaf.windows not in java.desktop
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel
I’m running Mint (based off Ubuntu 20.04), and had to git clone your repo and do gradlew run locally, so this may just be my setup. I don’t do Java/Kotlin/gradle packaging or building and am kinda lost on where to look in the project to figure this out. Searching online finds other people complaining that OpenJDK on Ubuntu is missing this bit and they ended up building JARs manually to get around it. (here)
I feel like such a killjoy reporting a compatibility issue on a 1 month old project…
v0.0.4 is out with dramatically improved usability (in my opinion) - to be honest, this is the first release I’d call actually useful I need to update the gifs on the readme, but I’d definitely recommend giving this a try if you weren’t satisfied with things before.
I was gonna give it alook, downloaded the exe and installed it, but it is starting up very very slowly (like mulitple minutes) and when i try to choose a file the filebrowser isnt reacting at all Forcing me use taskmanager to end it.
Edit: tried opening it again a couple of times and sometimes it seems to be going smooth, sometimes its getting bugged. Weird, maybe i have to many other stuff running.
If anyone wants to try out a ‘pre-release’, the latest build of main has wrapper log parsing built in, including the ability to stitch together multiple files to present as one unified log. I only have so many test cases on hand locally, so it’d be good to know how this works on ‘real’ data out there in the wild.
v0.1.1 (ignore the gaps in the middle ) out now.
I’m now using JDeploy to streamline packaging and deployment. Bonuses: 1. auto-updates (opt-in) and 2. no need to run cross-OS builds via Github Actions.
The big new feature is wrapper.log parsing; one or more wrapper.log files can be selected and they’ll be rolled up and parsed as a single unit.