Возможности мониторинга плагина Astromkey для Android Gradle: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: « С помощью следующих параметров конфигурации вы можете настроить возможности монитори...»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:


 
С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга ЕдиногоАгента и точно настроить процесс автоинструментирования для этих функций.
С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга OneAgent и точно настроить процесс автоинструментирования для этих функций.


== Мониторинг действий пользователя ==
== Мониторинг действий пользователя ==
OneAgent создает действия пользователя на основе компонентов пользовательского интерфейса, которые инициируют эти действия, и автоматически объединяет данные о действиях пользователя с другими данными мониторинга, такими как информация о веб-запросах и сбоях. OneAgent продлевает время жизни действий пользователя, чтобы правильно объединять их с другими событиями, которые выполняются в фоновом потоке или сразу после действия пользователя.
ЕдиныйАгент создает действия пользователя на основе компонентов пользовательского интерфейса, которые инициируют эти действия, и автоматически объединяет данные о действиях пользователя с другими данными мониторинга, такими как информация о веб-запросах и сбоях. ЕдиныйАгент продлевает время жизни действий пользователя, чтобы правильно объединять их с другими событиями, которые выполняются в фоновом потоке или сразу после действия пользователя.


=== Настроить мониторинг действий пользователя ===
=== Настроить мониторинг действий пользователя ===
Вы можете настроить мониторинг действий пользователя с помощью свойств <code>timeout</code>и <code>maxDuration</code>. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью <code>userAction</code>блока .
Вы можете настроить мониторинг действий пользователя с помощью свойств <code>timeout</code>и <code>maxDuration</code>. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью <code>userAction</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 17: Строка 16:
     }
     }
  }</code>
  }</code>
С помощью этого <code>timeout</code>свойства вы можете настроить время, в течение которого OneAgent может добавлять другие события к вновь созданному действию пользователя. При обнаружении другого взаимодействия с пользователем OneAgent прекращает добавлять события к действию пользователя предыдущего взаимодействия, независимо от настроенного <code>timeout</code>значения. Вместо этого OneAgent добавляет события только к действию пользователя из текущего взаимодействия с пользователем.
С помощью этого <code>timeout</code>свойства вы можете настроить время, в течение которого ЕдиныйАгент может добавлять другие события к вновь созданному действию пользователя. При обнаружении другого взаимодействия с пользователем ЕдиныйАгент прекращает добавлять события к действию пользователя предыдущего взаимодействия, независимо от настроенного <code>timeout</code>значения. Вместо этого ЕдиныйАгент добавляет события только к действию пользователя из текущего взаимодействия с пользователем.


По <code>timeout</code>истечении периода времени OneAgent проверяет, есть ли открытые события, и ждет завершения этих событий. С помощью <code>maxDuration</code>свойства вы можете настроить максимальную продолжительность этих действий пользователя. Если открытое событие, например веб-запрос, все еще не завершено по истечении этого периода, OneAgent удаляет эти события из действия пользователя и закрывает действие пользователя с соответствующим значением времени окончания.
По <code>timeout</code>истечении периода времени ЕдиныйАгент проверяет, есть ли открытые события, и ждет завершения этих событий. С помощью <code>maxDuration</code>свойства вы можете настроить максимальную продолжительность этих действий пользователя. Если открытое событие, например веб-запрос, все еще не завершено по истечении этого периода, ЕдиныйАгент удаляет эти события из действия пользователя и закрывает действие пользователя с соответствующим значением времени окончания.


Укажите значение для обоих свойств в миллисекундах. Значение свойства <code>maxDuration</code>должно быть равно или больше значения свойства <code>timeout</code>.
Укажите значение для обоих свойств в миллисекундах. Значение свойства <code>maxDuration</code>должно быть равно или больше значения свойства <code>timeout</code>.
Строка 37: Строка 36:
<code>timeout</code>Для каждого свойства и можно настроить только одно значение <code>maxDuration</code>, и эти значения должны соответствовать всем действиям пользователя на всех устройствах.
<code>timeout</code>Для каждого свойства и можно настроить только одно значение <code>maxDuration</code>, и эти значения должны соответствовать всем действиям пользователя на всех устройствах.


OneAgent также сообщает о действиях пользователя, которые не содержат дочерних событий. Чтобы отказаться от таких действий пользователя, используйте <code>emptyActions</code>свойство.
ЕдиныйАгент также сообщает о действиях пользователя, которые не содержат дочерних событий. Чтобы отказаться от таких действий пользователя, используйте <code>emptyActions</code>свойство.


