Services
- HubClientService: The hub client of the node hosting the grpc api. So if you're connecting to the grpc api of a nanoping client, this
service will be used to on behalf of the nanoping client which then will be the node in question when calling the
methods.
- HubServerService: If the grpc hosting node is connected to a hub server, or if the node is hosting the hub server, this service can be
used to get the information about the nodes connected to the hub server.
- LoggingService: The logging service is used to get the log message produced by the services running on a node. The logging service
is running on every node connected to the hub. So a node id is required for every method call to specify the node
that the request is intended for.
- NetworkInstances: The network instance service is to fetch network instances and information about their associated pipelines. Network
instances cannot be created, edited, or deleted by the API. Network instances is managed by the associated Network
and the instances is created automatically by the network whenever a node is included in the Network configuration.
- PipelinesService: The pipelines service is used to manage the pipelines of a node hosting the service, such as the nanoping client. The
service can be used to create, update, delete, start, and stop pipelines. The service also provides the ability to
to fetch logs and telemetry data of pipeline runs. Since this service runs on multiple nodes, every method requires
the node_id of the node that the request is intended for.
- ResourcesService: The resources service is used to get the metrics of the system a node is running on. The metrics include things such
as CPU usage, memory, storage, etc. The service is running on every node connected to the hub. So a node id is
required for every method call to specify the node that the request is intended for.
HubClientService
Located in hub_client.proto
The hub client of the node hosting the grpc api. So if you're connecting to the grpc api of a nanoping client, this
service will be used to on behalf of the nanoping client which then will be the node in question when calling the
methods.
AuthenticateByRequestRequest
AuthenticateByRequestResponse
DisconnectRequest
DisconnectResponse
GetLocalNodeIdRequest
GetLocalNodeIdResponse
Field | Type | Label | Description |
---|
node_id | string | | The hub node id of the node hosting the grpc api. |
is_authenticated | bool | | True if the node is authenticated to a hub server. |
GetNodeRequest
Field | Type | Label | Description |
---|
node_id | string | | The id of the node to get information about. |
GetNodeResponse
Field | Type | Label | Description |
---|
node | Node | | The node information about the node hosting the grpc api. |
SetNodeRequest
Field | Type | Label | Description |
---|
node_id | string | | The id of the node to set information about. |
name | string | | The name of the node |
metadata | NodeMetadata | | The metadata of the node |
SetNodeResponse
Field | Type | Label | Description |
---|
node | Node | | The local node information |
StreamConnectionStateRequest
StreamConnectionStateResponse
ConnectionState
Name | Number | Description |
---|
UNAUTHENTICATED | 0 | The node is not authenticated to the hub server. |
DISCONNECTED | 1 | The node is connected to the hub server. |
CONNECTED | 2 | The node is disconnected from the hub server. |
Node
Field | Type | Label | Description |
---|
id | string | | Unique id of the node. |
name | string | | Human readable name of the node. |
services | NodeService | repeated | Services accessible on the node. |
metadata | NodeMetadata | | Metadata of the node. |
NodeMetadata.ItemsEntry
NodeService
Types of services.
Name | Number | Description |
---|
HUB_SERVER | 0 | |
RESOURCES | 1 | |
LOGGING | 2 | |
PIPELINES | 3 | |
HubServerService
Located in hub_server.proto
If the grpc hosting node is connected to a hub server, or if the node is hosting the hub server, this service can be
used to get the information about the nodes connected to the hub server.
AuthenticationByRequestAnswer
Field | Type | Label | Description |
---|
request_id | uint64 | | The request id of the authentication by request. |
accept | bool | | Accept or reject the authentication by request. |
AuthenticationByRequestRequest
Field | Type | Label | Description |
---|
node | Node | | The node information about the node that sent the authentication by request. |
request_id | uint64 | | The request id of the authentication by request. |
GetNodesRequest
Request to get the nodes connected to the hub server. All filters given works in combination as an 'AND' operation.
Field | Type | Label | Description |
---|
metadata_filters | GetNodesRequest.MetadataFiltersEntry | repeated | Will filter the nodes by the given metadata filters. If more than one filter is added the combination will act as an 'AND' operation. So if two or more filters is used, all the filters must match for a node to be included in the response. These filters are optional and can be left empty. |
service_filters | NodeService | repeated | Will filter the nodes by the given service filters. If more than one filter is added the combination will act as an 'AND' operation. So if two or more filters is used, all the filters must match for a node to be included in the response. These filters are optional and can be left empty. |
GetNodesRequest.MetadataFiltersEntry
GetNodesResponse
Field | Type | Label | Description |
---|
nodes | Node | repeated | The nodes connected to the hub server. |
LoggingService
Located in logging.proto
The logging service is used to get the log message produced by the services running on a node. The logging service
is running on every node connected to the hub. So a node id is required for every method call to specify the node
that the request is intended for.
Message
A single logging message
Messages
A collection of logging messages
Field | Type | Label | Description |
---|
messages | Message | repeated | |
OpenLogStreamRequest
A request to open a stream to receive logging messages
Options
Logging stream options
Field | Type | Label | Description |
---|
lines | int64 | | |
Level
Logging levels for the pipeline logging messages
Name | Number | Description |
---|
STATE | 0 | |
DEBUG | 1 | |
INFO | 2 | |
WARNING | 3 | |
ERROR | 4 | |
FATAL | 5 | |
BoolMetric
Metadata for boolean metrics
Collection
Collection of metrics
Collection.MetricsEntry
Constant
A constant used when the value is fixed
Enum8Metric
Metadata for enumerated metrics
Enum8Metric.EnumValue
Enum8Metric.ValuesEntry
Float32Metric
Metadata for 32-bit floating-point metrics
Float64Metric
Metadata for 64-bit floating-point metrics
Int32Metric
Metadata for signed 32-bit metrics
Int64Metric
Metadata for signed 64-bit metrics
Metric
Metadata for a single metric
UInt32Metric
Metadata for unsigned 32-bit metrics
UInt64Metric
Metadata for unsigned 64-bit metrics
Kind
Name | Number | Description |
---|
GAUGE | 0 | Indicates that the metric value can both increase and decrease |
COUNTER | 1 | Indicates that the metric value can only increase |
NetworkInstances
Located in networks.proto
The network instance service is to fetch network instances and information about their associated pipelines. Network
instances cannot be created, edited, or deleted by the API. Network instances is managed by the associated Network
and the instances is created automatically by the network whenever a node is included in the Network configuration.
GetNetworkInstancesRequest
Field | Type | Label | Description |
---|
node_id | string | | The ID of the node to fetch network instances from. |
GetNetworkInstancesResponse
Field | Type | Label | Description |
---|
network_instances | NetworkInstance | repeated | The network instances of the node. |
NetworkInstance
Field | Type | Label | Description |
---|
id | string | | The ID of the Network Instance. |
network_id | string | | The ID of the associated Network. |
network_name | string | | The name of the associated Network. |
pipeline_ids | string | repeated | The IDs of the pipelines that are associated and managed by the Network Instance. |
StreamNetworkInstanceCreateEvent
StreamNetworkInstanceDeleteEvent
StreamNetworkInstanceEvent
StreamNetworkInstanceUpdateEvent
StreamNetworkInstancesRequest
Field | Type | Label | Description |
---|
node_id | string | | The ID of the node to stream for network instances from. |
PipelinesService
Located in pipelines.proto
The pipelines service is used to manage the pipelines of a node hosting the service, such as the nanoping client. The
service can be used to create, update, delete, start, and stop pipelines. The service also provides the ability to
to fetch logs and telemetry data of pipeline runs. Since this service runs on multiple nodes, every method requires
the node_id of the node that the request is intended for.
CreatePipelineRequest
Field | Type | Label | Description |
---|
node_id | string | | |
name | string | | The name of the pipeline |
json_config | string | | The JSON configuration of the pipeline |
restart_policy | RestartPolicy | | The restart policy of the pipeline. Leave not-set for default value RestartPolicyNever. |
default_logging_level | nanopinggrpc.logging.Level | | |
instructions_timeout | int32 | | |
CreatePipelineResponse
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
DeletePipelineRequest
DeletePipelineResponse
GetPipelineByIdRequest
GetPipelineByIdResponse
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
GetPipelineByNameRequest
GetPipelineByNameResponse
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
GetPipelineByRunIdRequest
GetPipelineByRunIdResponse
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
GetPipelinesRequest
Field | Type | Label | Description |
---|
node_id | string | | |
GetPipelinesResponse
Field | Type | Label | Description |
---|
pipelines | Pipeline | repeated | |
Kpi
LogStreamMessages
OpenLogStreamRequest
OpenTelemetryStreamRequest
Pipeline
A pipeline is an executable composition of network components.
Field | Type | Label | Description |
---|
id | string | | ID of a pipeline |
name | string | | The name of the pipeline |
started | bool | | Whether the pipeline is running right now or not |
current_run | string | | |
json_config | string | | The JSON configuration of the pipeline |
config_compatability | ConfigCompatability | | A read-only field of the compatibility of the pipeline configuration. |
restart_policy | RestartPolicy | | The restart policy of the pipeline |
default_logging_level | nanopinggrpc.logging.Level | | The default logging level of the pipeline |
instructions_timeout | int32 | | The amount of time in seconds before considering a pipeline instruction as timed out |
RestartPolicy
Restart policy of a pipeline
RestartPolicyAlways
Restart policy of a pipeline that determines a pipeline to restart always when stopped or an error happens.
Field | Type | Label | Description |
---|
max_restarts | int32 | | The maximum number of restarts allowed for the pipeline. If 0 the pipeline will keep retrying forever. |
RestartPolicyNever
Restart policy of a pipeline that determines a pipeline not to restart when stopped or an error happens.
RestartPolicyOnFailure
Restart policy of a pipeline that determines a pipeline to restart only when an error happens.
Field | Type | Label | Description |
---|
max_restarts | int32 | | The maximum number of restarts allowed for the pipeline. If 0 the pipeline will keep retrying forever. |
StartPipelineRequest
StartPipelineResponse
Field | Type | Label | Description |
---|
run_id | string | | |
StopPipelineRequest
StopPipelineResponse
StreamPipelinesCreateEvent
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
StreamPipelinesDeleteEvent
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
StreamPipelinesEvent
StreamPipelinesRequest
Field | Type | Label | Description |
---|
node_id | string | | |
StreamPipelinesUpdateEvent
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
TelemetrySample
UpdatePipelineRequest
Field | Type | Label | Description |
---|
node_id | string | | |
id | string | | The ID of the pipeline |
name | string | | The name of the pipeline |
json_config | string | | The JSON configuration of the pipeline |
restart_policy | RestartPolicy | | The restart policy of the pipeline. |
default_logging_level | nanopinggrpc.logging.Level | | The default logging level of the pipeline. |
instructions_timeout | int32 | | The amount of time in seconds before considering a pipeline instruction as timed out. |
UpdatePipelineResponse
Field | Type | Label | Description |
---|
pipeline | Pipeline | | |
ConfigCompatability
Enum to represent the compatibility of the pipeline configuration
Name | Number | Description |
---|
COMPATIBLE | 0 | |
INCOMPATIBLE | 1 | If the nanoping client version is older than the pipeline configuration version the configuration is considered incompatible |
ResourcesService
Located in resources.proto
The resources service is used to get the metrics of the system a node is running on. The metrics include things such
as CPU usage, memory, storage, etc. The service is running on every node connected to the hub. So a node id is
required for every method call to specify the node that the request is intended for.
MetricsSample
OpenMetricsStreamRequest
Field | Type | Label | Description |
---|
node_id | string | | |