1. Product Description

The purpose of SnowMirror Monitor is to provide an overview of your synchronizations directly from ServiceNow instance.

Prerequisite for Monitor to show any data is at least one SnowMirror product up and running in customer’s environment. SnowMirror product handles communication between ServiceNow instance and a target database where customer wants his data to be migrated. This communication runs as a daemon process by SnowMirror product.

Communication with ServiceNow instance is done via web services. Monitor doesn’t need any additional rights to perform it’s job. Rights assigned to user used for SnowMirror product are sufficient.

Monitor watches status of all products connected to the same ServiceNow instance. It uses HeartBeat functionality to monitor server status. HeartBeats are periodically sending response requests to all SnowMirror products and Monitor lets products answer these requests. If answered properly the product status is recognized as "on" and as "off" on the contrary.

Monitor retrieves all synchronization definitions from all products. It provides to user very compact view on the definition itself including all details about scheduler and also also full load scheduler. List of single runs of the definition and also all synchronized columns are listed with each definition.

Monitor stores all runs of all synchronization in one single module. Available filtering makes this list very usable when users seeks for information about particular run.

On top of that Monitor provides various graphs and dashboards for monitoring SnowMirror product performance so user is able to take action whenever necessary.

1.1. Prerequisites

This chapter lists all prerequisites needed before installation of SnowMirror Monitor.

  1. Target customer’s ServiceNow instance up and running.

  2. SnowMirror product installed & setup & running in customer’s environment.

Monitor is not able to retrieve historical data from old synchronization’s runs. It starts loading data at the very moment of setting Monitor "on" in SnowMirror product.

SnowMirror monitor can watch several SnowMirror applications installed on different servers. In order to work correctly those SnowMirror servers have to have different names.

Minimal versions of related software versions:

Service Now

Fuji

SnowMirror

3.0

2. Installation Instructions

Installation process is straight-forward. It consists of two basic steps. It is strongly recommended to keep the order as is:

  1. Load the SnowMirror Monitor Application into ServiceNow instance.

  2. Set up SnowMirror product to communicate with the monitor.

For correct installation of application please follow detailed instructions below. Screenshots below are taken from Geneva ServiceNoc version. They are also valid for Fuji version too, just graphic is very sligtly different.

Installation steps for SnowMirror Monitor application in ServiceNow
  1. Login to ServiceNow instance as a user with rights to install applications / load update set (usually with admin role).

  2. In left navigation pane go to “Update sets" and select "Retrieved update sets

  3. On opened page select option ""Use Related links "Import update sets".

    image

  1. Click on "Browse" to find update set to load.

    image

  1. Find SnowMirror Monitor update set. It is located in SnowMirror’s installation folder. Usually, it is "C:\Program Files\SnowMirror\snow-mirror\monitor". There, there is "SnowMirror Monitor-5.5.9.xml" file. Choose it and click on "Open".

    image

  1. Click on "Upload" and wait until it is fully uploaded.

    image

    Please note that loading of the update set may take some time. After approx. 10sec you can see a timer right next to the logged username indicating that operation is in progress.

    image

  1. When loading is finished a Review Update Set module opens. Open the update set by hitting its name "SnowMirror Monitor".

    image

  1. Review the update set by click on button "Preview Update Set".

    image

  1. A pop-up window with loading progress bar opens. Once finished, click on "Close" to continue.

    image

  1. Click "Commit Update Set".

    image

  2. Click "Commit Update Set". A pop-up window with progress bar opens.

    image

    Commit procedure is finished when a message "Update set committed in x minutes / seconds" appears. Click on "Close" button to finish installation process.

    image

  1. Installation of the monitor itself is finished now. State of the Update Set is now Committed. A new application is visible in the application navigator.

    image

Setup steps in SnowMirror
  1. Login to SnowMirror product as user with rights to modify products settings.

  2. Product go to "Settings" → "ServiceNow" → check box "Advanced Settings".

  3. Check the option “SnowMirror Monitor Enabled” and "Save" the settings.

    image

3. Update Instructions

Update process is pretty straight-forward. The process of upgrading SnowMirror Monitor is the same as installation process.

4. Security Roles

SnowMirror Monitor is an extension for SnowMirror product. Security restrictions applied for product are also sufficient for the monitor. There is no need for any other right to be added to any user in ServiceNow to let Monitor do its job. Monitor starts doing its job when it is installed into ServiceNow and also enabled in product.

