{"action":"created","issue":{"url":"https://api.github.com/repos/influxdata/influxdb/issues/6655","repository_url":"https://api.github.com/repos/influxdata/influxdb","labels_url":"https://api.github.com/repos/influxdata/influxdb/issues/6655/labels{/name}","comments_url":"https://api.github.com/repos/influxdata/influxdb/issues/6655/comments","events_url":"https://api.github.com/repos/influxdata/influxdb/issues/6655/events","html_url":"https://github.com/influxdata/influxdb/pull/6655","id":155344092,"number":6655,"title":"Add HTTP(s) Subscriptions","user":{"login":"nathanielc","id":3771906,"avatar_url":"https://avatars.githubusercontent.com/u/3771906?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanielc","html_url":"https://github.com/nathanielc","followers_url":"https://api.github.com/users/nathanielc/followers","following_url":"https://api.github.com/users/nathanielc/following{/other_user}","gists_url":"https://api.github.com/users/nathanielc/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanielc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanielc/subscriptions","organizations_url":"https://api.github.com/users/nathanielc/orgs","repos_url":"https://api.github.com/users/nathanielc/repos","events_url":"https://api.github.com/users/nathanielc/events{/privacy}","received_events_url":"https://api.github.com/users/nathanielc/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-05-17T19:39:51Z","updated_at":"2016-05-19T16:31:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/influxdata/influxdb/pulls/6655","html_url":"https://github.com/influxdata/influxdb/pull/6655","diff_url":"https://github.com/influxdata/influxdb/pull/6655.diff","patch_url":"https://github.com/influxdata/influxdb/pull/6655.patch"},"body":"Adds support for the `http` and `https` protocols for subscriptions.\r\n\r\nTo use it specify a destination like so:\r\n\r\n```\r\nCREATE SUBSCRIPTION name ON db.rp DESTINATIONS ANY 'http://myhost.com:8086'\r\n```\r\n\r\nIf a single HTTP based backed slows down for what ever reason all subscriptions will be effected but normal writes to InfluxDB will continue without issues. Should we isolate each of the destinations?\r\n\r\nA config option has been added to the `[subscription]` section called `http-timeout` which specifies the client timeout when writing data to any http destination. Default is 30s\r\n\r\n- [ ] Rebased/mergable\r\n- [x] Tests pass\r\n- [x] CHANGELOG.md updated\r\n- [x] Sign [CLA](https://influxdata.com/community/cla/) (if not already signed)\r\n"},"comment":{"url":"https://api.github.com/repos/influxdata/influxdb/issues/comments/220379832","html_url":"https://github.com/influxdata/influxdb/pull/6655#issuecomment-220379832","issue_url":"https://api.github.com/repos/influxdata/influxdb/issues/6655","id":220379832,"user":{"login":"joelegasse","id":1391698,"avatar_url":"https://avatars.githubusercontent.com/u/1391698?v=3","gravatar_id":"","url":"https://api.github.com/users/joelegasse","html_url":"https://github.com/joelegasse","followers_url":"https://api.github.com/users/joelegasse/followers","following_url":"https://api.github.com/users/joelegasse/following{/other_user}","gists_url":"https://api.github.com/users/joelegasse/gists{/gist_id}","starred_url":"https://api.github.com/users/joelegasse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joelegasse/subscriptions","organizations_url":"https://api.github.com/users/joelegasse/orgs","repos_url":"https://api.github.com/users/joelegasse/repos","events_url":"https://api.github.com/users/joelegasse/events{/privacy}","received_events_url":"https://api.github.com/users/joelegasse/received_events","type":"User","site_admin":false},"created_at":"2016-05-19T16:31:21Z","updated_at":"2016-05-19T16:31:21Z","body":"The concurrency aspect is nice, but once a single subscription's buffered channel becomes full, it blocks everything... I'm not sure how these write requests correspond to incoming write requests to the server, but if the server is handling a concurrent write load, and each of those requests result in one `WritePointsRequest`, we're going to run in to an issue. Each subscription has these requests serialized to it's target.\r\n\r\nI'm not sure I'm being much help here, since I'm not familiar enough with subscriptions to provide more knowledgeable recommendations, but... How would you feel about just dropping new `WritePointsRequest`s to slow readers? If their channel is full, they probably won't catch up anytime soon, and we shouldn't punish the rest of the subscribers because of that."}}