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
エラーの詳細
Server Trace 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クラスタパフォーマンスモニタリング の章を参照してください。