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

# Observability Configuration

> Enable observability and configure Cloud DSN and OTLP endpoints in Blnk.

export const CtaCallout = props => {
  const {title, buttonLabel, href, trackingEvent, buttonTarget, rel = "noopener noreferrer", children} = props;
  const handleCtaClick = () => {
    if (typeof window === "undefined" || !trackingEvent) {
      return;
    }
    try {
      window.dispatchEvent(new CustomEvent("blnk:docs-cta", {
        detail: {
          name: trackingEvent,
          href
        }
      }));
    } catch {}
    try {
      window.posthog?.capture?.(trackingEvent, {
        href
      });
    } catch {}
    const gaPayload = {
      cta_href: href
    };
    try {
      window.gtag?.("event", trackingEvent, gaPayload);
    } catch {}
    try {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        event: trackingEvent,
        ...gaPayload
      });
    } catch {}
  };
  const isExternal = typeof href === "string" && (/^https?:\/\//i).test(href);
  const target = buttonTarget ?? (isExternal ? "_blank" : undefined);
  const linkRel = isExternal ? rel : undefined;
  return <section className="cta-callout not-prose relative my-8 w-full min-w-0 overflow-hidden rounded-xl border border-zinc-200 p-5 dark:border-white/10">
      <div className="cta-callout-noise" aria-hidden="true" />
      <div className="cta-callout-layout">
        {title ? <div className="cta-callout-title-row">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="14" height="14" className="cta-callout-icon shrink-0 text-zinc-800 dark:text-zinc-200" aria-hidden="true">
              <g fill="none" fillRule="nonzero">
                <path d="M28 0v28H0V0h28ZM14.691833333333335 27.134333333333334l-0.012833333333333334 0.0023333333333333335 -0.08283333333333333 0.04083333333333334 -0.023333333333333334 0.004666666666666667 -0.016333333333333335 -0.004666666666666667 -0.08283333333333333 -0.04083333333333334c-0.011666666666666667 -0.004666666666666667 -0.022166666666666668 -0.0011666666666666668 -0.028000000000000004 0.005833333333333334l-0.004666666666666667 0.011666666666666667 -0.019833333333333335 0.49933333333333335 0.005833333333333334 0.023333333333333334 0.011666666666666667 0.015166666666666667 0.12133333333333333 0.08633333333333333 0.0175 0.004666666666666667 0.014000000000000002 -0.004666666666666667 0.12133333333333333 -0.08633333333333333 0.014000000000000002 -0.018666666666666668 0.004666666666666667 -0.019833333333333335 -0.019833333333333335 -0.4981666666666667c-0.0023333333333333335 -0.011666666666666667 -0.0105 -0.019833333333333335 -0.019833333333333335 -0.021Zm0.3091666666666667 -0.13183333333333336 -0.015166666666666667 0.0023333333333333335 -0.21583333333333335 0.1085 -0.011666666666666667 0.011666666666666667 -0.0035000000000000005 0.012833333333333334 0.021 0.5016666666666667 0.005833333333333334 0.014000000000000002 0.009333333333333334 0.008166666666666668 0.23450000000000004 0.1085c0.014000000000000002 0.004666666666666667 0.026833333333333334 0 0.03383333333333334 -0.009333333333333334l0.004666666666666667 -0.016333333333333335 -0.03966666666666667 -0.7163333333333334c-0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.023333333333333334 -0.023333333333333334 -0.025666666666666667Zm-0.8341666666666667 0.0023333333333333335a0.026833333333333334 0.026833333333334334 0 0 0 -0.0315 0.007000000000000001l-0.007000000000000001 0.016333333333333335 -0.03966666666666667 0.7163333333333334c0 0.014000000000000002 0.008166666666666668 0.023333333333333334 0.019833333333333335 0.028000000000000004l0.0175 -0.0023333333333333335 0.23450000000000004 -0.1085 0.011666666666666667 -0.009333333333333334 0.004666666666666667 -0.012833333333333334 0.019833333333333335 -0.5016666666666667 -0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.011666666666666667 -0.21466666666666667 -0.10733333333333334Z" strokeWidth="1.1667" />
                <path fill="currentColor" d="M14 2.916666666666667A1.75 1.75 0 0 1 15.750000000000002 4.666666666666667v6.302333333333334L21.207666666666668 7.816666666666667a1.75 1.75 0 0 1 1.75 3.031L17.5 14l5.457666666666667 3.151166666666667a1.75 1.75 0 0 1 -1.75 3.031l-5.457666666666667 -3.1500000000000004V23.333333333333336a1.75 1.75 0 0 1 -3.5 0v-6.302333333333334L6.792333333333334 20.183333333333337a1.75 1.75 0 1 1 -1.75 -3.031L10.5 14 5.042333333333334 10.848833333333333a1.75 1.75 0 0 1 1.75 -3.031l5.457666666666667 3.1500000000000004V4.666666666666667A1.75 1.75 0 0 1 14 2.916666666666667Z" strokeWidth="1.1667" />
              </g>
            </svg>
            <p className="cta-callout-title min-w-0 font-semibold text-zinc-800 dark:text-zinc-200">
              {title}
            </p>
          </div> : null}
        <div className={`cta-callout-body text-sm leading-normal text-zinc-800 dark:text-zinc-200${title ? " cta-callout-body--indented" : ""}`}>
          {children}
        </div>
        <a href={href} target={target} rel={linkRel} onClick={handleCtaClick} data-docs-cta={trackingEvent || undefined} className="cta-callout-button inline-flex items-center justify-center gap-1 rounded-full bg-white px-3 py-1.5 text-sm font-semibold transition hover:bg-zinc-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white/50 dark:bg-white dark:hover:bg-zinc-200">
          {buttonLabel}
          <span className="cta-callout-button-arrow" aria-hidden="true">
            →
          </span>
        </a>
      </div>
    </section>;
};

