Commit Graph
100 Commits
Author SHA1 Message Date
Kyle Brandt 13de1afcbe API: Change how Cache-Control and related headers are set (#62021)
- change Cache-Control from no-cache to no-store
- do not set (and remove if set) older Pragma/Expires
2023-01-25 09:09:27 -05:00
Kyle Brandt 5bb38293d2 SSE/Prom: Undo empty frame change that triggers 500s in SSE (#61871)
added in https://github.com/grafana/grafana/pull/61643
2023-01-20 17:32:14 +00:00
Kyle Brandt 55d2d872ec Chore: Missed deprecations due to overly broad lint exclusion (#59732) 2022-12-14 12:32:45 +01:00
Kyle Brandt 4e0f95dc31 Chore: Update SDK to v0.145.0 with TimeSeriesMulti Constant (#59729) 2022-12-05 12:48:10 -05:00
Kyle BrandtandMarcus Efraimsson 5623b5afaf SSE: Make sure to forward headers, user and cookies/OAuth token (#58897)
Fixes #58793 and Fixes https://github.com/grafana/azure-data-explorer-datasource/issues/513

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-11-28 07:40:06 -05:00
Kyle Brandt 1953d473c0 SSE: Keep value name from numeric table (#58831)
fixes #48868
2022-11-16 10:39:28 -05:00
Kyle Brandt f2066398f0 CodeOwners: (Chore) Add Server Side Expressions (SSE) (#58841)
CodeOwners: Add Server Side Expressions (SSE)
owned by observability-metrics
2022-11-16 10:38:53 -05:00
Kyle Brandt 6126f56ef0 Prometheus: Do not drop errors in streaming parser (#57698)
- Fixes #57692
- and also takes care of #42776 when using the streaming parser, not an ideal fix for #42776 but makes explore work better I think. https://github.com/grafana/grafana/issues/57365 might be a better longer term solution
2022-10-28 10:11:06 -04:00
Kyle Brandt 2cd9cbd359 Prometheus: Chore - Remove incorrect FrameType from exemplar frame (#57695) 2022-10-28 09:15:01 -04:00
Kyle BrandtandGarrett Guillotte dfdc9bcbc1 Docs: (Whats new 9.2) Prom Stream Parser (#57603)
* Docs: (Whats new 9.2) Prom Stream Parser

* Update docs/sources/whatsnew/whats-new-in-v9-2.md

Co-authored-by: Garrett Guillotte <100453168+gguillotte-grafana@users.noreply.github.com>

Co-authored-by: Garrett Guillotte <100453168+gguillotte-grafana@users.noreply.github.com>
2022-10-26 12:37:27 -04:00
Kyle Brandt 27288276a2 Prometheus: Restore FromAlert header (#55255)
This restores the FromAlert header to prometheus for Grafana managed alert Queries. 

It does this by reverting "Prometheus: Remove middleware for custom headers (#51518)" , but also changing it so it is only the FromAlert header.

This reverts commit 2372501368.
2022-09-22 11:03:13 -04:00
Kyle Brandt 643d2bc890 Chore: Sql store split for legacy alerting (#52901)
Moves ~20 sqlstore methods for legacy alerting out of sqlstore (sqlstore.Store interface) and into alerting.
2022-08-03 11:17:26 -04:00
Kyle Brandt 05fd7eb047 SSE: Add noData type (#51973)
When there is a single frame with no fields (e.g. splunk datasource) SSE errors when trying to figure out the data type. This frame needs to exist since this is where the executedQueryString metadata exists.

This adds a new return type to SSE to represent no data, so the original frame with its metadata can still be maintained.
2022-07-14 09:18:12 -04:00
Kyle BrandtandYuriy Tseretyan 01ef899753 SSE/Alerting: Support prom instant vector responses (#44865)
* SSE/Alerting: (Draft) Support prom instant vector responses
fixes #35663
* reduce\classic expressions to handle mathexp.Number
* use Notice for warning

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-23 10:08:14 -04:00
Kyle Brandt cab509fbe8 SSE: Keep FieldConfig for data source queries (#46328)
for #46325
2022-03-10 10:03:26 -05:00
Kyle Brandt 994a22f4c2 Chore: Remove deprecated no-op option PreferServerCipherSuites (#46174)
* Chore: Remove deprecated no-op option PreferServerCipherSuites
from the tls configs.
Per golang docs: "PreferServerCipherSuites is a legacy field and has no effect."
2022-03-03 11:48:26 -05:00
Kyle BrandtandSantiago a578cf0f7c SSE: Fix NoData when some series were no data but others not (#45867)
Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2022-02-24 21:01:04 -03:00
040ce40113 SSE: Mode to drop NaN/Inf/Null in Reduction operations (#43583)
Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
2022-02-02 14:50:44 +01:00
Kyle Brandt 74193b3c1b SSE: Remove beta tooltip (#43912) 2022-01-20 08:52:36 -05:00
Kyle Brandt f17fb76b5e SSE: Add is_nan() and other like functions and allow '_' in func names (#43555)
* SSE: Add is_nan() and allow '_' in func names

is_null() infn(), is_inf(), is_number()
2021-12-29 11:40:52 -05:00
Kyle Brandt e1be23ac1e Chore: update image-spec indirect dependency (#43155)
for GHSA-77vh-xpmg-72qh
2021-12-20 13:24:46 +01:00
Kyle Brandt 4c59cc4bf4 Chore: Update indirect dependency containerd (#43151)
for GHSA-5j5w-g665-5m35 and GHSA-c2h3-6mxw-7mvq
2021-12-17 17:01:45 +01:00
Kyle Brandt c50f0d1dd1 Chore: update uap-go (#43285)
for CVE-2021-21317
2021-12-17 10:43:43 -05:00
Kyle Brandt 8598362929 Update latest.json to 8.3.3 (#43108) 2021-12-14 16:48:15 +01:00
Kyle Brandt 2e3fd9d659 Bra: Run wire re-gen on code change (attempt #2) (#42582) 2021-12-01 09:26:45 -05:00
Kyle Brandt fb14769383 Macaron: Continue on invalid slice type to avoid panic (#39004)
Makes the panic go away.
Otherwise I get a reflect: call of reflect.Value.Interface on zero Value
2021-09-09 10:32:18 -04:00
Kyle Brandt f524cdb5ee devenv: update prom random_data for go1.17 (use go install) (#38763)
* devenv: update prom random_data for go1.17 (use go install)
* restore env vars and tags to install cmd
2021-09-02 10:32:09 +02:00
Kyle Brandtandachatterjee-grafana 79e79fe244 Alerting/Docs: Clarify NoData option (#38451)
* Alerting/Docs: Clarify NoData option
for #37665

* Update docs/sources/alerting/unified-alerting/alerting-rules/create-grafana-managed-rule.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-30 09:13:04 -04:00
Kyle Brandt d43d9207ee Alerting/Docs: $labels and $values not available with classic condition (#38011)
fixes #37836
2021-08-19 09:02:41 -04:00
Kyle BrandtandRyan McKinley aef67994a1 Annotations: Fix alerting annotation coloring (#37412)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-08-12 09:37:54 -07:00
Kyle Brandt aa904a5a04 NGAlert: Send resolve signal to alertmanager on alerting -> Normal (#37363) 2021-07-29 20:29:17 +02:00
Kyle Brandt b6a7156300 Alerting: Handle marshaling Inf values (#36947)
* SSE: change EvalMatch json value encoding to string
* update MarshalJSON on null.Float to handle inf as null
fixes #36424
2021-07-21 10:04:40 -04:00
Kyle Brandt 3ab9249f16 SQL Datasources: Allow multiple string/labels columns with time series (#36485)
for #36370
2021-07-20 12:42:54 -04:00
Kyle Brandt 19f764739b Alerting: Change __value__ label to __value_string__ annotation and add ValueString variable in notifications (#36032)
* Alerting: Allow __value__ label in notifications
was being removed by removePrivateItems
discoverd in #36020, but issue is not about that specifically

* __value__ label to __value_string__ annotation
and .ValueString extended property for notifications
2021-06-24 12:45:49 +05:30
Kyle Brandtandachatterjee-grafana fe61d20794 Docs/SSE: Misc updates and corrections (#35882)
* Docs/SSE: Misc updates and coorections

* Update docs/sources/panels/expressions.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-17 16:41:41 +02:00
Kyle Brandt 8a3d7b6446 Alerting: Increase alertmanager_conf column size if mysql (#35657)
fixes #35583
2021-06-14 11:02:35 -04:00
Kyle Brandt f4e9dcd40b Alerting/SSE: Fix "count_non_null" reducer validation (#35451)
fixes error "reducer 'count_non_null' in condition 2 is not a valid reducer"
2021-06-09 14:42:48 -04:00
406f0458b2 Alerting/Docs: Non-timeseries / numeric alerting (#35190)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-03 18:15:24 +02:00
Kyle BrandtandArve Knudsen 4093fae99a SSE: Refactor to simplify Series type (#35063)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-06-02 12:29:19 -04:00
c4b4171d85 Alerting/Docs: Silence documentation (#35052)
Co-authored-by: David Parrott <stomp.box.yo@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-02 08:26:58 -04:00
Kyle Brandt b47e7d12e6 Alerting: Extract values from MD expr alerts (#34757)
When using mulit-dimensional Grafana managed alerts (e.g. SSE math) extract refIds values and labels so they can be shown in the notification and dashboards.
2021-05-28 11:04:20 -04:00
Kyle Brandt 9016d20c4c SSE/Chore: cleanup some error messages (#34738)
removes "rpc error: code = InvalidArgument desc =" like strings from error messages.

This came from old grpc stuff left from when SSE was a plugin (that probably should
not have been used even when it was a plugin)
2021-05-26 15:15:21 +02:00
Kyle Brandt e291203528 Alerting: a usage stat for ualerting (#34390)
collects `stats.alert_rules.count` , where alert_rules is the nextgen system
2021-05-19 10:31:25 -04:00
Kyle Brandt b987237c9b Alerting: Remove UALERT_MIG env guard from dashboard rule migration (#34384)
Rules/notifications/etc migration will now be activated with feature flag alone.
When the feature flag is enabled dashboard alerts are migrated into the system.
When the feature flag is removed, all migrated and newly created alerts in the new system are deleted.
2021-05-19 09:37:56 -04:00
Kyle Brandt 63b2dd06a5 Alerting: Set "value" with evalmatches in G Managed (#34075)
When, and currently only when using a classic condition, evaluation information is added (which is like the EvalMatches from dashboard alerting).

This is returned via the API and can be included in notifications by reading the `__value__` label attached `.Alerts` in the template. It is a string.
2021-05-18 09:12:39 -04:00
Kyle Brandt 331991ca10 UAlerting: Increase default max datapoints (#34223)
Change const value from 100 to 43200 (12 hours at 1sec interval)
2021-05-17 18:46:52 +02:00
Kyle Brandt babb17afd6 Alerting/Chore: Move tests from tests package (#34059)
Instead put in package folder but with package name suffixed with _test
This enables code coverage within the pkg while still allow the tests to operate from external to package perspective (only exported things).
2021-05-13 10:05:33 -04:00
Kyle Brandt 3da8db7f3f Alerting: Run table migrations regardless of feature flag and move out of service (#33996) 2021-05-12 14:39:48 -04:00
Kyle Brandt a735c51202 Alerting/Chore: Backend remove def_ columns from instance (#33875)
rename def_uid and def_org_id to rule_uid and rule_org_id on the alert_instance table and drops the definition table.
2021-05-12 07:17:43 -04:00
Kyle BrandtandSofia Papagiannaki dc3e17ba5b Alerting: Change rule migration to be based on feature flag (#33792)
makes it so the feature flag can be turned on off, and the migration will be cleared and rerun. All existing NG alert rules, configuration settings, etc are removed when disabling the feature flag.
for https://github.com/grafana/alerting-squad/issues/142

Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
2021-05-11 08:08:39 -04:00
Kyle Brandt 8feeaab996 Alerting: Disable dash alerting if NG enabled (#33794) 2021-05-10 10:46:01 -04:00
Kyle Brandt fae093bbe2 Alerting: Fix state cache getOrCreate panic (#33777) 2021-05-06 14:35:52 +02:00
Kyle Brandt 48358efc13 Alerting: remove State cache entries on Ruler Delete (#33638)
for https://github.com/grafana/alerting-squad/issues/133
2021-05-03 14:01:33 -04:00
Kyle Brandt d6cff74d5a Chore: Fix alerting migration code owners typo (#33644) 2021-05-03 12:17:38 -04:00
Kyle Brandt 57d46ea991 AlertingMigration: Separate info into multiple annos (#33641) 2021-05-03 11:42:31 -04:00
Kyle Brandt c1034f3118 Alerting: Create instanceStore (#33587)
for https://github.com/grafana/alerting-squad/issues/129
2021-05-03 07:19:15 -04:00
Kyle Brandt c2a5da79e3 Alerting: Avoid panic by not loading instances without a rule (#33597) 2021-05-01 19:01:28 +02:00
Kyle Brandt 759a0cd71b Build: Fix with cleanup call maybe? (#33590) 2021-04-30 13:02:37 -07:00
Kyle Brandt efe856ae4e AlertingMigration: Create alert_rule_version entry (#33585)
Create the alert rule version entry during the migration so it is consistent with rules created via api.
for https://github.com/grafana/alerting-squad/issues/123
2021-04-30 15:08:01 -04:00
Kyle Brandt 7823842c5d Alerting: Load annotations from rule into State cache (#33542)
for https://github.com/grafana/alerting-squad/issues/127
2021-04-30 20:23:12 +02:00
Kyle Brandt c25eab4eda AlertMigration: remove alert_rule UID db check (#33568)
do not believe this is needed due to uniqueness promised by shortid lib
since there is no provisioning yet. https://github.com/teris-io/shortid
2021-04-30 13:35:26 -04:00
Kyle Brandt b8f01fe034 Alerting: backend "ng" code cleanup (#33578) 2021-04-30 13:21:57 -04:00
Kyle Brandt 231a8ef0cf CodeOwners: Set owners of unified alerting migration (#33571) 2021-04-30 16:28:36 +02:00
Kyle Brandt 713260f6fa Alerting: Remove datasource (name) from migration (#33544)
no longer needed as of https://github.com/grafana/grafana/pull/33416
for https://github.com/grafana/alerting-squad/issues/126
2021-04-30 07:47:01 -04:00
Kyle BrandtandSofia Papagiannaki 6c8ef2a9c2 Alerting: Alert Rule migration (#33000)
* Not complete, put migration behind env flag for now:
UALERT_MIG=iDidBackup
* Important to backup, and not expect the same DB to keep working until the env trigger is removed.
* Alerting: Migrate dashboard alert permissions
* Do not use imported models
* Change folder titles

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2021-04-29 13:24:37 -04:00
Kyle Brandt d32fcbe2bc Alerting: Eval pkg tests and more specific error handling (#33496)
* comment updates
* more friendly error messages, in particular if it looks like time series data
2021-04-29 07:27:32 -04:00
Kyle Brandt 914443c816 Alerting: Fix state cache id duplication (#33480) 2021-04-28 11:42:19 -04:00
Kyle BrandtandRyan McKinley 968935b8b7 TestData: Change predictable csv scenario to multi-series (#33442)
Allow multiple series in Predictable CSV Wave testdata scenario

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-04-27 16:35:43 -04:00
Kyle Brandt b590e95682 AlertingAPI: Change list response query prop (#33419)
* Alerting: change to full []AlertQuery as json in a string and not just model.
2021-04-27 22:15:00 +02:00
Kyle BrandtandSofia Papagiannaki adcba36d39 AlertingAPI: update swagger json files match datasourceUid change (#33332)
* update swagger json files match datasourceUid change
underlying change made in https://github.com/grafana/grafana/pull/33282
* Document DatasourceUID field in AlertQuery model
* Run spec generation from inside a docker container
* Generate latest spec

Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
2021-04-27 16:50:30 +02:00
Kyle Brandt f5efe97763 SSE: limit allowed input/output to/from classic conditions (#33337)
* add tests for graph and specific cases in this pr
2021-04-27 07:22:11 -04:00
Kyle Brandt 5e818146de Alerting/Expr: New SSE Request/QueryType, alerting move data source UID (#33282) 2021-04-23 16:52:32 +02:00
Kyle Brandtandgotjosh 2c862678ab AlertingNG/SSE: Datasource UID and UID/ID only (drop name) (#33039)
SSE still will support ID until dashboard/frontend always requests UID
update *.http examples

Co-authored-by: gotjosh <josue@grafana.com>
2021-04-16 15:29:19 +02:00
Kyle Brandt 2d7e980da7 testData: (backend) restore null/nan in predicatable scenarios (#32855) 2021-04-09 14:23:51 -04:00
Kyle BrandtandSofia Papagiannaki 80dfa83380 AlertingNG: Add For+Annotations to Grafana_Alert (#32793)
* add db columns
* Fix deserialisation issue of AlertRule For field (#32848)
* Update to latest alerting-api

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2021-04-09 16:50:04 +02:00
Kyle Brandt 6395c649c8 SSE: fix casing on classic conditions model. (#32754) 2021-04-07 16:12:22 +02:00
Kyle Brandt d519913843 AlertingNG: Temp endpoint to translate dashboard alert into rule group (#32694)
* Set NoData and ExecErr states
* make save an option
* TODOs
* adjust interval
* FOR and alertRuleTags not done yet
2021-04-07 14:28:06 +02:00
Kyle Brandt 948da25c13 ngalerting: represent nil/empty labels the same (#32652)
was getting duplicates of [] and null before
2021-04-02 13:49:45 -04:00
Kyle Brandt 7fcb6ecb91 Alerting: Fix persistance migration (#32650) 2021-04-02 18:31:03 +02:00
Kyle Brandt 698a1ee003 SSE/docs: Add note on not working with dash vars (#32646)
server side expressions "Expressions" unfortunately do not work with dashboard variables (in the same way alerting does not). 

The execution path is always through the backend/server of data sources, which currently don't support expanding dashboard variables.
2021-04-02 11:09:14 -04:00
Kyle Brandt 6ad02315eb ngalert: json dataframe on temp endpoints (#32641) 2021-04-02 15:52:38 +02:00
Kyle Brandt 0ec8879436 SSE/Alerting: Fix classic condition logic and some more tests (#32615) 2021-04-02 08:46:32 -04:00
Kyle Brandt 512faa7c9c SSE: Support time series frames with non-nullable float64 values (#32608)
* SSE: fix reduce to handle non-null
* add type for data.Field that is float64 or *float64
* resample fix for non-null input case, add couple non-null tests
2021-04-01 14:33:35 -04:00
Kyle Brandt 66548878fe ngalert: add addition temp translation endpoint (#32287)
spits out new sse condition/data json from old alert id to help with generating UI models
also moves this api code into another file
2021-03-24 17:12:34 +01:00
Kyle Brandt 05fa9d6ad9 AlertingNG: rename Condition properties to match front end (#32267) 2021-03-24 08:07:29 -04:00
Kyle Brandt 1cd8981be4 SSE/NG: Add expression metadata for EvalMatch (#32213)
- Add the ability to stick metadata attached to a value in expressions. Currently uses Frame.Meta.Custom.
- None of this is consumed by anything yet, so an incremental step.
2021-03-23 12:23:54 -04:00
Kyle Brandt 7bb79158ed SSE/Alerting: First pass at query/condition translation (#31693)
- Takes the conditions property from the settings column of an alert from alerts table and turns into an ng alerting condition with the queries and classic condition.
- Has temp API rest endpoint that will take the dashboard conditions json, translate it to SEE queries + classic condition, and execute it (only enabled in dev mode).
- Changes expressions to catch query responses with a non-nil error property
- Adds two new states for an NG instance result (NoData, Error) and updates evaluation to match those states
- Changes the AsDataFrame (for frontend) from Bool to string to represent additional states
- Fix bug in condition model to accept first Operator as empty string.
- In ngalert, adds GetQueryDataRequest, which was part of execute and is still called from there. But this allows me to get the Expression request from a condition to make the "pipeline" can be built.
- Update AsDataFrame for evalresult to be row based so it displays a little better for now
2021-03-23 12:11:15 -04:00
Kyle Brandt 026bf1f9ca SSE/InfluxDB: Change InfluxQL to work with server side expressions (#31691)
* SSE/InfluxDB: Change InfluxQL to work with server side expressions
updates the request to handle EpochMS as the time range (which is what expressions sends)
and the response to use millisecond timestamps instead of seconds.
fixes #31604
similar to https://github.com/grafana/grafana/pull/31455
2021-03-18 08:02:37 -04:00
Kyle Brandt a488ab8393 SSE: Add "Classic Condition" on backend (#31511)
This is a translation of services/alerting/conditions. Main Changes:

- Work with types in SSE (series/number) which are data frames (no more null.Float).
- The query part from alerting/conditions is handled by SSE logic
- Convey / simplejson removed.
- Time range no longer part of "query" in the condition
2021-03-02 13:51:33 -05:00
Kyle Brandt c9dbf5a0d0 Graphite/SSE: update graphite to work with server side expressions (#31455)
Changes the time value of the response to be milliseconds, which I think is like the other data sources I have seen.

Also if it sees the timerange values as numbers, assumes they are unixMS (and come from expressions, or our new backend.TimeRange type). When this timerange is used, the request is sent to graphite with from and until as epoch timestamps
2021-02-24 13:16:26 -05:00
Kyle Brandt 1588d7235c Docs: include Makefile option for local assets (#30455)
for use when also having the website repo checked out, and you want local images.
Also make vars for some of the repeated items.
2021-01-21 07:27:54 -05:00
7c35df1f7e docs: 7.4 what's new (Add expressions note) (#30446)
Also add a note that expression do not work with current alerting.

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-01-20 15:45:57 -05:00
d4edcd1838 Expressions: Remove feature toggle (#30316)
* Expressions: remove feature toggle, add experimental badge
* Make button only show for backend and mixed data sources

Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-01-19 14:18:06 -05:00
Kyle Brandt 21ae4802ce Backend: use sdk version (v0.81.0) without transform (gel) code (#29236) 2021-01-14 10:11:54 -05:00
Kyle Brandt 1c1a800bc0 API: Add by UID routes for data sources (#29884)
- also add Get by UID+OrgID to datasource cache
- Refactor backend commands for Delete and Get to be unified
2021-01-13 13:16:27 -05:00
Kyle Brandt c6b11a8f90 Expressions: support ${my var} syntax (#29819) 2020-12-14 14:21:16 -05:00
Kyle Brandt 67372378ac Expressions: Field names from refId (#29755)
so one can see which expression data came from when visualizing
2020-12-11 06:59:12 -05:00
Kyle Brandt 46d1c99e2c Expr: fix time unit typo in ds queries (#29668) 2020-12-07 16:14:22 -05:00
Kyle Brandt 311b563c9b Expr: make reduction nan/null more consistent (#29665) 2020-12-07 15:07:18 -05:00
Kyle Brandt da32cef4ae Expr: fix func argument panic (#29663)
would get wrong type for reflect
2020-12-07 13:58:20 -05:00