Commit Graph

789 Commits (99cfbfe8cf8f1c857c888aa633cc656507955c8b)

Author SHA1 Message Date
Jonathan A. Sternberg 8ac8ecdb31
feat(query/control): include variable memory limits for the controller (#15300)
The controller now supports setting an initial memory limit and setting
a maximum amount of memory that the controller may use separately from
the memory quota per query and the concurrency quota.

This allows the controller to increase the concurrency quota to a larger
number while setting the maximum amount of memory to a lower amount than
would be required for all queries to use 100% of their allowable memory.

Functionally, this means that a query will have a soft limit for an
initial memory byte quota that a query is guaranteed to have, a shared
pool that it is allowed access to in the case it uses more, and a hard
limit that no query may exceed to prevent runaway queries from taking
over the entire pool.

This change is completely backwards compatible with older configurations
as the new options will default to values that mimic the old behavior
where a query is allocated the full amount of its memory quota and the
maximum amount of memory is based on the concurrency quota and this
maximum memory quota.

In addition to the above, this also fixes a bug in the controller that
allowed it to run more than its concurrency as executing queries. This
happened when the results had finished being sent by the executor, but
the query had not yet been read and/or serialized. The executor would be
freed up and would take the next query even though the previous query
hadn't yet been finalized with `Done()`.
2019-10-15 09:18:00 -05:00
Jonathan A. Sternberg eacc1b0d9c
fix(query): update the QueryServiceProxyBridge to check for an error properly (#15353)
The QueryServiceProxyBridge would not check for errors properly because
it would return any error encountered when running the query as a read
error on the `io.Reader`. This made it so that the csv decoder could not
identify if the error was related to the query or if it was related to
reading. The csv decoder needed to tell the difference because an error
with reading from the `io.Reader` needs to be returned as a decoder
error while an error from the query needs to be returned as-is.

Instead of adapting the csv decoder to do that, we instead lazily
initialize the result iterator when `More()` is called and call `Peek()`
on the reader. If no bytes can be read, we assume this was an error
while executing the query and return it as such. If we are able to read
at least one byte, we decode it through the csv decoder.
2019-10-09 11:06:32 -07:00
Lyon Hill 5e1d7f6c69
feat(task): remove preauth (#15286)
* feat(task): remove preauth

* fix(task): remove e2e test that verified preauth
2019-09-26 10:52:24 -06:00
Christopher Wolff 26dbd9225c feat(query/stdlib/experimental): add experimental.to() implementation to OSS 2019-09-20 14:31:58 -07:00
Lorenzo Affetti 9532c9d170 fix(testing): skip unbounded e2e test 2019-09-19 17:51:45 +02:00
Lorenzo Affetti 2a6cfe3c78 fix(query): inject dependencies in context for BucketAccessed 2019-09-19 17:31:13 +02:00
Lorenzo Affetti 3f50cd2af9 Merge branch 'master' into flux-staging-v0.48.x 2019-09-19 17:20:40 +02:00
Jonathan A. Sternberg cbd04f2884
refactor: http error serialization matches the new error schema (#15196)
The http error schema has been changed to simplify the outward facing
API. The `op` and `error` attributes have been dropped because they
confused people. The `error` attribute will likely be readded in some
form in the future, but only as additional context and will not be
required or even suggested for the UI to use.

Errors are now output differently both when they are serialized to JSON
and when they are output as strings. The `op` is no longer used if it is
present. It will only appear as an optional attribute if at all. The
`message` attribute for an error is always output and it will be the
prefix for any nested error. When this is serialized to JSON, the
message is automatically flattened so a nested error such as:

    influxdb.Error{
        Msg: errors.New("something bad happened"),
        Err: io.EOF,
    }

This would be written to the message as:

    something bad happened: EOF

This matches a developers expectations much more easily as most
programmers assume that wrapping an error will act as a prefix for the
inner error.

This is flattened when written out to HTTP in order to make this logic
immaterial to a frontend developer.

The code is still present and plays an important role in categorizing
the error type. On the other hand, the code will not be output as part
of the message as it commonly plays a redundant and confusing role when
humans read it. The human readable message usually gives more context
and a message like with the code acting as a prefix is generally not
desired. But, the code plays a very important role in helping to
identify categories of errors and so it is very important as part of the
return response.
2019-09-19 10:06:47 -05:00
Lorenzo Affetti ab835c8e0e
refactor(dependencies): use new dependency injection framework (#15174)
refactor(dependencies): use new dependency injection framework
2019-09-19 17:01:17 +02:00
Christopher Wolff eb15b346cc chore: update to Flux v0.47.1 2019-09-18 11:51:46 -07:00
Lorenzo Affetti 95ba072f92
Merge pull request #15137 from influxdata/flux-staging-v0.47.x
build(flux): update Flux to v0.47.0
2019-09-13 19:05:42 +02:00
Jonathan A. Sternberg e99456d9d3
refactor(query/control): update a test to use the arrow allocator interface (#15138)
We are planning to change the allocator interface within flux to use the
arrow allocator. To make the release easier, this updates the test in
advance to use the arrow allocator instead of the to be changed memory
allocator interface from flux.
2019-09-13 11:51:15 -05:00
Lorenzo Affetti 7102febafd fix(testing): skip promql e2e tests 2019-09-13 18:49:00 +02:00
Stuart Carnie d56af6eb29
fix(query): Ensure tags are sorted before passing to PointsWriter
Writes directly to a PointsWriter require the tag key, value pairs
are sorted in lexicographically ascending order. This commit uses
new API from the `models` package to ensure this invariant is
maintained.
2019-09-11 16:37:57 -07:00
Jonathan A. Sternberg bea3a18330
fix(query/stdlib): use auth correctly in the v1.databases() call (#14927)
The `v1.databases()` call did not correctly filter buckets based on
auth. Fortunately, it did not cause any improper permissions such as
allowing a person to see buckets that they had no read access to.

The error instead was that if a user did not have read access to one of
the buckets that was returned, the entire command would fail rather than
filter out the bucket that didn't have permissions.

This changes it so that if the user doesn't gets an unauthorized error
when accessing a bucket, it will filter it from the list instead of
failing. It also changes it so the error message is marked as
`ENotFound` instead of as an internal error.
2019-09-05 10:35:23 -05:00
Nathaniel Cook 454003841a build(flux): upgrade to Flux v0.42.0
Skips a test that requires special dependencies to pass.
2019-08-30 13:02:30 -06:00
Jonathan A. Sternberg ae780ff468
tests(cmd/influxd/launcher): add a launcher test for the secret service (#14813)
The secret service is tested by creating a secret and then attempting to
use it in a flux query. There is one test where accessing the secret
should work and one where it should return that the action is forbidden.
2019-08-27 10:44:46 -05:00
Adam fcfdd2b1ef build(flux): update to latest flux master 2019-08-26 16:46:17 -06:00
Adam f97929614c test(query): roll back some changes to end_to_end_test.go 2019-08-26 16:46:17 -06:00
Adam 945b68b8fd fix(query): finish refactoring the repl and inject the secret service as a dependency 2019-08-26 16:46:17 -06:00
Adam 808ebb9590 fix(query): update usage of interpreter dependencies 2019-08-26 16:46:17 -06:00
Nathaniel Cook 6303e2dcc5 test(query): skip holt_winters_panic test
added executor dependencies where needed
2019-08-26 16:46:17 -06:00
Nathaniel Cook 4b339dd0cf fix(query/to): make orgID default to the context org
This change makes it so that if an org or orgID are missing on calls to the `to` function
that the orgID is retrieved from the request context.

This is consistent with how `from` works.
2019-08-23 11:03:26 -06:00
Nathaniel Cook 6b54abb51e test(query): skip holt_winters_panic test 2019-08-22 13:11:13 -06:00
docmerlin (j. Emrys Landivar) 19fe098888 chore(ci): update go-tools 2019-08-22 10:55:05 -05:00
Jonathan A. Sternberg 11aae144b2
feat(query): wrap the secret service for flux (#14732)
The secret service is wrapped to be compatible with the flux interface
to the secret service.

The organization id is not part of the flux interface so this code
extracts the organization id from the query context so that it can lookup
a secret within the organization.
2019-08-22 10:47:02 -05:00
Nathaniel Cook 7498c06d3f test(query): skip check and http_endpoint Flux tests 2019-08-21 09:59:01 -06:00
Nathaniel Cook 6a0fa44093 fix(query): update code for changes to scoped compiler 2019-08-21 09:59:01 -06:00
Nathaniel Cook 1b8ab3c2f2 fix(query): remove http.to and update test cases that used it 2019-08-21 09:59:01 -06:00
Christopher M. Wolff c61646d0f4 feat(query/stdlib): add an experimental "to" function (#14664) 2019-08-21 09:59:01 -06:00
Nathaniel Cook cd2bfb9b22 refactor(query/stdlib): update tests for new Flux test name conventions (#14669) 2019-08-21 09:59:01 -06:00
Jonathan A. Sternberg b35552721c
fix(query/control): handle flux errors from the table iterator in the controller (#14715) 2019-08-20 12:20:40 -05:00
Stuart Carnie 9d94b7500d
fix(flux): Fix hanging test by ensuring results are read
Closes #14574
2019-08-12 16:47:03 -07:00
Lorenzo Affetti ef238ae064 skipping failing e2e tests 2019-08-06 12:48:32 +02:00
j. Emrys Landivar (docmerlin) b303d54584 perf(query): hoist bucket lookups so we do not look up per table
perf(query): hoist bucket lookups so we do not look up per table
2019-08-05 16:02:33 -05:00
j. Emrys Landivar (docmerlin) 24c1f21e4e WIP 2019-08-05 13:16:51 -05:00
Christopher M. Wolff 42bb664aaf
feat(query): add storage request duration metric (#14534)
influxdata/idpe#4126
2019-08-02 08:53:14 -07:00
Jonathan A. Sternberg e4c89cbe0c
feat(query/stdlib): push down exists operator to storage (#14538)
The `exists` operator now gets pushed down to storage correctly. If
`exists` is used on a tag, then it will be rewritten to `tag != ""`
which is how storage defines if a tag exists. If `not exists` is used,
then it will use `tag == ""` which is how you would query storage for
only if a tag doesn't exist.

The `tag == ""` and `tag != ""` are different. For `tag == ""`, the
predicate is impossible for the storage layer to return true with.
Ideally, we would just rewrite this to return nothing and we wouldn't
bother with even querying storage. Instead, we just do not rewrite this
predicate because it cannot be rewritten to make sense with storage. If
we see `tag != ""`, it is the only one that can be passed through as-is
because `tag != ""` returns the same values as `exists tag`. It will
return true for every non-null value.
2019-08-02 09:31:10 -05:00
Christopher M. Wolff e142f6ca7c
fix(query): add LookupName method to dependency interfaces (needed by flux to()) (#14498) 2019-08-01 10:10:43 -07:00
George b2fe0d1d63
fix(tasks): surface flux errors on pre-auth check (#14492) 2019-07-31 11:46:28 +02:00
Christopher Wolff 3855ad9f33 chore: update Flux to v0.37.2 2019-07-24 12:57:37 -07:00
Christopher Wolff 63c0f40548 fix(query): use auth-wrapped org and bucket services for query 2019-07-19 20:02:53 -06:00
Jonathan A. Sternberg 47b032464f
refactor(query): handle flux errors in the query controller instead of http (#14368)
If we handle the flux errors in the query controller, it makes it so we
are handling the errors in the location where the happen rather than at
a layer further up the stack.

This should simplify it so the errors are handled in this single
location instead.
2019-07-18 11:43:15 -05:00
Jonathan A. Sternberg ee7ff84d8b
feat(query/stdlib): update influxdb sources to use flux error codes (#14346)
Update the influxdb sources to be annotated with flux error codes. This
will enable us to identify different response codes for these
operations.
2019-07-16 09:15:46 -05:00
Nathaniel Cook e59c72b245 fix(tests): update e2e tests for new flux executetest methods 2019-07-12 11:15:58 -06:00
Nathaniel Cook 92a4ee53cf fix(query): skip tests 2019-07-12 11:15:58 -06:00
Jonathan A. Sternberg a0f585bd56
fix(query/stdlib): remove skip from the flux e2e tests (#14253)
The underlying bug that caused them to be flaky has been fixed.
2019-07-03 12:03:22 -05:00
Nathaniel Cook 11a4b911b0 fix(query/influxql): use explicit mergeKey parameter 2019-07-03 09:48:31 -06:00
Jonathan A. Sternberg 3d9b9fe36f
chore(query): disable flaky end to end tests for flux (#14231) 2019-06-28 10:15:47 -05:00
Adam d85ef69e19 Merge remote-tracking branch 'origin/master' into flux-staging 2019-06-19 13:38:49 -04:00
Adam 1d84bf6516 fix(stdlib/testing): skip flaky test regexp_replaceAllString 2019-06-18 16:25:59 -04:00
roshie548 15f66d1b98 moved field declaration line 2019-06-18 08:51:34 -07:00
roshie548 f45d616eaa added test case 2019-06-18 08:51:34 -07:00
roshie548 13b397bb3c fix(stdlib): Fixed to() creating too many rows for multiple fields
If a table has multiple field values, to() no longer writes rows multiple times.
2019-06-18 08:51:34 -07:00
Christopher Wolff e495ca3e27 fix(query): recover from panics during compiler and start steps
Fixes influxdata/idpe#3409.
2019-06-11 08:41:13 -07:00
Jonathan A. Sternberg 65dabb0774
Merge branch 'master' into flux-staging 2019-06-06 11:22:04 -05:00
Lorenzo Affetti 5f8796aca6
Merge pull request #14044 from influxdata/fix/gen-promql
fix(promql): synch generated code
2019-06-05 17:53:51 +02:00
Jonathan A. Sternberg 42c8ce3481
fix(query/stdlib): remove skips for tests that were flaky from table.Do (#14048) 2019-06-03 11:56:25 -05:00
Lorenzo Affetti 6e4c66e21f fix(promql): synch generated code 2019-06-03 17:47:59 +02:00
Jonathan A. Sternberg c6bb1ef4e2
fix(query/control): queue size test was flaky (#14030)
In the QueueSize test, it was possible that after the `done` channel was
closed, one of the queries from the queue would begin executing. If all
three began executing before the shutdown was done, the third would
block on attempting to send a value to the `executing` channel and it
would never finish so the controller would report that shutdown failed.

This increases the queue size to a combination of the concurrency quota
and the queue size so all of the started queries will never block when
sending a signal to the executing channel.
2019-05-31 08:59:45 -05:00
Christopher Wolff 6d3cf4b71e test(query): update typo in Flux in test
This test started failing as a result of influxdata/flux/#1312.
2019-05-30 16:29:31 -07:00
Jonathan A. Sternberg 2b1c1ec143
fix(storage/reads): fix the storage tables to work correctly with multiple transformations (#14016)
The storage table reader will now work correctly when there are multiple
outputs. The table interface now implements the new table and column
reader interfaces and works properly with `execute.CopyTable`. The
source uses `execute.CopyTable` to buffer the table in memory when there
are multiple output transformations.
2019-05-30 12:31:54 -05:00
Jonathan A. Sternberg c560e27e1d
chore(flux): update to Flux v0.31.1 (#14015) 2019-05-29 15:48:23 -05:00
Jonathan A. Sternberg 21c80f3e93
refactor(query/control): move the controller from flux to influxdb (#13991)
The controller implementation is primarily used by influxdb so it
shouldn't be part of the flux repository. This copies the code from flux
to influxdb so it can be removed from the next flux release.
2019-05-29 09:04:34 -05:00
Jonathan A. Sternberg ebdbc394fc
chore(flux): update to Flux v0.31.0 (#14002)
* refactor(storage/reads): update the table implementation for the interface change (#13994)

* chore(flux): update to Flux v0.31.0
2019-05-28 17:24:26 -05:00
docmerlin (j. Emrys Landivar) fa849d5c0b chore(testing) skip flakey test 2019-05-28 10:49:16 -05:00
Nathaniel Cook 8ebd6c8315 chore(query): add missing skip tests from merge 2019-05-15 10:18:08 -06:00
Lorenzo Affetti 44fb090468 test(flux/e2e): export skip list 2019-05-13 19:14:52 +02:00
Adam ae25f0c448 Merge remote-tracking branch 'origin/master' into flux-staging 2019-05-09 15:29:00 -04:00
Jonathan A. Sternberg dd56c23343
fix(query/influxql): update transpiler for moved/renamed code (#13740)
The `databases()` function was moved into the `influxdata/influxdb/v1`
package and so it wouldn't work anymore. The `percentile()` call was
changed to `quantile()` and the argument was changed to `q`. This also
updates `median()` to use `median()` since we now produce AST's and not
the spec so we can use the `median()` definition instead.
2019-05-09 11:22:32 -05:00
Adam 415f698491
Merge pull request #13830 from influxdata/fix/to_heterogeneous
Fix/to heterogeneous
2019-05-08 16:45:46 -04:00
Adam 397c33a0dc fix(stdlib/influxdata): fix influxdb.to function to process heterogeneous tables 2019-05-08 09:37:43 -04:00
jlapacik dc59629f69 fix(influxdb): better error message when range not pushed down
Fixes https://github.com/influxdata/flux/issues/1224.
2019-05-07 09:59:58 -07:00
jlapacik faab75968b refactor(storage): remove Read method from Store interface 2019-05-03 11:02:20 -07:00
jlapacik 7333847e2a refactor(influxdb): remove and/or transfer duplicated tests 2019-05-03 11:02:20 -07:00
jlapacik 0ce05e7ad6 refactor(influxdb): remove old FromProcedureSpec 2019-05-03 11:02:20 -07:00
Lorenzo Affetti 33418aac2c test(flux/e2e): skip flaky window_generate_empty test 2019-05-02 18:19:07 +02:00
jlapacik e50508a349 feat(influxdb): enable group pushdown rule
Closes #13623.
2019-05-01 10:35:10 -07:00
jlapacik 95aa194498 feat(storage): ReadGroup RPC definitions and storage reader 2019-05-01 10:35:10 -07:00
jlapacik 5f87134ca8 feat(query): physical group operation and pushdown rule
test(query): group pushdown rule
2019-05-01 10:35:10 -07:00
Jonathan A. Sternberg 1a254a3293
feat(stdlib): enable the tag keys optimization for meta queries (#13705) 2019-04-30 21:32:47 -05:00
Stuart Carnie fb39ac39ce
fix(storage): Store.Read behavior changed to return unsorted series keys
Closes #13581
2019-04-26 10:38:59 -07:00
Jonathan A. Sternberg 46d2d0012b fix(storage): translate _measurement and _field to the proper strings (#13662)
The RPC call should translate `_measurement` and `_field` to their
proper shortened byte strings when requesting the tag values.

This also fixes the planner rewrites to return the root node even when
no rewrite happened as this is required by the planner.
2019-04-26 10:36:51 -07:00
Nathaniel Cook e651b020b2 refactor(query): enable new planner rules and remove old rules 2019-04-25 11:16:11 -07:00
Ben Johnson 01bfcf822b
Merge point parse & explode (#12377)
Merge point parse & explode
2019-04-24 10:30:16 -06:00
Ben Johnson 272f340c30
Merge point parse & explode. 2019-04-24 10:12:15 -06:00
Jonathan A. Sternberg 5e77bd1e28
feat(query): implement the read tag values rpc call in the query engine (#13559)
If a pattern is seen that matches the `v1.tagValues(...)` call, then it
will be replaced with a direct RPC call to read the tag values for the
selected tag key which should be better optimized than reading from the
storage engine tsm1 files.
2019-04-23 12:56:35 -05:00
Nathaniel Cook bc17af2118
Merge pull request #13569 from influxdata/flux-staging
chore(dep): update Flux to v0.27.0
2019-04-22 18:34:39 -06:00
Kelvin Wang 7a72c363f2 remove org from bucket 2019-04-22 18:39:05 -04:00
Kelvin Wang 9d44ac3635 rename bucket organization to org 2019-04-22 18:39:01 -04:00
Nathaniel Cook a49d1696dc Merge branch 'master' into flux-staging 2019-04-22 14:25:33 -06:00
Christopher M. Wolff c9f94d4ee8
refactor(query): add parameters to query controller config (#13554)
Recently added to controller config:
  ConcurrencyQuota
  MemoryBytesQuotaPerQuery
  QueueSize
2019-04-22 12:11:32 -07:00
Jonathan A. Sternberg e5657ca62b
feat(query): implement the read tag keys rpc call in the query engine (#13513)
If a pattern is seen that matches reading the tag keys, it will be
replaced with a direct RPC call to read the tag keys which should be
better optimized than reading from the storage engine tsm1 files.
2019-04-22 14:09:44 -05:00
Jonathan A. Sternberg c98c29c1d1
feat(query): add push down rule for filters to read range procedure (#13512)
The read range procedure that uses the new rpc endpoints will now accept
filters using the same rules as the previous physical from procedure
spec.
2019-04-18 18:18:41 -05:00
Nathaniel Cook 4c77e3598b Merge branch 'master' into flux-staging 2019-04-18 11:01:22 -06:00
Nathaniel Cook 4c1cdd2095 fix(query): add panic stack to logs for query logging recovery 2019-04-18 10:57:43 -06:00
Nathaniel Cook 07f98e31e7 fix(query): fix misc tests with new master Flux 2019-04-18 10:51:35 -06:00
Todd Persen cd64ec8718 Fix typos in miscellaneous packages 2019-04-17 13:30:22 -07:00
Nathaniel Cook 8b918539db Merge branch 'master' into flux-staging 2019-04-17 12:26:10 -06:00
Mark Rushakoff d0517f288a fix(query): return statistics even in encoder error case
The ProxyQueryServiceAsyncBridge was not returning statistics when there
was an encoder error. Because the encoder was just writing to an
io.Writer, it was possible that a remote disconnect could happen and
statistics could not be reported.
2019-04-16 09:51:13 -07:00
jlapacik 89bf535602
test(stdlib): skip flaky range test (#13405) 2019-04-15 10:08:50 -07:00
Christopher M. Wolff 77f1b0da4b fix(query): re-enable some from/to bucket tests (#13334) 2019-04-12 07:15:27 -07:00
Adam 29df88127f refactor(query/preauthorizer): preauthorizer now uses a BucketsAccessed method that accepts AST (#13302) 2019-04-12 07:15:27 -07:00
jlapacik 20b492bb13 refactor(influxql): compile with planner options (#13288) 2019-04-12 07:15:27 -07:00
Christopher M. Wolff 6c3f1a05b9 refactor(query): allow code to compile despite BucketsAccessed (#13282)
BucketsAccessed doesn't work currently with a private flux.Spec.
See this issue: https://github.com/influxdata/influxdb/issues/13278

This set of changes just allows code to compile until #13278 is fixed.
Note that preauthorization is not working in the meantime.

Fixes #13275.
2019-04-12 07:15:27 -07:00
Christopher M. Wolff 5e09aa178b fix(query): make mock Query close its results channel (#13242) 2019-04-12 07:15:27 -07:00
Christopher M. Wolff 16b9158b39 refactor(task): make tasks use new Query interface (#13219)
Fixes #12883.
2019-04-12 07:15:27 -07:00
Christopher M. Wolff dec149d22d refactor(query): update testing InfluxQL testing compiler to use new interface (#13107)
Fixes influxdata/flux#1099.
2019-04-12 07:15:27 -07:00
Nathaniel Cook f37e65f26c fix(query): change logging bridge to be a service instead
It is no longer necessary for the query logging to be a bridge as the
stats are available for consumption from the ProxyQueryService.
This change changes the logging bridge to directly implement the proxy
query service instead of implementing a bridge.
2019-04-11 14:46:45 -06:00
Jacob Marble f56c42794b
chore(tracing): Cleanup (#13296)
* chore(tracing): Cleanup

* broken test

* fix unused var

* fix test
2019-04-10 19:28:21 -07:00
kelwang be674622c6
Revert "fix(inmem): remove the old inmem implementation" 2019-04-09 14:24:40 -04:00
kelwang d0022dfd5c
Merge pull request #13039 from zhulongcheng/rm-inmem-impl
fix(inmem): remove the old inmem implementation
2019-04-09 13:06:50 -04:00
jlapacik 8078b915fd refactor(storage): ReadFilter storage operation 2019-04-08 15:59:37 -07:00
zhulongcheng cacd6a8223 fix(inmem): replace inmem.Service with kv.Service 2019-04-08 15:18:38 +08:00
Jonathan A. Sternberg 72726cbe85
Merge branch 'master' into flux-staging 2019-04-01 10:59:43 -05:00
Lorenzo Affetti c4ae25ca39
Merge pull request #12812 from influxdata/test/memory-limits
test(launcher): test for query memory limits and launcher test helpers
2019-03-28 15:48:16 +01:00
Christopher M. Wolff f945b84642
refactor(stdlb): Change plan.PlanNode to plan.Node (#12906) 2019-03-27 14:19:04 -07:00
Nathaniel Cook ca6f2ad0c6 Merge branch 'master' into flux-staging 2019-03-27 09:42:48 -06:00
Lorenzo Affetti 90a48c74f6 test(launcher): test for query memory limits and launcher test helpers 2019-03-27 15:50:35 +01:00
Lorenzo Affetti a49bb73c04 chore: update Flux to v0.23.0 2019-03-26 18:04:18 +01:00
Christopher M. Wolff 56e688beee
fix(query): add Check method to query service interfaces (#12866)
Fixes influxdata/idpe#2756.
2019-03-25 20:05:44 -07:00
Lorenzo Affetti d18c6e5ffe
fix(query/stdlib/influxdb): return error on point explosion (#12774) 2019-03-20 15:45:31 +01:00
jlapacik adbfddb0ef
Flux staging (#12760)
* deps: update flux-staging to master of both influxdb and flux (#12698)

* test(stdlib): skip failing window test due to new trigger optimization (#12708)

* chore: update Flux to v0.22.0
2019-03-19 22:19:24 -07:00
Mark Rushakoff 490499267b fix(query): allow multiple calls to Release proxy bridge iterator
The asyncStatsResultIterator used inside QueryServiceProxyBridge assumed
that Release would only be called once. The godoc for ResultIterator
specifies that it is safe to call Release multiple times. Now, you can
do that without causing Release to block indefinitely.
2019-03-19 16:06:43 -07:00
jlapacik 9324d5c1a1
test(stdlib): skip failing window test due to new trigger optimization (#12708) 2019-03-19 09:16:47 -07:00
Jonathan A. Sternberg 862f168967
deps: update flux-staging to master of both influxdb and flux (#12698) 2019-03-18 16:13:02 -05:00
jlapacik 124a2c6b6c test(stdlib): fix mismatched planner node types (#12695) 2019-03-18 14:54:48 -05:00
Jonathan A. Sternberg 0d045630c8
fix(query): release the query results before requesting statistics (#12622)
The statistics are only finalized after release is called. Defer a call
to release to ensure they are released, but explicitly release on
success to ensure that the statistics are finalized from all sources
before returning them.
2019-03-14 11:12:53 -05:00
Jonathan A. Sternberg e3ac5ffecf
feat(query/mock): create a mock object for the query interface (#12628) 2019-03-14 11:08:48 -05:00
Kelvin Wang dcc052b1c2 fix(query): fix same bucket name with different orgs 2019-03-08 20:37:05 -05:00
Jacob Marble 603a1f26e0 use tracing.StartSpanFromContext 2019-03-07 12:12:31 -07:00
Jacob Marble ed4e3e130b return n with error 2019-03-07 12:12:31 -07:00
Jacob Marble 9541e861a3 goimports -w -local github.com/influxdata/influxdb 2019-03-07 12:12:31 -07:00
Jacob Marble 92fa813c45 add spans to multiple services 2019-03-07 12:12:31 -07:00
Christopher M. Wolff e28ecdc0e9
refactor(query): make queryd present ProxyQueryService (#12360)
Fixes influxdata/idpe#2014.
2019-03-07 07:32:13 -08:00
Jonathan A. Sternberg 9549cc4d97
fix(storage/reads): track memory allocations when reading from storage (#12404) 2019-03-06 15:29:45 -06:00
Jacob Marble b9c7ec439e
feat(influxd): Tracing refactor (#12318)
* feat(launcher): Tracing to log disabled by default

* remove traceLogger and use opentracing directly

* add Jaeger tracing

* go vet && go fmt
2019-03-04 11:48:11 -08: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
Jonathan A. Sternberg 70507670c3
feat(storage/reads): add scanned values and bytes metadata to the query (#12156)
This updates influxdb to use the new arbitrary metadata that can be
attached by a source and adds metadata entries for the cursor
statistics.
2019-02-25 14:44:18 -06:00
Nathaniel Cook 26e7f641b7 Merge branch 'master' into flux-staging 2019-02-25 13:00:28 -07:00
Michael Desa 0d3d0d4d78
chore(influxdb): add context to storage.PointsWriter 2019-02-25 11:11:20 -05:00
Lorenzo Affetti cf81141689
fix(e2e-tests): make task use default bucket from user fixture (#12139)
* fix(e2e-tests): make task use default bucket from user fixture

* fix(query_test): update pre-auth test now that from is bucket aware
2019-02-25 12:38:04 +01:00
Lorenzo Affetti 5369c189b0
Merge pull request #11894 from influxdata/fix/buckets-accessed
fix(query/stdlib/influxdb): make FromOpSpec a BucketAwareSpec
2019-02-25 09:16:55 +01:00
Adam 4c0262befe
test(stdlib/testing): added new test driver to run builtin tests (#11916) 2019-02-21 22:03:29 -05:00
Mark Rushakoff 0977a651df fix(task): create authorization when using token to create task 2019-02-15 12:11:55 -08:00
Lorenzo Affetti b68043ae8c fix(query/stdlib/influxdb): make FromOpSpec a BucketAwareSpec 2019-02-14 17:38:48 +01:00
Jonathan A. Sternberg f30820cb46
fix(query/influxql): normalize selectors when an interval is present (#11760)
The selector will be normalized to the start time interval when `GROUP
BY time(X)` is present in the query.
2019-02-11 10:51:59 -06:00
Christopher Wolff 698de51e67 refactor(query): update to reflect changes to windows 2019-02-08 08:39:52 -08:00
Christopher Wolff 3e8b0fe807 refactor(query): separate "from" into logical and physical procedures
Fixes influxdata/flux#270.
2019-02-07 12:59:54 -08:00
Jonathan A. Sternberg 204d919a92
refactor(query/influxql): use ast compile function from flux (#11749) 2019-02-07 10:02:23 -06:00
Jonathan A. Sternberg 8b20b52f51
refactor(query/influxql): modify the transpiler interface to produce an AST (#11662)
This refactors everything to generate and use a flux AST when
transpiling an influxql query. This also updates the spectests so they
use flux instead of writing out the AST and compare the resulting
AST's.
2019-02-06 10:18:33 -06:00
Lorenzo Affetti c0ba465604 fix: multiple compatibility issues with flux@master 2019-02-05 17:46:54 +01:00
Lorenzo Affetti ce00375298 refactor(query/stlib): move from implementation from Flux 2019-02-05 17:46:46 +01:00
Nathaniel Cook d4d8bdd3a0 refactor(query): update import path for CreateSourceFromDecoder 2019-01-22 14:36:31 -07:00
Lyon Hill c4e71bf412
Use orgID when to function reports its write buckets. (#11363)
* Use orgID when to function reports its write buckets.

fixes #11231
2019-01-22 14:13:50 -07:00
Mark Rushakoff 10b7e087e7 fix(query): improve preauthorizer errors on unknown buckets
When trying to create a task that writes to an unknown bucket,
previously the error message would resemble:

could not find bucket {<nil> 0xc0000dfcc0 <nil> 0xc0000dfce0}: <not found> bucket not found

Now print something human-readable:

could not find write bucket with filter: [Bucket Name: b, Org Name: a]: <not found> bucket not found
2019-01-18 16:22:15 -08:00
Michael Desa c60031a6b7 fix(influxdb): change resource to resource type 2019-01-15 12:57:57 -05:00
Nathaniel Cook d0603457b7 refactor(flux): make packages mirror Flux namespaces 2019-01-14 18:00:45 -07:00
Nathaniel Cook 622106caaa Merge branch 'master' into flux-staging 2019-01-14 17:03:57 -07:00
Jorge Landivar f8f1c1e7b6
Merge pull request #10954 from influxdata/feature/update_task_options
feat(tasks): update task options from api
2019-01-11 14:58:10 -06:00
Nathaniel Cook 3a2231be98 Merge branch 'master' into flux-staging 2019-01-11 13:47:49 -07:00
Nathaniel Cook 1708a41fa7 refactor: update query functions for Flux builtins 2019-01-11 13:11:57 -07:00
j. Emrys Landivar (docmerlin) a2674fa03d feat(tasks): update task options from api 2019-01-11 11:55:46 -06:00
Michael Desa 944de4157a fix(influxdb): add org id to permissions
filter out resources that have mission IDs

fix(influxdb): simplify auth check in PermissionAllowed

review(platform): update as noted in review

fix(influxdb): ensure permission has valid org id
2019-01-11 12:23:28 -05:00
jlapacik 5266cba346
deps: updates for packages and imports (#10962) 2019-01-10 14:33:25 -08:00
Jonathan A. Sternberg a59e6b8d25 refactor: rename DoArrow to Do (#2372)
See influxdata/flux#783 for details.
2019-01-10 10:30:25 -07:00
Jonathan A. Sternberg 6ccb8e8c75 refactor: convert usages of ColReader to ArrowColReader 2019-01-10 10:25:10 -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
Adam fa35dea009 feat(query/functions/tests): end to end testing is configured to run against a live storage engine.
all tests use a unique bucket based on the test file name.  copied all tests over from flux repo

the tests are currently disabled due to engine consistency issues:  https://github.com/influxdata/flux/issues/613
2019-01-07 13:05:29 -05:00
Adam 9a561f8b53 manually merged addition of secrets to launcher 2019-01-02 15:42:55 -05:00
Andrew Watkins 3429e8d0c6
feat(auth): rewrite authorization service (#2157)
* feat(view-token-overlay): add view token overlay

* test(tokens): update tests

* chore(auths): rename mock data file

* feat(token-view): clicking on description opens token view modal

* feat(token-view): add ability to close overlay

* feat(token-view): display token permissions with updated permissions shape

* feat(token-view): wip update authorization and permission shapes

* feat(auth): wip refactor auth permissions

* fix(auth): generate permissions via functions

* fix(auth): make Id ID

* chore(types): update generated client

* feat(auth): wip add user and org names to auth

* fix(user): didnt save rebase

* feat(auth): WIP refactor auth

* feat(auth): check for user existence during auth creation

* feat(auth): org must exist during auth creation

* fix(auth): pluralize telegrafs resource type

* docs(http): update swagger definition for the Authorization

* test(auth): fix broken tests

* docs(swagger): update cur_swagger Authrorizations

* fix(api): remove trace from cur_swag

* test(ui/token): update components with new generated type definitions

* feat(http): add lookup service adding names for permissions

* fix(http): remove debugging panics

* chore: go tidy

* fix: unsaved rebase

* test(idpe): add ids to Authorizations for log tests
2018-12-28 15:02:19 -08:00
Adam 6777b9676c
refactor(query/functions/outputs): refactor to.go to use arrow data … (#2131)
* refactor(query/functions/outputs): refactor to.go  to use arrow data structures

* update flux to latest master
2018-12-21 11:39:53 -05:00
Adam a20eda258d Merge remote-tracking branch 'origin/master' into flux-staging 2018-12-20 16:31:44 -05:00
Adam ad38ad8c3f Revert "refactor(cmd/influxd): move driver code for influxd main package to sub-package so it can be reused (#2077)"
This reverts commit c3c12d1517.
2018-12-20 16:29:28 -05:00
Adam c3c12d1517
refactor(cmd/influxd): move driver code for influxd main package to sub-package so it can be reused (#2077)
* refactor(cmd/influxd): move driver code for influxd main package to sub-package so it can be reused.

* chore(query/influxql): moved query_test.go and requisite files to the influxql dir to be closer to the code it tests. (#2013)
2018-12-20 16:15:40 -05:00
Christopher M. Wolff 72a0474f0a
fix(query): make databases() function embed plan.DefaultCost (#2079)
This was causing "unable to create physical plan" errors.  With this fix in place there is still an issue with with databases: influxdata/flux#583
2018-12-20 12:34:29 -08:00
Adam af0cad76ba
chore(query/influxql): moved query_test.go and requisite files to the influxql dir to be closer to the code it tests. (#2013) 2018-12-20 11:48:33 -05:00
Nathaniel Cook d6c0a393b0 Merge branch 'master' into flux-staging 2018-12-19 11:30:55 -07:00
Nathaniel Cook 61e36cbee6 chore(Makefile): add target to check generated files are accurate
A standard Makefile is used now in all subdirs that run go generate.
Make will only generate the file if its source files changed.
The checkgenerate target runs clean to ensure all targets a generated
fresh.
2018-12-18 12:54:17 -07:00
Jonathan A. Sternberg cc93531400 fix(storage): convert the storage table interface to use arrow buffers
The table interface was modified to expose the arrow buffers. The
storage table has now been converted to use this interface with the same
fixes so that it exposes arrow buffers.

The influxql package has also been updated to use the `DoArrow` method
from the `flux.Table` interface.
2018-12-18 09:47:53 -07:00
Christopher M. Wolff a28dfe8f79
fix(query): restore error messages in repl (#1936)
Fixes #1932
2018-12-13 14:11:17 -08:00
Lyon Hill f7ae8c3524
feat(api/task): Add validation for both tasks and buckets on task create (#1900)
fixes #1622
2018-12-12 16:07:40 -07:00
Christopher M. Wolff c9ec2dd07f
fix(query): set error code "invalid" when controller reports error (#1812)
Fixes flux#268
2018-12-11 07:57:32 -08:00
j. Emrys Landivar (docmerlin) 0cb888afc0 Change delay to offset in tasks to match the flux spec 2018-12-06 11:00:07 -06:00
Christopher M. Wolff f1d21b8132
refactor(query): update transpiler to reflect signature change to `group()` (#1689)
update other modules that used old syntax as well
2018-12-04 09:32:37 -08:00
jlapacik d03035df9b the final HT tests 2018-11-30 08:16:13 -08:00
Edd Robinson f7a11525d0 Ignore generated file 2018-11-30 10:54:24 +00:00
Edd Robinson 9403c1ec8e Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
Ben Johnson 0084d4d824
Remove influxdb dependency. 2018-11-29 11:44:22 -07:00
Ben Johnson ee1eaaaaae
Merge pull request #1265 from influxdata/track-scanned
Add scanned value & bytes statistics.
2018-11-28 15:59:04 -07:00
Ben Johnson 868fdbbe03
megacheck 2018-11-28 15:52:11 -07:00
jlapacik f382c3b3c7 generate derivative tests from HT
skipping these tests for now until the transpiler
adds support for derivative.
2018-11-28 14:34:32 -08:00
Ben Johnson 1862b4421d
Integrate scanned values statistics tracking. 2018-11-28 15:32:06 -07:00
Lorenzo Affetti 987370d1c9
Merge pull request #1565 from influxdata/la-median-transp
Support for median in transpiler
2018-11-27 17:38:35 +01:00
Lorenzo Affetti eda4a59c35 Support for median in transpiler 2018-11-27 17:23:29 +01:00
Mark Rushakoff a06d4dea16 refactor(query): explicitly shut down query controller
The flux query controller was updated to include a Shutdown method a
while ago. Explicitly handle query controller creation and shutdown
where applicable.

In influxd, this ensures that outstanding queries are handled before the
process dies. In tests, this ensures that query controller goroutines
aren't leaked, which drastically simplifies reading full stack traces.

This change also registers query controller metrics with the prometheus
registry in influxd.
2018-11-26 16:13:19 -08:00
jlapacik d89220fd9a transpiler test case for grouping by time interval (windowing) 2018-11-26 15:31:07 -08:00
jlapacik 2384927047 compare tables directly for generated end-to-end tests 2018-11-26 15:04:22 -08:00
Christopher M. Wolff a3ad02288b
Remove use of verbose from control.Config (#1573) 2018-11-26 16:02:41 -07:00
jlapacik 2b52224e84 update flux dependency - add missing Statistics() methods 2018-11-26 13:19:14 -08:00
jlapacik 17413276c2 update transpiler result iterators with new Statistics method 2018-11-26 12:17:16 -08:00
Michael Desa 81d1520dc6 fix(platform): keep authorization struct on proxy query request
As a result of pr https://github.com/influxdata/platform/pull/1494, idpe
broke. This PR undoes some of the work done from that PR, but fixes the
underlying issue with #1494.
2018-11-20 15:20:51 -08:00
Michael Desa 407c01cb17 fix(platform): use authorizer instead of authorizion for endpoints
feat(platform): add ToPermissions method to user resource mapping

The ToPermissions method returns a set of permissions that is granted
via a user resource mapping.

feat(bolt): resolve sessions permissions on lookup

feat(http): use authorizer instead of authorization service for write api

feat(bolt): create user resource mappings for org users in bucket create

feat(bolt): create user resource mapping for first org/user

fix(platform): use authorizer for query endpoint instead of authorization

test(http): use cmp instead of reflect for decode test
2018-11-20 10:56:58 -08:00
jlapacik f7a55a7606 transpiler test case for multiple fields in project 2018-11-16 15:05:45 -08:00
Adam 41aa5688a0
Add default column to databases and add support for `show retention policies` (#1423)
* Add default column to databases to support `show retention policies`

* add unit test for show retention policies

* update transpiler readme for show databases, show retention policies
2018-11-16 15:20:49 -05:00
Chris Goller a8c1155b21 fix(Makefile): remove old clean targets 2018-11-15 20:21:30 -06:00
Christopher M. Wolff bbd460e7d9
Add method QueryRawJSON to influxql.service (for querytest tool) (#1402) 2018-11-15 10:45:38 -08:00
Adam 2321d81291
Feat/transpiler show databases (#1363)
* feat(query): databases transformation implementation
add show databases to transpiler
2018-11-13 16:07:28 -05:00
jlapacik a86a37eb02 transpiler test case for basic group by time 2018-11-13 09:03:04 -08:00
Adam c950a6dc00
fix to transpiler result encoder when there's no _time column (#1350)
* fix to transpiler result encoder when there's no _time column
* add unit tests
2018-11-12 15:35:16 -05:00
Jonathan A. Sternberg fadf4f3e4f
deps: update flux dependency 2018-11-08 14:49:35 -06:00
Adam 2d54689eda skip generated tests in random folder due to known issue in transpiler 2018-11-06 14:04:40 -08:00
jlapacik 3a6810c7ff generated influxql json tests 2018-11-06 14:04:40 -08:00
Jonathan A. Sternberg 66920f253a
fix: show tag values must specify a range stop 2018-11-06 09:17:37 -06:00
Nathaniel Cook 9fecaa0eb0 chore: Update for Flux renaming 2018-11-05 19:30:22 -07:00
Adam 612005cad1
add output to to function (#1282)
* added (unused) stats struct, and piped written data to output table

* updated to tests since to returns data now

* changes based on review
2018-11-02 13:40:25 -04:00
Mark Rushakoff dae3dc8a7e chore(bolt,http,mock,query,testing): fix megacheck errors 2018-11-01 12:54:46 -07:00
Adam 8a1fecd727
to() for influxdb (#1194)
* update to latest flux master incl. values interface refactor, type inference, planner.  

* add measurementColumn parameter, update function params spec
2018-11-01 14:44:56 -04:00
Nathaniel Cook 2a1d76eb2d chore: Update flux dependency for the type-inference changes 2018-10-31 17:11:11 -06:00
Adam 98be8bcd32
moved to_http and to_kafka to flux and update to latest flux (#1175) 2018-10-24 12:33:43 -04:00
Lyon Hill 19b7709bad
Add tasks to the influx cli (#1163) 2018-10-23 11:51:13 -06:00
Adam ea4c08b327
(feat/query): implement a buckets() source function that retrieves all buckets and retention policy information for the active organization. (#1045) 2018-10-17 10:21:39 -04:00
Jonathan A. Sternberg e9600b1f0b
refactor: modify tooling to take advantage of go run
The generate commands have been modified to take advantage of the new
functionality in Go 1.11 that allows `go run` to execute a package
instead of individual files.

This functionality combined with Go modules allows us to execute a
package directly out of our pinned dependencies rather than accidentally
picking up another binary outside of the build environment.

This also simplifies the Makefile because they no longer have to be
responsible for installing the correct tooling since the Go command
takes care of that logic. It also makes it so that the Makefiles with
file generation can now be invoked from their appropriate subdirectories
so they are contained within the directory itself rather than relying on
values in the top level Makefile.

It is now possible to generate all files within this project by using:

    go generate ./...

Or the Makefile can continue to be used.

This commit also copies over the special copy of `tmpl` that the storage
engine uses within the influxdb repository. It was never copied over so
using `go generate` on these packages did not work.
2018-10-15 11:01:27 -05:00
Stuart Carnie 4f0c1a7aed fix(storage): Add db/rp fields for InfluxDB OSS 2018-10-11 15:19:38 -07:00
Chris Goller 2bea48f15a refactor(testing): rename MustIDFromString to MustIDBase16 2018-10-11 09:54:19 -05:00
Chris Goller 473f4e986c fix(functions/input): use 16 character hex string for test 2018-10-11 09:54:19 -05:00
Chris Goller 919aae41c8 refactor(id): update storage, read, and flux from to use IDs 2018-10-11 09:54:19 -05:00
Leonardo Di Donato 6725ae6f64 feat(platform/id): method to create an invalid id
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2018-10-11 09:54:18 -05:00
Leonardo Di Donato 5a0b3eb2f9 fix(cmd/influx): composite literals
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2018-10-11 09:54:18 -05:00
Leonardo Di Donato f42c581ad0 fix(query): edits for uint64 IDs
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2018-10-11 09:54:18 -05:00
Leonardo Di Donato 92ac07ab02 wip(query): fixing platform.IDs 2018-10-11 09:54:18 -05:00
Leonardo Di Donato 19e88d6202 fix(execute_test): importing flux now not query 2018-10-11 09:54:18 -05:00
Leonardo Di Donato 8d7f06cf4b feat(platform/id): using uint64 for platform.IDs
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
Co-Authored-by: Lorenzo Fontana <lo@linux.com>
2018-10-11 09:54:18 -05:00
Jeff Wendling 6bd79ab2fe Remove unused grpc reader
The pb package was only referenced in cmd/influx/query.go, but in
dead code, since it uses the same machinery as the repl, which goes
through the HTTP endpoints, rather than the gRPC endpoints.
2018-10-10 14:06:27 -06:00
Adam 195eb04350
Chore/move from function to platform (#1013)
* moved execution code for from into query/functions/inputs

* rebase with master, disable buckets accessed test
2018-10-09 20:36:41 -04:00
Chris Goller 90494a5309 chore(fmt): fix and simplify go formatting 2018-10-08 17:23:54 -05:00
Brandon Farmer c1c4dc3393 Properly handle spaces in PATH with make tasks 2018-10-08 09:53:22 -07:00
Adam 58f4e9fc0b
Refactor Platform according to new organization in `flux` (#966)
We reorganized the functions in flux to have the structure:
/functions
/inputs
/transformations
/outputs
this PR catches up platform to work with the new package layout.

As a separate refactoring issue, we should discuss:

from(bucket: ) should migrate from flux --> platform
to_http and to_kafka should migrate from platform --> flux
2018-10-05 00:06:14 -04:00
Jonathan A. Sternberg 37ffbfc687
feat: add an influxql service that communicates with influxdb 1.x
It creates a simple client that follows the QueryService interface and
uses the `influxql.Compiler` type to determine where the query should be
routed to and to return the query as a `flux.ResultIterator`.

This will be useful for replaying transpiler queries against influxdb
1.x servers to verify correctness.
2018-10-03 11:17:29 -05:00
Michael Desa 1a0c29ad34 feat(platform): add authorizer interface
This iterface is supposed to be something that both sessions and
authorizations can share so that other components can authorize requests
as they see fit.
2018-10-02 14:11:44 -04:00
Chris Goller 1dd29d43f6
fix(query/docs): update Flux spec to flux repo 2018-10-01 09:38:33 -05:00
Jonathan A. Sternberg 2ee5308a27
fix: the master build no longer uses -i when building the influx binary
The `-i` flag causes a problem when a cross compilation happens because
it attempts to build files in GOROOT which is located in a directory
that is not writable by the build user. This same problem exists for
when the `-tags` are changed like adding `-tags assets` in the `all`
build that runs on the master branch.

This removes `-i` because, in the latest go release, the `-i` flag
doesn't actually do anything useful since there is another build cache
that the results are placed in regardless of whether `-i` is used.

This fixes the build on master so that `make all` and `make nightly`
will function properly.
2018-09-25 11:33:07 -05:00
Jonathan A. Sternberg 9cda24a69c
adding a test for the measurements and fixing the functionality 2018-09-25 10:25:58 -05:00
Jonathan A. Sternberg 129186efec
feat: implement basic show tag values in the transpiler 2018-09-24 15:02:05 -05:00
Jonathan A. Sternberg 46ed9bc4fb feat: switch to using go modules for building
This updates the dependency manager to use go modules instead of dep so
that we can remove dep as a dependency and we can begin using and giving
feedback on modules within this project. It should simplify dependency
management and make it faster to run the builds too.

The big change is updating the various Makefiles to stop relying on the
vendor directory because it no longer exists. This change creates a
`tools.go` file with the revisions of the tools we use that are currently
in the `required` section of `Gopkg.toml`. We are currently in other
discussions to modify how we handle tool dependency management, but this
change does not change that.
2018-09-20 08:33:15 -07:00
Jonathan A. Sternberg 0e0249ff2e
Merge pull request #839 from influxdata/js-show-tag-values-doc
docs(query/influxql): update the transpiler doc for show tag values
2018-09-17 13:45:48 -05:00
Jonathan A. Sternberg d5631c3366 docs(query/influxql): update the transpiler doc for show tag values 2018-09-14 16:59:38 -05:00
Jonathan A. Sternberg e884764664 fix(query/influxql): fix the formatting of the influxql readme
The previous format was easier to edit and I reorganized the headers.
2018-09-14 16:33:27 -05:00
Nathaniel Cook 71e13c8e8f chore: Remove redundant Flux tests 2018-09-14 15:32:15 -06:00
Nathaniel Cook d65a864ec5 fix: Update REPL to use HTTP API 2018-09-14 14:03:35 -06:00
Jonathan A. Sternberg dfc32d2635 feat(query/influxql): normalize the time for all aggregate queries
The transpiler will normalize the `_time` column by dropping any
existing time column and then duplicating `_start` when the query is an
aggregate type.

This works for the selectors because they did not normalize their
`_time` column at all and, while the aggregates did normalize their
`_time` column, we have made the decision to remove that functionality
and have aggregates not set a `_time` column at all.
2018-09-12 16:25:51 -05:00
Adam 4733ecd1f2
README + initial skeleton in place for SHOW TAG VALUES(#815)
* README + initial skeleton in place

* Fixes according to review
2018-09-12 14:54:13 -04:00
Nathaniel Cook 1786402d48 Merged pull request #822 from influxdata/nc-remove-platform
chore: Updates to be able to remove platform as a dependency of Flux
2018-09-12 10:31:25 -06:00
Nathaniel Cook 672e2d5fe7 chore: Updates to be able to remove platform as a dependency of Flux 2018-09-12 10:18:54 -06:00
Jonathan A. Sternberg 131767572e feat(query/influxql): update the spec for time normalization in selectors 2018-09-11 13:09:48 -05:00
Jonathan A. Sternberg a5641f6fd9 fix(query/influxql): join multiple aggregates with the new join function 2018-09-10 11:54:38 -05:00
Stuart Carnie 7a05dfb61e refactor: Update Makefiles 2018-09-06 13:56:59 -07:00
Stuart Carnie ac75af2f58 refactor: Migrate query package to influxdata/flux repository 2018-09-06 11:13:48 -07:00
Christopher M. Wolff 7e7c34f678
Create PreAuthorizer interface, BucketAwareOperationSpec interface (#664) 2018-09-05 12:06:26 -07:00
jlapacik 24f1be808d spec outlining packages, namespaces, and imports 2018-09-04 10:41:01 -07:00
jlapacik 2f1635a85d csv test for join 2018-09-04 10:04:01 -07:00
Nathaniel Cook 35002fa90f Merged pull request #738 from influxdata/nc-histogram
feat: Add histogram function for computing bucket based histograms
2018-09-04 09:51:32 -06:00
Jonathan A. Sternberg 1776778a06
Merge pull request #764 from influxdata/js-transpiler-pivot
docs: update the transpiler docs to use pivot
2018-09-04 09:44:06 -05:00
Christopher Wolff a58c9a63f8 Parse duration literals 2018-08-31 15:33:43 -06:00
Jonathan A. Sternberg a45bd08cf6 docs: update the transpiler docs to use pivot
Instead of generating multiple cursors, a pivot is used to join fields
within the same series.

This should be easier than generating a new cursor for everything.
2018-08-31 16:15:28 -05:00
Michael Desa 4eb2b72bf3 feat(query/influxql): implement query.ResultIterator for influxql.Response
WIP: saving state reword

feat(query/influxql): implement query.ResultIterator directly on response

review(influxql): add ResponseIterator that implement query.ResultIterator

review(influxql): update code is response to review
2018-08-31 13:38:25 -04:00
Nathaniel Cook 128b85ecd1 feat: Add histogram function for computing bucket based histograms 2018-08-31 09:43:45 -06:00
Nathaniel Cook 46a32e874c chore: Update 'from' to match spec
Removes the `db` parameter and used only bucket and bucketID.
2018-08-30 14:51:51 -06:00
Nathaniel Cook 745376a5fe Merged pull request #737 from influxdata/nc-group-missing
fix: Fix group by panic when missing a column
2018-08-30 14:38:01 -06:00
Adam 559ef60a78
feat(query): Created mapped/unmapped versions of append table and updated functions that use it (#751) 2018-08-30 15:01:27 -04:00
Adam 4bb5f5398a
feat(query/functions) Updated percentile to be more memory compact and managed by allocator (#739) 2018-08-30 13:35:04 -04:00
Adam cb3d099f6c
add query/functions/doc.go (#686)
* finished with first draft of doc.go.  Need to follow up on documenting related packages
2018-08-30 12:01:32 -04:00
Nathaniel Cook e57fab6a7b fix: Fix group by panic when missing a column 2018-08-29 15:53:47 -06:00
Jonathan A. Sternberg aa052e1a57 feat(query/plan): make it possible to configure the default memory limit for queries
The previous default was just to have no limit at all. This adds a
configuration option to the planner so a static value can be set for the
memory limit on each individual query.
2018-08-28 16:24:49 -05:00
Michael Desa 45233d939a feat(platform): add uniform query endpoint for sources
Using query request struct to query resources

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Use query.ProxyRequest instead query.Request

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Proxy request from idpd

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Comments about the desired results

Signed-off-by: Lorenzo Fontana <lo@linux.com>

V1 endpoints working with flux

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Influxql working for v1

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>

V2 influxql query endpoint working

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>
Signed-off-by: Lorenzo Fontana <lo@linux.com>

V2 Flux compiler support

Co-authored-by: Michael De Sa <mjdesa@gmail.com>
Signed-off-by: Lorenzo Fontana <lo@linux.com>

Improve comments in bolt sources and give error on self

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>

Review tests failing

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>

Avoid type casts for compiler types

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>

Using nil instead of dbrp mapping service for influxql v1

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Check if compiler types are valid for influxql

Signed-off-by: Lorenzo Fontana <lo@linux.com>

Organization as query param in the flux external handler

Signed-off-by: Lorenzo Fontana <lo@linux.com>

feat(http): update swagger documentation for flux query endpoint

feat(http): document query endpoint design

The code documented does not currently work. It is indended that this
will be implemented in follow up PRs.

feat(platform): move source to platform package

The source Query endpoint implements what's in the query swagger docs

Signed-off-by: Lorenzo Fontana <lo@linux.com>
Co-authored-by: Michael De Sa <mjdesa@gmail.com>

feat(platform): allow for encoding and decoding of csv dialects

feat(platform): specify dialect in flux page

Co-authored-by: Andrew Watkins <andrew.watkinz@gmail.com>
Co-authored-by: Michael Desa <mjdesa@gmail.com>
2018-08-28 15:53:20 -04:00
Jonathan A. Sternberg bb4fc188a2
Merge pull request #721 from influxdata/js-query-log-statistics
fix(query): report query statistics correctly
2018-08-28 12:55:22 -05:00
Jonathan A. Sternberg 1fe16a04de fix(query): report query statistics correctly
The query statistics would only be read after the cancel call so we need
to wait for that before attempting to read the statistics rather than
attempting to read them immediately after the result is returned (before
it is read).
2018-08-28 12:39:56 -05:00
Nathaniel Cook a9f10e11a5 fix: Fixes data race on object type 2018-08-28 10:39:56 -06:00
Nathaniel Cook 5b9b111166 Merged pull request #714 from influxdata/nc-fix-query-panic
fix: Fixes panic in query from sharing builtin decls
2018-08-28 09:09:34 -06:00
Adam 05a2feb1fc
Added default signature generators for Selector and Aggregate configs and update the functions that need them (#690)
* Added default signature generators for Selector and Aggregate configs and update the functions that need them

* fix to percentile to collect the correct arguments for both aggregate and selector
2018-08-27 17:20:18 -04:00
Nathaniel Cook 796fd7217e Merged pull request #685 from influxdata/nc-hist-quantile
feat: Add histogramQuantile function
2018-08-27 14:25:35 -06:00
Nathaniel Cook 937158f63a Merged pull request #715 from influxdata/nc-data-race
fix: Fixes #697 data race in execute test
2018-08-27 14:19:59 -06:00
Nathaniel Cook 575c8138cc fix: Fixes #697 data race in execute test 2018-08-27 13:57:51 -06:00
Nathaniel Cook c6567a9ed1 fix: Fixes panic in query from sharing builtin decls 2018-08-27 13:48:13 -06:00
Jonathan A. Sternberg 22673adee7 fix(query/influxql): disable the join behavior in the transpiler
The behavior needs to be updated so we are goinig to just disable it
temporarily so bad query specs are not generated.
2018-08-27 12:41:53 -05:00
Nathaniel Cook cf072cbd4d fix: Add end to end test for histogramQuantile 2018-08-27 10:15:59 -06:00
Nathaniel Cook a2e7ba3422 Merged pull request #701 from influxdata/nc-builtins
fix: Fix missing builtins in REPL
2018-08-27 09:52:31 -06:00
Nathaniel Cook 61bc6df75b fix: Fix missing builtins in REPL
The REPL's use of the interpreter was causing it to not get the builtins
defined in builtin scripts. For example the `top` function was missing.

This change fixes the issues by ensuring the builtins are only evaluated
once and that there is only one way to get the query Interpreter that is
guaranteed to have the proper builtins.
2018-08-27 09:46:13 -06:00
Adam Perlin 015afb74db
Materialize Empty Windows (#689)
Update window to materialize all windows within bounds
2018-08-24 17:13:31 -07:00
Stuart Carnie cc88c2f608 refactor(pb): Consolidate to use refactored storage APIs from influxdb
* updated influxdata/influxdb:platform vendor dependency
2018-08-24 12:26:45 -07:00
Adam Perlin 302aaee1f5
Bounds Refactor (#675)
* Refactor bounds in planner
2018-08-23 15:58:29 -07:00
Nathaniel Cook 6e9bfacb45 feat: Add histogramQuantile function 2018-08-23 12:46:39 -06:00
Adam Perlin 1051a8d697
Add query examples to flux SPEC (#641)
* Add additional example queries to SPEC.md
2018-08-22 18:39:19 -07:00
jlapacik 178f9d3678 update links to issues in spec 2018-08-22 10:04:21 -07:00
Nathaniel Cook 2c7f6137f1 Merged pull request #665 from influxdata/aa_argNames_fix
chore(query/functions): clean up parameters to be appropriately camel…
2018-08-22 09:53:41 -06:00
Nathaniel Cook 44c3b9b962 fix: Use metadata based gRPC tracing 2018-08-20 15:52:09 -06:00
Adam 3a60e42ce6 chore(query/functions): clean up parameters to be appropriately camel-cased and with completed function signatures 2018-08-20 13:40:49 -04:00
Adam 4b4539934b
feat(query/functions): add pivot() builtin procedure
pivot() implments the ability to flatten a table according to the values in given columns
2018-08-17 16:45:15 -04:00
Adam cc5a625950
spec(query/docs) Update spec and readme for the new Pivot function (#476) 2018-08-17 16:44:29 -04:00