Commit Graph

4755 Commits

Author SHA1 Message Date
Andrej Ocenas
81ec76bdef
Explore: Add throttling when doing live queries (#19085) 2019-09-13 10:58:29 +02:00
Torkel Ödegaard
b6c501bc8a
QueryProcessing: Added missing error event for angular editors (#19059)
* QueryProcessing: Added missing error event for angular editors

* fix if else
2019-09-13 10:09:25 +02:00
Hugo Häggmark
076a8fc85c
Explore: Fixes issue with lastResult being null (#19081) 2019-09-13 08:13:01 +02:00
Ryan McKinley
5b9901ebba GraphPanel: don't listen to legacy onDataReceived events (#19054)
* don't listen to legacy data events in graph

* fix test

* rename function

* add annotationsSrv stub

* use const

* fix preProcessPanelData

* update test
2019-09-13 06:40:10 +02:00
Torkel Ödegaard
55717769a3
QueryProcessing: Fixes showing last result in initial loading state (#19057)
* PanelQueryRunner: Need to cache preProcessPanelData function between runs so last result can be remembered

* Better fix for remembering lastResult

* Code simplification

* Simplify code a bit
2019-09-12 21:42:50 +02:00
548017
09b434bdd0 Auth: Allow inviting existing users when login form is disabled (#19048)
Allow api to accept inviting existing users when login form is disabled.
UI shows invite button when login form is disabled.
2019-09-12 18:45:50 +02:00
Torkel Ödegaard
140ecbcf79
QueryProcessing: Observable query interface and RxJS for query & stream processing (#18899)
* I needed to learn some rxjs and understand this more, so just playing around

* Updated

* Removed all the complete calls

* Refactoring

* StreamHandler -> observable start

* progress

* simple singal works

* Handle update time range

* added error handling

* wrap old function

* minor changes

* handle data format in the subscribe function

* Use replay subject to return last value to subscribers

* Set loading state after no response in 50ms

* added missing file

* updated comment

* Added cancelation of network requests

* runRequest: Added unit test scenario framework

* Progress on tests

* minor refactor of unit tests

* updated test

* removed some old code

* Shared queries work again, and also became so much simplier

* unified query and observe methods

* implict any fix

* Fixed closed subject issue

* removed comment

* Use last returned data for loading state

* WIP: Explore to runRequest makover step1

* Minor progress

* Minor progress on explore and runRequest

* minor progress

* Things are starting to work in explore

* Updated prometheus to use new observable query response, greatly simplified code

* Revert refId change

* Found better solution for key/refId/requestId problem

* use observable with loki

* tests compile

* fix loki query prep

* Explore: correct first response handling

* Refactorings

* Refactoring

* Explore: Fixes LoadingState and GraphResults between runs (#18986)

* Refactor: Adds state to DataQueryResponse

* Fix: Fixes so we do not empty results before new data arrives
Fixes: #17409

* Transformations work

* observable test data

* remove single() from loki promise

* Fixed comment

* Explore: Fixes failing Loki and Prometheus unit tests (#18995)

* Tests: Makes datasource tests work again

* Fix: Fixes loki datasource so highligthing works

* Chore: Runs Prettier

* Fixed query runner tests

* Delay loading state indication to 200ms

* Fixed test

* fixed unit tests

* Clear cached calcs

* Fixed bug getProcesedDataFrames

* Fix the correct test is a better idea

* Fix: Fixes so queries in Explore are only run if Graph/Table is shown (#19000)

* Fix: Fixes so queries in Explore are only run if Graph/Table is shown
Fixes: #18618

* Refactor: Removes unnecessary condition

* PanelData: provide legacy data only when needed  (#19018)

* no legacy

* invert logic... now compiles

* merge getQueryResponseData and getDataRaw

* update comment about query editor

* use single getData() function

* only send legacy when it is used in explore

* pre process rather than post process

* pre process rather than post process

* Minor refactoring

* Add missing tags to test datasource response

* MixedDatasource: Adds query observable pattern to MixedDatasource (#19037)

* start mixed datasource

* Refactor: Refactors into observable parttern

* Tests: Fixes tests

* Tests: Removes console.log

* Refactor: Adds unique requestId
2019-09-12 17:28:46 +02:00
Jess
3742db720f Fix exit live mode icon: change back to Stop. (#19043) 2019-09-12 16:01:21 +02:00
Torkel Ödegaard
f2ca3abf07
AlphaNotice: replaced big popover tooltip with native tooltip (#18997) 2019-09-11 09:02:17 +02:00
Ryan McKinley
7b856ae040 QueryOptions: update maxDataPoints text and show any value that is configured (#18761)
* update maxDataPoints UI

* use maxDataPoints to calculate interval

* don't change interval calculation
2019-09-11 07:45:08 +02:00
Ryan McKinley
7520ebadac
Refactor: move ScopedVars to grafana/data (#18992) 2019-09-10 12:06:01 -07:00
Ivana Huckova
2c5d1745ca
Explore: Unify background color for fresh logs (#18973) 2019-09-10 11:30:25 +02:00
Andrej Ocenas
0e3e874eee
Annotations: Add annotations support to Loki (#18949) 2019-09-10 11:04:44 +02:00
Ivana Huckova
14a740572d
Explore: UX/UI improvements for pausing and resuming of live tailing (#18931) 2019-09-09 19:09:06 +02:00
Andrej Ocenas
8c79085351
Annotations: Fix query editor rendering on datasource change (#18945) 2019-09-09 17:10:26 +02:00
lzd
c9c0dd1ea8 Alerting: fix response popover prompt when add notification channels (#18967) 2019-09-09 14:09:21 +02:00
Ryan McKinley
7d32caeac2 Transformers: configure result transformations after query(alpha) (#18740) 2019-09-09 08:58:57 +02:00
kay delaney
545be60138
Dashboard: Fixes dashboard overwriting behavior (#18944)
Fixes #18941
2019-09-06 12:48:54 +01:00
Ivana Huckova
803699ea88
Grafana: Create new playlist/dashboard/channel card is not visible when there are no items in the list (#18890) 2019-09-06 10:34:10 +02:00
kay delaney
a838d2b30a
Explore: Adds ability to save a panel's query from Explore (#17982)
* Explore: Adds ability to return to origin dashboard
2019-09-05 13:44:37 +01:00
Ryan McKinley
991f77cee1 Loki: support loki with streaming in dashboards (#18709)
Move some of the buffering with live streaming inside of the datasource, sending full frames instead of deltas and allow Loki in dashboards.
2019-09-05 14:04:01 +02:00
Shavonn Brown
e80e3608ad UserProfile: convert user organizations section to react (#18707)
* convert user organizations section to react

* reload page on org change
2019-09-05 12:47:20 +02:00
Shavonn Brown
849d4881cd Annotations: Check that timeEnd if defined before comparing to avoid false truthiness (#18903)
* Check that timeEnd if defined before comparing to avoid false truthiness

* Moved loop

Fixes #18902
2019-09-05 08:14:06 +02:00
lzd
3410fb44e9 Annotations: check if the name exists before creating a new annotation (#18880) 2019-09-04 14:00:37 +02:00
Torkel Ödegaard
490a1d6fc9
ErrorHandling: Error boundary for every container (#18845)
* ErrorHandling: Error boundary for every container

* Remvoe custom query editor errors
2019-09-04 13:59:30 +02:00
Andrej Ocenas
aab224ef29
Explore: elastic small fixes (#18879)
- Fix cancellation error showing in UI
- Fix display of object values in log rows
2019-09-04 10:49:09 +02:00
Andrej Ocenas
e0e3a4db54
Explore: Add typings for queryTransaction.request (#18847) 2019-09-03 22:04:33 +02:00
Torkel Ödegaard
09032cd766 PanelQueryState: restore comment 2019-09-03 18:20:58 +02:00
Torkel Ödegaard
b39268f195 Explore: ResultProcessor refactor isTimeSeries check 2019-09-03 17:31:23 +02:00
Torkel Ödegaard
aafae4c523
Explore: Use DataFrame to derive graph/table/logs (#18859)
* WIP: Use data frames in explore

* Explore: everything seems to be working again

* Reworked ResultProcessor tests

* Fixed unit test

* Add some typings and comments
2019-09-03 17:24:22 +02:00
Torkel Ödegaard
289a33bf5b Updated is time series test 2019-09-03 15:57:00 +02:00
Torkel Ödegaard
7cec383470 Fixed unit test 2019-09-03 15:24:55 +02:00
Torkel Ödegaard
443e8d8daa Reworked ResultProcessor tests 2019-09-03 14:31:34 +02:00
Torkel Ödegaard
8003041321 Explore: everything seems to be working again 2019-09-03 12:36:21 +02:00
Torkel Ödegaard
8272dc87ab WIP: Use data frames in explore 2019-09-03 12:09:52 +02:00
Andrej Ocenas
e3181e66b4
Explore: Allow pausing and resuming of live tailing (#18836)
Adding pause/resume buttons and pause on scroll to prevent new rows messing with the scroll position.
2019-09-03 11:23:39 +02:00
kay delaney
7985aa1e57
Performance/Webpack: Introduces more aggressive code-splitting and other perf improvements (#18544)
* Performance/Webpack: Introduces more aggressive code-splitting and other perf improvements
- Introduces dynamic imports for built-in plugins
- Uses dynamic imports for various packages (rst2html, brace)
- Introduces route-based dynamic imports
- Splits angular and moment into separate bundles
2019-09-03 09:29:02 +01:00
Hugo Häggmark
409874b35d Explore: Introduces PanelData to ExploreItemState (#18804)
* WIP: inital POC

* Wip: Moving forward

* Wip

* Refactor: Makes loading indicator work for Prometheus

* Refactor: Reverts prom observable queries because they did not work for multiple targets

* Refactor: Transforms all epics into thunks

* Fix: Fixes scanning

* Fix: Fixes so that Instant and TimeSeries Prom query loads in parallel

* Fix: Fixes negation logic error

* Wip: Introduces PanelData as a carries for query responses

* Refactor: Makes errors work again

* Refactor: Simplifies code somewhat and removes comments

* Tests: Fixes broken tests

* Fix query latency

* Remove unused code
2019-09-03 09:55:20 +02:00
Torkel Ödegaard
adbefcc37d
DataSourceSettings: Fixed issue changing data source name, fixes #18660 (#18826) 2019-09-02 20:45:42 +02:00
Torkel Ödegaard
fe658d7ac2
Prometheus: Fixed Prometheus query editor error (plus new ErrorBoundaryAlert component) (#18838)
* ErrorHandling: Fixed Prometheus query editor error and added error boundary

* Update public/app/core/components/ErrorBoundary/ErrorBoundary.tsx

Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Fixed ts error
2019-09-02 20:45:18 +02:00
Ivana Huckova
2672b92206
Open new window when exploring panel metrics (#18802) 2019-09-02 12:47:33 +02:00
Ryan McKinley
c777301535 DataFrame: split DataFrameHelper into MutableDataFrame and FieldCache (#18795)
* add appending utility

* add appending utility

* update comment

* rename to mutable

* move mutable functions out of DataFrameHelper

* move mutable functions out of DataFrameHelper

* move mutable functions out of DataFrameHelper

* turn DataFrameHelper into FieldCache

* guess time from name

* graph the numbers

* return the timeField, not just the index

* just warn on duplicate field names

* only use a parser if the input is a string

* append init all fields to the same length

* typo

* only parse string if value is a string

* DataFrame: test fixes

* Switch to null for missing values

* Fixed tests
2019-09-01 14:44:22 +02:00
kay delaney
d6fb48c0ff Editor: Fixes issue where only entire lines were being copied (#18806)
* Editor: Fixes issue where only entire lines were being copied
Closes #18768

* Simplifies onCopy handler and factors out logic for easier testing
Also adds tests to verify behaviour
2019-08-30 17:09:00 +02:00
Torkel Ödegaard
a147aedb10
Explore: Fixed query status issue (#18791)
* Explore: Fixed query status issue, fixes #18778

* Added test for QueryStatus
2019-08-30 15:30:24 +02:00
Torkel Ödegaard
65a6eda93b
DashboardMigrator: Fixed issue migrating incomplete panel link models (#18786) 2019-08-30 15:23:38 +02:00
Torkel Ödegaard
8e9cb5c81a
Explore: Fixes query hint issues (#18803)
* Explore: clear results when you change datasource

* Explore: Clear results on data source change, and fix query hints issue

* Clear results on clear all

* Prometheus: Update logic of when to re-check query hints
2019-08-30 15:22:36 +02:00
Dominik Prokop
e4a0b2240d
Panels: Destroy panel model when recreating repeated panels (#18799)
Fixes #18533

To recreate the bug described in the original issue in the simplest possible way:

1. Setup dashboard with a single panel and repeat it using variables
2. Set the dashboard refresh to 5s
3. Hover over repeated panel during the refresh

What happened there?
When panels are repeated every time the dashboard is refreshed or variables change the repeated PanelModels are recreated. In https://github.com/grafana/grafana/blob/master/public/app/features/dashboard/state/DashboardModel.ts#L322 the models are removed from dashboard panel's model property what makes the dashboard re-render with source panel only, and then back again with the repeated panels when models are re-created. This means creating new DashboardPanel components. But when the repeated PanelModels are removed, they are not destroyed what results in a behaviour described in #18533.

This is a quick fix for this issue. Ideally I think we should use some cache and update the repeated PanelModels when the refresh or variables change trigger re-render, instead of re-creating those every time. I don't want to do this ATM as the logic around repeating panels is quite complex and require some <3.
2019-08-30 08:42:21 +02:00
Torkel Ödegaard
d9a3601094
Singlestat: Various fixes to singlestat and DataFrame (#18783)
* Singlestat: Various fixes to singlestat and DataFrame

* removed comment
2019-08-29 19:04:33 +02:00
Torkel Ödegaard
e6e8611d52
Explore: Fixed issue in PanelQuery state arround cancellation (#18771)
* Explore: Fixed issue in PanelQuery state arround cancellation

* Added unit test

* Fixed typescript issues in test
2019-08-29 16:25:10 +02:00
kay delaney
22c9575a33
Going to Explore from a panel with mixed data sources now works (#18784)
Closes #18597
2019-08-29 14:27:27 +01:00
Andrej Ocenas
6402391638
Explore: Add memoization and remove unused props (#18775) 2019-08-29 13:41:45 +02:00
kay delaney
3aa3a45372 Prometheus: Changes brace-insertion behavior to be less annoying (#18698)
* Changes brace-insertion behavior to be less annoying

* Removes use of braces plugin

* Revert "Removes use of braces plugin"

This reverts commit 4cf4a6073b.
2019-08-29 12:02:48 +02:00
Hugo Häggmark
5ca643f2ba Explore: Use PanelQueryState to handle querying (#18694)
* WIP: inital POC

* Wip: Moving forward

* Wip

* Refactor: Makes loading indicator work for Prometheus

* Refactor: Reverts prom observable queries because they did not work for multiple targets

* Refactor: Transforms all epics into thunks

* Fix: Fixes scanning

* Fix: Fixes so that Instant and TimeSeries Prom query loads in parallel

* Fix: Fixes negation logic error

* Propagate errors in stream events, and close streams
2019-08-28 18:24:52 +02:00
Ivana Huckova
c347b64b5a
center NoDataSourceCallToActionCard in Explore (#18752) 2019-08-28 10:26:48 +02:00
Ryan McKinley
ff6b8c5adc DataLinks: enable data links in Gauge, BarGauge and SingleStat2 panel (#18605)
* datalink on field

* add dataFrame to view

* Use scoped variables to pass series name and value time to data links interpolation

* Use scoped variables to pass series name and value time to data links interpolation

* Enable value specific variable suggestions when Gauge is displaying values

* Fix prettier

* Add basic context menu with data links to GaugePanel

* Fix incorrect import in grafana/ui

* Add custom cursor indicating datalinks available via context menu (in Gauge only now)

* Add data links to SingleStat2

* Minor refactor

* Retrieve data links in a lazy way

* Update test to respect links retrieval being lazy

* delay link creation

* cleanup

* Add origin to LinkModel and introduce field & panel links suppliers

* Add value time and series name field link supplier

* Remove links prop from visualization and implement common UI for data links context menu

* Update snapshot

* Rename className prop to clickTargetClassName

* Simplify condition

* Updated drilldown dashboard and minor changes

* Use class name an onClick handler on the top level dom element in visualization

* Enable series name interpolation when presented value is a calculation
2019-08-28 08:50:43 +02:00
Ryan McKinley
e1924608a2 DashboardDatasource: reuse query results within a dashboard (#16660)
* move queryRunner to panelModel

* remove isEditing from PanelChrome

* move listener to QueriesTab

* add shared query datasource

* expose getDashboardSrv to react

* no changes to panel chrome

* issue queries when in fullscreen

* moved to regular QueryEditor interface

* moved to regular QueryEditor interface

* lower limit

* add dashboard query

* no changes to editor row

* fix sort order

* fix sort order

* make it an alpha panel

* make panelId a getter

* fix angular constructor

* rename SeriesData to DataFrame

* merge with master

* use series

* add simple tests

* check unsubscribe

* Minor code cleanup, creating Subjects look cheap and does not need to be lazy, simplifies code

* minor refactor

* Minor refacforing, renames

* added test dashboard
2019-08-27 11:06:49 +02:00
Ryan McKinley
8ce509f3b4
Plugins: show a clear error on the plugin page when it failed to load (#18733) 2019-08-26 23:43:45 -07:00
Shavonn Brown
a540f05330 QueryEditor: check if optional func toggleEditorMode is provided (#18705) 2019-08-26 18:28:43 +02:00
Hugo Häggmark
e5e7bd3153
Dashboard: Adds Logs Panel (alpha) as visualization option for Dashboards (#18641)
* WIP: intial commit

* Switch: Adds tooltip

* Refactor: Adds props to LogsPanelEditor

* Refactor: Moves LogRowContextProvider to grafana/ui

* Refactor: Moves LogRowContext and Alert to grafana/ui

* Refactor: Moves LogLabelStats to grafana/ui

* Refactor: Moves LogLabels and LogLabel to grafana/ui

* Refactor: Moves LogMessageAnsi and ansicolor to grafana/ui

* Refactor: Moves calculateFieldStats, LogsParsers and getParser to grafana/data

* Refactor: Moves findHighlightChunksInText to grafana/data

* Refactor: Moves LogRow to grafana/ui

* Refactor: Moving ExploreGraphPanel to grafana/ui

* Refactor: Copies Logs to grafana/ui

* Refactor: Moves ToggleButtonGroup to grafana/ui

* Refactor: Adds Logs to LogsPanel

* Refactor: Moves styles to emotion

* Feature: Adds LogsRows

* Refactor: Introduces render limit

* Styles: Moves styles to emotion

* Styles: Moves styles to emotion

* Styles: Moves styles to emotion

* Styles: Moves styles to emotion

* Refactor: Adds sorting to LogsPanelEditor

* Tests: Adds tests for sorting

* Refactor: Changes according to PR comments

* Refactor: Changes according to PR comments

* Refactor: Moves Logs and ExploreGraphPanel out of grafana/ui

* Fix: Shows the Show context label again
2019-08-26 08:11:07 +02:00
kay delaney
1723ad9bdb
Fixes several usability issues with QueryField component (#18681)
* Fixes several usability issues with QueryField component
- Can now indent with tab and `mod+[`, `mod+]`
- Copy/Cut preserves new lines, and paste correctly splits blocks now
- Adds support for selection hotkeys
2019-08-23 14:17:13 +01:00
Shavonn Brown
1c36542018
convert teams section of user profile to react (#18633)
* convert teams section of user profile to react

* isLoading prop

* loading placeholders
2019-08-23 08:26:52 -04:00
Dominik Prokop
6d3a05a02b
TimeSrv: Enable value time windowing in TimeSrv (#18636)
This introduces change to TimeSrv that enables time & time.window query param. Thanks to that time range of a dashboard can be specified as a window(time.window param) around given timestamp(time param)
2019-08-22 11:42:36 +02:00
Hugo Häggmark
774b7267df
Explore: Fixes so Show context shows results again (#18675)
* Fix: Fixes so Show context shows results again
Fixes: #18656

* Refactor: Removes unused import that made it thrugh the pre-commit somehow
2019-08-22 11:10:20 +02:00
Ryan McKinley
f7c55d3968 Plugins: better warning when plugins fail to load (#18671)
* better pluin feedback

* add server side check for module.js
2019-08-22 07:04:02 +02:00
Hugo Häggmark
6eb13ae555
Explore: Fixes query field layout in splitted view for Safari browsers (#18654)
Fixes: #18436
2019-08-21 10:31:37 +02:00
Tobias Skarhed
ec492e55dc
Refactor: EmptyListCTA (#18516)
* Rewrite EmptyListCTA props and start removing css classes

* Add watchDepth onClick

* EmptyListCTA with React in annotaitons/editor

* Begin conversion of DashLinks editor EmptyListCTA

* Use React component in DashLinks, Variables and TeamGroupSync

* Remove scss file and add emotion styles

* Update snapshot

* Remove style import

* Fix feedback

* Update snapshot
2019-08-20 17:19:21 +02:00
Dominik Prokop
faabb839e6
Chore: Revert React 16.9.0 bump (#18634)
Since React and other dependencies bump caused some troubles with building packages that @kaydelaney and me tried to debug without any success, we decided to revert React 16.9.0 bump.
2019-08-20 11:14:53 +02:00
Shavonn Brown
e3e2cd82d7
Rewrite user profile edit to react (#17917)
* rewrite user profile edit to react (#17525)

* disableLogin change, still need to fix tooltip

* left out disable form for other auth

* PR changes - wrapper to render, userId instead of bool, optional user in state, change provider child param order

* moved directive to angular_wrappers

* catch api error

* finally

* move user arg back to end- optional

* optional type sig
2019-08-19 13:40:14 -04:00
Tobias Skarhed
90df8c4bb0 Chore: Rename Popper to Popover (#18543)
* Rename PopperContent to TooltipContent

* Move exports from PopperController

* Change ToolipContent to PopoverContent and PopoverController

* Rename Popper to Popover

* Add forgotten files

* Update snapshot

* Remove generic
2019-08-19 11:40:47 +02:00
Ryan McKinley
21948e80e0
SingleStat: add a gauge migration call to action button in the editor (#18604) 2019-08-18 15:01:07 -07:00
kay delaney
bf82e6cded
Explore: Fixes error when switching from prometheus to loki data sources (#18599)
Closes #18594
Closes #18596
2019-08-16 15:10:22 +01:00
Ryan McKinley
5a41e8b119 Refactor: move KeyValue and deprecation warning to @grafana/data (#18582)
* move KeyValue and deprecation warning

* move KeyValue and deprecation warning

* rename displayProcessor file
2019-08-16 11:10:32 +02:00
Ryan McKinley
6335509a23 Annotations: use a single row to represent a region (#17673)
* SQLite migrations

* cleanup

* migrate end times

* switch to update with a query

* real migration

* anno migrations

* remove old docs

* set isRegion from time changes

* use <> for is not

* add comment and fix index decleration

* single validation place

* add test

* fix test

* add upgrading docs

* use AnnotationEvent

* fix import

* remove regionId from typescript
2019-08-16 10:49:30 +02:00
Ryan McKinley
e59bae55d9
DataFrame: convert from row based to a columnar value format (#18391) 2019-08-15 09:18:51 -07:00
kay delaney
7f8f3fa458
Chore: Updates react-dependant packages to address react warnings (#18549)
Updates packages that depend on react in order to address warnings produced
by react regarding the use of `componentWillReceiveProps`
2019-08-14 14:20:35 +01:00
kay delaney
d66601a5f5
Explore/Prometheus: More consistently allows for multi-line queries (#18362)
* Explore/Prometheus: More consistently allows for multi-line queries
Allows a user to hit shift+enter to create a new line in the query field, even
when the autocomplete suggestions are displayed.
Also fixes an issue where a new line was inserted when selecting a suggestion
Closes #18341

* Fixes behavior where query wasn't running on pressing Enter
Also adds test to verify this behavior
2019-08-14 13:37:04 +01:00
Ryan McKinley
63f47fd8e2
Plugins: expose react-redux, redux (#18501) 2019-08-14 00:20:23 -07:00
Šimon Podlipský
494ac90c69 QueryData: Handle that response data must be array (#18504)
Fixes #18499
2019-08-13 11:25:51 +02:00
Ryan McKinley
3ccc10f82c React: Rename deprecated UNSAFE_componentWillReceiveProps (#18526) 2019-08-13 10:08:33 +02:00
Hugo Häggmark
4b3440325e
Explore: Replaces TimeSeries with GraphSeriesXY (#18475)
* Wip: Compiles and runs

* WIP: Logs Graph partially working

* Refactor: Adds GraphSeriesToggler

* Refactor: Adds tickDecimals to YAxis

* Refactor: Adds TimeZone and PlotSelection to Graph

* Refactor: Makes the graphResult work in Explore

* Refactor: Adds ExploreGraphPanel that is used by Logs and Explore

* Fix: Fixes strange behaviour with ExploreMode not beeing changed

* Fix: Adds onSelectionChanged to GraphWithLegend

* Refactor: Cleans up unused comments

* ExploreGraph: Disable colorpicker
2019-08-13 07:32:43 +02:00
Marcus Efraimsson
8fd153edb7
API: Restrict anonymous user information access (#18422)
Existing /api/alert-notifications now requires at least editor access.
Existing /api/alert-notifiers now requires at least editor access.
New /api/alert-notifications/lookup returns less information than
/api/alert-notifications and can be access by any authenticated user.
Existing /api/org/users now requires org admin role.
New /api/org/users/lookup returns less information than
/api/org/users and can be access by users that are org admins,
admin in any folder or admin of any team.
UserPicker component now uses /api/org/users/lookup instead
of /api/org/users.

Fixes #17318
2019-08-12 20:03:48 +02:00
Tobias Skarhed
1db9fff056 strictNullChecks: First batch (#18390)
* First batch of strictNullChecks

* Remove undefined

* Check an alternative solution

* Fix strict nullChecks

* Low hanging strictNullChecks

* Fixing strict nulls issues and more

* Minor change

* fixed unit test

* Fix feedback

* Update public/vendor/ansicolor/ansicolor.ts

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

* Update public/vendor/ansicolor/ansicolor.ts

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

* Update public/vendor/ansicolor/ansicolor.ts

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

* Fix build errors
2019-08-12 16:11:06 +02:00
David
b3d2cc3e2f
Explore: Fix loading error for empty queries (#18488)
* Explore: Fix loading error for empty queries

* Explore: Render tests for QueryField
2019-08-09 17:08:59 +02:00
Hugo Häggmark
445f1dabcc
Fix: Fixes stripping of $d in Explore urls (#18480)
Fixes: #18455
2019-08-09 14:55:23 +02:00
Dominik Prokop
20d0c07359
DataLinks: Use datapoint timestamp correctly when interpolating variables (#18459) 2019-08-08 16:30:01 +02:00
gotjosh
b424e12a5a
Fix: Avoid glob of single-value array variables (#18420)
* Fix: Avoid glob of single-value array variables

Based on our current implementation of templates, when multi-select
variables are part of a dashboard query the default/fallback formatting option is `glob`.

Some data sources do not support glob (e.g. metrics.{a}.* instead of
metrics.a.*) for single variable queries. This behaviour breaks dashboards.

This commit introduces an alternative formatting option where globing is avoided if it's there is only one value as part of the query variable.

This means, queries previously formatted as `query=metrics.{a}.*.*`, are
now formatted as `query=metrics.a.*.*`. However, queries formatted as
`query=metrics.{a,b}.*.*` continue to be as is.
2019-08-07 14:50:06 +01:00
Torkel Ödegaard
c55578d303
Panels: Fixed crashing dashboards with panel links (#18430)
* ReactPanels: Fixed panel header tooltip rendering crash

* Added unit test

* Improved test
2019-08-07 10:45:32 +02:00
Tobias Skarhed
1f9bce7f9f PanelLinks: Fix render issue when there is no panel description (#18408)
Make empty string if there is no panel description
2019-08-06 14:30:09 +02:00
Hugo Häggmark
ead2d6e88f
Explore: Fixes incorrect handling of utc in timeEpic (#18386)
* Fix: Fixes incorrect handling of utc in timeEpic

* Chore: Renames dateTimeFromTimeZone to dateTimeForTimeZone
2019-08-06 10:43:53 +02:00
Torkel Ödegaard
541981c341
Gauge/BarGauge: Rewrite of how migrations are applied (#18375) 2019-08-06 08:26:11 +02:00
kay delaney
9b5890cc62 QueryEditors: Fixes flakey text edit mode toggle (#18335)
Closes #18037
2019-08-02 08:42:39 +02:00
Ryan McKinley
5f4b5dfecd
Refactor: use data rather than series in stream callback(#18126) 2019-08-01 23:16:29 -07:00
Tobias Skarhed
83da3660da
Chore: noImplictAny no errors left (#18303)
* Add types and rewrite datasourceChanged to async/await
2019-08-01 14:38:34 +02:00
kay delaney
bcf28cb7a2 [Shortcuts] Fixes shortcuts for moving time range backwards and forwards (#18305)
Closes #18159
2019-08-01 10:17:27 +02:00
Tobias Skarhed
7891233812
Chore: noImplicitAny Sub 500 errors (#18287) 2019-07-30 15:49:32 +02:00
kay delaney
9d87923986
Chore: Upgrades typescript to version 3.5 (#18263)
* Chore: Upgrade typescript to version 3.5
2019-07-26 15:14:06 +01:00
Andrej Ocenas
7f1214ac46
Permissions: Show plugins in nav for non admin users but hide plugin configuration (#18234)
Allow non admins to see plugins list but only with readme. Any config tabs are hidden from the plugin page. Also plugin panel does not show action buttons (like Enable) for non admins.
2019-07-25 16:54:26 +02:00
Torkel Ödegaard
43543d5682
DataLinks: Fixed interpolation of series name, fixes #18250 (#18251) 2019-07-24 20:40:41 +02:00
kay delaney
c01bbf2058 Timerange: Fixes a bug where custom time ranges didn't respect UTC (#18248)
Closes #18170
Closes #18178
2019-07-24 15:09:52 +02:00
kay delaney
6144c0f51d Revert "Timerange: Fixes a bug where custom time ranges didn't respect UTC (#18217)" (#18246)
This reverts commit 0752a09f92.
2019-07-24 12:29:12 +02:00
kay delaney
0752a09f92
Timerange: Fixes a bug where custom time ranges didn't respect UTC (#18217)
* Timerange: Fixes a bug where custom timeranges didn't respect UTC
Closes #18170
Closes #18178
2019-07-24 11:00:36 +01:00
David
9cd069f2c5
Graph: fix time label description for datalink suggestions (#18214) 2019-07-22 13:35:12 +02:00
Ryan McKinley
06b43f6d4b
Plugins: avoid app importDashboards() NPE (#18128)
* tables display

* add missing file

* adding toolbar option

* adding toolbar option

* add items to index

* use root import path

* merge master

* show tables info

* add importDashboards code

* remove table changes

* remove table changes

* use deprecation warning
2019-07-19 07:11:16 -07:00
David
c6d3ffce91
Panel: Show error in edit mode (#18175)
- the error was set, but has not been shown
- this change will force a digest before the query promises return with
their error handling
2019-07-18 16:09:04 +02:00
Tobias Skarhed
c8498461a5 noImplicitAny: Down approx 200 errors (#18143)
* noImplicitAny playlist approx 200

* Add AngularPanelMenuItem interface

* Roughly 100 noImplicitAny
2019-07-18 08:03:04 +02:00
Ryan McKinley
c194ae1ba5
Registry: add a reusable function registry (#17047) 2019-07-16 11:40:23 -07:00
Tobias Skarhed
0ef4060b98
Chore: Fix about 200 noImplicitAny errors (#18067)
* Fix 200 ish errors

* Add interface
2019-07-16 11:35:42 +02:00
Ryan McKinley
14caa6a068
FieldDisplay: move threshold and mapping to Field (#17043) 2019-07-12 08:32:39 -07:00
Tobias Skarhed
e1cec1069c noImplicitAny: 1670 errors (#18035)
* Sub 2000 errors

* Down to 1670 errors

* Minor fixes
2019-07-11 17:05:45 +02:00
kay delaney
bf7fb67f73
Explore/Loki: Display live tailed logs in correct order (#18031)
Closes #18027
2019-07-10 13:57:23 +01:00
Alexander Zobnin
5f0a7f43c3
Users: show badges for each auth provider (#17869)
* Users: show badges for each auth provider

* Chore: don't use functions in angular bindings

* Users: minor style changes to labels

* Chore: convert auth labels on the backed side, deduplicate frontend code

* Users: use authLabels everywhere instead of authModule

* User: fix edit user page style

* Users: minor fixes after review
2019-07-10 12:06:51 +03:00
Ryan McKinley
6599bdc7f1
AnnoList: add alpha annotations list plugin (#17187)
adding an alpha panel
2019-07-09 09:28:19 -07:00
Tobias Skarhed
9e87dbb153
CSV Export: Timezone based on dashboard setting (#18002)
* Timezone export CSV based on dashboard setting

* Add options object and interface
2019-07-09 16:16:46 +02:00
Ryan McKinley
66a4d1a57e
Refactor: fix range util imports (#17988) 2019-07-08 10:12:02 -07:00
Ryan McKinley
ccc3d88cee
Refactor: move dom utils to @grafana/ui (#17976) 2019-07-08 10:02:16 -07:00
kay delaney
246358344c
Explore: Adds support for new loki 'start' and 'end' params for labels endpoint (#17512)
* Explore: Adds support for new loki 'start' and 'end' params for labels endpoint
Also initializes absoluteRange when explore is initialized
Closes #16788

* Explore: Dispatches updateTimeRangeAction instead of passing absoluteRange when initializing
Also removes dependency on sinon from loki language provider test

* Loki: Refactors transformation of absolute time range to URL params into small utility function

* Makes use of rangeToParams() util function in loki language provider test
Also updates LanguageProvider.request() interface so that url should be type string, and adds optional params argument
2019-07-08 16:14:48 +01:00
Ryan McKinley
8f5df80161 Chore: Removes custom debounce utility in favor of lodash/debounce (#17977) 2019-07-08 15:20:29 +01:00
Ryan McKinley
bdaf0aa81a
Refactor: move more files to @grafana/data (#17972) 2019-07-06 09:18:23 -07:00
Ryan McKinley
fcdc29746f
@grafana/data: export dateMath and rangeUtil (#17971) 2019-07-05 23:43:12 -07:00
Ryan McKinley
3f15170914 Refactor: move some files to @grafana/data (#17952)
* moving to data WIP

* more refactoring

* add missing test

* mock full path

* remove sinon from grafana-ui
2019-07-06 08:05:53 +02:00
Dominik Prokop
c5b6365858
grafana/toolkit: Add support for extensions styling (#17938)
* Add support for static files

* Use url-loader in single css setup

* Add postcss setup

* Expose emotion to plugins and externalise it in toolkit

* Add readme note about emotion
2019-07-05 13:33:42 +02:00
Tobias Skarhed
55b63905ea UserProfilePage: Fix team avatar urls #17866 (#17930) 2019-07-04 16:54:44 +02:00
kay delaney
d4e9a8c009
Explore: Introduces storage keys for last used data source on per-orgId basis (#17934)
* Explore: Introduces storage keys for last used data source on per-orgId basis
Closes #17903
2019-07-04 15:31:15 +01:00
kay delaney
3a18098760 Explore: Restricts query text edit toggle to metrics mode (#17921)
* Explore: Adds datasource plugin config option 'modesSupportingTextEdit'
This allows one to specify which modes support toggling query text edit on and off
Closes #17904

* Explore: Restricts query text edit toggle to metrics mode
2019-07-04 14:10:44 +02:00
Dominik Prokop
cf37b5439f
grafana/runtime: Expose SystemJS from @grafana/runtime (#17927)
In 4281344 the loadPluginCss util was migrated to @grafana/runtime package. This made SystemJS to fail loading the css files for a plugin. Root cause was that core and runtime used different SystemJS instances.

To solve the issue, I am exposing SystemJS from @grafana/runtime package to make sure we are always using the same instance. Also, the SystemJS dependency was moved to runtime.
2019-07-04 13:32:09 +02:00
Eduard Sergeev
19ae5351fb Templating: Correctly display __text in multi-values variable after refresh (#17918)
Fixes: #17915 - Templating: __value's are displayed instead of __text's after variable is updated
2019-07-04 08:34:42 +02:00
kay delaney
164fb13d99
Explore: Adds orgId to URL for sharing purposes (#17895)
Also replaces one-off segment detection functions in explore.ts with general purpose function
Closes #15462
2019-07-03 16:36:12 +01:00
Shavonn Brown
874b8abcc0 ChangePassword: Rewrite change password page to react (#17811)
* ChangePassword to React, created PasswordInput component, attempting UserProvider wrapper component, adding flex to btn row

* UserAPI interface, force classes on PasswordInput, remove api call from ChangePassword

* refactored out form

* clean up

* removed unnecessary bind, added loading state and loading component to change password form

* should be OR

* arrow funcs instead of binds, inline-block instead of flex, isSaving instead of isLoading, disabled button instead of spinner

* inline-flex on the react btn

* change state instatiatiation
2019-07-03 17:02:11 +02:00
Torkel Ödegaard
b1126cb0ed
AngularPanels: Fixed loading state indication for angular panels (#17900) 2019-07-03 16:58:38 +02:00
kay delaney
98147fd52b
Explore: Adds support for toggling text edit mode in explore (#17870)
* Explore: Adds support for toggling text edit mode in explore
Also modifies query-row-status css to use relative position instead of absolute
Closes #16770

* Explore: Defines State interface for <QueryRow /> and removes unnecessary constructor
2019-07-03 15:42:03 +01:00
kay delaney
b06ad02a74
Explore: Query rows are now reset when changing data sources (#17865)
Except when those data sources are compatible, via query import.
Closes #17861
2019-07-03 13:49:47 +01:00
kay delaney
364f1f2e55
Explore: Log highlights only update when user stops typing (#17845)
Reverts performance enhancements made to LogsContainer as they are no
longer needed, and complicated things.
Closes #17818
2019-07-02 09:06:21 +01:00
Ryan McKinley
e7c3d0ed97
Refactor: rename SeriesData to DataFrame (#17854) 2019-07-01 12:00:29 -07:00
Torkel Ödegaard
bd4a7ddf3a
TimePicker: Style and responsive fixes, restored dashboard settings (#17822)
* TimePicker: Restore time picker settings

* CleanUp: removed unuused angular-ui (calendar) components

* Fix angular boot dependency list

* TimePicker: set time to 23:59:00 when setting To time using calendar
2019-07-01 10:16:33 +02:00
Eduard Sergeev
d94bdb930f Templating: Correctly display __text in multi-values variable (#17840)
Fixes #17839: __value is displayed instead of __text when single item is selected
2019-07-01 09:42:36 +02:00
Marcus Efraimsson
53db823511
Explore: Fix filter by series level in logs graph (#17798)
Adds back support for filtering log messages by series level 
in logs graph which seem to have been broken since merging
of #17027.

Fixes #17769
2019-06-28 17:05:59 +02:00
Ryan McKinley
70d4dfe9f7 Dashboard: Force update after dashboard resize (#17808) 2019-06-28 14:25:38 +02:00
Hugo Häggmark
ead4b1f5c7
Explore: Uses new TimePicker from Grafana/UI (#17793)
* Wip: Intiail commit

* Refactor: Replaces TimePicker in Explore

* Refactor: Removes Angular TimePicker folder

* Refactor: Adds tests for getShiftedTimeRange

* Fix: Fixes invalid import to removed TimePicker

* Fix: Fixes dateTime tests

* Refactor: Reuses getShiftedTimeRange for both Explore and Dashboards

* Refactor: Shares getZoomedTimeRange between Explore and Dashboard
2019-06-28 12:07:55 +02:00
Hugo Häggmark
2379de53c4
Explore: Uses RFC3339Nano string to retrieve LogRow contexts from Loki API (#17813)
* Refactor: Uses nanosecond string to retreive LogRow contexts

* Reafactor: Small changes to comments after PR comments
2019-06-28 10:47:19 +02:00
Tobias Skarhed
3045daedbd noImplicitAny: Reduce errors to 3800-ish (#17781)
* Reduce noImplicitAny errors to 3900-ish

* Fix lots of errors

* Add interface
2019-06-27 13:21:04 +02:00
kay delaney
5f3a71bc7a Explore: Adds URL support for select mode (#17755)
Adds URL support for mode state (Metrics/Logs). It's important 
to be able to share a link to logs when a data source supports 
both metrics and logs.

Closes #17101
2019-06-27 11:11:49 +02:00
Hugo Häggmark
7cac7435ce
Explore: Displays only one Time column as configured in TimeZone settings (#17775)
* Refactor: Removes switches for TimeStamp and LocalTime and displays time as configured for user

* Styles: Updates classname used to display timeUtc

* Refactor: Adds switch for Time column
2019-06-26 13:35:23 +02:00
Tobias Skarhed
8541214c9e
Markdown: Replace rendering library (#17686)
* Replace remarkable with marked

* Add wrapper and options for marked
2019-06-26 13:15:45 +02:00
Sofia Papagiannaki
6fb36e705f ApiKeys: Fix check for UTC timezone (#17776)
getTimeZone() no longer returns an object, but a string
2019-06-26 10:26:16 +02:00
Sofia Papagiannaki
dc9ec7dc91
Auth: Allow expiration of API keys (#17678)
* Modify backend to allow expiration of API Keys

* Add middleware test for expired api keys

* Modify frontend to enable expiration of API Keys

* Fix frontend tests

* Fix migration and add index for `expires` field

* Add api key tests for database access

* Substitude time.Now() by a mock for test usage

* Front-end modifications

* Change input label to `Time to live`
* Change input behavior to comply with the other similar
* Add tooltip

* Modify AddApiKey api call response

Expiration should be *time.Time instead of string

* Present expiration date in the selected timezone

* Use kbn for transforming intervals to seconds

* Use `assert` library for tests

* Frontend fixes

Add checks for empty/undefined/null values

* Change expires column from datetime to integer

* Restrict api key duration input

It should be interval not number

* AddApiKey must complain if SecondsToLive is negative

* Declare ErrInvalidApiKeyExpiration

* Move configuration to auth section

* Update docs

* Eliminate alias for models in modified files

* Omit expiration from api response if empty

* Eliminate Goconvey from test file

* Fix test

Do not sleep, use mocked timeNow() instead

* Remove index for expires from api_key table

The index should be anyway on both org_id and expires fields.
However this commit eliminates completely the index for now
since not many rows are expected to be in this table.

* Use getTimeZone function

* Minor change in api key listing

The frontend should display a message instead of empty string
if the key does not expire.
2019-06-26 09:47:03 +03:00
Alexandre de Verteuil
4f1d495ba1 Fix typo s/Applicaiton/Application/ in error messages (#17765) 2019-06-25 20:59:58 +02:00
Alexander Zobnin
77375f3772 UserAdmin: UI for disabling users (#17333)
* Feat: initial disable user UI

* batch disable users

* batch revoke users tokens

* split batch disable user and revoke token

* API: get users with auth info and isExternal flag

* fix tests for batch disable users

* Disable users: show is user external or not

* Users: refactor /api/users/search endpoint

* Users: use alias for "user" table

* Chore: add BatchDisableUsers() to the bus

* Users: order user list by id explicitly

* Chore: switch back to /api/users/search endpoint

* Users: move disable button to user profile page

* Users: return AuthModule from /api/users/:id endpoint

* Users: do not return unused fields

* Users: mute auth badge for disabled users

* Users: move disable button to the user section

* Users: fix SearchUsers method after last changes

* User: return auth module as array for future purposes

* User: tests for SearchUsers()

* User: return only latest auth module in SearchUsers()

* User: fix JOIN, get only most recent auth module

* Users: fix ldap badge after backed changes

* Users: show tooltip for inactive disable/enable button

* Users: move delete button to edit user view

* Users: put deactivated badge on the user list

* Users: minor refactor

* Users: adjust deactivated badge style

* Minor design changes
2019-06-25 18:49:12 +02:00
Hugo Häggmark
2c5400c61e Explore: Parses and updates TimeSrv in one place in Explore (#17677)
* Wip: Adds timeEpic

* Refactor: Introduces absoluteRange in Explore state

* Refactor: Removes changeTime action

* Tests: Adds tests for timeEpic

* Refactor: Spells AbsoluteRange correctly
2019-06-25 13:44:19 +01:00
Torkel Ödegaard
335cec07a5
Graph: Add data links feature (click on graph) (#17267)
* WIP: initial panel links editor

* WIP: Added dashboard migration to new panel drilldown link schema

* Make link_srv interpolate new variables

* Fix failing tests

* Drilldown: Add context menu to graph viz (#17284)

* Add simple context menu for adding graph annotations and showing drilldown links

* Close graph context menu when user start scrolling

* Move context menu component to grafana/ui

* Make graph context menu appear on click, use cmd/ctrl click for quick annotations

* Move graph context menu controller to separate file

* Drilldown: datapoint variables interpolation (#17328)

* Add simple context menu for adding graph annotations and showing drilldown links

* Close graph context menu when user start scrolling

* Move context menu component to grafana/ui

* Make graph context menu appear on click, use cmd/ctrl click for quick annotations

* Add util for absolute time range transformation

* Add series name and datapoint timestamp interpolation

* Rename drilldown link variables tot snake case, use const values instead of strings in tests

* Bring LinkSrv.getPanelLinkAnchorInfo for compatibility reasons and add deprecation warning

* Rename seriesLabel to seriesName

* Drilldown: use separate editors for panel and series links (#17355)

* Use correct target ini context menu links

* Rename PanelLinksEditor to DrilldownLinksEditor and mote it to grafana/ui

* Expose DrilldownLinksEditor as an angular directive

* Enable visualization specifix drilldown links

* Props interfaces rename

* Drilldown: Add variables suggestion and syntax highlighting for drilldown link editor (#17391)

* Add variables suggestion in drilldown link editor

* Enable prism

* Fix backspace not working

* Move slate value helpers to grafana/ui

* Add syntax higlighting for links input

* Rename drilldown link components to data links

* Add template variabe suggestions

* Bugfix

* Fix regexp not working in Firefox

* Display correct links in panel header corner

* bugfix

* bugfix

* Bugfix

* Context menu UI tweaks

* Use data link terminology instead of drilldown

* DataLinks: changed autocomplete syntax

* Use singular form for data link

* Use the same syntax higlighting for built-in and template variables in data links editor

* UI improvements to context menu

* UI review tweaks

* Tweak layout of data link editor

* Fix vertical spacing

* Remove data link header in context menu

* Remove pointer cursor from series label in context menu

* Fix variable selection on click

* DataLinks: migrations for old links

* Update docs about data links

* Use value time instead of time range when interpolating datapoint timestamp

* Remove not used util

* Update docs

* Moved icon a bit more down

* Interpolate value ts only when using __value_time variable

* Bring href property back to LinkModel

* Add any type annotations

* Fix TS error on slate's Value type

* minor changes
2019-06-25 11:38:51 +02:00
kay delaney
cbe057fce8
Explore: Changes LogsContainer from a PureComponent to a Component (#17741) 2019-06-25 09:10:20 +01:00