Commit Graph

14003 Commits

Author SHA1 Message Date
Arthur Silva Sens
6bcb064d93
Merge pull request #14950 from Maniktherana/fuzz-om-minor-change
chore: remove unused code
2024-09-21 09:22:17 +01:00
Julius Volz
52fe4cc4ee
Merge pull request #14944 from roidelapluie/copy
Mantine UI: removed unuse file
2024-09-20 21:28:09 +02:00
Julius Volz
dfc6f4b5bc
Merge pull request #14945 from roidelapluie/submillis
fix(web): properly format sub-millisecond durations in target status page
2024-09-20 21:27:16 +02:00
Bryan Boreham
d42232e178
Merge pull request #14932 from bboreham/chunk-xor-combine-writebits
[PERF] TSDB: Chunk encoding: shorten some write sequences
2024-09-20 17:53:54 +01:00
Arthur Silva Sens
ca18f298e1
Merge pull request #14949 from Maniktherana/minor-fixes-ct
refac: make typeRequiresCT private
2024-09-20 17:41:06 +01:00
Bryan Boreham
9215252221
[BUGFIX] TSDB: Only query chunks up to truncation time (#14948)
If the query overlaps the range currently undergoing compaction, we
should only fetch chunks up to that time. Need to store that min time
in `HeadAndOOOIndexReader`.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-20 18:40:17 +02:00
Manik Rana
3fba6bcdfa chore: remove unused code
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-09-20 22:00:15 +05:30
Manik Rana
315165e49d refac: make typeRequiresCT private
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-09-20 21:56:19 +05:30
Björn Rabenstein
5b9148e552
Merge pull request #14820 from charleskorn/promqltest-native-histogram-format
promqltest: use test expression format for histograms in assertion failure messages and include reset hint in the test expression
2024-09-20 16:47:08 +02:00
Julien
7ebda924b8 fix(web): properly format sub-millisecond durations in target status page
Previously, scrapes durations that are very short (e.g., connection refused)
could show as empty (durations under 1 millisecond).

This commit ensures that sub-millisecond durations are correctly
displayed as "0ms" or "1ms" when necessary.

- Adjusted `humanizeDuration` to round sub-millisecond durations to the
  nearest millisecond.
- Updated unit tests to verify the correct handling of sub-millisecond
  values.

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-20 12:02:17 +02:00
Julien
5096bb9f29 Mantine UI: removed unuse file
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-20 11:33:55 +02:00
Charles Korn
6dbb4e1a94
Fix linting issues
Signed-off-by: Charles Korn <charles.korn@grafana.com>
2024-09-20 11:49:54 +10:00
Callum Styan
005bd33fe2
support v2 proto for BenchmarkSampleSend (#14935)
Signed-off-by: Callum Styan <callumstyan@gmail.com>
2024-09-19 15:38:26 -07:00
Julius Volz
e480cf21eb
Merge pull request #14931 from prometheus/nexucis/autocomplete-topl
UI/PromQL: autocomplete topk like aggregation function parameters
2024-09-19 18:12:59 +02:00
Björn Rabenstein
df9916ef66
Merge pull request #14677 from prometheus/beorn7/histogram
promql(native histograms): Introduce exponential interpolation
2024-09-19 18:08:59 +02:00
Björn Rabenstein
c7fb6188b4
Merge pull request #14930 from jan--f/holt-winters-experimental
move holt_winters to the experimental functions and rename
2024-09-19 17:52:39 +02:00
Augustin Husson
6e899fbb16 fix autocompletion when using by/without
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-09-19 16:35:14 +02:00
Jan Fajerski
aa6dd70812 changelog: record holt_winters rename
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2024-09-19 15:29:09 +02:00
Jan Fajerski
96e5a94d29 promql: rename holt_winters to double_exponential_smoothing
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2024-09-19 15:29:01 +02:00
beorn7
6fcd225aee promql(native histograms): Introduce exponential interpolation
The linear interpolation (assuming that observations are uniformly
distributed within a bucket) is a solid and simple assumption in lack
of any other information. However, the exponential bucketing used by
standard schemas of native histograms has been chosen to cover the
whole range of observations in a way that bucket populations are
spread out over buckets in a reasonably way for typical distributions
encountered in real-world scenarios.

This is the origin of the idea implemented here: If we divide a given
bucket into two (or more) smaller exponential buckets, we "most
naturally" expect that the samples in the original buckets will split
among those smaller buckets in a more or less uniform fashion. With
this assumption, we end up with an "exponential interpolation", which
therefore appears to be a better match for histograms with exponential
bucketing.

This commit leaves the linear interpolation in place for NHCB, but
changes the interpolation for exponential native histograms to
exponential. This affects `histogram_quantile` and
`histogram_fraction` (because the latter is more or less the inverse
of the former).

The zero bucket has to be treated specially because the assumption
above would lead to an "interpolation to zero" (the bucket density
approaches infinity around zero, and with the postulated uniform usage
of buckets, we would end up with an estimate of zero for all quantiles
ending up in the zero bucket). We simply fall back to linear
interpolation within the zero bucket.

At the same time, this commit makes the call to stick with the
assumption that the zero bucket only contains positive observations
for native histograms without negative buckets (and vice versa). (This
is an assumption relevant for interpolation. It is a mostly academic
point, as the zero bucket is supposed to be very small anyway.
However, in cases where it _is_ relevantly broad, the assumption helps
a lot in practice.)

This commit also updates and completes the documentation to match both
details about interpolation.

As a more high level note: The approach here attempts to strike a
balance between a more simplistic approach without any assumption, and
a more involved approach with more sophisticated assumptions. I will
shortly describe both for reference:

The "zero assumption" approach would be to not interpolate at all, but
_always_ return the harmonic mean of the bucket boundaries of the
bucket the quantile ends up in. This has the advantage of minimizing
the maximum possible relative error of the quantile estimation.
(Depending on the exact definition of the relative error of an
estimation, there is also an argument to return the arithmetic mean of
the bucket boundaries.) While limiting the maximum possible relative
error is a good property, this approach would throw away the
information if a quantile is closer to the upper or lower end of the
population within a bucket. This can be valuable trending information
in a dashboard. With any kind of interpolation, the maximum possible
error of a quantile estimation increases to the full width of a bucket
(i.e. it more than doubles for the harmonic mean approach, and
precisely doubles for the arithmetic mean approach). However, in
return the _expectation value_ of the error decreases. The increase of
the theoretical maximum only has practical relevance for pathologic
distributions. For example, if there are thousand observations within
a bucket, they could _all_ be at the upper bound of the bucket. If the
quantile calculation picks the 1st observation in the bucket as the
relevant one, an interpolation will yield a value close to the lower
bucket boundary, while the true quantile value is close to the upper
boundary.

The "fancy interpolation" approach would be one that analyses the
_actual_ distribution of samples in the histogram. A lot of statistics
could be applied based on the information we have available in the
histogram. This would include the population of neighboring (or even
all) buckets in the histogram. In general, the resolution of a native
histogram should be quite high, and therefore, those "fancy"
approaches would increase the computational cost quite a bit with very
little practical benefits (i.e. just tiny corrections of the estimated
quantile value). The results are also much harder to reason with.

Signed-off-by: beorn7 <beorn@grafana.com>
2024-09-19 14:19:10 +02:00
Julius Volz
c36589a6dd
Merge pull request #14940 from roidelapluie/subsecondzoom
UI: Disallow sub-second zoom as this cause inconsistenices in the X axis in uPlot
2024-09-19 12:20:37 +02:00
Julien
546f780006 UI: Disallow sub-second zoom as this cause inconsistenices in the X axis in uPlot
Fixes #9135

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-19 11:51:41 +02:00
Bryan Boreham
e8c2d916ec lint
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-18 15:23:46 +01:00
Jan Fajerski
15cea39136 promql: put holt_winters behind experimental feature flag
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2024-09-18 15:39:58 +02:00
Bryan Boreham
648a668835 [PERF] Chunk encoding: combine timestamp writes
Instead of a 2-bit write followed by a 14-bit write, do two 8-bit
writes, which goes much faster since it avoids looping.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-18 13:19:21 +01:00
Bryan Boreham
b9a9689aae [PERF] Chunk encoding: simplify writeByte
Rather than append a zero then set the value at that position, append the value.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-18 13:19:04 +01:00
Bryan Boreham
b65f1b6560 TSDB: Improve xor-chunk benchmarks
Benchmarks must do the same work N times.
Run 3 cases, where the values are constant, vary a bit, and vary a lot.

Also aim for 120 samples same as TSDB default.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-18 13:14:49 +01:00
Joshua Hesketh
b6107cc888
Make rate possible non-counter annotation consistent (#14910)
* Make rate possible non-counter annotation consistent

Previously a PossibleNonCounterInfo annotation would be left in cases
where a range-vector selects 1 float data point, even if no more points
are selected in order to calculate a rate.

This change ensures an output float exists before emitting such an
annotation.

This fixes an inconsistency where a series with mixed data (ie, a float
and a native histogram) would emit an annotation without any points.

For example,

```

load 1m
series{label="a"} 1 {{schema:1 sum:10 count:5 buckets:[1 2 3]}}

eval instant at 1m rate(series[1m1s])

```

Would have a PossibleNonCounterInfo annotation.

Wheras

```

load 1m
series{label="a"} {{schema:1 sum:10 count:5 buckets:[1 2 3]}} {{schema:1 sum:15 count:10 buckets:[1 2 3]}}

eval instant at 1m rate(series[1m1s])

```

Would not. 

---------

Signed-off-by: Joshua Hesketh <josh@nitrotech.org>
2024-09-18 10:21:25 +00:00
Augustin Husson
69619990f8 UI/PromQL: autocomplete topk like aggregation function parameters
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-09-18 11:53:09 +02:00
Bryan Boreham
bb47f78929
Merge pull request #14505 from marioferh/improve_performance_regex
[CHANGE] regexp . to match \n and optimize performance
2024-09-18 09:54:16 +01:00
Callum Styan
c328d5fc88
fix rwv2 build write request benchmark, also change how the memory usage (#14925)
is reported for these benchmarks to more accurately reflect what's
actually allocated

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2024-09-18 07:04:10 +01:00
Julius Volz
b8d1336d42
Merge pull request #14912 from roidelapluie/notready
mantine UI: Distinguish between Not Ready and Stopping
2024-09-17 19:40:13 +02:00
Julius Volz
6c5e2f8fb9
Merge pull request #12829 from arukiidou/chore/bump-webui
build(deps): bump lru-cache from 7.18.3 to 11.0.1 in /web/ui
2024-09-17 16:47:34 +02:00
Antoine Pultier
d90d0976b5
fix(bstream/writeByte): ensure it appends only one byte (#14854)
fix(bstream/writeByte): ensure it appends only one byte

Signed-off-by: Antoine Pultier <antoine.pultier@sintef.no>
2024-09-17 16:28:33 +02:00
junya koyama
54fe9f3d04
build(deps): fix breaking chages.
Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
2024-09-17 23:14:29 +09:00
junya koyama
8dae42828d
build(deps): bump lru-cache from 7.18.3 to 11.0.1 in /web/ui
Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
2024-09-17 23:14:29 +09:00
Julien
ac5377873f mantine UI: Distinguish between Not Ready and Stopping
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-17 16:02:16 +02:00
Nihal
d0d57ff642
[DOC] Add username_file in basic auth http client config (#12749)
Signed-off-by: Wasim Nihal <sswasim64@gmail.com>
2024-09-17 12:20:31 +01:00
machine424
d1b4312f0a fix(wlog/watcher_test.go): make TestRun_AvoidNotifyWhenBehind more resilient
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2024-09-17 13:11:04 +02:00
Mario Fernandez
5814920601
Fix: optimize .* regexp performance
Shortcut for `.*` matches newlines as well.
Add preamble change ^(?s:
Add test
dotAll flag por al regex
Add and fix regex tests

Signed-off-by: Mario Fernandez <mariofer@redhat.com>
2024-09-17 12:18:31 +02:00
Julius Volz
00d23c9689
Merge pull request #14915 from prometheus/dependabot/npm_and_yarn/web/ui/typescript-5.6.2
Bump typescript from 5.5.4 to 5.6.2 in /web/ui
2024-09-17 12:01:03 +02:00
Bryan Boreham
d5f4fabd12
Merge pull request #14911 from bboreham/clarify-postings-benchmark
TSDB: Simplify benchmark regexps
2024-09-17 11:52:13 +02:00
Carrie Edwards
14e3c05ce8
tsdb: Add support for ingestion of out-of-order native histogram samples (#14546)
Add support for ingesting OOO native histograms

* Add flag for enabling and disabling OOO native histogram ingestion
* Update OOO querying tests to include native histogram samples
* Add OOO head tests
* Add test for OOO native histogram counter reset headers

Signed-off-by: Carrie Edwards <edwrdscarrie@gmail.com>
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Co-authored by: Carrie Edwards <edwrdscarrie@gmail.com>
Co-authored by: Jeanette Tan <jeanette.tan@grafana.com>
Co-authored by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Co-authored by: Fiona Liao <fiona.liao@grafana.com>
2024-09-17 11:19:06 +02:00
Harry John
919dc0cbc6
storage: Update LabelQuerier interface to return sorted label values (#14849)
* Change LabelQuerier.LabelValues() to return sorted values

---------

Signed-off-by: 🌲 Harry 🌊 John 🏔 <johrry@amazon.com>
2024-09-17 08:55:02 +02:00
Julius Volz
2c87817e40
Merge pull request #14914 from prometheus/julius/new-ui-improvements
New UI: Better time formatting + tests, better styling
2024-09-17 08:36:29 +02:00
51n15t9r
b6015e7c73
Add support for running govulncheck (#12654)
* Add support for running govulncheck

---------

Signed-off-by: 51n15t9r <utkarsh.khare@gmail.com>
2024-09-16 23:13:04 +02:00
dependabot[bot]
2fa84df35d
Bump typescript from 5.5.4 to 5.6.2 in /web/ui
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.5.4 to 5.6.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 19:41:08 +00:00
Julius Volz
a1908df922 Don't wrap action buttons below metric name in metrics explorer
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:35 +02:00
Julius Volz
091fc403cf Fiddle with targets table styles to try and improve things a bit
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:08 +02:00
Julius Volz
57898c7929 Refactor and fix time formatting functions, add tests
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:08 +02:00