Using Prometheus in Grafana
Grafana includes built-in support for Prometheus.
Adding the data source to Grafana
- Open the side menu by clicking the Grafana icon in the top header.
- In the side menu under the
Dashboardslink you should find a link named
- Click the
+ Add data sourcebutton in the top header.
Prometheusfrom the Type dropdown.
NOTE: If you’re not seeing the
Data Sourceslink in your side menu it means that your current user does not have the
Adminrole for the current organization.
Data source options
|Name||The data source name. This is how you refer to the data source in panels & queries.|
|Default||Default data source means that it will be pre-selected for new panels.|
|Url||The http protocol, ip and port of you Prometheus server (default port is usually 9090)|
|Access||Proxy = access via Grafana backend, Direct = access directly from browser.|
|Basic Auth||Enable basic authentication to the Prometheus data source.|
|User||Name of your Prometheus user|
|Password||Database user’s password|
Open a graph in edit mode by click the title > Edit (or by pressing
e key while hovering over panel).
|Query expression||Prometheus query expression, check out the Prometheus documentation.|
|Legend format||Controls the name of the time series, using name or pattern. For example |
|Min step||Set a lower limit for the Prometheus step option. Step controls how big the jumps are when the Prometheus query engine performs range queries. Sadly there is no official prometheus documentation to link to for this very important option.|
|Resolution||Controls the step option. Small steps create high-resolution graphs but can be slow over larger time ranges, lowering the resolution can speed things up. |
|Metric lookup||Search for metric names in this input field.|
|Format as||(New in v4.3) Switch between Table & Time series. Table format will only work in the Table panel.|
Instead of hard-coding things like server, application and sensor name in you metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns makes it easy to change the data being displayed in your dashboard.
Checkout the Templating documentation for an introduction to the templating feature and the different types of template variables.
Variable of the type Query allows you to query Prometheus for a list of metrics, labels or label values. The Prometheus data source plugin provides the following functions you can use in the
Query input field.
|label_values(label)||Returns a list of label values for the |
|label_values(metric, label)||Returns a list of label values for the |
|metrics(metric)||Returns a list of metrics matching the specified |
|query_result(query)||Returns a list of Prometheus query result for the |
For details of metric names, label names and label values are please refer to the Prometheus documentation.
Using variables in queries
There are two syntaxes:
Why two ways? The first syntax is easier to read and write but does not allow you to use a variable in the middle of a word. When the Multi-value or Include all value options are enabled, Grafana converts the labels from plain text to a regex compatible string. Which means you have to use
=~ instead of
Annotations allows you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
Prometheus supports two ways to query annotations.
- A regular metric query
- A Prometheus query for pending and firing alerts (for details see Inspecting alerts during runtime)
The step option is useful to limit the number of events returned from your query.