machine424
8bcb4d865d
feat: normalize "le" and "quantile" labels values upon ingestion
...
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
Co-authored-by: beorn7 <beorn@grafana.com>
2024-10-18 17:37:29 +02:00
Alex Greenbank
421a3c22ea
scrape: provide a fallback format ( #15136 )
...
scrape: Remove implicit fallback to the Prometheus text format
Remove implicit fallback to the Prometheus text format in case of invalid/missing Content-Type and fail the scrape instead. Add ability to specify a `fallback_scrape_protocol` in the scrape config.
---------
Signed-off-by: alexgreenbank <alex.greenbank@grafana.com>
Signed-off-by: Alex Greenbank <alex.greenbank@grafana.com>
Co-authored-by: Björn Rabenstein <beorn@grafana.com>
2024-10-18 17:12:31 +02:00
machine424
18b81ad79d
feat: ProtobufParse.formatOpenMetricsFloat: improve float formatting by using strconv.AppendFloat instead of fmt.Sprint
...
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2024-10-18 15:19:55 +02:00
György Krajcsovits
5ee698de2c
Apply review comments
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-17 12:55:45 +02:00
György Krajcsovits
d930648afb
Add doc string for NHCBParser
...
Very high level since we'll do a lot of optimizations so not
worth going into details at this time.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-14 14:35:11 +02:00
György Krajcsovits
c13585665d
Merge branch 'main' into nhcb-scrape-impl
...
# Conflicts:
# promql/promqltest/test.go
# util/convertnhcb/convertnhcb.go
2024-10-14 14:26:11 +02:00
Manik Rana
c3b8582cf4
[PERF] textparse: optimize OM p.isCreatedSeries() ( #15150 )
...
* refac: remove p.Metric usage
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* perf: use bytes instead of strings
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: comments
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
---------
Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
2024-10-14 10:18:15 +01:00
George Krajcsovits
a1700aab3a
Apply suggestions from code review
...
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: George Krajcsovits <krajorama@users.noreply.github.com>
2024-10-14 11:13:58 +02:00
György Krajcsovits
0a40a09da5
Use const instead of -53
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-14 11:09:03 +02:00
Manik Rana
032ca9ef96
[PERF] textparse: further optimzations for OM CreatedTimestamps ( #15097 )
...
* feat: Added more tests; some changes/optimizations when pair-programming with Bartek.
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: imports
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: gofumpt
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: use an efficient replacement to p.Metric
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: reduce mem allocs + comments
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: gofumpt
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: use single quotes
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* refac: rename
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* refac: rename to seriesHash
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: switch condition order
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* refac: switch condition order
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* feat: stronger checking
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* chore: fmt
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: pass pointer of buf into seriesHash()
Signed-off-by: Manik Rana <manikrana54@gmail.com>
---------
Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
2024-10-10 12:01:13 +01:00
György Krajcsovits
9b5d7287bb
Use labels hash to determine change in metric like CT
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 15:16:46 +02:00
György Krajcsovits
14f92319d9
Add basic benchmark cases for NHCB over OM
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 15:16:27 +02:00
György Krajcsovits
530e9514b7
Fix case of keeping classic series
...
Make it more obvious that the code in if had side effect.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 13:08:54 +02:00
György Krajcsovits
8dfa733596
Fix labels handling with dedupelabels tag
...
Use scratch builder.
Use hash compare instead of compare by label.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 12:29:59 +02:00
György Krajcsovits
f3c8ed2947
minor fixes
...
Fix lint errors.
No need to pre-allocate exemplars.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:45:31 +02:00
György Krajcsovits
fbbf10baad
Use the proper way to iterate labels
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:24:24 +02:00
György Krajcsovits
7fccf1e6be
Disable CT handling and enable exemplar handling
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:08:08 +02:00
György Krajcsovits
e931587bf8
Factor out label compare and store
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-08 10:12:25 +02:00
György Krajcsovits
16f28be713
Fix CT handling
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 16:59:07 +02:00
György Krajcsovits
6bebeaf41b
Fix not checking all labels before deciding to store NHCB
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 15:41:54 +02:00
György Krajcsovits
2a3aa500e9
Make nhcb unit test pass with many exceptions marked as TODOs
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 14:27:23 +02:00
György Krajcsovits
e0444d9384
Merge branch 'main' into nhcb-scrape-impl
2024-10-07 14:02:46 +02:00
György Krajcsovits
e1a7008b6c
Add unit test nhcbparse_test.go
...
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 14:02:10 +02:00
Bartlomiej Plotka
f6e110d588
textparse: Refactored main testing utils for reusability; fixed proto Units. ( #15095 )
...
Signed-off-by: bwplotka <bwplotka@gmail.com>
2024-10-07 12:17:44 +01:00
György Krajcsovits
9c4816df36
Rename bType to bName as Type returns the binary name and not the type name
...
See Parser.Type() function.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 11:31:43 +02:00
György Krajcsovits
ed2e7dc258
Merge branch 'main' into nhcb-scrape-impl
...
# Conflicts:
# scrape/scrape.go
2024-10-07 11:23:44 +02:00
Bartlomiej Plotka
8d281c3491
textparse: Refactored benchmark ( #15083 )
...
* textparse: Refactored benchmark.
Signed-off-by: bwplotka <bwplotka@gmail.com>
* Kill sinks, tested, nothing is inlined.
Signed-off-by: bwplotka <bwplotka@gmail.com>
* Addressed comments.
Signed-off-by: bwplotka <bwplotka@gmail.com>
---------
Signed-off-by: bwplotka <bwplotka@gmail.com>
2024-10-07 09:55:26 +01:00
Matthieu MOREL
ab64966e9d
fix: use "ErrorContains" or "EqualError" instead of "Contains(t, err.Error()" and "Equal(t, err.Error()" ( #15094 )
...
* fix: use "ErrorContains" or "EqualError" instead of "Contains(t, err.Error()" and "Equal(t, err.Error()"
---------
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2024-10-06 16:35:29 +00:00
Manik Rana
47aeca9663
feat: naive fixes and optimzations for CreatedTimestamp function ( #14965 )
...
* enhance: wip ct parse optimizations
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: further work on optimization
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: further improvements and remove unused code
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: improve optimizations and fix some CT parse errors
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: check for LsetHash along with name
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: cleanup and documentation
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* enhance: improve comments and add cleaner functions
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: improve comments and add cleaner functions
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: rename to resetCTParseValues
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: post-merge fixes
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: add all possible reserved suffixes
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* test: separate CT values for each metric
Signed-off-by: Manik Rana <manikrana54@gmail.com>
---------
Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
2024-10-04 13:11:02 +01:00
Manik Rana
f1c57a95ed
change: No longer ingest OM _created as timeseries if feature-flag 'enable-ct-zero-ingestion' is enabled; fixed OM text CT conversion bug ( #14738 )
...
* chore: revert TypeRequiresCT to private
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* feat: init NewOpenMetricsParser with skipCT true
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: allow opt-in to OM CT ingestion
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: use textparse interface to set om options
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: set skipOMSeries in test
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: gofumpt
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* wip: add tests for OM CR parse
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: merge ct tests
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* tests: add cases for OM text
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: check correct test cases
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: use both scrape protocols in config
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: fix inputs and output tests for OM
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: cleanup
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: rename skipOMSeries to skipOMCTSeries
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* fix: finish refac
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: move setup code outside test
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* tests: verify _created lines create new metric in certain cases
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* fix: post merge fixes
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* manager: Fixed CT OMText conversion bug; Refactored tests.
Signed-off-by: bwplotka <bwplotka@gmail.com>
* chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: gofumpt
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: imports
Signed-off-by: Manik Rana <manikrana54@gmail.com>
---------
Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
Signed-off-by: bwplotka <bwplotka@gmail.com>
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Co-authored-by: bwplotka <bwplotka@gmail.com>
2024-10-02 11:52:03 +01:00
Manik Rana
98cd80b2e2
feat: add microbenchmarks for OM CT parsing ( #14933 )
...
* test: benchmark OM CT parsing
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: move OM ct benchmark to promparse_test
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: stricter comparison
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
* feat: use richer OM test data
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: move parse-ct test outside of inner loop
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: separate benchmarks for om and prom parsers
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: remove unused code
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* chore: remove more unused code
Signed-off-by: Manik Rana <manikrana54@gmail.com>
* refac: rename to BenchmarkOMParseCreatedTimestamp
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
---------
Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
2024-10-02 07:48:27 +01:00
György Krajcsovits
71fd2d93a9
Merge branch 'main' into nhcb-scrape-impl
...
# Conflicts:
# config/config.go
# scrape/scrape.go
2024-09-25 13:43:57 +02:00
Jeanette Tan
97ba2fc39d
use caps for NHCB
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:38:30 +02:00
Jeanette Tan
f35c6649e4
don't blindly convert series with the classic histogram name suffixes if they are not actually histograms based on metadata
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:38:15 +02:00
Jeanette Tan
e3899187da
expand tests for protobuf and fix problems
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:38:08 +02:00
Jeanette Tan
cd498964e6
expand tests and support conversion to nhcb in the middle of scrape
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:38:04 +02:00
Jeanette Tan
41c7f7d352
don't reuse the buffer
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:38:01 +02:00
Jeanette Tan
57bde06d2c
add doc comments
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:37:56 +02:00
Jeanette Tan
cbd5488cd3
skip nhcb conversion if there is native histogram of same name
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:37:51 +02:00
Jeanette Tan
0e5072b873
keep only 1 nhcb in memory at at time
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:37:46 +02:00
Jeanette Tan
172d4f2405
insert nhcb parser as intermediate layer
...
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2024-09-25 13:37:37 +02:00
Bryan Boreham
31c5760551
Neater string vs byte-slice conversions ( #14425 )
...
unsafe.Slice and unsafe.StringData were added in Go 1.20
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-21 12:19:21 +02:00
Manik Rana
315165e49d
refac: make typeRequiresCT private
...
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-09-20 21:56:19 +05:30
Nathan Baulch
50cd453c8f
chore: Fix typos ( #14868 )
...
* Fix typos
---------
Signed-off-by: Nathan Baulch <nathan.baulch@gmail.com>
2024-09-10 22:32:03 +02:00
Björn Rabenstein
4ffb74dae4
Merge pull request #14810 from bboreham/fix-proto-parse-exemplar
...
[BUGFIX] Protobuf scraping: reset exemplar position
2024-09-03 15:05:59 +02:00
Bryan Boreham
d599c4b28c
[BUGFIX] Protobuf scraping: reset exemplar position
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-02 16:43:50 +01:00
Bryan Boreham
3aaf2c3c9d
[TESTS] Add second native histogram with exemplars in TestProtobufParse
...
This test fails.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-02 16:43:50 +01:00
Bryan Boreham
e8ecc11816
[TESTS] Fix up item numbers in TestProtobufParse
...
If an error is thrown by the test, these numbers help you see which item is wrong.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-09-02 16:43:49 +01:00
riskrole
406bf775aa
chore: fix some comments
...
Signed-off-by: riskrole <yuhang@before.tech>
2024-08-28 11:26:57 +08:00
beorn7
0f760f63dd
lint: Revamp our linting rules, mostly around doc comments
...
Several things done here:
- Set `max-issues-per-linter` to 0 so that we actually see all linter
warnings and not just 50 per linter. (As we also set
`max-same-issues` to 0, I assume this was the intention from the
beginning.)
- Stop using the golangci-lint default excludes (by setting
`exclude-use-default: false`. Those are too generous and don't match
our style conventions. (I have re-added some of the excludes
explicitly in this commit. See below.)
- Re-add the `errcheck` exclusion we have used so far via the
defaults.
- Exclude the signature requirement `govet` has for `Seek` methods
because we use non-standard `Seek` methods a lot. (But we keep other
requirements, while the default excludes completely disabled the
check for common method segnatures.)
- Exclude warnings about missing doc comments on exported symbols. (We
used to be pretty adamant about doc comments, but stopped that at
some point in the past. By now, we have about 500 missing doc
comments. We may consider reintroducing this check, but that's
outside of the scope of this commit. The default excludes of
golangci-lint essentially ignore doc comments completely.)
- By stop using the default excludes, we now get warnings back on
malformed doc comments. That's the most impactful change in this
commit. It does not enforce doc comments (again), but _if_ there is
a doc comment, it has to have the recommended form. (Most of the
changes in this commit are fixing this form.)
- Improve wording/spelling of some comments in .golangci.yml, and
remove an outdated comment.
- Leave `package-comments` inactive, but add a TODO asking if we
should change that.
- Add a new sub-linter `comment-spacings` (and fix corresponding
comments), which avoids missing spaces after the leading `//`.
Signed-off-by: beorn7 <beorn@grafana.com>
2024-08-22 17:36:11 +02:00