Documentation forAppOptics

Configuration (legacy agent)

The following content pertains to configuration for the legacy AppOptics NET Agent.

AppOptics agents are no long receiving updates. The new SolarWinds Observability libraries are regularly updated with new features and improvements. If you are still relying on the AppOptics agents and your components are supported by the new libraries, consider migrating to SolarWinds Observability.

If you have already transitioned to the new SolarWinds Observability NET Library, see the SolarWinds NET Library documentation for configuration information.

SolarWinds Observability libraries are not compatible with AppOptics agents. Do not use a mix of SolarWinds Observability libraries and AppOptics agents to instrument applications that are part of a distributed trace.

How to set configuration

All configuration options can be set in the agent.config file.

You must restart your application in order for any changes to take effect. For IIS websites, you can run iisreset to restart.

Certain configurations can also be overridden via an environment variable. If the same configuration is set in both places (for example, service key in both environment variable APPOPTICS_SERVICE_KEY and agent.config ServiceKey), then the setting is applied with this precedence:

Environment Variable > Application-level agent.config file > Global agent.config file

.NET Agent for Windows

The agent.config file is located under the .NET agent directory C:\Program Files\AppOptics\APM\dotnet.

.NET Agent for Linux

The agent.config file is located under the .NET agent installation directory, which should also be set in the environment variable APPOPTICS_HOME_APM_DOTNET. For example, if you installed the agent to ${HOME}/appoptics, the configuration file will be located at ${HOME}/appoptics/agent.config.

The location of the agent.config file can also be set using the environment variable APPOPTICS_CONFIG by specifying the path of the directory containing the config file. For example, if it is located at /opt/custom/directory/agent.config, set APPOPTICS_CONFIG to /opt/custom/directory.

AppOptics.Agent NuGet Package

The agent.config file is included in the AppOptics.Agent NuGet package. It is configured within the NuGet package to be deployed along with the application that includes the AppOptics.Agent NuGet package.

The agent.config deployed with the application takes precedence over the global agent.config included with the .NET Agent.

The location of the agent.config file can also be set using the environment variable APPOPTICS_CONFIG by specifying the path of the directory containing the config file. For example, if it is located at C:\custom\directory\agent.config, set APPOPTICS_CONFIG to C:\custom\directory.

Change the logging configuration

The default logging level is ‘Info’. This is the minimum severity required to report Info, Warning, Error and Fatal messages to the logs.

By default one log file per app is created in \TEMP\AppOptics (where TEMP is the environment variable: TEMP) on Windows platforms or /var/tmp/appoptics on Linux platforms, with a timestamp as part of its naming convention. The file ages out periodically at which point a new file is created. Segmenting the log history this way makes logs a little easier to search and handle. To protect hosts against disk space issues, logs may be written only if there is sufficient disk space; older files are purged; and they are subject to a maximum size. Once the max file size is reached, no logs are written until a new file is created. This occurs either when the current file ages out, or if the current file is renamed, a new file will be created immediately.

Disable tracing on transactions

You can exclude transactions from being traced by adding an <instrumentation><transactionSettings> block to the bottom of agent.config to disable tracing for particular requests, for example static files or health-check endpoints. This should contain a list of transactionSetting entries that specify either a list of file extensions or a regular expression describing the URLs you want to exclude, plus a tracing setting. An example is included in agent.config itself. You must restart your application in order for any changes to take effect.

