Abstract: The present disclosure relates to a method [400] and a system [300] for monitoring a performance node servers and applications. The present disclosure encompasses: a data acquisition unit [302] to automatically collect a health check data related to one or more applications, and a server data related to one or more network node servers. Further, a storage unit [304] stores the health check data and the server data at a location, where the health check data and the server data are associated with an IP address. Further, a performance monitoring module [306] corelates the health check and the server data based on the IP addresses to get a correlation data. Further, the performance monitoring module [306] assess the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values. [Figure 3]
FORM 2
THE PATENTS ACT, 1970 (39 OF 1970) & THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
“METHOD AND SYSTEM FOR MONITORING A PERFORMANCE OF NETWORK NODE SERVERS AND
APPLICATIONS”
We, Jio Platforms Limited, an Indian National, of Office - 101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India.
The following specification particularly describes the invention and the manner in which it is to be performed.
METHOD AND SYSTEM FOR MONITORING A PERFORMANCE OF NETWORK NODE SERVERS AND APPLICATIONS
TECHNICAL FIELD
[0001] Embodiments of the present disclosure generally relate to network performance management systems. More particularly, embodiments of the present disclosure relate to methods and systems for monitoring a performance of one or more network node servers and one or more applications.
BACKGROUND
[0002] The following description of the related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section is used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of the prior art.
[0003] Wireless communication technology has rapidly evolved over the past few decades, with each generation bringing significant improvements and advancements. The first generation of wireless communication technology was based on analog technology and offered only voice services. However, with the advent of the second-generation (2G) technology, digital communication and data services became possible, and text messaging was introduced. 3G technology marked the introduction of high-speed internet access, mobile video calling, and location-based services. The fourth-generation (4G) technology revolutionized wireless communication with faster data speeds, better network coverage, and improved security. Currently, the fifth-generation (5G) technology is being deployed, promising even faster data speeds, low latency, and the ability to connect
multiple devices simultaneously. With each generation, wireless communication technology has become more advanced, sophisticated, and capable of delivering more services to its users.
[0004] As networks become more architecturally complex, it’s more and more challenging to detect and diagnose application performance issues. Operators need to ensure accurate troubleshooting of applications within a hyperscale environment. This is possible by obtaining complete and granular data related to the workloads along with detailed information about the underlying infrastructure. Monitoring systems provide insights into system health. They do so by instrumenting an application to collect and analyse data in the form of logs and metrics. Monitoring systems handle complex forms of data-holding network components that are often created and terminated. They also involve complex and distributed applications that have multiple components.
[0005] Legacy monitoring solutions were designed for much simpler systems. They lack the capability to handle the technical complexities of cloud-native applications or evolving changes related to cross-functionality. In traditional applications, where the application and the server on which the application is running was closely coupled, server metrics such as CPU usage and free memory were the best available ways to alert on user-facing issues. However, in cloud-native systems, where many different services not only share machines, but the way in which they are shared is in constant flux, such an approach is not practically scalable. Thus, it is essential to publish custom metrics of an application for constant resource monitoring and to ensure better overall application health. Further, it is not practically possible for open-source platforms to provide the necessary scalability to meet the needs of large cloud native deployments.
[0006] Network functions in a 5G communication network are deployed on multiple servers in multiple locations, and conducting daily health checks on each server and the network functions running on the server is time consuming if done
manually. This process presents several challenges as it involves executing numerous commands to calculate CPU usage, memory usage, disk usage, thread count, free memory, application and server uptime, network connection status, DB status, etc. Furthermore, operations teams must consolidate all this data for each server and application into a single sheet and then assess the overall health check status of each application by comparing them with threshold values. This entire process can take several hours to complete for a single network function. For all the network functions in the network it might take days.
[0007] A network function or a network application is a piece of software that interacts with the control plane of a mobile network by consuming the exposed Application Programmable Interfaces (APIs), e.g., northbound APIs of 5G core and RAN Intelligent Controller (RIC), and edge computing APIs, in a standardized and trusted manner to compose services. These network functions simply expose services that any authorized consumer can consume. There are various applications running on servers associated with nodes in communication systems. For proper running of these applications or nodes, monitoring of certain metrics of the servers is important. For example, central processing unit (CPU) usage, memory usage, thread count, application and server uptime, etc. need to be monitored. The issue arises when the applications are deployed in several clusters. Conducting daily health checks on each server and the network functions running on the server is time consuming if done manually. It becomes very difficult to monitor such applications deployed in various clusters. Traditionally, this monitoring is done by manual intervention which is time consuming and lacks effectiveness. Also, all the data should be collaborated in a single sheet for easy data analysis. This entire process can take several hours to complete for a single network function or a node.
[0008] Further, over the period of time various solutions have been developed to improve the performance of communication devices and to monitor performance of node servers. However, there are certain challenges with existing solutions. For example, the existing approaches include manual intervention for monitoring the
performance of node servers. The existing approaches suffer from a lack of effectiveness in monitoring the performance of the servers, and also take a long time to compile the data from the servers.
[0009] Thus, there exists an imperative need in the art to provide a method and a system for monitoring performance of node servers automatically, which the present disclosure aims to address.
SUMMARY
[0010] This section is provided to introduce certain aspects of the present disclosure in a simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter.
[0011] An aspect of the present disclosure may relate to a method for monitoring a performance of one or more network node servers and one or more applications. The method comprising automatically collecting, by a data acquisition unit, a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications. Further, the method comprises storing, by a storage unit, the health check data for each of the one or more applications and the server data for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address. Further, the method comprises retrieving, by a performance monitoring module, the health check data for the one or more applications and the server data for the one or more node servers from the storage unit. Further, the method comprises correlating, by the performance monitoring module, the health check for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data. Further, the method comprises assessing, by the performance monitoring module, the performance of the one or more
applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values.
[0012] In an exemplary aspect of the present disclosure, the health check data comprises at least a CPU usage parameter, a memory usage parameter, a thread count parameter, a database status parameter.
[0013] In an exemplary aspect of the present disclosure, the server data comprises at least a free memory parameter, a network status parameter, a server uptime parameter.
[0014] In an exemplary aspect of the present disclosure, the collecting, by the data acquisition unit, the server data is scheduled via a time-based job scheduler.
[0015] In an exemplary aspect of the present disclosure, the health check data is retrieved by the performance monitoring module using a secure file transfer protocol (SFTP).
[0016] In an exemplary aspect of the present disclosure, the server data is stored by the storage unit in a text format.
[0017] In an exemplary aspect of the present disclosure, the method further comprises collecting, by the data acquisition unit, the health check data, is performed at one of: a default frequency, and a frequency determined by manual user inputs via a command line interface (CLI).
[0018] In an exemplary aspect of the present disclosure, the method further comprises determining, by the performance monitoring module, a health status of the one or more applications and the one or more node servers based on the assessment. The method further comprises populating, by the performance
monitoring module, a data sheet based on the health check data, the server data, and the determined health status.
[0019] In an exemplary aspect of the present disclosure, the method comprises creating, by the performance monitoring module, a backup of the data sheet by appending a date and time for future reference.
[0020] In an exemplary aspect of the present disclosure, the one or more predefined threshold values is specified in a property file.
[0021] Another aspect of the present disclosure may relate to a system for monitoring a performance of one or more network node servers and one or more applications. The system comprises a data acquisition unit configured to automatically collect a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications. Further, the system comprises a storage unit connected to at least the data acquisition unit, wherein the storage unit is configured to store the health check data for each of the one or more applications and the server data for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address. Further, the system comprises a performance monitoring module connected to at least the storage unit, wherein the performance monitoring module is configured to retrieve the health check data for the one or more applications and the server data for the one or more node servers from the storage unit. The performance monitoring module is further configured to correlate, the health check for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data. Further, the performance monitoring module is configured to assess the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values.
[0022] Another aspect of the present disclosure may relate to a non-transitory
computer readable storage medium storing instruction for monitoring a
performance of one or more network node servers and one or more applications,
the instructions include executable code which, when executed by one or more units
5 of a system causes a data acquisition unit to automatically collect a health check
data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications. Further, the instructions include executable code, which when executed causes a storage unit to store the health check data for each
10 of the one or more applications and the server data for each of the one or more
network node servers at a location, wherein the health check data for each of the application is associated with an IP address. Further, the instructions include executable code, which when executed causes a performance monitoring module to: retrieve the health check data for the one or more applications and the server
15 data for the one or more node servers from the storage unit; correlate, the health
check for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data; and assess the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values.
20
OBJECTS OF THE DISCLOSURE
[0023] Some of the objects of the present disclosure, which at least one embodiment disclosed herein satisfies are listed herein below. 25
[0024] It is an object of the present disclosure to provide a system and a method for monitoring a performance of one or more network node servers and one or more applications, that is effective and minimizes human intervention.
8
[0025] It is another object of the present disclosure to provide a system and a method for monitoring a performance of node servers and the applications automatically and put the statistics in a single file that is accessible to the user.
5 [0026] It is another object of the present disclosure to provide a system and a
method for monitoring performance of node servers and the applications to compile the performance of the node serves and the applications in a file in a short span of time, that is, the time taken to monitoring performance is decreased.
10 DESCRIPTION OF THE DRAWINGS
[0027] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the
15 different drawings. Components in the drawings are not necessarily to scale,
emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Also, the embodiments shown in the figures are not to be construed as limiting the disclosure, but the possible variants of the method and system according to the disclosure are illustrated herein to highlight the advantages of the
20 disclosure. It will be appreciated by those skilled in the art that disclosure of such
drawings includes disclosure of electrical components or circuitry commonly used to implement such components.
[0028] Figure 1 illustrates an exemplary block diagram representation of 5th
25 generation core (5GC) network architecture.
[0029] Figure 2 illustrates an exemplary block diagram of a computing device upon which the features of the present disclosure may be implemented in accordance with exemplary implementation of the present disclosure. 30
9
[0030] Figure 3 illustrates an exemplary block diagram of a system for monitoring a performance of one or more network node servers and one or more applications, in accordance with exemplary implementations of the present disclosure.
5 [0031] Figure 4 illustrates a method flow diagram for monitoring a performance of
one or more network node servers and one or more applications in accordance with exemplary implementations of the present disclosure.
[0032] Figure 5 illustrates a method flow diagram for monitoring a performance of
10 one or more network node servers and one or more applications in accordance with
exemplary implementations of the present disclosure.
[0033] Figure 6 illustrates a method flow diagram for monitoring a performance of
one or more network node servers and one or more applications in accordance with
15 exemplary implementations of the present disclosure.
[0034] The foregoing shall be more apparent from the following more detailed description of the disclosure.
20 DETAILED DESCRIPTION
[0035] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that
25 embodiments of the present disclosure may be practiced without these specific
details. Several features described hereafter may each be used independently of one another or with any combination of other features. An individual feature may not address any of the problems discussed above or might address only some of the problems discussed above.
30
10
[0036] The ensuing description provides exemplary embodiments only, and is not
intended to limit the scope, applicability, or configuration of the disclosure. Rather,
the ensuing description of the exemplary embodiments will provide those skilled in
the art with an enabling description for implementing an exemplary embodiment.
5 It should be understood that various changes may be made in the function and
arrangement of elements without departing from the spirit and scope of the disclosure as set forth.
[0037] Specific details are given in the following description to provide a thorough
10 understanding of the embodiments. However, it will be understood by one of
ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. 15
[0038] Also, it is noted that individual embodiments may be described as a process
which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure
diagram, or a block diagram. Although a flowchart may describe the operations as
a sequential process, many of the operations may be performed in parallel or
20 concurrently. In addition, the order of the operations may be re-arranged. A process
is terminated when its operations are completed but could have additional steps not included in a figure.
[0039] The word “exemplary” and/or “demonstrative” is used herein to mean
25 serving as an example, instance, or illustration. For the avoidance of doubt, the
subject matter disclosed herein is not limited by such examples. In addition, any
aspect or design described herein as “exemplary” and/or “demonstrative” is not
necessarily to be construed as preferred or advantageous over other aspects or
designs, nor is it meant to preclude equivalent exemplary structures and techniques
30 known to those of ordinary skill in the art. Furthermore, to the extent that the terms
“includes,” “has,” “contains,” and other similar words are used in either the detailed
11
description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.
5 [0040] As used herein, a “processing unit” or “processor” or “operating processor”
includes one or more processors, wherein processor refers to any logic circuitry for processing instructions. A processor may be a general-purpose processor, a special purpose processor, a conventional processor, a digital signal processor, a plurality of microprocessors, one or more microprocessors in association with a Digital
10 Signal Processing (DSP) core, a controller, a microcontroller, Application Specific
Integrated Circuits, Field Programmable Gate Array circuits, any other type of integrated circuits, etc. The processor may perform signal coding data processing, input/output processing, and/or any other functionality that enables the working of the system according to the present disclosure. More specifically, the processor or
15 processing unit is a hardware processor.
[0041] As used herein, “a user equipment”, “a user device”, “a smart-user-device”, “a smart-device”, “an electronic device”, “a mobile device”, “a handheld device”, “a wireless communication device”, “a mobile communication device”, “a
20 communication device” may be any electrical, electronic and/or computing device
or equipment, capable of implementing the features of the present disclosure. The user equipment/device may include, but is not limited to, a mobile phone, smart phone, laptop, a general-purpose computer, desktop, personal digital assistant, tablet computer, wearable device or any other computing device which is capable
25 of implementing the features of the present disclosure. Also, the user device may
contain at least one input means configured to receive an input from unit(s) which are required to implement the features of the present disclosure.
[0042] As used herein, “storage unit” or “memory unit” refers to a machine or
30 computer-readable medium including any mechanism for storing information in a
form readable by a computer or similar machine. For example, a computer-readable
12
medium includes read-only memory (“ROM”), random access memory (“RAM”),
magnetic disk storage media, optical storage media, flash memory devices or other
types of machine-accessible storage media. The storage unit stores at least the data
that may be required by one or more units of the system to perform their respective
5 functions.
[0043] As used herein “interface” or “user interface” refers to a shared boundary
across which two or more separate components of a system exchange information
or data. The interface may also be referred to as a set of rules or protocols that define
10 communication or interaction of one or more modules or one or more units with
each other, which also includes the methods, functions, or procedures that may be called.
[0044] All modules, units, components used herein, unless explicitly excluded
15 herein, may be software modules or hardware processors, the processors being a
general-purpose processor, a special purpose processor, a conventional processor,
a digital signal processor (DSP), a plurality of microprocessors, one or more
microprocessors in association with a DSP core, a controller, a microcontroller,
Application Specific Integrated Circuits (ASIC), Field Programmable Gate Array
20 circuits (FPGA), any other type of integrated circuits, etc.
[0045] As used herein the transceiver unit includes at least one receiver and at least
one transmitter configured respectively for receiving and transmitting data, signals,
information or a combination thereof between units/components within the system
25 and/or connected with the system.
[0046] As discussed in the background section, the current known solutions have
several shortcomings. Conducting daily health checks on each server and the
network functions running on the server in a network is time consuming if done
30 manually. This process presents several challenges as it involves executing
numerous commands to calculate CPU usage, memory usage, disk usage, thread
13
count, free memory, application and server uptime, network connection status, DB
status, etc. Furthermore, operations teams must consolidate all this data for each
server and application into a single sheet and then assess the overall health check
status of each application by comparing them with threshold values. This entire
5 process can take several hours to complete for a single network function. For all the
network functions in the network it might take days.
[0047] The present disclosure aims to overcome the above-mentioned and other existing problems in this field of technology by providing method and system of
10 monitoring a performance of one or more network node servers and one or more
applications. The system and method disclosed here involves automatically collecting health check data related to one or more applications and server data related to one or more network node servers. Here the health check data is associated with the execution of the one or more applications and includes
15 parameters like CPU usage, memory usage, thread count, and database status. The
server data includes parameters like free memory, network status, and server uptime. The method then involves the collection of the server data as scheduled via a time-based job scheduler and retrieves the health check data using a secure file transfer protocol (SFTP). The health check data is collected at a default frequency,
20 or a frequency determined by manual user inputs via a command line interface
(CLI). The health check data and the server data are then stored at a location wherein the health check data for each of the application is associated with an IP address. The method further involves correlating the health check for each of the application and the server data for each of the node servers based on the IP
25 addresses to get a correlation data. The method further involves assessing the
performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values. The method also involves a backup of the data sheet by appending a date and time for future reference. The method further discloses determining a
30 health status of the one or more applications and the one or more node servers based
on the assessment and populating, by the performance monitoring module [306], a
14
data sheet based on the health check data, the server data, and the determined health status.
[0048] Figure 1 illustrates an exemplary block diagram representation of 5th
5 generation core (5GC) network architecture, in accordance with exemplary
implementation of the present disclosure. As shown in figure 1, the 5GC network architecture [100] includes a user equipment (UE) [102], a radio access network (RAN) [104], an access and mobility management function (AMF) [106], a Session Management Function (SMF) [108], a Service Communication Proxy (SCP) [110],
10 an Authentication Server Function (AUSF) [112], a Network Slice Specific
Authentication and Authorization Function (NSSAAF) [114], a Network Slice Selection Function (NSSF) [116], a Network Exposure Function (NEF) [118], a Network Repository Function (NRF) [120], a Policy Control Function (PCF) [122], a Unified Data Management (UDM) [124], an application function (AF) [126], a
15 User Plane Function (UPF) [128], a data network (DN) [130], wherein all the
components are assumed to be connected to each other in a manner as obvious to the person skilled in the art for implementing features of the present disclosure.
[0049] Radio Access Network (RAN) [104] is the part of a mobile
20 telecommunications system that connects user equipment (UE) [102] to the core
network (CN) and provides access to different types of networks (e.g., 5G network). It consists of radio base stations and the radio access technologies that enable wireless communication.
25 [0050] Access and Mobility Management Function (AMF) [106] is a 5G core
network function responsible for managing access and mobility aspects, such as UE registration, connection, and reachability. It also handles mobility management procedures like handovers and paging.
30 [0051] Session Management Function (SMF) [108] is a 5G core network function
responsible for managing session-related aspects, such as establishing, modifying,
15
and releasing sessions. It coordinates with the User Plane Function (UPF) for data forwarding and handles IP address allocation and QoS enforcement.
[0052] Service Communication Proxy (SCP) [110] is a network function in the 5G
5 core network that facilitates communication between other network functions by
providing a secure and efficient messaging service. It acts as a mediator for service-based interfaces.
[0053] Authentication Server Function (AUSF) [112] is a network function in the
10 5G core responsible for authenticating UEs during registration and providing
security services. It generates and verifies authentication vectors and tokens.
[0054] Network Slice Specific Authentication and Authorization Function
(NSSAAF) [114] is a network function that provides authentication and
15 authorization services specific to network slices. It ensures that UEs can access only
the slices for which they are authorized.
[0055] Network Slice Selection Function (NSSF) [116] is a network function
responsible for selecting the appropriate network slice for a UE based on factors
20 such as subscription, requested services, and network policies.
[0056] Network Exposure Function (NEF) [118] is a network function that exposes capabilities and services of the 5G network to external applications, enabling integration with third-party services and applications. 25
[0057] Network Repository Function (NRF) [120] is a network function that acts as a central repository for information about available network functions and services. It facilitates the discovery and dynamic registration of network functions.
16
[0058] Policy Control Function (PCF) [122] is a network function responsible for policy control decisions, such as QoS, charging, and access control, based on subscriber information and network policies.
5 [0059] Unified Data Management (UDM) [124] is a network function that
centralizes the management of subscriber data, including authentication, authorization, and subscription information.
[0060] Application Function (AF) [126] is a network function that represents
10 external applications interfacing with the 5G core network to access network
capabilities and services.
[0061] User Plane Function (UPF) [128] is a network function responsible for
handling user data traffic, including packet routing, forwarding, and QoS
15 enforcement.
[0062] Data Network (DN) [130] refers to a network that provides data services to user equipment (UE) in a telecommunications system. The data services may include but are not limited to Internet services, private data network related services.
20
[0063] The 5GC network architecture as shown in Figure 1, also comprises a plurality of interfaces for connecting the network functions with a network entity for performing the network functions. The NSSF [116] is connected with the network entity via the interface denoted as (Nnssf) interface. The NEF [118] is
25 connected with the network entity via the interface denoted as (Nnef) interface. The
NRF [120] is connected with the network entity via the interface denoted as (Nnrf) interface. The PCF [122] is connected with the network entity via the interface denoted as (Npcf) interface. The UDM [124] is connected with the network entity via the interface denoted as (Nudm) interface. The AF [126] is connected with the
30 network entity via the interface denoted as (Naf) interface. The NSSAAF [114] is
connected with the network entity via the interface denoted as (Nnssaaf) interface.
17
The AUSF [112] is connected with the network entity via the interface denoted as
(Nausf) interface. The AMF [106] is connected with the network entity via the
interface denoted as (Namf) interface in the figure. The SMF [108] is connected with
the network entity via the interface denoted as (Nsmf) interface. The SMF [108] is
5 connected with the UPF [128] via the interface denoted as (N4) interface in the
figure. The UPF [128] is connected with the RAN [104] via the interface denoted as (N3) interface. The UPF [128] is connected with the DN [130] via the interface denoted as (N6) interface. The RAN [104] is connected with the AMF [106] via the interface denoted as (N2). The AMF [106] is connected with the RAN [104] via the
10 interface denoted as (N1). The UPF [128] is connected with other UPF [128] via
the interface denoted as (N9). The interfaces such as Nnssf, Nnef, Nnrf, Npcf, Nudm, Naf, Nnssaaf, Nausf, Namf, Nsmf, N9, N6, N4, N3, N2, and N1 can be referred to as a communication channel between one or more functions or modules for enabling exchange of data or information between such functions or modules, and network
15 entities.
[0064] Figure 2 illustrates an exemplary block diagram of a computing device [200] (also referred to herein as a computer system [200]) upon which the features of the present disclosure may be implemented in accordance with exemplary
20 implementation of the present disclosure. In an implementation, the computing
device [200] may also implement a method for monitoring a performance of one or more network node servers and one or more applications utilising the computing device [200]. In another implementation, the computing device [200] itself implements the method for monitoring a performance of one or more network node
25 servers and one or more applications using one or more units configured within the
computing device [200], wherein said one or more units are capable of implementing the features as disclosed in the present disclosure.
[0065] The computing device [200] may include a bus [202] or other
30 communication mechanism for communicating information, and a hardware
processor [204] coupled with bus [202] for processing information. The hardware
18
processor [204] may be, for example, a general-purpose microprocessor. The
computing device [200] may also include a main memory [206], such as a random-
access memory (RAM), or other dynamic storage device, coupled to the bus [202]
for storing information and instructions to be executed by the processor [204]. The
5 main memory [206] also may be used for storing temporary variables or other
intermediate information during execution of the instructions to be executed by the
processor [204]. Such instructions, when stored in non-transitory storage media
accessible to the processor [204], render the computing device [200] into a special-
purpose machine that is customized to perform the operations specified in the
10 instructions. The computing device [200] further includes a read only memory
(ROM) [208] or other static storage device coupled to the bus [202] for storing static information and instructions for the processor [204].
[0066] A storage device [210], such as a magnetic disk, optical disk, or solid-state
15 drive is provided and coupled to the bus [202] for storing information and
instructions. The computing device [200] may be coupled via the bus [202] to a
display [212], such as a cathode ray tube (CRT), Liquid crystal Display (LCD),
Light Emitting Diode (LED) display, Organic LED (OLED) display, etc. for
displaying information to a computer user. An input device [214], including
20 alphanumeric and other keys, touch screen input means, etc. may be coupled to the
bus [202] for communicating information and command selections to the processor
[204]. Another type of user input device may be a cursor controller [216], such as
a mouse, a trackball, or cursor direction keys, for communicating direction
information and command selections to the processor [204], and for controlling
25 cursor movement on the display [212]. This input device typically has two degrees
of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allow
the device to specify positions in a plane.
[0067] The computing device [200] may implement the techniques described
30 herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware
and/or program logic which in combination with the computing device [200] causes
19
or programs the computing device [200] to be a special-purpose machine.
According to one implementation, the techniques herein are performed by the
computing device [200] in response to the processor [204] executing one or more
sequences of one or more instructions contained in the main memory [206]. Such
5 instructions may be read into the main memory [206] from another storage medium,
such as the storage device [210]. Execution of the sequences of instructions
contained in the main memory [206] causes the processor [204] to perform the
process steps described herein. In alternative implementations of the present
disclosure, hard-wired circuitry may be used in place of or in combination with
10 software instructions.
[0068] The computing device [200] also may include a communication interface [218] coupled to the bus [202]. The communication interface [218] provides a two-way data communication coupling to a network link [220] that is connected to a
15 local network [222]. For example, the communication interface [218] may be an
integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface [218] may be a local area network (LAN) card to provide a data communication connection to a
20 compatible LAN. Wireless links may also be implemented. In any such
implementation, the communication interface [218] sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
25 [0069] The computing device [200] can send messages and receive data, including
program code, through the network(s), the network link [220] and the communication interface [218]. In the Internet example, a server [230] might transmit a requested code for an application program through the Internet [228], the ISP [226], the local network [222], the host [224] and the communication interface
30 [218]. The received code may be executed by the processor [204] as it is received,
20
and/or stored in the storage device [210], or other non-volatile storage for later execution.
[0070] As used herein, the “CPU usage” parameter is one of the most important
5 performance metrics in application monitoring. It is monitored to analyse and
determine the processing speed of applications, which is a key performance
indicator of network and server health. CPA usage may define a total amount of
processing power that is being used by an application while executing the functions.
Further, a high CPU usage may indicate that the CPU is overloaded and may further
10 slowdown the working efficiencies of the one or more applications in future.
[0071] As used herein, the “memory usage” parameter may define an amount of Random Access Memory (RAM) that is being consumed while the one or more applications are in running state. Monitoring memory usage is essential in ensuring
15 maximum performance. High rates of memory utilization result in decreased
performance for the associated processes. In addition, a steady increase in memory utilization over time may indicate a memory leak. A memory leak is when application processes allocate memory as they start, but the memory is not released when they end. Memory leaks degrade application and server performance over
20 time. Typically, the applications become unresponsive when memory is no longer
available. Further, a high memory usage may further degrade a performance of the one or more applications in near future.
[0072] As used herein, the “database status” parameter may define a step where
25 checking of database connection is done by sending an asynchronous “PING”
command to the DB server to check connectivity. If the server responds with "PONG", the connection is good.
[0073] As used herein, for the “network status” parameter, a “netstat” command is
30 used to check for LISTEN mode (indicating the server is ready to accept
21
connections) and ESTABLISHED connections (indicating clients have successfully connected to the server).
[0074] As used herein, the “thread count” parameter may show when new threads
5 are created and when they are destroyed Herein the threads may refer to a sequence
of instructions provided to the CPU for execution of the one or more applications.
Threads are the most important part of an application process. They are the most
common way to execute code in parallel. Inappropriate handling of operations like
network access or database queries can lead to poor user experience or make the
10 application unresponsive. Thread count, so it is expected to see this value increase
with operations that demand more processing on the device and decrease after the processing ends.
[0075] As used herein, the “free memory” parameter may define a total available
15 memory within the one or more network node servers, for handling one or more
requests. Further, a low percentage of free memory parameter may define that the performance of the one or more network node servers is degrading and may not be able to handle other additional one or more requests.
20 [0076] As used herein, the “server uptime” parameter may refer to the amount of
time for which a server has been up and operational. Uptime can be measured since the server last booted. It can be measured during each polling cycle as well. Monitoring uptime is important because this metric can alert about a situation where the server is currently operational but may have gone down and rebooted recently
25 and thus impacting users. Many organizations have a practice of rebooting systems
periodically. By monitoring system uptime, administrators can get notified if a system has failed to reboot during the configured reboot cycle.
[0077] It may be noted that the above-mentioned parameters are just exemplary for
30 explaining the present disclosure, and any other parameters related to the one or
22
more network node servers can be further captured in an implementation of the present disclosure.
[0078] Referring to Figure 3, an exemplary block diagram of a system [300] for
5 monitoring a performance of one or more network node servers and one or more
applications, is shown, in accordance with the exemplary implementations of the present disclosure. The system [300] comprises at least one data acquisition unit [302], at least one storage unit [304], and at least one performance monitoring module [306]. Also, all of the components/ units of the system [300] are assumed
10 to be connected to each other unless otherwise indicated below. As shown in the
figures all units shown within the system [300] should also be assumed to be connected to each other. Also, in Figure 3 only a few units are shown, however, the system [300] may comprise multiple such units or the system [300] may comprise any such numbers of said units, as required to implement the features of the present
15 disclosure. In an implementation, the system [300] may reside in a server or a
network entity.
[0079] The system [300] is configured for monitoring a performance of one or more
network node servers and one or more applications, with the help of the
20 interconnection between the components/units of the system [300].
[0080] The system [300] comprises the data acquisition unit [302] configured to automatically collect a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check
25 data is associated with execution of the one or more applications and comprises at
least a CPU usage parameter, a memory usage parameter, a thread count parameter, a database status parameter. Further, the data acquisition unit [302] is configured to collect the health check data, at one of: a default frequency and a frequency determined by manual user inputs via a command line interface (CLI). The health
30 check data related to one or more applications is dumped using JAVA APIs
(Application Programming Interface) from the one or more applications. The server
23
data (like server uptime) is dumped by using a script initiated from the CLI and stores this data in the storage unit [304] in a text file.
[0081] In an implementation of the present disclosure, the one or more applications
5 mentioned herein may refer to the network functions such as UPF, AMF, SMF, AF,
NSSAF in a 5G network. The services provided by such network functions are
described with reference to Figure 1. These network functions are running on the
one or more network node servers. The one or more network node servers are
physical servers which provide resources to the one or more applications or network
10 functions running on them.
[0082] Further, the health check data may provide information regarding one or
more parameters that may relate to the one or more applications and may further
provide insights regarding an effectiveness of the one or more applications. Further,
15 the health check data may further point out one or more issues faced by the one or
more applications.
[0083] In an implementation of the present disclosure, the data acquisition unit
[302] is configured to collect the health check data, at the default frequency, where
20 the default frequency may include at least one of a daily frequency, an hourly
frequency, a weekly frequency, and any other similar frequency known in the state of art. Further, the frequency of collecting heath check data is modifiable via the manual user inputs. Further, the manual user inputs is performed at the CLI.
25 [0084] As used herein, the “CLI” is a text-based interface that is used to interact
with one or more units within the system [300]. Herein, the frequency for collecting the heath check data of the one or more applications, is modified based on one or more requirements (such as operation requirements). For example, in an event, the data acquisition unit [302] collects the heath check data of an application ABC,
30 every one hour (default frequency), but in an event, due to some operational
constraints during peak hours, the frequency may be further modified to collect said
24
heath check data in every 15 minutes. The modification in the frequency may further assist in monitoring the performance of the application ABC specially, during the peak hours.
5 [0085] Further, the server data comprises at least a free memory parameter, a
network status parameter, a server uptime parameter.
[0086] Similarly, the server data related to the one or more network node servers
may provide insights regarding the effectiveness of the one or more network node
10 servers. Further, the server data may reflect an availability of the one or more
network node servers for the one or more applications.
[0087] Furthermore, the data acquisition unit [302] is configured to collect the
server data at a time scheduled via a time-based job scheduler. In an
15 implementation, to ensure regular dumping of health check data for both the
application and server, different scheduling mechanisms are used, for example:
• Application Data Dumping: In this mechanism, the APIs provided from a
package in Java are used. The health check data dumping task is scheduled
to run at a fixed rate.
20 • Server Data Dumping: In this mechanism, a job scheduler provided by the
Linux operating system is used. The script for collecting server data is scheduled to run daily at a specific time.
[0088] As used herein, and described above, the time-based job scheduler may
25 collect the server data at the time scheduled (such as hourly, daily, weekly,
monthly). The time-based scheduling may refer to a time gap present in between collection of the latest server data with the previously collected server data by the time-based job scheduler. The time-based job scheduler may further maintain an up-to-date record of the server data of the one or more network node servers. 30
25
[0089] Further, the system [300] comprises a storage unit [304] connected to at
least the data acquisition unit [302], wherein the storage unit [304] is configured to
store the health check data for each of the one or more applications and the server
data for each of the one or more network node servers at a location, wherein the
5 health check data for each of the application is associated with an IP address. In an
implementation, for the one or more applications, the path where the health check data should be dumped is configured in an Excel file. This Excel file is read by the one or more applications during the startup to determine where to store their health check data. When the one or more applications perform health checks, they write
10 the health check data to the configured path in the Excel file. The same path is also
configured in the script responsible for collecting server data for each of the one or more network node servers. The script runs on each of the network node servers to collect server-specific metrics (like free memory) and dumps this data to the same configured path. This ensures that both the health check data of the one or more
15 applications and server data of the one or more network node servers are dumped
to the same location. Further, associating the health check data of an application with an IP address helps in uniquely identifying and isolating the health metrics of each server. This is particularly useful in environments where multiple servers or instances are running similar applications. By appending the IP address, we can
20 easily track and manage the health status of each individual server. The IP address
is chosen from a particular network interface (bond) on the server. This bond represents a specific network interface that the server uses to communicate. When health check data is generated, it is stored in a folder named with the IP address of the selected bond. This ensures that the data can be easily mapped back to the
25 specific server. A script collects server details and stores this data in the storage unit
[304] in a text file. This text file is also named with the same IP address (same bond), ensuring consistency in how data is identified and stored. Both the health check data folder and the server detail text file use the same IP address in their names. This consistent naming convention ensures that data from both sources can
30 be easily associated with the correct server.
26
[0090] In an aspect of the present disclosure, the health check data of the one or
more applications may further be stored at a particular location (such as a folder or
similar repository) within the storage unit [304]. Herein, a name of the particular
location (such as folder name) may relate to a folder path in the storage unit [304].
5 Herein the storage unit [304] may incorporate one or more databases for storing
similar data (such as heath check data and server data that may use similar IP Address). For example: if an IP address of an Application A is ‘190.124.1.40’, then the health check data associated with the application A is stored in the folder where the folder name can be ‘health_check_data_190.124.1.40’ or can be A_
10 health_check_data_190.124.1.40’, which allows an easy searching and retrieving
of the health check data associated with the application A, when required. Further, the folder may contain one or more files related to the heath check data for the application A, therefore for eliminating any confusion within the folder, the file name can be mentioned with data and time, at which the health check data is
15 collected. For example: the file names can be mentioned with
‘190.124.1.40_08072024’ or ‘A_190.124.1.40_080720924’ or
‘190.124.1.40_080720924_14.35’, which may further indicate the data and/or time and may further assist in an easy retrieval of the one or more files that may relate to the IP address ‘190.124.1.40’.
20
[0091] It is to be noted that such folder name mentioned in the example mentioned are just exemplary, and any other term for using a folder name may also lie within the scope of the subject matter.
25 [0092] Further, each network node server from the one or more network node
servers may be associated with a corresponding one or more applications. The server data is stored in the same location as the health check data of the one or more applications. For example, a network node server 1 may be associated with the application A, therefore the server data of the network node server1 may be further
30 stored within the same folder name such as ‘sever_data_190.124.1.40’ or may be
‘1_sever _data_190.124.1.40’.
27
[0093] It is to be noted that such folder name mentioned in the example are just exemplary, and any other term for using a folder name may also lie within the scope of the subject matter. 5
[0094] Also, it is to be noted that any other repository (other than folder and files) may also be utilized by the storage unit [304] for storing the heath check data and server data that may be known to a person skilled in the art.
10 [0095] Further, the grouping of the health check data and the server data for the one
or more applications and the one or more network node servers, respectively that are associated with each other may further assist in effectively locating the location of the health check data and the server data, in case the health check data and the server data are required for an analysis.
15
[0096] Further, the system [300] comprises a performance monitoring
module [306] connected to at least the storage unit [304], wherein the performance monitoring module [306] is configured to: retrieve the health check data for the one or more applications and the server data for the one or more node servers from
20 the storage unit [304]. Further, the health check data is retrieved by the
performance monitoring module [306] using a secure file transfer protocol (SFTP). Both health check data related to one or more applications and server data related to one or more network node servers are stored locally on each of the network node server where the applications are running. The path for storing this data is
25 configured as discussed earlier. The performance monitoring module [306] needs
to collect data from each of the network node server and store it on a centralized CLI for processing. This is achieved using the SFTP (Secure File Transfer Protocol) protocol, which allows secure transfer of files over the network. A session is created and configured using the IP address and port of each of the
30 network node server individually. Then an SFTP channel is opened from the
session and connected and then data from each of the network node server is
28
fetched to a preconfigured path on centralized CLI and when all the health check data and server data is collected (of each IPs associated with each network node server) then the processing of data starts.
5 [0097] In an implementation of the present disclosure, the performance monitoring
module [306] may retrieve the health check data and the server data from the storage unit [304] via the SFTP, which may assure a secure and encrypted transfer of data between the storage unit [304] and the performance monitoring module [306].
10 [0098] In an aspect, the performance monitoring module [306] may firstly retrieve
the health check data for a specific application and based on the IP address of said specific application, the performance monitoring module [306] may search for the one or more network node servers with same IP address.
15 [0099] The performance monitoring module [306] is further configured to
correlate, the health check for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data. The performance monitoring module [306] gathers both the health check data and the server data. By using the IP address in the names of the folders and files, the tool
20 can bundle together the data from both sources for each server. The tool reads the
health check data and the server data using the IP address as the key. It combines these data points into a single dataset for each server. This combined dataset contains both application-specific metrics (e.g., CPU usage, disk usage) and server-specific metrics (e.g., available memory, network statistics). The combined dataset
25 is the correlation data.
[0100] In an implementation of the present disclosure, the correlation data may
refer to a combined data linked to the heath check data of the one or more
applications and the server data of the one or more node servers. The correlated data
30 may further describe how a particular application may impact the performance of a
particular network node server and vice versa.
29
[0101] Further, the performance monitoring module [306] is configured to assess
the performance of the one or more applications and the one or more network node
servers based on a comparison of the correlation data with one or more predefined
5 threshold values. Further, the one or more predefined threshold values is specified
in a property file. The property file is stored in a centralized location on the
Command Line Interface (CLI) side. The property file is read using Java File APIs
(Application Programming Interface). The path to the property file is specified
relative to the CLI's location. The performance monitoring module [306] uses this
10 data to perform its tasks.
[0102] Considering an example to understand how performance of one or more
applications and the one or more network node server is assessed as described in
the present disclosure. In an exemplary implementation, the property file defines
15 threshold values for various metrics, such as,
CPU Usage: 40% Memory Usage: 80% Disk Usage: 70%
20
[0103] These threshold values represent the limits beyond which health status is considered problematic. The performance monitoring module [306] extracts the relevant metrics from the correlation data for each server and application. For each metric, the performance monitoring module [306] compares the collected value
25 with the configured threshold:
• If the collected value exceeds the threshold, the performance monitoring module [306] marks the health status as False.
30 • If the collected value is within the threshold, the performance monitoring
module [306] marks the health status as True.
30
[0104] For each application and server, the performance monitoring module [306] sets a health status flag based on the comparison:
• True if all metrics are within their respective thresholds.
5 • False if any metric exceeds its threshold.
[0105] Further, the property file (with a “.properties” extension) is a simple key-
value pair configuration file commonly used in Java applications to store
configuration settings. The format is plain text, and each line contains a key and its
10 corresponding value separated by an equal sign (=).
[0106] In an implementation of the present disclosure, the property file may refer to a configuration file that may be used to store pre-defined threshold values for the health check data and the server data. Further, in one aspect, the property file may
15 incorporate ideal values, that are further compared with the correlation data for
assessing the performance of the one or more applications and the one or more network node servers. Further, in another aspect the property file may incorporate an acceptable limit for the correlation data, based on which the performance of the one or more applications and the one or more network node servers is determined.
20
[0107] Further, the performance monitoring module [306] compares each data point in the correlation data with the corresponding threshold value from the property file to assess performance of the one or more applications and the one or more network node servers. The performance monitoring module [306] compares
25 the correlation data with predefined threshold values, specified in the property file,
for each correlation data point. The performance monitoring module [306] reads the health check data and the server data using the IP address as the key. It combines these data points into a single dataset for each server. These data points are called the correlation data points.
30
31
[0108] For ease of understanding: considering a scenario where for an application AB, the data point present in the corelation data, for the CPU usage parameter is 75% and the property file may define the acceptable limit to be below 80%, then in such a case the performance monitoring module [306] may compare the data point 5 with the corresponding acceptable limit (75% ≤ 80%) and may accordingly determine that the CPU usage parameter for the application AB is within the acceptable limit.
[0109] Further, the performance monitoring module [306] is configured to
10 determine a health status of the one or more applications and the one or more network node servers based on the comparison of said correlation data with said one or more predefined threshold values. Further, the performance monitoring module [306] populates a data sheet based on the health check data, the server data, and the determined health status.
15
[0110] In an implementation of the present disclosure, in cases where the correlation data points are within the acceptable limit and/or close to the ideal values mentioned in the property file, then the performance monitoring module [306] may determine the health status of the one or more applications and the one
20 or more network node servers as a healthy status. Conversely, in cases the data points exceed the acceptable limit and/or far from the ideal values, then in such case the performance monitoring module [306] may determine the health status of the one or more applications and the one or more network node servers as an un-healthy status.
25
[0111] Thereafter, post determining the health status of the one or more applications and the one or more network node servers, the performance monitoring module [306] populates the data sheet based on the health check data, the server data, and the determined health status. The data sheet mentioned herein may be a
30 spread sheet. It is to be noted that the type of datasheet is just exemplary, and any other type of sheet may further be used in view of presenting the health check data,
32
the server data, and the determined health status of the one or more applications and the one or more network node servers.
[0112] In an example, the performance monitoring module [306] may mark the
5 health status as OK (in cases the data points are within the acceptable limit) and as
NOT OK (in cases the data points exceed the acceptable limit) on the spreadsheet. It is again to be noted that the marking of the health status is just exemplary, and any other form of marking can be used for marking the health status, known to a person skill in the art.
10
[0113] Further, the structure of the datasheet may vary depending on one or more conditions, such as a total number of the one or more applications, the network node servers, and/or a list of parameters to be mentioned on the health check data and the server data, and/or the type of data sheet used to represent the correlation data and
15 the health status of the one or more applications and the one or more network node
servers.
[0114] In one aspect, the structure of the data sheet may be represented in a way such that: each row of datasheet (suppose a spreadsheet) may represent a NF
20 (Network Function) instance or an application from the one or more applications.
Furter, each column of the datasheet (suppose a spreadsheet) may represent the parameters associated with the NF instance or the application. Further, as mentioned above, the NF instance or the application is determined via the IP address of the server associated with the NF instance or the application.
25
[0115] For example, the spreadsheet can be presented as:-
Node Name %CPU usage %Memory usage Thread count Database status Free memory Network status Server uptime Health status
NF-1190.124.1.40 75% 60% 50 Active 152 Stable 18:24:0630 days OK
33
NF-2190.124.1.41 85% 70% 110 Active 126 Stable 20 days NOT OK
[0116] Further, the performance monitoring module [306] is configured to create a backup of the data sheet by appending a date and time for future reference. 5
[0117] In an implementation of the present disclosure, the performance monitoring
module [306] may further create the backup of the data sheet at regular time
intervals and further store it in the storage unit [304]. Further, the performance
monitoring module [306] may uniquely name each data sheet with reference to the
10 data and time of the backup. Further, in an implementation, the data sheet may be
easily retrieved when required for future reference based on the date and time of the backup.
[0118] In yet another aspect, the backup of the data sheet may be saved in a ZIP
15 format (compressed format) which may further save space of the storage unit [304].
[0119] Referring to Figure 4, an exemplary method flow diagram [400] for
monitoring a performance of one or more network node servers and one or more
applications, in accordance with exemplary implementations of the present
20 disclosure is shown. In an implementation the method [400] is performed by the
system [300]. Further, in an implementation, the system [300] may be present in a server device to implement the features of the present disclosure. Also, as shown in Figure 4, the method [400] starts at step [402].
25 [0120] At step [404], the method [400] comprises automatically collecting, by a
data acquisition unit [302], a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications. Further in an implementation of the present disclosure, the wherein the health check data
34
comprises at least a CPU usage parameter, a memory usage parameter, a thread
count parameter, a database status parameter. The health check data related to one
or more applications is dumped using JAVA APIs from the one or more
applications. The server data (like server uptime) is dumped by using a script
5 initiated from the CLI and stores this data in the storage unit [304] in a text file.
[0121] In an implementation of the present disclosure, the one or more applications
mentioned herein may refer to the network functions such as UPF, AMF, SMF, AF,
NSSAF in a 5G network. The services provided by such network functions are
10 described with reference to Figure 1. These network functions are running on the
one or more network node servers. The one or more network node servers are physical servers which provide resources to the one or more applications or network functions running on them.
15 [0122] Further, the health check data may provide information regarding one or
more parameters that may relate to the one or more applications and may further provide insights regarding an effectiveness of the one or more applications. Further, the health check data may further point out one or more issues faced by the one or more applications.
20
[0123] In an implementation of the present disclosure, the data acquisition unit [302] is configured to collect the health check data, at the default frequency, where the default frequency may include at least one of a daily frequency, an hourly frequency, a weekly frequency, and any other similar frequency known in the state
25 of art. Further, the frequency of collecting heath check data is modifiable via the
manual user inputs. Further, the manual user input is performed at the CLI.
[0124] Further, the CLI is a text-based interface that is used to interact with one or
more units within the system [300]. Herein, the frequency for collecting the heath
30 check data of the one or more applications, is modified based on one or more
requirements (such as operation requirements). For example, in an event, the data
35
acquisition unit [302] collects the heath check data of an application ABC, in every
one hour (default frequency), but in an event, due to some operational constraints
during peak hours, the frequency may be further modified to collect said heath
check data in every 15 minutes. The modification in the frequency may further
5 assist in monitoring the performance of the application ABC specially, during the
peak hours.
[0125] The method [400] further comprise collecting, by the data acquisition unit
[302], the server data is scheduled via a time-based job scheduler. Further, the
10 server data comprises at least a free memory parameter, a network status parameter,
a server uptime parameter. In an implementation, to ensure regular dumping of health check data for both the application and server, different scheduling mechanisms are used, for example:
• Application Data Dumping: In this mechanism, the APIs provided from a
15 Java package are used. The health check data dumping task is scheduled to
run at a fixed rate.
• Server Data Dumping: In this mechanism, a job scheduler provided by the
Linux operating system is used. The script for collecting server data is
scheduled to run daily at a specific time.
20
[0126] The method [400] further explains that the server data related to the one or more network node servers may provide insights which helps in analysing the root cause whenever service outage occurs. The server data provides network node-wise detailed information in near-real-time whenever any discrepancy occurs in the
25 underlying network.
[0127] Further, the time-based job scheduler may collect the server data at the time
scheduled (such as hourly, daily, weekly, monthly). The time-based scheduling may
refer to a time gap present in between collection of the latest server data with the
30 previously collected server data by the time-based job scheduler. The time-based
36
job scheduler may further maintain an up-to-date record of the server data of the one or more network node servers.
[0128] At step [406], the method [400] comprises storing, by a storage unit [304],
5 the health check data for each of the one or more applications and the server data
for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address. In an implementation, for the one or more applications, the path where the health check data should be dumped is configured in an Excel file. This Excel file is read by the
10 one or more applications during the startup to determine where to store their health
check data. When the one or more applications perform health checks, they write the health check data to the configured path in the Excel file. The same path is also configured in the script responsible for collecting server data for each of the one or more network node servers. The script runs on each of the network node servers to
15 collect server-specific metrics (like free memory) and dumps this data to the same
configured path. This ensures that both the health check data of the one or more applications and server data of the one or more network node servers are dumped to the same location. Further, associating the health check data of an application with an IP address helps in uniquely identifying and isolating the health metrics of
20 each server. This is particularly useful in environments where multiple servers or
instances are running similar applications. By appending the IP address, we can easily track and manage the health status of each individual server. The IP address is chosen from a particular network interface (bond) on the server. This bond represents a specific network interface that the server uses to communicate. When
25 health check data is generated, it is stored in a folder named with the IP address of
the selected bond. This ensures that the data can be easily mapped back to the specific server. A script collects server details and stores this data in the storage unit [304] in a text file. This text file is also named with the same IP address (same bond), ensuring consistency in how data is identified and stored. Both the health
30 check data folder and the server detail text file use the same IP address in their
37
names. This consistent naming convention ensures that data from both sources can be easily associated with the correct server.
[0129] The method [400] further explains that the health check data of the one or
5 more applications may further be stored at a particular location (such as a folder or
similar repository) within the storage unit [304]. Herein, a name of the particular location (such as folder name) may relate to folder path in the storage unit [304]. Herein the storage unit [304] may incorporate one or more databases for storing similar data (such as heath check data and server data that may use similar IP
10 Address). For example: if an IP address of an Application A is ‘190.124.1.40’, then
the health check data associated with the application A is stored in the folder where the folder name can be ‘health_check_data_190.124.1.40’ or can be A_ health_check_data_190.124.1.40’, which allows an easy searching and retrieving of the health check data associated with the application A, when required. Further,
15 the folder may contain one or more files related to the heath check data for the
application A, therefore for eliminating any confusion within the folder, the file
name can be mentioned with data and time, at which the health check data is
collected. For example: the file names can be mentioned with
‘190.124.1.40_08072024’ or ‘A_190.124.1.40_080720924’ or
20 ‘190.124.1.40_080720924_14.35’, which may further indicate the data and/or time
and may further assist in for an easy retrieval of the one or more files that may relate to the IP address ‘190.124.1.40’.
[0130] It is to be noted that such folder name mentioned in the example mentioned
25 are just exemplary, and any other term for using a folder name may also lie within
the scope of the subject matter.
[0131] Further, each network node server from the one or more network node
servers may be associated with a corresponding one or more applications. The
30 server data is stored in the same location as the health check data of the one or more
applications. For example, a network node server 1 may be associated with the
38
application A, therefore the server data of the network node server1 may be further stored within the same folder name such as ‘sever_data_190.124.1.40’ or may be ‘1_sever _data_190.124.1.40’.
5 [0132] It is to be noted that such folder name mentioned in the example are just
exemplary, and any other term for using a folder name may also lie within the scope of the subject matter.
[0133] Also, it is to be noted that any other repository (other than folder and files)
10 may also be utilized by the storage unit [304] for storing the heath check data and
server data that may be known to a person skilled in the art.
[0134] Further, the grouping of the health check data and the server data for the one
or more applications and the one or more network node servers, respectively that
15 are associated with each other may further assist in effectively locating the location
of the health check data and the server data, in case the health check data and the server data are required for an analysis
[0135] At step [408], the method [400] comprises retrieving, by a performance
20 monitoring module [306], the health check data for the one or more applications
and the server data for the one or more node servers from the storage unit [304]. In
an implementation of the present disclosure, the health check data is retrieved by
the performance monitoring module [306] using a secure file transfer protocol
(SFTP). Both health check data related to one or more applications and server data
25 related to one or more network node servers are stored locally on each of the
network node server where the applications are running. The path for storing this
data is configured as discussed earlier. The performance monitoring module [306]
needs to collect data from each of the network node server and store it on a
centralized CLI for processing. This is achieved using the SFTP (Secure File
30 Transfer Protocol) protocol, which allows secure transfer of files over the network.
A session is created and configured using the IP address and port of each of the
39
network node server individually. Then an SFTP channel is opened from the session
and connected and then data from each of the network node server is fetched to a
preconfigured path on centralized CLI and when all the health check data and server
data is collected (of each IPs associated with each network node server) then the
5 processing of data starts.
[0136] The method [400] further explains that the performance monitoring module
[306] may retrieve the health check data and the server data from the storage unit
[304] via the SFTP, which may assure a secure and encrypted transfer of data
10 between the storage unit [304] and the performance monitoring module [306].
[0137] It is to be noted that the above-mentioned information are just exemplary and are defined for providing an understanding to a person known in the skill of the art.
15
[0138] In another aspect, the performance monitoring module [306] may firstly retrieve the health check data for a specific application and based on the IP address of said specific application, the performance monitoring module [306] may search for the one or more network node servers with same IP address.
20
[0139] At step [410], the method [400] comprises correlating, by the performance monitoring module [306], the health check for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data. The performance monitoring module [306] gathers both the health check data and
25 the server data. By using the IP address in the names of the folders and files, the
tool can bundle together the data from both sources for each server. The performance monitoring module [306] reads the health check data and the server data using the IP address as the key. The performance monitoring module [306] combines these data points into a single dataset for each server. This combined
30 dataset contains both application-specific metrics (e.g., CPU usage, disk usage) and
40
server-specific metrics (e.g., available memory, network statistics). The combined dataset is the correlation data.
[0140] The method [400] further explains that correlation data may refer to a
5 combined data linked to the heath check data of the one or more applications and
the server data of the one or more node servers. The correlated data may further describe how a particular application may impact the performance of a particular network node server and vice versa.
10 [0141] At step [412], the method [400] comprises assessing, by the performance
monitoring module [306], the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values. In an implementation of the present disclosure, the one or more predefined threshold values is specified in a property
15 file. The property file is stored in a centralized location on the Command Line
Interface (CLI) side. The property file is read using Java File APIs (Application Programming Interface). The path to the property file is specified relative to the CLI's location. The performance monitoring module [306] uses this data to perform its tasks.
20
[0142] Considering an example to understand how performance of one or more applications and the one or more network node server is assessed as described in the present disclosure. In an exemplary implementation, the property file defines threshold values for various metrics, such as,
25
CPU Usage: 40% Memory Usage: 80% Disk Usage: 70%
30 [0143] These threshold values represent the limits beyond which health status is
considered problematic. The performance monitoring module [306] extracts the
41
relevant metrics from the correlation data for each server and application. For each metric, the performance monitoring module [306] compares the collected value with the configured threshold:
5 • If the collected value exceeds the threshold, the performance monitoring
module [306] marks the health status as False.
• If the collected value is within the threshold, the performance monitoring
module [306] marks the health status as True.
10
[0144] For each application and server, the performance monitoring module [306] sets a health status flag based on the comparison:
• True if all metrics are within their respective thresholds.
• False if any metric exceeds its threshold. 15
[0145] Further, the property file (with a “.properties” extension) is a simple key-value pair configuration file commonly used in Java applications to store configuration settings. The format is plain text, and each line contains a key and its corresponding value separated by an equal sign (=).
20
[0146] The method [400] further explains that the property file may refer to a configuration file that may be used to store pre-defined threshold values for the health check data and the server data. Further, in one aspect the property file may incorporate ideal values, that are further compared with the correlation data for
25 assessing the performance of the one or more applications and the one or more
network node servers. Further, in another aspect the property file may incorporate an acceptable limit for the correlation data, based on which the performance of the one or more applications and the one or more network node servers is determined.
30 [0147] Further, the performance monitoring module [306] compares each data
point in the correlation data with the corresponding threshold value from the
42
property file to assess performance of the one or more applications and the one or more network node servers. The performance monitoring module [306] compares the correlation data with predefined threshold values, specified in the property file, for each correlation data point. The performance monitoring module [306] reads 5 the health check data and the server data using the IP address as the key. It combines these data points into a single dataset for each server. These data points are called the correlation data points.
[0148] For ease of understanding: considering a scenario where for an application 10 AB, the data point present in the corelation data, for the CPU usage parameter is 75% and the property file may incorporate the acceptable limit to be below 80%, then in such case the performance monitoring module [306] may compare the data point with the corresponding acceptable limit (75% ≤ 80%) and may accordingly determine that the CPU usage parameter for the application AB is in the acceptable 15 limit.
[0149] The method [400] further comprises determining, by the performance monitoring module [306], a health status of the one or more applications and the one or more node servers based on the assessment. Further, the method [400] 20 comprises populating, by the performance monitoring module [306], a data sheet based on the health check data, the server data, and the determined health status.
[0150] In an implementation of the present disclosure, in cases where the correlation data points are within the acceptable limit and/or close to the ideal
25 values mentioned in the property file, then the performance monitoring module [306] may determine the health status of the one or more applications and the one or more network node servers as a healthy status. Conversely, in cases the data points exceed the acceptable limit and/or far from the ideal values, then in such case the performance monitoring module [306] may determine the health status of the
30 one or more applications and the one or more network node servers as an un-healthy status.
43
[0151] Thereafter, post determining the health status of the one or more
applications and the one or more network node servers, the performance monitoring
module [306] populate the data sheet based on the health check data, the server data,
5 and the determined health status. The data sheet mentioned herein may be in from
of spread sheet. It is to be noted that the type of datasheet is just exemplary, and any other type of sheet may further be used in view of presenting the health check data, the server data, and the determined health status of the one or more applications and the one or more network node servers.
10
[0152] In one example, the performance monitoring module [306] may mark the health status as OK (in cases the data points are within the acceptable limit) and as NOT OK (in cases the data points exceed the acceptable limit) on the spreadsheet. It is again to be noted that the marking of the health status is just exemplary, and
15 any other form of marking can be used for marking the health status, known to a
person skill in the art.
[0153] Further, the structure of the datasheet may vary depending on one or more
conditions, such as a total number of the one or more applications, the network node
20 servers, and/or a list of parameters to be mentioned on the health check data and the
server data, and/or the type of data sheet used to represent the correlation data and the health status of the one or more applications and the one or more network node servers.
25 [0154] In one aspect, the structure of the data sheet may be represented in a way
such that: each row of datasheet (suppose a spreadsheet) may represent a NF (Network Function) instance or an application from the one or more applications. Furter, each column of the datasheet (suppose a spreadsheet) may represent the parameters associated with the NF instance or the application. Further, as
30 mentioned above, the NF instance or the application is determined via the IP address
of the server associated with the NF instance or the application.
44
[0155] For example, the spreadsheet can be presented as:-
Node Name %CPU usage %Memory usage Thread count Database status Free memory Network status Server uptime Health status
NF-1190.124.1.40 75% 60% 50 Active 152 Stable 18:24:06 30 days OK
NF-2190.124.1.41 85% 70% 110 Active 126 Stable 20 days NOT OK
5 [0156] The method [400] further comprises creating, by the performance
monitoring module [306], a backup of the data sheet by appending a date and time for future reference.
[0157] The method [400] further explains that the performance monitoring module
10 [306] may further create the backup of the data sheet at regular time intervals and
further store in the storage unit [304]. Further, the performance monitoring module [306] may uniquely name each data sheet in reference to the data and time of the backup. Further, in an implementation, the data sheet may be easily retrieved when required for future reference based on the date and time of the backup. 15
[0158] In yet another aspect, the backup of the data sheet may be saved in a ZIP format (compressed format) which may further store saving space of the storage unit [304].
20 [0159] Further, the method terminates at step [414].
[0160] Referring to Figure 5, an exemplary method flow diagram [500] for
monitoring a performance of one or more network node servers and one or more
applications, in accordance with exemplary implementations of the present
25 disclosure is shown. In an implementation the method [500] is performed by the
45
system [300]. Further, in an implementation, the system [300] may be present in a server device to implement the features of the present disclosure.
[0161] At step [502], the system [300] automatically collects a health check data
5 related to one or more applications. Herein, the health check data may comprise at
least a CPU usage parameter, a memory usage parameter, a thread count parameter,
a database status parameter that are related to the one or more applications. The
system [300] may collect the health check data, at the default frequency, such as at
least one of a daily frequency, an hourly frequency, a weekly frequency, and any
10 other similar frequency known in the state of art.
[0162] At step [504], the system [300] collects a server data related to the one or more network node servers through a time-based job scheduler such as cronjob. Further, the server data may comprise at least a free memory parameter, a network
15 status parameter, a server uptime parameter. Further, time scheduled may refer to a
time gap present in between collection of the latest server data with the previously collected server data. The time-based job scheduler may further maintain an up-to-date record of the server data of the one or more network node servers. The collected server data and the heath check data may be further stored at a location based on an
20 IP address associated with the one or more applications and one or more network
node servers.
[0163] At step [506], the system [300] retrieves the health check data and the server
data to a centralized Command Line Interface (CLI) using a secure file transfer
25 protocol (SFTP). The system [300] retrieve the one or more heath check data and
the server data that are located at similar locations (i.e. having similar IP address).
[0164] At step [508], the system [300] corelates the health check for each of the
application and the server data for each of the node servers based on the IP
30 addresses to get a correlation data. The correlated data may further describe how a
46
particular application may impact the performance of a particular network node server and vice versa.
[0165] Further, the system [300] assesses the performance of the one or more
5 applications and the one or more network node servers based on a comparison of
the correlation data with one or more predefined threshold values, where the one or more predefined threshold values is specified in a property file. Herein, the property file may refer to a configuration file that may be used to store pre-defined threshold values for the health check data and the server data.
10
[0166] At step [510], the system [300] further populates a data sheet based on the health check data, the server data, and the health status. In case, the values in the correlation data may differ with the one or more predefined threshold values that is specified in the property file, the system [300] may determine the health status as
15 NOT OK.
[0167] Similarly, the values in the correlation data may match with the one or more predefined threshold values that is specified in the property file, the system [300] may determine the health status as OK. 20
[0168] Further, based on the determined health status, the system [300] may further create the data sheet which mentions the correlation data along with the determined health status.
25 [0169] At step [512], the system [300] creates a backup of the data sheet at regular
time intervals by appending a date and time for future reference. The system [300] may uniquely name each data sheet with reference to the data and time of the backup.
30 [0170] Referring to Figure 6, an exemplary method flow diagram [600] for
monitoring a performance of one or more network node servers and one or more
47
applications, in accordance with exemplary implementations of the present disclosure is shown. In an implementation the method [600] is performed by the system [300]. Further, in an implementation, the system [300] may be present in a server device to implement the features of the present disclosure. 5
[0171] At step [602], the system [300] automatically collects a health check data
related to one or more applications (or Network Functions (NF)) and one or more
network server nodes. Herein, the health check data may comprise at least a CPU
usage parameter, a memory usage parameter, a thread count parameter, a database
10 status parameter that are related to the one or more applications. The system [300]
may collect the health check data, at the default frequency, such as at least one of a daily frequency, an hourly frequency, a weekly frequency, and any other similar frequency known in the state of art.
15 [0172] At step [604], the system [300] retrieves the health check data to a
centralized Command Line Interface (CLI) using a secure file transfer protocol (SFTP).
[0173] At step [606], the health check data of the one or more applications (or NFs)
20 is correlated with the one or more network node servers based on the IP address
associated with the one or more applications. The system [300] then displays the data correlation and assessment for each of the applications or NFs. The block at step [604] shows the CLI displaying the data correlation and assessment for NF-1, NF-2 and so on till NF-n. 25
[0174] Further, the system [300] assesses the performance of the one or more
applications and the one or more network node servers based on a comparison of
the correlation data with one or more predefined threshold values, where the one or
more predefined threshold values is specified in a property file. Herein, the property
30 file may refer to a configuration file that may be used to store pre-defined threshold
values for the health check data and the server data.
48
[0175] At step [608], the system [300] further populates a data sheet based on the
health check data, the server data, and the health status. The values in the correlation
data may be matched with the one or more predefined threshold values that is
5 specified in the property file, and based on this comparison, the system [300] may
determine the health status as OK. In case, the values in the correlation data may differ with the one or more predefined threshold values that is specified in the property file, the system [300] may determine the health status as NOT OK.
10 [0176] Further, based on the determined health status, the system [300] may further
create the data sheet which mentions the correlation data along with the determined health status.
[0177] At step [610], the system [300] creates a backup of the data sheet at regular
15 time intervals by appending a date and time for future reference.
[0178] The present disclosure further discloses a non-transitory computer readable storage medium storing instruction for monitoring a performance of one or more network node servers and one or more applications, the instructions include
20 executable code which, when executed by one or more units of a system [300]
causes a data acquisition unit [302] to automatically collect a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications. Further, the instructions include executable code, which when
25 executed causes a storage unit [304] to store the health check data for each of the
one or more applications and the server data for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address. Further, the instructions include executable code, which when executed causes a performance monitoring module [306] to: retrieve
30 the health check data for the one or more applications and the server data for the
one or more node servers from the storage unit [304]; correlate, the health check
49
for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data; and assess the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values. 5
[0179] As is evident from the above, the present disclosure provides a technically advanced solution for monitoring a performance of one or more network node servers and one or more applications. The automated health check solution as disclosed in the present disclosure, speeds up the process of performing health
10 checks, reducing the time required from hours to just a matter of minutes. With this
solution in place, the time taken to complete the entire health check operation is drastically minimized, allowing for increased productivity and efficiency. Secondly, this solution of the present disclosure, incorporates a data backup mechanism. It stores the collected data, including historical records, in both Excel
15 and zip formats, ensuring data integrity and availability for future reference. This
backup functionality allows for easy retrieval and analysis of past health check data. By retaining this historical information, the solution empowers users to track trends, identify patterns, and make informed decisions based on historical performance data. The present solution can be further implemented in future technologies such
20 as Sixth generation (6G) technologies.
[0180] While considerable emphasis has been placed herein on the disclosed
implementations, it will be appreciated that many implementations can be made and
that many changes can be made to the implementations without departing from the
25 principles of the present disclosure. These and other changes in the implementations
of the present disclosure will be apparent to those skilled in the art, whereby it is to be understood that the foregoing descriptive matter to be implemented is illustrative and non-limiting.
30 [0181] Further, in accordance with the present disclosure, it is to be acknowledged
that the functionality described for the various the components/units can be
50
implemented interchangeably. While specific embodiments may disclose a particular functionality of these units for clarity, it is recognized that various configurations and combinations thereof are within the scope of the disclosure. The functionality of specific units as disclosed in the disclosure should not be construed as limiting the scope of the present disclosure. Consequently, alternative arrangements and substitutions of units, provided they achieve the intended functionality described herein, are considered to be encompassed within the scope of the present disclosure.
We Claim:
1. A method [400] for monitoring a performance of one or more network node
servers and one or more applications, the method [400] comprising:
- automatically collecting, by a data acquisition unit [302], a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications;
- storing, by a storage unit [304], the health check data for each of the one or more applications and the server data for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address;
- retrieving, by a performance monitoring module [306], the health check data for the one or more applications and the server data for the one or more node servers from the storage unit [304];
- correlating, by the performance monitoring module [306], the health check data for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data; and
- assessing, by the performance monitoring module [306], the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values.
2. The method [400] as claimed in claim 1, wherein the health check data comprises at least a CPU usage parameter, a memory usage parameter, a thread count parameter, a database status parameter.
3. The method [400] as claimed in claim 1, wherein the server data comprises at least a free memory parameter, a network status parameter, a server uptime parameter.
4. The method [400] as claimed in claim 1, wherein the collecting, by the data acquisition unit [302], the server data is scheduled via a time-based job scheduler.
5. The method [400] as claimed in claim 1, wherein the health check data is retrieved by the performance monitoring module [306] using a secure file transfer protocol (SFTP).
6. The method [400] as claimed in claim 1, wherein collecting, by the data acquisition unit [302], the health check data, is performed at one of: a default frequency, and a frequency determined by manual user inputs via a command line interface (CLI).
7. The method [400] as claimed in claim 1, wherein the method [400] further comprises:
- determining, by the performance monitoring module [306], a health status of the one or more applications and the one or more network node servers based on the assessment; and
- populating, by the performance monitoring module [306], a data sheet based on the health check data, the server data, and the determined health status.
8. The method [400] as claimed in claim 7, wherein the method [400] comprises creating, by the performance monitoring module [306], a backup of the data sheet by appending a date and time for future reference.
9. The method [400] as claimed in claim 1, wherein the one or more predefined threshold values is specified in a property file.
10. A system [300] for monitoring a performance of one or more network node servers and one or more applications, the system [300] comprises:
- a data acquisition unit [302] configured to automatically collect a health check data related to one or more applications, and a server data related to one or more network node servers, wherein the heath check data is associated with execution of the one or more applications;
- a storage unit [304] connected to at least the data acquisition unit [302], wherein the storage unit [304] is configured to store the health check data for each of the one or more applications and the server data for each of the one or more network node servers at a location, wherein the health check data for each of the application is associated with an IP address;
- a performance monitoring module [306] connected to at least the storage unit [304], wherein the performance monitoring module [306] is configured to:
o retrieve the health check data for the one or more applications and the server data for the one or more node servers from the storage unit [304],
o correlate, the health check data for each of the application and the server data for each of the node servers based on the IP addresses to get a correlation data; and
o assess the performance of the one or more applications and the one or more network node servers based on a comparison of the correlation data with one or more predefined threshold values.
11. The system [300] as claimed in claim 10, wherein the health check data comprises at least a CPU usage parameter, a memory usage parameter, a thread count parameter, a database status parameter.
12. The system [300] as claimed in claim 10, wherein the server data comprises at least a free memory parameter, a network status parameter, a server uptime parameter.
13. The system [300] as claimed in claim 10, wherein the data acquisition unit [302] is configured to collect the server data at a time scheduled via a time-based job scheduler.
14. The system [300] as claimed in claim 10, wherein the health check data is retrieved by the performance monitoring module [306] using a secure file transfer protocol (SFTP).
15. The system [300] as claimed in claim 10, wherein the data acquisition unit [302] is configured to collect the health check data, at one of: a default frequency and a frequency determined by manual user inputs via a command line interface (CLI).
16. The system [300] as claimed in claim 10, wherein the performance monitoring module [306] is further configured to:
- determine a health status of the one or more applications and the one or more network node servers based on the assessment, and
- populate a data sheet based on the health check data, the server data, and the determined health status.
17. The system [300] as claimed in claim 16, wherein the performance
monitoring module [306] is further configured to:
- create a backup of the data sheet by appending a date and time for future
reference.
18. The system [300] as claimed in claim 10, wherein the one or more
predefined threshold values is specified in a property file.
| # | Name | Date |
|---|---|---|
| 1 | 202321048380-STATEMENT OF UNDERTAKING (FORM 3) [19-07-2023(online)].pdf | 2023-07-19 |
| 2 | 202321048380-PROVISIONAL SPECIFICATION [19-07-2023(online)].pdf | 2023-07-19 |
| 3 | 202321048380-FORM 1 [19-07-2023(online)].pdf | 2023-07-19 |
| 4 | 202321048380-FIGURE OF ABSTRACT [19-07-2023(online)].pdf | 2023-07-19 |
| 5 | 202321048380-DRAWINGS [19-07-2023(online)].pdf | 2023-07-19 |
| 6 | 202321048380-FORM-26 [20-09-2023(online)].pdf | 2023-09-20 |
| 7 | 202321048380-Proof of Right [12-10-2023(online)].pdf | 2023-10-12 |
| 8 | 202321048380-ORIGINAL UR 6(1A) FORM 1 & 26)-301123.pdf | 2023-12-08 |
| 9 | 202321048380-FORM-5 [18-07-2024(online)].pdf | 2024-07-18 |
| 10 | 202321048380-ENDORSEMENT BY INVENTORS [18-07-2024(online)].pdf | 2024-07-18 |
| 11 | 202321048380-DRAWING [18-07-2024(online)].pdf | 2024-07-18 |
| 12 | 202321048380-CORRESPONDENCE-OTHERS [18-07-2024(online)].pdf | 2024-07-18 |
| 13 | 202321048380-COMPLETE SPECIFICATION [18-07-2024(online)].pdf | 2024-07-18 |
| 14 | 202321048380-FORM 3 [02-08-2024(online)].pdf | 2024-08-02 |
| 15 | 202321048380-Request Letter-Correspondence [20-08-2024(online)].pdf | 2024-08-20 |
| 16 | 202321048380-Power of Attorney [20-08-2024(online)].pdf | 2024-08-20 |
| 17 | 202321048380-Form 1 (Submitted on date of filing) [20-08-2024(online)].pdf | 2024-08-20 |
| 18 | 202321048380-Covering Letter [20-08-2024(online)].pdf | 2024-08-20 |
| 19 | 202321048380-CERTIFIED COPIES TRANSMISSION TO IB [20-08-2024(online)].pdf | 2024-08-20 |
| 20 | Abstract-1.jpg | 2024-09-06 |
| 21 | 202321048380-FORM 18A [12-03-2025(online)].pdf | 2025-03-12 |
| 22 | 202321048380-FER.pdf | 2025-04-22 |
| 23 | 202321048380-FORM 3 [24-06-2025(online)].pdf | 2025-06-24 |
| 24 | 202321048380-FER_SER_REPLY [26-06-2025(online)].pdf | 2025-06-26 |
| 1 | 202321048380_SearchStrategyNew_E_202321048380E_17-03-2025.pdf |