Article ID: 130499, created on Mar 23, 2017, last review on Mar 27, 2017

  • Applies to:
  • Operations Automation 7.0
  • Operations Automation 6.0

What is a New Relic APM?

This is Application Performance Management for performance tracking of Java applications and underlying components. Therefore it can be integrated with management node and UI node, where Java is running.

Problem statements

  1. Difficult to integrate OA with monitoring solutions. No standard interface to consume OA-specific metrics: tasks, available nodes, service controllers, queue size
  2. OA logs should not be the only one data source to find performance issues:
    • Difficult to interpret log data. And logs do not contain everything
    • Technically difficult to parse data automatically, find anomalies
    • Hard to share an access to diagnostic information without direct access on the server
  3. Investigation takes lots of man-hours, especially for distributed systems like OA
  4. Reactive support approach prevails instead of proactive
  5. Can’t say whether current performance is normal or problematic – nothing to compare with
  6. Low Provider awareness about OA behavior – stuff should be well experienced in OA

New Relic APM features

  • Shared access to monitoring data for Odin and Hosting provider engineers (web interface)
  • System resources monitoring (CPU, Memory, Disk, Networking) - with NEw Relic Server agent
  • URL availability monitoring: Online store, OA control panel
  • Database monitoring
  • Ability to push custom metrics and events
  • Monitoring for JAVA applications – OA core, UI server
  • Plugins for underlying components (Apache, PostgreSQL, MySQL, OS processes)
  • Notification channels: Email, Mobile application, custom channel (webhook)
  • Easy agent installation pocedure

Instructions for OA management node

  1. Review requirements for New Relic
  2. Request the New Relic APM license key and New Relic agent from your Technical Account Manager. The license key is free for customers with Premier support contract.
  3. Extract newrelic-java-*.zip archive to /usr/local/ directory
  4. Allow to jboss user write access to /usr/local/newrelic
  5. Configure /usr/local/newrelic/newrelic.yml file. Documentation link

    1. Configure application name in newrelic.yml.
    2. Configure proxy settings (if required)
  6. Add JAVA_OPTS at the end of /usr/local/pem/jboss-eap-6.2/bin/standalone.conf config file

    JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/newrelic/newrelic.jar"
    
  7. To apply changes restart pem and pau services
  8. Check log /usr/local/newrelic/logs/newrelic_agent.log for errors
  9. Check if monitoring data appeared in New Relic panel

Example output

newrelic directory permissions and it's content


# ll /usr/local/newrelic/
total 9596
-rw-r--r-- 1 jboss root      122 Jan  9 16:03 CHANGELOG
-rw-r--r-- 1 jboss root     4488 Jan  9 16:03 extension-example.xml
-rw-r--r-- 1 jboss root    16564 Jan  9 16:03 extension.xsd
-rw-r--r-- 1 jboss root     5854 Jan 10 09:39 LICENSE
drwxr-xr-x 2 jboss jboss    4096 Mar 17 17:15 logs
-rw-r--r-- 1 jboss root    15226 Jan 10 09:38 newrelic-api.jar
-rw-r--r-- 1 jboss root    85442 Jan 10 09:59 newrelic-api-javadoc.jar
-rw-r--r-- 1 jboss root    17983 Jan 10 09:59 newrelic-api-sources.jar
-rw-r--r-- 1 jboss root  9549970 Jan 10 09:47 newrelic.jar
-r--rw---- 1 jboss root    12340 Mar 17 16:43 newrelic.yml
-rw-r--r-- 1 jboss root    83581 Jan  9 16:03 nrcerts
-rw-r--r-- 1 jboss root     3456 Jan  9 16:03 README.txt


standalone.conf example


# grep -E '[a-zA-Z0-9]' /usr/local/pem/jboss-eap-6.2/bin/standalone.conf | grep -v '#'

if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
    JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
fi
if [ "x$JAVA_OPTS" = "x" ]; then
    JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true"
    JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS             -Djava.awt.headless=true"
else
    echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/newrelic/newrelic.jar"

newrelic.yml example


common: &default_settings
  license_key: '************************************'
  agent_enabled: true
  app_name: Management Node (production)
  high_security: false
  enable_auto_app_naming: true
  enable_auto_transaction_naming: true
  log_level: info
  audit_mode: false
  log_file_count: 1
  log_limit_in_kbytes: 0
  log_daily: false
  log_file_name: newrelic_agent.log
  ssl: true
  max_stack_trace_lines: 30
  attributes:
    enabled: true
  transaction_tracer:
    enabled: true
    transaction_threshold: apdex_f
    record_sql: obfuscated
    log_sql: false
    stack_trace_threshold: 0.5
    explain_enabled: true
    explain_threshold: 0.5
    top_n: 20
  error_collector:
    enabled: true
    ignore_errors: akka.actor.ActorKilledException
    ignore_status_codes: 404
  transaction_events:
    enabled: true
    max_samples_stored: 2000
  cross_application_tracer:
    enabled: true
  thread_profiler:
    enabled: true
  browser_monitoring:
    auto_instrument: true
  class_transformer:
    com.newrelic.instrumentation.servlet-user:
      enabled: false
    com.newrelic.instrumentation.spring-aop-2:
      enabled: false
    classloader_excludes:
      groovy.lang.GroovyClassLoader$InnerLoader,
      org.codehaus.groovy.runtime.callsite.CallSiteClassLoader,
      com.collaxa.cube.engine.deployment.BPELClassLoader,
      org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiatorClassGenerator,
      org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader,
      gw.internal.gosu.compiler.SingleServingGosuClassLoader,
...
...

Search Words

performance

New Relic

Zabbix

Monitoring

APM

0871c0b47b3b86ae3b1af4c2942cd0ce caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07 5356b422f65bdad1c3e9edca5d74a1ae 1941880841f714e458ae4dc3d9f3062d 956c448bddc7e1f3585373687602379f 6f1456866eed87488c0f02b298a741c0

Email subscription for changes to this article
Save as PDF