该页面应帮助您调整配置以跟踪基于Web的事务。可以在apminsight.conf文件中配置这些设置。确保此文件在您已部署APM Insight代理的文件夹中。
下表说明了所有配置:
配置 | 描述 | 默认值 | |
---|---|---|---|
application.name* |
示例: myonlineshopping.com
|
My Application |
|
apm.host* |
示例: mymachine.mydomain.com |
||
apm.protocol.https |
|
false |
|
apm.port* |
示例: 9090 |
||
behind.proxy |
|
false |
|
agent.server.port* |
|
||
apdex.threshold |
|
0.5 (Second) |
|
sql.capture.enabled |
|
true |
|
transaction.trace.enabled |
|
true |
|
transaction.trace.threshold |
|
2 (Seconds) |
|
transaction.trace.sql.parametrize |
|
true |
|
transaction.trace.sql.stacktrace.threshold |
|
3 (Second) |
|
webtransaction.trace.input.params.record |
|
false |
|
webtransaction.trace.input.params.ignore |
|
password, authKey |
|
webtransaction.naming.use.requesturl |
|
||
webtransaction.encoding.charset |
|
||
transaction.skip.listening |
|
*.css, *.js, *.gif, *.jpg, *.jpeg, *.bmp, *.png |
|
transaction.tracking.request.interval |
|
1 (request) |
|
include.components |
注意:默认情况下,指定的软件包名称将包含在检测中,您无需在custom_instrumentation.conf中重复此操作 |
||
apminsight.log.dir |
|
||
apminsight.log.level |
|
INFO (level) |
|
autoupgrade.enabled |
|
false |
如果为选项指定了任何无效值,则APM Insight将使用其默认出厂值。除下面列出的选项外,所有其他选项都可以在运行时更改。
注意: 标有*的选项为必填项。如果未提供任何必需项,则无法初始化/启动代理。但是,Application Server(部署代理的位置)将正常启动。 |
除Web事务外,大多数应用程序还运行后台任务以执行各种任务,例如维护,计划程序,消息传递等。APMInsight还获取这些事务并将其列出在APM Insight仪表板的后台选项卡中。
注意:此功能仅在.Net和Java代理中可用 |
为了使代理能够跟踪后台事务,必须在background_transaction.conf文件中启用它。下面说明后台事务的配置。
配置 | 描述 | 默认值 |
---|---|---|
bgtransaction.tracking.enabled |
|
true |
bgtransaction.trace.enabled |
|
true |
bgtransaction.trace.threshold |
|
5 (seconds) |
bgtransaction.tracking.request.interval |
|
Java(Java)为1(请求),. Net代理为5(请求) |
注意:
|
APM Insight代理可对几个Web组件和框架的预定义类进行检测,以提供对应用程序的完美洞察。APM Insight还提供了一个用于自定义仪器,您选择的类别的选项。定制工包含助于提供对应用程序的更广泛的了解,在此可以更轻松地跟踪应用程序中特定功能或模块的性能。
Java代理提供了两种自定义检测应用程序的方法:
1.使用配置文件
要检测您选择的类,请按照以下指定的格式在custom_instrumentation.conf文件中指定类名称。
Fully/qualified/ClassName : Methods to be instrumented
使用逗号(,)作为多个条目的方法分隔符。如果要检测的方法留为空白,则将检测指定类下的所有方法。如果存在需要检测的重载方法,则将检测所有重载方法。每个条目必须在新行中给出。
示例:
如果需要检测包中的所有类,请如下所述指定包名称。
package_name/.* :
示例:
不建议将包指定为输入,因为代理将检测所有类中的所有方法及其下的所有包。这些可能会增加CPU和内存使用量的开销。同样,将有许多最不受欢迎的方法,这些方法也会使研究踪迹变长。虽然可以用来研究代码流,但不可取。
注意: 需要重新启动应用程序服务器才能使更改生效 |
2.使用JAVA注释
使用Java批注,APM Insight提供了一种更简便的方法来自定义检测应用程序类和方法。使用Java批注,可以为事务定义自定义名称,还可以分配自定义组件。
注意:此功能可从代理版本2.2获得
先决条件
有两个可用于自定义工具的注释:
ApmTracker-可以在任何类和方法上使用,将对其进行检测并包括在跟踪中。
ApmRootTracker-可以在可能是事务执行起点的方法上使用。
此注释可以在类和方法上使用。当在类上使用时,属性将应用于该类中的所有方法。
属性:
component- Default Value: POJO (Plain Java Object) |
为带注释的元素定义组件名称。它是一个可选属性。
示例:
Case 1: Usage on Class @ApmTracker public class Category { ... } |
Case 2: @ApmTracker(component="payment" public class PaymentProcessor { ... } |
Case 3: Usage on Methods @ApmTracker(component="FetchBrand") |
该注释只能在方法上使用。如果带注释的方法是服务器上用于处理事务的第一个方法,则使用txnName属性的值重命名事务。否则,它被视为常规方法调用,并包含在跟踪中。
属性:
txnName - Mandatory attribute. |
此属性的值用于命名调用ApmRootTracker注释方法的事务。
component - Default Value: POJO |
为带注释的元素定义组件名称。它是一个可选属性。
示例:
public class AppService { @ApmRootTracker(txnName="Service-Initialisation") public void init() { ... } } |
动态事务名称对许多应用程序越来越熟悉,因此很难真正跟踪应用程序的性能。动态事务是应用程序中包含单个URL的Web事务,但是每次调用时都会附加唯一的字母数字标识符,从而使Web事务名称本身看起来有所不同。跟踪这些单独的URL是一项艰巨的任务。在这里,将相似事务分组的功能将有助于将这些动态事务分组到需要监控的实际URL中。
打开编辑配置用户界面,选择事务合并选项卡,然后添加要合并的事务模式(如手动步骤3所示)。
为此,请手动执行以下步骤:
注意:不需要重新启动服务即可使此配置更改生效。更改将在下一分钟之后生效。 |
示例:
包括Web事务的URL:
ebay/shop/user/4534634 ebay/shop/user/1380284
ebay/shop/0278734/chocolate/orion
ebay/shop/0278734/chocolate/snickers
ebay/shop/3847553/stationary/pencil
ebay/shop/9734944/stationary/pen
如何在transaction_merge_patterns.conf中指定
ebay/shop/.*/chocolate/.*=ebay/shop/chocolate
ebay/shop/.*/stationary/.*=ebay/shop/stationary
ebay/shop/user/.*=ebay/shop/users
URL的正则表达式= new_name_to_be_assigned
示例:
ruby/shop/item/laptops/.*=shop/laptops
ruby/shop/item/.*/dell/.*=shop/item/dell
.*/cart/purchase=shop/purchase