Snow Platform Monitor - Devlog #2

This post is over a year old, the information may no longer be up to date.

It’s been around a month since the last devlog for Snow Platform Monitor, I’ve firmly decided to keep the name as is now so at least it won’t go through a name change again, woo.

I’ve been doing quite a lot of work on this over the last few weeks, I’ll attach the overall change logs to the bottom of this devlog if anyone is interested in seeing what the major changes have been. However, for a general overview I’ve finished the majority of the data exports along with some general UI changes, the service is in a working state however the data is purely exported to a directory at the moment, with no smtp functionality currently incorporated however, this should be done by the next devlog!

SPM Configuration Screen

SPM Service Log Example

At the moment the biggest setback I have is that I’m using a prototype logger rather than a full-fledged one, so in the comings weeks I’m going to have to overhaul the entire Logging system which might setback the v1 release I have planned slightly. The major changes since the last devlog however are below:

  • Data Update Job Status implemented
  • Snow License Manager Server Services implemented
  • Snow License Manager Device Reporting implemented
  • Snow Inventory Server Services implemented
  • Snow Inventory Device Reporting implemented
  • Snow Inventory Processing Directory implemented
  • Advanced options tab added for application specific thresholds

I’ve also uploaded an example export spreadsheet that has been exported from v0.4.2 which should give a general idea of what the finalised product will look like. If you’d like to be involved or are wanting to test it out in your Snow test environment, feel free to pop me an email at [email protected].

# Change Logs (0.1 > 0.4.2)

# v0.4.2

# Configuration Manager
  • Removed Export Type, only supported export type right now is EXCELWORKBOOK
# Service
  • Connector (O365/Adobe) export added
  • LicenseManager and SnowInventory reported today exports added
  • Removed “[ServiceSchedule] Loading Module.” from OnStart()
  • Check added to OnStart to confirm if any exports have been configured, else the service will stop
# Core
  • Added ServiceDependsOn and StartType to WindowsServices.cs
  • General class maintenance, new regions etc.
  • SqlRunner.cs added for the main Sql classes
  • GetConnectorImportTables added to DataRetriever for O365 and Adobe
  • GetReportedToday added to DataRetriever for SLM and SINV
  • TabColor modified to account for DeviceReporting in DataRetriever
  • Worksheet name variable added to TabColor (optional)
  • LicenseManager.cs added with ReportedYesterday, Office365Import and AdobeImport
# Known Issues
  • Ping method to be changed to the one in SnowLogCollector
  • Method for getting remote service path to be changed to the one in SnowLogCollector

# v0.4.1

# Configuration Manager
  • Inventory Services checkbox enabled
  • License Manager Services checkbox enabled
# Service
  • Changed ServiceSchedule loader to print time as 00h00m00s instead of 00:00:00
  • Added LicenseManagerServer and InventoryServer var to ServiceExporter()
  • Moved DataRetriever to its own call method under ServiceExporter()
  • Added Snow Service Checker for LicenseManager and Inventory Server to ServiceExporter()
# Core
  • Added DateFormat string to DataRetriever.cs
  • Added dt prefix to the datatable vars in GetDataUpdateJob();
  • Added .AutoFitColumns() to Worksheets in GetDataUpdateJob();
  • Added WindowsServices.cs for getting services on machines
  • Added GetServices to DataRetriever
  • Updated TabColor(package) to take into account if a sheet has rows OR contains specific data
  • Changed InventoryServer.cs to do \hostname\drive$ instead of drive:\
# Known Issues
  • Version shows as 0.4
  • Ping method to be changed to the one in SnowLogCollector
  • Method for getting remote service path to be changed to the one in SnowLogCollector

# v0.4

# Configuration Manager
  • Moved methods from Constructor and replaced with ‘AppLoad()’ method, which contains
    • CheckForUpdates()
    • LoadVisualDesign()
    • LoadConfiguration()
    • LoadServersConfiguration()
  • Advanced Properties added to Configuration Tab
  • Office365 and Adobe Import tables added to Configuration Tab (not implemented)
  • InventoryProcessingThreshold & InventoryProcessingDirectory added to Gui under Adv. Properties
  • InventoryDeviceThreshold, LicenseManagerDeviceThreshold added to spm.config and Gui under Adv. Properties
  • Version label in about tab renamed to lblAboutAppInfo
  • Version label in About tab now represents actual version
  • Disabled ‘Maximize’ option
  • Text field updated to {ProductName} - {ProductVersion}
# Service
  • No changes
# Core
  • DataUpdateJob.cs renamed to DataRetriever.cs
  • DirectoryConfiguration and ApplicationConfiguration moved to \Configuration\
  • Logger.cs, Utilities.cs, DataRetriever.cs and InventoryServer.cs moved to \Classes\
  • Credits.txt updated

# v0.3

# Configuration Manager
  • Added InventoryProcessingDirectory and InventoryProcessingThreshold to servers.config, not in GUI
  • Disabled non-implemented checkboxes
  • Fixed bug where the save button wouldn’t set to enabled = false after saving to prevent saving unworking SQL connection
  • Added Updater via AutoUpdater.NET using .XML file loaded from laim.scot/updates/spm.xml, currently not fully implemented
# Service
  • Implemented DataUpdateJob export
# Core
  • Added EPPlus as dependency, required for Excel Export
  • Added Ping method to Utilites.cs
  • Added InventoryServer.cs and ProcessingDirectory method *not implemented in service yet
  • Added Export Path to DirectoryConfiguration.cs
  • Overhauled original DataUpdateJob.cs class, instead of separate methods all data is pulled via GetExport()
  • Added credits.txt to keep track of others code I use, this will eventually be updated to be included in a credits pop up

# v0.2

# Service
  • Service Created [SnowPlatformMonitor.Service.exe]
  • Runs on schedule, time of day chooseable by user however currently frequency is set to 24hrs only
# Configuration
  • Configuration tab control positions adjusted
  • Configuration tab, added service schedule
  • Save configuration finished for Configuration Tab and Servers Tab
  • Check All/Uncheck All buttons changed to invisible, may bring back eventually
  • PDF radio button changed to invisible, v1.0 unlikely to have this as a feature
  • Snow Platform Monitor Configurator renamed to SnowPlatformMonitor.exe
  • Removed ‘refresh tab’ on load of each tab due to freeze up on Servers tab due to lack of Async
# Core
  • Added DataUpdateJob.cs and DUJ Status script to Resources.resx, currently not implemented
# Solution
  • Changed build folder to root/build