...
</appSettings>
  <instrumentation>
    <transactionSettings>
      <!-- Settings for specific transactions -->
      <!--  Element: transactionSetting -->
      <!--  Attributes: -->
      <!--   applicationPool: Optional attribute. If set the transaction configuration will only be applied to the application pool specified. -->
      <!--   application: Optional attribute. If set the transaction configuration will only be applied to the application specified. -->
      <!--   type: Required attribute. (Valid option: Url) -->
      <!--   One of extensionList or regexMatch is required. -->
      <!--   extensionList: Optional attribute. Comma separated list of file extensions. -->
      <!--   regexMatch: Optional attribute. Regular expression to match against. -->
      <!--   tracing: Required attribute. (valid options: Enabled, Disabled) -->
      <!--  Examples: -->
      <!--   <transactionSetting type="Url" extensionList=".js,.css,.png,.ico" tracing="Disabled" /> -->
      <!--   <transactionSetting applicationPool="app-pool-1" type="Url" regexMatch=".*long-transaction.*" tracing="Disabled" /> -->
    </transactionSettings>
  </instrumentation>
</configuration>

Enable/Disable Code Profiling

Code profiling is currently only supported by the .NET agent for Windows.

To enabled code profiling use the Profiling setting in the agent.config file.

For more information see Code Profiling.

Configure the service key for an application pool

The application pool configuration is only applicable to the .NET Agent for Windows.

There are two options for setting an application pool specific service key. With both options after updating the configuration an iisreset is required for the updated settings to take effect.

Option 1 - Environment Variable

The IIS site configuration is only applicable to the .NET Agent for Windows.

Starting at IIS 10 support was added for setting application pool specific environment variables.

The appcmd.exe command line tool located at: %windir%\System32\inetsrv can be used to add and remove application pool specific environment variables.

Command to add an environment variable: appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='app_pool_name'].environmentVariables.[name='APPOPTICS_SERVICE_KEY',value='service_key']" /commit:apphost

Command to remove an environment variable: appcmd.exe set config -section:system.applicationHost/applicationPools /-"[name='app_pool_name'].environmentVariables.[name='APPOPTICS_SERVICE_KEY',value='service_key']" /commit:apphost

For more information see: IIS 10 Documentation:

Option 2 - Configuration File

You can also configure an application pool specific key by using the ApplicationPools config section in the agent.config file. Basically you add an instrumentation block to the bottom of agent.config. That block should contain a list of application pools identified by name and the service key that should be used for that application pool. If the main service key should be used for an application pool then that application pool does not need to be added to the agent.config. An example is included in agent.config itself. You must run iisreset in order for any changes to take effect.

...
</appSettings>
  <instrumentation>
    <applicationPools>
      <!-- Optional Configuration: This section can be used for application pool specific configuration. -->
      <!--  Element: applicationPool -->
      <!--  Attributes: -->
      <!--   name: The name of the application pool. -->
      <!--   serviceKey: If the application pool should be identified as a different service than a specific Service Key can be specified. -->
      <!--         The Service Key can be created and found in the AppOptics web interface. -->
      <!--   appOptics: Optional attribute. Valid Options: Disabled, Enabled -->
      <!--        The default option is Enabled. To disable AppOptics for an application pool set the appOptics attribute to Disabled. -->
      <!--   iisInstrumentation: Optional attribute. Valid Options: DisabledIISFramework, DisabledIISCore, Enabled  -->
      <!--        The default option is Enabled. -->
      <!--        To disable .NET Framework instrumentation set the iisInstrumentation attribute to DisabledIISFramework. -->
      <!--        To disable .NET Core or .NET 5.0 instrumentation set the iisInstrumentation attribute to DisabledIISCore. -->	
      <!-- Example: -->
      <!--  <applicationPool name="application_pool_name" serviceKey="[API-TOKEN]:[SERVICE-NAME]"/> -->
    </applicationPools>
  </instrumentation>
</configuration>

Configure the service key for an IIS site

The IIS site configuration is only applicable to the .NET Agent for Windows.

After updating the configuration an iisreset is required for the updated settings to take effect.

Configuration File

You can configure a specific key for an IIS site by using the iisSites config section in the agent.config file. Basically you add an instrumentation block to the bottom of agent.config. That block should contain a list of IIS sites identified by name and the service key that should be used for that IIS site. An service key does not need to be configured for each IIS site. If the application pool that the IIS site uses has a service key configured then the application pool service key will be used. Otherwise, if neither the IIS site nor the corresponding application pool has a service key configured then the main service key will be used. An example of the iisSites configuration is included in agent.config itself. You must run iisreset in order for any changes to take effect.

