Agent first observability

Full runtime context
for your agents.

Give your coding agents the logs, traces, and metrics they need to understand your system and make better engineering decisions.

Integrates with

  • ChatGPT
  • Claude Code
  • Cursor
  • OpenCode
and more
your agent / orders
Demo · sample data
Skillsosuite-investigate

User: The “Gateway error rate > 3%” alert is firing. Find the cause and suggest a fix.

I’ll find the service behind gateway’s errors, follow one failed request to its span and log, then check the code.

Find failing gateway requestsComplete
osuite traces search --service gateway --min-duration 5000 --range 1h --limit 5
Follow the slowest failureComplete
osuite traces getbyid 9c7ed92eb31b7689727afc425443b349
Read the orders error logsComplete
osuite logs search --filter resource.service.name__is=orders --filter severity.text__is=error --range 1h --limit 5
Investigate an issue evidence
EvidenceFinding
alert · Gateway error rate > 3%Firing 12m · 5.53 against a threshold of 3
GET /api/orders/:orderId · trace 9c7ed92e504 after 8.35s; SELECT orders failed after 4.32s
orders · error logpg-pool: timeout exceeded when trying to connect

User: Why is the pool running dry?

Inspect the query pathComplete
Read orders/orders.repository.js → getOrder()
Proposed fix

Root cause found. Fix ready for review.

getOrder() releases its pooled Postgres client only when the query succeeds. Every failed query leaks a client until the pool is empty, so orders times out waiting to connect and gateway returns 504s. Release the client in finally, so failed queries return it to the pool too.

orders/orders.repository.js · proposed change
  async getOrder(id) {
    const client = await this.pool.connect();
-   const { rows } = await client.query(ORDER_BY_ID, [id]);
-   client.release();
-   return rows[0];
+   try {
+     const { rows } = await client.query(ORDER_BY_ID, [id]);
+     return rows[0];
+   } finally {
+     client.release();
+   }
  }

Investigate an issue: result ready.

Trusted by innovative teams

Infinity Miden IW Meshfold
Vibe3D Vibe3D
< 1 hr
Live in production
Instrument any stack in minutes
Minutes
To find root cause & a fix
Investigation agent in your IDE
~45%
Lower TCO
vs. legacy observability suites

The shift

The dashboard era of observability is over

Ask your agent. Find the cause and a fix.

The old way

  • Weeks of setup before you see a single trace
  • Walls of dashboards you have to already know how to read
  • Alerts that tell you something broke — then you dig for hours
  • You are the correlation engine, stitching signals together by hand

Panels everywhere. Alerts firing. Still no cause.

AI-native observability

  • An agent instruments your whole stack in minutes — live in under an hour
  • Ask in plain language. No PromQL, no dashboard archaeology
  • An investigation agent in your IDE hands you the root cause and a fix
  • The machine does the correlating — from a frontend click to the database query

One answer: the cause, the evidence and the fix.

your agent / ordersRoot cause

Why is “Gateway error rate > 3%” firing?

getOrder() releases its pooled Postgres client only when the query succeeds. Every failed query leaks a client until the pool is empty, so orders times out waiting to connect and gateway returns 504s.

  1. RUM504 on /checkout
  2. APMorders 10.3% errors
  3. TraceSELECT orders 4.32s
  4. Logpg-pool: connect timeout

Release the client in finally, so failed queries return it to the pool too.

One incident, every signal

From the alert to the line that caused it

