Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Overview

The Dynatrace FastPack for Liferay DXP provides a preconfigured Dynatrace profile custom tailored to Liferay DXP environments. This FastPack contains sensors, a template system profile with measures and business transactions, and dashboards for the Liferay Portal platform. If you are using UEM, you will also get conversion and visitor tagging. The focus of the fastpack is page performance in relation to the portlets utilized on a page.

 

Fast Pack Details

Name

Liferay Digital Enterprise 7 FastPack

Version

1.0

dynaTrace Version

6.1 - 6.3, 6.5 (note - the fastpack has not been tested with appmon 6.5, but there is no reason it should not work.)

Author

Brian Wilson

License

dynaTrace BSD

Support

Community Supported

FastPack Contents

Fastpack Download contains:

  • Dashboards (see below)
  • Template Profile

fastpack 2.0.0 

Liferay Portal Version

FastPack developed on Liferay DXP 7.0 ga1

Dynatrace Free Trial

Download the free 30-day free Dynatrace & UEM trial to gain deep user insight, understand application performance across all tiers, identify performance and scalability bottlenecks and release new code faster.

 

Dashboards

For more in-depth detail about the measures, business transactions, dashboards, etc, in the fastpack, please download the Liferay Profile for Dynatrace Documentation DXP7.

 

 

Liferay Overview

There are many aspects to Liferay, so to make performance and problem identification easy we created this high level overview dashboard providing insight into key Liferay services like Blogs, Media Gallery, and Search. Context is important, too. Besides viewing the health of page performance, the overview dashboard provides a window into key metrics that may be impacting page performance. These include site load, database activity, thread usage and Ehcache metrics.  In addition, the Layer Breakdown provides a view into which classes are consuming the most time, while the Agent Breakdown highlights how much time, and more importantly, what kind of time – CPU, Database, Sync, Wait & Suspension – is being consumed in each tier.  By starting at the Liferay Overview, teams can quickly ascertain the nature of the problem at hand and proceed to diagnosing the problem with only involving the teams needed for the nature of the problem instead of pulling everybody together for an unnecessary war room.  

 

Liferay [portlet type] Overview

Most of the Portlets use the Liferay MVC framework as their implementation.  Transactions then split on the significant portlet parameter which was used to form the portlet URL. Identifying these pages with a Business transaction is not only a key to providing alerting in the Overview dashboard, but a key to understanding the performance of the different page types in Liferay DXP. Most portlets can be identified by either Action Processed, Resource Served or View Rendered. What this means is that, for instance, a Wiki page is not simply a Wiki Page.  By identifying and monitoring portlets by Portlet Phase, a slow Wiki page can be identified to actually be a slow Wiki Action Processed Page. Not only does this narrow down the scope of an issue (“all wiki pages are slow” vs. “Wiki Action pages are slow”), it immediately provides teams a targeted subset of data to analyze further for root cause analysis. 

In total, there are 6 versions of this dashboard, one each for: Asset Publisher, Blog, Documents and Media, Message Boards, Web Content, and Wiki.

 

Liferay CMS Overview

A very large portion of pages served by Liferay will be served by the Liferay Content Management System. Simply identifying that CMS pages are slow or failing is too broad. CMS Pages can be Private Site pages, Private User pages or Public pages. Additionally, they can be sub-categorized by portlet phase: action phase, render phase and resource phase. Even Further, they may be impacted by specific individual portlets of any phase that are present on the page. Ultimately, then, when CMS pages are slow, it’s important to know which specific pages are slow and to determine if it’s because of a specific portlet on the page or if it’s something broader, like a slow query or issues elsewhere in the code. This dashboard brings clarity to this by identifying and analyzing CMS pages along these groups. The CMS Page Overview provides details about performance, throughput and errors across multiple dimensions. It even lets you know if there are any host or process health issues that may be contributing to the slowness. 

 

Liferay CMS Page Performance Analysis

When there’s a problem with specific pages, deeper analysis can be conducted in the CMS Page Performance Analysis dashboard. By selecting a specific page on the top left, users can analyze the page for fault domain, API hotspots, database hotspots, errors as well as identifying which specific portlets, in their corresponding phases, are on the page and if they are contributing to latency

 

Liferay Search Overview

Liferay leverages several search engines to get the job done and it’s important to monitor the performance of each.  Liferay ships with Elasticsearch or can be configured to use the Solr plugin. Index searcher determines which of these two engines is implemented and delegates the search to the appropriate implementation for that search engine. Faceted search returns documents matching the search.  The Liferay Fastpack exposes the time spent on each of these and their impact on the actual individual search transactions. In addition, it’s important to monitor the overall performance of the Search portlet page by view rendered.

 

