Merge pull request #3329 from efuss/fix-3311
[collectd.git] / proto / collectd.proto
index 84db755..83d2128 100644 (file)
@@ -1,5 +1,5 @@
 // collectd - proto/collectd.proto
-// Copyright (C) 2015 Sebastian Harl
+// Copyright (C) 2015-2016 Sebastian Harl
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
 syntax = "proto3";
 
 package collectd;
+option go_package = "collectd.org/rpc/proto";
 
 import "types.proto";
 
 service Collectd {
-       // Dispatch collected values to collectd.
-       rpc DispatchValues(DispatchValuesRequest) returns (DispatchValuesReply);
+  // PutValues reads the value lists from the PutValuesRequest stream.
+  // The gRPC server embedded into collectd will inject them into the system
+  // just like the network plugin.
+  rpc PutValues(stream PutValuesRequest) returns(PutValuesResponse);
+
+  // QueryValues returns a stream of matching value lists from collectd's
+  // internal cache.
+  rpc QueryValues(QueryValuesRequest) returns(stream QueryValuesResponse);
 }
 
-// The arguments to DispatchValues.
-message DispatchValuesRequest {
-       collectd.types.ValueList values = 1;
+// The arguments to PutValues.
+message PutValuesRequest {
+  // value_list is the metric to be sent to the server.
+  collectd.types.ValueList value_list = 1;
 }
 
-// The response from DispatchValues.
-message DispatchValuesReply {
+// The response from PutValues.
+message PutValuesResponse {}
+
+// The arguments to QueryValues.
+message QueryValuesRequest {
+  // Query by the fields of the identifier. Only return values matching the
+  // specified shell wildcard patterns (see fnmatch(3)). Use '*' to match
+  // any value.
+  collectd.types.Identifier identifier = 1;
 }
+
+// The response from QueryValues.
+message QueryValuesResponse { collectd.types.ValueList value_list = 1; }