100 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
syntax = "proto3";
 | 
						|
 | 
						|
service Debug {
 | 
						|
        rpc Log(LogRequest) returns (stream Record) {};
 | 
						|
        rpc Health(HealthRequest) returns (HealthResponse) {};
 | 
						|
        rpc Stats(StatsRequest) returns (StatsResponse) {};
 | 
						|
	rpc Trace(TraceRequest) returns (TraceResponse) {};
 | 
						|
}
 | 
						|
 | 
						|
message HealthRequest {
 | 
						|
	// optional service name
 | 
						|
	string service = 1;
 | 
						|
}
 | 
						|
 | 
						|
message HealthResponse {
 | 
						|
	// default: ok
 | 
						|
	string status = 1;
 | 
						|
}
 | 
						|
 | 
						|
message StatsRequest {
 | 
						|
	// optional service name
 | 
						|
	string service = 1;
 | 
						|
}
 | 
						|
 | 
						|
message StatsResponse {
 | 
						|
	// timestamp of recording
 | 
						|
	uint64 timestamp = 1;
 | 
						|
	// unix timestamp
 | 
						|
	uint64 started = 2;
 | 
						|
	// in seconds
 | 
						|
	uint64 uptime = 3;
 | 
						|
	// in bytes
 | 
						|
	uint64 memory = 4;
 | 
						|
	// num threads
 | 
						|
	uint64 threads = 5;
 | 
						|
	// total gc in nanoseconds
 | 
						|
	uint64 gc = 6;
 | 
						|
	// total number of requests
 | 
						|
	uint64 requests = 7;
 | 
						|
	// total number of errors
 | 
						|
	uint64 errors = 8;
 | 
						|
}
 | 
						|
 | 
						|
// LogRequest requests service logs
 | 
						|
message LogRequest {
 | 
						|
	// service to request logs for
 | 
						|
	string service = 1;
 | 
						|
	// stream records continuously
 | 
						|
	bool stream = 2;
 | 
						|
	// count of records to request
 | 
						|
	int64 count = 3;
 | 
						|
	// relative time in seconds
 | 
						|
	// before the current time
 | 
						|
	// from which to show logs
 | 
						|
	int64 since = 4;
 | 
						|
}
 | 
						|
 | 
						|
// Record is service log record
 | 
						|
message Record {
 | 
						|
    // timestamp of log record
 | 
						|
    int64 timestamp = 1;
 | 
						|
    // record metadata
 | 
						|
    map<string,string> metadata = 2;
 | 
						|
    // message
 | 
						|
    string message = 3;
 | 
						|
}
 | 
						|
 | 
						|
message TraceRequest {
 | 
						|
	// trace id to retrieve
 | 
						|
	string id = 1;
 | 
						|
}
 | 
						|
 | 
						|
message TraceResponse {
 | 
						|
	repeated Span spans = 1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
enum SpanType {
 | 
						|
    INBOUND = 0;
 | 
						|
    OUTBOUND = 1;
 | 
						|
}
 | 
						|
 | 
						|
message Span {
 | 
						|
	// the trace id
 | 
						|
	string trace = 1;
 | 
						|
	// id of the span
 | 
						|
	string id = 2;
 | 
						|
	// parent span
 | 
						|
	string parent = 3;
 | 
						|
	// name of the resource
 | 
						|
	string name = 4;
 | 
						|
	// time of start in nanoseconds
 | 
						|
	uint64 started = 5;
 | 
						|
	// duration of the execution in nanoseconds
 | 
						|
	uint64 duration = 6;
 | 
						|
	// associated metadata
 | 
						|
	map<string,string> metadata = 7;
 | 
						|
	SpanType type = 8;
 | 
						|
}
 |