-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ttljob: only add labels when ttl_label_metrics
is set
#77567
Conversation
Follow up to [this slack convo](https://cockroachlabs.slack.com/archives/C0168LW5THS/p1645556875126379). Release justification: high benefit change to new stuff Release note (sql change): TTL metrics are labelled by relation name if `SET CLUSTER SETTING server.child_metrics.enabled=true;` is set and the `ttl_label_metrics` storage parameter is set to true. This is to prevent a potentially unbounded cardinality on TTL related metrics.
this runs afoul of my general concern that letting users create label-values in a cloud setting is a big-time problem for the stability of the system as a whole. I'm willing to be overridden, but I want whatever party does that to understand the implications. |
ah, i may have misread your slack message a little bit and this would implement what you suggested there:
but yes i do understand the concern, but at the same time these metrics seem pretty important in understanding TTL performance (cc @vy-ton in case you want to weigh in about the acceptability of the tradeoff/implicaitions) |
I did say it, but then I tried to walk it back with:
I'm scared of this, but not downright opposed. My preference would be to create a finite number of labels and let users map tables to them. |
i'm not a big fan of this, seems counterintuitive and not user friendly, but i understand why it's suggested :). my preference is the way presented in this PR. anyone want to be the tiebreaker? but i bet i know what @vy-ton would say ;) |
I actually don't quite understand this option so will schedule time to chat next week. |
I assume this means we have some hardcoded set of labels , e.g. |
I prefer this to having the labels added automatically. I didn't realize you had already done the automatic thing. |
Okay, I'm on board. I have modest worries about people going nuts with this, but we can try to deal with that later. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm not a big fan of this, seems counterintuitive and not user friendly, but i understand why it's suggested :). my preference is the way presented in this PR.
fwiw, I agree. I didn't like the respective option, with a predefined list of metric names, in the changefeed case either.
But, I would be curious what options we have in CC for configuring our Prometheus for forget about timeseries that haven't been updated in a while (in particular, forget their names for the purposes of whatever indexes it maintains). I'm thinking about tables whose names keep changing. Oliver, it might worth be looking into it.
Reviewable status: complete! 0 of 0 LGTMs obtained (waiting on @rafiss)
bors r+ maybe one day we can enjoy the pleasures of high cardinality systems :')
i will follow up |
Build failed (retrying...): |
Build succeeded: |
Follow up to this slack convo.
Release justification: high benefit change to new stuff
Release note (sql change): TTL metrics are labelled by relation name if
SET CLUSTER SETTING server.child_metrics.enabled=true;
is set andthe
ttl_label_metrics
storage parameter is set to true. This is toprevent a potentially unbounded cardinality on TTL related metrics.