Skip to content
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

Persist Retroactive Rule Reevaluations #11

Open
juliusv opened this Issue Jan 4, 2013 · 8 comments

Comments

Projects
None yet
5 participants
@juliusv
Copy link
Member

juliusv commented Jan 4, 2013

We can already reevaluate queries on old data, but we should be able to persist that for a certain window from [Oldest, Now).

@ghost ghost assigned juliusv Jan 4, 2013

@matttproud

This comment has been minimized.

Copy link
Member

matttproud commented Mar 28, 2013

@juliusv, we know that we can support retroactive rule evaluation now. Is that sufficient to close this issue, or should it be repurposed to handle the case of "archiving samples after retroactive rule evaluation"?

@juliusv

This comment has been minimized.

Copy link
Member Author

juliusv commented Mar 28, 2013

It's not our top priority, but persisting timeseries resulting from rule evaluations against historical data is still a nice-to-have feature, so we can keep this around.

@matttproud

This comment has been minimized.

Copy link
Member

matttproud commented Mar 28, 2013

Great. I'll re-title this issue. :)

2013/3/28 juliusv notifications@github.com

It's not our top priority, but persisting timeseries resulting from rule
evaluations against historical data is still a nice-to-have feature, so we
can keep this around.


Reply to this email directly or view it on GitHubhttps://github.com//issues/11#issuecomment-15575551
.

matttproud added a commit that referenced this issue Apr 9, 2014

Merge pull request #11 from matttproud/feature/include-instance-uptime
Include instance uptime information in the stack.
@brian-brazil

This comment has been minimized.

Copy link
Member

brian-brazil commented Dec 16, 2015

My thoughts on this are to permit backfilling via the API, and then we can have a separate tool that does this.

juliusv added a commit that referenced this issue Jul 18, 2016

simonpasquier referenced this issue in simonpasquier/prometheus Oct 12, 2017

Merge pull request #11 from brian-brazil/move-rules
Move the rules over to the querying section, that seems more natural.
@bwplotka

This comment has been minimized.

Copy link
Contributor

bwplotka commented Mar 16, 2018

Hi, I would like to start a new discussion on this.
Basically, there are some clear benefits of having some back-in-time rule evaluation option for Prometheus.

Currently, there are certain UX issues while using rules. Let's have some basic example from a user perspective:

  • I created some cool, new metric.
  • I created some fancy dashboard.
  • Everybody loves my dashboard and it's quite popular, so I want to create a rule for the query used there to take out some load from Prometheus.
  • I created a rule.

Problems:

  1. How to test my rule? I need to wait some time to have it filled to check if I got it right for a longer period (that could include interesting cases). That requires lot's of context switches in my work and frustration (multiple frustrations by 100x when one is a newbie in PromQL)
  2. I cannot immediately put my rule on the dashboard because it's not yet filled

I totally agree that this is not critical and quite hard to achieve when we are talking about persisting new time series back in time when that time range is already packed in blocks and maybe even compacted or backed up/downsampled in case of thanos or remote-written.

But what about some simple solution (A), for example:

  • User created new rule
  • If flag XXX is set (or certain RPC is invoked on API), reevaluate the rule against all samples you have in memory (WAL)

The only unknown here is remote write, but when we make this feature optional - you can control if you want to have back-in-time rule evaluation or not.

Or maybe another option (B):

  • User created new rule
  • Backfill the rule in ephemeral space only (mem only) up to flag-rule-reeval-time or API RPC argument to make testing and using this rule on dashboards easier. "Past" samples will be ephemeral. Only new samples will be written normally.

Any thoughts?

CC @juliusv @brian-brazil @fabxc @devnev

@brian-brazil

This comment has been minimized.

Copy link
Member

brian-brazil commented Mar 16, 2018

The requirement here is basically for bulk import, as I don't think this functionality belongs in Prometheus itself (though may be tied together via promtool).

@bwplotka

This comment has been minimized.

Copy link
Contributor

bwplotka commented Mar 16, 2018

bulk import

Sorry, what do you mean by that?

@brian-brazil

This comment has been minimized.

Copy link
Member

brian-brazil commented Mar 16, 2018

simonpasquier referenced this issue in simonpasquier/prometheus Jul 27, 2018

Merge pull request #11 from simonpasquier/ose-repo-dockerfile
Remove enablement of ose yum repository

bobmshannon pushed a commit to bobmshannon/prometheus that referenced this issue Nov 19, 2018

dmitsh pushed a commit to dmitsh/prometheus that referenced this issue Apr 17, 2019

Merge pull request prometheus#11 from draios/support-gzip
Support gzip-encoded remote read response
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.