WO2018221997A1 - 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치 - Google Patents

엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치 Download PDF

Info

Publication number
WO2018221997A1
WO2018221997A1 PCT/KR2018/006271 KR2018006271W WO2018221997A1 WO 2018221997 A1 WO2018221997 A1 WO 2018221997A1 KR 2018006271 W KR2018006271 W KR 2018006271W WO 2018221997 A1 WO2018221997 A1 WO 2018221997A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
end user
information
monitoring
performance
Prior art date
Application number
PCT/KR2018/006271
Other languages
English (en)
French (fr)
Inventor
박병년
Original Assignee
그린아일 주식회사
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 그린아일 주식회사 filed Critical 그린아일 주식회사
Priority to US16/616,186 priority Critical patent/US10887201B2/en
Publication of WO2018221997A1 publication Critical patent/WO2018221997A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/3438Recording 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 monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Definitions

  • the present invention relates to a method for automatically monitoring end-to-end end user performance and an apparatus for performing the method. More specifically, the method and apparatus for monitoring the error status of the client and the end-to-end performance from client to server to improve the quality of the end-user user experience It is about.
  • Conventional techniques for managing the quality of the end user's user experience provide a level of monitoring the performance by measuring the response time of the user terminal.
  • Some of the prior arts install a separate agent such as Active-X in a user terminal such as a web browser in order to monitor user response time of an end user, causing problems such as compatibility problems and inconvenience of installation. .
  • Another conventional technique is to install a separate dedicated server for monitoring the end user performance in the network section of the server to collect the user response time based on the network transmission time.
  • Another conventional technique measures the user response time of the end user to monitor the network transmission time and the application processing time based on the GUID. All these conventional technologies have a problem that only performance such as response time is monitored in terms of quality of the user experience, and quality such as error occurrence is not monitored.
  • the network connection preparation step before the request from the server Performance indicators, such as the step of loading a page after receiving a response, are not collected in the related art, and have a problem in that only a response time for a server request is managed.
  • the object of the present invention is to solve all the above-mentioned problems.
  • the present invention server-side by automatically monitoring the performance and error status of the end user web page without modifying the web page for the purpose of improving the quality of the end user user experience in the web service in the enterprise Tracking other end-to-end performance information for another purpose.
  • the present invention in the end user performance monitoring to install the agent (agent) on the client terminal or to modify the web page and the like to overcome the problems of the immediateness and effectiveness of the agent installation or web page Another object is to provide an automated method that does not require modification.
  • an end-to-end end user performance analysis method may comprise an application server receiving a performance analysis component and the application server installing the performance analysis component, wherein the end The user performance analysis application adds a monitoring script in response to the application for serving a hypertext markup language (HTML) page to a web browser, and the monitoring script collects end user performance monitoring information on an event generated in the HTML page. Can provide.
  • HTML hypertext markup language
  • an end-to-end end user performance analysis application server includes a communication unit implemented to receive a performance analysis component and a processor operatively connected to the communication unit, wherein the processor is Is configured to install the performance analysis component, the performance analysis component adds a monitoring script in response to an application for serving a hypertext markup language (HTML) page with a web browser, and the monitoring script is an event generated in the HTML page. Collect and provide end-user performance monitoring information for.
  • HTML hypertext markup language
  • the performance and error status of the end user web page is automatically monitored without modification of the web page for the purpose of improving the quality of the end user user experience in the web service in the enterprise, so that the server-side performance information is It can be tracked end-to-end.
  • the end user performance monitoring does not require the installation of agents or modification of web pages in order to overcome the immediateness and effectiveness issues of installing an agent or modifying a web page.
  • An automated scheme can be provided.
  • end-to-end performance information from a client to a server on a per-web page basis can be tracked and monitored.
  • a product recommendation system using business activity monitoring (BAM) or artificial intelligence (AI) in the e-commerce market by using collected data such as a user's web page movement path and search conditions, etc. It can be used as source data of.
  • BAM business activity monitoring
  • AI artificial intelligence
  • FIG. 1 is a conceptual diagram illustrating an end user performance monitoring system according to an embodiment of the present invention.
  • FIG. 2 is a conceptual diagram illustrating a reference relationship between pages according to an embodiment of the present invention.
  • FIG. 3 is a conceptual diagram illustrating a change of a structure of a page manager according to a page call according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating an end user performance monitoring method according to an embodiment of the present invention.
  • FIG. 5 is a conceptual diagram illustrating a method for providing an end user performance analysis service for monitoring end user performance according to an embodiment of the present invention.
  • monitoring information such as web page performance information and script error is collected through a monitoring script written in pure JavaScript based on web standard technology. Can be sent to the server.
  • the operation of the monitoring script is hypertext markup when the stream of the page is written to the client through the application server's network output module as the server is monitored on or off. language can be performed by automatically inserting an HTML link tag of a monitoring script in accordance with a transfer protocol.
  • the monitoring scripts can be dynamically and automatically performed on specific pages, the particular end user's Internet protocol (IP), and the effectiveness of end user performance monitoring can be enhanced.
  • IP Internet protocol
  • url of a hypertext transfer protocol (HTTP) request to group multiple server service calls, such as Ajax calls, on a page per user page, into a single page unit of work.
  • HTTP hypertext transfer protocol
  • cookie information to assemble the association of calls / calls between universally unique identifier (UUID) issuance and related services on the server side for end-to-end performance Tracing can be performed.
  • end-to-end performance monitoring can be performed in real time without installing a separate user terminal agent or modifying a web page. .
  • FIG. 1 is a conceptual diagram illustrating an end-to-end end user performance automatic monitoring system according to an embodiment of the present invention.
  • an end user performance monitoring system may include a web browser 100, an application server 200, a performance information storage server 300, and a monitoring client 400.
  • the web browser 100 is subject to end user performance monitoring.
  • the web browser 100 displays a hypertext markup language (HTML) page, which is a user interface (UI) of an end user using a web service in an enterprise, and processes an event.
  • HTML hypertext markup language
  • UI user interface
  • information is collected by the monitoring script 120 inserted by the monitoring automation on the web browser, and the collected information may be transmitted to the application server 200.
  • the application server 200 may generate the end user performance information 281 based on the collected information, and the analyzed end user performance information 281 may be transmitted to the performance information storage server 300.
  • the application server 200 may be middleware such as a web application server (WAS) on which an application for providing a web service to an end user is executed.
  • the monitoring agent 210 may be executed as a library in the application server so that a monitoring script link tag may be automatically inserted at the network output of the HTML page of the application server 200, and the event of the web browser 100 may be inserted.
  • Monitoring information (or monitoring information) may be collected.
  • the monitoring information collected by the web browser 100 may be delivered to the application server 200 serving the HTML page and finally stored in the performance information storage server 300.
  • the monitoring information may be expressed in other terms in terms of end user performance monitoring information.
  • the application server 200 may receive an end user performance analysis application from an external device and install an end user performance analysis application to perform end user performance analysis.
  • the performance information storage server 300 may store the end user performance information 281 received from the application server 200 in the memory cache and the internal storage.
  • the collected end user performance information 281 may be output to an administrator screen by a request for performance information data of the monitoring client 400.
  • the monitoring client 400 expresses various performance statuses on the performance dashboard screen, and this information may be obtained by requesting the performance information storage server 300.
  • the web browser 100 is used to use a web service of a specific company. Both the personal computer (PC) or the mobile (mobile) built-in browser is applicable, and can operate on HTML-based pages.
  • PC personal computer
  • mobile mobile built-in browser
  • HTML page 110 When a request is made to the application server 200 and the HTML page 110 is received as a result page, a link to the monitoring script 120 is included depending on whether or not monitoring is set for the end user performance information 281.
  • the page can be delivered.
  • Event-specific monitoring information may be recorded in a specific performance object (eg, window.performance.timing).
  • Performance objects can vary depending on the type of web browser.
  • additional Ajax calls to the application server 200 through the XMLHttpRequest may be generated by javascript included in the page after the rendering of the page.
  • the monitoring script 120 wraps events of the HTML page 110 to collect information related to page loading, Ajax call, script error, and the like. And transmit to 200.
  • the monitoring information may be collected and transmitted at a time by a reference value (for example, 5) set in the queue size (QUEUE_SIZE).
  • a reference value for example, 5
  • the monitoring information may be transmitted to the server even if the queue is not occupied.
  • the monitoring agent 210 may also be loaded in the form of a library.
  • the application server 200 may load binary codes of modules required in a startup process into a memory.
  • the monitoring agent 210 inserts a code for calling a script injector 270 at the beginning of the network writer 221, and at the beginning of the HTTP service 230. You can insert code that calls an end user monitoring (EUM Manager) 240.
  • EUM Manager end user monitoring
  • the network reader 220 may receive an HTTP request from the web browser 100 and transmit the received HTTP request to the HTTP service 230.
  • the network writer 221 may receive an HTTP response stream of the HTTP service 230 and transmit a response to the web browser 100.
  • the script injector 270 may request a task to insert a monitoring script before sending the HTTP response stream.
  • the HTTP service 230 may serve to process a request of a client (eg, an http client) and generate a result.
  • a client eg, an http client
  • the EUM manager 240 may be called to request an end user monitoring task.
  • the result stream may be transmitted to the network writer 221 to transmit the request result to the client.
  • the EUM manager 240 may play three roles.
  • the EUM manager 240 may create a monitoring script 241 file in a web context root.
  • the EUM manager 240 may provide a service for generating a web page of a result of processing of an end user's service request, and manage the information of the result web page to end-to-end to-end) tracing can be enabled.
  • the EUM manager 240 may perform the following operations for end-to-end tracking.
  • a uniquely unique identifier (UUID) for an end user called a visitor key (VISITOR_KEY)
  • VISITOR_KEY a visitor key
  • a page info 250 which creates one page manager 250 per end user and contains the information of the current page needed for end to end tracking. ) May be created and recorded in the page manager 250.
  • the information on the page manager 250 may be registered in the cache manager 260 based on the VISITOR_KEY value.
  • the EUM manager 240 may transfer the monitoring information collected on the web browser 100 to the end user performance collector 280.
  • the monitoring script 2 241 may be generated as a file by the EUM manager 240 and downloaded and loaded into the web browser 100 when a link call is made in the HTML page 110.
  • a version number may be added to the file name to prevent the cache of the web browser 100 when the monitoring script 2 241 is changed.
  • the page manager 250 may play a role of recording and maintaining N page infos 251 in an internal structure. There are two types of page manager 250. One is the HTML Page Manager, and the other is the Ajax Page Manager. There may be two types of page info 251. One is HTML Page Info, and the other is Ajax Page Info.
  • the page manager 250 may manage a structure based on a getPage / setPage function having a uniform resource locator (URL) or a referrer as a key.
  • URL uniform resource locator
  • setPage (url, pageInfo)
  • existing pages can be moved to the right one by one and the new page can be written in the first array.
  • the default value of N may be five.
  • the page info 251 may include matching information for matching the call information of the client with the monitoring information transmitted to the application server.
  • the page info 251 may include information for matching between the information about the web page and the monitoring information transmitted to the application server (or end user performance collector).
  • Matching information for matching the call information of the client and the monitoring information transmitted to the application server may include a page type, txId, callee txId, url, ajax page manager.
  • the page info 251 further includes matching information for linking the end user performance monitoring information of the HTML page with the calling relationship between the HTML page and processing performance information of the HTML page and the application, and the end user performance monitoring information includes matching information. It can then be sent to an end user performance collector to generate end-to-end end user performance information.
  • page type is page type delimited, either HTML or Ajax.
  • txId is a universally unique identifier (UUID) for identifying the page call.
  • UUID universally unique identifier
  • callee txId is a universally unique identifier (UUID) of the application server-side for processing a request for a page call.
  • UUID universally unique identifier
  • url is the URL information called by the page. Based on the matching information, the specific page info 251 may be found by matching the URL on the monitoring information about the page collected by the client.
  • -ajax page manager can be used to manage internal Ajax call information when page_type is HTML.
  • the cache manager 260 may store the page manager 250 for a predetermined cache time based on the VISITOR_KEY value.
  • the script injector 270 may parse the http response stream to insert a monitoring script link. It operates only when the value is true according to the setting value of the current monitoring or not, and also matches the pattern against the setting value of the monitored URL pattern and the monitored client IP (Internet protocol) address pattern. Monitoring can be limited to only URLs and user IPs. This allows you to efficiently perform only on targets that need to be monitored dynamically at runtime.
  • the response header first targets when the content-type satisfies a specific format (eg text / html format) and bypasses other document formats. can do.
  • a transfer-encoding value may be obtained.
  • HTTP transmission methods chunked and content-length.
  • the protocol according to the transmission method may conform to RFC2616, which is a standard protocol for the HTTP protocol.
  • the important thing is to parse the response stream according to these HTTP transport conventions to find the location of the monitoring script link insertion defined in the configuration value (for example, right after the default value ⁇ head> tag) and link the monitoring script to that location.
  • the response can be transmitted by inserting and modifying the length of the added link to the value added to the transmission length in the existing transmission protocol.
  • the monitoring code can be secured immediately by inserting the monitoring code in a dynamic automation method at runtime rather than a static modification method on the corresponding page source.
  • the method of inserting such a monitoring script link may also be defined in terms of HTTP Byte Code Injection (HBCI).
  • the method for automatically monitoring end-to-end end user performance is based on byte stream handling and strings depending on the type of program language or target middleware (WAS). It can be divided into string stream handling or mixed.
  • WAS target middleware
  • the body sign indicating the start of the body in the HTTP protocol is four consecutive characters: CR (13), LF (10), CR (13), and LF (10). Chunked transmission is repeatedly transmitted as length + contents + length + contents, and may be finished by length being transmitted as 0 at the end.
  • the length sign may include a transmission length number (hexadecimal), a CR 13, and an LF 10.
  • the end user performance collector 280 receives the monitoring information collected by the web browser 100 from the EUM manager 240 to generate the end user performance information 281 and stores the performance information through the performance information transmitter 290. 300 can be sent.
  • the end user performance collector 280 may also serve to correct a client's time.
  • the user device's time is not synchronized with the time zone and can vary. Therefore, time synchronization may be performed by comparing the gap with the server time based on the send time in the monitoring information and applying the gap as a correction value.
  • Monitoring information collected by the monitoring script 120 in the web browser 100 may be transmitted to the performance collection endpoint url defined in the monitoring script 120.
  • the EUM manager 240 may transmit information to the end user performance collector 280.
  • the HTML page manager type information of the page manager 250 may be obtained from the cache manager 260 by extracting the VISITOR_KEY value from the cookie information based on the request of the client.
  • HTML page info type information of the page info 251 may be obtained by calling getPage (Referer) with the referrer information of the corresponding request header in the HTML page manager.
  • a send time value may be obtained based on a client's request, and a gap time with a current time of the server may be calculated. The gap time can then be calculated as a correction value at every event occurrence time of the client and used for time synchronization.
  • a page count value may be obtained based on a request of the client, and a while loop may be performed by the value.
  • One screen may be composed of a plurality of pages, and collection of end user performance information on the plurality of pages may be necessary.
  • a page count value may be obtained and a wild loop may be performed by that value.
  • the page or monitoring information may be transmitted in a bulk form to include a plurality of monitoring information, and information about the number of monitoring information may be included in a page count.
  • An EUM type value may be obtained from a corresponding request while performing a wild loop by the number of page counts.
  • EUM types There are three types of EUM types, and all three types may generate end user performance information 281 in common, and collect common information and transaction tracking information to record in the end user performance information 281. Can be. Detailed description of each type is described later in the description of the end user performance information 281.
  • getPage (ajax_call_url) is called from the Ajax page mananger of HTML page info by obtaining the Ajax call url value from the request.
  • Ajax page info type information of the page info 251 may be obtained.
  • Ajax Page Info type information may be recorded in the transaction tracking information of the end user performance information 281, and additionally, the txId of the HTML page info may be assigned to the caller txId of the end user performance information 281. .
  • the EUM type is an HTML page
  • the monitoring information is collected from the request, recorded in the performance information of the end user performance information 281, and the HTML page info type information is recorded in the transaction tracking information of the end user performance information 281. Can be written on.
  • the EUM type is a script error page
  • the error information is collected from the request and recorded in the error information of the end user performance information 281.
  • the txId of the end user performance information 281 indicates a new UUID. Create and assign
  • the end loop of the wild loop and the collected end user performance information 281 may be transmitted to the performance information storage server 300 through the performance information transmitter 290.
  • the end user performance information 281 may include common information, transaction tracking information, performance information, error information, and the like. Common information, transaction tracking information, performance information, error information, and the like may be generated based on monitoring information and page info information monitored by a monitoring script.
  • the end user performance information 281 is generated by the end user performance collector 280.
  • the end user performance information 281 may be classified into three types according to the EUM type.
  • Common information includes EUM type information, url information, referrer, user agent, client IP, client ID, WAS ID, was ID, send time, Information on a start time, an end time, and an elapsed time may be included. The following is a description of common information.
  • -EUM type information is a type of end user monitoring and may be information for identifying three types such as HTML page, Ajax page, and script error page.
  • the url information may include information about the request url of the page.
  • the referrer may include information on the url of the page that sent the request url.
  • the user agent may include information about the type of web browser engine.
  • the client IP may include information about an IP address of an end user terminal.
  • the user ID may include information about identification information (ID) of the user.
  • the WAS ID may include information about an id of a server instance providing an HTTP service.
  • the send time may include information on the time at which the performance information is transmitted from the client.
  • the start time may include information about the time at which the page started on the client.
  • the end time may include information about the time when the corresponding page ends at the client.
  • the elapsed time may include information about the time taken between the start and end of the page.
  • the transaction tracking information may include information about txId, caller txId, and calli txId. The following is a description of transaction trace information.
  • the txId may be allocated from the txId of the page info 251 as a universally unique identifier (UUID) for identifying a call of the corresponding client page.
  • UUID universally unique identifier
  • Caller txId is the txId of the page that sent the client page request, and the txId of the HTML page info type of the page info 251 only when the EUM type (eum_type) is an Ajax page. Can be allocated from
  • the calli txId (callee txId) is a server-side universally unique identifier (UUID) that processed the request for the corresponding client page call and is assigned from the calli txId (callee_txId) of the page info 251. Can be.
  • UUID server-side universally unique identifier
  • Performance information can only be obtained from an html page type.
  • the units can all be milliseconds.
  • the performance information may include information about preparation time, response time, and loading time.
  • the preparation time may include information about the time required from the start of the page to the request of the server (requestStart-navigationStart).
  • the response time may include information about the time required from the server request to the completion of the server response (responseEnd-requestStart).
  • the loading time may include information on the time required from the completion of the server response until the end of the page (loadEventEnd-responseEnd).
  • performance.timing may be performance information embedded internally in accordance with the standard conventions of HTML documents.
  • Error information may only be obtained from a script error page type.
  • the error information may include information about an error stack, an error message, an error line, and an error column.
  • the error stack may contain information about the stack trace where the script error occurred.
  • the error message may be a script error message.
  • the error line may be a line number where a script error occurs.
  • the error column may be the column number where the script error occurred.
  • the service performance information transmitter 290 converts the end user performance information 281 received from the end user performance collector 280 into a byte stream and transmits it to the performance information storage server 300 using the UDP protocol. Can be done.
  • a UDP transport rather than TCP can be used to quickly handle high-frequency calls to store performance information in a remote repository.
  • the performance information storage server 300 may record the end user performance information 281 received from the application server 200 in an internal storage and provide the end user performance information 281 to the monitoring client 400.
  • the monitoring client 400 may request and visualize and display the end user performance information 281 from the performance information storage server 300.
  • FIG. 2 is a conceptual diagram illustrating a reference relationship between pages according to an embodiment of the present invention.
  • the page manager 250 may have two types, and the two types may be an HTML page manager and an Ajax page manager.
  • Page Info 251 there are two types, and the two types may be HTML Page Info and Ajax Page Info.
  • HTML page info may be referred to by an HTML page manager 250.
  • HTML page manager type information of the page manager 250 may be obtained from the cache manager 260 by extracting a VISITOR_KEY value from a cookie of the corresponding request.
  • HTML page info type information of the page info 251 may be obtained by calling getPage (Referer) with the referrer information of the corresponding request header in the HTML page manager.
  • the Ajax page manager can be referenced by the HTML page info, and the Ajax page info can be referenced by the Ajax page manager.
  • the EUM type is an Ajax page
  • Ajax page info type information of the info 251 may be obtained.
  • FIG. 3 is a conceptual diagram illustrating a change in an internal structure of a page manager 250 according to a page call according to an exemplary embodiment of the present invention.
  • a structure that may contain N page informations 251 may exist inside the page manager 250.
  • a structure may be managed based on a getPage / setPage function having a uniform resource locator (URL) or a referrer as a key.
  • URL uniform resource locator
  • setPage (url, pageInfo)
  • existing pages can be moved to the right one by one and the new page can be written in the first array.
  • the default value of N may be five.
  • FIG. 4 is a flowchart illustrating a method for automatically monitoring end-to-end end user performance according to an embodiment of the present invention.
  • step S402 the process of the application server 200 is started (step S402).
  • the memory loading of the binary code of the network writer 221 and the HTTP service module 230 is performed with the start of the process of the application server 200 (step S404).
  • the monitoring agent 210 may insert code for calling the script injector 270 at the beginning of the network writer 221 (step S406).
  • a code for calling the EUM manager 240 may be inserted at the beginning of the HTTP service 230.
  • the application server 200 may finish the memory loading work for all the modules required for the service and complete the service preparation (step S408).
  • the user may call the http service of the application server 200 through the web browser 100 (step S410).
  • the network reader 220 may receive a request of a web browser and transmit the request to the HTTP service 230 (step S412).
  • the HTTP service may call the EUM manager 240 at the start of the service (step S414).
  • the EUM manager 240 may generate a monitoring script file in a web context root path at the first http request (step S416).
  • the EUM manager 240 may then extract the VISITOR_KEY from the cookie of the http request header (step S418). At this time, if there is no VISITOR_KEY, it may be determined as the first visited user, and VISITOR_KEY may be generated and recorded in the http response cookie.
  • the page manager 250 may be generated as the HTML page manager type by the EUM manager 240 (step S420).
  • the HTML page info can be generated as the page info 251 (step S422).
  • a structure may be generated that can contain N page infos 251 therein.
  • the page info may be generated as an HTML page info type by the EUM manager 240.
  • an Ajax page manager type page manager 250 may be created therein to manage Ajax pages.
  • a txId required for end-to-end tracking may be generated, and a callee_txId may be assigned a txId of a current service.
  • the page manager 250 may call setPage (url, pageInfo) to record the call.
  • the HTML page manager type information generated above using VISITOR_KEY as a key value in the cache manager 260 may be registered by the EUM manager 240 (step S424).
  • the web page 231 reads the HTTP service 230 to generate a request result page (step S426).
  • the web page result stream 231 may be delivered to the network writer 221, and the result may be transmitted to the web browser 100 (step S428).
  • the script injector 270 may be called at the start of transmission of the network writer 221 to perform a monitoring script insertion operation (step S430).
  • the HTML page 110 may receive a service result page from the network writer 221 (step S432).
  • the monitoring script 120 may be downloaded from the application server 200 by a monitoring script link tag inserted after the ⁇ head> tag of the result page (step S434).
  • the monitoring script 120 may wrap and monitor all events related to performance and errors of the HTML page 110 in the loading process after being downloaded (step S436).
  • Ajax calls included in HTML page 110 are performed (step S438). This request may be delivered to the EUM manager 240 via the network leader 220 (step S440) and the HTTP service 230 (step S442).
  • the EUM manager 240 may determine that it is an Ajax call by reading the content-type of the HTTP request header. First, the EUM manager 240 obtains VISITOR_KEY from a cookie of the request header (step S444).
  • the EUM manager 240 may obtain an HTML page manager type page manager 250 using VISITOR_KEY as a key value (step S446).
  • the EUM manager 240 may obtain the HTML page info type by calling getPage (referer) using the referrer information obtained in the HTTP request header as a key (step S448).
  • the page info 251 may be generated by the EUM manager 240 as an Ajax page info type (step S450). When generating, it is possible to generate a txId required for end-to-end tracking and assign a txId of the current service to callee_txId. Finally, the url information of the current request is allocated.
  • the Ajax page manager type information of the page manager 250 is present in the internal information of the HTML page info type obtained above, and can be recorded by calling setPage (url, ajaxPageInfo) of the Ajax page manager. (Step S452).
  • step S454 When the service of the HTTP service 230 is terminated (step S454) and the service result is transmitted through the network writer 221 (step S456), the Ajax call of the HTML page 110 may be terminated (step S456). S458). Subsequently, all ends until the HTML page 100 is received (step S460).
  • the monitoring script 120 records the monitoring performance information on all events performed so far in an internal queue, and when the queue size reaches a set transmission size (for example, 5), the monitoring script 120 stores the monitoring information that has been collected in the monitoring script. Can be sent to the performance collection endpoint url. When the request url matches the performance collection endpoint url, the EUM manager 240 may transmit corresponding monitoring information to the end user performance collector 280 (step S462).
  • a set transmission size for example, 5
  • the end user performance collector 280 may extract the VISITOR_KEY value from the cookie of the corresponding HTTP request header (step S464).
  • HTML page manager type information can be obtained from the cache manager 260 using VISITOR_KEY as a key (step S466).
  • HTML page info type information can be obtained by calling getPage (Referer) with key referrer information of the request header in the HTML page manager.
  • the end user performance collector 280 may then obtain a send time value from the request and perform time correction with the current time of the server (step S468).
  • the end user performance collector 280 may then obtain a page count value from the request and perform a wire loop by that value (step S470). Monitoring information about a page is transmitted in bulk form to contain a number of monitoring information, and the number is contained in a page count.
  • the end user performance information 281 is used to determine the Ajax page, the html page, and the script error page based on the EUM type value obtained from the request during the while loop. It can be created in three types. Common information, transaction tracking information, performance information, and error information may be collected and recorded according to the generated type of end user performance information 281 (step S472).
  • the page count loop of the end user performance collector 280 ends (step S474).
  • the performance information transmitter 290 may receive the end user performance information 281 and transmit the performance information storage server 300 (step S476).
  • the store of the performance information storage server 300 may store end user performance information 281 received from the performance information transmitter 290 (step S478).
  • the monitoring client 400 may request the end user performance information from the performance information storage server 300 and visualize and display the result (step S480).
  • FIG. 5 is a conceptual diagram illustrating a method for providing an end user performance analysis service for automatically monitoring end-to-end end user performance according to an embodiment of the present invention.
  • FIG. 5 a system for providing an end user performance analysis service on the network described above in FIGS. 1 to 4 is disclosed.
  • the end user performance analysis control apparatus 500 may be an apparatus for providing an end user performance analysis service to a monitoring client.
  • the end user analysis control apparatus 500 may be a subject providing an application for an end user performance analysis service.
  • it may be a server (or computer) transmitting an end user performance analysis application or a storage medium such as USB.
  • the end user performance analysis control apparatus 500 may include a processor and a communication unit.
  • the processor may be implemented to control the driving of the end user performance analysis control apparatus 500, and the communication unit may include an application server 200 and performance information. It may be operatively connected to the processor for communication with the storage server 300, the monitoring client 400, and the like.
  • the end user performance analysis control apparatus may include a communication unit and a processor, and may be implemented to transmit only the end user performance analysis application (or the performance analysis component 200-1).
  • the end-to-end end user performance analysis target application server includes a communication unit implemented to receive the end user performance analysis application (or performance analysis component 200-1) and a processor operatively connected to the communication unit.
  • the processor may be implemented to install an end user performance analysis application.
  • the performance analysis component 200-1 performs operations for analyzing end user performance performed on the application server 200 / performance information storage server 300 / monitoring client 400 described above with reference to FIGS. 1 to 4. Can be driven.
  • the performance analysis component 200-1 may be a set of components (or at least one of the components) for end user performance analysis installed in the application server described above with reference to FIGS. 1 to 4.
  • the performance analysis component 200-1 may be implemented for performance analysis on the application 200-2 installed in the application server.
  • the performance analysis component 200-1 is implemented to monitor the page provided by the application server to the end user based on the monitoring script, and the monitoring script provides monitoring information about the event information generated in the page. Can be collected and provided to an end user performance collector.
  • the performance analysis component 200-1 adds a monitoring script to the response of the application for serving the HTML page with a web browser, and the monitoring script collects and provides end user performance monitoring information on events generated from the HTML page. can do.
  • the performance analysis component 200-1 generates a unique identifier for the end user on the web browser, generates and stores a page manager and page info for the end user with the unique identifier as a key, and the page manager has an internal structure. Is implemented to manage n (where n is a natural number) page info, and the page info can include information for end-to-end performance tracking.
  • the monitoring script parses the response stream for generating the HTML page to insert the monitoring script link at the set monitoring link insertion position, and the transmission length of the response stream may be redefined in consideration of the length of the monitoring script link.
  • the page info may further include matching information for linking the end user performance monitoring information of the HTML page with the calling relationship between the HTML page and processing performance information of the HTML page and the application.
  • the end user performance monitoring information may be sent to the end user performance collector based on the matching information to generate end-to-end end user performance information.
  • the end user performance collector provides the end user performance information generated based on the end user performance monitoring information according to the end user monitoring type, and the end user monitoring type may be classified according to the format of the page.
  • Embodiments according to the present invention described above can be implemented in the form of program instructions that can be executed by various computer components and recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device may be modified with one or more software modules to perform the processing according to the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치에 관한 것이다. 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법은 어플리케이션 서버가 성능 분석 컴포넌트를 수신하는 단계와 어플리케이션 서버가 성능 분석 컴포넌트를 설치하는 단계를 포함하되, 성능 분석 컴포넌트는 웹 브라우저로 HTML(hypertext markup language) 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고, 모니터링 스크립트는 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공할 수 있다.

