Background : Our customer uses variety of tools for Event management systems for monitoring the servers and uses ITSM tool for managing the incident management systems. At that moment these systems dont talk to each other.
TechOps team needs a way to build the integration between event and incident management systems so that they can use the existing ITSM tool as a ticketing system for event management so that they timely address the issues in a uniform way.
Execution: Customer uses Event management systems like,. site scope for url monitoring, OpenNMS software for network monitoring and network management platform etc using protocols like SNMP, Polling etc. Currently they use ServiceNow as the ITSM tool for ticketing for service desk.
In order to address the alerts coming from incident from event management system, they need a real time (quasi) system that it process the alarms coming and create the incidents referring the alarm details. While processing the alarms, team needs an options to dynamically create the incidents based on several alarm conditions ex, only for given threshold limit of severity, checking the alarm falls in outage window etc. In addition, once the the issues gets fixed, the incident to be closed automatically. Agent will not have option to close the incidents manually. Also the system to be flexible enough to extend additional servers and different ticketing systems as required.
These poses several challenges like processing the realtime data of alarms, making sure that the incidents are created without duplicates in a timely manner and also managing the huge data.
We have used the timers, smarthread pool to fetch the event/alarm data, outage date from the master servers and have used several techniques to manage the data efficiently like async, parallel programming etc. We have used solid design principles in order to make the module more robust and extendible so that additional main servers can be ingenerated and the flexibility in selecting the ticketing systems in case if it requires.
Tools & Technologies: C#, MVC, Postgres, Lambda Expression, parallel programming, event & delegation techniques, Linq, Smart Thread Pool, OpenNMS, ServiceNow, Timers, Smarthread pool for queues.