This page describes administration and advanced configuration options for the EUM Server. 

Configure Data Store Expiration 

As part of the Analytics functionality used by EUM, the Server stores some data, like crash reports and resource snapshots, in a local blob store. The default setting of 30 days, but you can change the storage period to be longer or shorter by following these steps:

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.sample.properties with a text editor.
  3. Copy the onprem.crashReportExpirationDays property and the onprem.resourceSnapshotExpirationDays property from the sample file into eum.properties and set it to whatever value you wish. The unit is days.
  4. Restart the Server.

Set the Maximum Length of Page URLs Read From Beacons

By default, after the EUM Collector receives beacons, the EUM Processor will only read 512 characters of page URLs contained in the beacon. If the page URL exceeds 512 characters, the EUM Processor will truncate the page URL. You can configure the EUM Processor to read a longer page URL with the configuration beaconReader.maxUrlLength. The maximum length that can be set is 2048, which is imposed by the JavaScript Agent creating the beacon.

To change the maximum length of the page URL read by the EUM Processor:

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Add the property beaconReader.maxUrlLength to the desired length (maximum is 2048):

    beaconReader.maxUrlLength=<max_length>
    BASH
  3. Restart the Server.

Update the EUM Server's Geo Server

The on-prem EUM Server ships with Neustar's IP GeoPoint database for managing the geolocation of IP addresses. You can get daily updates of the Neustar IP GeoPoint from the AppDynamics download site.

To keep your version of the database current, you need to update your copy of the database manually:

  1. From the AppDynamics download site, search for and download the Neustar data file (neustar.dat).
  2. Replace neustar.dat in $APPDYNAMICS_HOME/EUM/eum-processor/bin.
  3. In the $APPDYNAMICS_HOME/EUM/eum-processor.log, verify that the new data file has been loaded. 
  4. Update the JVM's -Xmx option in the $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum-processor-launcher.vmoptions file.

    • Increase the JVM max memory (-Xmx) for the Server by at least 800M.

  1. From the AppDynamics download site, search for and download the Neustar data file (neustar.dat).
  2. Replace neustar.dat in $APPDYNAMICS_HOME\EUM\eum-processor\bin.
  3. In the $APPDYNAMICS_HOME\EUM\eum-processor.log, verify that the new data file has been loaded. 
  4. Update the JVM's -Xmx option in the $APPDYNAMICS_HOME\EUM\eum-processor\bin\eum-processor-launcher.vmoptions file.

    • Increase the JVM max memory (-Xmx) for the Server by at least 800M.

Configure the Port for the EUM Agent

The on-prem EUM Server by default uses the same port to collect data from the EUM agent and to send data through the API server to the Controller. You can configure the EUM Server to use a different port to collect data from the EUM agent by following the instructions below. 

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Add the following lines to $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties, replacing <PORT> with the port you want the EUM server to listen to.

    processorServer.collectorHttpPort=<PORT>
    processorServer.collectorHttpsPort=<PORT>
    TEXT
  3. Restart the EUM Server.
  4. From the Controller Admin UI, change the ports for the properties eum.beacon.hosteum.beacon.https.host, eum.cloud.host, and eum.mobile.screenshot.host so that they are the same as those assigned to processorServer.collectorHttpPort and processorServer.collectorHttpsPort. This allows the beacon to communicate with the collector. 

    For example, if you set processorServer.collectorHttpPort=7050 and processServer.collectorHttpsPort=7051, you would then set the ports for the properties eum.beacon.host and eum.mobile.screenshot.host to 7050 for HTTP and eum.beacon.https.host to 7051 for HTTPS as shown below: 

Controller Settings

Limit the Number of EUM Snapshots 

When an application has a high number of Ajax requests per page, the EUM Server retains a large number of snapshots that can include base, virtual, and Ajax pages as well as iFrames. You can limit the number of snapshots retained by the EUM server by setting a global maximum, reducing the time that they are retained, or by filtering snapshots based on the network response time.

Setting the Global Limit for Snapshots

You set the global limit on the number of snapshots to be retained per minute with the configuration browserBeaconSampling.maxSamples. The default value is 1000. Once the limit is reached, all snapshots will be dropped indiscriminately. The limit can be globally configured through the eum.properties file.

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Add the following line to eum.properties, replacing <global_limit> with the global maximum number of snapshots to retain.

    browserBeaconSampling.maxSamples = <global_limit>
    CODE
  3. Restart the EUM Server.

Reduce the Lifespan of Event Snapshots

Another way to limit the number of EUM snapshots is to reduce the number of days that the event snapshots are retained. Event snapshots only apply to the crash reports, code issues, and IoT errors and are stored in the local blob store: $APPDYNAMICS_HOME/EUM/eum-processor/store

By default, the EUM Server retains the event snapshots for 90 days. If your Events Service retains events for fewer days (e.g., 14 days), you can safely change the EUM Server's retention period to be the same as the Events Service's retention period. If the EUM Server retains the event snapshots for fewer days than the Events Service, however, you may run into errors when viewing older events in the Controller UI.