...
</appSettings>
  <instrumentation>
    <iisSites>
      <!-- Optional Configuration: This section can be used for IIS Site specific configuration. -->
      <!--  Element: iisSite -->
      <!--  Attributes: -->
      <!--   name: The name of the IIS Site. -->
      <!--   hostName: Optional attribute. The host name can be specified, if a service also needs to be separated by host names. -->
      <!--   serviceKey: If the IIS Site should be identified as a different service from other sites in an application pool than a specific Service Key can be specified. -->
      <!--         If a virtual directory needs to be identified as a different service than the format for the name must -->
      <!--         combine the IIS Site name and Virtual Directory name in this format: "iis_site_name/virtual_directory_name" -->
      <!--         The Service Key can be created and found in the AppOptics web interface. -->
      <!-- Example: -->
      <!--  <iisSite name="iis_site_name" serviceKey="[API-TOKEN]:[SERVICE-NAME]"/> -->
      <!--  <iisSite name="iis_site_name/virtual_directory_name" serviceKey="[API-TOKEN]:[SERVICE-NAME]"/> -->
      <!--  <iisSite name="iis_site_name" hostName="host.domain.com" serviceKey="[API-TOKEN]:[SERVICE-NAME]"/> -->
    </iisSites>
  </instrumentation>
</configuration>

Configure the service key for a Windows Service

There are two options for configuring a service key for a windows service: modify the configuration file or set environment variables. Both require restarting the Windows service after setting the service key.

Option 1- Configuration File

One way to configure the service key for a Windows service is by modifying the applications config section in the agent.config file. For each application that the Windows service should run, add a new child application node to the applications node and set the value of the new node's name attribute to be the name of the exe the Windows service runs.

<applications>
  <!-- add one line for each exe ran by the Windows Service that should be instrumented -->  
  <application name="name-of-exe-windows-service-runs.exe" />
</applications>

Standalone WCF windows services will be instrumented automatically. Other types of Windows services must be instrumented using the custom instrumentation SDK.

Option 2 - Environment Variable

An alternate way to set the service key for a process is by configuring an APPOPTICS_SERVICE_KEY environment variable. The following steps can be used to set an environment variable in the registry for a Windows service.

  1. Open the Registry Editor (regedit.exe)
  2. Expand:
    KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
  3. Click the service name that corresponds to the process you want to add a service key to.
  4. Click the Edit menu and select New > Multi-String Value
  5. Type Environment in the string name and press enter.
  6. Double-click the newly created Multi-String Value (type REG_MULTI_SZ)to edit the multi-string value and enter APPOPTICS_SERVICE_KEY=[API-TOKEN]:[SERVICE-NAME] in the Value data field.
  7. Click OK.
  8. Repeat steps 2 through 7 for each Windows process that needs to be configured.

Trace Context in Logs

Trace context as a string identifier can be added to logs to correlate log entries for a single transaction. See Trace Context in Logs on how this feature is supported in the .NET agent.

The options below enable adding the trace context for supported logging frameworks. Regardless which is chosen, the LoggedTraceId configuration variable can be used to configure if the Trace ID is available for all transactions or only for sampled transactions.

Automatic Insert

Automatically insert Trace ID into log messages. When using Log4net, this feature is supported for unstructured layouts (PatternLayout or SimpleLayout). This feature is controlled by InsertLogTraceIdIntoLogs configuration variable.

Automatic Attribute

Automatically create a Trace ID attribute with key %property{ao.traceId:<format>} for Log4net or {aoTraceId<format>} for Serilog. The attribute can be referenced in the layout configurations. Structured layouts like XmlLayout use all available attributes to render the output. This feature is controlled by AddAttributeLogTraceId configuration variable.

