В Probekit применяются два набора правил, определяющих, нужно ли встраивать датчик в конкретный
метод: правила, указанные в параметрах целевых объектов в определении датчика, и правила, указанные в качестве
фильтров в окне Профилирование при запуске приложения. Решение о том, встраивается ли датчик в каждый
отдельно взятый метод, зависит от набора фильтров и целевых объектов, даже если они не были указаны явно.
Датчик встраивается в метод только в случае, если он прошел проверку обоими наборами правил.
При проверке датчика на соответствие набору правил для определенного метода Probekit проверяет правила по
одному в том порядке, в котором они указаны в списке. В процессе проверки имена пакета, класса и метода
сравниваются с шаблонами, указанными в правиле. Как только будет обнаружено совпадение, метод помечается как
прошедший или не прошедший проверку ("включить" или "исключить") в соответствии с тем действием, которое
указано в правиле. Проверка прекращается после обнаружения первого совпадения. В конце каждого набора
находится неявное правило "включить все", поэтому если набор правил пуст или если метод не соответствует ни
одному из шаблонов правил в списке, он считается прошедшим проверку и помечается действием "включить".
Для того чтобы встроить датчик в определенный метод или набор методов, можно воспользоваться целевыми объектами,
фильтрами или и тем, и другим:
- Определения целевых объектов удобно применять с датчиками, которые должны при любых
обстоятельствах собирать данные об определенном методе или определенном наборе методов. Дополнительные сведения приведены в разделе
Определение целевых объектов датчиков.
- Фильтры применяются в случаях, когда датчики не настолько близко связаны со своими
целевыми объектами. Дополнительные сведения приведены в разделе
Сбор данных с датчиков: основные операции.
- Одновременное применение целевых объектов и фильтров дает максимальную гибкость
управления датчиками.
Предположим, что некоторый датчик применяется для сбора информации о сервлетах,
выполняющихся на серверах приложений. В определении целевых объектов можно указать, что данный датчик
должен встраиваться только в методы doPut:

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

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