Protocol Documentation

Table of Contents

Top

peer/peer.proto

ChangeNotification

ChangeNotification indicates a change regarding a hubble peer.

Field

Type

Label

Description

name

string

Name is the name of the peer, typically the hostname. The name includes the cluster name if a value other than default has been specified. This value can be used to uniquely identify the host. When the cluster name is not the default, the cluster name is prepended to the peer name and a forward slash is added.

Examples: - runtime1 - testcluster/runtime1 | | address | string | | Address is the address of the peer’s gRPC service. | | type | ChangeNotificationType | | ChangeNotificationType indicates the type of change, ie whether the peer was added, deleted or updated. | | tls | TLS | | TLS provides information to connect to the Address with TLS enabled. If not set, TLS shall be assumed to be disabled. |

NotifyRequest

TLS

TLS provides information to establish a TLS connection to the peer.

Field

Type

Label

Description

server_name

string

ServerName is used to verify the hostname on the returned certificate.

ChangeNotificationType

ChangeNotificationType defines the peer change notification type.

Name

Number

Description

UNKNOWN

0

PEER_ADDED

1

PEER_DELETED

2

PEER_UPDATED

3

Peer

Peer lists hubble peers and notifies of changes.

Method Name

Request Type

Response Type

Description

Notify

NotifyRequest

ChangeNotification stream

Notify sends information about hubble peers in the cluster. When Notify is called, it sends information about all the peers that are already part of the cluster (with the type as PEER_ADDED). It subsequently notifies of any change.

Scalar Value Types

.proto Type

Notes

C++

Java

Python

Go

C#

PHP

Ruby

double

double

double

float

float64

double

float

Float

float

float

float

float

float32

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

int32

int

integer

Bignum or Fixnum (as required)

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

int64

long

integer/string

Bignum

uint32

Uses variable-length encoding.

uint32

int

int/long

uint32

uint

integer

Bignum or Fixnum (as required)

uint64

Uses variable-length encoding.

uint64

long

int/long

uint64

ulong

integer/string

Bignum or Fixnum (as required)

sint32

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sint64

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.

int64

long

int/long

int64

long

integer/string

Bignum

fixed32

Always four bytes. More efficient than uint32 if values are often greater than 2^28.

uint32

int

int

uint32

uint

integer

Bignum or Fixnum (as required)

fixed64

Always eight bytes. More efficient than uint64 if values are often greater than 2^56.

uint64

long

int/long

uint64

ulong

integer/string

Bignum

sfixed32

Always four bytes.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sfixed64

Always eight bytes.

int64

long

int/long

int64

long

integer/string

Bignum

bool

bool

boolean

boolean

bool

bool

boolean

TrueClass/FalseClass

string

A string must always contain UTF-8 encoded or 7-bit ASCII text.

string

String

str/unicode

string

string

string

String (UTF-8)

bytes

May contain any arbitrary sequence of bytes.

string

ByteString

str

[]byte

ByteString

string

String (ASCII-8BIT)