ODP 运行过程中会把各类请求信息和错误信息打印到对应的日志文件中,便于您进行针对性的分析。此外,OCP 也提供了ODP 的各类监控信息。
obproxy_digest.log 日志
大于参数 query_digest_time_threshold
设置值(默认 100ms,主站是 2ms)的请求、错误响应请求会打到 obproxy_digest.log
日志中。
说明
query_digest_time_threshold
参数用于设置请求执行时间阈值,超过阈值即打印一条日志到obproxy_digest.log
文件。有关该参数的详细介绍,参见 ODP 支持动态修改的参数。
日志示例
2020-03-18 21:26:54.871053,postmen,,,,postmen40:postmen_new0497_3279:postmen_r497,OB_MYSQL,,postmen_push_msg_4977,COM_QUERY,SELECT,success,,SELECT id%2C gmt_create%2C gmt_modified%2C msg_id%2C principal_id%2C app_name%2C target_utdid%2C biz_id%2C host%2C status%2C expire_time%2C msg_data FROM postmen_push_msg_4977 WHERE principal_id = 'W/jEKoLOxnwDABWmhzjgmK1V' AND app_name = 'KOUBEI' AND expire_time > 1584538014858 AND status = 1,11765us,52us,0us,11632us,Y0-7F16DD5BEBC0,,
日志信息说明
上述日志示例中的信息的含义依次为:
-
日志打印时间
-
当前应用名
-
TraceId
-
RpcId
-
逻辑数据源名称:该信息在 ODP 的 1.x 版本中留空
-
物理库信息(cluster:tenant:database)
-
数据库类型:取值为 OB 或 RDS
-
逻辑表名:该信息在 ODP 的 1.x 版本中留空
-
物理表名
-
SQL 命令:COM_QUERY、COM_STMT_PREPARE 等
-
SQL 类型(CRUD)
-
执行结果:取值为 success 或 failed
-
错误码:当执行结果为 success 时,该信息为空
-
SQL 执行总耗时:单位为 ms,包括内部 SQL 执行耗时
-
预执行时间
-
链接建立时间
-
数据库执行时间
-
当前线程名:ODP 的内部线程 ID
-
系统穿透数据:系统灾备信息等
-
穿透数据
obproxy_stat.log 日志
OBProxy 请求统计日志,默认每分钟输出一次。
日志示例
2020-03-18 21:26:59.504487,postmen,,postmen50:postmen_new0563_3279:postmen_r563,OB_MYSQL,SELECT,success,,1,0,0,0,9.383ms,0.029ms,9.263ms
2020-03-18 21:26:59.504509,postmen,,postmen50:postmen_new0528_3279:postmen_r528,OB_MYSQL,SHOW,success,,2,0,0,0,14.280ms,0.056ms,14.067ms
2020-03-18 21:26:59.504545,postmen,,postmen30:postmen_new0363_3279:postmen_r363,OB_MYSQL,SELECT,success,,5,0,0,0,0.158ms,0.000ms,0.000ms
2020-03-18 21:26:59.504563,postmen,,postmen50:postmen_new0561_3279:postmen_r561,OB_MYSQL,SELECT,failed,1054,1,0,0,0,8.487ms,0.048ms,8.281ms
2020-03-18 21:26:59.504604,postmen,,postmen50:postmen_new0561_3279:postmen_r561,OB_MYSQL,OTHERS,success,,1,0,0,0,27.148ms,17.902ms,9.102ms
日志信息说明
上述日志示例中的信息的含义依次为:
-
日志打印时间
-
当前应用名
-
逻辑数据源名称 :该信息在 ODP 的 1.x 版本中留空
-
物理库信息(cluster:tenant:database)
-
数据库类型:取值为 OB 或 RDS
-
SQL 类型(CRUD)
-
执行结果:取值为 success 或 failed
-
错误码:当执行结果为 success 时,该信息为空
-
总请求数量
-
30 ms ~ 100 ms 请求数量
-
100 ms ~ 500 ms 请求数量
-
大于 500 ms 请求数量
-
执行总耗时:单位为 ms,包括内部 SQL 执行耗时
-
预执行时间
-
数据库执行时间
obproxy_slow.log 日志
大于参数 slow_query_time_threshold
设置值(默认 500ms)的请求,会打到 obproxy_slow.log
日志中。
说明
参数
slow_query_time_threshold
用于设置慢请求执行时间阈值。超过阈值即打印一条日志到obproxy_slow.log
文件。有关该参数的详细介绍,参见 ODP 支持动态修改的参数。
日志示例
2020-03-16 21:31:32.125967,postmen,,,,postmen20:postmen_new0200_3279:postmen_r200,OB_MYSQL,,,COM_LOGIN,,success,,,507680us,507049us,0us,515us,Y0-7F16DD5743A0,,
2020-03-16 21:31:49.561865,postmen,,,,postmen50:postmen_new0580_3279:postmen_r580,OB_MYSQL,,,COM_LOGIN,,success,,,1258599us,1249321us,0us,9130us,Y0-7F16DB9752C0,,
日志信息说明
上述日志示例中的信息的含义依次为:
-
日志打印时间
-
当前应用名
-
TraceId
-
RpcId
-
逻辑数据源名称:该信息在 ODP 的 1.x 版本中留空
-
物理库信息(cluster:tenant:database)
-
数据库类型:取值为 OB 或 RDS
-
逻辑表名:该信息在 ODP 的 1.x 版本中留空
-
物理表名
-
SQL 命令:COM_QUERY、COM_STMT_PREPARE 等
-
SQL 类型(CRUD)
-
执行结果:取值为 success 或 failed
-
错误码:当执行结果为 success 时,该信息为空
-
SQL 执行总耗时:单位为 ms,包括内部 SQL 执行耗时
-
预执行时间
-
链接建立时间
-
数据库执行时间
-
当前线程名:ODP 的内部线程 ID
-
系统穿透数据:系统灾备信息等
-
穿透数据
obproxy_error.log 日志
执行错误的请求会打印到该日志中,包括 OBProxy 自身错误和 OBServer 返回错误。
日志示例
2020-03-18 21:28:10.497945,postmen,,,,postmen70:postmen_new0781_3279:postmen_r781,OB_MYSQL,,postmen_connection_info_7819,COM_QUERY,INSERT,failed,1054,INSERT INTO postmen_connection_info_7819 ( gmt_create%2C gmt_modified%2C app_name%2C principal_id%2C utdid%2C link_info_key%2C product_id%2C product_version%2C os_type%2C os_version%2C network%2C brand%2C model%2C last_active_time%2C status%2C ext_attr%2C worker_id%2C sid%2C postmen_ip%2C link_version%2C protocol_type%2C zone_name%2C sync_version%2C background_time%2C app_status%2C device_id%2C push_switch ) VALUES ( now(6)%2C now(6)%2C 'KOUBEI'%2C '2088212505319787'%2C 'W/jEKoLOxnwDABWmhzjgmK1V'%2C 'xxx.xxx.xxx.xxx_3883D71A4ECCAE0F_AB18'%2C 'KOUBEI_APP_ANDROID'%2C '7.1.87.000001'%2C 'android'%2C '9'%2C 'wifi'%2C 'xiaomi'%2C 'MI 8 SE'%2C 1584538090493%2C 1%2C null%2C 'xxx.xxx.xxx.xxx_3883D71A4ECCAE0F'%2C 43800%2C 'xxx.xxx.xxx.xxx'%2C 1%2C 'MMTP'%2C 'RZ99S'%2C 6%2C 1584538090477%2C 1%2C 'W/jEKoLOxnwDABWmhzjgmK1V'%2C '1' ) ON DUPLICATE KEY UPDATE gmt_modified = now(6)%2C utdid = 'W/jEKoLOxnwDABWmhzjgmK1V'%2C link_info_key = 'xxx.xxx.xxx.xxx_3883D71A4ECCAE0F_AB18'%2C product_id = 'KO,1138us,29us,0us,984us,Y0-7F16DD5BDF00,,,Unknown column 'push_switch' in 'field list'
日志信息说明
上述日志示例中的信息的含义依次为:
-
日志打印时间
-
当前应用名
-
TraceId
-
RpcId
-
逻辑数据源名称:该信息在 ODP 的 1.x 版本中留空
-
物理库信息(cluster:tenant:database)
-
数据库类型:取值为 OB 或 RDS
-
逻辑表名:该信息在 ODP 的 1.x 版本中留空
-
物理表名
-
SQL 命令:COM_QUERY、COM_STMT_PREPARE 等
-
SQL 类型(CRUD)
-
执行结果:取值为 success 或 failed
-
错误码:当执行结果为 success 时,该信息为空
-
SQL 执行总耗时:单位为 ms,包括内部 SQL 执行耗时
-
预执行时间
-
链接建立时间
-
数据库执行时间
-
当前线程名:ODP 的内部线程 ID
-
系统穿透数据:系统灾备信息等
-
穿透数据
-
错误详情
obproxy_limit.log 日志
OBProxy 限流日志,如果发生限流,会将被限流的请求打印到日志中。
日志格式:
限流状态(RUNNING/OBSERVE) SQL 限流规则名称
日志示例
2020-03-18 21:26:54.871053,postmen,,,,postmen40:postmen_new0497_3279:postmen_r497,OB_MYSQL,,postmen_push_msg_4977,COM_QUERY,SELECT,RUNNING,SELECT id%2C gmt_create%2C gmt_modified%2C msg_id%2C principal_id%2C app_name%2C target_utdid%2C biz_id%2C host%2C status%2C expire_time%2C msg_data FROM postmen_push_msg_4977 WHERE principal_id = 'W/jEKoLOxnwDABWmhzjgmK1V' AND app_name = 'KOUBEI' AND expire_time > 1584538014858 AND status = 1,LIMIT_RULE_
日志信息说明
上述日志示例中的信息的含义依次为:
-
日志打印时间
-
当前应用名
-
TraceId
-
RpcId
-
逻辑数据源名称:该信息在 ODP 的 1.x 版本中留空
-
物理库信息(cluster:tenant:database)
-
数据库类型:取值为 OB 或 RDS
-
逻辑表名:该信息在 ODP 的 1.x 版本中留空
-
物理表名
-
SQL 命令:COM_QUERY、COM_STMT_PREPARE 等
-
SQL 类型(CRUD)
-
限流状态(RUNNING/OBSERVE)
-
SQL 限流规则名称
日志示例:
ODP 监控
除了通过 ODP 的各类日志之外,您也可以通过 OceanBase 提供的数据库管理运维产品 OCP 来查看 ODP 的各类监控信息。
OBProxy 集群性能监控提供了服务监控和系统监控功能。
服务监控
服务监控提供了 ODP 集群维度、ODP 关联的 OB 集群维度以及单个 ODP IP 维度的 每秒事务数、请求数、客户端连接数、服务端链接数、SQL 处理耗时、每秒 ERROR 响应包数、路由表 和 网络请求字节数 信息。
系统监控
系统监控提供了 ODP 集群维度以及单个 ODP IP 维度的 Linux 系统负载 、 CPU 使用率、平均每秒 IO 次数、平均每次 IO 耗时、平均每秒 IO 数据量、网络吞吐率、内存 和 磁盘 信息。
有关 ODP 监控的详细信息,参见 《OCP 用户指南》中 ODP 集群性能监控 章节。