Administration & Troubleshooting
The PreEmptive Analytics Workbench™ is server and browser software that accepts, processes, transforms, and aggregates analytics messages for display in a web browser. It is highly configurable and customizable so that it can provide role-based, real-time visibility into application usage, adoption, user behavior and software quality.
The Workbench is composed of a number of components, together providing a data-processing pipeline and a data-rendering pipeline, each of which are easily customizable. The system includes IIS web services and websites, a Windows service, and a browser-side web application. It uses RabbitMQ for message queuing and MongoDB for data storage.
The Endpoint Web Service is an Internet Information Services (IIS) web service that is responsible for accepting incoming HTTP requests from clients (typically via a PreEmptive Analytics Data Hub™ installed on the same host, which is receiving data from a public endpoint). These messages are queued in the RabbitMQ instance for later processing by the Computation Service.
The third-party RabbitMQ instance is used to store messages on disk before they are processed. This component includes a queue for incoming messages, and a queue for messages that were not successfully processed by the Computation Service.
The Computation Service is a Windows Service that processes queued messages using a highly-tuned data-processing engine. The Computation Service can be customized via "Custom Indexers" that plug into the data-processing pipeline. It can also pull in data from other sources (e.g. geolocation, or a customer database) and include that data in the aggregation results. The Computation Service maintains a time-limited cache of data-processing state in MongoDB, so that it can aggregate data from multiple messages. The result of the data processing is stored in long-term storage, also in MongoDB, where it is available for queries.
The third-party MongoDB database is used to provide highly-flexible storage for aggregated data, which is exposed to user-facing applications via the Query Web Service.
The Query Web Service is a web service that provides an API for retrieving aggregated data from MongoDB. It can be customized via custom Server Query definitions, to make data from Custom Indexers available to user-facing applications.
The Portal Website includes both the basic layout and design of the user-facing Portal, and a browser-side web application that is responsible for querying data from the Query Web Service, further summarizing that data (via aggregation and transformation), and rendering it as widgets and reports. This rendering pipeline is also highly customizable, via simple JSON files and the integrated Vega data transformation engine.
The Share Service (not shown in the diagram) is a web service that provides the back-end for a feature of the Portal, where it generates a permanent URL for a given report and filter settings. The Share Service generates and stores that URL in MongoDB.