Commit Graph

21 Commits (3eb5af969a8055c370db6ca3b94ec891f72bde02)

Author SHA1 Message Date
Jonathan A. Sternberg 0ae8bebd75
refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
Stuart Carnie 069820ba4b
fix(models): Added error return value; use iota; fix spelling 2020-04-02 08:34:22 -07:00
Stuart Carnie a9a9535aea
feat: Amend tests to use real org+bucket prefixes, including escaped 2020-04-02 08:33:58 -07:00
Stuart Carnie d424d7d1f5
feat(tsdb): Add new measurement based schema APIs
These APIs require a measurement, permitting an additional optimization
to reduce the search space against the TSM index. Specifically, the
search key prefix is extended from `org+bucket` to
`org+bucket,\x00=<measurement>`

* MeasurementNames
* MeasurementTagKeys
* MeasurementTagValues
* Adds an api to the models package for efficiently parsing the
  measurement tag (\x00) from a normalized series key
2020-04-02 08:33:58 -07:00
Kelvin Wang 60a3922446 fix(models): fix the line breaker 2020-03-19 18:32:29 -04:00
Chris Goller 6af35aec42
feat: render models.Points to string (#17266)
Signed-off-by: Chris Goller <goller@gmail.com>
2020-03-13 14:11:10 -05:00
Michael Angerman 4c1e682117
fix(models): Remove tsdb package dependency from tests (#16918) 2020-02-25 14:06:47 -06:00
George 281c08ec50
fix(models): filter out reserved tag keys in points parser (#16412)
* fix(models): filter out reserved tag keys in points parser

* chore(models): update changelog to reflect reserved tag key change
2020-01-24 17:09:16 +00:00
Stuart Carnie 195a554353
fix(models): Fix bug that did not return ErrLimitMaxBytesExceeded
Adds additional allocation check when constructing errors, to ensure
these do not exceed total allocations.
2020-01-15 17:50:37 -07:00
Stuart Carnie 76c4f90f0b
feat(models): Add limits options to line-protocol parser
The behavior of the line-protocol parser remains unchanged. This PR
moves the functions to a struct in order to simplify the tracking of
limits whilst parsing a request.

Limits may be set using the ParsePointsWithOptions API and the
associated WithParser functional options, all of which are documented.

It should be noted that the behavior of ParsePointsWithPrecision remains
unchanged.

ParsePointsWithPrecisionV1 was no longer used and removed to simplify
code.
2020-01-10 14:42:02 -07:00
Edd Robinson 270f917fcf fix: enable uint64 support 2019-11-01 10:55:54 +00:00
Stuart Carnie 4da079410f
feat(models): New APIs to create Tags from a list of key, value pairs
* New API to convert `models.Tags` to a slice of key, value pairs

```
BenchmarkNewTagsKeyValues/sorted/no_dupes/preallocate-8         	20000000	        63.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkNewTagsKeyValues/sorted/no_dupes/allocate-8            	10000000	       124 ns/op	     144 B/op	       1 allocs/op
BenchmarkNewTagsKeyValues/sorted/dupes-8                        	10000000	       181 ns/op	     240 B/op	       1 allocs/op
BenchmarkNewTagsKeyValues/unsorted/no_dupes-8                   	10000000	       204 ns/op	     176 B/op	       2 allocs/op
BenchmarkNewTagsKeyValues/unsorted/dupes-8                      	 5000000	       308 ns/op	     272 B/op	       2 allocs/op
```
2019-09-11 16:37:57 -07:00
Stuart Carnie 87bfa06a1e
feat(storage): Add ParseTagsWithTags API
This API is a benefit when the caller is only interested in parsing
tags and reusing an existing Tags buffer. It will be used by the
storage schema APIs.
2019-04-24 11:14:22 -07:00
Ben Johnson 272f340c30
Merge point parse & explode. 2019-04-24 10:12:15 -06:00
Edd Robinson 9949fef2a5 Only validate tag pairs are valid unicode
We will want to validate that all tag key/value data is valid unicode.
This commit changes the validation helper to only validate provided
tags, since measurements are currently very likely to contain invalid
utf-8 characters.

There are two exceptions to the tag validation: the validation of the
special tag keys for measurements and field keys.
2019-03-07 09:56:07 +00:00
Ben Johnson 12d35f1a50
Revert "Merge point parse & explode."
This reverts commit 1004abc3e1.
2019-03-02 06:23:04 -07:00
Ben Johnson 1004abc3e1
Merge point parse & explode. 2019-03-01 15:55:37 -07:00
Mark Rushakoff d73d73c0d4 chore: rename imports from platform to influxdb
I did this with a dumb editor macro, so some comments changed too.

Also rename root package from platform to influxdb.

In interest of minimizing risk, anyone importing the root package has
now aliased it to "platform" so that no changes beyond imports were
necessary in those files.

Lastly, replace the old platform module to local path /dev/null so that
nobody can accidentally reintroduce a platform dependency while
migrating platform code to influxdb.
2019-01-09 20:51:47 -08:00
Chris Goller 65bf4bb383 feat(models): only use common SI time units for timestamp precision
Closes #1959
2018-12-20 22:39:24 -06:00
Mark Rushakoff ed4bba83f5 test(models): don't reassign package variable
Prior to this change, `go test -count=2 ./models` would fail like:

--- FAIL: TestMarshal (0.00s)
    points_test.go:37: got:  ,A\ FOO=bar,APPLE=orange,host=serverA,region=uswest
    points_test.go:38: exp:  ,apple=orange,foo=bar,host=serverA,region=uswest
    points_test.go:39: invalid match

because a later test reassigned the package-level variable that
TestMarshal depends on. Don't reassign that variable anymore.

Also cleaned up some whitespace, and moved an init function to the top
of the file for visibility.
2018-11-12 08:24:14 -08:00
Edd Robinson 04818c7859 Initial import of models package 2018-10-01 12:03:19 +01:00