* Logs: add reference to the start of the logs
* Logs: Improve pagination by scrolling to the first log
* Logs: move first log ref
* Logs navigation: reset scroll on page changes
* Update tests
* Logs navigation: unify reference to start of logs for scrolling to top
* Chore: update test title
* Move scrolling reference a bit more to the top
* Fix SQL query variable throwing error if query returns no data
* Tests to verify that metricFindQuery returns properly and doesn't throw error
* Fix all codepaths that might throw errors because of undefined backendSrv response
* update react 18 related deps
* fix some types
* make sure we're on react-router-dom >= 5.3.3
* Use new root API
* Remove StrictMode for now - react 18 double rendering causes issues
* fix + ignore some @grafana/ui types
* fix some more types
* use renderHook from @testing-library/react in almost all cases
* fix storybook types
* rewrite useDashboardSave to not use useEffect
* make props optional
* only render if props are provided
* add correct type for useCallback
* make resourcepicker tests more robust
* fix ModalManager rendering
* fix some more unit tests
* store the click coordinates in a ref as setState is NOT synchronous
* fix remaining e2e tests
* rewrite dashboardpage tests to avoid act warnings
* undo lint ignores
* fix ExpanderCell types
* set SymbolCell type correctly
* fix QueryAndExpressionsStep
* looks like the types were actually wrong instead :D
* undo this for now...
* remove spinner waits
* more robust tests
* rewrite errorboundary test to not explicitly count the number of renders
* make urlParam expect async
* increase timeout in waitFor
* revert ExplorePage test changes
* Update public/app/features/dashboard/containers/DashboardPage.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/PublicDashboardPage.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/PublicDashboardPage.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/PublicDashboardPage.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* skip fakeTimer test, ignore table types for now + other review comments
* update package peerDeps
* small tweak to resourcepicker test
* update lockfile...
* increase timeout in sharepublicdashboard tests
* ensure ExplorePaneContainer passes correct queries to initializeExplore
* fix LokiContextUI test
* fix unit tests
* make importDashboard flow more consistent
* wait for dashboard name before continuing
* more test fixes
* readd dashboard name to variable e2e tests
* wait for switches to be enabled before clicking
* fix modal rendering
* don't use @testing-library/dom directly
* quick fix for rendering of panels in firefox
* make PromQueryField test more robust
* don't wait for chartData - in react 18 this can happen before the wait code even gets executed
---------
Co-authored-by: kay delaney <kay@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Align log volumes on x an y axes
* Move helper functions to logs/utils
* Add tests
* Simplify supplementaryQueries.ts
* Fix tests
* Revert code simplifications
To simplify the PR, this can be added in a separate PR
* Fix reusing logs volume when limited/non-limited are used
* Use more specific property name
* Add missing property
* Stretch graph to selected range but only if there's data available
* Fix unit tests
* Fix calculating maximum when bars are stacked
* Sort log volumes by data source name
* Simplify logic to determine if log volumes can be zoomed in
* Transformations: Improve UX and fix refId issues
* Show query names and frame names in description
* move to main grafan UI component
* Added unit test
* Fix lint error
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Show variables used in the target query
* Remove redundant dot
* Add usage stats about correlations
* Revert "Add usage stats about correlations"
This reverts commit 6f0c70084a.
* Add new property to AlertmanagerConfig type
* Implement fetching successfully applied configurations
Added method to fetch them from the API and its corresponding action and reducer
* Extract ConfigEditor as component to avoid code duplication
* Display dropdown with valid configs upon error and allow to save them
* Fix tests
* Refactor to call new endpoint using RTK
* Improve texts
* Apply suggested refactor
* Change constant casing
* Only show config selector for Grafana AM
* Remove ts-ignore
* Move code together for simplicity
* Remove invalid mock
* Update endpoint and types based on backend changes
* Rename property
* Rename alermanager config property from backend changes
* Disable editing old configurations
Due to the latest backend changes, we no longer will provide the option to edit previous AM configurations in a textearea.
Instead users will only be allowed to reset to a specific one with the same content. For this reason the textearea for old conf
igurations is disabled and a different form action (not submit) is executed on the "reset config" button. The updateAlertManage
rConfigAction is reset to its old functionality due to these changes.
* Add id to AlertManagerCortexConfig type
We'll need it to pass as a parameter to the new reset endpoint
* Add new endpoint for resetting AM configs to an old version
* Move the "Reset to selected configuration" button next to the drop-down
* Add relative offset to configurations
* Run test datasource query when mounted
* Auto running test-datasource creates more query history entries
* Make exemplar query intercept more robust
* Delete unrelated query history queries
* Revert "Run test datasource query when mounted"
This reverts commit 28b37e4df9.
* Add default query to testdata and grafana datasources
* Templating: __data __field and __series macros
* filter out datacontext from json serialization
* Fix condition
* Update
* Added test cases for formatting data, and field macros
* tracing: show backend trace ids in frontend
* better trace id naming
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* better trace id naming
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* better trace id naming
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* added feature flag
* bind functionality to the feature flag
* use non-generic name for traceid header
* fixed tests
* loki: do not create empty fields
* do not add empty fields
* fixed graphite test mock data
* added unit-tests to queryResponse
* added unit-tests for backend_srv
* more typescript-friendly check
* added unit-tests for runRequest
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* working but unsure if best strategy
* removal of roleoptions to pass into the profile component
* remove the dispatch of ac
* added comment
* added one more comment tro trigger pipeline
* Added onClick to the link and made path optional.
* Added type to the import.
* revert(plugin-extensions): put back isPromise utility function
* Minor update to the isPromise function.
* added onClick in the panel menu item.
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update chunking mentions in the code and ui
* Rename files and exported functions
* Rename configuration attribute
* Rename grouped querying function name
* Update more function names
* Update unit test
* Update unit tests
* More renames
* Rename time splitting functions
* Hide dashboard hint when dashboard already selected
* Disable panels of types other than graph and timeseries
* Add a test checking disabled panels
* Make all panels selectable
* Fix tests
* Update query display
* Remove links as they don't work
* Remove unused CSS
* Improve styling and add description for data field
* Update docs
* Fix up docs some more
* Move special data sources back to the bottom
* Add language back
* Change order of special datasrouces in docs
* wip for move folders
* hello
* Polish up move dashboard results messages
* tests
* fix other test
* tweak messages when things can't be moved
* tweak messages when things can't be moved
* fix tests
* remove comment
* restore failOnConsole
* .
* Fix move modal not opening due to dodgy rebase
* TraceQL - configurable static fields for new UI
* TraceQL - filter out static fields from Tags section. Added tooltip to static fields
* Add more units to duration validation. Improve duration field tooltip with accepted units
* Better control of delete button on SearchField
* Move new config behind feature toggle
* Special title for intrinsic "name"
* Fix tests
* Move static fields not in the datasource to the Tags section
* Start using the useAsync hook in the Tempo TraceQL configuration page to retrieve the tags and datasource
* Fix tests
* Fix test. Use useAsync to retrieve options in SearchField
* Remove ability to set a default value in filter configuration.
Removed type from filter, dynamic filters are now any filters not present in the datasource config
* Updated the static filters tooltip
* Replace useState + useEffect with useMemo for scopedTag
* Logs Volume: identify timeouts and provide remediation action
* Supplementary result error: refactor updated component API
* Create helper to identify timeout errors
* Update timeout identifying function
* Add unit test
* Update panel unit test
* Update public/app/features/explore/utils/logsVolumeResponse.ts
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Use some instead of reduce
* Change alert type to info
* Add comment
* Remove unnecessary optional chaining
* Remove unnecessary condition
* Remove unnecessary wrapping arrow function
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* add selector to close dashboard settings and use it in e2e tests
* check visibility of add panel button
* check visibility of add new panel button before clicking
* Update scenes to latest
* Replace FormatRegistryID with VariableFormatID
* Remove scene demos that were moved to scenes repo, fix the remaining demos
* Fix grafana Monitoring app
* DashboardsLoader migration
* Fix test
* Empty Dashboard state has its own CTA items and its own separate box to choose a library panel to create
* show empty dashboard screen if no panels
* add feature flag for empty dashboard redesign
* only show empty dashboard redesign if FF
* add-new-panel button is a dropdown with options: visualization, row, import, paste
* fix onPasteCopiedPanel types
* do not create new panel to new dashboard if emptyDashboardPage FF true
* ToolbarButton does not allow rendering of Dropdown's overlay - switch to Button
* remove panel-add icon's default size of xl
* separate components for add new panel from dash navigation bar
* Add back log lines changes
This reverts commit f43ef18732.
* Bring in @torkelo ’s changes to template_srv, implement with new format
* Enable functionality
* Remove non relevant test
* Fix tests, add @ifrost suggested tests and clarifying comment
* Add test around static link logic
* Merge log volume by data source name
* Fix creating response for multiple fallback volumes
* Fix unit tests
* Hide title if there's only one log volume visible
* Make hide title optional
* Remove redundant parentheses
* Do not use frame.name, so the visualization can pick displayNameFromDS from the field config
* Simplify setting aggregated data frame meta data
* Update public/app/features/logs/utils.ts
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Fix legend toggling
* Ensure limited graph info is shown
* Always show the data source name
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Upgrade grafana-google-sdk-go to v0.1.0
* Upgrade @grafana/google-sdk to 0.1.1
* Update doc with provisioning example
* Remove unused types
* Use config types from the sdk
* Add metrics
* Templating: Introduce macros to simplify and optimize some scopedVars
* Fixing tests
* fix test
* minor fix
* refactoring so macros work with formatting
* remove breaking change and keep current inconsistency
* Rename valueIndex to rowIndex
* Minor fixes
* Added test dashboard
* Added tags to dashboard
* Update
* Added test to check it returns match
* Update
* Fixed dashboard
* fix
* Send retention policy if that is specified
* Define the type
* Update default retention policy name
* Update unit tests
* fix unit tests
* fix unit tests again
* Load retention policies at first
* Fix tests
* Fix Editor tests
* Remove unused code
* A simpler approach
* Even simpler
* Even simpler
* Empty Dashboard state has its own CTA items and its own separate box to choose a library panel to create
* show empty dashboard screen if no panels
* start page for empty dashboard
* add feature flag for empty dashboard redesign
* only show empty dashboard redesign if FF
* FeatureToggle: Add toggle to use a new way of rotating tokens
* API: Add endpoints to perform token rotation, one endpoint for api request and one endpoint for redirectsd
* Auth: Aling not authorized handling between auth middleware and access
control middleware
* API: add utility function to get redirect for login
* API: Handle token rotation redirect for login page
* Frontend: Add job scheduling for token rotation and make call to token rotation as fallback in retry request
* ContextHandler: Prevent in-request rotation if feature flag is enabled and check if token needs to be rotated
* AuthN: Prevent in-request rotation if feature flag is enabled and check if token needs to be rotated
* Cookies: Add option NotHttpOnly
* AuthToken: Add helper function to get next rotation time and another function to check if token need to be rotated
* AuthN: Add function to delete session cookie and set expiry cookie
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* dirty dirty code for showing nested folders in folder view
refactor to NestedFolderItem
Update dashboard grid view to new types
update tests
REBASE OUT OF THIS BRANCH - joshhunt/star-by-uid merged into this
Squashed commit of the following:
commit d0f046ccd3
Author: joshhunt <josh@trtr.co>
Date: Wed Feb 8 18:35:56 2023 +0000
undo async
commit abe2777a1f
Author: joshhunt <josh@trtr.co>
Date: Wed Feb 8 18:34:11 2023 +0000
Dashboards: Star dashboards by UID
add type for dashboard search dto
clean DashboardSearchItem type
simplify DashboardSearchHit type
remove unused properties from DashboardSearchHit
make uid non-optional
rename + move NestedFolderItem type to DashboardViewItem
clean up
* wip
* fix checkbox selection of nested folders
* show folder's parent correctly
* Add dashboard result kind
* don't render folder empty view in SearchView
* call nested folders api only if feature flag enabled
* remove unused import
* un-rename variable to reduce PR diff
* fix typo in comment
* fix order of pseudoFolders
* Fix General folder not showing in browse
* rename folder view tests
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Create simple Wizard for Correlations editor
* Allow using custom navigation in the wizard
* Update types
* Add more info
* Add comments
* Update comments
* Remove main info box to avoid having too many info boxes
* Fix CorrelationsPage.test.tsx
* Add Wizard test
* Simplify Correlations wizard
* Make expected typing error more explicit
* Don't use meaningless defaults
* fix: disable orgrolepicker if externaluser is synced
* add disable to role picker
* just took me 2 hours to center the icon
* wip
* fix: check externallySyncedUser for API call
* remove check from store
* add: tests
* refactor authproxy and made tests run
* add: feature toggle
* set feature toggle for tests
* add: IsProviderEnabled
* refactor: featuretoggle name
* IsProviderEnabled tests
* add specific tests for isProviderEnabled
* fix: org_user tests
* add: owner to featuretoggle
* add missing authlabels
* remove fmt
* feature toggle
* change config
* add test for a different authmodule
* test refactor
* gen feature toggle again
* fix basic auth user able to change the org role
* test for basic auth role
* make err.base to error
* lowered lvl of log and input mesg
* Improve showing nextEvaluationDate for rules
Co-Authored-By: Konrad Lalik <konradlalik@gmail.com>
* Improve imports and comments
---------
Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
Logs sample: use the selected time range in sample request
There are parts of the query, such as label values, that could only be present during the current selected time interval. If we request using a time range other than the selected one, we are not providing builder suggestions based on the same data that the user is seeing.
* Support having a datasources array in the rules filter
* Fix tests
* Display a MultiplePicker for filtering datasources
* Fix tests
* Refactor as MultipleDataSourcePicker as FC
* Make select box wider
* Remove FC from component definition
* Display ds options in groups based on whether they manage/don't manage rules
* Change dropdown texts and add help info
* Push values with every map call to avoid hitting the maximum call stack size.
* Add test and refactor to for of
* Use native fill instead of lodash
---------
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* bring in source from database
* bring in transformations from database
* add regex transformations to scopevar
* Consolidate types, add better example, cleanup
* Add var only if match
* Change ScopedVar to not require text, do not leak transformation-made variables between links
* Add mappings and start implementing logfmt
* Add mappings and start implementing logfmt
* Remove mappings, turn off global regex
* Add example yaml and omit transformations if empty
* Fix the yaml
* Add logfmt transformation
* Cleanup transformations and yaml
* add transformation field to FE types and use it, safeStringify logfmt values
* Add tests, only safe stringify if non-string, fix bug with safe stringify where it would return empty string with false value
* Add test for transformation field
* Do not add null transformations object
* Add provisioning (to be removed) and show log lines with links
* Only display links if change to query was made
* Break out transformation logic, add tests to backend code
* Fix lint errors I understand 😅
* Fix the backend lint error
* Remove unnecessary code and mark new Transformations object as internal
* Add support for named capture groups
* Remove type assertion
* Remove variable name from transformation
* Add test for overriding regexes
* Add back variable name field, but change to mapValue
* fix go api test
* Change transformation types to enum, add better provisioning checks for bad type name and format
* Change transformation types to enum, add better provisioning checks for bad type name and format
* Check for expression with regex transformations
* Remove isInterpolated variable, add option to always use format function
* Add template variable check to links
* Use new functions
* Filter log line at render, remove extra createSpanLink imports
* Add scrollable to long log messages
* Remove test that is no longer accurate
* Remove test correlation
* Add tests, fix duplicate key issue
* WIP: show log line links key/value pairs
* Some not great style changes
* Change LogDetailsRow for better multi value formatting
* Cleanup
* Add additional information around variable regex, implement PR feedback
* Display name with fieldPath if applicable
* Add variables with fieldPaths to test
* Count empty string as undefined variable
* Add better commented version of function, fix tests by removing new variable
* Modify when links show
* Remove sample yaml
* If a link has no variables, set value to field name, and some formatting issues
* Add comments and change variable names to be more clear, add back logic where needed, add test coverage for new scenario
* Fix formatting of replaceInVariableRegex comment
* Remove changes from Grafana-data, move logic into explore
* Rename function and property to match similar format
* Move types to type files and consolidate definitions, rename functions, change field definitions to accept arrays of keys/values, move function to parser, hide actions on multi key/value rows
* Add tests to logParser’s new function
* Create RecordingRuleEditor component
It reuses QueryEditor and propagates a few properties to allow to filter the visible datasources and customize what's shown in the editor header
* Set recording rules queries as a new state prop
Otherwise it would get mixed up with the alert rules queries when switching back and forth from this option. This also allows me to initialize these queries with the right datasource
* Show CloudRulesSourcePicker only for Loki/Mimir rules
As now we use the query editor for recording rules which already includes a datasource picker within
* Fix lint and tests
* Fix saving a recording rule
* Show expression when editing the recording rule
* Show query editor back for cloud rules
* Fix duplicated import
* Tweak after rebase
* Remove ts-ignore
* Refactor to use queries state instead of recordingRuleQueries
* Refacrtor RecordingRuleEditor to use ds QueryEditor
* Revert extra properties previously added to QueryEditor components
* Remove console.log
* Fix saving/editing a recording rule
* Fix tests
* Add margin to vizwrapper component
* Added scope to filter
* Intrinsic fields don't have scope
* Consistent plus button placement next to the last tag. Changed All Scopes to "unscoped"
* Added validation to duration fields
* Disable options load when dropdown is opened
* Use focused list of operators when all values are of type string or int/float
* Fixed and added tests
* Fix another test
* Better way to prevent duplicate and redundant backend requests when a filter updates
* Rename splitting files to chunking
* Rename time chunking functions
* Move response functions to response utils
* Remove some blank spaces
* Add an extra test case for frame refIds and names
* Prometheus: Run query explicitly instead of onblur in panel edit, and highlight Run qqueries when query changed
* Update loki to do the same
* Cleanup unused prop
* Remove test
* add `lokiQueryChunkingOption` feature flag
* be safe and also rely on `config.featureToggles.lokiQuerySplitting`
* renamed to `lokiQuerySplittingConfig`
* fix typo
* add table results to metric encyclopedia
* remove extra tests
* add class to top align text in td elements
* add secondary style to use metric button and remove unused styles
* Prometheus: Make metrics encyclopedia more responsive for smaller screens (#64909)
* improvements
* remove comments
* feat: exclude all mertics with no metadata
* remove comment
* convert from InlineSwitch to Switch components
* fix bug, enter a fuzzy search sentence, switch to fullMetaSearch, perform fuzzysearch function
---------
Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>
* Scenes: Progress on demo app
* Argh
* Fixing breadcrumbs
* Added spacer
* Conditional scene objects
* Quick and dirty test for drilldown link via panel title
* Changed the toggle
* Add url state syncing for most links
* Add url state syncing for most links
* Fix instance in url params
* Quick and dirty tabs on the handler page
* fixing breadcrumbs
* Hide footer
* Updates
* new table styles
* Update table cell link styles
* Added search box
* Scene app demo: dynamic data link (#60398)
* Dynamically build data links
* Add field override tests
* Updates
* Updated
* Updates
* before nesting routing
* Something is working
* Caching and nested routes working
* Simplify model
* Use app components from grafana/scenes
* Make the monitoring app work with section nav
* Fixing
* Update scenes
* Remove unused route
* Updates
* remove file
* Update scenes version and use new features
* Remove semicolon
* removed unused thing
* Add refresh pickers
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* add `correlationId` to queries
* trace correlation id in backend
* add correlation id to loki's span
* add correlation id to query chunks
* fix test
* fix DataSourceWithBackend test
* change to `queryGroupId`
* remove empty line
* fix test in `DataSourceWithBackend`
* feat(pluginextensions): move panel menu links into an extensions submenu
* refactor(pluginextensions): move extensions submenu above more... submenu
* test(panelmenu): fix failing tests after moving extensions out of more
* fix: fix rebase issues
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>