Commit graph

63 commits

Author SHA1 Message Date
Manik Rana 8ccc9afa2a refac: improve error handling
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-07 16:07:56 +05:30
Manik Rana d4f13f6604
chore: comments
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
2024-08-06 11:36:43 +05:30
Manik Rana 3e66526214 chore: comments
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-06 11:01:35 +05:30
Manik Rana e372021a55 refac: extract skipCTSeries logic from parseMetricSuffix
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-06 10:41:51 +05:30
Manik Rana af0481f4be chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 22:21:13 +05:30
Manik Rana 50c2d2ce69 refac: remove NewOpenMetricsParserWithOpts
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 22:18:28 +05:30
Manik Rana e4a9124db0
chore: comments
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
2024-08-05 22:05:36 +05:30
Manik Rana debe023afa chore: comments and readability updates
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 21:38:05 +05:30
Manik Rana 49bf90c897 chore: formatting
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 15:29:27 +05:30
Manik Rana d80bab7705 refac: rename skipCT to skipCTSeries
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 15:24:10 +05:30
Manik Rana 6d0144c16d refac: default skipCT to false
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-08-05 15:20:13 +05:30
Manik Rana 4a3e8d13ad chore: rename var
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-18 17:33:08 +05:30
Manik Rana d0d82e5d16
chore: comments
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
2024-07-18 17:31:41 +05:30
Manik Rana 72acd0c58f chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-17 19:30:23 +05:30
Manik Rana 0572ddc1c0 fix: add NewMetricsParserWithOpts
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-17 19:26:42 +05:30
Manik Rana 3d6b522aca fix: use p.builder in deepCopy
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-15 13:51:31 +05:30
Manik Rana 14394fb466 chore: add new label in deepCopy
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-15 13:47:13 +05:30
Manik Rana 36e87385cb chore: comments
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana e9a0619ede chore: lint
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana e6f6165c9b chore: remove mName
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 0d7ac7caf5 chore: add tests and lint fixes
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana b225050b68 refac: optimize CreatedTimestamp()
- Use refactored CreatedTimestamp function with bug fixes
 - Remove unused code in labels.go
 - Improve code documentation

 Signed-off-by: Manik Rana <manikrana54@gmail.com>

Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana f62664a8e9 feat: document CreatedTimestamp func
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana b768e24e26 refac: dedeuplicate labeldiff checks
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana c4b2a14590 refac: readability updates
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 84bc9d6c3f fix: cover edgecase of gauge_created in CreatedTimestamp()
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana e9391dd61f feat: document deepcopyparser
Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 9c4bc807be fix: comments
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 8ea8352fdc chore: cleanup
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana e37930d973 chore: update go fmt version
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 4102f415d3 fix: return nil when mtype doesn't match
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 96e850df7e feat: advance parser and parse histograms + summary
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana ea9c8cb5a3 fix: check if err from p.Next()
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana e841e00eed feat: multiple changes
- implement changes from pair programming session
- use newParse.val()
- advance parser p if ct is found

Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 188d4cc927 chore: add comments
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 03f2a90394 feat: return ct after finding it
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Manik Rana 7e8899241a feat: initial implement of createedTimestamp() with tests
Signed-off-by: Manik Rana <manikrana54@gmail.com>
2024-07-12 00:48:36 +05:30
Ondrej Kokes 2e30f1231b docs: textparse.Parser return type mismatch
The docs suggest the Next method returns a bool, but that's not the case (`Entry` is an int).

```
	// Next advances the parser to the next sample. It returns false if no
	// more samples were read or an error occurred.
	Next() (Entry, error)
```

The docs were first added in d80a3de235 in 2017. Back then the signature was
indeed `func (p *Parser) Next() bool`. But then it got refactored in 76a4a46cb0
and the signature changed with it, yet docs stayed the same - and eventually made their way into the `Parser` interface.

However, the Protobuf parser does have the right wording: 5de2df752f

