> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebius.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to view logs in Grafana®

To view visualized log data in Grafana, connect Grafana to Observability Logs and query the data using LogQL. Logs support LogQL with some [restrictions](/observability/logs/query-language).

## Prerequisites

1. [Install](/cli/install) and [configure](/cli/configure) Nebius AI Cloud CLI.

2. If you don’t have a service account for observability services, [create one](/iam/service-accounts/manage).

3. Make sure that the service account is in a [group](/iam/authorization/groups) that has at least the `viewer` role within your tenant; for example, the default `viewers` group. You can check this in the [Administration → IAM](https://console.nebius.com/iam/service-accounts) section of the web console.

   If the service account is not in the required group, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/button-vellipsis.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=e80b8e57c43bfd117679262e6a1334ad" width="12" height="24" data-path="_assets/button-vellipsis.svg" /> → **Add to group**, and select `viewers`.

4. Issue a [static key](/iam/authorization/static-keys) for the service account using the following command:

   ```bash theme={null}
   nebius iam static-key issue \
     --name <name_for_the_key> \
     --account-service-account-id <service_account_ID> \
     --service=OBSERVABILITY
   ```

   Copy the value of the static key from the `token` parameter of the response. You will need it on later steps.

## How to connect Grafana

Use one of these ways:

<Tabs>
  <Tab title={`Install Nebius application`}>
    Install the [Grafana solution by Nebius](https://console.nebius.com/applications/overview/nebius/grafana-solution-by-nebius), an application for Managed Service for Kubernetes®. The application is configured to view logs.
  </Tab>

  <Tab title={`Connect a data source in Grafana`}>
    1. Make sure that you have Grafana available, in any of these ways:
       * [Install Grafana on your local machine](https://grafana.com/docs/grafana/latest/setup-grafana/installation/).
       * [Create an account in Grafana Cloud](https://grafana.com/auth/sign-up/create-user).

    2. Open Grafana in your browser.

    3. In the side menu, select **Connections** → **Data sources**.

    4. In the top right corner, click **Add new data source**.

    5. Select **Loki**.

    6. In the Loki configuration, enter the following settings:

       * **Connection** → **URL**: `https://read.logging.api.nebius.cloud/projects/<project_ID>`.
         In the URL, specify your [Project ID](/iam/manage-projects#how-to-get-a-project-id).

       * **Authentication** → **HTTP headers**: click **Add header** and enter `Authorization` and the value of the static key that you [got earlier](#prerequisites).

    7. Click **Save and test**. If Loki is connected successfully, you should see the "Data source successfully connected" message.
  </Tab>
</Tabs>

## How to explore and manage logs

Explore the logs: construct [LogQL](./query-language) queries using **Builder** or create dashboards to visualize metrics. Currently, the only supported stream selector label is `__bucket__`. It can have the following values:

* `sp_serial`: Compute virtual machines (serial logs)
* `sp_mk8s_control_plane`: Managed Kubernetes clusters (control plane logs)
* `sp_mk8s_audit_logs`: Managed Kubernetes clusters (audit logs)
* `sp_mlflow`: Managed MLflow clusters
* `sp_postgres`: Managed PostgreSQL clusters
* `sp_cloudapps`: Standalone Applications
* `sp_k8srelease`: applications for Managed Kubernetes
* `default`: [user-ingested logs](/observability/logs/ingest/index)

### Basic log search

Find deadlocks in a Managed Service for PostgreSQL cluster:

```
{__bucket__="sp_postgres"} |= `deadlock detected`
```

### Filter by log level

```
{__bucket__="default"} | level="error"
```

### Exclude noisy entries

```
{__bucket__="sp_postgres"} |= `ERROR` != `vacuum` != `healthcheck`
```

For the full query syntax, see the [LogQL query language](./query-language) reference.

***

*The Grafana Labs Marks are trademarks of Grafana Labs, and are used with Grafana Labs' permission. We are not affiliated with, endorsed or sponsored by Grafana Labs or its affiliates.*

*Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.*