Complete configuration options

The following is the complete list of instrumentation configuration options.

ServiceKey

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

ServiceKey

environment variable

APPOPTICS_SERVICE_KEY

description

The Service Key is required during installation of the .NET Agent on Windows, and is set in the agent.config file by the installer. If the agent is manually installed, the installer prompts for the Service Key. If the agent is installed using the command line, the Service Key must be specified in the conf.inf file.

For the .NET Core SDK, the Service Key is required during application runtime and can be set in either the agent.config file for Core SDK, or as an environment variable.

The ServiceKey option is required and recommended to be set in the agent.config file.

history

Introduced in original version of .NET instrumentation

example

<add key="ServiceKey" value="398fc234fedcb23063826cba723ba67bc82840234dacb3bdb42bab35482bab35:service_name" />

AppOptics

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

AppOptics

description

Configuration option to disable AppOptics. The ApplicationPools element below can be used to enable or disable specific application pools.

valid values

Disabled, Enabled. Default: Enabled.

history

Added in 3.4.0 release

example

<add key="AppOptics" value="Disabled" />

Tracing

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

Tracing

description

Set Tracing to Disabled if requests should never be sampled and transaction metrics should not be reported.

valid values

Disabled, Enabled. Default: Enabled.

history

Added in 3.6.0 release

example

<add key="Tracing" value="Disabled" />

HostnameAlias

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

HostnameAlias

description

An optional logical/readable hostname that can be used to easily identify the host. If configured, the hostname alias will be displayed and will be able to be used as a filter in the AppOptics dashboard.

history

Added in 3.0.1 release

example

<add key="HostnameAlias" value="prod_host_a1" />

Ec2MetadataTimeout

supported .NET agent versions

.NET Agent

config option

Ec2MetadataTimeout

description

Optional configuration. On agent startup the agent checks if the server is an AWS EC2 instance. The Ec2MetadataTimeout configuration can be used to adjust the timeout length of this check. If the agent is not running on an AWS EC2 instance it is safe to set this value to 0. A valid value is an integer between 0 and 3000. The EC2 metadata timeout is in milliseconds.

history

Added in 3.9.0 release

example

<add key="Ec2MetadataTimeout" value="0" />

SQLSanitizationMode

supported .NET agent versions

.NET Agent

config option

SQLSanitizationMode

description

The .NET instrumentation has the ability to sanitize query literals from sql statements. By default the agent is set to Auto and literals will be removed from sql statements. The SQLSanitizationMode configuration can be used to disable the sanitizing or change the type of sanitization used.

valid values

Auto

(Default) Remove literals, auto-detecting literal quotes.

DropDoubleQuotes

Remove literals and double-quoted values.

KeepDoubleQuotes

Remove literals but keep double-quoted values.

Disabled

Disable sanitization of query literals.

history

Introduced in original version of .NET instrumentation

example

<add key="SQLSanitizationMode" value="Disabled" />

urlSampleRate

history

Deprecated in version 3.6.0 of the agent, replaced by transactionSetting configuration

transactionSetting

supported .NET agent versions

.NET Agent and .NET Core SDK (AppOptics Middleware)

config option

transactionSetting

description

Disable tracing for a transaction where the request URL matches a user-configurable regular expression or list of extensions. If more than one transactionSetting is defined, the first one matching the request URL is used. For the .NET Core SDK, the AppOptics middleware supports the transactionSetting configuration.

parameters

applicationPool

Optional attribute (only supported by .NET Agent on Windows). If set the transaction configuration will only be applied to the application pool specified.

application

Optional attribute (only supported by .NET Agent on Windows). If set the transaction configuration will only be applied to the application specified.

type

Required attribute. (Valid option: Url)

extensionList

Comma separated list of file extensions. One of extensionList or regexMatch is required.

regexMatch

A .NET Regular Expression to match against the full request URL, including the protocol. One of extensionList or regexMatch is required.

tracing

