{"action":"created","issue":{"url":"https://api.github.com/repos/raintank/grafana/issues/372","labels_url":"https://api.github.com/repos/raintank/grafana/issues/372/labels{/name}","comments_url":"https://api.github.com/repos/raintank/grafana/issues/372/comments","events_url":"https://api.github.com/repos/raintank/grafana/issues/372/events","html_url":"https://github.com/raintank/grafana/issues/372","id":97432062,"number":372,"title":"http 500 no longer triggering http errors","user":{"login":"Dieterbe","id":20774,"avatar_url":"https://avatars.githubusercontent.com/u/20774?v=3","gravatar_id":"","url":"https://api.github.com/users/Dieterbe","html_url":"https://github.com/Dieterbe","followers_url":"https://api.github.com/users/Dieterbe/followers","following_url":"https://api.github.com/users/Dieterbe/following{/other_user}","gists_url":"https://api.github.com/users/Dieterbe/gists{/gist_id}","starred_url":"https://api.github.com/users/Dieterbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dieterbe/subscriptions","organizations_url":"https://api.github.com/users/Dieterbe/orgs","repos_url":"https://api.github.com/users/Dieterbe/repos","events_url":"https://api.github.com/users/Dieterbe/events{/privacy}","received_events_url":"https://api.github.com/users/Dieterbe/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/raintank/grafana/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"Dieterbe","id":20774,"avatar_url":"https://avatars.githubusercontent.com/u/20774?v=3","gravatar_id":"","url":"https://api.github.com/users/Dieterbe","html_url":"https://github.com/Dieterbe","followers_url":"https://api.github.com/users/Dieterbe/followers","following_url":"https://api.github.com/users/Dieterbe/following{/other_user}","gists_url":"https://api.github.com/users/Dieterbe/gists{/gist_id}","starred_url":"https://api.github.com/users/Dieterbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dieterbe/subscriptions","organizations_url":"https://api.github.com/users/Dieterbe/orgs","repos_url":"https://api.github.com/users/Dieterbe/repos","events_url":"https://api.github.com/users/Dieterbe/events{/privacy}","received_events_url":"https://api.github.com/users/Dieterbe/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/raintank/grafana/milestones/10","html_url":"https://github.com/raintank/grafana/milestones/0.18","labels_url":"https://api.github.com/repos/raintank/grafana/milestones/10/labels","id":1219526,"number":10,"title":"0.18","description":"","creator":{"login":"nopzor1200","id":9953157,"avatar_url":"https://avatars.githubusercontent.com/u/9953157?v=3","gravatar_id":"","url":"https://api.github.com/users/nopzor1200","html_url":"https://github.com/nopzor1200","followers_url":"https://api.github.com/users/nopzor1200/followers","following_url":"https://api.github.com/users/nopzor1200/following{/other_user}","gists_url":"https://api.github.com/users/nopzor1200/gists{/gist_id}","starred_url":"https://api.github.com/users/nopzor1200/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nopzor1200/subscriptions","organizations_url":"https://api.github.com/users/nopzor1200/orgs","repos_url":"https://api.github.com/users/nopzor1200/repos","events_url":"https://api.github.com/users/nopzor1200/events{/privacy}","received_events_url":"https://api.github.com/users/nopzor1200/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":1,"state":"open","created_at":"2015-07-22T05:24:34Z","updated_at":"2015-07-29T12:23:31Z","due_on":"2015-07-24T04:00:00Z","closed_at":null},"comments":4,"created_at":"2015-07-27T10:23:28Z","updated_at":"2015-07-29T12:52:31Z","closed_at":null,"body":"I have an endpoint that in 80% of the time, returns a http 500 and the text 'panic' instead of 'ok' which we match on\r\n```\r\ndieter@dieter-m6800 ~ for i in $(seq 1 100); do curl -I -s http://metrics20.org:8888/bad/80 | grep '^HTTP'; done | sort | uniq -c\r\n     20 HTTP/1.1 200 OK\r\n     80 HTTP/1.1 500 Internal Server Error\r\n```\r\nI updated my endpoint https://app.raintank.io/endpoints/summary/152 today at 10:12 UTC\r\nhowever, the http uptime and http status just stays at 100%\r\n\r\ni'm pretty sure this used to work fine.\r\n@nopzor1200 @woodsaj \r\n\r\nPS i recommend you also use the [bad-http-server](https://github.com/raintank/bad-http-server) instance running at http://metrics20.org:8888/ to verify some our logic"},"comment":{"url":"https://api.github.com/repos/raintank/grafana/issues/comments/125940325","html_url":"https://github.com/raintank/grafana/issues/372#issuecomment-125940325","issue_url":"https://api.github.com/repos/raintank/grafana/issues/372","id":125940325,"user":{"login":"Dieterbe","id":20774,"avatar_url":"https://avatars.githubusercontent.com/u/20774?v=3","gravatar_id":"","url":"https://api.github.com/users/Dieterbe","html_url":"https://github.com/Dieterbe","followers_url":"https://api.github.com/users/Dieterbe/followers","following_url":"https://api.github.com/users/Dieterbe/following{/other_user}","gists_url":"https://api.github.com/users/Dieterbe/gists{/gist_id}","starred_url":"https://api.github.com/users/Dieterbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dieterbe/subscriptions","organizations_url":"https://api.github.com/users/Dieterbe/orgs","repos_url":"https://api.github.com/users/Dieterbe/repos","events_url":"https://api.github.com/users/Dieterbe/events{/privacy}","received_events_url":"https://api.github.com/users/Dieterbe/received_events","type":"User","site_admin":false},"created_at":"2015-07-29T12:52:31Z","updated_at":"2015-07-29T12:52:31Z","body":"I like having >= 400 be treated as errorous by default, unless we provide the knobs. but I'm not convinced this decision should be moved into the collector.  it seems more flexible and simpler to implement that decision in the receiving end of the metrics, and keep this concern away from the probe/collector. i like @woodsaj's approach of storing the http code as a metric, this gives us a lot of flexibility in doing queries on it and doing all kinds of decisions based on what the val is, leveraging the alerting expressions.  so how about we extend the alerting expression to include an `<if threshold of error states met> OR if status code >= 400` (for given number of collectors, x steps in a row). this does imply we track http code on a per-collector basis of course."}}