Cloady Docs
API ReferenceEndpointsApplications

Read a service's routes

Returns one row per route over the range, the busiest 100: requests, requests per second, the share answered 5xx, requests per status class and code, duration quantiles, total time spent and a request-rate trend. For the service the app's address routes to, rows come from the ingress access log, which records every request for seven days; route templates there are inferred from paths. Every other service needs the app to send OpenTelemetry spans, whose own routes are used. Filters take the fields `route`, `method` and `status` (a code such as `404` or a class such as `5xx`). `serviceName` is a compose service.

GET
/api/workspaces/{workspaceSlug}/apps/{appSlug}/services/{serviceName}/routes
AuthorizationBearer <token>

Personal API token (cldy_…)

In: header

Path Parameters

workspaceSlug*string
appSlug*string
serviceName*string

Query Parameters

env?string

Value in

  • "production"
  • "preview"
  • "development"
region?string
range?string

How far back to look; the answer has 30 to 96 points across it

Default"1h"

Value in

  • "15m"
  • "1h"
  • "6h"
  • "24h"
  • "7d"
source?string

Where the numbers come from: ingress reads the access log of the service the app's address routes to, traces reads the OpenTelemetry server spans the service sends. Defaults to ingress for that service and traces for every other one

Value in

  • "ingress"
  • "traces"
filter?array<>

Filters, each written <field><op><value> with op =, !=, =~ or !~; =~ and !~ take a regular expression matched against the whole value, ignoring case. Repeat the parameter for several; every one must hold

Itemsitems <= 20

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/workspaces/string/apps/string/services/string/routes"
{  "source": "ingress",  "sources": {    "ingress": true,    "traces": true  },  "start": 0,  "step": 0,  "requests": 0,  "total": 0,  "routes": [    {      "method": "string",      "route": "string",      "requests": 0,      "rps": 0,      "errorRate": 0,      "classes": {        "2xx": 0,        "3xx": 0,        "4xx": 0,        "5xx": 0,        "other": 0      },      "statuses": {        "property1": 0,        "property2": 0      },      "p50": 0,      "p95": 0,      "p99": 0,      "seconds": 0,      "trend": [        0      ]    }  ],  "methods": [    "string"  ],  "query": "string",  "coverage": {    "logged": 0,    "counted": 0  }}