In ServiceNow the SnowMirror Monitor application and all its modules is secured by role "SnowMirrorAdmin". Administrators have automatically access to the Monitor. Role SnowMirrorAdmin can be assigned to any user or to any user group. Users with this role or users in a group with this role are able to see whole application and every module in it.

Without this role assigned the ShowMirror Monitor application isn’t either visible or accessible for users.

5. Application Modules

SnowMirror monitor consists of several modules which are all available under "SnowMirror Monitor" application. All modules are available to all users with correct rights assigned.

  1. Overview - SnowMirror performance dashboard

  2. Synchronizations - list of all scheduled & planned synchronizations

  3. Synchronization Runs - list of all runs of all synchronizations

  4. Servers - list of monitored servers

  5. Support - link to information about SnowMirror support

5.1. Synchronizations

In SnowMirror product each table is transferred from ServiceNow to customer’s database separately via its synchronization definition. These definitions are independent on each other.

Each synchronization definition can have multiple parameters. This parameters can differ between single definitions to - for example - split the load to customer’s database in time.

Synchronization of any table from ServiceNow can be configured via the Synchronization definition in SnowMirror product. In the product multiple parameters such as frequency and synchronization time and many others can be set.

Module "Synchronization" offers to user a view on all these definitions. In this module all definitions are visible. If multiple SnowMirror products (servers) are connected to one instance all definitions from all producst are displayed here. Additional information about last definition run is also visible there.

image

5.1.1. Synchronization list

In Service now a list can be customized to show required data. In the table below there is a list of all available details related to the synchronization definition.

Name Description

Status

Status of the last synchronization run

Name

Name of the synchronization definition

Synchronization Definition

Name of the synchronization definition

Next run

Planned date & time of next synchronization

Duration

How long was the last synchronization run

Latest

Indicator which shows if monitor has latest results of the synchronization run

Started On

Time and date of last synchronization run

Sys ID (run_sys_id)

System identification of last synchronization run

Sys ID (def_sys_id)

System identification of synchronization definition

5.1.2. Synchronization form

After opening particular synchronization definition by click on the column "Name" or "Synchronization Definition" a form with all details regarding definition opens. This form as following fields:

image

Name Description

Name

Name of the synchronization definition

ServiceNow Table

The table in SNOW which is being synchronized

Mirror Table

Table in the destination database

Encoded query

The query used for synchronization, only records matching the query criteria are migrated (for example only active users)

Delete strategy

The strategy for recognizing a deleted record in Service Now.

Active

Indicator If this synchronization is used actively

Created By

Which user in SnowMirror application created this definition

Created On

Time and date when this definition was created

Server

SnowMirror application server which handles the synchronization

Synchronization Type

Either table, view or attachment can be synchronized. If view is selected, view synchronization type and master table need to be specified.

Next Run

Time and date of next synchronization run

Section Columns

This section shows information about synchronization strategy related to columns.

image

Name Description

Reference field type

Type of foreign keys reference between SNOW table and destination table

Auto Schema Update

If true, it automatically updates table structure in the mirror database.

Allow Inherited columns

If true, columns can be inherited from its parent table.

Section Scheduler

Displays the incremental scheduler settings for current synchronization. Incremental scheduler usually runs more often than full load scheduler as it migrates only the newly added data.

Type, begin date and time field are available for all different types of scheduler. Other field differs by selected Scheduler type. In the table below they are all available fields. If field is specific for some type it is distinguish with [scheduler_type].

image

Name Description

Scheduler Type

How the scheduler triggers synchronization

Scheduler Begin Date

When the synchronization begins

Scheduler Time

Time of synchronization beginning

[Weekly] Monday / Tuesday / Wednesday / Thursday / Friday / Saturday / Sunday

The day of week when synchronization occurs

[Periodically] Scheduler Interval

Interval (in minutes) when synchronization occurs

[Cron] Scheduler cron

Cron job specification when synchronization occurs

Section Full Load Scheduler

Displays the settings for the full load scheduler list. It usually runs less often than the normal scheduler because it downloads all the data at one time and synchronize them.

The fields are the same as on the normal scheduler related list. Just names of the fields have prefix "Full Load".

image

Section SnowMirror Synchronization Runs

This list displays all runs of the synchronization. For description of Synchronization Runs see appropriate chapter in this document.

image

Section Synchronized Columns

This list displays columns that are being synchronized with this synchronization definition. Column manes and types visible in this list corresponds to source columns in the ServiceNow instance.

image

5.2. Synchronization runs