Required attribute. (valid options: Enabled, Disabled)

history

Added in 3.6.0 release

example

See disable tracing on transactions.

Inlining

supported .NET agent versions

.NET Agent

config option

Inlining

description

If a method is inlined by CLR, it cannot be instrumented. You can disable inlining for all applications through this config option. See the troubleshooting section Are custom instrumentation spans or other spans missing from traces? for more information.

valid values

Disabled, Enabled. Default: Enabled.

history

Introduced in original version of .NET instrumentation

example

<add key="Inlining" value="Disabled" />

SecurityTransparencyInstrumentation

supported .NET agent versions

.NET Agent (only applicable to .NET Framework)

config option

SecurityTransparencyInstrumentation

description

If an assembly has the SecurityTransparent attribute then any methods instrumented in it might cause a System.Security.VerificationException to occur, and a web request that invokes those instrumented methods might fail. By default instrumentation of SecurityTransparent assemblies is disabled but it can be enabled with this config option.

valid values

0

(Default) Disable instrumentation for security transparent assemblies. When this value is set, instrumentation will be disabled for MVC3 and MVC4.

1

Enable instrumentation for security transparent assemblies. When this value is set, MVC3 will be instrumented but MVC4 will not.

2

Sets the COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST compiler flag that disables transparency checks. When this value is set, System.Security.VerificationException won’t occur even if both the SecurityTransparent attribute and AppOptics instrumentation are present.

history

Introduced in original version of .NET instrumentation

example

<add key="SecurityTransparencyInstrumentation" value="1" />

LogCreationSchedule

supported .NET agent versions

.NET Agent (only applicable to .NET Framework)

config option

LogCreationSchedule

description

Specify when the current log file ages out and a a new log file should be generated.

valid values

Daily or Weekly. The default is Daily.

history

Introduced in original version of .NET instrumentation

example

<add key="LogCreationSchedule" value="Daily" />

LogFileMaxSize

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

LogFileMaxSize

description

The maximum size, in bytes, that a log file may be. After the maximum is reached, no additional messages will be written to it. Log messages will be written again once a new log file is generated. The default is 10000000 (10 MB).

history

Introduced in original version of .NET instrumentation

example

<add key="LogFileMaxSize" value="10000000" />

LogLevel

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

LogLevel

description

Change the logging severity level. The default is ‘Info'.

valid values

In order of descending: Fatal, Error, Warning, Info, Debug, Trace, None.

Fatal

An error caused .NET instrumentation to stop.

Error

Any error caused an instrumented trace to fail.

Warning

An issue such as an unexpected configuration value, but the .NET instrumentation can still generate traces.

Info

Logging items such as configuration settings that were loaded on start up.

Debug

Diagnostic information used by customer care to resolve technical issues.

Trace

Highest level of logging. Logs functions called, exception stack traces, etc.

None

No logging.

history

Introduced in original version of .NET instrumentation

example

<add key="LogLevel" value="Info" />

Note

Levels Info and higher do not log messages per request when the .NET agent is running as expected.

LogRetentionDays

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

LogRetentionDays

description

Retain old log files for the specified number of days, after which they will be deleted. The default is 45 days.

history

Introduced in original version of .NET instrumentation

example

<add key="LogRetentionDays" value="45" />

ReserveDiskSpace

supported .NET agent versions

.NET Agent (only applicable to .NET Framework)

config option

ReserveDiskSpace

description

The amount of disk space, in bytes, that must be available before messages can be written to a log file. Log messages will not be written if there is insufficient disk space. The default is 200000000 (200 MB).

history

Introduced in original version of .NET instrumentation

example

<add key="ReserveDiskSpace" value="200000000" />

IncludeQueryString

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

IncludeQueryString

description

By default the query string parameters are included in the URLs reported in IIS spans. Set the IncludeQueryString configuration to Disabled if query string parameters should be excluded from URLs reported in IIS spans.

valid values

