* catch error in query tab when running query throws an error
* add translations
* fix translations
* update query runner to omit nodes that failed to link
* remove unused function
* add DAG errors to AlertingQueryRunner
* bump CI
* fix test
* update test
* fix i18n
* revert code pieve
* Bring the piece of code back 😁
* bail from runner when no queries are to be executed
* add tests and translations
* refactor prepareQueries to omit broken refs and exclude descendant nodes
* update code comments
* fix omitting descendant nodes
* add all broken or missing nodes to panel errors
* go go drone
* remove unused function
* fix prettier and translations
* add export
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Add alertingRuleVersionHistory feature toggle
* WIP: Add version history tab
* revert temp change in index.ts
* wip2
* --wip--
* sync code with the BE changes in the endpoint
* add translations
* Add translations
* use ff only for restore feature
* WIP: Add tracking, make version required, and start mapping dif results
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* Tweak more translations and improve types
* Add button to show/hide JSON diff
* update type for top level rule fields
* Create types
* Make updated_by/version properties optional
* Update mocks to remove updated by and version
* add comments to restore code
* rename fetature flag, as we use this one only for the restore feature
* Update version history to handle special cases
* Add diff numbers
* Fix conflicts
* Move generic computeVersionDiff to a utils file
* Update DOM structure of version summary and tidy up types
* Add tests for version comparison logic
* Lint fix utils file
* Rename props and add docs
* Change to EmptyState and log when no versions
* Remove CreatedBy component and simplify
* Add missing i18n for version history
* add test for computeVersionDiff
* update test
* fix number diff order and add a test
* fix prettier
* fix prettier
* Add promise resolve back in
* Rename to humanReadableDiff and tweak translation
* Show tab for recording rules as well
* Split components out to separate files
* Add optional interval seconds
* Update i18n
* Remove commented code
* Remove value
* Remove unneeded version
* Consistent rendering of updated by
* Mode parseVersionInfo to a separate pure function
* update invalidate/provide tags for getAlertVersionHistory
* Use checkedVersions state only in the parent component
* update getSpecialUidMap name and create an interface
* Fix prettier
* update tab description
* use set instead of map for checkedVersions
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* Provisioning: Remove S3
* Provisioning: Use URL for GitHub
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Provisioning: Use workflow list
Co-Authored-By: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Model secrets
* Provisioning: Define a total in the job summary
* Provisioning: Generate code
* Provisioning: Update testdata
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
- use types.Convert to get a more normalized type returned from GMS. After syncing with GMS maintainers, the underlying type of the row could be different things (e.g. int when unit32, so this calls the Convert method from the GMS types library to normalize the interface.
- Clean up fieldValFromRow more
- Use IsText to capture different string types
- Add more types to test, also update test to use same cmp.Diff method as others
---------
Co-authored-by: Sam Jewell <2903904+samjewell@users.noreply.github.com>
* starting to refactor query library to use callback
* replace QueryActionButton with onSelectQuery
* hook up properly in explore
* fix unit tests
* i18n
* extract types
* fix refId in explore
* fix unit tests
* handle changing datasource to mixed
* enrich queries with datasource
* move out into separate function
* filter out expression datasources
When introducing errorsource over in:
https://github.com/grafana/grafana/pull/99900
I introduced a bug - trying to use a http response with a non-nil error.
In that case, the response is nil, so code panics.
This PR removes that check.
* Add Jira integration to cloud AMs
* Add alertingJiraIntegration feature toggle for jira integration
* Update integration name to Jira Service Management
* address pr comments
* gen ff
* add project to the getReceiverDescription for jira
* Update getReceiverDescription for jira
* update text
* update texts and add required option
* Add conversion for fields jira integration to JSON format in the dto and viceversa
* add tests
* Add translation for jira receiver summary
* Add placeholder for Jira duration option
* move logic cheking integrtion type outside the conversion method
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* add config.unifiedAlertingEnabled check to render create alerts menu item from panels
* Disable create rule from panel when unifiedAlerting is disabled
* fix test and lint
* fix test
* handle "sharedwithme" use-case in both legacy/US modes
* display "Shared with me" as location in dashboard list
* fix missing "TotalHits" prop in mode 2
* Updating SAML for Azure specific attribute structures
Adding additional context surrounding SAML via Azure where the full attribute URL needs to be specified or it will not map correctly.
This generates a lot of support contacts and isn't documented causing friction when organizations can't set it up themselves or lack the technical staff to self manage.
* run prettier
---------
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
* split create to create and patch and move to state
patch will be refactored further
* move setNextState to state transition
* move tests
* split tests for patch function
* Set up to reproduce issue locally
* add check for deadline exceeded
* Revert "Set up to reproduce issue locally"
This reverts commit d8d9b354ca.
* Trigger build
---------
Co-authored-by: Will Browne <will.browne@grafana.com>
* Add FolderStore interface
* Authz: add implementation to use folders api and use it inproc with loopback config
* Add tracing and add rest.Config for talking with folder api using access tokens
* Restructure test to get rid of circular dependencies in tests
* use correct group version kind
---------
Co-authored-by: gamab <gabriel.mabille@grafana.com>
* Custom links with repository link, licence link, docs link and raise an issue link
* run translation command
* delete console log
* delete console log
* fix frontend tests
* change UI with a new design
* remove license, documentation, repository url calculation logic from grafana
* remove unsused function from helpers
* change repo icons and raise an issue icon
* fix the build
* remove logic for raiseAnIssueUrl
* fix the build
* fix lint
* Delete Links title in the box of links
---------
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* feat: add generic plugin extension functions
* updated betterer.
* Fixed type issues after sync with main.
* Remved extensions from datasource and panel.
* Added validation for extension function registry.
* Added tests and validation logic for function extensions registry.
* removed prop already existing on base.
* fixed lint error.
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
We currently cancel the context when the adapter function is done. We should wait for the entire handler we're wrapping
to finish before cancelling our context.
* use local storage to show the native histogram banner has been loaded
* remove banner logic from datatrail
* set banner shown in local storage on closing the banner
* adjut quickRanges type in v2
* clean up unused time_options property
* remove deprecated time_options property on time picker
* add schema migration for time_options
* adjust test
* Chore: pin tonistiigi/binfmt version
* change version to qemu-v7.0.0-28
* uninstall first, log version
* uninstall first, log version
* uninstall first, log version
* Update `Intro > Queries and Conditions`
* Small tweaks (advanced options) and screenshots
* Change `Expressions` heading
* Set links from Alert rules introduction
* Minor intro changes
* small change due to recent updates
* fix vale errors
* fix vale error
* Remove unnecessary mention to `alertingQueryAndExpressionsStepMode` feature flag
* NodeGraph: Improve view traces for uninstrumented services
* Switch to onBuildUrl and more peer attributes
* Update unit tests
* Added test for new logic
* Open traces in same tab
* Update the tests
* bring back internal link
* Update public/app/plugins/datasource/tempo/datasource.ts
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
* Revert export of generateInternalHref
* Update tests after change from onBuildUrl to query function
---------
Co-authored-by: Domas Lapinskas <domasx2@gmail.com>
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
* APIServer: Propagate a new context with limited information
* APIServer: Remove error return
* APIServer: Test that context propagation does fork
* APIServer: Fix golangci-lint lints
* chore: make update-workspace
* Docs: adding additional installation steps to Grafana on openSUSE docs
* Docs: Adding systemd service info for grafana manual install
* Finalizing first edit with tested steps
* spacing adjustment and adding steps to RHEL/Fedora
* Adding a note based on Marins feedback
* A slight adjustment based on feedback from Marin and adding steps to Debian installation
* adjusting some wording
* adjusting naming conventions for Debian instructions
* changing "open-source" to "open source"
* vale and review edits
* deleting erroneous character in shortcode
* updating some shortcodes
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* update scenes and weekStart prop type
* update test
* adjust weekStart type in schemaV2
* clean up weekStart error message
* clean up weekStart in test data
* Add tests
* refactor transformSaveModelToSchemaV2 and transformSceneToSaveModelV2
* move default grid serializer functions outside of class
* simplify layoutmanager descriptor
* add test for SaveModel -> Scene
* Fix lint issues
* remove auto added import
* Fix name
* Fix test typo
* Refactor folder tree to its own structure
* Make it possible to json encode the tree
* Use iterations for Ancestors and Children
---------
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
* TraceQL metrics streaming POC
* Reduce duplicate frames by using scan() and combineResponses()
* Trying to remove samples outside of time range
* Remove code to clean out of range
* Metrics streaming config toggle
* Sync opening the search and metrics options
* Fix tests
* Fix issues after conflicts
* Fix tests
* Use absolute value when computing minXDelta
* Revert last commit
* Fix frame sorting
* Remove all duplicates
* Use fields from schema to get the frames
* Use FieldCache
* Address PR comments
* docs: new alerting tutorial - part 5
* all pretty, no pity
* title
* vale vale
* minor formatting issues
* minor formatting issues2
* format
* prettier
* docker compose
* creds
* format
* even prettier
* DS Apiservers should return a k8s 404 error
* Do not swallow status codes
* Updates from initial CR.
* Add test for ds apiserver to retunr 404 when a datasource is not found
* Didn't intend for a change here
* update faro versions in grafana-runtime
* update faro packages in root
* update Faro version in Grafana UI
* upgrade faro version in grafana-prometheus
* replace deprecated type
Only ask the linker to strip DWARF information if we're not in
dev, to avoid seeing stuff like this when using delve:
~ $ dlv attach $(pgrep grafana)
(dlv) l main.main
Command failed: location "main.main" not found
After this change:
~ $ dlv attach $(pgrep grafana)
Type 'help' for list of commands.
(dlv) l main.main
Showing /home/justin/code/grafana/pkg/cmd/grafana/main.go:23 (PC: 0xac93533)
18: var commit = gcli.DefaultCommitValue
19: var enterpriseCommit = gcli.DefaultCommitValue
20: var buildBranch = "main"
21: var buildstamp string
22:
23: func main() {
24: app := MainApp()
25:
26: if err := app.Run(os.Args); err != nil {
* E2E: Add tasks for new reporting tests
* try to switch to pdf-parse
* fix pdf comparison
* add log
* increase threshold
* clean up
* apply review feedback
* improve logs + fix local setup for reporting
* format
* Provisioning: Jobs: Define repository name field
* Provisioning: Jobs: Separate options per job type
* Provisioning: Define a sanitised settings resource
* Provisioning: Jobs: Define a job summary
* Provisioning: Remove linting
* Provisioning: Update docs for a few fields
* Provisioning: Remove HelloWorld
* Provisioning: Replace Repository with Message in job info
* Provisioning: Remove YAML support
* Provisioning: Remove custom folder specification
* Provisioning: Support read-only repositories
* Provisioning: Remove edit options
* Provisioning: Add sync options for repositories
* Provisioning: Add resource statistics
* Provisioning: Make slices atomic lists
* Provisioning: Message list needs to exist even if empty
If we don't do this, we can't clear the messages field, leading to buggy UX.
* Provisioning: Support incremental syncing
* Provisioning: Remove the 'items' subresource workaround
* Provisioning: Add resource list
* Provisioning: Reformat
* Provisioning: Declare new types
* OpenAPI: Generate openapi JSON spec from generated code
* Codegen: Generate OpenAPI spec
* Provisioning: Support generating frontend API
* Codegen: Generate Go code
* Provisioning: Define the base API
* Codegen: Generate frontend endpoints for provisioning
* Refactor: yarn prettier:write
* Provisioning: Tiger team takes ownership
* Chore: Remove dir we haven't added yet
* Provisioning: Remove frontend
* Test: Update example repositories
* Themes: Gloom theme wip
* Themes: Gloom theme wip
* refactor
* A bit brown maybe?
* Update secondary to also be a bit brownish orangy
* Not super happy
* down a bit
* Progress
* Update
* Update
* orange primary again
* add support for deleted query param
* support tag query param in modes 2 and below
* handle dashboardIds
* hhandle dashboardUIDs
* handle folderUIDs query param
* handle page query param when hitting legacy storage
* handle sort query param
* handle type query param
* re-enable search fallback
* remove folder search workaround and fix /api/search to return both folders and dashboards when no title or type is provided
---------
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* basic setup
* update CODEOWNERS
* update name
* add temp test that ensures we are loading schema V2 json in the UI
* update language
* test with yarn cache and combine steps
* revert combine
* remove commented out code
* Run current dashboard suite, make workflow optional
* make job always succeed
* Remove temp v2 suite
* don't run on draft PRs
* command for old arch
* Introduce __legacyStringValue and deprecate string type for query
* Fix tests
* Fix tests
* remove default
* kind should default to default ds if variable doesn't have ds field
* lint
* getDefaultDataSourceRef should not return undefined
* Under feature flag `sqlExpressions` and is experimental
* Excluded from arm32
* Will not work with the Query Service yet
* Does not have limits in place yet
* Does not working with alerting yet
* Currently requires "prepare time series" Transform for time series viz
---------
Co-authored-by: Sam Jewell <sam.jewell@grafana.com>
* create new toggle
* add survey link behind feature toggle
* fix translations
* better theme structure
* add all the themes back
* update matrix
* fix mars contrast
* fix color contrast probs with tron
* fix a11y issues with synthwave/victorian themes
* fix aubergine/zen
* rename green + gold
* rename to space
* rename, only enable 4 for grafanacon
* add survey link
* fix info color in sapphiredusk
* handle extra themes in storybook
* Dashboards+Folders: Ensure the service identity is used for dashboard and folder resolvers
* Add convinient function to call closure with service context
* support more themes in storybook
* default to dark theme
* fix type error
* change theme in docs container
* add TODO
* only show extra themes in development mode
* add comment
* Auth: Add IP address login attempt validation
* LoginAttempt struct IpAddress field must be camelCase to match db ip_address column
* add setting DisableIPAddressLoginProtection
* lint
* add DisableIPAddressLoginProtection setting to tests
* add request object to authenticate password test
* nit suggestions & rename tests
* add login attempt on failed password authentication
* dont need to reset login attempts if successful
* don't change error message
* revert go.work.sum
* Update pkg/services/authn/clients/password.go
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Adds support for embedding []byte in SmtpClient instead of filenames. This is backwards compatible as it uses a new field EmbeddedContents to add an alternative to the existing EmbeddedFiles which takes filenames.
* migrate API keys to SA at startup
* send metrics with api key migration stats
* address feedback
* run API keys migration in a server lock
* update logging
* Create base components
* Create measurement service
* Add container for list
* Use measurement to render virtualized log lines
* Match rendered styles in 2d context for measuring
* Improve virtualization initialization and handle resize
* Introduce log line processing
* Virtualization: fix measurement of lines with line endings
* Virtualization: include scrollbar width in calculation
* Remove logs
* Virtualization: optimize text measurement
* Add support for forceEscape
* Log line: properly style wrapped/unwrapped lines
* Virtualization: handle possible overflows
* Improve overflow handling
* LogList: remove scroll position ref
* Remove logs
* Remove log
* Add top/bottom navigation buttons
* Add timestamp to pre-processing
* Add showtime support
* Fix imports
* Chore: simplify dedup
* Show level
* Refactor measurement and measure level and timestamp
* Virtualization: skip unnecessary measurements
* Improve measurements to minimize overflow chance
* Introduce logline colors
* Update palette
* Remove pretiffying
* Add comment
* Remove unused variable
* Add color for info level
* Fix dependencies
* Refactor overflow to account for smaller estimations
* Debounce resizing
* Fix imports
* Further optimize height calculation
* Remove outline
* Unused import
* Use less under/overflow method
* Respond to height changes
* Refactor size adjustment to account for layout changes
* Add Logs Panel support
* Add margin bottom to log lines
* Remove unused option
* LogList: container div should never be null
Bad API design
* Log List: make app not undefined and update containerElement usages
* New Logs Panel: Create as new visualization (#99427)
* Logs Panel: clean up old panel
* Logs Panel New: create as new visualization
* Plugin: mark as alpha
* Logs panel new: hold container in a state variable
* Logs panel: fix no data state
* Create newLogsPanel feature flag
* Logs: use new feature flag
* Prettier
* Add new panel to code owners
* Logs Navigation: add translations
* Address betterer issues
* Fix import
* Extract translations
* Update virtualization.ts
* Virtualization: add DOM fallback for text measurement
* Run gen-cue
* plugins_integration_test: add logs-new to expected plugins
fix: eliminate data race in plugin metrics middleware
A data race was detected when multiple goroutines accessed the `MetricsMiddleware`
simultaneously. The race occurred because a single `MetricsMiddleware` instance
was being shared across goroutines while its `BaseHandler` field was being
modified during middleware chain setup.
Fix by creating a new `MetricsMiddleware` instance for each middleware chain,
while safely sharing the thread-safe Prometheus metrics and plugin registry.
This maintains proper metrics collection while eliminating the mutable shared
state that caused the race condition.
Original error was detected here:
```
WARNING: DATA RACE
Read at 0x00c0039c0790 by goroutine 4486:
github.com/grafana/grafana-plugin-sdk-go/backend.(*ErrorSourceMiddleware).CallResource()
/Users/clord/src/grafana/irm-devstack/.devenv/state/go/pkg/mod/github.com/grafana/grafana-plugin-sdk-go@v0.261.0/backend/error_source_middleware.go:93 +0x40
github.com/grafana/grafana-plugin-sdk-go/backend.BaseHandler.CallResource()
...
```
* open edit pane on selection
* stuff
* use drawer instead for override panel options
* reverts
* closing edit pane while selection exists should also clear selection
* set width
* TimeRangePicker: allow to customize quick ranges per dashboard
* TimeRangePicker: show selected custom time range using its name
* rangeutil: add tests for describeTextRange + quickRanges
* Fix up tests, and add an extra case for hidden time ranges
* Don't construct an object to find options, add findRangeInOptions util
* fix type errors detected by TypeScript
---------
Co-authored-by: joshhunt <josh@trtr.co>
This PR adds `backend.ErrorSourceDownstream` values to all `backend.DataResponse`
values where it's certain that the error wasn't the result of the
InfluxDB datasource plugin.
* baldm0mma/ manually update deps and run yarn
* baldm0mma/ update version from workspace to actual version
* baldm0mma/ revert some workspaces
* baldm0mma/ update workspace
* baldm0mma/ update deps
Ensure frames have refIDs
- Sanitise the refID
- Alias the query target with the refID
- Set the appropriate refID on the created frames
- Update tests
* update generated iam client
* update API
* with meta api
* regenerate client
* with identify ref
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* create new generated iam api client and use in query library
* update betterer
* use new createBaseQuery method
* update CODEOWNERS
* fix unit tests
* use shared type
* update comment
* fix test
* Return max depth folder reached instead of a generic error
* Unit test error function
* Lint
* Update pkg/api/apierrors/folder.go
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
---------
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
* RTK APIs: Extract base query function
* Add error handling
* Add return type
* Use createBaseQuery in browseDashboards
* Support custom manageError
* Export getConfigError
* Remove redundant type
* data -> body
* Alerting: Call RLock() before reading sendAlertsTo map
* defer unlocking
* drive-tru fix for another lock
* less time holding the lock in SyncAndApplyConfigFromDatabase
* Tempo: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Add also pyroscope and tracing features
* align version of package with main
Valid MSSQL database names can contain characters like `-`, which need
to be escaped when used in queries.
This PR wraps database names in `[]`, and fixes Grafana issue #58757.
* chore: use IRM plugin ID instead of OnCall / Incident if it's present in the stack
* minor improvements
* fix unit tests
* Add IRM plugin discovery tests
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
* Upgrade grafana-app-sdk to 0.31.0
What
This commit upgrades the app SDK to 0.31.0 and re-generates codegen files.
It doesn't touch alerting schemas, because those are quite old and
should be upgraded separately.
This commit slightly alters the schemas for the investigations app,
because the codegen is not happy with the current syntax, for some
reason (probably has to do with CUE upgrades in `cog`).
Why
To make sure we use up-to-date SDK version and remove the workaround for
the `defencoding=none` bug that required us to clean up generated CRD
files.
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
* Revert changes to golden file for store tests
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
---------
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
* Testing out rows in schemav2
* update schema
* loading sort of works
* descibe position in relation to row
* add row repeats by variable
* explain ts-expect-error
* Save repeats as well
* Update tests for repeat behavior of rows
* Don't add the clones of the repeated rows
* Add row support for response transformer for V2
* Add row actions
* fix panel name
* fix merge issue
* fix tests
* Implement ensureV1
* set key of GridRow
* fix lint issue
* When going from V2 to V1 rows should be assigned unique ids following max panel id
* remove old comment
* Add panel repeats in V2 -> V1 transform
* Alerting: Fix Alertmanager configuration updates
Alertmanager configuration updates would behave inconsistently when performing no-op updates with `mysql` as the store.
In particular this bug manifested as a failure to reload the provisioned alertmanager configuration components with no changes to the configuration itself. This would result in a 500 error with mysql store only.
The core issue is that we were relying on the number of rows affected by the update query to determine if the configuration was found in the db or not.
While this behavior works for certain sql dialects, mysql does not return the number of rows matched by the update query but rather the number of rows actually updated.
Also discovered and fixed the mismatched `xorm` tag for the `CreatedAt` field to match the actual column name in the db.
References: https://dev.mysql.com/doc/refman/8.4/en/update.html
* feat: use slog adapter for go-kit/log
The adapter library is Apache-2.0, which is compatible with AGPL-3.0 as a dependency.
The adapter library outputs a little more info than we'd like, but rather a couple fields too many than it outputting
ERROR logs as INFO.
* feat: update dependencies
* chore: attribute ownership of dependency
* refactor: move require
* chore: make update-workspace
* Dashboard: Simplify handling of variables that update on time range change when used in repeats
* Update
* Update
* Update
* Update
* Update
* Update
* Explore: Add `disableLogsDownload` and hide button to download logs
* change copy
* Explore: Change `disableLogsDownload` to `hide_logs_download`
* change casing in frontend
* also hide from inspector
* add test
* lint
* Dashboard: Schema V2 - Remove Dashboard id from spec
* Fix issue with dashboard id used in examples and serializers for schema v2
* Fix snapshot test
* adds extra debug logs and a new metric for poller query latency to help us better understand watch and index latency for write events
* adds trace span to the index for handling index write events
* wires up dashboards page to be able to sort by usage stats (sprinkles)
* dont mutate field
* use better type for field
* adds tests. Had to export some types and put the field type back to object.
* frontend asks for sort field in response if needed
* adds some unit tests for getSortOptions
* use Record instead of object
* prettier
* adds ternaries, another unit test
* WIP benchmark dashboard rendering
* Script
* Benchmark with variable and a panel
* Add one more benchmark
* Explicitely enable profiling
* Playwright tests
* update scenes
* Report measurement to faro when config set
* Let user enable metrics reporting in UI
* Fix logging
* Change how performance metrics is enabled per dashboard, now in config file only
* add benchmark run option
* Fix benchmark runs
* fix description for performance config
* remove console.log
* update codeowners
* add back crashDetection init that was lost in merge
* fix yarn.lock
* restore custom.ini
* fix import
* Make sure we have the echoSrv
* fix config type
* Try to limit changes to e2e runs
* remove benchmark
* Fix lint issue
* fix codeowners
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* Revert "Revert "LibraryPanel: Fallback to panel title if library panel title …"
This reverts commit 6e705ee67c.
* LibraryPanels: Respect model title when adding a library panel to a dashboard
* remove debugger
---------
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
* remove managed isOpen state, add hook to abstract away options/async functionality
* split useOptions into new file
* refactor stories
revert combobox stories to what's in main. I screwed up that rebase
* change onChange type, clean up what calls onChange, add debounce and useLatestAsyncCall
* tests (mid trying to figure out the act stuff)
* tests
* debounce-promise doesn't work with rollup?
* just some minor code clean up
* fix type import
* Add input auto resizing
* Initial auotsize
* Initial implementation
* Remove px
* Remove unused import
* Handle backspace and support the width prop
* Make sizing work with useComboboxFloat
* Remove unused expression
* Add supoport for min and max width
* Change space for clicking
When exporting contact-points, mute-timings, and notification policies in the provisioning API, we need to escape the `$` character which is used in interpolation by file provisioning.
Follow up to #97985
* Get rid of _dashboardLoadFailed
* Get rid of dashboardNotFound meta
* Update public dashboards tests
* Fix DashboardPage tests
* DashboardPageProxy tests
* DashboardScenePageStateManager test fix
* Beterer
* Fix merge
* Nits
* Fix test
* remove debugger
* Update get folder to throw
* translate error title
* Update public/app/features/apiserver/types.ts
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* Betterer
* Update test cases
* More test updates
* More translations
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* added changes for rebase
* ran go mod tidy and ran a build
* ran a build
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* updated go.work.sum to upstream
* added newline to match upstream
* added more specificity in documentation
* bump grafana-azure-sdk-go to update package for currentuser auth support
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Schema v2: Reason about new dashboard based on UID
* Fix test
* Alerting: respect isNew dashboard for legacy and new arch
* Translate untranslated strings
* Unify is new checks
* PanelInspectDrawer update
* typo fix
* on close test for panel inspect drawer
* Update public/app/features/alerting/unified/PanelAlertTabContent.tsx
* Remove dashboards table dependency when getting all library panels
* Filter library elements a user can see using the folder service
* Stop using folder name as UID in get all elements tests
* Set actual folder name not UID when getting all elements
* Stop selecting folder name in the get all elements sql query
* Introduce a library elements param selector without where clause
* Include empty string as general folder UID when getting all library elements
---------
Co-authored-by: suntala <arati.rana@grafana.com>
* draft: coerce types to string to prevent localCompare bug
* chore: update with comment for draft
* chore: cleanup and change fix
* fix: instantiate compare outside of functions scope
* chore: update tests!
* fix: make the linter happy again
* fix: remove unnecessary loop to generate array
* chore: revert forEach to for loops, other changes also
* chore: reduce diff
* chore: one more revert
---------
Co-authored-by: drew08t <drew08@gmail.com>
* introduce new fields created_by in rule tables
* update domain model and compat layer to support UpdatedBy
* add alert rule generator mutators for UpdatedBy
* ignore UpdatedBy in diff and hash calculation
* Add user context to alert rule insert/update operations
Updated InsertAlertRules and UpdateAlertRules methods to accept a user context parameter. This change ensures auditability and better tracking of user actions when creating or updating alert rules. Adjusted all relevant calls and interfaces to pass the user context accordingly.
* set UpdatedBy in PreSave because this is where Updated is set
* Use nil userID for system-initiated updates
This ensures differentiation between system and user-initiated changes for better traceability and clarity in update origins.
---------
Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* Fix silence drawer being re-rendered when the alert list is refreshed
* remove unnecessary formValues usage as prop
* remove AlertmanagerProvider in RuleActionsButtonsV2
* fix getting targets in dag when using classic condition
* remove query fingerprinting
the DAG function is probably fast enough and the fingerprinting function is too complex to make it work for all expression types
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Alerting: Expect 406s from the remote Alertmanager during the readiness check
* make it clear in the warning logs that we'll attempt to send the confgiuration/state without comparing in case of error pulling the current state/config
* Request interceptor: Do not block PDC
* Apply change after feedback received
* Add test
* Check if secure socks proxy configured for the instance
* Apply suggestions from code review
* Add dedicated service for datasource request URL validation (#99179)
---------
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* add metrics for authZ MT service
* remove metrics that are already tracked by the GRPC server metrics
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* undo unneeded change
* test fix
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* added changes for rebase
* ran go mod tidy and ran a build
* ran a build
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* updated go.work.sum to upstream
* added newline to match upstream
* added more specificity in documentation
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Add initial fuzzy match
* Remove unused import
* Fuzzy search for Multi
* Remove old filter function
* Restore changes to Multi while waiting for async
* Add non ascii support and memoize stringified version
* updates
* Add tests
* Add tests for real this time
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Prometheus package: Replace deprecated @grafana/experimental with @grafana/plugin-ui and @grafana/llm
* Fix @grafana/llm mock in test
* Keep version exact
* Keep version exact
* Update lock
* Allow setting the y axis width
* Add to docs
* Add to status history as well
* Add to status history docs and schema
* Change config to come from generic axis builder
* keep axis
* Change overridden label
* Update docs/sources/panels-visualizations/visualizations/status-history/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Remove the category/label override
* Move axis to its own section in docs as well
* clean
* rename to addAxisWidth
* Apply suggestions from code review
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Move sections to match UI order
* Update docs/sources/shared/visualizations/axis-options-all.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Change other axis options doc to be consistent.
* Fix linter
* add AxisPlacement
* Add new placement option to docs
* change some wording
* Apply suggestions from code review
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
We use Vulnerability Observability for Docker images. The current comments say we simply don't scan them at all, so
let's make it clear for future readers that we do, in fact, scan Docker images, too.
* bugfix: defensive guard against null columnName
* fix: per suggestion limit diff and revert alphabetization of properties
* test: add test for null case
* chore: remove it.only
* test: convert to inline snapshot
* open queries that have utf8 labels in explore properly
* remove unnecessary line
* Revert "open queries that have utf8 labels in explore properly"
This reverts commit 85b81c96
* remove quoting
* support open in explore
* Zipkin: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Prometheus: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Mysql: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Jaeger: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Postgresql: Replace deprecated @grafana/experimental with @grafana/plugin-ui
* Brin experimental back to main package.json - accidentally removed
* Fix order of imports
* add feature flag
* puts search permission filtering behind a feature flag
* fixes issue with doc match id. When the match is for an in-memory index, the internal id is a string (this is what we expected). However, when its a file-based index, the internal id is a binary encoded int64 that point to something internally. So to get the id, we need to use ExternalID() instead of relying on the indexInternalID to be the correct format.
* adds debug log
* update comment
* formatting
* Avoid circular dependency when getting a restCfgProvider for Folder Svc
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
---------
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
* Logs Volume: Do not throw when fields are missing
* Add removed line back
* Prevent permanent mutations
* Decrease nesting
* Move conditional up
* Update public/app/features/logs/utils.ts
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
* Use dataframe length and remove from function
* Use getFieldDisplayName
* Keep original dependency array
* Keep original dependency array
---------
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
* feat: datasource connections tab in plugin detail page
* test: no ds defined test added
* feat: configure feature toggle
* chore: i18n extract
* test: added unit tests for page and list
* add generate script and endpoints.gen.ts
* temp state with delete working
* list + save working
* edit working
* starting to clean up
* fix remaining type errors
* remove withNamespace function
* fix richhistory
* clean up some types
* extract query limit to endpoint definition
* extract namespace logic into common util
* update CODEOWNERS
* move script to be nearer generated endpoints
* remove nonexistent script from CODEOWNERS
* fix bug when parsing results in search handler
* applies permissions filtering to bleve query
* formatting
* wraps in check for access being present, adds some comments
* update go mod
* fix tests
* add dep owner
* fix go mod
* add space after //
* clean up returns
Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
* fixed formatting
* Uses single checker since index is for single resource. Passes folderId using dvReader to checker func. Adds debug logging.
* handles federation with index permission checkers
* formatting
* move import
---------
Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
* Extract "PermissionStore" from general store interface
* Add static and union permission stores
* Add GetStaticRoles
* Use accesscontrol.Service for inproc to provide static permissions
* MultiCombobox: Add All option
* Translate
* Add prop to show All option
* Change variable name
* betterer update
* Extract variable
* Update packages/grafana-ui/src/components/Combobox/MultiCombobox.tsx
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Return All item
* Update checkboxes
* Add filtering functionality
* Handle deduplication when selecting already selected items
* Performance improvements when selecting and modifying all items
* Handle bug with isOpen for tests to pass
* Small fixes
* Add filtered phrase
* Address PR feedback
* Reset okg/services from main
* Reset from main
* Restore main
* Add counter to filtered all
* Fix OptionListItem
* Hide all when there are no results
* Refactor to use useMemo instead
* Fix comments
* Remove useEffect
---------
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
* Update copy for missing metrics when OTel is on
* update message
* Add OTel message in no metrics found message, not the warning banner
* Otel > OTel
* QueryVariable: Default query is not set when creating a new variable
* use correct getDefaultQuery
---------
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* Update playlists app schemas to work with app SDK v0.29.0
What
* Added the manifest for the playlists app
* Updated playlist kind definition to match the new format
* Re-generated the files
* Changed Makefile to not use post-processing flag
Why
To make sure the codegen works with the latest version of the app SDK.
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
* Update app SDK to v0.30.0
* Skip generating custom resource definitions
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
* Fix SDK not generating the manifest Go file
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
---------
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
* Refactor deleteLibraryElementsInFolderUID to use folder UID only
* Convert dashboard error to folder one when deleting library elements
* Fix incorrectly set folder UID in nested folder test
---------
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Improve resource request error handling
- Correctly parse JSON responses
- Log erroneous failures in JSON marshalling/unmarshalling
- Correctly set response status code
- Do not attempt to use the response writer as it will be nil
* Minor change
* Improve type assertion handling
* Unistore: Ensure deprecated Folder ID gets stored on all modes
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
---------
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support utf8 labels and metrics on visual query builder
* lint
* update raw view for utf8 metric syntax
* betterer
* support utf8 metric names in explore metrics
* utf8 support in grouop by
* utf8 support in label break down
* utf8 metric and label support in metric_find_query for label values
* use the same regex to check label values
* no need to escape
* support series endpoint
* support series endpoint
* support series endpoint
* support series endpoint
* fix tests
* fix extracting labels from labelValuesQuery
* show explanation with right syntax
* support utf8 metrics and labels
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support utf8 labels and metrics on visual query builder
* lint
* update raw view for utf8 metric syntax
* betterer
* support utf8 metric names in explore metrics
* utf8 support in grouop by
* utf8 support in label break down
* utf8 metric and label support in metric_find_query for label values
* use the same regex to check label values
* no need to escape
* support series endpoint
* support series endpoint
* support series endpoint
* support series endpoint
* fix tests
* fix extracting labels from labelValuesQuery
* show explanation with right syntax
* betterer
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support utf8 labels and metrics on visual query builder
* lint
* update raw view for utf8 metric syntax
* betterer
* support utf8 metric names in explore metrics
* utf8 support in grouop by
* utf8 support in label break down
* utf8 metric and label support in metric_find_query for label values
* use the same regex to check label values
* no need to escape
* support series endpoint
* support series endpoint
* support series endpoint
* support series endpoint
* fix tests
* fix extracting labels from labelValuesQuery
* betterer
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support utf8 labels and metrics on visual query builder
* lint
* update raw view for utf8 metric syntax
* betterer
* support utf8 metric names in explore metrics
* utf8 support in grouop by
* utf8 support in label break down
* support series endpoint
* support series endpoint
* support series endpoint
* Explore metrics: Utf8 support in Explore metrics with OTel experience enabled (#98707)
* betterer
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
* wip: include transformation output as filtering option
* add refId to joinByField transformation
* clean up
* add refId to transformations that create new data frames
* adjust duplicate query removal for filtering options
* refactor transformation input/output subscription effect
* adjust input data frame filtering logic to include transformations as input for debug view
* transformation filter can only filter on output of previous transformation
* always add filters for elastic seach ds when filtering table value
* simplify update filter logic and restore behaviour from old arch
* remove unnecessary modifications
* adjust namig
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support utf8 labels and metrics on visual query builder
* lint
* update raw view for utf8 metric syntax
* betterer
* support series endpoint
* support series endpoint
* betterer
* utf8 metrics for prometheus devenv
* introduce utf8 support
* completions and suggestions
* don't wrap the utf8 label in quotes
* linting
* support series endpoint
* Use cog as a cli tool to generate code for kinds v2 schemas
* Update imports to dashboard v2 package in frontend
* Ensure cog is installed before using it
* Add event to dashboards restore version
* moved changes to scenes instead
* remove last non-scene change
* Move events to centralised file
* remove ? from properties copy pasta
* Add tests
* identify native histograms by classic histograms
* use trail to expose ds helper
* identify native histograms for preview panel
* refactor ds helper to initialize all native histograms
* remove await
* add info message for native histograms
* hide button on show examples
* show nh in metric scene by passing check for nh and storing in url for url loads, bookmarks and recent explorations
* add badge for native histograms
* click native histogram examples in info message to see them
* add link for learn more
* close banner on select when selecting native histogram in info banner
* show message for newly selected data sources
* capitalize Native Histogram badge
* prettier
* fix badge ui width
* add padding for badge
* add images, styling and tests for native histogram banner
* move images to img folder
* fix store tests
* run i18n
* fix betterer
* fix betterer with translations
* cannot translate interpolated metric in button text
* Fix import
* do not indent the > See examples section
* trans component interferes with text with special chars
* update sm text with 4px padding and 16px spacing between images
* do not show banner after closing then changing data sources
* prettier
* Update public/app/features/trails/helpers/MetricDatasourceHelper.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/banners/NativeHistogramBanner.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/banners/NativeHistogramBanner.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* update comments
* remove unnecessary code check
* add rudderstack types
* add close example functionality
* prettier
* add t() for betterer
* prettier
* fix betterer and trans issues
* fix test
---------
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
Ensures we retake images after expiration on long-lived repeat alerts.
Otherwise, logs would show "Image not found in database" and notifications
would cease to contain an image after 24h of continuous firing.
* wip. adding sprinkles fields.
* some refactoring. Works with sprinkles now.
* exclude top level dashboard hit fields from hit "fields"
* adds unit test for DecodeCell helper
* test can search for specific dashboard fields on bleve index
* adds search handler tests for the fields and tests for fields when transforming the search req to a bleve search req
* fix panic when calling fields.Set() with int32
* adds regression test
* remove unneeded method on test mock client
* fix linter issues
* updates dashboard test data for bleve tests
* remove DASHBOARD_LEGACY_ID from bleve_tests
* dont cast twice
* updates test to sort by dashboard_views_last_1_days
* declare excludedFields outside of function
* fixes sorting by dashboard fields - prepends "fields." to any dashboard fields we try to sort by
* uses map for excludedFields
* expects fields to be array-style url param
* change method name
* fixes failing tests - needed to add column type to mocks
* feat: pass gcom sso_api_token to repo created from install command
* fix
* fix: extract gcom section to a func
* Update pkg/cmd/grafana-cli/utils/command_line.go
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* fix: only set gcom token when the request is to GCOM
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
What
This PR changes the dashboard authorizer logic to no longer require
requester to be the super admin user in order to list dashboards using
k8s APIs.
Why
We no longer need this precondition - dashboards should be listable
based on the regular authorizer logic.
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
* Remove dependency on dashboards table to get library element
* WIP
* Don't use dashboard id when getting library connections
* Lint
* Don;t include folder_uid in library element
* Remove "wrapper" interface and only check feature toggle for grpc and cloud mode
* Only set name for update checks
* Set dashboard permissions for admin user
* Add prefix constants and use string builders / string concatinations
* Use cache for both streamed and non-stream versions of list objects
* Remove unused constants
* Use cog for Go types
* Delete old generation code
* Fix plugins generation
* workspaces update
* Update datasources with new generated code
* More fixes
* Update swagger and openapi specs
* Fixes
* More files...
* Update workspace
* More fixes...
* Remove unused functions
* Clarify DS managed rules support only the creation of Mimir and Loki rules
* additional copy changes
* Extend `Manage alerts via Alerting UI` description
* fix capital letter
* further details for `Manage alerts via Alerting UI`
* Zanzana: Remove usage from legacy access control
* remove unused
* remove zanzana client from services where it's not used
* remove unused metrics
* fix linter
* Plugins: Disable SRI checks for filesystem plugins
* Plugins: Disable SRI checks for filesystem plugins
* Update tests
* Lint
* Check for cdn enabled rather than just plugin class
* ops
* Update tests
* lint
* use panel title for dataName instead of panel.getDisplayTitle()
* Interpolate variables in panel title for downloads in scenes
---------
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
* Chore: Bump Go to 1.23.4
This is done in preparation of updating the App SDK library we import, as it has bumped its Go version to 1.23.4 as well.
* Chore: make update-workspace
* sort otel resources to top of adhoc filters
* add bool in datatrail
* add function to find non promoted otel resources
* add additional super filter variable
* hide filters var and keep otel filters var hidden
* add nonpromoted resources to state, update otel or var filters when super filter is updated
* update comments
* update plan
* Allow deployment environment values from both metrics and target_info
* Remove usage of dep env var in getting resources
* update code comments for clarity
* Remove dep env variable, autoselect dep env in otelmetricvar and allow updating of vals in otelmetricvar
* Fix bug that conflicts with local storage useOtelExperience check
* expose metadata to show data source is loaded to prevent otel race conditions
* remove filtering check on target_info in the itel join query
* update plan with extra issues
* refactor update and reset functions for otel experience
* use non promoted resources as the standardization check
* sort the resources in filters var if using otel experience
* add test for sorting resources with otelmetricsvar
* update tests for otel experience in datatrail.test
* update tests for otel utils
* update otel api tests
* update trail store tests to remove dep env var
* run prettier
* remove unused imports
* add tests, distinguish on start and when the initial otel check is done, update comments
* Fix bug when adding multiple otel resources
* fix when adding filter from breakdown
* add migration for dep env var
* update migration function and write tests
* prettier
* Update dep env migration to handle bookmarks
* fix trailstore tests for reintroducing the dep env var
* refactor default env function, we only need the value
* remove redundant check
* move otel functions to utils and update and add tests
* prettier
* cleanup
* fix migration for fromStart
* update tests for migration
* use join and use push
* fix flow with state
* Fix flow in update OTel function
* update tests for flow fixes
* fix toggle OTel bugs
* report when dep env has been migrated and delete dep env filters to not migrate it again
* Clear out dep env after migration
* run prettier
* improve non promoted attribute function
* remove unused functions
* prettier
* default otel experience to off
* report when otel experience is used
* report when otel is turned on and off
* report otel filters changed
* prettier
* keep default otel off, respect the local storage, but if loading with otel vars from url or bookmark we can turn it on
* Add new badge
* fix metric scene breakdown add filter bug around non promoted labels on a metric that are different than non promoted labels for all metrics
* prettier
* make i18n-extract
* prettier for translations
* change button name to "Filter"
* Update public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/DataTrail.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/migrations/otelDeploymentEnvironment.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/DataTrail.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/otel/api.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/otel/util.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Add more padding for pill where capital letter gets to close to the left border and looks off.
* clear up comments
---------
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* add two dummy feature toggles to use for testing potential AB testing setup
* update betterer
* update auto generated files
* fix camelcase test case
* made initial edits
* continued updates
* finished initial config doc updates
* updates
* updates to query editor
* edits to query editor
* final edits prior to PR
* more final edits :-)
* edits based on feedback meeting
* fixed some spelling and grammar issues
* final edits
* ran prettier
* minor change to intro description
* Fix prettier
* Update docs/sources/datasources/mysql/query-editor/_index.md
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update docs/sources/datasources/mysql/query-editor/_index.md
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update docs/sources/datasources/mysql/query-editor/_index.md
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* edits based on feedback
* fixed mistake
* Fix prettier
* fixed ref UIs, edits based on feedback
* one minor change
* ran prettier again
---------
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* update github.com/prometheus/prometheus to v0.301.0
* have an adapter for infra logger
* go mod tidy and go work sync
* remvoe the cuelang.org/go replace
* remove slog_adapter
* Fix: MySQL integration tests don't need to verify CA
The _better_ solution here is to use our own, custom CA certificate. But there is also no real problem in risking a MITM
attack here as it's just test code, with no sensitive data, and it's ran on our own infra (so if we have a MITM problem,
we have even bigger issues...).
* Chore: make drone
* Chore: buildifier format
* Allow dashboardDS to run in mixedDS
* Make mixedDS panel wait for dashboardDS panel to load first
* cleanup
* cleanup
* refresh dashboardDS queries within mixedDS when source panel changes
* more tests
* fix
* fixes scenario where source returns an error
* do not allow dashboardDS references to mixedDS targets that contain other dashboardDS panels
* test
* lint
* Show invalid panels as invalid and with a message
* refactor
* avoid bunching shared dashboard queries
* skip instead of debouncing to avoid stale data
* debouce dashboard ds result stream when coming from mixed ds
* restore unnecessarily touched files
* fix import
* increase debounce interval value to account for slower machines
---------
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* Zanzana: Setup GRPC authentication in client/server mode
* don't use grpcutils
* refactor
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Add a namespace stub for in-proc mode
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Read parameters from config
* authorize server requests
* add namespace to the tests context
* use stack id from config
* simplify authorize func
* properly format namespace
* return Unauthenticated if namespace is empty
* use insecure cred only in dev env
* check request namespace
* Use CallCredentials API for client auth
* provide config
* fail if stack id is missing
* improve error message
* use insecure connection by default
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Alerting: PoC - default template in k8s templategroup API
* Move code to grafana/alerting
* Move validation to admission validation abstraction
* Testing
* Linting
* Workspace update
* Update grafana/alerting hash to the merged commit
* More user-friendly name and remove need for CREATE/UPDATE validation
Use __default__ for k8s object name and UID so that we don't need to restrict
CREATE/UPDATE for similarly named user-owned templates.
* wip
* make tests pass
* get all tests passing
* fixes
* some small cleanup
* fix test
* convert delimiter keys to struct keys
* dont execute empty sql statement
* remove printlns
* fix unit test
* a bit more cleanup
* whoops
* Logs: sync direction and sort order for loki queries in explore
* Logs: emit event on sort order change
* Loki query editor: listen to sort change events and update direction
* Loki query editor: unsubscribe to sort event
* Logs: don't publish events in Explore
* LokiQueryBuilderOptions: use stored order as default value when in explore
* Query builder options: initialize query direction
* Logs: unit test
* LogsPanel: update unit test
* Update tests
* LokiQueryBuilderOptions: unit test
* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilderOptions.tsx
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilderOptions.tsx
---------
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
* Add support for exemplars
* TraceQL metrics exemplars ftw
* Fix exemplars on histogram queries
* Added exemplars field for the query builder options
* Add series labels as exemplars dataframe fields so the panel can link series with exemplars
* Fix tests
* Fix lint
* Hide exemplars field from options
* Fix crash on histogram queries
* Use DataTopicAnnotations enum
* Fix test
* Datasources: Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle
* Update documentation with suggestions
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* RuntimeDataSource: Support in core for runtime registered data sources
* Added tests for runtime datasource.
* added another test to make sure runtime ds isn't included in datasource list.
* changed so we not are expecting the settings to be returned by name.
* Fixed betterer error.
* fixed type issues.
* updated comment according to feedback.
* will prevent runtime ds registration from overwriting regular ds.
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Create go.mod files for plugins and core kinds
* Update go work and main go.mod dependencies
* Update pfs import
* Missing update of pfs dependency
* Remove fixed cuelang dependency
* Update codeowners
* Update workspace
* Update Dockerfile
* Missing go.mod codeowner
* Use intermediate kin-openapi dependency to make all workspaces to work
* Handle both user and service accounts when resolving identity name for dashboards and folders
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Set span filters through panel options WIP
* Replace vars, tags editor, service and span name are now selects
* Fix undefined access
* Fix sync between panel options and span filters component
* Refactor tags input and use it in the plugin options
* Fix options to panel communication
* Rename Tags file. Fix tag values loading in dropdown
* Fix clear tags
* useMount instead of useEffect
* Replace HorizontalGroup with Stack
* Update betterer results
---------
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
* Auth: disable passwordless auth if any SAML/OAuth is enabled
* Update pkg/services/authn/authnimpl/registration.go
Co-authored-by: Victor Cinaglia <victor@grafana.com>
* simplify check if any auth providers are enabled
* add accidentally removed break statement, use IsEnabled with empty context to check if PasswordlessMagicLinkAuth enabled
* use IsClientEnabled
* Update pkg/api/frontendsettings.go
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
---------
Co-authored-by: Victor Cinaglia <victor@grafana.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Introduce DashboardScenePageStateManagerLike interface
* Implement dash loader for handling v2 api
* Transformation improvements
* Update response transformer test
* v2 schema: Remove defaultOptionEnabled from ds variable schema
* v2 schema: Make annotations filter optional
* WIP render dashboard from v2 schema
* Force dashbaord scene for v2 api
* V2 schema -> scene meta transformation
* v2 api: Handle home dashboard
* Use correct api client in DashboardScenePage
* Correctly use v2 dashboard scene serializer
* Remove unnecesary type assertions
* Handle v2 dashboard not found
* Fix type
* Fix test
* Some more tests fix
* snapshot
* Add dashboard id annotation
* Nits
* Nits
* Rename v2 api
* Enable snapshot variables
* Support getSnapshotUrl() for v2 serializer
* fix
* Make metadata available in the serializer
* Test
* Decouple meta info
* State Manager: Extract snapshot loading into loadSnapshot
* Fix tests
* Add test for snapshot url
* Don't expose dashboardLoaderSrvV2
* Remove TODO
* Bubble up loading snapshot error to error boundary
* Fix test
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* update docs to direct to our terraform provider for provisioning
* run prettier
* Update _index.md
---------
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
* Make sure we activate the parent and tree even if current panel is active
* force activate full scene object tree
---------
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* Add better error messaging
- Ensure it's clear to users what action needs to be taken if an operation ID cannot be found
- Add test
* Display resource picker for trace exemplar queries
* Remove unneeded test
* Update tests
* CloudMigrations: delete unused code
* CloudMigrations: add access control and protect API + navtree with action
* CloudMigrations: register access control roles
* CloudMigrations: gate frontend based with access control
* CloudMigrations: fix api tests
* CloudMigrations: add docs on new actions and roles
* CloudMigrations: dont interpolate vars to make it more greppable
* CloudMigrations: run prettier
* Dashboards API: v0 k8s dashboards saving
* Build dashboard url with a slug
* fix test
* fix test
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Change usePluginInfo to keep installed and latest version
* fix tests, delete console.log
* fix isManaged plugin which s not installed
* refactor add versions into info
* Add tests for combination of switch
* refactor test
* use alerting option for default datasource in RuleEditor Grafana rules test
* add test for grafana recording rules
* use enum for grafana steps in tests
* dont make each test dependent on previous localstorage
* add test for local storage
@@ -28,3 +28,83 @@ try to cherry-pick the PR merge commit into that branch and open a PR. You must
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)
## Auto triager bot
The auto triager bot is a github action that **assigns** labels to issues based on the issue contents. The logic to assign
labels is its own program and lives [here](https://github.com/grafana/auto-triager). It uses an LLM to do this.
The bot runs **every time** a new issue is opened in the grafana/grafana repository. You can find the bot definition [here](https://github.com/grafana/grafana/blob/main/.github/workflows/issue-opened.yml#L61)
The job only assign labels when the issue author is not a member of the Grafana organization in **GitHub**. The bot concurrency is 1.
This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that
### General diagram
```mermaid
sequenceDiagram
actor User
participant GH as GitHub
participant AT as Auto Triager Job
participant ATP as Auto Triager Program
participant LLM as LLM Service
participant CJ as Commands Job
User->>GH: Opens Issue
GH->>GH: Check if user in Grafana org
alt User not in Grafana org
GH->>AT: Trigger Auto Triager Job
AT->>ATP: Execute program
ATP->>LLM: Send issue content & categories
LLM-->>ATP: Return matching categories
ATP-->>GH: Assign labels to issue
GH->>CJ: Trigger Commands Job
CJ->>CJ: Read commands.json
CJ-->>GH: Assign teams based on labels
end
```
### Team definitions
The team associated with labels are defined [here](https://github.com/grafana/grafana/blob/main/.github/commands.json).
This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that.
The commands workflow code can be found [here](https://github.com/grafana/grafana-github-actions/tree/main/commands)
### Categories/Labels definitions
The categories (or labels) and the types used to categorize issues are defined in this same repository [here](https://github.com/grafana/grafana/tree/main/.github/workflows/auto-triager) the [prompt](https://github.com/grafana/grafana/blob/main/.github/workflows/auto-triager/prompt.txt) that is passed to the LLM is also defined there.
If you are adding a new category in the auto-triager repository you must define a team that owns the label in the
If you remove a label from the [commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json) and it doesn't have any other
team associated with it you must remove it from the [labels file](https://github.com/grafana/grafana/blob/main/.github/workflows/auto-triager/labels.txt)
### Secrets
The bot secrets live in the vault. It uses a [shared workflow](https://github.com/grafana/shared-workflows/tree/main/actions/get-vault-secrets) to get the vault secrets, the
workflow requires a token with `contents:read` and `id-token:write` scopes for it to work.
### How to detect the bot is working?
The list of [unlabeled issues](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+no%3Alabel) should remain empty as long as the bot is running.
There might be issues in the list if some team member removed all labels, but if the list grows to more
than 5 it is likely the bot is not working correctly.
### What to do if this bot is not working?
You can contact the plugins platform team in slack `#grafana-plugins-platform` and inform about the issue.
### Troubleshooting
Possible reasons why the bot is not working:
* The OpenAI API key is not valid anymore. The action output will show this in its error log. A new key needs to be
generated via the OpenAI UI and its value updated in vault. See [the action](https://github.com/grafana/grafana/blob/main/.github/workflows/issue-opened.yml#L72) to find the correct path to
update the key.
* The Slack webhook URL is not valid anymore. The action output will show this in its error log or the
#triage-automation-ci channel will stop showing messages about issue triaging. A new slack webhook url needs to be
generated for the auto triager app and its value updated in vault.
* This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that
Since you've added the `Add to what's new` label, consider drafting a [What's new note](https://admin.grafana.com/content-admin/#/collections/whats-new/new) for this feature.
- **TransformationFilter**: Include transformation outputs in transformation filtering options: Include transformation outputs in transformation filtering options [#98323](https://github.com/grafana/grafana/pull/98323), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
<!-- 11.5.1 END -->
<!-- 11.5.0 START -->
# 11.5.0 (2025-01-28)
### Features and enhancements
- ** CloudMigration:** Create authapi service [#96581](https://github.com/grafana/grafana/pull/96581), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Alerting:** Add new button for exporting new alert rule in HCL format [#96785](https://github.com/grafana/grafana/pull/96785), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Add option to show inactive alerts in alert list panel [#96888](https://github.com/grafana/grafana/pull/96888), [@bradleypettit](https://github.com/bradleypettit)
- **Alerting:** Change default for max_attempts to 3. [#97461](https://github.com/grafana/grafana/pull/97461), [@stevesg](https://github.com/stevesg)
- **Alerting:** Consume k8s API for notification policies tree [#96147](https://github.com/grafana/grafana/pull/96147), [@konrad147](https://github.com/konrad147)
- **Alerting:** Enable flag alertingApiServer by default [#98282](https://github.com/grafana/grafana/pull/98282), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Explore button in Insights view [#96496](https://github.com/grafana/grafana/pull/96496), [@ppcano](https://github.com/ppcano)
- **Alerting:** Make alert rule policies preview use k8s API [#97070](https://github.com/grafana/grafana/pull/97070), [@tomratcliffe](https://github.com/tomratcliffe)
- **Alerting:** Return default builtin templates in k8s templategroup API and UI [#96330](https://github.com/grafana/grafana/pull/96330), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Update state manager to take image only once per rule evaluation [#98289](https://github.com/grafana/grafana/pull/98289), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Analytics Views:** Deprecate :dashboardID endpoints in favor of uid/:dashboardUID (Enterprise)
- **Analytics:** Summaries: Deprecate dashboard_id endpoints in favor of dashboard_uid (Enterprise)
- **Announcement Banners:** Enable feature for all cloud tiers (Enterprise)
- **Announcement banner:** Sort by last updated (Enterprise)
- **Auth:** Return error when retries have been exhausted for OAuth token refresh [#98034](https://github.com/grafana/grafana/pull/98034), [@mgyongyosi](https://github.com/mgyongyosi)
- **Azure Monitor:** Add a feature flag to toggle user auth for Azure Monitor only [#96858](https://github.com/grafana/grafana/pull/96858), [@adamyeats](https://github.com/adamyeats)
- **Azure:** Unify credentials in frontend for Prometheus [#96568](https://github.com/grafana/grafana/pull/96568), [@yjsong11](https://github.com/yjsong11)
- **Chore:** Bump Go to 1.23.4 [#98853](https://github.com/grafana/grafana/pull/98853), [@Proximyst](https://github.com/Proximyst)
- **Chore:** Update to node 22 [#97779](https://github.com/grafana/grafana/pull/97779), [@ashharrison90](https://github.com/ashharrison90)
- **CloudMigrations:** Enable feature toggle by default in 11.5 [#98686](https://github.com/grafana/grafana/pull/98686), [@mmandrus](https://github.com/mmandrus)
- **CloudMigrations:** Introduce RBAC role for migration assistant [#98588](https://github.com/grafana/grafana/pull/98588), [@macabu](https://github.com/macabu)
- **CloudWatch:** Add OpenSearch PPL and SQL support in Logs Insights [#97508](https://github.com/grafana/grafana/pull/97508), [@idastambuk](https://github.com/idastambuk)
- **CloudWatch:** Batch different time ranges separately [#98230](https://github.com/grafana/grafana/pull/98230), [@iwysiu](https://github.com/iwysiu)
- **Cloudwatch:** Accept empty string for logstimeout and mark errors downstream [#96947](https://github.com/grafana/grafana/pull/96947), [@iwysiu](https://github.com/iwysiu)
- **Cloudwatch:** Update grafana-aws-sdk for AWS/AmplifyHosting metrics [#97799](https://github.com/grafana/grafana/pull/97799), [@iwysiu](https://github.com/iwysiu)
- **Dashboard Scene:** Shows usages in variables list [#96000](https://github.com/grafana/grafana/pull/96000), [@harisrozajac](https://github.com/harisrozajac)
- **Dashboards:** Add option to specify explicit percent change text size for stat panels [#96952](https://github.com/grafana/grafana/pull/96952), [@XZCendence](https://github.com/XZCendence)
- **Dashboards:** Allow DashboardDS subqueries in MixedDS [#97116](https://github.com/grafana/grafana/pull/97116), [@mdvictor](https://github.com/mdvictor)
- **Dashboards:** Update docs of the `overwrite` param in Save Dashboard API Call [#97011](https://github.com/grafana/grafana/pull/97011), [@ArturWierzbicki](https://github.com/ArturWierzbicki)
- **Datasources:** Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle [#98441](https://github.com/grafana/grafana/pull/98441), [@macabu](https://github.com/macabu)
- **Datasources:** Allow clearing trace to logs, metrics and profiles datasource pickers [#96554](https://github.com/grafana/grafana/pull/96554), [@adrapereira](https://github.com/adrapereira)
- **Docker:** Don't use legacy ENV syntax [#93218](https://github.com/grafana/grafana/pull/93218), [@simPod](https://github.com/simPod)
- **Elasticsearch:** Health endpoint should handle http errors [#96803](https://github.com/grafana/grafana/pull/96803), [@iwysiu](https://github.com/iwysiu)
- **Elasticsearch:** Use \_field_caps instead of \_mapping to get fields [#97607](https://github.com/grafana/grafana/pull/97607), [@iwysiu](https://github.com/iwysiu)
- **Explore Profiles:** Preinstall for onprem Grafana instances [#97775](https://github.com/grafana/grafana/pull/97775), [@ifrost](https://github.com/ifrost)
- **Explore metrics:** Consolidate filters with the OTel experience [#98371](https://github.com/grafana/grafana/pull/98371), [@bohandley](https://github.com/bohandley)
- **Explore:** Show links to queryless apps [#96625](https://github.com/grafana/grafana/pull/96625), [@ifrost](https://github.com/ifrost)
- **Expressions:** Add notification for Strict Mode behavior in Reduce component [#97224](https://github.com/grafana/grafana/pull/97224), [@shubhankarunhale](https://github.com/shubhankarunhale)
- **Faro:** Improve performance of TRACKING_URLS regex [#98022](https://github.com/grafana/grafana/pull/98022), [@kpelelis](https://github.com/kpelelis)
- **FeatureToggles:** Make newFiltersUI feature toggle generally available [#97460](https://github.com/grafana/grafana/pull/97460), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **Frontend Sandbox:** Add switch to toggle plugins frontend sandbox via catalog UI (Enterprise)
- **Graphite:** Set `maxDataPoints` based on user value in alerting [#97178](https://github.com/grafana/grafana/pull/97178), [@aangelisc](https://github.com/aangelisc)
- **Licensing:** Tidy up license token database code (Enterprise)
- **LoginAttempt:** Add setting to control max number of attempts before user login gets locked [#97091](https://github.com/grafana/grafana/pull/97091), [@kalleep](https://github.com/kalleep)
- **Logs Panel:** Add infinite scrolling support for Dashboards and Apps [#97095](https://github.com/grafana/grafana/pull/97095), [@matyax](https://github.com/matyax)
- **Logs Panel:** Allow text selection without changing Log Details state [#96995](https://github.com/grafana/grafana/pull/96995), [@matyax](https://github.com/matyax)
- **Logs Panel:** Limit displayed characters to MAX_CHARACTERS [#96997](https://github.com/grafana/grafana/pull/96997), [@matyax](https://github.com/matyax)
- **Logs:** Added option to show the log line body when displayed fields are used [#97209](https://github.com/grafana/grafana/pull/97209), [@matyax](https://github.com/matyax)
- **Logs:** Added support to disable and re-enable the popover menu [#98254](https://github.com/grafana/grafana/pull/98254), [@matyax](https://github.com/matyax)
- **Logs:** Allow scroll to reach the bottom of the log list before loading more [#96668](https://github.com/grafana/grafana/pull/96668), [@matyax](https://github.com/matyax)
- **Loki:** Added support for disabled operations in Query Builder [#96751](https://github.com/grafana/grafana/pull/96751), [@matyax](https://github.com/matyax)
- **Loki:** Added support to show label types in Log Details [#97284](https://github.com/grafana/grafana/pull/97284), [@matyax](https://github.com/matyax)
- **Loki:** Allow regex in `label` derived field [#96609](https://github.com/grafana/grafana/pull/96609), [@svennergr](https://github.com/svennergr)
- **Loki:** Sync query direction with sort order in Explore and Dashboards [#98722](https://github.com/grafana/grafana/pull/98722), [@matyax](https://github.com/matyax)
- **OAuth:** Support client_secret_jwt for oauth providers when doing token exchange [#95455](https://github.com/grafana/grafana/pull/95455), [@naizerjohn-ms](https://github.com/naizerjohn-ms)
- **OAuth:** Use the attached external session data in OAuthToken and OAuthTokenSync [#96655](https://github.com/grafana/grafana/pull/96655), [@mgyongyosi](https://github.com/mgyongyosi)
- **Org Selection:** Show correct selected org when select is open [#96601](https://github.com/grafana/grafana/pull/96601), [@yincongcyincong](https://github.com/yincongcyincong)
- **PDF:** Add new zoom options (Enterprise)
- **Plugin Extensions:** Only load app plugins when necessary [#86624](https://github.com/grafana/grafana/pull/86624), [@leventebalogh](https://github.com/leventebalogh)
- **Plugins:** Add token to gcom requests [#96261](https://github.com/grafana/grafana/pull/96261), [@oshirohugo](https://github.com/oshirohugo)
- **Plugins:** Add token to gcom requests (Enterprise)
- **Plugins:** Disable version install when angular version is not supported [#97189](https://github.com/grafana/grafana/pull/97189), [@oshirohugo](https://github.com/oshirohugo)
- **Plugins:** Disable version installation for specific plugin types [#98597](https://github.com/grafana/grafana/pull/98597), [@oshirohugo](https://github.com/oshirohugo)
- **Plugins:** Update to latest go plugin SDK (v0.260.3) w/ arrow v18 [#97561](https://github.com/grafana/grafana/pull/97561), [@ryantxu](https://github.com/ryantxu)
- **Plugins:** Use grafana-com sso_api_token [#97096](https://github.com/grafana/grafana/pull/97096), [@oshirohugo](https://github.com/oshirohugo)
- **Plugins:** Use grafana-com sso_api_token (Enterprise)
- **Prometheus datasource:** Show info annotations in the UI [#97978](https://github.com/grafana/grafana/pull/97978), [@zenador](https://github.com/zenador)
- **Prometheus:** Improve handling of special chars in label values [#96067](https://github.com/grafana/grafana/pull/96067), [@NWRichmond](https://github.com/NWRichmond)
- **Reporting:** Add allow list email domain configuration (Enterprise)
- **Reporting:** Include the apiserver by default and deprecated internal ids (Enterprise)
- **RuntimeDataSource:** Support in core for runtime registered data sources [#93956](https://github.com/grafana/grafana/pull/93956), [@torkelo](https://github.com/torkelo)
- **SAML:** Add the ability to specify EntityID (Enterprise)
- **SAML:** Implement correct SLO with NameID and SessionIndex handling (Enterprise)
- **Security:** Update to Go 1.23.5 - Backport to v11.5.x [#99122](https://github.com/grafana/grafana/pull/99122), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.23.5 - Backport to v11.5.x (Enterprise)
- **Snapshots:** Add RBAC roles for creating and deleting [#96126](https://github.com/grafana/grafana/pull/96126), [@evictorero](https://github.com/evictorero)
- **Storage:** Removes integration tests for MySQL 5.7 since it is EOL [#98013](https://github.com/grafana/grafana/pull/98013), [@inf0rmer](https://github.com/inf0rmer)
- **Tempo:** Add support for TraceQL Metrics exemplars [#96859](https://github.com/grafana/grafana/pull/96859), [@adrapereira](https://github.com/adrapereira)
- **Tempo:** Improve handling of multiple values in the Search tab query generation [#98427](https://github.com/grafana/grafana/pull/98427), [@adrapereira](https://github.com/adrapereira)
- **ToolbarButton:** Auto width on smaller screen sizes [#96023](https://github.com/grafana/grafana/pull/96023), [@yincongcyincong](https://github.com/yincongcyincong)
- **Trace View:** Set span filters as panel options [#98328](https://github.com/grafana/grafana/pull/98328), [@adrapereira](https://github.com/adrapereira)
- **TransformationFilter:** Implement RefID multi picker [#96841](https://github.com/grafana/grafana/pull/96841), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **Transformations:** Add Delimiter format option to Extract fields [#97340](https://github.com/grafana/grafana/pull/97340), [@tskarhed](https://github.com/tskarhed)
- **Transformations:** GroupToMatrix add 0 as special value [#97642](https://github.com/grafana/grafana/pull/97642), [@tskarhed](https://github.com/tskarhed)
- **Zipkin:** Run queries through backend [#97754](https://github.com/grafana/grafana/pull/97754), [@ivanahuckova](https://github.com/ivanahuckova)
### Bug fixes
- **Alerting:** AlertingQueryRunner should skip descendant nodes of invalid queries [#97528](https://github.com/grafana/grafana/pull/97528), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Allow notification policy filters to match quoted matchers [#98525](https://github.com/grafana/grafana/pull/98525), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix alert rule list view summaries [#98433](https://github.com/grafana/grafana/pull/98433), [@yincongcyincong](https://github.com/yincongcyincong)
- **Alerting:** Fix alert rules unpausing after moving rule to different folder [#97580](https://github.com/grafana/grafana/pull/97580), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Fix ash not showing history graph in firefox [#98128](https://github.com/grafana/grafana/pull/98128), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix bug when saving a rule more than once [#96658](https://github.com/grafana/grafana/pull/96658), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix data-testid in RuleEditorSection [#97473](https://github.com/grafana/grafana/pull/97473), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix filtering rule group permissions based on their full path (Enterprise)
- **Alerting:** Fix go template parsing [#97145](https://github.com/grafana/grafana/pull/97145), [@konrad147](https://github.com/konrad147)
- **Alerting:** Fix label escaping in rule export [#97985](https://github.com/grafana/grafana/pull/97985), [@moustafab](https://github.com/moustafab)
- **Alerting:** Fix missing instances and history when Grafana rule is stored in folder with / [#97956](https://github.com/grafana/grafana/pull/97956), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix navigating to URLs with "%25" [#96992](https://github.com/grafana/grafana/pull/96992), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix no-change scenario in provisioning rule update API [#98389](https://github.com/grafana/grafana/pull/98389), [@alexander-akhmetov](https://github.com/alexander-akhmetov)
- **Alerting:** Fix not being able to remove a reducer when using range query [#97757](https://github.com/grafana/grafana/pull/97757), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix removing reducer when inital value is instant [#97054](https://github.com/grafana/grafana/pull/97054), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix slack image uploading to use new api [#97817](https://github.com/grafana/grafana/pull/97817), [@moustafab](https://github.com/moustafab)
- **Alerting:** Fix terraform export of notification policy [#98429](https://github.com/grafana/grafana/pull/98429), [@moustafab](https://github.com/moustafab)
- **Alerting:** Fix updating condition when refId changes [#97753](https://github.com/grafana/grafana/pull/97753), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix using stacks- prefix instead of stack- for checking the namespace in boot data [#97492](https://github.com/grafana/grafana/pull/97492), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Anonymous User:** Adds validator service for anonymous users (Enterprise)
- **Auth:** Fix SAML user IsExternallySynced not being set correctly [#98487](https://github.com/grafana/grafana/pull/98487), [@volcanonoodle](https://github.com/volcanonoodle)
- **Azure Monitor:** Add safety around usage of frame.Meta.Custom struct [#97766](https://github.com/grafana/grafana/pull/97766), [@adamyeats](https://github.com/adamyeats)
- **CloudWatch:** Fix conditions for fetching wildcards [#98648](https://github.com/grafana/grafana/pull/98648), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch:** Fix interpolation of log groups when fetching fields [#98054](https://github.com/grafana/grafana/pull/98054), [@idastambuk](https://github.com/idastambuk)
- **Dashboard:** Fixes issue with compatability of old DashboardModel.annotations [#97328](https://github.com/grafana/grafana/pull/97328), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fix issue where filtered panels would not react to variable changes [#98718](https://github.com/grafana/grafana/pull/98718), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboards:** Fixes week relative time ranges when weekStart was changed [#98167](https://github.com/grafana/grafana/pull/98167), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Panel react for `timeFrom` and `timeShift` changes using variables [#98510](https://github.com/grafana/grafana/pull/98510), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **DateTimePicker:** Fixes issue with date picker showing invalid date [#97888](https://github.com/grafana/grafana/pull/97888), [@torkelo](https://github.com/torkelo)
- **Fix:** Add support for datasource variable queries [#98098](https://github.com/grafana/grafana/pull/98098), [@sunker](https://github.com/sunker)
- **Fix:** Do not fetch Orgs if the user is authenticated by apikey/sa or render key [#97162](https://github.com/grafana/grafana/pull/97162), [@mgyongyosi](https://github.com/mgyongyosi)
- **Fix:** Double encoding of URLs when using data proxy [#98494](https://github.com/grafana/grafana/pull/98494), [@s4kh](https://github.com/s4kh)
- **Font:** Disable contextual font ligatures [#98521](https://github.com/grafana/grafana/pull/98521), [@ashharrison90](https://github.com/ashharrison90)
- **GrafanaUI:** Fix inconsistent controlled/uncontrolled state in AutoSizeInput [#96696](https://github.com/grafana/grafana/pull/96696), [@joshhunt](https://github.com/joshhunt)
- **GrafanaUI:** Revert: Fix inconsistent controlled/uncontrolled state in AutoSizeInput [#97551](https://github.com/grafana/grafana/pull/97551), [@itsmylife](https://github.com/itsmylife)
- **InfluxDB:** Adhoc filters can use template vars as values [#98567](https://github.com/grafana/grafana/pull/98567), [@bossinc](https://github.com/bossinc)
- **Library Panel:** Fix issue where library panels did not display panel links. [#98655](https://github.com/grafana/grafana/pull/98655), [@yincongcyincong](https://github.com/yincongcyincong)
- **LibraryPanel:** Fallback to panel title if library panel title is not set [#99411](https://github.com/grafana/grafana/pull/99411), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Loki:** Fix a bug when reading frames without values but warnings [#97197](https://github.com/grafana/grafana/pull/97197), [@svennergr](https://github.com/svennergr)
- **Loki:** Only hide a set of labels instead of every label starting with `__` [#98730](https://github.com/grafana/grafana/pull/98730), [@svennergr](https://github.com/svennergr)
- **Org:** Fix redirection logic to work consistently [#96521](https://github.com/grafana/grafana/pull/96521), [@yincongcyincong](https://github.com/yincongcyincong)
- **Panel inspect:** Fix file names of data download included uninterpolated variable names. [#98832](https://github.com/grafana/grafana/pull/98832), [@alexrosenfeld10](https://github.com/alexrosenfeld10)
- **Scenes:** Upgrade to 5.36.3 [#98661](https://github.com/grafana/grafana/pull/98661), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Snapshot:** Show proper breadcrumb path [#98806](https://github.com/grafana/grafana/pull/98806), [@ashharrison90](https://github.com/ashharrison90)
- **Unified Storage:** Add support for verify-full in postgres [#96825](https://github.com/grafana/grafana/pull/96825), [@chaudyg](https://github.com/chaudyg)
- **Unified Storage:** Use tls preferred when grafana db using ssl [#97378](https://github.com/grafana/grafana/pull/97378), [@owensmallwood](https://github.com/owensmallwood)
- **Usage Insights:** Fix usage insight errors being logged as [object Object] [#93502](https://github.com/grafana/grafana/pull/93502), [@mmandrus](https://github.com/mmandrus)
### Breaking changes
- **Loki:** Default to `/labels` API with `query` param instead of `/series` API [#97935](https://github.com/grafana/grafana/pull/97935), [@svennergr](https://github.com/svennergr)
### Plugin development fixes & changes
- **Grafana UI:** Re-add react-router-dom as a dependency [#97540](https://github.com/grafana/grafana/pull/97540), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.5.0 END -->
<!-- 11.4.1 START -->
# 11.4.1 (2025-01-28)
### Features and enhancements
- **Security:** Update to Go 1.23.5 - Backport to v11.4.x [#99123](https://github.com/grafana/grafana/pull/99123), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.23.5 - Backport to v11.4.x (Enterprise)
### Bug fixes
- **Alerting:** AlertingQueryRunner should skip descendant nodes of invalid queries [#97830](https://github.com/grafana/grafana/pull/97830), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix alert rules unpausing after moving rule to different folder [#97583](https://github.com/grafana/grafana/pull/97583), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Fix label escaping in rule export [#98649](https://github.com/grafana/grafana/pull/98649), [@moustafab](https://github.com/moustafab)
- **Alerting:** Fix slack image uploading to use new api [#98066](https://github.com/grafana/grafana/pull/98066), [@moustafab](https://github.com/moustafab)
- **Dashboards:** Fix issue where filtered panels would not react to variable changes [#98734](https://github.com/grafana/grafana/pull/98734), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboards:** Fixes issue with panel header showing even when hide time override was enabled [#98747](https://github.com/grafana/grafana/pull/98747), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fixes week relative time ranges when weekStart was changed [#98269](https://github.com/grafana/grafana/pull/98269), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Panel react for `timeFrom` and `timeShift` changes using variables [#98659](https://github.com/grafana/grafana/pull/98659), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **DateTimePicker:** Fixes issue with date picker showing invalid date [#97971](https://github.com/grafana/grafana/pull/97971), [@torkelo](https://github.com/torkelo)
- **Fix:** Add support for datasource variable queries [#98119](https://github.com/grafana/grafana/pull/98119), [@sunker](https://github.com/sunker)
- **InfluxDB:** Adhoc filters can use template vars as values [#98786](https://github.com/grafana/grafana/pull/98786), [@bossinc](https://github.com/bossinc)
- **LibraryPanel:** Fallback to panel title if library panel title is not set [#99410](https://github.com/grafana/grafana/pull/99410), [@ivanortegaalba](https://github.com/ivanortegaalba)
### Plugin development fixes & changes
- **Grafana UI:** Re-add react-router-dom as a dependency [#98422](https://github.com/grafana/grafana/pull/98422), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.4.1 END -->
<!-- 11.3.3 START -->
# 11.3.3 (2025-01-28)
### Features and enhancements
- **Azure Monitor:** Add a feature flag to toggle user auth for Azure Monitor only [#97576](https://github.com/grafana/grafana/pull/97576), [@adamyeats](https://github.com/adamyeats)
- **Security:** Update to Go 1.23.5 - Backport to v11.3.x [#99124](https://github.com/grafana/grafana/pull/99124), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.23.5 - Backport to v11.3.x (Enterprise)
### Bug fixes
- **Alerting:** AlertingQueryRunner should skip descendant nodes of invalid queries [#97829](https://github.com/grafana/grafana/pull/97829), [@gillesdemey](https://github.com/gillesdemey)
- **Dashboard:** Fixes issue with compatability of old DashboardModel.annotations [#97467](https://github.com/grafana/grafana/pull/97467), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fix issue where filtered panels would not react to variable changes [#98733](https://github.com/grafana/grafana/pull/98733), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboards:** Fixes issue with panel header showing even when hide time override was enabled [#97389](https://github.com/grafana/grafana/pull/97389), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fixes week relative time ranges when weekStart was changed [#98268](https://github.com/grafana/grafana/pull/98268), [@torkelo](https://github.com/torkelo)
- **DateTimePicker:** Fixes issue with date picker showing invalid date [#97970](https://github.com/grafana/grafana/pull/97970), [@torkelo](https://github.com/torkelo)
- **Fix:** Add support for datasource variable queries [#98118](https://github.com/grafana/grafana/pull/98118), [@sunker](https://github.com/sunker)
- **InfluxDB:** Adhoc filters can use template vars as values [#98785](https://github.com/grafana/grafana/pull/98785), [@bossinc](https://github.com/bossinc)
- **Unified Storage:** Use tls preferred when grafana db using ssl [#97379](https://github.com/grafana/grafana/pull/97379), [@owensmallwood](https://github.com/owensmallwood)
### Plugin development fixes & changes
- **Grafana UI:** Re-add react-router-dom as a dependency [#98421](https://github.com/grafana/grafana/pull/98421), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.3.3 END -->
<!-- 11.2.6 START -->
# 11.2.6 (2025-01-28)
### Features and enhancements
- **Azure Monitor:** Add a feature flag to toggle user auth for Azure Monitor only [#97565](https://github.com/grafana/grafana/pull/97565), [@adamyeats](https://github.com/adamyeats)
- **Security:** Update to Go 1.22.11 - Backport to v11.2.x [#99125](https://github.com/grafana/grafana/pull/99125), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.2.x (Enterprise)
- **Security:** Update to Go 1.22.11 - Backport to v11.1.x [#99126](https://github.com/grafana/grafana/pull/99126), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.1.x (Enterprise)
- **Security:** Update to Go 1.22.11 - Backport to v11.0.x [#99127](https://github.com/grafana/grafana/pull/99127), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.0.x (Enterprise)
- **Security:** Update to Go 1.22.11 - Backport to v10.4.x [#99128](https://github.com/grafana/grafana/pull/99128), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v10.4.x (Enterprise)
Description:"operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
Description:"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type:[]string{"string"},
Format:"",
},
},
"apiVersion":{
SchemaProps:spec.SchemaProps{
Description:"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Description:"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type:[]string{"string"},
Format:"",
},
},
"apiVersion":{
SchemaProps:spec.SchemaProps{
Description:"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Description:"operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
rawSchemaCheckv0alpha1=[]byte(`{"spec":{"properties":{"data":{"additionalProperties":{"type":"string"},"description":"Generic data input that a check can receive","type":"object"}},"type":"object"},"status":{"properties":{"additionalFields":{"description":"additionalFields is reserved for future use","type":"object","x-kubernetes-preserve-unknown-fields":true},"operatorStates":{"additionalProperties":{"properties":{"descriptiveState":{"description":"descriptiveState is an optional more descriptive state field which has no requirements on format","type":"string"},"details":{"description":"details contains any extra information that is operator-specific","type":"object","x-kubernetes-preserve-unknown-fields":true},"lastEvaluation":{"description":"lastEvaluation is the ResourceVersion last evaluated","type":"string"},"state":{"description":"state describes the state of the lastEvaluation.\nIt is limited to three possible states for machine evaluation.","enum":["success","in_progress","failed"],"type":"string"}},"required":["lastEvaluation","state"],"type":"object"},"description":"operatorStates is a map of operator ID to operator state evaluations.\nAny operator which consumes this kind SHOULD add its state evaluation information to this field.","type":"object"},"report":{"properties":{"count":{"description":"Number of elements analyzed","type":"integer"},"failures":{"description":"List of failures","items":{"properties":{"action":{"description":"Action to take to resolve the failure","type":"string"},"itemID":{"description":"Item ID that the failure is associated with","type":"string"},"reason":{"description":"Human readable reason for the failure","type":"string"},"severity":{"description":"Severity of the failure","enum":["high","low"],"type":"string"},"stepID":{"description":"Step ID that the failure is associated with","type":"string"}},"required":["severity","reason","action","stepID","itemID"],"type":"object"},"type":"array"}},"required":["count","failures"],"type":"object"}},"required":["report"],"type":"object","x-kubernetes-preserve-unknown-fields":true}}`)
rawSchemaCheckTypev0alpha1=[]byte(`{"spec":{"properties":{"name":{"type":"string"},"steps":{"items":{"properties":{"description":{"type":"string"},"stepID":{"type":"string"},"title":{"type":"string"}},"required":["title","description","stepID"],"type":"object"},"type":"array"}},"required":["name","steps"],"type":"object"},"status":{"properties":{"additionalFields":{"description":"additionalFields is reserved for future use","type":"object","x-kubernetes-preserve-unknown-fields":true},"operatorStates":{"additionalProperties":{"properties":{"descriptiveState":{"description":"descriptiveState is an optional more descriptive state field which has no requirements on format","type":"string"},"details":{"description":"details contains any extra information that is operator-specific","type":"object","x-kubernetes-preserve-unknown-fields":true},"lastEvaluation":{"description":"lastEvaluation is the ResourceVersion last evaluated","type":"string"},"state":{"description":"state describes the state of the lastEvaluation.\nIt is limited to three possible states for machine evaluation.","enum":["success","in_progress","failed"],"type":"string"}},"required":["lastEvaluation","state"],"type":"object"},"description":"operatorStates is a map of operator ID to operator state evaluations.\nAny operator which consumes this kind SHOULD add its state evaluation information to this field.","type":"object"}},"type":"object","x-kubernetes-preserve-unknown-fields":true}}`)
fmt.Sprintf("Invalid UID '%s' for data source %s",ds.UID,ds.Name),
"Check the <a href='https://grafana.com/docs/grafana/latest/upgrade-guide/upgrade-v11.2/#grafana-data-source-uid-format-enforcement' target=_blank>documentation</a> for more information.",
"Check the <a href='https://grafana.com/legal/plugin-deprecation/#a-plugin-i-use-is-deprecated-what-should-i-do' target=_blank>documentation</a> for recommended steps.",
s.ID(),
p.ID,
),nil
}
returnnil,nil
}
typeupdateStepstruct{
PluginReporepo.Service
PluginPreinstallplugininstaller.Preinstall
ManagedPluginsmanagedplugins.Manager
}
func(s*updateStep)Title()string{
return"Update check"
}
func(s*updateStep)Description()string{
return"Check if any installed plugins have a newer version available."
Action:"Check the <a href='https://grafana.com/legal/plugin-deprecation/#a-plugin-i-use-is-deprecated-what-should-i-do' target=_blank>documentation</a> for recommended steps.",
rawSchemaInvestigationv1alpha1=[]byte(`{"spec":{"description":"spec is the schema of our resource. The spec should include all the user-ediable information for the kind.","properties":{"items":{"items":{"properties":{"dataQuery":{"description":"dataQuery contains the query used to generate this item.","oneOf":[{"allOf":[{"required":["refId","datasource","expr"]},{"not":{"anyOf":[{"required":["refId","datasource","expr"]}]}}]},{"allOf":[{"required":["refId","datasource","expr"]},{"not":{"anyOf":[{"required":["refId","datasource","expr"]}]}}]}],"properties":{"datasource":{"description":"datasource is the datasource of the query.","properties":{"apiVersion":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"uid":{"type":"string"}},"required":["uid","type","apiVersion","name"],"type":"object"},"expr":{"description":"expr is the expression of the query.","type":"string"},"maxLines":{"description":"maxLines (optional) is used to limit the number of log rows returned.","format":"int64","type":"integer"},"refId":{"description":"refId is the reference ID of the query.","type":"string"}},"type":"object"},"iconPath":{"description":"iconPath (optional) is the path to the icon for the item.","type":"string"},"id":{"type":"string"},"note":{"description":"note (optional) is a comment on the item.","items":{"properties":{"authorUserID":{"type":"string"},"bodyMarkdown":{"type":"string"}},"required":["authorUserID","bodyMarkdown"],"type":"object"},"type":"array"},"origin":{"description":"origin is where the item was created from.","type":"string"},"queryType":{"description":"queryType is the type of the query used to generate this item.","enum":["logs","metrics"],"type":"string"},"timeRange":{"description":"timeRange (optional) is the time range of the item.","properties":{"from":{"type":"number"},"to":{"type":"number"}},"required":["from","to"],"type":"object"},"title":{"type":"string"},"type":{"description":"type is the type of the item \"timeseries\", \"heatmap\", \"log-table\" (not an enum to allow for future extensions).","type":"string"},"url":{"description":"url is the URL to the item.","type":"string"}},"required":["id","title","type","url","origin","timeRange","queryType","dataQuery"],"type":"object"},"type":"array"},"status":{"enum":["open","closed"],"type":"string"},"title":{"type":"string"}},"required":["title","status","items"],"type":"object"},"status":{"properties":{"additionalFields":{"description":"additionalFields is reserved for future use","type":"object","x-kubernetes-preserve-unknown-fields":true},"operatorStates":{"additionalProperties":{"properties":{"descriptiveState":{"description":"descriptiveState is an optional more descriptive state field which has no requirements on format","type":"string"},"details":{"description":"details contains any extra information that is operator-specific","type":"object","x-kubernetes-preserve-unknown-fields":true},"lastEvaluation":{"description":"lastEvaluation is the ResourceVersion last evaluated","type":"string"},"state":{"description":"state describes the state of the lastEvaluation.\nIt is limited to three possible states for machine evaluation.","enum":["success","in_progress","failed"],"type":"string"}},"required":["lastEvaluation","state"],"type":"object"},"description":"operatorStates is a map of operator ID to operator state evaluations.\nAny operator which consumes this kind SHOULD add its state evaluation information to this field.","type":"object"}},"type":"object","x-kubernetes-preserve-unknown-fields":true}}`)
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
packagev1alpha1
packagev0alpha1
import(
"encoding/json"
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.