This page lists the flags that control **operational observability** in Blnk Core. For how to think about logs, traces, and metrics, and for setup walkthroughs for Blnk Cloud and self-hosted export, see [Monitoring in Blnk](/advanced/monitoring).

These settings are independent from [queue monitoring](/advanced/monitoring-port), which exposes a separate HTTP port for queue inspection.

***

## Observability flags

<CodeGroup>
  ```bash blnk.env theme={"system"}
  BLNK_ENABLE_OBSERVABILITY=false
  BLNK_CLOUD_DSN=
  ```

  ```json blnk.json theme={"system"}
  {
    "enable_observability": false,
    "cloud_dsn": ""
  }
  ```
</CodeGroup>

|                             | Outcome when set                                                                                                                                                             | Default |
| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |
| `BLNK_ENABLE_OBSERVABILITY` | Core emits logs, traces, and metrics; `/metrics` is registered on the API port and worker monitoring port.                                                                   | `false` |
| `BLNK_CLOUD_DSN`            | Blnk Cloud DSN. Forwards logs, traces, and metrics to your Blnk Cloud monitoring project. Requires observability to be on. Format: `https://<write-key>@<host>/<project-id>` | none    |

For `/metrics` bearer authentication, see [Server & security](/advanced/configuration/server-security#metrics-endpoint).

<Warning>
  `BLNK_CLOUD_DSN` has no effect when `BLNK_ENABLE_OBSERVABILITY` is `false`.
</Warning>

Exported logs have sensitive values redacted before they leave your instance.

***

## Blnk Cloud DSN

Set the Blnk Cloud DSN when you export logs, traces, and metrics to Blnk Cloud monitoring:

* Environment: `BLNK_CLOUD_DSN`
* JSON: `cloud_dsn`

Requires `enable_observability=true` on the server and workers. See [Quick setup: Blnk Cloud](/advanced/monitoring#quick-setup-blnk-cloud) in [Monitoring in Blnk](/advanced/monitoring).

***

## OpenTelemetry endpoints

For self-hosted export, Blnk reads standard OpenTelemetry environment variables. Set them on **both** the server and worker. Observability must be enabled.

Blnk exports traces and metrics over **OTLP HTTP** (port **4318** in typical Jaeger or Collector setups, not gRPC port 4317). Set a separate endpoint per signal on **both** the server and worker. Observability must be enabled.

<CodeGroup>
  ```bash blnk.env theme={"system"}
  OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4318
  OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://otel-collector:4318
  ```
</CodeGroup>

These variables are environment-only. They are not set in `blnk.json`.

|                                       | Outcome when set                           |
| :------------------------------------ | :----------------------------------------- |
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`  | OTLP HTTP endpoint for trace export.       |
| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | OTLP HTTP endpoint for metric push export. |

<Note>
  Endpoint values accept common formats: `host:port`, `http://host:port`, or a full path such as `http://jaeger:4318/v1/traces`. Blnk normalizes the value before export.
</Note>

Metrics push runs on a 60-second interval. Prometheus-compatible metrics are also available at `/metrics` on the API port and worker monitoring port regardless of OTLP settings. See [Connect to other tools](/advanced/monitoring#connect-to-other-tools) in [Monitoring in Blnk](/advanced/monitoring).

Logs are not exported through these endpoints. Collect process output with your log shipper, or set the Blnk Cloud DSN for managed log export.

***

## Product telemetry

<Warning>
  `enable_telemetry` is not operational observability. Turn on `enable_observability` for logs, traces, and metrics in Prometheus, Jaeger, or Blnk Cloud. `enable_telemetry` is optional product usage heartbeat telemetry for the Blnk team.
</Warning>

<CodeGroup>
  ```bash blnk.env theme={"system"}
  BLNK_ENABLE_TELEMETRY=false
  ```

  ```json blnk.json theme={"system"}
  {
    "enable_telemetry": false
  }
  ```
</CodeGroup>

|                         | Description                                                                                                      | Default |
| :---------------------- | :--------------------------------------------------------------------------------------------------------------- | :------ |
| `BLNK_ENABLE_TELEMETRY` | When `true`, Blnk sends optional product usage heartbeat telemetry so the Blnk team can understand usage trends. | `false` |

## Need help?

We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool.

To ask questions or discuss issues, please [contact us](mailto:support@blnkfinance.com) or [join our Discord community](https://discord.gg/7WNv94zPpx).

<CtaCallout title="Connect your ledger to Blnk Cloud" href="https://cloud.blnkfinance.com/auth/sign-up?utm_source=blnk_docs&utm_medium=documentation&utm_campaign=need-help" buttonLabel="Open Blnk Cloud" trackingEvent="clicked_cloud_signup">
  Sign up and manage your ledger with our back-office dashboard. You can invite teammates to collaborate and manage your ledger operations directly from the dashboard.
</CtaCallout>
