All features

Every call and flow, traced

See each call your code makes, follow one request across services, and look at how your resources are wired. All in the console, as it happens.

localhost:7644/_pogi/

The problem

One call often sets off many more. A file lands in S3, S3 tells a queue, a function reads the queue and writes to a database. pogi follows that chain for you, so you don't have to piece it together from separate logs.

How it works

  1. 01

    Every call, live

    The Activity page lists every call to every service, newest first. Click a call to see its request and response. Filter to errors, calls that chaos changed, or calls that IAM refused.

    localhost:7644/_pogi/
    The console's Activity page: a table of calls to Cloud Storage, S3, SQS, DynamoDB and SNS, each with its time, operation, status 200 and latency.
    localhost:7644/_pogi/

    Activity

    Calls to all services, newest first.

    TimeServiceOperationStatus
    • 15:20:39.580S3 ListObjectsV2ListObjectsV2200
    • 15:20:39.387SQS ReceiveMessageReceiveMessage200
    • 15:20:39.208DynamoDB PutItemPutItem200
    • 15:20:39.023SNS PublishPublish200
    • 15:20:38.837S3 PutObjectPutObject200
    • 15:20:38.644SQS ReceiveMessageReceiveMessage200
  2. 02

    Every flow, traced

    Each request gets a trace ID, and pogi copies it into the messages it delivers. A chain such as S3 to SQS keeps one ID, so the Flows view shows it as one row. Open it to see a timeline, and click a step for its request and response.

    localhost:7644/_pogi/
    The console's Flows list: one row for a Cloud Storage flow with 3 steps, and rows for S3 to SQS and SNS to SQS flows with 2 steps each, all marked ok.
    localhost:7644/_pogi/

    Flows 1-b59c678e-d5c9f3488939b1fd1ef08ae2

    PutObject /photos/uploads/1.jpg

    2026-10-27 15:20:37 · 2 steps · 0.1 ms

    1. S3 PutObject0.1 ms
    2. SQS deliver → thumbnails0.0 ms
  3. 03

    How it's wired

    The Map draws your resources as boxes, grouped by cloud. A solid line is a link a service reports from its own settings. A dotted line was seen at runtime, and a dashed red line is a dead-letter queue. Export it as SVG.

    localhost:7644/_pogi/
    The console's Map page: an S3 bucket named photos linked to an SQS queue named thumbnails by a notification, and an SNS topic named uploads linked to an SQS queue named audit by a subscription.
    localhost:7644/_pogi/
    Map. On AWS, the S3 bucket photos sends a notification to the SQS queue thumbnails. The SNS topic uploads feeds the SQS queue audit through a subscription.

Try it

This is real output from a running pogi.

Send three calls with one trace ID

TP=00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
curl -H "traceparent: $TP" "http://localhost:7644/storage/v1/b?project=pogi"
curl -H "traceparent: $TP" -X POST -H "content-type: application/json" \
  -d '{"name":"demo-gcs"}' "http://localhost:7644/storage/v1/b?project=pogi"
curl -H "traceparent: $TP" "http://localhost:7644/storage/v1/b/demo-gcs"

Read the trace ID back

curl "http://localhost:7644/_pogi/api/requests?q=buckets.insert"

[{"id":22,"time":"2026-10-27T15:23:32.886148+05:30","cloud":"gcp","service":"gcs",
  "op":"buckets.insert","method":"POST","path":"/storage/v1/b?project=pogi",
  "status":200,"ms":0.126,"account":"000000000000","region":"us-east-1",
  "requestId":"ca243568899f770c07bcf8eae7b0d375",
  "principal":"arn:aws:iam::000000000000:root",
  "trace":"1-4bf92f35-77b34da6a3ce929d0e0e4736"}]

What to know

  • A flow needs at least two steps. A single call with nothing after it is a plain request.
  • Two requests that share a trace ID do not draw a line between their resources on the Map.
  • The Map draws only links that a service reports or that pogi saw as a delivery. pogi does not guess links between clouds.
  • Resources with no connection are hidden, and the Map says how many.

Learn it step by step

The guides are in the docs.