payload: {"action":"created","issue":{"url":"https://api.github.com/repos/line/armeria/issues/2272","repository_url":"https://api.github.com/repos/line/armeria","labels_url":"https://api.github.com/repos/line/armeria/issues/2272/labels{/name}","comments_url":"https://api.github.com/repos/line/armeria/issues/2272/comments","events_url":"https://api.github.com/repos/line/armeria/issues/2272/events","html_url":"https://github.com/line/armeria/issues/2272","id":524795898,"node_id":"MDU6SXNzdWU1MjQ3OTU4OTg=","number":2272,"title":"Request time does not take into account connection creation","user":{"login":"anuraaga","id":198344,"node_id":"MDQ6VXNlcjE5ODM0NA==","avatar_url":"https://avatars0.githubusercontent.com/u/198344?v=4","gravatar_id":"","url":"https://api.github.com/users/anuraaga","html_url":"https://github.com/anuraaga","followers_url":"https://api.github.com/users/anuraaga/followers","following_url":"https://api.github.com/users/anuraaga/following{/other_user}","gists_url":"https://api.github.com/users/anuraaga/gists{/gist_id}","starred_url":"https://api.github.com/users/anuraaga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anuraaga/subscriptions","organizations_url":"https://api.github.com/users/anuraaga/orgs","repos_url":"https://api.github.com/users/anuraaga/repos","events_url":"https://api.github.com/users/anuraaga/events{/privacy}","received_events_url":"https://api.github.com/users/anuraaga/received_events","type":"User","site_admin":false},"labels":[{"id":287189526,"node_id":"MDU6TGFiZWwyODcxODk1MjY=","url":"https://api.github.com/repos/line/armeria/labels/defect","name":"defect","color":"b60205","default":false,"description":null}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/line/armeria/milestones/151","html_url":"https://github.com/line/armeria/milestone/151","labels_url":"https://api.github.com/repos/line/armeria/milestones/151/labels","id":4874919,"node_id":"MDk6TWlsZXN0b25lNDg3NDkxOQ==","number":151,"title":"1.0.0","description":null,"creator":{"login":"trustin","id":173918,"node_id":"MDQ6VXNlcjE3MzkxOA==","avatar_url":"https://avatars0.githubusercontent.com/u/173918?v=4","gravatar_id":"","url":"https://api.github.com/users/trustin","html_url":"https://github.com/trustin","followers_url":"https://api.github.com/users/trustin/followers","following_url":"https://api.github.com/users/trustin/following{/other_user}","gists_url":"https://api.github.com/users/trustin/gists{/gist_id}","starred_url":"https://api.github.com/users/trustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trustin/subscriptions","organizations_url":"https://api.github.com/users/trustin/orgs","repos_url":"https://api.github.com/users/trustin/repos","events_url":"https://api.github.com/users/trustin/events{/privacy}","received_events_url":"https://api.github.com/users/trustin/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":0,"state":"open","created_at":"2019-11-25T08:59:37Z","updated_at":"2019-12-08T09:42:20Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2019-11-19T06:08:43Z","updated_at":"2019-12-08T10:07:15Z","closed_at":null,"author_association":"COLLABORATOR","body":"Reported in https://line-armeria.slack.com/archives/C1NGPBUH2/p1574122806097100\r\n\r\nI believe this is a regression after moving `Endpoint` selection to the begging of the request. We call `startRequest` only when about to send the request, but not anymore. This is affecting spans, but I think it also affects our `totalDuration` metric equally."},"comment":{"url":"https://api.github.com/repos/line/armeria/issues/comments/562930841","html_url":"https://github.com/line/armeria/issues/2272#issuecomment-562930841","issue_url":"https://api.github.com/repos/line/armeria/issues/2272","id":562930841,"node_id":"MDEyOklzc3VlQ29tbWVudDU2MjkzMDg0MQ==","user":{"login":"anuraaga","id":198344,"node_id":"MDQ6VXNlcjE5ODM0NA==","avatar_url":"https://avatars0.githubusercontent.com/u/198344?v=4","gravatar_id":"","url":"https://api.github.com/users/anuraaga","html_url":"https://github.com/anuraaga","followers_url":"https://api.github.com/users/anuraaga/followers","following_url":"https://api.github.com/users/anuraaga/following{/other_user}","gists_url":"https://api.github.com/users/anuraaga/gists{/gist_id}","starred_url":"https://api.github.com/users/anuraaga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anuraaga/subscriptions","organizations_url":"https://api.github.com/users/anuraaga/orgs","repos_url":"https://api.github.com/users/anuraaga/repos","events_url":"https://api.github.com/users/anuraaga/events{/privacy}","received_events_url":"https://api.github.com/users/anuraaga/received_events","type":"User","site_admin":false},"created_at":"2019-12-08T10:07:15Z","updated_at":"2019-12-08T10:07:15Z","author_association":"COLLABORATOR","body":"Looking at the usage in the Armeria codebase, `COMPLETE` seems to be used the most. I do see a use case for `REQUEST_END` since there could be services that last a long time between getting a request and finishing, but really don't see much utility for e.g., splitting the notification for even headers / content, for example. We have some listeners that export to metrics but metrics are averaged anyways and don't benefit from such fine-grained notification.\r\n\r\nThat being said, I realized the opposite idea may make sense too - make availability extremely fine grained by having one for each piece of data that's recorded. Then, adding a new metric is just adding to an enum and saving to the field. Users could have immediate notifications for the data they're interested in, or keep things simple by just listening for completion (we store the listeners with an `EnumMap`). The bit arithmetic of the current availability goes away along with the coupling that currently can make tweaking things difficult. If that sounds ok, I think it'd help a lot."}}
other: {"actor":{"display_login":"anuraaga"}}