---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/recipes/ydb-sdk/debug-prometheus.md?version=v25.4
  - https://ydb.tech/docs/ru/reference/ydb-sdk/observability/metrics/prometheus.md?version=v25.4
  - href: en/recipes/ydb-sdk/debug-prometheus.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: en/core/recipes/ydb-sdk/debug-prometheus.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/en/llms.txt

# Enabling metrics in Prometheus

Below are examples of the code for enabling metrics in Prometheus in different YDB SDKs.

{% list tabs %}

- Go

  {% list tabs %}

  - Native SDK

      ```go
      package main

      import (
          "context"

          "github.com/prometheus/client_golang/prometheus"
          metrics "github.com/ydb-platform/ydb-go-sdk-prometheus/v2"
          "github.com/ydb-platform/ydb-go-sdk/v3"
          "github.com/ydb-platform/ydb-go-sdk/v3/trace"
      )

      func main() {
          ctx := context.Background()
          registry := prometheus.NewRegistry()
          db, err := ydb.Open(ctx,
              os.Getenv("YDB_CONNECTION_STRING"),
              metrics.WithTraces(
                  registry,
                  metrics.WithDetails(trace.DetailsAll),
                  metrics.WithSeparator("_"),
              ),
          )
          if err != nil {
              panic(err)
          }
          defer db.Close(ctx)
          ...
      }
      ```

  - database/sql

      ```go
      package main

      import (
          "context"
          "database/sql"

          "github.com/prometheus/client_golang/prometheus"
          metrics "github.com/ydb-platform/ydb-go-sdk-prometheus/v2"
          "github.com/ydb-platform/ydb-go-sdk/v3"
          "github.com/ydb-platform/ydb-go-sdk/v3/trace"
      )

      func main() {
          ctx := context.Background()
          registry := prometheus.NewRegistry()
          nativeDriver, err := ydb.Open(ctx,
              os.Getenv("YDB_CONNECTION_STRING"),
              metrics.WithTraces(
                  registry,
                  metrics.WithDetails(trace.DetailsAll),
                  metrics.WithSeparator("_"),
              ),
          )
          if err != nil {
              panic(err)
          }
          defer nativeDriver.Close(ctx)

          connector, err := ydb.Connector(nativeDriver)
          if err != nil {
              panic(err)
          }

          db := sql.OpenDB(connector)
          defer db.Close()
          ...
      }
      ```

  {% endlist %}

- Java

  This functionality is not currently supported.

- Python

  This functionality is not currently supported.

- JavaScript

  <!-- source: en/_includes/work-in-progress.md -->
  This section is under development.
  <!-- endsource: en/_includes/work-in-progress.md -->

- Rust

  <!-- source: en/_includes/feature-not-supported.md -->
  This functionality is not currently supported.
  <!-- endsource: en/_includes/feature-not-supported.md -->

  Track progress or vote for Rust SDK support: [ydb-rs-sdk#267](https://github.com/ydb-platform/ydb-rs-sdk/issues/267)

{% endlist %}