Disabled, Enabled. Default: Enabled

history

Introduced in 3.1.1 .NET instrumentation

example

<add key="IncludeQueryString" value="Disabled" />

PrependDomain

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

PrependDomain

description

Optional configuration: Used to indicate if the domain should be prepended to the transaction name.

valid values

Disabled, Enabled. Default: Disabled

history

Introduced in 3.2.0 .NET Agent. Introduced in 3.3.2 for .NET Core SDK.

example

<add key="PrependDomain" value="Enabled" />

Profiling

supported .NET agent versions

.NET Agent (Windows only)

config option

Profiling

description

Optional configuration: Used to indicate if profiling should be enabled.

valid values

Disabled, Enabled. Default: Disabled

history

Introduced in 3.7.0 .NET Agent

example

<add key="Profiling" value="Enabled" />

ProfileSampleInterval

supported .NET agent versions

.NET Agent (Windows only)

config option

ProfileSampleInterval

description

Optional configuration: The sample interval for profile snapshots. The sample interval is in milliseconds.

valid values

A valid value is an integer between 30 and 3000. Default: 50

history

Introduced in 3.7.0 .NET Agent

example

<add key="ProfileSampleInterval" value="30" />

Backtraces

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

Backtraces

description

Optional configuration: Used to explicitly control backtrace reporting.

valid values

Disabled

Backtrace reporting is disabled for all span events including error span events.

ErrorsOnly

Backtraces are only reported for error span events. This is the recommended setting to increase agent performance yet still get useful details about application errors.

EnabledAll

Backtrace reporting is enabled. (Default value)

history

Added in 3.9.6 release

example

<add key="Backtraces" value="ErrorsOnly" />

applicationPool

supported .NET agent versions

.NET Agent (Windows only)

config option

applicationPool

description

Optional configuration, is used for application pool specific configuration.

parameters

name

The name of the application pool.

serviceKey

If the application pool should be identified as a different service than a specific Service Key can be specified.

appOptics

Optional attribute. Valid Options: Disabled, Enabled. The default option is Enabled. To disable AppOptics for an application pool set the appOptics attribute to Disabled.

iisInstrumentation

Optional attribute. Valid Options: DisabledIISFramework, DisabledIISCore, Enabled. To disable .NET Framework instrumentation set the iisInstrumentation attribute to DisabledIISFramework

history

The applicationPool element was introduced in 3.0.3 .NET instrumentation. The appOptics attribute was introduced in 3.4.0 .NET instrumentation. The iisInstrumentation attribute was introduced in 4.2.0.

example

See Configure the service key for an application pool - Option 2 Configuration File.

iisSite

supported .NET agent versions

.NET Agent (Windows only)

config option

iisSite

description

Optional configuration, is used for IIS site specific configuration.

parameters

name

The name of the IIS site.

serviceKey

If the IIS site should be identified as a different service from other sites in an application pool than a specific Service Key can be specified. If a virtual directory needs to be identified as a different service than the format for the name must combine the IIS site name and virtual directory name in this format: "iis_site_name/virtual_directory_name"

hostName

Optional attribute. The host name can be specified, if a service also needs to be separated by host names.

history

Introduced in 3.1.1 .NET instrumentation

example

See Configure the service key for an IIS site.

application

supported .NET agent versions

.NET Agent

config option

application

description

Optional configuration, is used for configuring non-IIS applications.

parameters

name

The name of the application to instrument.

serviceKey

Optional attribute. If the application is a different service than a specific Service Key for this application can be specified.

inlining

Optional attribute. Valid Options: Disabled, Enabled. If the inlining attribute is not set in the application element, the appSettings Inlining value is used.

appOptics

Optional attribute. Valid Options: Disabled, Enabled. The default option is Enabled. To disable AppOptics for an application set the appOptics attribute to Disabled.

history

The application element was introduced in original version of .NET instrumentation. The appOptics attribute was added in 3.4.0 .NET instrumentation.

