* Docs: Added $__rate_interval to Prometheus help
The variable '$__rate_interval' was added in Grafana 7.2.0. This commit
adds the missing help information to Grafana's Prometheus PromQueryEditor.
Signed-off-by: David Calvert <davidcalvertfr@gmail.com>
* Docs: Fixed line length in PromQueryEditor.tsx
This commit will fix line length of my previous commit to make CI green
again.
Signed-off-by: David Calvert <davidcalvertfr@gmail.com>
* Docs: Fixed ci error
Fixed CI error due to my previous commits
Signed-off-by: David Calvert <davidcalvertfr@gmail.com>
(cherry picked from commit 1f389d72b2)
* Update stackdriver query editor not to overwrite project name
* Fix legacy select form no options didn't show
* Update config link to docs
(cherry picked from commit b1186d693a)
* Dashboard: Add subUrl to explore url
Honour subUrl when opening explore in new window
* Dashboard: Add tests to onNavigateToExplore
* Dashboard: Remove condition from tests
(cherry picked from commit 17a1e78754)
* ValueMappings: Fix issue with value mappings override creating default value mapping for all fields
* Fixed unit tests
(cherry picked from commit f285569316)
kuberentes (and Im sure other orchastrators does as well) support two
kind of checks. readiness checks and liveness checks. Grafanas current
`/api/health` endpoint requires database access which might not
always be required for the instance to be considered active.
(cherry picked from commit 6dc73a6712)
* add overflow hidden to titleWrapper
* show ellipsis and css labels for components
* readd drag handle after bad merge
* rewrite userpicker test with rtl
* update test after adding css label to icon component
* fix more tests..
(cherry picked from commit 6a14f830ba)
This adds a check to see if plugin route URL is empty, and in such case
does not modify request schema and host of the request to be proxied.
This behavior is now the same as in the plugin proxy.
(cherry picked from commit 564d7ecea7)
* SharedQuery: Error when switching to -- Dashboard -- data source made observable subscription error and subsequent data results not update visualization
* added null check just in case
(cherry picked from commit 31e2b7e7c8)
Add a default timezone that the administrator can set in the settings.
This setting is be used as default for the users timezone preference.
Can be used when creating Grafana instances without administrator
intervention, in order to give user the correct default timezone.
Fixes#25654
(cherry picked from commit 39eba5065b)
* fixed: bigdata dropdown first limit 1000
* fixed: change to use function of applylimit
* fixed: remove both applyLimit callers
* feat: test for new logic with applimit
* feat: test showOptions with the applyLimit logic
* fixed: test equal fixed
(cherry picked from commit 0d2fbd2acd)
Allows login_maximum_inactive_lifetime_duration and
login_maximum_lifetime_duration to be configured using
time.Duration-compatible values while retaining backward compatibility.
Fixes#17554
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
(cherry picked from commit 8d971ab2f2)
* PanelEdit: Drag and drop query order & UI tweaks
* Fixed width of title issue
* added correct color and hover
* Updated e2e tests
(cherry picked from commit 8759a91222)
* Fixed so we try to use the variables in the redux store to replace values in template variables.
* First draft of working version.
* Including fieldPath when adding :text format.
* cleaned up code by introducing helper function.
* some minor refactoring.
* Added tests and support for multi variables.
* added test and code to handle the All scenario of a multivariable.
* fixed according to feedback.
* added docs.
* added text format to gdev dashboard.
* updated e2e tests.
* make sure we use the same function for formatting och variable lable.
* increased the number to 22.
* changed label for tests to be All.
* existing format should be respected.
(cherry picked from commit 0c8390cea2)
* Alerting API: Send back 404 not found error for update and delete endpoints
* Alerting API: send back alert notification id for delete with uid endpoint
(cherry picked from commit 0c4b7d3f5d)
#26395 introduced a regression regarding sort order of nav tree
items set in Grafana boot data and used for rendering the sidemenu.
This fixes so that sort happens after RunIndexDataHooks is called
in case the hook make changes to the nav tree.
(cherry picked from commit 1983de962c)
* Dashboard: Merge Data units categories
Prefixes already allow to distinguish IEC units from SI ones
+ Prefer using binary function over decimal one when equal
* Dashboard: Clarify SI & binary prefixes
* Dashboard: Homogeneise rate units
* Dashboard: Add Binary (IEC) prefix for data rates
(cherry picked from commit 794333de3d)
* implement edit page
* connectWithCleanup
* remove angular related code
* use loadingindicator
* use the correct loading component
* handle secureFields
* fixed implementation of secure fields
* Keep secureFields after rerendering the form
* CollapsableSection and Page refactor
* use checkbox instead of switch
* fix comment
* add cursor to section
* Fixed issues after PR review
* Fix issue with some settings being undefined
* new reducer and start with test
* algorithm to migrate secure fields
* UX: Minor UI Tweaks
* Added field around checkboxes, and missing required field
* fixed test
* tests for util
* minor tweaks and changes
* define as records
* fix typ error
* forward invalid to textarea and inputcontrol
* merge formdata and redux data in test
* fix issue with creating channel
* do not figure out securefields in migration
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* DashboardSettings: Fixes auto refresh crash with space in interval
* Tests: fixes typings
* Refactor: validets onBlur and other PR comments
* Tests: adds component tests
* Refactor: changes after PR feedback
Changes the dimensionsFilters property to dimensionsFilter in the Azure Monitor Datasource's AzureMonitor service to make what is sent to match the saved model.
Before this, the property that the backend was expecting was not available in the case of alerting, where the stored model is fetched.
This also fixes a panic when there is a dimension alias but no dimension
## FilterableTableCell
### added
- added `display: inline-flex` and `align-items: center` to
`tableCellWrapper` class
- added `flex: 1` to `tableCell` class
### removed
- unused imports
- removed ternary if since it has no use anymore
- removed `tableCellWrapper` style definition from stylesFactory
* Make sure repeated panel has inView property set correctly
* Test
* Update public/app/features/dashboard/state/DashboardModel.ts
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Explore: Transform prometheus query to elasticsearch query
Enable a way to transform prometheus/loki labels to elasticsearch query.
This make a link between metrics to logs.
Examples:
A prometheus query : rate(my_metric{label1="value1",label2!="value2",label3=~"value.+",label4!~".*tothemoon"}[5m])
Will be this elasticsearch query when switching to elasticsearch datasource: __name__:"my_metric" AND label1:"value1" AND NOT label2:"value2" AND label3:/value.+/ AND NOT label4:/.*tothemoon/
* fix test
* remove non needed async
* Use prism token instead of regex
* fix test ./scripts/ci-frontend-metrics.sh
* mock timesrv and TemplateSrv in test
* Remove unnecessary await/async
Co-authored-by: Melchior MOULIN <m.moulin@criteo.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* wip.
* Fixed issue with merge not behaving exactly as the old table panel did.
* Fixed so empty data frames will be exluded prior to trying to merge the result.
* Changed so if passing only empty frames first will only be returned.
* de-duplication of configuration in tests.
Enables creating signed URLs when uploading images to Google Cloud Storage.
By using signed urls, not only is the public URL expiration configurable but the
images in the bucket are not publicly accessible.
Fixes#26773
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Add support for local time formats in graph panel
* Enfore 24h format for backward compatibility
* Use existing Intl.DateTimeFormatOptions
* Pre-generate time scale, add tests
* Move localTimeFormat, add local format to units
* updated default fallback
* #25602, use navigator.languages to enforce locale in formatting
* Making options
* Worked new system settings
* things are working
* Local browser time formats working
* Support parsing dates in different formats
* settings updated
* Settings starting to work
* Fixed graph issue
* Logs fix
* refactored settings a bit
* Updated and name change
* Progress
* Changed config names
* Updated
* Updated
* Updated test
* Synced description
* fixed ts issue
* Added version notice
* Ts fix
* Updated heatmap and test
* Updated snapshot
* Updated
* fixed ts issue
* Fixes
Co-authored-by: Alex Shpak <alex-shpak@users.noreply.github.com>
* CloudWatch Logs: Adjusts CloudWatch Logs timeout logic
Previously CloudWatch Logs queries would time out if,
after a number of attempts, a response was received with no additional data.
This commit changes the behavior so that a consecutive number of requests
yielding no additional data must be made before we cancel the query
* API: first version to send events about login actions
* API: improve login actions events
* Login: update auth test with new behavior
* Login: update auth test for auth module
* Login OAuth: improve functions structure
* API: make struct public to use for saml
* API: add send login log tests for grafana and ldap login
* API: remove log from tests
* Login API: fix test linting
* Update pkg/api/login_oauth.go
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Login API: refactor using defer
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* PanelInspector: Fields with overrides are formatted correct in CSV
* Refactor: adds raw format
* Refactor: changes switch to Formatted values
* Tests: adds tests for applyRawFieldOverrides and getRawDisplayProcessor
* Test: change to utc timeZone
* Refactor: changes after PR comments
Update list of AmazonMQ metrics and Dimensions based on the current list
from the official AWS documentation.
Also, change InflightCount to InFlightCount.
* Table: Adds column filters
* Refactor: adds filter by value function
* Refactor: some styling and sorting
* Refactor: Moves filterByValue to utils
* Tests: add filterByValue tests
* Refactor: simplifies filteredValues
* Refactor: adds dropshadow
* Refactor: keeps icons together with label and aligns with column alignment
* Refactor: hides clear filter if no filter is active
* Refactor: changes how values in filter are populated
* Refactor: adds filterable field override
* Tests: fixed broken tests
* Refactor: adds FilterList
* Refactor: adds blanks entry for non value labels
* Refactor: using preFilteredRows in filter list
* Refactor: adds filter input
* Refactor: fixes issue found by e2e
* Refactor: changes after PR comments
* Docs: adds documentation for Column filter
* Refactor: moves functions to utils and adds tests
* Refactor: memoizes filter function
* Docs: reverts docs for now
* WIP: Fix null thresholds in overrides when loading
* Fix thresholds on load instead of in apply field overrides
* simplify expression
* fixed ts issue
* Updated test
* Updated another test
* Updated another test
60s can be too short if the oauth provider is slow
for some reason and its defintly too slow if the
OAuth provider requires 2FA.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Adding Occurences transformer
* Adding test for Occurences Transformer
* Cleanup. Adding a test.
* Adding doc
* Modifying UI to support custom calculations options
* Implementing data transformation
* Finalizing calculations implementation
* Cleanup
* Using Fields instead of arrays in data grouping
* Renaming transformation to GroupBy
* Adding some doc
* Apply suggestions (solving TS typing errors)
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Tweaking UI
* Preventing of selecting twice the same field name.
* Removing console print. No calculations by default.
* Forgot to add the current value to the GroupBy selector
* Solving some typing issues and prettyfier errors
* Cleanup
* Updating test
* Ensure proper copy of options (solves some issues)
* Check if the fields exist in the data before processing
* Adding missing import in test file
* If group by field not specified, return all data untouched.
* Adding another missing import in test
* Minor updates
* Implementing GroupBy multiple fields + Improve field typing
* Removing console prints
* Allowing the exact number of fields to be added as aggregation
* Centering remove button icon
* Cleanup
* Correcting TS error
* Chaging transformer options structure
* Sorting so GroupBy fields appear on top
* Cleanup
* Simplifying some operations. Adding curly brackets.
* Changing some labels on the UI
* Updating test
* Cleanup
* Updating doc
* Fixed field list. Storing options as Record instead of Array.
* Update test
* Cleaned up the group by editor UI code.
* changed the transform to a table layout instead of a flexbox layout.
* cleaned up group by transformer.
* removed unused imports.
* Added some more tests.
* Added one more test and cleaned up code.
* fixed failing test.
* Fixed so we we have the proper casing on naming.
* fixed so we don't wrap on the first row.
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Storybook: Add vision statement to intro page
Added the vision statement compiled by the Grafana Labs design system knights to the grafana-ui intro section. Feedback and further improvement ideas welcome!
* Review feedback part 1
_fixed headline formatting
_removed numbered list
_removed paragraph "A library of unified components and styles"
_renamed all occurrences to @grafana/ui
_replaced "ideate" with "determine together"
* Minor changes
* Changed default panel screenshot name
* Removed default visualization type from `addPanel` config
... which, unless defined, will use the app's default (graph). This is the new approach for plugins which supports annotations.
* Select timezone from dashboard toolbar instead of settings
... and refactored `setDashboardTimeRange` for reuse on other pages via a now more generalized `setTimeRange`
* Added optional annotations to `addDashboard` config
* Added `explore` flow
… which reuses `configurePanel` which is very similar
* Field naming simple fix
* fixed unit tests
* Updated to use displayNameDS config
* Update packages/grafana-data/src/types/dataFrame.ts
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Updated name
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
The action name is `tag:GetResources`, not `tags:GetResources`. This creates a confusing error message that can have the user add the wrong permission to the IAM role.
* Chore: Added foldername to the dashboard overview on the startpage
## Dashlist
### added
- new `<span>` containing `dash.folderTitle`
- styling for the newly created `<span>`
### changed
- added sass-nesting to classes in `_panel_dashlist.scss`
closes#26869
* Chore: Added foldername to the dashboard overview on the startpage
## Dashlist
### changed
- added `ng-if` directive to the dashlist-folder span
* Chore: Added foldername to the dashboard overview on the startpage
## Dashlist
### changed
- added folder-icon and removed brackets to indicate `folderTitle`
- changed font-size of folderTitle-`span` and added left margin
* Add grafana/loki dependency and update its dependencies
* Update grpcplugin log_wrapper to implement the latest version of hclog.Logger
* Remove panic handling + test case no longer needed since the source of panics (bug) was fixed
* WIP: strings and numbers
* Works in displayProcessor but units are not applied in applyFieldOverride
* removed bit
* Updated
* Added docs
* fixed typo
* testing things
* POC: Simplify labels to fields by using merge transform inside it
* removed old code
* Fixed test ts issues
* Added valueLabel field option
* Updated merge transform tests to not expect a sort
* fixed type
* refactoring to minimize nesting
* Stats: Cache based stats implementation
* Stats: Correct logic and add larger scale test
* Stats: linter
* Stats: SQL implementation
* Stats: cleanup SQL
* Stats: Tab -> Spaces
* Update pkg/services/sqlstore/stats.go
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Stats: Quote 'user' table with dialect.Quote
* Stats: Ensure test is run as integration test
* Stats: Use boolean value
...because if (v) { true } else { false } is unnecessary at best.
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Minor changes
* Added an `editPanel` flow function
... and moved the internals of `addPanel` to a common function for use by both
* Added optional template variables to `addDashboard` config
* Use latest Cypress 4.x version
* Updated lockfile
* Added Zenduty Grafana integration to the notifications page
Signed-off-by: Vishwa Krishnakumar <vishwa306@gmail.com>
* Added Zenduty Grafana integration to the list of notifiers table
Signed-off-by: Vishwa Krishnakumar <vishwa306@gmail.com>
* POC for toggling parsed fields in Explore/Loki
* fixed issues
* add clear button for toggled parsed fields
* fix test-frontend failures
* use blue eye instead of eye/eye-slash and update tooltips
* break out parseMessage
* move indicator to meta data section
* clean up LogRowMessageParsed
* better label
* clean up after making optional
* FolderPicker: Fixes not being able to create new folder
* Update public/app/core/components/Select/FolderPicker.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Refactor: Fixes import issues for tests that do not mock GrafanaBootConfig
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Refactor: initial commit
* wip
* Refactor: getting into a simpler model
* Refactor: adds some comments
* Refactor: renames statuses according to PR comments
* Refactor: adds more comments
* Tests: adds tests for FetchQueue
* Tests: adds tests for ResponseQueue
* Tests: adds tests for FetchQueueWorker
* Tests: simplified the tests for ResponseQueue
* Refactor: adds http2 scenario
* Refactor: using Cfg instead of global variable
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor: reverted change in frontendsettings.go
* Tests: fix test mocks
* Fix: changes how cfg.Protocol gets its value
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add filter name by regex matcher for overrides
* Update docs
* rever schema change
* add docs for by type
* add docs for by type
* add docs for by type
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* added $schema field support in plugin.schema.json
More details can be found in https://github.com/grafana/plugin-validator/issues/1
* Others category in plugin.json, minimum 1 keyword
* Allow others as a category if the plugin doesn't fall into appropriate category. Refer https://github.com/grafana/plugin-validator/issues/3 for more details
* Mandate minimum one keyword for better discovery in plugin repository.
* Dropped enum from plugin.json $schema
* Dashboard: Solve the discrepancy between provisioning and the API, Handle min refresh interval when creating/updating dashboard via API
* Docs: Add refresh field in the example dashboard http api docs
* Update create dashboard API docs
Add refresh field in the create dashboard example response
* Fix create dashboard API docs
* Fix create dashboard API docs
* Update docs/sources/http_api/dashboard.md
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Remove validation from empty playlists
* Remove redundant API call
Frontend used to call /api/playlists/:id/items directly after /api/playlists/:id but items are already included in the first response
* Add rate interval variable to prometheus data source
* Add tests + auto complete
* Fix prometheus tests
* Add doc
* Modify test title
* Modify kbn method name after merge
* API: Improve error handling (#26934)
* New ErrUserAlreadyExists error has been introduced
* Create user endpoint returns 412 Precondition Failed on ErrUserAlreadyExists errors
* Make ErrUserAlreadyExists error message clearer
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Use errors.Is instead of equality comparator on AdminCreateUser handler
* Improve sqlstore/user test definition
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Improve sqlstore/user tests for ErrUserAlreadyExists cases
* Remove no needed string fmt and err declaration on sqlstore/user tests
* Code improvements for sqlstore/user tests
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use err.Error() instead of sentinel error value on AdminCreateUser
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add ErrUserAlreadyExists handling for signup & org invite use cases
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update LogsDedupStrategy enum to keep consistent with radio button capitalization
* Revert "Update LogsDedupStrategy enum to keep consistent with radio button capitalization"
This reverts commit 0b05cd4e00.
* Capitalize dedup strategy in radio buttons
* Fix variable editor name-input bug
You couldn't delete an invalid character after typing it into the name-input field.
While investigating the issue turned out to be bigger, as there was a problem with
valid characters too. (See test scenarios below)
The fix seems to be, to remove an unnecessary check in the `changeVariableName`
action. There is theoretically now the possibility, that the `changeVariableName`
action is called with the same name, as the variable is already, but practically
there seems no possibility, that this could happen. A test, which checks that, had
to be removed too.
Test scenarios:
* 1st Scenario
1. Type "@"
2. Try deleting it
* 2nd Scenario
1. Type "w"
2. delete "w"
3. Try typing "w" again
Fixes#26562
* Fix bug when updating existing variable
this is in order to trigger no data when used with alerting.
fixes#26897.
This is perhaps better solved in the SDK but that needs more thought and is tracked in grafana/grafana-plugin-sdk-go#214
* Fix lint error in types.ts
* Bump eslint and its deps to latest
* Add eslintignore and remove not needed eslintrcs
* Change webpack configs eslint config
* Update package.jsons and removed unused eslintrc files
* Chore yarn lint --fix 💅
* Add devenv to eslintignore
* Remove eslint disable comments for rules that are not used
* Remaining eslint fixes 💅
* Bump grafana/eslint-config 💥
* Modify package.json
No need for duplicate checks.
* Modify eslintignore to ignore data and dist folders
* Revert removing .eslintrc to make sure not to use certain packages
* Modify package.json to remove not needed command
* Use gitignore for ignoring paths
* Upgrade Go and Node versions in CI build image
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade Dockerfile to Go 1.14.7 and Node 12.18.3
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade Dockerfile.ubuntu to Go 1.14.7 and Node 12.18.3
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TextPanel: Fixes issue when interpolation of variables stops working
* Tests: fixes broken typing in test
* Tests: updates e2e dashboard to html so we get the raw strings
* Tests: reverted back to markdown and fixed a bug
## ButtonCascader
### added
- new prop `icon` with type `IconName`
### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons
## ButtonCascader Story
### added
- new story `withIcon`
- new knob `icon`
### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons
closes#23755
* Minor changes
* Only expect login “change password” notification for default passwords
* Optionally populate basic auth when adding a datasource
* Optionally match screenshot when adding a panel
* feat(grafana-toolkit): add a flag to the plugin:ci-package command
* docs(grafana-toolkit): add a short comment above the flag
* fix(grafana-toolkit): fix option for signing a plugin with the admin endpoint
* Create sorting button and functionality
* Set up logs ordering
* Add tests
* Refactor
* Refactor
* Replace new button with old
* Move SortOrder enum to grafana/data
* Update SortOrder in test
* Update context based on sort order of logs
* Update used method for panel, update tests
* Rename prop to logsSortOrder
* Memoize resuults
* Add title too button
* Add disablinng of button for 1sec
* Update wordiing
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update test by reordering logs
* Clear timers, add button flipping title
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Squash four commits and claim.
Credit to @ikkemaniac in #25034, but taking this to sign CLA and get it landed. Four commit message were:
- add 'fill' switch on Alert Tab
- add 'fill' to Alert init model. Make default value 'true' not to break current design
- use newly created alert.fill when rendering graph
- add 'line' switch on Alert tab, add 'line' to Alert init model. Set default to 'true' not to break current design. Use newly created alert.line when rendering graph
Should close feature req #7258.
* Move alert toggle to Display tab.
* Move alertThreshold to PanelModel.options.
* Fix ThresholdMapper tests by adding options to each mocked panel.
* Update documentation for the new display option.
* Update docs with review feedback.
* Handle onRender with null panel in ThresholdMapper
* Run query on splitOpen action
* Escape \ in prometheusRegularEscape
* Revert "Run query on splitOpen action"
This reverts commit 3559b6c573.
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Send current time range when fetching labels and values in Explore
* Pass range to Editors, in the same way as it was in Angular editors
* Remove unused imports
* Remove unused imports, props
* Update
* Update
* Update refresh condition
* Add comment
* StatPanel: Fix stat panel display name now showing when explicitly set
* StatPanel: Updarted auto mode to also take panel title into consideration
* fixed test
* Add stack trace to span detail row
* Modify accordian text not to have a whitespace
* Modify stackTrace to stackTraces
* Modify AccordianText ti get text component as prop
* Fix typecheck and test failure
* Span details text area do not wrap line
* Docs: how to replace home dashboard
* add overrides explanation
* change home dashboard v2
* Apply feedback for home dashboard doc
* home dashboard doc v3
* Apply feedback on home dashboard doc
* Return valid metadata even if data is empty
* Make sure fields is not accessed when there is no data
* Meta Info should depend only on meta data
* Refactor condition for better reading
* Change data to empty array for better condition handling
* Remove unecessary checks
* Add test for showing metaData even when data is empty
In OSS provisioning service init after plugin registration, but in
Enterprise it's the opposite order and installed app plugin check
fails. This adjusts service registry init priority to make sure plugins
are registered before provisioning inits.
Which issue(s) this PR fixes:
Fixes#26336
Before this, if the user were to divide by 0.0, "Infinity" would be returned in the result and the user would get an error: "unexpected type, expected json.Number but got string". Now these values are properly set as Inf values (and also made sure to handle NaN as well).
* test
* WIP: Create v2 version
* Update tests, remove conosole logs, refactor
* Remove incorrect types
* Update type
* Rename legacy and new metrics
* Update
* Run request when Raw Data tto Raw Document switch
* Fix size updating
* Remove _source field from table results as we are showing each source field as column
* Remove _source just for metrics, not logs
* Revert "Remove _source just for metrics, not logs"
This reverts commit 611b6922f7.
* Revert "Remove _source field from table results as we are showing each source field as column"
This reverts commit 31a9d5f81b.
* Add vis preference for logs
* Update visualisation to logs
* Revert "Revert "Remove _source just for metrics""
This reverts commit a102ab2894.
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* DashboardLinks: WIP fix for dashboard links issue
* Make the dashboard links update on change(hacky)
* Replace dashboard links with new array when updating/adding dash links
* Update snaps
* Deep clone dashboard links on save
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* add white background to tooltip component
* remove faulty background
* new theme for tooltip
* correct colors, remove custom box-shadow
* rename theme and add documentation
* use useStyles for style memo
This makes it so results are more stable between refreshes of data and fixes sorting issues with Azure Application Insights service as well as the two Azure Analytics services.
fixes#22937
Removes "Metrics"/"Logs" mode switcher from Explore, allowing for both
metrics and logs queries at the same time.
Co-authored-by: kay delaney <kay@grafana.com>
* In the parser when it was configurate more bucket it put the formula in name column
* Tests
* Tests
* Tests
* Tests
* Tests
* Tests
* Process/Tests - backend (Go)
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* reverse
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Datasource/CloudWatch: More robust handling of different query modes
A small refactor which changes how the CloudWatch datasource handles
multiple queries with different query modes. Groundwork for future
Logs/Metrics unification work.
* BackendSrv: Observable all the way POC
* starting to unify code paths
* tests pass
* Unified error handling
* Single request path and error handling
* Fixed ts issue
* another ts issu
* Added back old requestId cancellation
* Slow progress trying to grasp the full picture of cancellation
* Updates
* refactoring
* Remove a bunch of stuff from backendSrv
* Removed another function
* Do not show error alerts for data queries
* Muu
* Updated comment
* DataSourceWithBackend: Switch to new Observable fetch api
* fixed ts issue
* unify request options type
* Made query inspector subscribe to backendSrv stream instead of legacy app events
* Add back support for err.isHandled to limit scope
* never show success alerts
* Updated tests
* use ovservable in test
* remove processResponse
* remove processResponse
* trying to get tests to pass :(
* no need for the extra tests
* Fixed processsing
* Fixed tests
* Updated tests to mock fetch call
* lint fixes
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Can be hard for users to understand what user is configured
when encrypting the username field why this reverts to
store the username in cleartext.
Also, we don't encrypt username for data sources.
Ref #25967
* Fixed so the merge for table values works as it did before.
* wip
* fixed tests.
* merge tests are green.
* removed unused code and simplify the seriesToRows.
* added time series to rows editor.
* using getFrameDisplayName for the metric value.
* updated description of transforms.
* updated docs.
* fixed according to feedback.
* changed from images to markdown tables for the examples.
* forgot to save :P
Support storing sensitive notification settings securely/encrypted.
Move slack notifier url and api token to secure settings.
Migrating slack notifier to store token and url encrypted is currently
a manual process by saving an existing slack alert notification channel.
saving an existing slack alert notification channel will reset the stored
non-secure url and token.
Closes#25113
Ref #25967
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* BackendSrv: Observable all the way POC
* starting to unify code paths
* tests pass
* Unified error handling
* Single request path and error handling
* Fixed ts issue
* another ts issu
* Added back old requestId cancellation
* Slow progress trying to grasp the full picture of cancellation
* Updates
* refactoring
* Remove a bunch of stuff from backendSrv
* Removed another function
* Do not show error alerts for data queries
* Muu
* Updated comment
* fixed ts issue
* unify request options type
* Made query inspector subscribe to backendSrv stream instead of legacy app events
* Add back support for err.isHandled to limit scope
* never show success alerts
* Updated tests
* Fixing tests
* Minor weak
* Improved logic for the showErrorAlert and showSuccessAlert boolean flags, now they work more logically
* Fix issue
* Fix list of sample providers
The sample providers on this page has changed, so the list at the top of the page is no longer correct. Also link to Octo and Azure AD pages from here, since they are also OAuth2 providers.
* Fix misspelled Okta
* Make bullet list of OAuth2 providers
* Sort list of OAuth2 providers alphabetically
The external image storage for GCS creates the JWT Token from a credentials file,
but if your Grafana server runs under a GCE instance with a service account on it,
you can use that instead (you don't have to manage/secure the credentials file).
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Macaron context.QueryBool() seems to modify the request context
that causes the POST and PUT requests to fail with:
"http: proxy error: net/http: HTTP/1.x transport connection broken: http: ContentLength=333 with Body length 0"
- more and more datasources are having long-running queries,
automatically triggering is becoming more of a burden than a help.
- some datasource queries might actually cost money, so running queries
should be explicit.
... it's logically better, but the real reason is to appease Cypress which was cause a consistent request error for a single plugin (datadog-datasource). An error which could not be reproduced manually.
* FieldConfig: Remove field label for single item categories
* Update public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Loki: Add Legend field to query editor
* Loki: Basic test for legend field
* Loki: Mention legend is only for metric queries
* Loki: Fix absolute timerange never updating
* Add whats new draft article
* Update docs/sources/guides/whats-new-in-v7-1.md
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Add elastic internal links
* Docs: more about vault in whats new
* docs: monthly reports
* Apply suggestions from code review
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Remove unified explore mention
* updated what's new
* Update link
* Add search image link
* Add 7.1 article to the menu
* Fix typo
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* graph with new controls
* graph with new controls
* Fix categories
* fix test imports
* Chore: Fix spelling (#25905)
* grafana-ui: Make output chunks correct (#25922)
* Explore/Loki: Show results of instant queries only in table and time series only in graph (#25845)
* Show results of instant queries only in table and rest in graph
* Add type to QueryResultMeta
* Update log row hover background only if context is not open
* Revert "Update log row hover background only if context is not open"
This reverts commit 144197c954.
* Explore/Loki: Fix field type in table for instant queries (#25907)
* Update field type for instant queries to number
* Remove fieldtype as in prometheus
* Revert "Remove fieldtype as in prometheus"
This reverts commit f887ad1125.
* Chore: Disable scopelint for tests (#25923)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* grafana/ui: Fix storybook dev (#25928)
* Minimize css and js only for storybook build
* Update CodeEditor story, make it internal
* Update storybook webpack config
* TimeZonePicker: added possibility to toggle if internal time zones should be included or not. (#25934)
* made some small adjustments after feedback.
* made the flag optional.
* Docker: Upgrade to base on Alpine 3.12 (#25936)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* DataLinks: Add internal links in table and allow custom query (#25613)
* Add internal links in table and with custom query
* Add specific types for internal and external link
* Change the datalink types to be more backward compatible
* Refactor the link utils for explore
* Add internal linking to table panels
* Fix derived field condition
* Prettify
* Add and fix tests
* Prettify
* Fix imports and tests
* Remove unused type
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* CircleCI: Upgrade grabpl (#25939)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Provisioning: Use folders structure from the file system to create desired folders in dashboard provisioning. (#23117)
Fixes#12016
* Added options to customize chart data listening (#25918)
* Explore: Remove legend formatting when switching from panel to Explore (#25848)
* Remove legend formatting when switching from panel to explore
* Add test coverage
* Query history: Add search for query history and starred queries (#25747)
* Add searching functionality to Queries tab
* Implement search for starred queries
* Update tests and add test coverage for searching
* Changes based on provided feedback
* Remove redundant storing of results
* Update naming of onSearchFilterChange function in tests
* Update filterQueriesBySearchFilter function
* Update filterQueriesBySearchFilter function
* Debounce search
* Remove console.log()
* Use useDebouncedCallback
* Update tests, remove redundant props
* When in starred, search only in starred
* Add timefilter as dependency
* Remove redundant dependency, refactor
* Grafana-UI: Add FileUpload (#25835)
* Grafana UI: Setup component
* Grafana UI: DashboardFileUpload => FileUpload
* Grafana UI: Expand docs
* Grafana UI: Add className
* Grafana UI: Update import
* Grafana UI: Clarify props
* Update packages/grafana-ui/src/components/FileUpload/FileUpload.tsx
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Grafana UI: Style icon
* Grafana UI: Show uploaded file name
* Grafana UI: Add tests
* Grafana UI: Add useStyles + useCallback
* Grafana UI: Remove stylesFactory
* Grafana UI: Revert to useTheme
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Fix: Value mappings match against string values (#25929)
* Use standard input for value mappings value
* add test and case for matching string values
* re add number on rangemap
* remove FieldTypeNumber required
* Docs: Changelog update 7.05 & latest.json update (#25941)
* Docs: Changelog update for 7.0.5
* Update latest.json
* Fixed alignment
* Stackdriver: Rename Stackdriver to Google Cloud Monitoring (#25807)
* Update backend
* Update frontend
* Keep old plugin id
* Update docs
* Place doc images to a new directory
* Legacy support for stackdriver-auto alignment
* Consistent plugin name
* Apply suggestions from code review
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Update docs
* Update public/app/plugins/datasource/cloud-monitoring/README.md
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Add reference to the data source formerly being named Stackdriver
* Update pkg/models/datasource.go
Co-authored-by: Carl Bergquist <carl@grafana.com>
* Fix gofmt
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
* Fix strict null errors that resulted from search (#25950)
* Arrow: when exporting arrow use the calculated names (#25871)
* PanelHeader: Fixed loading icon position (#25949)
* PanelHeader: Fixed loading icon position
* revert back to text weak color
* Azure/Log Analytics: return more error information (#25937)
When there is an error message in the HTTP response, this copies that error so it is relayed to the user by being shown in the frontend.
This also makes it so when there is an error the interpolated query string (ExecutedQueryString) is returned so users can see it in the query inspector.
* Azure: Multiple dimension support for Azure Monitor Service (#25947)
Azure Monitor (metrics) support multiple dimensions instead of just one.
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Docs: Update alert-list-panel.md (#25779)
Fixed minor typo and format updates
* Docs: Update add-a-panel.md (#25780)
* Linting fixes for the provisioning package (#25690)
* Chore: whatwg-fetch version bump (#25952)
* Use latest fetch polyfill/shim
* Updated lockfile
* Monaco: option to hide line numbers (#25920)
* Docs: Reorganize reference topics (#25915)
* moved annotations.md
* Update annotations.md
* moved dashboard_folders.md
* moved dashboard_history.md
* moved playlist.md
* moved search.md
* migrations test
* docs: spelling (#24383)
* Docs: spelling
* Docs: spelling (contribute/ directory)
* Drop whats-new-in changes
* migrations test
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Maksim Nabokikh <32434187+nabokihms@users.noreply.github.com>
Co-authored-by: Steven Vachon <contact@svachon.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
* now with suggestions
* using suggestions API
* using variable suggestions
* using variable suggestions
* show variables
* minor cleanup
* add @alpha warning
* Do not produce data variables if panel does not support queries
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Add stackdriver deep link
* No deep link for SLO queries
* Add tests
* Update docs/sources/features/datasources/stackdriver.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Enforce resource type
* Navigate to google account chooser first
* Change renamed image reference
Fix misspelling in image name and change it to conform with the rest cloud monitoring images
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
When there is an error message in the HTTP response, this copies that error so it is relayed to the user by being shown in the frontend.
This also makes it so when there is an error the interpolated query string (ExecutedQueryString) is returned so users can see it in the query inspector.
* Update backend
* Update frontend
* Keep old plugin id
* Update docs
* Place doc images to a new directory
* Legacy support for stackdriver-auto alignment
* Consistent plugin name
* Apply suggestions from code review
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Update docs
* Update public/app/plugins/datasource/cloud-monitoring/README.md
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Add reference to the data source formerly being named Stackdriver
* Update pkg/models/datasource.go
Co-authored-by: Carl Bergquist <carl@grafana.com>
* Fix gofmt
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
* Use standard input for value mappings value
* add test and case for matching string values
* re add number on rangemap
* remove FieldTypeNumber required
* Add searching functionality to Queries tab
* Implement search for starred queries
* Update tests and add test coverage for searching
* Changes based on provided feedback
* Remove redundant storing of results
* Update naming of onSearchFilterChange function in tests
* Update filterQueriesBySearchFilter function
* Update filterQueriesBySearchFilter function
* Debounce search
* Remove console.log()
* Use useDebouncedCallback
* Update tests, remove redundant props
* When in starred, search only in starred
* Add timefilter as dependency
* Remove redundant dependency, refactor
* Add internal links in table and with custom query
* Add specific types for internal and external link
* Change the datalink types to be more backward compatible
* Refactor the link utils for explore
* Add internal linking to table panels
* Fix derived field condition
* Prettify
* Add and fix tests
* Prettify
* Fix imports and tests
* Remove unused type
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Update field type for instant queries to number
* Remove fieldtype as in prometheus
* Revert "Remove fieldtype as in prometheus"
This reverts commit f887ad1125.
* Show results of instant queries only in table and rest in graph
* Add type to QueryResultMeta
* Update log row hover background only if context is not open
* Revert "Update log row hover background only if context is not open"
This reverts commit 144197c954.
* Set time range when creating a dashboard
* Optionally set time range when opening a dashboard
* Default time range to 6 hours instead of 1 hour
* Minor changes
- The Application Insights Service now returns a dataframe. This is a "wide" formatted dataframe with a single time index.
- Multiple "group by" dimensions may now be selected instead of just one with Application Insights.
- Some types are copied / slightly altered from the Azure Go SDK but that SDK is not imported at this time.
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
For backend data sources executing in the backend (not through data proxy) make
sure that the timeout applies to cached HTTP client.
Fixes#25863
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* creating page
* add types select
* adding switches
* start with converting angular templates to json
* converting more alert channels to new format
* convert remaining channels
* typing the form
* add validation, update models
* fix default value in type select
* fix type
* fix issue with validation rule
* add missing settings
* fix type errors
* test notification
* add comments to structs
* fix selectable value and minor things on each channel
* More typings
* fix strictnull
* rename ModelValue -> PropertyName
* rename show -> showWhen
* add enums and adding comments
* fix comment
* break out channel options to component
* use try catch
* adding default case to OptionElement if element not supported
* Add TableDataOptions component
* A bit along the way
* Make transforms work
* Make it work
* Add collapsed text
* Fix transformations and overflow for QueryOperationRow
* Fix layout
* Minor fixes
* Fix feedback
* Remove unused imports
* Remove unused Container
* Horizontal layout for Switches
* Fix Swicth bug
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
For backend data sources executing in the backend (not through data proxy) make
sure that the timeout applies to cached HTTP client.
Fixes#25863
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Set time range when opening a dashboard
* Set UTC timezone when creating a dashboard
* Added flow for selecting options in custom select fields
* Fix flaky test
* draft on a unified TimeZonePicker.
* most of the data structures is in place.
* wip.
* wip.
* wip: timezone selector in progress.2
* fixed so we have proper data on all timezones.
* started to add timezone into time picker.
* addeing time zone footer.
* footer is working.
* fixed so we use the timeZone picker in shared preferences.
* Added so we can change timeZone from picker.
* did some styling changes.
* will update timezone on all places that we need to update it.
* removed console.log
* removed magic string.
* fixed border on calendar.
* ignoring eslint cache.
* cleaned up the code a bit.
* made the default selectable.
* corrected so the behaviour about default works as expected.
* excluded timezone from change tracker.
* revert so default will always be the intial value.
* default will always fallback to the one in the config.
* do the country mapping on startup.
* fixed nit.
* updated snapshots for timepicker.
* fixed build errors.
* updating so snapshot tests is in sync.
* removed Date.now from prop since it will change each run in the snapshot tests.
* fixed so e2e tests works as before.
* moved files into separate folders.
Azure Application Insights Analytics is no longer accessed by the edit button from within the Application Insights service. Instead, there is now an Insights Analytics option in the Service drop down.
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Templating: Moves global variables from TemplateSrv to Redux
* Refactor: renamed to meta
* Tests: fixed broken tests
* Chore: reduces strict null errors
* renamed meta variabel to system variable.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* onChangeTab for active tab and pointer mouse
* Add anchor element to tab
* Make a strict 'anchor' mode
* Add short docs
* Apply suggestions from code review
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Fix nits
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Minor changes
* Fixed data source selection issue
… where it appeared as though the wrong one was selected
* Fixed “executing a canceled action” issue
... thrown from RxJS
* Chore: changes null values to undefined in explore reducer
* Chore: changes sortLogsResult param type from null to undefined
* Chore: changes null values to undefined in explore reducer
* Chore: updates strict null errors count
* Revert "Chore: changes null values to undefined in explore reducer"
This reverts commit b82d841611.
* Revert "Chore: changes sortLogsResult param type from null to undefined"
This reverts commit 21073b5d30.
* Revert "Chore: changes null values to undefined in explore reducer"
This reverts commit 798559688c.
* Chore: updates ExploreItemState type
* Chore: updates initial ExploreItemState in Explore reducer
* Chore: updates strict null errors count to 699
* Chore: changed ExploreMode and Emitter type in ExploreStateItem
* Revert "Chore: changed ExploreMode and Emitter type in ExploreStateItem"
This reverts commit 7e0e2027fc.
* Settings: Add setting for hiding version number for anonymous users
Fixes#12925
* Hide version string from footer when unavailable
* Settings: Test frontend settings with hide version for anonymous users
* Settings: Add hide version variable to frontend settings
* Make AnonymousHideVersion non-global
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Settings: Improve test neighbor friendliness, reset state before and after
* Settings: Use T.Cleanup
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Forbid additional redirect urls
* Optionally force login in anonymous mode
* Update LoginCtrl page to ignore redirect parameter
* Modify SignIn to set forceLogin query instead of redirect
* Pass appUrl to frontend and use URL API for updating url query
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix SignIn test
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* added script to check docs metrics.
* added information link on how to add code comments.
* added script for build and measure code comment metrics.
* fixed issues according to shellcheck.
* Added so we build the metrics if report folder is missing.
* added some spacing and a devider.
* Added so we can send metrics to grafana.
* added shellcheck attribute.
* Fixed spelling according to feedback.
* see if shellcheck passes.
* fixed issue with shellcheck.
* Explore/Logs: Fix tooltip display for log graph (#25544)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Add Root URL info under License file management
Edited through GitHub, not tested on development web server.
* Update docs/sources/enterprise/_index.md
Make updating root_url instructions more straightforward, with action first and explanation second.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/enterprise/_index.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/enterprise/_index.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* wip: added draft of series to rows.
* wip: building dataFrame structure first and then adding data.
* wip: added some refactorings of the seriesToRows transformer.
* did some refactorings to make the code easier to follow.
* added an editor for the transform.
* renamed some of the test data.
* added docs.
* fixed according to feedback.
* renamved files.
* fixed docs according to feedback.
* fixed so we don't keep labels or config values from.
* removed unused field.
* fixed spelling errors.
* fixed docs according to feedback.
* Minor changes
* Use UI for removing dashboards and datasources
… with an optional “quick” mode that instead does so via a request
* Improved URL helpers
* Simplified test teardown
* Added support for multiple tests
... instead of being forced to cram everything into a single test because the session was cleared
This ensures that the X-Grafana-User header can be trusted.
If the configuration enabled the setting of this header, the
server can now trust that X-Grafana-User is set/unset by Grafana.
Before this, an anonymous user could simply set the X-Grafana-User
header themselves (using the developer tool for example)
Refactor to allow shared contract between core and external backend plugins
allowing core backend data sources in Grafana to be implemented in same
way as an external backend plugin.
Use v0.67.0 of sdk.
Add tests for verifying plugin is restarted when process is killed.
Enable strict linting for backendplugin packages
The existing link for developing plugins was redirecting to the legacy plugin docs page for developers. I updated it to the new link for latest post-7.0 release. 👍
* Update Bitcoin Currency to use proper symbol, add mBTC and μBTC
* Apply suggestions from code review
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Revert Bitcoin to use '฿'
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* add flux
* add token to datasource config editor
* add backend for flux
* make the interpolated query available in query inspector
* go mod tidy
* Chore: fixes a couple of strict null errors in influxdb plugin
Co-authored-by: kyle <kyle@grafana.com>
Co-authored-by: Lukas Siatka <lukasz.siatka@grafana.com>
* Fix dense y-axis labels in heatmap using tsbuckets
This change emulates the non-tsbuckets Y-axis tick count by making
the y-axis label formatter treat a dense set as a sparse set.
fixes#11342
* have d3 do the work
* Update public/app/plugins/panel/heatmap/rendering.ts
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* Table: Adds adhoc filtering
* Refactor: changes after PR comments
* Refactor: hides filtering for data sources that do not support modifyQuery in Explore
* Refactor: fixes strict null error
* Changed tooltip position to above icon
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Be more explicit about the fact that providing images in alert notifications requires an external image storage provider. Previously this read as if it was only necessary for publicly accessible images, but even if they are served from Grafana, the administrator must set up the "local" image provider in the configuration.
* Minor changes
* Remove console.* logger plugin
... as it doesn't work in Electron
* Only open/close panel editor options and groups when state is inverted
... meaning, only open when closed and only close when open. This avoids unpredictable states, causing inconsistent results.
* Support for adding multiple datasources and dashboards
... and having them all auto-removed when tests are completed
* Avoid page errors when removing dashboards and datasources [keep?]
* Wait for chart data before saving panel
... so that everything is ready when returning to the dashboard
* Add Jeroen Op 't Eynde to the Grafana team
Jeroen Op 't Eynde has been proposed as a new team member and the vote achieved the super majority required.
* Governance - sort alphabetically
* Add Malcolm Holmes to the Grafana team
Malcolm Holmes has been proposed as a new team member and the vote achieved the super majority required.
* Governance - sort names alphabetically
* Add Chris Trott to the Grafana team
Chris Trott has been proposed as a new team member and the vote achieved the super majority required.
* Governance - should be alphabetical
* Chore: adds query keys and refId reassignment on query row removal
* Chore: updates explore reducer tests to cover query row adding, removal, refId and key reassignment
* Chore: changes refId value in explore reducer from undefined to string to avoid introducing new strict null errors
* Chore: fixes a small nitpick with array spread in Explore reducer
* Chore: removes unnecessary dispatches in query row tests in Explore reducer test
* Refactor: initial commit
* Tests: updates tests
* Tests: updates snapshots
* Chore: updates after PR comments
* Chore: renamed initVariablesBatch
* Tests: adds transactionReducer tests
* Chore: updates after PR comments
* Refactor: renames cancelAllDataSourceRequests
* Refactor: reduces cancellation complexity
* Tests: adds tests for cancelAllInFlightRequests
* Tests: adds initVariablesTransaction tests
* Tests: adds tests for cleanUpVariables and cancelVariables
* Always cleanup dashboard on unmount, even if init is in progress. Check if init phase has changed after services init is completed
* fixed failing tests and added some more to test new scenario.
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* uses plugin-sdk-go v0.66.0, which adds adds the ExecutedQueryString property to FrameMeta and changes s/Title/DisplayName in FieldConfig
* go mod tidy
* Updated templating code to support the $__user variable to expose the current
userid, username, email and login.
Fixed the $__org variable as it was returning the user id instead of the ordId.
Updated the documentation to match
* Updated solution to retrieving $__user variables to pull directly from user record (thereby allowing future access to properties that
might not exist in the contextSvr).
Replicated this initialisation in the variables feature
Corrected typo's in documentation.
* Repaired typecheck issues.
* Updated patch to pull entirely from contextSrv without API calls.
* ... And removed the redundant comments.
* Updated documentation.
note: This is just Azure Monitor within the Azure Monitor datasource (not insights, insights analytics, or log analytics yet).
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* added tests to verify flow.
* refactoring picker reducer.
* made all the tests green.
* removed console.log's
* fixed toggle all and making sure the correct values are set on picker open.
* added more tets.
* refactored and added table tests.
* fixed so we select values from selectedValues instead of options.
* fixed so you can navigate and select even after you have filtered a variable.
* adding tests to verify flows when toggling by highlight.
* fixed so enter always selects value before closing.
* improved the code for tags.
* Cleanup
* addPanel now supports (optional) custom dashboardUid
* addPanel now supports (optional) visualization name
* Added CLI option for updating screenshot fixtures
* Added support for console.* functions within tests
* Refactored screenshot command for greater simplicity
* addPanel now sets a unique title
* Updated lockfile
* Fix Loki and Prometheus query fields on mobile devices
* Add min widt to Elasticsearch Query Field
* Remove width for Elastic, works nicely without updating it
* Update public/app/plugins/datasource/loki/components/LokiQueryFieldForm.tsx
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Logs: Use result range instead of timepicker range for log histogram
If a logs datasource does not send histogram data for the requested
time range, the logs model computes a timeseries based on the log row
counts, bucketed by an automcatically calculated time interval. Even
when this histogram time series did not span the whole requested time
range it was still rendered in the graph across the whole range, leaving
an empty area at its start. Users find this confusing and are lead to
believe their log data is missing.
This change fixes this by anchoring the start of the timeseries on the
first log row's timestamp from the result, and adds this smaller range
as `visibleRange` to the logs model and passes it through to the logs
component that optionally takes it into account to not render the empty
area.
The interval (bucket size) is also adjusted to account for a potentially
finer resolution on the shorter visible time interval.
The bucketsize multiplier was also changed from 10 to 20 to account for
the space between the chart's bars.
* Aligned visible range with buckets
* Extract bucket size calculation and add test
Fixes so that ini-sections containing hyphen is replaced with
underscore. Fixes an issue with backend plugin settings.
Ref grafana/grafana-image-renderer#147
* Chore: updates Explore result processor to sort dataframes based on their refId so results are displayed in a correct order
* Chore: adds types to Explore ResultProcessor getTableResult DataFrames
* Fix close milestone to remove label from all the required pull requests
There used to be a limit to 100 pull requests.
* Add dry run option in close-milestone task
* scripts/build/ci-build: Fix Makefile
* scripts/build/ci-build: Base Docker image on Debian Stretch
* scripts/build/ci-build: Modify Dockerfile for fewer RUN directives
* add some padding to accommodate for vertical scrollbar
* use theme spacing
* Move padding to inner div and make it use actual scrollbar width
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Chore: updates add label to query method in prometheus datasource to fix loki label insert
* Chore: adds addLabelToQuery test covering differences between adding label to loki vs non-loki queries
* Chore: adds an additional comment to addLabelToQuery
* Chore: renames isLokiDatasource to hasNoMetrics in addLabelToQuery
* Chore: refactors LogRowContextProvider to get rid of unnecessary array dimensions
* Chore: removes unnecessary array dimensions from LogRowContextProvider test
* Chore: changes LogRowContextProvider test to use jest mock
* Chore: updates LogRowContextProvider test
* Chore: removes unnecessary wrapper variable in LogRowContextProvider test
* First pass solution
* Refactor solution
* Add test coverage, update tests
* Fix behaviour for multiple labels, add test for this
* Add recordin rules to devenv prometheus
* Update devenv/prometheus2 instead of devenv/prometheus
* Add newlines
* Fix label matching if labels include comma, add test coverage
* Refactor
* Refactor, simplify
* Various fixes and requests for toolkit:
1) Added toolkit to the alpine docker image, so we can get latest fixes without having to re-release
2) Removed cp from e2d docker image
3) Change github client to allow to specify an owner so it's not "grafana" only
4) Toolkit refers to grafana-ui and grafana-data "next", rather than canary
* added toolkit to e2e docker image
* Added tools to the e2e image for building/deploying oracle
* added shasum
* removing toolkit from images
* Shorten filter history label
* Add keyboard shortcuts for update comment in Query history
* Add test coverage for new keyboard shortcuts
* Update changed aria-label in tests
* Add test scenario for enter and ctr key
* Resolve Cypress bin path
... instead of expecting it to be in a place that it may not be, depending on de-duping/flattening of nested dependencies
* Remove dashboard before removing datasource
... it makes more sense and it fixes random issues, perhaps something to do with how the backend is implemented.
* Updated lockfile
* Chore: adds event listeners allowing to exit log row context with ESC key
* Chore: updates LogRows styles to prevent it from rendering context provider inappropriately
* Revert "Chore: updates LogRows styles to prevent it from rendering context provider inappropriately"
This reverts commit 59b06424c4.
First example of the use of a variable in influxdb query should not use a regex query but a simple one. A first time influxdb user (like me) could think that the proper way to use variable in a dashboard template is to use regex query, but it's not true. Also "=~ /$region/" may be erroniously thought identical to "= '$region'" while instead "=~ /^$region$/" is identical to "= '$region'", and for that type of query is useless (if not slower) use a regex query.
* Alerting: Adds support for multiple URLs in Alertmanager notifier
Adds support for multiple URLs in Alertmanager notifier following
alertmanager documentation for high availability setup.
Update the documentation for alertmanager notifier.
Closes#24195
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
* Correction in abbreviation
* Minor correction in abbreviation
* Correcting abbreviation
* Correction in abbreviation
* Correcting abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Update stack_guide_graphite.md
* Update whats-new-in-v4-6.md
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Update ldap.md
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Correction in abbreviation
* Update docs/sources/guides/whats-new-in-v5.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* fixes so we match the transformer based on name properly.
* changed the signature on the FieldMatcher.
* introduced a names option so you can filter in name specificly.
* changed so the matcher UI uses the new options format.
* moved the exported functions together.
* changing editors a bit.
* made the filter by name work with both regex and name filtering.
* fixed failing tests and make sure we always parse regex the same way.
* removed unused code.
* simplified to make the existing field overrides still working.
* fixed issue reported by hugo.
* added tests for the name matcher.
* added tests for filter by name.
* added more tests.
* generated new version of the packages docs.
* fixed spelling error.
* regenerated the docs.
* fixes so we match the transformer based on name properly.
* changed the signature on the FieldMatcher.
* introduced a names option so you can filter in name specificly.
* changed so the matcher UI uses the new options format.
* moved the exported functions together.
* changing editors a bit.
* made the filter by name work with both regex and name filtering.
* fixed failing tests and make sure we always parse regex the same way.
* removed unused code.
* simplified to make the existing field overrides still working.
* fixed issue reported by hugo.
* added tests for the name matcher.
* added tests for filter by name.
* added more tests.
* updated menu and added alerts-overview.md
* Delete metrics.md
* Update menu.yaml
* changed file name and updated menu
* Update create-alerts.md
* added file and link
* Create view-alerts.md
* added content and links
* Update pause-an-alert.md
* added content and links
* edited notification content
* updated link
* Update docs/sources/alerting/create-alerts.md
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Applied marcus e. edits
* Update docs/sources/alerting/alerts-overview.md
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
* Chore: updates getMessageFromError return type
* Chore: updates the position of incorrectly placed bang operator
* Chore: updates typing on dropdown typeahead directive
* Chore: updates QueryOperationAction props to require title
* Revert "Chore: updates QueryOperationAction props to require title"
- log stats for Loki are per query
- this change tracks the query stats by refId, preventing the summing of
the same stats across multiple series of the same response.
* Add "When to use" info to Checkbox.mdx
Added info about how checkboxes generally work and when to use another component instead.
* Replaced words with proper component names
* Update Checkbox.mdx
Elaborate on explanations. Add examples for how to use checkboxes the user-friendliest way.
* Apply suggestions from code review
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Editor: New line on Enter, run query on Shift+Enter
- default Enter behavior on query editor fields should be a new line
- special behavior should require a special key: running a query is now
done on Shift-Enter
- Plugins order had to be changed because when typeahead is shown, Enter
is accepting the suggestion
* Run with ctrl-enter, hint in query placeholder
* Fix Kusto field behavior for Enter
* Fix Kusto field behavior for default suggestion
* Add info: when to use which and how to mix buttons
* Update description for Button.mdx
- add note about scenario without primary action
- add note about secondary button being the default
* Refine docs info for secondary and destructive
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
* Add "When to use" info to RadioButtonGroup.mdx
* Clarify more clearly when to use 'Select' instead
* Update RadioButtonGroup.mdx
Add line explaining why we want select for more than four options instead of a radio button group
* Update RadioButtonGroup.mdx
remove part about when elements are triggering changes.
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
* image and card component
* change height of getting started panel
* progress
* setup basic step
* advanced steps
* step forward and backward
* do checks
* fix button size
* minor styling on butttons
* add correct links
* save tutorial click in localstorage
* types and gradients
* fix gradients
* use spacing variable
* lots of responsiveness
* add links to help
* Getting started work
* redo according to split panel design
* minor touch ups
* new background images
* split up docs card to different hrefs
* welcome bar touch ups
* hide icon on small screens
* transparent false on welcome banner
* fix urls
* source tag in welcome urls
* move images to panel dir, removed unused images
* Nicer loading message
* make the cards look nicer on wide screens
* append utm tag on render instead
* replace width with margin
* new background image for light
* remove target on a element
* removing buttonselect, add tag to href
* more polishing
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Field: Change getFieldTitle to getFieldDisplayNamne and change the NAME of the title field config from Title to Display name
* Review feedback
* fixed unit tests
* Rename fieldConfig.title to displayName
* Fixed tests
* Added migration
* Renamed getFrameDisplayTitle to getFrameDisplayName
* azuremonitor: add gzipped and base64 encoded query to metadata
for Azure Log Analytic query responses
* azure monitor: add fields to metadata for log analytics
* azuremonitor: correction to text in query editor
* azuremonitor: adds subscription id to result metadata
* azuremonitor: build deep link url for Log Analytics
Most of the information needed for building the url
comes from the backend. The workspace friendly name
and the resource group that the workspace belongs
to are fetched in a separate API call. This call is
cached otherwise there would be a workspaces call
per query on the dashboard.
* docs: azure log analytics deep linking
* Apply suggestions from code review
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* docs: fixing review comments for azure monitor
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* QueryField: No default suggestion selected
It's been a long-standing issue that careless typing lead to unwanted
tab completion insertions. With this change the completion item list no
longer selects the first item by default. The user has to actively click
ArrowDown to select the first one.
* Added type export
* Remove width limit of typeahead list
* Datasource/CloudWatch: Fix encoding of CloudWatch Logs deep link URL
* Adds data links to cloudwatch logs responses for deep linking to aws console
* Implements PR feedback
While query fields should not rely on getting unmounted when the data source changes (and instead react to that change in e.g. componentDidUpdate()), query fields other than PromQueryField still rely on this.
* Justify to alignment in stat
* No stats label in inspect
* Use sentence case in panel names
* typos
* typo
* Typo
* Query -> query options
* prettier
* Transformer -> transform data
* Do not show deprecated plugins in the viz picker
* Update viz picker layout
* Chore: adds timeEpochNs to LogRowModel in @grafana/data
* Chore: updates explore utils ResultProcessor getLogsResult and explore utils tests
* Chore: updates core/logs_model to include nanoseconds
* Chore: updates LogRowModel sorting key from milliseconds to nanoseconds and adds timeEpochNs to tests
* Chore: adds timeEpochNs to LogRowModel mock in Explore LiveLogs test
* Chore: fixes logs model timeEpochNs padding
* Chore: updates timeEpochNs padding in tests
* Chore: updates LogRowModel mocks
* Chore: changes isLoki to datasourceId
* Chore: adds hasFieldWithNameAndType method to FieldCache in grafana-data dataframe
* Chore: changes timeEpochNs from number to string as it can overflow Number.MAX_SAFE_INTEGER
* Chore: updates LogRowModel sorting to use milliseconds and nanoseconds
* Chore: removes datasourceId from logSeriesToLogsModel method
* Chore: updates ResultProcessor tests to include nanosecond-level precision log rows sorting
* Prometheus: Add metadata for summary metrics
- summary metrics don't have metadata available from the metadata API,
so Grafana can help and just add it
- given a summary metric `foo`, we add metadata info for `foo_sum` and
`foo_count`
- with tests
* Update public/app/plugins/datasource/prometheus/language_utils.ts
Co-authored-by: gotjosh <josue@grafana.com>
Co-authored-by: gotjosh <josue@grafana.com>
* added timezone override information.
* added usp.
* added some code comments.
* added more documentation of the date and time functionality.
* Update docs/sources/reference/timerange.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* some small adjustments.
* fixed comments according to feedback.
* Update packages/grafana-data/src/datetime/parser.ts
* Update packages/grafana-data/src/datetime/parser.ts
* Update packages/grafana-data/src/datetime/parser.ts
* fixed final feedback.
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* common title handling
* show labels
* update comment
* Update changelog for v7.0.0-beta1 (#24007)
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-Authored-By: Andrej Ocenas <mr.ocenas@gmail.com>
Co-Authored-By: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* verify-repo-update: Fix Dockerfile.deb (#24030)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Upgrade build pipeline tool (#24021)
* CircleCI: Upgrade build pipeline tool
* Devenv: ignore enterprise (#24037)
* Add header icon to Add data source page (#24033)
* latest.json: Update testing version (#24038)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix login page redirected from password reset (#24032)
* Storybook: Rewrite stories to CSF (#23989)
* ColorPicker to CSF format
* Convert stories to CSF
* Do not export ClipboardButton
* Update ConfirmButton
* Remove unused imports
* Fix feedback
* changelog enterprise 7.0.0-beta1 (#24039)
* CircleCI: Bump grafana/build-container revision (#24043)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Changelog: Updates changelog with more feature details (#24040)
* Changelog: Updates changelog with more feature details
* spell fix
* spell fix
* Updates
* Readme update
* Updates
* Select: fixes so component loses focus on selecting value or pressing outside of input. (#24008)
* changed the value container to a class component to get it to work with focus (maybe something with context?).
* added e2e tests to verify that the select focus is working as it should.
* fixed according to feedback.
* updated snapshot.
* Devenv: add remote renderer to grafana (#24050)
* NewPanelEditor: minor UI twekas (#24042)
* Forward ref for tabs, use html props
* Inspect: add inspect label to drawer title
* Add tooltips to sidebar pane tabs, copy changes
* Remove unused import
* Place tooltips over tabs
* Inspector: dont show transformations select if there is only one data frame
* Review
* Changelog: Add a breaking change (#24051)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Unpin grafana/docs-base (#24054)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Search: close overlay on Esc press (#24003)
* Search: Close on Esc
* Search: Increase bottom padding for the last item in section
* Search: Move closing search to keybindingsSrv
* Search: Fix folder view
* Search: Do not move folders if already in folder
* Docs: Adds deprecation notice to changelog and docs for scripted dashboards (#24060)
* Update CHANGELOG.md (#24047)
Fix typo
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Documentation: Alternative Team Sync Wording (#23960)
* Alternative wording for team sync docs
Signed-off-by: Joe Elliott <number101010@gmail.com>
* Update docs/sources/auth/team-sync.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Fix misspell issues (#23905)
* Fix misspell issues
See,
$ golangci-lint run --timeout 10m --disable-all -E misspell ./...
Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
* Fix codespell issues
See,
$ codespell -S './.git*' -L 'uint,thru,pres,unknwon,serie,referer,uptodate,durationm'
Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
* ci please?
* non-empty commit - ci?
* Trigger build
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* fix compile error
* better series display
* better display
* now with prometheus and loki
* a few more tests
* Improvements and tests
* thinking
* More advanced and smart default title generation
* Another fix
* Progress but dam this will be hard
* Reverting the time series Value field name change
* revert revert going in circles
* add a field state object
* Use state title when converting back to legacy format
* Improved the join (series to columsn) transformer
* Got tests running again
* Rewrite of seriesToColums that simplifies and fixing tests
* Fixed the tricky problem of multiple time field when not used in join
* Prometheus: Restoring prometheus formatting
* Graphite: Disable Grafana's series naming
* fixed imports
* Fixed tests and made rename transform change title instead
* Fixing more tests
* fix more tests
* fixed import issue
* Fixed more circular dependencies
* Renamed to getFieldTitle
* More rename
* Review feedback
* Fix for showing field title in calculate field transformer
* fieldOverride: Make it clear that state title after applying defaults & overrides
* Fixed ts issue
* Update packages/grafana-ui/src/components/TransformersUI/OrganizeFieldsTransformerEditor.tsx
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: Joe Elliott <joe.elliott@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Mario Trangoni <mario@mariotrangoni.de>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Correcting one of the usage in documentation
* Correcting usage of a word
* Correcting usage of a word in docs
* Correcting same word in 2 more occurrences
* Correcting a word in docs
* Correcting a word in docs
* Update docs/sources/variables/advanced-variable-format-options.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Incorporated reviewer's suggestion in other occurrences
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
- the stats label changed in the original PR, so the custom key did no
longer work, this change fixes it and the total bytes processed show up
in the explore logs meta data
* Search: Do not set items if no results returned
* Search: Simplify canSave logic
* Search: Add initialLoading state
* Search: Add itemsFetching state to folder
* Search: Fix props and tests
* Search: Fix strict null check
* Chore: removed regex from LokiQuery
* Chore: removes parseQuery from Loki datasource
* Chore: removes regex param from format query in lokiStreamsToDataframes in Loki result transformer
* Chore: updates formatQuery and removes parseQuery from Loki query utils
* Chore: removes highlighter test with unsupported syntax from Loki query utils
* fixed a couple of bad links.
* adjusted so we use the correct type of links.
* cleaning up links regarding edit/viewing panels.
* fixing edit link.
* reverted back to panelId for the image urls.
* reverted back.
* remvoed the editPanel: null since it is obsolete.
* Moved files
Moved files from guides folder into getting-started folder, added aliases, added Intro to histograms topic
* Updated links
* Update intro-histograms.md
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Prometheus: Add off switch for metric/label name lookup
This will help users with amounts of metric name
data that is too much for a browser to handle.
Autocomplete will be disabled and metrics chooser hidden,
since obviously both rely on this data.
Fixes#22702
* Use onUpdateDatasourceJsonDataOptionChecked
... from `@grafana/data`. Refactor naming to faciliate its
use and stick with prop names as passed down from
`ConfigEditor`.
PLUS:
- Rephrase switch label, add a tooltip and reduce the
size of the to what "Custom query parameters" originally
was.
- Change `languageProvider` type in `PromQueryField`.
* Put language provider back in
Functions and history still work, even when metrics
lookup gets disabled.
Also: Rewording of setting.
* Display a message when lookup got disabled manually
* Call property for setting disableMetricsLookup
* Show disabled metrics chooser instead of warning
* first things
* extract dropdown to component
* sanitize links and titles
* fix import
* remove console log and move typings
* SAML Role and Team sync (open source part) (#23391)
* SAML: add default params for role and team sync
* SAML: add org_mapping option
* SAML: support allowed_organizations option
* Chore: expose RedirectWithError from HTTPServer
* Chore: return RedirectResponse (fix superfluous response.writeheader message)
* HTTPServer: expose ValidateRedirectTo() and CookieOptionsFromCfg()
* Config: move SAML section to the enterprise
* Forms migration: Change password (#23623)
* Migrate ChangePassword
* Add validation
* FieldOverrides: UI updates (#23630)
* UI improvements for field overrides
* Update tests
* Fix missing key
* Fix e2e
* docs/sources/features/datasources/graphite.md: Fix typos
* Inspect: Transformers (#23598)
* WIP: Inspect transformers
* Updated
* Transformations working in inspect drawer and series to columns working as normal transformation
* Minor name change
* Updated
* Updated
* Fix: fixes crash with dataFrameIndex out of bounds
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Search: migrate manage dashboards (#23530)
* Search: add search wrapper
* Search: add DashboardSearch.tsx
* Search: enable search
* Search: update types
* Search: useReducer for saving search results
* Search: use default query
* Search: add toggle custom action
* Search: add onQueryChange
* Search: debounce search
* Search: pas dispatch as a prop
* Search: add tag filter
* Search: Fix types
* Search: revert changes
* Search: close overlay on esc
* Search: enable tag filtering
* Search: clear query
* Search: add autofocus to search field
* Search: Rename close to closeSearch
* Search: Add no results message
* Search: Add loading state
* Search: Remove Select from Forms namespace
* Remove Add selectedIndex
* Remove Add getFlattenedSections
* Remove Enable selecting items
* Search: add hasId
* Search: preselect first item
* Search: Add utils tests
* Search: Fix moving selection down
* Search: Add findSelected
* Search: Add type to section
* Search: Handle Enter key press on item highlight
* Search: Move reducer et al. to separate files
* Search: Remove redundant render check
* Search: Close overlay on Esc and ArrowLeft press
* Search: Add close button
* Search: Document utils
* Search: use Icon for remove icon
* Search: Add DashboardSearch.test.tsx
* Search: Move test data to a separate file
* Search: Finalise DashboardSearch.test.tsx
* Add search reducer tests
* Search: Add search results loading indicator
* Search: Remove inline function
* Search: Do not mutate item
* Search: Tweak utils
* Search: Do not clear query on tag clear
* Search: Fix folder:current search
* Search: Fix results scroll
* Search: Update tests
* Search: Close overlay on cog icon click
* Add mobile styles for close button
* Search: Use CustomScrollbar
* Search: Memoize TagList.tsx
* Search: Fix type errors
* Search: More strictNullChecks fixes
* Search: Add ManageDashboards.tsx
* Search: Add mergeReducers
* Search: Use mergeReducers
* Search: remove default state from reducers
* Search: Fix recent and starred icons
* Search: Enable search
* Search: Add markup
* Search: Separate manageDashboardsReducer
* Search: Add DashboardActions.tsx
* Use new Select for TagFilter
* Search: Use TagFilter for search filters
* Search: Use TagList
* Search: Add toggleSection
* Search: Add more actions
* Search add manageDashboards.test.ts
* Search: Add getCheckedUids
* Search: Add modify and toggle checked actions
* Search: Update tests
* Search: Update component template
* Search: Enable section toggle
* Search: Derive canMove and canDelete
* Search: Handle delete items
* Search: Fix tests
* Search: Enable toggle items
* Search: Add confirm modal subtitle
* Search: Use theme vars
* Search: Add getCheckedDashboardsUids
* Search: Add MoveToFolderModal
* Search: Enable moving dashboards
* Search: Fix strict null checks errors
* Search: Fix strict null checks errors[2]
* Search: Enable filters
* Search: Add useSearchQuery.ts
* Search: Toggle items when toggling all
* Search: Update useSearchQuery to accept custom params
* Search: Add useSearchQuery to dashboard search
* Search: use SearchField for manage dashboards
* Search: Remove event param from query change
* Search: Add base search hooks
* Search: refactor useSearch to accept reducer
* Search: use useDashboardSearch hook
* Search: Fix useSearchQuery params
* Search: Enable folder search
* Search: Update tests
* Search: Pass the props to manage-dashboards
* Search: Add search filters margin
* Search: Remove search-field-wrapper class and hide logic for it
* Search: Adjust SearchField styles
* Search: Move search-results-container inside SearchResults
* Search: Fix type errors
* Search: Add EmptyListCTA
* Search: Update move message
* Search: Cleanup
* Search: Add todo
* Search: Fix action type
* Search: Use React wrapper vs FolderDashboardsCtrl and DashboardListCtrl
* Search: DashboardList => DashboardListPage
* Search: Remove ManageDashboards from angular_wrappers
* Minor style tweaks
* Search: Use LinkButton
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* PanelEditorTabs: adds counter to Query, Alert and Transform (#23645)
* Transformers: changes reduce transformer (#23611)
* Transformers: changes reduce transformer
* Refactor: fixes lenght of frame
* Minor tweaks and polish
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Docs: Grafana internal metrics update (#23448)
* Update metrics.md
* Updated metrics.md and configuration.md
* Added links to data sources
* Update metrics.md
* Update docs/sources/administration/metrics.md
Co-Authored-By: Carl Bergquist <carl@grafana.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
* Remove temporary NewPanelEditorContext (#23652)
* Toolkit: Update slim debian image for e2e testing (#23629)
* Because alpine uses musl instead of libc, the e2e/cypress was not compatible
So:
- Created new VM based on debian-slim
- Could also be used as a build VM
Fixes:
- ginstall issue with merge somewhere.
- Trimmed down the alpine VM since we don't need the extra libraries for cypress
* Fix: Don't need cp on debian
Fix: Don't use /bin/sh on debian. Only for alpine. Use /bin/bash on debian
Fix: Missing dependencies to e2e tests
* Tweaks and comments for ci-improvements, stability, and readibility (#23658)
* Tweaks and comments for ci-improvements, stability, and readibility
- Made naming more obvious and intuitive
- CI supports grafana e2e plus more granular design
(side effect that it takes slightly longer, but negligable)
- disable strict e2e errors through environment variable
- Added tools for linting and for building plugin-ci
* feedback from stevev - remove version. Causes problems
* Overrides: Show option group counters for options that represent collections (#23655)
* NewPanelEdit: Minor edit mode fixes (#23666)
* Minor edit mode fixes
* Updated
* NewPanelEditor: Save dashboard from edit mode now works, and other fixes (#23668)
* QueryEditors: include error when no data is returned (#23632)
* toDataFrame: detect field properties using in rather than hasOwnProperty (#23673)
* Bundled Plugins: fix build issues with DirectInput (#23640)
* pass query error
* and the root
* not optional
* building bundled plugin
* missing file
* remove other branch
* fix prettier
* Docs: Update README.md (#23660)
* Docs: Update documentation-style-guide.md (#23659)
Added Divio link
* Dashboard: Add fields in DashboardMeta (#23647)
* Fix: grafana/ui imports (#23680)
* Prometheus: Fixed error in PromLink
* Prometheus: Fixed error in PromLink, fixed ts issue
* FieldOverride: Support data links via field overrides (#23590)
* Move xss and sanitize packages to grafana-data
* Move text, url and location utils to grafana-data
* Move grafana config types to grafana-data
* Move field display value proxy to grafana-data
* Fix
* Move data links built in vars to grafana-data
* Attach links supplier to when applying field overrides
* Prep tests
* Use links suppliers attached via field overrides
* locationUtil dependencies type
* Move sanitize-url declaration to grafana-data
* Revert "Move sanitize-url declaration to grafana-data"
This reverts commit 11db9f5e55.
* Fix typo
* fix ts vol1
* Remove import from runtime in data.... Make TS happy at the same time ;)
* Lovely TS, please shut up
* Lovely TS, please shut up vol2
* fix tests
* Fixes
* minor refactor
* Attach get links to FieldDisplayValue for seamless usage
* Update packages/grafana-data/src/field/fieldOverrides.ts
* Make storybook build
* NewPanelEdit: Improvements to angular panels and other fixes (#23678)
* Removed old editor components
* Angular panel improvements
* Progress
* Updated tests
* Simple persistence for angular panel option state
* Improving graph edit experiance
* Improving series overrides
* updated e2e test
* Regstry: refactoring
* Table: Improvements to column resizing, style and alignment (#23663)
* Table: Fixed to column alignment
* testing table state reducer
* Styles starting to work
* Persisting column resize now works
* Trying to fix Table storybook stories
* Minor updates
* fixed ts issue
* Table: Support duplicate field names, and use data frame directly instead of copying data and other improvements (#23681)
* Poc at use data frame directly
* working ok
* Table improvements
* Alertmanager: Basic auth should not be required (#23691)
* Storybook: Small fixes (#23692)
* Fix getLogLevelFromKey when non-string supplied (#23654)
* Fix failing master (#23702)
* Store: Error handling for setObject (#23650)
* Error handling for setObject to store
* Update public/app/core/store.ts
Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Update public/app/features/explore/RichHistory/RichHistory.tsx
Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Move setState outside of try-catch block
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Drawer: align component style with PanelInspector (#23694)
* Drawer: add subtitle, expandable button and refactor style
* Drawer: update header style and z-index
* Drawer: refactor Drawer component and PanelInspector
* PanelInspector: add expandable
* Drawer: update stories with new props
* Inspector: rename InspectHeader -> InspectSubtitle
* Inspector: fix tabs spacing
* Drawer: remove z-index
* Update public/app/features/dashboard/components/Inspector/InspectSubtitle.tsx
Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>
* Drawer: apply PR feedbacks
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Provisioning: Allows specifying uid for datasource and use that in derived fields (#23585)
* Add uid to datasource
* Fix uid passing when provisioning
* Better error handling and Uid column type change
* Fix test and strict null error counts
* Add backend tests
* Add tests
* Fix strict null checks
* Update test
* Improve tests
* Update pkg/services/sqlstore/datasource.go
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Variable rename
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor search (#23550)
Co-Authored-By: Arve Knudsen <arve.knudsen@grafana.com>
Co-Authored-By: Leonard Gram <leonard.gram@grafana.com>
* Search: Toggle Search based on search query (#23648)
* Search: Toggle Search based on search query
* Search: Fix types and closed search param
* Search: Remove appEvents from SearchWrapper
* Search: Reset folder on close
Co-Authored-By: Alexander Zobnin <alexanderzobnin@gmail.com>
* Search: Disable reloadOnSearch for manage dashboards urls
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* Search: Fix title search null pointer (#23705)
* Add ServerlessDatabaseCapacity to AWS/RDS metrics (#23635)
* Dashboard: Add failsafe for slug generation (#23709)
* Transformers: calculate a new field based on the row values (#23675)
* TableCell: show JSON rather than [object Object] (#23683)
* NewPanelEditor: Move visualisation picker to the sidebar pane (#23696)
* Move visualisation picker to the sidebar pane
* Remove vis tab from bottom pane
* Visualisation to panel type title
* docs/sources/features/dashboard/dashboards.md: Improve language
* docs/sources/installation/configuration.md: Improve language
* docs/sources/administration/metrics.md: Improve language
* CSS: Various css bug fixes (Safari fix for graph panels and more) (#23704)
* CSS: Various css bug fixes
* Updated
* InputDatasource: Fixed prettier errors (#23679)
* InputDatasource: Fixed prettier errors
* Fixed prettier config in toolkit to make it consistent with grafana core prettier config
* Docs: run the api-extractor on master to update docs (#23726)
* regenerated packages docs.
* fixed spelling issues.
* fixed spelling issues.
* Input: Width prop (#23615)
* Add width property
* Remove unused import
* Spelling mistake
* Add width to interface
* Make width optional
* Remove size
* Update snapshot
* Remove size from places
* Add size prop for button
* Update width
* Update snapshots
* Docs: Datasource uid docs (#23700)
* @grafana/ui: Fix login icon (#23732)
* Fix sign in button
* Fix modal button in button
* Dashboard: Update tests for testing fallback support (#23730)
* Form migrations: Final components to LegacyForms (#23707)
* FormField to LegacyForms
* FormLabel to InlineFormLabel
* Move SecretFormField to LeagcyForms
* NewPanelEditor: UI update of add panel widget (#23715)
* Small update proposal to add panel widget
* Fix smoketest
* Minor tweaks
* update snaps god damn it
* Tracing: Add some error handling to JaegerQueryField (#23599)
* docs/sources/plugins/developing/datasources.md: Improve language
* Search: raise service init prio (#23740)
* Remove file (#23741)
* Backend plugins: Renderer v2 plugin (#23625)
grafana-plugin-model is legacy and is replaced by new backend
plugins SDK and architecture. Renderer is not part of SDK and
we want to keep it that way for now since it's highly unlikely there
will be more than one kind of renderer plugin.
So this PR adds support for renderer plugin v2.
Also adds support sending a Device Scale Factor parameter to the
plugin v2 remote rendering service and by that replaces #22474.
Adds support sending a Headers parameter to the plugin v2 and
remote rendering service which for now only include
Accect-Language header (the user locale in browser when using
Grafana), ref grafana/grafana-image-renderer#45.
Fixes health check json details response.
Adds image renderer plugin configuration settings in defaults.ini
and sample.ini.
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* UI: Adds option to limit number of visible selected options for Select component (#23722)
* UI: Adds option to limit number of visible selected options to Select component
* Prettier: Add prettier config that imports prettier from toolkit (#23729)
* TextArea: Fixed default height (#23743)
* Image Rendering: Make it work using serve_from_sub_path configured (#23706)
Make rendering work when using serve_from_sub_path and not have rendering.renderer_url configured.
Fixes#21925
* docs/sources/tutorials/ha_setup.md: Fix typo
* Docs: Grammatical correction in documentation (#23752)
* Tracing: Change color palette. (#23656)
* Docs: Minor typo fix in documentation (#23745)
* TablePanel: avoid toArray for memoizedData (#23744)
* DevEnv: Revert to clean stale assets (#23742)
* Dashboard import: Bug fixes (#23591)
* clear dashboard on unmount
* fix menu z-index, folderpicker width
* fix issue with saving dashboard in another folder
* use foldermodel instead of selectablevalue
* using z-index from theme
* updated names
* update snapshot
* remove size from folderpicker
* use connectWithCleanup
* update snapshot
* docs/sources/features/explore/index.md: Fix language
* Docker: Fix root docker file build (#23772)
Fixes#23754
* Search: Load folder page (#23768)
* Drawer: update z-index to show tooltips (#23770)
* DataSourceProxy: Handle URL parsing error (#23731)
* pluginproxy: Handle URL parsing error
* pkg/api: Validate data source URLs
* pkg/api: Return 400 for URL validation error
* Dockerfile: Copy in the tools directory, to fix build (#23773)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* E2E: Fixed e2e test issue due to change in testdata scenario change logic (#23774)
* VizRepeater: fixed issue with resolved auto orientation passed back from VizRepeater (#23767)
* VizRepeater: fixed issue with resolved auto orientation passed back from VizRepeater
* Updated variable name
* Transformers: adds labels as columns transformer (#23703)
* Transformers: adds labels as columns transformer
* Refactor: adds support for same timestamps with different labels
* Refactor: adds basic transform ui
* Refactor: adds sorted result
* Refactor: renames transformer
* Transformations: Improve UI and add some love to filter by name (#23751)
* Change filterByName options to accept arrays instead of strings
* Improve transformations UI
* Minor updates
* Minor UI changes
* Review
* Datasource/Loki: Remove code dealing with legacy Loki endpoints (#23437)
* Docs: Move Postgres version warning and remove details (#23782)
* docs/sources/installation/upgrading.md: Fix language
* UI: add InfoBox component (#23701)
* UI: inherit LinkButton props from ButtonHTMLAttributes
* Chore: fix implicit any
* UI: add InfoBox component
* UI: fix InfoBox border color
* Chore: use new style for defining stories
* Chore: InfoBox refactor
* Chore: inherit className attribute from HTMLDivElement
* Select: Fixed z-index issue (#23786)
* Forms migration: LayoutSelector (#23790)
* Buttons: Center text in buttons (#23789)
* Buttons: Center buttons
* Updated size of transformation button
* removed snapshot
* Transformations: Make sidebar subscribe to panel's query runner (#23785)
* Make panel edit sidebar options use lates data from panel query runner
* Update select's z-index
* Review
* Logs: Add href to internal link (#23757)
* PanelEditor: stores option group collapse state (#23781)
* PanelEditor: stores option group collapse state
* Refactor: adds props to OptionsGroup instead
* Docs: Correcting a reference link in documentation (#23747)
* Correcting a reference link in documentation
* Changed link as relative path, as asked by reviewer
* Search add sorting picker (#23746)
* Search: Extend search_srv with getSortOptions
* Search: Enable sorting
* Search: Fullwidth search
* Search: Add SortPicker
* Search: Add useSearchLayout
* Search: Update sort query
* Search: Refactor items rendering
* Search: Add sort to manage dashboards
* Search: Add sort icon
* Search: Mock getSortOptions
* Search: Fix Select sizes
* Search: Move SortPicker to Select
* Grafana-UI: Add ActionRow.tsx
* Grafana-UI: Use ActionRow in dashboard search
* Grafana-UI: Update ActionRow styles
* Search: Update tests
* Search: enable clearing TagFilter
* Search: Move getSortOptions outside of component
* Search: Fix import
* Search: Limit container width
* Search: Replace SearchField's clear text with icon
* Search: Fix section items query #23792
* Search: Add icons for layout switch
* Search: Remove layout switch for folder page
* Search: Fix strict null errors (#23804)
* Transformations: debug mode tweaks (#23802)
* Transformations: UI tweaks, filter by name regex validation (#23800)
* Add validation to filter by name regex, minor layout tweaks
* Use cards uin for non configured transformations
* UI Docs: ColorPicker component group (#23366)
* Create .mdx for ColorPicker component group
Describes the building blocks of the component and how they work together.
* Rename ColorPicker.mdx to ColorPicker.story.mdx
* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx
Clean up tags
Co-Authored-By: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx
Co-Authored-By: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Explore: Fix split functionality (#23801)
* Fix splitting functionality, remove passing of parameters from button
* Format comment
* Security: Fix annotation popup XSS vulnerability (#23813)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Typeahead: Fix z-index (#23809)
* Plugins: show signing status on datasources and plugins (#23542)
* show signing status
* show signing status
* Progress on signed badge style
* Progress on signing status look and updated card background
* Updates
* Transforms card tweak
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* CircleCI: Upgrade shellcheck to v0.7.1 and pin version (#23815)
* CircleCI: Upgrade shellcheck to v0.7.1 and pin version
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Table: Add default cell link style and tooltip to data links in table (#23818)
* TablePanel: Fix XSS issue in header column rename (#23816)
* prevent xss
* added escaping on tooltip.
* Rebase done
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Rendering: makes sure IsAvailable can be used during init of other services (#23817)
* Rendering: makes sure service knows if it is configured after Init()
* Rendering: refactor
* Transformations: Organise fields transformer fixes & detailing (#23812)
* Transformers: Organise fields transformer detailing
* Table header cell - fix text overflowing columns
* Backend: Remove Go vendor folder (#23796)
* CHANGELOG.md: Update (#23831)
* CHANGELOG.md: Update
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Update latest.json (#23833)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Backend Plugins: (breaking change) Add PluginContext (#23788)
* breaking change for newer backend plugins
* use exported protobuf converters and sdk types to reduce duplicate code
* uses grafana-plugin-sdk-go@v0.54.0
* NewPanelEditor: don't break when plugin is skipDataQuery (#23836)
* Tracing: Remove feature flag (#23834)
* Logs: Derived fields link design update (#23695)
* Toolkit: fixes for security and publishing (#23749)
* Fixes and security patches:
1. Always keep the source directory, just don't package the source
2. Do not publish the SSH key for common plugin tasks.
Changed to environment variable
* env variable renamed.
* Re-added the src remove
* touch config.yml for rebuild
* NewDataSourcePage: Restore signature badge lost in merge (#23832)
* NewPanelEditor: bring back queries not being run on editmode navigation (#23837)
* Docs: URL update to Relref to repair broken links (#23783)
* NewPanelEditor: Panel edit tweaks (#22415)
* NewPanelEditor: Alternative edit layout
* Fixed full height issue
* panel-edit-tabs experiment
* minor tweaks
* PanelEditor: Minor tweaks
* Docs: URL update to Relref to repair broken links
Rewrote URL references in the text for the Administration guide
and older Whats New page to repair broken links, and change
to the Relref format to build the website with Hugo.
Closes#22378
* Remove stale file, caught in this
branch and PR from my Fork. contribute/style-guides/markdown-style-guide.md
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* e2e: adds inspect drawer tests (#23823)
* Explore: Create basic E2E test
* Feature: adds e2e tests for panel inspector
* Refactor: adds ts-ignore because of type checking errors
* Refactor: changes after PR comments and updates snapshot
* Refactor: adds typings back for IScope
* Refactor: changes after PR comments
Co-authored-by: Andreas Opferkuch <andreas.opferkuch@gmail.com>
* Form migrations: Teams and alert list (#23810)
* Basic migration
* Update test
* Fix feedback
* Forms migration: Data/Panel link editor (#23778)
* DataLink input to new form styles
* Make Angular work with inline editor
* Remove onRemove and desiableRemove
* Remove DataLinksEditor
* Change order of inputs
* Enable syntax highlight
* Fix datalinks for Elastic
* Fix PromQuery cascader when selected option has no children (#23835)
* Adding debug line to search ldap. (#23824)
* Search/virtualize list (#23710)
* Search: Add FixedSizeList for result items
* Search: Move SectionHeader to a separate file
* Search: Add useListHeight hook
* Search: Fix horizontal scrollbar
* Search: Remove custom scrollbar
* Search: Do not fetch dashboard folder on route change
* Search: Update tests
* Search: Remove extra checkbox renders
* Search: Move wrapper ref outside search results
* Search: Fix param type
* Search: Fix merge conflicts
* Search: Virtualize dashboard list
* Search: Update layout
* Search: Pass wrapper to search results
* Search: Update dashboard redirect
* Search: Remove unused css
* Search: Revert config
* Search: Use AutoSizer
* Search: Remove redundant appEvents call
* Search: Use List layout in folder view
* Transformations: Simple fix for labels to fields problem with time series field names (#23828)
* Simple fix for labels to fields transform problem
* Added unit test
* dsproxy: adds support for url params for plugin routes (#23503)
* dsproxy: adds support for url params for plugin routes
* docs: fixes after review
* pluginproxy: rename Params to URLParams
* Update pkg/plugins/app_plugin.go
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Apply suggestions from code review
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* pluginproxy: rename struct
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Alerting: Handle image renderer unavailable when edit notifiers (#23711)
If no image renderer available/installed when adding a new alert notification
channel will set Include image to false per default, otherwise true as before.
If no image renderer available/installed when adding/edit alert notification
channel will show an informational message that you need to install the
Grafana Image Renderer plugin for Grafana to be able to render an image.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Alerting: Upload error image when image renderer unavailable (#23713)
When Include image is enabled for an alert notification channel, but there's
no image renderer available/installed when sending notification an error
image will be uploaded/attached explaining that you need to install the
Grafana Image Renderer plugin.
Ref #13802
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Metriktank: Linage UI updates (#23848)
* e2e: adds e2e for panel edit (#23849)
* Explore: Create basic E2E test
* Feature: adds e2e tests for panel inspector
* Refactor: adds ts-ignore because of type checking errors
* Refactor: changes after PR comments and updates snapshot
* Refactor: adds typings back for IScope
* e2e: adds e2e for panel edit
Co-authored-by: Andreas Opferkuch <andreas.opferkuch@gmail.com>
* CloudWatch: Prefer webIdentity over EC2 role also when assuming a role (#23807)
Same as #23452 but for assumed roles.
When using service accounts (webIdentity) on EKS in combination
with assuming roles in other AWS accounts Grafana needs to retrieve
the service account credentials first and then needs to assume the
configured role.
* Devenv: fix prometheus scrape ips (#23850)
* Devenv: fix prometheus scrape ips
* Devenv: fix grafana in devenv reference
* Devenv: fixes prom random data reference
* Docker: Upgrade to Ubuntu 20.04 in Dockerfiles (#23852)
* Chore: Upgrade to Ubuntu 20.04
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* PanelEditor: Fixed switch tabs (#23859)
* Grafana-UI: Extend Layout props (#23771)
* Grafana-UI: Extend Layout props
* Grafana-UI: Merge container styles
* Search: Fix prop types
* Grafana-UI: remove className prop
* Dashboard: Handle no renderer available in panel share dialog (#23856)
Show a message when sharing dashboard panel on the Link tab and
there's no renderer available/installed.
Ref #13802
* Storybook sorting (#23857)
* Resort Icon.story.tsx into Docs Overview category
* Make CallToActionCard.story.tsx internal
* Move ThemeColors to Docs Overview category
* Move Tag.story.tsx to Forms category
* Move TagList.story.tsx to Forms category
Co-authored-by: Clarity-89 <homes89@ukr.net>
* Tracing: Zipkin datasource (#23829)
* Search: cleanup old Angular files (#23860)
* Search: Remove wrapperRef
* Search: Remove angular search files
* Search: Unify search types
* Search: Remove redundant hideHeader prop
* Search: Remove app/types/search.ts
* Search: Update imports
* Search: Fix type errors
* Migration: Alerting - notifications list (#22548)
* Handle empty list
* Connect to redux
* Finish migration
* Remove comments
* Remove old files
* Remove console log
* Remove old import
* Forgot to add the new button
* Fix href
* Fix feedback
* Rich history: Fix create url and run query & style updates (#23627)
* Styling updates
* Create getQueryFromDisplayText method for Jaeger, Loki, Prometheus
* Fix createLink and runQuery methods for all datasources
* Update test
* Update Select from Legacy to current
* Update filtering
* Update public/app/core/utils/richHistory.test.ts
* Fix strictnullcheck errors
* Remove getQueryFromDisplayText method, as not needed
* Update saving of full query and use displayText for formatting
* Update tests
* Refactor create data query
* Remove parsing, store object instead
* Fix formatting error
* Remove object checking, transform everything to DataQuery
* Remove console.log
* Rename migrate function, add datasourceName as a useEffect dependency
* Fix z-index, move query
* Packages: Bundle plugins (#23787)
* Add manifest for external plugins
* CircleCI: Build internal plug-ins
* CircleCI: Package internal and external plug-ins
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Search: Improving search look and feel (#23854)
* Search: Improving search look and feel
* Fixed issue with tag filter beeing cramped and wrapping tags
* Minor tag polish
* fixed type
* adds template for backend datasource (#23864)
* Zipkin: Add method to display query text (#23870)
* Docs: Add version note about Stackdriver SLO queries (#23844)
Ref #22917
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Revert rc-slider dependency update, add z-index to tooltip (#23873)
* Search: Improvements to design (#23874)
* Search: updated design
* Fixed z-index
* Fixes
* Minor pixel push
* NewPanelEditor: Make variables wrap and small layout refactor (#23862)
* NewPanelEditor: Make variables wrap and small layout refactor
* review fix
* Singlestat: Adds migration button and logic to migrate singlestat to stat panel (#23845)
* Singlestat: Migration button to migrate to new stat panel
* updated test
* ManageDashboards: Fixes and improvements (#23879)
* ManageDashboards: Fixes and improvements
* Fixed tests
* Fixed issue with item height and margin
* RadioButtons: Updates design and no longer full width in panel edit (#23883)
* Migration: Admin org edit page (#23866)
* Start migration
* Migrate admin org edit page
* NewPanelEditor: adjust panel menu items (#23888)
* Minor grammatical correction (#23885)
* Minor change for better readability (#23884)
* NewPanelEditor: increase sidebar min width, value mappings radio no longer full width (#23889)
* Docs: Plugin docs for Dataframes (#23483)
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
* PanelPlugin: add deprecation notice to setEditor method (#23895)
* Datasource/Cloudwatch: Adds support for Cloudwatch Logs (#23566)
* Datasource/Cloudwatch: Adds support for Cloudwatch Logs
* Fix rebase leftover
* Use jsurl for AWS url serialization
* WIP: Temporary workaround for CLIQ metrics
* Only allow up to 20 log groups to be selected
* WIP additional changes
* More changes based on feedback
* More changes based on PR feedback
* Fix strict null errors
* Docs: Edit prometheus data source doc (#23760)
* Update prometheus.md
* Editing
* Update prometheus.md
* Update add-a-data-source.md
* Update prometheus.md
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Search: Minor tweak to placeholder color
* Minor grammatical correction (#23898)
* Docs: Add doc comments for PanelPlugin (#23896)
* Fix grammatical errors in documentation (#23900)
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* grafana/toolkit: Do not suggest Angular panel anymore, add note about Grafana tutorials (#23902)
* NewPanelEditor: vis picker UI update (#23894)
* Fix storybook
* Add deprecated/alpha badge to panels in viz picker, fix long title display
* Move getFocusCss to mixins
* Updated hover/active state of vis picker item
* try fixing e2e
* Add removed label for e2e to be happy happy happy
* Search: Fix expanded folder icon (#23903)
* QueryTab: Design updates (#23906)
* WIP: first stage
* Another take
* argghhh
* Updated
* My brain is mush
* Minor progress
* Progres
* Starting to work
* Fixes
* fixed e2e
* Chore: show grafana labs not project (#23913)
* DashboardSave: fix save dashboard when changes are detected (#23909)
* e2e: creates a separate package for selectors (#23858)
* Initial commit
* Chore: fixes after merge
* Chore: removes todos
* Chore: uncomment test
* Chore: adds missing externals to rollup config
* Refactor: selectors is master for everything
* Docs: updates Docs
* Chore: adds e2e-selectors to publish
* Angular/Forms migration: Orgs list (#23821)
* Create new components
* Fix async issues
* Remove comments
* Update public/app/features/admin/AdminOrgsTable.tsx
* Update public/app/features/admin/AdminListOrgsPage.tsx
* Update public/app/features/admin/AdminListOrgsPage.tsx
* Remove angular code
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Fix strict nulls (#23931)
* azuremonitor: fix for app insights azure china url (#23877)
* DashNav: refactor action buttons and custom content (#23868)
* DashNav: refactor action buttons and custom content
* DashNav: remove code duplication
* DashNav: fix custom element display
* DashNav: fix strictNullChecks
* docs/sources/features/datasources/testdata.md: Fix language
* Icon: Update sigin icon (#23933)
* NewPanelEditor: Fix visualisation list badge verflow (#23936)
* Search/fix folder sort (#23893)
* Search: Move layout to query reducer/hook
* Search: Refactor search_srv
* Search: Fix types
* Search: Move extra layout/sort logic to reducer
* Search: Fix Select min-width
* Search: Fix filter by starred
* Search: Update tests
* Search: Simplify query return
* Search: Set width to auto on HorizontalGroup
* Search: Fix tests
* Fix build-container (#23942)
* Search: Replace search implementation (#23855)
* Rendering: Add metrics (#23827)
* Rendering: base metrics
* Rendering: rendering_queue_size metric
* Chore: fix linter error
* Rendering metrics: refactoring
* Apply suggestions from code review
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Rendering metrics: handle DeadlineExceeded errors
* Rendering metrics: don't measure canceled request time
* Rendering metrics: revert deleting summary for canceled requests
* Update pkg/services/rendering/rendering.go
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Rendering: return ErrTimeout if context deadline exceeded
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* docs/sources/features/datasources/prometheus.md: Fix language
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* docs/sources/features/datasources/opentsdb.md: Language improvements
* docs/sources/features/datasources/mysql.md: Improve language
* DateTime: adding support to select preferred timezone for presentation of date and time values. (#23586)
* added moment timezone package.
* added a qnd way of selecting timezone.
* added a first draft to display how it can be used.
* fixed failing tests.
* made moment.local to be in utc when running tests.
* added tests to verify that the timeZone support works as expected.
* Fixed so we use the formatter in the graph context menu.
* changed so we will format d3 according to timeZone.
* changed from class base to function based for easier consumption.
* fixed so tests got green.
* renamed to make it shorter.
* fixed formatting in logRow.
* removed unused value.
* added time formatter to flot.
* fixed failing tests.
* changed so history will use the formatting with support for timezone.
* added todo.
* added so we append the correct abbrivation behind time.
* added time zone abbrevation in timepicker.
* adding timezone in rangeutil tool.
* will use timezone when formatting range.
* changed so we use new functions to format date so timezone is respected.
* wip - dashboard settings.
* changed so the time picker settings is in react.
* added force update.
* wip to get the react graph to work.
* fixed formatting and parsing on the timepicker.
* updated snap to be correct.
* fixed so we format values properly in time picker.
* make sure we pass timezone on all the proper places.
* fixed so we use correct timeZone in explore.
* fixed failing tests.
* fixed so we always parse from local to selected timezone.
* removed unused variable.
* reverted back.
* trying to fix issue with directive.
* fixed issue.
* fixed strict null errors.
* fixed so we still can select default.
* make sure we reads the time zone from getTimezone
* Disable emitDataRequest from explore (#23926)
* NewPanelEditor: fix wrong path to time regions template causing panel editor to bug (#23946)
* Storybook: Add intro and reorganize (#23924)
* Update Intro
* Reorganize stories
* Hide panel for ThemeColors
* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx
Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update intro
* Hide panel on Icon story
* Update README
* Add link
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Search: Adds search to main nav and removes open search click on dashboard name (#23943)
* Search: Adds search to main nav and removes open search click on dashboard name
* Updated snapshots
* Fixed strict null errors
* Fixed type issue
* Dashboard: Enforce min dashboard refresh interval to 5 seconds per default (#23929)
Fixes#22493
* Build: adding support to rollup *.json files to include moment-timezone data. (#23951)
* Image Rendering: New setting to control render request concurrency (#23950)
Fixes#23806
Co-Authored-By: Torkel Ödegaard <torkel@grafana.com>
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* PanelEditor: Fixed issue with PanelModel change plugin type (#23949)
* azuremonitor: port azure log analytics query function to the backend (#23839)
* azuremonitor: add support for log analytics macros
Also adds tests for the kql macros
* azuremonitor: backend implementation for Log Analytics
* azuremonitor: remove gzip header from plugin route
The Go net/http library adds an accept encoding header
for gzip automatically.
https://golang.org/src/net/http/transport.go\#L2454
So no need to specify it manually
* azuremonitor: parses log analytics time series
* azuremonitor: support for table data for Log Analytics
* azuremonitor: for log analytics switch to calling the API...
...from the backend for time series and table queries.
* azuremonitor: fix missing err check
* azuremonitor: support Azure China, Azure Gov...
for log analytics on the backend.
* azuremonitor: review fixes
* azuremonitor: rename test files folder to testdata
To follow Go conventions for test data in tests
* azuremonitor: review fixes
* azuremonitor: better error message for http requests
* azuremonitor: fix for load workspaces on config page
* azuremonitor: strict null check fixes
Co-authored-by: bergquist <carl.bergquist@gmail.com>
* Update data frame concept doc (#23921)
* Update data frame concept doc
* Fix typo
* Fix typo
* Fix Dockerfile* (#23954)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Search/ui issues (#23945)
* Search: Move layout to query reducer/hook
* Search: Move extra layout/sort logic to reducer
* Search: Tweak action row spacing
* Search: Update TagOption
* Search: Remove duplicate function
* Search: Add Clear tags button
* Search: Align checkbox
* Search: Add TagFilter.displayName
* Search: Update default placeholder
* Search: Return all dashboards for list view
* Search: Apply custom line-height to ActionRow checkbox
* MaxDataPoints: Now used in interval calculation for all data sources (#23915)
* MaxDataPoints: Now enabled for all
* Updates to code and test
* Moved the panel query inspector
* PaneQueryRunner: Simplify logic and only take in maxDataPoints not width
* Make sidemenu header accept onClick events (#23957)
* backend_plugins: duration support in Frame (#23962)
sdk v0.57.0
go mod tidy
* PanelEditor: fixes save/apply for undefined props in restoreModel (#23939)
* PanelEditor: fixes save/apply for undefined props in restoreModel
* Refactor: changes after PR comments
* Refactor: changes sourcePanel refresh strategy
* Added unit tests and minor refactoring of method, starting with cleanup, then setting properties from model
* Update public/app/features/dashboard/state/PanelModel.test.ts
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* docs: adds provisioning config example (#23940)
* Docs: Minor correction in documentation (#23899)
* Minor correction in documentation
* Refactoring the previous change
* Docs: Add DescribeAlarmHistory to minimal IAM policy (#23965)
DescribeAlarmHistory is used in the annotations query.
* Image rendering: Fix missing icon on plugins list (#23958)
Fixes#23189
* Dashboard: Handle min refresh interval when importing dashboard (#23959)
If refresh interval is lower than minimum refresh interval
when importing dashboard, use the minimum refresh interval
instead of returning error.
Fixes#23099
* Docs: Multiple changes to make document easier to read (#23842)
* multiple changes to make document easier to read
* Update docs/sources/features/datasources/loki.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/loki.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/loki.md
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Update docs/sources/features/datasources/loki.md
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Docs: Suggesting multiple changes for better readability (#23843)
* Suggesting multiple changes for better readability
* Update docs/sources/features/datasources/mssql.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/mssql.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/mssql.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Docs: Mark macro examples as code (#23932)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Docs: Add DescribeAlarms to minimal IAM policy (#23968)
DescribeAlarmHistory is used in the prefix matching of the annotations query
* Panels: Update panel logos (#23964)
* Various 7.0 UI tweaks (#23972)
* Set min height of panel pane to 200px
* Disable badge on viz picker when item is in disabled in search results
* Fix UserProfile inputs width
* Remove select caret in user admin permissions editor
* fix 23911
* Explore: Fix query rows styles (#23973)
* CloudWatch: Remove cloud watch flag (#23974)
* TestData/Graph: load arrow and zoom to data range (#23764)
* Docs: Fix building of docs (#23923)
* Docs: Fix building of docs
* CircleCI: Fixate grafana/docs-base image revision in job for building docs
* Docs: enable packages reference docs for 7-beta (#23953)
* added packages reference menu item.
* removed the draft flag.
* Updated docs by running script.
* AlertTab: some ui updates (#23971)
* updated the alerting tab.
* changed so we use a confirm button.
* removed uncommeneted import.
* Change to secondary buttons
Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>
* trying to fix issue with panel of undefined.
* Fix prettier
* Update public/app/features/alerting/AlertTab.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Docs: Query history 7.0 updates (#23955)
* Update docs about query history
* Update docs/sources/features/explore/index.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Metrictank: Fix meta inspector consolidator field names (#23838)
to match https://github.com/grafana/metrictank/pull/1798
* Chore: Update Grafana version (#23985)
* Update Grafana version
* fix after merge
* merge conflicts
* migration script and new icons in editor
* revert migration, use iconmap lookup
* add tooltip
* cleanup after merge
* revert
* remove angular dashboard links and related components
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Mohit Nain <Mohit_Nain@infosys.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Stephanie Closson <srclosson@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Tullstedt <sakjur@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@grafana.com>
Co-authored-by: Leonard Gram <leonard.gram@grafana.com>
Co-authored-by: Jack Stevenson <jackstevenson@users.noreply.github.com>
Co-authored-by: Amal <56926487+amalkurup89@users.noreply.github.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Jess <53754871+jessover9000@users.noreply.github.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Joseph Robinson <josephremail@gmail.com>
Co-authored-by: Andreas Opferkuch <andreas.opferkuch@gmail.com>
Co-authored-by: Omar Nahhas Sanchez <omar@innovativerealities.com>
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: Johannes Brück <6677058+bruecktech@users.noreply.github.com>
Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: tmarszal <tmarszal@gmail.com>
Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Jon Gyllenswärd <jon.gyllensward@grafana.com>
Co-authored-by: Jan Garaj <jan.garaj@gmail.com>
Co-authored-by: Dieter Plaetinck <dieter@grafana.com>
* Loki: Show loki datasource stats in panel inspector
- puts the loki query result stats into the query results meta stat API
of Grafana, this allows the display of all backend loki stats in the
panel inspector in the dashboards
- added a hack to also display one of those values in Explore as a meta
label using the dataframe meta `custom` mechanims to point to a single
stat entry for each series which is then added together to show total
bytes processed across all query row results (this should be changed for
7.1 to make full use of the panel inspector in Explore)
* Fix test
* nicer stats labels for loki stats with units
* Chore: upgrades Cypress to 4.5.0
* Refactor: splits up huge it into several
* Refactor: prevent flakiness
* Refactor: updates yarn.lock
* Refactor: changes after PR comments
* Refactor: uses e2e.flows instead of import
* extract out the field creation parts
* extract out the field creation parts
* three math modes
* better timeseries support
* TestData/Graph: load arrow and zoom to data range (#23764)
* Docs: Fix building of docs (#23923)
* Docs: Fix building of docs
* CircleCI: Fixate grafana/docs-base image revision in job for building docs
* Docs: enable packages reference docs for 7-beta (#23953)
* added packages reference menu item.
* removed the draft flag.
* Updated docs by running script.
* AlertTab: some ui updates (#23971)
* updated the alerting tab.
* changed so we use a confirm button.
* removed uncommeneted import.
* Change to secondary buttons
Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>
* trying to fix issue with panel of undefined.
* Fix prettier
* Update public/app/features/alerting/AlertTab.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Docs: Query history 7.0 updates (#23955)
* Update docs about query history
* Update docs/sources/features/explore/index.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Metrictank: Fix meta inspector consolidator field names (#23838)
to match https://github.com/grafana/metrictank/pull/1798
* Chore: Update Grafana version (#23985)
* Update Grafana version
* Docs: What's new in 7.0 placeholder (#23987)
* Docs: What's new in 7.0 placeholder
* Updated makefile
* Search: minor fixes (#23984)
* Search: Use folder id as key when present
* Search: Do not render modals if not open
* Enterprise: List 7.0 features (#23956)
* CircleCI: Fix triggering of jobs for releases (#23999)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix pagination of issues/PR's in changelog generator (#23997)
Fix pagination of issues/PR's in changelog generator
* Search: Convert time pickers to CSF (#24002)
* updated docs for reporting (#23733)
* updated docs
* peering comments
* Added info about what version test mails requires
* Tracing: Fix view bounds after trace change (#23994)
* Docs: fix image link (#24011)
* Update whats new (#24012)
* Chore: Put what's new and release notes URLs in package.json (#24006)
* Put what's new and release notes URLs in package.json
* Upgrade build pipeline tool
* Update changelog for v7.0.0-beta1 (#24007)
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-Authored-By: Andrej Ocenas <mr.ocenas@gmail.com>
Co-Authored-By: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* verify-repo-update: Fix Dockerfile.deb (#24030)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Upgrade build pipeline tool (#24021)
* CircleCI: Upgrade build pipeline tool
* Devenv: ignore enterprise (#24037)
* Add header icon to Add data source page (#24033)
* latest.json: Update testing version (#24038)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix login page redirected from password reset (#24032)
* Storybook: Rewrite stories to CSF (#23989)
* ColorPicker to CSF format
* Convert stories to CSF
* Do not export ClipboardButton
* Update ConfirmButton
* Remove unused imports
* Fix feedback
* changelog enterprise 7.0.0-beta1 (#24039)
* CircleCI: Bump grafana/build-container revision (#24043)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Changelog: Updates changelog with more feature details (#24040)
* Changelog: Updates changelog with more feature details
* spell fix
* spell fix
* Updates
* Readme update
* Updates
* Select: fixes so component loses focus on selecting value or pressing outside of input. (#24008)
* changed the value container to a class component to get it to work with focus (maybe something with context?).
* added e2e tests to verify that the select focus is working as it should.
* fixed according to feedback.
* updated snapshot.
* Devenv: add remote renderer to grafana (#24050)
* NewPanelEditor: minor UI twekas (#24042)
* Forward ref for tabs, use html props
* Inspect: add inspect label to drawer title
* Add tooltips to sidebar pane tabs, copy changes
* Remove unused import
* Place tooltips over tabs
* Inspector: dont show transformations select if there is only one data frame
* Review
* Changelog: Add a breaking change (#24051)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Unpin grafana/docs-base (#24054)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Search: close overlay on Esc press (#24003)
* Search: Close on Esc
* Search: Increase bottom padding for the last item in section
* Search: Move closing search to keybindingsSrv
* Search: Fix folder view
* Search: Do not move folders if already in folder
* Docs: Adds deprecation notice to changelog and docs for scripted dashboards (#24060)
* Update CHANGELOG.md (#24047)
Fix typo
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Documentation: Alternative Team Sync Wording (#23960)
* Alternative wording for team sync docs
Signed-off-by: Joe Elliott <number101010@gmail.com>
* Update docs/sources/auth/team-sync.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Fix misspell issues (#23905)
* Fix misspell issues
See,
$ golangci-lint run --timeout 10m --disable-all -E misspell ./...
Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
* Fix codespell issues
See,
$ codespell -S './.git*' -L 'uint,thru,pres,unknwon,serie,referer,uptodate,durationm'
Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
* ci please?
* non-empty commit - ci?
* Trigger build
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* more tests
* remove FieldConfig setting
* merged binary and reduce
* improve tests
* update options after values change
* Minor refactoring and polish to UI
* Minor fixes
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Dieter Plaetinck <dieter@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <sakjur@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Jon Gyllenswärd <jon.gyllensward@grafana.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: Joe Elliott <joe.elliott@grafana.com>
Co-authored-by: Mario Trangoni <mario@mariotrangoni.de>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
... in `componentDidUpdate`, not just `componentDidMount`.
Also unify query field behavior of Explore with Dashboard - when the
data source changes, it doesn't unmount but instead refreshes its
metrics.
Fixes#23162
* only show cache timeout if enabled in datasource
* move conditional
* Update public/app/features/dashboard/panel_editor/QueryOptions.tsx
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Moved templating.md
Moved file to a different folder, added alias information, updated menu.yaml
* Split out advanced variable format options from templating.md
* Reworked Advanced variable format options
* Update templating.md
* Moved global variables to another topic
* Moved template files
* Update global-variables.md
* Update global-variables.md
* Update templates-and-variables.md
* made new repeating panels and rows topic
* updated links and menu
* Update advanced-variable-format-options.md
* Update repeat-panels-or-rows.md
* Update menu.yaml
* Update prometheus.md
* Applied Daniel's edits
* Convert Spinner to CSF
* Convert TableInputCSV to CSF
* Convert ToggleButtonGroup to CSF
* Convert ValueMappingsEditor to CSF
* Convert useDelayedSwitch to CSF
* Convert ClipboardButton to CSF
* Convert CallToActionCard to CSF
* Convert BarGauge to CSF
* Convert DataSourceHttpSettings to CSF
* Convert ConfirmModal to CSF
* Convert FormField to CSF
* Convert Input to CSF
* Convert ButtonSelect to CSF
* Removed unused import from ButtonSelect story
* Convert InfoTooltip to CSF
* Convert List to CSF
* Convert QueryField to CSF
* Convert RefreshPicker to CSF
* Convert SecretFormField to CSF
* Convert ClipboardButton to CSF
* Convert CallToActionCard to CSF
* Convert BarGauge to CSF
* Convert DataSourceHttpSettings to CSF
* Convert ConfirmModal to CSF
* Convert FormField to CSF
* Fix: Show results of instant queries in Explore tables
* Add PreferredVisualisationType to meta
* Implement visualisation exception for Prometheus
* Implement visualisation exception for Elastic
* Search: Close on Esc
* Search: Increase bottom padding for the last item in section
* Search: Move closing search to keybindingsSrv
* Search: Fix folder view
* Search: Do not move folders if already in folder
* Forward ref for tabs, use html props
* Inspect: add inspect label to drawer title
* Add tooltips to sidebar pane tabs, copy changes
* Remove unused import
* Place tooltips over tabs
* Inspector: dont show transformations select if there is only one data frame
* Review
* changed the value container to a class component to get it to work with focus (maybe something with context?).
* added e2e tests to verify that the select focus is working as it should.
* fixed according to feedback.
* updated snapshot.
* updated the alerting tab.
* changed so we use a confirm button.
* removed uncommeneted import.
* Change to secondary buttons
Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>
* trying to fix issue with panel of undefined.
* Fix prettier
* Update public/app/features/alerting/AlertTab.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Set min height of panel pane to 200px
* Disable badge on viz picker when item is in disabled in search results
* Fix UserProfile inputs width
* Remove select caret in user admin permissions editor
* fix 23911
If refresh interval is lower than minimum refresh interval
when importing dashboard, use the minimum refresh interval
instead of returning error.
Fixes#23099
* PanelEditor: fixes save/apply for undefined props in restoreModel
* Refactor: changes after PR comments
* Refactor: changes sourcePanel refresh strategy
* Added unit tests and minor refactoring of method, starting with cleanup, then setting properties from model
* Update public/app/features/dashboard/state/PanelModel.test.ts
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* MaxDataPoints: Now enabled for all
* Updates to code and test
* Moved the panel query inspector
* PaneQueryRunner: Simplify logic and only take in maxDataPoints not width
* azuremonitor: add support for log analytics macros
Also adds tests for the kql macros
* azuremonitor: backend implementation for Log Analytics
* azuremonitor: remove gzip header from plugin route
The Go net/http library adds an accept encoding header
for gzip automatically.
https://golang.org/src/net/http/transport.go\#L2454
So no need to specify it manually
* azuremonitor: parses log analytics time series
* azuremonitor: support for table data for Log Analytics
* azuremonitor: for log analytics switch to calling the API...
...from the backend for time series and table queries.
* azuremonitor: fix missing err check
* azuremonitor: support Azure China, Azure Gov...
for log analytics on the backend.
* azuremonitor: review fixes
* azuremonitor: rename test files folder to testdata
To follow Go conventions for test data in tests
* azuremonitor: review fixes
* azuremonitor: better error message for http requests
* azuremonitor: fix for load workspaces on config page
* azuremonitor: strict null check fixes
Co-authored-by: bergquist <carl.bergquist@gmail.com>
* added moment timezone package.
* added a qnd way of selecting timezone.
* added a first draft to display how it can be used.
* fixed failing tests.
* made moment.local to be in utc when running tests.
* added tests to verify that the timeZone support works as expected.
* Fixed so we use the formatter in the graph context menu.
* changed so we will format d3 according to timeZone.
* changed from class base to function based for easier consumption.
* fixed so tests got green.
* renamed to make it shorter.
* fixed formatting in logRow.
* removed unused value.
* added time formatter to flot.
* fixed failing tests.
* changed so history will use the formatting with support for timezone.
* added todo.
* added so we append the correct abbrivation behind time.
* added time zone abbrevation in timepicker.
* adding timezone in rangeutil tool.
* will use timezone when formatting range.
* changed so we use new functions to format date so timezone is respected.
* wip - dashboard settings.
* changed so the time picker settings is in react.
* added force update.
* wip to get the react graph to work.
* fixed formatting and parsing on the timepicker.
* updated snap to be correct.
* fixed so we format values properly in time picker.
* make sure we pass timezone on all the proper places.
* fixed so we use correct timeZone in explore.
* fixed failing tests.
* fixed so we always parse from local to selected timezone.
* removed unused variable.
* reverted back.
* trying to fix issue with directive.
* fixed issue.
* fixed strict null errors.
* fixed so we still can select default.
* make sure we reads the time zone from getTimezone
* Fix storybook
* Add deprecated/alpha badge to panels in viz picker, fix long title display
* Move getFocusCss to mixins
* Updated hover/active state of vis picker item
* try fixing e2e
* Add removed label for e2e to be happy happy happy
* Datasource/Cloudwatch: Adds support for Cloudwatch Logs
* Fix rebase leftover
* Use jsurl for AWS url serialization
* WIP: Temporary workaround for CLIQ metrics
* Only allow up to 20 log groups to be selected
* WIP additional changes
* More changes based on feedback
* More changes based on PR feedback
* Fix strict null errors
* Resort Icon.story.tsx into Docs Overview category
* Make CallToActionCard.story.tsx internal
* Move ThemeColors to Docs Overview category
* Move Tag.story.tsx to Forms category
* Move TagList.story.tsx to Forms category
Co-authored-by: Clarity-89 <homes89@ukr.net>
Same as #23452 but for assumed roles.
When using service accounts (webIdentity) on EKS in combination
with assuming roles in other AWS accounts Grafana needs to retrieve
the service account credentials first and then needs to assume the
configured role.
* Explore: Create basic E2E test
* Feature: adds e2e tests for panel inspector
* Refactor: adds ts-ignore because of type checking errors
* Refactor: changes after PR comments and updates snapshot
* Refactor: adds typings back for IScope
* e2e: adds e2e for panel edit
Co-authored-by: Andreas Opferkuch <andreas.opferkuch@gmail.com>
When Include image is enabled for an alert notification channel, but there's
no image renderer available/installed when sending notification an error
image will be uploaded/attached explaining that you need to install the
Grafana Image Renderer plugin.
Ref #13802
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
If no image renderer available/installed when adding a new alert notification
channel will set Include image to false per default, otherwise true as before.
If no image renderer available/installed when adding/edit alert notification
channel will show an informational message that you need to install the
Grafana Image Renderer plugin for Grafana to be able to render an image.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* DataLink input to new form styles
* Make Angular work with inline editor
* Remove onRemove and desiableRemove
* Remove DataLinksEditor
* Change order of inputs
* Enable syntax highlight
* Fix datalinks for Elastic
* Explore: Create basic E2E test
* Feature: adds e2e tests for panel inspector
* Refactor: adds ts-ignore because of type checking errors
* Refactor: changes after PR comments and updates snapshot
* Refactor: adds typings back for IScope
* Refactor: changes after PR comments
Co-authored-by: Andreas Opferkuch <andreas.opferkuch@gmail.com>
* NewPanelEditor: Panel edit tweaks (#22415)
* NewPanelEditor: Alternative edit layout
* Fixed full height issue
* panel-edit-tabs experiment
* minor tweaks
* PanelEditor: Minor tweaks
* Docs: URL update to Relref to repair broken links
Rewrote URL references in the text for the Administration guide
and older Whats New page to repair broken links, and change
to the Relref format to build the website with Hugo.
Closes#22378
* Remove stale file, caught in this
branch and PR from my Fork. contribute/style-guides/markdown-style-guide.md
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fixes and security patches:
1. Always keep the source directory, just don't package the source
2. Do not publish the SSH key for common plugin tasks.
Changed to environment variable
* env variable renamed.
* Re-added the src remove
* touch config.yml for rebuild
* show signing status
* show signing status
* Progress on signed badge style
* Progress on signing status look and updated card background
* Updates
* Transforms card tweak
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Create .mdx for ColorPicker component group
Describes the building blocks of the component and how they work together.
* Rename ColorPicker.mdx to ColorPicker.story.mdx
* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx
Clean up tags
Co-Authored-By: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx
Co-Authored-By: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
* Transformers: adds labels as columns transformer
* Refactor: adds support for same timestamps with different labels
* Refactor: adds basic transform ui
* Refactor: adds sorted result
* Refactor: renames transformer
* clear dashboard on unmount
* fix menu z-index, folderpicker width
* fix issue with saving dashboard in another folder
* use foldermodel instead of selectablevalue
* using z-index from theme
* updated names
* update snapshot
* remove size from folderpicker
* use connectWithCleanup
* update snapshot
grafana-plugin-model is legacy and is replaced by new backend
plugins SDK and architecture. Renderer is not part of SDK and
we want to keep it that way for now since it's highly unlikely there
will be more than one kind of renderer plugin.
So this PR adds support for renderer plugin v2.
Also adds support sending a Device Scale Factor parameter to the
plugin v2 remote rendering service and by that replaces #22474.
Adds support sending a Headers parameter to the plugin v2 and
remote rendering service which for now only include
Accect-Language header (the user locale in browser when using
Grafana), ref grafana/grafana-image-renderer#45.
Fixes health check json details response.
Adds image renderer plugin configuration settings in defaults.ini
and sample.ini.
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Search: Toggle Search based on search query
* Search: Fix types and closed search param
* Search: Remove appEvents from SearchWrapper
* Search: Reset folder on close
Co-Authored-By: Alexander Zobnin <alexanderzobnin@gmail.com>
* Search: Disable reloadOnSearch for manage dashboards urls
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* Table: Fixed to column alignment
* testing table state reducer
* Styles starting to work
* Persisting column resize now works
* Trying to fix Table storybook stories
* Minor updates
* fixed ts issue
* Table: Support duplicate field names, and use data frame directly instead of copying data and other improvements (#23681)
* Poc at use data frame directly
* working ok
* Table improvements
* Move xss and sanitize packages to grafana-data
* Move text, url and location utils to grafana-data
* Move grafana config types to grafana-data
* Move field display value proxy to grafana-data
* Fix
* Move data links built in vars to grafana-data
* Attach links supplier to when applying field overrides
* Prep tests
* Use links suppliers attached via field overrides
* locationUtil dependencies type
* Move sanitize-url declaration to grafana-data
* Revert "Move sanitize-url declaration to grafana-data"
This reverts commit 11db9f5e55.
* Fix typo
* fix ts vol1
* Remove import from runtime in data.... Make TS happy at the same time ;)
* Lovely TS, please shut up
* Lovely TS, please shut up vol2
* fix tests
* Fixes
* minor refactor
* Attach get links to FieldDisplayValue for seamless usage
* Update packages/grafana-data/src/field/fieldOverrides.ts
* Make storybook build
* Tweaks and comments for ci-improvements, stability, and readibility
- Made naming more obvious and intuitive
- CI supports grafana e2e plus more granular design
(side effect that it takes slightly longer, but negligable)
- disable strict e2e errors through environment variable
- Added tools for linting and for building plugin-ci
* feedback from stevev - remove version. Causes problems
* Because alpine uses musl instead of libc, the e2e/cypress was not compatible
So:
- Created new VM based on debian-slim
- Could also be used as a build VM
Fixes:
- ginstall issue with merge somewhere.
- Trimmed down the alpine VM since we don't need the extra libraries for cypress
* Fix: Don't need cp on debian
Fix: Don't use /bin/sh on debian. Only for alpine. Use /bin/bash on debian
Fix: Missing dependencies to e2e tests
* WIP: Inspect transformers
* Updated
* Transformations working in inspect drawer and series to columns working as normal transformation
* Minor name change
* Updated
* Updated
* Fix: fixes crash with dataFrameIndex out of bounds
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* add a table picker
* move picker to the top
* add missing change
* Removed overflow from panel-content so dropdown menus can extend a panel, moved the select to the bottom
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
So:
- Created new VM based on debian-slim
- Could also be used as a build VM
Fixes:
- ginstall issue with merge somewhere.
- Trimmed down the alpine VM since we don't need the extra libraries for cypress
Removes all references and usage of PhantomJS #23375.
Remove direct link rendered image e2e smoke test for now.
Docker: Fix installing chrome in ubuntu custom docker image.
Improve handling of image renderer not available/installed #23593.
Add PhantomJS breaking change and upgrading notes.
Use grabpl v0.2.10.
Closes#13802
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
The last three sections of this document are not rendered on https://grafana.com/docs/grafana/latest/alerting/notifications
It seems like in all other instances (other .md docs of this project), level one headers are only used at the top of the page, so I assume using level two headers will make them show. Level two headers do also match the overall structure of the documentation.
* move Panel JSON to inspector
* move Panel JSON to inspector
* update test
* use stats display options
* move query inspector to inspector
* open inspector from the queries section
* subscribe to results
* subscribe to results
* open the right tab
* apply review feedback
* update menus (inspect tabs)
* Dashboard: extend dashnav to add custom content (#23433)
* Dashlist: Fixed dashlist broken in edit mode (#23426)
* Chore: Fix bunch of strict null error to fix master CI (#23443)
* Fix bunch of null error
* Fix failing test
* Another test fix
* Docs: Add SQL region annotation examples (#23268)
Add region annotation examples for SQL data sources in docs.
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Docs: Update contributing doc to install node@12. (#23450)
* NewPanelEdit: Minor style and description tweaks, AND PanelQueryRunner & autoMinMax (#23445)
* NewPanelEdit: Minor style and description tweaks
* Removed the worst snapshot of all time
* ReactTable: adds color text to field options (#23427)
* Feature: adds text color field config
* Refactor: created an extension point
* Refactor: uses HOC for extension instead
* Fix: fixes background styling from affecting cells without display.color
* Chore: export OptionsUIRegistryBuilder on grafana/data (#23444)
* export the ui registry
* add to utils index also
* DataLinks: Do not full page reload data links links (#23429)
* Templating: Fix global variable "__org.id" (#23362)
* Fixed global variable __org.id value
* correct orgId value
* reverted the change as variables moved to new file
* Chore: reduce null check errors to 788 (currently over 798) (#23449)
* Fixed ts errors so build will succeed
* Update packages/grafana-data/src/types/graph.ts
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Feedback from code review
* Leaving out trivial typing's
* Fix error with color being undefined now.
* fix test with timezone issue
* Fixed test
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Cloudwatch: prefer webIdentity over EC2 role (#23452)
* Plugins: add a signature status flag (#23420)
* Progress
* fixed button
* Final touches
* now works from edit mode
* fix layout
* show raw objects
* move query inspector buttons to the bottom
* update snapshot
* Updated design
* Made full page reload work
* Fixed minor style issue
* Updated
* More fixes
* Removed unused imports
* Updated
* Moved to data tab out to seperate component
* fixed ts issue
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Alexandre de Verteuil <alexandre@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Cyril Tovena <cyril.tovena@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Vikky Omkar <vikkyomkar@gmail.com>
Co-authored-by: Stephanie Closson <srclosson@gmail.com>
Co-authored-by: Dário Nascimento <dfrnascimento@gmail.com>
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Add trace ui in Explore
* WIP
* WIP
* WIP
* Make jaeger datasource return trace data instead of link
* Allow js in jest tests
* Return data from Jaeger datasource
* Take yarn.lock from master
* Fix missing component
* Update yarn lock
* Fix some ts and lint errors
* Fix merge
* Fix type errors
* Make tests pass again
* Add tests
* Fix es5 compatibility
* Add header with minimap
* Fix sizing issue due to column resizer handle
* Fix issues with sizing, search functionality, duplicate react, tests
* Refactor TraceView component, fix tests
* Fix type errors
* Add dark theme styling
* Add tests for hooks
* More color changes
* Fix tests to deal with additional theme wrappers.
* Add memoization
* Fix duplicate identifier
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Allow API to assign new user to a specific organization
* Add defer block to test
* Add API tests and return 400 instead of 500 for bad orgId
* Minor test improvements
* Fixed so we dont miss the deep default options.
* removed console log.
* remove check of feature toggle and assuming that the new variables are the default ones.
* removed e2e statement about used featuretoggles.
* added comments for the angular loader.
* added code documentation for backendSrv.
* docs for datasource_srv.
* added some more docs.
* added documentation for the locationsrv.
* started to add docs for echo srv.
* added docs for meta srv.2
* added docs for analytics.
* draft documentation of the DataSourceWithBackend.
* added docs for last files.
* fixed all warnigns in api-extractor.
* fixed some typos and captializations.
* replaced run
* consolidated dist and toolkit
* Solved a few more issues
1. Need to explicitly copy circleci config to dist
so that it's published
2. Detect build directory, and use "local" or "linked"
mode for local builds.
* Reverted change used only for testing
* grafana-toolkit.js always required now. Copy to dist
* removed grafana-toolkit.dist.js, no longer required
* feedback from code review
* Code review comments 2.
Enables adding a section `plugin.<plugin id>` and key/value to
Grafana configuration file which will be converted and sent
as environment variables to the backend plugin.
Also sends some additional environment variables, Grafana
version (GF_VERSION), Grafana edition (GF_EDITION) and
enterprise license path (GF_ENTERPRISE_LICENSE_PATH).
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Fixes#21515,
* Hangouts: fixes notifications for alerts with empty message
* Update pkg/services/alerting/notifiers/googlechat.go
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Add trace ui in Explore
* WIP
* WIP
* WIP
* Make jaeger datasource return trace data instead of link
* Allow js in jest tests
* Return data from Jaeger datasource
* Take yarn.lock from master
* Fix missing component
* Update yarn lock
* Fix some ts and lint errors
* Fix merge
* Fix type errors
* Make tests pass again
* Add tests
* Fix es5 compatibility
* Add header with minimap
* Fix sizing issue due to column resizer handle
* Fix issues with sizing, search functionality, duplicate react, tests
* Refactor TraceView component, fix tests
* Fix type errors
* Add dark theme styling
* Add tests for hooks
* More color changes
* Fix tests to deal with additional theme wrappers.
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Toolkit: Update plugin added
- To normalize an bring a plugins "managed" config up to date
* Added changes for filter only release
* changed name
* updated test for checking files in manifest
* New alpine based plugin ci image
- smaller, based on alpine (downloads in 7 to 10 seconds)
- Has updated gget that uses tar.gz
- Unpacks to /opt/grafana
- Compatible cp with toolkit
* needed build tools for go lint
* added built vm to test tool
* add circleci plugin config
* added openssh to image
* fix for gget & renamed to ginstall
* Styles: Refactoring and tweaks to inline form styles
* Minor change
* Minor fix
* Updated snapshot
* tweaks
* minor tweak
* Updated modal style
* Updated snapshot
* Updated more snapshots
* IconButton: New component to share pointer, size & hover style for icon buttons
* Progress
* IconButton: new component
* Think I am done
* Updated snapshots
* Do not like the black button reverting that, and not the plus-circle changed to plus
* fixed test
* fixed e2e test
* Fixed ts issue
* Use single registry for transformations
* Fix transformations tests
* Added documentation comments and minor refactor
* Added documentation comments and minor refactor
Minor misunderstanding between me and Typescript. We should be good friends back now.
* Fix registry import
* Redux: Added config to redux development middlewares that checks for mutations and serializability
* Disable these middlewares, they are too slow
* Update public/app/store/configureStore.ts
* Update public/app/store/configureStore.ts
* Prettier fix
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Do not use pointer cursor on icon by default
* Allow items alignment in the HorizontalGroup layout
* Add util for rendering components based on their type (element or function)
* Components for rendering query and transformation rows in a unified way
* Apply new UI fo query and transformation rows
* Add some tests
* Minor fix for scroll area
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* First bar gauge panel option
* Update doc comments
* Minor changes
* progress
* Minor type updates
* Fixing typing errors
* Fix that TS!
* Bring satisfaction to that beast called typescript
* Prototype
* Remove import
* Experimenting with different named categories
* Experimenting with category naming
* Naming is very hard
* merge master
* Remove commented code
* Fix merge
* Categorise panel options into collapsible sections
* Remove categories from table panel
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Fixed ts errors so build will succeed
* Update packages/grafana-data/src/types/graph.ts
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Feedback from code review
* Leaving out trivial typing's
* Fix error with color being undefined now.
* fix test with timezone issue
* Fixed test
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Feature: adds text color field config
* Refactor: created an extension point
* Refactor: uses HOC for extension instead
* Fix: fixes background styling from affecting cells without display.color
* Remove deprecated setDefault usages
* Add simple support for conditinal field config properties
* Use new API in NewsPanel
* Update tests
* Fix check
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Add trace ui in Explore
* WIP
* WIP
* WIP
* Make jaeger datasource return trace data instead of link
* Allow js in jest tests
* Return data from Jaeger datasource
* Take yarn.lock from master
* Fix missing component
* Update yarn lock
* Fix some ts and lint errors
* Fix merge
* Fix type errors
* Make tests pass again
* Add tests
* Fix es5 compatibility
* Add header with minimap
* Fix sizing issue due to column resizer handle
* Fix issues with sizing, search functionality, duplicate react, tests
* Refactor TraceView component, fix tests
* Fix type errors
* Add tests for hooks
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Replicate SDK behaviour for WebIdentityRole
Fix#20473
* Use WebIdentityRole in s3 uploader as well
* Use consistent casing
* use WebIdentityRole to assume another role
Co-authored-by: eV <ev@7pr.xyz>
* Part1: Unicons implementation (#23197)
* Create a new Icon component
* Update icons in main sidebar
* Update icons in Useful links and in react components on main site
* Update icons in Useful links and in main top navigation
* Adjust sizing
* Update panel navigation and timepicker
* Update icons in Panel menu
* NewPanelEditor: Fixed so that test alert rule works in new edit mode (#23179)
* Update icons in add panel widget
* Resolve merge conflict
* Fix part of the test errors and type errors
* Fix storybook errors
* Update getAvailableIcons import in storybook knobs
* Fix import path
* Fix SyntaxError: Cannot use import statement outside a module in test environment error
* Remove dynamic imports
* Remove types as using @ts-ignore
* Update snapshot test
* Add @iconscout/react-unicons to the shouldExclude list as it is blundled with es2015 syntax
* Remove color prop from icon, remove color implemetation in mono icons
* Update navbar styling
* Move toPascalCase to utils/string
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Resolve type errors resulted from merge
* Part2: Unicons implementation (#23266)
* Create a new Icon component
* Update icons in main sidebar
* Update icons in Useful links and in react components on main site
* Update icons in Useful links and in main top navigation
* Adjust sizing
* Update panel navigation and timepicker
* Update icons in Panel menu
* Update icons in add panel widget
* Resolve merge conflict
* Fix part of the test errors and type errors
* Fix storybook errors
* Update getAvailableIcons import in storybook knobs
* Fix import path
* Fix SyntaxError: Cannot use import statement outside a module in test environment error
* Remove dynamic imports
* Remove types as using @ts-ignore
* Update snapshot test
* Add @iconscout/react-unicons to the shouldExclude list as it is blundled with es2015 syntax
* Implment icons in Tabs
* Implement icons in search items and empty list
* Update buttons
* Update button-related snapshot tests
* Update icons in modals and page headers
* Create anfular wrapper and update all icons on search screen
* Update sizing, remove colors, update snapshot tests
* Remove color prop from icon, remove color implemetation in mono icons
* Remove color props from monochrome icons
* Complete update of icons for search screen
* Update icons for infor tooltips, playlist, permissions
* Support temporarly font awesome icons used in enterprise grafana
* Part1: Unicons implementation (#23197)
* Create a new Icon component
* Update icons in main sidebar
* Update icons in Useful links and in react components on main site
* Update icons in Useful links and in main top navigation
* Adjust sizing
* Update panel navigation and timepicker
* Update icons in Panel menu
* NewPanelEditor: Fixed so that test alert rule works in new edit mode (#23179)
* Update icons in add panel widget
* Resolve merge conflict
* Fix part of the test errors and type errors
* Fix storybook errors
* Update getAvailableIcons import in storybook knobs
* Fix import path
* Fix SyntaxError: Cannot use import statement outside a module in test environment error
* Remove dynamic imports
* Remove types as using @ts-ignore
* Update snapshot test
* Add @iconscout/react-unicons to the shouldExclude list as it is blundled with es2015 syntax
* Remove color prop from icon, remove color implemetation in mono icons
* Update navbar styling
* Move toPascalCase to utils/string
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Icons update
* Add optional chaining to for isFontAwesome variable
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Part3: Unicons implementation (#23356)
* Create a new Icon component
* Update icons in main sidebar
* Update icons in Useful links and in react components on main site
* Update icons in Useful links and in main top navigation
* Adjust sizing
* Update panel navigation and timepicker
* Update icons in Panel menu
* Update icons in add panel widget
* Resolve merge conflict
* Fix part of the test errors and type errors
* Fix storybook errors
* Update getAvailableIcons import in storybook knobs
* Fix import path
* Fix SyntaxError: Cannot use import statement outside a module in test environment error
* Remove dynamic imports
* Remove types as using @ts-ignore
* Update snapshot test
* Add @iconscout/react-unicons to the shouldExclude list as it is blundled with es2015 syntax
* Implment icons in Tabs
* Implement icons in search items and empty list
* Update buttons
* Update button-related snapshot tests
* Update icons in modals and page headers
* Create anfular wrapper and update all icons on search screen
* Update sizing, remove colors, update snapshot tests
* Remove color prop from icon, remove color implemetation in mono icons
* Remove color props from monochrome icons
* Complete update of icons for search screen
* Update icons for infor tooltips, playlist, permissions
* Support temporarly font awesome icons used in enterprise grafana
* Part1: Unicons implementation (#23197)
* Create a new Icon component
* Update icons in main sidebar
* Update icons in Useful links and in react components on main site
* Update icons in Useful links and in main top navigation
* Adjust sizing
* Update panel navigation and timepicker
* Update icons in Panel menu
* NewPanelEditor: Fixed so that test alert rule works in new edit mode (#23179)
* Update icons in add panel widget
* Resolve merge conflict
* Fix part of the test errors and type errors
* Fix storybook errors
* Update getAvailableIcons import in storybook knobs
* Fix import path
* Fix SyntaxError: Cannot use import statement outside a module in test environment error
* Remove dynamic imports
* Remove types as using @ts-ignore
* Update snapshot test
* Add @iconscout/react-unicons to the shouldExclude list as it is blundled with es2015 syntax
* Remove color prop from icon, remove color implemetation in mono icons
* Update navbar styling
* Move toPascalCase to utils/string
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Update icons in Explore
* Update icons in alerting
* Update + and x buttons
* Update icons in configurations and settings
* Update close icons
* Update icons in rich history
* Update alert messages
* Add optional chaining to for isFontAwesome variable
* Remove icon mock, set up jest.config
* Fix navbar plus icon
* Fir enable-bacground to enableBackgournd
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Merge remote branch origin master to icons-unicons
* Revert "Merge remote branch origin master to icons-unicons"
This reverts commit 3f25d50a39.
* Size-up dashnav icons
* Fix alerting icons, panel headers, update tests
* Fix typecheck error
* Adjustments - add panel icon, spacing
* Set TerserPlugin sourceMap to false to prevent running out of memory when publishing storybook
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Chore: Upgrade to Go 1.14
* Chore: Bump version of grafana/grafana-ci-deploy Docker image
* Chore: Fix/bump version of grafana/build-container Docker image
* CircleCI: Upgrade build Docker images
* BackendPlugin: (wip) change response format
goes with https://github.com/grafana/grafana-plugin-sdk-go/pull/109
* fix error mapping in wrapper
* latest of my sdk branch
* latest of my sdk branch
* TransformWrapper fixes
* latest of sdk branch (removes extra meta)
* add metadata in wrappers
* also set error string
* sdk: v0.35.0
The fetch() API won't send cookies or other type of credentials unless
you set the credentials init option. Some datasources like Prometheus
and Elasticsearch have `withCredentials` option in Browser access mode,
but this option is not currently getting passed in the fetch() API.
Fixes#23338.
* Refactor: adds one form of column resize to React-Table
* Refactor: resizing works
* Refactor: adds onColumnResize
* Refactor: fixes so sorting is not invoked when resizing
* Refactor: fixes styles for resizer
* Refactor: removes callback call
* Refactor: changes after comments
* Refactor: updates code according to new api
* Improved styling
* fix
* Refactor: adds back resizable panel option and defaults to false
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Set field config defaults based on config registry
* Rename FIeldPropertyEditorItem to FieldConfigPopertyItem
* Remove console.log
* Simplify overrides persistence model and add support for nested properties in overrides
* Review updates
* Added draft on transformers to sort and hide fields.
* added structure for the UI.
* draft on sorting/filtering UI.
* simplified the datastructure a bit.
* added draft on drag and drop support.
* added some super simple styling. Nothing final still waiting for a proper design on this.
* updated lockfile after merge.
* changed so we use the new path for button.
* added one more test.
* Ignore feature toggle
* Moved editor to app
* Added top description
* Minor update
* Did some renaming and simplified the code a bit.
* fixed so we dont use capital naming on the transformer.
* changed to an vertical drag and drop design.
* added support to rename fields.
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
1. Typo in the default email address
2. Nested promises causing problems in some situations. Return a promise
and resolve in the outer function
3. If extension still have '.' in front remove it prior to matching.
* Lessons learned from using circle-ci
1. Make it clearer that GITHUB_TOKEN or GITHUB_ACCESS_TOKEN
are required for a release. Don't build without them.
2. Default gracefully to an reasonable email address.
(It does not have to actually exist, but the api needs it to publish)
* template for testing
* Wrote a basic test.
* Simple test
* Slight fix to brackets
* Code review changes
* Fix for test. Setup environment properly
* FieldConfig: Unifying standard and custom registry
* Adding path to option items to make id be prefixed for custom options
* Code updates progress
* Add docs back
* Fix TS
* ld overrides tests from ui to data
* Refactor - rename
* Gauge and table cleanup
* F-I-X e2e
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Show organization popup in alphabetical order
* GetUserOrgList: Sort organizations by name in API
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Theme: Updates old gf-form-styles
* Removed margin buttom
* updated
* updated
* This will take some time
* More style tweaks to both light and dark theme
* Minor change
* Tweaked table styles
* use dropdown
* keep padding the same
* keep padding the same
* Refactoring and moving to components
* Updated
* Alt names
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* FieldOverride: Fixed number override so that it return undefined for null/undefined values and not NaN
* Made process function be able to return undefined an null
* POC grid layout of gague.
* added a grid property that can be used to auto size the charts within a panel.
* fill the grid
* fix lint
* change default for stat panel
* avoid empty cells
* Moved to absolute positioning
* Fixed spacing
* Another fix
* Improve layout algorithm
* VizRepeater: Reverted back to so this is auto behavior for some panels
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Variables: turns on newVariables as default
* Chore: adds default templating state
* Some small refactorings to get the template_srv tests to get green when toggle is enabled by default.
* Refactor: adds getVariables dependency to DashboardModel
* Tests: fixes StackDriver tests
* Tests: updates snapshots
* Tests: updates snapshot for DashboardGrid.test.tsx
* Tests: fixes DashboardModel.test.ts
* fixed initDashboard tests.
* renamed variable.
* changed so we use the templating.list when running the migration work.
* changed so we always returns the variables in sorted order.
* Tests: fixed cloudwatch tests
* added so we set the global template variable props.
* Fixed tests and added moved logic to complete templateSrv variables.
* removed unneccesary updateIndex.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* removing src dir on publish
* Moved from binary to native typescript
1. Moved to a native typescrpt github publish using the existing
github client.
2. Change dist.js to detect running in a linked environment.
Todo: Optimize docker image for build size.
* Optimized build of docker container
Much smaller. From 5.47 gb to 2.88
* Feedback from discussion with Ryan
- Added gget for getting grafana versions
- Added infrastructure for testing
- Uploaded new docker image
* Fixed typo... Not sure what happened there :)
* Added command to download canary
* small fix for displaying versions in help
* Removed --dev option
Should really just rename version to (ex: 1.2.0-dev)
* removing src dir on publish
* Moved from binary to native typescript
1. Moved to a native typescrpt github publish using the existing
github client.
2. Change dist.js to detect running in a linked environment.
Todo: Optimize docker image for build size.
* Optimized build of docker container
Much smaller. From 5.47 gb to 2.88
* Feedback from discussion with Ryan
- Added gget for getting grafana versions
- Added infrastructure for testing
- Uploaded new docker image
* Fixed typo... Not sure what happened there :)
* Added command to download canary
* small fix for displaying versions in help
* Removed --dev option
Should really just rename version to (ex: 1.2.0-dev)
* Utils: Use 's' as default for unit-less intervals
If the user specifies a string that is a unit-less number, it is
assumed that they meant seconds.
Fixes#22362
* Rephrase tooltip for better line break position
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Add trace ui in Explore
* WIP
* WIP
* WIP
* Make jaeger datasource return trace data instead of link
* Allow js in jest tests
* Return data from Jaeger datasource
* Take yarn.lock from master
* Fix missing component
* Update yarn lock
* Fix some ts and lint errors
* Fix merge
* Fix type errors
* Make tests pass again
* Add tests
* Fix es5 compatibility
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* Changed location for Current Org:
Current Org: was below the current Org, I changed it so you can deside what looks correct.
I also put an "." after Org, since it is a shorting
* removed an empty line
* Update snapshot
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Export other components as Legacy
* More Select Legacy
* Add namespacing to more files
* Export new elements
* Move Legacy Select folder
* Let's not forget the scss file
* Move new Select folder
* Move new Select from Forms namespace
* Little oopsie
* Fix errors
* Fix merge issues
* Fixed issue with multi value.
* Made some refactorings after feedback from Torkel and Hugo.
* minor refactorings.
* changed so we don't make the current value to array if multi is false.
* added snapshot to contain v23.
* Fixed so we always use the correct type when setting value for multi/non-multi.
* added some more tests.
* added tests.
* some small adjustments after feedback
* Forms for UserProfile
* Migrate to new Form styles
* Add remove icon
* Remove unused import
* Update public/app/features/admin/UserOrgs.tsx
* Remove comment
* Remove icon and add text
* Make every ButtonGroup unique - regardless of values
* Remove visual glitch etc.
* Fic failing typecheck
* Add "some" typesafety to panel options/field config APIs
* Allow selected common field config properties config, allow option defaults config via fluent API
* Update packages/grafana-data/src/panel/PanelPlugin.ts
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Add defaults support for custom field config
* Enable defaults setting for standard and custom field configs
* Remove setFieldConfigDefaults from PanelPlugin API and replace it with useStandardFieldConfig
* Update API for standard field config defaults
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* first things
* introduce headers and moving buttons
* adding reducer and action for gcom dashboard
* action working
* continue building on import form
* change dashboard title
* add prop to not render a label
* first things
* introduce headers and moving buttons
* adding reducer and action for gcom dashboard
* action working
* continue building on import form
* change dashboard title
* add prop to not render a label
* import form layout
* break out form to component
* add actions and reader for file upload
* fix upload issue
* modified data types to handle both gcom and file upload
* import dashboard json
* save dashboard
* start change uid
* change dashboard uid
* fix spacing and date format
* fix import from json
* handle uid and title change
* revert change in panelinspect
* redo fileupload component
* after review
* redo forms to use Forms functionality
* first attempt on async validation
* use ternary on uid input
* removed unused actions, fixed async validation on form
* post form if invalid, break out form to component
* sync file with master
* fix after merge
* nits
* export formapi type
* redo page to use forms validation
* fix inputs and validation
* readd post
* add guards on data source and constants
* type checks and strict nulls
* strict nulls
* validate onchange and fix import button when valid
* shorten validate call
* reexport OnSubmit type
* add comment for overwrite useEffect
* move validation functions to util
* fix button imports
* remove angular import
* move title and uid validation
* Text change
made it more understandable that this is a search field
* Made "New Folder"-button green
Since New Dashboard was green I thought New Folder; Import also would be green. Green seems to be the color for creating new items
* Update playlist_search.html
* change search text
* wrong link
* Update playlist.md
* Update manage_dashboards.html
* Update manage_dashboards.html
* replaced Filter
* replaced Filter
* replaced Filter
* replaced filter
* changed text for placeholder
* Update UsersActionBar.tsx
* Update UserListAdminPage.tsx
* update snapshots
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Cookie : Increase duration to avoid error
When using oauth2 authentication with multifactor, the 60s delay may be too short
* Introduce new setting for OAuth state cookie max age
Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor: adds first naive implemenation of join by field name
* Chore: changes after PR comments
* Refactor: fixes labels and adds support for multiple columns
* StatPanels: Refactoring DisplayValueOptions and renaming
* added return
* Progress
* Updated
* Made radio groups full width by default in panel options
* Fixed ts issue
* Updated
* Added remaining options
* Removed unused type
* Updated snapshot
* Renamed to ReduceDataOptions
* First bar gauge panel option
* Update doc comments
* Minor changes
* progress
* Fixing typing errors
* Minor type updates
* Fix that TS!
* Bring satisfaction to that beast called typescript
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* wip: add slo support
* Export DataSourcePlugin
* wip: break out metric query editor into its own component
* wip: refactor frontend - keep SLO and Metric query in differnt objects
* wip - load services and slos
* Fix broken test
* Add interactive slo expression builder
* Change order of dropdowns
* Refactoring backend model. slo unit testing in progress
* Unit test migration and SLOs
* Cleanup SLO editor
* Simplify alias by component
* Support alias by for slos
* Support slos in variable queries
* Fix broken last query error
* Update Help section to include SLO aliases
* streamline datasource resource cache
* Break out api specific stuff in datasource to its own file
* Move get projects call to frontend
* Refactor api caching
* Unit test api service
* Fix lint go issue
* Fix typescript strict errors
* Fix test datasource
* Use budget fraction selector instead of budget
* Reset SLO when service is changed
* Handle error in case resource call returned no data
* Show real SLI display name
* Use unsafe prefix on will mount hook
* Store goal in query model since it will be used as soon as graph panel supports adding a threshold
* Add comment to describe why componentWillMount is used
* Interpolate sloid
* Break out SLO aggregation into its own func
* Also test group bys for metricquery test
* Remove not used type fields
* Remove annoying stackdriver prefix from error message
* Default view param to FULL
* Add part about SLO query builder in docs
* Use new images
* Fixes after feedback
* Add one more group by test
* Make stackdriver types internal
* Update docs/sources/features/datasources/stackdriver.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/stackdriver.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/features/datasources/stackdriver.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Updates after PR feedback
* add test for when no alias by defined
* fix infinite loop when newVariables feature flag is on
onChange being called in componentDidUpdate produces an
infinite loop when using the new React template variable
implementation.
Also fixes a spelling mistake
* implements feedback for documentation changes
* more doc changes
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Registry of standard option editors
* Move override processors to grafana data
* API for declaratively creating field config/panel options
* Enable declarative API in PanelPlugin for options and field config
* Use new api in react table panel
* Add color and unit picker to option registries
* Add some docs and tests
* Fix tests
because id is never defined on notification object, the condition 'n.id === an.id' is equal to 'undefined === undefined' which is always true.
that code is responsible for the situation when you delete one endpoint and it removes all of them.
* Minor changes
* Fixtures path is now relative to the project directory
* URL support module now has individual exports
* Scenario context timing issues resolved
... caused by being ran synchronously, instead of as part of Cypress' asynchronous queue.
* Scenario context API now supports multiple keys per function call
* addDataSource flow accepts a config argument
… and optionally checks datasource health status
* Added readProvisions command
* Added addPanel flow
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Fix some null errors
* Fix test after strict null changes
* Review feedback fixes
* Fix toggle name
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
* BackendSrv: Added config to response
* QueryInspector: Removing config from showing up
* Replace config with request and make it be the unmodified params sent in
* Fixing issue 16090 where Grafana uses illegal characters in requests to Prometheus
* Rebase with Grafana and Merge branch 'master' of https://github.com/BhartiAgrawalNvidia/grafana into fix-16090
# Conflicts:
# public/app/plugins/datasource/prometheus/language_provider.ts
* Rebase with Grafana and Merge branch 'master' of https://github.com/BhartiAgrawalNvidia/grafana into fix-16090
# Conflicts:
# public/app/plugins/datasource/prometheus/language_provider.ts
* Use querystring to escape the url
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Run golangci-lint in two batches
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CircleCI: Fix typo
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: adds fallback value to time series class
* Chore: changes fallback value from null to empty string in FilterInput component
* Update public/app/core/time_series2.ts
Co-Authored-By: Hugo Häggmark <hugo.haggmark@grafana.com>
* Chore: updates || to ?? operators
Co-authored-by: Lukas Siatka <lukasz.siatka@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Add Tag component
* Add Tag story
* Add TagList
* Group Tab and TabList
* Fix typechecks
* Remove Meta
* Use forwardRef for the Tag
* Add actions instead of console.log
* Add previews
* Theme: Updates the theme to align panel & page background colors
* Updated dashboard settings view to be similar to new panel edit
* Updated themes
* Added shadow
* Updates generated files
* Minor fix to inspect drawer
* Clean up old dashboard setttings stuff
* Polish to search
* Updated truth image
* Minor tweaks to dropdown menu
* Updates and alignments between inspect drawer and explore rich history
* removed unused variables
* Minor tweak to light page header bg
Casually drops 2.0 in a couple of places in the docs so that a reader looking for information about supported SAML version can find it. Since SAML hasn't had any releases since 2005, we don't have to make a big deal out of it.
* Refactor: moves all the newVariables part to features/variables directory
* Feature: adds datasource type
* Tests: adds reducer tests
* Tests: covers data source actions with tests
* Chore: reduces strict null errors
* boilerplate that will be replaced by real code.
* added old editor template.
* added initial version of ad hoc editor.
* added working (apart from add) version of the editor.
* Added placeholder for picker.
* Have a working UI. Need to connect it so we refresh the variables on changes.
* variable should be updated now.
* removed console.log
* made the url work.
* cleaned up the adapter.
* added possiblity to create filter directly from table.
* moved infotext from general reducer to extended value of adhoc.
* fixed strict null errors.
* fixed strict null errors.
* fixed issue where remove was displayed before being added.
* fixed issue with fragment key.
* changed so template_src is using the redux variables.
* minor refactorings.
* moved adhoc picker to adhoc variable.
* adding tests for reducer and fixed bug.
* added tests or urlparser.
* added tests for ad hoc actions.
* added more tests.
* added more tests.
* fixed strict null error.
* fixed copy n pase error.
* added utilit for getting new variable index.
* removed console.log
* added location to reducerTester type and created a module type for it.
* changed so we only have one builder pattern.
* fixed tests to use static expected values.
* fixed strict errors.
* fixed more strict errors.
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Refactor value mappings UI to work better with new panel edit
* TS fix
* Experimenting with tabs in the sidebar
* Small refactor and added Panel general settings
* Merge fixes
* fix fieldOptions being used instead of fieldConfig
* Added icons to tabs (testing)
* Only 3 tabs i think, panel specific options need ot exist in first tab, some style tweaks
* Moved title and no value up
* Updated
* Render panel options in Options tab and add old options styles hack to display those vertically
* Basic settings to Panel settings
* Make nullcheck pass
* Snaps bump
* Fix standard configs not update
* Organise sidebar better, add tmp NewPanelEditorContext to hide duplicate legacy options
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Apply field overrides in PanelChrome
* Move applyFieldOverrides to panel query runner
* Review updates
* Make sure overrides are applied back on souce panel when exiting the new edit mode
* TS ignores in est
* Make field display work in viz repeater
* Review updates
* Review and test updates
* Change the way overrides and trransformations are retrieved in PQR
* Add fieldConfig property to PanelModel
* Dashboard migration v1
* Use field config when exiting new panel edit mode
* Gauge - use fieldConfig from panel model
* FieldDisplayOptions - don's extend FieldConfigSource
* Fix fieldDisplay ts
* StatPanel updated
* Stat panel defaults applied
* Table2 panel options update
* React graph updates
* BarGauge updated
* PieChart, Gauge, BarGauge and Stat updates
* PieChart - remove field config defaults from options
* FieldDisplayEditor - remove unused methos
* PanelModel - remove debugger
* Remove fieldConfig from field options when migrating dashboard
* Update data links migrations
* Update fieldDisaplay tests to respect new fieldConfig
* Update dashboard schema version in snapshots
* Fix BarGaugePanel test
* Rebase fixes
* Add onFieldConfigChange to PanelProps type
* Update shared single stat migration
* Pass PanelModel instead of options only for panel type change handler [breaking]
* Renames
* Don't mutate panel options
* Migrations update
* Remove obsolete snap
* Minor updates after review
* Fix null checks
* Temporarily (until we decide to switch to new pane edit) bring back old aditors
* Temporarily rename ValueMappingEditor and MappingRow to Legacy*
* Migrations update
* Updae setFieldConfigDefaults API
* Update the way field config defaults are applied
* Use standard field config for gauge, bar gauge and stat panels
* refactoring
* Revert dashboard fieldOptions migrations as those are handled by single stat migrator
* Fix ts in tests
* Strict null fix and some minor fixes
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Initial commit
* Visualised renamed or deleted datasources as well, if they have queries
* Pass ds image to card and information if the datasource was removed/renamed
* Set up card with datasource info and change run query
* Style comment, run button
* Fix button naming
* Remember last filters
* Update public/app/core/store.ts
* Update public/app/features/explore/RichHistory/RichHistory.tsx
* Update comments
* Rename datasource to data source
* Add test coverage, fix naming
* Remove unused styles, add feedback info
Co-authored-by: Ivana <ivana.huckova@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* azuremonitor: adds support for workspaces query macro...
...for Azure Logs template variable queries
* docs: azure logs workspaces templating function
* Update docs/sources/features/datasources/azuremonitor.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* docs: convert list into table
* docs: fixes prettier formatting problem
Prettier adds a slash before dollar signs in markdown. Disabling it
for this table with a prettier comment.
https://prettier.io/docs/en/ignore.html
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update export-pdf.md
Minor edits and one question.
* Update docs/sources/enterprise/export-pdf.md
Co-Authored-By: Alexander Zobnin <alexanderzobnin@gmail.com>
* Update export-pdf.md
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
data.Frame (that can be series) are converted to as tsdb.TimeSeriesSlice - so new backend plugins can be shimmed into existing alerting
use sdk v0.31.0
* AlertNotifications: Translate notifications IDs to UIDs in alert Rule builder
* Avoid shadowing errors, raise validation error on non-existing notification id
* create a cache for notification Uids to minimize db overhead
* add cache usage test
* avoid caching empty notification Uids
* isolate db in alert notificationUid caching tests
* WIP: Rollup indiator progress
* Progress
* Progress, can now open inspector with right tab
* changed type and made inspect
* Showing stats
* Progress
* Progress
* Getting ready for v1
* Added option and fixed some strict nulls
* Updated
* Fixed test
* Add unit test coverage
* Add tests to util/richHistory
* Remove unused import
* Remove redundant tests
* Fix tests for components
* Test saving to local storage
* Add boxshadow to container
* Revert "Add boxshadow to container"
This reverts commit 5ca2e850e4.
* Initial commit
* Fix spelling of data sources
* Display sorting value for starred and query tab
* Fix handle color for light theme
* Add close button and fix animation
* Remove toggling of tabs
* Stop event propagation when clicking on comment buttons
* Add title for card functionality
* Remove interpolation for easier searchability of variables
* Improve syncing of comments and starred
* Add modal to check if user wants to permanently delete history
* Fix the height of the query card buttons
* Adjust slider's width based on drawer width
* Add spacing between slider and legend
* Semantic variable naming
* Fix disabled button when live tailing
* Add error handling
* Remove unused imports
* Fix starring, remove useEffect
* Remove emiting of appEvents.alertError in store
* Remove unused imports
* Feature: adds onTimeRangeUpdated to newVariables
* Refactor: removes VariableWithRefresh and unused func
* Refactor: adds console output when something throws as well
* Hide plugins list from viewers
* Made /api/plugins only return core plugins for users with viewer role
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Apply field overrides in PanelChrome
* Move applyFieldOverrides to panel query runner
* Review updates
* Make sure overrides are applied back on souce panel when exiting the new edit mode
* TS ignores in est
* Make field display work in viz repeater
* Review updates
* Review and test updates
* Change the way overrides and trransformations are retrieved in PQR
* Minor updates after review
* Fix null checks
* Start adding admin users list page to redux/react.
* removed unused code.
* added pagination.
* changed so we use the new form styles.
* added tooltip.
* using tagbadge for authlabels.
* remove unused code.
* removed old code.
* Fixed the last feedback on PR.
* Refactor: moves all the newVariables part to features/variables directory
* Feature: adds datasource type
* Tests: adds reducer tests
* Tests: covers data source actions with tests
* Chore: reduces strict null errors
* Explore: turns off actions execution on blur for Loki
* Explore: turns off actions execution on blur for Prometheus
* Explore: updates snapshots for Loki & Prometheus after turning off onBlur
* changed so data query response always it returned in the correct order when using mixed data sources.
* refactored the code to make it a bit simpler and not failing the tests.
* changed to simple array type.
* Docs: export dashboard as PDF
* Update docs/sources/enterprise/_index.md
Co-Authored-By: Leonard Gram <leo@xlson.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
* Revert "API: Fix redirect issue when configured to use a subpath (#21652)" (#22671)
This reverts commit 0e2d874ecf.
* Fix redirect validation (#22675)
* Chore: Add test for parse of app url and app sub url
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Fix redirect: prepend subpath only if it's missing (#22676)
* Validate redirect in login oauth (#22677)
* Fix invalid redirect for authenticated user (#22678)
* Login: Use correct path for OAuth logos
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Explore: adds QueryRowErrors component
* Explore: updates QueryRow to use QueryRowErrors component
* Explore: updates PromQueryField to remove error render
* Explore: updates Elastic query field to remove error render
* Explore: updates LokiQueryFieldForm to remove error render
* Explore: updates QueryRow component - brings back passing errors down
* Explore: removes QueryRowErrors component
* Explore: updates ErrorContainer component - moves out data filtering
* Explore: updates QueryRow component - changes QueryRowErrors to ErrorContainer
* Explore: updates Explore component - adds error filtering for ErrorContainer
* Explore: updates ErrorContainer and adds a basic test for it
* Explore: updates Explore component props name and adds a basic render test
* Explore: adds snapshots for Explore and ErrorContainer
* Explore: adds a test for error render
* Explore: adds a comment to Explore component explaining the way we filter non-query-row-specific errors
* Explore: adds getFirstNonQueryRowSpecificError method to explore utilities
* Explore: extracts getFirstNonQueryRowSpecificError method and slightly refactors Explore component
* Explore: updates Explore component tests to cover non-query-row-specific errors
line 31 : makes user a superadmin : multiple use of 'a' can be avoided for better reading
line 35: User can belong to : remove 'be' it is incorrect
line 51: allow you : typo correction
* Minor changes
* Only exclude installed packages that are not @grafana/e2e itself
* Explicitly load Cypress tsconfig for clarity
* Fix Cypress tsconfig
* it was trying to extend a config that is not published
* it needs to be commonjs
* Explore: Refactor active buttons css
* Explore: Add query history button
* WIP: Creating drawer
* WIP: Create custom drawer (for now)
* Revert changes to Drawer.tsx
* WIP: Layout finished
* Rich History: Set up boilerplate for Settings
* WIP: Query history cards
* Refactor, split components
* Add resizability, interactivity
* Save history to local storage
* Visualise queries from queryhistory local storage
* Set up query history settings
* Refactor
* Create link, un-refactored verison
* Copyable url
* WIP: Add slider
* Commenting feature
* Slider filtration
* Add headings
* Hide Rich history behind feature toggle
* Cleaning up, refactors
* Update tests
* Implement getQueryDisplayText
* Update lockfile for new dependencies
* Update heading based on sorting
* Fix typescript strinctNullCheck errors
* Fix Forms, new forms
* Fixes based on provided feedback
* Fixes, splitting component into two
* Add tooltips, add delete history button
* Clicking on card adds queries to query rows
* Delete history, width of drawers
* UI/UX changes, updates
* Add number of queries to headings, box shadows
* Fix slider, remove feature toggle
* Fix typo in the beta announcement
* Fix how the rich history state is rendered when initialization
* Move updateFilters when activeDatasourceFilter onlyto RichHistory, remove duplicated code
* Fix typescript strictnull errors, not used variables errors
* Fix property descriptions, add missing properties
Fixes incorrect property descriptions, adds missing properties, and adds an up-to-date example.
* Update logo descriptions
Updates the "large" and "small" logo descriptions to specify SVG image type requirement, and that they may be identical
* Update docs/sources/plugins/developing/plugin.json.md
* Refactor the picker to FC
* Remove redundant variable
* currentDashboardId => currentDashboard
* Make isClearable configurable
* Use useAsyncFn for options loading
* Move getDashboards outside of component
* Refactor: Adds variables in state to TemplateSrv
* Refactor: Introduces some typings and structures
* Refactor: Introduces picker to adapter
* Refactor: Removes useState and introduces contains instead
* Refactor: Introduces Variable Editor
* Refactor: Adds uuid and simplifies state
* Refactor: Consolidates to VariableRenderer
* Refactor: Adds name change capability
* Refactor: Adds variableMiddleware
* Refactor: Adds ability to change Angular type to type in State
* Fix: Fixes so we check for duplicate names
* Refactor: Adds ability to change State type to type in Angular
* Refactor: Updates name in dashboard templating list
* Refactor: Adds label change to VariableEditor
* Refactor: Adds hide change to VariableEditor
* Refactor: Adds update ability
* Refactor: Adds tooltip
* Refactor: Adds SelectionOptionsEditor
* Refactor: Adds query editor and validation
* Refactor: Adds regex and sort to editor
* Refactor: Adds Selection options
* Refactor: Adds Varible Values Previewer
* Refactor: Changes from array in state to Record
* Refactor: Removes getVariableAtIndex from templateSrv
* Tests: Fixs broken tests
* Chore: Fixes duplicate merge import
* Refactor: Removes strict null errors
* Refactor: Adds duplicate variable
* Refactor: Adds remove variable
* Refactor: Adds change order of variables
* Refactor: Adds add new variable
* Chore: Fixes Prettier formatting
* Refactor: Adds VariablePicker
* Fixed so sub menu is displayed when we only have redux template variables.
* removed unused variable.
* tags will be visibile in the new react picker.
* added some nice colors to the tags.
* Added thunk for selecting a tag.
* Refactor: Cleans up templating state when dashboard unloads
* Refactor: Adds save capabilities for variables in state
* added possibility to select tag.
* Added so you can deselect a tag.
* Fixed issue with coloring on top.
* minor refactoring to make the code more slim.
* Refactor: Fixes dispatch return and copy of variable
* selecting options when tag i selected
* small refactoring.
* fixed so we use options.
* Refactor: Adds getValueForUrl capabilities
* first implementation of keyboard navigation on picker.
* removed comment.
* fixed so you can toggle all options.
* Refactor: Simplified state handling using Redux Toolkit and flat reducer structure
* Refactor: Adds sharedTemplatingReducer and queryVariableReducer
* Tests: Fixs broken tests
* Chore: Removes some strict null errors
* Tests: Fix broken tests
* Refactor: Splitted QueryVariablePicker into smaller components
* Refactor: Moves linktext and selected tags to component instead
* Fix: Fixes the ability to have multiple dropdowns opened at same time
* Fix: Fixes onKeyDown from prev refactor
* Refactor: Adds searchfilter searching
* Tests: Fixes after running e2e tests
* Refactor: Adds an attempt to solve dependencies at startup
* Refactor: Adds feature toggle
* Refactor: Resets all angular files to master
* Refactor: Move stuff to query folder
* Refactor: Initial commit for SubMenu component
* Refactor: Updated DashboardModel with new list
* Refactor: Adds feature toggle to dashboard model and friends
* Refactor: Adds picker to SubMenu
* Refactor: Fixes styling on SubMenu
* Refactor: Fixes processvariables
* Refactor: Initial EditorList skeleton
* Refactor: Refactors out VariableEditorList and VariableEditorContainer
* Refactor: Adds New variable functionality
* Refactor: Adds registred types
* Refactor: Adds edit existing variable functionality
* Refactor: Changes params to thunks
* Refactor: Small fix for cleaning up state when clicking update/add
* Refactor: Better typings for outer containers
* Refactor: Adds change order functionality
* Refactor: Removed notify angular args
* Change so the url is in sync with the redux template variables.
* Adding support for saving proper values and checking changes.
* Refactor: Adds duplicate variable functionality
* Feature: Adds remove variable functionality
* Refactor: Small refactor so e2e tests work as before
* Refactor: Returns null if no visible variables
* Refactor: Adds annotations to SubMenu
* Refactor: Fixes toggling of annotations in SubMenu
* added dashboard links to new submehu.
* Refactor: Small refactor breaking up into smaller components
* Fix: Fixes infinite recursive loop when changing varible name
* Templating: Do not mutate location query state
* Refactor: Fixes minor timing issue when adding new variable
* Refactor: removes initialization in variable_srv constructor
* Refactor: Suggestion on how to handle templating.list in DashboardExporter
* Refactor: Adds getVariables typings and changes ChangeTracker and ShareSnapshotCtrl
* Refactor: Adds getVariable on DashboardModel and changes DashboardMigrator
* Fix: Fixes repeated panels
* wip: starting to add custom variable type.
* Refactor: Merging two different toVariablePayload functions
* Tests: Fixes broken tests
* Fix: Reduces strict null errors
* Tests: Initial commit and fixes strange dependency order
* Tests: Covers sharedTemplatingReducer with tests
* Refactor: Rename state/index.ts => state/reducers.ts as every where else
* Refactor: Renames and moves adapters.ts
* Tests: Adds tests for templatingReducer
* Tests: Adds intitial tests for queryVariableReducer
* starting to ad custom variable.
* Tests: Adds more queryVariableReducer tests
* Added support for custom variable. Next up applying some DRY principles and refactoring.
* fixed compile issue.
* added todo.
* Tests: Fixes broken test
* Tests: Covers queryVariableReducer with tests and fixed a couple of bugs
* Fix: Fixes broken test
* Fix: Reduces strict null errors
* change so custom won't be depending on anything elese.
* fixed descriptions.
* removed unused dependency.
* Fixed issue when adding a new variable and editor is being unmount twice.
* fixed issue with select option loop.
* changed so we update query on typing in editor and removed it from component state.
* Moved runQuery up one level in the component tree.
* renamed action and moved it to custom actions.
* moved applyStateChanges to shared code.
* removed todo comment.
* first stab on moving picker to more general.
* Refactor: Changes so we always show variables type
* removed duplicate code regarding picker.
* Did some renamings.
* Feature: Adds text box variable type
* moved tests from query reducer to picker reducer.
* Removed picker from VariableState.
* removed reference to picker.
* Some more refactorings of the picker reducer + actions.
* Chore: Refactors away editor state to its own state slice (#22515)
* Refactor: Inital move, tests not working
* Tests: Adds editorReducer tests
* Refactor: Cleaning up
* Refactor: Moves logic to thunk instead
* Refactor: Initial commit
* Refactor: Combines reducers to one state
* Refactor: Adds combine reducers
* moved navigation logic flow to a thunk instead of in the component.
* fixed issue with rendering picker link.
* Refactor: Removes variable prop from templating.variables
* refactored and removed some more code.
* Feature: adds Constant variable type
* fixed so tags can be selected.
* Fix: fixes default hide for constant and enum order
* fixed so tags works again.
* Fix: fixes so we use Angular editor when newVariables is not defined
* Fix: fixes wrong hide default for Constant variable
* Fix: fixes bug when using duplicate button
* Fix: changes action id
* Tests: prepares for newVariables
* Chore: reduces strict null errors
* Refactor: removes uuidInEditorReducer for simplification
* Chore: changes after PR comments
* Chore: uses getConfig instead of config
* Tests: fixes so e2e tests check for feature toggle and fixed initLock bug
* Refactor: changes so sharedReducer uses createSlice instead
* Refactor: changes textBoxVariableReducer to use creactSlice instead
* Refactor: changes queryBoxVariableReducer to use creactSlice instead
* Refactor: changes customVariableReducer to use creactSlice instead
* Refactor: changes constantVariableReducer to use creactSlice instead
* Refactor: moves types to specific types.ts files instead
* changed so we use queryValue stored on the variable to populate options input when opening picker.
* Feature: adds the ability to test templating thunks using real store and middleware
* Chore: cleans up unused import
* excluded queryValue from the getSaveModel
* Refactor: adds whenAsyncActionIsDispatched to reduxTester
* Tests: adds initial tests for processVariables
* Added reducer tests for constant variable.
* added tests for custom reducer.
* added tets for texbox reducer.
* Tests: adds more tests for ProcessVariable
* Refactor: fixes processVariable flow so we do notrun updateOptions twice
* Tests: finishes tests for processVariables and removed skip test
* added actions tests for custom and constant.
* Tests: adds tests for setOptionFromUrl
* Tests: adds a naive variable mock builder
* Tests: adds tests for validateVariableSelectionState
* added tests for query variable actions.
* added last test for query actions.
* added more tests.
* some more tests.
* fixed typing errors.
* Fixed issues with variable tags.
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Minor changes
* Revert CLI to JavaScript
... as Rollup is only accepts ESM modules and TypeScript would need to use the new incremental builds feature which causes weird Redux module errors.
* Adding git publish to toolkit
* grafana-toolkit new feature plugin:github-release
* Feedback from code review
1. Used async await and exec for executing commands
2. Using dist folder to get plugin information
* Reverting change to plugin.json back to original value.
* reverted changes to yarn.lock
* reverted changes to yarn.lock
* feedback from code review
* feedback from code review 2
* moved constants to recommended functions
* styling changes and reverting yarn.lock
* removing changes to package.json
* replced execLine with execa
* better error detection around the publish token
* made simpler with commitHash from build
* Testing showed a number of required changes:
- Make the sha configurable
or through environment variable
or through git config.
- Allow a release to be recreated
- Set name and repo from git config as this is what
ghr is expecting anyway.
- Appropriate errors if the user
tries to run a release without
doing a ci-build and ci-package first.
* Using spinner.
Took out extra dependencies out of project.json
wrote tests manually.
* Updated tests. Now passing
* Adding git publish to toolkit
* grafana-toolkit new feature plugin:github-release
* Feedback from code review
1. Used async await and exec for executing commands
2. Using dist folder to get plugin information
* Reverting change to plugin.json back to original value.
* reverted changes to yarn.lock
* reverted changes to yarn.lock
* feedback from code review
* feedback from code review 2
* moved constants to recommended functions
* styling changes and reverting yarn.lock
* removing changes to package.json
* replced execLine with execa
* better error detection around the publish token
* made simpler with commitHash from build
* Testing showed a number of required changes:
- Make the sha configurable
or through environment variable
or through git config.
- Allow a release to be recreated
- Set name and repo from git config as this is what
ghr is expecting anyway.
- Appropriate errors if the user
tries to run a release without
doing a ci-build and ci-package first.
* Using spinner.
Took out extra dependencies out of project.json
wrote tests manually.
* Updated tests. Now passing
* updated test for reducers, from master
* package.json and yarn.lock from master
* Trigger onchange in case user has edited a custom option, and then clicked outside the react select dropdown
* The width of the label is calculated so that the react select input field could get the same width. However, the react select input font is slightly wider, so we need to make that width a little bit larget than the label.
Use v0.19.0 of SDK.
Support handling of streaming resource response.
Disable gzip/compression middleware for resources
to allow chunked/streaming response to clients the gzip
middleware had to be disabled since it buffers the full
response before sending it to the client.
Closes#22569
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Stats: add active user count query
* License: add info in settings
* Stats: Retrieve active users stats for different roles
+ Clean files and tests
* Stats: add dialect.Quote in queries
* Stats: improve tests (require instead of assert)
* Stats: improve tests (require instead of assert)
* ShareModal: use generic tab type
* ShareModal: able to extend with custom tabs
* ShareModal: able to extend dash/panel tabs separately
* grafana-ui: ModalTabContent component
* Minor changes
* Include Cypress support files in published package
* Added CLI
… with support for custom configurations (which Cypress does not currently support by default):
* Loads cypress.json from @grafana/e2e as a base config (via a custom Cypress plugin)
* Sets default values for project-level Cypress files (tests, etc)
* Optionally loads a cypress.json from the current working directory as overrides
* Updated lockfile
* Add fallback to search_base_dns if group_search_base_dns is undefined.
refs: #20862
* removed newline to make lint-go happy
* Added requested changes on ldap.md for last commit
Refs: #21263
* Docs: Adding a Markdown Style Guide
What this PR does / why we need it: This request builds a markdown style guide for writers documenting information about Grafana services for users.
This PR serves the need to make documentation and READMEs more consistent and maintainable.
Which issue(s) this PR fixes: This request fixes the issue grafana#19592
Fixes grafana#19592
Special notes for your reviewer:
@marcusolsson and @oddlittlebird, sorry for the delay. I've set up the style guide, and it is ready for review, or additional sections.
* Docs: Adding a Markdown Style Guide
What this PR does / why we need it: This request builds a markdown style guide for writers documenting information about Grafana services for users.
This PR serves the need to make documentation and READMEs more consistent and maintainable.
Which issue(s) this PR fixes: This request fixes the issue grafana#19592
Fixes grafana#19592
Special notes for your reviewer:
@marcusolsson and @oddlittlebird, sorry for the delay. I've set up the style guide, and it is ready for review, or additional sections.
* Docs: fixing typos and char repetition
Editing some typos in the text, and removing the repetition of A and B characters that appeared in the file.
* Docs: Changing content following review of new Markdown Style Guide
- adjustment to headings to sentence case.
- adding an introduction
- removing punctuation content
- making suggested word and punctuation fixes
Fixes#19592
* Add new form styles to dashboard picker
* Use Forms.Select for TimeZonePicker
* Use new form elements for DashboardPicker
* Grafana UI: Extract types from SelectBase, add utils.ts
* Grafana UI: Fix imports
* Grafana UI: Add support for value of type number
* Grafana UI: tweak value search function
* Grafana UI: Add tests for findSelectedValue
* Grafana UI: Add tests for cleanValue
* Grafana UI: Remove redundant check
* Grafana UI: Order imports
* Grafana-UI: Fix TimeZonePicker.story.tsx
* Grafana-UI: Fix timezone value
* Fix merge
* Grafana-UI: Use Cascader vs Forms.Select for TimeZonePicker
* Grafana-UI: Add default size props
Moves common request proxy utilities to proxyutil package with
support for removing X-Forwarded-Host, X-Forwarded-Port,
X-Forwarded-Proto headers, setting X-Forwarded-For header
and cleaning Cookie header.
Using the proxyutil package to prepare and clean request
headers before resource calls.
Closes#21512
* Add mechanism for imperatively showing modals
* Migration work in progress
* Reorganise save modal components
* use app events emmiter instead of root scope one
* Add center alignment to layoout component
* Make save buttons wotk
* Prettier
* Remove save dashboard logic from dashboard srv
* Remove unused code
* Dont show error notifications
* Save modal when dashboard is overwritten
* For tweaks
* Folder picker tweaks
* Save dashboard tweaks
* Copy provisioned dashboard to clipboard
* Enable saving dashboard json to file
* Use SaveDashboardAsButton
* Review
* Align buttons in dashboard settings
* Migrate SaveDashboardAs tests
* TS fixes
* SaveDashboardForm tests migrated
* Fixe some failing tests
* Fix folder picker tests
* Fix HistoryListCtrl tests
* Remove old import
* Enable fixed positioning for folder picker select menu
* Modal: show react modals with appEvents
* Open react modals using event
* Move save dashboard modals to dashboard feature
* Make e2e pass
* Update public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx
* Hacking old vs new buttons to make all the things look like it's old good Grafana ;)
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* clean PR #17366
* udpate vendor
* [WIP] Implement projects management for stackdriver
* [WIP] Implement projects management for stackdriver
* [WIP] Implement projects management for stackdriver
* Implement projects management for stackdriver
* [WIP][Tests] Fix errors
* clean anonymous struct
* remove await
* don't store project list
* Add default project on query editor
* gofmt
* Fix tests
* Move test data source to backend
* Use segment instead of dropdown. remove ensure default project since it's not being used anymore.
* Fix broken annotation editor
* Load gceDefaultAccount only once when in the config page
* Reset error message on auth type change
* Add metric find query for projects
* Remove debug code
* Fix broken tests
* Fix typings
* Fix lint error
* Slightly different approach - now having a distiction between config page default project, and project that is selectable from the dropdown in the query editor.
* Fix broken tests
* Attempt to fix strict ts errors
* Prevent state from being set multiple times
* Remove noOptionsMessage since it seems to be obosolete in react select
* One more attempt to solve ts strict error
* Interpolate project template variable. Make sure its loaded correctly when opening variable query editor first time
* Implicit any fix
* fix: typescript strict null check fixes
* Return empty array in case project endpoint fails
* Rename project to projectName to prevent clashing with legacy query prop
* Fix broken test
* fix: Stackdriver - template replace on filter label
should have a regex format as that escapes the dots
in the label name which is not valid.
Co-authored-by: Labesse Kévin <kevin@labesse.me>
Co-authored-by: Elias Cédric Laouiti <elias@abtasty.com>
Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
* Elastic: To get fields, start with today's index and go backwards
* Elastic: distinguish non-existing indices from other issues; change index traversal from recursive to iterative; go through a max of 7 days
* Elastic: fix the comments
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Inital commit with new page
* Make routing work
* Correct field
* Move submit button and fix routing after signup
* Remove comments
* Fix feedback
* Undo mistake
This feature would provide a way for administrators to limit the minimum
dashboard refresh interval globally.
Filters out the refresh intervals available in the time picker that are lower
than the set minimum refresh interval in the configuration .ini file
Adds the minimum refresh interval as available in the time picker.
If the user tries to enter a refresh interval that is lower than the minimum
in the URL, defaults to the minimum interval.
When trying to update the JSON via the API, rejects the update if the
dashboard's refresh interval is lower than the minimum.
When trying to update a dashboard via provisioning having a lower
refresh interval than the minimum, defaults to the minimum interval
and logs a warning.
Fixes#3356
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* NewPanelEdit: Added angular options to new panel editor and started looking and angular component state
* Moved angular component state to redux
* Close to working 100%
* Think everything is working
* AlertTab: Alert tab now gets angularComponent from redux
* Fixed panel menu access to angular panel component
* Added new tests
* Fixed unit test
* Fixed strict null errors
* Fixed typescript issues
* fixed issues
* Specify usage of datasource whitelist
Added a sentence explaining the data_source_proxy_whitelist property does not have any effect on pgsql mssql and mysql.
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* trying out api-extractor.
* works with our setup of build.
* wip.
* changed the packages so it works better with the api-extractor.
* Changes to make the api-extractor to work.
* cleaned up the api-extractor config files.
* added some more documentation.
* added tsdoc-metadata to gitignore.
* removed the generated docs (will do that in another PR).
* added execute permission to script for generating dosc.
* added so we will push generated docs to branch.
* will clean packages_api on abort.
* Fixed failing tests.
* fixed formatting issue with typedoc comment.
* temporarily disabled tslint rules about namespace until https://github.com/microsoft/rushstack/issues/1029 is resolved
* temporary enabled bable namespaces.
* updated build script.
* updated script.
* updated script with some colors.
* changed to camelCase.
* removed spacing.
* Starting to add documentation guidelines.
* added examples headline.
* added menu options.
* added parameters and return values.
* Fixed merge error.
* Added first version of auto-generated docs.
* changed so we use the eslint ignore syntax.
* changed to correct eslint ingnore comment.
* fixed some spelling errors reported by codespell.
* added script to generate docs in current folder.
* updated api docs.
* lerna bootstrap.
* added eror to the ingore words list.
* removed file that should be ignored.
* updated locKFILE.
* referenced the code comments guidelines.
* updated packages.
* updated deps.
* updated the autogenerated dosc.
* adding missing new line.
* trying out api-extractor.
* works with our setup of build.
* wip.
* changed the packages so it works better with the api-extractor.
* Changes to make the api-extractor to work.
* cleaned up the api-extractor config files.
* added some more documentation.
* added tsdoc-metadata to gitignore.
* removed the generated docs (will do that in another PR).
* added execute permission to script for generating dosc.
* added so we will push generated docs to branch.
* will clean packages_api on abort.
* Fixed failing tests.
* fixed formatting issue with typedoc comment.
* temporarily disabled tslint rules about namespace until https://github.com/microsoft/rushstack/issues/1029 is resolved
* temporary enabled bable namespaces.
* updated build script.
* updated script.
* updated script with some colors.
* changed to camelCase.
* removed spacing.
* Starting to add documentation guidelines.
* added examples headline.
* added parameters and return values.
* Fixed merge error.
* changed so we use the eslint ignore syntax.
* changed to correct eslint ingnore comment.
* fixed some spelling errors reported by codespell.
* added script to generate docs in current folder.
* lerna bootstrap.
* removed file that should be ignored.
* updated locKFILE.
* referenced the code comments guidelines.
* updated packages.
* updated deps.
* Docs: Add info on active LDAP sync
* Update docs/sources/enterprise/enhanced_ldap.md
Co-Authored-By: Leonard Gram <leo@xlson.com>
* Docs: remove usage of "he" in LDAP sync
Co-authored-by: Leonard Gram <leo@xlson.com>
* Adding new svg for back arrow button
* Created new back button component
* same stroke width
* minor fix
* Style changes
* hover animation
* Minor tweak
* Suggesting couple of changes to the document
Line 15 should be modified to use your application instead of an application, same way it is being used in other auth docs.
typo in line 76, can is repeated twice . Correcting that typo
* Update docs/sources/auth/gitlab.md
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update gitlab.md
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Add new form and functionality
* Add new files
* Connect to Redux and add navigation stuff
* Add required login/name
* Remove import
* Fix feedback
* Replace direct button spacing with HorizontalGroup
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Couple of changes to the document
Correcting a typo in line 53
Line 226 should be re-written as "To easily configure"
* Update docs/sources/auth/generic-oauth.md
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
By storing render key in remote cache it will enable
image renderer to use public facing url or load
balancer url to render images and thereby remove
the requirement of image renderer having to use the
url of the originating Grafana instance when running
HA setup (multiple Grafana instances).
Fixes#17704
Ref grafana/grafana-image-renderer#91
Suppresses stacktrace in recovery middleware if error is
http.ErrAbortHandler.
Skips writing response error in recovery middleware if
resoonse have already been written.
Skips try rotate of auth token if response have already
been written.
Skips adding default response headers if response have
already been written.
Fixes#15728
Ref #18082
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Put the cipher suites with Forward Secrecy at or nearer the top, keeping any TLS v1.3 suites at the top, following best practice guides for the ordering of the rest. There is no change to the selection of suites only reordering.
Now any errors logged by http.ReverseProxy are forwarded to
Grafana's logger and includes more contextual information like
level (error), user id, org id, username, proxy path, referer and
IP address.
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* fixed issues with timepicker closing when month is changed.
* removed console.logs.
* fixed so calendar isn't changing size when selecting several dates.
* Prevent calendar from closing when changing year.
* fixed according to PR feedback.
* Update timeseries.md
Update to docs-imagebox for the image link.
* Update docs/sources/guides/timeseries.md
Co-Authored-By: Marcus Olsson <olsson.e.marcus@gmail.com>
Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
if the client closes the connection we should not
rotate token since the client will never receive the
new token.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Start Angular migration
* Add SignupCtrl
* Change name signup
* Add backend call
* Put form in separate file
* Add form model
* Start using react-hook-forms
* Add FormModel to state
* Reduxify
* Connect nav with Redux
* Fix routing and navModel
* Fetch state options on mount
* Add default values and add button margin
* Add errror messages
* Fix title
* Remove files and cleanup
* Add Signup tests
* Add boot config assingnAutoOrg and verifyEmailEnabled
* Remove onmount call
* Remove ctrl and move everything to SignupForm
* Make routeParams optional for testing
* Remove name if it is empty
* Set username
* Make function component
* Fix subpath issues and add link button
* Move redux to SignupPage
* Add color theme and serve static files for storybook
* Add color theme and serve static files for storybook
* Export dark and light theme
* Add storybook-dark-mode package
* Add theme toggle functionality
* Toggle story theme too
* Remove unused import
* webpack config changes not needed
* initial wip
* Progress on new threshold design
* Testing radio button group for mode option
* Starting to come together
* Fixed percent mode
* Full width radio groups
* Minor tweaks, cursor to trash icon and hover state
* fixed unit tests
* Fixed storybook
* re-ordering fields
* Updated snapshot
* Make it consistent, add vs create
* first things
* rename
* add stats, remove table related changes
* header size and expand icon
* add case for nan request time
* fixing null checks
* reverting changes to table
* fix background on header
* Some small fixes after review
* do not use formInputBg
* test apply
* test apply
* Move standard field config editor registry to grafana-data
* merge master
* Apply field config defaults
* Make field and dataFrameIndex optional on on FieldOverrideContext
* Apply custom field config overrides
* Gauge - make sure thresholds are set
* Move series and field scoped vars calculation
* Enable template variables interpolation in title fields
* Expose standars field configs from grafana ui via function
* Add missing option to the config for the min value to be derived from field values
* Fix ts issue
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Suggesting few changes to the doc
1. Note should be followed by a dot (.)
2. Correcting a typo in default
3. Re-writing sub sentence to make reading better
* Update docs/sources/installation/configuration.md
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
* Update configuration.md
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Idea is to provide information to the user that query can be executed on any data source that is available in grafana, therefore suggested little modification
* PanelEdit: Fixed timing and state related issues
* Added unit test and changed some logic
* Fixed id logic
* Updated snapshots
* Update public/app/features/dashboard/state/PanelModel.ts
Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Angular/React: Migrates FolderPicker from angular to react
* move to core
* snap
* minor changes
* more removes
* Managing creating new and saving in movetofolderctrl
* Do not use new forms.field, fix select menu
* FolderPicker responsible to creating new folder
* create new as prop
* snap
* remove unnecessary things
* remove console log
* snap
* fix null checks
* add search debouncing
* set folder to state, null check
* typing folder
* adding case for loadOptions
* snap
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
* Implement Azure AD oauth
* Use go-jose and cleanup
* Update go-jose in go.mod
* cleanup
* Add unit tests
* Fix scopes
* Add documentation page
* Improve documentation
* Convert extract_role into function.
* Do not use upn and replace unique_name with preferred_username
* Configure login button
* Use official microsoft icon and color from branding guideline.
* Add Azure AD config section in sample.ini.
* Loki, Prometheus: Fix syntax to not highlight # in quotes as a comment in queryField
* Loki, Prometheus: Fix syntax to not highlight # in quotes as a comment in queryField
* Fix regex
* PromQL, LogQL: Update syntax
* LogQL, PromQL highlighting: Add tests
* Annotations: Makes various annotation and alert calls cancelable
Fixes#21943
* Refactor: Uses backendSrv.get method with requestId instead
* Update public/app/features/annotations/annotations_srv.ts
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Forms/RadioButtonGroup: Improves semantics and simplifies CSS
- Changes base element to radio input for improved semantics & automatic keyboard support
- Simplifies CSS
* Docs: add LDAP active sync limitation for single bind
* Docs: update header for LDAP active sync limitation
Co-Authored-By: Leonard Gram <leo@xlson.com>
* Make $__range more precise in Prometheus
It is now always equivalent to `${__range_s}s`, rather than rounding
down to an integer multiple of the biggest possible unit. For example,
a range of 47 hours is now represented as `169200s` rather than `1d`.
Closes#21689.
* Update a unit test to match new __range calc
* Move data links suggestions to grafana-data
* Data links - field config and overrides
* Lint
* Fix test
* Add variable suggestions to field override context
* Revert "Move data links suggestions to grafana-data"
This reverts commit 5d8d01a65e.
* Move FieldConfigEditor to core
- Fix bug with NaN in alerting - Closes#21953
- Alert reducers (avg/max/etc) drop null values from their calculation. This change makes it so NaN values are handled in the same way as null values.
* Grafana-UI: Add caret to the picker
* Grafana-UI: Customise popup's font-size and border-color
* Grafana-UI: Replace highlight background with border color
* Grafana-UI: Use stylesFactory vs inline classes
* Grafana-UI: Import stylesFactory from themes vs index
* Assure base url when single stat, panel and data links are built
* Update public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx
* Update public/app/features/panel/panellinks/link_srv.ts
* Update public/app/features/panel/panellinks/link_srv.ts
* Update public/app/features/panel/panellinks/link_srv.ts
* Update public/app/features/panel/panellinks/link_srv.ts
* Review updates
* Remove unnecessary code
* Add title editor
* Wip
* FIeld config overrides UI (v1)
* Basic property override editors
* name to prop
* use prop not path
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* WIP: Angular panel chrome, this is going to be tricky
* AngularPanelChrome: initial render works
* Options are showing up
* viz options working
* Fixed singlestat background
* AngularPanels: Fixed alert tab
* Removed anuglar loading spinner
* Dashboard: Refactor dashboard reducer & actions
* Dashboard: minor refactoring
* PanelChrome: loading state moved to header
* Subscribe to render events to solve title update issue
* Time info and query errors now works
* PanelHeader: unifying angular and react behavior
* added getPanelMenu test
* Scrollable now works again
* Various fixes
* Making stuff work
* seperate event emitter for angular
* Fixed issue sending updated dimensions to angular panel
* Minor tweaks
* Fixed tests
* Alerting: alert state now works
* Fixed unit tests
* Fixed a few null check errors
* Simplified events handling
* Fixed strict null checks
* initial POC
* fix import
* field config editor in the sidebar
* field config editor in the sidebar
* field config editor in the sidebar
* sidebar
* include threshold in sidebar
* include threshold in sidebar
* include threshold in sidebar
* init to empty threshold
* merge
* Make sure editor is fully rendered when page is refreshed
* use scrollbars
* add matcher UI folder
* remove
* Field options basic editors
* Removed deebugger
* Make number field editor controlled
* Update public/app/features/dashboard/state/PanelModel.ts
* Update public/app/plugins/panel/gauge/GaugePanel.tsx
* Ready for production
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Add an early exit
* Fix issue with blur and only display label
* Remove unused code
* Enabled custom value
* Update test
* Add custom value creating according to #21869
* Alphabetized tslint and tsconfig files
* Optimized tsconfig files
* Optimized editorconfig & prettier config files
… to reduce redundancy
* Switched to @grafana/tsconfig
… and:
* de-duped options
* removed options with default values
* Fixed nasty issue with types for nested slate-react
* Replaced TSLint with ESLint
* TSLint disables → ESLint disables
… also JSHint removals, which haven’t had an affect since it was replaced with TSLint.
* Compliances for ESLint, Prettier and TypeScript
* Updated lockfile
* First attempt
* Save confirmation with discard option, reusing queriess a little bit differently
* simplify cloning panels and restoring last results in panel query runner
* Remove save button
* Update public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx
* Exit/discard buttons
* Update snaps
* Review comments
* Fix lint
* Explore: updates grafana-data explore query field props with explore mode
* Explore: updates query row to pass down explore mode to query fields
* Explore: adds LokiExploreQueryEditor
* Explore: updates loki query field form to render children
* Explore: adds loki explore extra field component
* Explore: adds extra field element to loki query field form
* Explore: updates loki explore query editor to use extra field element
* Explore: moves ExploreMode to grafana-data
* Explore: updates query row limit string
* Explore: adds maxLines to DataQuery
* Explore: adds maxLines to loki datasource runRangeQueryWithFallback
* Explore: adds onChangeQueryLimit to LokiExploreQueryEditor
* Explore: updates loki explore query editor to render extra field only in logs mode
* Explore: fixes query limits for live and legacy queries
* Explore: fixes result processor max lines limit in get logs result
* Explore: fixes Loki datasource limit test
* Explore: removes unnecessary ExploreMode from Loki language provider
* Explore: fixes formatting
* Explore: updates grafana-data datasource types - replaces strings with explore mode enum
* Explore: updates loki explore query field props to take ReactNode
* Explore: updates the way we calculate loki query lines limit to fall back to 0 lines on negative or invalid input instead of datasource maxLines
* Explore: updates result processor get logs result method to avoid counting invalid/negative line limits
* Explore: updates loki result transformer to process only an appropriate slice of a result instead of an entire one
* Explore: adds a method for query limit preprocessing/mapping
* Explore: updates loki datasource run range query with fallback method to use options.maxDataPoints in dashboards
* Explore: removes unnecessary maxlineslimt from getLogsResult in resultProcessor
* Explore: moves line limit to metadata
* Explore: adds an ability to specify input type of extra field
* Explore: updates LokiExploreQueryEditor - adds an input type
* Explore: updates LokiExploreQueryEditor to run queries when maxLines is positive
* Explore: fixes failing import of ExploreMode
* Explore: fixes reducers test imports formatting
* Explore: updates Loki extra field with min value set to 0
* Explore: exports LokiExploreExtraFieldProps
* Explore: adds render test of LokiExploreQueryEditor
* Explore: adds LokiExploreQueryEditor snapshot
* Explore: updates LokiExploreQueryEditor onChangeQueryLimit method to prevent it from running when query input is empty - fixes cheatsheet display issue
* Explore: updates Loki editor snapshots
* Explore: fixes typo in test set name in LokiExploreQueryEditor
* Explore: adds a render test of LokiExploreExtraField
* Explore: fixes typo in LokiExploreQueryEditor
* Explore: updates LokiExploreQueryEditor snapshot due to timezone issues
* Explore: updates LokiExploreExtraField to export both functional component and a version using memo
* Explore: updates LokiExploreQueryEditor to export both functional component and memoized function
* Explore: updates LokiExploreQueryEditor - removes unnecessary react fragment
* Explore: updates LokiExploreQueryEditor snapshot
* Explore: adds LokiExploreQueryEditor tests for different explore mode cases
* Explore: fixes Loki datasource and result transformer
* Explore: updates LokiExploreQueryEditor snapshot
* Explore: updates LokiExploreQueryEditor tests and test setup
* Explore: updates LokiExploreQueryEditor - refactors component
* Explore: updates LokiExploreQueryEditor to use default import from LokiExploreExtraField
* Explore: updates LokiExploreQueryEditor snapshot
* Explore: fixes formatting
* Explore: updates LokiExploreQueryEditor max lines change
* Explore: updates LokiExploreQueryEditor tests checking ExtraFieldElement
* Explore: adds mock loki datasource to LokiExploreQueryEditor
* Explore: updates LokiExploreQueryEditor test mock - adds language provider
* Explore: updates LokiExploreQueryEditor snapshot
* Explore: updates Loki ResultTransformer to filter out rows on limit - logic to be moved into a component with new form styles
* Explore: updates LokiExploreQueryEditor tests
It was missing for ldap_login which means that the first signup failed
for users with LDAP+quota enabled. There's also potential cases where we
can't provide a request context (background jobs) which is also covered,
but needs a refactoring.
Drop indices and create new ones and rewrites annotation find query
to address performance issues when querying annotation table and
there is a large amount of rows.
Fixes#21902
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Kyle Brandt <kyle@kbrandt.com>
* CircleCI: Move postgres/mysql integration tests to step after linting
* CircleCI: Implement publishing of packages and Docker images for new master pipeline
* DatasourceEditor: Add UI to edit custom HTTP headers
Support for custom headers was added in #11643 but was missing in the UI.
Fixes#12779
* Review
* Layout updates
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
One has to use "grafana/grafana" image - only using "grafana" will
result in an error message like this:
Error response from daemon: pull access denied for grafana, repository does not exist or may require 'docker login'
It's a good idea to daemonize new container. The install instructions
for Docker do this, and this instructions assume that running container
already is daemonized (otherwise you wouldn't have to stop it).
Best practise would be to create a new container, then stop old one and
start new one - this would reduce downtime. To keep instructions simple
and understandable, I didn't include that.
* Add new global built-in variables #20523
new branch from master
* #20523 Revert change on __from and __to like requested
* #20523 simplify contextSrv access
* #20523 simplify contextSrv access
* #20523 repair jest tests
This is to make the custom dockerfiles compatible with our instruction
to use persitent volumes for the /var/lib/grafana dir. Without this
change the contents of that folder will be overshadowed by the persitent
volume and none of the pre-installed plugins will be available.
* Applied prettier to relevant webpack configs
* Replaced ng-annotate with babel-plugin-angularjs-annotate
… and replaced ts-loader with @preset/typescript
* Removed redundant import
… that is problematic with Babel's module resolver
* Updated lockfile
* Traspile debug package to es5 for PhantomJS support
* Update babel to latest version
* Remove @babel/poolyfill and url search params polyfill
* Add ts-loader to grafana-ui dependencies
* Update prod webpack build to use cor-js 3
* Applied prettier to relevant webpack configs
* Replaced ng-annotate with babel-plugin-angularjs-annotate
… and replaced ts-loader with @preset/typescript
* Updated lockfile
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Docs: Add information about license expiration
* Docs: Improve clarity of license expiration page
* review comments
* change renewal instructions to a list
* language improvements
* review fixes
* add error tab
* conditional tabs
* feedback from review
* expose lastResult via function
* remove todo and weird char
* fixing overflow states and height of tabcontent
* style fixes
* more changes to scroll handling
* fixing null checks
* Change drawer content padding
* Add scroll in the story
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Fixed issue where gauge throw error on empty result.
* Some refactorings to improve the code.
* Added some tests to make sure this doesn't happen again.
This is a small documentation update for the situation that led to
#19842 in the first place. It describes a procedure required to
provide root certificates to the headless Chrome instance used
by the Grafana image renderer plugin.
* Replace bash/json with http in http_api codeblocks
Since http is used elsewhere on the API docs and makes the
markdown rendering look different on the blocks that use bash/json
* Fix the annotations API link on 'Features'
- Noticed the Features/Dashboard Features/Annotations link pointing to
the HTTP API was linking itself instead of '../http_api/annotations.md'.
- Also add a link on Dashboard Export and Import to its HTTP API.
* Add missing links to features in API Index
Noticed there was 3 missing references in the API docs index.
- https://grafana.com/docs/grafana/latest/http_api/playlist
- https://grafana.com/docs/grafana/latest/http_api/datasource_permissions
- https://grafana.com/docs/grafana/latest/http_api/external_group_sync
Last two are Grafana Enterprise -only, so created a separate subsection
for them.
* Add info about meta data labels
* Add part about auto period calculations in cloudwatch
* Minor adjustments
* Updates after feedback
* Add more context
* Clarify what a metadata label is
* BackendSrv: Adds status, headers, statusText, redirect, type and url back to response
Fixes#21662
* BackendSrv: Adds request object back to datasourceRequest response
Fixes#21662
* Docs: gitlab team-sync documented correctly
* docs: initial docs for whitelabeling
* Docs: enterprise repositories
* Docs: rpm enterprise install
* Docs: re-structured the rpm install page to be more similar to the deb page
* Docs: responded to review feedback
* Docs: recommends the enterprise edition
* Update docs/sources/installation/debian.md
Add support for passing tags to Pagerduty and allow notification
on specific event categories such as Class, Group and Component.
Ref #19912, #19913
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
In 043bb59 a URLSearchParams usage was introduced which is not supported by PhantomJS. @babel/polyfill(deprecated) does not contain polyfill for URLSearchParams, hence the code (and Prometheus graphs rendering) was failing in PhantomJS environment.
The solution is to add https://www.npmjs.com/package/url-search-params-polyfill that takes care of the URLSearchParams
* Create basic react page for AdminUserCreate
* Forms.Field - render asterisk when field is marked as required
* Add validation to user create form wih react-hook-form
* Remove Angular code for UserCreatePage
* Remove commented route for admin settings
* Remove unused import
* Hide react-hooks-form behind Form component
* Fix webkit autofill
* Webkit autofill on inpiuts - bring back focus shadow
* Temporarily fix story (before 21635 is merged)
* Form: docs and minor updates to new form elements (#21635)
* Allow Switch, checkbox to be uncontrolled, forward refs, styles update
* Add Form docs
* User create page update
* Remove unused import
* Apply review notes
* Docs: Whats new updates
* Add cloudwatch and stackdriver paragraphs
* Minor changes
* Add link helper to render gif
* Docs: what's new updates
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
* Changelod: v6.6.0-beta1
* Changelog: grafana/ui v6.6.0-beta.1.0
* Changelog: moved toolkit to its own file
* Changelog: fix version
* Remove closed PR
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Chore: Remove angular dependency from backendSrv
* Refactor: Naive soultion for logging out unauthorized users
* Refactor: Restructures to different streams
* Refactor: Restructures datasourceRequest
* Refactor: Flipped back if statement
* Refactor: Extracted getFromFetchStream
* Refactor: Extracts toFailureStream operation
* Refactor: Fixes issue when options.params contains arrays
* Refactor: Fixes broken test (but we need a lot more)
* Refactor: Adds explaining comments
* Refactor: Adds latest RxJs version so cancellations work
* Refactor: Cleans up the takeUntil code
* Refactor: Adds tests for request function
* Refactor: Separates into smaller functions
* Refactor: Adds last error tests
* Started to changed so we require getBackendSrv from the @grafana-runtime when applicable.
* Using the getBackendSrv from @grafana/runtime.
* Changed so we use the getBackendSrv from the @grafana-runtime when possible.
* Fixed so Server Admin -> Orgs works again.
* Removed unused dependency.
* Fixed digest issues on the Server Admin -> Users page.
* Fix: Fixes digest problems in Playlists
* Fix: Fixes digest issues in VersionHistory
* Tests: Fixes broken tests
* Fix: Fixes digest issues in Alerting => Notification channels
* Fixed digest issues on the Intive page.
* Fixed so we run digest after password reset email sent.
* Fixed digest issue when trying to sign up account.
* Fixed so the Server Admin -> Edit Org works with backendSrv
* Fixed so Server Admin -> Users works with backend srv.
* Fixed digest issues in Server Admin -> Orgs
* Fix: Fixes digest issues in DashList plugin
* Fixed digest issues on Server Admin -> users.
* Fix: Fixes digest issues with Snapshots
* Fixed digest issue when deleting a user.
* Fix: Fixes digest issues with dashLink
* Chore: Changes RxJs version to 6.5.4 which includes the same cancellation fix
* Fix: Fixes digest issue when toggling folder in manage dashboards
* Fix: Fixes bug in executeInOrder
* Fix: Fixes digest issue with CreateFolderCtrl and FolderDashboardsCtrl
* Fix: Fixes tslint error in test
* Refactor: Changes default behaviour for emitted messages as before migration
* Fix: Fixes various digest issues when saving, starring or deleting dashboards
* Fix: Fixes digest issues with FolderPickerCtrl
* Fixed digest issue.
* Fixed digest issues.
* Fixed issues with angular digest.
* Removed the this.digest pattern.
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* CI: ee msi build
* shellcheck
* Fake it so that we get a ee msi build on pull request runs
* fix error in prep job
* save msi for testing
* get enterprise zip
* Fixes to version and hash detection.
* Removes ci test code
As part of the new improvements to JMESPath in #17149 a
commit ensuring Role and Email data could be queried from
id_token was lost.
This refactors and fixes extracting from both token and user
info api consistently where before only either token or
either user info api was used for extracting data/attributes.
Fixes#20243
Co-authored-by: Timo Wendt <timo@tjwendt.de>
Co-authored-by: twendt <timo@tjwendt.de>
Co-authored-by: henninge <henning@eggers.name>
Co-Authored-by: Henning Eggers <henning.eggers@inovex.de>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
6.2-beta1 changed so that data sources, dashboards and alert notifiers
are provisioned on service Init where's before only data sources and
alert notifiers was provisioned on service Init and dashboards was first
provisioned in service Run which happens after Grafana server have
started.
This change reverts so that dashboard provisioning are first happening
in service Run, after Grafana server have started.
Fixes#21133
* Calculate min period based on time range and no of queries
* Use hardcoded array of periods if period is not defined actively by the user
* Fix broken tests
* Use a smaller max period for auto interval
* Fix broken tests
* Test period calculation
* Test min retention period
* Fix broken test
* Applied prettier to some webpack configs
* Removed ng-annotate
… and used same annotation approach as webpack.hot.js
* Removed redundant import
… that is problematic with Babel's module resolver
* Updated lockfile
* Replace ts-loader with babel-loader in webpack.dev
* Change tslint-loade order in dev webpack config
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Rewrite angular segments for filter and group by in react
* wip: refactoring
* Update metric find queries
* Remove old maps used to create labels - use one map for all types instead
* Use value as label (again) for filters ang groupby
* Remove old filter
* Remove not used code
* Fixes after pr feedback
* Fix broken tests and add new metadata tests
* Add index file to make imports cleaner
* Cleanup. Remove old angular filter code
* Fix broken tests
* Use type switching instead of if statements
* Use globals for regex
* Updates after pr feedback
* Make sure it's possible to filter using the same key multiple times
* Replace metric select with segment component
* Pass template vars as props
* Refactor meta labels code
* Reorder template variables
* Fix broken tests
* Reset metric value when changing service
* Fix lint issue.
* Make tests independant of element order
* Include kubernetes.io in regex
* Add instruction in help section
* svc alerting - use a shorter ctx to upload the img
This will prevent timeout on img upload to cancel the notifications from being sent
* components img uploader - pass the ctx to aws lib
* make webdavuploader use the ctx
* make azureblobuploader use the ctx
* rename uploadImage() to renderAndUploadImage()
for better clarity about what this method work
* Use timeout + 2s for plugin renderer (same as service and phantomjs)
* Make sure that original EvalContext is updated after render and upload
* Verify notification sent even if render or image upload times out
* fix lint
* fixes after review
Co-authored-by: Edouard Hur <3418467+hekmon@users.noreply.github.com>
Fixes#21018
* Rename old cascader
* Change name of old cascader
* Add basic cascader without search
* Add basic cascader without search
* Flatten options to make it searchable
* Add regex search and make backspace work
* Add barebone search without styles
* Add SearchResult list
* Add search navigation
* Rewrite of cascader and add some things to SelectBase
* Make SelectBase controlllable
* Cleanup
* Add initial value functionality
* Add onblur to hand caret direction
* New storyboom format for ButtonCascader
* Add knobs to story
* Add story and docs for UnitPicker
* Make UnitPicker use Cascader
* Fix backspace issue and empty value
* Fix backspace issue for real
* Remove unused code
* Fix focus issue
* Change children to items and remove ButtonCascaderProps
* Remove local CascaderOption
* Fix failed test
* Revert UnitPicker changes and change format for ButtonCascader
* Fix failing tests
* Update mac.md
Reviewed and edited macOS install instructions.
* Updated mac.md and configuration.md
Removed developer build instructions from mac.md and moved configuration information from mac.md to configuration.md.
* Update mac.md
Updated to reflect the new fields on the Downloads page
* Update mac.md
* Update mac.md
* wrap content in autosizer
* replace lib
* removing react-virtualized, correct type in editor.ts
* remove caret
* remove dep from grafana/ui and remove story util
* Clarify readme for extended webpack config
* Add support for ES2019 features
* Build task: path.resolve → resolvePath
* Build task: avoid fs race conditions
* Build task: use async fs functions
* Build task: use rimraf directly
... because depending on the workspace parent to have it installed is fragile, and a child process is always slower.
* Build task: misc
* wip: react rewrite
* Cleanup
* Break out non annontations specific fields
* Cleanup. Make annontations editor a functional component
* Remove redundant classnames
* Add paneldata to props
* Cleanup
* Fix rebase merge problem
* Updates after pr feedback
* Fix conflict with master
Adds support for collecting metrics from backend plugins and
exposing them thru Grafana's Prometheus metrics endpoint.
Enables to check health of backend plugin by using the route
`/api/plugins/<plugin id>/health`.
Uses sdk v0.6.0.
Closes#20984
By rotating the auth tokens at the end of the request we ensure
that there is minimum delay between a new token being generated
and the client receiving it.
Adds auth token slow load test which uses random latency for all
tsdb queries..
Cleans up datasource proxy response handling.
DefaultHandler in middleware tests should write a response, the
responseWriter BeforeFuncs wont get executed unless a response
is written.
Fixes#18644
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
#21350 introduced a bug regarding import of plugin dashboards.
This should fix this and add custom validation if not importing
plugin dashboard and dashboard property is missing.
Ref #21350
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Breaking change: If disabled the cookie samesite cookie attribute
will not be set, but if none the attribute will be set and is a
breaking change compared to before where none did not render the
attribute. This was due to a known issue in Safari.
Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Fixes#19847
* Fixed so when clicking a plot on a touch device we won't display the annotation context menue.
* Refactorings after feedback.
* changed to standard-ish comment.
* add common backend
* use const for range
* likely not differnt
* send the right orgId
* Add DataSourceWithBackend to @grafana/runtime mock in root reducer test
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* add min_interval_seconds setting to alerting config
It will let operator enforce a minimum time for the scheduler to enqueue evaluations
* Introduce UI modifications
* Update docs
Co-authored-by: Martin <uepoch@users.noreply.github.com>
* Update rpm.md
* Update rpm.md
* Moved content to troubleshooting
Updated rpm.md and moved content from rpm.md to troubleshooting.md
* Update rpm.md
* Update rpm.md
* Update rpm.md
* Update rpm.md
* Update rpm.md
* Update rpm.md
* Update rpm.md
* Update docs/sources/installation/rpm.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/rpm.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
Co-authored-by: Dan Cech <dan@aussiedan.com>
OpsGenie's model works heavily off of the priority of an alert,
e.g. routing and escalation. Currently this plugin only supports
the default "P3".
Setting a tag og_priority to the correct P-value, e.g. P1, P2, P3,
P4 or P5, will call the OpsGenie API with the correct priority value
set.
Add fallbackText to Google Chat notifications.
Definition of fallbackText: A plain-text description of the message's
cards, used when the actual cards cannot be displayed,
e.g. mobile notifications.
Fixes#21463
* refactoring BigValue layout to use polymorphism
* Renamed file
* StatPanel: Fixed min & max handling, white theme background
* Typescript and test fixes
* Fixed justify center logic
* Updated test dashboard
* Updated test dashboard
* Adjust time xMax to align with last data point if it's close
* Fixed color issue
* removed text shadow
* Removed unused stuff
* Fixed auto min max
* Fixed strict typescript issues
* Updated
* Refactoring to get the correct spacing between the first icon and button border.
* Should not be smaller then 8px to the left.
* Removed unused dependency.
* Updated snapshot for LinkButton.
* remove anon funcs, removed options from state, removed update method, static selects as constants
* cancellable promise
* cancel promise on unmount
* use new datasource funcs for dryer component
* event handler funcs
* updated funcs and moved to utils, updating config editors
* S has no keys. never will never work
* remove report json
* update azure snapshot
* DataSourceSettings keyof
* rename reset funcs
* Update plugin docs
* Updated plugins installation documentation
Moved all Grafana CLI commands into cli.md, moved API script into user.md, rewrote installation.md as an actual task that refers the user to the plugins installation page
* Update cli.md
* Update cli.md
* Update docs/sources/administration/cli.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/administration/cli.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/http_api/user.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/http_api/user.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update cli.md
* Fixed links
* Update cli.md
* Update cli.md
* Update cli.md
* Update cli.md
Co-authored-by: Dan Cech <dan@aussiedan.com>
* Docs: Update debian.md
Simplified the APT install instructions by bundling the commands into one block, added steps in the .deb instructions to refer to new fields on the installation page.
* Update debian.md
* Update debian.md
* Update debian.md
* Update debian.md
* Update debian.md
* Update debian.md
When an alert is sent by e-mail, the process sends an e-mail to
each recipient separately. This PR is a single delivery to all recipients.
For companies that use e-mail extensively, this is necessary in order
not to overload the sending queue.
Replaces #18013Fixes#12650
Co-authored-by: Henrique Oliveira <holiiveira@users.noreply.github.com>
* Settings: supports env overrrides for dynamic settings
* Settings: makes it possible to explicitly get env override support for dynamic settings
* Make linter happy
* Refactor redirect_to cookie with secure flag in middleware
* Refactor redirect_to cookie with secure flag in api/login
* Refactor redirect_to cookie with secure flag in api/login_oauth
* Removed the deletion of 'Set-Cookie' header to prevent logout
* Removed the deletion of 'Set-Cookie' at top of api/login.go
* Add HttpOnly flag on redirect_to cookies where missing
* Refactor duplicated code
* Add tests
* Refactor cookie options
* Replace local function for deleting cookie
* Delete redundant calls
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Besides minor language corrections, this tries in particular to
provide some clarity about the `step` setting in the Prometheus range
query and the `$__interval` variable:
- First of all: They are both always the same.
- What's really confusing (and arguably really un-helpful) is that the
_Min time interval_ is multiplied by the resolution
factor. Therefore, I just state the fact here now but don't add
anything like "This should be the scrape interval" because it is not
true (if resolution is `1/10`, a meaningful _Min time interval_ is
generally a tenth of the scrape interval).
- More helpful is the _Min step_ parameter, because it is not
multiplied by the resolution factor (which I have now stated
explicitly). Of course, the _Min time interval_ has to be set to
something small so that the _Min step_ parameter can kick in.
It would be good if we could also override the _Min time interval_
tool tip because that is where most people will look, and the current,
very Graphite-centric tool tip is very confusing for the Prometheus
query editor, in particular because it doesn't have any hint about the
resolution factor being applied. See #21413.
Signed-off-by: beorn7 <beorn@grafana.com>
* create tabs component
* replace tabs in pageheader
* splitting two different types of tabitems
* fix index and conditionals in tabs
* redo tabs to not render anchor links
* rename to className and use cx to combine classes
* reverting back to a simpler use case
* moving type to types file
* fix import
* redoing Tabs to simpler composition components
* pr feedback
* update snapshot
* use icon component, added knob for storybook
* Added text align option to column styles, tests
* table panel migrations
* added tests
* default column style is now auto
* tests and fixtures...
* wrong comments need removing
* xss guard
* test
* Some test for invalid options, formatting.
* Remote branch tracking.
* Footer: Single footer implementation for both react & angular pages
* Export type
* Updates
* Use footer links in help menu
* Updates & Fixes
* Updated snapshot
* updated snapshot
* added alert state validation before changing its state
* modified boolean condition
* converted most occurring string into const
* referred the const of alert models
* Prometheus: user metrics metadata to inform query hints
- no longer analyse datapoints
- either use metrics metadata to determine metrics type or use metric
name suffix
- removed testcases based on datapoints
* Added hint certainty and tests
* Prometheus: Disable suggestions at beginning of value
- fixed comparison operator regex
- no longer suggest anything at beginning of label value
* Detect cursor in front of label values
I standardized the readme for `sudo` and removed the `$`.
Now you can copy paste the commands and just "install" via the rpm
based distros.
Signed-off-by: JJ Asghar <jjasghar@gmail.com>
Signed-off-by: JJ Asghar <awesome@ibm.com>
* imguploader: add support for non-Amazon S3 endpoints and forcing of path-style S3 addressing
fixes#11240
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Loki: fix filter expression suggestions
- dont suggest term completion items in filter expression
- allow at least one character before suggesting term items
- keep logql expression when switching between Metrics/Logs mode
- show only history by default in completion items
* Clear results when changing mode
- `unless`, `or` and `and` are binary operators
- if they appear in a query the query was broken up so the suggestor
only works on the current term
- this change fixes the splitter logic to make sure those keywords are
not inside a word
* Edited Windows install instructions
Moved one section from Windows install guide to developer-guide.md. Edited some content in windows.md and will add questions.
* Updated per comments
* Fixed broken links in basic_concepts.md
* Revert "Fixed broken links in basic_concepts.md"
This reverts commit e524ea9e7b.
* Update windows.md
* Prometheus data source: Update tooltip for _Scrape interval_
The old tool tip was plainly wrong. The globally configured scrape
interval is not necessarily the most used scrape interval, so the new
wording is describing what actually matters. The evaluation interval
wasn't even mentioned before. And finally, the configured value is
not strictly a lower limit for the step query parameter as it can be
overridden by the panel option _Min time interval_.
I plan to explain the overriding intricacies in the tool tip for _Min
time interval_.
Signed-off-by: beorn7 <beorn@grafana.com>
* Improve tooltip for _Min step_
The previous tool tip was mostly addressing aspects that are not
specific to _Min step_ (and might be more appropriate to be added to
the _Min time interval_ tool tip as that setting has a wider
scope). The new version emphasizes the important gotchas: that this is
an _additional_ lower limit, and that it is _not_ multiplied by the
resolution factor.
Signed-off-by: beorn7 <beorn@grafana.com>
* Fixed snapshot
Co-authored-by: David <david.kaltschmidt@gmail.com>
Closes#19598
Fixes bug introduced recently where the new PromQueryEditor did not preserve
the PromContext.Explore set on the query model by PromQueryField which caused
the table to be empty for Prometheus in explore.
* Pagerduty notifier: configurable severity
Instead of hardcoding `critical` make it configurable per notification channel instance.
* fix html
* Add a test to ensure default severity is correct
* Notifications doc
* Add a non-default test
* Add err check on NewJson (all tests)
* Add default severity (critical) to AlertNotificationEditCtrl class
- prometheus explore editor introduced new styles for the hint display
- when multiple rows are rendered the hints are covered because they are
forced to have 0 height
- this change removes the 0-height
* Editor: Ignore closing brace when it was added by editor
- brace completion gets annoying if the user still types closing brace
- this change marks automatically added closing braces and when the user
types a closing brace at that position, it will be overridden instead of
added
* Fix label suggestions
* Correct brace behavior, but broken completion
* Rewrite auto-match detection with annotations
Much easier to wrap one's head around it if it is expressed more
directly.
This is not mathematically the same as the previous version involved
more rounding than necessary because of the way the intervalFactor was
handled. I'd argue the new version is better because it gets closer to
the 11,000 points limit and thus approaches better what the user
wanted within the limits of Prometheus.
Note that in practice, the 11,000 points limit should never be of
relevance. (Even a 4k screen doesn't have 11k points on the x axis.)
Signed-off-by: beorn7 <beorn@grafana.com>
* Table: Set & use field display processor
* Use applyFieldOverrides outside in story instead
* Change types a bit
* Table: Move to flexible layout
* Simplest possible custom field option
* Skip default column
* Added textAlign
* Explore: Set display processor for table data frame
* Fixed storybook
* Refactoring
* Progress on cell display mode
* Major progress
* Progress & refactoring
* Fixes
* Updated tests
* Added more tests
* Table: Progress on cell style customization
* Restored testdata random walk table scenario
* put back unrelated change
* remove unused things
* Updated table story
* Renamed property
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Dashboard: started to implement new time picker.
* TimePicker: working in full screen (except calendar).
* TimePicker: first draft on narrow screen variant.
* TimePicker: small adjustments to the narrow design.
* TimePicker: enabled range selection and started to style calendar.
* TimePicker: applied some more styling.
* Calendar: added so the calendar range selection is styled properly.
* Calendar: added styling for timepicker calendar in narrow screen.
* TimePicker: made it possible to select range from calendar.
* TimePicker: made the calendar have previous selected value.
* TimePicker: moved calendar to be able to update form state.
* TimePicker: calendar is now displayed onFocus or onClick.
* TimePicker: calendar will be closed if click outside input.
* Calendar: fixed the styling of the calendar in narrow screen.
* Calendar: made it work properly with narrow screen.
* TimePicker: connected recent to absolute time range.
* TimePicker: changed the label on recent ranges.
* TimePicker: cleaned up the range list and options.
* TimePicker: some more cleaning up.
* TimePicker: cleaned up the calendar a bit.
* TimePicker: some more refactorings.
* TimePicker: refactorings.
* TimePicker: styled modal properly.
* TimePicker: empty recent list.
* TimePicker: width when calendar in full screen.
* TimePicker: will validate input value.
* TimePicker: removed unused code.
* TimePicker: positioning with emotion instead of sass.
* Calendar: Made sure we send the dates in the correct order to the calendar.
* TimePicker: fixed theme.
* TimePicker: fixed positioning of the content.
* TimePicker: positioning of narrow.
* TimePicker: added some simple tets.
* TimePicker: fixed issue with invalid and added error message.
* TimePicker: added history.
* TimePicker: cleaned up snapshot data.
* TimePicker: fixed so we keep the quick values in the input.
* TimePicker: fixed the missing styling on UTC.
* TimePicker: added missing caret icon.
* TimePicker: fixed formatting on recent time ranges.
* TimePicker: added missing -.
* TimePicker: refactorings after feedback.
* TimePicker: renamed reserved prop name.
* TimePicker: added missing onChange call.
* TimePicker: removed alternative return type.
* TimePicker: fixed the sorting order on the recent list.
* TimePicker: added useCallback for the onEvent functions.
* TimePicker: moving away from default export.
* TimePicker: used the isMathString instead of private function.
* TimePicker: minor refactoring simplify the code.
* TimePicker: Added empty container that will expand when less then 4 recent searches.
* TimePicker: changed the top to be absolute relative to the container.
* TimePicker: updated snapshots for failing tests.
* Fixed shadow
* Move it down a bit
* added some more tests.
* Fixed so we change the anchor point of the time picker in really small screens.
* removed memo.
* fixed snapshot.
* Make sure that we always use the correct timeZone when formatting output.
* Fixed form background.
* Some minor fixes after demo.
* Making sure that empty info box is centered.
* updated snapshots for timepicker after css changes.
* fixed so we don't overflow when input validation error.
* adjusted final things on the time picker.
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Tooltip: preventing xss injections via the colors variable.
* added xss check for single series tooltop color.
* added sanitize to the hoverInfo.value.
* first working example
* Support sorting, adding types while waiting for official ones
* using react-window for windowing
* styles via emotion
* sizing
* set an offset for the table
* change table export
* fixing table cell widths
* Explore: Use new table component in explore (#21031)
* Explore: Use new table component in explore
* enable oncellclick
* only let filterable columns be clickable, refactor renderrow
* remove explore table
* Keep using old merge tables logic
* prettier
* remove unused typings file
* fixing tests
* Fixed explore table issue
* NewTable: Updated styles
* Fixed unit test
* Updated TableModel
* Minor update to explore table height
* typing
* Refactor: Adds params to visit
* Refactor: Restructures exported Pages somewhat
* Refactor: Moves more into new framework but holdup because of bugs in digest
* Refactor: Finish migrating templating e2e tests to new framework
* Refactor: Changes after merge with master
* Refactor: Removes weird change
* Refactor: Adds duplication test
* Refactor: Adds move down and move up variable asserts
* Refactor: Adds some test to value select dropdown
* Prometheus: Display HELP and TYPE of metrics if available
- Prometheus recently added a metadata API around HELP and TYPE of
metrics
- request metadata when datasource instance is created
- use metadata to show help and type in typeahead suggestions and in
metrics selector as tooltip
* Fix types
* Refactor: Adds ScenarioContext
* Refactor: Removes async
* Refactor: Adds video and reverts CIRCLE_SHA2 to CIRCLE_SHA1
* Refactor: Adds videos to release job as well
* use default from datasource if not saved on dash/query
* find datasource default workspace in returned workspace list
* don't need the find
* fix dropdown
* UI: ConfirmButton component
* UI: add link button variant
* UI: add ConfirmButton story with delete option
* Chore: use ConfirmButton instead of DeleteButton
* UI: remove DeleteButton
* UI: rename confirmButtonVariant to confirmVariant
* UI: use Form.Button in ConfirmButton
* Chore: use sm ConfirmButton size after changing defaults
* Revert "UI: add link button variant"
This reverts commit 4372350daa.
* Chore: add 'link' variant type to the Button
* UI: DeleteButton component on top of ConfirmButton
* Chore: use DeleteButton instead of ConfirmButton
* Chore: DeleteButton, use md size by default
* Chore: update test snapshots
* Update configuration.md
Updated logs section and clarified some of the file location and commenting information.
* Update docs/sources/installation/configuration.md
Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Removes send_client_credentials_via_post oauth setting and
use auto-detect mechanism instead.
By these changes also fixes statichcheck errors
Ref #8968
* feat: adding lookup limit to OpenTSDB settings
Adding lookup to OpenTSDB datasource settings and using it in the datasource for tag value lookup and suggest
* Document the change.
* feat: UI for configuring OpenTSDB lookup limit.
* Apply prettier.
* Fix compilation error.
* Logs: Optional logs label column
- reintroduces label column that was removed when log details were
introduced
- added to explore and also as a new option to logs panel
- explore column settings now stored in localstorage
- labels are rendered with font size xs
- labels that start with `_` or are called `level` or `filename` are not
displayed
- removed click handlers and moved remaining `LogLabel` logic into `LogLabels`
* Added prop to satisfy interface
* Review feedback
* removed comment
* Changed label of label column switch
Moving info log from phantomjs to rendering service
so it's logged for all kinds of renderers.
Add debug log for image renderer plugin and remote
renderer.
* Add support for primitive values/onchange
* Fix segment clickaway bug
* Fix onchange
* Use primitive in cloudwatch
* Add placeholder
* Use placeholder in cloudwatch editor
* Fix lint error
* Fix lodash import
* Use new component story format
* Add support for autofocus
* Use selectable value for onchange event
* Fix lint error
* UI: ConfirmModal component based on Modal
* UI: refactor ConfirmModal after Modal changes
* UI: use Icon component for Modal
* UI: ConfirmModal tests
* UI: ConfirmModal story
* Prometheus: disable dynamic label lookup on big datasources
- when a prometheus datasource has more than 10000 metrics, label lookup
for the query field is disabled
- installations of that size have slow typehead lookup times and make
the editor sluggish
* Raise dynamic lookup threshold to 10000 metrics
* Run start tasks again
- since the API update, the URL fallback was working, but the response
format also needed adapting: `data` (v1) vs `values` (pre-v1)
- this change looks for either data or values in the response for test
and metadata requests
* Update debian-ubuntu installation
Major rework of debian.md, minor updates to a configuration.md and upgrading.md.
* updated docs
Updated per Torkel's comments
* Update debian.md
Added wget to common properties install command
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update docs/sources/installation/debian.md
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Apply suggestions from code review
Co-Authored-By: Dan Cech <dcech@grafana.com>
* Update upgrading.md
* Update upgrading.md
* Update debian.md
Added ARM link
Updates the docs to work with the website repo - mainly
relative link updates.
Adds a menu.yaml file to build the sidebar menu (no longer
using front matter weight).
* Chore/Tech debt: Remove (most) instances of $q angular service use
Removes instances where the angular $q service is used and replaces
it with native Promises.
* FieldDisplay: added support for value mapping of no data state.
Committer: Marcus Andersson <marcus.andersson@grafana.com>
* FieldDisplay: fixed issue when switching between modes and display numeric was null.
* ValueMapping: introduced a private function for checking null values.
* FieldDisplay: refactoring of test setup to reduce duplication.
* Docs: added info about new 'no data' value to text mapping.
* Docs: improved according to feedback. Reverted prettier formatting changes.
* FieldDisplay: removed unused import.
* Datasource/Loki: Fixes issue where time range wasn't being supplied with annotation query
Closes#20667
* Add test to verify new behavior
* Added end/start check to test
* update fixed
* update fixed
* update fixed
* don't change any tests
* add mising space
* Custom unit formats
* return a string for kbn
* return a string for kbn
* return a string for kbn
* Simplify unit tests
* More units
* fix more tests
* fix more tests
* fix more tests
* format values
* format values
* TimeSeries to string
* more kbn tests
* use the formatted value
* BarGauge: Fixed font size calculations
* support prefix
* add si support
* avoid npe
* BarGauge/BigValue: value formatting
* fix some tests
* fix tests
* remove displayDateFormat
* another unicode char
* Graph: Use react unit picker
* Updated unit picker
* Fixed build errors
* more formatting
* graph2 tooltip formatting
* optional chaining
* TablePanel: Don't include hidden columns in CSV export
Fixes#12076
* GraphPanel: Don't include hidden series in CSV export
Series are hidden if all values are zero/empty and the relevant graph
option is enabled as well. (e.g. "Hide series: With only nulls")
Fixes#12076
* adding configeditor
* fix method signature and add state for metrictankhelper
* fix onChangeHandler
* prettier fix
* remove config and fix autoversion
* adding optional parameter to make this build
* set default version if none specified
* Graphite: removed version detection
* Adding component, story and documentation file
* forgot files
* Add label and formvalidation
* fix for error/invalid message
* fixing font color when input is disabled
* red border if invalid
* fixing props and label margin
* added support for icon in input
* support for button and loading state
* redoing some of the markup
* fixing height on addons
* Adding some basic documentation
* remove not used types file
* Add some more knobs
* move component to it's own directory, updated styling
* create component and extract some shared styles
* update story name
* Adding focusstyle and knobs
* Sorting knobs, fix paddings
* accidentaly put in a line break
* use variable names in commonStyles
* add simple mdx docs
* Adding size to TextArea
* more shared styles
* remove unused import
* Units: Add unit for currency - South Korean Won
* Units: Add support for 'femto' and 'pico' decimal SI prefix
* Units: Expand library of energy units
Add:
Power - Giga-watt (useful for viewing metrics of power flow through large-scale electrical infrastructure)
Electrical Resistance - Kilo-ohm, Mega-ohm (useful for viewing metrics of energy storage e.g. internal resistance of a battery and more)
Electrical Capacitance - Farad, Micro-farad, Nano-farad, Pico-farad, Femto-farad
Electrical Inductance - Henry, Milli-henry, Micro-henry
* Units: Add unit test for currency ₩
* Units: Add unit tests for energy units
* Loki: Fix query error for step parameter
- Loki does not fully support float steps like prometheus and returns a
query error
- this change makes sure that the step parameter is rounded to an
integer
* Added test and comments
* Panels: Added support to set panel padding to zero
* WIP: fullChromeControl work
* Tweaks to header position
* Reverted some overlay mechanic and now back to no title only
* Fixed test
* Fixed transparent flag
* Added show title
* Added font weight to value
* Reverted back to no padding option
* Fixed issue with border and width and height
* Introduce new Switch component
* Experiment with different focus style
* Review update
* Update on/off swtch colors
* Introduce Form.Field component
* Enable className prop on form's field
* Remove not used imports
* Update packages/grafana-ui/src/components/Forms/Field.tsx
Co-Authored-By: Peter Holmberg <peterholmberg@users.noreply.github.com>
* Make switch usable in field story
* Add predefined input sizes
* Add util to display story on a debug canvas
* Test form
* Updated the test form
* Fix snapshot
Profiling and tracing can now be enabled/disabled separately.
Adds argument for trace file path.
Support overriding profiling and tracing argument using
environment variables.
Update docs.
Fixes#20576
* Add Service Quota part
* Update docs after pr feedback
* Describing new features
* Divide into subheaders
* Changes after feedback
* cloudwatch: add min time interval section to docs
* docs: json format fix
* cloudwatch: move min time interval section in docs
* cloudwatch: docs fix
* docs: cloudwatch fixes
* docs: s/you are/you're
* docs: Cloudwatch - escapes underscores in tables
Adds support for using custom dockerfiles to pre-install image
renderer plugins.
Updates docs for docker and image rendering.
Fixes#20241
Co-Authored-By: Leonard Gram <leo@xlson.com>
* refactor to multiple rows
* added name for org user struct
* added name getorgusers
* added user name to tableview
* made test pass
* updated userMocks to user name field
* added missing UsersTable snapshot
* added name on teammembers page, be able to search query for name, login and email
* added the updated snapshots
* conform to same sorting as output form
* conform to previous way of using it
* sort first by login and after by email, as it was before
* Adding cloudwatch related stuff - images will come later on
* Changes after pr feedback
* Add images
* Update image path
* Remove react migration part - might not be so interesting for our users
* Removing part about curated dashboards since it's not released yet - will be re-added later on
Backend plugins is recommended to use hclog with json
formatting to get proper log output in grafana server log.
Old hclog-wrapper.go that I deleted while back is still in
the repo so deletes that.
* Remove highres flag since it's not being used
* Remove not used code. Init id field correctly
* Fix broken tests
* Remove GMS related calculations
* Rename period field
* Add breaking changes to changelog. Also update upgrading docs
* Update snapshot
* Update docs after feedback
* Changes after feedback
* Adding component, story and documentation file
* forgot files
* Add label and formvalidation
* fix for error/invalid message
* fixing font color when input is disabled
* red border if invalid
* fixing props and label margin
* added support for icon in input
* support for button and loading state
* redoing some of the markup
* fixing height on addons
* Adding some basic documentation
* remove not used types file
* Add some more knobs
* move component to it's own directory, updated styling
* Adding component, story and documentation file
* forgot files
* Add label and formvalidation
* fix for error/invalid message
* fixing font color when input is disabled
* red border if invalid
* fixing props and label margin
* added support for icon in input
* support for button and loading state
* redoing some of the markup
* fixing height on addons
* Adding some basic documentation
* remove not used types file
* Add some more knobs
* move component to it's own directory, updated styling
* Add Icon component
* Add useClientRect helper hook
* Add missing Icon types
* Simplify Inputs styling (POC)
* Render theme knob in a separate group
* Update packages/grafana-ui/src/components/Forms/Input/Input.tsx
Co-Authored-By: Peter Holmberg <peterholmberg@users.noreply.github.com>
* Update packages/grafana-ui/src/components/Forms/Input/Input.tsx
* Improve comment
* Restore increase/decrease spinner on number inputs
* Add period
* use input color variables
* fix test
* Expose input styles from getFormStyles
* grafana/build-container: Upgrade to Ubuntu 18.04 base image
* grafana/build-container: Upgrade to Go 1.13.4
* grafana/build-container: Upgrade to Node 10.17.0
Problem was that yaml unmarshal returned nested maps as
map[interface{}]interface{} which are then not marshal-able
to json because of that interface{} key type. This adds explicit
casting of the keys in the yaml value types to string which
then makes the values marshal-able to JSON in DB.
Fixes: #11537
* Fix integration of postgres and fake-data-gen containers
This fix introduces the following modifications:
- Upgrades to 2.1 docker-compose file format
- Adds a health check for determining that postgrestest service is healthy
- Modifies the fake-postgres-data service to wait for postgrestest to be
"healthy" before starting.
- Renames postgrestest to postgres
* Util: Optionally allow empty input in SplitHostPortDefault
Due to a recent change the SQL Server tests failed because passing an
empty datasource url in `util.SplitHostPortDefault` was no more allowed.
This fix contains the following modifications:
- Modifies the util.SplitHostPortDefault not to return an error for empty input.
- Modifies the util.SplitHostPort to return an error for empty input.
- Introduces an additional test for empty input.
* convert config editor to react
* tests and some cleanup
* test
* snaps
* updating per comments
* remove anonymous funcs, remove config from state
* remove unecessaries
* Grafana/Loki: Adds support for new Loki endpoints and metrics
* Adds `/loki/` prefix to new loki endpoints and updates response interfaces
* Improved legacy support
* Removed changes related to plugin.json and added Loki-specific hacks
* Fixes live streaming for legacy loki datasources
The ordering of links in the navigation bar is currently based the order of the slice containing the navigation tree. Since Grafana supports adding more links to the navigation bar with `RunIndexDataHooks` which runs at the very end of the function this means that any link registered through a hook will be placed last in the slice and be displayed last in the menu. With this PR the ordering can be specified with a weight which allows for placing links created by extensions in a more intuitive place where applicable.
Stable sorting is used to ensure that the current FIFO ordering is preserved when either no weight is set or two items shares the same weight.
* Chore: Move and wrap Cascader component to @grafana/ui
Closes#19042
* Removes unneeded props from interface and removes rc-trigger
* Removes more unneeded props
* CloudWatch: Datasource improvements
* Add statistic as template variale
* Add wildcard to list of values
* Template variable intercept dimension key
* Return row specific errors when transformation error occured
* Add meta feedback
* Make it possible to retrieve values without known metrics
* Add curated dashboard for EC2
* Fix broken tests
* Use correct dashboard name
* Display alert in case multi template var is being used for some certain props in the cloudwatch query
* Minor fixes after feedback
* Update dashboard json
* Update snapshot test
* Make sure region default is intercepted in cloudwatch link
* Update dashboards
* Include ec2 dashboard in ds
* Do not include ec2 dashboard in beta1
* Display actual region
* LDAP: last org admin (that's going to be removed) can login
Previously, if you tried to login with LDAP but were that last org admin
of an org that you would no longer be an admin of after sync (which
happens at login), you wouldn't be able to login due to an error.
* Docker blocks: Add loki blocks for loki releases
- Loki did major API changes between 0.3 and 0.4
- Adding blocks to simplify Grafana datasource testing for different
versions
- keeing `loki` block pointing at loki master
- Run all versions in parallel:
```
./create_docker_compose.sh loki0.3 loki0.4 loki
```
- all versions have different hostnames and ports internally
- datasource url depends on version so you can set them up as separate
datasources:
- master: http://localhost:3100/
- 0.3.0: http://localhost:3103/
- 0.4.0: http://localhost:3104/
* Add loki minor version datasources
Please use this template while reporting a bug and provide as much info as possible.
Questions should be posted to https://community.grafana.com
Use query inspector to troubleshoot issues: https://community.grafana.com/t/using-grafanas-query-inspector-to-troubleshoot-issues/2630
Please use this template to create your bug report. By providing as much info as possible you help us understand the issue, reproduce it and resolve it for you quicker. Therefor take a couple of extra minutes to make sure you have provided all info needed.
PROTIP: record your screen and attach it as a gif to showcase the issue.
* Questions should be posted to: https://community.grafana.com
* Use query inspector to troubleshoot issues: https://bit.ly/2XNF6YS
* How to record and attach gif: https://bit.ly/2Mi8T6K
about: Suggest a component for the @grafana/ui package
labels: 'area/grafana/ui'
---
<!--
By using this template you will make it easier for us to make sure that documentation and implementation stays up to date for every component in @grafana/ui
Thank you!
-->
**Why is this component needed**:
<!-- Explain your use case -->
___
- [ ] Is/could it be used in more than one place in Grafana?
**Where is/could it be used?**:
___
- [ ] Post screenshots possible.
- [ ] It has a single use case.
- [ ] It is/could be used in multiple places.
**Implementation** (Checklist meant for the person implementing the component)
- [ ] Component has a story in Storybook.
- [ ] Props and naming follows [our style guide](https://github.com/grafana/grafana/blob/master/contribute/style-guides/frontend.md).
- [ ] It is extendable (rest props are spread, styles with className work, and so on).
- [ ] Uses [theme for spacing, colors, and so on](https://github.com/grafana/grafana/blob/master/contribute/style-guides/themes.md).
- [ ] Works with both light and dark theme.
**Documentation**
- [ ] Properties are documented.
- [ ] Use cases are described.
- [ ] Code examples for the different use cases.
- [ ] Dos and don'ts.
- [ ] Styling guidelines, specific color usage (if applicable).
@@ -34,7 +34,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@grafana.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at conduct@grafana.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
@@ -58,10 +58,10 @@ When you're ready to contribute, it's time to [Create a pull request](/contribut
#### Contributor License Agreement (CLA)
Before we can accept your pull request, you need to [sign our CLA](https://grafana.com/docs/contribute/cla/). If you haven't, our CLA assistant prompts you to when you create your pull request.
Before we can accept your pull request, you need to [sign our CLA](https://grafana.com/docs/grafana/latest/developers/cla/). If you haven't, our CLA assistant prompts you to when you create your pull request.
## Where do I go from here?
- Set up your [development environment](contribute/developer-guide.md).
- Learn how to [contribute documentation](contribute/documentation.md).
- Get started [developing plugins](https://grafana.com/docs/plugins/developing/development/) for Grafana.
- Get started [developing plugins](https://grafana.com/docs/grafana/latest/developers/plugins/) for Grafana.
This document describes the rules and governance of the project. It is meant to be followed by all the developers of the project and the Grafana community. Common terminology used in this governance document are listed below:
- **Team members**: Any members of the private [grafana-team][team] Google group.
- **Maintainers**: Maintainers lead an individual project or parts thereof ([`MAINTAINERS.md`][maintainers]).
- **Projects**: A single repository in the Grafana GitHub organization and listed below is referred to as a project:
- clock-panel
- devtools
- gel-app
- grafana
- grafana-github-datasource
- grafana-image-renderer
- grafana-kiosk
- grafana-plugin-sdk-go
- grafana-polystat-panel
- grafonnet-lib
- kairosdb-datasource
- piechart-panel
- simple-angular-panel
- simple-app-plugin
- simple-datasource
- simple-datasource-backend
- simple-json-backend-datasource
- simple-json-datasource
- simple-react-panel
- strava-datasource
- tutorials
- worldmap-panel
- **The Grafana project**: The sum of all activities performed under this governance, concerning one or more repositories or the community.
## Values
The Grafana developers and community are expected to follow the values defined in the Grafana Code of Conduct. Furthermore, the Grafana community strives for kindness, giving feedback effectively, and building a welcoming environment. The Grafana developers generally decide by consensus and only resort to conflict resolution by a majority vote if consensus cannot be reached.
## Projects
Each project must have a [`MAINTAINERS.md`][maintainers] file with at least one maintainer. Where a project has a release process, access and documentation should be such that more than one person can perform a release. Releases should be announced on the Grafana Labs blog. Any new projects should be first proposed on the [team mailing list][team] following the voting procedures listed below.
## Decision making
### Team members
Team member status may be given to those who have made ongoing contributions to the Grafana project for at least 3 months. This is usually in the form of code improvements and/or notable work on documentation, but organizing events or user support could also be taken into account.
New members may be proposed by any existing member by email to [grafana-team][team]. It is highly desirable to reach consensus about acceptance of a new member. However, the proposal is ultimately voted on by a formal [supermajority vote](#supermajority-vote).
If the new member proposal is accepted, the proposed team member should be contacted privately via email to confirm or deny their acceptance of team membership. This email will also be CC'd to [grafana-team][team] for record-keeping purposes.
If they choose to accept, the [onboarding](#onboarding) procedure is followed.
Team members may retire at any time by emailing [the team][team].
Team members can be removed by [supermajority vote](#supermajority-vote) on [the team mailing list][team].
For this vote, the member in question is not eligible to vote and does not count towards the quorum.
Any removal vote can cover only one single person.
Upon death of a member, they leave the team automatically.
In case a member leaves, the [offboarding](#offboarding) procedure is applied.
The current team members are:
- Alexander Zobnin ([Grafana Labs](https://grafana.com/))
- Andrej Ocenas ([Grafana Labs](https://grafana.com/))
Maintainers lead one or more project(s) or parts thereof and serve as a point of conflict resolution amongst the contributors to this project. Ideally, maintainers are also team members, but exceptions are possible for suitable maintainers that, for whatever reason, are not yet team members.
Changes in maintainership have to be announced on the [developers mailing list][devs]. They are decided by [rough consensus](#consensus) and formalized by changing the [`MAINTAINERS.md`][maintainers] file of the respective repository.
Maintainers are granted commit rights to all projects covered by this governance.
A maintainer or committer may resign by notifying the [team mailing list][team]. A maintainer with no project activity for a year is considered to have resigned. Maintainers that wish to resign are encouraged to propose another team member to take over the project.
A project may have multiple maintainers, as long as the responsibilities are clearly agreed upon between them. This includes coordinating who handles which issues and pull requests.
### Technical decisions
Technical decisions that only affect a single project are made informally by the maintainer of this project, and [rough consensus](#consensus) is assumed. Technical decisions that span multiple parts of the Grafana project should be discussed and made on the [Grafana developer mailing list][devs].
Decisions are usually made by [rough consensus](#consensus). If no consensus can be reached, the matter may be resolved by [majority vote](#majority-vote).
### Governance changes
Changes to this document are made by Grafana Labs.
### Other matters
Any matter that needs a decision may be called to a vote by any member if they deem it necessary. For private or personnel matters, discussion and voting takes place on the [team mailing list][team], otherwise on the [developer mailing list][devs].
## Voting
The Grafana project usually runs by informal consensus, however sometimes a formal decision must be made.
Depending on the subject matter, as laid out [above](#decision-making), different methods of voting are used.
For all votes, voting must be open for at least one week. The end date should be clearly stated in the call to vote. A vote may be called and closed early if enough votes have come in one way so that further votes cannot change the final decision.
In all cases, all and only [team members](#team-members) are eligible to vote, with the sole exception of the forced removal of a team member, in which said member is not eligible to vote.
Discussion and votes on personnel matters (including but not limited to team membership and maintainership) are held in private on the [team mailing list][team]. All other discussion and votes are held in public on the [developer mailing list][devs].
For public discussions, anyone interested is encouraged to participate. Formal power to object or vote is limited to [team members](#team-members).
### Consensus
The default decision making mechanism for the Grafana project is [rough][rough] consensus. This means that any decision on technical issues is considered supported by the [team][team] as long as nobody objects or the objection has been considered but not necessarily accommodated.
Silence on any consensus decision is implicit agreement and equivalent to explicit agreement. Explicit agreement may be stated at will. Decisions may, but do not need to be called out and put up for decision on the [developers mailing list][devs] at any time and by anyone.
Consensus decisions can never override or go against the spirit of an earlier explicit vote.
If any [team member](#team-members) raises objections, the team members work together towards a solution that all involved can accept. This solution is again subject to rough consensus.
In case no consensus can be found, but a decision one way or the other must be made, any [team member](#team-members) may call a formal [majority vote](#majority-vote).
### Majority vote
Majority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if more vote in favor than against.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. It is not possible to cast an “abstain” vote. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from more than half of those voting. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
### Supermajority vote
Supermajority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote vote in favor.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from at least two thirds of those eligible to vote. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
## On- / Offboarding
### Onboarding
The new member is
- added to the list of [team members](#team-members). Ideally by sending a PR of their own, at least approving said PR.
- announced on the [developers mailing list][devs] by an existing team member. Ideally, the new member replies in this thread, acknowledging team membership.
- added to the projects with commit rights.
- added to the [team mailing list][team].
### Offboarding
The ex-member is
- removed from the list of [team members](#team-members). Ideally by sending a PR of their own, at least approving said PR. In case of forced removal, no approval is needed.
- removed from the projects. Optionally, they can retain maintainership of one or more repositories if the [team](#team-members) agrees.
- removed from the team mailing list and demoted to a normal member of the other mailing lists.
- not allowed to call themselves an active team member any more, nor allowed to imply this to be the case.
- added to a list of previous members if they so choose.
If needed, we reserve the right to publicly announce removal.
`type/feature-request` | Request for a new feature or enhancement.
`type/docs` | Documentation problem or enhancement.
`type/accessibility` | Accessibility problem or enhancement.
`type/question` | Issue is or perceived as a question.
`type/question` | Issue is a question or is perceived as such.
`type/duplicate` | An existing issue of the same subject/request have already been reported.
`type/works-as-intended` | A reported bug works as intended/by design.
`type/build-packaging` | Build or packaging problem or enhancement.
@@ -152,7 +152,7 @@ Label | Description
### Duplicate issue?
Make sure that it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there are an existing issue, but can't find it please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue:
Make sure it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there is an existing issue, but can't find it, please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue:
1. Add a comment `Duplicate of #<issue number>`. GitHub will recognize this and add some additional context to the issue activity.
2. Close the issue and label it with `type/duplicate`.
@@ -188,8 +188,8 @@ If it's not perfectly clear that it's an actual bug, quickly try to reproduce it
First, evaluate if the documentation makes sense to be included in the Grafana project:
- Is this something we want/can maintain as a project?
- Is this referring to usage of some specific integration/tool and in that case are those a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) to identify that lots of other users wants/needs this.
- Is this referring to usage of some specific integration/tool and in that case is that a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) to identify that lots of other users want/need this.
Second, label the issue `type/docs` and at least one `area/*` or `datasource/*` label.
@@ -219,9 +219,9 @@ In general bugs and enhancement issues should be labeled with a priority.
This is the most difficult thing with triaging issues since it requires a lot of knowledge, context and experience before being able to think of and start feel comfortable adding a certain priority label.
The key here is asking for help and discuss issues to understand how more experienced project members thinks and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
The key here is asking for help and discuss issues to understand how more experienced project members think and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
In any case there are uncertainty around the priorization of an issue, please ask the maintainers for help.
In case there is an uncertainty around the prioritization of an issue, please ask the maintainers for help.
Label | Description
------- | --------
@@ -235,7 +235,7 @@ Label | Description
**Critical bug?**
1. If a bug have been categorized and any of the following problems applies the bug should be labeled as critical and must be actively worked on as someone's top priority right now.
1. If a bug has been categorized and any of the following criteria apply, the bug should be labeled as critical and must be actively worked on as someone's top priority right now.
- Results in any data loss
- Critical security or performance issues
@@ -273,9 +273,9 @@ Label | Description
## 5. Requesting help from the community
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, when requesting help from the community it means a contribution has a good chance of getting accepted and merged.
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged.
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the [community site](https://community.grafana.com/) to get the missing information. In especially these areas it's more likely that there exists experts in their own domain and usually a good idea to request help from contributors:
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the [community site](https://community.grafana.com/) to get the missing information. Particularly in these areas it's more likely that there exist experts in their own domain and it is usually a good idea to request help from contributors:
- Database setups
- Authentication like OAuth providers and LDAP setups
@@ -292,11 +292,11 @@ In many cases the issue author or community as a whole is more suitable to contr
## Investigation of issues
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported problem at a first glance, the issue is labeled [Needs investigation](https://github.com/grafana/grafana/labels/needs%20investigation). Depending of the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments), the investigation will either be delegated to another maintainer for further investigation or either put on hold until someone else (maintainer or contributor) picks it up and eventually start investigating it.
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported problem at a first glance, the issue is labeled [Needs investigation](https://github.com/grafana/grafana/labels/needs%20investigation). Depending on the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments), the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor) picks it up and eventually starts investigating it.
Investigating issues can be a very time consuming task, especially for the maintainers given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services etc that are being used with Grafana. There are a certain amount of combinations that are more common than others and these are in general easier for maintainers to investigate.
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services, etc that are being used with Grafana. There is a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
For some other combinations there may not be possible at all for a maintainer to setup a proper test environment for being able to investigate. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue please provide as much information as possible.
@@ -306,14 +306,14 @@ Part of issue triage should also be triaging of external PRs. Main goal should b
1. Check new external PRs which do not have a reviewer.
1. Check if there is a link to an existing issue.
1. If not and you know which issue it is solving add the link yourself, otherwise ask the author to link the issue or create one.
1. If not and you know which issue it is solving, add the link yourself, otherwise ask the author to link the issue or create one.
1. Assign a reviewer based on who was handling the linked issue or what code or feature does the PR touches (look at who was the last to make changes there if all else fails).
## Appendix
### Setting up Gmail filters
If you're using Gmail it's highly recommened that you setup filters to automatically remove email from the inbox and label them accordingly to make it easy for you to understand when you need to act upon a notification or process all incoming issues that haven't been triaged.
If you're using Gmail it's highly recommended that you setup filters to automatically remove email from the inbox and label them accordingly to make it easy for you to understand when you need to act upon a notification or process all incoming issues that haven't been triaged.
This may be setup by personal preference, but here's a working configuration for reference.
1. Follow instructions in [gist](https://gist.github.com/marefr/9167c2e31466f6316c1cba118874e74f)
@@ -327,14 +327,14 @@ This will give you a structure of labels in the sidebar similar to the following
```
- Inbox
...
- Github (mine)
- GitHub (mine)
- activity
- assigned
- mentions
- Github (other)
- GitHub (other)
- Grafana
```
* All notifications you’ll need to read/take action on shows up as unread in Github (mine) and its sub-labels.
* All other notifications you don’t need to take action on shows up as unread in Github (other) and its sub-labels
* All notifications you’ll need to read/take action on show up as unread in GitHub (mine) and its sub-labels.
* All other notifications you don’t need to take action on show up as unread in GitHub (other) and its sub-labels
* This is convenient for issue triage and to follow the activity in the Grafana project.
@@ -6,7 +6,7 @@ Please encrypt your message to us; please use our PGP key. The key fingerprint i
F988 7BEA 027A 049F AE8E 5CAA D125 8932 BE24 C5CA
The key is available from [pgp.mit.edu](https://pgp.mit.edu/pks/lookup?op=get&search=0xF9887BEA027A049FAE8E5CAAD1258932BE24C5CA) by searching for [grafana](https://pgp.mit.edu/pks/lookup?search=grafana&op=index).
The key is available from [keyserver.ubuntu.com](https://keyserver.ubuntu.com/pks/lookup?search=0xF9887BEA027A049FAE8E5CAAD1258932BE24C5CA&fingerprint=on&op=index).
Grafana Labs will send you a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
@@ -20,8 +20,6 @@ Upgrading Go or Node.js requires making changes in many different files. See bel
The Grafana project uses [Go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) to manage dependencies on external packages. This requires a working Go environment with version 1.11 or greater installed.
All dependencies are vendored in the `vendor/` directory.
_Note:_ Since most developers of Grafana still use the `GOPATH` we need to specify `GO111MODULE=on` to make `go mod` and `got get` work as intended. If you have setup Grafana outside of the `GOPATH` on your machine you can skip `GO111MODULE=on` when running the commands below.
To add or update a new dependency, use the `go get` command:
@@ -35,16 +33,14 @@ GO111MODULE=on go get example.com/some/module/pkg
GO111MODULE=on go get example.com/some/module/pkg@vX.Y.Z
```
Tidy up the `go.mod` and `go.sum` files and copy the new/updated dependency to the `vendor/` directory:
Tidy up the `go.mod` and `go.sum` files:
```bash
# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
GO111MODULE=on go mod tidy
GO111MODULE=on go mod vendor
```
You have to commit the changes to `go.mod`,`go.sum` and the `vendor/` directory before submitting the pull request.
You have to commit the changes to `go.mod` and`go.sum` before submitting the pull request.
This document is based on [GOVERNANCE.md](GOVERNANCE.md). We assume good faith and intend to keep all processes as lightweight as possible but as specific as required. In case of disagreements about anything in this document, GOVERNANCE.md applies.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119](http://tools.ietf.org/html/rfc2119).
Git and [GitHub terminology](https://help.github.com/en/github/getting-started-with-github/github-glossary) are used throughout this document.
Team members and their access to repositories is maintained through [GitHub teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams). Team maintainers add and remove team members as outlined in GOVERNANCE.md.
# Code changes
## Proposing changes
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the master branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
* Directly in a RR (Pull Request) - this MAY be done, but SHOULD not be the common case.
* Issue
* Developer mailing list
* Design document, shared via Google Docs, accessible to at least all team members.
Significant changes MUST be discussed and agreed upon with the relevant subsystem maintainers.
## Merging PRs (Pull Requests)
Depending on the size and complexity of a PR, different requirements MUST be applied. Any team member contributing substantially to a PR MUST NOT count against review requirements.
Commits MUST be merged into master using PRs. They MUST NOT be merged into master directly.
* Every merge MUST be approved by at least one team member.
* Non-trivial changes MUST be approved by at least
* two team members, or
* one subsystem maintainer.
* Significant changes MUST be approved by at least
* two team members, AND
* the relevant subsystem maintainer.
PRs MUST be [reviewed](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests) and [approved](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/approving-a-pull-request-with-required-reviews) via GitHub’s review system.
* Reviewers MAY write comments if approving
* Reviewers MUST write comments if rejecting a PR or if requesting changes.
Once a PR is approved as per above, any team member MAY merge the PR.
# Release workflow
## Branch structure
Grafana uses trunk-based development.
In particular, we found that the following principles match how we work:
* Master and release branches MUST always build without failure.
* Branches SHOULD be merged often. Larger changes SHOULD be activated with feature flags until they are ready. Long-lived development branches SHOULD be avoided.
* Changes MAY be enabled by default once they are in a complete state
* Changes which span multiple PRs MUST be described in an overarching issue or Google Doc.
## Releases
Releases MUST follow [Semantic Versioning](https://semver.org/) in naming and SHOULD follow Semantic Versioning as closely as reasonably possible for non-library software.
Release branches MUST be split from the following branches.
* MAJOR release branches MUST be based on master.
* MINOR release branches MUST be based on master.
* PATCH release branches MUST be split from the relevant MINOR release branch’s most current PATCH
Security releases follow the same process but MUST be prepared in secret. Security releases MUST NOT include changes which are not related to the security fix. Normal release processes MUST accommodate the security release process. SECURITY.md MUST be followed.
PRs intended for inclusion in the next PATCH release MUST be labeled with `cherry-pick-needed` so they can be picked up by automated release tooling.
Releases follow the following cadence
* MAJOR: Yearly
* MINOR: Every 4-6 weeks
* PATCH: As needed
Releases SHOULD NOT be delayed by pending changes.
Releases MUST be coordinated with the relevant subsystem maintainers.
# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
versions_to_keep=20
# Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is 5 seconds.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
min_refresh_interval=5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days.
login_maximum_inactive_lifetime_days=7
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).
login_maximum_inactive_lifetime_duration=
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
login_maximum_lifetime_days=30
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
login_maximum_lifetime_duration=
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
token_rotation_interval_minutes=10
@@ -294,6 +301,9 @@ signout_redirect_url =
# This setting is ignored if multiple OAuth providers are configured.
oauth_auto_login=false
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
oauth_state_cookie_max_age=600
# limit of api_key seconds to live before expiration
# Used for uploading images to public servers so they can be included in slack/email messages.
# You can choose between (s3, webdav, gcs, azure_blob, local)
provider=
[external_image_storage.s3]
endpoint=
path_style_access=
bucket_url=
bucket=
region=
@@ -665,6 +707,8 @@ public_url =
key_file=
bucket=
path=
enable_signed_urls=false
signed_url_expiration=
[external_image_storage.azure_blob]
account_name=
@@ -680,6 +724,9 @@ container_name =
server_url=
# If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. http://grafana.domain/.
callback_url=
# Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
# which this setting can help protect against by only allowing a certain amount of concurrent requests.
concurrent_render_request_limit=30
[panels]
# here for to support old env variables, can remove after a few months
# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
# See ICU’s metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt) for a list of supported
# timezone IDs. Fallbacks to TZ environment variable if not set.
rendering_timezone=
# Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
# Please refer to the HTTP header Accept-Language to understand how to format this value, e.g. 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'.
rendering_language=
# Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
# Default is 1. Using a higher value will produce more detailed images (higher DPI), but will require more disk space to store an image.
rendering_viewport_device_scale_factor=
# Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to
# the security risk it's not recommended to ignore HTTPS errors.
rendering_ignore_https_errors=
# Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is false and will
# only capture and log error messages. When enabled, debug messages are captured and logged as well.
# For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure
# [log].filter = rendering:debug.
rendering_verbose_logging=
# Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service.
# Default is false. This can be useful to enable (true) when troubleshooting.
rendering_dumpio=
# Additional arguments to pass to the headless browser instance. Default is --no-sandbox. The list of Chromium flags can be found
# here (https://peter.sh/experiments/chromium-command-line-switches/). Multiple arguments is separated with comma-character.
rendering_args=
# You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.
# Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
# compatible with the plugin.
rendering_chrome_bin=
# Instruct how headless browser instances are created. Default is 'default' and will create a new browser instance on each request.
# Mode 'clustered' will make sure that only a maximum of browsers/incognito pages can execute concurrently.
# Mode 'reusable' will have one browser instance and will create a new incognito page on each request.
rendering_mode=
# When rendering_mode = clustered you can instruct how many browsers or incognito pages can execute concurrently. Default is 'browser'
# and will cluster using browser instances.
# Mode 'context' will cluster using incognito pages.
rendering_clustering_mode=
# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
rendering_clustering_max_concurrency=
# Limit the maximum viewport width, height and device scale factor that can be requested.
rendering_viewport_max_width=
rendering_viewport_max_height=
rendering_viewport_max_device_scale_factor=
# Change the listening host and port of the gRPC server. Default host is 127.0.0.1 and default port is 0 and will automatically assign
# a port not in use.
grpc_host=
grpc_port=
[enterprise]
license_path=
@@ -696,3 +805,23 @@ license_path =
[feature_toggles]
# enable features, separated by spaces
enable=
[date_formats]
# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
# Default system date format used in time range picker and other places where full time is displayed
full_date=YYYY-MM-DD HH:mm:ss
# Used by graph and other places where we only show small intervals
interval_second=HH:mm:ss
interval_minute=HH:mm
interval_hour=MM/DD HH:mm
interval_day=MM/DD
interval_month=YYYY-MM
interval_year=YYYY
# Experimental feature
use_browser_locale=false
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
;versions_to_keep = 20
# Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is 5 seconds.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
# Set to true to automatically assign new users to the default organization (id 1)
;auto_assign_org = true
# Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
;auto_assign_org_id = 1
# Default role new users will be automatically assigned (if disabled above is set to true)
;auto_assign_org_role = Viewer
# Require email validation before sign up completes
;verify_email_enabled = false
# Background text for the user field on the login page
;login_hint = email or username
;password_hint = password
@@ -260,11 +278,11 @@
# Login cookie name
;login_cookie_name = grafana_session
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days,
;login_maximum_inactive_lifetime_days = 7
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation
;login_maximum_inactive_lifetime_duration =
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
;login_maximum_lifetime_days = 30
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
;login_maximum_lifetime_duration =
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
;token_rotation_interval_minutes = 10
@@ -282,6 +300,12 @@
# This setting is ignored if multiple OAuth providers are configured.
;oauth_auto_login = false
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
;oauth_state_cookie_max_age = 600
# limit of api_key seconds to live before expiration
# Used for uploading images to public servers so they can be included in slack/email messages.
@@ -578,6 +680,8 @@
;provider =
[external_image_storage.s3]
;endpoint =
;path_style_access =
;bucket =
;region =
;path =
@@ -609,10 +713,9 @@
;server_url =
# If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. http://grafana.domain/.
;callback_url =
[enterprise]
# Path to a valid Grafana Enterprise license.jwt file
;license_path =
# Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
# which this setting can help protect against by only allowing a certain amount of concurrent requests.
;concurrent_render_request_limit = 30
[panels]
# If set to true Grafana will allow script tags in text panels. Not recommended as it enable XSS vulnerabilities.
@@ -621,3 +724,93 @@
[plugins]
;enable_alpha = false
;app_tls_skip_verify_insecure = false
# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
# See ICU’s metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt) for a list of supported
# timezone IDs. Fallbacks to TZ environment variable if not set.
;rendering_timezone =
# Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
# Please refer to the HTTP header Accept-Language to understand how to format this value, e.g. 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'.
;rendering_language =
# Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
# Default is 1. Using a higher value will produce more detailed images (higher DPI), but will require more disk space to store an image.
;rendering_viewport_device_scale_factor =
# Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to
# the security risk it's not recommended to ignore HTTPS errors.
;rendering_ignore_https_errors =
# Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is false and will
# only capture and log error messages. When enabled, debug messages are captured and logged as well.
# For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure
# [log].filter = rendering:debug.
;rendering_verbose_logging =
# Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service.
# Default is false. This can be useful to enable (true) when troubleshooting.
;rendering_dumpio =
# Additional arguments to pass to the headless browser instance. Default is --no-sandbox. The list of Chromium flags can be found
# here (https://peter.sh/experiments/chromium-command-line-switches/). Multiple arguments is separated with comma-character.
;rendering_args =
# You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.
# Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
# compatible with the plugin.
;rendering_chrome_bin =
# Instruct how headless browser instances are created. Default is 'default' and will create a new browser instance on each request.
# Mode 'clustered' will make sure that only a maximum of browsers/incognito pages can execute concurrently.
# Mode 'reusable' will have one browser instance and will create a new incognito page on each request.
;rendering_mode =
# When rendering_mode = clustered you can instruct how many browsers or incognito pages can execute concurrently. Default is 'browser'
# and will cluster using browser instances.
# Mode 'context' will cluster using incognito pages.
;rendering_clustering_mode =
# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
;rendering_clustering_max_concurrency =
# Limit the maximum viewport width, height and device scale factor that can be requested.
;rendering_viewport_max_width =
;rendering_viewport_max_height =
;rendering_viewport_max_device_scale_factor =
# Change the listening host and port of the gRPC server. Default host is 127.0.0.1 and default port is 0 and will automatically assign
# a port not in use.
;grpc_host =
;grpc_port =
[enterprise]
# Path to a valid Grafana Enterprise license.jwt file
;license_path =
[feature_toggles]
# enable features, separated by spaces
;enable =
[date_formats]
# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
# Default system date format used in time range picker and other places where full time is displayed
;full_date = YYYY-MM-DD HH:mm:ss
# Used by graph and other places where we only show small intervals
;interval_second = HH:mm:ss
;interval_minute = HH:mm
;interval_hour = MM/DD HH:mm
;interval_day = MM/DD
;interval_month = YYYY-MM
;interval_year = YYYY
# Experimental feature
;use_browser_locale = false
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
@@ -4,13 +4,12 @@ This guide helps you get started developing Grafana.
Before you begin, you might want to read [How to contribute to Grafana as a junior dev](https://medium.com/@ivanahuckova/how-to-contribute-to-grafana-as-junior-dev-c01fe3064502) by [Ivana Huckova](https://medium.com/@ivanahuckova).
## Dependencies
Make sure you have the following dependencies installed before setting up your developer environment:
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org)
- [Yarn](https://yarnpkg.com)
@@ -21,18 +20,21 @@ We recommend using [Homebrew](https://brew.sh/) for installing any missing depen
```
brew install git
brew install go
brew install node
brew install node@12
npm install -g yarn
```
## Download Grafana
We recommend using Go to download the source code for the Grafana project:
We recommend using the Git command-line interface to download the source code for the Grafana project:
1.Add `export GOPATH=$HOME/go/` to the bottom of your `$HOME/.bash_profile`.
1. Open a terminal and run `go get github.com/grafana/grafana` in your terminal. This command downloads, and installs Grafana to your `$GOPATH`.
1. Open `$GOPATH/src/github.com/grafana/grafana` in your favorite code editor.
1.Open a terminal and run `git clone https://github.com/grafana/grafana.git`. This command downloads Grafana to a new `grafana` directory in your current directory.
1. Open the `grafana` directory in your favorite code editor.
For alternative ways of cloning the Grafana repository, please refer to [GitHub's cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) documentation.
**Warning:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
## Build Grafana
@@ -52,7 +54,7 @@ After the command has finished, we can start building our source code:
yarn start
```
Once `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets whenever every time you change the code.
Once `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets every time you change the code.
Next, we'll build the web server that will serve the frontend assets we just built.
@@ -72,6 +74,10 @@ Log in using the default credentials:
When you log in for the first time, Grafana asks you to change your password.
#### Building on Windows
The Grafana backend includes Sqlite3 which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download).
## Test Grafana
The test suite consists of three types of tests: _Frontend tests_, _backend tests_, and _end-to-end tests_.
@@ -94,27 +100,35 @@ go test -v ./pkg/...
### Run end-to-end tests
The end-to-end tests in Grafana uses [puppeteer](https://github.com/GoogleChrome/puppeteer) to run automated scripts in a headless Chrome browser. To run the tests:
The endtoend tests in Grafana use [Cypress](https://www.cypress.io/) to run automated scripts in a headless Chromium browser. Read more about our [e2e framework](/contribute/style-guides/e2e.md).
To run the tests:
```
yarn e2e-tests
yarn e2e
```
By default, the end-to-end tests assumes Grafana is available on `localhost:3000`. To use a specific URL, set the `BASE_URL` environment variable:
By default, the end-to-end tests starts a Grafana instance listening on `localhost:3001`. To use a specific URL, set the `BASE_URL` environment variable:
```
BASE_URL=http://localhost:3333 yarn e2e-tests
BASE_URL=http://localhost:3333 yarn e2e
```
To follow the tests in the browser while they're running, add the `BROWSER` and `SLOWMO` environment variables:
To follow the tests in the browser while they're running, use the `yarn e2e:debug`.
```
BROWSER=1 SLOWMO=1 yarn e2e-tests
yarn e2e:debug
```
If you want to pick a test first, use the `yarn e2e:dev`, to pick a test and follow the test in the browser while it runs.
```
yarn e2e:dev
```
## Configure Grafana for development
The default configuration, `grafana.ini`, is located in the `conf` directory.
The default configuration, `defaults.ini`, is located in the `conf` directory.
To override the default configuration, create a `custom.ini` file in the `conf` directory. You only need to add the options you wish to override.
@@ -124,7 +138,6 @@ Enable the development mode, by adding the following line in your `custom.ini`:
app_mode = development
```
### Add data sources
By now, you should be able to build and test a change you've made to the Grafana source code. In most cases, you need to add at least one data source to verify the change.
@@ -166,7 +179,7 @@ The resulting image will be tagged as grafana/grafana:dev.
1. Build the frontend: `go run build.go build-frontend`.
1. Build the Docker image: `make build-docker-dev`.
**Note:** If you are using Docker for macOS, be sure to set the memory limit to be larger than 2 GiB. Otherwise `grunt build` may fail. The memory limit settings are available under **Docker Desktop** -> **Preferences** -> **Advanced**.
**Note:** If you are using Docker for macOS, be sure to set the memory limit to be larger than 2 GiB. Otherwise,`grunt build` may fail. The memory limit settings are available under **Docker Desktop** -> **Preferences** -> **Advanced**.
## Troubleshooting
@@ -174,7 +187,7 @@ Are you having issues with setting up your environment? Here are some tips that
### Too many open files when running `make run`
Depending on your environment, you may have to increase the maximum number of open files allowed.
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
To see how many open files are allowed, run:
@@ -194,7 +207,28 @@ The number of files needed may be different on your environment. To determine th
find ./conf ./pkg ./public/views | wc -l
```
Another alternative is to limit the files being watched. The directories that are watched for changes are listed in the `.bra.toml` file in the root directory.
Another alternative is to limit the files being watched. The directories that are watched for changes are listed in the `.bra.toml` file in the root directory.
To retain your `ulimit` configuration, i.e. so it will be remembered for future sessions, you need to commit it to your command line shell initialization file. Which file this will be depends on the shell you are using, here are some examples:
* zsh -> ~/.zshrc
* bash -> ~/.bashrc
Commit your ulimit configuration to your shell initialization file as follows ($LIMIT being your chosen limit and $INIT_FILE being the initialization file for your shell):
```
echo ulimit -S -n $LIMIT >> $INIT_FILE
```
Your command shell should read the initialization file in question every time it gets started, and apply your `ulimit` command.
For some people, typically using the bash shell, ulimit fails with an error similar to the following:
```
ulimit: open files: cannot modify limit: Operation not permitted
```
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already a ulimit command that you can tweak.
Grafanas backend has been developed for a long time with a mix of code styles. This guide explains how we want to write Go code in the future.
Grafana's backend has been developed for a long time with a mix of code styles. This guide explains how we want to write Go code in the future.
Unless stated otherwise, use the guidelines listed in the following articles:
@@ -39,7 +39,3 @@ Tests must use the standard library, `testing`. For assertions, prefer using [te
The majority of our tests uses [GoConvey](http://goconvey.co/) but that's something we want to avoid going forward.
In the `sqlstore` package we do database operations in tests and while some might say that's not suited for unit tests. We think they are fast enough and provide a lot of value.
## General guidelines
- Avoid using import aliases, e.g. `import m "github.com/grafana/grafana/pkg/models"`.
1. [Set stability of an API](#set-stability-of-an-api)
1. [Deprecate an API](#deprecate-an-api)
1. [Specify parameters](#specify-parameters)
1. [Set return values](#set-return-values)
____
## Add package description
Each package has an overview explaining the overall responsibility and usage of the package.
You can document this description with [`@packageDocumentation`](https://api-extractor.com/pages/tsdoc/tag_packagedocumentation/) tag.
Add this tag to the `<packageRoot>/src/index.ts` entry file to have one place for the package description.
## Set stability of an API
All `exported` apis from the package should have a release tag to indicate its stability.
- [`@alpha`](https://api-extractor.com/pages/tsdoc/tag_alpha/) - early draft of api and will probably change.
- [`@beta`](https://api-extractor.com/pages/tsdoc/tag_beta/) - close to being stable but might change.
- [`@public`](https://api-extractor.com/pages/tsdoc/tag_public/) - ready for usage in production.
- [`@internal`](https://api-extractor.com/pages/tsdoc/tag_internal/) - for internal use only.
### Main stability of APIs
Add a tag to mark the stability of the whole exported `class/interface/function/type` etc.
Please place the `release tag` at the bottom of the comment to make it consistent among files and easier to read.
**Do:**
```typescript
/**
* Will help to create DataFrame objects and handle
* the heavy lifting of creating a complex object.
*
* @example
* ```typescript
* const dataFrame = factory.create();
* ```
*
* @public
**/
exportclassDataFrameFactory{
create():DataFrame{}
}
```
**Don't**
```typescript
/**
* Will help to create DataFrame objects and handle
* the heavy lifting of creating a complex object.
*
* @public
* @example
* ```typescript
* const dataFrame = factory.create();
* ```
**/
exportclassDataFrameFactory{
create():DataFrame{}
}
```
### Partial stability of APIs
Add the main stability of the API at the top according to [Main stability of API](#main-stability-of-api).
Then override the non-stable parts of the API with the proper [release tag](#release-tags). This should also be place at the bottom of the comment block.
**Do:**
```typescript
/**
* Will help to create DataFrame objects and handle
* the heavy lifting of creating a complex object.
*
* @example
* ```typescript
* const dataFrame = factory.create();
* ```
*
* @public
**/
exportclassDataFrameFactory{
create():DataFrame{}
/**
* @beta
**/
createMany():DataFrames[]{}
}
```
**Don't**
```typescript
/**
* Will help to create DataFrame objects and handle
* the heavy lifting of creating a complex object.
*
* @example
* ```typescript
* const dataFrame = factory.create();
* ```
**/
exportclassDataFrameFactory{
/**
* @public
**/
create():DataFrame{}
/**
* @beta
**/
createMany():DataFrame[]{}
}
```
## Deprecate an API
If you want to mark an API as deprecated to signal that this API will be removed in the future, then add the [`@deprecated`](https://api-extractor.com/pages/tsdoc/tag_deprecated/) tag.
If applicable add a reason why the API is deprecated directly after the `@deprecated tag`.
## Specify parameters
If you want to specify the possible parameters that can be passed to an API, then add the [`@param`](https://api-extractor.com/pages/tsdoc/tag_param/) tag.
This attribute can be skipped if the type provided by `typescript` and the function comment or the function name is enough to explain what the parameters are.
**Do:**
```typescript
/**
* Will help to create a resource resolver depending
* on the current execution context.
*
* @param context - The current execution context.
* @returns FileResolver if executed on the server otherwise a HttpResolver.
If you want to specify the return value from a function you can use the [`@returns`](https://api-extractor.com/pages/tsdoc/tag_returns/) tag.
This attribute can be skipped if the type provided by `typescript` and the function comment or the function name is enough to explain what the function returns.
**Do:**
```typescript
/**
* Will help to create a resource resolver depending
* on the current execution context.
*
* @param context - The current execution context.
* @returns FileResolver if executed on the server otherwise a HttpResolver.
This guide for Markdown style helps keep contributions consistent across all documentation
created for Grafana products. Refer to the guide and update its sections as needed when a
Subject Matter Expert answers a question on Markdown style, or a decision is made about
how to apply Markdown.
## Headers
In Markdown, the number of "#" symbols creates different heading levels, similar to
HTML heading levels:
**Example**
* \# is \<h1>.
* \#\# is \<h2>.
* \#\#\# is \<h3>.
Start your document with a single ``#`` for the title of the page. Add the sub-headings with two ``##``.
## Bold and emphasis
* Make text **bold** using two asterisks.
**Example:** It is ``**important**`` to use GitHub Flavored Markdown emoji consistently.
* Make text ``*emphasized*`` using single `` _underscores_`` or a single asterisk.
**Example:** GitHub Flavored Markdown emoji should _only_ appear in specific cases.
## Links and references
Create links to other website by wrapping the display text in square brackets, and
the web URL in curved brackets.
\[text to display](www.website.com)
**Example:** For more information on including emoji in GitHub flavored Markdown, refer to the [webfx page on emoji](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of emoji.
## Block quotes
Include Block quotes inside text using right-facing arrows:
**Example**
> Any important information
> about emoji can be separated into
> a blockquote.
## Code blocks
Code blocks written with markdown can show off syntax highlighting specific
to different languages. Use three back tics to create a code block:
```
function testNum(a) {
if (a > 0) {
return "positive";
} else {
return "NOT positive";
}
}
```
Write the name of the language after the first set of back tics, no spaces,
to show specific syntax highlighting. For example; "\```javascript" produces the following:
```javascript
function testNum(a) {
if (a > 0) {
return "positive";
} else {
return "NOT positive";
}
}
```
## Tables
Construct a table by typing the table headings, and separating them with
a "|" character. Then, add a second line of dashes ("-") separated by
another "|" character. When constructing the table cells, separate each cell data with another
"|".
**Example**
Heading one | Heading two
\------------|------------
Cell one data| Cell two data
Will publish as:
Heading one | Heading two
------------|------------
Cell one data| Cell two data
## Lists
### Numbered lists
To avoid inconsistent list numbering, use repetitive list numbering:
\1. First
\1. Second
\1. Third
The list above will always display as:
1. First
2. Second
3. Third
### Unordered lists
Build a list of points - an unordered or unnumbered list - by
using "\*" characters.
**Example**
* First
* Another item
* The last list item
## Images
Include images in a document using the following syntax:
This style guide applies to all documentation created for Grafana products.
For information about how to write technical documentation, we suggest reviewing the content of the [Google Technical Writing courses](https://developers.google.com/tech-writing).
The [Divio documentation system](https://documentation.divio.com/) site and the [Vue writing principles](https://v3.vuejs.org/guide/contributing/writing-guide.html#principles) are also good resources.
## Contributing
The *Documentation style guide* is a living document. Add to it whenever a style decision is made or a question is answered regarding style, grammar, or word choice.
@@ -14,6 +18,32 @@ For all items not covered in this guide, refer to the [Microsoft Style Guide](ht
The [codespell](https://github.com/codespell-project/codespell) tool is run for every change to catch common misspellings.
## Inclusive language
This section provides guidelines on how to avoid using charged language in documentation.
### Allowing and blocking
Don't use "whitelist" or "blacklist" when referring to allowing or blocking content or traffic.
* When used as a noun, use "allowlist" or "blocklist".
* When used as a verb, use "allow" or "block"
Example: _To **allow** outgoing traffic, add the IP to the **allowlist**._
### Leader and follower
Don't use "master" or "slave" to describe relationships between nodes or processes.
* Use "leader", "main" or "primary," instead of "master."
* Use "follower" or "secondary," instead of "slave."
### Exceptions
When referring to a configuration or settings used by third-party libraries och technologies outside the Grafana project, prefer the original name to avoid confusion.
For example, use "master" when referring to the default Git branch.
## Grafana-specific style
The following sections provide general guidelines on topics specific to Grafana documentation. Note that for the most part, these are *guidelines*, not rigid rules. If you have questions, ask in the #docs channel of Grafana Slack.
@@ -27,8 +57,10 @@ The following sections provide general guidelines on topics specific to Grafana
* Write in present tense.
- Not: The panel will open.
- Use: The panel opens. Grafana opens the panel.
* Do not use an ampersand (&) as an abbreviation for "and."
* Do not use an ampersand (&) as an abbreviation for "and."
- **Exceptions:** If an ampersand is used in the Grafana UI, then match the UI.
* Avoid using internal slang and jargon in technical documentation.
* Do not use two spaces after a period. Only add one space after each sentence. Do not add a space at the end of the paragraph.
### File naming conventions
@@ -81,11 +113,43 @@ Always give the reader some idea of what to expect in the reference. Avoid blind
When possible, use the exact title of the page or section you are linking to as the link text.
**Example**
*Refer to the [Documentation style guide](documentation-style-guide.md) for information about word usage and capitalization guidelines.
Refer to the [Documentation style guide](documentation-style-guide.md) for information about word usage and capitalization guidelines.
### Command line examples
* Do not assume everyone is using Linux. Make sure instructions include enough information for Windows and Mac users to successfully complete procedures.
* Do not add `$` before commands. Make it easy for users to copy and paste commands.
* **Wrong:** `$ sudo yum install grafana`
* **Right:** `sudo yum install grafana`
* Include `sudo` before commands that require `sudo` to work.
For terminal examples and Grafana configuration, use a `bash` code block:
```bash
sudo yum install grafana
```
For HTTP request/response, use an `http` code block:
Grafana products has some words, abbreviations, and slang particular to this discourse community.
Grafana products has some words, abbreviations, and terms particular to the Grafana discourse community.
#### checkout, check out
Two words if used as a verb, one word if used as a noun.
**Examples**
* Check out these new features!
* Proceed to checkout.
#### data source
@@ -94,7 +158,6 @@ Two words, not one
**Exceptions:**
* "datasource" used as an identifier
* "datasource" in a URL
* "Open source" should be hyphenated when used as an adjective, e.g. *open-source software*. The open form should be preferred when used as a noun, e.g. *Grafana is open source*.
* Use "data source" instead of "datasource" unless used as an identifier, in code, or as part of a URL.
* Spell out "repository" and avoid the shorter "repo."
* Use "Unix" as the preferred spelling (as opposed to "UNIX", or "unix") when referring to the family of operating systems.
@@ -106,9 +169,21 @@ Two words, not one
* Correct, but passive voice: Your list of active alarms is displayed.
* Incorrect: The list of active alarms displays.
#### drawer
Do not use. This is developer jargon that refers to a UI panel. Refer to the panel or feature by its proper name.
#### intro, introduction
"Introduction" is the preferred word. Use "intro" if there are space constraints (like on the side menu) or you are specifically trying for a less formal, more conversational tone.
#### metadata
One word, not two.
#### open source, open-source
Hyphenate when used as an adjective. For example: _open-source software._
Do not hyphenate when used as an adjective unless the lack of hyphen would cause confusion. For example: _Opensource software design is the most open open-source system I can imagine._
Do not hyphenate when it is used as a noun. For example: _Open source is the best way to develop software._
We could define a selector using `JQuery` [type selectors](https://api.jquery.com/category/selectors/) with a string like `'.gf-form-input.login-form-input'` but that would be brittle as style changes occur frequently. Furthermore there is nothing that signals to future developers that this input is part of an e2e test.
At Grafana, we use `aria-label` as our preferred way of defining selectors instead of `data-*` attributes. This also aids in accessibility.
Let's add a descriptive `aria-label` to our simple example.
Now that we added the `aria-label` we suddenly get more information about this particular field. It's an input field that represents a username, but there it's still not really signaling that it's part of an e2e test.
The next step is to create a `Page` representation in our e2e test framework to glue the test with the real implementation using the `pageFactory` function. For that function we can supply a `url` and `selectors` like in the example below:
```typescript
export const Login = {
url: '/login', // used when called from Login.visit()
username: 'Username input field', // used when called from Login.username().type('Hello World')
};
```
The next step is to add the `Login` page to the exported const `Pages` in `packages/grafana-e2e-selectors/src/selectors/pages.ts` so that it appears when we type `e2e.pages` in our IDE.
```ecmascript 6
export const Pages = {
Login,
...,
...,
...,
};
```
Now that we have a `Page` called `Login` in our `Pages` const we can use that to add a selector in our html like shown below and now this really signals to future developers that it is part of an e2e test.
The last step in our example is to use our `Login` page as part of a test.
- The `url` property is used whenever we call the `visit` function and is equivalent to the Cypress function [cy.visit()](https://docs.cypress.io/api/commands/visit.html#Syntax).
> Best practice after calling `visit` is to always call `should` on a selector to prevent flaky tests when you try to access an element that isn't ready. For more information, refer to [Commands vs. assertions](https://docs.cypress.io/guides/core-concepts/retry-ability.html#Commands-vs-assertions).
- Any defined selector can be accessed from the `Login` page by invoking it. This is equivalent to the result of the Cypress function [cy.get(...)](https://docs.cypress.io/api/commands/get.html#Syntax).
```ecmascript 6
describe('Login test', () => {
it('Should pass', () => {
e2e.pages.Login.visit();
// To prevent flaky tests, always do a .should on any selector that you expect to be in the DOM.
// Read more here: https://docs.cypress.io/guides/core-concepts/retry-ability.html#Commands-vs-assertions
e2e.pages.Login.username().should('be.visible');
e2e.pages.Login.username().type('admin');
});
});
```
## Advanced example
Let's take a look at an example that uses the same `selector` for multiple items in a list for instance. In this example app we have a list of data sources that we want to click on during an e2e test.
Just as before in the basic example we'll start by creating a page abstraction using the `pageFactory` function:
```typescript
export const DataSources = {
url: '/datasources',
dataSources: (dataSourceName: string) => `Data source list item ${dataSourceName}`,
};
````
You might have noticed that instead of a simple `string` as the `selector`, we're using a `function` that takes a string parameter as an argument and returns a formatted string using the argument.
Just as before we need to add the `DataSources` page to the exported const `Pages` in `packages/grafana-e2e-selectors/src/selectors/pages.ts`.
The next step is to use the `dataSources` selector function as in our example below:
When this list is rendered with the data sources with names `A`, `B`, `C` the resulting html would become:
```jsx harmony
<div class="card-item-name" aria-label="Data source list item A">
A
</div>
...
<div class="card-item-name" aria-label="Data source list item B">
B
</div>
...
<div class="card-item-name" aria-label="Data source list item C">
C
</div>
```
Now we can write our test. The one thing that differs from the `Basic example` is that we pass in which data source we want to click on as an argument to the selector function:
> Best practice after calling `visit` is to always call `should` on a selector to prevent flaky tests when you try to access an element that isn't ready. For more information, refer to [Commands vs. assertions](https://docs.cypress.io/guides/core-concepts/retry-ability.html#Commands-vs-assertions).
```ecmascript 6
describe('List test', () => {
it('Clicking on data source named B', () => {
e2e.pages.DataSources.visit();
// To prevent flaky tests, always do a .should on any selector that you expect to be in the DOM.
// Read more here: https://docs.cypress.io/guides/core-concepts/retry-ability.html#Commands-vs-assertions
@@ -7,31 +7,279 @@ Generally we follow the Airbnb [React Style Guide](https://github.com/airbnb/jav
- [Frontend Style Guide](#frontend-style-guide)
- [Table of Contents](#table-of-contents)
- [Basic rules](#basic-rules)
- [Organization](#organization)
- [Props](#props)
- [Naming conventions](#naming-conventions)
- [File and directory naming conventions](#file-and-directory-naming-conventions)
- [Code organization](#code-organization)
- [Exports](#exports)
- [Comments](#comments)
- [React](#react)
- [Props](#props)
- [State management](#state-management)
- [Proposal for removing or replacing Angular dependencies](https://github.com/grafana/grafana/pull/23048)
## Basic rules
- Try to keep files small and focused.
- Break large components up into sub-components.
- Use spaces for indentation.
## Organization
### Naming conventions
- Components and types that needs to be used by external plugins needs to go into @grafana/ui
- Components should get their own folder under features/xxx/components
- Sub components can live in that component folders, so small component do not need their own folder
- Place test next to their component file (same dir)
- Component sass should live in the same folder as component code
- State logic & domain models should live in features/xxx/state
- Containers (pages) can live in feature root features/xxx
- up for debate?
#### Use `PascalCase` for:
## Props
##### Typescript class names
- Name callback props and handlers with an "on" prefix.
```typescript
// bad
classdataLink{
//...
}
// good
classDataLink{
//...
}
```
##### Types and interfaces
```
// bad
interface buttonProps {
//...
}
// bad
interface button_props {
//...
}
// bad
interface IButtonProps {
//...
}
// good
interface ButtonProps {
//...
}
// bad
type requestInfo = ...
// bad
type request_info = ...
// good
type RequestInfo = ...
```
##### Enums
```
// bad
enum buttonVariant {
//...
}
// good
enum ButtonVariant {
//...
}
```
#### Use `camelCase` for:
##### Functions
```typescript
// bad
constCalculatePercentage=()=>{...}
// bad
constcalculate_percentage=()=>{...}
// good
constcalculatePercentage=()=>{...}
```
##### Methods
```typescript
classDateCalculator{
// bad
CalculateTimeRange(){...}
}
classDateCalculator{
// bad
calculate_time_range(){...}
}
classDateCalculator{
// good
calculateTimeRange(){...}
}
```
##### Variables
```typescript
// bad
constQueryTargets=[];
// bad
constquery_targets=[];
// good
constqueryTargets=[];
```
##### React state and properties
```typescript
interfaceModalState{
// bad
IsActive: boolean;
// bad
is_active: boolean;
// good
isActive: boolean;
}
```
##### Emotion class names
```typescript
constgetStyles==()=>({
// bad
ElementWrapper: css`...`,
// bad
["element-wrapper"]:css`...`,
// good
elementWrapper: css`...`,
});
```
#### Use `ALL_CAPS` for constants.
```typescript
// bad
constconstantValue="This string won't change";
// bad
constconstant_value="This string won't change";
// good
constCONSTANT_VALUE="This string won't change";
```
#### Use [BEM](http://getbem.com/) convention for SASS styles.
_SASS styles are deprecated. Please migrate to Emotion whenever you need to modify SASS styles._
### Typing
In general, you should let Typescript infer the types so that there's no need to explicitly define type for each variable.
There are some exceptions to this:
```typescript
// Typescript needs to know type of arrays or objects otherwise it would infer it as array of any
// bad
conststringArray=[];
// good
conststringArray: string[]=[];
```
Specify function return types explicitly in new code. This improves readability by being able to tell what a function returns just by looking at the signature. It also prevents errors when a function's return type is broader than expected by the author.
> Note: We don't have linting for this enabled because of lots of old code that needs to be fixed first.
- When the primary export is a class or React component, use PascalCase.
- When the primary export is a function, use camelCase.
For files exporting multiple utility functions, use the name that describes the responsibility of grouped utilities. For example, a file exporting math utilities should be named `math.ts`.
- Use `constants.ts` for files exporting constants.
- Use `actions.ts` for files exporting Redux actions.
- Use `reducers.ts` Redux reducers.
- Use `*.test.ts(x)` for test files.
### Code organization
Organize your code in a directory that encloses feature code:
- Put Redux state and domain logic code in `state` directory (i.e. `features/my-feature/state/actions.ts`).
- Put React components in `components` directory (i.e. `features/my-feature/components/ButtonPeopleDreamOf.tsx`).
- Put test files next to the test subject.
- Put containers (pages) in feature root (i.e. `features/my-feature/DashboardPage.tsx`).
- Subcomponents can live in the component folders. Small component do not need their own folder.
- Component SASS styles should live in the same folder as component code.
For code that needs to be used by external plugin:
- Put components and types in `@grafana/ui`.
- Put data models and data utilities in `@grafana/data`.
- Put runtime services interfaces in `@grafana/runtime`.
#### Exports
- Use named exports for all code you want to export from a file.
- Use declaration exports (i.e. `export const foo = ...`).
- Export only the code that is meant to be used outside the module.
### Comments
- Use [TSDoc](https://github.com/microsoft/tsdoc) comments to document your code.
- Use [react-docgen](https://github.com/reactjs/react-docgen) comments (`/** ... */`) for props documentation.
- Use inline comments for comments inside functions, classes etc.
- Please try to follow the [code comment guidelines](./code-comments.md) when adding comments.
### Linting
Linting is performed using [@grafana/eslint-config](https://github.com/grafana/eslint-config-grafana).
## React
Use the following conventions when implementing React components:
### Props
##### Name callback props and handlers with an "on" prefix.
- Use helpers `actionCreatorFactory` and `reducerFactory` instead of traditional `switch statement` reducers in Redux. See [Redux framework](redux.md) for more details.
- Use `createSlice`. See [Redux Toolkit](https://redux-toolkit.js.org/) for more details.
- Use `reducerTester` to test reducers. See [Redux framework](redux.md) for more details.
- Use state selectors to access state instead of accessing state directly.
To reduce the amount of boilerplate code used to create a strongly typed redux solution with actions, action creators, reducers and tests we've introduced a small framework around Redux.
Grafana uses [Redux Toolkit](https://redux-toolkit.js.org/) to handle Redux boilerplate code.
> Some of our Reducers are used by Angular and therefore state is to be considered as mutable for those reducers.
`+` Much less boilerplate code
`-` Non Redux standard api
## New core functionality
### actionCreatorFactory
Used to create an action creator with the following signature
Sometimes you encounter a `resulting state` that contains properties that are hard to compare, such as `Dates`, but you still want to compare that other props in state are correct.
Then you can use `thenStatePredicateShouldEqual` function on `reducerTester` that will return the `resulting state` so that you can expect upon individual properties..
[Storybook](https://storybook.js.org/) is a tool which we use to manage our design system and the components which are a part of it. Storybook consists of _stories:_ each story represents a component and a case in which it is used. To show a wide variety of use cases is good both documentation wise and for troubleshooting -- it might be possible to reproduce a bug for an edge case in a story.
Storybook is:
- A good way to publish our design system with its implementations
- Used as a tool for documentation
- Used for debugging and displaying edge cases
## How to create stories
Stories for a component should be placed next to the component file. The Storybook file requires the same name as the component file. For example, a story for `SomeComponent.tsx` will have the file name `SomeComponent.story.tsx`. If a story should be internal, not visible in production, name the file `SomeComponent.story.internal.tsx`.
### Writing stories
When writing stories, we use the [CSF format](https://storybook.js.org/docs/formats/component-story-format/). For more in-depth information on writing stories, see [Storybook’s documentation on writing stories](https://storybook.js.org/docs/basics/writing-stories/).
With the CSF format, the default export defines some general information about the stories in the file:
-`title`: Where the component is going to live in the hierarchy
-`decorators`: A list which can contain wrappers or provide context, such as theming
```jsx
// In MyComponent.story.tsx
importMyComponentfrom'./MyComponent';
exportdefault{
title:'General/MyComponent',
component:MyComponent,
decorators:[...],
}
```
When it comes to writing the actual stories, you continue in the same file with named exports. The exports are turned into the story name.
```jsx
// Will produce a story name “some story”
exportconstsomeStory=()=><MyComponent/>;
```
If you want to write cover cases with different values for props, then using knobs is usually enough. You don’t need to create a new story. This will be covered further down.
### Categorization
We currently have these categories:
- **Docs Overview** - Guidelines and information regarding the design system
- **Forms** - Components commonly used in forms such as different kind of inputs
- **General** - Components which can be used in a lot of different places
- **Visualizations** - Data visualizations
- **Panel** - Components belonging to panels and panel editors
## Writing MDX documentation
An MDX file is basically a markdown file with the possibility to add jsx. These files are used by Storybook to create a “docs” tab.
### Link the MDX file to a component’s stories
To link a component’s stories with an MDX file you have to do this:
```jsx
// In TabsBar.story.tsx
import{TabsBar}from"./TabsBar";
// Import the MDX file
importmdxfrom"./TabsBar.mdx";
exportdefault{
title:"General/Tabs/TabsBar",
component:TabsBar,
parameters:{
docs:{
// This is the reference required for the MDX file
page:mdx,
},
},
};
```
### MDX file structure
There are some things that the MDX file should contain:
- When and why the component should be used
- Best practices - dos and don’ts for the component
- Usage examples with code. It is possible to use the `Preview` element to show live examples in MDX
- Props table. This can be generated by doing the following:
```jsx
// In MyComponent.mdx
import{Props}from"@storybook/addon-docs/blocks";
import{MyComponent}from"./MyComponent";
<Propsof={MyComponent}/>;
```
### MDX file without a relationship to a component
An MDX file can exist by itself without any connection to a story. This can be good for writing things such as a general guidelines page. Two things are required for this to work:
- The file needs to be named `*.story.mdx`
- A `Meta` tag must exist that says where in the hierarchy the component lives. It can look like this:
```jsx
<Metatitle="Docs Overview/Color Palettes"/>
#Guidelinesforusingcolors
...
```
You can add parameters to the Meta tag. This example shows how to hide the tools:
A quick way to get an overview of what a component does is by looking at its properties. That's why it is important that we document these in a good way.
### Comments
When writing the props interface for a component, it is possible to add a comment to that specific property, which will end up in the Props table in the MDX file. The comments are generated by [react-docgen](https://github.com/reactjs/react-docgen) and are formatted by writing `/** */`.
```jsx
interfaceMyProps{
/** Sets the initial values, which are overridden when the query returns a value*/
defaultValues:Array<T>;
}
```
### Knobs
Knobs is an [addon to Storybook](https://github.com/storybookjs/storybook/tree/master/addons/knobs) which can be used to easily switch values in the UI. A good use case for it is to try different props for the component. Using knobs is easy. Grafana is set up so knobs can be used straight out of the box. Here is an example of how you might use it.
```jsx
// In MyComponent.story.tsx
import{number,text}from"@storybook/addon-knobs";
exportconstbasicStory=()=>(
<MyComponent
max={number("Max value",10)}
min={number("Min value",-10)}
title={text("Title","Look at the value!")}
/>
);
```
The general convention is that the first parameter of the knob is its name and the second is the default value. There are some more types:
[Emotion](https://emotion.sh/docs/introduction) is our default-to-be approach to styling React components. It provides a way for styles to be a consequence of properties and state of a component.
### Usage
## Usage
#### Basic styling
### Basic styling
For styling components use Emotion's `css` function
For styling components, use [Emotion's `css` function](https://emotion.sh/docs/emotion#css).
```tsx
import{css}from'emotion';
importReactfrom'react';
import{css}from'emotion';
constComponentA=()=>{
return(
<divclassName={css`background: red;`}>
Asredasyoucange
</div>
);
}
constComponentA=()=>(
<div
className={css`
background: red;
`}
>
Asredasyoucanget
</div>
);
```
#### Styling complex components
### Styling with theme
In more complex cases, especially when you need to style multiple DOM elements in one component or when your styles that depend on properties and/or state, you should create a helper function that returns an object with desired stylesheet. This function should also be wrapped in `stylesFactory` helper function that will provide basic memoization.
Let's say you need to style a component that has different background depending on the theme:
To access the theme in your styles, use the `useStyles` hook. It provides basic memoization and access to the theme object.
In more complex cases, especially when you need to style multiple DOM elements in one component, or when using styles that depend on properties and/or state, you should create a helper function that returns an object of styles. This function should also be wrapped in the `stylesFactory` helper function, which will provide basic memoization.
Let's say you need to style a component that has a different background depending on the theme:
**Themes are implemented in Typescript.** That's because our goal is to share variables between Grafana Typescript code and SASS files. Theme definitions are located in `packages/grafana-ui/src/themes/[default|dark|light].ts` files. `default.ts` file holds common variables like typography and spacing definitions, while `[light|dark].ts` primarily specify colors used in themes.
**Themes are implemented in Typescript.** That's because our goal is to share variables between Grafana TypeScript and [Sass](https://sass-lang.com/) code. Theme definitions are located in the following files:
// Your component has access to the theme variables now
}
```
#### Using `withTheme` higher-order component (HOC)
With this method your component will be automatically wrapped in `ThemeContext.Consumer` and provided with current theme via `theme` prop. Component used with `withTheme` must implement `Themeable` interface.
With this method your component will be automatically wrapped in `ThemeContext.Consumer` and provided with current theme via `theme` prop. Components used with `withTheme` must implement the `Themeable` interface.
When implementing snapshot tests for components that use the `withTheme` HOC, the snapshot will contain the entire theme object. Any change to the theme renders the snapshot outdated.
All stories are wrapped with `ThemeContext.Provider` using global decorator. To render `Themeable` component that's not wrapped by `withTheme` HOC you either create a new component in your story:
```tsx
// Foo.story.tsx
constFooWithTheme=withTheme(Foo);
FooStories.add('Story'()=>{
return<FooWithTheme/>
});
```
or use `renderComponentWithTheme` helper:
```tsx
// Bar.story.tsx
BarStories.add('Story'()=>{
returnrenderComponentWithTheme(Bar,/* pass props here */)
});
```
### Using themes in Angular code
There should be very few cases where theme would be used in Angular context. For this purpose there is a function available that retrieves current theme: `import { getCurrentTheme } from app/core/utils/ConfigProvider`. Angular components should be migrated to React, or if that's not possible at the moment, styled using SASS.
## FAQ
### How can I modify SASS variable files?
This section provides insight into frequently-asked questions.
### How can I modify Sass variable files?
**If possible, migrate styles to Emotion**
> For the following to apply you need to run `yarn dev` task.
`[_variables|_variables.dark|_variables.light].generated.scss` files are the ones that are referenced in the main SASS files for SASS variables to be available. **These files are automatically generated and should never be modified by hand!**.
`[_variables|_variables.dark|_variables.light].generated.scss` files are the ones that are referenced in the main Sass files for Sass variables to be available. **These files are automatically generated and should never be modified by hand!**
#### If you need to modify a _Sass variable value_ you need to modify the corresponding Typescript file that is the source of the variables:
#### If you need to modify *SASS variable value* you need to modify corresponding Typescript file that is a source of the variables:
### You must ensure ThemeContext provider is available in a React tree
By default all react2angular directives have `ThemeContext.Provider` ensured. But, there are cases where we create another React tree via `ReactDOM.render`. This happens in case of graph legend rendering and `ReactContainer` directive. In such cases theme consumption will fail. To make sure theme context is available in such cases, you need to wrap your rendered component with ThemeContext.Provider using `provideTheme` function:
This section describes limitations with Grafana's theming system.
### You must ensure `ThemeContext` provider is available in a React tree
By default all react2angular directives have `ThemeContext.Provider` ensured. But, there are cases where we create another React tree via `ReactDOM.render`. This happens in the case of graph legend rendering and the `ReactContainer` directive. In such cases theme consumption will fail. To make sure theme context is available in such cases, you need to wrap your rendered component with ThemeContext.Provider using the `provideTheme` function:
Templates are both a starting point and an instruction manual for writing something new. They are intended to make life easier by providing a jumping-off point, something besides a blank page to start from. They are not intended to be a limitation. If the template does not work perfectly for your use case, you can adjust or change it. We will work it out in code review.
## Create a template
Feel free to add templates to the `templates` folder. Try to make them as generic as possible and include clear instructions for when and how to use the template. Assume that the template user is a brand new contributor and write accordingly.
## Use a template
1. Read the template. Make sure you understand what it is for and how it is intended to be used.
1. Copy and rename the template. Move it to where you actually need it.
You might also want to copy the content of the template and paste it into a different file. This is acceptable use.
1. Replace the template content with your own. Delete whatever is unnecessary.
## Documentation templates
In an ideal world, each topic will correspond to an information *type* ([task](doc-task-template.md), [reference](doc-reference-template.md), [concept](doc-concept-template.md)) and contain only that type of information.
However, this is not always practical. For example, you have a series of short topics, you can group them into one topic.
Try to *chunk* your content. This means you should organize the document so that the same kinds of content are grouped together.
### Chunking example
If I was writing content for a site called *Doggie handbook*, I might organize it like this.
**Concept**
* What a dog is
* Brief history of dogs
* Why you might want a dog
* Tasks dogs can be trained to do
**Tasks**
* Feed the dog
* Groom the dog
* Train the dog
**Reference**
* List of dog equipment you will need
* Table of breeds that includes breed name, size range, short or long hair, and type of dog
### Audience
Write for an audience that is computer literate and has general technical knowledge, but is not necessarily familiar with Grafana or the finer points of observability.
Pretend you are explaining your topic to a brand new Grafana user or developer.
### Self-contained
Thanks to search engines, every page in the documentation might be a reader's entry point. This means that each page needs to be self-contained and make sense on its own. The reader should not need to read other topics in order to perform the task or understand the concept.
However, try to be helpful and link to related information. Using the *Doggie handbook* example, the concept topic that explains what dogs can be trained to do might link to the Train the dog task.
DELETE THIS LINE: If draft = false, then the document will not be built in the doc site. If the date is earlier than the build date, than the document will not show in the build site. Use these settings to control whether future content is shown in the doc site.
The title of the concept topic will generally be a noun or a gerund. Examples include Templates, Templating, Dashboards, and panels.
Concepts are topic types for any information that doesn't involve task lists or reference information. Ideally you use concept elements to explain concepts, ideas, overviews, workflows, and the like. In the intro section, this first paragraph or two, you should explain to the user what to expect in this topic or section.
[Permissions overview](https://grafana.com/docs/grafana/latest/permissions/overview/) is an example of a concept topic.
## Idea
Concept topics or sections explain *what* and *why*. They do not explain *how*. If you are a new user, you might look for concept information to learn about what Grafana is, why it might be useful to you, and what the general workflow is.
## Workflow
Continuing the example in the previous section, here is a sample Grafana workflow.
1. Install Grafana. <link to task for installing Grafana>
2. Set up data sources. <link to data sources concept topic, which links to data source task topics>
3. Create panels. <link to panel concept topic, which links to tasks>
4. Create dashboards. <link to panel concept topic, which links to tasks>
5. Enter queries. <link to query editor concept topic>
6. Add users. <link to user management concept topic, which links to tasks>
7. Create playlists. <link to Playlist topic that contains concept information and tasks>
## Next steps
Concept tasks often link to related information, including *tasks* related to the concept and *reference* topics related to the concept.
DELETE THIS LINE: If draft = false, then the document will not be built in the doc site. If the date is earlier than the build date, than the document will not show in the build site. Use these settings to control whether future content is shown in the doc site.
The *reference* topic type is for storing reference information, such as extensive tables, lists, or other information that is used as support for a task. Reference topics are also designed for API information.
Often reference topics are linked from *task* topics, because they contain information the user needs in order to perform a task.
[Grafana CLI](https://grafana.com/docs/grafana/latest/administration/cli/) is one example of a reference topic.
## Lists
Lists of commands or parameters are often organized in reference topics. The information you need to present will dictate the format.
* They might
* be in
* unordered lists.
[Configuration](https://grafana.com/docs/grafana/latest/installation/configuration/) is an example of lists.
## Tables
If you have a large list of things to store in a table, then you are probably dealing with reference information. Hugo accepts either tables in Markdown or in HTML format, so use whichever is easier for you.
The [Glossary](https://grafana.com/docs/grafana/latest/guides/glossary/) provides an example of reference data in a table.
### Empty markdown table
While you might not need a heading for each table, headings are a good way to chunk information if you have several tables. They also make the content easy to skim. Use headings or intro paragraphs like this one to explain to the reader what the information in the table is used for.
| | | | | | |
|:---|:---|:--:|:--:|---:|---:|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
### Empty HTML table
And here is intro text, similar to the paragraph in the previous section. Do not add local styling to the table. The website CSS will take care of that for you.
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
## API documentation
API documentation is always a reference topic rather than a task topic, but it has its own rules.
A *task* topic is intended for a procedure that describes how to accomplish a task. It lists a series of steps that users follow to produce an intended outcome. It tells the reader *how* to do something. [Install Grafana plugins](https://grafana.com/docs/grafana/latest/plugins/installation/) and [Playlist](https://grafana.com/docs/grafana/latest/reference/playlist/) are examples of task topics. Playlist includes a small amount of concept information in the introduction, which is appropriate.
Always include an introduction of a short paragraph or two to explain what the task is for, perhaps give the reader an idea of what the outcome will be.
In most cases, each topic should only contain one task. If you have several very short, related tasks, then you might combine them into one topic.
In the case of a long task, then you probably won't need any headings except for the h1 at the top of the page.
1. Start with step one.
1. Use second-person imperative tense.
1. Basically, "You, do this" with every sentence.
1. Do not use the third-person "user" for steps you want the reader ("you") to perform.
1. Write steps that contain one action, possibly two related actions, such as copy and paste a thing or save and quit the program.
If a sentence is not telling the reader to do something, then it is not a step. You can use nested images or paragraphs like this one to add information if necessary.
In many cases, you should tell the reader what the outcome should be so that they know when they are done.
## One-step task
Some tasks are so short, they only contain one step.
Write one-step tasks as simple sentences, not as unordered lists or numbered lists.
## Short task
Short tasks can be grouped. How short constitutes "short" is a judgment call based on number of steps and how long individual steps are.
1. Use your judgment.
2. Ask your coworkers or someone on the Comm team for advice if you aren't sure.
## Next steps
If the task you are writing leads naturally to one or more other tasks, then include links after the task to help the reader figure out where to go next.
Thanks to internet search engines, every page in the documentation could be page one. Pretend you are explaining your task to a new Grafana user who just walked in off the street.
## Testing
It is a good practice to have someone else test the task you have written. If they can successfully complete the task using *only* what the steps you have written, not guessing or using their inherent knowledge, then your task has passed the test. However, it is very common to find you have skipped steps, because *you* are very familiar with Grafana and the topic you are explaining.
New users or people from other teams are very helpful for these tests.
@@ -36,5 +36,14 @@ make devenv sources=influxdb,prometheus2,elastic5
Some of the blocks support dynamic change of the image version used in the Docker file. The signature looks like this:
```bash
make devenv sources=postgres,openldap postgres_version=9.2
make devenv sources=postgres,openldap,grafanapostgres_version=9.2grafana_version=6.7.0-beta1
```
### Notes per block
#### Grafana
The grafana block is pre-configured with the dev-datasources and dashboards.
#### Jaeger
Jaeger block runs both Jaeger and Loki container. Loki container sends traces to Jaeger and also logs its own logs into itself so it is possible to setup derived field for traceID from Loki to Jaeger. You need to install a docker plugin for the self logging to work, without it the container won't start. See https://github.com/grafana/loki/tree/master/cmd/docker-driver#plugin-installation for installation instructions.
"rawQuery":"SELECT TOP 1\n createdAt as time,\n 'single' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(createdAt)\nORDER BY time\n",
"showIn":0,
"tags":[],
"type":"tags"
},
{
"datasource":"gdev-mssql",
"enable":false,
"hide":false,
"iconColor":"rgba(0, 211, 255, 1)",
"limit":100,
"name":"Region",
"rawQuery":"SELECT TOP 1\n DATEADD(MINUTE, 1, createdAt) as time,\n DATEADD(MINUTE, 6, createdAt) as timeend,\n 'region' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(createdAt)\nORDER BY time",
"rawQuery":"SELECT\n createdAt as time,\n 'single' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(createdAt)\nORDER BY time\nLIMIT 1\n",
"showIn":0,
"tags":[],
"type":"tags"
},
{
"datasource":"gdev-mysql",
"enable":false,
"hide":false,
"iconColor":"rgba(0, 211, 255, 1)",
"limit":100,
"name":"Region",
"rawQuery":"SELECT\n ADDTIME(createdAt, '00:01:00') as time,\n ADDTIME(createdAt, '00:06:00') as timeend,\n 'region' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(createdAt)\nORDER BY time\nLIMIT 1\n",
"rawQuery":"SELECT\n \"createdAt\" as time,\n 'single' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(\"createdAt\")\nORDER BY time\nLIMIT 1\n",
"showIn":0,
"tags":[],
"type":"tags"
},
{
"datasource":"gdev-postgres",
"enable":false,
"hide":false,
"iconColor":"rgba(0, 211, 255, 1)",
"limit":100,
"name":"Region",
"rawQuery":"SELECT\n \"createdAt\" + (interval '1 minute') as time,\n \"createdAt\" + (6 * interval '1 minute') as timeend,\n 'region' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(\"createdAt\")\nORDER BY time\nLIMIT 1\n",
"showIn":0,
"tags":[],
"type":"tags"
}
]
},
@@ -16,7 +40,7 @@
"editable":true,
"gnetId":null,
"graphTooltip":0,
"iteration":1532620601931,
"iteration":1576249087264,
"links":[],
"panels":[
{
@@ -28,12 +52,14 @@
"dashes":false,
"datasource":"gdev-postgres",
"fill":2,
"fillGradient":0,
"gridPos":{
"h":9,
"w":12,
"x":0,
"y":0
},
"hiddenSeries":false,
"id":2,
"legend":{
"avg":false,
@@ -48,6 +74,9 @@
"linewidth":2,
"links":[],
"nullPointMode":"null",
"options":{
"dataLinks":[]
},
"percentage":false,
"pointradius":5,
"points":false,
@@ -67,20 +96,59 @@
{
"alias":"",
"format":"time_series",
"group":[],
"hide":false,
"metricColumn":"none",
"rawQuery":true,
"rawSql":"SELECT\n $__timeGroup(\"createdAt\",'$summarize'),\n avg(value) as \"value\",\n hostname as \"metric\"\nFROM \n grafana_metric\nWHERE\n $__timeFilter(\"createdAt\") AND\n measurement = 'logins.count' AND\n hostname IN($host)\nGROUP BY time, metric\nORDER BY time",
"refId":"A",
"target":""
"select":[
[
{
"params":["value"],
"type":"column"
}
]
],
"target":"",
"timeColumn":"time",
"where":[
{
"name":"$__timeFilter",
"params":[],
"type":"macro"
}
]
},
{
"alias":"",
"format":"time_series",
"group":[],
"metricColumn":"none",
"rawQuery":true,
"rawSql":"SELECT\n $__timeGroup(\"createdAt\",'$summarize'),\n min(value) as \"value\",\n 'total avg' as \"metric\"\nFROM \n grafana_metric\nWHERE\n $__timeFilter(\"createdAt\") AND\n measurement = 'logins.count'\nGROUP BY time\nORDER BY time",
@@ -35,7 +35,7 @@ RUN if [ ! -z "${CONTAINER_TIMEZONE}" ]; \
# fix python dependencies (LTS Django and newer memcached/txAMQP)
RUN pip install --upgrade pip &&\
pip install django==1.8.18 \
pip install --no-cache-dir django==1.8.18 \
python-memcached==1.53 \
txAMQP==0.6.2
@@ -62,13 +62,13 @@ RUN python ./setup.py install
# install carbon
RUN git clone -b ${carbon_version} --depth 1${carbon_repo} /usr/local/src/carbon
WORKDIR/usr/local/src/carbon
RUN pip install -r requirements.txt \
RUN pip install --no-cache-dir -r requirements.txt \
&& python ./setup.py install
# install graphite
RUN git clone -b ${graphite_version} --depth 1${graphite_repo} /usr/local/src/graphite-web
WORKDIR/usr/local/src/graphite-web
RUN pip install -r requirements.txt \
RUN pip install --no-cache-dir -r requirements.txt \
&& python ./setup.py install
# install statsd
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.