flexway
FRENTalk to an expert

Operations

See every decision, change without risk.

OpenTelemetry logs, metrics and traces propagated end to end; a rich, built-in console that reads traffic, health and usage, and turns every change into a pull request.

18 of the 19 shown delivered · since v0.1.0

What you expect from this domain

  • Latency, availability, errors, tokens, estimated costsDelivered · since v0.1.0
  • Correlate traces with OpenTelemetryDelivered · since v0.1.0
  • Analyse models used and error ratesPer backend and capability; the model served is in the audit, not in the metricsPartly · next in 1.8
Every market expectation
OverviewOverview
Health per replica: the status of each and the freshness of its last report.Real console capture, demo data · v1.6.3

What it solves

Problem 1

Nobody knows why a request is refused

A 403 or a 429 with no explanation.

Flexway's answer: Every refusal carries its reason in the trace and the log; the console opens the trace from the operation.

Problem 2

An observability stack must be built

Dashboards and alerts to build before seeing anything.

Flexway's answer: Dashboards, alerts and objectives built into the console, nothing to install.

Problem 3

One click changes production

A console that writes directly bypasses review.

Flexway's answer: Every change is a diff proposed as a pull request, never a write.

How it works

Every step is a decision readable in the trace and in the console.

Your infrastructureflexwayAPI, AI and agent gatewayUnified Decision Chain (UDC)personal data: never in clear01 Log02 Metrics03 Trace04 Console05 Alerts06 ProposalEvery requestOperatorsTraces, metricsDashboardsPull requestYour infrastructureflexwayAPI, AI and agent gatewayUnified Decision Chain (UDC)01 LogJSON, no personal data02 Metricsper operation, upstream, tenant03 TraceW3C, end to end04 Consoletraffic, health, usage05 Alertsthresholds and webhook06 Proposala diff as a pull requestEvery requestOperatorsTraces, metricsDashboardsPull request

Operations - Domain diagram: who calls, the decision steps, what is called, and where a request is refused.

  • Every request
  • Operators
  1. Log
  2. Metrics
  3. Trace
  4. Console
  5. Alerts
  6. Proposal
  • Traces, metrics
  • Dashboards
  • Pull request

personal data: never in clear

Every request
Every request that crosses Flexway: each leaves a log, metrics and a trace, with no personal data in clear.
Operators
Your operators: they follow traffic and health in the console and propose a change as a pull request.
Log
One structured JSON log line per request, with no personal data in clear.
Metrics
Metrics per operation, per upstream and per tenant, with bounded cardinality.
Trace
A W3C trace propagated end to end, from the caller to the upstream.
Console
The console shows traffic, upstream health and consumption, with no external tool to install.
Alerts
Alerts on thresholds (errors, latency, circuit breaker), tracked in the console and notified by webhook.
Proposal
A change prepared in the console becomes a diff opened as a pull request, never a write to production.
Traces, metrics
Your observability: OpenTelemetry traces and metrics sent by Flexway, on your premises.
Dashboards
The dashboards built into the console: traffic, latencies and health, without an external stack.
Pull request
The pull request in your Git: the only way to change the configuration, reviewed by a person.
  • Line: one route
  • Interchange: shared decision
  • Request
  • Refusal
  • Your infrastructure
  1. LogJSON, no personal data
  2. Metricsper operation, upstream, tenant
  3. TraceW3C, end to end
  4. Consoletraffic, health, usage
  5. Alertsthresholds and webhook
  6. Proposala diff as a pull request

Deploy Flexway: topologies and the GitOps configuration cycle

In detail

The essentials of each topic, with its status in the published release; unfold a card for the full text.

Structured logs, no personal data

Delivered · v0.1.0

Logs are structured JSON, correlated by trace_id, with no personal data in clear: hashed identifiers, no prompt and no body.

  • Structured JSON, hashed identifiers
  • No prompt or body logged
  • Correlation by trace_id
See the detailHide the detail - Structured logs, no personal data

Logs are structured JSON and contain no personal data in clear: identifiers are hashed, prompts and bodies are never logged, and a refused API key is named by its identifier, never by its value. Each line is correlated by trace_id, including a fatal error, which is structured as well.

The level is set in observability.log_level (debug, info, warn, error, fatal) and reloads hot. On the caller side, every error response carries a request_id and a trace_id: the details stay in the log, where operators find them from the identifier the client passes on.

All the points

  • Structured JSON, hashed identifiers
  • No prompt or body logged
  • Correlation by trace_id
  • Reloadable log level

