{"action":"created","comment":{"url":"https://api.github.com/repos/librato/librato-rack/pulls/comments/82035690","pull_request_review_id":2971181,"id":82035690,"diff_hunk":"@@ -5,14 +5,17 @@ class Collector\n     # maintains storage of timing and measurement type measurements\n     #\n     class Aggregator\n-      SOURCE_SEPARATOR = '$$'\n+      SEPARATOR = \"$$\"\n \n       extend Forwardable\n \n-      def_delegators :@cache, :empty?, :prefix, :prefix=\n+      def_delegators :@cache, :add_tags, :empty?, :prefix, :prefix=","path":"lib/librato/collector/aggregator.rb","position":10,"original_position":10,"commit_id":"25e66949874fb646d156de0500ddc715a5fae136","original_commit_id":"25e66949874fb646d156de0500ddc715a5fae136","user":{"login":"chancefeick","id":6326742,"avatar_url":"https://avatars.githubusercontent.com/u/6326742?v=3","gravatar_id":"","url":"https://api.github.com/users/chancefeick","html_url":"https://github.com/chancefeick","followers_url":"https://api.github.com/users/chancefeick/followers","following_url":"https://api.github.com/users/chancefeick/following{/other_user}","gists_url":"https://api.github.com/users/chancefeick/gists{/gist_id}","starred_url":"https://api.github.com/users/chancefeick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chancefeick/subscriptions","organizations_url":"https://api.github.com/users/chancefeick/orgs","repos_url":"https://api.github.com/users/chancefeick/repos","events_url":"https://api.github.com/users/chancefeick/events{/privacy}","received_events_url":"https://api.github.com/users/chancefeick/received_events","type":"User","site_admin":false},"body":"> does it make sense to allow changes to the tagset after creation here?\r\n\r\nAgreed, this is actually a relic. As per your recent feedback on librato/librato-metrics#121, we've since removed `#add_tags`. Will update.","created_at":"2016-10-05T18:13:18Z","updated_at":"2016-10-05T18:13:18Z","html_url":"https://github.com/librato/librato-rack/pull/54#discussion_r82035690","pull_request_url":"https://api.github.com/repos/librato/librato-rack/pulls/54","_links":{"self":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/comments/82035690"},"html":{"href":"https://github.com/librato/librato-rack/pull/54#discussion_r82035690"},"pull_request":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/54"}}},"pull_request":{"url":"https://api.github.com/repos/librato/librato-rack/pulls/54","id":83536671,"html_url":"https://github.com/librato/librato-rack/pull/54","diff_url":"https://github.com/librato/librato-rack/pull/54.diff","patch_url":"https://github.com/librato/librato-rack/pull/54.patch","issue_url":"https://api.github.com/repos/librato/librato-rack/issues/54","number":54,"state":"open","locked":false,"title":"Support for tagged measurements","user":{"login":"chancefeick","id":6326742,"avatar_url":"https://avatars.githubusercontent.com/u/6326742?v=3","gravatar_id":"","url":"https://api.github.com/users/chancefeick","html_url":"https://github.com/chancefeick","followers_url":"https://api.github.com/users/chancefeick/followers","following_url":"https://api.github.com/users/chancefeick/following{/other_user}","gists_url":"https://api.github.com/users/chancefeick/gists{/gist_id}","starred_url":"https://api.github.com/users/chancefeick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chancefeick/subscriptions","organizations_url":"https://api.github.com/users/chancefeick/orgs","repos_url":"https://api.github.com/users/chancefeick/repos","events_url":"https://api.github.com/users/chancefeick/events{/privacy}","received_events_url":"https://api.github.com/users/chancefeick/received_events","type":"User","site_admin":false},"body":"Add support for tagged measurements.\r\n\r\nTagged measurements consist of **tags**, which are a set of name=value tag pairs that describe the particular data stream. Tags are equivalent to **source** in the previous data model.\r\n\r\n## Metrics\r\n\r\nIntroduces the following tagged metrics:\r\n\r\n| Metric | Tags | Example |\r\n| ------ | ---- | ------- |\r\n| `rack.request.status`  | `status` | status=200\r\n| `rack.request.method` | `method` | method=GET\r\n\r\n**Note**: `time` and `p95` metrics omitted from table for brevity. They will have the same tags as their non-timed and non-percentiles counterparts.\r\n\r\nThe remaining metrics will also be tagged, however the top-level tag dimensions will only be the user provided defaults.\r\n\r\n## Configuration\r\n\r\nThere are multiple ways to config the default tags. Here are a few examples:\r\n\r\n### Environment Variable\r\n\r\n`LIBRATO_TAGS` can be set to apply top-level tags to all measurements. The format is comma-separated key=value pairs:\r\n```ruby\r\nENV[\"LIBRATO_TAGS\"]\r\n# => \"host=metrics-web-stg-1,environment=staging\"\r\n```\r\n\r\n### Configuration Object\r\n\r\nOptionally, you can pass a Hash argument to `#tags`:\r\n\r\n```ruby\r\nconfig        = Librato::Rack::Configuration.new\r\nconfig.user   = \"foobar@librato.com\"\r\nconfig.token  = \"foobar\"\r\nconfig.tags   = { host: \"metrics-web-stg-1\", environment: \"staging\" }\r\n\r\nuse Librato::Rack, config: config\r\n```\r\n\r\n## Defaults\r\n\r\nIf no tags are provided, the hostname is detected and used:\r\n```ruby\r\n{ host: \"cfeick-mb.local\" }\r\n```\r\n\r\nOptionally, setting `report_pids` to `true` will report per-process pids as well:\r\n```ruby\r\n{ host: \"cfeick-mb.local\", pid: 51177 }\r\n```\r\n\r\nRequires https://github.com/librato/librato-metrics/pull/121\r\n\r\nREADME and code documentation will be updated in a separate PR.","created_at":"2016-08-31T21:53:59Z","updated_at":"2016-10-05T18:13:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d80e34204eca6cbeda8bce411b73b46cdebb7676","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/librato/librato-rack/pulls/54/commits","review_comments_url":"https://api.github.com/repos/librato/librato-rack/pulls/54/comments","review_comment_url":"https://api.github.com/repos/librato/librato-rack/pulls/comments{/number}","comments_url":"https://api.github.com/repos/librato/librato-rack/issues/54/comments","statuses_url":"https://api.github.com/repos/librato/librato-rack/statuses/25e66949874fb646d156de0500ddc715a5fae136","head":{"label":"librato:feature/md","ref":"feature/md","sha":"25e66949874fb646d156de0500ddc715a5fae136","user":{"login":"librato","id":146042,"avatar_url":"https://avatars.githubusercontent.com/u/146042?v=3","gravatar_id":"","url":"https://api.github.com/users/librato","html_url":"https://github.com/librato","followers_url":"https://api.github.com/users/librato/followers","following_url":"https://api.github.com/users/librato/following{/other_user}","gists_url":"https://api.github.com/users/librato/gists{/gist_id}","starred_url":"https://api.github.com/users/librato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/librato/subscriptions","organizations_url":"https://api.github.com/users/librato/orgs","repos_url":"https://api.github.com/users/librato/repos","events_url":"https://api.github.com/users/librato/events{/privacy}","received_events_url":"https://api.github.com/users/librato/received_events","type":"Organization","site_admin":false},"repo":{"id":7676590,"name":"librato-rack","full_name":"librato/librato-rack","owner":{"login":"librato","id":146042,"avatar_url":"https://avatars.githubusercontent.com/u/146042?v=3","gravatar_id":"","url":"https://api.github.com/users/librato","html_url":"https://github.com/librato","followers_url":"https://api.github.com/users/librato/followers","following_url":"https://api.github.com/users/librato/following{/other_user}","gists_url":"https://api.github.com/users/librato/gists{/gist_id}","starred_url":"https://api.github.com/users/librato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/librato/subscriptions","organizations_url":"https://api.github.com/users/librato/orgs","repos_url":"https://api.github.com/users/librato/repos","events_url":"https://api.github.com/users/librato/events{/privacy}","received_events_url":"https://api.github.com/users/librato/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/librato/librato-rack","description":"Easily use Librato Metrics with your rack application","fork":false,"url":"https://api.github.com/repos/librato/librato-rack","forks_url":"https://api.github.com/repos/librato/librato-rack/forks","keys_url":"https://api.github.com/repos/librato/librato-rack/keys{/key_id}","collaborators_url":"https://api.github.com/repos/librato/librato-rack/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/librato/librato-rack/teams","hooks_url":"https://api.github.com/repos/librato/librato-rack/hooks","issue_events_url":"https://api.github.com/repos/librato/librato-rack/issues/events{/number}","events_url":"https://api.github.com/repos/librato/librato-rack/events","assignees_url":"https://api.github.com/repos/librato/librato-rack/assignees{/user}","branches_url":"https://api.github.com/repos/librato/librato-rack/branches{/branch}","tags_url":"https://api.github.com/repos/librato/librato-rack/tags","blobs_url":"https://api.github.com/repos/librato/librato-rack/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/librato/librato-rack/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/librato/librato-rack/git/refs{/sha}","trees_url":"https://api.github.com/repos/librato/librato-rack/git/trees{/sha}","statuses_url":"https://api.github.com/repos/librato/librato-rack/statuses/{sha}","languages_url":"https://api.github.com/repos/librato/librato-rack/languages","stargazers_url":"https://api.github.com/repos/librato/librato-rack/stargazers","contributors_url":"https://api.github.com/repos/librato/librato-rack/contributors","subscribers_url":"https://api.github.com/repos/librato/librato-rack/subscribers","subscription_url":"https://api.github.com/repos/librato/librato-rack/subscription","commits_url":"https://api.github.com/repos/librato/librato-rack/commits{/sha}","git_commits_url":"https://api.github.com/repos/librato/librato-rack/git/commits{/sha}","comments_url":"https://api.github.com/repos/librato/librato-rack/comments{/number}","issue_comment_url":"https://api.github.com/repos/librato/librato-rack/issues/comments{/number}","contents_url":"https://api.github.com/repos/librato/librato-rack/contents/{+path}","compare_url":"https://api.github.com/repos/librato/librato-rack/compare/{base}...{head}","merges_url":"https://api.github.com/repos/librato/librato-rack/merges","archive_url":"https://api.github.com/repos/librato/librato-rack/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/librato/librato-rack/downloads","issues_url":"https://api.github.com/repos/librato/librato-rack/issues{/number}","pulls_url":"https://api.github.com/repos/librato/librato-rack/pulls{/number}","milestones_url":"https://api.github.com/repos/librato/librato-rack/milestones{/number}","notifications_url":"https://api.github.com/repos/librato/librato-rack/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/librato/librato-rack/labels{/name}","releases_url":"https://api.github.com/repos/librato/librato-rack/releases{/id}","deployments_url":"https://api.github.com/repos/librato/librato-rack/deployments","created_at":"2013-01-17T23:27:19Z","updated_at":"2016-08-30T12:43:49Z","pushed_at":"2016-09-30T05:00:29Z","git_url":"git://github.com/librato/librato-rack.git","ssh_url":"git@github.com:librato/librato-rack.git","clone_url":"https://github.com/librato/librato-rack.git","svn_url":"https://github.com/librato/librato-rack","homepage":null,"size":333,"stargazers_count":23,"watchers_count":23,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":3,"forks":7,"open_issues":3,"watchers":23,"default_branch":"master"}},"base":{"label":"librato:master","ref":"master","sha":"a700b3a9e7624f225c5a82b405c294cdcde2cb56","user":{"login":"librato","id":146042,"avatar_url":"https://avatars.githubusercontent.com/u/146042?v=3","gravatar_id":"","url":"https://api.github.com/users/librato","html_url":"https://github.com/librato","followers_url":"https://api.github.com/users/librato/followers","following_url":"https://api.github.com/users/librato/following{/other_user}","gists_url":"https://api.github.com/users/librato/gists{/gist_id}","starred_url":"https://api.github.com/users/librato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/librato/subscriptions","organizations_url":"https://api.github.com/users/librato/orgs","repos_url":"https://api.github.com/users/librato/repos","events_url":"https://api.github.com/users/librato/events{/privacy}","received_events_url":"https://api.github.com/users/librato/received_events","type":"Organization","site_admin":false},"repo":{"id":7676590,"name":"librato-rack","full_name":"librato/librato-rack","owner":{"login":"librato","id":146042,"avatar_url":"https://avatars.githubusercontent.com/u/146042?v=3","gravatar_id":"","url":"https://api.github.com/users/librato","html_url":"https://github.com/librato","followers_url":"https://api.github.com/users/librato/followers","following_url":"https://api.github.com/users/librato/following{/other_user}","gists_url":"https://api.github.com/users/librato/gists{/gist_id}","starred_url":"https://api.github.com/users/librato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/librato/subscriptions","organizations_url":"https://api.github.com/users/librato/orgs","repos_url":"https://api.github.com/users/librato/repos","events_url":"https://api.github.com/users/librato/events{/privacy}","received_events_url":"https://api.github.com/users/librato/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/librato/librato-rack","description":"Easily use Librato Metrics with your rack application","fork":false,"url":"https://api.github.com/repos/librato/librato-rack","forks_url":"https://api.github.com/repos/librato/librato-rack/forks","keys_url":"https://api.github.com/repos/librato/librato-rack/keys{/key_id}","collaborators_url":"https://api.github.com/repos/librato/librato-rack/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/librato/librato-rack/teams","hooks_url":"https://api.github.com/repos/librato/librato-rack/hooks","issue_events_url":"https://api.github.com/repos/librato/librato-rack/issues/events{/number}","events_url":"https://api.github.com/repos/librato/librato-rack/events","assignees_url":"https://api.github.com/repos/librato/librato-rack/assignees{/user}","branches_url":"https://api.github.com/repos/librato/librato-rack/branches{/branch}","tags_url":"https://api.github.com/repos/librato/librato-rack/tags","blobs_url":"https://api.github.com/repos/librato/librato-rack/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/librato/librato-rack/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/librato/librato-rack/git/refs{/sha}","trees_url":"https://api.github.com/repos/librato/librato-rack/git/trees{/sha}","statuses_url":"https://api.github.com/repos/librato/librato-rack/statuses/{sha}","languages_url":"https://api.github.com/repos/librato/librato-rack/languages","stargazers_url":"https://api.github.com/repos/librato/librato-rack/stargazers","contributors_url":"https://api.github.com/repos/librato/librato-rack/contributors","subscribers_url":"https://api.github.com/repos/librato/librato-rack/subscribers","subscription_url":"https://api.github.com/repos/librato/librato-rack/subscription","commits_url":"https://api.github.com/repos/librato/librato-rack/commits{/sha}","git_commits_url":"https://api.github.com/repos/librato/librato-rack/git/commits{/sha}","comments_url":"https://api.github.com/repos/librato/librato-rack/comments{/number}","issue_comment_url":"https://api.github.com/repos/librato/librato-rack/issues/comments{/number}","contents_url":"https://api.github.com/repos/librato/librato-rack/contents/{+path}","compare_url":"https://api.github.com/repos/librato/librato-rack/compare/{base}...{head}","merges_url":"https://api.github.com/repos/librato/librato-rack/merges","archive_url":"https://api.github.com/repos/librato/librato-rack/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/librato/librato-rack/downloads","issues_url":"https://api.github.com/repos/librato/librato-rack/issues{/number}","pulls_url":"https://api.github.com/repos/librato/librato-rack/pulls{/number}","milestones_url":"https://api.github.com/repos/librato/librato-rack/milestones{/number}","notifications_url":"https://api.github.com/repos/librato/librato-rack/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/librato/librato-rack/labels{/name}","releases_url":"https://api.github.com/repos/librato/librato-rack/releases{/id}","deployments_url":"https://api.github.com/repos/librato/librato-rack/deployments","created_at":"2013-01-17T23:27:19Z","updated_at":"2016-08-30T12:43:49Z","pushed_at":"2016-09-30T05:00:29Z","git_url":"git://github.com/librato/librato-rack.git","ssh_url":"git@github.com:librato/librato-rack.git","clone_url":"https://github.com/librato/librato-rack.git","svn_url":"https://github.com/librato/librato-rack","homepage":null,"size":333,"stargazers_count":23,"watchers_count":23,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":3,"forks":7,"open_issues":3,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/54"},"html":{"href":"https://github.com/librato/librato-rack/pull/54"},"issue":{"href":"https://api.github.com/repos/librato/librato-rack/issues/54"},"comments":{"href":"https://api.github.com/repos/librato/librato-rack/issues/54/comments"},"review_comments":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/54/comments"},"review_comment":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/librato/librato-rack/pulls/54/commits"},"statuses":{"href":"https://api.github.com/repos/librato/librato-rack/statuses/25e66949874fb646d156de0500ddc715a5fae136"}}}}
{"actor":{"display_login":"chancefeick"}}