vts静态配置

1.功能介绍

提供对虚拟主机状态信息的访问。包含当前状态、服务器、上游、缓存等信息。 首先,指令 vhost_traffic_status_zone 是必需的, 然后如果指令 vhost_traffic_status_display 设置后,可按如下方式访问: /metrics/format/json

  • 如果您要求 /metrics/format/json,将使用包含当前活动数据的 JSON 文档进行响应,以便在实时仪表板和第三方监视工具中使用。
  • /metrics/format/html
    • 如果您要求 /metrics/format/html,将使用 HTML 中的内置实时仪表板进行响应,该仪表板在内部请求 /metrics/format/json.
  • /metrics/format/jsonp
    • 如果您要求 /status/format/jsonp,将使用包含当前活动数据的 JSONP 回调函数进行响应,以便在实时仪表板和第三方监视工具中使用。
  • /metrics/format/prometheus
    • 如果您要求 /status/format/prometheus,将响应 prometheus 格式,包含当前活动数据的文档。

2.依赖模块

njet_ctrl.conf:

load_module modules/njt_http_vtsc_module.so;

njet.conf:

load_module modules/njt_http_vtsd_module.so;

3.指令说明

3.1 vhost_traffic_status

- -
语法 vhost_traffic_status <on|off>
默认 关闭
上下文 http、server、location
配置 数据面

描述: 启用或禁用数据面统计指定上下文内性能指标数据。如果设置 了vhost_traffic_status_zone 指令,将自动启用。

3.2 vhost_traffic_status_zone

- -
语法 vhost_traffic_status_zone [shared:name:size]
默认 shared:vhost_traffic_status:1m
上下文 http
配置 数据面

描述: 为数据面共享内存区域设置参数,该区域将保留各种键的状态。缓存在所有工作进程之间共享。

在大多数情况下,njet-module-vts使用的共享内存大小不会增加太多。当使用vhost_traffic_status_filter_by_set_key指令时,共享内存大小会增加很多,但如果过滤器的键是固定的(例如。国家代码的总数约为240),则不会持续增加。

如果使用vhost_traffic_status_filter_by_set_key指令,设置如下:

  • 默认设置为上限32M的共享内存大小。(vhost_traffic_status_zone shared:vhost_traffic_status:32 m)
  • 如果在error_log中打印出:(“ngx_slab_alloc() failed: no memory in vhost_traffic_status_zone”),则增加到大于(usedSize * 2)。

3.3 vhost_traffic_status_filter_by_set_key

- -
语法 vhost_traffic_status_filter_by_set_key key [name]
默认 -
上下文 http
配置 数据面

描述: 通过用户定义的变量作为展示的维度。key和name可以使用变量,如$host、$server_name等

示例如下:

http{

  vhost_traffic_status_filter_by_set_key $request_uri "$realip_remote_addr to $server_name";

  ...

}

3.4 vhost_traffic_status_display

- -
语法 vhost_traffic_status_display
默认 -
上下文 location
配置 控制面

描述: 启用或禁用控制面显示处理程序。

3.5 vhost_traffic_status_display_format

- -
语法 vhost_traffic_status_display_format <json|html|jsonp|prometheus>
默认 json
上下文 location
配置 控制面

描述: 设置控制面数据输出的格式。

  • 如果设置 json,将使用 JSON 格式进行响应;

  • 如果设置 html,将使用 HTML 中的内置实时仪表板进行响应;

  • 如果设置 jsonp,将使用 JSONP 回调函数(默认: ngx_http_vhost_traffic_status_jsonp_callback);

  • 如果设置 prometheus,将响应 prometheus格式的数据。

4. 配置样例

njet_ctrl.conf:

load_module modules/njt_http_vtsc_module.so;
error_log logs/error-ctrl.log info;
events {
....
}
http {
    access_log logs/access-ctrl.log combined;
    server {
        listen       8081;
        location /metrics {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

njet.conf:

load_module modules/njt_http_vtsd_module.so;
helper broker modules/njt_helper_broker_module.so conf/mqtt.conf;
helper ctrl modules/njt_helper_ctrl_module.so conf/ctrl.conf;

error_log logs/error.log info;
events {
....
}
http {
    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_set_key $request_uri "$realip_remote_addr to $server_name";
....
....
}

3.功能展示

vts监控页面:

logo logo

增加新指标后: logo logo