Skip to main content
logoTetrate Service BridgeVersion: 1.11.x

Registered Service

Services in the registry represent logically a service that can be running in different compute platforms and different locations. The same service could be running on different Kubernetes clusters at the same time, on VMS, etc. A service in the registry represents an aggregated and logical view for all those individual services, and provides high-level features such as aggregated metrics.

Port

Port exposed by a service. Registration RPC will complete the instances field by assigning the physical services FQNs.

FieldDescriptionValidation Rule

number

uint32
REQUIRED
A valid non-negative integer port number.

uint32 = {
  lte: 65535
  gte: 1
}

name

string
Name assigned to the port.

serviceDeployments

List of string
OUTPUT_ONLY
The list of FQNs of the instances that expose this port

Service

A service in the registry that represents an aggregated and logical view for all those individual services, and provides high-level features such as aggregated metrics.

FieldDescriptionValidation Rule

fqn

string
OUTPUT_ONLY
Fully-qualified name of the resource. This field is read-only.

displayName

string
User friendly name for the resource.

etag

string
The etag for the resource. This field is automatically computed and must be sent on every update to the resource to prevent concurrent modifications.

description

string
A description of the resource.

shortName

string
REQUIRED
Short name for the service, used to uniquely identify it within the organization.

string = {
  min_len: 1
}

hostnames

List of string
The hostnames by which this service is accessed. It corresponds to the gateway virtual hosts. This field is expected to be empty if the service is not publicly accessible.

ports

List of tetrateio.api.tsb.registry.v2.Port
The set of ports on which this service is exposed.

subsets

List of string
OUTPUT_ONLY
Deprecated. Use subset_deployments instead. Subset denotes a specific version of a service. By default the 'version' label is used to designate subsets of a workload. Known subsets for the service.

serviceType

tetrateio.api.tsb.registry.v2.ServiceType
REQUIRED
Internal/external/load balancer service.

enum = {
  defined_only: true
}

externalAddresses

List of string
For kubernetes services of type load balancer, this field contains the list of lb hostnames or IPs assigned to the service.

state

tetrateio.api.tsb.registry.v2.State
REQUIRED
State of the service (registered/observed/controlled)

enum = {
  defined_only: true
}

metrics

List of tetrateio.api.tsb.registry.v2.Service.MetricConfig
OUTPUT_ONLY
Services may expose different metrics. For example, a regular service may expose the usual red metrics for incoming requests. Services running in multiple clusters, may provide different aggregation levels, such as aggregation by cluster, by subset, etc. This list provides a complete list of all the aggregation keys that are available for this particular service. For example, a service that has instances in multiple clusters could provide the following metrics:

  • global: |productpage|bookinfo||*
  • v1: v1|productpage|bookinfo||
  • v1 (cluster1): v1|productpage|bookinfo|cluster1|*

This is only available for Observed and Controlled services.

serviceDeployments

List of tetrateio.api.tsb.registry.v2.Service.ServiceDeployment
OUTPUT_ONLY
List of the existing deployments for this service. This is only available for internal and load balancer services and correspond to physical services in the onboarded clusters. This field is read-only.

subsetDeployments

List of tetrateio.api.tsb.registry.v2.Subset
OUTPUT_ONLY
Subset denotes a specific version of a service. By default the 'version' label is used to designate subsets of a workload. Known subsets for the service.

canonicalName

string
The canonical name of the service defined by user.

spiffeIds

List of string
List of SPIFFE identities used by the workloads of the service.

internalHostnames

List of string
The hostnames by which this service is accessed internally. Can correspond to the FQDN of the service or to the hostnames provided by an external service (E.g. service entry)

MetricConfig

Configuration for metric aggregation

FieldDescriptionValidation Rule

name

string
A user friendly name for this metric.

description

string
A helpful description of what this metric represents.

aggregationKey

string
An aggregation key that can be queried to get metrics for this service.

type

tetrateio.api.tsb.registry.v2.Service.MetricConfig.MetricType
Type of the metric (single_instance/aggregated).

serviceDeployment

string
The FQN of the service deployment related with this metric. Will be empty for group metrics.

parentMetric

string
The name of the metric config that aggregates this one in a higher level. For example, for a subset in a cluster metric, this field has the name of the metric of the same subset across the clusters

ServiceDeployment

ServiceDeployment represents the physical service in a cluster.

FieldDescriptionValidation Rule

fqn

string
OUTPUT_ONLY
Fully-qualified name of the instance. This field is read-only.

source

string
OUTPUT_ONLY
Source of the instance. This field is read-only.

Subset

Subset exposed by a service. Registration RPC will complete the instances field by assigning the physical services FQNs.

FieldDescriptionValidation Rule

name

string
A valid subset name of a service.

serviceDeployments

List of string
OUTPUT_ONLY
The list of FQNs of the service deployments that expose this subset

MetricType

MetricType denotes the relation of a metrics with a physical service instance.

FieldNumberDescription

INVALID

0

SINGLE_INSTANCE

1

A single instance metric config belongs to an specific physical service instance.

SUBSET

2

A subset metric config represents subsets across clusters or hostnames across clusters.

GLOBAL

3

A global metric config represents all the physical services.

ENDPOINT

4

An endpoint metric config represents an endpoint across clusters.

ENDPOINT_INSTANCE

5

An endpoint instance metric config represents an endpoint in a specific cluster.

ServiceType

ServiceType denotes the exposition of a service in the mesh.

FieldNumberDescription

INVALID_TYPE

0

INTERNAL

1

A regular service that is not directly exposed to the outside world.

LOADBALANCER

2

A load balancer service running only the proxy as the workload.

MESH_EXTERNAL

3

A mesh external service.

State

State denotes how deep is the knowledge of a service by the mesh. Meaning that if a service can be controlled, observed or none of these.

FieldNumberDescription

INVALID_STATE

0

EXTERNAL

1

An external service is a service that is known, but that cannot be observed (we can't get metrics for it) and cannot be controlled.

OBSERVED

2

An observed service is a known service that we can have metrics for. For example, a service running the Skywalking agents.

CONTROLLED

3

A controlled service is a service that is part of the mesh, has a proxy we can configure and can be observed with Skywalking agents.