mirror of
https://github.com/openziti/ziti.git
synced 2026-10-13 15:51:21 +00:00
6fdd5bcda5
* Add support for multiple terminators to services and sync model abstractions with edge * Add Snapshot to db.Db * Make API friendly errors * Add association querying. Consolidate Entity* interfaces
154 lines
3.2 KiB
Protocol Buffer
154 lines
3.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package ctrl.pb;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
enum ContentType {
|
|
Zero = 0;
|
|
|
|
SessionRequestType = 1000;
|
|
SessionSuccessType = 1001;
|
|
DialType = 1002;
|
|
LinkType = 1003;
|
|
FaultType = 1004;
|
|
RouteType = 1005;
|
|
UnrouteType = 1006;
|
|
MetricsType = 1007;
|
|
TogglePipeTracesRequestType = 1008;
|
|
TraceEventType = 1010;
|
|
CreateTerminatorRequestType = 1011;
|
|
RemoveTerminatorRequestType = 1012;
|
|
InspectRequestType = 1013;
|
|
InspectResponseType = 1014;
|
|
StartXgressType = 1015;
|
|
SessionFailedType = 1016;
|
|
}
|
|
|
|
message SessionRequest {
|
|
string ingressId = 1;
|
|
string serviceId = 2;
|
|
map<uint32, bytes> peerData = 3;
|
|
}
|
|
|
|
message CreateTerminatorRequest {
|
|
string id = 1;
|
|
string serviceId = 2;
|
|
string binding = 3;
|
|
string address = 4;
|
|
map<uint32, bytes> peerData = 5;
|
|
}
|
|
|
|
message RemoveTerminatorRequest {
|
|
string terminatorId = 1;
|
|
}
|
|
|
|
message Dial {
|
|
string id = 1;
|
|
string address = 2;
|
|
}
|
|
|
|
message Link {
|
|
string id = 1;
|
|
}
|
|
|
|
enum FaultSubject {
|
|
IngressFault = 0;
|
|
EgressFault = 1;
|
|
LinkFault = 2;
|
|
}
|
|
|
|
message Fault {
|
|
FaultSubject subject = 1;
|
|
string id = 2;
|
|
}
|
|
|
|
message Route {
|
|
string sessionId = 1;
|
|
|
|
message Egress {
|
|
string binding = 1;
|
|
string address = 2;
|
|
string destination = 3;
|
|
map<uint32, bytes> peerData = 4;
|
|
}
|
|
Egress egress = 2;
|
|
|
|
message Forward {
|
|
string srcAddress = 1;
|
|
string dstAddress = 2;
|
|
}
|
|
repeated Forward forwards = 3;
|
|
}
|
|
|
|
message Unroute {
|
|
string sessionId = 1;
|
|
bool now = 2;
|
|
}
|
|
|
|
enum MetricsSourceType {
|
|
Ingress = 0;
|
|
Egress = 1;
|
|
Internal = 2; // Is there a better word here? Router, Intermediary, NonEdge?
|
|
// Do we also want Edge and/or SDK here? Anything else?
|
|
}
|
|
|
|
message MetricsMessage {
|
|
MetricsSourceType sourceType = 1;
|
|
string sourceId = 2;
|
|
google.protobuf.Timestamp timestamp = 3;
|
|
map<string, string> tags = 4;
|
|
map<string, int64> intValues = 5;
|
|
map<string, double> floatValues = 6;
|
|
map<string, Meter> meters = 7;
|
|
map<string, Histogram> histograms = 8;
|
|
map<string, IntervalCounter> intervalCounters = 9;
|
|
|
|
message Meter {
|
|
int64 count = 1;
|
|
double m1Rate = 2;
|
|
double m5Rate = 3;
|
|
double m15Rate = 4;
|
|
double meanRate = 5;
|
|
}
|
|
|
|
message Histogram {
|
|
int64 count = 1;
|
|
int64 max = 2;
|
|
double mean = 3;
|
|
int64 min = 4;
|
|
double stdDev = 5;
|
|
double variance = 6;
|
|
double p50 = 7;
|
|
double p75 = 8;
|
|
double p95 = 9;
|
|
double p99 = 10;
|
|
double p999 = 11;
|
|
double p9999 = 12;
|
|
}
|
|
|
|
message IntervalCounter {
|
|
uint64 intervalLength = 1;
|
|
repeated IntervalBucket buckets = 2;
|
|
}
|
|
|
|
message IntervalBucket {
|
|
int64 intervalStartUTC = 1; // Only need minute resolution, this will be seconds resolution
|
|
map<string, uint64> values = 3;
|
|
}
|
|
}
|
|
|
|
message InspectRequest {
|
|
repeated string requestedValues = 1;
|
|
}
|
|
|
|
message InspectResponse {
|
|
bool success = 1;
|
|
repeated string errors = 2;
|
|
repeated InspectValue values = 3;
|
|
|
|
message InspectValue {
|
|
string name = 1;
|
|
string value = 2;
|
|
}
|
|
} |