=== Отключить мониторинг действий пользователя ===
=== Отключить мониторинг действий пользователя ===
Вы можете полностью отключить мониторинг действий пользователя с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство.
Вы можете полностью отключить мониторинг действий пользователя с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство.
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 52: Строка 51:
Плагин автоматически обрабатывает следующие слушатели и методы:
Плагин автоматически обрабатывает следующие слушатели и методы:


* Андроид
* Android
** <code>android.view.View$OnClickListener</code>
** <code>android.view.View$OnClickListener</code>
** <code>android.widget.AdapterView$OnItemClickListener</code>
** <code>android.widget.AdapterView$OnItemClickListener</code>
Строка 66: Строка 65:


Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри <code>sensors</code>блока .
Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри <code>sensors</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 79: Строка 78:


=== Именование действий пользователя ===
=== Именование действий пользователя ===
Для создания имен действий пользователя OneAgent захватывает заголовок элемента управления из различных атрибутов в зависимости от используемого прослушивателя или метода. Подробнее см. в таблице ниже.
Для создания имен действий пользователя ЕдиныйАгент захватывает заголовок элемента управления из различных атрибутов в зависимости от используемого прослушивателя или метода. Подробнее см. в таблице ниже.
{| class="wikitable"
{| class="wikitable"
!Слушатель или метод
!Слушатель или метод
Строка 111: Строка 110:


=== Маскировать действия пользователя ===
=== Маскировать действия пользователя ===
Плагин Dynatrace для Android Gradle версии 8.249+
Плагин Ключ-АСТРОМ для Android Gradle версии 8.249+


По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как <code>Touch on Account 123456</code>.
По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как <code>Touch on Account 123456</code>.


Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. OneAgent заменит все <code>Touch on <control title></code>имена действий именем класса элемента управления, к которому прикоснулся пользователь, например:
Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. ЕдиныйАгент заменит все <code>Touch on <control title></code>имена действий именем класса элемента управления, к которому прикоснулся пользователь, например:


* <code>Touch on Account 123456</code>><code>Touch on Button</code>
* <code>Touch on Account 123456</code>><code>Touch on Button</code>
Строка 122: Строка 121:


Вы можете включить маскирование действий пользователя с помощью <code>namePrivacy</code>свойства UserAction DSL .
Вы можете включить маскирование действий пользователя с помощью <code>namePrivacy</code>свойства UserAction DSL .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 137: Строка 136:


=== Изменить действия пользователя ===
=== Изменить действия пользователя ===
OneAgent для Android создает действия пользователя на основе взаимодействия пользователей вашего приложения. Эти действия отличаются от настраиваемых действий и иногда называются ''автоматически сгенерированными действиями'' . Мы также называем их ''действиями пользователя'' .
ЕдиныйАгент для Android создает действия пользователя на основе взаимодействия пользователей вашего приложения. Эти действия отличаются от настраиваемых действий и иногда называются ''автоматически сгенерированными действиями'' . Мы также называем их ''действиями пользователя'' .


Вы можете изменить или даже отменить действия пользователя.
Вы можете изменить или даже отменить действия пользователя.
Строка 144: Строка 143:


==== Изменить конкретное действие пользователя ====
==== Изменить конкретное действие пользователя ====
С помощью <code>Dynatrace.modifyUserAction</code>вы можете изменить текущее действие пользователя. Вы можете изменить имя действия пользователя и сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.
С помощью <code>Astromkey.modifyUserAction</code>вы можете изменить текущее действие пользователя. Вы можете изменить имя действия пользователя и сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.


Метод <code>Dynatrace.modifyUserAction</code>принимает реализацию в <code>UserActionModifier</code>качестве параметра, который предоставляет вам текущий изменяемый <code>ModifiableUserAction</code>объект.
Метод <code>Astromkey.modifyUserAction</code>принимает реализацию в <code>UserActionModifier</code>качестве параметра, который предоставляет вам текущий изменяемый <code>ModifiableUserAction</code>объект.


Разрешенные операции над этим объектом действий пользователя:
Разрешенные операции над этим объектом действий пользователя:
Строка 155: Строка 154:
* <code>reportValue</code>
* <code>reportValue</code>
* <code>reportError</code>
* <code>reportError</code>
* OneAgent для Android версии 8.241+ <code>cancel</code>
* ЕдиныйАгент для Android версии 8.241+ <code>cancel</code>


Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать <code>Dynatrace.modifyUserAction</code>внутри инструментированного метода прослушивателя и не вызывать этот метод из другого потока.
Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать <code>Astromkey.modifyUserAction</code>внутри инструментированного метода прослушивателя и не вызывать этот метод из другого потока.


В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию.
В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию.
Строка 165: Строка 164:
         int result = calc();
         int result = calc();
         // we use Java 8 language features here. You can also use anonymous classes instead of lambdas
         // we use Java 8 language features here. You can also use anonymous classes instead of lambdas
         Dynatrace.modifyUserAction(userAction -> {
         Astromkey.modifyUserAction(userAction -> {
             userAction.setActionName("Click on Calculate");
             userAction.setActionName("Click on Calculate");
             userAction.reportValue("Calculated result", result);
             userAction.reportValue("Calculated result", result);
Строка 175: Строка 174:


==== Изменить любое действие пользователя ====
==== Изменить любое действие пользователя ====
OneAgent для Android версии 8.241+
ЕдиныйАгент для Android версии 8.241+


Вы можете изменить действия пользователя через <code>Dynatrace.modifyUserAction</code>. Однако вы можете сделать это только для определенного действия пользователя, и обычно вы должны знать, открыто ли это действие пользователя или нет.
Вы можете изменить действия пользователя через <code>Astromkey.modifyUserAction</code>. Однако вы можете сделать это только для определенного действия пользователя, и обычно вы должны знать, открыто ли это действие пользователя или нет.


Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.
Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.


Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. <code>UserActionModifier</code>устанавливается один раз при запуске OneAgent с помощью <code>DynatraceConfigurationBuilder#withAutoUserActionModifier</code>метода. После этого он вызывается каждый раз, когда OneAgent создает действие пользователя. Он не вызывается для пользовательских действий .
Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. <code>UserActionModifier</code>устанавливается один раз при запуске ЕдиныйАгент с помощью <code>AstromkeyConfigurationBuilder#withAutoUserActionModifier</code>метода. После этого он вызывается каждый раз, когда ЕдиныйАгент создает действие пользователя. Он не вызывается для пользовательских действий .


Вы можете зарегистрировать обратный вызов только при запуске OneAgent, поэтому вам нужно запускать OneAgent вручную .
Вы можете зарегистрировать обратный вызов только при запуске ЕдиныйАгент, поэтому вам нужно запускать ЕдиныйАгент вручную .


Разрешены следующие операции:
Разрешены следующие операции:
Строка 194: Строка 193:
* <code>cancel</code>
* <code>cancel</code>


  <code>Dynatrace.startup(this, new DynatraceConfigurationBuilder("<YourApplicationID>", "<ProvidedBeaconUrl>")
  <code>Astromkey.startup(this, new AstromkeyConfigurationBuilder("<YourApplicationID>", "<ProvidedBeaconUrl>")
     .withAutoUserActionModifier(modifiableAction -> {
     .withAutoUserActionModifier(modifiableAction -> {
         if (modifiableAction.getActionName().contains("account ID")) {
         if (modifiableAction.getActionName().contains("account ID")) {
Строка 205: Строка 204:


=== Библиотека привязки данных Android ===
=== Библиотека привязки данных Android ===
Плагин Dynatrace для Android Gradle может управлять логикой событий и прослушивателями, которые определяются с помощью функции привязки данных . Если ваше приложение содержит код, аналогичный официальному примеру привязки прослушивателя , подключаемый модуль может определить правильный байт-код и обработать его.
Плагин Astromkey для Android Gradle может управлять логикой событий и прослушивателями, которые определяются с помощью функции привязки данных . Если ваше приложение содержит код, аналогичный официальному примеру привязки прослушивателя , подключаемый модуль может определить правильный байт-код и обработать его.
  <code><?xml version="1.0" encoding="utf-8"?>
  <code><?xml version="1.0" encoding="utf-8"?>
  <layout xmlns:android="<nowiki>http://schemas.android.com/apk/res/android</nowiki>">
  <layout xmlns:android="<nowiki>http://schemas.android.com/apk/res/android</nowiki>">
Строка 232: Строка 231:
     // Do something in response to button click
     // Do something in response to button click
  }</code>
  }</code>
Плагин Dynatrace для Android Gradle не может определить взаимосвязь между кнопкой в ​​XML-файле макета и методом <code>sendMessage</code>в действии. Однако, когда ваше приложение использует библиотеку Appcompat и ваши действия получены из <code>androidx.appcompat.app.AppCompatActivity</code>, подключаемый модуль автоматически использует логику делегирования библиотеки Appcompat. Если вы не используете библиотеку Appcompat, вы должны вручную настроить эти методы обработчика событий, поскольку подключаемый модуль не может определить связь между байт-кодом и XML-файлом макета.
Плагин Astromkey для Android Gradle не может определить взаимосвязь между кнопкой в ​​XML-файле макета и методом <code>sendMessage</code>в действии. Однако, когда ваше приложение использует библиотеку Appcompat и ваши действия получены из <code>androidx.appcompat.app.AppCompatActivity</code>, подключаемый модуль автоматически использует логику делегирования библиотеки Appcompat. Если вы не используете библиотеку Appcompat, вы должны вручную настроить эти методы обработчика событий, поскольку подключаемый модуль не может определить связь между байт-кодом и XML-файлом макета.


== Мониторинг веб-запросов ==
== Мониторинг веб-запросов ==
Плагин Dynatrace для Android Gradle может автоматически обрабатывать и помечать ваши веб-запросы. Для отслеживания веб-запросов OneAgent добавляет <code>x-dynatrace</code>в веб-запрос заголовок HTTP с уникальным значением. Это необходимо для сопоставления данных мониторинга на стороне сервера с соответствующим мобильным веб-запросом.
Плагин Astromkey для Android Gradle может автоматически обрабатывать и помечать ваши веб-запросы. Для отслеживания веб-запросов ЕдиныйАгент добавляет <code>x-astromkey</code>в веб-запрос заголовок HTTP с уникальным значением. Это необходимо для сопоставления данных мониторинга на стороне сервера с соответствующим мобильным веб-запросом.


Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC.
Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC.
Строка 241: Строка 240:
=== Настроить мониторинг веб-запросов ===
=== Настроить мониторинг веб-запросов ===
Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью <code>webRequests</code>блока .
Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью <code>webRequests</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 250: Строка 249:
     }
     }
  }</code>
  }</code>
Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, OneAgent добавляет веб-запрос в качестве дочернего события к отслеживаемому действию пользователя. OneAgent автоматически усекает запрос из захваченного URL-адреса и сообщает только имя домена и путь ваших веб-запросов.
Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет веб-запрос в качестве дочернего события к отслеживаемому действию пользователя. ЕдиныйАгент автоматически усекает запрос из захваченного URL-адреса и сообщает только имя домена и путь ваших веб-запросов.


=== Отключить мониторинг веб-запросов ===
=== Отключить мониторинг веб-запросов ===
Вы можете полностью отключить мониторинг веб-запросов с помощью этого <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство.
Вы можете полностью отключить мониторинг веб-запросов с помощью этого <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство.
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 276: Строка 275:


Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри <code>sensors</code>блока .
Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри <code>sensors</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 289: Строка 288:


== Мониторинг жизненного цикла ==
== Мониторинг жизненного цикла ==
При мониторинге жизненного цикла OneAgent собирает следующие данные:
При мониторинге жизненного цикла ЕдиныйАгент собирает следующие данные:


* Событие запуска приложения : измеряет промежуток времени от <code>Application.onCreate()</code>до <code>Activity.onPostResume()</code>первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено .
* Событие запуска приложения : измеряет промежуток времени от <code>Application.onCreate()</code>до <code>Activity.onPostResume()</code>первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено .
Строка 297: Строка 296:
=== Настройка мониторинга жизненного цикла ===
=== Настройка мониторинга жизненного цикла ===
События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью <code>lifecycle</code>блока .
События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью <code>lifecycle</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 309: Строка 308:
=== Отключить мониторинг жизненного цикла ===
=== Отключить мониторинг жизненного цикла ===
Вы можете отключить мониторинг жизненного цикла с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство <code>enabled</code>.
Вы можете отключить мониторинг жизненного цикла с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство <code>enabled</code>.
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 319: Строка 318:
=== Датчики мониторинга жизненного цикла ===
=== Датчики мониторинга жизненного цикла ===
Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри <code>sensors</code>блока .
Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри <code>sensors</code>блока .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 332: Строка 331:


== Отчеты о сбоях ==
== Отчеты о сбоях ==
OneAgent фиксирует все необработанные исключения и ошибки и немедленно отправляет отчет о сбое на сервер. Отчет о сбое Android включает время возникновения и полную трассировку стека исключения.
ЕдиныйАгент фиксирует все необработанные исключения и ошибки и немедленно отправляет отчет о сбое на сервер. Отчет о сбое Android включает время возникновения и полную трассировку стека исключения.


Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, OneAgent добавляет сбой как дочернее событие к отслеживаемому действию пользователя.
Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет сбой как дочернее событие к отслеживаемому действию пользователя.


Вы можете отключить отчеты о сбоях с помощью <code>crashReporting</code>свойства.
Вы можете отключить отчеты о сбоях с помощью <code>crashReporting</code>свойства.
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 346: Строка 345:


== Обнаружение ярости ==
== Обнаружение ярости ==
Плагин Dynatrace для Android Gradle версии 8.231+
Плагин Astromkey для Android Gradle версии 8.231+


Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. OneAgent определяет такое поведение как ярость.
Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. ЕдиныйАгент определяет такое поведение как ярость.


OneAgent может отслеживать только те события сенсорного экрана, которые обрабатываются компонентом <code>Activity</code>. Например, OneAgent не может отслеживать компоненты пользовательского интерфейса Android, которые имеют собственную логику обработки сенсорного экрана <code>Dialog</code>и <code>DreamService</code>.
ЕдиныйАгент может отслеживать только те события сенсорного экрана, которые обрабатываются компонентом <code>Activity</code>. Например, ЕдиныйАгент не может отслеживать компоненты пользовательского интерфейса Android, которые имеют собственную логику обработки сенсорного экрана <code>Dialog</code>и <code>DreamService</code>.


Вы можете деактивировать обнаружение касания ярости, используя <code>detectRageTaps</code>свойство BehavioralEvents DSL .
Вы можете деактивировать обнаружение касания ярости, используя <code>detectRageTaps</code>свойство BehavioralEvents DSL .
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 364: Строка 363:


== Мониторинг местоположения ==
== Мониторинг местоположения ==
Если этот параметр включен, OneAgent добавляет захваченные позиции конечных пользователей к данным мониторинга. Чтобы защитить конфиденциальность конечного пользователя, OneAgent фиксирует только три дробных цифры GPS-координат.
Если этот параметр включен, ЕдиныйАгент добавляет захваченные позиции конечных пользователей к данным мониторинга. Чтобы защитить конфиденциальность конечного пользователя, ЕдиныйАгент фиксирует только три дробных цифры GPS-координат.


Вы можете активировать функцию мониторинга местоположения с помощью <code>locationMonitoring</code>свойства.
Вы можете активировать функцию мониторинга местоположения с помощью <code>locationMonitoring</code>свойства.
  <code>dynatrace {
  <code>astromkey {
     configurations {
     configurations {
         sampleConfig {
         sampleConfig {
Строка 374: Строка 373:
     }
     }
  }</code>
  }</code>
OneAgent собирает только те данные о местоположении, которые уже обработаны в вашем приложении. OneAgent не запрашивает дополнительные данные о местоположении из Android SDK. Если ваше приложение не обрабатывает данные о местоположении, эта функция не включена. Когда мониторинг местоположения отключен или информация о местоположении недоступна, Dynatrace использует IP-адреса для определения местоположения пользователя.
ЕдиныйАгент собирает только те данные о местоположении, которые уже обработаны в вашем приложении. ЕдиныйАгент не запрашивает дополнительные данные о местоположении из Android SDK. Если ваше приложение не обрабатывает данные о местоположении, эта функция не включена. Когда мониторинг местоположения отключен или информация о местоположении недоступна, Ключ-АСТРОМ использует IP-адреса для определения местоположения пользователя.


Плагин поддерживает следующий прослушиватель местоположения:
Плагин поддерживает следующий прослушиватель местоположения:


* <code>android.location.LocationListener</code>
* <code>android.location.LocationListener</code>

Текущая версия на 14:11, 12 апреля 2023

С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга ЕдиногоАгента и точно настроить процесс автоинструментирования для этих функций.

Мониторинг действий пользователя

ЕдиныйАгент создает действия пользователя на основе компонентов пользовательского интерфейса, которые инициируют эти действия, и автоматически объединяет данные о действиях пользователя с другими данными мониторинга, такими как информация о веб-запросах и сбоях. ЕдиныйАгент продлевает время жизни действий пользователя, чтобы правильно объединять их с другими событиями, которые выполняются в фоновом потоке или сразу после действия пользователя.

Настроить мониторинг действий пользователя

Вы можете настроить мониторинг действий пользователя с помощью свойств timeoutи maxDuration. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью userActionблока .

astromkey {
    configurations {
        sampleConfig {
            userActions {
                // your user action monitoring configuration
            }
        }
    }
}

С помощью этого timeoutсвойства вы можете настроить время, в течение которого ЕдиныйАгент может добавлять другие события к вновь созданному действию пользователя. При обнаружении другого взаимодействия с пользователем ЕдиныйАгент прекращает добавлять события к действию пользователя предыдущего взаимодействия, независимо от настроенного timeoutзначения. Вместо этого ЕдиныйАгент добавляет события только к действию пользователя из текущего взаимодействия с пользователем.

По timeoutистечении периода времени ЕдиныйАгент проверяет, есть ли открытые события, и ждет завершения этих событий. С помощью maxDurationсвойства вы можете настроить максимальную продолжительность этих действий пользователя. Если открытое событие, например веб-запрос, все еще не завершено по истечении этого периода, ЕдиныйАгент удаляет эти события из действия пользователя и закрывает действие пользователя с соответствующим значением времени окончания.

Укажите значение для обоих свойств в миллисекундах. Значение свойства maxDurationдолжно быть равно или больше значения свойства timeout.

Свойство Значение по умолчанию Возможные значения
timeout 500 100 – 5000
maxDuration 60000 100 – 540000

timeoutДля каждого свойства и можно настроить только одно значение maxDuration, и эти значения должны соответствовать всем действиям пользователя на всех устройствах.

ЕдиныйАгент также сообщает о действиях пользователя, которые не содержат дочерних событий. Чтобы отказаться от таких действий пользователя, используйте emptyActionsсвойство.

Отключить мониторинг действий пользователя

Вы можете полностью отключить мониторинг действий пользователя с помощью enabledсвойства. В этом случае все остальные свойства игнорируются, поэтому enabledво избежание путаницы укажите только свойство.

astromkey {
    configurations {
        sampleConfig {
            userActions.enabled false
        }
    }
}

Датчики контроля действий пользователя

Плагин автоматически обрабатывает следующие слушатели и методы:

  • Android
    • android.view.View$OnClickListener
    • android.widget.AdapterView$OnItemClickListener
    • android.widget.AdapterView$OnItemSelectedListener
    • android.app.Activity.onOptionsItemSelected
    • android.view.MenuItem$OnMenuItemClickListener
  • AndroidX
    • androidx.viewpager.widget.ViewPager$OnPageChangeListener
    • androidx.swiperefreshlayout.widget.SwipeRefreshLayout$OnRefreshListener
  • Поддержка Android
    • android.support.v4.view.ViewPager$OnPageChangeListener
    • android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener

Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри sensorsблока .

astromkey {
    configurations {
        sampleConfig {
            userActions {
                sensors {
                    // fine-tune the sensors if necessary
                }
            }
        }
    }
}

Именование действий пользователя

Для создания имен действий пользователя ЕдиныйАгент захватывает заголовок элемента управления из различных атрибутов в зависимости от используемого прослушивателя или метода. Подробнее см. в таблице ниже.

Слушатель или метод Оцениваемый компонент
android.view.View$OnClickListener

android.widget.AdapterView$OnItemClickListener

android.widget.AdapterView$OnItemSelectedListener

Атрибуты оцениваются в следующем порядке:
  1. android:contentDescriptionатрибут
  2. android:textатрибут для TextViewкомпонентов на основе
  3. Имя класса
android.app.Activity.onOptionsItemSelected

android.view.MenuItem$OnMenuItemClickListener

getTitleдля пунктов меню
androidx.viewpager.widget.ViewPager$OnPageChangeListener

androidx.swiperefreshlayout.widget.SwipeRefreshLayout$OnRefreshListener

android.support.v4.view.ViewPager$OnPageChangeListener

android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener

Тип действия используется в качестве имени действия, так как компонент пользовательского интерфейса недоступен.

Маскировать действия пользователя

Плагин Ключ-АСТРОМ для Android Gradle версии 8.249+

По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как Touch on Account 123456.

Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. ЕдиныйАгент заменит все Touch on <control title>имена действий именем класса элемента управления, к которому прикоснулся пользователь, например:

  • Touch on Account 123456>Touch on Button
  • Touch on Transfer all amount>Touch on Switch
  • Touch on Account settings>Touch on ActionMenuItem

Вы можете включить маскирование действий пользователя с помощью namePrivacyсвойства UserAction DSL .

astromkey {
    configurations {
        sampleConfig {
            userActions {
                namePrivacy true
            }
        }
    }
}

Если вы хотите изменить имена только для определенных действий пользователя, используйте одну из следующих настроек:

  • Измените автоматически сгенерированные действия , чтобы изменить имена действий пользователя.
  • Установите правила именования (Настройки мобильного приложения > Правила именования ), чтобы настроить правила именования действий пользователя или правила извлечения.

Изменить действия пользователя

ЕдиныйАгент для Android создает действия пользователя на основе взаимодействия пользователей вашего приложения. Эти действия отличаются от настраиваемых действий и иногда называются автоматически сгенерированными действиями . Мы также называем их действиями пользователя .

Вы можете изменить или даже отменить действия пользователя.

Если вы хотите избежать захвата личной информации для всех действий пользователя одновременно, см. раздел Маскирование действий пользователя .

Изменить конкретное действие пользователя

С помощью Astromkey.modifyUserActionвы можете изменить текущее действие пользователя. Вы можете изменить имя действия пользователя и сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.

Метод Astromkey.modifyUserActionпринимает реализацию в UserActionModifierкачестве параметра, который предоставляет вам текущий изменяемый ModifiableUserActionобъект.

Разрешенные операции над этим объектом действий пользователя:

  • getActionName
  • setActionName
  • reportEvent
  • reportValue
  • reportError
  • ЕдиныйАгент для Android версии 8.241+ cancel

Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать Astromkey.modifyUserActionвнутри инструментированного метода прослушивателя и не вызывать этот метод из другого потока.

В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию.

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        int result = calc();
        // we use Java 8 language features here. You can also use anonymous classes instead of lambdas
        Astromkey.modifyUserAction(userAction -> {
            userAction.setActionName("Click on Calculate");
            userAction.reportValue("Calculated result", result);
        });
        showResult(result);
    }
});

Для пользовательского мобильного действия или мобильного действия пользователя, сгенерированного автоматически, максимальная длина имени составляет 250 символов.

Изменить любое действие пользователя

ЕдиныйАгент для Android версии 8.241+

Вы можете изменить действия пользователя через Astromkey.modifyUserAction. Однако вы можете сделать это только для определенного действия пользователя, и обычно вы должны знать, открыто ли это действие пользователя или нет.

Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.

Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. UserActionModifierустанавливается один раз при запуске ЕдиныйАгент с помощью AstromkeyConfigurationBuilder#withAutoUserActionModifierметода. После этого он вызывается каждый раз, когда ЕдиныйАгент создает действие пользователя. Он не вызывается для пользовательских действий .

Вы можете зарегистрировать обратный вызов только при запуске ЕдиныйАгент, поэтому вам нужно запускать ЕдиныйАгент вручную .

Разрешены следующие операции:

  • getActionName
  • setName
  • reportEvent
  • reportValue
  • reportError
  • cancel
Astromkey.startup(this, new AstromkeyConfigurationBuilder("<YourApplicationID>", "<ProvidedBeaconUrl>")
    .withAutoUserActionModifier(modifiableAction -> {
        if (modifiableAction.getActionName().contains("account ID")) {
            // remove personal information from the user action name
            modifiableAction.setActionName("Touch on Account");
        }
    })
    .buildConfiguration());

Для пользовательского мобильного действия или мобильного действия пользователя, сгенерированного автоматически, максимальная длина имени составляет 250 символов.

Библиотека привязки данных Android

Плагин Astromkey для Android Gradle может управлять логикой событий и прослушивателями, которые определяются с помощью функции привязки данных . Если ваше приложение содержит код, аналогичный официальному примеру привязки прослушивателя , подключаемый модуль может определить правильный байт-код и обработать его.

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable name="task" type="com.android.example.Task" />
        <variable name="presenter" type="com.android.example.Presenter" />
    </data>
    <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent">
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:onClick="@{() -> presenter.onSaveClick(task)}" />
    </LinearLayout>
</layout>

Определить обработчик событий через XML-атрибут

В следующем примере из документации Android показано, как можно определить обработчик событий с помощью XML-атрибутов.

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" />
/** Called when the user touches the button */
public void sendMessage(View view) {
    // Do something in response to button click
}

Плагин Astromkey для Android Gradle не может определить взаимосвязь между кнопкой в ​​XML-файле макета и методом sendMessageв действии. Однако, когда ваше приложение использует библиотеку Appcompat и ваши действия получены из androidx.appcompat.app.AppCompatActivity, подключаемый модуль автоматически использует логику делегирования библиотеки Appcompat. Если вы не используете библиотеку Appcompat, вы должны вручную настроить эти методы обработчика событий, поскольку подключаемый модуль не может определить связь между байт-кодом и XML-файлом макета.

Мониторинг веб-запросов

Плагин Astromkey для Android Gradle может автоматически обрабатывать и помечать ваши веб-запросы. Для отслеживания веб-запросов ЕдиныйАгент добавляет x-astromkeyв веб-запрос заголовок HTTP с уникальным значением. Это необходимо для сопоставления данных мониторинга на стороне сервера с соответствующим мобильным веб-запросом.

Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC.

Настроить мониторинг веб-запросов

Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью webRequestsблока .

astromkey {
    configurations {
        sampleConfig {
            webRequests {
                // your web request monitoring configuration
            }
        }
    }
}

Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет веб-запрос в качестве дочернего события к отслеживаемому действию пользователя. ЕдиныйАгент автоматически усекает запрос из захваченного URL-адреса и сообщает только имя домена и путь ваших веб-запросов.

Отключить мониторинг веб-запросов

Вы можете полностью отключить мониторинг веб-запросов с помощью этого enabledсвойства. В этом случае все остальные свойства игнорируются, поэтому enabledво избежание путаницы укажите только свойство.

astromkey {
    configurations {
        sampleConfig {
            webRequests.enabled false
        }
    }
}

Датчики мониторинга веб-запросов

Поддерживаются следующие платформы HTTP:

  • HttpURLConnection
  • OkHttp : только версии 3 и 4
  • HTTP-клиент Apache: только встроенный в Android HTTP-клиент версии 1.

1

В Android устарела клиентская библиотека Apache HTTP (см. раздел Изменения в Android 6.0 и Изменения в Android 9.0 ), поэтому используйте другую структуру HTTP. Новый HTTP-клиент Apache версии 5 не поддерживается. Поддерживаются старые версии HTTP-клиента Apache, поскольку они предоставляют тот же интерфейс.

Если ваша библиотека веб-запросов основана на одной из этих поддерживаемых платформ, внутренние классы библиотеки инструментируются автоматически. Например, Retrofit версии 2 основан на OkHttp, поэтому все веб-запросы Retrofit обрабатываются автоматически.

Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри sensorsблока .

astromkey {
    configurations {
        sampleConfig {
            webRequests {
                sensors {
                    // fine-tune the sensors if necessary
                }
            }
        }
    }
}

Мониторинг жизненного цикла

При мониторинге жизненного цикла ЕдиныйАгент собирает следующие данные:

  • Событие запуска приложения : измеряет промежуток времени от Application.onCreate()до Activity.onPostResume()первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено .
  • Отображение активности : измеряет временной интервал от Activity.onCreate(Bundle)до Activity.onPostResume()и сообщает время каждого введенного состояния жизненного цикла активности.
  • Повторное отображение действия : измеряет время, необходимое для повторного отображения ранее созданного действия, и сообщает время каждого состояния жизненного цикла действия, которое было введено до тех пор, пока действие снова не станет видимым.

Настройка мониторинга жизненного цикла

События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью lifecycleблока .

astromkey {
    configurations {
        sampleConfig {
            lifecycle {
                // your lifecycle monitoring configuration
            }
        }
    }
}

Отключить мониторинг жизненного цикла

Вы можете отключить мониторинг жизненного цикла с помощью enabledсвойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство enabled.

astromkey {
    configurations {
        sampleConfig {
            lifecycle.enabled false
        }
    }
}

Датчики мониторинга жизненного цикла

Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри sensorsблока .

astromkey {
    configurations {
        sampleConfig {
            lifecycle {
                sensors {
                    // fine-tune the sensors if necessary
                }
            }
        }
    }
}

Отчеты о сбоях

ЕдиныйАгент фиксирует все необработанные исключения и ошибки и немедленно отправляет отчет о сбое на сервер. Отчет о сбое Android включает время возникновения и полную трассировку стека исключения.

Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет сбой как дочернее событие к отслеживаемому действию пользователя.

Вы можете отключить отчеты о сбоях с помощью crashReportingсвойства.

astromkey {
    configurations {
        sampleConfig {
            crashReporting false
        }
    }
}

Обнаружение ярости

Плагин Astromkey для Android Gradle версии 8.231+

Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. ЕдиныйАгент определяет такое поведение как ярость.

ЕдиныйАгент может отслеживать только те события сенсорного экрана, которые обрабатываются компонентом Activity. Например, ЕдиныйАгент не может отслеживать компоненты пользовательского интерфейса Android, которые имеют собственную логику обработки сенсорного экрана Dialogи DreamService.

Вы можете деактивировать обнаружение касания ярости, используя detectRageTapsсвойство BehavioralEvents DSL .

astromkey {
    configurations {
        sampleConfig {
            behavioralEvents {
                detectRageTaps false
            }
        }
    }
}

Мониторинг местоположения

Если этот параметр включен, ЕдиныйАгент добавляет захваченные позиции конечных пользователей к данным мониторинга. Чтобы защитить конфиденциальность конечного пользователя, ЕдиныйАгент фиксирует только три дробных цифры GPS-координат.

Вы можете активировать функцию мониторинга местоположения с помощью locationMonitoringсвойства.

astromkey {
    configurations {
        sampleConfig {
            locationMonitoring true
        }
    }
}

ЕдиныйАгент собирает только те данные о местоположении, которые уже обработаны в вашем приложении. ЕдиныйАгент не запрашивает дополнительные данные о местоположении из Android SDK. Если ваше приложение не обрабатывает данные о местоположении, эта функция не включена. Когда мониторинг местоположения отключен или информация о местоположении недоступна, Ключ-АСТРОМ использует IP-адреса для определения местоположения пользователя.

Плагин поддерживает следующий прослушиватель местоположения:

  • android.location.LocationListener