Enable the combined mode for .NET agent

Reference information for configuring the .NET combined agent for dual-signal or Splunk-only operation.

Use this section only when configuring the .NET combined agent for dual-signal or Splunk-only operation. See separate documentation for general .NET agent capabilities, including Call Graph Profiling and AlwaysOn Profiling.

The table describes the .NET combined agent required settings in terms of environment variables, but in reality your application runtime/packaging/platform might differ on how your platform injects agent configuration into the agent process. Translate these environment variables into your application’s platform.

Table 1. Environment variables
Environment variable Required? Description
AGENT_DEPLOYMENT_MODE Yes

Selects the mode of the agent. Default: appd

appd: Send data to Splunk AppDynamics only.

dual: Send data to both Splunk AppDynamics and Splunk Observability Cloud. Splunk Observability Cloud receives telemetry through the configured OpenTelemetry route.

otel: Send data to Splunk Observability Cloud only, through the configured OpenTelemetry route.

OTEL_EXPORTER_OTLP_ENDPOINT Specifies the base URL where the agent sends all OTLP telemetry data. Default: http://localhost:4318
OTEL_EXPORTER_OTLP_PROTOCOL Transport protocol used for all OTLP telemetry data (traces, metrics, and logs); for the .NET agent, the default value: http/protobuf.
OTEL_RESOURCE_ATTRIBUTES Yes

Comma-separated list of resource attributes. You must include:

  • service.namespace set to your Splunk AppDynamics application name (application-name).
  • deployment.environment.name set to your Splunk AppDynamics account name (account-name).

The agent adds these resource attributes to reported spans.

Note:

Do not set service.name here. Set OTEL_SERVICE_NAME instead.

OTEL_SERVICE_NAME Yes Your Splunk AppDynamics tier name (tier-name). This value appears in Splunk Observability Cloud as the OpenTelemetry service.name attribute. This value takes precedence over the service name in OTEL_RESOURCE_ATTRIBUTES.
SPLUNK_ACCESS_TOKEN Your Splunk access token; no default value. Do not set this unless the migration team approves direct ingest.
SPLUNK_REALM The Splunk realm of your Splunk Observability Cloud organization; no default value. Do not set this unless the migration team approves direct ingest. If you set OTEL_EXPORTER_OTLP_ENDPOINT, it overrides SPLUNK_REALM.

Your settings for OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES map your Splunk AppDynamics tier name, application name, and account name to OpenTelemetry resource attributes so Splunk Observability Cloud can ingest and visualize your application telemetry correctly.

This mapping does not occur automatically. It depends on your OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES settings.

If your migration wave has approval for direct ingest, set SPLUNK_REALM and SPLUNK_ACCESS_TOKEN instead of relying on a Collector route. If you set OTEL_EXPORTER_OTLP_ENDPOINT, it overrides SPLUNK_REALM.

Define environment variables in different platforms

The .NET combined agent has a few required settings - in other words, configuration you must specify. How you specify these settings varies depending on .NET combined agent version, .NET runtime version, .NET Framework version, operating system, architecture, hosting model, agent packaging method (such as MSI, ZIP, Controller self-service installation), or container image.

Where you define these settings depends on how the application runs:

  • Windows server with MSI packaging: Set migration-specific values in the process scope when different .NET applications on the host need different service names or telemetry routes. Use host-wide environment variables only when all instrumented .NET applications on the host share the same values.
  • IIS-hosted applications: For ASP.NET applications, define settings in the appSettings block of web.config. For ASP.NET Core applications hosted in IIS, define settings in the environmentVariables block of web.config. To configure a specific application pool, use application pool environment variables in applicationHost.config, then restart the application pool.
  • Windows services: For .NET Framework applications, define supported settings in app.config or use the Windows Registry Environment key for the service, then restart the service.
  • Standalone processes: Define the settings in the environment of the shell, script, supervisor, or service manager that starts the application, then restart the application.
  • Linux services: Define the settings in the service manager configuration or environment file that starts the service. If your installation uses an instrumentation setup script, make sure the service startup path activates instrumentation before the application starts.
  • Docker containers: Define the settings in the container environment, such as Dockerfile ENV entries, docker run -e arguments, Docker Compose environment values, or the container platform configuration. Recreate or restart the container after changing settings.
  • Kubernetes pods: Define the settings in the workload manifest under the container env section. Store tokens in Kubernetes Secrets. For a local Collector agent running as a DaemonSet, set OTEL_EXPORTER_OTLP_ENDPOINT to the node-local Collector endpoint, for example by using the Downward API to resolve the node IP.