Features and status

  • Structured JSON logs, no personal dataDelivered · v0.1.0
  • request_id and trace_id in the response; the detail stays in the logDelivered · v0.1.0
Read in the documentation : Observing

Metrics per operation, bounded cardinality

Delivered · v0.1.0

Metrics are indexed by contract operation, upstream and tenant, with cardinality bounded by construction.

  • Per operation, upstream and tenant
  • Bounded cardinality, checked by tests
  • /metrics and OTLP export
See the detailHide the detail - Metrics per operation, bounded cardinality

Metrics are indexed by contract operation, by upstream and by tenant: throughput, latency by quantile, response codes, in-flight requests, tokens. Dimensions come from the contract and the token, with nothing to configure, and a dashboard searches for POST /orders, not /orders/8f21c.

Cardinality is bounded by design: a thousand distinct paths and a thousand tenants produce a bounded number of series, which the tests check. Metrics are exposed on /metrics and exported over OTLP; dedicated families cover reloads, cache, delegation, inference and open streams.

All the points

  • Per operation, upstream and tenant
  • Dimensions derived from the contract
  • Bounded cardinality, checked by tests
  • /metrics and OTLP export

Features and status

  • Metrics per operation, upstream and tenant, bounded cardinalityDelivered · v0.1.0
Read in the documentation : Observability and console

End-to-end W3C traces

Delivered · v0.1.0

The W3C traceparent is propagated from the edge to the upstream and the model, each executed policy adding an attribute to the trace.

  • traceparent propagated or created
  • One attribute per executed policy
  • OTLP export to your collector
See the detailHide the detail - End-to-end W3C traces

The W3C traceparent is propagated, or created if missing, from the edge to the upstream and the model: a trace crosses the gateway without breaking context. Each executed policy adds an attribute, a degradation is marked, and external policy calls show up as child spans. On sampled requests, the routing, identity and policy stages have their own spans.

Export goes through observability.otlp_endpoint to your OTLP collector; an empty endpoint disables export, and that is a valid configuration. Sampling is adaptive: observability.sampling.max_per_second caps root traces per replica, and the parent's decision is honoured.

All the points

  • traceparent propagated or created
  • One attribute per executed policy
  • OTLP export to your collector
  • Sampling capped per replica

Features and status

  • W3C traces propagated end to endDelivered · v0.1.0
  • Adaptive trace samplingDelivered · v0.1.0
Read in the documentation : Observing

A catalogue derived from the contracts

In part

The API catalogue is built from the contracts the gateway loads, with owner and retirement date declared in the contract.

  • Catalogue from the contracts, with lifecycle
  • Owner and retirement date declared in the contract
  • Catalogue Compliance tab
See the detailHide the detail - A catalogue derived from the contracts

The API catalogue is built from the contracts loaded by the gateway, never from separate input: facets, a side panel per operation, a miniature policy chain, traffic per operation and export. An operation's owner is declared in the contract with x-flexway-owner - a team and a team channel, never a person - and a retirement date with x-flexway-sunset, which requires deprecated: true.

The Compliance tab computes rules over the catalogue, such as operations without an owner or deprecated without a date; a retirement date set on an operation that is not deprecated is refused at load. This information is never read on the request path.

A developer portal - catalogue, try-it and keys for the consumers of your APIs - is upcoming, as a surface separate from the console.

All the points

  • Catalogue from the contracts, with lifecycle
  • Owner and retirement date declared in the contract
  • Catalogue Compliance tab
  • Developer portal: planned

Features and status

  • API catalogue derived from the contracts, with lifecycleDelivered · v0.1.0
  • Catalogue conformance: operations without an owner, deprecated without a dateDelivered · v1.2.0
  • Developer portal: catalogue, try-out, keysPlanned
Read in the documentation : Reading with the console

Traffic, operations, traces and errors

Delivered · v1.3.0

The console shows traffic, per-operation detail, waterfall traces and recent errors, per operation, upstream and tenant, even without an external metrics backend.

  • Traffic per operation, upstream and tenant
  • Waterfall traces, even without a backend
  • Works without an external metrics backend
See the detailHide the detail - Traffic, operations, traces and errors

The traffic dashboard reads by operation, upstream and tenant, against the previous period, with trend and breakdown. An operation's detail shows throughput, errors by code, latencies and breakdown by tenant; two freely chosen windows can be overlaid on the same curves, and every configuration reload leaves a marker on them.