```
// Next advances the parser to the next "sample" (emulating the behavior of a
// text format parser). It returns (EntryInvalid, io.EOF) if no samples were
// read.
```

Changing all other implementations (and the interface itself) to match this doc.

Signed-off-by: Ondrej Kokes <ondrej.kokes@gmail.com>
2024-02-29 16:45:05 +01:00
Bryan Boreham eff3a13e19 model/textparse: parsers take a labels SymbolTable
This allows strings to be interned to save memory.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-26 11:45:25 +00:00
Owen Williams a28d7865ad UTF-8: Add support for parsing UTF8 metric and label names
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats.
This grammar will also be valid for non-UTF-8 names.
UTF-8 names will not be considered valid unless model.NameValidationScheme is changed.

This does not update the go expfmt parser in text_parse.go, which will be addressed by https://github.com/prometheus/common/issues/554/.

Part of https://github.com/prometheus/prometheus/issues/13095

Signed-off-by: Owen Williams <owen.williams@grafana.com>
2024-02-15 14:34:37 -05:00
Björn Rabenstein 3db4596965
Merge pull request #13299 from vesari/add-unit-parser
protobuf: add unit parser
2024-01-09 14:47:50 +01:00
Bryan Boreham c83e1fc574 textparse: remove MetricType alias
No backwards-compatibility; make a clean break.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-12-19 18:56:54 +00:00
Bryan Boreham 8065bef172 Move metric type definitions to common/model
They are used in multiple repos, so common is a better place for them.
Several packages now don't depend on `model/textparse`, e.g.
`storage/remote`.

Also remove `metadata` struct from `api.go`, since it was identical to
a struct in the `metadata` package.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-12-19 18:56:54 +00:00
Arianna Vespri 3d6a92a25e Merge remote-tracking branch 'prometheus/main' into add-unit-parser 2023-12-17 14:11:55 +01:00
Arianna Vespri 5d5acf5744 Add unit protobuf parser
Signed-off-by: Arianna Vespri <arianna.vespri@yahoo.it>
2023-12-12 12:40:08 +01:00
Arthur Silva Sens 5082655392
Append Created Timestamps (#12733)
* Append created timestamps.

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>

* Log when created timestamps are ignored

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>

* Proposed changes to Append CT PR.

Changes:

* Changed textparse Parser interface for consistency and robustness.
* Changed CT interface to be more explicit and handle validation.
* Simplified test, change scrapeManager to allow testability.
* Added TODOs.

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Updates.

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Addressed comments.

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Refactor head_appender test

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>

* Fix linter issues

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>

* Use model.Sample in head appender test

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>

---------

Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>
Signed-off-by: bwplotka <bwplotka@gmail.com>
Co-authored-by: bwplotka <bwplotka@gmail.com>
2023-12-11 08:43:42 +00:00
Arthur Silva Sens ef8e6ae780
Parse created timestamps from Prometheus Protobuf (#12973)
Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>
2023-10-18 19:04:02 +01:00
Matthieu MOREL 0a513f827d ci(lint): enable errorlint linter on model
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2023-09-29 21:11:33 +00:00
beorn7 0e3f35324b scrape: Enable ingestion of multiple exemplars per sample
This has become a requirement for native histograms, as a single
histogram sample commonly has many buckets, so that providing many
exemplars makes sense.

Since OM text doesn't support native histograms yet, the test had to
be expanded to also support protobuf test cases.

Signed-off-by: beorn7 <beorn@grafana.com>
2023-07-13 14:16:10 +02:00
Jonatan Ivanov 9225d118dc
Add Exemplars support for all time series
This change removes restrictions to allow adding exemplars
to all time series. It also contains some improvements in test values
so that it is easier to track what is tested.
The advantage of doing this is having a little less error-prone tests:
"yy" is not really descriptive but "counter-test" can give people
a better idea about what is tested so it is harder to make mistakes.

Closes gh-11982

Signed-off-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2023-03-03 17:09:17 -08:00