Real Osuite screens from one incident in our demo environment. Follow it signal by signal, on the same path your agent takes in minutes.

  1. 01 Alert

    The alert fires

    gateway’s error rate crosses its 3% threshold and holds. The alert pages #alerts-prod with the rule, the live value and one-click links into APM, logs and traces.

    Severity
    Critical
    Condition
    A > 3
    Firing for
    12m
    Osuite alert detail: the "Gateway error rate > 3%" rule firing, with its threshold chart and last evaluation.
    Now 5.53 · threshold 3
    1. Now 5.53 · threshold 3
  2. 02 APM

    Find the blast radius

    gateway is the one paging, but the errors start further down. 2 of 9 services are failing, and orders has the highest error rate, with tail latency in seconds.

    orders errors
    10.3%
    orders p99
    5.67s
    gateway p99
    7.76s
    Osuite APM overview: nine services, with orders and gateway marked Failing.
    orders · 10.3% errors
    gateway · p99 7.76s
    1. orders · 10.3% errors
    2. gateway · p99 7.76s
  3. 03 Trace

    Follow one failed request

    One request, 8.35s end to end, ending in a 504. The deepest failure is orders asking Postgres for a single row, and that span never got a connection.

    Duration
    8.35s
    Status
    504
    SELECT orders
    4.32s
    Osuite trace waterfall for a failed request, with the SELECT orders span selected and its connection timeout error.
    SELECT orders · 4.32s · no connection
    A 1-row lookup, not a slow query
    1. SELECT orders · 4.32s · no connection
    2. A 1-row lookup, not a slow query
  4. 04 Logs

    Read the log behind it

    Every failing request logs the same orders error, and its stack says why: pg-pool gave up waiting for a free client. The pool is exhausted, so orders fails and gateway times out behind it.

    trace 9c7ed92e the request from step 03, oldest first

    1. 19:13:43.993 ERROR orders Error: timeout exceeded when trying to connect at Timeout._onTimeout (/app/node_modules/pg-pool/index.js:45:11)
    2. 19:13:43.993 INFO orders GET /orders/721912 500 19776 - 4743.346 ms
    3. 19:13:45.710 ERROR gateway Error #01: Get "http://orders:3000/orders/721912": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
    4. 19:13:45.710 ERROR gateway [GIN] | 504 | 8070.193 ms | 10.0.0.209 | GET "/api/orders/721912"
    Osuite log detail: the same pg-pool error logged by another failing orders request, with its stack trace.
    One click back to its trace
    pg-pool: no free client in time
    1. One click back to its trace
    2. pg-pool: no free client in time
  5. 05 Fix

    Get the root cause and a fix

    Your agent walks the same path through the Osuite CLI, follows the stack into getOrder() and proposes a change in your IDE, ready for you to review.

    your agent / orders osuite-investigate

    The “Gateway error rate > 3%” alert is firing. Find the cause and suggest a fix.

    1. Find failing gateway requests
    2. Follow the slowest failure
    3. Read the orders error logs
    4. Inspect the query path
    Proposed fix Ready for review

    Root cause found. Fix ready for review.

    getOrder() releases its pooled Postgres client only when the query succeeds. Every failed query leaks a client until the pool is empty, so orders times out waiting to connect and gateway returns 504s.

    orders/orders.repository.js · proposed change
    async getOrder(id) { const client = await this.pool.connect(); − const { rows } = await client.query(ORDER_BY_ID, [id]); − client.release(); − return rows[0]; + try { + const { rows } = await client.query(ORDER_BY_ID, [id]); + return rows[0]; + } finally { + client.release(); + } }

Live in under an hour

Instrument any stack in minutes, not weeks.

Logs, traces, metrics. Your agent handles setup.

Your stack

  1. Detect the stackReads your manifests and entry point
  2. Add the SDKInstalls OpenTelemetry for it
  3. Configure the exporterPoints OTLP at your Osuite ingest
  4. First dataTraces, logs and metrics arrive
Commands from the Python guide
your agent / paymentsosuite-instrument

/osuite-instrument fastapi

detect the stack00:14

readrequirements.txt, app/main.py

foundFastAPI on Uvicorn, 1 worker

planzero-code, opentelemetry-instrument

add the sdk01:36

pip install opentelemetry-distro opentelemetry-exporter-otlp

opentelemetry-bootstrap -a install

addedFastAPI and ASGI instrumentors

configure the exporter02:38

export OTEL_SERVICE_NAME="payments"

export OTEL_RESOURCE_ATTRIBUTES="service.environment=production"

export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.<region>.osuite.io:443"

export OTEL_EXPORTER_OTLP_HEADERS="x-osuite-ingest-token=<your-ingest-token>"

export OTEL_LOGS_EXPORTER="otlp"

export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED="true"

first data04:12

opentelemetry-instrument uvicorn app.main:app --host 0.0.0.0 --port 8000

