1.4.2. Business KPI reporting enabler
1.4.2.1. Introduction
All valuable for log and time-series analytics or Key Performance Indicators (KPIs) desired by the end-user should be available for representation in graphs, charts, pies, etc. The Business KPI enabler will allow to embed them as User Interfaces (UIs) within the tactile dashboard. It will facilitate the visualization and combination of charts, tables, and other visualization graphs in order to search for hidden insights.
The enabler is a simplified version of Kibana . Therefore, it follows the similar architecture. To sum up, it is composed of a server component containing the business logic engine, accompanied with a UI component that defines the graphical UI that users interact with, and a Command Line Interface (CLI) tool especially designed for developers.
1.4.2.2. Features
The following figure presents the architectural diagram of video augmentation enabler and inside components.
As it can be seen, it will be mainly formed by four components:
Business KPI Server: Collects data from data collectors (e.g., tactile dashboard PUI9 database, LTSE, or EDBE enablers) into a dedicated database and provides access to it to the UI and CLI components via an internal REST API.
Plugins: Business KPI functionalities are implemented through modular plugins (Discover, Tag, Lens, Maps, etc.), which contain the business logic and communicate with the UI and CLI components, based on the data collected in the Business KPI server. Furthermore, if will, custom plugins can also be easily integrated if needed, thanks to having a modular approach.
Business KPI UI: When the end-user accesses the Business KPI enabler via the Tactile Dashboard webpage, the UI component loads all server plugins that comprise the core functionalities of the Business KPI enabler. Hence, the UI component provides an editor to create and explore interactive visualizations and a set of functionalities to arrange the visualizations according to ASSIST-IoT end-user goals.
Business KPI CLI: The CLI component enables custom plugins built by 3rd party developers to interact with the Business KPI Server, so that it is reachable from the UI to e.g., provide new data aggregation methods, or to visualize new chart types, colour palettes, etc.
1.4.2.3. Place in architecture
Business KPI reporting enabler is located in the Application and Service layer of the ASSIST-IoT architecture that provides application logic, including data visualisation and user interaction services, data analytics capabilities, various kinds of data protection support, and data management logic.
1.4.2.4. User guide
Note: This user guide follows the Quick start guide from Kibana documentation page.
1.4.2.4.1. Set up the installation
Go to the Instalattion section
1.4.2.4.2. Add sample data
Sample data sets come with sample visualizations, dashboards, and more to help you explore Business KPI enabler before you ingest or add your own data.
On the home page, click Add data.
1.4.2.4.3. Explore the data
Discover displays the data in an interactive histogram that shows the distribution of data, or documents, over time, and a table that lists the fields for each document that matches the data view. To view a subset of the documents, you can apply filters to the data, and customize the table to display only the fields you want to explore.
Open the main menu, then click Discover.
Change the time filter to e.g., Last 7 days.
To explore a specific filtered data, you can use of the KQL search field:
products.taxless_price >= 60 and category : Women's Clothing
To view only the data categories that contain a specific filtered data, hover over the category field, then click +.
1.4.2.4.4. View and analyze the data
A dashboard is a collection of panels that you can use to view and analyze the data. Panels contain visualizations, interactive controls, text, and more.
Open the main menu, then click Dashboard.
1.4.2.4.5. Create a visualization panel
Create a treemap panel that shows additional context information (such as top sales regions and manufacturers), then add the panel to the dashboard.
In the toolbar, click Edit.
On the dashboard, click Create visualization.
In the drag-and-drop visualization editor, open the Visualization type dropdown, then select Treemap.
Click save and return.
1.4.2.4.6. Filter the data
To view a subset of the data, you can apply filters to the dashboard panels. Apply a filter to view e.g., women’s clothing data generated on a specific day from a specific manufacturer.
Click Add filter.
From the Field dropdown, select filtered parameter.
From the Operator dropdown, select is.
From the Value dropdown, select the desired value.
Click Save.
1.4.2.4.7. REST API endpoints
The currently supported REST API endpoints are listed below:
Method |
Endpoint |
Description |
Payload (if needed) |
Response format |
|---|---|---|---|---|
POST |
/api/spaces/ |
Create a Business KPI space_name |
<space_name> |
|
GET |
/api/spaces/ |
Retrieve a Business KPI space_name |
<space_name> |
|
DELETE |
/api/spaces/ |
Delete a Business KPI space_name |
<space_name> |
|
POST |
/api/data_views/ |
Create a data view with a custom title (JSON file) |
<data_view> |
|
POST |
/api/saved_objects/data-view/ |
Update <my-view> data view (JSON file) |
<my-view> |
|
GET |
/api/data_views/data_view/ |
Retrieve the data view <my-view> |
<my-view> |
|
DELETE |
/api/data_views/data_view/ |
Delete a data view <my-view> |
<my-view> |
1.4.2.5. Prerequisites
Kubernetes >= 1.14
Helm >= 2.17.0
1.4.2.6. Installation
1.4.2.6.1. Installing the chart
The enabler is provided as a Helm chart. To install the chart with the release name my-BKPI:
helm install my-BKPI BKPI
The command deploys a Kibana helm chart on the Kubernetes cluster in the default configuration. The Configuration section lists the parameters that can be configured during installation.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
helm install my-BKPI -f values.yaml BKPI
1.4.2.6.2. Verification / Visualization
List all releases using helm list
1.4.2.6.3. Uninstalling the Chart
To uninstall/delete the my-BKPI deployment:
helm delete my-BKPI
1.4.2.7. Configuration options
1.4.2.8. Developer guide
The following options are supported for the set up of the Business KPI enabler Helm chart:
Parameter |
Description |
Default |
|---|---|---|
|
Configurable affinity |
{} |
|
Configurable annotations on the deployment object |
{} |
|
Whether or not to automount the service account token in the Pod |
true |
|
The URLs used to connect to Elasticsearch |
|
|
Templatable string to be passed to the environment from variables which will be appended to the envFrom: definition for the container |
[] |
|
Templatable string of additional containers to be passed to the tpl function |
[] |
|
Extra environment variables which will be appended to the env: definition for the container |
see values.yaml |
|
Templatable string of additional containers to be passed to the tpl function |
[] |
|
Configuration for additional volumeMounts |
[] |
|
Configuration for additional volumes |
[] |
|
Overrides the full name of the resources. If not set the name will default to ” .Release.Name - .Values.nameOverride orChart.Name “ |
“” |
|
The path used for the readinessProbe to check that Kibana is ready. If you are setting server.basePath you will also need to update this to /${basePath}/app/kibana |
/app/kibana |
|
Configurable hostAliases |
[] |
|
The http port that Kubernetes will use for the healthchecks and the service |
5601 |
|
The Kubernetes imagePullPolicy value |
IfNotPresent |
|
Configuration for imagePullSecrets so that you can use a private registry for your image |
[] |
|
The Kibana Docker image tag |
7.17.3 |
|
The Kibana Docker image |
docker.elastic.co/kibana/kibana |
|
Configurable ingress to expose the Kibana service. |
see values.yaml |
|
Allows you to add any config files in /usr/share/kibana/config/ such as kibana.yml See values.yaml for an example of the formatting |
{} |
|
Configurable labels applied to all Kibana pods |
{} |
|
Allows you to add lifecycle hooks. See values.yaml for an example of the formatting |
{} |
|
Overrides the chart name for resources. If not set the name will default to .Chart.Name |
“” |
|
Configurable nodeSelector so that you can target specific nodes for your Kibana instances |
{} |
|
Configurable annotations applied to all Kibana pods |
{} |
|
Allows you to set the securityControl for the pod |
see values.yaml |
|
The name of the PriorityClass. No default is supplied as the PriorityClass must be created first |
“” |
|
The protocol that will be used for the readinessProbe. Change this to https if you have server.ssl.enabled: true set |
http |
|
Configuration for the readiness probe |
see values.yaml |
|
Kubernetes replica count for the Deployment (i.e. how many pods) |
1 |
|
Allows you to set the resources for the Deployment |
see values.yaml |
|
Allows you easily mount a secret as a file inside the Deployment. Useful for mounting certificates and other secrets. See for an example |
[] |
|
Allows you to set the securityContext for the container |
see values.yaml |
|
The server.host Kibana setting. This is set explicitly so that the default always matches what comes with the Docker image |
0.0.0.0 |
|
Allows you to overwrite the “default” serviceAccount for the pod |
[] |
|
Configurable service to expose the Kibana service. |
see values.yaml |
|
Configurable tolerations |
[] |
|
Allows you to change the default updateStrategy for the Deployment. A standard upgrade of Kibana requires a full stop and start which is why the default strategy is set to Recreate |
type: Recreate |
1.4.2.9. Version control and release
Version 1.0
1.4.2.10. License
Elastic License and Server Side Public License (SSPL)
1.4.2.11. Notice(dependencies)
Will be determined after the release of the enabler.