arkproxy icon indicating copy to clipboard operation
arkproxy copied to clipboard

设置proxy_digest_trace和proxy_sql_trace参数不生效

Open mawenbin666 opened this issue 4 years ago • 3 comments

  • 版本:v20.06.30

  • 参数配置:

proxy_digest_trace = ON
proxy_sql_trace = ON
  • 问题描述:
想查看业务访问语句的digest信息。但是配置了
proxy_digest_trace = ON
proxy_sql_trace = ON
这两个参数,却不生效,日志也没有打印出来,这就和文档中的配置描述有出入
文档对于proxy_sql_trace是这样描述的:
ArkProxy的sql trace是否开启开关,默认是true,如果开启了,则会将所有的 SQL访问都记下来,存储到proxy_config_host:proxy_config_port设置的目标数据库中,可能会对中间层的性能有影响。依赖proxy_digest_trace,只有proxy_digest_trace打开了, proxy_sql_trace打开之后才能起作用。
  • 想得到的效果 通过参数配置arkproxy.cnf文件,可以查看到业务访问语句的digest信息

mawenbin666 avatar Nov 06 '20 01:11 mawenbin666

您好,默认digest会存储到Kafka中,您需要修改Arkproxy的配置文件,修改storage为MYSQL,添加将digest数据存储到的数据库IP、port、username、password【具体修改参数见下面的图片】
然后重启Arkproxy,通过业务端口执行的语句都会被存储到指定的MySQL数据库的mysql.query_digest表中。

image

下图为测试结果

image

image

如果在修改的过程中有疑问,随时issue沟通,感谢~

Mickyun avatar Nov 06 '20 03:11 Mickyun

  • 功能实现,但是有一个不太完美的地方
proxy_digest_trace = ON
proxy_sql_trace = ON
这两个参数不能热加载,
比如 config reload,config flush 执行了都不生效,
需要物理重启才能生效,当遇到遇到分析具体问题的时候,这种物理重启会造成线上业务短暂的不可用,不太方便。
如果能做到热加载就完美了。

mawenbin666 avatar Nov 06 '20 09:11 mawenbin666

您好: 支持动态加载的,这个是我在自己的测试环境测试的步骤,您可以按照下面的操作测试一下。 操作步骤如下:

  1. 使用set global的方式关闭trace和digest
mysql> set global proxy_sql_trace = off;

mysql> set global proxy_digest_trace =off;
  1. 将配置加载到外部的配置文件中
show variables;  //获取proxy_config_file参数值

config write outfile '/data/arkagent/package/arkproxy/conf/arkproxy_14444.cnf';  //用proxy_config_file值替换


mysql> show variables;
+--------------------------------------+---------------------------------------------------------+
| Variable_name                        | Value                                                   |
+--------------------------------------+---------------------------------------------------------+
| proxy_async_connect_server           | ON                                                      |
| proxy_backend_passwd                 | arkproxy                                                |
| proxy_backend_user                   | arkproxy                                                |
| proxy_check_consistend_period        | 10                                                      |
| proxy_check_slave_lag_period         | 10                                                      |
| proxy_config_file                    | /data/arkagent/package/arkproxy/conf/arkproxy_14444.cnf |
| proxy_config_host                    |                                                         |
| proxy_config_passwd                  |                                                         |
| proxy_config_port                    | 0                                                       |
| proxy_config_user                    |                                                         |
| proxy_consistend_max_delay_time      | 1000                                                    |
| proxy_digest_trace                   | ON                                                      |
| proxy_enable_consistend_read         | 0                                                       |
| proxy_flush_thread_num               | 5                                                       |
| proxy_format_fullpath                | OFF                                                     |
| proxy_format_num_per_time            | 10                                                      |
| proxy_format_parameterize            | ON                                                      |
| proxy_format_thread_num              | 5                                                       |
| proxy_general_log                    | OFF                                                     |
| proxy_general_log_file               | /data/arkagent/package/arkproxy/log/arkproxy_14444.log  |
| proxy_incoming_addresses             | 10.0.0.174:14544                                        |
| proxy_init_connect                   |                                                         |
| proxy_log_error                      | /data/arkagent/package/arkproxy/log/error_14444.log     |
| proxy_max_connections                | 1000                                                    |
| proxy_multi_write_mode               | OFF                                                     |
| proxy_namespace                      |                                                         |
| proxy_net_buffer_outlier_scale       | 1.500000                                                |
| proxy_net_per_buffer_max_size        | 0                                                       |
| proxy_non_encrypted_ips              | 127.0.0.1                                               |
| proxy_not_router_mode                | OFF                                                     |
| proxy_port                           | 14444                                                   |
| proxy_recv_queue_size                | 1000                                                    |
| proxy_send_queue_size                | 10                                                      |
| proxy_server_address                 | 10.0.0.174                                              |
| proxy_server_heartbeat_period        | 100                                                     |
| proxy_server_uuid                    | 0f529943-2022-11eb-87be-080027458038                    |
| proxy_shell_listen_port              | 14544                                                   |
| proxy_shell_password                 | vMFqq2EQxJopv8g6                                        |
| proxy_shell_username                 | arkproxy                                                |
| proxy_sql_trace                      | ON                                                      |
| proxy_sql_trace_thread_num           | 5                                                       |
| proxy_thread_pool_idle_timeout       | 60                                                      |
| proxy_thread_pool_max_threads        | 65536                                                   |
| proxy_thread_pool_oversubscribe      | 3                                                       |
| proxy_thread_pool_size               | 8                                                       |
| proxy_thread_pool_stall_limit        | 500                                                     |
| proxy_trace_busy_strategy            | 0                                                       |
| proxy_trace_busy_wait_time           | 500                                                     |
| proxy_trace_client_queue_size        | 1000                                                    |
| proxy_trace_flush_thread_sleep_msec  | 500                                                     |
| proxy_trace_format_thread_sleep_msec | 500                                                     |
| proxy_trace_hash_mem_length          | 134217728                                               |
| proxy_trace_hash_size                | 200                                                     |
| proxy_trace_max_delay_time           | 3                                                       |
| proxy_trace_queue_array_length       | 500                                                     |
| proxy_trace_sql_bucket_length        | 100                                                     |
| proxy_trace_storage                  | MYSQL                                                   |
| proxy_trace_storage_host             | 10.0.0.173                                              |
| proxy_trace_storage_passwd           | arkcontrol                                              |
| proxy_trace_storage_port             | 4444                                                    |
| proxy_trace_storage_user             | arkcontrol                                              |
| proxy_username_encypted              | OFF                                                     |
| proxy_version                        | 20.06.30                                                |
+--------------------------------------+---------------------------------------------------------+
63 rows in set (0.07 sec)