tracespayments is in APM

logscorrelated by trace ID

metricsrequest rate and latency

Live in04:12Example timing

Python: live in 04:12.

Your services send logs, traces and metrics through the OpenTelemetry SDK to Osuite over OTLP.

Platform

Everything correlated, in one place

Logs, traces, metrics, RUM, and infrastructure — connected from a frontend click to the database query, with an investigation agent on top.

  • Logs

    Log Management at Scale

    Collect logs from your entire stack: cloud, on-prem, containers and search through millions of events in milliseconds.

  • Traces

    Trace Every Request End-to-End

    Follow requests across every service boundary. Pinpoint exactly where latency creeps in and why.

  • APM

    Application Performance Monitoring

    Monitor request rates, error rates, and latency across all your backend services.

  • RUM

    Real User Monitoring

    See exactly what your users see — every click, error, and slow request — stitched into the same trace as your backend.

  • Infrastructure

    Infrastructure Monitoring

    Get real-time visibility into your hosts, containers, and cloud resources.

  • Dashboards

    Dashboards That Work the Way You Think

    Build production-ready dashboards manually or just describe what you need in plain English. Either way, you're up in minutes.

  • AI Agent

    AI That Does the Work, Not Just the Alerts

    Two agents built into the platform — an investigation agent that lives in your IDE, and a visualizer agent that builds dashboards from plain English.

    • The investigation agent lives in your IDE — describe an issue and it finds the root cause and a fix
    • It correlates logs, traces, and metrics across every service, tracing cascading failures back to their origin
    • The visualizer agent builds any dashboard from a plain-English description — no PromQL required

Customers

Trusted by teams who've been burned by complexity and cost

See how fast-moving teams cut setup from weeks to an hour and resolve incidents in minutes with Osuite.

“Osuite's on-premise setup delivered complete observability tools in our own AWS environment with zero setup hassle.”
Ini Udoh CTO, Miden

Case study

How Miden ingests 200 million+ traces and logs per day from their hyperscaling micro services

Read case study
“Observability is P0 for us! We have setup full stack observability using Osuite. Integration with our system was done in no time, all thanks to the fantastic technical support from the Osuite team.”
Sidharth Choraria Co founder, Infinity

Case study

How Infinity keep their finance backend running reliably

Read case study

Frequently Asked Questions

What does "AI-native observability" mean?
It means the platform does the work AI can do for you. An agent instruments your stack, an investigation agent that lives in your IDE finds the root cause and a fix when something breaks, and a visualizer agent builds dashboards from plain English. You spend far less time wiring things up and digging through dashboards.
Is this LLM or AI-model monitoring?
No. Osuite is full-stack observability — logs, traces, metrics, RUM, and infrastructure — for any application. "AI-native" describes how Osuite works (agents do the heavy lifting) and who it's for (teams that ship fast with AI), not a tool for monitoring AI models. You don't need to build anything with AI to use it.
How quickly can we get your system up and running?
Most teams are live in production in under an hour — the Osuite instrumentation agent wires up logs, traces, and metrics across any stack in about five minutes. Larger estates with dozens of services can take one to three days to fully roll out.
Does your system support our backend technology?
Yes. The Osuite instrumentation agent is OpenTelemetry-native and supports every major language and framework with zero-code instrumentation — most teams are sending data within minutes.
How do you ensure the security of our data?
Our on-premise solution keeps your sensitive data within your cloud, ensuring maximum privacy and robust security.
Would it take too long to migrate from another tool?
No. With the instrumentation agent and zero-code setup, most migrations take under a day. Our dedicated migration team handles it with you.
We already have too many dashboards and alerts. How do we migrate them?
The setup, instrumentation and migration is completely done for you. It comes with the essential dashboards out of the box. We also set up alerts for the essential alerts and notification.
Can we run it On-Premise?
Yes. We offer fully managed on premise setups for companies with sensitive data.
Can I get notified when something goes wrong in our system?
Yes, we integrate seamlessly with your preferred notification services for real-time alerts.

See what Osuite can do for your team

Get a personalized walkthrough of the platform and a cost comparison against your current observability stack.

No commitment. No sales pressure. Just a real look at the platform.