本記事では、現在のOceanBaseクラスタの状態情報をクエリする方法について説明します。
呼び出しの説明
インターフェース制約
obshell ServerはこのAPIに対してセキュリティ検証を実施します。詳細については、API混合暗号化を参照してください。
リクエストパス
GET /api/v1/ob/info
戻り値
パラメータ |
型 |
説明 |
|---|---|---|
| successful | bool | リクエストが成功したかどうか。 |
| timestamp | time.Time | サーバーがリクエストを完了したタイムスタンプ。 |
| duration | int | サーバーがリクエストを処理した時間(ミリ秒)。 |
| status | int | HTTPステータスコード仕様に準拠したエンコード。 |
| traceId | string | リクエストのTrace 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を呼び出すこともできます。