{ "title": "IT-Services-Dashboards", "version": "2.4", "settings": { "pagenumber": 7, "editable": true, "fullscreenEnabled": false, "parameters": { "neodash_customerName": "Julee Coppledike", "neodash_servername": "server-6", "neodash_impService": "Service-732-hs", "neodash_": "Flowdesk", "neodash_swname": "Daltfresh", "neodash_service_servicename": "Service-586-eq", "neodash_service_servicename_display": "Service-586-eq", "neodash_customer_customername": "Willem Orman", "neodash_customer_customername_display": "Willem Orman", "neodash_software_swname": "Duobam", "neodash_software_swname_display": "Duobam" }, "theme": "light" }, "pages": [ { "title": "Demo Explanation", "reports": [ { "id": "ce76c06b-72a3-4d4f-97d3-a9a841ddc818", "title": "Explanation of the Demo", "query": "![](https://github.com/neo4j-field/itservicegraph/raw/main/graphics/explanation.png)\n[Source on Github](https://github.com/neo4j-field/itservicegraph)", "width": 22, "height": 10, "x": 0, "y": 0, "type": "text", "selection": {}, "settings": {}, "schema": [] }, { "id": "9a0e90e0-dfe6-46cb-bf5e-39e993e21aa3", "title": "Data Model without Properties", "query": "![Data Model](https://github.com/neo4j-field/itservicegraph/raw/main/graphics/dm_wo_properties.png)\n\n\n", "width": 22, "height": 12, "x": 0, "y": 10, "type": "text", "selection": {}, "settings": {}, "schema": [] }, { "id": "20f69d11-bd02-411c-9ffc-abad30d3c1b6", "title": "Data Model with Properties", "query": "![Data Model](https://github.com/neo4j-field/itservicegraph/raw/main/graphics/dm_w_properties.png)\n\n\n", "width": 22, "height": 12, "x": 0, "y": 22, "type": "text", "selection": {}, "settings": {}, "schema": [] } ] }, { "title": "IT Services Graph Overview", "reports": [ { "id": "414ec47f-d52f-4fe2-a55c-f67e079791fb", "title": "# of Clusters", "query": "MATCH(s:Cluster) RETURN DISTINCT count(s)", "width": 4, "height": 2, "x": 8, "y": 0, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "middle", "fontSize": 64 }, "schema": [] }, { "id": "90d1f2fa-f81c-4c11-9f21-7ca5d9e1e41b", "title": "List of Data Centers", "query": "MATCH(s:Datacenter) RETURN DISTINCT s.dcName AS Datacenter, s.dcCity AS City;", "width": 8, "height": 4, "x": 0, "y": 0, "type": "table", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "middle", "fontSize": 64, "refreshButtonEnabled": true }, "schema": [] }, { "id": "3ff12a3c-5785-4472-9d5b-4216d9935d77", "title": "# of Server", "query": "MATCH(s:Server) RETURN DISTINCT count(s)", "width": 4, "height": 2, "x": 8, "y": 2, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "middle", "fontSize": 64 }, "schema": [] }, { "id": "20ac9ce2-b42d-4b6c-a9a3-285fcb3bef67", "title": "# of Services", "query": "MATCH(s:Service) RETURN DISTINCT count(s)", "width": 4, "height": 2, "x": 12, "y": 0, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "middle", "fontSize": 64 }, "schema": [] }, { "id": "49f3b432-1d7d-489f-8d78-843133dabc93", "title": "# of Customers/Dept.", "query": "MATCH (s:Customer) \n//WHERE s.customerImportance = \"Level-9\"\nRETURN count(DISTINCT s.customerDept);", "width": 4, "height": 2, "x": 12, "y": 2, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "middle", "fontSize": 64, "refreshButtonEnabled": true }, "schema": [] }, { "id": "95ee2f5d-cd0a-4ae7-8bc5-e12f3b41a3c8", "title": "Servers per Data Center", "query": "MATCH(s:Server)-[]->(d:Datacenter)\nRETURN d.dcName AS CD, count(s) AS AnzServer;\n\n\n", "width": 8, "height": 4, "x": 16, "y": 0, "type": "pie", "selection": { "index": "CD", "value": "AnzServer", "key": "(none)" }, "settings": { "sortByValue": false, "innerRadius": 0.3, "description": "Distribution of Servers to Data Centers.", "interactive": true, "enableArcLinkLabels": true, "refreshButtonEnabled": true }, "schema": [] }, { "id": "700f9fa5-1329-419c-a812-52f8a75129d4", "title": "Top 50 Customer List", "query": "MATCH(c:Customer)\nRETURN c.customerName AS Customer, c.customerDept AS Department, c.customerImportance AS Importance ORDER BY Importance DESC LIMIT 50;\n\n\n", "width": 12, "height": 6, "x": 0, "y": 4, "type": "table", "selection": {}, "settings": {} }, { "id": "77dfa666-f77a-42ff-ad0e-9971b6aff974", "title": "Top 100 Services", "query": "MATCH(s:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN s.serviceName AS Service, s.serviceOwner AS Owner, s.serviceSLA AS SLA ORDER BY SLA DESC LIMIT 100;\n\n\n", "width": 12, "height": 6, "x": 12, "y": 4, "type": "table", "selection": {}, "settings": {} } ] }, { "title": "WAN Connection Overview", "reports": [ { "id": "4a5c9c0f-f0e3-40db-a9af-509aaed40e3f", "title": "Datacenter WAN Interconnections", "query": "MATCH (d:Datacenter)-[r:HAS_WAN_CONNECTION]-(d2:Datacenter)\nRETURN d, r, d2;\n\n\n", "width": 13, "height": 8, "x": 0, "y": 0, "type": "map", "selection": { "Datacenter": "dcCity" }, "settings": { "refreshButtonEnabled": true, "clusterMarkers": true, "separateOverlappingMarkers": true, "defaultNodeSize": "medium", "description": "This maps shows the WAN Connections between Data Centers. Clicking on the connection will reveal detailed information about the throughput, etc." }, "schema": [ [ "Datacenter", "dcName", "dcGeoLoc", "dcLocLat", "dcCity", "dcLat" ], [ "HAS_WAN_CONNECTION", "avgRoundTripMS", "thruput", "distance", "provider" ] ] }, { "id": "eae6663a-b98f-4940-9af9-43d202dd2fc4", "title": "WAN Connection Details", "query": "MATCH (d:Datacenter)-[r:HAS_WAN_CONNECTION]-(d2:Datacenter)\nRETURN d.dcName AS From_Datacenter, r.provider AS Provider, r.thruput AS Throughput, r.avgRoundTripMS AS Round_Trip_Time_ms, d2.dcName AS To_Datacenter;\n\n\n", "width": 11, "height": 8, "x": 13, "y": 0, "type": "table", "selection": {}, "settings": { "refreshButtonEnabled": true } }, { "id": "f5ab07fc-8430-41da-bc3a-1fe1a262bd11", "title": "Cable Distance between Datacenters", "query": "MATCH (d:Datacenter)-[r:HAS_WAN_CONNECTION]->(d2:Datacenter)\nRETURN d, r, d2;\n\n\n", "width": 24, "height": 5, "x": 0, "y": 8, "type": "sankey", "selection": { "Datacenter": "dcCity" }, "settings": { "legend": true, "layout": "horizontal", "labelProperty": "distance", "colors": "accent", "description": "Hover of one of the connections to see the distance in KM between data centers.", "refreshButtonEnabled": true }, "schema": [] } ] }, { "title": "Service Impact Analysis", "reports": [ { "id": "36a98959-a1a3-40ba-aec0-703f08d8c675", "title": "Click Server for Impact Analyses", "query": "MATCH(s:Server)\nRETURN s.serverName AS Server;\n\n\n", "width": 6, "height": 6, "x": 0, "y": 0, "type": "table", "selection": {}, "settings": { "actionsRules": [ { "condition": "Click", "field": "Server", "value": "Server", "customization": "set variable", "customizationValue": "servername" } ], "description": "Click a Server to discover what Services it runs.", "refreshButtonEnabled": true } }, { "id": "27d95ac2-1fa2-4687-8791-eac21664e650", "title": "Impacted Services on selected Server --> $neodash_servername", "query": "MATCH(:Server {serverName: $neodash_servername})-[:RUNS]->(s:Service)-[]->(cu:Customer)\nRETURN DISTINCT s.serviceName AS Service, s.serviceOwner AS Service_Owner, s.serviceSLA AS SLA ORDER BY SLA DESC;\n\n\n", "width": 9, "height": 6, "x": 6, "y": 0, "type": "table", "selection": {}, "settings": { "actionsRules": [ { "condition": "Click", "field": "Service", "value": "Service", "customization": "set variable", "customizationValue": "impService" } ], "styleRules": [ { "field": "SLA", "condition": "=", "value": "5", "customization": "cell text color", "customizationValue": "red" }, { "field": "SLA", "condition": "=", "value": "4", "customization": "cell text color", "customizationValue": "orange" }, { "field": "SLA", "condition": "=", "value": "3", "customization": "cell text color", "customizationValue": "#BBF452" } ], "columnWidths": "[0.5,0.5,0.2]", "refreshButtonEnabled": true, "compact": false, "description": "Click a Service to discover its detailed information!" } }, { "id": "c1c7cfad-1894-4480-b131-e6cf4474b72f", "title": "Server $neodash_servername --> Services Host Information Chain", "query": "MATCH p=(:Rack)<--(:Section)<--(:Datacenter)<--(:Server {serverName: $neodash_servername})<-[:RUNS_ON]-(:Software {swName: $neodash_swname})-[:DELIVERS]->(:Service)-[]->(:Customer)\nRETURN p LIMIT 1\n\n\n", "width": 12, "height": 6, "x": 0, "y": 11, "type": "graph", "selection": { "Rack": "(label)", "Section": "(label)", "Datacenter": "(label)", "Server": "(label)", "Software": "(label)", "Service": "(label)", "Customer": "(label)" }, "settings": { "description": "This show the complete path from the Rack in a Data Center Section up to the user, that booked the Service. It helps to investigate possible problem areas.", "hideSelections": true }, "schema": [ [ "Rack", "rackManufacturer", "rackAmountUnits", "rackName", "rackAmountFreeUnits" ], [ "Section", "dcSecGeo", "dcSecName" ], [ "Datacenter", "dcName", "dcGeoLoc", "dcLocLat", "dcCity", "dcLat" ], [ "Server", "serverLeaseEnd", "installDate", "assetNr", "serverName", "model", "manufacturer" ], [ "Software", "swName", "swOwner", "swVersion", "swFirstSeen", "swVendor", "swLastUpdated" ], [ "Service", "serviceSLA", "serviceOwner", "outageCostperHour", "serviceName" ], [ "Customer", "customerDept", "customerImportance", "onboardingDate", "customerName" ] ] }, { "id": "df9cfd06-b71c-4861-b9f0-a3ed2bcc4440", "title": "Customers & Services affected by Server Outage", "query": "MATCH p=()--(s:Service)<-[:RUNS]-(:Server {serverName: $neodash_servername})<-[:RUNS_ON]-(:Software {swName: $neodash_swname})\nRETURN p\n\n\n", "width": 12, "height": 6, "x": 12, "y": 11, "type": "graph3d", "selection": { "Customer": "(label)", "Service": "(label)", "Server": "(label)", "Software": "(label)" }, "settings": { "relationshipParticles": true, "description": "This 3D Graph is showing a simulation of what other customers are affected in case the server goes down. A more detailed analysis can be made in the next Dashboard Pages.", "hideSelections": true }, "schema": [ [ "Customer", "customerDept", "customerImportance", "onboardingDate", "customerName" ], [ "Service", "serviceSLA", "serviceOwner", "outageCostperHour", "serviceName" ], [ "Server", "serverLeaseEnd", "installDate", "assetNr", "serverName", "model", "manufacturer" ], [ "Software", "swName", "swOwner", "swVersion", "swFirstSeen", "swVendor", "swLastUpdated" ] ] }, { "id": "4a58e2cb-8ff2-49a3-a616-2a6ea8a3f967", "title": "Affected Customer by selected Service --> $neodash_impService ", "query": "MATCH(sv:Service {serviceName: $neodash_impService})-[r:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS Customer, cu.customerImportance AS SLA_booked, cu.customerDept AS Department, r.customerOnboardDate AS Onboarded_on\n\n", "width": 12, "height": 3, "x": 0, "y": 8, "type": "table", "selection": {}, "settings": { "styleRules": [ { "field": "SLA_booked", "condition": "=", "value": "9", "customization": "row text color", "customizationValue": "red" }, { "field": "SLA_booked", "condition": "=", "value": "8", "customization": "row text color", "customizationValue": "red" }, { "field": "SLA_booked", "condition": "=", "value": "7", "customization": "row text color", "customizationValue": "orange" }, { "field": "SLA_booked", "condition": "=", "value": "6", "customization": "row color", "customizationValue": "yellow" } ], "description": "Here you see the service owner responsible for the this service. Depending on the color of the row background, it shows the importance of the SLA. Level 6 is in yellow, Level 7 in orange and the highest levels 8 & 9 are in red. Thus, one can spot the importance immediately." } }, { "id": "d02464e6-9d5b-4ea4-b5d4-1755fdbe06f2", "title": "Software Information", "query": "MATCH(sv:Service {serviceName: $neodash_impService})<-[]-(sw:Software)\nRETURN sw.swName AS Software, sw.swVersion AS Version, sw.swVendor AS Vendor, sw.swLastUpdated AS Last_updated\n\n", "width": 12, "height": 3, "x": 12, "y": 8, "type": "table", "selection": {}, "settings": { "actionsRules": [ { "condition": "Click", "field": "Software", "value": "Software", "customization": "set variable", "customizationValue": "swname" } ], "description": "Software / Vendor that is used to run the Service and it version, plus the date of the last update. If the last update is more than 6 month back, the Cell will be marked RED.", "styleRules": [ { "field": "Last_updated", "condition": "<", "value": "2023-12-16", "customization": "cell color", "customizationValue": "red" } ] } }, { "id": "7574c666-e294-4c6d-971d-8cc2a2013514", "title": " Detailed Information", "query": "## Detailed Information about Service $neodash_impService running on server $neodash_servername\n\n\n", "width": 24, "height": 2, "x": 0, "y": 6, "type": "text", "selection": {}, "settings": {}, "schema": [] }, { "id": "f9af0483-954f-42ef-802c-8822cd02e295", "title": "Data Center & Server Location", "query": "MATCH(:Server {serverName: $neodash_servername})-[:LOCATED_IN]->(dc:Datacenter)\nRETURN dc AS Datacenter;\n\n\n", "width": 9, "height": 6, "x": 15, "y": 0, "type": "map", "selection": { "Datacenter": "dcCity" }, "settings": { "description": "This map shows the data center location, the selected server / virtual machine / container is hosted." }, "schema": [ [ "Datacenter", "dcName", "dcGeoLoc", "dcLocLat", "dcCity", "dcLat" ] ] } ] }, { "title": "Reverse Service Down Impact Analysis", "reports": [ { "id": "f061f151-68da-47da-96b6-279cc0902edc", "title": "Type in a Service Name:", "query": "MATCH (n:`Service`) \nWHERE toLower(toString(n.`serviceName`)) CONTAINS toLower($input) \nRETURN DISTINCT n.`serviceName` as value, n.`serviceName` as display ORDER BY size(toString(value)) ASC LIMIT 5", "width": 6, "height": 2, "x": 0, "y": 0, "type": "select", "selection": {}, "settings": { "type": "Node Property", "entityType": "Service", "propertyType": "serviceName", "propertyTypeDisplay": "serviceName", "parameterName": "neodash_service_servicename", "description": "Enter a Service Name here, to check its impact on Departments and other Services. All names are generated, so the names start with Service- followed by a 3-digit number and some characters. Try it out!" }, "schema": [] }, { "id": "3c866506-bed7-4873-b9f9-3c7b3f0e9bd7", "title": "# of affected Departments", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})-[:CONSUMED_BY]->(cu:Customer)\nRETURN count(cu.customerName)\n\n\n", "width": 6, "height": 2, "x": 6, "y": 0, "type": "value", "selection": {}, "settings": { "fontSize": 96, "textAlign": "center", "verticalAlign": "bottom", "description": "The departments affected if this services fails due to a software issue, security issue or any other outage." }, "schema": [] }, { "id": "1273666c-15ae-43da-9a04-08811664e060", "title": "# of Service in cases on SW Issue ", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN count(svc2.serviceName)\n", "width": 6, "height": 2, "x": 12, "y": 0, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "bottom", "fontSize": 96, "description": "\"Simulation\" of all other services affected, in case the software has a security issue (e.g. log4j bug) or software bug, so it has to be taken down immediately." }, "schema": [] }, { "id": "60f03608-9487-4d4c-8e4e-c1b00b830c30", "title": "# of SW issue affected Departments", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN count(cu)\n\n\n", "width": 6, "height": 2, "x": 18, "y": 0, "type": "value", "selection": {}, "settings": { "textAlign": "center", "verticalAlign": "bottom", "fontSize": 96, "description": "Simulation of all other Departments affected, in case the software has a security issue (e.g. log4j bug) or software bug, so it has to be taken down immediately." }, "schema": [] }, { "id": "aec7fc0c-07b0-4fd8-92f3-90ee251792d7", "title": "Outage Cost per Day in €", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})\nRETURN sum(svc.outageCostperHour)*24\n\n\n\n", "width": 12, "height": 2, "x": 0, "y": 2, "type": "value", "selection": {}, "settings": { "fontSize": 72, "textAlign": "center", "verticalAlign": "middle", "description": "The service has an attribute (Property) that states the average cost of downtime per hour. That cost is used to calculate the downtime cost per day." }, "schema": [] }, { "id": "787b09d2-031e-43ed-bf45-e0340f64ff03", "title": "Outage Cost per Day in € with other Customers affected", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN sum(svc2.outageCostperHour)*24\n\n\n", "width": 12, "height": 2, "x": 12, "y": 2, "type": "value", "selection": {}, "settings": { "fontSize": 72, "textAlign": "center", "verticalAlign": "middle", "description": "Same calculation like for the affect service, but now as simulation in case of a security issue (e.g. log4j bug) or software bug, so it has to be taken down immediately." }, "schema": [] }, { "id": "f2f0c135-5d1d-4cbd-9264-e2f14a9a5663", "title": "List of affected Customers", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS Customer, cu.customerImportance AS Importance, cu.customerDept AS Department ORDER BY Importance DESC\n\n\n", "width": 12, "height": 4, "x": 0, "y": 9, "type": "table", "selection": {}, "settings": { "fontSize": 96, "textAlign": "center", "verticalAlign": "bottom", "description": "Additional details on the affected departments in case of the service being down." }, "schema": [] }, { "id": "3b32771a-3115-404d-bb2d-c02f7273b249", "title": "List of other affected Customers (Software Issue)", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS Customer, cu.customerImportance AS Importance, cu.customerDept AS Department ORDER BY Importance DESC", "width": 12, "height": 4, "x": 12, "y": 9, "type": "table", "selection": {}, "settings": { "fontSize": 96, "textAlign": "center", "verticalAlign": "bottom", "description": "Simulation providing additional details on the affected departments in case of the software used for various services being down." }, "schema": [] }, { "id": "f629a68a-a1eb-43b2-8704-d4137cd6d7d5", "title": "List of other Customers Importance Levels", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerImportance AS Importance, count(cu.customerImportance) AS Count ORDER BY Importance ASC\n\n", "width": 12, "height": 5, "x": 0, "y": 4, "type": "bar", "selection": { "index": "Importance", "value": "Count", "key": "(none)" }, "settings": { "fontSize": 96, "textAlign": "center", "verticalAlign": "bottom", "legend": true, "colors": "pastel1", "barValues": true, "customDimensions": false, "marginBottom": 30, "innerPadding": 20, "layout": "horizontal", "description": "SLA(s) of the directly affected customer(s) to understand, the possible impact on the business of employees affected." }, "schema": [] }, { "id": "9f1972e1-2e65-47e8-bcf7-c2ff1847eba7", "title": "Importance Levels - List of other affected Customers (Software Issue)", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerImportance AS Importance, count(cu.customerImportance) AS Count ORDER BY Importance ASC", "width": 12, "height": 5, "x": 12, "y": 4, "type": "bar", "selection": { "index": "Importance", "value": "Count", "key": "(none)" }, "settings": { "fontSize": 96, "textAlign": "center", "verticalAlign": "bottom", "legend": true, "colors": "paired", "barValues": true, "customDimensions": false, "marginBottom": 30, "innerPadding": 20, "layout": "horizontal", "valueScale": "linear", "description": "Simulation of SLAs of affected departments / customers to understand, the possible impact on the business in case of a security issue or major software bug." }, "schema": [] } ] }, { "title": "Reverse Software Issue Analysis", "reports": [ { "id": "391633ed-26e8-4e05-bc02-485a23c948cb", "title": "Search a Software Name:", "query": "MATCH (n:`Software`) \nWHERE toLower(toString(n.`swName`)) CONTAINS toLower($input) \nRETURN DISTINCT n.`swName` as value, n.`swName` as display ORDER BY size(toString(value)) ASC LIMIT 5", "width": 8, "height": 4, "x": 0, "y": 0, "type": "select", "selection": {}, "settings": { "type": "Node Property", "entityType": "Software", "propertyType": "swName", "propertyTypeDisplay": "swName", "parameterName": "neodash_software_swname", "description": "Type in a Software Name for the impacted Services you want to simulate." }, "schema": [] }, { "id": "83c82a6c-a78c-4c62-977d-bfac8ddeb667", "title": "Details on Services running using the software --> $neodash_software_swname", "query": "MATCH (sw:Software {swName: $neodash_software_swname} )-[]->(svc:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN svc.serviceName, sw.swName, sw.swVersion, sw.swLastUpdated, cu.customerName;\n\n\n", "width": 16, "height": 4, "x": 8, "y": 0, "type": "table", "selection": {}, "settings": { "columnWidths": "[1,0.8,0.5,0.5]", "actionsRules": [ { "condition": "Click", "field": "svc.serviceName", "value": "svc.serviceName", "customization": "set variable", "customizationValue": "service_servicename" } ], "description": "Click a Service to simulate cost and affected customers in case of unavailability!" } }, { "id": "ca1f59ac-a56b-4cc5-9c0b-339fb4d537ce", "title": "Cost of Downtime per Day in case of the Software $neodash_software_swname being not available", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN sum(svc2.outageCostperHour)*24\n\n\n", "width": 24, "height": 2, "x": 0, "y": 4, "type": "value", "selection": {}, "settings": { "fontSize": 72, "textAlign": "center", "verticalAlign": "middle", "description": "The software selected is used by several services. Those services have an attribute (Property) that states the average cost of downtime per hour. That cost is used to calculate the downtime cost per day in summary for all services." }, "schema": [] }, { "id": "4d29e2c5-5f06-48ba-a2d9-378c739c9bc9", "title": "Importance Levels - List of other affected Customers (Software Issue)", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerImportance AS Importance, count(cu.customerImportance) AS Count ORDER BY Importance ASC\n\n\n", "width": 24, "height": 5, "x": 0, "y": 6, "type": "bar", "selection": { "index": "Importance", "value": "Count", "key": "(none)" }, "settings": { "layout": "horizontal", "colors": "category10", "barValues": true, "description": "Simulation of SLAs of affected departments / customers to understand, the possible impact on the business in case of a security issue or major software bug." }, "schema": [] }, { "id": "5c024b7e-e66b-467a-a00f-ad3e4829ca9e", "title": "List of other affected Customers (Software Issue)", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS Customer, cu.customerImportance AS Importance, cu.customerDept AS Department ORDER BY Importance DESC\n\n\n", "width": 24, "height": 4, "x": 0, "y": 11, "type": "table", "selection": {}, "settings": { "description": "Simulation providing additional details on the affected departments in case of the software used for various services being down." } } ] }, { "title": "Reverse Affected Customer Analysis", "reports": [ { "id": "c29a4cb6-01f2-4ec9-92a4-b14d3c3aad7f", "title": "Type in a Customer Name:", "query": "MATCH (n:`Customer`) \nWHERE toLower(toString(n.`customerName`)) CONTAINS toLower($input) \nRETURN DISTINCT n.`customerName` as value, n.`customerName` as display ORDER BY size(toString(value)) ASC LIMIT 5", "width": 8, "height": 4, "x": 0, "y": 0, "type": "select", "selection": {}, "settings": { "type": "Node Property", "entityType": "Customer", "propertyType": "customerName", "propertyTypeDisplay": "customerName", "parameterName": "neodash_customer_customername", "description": "Type in a customer name in order to analyze the services used by this customer and his department." }, "schema": [] }, { "id": "cc80f36f-bebd-4705-a042-655db451fb49", "title": "Details on Software used for the Service of customer $neodash_customer_customername", "query": "MATCH (svr:Server)<-[:RUNS_ON]-(sw:Software)-[]->(svc:Service)-[:CONSUMED_BY]->(cu:Customer {customerName: $neodash_customer_customername})\nRETURN DISTINCT svc.serviceName, sw.swName, sw.swVersion, sw.swLastUpdated, svr.serverName;\n\n\n", "width": 16, "height": 4, "x": 8, "y": 0, "type": "table", "selection": {}, "settings": { "actionsRules": [ { "condition": "Click", "field": "svc.serviceName", "value": "svc.serviceName", "customization": "set variable", "customizationValue": "service_servicename" } ] } }, { "id": "014f4894-748f-461c-a0d4-2501331b9fa8", "title": "SLA of customer $neodash_customer_customername", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})-[:CONSUMED_BY]->(cu:Customer)\nRETURN count(cu.customerImportance) AS Count, cu.customerImportance AS Importance ORDER BY Importance ASC\n\n\n\n\n", "width": 11, "height": 4, "x": 0, "y": 4, "type": "bar", "selection": { "index": "Importance", "value": "Count", "key": "(none)" }, "settings": { "legend": true, "layout": "horizontal", "barValues": false, "positionLabel": "top" }, "schema": [] }, { "id": "c380e6d7-55a8-444f-a742-2b3680be8074", "title": "Importance Levels - List of other affected Customers (Software Issue)", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerImportance AS Importance, count(cu.customerImportance) AS Count ORDER BY Importance ASC\n\n\n", "width": 13, "height": 4, "x": 11, "y": 4, "type": "bar", "selection": { "index": "Importance", "value": "Count", "key": "(none)" }, "settings": { "layout": "horizontal", "legend": true, "barValues": true, "description": "Simulation of SLAs of affected departments / customers to understand, the possible impact on the business in case of a security issue or major software bug." }, "schema": [] }, { "id": "abd71abe-9c93-4092-b750-ab22c2e1dedc", "title": "List of other customers affected, using the same Software as $neodash_customer_customername", "query": "MATCH (svc:Service {serviceName: $neodash_service_servicename})<-[:DELIVERS]-(sw:Software)-[]->(svc2:Service)-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS Customer, cu.customerImportance AS Importance, cu.customerDept AS Department ORDER BY Importance DESC\n\n\n", "width": 24, "height": 4, "x": 0, "y": 8, "type": "table", "selection": {}, "settings": { "description": "This table shows a list of affected Departments / Customers using the same software or service as the selected customer." } } ] }, { "title": "GenAI Drive Analysis", "reports": [ { "id": "63e7f93e-3aa4-4c11-8552-1bfc8c887f4e", "title": "Please ask your questions:", "query": "MATCH (sv:Service {serviceName: 'Service-586-eq'})-[:CONSUMED_BY]->(cu:Customer)\nRETURN cu.customerName AS CustomerName, cu.customerDept AS DepartmentName, sv.serviceSLA AS BookedSLA, sv.serviceName AS ServiceName", "width": 22, "height": 5, "x": 0, "y": 0, "type": "table", "selection": {}, "settings": { "description": "Possible Questions to the LLM:\n\n- Give me a list of customers using the Service Service-570-rl along with their booked SLA and Department Name?\n- How many services are running on Server server-1?\n- How many services are currently running on server-11? Provide me with their names, SLA and service owners.\n- Provide me customer names with SLA Level 5 running on server-27.\n- What is the relation between customer Willem Orman and his booked services? Provide me the related nodes and relationships between them." }, "schema": [] } ] } ], "parameters": {}, "extensions": { "active": true, "activeReducers": [ "DASHBOARD/EXTENSIONS/QUERY_TRANSLATOR/" ], "advanced-charts": { "active": true }, "styling": { "active": true }, "actions": { "active": true }, "query-translator": { "active": true, "modelProvider": "OpenAI", "settings": { "modelType": "gpt-4-turbo-2024-04-09" }, "examples": [ { "question": "Give me a list of customers using the Service Service-570-rl along with their booked SLA and Department Name", "answer": "MATCH(sv:Service {serviceName: 'Service-570-rl'})-[]->(cu:Customer)\nRETURN cu.customerName, cu.customerDept, sv.serviceSLA, sv.serviceName\n" }, { "question": "How many services are running on Server server-1?", "answer": "MATCH (s:Server {serverName: 'server001'})<-[:RUNS_ON]-(sw:Software)-[:DELIVERS]->(svc:Service)\nRETURN COUNT(svc) as serviceCount" }, { "question": "How many services are currently running on server-1? Provide me with their names, sla and service owners.", "answer": "MATCH (s:Server {serverName: 'server001'})<-[:RUNS_ON]-(sw:Software)-[:DELIVERS]->(svc:Service)\nRETURN svc.serviceName, svc.serviceSLA, svc.serviceOwner" }, { "question": "Provide me customer names with SLA Level 5 running on server-27.", "answer": "MATCH (s:Server {serverName: 'server027'})<-[:RUNS_ON]-(sw:Software)-[:DELIVERS]->(svc:Service)-[:CONSUMED_BY]->(c:Customer)\nWHERE svc.serviceSLA = 5\nRETURN c.customerName, svc.serviceSLA" }, { "question": "What is the relation between customer Willem Orman and his booked services? Provide me the related nodes and relationships between them.", "answer": "MATCH (c:Customer {customerName: 'Willem Orman'})<-[r:CONSUMED_BY]-(s:Service)\nRETURN c, r, s;" } ], "lastMessages": { "2": { "63e7f93e-3aa4-4c11-8552-1bfc8c887f4e": "Provide me customer names with SLA Level 5 running on server027." }, "3": { "63e7f93e-3aa4-4c11-8552-1bfc8c887f4e": "How much does an outage of service Service-727-jb cost per day? ", "95a0a6fc-f853-412b-9594-7f17335ff497": "Show me the relation between server001, the software that runs in it and the services and customers" }, "6": { "63e7f93e-3aa4-4c11-8552-1bfc8c887f4e": "What is the relation between customer Frederic Aronsohn and his booked services? Provide me the related nodes and relationships between them!" }, "7": { "63e7f93e-3aa4-4c11-8552-1bfc8c887f4e": "Give me a list of customers using the Service Service-586-eq along with their booked SLA and Department Name?" } } }, "forms": { "active": true } }, "uuid": "0ece7bfc-9f70-47cd-8e8e-af0afbe5ba68" }