The following relates to data processing systems and processes, and more particularly relates to systems and processes for generating a configuration file based upon an application registry.
Monitoring applications are useful tools for monitoring data in servers and other distributed computing systems. Monitoring applications can monitor, report and analyze the data produced by the applications running on the server. Typically the monitoring applications have to be manually configured so that the monitoring application knows what monitoring targets to monitor. Further, if the desired monitoring targets change, the monitoring application has to be manually reconfigured.
Exemplary embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and
According to various exemplary embodiments, systems and methods are provided for generating a configuration file based upon an application registry directory. The application registry directory includes an indication of each application or process running for each user on the server. Each application can be associated with a monitoring target. Accordingly, by leveraging the registry directory to create a configuration file, a monitoring application can automatically be configured to monitor desired monitoring targets without any user direction.
The server 110 includes a processor 120 coupled to a memory 130. The processor 120 may be realized using any type of processor hardware, platform, or technology. For example, the processor 120 could be a central processing unit (CPU), graphical processing unit (GPU), a physics processing unit (PPU), a microcontroller, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or any other type of logic device, or combination thereof. The memory 130 may be one or more non-volatile memories, one or more volatile memories or any combination thereof.
One or more users may be logged into the server 110 from a computer 150. A user may be logged into the server if the user's computer 150 is connected to the server via a network 160 or communicatively connected to the server 110 in any other manner. Each user may be running one or more applications or other processes on the server 110. Furthermore, applications may be running on the server 110 and may have a uniquely defined user associated with them, however, the uniquely defined user may not be an actual person. In other words, the users logged into the server may be actual users, virtual users, or a combination thereof. The server 110 may store the identification of each process or application a user is running in an application registry directory or an application registry file associated with the user stored in the memory 130. The server 110 may update the registry file or directory dynamically based upon the applications and/or processes each user is running
In one embodiment, for example, the server 110 may be a Linux server. In this embodiment, for example, the server 110 may attempt to locate a “/home/<user>/registry” directory for each user. The “/home/<user>/registry” directory would include a registry file for each application the user is running on the server 110. Furthermore, the server 110 may only search for the registry directory for user's in a predetermined group such that only the applications of the user's in the predetermined group are monitored, as discussed in further detail below.
In one embodiment, for example, the server 110 includes a monitoring application 140, as illustrated in
The monitoring application 140 can be configured at run time to determine what monitoring targets the monitoring application 140 needs to monitor based upon a configuration file. Each application run by a user on the server could correspond to a monitoring target in the system 100 that the monitoring application should monitor. The monitoring targets may include, but are not limited to, data being generated by the applications, network infrastructure, network security, or any other desirable trackable data. The configuration file used to configure the monitoring application 140 may be created by the server 110 based upon the applications being run by users logged into the server, as discussed in further detail below.
After the users to be monitored are identified, a search is performed for a registry directory and/or registry files associated with each user. (Step 220). In one embodiment, for example, the processor 120 or another suitable processor could perform the search. As discussed above, the server 110 could be a Linux server. Accordingly, in one embodiment, a search could be performed for a “/home/<user>/registry” directory for each user. The “/home/<user>/registry” directory in a Linux environment should include a registry file for each application or process the user is running on the server. The location of the registry directory and/or registry files in other environments may vary depending upon the environment.
Once the registry directory and/or registry files that each user is running are identified, one or more monitoring target for each application included in the registry directory and/or registry files is determined. (Step 230). Each application or process being run by a user may correspond to a monitoring target in a system, such as the system 100 illustrated in
In one embodiment, for example, a processor, such as the processor 120 illustrated in
After the monitoring targets are identified, a configuration file is generated for the monitoring application. (Step 240). The configuration file includes an indication of each of the monitoring targets to be monitored by a monitoring application. The configuration file may be generated to have a format having predetermined characteristics such that a monitoring application can easily be configured by reading the configuration file. In one embodiment, for example, a processor, such as processor 120 illustrated in
The configuration file may be saved at a predetermined location (e.g., a predetermined directory) and with a predetermined name. Accordingly, the monitoring application, upon being initiated, can easily locate the configuration file and determine which monitoring targets to monitor based upon the configuration file. (Step 250). As discussed above, the monitoring application may be configured to monitor different monitoring targets based upon a configuration file each time the monitoring application is initiated. The monitoring application may also dynamically update the monitoring targets to be monitored if the configuration file is updated.
A “tenant” generally refers to a group of users that shares access to common data within database 330. Tenants may represent customers, customer departments, business or legal organizations, and/or any other entities that maintain data for particular sets of users within system 300. Although multiple tenants may share access to a common server 302 and database 330, the particular data and services provided from server 302 to each tenant can be securely isolated from those provided to other tenants. The multi-tenant architecture allows different sets of users to share functionality without necessarily sharing each other's data 332.
Database 330 is any sort of repository or other data storage system capable of storing and managing data 332 associated with any number of tenants. Database 330 may be implemented using any type of conventional database server hardware. In various embodiments, database 330 shares processing hardware 304 with server 302. In other embodiments, database 330 is implemented using separate physical and/or virtual database server hardware that communicates with server 302 to perform the various functions described herein.
Server 302 is implemented using one or more actual and/or virtual computing systems that collectively provide a dynamic application platform 310 for generating virtual applications 328A-B. Server 302 operates with any sort of conventional computing hardware 304, such as any processor 305, memory 306, input/output features 307 and the like. Processor 305 may be implemented using one or more of microprocessors, microcontrollers, processing cores and/or other computing resources spread across any number of distributed or integrated systems, including any number of “cloud-based” or other virtual systems. Memory 306 represents any non-transitory short or long term storage capable of storing programming instructions for execution on processor 305, including any sort of random access memory (RAM), read only memory (ROM), flash memory, magnetic or optical mass storage, and/or the like. Input/output features 307 represent conventional interfaces to networks (e.g., to network 345, or any other local area, wide area or other network), mass storage, display devices, data entry devices and/or the like. In a typical embodiment, application platform 310 gains access to processing resources, communications interfaces and other features of hardware 304 using any sort of conventional or proprietary operating system 308. As noted above, server 302 may be implemented using a cluster of actual and/or virtual servers operating in conjunction with each other, typically in association with conventional network communications, cluster management, load balancing and other features as appropriate.
Generally speaking, the various functions and features of method 200 may be carried out with any sort of hardware, software and/or firmware logic that is stored and/or executed on any platform. Some or all of method 200 may be carried out, for example, by logic executing within system 100 in
The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of alternates. Any implementation described herein as “exemplary” should not necessarily be construed as preferred or advantageous over other implementations.
Although several exemplary embodiments have been presented in the foregoing description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. To the contrary, various changes may be made in the function and arrangement of the various features described herein without departing from the scope of the claims and their legal equivalents.
This application claims the benefit of U.S. provisional patent application Ser. No. 61/511,760, filed Jul. 26, 2011, the entire content of which is incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
5577188 | Zhu | Nov 1996 | A |
5608872 | Schwartz et al. | Mar 1997 | A |
5649104 | Carleton et al. | Jul 1997 | A |
5715450 | Ambrose et al. | Feb 1998 | A |
5761419 | Schwartz et al. | Jun 1998 | A |
5819038 | Carleton et al. | Oct 1998 | A |
5821937 | Tonelli et al. | Oct 1998 | A |
5831610 | Tonelli et al. | Nov 1998 | A |
5873096 | Lim et al. | Feb 1999 | A |
5918159 | Fomukong et al. | Jun 1999 | A |
5963953 | Cram et al. | Oct 1999 | A |
6092083 | Brodersen et al. | Jul 2000 | A |
6169534 | Raffel et al. | Jan 2001 | B1 |
6178425 | Brodersen et al. | Jan 2001 | B1 |
6189011 | Lim et al. | Feb 2001 | B1 |
6216135 | Brodersen et al. | Apr 2001 | B1 |
6233617 | Rothwein et al. | May 2001 | B1 |
6266669 | Brodersen et al. | Jul 2001 | B1 |
6295530 | Ritchie et al. | Sep 2001 | B1 |
6324568 | Diec et al. | Nov 2001 | B1 |
6324693 | Brodersen et al. | Nov 2001 | B1 |
6336137 | Lee et al. | Jan 2002 | B1 |
D454139 | Feldcamp et al. | Mar 2002 | S |
6367077 | Brodersen et al. | Apr 2002 | B1 |
6393605 | Loomans | May 2002 | B1 |
6405220 | Brodersen et al. | Jun 2002 | B1 |
6434550 | Warner et al. | Aug 2002 | B1 |
6446089 | Brodersen et al. | Sep 2002 | B1 |
6535909 | Rust | Mar 2003 | B1 |
6549908 | Loomans | Apr 2003 | B1 |
6553563 | Ambrose et al. | Apr 2003 | B2 |
6560461 | Fomukong et al. | May 2003 | B1 |
6574635 | Stauber et al. | Jun 2003 | B2 |
6577726 | Huang et al. | Jun 2003 | B1 |
6601087 | Zhu et al. | Jul 2003 | B1 |
6604117 | Lim et al. | Aug 2003 | B2 |
6604128 | Diec | Aug 2003 | B2 |
6609150 | Lee et al. | Aug 2003 | B2 |
6621834 | Scherpbier et al. | Sep 2003 | B1 |
6654032 | Zhu et al. | Nov 2003 | B1 |
6665648 | Brodersen et al. | Dec 2003 | B2 |
6665655 | Warner et al. | Dec 2003 | B1 |
6684438 | Brodersen et al. | Feb 2004 | B2 |
6711565 | Subramaniam et al. | Mar 2004 | B1 |
6724399 | Katchour et al. | Apr 2004 | B1 |
6728702 | Subramaniam et al. | Apr 2004 | B1 |
6728960 | Loomans et al. | Apr 2004 | B1 |
6732095 | Warshavsky et al. | May 2004 | B1 |
6732100 | Brodersen et al. | May 2004 | B1 |
6732111 | Brodersen et al. | May 2004 | B2 |
6754681 | Brodersen et al. | Jun 2004 | B2 |
6763351 | Subramaniam et al. | Jul 2004 | B1 |
6763501 | Zhu et al. | Jul 2004 | B1 |
6768904 | Kim | Jul 2004 | B2 |
6782383 | Subramaniam et al. | Aug 2004 | B2 |
6804330 | Jones et al. | Oct 2004 | B1 |
6826565 | Ritchie et al. | Nov 2004 | B2 |
6826582 | Chatterjee et al. | Nov 2004 | B1 |
6826745 | Coker | Nov 2004 | B2 |
6829655 | Huang et al. | Dec 2004 | B1 |
6842748 | Warner et al. | Jan 2005 | B1 |
6850895 | Brodersen et al. | Feb 2005 | B2 |
6850949 | Warner et al. | Feb 2005 | B2 |
7340411 | Cook | Mar 2008 | B2 |
7620655 | Larsson et al. | Nov 2009 | B2 |
7698160 | Beaven et al. | Apr 2010 | B2 |
8082301 | Ahlgren et al. | Dec 2011 | B2 |
8095413 | Beaven | Jan 2012 | B1 |
8095594 | Beaven et al. | Jan 2012 | B2 |
8275836 | Beaven et al. | Sep 2012 | B2 |
20010044791 | Richter et al. | Nov 2001 | A1 |
20020072951 | Lee et al. | Jun 2002 | A1 |
20020082892 | Raffel | Jun 2002 | A1 |
20020129352 | Brodersen et al. | Sep 2002 | A1 |
20020140731 | Subramaniam et al. | Oct 2002 | A1 |
20020143997 | Huang et al. | Oct 2002 | A1 |
20020162090 | Parnell et al. | Oct 2002 | A1 |
20020165742 | Robbins | Nov 2002 | A1 |
20030004971 | Gong | Jan 2003 | A1 |
20030018705 | Chen et al. | Jan 2003 | A1 |
20030018830 | Chen et al. | Jan 2003 | A1 |
20030066031 | Laane et al. | Apr 2003 | A1 |
20030066032 | Ramachandran et al. | Apr 2003 | A1 |
20030069936 | Warner et al. | Apr 2003 | A1 |
20030070000 | Coker et al. | Apr 2003 | A1 |
20030070004 | Mukundan et al. | Apr 2003 | A1 |
20030070005 | Mukundan et al. | Apr 2003 | A1 |
20030074418 | Coker et al. | Apr 2003 | A1 |
20030084018 | Chintalapati et al. | May 2003 | A1 |
20030120675 | Stauber et al. | Jun 2003 | A1 |
20030151633 | George et al. | Aug 2003 | A1 |
20030159136 | Huang et al. | Aug 2003 | A1 |
20030187921 | Diec et al. | Oct 2003 | A1 |
20030189600 | Gune et al. | Oct 2003 | A1 |
20030204427 | Gune et al. | Oct 2003 | A1 |
20030206192 | Chen et al. | Nov 2003 | A1 |
20030225730 | Warner et al. | Dec 2003 | A1 |
20040001092 | Rothwein et al. | Jan 2004 | A1 |
20040010489 | Rio et al. | Jan 2004 | A1 |
20040015981 | Coker et al. | Jan 2004 | A1 |
20040027388 | Berg et al. | Feb 2004 | A1 |
20040128001 | Levin et al. | Jul 2004 | A1 |
20040186860 | Lee et al. | Sep 2004 | A1 |
20040193510 | Catahan et al. | Sep 2004 | A1 |
20040199489 | Barnes-Leon et al. | Oct 2004 | A1 |
20040199536 | Barnes Leon et al. | Oct 2004 | A1 |
20040199543 | Braud et al. | Oct 2004 | A1 |
20040249854 | Barnes-Leon et al. | Dec 2004 | A1 |
20040260534 | Pak et al. | Dec 2004 | A1 |
20040260659 | Chan et al. | Dec 2004 | A1 |
20040268299 | Lei et al. | Dec 2004 | A1 |
20050050555 | Exley et al. | Mar 2005 | A1 |
20050091098 | Brodersen et al. | Apr 2005 | A1 |
20070086336 | Richards et al. | Apr 2007 | A1 |
20090204699 | Kortright | Aug 2009 | A1 |
20100057520 | Rejai | Mar 2010 | A1 |
20100162273 | Shoji et al. | Jun 2010 | A1 |
20110004682 | Honnold et al. | Jan 2011 | A1 |
20110041009 | Hom et al. | Feb 2011 | A1 |
20110225649 | Bhogal et al. | Sep 2011 | A1 |
20110295727 | Ferris et al. | Dec 2011 | A1 |
20120005334 | Raja et al. | Jan 2012 | A1 |
20120084413 | Pasternak | Apr 2012 | A1 |
20120218917 | Komarevtsen | Aug 2012 | A1 |
20120259960 | Sharma et al. | Oct 2012 | A1 |
Entry |
---|
Lewis, “Understanding the Registry”, May 1999. |
Number | Date | Country | |
---|---|---|---|
20130031245 A1 | Jan 2013 | US |
Number | Date | Country | |
---|---|---|---|
61511760 | Jul 2011 | US |