Depending on definition and its parameters any synchronization can be run multiple times a day / week. Each synchronization run can result into either successfully migrated records or into a failure. The result of each run of synchronization definition is stored in the Synchronization run module with a lot of related details.

Module "Synchronization runs" offers to user a view on all runs of all definitions from all products / servers. As default view layout in this list a user can see status (result) it the run, its name, starting and ending time and also how many records was inserted, updated and deleted in this particular run.

Numerous additional information such as synchronization start date and end date, duration of the run, logs and who started the run and many more are available here.

image

5.2.1. Synchronization runs list

As usual in Service now this list can be customized to show required data. In the table below there is a list of all available details related to the synchronization run.

Name Description

Status

Status of the last synchronization run

Started On

Time and date of last run’s start

Started by

Who started last run

Ended On

Time and date of last run’s end

Duration

Duration of the last run

Latest

Indicator which shows if monitor has latest results of the synchronization run

Inserted

Count of newly inserted records

Updated(updated)

Count of updated records

Deleted

Count of deleted records

Total

Count of total migrated records during last run

Created

Time and date when run was created

Created by

Who created the synchronization

Log

Detailed XML formatted log of last run

Log HTML

Detailed HTML formatted log of the last run

Scheduled Start

Time and date of first run of the definition

SnowMirror ID

Synchronization run ID in SnowMirror application

Started by

Who has started the run

Synchronization Definition

Name of synchronization definition used for this run

Name (Synchronization Definition Name)

Name of synchronization definition used for this run

Server (Synchronization Definition Server)

Name of SnowMirror server used for this run

Tags

Associated tags

URL

URL of the log from last run

Updated(sys_updated_on)

Time and date of last update of this run

Updated by

Who has updated this run

Updates

How many times was this run updated

5.2.2. Synchronization runs form

After opening particular synchronization run by click on the column "Status" a form with all details regarding run opens. This form as following fields:

image

Name Description

Status

Status of the last synchronization run

Scheduled Start

Time and date of first run of the definition

Started by

Who started last run

Duration

Duration of the last run

Ended On

Time and date of last run’s end

Started On

Time and date of last run’s start

URL

URL of the log from last run

Inserted

Count of newly inserted records

Updated

Count of updated records

Deleted

Count of deleted records

Total

Count of total migrated records during last run

Synchronization Definition

Name of synchronization definition used for this run

Log HTML

Detailed HTML formatted log of the last run

5.3. Servers

After the SnowMirror Monitor is installed in customer’s ServiceNow instance, it automatically discovers all SnowMirror products which are configured to connect to the instance and that are configured to use the Monitor. Communication between all products and monitor starts automatically right after seokrver is discovered.

Monitor reads all available information from each SnowMirror application. For every product it reads state of the server such us version of product installed, version of the operating system, databases and others. Additional information about how long is it running, last seen time and product URL is also available. and others and all synchronization definitions. Monitor doesn’t read any historical records for synchronization runs.

Module "Servers" offers to user on all customer’s SnowMirror servers. It monitors their status - if they are up or down. It also gets version of installed SnowMirror application, installed operating system, how log they were up and many others.

image

5.3.1. Servers list

As usual in Service now this list can be customized to show required data. In the table below there is a list of all available details related to the servers.

Field name Description

Name

Name of the server

Version

Version number of SnowMirror server application

Status

Status of the SnowMirror server, updated by HeartBeat functionality

Start Time

Time and date when server has started

Uptime

How long was (is) server running

Last seen

Time and date when last response was obtained from the HeartBeat request

URL

URL of the SnowMirror application server

Configuration database

Type of configuration database for the SnowMirror application

Created

Time and date when server was registered by SnowMirror monitor

Created by

Who registered the server into monitor

JRE version

Version of the Java Runtime Environment

OS Name

Type of operating system on running on SnowMirror server

Last Refreshed

Time and date when server details were updated as last

Mirror database

Type of the database in which the data are stored

Tags

Associated tags

Updated

Time and date of last update of this server

Updated by

Who has updated this server

Updates

How many times was this server updated

5.3.2. Server form

After opening particular server by click on the column "Name" a form with all details regarding the server opens. This form as following fields:

image

Field name Description

Name

Name of the server

Status

Status of the SnowMirror server, updated by HeartBeat functionality

Version

Version number of SnowMirror server application

Uptime

How long was (is) server running

Last seen

Time and date when last response was obtained from the HeartBeat request

URL

URL of the SnowMirror application server

OS Name

Type of operating system on running on SnowMirror server

JRE version

Version of the Java Runtime Environment

