* Remove aggregate by
* Update betterer
* Run toggles test
* Add back group by in schema so it can be checked for
* Show error if group by
* Update error message
* Allow user to remove the group by from the query
* Fix assertion
---------
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Validate authID when user is provisioned
* Add new `user_unique_id` to `user_auth` table
* Validate provisioned user with saml assertion
* Rework `ExternalUID`
* Validate for ExternalUID only
* Enhance verbosity
* Move ExternalUID to saml config
* Rename db variable for externalUID
* Add verbosity to debug ExternalUID
* Assign new error for ExternalUID mismatch
* Add `GetByLoginFn`
* Add new configuration to saml tests
* add validation for empty externalUID
* CloudMigrations: Refactor folder name resolution when fetching migration json data
* Update pkg/services/cloudmigration/cloudmigrationimpl/snapshot_mgmt.go
---------
Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
* Add dashboard cleanup job
Change log message
Adjust logic to account for new head RV logic
Don't update lastResourceVersion due to pagination
Save improvements
* Address review feedback
* Update docs.
* Remove docs
* Rename config
---------
Co-authored-by: Marco de Abreu <18629099+marcoabreu@users.noreply.github.com>
* Add support for ASC ordering and introduce ResourceVersionMatch_Unset as default
Add SortAscending to continue token and add integration test for pagination.
* Change protobuf order
* Make backwards compatible
* Update pkg/storage/unified/sql/backend.go
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
---------
Co-authored-by: Marco de Abreu <18629099+marcoabreu@users.noreply.github.com>
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
* Dashboard: Add object to selected object
* Try not to nest rows
* Update
* Update
* rows in rows, tabs in tabs
* Update schema to allow nested rows and nested tabs
* fix lint issue
* reset v2alpha1 types from main
* reset dashboard_object_gen.go to main
---------
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
* remove range from class
* remove range from language provider
* use range parameters in MetricsLabelsSection
* use range parameters in metric_find_query
* pass range parameter in monaco-query-field
* typo
* use range in prometheus metrics browser languageProvider calls
* fix unit tests
* fix unit tests
* update unit tests
* lint
* docs: Span details includes events and links
Adds to the explore trace integration information about trace span
events and links, which are also available in the trace view.
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
* Update trace-integration.md
* Apply suggestions from code review
* Fix prettier issues
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
---------
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
- Rename `initializeMapping` into `initializeElementMapping`
- Create new `initializeDSReferencesMapping` to track queries without explicit datasources
- Fix panel datasource detection to use default datasource when none is specified
- Improve datasource resolution by searching for best match by query kind
- Add unit test
---------
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* replace the usage of dashboard guardians with calling AC evaluators or checking access in middleware
* linting fixes
* fix test
* more test fixes
* remove a todo comment
Adds support for rule group-level query_offset in Prometheus to Grafana rule conversion. It allows specifying a time offset for rule evaluation, which gets applied and saved during the conversion.
* Live: allow publishing over Centrifuge subscription
Currently when publishing over a Grafana Live channel,
the data is sent over the HTTP API. This works fine when
there is only a single Grafana instance running, but
when there are multiple instances, the data will only hit
one instance, which is often not desired: sometimes you need
to guarantee that the data appears on the same instance that
the frontend is connected to.
An example of this is in the Grafana LLM app when running the
MCP server. The MCP protocol is stateful; users subscribe to
a channel to get a long-lived stream of server-sent events,
then send subsequent requests to the server to get further
results. If there are multiple Grafana instances running then
the requests are likely to land on an instance other than the
one that the user is connected to.
This commit adds a new option to the `GrafanaLiveSrv` interface
that allows the user to publish data over the Centrifuge
subscription instead of the HTTP API. This is not the default and
should rarely be used, but is required to fulfil certain use cases.
* Address nits from code review
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
---------
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Developers using Grafana Live need to know whether a message is too
big to be sent over the Grafana Live websocket. Since this limit
is configurable, it is useful to expose it to the frontend.
This commit adds a new field to the frontend settings,
`liveMessageSizeLimit`, which the frontend can use to access the
limit configured in the backend.
Relates to #99770.
Adds a new configuration option to specify a time offset for rule evaluation, which gets applied and saved during the Prometheus -> Grafana conversion. For example:
[unified_alerting.prometheus_conversion]
rule_query_offset = 1m
Changing this option affects only the rules imported after the change. If query_offset is set at the group level, it takes precedence over this setting.
Default is set to 1m.
This pins Bleve to a soon-to-be v2.5.0 commit.
Fixes CVE-2022-31022. We can unpin when v2.5.0 releases (likely March 25th).
We do not need any new features or similar, though there are some fixes that are nice to receive.
We will **not** backport this fix as we aren't actually vulnerable to anything via CVE-2022-31022; we never use its code, nor does Bleve. The reason we are fixing this is to get Trivy to stop complaining.
Fixes: #97439
* Making expressions depend on backend parameter instead of alerting
* Fallback to old behavior just in case we have weird edge cases
* adding render test for the button
* prettier fixes
* Preparation to migrate go-swagger to go tool
* Replace bingo managed go-swagger with go tool
* rollback bingo managed go-swagger to golang 1.18
* add swagger to the Dockerfile
* update go-swagger version
* Revert "update go-swagger version"
This reverts commit c06008f386.
* update golang.go/x/crypto to v0.31.0
* update workspace
* Alerting: Fix loss of TimeInterval location on remote AM apply
deepcopy.Copy does not correctly copy PostableUserConfig because it ignores
unexported fields. As a result, TimeInterval locations default to UTC instead
of retaining their original values.
* make update-workspace
* update some links in plugin jsons update backend tests
* fix the test
* fix the test
* Update public/app/plugins/datasource/azuremonitor/plugin.json
Co-authored-by: David Harris <david.harris@grafana.com>
* more docs links added, fix tests
---------
Co-authored-by: David Harris <david.harris@grafana.com>
Add NotOlderThan support to getHistory
Add support for Exact
Add tests
Refactor tests
Add error test
Co-authored-by: Marco de Abreu <18629099+marcoabreu@users.noreply.github.com>
* include user UID in GetTeamMembers() output
* move user.uid next to the other user fields
* generate openapi specs
* remove new line at EOF
* fix sql select syntax
* fix sql select syntax
* fix sql select syntax
* fix sql select syntax
* Draft: Move css grid stuff to main
* Scenes: Implement drag and drop support for SceneCSSGridLayout
* Fix some nits
* WIP Refactor
* Added a comment
* Add orchestrator to v2schema and fix error (#100964)
* Add orchestrator to v2schema and fix error
* Display placeholder directly when starting to drag
---------
Co-authored-by: kay delaney <kay@grafana.com>
* Fix merge issue
* Fix panel drag offset and remove console.logs
* Fix small nit
* Fix issue where layout options weren't refreshed on changing layout
* Return empty array from useEditPaneOptions if dashboard body isn't LayoutOrchestrator
* Expect layoutOrchestrator when serializing scene
* Fix tests to expect orchestrator instead of layoutManager
* Fix tests in transformSaveModelSchemaV2ToScene.test.ts
* Fix tests in transformSceneToSaveModelSchemaV2.test.ts
* More test fixes
* fix lint issues
* Small fixes
* default to adding layout orchestrator?
* Empty commit
* delete artifactspage.go
* remove artifactspage.tmpl.html
* betterer
* WIP refactor, not ready for review
* Slightly fix placeholder behavior. still broken though
* Fixed some visual glitches. Still very buggy
* Fix layout bugginess when initiating dragging
* more WIP
* Fix some broken logic
* clean up
* Move LayoutOrchestrator to dashboard state
* More cleanup
* Fix misaligned placeholders after changing layout options or resizing browser
* Fix issue with dragging vs selection
* Fix scroll position jumping when dragging in vertically-oriented grid
* Fix import order errors
* Remove '!' from layoutOrchestrator references
* Add LazyLoader support
* Dynamic Dashboards: Responsive Grid drag and drop minor fixes (#102430)
Changes
---------
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
* Fix UNION syntax in resourcepermissions package.
* Fix migrations in usermig package to work with Spanner.
* Fix health query.
* Use more connections for integration tests.
* Add test-go-integration-spanner target to run integration tests against Spanner emulator.
* Add test for enterprise.
* Don't delete sequence number for migration_log.id column.
* Only bump max open connections to 20 for Spanner.
Lower integration test timeout.
* Refactor migration error handling to use MinimumVersionError for schema version checks
- Updated migration logic to return MinimumVersionError instead of MigrationError for outdated schema versions.
- Enhanced MinimumVersionError message for clarity on migration constraints.
- Added tests for version error handling in the dashboard API to ensure proper error throwing for specific conversion errors.
* Fix tests and remove folder dependencies
* Allow html in tooltips
* Display multiple warnings/infos properly with html
* Revert "Allow html in tooltips"
This reverts commit 5c7e965d2d554b693d4897e52cf6865e0c9b8374.
* Display multiple warnings/infos properly with html in ReactNode
* Fix lint
* Revise according to code review
* Revise according to code review part 2
* Revise according to code review part 3
* feat: component extension point for adaptive telemetry query actions
- only render the first non-null added-component, and provide utility in the added component infrastructure to support this
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Fix display of paused recording rules
* Simplify paused state check for Grafana alert rules
The change eliminates redundant rule type checks by using a more generic
grafana.rule() check that covers both alerting and recording rules.
* Add test for recording rule paused state
* Add test for paused Grafana alert in Details tab
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Add basic details page for groups
* Remove unused imports
* Add basic edit page for groups
* Add functional group details page
* Improve form, add namespaces for DS groups
* Add support for multiple actions in useProduceNewRuleGroup
* Attach real actions to form submit
* Add tests for the group details page
* Add basic tests for the group edit page
* Add tests for Mimir update
* Add rule group consistency check
* Extract draggable rules table to a separate file
* Add prom consistency waiting after group saving
* Add duration measure for Prometheus reconciliation time
* Remove a blinking error when redirecting to a new group
* Improve group details page. Use ruler or prom api depending on the ds capabilities
* Add group delete action for DMA
* Fix GroupDetailsPage tests
* Update tests
* Add and improve Edit page tests
* Add Group export for GMA groups
* Fix RulesGroup tests, add translations
* Disable editing plugin provided groups
* Fix alertingApi options, fix tests
* Fix lint errors, update translations
* use name for grafana managed recording rules
* add namespace to nav
* Remove group modals from the list page
* add cancel button to edit form
* add test for cancel butotn
* fix recording rule badge for Grafana managed rules
* Add doc comments, improve code
* Move url changes to be the last action in form submit
* Add returnTo URL handling for alert rule group navigation
* Create dedicated Title component showing breadcrumb navigation between folder
and group name.
Add label distinction between folders and namespaces based on
the rule source (Grafana vs external).
* Address PR feedback, minor refactorings
* Update rule group links to include return path and refactor rule type checks
- Modified `RulesGroup` and `GroupDetailsPage` components to include `includeReturnTo` in edit page links.
- Refactored rule type checks in `DraggableRulesTable` and `GroupDetailsPage` to use `rulerRuleType` for better clarity and maintainability.
- Updated documentation in `useUpdateRuleGroup` to clarify functionality for updating or moving rule groups.
* Refactor RulesGroup component and tests for improved link handling and permissions checks
- Added `includeReturnTo` parameter to rule group detail links in `RulesGroup` for better navigation.
- Updated test cases to verify rendering of edit and view buttons based on user permissions.
- Simplified test setup by removing unnecessary Redux provider wrapping in tests.
* Refactor: Update routing and test assertions in GroupDetails and GroupEdit pages
- Modified route paths in GroupDetailsPage and GroupEditPage tests to use `dataSourceUid` instead of `sourceId`.
- Updated test assertions to reflect changes in folder title and link structure in GroupDetailsPage.
- Simplified Title component by removing folder-related props and logic, focusing solely on the group name.
* Refactor: Simplify Title rendering in GroupDetailsPage
- Updated the renderTitle function in GroupDetailsPage to remove the folder prop from the Title component, focusing solely on the group name.
* Update GroupDetailsPage to prevent editing of provisioned groups
* Fix imports
* Improve styles
* Fix navigation when served from subpath
* Improve group removal handling in Prom consistency check. Fix Delete group button
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Add migration to remove datasources:drilldown
* remove role assignments as well
* rename to datasources:drilldown
* remove the role assignments
* made it simple instead
* Update pkg/services/sqlstore/migrations/accesscontrol/datasource_drilldown_removal.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update pkg/services/sqlstore/migrations/accesscontrol/datasource_drilldown_removal.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
What is this feature?
This PR introduces a new alert rule configuration option, keep_firing_for (Prometheus documentation).
keep_firing_for prevents alerts from resolving immediately after the alert condition returns to normal. Instead, they transition into a "Recovering" state and are not considered resolved by the Alertmanager. Once the recovery period ends (or after the next evaluation if it is bigger than keep_firing_for), the alert transitions to "Normal" if it doesn't start alerting again:
Before
+----------+ +----------+
| Alerting |---->| Normal |
+----------+ +----------+
-----
After
+----------+ +------------+ +----------+
| Alerting |----->| Recovering |---->| Normal |
+----------+ +------------+ +----------+
Why do we need this feature?
This feature prevents flapping alerts by adding a recovery period. This helps avoid false resolutions caused by brief alert
* wait for deleted dashboards to be updated in the indexer
* updates comment
* adds test
* make function private
* fix failing test - had to add a couple more mock Search calls
* chore: use 'Grafana IRM' wording in alerting contact point
* revert temp condition change
* remove unneeded ts assertion
* more renaming
* use translations
* update test
* running make i18n-extract
* avoid "simple" word in copy
* baldm0mma/ update swagger step
* baldm0mma/ update with correct wire tags
* baldm0mma/ add write token permissions
* baldm0mma/ make swagger-clean && make openapi3-gen
* baldm0mma/ remove wire_tags
* Reset OpenAPI specs to main branch version
* baldm0mma/ regen specs with enterprise running
* baldm0mma/ test go version issue
* baldm0mma/ test with building with go 1.24.1
* baldm0mma/ add comment
* remove frontend unit test and frontend linting from drone PR/main pipelines
* remove unused dependency on frontend test
* fail fast on frontend unit tests
* no more main-test-frontend
* update CODEOWNERS
* make job names more identifiable
* markup or ignore remaining grafana-ui translations
* fix unit tests, commit betterer results which somehow didn't get autocommitted?! :o
* fix SharedPreferences unit test
* fix remaining unit tests
* fix azure e2e test
* better solution
* alerting(ui): add external link to read about labels
* alerting(ui): add external link to read about annotations
* fix i18n settings
* fix i18n
* fix i18n error with `make 18n-extract`
* refactor(frontend): rename all @grafana/data/src imports to @grafana/data
* feat(grafana-data): introduce internal entrypoint for sharing code only with grafana
* feat(grafana-data): add test entrypoint for data test utils usage in core
* refactor(frontend): update import paths to use grafana/data exports entrypoints
* docs(grafana-data): update comment in internal/index.ts
* refactor(frontend): prefer public namespaced exports over re-exporting via internal
* add query parameter to existing APIs to control the permanent deletion of rules
* add GUID to gettable rule
* add new endpoint /ruler/grafana/api/v1/trash/rule/guid/{RuleGUID} to delete rules from trash permanently
---------
Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* remove feature flag
* remove feature flag in state manager
* make sure no data with empty results is handled
Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
---------
Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* centralise iam api
* centralise folder api client
* rename to baseAPI
* centralise provisioning api
* remove iam feature folder from CODEOWNERS
* fix type name
* Update public/app/features/provisioning/utils/selectors.ts
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* include TotalHits when searching for provisioning information and improve tests
* return err when parsing search results with mismatch number of columns and cells and add tests for it
* Use useOptions in Combobox
* Clean code
* Betterer results
* Add grouping to Combobox
* Fix code after mergin main
* Manage ids
* wip - first pass at improved dom structure for a11y
* improve styling, remove old implementation
* more style!!!!
* more tidy up
* deprecated comment
* another comment!
* tests
* remember the index of each group
---------
Co-authored-by: joshhunt <josh.hunt@grafana.com>
* Externalize api and remove dependency cycles
* fix tests
* Update comment
* Split the state observable creation in ScopesService
* Make the feature flag guard more explicit
* Change reduce to map
* Secrets: make the decrypt package a go work module
* Chore: add Operator Experience as codeowner for secrets apis
* Chore: move module up two folders
Adds HMAC-SHA256 signature support to webhook notifications, providing a way to verify the authenticity and integrity of webhook requests. The implementation allows to specify the header in which the signature will be sent. The signature is calculated from the request body.
An optional timestamp header name can be provided. If set, the HMAC signature will be generated by concatenating the timestamp, a ":" and the request body: {timestamp}:{body}. The timestamp will also be sent in the provided header name.
* remove action set feature toggle
* don't pass feature toggles to action set service instantiation
* linting
* test fixes and frontend clean-up
* fix test
* refactor grafana_index_server_index_size to calculate in a goroutine instead of at scrape time and remove grafana_index_server_indexed_docs metric
* use wire to inject bleve index metrics
* remove sprinkles metrics from bleve index metrics
* log error when trying to calculate file index size and bump interval to 1m instead of 5s
* Add heuristic approach to fixing untranslated text with eslint rule
* Update logic of how we track and report untranslated strings so we can prevent autofixes
* Update betterer to reflect different reporting of untranslated text
* Move logic for rule to utils and change to suggest instead of fix
* Update tests to cope with suggest instead of fix
* Remove commented out `only`
* Add config to allow force fixing
* Fix type errors and improve shouldFix logic
* Dashboards: Add conditional rendering
* Updates
* Fixes
* Code improvements
* Code improvements
* limit condition choices, add delete and clean up ui
* add basic variable condition
* add conditional rendering based on time range interval
* adjust failing test
* remove deprecated pseudo locale file
* extract conditional rendering from behaviour to state property
* clean up behaviour initialisation
* clean up ts errors
* adjust data condition to account for RowItem
* persist-conditional-rendering
* fix group value name and kind type
* Fix types in base
* minor style fix
* Fix subscribes
* notify change when deleting condition
* fix hidden row item error
* Remove option to have groups in groups
* fix merge issue
* address comments
* subscribe to panel data change in data condition
* Remove loop labels
* only persist conditional rendering if root group has items
* update backend types
* Serialize variable conditional rendering operator as equals notEquals
---------
Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* wip: Create a proxy state manager to avoid complexity
* Read path redirecting
* add tests for unified dashboard API
* add tests
* Contemplate both formats in DashboardProxy
* Fix force old
* Fix tests for proxy
* catch errors
* Save as V2 when dynamic dashboard is enabled
* Improve tests
* Remove feature toggle
* Use kubernetesDashboards for e2e suite
* Fix issue when loading snapshots
* Fix typescript errors
* Integrate with backend conversion error
* Remove legacy annotation
* fix snapshot loading; lint
* Add missing hideTimeControls
* fix test
* make setupDashboardAPI to all suites
* refactor getDashboardAPI
* Add tests
* fix DashboardScenePage tests
* fix tests
* fix go tests
* Refactor to understand better the need of transforming to v2 to compare
* Fix detect changes logic
* yes status from schema gen
---------
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
* SQL Expressions: Add CASE/WHEN SQL nodes to allowlist
* Fixed and test for functions added in #102011
* Add remaining functions to the test-case
These are mostly aliases, so the LLM chose to omit them originally.
But adding now for completeness
* Fix ordering of allowed nodes
* Pass BOOL values as real types (int/bool) instead of strings to SQL parameters.
Fixes following integration tests when running with Spanner:
* TestIntegrationDataAccess
* GetDataSourcesByType/Get_prunable_data_sources
* TestIntegrationUserAuthToken:
* expires_correctly
* can_properly_rotate_tokens
* keeps_prev_token_valid_for_1_minute_after_it_is_confirmed
* Fix more places where "true" or "false" string was passed as query parameter instead of bool value.
* Removed unit test because it brought unwanted dependencies on xorm into multiple modules.
* check namespace in unistore
* fix tests
* fix trace status
* Use capital letter
---------
Co-authored-by: Karl Persson <23356117+kalleep@users.noreply.github.com>
* feat(grafana-ui): introduce development exports to prevent importing from grafana/ui/src
* refactor(theme-generation): move theme templates into scripts so themes continue to build
* refactor(frontend): replace grafana/ui paths that use nested src with /internal or /unstable
* chore(betterer): update better results file
* feat(grafana-ui): support enterprise, remove Text component from internal
* docs(packages): update readme with exporting code conventions
* SQL Expressions: Add syntax highlighting and autocomplete
Here we add syntax highlighting and autocomplete for MySQL dialect of
SQL. We don't yet have the full functionality that other SQL monaco
editors have, namely
- No autocomplete of table or column names
- No autoformatting yet (meaning no formatting of template variables)
But this is a vast improvement already. The above improvements can come
later - they are slightly harder to do.
* Improvements, based on review from LLM
* Update to latest cog version and update workspaces
* Update generated go files
* Try to avoid concurrency issues
* Update workspaces
* Try to remove the sync...
* Remove grafana dependency from xorm go.mod file
This version of the package deprecates the `openai` object in
favour of the vendor-agnostic `llm` object, so this PR also
updates the usage of the package to use the new object and
take advantage of the vendor-agnostic APIs.
* Add no-useless-fragment rule for alerting code
* Auto-fix most no-useless-fragment cases
* Manually fix remaining no-useless-fragment cases
* Fix `invalid` passing to Field component
* Allow AlertingPageWrapper to have optional children
When creating Grafana-managed alerts from Prometheus rule definitions with mimirtool or cortextool, the rules are marked as "provisioned" and are not editable in the Grafana UI. This PR allows changing this by providing an extra header: --extra-header="X-Disable-Provenance=true".
When provenance is disabled, we do not keep the original rule definition in YAML, so it is impossible to read it back using the Prometheus conversion API (mimirtool/cortextool). This is intentional because if we did keep it and the rule was later changed in the UI, its Prometheus YAML definition would no longer reflect the latest version of the alert rule, as it would be unchanged.
* expr: Add row limit to SQL expressions
Adds a configurable row limit to SQL expressions to prevent memory issues with large
result sets. The limit is configured via the `sql_expression_row_limit` setting in
the `[expressions]` section of grafana.ini, with a default of 100,000 rows.
The limit is enforced by checking the total number of rows across all input tables
before executing the SQL query. If the total exceeds the limit, the query fails
with an error message indicating the limit was exceeded.
* revert addition of newline
* Switch to table-driven tests
* Remove single-frame test-cases.
We only need to test for the multi frame case. Single frame is a subset
of the multi-frame case
* Add helper function
Simplify the way tests are set up and written
* Support convention, that limit: 0 is no limit
* Set the row-limit in one place only
* Update default limit to 20k rows
As per some discussion here:
https://raintank-corp.slack.com/archives/C071A5XCFST/p1741611647001369?thread_ts=1740047619.804869&cid=C071A5XCFST
* Test row-limit is applied from config
Make sure we protect this from regressions
This is perhaps a brittle test, somewhat coupled to the code here. But
it's good enough to prevent regressions at least.
* Add public documentation for the limit
* Limit total number of cells instead of rows
* Use named-return for totalRows
As @kylebrandt requested during review of #101700
* Leave DF cells as zero values during limits tests
When testing the cell limit we don't interact with the cell values at
all, so we leave them at their zero values both to speed up tests, and
to simplify and clarify that their values aren't used.
* Set SQLCmd limit at object creation - don't mutate
* Test that SQL node receives limit when built
And that it receives it from the Grafana config
* Improve TODO message for new Expression Parser
* Fix failing test by always creating config on the Service
* Add description below group and namespace fields to make creation clearer
* Make DS managed recording rules clearer
* Change link for recording rule on empty state to Grafana managed
* Tweak empty state
* Tidy up logic for display of recording rule buttons
* Update .betterer.results
* feat: Instrument Tempo query latency measurements
Add comprehensive latency tracking and reporting for Tempo
queries using reportInteraction:
- Add latency measurements for TraceQL metrics queries
- Add latency measurements for TraceID queries
- Add latency measurements for TraceQL search queries
- Track both streaming and non-streaming query performance
- Include success/error states and relevant metadata in reports
- Measure latency in milliseconds for more precise tracking
This instrumentation will help monitor query performance and
identify potential bottlenecks in trace queries.
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
* fixup! feat: Instrument Tempo query latency measurements
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
* prettier fix
---------
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Co-authored-by: André Pereira <adrapereira@gmail.com>
The remote write path differs based on whether the data source is actually
Prometheus, Mimir, Cortex, or an older version of Cortex. We do not want
users to have to specify the path, so this change determines the path as
best it can.
It may be in the future we have to make this configurable per-datasource
to cater for setups where it's impossible to determine the correct path.
* Authz: Test List
* Anonymous case
* Cover rendering
* Authz: Check namespace is set in the context
* Explicitly request a namespace check in the storage functions
* Revert logic
* Add newLanguages feature toggle
* add additional languages behind feature toggle
* be more forgiving of what config looks like in tests
* tweak regex
* put pt-br back
* restore order of pt-BR and cn-Hans, rename EXTRA_LANGUAGES to NEW_LANGUAGES
* stricter test regex
* Added enterprise only note
* Fixed wording
* Added availability to share panel internally and removed invite new member
* Fixed wording for consistency
* Removed link to invite new members section
* Discarded change
* Update types with optional recording rules data source UID
* Show target data source for recording rules
* Add i18n
* Fix types
* Show datasource on recording rule page
* Fix loading of initial value for target datasource
* Update translations
* Update rule-form.test.ts.snap
* Update names and remove fragment
* replace relrefs and minor edits
* add new content and links
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* changes from linter and content suggestions
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-security/configure-authentication/saml/index.md
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* run prettier
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
* Add external border radius mixin
* Add getInternalRadius mixin for inverse use case
* Update border radius fns with clearler types and JSDoc annotations
* tidy up interface, apply correctly in radio buttons, add internal story
* connect padding/offset in radiobuttongroup/radiobutton
* split out offset into its own param
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Remove pseudoizer and use i18next-pseudo instead
* Remove pseudo.mjs script
* Conditionally add pseudo post processing to i18n config
* Remove pseudo-locale in favour of post processing
* Add wrapped property to pseudo strings
* expose nested folder component from core grafana
* prettier
* import order
* remove unused commented code
* remove unneeded file
* make a LazyFolderPicker
* fix types, change permission to string
* comment
* reset some changes back to main
* no need to log
---------
Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: joshhunt <josh.hunt@grafana.com>
* Remove unused `Separator` column
* Clarify the `export` JSON output is for file provisioning
* minor copy changes
* Be more specific about the `X-Disable-Provenance` header
* minor change
* fix vale errors
* Set inline code format in property names
* fix vale error: `bool`
* Dashboard: Auto focus title fields in edit pane
* Fix scroll issue
* Update
* No auto focus in panel edit
* Update to implementation
* alt skip fix
* fixed playwright test
* Update
* Fix
* Geomap: Implement webgl for marker layer
* Cover rgb color formatting
* Adjust size
* Adjust size and leave todo for adjustment
* Add custom icon example
* Use prepareSVG to handle custom icons
* Apply icon offset
* Add example of text labels for fixed case
* Add text canvas layer and layerGroup
* Use textMarker for text layer style
* Fix geometry calcs
* Only include text layer if needed
* Remove extra line
* Move color functions to utils
* Pass webGL bool to marker maker
* Move webgl symbol style to marker maker
* Get hit detection working for webgl layers
* Improve icon hit detection
* Improve text performance
* Fix types and simplify webgl styling
* Simplify webgl regular shape lookup
* Add comments
* Set fallback color to white
* Fix data fit for initial view
* Update color utils to support colors with alpha
* Add tests for color value function
* Add tests for getWebGLStyle function
* Clean up comments
* Only show text if no symbol is specified
* Remove size multiplier from webgl implementation
* Add size multiplier back for now
* Added Config options heading, bumped heading levels, and changed heading
* Updated task sub-heading and added to do notes
* Moved span filter options into a table and moved sentences after table
* Removed image
* Replaced captions with alt text
* Updated image path for main screenshot
* Fixed image path
* Updated screenshot and made to do notes
* Updated link to new heading
* Removed comments
Alerting: Include time range in templated dashboard and panel urls
Time range:
from=Alert.StartsAt-1hr
Firing Alerts: to=Current Timestamp
Resolved Alerts: to=Alert.EndsAt
What is this feature?
Adds target datasource UID to the recording rules so that they write to the same datasource used for alerting rule queries after the import.
Why do we need this feature?
Target datasourse support was added in #101678, and under a feature flag grafanaManagedRecordingRulesDatasources (#101778).
This PR makes the importing process:
Check if the import contains recording rules
Verify both recording rules and the grafanaManagedRecordingRulesDatasources feature flag are enabled
If either check fails, return an error
If both checks pass, create recording rules with the provided datasource UID set as both the query and target datasource
* WIP adding custom analyzer so we can do substring search efficiently
* Adding unit tests for title search
* formatting
* adds more title search unit tests
* organize helpers
* fixes issue caused by having two title mappings
* Removes camelcase token filter since it prevents you from searching for a substring of chars and numbers. Adds regression test.
* adds back mapping for title_phrase
* use simple analyzer for input query string so it doesn't filter out english stop words
* ran bleve tests, table snapshots updated
* ignore linter for "unused" test functions. They are very helpful for troubleshooting search. Keeping them.
* only log total hits and query cost if result not nil
* fixes failing test - one more field because there are two title mappings now
* fix test
* fixes test - only take first item when its the title
* Adds separate internal field for title ngram mapping.
When searching with a query, results are sorted by score desc.
When searching without a query, results are sorted by title desc.
Adjusts ngram max to be 10.
Text queries are a disjunction of an exact match, phrase match, and a match. Boosted to have priority in that order.
Adds more unit tests for searching.
* linter
* fix test
* ran tests - generated new test dash json
* sort by title phrase instead of title
* fix test - not relying on /apis/dashboard/search to apply title sorting anymore
* Alerting: Allow selection of recording rule write target on per-rule basis.
Introduces a new feature flag (`grafanaManagedRecordingRulesDatasources`),
disabled by default, to enable the ability to write recording rules data using
data source settings, and selecting the data source to use on a per-rule basis.
To cope with the scenario of users upgrading, a configuration file option
allows setting the default data source to use, if none is specified in the rule,
emulating the behaviour of recording rules without the flag enabled.
* Lint
* Update conf/sample.ini
Co-authored-by: Alexander Akhmetov <me@alx.cx>
---------
Co-authored-by: Alexander Akhmetov <me@alx.cx>
* cloudmigration/cloudmigrationimpl: run integration tests in parallel
* tsdb/mysql: run tests with actual service and instance manager
* pluginsintegration/angulardetectorsprovider: reduce job interval in test
* util: extract test that should only be ran with -race enabled and unskip it
The change to use WriteDatasource was done in a previous commit, this adds a
test case using DatasourceWriter, in addition to the one using PrometheusWriter.
* feat: report to bench
* fix: output json
* chore: own the code
* temp: limit files to test for faster iteration
* temp: force bench to run for testing purposes
* fix: bench has been merged to main
* fix: correct file name
* temp: remove temp
* feat: pin the tparse binary
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
---------
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
* Alerting: Implement arbitrary data source remote writer.
Recording rules currently remote write to the endpoint speficied in the
configuration file, but we want to change this so that it can be specified
on a per-rule basis. This change implements the updated RemoteWriter
interface, and dispatches writes to the correct data source.
Notes about the implementation:
- There is a defaulting behaviour, because we will need to handle situations
when upgrading from older Grafana versions, where recording rules do not a
data source target specified.
- In order to avoid re-creating the remote write clients for every request,
a cache is used. The entries have a TTL of 30 seconds at which point they
are recreated; this is the delay for picking up new data source settings.
Known limitations:
- There is no per data source configuration for the remote write path suffix.
- Not all data source settings will be used, but basic auth and TLS will be.
- There is no RBAC. This will be a follow up feature.
* Lint
* baldm0mma/ parallelize tests for reporting
* baldm0mma/ update combining non-existant outputs
* baldm0mma/ remove duplicate logic
* baldm0mma/ rem any unnecessary logging
* baldm0mma/ add workflow path for test coverage test
* baldm0mma/ cache ent
* baldm0mma/ update with crucial comments
* baldm0mma/ generate go files
* baldm0mma/ cache enterprise only once
* baldm0mma/ adjust coverage threshholds
* baldm0mma/ remove temp artifacts from storage to save $$$
* baldm0mma/ remove strict coverage for unit tests
* baldm0mma/ pass coverage go opts
* baldm0mma/ update run backend tests action to composite
* baldm0mma/ separate make gen go into it's own composite step
* baldm0mma/ move options to workflow
* baldm0mma/ remove use of action
* baldm0mma/ remove unsed action
* baldm0mma/ update codeowners
* baldm0mma/ add edition logic
* baldm0mma/ set env vars in determine-edition action
* baldm0mma/ make test
* baldm0mma/ debug sequential
* baldm0mma/ debugging by removing unit tests
* baldm0mma/ TRY SOMETHING DIFFERENT!!!
* baldm0mma/ uploading ent from within the workspace
* baldm0mma/ revert run-backend-tests action
* baldm0mma/ move edition to job level
* baldm0mma/ update WIRE_TAGS
* baldm0mma/ move the enterprise code to the correct location after extracting it
* baldm0mma/ rem packaging/extracting of enterprise code
* baldm0mma/ test makefile
* baldm0mma/ add ent setup to coverage
* baldm0mma/ rem backend test action
* baldm0mma/ add wire and go steps to coverage job
* baldm0mma/ remove make installation, as it is already present in the "ubuntu-latest" package
* baldm0mma/ convert to matrix testing strategy
* baldm0mma/ update separate test coverage to only a day
* baldm0mma/ add setup-common-backend-testing-env action
* baldm0mma/ add setup env
* baldm0mma/ update naming
* baldm0mma/ updade codeowners
* baldm0mma/ rem ent
* baldm0mma/ update naming
* baldm0mma/ remove multiline syntax in report-coverage
* baldm0mma/ make gen-go
* baldm0mm/ remove integration tests
* baldm0mma/ update coverage params
* baldm0mma/ streamline workflow
* baldm0mma/ update codeowners
* baldm0mma/ update naming
* baldm0mma/ simplify logic
* baldm0mma/ remove uneeded trigger
* baldm0mma/ remove conditional coverage step
* baldm0mma/ debug coverage
* baldm0mma/ update file name
* baldm0mma/ remove artifact upload
* baldm0mma/ update atrifact params in the workflow
* baldm0mma/ simplify processing logic
* Update namespace endpoint to filter out only relevant namespaces
* Update tests
* Fix url builder tests
* Add todo comments
* Update func to use ARG to retrieve namespaces with metrics
* Refactor getMetricNamespaces for readability
* Lint
* Remove comments
* Remove type assertion
* Refactor ARG query
* Update tests and refactor class to use ARG
* Update resource group query
- Updates the resource groups query to support users/apps with restricted permissions
* Update resources request to be paginated
- Also order by name
- Add tests
* Start refactoring azure monitor util functions to resource graph
* Minor lint
* Add getMetricNamespaces resource graph function
* Modify getMetricNamespaces call
- Use resource graph function for variable queries
* Return names for getResourceNames values
* Use getMetricNamespaces variable specific req in editor
* Substantial refactor
- Update Azure Resource Graph data source with a method for making paged requests and a method for retrieving metric namespaces (and add tests)
- Extract helpers from azure_monitor_datasource to utils and generalise them (also revert previous changes to datasource and test file)
- Update mock with Azure Resource Graph data source
- Revert response parser changes
- Revert url builder changes
- Update get metric namespaces query to use the resource graph method for variable queries
- Update docs
* Lint
* Oops
* Fix type
* Lint and betterer
* Simplify imports
* Improve type
* Simplify resource picker class
* Start updating tests
* Fix naming and include missing error
* Update resource graph data source mock
* Update tests
* Remove unneeded parser
* Add get subscriptions to resource graph
* Generalise resource groups request
* Fix resource names request to ensure no clashing
* Update types
* Use resource graph queries for resource picker
* Correctly map resource group names
* Update mocks
* Update tests
* Fix mapping
* Refactor getResourceNames
- Remove most of the logic from resourcePickerData
- Add helper for parsing resource names as template vars
- Some renames for clarity
- Update types
- Update tests
* Ensure namespaces are lowercase
* Update docs/sources/datasources/azure-monitor/template-variables/index.md
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Prettier write
* Ensure we return all namespaces if resourceGroup isn't specified
---------
Co-authored-by: alyssabull <alyssabull@gmail.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Create element panel lookup table
* When transforming to schema v2 get the element_identifier
* Add element identifier logic to layouts
* Retrieve element id in the serialization of each layout
* Keep ElementMapping updated when adding, removing panels
* Add basic unit test
* Wip: implement element mapping in serializer
* Remove Singleton
* Apply suggestions from code review
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* bring back missing functions - poc works at this point
* Move getElementIdentifierForVizPanel to dashboardSceneGraph
* poc - don't keep elementMapping updated
* Move logic to layout type serializer
* Remove unused code and remove layout tests
* clean up code, remove unnecessary functions
* Fix issue with initializeMapping
* remove console errors
* Remove testing code from response transformers
* Add unit test for DashboardSceneSerializer
* reset file, change not needed
* Improve comments on getElementIDForPanel
---------
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Simplify, by retaining quotes when escaping query
We also don't need to convert to string when passing to fmt.Sprintf
a slice of Bytes is accepted by Sprintf instead.
* feat: report to codecov
* fix: use webhook domain
* chore: force coverage check
* fix: use token
* fix: pass in token from workflow
* feat: remove codecov coverage force
The project board github.com/grafana/grafana/projects/21 has been deleted
as far as I can tell (or never existed).
I can't see an obvious candidate-team to receive `area/editor`, so I
propose we delete it instead.
* Alerting: Refactor NewPrometheusWriter function.
In order to re-use PrometheusWriter, changing the function take a
PrometheusWriterConfig instead of RecordingRulesSettings, and adapt the old
interface onto the new interface.
* Make linter happy
* Adds ability to run integration tests against spanner (by using GRAFANA_TEST_DB=spanner env variable. SPANNER_DB variable then specifies database to use: spannertest, emulator or string like /projects/<project>/instances/<instance>/databases/<db>)
* Adds feature to migration dialects to create database from a snapshot, instead of running individual migrations.
* Adds first version of Spanner snapshot, prepared from "OSS" migrations.
* Uses generated bit-reversed-positive values instead of auto_increment. (As an experiment)
* Clean up authenticator
* Cleanup authorizers and replace org_id and stack_id with namespace authorizer
* Remove dependency on org service
* Extract orgID from /apis/ urls and validate stack id
Extend the recording rule definition to include the target data source, allowing
configuration of where the output of the recording rule is written to. Also
extends the relevant interfaces in preparation for the next set of changes.
* Chore: Bump golang.org/x/net to v0.36.0
* Chore: Use github.com/moby/moby version 27.5.1 instead of 26.0.0
* Chore: Bump github.com/ua-parser/uap-go to v0.0.0-20250213224047-9c035f085b90
* Chore: Bump github.com/grpc-ecosystem/go-grpc-middleware/v2 to fix 32-bit overflow issue
* Resizeable SQL expressions text-area
Generated by an LLM for me - we'll see. It expands quite large on first
page-load
* Switch to useLayoutEffect to avoid visual flashing
* Get the LLM to rewrite the approach, inspired by InfluxDB
The Influx DB text-area is also resizable vertically, but that one isn't
a Monaco editor (we need to tell Monaco to update its own size when the
outer div is resized), so this is necessarily a little more complex than
Influx. But still this approach looks simpler: The Javascript here is
shorter
* Start at 240px, to match the current default size
Question: Is there a better approach to achieve this?
* Don't clip the bottom border of the Monaco editor
* Fix linting errors
* compare queries to insure query isnt changed
* comment
* removed calls to getTemplateSrv because it makes things impossible to test. added a check for empty raw queries
* prettier
* Update public/app/plugins/datasource/graphite/graphite_query.ts
Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>
---------
Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>
* Add link from the Trace View to the Profiles App via Profiles for this span button dropdown
* Fix tests
* Lint
* Fix test
* Lint
* Fallback if plugin extension does not exist
* Move span detail link buttons to their own file
* Add tests
* Update type name
* Update naming
* Prettier
* Move button
* Remove fallback
* Use proper time range
* Betterer
* Update test
* Use CoreApp
* Betterer
* Simplify context
* Update tests
---------
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* add feature toggle alertRuleRestore
* Update delete rule to require UserUID, remove all versions and create "delete" version that holds information about who and when deleted the rule
* add row item changes
* redesign row edit panes and header actions
* clean up after merges
* adjust to sentence casing
* bring back layout selection extra options
* serviceaccounts/secretscan: test Service more thoroughly
* middleware/cookies: add tests for CookieOptions
* anonymous/anonimpl: cover a couple more methods
* components/imguploader: Implement WebDAV integration tests
* components/apikeygen: also check IsValid method
* bus: cover invalid callback signature cases
* cloudmigration/objectstorage: add basic unit tests
* login/social/connectors: add test case for GitHub OAuth fetch emails+orgs
* expr/classic: cover more evaluator types in tests
* Update resource group query
- Updates the resource groups query to support users/apps with restricted permissions
* Update resources request to be paginated
- Also order by name
- Add tests
* Update test
* chore: update text for ds connections tab
Not sure if additional work is required to generate the translation
* chore: text change for connection tab
---------
Co-authored-by: Sam Kh. <syerikjan.khusayan@grafana.com>
* feat(grafana-data): introduce unstable entrypoint to package
* feat(grafana-runtime): introduce unstable entrypoint to package
* feat(plugins): expose unstable entrypoints for data and runtime to plugins
* feat(packages): dummy exports so package verification and shared deps imports work
* feat(featuremgmt): introduce feature toggle for enabling sri checks
* feat(frontend): use assetSriChecks feature toggle to inject integrity hash into script tags
* chore(webpack): align sri algorithms across dev and prod builds
* docs(featuremgmt): update assetSriChecks to pass CI
* docs(featuremgmt): fix more spelling complaints with assetSriChecks
* Add crossorigin attribute
* chore(webpack): add subresource-integrity plugin
* build(webpack): wrap webpack jsonp loader integrity checks in feature flag checks
* revert(index.html): remove crossorigin attribute if assertSriChecks is disabled
---------
Co-authored-by: Kristian Bremberg <kristian.bremberg@grafana.com>
* feat(grafana-ui): build unstable entrypoint for experimental components
* feat(plugins): expose grafana/ui/unstable
* build(grafana-ui): add rollup plugin to create alias package.json for unstable entrypoint
* build(packages): rewrite prepare npm script to generate alias packagejson files
* chore(packages): use relative paths in publishConfig for exports generation
* chore(frontend): move npmcli/package-json package to root package.json
* revert(grafana-ui): remove rollup plugin for generating alias package.json files
* chore(grafana-ui): clean up unstable directory postpack to prevent yarn lock issues
* build(packages): fix scope for pkgName usage
* feat(packages): create separate cjs and esm builds that validate with arethetypeswrong cli
* chore(yarn): refresh lock file
* fix(packages): make sure alias package.jsons point to existing files
* baldm0mma/ create backend-code-checks workflow
* baldm0mma/ update to validate backend configs
* baldm0mma/ rem unused dir
* baldm0mma/ update codeowners
* baldm0mma/ update naming
* baldm0mma/ update case
* baldm0mma/ update workflow name
* baldm0mma/ rem action and run the commands directly
* baldm0mma/ update codeownders
* baldm0mma/ update codeowners for workflow
* baldm0mma/ update workflow name in codeowners
What is this feature?
Allows the creation of alert rules with mimirtool in a specified folder.
Why do we need this feature?
Currently, the APIs for mimirtool create namespaces and rule groups in the root folder without the ability to set a custom folder. For example, it could be a special "Imported" folder, etc.
This PR makes it possible with a special header: mimirtool ... --extra-headers="X-Grafana-Alerting-Folder-UID=123". If it's not present, the root folder is used, otherwise, the specified one is used.
mimirtool does not support nested folder structures, while Grafana allows folder nesting. To keep compatibility, we return only direct child folders of the working folder (as namespaces) with rule groups and rules that are directly in these child folders as if there are no nested folders.
For example, given this folder structure in Grafana:
```
grafana/
├── production/
│ ├── service1/
│ │ └── alerts/
│ └── service2/
└── testing/
└── service3/
```
If the working folder is "grafana":
Only namespaces "production" and "testing" are returned
Only rule groups directly within these folders are included
If the working folder is "production":
- Only namespaces "service1" and "service2" are returned
Only rule groups directly within these folders are included
* Add isProvisioned field to model
* Add new isProvisioned column to migration
* Disable auto assignment to organization if the user is provisioned
* add annotation to user model
* add annotation to user models
* Remove IsProvisioned field from Identity
* Move new field assignenment and add default value
* Update annotations for user query results
* Remove isProvisioned from identity
* Add new column to test
* Resolve user from identity at SyncOrgHook
* make it build and start
* run some migrations
* add build tags, remove log
* remove unused code
* revert go.mod changes
* move initialisation into dialect file
* update workspace
* update workspace once again
* clean up dependencies
* further cleanup
* Address some review feedback.
* Fix go.sum.
---------
Co-authored-by: Peter Štibraný <pstibrany@gmail.com>
* login/social/socialimpl: add assertions for usage stats, support bundle and oauthinfo methods
* accesscontrol/acimpl: add tests for GetRoleByName
* anonymous/sortopts: add tests for Sorter
* cloudmigration/gmsclient: add basic test cases for all methods
* shorturls/shorturlimpl: add more edge test cases
* tag/tagimpl: add test to cover duplicate tag kv and nil pairs
* updatechecker: add test cases for module
* feat(auth/JWTAuth): add support for the TlsSkipVerify parameter
* feat(auth/JWTAuth): add param to default.ini and sample.ini
---------
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
Expand template testing to try additional scopes if the root scope fails.
This mitigates errors for definitions like pagerduty.default.instances,
which require the .Alerts scope. Added support for .Alerts and .Alert
scopes.
* add column guid to alert rule table and rule_guid to rule version table
+ populate the new field with UUID
* update storage and domain models
* patch GUID
* ignore GUID in fingerprint tests
* move prometheus.register for unified storage metrics into metrics.go and do most of the plumbing to get it to work
* convert StorageApiMetrics to pointer and check for nil before using it
* rename type and variables to something more sensible
---------
Co-authored-by: Jean-Philippe Quéméner <jeanphilippe.quemener@grafana.com>
* Restore feature: wip
* Refactor modal to separate component
* fix restoring from the drawer
* rename components folder to version-history, and move version-utils.file there
* skip fetching rule when uid is empty, add returnTo when restoring manually
* Fix drawer fetching infinitely
* Move drawer to separate file
* add tracking for restore success and restore failure
* Fix name of error interaction
* Add `compare` to each row in version history
* Add warning when manually restoring and trigger form validation
* Fix initial validation for contact point selector
* Wait for successful fetch before potential error
* Add disabled state when loading
* Fix loading check for contact point selector
* Fix typo
* Move hook to separate file and move other method into utils
* Update imports and remove manual state management
* Fix infinite render
* Remove onError from dep array
* Use separate flag for showing manual restore alert
* Rename to createdAt
* add and use ability to restore to check if retore is allowed
* Fix test and add isGrafanaManagedAlertRule to the ability check
* Address PR feedback
* Change to isManualRestore for trigger check
* udpate AlertRuleAction.Restore ability
* make the alertingRuleVersionHistoryRestore ff , enabled by default
* fix ff
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
Initially, Metadata had only the EditorSettings, and HasMetadata was used to understand if the incoming update request had metadata in the body because it could be omitted if it was empty. For example, when the rule is updated via the provisioning API or has only false values. If it was in the request, we used that; if not, we used the metadata from the existing rule from the database. If the rule was updated via the AlertRuleService, we didn't change Metadata at all if the rule already existed.
But now, Metadata also has the Prometheus rule definition, and we always need to update it with the new version of the AlertRuleService when the rule exists in the DB and has the same UID. HasMetadata is renamed to HasEditorSettings to keep the old behaviour only for EditorSettings.
Now, the provisioning API and the conversion API will overwrite everything except EditorSettings with the new data.
When you use a math expression with out any operators, the dataFrame pointer is identical between the expression result and the input query/expression.
This was resulting in the values returned from an evaluation overshadowing each other, depending on the order of the processing of the result map.
For example:
```
A: some_metric
B: reduce of A
C: math expression -> "${B}"
D: Threshold evaluation of C -> "C > 0"
```
With a value of 1 for `some_metric`, might result in a evaluation result of one of the following (somewhat at random):
1. { B: 1, D: 1 }
2. { C: 1, D: 1}
While you would expect to see:
{ B: 1, C: 1, D: 1 }
* Create LogLineMenu component
* Fine tune icon width
* LogLineMenu: Add placeholder options
* utils: create reusable handleOpenLogsContextClick
* LogLineMenu: add callbacks to menu items
* LogListContext: create component
* LogList: use log list context to connect menu callbacks
* LogLine: add pinned style
* Remove unused imports
* LogLine: add unit test
* LogLine: add menu test case
* LogLineMenu: add unit test
* LogLineMessage: add unit test
* LogListContext: add unit test
* Remove unused code
* Extract translations
* Fix handleOpenLogsContextClick
* Chore: memoize styles
* Virtualization: update node used for underflow detection
* Use useStyles2 instead of manually memoizing
* Virtualization: export getter instead of variable
* Open context: move stopPropagation to the old panel code
* Logs: add new container class
* Create the frontend test workflow
* Give .github/workflows/test-frontend to frontend platform group
* Remove file filter
* rename workflow
* frontend unit tests
* add yarn install
* update CODEOWNERS
* Run on 8 core machines?
* use parallelization?
* add sharding
* update package.json to allow sharding jest
* update workflow name
* yarn generate-apis
* update naming
* pass formatted scope filters to adhoc
* fix
* fix
* fix scenario where we have equals and not-equals filters with the same key
* add canary packages for testing
* WIP
* refactor to pass all filter values
* rename property
* refactor
* update canary scenes
* update scenes version
* fix tests
* fix arg startProfile bug that arised with scenes update
* LogList: add displayedFields and getFieldLinks props
* Render displayed fields
* LogLine: rename function
* Refactor log dimensions
* Generate styles in parent component
* Log List: implement tabular unwrapped logs
* Rename class
* Log line: center fields
* Parametrize field gap
* Virtualization: update measurement to support displayed fields
* Shorten visible level
* Do not calculate dimensions when logs are wrapped
* Logs Navigation: fix width when flag is enabled
* Pass styles to LogLineMessage
* Formatting
* Fix unwrapped logs when showTime is off
* LogLine: update css selectors for fields
update scheduler's aler rule to accept regular Evaluation in update channel
This makes it accept the full rule definition, which is required in reset state.
* add tests for broacaster
* fix sql notifier not closing the stream
* fix sql notifier not closing the stream
* close sub
* fix broadcaster test
* fix broadcaster test
* suggestion
* Add version 2.4 to frontend
* Update settings and types
- Set all properties on backend for consistency
* Update query logic to parse new and old format
- Minor naming updates
- Extract logic for initial frame creation
- When parsing old api responses, ensure data is in ascending order
- Update tests
* Update docs and provisioning file
* Fix lint
* Update docs/sources/datasources/opentsdb/_index.md
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Update docs/sources/datasources/opentsdb/_index.md
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Review nit
---------
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* RBAC: Remove accessControlOnCall feature toggle
* Leave the other one in place
* Tests
* frontend
* Readd empty ft to frontend test
* Remove legacy RBAC check
* Fix test
* no need for context
* Remove unused variable
* Remove unecessary param
* remove unecessary param from tests
* More tests :D
What is this feature?
Adds an API endpoint to create alert rules with mimirtool:
- POST /convert/prometheus/config/v1/rules/{NamespaceTitle} - Accepts a single rule group in a Prometheus YAML format and creates or updates a Grafana rule group from it.
The endpoint uses the conversion package from #100224.
Key parts
The API works similarly to the provisioning API. If the rule does not exist, it will be created, otherwise updated. Any rules not present in the new group will be deleted, ensuring the group is fully synchronized with the provided configuration.
Since the API works with namespace titles (folders), the handler automatically creates a folder in the root based on the provided title if it does not exist. It also requires a special header, X-Grafana-Alerting-Datasource-UID. This header specifies which datasource to use for the new rules.
If the rule group's evaluation interval is not specified, it uses the DefaultRuleEvaluationInterval from settings.
Update _index.md
Proposal to change the link title (also the relref behind, respectively). At the sidebar, under: Set up > Install Grafana - there is a link with the title "RHEL or Fedora". Just to be uniform...
* unit unexpected show
* format
* Build display in while building the counts, and remove the post processing iteration over the counts.
---------
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
* change weektype from string to WeekStart | undefined
* Change to WeekStart in more places, fix lint
* change in more places
* More weekstart changes
* fix snapshot, update betterer
* keep weekstart as '' in test dashboards to make sure it doesn't break old dashboards
* Provisioning: Define secrets service
* Provisioning: Create and store secrets service
* Provisioning: Define safepath
* Provisioning: Define the repository
* Identity: Support a provisioning service
* Provisioning: Define a job queue
* Chore: Regen code
* Provisioning: Show progress more often
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Provisioning: Rename hash field to lastRef
Co-Authored-By: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Workflows as write access
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Provisioning: Regen OpenAPI snapshot
* Provisioning: Update tests to match new fields
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* add alertUID to annotations API query parameter
* update state history UI to fetch rule by UID
---------
Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* created new topic docs
* added info to config doc
* updates to config doc
* updates to config doc
* finished config doc
* updated Query editor doc
* final edits
* rename, ref URI work
* a few more updates prior to PR issue
* fixed the double Macros heading issue
* final edits and cleanup
* edits based on feedback
* ran prettier
* added updates
* updates based on feedback
* vale linter issues
* more vale linting issues addressed
* small addition on main page
* ran prettier again
* changed title
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/configure/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/configure/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/configure/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/configure/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/configure/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* changed Grafana's
* added changes
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/datasources/postgres/query-editor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* ran prettier again
* Remove aliases
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix link
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Put code in `code`
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Avoid bold for emphasis
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix link
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* feat: OSS connections page state filter and update all added
* fix: use combobox instead of select
* fix: show no updates available text
* ref: extract update all button to a component
* Unistore: keep current dual writing mode when unable to run data syncer at bootstrap
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
---------
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
* Remove the unused `release_publisher` script.
* Remove the "whats new check" in Drone.
* Automatically set the What's New URL in releases based on the tagged version.
* Move drilldown apps from Explore to a new navbar item "Drilldown"
* Commit make i18n-extract
* Update drilldown icon
* Added alert to explore with call out to drilldown apps
* Add isNew field for nav item which shows a "New!" badge on the navbar and expands it by default
* Fix e2e test
* Send new annotation containing image url
* Use new image TokenProvider with TokenStore
New abstraction GetImage no longer needs to support parsing both token and
url from annotations, as remote AM will use the new URLProvider. Instead, we
use the new generic TokenProvider and give it a TokenStore backed by the
grafana database.
That means we revert back to always using token simplifying code and security
considerations.
* Upgrade grafana/alerting to merged commit SHA
* Chore: Update copy and comments to refer to Metrics Drilldown
* chore: replace explore-metrics with metrics-drilldown in api.ts
* chore: replace explore-metrics with metrics-drilldown in a
pi.test.ts
* chore: rename remaining instances in /public/app/features/trails
* Update public/app/features/trails/Integrations/dashboardIntegration.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/Integrations/dashboardIntegration.ts
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
---------
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
This PR adds errorsource attribution to the influxql and flux query paths
when the query model cannot be parsed, which is a user error.
It also catches cases where the datasource configuration does not
contain a scheme or host, and adds downstream attribution to those
errors.
Error handling on the influxql query path is updated to match 'all errors
are per query, and stashed on the response object' pattern.
Fixes https://github.com/grafana/oss-plugin-partnerships/issues/1250
* Fixed usage of incorrect type in the 'usePluginComponents' hook.
* improved betterer.
* Changed import path of usePluginLinks types.
* improved betterer result.
What is this feature?
This change adds properties and known annotations to store them in for recording resource manager information, such as:
The type (kind) of the manager (ex. Terraform / kubectl / etc.)
The identity of the manager (ex. grafana/terraform-provider-grafana)
Whether the managers allows the resource to be edited by others.
Whether a resource is temporarily excluded from the manager's control.
These annotations are inspired by Kubernetes field management API (https://kubernetes.io/docs/reference/using-api/server-side-apply/#field-management) and known Kubernetes annotations
(https://kubernetes.io/docs/reference/labels-annotations-taints/#app-kubernetes-io-managed-by).
It also adds annotations for storing information about the source of a provisioned resource, such as path, checksum & timestamp.
Why do we need this feature?
To make it possible to mark resources as managed by specific managers, modifying how these resources appear in the UI and are treated in the backend APIs.
For example, we'd like to make managed resources read-only, or show specific docs / workflows based on the tool which is used to manage resources and so on.
The identity is required for ensuring that managers of the same kind can still be told apart.
Who is this feature for?
For as-code practitioners and API users.
---------
Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Update ErrRequestErrorBase to make it more clear for developers
* Trigger build
* requestError -> requestFailureError
* Fix test
* Update pkg/plugins/backendplugin/grpcplugin/client_v2.go
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
---------
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Plugins CDN: Add support for signature type and signature org
* Fall-back to valid signature if the config is not supported
* Move CDN signature code to DefaultSignature
* fix tests
* SQL data sources: Use correct error source for sql processing errors
* Fix lint
* Fix cyclomatic complexity
* Nit rename variable to make it more clear what those errors are
* CI: Track backend code coverage
This is a super rudimentary way to track this coverage. The important bit for me is the ability to extract the coverage
files.
* CI: Allow tests to fail
* Codeowners: Assign ownership of coverage tracking
* CI: Join coverage info in the job
* CI: Attempt to parallellise tests
* CI: Upload despite failures
* CI: Pattern is not regex
* CI: Set up repository and Go before merging
* CI: Generate go before checking coverage
* CI: Multi-line string
* CI: Backticks execute commands; avoid them
* CI: Make the output a bit prettier
Tabs are absurdly large.
* CI: Remove comment on retention
* 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`
This is directory which stores Go modules with pinned buildable package that is used within this repository, managed by https://github.com/bwplotka/bingo.
- Run `bingo get` to install all tools having each own module file in this directory.
- Run `bingo get <tool>` to install <tool> that have own module file in this directory.
- For Makefile: Make sure to put `include .bingo/Variables.mk` in your Makefile, then use $(<upper case tool name>) variable where <tool> is the .bingo/<tool>.mod.
- For shell: Run `source .bingo/variables.env` to source all environment variable for each tool.
- For go: Import `.bingo/variables.go` to for variable names.
- See https://github.com/bwplotka/bingo or -h on how to add, remove or change binaries dependencies.
* Run `bingo get` to install all tools having each own module file in this directory.
* Run `bingo get <tool>` to install <tool> that have own module file in this directory.
* For Makefile: Make sure to put `include .bingo/Variables.mk` in your Makefile, then use $(<upper case tool name>) variable where <tool> is the .bingo/<tool>.mod.
* For shell: Run `source .bingo/variables.env` to source all environment variable for each tool.
* For go: Import `.bingo/variables.go` to for variable names.
* See https://github.com/bwplotka/bingo or -h on how to add, remove or change binaries dependencies.
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.
extract_error_message='::error::Extraction failed. Make sure that you have no dynamic translation phrases, such as "t(`preferences.theme.{themeID}`, themeName)" and that no translation key is used twice. Search the output for '[warning]' to find the offending file.'
make i18n-extract || (echo "${extract_error_message}" && false)
- run:|
uncommited_error_message="::error::Translation extraction has not been committed. Please run 'make i18n-extract', commit the changes and push again."
- **Docker:** Use our own glibc 2.40 binaries [#99918](https://github.com/grafana/grafana/pull/99918), [@DanCech](https://github.com/DanCech)
- **TransformationFilter:** Include transformation outputs in transformation filtering options [#99878](https://github.com/grafana/grafana/pull/99878), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **grafana-ui:** Update InlineField error prop type to React.ReactNode [#100373](https://github.com/grafana/grafana/pull/100373), [@Clarity-89](https://github.com/Clarity-89)
### Bug fixes
- **Alerting:** Allow specifying uid for new rules added to groups [#100450](https://github.com/grafana/grafana/pull/100450), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Allow specifying uid for new rules added to groups [#100450](https://github.com/grafana/grafana/pull/100450), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Call RLock() before reading sendAlertsTo map [#99880](https://github.com/grafana/grafana/pull/99880), [@santihernandezc](https://github.com/santihernandezc)
- **DashboardList:** Throttle the re-renders [#100046](https://github.com/grafana/grafana/pull/100046), [@bfmatei](https://github.com/bfmatei)
- **Dashboards:** Bring back scripted dashboards [#100633](https://github.com/grafana/grafana/pull/100633), [@dprokop](https://github.com/dprokop)
- **Plugin Metrics:** Eliminate data race in plugin metrics middleware [#100078](https://github.com/grafana/grafana/pull/100078), [@clord](https://github.com/clord)
- **RBAC:** Don't check folder access if `annotationPermissionUpdate` FT is enabled [#100117](https://github.com/grafana/grafana/pull/100117), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
<!-- 11.5.2 END -->
<!-- 11.4.2 START -->
# 11.4.2 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99924](https://github.com/grafana/grafana/pull/99924), [@DanCech](https://github.com/DanCech)
- **AuthN:** Refetch user on "ErrUserAlreadyExists" [#100585](https://github.com/grafana/grafana/pull/100585), [@kalleep](https://github.com/kalleep)
- **Azure:** Correctly set application insights resource values [#99598](https://github.com/grafana/grafana/pull/99598), [@aangelisc](https://github.com/aangelisc)
- **Dashboards:** Bring back scripted dashboards [#100629](https://github.com/grafana/grafana/pull/100629), [@dprokop](https://github.com/dprokop)
- **Plugin Metrics:** Eliminate data race in plugin metrics middleware [#100077](https://github.com/grafana/grafana/pull/100077), [@clord](https://github.com/clord)
- **RBAC:** Don't check folder access if `annotationPermissionUpdate` FT is enabled [#100116](https://github.com/grafana/grafana/pull/100116), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
<!-- 11.4.2 END -->
<!-- 11.3.4 START -->
# 11.3.4 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99923](https://github.com/grafana/grafana/pull/99923), [@DanCech](https://github.com/DanCech)
- **Azure:** Correctly set application insights resource values [#99597](https://github.com/grafana/grafana/pull/99597), [@aangelisc](https://github.com/aangelisc)
- **Dashboards:** Bring back scripted dashboards [#100627](https://github.com/grafana/grafana/pull/100627), [@dprokop](https://github.com/dprokop)
- **Plugin Metrics:** Eliminate data race in plugin metrics middleware [#100076](https://github.com/grafana/grafana/pull/100076), [@clord](https://github.com/clord)
<!-- 11.3.4 END -->
<!-- 11.2.7 START -->
# 11.2.7 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99922](https://github.com/grafana/grafana/pull/99922), [@DanCech](https://github.com/DanCech)
### Bug fixes
- **Azure:** Correctly set application insights resource values [#99596](https://github.com/grafana/grafana/pull/99596), [@aangelisc](https://github.com/aangelisc)
<!-- 11.2.7 END -->
<!-- 11.1.12 START -->
# 11.1.12 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99917](https://github.com/grafana/grafana/pull/99917), [@DanCech](https://github.com/DanCech)
### Bug fixes
- **Azure:** Correctly set application insights resource values [#99595](https://github.com/grafana/grafana/pull/99595), [@aangelisc](https://github.com/aangelisc)
<!-- 11.1.12 END -->
<!-- 11.0.11 START -->
# 11.0.11 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#100730](https://github.com/grafana/grafana/pull/100730), [@DanCech](https://github.com/DanCech)
### Bug fixes
- **Azure:** Correctly set application insights resource values [#99594](https://github.com/grafana/grafana/pull/99594), [@aangelisc](https://github.com/aangelisc)
<!-- 11.0.11 END -->
<!-- 10.4.16 START -->
# 10.4.16 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99920](https://github.com/grafana/grafana/pull/99920), [@DanCech](https://github.com/DanCech)
### Bug fixes
- **Dashboard:** Fix for overwriting an edited dashboard in the old architecture [#100288](https://github.com/grafana/grafana/pull/100288), [@bfmatei](https://github.com/bfmatei)
- **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)
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.