fuze insight administration guide
TRANSCRIPT
11/10/2015
Fuze InsightAdministration Guide
High-level Architecture
Fuze InsightWeb Application Package
DatabaseWeb
Browser
Scheduler & File Threads
Data Importer Processes(e.g. Fuze Pipeline)
Data Store Tables
Application Tables
qInstall pre-‐requisite productsqCreate SQL tables from scriptqEnsure that base object types (data insert script) are installedqCreate and deploy fuzeinsight2.properties fileqDeploy & customise Fuze Insight configuration filesqDeploy WAR file (or copy unzipped files into app server as preferred)qStart serverqCheck that system starts by monitoring log file (e.g. catalina.out)qOnce system is working switch configuration log level to WARN or ERROR to keep log file size to a minimum
Installation Checklist
qCreate a new instance (runmode in configuration should be cloud)qLog into new instance and edit emails for new accounts and usersqCreate your object types to use (or use the quick start to create for you)
System Configuration Checklist
Object Management
• Describe a ‘thing’ in the Fuze Insight systemBased on a• Person, Object, Location, Event, File
• Used to create ‘Instances’ of things.• Instances have a unique record in the database
• Types can have a unique dashboard layout and also be mapped to custom UI (user interface) classes
Object Types
• Access function from the Object Types administration menu item
• Click the Add Type button to create a new object type
Object Type Creation
Unique name is used in scripts and other programming languagesIt cannot contain spaces.
Description is used to display information about this Object Typeon the user interface (what the user sees).
Base type is used for semantic analysis. Is the thing an event ora person for example. Standard for physical or conceptual things is Object
• Select an Object Type from the list and settings are shown at right side of the application screen
Object Type Configuration
Unique name used in scripts and other programming languages
Description shown to users
Root Object is shown as parent in navigation tree view
Child Object is shown as quick add in “add new object” function
Force custom dashboard display to top of Dashboard view
Automatically show files view when opening object of this type
Hide functionality for managing files on this object type
Default icon to show for objects of this type
Custom view class (Java) to show for objects of this type
Object Type Config. (cont’d)
Delete object type (must have no instances)
Block numbering for streaming and distributed operations
• Shown at left side of screen• Arranges by instance of Root object types
Navigation View
Create New button shows:
Root object types (creates an instance of this type)Custom… (allows creation of ANY object type)Child object types (creates an instance of the type)
When creating custom and child object types a parent shouldbe selected first to automatically create a child-‐>parent relationship. If not then the created object will be an ‘orphan’ and can be found by searching for it using the search function
Default Object View
System Dashboard ViewSecurity groups (admin) Refresh
Admin Options
Tags on object
History events
Parents & Children
Attributes on object
Object Admin Options
Edit object description & allocate to data store
Re-‐classify the object’s type
Add an attribute to the object
Edit the location information for object using UI
Manage dashboard layout for custom visualisation scripts
Delete the object from the system
• Attributes are name-‐>value pairs attached to individual object instances.• String (Text)• Integer• Long• Double• Date Time
• Attributes are used to store additional information against an object that can be used visually (e.g. an address) or through code (e.g. through scripts or Java extensions)• To manually edit an attributes value, double click it on the object view
Object Attributes
Object Search
Base Type filter
Specific Type filter Description filter Search results view. Select one or more rows
Open selected object
Change selection type
Quick Field Editor. Single or batch mode.
User Management
User Invite Process
Create Security Group (SG)
Add SG to Objects
Add User to Instance
Add User to SG
• A security group is a collection of users that have access to an object• Each object can have multiple security groups• Security groups are applied at a singular object level (system will automatically apply to new and child objects)
Security Groups
Managing a Security Group
Add a new groupAvailable groups. Click to show edit options
Name for system (no spaces)
Description (shown in UI)
Enable clear & delete
Remove group from objects
Delete group
Pick user from list then remove
Find specific user (click when blank for all)
Pick user from list then add to group
Managing Users
Invite a New User Available users to allocate in system
Pick a user to display edit options on right
Admin or System Admin flags
Admin can make changes to system such as delete, create
Sys Admin can change look and feel plus power user admin functions
• When a user is invited to your instance the following takes place• If they are not already registered in another instance they are sent an email with their new login and password details• If they are already members of another instance they have a login and password already and won’t receive this email
• They are sent an email explaining that they have been added to your instance
• The email templates are edited through the email manager
What happens when a user is invited?
Data Management
How is data mapped
Data Store
Contains actual time-‐series data values
Header TableUnique Reference
Time Series TableDate/Time stampCustom Fields
INSTANCEID_TABLENAME (_header, _ts)
Object Instance
Reference Attributedataref
Data StoreMapped in object
settings
Data Store Manager
Create a new store Delete selected store View references not mapped to an object
View objects not mapped to a parent
Add a new field to data store Fields stored in time-‐
series tableDefault unit of measurement (can be overridden per object)
Managing Orphan References
Select reference(s) – Must be highlighted
Drag & Drop selection onto an object type
This will automatically map the data storeto a new object and create the reference attribute
It will name the object based on the datareference.
This function is used to automatically map data to a new object in the systemIt ‘on boards’ or ‘commissions’ a new device from existing data records
Managing Orphan Objects
This function is used to automatically list objects that are mapped to the selected data storebut are not yet joined to another object. It is used to easily display devices in the navigation view tree.
Select Object (highlight it blue)
Drag it and drop onto a parent in the navigation tree to link them. It will vanish from the orphaned objects list.
Process for adding new data device
Add Data to Store • Use Add Data function manually• Inject data records automatically to database table
Map Reference to Object Type
• Use Orphaned Reference function
• Manually create an object, map data store, add datarefattribute
Map Object To Parent Container
object (e.g customer or project)
•Quick way to map a device to the navigation view
Inserting data manually
First time – maps a CSV file format to a data store
Repeat – Processes 1+ CSV files using existing template.
Build CSV Template
Data store to put data into
Paste a small sample of your CSV data into this box to visualise the extraction.
Choose to get header reference:Fixed valueFrom specific row,col of CSV Data format used in CSV rows
Ignore rows starting with chars
CSV separator character
First data row (starts at 0)
Builds data preview (2)
Choose which fields to map columns into. Includes timestamp and data reference unique id
Data preview shows dataIn row & column view
Adds data from the preview into the data store (use to test)
Saves this configuration as a template for re-‐use
Process CSV files from template
Select a saved template from the drop down list
Drag and drop one or more files onto the yellow (dotted outline) box.
After processing an email will be sent to you explaining success or errors during the import
Wait for files to process before closing
Import is slower than using external processes to prevent impact on other users of the web interface
Tick to enable delete function – then delete selected template
• To automatically add data to the system you can write directly to the data tables in the database schema from another process• Data is abstracted from the system – store anything• Header record must be unique – e.g. serial number• Header reference maps to time-‐series table records (unique timestamp makes row plus custom fields for each entry)
• Create Data Stores through the Fuze Insight UI• Will update the tables in the database schema
Inserting data automatically
Developers
• This document contains an overview of the development options in Fuze Insight• More detail is available from the Developers Guide document (including class documentation in JavaDoc format and samples)
• Two options are available:• JavaScript to create dashboard widgets, reports and scheduled jobs• Java to create fully customisable UI extensions to add user functionality to the system around its architecture
Overview of developer options
ScriptingManager
• JavaScript sandbox engine built into Fuze Insight• Allows custom visualisations in object dashboards• Builds global reports• Schedule automated jobs
• Can access objects and data through API• Access to classes restricted through configuration file• Extend the classes list to allow access to your own Java classes from scripts for integration with other systems
Scripting Overview
Script Editor
Create a new script
Select an entry in list to enable edit functions
Code Editor
Sets the date the script will run at.Allows you to run as though at historic or even future dates.
Saves script currently in editor Runs current script in editor
Script Properties
System name of this script
Description shown in UI
Modes that the script can operate in:Global Report (REPORT) appears in reports dropdown for adminsType Specific (not yet implemented) – shows as report for specific typesDisplay as Widget (WIDGET) appears in object type dashboards
Script Scheduling
Set to run monthly at Hour of day (UTC) on a specific day of a month
Choose to run daily (choose days)
Hour of day to run the script at (daily or monthly)
Choose to run script hourly (24x7)
More advanced scheduling of scripts & jobs can be achieved through the Fuze Pipeline & Nucleus products
• When a script is run there are a number of prebuilt variables available in the JavaScript engine:• container
• An instance of InsightContainer from the Fuze Insight API containing• otm – An instance of the ObjectTypeManager class used to work with object types• om – An instance of the ObjectManager class used to work with objects• dsm -‐ An instance of the DataStoreManager class used to work with data stores• cm – An instance of the InsightContentManager class used to load chunks of content for reuse (this allow you to externalise content used in reports, widgets and other jobs and to support multiple languages etc).
• It is also possible to work with a number of other classes such as date/times and JSON calls. These supported classes are defined in the Fuze Insight configuration and can be customised as needed.
Script Variables
UI CustomisationDevelopment
• Add Vaadin libraries to your project classpath• Add a reference to the fuzeinsight-‐api.jar in your project classpath• Derive a new class from the FuzeInsightObjectView class• Implement default methods with your custom functionality• Deploy JAR file to your Fuze Insight deployment• Add mapping to your custom class to the configuration file in Fuze Insight• Restart the application server• You can now map object types to show your custom UI class in the object types editor
Making a custom UI class
Sample of inherited class
Here is the extends definition to enable your class to act as a UI customisation