sts 静态配置

1.功能描述

该模块用于输出 NJET Stream Server 的指标信息,支持返回 json, html 及prometheus 格式。

2.依赖模块

njet_ctrl.conf

load_module modules/njt_stream_stsd_module.so;

3.指令说明

3.1 数据面配置指令

server_traffic_status_zone

- -
语法 server_traffic_status_zone [shared:name:size]
默认值 shared:stream_server_traffic_status:1m
配置位置 stream

描述: 配置一个共享内存区域,该区域存储stream server的运行状态。

server_traffic_status

- -
语法 server_traffic_status <on|off>
默认值 off
配置位置 stream, server

描述: 是否记录stream server 的指标, 如果配置了server_traffic_status_zone指令,将自动开启指标采集。

server_traffic_status_filter_by_set_key

- -
语法 server_traffic_status_filter_by_set_key key [name]
默认值 -
配置位置 stream, server

描述: 对Stream统计的流量进行分组(name)及子分组(key), 可以使用变量,例如 $server_addr, $server_port等。参数name 不指定时,默认值是streamFilterZones。

3.2 控制面配置指令

stream_server_traffic_status_display

- -
语法 stream_server_traffic_status_display
默认值 -
配置位置 location

描述: 该指令用于获取stream server 的指标信息,默认输出格式由指令stream_server_traffic_status_display进行设置。

stream_server_traffic_status_display_format

- -
语法 stream_server_traffic_status_display_format <json|html|prometheus>
默认值 json
配置位置 location

描述: 该指令用于配置指标的默认返回格式。

4.配置样例

njet.conf

njt_stream_stsc_module 模块采用静态编译,不用单独加载。

worker_processes auto;

cluster_name njet;
node_name node1;

error_log logs/error.log info;

helper ctrl modules/njt_helper_ctrl_module.so conf/njet_ctrl.conf;
helper broker modules/njt_helper_broker_module.so;



events {
    worker_connections  1024;
}
http {
    include mime.types;
    access_log on;
    vhost_traffic_status_zone;
    
    server { 

        listen       8080;
        location / {
           root html;
        }
    }
}
stream {
  
  server_traffic_status_zone shared:aabbcc:2m;

  upstream tcpa {
    server 127.0.0.1:1234; 
  }
  upstream udpa {
    server 127.0.0.1:1236 fail_timeout=6s weight=5 max_fails=10; 
  }
 
  server {
    listen 1234; 
    listen 1237;
    server_traffic_status on;
    return "aa\n";
   }
  server {
     listen 1235;
     server_traffic_status off;
  
    server_traffic_status_filter_by_set_key * $server_addr;

    server_traffic_status_filter_by_set_key "*"  "2 $server_addr";
     proxy_pass tcpa;

   }
  server {
     listen 1236 udp;
     server_traffic_status_filter_by_set_key *  $server_addr::;
     server_traffic_status on;
     return "1236\n";

   }
   server {
     listen 1238 udp;
     server_traffic_status_filter_by_set_key *  $server_addr::;
     server_traffic_status off;
     proxy_pass 192.168.40.158:1111;
   }
}

njet_ctrl.conf

需要加载动态模块njt_stream_stsd_module.so

load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_ctrl_config_api_module.so;
load_module modules/njt_helper_health_check_module.so;
load_module modules/njt_http_upstream_api_module.so;
load_module modules/njt_http_location_api_module.so;
load_module modules/njt_doc_module.so;
load_module modules/njt_http_vtsd_module.so;
load_module modules/njt_stream_stsd_module.so;

error_log logs/error_ctrl.log info;

events {
    worker_connections  1024;
}

http {
    
    include mime.types;
    access_log off;
    server {
        listen       8081;

         location /api {
        dyn_module_api;
    }

    location /doc {
        doc_api;
     }

        location /metrics {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }

        location /stream_metrics {
            stream_server_traffic_status_display;
            #stream_server_traffic_status_display_format html;
            stream_server_traffic_status_display_format json;
        }
    }
}
~  

在浏览器上通过访问该网址: http://192.168.40.158:8081/stream_metrics

img img