US11036612B1 - Centralized application resource determination based on performance metrics - Google Patents

Centralized application resource determination based on performance metrics Download PDF

Info

Publication number
US11036612B1
US11036612B1 US16/794,267 US202016794267A US11036612B1 US 11036612 B1 US11036612 B1 US 11036612B1 US 202016794267 A US202016794267 A US 202016794267A US 11036612 B1 US11036612 B1 US 11036612B1
Authority
US
United States
Prior art keywords
performance metrics
resources
application
transformation
transformation definition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US16/794,267
Other versions
US20210182172A1 (en
Inventor
V Vimal Das Kammath
Zacharia George
Vipul CHAUDHARY
Madhan Sankar
Mahesh Voleti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
VMware LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VMware LLC filed Critical VMware LLC
Assigned to VMWARE, INC. reassignment VMWARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHAUDHARY, VIPUL, GEORGE, ZACHARIA, KAMMATH, V Vimal Das, SANKAR, MADHAN, VOLETI, MAHESH
Application granted granted Critical
Publication of US11036612B1 publication Critical patent/US11036612B1/en
Publication of US20210182172A1 publication Critical patent/US20210182172A1/en
Assigned to VMware LLC reassignment VMware LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: VMWARE, INC.
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Definitions

  • the present disclosure relates to computing environments, and more particularly to methods, techniques, and centralized systems for determining application resources based on performance metrics of an application.
  • Example endpoint may be a physical computer system, a workload, and the like.
  • multiple physical computer systems e.g., host computing systems
  • Computer virtualization may be a technique that involves encapsulating a representation of a physical computing machine platform into a virtual machine that may be executed under the control of virtualization software running on hardware computing platforms.
  • the hardware computing platforms may also be referred as the host computing systems or servers.
  • a virtual machine can be a software-based abstraction of the physical computer system.
  • Each virtual machine may be configured to execute an operating system (OS), referred to as a guest OS, and applications.
  • OS operating system
  • a container may be a data computer node that runs on top of a host OS without the need for a hypervisor or separate OS.
  • the applications running on the endpoints may be monitored to provide performance metrics (e.g., application metrics, operating system metrics, and the like) in real time to detect and diagnose issues.
  • FIG. 1A is a block diagram of an example computing environment, including an application monitoring server to determine application resources based on performance metrics of an application;
  • FIG. 1B is an example block diagram of the application monitoring server of FIG. 1A , depicting additional features;
  • FIG. 2 illustrates an example representation of the determined application resources associated with the application
  • FIG. 3 is an example sequence diagram illustrating a sequence of events to determine application resources based on performance metrics of an application
  • FIG. 4 is an example flow diagram illustrating determining application resources based on performance metrics of an application.
  • FIG. 5 is a block diagram of an example computing device including a non-transitory computer-readable storage medium storing instructions to determine application resources based on performance metrics of an application.
  • Examples described herein may provide an enhanced computer-based and network-based method, technique, and centralized system to determine application resources based on performance metrics of an application in a computing environment.
  • Computing environment may be a physical computing environment (e.g. an on-premise enterprise computing environment or a physical data center) and/or virtual computing environment (e.g., a cloud computing environment, a virtualized environment, and the like).
  • the virtual computing environment may be a pool or collection of cloud infrastructure resources designed for enterprise needs.
  • the resources may be a processor (e.g., central processing unit (CPU)), memory (e.g., random-access memory (RAM)), storage (e.g., disk space), and networking (e.g., bandwidth).
  • the virtual computing environment may be a virtual representation of the physical data center, complete with servers, storage clusters, and networking components, all of which may reside in virtual space being hosted by one or more physical data centers.
  • Example virtual computing environment may include different endpoints (e.g., physical computers, virtual machines, and/or containers).
  • the computing environment may include multiple application hosts (i.e., physical computers) executing different workloads such as virtual machines, containers, and the like running therein.
  • Example endpoints may execute different types of applications.
  • API application performance monitoring
  • API application performance management
  • Example performance monitoring tool or application or platform e.g., VMware® vRealize Operations (vROps), Vmware WavefrontTM, and the like
  • vROps VMware® vRealize Operations
  • Vmware WavefrontTM Vmware WavefrontTM
  • Example performance monitoring tool or application or platform may receive performance metrics associated with applications from agents running in the endpoints. Further, the performance monitoring platform may display the performance metrics in a form of dashboards, for instance.
  • the agents running in the endpoints may collect the performance metrics.
  • the agents may not perform any function on the collected performance metrics to determine resources associated with the application.
  • the performance monitoring platform may see value add in discovering and displaying the application resources and their relationships on the dashboards.
  • the performance monitoring platform may have to analyse the performance metrics to detect and represent the ‘Tomcat Server’ specific resources such as ‘request processors’, ‘web modules’, and the like.
  • the performance monitoring platform may have to perform significant computation when the computing environment become more complex (e.g., as number of endpoints and corresponding applications increases). Hence, it is challenging for the performance monitoring platform to derive the application resources and their relationships.
  • specialized agents may be developed to collect and analyse the performance metrics to determine the application resources.
  • Example specialized agents may discover application specific resources and their relationships in a desired model and send to the performance monitoring platform for presenting.
  • cost and effort in developing such specialized agents may be significantly high.
  • discovered resources in the particular model from the specialized agents may not be consumed by more than one type of performance monitoring platform as different performance monitoring platforms may require different resource models and hierarchies.
  • vROps may consume the analysed data in a format different than Wavefront.
  • any change in a resource model and hierarchy in the applications may require upgrading the specialized agent at the endpoint.
  • Examples described herein may provide a centralized approach to determine application resources based on performance metrics.
  • Examples described herein may provide an application monitoring server including a metric parser to receive the performance metrics associated with an endpoint and parse the received performance metrics.
  • Example received performance metrics may be in a source format.
  • the application monitoring server may include a resource extractor to apply a transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format and present information associated with the plurality of resources on a graphical user interface.
  • Example plurality of resources may be associated with an application being executed in the endpoint.
  • examples described herein may eliminate a need for specialized agents as the application resources can be determined from the performance metrics collected by an agent.
  • FIG. 1A is a block diagram of an example computing environment 100 , including an application monitoring server 110 to determine application resources based on performance metrics of an application.
  • Example computing environment 100 may be a cloud computing environment.
  • cloud computing environment 100 may be VMware vSphere®.
  • Cloud computing environment 100 (e.g., a virtualized cloud computing environment) may include one or more computing platforms that support the creation, deployment, and management of virtual machine-based cloud applications.
  • Example cloud computing environment 100 may include multiple host computing systems 102 A- 102 N, each executing corresponding ones of workloads (e.g., virtual machines 104 A- 104 N, containers, and the like).
  • Example host computing system e.g., 102 A- 102 N
  • the physical computer may be a hardware-based device (e.g., a personal computer, a laptop, or the like) including an operating system (OS).
  • a virtual machine e.g., 104 A- 104 N
  • a container may be a data computer node that runs on top of a host operating system (e.g., 102 A- 102 N) without the need for the hypervisor or separate operating system.
  • virtual machines 104 A- 104 N may be considered as the endpoints executing multiple applications.
  • a container or a physical machine may also be considered as an endpoint executing the applications.
  • An application also referred to as an application program or application software, may be a computer software package that performs a specific function directly for an end user or, in some cases, for another application. Examples of applications may include word processors, database programs, web browsers, development tools, image editors, communication platforms, and the like.
  • endpoints 104 A- 104 N may include corresponding agents 106 A- 106 N.
  • each agent 106 A- 106 N may run in a respective one of endpoints 104 A- 104 N to monitor the applications running on corresponding endpoints 104 A- 104 N.
  • each agent 106 A- 106 N may real-time monitor the applications to collect the performance metrics corresponding to an operating system and/or the applications associated with corresponding endpoints 104 A- 104 N.
  • agents 106 A- 106 N may publish the performance metrics via a network to other systems for analyzing the performance metrics.
  • Example network can be a managed Internet protocol (IP) network administered by a service provider.
  • IP Internet protocol
  • the network may be implemented using wireless protocols and technologies, such as WiFi, WiMax, and the like.
  • the network can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment.
  • the network may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.
  • LAN wireless local area network
  • WAN wireless wide area network
  • PAN personal area network
  • VPN virtual private network
  • cloud computing environment 100 may include application remote collector 108 to collect the performance metrics of the operating system and/or the applications associated with endpoints 104 A- 104 N, in runtime, for monitoring and troubleshooting the endpoints 104 A- 104 N.
  • application remote collector 108 may be implemented in a computing device that is connected external to application monitoring server 110 or may be implemented as a part of application monitoring server 110 .
  • cloud computing environment 100 may include application monitoring server 110 .
  • application monitoring server 110 may include a metric parser 112 and a resource extractor 114 .
  • Metric parser 112 may receive the performance metrics associated with endpoints 104 A- 104 N via application remote collector 108 .
  • the performance metrics may be in a source format.
  • the source format may be a Wavefront format, InfluxDB format, MQ Telemetry Transport (MQTT) format, Advanced Message Queuing Protocol (AMQP) format, or the like.
  • resource extractor 114 may apply a transformation definition to the performance metrics to determine a plurality of resources in a destination format.
  • each of the plurality of resources may be associated with corresponding applications being executed in endpoint 104 A- 104 N.
  • the destination format may be compatible to a target application (e.g., performance monitoring applications or platforms such as vROps, Wavefront, and the like).
  • Example metric parser 112 and resource extractor 114 may be described in FIG. 1B .
  • FIG. 1B is a block diagram of application monitoring server 110 of FIG. 1A , depicting additional features.
  • application monitoring server 110 may be communicatively connected to a repository 152 .
  • repository 152 may store a template including the transformation definition.
  • Example transformation definition may provide knowledge of determining the plurality of resources associated with the application in the destination format.
  • the destination format may be compatible to the target application (e.g., vROps, Wavefront, and the like).
  • application monitoring server 110 may have no knowledge about any application or corresponding resources.
  • the knowledge may be declared in the transformation definition and provided as another input to application monitoring server 110 .
  • the transformation definition may be configured declaratively (e.g., via Extensible Markup Language (XML)) as described in FIG. 3 .
  • XML Extensible Markup Language
  • application monitoring server 110 may include metric parser 112 to receive the performance metrics associated with an endpoint 104 A.
  • metric parser 112 may receive the performance metrics from agent 106 A running in corresponding endpoint 104 A via the network.
  • metric parser 112 may receive the performance metrics from application remote collector 108 via the network.
  • Example performance metrics may be in a source format (e.g., Wavefront format).
  • metric parser 112 may receive the performance metrics associated with ‘Microsoft® Structured Query Language (SQL) ServerTM’ from the Telegraf agent, which may be in the Wavefront format.
  • the performance metrics may include metrics that may measure the performance of various aspects of the application. Example subset of the performance metrics may be depicted in example 1. In the performance metrics shown in example 1, the raw performance metrics may not provide a list of resources explicitly. However, the performance metrics may include metrics such as reads/sec, writes/sec, and the like for each resource as shown in example 1.
  • vc_uuid “f43a2a5b-7cb2-49b5-9d45-62179df90935”
  • vm_mor “vm-43”
  • vc_uuid “f43a2a5b-7cb2-49b5-9d45-62179df90935”
  • vm_mor “vm-43”
  • vc_uuid “f43a2a5b-7cb2-49b5-9d45-62179df90935”
  • vm_mor “vm-43”
  • metric parser 112 may parse the received performance metrics.
  • metric parser 112 may parse the performance metrics to extract relevant information from the performance metrics.
  • metric parser 112 may parse the performance metrics depicted in example 1 to index (e.g., metric name, value, time stamp, source tag, point tag, and the like) the performance metrics as depicted in Table 1:
  • metric parser 112 may parse the performance metrics to omit irrelevant data such as the point tags and timestamp as they may not have significance in the context of determining the application resources.
  • application monitoring server 110 may include a resource extractor 114 to apply the transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format.
  • the plurality of resources is associated with an application being executed in endpoint 104 A.
  • resource extractor 114 may apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that may be compatible to the target application.
  • Example transformation definition is depicted in example 2.
  • the transformation definition may be represented in a transformation definition language.
  • Example transformation definition language may be an Extensible Markup Language (XML)-based transformation definition language.
  • XML Extensible Markup Language
  • the transformation definition depicted in example 2 may illustrate:
  • resource extractor 114 may apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources. For example, when the transformation definition depicted in example 2 is run against the parsed performance metrics, resource extractor 114 may produce output of determined resources and the hierarchical relationship of the resources along with the performance metrics associated to each resource. In one example, the transformations performed using the transformation definition may not depend on the input data format. For example, the transformation definition may be applied on the performance metrics in the Wavefront format that Telegraf output plugin support. However, resource extractor 114 may support output plugin formats such as InfluxDB, MQTT, AMQP, and the like.
  • resource extractor 114 may present the plurality of resources, the hierarchical relationships between the plurality of resources, and the performance metrics corresponding to the plurality resources on a graphical user interface.
  • Example output of resource extractor 114 is depicted in FIG. 3 .
  • examples described herein may provide application monitoring server 110 that ingests raw performance metrics coming in any output plugin format (e.g., Wavefront, InfluxDB, and the like) from the agent (e.g., Telegraf) and outputs the discovered resource information, their relationships and their metrics in a desired format.
  • any output plugin format e.g., Wavefront, InfluxDB, and the like
  • Telegraf Telegraf
  • the functionalities described herein, in relation to instructions to implement functions of metric parser 112 , resource extractor 114 , and any additional instructions described herein in relation to the storage medium may be implemented as engines or modules comprising any combination of hardware and programming to implement the functionalities of the modules or engines described herein.
  • the functions of metric parser 112 and resource extractor 114 may also be implemented by a respective processor.
  • the processor may include, for example, one processor or multiple processors included in a single device or distributed across multiple devices.
  • application monitoring server 110 can be a part of management software (e.g., vROps and Wavefront that are offered by VMware®).
  • FIG. 2 illustrates an example representation 200 of the determined application resources associated with the application 202 .
  • a ‘Tomcat Server’ e.g., application 202
  • an application monitoring server e.g., application monitoring server 110 of FIGS. 1A and 1B
  • Example resources e.g., 204 , 206 , and 208
  • Example resources may include databases such as ‘request processors’ (e.g., 204 ) and ‘web modules’ (e.g., 206 and 208 ).
  • performance metrics associated to each resource may be presented.
  • the performance metrics of ‘web module’ e.g., 206
  • the resources such as databases and their hierarchical relationships are depicted.
  • examples described herein may be implemented to determine other resources such as connectors, indices, clusters, and the like.
  • the transformation definition may include necessary transformation rules to determine different kinds of resources.
  • FIG. 3 is an example sequence diagram 300 illustrating a sequence of events to determine application resources based on performance metrics of an application.
  • similarly named elements of FIG. 3 may be similar in structure and/or function to elements described with respect to FIGS. 1A and 1B .
  • the sequence diagram may represent the interactions and the operations involved in determining the application resources based on the performance metrics of the application.
  • FIG. 3 illustrates process objects including agent 106 A, application remote controller 108 , application monitoring server 110 , repository 152 , metric parser 112 , and resource extractor 114 along with their respective vertical lines originating from them.
  • the vertical lines of agent 106 A, application remote controller 108 , application monitoring server 110 , repository 152 , metric parser 112 , and resource extractor 114 may represent the processes that may exist simultaneously.
  • the horizontal arrows e.g., 302 , 304 , 308 , 310 , 312 , 314 , 318 , and 320
  • activation boxes e.g., 306 , 316 , and 322 ) between the horizontal arrows may represent the process that is being performed in the respective process object.
  • the sequence of events to determine the application resources may be segregated into design phase 300 A (e.g., 302 to 308 ) and runtime phase 300 B ( 310 to 322 ).
  • design phase 300 A transformation definition used to determine the application resources may be generated based on historical performance metrics.
  • runtime phase 300 B the application resources may be determined using the generated transformation definition.
  • application remote collector 108 may retrieve historical performance metrics corresponding to a predefined period.
  • Example historical performance metrics may be associated with an application running in endpoint 104 A corresponding to the predefined period.
  • application remote collector 108 may retrieve the historical performance metrics from agent 106 A as shown in FIG. 3 .
  • application remote collector 108 may retrieve the historical performance metrics from a data repository, where the historical performance metrics are stored.
  • application monitoring server 110 may receive the historical performance metrics associated with the application from application remote collector 108 .
  • application monitoring server 110 may generate transformation rules to determine a plurality of resources corresponding to the application using the historical performance metrics.
  • application monitoring server 110 may define the transformation definition to include the transformation rules in a transformation definition language.
  • application monitoring server 110 may store the transformation definition including the transformation rules in repository 152 .
  • the historical performance metrics may be collected for the predefined period corresponding to each application. Further, the historical performance metrics may be analyzed in detail to generate the transformation definition, which may be used to identify and discover resources corresponding to each application.
  • the transformation definition may be generated once and may be updated based on modifications in the resources corresponding to the applications.
  • application remote collector 108 may receive real-time performance metrics associated with the application from agent 106 A.
  • application monitoring server 110 may receive the performance metrics from application remote collector 108 .
  • metric parser 112 may further receive the performance metrics. In one example, the performance metrics may be in a source format.
  • metric parser 112 may parse the received performance metrics.
  • resource extractor 114 may receive the parsed performance metrics from metric parser 112 .
  • resource extractor 114 may access the transformation definition from repository 152 .
  • resource extractor 114 may apply the transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format.
  • the plurality of resources may be associated with the application being executed in endpoint 104 A.
  • application monitoring server 110 may be agonistic of the format in which the performance metrics are collected and represented.
  • the transformation definition can be defined to cater to any format.
  • application monitoring server 110 including metric parser 152 and resource extractor 154 may be part of a performance monitoring platform (e.g., vROps, Wavefront, and the like).
  • application monitoring server 110 may present information associated with the plurality of resources, hierarchical relationships between the plurality of resources, and the performance metrics corresponding to the plurality resources on a graphical user interface.
  • application monitoring server 110 may provide the determined plurality of resources to the performance monitoring platform (e.g., vROps, Wavefront, and the like).
  • the performance monitoring platform may display information of the plurality of resources associated with the application on a dashboard, for instance.
  • application monitoring server 110 may reside in the performance monitoring platform such as vROps.
  • application and operating system management pack which may be available in vROps, may read the transformation file and create a transformation definition.
  • the transformation definition may be created once when the transformation file (e.g., template metafile is read).
  • the code for reading the transformation file may be kept in ‘onDescribe’ and ‘onConfigure’ method.
  • the transformation file may help adapter instance to read the data or messages (e.g., the performance metrics) coming from application remote collector 108 and convert the data into the format vROps understands.
  • vROps may create a mssql resource with Port, virtual circuit identifier (VCID), and VMMOR identifiers.
  • the identifier information may be fetched from Wavefront message available as part of point tags.
  • the adapter may parse each mssql message coming in Wavefront format from application remote collector 108 and update the performance metrics defined in definitions.xml in the format of attribute definitions.
  • FIG. 4 is an example flow diagram 400 illustrating determining application resources based on performance metrics of an application.
  • the process depicted in FIG. 4 represents generalized illustrations, and that other processes may be added, or existing processes may be removed, modified, or rearranged without departing from the scope and spirit of the present application.
  • the processes may represent instructions stored on a computer-readable storage medium that, when executed, may cause a processor to respond, to perform actions, to change states, and/or to make decisions.
  • the processes may represent functions and/or actions performed by functionally equivalent circuits like analog circuits, digital signal processing circuits, application specific integrated circuits (ASICs), or other hardware components associated with the system.
  • the flow charts are not intended to limit the implementation of the present application, but rather the flow charts illustrate functional information to design/fabricate circuits, generate machine-readable instructions, or use a combination of hardware and machine-readable instructions to perform the illustrated processes.
  • the performance metrics associated with an endpoint may be received via a network.
  • Example performance metrics may be in a source format.
  • the performance metrics may be published by an agent running in the endpoint.
  • the performance metrics may include at least one of application metrics and operating system metrics.
  • the performance metrics may include performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic.
  • the received performance metrics may be parsed.
  • a transformation definition may be applied to the parsed performance metrics to determine a plurality of resources in a destination format.
  • Example plurality of resources may be associated with an application being executed in the endpoint.
  • applying the transformation definition may include applying transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application.
  • Example transformation rules may be defined in a transformation definition language.
  • the transformation definition language may be, but not limited to, an XML-based transformation definition language.
  • applying the transformation definition may further includes applying the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources.
  • the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources may be displayed on the graphical user interface.
  • information associated with the plurality of resources may be presented on a graphical user interface.
  • the transformation definition used to determine the plurality of resources may be stored in a repository prior to executing the steps of 402 - 408 .
  • Generating the transformation definition may include retrieving historical performance metrics corresponding to a predefined period.
  • transformation rules may be generated to determine the plurality of resources corresponding to the application using the historical performance metrics.
  • the transformation definition may be defined to include the transformation rules in a transformation definition language.
  • FIG. 5 is a block diagram of an example computing device 500 including non-transitory computer-readable storage medium 504 storing instructions to determine application resources based on performance metrics of an application.
  • Computing device 500 may include a processor 502 and machine-readable storage medium 504 communicatively coupled through a system bus.
  • Processor 502 may be any type of central processing unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine-readable storage medium 504 .
  • Machine-readable storage medium 504 may be a random-access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 502 .
  • RAM random-access memory
  • machine-readable storage medium 504 may be synchronous DRAM (SDRAM), double data rate (DDR), Rambus® DRAM (RDRAM), Rambus® RAM, etc., or storage memory media such as a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, and the like.
  • machine-readable storage medium 504 may be a non-transitory machine-readable medium.
  • machine-readable storage medium 504 may be remote but accessible to computing system 500 .
  • Machine-readable storage medium 504 may store instructions 506 - 512 .
  • instructions 506 - 512 may be executed by processor 502 to determine application resources based on performance metrics of an application.
  • Instructions 506 may be executed by processor 502 to receive performance metrics associated with a plurality of endpoints.
  • Example performance metrics may be in a source format. In one example, the performance metrics may be published by an agent running in the endpoint.
  • Example performance metrics may include at least one of application metrics and operating system metrics associated with the plurality of endpoints.
  • the performance metrics may include performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic.
  • CPU central processing unit
  • Instructions 508 may be executed by processor 502 to parse the received performance metrics.
  • Instructions 510 may be executed by processor 502 to apply a transformation definition to the parsed performance metrics to determine a plurality of resources, in a destination format, associated with each application being executed in the plurality of endpoints.
  • instructions 510 to apply the transformation definition may include instructions to apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application.
  • Instructions 512 may be executed by processor 502 to present information associated with the plurality of resources on a graphical user interface.
  • instructions may be executed by processor 502 to apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources. Furthermore, instructions may be executed by processor 502 to present the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources on the graphical user interface.
  • instructions may be executed by processor 502 to retrieve historical performance metrics of applications running in the plurality of endpoints corresponding to a predefined period. Furthermore, instructions may be executed by processor 502 to generate transformation rules to determine the plurality of resources corresponding to the applications using the historical performance metrics. Further, instructions may be executed by processor 502 to define the transformation definition to include the transformation rules in a transformation definition language.
  • FIGS. 1A-5 can be implemented in monitoring platform products such as vRealize Operations, Wavefront, and the like that are offered by VMware.
  • system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a non-transitory computer-readable medium (e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more host computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques.
  • a non-transitory computer-readable medium e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

In one example, an application monitoring server may include a metric parser to receive performance metrics associated with an endpoint. Example performance metrics may be in a source format. Further, the metric parser may parse the received performance metrics. Furthermore, the application monitoring server may include a resource extractor to apply a transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format. Example plurality of resources may be associated with an application being executed in the endpoint. Further, the resource extractor may present information associated with the plurality of resources on a graphical user interface.

Description

RELATED APPLICATIONS
Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 201941051516 filed in India entitled “CENTRALIZED APPLICATION RESOURCE DETERMINATION BASED ON PERFORMANCE METRICS”, on Dec. 12, 2019, by VMWARE, INC., which is herein incorporated in its entirety by reference for all purposes.
The present application is related in subject matter to U.S. patent application Ser. No. 16/794,273, which is incorporated herein by reference.
TECHNICAL FIELD
The present disclosure relates to computing environments, and more particularly to methods, techniques, and centralized systems for determining application resources based on performance metrics of an application.
BACKGROUND
In computing environments, such as networked computing environments, cloud computing environments, virtualized environments, and the like, different applications may be executed on endpoints. Example endpoint may be a physical computer system, a workload, and the like. In an example virtualized environment, multiple physical computer systems (e.g., host computing systems) may execute different workloads such as virtual machines, containers, and the like running therein. Computer virtualization may be a technique that involves encapsulating a representation of a physical computing machine platform into a virtual machine that may be executed under the control of virtualization software running on hardware computing platforms. The hardware computing platforms may also be referred as the host computing systems or servers. A virtual machine can be a software-based abstraction of the physical computer system. Each virtual machine may be configured to execute an operating system (OS), referred to as a guest OS, and applications. A container may be a data computer node that runs on top of a host OS without the need for a hypervisor or separate OS. Further, the applications running on the endpoints may be monitored to provide performance metrics (e.g., application metrics, operating system metrics, and the like) in real time to detect and diagnose issues.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a block diagram of an example computing environment, including an application monitoring server to determine application resources based on performance metrics of an application;
FIG. 1B is an example block diagram of the application monitoring server of FIG. 1A, depicting additional features;
FIG. 2 illustrates an example representation of the determined application resources associated with the application;
FIG. 3 is an example sequence diagram illustrating a sequence of events to determine application resources based on performance metrics of an application;
FIG. 4 is an example flow diagram illustrating determining application resources based on performance metrics of an application; and
FIG. 5 is a block diagram of an example computing device including a non-transitory computer-readable storage medium storing instructions to determine application resources based on performance metrics of an application.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present subject matter in any way.
DETAILED DESCRIPTION
Examples described herein may provide an enhanced computer-based and network-based method, technique, and centralized system to determine application resources based on performance metrics of an application in a computing environment. Computing environment may be a physical computing environment (e.g. an on-premise enterprise computing environment or a physical data center) and/or virtual computing environment (e.g., a cloud computing environment, a virtualized environment, and the like).
The virtual computing environment may be a pool or collection of cloud infrastructure resources designed for enterprise needs. The resources may be a processor (e.g., central processing unit (CPU)), memory (e.g., random-access memory (RAM)), storage (e.g., disk space), and networking (e.g., bandwidth). Further, the virtual computing environment may be a virtual representation of the physical data center, complete with servers, storage clusters, and networking components, all of which may reside in virtual space being hosted by one or more physical data centers. Example virtual computing environment may include different endpoints (e.g., physical computers, virtual machines, and/or containers). For example, the computing environment may include multiple application hosts (i.e., physical computers) executing different workloads such as virtual machines, containers, and the like running therein. Example endpoints may execute different types of applications.
Further, performance monitoring of such applications has become increasingly important because application monitoring may aid in troubleshooting (e.g., to rectify abnormalities or shortcomings, if any) the applications. Application monitoring may be referred as application performance monitoring (APM) and/or application performance management (APM). Example performance monitoring tool or application or platform (e.g., VMware® vRealize Operations (vROps), Vmware Wavefront™, and the like) may receive performance metrics associated with applications from agents running in the endpoints. Further, the performance monitoring platform may display the performance metrics in a form of dashboards, for instance.
In some examples, the agents (e.g., Telegraf™) running in the endpoints may collect the performance metrics. However, the agents may not perform any function on the collected performance metrics to determine resources associated with the application. On the other hand, the performance monitoring platform may see value add in discovering and displaying the application resources and their relationships on the dashboards. For example, in the case of ‘Tomcat Server’, the performance monitoring platform may have to analyse the performance metrics to detect and represent the ‘Tomcat Server’ specific resources such as ‘request processors’, ‘web modules’, and the like. However, the performance monitoring platform may have to perform significant computation when the computing environment become more complex (e.g., as number of endpoints and corresponding applications increases). Hence, it is challenging for the performance monitoring platform to derive the application resources and their relationships.
In some other examples, specialized agents may be developed to collect and analyse the performance metrics to determine the application resources. Example specialized agents may discover application specific resources and their relationships in a desired model and send to the performance monitoring platform for presenting. However, cost and effort in developing such specialized agents may be significantly high. Further, such discovered resources in the particular model from the specialized agents may not be consumed by more than one type of performance monitoring platform as different performance monitoring platforms may require different resource models and hierarchies. For example, vROps may consume the analysed data in a format different than Wavefront. Also, any change in a resource model and hierarchy in the applications may require upgrading the specialized agent at the endpoint.
Examples described herein may provide a centralized approach to determine application resources based on performance metrics. Examples described herein may provide an application monitoring server including a metric parser to receive the performance metrics associated with an endpoint and parse the received performance metrics. Example received performance metrics may be in a source format. Further, the application monitoring server may include a resource extractor to apply a transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format and present information associated with the plurality of resources on a graphical user interface. Example plurality of resources may be associated with an application being executed in the endpoint. Thus, examples described herein may eliminate a need for specialized agents as the application resources can be determined from the performance metrics collected by an agent.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present techniques. It will be apparent, however, to one skilled in the art that the present apparatus, devices and systems may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
System Overview and Examples of Operation
FIG. 1A is a block diagram of an example computing environment 100, including an application monitoring server 110 to determine application resources based on performance metrics of an application. Example computing environment 100 may be a cloud computing environment. For example, cloud computing environment 100 may be VMware vSphere®. Cloud computing environment 100 (e.g., a virtualized cloud computing environment) may include one or more computing platforms that support the creation, deployment, and management of virtual machine-based cloud applications.
Example cloud computing environment 100 may include multiple host computing systems 102A-102N, each executing corresponding ones of workloads (e.g., virtual machines 104A-104N, containers, and the like). Example host computing system (e.g., 102A-102N) may be a physical computer. The physical computer may be a hardware-based device (e.g., a personal computer, a laptop, or the like) including an operating system (OS). A virtual machine (e.g., 104A-104N) may operate with its own guest OS on the physical computer using resources of the physical computer virtualized by virtualization software (e.g., a hypervisor, a virtual machine monitor, and the like). A container may be a data computer node that runs on top of a host operating system (e.g., 102A-102N) without the need for the hypervisor or separate operating system.
In the below described examples, virtual machines 104A-104N may be considered as the endpoints executing multiple applications. However, a container or a physical machine may also be considered as an endpoint executing the applications. An application, also referred to as an application program or application software, may be a computer software package that performs a specific function directly for an end user or, in some cases, for another application. Examples of applications may include word processors, database programs, web browsers, development tools, image editors, communication platforms, and the like.
Further, endpoints 104A-104N may include corresponding agents 106A-106N. For example, each agent 106A-106N may run in a respective one of endpoints 104A-104N to monitor the applications running on corresponding endpoints 104A-104N. In one example, each agent 106A-106N may real-time monitor the applications to collect the performance metrics corresponding to an operating system and/or the applications associated with corresponding endpoints 104A-104N.
Further, agents 106A-106N may publish the performance metrics via a network to other systems for analyzing the performance metrics. Example network can be a managed Internet protocol (IP) network administered by a service provider. For example, the network may be implemented using wireless protocols and technologies, such as WiFi, WiMax, and the like. In other examples, the network can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. In yet other examples, the network may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.
As shown in FIG. 1A, cloud computing environment 100 may include application remote collector 108 to collect the performance metrics of the operating system and/or the applications associated with endpoints 104A-104N, in runtime, for monitoring and troubleshooting the endpoints 104A-104N. In one example, application remote collector 108 may be implemented in a computing device that is connected external to application monitoring server 110 or may be implemented as a part of application monitoring server 110.
Further, cloud computing environment 100 may include application monitoring server 110. In one example, application monitoring server 110 may include a metric parser 112 and a resource extractor 114. Metric parser 112 may receive the performance metrics associated with endpoints 104A-104N via application remote collector 108. In one example, the performance metrics may be in a source format. For example, the source format may be a Wavefront format, InfluxDB format, MQ Telemetry Transport (MQTT) format, Advanced Message Queuing Protocol (AMQP) format, or the like. Furthermore, resource extractor 114 may apply a transformation definition to the performance metrics to determine a plurality of resources in a destination format. For example, each of the plurality of resources may be associated with corresponding applications being executed in endpoint 104A-104N. Further, the destination format may be compatible to a target application (e.g., performance monitoring applications or platforms such as vROps, Wavefront, and the like). Example metric parser 112 and resource extractor 114 may be described in FIG. 1B.
FIG. 1B is a block diagram of application monitoring server 110 of FIG. 1A, depicting additional features. For example, similarly named elements of FIG. 1B may be similar in structure and/or function to elements described with respect to FIG. 1A. As shown in FIG. 1B, application monitoring server 110 may be communicatively connected to a repository 152. In one example, repository 152 may store a template including the transformation definition. Example transformation definition may provide knowledge of determining the plurality of resources associated with the application in the destination format. For example, the destination format may be compatible to the target application (e.g., vROps, Wavefront, and the like). In other words, application monitoring server 110 may have no knowledge about any application or corresponding resources. Thus, the knowledge may be declared in the transformation definition and provided as another input to application monitoring server 110. In one example, the transformation definition may be configured declaratively (e.g., via Extensible Markup Language (XML)) as described in FIG. 3.
As shown in FIG. 1B, application monitoring server 110 may include metric parser 112 to receive the performance metrics associated with an endpoint 104A. In one example, metric parser 112 may receive the performance metrics from agent 106A running in corresponding endpoint 104A via the network. In another example, metric parser 112 may receive the performance metrics from application remote collector 108 via the network. Example performance metrics may be in a source format (e.g., Wavefront format).
For example, metric parser 112 may receive the performance metrics associated with ‘Microsoft® Structured Query Language (SQL) Server™’ from the Telegraf agent, which may be in the Wavefront format. The performance metrics may include metrics that may measure the performance of various aspects of the application. Example subset of the performance metrics may be depicted in example 1. In the performance metrics shown in example 1, the raw performance metrics may not provide a list of resources explicitly. However, the performance metrics may include metrics such as reads/sec, writes/sec, and the like for each resource as shown in example 1.
MSSQL.Rows--reads-sec.tempdb 41064 serverName=“WIN-DUH251E2LAM” type=“DatabaseIO” source=“win2012-mssq12012-V13” vc_uuid=“f43a2a5b-7cb2-49b5-9d45-62179df90935” vm_mor=“vm-43”
MSSQL.Rows--reads-sec.ReportServerTempDB 3276 serverName=“WIN-DUH25IE2LAM” type=“DatabaseIO” source=“win2012-mssq12012-V13” vc_uuid=“f43a2a5b-7cb2-49b5-9d45-62179df90935” vm_mor=“vm-43”
MSSQL.Rows--reads-sec.model 2503 serverName=“WIN-DUH251E2LAM” type=“DatabaseIO” source=“win2012-mssq12012-V13” vc_uuid=“f43a2a5b-7cb2-49b5-9d45-62179df90935” vm_mor=“vm-43”
MSSQL.Rows--reads-sec.ReportServer 2650 serverName=“WIN-DUH251E2LAM” type=“DatabaseIO” source=“win2012-mssq12012-V13” vc_uuid=“f43a2a5b-7cb2-49b5-9d45-62179df90935” vm_mor=“vm-43”
MSSQL.Rowswritesec-.tempdb 3000 1528808928 serverName=“WIN-MSSQL” type=“Database10” source=“my_win_2016” vc_uuid=“419d2d2b-7c45-4ac1- . . .
Example 1
Further, metric parser 112 may parse the received performance metrics. In one example, metric parser 112 may parse the performance metrics to extract relevant information from the performance metrics. For example, metric parser 112 may parse the performance metrics depicted in example 1 to index (e.g., metric name, value, time stamp, source tag, point tag, and the like) the performance metrics as depicted in Table 1:
TABLE 1
Metric MSSQL.Rows—write—sec-.tempdb
Name
Value 3000
Time 1528808928
Stamp
Source Tag serverName=“WIN-MSSQL”
Point Tag type=“DatabaseIO” source=“my_win_2016”
vc_uuid=“419d2d2b-7c45-4ac1-
Thus, metric parser 112 may parse the performance metrics to omit irrelevant data such as the point tags and timestamp as they may not have significance in the context of determining the application resources.
Further, application monitoring server 110 may include a resource extractor 114 to apply the transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format. For example, the plurality of resources is associated with an application being executed in endpoint 104A. In one example, resource extractor 114 may apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that may be compatible to the target application. Example transformation definition is depicted in example 2.
<ResourceDefinition kind=“mssql” name=“Microsoft SQL Server on {source}”>
<ResourceIdentifier key=“INSTANCE” value=“{servername}”/>
<ResourceIdentifier key=“VCID” value=“{vc_uuid}”/>
<ResourceIdentifier key=“VMMOR” value=“{vm_mor}”/>
<ResourceDefinition kind=“mssql_database” name=“{ }”>
    • <ResourceIdentifier key=“VCID” value=“{vc_uuid}”/>
    • <ResourceIdentifier key=“VMMOR” value=“{vm_mor}”/>
    • <ResourceIdentifier key=“INSTANCE” value=“{servername}”/>
    • <ResourceIdentifier key=“DATABASENAME” value=“{ }”/>
    • <AttributeDefinition key=“summary|Recovery-Model” filterName=“MSSQL.Recovery-Model-SIMPLE” isProperty=“true” value=“SIMPLE” ignoreMetricByValue=“0” ignoreMetricByName=“Total”/>
    • <AttributeDefinition key=“summary|Recovery-Model” filterName=“MSSQL.Recovery-Model-FULL” isProperty=“true” value=“FULL” ignoreMetricByValue=“0” ignoreMetricByName=“Total”/>
    • <AttributeDefinition key=“summary|Recovery-Model” filterName=“MSSQL.Recovery-Model-BULK.LOGGED” isProperty=“true” value=“BULK. LOGGED” ignoreMetricByValue=“0” ignoreMetricByName=“Total”/>
</ResourceDefinition>
</ResourceDefinition>
Example 2
For example, the transformation definition may be represented in a transformation definition language. Example transformation definition language may be an Extensible Markup Language (XML)-based transformation definition language. The transformation definition depicted in example 2 may illustrate:
    • a. There may be only one instance of the mssql resource created for each instance of ‘SQL Server’ and the name may be post fixed with the ‘source’ tag value.
    • b. For each instance of mssql, there could be multiple instances of database resource and the instances are enumerated/discovered using a metric search policy by matching a part of the metric name and extracting the database name using the ‘name’ tag pattern.
    • c. The recovery-model metric may be present only for database resources and hence the number of times recovery-model metric appears in the collected data for each type of database may indicate the number of databases present. Further, the name of the database is the trailing suffix after the common suffix in the metric name ‘recovery-model-bulk.logged’.
    • d. The database resource may have three metrics simple, full, and bulk logged, and the three metrics may have the prefix ‘mssql.recovery-model’ respectively followed by the database name.
    • e. There may be a provision to specify if the metric need to be considered as a property or not with the help of ‘isproperty’ flag.
    • f. If there is a specific metric that need to be ignored by name or value, that can be ignored using the respective filters ‘ignoreMetricByName’ and ‘ignoreMetricByValue’.
Furthermore, resource extractor 114 may apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources. For example, when the transformation definition depicted in example 2 is run against the parsed performance metrics, resource extractor 114 may produce output of determined resources and the hierarchical relationship of the resources along with the performance metrics associated to each resource. In one example, the transformations performed using the transformation definition may not depend on the input data format. For example, the transformation definition may be applied on the performance metrics in the Wavefront format that Telegraf output plugin support. However, resource extractor 114 may support output plugin formats such as InfluxDB, MQTT, AMQP, and the like.
Further, resource extractor 114 may present the plurality of resources, the hierarchical relationships between the plurality of resources, and the performance metrics corresponding to the plurality resources on a graphical user interface. Example output of resource extractor 114 is depicted in FIG. 3. Thus, examples described herein may provide application monitoring server 110 that ingests raw performance metrics coming in any output plugin format (e.g., Wavefront, InfluxDB, and the like) from the agent (e.g., Telegraf) and outputs the discovered resource information, their relationships and their metrics in a desired format.
In some examples, the functionalities described herein, in relation to instructions to implement functions of metric parser 112, resource extractor 114, and any additional instructions described herein in relation to the storage medium, may be implemented as engines or modules comprising any combination of hardware and programming to implement the functionalities of the modules or engines described herein. The functions of metric parser 112 and resource extractor 114 may also be implemented by a respective processor. In examples described herein, the processor may include, for example, one processor or multiple processors included in a single device or distributed across multiple devices. In some examples, application monitoring server 110 can be a part of management software (e.g., vROps and Wavefront that are offered by VMware®).
FIG. 2 illustrates an example representation 200 of the determined application resources associated with the application 202. For example, a ‘Tomcat Server’ (e.g., application 202) is considered. In one example, an application monitoring server (e.g., application monitoring server 110 of FIGS. 1A and 1B) may determine resources associated with ‘Tomcat Server’ 202. Example resources (e.g., 204, 206, and 208) may include databases such as ‘request processors’ (e.g., 204) and ‘web modules’ (e.g., 206 and 208). Further, performance metrics associated to each resource may be presented. For example, the performance metrics of ‘web module’ (e.g., 206) is depicted as 210 in FIG. 2.
In the examples described herein, the resources such as databases and their hierarchical relationships are depicted. However, examples described herein may be implemented to determine other resources such as connectors, indices, clusters, and the like. Accordingly, the transformation definition may include necessary transformation rules to determine different kinds of resources.
FIG. 3 is an example sequence diagram 300 illustrating a sequence of events to determine application resources based on performance metrics of an application. For example, similarly named elements of FIG. 3 may be similar in structure and/or function to elements described with respect to FIGS. 1A and 1B. The sequence diagram may represent the interactions and the operations involved in determining the application resources based on the performance metrics of the application. FIG. 3 illustrates process objects including agent 106A, application remote controller 108, application monitoring server 110, repository 152, metric parser 112, and resource extractor 114 along with their respective vertical lines originating from them. The vertical lines of agent 106A, application remote controller 108, application monitoring server 110, repository 152, metric parser 112, and resource extractor 114 may represent the processes that may exist simultaneously. The horizontal arrows (e.g., 302, 304, 308, 310, 312, 314, 318, and 320) may represent the data flow steps between the vertical lines originating from their respective process objects (for e.g., agent 106A, application remote controller 108, application monitoring server 110, repository 152, metric parser 112, and resource extractor 114). Further, activation boxes (e.g., 306, 316, and 322) between the horizontal arrows may represent the process that is being performed in the respective process object.
In one example, the sequence of events to determine the application resources may be segregated into design phase 300A (e.g., 302 to 308) and runtime phase 300B (310 to 322). During design phase 300A, transformation definition used to determine the application resources may be generated based on historical performance metrics. During runtime phase 300B, the application resources may be determined using the generated transformation definition.
At 302, application remote collector 108 may retrieve historical performance metrics corresponding to a predefined period. Example historical performance metrics may be associated with an application running in endpoint 104A corresponding to the predefined period. In one example, application remote collector 108 may retrieve the historical performance metrics from agent 106A as shown in FIG. 3. In another example, application remote collector 108 may retrieve the historical performance metrics from a data repository, where the historical performance metrics are stored.
At 304, application monitoring server 110 may receive the historical performance metrics associated with the application from application remote collector 108. At 306, application monitoring server 110 may generate transformation rules to determine a plurality of resources corresponding to the application using the historical performance metrics. In one example, application monitoring server 110 may define the transformation definition to include the transformation rules in a transformation definition language. At 308, application monitoring server 110 may store the transformation definition including the transformation rules in repository 152. Thus, the historical performance metrics may be collected for the predefined period corresponding to each application. Further, the historical performance metrics may be analyzed in detail to generate the transformation definition, which may be used to identify and discover resources corresponding to each application. In one example, the transformation definition may be generated once and may be updated based on modifications in the resources corresponding to the applications.
At 310, application remote collector 108 may receive real-time performance metrics associated with the application from agent 106A. At 312, application monitoring server 110 may receive the performance metrics from application remote collector 108. At 314, metric parser 112 may further receive the performance metrics. In one example, the performance metrics may be in a source format. At 316, metric parser 112 may parse the received performance metrics.
At 318, resource extractor 114 may receive the parsed performance metrics from metric parser 112. At 320, resource extractor 114 may access the transformation definition from repository 152. At 322, resource extractor 114 may apply the transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format. In one example, the plurality of resources may be associated with the application being executed in endpoint 104A. Thus, application monitoring server 110 may be agonistic of the format in which the performance metrics are collected and represented. Further, the transformation definition can be defined to cater to any format.
In one example, application monitoring server 110 including metric parser 152 and resource extractor 154 may be part of a performance monitoring platform (e.g., vROps, Wavefront, and the like). In this example, application monitoring server 110 may present information associated with the plurality of resources, hierarchical relationships between the plurality of resources, and the performance metrics corresponding to the plurality resources on a graphical user interface. In another example, application monitoring server 110 may provide the determined plurality of resources to the performance monitoring platform (e.g., vROps, Wavefront, and the like). Further, the performance monitoring platform may display information of the plurality of resources associated with the application on a dashboard, for instance.
In one example, application monitoring server 110 may reside in the performance monitoring platform such as vROps. For example, application and operating system management pack, which may be available in vROps, may read the transformation file and create a transformation definition. The transformation definition may be created once when the transformation file (e.g., template metafile is read). Thus, the code for reading the transformation file may be kept in ‘onDescribe’ and ‘onConfigure’ method. Further, the transformation file may help adapter instance to read the data or messages (e.g., the performance metrics) coming from application remote collector 108 and convert the data into the format vROps understands. For example, in the metafile XML format, vROps may create a mssql resource with Port, virtual circuit identifier (VCID), and VMMOR identifiers. The identifier information may be fetched from Wavefront message available as part of point tags. Once the resource is created, the adapter may parse each mssql message coming in Wavefront format from application remote collector 108 and update the performance metrics defined in definitions.xml in the format of attribute definitions.
Example Processes
FIG. 4 is an example flow diagram 400 illustrating determining application resources based on performance metrics of an application. It should be understood that the process depicted in FIG. 4 represents generalized illustrations, and that other processes may be added, or existing processes may be removed, modified, or rearranged without departing from the scope and spirit of the present application. In addition, it should be understood that the processes may represent instructions stored on a computer-readable storage medium that, when executed, may cause a processor to respond, to perform actions, to change states, and/or to make decisions. Alternatively, the processes may represent functions and/or actions performed by functionally equivalent circuits like analog circuits, digital signal processing circuits, application specific integrated circuits (ASICs), or other hardware components associated with the system. Furthermore, the flow charts are not intended to limit the implementation of the present application, but rather the flow charts illustrate functional information to design/fabricate circuits, generate machine-readable instructions, or use a combination of hardware and machine-readable instructions to perform the illustrated processes.
At 402, the performance metrics associated with an endpoint may be received via a network. Example performance metrics may be in a source format. In one example, the performance metrics may be published by an agent running in the endpoint. Further, the performance metrics may include at least one of application metrics and operating system metrics. For example, the performance metrics may include performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic. At 404, the received performance metrics may be parsed.
At 406, a transformation definition may be applied to the parsed performance metrics to determine a plurality of resources in a destination format. Example plurality of resources may be associated with an application being executed in the endpoint. In one example, applying the transformation definition may include applying transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application. Example transformation rules may be defined in a transformation definition language. For example, the transformation definition language may be, but not limited to, an XML-based transformation definition language.
Further, applying the transformation definition may further includes applying the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources. Upon determining the hierarchical relationships, the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources may be displayed on the graphical user interface. At 408, information associated with the plurality of resources may be presented on a graphical user interface.
In one example, the transformation definition used to determine the plurality of resources may be stored in a repository prior to executing the steps of 402-408. Generating the transformation definition may include retrieving historical performance metrics corresponding to a predefined period. Further, transformation rules may be generated to determine the plurality of resources corresponding to the application using the historical performance metrics. Furthermore, the transformation definition may be defined to include the transformation rules in a transformation definition language. Thus, example described herein may provide a centralized mechanism to determine application specific resources from the performance metrics in a generalized manner.
FIG. 5 is a block diagram of an example computing device 500 including non-transitory computer-readable storage medium 504 storing instructions to determine application resources based on performance metrics of an application. Computing device 500 may include a processor 502 and machine-readable storage medium 504 communicatively coupled through a system bus. Processor 502 may be any type of central processing unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine-readable storage medium 504. Machine-readable storage medium 504 may be a random-access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 502. For example, machine-readable storage medium 504 may be synchronous DRAM (SDRAM), double data rate (DDR), Rambus® DRAM (RDRAM), Rambus® RAM, etc., or storage memory media such as a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, and the like. In an example, machine-readable storage medium 504 may be a non-transitory machine-readable medium. In an example, machine-readable storage medium 504 may be remote but accessible to computing system 500.
Machine-readable storage medium 504 may store instructions 506-512. In an example, instructions 506-512 may be executed by processor 502 to determine application resources based on performance metrics of an application. Instructions 506 may be executed by processor 502 to receive performance metrics associated with a plurality of endpoints. Example performance metrics may be in a source format. In one example, the performance metrics may be published by an agent running in the endpoint. Example performance metrics may include at least one of application metrics and operating system metrics associated with the plurality of endpoints. For example, the performance metrics may include performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic.
Instructions 508 may be executed by processor 502 to parse the received performance metrics. Instructions 510 may be executed by processor 502 to apply a transformation definition to the parsed performance metrics to determine a plurality of resources, in a destination format, associated with each application being executed in the plurality of endpoints. In one example, instructions 510 to apply the transformation definition may include instructions to apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application. Instructions 512 may be executed by processor 502 to present information associated with the plurality of resources on a graphical user interface.
Further, instructions may be executed by processor 502 to apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources. Furthermore, instructions may be executed by processor 502 to present the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources on the graphical user interface.
Further, instructions may be executed by processor 502 to retrieve historical performance metrics of applications running in the plurality of endpoints corresponding to a predefined period. Furthermore, instructions may be executed by processor 502 to generate transformation rules to determine the plurality of resources corresponding to the applications using the historical performance metrics. Further, instructions may be executed by processor 502 to define the transformation definition to include the transformation rules in a transformation definition language.
Examples described in FIGS. 1A-5 can be implemented in monitoring platform products such as vRealize Operations, Wavefront, and the like that are offered by VMware.
Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a non-transitory computer-readable medium (e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more host computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques.
It may be noted that the above-described examples of the present solution are for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
The terms “include,” “have,” and variations thereof, as used herein, have the same meaning as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on”, as used herein, means “based at least in part on.” Thus, a feature that is described as based on some stimulus can be based on the stimulus or a combination of stimuli including the stimulus.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples can be made without departing from the spirit and scope of the present subject matter that is defined in the following claims.

Claims (19)

What is claimed is:
1. An application monitoring server comprising:
a metric parser to:
receive performance metrics associated with an endpoint, wherein the performance metrics are in a source format; and
parse the received performance metrics: and a resource extractor to:
apply a transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format, wherein the plurality of resources is associated with an application being executed in the endpoint; and
wherein a repository is utilized to store a template including the transformation definition, wherein the transformation definition provides knowledge of determining the plurality of resources associated with the application in the destination format, and wherein the destination format Is compatible to a target application; and
present information associated with the plurality of resources on a graphical user interface.
2. The application monitoring server of claim 1, wherein the resource extractor is to:
apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources; and
present the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources on the graphical user interface.
3. The application monitoring server of claim 1, wherein the metric parser is to:
receive the performance metrics from an agent running in the endpoint, wherein the agent is to real-time monitor the application to collect the performance metrics corresponding to an operating system and/or the application associated with the endpoint.
4. The application monitoring server of claim 1, wherein the metric parser is to:
receive the performance metrics from an application remote collector via a network, wherein the application remote collector is to collect the performance metrics of an operating system and/or the application associated with the endpoint, in runtime, for monitoring and troubleshooting the endpoint.
5. The application monitoring server of claim 1, wherein the resource extractor is to:
apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application.
6. The application monitoring server of claim 1, wherein the endpoint comprises one of a virtual machine, a container, and a physical machine.
7. A computer implemented method comprising:
receiving performance metrics associated with an endpoint via a network, wherein the performance metrics are in a source format;
parsing the received performance metrics;
applying a transformation definition to the parsed performance metrics to determine a plurality of resources in a destination format, wherein the plurality of resources is associated with an application being executed in the endpoint; and
wherein a repository is utilized to store a template including the transformation definition, wherein the transformation definition provides knowledge of determining the plurality of resources associated with the application in the destination format, and wherein the destination format is compatible to a target application; and
presenting information associated with the plurality of resources on a graphical user interface.
8. The computer implemented method of claim 7, wherein applying the transformation definition further comprises:
applying the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources; and
displaying the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources on the graphical user interface.
9. The computer implemented method of claim 8, wherein the performance metrics comprises at least one of application metrics and operating system metrics.
10. The computer implemented method of claim 8, wherein the performance metrics are published by an agent running in the endpoint, the performance metrics comprise performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic.
11. The computer implemented method of claim 8, wherein applying the transformation definition comprises:
applying transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application.
12. The computer implemented method of claim 11, wherein the transformation rules are defined in a transformation definition language, and wherein the transformation definition language is an XML-based transformation definition language.
13. The computer implemented method of claim 7, further comprising:
retrieving historical performance metrics corresponding to a predefined period;
generating transformation rules to determine the plurality of resources corresponding to the application using the historical performance metrics; and
defining the transformation definition to include the transformation rules in a transformation definition language.
14. A non-transitory machine-readable storage medium encoded with instructions that, when executed by a computer, cause the computer to:
receive performance metrics associated with a plurality of endpoints, wherein, the performance metrics are in a source format;
parse the received performance metrics:
apply a transformation definition to the parsed performance metrics to determine a plurality of resources, in a destination format, associated with each application being executed in the plurality of endpoints; and
wherein a repository is utilized to store a template including the transformation definition, wherein the transformation definition provides knowledge of determining the plurality of resources associated with the application in the destination format, and wherein the destination format is compatible to a target application; and
present information associated with the plurality of resources on a graphical user interface.
15. The non-transitory machine-readable storage medium of claim 14, wherein instructions to apply the transformation definition further comprise instructions to:
apply the transformation definition to the parsed performance metrics to determine hierarchical relationships between the plurality of resources; and
present the hierarchical relationships between the plurality of resources and the performance metrics corresponding to the plurality resources on the graphical user interface.
16. The non-transitory machine-readable storage medium of claim 14, wherein the performance metrics comprises at least one of application metrics and operating system metrics associated with the plurality of endpoints.
17. The non-transitory machine-readable storage medium of claim 14, wherein the performance metrics are published by an agent running in the endpoint, the performance metrics comprise performance metric values associated with at least one of central processing unit (CPU), memory, storage, graphics, and network traffic.
18. The non-transitory machine-readable storage medium of claim 14, wherein instructions to apply the transformation definition comprise instructions to apply transformation rules defined in the transformation definition to the parsed performance metrics to determine the plurality of resources in the destination format that is compatible to a target application.
19. The non-transitory machine-readable storage medium of claim 14, further comprising instructions that, when executed by the computer, cause the computer to:
retrieve historical performance metrics of applications running in the plurality of endpoints corresponding to a predefined period;
generate transformation rules to determine the plurality of resources corresponding to the applications using the historical performance metrics; and
define the transformation definition to include the transformation rules in a transformation definition language.
US16/794,267 2019-12-12 2020-02-19 Centralized application resource determination based on performance metrics Expired - Fee Related US11036612B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201941051516 2019-12-12
IN201941051516 2019-12-12

Publications (2)

Publication Number Publication Date
US11036612B1 true US11036612B1 (en) 2021-06-15
US20210182172A1 US20210182172A1 (en) 2021-06-17

Family

ID=76316852

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/794,267 Expired - Fee Related US11036612B1 (en) 2019-12-12 2020-02-19 Centralized application resource determination based on performance metrics

Country Status (1)

Country Link
US (1) US11036612B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294221A1 (en) * 2005-06-22 2006-12-28 Sven Graupner System for programmatically controlling measurements in monitoring sources
US8447851B1 (en) * 2011-11-10 2013-05-21 CopperEgg Corporation System for monitoring elastic cloud-based computing systems as a service
US20160301739A1 (en) * 2015-04-08 2016-10-13 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9935830B1 (en) * 2015-05-22 2018-04-03 VCE IP Holding Company LLC Cloud management system and method for disparate computing nodes in a cloud computing environment
US20190227780A1 (en) * 2018-01-24 2019-07-25 Citrix Systems, Inc. Systems and methods for versioning a cloud environment for a device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294221A1 (en) * 2005-06-22 2006-12-28 Sven Graupner System for programmatically controlling measurements in monitoring sources
US8447851B1 (en) * 2011-11-10 2013-05-21 CopperEgg Corporation System for monitoring elastic cloud-based computing systems as a service
US20160301739A1 (en) * 2015-04-08 2016-10-13 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9935830B1 (en) * 2015-05-22 2018-04-03 VCE IP Holding Company LLC Cloud management system and method for disparate computing nodes in a cloud computing environment
US20190227780A1 (en) * 2018-01-24 2019-07-25 Citrix Systems, Inc. Systems and methods for versioning a cloud environment for a device

Also Published As

Publication number Publication date
US20210182172A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
US11334461B2 (en) Distributed application resource determination based on performance metrics
US11757720B2 (en) Distributed computing dependency management system
CN109328335B (en) Intelligent configuration discovery technology
US11172022B2 (en) Migrating cloud resources
US9118538B1 (en) Method and system for configuring resources to enable resource monitoring
US10148757B2 (en) Migrating cloud resources
US20120047239A1 (en) System and Method for Installation and Management of Cloud-Independent Multi-Tenant Applications
JP2019525302A (en) Application migration system
CN110516076B (en) Knowledge graph-based cloud computing management method and system
US10666743B2 (en) Application discovery based on application logs
US20230325228A1 (en) Process tree-based process monitoring in endpoints
US11467862B2 (en) Application change notifications based on application logs
US8438542B2 (en) Generating a management pack at program build time
US10931508B2 (en) Scalable dynamic JMX federation
US12210533B2 (en) Configurable monitoring and alerting system
CN112764995A (en) Server hardware resource monitoring method, device and medium
US11036612B1 (en) Centralized application resource determination based on performance metrics
US20240272893A1 (en) Version compatibility metadata transformation
US20230409568A1 (en) Monitoring metadata synchronization and aggregation
US11579930B2 (en) Resource determination based on resource definition data
Dakić et al. The RedFish API and vSphere Hypervisor API: A Unified Framework for Policy-Based Server Monitoring.
US20240345886A1 (en) Suspension of related resources monitoring during maintenance
US11762749B2 (en) Software application intelligence platform, and method thereof
CN118487943A (en) IT resource automatic discovery and cloud loading method and device
Kieu Container Based Virtualization Techniques on Lightweight Internet of Things Devices: Evaluating Docker container effectiveness on Raspberry Pi computers

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: VMWARE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:VMWARE, INC.;REEL/FRAME:067102/0314

Effective date: 20231121

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20250615