aboutsummaryrefslogtreecommitdiffstats
path: root/client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js')
-rw-r--r--client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js253
1 files changed, 253 insertions, 0 deletions
diff --git a/client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js b/client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js
new file mode 100644
index 000000000..f22b3077c
--- /dev/null
+++ b/client/client-monitoring/src/main/resources/webapp/js/ApexServicesMain.js
@@ -0,0 +1,253 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+var restRootURL;
+
+// Configuration used for page layout and charts
+var config = {
+ refresh : 5000,
+ engineService : {
+ parent : "engineService",
+ tableId : "engineServicesTable",
+ headers : [ {
+ title : "Engine Service ID",
+ id : "engine_id"
+ }, {
+ title : "server:port",
+ id : "server_port"
+ }, {
+ title : "Model ID",
+ id : "model_id"
+ }, {
+ title : "Periodic Events",
+ id : "periodic_events"
+ } ]
+ },
+ engineSummary : {
+ parent : "engineSummary",
+ tableId : "engineSummaryTable",
+ headers : [ {
+ title : "Timestamp",
+ id : "timestamp"
+ }, {
+ title : "Up Time of oldest engine (ms)",
+ id : "up_time"
+ }, {
+ title : "Sum of policy executions",
+ id : "policy_executions"
+ } ],
+ chart : {
+ avgPolicyDurationChart : {
+ parent : "avgPolicyDuration",
+ title : "Average Policy Duration (ms)",
+ unit : "ms",
+ lineStroke : "#5FBADD",
+ nodeColour : "#00A9D4"
+ },
+ }
+ },
+ engineStatus : {
+ parent : "engineStatus",
+ tableId : "engineStatusTable",
+ headers : [ {
+ title : "Timestamp",
+ id : "timestamp"
+ }, {
+ title : "Engine ID",
+ id : "engine_id"
+ }, {
+ title : "Engine Status",
+ id : "engine_status"
+ }, {
+ title : "Last Message",
+ id : "last_message"
+ }, {
+ title : "Up Time (ms)",
+ id : "up_time"
+ }, {
+ title : "Policy Executions",
+ id : "policy_executions"
+ }, {
+ title : "Action",
+ id : "action"
+ } ]
+ },
+ engineContext : {
+ parent : "context",
+ tableId : "engineContextTable",
+ headers : [ {
+ title : "Name",
+ id : "name"
+ }, {
+ title : "Version",
+ id : "version"
+ }, {
+ title : "Info",
+ id : "schema"
+ } ]
+ },
+ engineChart : {
+ lastPolicyDurationChart : {
+ parent : "lastPolicyDurationChart",
+ title : "Last Policy Duration (ms)",
+ unit : "ms",
+ lineStroke : "#F5A241",
+ nodeColour : "#F08A00"
+ },
+ averagePolicyDurationChart : {
+ parent : "averagePolicyDurationChart",
+ title : "Average Policy Duration (ms)",
+ unit : "ms",
+ lineStroke : "#00625F",
+ nodeColour : "#007B78"
+ }
+ }
+};
+
+function servicesCallback(data) {
+ // If engine url in cookie has not been cleared
+ if (localStorage.getItem("apex-monitor-services")) {
+ setEngineServiceData(data.engine_id, data.model_id, data.server,
+ data.port, data.periodic_events);
+ setEngineSummaryData(data.status);
+ setEngineStatusData(data.status);
+ setEngineContextData(data.context);
+
+ // Make content visible after data has been returned for the first time
+ if (!$(".content").is(':visible')) {
+ $(".content").fadeIn();
+ }
+
+ // Repeat the same request
+ setTimeout(function() {
+ this.servicesCall = ajax_get(restRootURL, servicesCallback,
+ this.engineURL.hostname, this.engineURL.port);
+ }, config.refresh);
+ }
+}
+
+/*
+ * Callback for starting/stopping an engine/events
+ */
+function startStopCallback() {
+ this.servicesCall = ajax_get(restRootURL, servicesCallback,
+ this.engineURL.hostname, this.engineURL.port);
+}
+
+/*
+ * Callback for uploading a model
+ */
+function uploadCallback(response) {
+ // Open a dialog showing the response
+ apexSuccessDialog_activate(document.body, response);
+}
+
+/*
+ * Clears and resets all content on the page
+ */
+function setUpPage() {
+ // Hide all content
+ $('#content').hide();
+
+ // Clear each div
+ $('#content > div').each(function() {
+ $(this).empty();
+ });
+
+ // Reset trackers for tables
+ this.engineStatusTables = [];
+ this.engineContextTables = [];
+
+ // Set up content div's
+ createEngineServiceTable();
+ createEngineSummaryTable();
+}
+
+/*
+ * Retrieves the engine URL from the cookie. If it has not been set yet, then a
+ * dialog is shown asking for it
+ */
+function getEngineURL(message) {
+ // The engine URL is stored in a cookie using the key
+ // "apex-monitor-services"
+ var engineURL = localStorage.getItem("apex-monitor-services");
+
+ // This url is used to store the last known engine URL so that the user
+ // doesn't have to retype it every time
+ var oldEngineURL = localStorage.getItem("apex-monitor-services_old");
+
+ // If an engine URL is stored in the cookie
+ if (engineURL) {
+ // Parse the engine URL
+ this.engineURL = JSON.parse(engineURL);
+
+ // Send a request with that engine URL
+ this.servicesCall = ajax_get(restRootURL, servicesCallback,
+ this.engineURL.hostname, this.engineURL.port);
+ } else {
+ // Prompt for engine URL
+ apexDialogForm_activate(document.body, message);
+ }
+}
+
+/*
+ * Clears the cookie and reset the page
+ */
+function clearEngineURL() {
+ // Remove engine URL from cookie
+ localStorage.removeItem("apex-monitor-services");
+
+ // Reset the page
+ setUpPage();
+}
+
+/*
+ * Called after the DOM is ready
+ */
+$(document)
+ .ready(
+ function() {
+ restRootURL = location.protocol
+ + "//"
+ + window.location.hostname
+ + (location.port ? ':' + location.port : '')
+ + (location.pathname.endsWith("/monitoring/") ? location.pathname
+ .substring(0, location.pathname
+ .indexOf("monitoring/"))
+ : location.pathname)
+ + "apexservices/monitoring/";
+ // Initialize tooltip for the charts
+ initTooltip();
+
+ // Set up the structure of the page
+ setUpPage();
+
+ // Check cookies for engine URL
+ getEngineURL();
+
+ // Add click event to config icon for clearing engine URL
+ $(".ebSystemBar-config").click(function() {
+ // Clear the engine URL
+ clearEngineURL();
+
+ // Request the engine URL
+ getEngineURL();
+ });
+ }); \ No newline at end of file