本記事では、現在のOceanBaseクラスタの状態情報を確認する方法について説明します。
呼び出しの説明
インターフェース制約
obshell ServerはこのAPIに対してセキュリティ検証を実施します。詳細については、APIハイブリッド暗号化を参照してください。
リクエストパス
GET /api/v1/ob/info
戻り値
パラメータ |
型 |
説明 |
|---|---|---|
| successful | bool | リクエストが成功したかどうかを示します。 |
| timestamp | time.Time | サーバーがリクエストを完了したタイムスタンプです。 |
| duration | int | サーバーがリクエストを処理した時間(ミリ秒)です。 |
| status | int | HTTP ステータスコードに準拠したエンコードです。 |
| traceId | string | リクエストのトレースIDです。 |
| data | ObInfoResp | ObInfoRespにはagent_infoとobcluster_infoが含まれます。agent_infoには一連のobshellデータ情報が含まれ、obcluster_infoには一連のOBServerノードのデータ情報が含まれます。詳細については、次の表 ObInfoResp情報のデータ構造 を参照してください。 |
| error | ApiError | リクエストによって生成されたErrorで、以下の情報が含まれます:
|
ObInfoResp情報のデータ構造は以下のとおりです:
モジュール |
パラメータ |
タイプ |
説明 |
|---|---|---|---|
| agent_info | ip | string | ノードのIPアドレス |
| port | int | ノードのポート番号 | |
| zone | string | ノードが属するZone | |
| identity | string | ノードのアイデンティティ。SINGLEを指定した場合は、自身の情報のみを返します。それ以外の場合は、クラスタ内のすべてのノード情報を返します。 |
|
| version | string | 使用しているobshellのバージョン番号 | |
| obcluster_info | name | string | OceanBaseクラスタ名 |
| version | string | OceanBaseデータベースのバージョン番号 | |
| topology | map[string][]ServerConfig | OceanBaseクラスタのトポロジー。topologyには、クラスタ内のすべてのZoneのトポロジー情報が含まれます。各OBServerノードの情報はServerConfigで表されます。詳細については、後述のServerConfig情報のデータ構造を参照してください。 |
ServerConfig情報のデータ構造は以下のとおりです:
パラメータ |
型 |
説明 |
|---|---|---|
| svr_ip | string | OBServerノードのIPアドレス |
| svr_port | int | OBServerノードのポート番号 |
| sql_port | int | OBServerノード上のSQLサービスプロトコルのポート番号 |
| agent_port | int | obshellサービスのポート番号 |
| with_rootserver | string | クラスタRS(Root Service)かどうか |
| status | string | OBServerノードの状態 |
例
リクエスト例
GET 10.10.10.1:2886/api/v1/ob/info
レスポンス例
この例では、初期化済みのクラスタ内のすべてのノード情報と、OceanBaseクラスタのトポロジー情報が返されます。OceanBaseクラスタには2つのZoneが含まれており、各Zoneには1つのOBServerノードがあります。
{
"successful": true,
"timestamp": "2024-01-09T20:03:14.33717735+08:00",
"duration": 14,
"status": 200,
"traceId": "f06339705f167a89",
"data": {
"agent_info": [
{
"ip": "10.10.10.1",
"port": 2886,
"zone": "zone1",
"identity": "CLUSTER AGENT",
"version": "4.2.1.0-0"
},
{
"ip": "10.10.10.2",
"port": 2886,
"zone": "zone2",
"identity": "CLUSTER AGENT",
"version": "4.2.1.0-0"
}
],
"obcluster_info": {
"name": "test",
"version": "5.7.25-OceanBase_CE-v4.2.0.0",
"topology": {
"zone1": [
{
"svr_ip": "10.10.10.1",
"svr_port": 2882,
"sql_port": 2881,
"agent_port": 2886,
"with_rootserver": "YES",
"status": "ACTIVE"
}
],
"zone2": [
{
"svr_ip": "10.10.10.2",
"svr_port": 2882,
"sql_port": 2881,
"agent_port": 2886,
"with_rootserver": "NO",
"status": "ACTIVE"
}
]
}
}
}
}
関連ドキュメント
コマンドラインでAPIを呼び出すほかに、SDKメソッドを通じてAPIを呼び出すこともできます。
obshell-sdk-pythonを使用したAPIメソッドのリクエスト方法については、クラスタ情報のクエリを参照してください。
obshell-sdk-goを使用したAPIメソッドのリクエスト方法については、クラスタ情報のクエリを参照してください。