grafana/pkg/services/pluginsintegration
ismail simsek c088d003f2
InfluxDB: Implement InfluxQL json streaming parser (#76934)
* Have the first iteration

* Prepare bench testing

* rename the test files

* Remove unnecessary test file

* Introduce influxqlStreamingParser feature flag

* Apply streaming parser feature flag

* Add new tests

* More tests

* return executedQueryString only in first frame

* add frame meta and config

* Update golden json files

* Support tags/labels

* more tests

* more tests

* Don't change original response_parser.go

* provide context

* create util package

* don't pass the row

* update converter with formatted frameName

* add executedQueryString info only to first frame

* update golden files

* rename

* update test file

* use pointer values

* update testdata

* update parsing

* update converter for null values

* prepare converter for table response

* clean up

* return timeField in fields

* handle no time column responses

* better nil field handling

* refactor the code

* add table tests

* fix config for table

* table response format

* fix value

* if there is no time column set name

* linting

* refactoring

* handle the status code

* add tracing

* Update pkg/tsdb/influxdb/influxql/converter/converter_test.go

Co-authored-by: İnanç Gümüş <m@inanc.io>

* fix import

* update test data

* sanity

* sanity

* linting

* simplicity

* return empty rsp

* rename to prevent confusion

* nullableJson field type for null values

* better handling null values

* remove duplicate test file

* fix healthcheck

* use util for pointer

* move bench test to root

* provide fake feature manager

* add more tests

* partial fix for null values in table response format

* handle partial null fields

* comments for easy testing

* move frameName allocation in readSeries

* one less append operation

* performance improvement by making string conversion once

pkg: github.com/grafana/grafana/pkg/tsdb/influxdb/influxql
             │ stream2.txt │            stream3.txt             │
             │   sec/op    │   sec/op     vs base               │
ParseJson-10   314.4m ± 1%   303.9m ± 1%  -3.34% (p=0.000 n=10)

             │ stream2.txt  │             stream3.txt              │
             │     B/op     │     B/op      vs base                │
ParseJson-10   425.2Mi ± 0%   382.7Mi ± 0%  -10.00% (p=0.000 n=10)

             │ stream2.txt │            stream3.txt             │
             │  allocs/op  │  allocs/op   vs base               │
ParseJson-10   7.224M ± 0%   6.689M ± 0%  -7.41% (p=0.000 n=10)

* add comment lines

---------

Co-authored-by: İnanç Gümüş <m@inanc.io>
2023-12-06 12:39:05 +01:00
..
adapters Replace signed in user for identity.requester (#74048) 2023-08-30 16:51:18 +02:00
angulardetectorsprovider FeatureToggles: Add context and and an explicit global check (#78081) 2023-11-14 12:50:27 -08:00
angularinspector FeatureToggles: Add context and and an explicit global check (#78081) 2023-11-14 12:50:27 -08:00
angularpatternsstore Plugins: Angular patterns: Use ETag for GCOM requests (#74453) 2023-09-12 18:03:57 +02:00
cachekvstore Plugins: Refactor kvstore usage in signing keys and angular patterns (#73154) 2023-09-05 16:20:42 +02:00
clientmiddleware Plugins: Only set non-existing headers for core plugin requests (#78633) 2023-11-30 11:51:40 +00:00
config Plugins: Pass OTEL sampling config to plugins (#76834) 2023-11-10 14:56:08 +01:00
dashboards Plugins: Move store and plugin dto to pluginsintegration (#74655) 2023-09-11 13:59:24 +02:00
keyretriever Plugins: Refactor kvstore usage in signing keys and angular patterns (#73154) 2023-09-05 16:20:42 +02:00
keystore Plugins: Refactor kvstore usage in signing keys and angular patterns (#73154) 2023-09-05 16:20:42 +02:00
licensing Plugins: Migrate licensing and access control to pkg/services/pluginsintegration package (#65258) 2023-03-27 11:15:37 +02:00
loader Plugins: Rename externalServiceAuthentication to iam (#78686) 2023-12-04 13:14:21 +01:00
pipeline Plugins: Rename externalServiceAuthentication to iam (#78686) 2023-12-04 13:14:21 +01:00
pluginaccesscontrol RBAC: Check plugins:install globally (#78438) 2023-11-21 15:09:43 +01:00
plugincontext Plugins: Fix plugin alias ID being used in PluginContext.ID (#77206) 2023-10-27 11:14:07 +03:00
pluginerrs Plugins: Add context to StaticRouteResolver and ErrorResolver interfaces (#73121) 2023-08-10 10:32:12 +02:00
pluginsettings Chore: use any rather than interface{} (#74066) 2023-08-30 18:46:47 +03:00
pluginstore Plugins: Allow disabling angular deprecation UI for specific plugins (#77026) 2023-11-10 11:44:54 +01:00
serviceregistration Plugins: Rename externalServiceAuthentication to iam (#78686) 2023-12-04 13:14:21 +01:00
doc.go Plugins: Refactor forward of cookies, OAuth token and header modifications by introducing client middlewares (#58132) 2022-12-01 19:08:36 +01:00
plugins_integration_test.go InfluxDB: Implement InfluxQL json streaming parser (#76934) 2023-12-06 12:39:05 +01:00
pluginsintegration.go FeatureToggles: Add context and and an explicit global check (#78081) 2023-11-14 12:50:27 -08:00
test_helper.go Bug: Fix loading behavior with FlagExternalCorePlugins (#78388) 2023-11-21 11:51:13 +01:00