{"id":11337,"date":"2020-05-08T08:57:49","date_gmt":"2020-05-08T12:57:49","guid":{"rendered":"https:\/\/www.eginnovations.com\/blog\/?p=11337"},"modified":"2022-10-31T01:44:11","modified_gmt":"2022-10-31T05:44:11","slug":"web-application-apm-monitoring","status":"publish","type":"post","link":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/","title":{"rendered":"What is Modern Web Application Performance Monitoring (APM)?"},"content":{"rendered":"<h2><span class=\"ez-toc-section\" id=\"Questions_and_FAQs_about_Web_Application_Performance_Management\"><\/span>Questions and FAQs about Web Application Performance Management<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One of the best parts of our job is enabling you to become the best #ITPerformanceHero that you can be. But behind the scenes, eG Innovations is filled with talented team members who wear their own IT Hero capes. We want to take some time to introduce you to some of the people who make eG Innovations the leading performance monitoring company on the market. We\u2019re pleased to introduce <a href=\"https:\/\/twitter.com\/perfclarity\"><strong>Arun Aravamudhan<\/strong><\/a>, Product Head &#8211; Web Application Performance Monitoring (APM).<\/p>\n<table class=\"java-problems-list\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"10\">\n<tbody>\n<tr>\n<th class=\"problems-list-title\" valign=\"top\" nowrap=\"nowrap\">\n<h2 style=\"font-size: 18px; margin: 0; padding: 0; font-weight: bold;\"><span class=\"ez-toc-section\" id=\"Top_Questions_on_Web_Application_Performance_Monitoring\"><\/span>Top Questions on Web Application Performance Monitoring<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/th>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"91%\">\n<ol class=\"ol_style_line\">\n<li><a href=\"#question1\" rel=\"question1\">Tell us about yourself<\/a><\/li>\n<li><a href=\"#question2\" rel=\"question2\"> What attracted you to eG Innovations and what is your role at eG Innovations?<\/a><\/li>\n<li><a href=\"#question3\" rel=\"question3\">What is an APM solution?<\/a><\/li>\n<li><a href=\"#question4\" rel=\"question4\">How did APM fit into what eG Innovations was already delivering?<\/a><\/li>\n<li><a href=\"#question5\" rel=\"question5\">What were the goals of the APM project you embarked on?<\/a><\/li>\n<li><a href=\"#question6\" rel=\"question6\">You mentioned not having to change the application code. How did you achieve Java code-level monitoring without changing application code?<\/a><\/li>\n<li><a href=\"#question7\" rel=\"question7\">Hasn\u2019t bytecode instrumentation been around for a while?<\/a><\/li>\n<li><a href=\"#question8\" rel=\"question8\">What does byte-code instrumentation allow you to do?<\/a><\/li>\n<li><a href=\"#question9\" rel=\"question9\">Does this level of transaction profiling add overheads?<\/a><\/li>\n<li><a href=\"#question10\" rel=\"question10\">Was byte-code instrumentation the only challenge with APM?<\/a><\/li>\n<li><a href=\"#question11\" rel=\"question11\">This does indeed sound challenging. What were some of the challenges with tag and follow tracing?<\/a><\/li>\n<li><a href=\"#question12\" rel=\"question12\">There are many APM solutions in the market. What differentiates eG Enterprise APM?<\/a><\/li>\n<li><a href=\"#question13\" rel=\"question13\">What does the future hold for eG Enterprise APM?<\/a><\/li>\n<li><a href=\"#question14\" rel=\"question14\">When you\u2019re not being an #ITPerformanceHero, what do you like to do in your spare time?<\/a><\/li>\n<\/ol>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table id=\"question1\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#1<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_Tell_us_about_yourself\"><\/span><strong>Question<\/strong>: Tell us about yourself.<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/Arun-Aravamudhan.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-11342\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/Arun-Aravamudhan-150x150.jpg\" alt=\"Read more abot Arun Aravamudhan, Head of APM and Web UX products at eG Innovations.\" width=\"150\" height=\"150\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/Arun-Aravamudhan-150x150.jpg 150w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/Arun-Aravamudhan-140x140.jpg 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/Arun-Aravamudhan.jpg 225w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><strong>Answer<\/strong>: I am Arun Aravamudhan and I lead the product engineering teams for <a href=\"https:\/\/www.eginnovations.com\/product\/application-performance-monitoring\">APM (Application Performance Monitoring)<\/a> and <a href=\"https:\/\/www.eginnovations.com\/real-user-monitoring\">EUM (End User Monitoring)<\/a> product lines at eG Innovations. I\u2019ve been in the software industry for 20+ years in various roles including development, architecture and ops across multiple verticals such as banking, e-commerce and telco. I have been an early adopter of APM products since the mid 2000s and my focus has predominantly been on performance tuning and monitoring of large-scale distributed applications.<\/p>\n<table id=\"question2\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#2<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_What_attracted_you_to_eG_Innovations_and_what_is_your_role_at_eG_Innovations\"><\/span><strong>Question<\/strong>: What attracted you to eG Innovations and what is your role at eG Innovations?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer: <\/strong>eG Innovations offered me the opportunity to take all that I had experienced over the past decades and pour it back into building a great APM product. The company already had a rich heritage in <a href=\"https:\/\/www.eginnovations.com\/product\/it-infrastructure-monitoring\">IPM (Infrastructure Performance Monitoring)<\/a> and I saw an opportunity to spearhead the APM feature set.<\/p>\n<p>At eG Innovations, my role is to execute on our mission to deliver a world-class APM product that provides tangible business value to our customers. We do that by uniting the application and infrastructure perspectives into a holistic single-pane-of-glass solution for monitoring, diagnosis, alerting, reporting, baselining, capacity planning, and more. We call this a \u201c<a href=\"https:\/\/www.eginnovations.com\/converged-application-infrastructure-monitoring\">Converged Application and Infrastructure monitoring<\/a>\u201d solution.<\/p>\n<p>My role is very multifaceted in terms of talking to highly technical customers about their needs in a highly dynamic IT environment, converting that into an executable set of specifications for engineers, and balancing multiple factors to prioritize which features to work on vs. which ones to defer.<\/p>\n<table id=\"question3\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#3<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_What_is_an_APM_solution\"><\/span><strong>Question<\/strong>: What is an APM solution?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram.png\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-11341\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram-300x190.png\" alt=\"Application Performance Management requires monitoring a number of infrastructure functions.\" width=\"300\" height=\"190\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram-300x190.png 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram-310x196.png 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram-140x89.png 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-diagram.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><strong>Answer<\/strong>: An APM product helps you assess your application\u2019s performance by showing you the end user experience. It allows you to drill down to the business transactions and the underlying infrastructure health. Imagine a user logging on to a system. The request is sent to a firewall, a load balancer, a web server, an app server, and possibly an authentication server or database. The APM system kicks in and tracks all the calls all the way from the browser to the database and back &#8211; the entire communication stream. Was there slowness in any step of the logon call chain? Were there errors? Was it due to the browser or the network or the backend? If it was the backend, was it the code or SQL or 3rd party dependencies or even the underlying infrastructure?<\/p>\n<p>Essentially, the APM solution shows you how data flows across application tiers using a tag-and-follow mechanism, how much time it spends in each tier, and provides you visibility as for why it behaves the way it does.<\/p>\n<table id=\"question4\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#4<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_How_did_APM_fit_into_what_eG_Innovations_was_already_delivering\"><\/span><strong>Question<\/strong>: How did APM fit into what eG Innovations was already delivering?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow.png\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-11347\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow-275x300.png\" alt=\"eG Innovations answers the question &quot;why is my application slow?&quot;\" width=\"275\" height=\"300\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow-275x300.png 275w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow-310x338.png 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow-140x153.png 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/why-application-slow.png 620w\" sizes=\"auto, (max-width: 275px) 100vw, 275px\" \/><\/a><strong>Answer<\/strong>: eG Innovations has been focused on answering the toughest IT performance question of today, which is \u201c<em><a href=\"https:\/\/www.eginnovations.com\/converged-application-infrastructure-monitoring\">why is an application slow<\/a><\/em>?\u201d. There is no easy answer to this. Slowness can arise because of issues in the infrastructure \u2013 the server, hardware, cloud platform, storage, database, or infrastructure services like DNS. The eG Enterprise suite from eG Innovations already addressed these aspects of performance monitoring. We realized that problems could also be in the application code itself or in the way the application is querying the database, or in an external service that the application depended on. We realized that APM capabilities were essential if we had to provide reliable answers to the \u201cwhy is my application slow\u201d question.<\/p>\n<table id=\"question5\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#5<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_What_were_the_goals_of_the_APM_project_you_embarked_on\"><\/span><strong>Question<\/strong>: What were the goals of the APM project you embarked on?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer<\/strong>: There were several goals:<\/p>\n<ul>\n<li>We had to provide in-depth visibility into application performance including code-level insights. We had to do this <strong>without requiring developers to change their code<\/strong> or add new instrumentation hooks. Furthermore, Java is used widely with COTS applications. For example, SAP Netweaver uses a Java front-end, Siebel and PeopleSoft are based on Java stacks and so on. An APM solution that required application modifications to enable monitoring would have been impractical.<\/li>\n<li>We had to instrument the application so as to <strong>minimize the overhead of the monitoring<\/strong>. A number of other monitors included in eG Enterprise are \u201cout of band\u201d \u2013 i.e., they do not run in the application context. On the other hand, APM had to be \u201cin-band\u201d. This brought a totally different set of challenges because any issues with our instrumentation could bring down the application.<\/li>\n<li>Furthermore, there are several APM solutions already in the market. So we had to look for clear reasons why customers would adopt our solution. We looked for both <strong>commercial and technological differentiators<\/strong>.<\/li>\n<\/ul>\n<div class=\"tips-box1\" style=\"padding: 00px 35px 0;\">\n<p style=\"font-size: 18px;\">You can easily begin to build your first \u2018Hello APM\u2019 tool, and play around with JVM internals, but building a full APM solution is not for the faint-hearted.<\/p>\n<div style=\"margin-bottom: 00px; margin-top: -20px; border: 1px solid #A0A0A0; max-width: 660px; margin: 0 auto; padding: 12px 11px 0; border-radius: 10px;\">\n<p><img decoding=\"async\" class=\"start-quote-black\" style=\"margin-top: -18px; margin-right: 5px;\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/left-quote.png\" alt=\"Quote\" \/><a class=\"link\" style=\"font-size: 16px;\" href=\"https:\/\/dzone.com\/articles\/how-trace-transactions-across\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">How to trace transactions across every layer of your distributed software stack<\/a><img decoding=\"async\" class=\"end-quote-black\" style=\"margin-left: 5px; margin-bottom: -20px;\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/right-quote-images.png\" alt=\"Quote\" \/><\/p>\n<div style=\"text-align: right; padding-bottom: 12px; margin-top: -13px;\"><b>by Trevor Parsons, Dzone<\/b><\/div>\n<\/div>\n<\/div>\n<table id=\"question6\" class=\"new_table_style\" style=\"width: 100%; margin-top: 35px;\">\n<tbody>\n<tr>\n<td>#6<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_You_mentioned_not_having_to_change_the_application_code_How_did_you_achieve_Java_code-level_monitoring_without_changing_application_code\"><\/span><strong>Question<\/strong>: You mentioned not having to change the application code. How did you achieve Java code-level monitoring without changing application code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation.png\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-11344\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-300x150.png\" alt=\"Dynamic Bytecode Instrumention allows us to modify Java application code &quot;on the fly.&quot;\" width=\"300\" height=\"150\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-300x150.png 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-1024x512.png 1024w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-800x400.png 800w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-310x155.png 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation-140x70.png 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/dynamic-bytecode-instrumentation.png 1050w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><strong>Answer<\/strong>: \u00a0We use a technique called dynamic bytecode instrumentation which allows us to modify the code of Java applications \u201con the fly\u201d as they are loaded into memory via a Java agent. It may seem like a crazy notion that applications can modify themselves at runtime, but that\u2019s how the JVM works because Java is a dynamically loaded language. We have capabilities to dynamically attach a Java agent to an already running JVM, such that you don\u2019t need to edit any startup scripts or even restart the application server. In a nutshell, the code is altered &#8211; only not on disk but dynamically in the runtime memory.<\/p>\n<table id=\"question7\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#7<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_Hasnt_bytecode_instrumentation_been_around_for_a_while\"><\/span><strong>Question<\/strong>: Hasn\u2019t bytecode instrumentation been around for a while?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-analogy.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-11339\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-analogy-300x231.jpg\" alt=\"How a monitoring sysem is assembled determines how efficient and productive the sysetm is.\" width=\"259\" height=\"300\" border=\"0\" \/><\/a><strong>Answer<\/strong>:\u00a0 Bytecode instrumentation is a well-known technique that has existed since Java 1.5. There are open source libraries such as ASM, cglib, javassist and Byte Buddy available to implement Bytecode manipulation. While the mechanism of implementing byte-code instrumentation is straightforward these days, there is a lot of complexity in actually implementing a monitoring solution using byte code instrumentation.<\/p>\n<p>To provide an analogy, the components of a mobile phone are well defined \u2013 you need a display, a microphone, a speaker, a network connector, battery, etc. At the same time, going from defining different components of a mobile phone to actually putting together an operational phone is easier said than done. How to create a mobile phone from its components is not a well-defined process. The results may be different depending on the architecture chosen, design decisions made and the process followed. You could end up making a sleek phone like an Apple iPhone, or a functional phone like an early 2000s Nokia mobile.<\/p>\n<table id=\"question8\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#8<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_What_does_byte-code_instrumentation_allow_you_to_do\"><\/span><strong>Question<\/strong>: What does byte-code instrumentation allow you to do?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer<\/strong>:\u00a0 With bytecode instrumentation, you can trace the transaction processing at each application tier. You can identify how much time was spent in each JVM executing Java code, and importantly how much time was spent issuing and waiting for database queries, web service calls to third parties, HTTP calls to other tiers and so on. By knowing exactly where time was spent during transaction processing, administrators can identify what is causing slowness: is it Java code, database queries, web service calls, etc.<\/p>\n<table id=\"question9\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#9<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_Does_this_level_of_transaction_profiling_add_overheads\"><\/span><strong>Question<\/strong>: Does this level of transaction profiling add overheads?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer<\/strong>: This is where a lot of the challenges lie. To ensure that the overhead was minimal, we had to answer some crucial questions:<\/p>\n<ul>\n<li>Should each Java method be instrumented? If not, which ones should not be instrumented?<\/li>\n<li>How long should the instrumentation of a request run for?<\/li>\n<li>How to determine when to stop instrumenting a request?<\/li>\n<li>Since the server could be handling thousands of requests, where will the results of instrumentation be stored? Where will these requests be aggregated and how often?<\/li>\n<li>How to perform aggregation without needing to synchronize among threads, which can be expensive?<\/li>\n<li>How can this be achieved without affecting the response time experienced by end users?<\/li>\n<\/ul>\n<table id=\"question10\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#10<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_Was_byte-code_instrumentation_the_only_challenge_with_APM\"><\/span><strong>Question<\/strong>: Was byte-code instrumentation the only challenge with APM?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges.jpg\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-11340\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-300x178.jpg\" alt=\"= APM tools use &quot;tag-and-follow&quot; tracing to drill into each application tier.\" width=\"300\" height=\"178\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-300x178.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-1024x607.jpg 1024w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-800x474.jpg 800w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-310x184.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges-140x83.jpg 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-challenges.jpg 1083w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><strong>Answer<\/strong>:\u00a0 No. Today, most applications are not silos. Distributed and multi-tier architectures are very common. One application tier communicates with other tiers upstream to it and\/or downstream for it. To provide end-to-end visibility, one needs to stitch together the end-to-end flow of a transaction. It is not practical to expect an administrator to drill down into each tier manually and put together the end to end processing flow.\u00a0 This where APM tools use a concept called tag-and-follow tracing mechanism.<\/p>\n<p>Tag and follow is a concept. However, unlike bytecode instrumentation, which is a technique and has many supporting libraries, tag and follow (which is a concept) does not have libraries\/tools to implement. Tag-and-follow is easy to conceptualize when the transaction processing is linear as shown in the example below.<\/p>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/linear-path-transacton-model.png\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-11345\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/linear-path-transacton-model-1024x203.png\" alt=\"Normal, linear path transaction model\" width=\"640\" height=\"127\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/non-linear-path-variations.png\" data-rel=\"lightbox-image-7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-11346\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/non-linear-path-variations-300x192.png\" alt=\"Non linear path variaions challenge administrators and make transaction tracing a challenge.\" width=\"300\" height=\"192\" border=\"0\" \/><\/a>However, real-world application flows are rarely linear and simplistic. The request could jump back and forth across application boundaries with some systems calling themselves (also known as self-calls). Non-linear flows make transaction tracing challenging.<\/p>\n<p>Another challenge pertains to disparate Java frameworks that could virtually be thought of as different application domains. Real-world applications have multiple teams who adopt frameworks that are totally heterogeneous in nature. Some could be OLTP (online transaction processing) systems, while others could be Asynchronous\/ Messaging systems. Other systems could be OLAP (online analytical processing) which rely on different types of data stores.<\/p>\n<table id=\"question11\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#11<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_This_does_indeed_sound_challenging_What_were_some_of_the_challenges_with_tag_and_follow_tracing\"><\/span><strong>Question<\/strong>: This does indeed sound challenging. What were some of the challenges with tag and follow tracing?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer<\/strong>: In light of the various domain related complexities in tag-and-follow, we had to answer a wide variety of questions:<\/p>\n<ul>\n<li>Where should the tag be added?<\/li>\n<li>How can it be added without affecting the functionality of the application being monitored?<\/li>\n<li>How can the tag be carried across tiers?<\/li>\n<li>What if each tier uses a different communication mechanism \u2013 web service, HTTP, JMX, etc.?<\/li>\n<li>Should a common timestamp be carried with the tag across tiers to get an end to end view?<\/li>\n<li>How to keep the tagging information to a minimum (so as to not add load\/overhead) and still be able to provide insights across tiers?<\/li>\n<li>Should time synchronization be done at each tier? Is that even practical?<\/li>\n<li>What happens if one or more tiers in the path don\u2019t support tagging or the monitoring tool is not deployed in those tiers? How can the end to end picture be constructed in this case?<\/li>\n<li>Given that the applications receive thousands of requests, it is not possible to store all of their processing data in memory for processing. If only top requests are stored at each tier, how will the request processing map be constructed?<\/li>\n<li>Should the construction of the map be done from one place, i.e., centralized, or should it be decentralized?<\/li>\n<\/ul>\n<table id=\"question12\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#12<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_There_are_many_APM_solutions_in_the_market_What_differentiates_eG_Enterprise_APM\"><\/span><strong>Question: <\/strong>There are many APM solutions in the market. What differentiates eG Enterprise APM?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring.jpg\" data-rel=\"lightbox-image-8\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-11343\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-300x197.jpg\" alt=\"Converged Application and Infrastructure Monitoring\" width=\"300\" height=\"197\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-300x197.jpg 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-1024x672.jpg 1024w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-800x525.jpg 800w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-310x203.jpg 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring-140x92.jpg 140w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/converged-application-infrastructure-monitoring.jpg 1050w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><strong>Answer<\/strong>: Our discussions with many customers have shown that APM alone is not sufficient. Neither is <a href=\"https:\/\/www.eginnovations.com\/product\/it-infrastructure-monitoring\">IPM (Infrastructure Performance Monitoring)<\/a>. Customers might buy a point APM solution and have to purchase another IPM. Then, you have the headache of integrating the two.\u00a0If you want to truly address the \u201cwhy is my application slow\u201d problem, you need to have a \u00a0converged solution that facilitates true root-cause diagnosis. This is a key differentiator of our solution. From one single console, you can see everything you need in an IT environment &#8211;\u00a0 User experience, Business transactions, Application performance &amp; Infrastructure performance.<\/p>\n<p>Deployment of our solution is also much simpler than it is with other solutions. We provide a single universal agent that has all the monitoring capabilities you need for operating systems, application logs, processes, JVMs, web containers, transactions etc. Many other solutions require a separate \u201cmachine\u201d agent for the OS and an \u201capplication\u201d agent for each application instance.<\/p>\n<p>Licensing is another differentiator. APM solutions have so far been very expensive. They have been licensed by JVM instances \u2013 so if you had 5 JVMs on a system, you would need 5 licenses. We license eG Enterprise by operating systems monitored, not by number of JVMs to be monitored. This makes our solution highly cost competitive in a market where APM pricing is often out of reach for many customers.<\/p>\n<table id=\"question13\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#13<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_What_does_the_future_hold_for_eG_Enterprise_APM\"><\/span><strong>Question: <\/strong>What does the future hold for eG Enterprise APM?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer<\/strong>:\u00a0 We have a very exciting journey ahead of us! A couple of areas we are looking at<\/p>\n<ul>\n<li><strong>AI\/ML &amp; automation<\/strong>: eG Enterprise already has significant AI capabilities in the areas of intelligent alerting, automatic correlation, trigger automated actions, causality analysis and auto-baselining. We plan to deepen this capability even further in the areas of\u00a0 cross-domain pattern detection, predictive analytics and optimization recommendations.<\/li>\n<li><strong>Visualization: <\/strong>Today, you can leverage RBAC and role based dashboards in eG, but we will be deepening the persona-driven unified visualization that speaks to different roles in the IT organization such as DevOps, Helpdesk, IT Ops and so on. As an example, today we already capture usernames, IP addresses and can tag any arbitrary business context information for business transactions. We are working on better customer experience journey visualization for line-of-business managers to proactively manage the digital journey.<\/li>\n<\/ul>\n<table id=\"question14\" class=\"new_table_style\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td>#14<\/td>\n<td>\n<h3><span class=\"ez-toc-section\" id=\"Question_When_youre_not_being_an_ITPerformanceHero_what_do_you_like_to_do_in_your_spare_time\"><\/span><strong>Question<\/strong>: When you\u2019re not being an #ITPerformanceHero, what do you like to do in your spare time?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Answer:<\/strong> It&#8217;s easy to become engrossed in technology the whole day so I try to hit the gym and swim regularly. It&#8217;s not just about the physical aspect &#8211; I find exercise to be vital for my mental health. I also love visiting temples and enjoy spiritual chanting.<\/p>\n<p>Thanks, Arun. There are many more #ITPerformanceHeroes at eG Innovations. Stay tuned for more interviews. We can\u2019t wait for you to meet them!<\/p>\n<p><a href=\"https:\/\/www.eginnovations.com\/product\/application-performance-monitoring\/free-trial\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-11411\" src=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-one-monitor-it-all.png\" alt=\"apm-one-monitor-it-all\" width=\"640\" height=\"128\" border=\"0\" srcset=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-one-monitor-it-all.png 640w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-one-monitor-it-all-300x60.png 300w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-one-monitor-it-all-310x62.png 310w, https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/apm-one-monitor-it-all-140x28.png 140w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Questions and FAQs about Web Application Performance Management One of the best parts of our job is enabling you to become the best #ITPerformanceHero that you can be. But behind the scenes, eG Innovations is filled with talented team members who wear their own IT Hero capes. We want to take some time to introduce [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":11399,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_lmt_disableupdate":"yes","_lmt_disable":"","footnotes":""},"categories":[371,366,27],"tags":[1301,349,629,458,52,1305,435,176,1304,1303,1302,1306,457,1300],"class_list":["post-11337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-performance-monitoring-apm","category-end-to-end-monitoring-e2e","category-java-monitoring","tag-net-apm","tag-apm","tag-apm-tools","tag-application-monitoring","tag-application-performance-monitoring","tag-byte-code-instrumentation","tag-java-apm","tag-java-monitoring","tag-java-tracing","tag-javaagent","tag-open-tracing","tag-web-application","tag-web-monitoring","tag-what-is-apm"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Modern Web Application Performance Monitoring (APM)<\/title>\n<meta name=\"description\" content=\"Web application performance monitoring has become important. Check our top FAQs on how to improve your web application&#039;s performance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Web Application and APM Monitoring | eG Innovations\" \/>\n<meta property=\"og:description\" content=\"Monitoring is an essential part of web application performance management. Read these top FAQs and answers about how to improve your web application monitoring systems.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/\" \/>\n<meta property=\"og:site_name\" content=\"eG Innovations\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eGInnovations\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-08T12:57:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-31T05:44:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/blog-banner.jpg\" \/>\n<meta name=\"author\" content=\"Keren Emil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Web Application and APM Monitoring | eG Innovations\" \/>\n<meta name=\"twitter:description\" content=\"Monitoring is an essential part of web application performance management. Read these top FAQs and answers about how to improve your web application monitoring systems.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/blog-banner.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@eginnovations\" \/>\n<meta name=\"twitter:site\" content=\"@eginnovations\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keren Emil\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modern Web Application Performance Monitoring (APM)","description":"Web application performance monitoring has become important. Check our top FAQs on how to improve your web application's performance.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/","og_locale":"en_US","og_type":"article","og_title":"Web Application and APM Monitoring | eG Innovations","og_description":"Monitoring is an essential part of web application performance management. Read these top FAQs and answers about how to improve your web application monitoring systems.","og_url":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/","og_site_name":"eG Innovations","article_publisher":"https:\/\/www.facebook.com\/eGInnovations","article_published_time":"2020-05-08T12:57:49+00:00","article_modified_time":"2022-10-31T05:44:11+00:00","og_image":[{"url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/blog-banner.jpg","type":"","width":"","height":""}],"author":"Keren Emil","twitter_card":"summary_large_image","twitter_title":"Web Application and APM Monitoring | eG Innovations","twitter_description":"Monitoring is an essential part of web application performance management. Read these top FAQs and answers about how to improve your web application monitoring systems.","twitter_image":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/blog-banner.jpg","twitter_creator":"@eginnovations","twitter_site":"@eginnovations","twitter_misc":{"Written by":"Keren Emil","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#article","isPartOf":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/"},"author":{"name":"Keren Emil","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/6e6a6382a7491a6c5da334e912adb508"},"headline":"What is Modern Web Application Performance Monitoring (APM)?","datePublished":"2020-05-08T12:57:49+00:00","dateModified":"2022-10-31T05:44:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/"},"wordCount":2511,"commentCount":0,"publisher":{"@id":"https:\/\/www.eginnovations.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#primaryimage"},"thumbnailUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/APM-blog-thumbnail.jpg","keywords":[".NET APM","apm","APM Tools","Application Monitoring","application performance monitoring","byte-code instrumentation","Java APM","Java Monitoring","java tracing","javaagent","open tracing","web application","Web Monitoring","what is apm"],"articleSection":["Application Performance Monitoring (APM)","End-to-End Monitoring (E2E)","Java Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/","url":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/","name":"Modern Web Application Performance Monitoring (APM)","isPartOf":{"@id":"https:\/\/www.eginnovations.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#primaryimage"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#primaryimage"},"thumbnailUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/APM-blog-thumbnail.jpg","datePublished":"2020-05-08T12:57:49+00:00","dateModified":"2022-10-31T05:44:11+00:00","description":"Web application performance monitoring has become important. Check our top FAQs on how to improve your web application's performance.","breadcrumb":{"@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#primaryimage","url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/APM-blog-thumbnail.jpg","contentUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2020\/05\/APM-blog-thumbnail.jpg","width":300,"height":200},{"@type":"BreadcrumbList","@id":"https:\/\/www.eginnovations.com\/blog\/web-application-apm-monitoring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.eginnovations.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is Modern Web Application Performance Monitoring (APM)?"}]},{"@type":"WebSite","@id":"https:\/\/www.eginnovations.com\/blog\/#website","url":"https:\/\/www.eginnovations.com\/blog\/","name":"eG Innovations","description":"IT Performance Monitoring Insights","publisher":{"@id":"https:\/\/www.eginnovations.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.eginnovations.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.eginnovations.com\/blog\/#organization","name":"eG Innovations","alternateName":"eg innovations","url":"https:\/\/www.eginnovations.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2014\/07\/eg-logo-dark-gray1_new.jpg","contentUrl":"https:\/\/www.eginnovations.com\/blog\/wp-content\/uploads\/2014\/07\/eg-logo-dark-gray1_new.jpg","width":362,"height":235,"caption":"eG Innovations"},"image":{"@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eGInnovations","https:\/\/x.com\/eginnovations"]},{"@type":"Person","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/6e6a6382a7491a6c5da334e912adb508","name":"Keren Emil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.eginnovations.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1d5e57d310e83b565706d96dd2cac1cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1d5e57d310e83b565706d96dd2cac1cd?s=96&d=mm&r=g","caption":"Keren Emil"},"sameAs":["eguser"],"url":"https:\/\/www.eginnovations.com\/blog\/author\/keren\/"}]}},"modified_by":"Review eG","_links":{"self":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts\/11337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/comments?post=11337"}],"version-history":[{"count":0,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/posts\/11337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/media\/11399"}],"wp:attachment":[{"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/media?parent=11337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/categories?post=11337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.eginnovations.com\/blog\/wp-json\/wp\/v2\/tags?post=11337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}