首页 帮助中心 听云Server 配置

 配置界面

通过NBUI.exe进行参数配置, 对IIS或WCF服务进行控制。

NBUI.exe仅仅是一个配置管理界面, 启动监控后, 可以退出。

  • 监控的WCF服务:

    WCF的典型宿主包括以下四种:

    • "Self-Hosting" in a Managed Application(自托管宿主)
    • Managed Windows Services(Windows Services宿主)
    • Internet Information Services(IIS宿主)
    • Windows Process Activation Service(WAS宿主)

    探针默认仅监控IIS宿主和WAS宿主的应用性能

    如果想监控Windows Services宿主的WCF应用,请点击右侧的“...”按钮添加需要监控的服务名称.

    如果想监控自托管的WCF应用或Remoting应用,您需要写一个批处理文件或改写现有的批处理启动文件,将以下内容写入到批处理文件的第一行:

    SET Cor_Enable_Profiling=1
    SET COR_PROFILER={8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}
    SET COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    

    例如您的自托管应用是d:\app\ConsoleWcf.exe,批处理文件应该类似:

    SET Cor_Enable_Profiling=1
    SET COR_PROFILER={8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}
    SET COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    
    d:\app\ConsoleWcf.exe
    

    修改配置选项后,需要关闭自托管的应用,然后再次使用批处理启动自托管应用,否则配置选项不会生效。

  • 热点代码:

    探针默认不监控用户代码的性能,热点代码采集是从当前活动的线程堆栈中采集需要监控的用户函数,请点击右侧的“采集热点代码...”按钮启动采集。

    为了保证采集效果,请在采集过程中,尽量多的访问应用中常用的页面, 或者在压测的同时进行采集。 采集过程中会有部分CPU和资源的消耗,建议在测试环境下采集,然后将log文件夹内的learning.dat复制到生产环境的log文件夹内。

    采集完毕后,需要重新"启用监控"才能监控采集结果内的热点代码。

  • 用户代码:

    探针默认不监控用户代码的性能。我们可以使用这个配置项指定监控用户代码。

    1. 请点击右侧的“配置用户代码...”按钮添加需要监控的用户代码。

    2. 备选的用户代码是探针生效后且WEB应用启动后2分钟自动生成的,如果提示没有可选用户代码,请确认已经启用监控且应用已经启动2分钟以上。

    3. 当探针没有自动抓取到用户代码时,可以手动添加用户代码,手动添加的用户代码会在主界面页签的最后生成“其他”页签来展示。

      点击用户代码配置界面左下角"手动添加",在输入框中录入符合规则的用户代码(程序集名/类名::方法名)。

      例如:RedisTest/RedisTest.BundleConfig::RegisterBundles,

    4. 点击"应用"可保存设置。

    5. 此设置更改后, 需要重新"启用监控" 才能监控配置的用户代码.

应用命名

默认情况下,应用名称和站点名称一致,如果同一网站部署在多个服务器上,报表中一个应用会对应多个实例,
如果想直接将多个实例区分为多个应用,可以通过配置站点的"nbs.app_name"项更改应用名称

  1. 打开"IIS 管理器"

  2. 选择网站,双击"应用程序设置",在更改设置前,此站点的数据会汇总在“discuz”下

  3. 点击"应用程序设置"中的"添加..." 操作, 添加名称为"nbs.app_name"的数据项,将数值设置为您的“my site”,更改设置后,此站点的数据会汇总在“my site”下

如果您的应用部署在IIS 6.0或是自托管的应用,您需要修改Web.Config或应用配置文件

<configuration>
	<appSettings>
		<add key="nbs.app_name" value="my Site" />
	</appSettings> 
</configuration>

对特定应用禁用探针

默认情况下,当您想临时禁用所有应用的性能数据采集时,应该通过听云报表内的开关来临时禁用和启用探针。
当需要禁用特定应用的性能数据时,可以通过下述配置来禁用其中某一虚拟主机的性能数据。

如果想禁用某站点的监控,可以配置此站点的"nbs.agent_enabled"项

  1. 打开"IIS 管理器"

  2. 选择网站,双击"应用程序设置"

  3. 点击"应用程序设置"中的"添加..." 操作, 添加名称为"nbs.agent_enabled"的数据项,将数值设置为false

如果IIS版本为6.0,您需要修改站点的Web.Config配置文件

<configuration>
	<appSettings>
		<add key="nbs.agent_enabled" value="false" />
	</appSettings> 
</configuration>

配置排队时间

如果要配置排队时间,必须保证相关服务器的时钟同步。

  • 排队时间定义:

    从负载均衡服务器转发开始到web应用服务器的请求开始被处理所消耗的时间。

  • 原理:

    负载均衡设备或容器收到请求后,增加请求的http头: X-QUEUE-START,
    内容为收到请求的毫秒数,负载均衡将请求转发给WEB应用服务器。
    WEB应用服务器在处理请求时,获取当前时间的毫秒数,两个时间差值即为请求排队时间。

    例如,大量请求在web应用服务器队列内排队后请求才被处理时,排队时间会变长

  • 配置方法:

    • Apache 配置

      RequestHeader set X-QUEUE-START "%t"
      
    • Nginx 配置(1.2.6版本以上)

      • 使用 proxy_set_header

        proxy_set_header X-QUEUE-START "s=$msec";
        
      • 或使用 fastcgi_param

        fastcgi_param HTTP_X_QUEUE_START "s=$msec";
        
      • 或使用 Passenger

        passenger_set_cgi_param HTTP_X_QUEUE_START "s=${msec}";
        
      • 或使用 uWSGI

        uwsgi_param HTTP_X_QUEUE_START "s=${msec}";
        
    • HaProxy 配置

      http-request set-header X-Queue-Start t=%Ts%ms
      
    • F5 配置

      when HTTP_REQUEST_SEND {
      	set secs [clock seconds]
      	set ms [clock clicks -milliseconds]
      	set base [expr { $secs * 1000 }]
      	set fract [expr { $ms - $base }]
      	if { $fract >= 1000 } {
      		set diff [expr { $fract / 1000 }]
      		incr secs $diff
      		incr fract [expr { -1000 * $diff }]
      	}
      	set micros [format "%d%03d000" $secs $fract]
      	clientside {
      		HTTP::header insert X-QUEUE-START "t=${micros}"
      	}
        }
      

日志管理

  • 日志级别 控制日志数据写入日志文件的级别。 "DEBUG"是最低级,允许所有日志信息写入日志文件。 "OFF"是最高级,禁止所有日志信息写入日志文件。

  • 审计模式

    选项设定是否在日志文件中写入所有向听云平台上传和下载的数据内容。

代理设置

首先退出NBUI配置界面,然后打开探针安装路径下的配置文件TingYun.ini,指定代理服务器

nbs.proxy_host =
nbs.proxy_port =
nbs.proxy_user =
nbs.proxy_password =

本地配置

首先退出NBUI配置界面,然后打开探针安装路径下的配置文件TingYun.ini,指定本地配置项

nbs.agent_log_file_name =		//日志存放位置
nbs.agent_log_level =			//日志级别
nbs.audit_mode =				//审计模式
nbs.license =					//授权码
nbs.max_log_size =				//日志文件大小(MB)
nbs.max_log_count=				//日志文件数量
nbs.ssl=						//使用ssl通讯
nbs.exception.type_max=			//采集异常类型个数上限
local.process=					//监控的WCF服务
local.learn.count=				//热点代码或用户代码采集个数上限
local.delay=					//延迟加载时长(seconds)
nbs.exception.loger_max=		//采集异常日志个数上限