Archiving: Reporting Server
You can now set up a GpsGate Server dedicated to processing and generating Reports based on data from another server.
Instead of setting up report generation on the same server that receives the live data, you can use Archiving to set up daily export of this data to another server. Delegating report generation to another server should reduce the load on the live server and improve its performance.
See Archiving: Application Migration for installation instructions and details on latest Archiving improvements.
Setting up a Reporting Server
From here on, we will refer to the two servers as the live server and the reporting server.
On the reporting server…
Make sure that the reporting server has all the plugins that are installed on the live server and that their versions are kept in sync.
Any custom variables created on the live server should be created on the reporting server as well.
On the live server…
Set up a new Export Rule via SiteAdmin > Archiving > Export Rules > Add Rule. Choose a Scheduled Export Rule to set up daily export of data.
Specify the name of the rule and Application Tags that define which applications are taken into account when exporting data.
On the Export Rule settings page, check the Direct option in Destination settings. When you choose this option, an ExportRuleKey will be generated.
When configuring the Export Rule, make sure to leave the Export Application Data, Export Tracks and Export Users options checked.
Tracks will be exported from specified Export From Date onwards.
Do not save the Export Rule yet!
Back on the reporting sever…
Create a new Import Rule on the destination server via SiteAdmin > Archiving > Import > New.
After specifying the rule name, select the Direct option in the Source section of the Import Rule.
Now copy the ExportRuleKey generated in the Export Rule on the live server to the ExportRuleKey field of this Import Rule.
Leave the Use Licenses option unchecked - you only want to copy users here for report generation purposes.
Uncheck the Import Reports option, as you want to control which reports are available on which server. It is advisable to create reports directly on the reporting server.
If you want to move a report from the live server to the new reporting server, you can export the report definition to an xml template file and import it back on the reporting server. You can then reconfigure the report in necessary applications, remove it from the live server and schedule it on the reporting server, ensuring that reports are consistent and sent only once.
Set the Application Tags in the Import Rule to denote that reports in applications in those tags depend on this Import Rule. This ensures that those reports will not be processed or sent until the daily import is complete.
Make sure to have the Import Tracks option checked and set the period for which you want to import track data - only reports for this period will have valid data.
Now you can save the Import Rule.
Back on the live sever…
Specify the Path to the destination server and click Test to ensure that it works as expected.
Set Daily Execution Time in the Export Rule. This is when the updates to tracks, applications and users will be exported to the Reporting server.
Now you can save the Export Rule. Make sure to enable it by clicking on its slider in the Scheduled Export Rules list.
Note that the export may take some time, especially the first one when there can be many days of tracks to export at once. After the transfer is complete, any delayed Reporting jobs will be triggered again.
Multiple Live/Reporting Servers
By following these instructions you could also configure multiple reporting servers to receive data from a single live server, reducing the load on each of the reporting servers further.
On the live server, set up an Export Rule for each of the reporting servers (each with matching Import Rule), and have each Export Rule covering different Application Tags or each reporting server configured to process different groups of reports.
Alternatively, you could set up a reporting server to collect the data from multiple live servers.
On the reporting server, set up an Import Rule for each of the live servers (each with matching Export Rule). Remember to carefully consider how to handle username collisions in this case.