diff options
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.js | 253 |
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 |