Integrations
Integration

Monitor DigitalOcean with Sazabi

By Sazabi Team

Last verified on Nov 8, 2026.

On DigitalOcean App Platform you describe an app as a spec: services, workers, jobs, static sites and functions. DigitalOcean builds, deploys and scales those components for you. Its dashboard shows basic logs. When you need history, search across components or a view next to the rest of your stack, the logs have to go somewhere else.

Sazabi is AI-native observability and security. For App Platform it receives your apps' runtime logs through a log destination that points at a Sazabi intake URL.

What Sazabi reads from DigitalOcean

DigitalOcean's app spec has a log_destinations object, and App Platform can forward runtime logs to Managed OpenSearch, OpenSearch, Datadog and Better Stack. Sazabi uses the Datadog-compatible type, with your intake URL as the endpoint. DigitalOcean notes that forwarding does not count toward an app's bandwidth usage (DigitalOcean: Forward logs).

The connected-account path does the spec change for you. Sazabi fetches the current spec for each app you select, adds the destination to every service, worker and job, and updates the app. That needs a personal access token that can write app specs. The manual path is the same destination added by hand under Settings > Log Forwarding in the app, followed by a redeploy.

The agent can also run doctl in its sandbox if you add the DigitalOcean CLI connection with a DIGITALOCEAN_ACCESS_TOKEN.

Questions it answers

  • Which component of this app logged the error, the web service or the worker?
  • Did the job run, and what did it print before it exited?
  • Did the first error show up right after a deployment?
  • Are two apps logging the same upstream failure?
  • Which apps are forwarding, and which ones are silent?

A worked example: the app that forwards everything except one component

The destination is added to the components that run your code. Static sites and App Platform Functions do not take it, so a spec can look healthy and still leave one component dark. This is what the destination looks like once added to a service in the spec, with fictional values:

services:
  - name: api
    log_destinations:
      - name: sazabi
        datadog:
          endpoint: https://example-key.intake.example.com
          api_key: example-public-key
workers:
  - name: queue-consumer
    log_destinations:
      - name: sazabi
        datadog:
          endpoint: https://example-key.intake.example.com
          api_key: example-public-key

The api service and the queue-consumer worker carry a destination. A Functions component named webhooks in the same app would not. Check what actually arrives:

sazabi logs ask "Which DigitalOcean components sent logs in the last hour? List each component name with its record count."

If webhooks is the one missing from the results, that matches the spec. App Platform Functions use a different configuration path, so send them through the OpenTelemetry endpoint. If queue-consumer is missing, check whether the destination was removed from the spec or the token was revoked, and redeploy the app after fixing it.

Constraints from DigitalOcean

DigitalOcean says dedicated egress IP addresses cannot be used for log forwarding. If your destination needs a fixed source address, that matters for you. Log forwarding also needs the app spec to be complete when you update it through doctl or the API, because the spec must define all of the app's settings. Download the current spec first, then add log_destinations, instead of writing a partial one.

How it fits with other integrations

App Platform competes with and sits next to other managed platforms. See Render, Railway and Fly.io, or browse the cloud platforms category. Droplets and other DigitalOcean resources go through the OpenTelemetry integration, and the full list is on the integrations page.

Log sources

  • DigitalOcean (native log source, cloud platforms): Connect your DigitalOcean account so Sazabi can set up log forwarding on the App Platform apps you select.
  • DigitalOcean (manual log source, cloud platforms): Add a Datadog log forwarding destination to your DigitalOcean App Platform app and point it at your Sazabi intake URL to forward application logs.

What Sazabi detects from these logs today

These detections are on for every production project, with no monitors or alert rules to write. Sazabi opens an issue when one fires.

  • Novel event: A kind of error that has never appeared before.

Frequently Asked Questions

Which DigitalOcean products send logs to Sazabi?

DigitalOcean App Platform services, workers and jobs. Droplets, Spaces, Managed Databases, Managed Kubernetes and App Platform Functions are not covered by this source. Forward those with the OpenTelemetry endpoint.

Why does a read-only DigitalOcean token fail?

Sazabi has to update each app's spec to add the log destination. Use a token with Full Access, or a custom-scoped token with app:read, app:update, actions:read, regions:read and sizes:read. DigitalOcean does not let you change a token's scopes after creation.

Why does the destination type say Datadog?

App Platform has a Datadog-compatible log destination, and Sazabi uses it to receive logs. The endpoint is your Sazabi intake URL. The API key field is a form requirement and does not authenticate the stream.

Do I have to set this up for every app?

Log destinations are per app. The connected-account path adds the destination to each app you pick in one flow, and the manual path needs a destination added to each app separately.

Sources

  1. Native connection adds a Datadog-type log destination to every service, worker and job of selected App Platform apps; token scopes; unsupported resources use the OpenTelemetry endpoint (accessed Nov 8, 2026)
  2. Manual log destination under Settings > Log Forwarding with the Sazabi intake URL as the Datadog endpoint; per-app; redeploy needed (accessed Nov 8, 2026)
  3. doctl in the agent sandbox with DIGITALOCEAN_ACCESS_TOKEN (accessed Nov 8, 2026)
  4. log_destinations object in the app spec, supported destinations, forwarding does not count toward bandwidth, dedicated egress IPs cannot be used for forwarding, Datadog destination fields (accessed Nov 8, 2026)