1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
syntax = "proto3";
package agent.v1;
import "agent/v1/common.proto";
import "google/protobuf/timestamp.proto";
// Usage record.
message UsageRecord {
string session_id = 1;
TokenUsage total_tokens = 2;
google.protobuf.Timestamp recorded_at = 3;
}
// Get usage request.
message GetUsageRequest {
string session_id = 1; // optional filter
}
// Get usage response.
message GetUsageResponse {
repeated UsageRecord records = 1;
TokenUsage aggregate = 2;
}
// Get metrics request.
message GetMetricsRequest {}
// Get metrics response (JSON format).
message GetMetricsResponse {
string metrics = 1; // JSON
}
// Get Prometheus metrics request.
message GetPrometheusMetricsRequest {}
// Get Prometheus metrics response.
message GetPrometheusMetricsResponse {
string text = 1; // Prometheus text format
}
// Usage service.
service UsageService {
rpc GetUsage(GetUsageRequest) returns (GetUsageResponse);
}
// Metrics service.
service MetricsService {
rpc GetMetrics(GetMetricsRequest) returns (GetMetricsResponse);
rpc GetPrometheusMetrics(GetPrometheusMetricsRequest) returns (GetPrometheusMetricsResponse);
}