example

<application name="ApplicationToInstrument1.exe" serviceKey="[API-TOKEN]:[SERVICE-NAME]" />

InsertLogTraceIdIntoLogs

supported .NET agent versions

.NET Agent

config option

InsertLogTraceIdIntoLogs

description

An optional configuration to indicate if the Trace ID should be automatically inserted into log files.

valid values

Disabled, Enabled. Default: Disabled.

history

Added in 3.8.0 release

example

<add key="InsertLogTraceIdIntoLogs" value="Enabled" />

AddAttributeLogTraceId

supported .NET agent versions

.NET Agent

config option

AddAttributeLogTraceId

description

An optional configuration to indicate if the attribute Trace ID is created automatically.

valid values

Disabled, Enabled. Default: Disabled.

history

Added in 3.8.0 release.

example

<add key="AddAttributeLogTraceId" value="Enabled" />

LoggedTraceId

supported .NET agent versions

.NET Agent

config option

LoggedTraceId

description

An optional configuration to indicate if the Trace ID should be logged and/or created for all transactions or only for sampled transactions.

valid values

All

(Default) Log or create the Trace ID for all transactions.

SampledOnly

Log or create the Trace ID only for sampled transactions.

history

Added in 3.8.0 release.

example

<add key="LoggedTraceId" value="All" />

TriggerTrace

supported .NET agent versions

.NET Agent

config option

TriggerTrace

description

An optional configuration to enable trigger trace functionality.

valid values

Disabled, Enabled. Default: Enabled.

history

Added in 3.9.0 release.

example

<add key="TriggerTrace" value="Enabled" />

ProxyUrl

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

ProxyUrl

environment variable

APPOPTICS_PROXY

description

