-
Notifications
You must be signed in to change notification settings - Fork 136
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
Certain step values for a query return no results #202
Comments
Very curious, I haven't seen that behavior before (and I've been using promxy for a while). I'd definitely be curious to see the debug or trace logging output from promxy. From my first throughts on it I can't think of why the step value would cause data to go missing, so I'm definitely interested :) |
Here are some trace logs and curl requests/responses for you!
|
@steveberryman that is very curious, I have attempted reproducing locally and am unable to do so. So a few things that I can think of that would help me debug. (1) Could you share your config file? (2) Could attach a tcpdump of the promxy host during this query that would help me with a more accurate repro scenario. (3) what version of promxy are you seeing this on (I'm assuming master or v0.0.46 but figured I should check). |
@steveberryman assuming you are still able to repro this issue, it would be very helpful if you could provide the above requested data. At this point I can't repro this issue :( |
Hi! So sorry! I was on vacation and then forgot about this ticket. Attached is a pcap of a number of requests. First two are the queries mentioned above - one working, and one not with the same time ranges. Then there are two more queries with more recent time ranges which both seem to work for some reason! Also attached is the config file. I can confirm we're using promxy 0.0.46 |
Using the data returned in your pcap I'm able to reproduce the problem (creating stub servers that return the data in the tcpdump etc.). I attempted to reproduce the same behavior with prometheus downstream but was unable to reproduce. The issue here is with how VM returns to query_range requests (upstream issue: VictoriaMetrics/VictoriaMetrics#171). An attempted short explanation: query_range responses should line up their start and step with where the start/step of the call was-- in this case they don't line up so points are at the wrong "time" in the response-- when the promql engine tries to find the points it determines they are "too old" (since they are so out of position). Shorter steps (depending on the offset of the downstream) mean that there are points within the tolerance (stalenessDelta). TLDR; VM isn't returning to query_range properly so it looks like the data isn't there (since its at the wrong time). Unfortunately this will require a fix/change in VM to resolve as there isn't really an issue in promxy :/ |
Ah! Thanks for investigating so thoroughly!
…--
Steve Berryman
From: Thomas Jackson <notifications@github.com> <notifications@github.com>
Reply: jacksontj/promxy
<reply@reply.github.com>
<reply@reply.github.com>
Date: September 3, 2019 at 7:32:13 PM
To: jacksontj/promxy <promxy@noreply.github.com> <promxy@noreply.github.com>
CC: Steve Berryman <steve@berryman.org.uk> <steve@berryman.org.uk>, Mention
<mention@noreply.github.com> <mention@noreply.github.com>
Subject: Re: [jacksontj/promxy] Certain step values for a query return no
results (#202)
Using the data returned in your pcap I'm able to reproduce the problem
(creating stub servers that return the data in the tcpdump etc.). I
attempted to reproduce the same behavior with prometheus downstream but was
unable to reproduce. The issue here is with how VM returns to query_range
requests (upstream issue: VictoriaMetrics/VictoriaMetrics#171
<VictoriaMetrics/VictoriaMetrics#171>).
An attempted short explanation:
query_range responses should line up their start and step with where the
start/step of the call was-- in this case they don't line up so points are
at the wrong "time" in the response-- when the promql engine tries to find
the points it determines they are "too old" (since they are so out of
position). Shorter steps (depending on the offset of the downstream) mean
that there are points within the tolerance (stalenessDelta).
TLDR; VM isn't returning to query_range properly so it looks like the data
isn't there (since its at the wrong time). Unfortunately this will require
a fix/change in VM to resolve as there isn't really an issue in promxy :/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#202?email_source=notifications&email_token=AAALSJR433GTCCNCXPPQSJ3QH2US3A5CNFSM4IH6Q2C2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5ZEPAA#issuecomment-527583104>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAALSJQDHHSH5OLKKD7VSH3QH2US3ANCNFSM4IH6Q2CQ>
.
|
I've added a |
We have this query:
sum(increase(nodeproxy_http_response_time_histogram_seconds_bucket{app="349"}[10m])) by (le)
For some reason, when querying over a 24h period and the step is set to certain values (600 and 3600 are confirmed to work. 1800 and 2880 are confirmed to not work), no metrics are returned. The query works directly on prometheus or victoria metrics, just no through promxy.
Any thoughts? No errors in the logs (but possibly i can turn the logging level up?)
The text was updated successfully, but these errors were encountered: