TSG-13196 Decrypted Traffic Steering增加FieldStat字段

* stee_ssl_conn
    * stee_http_conn
    * stee_c_tx_B
    * stee_s_rx_B
    * stee_s_tx_B
    * stee_c_rx_B
This commit is contained in:
luwenpeng
2022-12-29 10:24:02 +08:00
parent 3268648414
commit 0f542d376f
3 changed files with 35 additions and 4 deletions

View File

@@ -39,6 +39,19 @@ enum TFE_STAT_FIELD
/* Protocol */
STAT_STREAM_TCP_PLAIN,
STAT_STREAM_TCP_SSL,
/* Decrypted Traffic Steering */
STAT_STEERING_SSL_CONN,
STAT_STEERING_HTTP_CONN,
STAT_STEERING_CLIENT_TX_B,
STAT_STEERING_SERVER_RX_B,
STAT_STEERING_SERVER_TX_B,
STAT_STEERING_CLIENT_RX_B,
STAT_STEERING_CLIENT_ERR,
STAT_STEERING_SERVER_ERR,
STAT_STEERING_CLIENT_EOF,
STAT_STEERING_SERVER_EOF,
TFE_STAT_MAX
};

View File

@@ -461,6 +461,18 @@ static const char * __str_stat_spec_map[] =
[STAT_STREAM_INCPT_UP_BYTES] = "ustm_incpt_B",
[STAT_STREAM_TCP_PLAIN] = "plain",
[STAT_STREAM_TCP_SSL] = "ssl",
[STAT_STEERING_SSL_CONN] = "stee_ssl_conn",
[STAT_STEERING_HTTP_CONN] = "stee_http_conn",
[STAT_STEERING_CLIENT_TX_B] = "stee_c_tx_B",
[STAT_STEERING_SERVER_RX_B] = "stee_s_rx_B",
[STAT_STEERING_SERVER_TX_B] = "stee_s_tx_B",
[STAT_STEERING_CLIENT_RX_B] = "stee_c_rx_B",
[STAT_STEERING_CLIENT_ERR] = "stee_c_err",
[STAT_STEERING_SERVER_ERR] = "stee_s_err",
[STAT_STEERING_CLIENT_EOF] = "stee_c_eof",
[STAT_STEERING_SERVER_EOF] = "stee_s_eof",
[TFE_STAT_MAX] = NULL
};

View File

@@ -602,13 +602,16 @@ static void __stream_bev_readcb(struct bufferevent * bev, void * arg)
(STREAM_PROTO_PLAIN == _stream->session_type && _stream->proxy_ref->traffic_steering_options.enable_steering_http) ||
(STREAM_PROTO_SSL == _stream->session_type &&_stream->proxy_ref->traffic_steering_options.enable_steering_ssl)))
{
enum TFE_STAT_FIELD stat_filed = TFE_STAT_MAX;
if (bev == _stream->conn_downstream->bev)
{
peer_conn = _stream->conn_fake_c;
stat_filed = STAT_STEERING_CLIENT_TX_B;
}
else if (bev == _stream->conn_upstream->bev)
{
peer_conn = _stream->conn_fake_s;
stat_filed = STAT_STEERING_SERVER_TX_B;
}
else
{
@@ -626,14 +629,13 @@ static void __stream_bev_readcb(struct bufferevent * bev, void * arg)
return;
}
// TODO 增加计数
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes from %s to %s",
_stream->str_stream_addr,
evbuffer_get_length(inbuf),
bev == _stream->conn_downstream->bev ? "conn_downstream" : "conn_upstream",
bev == _stream->conn_downstream->bev ? "conn_fake_c" : "conn_fake_s");
TFE_PROXY_STAT_INCREASE(stat_filed, evbuffer_get_length(inbuf));
outbuf = bufferevent_get_output(peer_conn->bev);
evbuffer_add_buffer(outbuf, inbuf);
@@ -1064,13 +1066,16 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
struct tfe_stream_private * _stream = (struct tfe_stream_private *)arg;
struct tfe_conn_private * peer_conn = NULL;
enum TFE_STAT_FIELD stat_filed = TFE_STAT_MAX;
if (bev == _stream->conn_fake_c->bev)
{
peer_conn = _stream->conn_downstream;
stat_filed = STAT_STEERING_CLIENT_RX_B;
}
else if (bev == _stream->conn_fake_s->bev)
{
peer_conn = _stream->conn_upstream;
stat_filed = STAT_STEERING_SERVER_RX_B;
}
else
{
@@ -1088,8 +1093,6 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
return;
}
// TODO 增加计数
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes form %s to %s",
_stream->str_stream_addr,
evbuffer_get_length(inbuf),
@@ -1097,6 +1100,7 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
bev == _stream->conn_fake_c->bev ? "conn_downstream" : "conn_upstream"
);
TFE_PROXY_STAT_INCREASE(stat_filed, evbuffer_get_length(inbuf));
struct evbuffer * outbuf = bufferevent_get_output(peer_conn->bev);
evbuffer_add_buffer(outbuf, inbuf);
}
@@ -1188,6 +1192,7 @@ void ssl_downstream_create_on_success(future_result_t * result, void * user)
{
__conn_private_enable(_stream->conn_fake_c);
__conn_private_enable(_stream->conn_fake_s);
TFE_PROXY_STAT_INCREASE(STAT_STEERING_SSL_CONN, 1);
}
return;
@@ -1749,6 +1754,7 @@ int tfe_stream_init_by_fds(struct tfe_stream * stream, evutil_socket_t fd_downst
{
__conn_private_enable(_stream->conn_fake_s);
__conn_private_enable(_stream->conn_fake_c);
TFE_PROXY_STAT_INCREASE(STAT_STEERING_HTTP_CONN, 1);
}
TFE_PROXY_STAT_INCREASE(STAT_STREAM_TCP_PLAIN, 1);