|
✕✕✕✕✕
@
peterbourgon
Berlin
|
|
The official Twitter account of Dwayne 'The Rock' Johnson
|
|
|
10.385
Tweetovi
|
250
Pratim
|
8.485
Osobe koje vas prate
|
| Tweetovi |
|
✕✕✕✕✕
@peterbourgon
|
9 h |
|
i heard nim is good
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
10 h |
|
Interesting is not the word I would choose
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
3. velj |
|
RED can indeed be implemented with a single Histogram as long as one of the labels can be used to identify errors. HTTP status code is fine for this, for example.
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
3. velj |
|
one Histogram per service for request duration, label for method (gRPC method, HTTP route, etc.), label for result (gRPC or HTTP status code), 10–20 buckets — should be no problem
|
||
|
|
||
| ✕✕✕✕✕ proslijedio/la je tweet | ||
|
Sid Anand
@r39132
|
3. velj |
|
If you plan to be in London this March, be sure to check out my "Modern CS in the Real World" track at QCon London with @peterbourgon, @JuliaLawall, @gregthelaw, @tlberglund, @SeanWalshEsq, @priya_lak & Liza Fireman #QConLondon @qconlondon bit.ly/2Kx8BY0 pic.twitter.com/CB94LqVarB
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
2. velj |
|
good quick fix until you need config files
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
2. velj |
|
depends on execution environment, probably by the time you're passing more than 5 or so flags to start the program successfully you should define a config file or startup script, luckily package ff has you covered there :)
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
2. velj |
|
Env vars aren't discoverable, the only way to learn which env vars a program uses is to grep it's source. They should only be used to populate a flag value if it isn't set explicitly, never as the only way to configure a program.
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
Yes
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
The "problem" with summaries is that they can't be combined — if you run basically any Prometheus that does math against more than one of them, the results are statistically invalid/meaningless
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
Short answer: yes
Long answer: you should size the buckets with this in mind, i.e. set the highest bucket to whatever value represents "violating all conceivable SLAs" — I put that at ~5s for my web services, above that value granularity is irrelevant, my service is broken
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
of course it depends on what the service is doing 👍
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
Your buckets are a bit wild, do have requests that take 2m to complete? Also you don't need requestsTotal, you get it for free with the duration metric
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
Buckets determine the granularity/precision of your metrics and so should cover the range of expected values. prometheus.DefBuckets are a good starting point for typical HTTP request handlers
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
1. velj |
|
In order to perform meaningful statistics on more than one Prometheus histogram (e.g. taking averages, max over time, etc.) their buckets must be identical. See prometheus.io/docs/practices…
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
31. sij |
|
*raises hand*
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
30. sij |
|
I'm sorry but I don't agree 🤷
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
30. sij |
|
i don't really know if this is the best thing to encode in the case bit. maybe not. i do know it's a useful and thoughtful feature, though, and that sniping at it (note: not the same as discussing its merits, as we're doing now) reveals ignorance, not intelligence
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
30. sij |
|
hence my original tweet: the first enumerated benefit primarily for package producers, the second for consumers
|
||
|
|
||
|
✕✕✕✕✕
@peterbourgon
|
30. sij |
|
but that's what it does, right? when you're in package p, capitalized identifiers are part of your advertised API, and you know that at all use sites
you're right that due to mandatory(ish) package name prefixing, there isn't as much value in this requirement for consumers
|
||
|
|
||