Earlier quoted context omitted.
In my experience, Monarch storing histograms and being unable to rebucket on the fly is a big problem. A percentile line on a histogram will be incredibly misleading, because it's trying to figure out what the p50 of a bunch of buckets is. You'll see monitoring artifacts like large jumps and artificial plateaus as a result of how requests fall into buckets. The bucketer on the default RPC latency metric might not be…
Circonus Histograms solve that by using a universal bucketing scheme. Details are explained in this paper: https://arxiv.org/abs/2001.06561 Disclaimer: I am a co-author.
Monarch: Google’s Planet-Scale In-Memory Time Series Database
101–110 of 133 posts
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#102Earlier quoted context omitted.
Circonus Histograms solve that by using a universal bucketing scheme. Details are explained in this paper: https://arxiv.org/abs/2001.06561 Disclaimer: I am a co-author.
Wow, this is a fantastic solution to some questions I've had rattling around in my head for years about the optimal bucket choices to minimize error given a particular set of buckets. Do I read right that circllhist has a pretty big number of bin sizes and is not configurable (except that they're sparse so may be small on disk)? I've found myself using high-cardinality Prometheus metrics where I can only afford 10-15…
In practice none of the implementations seem to provide that. Within the each set of buckets for a given log base you have reasonable precision at that magnitude. If your metric is oscillating around 1e6 you shouldn’t care much about the variance at 1e2, and with this scheme you don’t have to tune anything to provide for that.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#103Earlier quoted context omitted.
It was more that they would rather send Monarch an RPC than be connected to. Not everyone wants e.g. an HTTP server in their process. For example maybe they are security sensitive, or have a limited memory envelope, or other reasons.
And yeah, everyone used the same instrumentation library, which could be used in a lot of different contexts, sometimes surprising!
Amusingly in the pre-web 1990's, at Telstra (Australia telco) we also developed & implemented a custom performance monitoring library that was integrated into in-house applications.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#104I broke this once several years ago. I even use the incident number in my random usernames to see if a Googler recognizes it.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#105I broke this once several years ago. I even use the incident number in my random usernames to see if a Googler recognizes it.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#106Earlier quoted context omitted.
And yeah, everyone used the same instrumentation library, which could be used in a lot of different contexts, sometimes surprising!
Again, a highly envious feature of a large organisation with almost exclusively bespoke applications that can port & integrate custom libraries directly into applications. Us little people have to contend with mostly black box applications, or occasionally native instrumented with at best a prom-alike endpoint. Amusingly in the pre-web 1990's, at Telstra (Australia telco) we also developed & implemented a custom perf…
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#107Earlier quoted context omitted.
Pull collection eventually became a real scaling bottleneck for Monarch. The way the "pull" collection worked was that there was an external process-discovery mechanism, which the leaf used to connect to the entities it was monitoring, the leaf backend processes would connect to the monitored entities to an endpoint that the collection library would listen on, and those entities collection libraries would stream the…
What issue originally did the pull model solved? Historically the push model existed before so what was the reason to move to a pull based solution?
On top of that there is also less risk that herd of misbehaving clients DoS the monitoring system, usually moments when you need such system the most. This of course wouldn't be a problem with a more scalable solution that distributes ingestion from querying, like the Monarch.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#108Sometimes I feel many open source systems do not give a shit about productivity.
Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#109Re: Monarch: Google’s Planet-Scale In-Memory Time Series Database
#110Interesting that Google replaced a pull based metric system similar to Prometheus with a push based system... I thought one of the selling points of Prometheus and the pull based dance was how scalable it was?
Pull collection eventually became a real scaling bottleneck for Monarch. The way the "pull" collection worked was that there was an external process-discovery mechanism, which the leaf used to connect to the entities it was monitoring, the leaf backend processes would connect to the monitored entities to an endpoint that the collection library would listen on, and those entities collection libraries would stream the…
What are some problems (or peculiarities that otherwise didn't exist) with the push based setup?
At another BigCloud, pull/push made for tasty design discussions as well, given the absurd scale of it all.
General consensus was, smaller fleet always pulls from its downstream; push only if downstream and upstream both have similar scaling characteristics.