An end-to-end trace opens from the console. With no trace backend, the console receives the gateway's OTLP and keeps slow or failed requests through tail sampling, within count, duration and size bounds per replica, shown as a waterfall with the time spent in routing, identity, policies and upstream attempts. A log of recent errors can be filtered by operation, upstream and tenant.

The console works without an external metrics backend: it collects the metrics pushed by the gateway, keeps 35 days of detail and daily aggregates over 13 months, on a persistent volume. If you already have your own backends (metrics.url, traces.url), it reads them instead.

All the points

  • Traffic per operation, upstream and tenant
  • Period comparison and reload markers
  • Waterfall traces, even without a backend
  • Works without an external metrics backend

Features and status

  • Traffic per operation, upstream and tenantDelivered · v0.1.0
  • Opening an end-to-end traceDelivered · v0.1.0
  • Detail of an operation: throughput, errors by code, latencies, split by tenant, comparison with the previous periodDelivered · v1.3.0
  • Traces seen by the gateway, in the console: a sample of slow or failing requests, with the duration of each step (routing, identity, policies, upstream)Delivered · v1.3.0
  • Log of the gateway's recent errors, filterable by operation, upstream and tenantDelivered · v1.3.0
  • Built-in metrics source: the console works without an external metrics backend, bounded and configurable history; the Prometheus API remains an optionDelivered · v1.3.0
Read in the documentation : Reading with the console

Upstream and replica health

Delivered · v1.4.0

The Upstreams screen shows each upstream's circuit breakers, ejections and timeouts, and the gateway's own health reads per replica.

  • Circuit breakers, ejections and timeouts per upstream
  • Status and freshness per replica
  • Silent replica flagged
See the detailHide the detail - Upstream and replica health

The Upstreams screen shows each upstream's circuit breaker state, ejections and timeouts, with the next scheduled trial, transitions and the codes written by the gateway. It reads as cards or as a table, with a 24-hour band and a detail view per upstream.

The gateway's own health reads per replica: each one's status according to its rule and the freshness of its last report, a draining replica announced as such, and a rule that flags a replica gone silent. A replica shutting down cleanly can thus be told apart from a lost one.

All the points

  • Circuit breakers, ejections and timeouts per upstream
  • 24-hour band and per-upstream detail
  • Status and freshness per replica
  • Silent replica flagged

Features and status

  • Upstream health: circuit breakers, ejections, timeoutsDelivered · v0.1.0
  • Health per gateway replica: status of each replica and freshness of its last reportDelivered · v1.4.0
Read in the documentation : Reading with the console

Configuration

No complete example for this domain in release v1.6.3 yet: one will come with an upcoming release.

Features

What is delivered in the published release v1.6.3, and what is coming; a feature is never shown as delivered before its release.

FeatureStatus
Structured JSON logs, no personal dataDelivered · v0.1.0
Metrics per operation, upstream and tenant, bounded cardinalityDelivered · v0.1.0
W3C traces propagated end to endDelivered · v0.1.0
/healthz, /readyz, /metrics, /config on a separate portDelivered · v0.1.0
Dashboards and alerts delivered with the productDelivered · v0.1.0
/simulate: route, effective chain and verdict without calling the upstreamDelivered · v0.1.0
API catalogue derived from the contracts, with lifecycleDelivered · v0.1.0
Traffic per operation, upstream and tenantDelivered · v0.1.0
Declarative proposal: a diff, never a mutationDelivered · v1.2.0
Upstream health: circuit breakers, ejections, timeoutsDelivered · v0.1.0
Usage: requests, tokens, euros, per tenantDelivered · v0.1.0
Opening an end-to-end traceDelivered · v0.1.0
Agents dashboard: tools called, cost, scopesDelivered · v1.2.0
Built-in alerts: thresholds per upstream or operation, webhook notificationDelivered · v1.3.0
Developer portal: catalogue, try-out, keysPlanned
Health per gateway replica: status of each replica and freshness of its last reportDelivered · v1.4.0
Service-level objectives per operation: remaining error budget, burn rate over several windows, built-in alert ruleDelivered · v1.3.0
Log of the gateway's recent errors, filterable by operation, upstream and tenantDelivered · v1.3.0
Traces seen by the gateway, in the console: a sample of slow or failing requests, with the duration of each step (routing, identity, policies, upstream)Delivered · v1.3.0

Every feature

The other domains

Let's talk about your gateway

Flexwiz is a young company: you talk directly with the person who founds it. Tell us what you want to run through Flexway. We talk about your infrastructure and your digital sovereignty requirements.

Online booking is coming soon; until then, an e-mail is enough.