The Apache Web Server Agent discovers, maps, and tracks metrics for business transactions, app services, and backends in your web application by injecting instrumentation into the Apache server at runtime.

AppDynamics contributes to the open-source Apache Web Server agent. This agent is OpenTelemetry based and integrates seamlessly with the AppDynamics backend. For more information, see Open Source Apache Web Server Agent.

About the Apache Web Server Agent

The Apache Agent automatically discovers incoming HTTP requests to Apache Web Server nodes as business transaction entry points. AppDynamics uses URI-based naming for transactions originating at Apache Agent nodes. The agent discovers exit points to Apache modules and resolves them to the downstream tier or backend. See Apache Web Server Backend Detection.

 Business transaction naming is limited to URLs or the WEB type. This provides limited options for match and split rules.

The Apache Agent tracks the following metrics for web servers:

  • Calls per minute and time spent in the web server tier
  • Calls per minute and time spent in Apache module backends
  • Number of errors

The agent identifies slow and stalled transactions according to dynamic baselines. When it detects an HTTP response code greater than 400, the agent identifies the transaction as an error transaction.

Transaction snapshots taken on Apache Web Server nodes include the following data:

  • URL
  • HTTP error codes
  • HTTP request data: 
    • Cookie, including JSESSIONID
    • Referer
    • X-Forwarded-For
    • SM_USER
  • Exit calls to Apache modules

Agent Deployment Architecture

The Apache Web Server Agent consists of these components:

  • Apache extension
  • AppDynamics agent proxy

The agent proxy is a Java process that handles communication between the Apache Web Server Agent and Controller. The proxy transmits the raw performance data from the agent to the Controller, which stores, analyzes, and presents the data. 

Agent Deployment Diagram

As a separate process, the agent proxy must be started separately from the monitored web server. You can start the proxy manually or configure it to start automatically by setting AppDynamicsLaunchProxy in appdynamics_agent.conf. Whether the proxy is started automatically or manually, the commands that start the agent check whether the proxy is already running and do not attempt to start it again if it is.

Naming Apache Web Server Nodes

Each web server instance maps to a node in the AppDynamics model. When naming Apache Web Server nodes, be sure to use a meaningful name. Some options are:

  • hostName-appName-nodeName
  • hostName-tierName-nodeName
  • appName-nodeName
  • tierName-nodeName
  • IP address
  • fully qualified domain name