Grafana being a popular open source project there are a lot of incoming issues. The main goal of issue triage is to categorize all incoming issues and make sure it has all basic information needed for anyone else to understand and/or being able to start working with it.
The core maintainers of the Grafana project is responsible for categorizing all incoming issues and delegate any critical and/or important issue to other maintainers. Currently there's one maintainer each week responsible. Besides that part, triage provides an important way to contribute to an open source project. Triage helps ensure issues resolve quickly by:
Simplified flowchart diagram of the issue triage process:
+--------------------------+
+----------------+ New issue opened/ |
| | more information added |
| +-------------+------------+
| Ask for more |
| information +-------------+------------+
| | All information needed |
| +--------+ to categorize the issue? +--------+
| | | | |
| | NO +--------------------------+ YES |
| | |
+------+-------+-------------+ +------------+---------+ +----------------------------+
| | | | | |
| label: needs more details | | Needs investigation? +--YES---+ label: needs investigation |
| | | | | |
+----------------------------+ +----------------+-----+ +--------------+-------------+
NO | |
| Investigate |
+-----------+----------+ |
| label: type/* | |
| label: area/* +------------------+
| label: datasource/* |
+-----|----------+-----+
| |
| |
| +--+--------------------+ +--------------------+
| | | | label: priority/* |
| | Needs priority? +--YES---+| milestone? |
| | | | |
| +--------------------+--+ +----+---------------+
| NO | |
| | |
+----+-------------+ +---+----------+ |
| | | | |
| Close issue +----------+ Done +------+
| | | |
+------------------+ +--------------+
There are multiple ways that you can help with the Grafana project, especially without writing a single line of code. Everyone in the Grafana community will be greatly thankful you for helping out with any of the below tasks.
The community site is the main channel to be used for asking and answering questions related to the Grafana project. This may be the first place a new or existing Grafana user look/ask for help after they found that the documentation wasn't answering their questions. It's very important to help new and existing users so that these new users can find proper answers and eventually help out other users and by that keep growing the Grafana community.
Please signup to the Grafana community site and start help other Grafana users by answering their questions and/or ask for help.
If you visit the documentation site and find typos/error/lack of information please report these by clicking on the Request doc changes link found on every page and/or contribute the changes yourself by clicking on Edit this page and open a pull request. Everyone in the community will greatly thank you for.
Please read about how documentation issues is triaged below to understand what kind of documentation may be suitable to request/add.
Please review the security policy for more details.
Report a bug you found when using Grafana by opening a new bug report.
Suggest an enhancement or new feature for the Grafana project by opening a new enhancement issue.
Alternatively, help make Grafana be better at being accessible to all by opening a new accessibility issue.
If you find an issue that have a badly formatted title and/or description, bad language/grammar and/or wrong labels it's important to let the issue author or maintainers know so it can be fixed. See good practices regarding basic information for issues below.
The Grafana project have a lot of open issues and the main goal is to only have issues open if their still relevant. If you find an issue that you think already have been resolved or no longer is relevant please report by adding a comment and explain why you think it should be closed including related issues (#<issue number>), if applicable, and optionally mention one of the maintainers.
Helping the Grafana project to know which issues are most important by users and the community is crucial for the success of the project. Read more about prioritizing issues for details about how issues are being prioritized. The Grafana project use GitGub issues and reactions for collecting votes on enhancement and bugs.
Please don't add +1 issue comments or similar since that will notify everyone that have subscribed to an issue and it doesn't add any useful update, rather it creates a bad habit.
If you want to show your interest or importance of an issue, please use GitHub's reactions.
If you find two issues describing the same bug/enhancement/feature please add a comment in one of the issue and explain which issues (#<issue number>) you think is a duplicate of another issue (#<issue number>).
Related to how issues are being prioritized it's important to help anyone that's interested in contributing code for resolving a bug or enhancement. This can be anything from getting started and setup the development environment to reference code and files where changes probably needs to be made and/or suggest ideas on how enhancements may function/be implemented.
Please read about how help from the community may be requested when issues being triaged.
To get started with issue triage and finding issues that haven't been triaged you have two alternatives.
The easiest and straight forward way of getting started and finding issues that haven't been triaged is to browse unlabeled issues and starting from the bottom and working yourself to the top.
The more advanced, but recommended way is to subscribe to all notifications from this repository which means that all new issues, pull requests, comments and important status changes are sent to your configured email address. Read this guide for help with setting this up.
It's highly recommended that you setup filters to automatically remove emails from the inbox and label/categorize them accordingly to make it easy for you to understand when you need to act upon a notification or where to look for finding issues that haven't been triaged etc.
Instructions for setting up filters in Gmail can be found here. Another alternative is to use Trailer or similar software.
Before triaging an issue very far, make sure that the issue's author provided the standard issue information. This will help you make an educated recommendation on how to categorize the issue. The Grafana project utilizes GitHub issue templates to guide contributors to provide standard information that must be included for each type of template or type of issue.
Given a certain issue template have been used by the issue author or depending how the issue is perceived by the issue triage responsible, the following should help you understand what standard issue information that must be included.
Should explain what happened, what was expected and how to reproduce it together with any additional information that may help giving a complete picture of what happened such as screenshots, query inspector output and any environment related information that's applicable and/or maybe related to the reported problem:
Should explain what enhancement or feature that the author wants to be added and why that is needed.
This is a mix between a bug report and enhancement request but focused on accessibility issues to help make Grafana improve keyboard navigation, screen-reader support and being accessible to everyone. The report should include relevant WCAG criteria, if applicable.
In general, if the issue description and title is perceived as a question no more information is needed.
To make it easier for everyone to understand and find issues they're searching for it's suggested as a general rule of thumbs to:
Note: Above rules is applicable to both new and existing issues of the Grafana project.
Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the above information to clarify the problem. Label issue with needs more detail and add any related area/* or datasource/* labels.
If the author provides the standard information but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author does not respond to the requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
When you feel you have all the information needed you're ready to categorizing the issue.
If you receive a notification with additional information provided but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
An issue can have multiple of the following labels. Typically, a properly categorized issue should at least have:
type/*).area/*) and/or datasource (datasource/*), if applicable.| Label | Description |
|---|---|
type/bug |
A feature isn't working as expected given design or documentation. |
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/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. |
area/* |
Subject is related to a functional area of interest or component. |
datasource/* |
Subject is related to a core datasource plugin. |
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:
Duplicate of #<issue number>. GitHub will recognize this and add some additional context to the issue activity.type/duplicate.area/* or datasource/* labels.If it's not perfectly clear that it's an actual bug, quickly try to reproduce it.
It's a bug/it can be reproduced:
type/bug and at least one area/* or datasource/* label.help wanted and optionally beginner friendly together with pointers on which code to update to fix the bug. This should signal to the community that we would appreciate any help we can get to resolve this.It can't be reproduced:
It works as intended/by design:
type/works-as-intended.type/feature-request and at least one area/* or datasource/* label.First, evaluate if the documentation makes sense to be included in the Grafana project:
Second, label the issue type/docs and at least one area/* or datasource/* label.
Minor typo/error/lack of information:
There's a minor typo/error/lack of information that adds a lot of confusion for users and given the amount of work is a big win to make sure fixing it:
Major error/lack of information:
help wanted and beginner friendly, if applicable, to signal that we find this important to fix and we would appreciate any help we can get from the community.type/accessibility and at least one area/* or datasource/* label.type/question.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.
In any case there are uncertainty around the priorization of an issue, please ask the maintainers for help.
| Label | Description |
|---|---|
priority/critical |
Highest priority. Must be actively worked on as someone's top priority right now. |
priority/support-subscription |
This is important for one or several customers having a paid Grafana support subscription. |
priority/important-soon |
Must be staffed and worked on either currently, or very soon, ideally in time for the next release. |
priority/important-longterm |
Important over the long term, but may not be staffed and/or may need multiple releases to complete. |
priority/nice-to-have |
It's a good idea, but not scheduled for any release. |
priority/awaiting-more-evidence |
Lowest priority. Possibly useful, but not yet enough interest in it. |
priority/unscheduled |
Something to look into before and to be discussed during the planning of the next (upcoming) major/minor stable release. |
Critical bug?
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.
Label the issue priority/critical.
If applicable, label the issue priority/support-subscription.
Add the issue to the next upcoming patch release milestone. Create a new milestone if there are none.
Escalate the problem to the maintainers.
Assign or ask a maintainer for help assigning someone to make this issue their top priority right now.
Important short-term?
priority/important-soon.priority/support-subscription.Important long-term?
priority/important-longterm.Nice to have?
priority/nice-to-have.Not critical, but unsure?
priority/unscheduled.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.
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 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:
help wanted.beginner friendly to denote that the issue is suitable for a beginner to work on.effort/small, effort/medium or effort/large.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. Depending of the perceived severity and/or number of upvotes, 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.
Investigating issues can be a very time consuming task, especially for the maintainers given the huge number of combinations of plugins, datasources, 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.
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.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you upvote 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.
Part of issue triage should also be triaging of external PRs. Main goal should be to make sure PRs from external contributors have an owner/reviewer and are not forgotten.
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.
This may be setup by personal preference, but here's a working configuration for reference.
This will give you a structure of labels in the sidebar similar to the following:
- Inbox
...
- Github (mine)
- activity
- assigned
- mentions
- Github (other)
- Grafana