Configuration database

Type of configuration database for the SnowMirror application

Mirror database

Type of the database in which the data are stored

Section Synchronization Definitions

This list displays all synchronization definitions defined on the server. For description of Synchronization Definifions (Synchronizations) see appropriate chapter in this document.

image

5.4. Support

Support for SnowMirror Monitor is provided by SnowMirror product team. This module is an URL pointing to SnowMirror product Support page. On this page there are available links for downloads of new versions of SnowMirror product, links to frequently asked questions and video manuals as well as documentation. Also contact information and form for submitting questions and comments is available on the Support page.

6. SnowMirror performance dashboards

Several dashboards are available in SnowMirror Monitor. These dashboards help users to have quick overview about servers, synchronizations, runs and all related successes and errors. Available dashboards are:

  1. Overview - general dashboard provides compact overview on all SnowMirror related tasks

  2. Synchronization dashboard - provides compact overview on synchronizations

  3. Server overview dashboard - provides compact overview on servers

6.1. Overview dashboard

This dashboard is displayed immediately, as the application homepage and as first application module called "Overview". It shows following gauges:

  1. Synchronizations By Duration - total time elapses by successful and failed synchronization runs grouped by days.

  2. Migrated Records Per Day - trend graph of all migrated records over time split by performed action - insert, update, delete

  3. Upcoming Synchronizations - list of all synchronization runs which are planned for execution.

  4. Last Synchronizations - list of all synchronization runs completed less than 12 hours ago.

  5. Failed Synchronizations - list of all synchronization runs with a status "failed" completed less than 12 hours ago.

6.1.1. Gauge Synchronizations By Duration

This gauge graph ìs showing total time elapses by successful and failed synchronization runs grouped by days. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to perform all successful or failed.

image

6.1.2. Gauge Migrated Records Per Day

This gauge trend graph shows total amount of records that were inserted or updated or deleted during particular day. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to either insert, update or delete records.

image

6.1.3. Gauge Upcoming synchronizations

This gauge list shows all synchronizations that are planned for execution for all products in upcoming 12 hours. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.1.4. Gauge Last synchronizations

This gauge list shows all synchronizations from all products that were executed in last 12 hours. It shows successful ones as well as failed ones. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.1.5. Gauge Failed synchronizations

This gauge list shows only failed synchronizations from all products that were executed in last 12 hours. It is only a subset of last synchronization visible in different gauge. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.2. Synchronization dashboard

This dashboard provides an overview and statistics for a specific synchronization definition. It cannot be accessed directly from the navigation menu but only by selecting it for particular synchronization definition. This dashboard can be accessed by right mouse button click on Synchronization Name (or Name) column and choosing the option "Synchronization dashboard". This way can be used from Overview dashboard and Server - Last, Failed and Upcoming Synchronization Runs as well as list of synchronization definitions.

image

Following gauges are included on this dashboard:

  1. Synchronization Runs By Duration - total time elapses by successful and failed runs of this synchronization grouped by days.

  2. Migrated Records Per Synchronization - trend graph of all migrated records by this synchronization over time split by performed action - insert, update, delete - grouped by days.

  3. Upcoming Synchronization Runs - list of all runs of this synchronization which are planned for execution.

  4. Last Synchronization Runs - list of all runs of this synchronization completed less than 12 hours ago.

  5. Failed Synchronization Runs - list of all runs of this synchronization with a status "failed" completed less than 12 hours ago.

6.2.1. Gauge Synchronization Runs By Duration

This gauge graph ìs showing total time elapses by successful and failed runs of this synchronization grouped by days. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to perform all successful or failed.

image

6.2.2. Gauge Migrated Records Per Synchronization

This gauge trend graph shows total amount of records that were inserted or updated or deleted during particular day by this synchronization definition. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to either insert, update or delete records.

image

6.2.3. Gauge Upcoming Synchronization Runs

This gauge list shows all runs of this synchronization definition that are planned for execution in upcoming 12 hours. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.2.4. Gauge Last Synchronization Runs

This gauge list shows all runs of this synchronization definition that were executed in last 12 hours. It shows successful ones as well as failed ones. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.2.5. Gauge Failed Synchronization Runs

This gauge list shows only failed runs if this synchronization that were executed in last 12 hours. It is only a subset of last synchronization visible in different gauge. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.3. Server dashboard

This dashboard provides an overview and statistics for a specific product (server). It cannot be accessed directly from the navigation menu but only by selecting it for particular server. This dashboard can be accessed by right mouse button click on Name (Server) column and choosing the option "Server dashboard". This way can be used from Server module as well as from list of synchronization definitions.

