* Build out barebones Traces editor
- Add Traces query type and operation ID prop to query type
- Add necessary header types
- Update resource picker to appropriately work with traces query type
- Build out TracesQueryEditor component
- Include logic to retrieve operationId's for AI Workspaces
- Add backend route mapping
- Update macro to use timestamp as default time field for traces
* AzureMonitor: Traces - Response parsing (#65442)
* Update FormatAsField component
- Add trace ResultFormat type
- Generalise FormatAsField component
- Add component to TracesQueryEditor
- Remove duplicate code in setQueryValue
* Add custom filter function to improve performance
* Add basic conversion for logs to trace
- Add serviceTags converter
- Pass through required parameters (queryType and resultFormat)
- Appropriately set visualisation
* Update parsing to also fill trace tags
- Add constant values for each table schema (include legacy mapping for now if needed)
- Add constant for list of table tags
- Set the foundation for dynamic query building
- Update query to build tags value
- Appropriately set operationName
- Update tagsConverter to filter empty values
* Fix lint and test issues
* AzureMonitor: Traces - Data links (#65566)
* Add portal link for traces
- Pull out necessary values (itemId and itemType)
- Appropriately construct
- Fix ordering
* Set default format as value
- Also set default visualisation
* Fix event schema
* Set default formatAsField value
* Include logs link on traces results
- Adapt config links to allow custom title to be set
* Correctly set operationId for query
* Update backend types
- Include OperationID in query
- Pass forward datasource name and UID
* Ensure setTime doesn't consistently get called if operationID is defined
* Add explore link
- Update util functions to allow setting custom datalinks
* Fix tests
* AzureMonitor: Traces - Query and Editor updates (#66076)
* Add initial query
- Will query the resource as soon as a resource has been selected
- Updates the data links for the query without operationId
- Remove initial operationId query and timeRange dependency
- Update query building
* Add entirely separate traces query property
- Update shared types (also including future types for Azure traces)
- Update backend log analytics datasource to accept both azureLogAnalytics and azureTraces queries
- Update backend specific types
- Update frontend datasource for new properties
- Update mock query
* Update FormatAsField to be entirely generic
* Update query building to be done in backend
- Add required mappings in backend
- Update frontend querying
* Fix query and explore data link
* Add trace type selection
* Better method for setting explore link
* Fix operationId updating
* Run go mod tidy
* Unnecessary changes
* Fix tests
* AzureMonitor: Traces - Add correlation API support (#65855)
Add correlation API support
- Add necessary types
- Add correlation API request when conditions are met
- Update query
* Fix property from merge
* AzureMonitor: Traces - Filtering (#66303)
* Add initial query
- Will query the resource as soon as a resource has been selected
- Updates the data links for the query without operationId
- Remove initial operationId query and timeRange dependency
- Update query building
* Add entirely separate traces query property
- Update shared types (also including future types for Azure traces)
- Update backend log analytics datasource to accept both azureLogAnalytics and azureTraces queries
- Update backend specific types
- Update frontend datasource for new properties
- Update mock query
* Update FormatAsField to be entirely generic
* Update query building to be done in backend
- Add required mappings in backend
- Update frontend querying
* Fix query and explore data link
* Add trace type selection
* Better method for setting explore link
* Fix operationId updating
* Run go mod tidy
* Unnecessary changes
* Fix tests
* Start building out Filters component
- Configure component to query for Filter property values when a filter property is set
- Add setFilters function
- Add typing to tablesSchema
- Use component in TracesQueryEditor
* Update Filters
- Asynchronously pull property options
- Setup list of Filter components
* Update filters component
- Remove unused imports
- Have local filters state and query filters
- Correctly set filters values
- Don't update query every time a filter property changes (not performant)
* Update properties query
- Use current timeRange
- Get count to provide informative labels
* Reset map when time changes
* Add operation selection
* Reset filters when property changes
* Appropriate label name for empty values
* Add filtering to query
* Update filter components
- Fix rendering issue
- Correctly compare and update timeRange
- Split out files for simplicity
* Add checkbox option to multiselect
- Add custom option component
- Correctly call onChange
- Add variableOptionGroup for template variable selection
* Fix adding template vars
* Improve labels and refresh labels on query prop changes
* AzureMonitor: Traces - Testing (#66474)
* Select ds for template variable interpolation
* Update az logs ds tests
- Add templateVariables test
- Add filter test
- Update mock
- Remove anys
* Update QueryEditor test
- Update mocks with timeSrv for log analytics datasource
- Fix query mock
- Use appropriate and consistent selectors
* Add TracesQueryEditor test
- Update resourcePickerRows mock to include app insights resources
- Remove comments and extra new line
* Add FormatAsField test
- Remove unneeded condition
* Update resourcePicker utils test
* Don't hide selected options in filters
* Fix multi-selection on filters
* Add TraceTypeField test
- Add test file
- Update selectors (remove copy/paste mistake)
- Update placeholder text for select and add label
* Add basic filters test
* Begin filters test
* Update filters test
* Add final tests and simplify/generalise addFilter helper
* Minor update to datasource test
* Update macros test
* Update selectors in tests
* Add response-table-frame tests
* Add datasource tests
- Use sorting where JSON models are inconsistent
- Update filters clause
- Dedupe tags
- Correct operationId conditions
* Don't set a default value for blurInputOnSelect
* Simplify datasource test
* Update to use CheckGoldenJSON utils
- Update with generated frame files
- Remove redundant expected frame code
- Update all usages
* Fix lint
* AzureMonitor: Traces feedback (#67292)
* Filter traces if the visualisation is set to trace
- Update build query logic
- Added additional test cases
- Return an error if the traces type is set by itself with the trace visualisation
- Add descriptions to event types
- Update tests
* Fix bug for error displaying traces
* Update mappings and add error field
- Update tests
- Remove unnecessary comments
* Switch location of Operation ID field
* Re-order fields
* Update link title
* Update label for event type selection
* Update correct link title
* Update logs datalink to link to Azure Logs in explore
* Fix lint
* Draft: Feature: Trusted Types support
* remove trusted-types package
* Create policy before jQuery and Angular is loaded and add feature flag
* Add trustedTypePolicies
* Sanitize scriptURL
* Add TT meta tag for test env
* Move trusted types into core
* Add DOMParser support for TrustedHTML
* Seperate RSS sanitization and add better TrustedHTML support
* Get test CSP header from config
* Remove dompurify dep from core
* Add documentation for trusted types
* Apply suggestions from code review
Co-authored-by: Kristian Bremberg <114284895+KristianGrafana@users.noreply.github.com>
* Add comment about Github discussion thread and things breaking
* Remove changes from News panel
* Remove TT feature toggle
* Expose TT and CSPReportOnly to frontend
* Log errors in console when CSP report only is enabled
* Log error for reporting and remove test mode
* Only insert CSP header in HTML for dev env
* Update docs
---------
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Add a method for getting descendant folders
* Include dashboard count for descendant folders
* Return subfolder count
* Replace references to children with descendants
* Update openapi specs
* Add test for descendant counts
* Add logging to GetDescendantCounts
* organize layout, make design uniform, add doc link
* fix e2e test
* move overhauled config parts into prometheus code
* update tooltips with doc links
* clean component styles for section padding, top and bottom 32px
* make additional settings subsection headers h6
* use secondary gray for section descriptions
* fix merge issues
* change inlineswitch to switch only in prom settings because the other components are shared
* remove legacy formfield and input, replace with inlinefield and input from grafana-ui
* find more formfield and UI design fixes like changing inlineformlabel to inlinefield
* remove unused inline form label
* replace legacy duration validations with <FieldValidationMessage>
* fix styles secondary gray from theme
* change language, headings and datasource -> data source
* update alert setting styles with new component
* update prom url heading and tooltip
* update default editor tooltip and set builder as default editor
* update interval tooltip
* update prom type tooltip
* update custom query params tooltip
* update exemplar internal link tooltip
* fix inline form styling inconsistency
* allow for using the DataSourceHTTPSettings component without the connection string
* remove overhaul component, re-use dshtttps comp, and use connection input in config editor
* make tooltips interactive to click links
* consistent label width across the elements we can control for now, fix exemplar switch
* make connection url a component
* refactor onBlur validation
* remove unused component
* add tests for config validations
* add more meaningful health check
* fix e2e test
* fix e2e test
* fix e2e test
* add error handling for more url errors
* remove unnecessary conversion
* health check tests
* Clean up the health check
* health check unit tests
* health check unit tests improved
* make pretty for drone
* lint check go
* lint check go
* add required attr to connection component
* Update public/app/plugins/datasource/prometheus/configuration/Connection.tsx
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* fix read only issue for provisioned datasources
* validate multiple durations for incremental query setting
* use sentence case for headers
* use className consistently for styles
* add tests for url regex
* remove console logs
* only use query as healthcheck as the healthy api is not supported by Mimir
* fix exemplar e2e test
* remove overhaul prop from custom headers setting component
* remove connection section and use DatasourceHttpSettings connection with custom label and interactive tooltip
* add spaces back
* spaces
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Add CreateNewButton and tests
* Add translation support
* Move reused phrases to temp common file
* Use just a simple button
---------
Co-authored-by: joshhunt <josh@trtr.co>
* NestedFolders: Select all for BrowseView and SearchView
* show fake indeterminate state for SearchView
* fix types
* Select search results as additional pages are loaded
* fix (de)select all between browse and search
* tests
* fix test
* fix test
* NestedFolders: Connect Search input fields to state manager
* Fix tag list not loading
* Clear includePanels checkbox when leaving search
* fix test
* Fix extra right margin
* fix missing style
* cleanup
* fix placeholder
* fix test
* Use alertmanager /alerts endpoint to show preview of instances affected by silence
* Fix debounce dependency, add no instances warning
* Rename silences preview component
* Fix the preview file name, use IsNulLDate to check the date
* Fix valid matchers condition
* Cleanup
* Remove unused code
* fix flickering
* refactor onClose/onOpen
* do not set value of input, make the placeholder look like the value instead
* Show search icon when the dropdown is open
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* add modal scaffolding
* add some unit tests
* remove dummy api, add some TODO comments
* small test refactor
* another small test refactor
* fix unit tests due to aria-label/data-testid change
* add isNew notPersistedProperty to PanelModel
* if panel is newly created and user "Discard"s it, the panel is removed entirely
* add Todo's for when we remove the emptyDashboardPage FF
* add isNew to new panel after file dropping on dashboard page
* handle the "Apply" case
* CSV file dropping is not relevant to a new panel bc it doesnt open edit page
* avoid mutable
* remove mutableDataFrame from utils also
* fix build and add couple more testss
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* WIP
* Add instance totals to combined rule. Use totals to display instances stats in the UI
* WIP
* add global summaries, fix TS errors
* fix useCombined test
* fix test
* use activeAt from rule when available
* Fix NaN in global stats
* Add no data total to global summary
* Add totals recalculation for filtered rules
* Fix instances totals, remove instances filtering from alert list view
* Update tests
* Fetch alerts considering filtering label matchers
* WIP - Fetch alerts appending state filter to endpoint
* Fix multiple values for state in request being applyied
* fix test
* Calculate hidden by for grafana managed alerts
* Use INSTANCES_DISPLAY_LIMIT constant for limiting alert instances instead of 1
* Rename matchers parameter according to API changes
* Fix calculating total number of grafana instances
* Rename matcher prop after previous change
* Display button to remove max instances limit
* Change matcher query param to be an array of strings
* Add test for paramsWithMatcherAndState method
* Refactor matcher to be an string array to be consistent with state
* Use matcher query string as matcher object type (encoded JSON)
* Avoind encoding matcher parameters twice
* fix tests
* Enable toggle for the limit/show all button and restore limit and filters when we come back from custom view
* Move getMatcherListFromString method to utils/alertmanager.ts
* Fix limit toggle button being shown when it's not necessary
* Use filteredTotals from be response to calculate hidden by count
* Fix variables not being replaced correctly
* Fix total shown to be all the instances filtered without limits
* Adress some PR review comments
* Move paramsWithMatcherAndState inside prometheusUrlBuilder method
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* remove old page component
* add test to check initDashboard is only called once (prevent variables loading twice)
* add help node
* update unit tests
* remove last mentions of topnav
* fix unit tests
* remove unused props from ButtonRow interface
* remove prop from test
* Loki: Fix incorrect evaluation of real/extracted labels in context
* Add tests
* Improve caching and add more tests
* Use mockResolvedValue
* Flip logic for getInitContextFiltersFromLabels
* Update to logic to use fetchSeriesLabels for queries with more than 1 parser
* Add CountInFolder to RegistryService interface
* Add folder children counts api route
* Update fake GetFolderChildrenCounts
* Add test for getting folder children counts
* Add validation to folder children counts handler
* Update openapi specs
* Update pkg/services/folder/folderimpl/folder.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Add kind to TraceQL intrinsics
* Fix after merging main
* Fix intrinsics array reference after merge
* Dispatch error message when TraceQL autocomplete fails to retrieve tag values
* adds alertstatehistory backend config to grafanaBootData
* add alertStateHistory api
* show different ASH modal when using loki implementation
* group log lines by instance (unique set of labels)
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* render log lines for each instance
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* Add visual improvements to the log record of state changes
* Add values to log records
* compute common labels and show unique labels
* Add state changes visualization
* fix common labels extraction
* Code cleanup
* Add timespan-based log record view
* WIP
* scroll to timestamp - poc
* Use SortedVector for timestamp field
* add conditional accessor for frames
* update some of the log formats and styles
* Timestamp-based visualization with scrolling
* minor improvements
* Split Loki's state history viewer into multiple files
* Add memoization to prevent graph rerender on filter updates
* make chart size shrink when fewer instances
* style updates
* show warning when instances are hidden
* Add basic label-based filtering
* Improve label-based filtering
* Add regex validation
* Improve no instances message when everything was filtered out
* Update warning message
* Move timeline viewer to a separate file, refactor handling timeline pointer changes
* Remove unused component, add comments
* Fix test snapshot, fix type error
* adds tests for common.ts
* Add tests for converting log records into data frames
* Add basic component test, fix type guards
* Use a constant for timeseries limit
* Improve a11y, update component test
* Memoize AlertStateTag, migrate from deprecated ArrayVector
* Update public/app/features/alerting/unified/components/rules/state-history/common.ts
* Move helper hook into a separate file. Add Search input component
* Change the limit of visible time series on the timeline
* Add LogRecordViewer perf improvements, refactor timeline cursor events tracking
* Use callback to pass timeline refs
* Add grouping tests for the log record viewer
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* remove metadata for single folder listing
* extendTests
* remove ac metadata from dash and folder search results
* remove test
* remove one more test
* put ac metadata back for single folder API responses
* extend tests
* remove ac metadata from folder frontend object
* undo unneeded change
* PR feedback
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>