When reducing the lifespan of event snapshots, you are not modifying the retention period of the Controller or the Events Service.

Setting the Lifespan for the Event Snapshots

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Add the following line to eum.properties, replacing <no_of_days> with the number of days that you'd like to retain the event snapshots. The default is 90.

    eventSnapshotStore.lifespanInDays = <no_of_days>
    CODE
  3. Restart the EUM Server.

Filtering Snapshots Based on the Network Response Time

You set a threshold that filters the snapshots based on the network response time. If the network response time is at or below the configured threshold, the snapshot is then retained. You set the threshold with the configuration browserBeaconSampling.hierarchyAwareSamplerPageUXThreshold.

Below are the supported threshold values and the snapshots that would be retained. The default value is Slow.

  • Normal - Using this threshold value will retain all snapshots.

  • Slow - Using this threshold value will retain snapshots having a network response time of slow, very slow, and stalled.

Setting the Threshold for the Network Response Time

  1. Open $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties with a text editor.
  2. Add the following line to eum.properties, replacing <threshold> with one of the supported thresholds (Normal or Slow) for retaining snapshots.

    browserBeaconSampling.hierarchyAwareSamplerPageUXThreshold = "<threshold>"
    CODE
  3. Restart the EUM Server.

Turn On Access Logs

By default, server access logging for the EUM Server's underlying application server is turned off. To turn it on, open $APPDYNAMICS_HOME/EUM/eum-processor/conf/local-eum-processor.yml with a text editor and find the following section under the server entry:

 requestLog:
        appenders: []
CODE

 Add the following information:

requestLog:
        timeZone: UTC
        appenders:
          - type: file
            archive: true
            currentLogFilename: ../logs/access.log
            archivedLogFilenamePattern: ../log/accedd-%d.log.gz
CODE

 Save the file and restart the EUM Server.

EUM Server Configuration File

You can configure the EUM Server by setting properties in the file  $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties. You are recommended to copy the reference sample file $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.sample.properties to $APPDYNAMICS_HOME/EUM/eum-processor/bin/eum.properties, modify the settings to fit your needs, and then restart the EUM Server so that the new settings are applied. 

The table below lists and describes the supported EUM properties, lists defaults, and specifies whether the property is required. The values for the database properties must conform with the MySQL syntax rules given in Schema Object Names

EUM PropertyDefaultRequired?Description

onprem.dbHost

dbHost
YesThe name of the database host.

onprem.dbPort

3388YesThe port to the database host.

onprem.dbSchema

eum_dbYesThe name of the EUM database.

onprem.dbUser

eum_userYesThe user name for the EUM database.

onprem.dbPassword

N/AYesThe user password to the EUM database. The password can consist of any ASCII character except the characters '^', '/', or '$'.
onprem.eventSnapshotDiskAllowance-1NoThe maximum disk space allotted for storing event snapshots. The default value of -1 allots unlimited disk space to store event snapshots. You can specify a positive integer representing the maximum number of bytes for storing event snapshots.

onprem.fileStoreRoot

../storeNoThe path to the directory storing EUM data such as snapshots.

onprem.crashReportExpirationDays

365NoThe number of days that crash reports are retained.
onprem.resourceSnapshotExpirationDays15NoThe number of days that resource snapshots are retained.

onprem.resourceSnapshotDiskAllowance

21474836480  (20 GB)

No

The maximum disk space allotted for storing resource snapshots. The default maximum disk space is 20 GB or 21474836480 bytes. You can specify a positive integer representing the maximum number of bytes for storing resource snapshots.

processorServer.httpPort

7001NoThe HTTP port to the EUM Processor.  The EUM Processor runs in one process containing the collector, aggregator, crash-processor, and monitor services.

processorServer.httpsPort

7002NoThe HTTPS port to the EUM Processor.

processorServer.httpsProduction

trueNoThe flag for turning enabling (true) or disabling HTTPS to the EUM Processor.

processorServer.keyStorePassword

N/ANoThe password to the Key Store for the EUM Processor.

processorServer.keyStoreFileName

bin/ssugg.keystoreNoThe path to the file that stores the password to the Key Store for the EUM Processor.

processorServer.collectorHttpPort

7001NoThe HTTP port of the EUM Collector. By default, the EUM Collector shares the same port as the EUM Processor, but you can configure the port to be different. The EUM Collector receives the metrics sent from the JavaScript agent.

processorServer.collectorHttpsPort

7002NoThe HTTPS port of the EUM Collector.

analytics.enabled

trueYesThe flag for enabling or disabling the Analytics Server.

analytics.serverScheme

httpNoThe network protocol for connecting to the Analytics Server. It is only required with analytics.enabled=true.

analytics.serverHost

events.service.hostnameNoThe hostname of the Analytics Server. It is only required with analytics.enabled=true.

analytics.port

9080NoThe port to the Analytics Server. It is only required when analytics.enabled=true.
analytics.accountAccessKey
access-keyNoThe access key for connecting to the Analytics Server. It is only required with analytics.enabled=true.
analytics.eventTypeLifeSpan.0.eventType
BrowserRecord
No

The type of event to be saved.

