APM Insight代理配置选项
该页面应帮助您调整配置以跟踪基于Web的事务。可以在apminsight.conf文件中配置这些设置。确保此文件在您已部署APM Insight代理的文件夹中。
下表说明了所有配置:
| 配置 | 描述 | 默认值 |
|---|
application.name* | - 指定所需的应用程序名称以显示在Applications Manager中
- 如果您的应用程序有多个实例,并且希望将它们分组,请在所有已安装的APM Insight Agent配置文件中指定相同的应用程序名称。
示例: myonlineshopping.com 注意: 使用APMInsight Java代理,您可以选择通过JVM参数配置应用程序名称,而不是在apminsight.conf文件中进行配置。添加以下参数:-Dapminsight.application.name =我的应用程序 |
| My Application |
apm.host* | - 正在运行Applications Manager的主机名。
- 如果输入了无效/无法访问的主机名,则代理将引发连接被拒绝异常,并将重试,直到在apminsight.conf中输入正确的主机名为止。
- 接受主机名或Ipv4地址
示例: mymachine.mydomain.com | |
apm.protocol.https | - 如果应通过HTTPS协议发送到Applications Manager的数据,则指定true。
- 如果为false,则数据将通过HTTP协议发送
| false |
apm.port* | - 指定Applications Manager的HTTP端口。如果apm.protocol.https为true,请指定HTTPS端口。
- 如果服务未在指定端口中运行,则代理将引发拒绝连接异常,并将重试,直到在apminsight.conf中输入正确的端口为止。
示例: 9090 | |
behind.proxy | - 指定代理安装的Application Server在代理网络下的环境。
- 如果设置为True,则应提供代理凭证信息,以便将指标数据从代理发送到Applications Manager。
- 如果将behind.proxy设置为true,请为以下键指定值:
- proxy.server.host:代理服务器的主机名
- proxy.server.port:代理服务器的端口
- proxy.auth.username:代理服务器的用户名
- proxy.auth.password:代理服务器的密码
| false |
agent.server.port* | - 指定应用程序服务器的HTTP侦听端口。
- 当同一主机上运行多个Application Server时,区分实例将非常有用。例如:8080
| |
apdex.threshold | - 应用程序性能指数(简称为Apdex)是对应用程序性能的衡量,范围为0到1。
- 有关Apdex的详细信息,请访问www.apdex.org。
- 如果任何事务响应时间的得分低于apdex.threshold值,则该事务被标记为满意。
- 如果任何事务响应时间得分超过apdex.threshold的四倍,则该事务被标记为失望。
- 如果它刚好等于apdex.threshold或介于满足阈值和失望阈值之间,则将其标记为容忍。
| 0.5 (Second) |
sql.capture.enabled | - 启用此选项将侦听所有执行的SQL查询。
- 如果禁用此选项,则不会收集任何数据库指标。
| true |
transaction.trace.enabled | - 启用此选项将构造慢速事务跟踪。
- 您可以通过选择跟踪选项卡来查看在Applications Manager APM Insight页面中收集的跟踪。
| true |
transaction.trace.threshold | - 如果transaction.trace.enabled设置为true,则将收集其响应时间得分超过指定阈值的任何事务的跟踪。
- 跟踪可用于分析事务并对其进行故障排除。
| 2 (Seconds) |
transaction.trace.sql.parametrize | - 启用此选项将对慢速事务跟踪中的所有SQL查询进行参数化。(如果sql.capture.enabled设置为true,而transaction.trace.enabled设置为true)
- 禁用此选项将为您提供真实的查询(带有参数)。
- 如果有使用私密参数(例如信用卡号,密码等)执行的查询,建议启用此选项。
| true |
transaction.trace.sql.stacktrace.threshold | - 只要在此阈值时间值以上执行任何SQL查询,启用此选项将收集堆栈跟踪。
| 3 (Second) |
webtransaction.trace.input.params.record | - 启用此选项将获取所有GET&POST Web请求的参数
- 要跳过获取特定参数,请使用webtransaction.trace.input.params.ignore键
- 通过在跟踪选项卡中选择所需的事务,可以查看获取的参数
| false |
webtransaction.trace.input.params.ignore | - 要跳过获取特定的Web请求参数(例如密码,PIN或任何机密值),请为此密钥指定这些参数名称
- 使用逗号(,)分隔多个条目。为此键指定的值区分大小写
- 如果未指定任何值,则将记录所有请求参数
| password, authKey |
webtransaction.naming.use.requesturl | | |
webtransaction.encoding.charset | | |
transaction.skip.listening | - 跟踪时将跳过指定URL模式的Web事务
- 使用逗号(,)分隔多个条目
- 例如:transaction.skip.listening = *。jpeg,将跳过监听以.jpeg结尾的事务
| *.css, *.js, *.gif, *.jpg, *.jpeg, *.bmp, *.png |
transaction.tracking.request.interval | - 一种抽样。如果为20,则APM Insight仅在每20个同类请求后跟踪请求。即它将跟踪此类的1st,21st,41st ..请求。
- 保持的请求计数将每隔一分钟重置一次。
| 1 (request) |
include.components | - 默认情况下,APM Insight将事务分组为不同的组件,例如STRUTS,SERVLET,MYSQL等。
- 可以通过以下格式指定包名称来添加自定义组件:packagename /.*:Component_Name
- 指定程序包下的所有程序包和类都将分组为指定的组件
- 对于Ex:include.components = com/test/custom /.*:CUSTOM,com/test/custom /包下的所有包和类都将分组到CUSTOM组件中
- 使用逗号(,)分隔多个条目
注意:默认情况下,指定的软件包名称将包含在检测中,您无需在custom_instrumentation.conf中重复此操作 | |
apminsight.log.dir | - 应该存储APM Insight日志的目录路径。
- 使用正斜杠(/)作为路径分隔符
- 例如:D:/ apminsight /
- 如果注释或提及不正确或无法创建配置的目录,则默认为安装APM Insight代理jar的目录。
| |
apminsight.log.level | - APM Insight代理应记录信息的日志级别。
- 支持的级别为严重,警告,信息。
| INFO (level) |
autoupgrade.enabled | | false |
如果为选项指定了任何无效值,则APM Insight将使用其默认出厂值。除下面列出的选项外,所有其他选项都可以在运行时更改。
- application.name
- apm.host
- apm.port
- agent.server.port
- apminsight.log.dir
- apminsight.log.level (仅在Java代理中。而在.NET代理中,可以在运行时更改此属性)
注意: 标有*的选项为必填项。如果未提供任何必需项,则无法初始化/启动代理。但是,Application Server(部署代理的位置)将正常启动。
|
跟踪后台事务
除Web事务外,大多数应用程序还运行后台任务以执行各种任务,例如维护,计划程序,消息传递等。APMInsight还获取这些事务并将其列出在APM Insight仪表板的后台选项卡中。
为了使代理能够跟踪后台事务,必须在background_transaction.conf文件中启用它。下面说明后台事务的配置。
| 配置 | 描述 | 默认值 |
|---|
| bgtransaction.tracking.enabled | - 启用此选项,APM Insight代理开始跟踪后台事务
- HTTP以外的所有其他事务均被视为后台事务
| true |
| bgtransaction.trace.enabled | - 启用此选项后,如果bgtransaction.tracking.enabled设置为true,则代理将收集针对慢速后台事务的跟踪
| true |
bgtransaction.trace.threshold | - 如果bgtransaction.trace.enabled设置为true,将为响应时间超过指定阈值的后台事务收集跟踪。
| 5 (seconds) |
| bgtransaction.tracking.request.interval | - 后台事务的采样因子
- 如果值设置为1,则代理会跟踪每个事务。如果将值设置为n,则代理在N种同类事务中跟踪1。
| Java(Java)为1(请求),. Net代理为5(请求) |
注意:- 这些值不能在Java代理运行时更改。为了使更改生效,需要重新启动服务器。
- 使用.Net代理不需要重新启动服务器,这些值将在运行时更新。
|
定制工具
APM Insight代理可对几个Web组件和框架的预定义类进行检测,以提供对应用程序的完美洞察。APM Insight还提供了一个用于自定义仪器,您选择的类别的选项。定制工包含助于提供对应用程序的更广泛的了解,在此可以更轻松地跟踪应用程序中特定功能或模块的性能。
Java代理提供了两种自定义检测应用程序的方法:
1.使用配置文件
要检测您选择的类,请按照以下指定的格式在custom_instrumentation.conf文件中指定类名称。
Fully/qualified/ClassName : Methods to be instrumented
使用逗号(,)作为多个条目的方法分隔符。如果要检测的方法留为空白,则将检测指定类下的所有方法。如果存在需要检测的重载方法,则将检测所有重载方法。每个条目必须在新行中给出。
示例:
- a/b/c/CustomClass : methodA, methodB
- a/b/c/CustomClass :
如果需要检测包中的所有类,请如下所述指定包名称。
package_name/.* :
示例:
不建议将包指定为输入,因为代理将检测所有类中的所有方法及其下的所有包。这些可能会增加CPU和内存使用量的开销。同样,将有许多最不受欢迎的方法,这些方法也会使研究踪迹变长。虽然可以用来研究代码流,但不可取。
2.使用JAVA注释
使用Java批注,APM Insight提供了一种更简便的方法来自定义检测应用程序类和方法。使用Java批注,可以为事务定义自定义名称,还可以分配自定义组件。
注意:此功能可从代理版本2.2获得
先决条件
- 下载apminsight-javaagent.zip文件,其中包括代理jar及其关联文件以及apminsight-javaagent-api.jar
- 将apminsight-javaagent-api.jar文件包含到项目构建路径中。确保jar文件与应用程序的库一起导出。
有两个可用于自定义工具的注释:
ApmTracker-可以在任何类和方法上使用,将对其进行检测并包括在跟踪中。
ApmRootTracker-可以在可能是事务执行起点的方法上使用。
ApmTracker
此注释可以在类和方法上使用。当在类上使用时,属性将应用于该类中的所有方法。
属性:
| 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
public class Product { @ApmTracker public int getPrice(String product, String brand) { ... } ...
@ApmTracker(component="FetchBrand") private List fetchAllBrandsList(String product) { ... } } |
ApmRootTracker
该注释只能在方法上使用。如果带注释的方法是服务器上用于处理事务的第一个方法,则使用txnName属性的值重命名事务。否则,它被视为常规方法调用,并包含在跟踪中。
属性:
| txnName - Mandatory attribute. |
此属性的值用于命名调用ApmRootTracker注释方法的事务。
| component - Default Value: POJO |
为带注释的元素定义组件名称。它是一个可选属性。
示例:
public class AppService { @ApmRootTracker(txnName="Service-Initialisation") public void init() { ... } } |
分组类似事务
动态事务名称对许多应用程序越来越熟悉,因此很难真正跟踪应用程序的性能。动态事务是应用程序中包含单个URL的Web事务,但是每次调用时都会附加唯一的字母数字标识符,从而使Web事务名称本身看起来有所不同。跟踪这些单独的URL是一项艰巨的任务。在这里,将相似事务分组的功能将有助于将这些动态事务分组到需要监控的实际URL中。
.Net代理的配置步骤
打开编辑配置用户界面,选择事务合并选项卡,然后添加要合并的事务模式(如手动步骤3所示)。
为此,请手动执行以下步骤:
- 安装代理后,转到APM Insight .NET代理安装文件夹。
- 打开DotNetAgent文件夹。
- 打开transaction_merge_patterns.conf并添加以下示例中提到的模式,
- aspsite/account/~= account-上述模式将与所有以aspsite/account /开头的事务匹配,并将其重命名为account。
- aspsite/~/basicdetails = basicdetails-上述模式将与所有以aspsite/ 开始并以 /basicdetails结尾的事务匹配。它们将被重命名为basicdetails。
- ~/educationdetails = educationdetails-上面的模式将与所有以/educationdetails结尾的事务匹配,并将其重命名为educationdetails。
- 复制此transaction_merge_patterns.conf文件并将其粘贴到以下位置。
- %WINDIR%ProgramDataDotnetAgent(对于64位代理)-对于Windows Server 2003,相应的路径将位于%WINDIR%Documents和SettingsAll UsersApplication DataDotNetAgent中
- %WINDIR%ProgramDataDotnetAgent(用于32位代理)-对于Windows Server 2003,相应的路径将位于%WINDIR%Documents和SettingsAll UsersApplication DataDotNetAgent中
- 如果是多监视器,则上述位置中每个应用程序的所有子文件夹。
- 我们可以随时在配置文件中添加,删除或注释模式。
| 注意:不需要重新启动服务即可使此配置更改生效。更改将在下一分钟之后生效。 |
Java代理的配置步骤
- 关闭引入代理的应用服务器。
- 在apminsight.conf所在的目录中创建一个名为transaction_merge_patterns.conf的新文件。
- 在文本编辑器中打开文件,然后按照以下语法指定键值对。
- URL/Web Transaction =要分配的新名称的正则表达式。
- 启动Application Server,从现在开始执行的所有事务,将使用上面定义的模式来合并事务
示例:
包括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
Ruby Agent的配置步骤
- 在您的应用程序中apminsight.conf文件所在的目录中创建一个名为transaction_merge_patterns.conf的新文件。
- 在任何文本编辑器中打开文件,并根据以下语法指定键值对
URL的正则表达式= new_name_to_be_assigned
- 启动或重新启动Rails服务器,从现在开始执行的所有事务,将使用上面定义的模式来合并事务
示例:
ruby/shop/item/laptops/.*=shop/laptops
ruby/shop/item/.*/dell/.*=shop/item/dell
.*/cart/purchase=shop/purchase