Configure the EUM Server

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):
    CODE
    beaconReader.maxUrlLength=<max_length>
  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 Download site.

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

Linux

  1. From the 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.

Windows

  1. From the 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.
    CODE
    processorServer.collectorHttpPort=<PORT>
    processorServer.collectorHttpsPort=<PORT>
  3. Restart the EUM Server.
  4. From the Controller Admin UI, change the ports for the properties eum.public.cloud.host, eum.beacon.host, eum.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 following properties:
    Protocol Properties Port
    HTTP eum.beacon.host and eum.mobile.screenshot.host 7050
    HTTPS eum.beacon.https.host and eum.public.cloud.host 7051
    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.

    CODE
    browserBeaconSampling.maxSamples = <global_limit>
  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.

Note: 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.

    CODE
    eventSnapshotStore.lifespanInDays = <no_of_days>
  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.

    CODE
    browserBeaconSampling.hierarchyAwareSamplerPageUXThreshold = "<threshold>"
  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:

CODE
requestLog:
        appenders: []

Add the following information:

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

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 Property Default Required? Description
onprem.dbHost dbHost Yes The name of the database host.
onprem.dbPort 3388 Yes The port to the database host.
onprem.dbSchema eum_db Yes The name of the EUM database.
onprem.dbUser eum_user Yes The user name for the EUM database.
onprem.dbPassword N/A Yes The user password to the EUM database. The password can consist of any ASCII character except the characters '^', '/', or '$'.
onprem.eventSnapshotDiskAllowance -1 No The 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 ../store No The path to the directory storing EUM data such as snapshots.
onprem.crashReportExpirationDays 365 No The number of days that crash reports are retained.
onprem.resourceSnapshotExpirationDays 15 No The 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 7001 No The HTTP port to the EUM Processor. The EUM Processor runs in one process containing the collector, aggregator, crash-processor, and monitor services.
processorServer.httpsPort 7002 No The HTTPS port to the EUM Processor.
processorServer.httpsProduction true No The flag for turning enabling (true) or disabling HTTPS to the EUM Processor.
processorServer.keyStorePassword N/A No The password to the Key Store for the EUM Processor.
processorServer.keyStoreFileName bin/ssugg.keystore No The path to the file that stores the password to the Key Store for the EUM Processor.
processorServer.collectorHttpPort 7001 No The 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 7002 No The HTTPS port of the EUM Collector.
analytics.enabled true Yes The flag for enabling or disabling the Analytics Server.
analytics.serverScheme http No The network protocol for connecting to the Analytics Server. It is only required with analytics.enabled=true .
analytics.serverHost events.service.hostname No The hostname of the Analytics Server. It is only required with analytics.enabled=true .
analytics.port 9080 No The port to the Analytics Server. It is only required when analytics.enabled=true .
analytics.accountAccessKey access-key No The 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 8 No The 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 MobileSessionRecord 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.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 No The 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 No The maximum number of visible missing dSYM files in the Controller UI.
collection.sessionEnabled true No The 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 90 No

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 5 No The 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.mobileSessionRetentionMins 5 No The 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 1000 No The maximum number of total resource snapshots retained each minute for an account.
throttling.resourceSnapshot.maxNormalPerMinPerAccount 800 No The 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 50000 No The 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.
Note: 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.