Probekit 使用两组规则来确定是否要对给定的方法执行检测:探针定义的目标指定部分中指定的规则以及启动应用程序时在“概要分析”对话框中作为过滤器指定的规则。即使未显式地指定目标指定和过滤器,它们也会对探针是否应用于给定的方法产生影响。
要将探针应用于给定的方法,这两组规则都必须将该方法标记为“包括”。
要确定一组规则是否包括该方法,Probekit 按排列顺序逐个地考虑每个规则,并根据该规则中的模式检查该方法的包名、类名和方法名。一旦找到匹配的规则,就会根据该规则将该方法标记为“包括”或“排除”。第一个匹配的规则确定了该方法的结果;找到第一个匹配的规则后,就不再检查其他规则。在每组规则末尾都有一个隐式的“全部包括”规则,因此,如果一组规则是空的,或者没有任何规则的模式与该方法匹配,就会包括该方法。
要对特定方法或一组方法进行探测,可以使用目标指定和/或过滤器:
- 目标指定适用于始终用于调查特定方法或一组方法的探针。要了解信息,请参阅探针目标指定。
- 过滤器适用探针与其目标的关系并不紧密的情况。要了解信息,请参阅收集探针数据:基本用法。
- 通过将目标指定与过滤器配合使用,可以十分灵活地应用探针。
例如,假定您编写了一个用于收集关于应用程序服务器上运行的 servlet 信息的探针。可以使用该探针的目标指定来指定该探针应该仅应用于称为 doPut 的方法:

注意,这些目标指定并不会限制要应用该探针的包或类。因此,该探针可以收集每个运行的类中每个 doPut 方法的数据。
但是,对于任何给定的运行,您通常仅想收集有关特定的类(例如 myServlet)中 doPut
方法的数据。要完成此任务,在启动应用程序时,请在“概要分析”对话框中设置过滤器:

此过滤器就绪并在探针本身中指定了目标规则之后,该运行将收集要调查的特定 doPut 方法的信息。通过在启动探针时指定过滤器中的另一个类,就可以对其他 doPut 方法重复使用此探针。