查看variables已经为关闭状态

mysql> show variables; +--------------------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------------------+---------------------------------------------------------+ | proxy_async_connect_server | ON | | proxy_backend_passwd | arkproxy | | proxy_backend_user | arkproxy | | proxy_check_consistend_period | 10 | | proxy_check_slave_lag_period | 10 | | proxy_config_file | /data/arkagent/package/arkproxy/conf/arkproxy_14444.cnf | | proxy_config_host | | | proxy_config_passwd | | | proxy_config_port | 0 | | proxy_config_user | | | proxy_consistend_max_delay_time | 1000 | | proxy_digest_trace | OFF | | proxy_enable_consistend_read | 0 | | proxy_flush_thread_num | 5 | | proxy_format_fullpath | OFF | | proxy_format_num_per_time | 10 | | proxy_format_parameterize | ON | | proxy_format_thread_num | 5 | | proxy_general_log | OFF | | proxy_general_log_file | /data/arkagent/package/arkproxy/log/arkproxy_14444.log | | proxy_incoming_addresses | 10.0.0.174:14544 | | proxy_init_connect | | | proxy_log_error | /data/arkagent/package/arkproxy/log/error_14444.log | | proxy_max_connections | 1000 | | proxy_multi_write_mode | OFF | | proxy_namespace | | | proxy_net_buffer_outlier_scale | 1.500000 | | proxy_net_per_buffer_max_size | 0 | | proxy_non_encrypted_ips | 127.0.0.1 | | proxy_not_router_mode | OFF | | proxy_port | 14444 | | proxy_recv_queue_size | 1000 | | proxy_send_queue_size | 10 | | proxy_server_address | 10.0.0.174 | | proxy_server_heartbeat_period | 100 | | proxy_server_uuid | 0f529943-2022-11eb-87be-080027458038 | | proxy_shell_listen_port | 14544 | | proxy_shell_password | vMFqq2EQxJopv8g6 | | proxy_shell_username | arkproxy | | proxy_sql_trace | OFF | | proxy_sql_trace_thread_num | 5 | | proxy_thread_pool_idle_timeout | 60 | | proxy_thread_pool_max_threads | 65536 | | proxy_thread_pool_oversubscribe | 3 | | proxy_thread_pool_size | 8 | | proxy_thread_pool_stall_limit | 500 | | proxy_trace_busy_strategy | 0 | | proxy_trace_busy_wait_time | 500 | | proxy_trace_client_queue_size | 1000 | | proxy_trace_flush_thread_sleep_msec | 500 | | proxy_trace_format_thread_sleep_msec | 500 | | proxy_trace_hash_mem_length | 134217728 | | proxy_trace_hash_size | 200 | | proxy_trace_max_delay_time | 3 | | proxy_trace_queue_array_length | 500 | | proxy_trace_sql_bucket_length | 100 | | proxy_trace_storage | MYSQL | | proxy_trace_storage_host | 10.0.0.173 | | proxy_trace_storage_passwd | arkcontrol | | proxy_trace_storage_port | 4444 | | proxy_trace_storage_user | arkcontrol | | proxy_username_encypted | OFF | | proxy_version | 20.06.30 | +--------------------------------------+---------------------------------------------------------+ 63 rows in set (0.08 sec)

  1. 查看配置文件
[arkproxy]
proxy_async_connect_server               = ON
proxy_backend_passwd                     = arkproxy
proxy_backend_user                       = arkproxy
proxy_check_consistend_period            = 10
proxy_check_slave_lag_period             = 10
proxy_config_host                        =
proxy_config_passwd                      =
proxy_config_port                        = 0
proxy_config_user                        =
proxy_consistend_max_delay_time          = 1000
proxy_digest_trace                       = OFF
............................
proxy_sql_trace                          = OFF
...........................

Mickyun avatar Nov 06 '20 11:11 Mickyun