Tuesday, March 31, 2015

Avoid unnecessary AEM workflows

Avoid using workflows to handle basic operations by using a a Sling Post Processor. Workflows can be an unneeded burden because launchers can be painful to configure and too many workflows running can causes performance issues.

 import java.util.List;  
 import org.apache.felix.scr.annotations.Component;  
 import org.apache.felix.scr.annotations.Service;  
 import org.apache.sling.api.SlingHttpServletRequest;  
 import org.apache.sling.servlets.post.Modification;  
 import org.apache.sling.servlets.post.SlingPostProcessor;  
 @Component(metatype = false, immediate = true)  
 public class SamplePostProcessor implements SlingPostProcessor {  
      public void process(SlingHttpServletRequest request, List<Modification> modificationList) throws Exception {  
           // POST servlet had already made its changes but the session hasn't been commited yet  

Monitoring AEM

Programs we use to monitor AEM and send us alerts at night when things go bunk.

  • Monit - Used if AEM or Apache goes down for any reason and starts it back up again. Sometimes if your load balancer can still reach apache, it thinks everything is ok, so we turn off apache when AEM goes bunk and the load balancer moves all the traffic to the slaves.
  • Nagios - Alerts if memory, CPU utilization, or anything else I want to monitor in a dashboard environment.
  • Splunk - Real time log analysis and monitoring, alerts.