* Fix query object for cloudmonitor panel from v6
* Use proper function
(cherry picked from commit 83b6df738e)
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* fix(routing): remove baseUrl only if at start of url
* test(routing): add subdirectory suburl tests for stripBaseFromUrl
* test(routing): add absolute url check to fix tests, add extra tests
(cherry picked from commit 8b2ee06f3c)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
#31871 introduced support for configuring timeout in seconds
for HTTP data sources. That had a bug where backend expected
a numeric timeout value where it was actually stored as a
string. This should resolve this by requiring input to be
numbers, storing input as numeric and falling back to string
value if there's no numeric value.
Ref #31871
(cherry picked from commit d15d87db8a)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* make sure queries are only ran once
* test aliases
* use correct dates
(cherry picked from commit eff2410bae)
Co-authored-by: Erik Sundell <erik.sundell@grafana.com>
* Grafana-UI: Removes knobs from storybook addons pane
* removed other knobs settings since we are disabling it
* remove the knobs disable config in individual stories
(cherry picked from commit 8d9e1d75a5)
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
* Introduce go-conntrack into http client provider
* Fixes according to reviewer's comments
* Fixes according to reviewer's comments
(cherry picked from commit 7cdf8b3705)
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
* fix sql annotation parsing for empty responses
* fix backend when no data returned
* add back frontend changes
Co-authored-by: Ying WANG <ying.wang@grafana.com>
(cherry picked from commit 9a5e10e6fb)
Co-authored-by: Marc Bachmann <marc.brookman@gmail.com>
Fixes a problem with query variables where SQL query returning for example only
numeric values didn't populate the query variables with values.
Fixes#35391
(cherry picked from commit bf7301e485)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Alerting: Allow rules with same title across folders
* Add test
(cherry picked from commit 8cda1f5153)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Graph: fixes storybook crashing when using the story
* fixes the GraphWithLegend story too
(cherry picked from commit 70155c7fd0)
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
* fix(card): defend against invalid elements types passed to BaseActions
* test(card): add test to support conditional buttons being passed in
* fix(playlistpage): remove disabled prop from LinkButton for editors
* chore(playlistpage): remove title from edit button
(cherry picked from commit c13f247a94)
* Fix dashboard alert and nootifier migration for MySQL
* Fix POSTing Alertmanager configuration if no current configuration exists
in case the default configuration has not be stored yet
or has failed to get stored
* Change CreatedAt field type
(cherry picked from commit 15c55b0115)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Optimize Azure Monitor routes
* Update API version compatible with Azure China
(cherry picked from commit 412bcf1fb0)
Co-authored-by: Sergey Kostrukov <sekost@microsoft.com>
* SSE: Change math expression to accept any scalar value
* Apply suggestions from code review
* Update test
* Remove TODO
(cherry picked from commit eeb84d09c2)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Fix test data field label
* Fix sorting
* Changed icon for sorting
(cherry picked from commit 1dc387536e)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Annotations: Fix for update/save/delete annotation not appearing/disappearing
* Annotations: Fix so adds, updates and deletes are shown correctly
* Chore: updates after PR comments
(cherry picked from commit abd4e70792)
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Grafana-UI: Fix Checkbox vertical layout issues
* reorganise css
* revert my 'fix' and just go back to setting a min height :(
(cherry picked from commit 32d9b04666)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* Timeline/Status grid tooltip support first pass
* Tooltips workin
* Use getValueFormat to get the duration
* Separate boxes highlight from tooltip interpolation
* Separate state timeline tooltip component, rely on field display color to retrieve color of series
* create an onHover/onLeave API and optimize implementation
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit 7359ba44d0)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Move QueryData method into backend plugin manager which HandleRequest uses to
query data from plugin SDK supported data sources. This allowed us to remove a lot
of code no longer needed.
Ref #21510
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
(cherry picked from commit b3e9087557)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* DashboardRow: fixes time variable not updating when used in row title
* adds test cases for subscribe event
(cherry picked from commit 395d7eb74c)
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
* VizLegendTable: fixes column spacing to span to the right side
* reverted text alignment to right
* implemented a more readable solution for tabble legend spacing
(cherry picked from commit 4d574bb8aa)
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
* Security: Update default content_security_policy_template
- Add 'strict-dynamic' back to script-src
- Add ws(s)://$ROOT_PATH to connect-src
- Change onEvent to on-event in angular templates to fix CSP issues in firefox.
- Add blob: to style-src
(cherry picked from commit 8143991b94)
* Added test data that contains normal distribution
* Added histogram test dashboard
* Fixed so panels share same data
(cherry picked from commit 119dbc4d76)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* add timeline value cache
* add timeline value cache
* with console logs
* cleanup
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit 744ca8d439)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Tempo: search fixes
Add custom width to time and trace id
Run and show query in search after page refresh
* Iterate through all response data
* Don't store linkedQuery as a property
(cherry picked from commit bf96f5e285)
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Chore: Upgrade prometheus/alertmanager dependency to v0.22.2
* go mod tidy
(cherry picked from commit 5d41e83896)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* UnsavedChanges: Move Change tracker to use Prompt
* Fix a lot of race conditions and stacking of changes in onConfirm and onDismiss
* Listen to save event
* add missing delay argument
* migrated the change tracker unit tests
* Updated snapshot
* Removed unessary action
* removed updateSourcePanel
* Fix hiding save library panel modal prompt when clicking discard
* change saved libray panel title and buttons so they are a bit different as Prompt and when used from save button
* Fixed issue with saving new dashboard
* Now all scenarios work
* increase wait time
* Fixed one more race condition
(cherry picked from commit e6f2b10a36)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* AzureMonitor: Use display names for resource types and locations
* de-pluralize resource types
* Rename Namespace field to Resource Type, and use display names
* add comments
(cherry picked from commit 3be0a2d328)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* ReleaseNotes: Updated changelog and release notes for 8.0.0-beta3
* Docs: adds Beta3 to index
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
(cherry picked from commit 046de10cd7)
* Dashboard: Fix Table view when editing causes the panel data to not update
- Add event subscription on PanelEditorTableView
- Extract runAllPanelQueries into Panel Model in order to use it on PanelChrome and PanelEditorTableView
- Add simple unit test for runAllQueryPaneQueries
(cherry picked from commit ff03b456f1)
Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
Config file needs to be copied over
No-op for OSS grafana
(cherry picked from commit 22544bd135)
Co-authored-by: Julien Duchesne <julienduchesne@live.com>
* Fix Circle CI check with adding an empty config
* Add version
* Add empty jobs and workflows
* Add job with docker image
* Add step
(cherry picked from commit ec29c3b84f)
Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
* Table: datalink to have text underline and support for image datalink
* fixes image oversize issue when using both image and link in a column
* fixes small nit
* extracted the getLink logic to be a standalone utility function
* Updates table tests to suit current structure
* fixes small syntax nit
* fixes bad typing issue
* annotes the getCellLinks logic as an internal utility function
* removes blank whitespace
* Tests: updates test cases to use getByRole
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
(cherry picked from commit 865eac309c)
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
* Switch to GraphNG for Logs Histogram
* Remove redundant timeZone
It was used just to format timestamp in the tooltip but it's not needed anymore.
* Add tests for creating logs histogram data
* Update decoractors tests
* Adjust bar width to be more like in the old graph
* Fix tooltip pointer color
* Test tooltip pointer color
* Decouple graph config from uPlot internals
* Ensure nested properties are not mutated when overrides are applied
* Add legend toggling for Explore graphs
* Remove unused component
ExploreGraphNGPanel is now used in Explore
* Code formatting
* allow multiple bars pathBuilders to be globally cached with different settings
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit f4a40a4d85)
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Add prevent default if onClick exists
* Apply field overrides
(cherry picked from commit fcdab32750)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* feat(pluginlistpanel): if catalog app is enabled redirect user if plugin is upgradable
* refactor(catalog): update copy if plugin is disabled
(cherry picked from commit 8c93899b15)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Remove fieldName and hideInLegend properties from UPlotSeriesBuilder
* Fix test
(cherry picked from commit 573d7b8893)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Table: Fixes sorting for number fields
* Refactor: changes after PR comments
* Refactor: found a bug
(cherry picked from commit 37ab5ec7f4)
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Themes: Add border to sidemenu, and reduce border in dark theme a tiny bit
* Updated
(cherry picked from commit d6a9a9b975)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* add formatting for loki annotations
based/copied from the same features from the prometheus datasource
(cherry picked from commit 261319a4be)
Co-authored-by: Fredrik Enestad <fredrik@enestad.com>
* Usage Stats: Rename service to use a more idiomatic name
* Usage Stats: Update MetricsFunc definition and implementations
* Revert "Usage Stats: Rename service to use a more idiomatic name"
This reverts commit 910ecce3e8.
* Usage Stats: Update MetricsFunc definition and implementations
(cherry picked from commit f601921670)
* Docs: Settings updates on runtime docs skeleton
* Docs: Settings HTTP API
* Docs: Minor changes on settings updates at runtime docs
* Docs: Settings updates at runtime description
* Docs: Minor fix
* Docs: Move PUT /api/admin/settings docs into Admin API page
* Docs: Added longer explanation into 'Settings updates at runtime' page
* Apply suggestions from code review
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
* Docs: Include order of precedence description at settings updates page
* Update docs/sources/http_api/admin.md
* Docs: Add link to main configuration page from Settings updates at runtime
* Apply suggestions from code review
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit 886f6fc55b)
* Add information that Loki as Prometheus data source is not supported
* Fix ugly error when loki as prometheus used
* Refactor, add test
* Fix type error
* Fix test by passing missing method
* Update public/app/plugins/datasource/prometheus/query_hints.ts
* Remove optionality in prop
(cherry picked from commit add1b827ae)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
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.
(cherry picked from commit b47e7d12e6)
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Show different symbols for different queries
* Only run different exemplars
* Address review comment
* Do the same for dashboard + tests
(cherry picked from commit 4435895833)
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Prometheus: Add metadata to metrics in Metrics browser
- use the available metadata to enhance the tooltip on metric items in the metrics browser
- added meta info for histogram metrics (was missing before)
- also added one for ALERTS
* fix test
(cherry picked from commit 2205464a8d)
Co-authored-by: David <david.kaltschmidt@gmail.com>
* Do not require default subscription for Azure Monitor
* Fix explore URLs when default subscription not set
* Test datasource fixes
* Added comment
* Fix first or default subscription/workspace
* SubscriptionField doesn't depend on Log Analytics
* Tests fixed
* Select default subscription only when user clicked
(cherry picked from commit 179eb0898e)
Co-authored-by: Sergey Kostrukov <sekost@microsoft.com>
* Hide switch for using different credentials in AzureMonitor
* Apply feedback. Use @testing-library
(cherry picked from commit 48dc78fd48)
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* AzureMonitor: Support querying Subscriptions and Resource Groups in Logs
* cleanup
(cherry picked from commit 888cddb834)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Threema Gateway supports two types of IDs: Basic IDs (where the
encryption is managed by the API server) and End-to-End IDs (where the
keys are managed by the user).
This plugin currently does not support End-to-End IDs (since it's much
more complex to implement, because the encryption needs to happen
locally). Add a few clarifications to the UI.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
(cherry picked from commit 83a83de10a)
Co-authored-by: Danilo Bargen <mail@dbrgn.ch>
* PieChart: Support row data in pie chart
* Make color override work
* removed thing
* Minor refactoring
(cherry picked from commit 658cc5dd2d)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* AzureMonitor: Hide Application Insights and Insights Analytics for panels not using them
* AzureMonitor: Hide Application Insights config
* simplify
* fix test
(cherry picked from commit 7646246d8c)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
this should help Live to be enabled by default but still
do not affect setups with lots of simultenious users. To
properly handle many WS connections Grafana administrators
should tune infrastructure a bit - for example increase a
number of open files for a process. Will be in more details
in documentation.
(cherry picked from commit 6d750c000e)
Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
* fix(dashboardpage): add padding so add panel chrome isnt cut off
* fix(addpanelwidget): introduce wrapping element to cater for pulsate animation offset
* refactor(addpanelwidget): use spacing.xs rather than spacing.sm
* test(addpanelwidget): update snapshot
(cherry picked from commit 8ced249c91)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Visualization: Hide from option should be available as a manual override option
* Fix misaligned type
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit f07366690e)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* Position GraphNG tooltip correctly when window scrolled or resized
* Use syncRect uPlot hook instead of polling
* update snap?!
(cherry picked from commit 1fa755bada)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* move visualization to queryeditorrow
* add prop to hide disable query
* move panel plugin state outside the vizwrapper
(cherry picked from commit 23cf31a567)
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
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)
(cherry picked from commit 9016d20c4c)
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* click out to gcom when config enabled
* set to false
* fix styling for uninstall
* remove advertising config + simplify callout URL
* add entry to configuration.md
* update config name
* update lingo
(cherry picked from commit c7b58fe186)
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* PanelChrome: Fix issue with empty panel after adding a non data panel and coming back from panel edit
* Removed the console.log
(cherry picked from commit ca79d08dd8)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* Explore: Fix Browser title not updated on Navigation to Explore (#34651)
- Update document.title on Explore page
- Add unit test and snapshot for Wrapper component
(cherry picked from commit cebe67ab01)
* fix: remove snapshot for wrapper test
Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
* Dashboard: Fixes issue with title or folder change has no effect after existing settings view
* Updates snapshot
(cherry picked from commit 6394a60a08)
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* expose folder UID in dashboards API response, import dashboards into folders by folder UID
* handle bad folder UID as 400 error
* 12591:Add tests for request with folderUid
* Use more descriptive error status for missing folders
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* return 400 when folder id is missing
* put error checking in the right place this time
* mention folderUid in the docs
* Clarify usage of folderUid and folderId when both present
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Capitalise UID
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* mention folder UID in the metadata for a GET response
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit ef0fab9aa5)
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
* Show node graph collapsed by default with trace view
* Fix rename variable
* Change the message
* Add test
* Fix e2e test
* Remove expect in exemplars test
* Align icon
* review fixes
(cherry picked from commit 9dafd4f863)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Invoke setScrollTop callback only after scrolling finishes
When the state is updated while scroll events are being dispatched (like in QueryGroup) it may cause resetting the scroll position to the first emitted event because setting the scroll happens only after render (useEffect).
* Memoize onScrollStop callback
(cherry picked from commit 8d05df83ed)
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* s/grafana:roles:/fixed:/
* Update free text references to predefined roles
(cherry picked from commit 0f4806db8a)
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* fix(pagetoolbar): pad elements top and bottom to keep vertical align and wrapper padding
* fix(sidemenu): prevent mobile sidemenu squashing dashboard, vertically align mobile sidemenu icon
* fix(dashboardsettings): prevent subheader overlap
* fix(pagetoolbar): center align all toolbar elements vertically
* refactor(pagetoolbar): combine vertical paddings to bring back original padding values
* refactor: update padding values for components that use PageToolbar
* fix(playlists): update Empty cta link route to prevent 404
* test(dashboard): update snapshot
(cherry picked from commit ad3b0b2272)
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
The /api/ds/query and /api/tsdb/query endpoints extract the intervalMs field from
each query in the request, but it currently seems to be ignored, at
least for queries to a Prometheus datasource. This changes
GetIntervalFrom function to check for the presence of intervalMs in the
query model if interval is missing.
(cherry picked from commit b7ea66b00d)
Co-authored-by: Ben Sully <ben.sully@grafana.com>
* AzureMonitor: Refactor children to be an arrayu
* Add some resourcePickerData tests
* update tests
* some quick NestedResourceTable tests
(cherry picked from commit 1d3bcb0e90)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* starting to add eval logic.
* wip
* first version of test rule.
* reverted file.
* add info colum to result to show error or (with CC evalmatches)
* fix labels in evalmatch
* fix be test
* refactored using observables.
* moved widht/height div to outside panel rendere.
* adding docs api level.
* adding container styles to error div.
* increasing size of preview.
Co-authored-by: kyle <kyle@grafana.com>
(cherry picked from commit e19b3df1a9)
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* InfluxDB: Flux: handle boolean data-columns
* normalize data-type strings based on documentation
* reference missing data type
(cherry picked from commit ab26c4dfa4)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* InfluxDB: InfluxQL query editor: better handling of slow queries
* adjusted message to be similar to other messages
* simplify code
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
(cherry picked from commit 0afc4c0361)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* WIP: Implement simple caching
* If results are cached, don't run new query and use those results
* Add duplicate key check
* Clean up
* Clean up
* Add tests for caching
* Remove unused variables
* Update public/app/features/explore/state/query.test.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Update public/app/features/explore/state/query.test.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Use decorateData to apply all decorators
* Remove unused variables
* Change loading stte to Done
* Clear cache when running query from navigation
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
(cherry picked from commit 247bdc2f9b)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* [Alerting]: forbid viewers for updating rules if viewers can edit
check for CanSave instead of CanEdit
* Clear ngalert tables when deleting the folder
* Apply suggestions from code review
* Log failure to check save permission
Co-authored-by: gotjosh <josue@grafana.com>
(cherry picked from commit 23939eab10)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Increase number of backend test retries to 5
* Exclude release-branch pipelines
* Fixes according to reviewer's comments
* Refactor
* Remove unused arguments
* Remove magic number
(cherry picked from commit 292789ba2d)
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
* Migrate template variables straight into resource field,
Display error if unable to migrate
* Update workspace() template variable query function to return a resource URI
* update backend to support resource uris in workspace field
* don't load resource names for variables
* throw error when workspace migration returns no results
* update testDatasource to work with either resource URI or workspace GUID
* fix tests
* cleanup types just a little bit, as a treat
* Alerting: Opsgenie notification channel
This translate the opsgenie notification channel from the old alerting
system to the new alerting system with a few changes:
- The tag system has been replaced in favour of annotation.
- TBD
- TBD
Signed-off-by: Josue Abreu <josue@grafana.com>
* Fix template URL
* Bugfig: dont send resolved when autoClose is false
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Fix integration tests
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Fix URLs in all other channels
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
Uses new httpclient package from grafana-plugin-sdk-go introduced
via grafana/grafana-plugin-sdk-go#328.
Replaces the GetHTTPClient, GetTransport, GetTLSConfig methods defined
on DataSource model.
Longer-term the goal is to migrate core HTTP backend data sources to use the
SDK contracts and using httpclient.Provider for creating HTTP clients and such.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Created exemplar folder and moved/renamed exemplar topic to new folder.
* More changes.
* More changes.
* More changes.
* Content structuring is complete.
* Added images.
* Updated filename.
* Updated image captions.
* Removed empty space.
* Adjusted image size.
* Corrected indentation and new image.
* Allow Route component usage in app plugins
* i tried
* fix catalog app
* fix catalog app
* remove catalog changes from this PR
* remove extra files
* feat(plugins): expose react-router to plugins rather than export via grafana-ui
* Bring back query and pathname to AppRootPage and add deprecation notice
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* wip
* wip:
* ui work for resource picker
* disable rows when others are selected
* resource picker open button
* Azure Monitor: Connect to backend with real data (#34024)
* Connect to backend with real data
* Fixes from code review.
* WIP:Begin thinking about how to make queries with scope determined by the resource picker
* More fixes post code review.
* Fixes after rebasing
* Remove outdated todo
* AzureMonitor: Support any resource for Logs queries (#33762)
* Apply button for resource picker
* scroll table body
* secondary cancel button
* loading state for nested rows
* Display resource components in picker button
* fix tests
* fix icons
* move route function
* Migrate from workspace to resource uri for log analytics (#34337)
* reword backwards compat comment
* remove base url suffix
* fix lint error
* move migrations to seperate file
* cleanup
* update regex
* cleanup
* update plugin routes to use new azure auth type
* use AzureDataSourceInstanceSettings alias
Co-authored-by: Sarah Zinger <sarahzinger@users.noreply.github.com>
* ReleaseNotes: Updated changelog and release notes for 7.5.7
* Move colon into the emphasised section
* Move colon into the emphasised section
* Renamed PR title
* Update PR title
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
* Bar chart label positioning and sizing
* Dev dashbard
* Improve autosizing
* Remove sync option
* Unify text sizing options between stat-ish visualizations and bar chart
* Add simple categorical data scenario and update dev dashboard
* Remove unused options builder
* Add docs annotations
* Fix go lint
* Add discord notifier channel and test
* Correct payload
* remove print statement
* PR feedback and update due to changes in main
* Add discord notifier channel and test
* Correct payload
* remove print statement
* PR feedback and update due to changes in main
* update constructor and tests
* group imports sensibly
* Fix lint
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Do not sanitize the query while typing, but only onBlur or before the query is run
Otherwise sanitized value may cause update Slate component and trigger blur losing focus of the input
* Revert "Do not sanitize the query while typing, but only onBlur or before the query is run"
This reverts commit 00779889
* Avoid changing the input while typing
Cleaning happens on each change and with trimming it changes the value if the user types a space as the last character (may happen quite often while typing a query). In worst cases it's causing losing the focus in Slate if the space is typed before debounced change callback is triggered (500ms).
* Adding simplified version of query editor based on app flag.
* cleaned up the absolute time range.
* changing placeholder text.
* updated snapshot.
* added some tests.
* adding loki query editor tests.
* updating snapshots.
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.
* Determine Azure cloud based on authentication type
* Route resolution for clouds
* Fix tests
* Constants for cloud names
* move arg cloud route logic to routes.go
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
* CSP: Relax default template, due to nonces not working
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CSP: Add back data: to img-src
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add Azure Resource Graph in Azure Plugin
* fix lodash import
* Fix mock queries
* use "backend" sdk
* Address comments
* add converter for object type
* Query error should cause 400 & apply template var
* fix backend test & add documentation
* update image
* Address comments
* marshal body from map
* use interpolated query instead of raw query
* fix test
* filter out empty queries
* fix go linting problem
* use new query field language name
* improve variable tests
* add better tests for interpolate variable
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
* force enable catalog based on backend config
* update comments
* chore(plugin-catalog): remove config page in favour of backend flag
* docs(plugin-catalog): update readme
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* add support for handling preprocessors in the backend
* add preprocessor tests
* use uppercase for constants
* add super label component
* remove error message from query editor since its not working (probably cause onDataError doesnt work anymore)
* use cheat sheet instead of help
* add return type annotation for projects
* add support for preprocessing. replace segment comp with select. change components names and refactoring
* cleanup
* more pr feedback
* fix annotations editor
* rename aggregation component
* fix broken test
* remove unnecessary cast
* fix strict errors
* fix more strict errors
* remove not used prop
* update docs
* use same inline label for annotation editor
* fix react prop warning
* disable preprocessing for distribution types
* using new default values for reducer
* auto select 'rate' if metric kind is not gauge
* fix create label format
* pr feedback
* more pr feedback
* update images
* remove text alignment, per-box hover for grid, fix mergeValues
* unconditionally set spanNulls = -1
* fix stroke width offset math
* split multi-hover, so only single mark overlays in grid mode
* restore alignValue in state-timeline
* better descriptions, maybe
* init field.config.custom if necessary
* don't show last out-of-view value
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Loki/Prometheus: Improve label browser performance
- raise limits
- introduce debounce for Metrics browser filter fields (not done for Loki)
- discard facetting responses when selector was already changed again by user
* Clean up comments and imports
* [Alerting]: Add sensugo notification channel
* Apply suggestions from code review
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
* Do not include labels with concatenated rule UID and names
* Modifications after syncing with main
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
* VizWrapper to handle some state
* alertingqueryrunner first edition
* added so we always set name and uid when changing datasource.
* wip.
* wip
* added support for canceling requests.
* util for getting time ranges for expression queries
* remove logs, store data in state
* merge from run branch
* incremental commit
* viz working
* added structure for marble testing.
* paddings and move viz picker
* less height for viz, less width on rows
* change so the expression buttons doesnt submit form.
* fixed run button.
* replaced mocks with implementation that will set default query + expression.
* merge with run queries
* fixed so we set a datasource name for the default expression rule.
* improving expression guard.
* lots of styling fixes for viz
* adding placeholder for relative time range.
* fixed story.
* added basic structure to handle open/close of time range picker.
* removed section from TimeOptions since it isn't used any where.
* adding mapper and tests
* move relativetimepicker to its own dir
* added some simple tests.
* changed test.
* use relativetimerangeinput
* redo state management
* refactored the tests.
* replace timerange with relativetimerange
* wip
* wip
* did some refactoring.
* refactored time option formatting.
* added proper formatting and display of time range.
* add relative time description, slight refactor of height
* fixed incorrect import.
* added validator and changed formatting.
* removed unused dep.
* reverted back to internal function.
* fixed display of relative time range picker.
* fixed failing tests.
* fixed parsing issue.
* fixed position of time range picker.
* some more refactorings.
* fixed validation of really big values.
* added another test.
* restored the step2 check.
* fixed merge issue.
* Update packages/grafana-ui/src/components/Forms/RadioButtonGroup/RadioButtonGroup.tsx
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* reverted change.
* fixed merge conflict.
* fixed todo.
* sort some paddings
* replace theme with theme2
Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Elasticsearch: don't add bucket aggregations when importing log queries
* Elasticsearch: Do not render Bucket Aggs editor if query contains a 'single metric' metric
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.
* Show log details in Logs panel
* Add hide log details as panel option
* Refactor tests to use testing library
* Change hideLogDetails to enableLogsDetails
* Add enableLogDetails to test file
* Dashboard: Fix editing panel with auto-refresh
- Add default hidden and disabled auto-refresh option on the editing panel
- Extend unit test for DashboardModel
- Add unit test DashNavTimeControls component
* Alerting: Allow the notifier to log
The notifier upstream code uses go-kit as its logging library. The
grafana specific logger is not compatible with this API. In this PR, I
have created a wrapper that implements io.Writer to make them
compatible.
* Use state.eventBridge for errors only if angular editor (some SQL data sources are still listening on this)
* Update public/app/features/explore/state/query.ts
* Update public/app/features/explore/state/query.ts
* TextArea: updates story from knobs to control
* removed the cols control since it has no effect on component
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Tables: updates story from knobs to control
* removes the Descending and sortByDisplayName controls since they have no effect on component
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* build(yarn): run yarn-deduplicate on lock file
* chore(npm): clean up moment dependencies
* chore(npm): move dev dependencies out of dependencies
* chore(npm): bump moment-timezone to fix TS errors
* chore(npm): move dev dependencies to devDependencies in package.json
This patch adds metrics to support instrumenting the accesscontrols package.
It also instruments the accesscontrol evaluator and the permissions function.
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* add tests
* CloudWatch: Allow use of missing AWS namespaces using custom metrics
* CloudWatch: Allow use of missing AWS namespaces using custom metrics
* add field to plugin meta
* only show cache settings if pluginMeta has "isBackend"
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Devenv: add block for es 5.0, provisioned datasource & dashboard
* Trasnsform script property based on running ES version
* Handle different scripts format in BE
* Timeline: Text align option, but does not work
* working text alignment
* Refactoring and fixing rendering text values on the right edge that does not fit
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Update dashboard_snapshot.go
This is to address: https://github.com/grafana/grafana/issues/33665
The key and deleteKey fields are not honoured when creating a snapshot with external:true set
* removed whitespace
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).
* Add e2e test for exemplars flow
* Check if data source is created
* Lets see what is going on
* Try again
* Updating the image maybe?
* Revert "Updating the image maybe?"
This reverts commit 968b44b0d9.
* Try with force
* Use electron
* Wait for new url?
* Wait?????
* Should be good now
* Revert e2e recording
* MinMax: Highlight issues with skipping field overrides
* check global range
* more selective
* basic test
* moved into getFieldDisplayValues
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Initial design for new viz colors
* added unit tests
* Progress
* Updated selected color
* Use old named color names and colors to begin with
* Updates
* Fixing tests
* Progress
* Updates
* updating
* fixing tests
* Using some named colors
* renames && fixes
* remove plural
* fixed tests
* add uninstall flow
* add install flow
* small cleanup
* smaller-footprint solution
* cleanup + make bp start auto
* fix interface contract
* improve naming
* accept version arg
* ensure use of shared logger
* make installer a field
* add plugin decommissioning
* add basic error checking
* fix api docs
* making initialization idempotent
* add mutex
* fix comment
* fix test
* add test for decommission
* improve existing test
* add more test coverage
* more tests
* change test func to use read lock
* refactoring + adding test asserts
* improve purging old install flow
* improve dupe checking
* change log name
* skip over dupe scanned
* make test assertion more flexible
* remove trailing line
* fix pointer receiver name
* update comment
* add context to API
* add config flag
* add base http api test + fix update functionality
* simplify existing check
* clean up test
* refactor tests based on feedback
* add single quotes to errs
* use gcmp in tests + fix logo issue
* make plugin list testing more flexible
* address feedback
* fix API test
* fix linter
* undo preallocate
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* fix linting issue in test
* add docs placeholder
* update install notes
* Update docs/sources/plugins/marketplace.md
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
* update access wording
* add more placeholder docs
* add link to more info
* PR feedback - improved errors, refactor, lock fix
* improve err details
* propagate plugin version errors
* don't autostart renderer
* add H1
* fix imports
* feat(bundled-plugins): introduce marketplace-app to the repo
* chore(marketplace-app): remove backend
* feat(marketplace): nav is only visible to admins
* feat(marketplace): use gnet api
* refactor(marketplace): move styles to theme2 move card concerns to card component
* feat(marketplace): introduce loaders, clean up styles
* refactor(marketplace): wip - debugging for api endpoints
* feat(grafana-ui): introduce height prop to Layout components
* refactor(marketplace): clean up org details component
* fix(marketplace): display search results without active filters
* refactor(marketplace): use grafana api for install/uninstall
* refactor(marketplace): remove pluginDir
* feat(marketplace): clean up Library page
* fix(plugins): get panel plugins from meta for newly installed plugins
* fix(marketplace): fix multiple renders of InstallControls when installing/uninstalling plugins
* refactor(marketplace): componentise the loader
* chore(marketplace): remove unsigned plugins option
* refactor(marketplace): remove includeUnsigned from codebase
* refactor(marketplace): prefer useStyles over useTheme
* docs(marketplace): remove changelog and update readme
* Apply suggestions from code review
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* refactor(marketplace): prefer module over class for api
* refactor(marketplace): move updatePlugin to api
* refactor(marketplace): add PluginMeta to api to please TS
* feat(marketplace): always include pre-release in semver check
* chore(marketplace): remove redundant arch install code. backend handles it now
* feat(marketplace): add a link to browse page if library is empty
* refactor(marketplace): replace status with isLoading boolean for hooks
* refactor(marketplace): clean up async functions in InstallControls
* fix(marketplace): setInstalled false on successful uninstall
* include marketplace in bundled plugin test
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* add uninstall flow
* add install flow
* small cleanup
* smaller-footprint solution
* cleanup + make bp start auto
* fix interface contract
* improve naming
* accept version arg
* ensure use of shared logger
* make installer a field
* add plugin decommissioning
* add basic error checking
* fix api docs
* making initialization idempotent
* add mutex
* fix comment
* fix test
* add test for decommission
* improve existing test
* add more test coverage
* more tests
* change test func to use read lock
* refactoring + adding test asserts
* improve purging old install flow
* improve dupe checking
* change log name
* skip over dupe scanned
* make test assertion more flexible
* remove trailing line
* fix pointer receiver name
* update comment
* add context to API
* add config flag
* add base http api test + fix update functionality
* simplify existing check
* clean up test
* refactor tests based on feedback
* add single quotes to errs
* use gcmp in tests + fix logo issue
* make plugin list testing more flexible
* address feedback
* fix API test
* fix linter
* undo preallocate
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* fix linting issue in test
* add docs placeholder
* update install notes
* Update docs/sources/plugins/marketplace.md
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
* update access wording
* add more placeholder docs
* add link to more info
* PR feedback - improved errors, refactor, lock fix
* improve err details
* propagate plugin version errors
* don't autostart renderer
* add H1
* fix imports
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
* Fix tooltip not closing
* make this a bit less hacky
* use a more specific element for the mouseleave event
* Make sure we limit running of effect
* Remove console log
* Probably don't need useCallback
* adding placeholder for relative time range.
* fixed story.
* added basic structure to handle open/close of time range picker.
* removed section from TimeOptions since it isn't used any where.
* adding mapper and tests
* move relativetimepicker to its own dir
* added some simple tests.
* changed test.
* use relativetimerangeinput
* redo state management
* refactored the tests.
* replace timerange with relativetimerange
* wip
* wip
* did some refactoring.
* refactored time option formatting.
* added proper formatting and display of time range.
* add relative time description, slight refactor of height
* fixed incorrect import.
* added validator and changed formatting.
* removed unused dep.
* reverted back to internal function.
* fixed display of relative time range picker.
* fixed failing tests.
* fixed parsing issue.
* fixed position of time range picker.
* some more refactorings.
* fixed validation of really big values.
* added another test.
Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
* Rendering: add CSV rendering support
* Rendering: save csv files into a separate folder
* add missing field
* Renderer: get filename from renderer plugin
* apply PR suggestions
* Rendering: remove old PhantomJS error
* Rendering: separate RenderCSV and Render functions
* fix alerting test
* Rendering: fix handling error in HTTP mode
* apply PR feedback
* Update pkg/services/rendering/http_mode.go
Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>
* apply PR feedback
* Update rendering metrics with type label
* Rendering: return error if not able to parse header
* Rendering: update grpc generated file
* Rendering: use context.WithTimeout to render CSV too
Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>
* RangeSlider: updates story from knobs to control
* changed the orientation control to type Select
* removes tooltipAlwaysVisible control since it crashes the story
* Add exploration option to node layout
* Add hidden node count
* Add grid layout option
* Fix panning bounds calculation
* Add legend with sorting
* Allow sorting on any stats or arc value
* Fix merge
* Make sorting better
* Reset focused node on layout change
* Refactor limit hook a bit
* Disable selected layout button
* Don't show markers if only 1 node is hidden
* Move legend to the bottom
* Fix text backgrounds
* Add show in graph layout action in grid layout
* Center view on the focused node, fix perf issue when expanding big graph
* Limit the node counting
* Comment and linting fixes
* Bit of code cleanup and comments
* Add state for computing layout
* Prevent computing map with partial data
* Add rollup plugin for worker
* Add rollup plugin for worker
* Enhance data from worker
* Fix perf issues with reduce and object creation
* Improve comment
* Fix tests
* Css fixes
* Remove worker plugin
* Add comments
* Fix test
* Add test for exploration
* Add test switching to grid layout
* Apply suggestions from code review
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Remove unused plugin
* Fix function name
* Remove unused rollup plugin
* Review fixes
* Fix context menu shown on layout change
* Make buttons bigger
* Moved NodeGraph to core grafana
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Enterprise changes to the Drone pipelines
This is basically a no-op in this repository, except for the fact that the grafanabot personal access token will now be fetched from Vault instead of repository secrets
This will pave the way for us to fetch all secrets from Vault
* Update star files from enterprise
* Add missingn newline
* Store queries that were run to get log results
* Fix typing
* Update public/app/features/explore/Logs.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Add changes based on feedback
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* [WIP] Metrics browser
* Removed unused import
* Metrics selection logic
* Remove redundant tests
All data is fetched now regardless to the current range so test for checking reloading the data on the range change are no longer relevant.
* Remove commented out code blocks
* Add issue number to todos
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Update UI
* Update UI, return spinner
* Add title to Scroll to top button
* Update public/app/features/explore/Logs.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Update public/app/features/explore/LogsNavigation.test.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Remove unnecessary memoization
* Update public/app/features/explore/LogsNavigationPages.tsx
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Adds support for Tooltip in BarChartPanel
* Revert some formatting
* Remove BarChart story
* BarChart: move visualization to core
* BarChart: enable series toggling via legend
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Convert credentials form to a functional component
* Encapsulation of Azure credentials logic
* Fix selection of subscriptions
* Load subscriptions on init and save options only if they're unsaved
* Functions for resolution of routes
* Resolve routes of all API requests
* Reset default value if not found anymore
* Fix tests
* Symbol to conceal secret
* Adds support for Tooltip in BarChartPanel
* Revert some formatting
* Remove BarChart story
* BarChart: move visualization to core
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* alternative mapping editor
* alternative mapping editor
* values updating
* UI updates
* remove empty operators
* fix types
* horizontal
* New value mapping model and migration
* DataSource: show the uid in edit url, not the local id (#33818)
* update mapping model object
* Update to UI
* fixing ts issues
* Editing starting to work
* adding missing thing
* Update display processor to use color from value mapping
* Range maps now work
* Working on unit tests for modal editor
* Updated
* Adding new NullToText mapping type
* Added null to text UI
* add color from old threshold config
* Added migration for overrides, added Type column
* Added compact view model with color edit capability
* [Alerting]: store encrypted receiver secure settings (#33832)
* [Alerting]: Store secure settings encrypted
* Move encryption to the API handler
* CloudMonitoring: Migrate config editor from angular to react (#33645)
* fix broken config ctrl
* replace angular config with react config editor
* remove not used code
* add extra linebreak
* add noopener to link
* only test jwt props that we actually need
* Elasticsearch: automatically set date_histogram field based on data source configuration (#33840)
* Docs: delete from high availability docs references to removed configurations related to session storage (#33827)
* docs: delete from high availability docs references to removed configurations related to session storage
* docs: remove session storage mention and focus on the auth token implementation
* fix postgres to have precision of ms (#33853)
* Use ids for enterprise nav model items (#33854)
* Alerting: Disable dash alerting if NG enabled (#33794)
* Scuemata: Add grafana-cli cue schema validation to CI (#33798)
* Add scuemata validation in CI
* Fixes according to reviewer's comments
* Ensure http client has no timeout (#33856)
* Redact sensitive values before logging them (#33829)
* use a common way to redact sensitive values before logging them
* fix panic on missing testCase.err, simplify require checks
* fix a silly typo
* combine readConfig and buildConnectionString methods, as they are closely related
* Tempo: Search for Traces by querying Loki directly from Tempo (#33308)
* Loki query from Tempo UI
- add query type selector to tempo
- introduce linkedDatasource concept that runs queries on behalf of another datasource
- Tempo uses Loki's query field and Loki's derived fields to find a trace matcher
- Tempo uses the trace-to-logs mechanism to determine which dataource is linked
Loki data loads successfully via tempo
Extracted result transformers
Skip null values
Show trace on list id click
Query type selector
Use linked field trace regexp
* Review feedback
* Add isolation level db configuration parameter (#33830)
* add isolation level db configuration parameter
* add isolation_level to default.ini and sample.ini
* add note that only mysql supports isolation levels for now
* mention isolation_level in the documentation
* Update docs/sources/administration/configuration.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>
* Drawer: fixes title overflowing its container (#33857)
* Timeline: move grafana/ui elements to the panel folder (#33803)
* revendor loki with new Tripperware (#33858)
* live: move connection endpoint to api scope, fixes#33861 (#33863)
* OAuth: Add support for empty scopes (#32129)
* add parameter empty_scopes to override scope parameter with empty value and thus be able to authenticate against IdPs without scopes. Issue #27503
Update docs/sources/auth/generic-oauth.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* updated check according to feedback
* Update generic-oauth.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Prometheus: Fix exemplars hover disappearing and broken link (#33866)
* Revert "Tooltip: eliminate flickering when repaint can't keep up (#33609)"
This reverts commit e159985aa2.
* Fix exemplar linking
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Removed content as per MarcusE's suggestion in https://github.com/grafana/grafana/issues/33822. (#33870)
* Fixed grammar usage. (#33871)
* Explore: Wrap each panel in separate error boundary (#33868)
* New Panel: Histogram (#33752)
* Sanitize PromLink button (#33874)
* Refactor and unify option creation between new visualizations (#33867)
* Refactor and unify option creation between new visualizations
* move to grafana/ui
* move to grafana/ui
* resolve duplicate scale config
* more imports
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Live: do not show connection warning when on the login page (#33865)
* enforce receivers align with backend type when posting AM config (#33877)
* special values
* merge fix
* Document `hide_version` flag (#33670)
Unauthenticated users can be barred from being shown the current Grafana server version since https://github.com/grafana/grafana/pull/24919
* GraphNG: always use "x" as scaleKey for x axis (#33884)
* Timeline: add support for strings & booleans (#33882)
* Chore(deps): Bump hosted-git-info from 2.8.5 to 2.8.9 (#33886)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.5 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.9)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* merge with torkel
* add empty special character
* Fixed centered text in special value match select
* fixed unit tests
* Updated snapshot
* Update dashboard page
* updated snapshot
* Fix more unit tests
* Fixed test
* Updates
* Added back tests
* Fixed doc issue
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Erik Sundell <erik.sundell@grafana.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Daniel dos Santos Pereira <danield1591998@gmail.com>
Co-authored-by: ying-jeanne <74549700+ying-jeanne@users.noreply.github.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
Co-authored-by: David <david.kaltschmidt@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
Co-authored-by: Owen Diehl <ow.diehl@gmail.com>
Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
Co-authored-by: jvoeller <48791711+jvoeller@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Co-authored-by: Tristan Deloche <tde@hey.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Unify tooltip options across visualizations
* Update tests
* use addTooltipOptions in piechart
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* fix(grafana-ui): re-export commonOptionsBuilder namespace for api-extractor to work
* docs(grafana-ui): add docblock annotations for exported interfaces
* docs(grafana-ui): export ScaleDistribution from uplot
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>
* Elasticsearch: use proper semver strings to identify ES version
* Update BE & tests
* refactor BE tests
* refactor isValidOption check
* update test
* Update pkg/tsdb/elasticsearch/client/client.go
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Update pkg/tsdb/elasticsearch/client/search_request_test.go
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Remove leftover FIXME comment
* Add new test cases for new version format
* Docs: add documentation about version dropdown
* Update docs/sources/datasources/elasticsearch.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update provisioning documentation
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* WIP: intial structure
* Refactor: adds create library element endpoint
* Feature: adds delete library element
* wip
* Refactor: adds get api
* Refactor: adds get all api
* Refactor: adds patch api
* Refactor: changes to library_element_connection
* Refactor: add get connections api
* wip: in the middle of refactor
* wip
* Refactor: consolidating both api:s
* Refactor: points front end to library elements api
* Tests: Fixes broken test
* Fix: fixes delete library elements in folder and adds tests
* Refactor: changes order of tabs in manage folder
* Refactor: fixes so link does not cover whole card
* Update pkg/services/libraryelements/libraryelements.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/libraryelements/libraryelements_permissions_test.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/libraryelements/database.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: changes after PR comments
* Update libraryelements.go
* Chore: updates after PR comments
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor and unify option creation between new visualizations
* move to grafana/ui
* move to grafana/ui
* resolve duplicate scale config
* more imports
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* add isolation level db configuration parameter
* add isolation_level to default.ini and sample.ini
* add note that only mysql supports isolation levels for now
* mention isolation_level in the documentation
* Update docs/sources/administration/configuration.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>
* Loki query from Tempo UI
- add query type selector to tempo
- introduce linkedDatasource concept that runs queries on behalf of another datasource
- Tempo uses Loki's query field and Loki's derived fields to find a trace matcher
- Tempo uses the trace-to-logs mechanism to determine which dataource is linked
Loki data loads successfully via tempo
Extracted result transformers
Skip null values
Show trace on list id click
Query type selector
Use linked field trace regexp
* Review feedback
* use a common way to redact sensitive values before logging them
* fix panic on missing testCase.err, simplify require checks
* fix a silly typo
* combine readConfig and buildConnectionString methods, as they are closely related
* docs: delete from high availability docs references to removed configurations related to session storage
* docs: remove session storage mention and focus on the auth token implementation
* fix broken config ctrl
* replace angular config with react config editor
* remove not used code
* add extra linebreak
* add noopener to link
* only test jwt props that we actually need
* Initial work
* WIP add cursor in debug panel
* shared cursor.sync filter
* explicit uplot events
* explicit uplot events
* uplot events
* uplot events
* depend on master uplot
* sync sync sync
* Fix merge
* Get rid of PlotSyncContext and sync tooltip positions
* make sync optional
* Improve shared tooltip positioning
* Plugins: add level and signature badges to plugin details page (#33553)
* feat(grafana-ui): badge can accept react node for text, add shield-exclamation to icons
* feat(plugins): add PluginSignatureType type
* feat(pluginpage): introduce PluginSignatureDetailsBadge. Fix sidebar icon margin
* feat(pluginlistpage): update filterinput placeholder, introduce filter by plugin type
* Variables: Removes the never refresh option (#33533)
* Variables: Removes the never refresh option
* Tests: fixes DashboardModel repeat tests
* Tests: fixs snapshots
* Tests: fixes processVariable test
* Tests: fixes DashboardModel tests
* PageLayout: Fixes max-width breakpoint so that it triggers only when there is room for margin+ (#33558)
* 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
* Library panels: Adds description to library panels tab (#33428)
* CodeOwners: Set owners of unified alerting migration (#33571)
* ButtonSelect: updates component with the new theme model (#33565)
* EmptySearchResult: updates component with the new theme model (#33573)
* DashboardSettings: Slight design tweak to fix page toolbar padding and align design (#33575)
* DashboardSettings: Slight design tweak to fix page toolbar padding and align design
* Fixed font weight
* Removed comment
* Update
* gitignore: Ignore files for accesscontrol provisioning (#33577)
* Alerting/metrics (#33547)
* moves alerting metrics to their own pkg
* adds grafana_alerting_alerts (by state) metric
* alerts_received_{total,invalid}
* embed alertmanager alerting struct in ng metrics & remove duplicated notification metrics (already embed alertmanager notifier metrics)
* use silence metrics from alertmanager lib
* fix - manager has metrics
* updates ngalert tests
* comment lint
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>
* cleaner prom registry code
* removes ngalert global metrics
* new registry use in all tests
* ngalert metrics impl service, hack testinfra code to prevent duplicate metric registrations
* nilmetrics unexported
* Add note to Snapshot API doc to specify that user has to provide the entire dashboard model (#33572)
* Added note as suggested by Macus E.
* Update docs/sources/http_api/snapshot.md
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
* Alerting: backend "ng" code cleanup (#33578)
* 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
* Live: persisting last message in cache for broadcast scope (#32938)
* Alerting: Load annotations from rule into State cache (#33542)
for https://github.com/grafana/alerting-squad/issues/127
* add template for dashboard url parameters (#33549)
* Update dashboard-links.md
parameters with plain text like `var-something=value` can make confusion.
template it to clarify .
* describe way for template link.
* 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
* Build: Fix with cleanup call maybe? (#33590)
* add selector for code editor (#33554)
* broadcast over eventBus
* broadcasting to eventbus (but not useing it yet)
* merge master
* moved to context
* fix yarn.lock
* update snapshot
* Fix direct state mutation
* Persist location state on partial updates
* GraphNG- use getStream rather than subscribe
* Sync LegacyGraphHoverEvent with GraphNG
* Chenge plotRef signature
* use subscription
* subscription
* one fewer file
* Update types
* Remove unnecessary filtering
* Disable cursor sync when in edit mode
* GraphNG - bring back logging
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
Co-authored-by: gamab <gamab@users.noreply.github.com>
Co-authored-by: Owen Diehl <ow.diehl@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
Co-authored-by: Nagle Zhang <nagle.zhang@sap.com>
Co-authored-by: Erik Sundell <erik.sundell@grafana.com>
* Clarify active user restrictions
Add language around licensing details, based on confusion form some customers.
* wording update for consistency
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* remove dash
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* wording improvement
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* orgs -> organizations
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* remove extra space
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* org -> organization
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* add description and update name of licensing role
also make editor/admins terminology more consistent.
* update "licensing role" to "licensed role"
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
* PanelEdit: Adds raw data toggle to quickly be able to view data in table form
* With transforms
* Updated name for toggle
* refactoring and added e2e test
* Support options
* fixing e2e
* AuthType in route configuration
* Pass interpolated auth parameters to token provider
* Unit tests
* Update after review
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Fixes#33669Closed#33732
* Create basic prototype for Loki integration
* Simplify importing queries
* Code clean-up
* Add test coverage and info box
* Remove test data script
* Update help
* Use less space for mappings info
* Make help screen dismissable
* Make mappings help more generic
* Convert learn more to a link
* Remove unused param
* Use a link Button for help section
* Add an extra line for better formatting
* Update public/app/plugins/datasource/graphite/configuration/MappingsHelp.tsx
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update public/app/plugins/datasource/graphite/configuration/MappingsHelp.tsx
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Re-arrange lines
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* support default
* fix
* fix
* fix better
* Refactor: simplifies the logic a bit and changes test description
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* check for jaeger env variables if tracing address configuration is empty
* add tests to ensure jaeger host/port variables override the settings
* allow default host and custom port, too
* disallow missing tracing.jaeger section in the config
* check for all errors in tests
* make parseSettings() return an error
* LibraryPanels: Adds folder filter
* Refactor: Adds folder filter to library search
* Refactor: splits huge function into smaller functions
* LibraryPanels: Adds Panels Page to Manage Folder tabs (#33618)
* Chore: adds tests to LibraryPanelsSearch
* Refactor: Adds reducer and tests
* Chore: changes GrafanaThemeV2
* Refactor: adds folderName to get all result
* Refactor: adds folderName to get result
* Refactor: adds folder name to LibraryPanelDTOMeta
* Refactor: adds folder name to lbirary panels result
* Chore: reverts public/app/routes/routes.tsx to master
* Minor style tweak
* Refactor: adds folder uid to meta
* Chore: updates after PR comments
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* nest cache by orgID, ruleUID, stateID
* update accessors to use new cache structure
* test and linter fixup
* fix panic
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* add comment to identify what's going on with nested maps in cache
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Quota: Extend service to set limit on alerts
* Add test for applying quota to alert rules
* Apply suggestions from code review
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Get used alert quota only if naglert is enabled
* Set alert limit to zero if nglalert is not enabled
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* alertingqueryrunner first edition
* added so we always set name and uid when changing datasource.
* wip.
* wip
* added support for canceling requests.
* util for getting time ranges for expression queries
* remove logs, store data in state
* added structure for marble testing.
* change so the expression buttons doesnt submit form.
* fixed run button.
* replaced mocks with implementation that will set default query + expression.
* fixed so we set a datasource name for the default expression rule.
* improving expression guard.
* Update public/app/features/alerting/components/AlertingQueryEditor.tsx
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* fixed some nits.
* some refactoring after feedback.
* use grafanthemev2
* rename grafanatheme
* fixing so we convert to correct relative time range.
* added some more tests.
* fixing so duplicating query works.
* added some more tests without marbles.
* small refactoring to share code between runRequest and alerting query runner.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* TimeSeries: First take on uplot thresholds rendering
* Updating theme for color picker and fixing issues
* Updating theme for color picker and fixing issues
* Minor progress
* Added test dashboard
* Adding transparent and text colors to color picker and making them visible
* Good progress on migrations
* Fixed selected issue in color picker
* Fixes
* migration fix
* Fixed test
* Fixing line rendering and refactoring
* Minor ordering fix
* fixed test
* Draw thresholds before axes & series and other tweaks
* Update packages/grafana-ui/src/components/uPlot/config/UPlotThresholds.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Following discussion in grafana/grafana-enterprise#1292, removing
org-scoped users scopes to make it clear that the local organization is
the default and the alternative to that is a global scope (for a select
few endpoints)
* Alerting: Support for alerting for react panels, and lots of fixes to alert annotations for both react and angular
* Fix showing annotations in panel edit
* Update dashboard-links.md
parameters with plain text like `var-something=value` can make confusion.
template it to clarify .
* describe way for template link.
* tests: Undo cleanup in goroutine
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Server: Implement timeout waiting for it to shut down
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Theme: Page styles move to emotion global styles and design tweaks
* More style tweaks
* tweaks
* Updating snapshots
* Another fix
* Another fix
* minor fix
* More style tweaks to page toolbar and alert rule page
* minor polish
this dashboard is most useful when being able to look at a service in particular. I tried making a multi-value but it did not produce good results. Having to choose, seeing a single service's metrics is better than the busy panels when all services are lumped together.
Signed-off-by: naseemkullah <naseem@transit.app>
* 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>
* Move fitlering and deduplication to comnponent to enable future caching
* Clean up LogsMetaInfo
* Update
* Memoize component
* Fix type errors
* Clean uo
* Add tests for filtering in combination with deduplication
* Fix fialure when adding state annotations
* Fix get org rules API
Do not fail response if user has no access to view a namespace.
Do not include the namespace in the response instead.
* lint
* initial commit.
* Some more improvements to the expression data source support.
* added tests to verify that time range picker and data source picker only is visible when callbacks is passed to row.
* fixing issue with filter in alerting list.
* minor refactoring.
* removed guarding code, should be fixed in backend.
* cleaning the data query if we change to a different data source.
* WIP updating getColorForTheme
* Progress
* More fixes
* Updating more parts
* Fixing unit tests
* Fixing more tests
* Fixing storybook issues
* More refactoring
* Fixed test
* feat(iconbutton): introduce variant for red and blue icon buttons
* refactor(iconbutton): give variants breathing space in story
* docs(iconbutton): add docblock comment for variant prop
* refactor(iconbutton): prefer secondary to undefined variant prop and add default
* refactor(iconbutton): use icon color for hover
* chore: expose theme types / functions
* fix(grafana-ui): withTheme2 extends themeable2
* feat: migrate page components to use new theme
* refactor(pages): replace legacy form components with latest form components
* refactor(dashboardimport): update page component to use theme spacing
* refactor(alerting-ng): update page component to use v2 theme
* test(dashboardpage): update test for v2 theme
* test(apikeyspage): update test to select InlineSwitch component
* test(createteam): update snapshot
* refactor(playlist): update page components to use v2 theme
* refactor(page): put back classes on page-container and background colors
* HelpModal: Migrates to new style
* Alerting: Migrates how to do alerting modal to React
* ApiKeysModal: migrates to new theme
* Dashboard: View dasboard json modal migrated to React and new theme
* PluginPage: migrates update plugin modal to react and new theme
* Chore: deprecates events and functions
* Simplify help modal
* Updated json modal to use Modal.ButtonRow
* Tweak to api key design
* Tests: updates snapshot
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
In the case permissions has been added on dashboard(s). Later permissions for the
parent folder of the dashboard is edited in such a way that dashboard in that folder
has a permission that is a duplicate of an inherited one. This PR changes so that
duplicate permissions are now filtered out from /api/dashboards/id/<dashboard id>/permissions.
Duplicate permission are not filtered out if the permission on dashboard is higher
than on the inherited folder.
Fixes#33296
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Tweaks to piechart and theme
* Adds unsubscribe to events and move out to separate hook
* reverted constrast change
* Minor refactor after review feedback
* chain the subs
* Encapsulate settings with a provider with support for runtime reloads
* SettingsProvider: reload is controlled by the services
* naive impl of reload handlers for settings
* working naive detection on new changes
* Trigger settings reload from API endpoint
* validation step added
* validation of settings
* Fix linting errors
* Replace DB_Varchar by DB_NVarchar
* Reduce settings columns (section, key) lenghts
* wip db update logic
* Db Settings: separate updates and removals
* Fix: removes incorrectly added code
* Minor code improvements
* Runtime settings: moved oss -> ee
* Remove no longer used setting.Cfg SAML-related fields
* Rename file setting/settings.go => setting/provider.go
* Apply suggestions from code review
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
* Minor code improvements on OSS settings provider
* Fix some login API tests
* Correct some GoDoc comments
* Apply suggestions from code review
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
* updates component to use the new theme model
* updates ssome old style to use new theme
* uses correct theme color property
* updates new theme style with correct naming
* Grafana-UI: Switch CodeEditor to @monao-editor/react
* update copy script and paths
* hide context menu
* use __grafana_public_path__
* Fix value and language not updating
* update jaeger tsconfig
* update tsconfig
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* 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>
* If POST, pass params as data not in url string
* Fix metricNameAndLabelsQuery
* Improve test for new functionality
* Add multiple parameters in test scenarios
* Change urlParams to object
* Wip
* Updates to colors to make secondary outline work
* refactor: prefer buttonStyle="text" over variant="link" for text buttons
* revert(button): put back mdx story page
* fix(button): variant link disabled as text disabled
* docs(button): remove link variant from stories
* feat(grafana-ui): introduce basic deprecation notice for button and linkbutton components
* docs(button): update usage of href with button and buttonlink
* feat(button): add grafana/ui to deprecation warning
* refactor(buttons): use a more descriptive name for prop warning function
* test(buttonrow): update snapshots
* refactor(buttons): change prop name from buttonStyle to fill
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Modals: Style update draft
* Modal.ButtonRow to control spacing better in a centralised way
* Remove header border if no tabs
* Added border and made buttons right aligned and changed order of buttons
* Updating the overlay
* Tweaks to paddings
* Updated share modals
* Elasticsearch: Add generic support for template variables
* format MovingAverage settings as numbers
* Move formatting logic to query builder & forma serial_diff settings as numbers
* modify presence check
* add todo
* minor fixes
* transform string values to numbers
* Move casting logic
* Slightly cleaner implementation
* Add BE tests
* Leverage elastic validation when string doesn't resolve to a numeric value
* move newly introduced test to testify
* add FE query_builder tests
* check error
* Parse values to float instead of int
* Fix tests & ParseFloat bit size
* Hoovering over a legend label hightlighs that pie slice
* Change to event bus
* Adds EventBusWithSource to help identify the origin of the event
* Add tests and fix bug with incorrect source
* Clean up PieChart and EventBus a bit
* Fix bug when payload.source is undefined
* Add some documentation and adjust naming
* useState instead of useSetState
* Clean up some more documentation
* Move eventbus to state
* add event bus actions to the debug panel
* add event bus actions to the debug panel
* Try to make the naming a bit clearer
* Try passing eventbus as context
* Fix lint issues
* Move event bus context to panel chrome
* Fix event handler functions
* switch to using useCallback for legend item callbacks
* Remove unused parameters
* Add id to panel fixture of PanelChrome test
* Simplify event source
* Place eventBus inside more generic context
* Push handling of context up the tree to VizLegend
only export usePanelContext and PanelContextProvider
implement isOwnEvent on EventBus
some cleanup
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Move data alignment to panel
* Make uPlot plugins sync, bring back alignment to GraphNG
* Update GraphNG-like panels
* Update explore graph ng
* Cleanup unnecessary tests
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* WIP: initial commit
* Fix: Fixed $timeout call when testing snapshots
* Chore: reverts changes to metrics_panel_ctrl.ts
* Chore: reverts changes to annotations_srv
* Refactor: adds DashboardQueryRunner.run to initdashboard
* Refactor: adds run to dashboard model start refresh
* Refactor: move to own folder and split up into smaller files
* Tests: adds tests for LegacyAnnotationQueryRunner
* Tests: adds tests for AnnotationsQueryRunner
* Tests: adds tests for SnapshotWorker
* Refactor: renames from canRun|run to canWork|work
* Tests: adds tests for AlertStatesWorker
* Tests: adds tests for AnnotationsWorker
* Refactor: renames operators
* Refactor: renames operators
* Tests: adds tests for DashboardQueryRunner
* Refactor: adds mergePanelAndDashboardData function
* Tests: fixes broken tests
* Chore: Fixes errors after merge with master
* Chore: Removes usage of AnnotationSrv from event_editor and initDashboard
* WIP: getting annotations and alerts working in graph (snapshot not working)
* Refactor: fixes snapshot data for React panels
* Refactor: Fixes so snapshots work for Graph
* Refactor: moves alert types to grafana-data
* Refactor: changes to some for readability
* Tests: skipping tests for now, needs rewrite
* Refactor: refactors out common static functions to utils
* Refactor: fixes resolving annotations from dataframes
* Refactor: removes getRunners/Workers functions
* Docs: fixes docs errors
* Docs: trying to fix doc error
* Refactor: changes after PR comments
* Refactor: hides everything behind a factory instead
* Refactor: adds cancellation between runs and explicitly
* set processing time
* merge labels and set on response
* use state cache for adding alerts to rules
* minor cleanup
* add support for NoData and Error results
* rename test
* bring in changes from other PRs tha have been merged
* pr feedback
* add integration test
* close state tracker cleanup on context.Done
* fixup test
* rename state tracker
* set EvaluationDuration on Result
* default labels set as constants
* separate cache and state from manager
* use RWMutex in cache
* set processing time
* merge labels and set on response
* use state cache for adding alerts to rules
* minor cleanup
* add support for NoData and Error results
* rename test
* bring in changes from other PRs tha have been merged
* pr feedback
* add integration test
* close state tracker cleanup on context.Done
* fixup test
* not those annotations
* Access control: Combine permissions through predefined roles
When certain permission is required for built-in role, instead of adding those permissions to the existing predefined roles, we need to have granular predefined roles with those permissions.
* Better copy...
* Adding and fixing tests
* Remove duplicated permission
* refactor(loginpage): migrate custom button styles to use Button component
* refactor(certificationkey): prefer grafana-ui form elements over html elements and classnames
* refactor(axisselector): prefer grafana-ui Button component over html button element
* refactor(input-datasource): replace use of btn class with grafana-ui components
* chore(grafana-ui): delete deprecated ToggleButtonGroup component
* refactor: replace btn and cta-form__close class usage with IconButton
* chore(closebutton): post master merge use v2 theme
* refactor(permissionlist): remove usage of .btn classname
* Wip
* docs(styling): update styling and theme docs import paths
* refactor(alerting): remote btn classnames from TestRuleResult
* refactor(apikeys): prefer grafana-ui Button components over btn classNames
* refactor(folders): prefer grafana-ui Button components over btn classNames
* refactor(teams): prefer grafana-ui Button components over btn classNames
* refactor(datasources): prefer grafana-ui Button components over btn classNames
* refactor: prefer grafana-ui Button components over btn classNames
* Minor style tweak to service buttons
* test: update snapshots related to button changes
* chore(input-datasource): remove unused import declaration
* refactor(loginservicebuttons): rename theme.palette to theme.colors
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* AlertingNG: Fix TODOs in email notification channel
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Test fixup
* Remove the receiver field it is not needed for the email notification
Co-authored-by: Josue Abreu <josue@grafana.com>
* Theme: Update theme layering
* More updates
* Updates to shadows and dropdowns
* Moved panel option group to emotion global styles
* more minor fixes
* [Alerting]: Add alerting endpoint for Query Evaluation
* Fix passing down now parameter
* Add validations and test
* Fix eval queries and expressions test
* Add eval tests
* Card: migrates styles from sass to emotion
* removed LayoutSelector component since it's not used in the codebase
* updates card styles with new color name
* [Alerting]: Fix updating rule group and add test
* Fix updating rule labels
* Set default values for rule no data and error states
if they are missing
* Add test for updating rule
* Test updating annotations
* Apply suggestions from code review
Co-authored-by: gotjosh <josue@grafana.com>
* add test for posting an unknown rule UID
* Fix alert rule validation and add tests
* Remove org id from PostableGrafanaRule
This field was not used; each rule gets the organisation of the user making
the rerquest
* Update pkg/tests/api/alerting/api_alertmanager_test.go
Co-authored-by: gotjosh <josue@grafana.com>
* fix viz
* add datasource picker on query rows in mixed mode
* add timerange, handle add/remove queryrunners
* multiqueryrunner test
* trying things out.
* adding another test to verify running a induvidual query runner will update multirunner.
* cleaned up tests a bit.
* draft version working ok.
* fixing so we base the refId from request targets.
* reenable adding expression
* layout fixes for alerting page
* some cleanup
* cleaning up code that we won't use
* changed so we don't display the time range if params not passed.
* remove unused things in querygroup
* changed button to type button.
* removed timerange from dataQuery and removed multiquery runner.
* minor refactoring.
* renamed callback function to make it more clear what it does.
* renamed droppable area.
* changed so we only display the query editor when selecting threshold.
* removed the refresh picker.
* revert
* wip
* extending with data query.
* timerange fixes
* it is now possible to add grafana queries.
* removed unused type.
* removed expect import.
* added docs.
* moved range converting methods to rangeUtil.
* clean up some typings, remove file
* making sure we don't blow up on component being unmounted.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Made a public constructor in order to instantiate it from the service override
* Removed unused plugins.DataRequestHandler
* Added a Run and RunInitProvisioners methods that can be run from Enterprise
* Adding a mock for Run and RunInitProvisioners as well
* DashboardPanel: migrates styling from sass to emotion
* fixes frontend test
* removed the theme since it doesn't have any use case in the styles
* updates frontend snapshot test
A set of fixes for the GET alert and groups endpoints.
- First, is the fact that the default values where not being for the query params. I've introduced a new method in the Grafana context that allow us to do this.
- Second, is the fact that alerts were never being transitioned to active. To my surprise this is actually done by the inhibitor in the pipeline - if an alert is not muted, or inhibited then it's active.
- Third, I have added an integration test to cover for regressions.
Signed-off-by: Josue Abreu <josue@grafana.com>
* WIP: Add more info ro log line limit, remove redundant info
* Refactor
* Clean up
* Adjust tests
* Adjust spacing
* Add test for new functionality
* Update snapshot
* Change solution, simplify
* Remove redundant variables, makees it more clear
* Update public/app/core/logs_model.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Performance: Standardize lodash imports to use destructured members
Changes lodash imports of the form `import x from 'lodash/x'` to
`import { x } from 'lodash'` to reduce bundle size.
* Remove unnecessary _ import from Graph component
* Enforce lodash import style
* Fix remaining lodash imports
* Remove Revive standalone linter - use it via golangci-lint
* Add revive settings to ignore lint errors for now
* Small fix
* Update to grabpl v0.5.53
* Remove errorCode and warningCode from config
Before these changes the request tracing was added for each route
registered using the routing.RouteRegister, see code. This had the
consequence that middleware executed earlier/later in the request
pipeline was not part of the request tracing middleware life-cycle
which measures the duration of requests among other things.
In the logger middleware we do extract the current distributed trace
identifier, if available, and set that on request info/error log messages.
With these changes we can extract the current distributed trace identifier,
if available, and set that on the contextual HTTP request logger
(models.ReqContext.Logger) which would improve the possibility to correlate
all HTTP request log messages with traces.
In addition, the request tracing middleware is now executed first and last in
the request pipeline and should therefore result in more accurate timing
measurements (request duration).
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* calculate schemaRevision in panel query runner
* schema > structureRev
* calculate revision after apply field overrides
* this.state
* don't apply field overrides if the shape is already the same
* check schema revision
* update snapshots
* feat(piechart): align styles between piechart and graph
* feat(piechart): introduce tooltip options to panel and visualisation
* feat(piechart): get tooltip options working
* feat(piechart): add SeriesTable to visx TooltipInPortal
* refactor(piechart): move getTooltipData out of PieSlice
* docs(piechart): fix storybook story errors
* feat(viztooltip): initial commit of common tooltip types and components
* refactor(viztooltip): rename type as enum and update usage
* refactor(viztooltip): move chart.tooltip into viztooltip and fix imports and typings
* refactor(viztooltip): update import paths and names where used
* docs(infotooltip): fix story import paths
* docs(piechart): fix typings in story
* docs(viztooltip): add public annotations to exported components and types
* init
* autogens AM route
* POST dashboards/db spec
* POST alert-notifications spec
* fix description
* re inits vendor, updates grafana to master
* go mod updates
* alerting routes
* renames to receivers
* prometheus endpoints
* align config endpoint with cortex, include templates
* Change grafana receiver type
* Update receivers.go
* rename struct to stop swagger thrashing
* add rules API
* index html
* standalone swagger ui html page
* Update README.md
* Expose GrafanaManagedAlert properties
* Some fixes
- /api/v1/rules/{Namespace} should return a map
- update ExtendedUpsertAlertDefinitionCommand properties
* am alerts routes
* rename prom swagger section for clarity, remove example endpoints
* Add missing json and yaml tags
* folder perms
* make folders POST again
* fix grafana receiver type
* rename fodler->namespace for perms
* make ruler json again
* PR fixes
* silences
* fix Ok -> Ack
* Add id to POST /api/v1/silences (#9)
Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>
* Add POST /api/v1/alerts (#10)
Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>
* fix silences
* Add testing endpoints
* removes grpc replace directives
* [wip] starts validation
* pkg cleanup
* go mod tidy
* ignores vendor dir
* Change response type for Cortex/Loki alerts
* receiver unmarshaling tests
* ability to split routes between AM & Grafana
* api marshaling & validation
* begins work on routing lib
* [hack] ignores embedded field in generation
* path specific datasource for alerting
* align endpoint names with cloud
* single route per Alerting config
* removes unused routing pkg
* regens spec
* adds datasource param to ruler/prom route paths
* Modifications for supporting migration
* Apply suggestions from code review
* hack for cleaning circular refs in swagger definition
* generates files
* minor fixes for prom endpoints
* decorate prom apis with required: true where applicable
* Revert "generates files"
This reverts commit ef7e975584.
* removes server autogen
* Update imported structs from ngalert
* Fix listing rules response
* Update github.com/prometheus/common dependency
* Update get silence response
* Update get silences response
* adds ruler validation & backend switching
* Fix GET /alertmanager/{DatasourceId}/config/api/v1/alerts response
* Distinct gettable and postable grafana receivers
* Remove permissions routes
* Latest JSON specs
* Fix testing routes
* inline yaml annotation on apirulenode
* yaml test & yamlv3 + comments
* Fix yaml annotations for embedded type
* Rename DatasourceId path parameter
* Implement Backend.String()
* backend zero value is a real backend
* exports DiscoveryBase
* Fix GO initialisms
* Silences: Use PostableSilence as the base struct for creating silences
* Use type alias instead of struct embedding
* More fixes to alertmanager silencing routes
* post and spec JSONs
* Split rule config to postable/gettable
* Fix empty POST /silences payload
Recreating the generated JSON specs fixes the issue
without further modifications
* better yaml unmarshaling for nested yaml docs in cortex-am configs
* regens spec
* re-adds config.receivers
* omitempty to align with prometheus API behavior
* Prefix routes with /api
* Update Alertmanager models
* Make adjustments to follow the Alertmanager API
* ruler: add for and annotations to grafana alert (#45)
* Modify testing API routes
* Fix grafana rule for field type
* Move PostableUserConfig validation to this library
* Fix PostableUserConfig YAML encoding/decoding
* Use common fields for grafana and lotex rules
* Add namespace id in GettableGrafanaRule
* Apply suggestions from code review
* fixup
* more changes
* Apply suggestions from code review
* aligns structure pre merge
* fix new imports & tests
* updates tooling readme
* goimports
* lint
* more linting!!
* revive lint
Co-authored-by: Sofia Papagiannaki <papagian@gmail.com>
Co-authored-by: Domas <domasx2@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
Co-authored-by: gotjosh <josue@grafana.com>
Co-authored-by: David Parrott <stomp.box.yo@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Updated sentence format.
* Added new placeholder page for Enterprise License information, added links also adjusted weights.
* Created new folder license and moved 4 files to here.
* Added aliases.
* link fixes and such
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Fuzzy search prototype
* Aggregate filter and sorting functions for auto-complete suggestions
* Add a test for fuzzy search
* Simplify setting fuzzy search information
* Rename SimpleHighlighter
* Test PartialHighlighter
* Add PartialHighlighter snapshot
* Simplify PartialHighlighter
* Revert env change
* Clean up the code
* Add fuzzy search for labels
* Bring back backwards compatiblity
* Expose search function type only
* Update docs
* Covert snapshot test to assertions
* Fix docs
* Fix language provider test
* Add a test for autocomplete logic
* Clean up
* Mock Editor functions
* Add fuzzy search to Prometheus labels
* Add docs about backwards compatibility
* Simplify main fuzzy search loop
* outside react approach
* fixed ts issues and updated radio button
* css only solution
* Removed a bit
* Updated radio button design and fixed focus state on ToolbarButton
* Fixes
* Added missing fullWidth
* move state tracker tests to /tests
* set default labels on alerts
* handle empty labels in result.Instance
* create annotation on transition to alerting state
* Expose user permissions to the frontend
* Do not include empty scope
* Extend ContextSrv with hasPermission() method
* Add access control types
* Fix type error (make permissions optional)
* Fallback if access control disabled
* Move UserPermission to types
* Simplify hasPermission()
* GraphNG: Use new theme props
* Minor fix to letterspacing in button
* Minor tweaks
* Updated
* Revert to roboto
* Added concept of a dark or white base
* Style updates
* Sass
* Updated light text blue
* updates
* reverting button group design
* Fixed tests
* updates
* Updated tests
* Fallback to default data source in Explore and use uid for history
uid is used to allow changing the name of the datasource and preserve history
* Remove redundant console logs
* set query in rules response
* Theme: tweaking dark theme colors (#33007)
* Library Panels: Add library panel tab to share modal (#32953)
* Explore: Scroll split panes in Explore independently (#32978)
* Change default prometheus to latest and prometheus v1 to prometheus1
* Update README
* Remove prometheus1 block as not used
* Explore: Separatae scrolling in split view
* Update snapshot
* Allow skip migrations in tests via environment variable (#32958)
* Dashboard: Fix issue where Slack notifications won't link to users (#32861)
* DashboardPage: refactored styles from sass to emotion (#32955)
* DashboardPage: refactored styles from sass to emotion
* refactored dashboardPage component to be alot easier to read and understand
* more refactoring...
* more cleaning...
* fixes frontend test
* fixes frontend test- I hope
* fixes frontend test- I hope
* moves dashboard scss styles back to it's standalone file
* GraphNG: use theme font family and size for axis labels (#33009)
* GraphNG: use theme font family and size for axis labels
* fix test
* AlertingNG: Slack notification channel (#32675)
* AlertingNG: Slack notification channel
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Add tests
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Fix review comments
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Fix review comments and small refactoring
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* GraphNG: stacking (#30749)
* First iteration
* Dev dash
* Re-use StackingMode type
* Fix ts and api issues
* Stacking work resurected
* Fix overrides
* Correct values in tooltip and updated test dashboard
* Update dev dashboard
* Apply correct bands for stacking
* Merge fix
* Update snapshot
* Revert go.sum
* Handle null values correctyl and make filleBelowTo and stacking mutual exclusive
* Snapshots update
* Graph->Time series stacking migration
* Review comments
* Indicate overrides in StandardEditorContext
* Change stacking UI editor, migrate stacking to object option
* Small refactor, fix for hiding series and dev dashboard
* VizLegend: sets a min and max value of the seriesCount control in Storybook (#33022)
* Alerting: Filter rules list (#32818)
* Chore: Reduces strict errors (#33012)
* Chore: reduces strict error in OptionPicker tests
* Chore: reduces strict errors in FormDropdownCtrl
* Chore: reduces has no initializer and is not definitely assigned in the constructor errors
* Chore: reduces has no initializer and is not definitely assigned in the constructor errors
* Chore: lowers strict count limit
* Tests: updates snapshots
* Tests: updates snapshots
* Chore: updates after PR comments
* Refactor: removes throw and changes signature for DashboardSrv.getCurrent
* [Alerting]: Several modifications in alert rules (#32983)
* [Alerting]: Use common properties for all rules
* Add Labels in rules
* Fix update ruleGroup API
Return 400 Bad Request response
when the request contains a UID that does not exist
* Check permissions and return namespace id
* Apply suggestions from code review
Co-authored-by: gotjosh <josue@grafana.com>
* WIP (#33025)
* Chore: Bump strict error count limit (#33035)
* set query in rules response
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Dafydd <72009875+dafydd-t@users.noreply.github.com>
Co-authored-by: n-wbrown <n-wbrown@users.noreply.github.com>
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Nathan Rodman <nathanrodman@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: gotjosh <josue@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* [Alerting]: Use common properties for all rules
* Add Labels in rules
* Fix update ruleGroup API
Return 400 Bad Request response
when the request contains a UID that does not exist
* Check permissions and return namespace id
* Apply suggestions from code review
Co-authored-by: gotjosh <josue@grafana.com>
* Chore: reduces strict error in OptionPicker tests
* Chore: reduces strict errors in FormDropdownCtrl
* Chore: reduces has no initializer and is not definitely assigned in the constructor errors
* Chore: reduces has no initializer and is not definitely assigned in the constructor errors
* Chore: lowers strict count limit
* Tests: updates snapshots
* Tests: updates snapshots
* Chore: updates after PR comments
* Refactor: removes throw and changes signature for DashboardSrv.getCurrent
* First iteration
* Dev dash
* Re-use StackingMode type
* Fix ts and api issues
* Stacking work resurected
* Fix overrides
* Correct values in tooltip and updated test dashboard
* Update dev dashboard
* Apply correct bands for stacking
* Merge fix
* Update snapshot
* Revert go.sum
* Handle null values correctyl and make filleBelowTo and stacking mutual exclusive
* Snapshots update
* Graph->Time series stacking migration
* Review comments
* Indicate overrides in StandardEditorContext
* Change stacking UI editor, migrate stacking to object option
* Small refactor, fix for hiding series and dev dashboard
* DashboardPage: refactored styles from sass to emotion
* refactored dashboardPage component to be alot easier to read and understand
* more refactoring...
* more cleaning...
* fixes frontend test
* fixes frontend test- I hope
* fixes frontend test- I hope
* moves dashboard scss styles back to it's standalone file
* Change default prometheus to latest and prometheus v1 to prometheus1
* Update README
* Remove prometheus1 block as not used
* Explore: Separatae scrolling in split view
* Update snapshot
* Testing inter font
* new fonts and global styles
* Added Typography component and storybook
* Moving more global legacy types to emotion global styles
* Updated snapshot
* mapp bold to 500
* Updates
* Fixes and moved html & body styles to emotion
* moved helper function down
* Updated snapshot
* More tweaks
* Updates
* added internal tag
* Updated snapshot
* OAuth: Add strict role mapping
By default the user is assigned the role Viewer if role_attribute_path
doesn't return a role, which is not always desirable. This commit adds a
strict mode, which deny the user access if a role isn't returned.
Fix#26626
* Update docs/sources/auth/generic-oauth.md
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Update docs/sources/auth/generic-oauth.md
* Update .gitignore file with WAN
* Removed WAN from .gitignore
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <aparajita.chatterjee@grafana.com>
* [Alerting]: Fix empty rules evaluation statuses
`GetRuleGroupAlertRules()` requires an non empty namespaceUID
* Include the namespace into the response
* Elasticsearch: Allow omitting field when metric supports inline script
* Add tests for MetricEditor to show a None option
* Add tests for useFields hook
* Alerting: allow elasticsearch metrics without field
* [Alerting]: Use title instead of slug for retrieving the namespace
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Added support for custom user function for mapping custom noOptions messages
* Added new scenario in SegmentAsync.story.tsx
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Alerting: Use a default configuration and periodically poll for new ones
Use a default configuration to make sure we always start the grafana
instance. Then, regularly poll for new ones.
I've also made sure that failures to apply configuration do not stop the
Grafana server but instead keep polling until it is a success.
* Add error handling for unknown units
* Fix test cases
* Add case for empty string
* Changed tests from convey to testify
* Fix lints
* Move regex vars
* Add regex as ng-patterns on alert_tab.html
* Update public/app/features/alerting/partials/alert_tab.html
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Update public/app/features/alerting/partials/alert_tab.html
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Make zero and empty string not throw errors
* Updated validation error comments
* Frequency should allow zero or empty strings
* use checkFrequency instead of ng-pattern
checkFrequency is not triggered if ng-pattern is defined.
* Extract getForValue func - add tests
* Fix linting
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Theming: Updates to select styles and theme model progress
* Progress
* Update menu
* Updated menu group
* Improving button styles
* Added transitions to theme
* solving the hover & selected, focus issues
* Updated snapshot
* adding some colors from figma, but waiting to use them as not enough components use new layer colors
* Updates
* Updates
* Progress
* Renames
* Improvements to theme overview
* updated test
* demo update
* More new theme colors
* Wip new card styles
* Card tweaks hover is not working
* Updates more colors from figma
* Progress
* Progress
* Updated radio button styles
* Progress on new colors
* Progress
* New page toolbar and toolbar button design
* New toolbar button design
* Reverted to older toolbar and button look
* Updated snapshot
* Updated generated files
* Updated design
* Updates
* Added card hover
* Fixed button group
* Updates
* VizLegend: updates story from knobs to controls
* refactored story to be small and concise
* reverted stories to be WithValues and WithNoValues
* fixes the seriesCount control not having effects to the story by using the Effect hook
* Remove singlestat panel from the codebase
* Automatically migrate deprecated panels
* Migrate singlestat to stat when initializing panel
* Singlestat -> gauge detection
* Missing await
* Throw error when panel plugin not found and allow new panels to take names of the deprecated ones
* Make it pretty
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Initial commit, list and edit page working
* Progress
* angular and standard editors work
* Unifying more between annotations list and links list
* Remove submenu visibilty stuff
* Update packages/grafana-data/src/types/annotations.ts
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Review feedback
* fixed checkbox
* Fixes
* test(annotationsettings): initial commit of tests
* delete files brought back by master merge
* update datasourcepicker import path
* update emotion import
* test(linksettings): clean up tests
* Fixed test
* test(annotationssettings): add remaining tests
* docs(grafana-data): export namespace for docs build
* docs(grafana-ui): export ColorValueEditorProps for docs build
* docs(grafana-ui): add docs annotation for ColorValueEditorProps
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Adding a sentence to the index to point people towards the "activate license" page if they want to complete installation of their Grafana Enterprise installation. Also made a minor change to the two sentences before to make them more consistent.
* Made Ursula's copy changes.
* Apply suggestions from code review
Fixed relref and made copy change suggested by Jita.
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* 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>
* Update time-range-controls.md
Adding more examples of relative time instructions, it could hep to newbie people to understand it.
* Apply suggestions from code review
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* moving expressions to components
* move expression type change to util
* rename gel to expressions
* add clasic condition component
* fix types
* incremental checkin
* button styling
* add range inputs
* some logic fixes and layout
* fix remove condition
* hide input if has no value
* typing fix
* Add special check for generic oauth case
* Converted from Convey to testify
* Fix according to reviewer's comments
* More changes according to reviewer's comments
* Handle error if user is not found
* Move generic oauth test from user_test.go to user_auth_test.go
* Update pkg/services/sqlstore/user_auth_test.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Created genericOAuthModule const
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Alerting: Cleanup and move legacy to a legacy file
A quick cleanup of the ngalert/api directory, optimising for an easy
removal of what is will be considered legacy at some point. A quick
summary of what's done is:
- Add a prefix `generated` prefix to files that are auto-generated by
our swagger definitions.
- Create a legacy file to place all the legacy API routes implementation
and helpers. Deleting files that where no longer needed after this
move.
- Rename the `lotex` file to `lotex_ruler`
- Adding a couple of comments here and there.
With this, I hope to organise our code in this directory a bit better
given there's a lot going on.
* Ensure window origin to be stripped from url when using absolute urls
* Update test
* Make sure link interception works for external links
* Apply suggestions from code review
* Review
* add custom HealthCheckError
* allow details from HealthCheckResult to be passed in the error
* pass in details.message from testing status into Alert component
* add chance
* add aria label to read only message
* update tests and add error message tests
* extract HealthCheckResultDetails type out and add comment
* extract TestingStatus interface out
* remove chance from test
* remove chance
* WIP button styles refactoring
* Starting to work
* Tweak form disabled color
* Emotion performance tests
* More benchmarks
* added classnames prop
* Button class names refactor test
* revert to old style generation
* Wrapping up
* Updates
* Updated tests
* Updated
* Progress
* Progress
* Added spacings
* Updated rich color to be more descriptibe
* Added more to getRichColor to showcase how it would work
* Added more to getRichColor to showcase how it would work
* Updated
* Started on storybook
* Rename to palette
* Storybook progress
* Minor update
* Progress
* Progress
* removed unused import
* Updated
* Progress
* Added typography to new theme model
* Added shadows and zindex to new theme
* Updated based on last discussions
* Updated
* Rename shadows
* Moving storybook to new theme, renaming stories and moving to single category
* Updated snapshot
* Updated jsdoc state tags
* Reducing annonying errors
* Table: Fixes table data links so they refer to correct row after sorting
* Tests: adds some basic tests incl sorting
* Refactor: removes dependeny on app
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Move db package WIP
* Implement OSS access control
* Register OSS access control
* Fix linter error in tests
* Fix linter error in evaluator
* Simplify OSS tests
* Optimize builtin roles
* Chore: add comments to the exported functions
* Remove init from ossaccesscontrol package (moved to ext)
* Add access control as a dependency for http server
* Modify middleware to receive fallback function
* Middleware: refactor fallback function call
* Move unused models to enterprise
* Simplify AccessControl type
* Chore: use bool IsDisabled() method instead of CanBeDisabled interface
* Elasticsearch: Fix bucket script variable duplication
* Generate names based on previous value & fix list key
* Fix typos
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Add Explore in azure portal functionality to Grafana AM data sources for Metrics
* fix url
* fix build
* Fix the URL with metric and aggregation
* user new version of metric blade
* use lookup object instead of enum for converting aggregation type
Co-authored-by: joshhunt <josh@trtr.co>
* Return cached alerts for prometheus/api/v1/alerts
* Return not implemented for /prometheus/grafana/api/v1/rules
* Set StartsAt for already alerting states
* Fix tests
* throttle when FPS is low
* fix throttling
* grafanaStreamingPerfBudget
* grafanaStreamingPerfBudget
* change global strategy
* also throttle frontend
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Configure the Jaeger data source with provisioning
We should have a good instruction and example for configuring the Jaeger data source with provisioning. It was hard to find how to add the tarce-to-logs, so I made one.
* Update docs/sources/datasources/jaeger.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>
* Initial commit for state tracking
* basic state transition logic and tests
* constructor. test and interface fixup
* use new sig for sch.definitionRoutine()
* test fixup
* make the linter happy
* more minor linting cleanup
* Alerting: Send alerts from state tracker to notifier
* Add evaluation time and test
Add evaluation time and test
* Add cleanup routine and logging
* Pull in compact.go and reconcile differences
* Save alert transitions and save all state on shutdown
* pr feedback
* WIP
* WIP
* Persist alerts on evaluation and shutdown. Warm cache on startup
* Filter non-firing alerts before sending to notifier
Co-authored-by: Josue Abreu <josue@grafana.com>
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.
* Elasticsearch: Disable Alias field for non-timeseries queries
* Update public/app/plugins/datasource/elasticsearch/components/QueryEditor/index.test.tsx
* 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
* FrontendMetrics: Adds new backend api that frontend can use to push frontend measurements and counters to prometheus
* FrontendMetrics: Adds new backend api that frontend can use to push frontend measurements and counters to prometheus
* Fix naming
* change to histogram
* Fixed go lint
* fix(userslist): introduce pagination to prevent browser crash with large number of users
* test(userlist): fix failing tests
* refactor(userlist): use layout components for spacing
* test(userslist): update snapshots
* TimeSrv: Refactor service to have no dependency on angular
* Fixing reference to function that does not exist
* fixing tests
* Worked around the strange error
* Add validation for grafana recipient
* Alertmanager API implementation (WIP)
* Fix encoding/decoding receiver settings from/to YAML
* Save templates together with the configuration
* update POST to apply latest config
* Alertmanager service enabled by the ngalert toggle
* Silence API integration with Alertmanager
* Apply suggestions from code review
Co-authored-by: gotjosh <josue@grafana.com>
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
* add default arc and don't display stats background without any stats
* Add node graph transform
* Use coloring scheme for the node graph
* Fix type
* Add tests
* Fix and update test
* Fix strict ts errors
* Fix ref handling
* Update test data to connect spans to a parent
* Babel: Updates babel dependencies to latest version
* Fixed problem introduced by babel where calling super with prefedefined this is not supported
* fixing test
* Fixed tests
* Improve fix for QueryCtrl
* Fixed more tests
* Updated tests
* Fix Cannot read property 'length' of undefined in Influx
* Update public/app/plugins/datasource/influxdb/response_parser.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Update public/app/plugins/datasource/influxdb/response_parser.ts
* Revert to original solution
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Alerting: Introduce the silencing interface
The operations introduced are:
- Listing silences
- Retrieving an specific silence
- Deleting a silence
- Creating a silence
Signed-off-by: Josue Abreu <josue@grafana.com>
* Add a comment to listing silences
* Update to upstream alertmanager
* Remove copied code from the Alertmanager
* Initial commit for state tracking
* basic state transition logic and tests
* constructor. test and interface fixup
* use new sig for sch.definitionRoutine()
* test fixup
* make the linter happy
* more minor linting cleanup
* Alerting: Send alerts from state tracker to notifier
* Add evaluation time and test
Add evaluation time and test
* Add cleanup routine and logging
* Pull in compact.go and reconcile differences
* pr feedback
* pr feedback
Pull in compact.go and reconcile differences
Co-authored-by: Josue Abreu <josue@grafana.com>
* wip: consume aws-sdk config in auth http settings
* fix typings
* use sdk regions
* use latest version of grafana/aws-sdk
* use newest sdk
* add comment
* bump sdk
* fix yarn lock file
* fix storybook issue
* upgrade aws-sdk. also use it in grafana ui
* remove not used config
* add aws-sdk as an external dep for grafana in the grafana ui rollup
Co-authored-by: Will Browne <will.browne@grafana.com>
For security reasons, log any SQL connection error
details rather than returning it to the client.
Fixes#26623Fixes#22000
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
I believe it's a mistake in the docs, since http requests against those endpoints are not supposed to be authenticated with API keys.
If I correctly understand Grafana's auth design, the API key is not issued/tied to a user, therefore there is no mechanism to detect who the user is when the request is authenticated with an API key.
Please note there may be other endpoints like this...
* ReleaseNotes: Updated changelog and release notes for 7.5.1
* added link to realease notes.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Fix parsing and displaying Graphite function descriptions
* Update docs
* Add support for inf value
* Remove redundant console.log
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Remove empty line
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Render new email template and fix the title
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* Fix nit
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
* chore(dashboardsettings): introduce deep-diff for diffing dashboard models
* feat(dashboardsettings): initial commit of diff comparision react migration
* feat(dashboardsettings): wip - use json-source-map and monaco editor
* chore(deps): add react-diff-viewer to package.json
* feat(dashboardsettings): take the simplistic road for diff view
* refactor(dashboardsettings): clean up Version Settings components
* chore: delete angular historyListCtrl code
* refactor(dashboardsettings): styling fixes
* Small color tweaks
* refactor(versionhistory): fix issues around summary text. write tests
* test(versionhistory): add test for jsonDiff
* refactor(versionhistory): cleanup utils and reduce dom elements
* test(versionsettings): add tests for comparision view
* test(versionsettings): finialise tests for version history comparison view
* test(versionsettings): remove debug
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Initial commit
* Progress
* Update
* Progress
* updates
* Minor fix
* fixed ts issue
* fixed e2e tests
* More explorations
* Making progress
* Panel options and field options unified
* With nested categories
* Starting to find something
* fix paddings
* Progress
* Breakthrough ux layout
* Progress
* Updates
* New way of composing options with search
* added regex search
* Refactoring to react note tree
* Show overrides
* Adding overrides radio button support
* Added popular view
* Separate stat/gauge/bargauge options into value options and display options
* Initial work on getting library panels into viz picker flow
* Fixed issues switching to panel library panel
* Move search input put of LibraryPanelsView
* Changing design again to have content inside boxes
* Style updates
* Refactoring to fix scroll issue
* Option category naming
* Fixed FilterInput issue
* Updated snapshots
* Fix padding
* Updated viz picker design
* Unify library panel an viz picker card
* Updated card with delete action
* Major refactoring back to an object model instead of searching and filtering react node tree
* More refactoring
* Show option category in label when searching
* Nice logic for categories rendering when searching or when only child
* Make getSuggestions more lazy for DataLinksEditor
* Add missing repeat options and handle conditional options
* Prepping options category to be more flexibly and control state from outside
* Added option count to search result
* Minor style tweak
* Added button to close viz picker
* Rewrote overrides to enable searching overrides
* New search engine and tests
* Searching overrides works
* Hide radio buttons while searching
* Added angular options back
* Added memoize for all options so they are not rebuilt for every search key stroke
* Added back support for category counters
* Started unit test work
* Refactoring and base popular options list
* Initial update to e2e test, more coming to add e2e test for search features
* Minor fix
* Review updates
* Fixing category open states
* Unit test progress
* Do not show visualization list mode radio button if library panels is not enabled
* Use boolean
* More unit tests
* Increase library panels per page count and give search focus when switching list mode
* field config change test and search test
* Feedback updates
* Minor tweaks
* Minor refactorings
* More minimal override collapse state
* Initial commit for state tracking
* basic state transition logic and tests
* constructor. test and interface fixup
* use new sig for sch.definitionRoutine()
* test fixup
* make the linter happy
* more minor linting cleanup
* Alerting: Opsgenie send tags as extra properties
Allow users to select where to send notification tags when alerting via
OpsGenie. Supports sending tags as key/value details, concatenated
strings in tags or both.
Users will be able to see their tags as key/values under extra
properties in an alert on the Opsgenie UI. These key/values can
then be used in the platform for routing, templating etc.
* Configurable delivery to either tags, extra properties or both
* Default to current behaviour (tags only)
* Support both so users can transition from tags to details
Add docs and clean up references
* Alerting: Add additional arg for Opsgenie tests
The NewEvalContext function now requires a 'PluginRequestValidator' argument.
As our test does not use the validator we can specify 'nil' to satisfy the
function and allow our test to pass as expected.
* Alerting: Opsgenie doc fixes
Accept suggested changes for Opsgenie docs
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Alerting: Opsgenie provisioning settings docs
Add the new setting to the provisioning docs
* Alerting: Opsgenie doc typo correction
Move the comma (,) out of the preformatting tags for the setting value
* Alerting: Opsgenie refactor send switches
Refactor the send switches to be methods on the OpsgenieNotiefier
itself. This also cleans up the method names so that the code reads
a bit more logically as:
if we should send details: send details
if we should send tags: send tags
This avoids the calling code needing to care about passing the state
and allows an engineer working in the `createAlert` function to focus
on the results of applying the logic instead.
* Alerting: Opsgenie docs rename note
Rename the note heading to match the number to more clearly link them.
* Alerting: Opsgenie use standard reference to note
Refer to the note below as per recommendation and standards.
Fixes#30331
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* AzureMonitor: display errors from requests for the dropdowns
* switch to array of errors, using just the last one
* unify error object
* move files into utils
* TESTS
* fix tests
This pull request migrates testdata to coreplugin streaming capabilities,
this is mostly a working concept of streaming plugins at the moment,
the work will continue in the following pull requests.
- 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.
- 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
* first pass
* add instance manager
* fix tests
* remove dead code
* unexport fields
* cleanup
* remove ds instance from executor
* cleanup
* inline im
* remove old func
* get error working
* unexport field
* let fe do its magic
* fix channel name
* revert some tsdb changes
* fix annotations
* cleanup
* ButtonStory: updates story from knobs to controls
* removed type in story
* changed to a much descriptive variable name
* adds type back to the story
* Return dataframe directly from the backend
* Streamline some transforms
* Fix lint issues
* Remove unused lib
* Fix datasource test
* Fix imports and add some typings
* Fix the typings and some tests
* Add private doc comment
* Remove private tag
* Add comments
* Fix some API docs issues
* Fix: Allow <Select /> value to be unset
* clean up
* fix null object in select onChange
* Revert "fix null object in select onChange"
This reverts commit 4b157073884938e5e6a1fac1bbafa7c6017cb361.
* undo onChange arg type change
* fix tests
* Alerting: Add database table for persisting alerting configuration
* Fix the linter
* Address review comments
* Don't split templates and configuration
It is already bundled together as part of a of the API so might as well
marshall it directly.
* Move InspectSubtitle to grafana/ui
* Move inspect elements to features/inspector
* Move InspectJSON and use it also in Explore
* Move and use QueryInspector
* Move all to features/inspector
* WIP Data tab implementation
* Process dataframes for explores inspector
* Clean up
* Update test
* Clean up
* Fix Explore Inspector button name
* Fix LoginService.UpsertUser user creation
* Fix API AdminCreateUser user creation
* Add missing underscore import
* Fix API CompleteInvite user creation
* Fix API SignUpStep2 user creation
* SQLStore: Close session in withDbSession
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* SQLStore.WithDbSession: Never use session from context
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* WIP: Started work on a new panel chrome component
* Minor progress
* Next icons & state
* adding support for leftItems.
* fixing duplicated exports of PanelChrome.
* adding examples on loading indicator in storybook.
* adding API stability docs.
* removed dependency on stylesFactory.
* fixed docs errors.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* 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
* ContextMenu: changed menu item rendering to render prop pattern to enable manual composition of menu items
* fixes affected components
* fixes small nits
* added some changes
* used a more descriptive variable name
* LibraryPanels: Improves Get All Api
* Refactor: using useReducer instead of useState
* Refactor: adds Pagination to UI
* Tests: adds reducer tests
* Refactor: using Observable instead to avoid flickering
* Refactor: moves exclusion to backend instead
* Chore: changing back the perPage default value
* Add mention of preferredVisualisationType to get Log Panel to display
The instructions don't work right now. As described, it was necessary for me to set the preferredVisualisationType to 'logs' to get the log view in Explore. I spent several hours digging around the code to figure this out, so hopefully we can save others the time with this doc update.
* Update docs/sources/developers/plugins/build-a-logs-data-source-plugin.md
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Update docs/sources/developers/plugins/build-a-logs-data-source-plugin.md
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Update docs/sources/developers/plugins/build-a-logs-data-source-plugin.md
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* moved the datasource picker to grafana-runtime.
* fixed imports.
* added e2e selectors as an external package.
* adding react as external package.
* exposing dependent types for DataSourcePicker.
* added docs for ui components.
* moving component to components.
* Pass typed event thorough the DashNav button onClick handler
Event.stopPropagation() method needs to be called in some cases. This change addresses typescript error Type '(event: ...) => void' is not assignable to type '() => void'.
* Pass typed event thorough the DashNav button onClick handler
* Import MouseEvent from React
* Convert Prometheus query response to dataframes
* Add parseResponse tests
* Fixed lint imports
* Force use UTC as timezone in timeVector
* Updated test to check timezone
* TimePicker: Fixes hidden time picker shown in kiosk TV mode
* Use kioskmode passed via props
* Update snaps
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Fix encoded characters in URL path should be proxied as encoded in the data proxy.
Fixes#26870Fixes#31438
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: Collect elasticsearch version usage stats
* Fix lint error
* use GetDataSources from sqlstore
* Apply review suggestions
* Return error if datasource type is not specified
* Update pkg/services/sqlstore/datasource.go
* fix undefined var
* changed so we use fetch.
* moved tests to be at the same level as the datasource.
* fixing tests after migrating to fetch.
* removed unused dep.
* refactorings according to feedback.
* adding missing typing.
* Add revoked_at field to user auth token to allow soft revokes
* Allow soft token revocations
* Update token revocations and tests
* Return error info on revokedTokenErr
* Override session cookie only when no revokedErr nor API request
* Display modal on revoked token error
* Feedback: Refactor TokenRevokedModal to FC
* Add GetUserRevokedTokens into UserTokenService
* Backendsrv: adds tests and refactors soft token path
* Apply feedback
* Write redirect cookie on token revoked error
* Update TokenRevokedModal style
* Return meaningful error info
* Some UI changes
* Update backend_srv tests
* Minor style fix on backend_srv tests
* Replace deprecated method usage to publish events
* Fix backend_srv tests
* Apply suggestions from code review
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Minor style fix after PR suggestion commit
* Apply suggestions from code review
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
* Prettier fixes
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
* Return empty list of tags when tags are not available
In some configurations graphite-web fail to return the list of tags. It shouldn't however prevent displaying list of metrics (which is concatenated with tags).
* Populate jsonData with default version of Graphite
The version of Graphite is preselected in the dropdown but was not saved in jsonData initially.
* Fix a typo
* Show a popup with an error message
* Always use the latest Graphite value as the default one when creating a datasource
* Move autocomplete error handling to GraphiteQueryCtrl
* Test error handing in Graphite autocomplete
* Test default Graphite version fallback
* Rename graphite_versions.ts to versions.ts
* Remove redundant import
* Code formatting, minor renaming
* Remove redundant error info
* influxdb: switch the raw influxql editor from angular to react
* influxdb: raw-influxql: better callback-naming
* influxdb: raw-influxql: use custom hook
* influxdb: flux: raw-editor: add unit tests
* refactor to purecomponent
* use subscription in component
* correct onRunQueries
* move more things from render function
* fix issue with no queries
* pr feedback
* revert to FC
* redo some code layout, simplify if
* minor fixes after review
* Bug: Update `react-use-measure` dependency to fix docker-build-full failure
* Add #remove-cjs-export to point to the correct branch
* Add git package - update js-builder version
* ValueMapping: Updated tests (#31877)
Checks if value 0 or '0' is considered as a numeric value
* ValueMapping: Changed implementation of isNumeric (#31877)
isNumeric now works with the 0 value
* fixed prettier issue
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* AlertingNG: base API implementation
* Pass the interface instead of the base impl
* Ruler mock draft (WIP)
* Update alerting-api dependency
* Improve mock implementation
* update searchableOptions when this.props.options has been updated
* add tests for using state to update options for cascader component
* update story for cascader
* use memoizeOne
* Menu: refactor MenuItem and MenuGroup to be standalone component
* fixes small nits
* Chore: Refactored other components to correspond with the new Menu system (#31676)
* fixes affected components using Menu
* fixes affected components using Menu components
* fixes frontend test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* added support for accessibility
* fixes frontend test- I hope
* Improve storybook story and simplify ButtonSelect
* Fixed broken graph context menu
* fixes frontend test- I hope
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* AzureMonitor: Remove anys from datasource to get the inferred type
* AzureMonitor: Cast some datasource types
TODO: we want proper types for these
* AzureMonitor: Initial react Metrics editor components
* start dimension fields
* replace replaceTemplateVariable with datasource.replace, and rename onQueryChange to onChange
* actually just do template variable replacement in the datasource
* don't use azureMonitorIsConfigured
* Refactors, mainly around the metric metadata
- Convert all the metric metadata options for the Select before its set into state
- Stop using SelectableValue because it's basically any when all the properties are optional
- the onChange function passed to the fields now just accepts the direct value, rather than wrapped in a SelectableValue
* added proper fields, and adding and removing for DimensionFields
* Update query with Dimension changes
* Width
* subscription and query type fields
* Should be feature complete now, more or less
* fix missing import
* fix lint issues
* set default subscription ID
* Starting to write some tests
* tests for query editor
* Remove subscription ID from the label in Metrics
But we keep it there for the angular stuff
* MetricsQueryEditor tests
* Update index.test.tsx
* fix tests
* add template variables to dropdowns
* clean up
* update tests
* Reorganise react components
* Group query fields into rows
* Rename Option type, add Azure response type
* Refactor Metrics metric metadata
- Types the Azure API
- Moves default metadata values into datasource
* nit
* update test
* Update scripts and Dockerfiles to use Go 1.16.1
* Update build-container image version to 1.4.1
* Update node version to 14.16.0-1nodesource1
* Updated drone configuration
* Remove default value for multiSelect
* Add data links support for PieChart v2
* Temporarily fix story
* Refactor PieSlice, deduplicate colors
* Add field config to context menu of pie chart
* Add custom key to legend
This is a bit hacky. When there are multiple DisplayValues with the same
title the react keys collide and LegendListItems are not cleared
correctly.
* Forgot to add the interface
* Fix missing tooltip in edit mode
* Add router packages
* Get react app root work instead of Angular one
* Logger util
* Patch Angular routing ($routeProvider, $routeParamsProvider)
* Use react-router-dom history instead of separate dependency
* Add test routes
* Sidemenu - use Link instead of anchors
* Patch Angular $location service (stub)
* WIP: geting rid of $location provider from TimeSrv
* Intercept anchor clicks to use history under the hood
* Sync Redux location slice with history state
* Make login/logout work
* Debug routes for testing
* Make force login work
* Make sure query param change does not recreate page components
* Hide side menu in specified locations
* Make the dashboar route query parameters work, make panel edit menu work
* Enable more routes
* Fix side menu
* Handle view modes
* Disable playlist routes
* Make SafeDynamicImport work again
* Bring back router-debug
* Separate redux location sync from route rendering
* Refactor updateLocation to thunk and move force refresh(login) to it
* Fixing init dashboard issue
* Support switching between dashboards without an unmount of DashboardPage
* More fixes for init dashboard and panel edit
* More type fixes
* Moving angular location wrapper out of main LocationService, and fixing typescript issues
* Fixed last typescript errors
* LocationService: Move to runtime and remove getLocationService and export singleston const instead (#31523)
* Moving location service implementation to runtime and removing get function and making it a package const singleton
* Added test that used locationService directly
* removed unused import
* AngularApp: Moving angular dependencies and the app boot out of the main app into it's own file (#31525)
* Fixes angular panels by calling the monkey patch
* Moving angular stuff to to it's own files
* udpated
* Fixing clicking on divs and spans inside anchor
* Moving app notifications out of angular app and removing angular directive wrapper
* Moving search from angular to react and removing angular search wrapper
* Clean up, tried to remove the redux location wrapper but requires a big update for DashboardPage, so adding it back
* Moving AppWrapper to root to limit circular dependencies (app/core -> app/routing and back)
* Open and close search now works
* Hide sidemenu when in kiosk mode
* Restoring some keybindings like ESC key
* Removed kiosk events and simplified it, just handled through updating URL
* Fixing typescript errors
* Simplified GrafanaRouteComponentProps and renamed to ContainerProps
* renamed back
* Changed AlertRuleList to use GrafanaRouteComponentProps and location.search passed to it
* Removing the reloadOnSearch property, this is not needed now for react as react by default does not unmount components when only url match or query parmas change
* SafeDynamicImport causing unmount un every search update, not sure how to fix yet
* Fix signature for SafeDynamicImport so we do not create new route components on every route render
* Removing the redux location wrapper as it was causing errors, and making dashboard page work with RouteProps (location, match) etc
* Updating DashboardPage and SoloPanelPage to use match params and history location
* Fixed DashboardPage tests
* Fixing solo route tests
* LocationService: Rename getCurrentLocation to just getLocation
* do not intercept link clicks with target blank or self
* Experimental useUrlParams hook
* Update DataSourceSettingsPage to use router match params
* fix links with urls that have no starting / to work like before
* Fix forceLogin
* Add queryParams to GrafanaRouteComponentProps
* PanelEditor get rid of updateLocation and location state
* Improve grafana route query params typing
* Add getSearchObject to LocationService
* Use DashboardPAge queryParams instead of location.search parsing
* Fix DashboardPage typing
* Fix some tests weirdness
* Bring back KeyboardSrv
* Fixes typescript issues
* Team pages now use router match params
* Get rid of from GrafanaRouteComponent props
* Removed unnessary calls to getSearchObject when calling locationService.partial
* Updated DashboardPage tests after queryParams was added
* Fixing dashboard settings back
* GrafanaRoute: Adding tests and remove use of global locationService
* Fixing tests and typescript errors
* Bring back kiosk modes and add tests
* Fix TimeSrv tests
* Fix typecheck errors
* Fixing tests
* Updated SideMenu test to react-testing and wrapped component in Router, and fixed issue importing createMemoryHistory
* Get rid of routeChange event from TimeSrv from
* Fixed TopSectionItem test
* Trying to make basename work but failing
* Update TopSectionItem snapshot
* Fix TopSectionItem snapshot test
* Fix API keys creation
* Remove Angular dependencies from KeybindingSrv (#31617)
* Remove Angular dependency from KeybindingsSrv
* Fix tests and typecheck issues
* basename is starting to work
* Make dashboard save work
* KeybindingSrv: Remove as angular service and no usage angular scope
* So long bridge_srv, we won't miss you
* Update snapshots
* Dashboard: Refactoring ChangeTracker to use History api and no angular (#31653)
* Dashboard: Refactoring ChangeTracker to use History api and no angular
* Updated
* Removed logging
* fixed unit tests
* updated snapshots
* Mechanism for force reloading routes (#31683)
* e2e: Fixes various things in e2e scenarios after router migration (#31685)
* Explore: Update reading query params from router props and updating location via locationService (ReactRouter) (#31688)
* RoutingNG: Initial explore redux location to router location migration
* Updated explore Wrapper tests
* Fixing more tests
* remove loggin
* rename back to make naming consistent
* Fixing return to dashboard button
* fixing navigation to explore from dashboard
* updated routeProps
* Updated tests
* Make DashboardListPage work
* Fixing navigation after add new data source, and fixes explore e2e
* Fixing solo panel page
* PluginsPage now works
* RoutingNG: When parsing and rendering url search/query params preseve old logic of handling booleans and arrays (#31725)
* RoutingNG: When parsing and rendering url search/query params preserve old logic of handling booleans and arrays
* Fixed test
* Make snapshots list work
* fixed alert notification channel edit page
* Simplify LocationService, did not need special handling for login or forceLogin as target _self on link already handles that
* fixed UserAdminPage
* fixed edit orgs page
* Fixing LdapPage
* fixing dashboard import
* Fixed new folder page
* Fixed data source dashboards page
* fixing Folder permissions and folder settings page
* fixing snapshot list page nav model
* remove unused file
* Added placeholder page for playlist
* Moved browser compatability to index-template
* Restored 404/default page
* Fixed reset password page
* Fixed SignUpInvited page
* Fixing CreateTeam, Create user page, add panel widget
* Restore browwser file to make tests happy
* Fixed unit tests
* Removed unused import
* Replacing usage of updateLocation
* Fixed test
* Updating search filters to use history / location service for filters
* remove unused file
* AppRootPage fixed
* Fixing test and search issue
* Changes to support enterprise extensions
* remove console.log
* Removing more use of redux location
* Fixed signup page
* removed unused old angular controllers
* Fixing bugs
* one final bugfix
* Removed location from redux state
* Fixing ts issues and tests
* Fixing test issue
* fixing tests
* Fixing tests
* removed unused stuff
* Fixed search test
* Adding some doc comments
* Routing NG: Angular location provider patch (#31773)
* Patch Angulars $location provider
* Update public/app/angular/bridgeReactAngularRouting.ts
* Remove only test
* Update tests, disable loggers in test env
* Routing NG: remove $location provider usage (#31816)
* Remove dashboard_loaders
* Remove $location from Analytics service, track page views form GrafanaRoute
* Remove NotificationsEditCtrl
* Remove Angular dependencies from uploadDashboardDirective
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove unused test helpers (#31831)
* Playlist react (#31829)
* playlist list in react
* Playlist start
* Things started to work
* Updated
* Handle empty list
* Fix ts
* Fixes and kiosk mode stuff
* Removed unused events
* fixing ts issue
* Another ts issue
* Fixing tests
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* fixed test
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove Angular dependency from DashboardLoaderSrv (#31863)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Fix tooltip in the way
* Add more info for instant query
* Update public/app/plugins/datasource/loki/components/LokiOptionFields.tsx
* Update public/app/plugins/datasource/prometheus/components/PromExploreExtraField.tsx
* add support for displaying all selected levels for cascader
* add story for Cascader with display all selected levels
* add tests for Cascader with displayAllSelectedLevels prop
* replace enzyme test with RTL for cascader
* Bring back clickable Stat, Gauge and BarGauge panels
* Demo dashboard
* Add DataLinksContextMenu tests
* Only use new UI for data links, revert panel links logic
* Tempo: Support opentelemetry response
* Tempo: convert Tempo to backend data source
* Update data source test
* Fix lint issues
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Return error when trace not found
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Admin: Keeps expired keys visible in table after delete
* Chore: covers component in tests before refactor
* Refactor: splitting up into smaller components
* Chore: fixes a small issue with the validation
* Chore: forgot to export type
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
* Loki: Label browser
- replaces stream cascader widget which made it hard to find relevant streams
- multi-step selection allows for selecting a couple of labels first, then find the relevant values
- supports facetting which makes impossible label combinations hard to choose
* Remove unused label hook
* Remove unused label styles
* Use global time range for metadata requests
* Preselect labels if not many exist
* Status and error messages
* Status fixes
* Remove unused import
* Added logs rate button
* Close popup when clicked outside (not working for timepicker :( )
* Change button label
* Get rid of popup and render browser inline
* Review feedback
* Wrap label values and prevent empty lists
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Use dataframe API for jeager
* Move types around
* Fix imports
* Simplify the data frame type
* Add comment
* Move the transform to separate file
* Fix logs timestamp
* Add/update tests for trace view
* Fix lint
* Add test to compare old and new format rendering
* Fix test imports
* Update data source tests
* Refactor: adds version column and fixes tests
* Chore: adds version check when patching the library panel
* Refactor: adds support for version in FrontEnd
* Make sure Metric field in Discord notification is never empty
Discord uniquely does not send the alert if the metric field is empty, which can happen in some cases, such as when the legend is {{hostname}}.
Signed-off-by: Levi Harrison <levisamuelharrison@gmail.com>
* Changed name of empty metric in Discord alert
Signed-off-by: Levi Harrison <levisamuelharrison@gmail.com>
* Refactor: adds permissions for library panel creation
* Refactor: checks folder permissions for patch requests
* Chore: changes after PR comments
* Refactor: adds permissions to delete
* Refactor: moves get all permission tests out of get all tests
* Chore: move out get all tests to a separate file
* Refactor: adds permissions to get handler
* Refactor: fixes a bug with getting library panels in General folder
* Refactor: adds permissions for connect/disconnect
* Refactor: adds permissions and tests for get connected dashboards
* Tests: adds tests for connected dashboards in General Folder
* LibraryPanels: Deletes library panels during folder deletion
* LibraryPanels: Deletes library panels during folder deletion
* Update pkg/api/folder.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/librarypanels/librarypanels_permissions_test.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: updates after PR comments
* Chore: forgot to change some function signatures
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor: adds permissions for library panel creation
* Refactor: checks folder permissions for patch requests
* Chore: changes after PR comments
* Refactor: adds permissions to delete
* Refactor: moves get all permission tests out of get all tests
* Chore: move out get all tests to a separate file
* Refactor: adds permissions to get handler
* Refactor: fixes a bug with getting library panels in General folder
* Refactor: adds permissions for connect/disconnect
* Refactor: adds permissions and tests for get connected dashboards
* Tests: adds tests for connected dashboards in General Folder
* Add percent of total to piechart legend
* Remove defaults
* Add label selector
* Fix multiselect option ui
* Add percent of total to piechart legend
* Add label selector
* add multiselect options ui
* change how pie chart labels are displayed
* Fixed right aligned values in legend
* added titles to display values so they show in table mode
* Move legend display value options to below other options
* Add addMultiSelect method to ui builder
* Use addMultiSelect on builder
* Use multiselect for the legend columns and update the panel test dashboard
* Remove explicit typing on addMultiselect and remove non existing properties from piechart story
* Add release tag
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
* Stop using transformation to tables
* Update datasource.ts to parse from dataframes
* Add test on transformToDataframe func
* Remove parseResponse and do the work inside parseToAnnotations method
* Name the dataframe after the RefID
* Small fix when mapping to annotation
* Add tests in annotation_query_test.go class
* Small fix in loop iteration
* Change for loop signature
* feat(dashboardsettings): migrate dashboard links EmptyListCTA to react
* feat(dashboardsettings): initial commit of links settings migration to react
* feat(dashboardsettings): add links form functionality
* refactor(dashboardsettings): separate out linksettings components and concerns
* Updates to links list
* Form improvements
* test(dashboardlinks): update links so tests run
* refactor: move _.move to arrayMove for testing purposes
* test(dashboardsettings): initial commit of link settings tests
* refactor(app): put back lodash move method for backwards compatibility
* test(dashboardsettings): add links settings tests
* style(dashboardsettings): camelcase constants
* chore(dashboardsettings): delete old angular links settings view
* fix(dashboardsettings): forceupdate links on submenuVisibilityChanged and correct imports
* chore: remove reference to old angular link settings components
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
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
* TraceViewer: Fix show log marker in spanbar
* Revert changes and use UITooltip and UIPopover
* Change logmarker color
* e2e: wait for trace view
* Record cypress run ONLY FOR TESTING
* Move fixture to e2e
* Get details TEST ONLY
* test
* Use jaeger's theme instead of grafana's
* Revert "Record cypress run ONLY FOR TESTING"
This reverts commit 35c087b3c5.
* Revert "Move fixture to e2e"
This reverts commit fab88cc54c.
* Run post-friendly request with set method first
* Improve messaging, retry only when post and specific status code
* Add comments
* Fix backend
* Update public/app/plugins/datasource/prometheus/datasource.ts
* CallToActionCard: updates story from knobs to controls
* used better naming for ctaElement control
* Capitalise Story names
* moved some changes to a separate PR
* fixes CI frontend build issue
* Added new section Query a time series database by id
* Rearranged content.
* changed database to data source
* Updated note with the word Grafana
* fixed a few typos.
* Removed "time series" as per review.
* Update docs/sources/http_api/data_source.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Changes from Diana's review.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Implement POST to specific endpoints and change POST as default
* Add tests for PromSettings
* Add tests to dataosurce.ts for new functionality
* Remove /label /series implementation
* Update public/app/plugins/datasource/prometheus/configuration/PromSettings.tsx
* Replace DataSourcesListItem with Card
* Add tests
* Remove unused styles
* Make card heading semi bold
* Make heading semi-bold
* Show type name instead of type id
* Fix key warning
* Update Card
* Fix tests
* Make typeName optional
* remove styling that was just a test
* Make typeName non-optional and fix tests
* Update list key
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Remove very old-versioned loki blocks
* Update prometheus block from 2.7.2 to latest
* Remove data sources in Grafana
* Fix e2e test not to intercept the whole url
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add basic legend to the PieChart
* Remove console log
* Remove PieChartWithLegend and refactor PieChart a bit
* Use FALLBACK_COLOR
* Refactor PieChart
* Change back to [function]
* BarGuage: updated story from knobs to controls
* fixes type errors and disables unused controls
* update controls to support some BarGauge props
* changed addBarGaugeStory to component and removed closure
* cleaned up to be more readable
* more refactoring to be readable
* final touches...
* fixed disabled controls issue
* moved NOOP_CONTROL declaration to a seperate PR
* made some tweaks to the story names
* chore(grafana-toolkit): use workspace versions of grafana/ui and grafana/data
* chore: replace references to popperjs 1 typings with popperjs 2 typings
* Prettier formatting
* Grafana-UI: Add support for id and inputId props to Select
* Grafana-UI: Add aria-label to Select
* Grafana-UI: InlineField and Field get ID from inputId prop
For Select
* Fix tests using TagFilter
* Update Select prop documentation
* Update Field tests to use screen instead
* Fix the last few tests
* Fix disable bug by passing hide prop
* Make more universal fix
* Revert to original fix
* Update public/app/plugins/datasource/prometheus/components/PromQueryEditor.tsx
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* SqlDataSources: Fixes the Show Generated SQL button in query editors
* No need to protect against duplicate events now that the event emitter is isolated for each editor
* LibraryPanels: Disconnect before connect during dashboard save
* Tests: fixed test
* Chore: updates after PR comments
* Chore: changes from context.Background() to c.Context.Req.Context()
* Chore: fixes lint issue
* First attempt
* Get rid of time range as config invalidation dependency
* GraphNG class refactor
* Get rid of DataFrame dependency from Plot component, get rid of usePlotData context, rely on XYMatchers for data inspection from within plugins
* Bring back legend
* Fix Sparkline
* Fix Sparkline
* Sparkline update
* Explore update
* fix
* BarChart refactor to class
* Tweaks
* TS fix
* Fix tests
* Tests
* Update packages/grafana-ui/src/components/uPlot/utils.ts
* Update public/app/plugins/panel/timeseries/plugins/ContextMenuPlugin.tsx
* GraphNG: unified legend for BarChart, GraphNG & other uPlot based visualizations (#31175)
* Legend experiment
* Nits
* break out new and edit
* changed model to match new model in backend
* AlertingNG: API modifications (#30683)
* Fix API consistency
* Change eval alert definition to POST request
* Fix eval endpoint to accept custom now parameter
* Change JSON input property for create/update endpoints
* model adjustments
* set mixed datasource, fix put url
* update snapshots
* run test response through converters
* remove edit and add landing page
* remove snapshot tests ans snapshots
* wrap linkbutton in array
* different approaches to massage data
* get instead of post
* use function to return instances data
* hook up test button in view
* test endpoint for not saved definitions
* function that return query options
* Chore: fixes strict error
* hide ng alert button
* typings
* fix setAlertDef error
* better message when you have queries but no data
* NGAlert: Refactoring that handles cleaning up state (#31087)
* Chore: some refactorings of state
* Chore: reduces strict null errors
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Chore(deps): Bump xorm.io/xorm from 0.8.1 to 0.8.2
Bumps xorm.io/xorm from 0.8.1 to 0.8.2.
Signed-off-by: dependabot[bot] <support@github.com>
* Fix limit for snapshots
* Fix limit for org and users
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Cfg: fix hidden users initialization
* add tests
* do not call isHiddenUser function for non-user permission
* do not call isHiddenUser function for non-user permission
Fixes behaviour of Notify that returns error when one of the dispatch
event return error, to maintain high availability, we should return error
when all dispatched events return error instead.
Fixes#30509
* Add configuration in ConfigEditor and default to 1000
* Show data in explore if any even if there is an error
* Update pkg/tsdb/influxdb/flux/executor.go
* Better handling of defaults
* Add test for runQuery to show data even with error
* Update public/app/store/configureStore.ts
Co-authored-by: Giordano Ricci <gio.ricci@grafana.com>
* Update public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update tooltip
* Update input
* Lint fixes
* Update snapshots
* Update decorator tests
Co-authored-by: Giordano Ricci <gio.ricci@grafana.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Don't add {} to non-metrics starting with quotes
* Fix for using template variables
* Fix adding of filter to timerange
* Fix adding of filter to labels provided with group modifier
* Fix adding of filters to Grafana's variables
* Shorten tests
* Refactor and split
* WIP: Add dedup functionality to logs panel
* Simplify, clean up
* Change ordering of customizations based on how it is in Explore
* Update public/app/plugins/panel/logs/LogsPanel.tsx
Co-authored-by: Giordano Ricci <gio.ricci@grafana.com>
* Update public/app/plugins/panel/logs/LogsPanel.tsx
Co-authored-by: Giordano Ricci <gio.ricci@grafana.com>
Co-authored-by: Giordano Ricci <gio.ricci@grafana.com>
* Drone: Make sure CDN upload is ok before pushing docker images
* Trying to simplify logic
* Snake case
* Only depend on cdn upload in release mode
* Rename and use util function where we can
* removing the cdn dependency
The upgrade notes for Grafana 7.3 and Docker says that The Grafana Docker
image runs with the root group (id 1) which is wrong. It should be group (id 0).
Which issue(s) this PR fixes:
Fixes#30953
* CDN: Fixing drone CI config
* was in wrong dir when I executed command
* removed whitespace
* Update path
* Update Drone master and enterprise piplelines with CDN Upload
* Update test
* removed whitespace
* Go back to public folder defined
* updated build-pipeline
* Updated drone
* wrong version
* DashboardSettings: Update to new form styles
* Improve header margin and fixing issue in permissions tab
* Updated
* Switch to radio
* Remove unused import
* BarGauge: Increase min value width and fix height when setting manual text size
* updated snapshot
* Big improvement to bar gauge value sizing and fixing table gauge sizing
* removed unused const
* added a unit test
* feat(dashboard): initial commit of general settings migration to react
* fix(dashboardsettings): force update of general settings when selects change
* feat(dashboardsettings): initial commit of delete dashboard button and modal
* feat(dashboardsettings): introduce useDashboardDelete hook
* feat(dashboardsettings): add tags and editable inputs
* refactor(dashboardsettings): fix typescript error in general settings
* refactor(dashboardsettings): use grafana-ui form components for general settings
* refactor(dashboardsettings): use ConfirmModal and move provisioned modal to own component
* refactor(dashboardsettings): revertDashboardModal uses ConfirmModal
* test(autorefreshintervals): remove renderCount prop to fix test
* test(dashboardsettings): put back aria-label for e2e tests
* chore(dashboardsettings): remove redundant generl settings angular code
* test: change references to now deleted SettingsCtrl to GeneralSettings
* refactor(dashboardsettings): swap out switch for inlineswitch component
* chore(timepickersettings): remove timePickerSettings angular directive definition
* feat(dashboardsettings): add tooltips, fix description field name
* refactor(dashboardsettings): remove redundant await
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* refactor(usedashboarddelete): clean up
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* update interval to fix no unit
* fix bug
* update with new method
* format go
* add test
* change test method to add test error nil
* add simplejson and model package
* change json format
* add parentheses
* add simplejson to function
* change mode to model
* move assert import package
* add one enter to avoid goimport error
* change to test case
* Graph: Fixes so graph is shown for non numeric time values
* Tests: changes times to UTC
* Tests: forgot one value in time array
* GraphNG: make time series panel work with string time stamps (#30981)
* Make Time series panel work with data that time is represented as string
* Map to for
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Grafana [v7.2.0-beta2](https://github.com/grafana/grafana/releases/tag/v7.2.0-beta2) brought support for `login_maximum_inactive_lifetime_duration` and `login_maximum_lifetime_duration` to replace the older way of specifying the same flavor of timeouts (`login_maximum_inactive_lifetime_days` and `login_maximum_lifetime_days`). Unfortunately, this improvement did not make it to `configuration.md`.
The suggested changes reflect the current state of `conf/defaults.ini`.
* Make value mappings corectly interprete numeric-like strings
* More tests
* Update packages/grafana-data/src/utils/valueMappings.ts
* Update packages/grafana-data/src/utils/valueMappings.ts
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Fix issue detected by singlestat test
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
When the user session expires, and the 401 triggers a page reload to get the user to the login page, ChangeTracker will interfer. By setting the user as logged out in the context when the session is timed out, we can ignore the changes in ChangeTracker.
* Updated
* DataSourceSettings: Adds info box and link to Grafana Cloud
* Updated wording
* Less words
* use variables
* Fixing ts issues
* fixed import
* break out new and edit
* changed model to match new model in backend
* AlertingNG: API modifications (#30683)
* Fix API consistency
* Change eval alert definition to POST request
* Fix eval endpoint to accept custom now parameter
* Change JSON input property for create/update endpoints
* model adjustments
* set mixed datasource, fix put url
* update snapshots
* remove edit and add landing page
* remove snapshot tests ans snapshots
* wrap linkbutton in array
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
* Created new topic.
* Updated retart topic with windows, macos, Linux and Docker sections. Also, updated enterprise topic "sctivate license".
* Added some relrefs to the install introduction page.
* Adding changes from reviews.
* More changes from review.
* Corrected some syntax issues.
* Introduce PluginRequestValidator abstraction with a NoOp implementation
* Update PluginRequestValidator abstraction to use the dsURL instead
* Inject PluginRequestValidator into the HTTPServer and validate requests going through data source proxy
* Inject PluginRequestValidator into the BackendPluginManager and validate requests going through it
* Validate requests going through QueryMetrics & QueryMetricsV2
* Validate BackendPluginManager health requests
* Fix backend plugins manager tests
* Validate requests going through alerting service
* Fix tests
* fix tests
* goimports
Co-authored-by: Leonard Gram <leo@xlson.com>
* feat(grafana-ui): add an escape key listener to Modal
* Update packages/grafana-ui/src/components/Modal/Modal.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* feat(grafana-ui): add closeOnEscape prop to control Modal behaviour
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Add dev env block for influx2
* Add http settings to influx config
* Update devenv/docker/blocks/influxdb2/docker-compose.yaml
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Chart/Tooltip: added theme variables and refactored style declaration
* added some changes
* removed useStyle hook since we're not using themes variables
* Added useStyle back since it memoizes the style generation
* add compile variable in tooltip link
* test(link_srv): introduce getAnchorInfo test
* test(link_srv): introduce tests for getLinkUrl
* test(link_srv): refer to anchorInfo.url rather than hardcode expected
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Created new topic on tracing capability and began breaking down and re-org.
* This commit fixed a bunch of broken relrefs along with other changes.
* More changes.
* Checkin changes.
* Check in changes.
* More changes.
* More changes.
* Updated file path.
* Updated image path and more content reorg.
* Update docs/sources/explore/_index.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Adding suugestions from review.
* Some more changes from review.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* GrafanaUI: Add a way to persistently close InfoBox
InfoBox and FeatureInfoBox can take up a lot of screen realestate. This makes it easy to let the user close the boxes.
* Migrate InfoBox story to controls
* merged conflicts
* added and utilised useStyle hooks
* Fixes snapshot test
* FormField: added grow property to component
* added a carriage return to index.scss
* properly sort props so the required props are at the top
* removed the grow props since it's not used
* fixes frontend test- I hope
Fixes so that the warning WARN Failed to close
stream logger=plugins.backend err="cannot
close a closed stream" is not logged every
time calling a resource.
* Measure transformation number and elapsed time
* Change histogram to summary
* Apply suggestions from code review
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* TableInputCSV: migrated styles from sass to emotion
* placed the getSyles function at the end of the file
* made some changes
* fixes small nit
* fixes small nit
* replaced classNames with emotions cx function
* Replaced textarea with TextArea component
* updated some changes
* removed return type annotation
* fixed small import nit
* CDN: Initial poc support for serving assets over a CDN
* Minor fix
* added build path and test
* fix lint error
* Added edition to cdn path
* Move master builds to a separate path
* Added error handling for the url parsing, changed setting name, and added docs
* Updated sample.ini
* Some property renames
* updated
* Minor update to html
* index template improvements
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Added ContentDeliveryPrefix to Licence service
* updated docs
* Updated test mock
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Converts the core testdata data source to use the SDK contracts and by that
implementing a backend plugin in core Grafana in similar manner as an external one.
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Marcus Efraimsson <marefr@users.noreply.github.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
PLUS
- width prop isn't actually used and thus might give users of this component the wrong idea, so I removed it from the type (and in `DataSourceHttpSettings`)
- Added storybook props table
* bump cypress to 6.3.0
* fix inspect-drawer spec
* fix panelEdit_base spec
* fix select-focus spec
* Apply suggestions from code review
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* add be.visible assertion to new-query-variable spec to avoid flakiness
* increase waits in new-query-variable spec to avoid flakiness
* increase waits in new-query-variable spec by another 500
* remove be.visible assertion added before
* Chore: trying to fix flakiness
* skip the new-variable-query e2e test
* Chore: refactor so we might avoid flakiness
* Revert "skip the new-variable-query e2e test"
This reverts commit 203c1875c2.
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Change to introduction section.
* Checkin changes.
* Check in changes.
* Updated heading levels for better readability.
* Checkin changes.
* Broke down topic and fixed relrefs. Also, resized images.
* Added one more relref from preconfig dashboards to main topic.
* Adding Eric's changes.
* Added alias.
* Updated alias with correct syntax, also updated description typo for "Preconfigured dashboards"s
* Checking in changes from Diana.
* Update docs/sources/datasources/google-cloud-monitoring/_index.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* One last change.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* CustomScrollbar: migrated styles from sass to emotion
* fixes frontend test
* updated changes
* fixed page props and applied changes to all occurences
* moved the getStyles function to the bottom of the file
* made some changes
* fixed snapshot test
* Revert "Merge branch 'refactor-customscrollbar-30354' of https://github.com/grafana/grafana into refactor-customscrollbar-30354"
This reverts commit c45ee30b6b297991a1628e9b21c4121dc78e376c, reversing
changes made to d2645534e3.
* improved props name
* made use of theme variables for style consistency
* fixed snapshot test and updated some theme changes
* removed hover effects from customScrollbar style
* made some changes
* updated some changes
* added label to class names
* changed to a functional component and improved styling
* fixes snapshot test
* fixes small nit
* minor tweaks
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton
* Change live button text when paused
* For the dashboard toolbar button I need a transparent button so I refactored the states/variants into a new ToolbarButtonVariatn
* PageToolbar wip
* Progress
* Prgress
* Minor progress
* Fixed back button and responsive titles
* Fixed tv mode
* Updated
* support tv modes and playlist
* more progress
* Fixing lots of view states and responsive features
* Minor fixes
* review fixes
* Fixes to e2e tests
* Review fixes
* AlertingNG: pause/unpause definitions via the API
* Apply suggestions from code review
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Enable pausing/unpausing multiple definitions
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Usage Stats: Remove unused method for getting user stats
This was used in enterprise codebase, but is not longer in use, thus can be safely removed.
* Force refresh user stats in tests
* Grafana/UI: Unit picker should not set a category as a unit
When clicking categories for units the category is set as the unit until a leaf node is selected.
This change exposes the changeOnSelect property from rc-cascader and sets it to false for the unit picker.
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Grafana/UI: Add disable prop to Segment
SegmentSync, SegmentAsync and SegmentInput had the disable prop inherited from HTMLProp but it did not disable the component. The disable prop should now disable the component.
* Use InlineLabel instead of span and remove some sass-classes in Segments
* Change MetricsQueryEditor test to reflect new layout of AsyncSegment
* Use useStyles hook to get themed styles for segment inputs
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* If error - catch and show, if no logs - return null
* Refactor LogsContainer to use ConnectedProps
* Fix typescript error
* Remove no logs check
* Include review feedback
* Add SplitOpen type to createSpanLink and TraceView
* WIP: Using new components
* Progress
* Everything looks to be working
* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton (#30571)
* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton
* Change live button text when paused
* Fixed story
* For the dashboard toolbar button I need a transparent button so I refactored the states/variants into a new ToolbarButtonVariatn
* Changing my mind on the transparent variant
* review fixes
* Review fixes
* ButtonSelect: Trying to rewrite the button select to use ToggleButtonGroup & Menu
* minor update
* Progress
* Updated
* Moving all the explore scenarios into the refresh picker component
* Minor fixes
* Fixed responsive part of run button
* More minor fixes
* typescript fix
* Update packages/grafana-ui/src/components/Icon/Icon.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update packages/grafana-ui/src/components/Menu/Menu.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Review feedback fixes and more
* Fixes small ts issue
* Updated return to dashboard button and tests, moved ButtonSelect out of LegacyForms
* fixed ts issue
* Fixed test
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* transform state to what the api expects
* add expr prop to dataquery
* Add evalutate field
* add refid picker to options
* minor fix to enable save
* fix import
* more fixes after merge
* use default datasource if not changed
* replace name with title
* Change name in ui as well
* remove not used loadDataSources function
* prettier fixes
* look up datasource
* correct datasource per query model
* revert dataquery change, use expressionid const
* fix for type
* fix faulty const
* description readonly
* Modal: Admin: Fixes so whole org drop down is visible
* Tests: fixes failing tests
* Chore: cleans up the return type
* Chore: changes after PR comments
* Chore: changes after PR comments
* PanelOptions: Refactoring on applying panel and field options from PanelModel
* Progress
* Filtering out props
* downgraded prettier
* Fixes
* Initial simple remember and restore for custom and overrides
* clearing custom options and overrides and restoring works
* actually use the function
* Added type for options cache
* minor fix
* Updated with new prettier
* Added old field config to panel type change handler
* Update public/app/features/dashboard/state/getPanelOptionsWithDefaults.test.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Dashboard: Remove template variables option and update style of ShareModal (#29191)
* Simplified design
* Changed to text area component for embed and replaced select with RadioButtonGroup
* Use primitive string instead of SelectableValue in the states
* Changed embed html TextArea to writable and added a copy to clipboard button
* Added some space between the buttons on the snapshot tab and removed unnessecary FieldSet elements
* Add descriptions to the tabs that were missing descriptions
* Capitalization of theme names
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* update go-mssqldb package
* mssql: support for Windows integrated security
Adds a dropdown to the config page to choose between
SQL Server auth and Windows auth. If the login/username
is empty then the go-mssqldb driver will use single sign on
(Windows integrated security) if on Windows.
* mssql: update ds - don't ignore the user column
* 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>
* Go program to output openapi
* Fix number type syntax
Resolves error: 'unsupported op for number &'
* Render just the schemas
* Use args as entrypoints and add test
* Update README, tidy go.mod
* Enforce unique alert definition title/uid per org
* Remove print statement from test
* Do not allow empty alert definition titles
* update error message on dup title
* also add title error to update
* CamelCase json properties
* Add test for title unique enforcement in updates
Co-authored-by: kyle <kyle@grafana.com>
* Auth: add error for expired token
* Auth: save token error into context data
* Auth: send full user and req context to CreateToken
* Auth: add token ID in context
* add TokenExpiredError struct
* update auth tests
* remove most of the changes to CreateToken func
* clean up
* Login: add requestURI in CreateToken ctx
* update RequestURIKey comment
* Add GraphView component
* Add service map panel
* Add more metadata visuals
* Add context menu on click
* Add context menu for services
* Fix service map in dashboard
* Add field proxy in explore linkSupplier
* Refactor the link creation
* Remove test file
* Fix scale change when view is panned
* Fix node centering
* Don't show context menu if no links
* Fix service map containers
* Add collapsible around the service map
* Fix stats computation
* Remove debug log
* Fix time stats
* Allow string timestamp
* Make panning bounded
* Add zooming by mouse wheel
* Clean up the colors
* Fix stats for single trace graph
* Don't show debug config
* Add more complex layout
* Update layout with better fixing of the root nodes
* Code cleanup
* Change how we pass in link creation function and some more cleanup
* Refactor the panel section into separate render methods
* Make the edge hover more readable
* Move stats computation to data source
* Put edge labels to front
* Simplify layout for better multi graph layout
* Update for dark theme
* Move function to utils
* Visual improvements
* Improve context menu detail
* Allow custom details
* Rename to NodeGraph
* Remove unused dependencies
* Use named color palette and add some fallbacks for missing data
* Add test data scenario
* Rename plugin
* Switch scroll zoom direction to align with google maps
* Do some perf optimisations and rise the node limit
* Update alert styling
* Rename function
* Add tests
* Add more tests
* Change data frame column mapping to use column names
* Fix test
* Fix type errors
* Don't show context menu without links
* Add beta status to panel
* Fix tests
* Changed function to standard methods
* Fix typing
* Clean up yarn.lock
* Add some UI improvements
- better styling of the zoom buttons
- disable buttons when max reached
* Fix panel references after rename
* Add panel icon
* Safely skipping overrides on missing properties.
* Added test and missing element key.
* added possibility to remove the missing property.
* Minor UI change
* Fix test
* simplify a bit
* Fixed test
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Fix query preview add tabs to options
* break out tabs to components
* add refresh button
* minor things after PR review
* hide queries
* Add simple error screen if there's an error
* dropdown with different frames
* move onrunqueries to redux
* cleanup
* show actual error
* refactor(dashboard): remove redundant directive code from SaveDashboardAsButton
* feat(dashboard): initial commit of rendering version history with react
* feat(dashboard): append versions, use historySrv, UI as functional components
* feat(dashboard): initial commit of versions settings diff view
* refactor(historylist): remove code related to listing versions
* refactor(dashboard): use angular directive to render version comparison
* refactor(dashboard): clean up versions settings
* refactor(dashboard): move version history UI components into own files
* refactor(dashboard): update typings for version history react components
* feat(dashboard): initial commit of react revert dashboard modal
* test(dashboardsettings): clean up historylistctrl tests
* chore(dashboardsettings): remove unused state variable
* test(dashboardsettings): initial commit of VersionSettings component tests
* feat(grafana-ui): add className concatenation on Checkbox label
* Apply suggestions from code review
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* test(dashboardsettings): add more tests for Versions Settings react component
* test(dashboardsettings): add test to assert latest badge in Version history table
* fix(dashboardsettings): pass string to getDiff instead of react event object
* test(dashboardsettings): remove failing test from versions settings
* Moved scroll area to content, and fixed colors
* Update public/app/features/dashboard/components/DashboardSettings/VersionsSettings.test.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* style(dashboardsettings): add new lines to versions settings tests
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* ToolbarButton: New emotion based component to replace all navbar, DashNavButton and scss styles
* Component ready for use
* Dam dam dam
* Starting big button design update
* Tried to use main button component but failed
* Minor fix
* Updates
* Updated
* Update packages/grafana-ui/src/components/Button/Button.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update packages/grafana-ui/src/components/Button/ButtonGroup.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Updated to use spacing base
* Button updates
* Removd unused import
* Remove unused import
* Use correct theme variable for border-radius
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Replace hard-coded `GF_ENTERPRISE_LICENSE_TEXT` with a
`map[string]string` to allow the licensing service to allow sending any
environment variable through to the plugins for licensing purposes.
* cloud monitoring mql support
* reduce nesting
* remove resource type from deep link since. its removed for two reasons. first of all it is not needed for the link to work. secondly, by adding the resource type, the the link will differ from the query in grafana which I think is misleading
* use frame.meta.executedQueryString instead of legacy meta
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
* Pass skipCache from context
* Use macaron Params instead of ParamsEscape for UIDs
* Modify queries and transform to get datasource UIDs
* Update github.com/grafana/grafana-plugin-sdk-go to v0.83.0
* Fix typos
* Query exemplars API
* Add link to traceID
* Update exemplar to show more information
Reduce exemplars density
* Fix typos
* Query exemplars API
* Add link to traceID
* Update exemplar to show more information
Reduce exemplars density
* Update GraphNG legend type
* Show new graph component in Explore
* Add exemplar annotation a design update
* Graph panel not to show red line annotation
Exemplar plugin to use y value
* Address review comments
* Density filter for exemplars
* Update schema of exemplars
* Density filter with y-value sampling
* Enforce axis scales to include 0
* Changes after merge with master
* Show metrics when there is no result
* Decorators tests fix
* ExemplarMarker to receive component prop
* Remove context menu from explore graph
* Add color to graph
* Update explore graph panel
* Update graph config to use default values
* Fix data source tests
* Do not show exemplars outside of graph
* Add exemplars switch
* Fix typos
* Add exemplars query only when enabled
* Show graph in explore without filling it
* Update exemplars plugin y value scale selection
* Update tests
* Add data source picker for internal linking
* Increase pointSize for better visibility
* Fix explore e2e test
* Fix data link title variable interpolation
* Use new switch component in PromExemplarField
* Move FieldLink component to new file
* Convert exemplar to datalink
* Add legend toggling logic to Explore
* Add legend toggling to Explore
* Address Ivana's feedback
* Address Andrej's comments
* Address Gio's feedback
* Add tests for result_transformer
* Fix eslint issues
* Change sampler formula for better readability
Co-authored-by: David Kaltschmidt <david@leia.lan>
Co-authored-by: David Kaltschmidt <david@leia.fritz.box>
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Chore: moves common and response into separate packages
* Chore: moves common and response into separate packages
* Update pkg/api/utils/common.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: changes after PR comments
* Chore: move wrap to routing package
* Chore: move functions in common to response package
* Chore: move functions in common to response package
* Chore: formats imports
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* feat(tablepanel): add migration button to old table panel config
* feat(tablepanel): migrate old table transformations
* feat(tablepanel): migrate old styles to config overrides
* feat(tablepanel): migrate catch all style override to panel defaults
* refactor(tablepanel): clean up typings
* refactor(tablepanel): base threshold as -Infinity
* feat(tablepanel): migrate align to new table config overrides
* feat(tablepanel): migrate links to new table overrides
* refactor(tabelpanel): clean up threshold migrations
* feat(tablepanel): introduce table transform to merge
* feat(tablepanel): add note informing user to manually update links with cell values
Adds support to the terms aggregation for ordering by percentiles and extended stats.
Closes#5148
Co-authored-by: Giordano Ricci <grdnricci@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* StatsPickerEditor - add more config to the options ui
* Show calcs in the legend
* Refactor the way legend items are created
* Progress on refresh
* Migration update
* Use human-readable names in the legend stats
* Disable pointer cursor in table header
* ReleaseNotes: Updated changelog and release notes for 7.3.7
* Changelog: set everything as bug fixes
Co-authored-by: Agnès Toulet <agnes.toulet@gmail.com>
* Convert Cloud Monitoring (Stackdriver) Datasource to use Dataframes #29830
* add deeplink into config
* omggggggggggggggg this deeplink works!
* move unit to the backend part
* remove unit from frontend
* only set the config fields[1] for deeplink and unit
* refactory + fix some test
* remove frontend test for unit
* adding backend test for unit mapping
* resolve review
* rewrtie unit logic to do exactly the same as frontend filter
* refactory
The current backend code doesn't honor the minimum interval set in the UI for alerts using
the Elasticsearch data source. This means that the data the alerts are triggering against
will never match the data in the visualization if auto is used in the date histogram as interval.
This fixes the problem to make sure that date histogram auto interval is set according to
min interval set in UI for the query or fallback to data source min interval setting.
Fixes#22082
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Auth: Add Content-Type to SigV4 header allowlist
* add MT headers to permitted headers
* add Kibana API header to allowlist
* add Content-Length header to allow list
* Update prometheus.md
* Update docs/sources/datasources/prometheus.md
Co-authored-by: Dan Cech <dcech@grafana.com>
* Update prometheus.md
Co-authored-by: Dan Cech <dcech@grafana.com>
Example `ec2_instance_attribute(default, InstanceId, { 'tag:Environment': ['production'] });` will cause `SyntaxError: Unexpected token ' in JSON at position 2`
* get meta data from dataframe meta
* gmdMeta is not used anymore
* wip: move deep link creation to backend
* Refactor backend. Remove not used front end code
* Unit test deep links. Remove not used frontend tests
* remove reference to gmdmeta
* fix goimports error
* fixed after pr feedback
* more changes according to pr feedback
* fix lint issue
* fix bad math expression check and fix bad test
* Decrease nesting
* put link on first data field only
* Legends: Refactoring and rewrites of legend components to simplify components & reuse
* Removed onSeriesAxisToggle
* More removal of onSeriesAxisToggle and storybook improvements
* Added story with legend values
* Move table legend styles from inline to defined in stylesFactory
* Update styles
* Change to circle
* Updated style to fat line
* Rename to VizLegend
* More renamed and fixes / polish
* Removed imports
* Minor change
* Updates
* Updates
* Added 2 image links.
* Fixed a typo
* Fixed one more typo
* Added images to the "Share a panel" and "Share a dashboard" topics.
* Updated title of the section on panel embed.
* Update docs/sources/sharing/share-dashboard.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Fixed numbering.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* WIP, works but need to do more testing
* Update solution
* Fix autocomplete with metrics
* Update public/app/plugins/datasource/prometheus/language_provider.ts
* Update public/app/plugins/datasource/prometheus/language_provider.ts
* Change test for new functionality
* Elasticsearch: Add support for serial diff pipeline aggregation
* Removing settings transsforms
* Removing unused deps
* removing unused dep
* Fixing type in test
* Adding backend support for serial_diff
* Change API to expect UIDs instead of ID
* Remove unnecessary transactions
When only one query is executed
* Modify API responses
* Cleanup tests
* Use globally orgID and UID for identifying alert definitions
* Failed to load application files message improvement IE11
Improvement of the error message with information about the end of support of Internet Explorer 11.
* Update public/views/index-template.html
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Usage Stats: Calculate concurrent users as a histogram
Metric will help to understand if users are sharing their credentials or using one account for concurrent sessions. This will help to make more informed decisions when enforcing any license limitations on credentials usage.
* fall back to any architecture when getting plugin's checksum
* Update pkg/cmd/grafana-cli/commands/install_command.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* remove typo
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* use sha256 checksum instead of md5
* Chore: Rewrite ldap login test to standard library (#29998)
* Chore: Rewrite ldap login test to standard library
* Preserve original ldap enabled setting after test
* Chore: Rewrite models alert test to standard library (#30021)
* Chore: Rewrite models dashboard acl test to standard library (#30022)
* Chore: Rewrite models dashboards test to standard library (#30023)
* Chore: Rewrite login auth test to standard library (#29985)
* Chore: Rewrite login auth test to standard library
* Use assert.Empty when empty string expected
* Chore: Rewrite brute force login protection test to standard library (#29986)
* Update pkg/cmd/grafana-cli/services/api_client.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/cmd/grafana-cli/services/api_client.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* use sha256 checksum instead of md5
* Update pkg/cmd/grafana-cli/services/api_client.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/cmd/grafana-cli/services/api_client.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* grafana-cli: Remove MD5
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Hessman <emil@hessman.se>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* SQLStore: customise the limit of retrieved datasources per organisation
* update all suggestions regarding nil or 0 as default
* Apply suggestions from code review
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* correct default.ini description + adding unittest
* Apply suggestions from code review
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* modify unittest name
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Add fake TeamSyncService
* Change SyncTeams dispatch to direct method call
* Remove SyncTeamsCommand struct
* Move TeamSyncService to a separate package
* Remove context from SyncTeams args
* Add comments to teamsyncgroup package
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Replace TeamSyncService with TeamSyncFunc
* Remove unnecessary error check
* Add a test
* Fix test input
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* PanelEvents: Isolate angular events from panel model events, use new Event patterns
* Removing some events that are not longer needed
* Updated DashboardModel
* Update
* Review fixes
* PanelLibrary: Adds get to the API
* Refactor: adds tests for get and getAll and cleans up other tests
* Refactor: changed name on DTO
* Update pkg/services/librarypanels/api.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/librarypanels/database.go
* Dashboard: Started migrating dashboard settings
* Restore general settings from angular
* Use react permissions component
* feat(dashboard): add react LinksSettings wrapper for dash-links-editor
* feat(dashboard): add react VersionsSettings wrapper for gf-dashboard-history
* refactor(dashboard): replace DashboardPermissions connectWithStore with connect
* chore(dashboard): folderInfo as undefined
* feat(dashboard): initial commit of dashboard settings json editor
* feat(dashboard): introduce save json functionality
* chore(dashboard): delete obsolete imports
* feat(dashboard): add save and save as buttons to settings nav
* feat(dashboard): add react wrapper for annotations settings
* chore(dashboard): put back canDelete for general settings delete button
* Make editable
* Remove makeEditable from SettingsCtrl
* feat(dashboard): show json editor save button if canSave
* refactor(dashboard): move hasUnsavedFolderChange to dashboard.meta
* feat(dashboard): render hasUnsavedFolderChange view in permissions settings
* feat(dashboard): reset hasUnsavedFolderChange on settingg save success
* feat(dashboard): refresh route on sucessful settings save
* test(dashboard): update snapshots
* refactor(dashboard): automatically infer connected props for dashboard permissions
* refactor(dashboard): give dashboard versions checkboxes some padding
* Update public/app/types/folders.ts
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Always use cache: stop passing skipCache among ngalert functions
* Add updated column
* Scheduler initial draft
* Add retry on failure
* Allow settting/updating alert definition interval
Set default interval if no interval is provided during alert definition creation.
Keep existing alert definition interval if no interval is provided during alert definition update.
* Parameterise alerting.Ticker to run on custom interval
* Allow updating alert definition interval without having to provide the queries and expressions
* Add schedule tests
* Use xorm tags for having initialisms with consistent case in Go
* Add ability to pause/unpause the scheduler
* Add alert definition versioning
* Optimise scheduler to fetch alert definition only when it's necessary
* Change MySQL data column to mediumtext
* Delete alert definition versions
* Increase default scheduler interval to 10 seconds
* Fix setting OrgID on updates
* Add validation for alert definition name length
* Recreate tables
* Elasticsearch: use time range from queries or default one
* Fix tests
* Fix language provider tests
* Elasticsearch: remove timeSrv dependency for logs context (#29841)
* Elasticsearch: remove timeSrv dependency for logs context
* Add tests & slighlty improve getIndexList
Co-authored-by: Elfo404 <gio.ricci@grafana.com>
It's not possible to stop an image, you can only start/stop container. I know it's just a little mistake and it sounds a bit like crumb cracker but your description is not correct.
Adding an interface type for usage stats service allows us to not depend on the implementation outside of the package, for example when testing we can easily mock the service
* Chore: Remove internal import for QueryEditorRow
* WIP inline forms fixes
* Added segment group component
* Added component status doc tag
* Chore: add as prop to InlineLabel to control rendered element (#29876)
* Use div for InlineLabel & fix iconbuttons positioning
Co-authored-by: Elfo404 <gio.ricci@grafana.com>
The change allows to add external, additional metrics which will be reported with the rest of hardcoded metrics, allowing to add metrics without a need to change the service itself.
* Increase folder name size in search dashboard
* Use new fontsize in dashboard list panel as well
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Remove unnecessary deduplication
* Remove dedup test as we are not doing dedup on all logs anymore
* Create unique ids in Loki
* Fix comment
* Fix comment
* Store prev response uids in usedUids
* Revert "Store prev response uids in usedUids"
This reverts commit 05c496e2a8.
* Add comment
* Fix using of newlines in detected fields
* Wrapping depends on main selection
* Update props to be optional
* Add missing wrapLogMessage prop to test
* ContextMenuPlugin WIP
* Remove Add annotations menu item from graph context menu
* ts ifx
* WIP
* Tests updates
* ts check fix
* Fix rebase
* Use replace function in angular graph data links
* Refactor Context menu and add Menu component to grafana/ui
* ContextMenuPlugin WIP
* Fix docs issues
* Remove Add annotations menu item from graph context menu
* ts ifx
* Sliders: Update behavior and style tweak
* More style tweaks, and changed new graph opacity option from 0 - 1 to 1 to 100
* Updated point size max
* Fixed hooks useCallback dependency issue
* Update test
* create page and sidebar entry
* add components for query editor and definition
* split pane things
* add reducer and action
* implement split pane and update ui actions
* making things pretty
* Unify toolbar
* minor tweak to title prefix and some padding
* can create definitions
* fix default state
* add notificaion channel
* add wrappers to get correct spacing between panes
* include or exclude description
* implement query editor
* start on query result component
* update from master
* some cleanup and remove expressions touch ups
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Remove feature flag
* Add data source setting for Jaeger
* Refactor trace to logs settings
* Fix tests
* Get ds settings in two steps
* Add info to settings
* Update docs for trace to logs
* Update yarn.lock
* Apply suggestions from code review
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update TraceToLogsSettings after merge with master
* Add config for tags
* Add tags to check for keys
* Apply suggestions from code review
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* DataSourceSettings: Add servername field to DataSource TLS config
A DNS lookup URL can be provided in the DataSource URL field in order
to dynamically load balance between multiple instances of a DataSource.
When using mutual TLS, Golang's TLS config implementation checks that
the certificate's common name (< 1.15) or subject alternative name
(>= 1.15) has the same value as the domain being accessed. If the DNS
entry is dynamically generated for a specific environment, the
certificate cannot be generated with a name matching the dynamic
DNS URL. As such, Golang offers a servername field that can be set to
overwrite what value is used when checking against the certificate's
common name (or subject alternative name). Without this change, Skip
TLS Verify must be set to true in order for the DataSource to work,
removing some of the benefits gained by using mutual TLS.
This commit adds the ability to set Grafana's internal Golang TLS config
servername field from the UI or a provisioned DataSource.
The servername field is optional and the existing behavior is retained if
the field is not set.
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
Co-authored-by: Jeremy Alvis <jalvis@pivotal.io>
* Update docs with PR review changes
Co-authored-by: Jeremy Alvis <jalvis@pivotal.io>
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
* Update with additional PR requested changes
* Minor updates based on PR change requests
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
* Elasticsearch: View in context feature for logs
* Fixing unused type
* Limit show context to esVersion > 5
* Fixing scope for showContextToggle; removing console.log
* Fix typing; adding check for lineField
* Update test to reflect new sorting keys for logs
* Removing sort from metadata fields
* Adding comment for clarity
* Fixing scenerio where the data is missing
* remove export & use optional chaining
Co-authored-by: Elfo404 <gio.ricci@grafana.com>
* cater for empty labels and new DisplayNameFromDS field
* simplify
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* increase priority for ds display name
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Expr: fix failure to execute due to OrgID
Get orgID from the plugin context, which makes more sense anyways.
makes expressions work again after https://github.com/grafana/grafana/pull/29449 changes.
* Do not save organisation on its alert query model
Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
* match time range
* less logging
* almost working
* more logging
* more logging
* fix snapshot
* Use layout effect for the time range ref update
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Starting moving more stuff into data source picker
* WIP progress
* Progress on datasource picker rethink
* Things are working now some details to figure out
* Removed commented part
* Complex work on getting data source lists
* Fixed variable support showing correct data sources
* Tried fixing dashboard import but failed
* Fixes
* Fixed import dashboard
* Fixed unit test
* Fixed explore test
* Fixed test
* Fix
* fixed more tests
* fixed more tests
* fixed showing which option is default in picker
* Changed query variable to use data source picker, updated tests and e2e
* Fixed more tests
* Updated snapshots, had wrong typescript version
* [#29569]: Added creation of missing directory
For image [ubuntu] : /etc/grafana/provisioning/plugins was missing in image creation.
* [#29569]: Added creation of missing directory
For image [alpine] : /etc/grafana/provisioning/plugins was missing in image creation.
* initial impl of Bars, Staircase, Smooth modes
* fix fillTo for staircase and smooth paths
* fix pointSize
* [bars] adjust gap factor & reduce bar width to include stroke width. remove rounding to favor gap & width uniformity over edge crispness.
* remove line path fallback for too-dense data
* "Auto" points mode implies "Never" for Bars
* slightly reduce x axis tick density
* fix bars height calc, make bars crisp again.
* [bars] don't use hard-coded 'x' scale key
* refactor catmullRomFitting() to accept x & y coord arrays. restrict to processing only visible data range.
* move path building functions to own file
* export typed functions
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Rewrite auth proxy tests to use standard lib
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Auth proxy: Use standard error type
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* feat: hide snapshots menu item from viewers
* feat(playlists): prevent viewers from creating/editing playlists
* feat: prevent viewers seeing playlist nav link if no playlists
* refactor(playlist): rename isViewer property to canEditPlaylists
* revert(playlists): put back note if viewer and no playlists
* refactor(snapshots): consider admin/editor permission in folders/dashboards for displaying menu item
* feat(snapshots): only show snapshot nav item if user is signed in
* fix(snapshots): revert snapshots to previous state if delete snapshot api error
* Removing PanelModel usage from query rows
* More work removing dependency on panel model
* Before big change to query options
* Query options now have no dependency on panel model
* Test page is working
* Shared query now works again
* Rename component
* fix after merge
* Fixed issue with old angular editors
* Add test coverage for uPlot initialization and data updates
* fix ts
* WIP
* I see some light in the tunel
* Tests update
* Fix rendering before hooks are evaluated
* Chore: Enable eslint react/no-render-return-value rule
Eanble the rule and remove the unused render return
part of: #29201
* Chore: Enable eslint react/no-children-prop rule
Not linting issues after turning on this. No other file changes requried
part of: #29201
* Chore: Enable eslint react/no-unknown-property rule
Correct enable-background to enableBackground
part of: #29201
* Chore: Enable eslint react/no-unescaped-entities rule
Replaced " with " replaced ' with '
part of: #29201
* WIP Add line limit and query type switch toLoki dashboard editor
* Refactor, reuse code for both - Explore and Dashboard
* Üpdate snapshot tests
* Refactor and unify
* Rename test file
* Update test
* DataLinks: Removes getDataSourceSettingsByUid from applyFieldOverrides and data linking code
* Fixed test
* Fixed a few tests
* Fixed unit tests
* Removed old getDataSourceSettingsByUid from interface, still there for runtime backward compatability
* Chore: Enable eslint react/display-name
Enable react/display-name and fixed the corresponding linting issue
part of: #29201
* Chore: Enable eslint react/no-deprecated
Enable react/no-deprecated and add the UNSAFE_ prefix for deprected methods
part of: #29201
* Chore: Enable eslint react/no-find-dom-node
Enable react/no-find-dom-node rule and use ref instead
part of: #29201
* Test: Update TeamGroupSync test snapshot
Since we added the displayName for ToolTip compontent and tag name is changed.
* Fix: Fixed ClickOutsideWrapper render
The props.children might contains numbers of nodes which make cloneElement failed. Change to simply use a div to wrapper
the children and assign the ref to div for this feature
* Style: Use shorthand method definition style for inline component
* Fix: Rebase master and fix linting
Rebase from master branch and fix new displayName linting warning
* Grunt: Removes grunt dependency and replaces some of it usage with alternatives
* Removed precommit toolkit task
* Fixed toolkit import
* Some cleanup of unused / not working stuff in build.go
* Removed sass errors
* Adding FilterByValue transformer skeleton
* Connecting options with Editor
* Improving UI and making deep copy of options on change.
* Improving Transformation Editor UI
* Implementing Regex filtering
* Adding valueFilters.ts and creating filter registry
* Connecting the test function
* Correcting TypeScript errors
* Using FilterInstance instead of simple Filter test function
* Adding field.type as filter options
* Improving UI. Adding custom placeholder depending on filter.
* Implementing a few more filter types
* Implementing more filters
* Return original data if no filter were processed
* Improving UI
* Correcting TS errors
* Making sure inequality transform are invalid until the filterExpression is not empty
* Cleanup in the UI file
* Improving UI (highlight invalid fields)
* Only show filterType that are supported for the selected field
* Adding tests + correction of a filter
* Adding transformer test
* Adding doc
* Cleanup
* Typing props for FilterSelectorRow component
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Moving rendering in the JSX
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Memoizing filterTypeOptions computation
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Improve code compactness
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Cleanup + solving TS errors
* Updating some labels
* Wrapping stuff around useMemo and useCallback
* Using cloneDeep from lodash
* Don't highlight field name input if null
* Removing time type fields in selectable options
* We want loose equality in this scenario.
* Adding `onChange` to useCallback dependencies
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Include or exclude matching any or all conditions
* Correcting field name matching
* Cleanup
* Don't highlight the filterExpression input when its empty
* Adding Range filter
* Updating doc
* Correcting TS error
* Only showing the Match All/Match Any option if more than one condition
* Two inputs for the Range filter instead of one
* Improving invalid highlight for Range filter type
* Cleanup
* Improving labels in UI
* Using ButtonSelect to improve UI
* editor UI updates.
* Updating tests
* Adding component for Regex
* Improve TS typing
* Adding components for the other filter types.
* Cleanup
* Correct error
* Updating valueFilter.test.ts
* Updating filterByValue.test.ts
* Reverting and removing Range filter
* Update docs/sources/panels/transformations.md
* starting to implement poc.
* added a small poc.
* wip
* added tests.
* added structure for dynamic value matcher editors.
* added more support.
* added some more value matchers.
* removed unused value filters.
* added some more matchers.
* adding more matchers.
* added a range matcher.
* fixing some tests.
* fixing tests.
* remove unused dep.
* making the matching a bit more performant.
* UX improvements and alignment fixes
* fixed delete button.
* fixed some spacing in the UI.
* added docs for matchers.
* adding docs and exposing value matcher types.
* will store dateTime as string.
* updated docs according to feedback.
* moved filter by value in transformation list.
* Improved description.
* added regex value filter.
* added support for regex.
* fixing failing tests.
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Add support for Sensu Go notification channel
Similar to current support for the older "Core" version of
Sensu, this commit add support for the newer version.
Closes#19908
Signed-off-by: Todd Campbell <todd@sensu.io>
* fix linter errors
Signed-off-by: Todd Campbell <todd@sensu.io>
* Apply suggestions from code review
PR review suggestions
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix no new variables error
* Replace convey testing with testify
Signed-off-by: Todd Campbell <todd@sensu.io>
* Wording suggestions
Signed-off-by: Todd Campbell <todd@sensu.io>
* Add docker compose environment for testing/maintenance
Signed-off-by: Todd Campbell <todd@sensu.io>
* Renamed and fixed docker-compose.yaml to work in devenv
Signed-off-by: Todd Campbell <todd@sensu.io>
* Change sensugo web UI port to 3080 so as not to conflict with grafana
Signed-off-by: Todd Campbell <todd@sensu.io>
* Apply suggestions from code review
Set the API key as a secure value.
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Add Sensu Go information to notifications doc
Signed-off-by: Todd Campbell <todd@sensu.io>
* Update pkg/services/alerting/notifiers/sensugo.go
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* change assert to require for Error/NoError tests
Signed-off-by: Todd Campbell <todd@sensu.io>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Moving query stuff out of dashboard folder
* Moved more stuff
* Moving more stuff
* Update
* WIP test page
* Minor change
* Before big changes
* Fixed test
* Refactoring some events to new events
* More refactoring
* Make panel editor subscribe to new event
* Minor change and comment added
* Updated snapshot
* move split pane logic to its own component
* fix update function typing
* destruct updateuistate
* updates after review
* reword the rightpane to work for text panel
Lead all top-level properties that we do not intend to export with an
underscore.
In 2.2.0, only definitions starting with a capital letter were exported.
As well, properties with a leading underscore were not visible to an
entire package - just within the same file. 3.0.0 still considers them
hidden, however, they are now visible to an entire package.
* Add an option to hide certain users in the UI
* revert changes for admin users routes
* fix sqlstore function name
* Improve slice management
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Hidden users: convert slice to map
* filter with user logins instead of IDs
* put HiddenUsers in Cfg struct
* hide hidden users from dashboards/folders permissions list
* Update conf/defaults.ini
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* fix params order
* fix tests
* fix dashboard/folder update with hidden user
* add team tests
* add dashboard and folder permissions tests
* fixes after merge
* fix tests
* API: add test for org users endpoints
* update hidden users management for dashboard / folder permissions
* improve dashboard / folder permissions tests
* fixes after merge
* Guardian: add hidden acl tests
* API: add team members tests
* fix team sql syntax for postgres
* api tests update
* fix linter error
* fix tests errors after merge
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
* Wip
* feat: get storybook and app building locally
* docs: comment webpack react alias
* build(grafana-ui): put back ts-loader
* build: prefer storybook essentials over actions and docs. bump dark-mode
* chore(storybook): migrate to latest config
* build: prevent test env throwing Invalid hook call errors
* chore: lodash resolves to package dependency rather than project
* use decorators as variable instead of function
* perf(storybook): reduce bundling time by splitting type check and compilation
* refactor(storybook): use sortOrder.order param to sort intro story first
* build: use yarn workspace command
* refactor(storybook): use previous knobs addon registration
* migrate button story to controls
* build(storybook): silence warnings in console
* build: bump storybook related ts packages
* style: remove trailing whitespace
* refactor(graphng): export interface for storybook
* controls migration guide
* fix typo
* docs(storybook): default docs to use dark theme as per current implementation
* revert(grafana-ui): put back react-is namedExport
this was changed for react 17 bump but causes rollup to fail during bundling
* chore: bump storybook to 6.1, enable fastRefresh, silence eslint prop-types
* docs(grafana-ui): move knobs -> controls migration guide to storybook style-guide
* chore(storybook): silence terminal warning about order of docs addon
* Update contribute/style-guides/storybook.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Apply documentation suggestions
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* chore(storybook): bump to 6.1.2
Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Add loadtest which authenticates with API key
- Edit load tests to assign the orgId in the default function, as the setup function is only called once for all VUs and therefore the change is not persisted to each VU.
- Remove side effect from orgId setup function and explicitly set orgId in setup client
* sort semicolons, whitespace
* When comparing field config, shallowly compare custom config
* Refactoring plot init and data update (WIP)
* GraphNG: Fixed points mode
* Fixed min & max from frame config
* Fixed axis left / right auto logic
* Minor tweak to cursor color
* Fixed time axis now that uPlot deals in milliseconds as well
* fixed ts issue
* Updated test
* Fixed axis placement logic again
* Added new unit test for axis placement logic
* Removed unused props
* Fixed zoom issue due to uPlot time resolution change
* Add back millisecond time tick support
* Comment out GraphNG test
* Fixed being able to switch legend on/off
* Updated unit tests
* GraphNG: Fixed hiding axis
* Frame comparison: allow skipping properties
* Update y-axis ranges without reinitializing uPlot
* update snap
* GraphNG: Fixed axis label placement and spacing issues
* update snaps
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* fixing so changes to annotations query links will update submenu.
* Refactored so we dont use the events to trigger a refresh but instead recreating the annotations list instead of mutating the existing list.
* updated snapshot.
* uppdates according to feedback.
* fixed so it also works to update a annotation.
* Refactor: Adds getNextAvailableId
* Refactor: Hides DependencyGraph button if there are no dependencies
* Refactor: Changes the new button
* Refactor: Removes usages of NEW_VARIABLE_ID
* Refactor: Reverts the new button
* Updated index topic, removed "what-is-grafana", and adjusted weight of few other topics. Also, updated the left menu.
* Updated title to "Getting started".
* Added alias /docs/grafana/latest/guides/what-is-grafana to _index.md file
* comes from grafana/gel-app
* remove transform plugin code
* move __expr__ and -100 constants to expr pkg
* set OrgID on request plugin context
* use gtime for resample duration
* in resample, rename "rule" to "window", use gtime for duration, parse duration before exec
* remove gel entry from plugins-bundled/external.json
which creates an empty array for plugins
* Tests: Adds expects for observables
* Refactor: renames matcher
* Chore: changed jest version and removed as dev dependency
* Refactor: Changes after PR review
* wip
* Chore: revert
* Chore: Adds jest-matcher-utils
* Chore: fixed merge error
* Tests: Removed inline snapshots as they are env dependent
* Tests: missed a snapshot
* Refactor: Removed type file after PR comments
* fixing so we dont run multiple dashboard links searches when changing variables.
* changed so we fetch the list when open the dashboard links dropdown.
* removed verification of unneccesary requests.
The annotation_tag and alert_rule_tag tables did not have
PRIMARY KEY defined what cause problems with migration to
MariaDB with Galera setup with
innodb_force_primary_key=1
Or MySQL > 8.0.13 with
sql_require_primary_key=ON
Which can manifest as follows:
MariaDB
Error 1173: This table type requires a primary key
MySQL
ERROR 3750 (HY000): Unable to create or change a table
without a primary key, when the system variable 'sql_require_primary_key' is set.
Extra reading for curious:
https://jfg-mysql.blogspot.com/2017/08/danger-no-pk-with-RBR-and-mariadb-protection.htmlFixes#12971
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Docs: Fixes what'new menu and creates index page, adds first draft of release notes to docs
* Minor tweaks
* Fixed missing letter
* Updates
* Updated
Co-authored-by: Drone <drone@grafana.com>
* remove unused function to interpolate URLs
* share function to add headers between ds/plugin proxies
* stop performing unnecessary plugin setting lookup
* fix bug causing runtime errors when using complex templated URLs
* lower case util functions not used outside of pluginproxy package
* change test URL to a (valid) dummy URL to make intent clearer
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Alerting NG: prototype v2 (WIP)
* Separate eval package
* Modify eval alert definition endpoint
* Disable migration if ngalert is not enabled
* Remove premature test
* Fix lint issues
* Delete obsolete struct
* Apply suggestions from code review
* Update pkg/services/ngalert/ngalert.go
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Add API endpoint for listing alert definitions
* Introduce index for alert_definition table
* make ds object for expression to avoid panic
* wrap error
* Update pkg/services/ngalert/eval/eval.go
* Swith to backend.DataQuery
* Export TransformWrapper callback
* Fix lint issues
* Update pkg/services/ngalert/ngalert.go
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Validate alert definitions before storing them
* Introduce AlertQuery
* Add test
* Add QueryType in AlertQuery
* Accept only float64 (seconds) durations
* Apply suggestions from code review
* Get rid of bus
* Do not export symbols
* Fix failing test
* Fix failure due to service initialization order
Introduce MediumHigh service priority and assign it to backendplugin
service
* Fix test
* Apply suggestions from code review
* Fix renamed reference
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Elasticsearch: Add Moving Function Pipeline Aggregation
* Removing support for moving average in 7.x
* Fixing getMetricAggTypes to handle undefined esVersion
* Adding moving_fn to go code
* Update public/app/plugins/datasource/elasticsearch/metric_agg.ts
Co-authored-by: Giordano Ricci <grdnricci@gmail.com>
* Adding test for esversion 70
* Removing default value for script, adding placeholder instead
* Fixing formatting
* Adding code for handling missing or obsolete aggregations
Co-authored-by: Giordano Ricci <grdnricci@gmail.com>
* refactor(dashboard): remove usage of legacyform components in sharemodal
* refactor(dashboard): replace legacyform components
* refactor(dashboard): remove ng-if and correct typo in content of sharesnapshot
* feat(grafana-ui): set displayName prop for Switch component
* refactor(dashboard): migrate TimePickerSettings legacyform components
* refactor(queryoptions): migrate switch and input to nextgen components
* refactor(sharesnapshot): prefer InlineFieldRow over gf-form-group
* refactor(shareembed): styling fixes
* refactor(timepickersettings): prefer double bang over nullish coalescing operator
* fix(grafana-ui): switch uses id prop if passed in
* feat: connect labels and switches with ids
* docs(devenv): introduce troubleshooting section about mac osx and logs
* docs(devenv): tidy troubleshooting
* docs(devenv): move troubleshooting headers up a level and expand on error messge
* TraceViewer: Make sure it does not break when no trace is passed
- exit trace conversion early when there is no trace data
- added test to cover missing trace for trace viewer
* Review feedback
* Use RTL for new test
* Exit early if trace or traceID is not there
* Backend: Adds route for well-known change password URL
* Include 'dashboard/new' in backend routes
* Move index route handler registration out of "not logged in views" section
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Graph refactorings
* Move legend to GraphNG and use new VizLayout
* Things are working
* remove unused things
* Update
* Fixed ng test dashboard
* Update
* More refactoring
* Removed plugin
* Upgrade uplot
* Auto size axis
* Axis scaling
* Fixed tests
* updated
* minor simplification
* Fixed selection color
* Fixed story
* Minor story fix
* Improve x-axis formatting
* Tweaks
* Update
* Updated
* Updates to handle timezone
* Updated
* Fixing types
* Update
* Fixed type
* Updated
* Chore: use jest without grunt
* Run no-focus-convey-tests and no-only-tests as well
* Update lib.star test-backend script with no-focus test to run first
* Lets see a failing test
* Revert "Lets see a failing test"
This reverts commit cb6c6ed67d.
* Update no-focus-convey test to a script
* Update scripts/lib.star
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update drone.yml
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Split main reducer from item reducer
* Move query related redux to separate file
* Split more parts and tests
* Fix import
* Remove unused code
* Update public/app/features/explore/state/datasource.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add section comments
* Rename ExploreItem to ExplorePane
* Fix imports
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* FieldColor: Per panel settings to filter out supported modes
* Updates
* Updated solution
* Update panel plugin API for standard options support
* Update FieldColorConfigSettings interface
* Change color mode correctly when changing plugin type
* Render only applicable color modes in field color config editor
* Apply field config API changes
* TS fixes
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Add Datetime local (No date if today) option
* Add more tests
* Revert to using function for local dateTime format
This is required as Intl api used to convert date to local format is not present in
node environments
* Dashboard: Add named capture groups to variable query regex
Variable query regex are able to use 'text' and 'value' named capture
groups to allow for separate display text to be extracted from the
query result. e.g.
Using a regex of /foo="(?<text>[^"]+)|bar="(?<value>[^"]+)/g on a query
result of metric{foo="FOO", bar="BAR"} would result in the variable
value being set to 'BAR' but display text being set to 'FOO'
Resolves#21076
* Improve regex capture group documentation
* Update docs/sources/variables/filter-variables-with-regex.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Use text capture if value capture does not match
This is to keep the behaviour consistent with the current behavior. See
discussion https://github.com/grafana/grafana/pull/28625/files#r516490942
* Improve regex field placeholder and tooltip message
To make the feature more discoverable to users the place holder example
now includes the named capture groups. The tool tip message also
includes a reference and link to the documentation.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* feat: added NGINX example for using websockets to Loki
* chore: corrections after review
* chore: more correrctions from review
* chore: creview corrections
* chore: addressed review comment by @achatterjee-grafana
* Cloudwatch: Fix issue with reducer transform not working properly with Cloudwatch data
* Updated go sdk and updated code
* CloudWatch: Improve test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Provisioning: Fixed problem with getting started panel being added to custom home dashboard
* Fixed comment
* Update pkg/api/dashboard.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Removed auto-capitalization from the login form
On mobile browsers, by default most keyboards will auto capitalize the first letter of the email/username, which is case sensitive.
This PR fixes that.
* Fixed autoCapitalize react keyword
* Build: changing docs dev-environment
I have added a new image that will include the auto-generated frontend docs so you don't have to generate those locally prior to running the doc container. This has a dependency on this PR: https://github.com/grafana/website/pull/2744 and that we publish a version of the `grafana/docs-devenv` image.
* will ignore everything (even symbolic links)
* fixed spelling.
* added newline.
* updated image name.
* Fix logSeriesToLogsModel when some data frames have empty fields
* Update test
* Update public/app/core/logs_model.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add info about CSV download for Excel in What's new article
* Update docs/sources/whatsnew/whats-new-in-v7-3.md
* Update docs/sources/whatsnew/whats-new-in-v7-3.md
* Add test for SoloPanelPage.tsx
* Fix navigation from one SoloPanelPage to another one
The panel did not update because it assumed that the dashboard was already
fully loaded.
Adds a couple upgrade notes for v7.3 regarding database migrations for
user invites and snapshots.
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* use percentage on topPanel, limit resize
* add relative size to rightPanel, resize split panes on resize
* lock min size of options pane to min 300px, adding debounce
* sorting imports
* assigning the ref, remove debounce
* set default uistate to number instead of string
* revert go.sum and go.mod
* fix go.mod
* feat(grafana-ui): autofocus threshold editor input
* refactor(grafana-ui): remove commented out css
* feat(grafana-ui): use ref for autofocus new thresholds editor input
* refactor(grafana-ui): conditionally set input ref for latest threshold
* refactor(grafana-ui): put back createRef for input ref
Adds support for the Forward OAuth Identity feature in backend data source plugins.
Earlier this feature has only been supported for non-backend data source plugins.
Fixes#26023
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Docs: what's new in enterprise 7.3
* feedback
* feedback
* Update docs/sources/whatsnew/whats-new-in-v7-3.md
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* link to auditing
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
#24999 changed the error response payload, but the test data source
was not adapted to this change and broke the feature of displaying
any errors to the user in the UI. This change should resolve this
problem.
Ref #24999
Ref #28481
If anonymous access is enabled for an org and there are multiple
orgs. When requesting a page that requires user to be logged in
and orgId query string is set in the request url to an org not
equal the anonymous org, if the user is not logged in should
be redirected to the login page.
Fixes#26120
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Updated Getting Started topic, based on feedback from Diana and Daniel. Added 2 entries to Glassry.
* Added new topic Getting Started with Grafana and Prometheus
* Corrected image path. A couple of other minor changes.
* Updated image link based on Marcus's suggestion.
* Updated topics based on feedback.
* Update docs/sources/getting-started/getting-started.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/getting-started/getting-started.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Added Diana's latest changes.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Explore: parse time range fix
* Remove commented out code
* Fix cases for string epoch and ISO strings
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* improve reduce transformer
* add measurment classes
* sync with new grafana measure format
* use address for live
* use plural in URL
* set the field name
* fix build
* find changes
* POST http to channel
* Yarn: Update lock file (#28014)
* Loki: Run instant query only in Explore (#27974)
* Run instant query only in Explore
* Replace forEach with for loop
* don't cast
* Docs: Fixed row display in table (#28031)
* Plugins: Let descendant plugins inherit their root's signature (#27970)
* plugins: Let descendant plugins inherit their root's signature
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Registry: Fix service shutdown mode trigger location (#28025)
* Add Alex Khomenko as member (#28032)
* show history
* fix confirm
* fix confirm
* add tests
* fix lint
* add more errors
* set values
* remove unrelated changes
* unrelated changes
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* use measurments for testdata endpoints
* add live to testdata
* add live to testdata
* Update pkg/services/live/channel.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* update comment formats
* uprevert testdata
* Apply suggestions from code review
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Apply suggestions from code review
* CloudWatch: Add EC2CapacityReservations Namespace (#28309)
* API: Fix short URLs (#28300)
* API: Fix short URLs
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: Add cloud-middleware as code owners (#28310)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* SQLStore: Run tests as integration tests (#28265)
* sqlstore: Run tests as integration tests
* Truncate database instead of re-creating it on each test
* Fix test description
See https://github.com/grafana/grafana/pull/12129
* Fix lint issues
* Fix postgres dialect after review suggestion
* Rename and document functions after review suggestion
* Add periods
* Fix auto-increment value for mysql dialect
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Drone: Fix grafana-mixin linting (#28308)
* Drone: Fix Starlark script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* grafana-mixin: Move build logic to scripts
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Use mixin scripts
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CI build image: Install jsonnetfmt and mixtool
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Makefile: Print commands
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* should only ignore the file in the grafana mixin root folder (#28306)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* fix: for graph size not taking up full height or width
* Graph NG: fix toggling queries and extract Graph component from graph3 panel (#28290)
* Fix issue when data and config is not in sync
* Extract GraphNG component from graph panel and add some tests coverage
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Fix grid color and annotations refresh
* Drone: Use ${DRONE_TAG} in release pipelines, since it should work (#28299)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Explore: respect min_refresh_interval (#27988)
* Explore: respect min_refresh_interval
Fixes#27494
* fixup! Explore: respect min_refresh_interval
* fixup! Explore: respect min_refresh_interval
* UI: export defaultIntervals from refresh picker
* fixup! Explore: respect min_refresh_interval
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Loki: Base maxDataPoints limits on query type (#28298)
* Base maxLines and maxDataPoints based on query type
* Allow overriding the limit to higher value
* Bump tree-kill from 1.2.1 to 1.2.2 (#27405)
Bumps [tree-kill](https://github.com/pkrumins/node-tree-kill) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/pkrumins/node-tree-kill/releases)
- [Commits](https://github.com/pkrumins/node-tree-kill/compare/v1.2.1...v1.2.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump handlebars from 4.4.3 to 4.7.6 (#27416)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.4.3 to 4.7.6.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.3...v4.7.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Build(deps): Bump http-proxy from 1.18.0 to 1.18.1 (#27507)
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Automation: Add backport github action (#28318)
* BackendSrv: Fixes queue countdown when unsubscribe is before response (#28323)
* GraphNG: Use AxisSide enum (#28320)
* IssueTriage: Needs more info automation and messages (#28137)
* IssueTriage: Needs more info automation and messages
* Updated
* Updated
* Updated wording
* SAML: IdP-initiated SSO docs (#28280)
* SAML: IdP-initiated SSO docs
* Update docs/sources/enterprise/saml.md
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Apply suggestions from code review
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Loki: Run instant query only when doing metric query (#28325)
* Run instant query only when doing metric query
* Update public/app/plugins/datasource/loki/datasource.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Automation: Tweaks to more info message (#28332)
* AlertingNG: remove warn/crit from eval prototype (#28334)
and misc cleanup
* area/grafana/toolkit: update e2e docker image (#28335)
* add xvfb to image
* comment out toolkit inclusion
* add latest tag
* update packages for cypress
* cleanup script
* Update auth-proxy.md (#28339)
Fix a minor grammar mistake: 'handling' to 'handle'.
* Git: Create .gitattributes for windows line endings (#28340)
With this set, Windows users will have text files converted from Windows style line endings (\r\n) to Unix style line endings (\n) when they’re added to the repository.
https://www.edwardthomson.com/blog/git_for_windows_line_endings.html
* Docs: Add docs for valuepicker (#28327)
* Templating: Replace all '$tag' in tag values query (#28343)
* Docs: Add missing records from grafana-ui 7.2.1 CHANGELOG (#28302)
* Dashboard links: Places drop down list so it's always visible (#28330)
* calculating whether to place the list on the right or left edge of the parent
* change naming and add import of createRef
* Automation: Update backport github action trigger (#28352)
It seems like GitHub has solved the problem of running github actions on PRs from forks with access to secrets.
https://github.blog/2020-08-03-github-actions-improvements-for-fork-and-pull-request-workflows/#improvements-for-public-repository-forks
If I change the event that triggers it to pull_request_target the action is run in the context of the base instead of the merged PR branch
* ColorSchemes: Adds more color schemes and text colors that depend on the background (#28305)
* Adding more color modes and text colors that depend on the background color
* Updates
* Updated
* Another big value fix
* Fixing unit tests
* Updated
* Updated test
* Update
* Updated
* Updated
* Updated
* Updated
* Added new demo dashboard
* Updated
* updated
* Updated
* Updateed
* added beta notice
* Fixed e2e test
* Fix typos
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* revert pseduo code
* apply feedback
* remove HTTP for now
* fix backend test
* change to datasource
* clear input for streams
* fix docs?
* consistent measure vs measurements
* better jsdocs
* fix a few jsdoc errors
* fix comment style
* Remove commented out code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix build
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* set the stringField
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: ozhuang <ozhuang.95@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Amos Law <ahlaw.dev@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: The Rock Guy <fabian.bracco@gvcgroup.com.au>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Elliot Pryde <elliot.pryde@elliotpryde.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Brian Gann <briangann@users.noreply.github.com>
Co-authored-by: J-F-Far <joel.f.farthing@gmail.com>
Co-authored-by: acoder77 <73009264+acoder77@users.noreply.github.com>
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Krzysztof Dąbrowski <krzysdabro@live.com>
Co-authored-by: maknik <mooniczkam@gmail.com>
* adding cache and making sure we don't fail build if no changes have been made.
* fixed indentation.
* changed so we use the shared repo for the sync action.
* Alerting: Return proper status code when trying to create an Alert Notification where the name or UID already exists.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Adding more color modes and text colors that depend on the background color
* Updates
* Updated
* Another big value fix
* Fixing unit tests
* Updated
* Updated test
* Update
* Updated
* Updated
* Updated
* Updated
* Added new demo dashboard
* Updated
* updated
* Updated
* Updateed
* added beta notice
* Fixed e2e test
* Fix issue when data and config is not in sync
* Extract GraphNG component from graph panel and add some tests coverage
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Fix grid color and annotations refresh
* sqlstore: Run tests as integration tests
* Truncate database instead of re-creating it on each test
* Fix test description
See https://github.com/grafana/grafana/pull/12129
* Fix lint issues
* Fix postgres dialect after review suggestion
* Rename and document functions after review suggestion
* Add periods
* Fix auto-increment value for mysql dialect
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Thank you for sending a pull request! Here are some tips:
1. If this is your first time, please read our contribution guide at https://github.com/grafana/grafana/blob/master/CONTRIBUTING.md
1. If this is your first time, please read our contribution guide at https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md
2. Ensure you include and run the appropriate tests as part of your Pull Request.
@@ -10,7 +10,7 @@ Thank you for sending a pull request! Here are some tips:
4. If the Pull Request is a work in progress, make use of GitHub's "Draft PR" feature and mark it as such.
5. If you can not merge your Pull Request due to a merge conflict, Rebase it. This gets it in sync with the master branch.
5. If you can not merge your Pull Request due to a merge conflict, Rebase it. This gets it in sync with the main branch.
6. Name your PR as "<FeatureArea>: Describe your change", e.g. Alerting: Prevent race condition. If it's a fix or feature relevant for the changelog describe the user impact in the title. The PR title is used to auto-generate the changelog for issues marked with the "add to changelog" label.
The bot is configured via [commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json) and some other GitHub workflows [workflows](https://github.com/grafana/grafana/tree/main/.github/workflows).
Comment commands:
* Write the word `/duplicate #<number>` anywhere in a comment and the bot will add the correct label and standard message.
* Write the word `/needsMoreInfo` anywhere in a comment and the bot will add the correct label and standard message.
Label commands:
* Add label `bot/question` the the bot will close with standard question message and add label `type/question`
* Add label `bot/duplicate` the the bot will close with standard duplicate message and add label `type/duplicate`
* Add label `bot/needs more info` for bot to request more info (or use comment command mentioned above)
* Add label `bot/close feature request` for bot to close a feature request with standard message and adds label `not implemented`
* Add label `bot/no new info` for bot to close an issue where we asked for more info but has not received any updates in at least 14 days.
## Metrics
Metrics are configured in [metrics-collector.json](https://github.com/grafana/grafana/blob/main/.github/metrics-collector.json) and are also defined in the
To automatically backport a PR to a release branch like v7.3.x add a label named `backport v7.3.x`. The label name should follow the pattern `backport <branch-name>`. Once merged grafanabot will automatically
try to cherry-pick the PR merge commit into that branch and open a PR. It will sync the milestone with the source PR so make sure the source PR also is assigned the milestone for the patch release. If the PR is already merged you can still add this label and trigger the backport automation.
If there are merge conflicts the bot will write a comment on the source PR saying the cherry-pick failed. In this case you have to do the cherry pick and backport PR manually.
The backport logic is written [here](https://github.com/grafana/grafana-github-actions/blob/main/backport/backport.ts)
"comment":"Please ask your question on [community.grafana.com/](https://community.grafana.com/). To avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/master/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
"comment":"Please ask your question on [community.grafana.com/](https://community.grafana.com/). To avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
},
{
"type":"comment",
@@ -14,14 +16,38 @@
},
{
"type":"label",
"name":"type/duplicate",
"name":"bot/duplicate",
"addLabel":"type/duplicate",
"removeLabel":"bot/duplicate",
"action":"close",
"comment":"Thanks for creating this issue! It looks like this has already been reported by another user. We’ve closed this in favor of the existing one. Please consider adding any details you think is missing to that issue.\n\nTo avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/master/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
"comment":"Thanks for creating this issue! It looks like this has already been reported by another user. We’ve closed this in favor of the existing one. Please consider adding any details you think is missing to that issue.\n\nTo avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
},
{
"type":"comment",
"name":"needsMoreInfo",
"allowUsers":[],
"action":"updateLabels",
"addLabel":"bot/needs more info"
},
{
"type":"label",
"name":"no new info",
"name":"bot/needs more info",
"action":"updateLabels",
"addLabel":"needs more info",
"removeLabel":"bot/needs more info",
"comment":"Thanks for creating this issue! We think it's missing some basic information. \r\n\r\nFollow the issue template and add additional information that will help us replicate the problem. \r\nFor data visualization issues: \r\n- Query results from the inspect drawer (data tab & query inspector)\r\n- Panel settings can be extracted in the panel inspect drawer JSON tab\r\n\r\nFor dashboard related issues: \r\n- Dashboard JSON can be found in the dashboard settings JSON model view\r\n\r\nFor authentication, provisioning and alerting issues, Grafana server logs are useful. \r\n\r\nHappy graphing!"
},
{
"type":"label",
"name":"bot/no new info",
"action":"close",
"comment":"We've closed this issue since it needs more information and hasn't had any activity recently. We can re-open it after you you add more information. To avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/master/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
"comment":"We've closed this issue since it needs more information and hasn't had any activity recently. We can re-open it after you you add more information. To avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
},
{
"type":"label",
"name":"bot/close feature request",
"action":"close",
"addLabel":"not implemented",
"comment":"This feature request has been open for a long time with few received upvotes or comments, so we are closing it. We're trying to limit open GitHub issues in order to better track planned work and features. \r\n\r\nThis doesn't mean that we'll never ever implement it or that we will never accept a PR for it. A closed issue can still attract upvotes and act as a ticket to track feature demand\/interest. \r\n\r\nThank You to you for taking the time to create this issue!"
@@ -19,9 +19,20 @@ For more ways to contribute, check out the [Open Source Guides](https://opensour
### Report bugs
Before submitting a new issue, try to make sure someone hasn't already reported the problem. Look through the [existing issues](https://github.com/grafana/grafana/issues) for similar issues.
Report a bug by submitting a [bug report](https://github.com/grafana/grafana/issues/new?labels=type%3A+bug&template=1-bug_report.md). Make sure that you provide as much information as possible on how to reproduce the bug.
Before submitting a new issue, try to make sure someone hasn't already reported the problem. Look through the [existing issues](https://github.com/grafana/grafana/issues) for similar issues.
Follow the issue template and add additional information that will help us replicate the problem.
For data visualization issues:
- Query results from the inspect drawer (data tab & query inspector)
- Panel settings can be extracted in the panel inspect drawer JSON tab
For a dashboard related issues:
- Dashboard JSON can be found in the dashboard settings JSON model view
For authentication and alerting Grafana server logs are useful.
#### Security issues
@@ -65,4 +76,4 @@ Before we can accept your pull request, you need to [sign our CLA](https://grafa
- Set up your [development environment](contribute/developer-guide.md).
- Learn how to [contribute documentation](contribute/documentation.md).
- Get started [developing plugins](https://grafana.com/docs/grafana/latest/developers/plugins/) for Grafana.
- Look through the resources in the [contribute](https://github.com/grafana/grafana/tree/master/contribute) folder.
- Look through the resources in the [contribute](https://github.com/grafana/grafana/tree/main/contribute) folder.
@@ -301,10 +301,12 @@ Even if you don't have the time or knowledge to investigate an issue we highly r
## Automation
We have some automation that triggers on comments or labels being added to issues. Many of these automated behaviors are defined in [commands.json](https://github.com/grafana/grafana/blob/master/.github/commands.json). Or in other [GitHub Actions](https://github.com/grafana/grafana/tree/master/.github/workflows)
We have some automation that triggers on comments or labels being added to issues. Many of these automated behaviors are defined in [commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json). Or in other [GitHub Actions](https://github.com/grafana/grafana/tree/main/.github/workflows)
* Add /duplicate `#<issue number>` to have Grafana label & close issue with an appropriate message.
* Add `type/question` and the bot will close it with an appropriate message.
* Add `bot/question` and the bot will close it with an appropriate message.
[Read more on bot actions](https://github.com/grafana/grafana/blob/main/.github/bot.md)
@@ -17,7 +17,7 @@ for built-in plugins and everything internal. External plugins still use systemj
set of Grafana components they can import. Plugins can depend on libs like lodash & moment and internal components
like before using the same import paths. However since everything in Grafana is no longer accessible, a few plugins could encounter issues when importing a Grafana dependency.
[List of exposed components plugins can import/require](https://github.com/grafana/grafana/blob/master/public/app/features/plugins/plugin_loader.ts#L48)
[List of exposed components plugins can import/require](https://github.com/grafana/grafana/blob/main/public/app/features/plugins/plugin_loader.ts#L48)
If you think we missed exposing a crucial lib or Grafana component let us know by opening an issue.
Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture:
- **Visualize:** Fast and flexible client side graphs with a multitude of options. Panel plugins for many different way to visualize metrics and logs.
- **Visualize:** Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
- **Dynamic Dashboards:** Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
- **Explore Metrics:** Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
- **Explore Logs:** Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
@@ -33,14 +33,15 @@ If you're interested in contributing to the Grafana project:
- Start by reading the [Contributing guide](/CONTRIBUTING.md).
- Learn how to set up your local environment, in our [Developer guide](/contribute/developer-guide.md).
@@ -12,7 +12,7 @@ Team members and their access to repositories is maintained through [GitHub team
## Proposing changes
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the master branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the main branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
- Directly in a RR (Pull Request) - this MAY be done, but SHOULD not be the common case.
- Issue
- Developer mailing list
@@ -23,7 +23,7 @@ Significant changes MUST be discussed and agreed upon with the relevant subsyste
## Merging PRs (Pull Requests)
Depending on the size and complexity of a PR, different requirements MUST be applied. Any team member contributing substantially to a PR MUST NOT count against review requirements.
Commits MUST be merged into master using PRs. They MUST NOT be merged into master directly.
Commits MUST be merged into main using PRs. They MUST NOT be merged into main directly.
- Every merge MUST be approved by at least one team member.
- Non-trivial changes MUST be approved by at least
- two team members, or
@@ -38,6 +38,12 @@ PRs MUST be [reviewed](https://help.github.com/en/github/collaborating-with-issu
Once a PR is approved as per above, any team member MAY merge the PR.
## Backporting a PR
PRs intended for inclusion in the next PATCH release they must be backported to the release branch. The bot can do this automatically. [Read more on backport PRs](https://github.com/grafana/grafana/blob/main/.github/bot.md). Both the source PR and the backport PR should be assigned to the patch release milestone, unless you are backporting to many releases then it can differ.
Backport PRs are also needed during the beta period to get fixes into the stable release.
# Release workflow
## Branch structure
@@ -45,7 +51,7 @@ Once a PR is approved as per above, any team member MAY merge the PR.
Grafana uses trunk-based development.
In particular, we found that the following principles match how we work:
- Master and release branches MUST always build without failure.
- Main and release branches MUST always build without failure.
- Branches SHOULD be merged often. Larger changes SHOULD be activated with feature flags until they are ready. Long-lived development branches SHOULD be avoided.
- Changes MAY be enabled by default once they are in a complete state
- Changes which span multiple PRs MUST be described in an overarching issue or Google Doc.
@@ -55,14 +61,12 @@ In particular, we found that the following principles match how we work:
Releases MUST follow [Semantic Versioning](https://semver.org/) in naming and SHOULD follow Semantic Versioning as closely as reasonably possible for non-library software.
Release branches MUST be split from the following branches.
- MAJOR release branches MUST be based on master.
- MINOR release branches MUST be based on master.
- MAJOR release branches MUST be based on main.
- MINOR release branches MUST be based on main.
- PATCH release branches MUST be split from the relevant MINOR release branch’s most current PATCH
Security releases follow the same process but MUST be prepared in secret. Security releases MUST NOT include changes which are not related to the security fix. Normal release processes MUST accommodate the security release process. SECURITY.md MUST be followed.
PRs intended for inclusion in the next PATCH release MUST be labeled with `cherry-pick-needed` so they can be picked up by automated release tooling.
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
default_home_dashboard_path=
################################### Data sources #########################
[datasources]
# Upper limit of data sources that Grafana will return. This limit is a temporary configuration and it will be deprecated when pagination will be introduced on the list data sources API.
# Path to a custom home page. Users are only redirected to this if the default home dashboard is used. It should match a frontend route and contain a leading slash.
home_page=
# External user management
external_manage_link_url=
external_manage_link_name=
@@ -296,6 +334,9 @@ editors_can_admin = false
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
user_invite_max_lifetime_duration=24h
# Enter a comma-separated list of usernames to hide them in the Grafana UI. These users are shown to Grafana admins and to themselves.
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
default_timezone=browser
[expressions]
# Enable or disable the expressions functionality.
# You can configure the database connection by specifying type, host, name, user and password
@@ -87,6 +94,12 @@
# For "postgres" only, either "disable", "require" or "verify-full"
;ssl_mode = disable
# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
# For "mysql" use "READ-UNCOMMITTED", "READ-COMMITTED", "REPEATABLE-READ" or "SERIALIZABLE".
;isolation_level =
;ca_cert_path =
;client_key_path =
;client_cert_path =
@@ -110,6 +123,11 @@
# For "sqlite3" only. cache mode setting used for connecting to the database. (private, shared)
;cache_mode = private
################################### Data sources #########################
[datasources]
# Upper limit of data sources that Grafana will return. This limit is a temporary configuration and it will be deprecated when pagination will be introduced on the list data sources API.
;datasource_limit = 5000
#################################### Cache server #############################
[remote_cache]
# Either "redis", "memcached" or "database" default is "database"
@@ -127,10 +145,13 @@
# This enables data proxy logging, default is false
;logging = false
# How long the data proxy waits before timing out, default is 30 seconds.
# How long the data proxy waits to read the headers of the response before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
;timeout = 30
# How long the data proxy waits to establish a TCP connection before timing out, default is 10 seconds.
;dialTimeout = 10
# How many seconds the data proxy waits before sending a keepalive probe request.
;keep_alive_seconds = 30
@@ -146,6 +167,9 @@
# The maximum number of idle connections that Grafana will keep alive.
;max_idle_connections = 100
# The maximum number of idle connections per host that Grafana will keep alive.
;max_idle_connections_per_host = 2
# How many seconds the data proxy keeps an idle connection open before timing out.
;idle_conn_timeout_seconds = 90
@@ -160,6 +184,9 @@
# Change this option to false to disable reporting.
;reporting_enabled = true
# The name of the distributor of the Grafana instance. Ex hosted-grafana, grafana-labs
;reporting_distributor = grafana-labs
# Set to false to disable all checks to https://grafana.net
# for new versions (grafana itself and plugins), check is used
# in some UI views to notify that grafana or plugin update exists
@@ -228,6 +255,15 @@
# when they detect reflected cross-site scripting (XSS) attacks.
;x_xss_protection = true
# Enable adding the Content-Security-Policy header to your requests.
# CSP allows to control resources the user agent is allowed to load and helps prevent XSS attacks.
;content_security_policy = false
# Set Content Security Policy template used when adding the Content-Security-Policy header to your requests.
# $NONCE in the template includes a random nonce.
# $ROOT_PATH is server.root_url without the protocol.
# Path to a custom home page. Users are only redirected to this if the default home dashboard is used. It should match a frontend route and contain a leading slash.
; home_page =
# External user management, these options affect the organization users view
;external_manage_link_url =
;external_manage_link_name =
@@ -295,6 +334,9 @@
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
;user_invite_max_lifetime_duration = 24h
# Enter a comma-separated list of users login to hide them in the Grafana UI. These users are shown to Grafana admins and themselves.
; hidden_users =
[auth]
# Login cookie name
;login_cookie_name = grafana_session
@@ -311,7 +353,7 @@
# Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false
;disable_login_form = false
# Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false
# Set to true to disable the signout link in the side menu. Useful if you use auth.proxy or auth.jwt, defaults to false
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
;default_timezone = browser
[expressions]
# Enable or disable the expressions functionality.
@@ -8,13 +8,13 @@ Grafana supports the [following databases](https://grafana.com/docs/installation
- [PostgreSQL](https://www.postgresql.org/)
- [SQLite3](https://www.sqlite.org/)
Grafana uses the [XORM](https://xorm.io) framework for persisting objects to the database. For more information on how to use XORM, refer to the [documentation](http://gobook.io/read/github.com/go-xorm/manual-en-US/).
Grafana uses the [XORM](https://xorm.io) framework for persisting objects to the database. For more information on how to use XORM, refer to the [documentation](https://gobook.io/read/gitea.com/xorm/manual-en-US/).
[Services](services.md) don't use XORM directly. Instead, services use the _SQL store_, a special type of service that provides an abstraction for the database layer. There are two ways of using the `sqlstore`: using `sqlstore` handlers, and using the `SqlStore` instance.
[Services](services.md) don't use XORM directly. Instead, services use the _SQL store_, a special type of service that provides an abstraction for the database layer. There are two ways of using the `sqlstore`: using `sqlstore` handlers, and using the `SQLStore` instance.
## `sqlstore` handlers
> **Deprecated:** We are deprecating `sqlstore` handlers in favor of using the `SqlStore` object directly in each service. Since most services still use the `sqlstore` handlers, we still want to explain how they work.
> **Deprecated:** We are deprecating `sqlstore` handlers in favor of using the `SQLStore` object directly in each service. Since most services still use the `sqlstore` handlers, we still want to explain how they work.
The `sqlstore` package allows you to register [command handlers](communication.md#handle-commands) that either store, or retrieve objects from the database. `sqlstore` handlers are similar to services:
Here, `inTransaction` is a helper function in the `sqlstore` package that provides a session, that lets you execute SQL statements.
## `SqlStore`
## `SQLStore`
As opposed to a `sqlstore` handler, the `SqlStore` is a service itself. The `SqlStore` has the same responsibility however: to store and retrieve objects, to and from the database.
As opposed to a `sqlstore` handler, the `SQLStore` is a service itself. The `SQLStore` has the same responsibility however: to store and retrieve objects, to and from the database.
To use the `SqlStore`, inject the `SQLStore` in your service struct:
To use the `SQLStore`, inject it in your service struct:
```go
type MyService struct {
SQLStore *sqlstore.SqlStore `inject:""`
SQLStore *sqlstore.SQLStore `inject:""`
}
```
@@ -79,7 +79,7 @@ To see all the types of migrations you can add, refer to [migrations.go](/pkg/se
Before you add a migration, make sure that you:
- Never change a migration that has been committed and pushed to master.
- Never change a migration that has been committed and pushed to main.
- Always add new migrations, to change or undo previous migrations.
Add a migration using one of the following methods:
[BackendSrv](https://grafana.com/docs/grafana/latest/packages_api/runtime/backendsrv) handles all outgoing HTTP requests from Grafana. This document explains the high-level concepts used by `BackendSrv`.
## Canceling requests
This section describes how canceling requests work in Grafana. While data sources can implement their own cancellation concept, we recommend that you use the method we describe here.
A data request can take a long time to finish. During the time between when a request starts and finishes, the user can change context. For example, the user may navigate away or issue the same request again.
If we wait for canceled requests to complete, it might create unnecessary load on data sources.
Grafana uses a concept called _request cancelation_ to cancel any ongoing request that Grafana doesn't need.
#### Before Grafana 7.2
Before Grafana can cancel any data request, it has to identify that request. Grafana identifies a request using the property `requestId` [passed as options](https://github.com/grafana/grafana/blob/main/docs/sources/packages_api/runtime/backendsrvrequest.md) when you use [BackendSrv](https://grafana.com/docs/grafana/latest/packages_api/runtime/backendsrv).
The cancellation logic is as follows:
- When an ongoing request discovers that an additional request with the same `requestId` has started, then Grafana will cancel the ongoing request.
- When an ongoing request discovers that the special "cancel all requests" `requestId` was sent, then Grafana will cancel the ongoing request.
#### After Grafana 7.2
Grafana 7.2 introduced an additional way of canceling requests using [RxJs](https://github.com/ReactiveX/rxjs). To support the new cancellation functionality, the data source needs to use the new `fetch` function in [BackendSrv](https://grafana.com/docs/grafana/latest/packages_api/runtime/backendsrv).
Migrating the core data sources to the new `fetch` function [is an ongoing process that you can read about in this issue.](https://github.com/grafana/grafana/issues/27222)
## Request queue
Depending on how the web browser implements the protocol for HTTP 1.1, it will limit the number of parallel requests, lets call this limit _max_parallel_browser_request_.
Unless you have configured Grafana to use HTTP2, the browser limits parallel data requests according to the browser's implementation. For more information on how to enable HTTP2, refer to [Configuration](https://grafana.com/docs/grafana/latest/administration/configuration/#protocol).
Because there is a _max_parallel_browser_request_ limit, if some of the requests take a long time, they will block later requests and make interacting with Grafana very slow.
#### Before Grafana 7.2
Not supported.
#### After Grafana 7.2
Grafana uses a _request queue_ to process all incoming data requests in order while reserving a free "spot" for any requests to the Grafana API.
Since the first implementation of the request queue doesn't take into account what browser the user uses, the _request queue_ limit for parallel data source requests is hard-coded to 5.
> **Note:** Grafana instances [configured with HTTP2 ](https://grafana.com/docs/grafana/latest/administration/configuration/#protocol) will have a hard coded limit of 1000.
@@ -19,7 +19,7 @@ To increase the chance of having your pull request accepted, make sure your pull
- Commits within the pull request follow the [Formatting guidelines](#Formatting-guidelines).
- The pull request closes one related issue.
- The pull request contains necessary tests that verify the intended behavior.
- If your pull request has conflicts, rebase your branch onto the master branch.
- If your pull request has conflicts, rebase your branch onto the main branch.
If the pull request fixes a bug:
@@ -43,6 +43,10 @@ Pull requests for Redux contributions must:
- Not contain code that mutates state in reducers or thunks.
- Not contain code that accesses the reducers state slice directly. Instead, the code should use state selectors to access state.
### Backend-specific guidelines
Please refer to the [backend style guidelines](/contribute/style-guides/backend.md).
## Code review
Once you've created a pull request, the next step is to have someone review your change. A review is a learning opportunity for both the reviewer and the author of the pull request.
@@ -93,3 +97,11 @@ The Grafana team _squashes_ all commits into one when we accept a pull request.
We use the pull request title when we generate change logs for releases. As such, we strive to make the title as informative as possible.
Make sure that the title for your pull request uses the same format as the subject line in the commit message.
## Configuration changes
If your PR includes configuration changes, all of the following files must be changed correspondingly:
@@ -20,11 +20,15 @@ We recommend using [Homebrew](https://brew.sh/) for installing any missing depen
```
brew install git
brew install go
brew install node@12
brew install node@14
npm install -g yarn
```
### Windows
If you are running Grafana on Windows 10, we recommend installing the Windows Subsystem for Linux (WSL). For installation instructions, refer to our [Grafana setup guide for Windows environment](https://grafana.com/blog/2021/03/03/how-to-set-up-a-grafana-development-environment-on-a-windows-pc-using-wsl/).
## Download Grafana
We recommend using the Git command-line interface to download the source code for the Grafana project:
@@ -76,7 +80,10 @@ When you log in for the first time, Grafana asks you to change your password.
#### Building on Windows
The Grafana backend includes Sqlite3 which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download).
The Grafana backend includes SQLite which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download). Eventually, if you use [Scoop](https://scoop.sh), you can install GCC through that.
You can simply build the back-end as follows: `go run build.go build`. The Grafana binaries will be in bin\\windows-amd64.
Alternately, if you wish to use the `make` command, install [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm) and use it in a Unix shell (f.ex. Git Bash).
## Test Grafana
@@ -87,7 +94,7 @@ The test suite consists of three types of tests: _Frontend tests_, _backend test
We use [jest](https://jestjs.io/) for our frontend tests. Run them using Yarn:
```
yarn jest
yarn test
```
### Run backend tests
@@ -98,6 +105,14 @@ If you're developing for the backend, run the tests with the standard Go tool:
go test -v ./pkg/...
```
#### On Windows
Running the backend tests on Windows currently needs some tweaking, so use the build.go script:
```
go run build.go test
```
### Run end-to-end tests
The end to end tests in Grafana use [Cypress](https://www.cypress.io/) to run automated scripts in a headless Chromium browser. Read more about our [e2e framework](/contribute/style-guides/e2e.md).
@@ -162,7 +177,7 @@ make devenv sources=influxdb,loki
The script generates a Docker Compose file with the databases you specify as `sources`, and runs them in the background.
See the repository for all the [available data sources](/devenv/docker/blocks). Note that some data sources have specific Docker images for macOS, e.g. `prometheus_mac`.
See the repository for all the [available data sources](/devenv/docker/blocks). Note that some data sources have specific Docker images for macOS, e.g. `nginx_proxy_mac`.
@@ -39,3 +39,62 @@ Tests must use the standard library, `testing`. For assertions, prefer using [te
The majority of our tests uses [GoConvey](http://goconvey.co/) but that's something we want to avoid going forward.
In the `sqlstore` package we do database operations in tests and while some might say that's not suited for unit tests. We think they are fast enough and provide a lot of value.
### Assertions
Use respectively [`assert.*`](https://github.com/stretchr/testify#assert-package) functions to make assertions that
should _not_ halt the test ("soft checks") and [`require.*`](https://github.com/stretchr/testify#require-package)
functions to make assertions that _should_ halt the test ("hard checks"). Typically you want to use the latter type of
check to assert that errors have or have not happened, since continuing the test after such an assertion fails is
chaotic (the system under test will be in an undefined state) and you'll often have segfaults in practice.
### Sub-tests
Use [`t.Run`](https://golang.org/pkg/testing/#T.Run) to group sub-test cases, since it allows common setup and teardown
code, plus lets you run each test case in isolation when debugging. Don't use `t.Run` to e.g. group assertions.
### Cleanup
Use [`t.Cleanup`](https://golang.org/pkg/testing/#T.Cleanup) to clean up resources in tests. It's a less fragile choice than `defer`, since it's independent of which
function you call it in. It will always execute after the test is over in reverse call order (last `t.Cleanup` first, same as `defer`).
## Globals
As a general rule of thumb, avoid using global variables, since they make the code difficult to maintain and reason
about, and to write tests for. The Grafana codebase currently does use a lot of global variables, especially when
it comes to configuration, but that is a problem we're trying to solve.
## Pointers
In general, use value types and only reach for pointers when there's a real need. The reason being that pointers
increase the risk of bugs, since a pointer can be nil and dereferencing a nil pointer leads to a panic (AKA segfault).
Valid reasons to use a pointer include (but not necessarily limited to):
* You might need to pass a modifiable argument to a function
* Copying an object might incur a performance hit (benchmark to check your assumptions, copying is often faster than
allocating heap memory)
* You might *need*`nil` to tell if a variable isn't set, although usually it's better to use the type's zero
value to tell instead
## Database
In database related code, we follow certain patterns.
### Foreign keys
While they can be useful, we don't generally use foreign key constraints in Grafana, for historical and
technical reasons. See this [comment](https://github.com/grafana/grafana/issues/3269#issuecomment-383328548) by Torkel
for context.
### Unique columns
If a column, or column combination, should be unique, add a corresponding uniqueness constraint through a migration.
## JSON
The simplejson package is used a lot throughout the backend codebase, but it's legacy, so if at all possible
avoid using it in new code. Use [json-iterator](https://github.com/json-iterator/go) instead, which is a more performant
drop-in alternative to the standard [encoding/json](https://golang.org/pkg/encoding/json/) package. While encoding/json
is a fine choice, profiling shows that json-iterator may be 3-4 times more efficient for encoding. We haven't profiled
its parsing performance yet, but according to json-iterator's own benchmarks, it appears even more superior in this
This style guide applies to all documentation created for Grafana products.
For information about how to write technical documentation, we suggest reviewing the content of the [Google Technical Writing courses](https://developers.google.com/tech-writing).
For information about how to write technical documentation, refer to the following resources:
The [Divio documentation system](https://documentation.divio.com/) site and the [Vue writing principles](https://v3.vuejs.org/guide/contributing/writing-guide.html#principles) are also good resources.
@@ -12,76 +14,97 @@ The *Documentation style guide* is a living document. Add to it whenever a style
## Published guides
For all items not covered in this guide, refer to the [Microsoft Style Guide](https://docs.microsoft.com/en-us/style-guide/welcome/) and the [Chicago Manual of Style](https://www.chicagomanualofstyle.org/home.html).
For all items that are not covered in this guide, refer to the [Google developer documentation style guide](https://developers.google.com/style) and the [Microsoft style guide](https://docs.microsoft.com/en-us/style-guide/welcome/), in that order.
## Spelling
The [codespell](https://github.com/codespell-project/codespell) tool is run for every change to catch common misspellings.
To catch common misspellings, the [codespell](https://github.com/codespell-project/codespell) tool is run for every change.
## Inclusive language
This section provides guidelines on how to avoid using charged language in documentation.
Avoid using charged language.
### Allowing and blocking
Don't use "whitelist" or "blacklist" when referring to allowing or blocking content or traffic.
When referring to _allowing_ or _blocking_ content or traffic, use a form of _allow_ or _block_:
-When used as a noun, use "allowlist" or "blocklist".
-When used as a verb, use "allow" or "block"
-(noun) _allowlist_ or _blocklist_
-(verb) _allow_ or _block_
Example: _To **allow** outgoing traffic, add the IP to the **allowlist**._
### Leader and follower
Avoid _whitelist_ or _blacklist_.
Don't use "master" or "slave" to describe relationships between nodes or processes.
### Primary and secondary
- Use "leader", "main" or "primary," instead of "master."
- Use "follower" or "secondary," instead of "slave."
To describe relationships between nodes or processes, there are several options:
### Exceptions
- Use _primary_, _main_, or _parent_, instead of _master_.
- Use _secondary_, _replica_, or _child_, instead of _slave_.
When referring to a configuration or settings used by third-party libraries och technologies outside the Grafana project, prefer the original name to avoid confusion.
For example, use "master" when referring to the default Git branch.
Avoid _master_ or _slave_.
## Grafana-specific style
The following sections provide general guidelines on topics specific to Grafana documentation. Note that for the most part, these are *guidelines*, not rigid rules. If you have questions, ask in the #docs channel of Grafana Slack.
The following guidelines are specific to Grafana documentation. For the most part, these are *guidelines* are not rigid rules. If you have questions, then please ask in the #docs channel of Grafana Slack.
### General
- Use active voice. Avoid passive voice.
- Passive: The heatmap visualization is displayed.
- Use active voice:
- Active: Grafana displays the heatmap visualization.
-Write in the imperative second person. Examples: You can write a query. Click the panel. Close the window.
- Write in present tense.
-Not: The panel will open.
-Use: The panel opens. Grafana opens the panel.
-Do not use an ampersand (&) as an abbreviation for "and."
-Passive: The heatmap visualization is displayed.
- Write directly to the reader:
-Use: "After you create a dashboard, you can add a panel to it."
-Avoid: "After you create a dashboard, it is possible to add a panel to it."
-Write in the imperative second person:
- "Click the panel."
- "Close the window."
- Write in present tense:
- Use: "The panel opens."
- Avoid: "The panel will open."
- Do not use an ampersand (&) as an abbreviation for _and_.
- **Exceptions:** If an ampersand is used in the Grafana UI, then match the UI.
- Avoid using internal slang and jargon in technical documentation.
- Do not use two spaces after a period. Only add one space after each sentence. Do not add a space at the end of the paragraph.
-Sentence length should be 25 words or less. If your thought is longer than 25 words, consider breaking up the sentence or changing the format to a list.
-Paragraphs should be three sentences or fewer. Break up long paragraphs.
- Avoid using internal jargon or slang.
- Do not use two spaces after a period; use one space after a sentence.
-Remove any extra space characters at the end of a paragraph.
-Aim for your sentences to be fewer than 25 words. Instead, use smaller complete phrases or change the format, such as using a list.
- Aim for paragraphs to be three sentences or fewer. Make the text more concise, use more headings, or both.
### File naming conventions
- Files that are displayed in the help system should have names that are all lowercase, no spaces. Use hyphens instead of spaces. Example: glossary.md
- Documentation file names should match the title. **Note:** This only applies to new files at this time. Do not change the names of older files unless directed to do so.
- Internal reference file names should be all uppercase except the file extension. Example: CONTRIBUTING.md
- Image file names should be descriptive and unique. Also, add the software version number that the image applies to or the screenshot was taken in. Example: share-dashboard-link-7-3.png
### Headings
- Write headings in sentence case, not title case.
- This is sentence case
- This Is Title Case
- This is Title Case
- Task topic headings start with a verb.
- Write a query. Create a dashboard.
- Write a query
- Create a dashboard
- Concept and reference topic headings should be nouns or gerunds. Examples: Contributing to docs, Visualizations, Style guide
- Avoid following one heading with another heading.
#### Heading don'ts
- Avoid stacked headings, which is following one heading with another heading.
- Avoid skipping heading levels. For example, an h1 should be followed by an h2 rather than an h3.
- Avoid having just one lower-level heading. For example, h1, h2, h2, h3, h3, h2 is a good order. Do not go h1, h2, h3, h2, h3, h2.
-Don't include parenthetical words like (Important!) in headings.
- Avoid having just one lower-level heading. For example, h1, h2, h2, h3, h3, h2, h2 is a good order. Do not go h1, h2, h3, h2, h3, h2.
-Avoid using hyphens in headings.
- Do not include parenthetical words like (Important!) in headings.
#### Step-by-step headings
In most cases, headings should not be numbered steps.
However, sometimes we need to use headings as numbered steps. This is mostly in cases where each step is complex or a series of other procedures. For example, in [Getting started with Grafana and Prometheus](https://grafana.com/docs/grafana/latest/getting-started/getting-started-prometheus/).
If that is the case, then use the following format for headings:
##### Step 1. Install the software
##### Step 2. Run the software
### Images
@@ -91,12 +114,21 @@ The following sections provide general guidelines on topics specific to Grafana
- Assume all graphics will be exclusively viewed on the web.
- Maximum image size is 3840px X 2160px.
- Screenshots should be readable, but not too large.
- _Do not_ use image shortcodes. Follow the guidance in the [Grafana markdown guide](https://github.com/grafana/grafana/blob/main/contribute/style-guides/documentation-markdown-guide.md#images).
- Markdown image links are preferred. Only use the HTML image links if you need to style the image in ways unsupported in Markdown.
- When you name a file, follow the [file naming conventions](#file-naming-conventions). Example: image-name-7-3.png
### Unordered lists
Here are a few general rules about unordered lists. For more guidance, refer to [Lists](https://developers.google.com/style/lists) in the [Google developer style guide](https://developers.google.com/style/).
- List items should begin with a capital letter unless there is a strong reason not to. For example, you are listing case-sensitive parameters.
- List items should end with periods if they are complete sentences. If one item in a list ends with a period, then apply periods to all of them.
### Capitalization
- Grafana, Loki, and Prometheus are always capitalized unless part of a code block.
- API names are always Title Case, followed by "API"—for example, "Dashboard Permissions API"
- Git is always capitalized, unless part of a code block.
- Abbreviations are always capitalized (such as API, HTTP, ID, JSON, SQL, or URL) unless they are part of a code block.
- Menu and submenu titles always use sentence case: capitalize the first word, and lowercase the rest.
- "Dashboards" when referring to the submenu title.
@@ -106,6 +138,34 @@ The following sections provide general guidelines on topics specific to Grafana
- Lowercase "dashboards" when referring to multiple dashboards.
- **Exceptions:** If a term is lowercased in the Grafana UI, then match the UI.
#### Git, GitHub
Git is always capitalized, unless part of a code block. GitHub is the correct spelling and capitalization.
#### Integrations
In general, "integration" is not capitalized. Only capitalize it if it is capitalized in the UI or part of a proper noun, like the name of a specific integration.
The first letter of the name of an integration is always capitalized, even if the original named source is lowercase.
**Examples:**
- MySQL Integration
- CockroachDB Integration
- Etcd Integration
- I installed an integration on my local Grafana.
#### Kubernetes objects
Capitalize Kubernetes objects such as Job, Pod, and StatefulSet when it is clear you are specifically talking about them and not generic jobs, pods, or whatever.
Introduce the object as "Kubernetes XX" on the first usage, then just the object in subsequent uses.
**Example:**
Create the Kubernetes Job and check the logs to retrieve the generated token:
The Job requires the token be submitted as …
### Links and references
When referencing another document, use "Refer to" rather than alternatives such as "See" or "Check out."
@@ -152,9 +212,8 @@ Warnings tell the user not to do something. For example:
- Do not assume everyone is using Linux. Make sure instructions include enough information for Windows and Mac users to successfully complete procedures.
- Do not add `$` before commands. Make it easy for users to copy and paste commands.
- **Wrong:** `$ sudo yum install grafana`
- **Right:** `sudo yum install grafana`
- **Wrong:** `$ sudo yum install grafana`
- Include `sudo` before commands that require `sudo` to work.
Grafana products has some words, abbreviations, and terms particular to the Grafana discourse community.
#### changelog
One word, not two.
**Example**
- Read the full changelog.
**Exception:**
- When referring to the file containing the official changelog, use the filename: `CHANGELOG.md`.
#### checkout, check out
Two words if used as a verb, one word if used as a noun.
@@ -185,7 +256,7 @@ Two words if used as a verb, one word if used as a noun.
#### data source
Two words, not one
Two words, not one.
**Exceptions:**
- "datasource" used as an identifier
@@ -213,12 +284,25 @@ Do not use. This is developer jargon that refers to a UI panel. Refer to the pan
One word, not two.
#### mixin
One word, not two. Also, not hyphenated.
#### open source, open-source
Do not hyphenate when used as an adjective unless the lack of hyphen would cause confusion. For example: _Open source software design is the most open open-source system I can imagine._
Do not hyphenate when it is used as a noun. For example: _Open source is the best way to develop software._
#### plugin, plug in
Two words if used as a verb, one word if used as a noun. Do not use _plug-in_.
**Examples**
- Plug in the appliance.
- Download the plugin.
#### setup, set up
Two words if used as a verb, one word if used as a noun.
@@ -227,3 +311,22 @@ Two words if used as a verb, one word if used as a noun.
- Set up the workspace.
- Initial setup might take five minutes.
#### node_exporter, windows_exporter
When referencing the Prometheus data source exporters, always use "node_exporter" and "windows_exporter" when referring to those tools.
**Correct:** node_exporter, windows_exporter
**Incorrect:** Node Exporter, node exporter, Windows Exporter, Windows exporter, windows exporter.
#### web server
Two words, not one.
**Correct:** web server
**Incorrect:** webserver
### MS SQL Server
Always use "MS SQL" when referring to MS SQL Server application.
Incorrect UI spellings will be corrected in a later version of Grafana.
It is possible to infer connected props automatically from `mapStateToProps` and `mapDispatchToProps` using a helper type `ConnectedProps` from Redux. For this to work the `connect` call has to be split into two parts.
@@ -64,13 +64,13 @@ To link a component’s stories with an MDX file you have to do this:
```jsx
// In TabsBar.story.tsx
import{TabsBar}from"./TabsBar";
import{TabsBar}from'./TabsBar';
// Import the MDX file
importmdxfrom"./TabsBar.mdx";
importmdxfrom'./TabsBar.mdx';
exportdefault{
title:"General/Tabs/TabsBar",
title:'General/Tabs/TabsBar',
component:TabsBar,
parameters:{
docs:{
@@ -93,8 +93,8 @@ There are some things that the MDX file should contain:
```jsx
// In MyComponent.mdx
import{Props}from"@storybook/addon-docs/blocks";
import{MyComponent}from"./MyComponent";
import{Props}from'@storybook/addon-docs/blocks';
import{MyComponent}from'./MyComponent';
<Propsof={MyComponent}/>;
```
@@ -141,39 +141,66 @@ interface MyProps {
}
```
### Knobs
### Controls
Knobs is an [addon to Storybook](https://github.com/storybookjs/storybook/tree/master/addons/knobs) which can be used to easily switch values in the UI. A good use case for it is to try different props for the component. Using knobs is easy. Grafana is set up so knobs can be used straight out of the box. Here is an example of how you might use it.
The [controls addon](https://storybook.js.org/docs/react/essentials/controls) provides a way to interact with a component's properties dynamically and requires much less code than knobs. We're deprecating knobs in favor of using controls.
```jsx
// In MyComponent.story.tsx
#### Migrating a story from Knobs to Controls
import{number,text}from"@storybook/addon-knobs";
As a test, we migrated the [button story](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/Button/Button.story.tsx). Here's the guide on how to migrate a story to controls.
exportconstbasicStory=()=>(
<MyComponent
max={number("Max value",10)}
min={number("Min value",-10)}
title={text("Title","Look at the value!")}
/>
);
```
1. Remove the `@storybook/addon-knobs` dependency.
2. Import the Story type from `@storybook/react`
The general convention is that the first parameter of the knob is its name and the second is the default value. There are some more types:
In more complex cases, especially when you need to style multiple DOM elements in one component, or when using styles that depend on properties and/or state, you should create a helper function that returns an object of styles. This function should also be wrapped in the `stylesFactory` helper function, which will provide basic memoization.
Let's say you need to style a component that has a different background depending on the theme:
Let's say you need to style a component that has a different background depending on the `isActive` property :
@@ -26,11 +26,10 @@ found. The dashboards are located in the `devenv/dev-dashboards` folder.
This command creates a docker-compose file with specified databases configured and ready to run. Each database has
a prepared image with some fake data ready to use. For available databases, see `docker/blocks` directory. Notice that
for some databases there are multiple images, for example there is prometheus_mac specifically for Macs or different
version.
for some databases there are multiple images with different versions. Some blocks such as `slow_proxy_mac` or `apache_proxy_mac` are specifically for Macs.
```bash
make devenv sources=influxdb,prometheus2,elastic5
make devenv sources=influxdb,prometheus,elastic5
```
Some of the blocks support dynamic change of the image version used in the Docker file. The signature looks like this:
@@ -46,4 +45,25 @@ make devenv sources=postgres,openldap,grafana postgres_version=9.2 grafana_versi
The grafana block is pre-configured with the dev-datasources and dashboards.
#### Jaeger
Jaeger block runs both Jaeger and Loki container. Loki container sends traces to Jaeger and also logs its own logs into itself so it is possible to setup derived field for traceID from Loki to Jaeger. You need to install a docker plugin for the self logging to work, without it the container won't start. See https://github.com/grafana/loki/tree/master/cmd/docker-driver#plugin-installation for installation instructions.
Jaeger block runs both Jaeger and Loki container. Loki container sends traces to Jaeger and also logs its own logs into itself so it is possible to setup derived field for traceID from Loki to Jaeger. You need to install a docker plugin for the self logging to work, without it the container won't start. See https://grafana.com/docs/loki/latest/clients/docker-driver/#installing for installation instructions.
#### Graphite
| version | source name | graphite-web port | plaintext port | pickle port |
ERROR: for <service_name> Cannot start service <service_name>: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting ... merged/var/log/grafana: operation not permitted\\\"\"": unknown
ERROR: Encountered errors while bringing up the project.
```
If running Mac OSX the above error might be encountered when starting certain Docker containers that mount `/var/log/`. When first run this causes Docker to try to create the folder `/var/log/grafana` however by default Docker for Mac does not have permission to create folders at this location as it runs as the current user.
To solve this issue manually create the folder `/var/log/grafana` and give your user write permissions then try starting the containers again.
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.