Technical description
The architecture and processes of the cloud application metering solution for both Snow Atlas and Snow License Manager are described here.
Snow Atlas
The figure illustrates the cloud application metering architecture and the interactions between the components. The items in the figure correspond with the steps in the process description. The table below gives a summary description of the tasks executed by each component.
Component | Description |
---|---|
Data Intelligence Service (DIS) |
|
Snow Atlas |
|
Snow Extender |
|
Snow Inventory Agent for Windows and macOS |
|
Cloud application metering browser extension |
|
Process description: Snow Atlas
The steps of the cloud application metering process for Snow Atlas is described here. Some steps are described in more detail in separate sections.
-
The Data Intelligence Service (DIS) creates cloud application definitions and ruleset that the Snow Inventory Agent uses to recognize the cloud applications run on the browsers. The definitions and ruleset are continuously developed and updated by DIS.
-
The cloud application definitions and ruleset are transferred to Snow Atlas.
-
The agent queries the Snow Extender for pending updates. When updated cloud application definitions and ruleset are available, they are downloaded and stored in the agent directory in one or both of the files named
webmetering.rules
andwebmetering.crules
. The Snow Extender caches the updated definitions and ruleset to reduce the traffic between the local network and Snow Atlas. -
The agent installs the browser extensions according to the agent configuration. For a detailed description, see Snow Inventory Agent installs browser extensions.
Note that the Apple Safari browser extension is not installed by the agent. For more information, see Install Apple Safari browser extension.
-
The browser extensions on the computer gather cloud application metering data which is stored locally on the computer. For a detailed description, see Browser extension gathers metering data.
-
The agent collects the cloud application metering data. For a detailed description, see Snow Inventory Agent collects metering data.
-
During the regular agent scan process, the agent consolidates the cloud application metering data with the other inventory data and sends it as a .snowpack file to Snow Atlas via the Snow Extender.
-
The cloud application metering data is processed in Snow Atlas and made available in SAM Core and SaaS.
Snow License Manager
The picture illustrates the cloud application metering architecture for Snow License Manager and the interactions between the components. The figures in the picture correspond with the steps in the process description. The table below gives a summary description of the processes and tasks executed by each component.
Component | Description |
---|---|
Data Intelligence Service (DIS) |
|
Snow Update Service (SUS) |
|
Snow Inventory |
|
Snow Inventory Agent for Windows and macOS |
|
Cloud application metering browser extension |
|
Snow License Manager |
|
Process description: Snow License Manager
The steps of the cloud application metering process for Snow License Manager is described here. Some steps are described in more detail in separate sections.
-
The Data Intelligence Service (DIS) creates the cloud application definitions and ruleset that the Snow Inventory Agent uses to recognize the cloud applications run on the browsers. The definitions and ruleset are continuously developed and updated by DIS.
-
The Snow Update Service (SUS) downloads new and updated data from DIS.
-
SUS distributes updates of the cloud application definitions and ruleset to the Snow Inventory Server and Snow License Manager.
-
The Snow Inventory Server receives the updated cloud application definitions and ruleset and processes it. For a detailed description, see Snow Inventory Server processes data.
-
The Snow Inventory Server makes the cloud application ruleset available to the Snow Inventory Agents for which cloud application metering has been enabled. See Enable the cloud application metering data flow for a description of how to enable the data flow.
-
The agent queries the Snow Inventory Server for pending updates. If the cloud application metering flow has been enabled for the site the computer belongs to, the update task will include the cloud application ruleset, and the agent will download it and store it in the agent directory in one or both of the files named
webmetering.rules
andwebmetering.crules
. -
The agent installs the browser extensions according to the agent configuration. For a detailed description, see Snow Inventory Agent installs browser extensions.
Note that if the cloud application metering flow has not been enabled for the site the computer belongs to, the agent will not install any browser extensions, regardless of the agent configuration.
Note that the Apple Safari browser extension is not installed by the agent. For more information, see Install Apple Safari browser extension.
-
The browser extensions on the computer gather cloud application metering data which is stored locally on the computer. For a detailed description, see Browser extension gathers metering data.
-
The agent collects the cloud application metering data. For a detailed description, see Snow Inventory Agent collects metering data.
-
During the regular agent scan process, the agent consolidates the cloud application metering data with the other inventory data and sends it to the Snow Inventory Server as a .snowpack file.
-
The Snow Inventory Server stores the data in its database. The database view inv.DataCloudMeteringView can be used to review the cloud application metering data in a consolidated format.
-
The cloud application metering data is sent from the Snow Inventory Server to Snow License Manager during the Data Update Job, which by default runs at 9 pm every day.
-
The cloud application metering data is shown in the Cloud section in the Snow License Manager user interface, allowing the user to see cloud application usage and manage relevant licensing aspects.
Step descriptions
Some steps of the overall cloud application metering processes for Snow Atlas and Snow License Manager are described in more detail here.
Snow Inventory Server processes data
This section describes Step 4 of the Snow License Manager process.
The process is carried out by the CloudMeteringModule module, which runs when Snow Inventory Server starts and also at a configurable time interval. The default interval is every 12 hours but can be changed in the Snow Inventory Server configuration file, by setting the property interval of the CloudMeteringModule module.
-
The CloudMeteringModule module checks the
%ProgramData%\SnowSoftware\Inventory\Resources\DIS Rules
folder, where the SUS client downloaded the updated DIS content. -
If .esbt files are found in the folder, the module processes the files, and stores the updated application definitions and rules in the database.
-
The module restarts the configured tasks that publish the updated content to agents.
Snow Inventory Agent installs browser extensions
This section describes:
-
Step 4 of the Snow Atlas process.
-
Step 7 of the Snow License Manager process.
All cloud application metering browser extensions except Apple Safari can be installed by the agent according to the process below.
The Windows service Snow Inventory Agent carries out the process every three minutes.
For macOS, the snowagent cloud command, which is run by the scheduled task defined in the /Library/LaunchDaemons/com.snowsoftware.Cloudmetering.plist
file, carries out the process every five minutes.
-
The agent checks if at least one of the files
webmetering.rules
orwebmetering.crules
is present in the agent installation folder. -
If so, the agent requests the browsers for which the setting saas.[browser].enabled in the agent configuration is set to true to download the browser extension from its store and install it. The installation method depends on the browser and platform combination, as listed in Browser exensions.
Note that saas.[browser].enabled is a placeholder for the supported browser settings, for example, saas.firefox.enabled. To find all supported settings, see Configuration reference.
-
The agent instructs the browser to run the cloudmeteringhost.exe (Windows) or cloudmeteringhost (macOS) process and to allow communication between the extension and the process.
-
The agent converts the rules in the
webmetering.rules
andwebmetering.crules
files to a local file calledcloudmetering.db
, for quicker access to the data.
Note that when the Windows agent is stopped, the browser extensions are uninstalled. When the agent is restarted, the above process is carried out and the extensions are reinstalled if the conditions in steps 1 and 2 are fulfilled.
For macOS, if the webmetering.rules
and webmetering.crules
files are not present in the agent installation folder upon the check in step 1 of the process, any installed browser extensions will be uninstalled.
Browser extension gathers metering data
This section descibes:
-
Step 5 of the Snow Atlas process.
-
Step 8 of the Snow License Manager process.
When the browser extension has been installed on the computer's browser, it carries out the following tasks:
-
The browser extension captures information on web URLs visited by the user on the browser.
-
The browser extension sends all visited URLs to the cloudmeteringhost process.
-
The cloudmeteringhost process saves the URL data, together with user names and time stamps, on the computer in the location shown in Metering data output path, depending on the platform. The information is stored in encrypted form.
For Apple Safari on macOS, there is no cloudmeteringhost process and the browser extension stores the data directly on the computer in the location shown in Metering data output path.
The stored cloud application metering data is collected by the agent according to Snow Inventory Agent collects metering data.
Snow Inventory Agent collects metering data
This section describes:
-
Step 6 of the Snow Atlas process.
-
Step 9 of the Snow License Manager process.
The Windows service Snow Inventory Agent carries out the process every three minutes.
For macOS, the snowagent cloud command, which is run by the scheduled task defined in the /Library/LaunchDaemons/com.snowsoftware.Cloudmetering.plist
file, carries out the process every five minutes.
-
The agent checks the content of the folder in Metering data output path for files generated by the browser extensions.
-
The agent matches the patterns in the files with the webmetering rules in the local
cloudmetering.db
file. -
The agent deletes the files in the folder in Metering data output path immediately after the patterns have been matched.
-
The agent writes an encrypted JSON file in the agent’s
data\web-metering
(Windows) ordata/web-metering
(macOS) folder containing the rule hits.noteThe Windows agent keeps the results in its memory until 50 unique matches have been found. After that, it starts caching matches in the
%ProgramFiles%\SnowSoftware\Inventory\Agent\data\web-metering\cache
folder.A manual agent scan does not flush the memory. To get the same behavior as a scheduled scan, you must stop the agent prior to the scan.
When the agent runs its regular scans, the cloud application metering data is consolidated with the other inventory data into .snowpack files which are sent to the Snow Inventory endpoint (Snow Extender or Snow Inventory Server).
Metering data output path
The table lists the locations where the data gathered by the browser extensions is stored until the agent has processed it, as described in Browser extension gathers metering data and Snow Inventory Agent collects metering data.
Platform | Output path |
---|---|
Windows | %ProgramData%\SnowSoftware\Inventory\Agent\cloudmetering\extension-output |
macOS | Google Chrome, Microsoft Edge, Mozilla Firefox: /Users/Shared/SnowSoftware/Inventory/Agent/cloudmetering/extension-output Apple Safari: In each user's home folder: Library/Containers/com.snowsoftware.snow-web-application-metering.WebApplicationMetering/Data/cloudmetering/extension-output |