image

  1. Server Synchronizations By Duration - total time elapses by successful and failed synchronization runs on this server grouped by days.

  2. Migrated Records By Server - trend graph of all migrated records on this server over time split by performed action - insert, update, delete - grouped by days.

  3. Upcoming Synchronizations By Server - list of all synchronizations runs on this server which are planned for execution.

  4. Last Synchronizations By Server - list of all synchronizations runs on this server completed less than 12 hours ago.

  5. Failed Synchronizations By Server - list of all synchronizations runs on this server with a status "failed" completed less than 12 hours ago.

6.3.1. Gauge Server Synchronizations By Duration

This gauge graph ìs showing total time elapses by successful and failed runs on this server grouped by days. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to perform all successful or failed.

image

6.3.2. Gauge Migrated Records By Server

This gauge trend graph shows total amount of records that were inserted or updated or deleted during particular day on this server. As an additional useful information to the total time it also shows - as visible on the picture - percentage statistics how long (in total) takes in one day to either insert, update or delete records.

image

6.3.3. Gauge Upcoming Synchronization Runs

This gauge list shows all synchronizations runs on this server that are planned for execution in upcoming 12 hours. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.3.4. Gauge Last Synchronizations By Server

This gauge list shows all synchronizations runs on this server that were executed in last 12 hours. It shows successful ones as well as failed ones. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

6.3.5. Gauge Failed Synchronization By Server

This gauge list shows only failed synchronizations runs on this server that were executed in last 12 hours. It is only a subset of last synchronization visible in different gauge. Left click on Status column opens last synchronization run form with details of the run. Left click on column Name opens synchronization definition form. Using right click on column Name offers an option to open Synchronization dashboard.

image

7. Custom graph

You can add custom graph to the dashboard following these steps.

  1. Navigate to the desired dashboard and click on "Create Dashboard Version"
    image

  2. Select "Create new dashboard".
    image

  3. Click on (+), select "Reports" in Widget Category and continue with "New Report" option.
    image

  4. Fill "Report name" and select desired "Table".
    image

  5. Select preferred graph category.
    image

  6. Update graph configuration based on your preferences.
    image

  7. You can modify visual part of the graph.
    image

  8. Finally add your graph to the dashboard using "Share" button and "Add to Dashboard" option.
    image

8. Maintenance

8.1. Delete Data

since 4.10.0 There are certain situations, where you need to delete all data from SnowMirror Monitor. Imagine you migrated SnowMirror installation from one server to another and now you see all your synchronizations twice. Please follow the following steps to clean up and re-populate data:

  1. SnowMirror: Turn off SnowMirror Monitor on Settings → ServiceNow page.

  2. SnowMirror: Manually connect to your configuration database and cleanup SnowMirror Monitor queue: delete from sncPlugin;

  3. SnowMirror: Open SnowMirror installation folder and find a file snow-mirror/monitor/deleteData.txt

  4. ServiceNow: Login to your ServiceNow instance as an admin and open "Scripts - Background" page. Copy-paste the content of deleteData.txt file and run it.

  5. SnowMirror: Turn on SnowMirror Monitor on Settings → ServiceNow page. SnowMirror will re-populate the data into SnowMirror Monitor.

9. Release Notes

Version Date Remarks

5.5.9

January 4, 2024

  • Fixed: a large activity log may have not been processed and attached to its synchronization run.

3.6.0

February 10, 2017

  • Reworked internals.

3.1.6

January 19, 2016

  • Using a new application scope - x_awns_smm instead of "x_gvs_smp".

  • Fixed: uploaded activity logs were not processed

3.1.2

December 21, 2015

  • Minor changes to support Geneva ServiceNow release.

  • Introduces module link Support.

  • Unified naming conventions across monitor.

  • Fixed problem with multiple products (servers) connected to one instance.

  • Fixed problem with changing scheduler and setting up next run.

1.4

November 13, 2015

  • Fixed problem with different list of upcoming synchronizations.

  • Fixed problem with empty form for synchronization run.

  • Improvements for obtaining synchronization definitions.

  • Delete action forbidden for definitions and runs.

  • Fixed problem with not displaying all synchronization runs.

  • Fixed problem when synchronization definition was renamed.

  • Fixed problem with rendering run details.

  • Fixed problem with displaying last synchronizations.

  • Documentation improvements.

1.0

February 17, 2014

  • Initial version.