Grafana Data Source
Note
The Grafana data source version 3.4.1 requires ITRS Analytics API Gateway version 2.12.0 or later for proper functionality.
Grafana is an open source visualization tool which can be used to visualize data from ITRS Analytics. If you have existing Grafana installs, you can seamlessly integrate data from ITRS Analytics into your current dashboards.
You can also create visualizations using ITRS Analytics Dashboards.
Prerequisites Copied
Note
Starting with Grafana data source version 3.0.2, the new ITRS Analytics data source plugin replaces the previous ITRS Group Obcerv plugin. The old ITRS Group Obcerv plugin is no longer supported.
-
Grafana (version 12.x or higher) is installed and running. For more information, refer to the Grafana installation documentation.
-
The Grafana and ITRS Analytics Keycloak integration is configured and functioning correctly. For guidance, see How to configure Grafana to authenticate users via ITRS Analytics.
-
The API Gateway is deployed and exposes the Public API v2.
- Metric queries require API Gateway 2.7.0 or later, and log queries require API Gateway 2.10.0 or later.
- API Gateway 2.12.0 or later is required to support filtered lookups for chained query variables, value suggestions in the metrics Filter field, and dashboard template variables in the Dimensions (Key and Value) fields of advanced log queries.
-
Log data is ingested into ITRS Analytics for the entities and time range you want to inspect.
Configure the data source Copied
To download and install the plugin, choose one of the following options:
- From the Grafana Plugins website
- By manually downloading the Grafana data source from the ITRS Resources website
Once you have logged into your instance of Grafana, you must configure the ITRS Analytics data source.
To add a new data source:
-
Go to Administration > Data sources in the Grafana navigation panel.
-
Click Add data source, search for
ITRS Analyticsand select it. -
Specify the data source settings. The following settings are available:
Field Description Name Specify a display name for the data source. ITRS Analytics API Host and port of the ITRS Analytics REST API, for example, https://local.itrslab.com/obcerv-app-api-gatewaySkip tls verification If you want to skip the TLS verification. - You can also click on the Default switch on the top of the screen if you want it to appear as default datasource.
-
Click Save & test to save the configuration.
For more information, see the official Grafana documentation to add a data source here.
Query the data source Copied
To visualize data from ITRS Analytics, create a panel in a new or existing Grafana dashboard.
- Open a dashboard or create a new dashboard.
- Click New > New dashboard, and then click Panel.
- Click Configure visualization from the main screen or Configure from the panel configuration window on the right.
- Under Queries, set the data source to ITRS Analytics.
- Set Mode to Metrics or Logs and specify the query parameters for that mode.
Note
A dashboard can combine metrics and logs from ITRS Analytics. Use separate panels for metrics and logs so each panel uses the visualization type that fits the data (for example, time series for metrics and logs for log lines). Within a panel, you can add multiple queries by clicking Add query to define additional Metrics or Logs queries, each with its own parameters.
Query metrics Copied
Set Mode to Metrics and specify the query parameters:
| Field | Description |
|---|---|
| Alias | Displayed in the legend to identify a time series. |
| Filter | Filters will be available for auto-completion when composing a query, they are in the form attribute/dimension="value", for example pod="collection-agent-sx6cv". |
| Metric | Name of the metric. Metrics will be available for auto-completion. |
| Group by | Dimensions or attributes to group by the results. |
| Buckets | Used to populate the Buckets in BucketRequest. |
| Bucket function | Used to populate the Function in BucketRequest. |
| Forecast | If enabled, returns the forecast of the selected metric. This only works if the filter returns only one metric. |
To use status metrics, select the metric and select All fields to display non-numeric fields:
Query logs Copied
The data source can also return log lines from ITRS Analytics. Use Logs mode to search ingested logs and display them in Grafana’s Logs panel.
To create a logs panel:
- Add or edit a panel and select the Logs visualization type.
- Under Queries, select ITRS Analytics as the data source.
- Set Mode to Logs.
- Choose whether you want to run a Simple or Advanced search. Complete the required fields and run the query.
- Use the dashboard time picker to set the range of log entries to retrieve.
Simple search Copied
Simple search is the fastest way to get started when you know roughly which log file you need but not its full entity context.
- Set Search to Simple.
- Click Log name and type a keyword to filter the list of known log sources.
- Select a log source from the dropdown.
The data source discovers log sources by calling the API endpoint POST /api/v2/logs/log-sources for the current dashboard time range (up to 10,000 sources per request). Options are filtered by the text you type against the actual log name.
Each option shows:
- Label — the log source name (for example
output.log). - Description — the log namespace and a summary of entity dimensions (for example
itrsgroup.com/c2/kubernetes-plugin | pod=my-pod, namespace=itrs).
When you select a source, the data source stores the log name, namespace, and entity dimensions from the API response and runs the query automatically. Clearing the selection removes those values.
Advanced search Copied
Advanced search lets you specify the log source manually and refine which log lines are returned.
-
Set Search to Advanced.
-
Enter Log name and Log namespace.
-
Add one or more Dimensions rows:
- Key — type to search dimension names. Suggestions come from
POST /api/v2/lookup/names(dimensions only). Select a name from the list. - Value — type to search values for the selected key, or enter a dashboard template variable with a
$prefix (for example$managedEntityor$host). Suggestions come fromPOST /api/v2/lookup/values. When the value contains$, the platform lookup is skipped and the variable is resolved when the query runs. - Click Add dimension for additional key/value pairs, or Remove to delete a row.
- Key — type to search dimension names. Suggestions come from
-
Optionally refine the query using the fields below:
- Message contains — one substring per line. Log lines match if the message contains any of these substrings (OR logic).
- Trace id — return only log lines with this trace ID.
- Span id — return only log lines with this span ID.
- Max lines — maximum number of log lines to return. Leave empty to use the API default (1000 lines). The API accepts up to 10,000.
- Oldest first — when enabled, results are sorted oldest-to-newest. When disabled (default), results are newest first.
-
Click Run query.
Fields marked with * are required before the data source sends a log query. If any required value is missing, the panel returns no log lines. The data source sends the completed query to POST /api/v2/logs/log-data.
Log line results Copied
Each returned log line includes:
| Field | Description |
|---|---|
| timestamp | When the log entry was recorded. |
| body | The log message text. |
| severity | Log severity as a lowercase label (for example error, warning, info). |
| labels | Entity dimensions, log namespace, log name, and any log attributes returned by the API. |
If a log line includes a trace ID, Grafana can use it for trace correlation in supported visualizations.
Templates and variables Copied
You can define variables in Grafana that allow you to dynamically change the data displayed on your dashboards. Variable types include Query, Textbox, Constant, Custom, Data source, and Interval. Use the ITRS Analytics data source to populate variables and reference dashboard variables in panel queries.
Dashboard template variables apply to:
- Metrics — Filter expression values (for example
pod=$pod). - Advanced search in log queries — Dimensions values (for example Key
managedEntity, Value$managedEntity). - Query variables — JSON lookups that load dimension or attribute values from ITRS Analytics.
You can use common Grafana dashboard variable types in those fields by referencing them with a $ prefix.
Note
You can enable Multi-value selection on only one dashboard variable when using the ITRS Analytics data source. If that variable has several values selected, the data source runs a separate query for each value and combines the results.
Use variables in metrics and logs queries Copied
In a metrics panel, compose a regular Filter and enter the variable with a $ prefix. For example, pod=$pod or container=$containerVar. When the dashboard variable changes, the filter is resolved at query time and the panel refreshes.
In an advanced logs search, select the dimension Key (for example, managedEntity or host) and enter the dashboard variable in the Value field (for example, $managedEntity or $host). Resolved dimension values are sent to POST /api/v2/logs/log-data when the query runs. Changing the dashboard variable refreshes the log panel without re-editing the dimension fields.
Add a datasource variable Copied
If your Grafana instance has more than one ITRS Analytics data source (for example, different environments), you can add a Datasource variable so users pick which one a panel uses. Create a datasource variable that lists only ITRS Analytics data sources, then set the panel’s data source to that variable (for example $datasource). Changing the variable switches the panel to the selected data source.
Add a query variable Copied
To add a query variable that loads values from ITRS Analytics:
-
Go to the Dashboards and click Edit to switch to edit mode.
-
Open the Dashboard settings.
-
Click Variables > Add variable.
-
Set Variable type to Query, then configure the variable using the following options:
Field Description Name Variable name. Refer to this name in panels and other variables with a $prefix.Label Label of the control displayed on the dashboard. Data source Specify ITRS Analytics.Query JSON query used to populate the variable options. See Grafana query syntax. -
(Optional) Enable Multi-value if you want to choose more than one value for the variable. Only one multi-value variable is supported per dashboard that uses this data source.
-
To see a preview of the values, click Run query.
Grafana query syntax Copied
The syntax for the query used to get the variable values is JSON with the form:
{ "name": "<dimension-or-attribute>" }
For example:
{ "name": "container" }
Chained query variables Copied
Query variables can be filtered by another variable, dimension, or attribute. The data source applies the filter when it looks up values (POST /api/v2/lookup/values), so dependent variables only list values that match the selected parent. The syntax is:
{ "name": "<dimension-or-attribute>", "filter": [{ "name": "<dimension-or-attribute>", "value": "$variableName1" }] }
The filter is a list of objects with the fields name and value. The name must be an attribute or dimension name; the value can be a specific value or the name of another variable with the $ prefix. For example, if a variable named kubecontainer exists, then the query could be:
{ "name": "pod", "filter": [{ "name": "container", "value": "$kubecontainer" }] }
This allows variable chaining so the values of some variables can be used to filter other dependent variables. For example, you can list probes under a selected Gateway by filtering probe values on the selected Gateway dimension.