Liferay HTTP API Request Analysis

This dashboard has the same parent/child relationship as described in the Liferay CMS Page Performance Analysis dashboard, but since portlets are not part of these pages, the portlet tabs are not present. Select any API request split to determine where time is being spent in each page request type. Drill down to PurePaths for a granular view.

 

Liferay Worst Performers

The Liferay Worst Performers dashboard provides a view of the slowest transactions and more. In the upper half, there’s a comparison of tier and package performance comparing the fasted 90th percentile with the slowest 10th percentile.  This tells you, overall, for the slowest activity on your site, where is the latency coming from. The bottom half contains what we like to think of as an improvement checklist. It includes the slowest web requests, slowest user actions, slowest web services, slowest database queries, top client (browser/device) errors and top application errors.  From these lists, the business owners can easily prioritize where to spend time on making improvements to the existing sites.

 

Liferay Ehcache Metrics

Liferay relies heavily on Ehcache to deliver a fast user experience. This is a good thing. As a general rule of thumb, if something can be cached, it should. What is not good is ignoring your cache. All too often, just like using frameworks, the mistake is made of enabling caching without making sure it’s optimized, or even being leveraged. The Ehcache dashboard, complete with pre-defined threshold alerts, is designed to provide that awareness of cache usage. Specifically, this dashboard monitors Cache Occupancy Rate in memory and In-Memory Hit percentage for the different Ehcache caches. If page performance slows down, it is very easy to determine if misconfigured Ehcache is contributing to that problem.

 

Liferay Process Monitoring

Not every problem is related to code. In fact, many problems are simply a result of a poorly tuned JVM. And even with the most finely tuned code and JVM, a host will always have a limit. Common causes of latency in a Liferay system include GC pauses and misconfigured thread pools. The Liferay Process Performance dashboard monitors process CPU health, heap/GC utilization, the impact of GC on response times, and JVM/Liferay Thread pools. These provide great insight in whether or not threads and memory need tuning.

 

 

Liferay System Monitoring

The Liferay System Monitor dashboard adds the context of host performance metrics like host CPU, host memory, disk I/O, and network I/O along with page performance and visit load. Sometimes a problem is as simple as a full disk because somebody miss configured log clean-up. With an eye on page and visit load, it’s simple to determine if the server/process is just simply overloaded with traffic, or if there’s a bigger problem with low load.

 

Liferay Database Performance

In almost any application, database performance still ranks as one of the top performance problems. The teams at Liferay see the same thing in their customer engagements as well. Three of the most common problems on the database side are the N+1 query, slow queries and JDBC pool usage. The Liferay Database Performance Dashboard shines a light on these and other database problems, including database host health.

Installation

Just download and import the FastPack on your Dynatrace Server (see Plugin Management).
Either configure your commerce agents' name to start with "Tomcat" or "JBoss_Liferay", as listed in the Tomcat or JBoss agent group,  so they will be mapped to the system profile contained in the fastpack, or copy the profile to match your application and modify the contained agent groups and mappings.
To use UEM you will need to match your webserver's agent name to start with "Apache_Monitoring", as listed in the Apache agent group, or adopt accordingly. Also make sure to enable the UEM and webserver sensor in the agent configuration (disabled by default).

For more in-depth detail about the measures, business transactions, dasthoards, etc, in the fastpack, please download the Liferay Profile for Dynatrace Documentation DXP 7.

Contribution

Feel free to contribute any changes on Github

Fast Pack Details

Name

Liferay Portal 6.2ee FastPack

Version

1.0

dynaTrace Version

6.1 - 6.3, 6.5 (note - the fastpack has not been tested with appmon 6.5, but there is no reason it should not work.)

Author

Brian Wilson

License

dynaTrace BSD

Support

Community Supported

FastPack Contents

Fastpack Download contains:

  • Dashboards (see below)
  • Template Profile

fastpack 1.0.0.3 

 

Liferay Portal Version

FastPack developed on Liferay

Portal 6.2EE (sp10)

Dynatrace Free Trial

Download the free 30-day free Dynatrace & UEM trial to gain deep user insight, understand application performance across all tiers, identify performance and scalability bottlenecks and release new code faster.

 

 

Dashboards

For more in-depth detail about the measures, business transactions, dashboards, etc, in the fastpack, please download the Liferay Profile for Dynatrace Documentation.

 

 

Liferay Overview

This dashboard provides an application health and performance overview of the Liferay Portal. High level views provide an easy way to detect issues impacting specific portions of the application.

 

 

Liferay [portlet type] Overview

These dashboards show a more detailed view of the performance of the portlet business transactions. There are 10 variations of this dashboard, each specific to areas such as Blogs, Wiki, CMS, Asset Publisher, CSS/JS, Documents and Media, Login/Logout, Message Boards, Search, and Web Content

 

