* First pass at using new async apis
* async api tweaks
* clean up async api usage
* Update public/app/features/migrate-to-cloud/onprem/Page.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/migrate-to-cloud/onprem/Page.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* fix syntax
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Adding new export button
* Create Export as JSON drawer
* update scene drawer and add css
* update css
* Update ExportAsJson to be regular react component
* add tests to export menu and button
* add tests
* prettier and lint
* fix translations
* update translation
* Apply suggestions from code review
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* delete extra file
* Update to use SceneObject
* add spinner
* Rename ExportAsJSON.tsx to ExportAsJson.tsx
* update i18n
* Upate texts
* small fixes from code review
* add space
* i18n
* fix build issues
* changes from review feedback
* update test
* update test
---------
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
* Add basic button for adding a query template
* Add hook to create a template
* Handle notifications
* Add tags to invalidate cache
* Generate translations
* Updates types
* Add tests
* Simplify code
* Add user to type
* Add a better default title
* bring in piotrs pr and try to add user data
* Move out of metadata (reserved in k8s) and make new values exportable
* Show user data
* Fix bad merge
* WIP
* Add annotation data to FE
* add (failing) test
* Fix types and test
* Cleanup
* Enhance user data and send to component for display
* Fix type
* Fix expected values
* fix betterer
* Fix test
* Remove user lookup
* testing slug usage for api
* Revert "testing slug usage for api"
This reverts commit cc4556c3b7.
* change types, display userid if login isnt returned
* Simply display whatever is in property
* skip test on removed logic
* Try waiting for query to finish before eval
* Revert "Try waiting for query to finish before eval"
This reverts commit 6220cabd17.
* Handle attribute not existing when storage type is file
---------
Co-authored-by: Piotr Jamroz <pm.jamroz@gmail.com>
* Use runtime data source for getting events from alert state history in the bar chart
* extract translations
* refactor
* More refactor
* Update events limit
* Add info icon with tooltip info for label querying filter
* Add translations
* Create new useRuleHistoryRecords hook skipping extraction of common labels as they are not used
* Fix test
* update limit value for the events in the api to 5000
* Use state for rows key
* remove React import
* Address review comments
* Address review comments
* run prettier
* Remove duplicated handlers
* feat(grafana-data): create rbac functions for checking permissions
* feat(grafana-runtime): pass current user to runtime
* feat(grafana-runtime): expose rbac functions to check permissions against current user
* refactor(contextsrv): use functions from grafana/data to check rbac permissions against user
* Apply suggestions from code review
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* chore(rbac): fix missing types imports
* refactor(rbac): make exposed functions return boolean
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Add ability to show Session for this span button in trace view
* Add session link when fe o11y ids are available
* Add tests for creating session links
* Also check for session id written following otel semantic convention
* update eslint, tsconfig + esbuild to handle new jsx transform
* remove thing that breaks the new jsx transform
* remove react imports
* adjust grafana-icons build
* is this the correct syntax?
* try this
* well this was much easier than expected...
* change grafana-plugin-configs webpack config
* fixes
* fix lockfile
* fix 2 more violations
* use path.resolve instead of require.resolve
* remove react import
* fix react imports
* more fixes
* remove React import
* remove import React from docs
* remove another react import
* create a new table for migration resources
* remove raw result bytes from db
* more snapshot resource management stuff
* integrate new table with snapshots
* pass in result limit and offset as params
* combine create and update
* set up xorm store test
* add unit tests
* save some cpu
* remove unneeded arg
* regen swagger
* fix bug with result processing
* fix update create logic so that uid isn't required for lookup
* change offset to page
* regen swagger
* revert accidental changes to file
* curl command page should be 1 indexed
* Removed depricated HorizontalLayout from PrometheusMetricsBrowser
* Removed commented import
* typo fix
* Removed depricated HorizontalLayout from RawInfluxQLEditor
* Replaced InlineFormLabel to InlineField in RawInlfuxEditor.tsx
* Removed depricated HorizontalLayout from GraphiteFunctionEditor
* Changed div to instead use stack
* Changed htmlFor attribute from selectElementId to aliasElementId
* Updated the betterer results
* Updated prettier write to the updated files
* Changed htmlFor label to fix the text
* RecentlyDeleted: Show hard delete date
* format date
* don't crash when <60 minutes
* tooltip
* reimplement course duration
* oops fixed missed units
* cleanup
* feat(fe-sandbox): introduce module and exports magic modules to executed plugin code
* refactor(fe-sandbox): rename module and exports vars for clarity
* remove/migrate normalize.scss
* fix typo
* migrate _add_data_source styles
* migrate panel-header styles
* migrate slate styles to emotion globals
* put back a couple of classes used by external plugins
* First pass
* WIP
* why is my cpu angy
* Avoid triggering onHiddenSeriesChanged too often
onHiddenSeriesChanged should be called only when dataWithConfig changes, not when the callback changes itself.
This is actually causing an infinite loop because onHiddenSeriesChanged may not be memoized in the parent and passed as a new callback function on each render.
* fix tests
* Remove store mock and clear store between tests instead
* Fix filtering
* First pass adding callbacks and dependencies
* Add useRef hook for toggleLegend and topLogsRef
* Remove unwanted reactivity
register(...) changes outlineItems. A function that calls register(...) behaves like a setter for the state - it cannot react to the state itself.
* Separate unmount clean-ups
* Ensure unmount is not reactive to props
* Make memoized functions stats
* Wrap functions passed down to components with useCallback
* Fix reporting interaction when context is closed
* Adjust several variables to use refs
* Post-merge fixes
* Ensure scrollIntoView is called with a ref to the container
* Update docs
* Ensure scrollIntoView is updated only if the scroll element changes
* Fix the default pinned log tooltip
* Small clean up
* Remove console.log()
---------
Co-authored-by: Piotr Jamroz <pm.jamroz@gmail.com>
Co-authored-by: harisrozajac <haris.rozajac12@gmail.com>
* add new apis
* add payloads
* create snapshot status type
* add some impl
* finish implementing update
* start implementing build snapshot func
* add more fake build logic
* add cancel endpoint. do some cleanup
* implement GetSnapshot
* implement upload snapshot
* merge onprem status with gms result
* get it working
* update comment
* rename list endpoint
* add query limit and offset
* add helper method to snapshot
* little bit of cleanup
* work on swagger annotations
* manual merge
* generate swagger specs
* clean up curl commands
* fix bugs found during final testing
* fix linter issue
* fix unit test
* influx: changes to not wrap * with double quotes for column name
Signed-off-by: Syed Nihal <syed.nihal@nokia.com>
* added unit test for https://github.com/grafana/grafana/issues/88008
Signed-off-by: Syed Nihal <syed.nihal@nokia.com>
---------
Signed-off-by: Syed Nihal <syed.nihal@nokia.com>
* Add info tooltips to logs that have been sampled by adaptive logs
* review commends and linter changes
* make warnings match info
* fix betterer results
* TraceQL: Make the search field component use the virtualized prop for performance gains
* Use act on timers to eliminate warningsd
* Update more timers to use act to fix testing library warnings
* Fix linting failure
* Run make commands
---------
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
* WIP
* Add barchart panel with scenes
* Fix timerange in barchart panel
* Refactor: component names
* Remove not used css styles and rename panel title
* Remove unnecessary HistoryEventsListObject class and update text in labels filter
* add padding top for filter
* Add translations
* update limit labels constant
* Update showing state reason
* Fix scene object
* Address review comments
* Update icons
* use endpoints instead of the autogenerated hook
* Address review comments
* Add tooltip for alert name
* use private polling interval
* fix autogenerated translations
* Address pr rewview comments
* Address review comments
* Update text in placeholder
* Rename variable and remove spaces in Trans children
* rename some stuff
* more renaming
* clean up api
* rename more functions
* rename cms -> gms
* update comment
* update swagger gen
* update endpoints
* overzealous
* final touches
* dont modify existing migrations
* break structs into domain and dtos
* add some conversion funcs
* fix build
* update frontend
* try to make swagger happy
* migrate section-heading
* move fonts to global styles
* migrate code styles to emotion globals
* migrate spacings styles and leave some in angular
* padding should be 2 here not 1
* Scenes: Add support for viewing variable dependency graph in settings
* Fix failing e2e test
* Add test for createDependencyNodes/Edges
* Refactor for better separation between old architecture and scenes
* Add internationalization
* run maker
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* wip: working version
* add delete buttons, put pinned logs on top,
* Use already available onPinLine prop
* cleanup
* Fix alignment of pinned log
* Limit to 3 pinned log lines
* Format tooltip message
* Lower to font size and adjust padding so pinned log title is fully visible
* Add internationalization support in Explore Logs
* Update json for i18n
* Test remove button
* Open content outline after pinning a log
* Remove console.log statements
* Minor changes
* Conflict stuff
* Allow undefined filter prop in adhoc variable when comparing two adhoc variables
* set mock implementation before each test
* mock console.warn in each test
* Calculate row height
* Move things around
* Update getItemSize to use text bounding box
* Update types
* Cleanups and reminders
* Calculate line height
* Update line height calculation
* Remove debugging
* Add cell option editing
* Prettier
* Use field configured for text wrapping
* Add TODO
* Make sure column configuration is correct
* Update height heuristic and hover behavior
* Disable overflow on hover with text wrapping
* Update heuristic
* Clean things up
* Color background cell options
* Fix tests
* Prettier
* React deps
* Remove old hook dep
* Fix type errors
* Update label and description for editor
* Fix non-wrapped case
* Make sure color background works
* Prettier
* Address review comments
* fix prettier
* Add heuristic for field sizing
* Fix up logic
* Prettier
* Fix test
* Oh prettier 🙈
* Don't wrap text on non-string fields
* Add wrapping to color text cell
* Prettier
* Fix option not showing for auto cell type
* Move longest field guessing into function
* Clean things up
* Add tests
* Make sure text won't flake
* Prettier
* Remove spurious import
* Ignore any in this case
* Add alpha label
* Prettier
* Fix typecheck
* Fix crash when sampling when there are undefined records
* Update heuristic to take into account long strings
* Prettier
* Update scale factors
* Update field index selection
* Prettier
---------
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* feat: introduce exposable components and update the public APIs
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* tests: fix the tests for `usePluginComponent()`
I broke them when I wrapped the component with the PluginContextProvider which fetches the plugin metadata.
* fix: typo
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* do it
* set empty child version to parent version
* feat(plugins): use pluginId for loader cache keys
* feat(plugins): apply caching to all js and css files systemjs loads
* remove old code and add comment
* test(plugins): update systemjs hooks tests in line with better caching
* test(plugins): wip - comment out failing backend loader tests
* fix tests and improve comment
* Update public/app/features/plugins/loader/cache.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
---------
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* add version to time-interval models
* set time interval fingerprint as version
* update to check provided version
* delete to check if version is provided in query parameter 'version'
* update integration tests
* update specs
* Support record struct in provisioning API
* Update api spec
* Use record field
* Restrict API endpoints following toggle
* Fix swagger spec
* Add recording rule validation to store validator
* Update types
* Mark datasource as supporting traces
* Add logic to transform exemplar query to traces query
* Render appropriate editor
* Run trace query for exemplars
* Refactor out common functions
- Add function to retrieve first/default subscription
* Add route for trace exemplars
* Update logic to appropriately query exemplars
* Update traces query builder
* Update instance test
* Remove unneeded import
* Set traces pseudo data source
* Replace deprecated function calls
* Add helper for setting default traces query
* Don't show resource field for exemplars query
* When resetting operation ID for exemplars set query to default
- Update tests
* Update query header to appropriately set the service value
* Fix response frame creation and update tests
* Correctly select resource
* Convert subscriptionsApiVersion to const
* Add feature toggle
* revert Select changes as we can handle it outside of the base select component
* update scenes
* update scenes properly
* revert changes to azure-monitor e2e tests
* Kick start your query: keep pipe operations in the original query
* QueryPatternsModal: define keep operations from the operations list
* QueryPatternsModal: resolve deprecation
* QueryPatternsModal: use the correct import
* QueryPatternsModal: use category instead of order rank
* QueryPatternsModal: add unit test case
* Chore: change button cta
* Remove role requirement for editing silence (instead handled by silence editor displaying error)
* Send query params for metadata/access control silence logic
* Add new access control types to enum
* Add folder-specific checks for silences
* Remove filtering in alert manager picker
* fix flakey rule viewer test and update permissions helper
* Use `returnTo` in rule viewer page
* Fix incorrect display of duration
* Clean up some mock server behaviour in rule details tests
* Tweak styles for silences alerts table
* Remove alertmanager picker from silences drawer
* Add error if user cannot edit a silence
* Show alert rule name in silences table and consume RBAC logic
* Update mocks to include RBAC access control logic
* Update silences tests
* Update silences type to include access control info
* Update comment for missing alertmanager
* Update mock handlers and query param logic
* Tweak query params again
* Update access control mock
* Revert AM picker fix as user may not have access to Grafana AM
* Swap ternary order
* Change text for no alert rule targeted
* Don't show error alert from RTKQ query and remove alert instance preview in case of error
* Add missing translations
* Fix test adding missing mock for getting alert rule
* Add missing translations in SilencesTable
* Add translations autogenerated files
* fix allowing edit silence in external alert manager
---------
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* feat: add search input and filters
* feat: add state management v0
* feat: update search view and add to trash page
* refactor: fix some errors
* feat: page population
* feat: fix error
* Run betterer checks locally
* Run i18n abstraction
* refactor: clean up after merging main
* refactor: clean up after merging main
* Run i18n abstraction
* refactor: remove browse view
* Grafana UI: stop input element of the react select component from overflowing the input container
* update snapshot since the css changed
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Show queryVariable editor even if the variable does not support variables
* Fix VariableQueryRunner unit test, now takes into account the new function
* Cloud migration: create route to fetch cloud migration token
* implement gcomStub.ListTokens
* fix swagger for POST /cloudmigration/migration
* fix swagger for POST /cloudmigration/migration
* fix swagger for POST /cloudmigration/migration
* AzureMonitor: get the list of azure clouds from the SDK instead of from a hard coded list
* add azure-sdk to yarn.lock
* merge legacy with custom options
* Normalize legacy cloud names
* Workaround: send new credential format to backend while we wait to migrate to the new format
* Lint fix
* resolveLegacyCloudName should not return undefined
* re-add undefined handling in resolveLegacyCloudName so that we fallback to getDefaultAzureCloud when not defined
---------
Co-authored-by: Jeremy Angel <jeremyangel@microsoft.com>
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Co-authored-by: Alex Petrov <alex.petrov.vt@gmail.com>
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
Co-authored-by: Alex Petrov <apetrov@fastly.com>
* Scopes: Select scope even without data retrieval
* Pass entire scope and not only the spec to Prometheus
* Enrich ScopeSpec that is sent to Prometheus
* add name to BE
---------
Co-authored-by: Kyle Brandt <kyle@grafana.com>
fix: in Components, `model.useState()`, instead of `model.state`
Generally, it is better practice. More succinct.
It could also eliminate subtle state bugs.
* Add custom attention state to dashboard
* Add attention state to DashboardGrid
* Remove old functionality
* Add attention state to keybindingSrv
* Create PanelAttentionService
* Add PanelAttentionService with scenes support
* Remove unused code
* Use viz panel key instead of VizPanel
* Add type assertion
* Add e2e test
* Update comments
* Use panel id for non-scenes use case
* Support undefined service use case
* Memoize singleton call
* Debounce mouseover
* Set panelAttention with appEvents
* Use AppEvents for Scenes
* Remove panelAttentionSrv
* Wait in e2e to handle debounce
* Move subscription to KeybindingSrv
* Remove imports and reset keyboardShortcuts from main
* Fix on* event handlers
* Azure monitor: Basic Logs frontend (#85905)
* adds datasource level config for enabling basic logs
* add basiclogsquery type to query json
* add toggle between basic and analytics
* adds basic logs toggle from UI, blocks time picker to only dashboard if basic logs is selected
* add check to remove UI if alerting
* tests for logsmanagement component
* tests for logs query editor
* tests for time mangement control
* remove unused imports
* clears query whenever toggle changes from basic <-> analytics
* add test to account for clearning query
* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/BasicLogsToggle.tsx
wording
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* update dependency list
* clear basic logs if resources change
* fix tests
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Azure Monitor: Basic Logs modal acknowledgement (#86244)
* adds datasource level config for enabling basic logs
* add basiclogsquery type to query json
* add toggle between basic and analytics
* adds basic logs toggle from UI, blocks time picker to only dashboard if basic logs is selected
* add check to remove UI if alerting
* tests for logsmanagement component
* tests for logs query editor
* tests for time mangement control
* remove unused imports
* add confirm modal
* clears query whenever toggle changes from basic <-> analytics
* add test to account for clearning query
* adds modal acknowledgement for basic logs query
* tests for handling modal logic
* basic logs ack type
* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/BasicLogsToggle.tsx
wording
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* update dependency list
* clear basic logs if resources change
* remove modal from config page
* remove basic logs query ack type
* add modal acknowledgement to toggle between basic and analytics
* clear query if resources change
* fix tests
* fix tests
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsManagement.tsx
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* fix tests
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Azure Monitor: Basic Logs Backend (#87653)
* fix logic for showingBasicLogsToggle
* move to utils function and add basiclogsquery in apply template variable
* add backend safeguards for basiclogsqueries
* adds support for calling search or query apis based on whether it is basic logs or not
* add tests for utils
* initial test for basic logs query in the backend
* tests for basic logs
* remve comment
* simplify checks for basic logs
* adds fromAlert prop for azure monitor backend services
* adds fromAlert check fo basic logs
* fix working and empty tags
* add telemetry for basic logs
* remove import from grafana core package
* change fromAlert true in tests
* change the way tests catch errors
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* restructure code to only run basic logs checks if basiclogsflag is true
* data retention warning
* tests for calculate time range
* Simplify determining if request is from alerting
* Fix lint and bool check
* Fix tests
* clarify data retention
---------
Co-authored-by: Jocelyn <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
* Azure Monitor: Basic Logs data volume notification (#88009)
* frontend changes for data ingested warning
* initial logic for getResource
* payload processing
* create basicLogs usage function
* add utils for converting time and getting the data volume query for basic logs
* frontend updates for showing the data ingested for the given query
* frontend tests
* add check for when no dataIngested is returned
* remove backend.logger prints
* comment on what function does
* fix merge
* make resource URI regex case insensitive
* add support for workspace variables in basic logs flow
* add undefined check
* structure and add tests for variable support
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* add tracing for basic logs usage request
* clean up data volume query struct
* use async/await instead of callback
* fix parameters for getApiURL
* restrict time on usage query to 8 days max
* add time to dependency array to refetch basic logs usage
* move time check implementation to backend
* fix utils tests
---------
Co-authored-by: Jocelyn <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
---------
Co-authored-by: jcolladokuri <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
* NodeGraph: Use values from fixedX/fixedY column for layout
* Cleanup some code, typings and naming
* Add test
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>