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,,
2020-03-18 21:26:54.871053,xxx,0a0fe91c1514974353459100919649,0.1,,cluster:tenant:database,OB_MYSQL,test,test_99,COM_QUERY,SELECT,success,,select * from test_99,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
システム貫通データ:システムの災害復旧情報など
穿通データ
DBKey名 (V2.0.20以降でサポート)
BeyondTrustの使用状況 (V2.0.20以降でサポート)。値が1の場合は使用中、0の場合は未使用を表します。
バックエンドサーバーIP
obproxy_stat.logログ
ODPリクエスト統計ログで、デフォルトでは1分ごとに出力されます。 ログ例
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
2020-03-18 21:26:59.504487,xxx,,cluster:tenant:database,OB_MYSQL,SELECT,success,,1,0,0,0,9.383ms,0.029ms,9.263ms
2020-03-18 21:26:59.504509,xxx,,cluster:tenant:database,OB_MYSQL,SHOW,success,,2,0,0,0,14.280ms,0.056ms,14.067ms
2020-03-18 21:26:59.504545,xxx,,cluster:tenant:database,OB_MYSQL,SELECT,success,,5,0,0,0,0.158ms,0.000ms,0.000ms
2020-03-18 21:26:59.504563,xxx,,cluster:tenant:database,OB_MYSQL,SELECT,failed,1054,1,0,0,0,8.487ms,0.048ms,8.281ms
2020-03-18 21:26:59.504604,xxx,,cluster:tenant:database,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,,
2020-03-16 21:31:32.125967,xxx,0a0fe91c1514974353459100919649,0.1,,cluster:tenant:database,OB_MYSQL,,,COM_LOGIN,,success,,,507680us,507049us,0us,515us,Y0-7F16DD5743A0,,
2020-03-16 21:31:49.561865,xxx,0a0fe91c1514974353459100919649,0.1,,cluster:tenant:database,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
システム貫通データ:システムの災害復旧情報など
穿通データ
DBKey名(V2.0.20バージョンからサポート)
BeyondTrustの使用状況(V2.0.20バージョンからサポート)。値が1の場合は使用中、0の場合は未使用を示します。
バックエンドサーバーIP
obproxy_error.logログ
実行エラーが発生したリクエストは、このログに出力されます。ODP固有のエラーや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 'xx.xx.xx.xx_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 'xx.xx.xx.xx_3883D71A4ECCAE0F'%2C 43800%2C 'xx.xx.xx.xx'%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 = 'xx.xx.xx.xx_3883D71A4ECCAE0F_AB18'%2C product_id = 'KO,1138us,29us,0us,984us,Y0-7F16DD5BDF00,,,Unknown column 'push_switch' in 'field list'
2020-03-18 21:28:10.497945,xxx,0a0fe91c1514974353459100919649,0.1,,cluster:tenant:database,OB_MYSQL,test,test_99,COM_QUERY,INSERT,failed,1054,INSERT INTO test_99 (push_switch ) VALUES ( '1' ) ,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
システム貫通データ:システムの災害復旧情報など
穿通データ
DBKey名 (V2.0.20バージョンからサポート)
BeyondTrustの使用状況 (V2.0.20バージョンからサポート)。値が1の場合は使用中、0の場合は未使用を表します。
バックエンドサーバーIP
エラーの詳細
サーバートレース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_1
ログ情報の説明
上記のログ例における各項目の意味は以下の通りです:
ログ出力時刻
現在のアプリケーション名
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レベルで、1秒あたりのトランザクション数、リクエスト数、クライアント接続数、サーバー接続数、SQL処理時間、1秒あたりのERROR応答パケット数、ルーティングテーブル、およびネットワークリクエストバイト数の情報を提供します。
システム監視
システム監視は、ODPクラスタレベルおよび個々のODP IPレベルで、Linuxシステム負荷、CPU利用率、平均1秒あたりのI/O回数、1回あたりのI/O平均処理時間、1秒あたりのI/Oデータ量、ネットワークスループット、メモリ、およびディスクの情報を提供します。
ODP監視の詳細については、《OCPユーザーガイド》のODPクラスタパフォーマンス監視章を参照してください。