Liferay Search Overview

In addition to the standard Overview graphs, the Liferay Search Overview contains 2 additional dashlets addressing time spent in the search portion of the code, whether it’s Solr, Lucene, Elasticsearch or Liferay Search.

 

Liferay CMS Page Performance Analysis

This is a parent/child dashboard. Select one or more page splits in the CMS Pages breakdown in the upper left dashlet and the other dashlets will auto update to show data in contexted of the selected split(s). In addition to the standard Dynatrace dashlets of Transaction Flow, Response Time, Database, Errors and Web Requests, the following were added:

  • Portletbased Business Transaction splits
  • StrutsPortletbased Business Transaction splits

This dashboard is a great way to determine where the bottleneck is for a specific type of page. 

 

Liferay HTTP API Request Analysis

This dashboard has the same parent/child relationship as described in the Liferay CMS Page Performance Analysis dashboard, but since portlets are not part of these pages, the portlet tabs are not present. Select any API request split to determine where time is being spent in each page request type. Drill down to PurePaths for a granular view.

 

Liferay Operations Overview

This dashboard provides an operations oriented high level view of the health of the Liferay hosts, processes and application performance.

 

 

Liferay Ehcache Metrics

This dashboard provides an overview of Ehcache performance in Liferay cache system.

 

Liferay Process Monitoring

This dashboard can be used as an alternate to the Dynatrace out of the box process dashboards. The advantage of this one is that it rolls performance of all Java processes into one dashboard as opposed to the out of the box single process views. Each graph will represent data from all instrumented JVMs.

 

Liferay Database Performance

This dashboard provides an overview of database performance from Liferay’s point of view, including Database Hotspots, Database Load and Slowest SQL Queries

Installation

Just download and import the FastPack on your Dynatrace Server (see Plugin Management).
Either configure your commerce agents' name to start with "Tomcat" or "JBoss_Liferay", as listed in the Tomcat or JBoss agent group,  so they will be mapped to the system profile contained in the fastpack, or copy the profile to match your application and modify the contained agent groups and mappings.
To use UEM you will need to match your webserver's agent name to start with "Apache_Monitoring", as listed in the Apache agent group, or adopt accordingly. Also make sure to enable the UEM and webserver sensor in the agent configuration (disabled by default).

For more in-depth detail about the measures, business transactions, dasthoards, etc, in the fastpack, please download the Liferay Profile for Dynatrace Documentation.

Contribution

