{"action":"created","issue":{"url":"https://api.github.com/repos/collectd/collectd/issues/1819","repository_url":"https://api.github.com/repos/collectd/collectd","labels_url":"https://api.github.com/repos/collectd/collectd/issues/1819/labels{/name}","comments_url":"https://api.github.com/repos/collectd/collectd/issues/1819/comments","events_url":"https://api.github.com/repos/collectd/collectd/issues/1819/events","html_url":"https://github.com/collectd/collectd/issues/1819","id":168277694,"number":1819,"title":"grpc plugin: API changes (discussion)","user":{"login":"octo","id":116087,"avatar_url":"https://avatars.githubusercontent.com/u/116087?v=3","gravatar_id":"","url":"https://api.github.com/users/octo","html_url":"https://github.com/octo","followers_url":"https://api.github.com/users/octo/followers","following_url":"https://api.github.com/users/octo/following{/other_user}","gists_url":"https://api.github.com/users/octo/gists{/gist_id}","starred_url":"https://api.github.com/users/octo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octo/subscriptions","organizations_url":"https://api.github.com/users/octo/orgs","repos_url":"https://api.github.com/users/octo/repos","events_url":"https://api.github.com/users/octo/events{/privacy}","received_events_url":"https://api.github.com/users/octo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-07-29T08:42:18Z","updated_at":"2016-08-21T18:33:34Z","closed_at":null,"body":"I've been playing with the *grpc plugin* and started work on a Go implementation. I stumbled upon some things in the API that I would like to discuss before the interface is included in a release (and therefore set in stone).\r\n\r\n*   **Split Services:** Currently all RPC methods live in a single \"Collectd\" service. I think it would be perfectly reasonable for a server to only implement the *DispatchValues* call, e.g. the stateless Prometheus proxy. To achieve this, we would need to either split this into multiple services or implementations need to return a \"not implemented\" error. Personally, I think the former is the cleaner solution.\r\n*   **Add data source names:** The JSON representation of value lists, the Go implementation and potentially some more include the name of \"data sources\" in the payload. This removes (much of) the implied shared state of the *types.db(5)*, which IMHO is a good thing. I'd like to add this to the *ValueList* type.\r\n*   **Use streaming RPCs:** I think that the *DispatchValues* call would benefit from being turned into a \"client side\" streaming call, i.e. let clients submit many value lists in a single call. Eventually, a \"send me all values until I say 'stop'\" call would be nice to have.\r\n*   **Unify packages:** The protocol buffers are currently broken up into two packages, *collectd* and *collectd.types*. This makes it a wee bit cumbersome to use in Go, since you have to import two generated packages which need to live in different directories.\r\n*   **Rename fields:** I'd like to rename `repeated Value value` in the *ValueList* message to `values`, `ValueList values` in the *DispatchValuesRequest* message to `value_list` and `repeated ValueList values` in the *QueryValuesReply* message to `value_lists`."},"comment":{"url":"https://api.github.com/repos/collectd/collectd/issues/comments/241273590","html_url":"https://github.com/collectd/collectd/issues/1819#issuecomment-241273590","issue_url":"https://api.github.com/repos/collectd/collectd/issues/1819","id":241273590,"user":{"login":"octo","id":116087,"avatar_url":"https://avatars.githubusercontent.com/u/116087?v=3","gravatar_id":"","url":"https://api.github.com/users/octo","html_url":"https://github.com/octo","followers_url":"https://api.github.com/users/octo/followers","following_url":"https://api.github.com/users/octo/following{/other_user}","gists_url":"https://api.github.com/users/octo/gists{/gist_id}","starred_url":"https://api.github.com/users/octo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octo/subscriptions","organizations_url":"https://api.github.com/users/octo/orgs","repos_url":"https://api.github.com/users/octo/repos","events_url":"https://api.github.com/users/octo/events{/privacy}","received_events_url":"https://api.github.com/users/octo/received_events","type":"User","site_admin":false},"created_at":"2016-08-21T18:33:33Z","updated_at":"2016-08-21T18:33:33Z","body":"@tokkee I vaguely remember pimping `LISTVAL` a while back, also with *fnmatch()* like functionality, but clearly those changes are not in *master*. I wonder in which purgatory that code currently resides …\r\n\r\nAnyway, I think I'm going to send a PR renaming `DispatchValues` to `PutValues` for consistency and should I find the above changes somewhere, I might just introduce a `QUERYVAL` command to the *unixsock plugin* …"}}
{"actor":{"display_login":"octo"}}