An optional configuration that can be used to connect through a proxy; this option can be set in the configuration file ProxyUrl element or via the environment variable APPOPTICS_PROXY. Note that while HTTP is the only type of connection supported between the agent and proxy (hence only http:// is allowed in the schema of the config value), the agent traffic to AppOptics is still encrypted using SSL/TLS.

valid values

Proxy that requires Basic Authentication: http://<username>:<password>@<proxy-host>:<proxy-port>

Proxy that does not require authentication: http://<proxy-host>:<proxy-port>

It is recommended to use the agent-specific configuration. However, the agent's underlying network library will use a system-wide proxy defined in the environment variables grpc_proxy, https_proxy or http_proxy if agent-specific configuration is not set. Refer to gRPC environment variables for more information.

Default: Disabled.

history

Added in 4.0.0 release.

example

<add key="ProxyUrl" value="http://user:password@my-proxy:3128" />

<add key="ProxyUrl" value="http://my-proxy:3128" />

EventViewerLogLevel

supported .NET agent versions

.NET Agent (Windows only)

config option

EventViewerLogLevel

description

Change the logging level for events recorded by the AppOptics Profiler into Application Event Log. This can be used to troubleshoot whether the agent is being successfully loaded on application startup.

valid values

In order of descending: Fatal, Error, Warning, Info, Debug, Trace, None.

Fatal

An error caused .NET instrumentation to stop. (Default value)

Error

Any error caused an instrumented trace to fail.

Warning

An issue such as an unexpected configuration value, but the .NET instrumentation can still generate traces.

Info

Logging items such as configuration settings that were loaded on start up.

Debug

Diagnostic information used by customer care to resolve technical issues.

Trace

Highest level of logging. Logs functions called, exception stack traces, etc.

None

No logging.

history

Added in 4.0.1 release.

example

<add key="EventViewerLogLevel" value="Fatal" />

AppOpticsHttpModule

supported .NET agent versions

.NET Agent (only applicable to .NET Framework)

config option

AppOpticsHttpModule

description

An optional configuration used to indicate if the AppOpticsHttpModule should be used to start and end traces. This setting is only applicable for application pools set to Integrated - Managed Pipeline Mode. The AppOptics HttpModule is always used for application pools set to Classic - Managed Pipeline Mode.

valid values

Disabled, Enabled. Default: Disabled

history

Added in 4.0.2 release.

example

<add key="AppOpticsHttpModule" value="Enabled" />

MaximumQueryLength

supported .NET agent versions

.NET Agent

config option

MaximumQueryLength

description

Optional configuration: The maximum length for the Query value reported in database spans.

valid values

The configured length must be between 2048 and 128000.

history

Introduced in 4.0.3 .NET instrumentation

example

<add key="MaximumQueryLength" value="2048" />

IISInstrumentation

supported .NET agent versions

.NET Agent

config option

IISInstrumentation

description

Optional configuration: Used to indicate if IIS Instrumentation should be enabled or disabled.

valid values

Disabled

IIS Instrumentation is disabled for .NET Framework and .NET Core/5+.

DisabledIISFramework

IIS Instrumentation is disabled for .NET Framework

DisabledIISCore

IIS Instrumentation is disabled for .NET Core/5+

Enabled

IIS Instrumentation is enabled. The .NET Agent installer will set this value based on the installation components selected. (Default value)

history

Added in 4.2.0 Release

example

<add key="IISInstrumentation" value="Enabled" />

LogLevel.AppOptics.Instrumentation.ProfilerService

supported .NET agent versions

.NET Agent

config option

LogLevel.AppOptics.Instrumentation.ProfilerService

description

Log level for profiling snapshot feature.

valid values

None, Fatal, Error, Warning, Info, Debug, Trace. Default: Info

history

Added in 4.2.0 Release

example

<add key=" LogLevel.AppOptics.Instrumentation.ProfilerService" value="Info" />

LogLevel.AppOptics.Instrumentation.Internal

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

LogLevel.AppOptics.Instrumentation.Internal

description

Log level for the internal AppOptics unmanaged library used by the .NET Agent.

valid values

None, Fatal, Error, Warning, Info, Debug, Trace. Default: Info

history

Added in 4.2.0 Release

example

<add key=" LogLevel.AppOptics.Instrumentation.Internal " value="Info" />

LogLevel.AppOptics.Instrumentation.Internal.Collector

supported .NET agent versions

.NET Agent and .NET Core SDK

config option

LogLevel.AppOptics.Instrumentation.Internal.Collector

description

Log level for the communication between the .NET Agent and the AppOptics server, known as the AppOptics collector.

valid values

None, Fatal, Error, Warning, Info, Debug, Trace. Default: Info

history

Added in 4.2.0 Release

example

<add key=" LogLevel.AppOptics.Instrumentation.Internal.Collector " value="Info" />

MvcInstrumentation

supported .NET agent versions

.NET Framework Agent

config option

MvcInstrumentation

Description

Optional configuration: Used to indicate if MVC Instrumentation should be enabled, MVC View instrumentation only or disabled.

valid values

Disabled

MVC Instrumentation and MVC View Instrumentation are disabled

MvcViewEnabled

Only MVC View Instrumentation is enabled

Enabled

MVC Instrumentation and MVC View Instrumentation are enabled. (Default value)

history

Added in 4.3.1 Release

example

<add key="MvcInstrumentation" value="MvcViewEnabled" />

RequestQueueThreshold

supported .NET agent versions

.NET Framework Agent

config option

RequestQueueThreshold

Description

Optional configuration. For traced requests, if the request queue length exceeds the configured threshold (value is in milliseconds), an error event will be reported as part of the trace. These request queue length threshold errors can be viewed on the Exceptions tab of AppOptics.

history

Added in 4.3.2 Release

example

<add key="RequestQueueThreshold" value="500" />

The scripts are not supported under any SolarWinds support program or service. The scripts are provided AS IS without warranty of any kind. SolarWinds further disclaims all warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The risk arising out of the use or performance of the scripts and documentation stays with you. In no event shall SolarWinds or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the scripts or documentation.