mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
alertinganalyticsbusiness-intelligencedashboarddata-visualizationelasticsearchgografanahacktoberfestinfluxdbmetricsmonitoringmysqlpostgresprometheus
* refactor: move utility functions out of the redux actions * refactor: move password handlers to the feature root * refactor: move API related functions to an api.ts * refactor: move components under a /components folder * refactor: move page containers under a /pages folder and extract components * refactor: update mocks to be easier to reuse * refactor: move tests into a state/tests/ subfolder * refactor: expose 'initialState' for plugins * refactor: move generic types to the root folder of the feature * refactor: import path fixe * refactor: update import paths for app routes * chore: update betterer * refactor: fix type errors due to changed mock functions * chore: fix mocking context_srv in tests * refactor: udpate imports to be more concise * fix: update failing test because of mocks * refactor: use the new `navId` prop where we can * fix: use UID instead ID in datasource edit links * fix:clean up Redux state when unmounting the edit page * refactor: use `uid` instead of `id` * refactor: always fetch the plugin details when editing a datasource The deleted lines could provide performance benefits, although they also make the implementation more prone to errors. (Mostly because we are storing the information about the currently loaded plugin in a single field, and it was not validating if it is for the latest one). We are planning to introduce some kind of caching, but first we would like to clean up the underlying state a bit (plugins & datasources. * fix: add missing dispatch() wrapper for update datasource callback * refactor: prefer using absolute import paths Co-authored-by: Ryan McKinley <ryantxu@gmail.com> * fix: ESLINT import order issue * refactor: put test files next to their files * refactor: use implicit return types for components * fix: remove caching from datasource fetching I have introduced a cache to only fetch data-sources once, however as we are missing a good logic for updating the instances in the Redux store when they change (create, update, delete), this approach is not keeping the UI in sync. Due to this reason I have removed the caching for now, and will reintroduce it once we have a more robust client-side state logic. Co-authored-by: Ryan McKinley <ryantxu@gmail.com> |
||
---|---|---|
.bingo | ||
.changelog-archive | ||
.github | ||
.husky | ||
.vim | ||
.vscode | ||
.yarn | ||
conf | ||
contribute | ||
cue.mod | ||
devenv | ||
docs | ||
e2e | ||
emails | ||
grafana-mixin | ||
packages | ||
packaging | ||
pkg | ||
plugins-bundled | ||
public | ||
scripts | ||
tools | ||
.betterer.results | ||
.betterer.ts | ||
.bra.toml | ||
.browserslistrc | ||
.dockerignore | ||
.drone.star | ||
.drone.yml | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc | ||
.gitattributes | ||
.gitignore | ||
.linguirc | ||
.nvmrc | ||
.pa11yci-pr.conf.js | ||
.pa11yci.conf.js | ||
.prettierignore | ||
.prettierrc.js | ||
.yarnrc.yml | ||
api-extractor.json | ||
babel.config.json | ||
build.go | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Dockerfile.ubuntu | ||
embed.go | ||
go.mod | ||
go.sum | ||
GOVERNANCE.md | ||
HALL_OF_FAME.md | ||
ISSUE_TRIAGE.md | ||
jest.config.js | ||
latest.json | ||
lerna.json | ||
LICENSE | ||
LICENSING.md | ||
MAINTAINERS.md | ||
Makefile | ||
metadata.md | ||
NOTICE.md | ||
package.json | ||
PLUGIN_DEV.md | ||
README.md | ||
ROADMAP.md | ||
SECURITY.md | ||
stylelint.config.js | ||
SUPPORT.md | ||
tsconfig.json | ||
UPGRADING_DEPENDENCIES.md | ||
WORKFLOW.md | ||
yarn.lock |
The open-source platform for monitoring and observability
Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture:
- Visualizations: Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
- Dynamic Dashboards: Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
- Explore Metrics: Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
- Explore Logs: Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
- Alerting: Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
- Mixed Data Sources: Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.
Get started
Unsure if Grafana is for you? Watch Grafana in action on play.grafana.org!
Documentation
The Grafana documentation is available at grafana.com/docs.
Contributing
If you're interested in contributing to the Grafana project:
- Start by reading the Contributing guide.
- Learn how to set up your local environment, in our Developer guide.
- Explore our beginner-friendly issues.
- Look through our style guide and Storybook.
Get involved
- Follow @grafana on Twitter.
- Read and subscribe to the Grafana blog.
- If you have a specific question, check out our discussion forums.
- For general discussions, join us on the official Slack team.
License
Grafana is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.