The following values are supported:

  • BrowserRecord
  • MobileSnapshot
  • SessionRecord
  • MobileSessionRecord

If this property is set, you must also set analytics.eventTypeLifeSpan.0.lifeSpan.

analytics.eventTypeLifeSpan.0.lifeSpan
8
No

The number of days to retain the event records specified by analytics.eventTypeLifeSpan.0.eventType. If this property is set, you must also set analytics.eventTypeLifeSpan.0.eventType. 

analytics.eventTypeLifeSpan.1.eventType
MobileSnapshot
No

The type of event to be saved.

The following values are supported:

  • BrowserRecord
  • MobileSnapshot
  • SessionRecord
  • MobileSessionRecord

If this property is set, you must also set analytics.eventTypeLifeSpan.1.lifeSpan.

analytics.eventTypeLifeSpan.1.lifeSpan
8
No

The number of days to retain the event records specified by analytics.eventTypeLifeSpan.1.eventType. If this property is set, you must also set analytics.eventTypeLifeSpan.1.eventType.

analytics.eventTypeLifeSpan.2.eventType

SessionRecord

No

The type of event to be saved.

The following values are supported:

  • BrowserRecord
  • MobileSnapshot
  • SessionRecord
  • MobileSessionRecord

If this property is set, you also must set analytics.eventTypeLifeSpan.2.lifeSpan.

analytics.eventTypeLifeSpan.2.lifeSpan
8NoThe number of days to retain the event records specified by analytics.eventTypeLifeSpan.2.eventType. If this property is set, you must also set analytics.eventTypeLifeSpan.2.eventType.
analytics.eventTypeLifeSpan.3.eventType
MobileSessionRecordNo

The type of event to be saved.

The following values are supported:

  • BrowserRecord
  • MobileSnapshot
  • SessionRecord
  • MobileSessionRecord

If this property is set, you also must set analytics.eventTypeLifeSpan.3.lifeSpan.

analytics.eventTypeLifeSpan.3.lifeSpan
8
The number of days to retain the event records specified by analytics.eventTypeLifeSpan.3.eventType. If this property is set, you must also set analytics.eventTypeLifeSpan.3.eventType.
onprem.mobileAppBuildTimeSeriesRequestCountRollupDays
7
NoThe EUM Collector searches for the dSYM file in the beacon traffic for the configured number of days. If the dSYM file is not present during the configured time frame, a warning message is displayed in the Controller UI.
onprem.maxNumberOfMobileBuildsWithoutDsym
10
NoThe maximum number of visible missing dSYM files in the Controller UI.
collection.sessionEnabled
true
NoThe flag for enabling or disabling browser/mobile session collection. If you are upgrading the EUM Server from versions 4.2 and lower to 4.3 or higher, the default is false.
collection.accessControlAllowOrigins.{n}
*No

By default, the EUM Collector responds with Access-Control-Allow-Origin: *.

You can limit CORS to certain domains by using an integer property assigned to a URL as in the following:

  • collection.accessControlAllowOrigins.0=http://example1.com
  • collection.accessControlAllowOrigins.1=http://example2.com
  • collection.accessControlAllowOrigins.2=http://example3.com
eventSnapshotStore.lifespanInDays
90No

The number of days that the event snapshots stored in the EUM Server's local blob store ($APPDYNAMICS_HOME/EUM/eum-processor/store) are retained. The event snapshots only apply to crash reports, code issues, and IoT errors.

sessionization.webSessionRetentionMins
5NoThe number of minutes that browser sessions are retained after they are closed. This allows browser sessions that begin and end at different times to be retained. The longer the configured retention time, the larger the number of closed sessions held in memory, resulting in higher memory usage.
sessionization.mobileSessionRetentionMins5NoThe number of minutes that mobile sessions are retained after they are closed. This enables mobile sessions that begin and end at different times to be retained. The longer the configured retention time, the larger the number of closed sessions held in memory, resulting in higher memory usage.
throttling.resourceSnapshot.maxTotalPerMinPerAccount
1000NoThe maximum number of total resource snapshots retained each minute for an account.
throttling.resourceSnapshot.maxNormalPerMinPerAccount
800NoThe maximum number of resource snapshots of pages with a "Normal" user experience that are retained each minute for an account. In general, you want the number for this property to be smaller than that for throttling.resourceSnapshot.maxTotalPerMinPerAccount, so you can also retain resource snapshots of pages with a "Slow", "Very Slow", or "Stall" user experience.
throttling.session.maxTrackedSessionsPerAccount
50000NoThe maximum number of active sessions and unexpired closed sessions that are stored in memory for an account. When the maximum is reached, events that create new sessions will be dropped. This setting helps to control the memory used for sessions at the account level.

From EUM Server version 4.5.1 and later, the property crashProcessing.sessionEnabled is no longer supported. Instead, the association of crashes with sessions is enabled by default. If you are using an earlier version (<4.5.1) of the EUM Server and want to upgrade to 4.5.1 or higher, you will need to remove the property crashProcessing.sessionEnabled from the eum.properties file to prevent the EUM Server from throwing errors.