Feel free to contribute any changes on Github

  1. Anonymous (login to see details)

    Is this works on Dynatrace 6.2.2 ?

  2. Anonymous (login to see details)

    It hasn't been tested, but there's no reason it shouldn't.  It leverages nothing other than some instrumentation and dashboards.  None of the dashlets used have been deprecated in 6.2.2.  If you do encounter something that does not work, please let me know, but I highly doubt you'll encounter anything.  The larger dependency is what Liferay version you are using.  

  3. Anonymous (login to see details)

    Hi Brian,

    it works with Liferay 6.0 EE SP1 and dynatrace 6.0?

    Thanks in advance?

  4. Anonymous (login to see details)

    Josep, 
    much of the functionality will not work with Liferay 6.0 and 6.1.  
    Here's what I got previously from my liferay contact:

    I have looked at the commit history of the class com.liferay.portal.kernel.portlet.PortletContainerUtil and unfortunately, it's a brand new one in 6.2 without counterpart in 6.1.

     There was a major refactoring between 6.1 and 6.2 where the previously scattered portlet processing logic was centralized into new layer, as described in https://issues.liferay.com/browse/LPS-26688.

    Many of the key business transactions like renderings and struts will not work. There are still some items that will work, more geared around the process performance, though.  

    I don't believe there are any dependencies on the dynatrace version that would prevent anything on the DT side from working.  

    If you want, you can try installing it, connect the agents to the profile.  Run some traffic and check the dashboards. Some features may work and will at least get you a little further ahead.  Then just cleanup the measures/sensors/BT's that don't work.  The fastpack will not break the liferay instance in any way as we're not modifying liferay, just looking for methods to instrument. If they don't exist, nothing will happen.

    Here is one last bit of info from my Liferay contact:

    In general, the fast pack should work with 6.1. The overall Liferay architecture stayed the same, but there are couple of things that might not work fully:

      • data from some code instrumentation might be missing
        • if some class/method we use (instrument) was significantly refactored between 6.1 and 6.2, they will miss its data
        • like class was renamed, packaged changed, method renamed, method signature changed...
        • somehow likely, high impact
      • data from URL pattern matching might be missing
        • for example, if some friendly URL pattern (/documents, /image) changed between 6.1 and 6.2
        • not very likely, low impact
      • some manually matched portlets (by ID) for business txs might have different ID in 6.1
        • should not be the case for core porltets (numeric IDs), these have been the same for past 10 years
        • calendar portlet will most likely be the only case, Liferay 6.1 uses different portlet as "calendar" than 6.2
      • not very likely, low impact
      • Tagging of visits might need another attribute from session
      • if Liferay 6.1 names the session attributes for "USER" and "USER_ID" differently, profile needs to be updated
      • not very likely, high impact

    So I'd suggest they use the fast pack with 6.1 and verify that they are seeing all the data as expected (as described in the documentation). Then if they are missing some, they'll need to alter the profile to match the architecture of 6.1.

    Unfortunately 6.0 wasn't even a thought when we created this, so i can't say how the above may apply. 

     

  5. Anonymous (login to see details)

  6. Anonymous (login to see details)

    Brian,

     

    Just wanted to give you a shout out.  This worked great at a POC.

    1. Anonymous (login to see details)

      Thanks for the shout out.

  7. Anonymous (login to see details)

    Hi,

    I think the fastpack is not working in Dynatrace 6.5. Would it be possible to provide the Sensor-Pack seperately?

     

    regards,

    Gerald

    1. Anonymous (login to see details)

      Gerald, can you please be more specific as to what does not work?

      1. Anonymous (login to see details)

        Hi Brian,

         

        Sorry for that.

        Well when I try to import the plugin, dynatrace says that the import was successful but I can't see any new plugin in the list nor can I see the new System Profile mentioned in the documentation.

        It looks like nothing has happened after installing the plugin.

         

        regards,

        Gerald

        1. Anonymous (login to see details)

          Gerald,

          I just tried both the 6.2 and 7.0 fastpack on my dynatrace 6.5.4 instance (6.5, fixpack 4 installed), and had no issues. Since I'm on a mac, I installed through the DT Server menu as opposed to just double-clicking the dtp file to install.  

          Open Server Settings - go to Plugins - click Install Plugin - choose the DTP file you are trying to add.  

          If that still doesn't work, perhaps it's a permissions issue. Check with somebody with Admin rights if the Profile is there and if you have permission to view it. Or, perhaps you don't have permission to import a profile.  Also, check to see if the dashboards are there.  

          One other thing you can try, change the dtp file extension to .zip and unzip the folder. Try importing the profile directly from the unzipped folder.   

          1. Anonymous (login to see details)

            Hi Brian,

            Thank you for testing that.

            Probably my Dynatrace Client installation is faulty, I alread had other problems with it.

             

            regards,

            Gerald

            1. Anonymous (login to see details)

              Thanks Gerald, If you find something else, please let me know. In the meantime, it may be worth changing the file to a zip, extracting and then just manually importing the profile and dashboards, if that works for your client. If you are not on dynatrace 6.5, then make sure to download v1 of the fastpack.  

  8. Anonymous (login to see details)

    Hello,

    Is this plugin compatible with the community edition of Liferay?

    Thank you.

    1. Anonymous (login to see details)

      My understanding is yes, but I have not had the opportunity to test it as the Liferay team created an app for me to create this with. I can't see any reason it would not be compatible with the community edition, so long as you're using 6.2 or 7. There is a document linked in the installation section of each fastpack release that details the customizations we've made to the dynatrace profile/instrumentation/measures. 

      A couple of things to keep in mind
      1 - the fastpack is based on the underlying code base of Liferay. This is not something the varies between editions (to my knowledge). The main things that vary between Community and Enterprise are levels of support and deployment tools/options.  
      2 - "Compatibility", in terms of this fastpack, is not so much a "does it break anything" question as much as it is a "will all the features of the fastpack work"?  Take Liferay 6.1 for instance. There are major architectural changes between 6.1 ad 6.2, so many of the custom BTs and Measures we used won't register anything. Some others, however, will. However, the fastpack incompatibilities will not break liferay.  

      If you're running either 7 or 6.2 and decide to use the respective fastpack, let me know if anything comes up. I'd be happy to take a look at it with you and make a tweak or two if necessary.  Also, I'd love to get your feedback on what you find useful in the fastpack, what you don't find useful, and what you'd like to see in a future release.  

  9. Anonymous (login to see details)

    Hi Brian,

    Thank you very much for your prompt and complete response.

    Jimmy.

  10. Anonymous (login to see details)

    Hi all,

    We have disabled comments on this plugin page.

    Please use the AppMon & UEM Plugins forum for questions about this plugin.

    Sorry to interrupt ongoing discussions. Please re-post your last question in AppMon & UEM Plugins forum.