Skip to main content
Version: 0.9.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.

instances

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

RegisteredService

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
}

hostname

string
The hostname by which this service is accessed. Can correspond to the hostname of an internal service or that of a virtual host on a gateway.

ports

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

subsets

List of string
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
}

instances

List of string
OUTPUT_ONLY
List of FQNs of the existing instances for this service. This is only available for internal and load balancer services and correspond to physical services in the onboarded clusters.

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
}

source

string
REQUIRED
Source of the service: Kubernetes, Istio, Consul, etc.

string = {
  min_len: 1
}

metrics

List of tetrateio.api.tsb.registry.v2.RegisteredService.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:

- productpage-global: |productpage|bookinfo|| - productpage-cluster1: |productpage|bookinfo|cluster1| - productpage-cluster2: |productpage|bookinfo|cluster2| - productpage-v1: v1|productpage|bookinfo|| - productpage-v1-cluster1: v1|productpage|bookinfo|cluster1|

This is only available for Observed and Controlled services.

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.RegisteredService.MetricConfig.MetricType
Type of the metric (single_instance/aggregated).

instance

string
The FQN of the instance related with an instance metric. Will be empty for group metrics.

MetricType

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

NameNumberDescription

SINGLE_INSTANCE

0

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

AGGREGATED

1

An aggregated metric config represents a set of physical services.

ServiceType

ServiceType denotes the exposition of a service in the mesh.

NameNumberDescription

INTERNAL

0

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

LOADBALANCER

1

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

EXTERNAL

2

An external service (not in the mesh).

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.

NameNumberDescription

REGISTERED

0

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

OBSERVED

1

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

CONTROLLED

2

A controlled service is a service that is part of the mesh and has a proxy we can configure.