Description

엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치
본 발명은 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치에 관한 것이다. 보다 상세하게는 엔드 유저(end-user)의 사용자 경험에 대한 품질 향상을 위해 클라이언트의 오류 현황 및 클라이언트에서 서버까지의 엔드-투-엔드(end-to-end) 성능을 모니터링하기 위한 방법 및 장치에 관한 것이다.
인터넷의 보급 및 확산을 통한 웹 서비스의 영역은 이제 기업 비즈니스에서 필수 영역으로 자리매김 한지 오래이다. 기업 비즈니스에서 핵심 서비스 영역 중의 하나인 웹 서비스에 대한 사용자 경험의 품질을 제고하기 위해 사용자 체감 성능을 향상 시키고, 다양한 사용자 단말 환경에서 발생할 수 있는 오류 발생 빈도를 낮추기 위한 기업들의 노력들은 자연스럽게 관련 기술에 대한 관심으로 이어지고 있다.
엔드 유저의 사용자 경험에 대한 품질을 관리하기 위한 종래의 기술들은 사용자 단말의 응답시간을 측정하여 성능을 모니터링 하는 정도의 수준을 제공하고 있다.
상기 종래의 기술들 중 일부는 엔드 유저의 사용자 응답시간을 모니터링 하기 위해 웹 브라우저와 같은 사용자 단말에 Active-X와 같은 별도의 에이전트를 설치하여 호환성 문제, 설치에 따른 불편함 등의 문제를 야기한다.
또한, 종래의 다른 기술은 서버의 네트워크 구간에 엔드 유저 성능을 모니터링 하기 위한 별도의 전용 서버를 설치하여 네트워크 전송 시간을 기준으로 사용자 응답시간을 수집하기도 한다.
또한, 종래의 다른 기술은 엔드 유저의 사용자 응답 시간을 측정하여 GUID 기준으로 네트워크 전송시간과 어플리케이션 처리 시간을 모니터링 하기도 한다. 이러한 모든 종래의 기술들은 사용자 경험의 품질 측면에서 응답시간과 같은 성능만 모니터링 되고 오류 발생과 같은 품질은 모니터링 되지 않는 문제가 있다.
또한, 성능 모니터링의 효율성 측면에서도 모니터링 위한 설치 등의 사전 준비 작업 등의 수작업이 수반되어 효율성 및 즉시성이 떨어지는 문제를 가지고 있다.
또한, 엔드 유저 성능 관점에서 사용자가 서비스 요청을 위한 버튼 클릭과 같은 이벤트 시작에서 서비스 응답이 완료되어 페이지가 다음 사용자의 이벤트에 반응하기 까지의 전 과정 중, 요청 전까지의 네트워크 연결 준비 단계, 서버로부터 응답을 받은 이후 페이지를 로딩(loading)하는 단계 등의 성능 지표는 종래의 기술에서 수집되지 못하고 서버 요청에 대한 응답시간만 관리되는 문제를 가지고 있다.
또한, 엔드-투-엔드(end-to-end)로 엔드 유저 성능 정보와 어플리케이션의 처리 성능 정보를 연결하여 모니터링하는 방법에서도 단순하게 이벤트 단위의 GUID를 이용한 연결만 가능할 뿐, 사용자 화면의 페이지 중심으로 엔드 투 엔드(end-to-end) 성능 모니터링을 가능하게 해 주지는 못하고 있다.
따라서, 사용자 경험에 대한 품질을 제고하기 위한 실효적인 모니터링 기술을 위하여 상기 종래 기술의 문제점 및 기술적인 한계를 뛰어 넘을 수 있는 새로운 방법이 필요하다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은, 기업 내의 웹 서비스에서 엔드 유저(end user) 사용자 경험에 대한 품질 향상을 목적으로 엔드 유저 웹 페이지의 성능 및 오류 현황을 웹 페이지 수정 없이 자동으로 모니터링 하여 서버 측(server-side)의 성능 정보를 엔드-투-엔드(end to end)로 추적하는 것을 다른 목적으로 한다.
또한, 본 발명은, 엔드 유저 성능 모니터링을 함에 있어 클라이언트 단말에 에이전트(agent)를 설치하거나 웹 페이지를 수정하는 방식 등이 가지고 있는 즉시성 및 실효성 문제를 극복하기 위해 에이전트의 설치나 웹 페이지에 대한 수정이 필요 없는 자동화 방식을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은, 클라이언트 측(client-side)에서 웹 페이지 단위로 클라이언트에서 서버까지의 엔드 투 엔드(end to end) 성능 정보를 추적하고 모니터링하는 것을 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 엔드-투-엔드 엔드 유저 성능 분석 방법은 어플리케이션 서버가 성능 분석 컴포넌트를 수신하는 단계와 상기 어플리케이션 서버가 상기 성능 분석 컴포넌트를 설치하는 단계를 포함할 수 있되, 상기 엔드 유저 성능 분석 어플리케이션은 웹 브라우저로 HTML(hypertext markup language) 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고, 상기 모니터링 스크립트는 상기 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공할 수 있다.
본 발명의 다른 태양에 따르면, 엔드-투-엔드 엔드 유저 성능 분석 대상 어플리케이션 서버는 성능 분석 컴포넌트를 수신하기 위해 구현된 통신부와 상기 통신부와 동작 가능하게(operatively) 연결된 프로세서를 포함하되, 상기 프로세서는 상기 성능 분석 컴포넌트를 설치하도록 구현되고, 상기 성능 분석 컴포넌트는 웹 브라우저로 HTML(hypertext markup language) 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고, 상기 모니터링 스크립트는 상기 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공할 수 있다.
본 발명에 의하면, 기업 내의 웹 서비스에서 엔드 유저(end user) 사용자 경험에 대한 품질 향상을 목적으로 엔드 유저 웹 페이지의 성능 및 오류 현황을 웹 페이지 수정 없이 자동으로 모니터링하여 서버단의 성능 정보가 엔드-투-엔드(end to end)로 추적될 수 있다.
또한, 엔드 유저 성능 모니터링을 함에 있어 클라이언트 단말에 에이전트(agent)를 설치하거나 웹 페이지를 수정하는 방식 등이 가지고 있는 즉시성 및 실효성 문제를 극복하기 위해 에이전트의 설치나 웹 페이지에 대한 수정이 필요 없는 자동화 방식이 제공될 수 있다.
또한, 엔드 유저 단에서 웹 페이지 단위의 클라이언트에서 서버까지의 엔드 투 엔드(end to end) 성능 정보가 추적되고 모니터링될 수 있다.
이뿐만 아니라, 사용자의 웹 페이지 이동 경로, 검색 조건 등의 수집 데이터를 활용하여 이-커머스(e-commerce) 시장에서의 BAM(business activity monitoring) 이나 AI(artificial intelligence)를 활용한 상품 추천 시스템 등의 원천 데이터로 사용될 수 있다.
도 1은 본 발명의 실시예에 따른 엔드 유저 성능 모니터링 시스템을 나타낸 개념도이다.
도 2는 본 발명의 실시예에 따른 페이지 간 참조 관계를 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 페이지 호출에 따른 페이지 매니저의 구조체의 변화를 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 엔드 유저 성능 모니터링 방법을 나타낸 순서도이다.
도 5는 본 발명의 실시예에 따른 엔드 유저 성능 모니터링을 위한 엔드 유저 성능 분석 서비스 제공 방법을 나타낸 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여 지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 바람직한 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
이하, 본 발명의 실시예에서 개시되는 특정 프로그램 언어, 통신 프로토콜, 전송 규약 등은 하나의 예시로서 다른 다양한 프로그램 언어, 통신 프로토콜, 전송 규약 등이 사용될 수도 있고, 이러한 실시예 또한 본 발명의 권리 범위에 포함될 수 있다.
본 발명의 실시예에 따른 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법에서는 웹 표준 기술 기반의 순수 자바 스크립트(JavaScript)로 작성된 모니터링 스크립트를 통해 웹 페이지의 성능 정보 및 스크립트 오류 등과 같은 모니터링 정보를 수집하여 서버로 전송할 수 있다.
모니터링 스크립트의 작동은 서버의 모니터링 여부 온/오프(on/off) 변경에 따라 해당 페이지의 스트림(stream)이 어플리케이션 서버의 네트워크 출력 모듈을 통해 클라이언트로 쓰기(write)가 될 때, HTML(hypertext markup language) 전송 규약에 맞춰 모니터링 스크립트의 HTML 링크 태그(html link tag)를 자동으로 삽입하는 방식으로 수행될 수 있다.
이러한 방식의 모니터링 스크립트의 작동에 특정 페이지, 특정 엔드 유저(end user)의 IP(internet protocol)에 대한 모니터링이 동적으로 또한 자동적으로 수행되고 엔드 유저 성능 모니터링의 실효성이 높아질 수 있다.
사용자 페이지 단위로 해당 페이지와 그 페이지에서 발생하는 Ajax 콜(Ajax Call)과 같은 복수개의 서버 서비스 호출을 하나의 페이지 작업 단위로 묶어서 보여 주기 위해 HTTP(hypertext transfer protocol) 요청의 리퍼러(referrer), url(uniform resource locator) 정보와 쿠키(cookie) 정보를 활용하여 서버 사이드에서 UUID(universally unique identifier) 발행 및 관련 서비스 간의 호출/피호출의 연관 관계를 조립하여 엔드 투 엔드(end to end) 성능에 대한 추적을 수행할 수 있다.
위와 같은 엔드 유저 성능 모니터링 방법을 통해 별도의 사용자 단말 에이전트 설치나 웹 페이지의 수정 작업 없이 실시간으로 엔드 유저(end user)에 대한 성능 모니터링을 엔드-투-엔드(end to end)로 수행할 수 있다.
도 1은 본 발명의 실시예에 따른 엔드-투-엔드 엔드 유저 성능 자동 모니터링 시스템을 나타낸 개념도이다.
도 1을 참조하면, 엔드 유저 성능 모니터링 시스템은 웹 브라우저(100), 어플리케이션 서버(200), 성능 정보 저장 서버(300), 모니터링 클라이언트(400)를 포함할 수 있다.
웹 브라우저(100)는 엔드 유저 성능 모니터링의 대상이다. 웹 브라우저(100)는 기업 내 웹 서비스를 이용하는 엔드 유저(end user)의 UI(user interface)인 HTML(hypertext markup language) 페이지를 표출하고 이벤트를 처리하는 역할을 수행한다. 이벤트가 처리되는 과정은 웹 브라우저 상에서 모니터링 자동화에 의해 삽입된 모니터링 스크립트(120)에 의해 정보가 수집되고, 수집된 정보는 어플리케이션 서버(200)로 전송될 수 있다. 어플리케이션 서버(200)는 수집된 정보를 기반으로 엔드 유저 성능 정보(281)를 생성하고, 분석된 엔드 유저 성능 정보(281)는 성능 정보 저장 서버(300)로 전송될 수 있다.
어플리케이션 서버(200)는 엔드 유저에게 웹 서비스를 제공하는 어플리케이션이 실행되는 WAS(web application server)와 같은 미들웨어(middleware) 등일 수 있다. 모니터링 에이전트(210)가 어플리케이션 서버에 라이브러리 형태로 같이 실행되어 어플리케이션 서버(200)의 HTML 페이지에 대한 네트워크 출력시 모니터링 스크립트 링크 태그(link tag)가 자동 삽입될 수 있고, 웹 브라우저(100)의 이벤트 모니터링 정보(또는 모니터링 정보)가 수집될 수 있다. 웹 브라우저(100)에서 수집된 모니터링 정보는 HTML 페이지를 서비스한 어플리케이션 서버(200)로 전달되고 최종적으로 성능 정보 저장 서버(300)에 저장될 수 있다. 모니터링 정보는 다른 표현으로 엔드 유저 성능 모니터링 정보라는 용어로 표현될 수도 있다.
어플리케이션 서버(200)는 외부 장치로부터 엔드 유저 성능 분석 어플리케이션을 수신하고, 엔드 유저 성능 분석 어플리케이션을 설치하여 엔드 유저 성능 분석을 수행할 수 있다.
성능 정보 저장 서버(300)는 어플리케이션 서버(200)로부터 수신한 엔드 유저 성능 정보(281)를 메모리 캐쉬 및 내부 저장소에 저장할 수 있다. 이렇게 수집된 엔드 유저 성능 정보(281)는 모니터링 클라이언트(400)의 성능 정보 데이터 요청에 의해 관리자 화면에 출력될 수 있다.
모니터링 클라이언트(400)는 성능 대쉬보드 화면에 다각적인 성능 현황을 표출하며, 이러한 정보는 성능 정보 저장 서버(300)에 요청하여 획득될 수 있다.
이하, 구체적인 엔드 유저 성능 모니터링을 위한 동작이 개시된다.
웹 브라우저(100)는 특정 기업의 웹 서비스를 이용하기 위해 사용된다. PC(personal computer)나 모바일(mobile)의 내장 브라우저가 모두 해당되며, HTML 기반의 페이지에서 동작할 수 있다. 어플리케이션 서버(200)에 서비스를 요청하여 그 결과 페이지인 HTML 페이지(110)를 수신시 엔드 유저 성능 정보(281)에 대한 모니터링 설정 여부에 따라 모니터링 스크립트(120)에 대한 링크(link)가 포함된 페이지가 전달될 수 있다.
HTML 페이지(110)가 웹 브라우저(100)에 의해 렌더링(rendering)되는 과정에서 여러 이벤트가 발생할 수 있고, 이벤트 별 모니터링 정보는 특정 성능 객체(예를 들어, window.performance.timing)에 기록될 수 있다. 성능 객체는 웹 브라우저 종류에 따라 달라질 수 있다. 또한 페이지 렌더링의 종료 후 초기화 과정에서 페이지에 포함된 javascript에 의해 XMLHttpRequest를 통한 어플리케이션 서버(200)로의 추가적인 Ajax 호출이 발생될 수도 있다.
모니터링 스크립트(120)는 HTML 페이지(110)의 이벤트(event)들을 랩핑(wrapping)하여 페이지 로딩(page loading), Ajax 콜(Ajax call), 스크립트 에러(script error)와 관련된 정보를 수집하여 어플리케이션 서버(200)로 전송할 수 있다. 어플리케이션 서버와의 호출 빈도를 줄이기 위해 큐 사이즈(QUEUE_SIZE)에 설정된 기준 값(예를 들어, 5)만큼 모니터링 정보가 모여서 한 번에 전송될 수 있다. 이때 일정 큐잉 타임(QUEUING_TIME)을 초과한 경우 큐가 차지 않은 상태이더라도 서버로 모니터링 정보가 전송될 수 있다.
어플리케이션 서버(200)의 프로세스가 기동될 때 모니터링 에이전트(210)도 라이브러리(library) 형태로 같이 로딩(loading)될 수 있다. 어플리케이션 서버(200)는 기동 과정에서 필요한 모듈들의 바이너리 코드(binary code)들을 메모리로 로딩할 수 있다.
이때 모니터링 에이전트(210)는 네트워크 라이터(network writer)(221)의 시작 부분에 스크립트 인젝터(script injector)(270)를 호출하는 코드를 삽입하고, HTTP 서비스(HTTP service)(230)의 시작 부분에는 EUM 매니저(EUM(end user monitoring) Manager)(240)를 호출하는 코드를 삽입할 수 있다.
네트워크 리더(network reader)(220)는 웹 브라우저(100)의 HTTP 요청을 받아들여 HTTP 서비스(230)로 전달하는 역할을 수행할 수 있다.
네트워크 라이터(221)는 HTTP 서비스(230)의 HTTP 응답 스트림을 전달받고 웹 브라우저(100)에게 응답을 전송하는 역할을 수행할 수 있다. HTTP 응답 스트림을 전송하기 전에 모니터링 스크립트를 삽입하기 위한 작업을 스크립트 인젝터(script injector)(270)에게 요청할 수 있다.
HTTP 서비스(230)은 클라이언트(예를 들어, http 클라이언트(client))의 요청을 처리하고 그 결과를 만드는 역할을 수행할 수 있다. HTTP 서비스(230)의 시작 부분에서 EUM 매니저(240)를 호출하여 엔드 유저 모니터링 작업을 요청할 수 있다. 모든 작업이 완료되면 요청 결과를 클라이언트에게 전송하기 위해 네트워크 라이터(221)에게 결과 스트림을 전송할 수 있다.
EUM 매니저(240)는 크게 3개의 역할을 수행할 수 있다.
EUM 매니저(240)는 최초로 클라이언트로부터 http 요청을 수신시 모니터링 스크립트(241) 파일을 웹 콘텍스트 루트(web context root)에 생성할 수 있다.
또한, EUM 매니저(240)는 엔드 유저(end user)의 서비스 요청에 대한 처리 결과를 웹 페이지로 만들기 위한 서비스를 제공할 수 있고, 결과 웹 페이지의 정보를 관리하여 엔드-투-엔드(end-to-end) 추적을 가능하게 할 수 있다. EUM 매니저(240)는 엔드-투-엔드(end-to-end) 추적을 위해 아래와 같은 동작을 수행할 수 있다.
- 엔드 유저(end user)를 식별하기 위해 비지터 키(VISITOR_KEY)라는 엔드 유저에 대한 고유 식별자(UUID, universally unique identifier)가 생성되고, HTTP 응답 객체의 쿠키(cookie) 정보에 그 값이 기록될 수 있다.
- 그리고 엔드 유저(end user) 당 하나의 페이지 매니저(page manager)(250)를 생성하고, 엔드 투 엔드(end to end) 추적에 필요한 현재 페이지의 정보를 담고 있는 페이지 인포(page info)(251)를 생성하고 페이지 매니저(page manager)(250)에 기록할 수 있다.
- 페이지 매니저(250)에 대한 정보는 비지터 키(VISITOR_KEY) 값을 기반으로 캐쉬 매니저(cache manager)(260)에 등록될 수 있다.
또한, EUM 매니저(240)는 웹 브라우저(100) 상에서 수집된 모니터링 정보를 엔드 유저 성능 수집기(280)로 전달할 수 있다.
모니터링 스크립트2(241)는 EUM 매니저(240)에 의해 파일로 생성되어 HTML 페이지(110)에서 링크(link) 호출이 발생하면 웹 브라우저(100)로 다운로드되고 로딩될 수 있다. 모니터링 스크립트2(241)의 생성시, 버전 번호(version number)를 파일명에 추가하여 모니터링 스크립트2(241)의 변경시 웹 브라우저(100)의 캐쉬(cache)를 방지할 수 있다.
페이지 매니저(Page Manager)(250)는 내부의 구조체에 N개의 페이지 인포(Page Info)(251)를 기록하고 유지하는 역할을 수행할 수 있다. 페이지 매니저(250)는 2개의 타입이 존재한다. 하나는 HTML 페이지 매니저(HTML Page Manager)이고, 다른 하나는 Ajax 페이지 매니저(Ajax Page Manager)이다. 페이지 인포(Page Info)(251)도 2개의 타입이 존재할 수 있다. 하나는 HTML 페이지 인포(HTML Page Info)이고, 다른 하나는 Ajax 페이지 인포(Ajax Page Info)이다.
페이지 매니저(250)의 내부에는 N개의 페이지 인포(Page Info)(251)를 담을 수 있는 구조체가 존재할 수 있다.
페이지 매니저(250)는 URL(uniform resource locator) 또는 리퍼러(referrer)를 키(key)로 하는 겟페이지/셋페이지(getPage/setPage) 함수를 기반으로 구조체를 관리할 수 있다.
셋페이지 함수(setPage(url, pageInfo))의 수행시 기존의 페이지들을 오른쪽으로 하나씩 이동을 시키고 맨 처음의 배열에 신규 페이지를 기록할 수 있다. FIFO(First In First Out) 형태의 구조체로 N개를 초과하는 초기의 페이지는 구조체에서 삭제될 수 있다. 이런 방식으로 웹 페이지 내의 또 다른 내장 페이지나 팝업 페이지 등 멀티 페이지를 최대 N개 동시 모니터링 할 수 있다. 예를 들어, N의 기본 값은 5일 수 있다.
페이지 인포(251)는 클라이언트의 호출 정보와 어플리케이션 서버로 전송되는 모니터링 정보를 매칭하기 위한 매칭 정보를 포함할 수 있다. 다른 표현으로 페이지 인포(251)는 웹 페이지에 대한 정보와 어플리케이션 서버(또는 엔드 유저 성능 수집기)로 전송된 모니터링 정보 간의 매칭을 위한 정보를 포함할 수 있다. 클라이언트의 호출 정보와 어플리케이션 서버로 전송되는 모니터링 정보를 매칭하기 위한 매칭 정보는 page type, txId, callee txId, url, ajax page manager 등을 포함할 수 있다. 페이지 인포(251)는 HTML 페이지의 엔드 유저 성능 모니터링 정보와 HTML 페이지 간의 호출 관계 및 HTML 페이지와 어플리케이션의 처리 성능 정보와의 연결을 위한 매칭 정보를 더 포함하고, 엔드 유저 성능 모니터링 정보는 매칭 정보를 기반으로 엔드 유저 성능 수집기로 전송되어 엔드-투-엔드 엔드 유저 성능 정보를 생성할 수 있다.
다음은 매칭 정보들에 대한 설명이다.
- page type은 페이지 유형 구분으로 HTML 또는 Ajax가 있다.
- txId는 해당 페이지 호출을 구분하기 위한 고유 식별자(UUID, universally unique identifier)이다.
- callee txId는 페이지 호출에 대한 요청을 처리하기 위한 어플리케이션 서버측(server-side)의 거래 고유 식별자(UUID, Universally Unique Identifier)이다.
- url은 페이지에서 호출한 URL 정보이다. 이러한 매칭 정보를 기반으로 클라이언트에서 수집된 페이지에 대한 모니터링 정보 상의 URL과 매칭하여 특정 페이지 인포(251)를 찾을 수 있다.
- ajax page manager는 page_type이 HTML인 경우 내부 Ajax 콜(Ajax call) 정보를 관리하기 위해 사용될 수 있다.
캐쉬 매니저(cache manager)(260)는 VISITOR_KEY값을 기반으로 페이지 매니저(250)를 일정 캐쉬 타임(cache time)만큼 보관할 수 있다.
스크립트 인젝터(270)는 http 응답 스트림(stream)을 파싱(parsing)하여 모니터링 스크립트 링크를 삽입할 수 있다. 현재 모니터링 수행 여부의 설정 값에 따라 값이 참(true)인 경우에만 동작하도록 하고, 또한 모니터링 대상 URL 패턴, 모니터링 대상 클라이언트(Client) IP(internet protocol) 주소 패턴의 설정 값과 대조하여 패턴에 부합되는 URL 및 사용자 IP에만 제한적으로 모니터링을 수행할 수 있다. 이를 통해 런타임(runtime)시에 동적으로 모니터링이 필요한 대상에 대해서만 효율적으로 수행할 수 있게 한다.
모니터링 대상으로 결정되면 먼저 응답 헤더(header)에서 컨텐츠-타입(content-type)이 특정 포맷을 만족하는 경우(예를 들어, text/html 포맷)를 대상으로 하고 다른 문서 형식은 바이패스(bypass)할 수 있다. 다음은 전달-인코딩(transfer-encoding) 값을 획득할 수 있다. HTTP 전송 방식은 청크된(chunked) 방식과 컨텐츠-길이(content-length) 방식 2가지로 구분된다. 전송 방식에 따른 규약은 HTTP 프로토콜에 대한 표준 규약인 RFC2616을 준용할 수 있다.
중요한 것은 이러한 HTTP 전송 규약에 따라 응답 스트림을 파싱(parsing)하여 설정 값에 정의된 모니터링 스크립트 링크 삽입 위치(예를 들어, 기본 값-<head> tag 바로 뒤)를 찾고, 그 위치에 모니터링 스크립트 링크를 삽입한 다음 추가된 링크의 문자열 길이만큼 기존 전송 규약 내의 전송 길이에 더한 값으로 수정하여 응답을 전송할 수 있다. 이렇게 해당 페이지 소스(source)에 대한 정적인 수정 방식이 아닌 런타임(runtime)시 동적 자동화 방식으로 모니터링 코드를 삽입함으로써 즉시성 및 실효성이 담보될 수 있다. 이러한 모니터링 스크립트 링크의 삽입 방법은 HBCI(HTTP Byte Code Injection)이라는 용어로도 정의될 수 있다.
본 발명의 실시예에 따른 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법은 사용되는 프로그램 언어(program language)나 대상 미들웨어(WAS, Web Server)의 유형에 따라 바이트 스트림 핸들링(byte stream handling)과 스트링 스트림 핸들링(string stream handling)으로 구분되거나 혼재되어 적용될 수 있다.
HTTP 규약에서의 본문 시작을 알리는 바디 사인(body sign)은 CR(13), LF(10), CR(13), LF(10) 4개의 연속된 캐릭터(character)이다. 청크드(Chunked) 방식의 전송은 length+contents+length+contents와 같이 반복 전송되며 마지막에 length가 0으로 전송되어 마무리될 수 있다. 이때 길이 사인(length sign)은 전송 길이 숫자(16진수), CR(13), LF(10)로 구성될 수 있다.
엔드 유저 성능 수집기(280)는 웹 브라우저(100)에서 수집된 모니터링 정보를 EUM 매니저(240)로부터 전달받아 엔드 유저 성능 정보(281)를 생성하고 이를 성능 정보 전송자(290)를 통해 성능 정보 저장 서버(300)로 전송할 수 있다.
또한 엔드 유저 성능 수집기(280)는 클라이언트(client)의 시간을 보정하는 역할도 수행할 수 있다. 사용자 장치의 시간은 표준 시간대와 동기화가 되어 있지 않아 각기 다를 수 있다. 따라서, 모니터링 정보 내의 전송 시간(send time)을 기준으로 서버 시간과 비교하여 그 차이(gap)만큼을 보정 수치로 적용하여 시간 동기화를 수행할 수 있다.
웹 브라우저(100)에서 모니터링 스크립트(120)에 의해 수집된 모니터링 정보는 모니터링 스크립트(120)에 정의된 성능 수집 엔드 포인트 url(endpoint url)로 전송될 수 있다.
EUM 매니저(240)는 요청 url과 성능 수집 엔드 포인트 url과 일치할 경우, 엔드 유저 성능 수집기(280)로 정보를 전달할 수 있다.
이하에서는 엔드 유저 성능 수집기(280)의 역할이 구체적으로 개시된다.
클라이언트의 요청을 기반으로 쿠키(cookie) 정보에서 VISITOR_KEY 값을 추출하여 캐쉬 매니저(260)로부터 페이지 매니저(250)의 HTML 페이지 매니저 타입 정보가 획득될 수 있다. HTML 페이지 매니저에서 해당 요청 헤더의 리퍼러 정보를 키로 getPage(Referer)을 호출하여 페이지 인포(251)의 HTML 페이지 인포 타입 정보가 획득될 수 있다.
또한, 클라이언트의 요청을 기반으로 전송 타임(send time) 값이 획득되고, 서버의 현재 시간과의 갭 시간(gap time)이 계산될 수 있다. 갭 시간(gap time)은 이후 클라이언트의 모든 이벤트 발생 시간에 보정 수치로서 계산되어 시간 동기화를 위해 사용될 수 있다.
또한, 클라이언트의 요청을 기반으로 페이지 카운트(page count) 값을 얻어 그 값만큼 와일 루프(while loop)를 수행할 수 있다. 하나의 화면이 복수의 페이지로 구성될 수 있고, 복수의 페이지에 대한 엔드 유저 성능 정보에 대한 수집이 필요할 수 있다. 이러한 경우, 페이지 카운트 값을 획득하고, 그 값만큼 와일 루프를 수행할 수 있다.
페이지에 대한 또는 모니터링 정보는 벌크(bulk) 형태로 전송되어 복수개의 모니터링 정보를 포함하고, 모니터링 정보의 개수에 대한 정보는 페이지 카운트(page count)에 포함될 수 있다.
페이지 카운트의 개수만큼 와일 루프를 수행하는 동안 해당 요청에서 EUM 타입(eum type) 값이 획득될 수 있다. EUM 타입(eum type)은 3가지 타입이 있고 3가지 타입 모두 공통적으로 엔드 유저 성능 정보(281)을 생성할 수 있고, 공통 정보와 거래 추적 정보를 수집하여 엔드 유저 성능 정보(281)에 기록할 수 있다. 각 타입에 대한 상세한 설명은 엔드 유저 성능 정보(281)에 대한 설명에서 후술된다.
EUM 타입이 Ajax 페이지(Ajax page)인 경우, 해당 요청에서 Ajax 콜 URL(ajax call url) 값을 얻어 HTML 페이지 인포(HTML page info)의 Ajax 페이지 매니저(Ajax page mananger)로부터 getPage(ajax_call_url)를 호출하여 페이지 인포(251)의 Ajax 페이지 인포(Ajax page info) 타입 정보를 획득할 수 있다.
Ajax 페이지 인포(Ajax Page Info) 타입 정보가 엔드 유저 성능 정보(281)의 트랜잭션 추적 정보에 기록될 수 있고, 추가적으로 엔드 유저 성능 정보(281)의 caller txId에 HTML 페이지 인포의 txId를 할당할 수 있다.
EUM 타입이 HTML 페이지(html page)인 경우는 해당 요청에서 모니터링 정보를 수집하여 엔드 유저 성능 정보(281)의 성능 정보에 기록하고 HTML 페이지 인포 타입 정보를 엔드 유저 성능 정보(281)의 거래 추적 정보에 기록할 수 있다.
EUM 타입이 스크립트 에러 페이지(script error page)인 경우, 해당 요청에서 에러 정보를 수집하여 엔드 유저 성능 정보(281)의 에러 정보에 기록하고, 추가적으로 엔드 유저 성능 정보(281)의 txId는 신규 UUID를 생성하여 할당한다.
와일 루프가 종료되고 수집된 엔드 유저 성능 정보(281)는 성능 정보 전송자(290)를 통해 성능 정보 저장 서버(300)로 전송될 수 있다.
엔드 유저 성능 정보(281)은 공통 정보, 거래 추적 정보, 성능 정보, 에러 정보 등을 포함할 수 있다. 공통 정보, 거래 추적 정보, 성능 정보, 에러 정보 등은 모니터링 스크립트에 의해 모니터링된 모니터링 정보 및 페이지 인포 정보를 기반으로 생성될 수 있다.
엔드 유저 성능 수집기(280)에 의해 엔드 유저 성능 정보(281)가 생성된다. 엔드 유저 성능 정보(281)는 EUM 타입에 따라 아래와 같이 크게 3가지로 구분될 수 있다.
다음은 엔드 유저 성능 정보(281)에 포함되는 공통 정보들이 개시된다.
공통 정보는 EUM 타입 정보, url 정보, 리퍼러(referrer), 유저 에이전트(user agent), 클라이언트 IP(client IP), 사용자 ID(user ID), WAS ID(was ID), 전송 시간(send time), 시작 시간(start time), 종료 시간(end time), 경과 시간(elapsed time)에 대한 정보를 포함할 수 있다. 다음은 공통 정보들에 대한 설명이다.
- EUM 타입 정보는 엔드 유저 모니터링의 유형으로 HTML 페이지, Ajax 페이지, 스크립트 에러 페이지와 같이 3가지 타입을 구분하기 위한 정보일 수 있다.
- url 정보는 해당 페이지의 요청 url에 대한 정보를 포함할 수 있다.
- 리퍼러(referrer)는 해당 요청 url을 보낸 페이지의 url에 대한 정보를 포함할 수 있다.
- 유저 에이전트(user agent)는 웹 브라우저 엔진의 유형에 대한 정보를 포함할 수 있다.
- 클라이언트 IP(client IP)는 엔드 유저(end user) 단말의 IP 주소에 대한 정보를 포함할 수 있다.
- 사용자 ID(user ID)는 사용자의 식별 정보(ID)에 대한 정보를 포함할 수 있다.
- WAS ID(was ID)는 HTTP 서비스를 제공하는 서버 인스턴스(instance)의 id에 대한 정보를 포함할 수 있다.
- 전송 시간(send time)은 클라이언트에서 성능 정보를 전송한 시각에 대한 정보를 포함할 수 있다.
- 시작 시간(start time)은 해당 페이지가 클라이언트에서 시작한 시각에 대한 정보를 포함할 수 있다.
- 종료 시간(end time)은 해당 페이지가 클라이언트에서 종료된 시각에 대한 정보를 포함할 수 있다.
- 경과 시간(elapsed time)은 해당 페이지의 시작과 종료 사이에 걸린 시간에 대한 정보를 포함할 수 있다.
다음은 트랜잭션 추적 정보들이 개시된다.
트랜잭션 추적 정보는 txId, 콜러 txId(caller txId), 콜리 txId(callee txId)에 대한 정보를 포함할 수 있다. 다음은 트랜잭션 추적 정보들에 대한 설명이다.
- txId는 해당 클라이언트 페이지의 호출을 구분하기 위한 고유 식별자(UUID, universally unique identifier)로 페이지 인포(251)의 txId로부터 할당될 수 있다.
- 콜러 txId(caller txId)는 해당 클라이언트 페이지 요청을 보낸 페이지의 txId로서 EUM 타입(eum_type)이 Ajax 페이지(Ajax page)인 경우에만 페이지 인포(251)의 HTML 페이지 인포(HTML page info) 타입의 txId로부터 할당될 수 있다.
- 콜리 txId(callee txId)는 해당 클라이언트 페이지 호출에 대한 요청을 처리한 서버 측(server-side)의 거래 고유 식별자(UUID, universally unique identifier)로서 페이지 인포(251)의 콜리 txId(callee_txId)로부터 할당될 수 있다.
다음은 성능 정보들이 개시된다. 성능 정보는 HTML 페이지 타입(html page type)에서만 획득될 수 있다. 단위는 모두 millisecond일 수 있다. 성능 정보는 준비 시간, 응답 시간, 로딩 시간에 대한 정보를 포함할 수 있다.
- 준비 시간(prepare time)은 페이지 시작에서 서버 요청 전까지의 소요 시간(requestStart - navigationStart)에 대한 정보를 포함할 수 있다.
- 응답 시간(response time)은 서버 요청에서 서버 응답 완료까지의 소요 시간(responseEnd - requestStart)에 대한 정보를 포함할 수 있다.
- 로딩 시간(loading time)은 서버 응답 완료 이후부터 페이지 종료까지의 소요 시간(loadEventEnd - responseEnd)에 대한 정보를 포함할 수 있다.
- window.performance.timing은 HTML 문서의 표준 규약에 따라 내부에 내장된 성능 정보일 수 있다.
다음은 에러 정보들이 개시된다. 에러 정보는 스크립트 에러 페이지 타입(script error page type)에서만 획득될 수 있다. 에러 정보는 에러 스택, 에러 메시지, 에러 라인, 에러 칼럼에 대한 정보를 포함할 수 있다.
- 에러 스택(error stack)은 스크립트 오류가 발생한 스택 추적(stack trace) 정보를 포함할 수 있다.
- 에러 메시지(error message)는 스크립트 오류 메시지일 수 있다.
- 에러 라인(error line)은 스크립트 오류가 발생한 라인 번호(line number)일 수 있다.
- 에러 칼럼(error column)은 스크립트 오류가 발생한 칼럼 넘버(column number)일 수 있다.
서비스 성능 정보 전송자(290)는 엔드 유저 성능 수집기(280)으로부터 수신한 엔드 유저 성능 정보(281)을 바이트 스트림(byte stream)으로 변환하여 성능 정보 저장 서버(300)에게 UDP 프로토콜로 전송하는 역할을 수행할 수 있다. 성능 정보를 원격 저장소에 저장하기 위해 고빈도로 호출되는 성능을 빠르게 처리하기 위해 TCP가 아닌 UDP 전송 방식이 사용될 수 있다.
성능 정보 저장 서버(300)는 어플리케이션 서버(200)로부터 수신한 엔드 유저 성능 정보(281)을 내부 저장소에 기록하고 모니터링 클라이언트(400)에게 엔드 유저 성능 정보(281)를 제공할 수 있다.
모니터링 클라이언트(400)는 성능 정보 저장 서버(300)에게 엔드 유저 성능 정보(281)을 요청하여 시각화하여 표출할 수 있다.
도 2는 본 발명의 실시예에 따른 페이지 간 참조 관계를 나타낸 개념도이다.
전술한 바와 같이 페이지 매니저(Page Manager)(250)는 2개의 타입이 존재하고, 2개의 타입은 HTML 페이지 매니저(HTML Page Manager), Ajax 페이지 매니저(Ajax Page Manager)일 수 있다. 페이지 인포(Page Info)(251) 또한, 2개의 타입이 존재하고, 2개의 타입은 HTML 페이지 인포(HTML Page Info), Ajax 페이지 인포(Ajax Page Info)일 수 있다.
도 2를 참조하면, HTML 페이지 매니저(Page Manager)(250)에 의해 HTML 페이지 인포(HTML Page Info)가 참조될 수 있다.
전술한 바와 같이 맨 처음 해당 요청의 쿠키(cookie)에서 VISITOR_KEY 값을 추출하여 캐쉬 매니저(260)로부터 페이지 매니저(250)의 HTML 페이지 매니저 타입 정보가 획득될 수 있다. HTML 페이지 매니저에서 해당 요청 헤더의 리퍼러 정보를 키로 getPage(Referer)을 호출하여 페이지 인포(251)의 HTML 페이지 인포 타입 정보가 획득될 수 있다.
HTML 페이지 인포에 의해 Ajax 페이지 매니저가 참조될 수 있고 또한, Ajax 페이지 매니저에 의해 Ajax 페이지 인포가 참조될 수 있다.
구체적으로 EUM 타입이 Ajax 페이지인 경우, 해당 요청에서 Ajax 콜 URL(Ajax call url) 값을 얻어 HTML 페이지 인포(HTML page info)의 Ajax 페이지 매니저(Ajax page mananger)로부터 getPage(ajax_call_url)를 호출하여 페이지 인포(251)의 Ajax 페이지 인포(Ajax page info) 타입 정보를 획득할 수 있다.
도 3은 본 발명의 실시예에 따른 페이지 호출에 따른 페이지 매니저(Page Manager)(250) 내부 구조체의 변화를 나타낸 개념도이다.
도 3을 참조하면, 페이지 매니저(page manager)(250)의 내부에는 N개의 페이지 인포(251)를 담을 수 있는 구조체가 존재할 수 있다.
전술한 바와 같이 페이지 매니저(250)에서는 URL(uniform resource locator) 또는 리퍼러(referrer)를 키(key)로 하는 겟페이지/셋페이지(getPage/setPage) 함수를 기반으로 구조체가 관리될 수 있다.
셋페이지 함수(setPage(url, pageInfo))의 수행시 기존의 페이지들을 오른쪽으로 하나씩 이동을 시키고 맨 처음의 배열에 신규 페이지를 기록할 수 있다. FIFO(First In First Out) 형태의 구조체로 N개를 초과하는 초기의 페이지는 구조체에서 삭제될 수 있다. 이런 방식으로 웹 페이지 내의 또 다른 내장 페이지나 팝업 페이지 등 멀티 페이지를 최대 N개 동시 모니터링 할 수 있다. 예를 들어, N의 기본 값은 5일 수 있다.
도 4는 본 발명의 실시예에 따른 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법을 나타낸 순서도이다.
도 4를 참조하면, 어플리케이션 서버(200)의 프로세스가 시작된다(단계 S402).
어플리케이션 서버(200)의 프로세스의 시작과 함께 네트워크 라이터(network writer, 221)와 HTTP 서비스 모듈(230)의 바이너리 코드에 대한 메모리 로딩이 수행된다(단계 S404).
모니터링 에이전트(210)는 네트워크 라이터(221)의 시작 부분에 스크립트 인젝터(270)를 호출하는 코드를 삽입할 수 있다(단계 S406). 또한, HTTP 서비스(230)의 시작 부분에는 EUM 매니저(240)를 호출하는 코드가 삽입될 수 있다.
어플리케이션 서버(200)는 서비스에 필요한 모든 모듈에 대한 메모리 로딩 작업을 끝내고 서비스 준비를 완료할 수 있다(단계 S408).
웹 브라우저(100)를 통해 사용자는 어플리케이션 서버(200)의 http 서비스를 호출할 수 있다(단계 S410).
네트워크 리더(network reader, 220)는 웹 브라우저의 요청을 수신하고, HTTP 서비스(230)으로 전달할 수 있다(단계 S412).
HTTP 서비스는 서비스 시작 부분에서 EUM 매니저(240)를 호출할 수 있다(단계 S414).
EUM 매니저(240)는 최초 http 요청시, 모니터링 스크립트 파일을 web context root 경로에 생성할 수 있다(단계 S416).
EUM 매니저(240)는 이후 http 요청 헤더(header)의 쿠키(cookie)에서 VISITOR_KEY를 추출할 수 있다(단계 S418). 이때 VISITOR_KEY가 없으면, 처음 방문한 사용자로 판단하고 VISITOR_KEY를 생성하여 http 응답 쿠키(cookie)에 기록할 수 있다.
페이지 매니저(250)가 EUM 매니저(240)에 의해 HTML 페이지 매니저 타입으로 생성될 수 있다(단계 S420).
HTML 페이지 매니저의 생성 이후, 페이지 인포(251)로서 HTML 페이지 인포를 생성할 수 있다(단계 S422). HTML 페이지 인포의 생성시 내부에 N개의 페이지 인포(251)를 담을 수 있는 구조체가 생성될 수 있다. 페이지 인포는 EUM 매니저(240)에 의해 HTML 페이지 인포 타입으로 생성될 수 있다. 페이지 인포의 생성시, 내부에 Ajax 페이지 매니저 타입의 페이지 매니저(250)을 생성하여 Ajax 페이지를 관리할 수 있다. 또한, 엔드-투-엔드(end-to-end) 추적에 필요한 txId가 생성되고, callee_txId에 현재 서비스의 txId가 할당될 수 있다. 마지막으로 현재 요청의 url정보가 할당된 후 페이지 매니저(250)의 setPage(url, pageInfo)를 호출하여 기록할 수 있다.
캐쉬 매니저(260)에 VISITOR_KEY를 키 값으로 위에서 생성된 HTML 페이지 매니저 타입 정보가 EUM 매니저(240)에 의해 등록될 수 있다(단계 S424).
웹 페이지(231)는 HTTP 서비스(230)가 읽어들여 요청 결과 페이지를 생성할 수 있다(단계 S426).
네트워크 라이터(221)에게 웹페이지 결과 스트림(231)이 전달되고, 웹 브라우저(100)에게 결과 전송이 수행될 수 있다(단계 S428).
스크립트 인젝터(270)는 네트워크 라이터(221)의 전송 시작 부분에서 호출되어 모니터링 스크립트 삽입 작업을 수행할 수 있다(단계 S430).
HTML 페이지(110)는 네트워크 라이터(221)로부터 서비스 결과 페이지를 수신할 수 있다(단계 S432).
모니터링 스크립트(120)는 결과 페이지의 <head> tag 다음에 삽입된 모니터링 스크립트 링크 태그(link tag)에 의해 어플리케이션 서버(200)로부터 다운로드될 수 있다(단계 S434).
모니터링 스크립트(120)는 다운로드된 이후 로딩 과정에서 HTML 페이지(110)의 성능 및 에러 등과 관련된 모든 이벤트를 감싸서 모니터링할 수 있다(단계 S436).
HTML 페이지(110) 내에 포함된 Ajax 콜(ajax call)들이 수행된다(단계 S438). 이 요청은 네트워크 리더(220)(단계 S440)와 HTTP 서비스(230) (단계 S442)를 거쳐 EUM 매니저(240)으로 전달될 수 있다.
EUM 매니저(240)은 HTTP 요청 헤더의 컨텐츠-타입 판독을 통해 Ajax 콜(ajax call)임을 판단할 수 있다. 먼저 EUM 매니저(240)은 요청 헤더의 쿠키(cookie)에서 VISITOR_KEY를 획득한다(단계 S444).
캐쉬 매니저(260)로부터 EUM 매니저(240)는 VISITOR_KEY를 키 값으로 HTML 페이지 매니저 타입의 페이지 매니저(250)를 획득할 수 있다(단계 S446).
페이지 매니저(250)로부터 EUM 매니저(240)는 HTTP 요청 헤더에서 획득한 리퍼러(referrer) 정보를 키로 하여 getPage(referer)를 호출하여 HTML 페이지 인포 타입을 획득할 수 있다(단계 S448).
페이지 인포(251)는 Ajax 페이지 인포(Ajax page info) 타입으로 EUM 매니저(240)에 의해 생성될 수 있다(단계S450). 생성시 엔드-투-엔드(end-to-end) 추적에 필요한 txId를 생성하고, callee_txId에 현재 서비스의 txId를 할당할 수 있다. 마지막으로 현재 요청의 url정보를 할당한다.
페이지 매니저(250)의 Ajax 페이지 매니저(Ajax page manager) 타입 정보는 위에서 획득한 HTML 페이지 인포 타입의 내부 정보에 존재하며, Ajax 페이지 매니저의 setPage(url, ajaxPageInfo)를 호출하여 기록을 수행할 수 있다(단계S452).
HTTP 서비스(230)의 서비스가 종료되고(단계S454) 네트워크 라이터(221)를 통해 서비스 결과 전송이 이루어지면(단계S456) HTML 페이지(110)의 Ajax 콜(ajax call)이 종료될 수 있다(단계S458). 이어서 HTML 페이지(100)의 수신까지 모두 종료된다(단계S460).
모니터링 스크립트(120)는 지금까지 수행된 모든 이벤트에 대한 모니터링 성능 정보를 내부 큐에 기록해 두었다가 큐 사이즈가 설정된 전송 사이즈(예를 들어, 5)에 이르게 되면, 모아 두었던 모니터링 정보를 모니터링 스크립트에 정의된 성능 수집 엔드 포인트(endpoint) url로 전송할 수 있다. EUM 매니저(240)는 요청 url이 성능 수집 엔드 포인트 url과 일치할 경우, 엔드 유저 성능 수집기(280)로 해당 모니터링 정보를 전달할 수 있다(단계 S462).
엔드 유저 성능 수집기(280)는 해당 HTTP 요청 헤더의 쿠키(cookie)에서 VISITOR_KEY 값을 추출할 수 있다(단계 S464).
캐쉬 매니저(260)으로부터 VISITOR_KEY를 키로 HTML 페이지 매니저 타입 정보를 획득할 수 있다(단계 S466). HTML 페이지 매니저에서 해당 요청 헤더의 리퍼러(referrer) 정보를 키로 getPage(Referer)를 호출하여 HTML 페이지 인포 타입 정보를 획득할 수 있다.
엔드 유저 성능 수집기(280)는 다음으로 해당 요청에서 전송 시간(send time) 값을 얻어 서버의 현재 시간과의 시각 보정을 수행할 수 있다(단계 S468).
엔드 유저 성능 수집기(280)는 다음으로 해당 요청에서 페이지 카운트(page count) 값을 얻어 그 값만큼 와일 루프(while loop)를 수행할 수 있다(단계 S470). 페이지에 대한 모니터링 정보는 벌크(bulk) 형태로 전송되어 여러 개의 모니터링 정보가 담겨 있고 그 개수는 페이지 카운트(page count)에 담겨 있다.
엔드 유저 성능 정보(281)는 와일 루프(while loop)를 수행하는 동안 해당 요청에서 얻은 EUM 타입 값에 의해 Ajax 페이지(ajax page), html 페이지(html page), 스크립트 에러 페이지(script error page)의 3가지 타입으로 생성될 수 있다. 생성된 엔드 유저 성능 정보(281)의 타입에 따라 공통 정보, 트랜잭션 추적 정보, 성능 정보, 에러 정보가 수집되어 기록될 수 있다(단계 S472).
엔드 유저 성능 수집기(280)의 페이지 카운트 루프(page count loop)가 종료된다(단계 S474).
성능 정보 전송자(290)는 엔드 유저 성능 정보(281)를 전달받아 성능 정보 저장 서버(300)로 전송을 수행할 수 있다(단계 S476).
성능 정보 저장 서버(300)의 저장부(store)는 성능 정보 전송자(290)로부터 수신한 엔드 유저 성능 정보(281)를 저장할 수 있다(단계 S478).
모니터링 클라이언트(400)는 성능 정보 저장 서버(300)에게 엔드 유저 성능 정보를 요청하여 그 결과를 시각화하여 표출할 수 있다(단계S480).
도 5는 본 발명의 실시예에 따른 엔드-투-엔드 엔드 유저 성능 자동 모니터링을 위한 엔드 유저 성능 분석 서비스 제공 방법을 나타낸 개념도이다.
도 5에서는 도 1 내지 도 4에서 전술한 네트워크 상의 엔드 유저 성능 분석 서비스를 제공하기 위한 시스템이 개시된다.
도 5를 참조하면, 엔드 유저 성능 분석 제어 장치(500)는 모니터링 클라이언트 측으로 엔드 유저 성능 분석 서비스를 제공하기 위한 장치일 수 있다. 엔드 유저 분석 제어 장치(500)는 엔드 유저 성능 분석 서비스를 위한 어플리케이션을 제공하는 주체일 수 있다. 예를 들어, 엔드 유저 성능 분석 어플리케이션을 전송하는 서버(또는 컴퓨터)이거나 또는 USB와 같은 저장매체일 수도 있다.
엔드 유저 성능 분석 제어 장치(500)는 프로세서와 통신부를 포함할 수 있고, 프로세서는 엔드 유저 성능 분석 제어 장치(500)의 구동을 위한 제어를 위해 구현되고, 통신부는 어플리케이션 서버(200), 성능 정보 저장 서버(300), 모니터링 클라이언트(400) 등과의 통신을 위해 프로세서와 동작 가능하게(operatively) 연결될 수 있다. 또는 엔드 유저 성능 분석 제어 장치는 통신부와 프로세서를 포함하되, 엔드 유저 성능 분석 어플리케이션(또는 성능 분석 컴포넌트(200-1)만을 전송하기 위해 구현될 수도 있다.
또한, 엔드-투-엔드 엔드 유저 성능 분석 대상 어플리케이션 서버는 엔드 유저 성능 분석 어플리케이션(또는 성능 분석 컴포넌트(200-1)을 수신하기 위해 구현된 통신부와 통신부와 동작 가능하게(operatively) 연결된 프로세서를 포함할 수 있다. 프로세서는 엔드 유저 성능 분석 어플리케이션을 설치하도록 구현될 수 있다.
성능 분석 컴포넌트(200-1)는 전술한 도 1 내지 도 4에서 개시한 어플리케이션 서버(200)/성능 정보 저장 서버(300)/모니터링 클라이언트(400) 상에서 수행되는 엔드 유저 성능의 분석을 위한 동작들을 구동시킬 수 있다. 성능 분석 컴포넌트(200-1)는 도 1 내지 도 4에서 전술한 어플리케이션 서버에 설치되는 엔드 유저 성능 분석을 위한 컴포넌트들의 집합(또는 컴포넌트 중 적어도 하나)일 수 있다. 성능 분석 컴포넌트(200-1)는 어플리케이션 서버에 설치된 어플리케이션(200-2)에 대한 성능 분석을 위해 구현될 수 있다.
예를 들어, 성능 분석 컴포넌트(200-1)는 모니터링 스크립트를 기반으로 엔드 유저에게 어플리케이션 서버에 의해 제공되는 페이지에 대한 모니터링을 위해 구현되고, 모니터링 스크립트는 페이지에서 발생된 이벤트 정보에 대한 모니터링 정보를 수집하여 엔드 유저 성능 수집기로 제공할 수 있다.
구체적으로 성능 분석 컴포넌트(200-1)는 웹 브라우저로 HTML 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고, 모니터링 스크립트는 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공할 수 있다.
성능 분석 컴포넌트(200-1)는 웹 브라우저 상의 엔드 유저에 대한 고유 식별자를 생성하고, 고유 식별자를 키로 엔드 유저에 대한 페이지 매니저 및 페이지 인포(info)를 생성 및 저장하고, 페이지 매니저는 내부의 구조체에 n(여기서, n은 자연수)개의 페이지 인포를 관리하기 위해 구현되고, 페이지 인포는 엔드-투-엔드 성능 추적을 위한 정보를 포함할 수 수 있다.
모니터링 스크립트는 HTML 페이지의 생성을 위한 응답 스트림을 파싱(parsing)하여 설정된 모니터링 링크 삽입 위치에 모니터링 스크립트 링크를 삽입시키고, 응답 스트림의 전송 길이는 모니터링 스크립트 링크의 길이를 고려하여 재정의될 수 있다.
페이지 인포(page info)는 HTML 페이지의 엔드 유저 성능 모니터링 정보와 HTML 페이지 간의 호출 관계 및 HTML 페이지와 어플리케이션의 처리 성능 정보와의 연결을 위한 매칭 정보를 더 포함할 수 있다. 엔드 유저 성능 모니터링 정보는 매칭 정보를 기반으로 엔드 유저 성능 수집기로 전송되어 엔드-투-엔드 엔드 유저 성능 정보를 생성할 수 있다. 엔드 유저 성능 수집기는 엔드 유저 모니터링 유형에 따라 엔드 유저 성능 모니터링 정보를 기반으로 생성된 엔드 유저 성능 정보를 제공하고, 엔드 유저 모니터링 유형은 페이지의 포맷에 따라 구분될 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (11)

  1. 엔드-투-엔드 엔드 유저 성능 자동 분석 방법은,
    어플리케이션 서버가 성능 분석 컴포넌트를 수신하는 단계; 및
    상기 어플리케이션 서버가 상기 성능 분석 컴포넌트를 설치하는 단계를 포함하되,
    상기 성능 분석 컴포넌트는 웹 브라우저로 HTML(hypertext markup language) 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고,
    상기 모니터링 스크립트는 상기 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 성능 분석 컴포넌트는 상기 웹 브라우저 상의 엔드 유저에 대한 고유 식별자를 생성하고 상기 고유 식별자를 키로 엔드 유저에 대한 페이지 매니저(Page Manager) 및 페이지 인포(page info)를 생성 및 저장 하고,
    상기 페이지 매니저는 내부의 구조체에 n(여기서, n은 자연수)개의 페이지 인포를 관리하기 위해 구현되고,
    상기 페이지 인포는 엔드-투-엔드 성능 추적을 위한 정보를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 모니터링 스크립트는 상기 HTML 페이지의 생성을 위한 응답 스트림을 파싱(parsing)하여 설정된 모니터링 링크 삽입 위치에 모니터링 스크립트 링크를 삽입시키고,
    상기 응답 스트림의 전송 길이는 상기 모니터링 스크립트 링크의 길이를 고려하여 재정의되는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 페이지 인포(page info)는 상기 HTML 페이지의 엔드 유저 성능 모니터링 정보와 상기 HTML 페이지 간의 호출 관계 및 상기 HTML 페이지와 어플리케이션의 처리 성능 정보와의 연결을 위한 매칭 정보를 더 포함하고,
    상기 엔드 유저 성능 모니터링 정보는 상기 매칭 정보를 기반으로 엔드 유저 성능 수집기로 전송되어 엔드-투-엔드 엔드 유저 성능 정보를 생성하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 엔드 유저 성능 수집기는 엔드 유저 모니터링 유형에 따라 상기 엔드 유저 성능 모니터링 정보를 기반으로 생성된 엔드 유저 성능 정보를 제공하고,
    상기 엔드 유저 모니터링 유형은 상기 페이지의 포맷에 따라 구분되는 것을 특징으로 하는 방법.
  6. 엔드-투-엔드 엔드 유저 성능 분석 대상 어플리케이션 서버는,
    성능 분석 컴포넌트를 수신하기 위해 구현된 통신부; 및
    상기 통신부와 동작 가능하게(operatively) 연결된 프로세서를 포함하되,
    상기 프로세서는 상기 성능 분석 컴포넌트를 설치하도록 구현되고,
    상기 성능 분석 컴포넌트는 웹 브라우저로 HTML(hypertext markup language) 페이지를 서비스하기 위한 어플리케이션의 응답에 모니터링 스크립트를 추가하고,
    상기 모니터링 스크립트는 상기 HTML 페이지에서 발생된 이벤트에 대한 엔드 유저 성능 모니터링 정보를 수집하여 제공하는 것을 특징으로 하는 어플리케이션 서버.
  7. 제6항에 있어서,
    상기 성능 분석 컴포넌트는 상기 웹 브라우저 상의 엔드 유저에 대한 고유 식별자를 생성하고 상기 고유 식별자를 키로 엔드 유저에 대한 페이지 매니저(Page Manager) 및 페이지 인포(page info)를 생성 및 저장 하고,
    상기 페이지 매니저는 내부의 구조체에 n(여기서, n은 자연수)개의 페이지 인포를 관리하기 위해 구현되고,
    상기 페이지 인포는 엔드-투-엔드 성능 추적을 위한 정보를 포함하는 것을 특징으로 하는 어플리케이션 서버.
  8. 제6항에 있어서,
    상기 모니터링 스크립트는 상기 HTML 페이지의 생성을 위한 응답 스트림을 파싱(parsing)하여 설정된 모니터링 링크 삽입 위치에 모니터링 스크립트 링크를 삽입시키고,
    상기 응답 스트림의 전송 길이는 상기 모니터링 스크립트 링크의 길이를 고려하여 재정의되는 것을 특징으로 하는 어플리케이션 서버.
  9. 제8항에 있어서,
    상기 페이지 인포(page info)는 상기 HTML 페이지의 엔드 유저 성능 모니터링 정보와 상기 HTML 페이지 간의 호출 관계 및 상기 HTML 페이지와 어플리케이션의 처리 성능 정보와의 연결을 위한 매칭 정보를 더 포함하고,
    상기 엔드 유저 성능 모니터링 정보는 상기 매칭 정보를 기반으로 엔드 유저 성능 수집기로 전송되어 엔드-투-엔드 엔드 유저 성능 정보를 생성하는 것을 특징으로 하는 어플리케이션 서버.
  10. 제9항에 있어서,
    상기 엔드 유저 성능 수집기는 엔드 유저 모니터링 유형에 따라 상기 엔드 유저 성능 모니터링 정보를 기반으로 생성된 엔드 유저 성능 정보를 제공하고,
    상기 엔드 유저 모니터링 유형은 상기 페이지의 포맷에 따라 구분되는 것을 특징으로 하는 어플리케이션 서버.
  11. 제1항 내지 제5항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
PCT/KR2018/006271 2017-06-02 2018-06-01 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치 WO2018221997A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/616,186 US10887201B2 (en) 2017-06-02 2018-06-01 Method for automatically monitoring end-to-end end user performance and apparatus for performing the method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0068998 2017-06-02
KR1020170068998A KR101986481B1 (ko) 2017-06-02 2017-06-02 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치

Publications (1)

Publication Number Publication Date
WO2018221997A1 true WO2018221997A1 (ko) 2018-12-06

Family

ID=64454896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/006271 WO2018221997A1 (ko) 2017-06-02 2018-06-01 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치

Country Status (3)

Country Link
US (1) US10887201B2 (ko)
KR (1) KR101986481B1 (ko)
WO (1) WO2018221997A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486796A (zh) * 2020-12-30 2021-03-12 智道网联科技(北京)有限公司 一种采集车载智能终端信息的方法和装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102309667B1 (ko) 2019-11-27 2021-10-08 주식회사 티맥스 소프트 대량 거래 상황을 효율적으로 엔드 투 엔드 모니터링 하기 위한 방법 및 이를 이용한 트레이스 정보 고속 입력 장치
US20210227351A1 (en) * 2020-01-17 2021-07-22 Cisco Technology, Inc. Out of box user performance journey monitoring
US11328241B2 (en) * 2020-07-02 2022-05-10 Content Square SAS Identifying script errors in an online retail platform and quantifying such errors
US11042465B1 (en) * 2020-09-02 2021-06-22 Coupang Corp. Systems and methods for analyzing application loading times
CN112631906A (zh) * 2020-12-18 2021-04-09 湖南映客互娱网络信息有限公司 基于服务端的页面性能的检测方法与系统
CN112860515A (zh) * 2021-02-03 2021-05-28 读书郎教育科技有限公司 一种儿童电话手表埋点上报的方法
US11237725B1 (en) * 2021-03-03 2022-02-01 Kindred Soul Ltd. Tracking link generation using keyboard interception on mobile devices
CN113076234B (zh) * 2021-04-02 2022-07-12 多点(深圳)数字科技有限公司 一种html5页面实时监测的方法
KR102519008B1 (ko) * 2022-12-27 2023-04-06 주식회사 에스티씨랩 디지털 서비스 기반 대기열 사용자의 ab 테스트를 진행하기 위한 진입 관리 서버, 방법
KR102519010B1 (ko) * 2022-12-30 2023-04-06 주식회사 에스티씨랩 디지털 서비스 기반의 병목 구간 별 진입 대상을 관리하기 위한 진입 관리 서버, 방법 및 프로그램

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262104A1 (en) * 1999-06-23 2005-11-24 Savvis Communications Corporation Method and system for internet performance monitoring and analysis
US20080228863A1 (en) * 2007-03-12 2008-09-18 Timothy Mackey Systems and Methods for End-User Experience Monitoring Using A Script
KR20140054480A (ko) * 2012-10-26 2014-05-09 이성진 웹사이트 이용 현황 실시간 모니터링 시스템 및 방법
US20150304398A1 (en) * 2010-07-21 2015-10-22 Microsoft Corporation Measuring actual end user performance and availability of web applications
US20150378756A1 (en) * 2014-06-25 2015-12-31 SmartBear Software, Inc. Systems and methods for mobile application tracing instrumentation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085420A1 (en) * 2004-09-27 2006-04-20 Symphoniq Corp. Method and apparatus for monitoring real users experience with a website
KR100803889B1 (ko) * 2006-02-07 2008-02-14 주식회사 케이티프리텔 클라이언트 단말로 제공되는 서비스 성능 분석 방법 및시스템
KR100906440B1 (ko) 2008-05-07 2009-07-09 주식회사 엑셈 웹 어플리케이션 서버 트랜잭션과 데이터 베이스 관리시스템 세션의 연계를 통한 웹 어플리케이션 성능 모니터링장치 및 그 방법
WO2016022693A1 (en) * 2014-08-05 2016-02-11 Moxie Software, Inc. Systems and methods for client-side contextual engagement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262104A1 (en) * 1999-06-23 2005-11-24 Savvis Communications Corporation Method and system for internet performance monitoring and analysis
US20080228863A1 (en) * 2007-03-12 2008-09-18 Timothy Mackey Systems and Methods for End-User Experience Monitoring Using A Script
US20150304398A1 (en) * 2010-07-21 2015-10-22 Microsoft Corporation Measuring actual end user performance and availability of web applications
KR20140054480A (ko) * 2012-10-26 2014-05-09 이성진 웹사이트 이용 현황 실시간 모니터링 시스템 및 방법
US20150378756A1 (en) * 2014-06-25 2015-12-31 SmartBear Software, Inc. Systems and methods for mobile application tracing instrumentation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486796A (zh) * 2020-12-30 2021-03-12 智道网联科技(北京)有限公司 一种采集车载智能终端信息的方法和装置
CN112486796B (zh) * 2020-12-30 2023-07-11 智道网联科技(北京)有限公司 一种采集车载智能终端信息的方法和装置

Also Published As

Publication number Publication date
KR101986481B1 (ko) 2019-06-07
KR20180132287A (ko) 2018-12-12
US10887201B2 (en) 2021-01-05
US20200213208A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
WO2018221997A1 (ko) 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치
WO2009134032A2 (en) Apparatus and method for providing broadcast contents in internet broadcast system
WO2012033319A2 (ko) 스트리밍 컨텐츠 제공 장치 및 방법
WO2019205280A1 (zh) 服务器的测试方法、装置、设备及计算机可读存储介质
WO2012011743A2 (ko) 스트리밍 컨텐츠 제공 장치 및 방법
WO2014209057A1 (ko) 지상파 방송망과 인터넷 프로토콜망 연동 기반의 하이브리드 방송 시스템에서 방송 서비스의 송수신 방법 및 장치
EP2761880A2 (en) Method and apparatus for transmitting and receiving content
WO2014062017A1 (en) Apparatus and method for processing an interactive service
WO2010126205A1 (ko) 스크롤 바의 위치 정보를 이용한 복수개의 온라인 광고의 제공 방법 및 장치
WO2015108283A1 (ko) 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템
WO2011021898A2 (en) Shared data transmitting method, server, and system
WO2010077123A2 (en) An iptv receiver and method for performing a personal video recorder function in the iptv receiver
WO2017146437A1 (en) Electronic device and method for operating the same
EP2926568A1 (en) Apparatus and method for processing an interactive service
WO2018166099A1 (zh) 信息泄露检测方法及装置、服务器及计算机可读存储介质
WO2013162314A1 (ko) 무선 기기가 네트워크 접속 장비를 이용하여 현재 위치한 공간에 매핑된 정보를 액세스하는 방법 및 네트워크 접속 장비를 이용하여, 현재 위치한 공간에 매핑된 정보를 액세스하는 장치
WO2010147362A2 (en) Widget activation and communication method
WO2021177787A1 (ko) 개별화된 시간 관리를 위한 효율적인 데이터베이스 아키텍쳐를 통한 콘텐츠 제공 방법 및 시스템
WO2017018702A2 (ko) 사용자 장치, 서비스 제공 장치, 그를 포함하는 광고 시스템, 그의 제어 방법, dsp/ssp간 타겟팅 정보 매핑 방법 및 이를 이용한 리타겟팅 광고 제공 방법 및 컴퓨터 프로그램이 기록된 기록매체
WO2017209574A1 (ko) 미디어 콘텐츠 제공 방법 및 장치
WO2013129804A1 (ko) 무선 네트워크 부하 저감 정책 분석 방법 및 시스템과 기록매체
EP2926567A1 (en) Method and apparatus for processing digital service signal
WO2019088671A1 (ko) 네트워크 보안 서비스를 제공하기 위한 방법 및 이를 위한 장치
WO2017200209A1 (ko) 방송 신호 송수신기 및 송수신 방법
WO2015119361A1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18809231

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18809231

Country of ref document: EP

Kind code of ref document: A1