* 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>