10 KiB
Protocol Documentation
Table of Contents
-
Services
-
Messages
state/service.proto
Service "state.Status"
Status service provides node's healthcheck and status info. TODO: decide how to describe auth and were contains permissions.
rpc Netmap(NetmapRequest) returns (.bootstrap.SpreadMap);
rpc Metrics(MetricsRequest) returns (MetricsResponse);
rpc HealthCheck(HealthRequest) returns (HealthResponse);
rpc DumpConfig(DumpRequest) returns (DumpResponse);
rpc DumpVars(DumpVarsRequest) returns (DumpVarsResponse);
rpc ChangeState(ChangeStateRequest) returns (ChangeStateResponse);
Method Netmap
Netmap request allows to receive current bootstrap.SpreadMap
Name | Input | Output |
---|---|---|
Netmap | NetmapRequest | .bootstrap.SpreadMap |
Method Metrics
Metrics request allows to receive metrics in prometheus format
Name | Input | Output |
---|---|---|
Metrics | MetricsRequest | MetricsResponse |
Method HealthCheck
HealthCheck request allows to check health status of the node. If node unhealthy field Status would contains detailed info.
Name | Input | Output |
---|---|---|
HealthCheck | HealthRequest | HealthResponse |
Method DumpConfig
DumpConfig request allows dumping settings for the current node. To permit access, used server config options. The request should be signed.
Name | Input | Output |
---|---|---|
DumpConfig | DumpRequest | DumpResponse |
Method DumpVars
DumpVars returns debug variables for the current node. To permit access, used server config options. The request should be signed.
Name | Input | Output |
---|---|---|
DumpVars | DumpVarsRequest | DumpVarsResponse |
Method ChangeState
ChangeState allows to change current node state of node. To permit access, used server config options. The request should be signed.
Name | Input | Output |
---|---|---|
ChangeState | ChangeStateRequest | ChangeStateResponse |
Message ChangeStateRequest
ChangeStateRequest contains a new state of node.
Field | Type | Label | Description |
---|---|---|---|
state | ChangeStateRequest.State | State is a new state of node. | |
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
Message ChangeStateResponse
ChangeStateResponse is an empty response, that returns when RPC invoked without errors.
Message DumpRequest
DumpRequest message to fetch current server config.
Field | Type | Label | Description |
---|---|---|---|
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
Message DumpResponse
DumpResponse message contains current server config. Config stored in JSON encoded into slice of bytes.
Field | Type | Label | Description |
---|---|---|---|
Config | bytes |
Message DumpVarsRequest
DumpVarsRequest message to fetch current server debug variables.
Field | Type | Label | Description |
---|---|---|---|
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
Message DumpVarsResponse
DumpVarsResponse message contains current server debug variables. Variables stored in JSON encoded into slice of bytes.
Field | Type | Label | Description |
---|---|---|---|
Variables | bytes |
Message HealthRequest
HealthRequest message to check current state
Field | Type | Label | Description |
---|---|---|---|
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
Message HealthResponse
HealthResponse message with current state
Field | Type | Label | Description |
---|---|---|---|
Healthy | bool | Healthy is true when node alive and healthy | |
Status | string | Status contains detailed information about health status |
Message MetricsRequest
MetricsRequest message to request node metrics
Field | Type | Label | Description |
---|---|---|---|
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
Message MetricsResponse
MetricsResponse contains [][]byte, every []byte is marshaled MetricFamily proto message from github.com/prometheus/client_model/metrics.proto
Field | Type | Label | Description |
---|---|---|---|
Metrics | bytes | repeated |
Message NetmapRequest
NetmapRequest message to request current node netmap
Field | Type | Label | Description |
---|---|---|---|
Meta | service.RequestMetaHeader | RequestMetaHeader contains information about request meta headers (should be embedded into message) | |
Verify | service.RequestVerificationHeader | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
ChangeStateRequest.State
Name | Number | Description |
---|---|---|
Unknown | 0 | Unknown is default value. Does nothing. |
Online | 1 | Online used when need to set node to the online state. |
Offline | 2 | Offline used when need to set node to the offline state. |
Scalar Value Types
.proto Type | Notes | C++ Type | Java Type | Python Type |
---|---|---|---|---|
double | double | double | float | |
float | float | float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
uint32 | Uses variable-length encoding. | uint32 | int | int/long |
uint64 | Uses variable-length encoding. | uint64 | long | int/long |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
sfixed32 | Always four bytes. | int32 | int | int |
sfixed64 | Always eight bytes. | int64 | long | int/long |
bool | bool | boolean | boolean | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |