PRODUCT · OBSERVABILITY

Logs, metrics, traces — wired up by default.

Every request through tGate emits a structured log line, a span, and contributes to your latency histograms. Query in the dashboard or stream out to Datadog, Honeycomb, or your S3 bucket.

Live in 38 regions · 99.99% uptime · SOC 2 Type II
p50 · 14msp95 · 38msp99 · 86msTRACE · req_8x2af · 86msLIVE · last 5m12.4k req/s · 99.97% 2xx · 38 regions healthy
100%
Sample rate
Tail-based head sampling
13ms
Log → dashboard
Median ingest latency
1y
Hot retention
All plans, full fidelity
12+
Stream targets
Datadog, S3, Splunk, Loki…
LIVE LATENCY

See your p99 move in real time.

Every PoP samples 100% of requests, builds quantiles in-memory, and pushes deltas to the dashboard every 250ms. Slice by route, status code, region, IdP group, or any policy attribute.

  • True quantilesDDSketch-based, not approximated from buckets.
  • By any dimensionGroup by tag with no pre-aggregation step.
  • Compare to last weekBuilt-in delta view spots regressions instantly.
# dashboard query
quantile(0.99, latency)
by route, region
where status >= 500
→ p99 = 142ms (↑ 28ms vs 1h)
route=/api/billing fra1
DISTRIBUTED TRACES

Every request carries a trace, end to end.

tGate emits OpenTelemetry-compatible spans for each hop — TLS, policy eval, edge cache, origin call. Connect your origin to the same trace via W3C traceparent.

  • OTel-nativeSend to any collector. Or query in tGate directly.
  • Tail-based samplingKeep all errored or slow traces; downsample the rest.
  • Linked logsClick a span → see every log line that fired during it.
edge.accept
100ms
tls.handshake
60ms
policy.eval
30ms
auth.verify
25ms
cache.lookup
12ms
origin.fetch
180ms
edge.respond
18ms
VS BUILDING IT YOURSELF

Stop instrumenting auth boilerplate, gateway hops, retries.

The gateway is the perfect place to capture every request. Don't reinvent it in every service.

BEFOREtelemetry.ts
import { trace } from '@opentelemetry/api';
import { Resource } from '@opentelemetry/resources';
import { NodeSDK } from '@opentelemetry/sdk-node';
// ...30 imports

const sdk = new NodeSDK({
  resource: new Resource({ 'service.name': 'api' }),
  traceExporter: new OTLPTraceExporter({ url }),
  metricReader: new PeriodicExportingMetricReader({ ... }),
  instrumentations: [...autoInstrumentations()],
});
sdk.start();
// per service. Per language. Per environment.
And nothing captures the edge → gateway → policy hops.
AFTERpolicy.tg
# every tunnel emits OTel automatically.
# add custom tags from policy:

route "/*" {
  trace.tag("tenant", req.user.tenant)
  trace.tag("plan",   req.user.plan)
}
Origin spans link in via traceparent. Done.
DEVELOPER TOOLS

Inspect any request, replay any failure.

Every request is loggable, traceable, and replayable from the dashboard CLI.

🔍

Live tail

Stream filtered logs to your terminal in real time.

tgate logs tail --grep 5xx
↩️

Replay requests

Re-run any logged request against a different env.

tgate replay rq_8x2...
📊

Saved queries

Pin dashboards. Share via URL with team filters preserved.

tgate query save ...
🚨

Alerts

Threshold + anomaly alerts to PagerDuty, Slack, webhook.

alert if p99 > 200ms
📦

Export to S3

Stream raw events to your bucket in Parquet.

destination = s3://...
🧪

Synthetic checks

Continuous probes from every PoP, alerting on regression.

tgate synth add ...
"
We turned off our $48k/yr APM contract three weeks after switching to tGate. The traces are better — they include the edge — and there's no per-host pricing trap.
Tomás Almeida
Head of Reliability · Stitchly
−$48k
/YR APM SPEND

Stop paying for what your gateway already knows.

Logs, metrics, traces — included on every plan, kept for a year, queryable in milliseconds.

No card required · Free for 7 days · Cancel anytime