How do I use advanced settings for iOS auto-instrumentation?

Auto-instrumentation for iOS instruments your iOS apps for monitoring with OneAgent. The instrumentation process is an automated way of adding OneAgent to an app without manually modifying its source code. An auto-instrumented app is equivalent to an app that is manually instrumented for basic data collection. This level of instrumentation provides visibility into the real user experience provided by your app. It also enables crash detection and performance monitoring related to application startup and web request response times.

Auto-instrumentation features

The following features are automatically instrumented:

  • Automatic OneAgent startup
  • Lifecycle data
  • Crash reporting
  • Web request tagging
  • Web request events execution time and data sent are reported, 3rd party requests are identified)
  • Web views
  • Automatic user action detection (detection and timing of user actions, such as button clicks, view actions, and other controls)

All these features are enabled by default. You can disable or refine auto-instrumentation functions by adding configuration keys (see below) to your application’s Info.plist file.

Auto-instrumentation occurs during runtime. The resulting app is instrumented to the levels configured in the app's Info.plist file.

You can combine manual instrumentation with auto-instrumentation to capture additional details. For example, you may want to manually instrument certain user-defined actions (and report values and events).

Configuration keys

Configuration keys are essentially properties you can set to your preferences for auto-instrumentation. Add the keys to your app's Info.plist file, as required to fine-tune auto-instrumentation.

To keep your Info.plist file clean, move all OneAgent-related DTX keys to a Dynatrace.plist file and add the Dynatrace.plist to the Copy Bundle Resources build phase. The Dynatrace.plist file needs to be at the root of your resources bundle, so it should be created in the same location as the Info.plist file.

The following table includes all configuration keys for iOS auto-instrumentation.

Limitations

  • An auto-instrumented application can't carry out functions like Dynatrace.shutdown() or Dynatrace .flushEvents(). You can manually insert these methods and other user-defined actions and events before performing auto-instrumentation.

  • There are two controls that don't yet create auto user actions:

    • Gestures
    • Certain UIBarButton items, including custom UIBarButton items added to the navigation bar by storyboard (such as info) that use segues to transition to other views.