{"action":"created","issue":{"url":"https://api.github.com/repos/google/cadvisor/issues/1458","repository_url":"https://api.github.com/repos/google/cadvisor","labels_url":"https://api.github.com/repos/google/cadvisor/issues/1458/labels{/name}","comments_url":"https://api.github.com/repos/google/cadvisor/issues/1458/comments","events_url":"https://api.github.com/repos/google/cadvisor/issues/1458/events","html_url":"https://github.com/google/cadvisor/issues/1458","id":176771818,"number":1458,"title":"Rethink storage driver model","user":{"login":"timstclair","id":3272040,"avatar_url":"https://avatars.githubusercontent.com/u/3272040?v=3","gravatar_id":"","url":"https://api.github.com/users/timstclair","html_url":"https://github.com/timstclair","followers_url":"https://api.github.com/users/timstclair/followers","following_url":"https://api.github.com/users/timstclair/following{/other_user}","gists_url":"https://api.github.com/users/timstclair/gists{/gist_id}","starred_url":"https://api.github.com/users/timstclair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timstclair/subscriptions","organizations_url":"https://api.github.com/users/timstclair/orgs","repos_url":"https://api.github.com/users/timstclair/repos","events_url":"https://api.github.com/users/timstclair/events{/privacy}","received_events_url":"https://api.github.com/users/timstclair/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/google/cadvisor/labels/area/storage","name":"area/storage","color":"fad8c7"}],"state":"open","locked":false,"assignee":{"login":"timstclair","id":3272040,"avatar_url":"https://avatars.githubusercontent.com/u/3272040?v=3","gravatar_id":"","url":"https://api.github.com/users/timstclair","html_url":"https://github.com/timstclair","followers_url":"https://api.github.com/users/timstclair/followers","following_url":"https://api.github.com/users/timstclair/following{/other_user}","gists_url":"https://api.github.com/users/timstclair/gists{/gist_id}","starred_url":"https://api.github.com/users/timstclair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timstclair/subscriptions","organizations_url":"https://api.github.com/users/timstclair/orgs","repos_url":"https://api.github.com/users/timstclair/repos","events_url":"https://api.github.com/users/timstclair/events{/privacy}","received_events_url":"https://api.github.com/users/timstclair/received_events","type":"User","site_admin":false},"assignees":[{"login":"timstclair","id":3272040,"avatar_url":"https://avatars.githubusercontent.com/u/3272040?v=3","gravatar_id":"","url":"https://api.github.com/users/timstclair","html_url":"https://github.com/timstclair","followers_url":"https://api.github.com/users/timstclair/followers","following_url":"https://api.github.com/users/timstclair/following{/other_user}","gists_url":"https://api.github.com/users/timstclair/gists{/gist_id}","starred_url":"https://api.github.com/users/timstclair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timstclair/subscriptions","organizations_url":"https://api.github.com/users/timstclair/orgs","repos_url":"https://api.github.com/users/timstclair/repos","events_url":"https://api.github.com/users/timstclair/events{/privacy}","received_events_url":"https://api.github.com/users/timstclair/received_events","type":"User","site_admin":false}],"milestone":null,"comments":10,"created_at":"2016-09-13T22:57:03Z","updated_at":"2016-09-15T00:05:07Z","closed_at":null,"body":"Our current model for cAdvisor storage backends involves checking in code that translates the cAdvisor API and pushes out or exposes the stats for each storage backend. The problem with this approach is that we don't have a good story for maintenance of all the storage drivers, and expecting the current cAdvisor maintainers to maintain a driver for every storage solution on the market is unsalable.\r\n\r\nFor example, we currently have 6 PRs open to add new storage drivers: https://github.com/google/cadvisor/pulls?q=is%3Aopen+is%3Apr+label%3Aarea%2Fstorage\r\n\r\nThere are a couple ways we could handle storage drivers if we moved them out of cAdvisor\r\n\r\n1. Implement the drivers as a shim process which gets stats pushes from cAdvisor (e.g. through IPC or a REST endpoint), and takes the appropriate action. This could be implemented as a separate process in the same container, or another container (a \"sidecar\").\r\n\r\n2. Encourage wrapper implementations or forks of cAdvisor which add the necessary functionality for each driver. We could create an \"official\" list of forks organized by drivers to make these more discoverable. We could also reorganize the cAdvisor main package to make this easier.\r\n\r\nAny other ideas for how to deal with this issue?\r\n\r\n@google/cadvisor @vishh @dchen1107 @jimmidyson @derekwaynecarr @pmorie @ncdc "},"comment":{"url":"https://api.github.com/repos/google/cadvisor/issues/comments/247193910","html_url":"https://github.com/google/cadvisor/issues/1458#issuecomment-247193910","issue_url":"https://api.github.com/repos/google/cadvisor/issues/1458","id":247193910,"user":{"login":"timstclair","id":3272040,"avatar_url":"https://avatars.githubusercontent.com/u/3272040?v=3","gravatar_id":"","url":"https://api.github.com/users/timstclair","html_url":"https://github.com/timstclair","followers_url":"https://api.github.com/users/timstclair/followers","following_url":"https://api.github.com/users/timstclair/following{/other_user}","gists_url":"https://api.github.com/users/timstclair/gists{/gist_id}","starred_url":"https://api.github.com/users/timstclair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timstclair/subscriptions","organizations_url":"https://api.github.com/users/timstclair/orgs","repos_url":"https://api.github.com/users/timstclair/repos","events_url":"https://api.github.com/users/timstclair/events{/privacy}","received_events_url":"https://api.github.com/users/timstclair/received_events","type":"User","site_admin":false},"created_at":"2016-09-15T00:05:07Z","updated_at":"2016-09-15T00:05:07Z","body":"> Do we need an RPC interface though?\r\n\r\nI don't have much experience with IPC programming. What are the alternatives?\r\n\r\n> If we go down the rpc + protobuf route\r\n\r\nDo we need protobuf? I was thinking of just using go's [built in rpc library](https://golang.org/pkg/net/rpc/)"}}
{"actor":{"display_login":"timstclair"}}