L7 API Stream

The API Stream displays cluster-wide API calls in real-time, or when viewing the contents of a delayed dissected snapshot. Each API call includes complete information:

  • Kubernetes context — Pod, service, namespace, node, labels
  • Operating system context — Process information via eBPF
  • API context — Protocol, method, endpoint, status code, headers
  • Network payload — Full request and response bodies

Kubeshark Dashboard


How It Works

The API Stream receives L7 traffic captured by Workers and streamed through the Hub. Traffic flows into the stream when:

SourceDescription
Real-time dissectionLive API calls as they occur
Delayed dissectionAPI calls from a dissected snapshot

The stream will be empty if API Dissection is disabled.


Stream Entries

Each entry in the stream shows:

FieldDescription
ProtocolHTTP, gRPC, Kafka, Redis, etc.
MethodGET, POST, PUT, DELETE, etc.
Status codeResponse status (200, 404, 500, etc.)
SourcePod/service initiating the request
DestinationPod/service receiving the request
TimestampWhen the API call occurred
LatencyRequest/response round-trip time

Streaming Traffic Entry


Entry Details

Clicking any stream entry opens the detail panel with full request/response information:

  • Complete headers
  • Full payload (request and response bodies)
  • TCP stream information
  • Timing breakdown

Traffic Entry

Request/Response Payload

Headers and payload are displayed in human-readable format for supported protocols.

Traffic Payload


Filtering with KFL

When KFL (Kubeshark Filter Language) is applied, only API calls matching the filter appear in the stream. Non-matching calls are excluded from the view.

# Show only HTTP 500 errors
http and response.status == 500

# Show traffic to a specific service
dst.name == "payment-service"

# Show only live traffic
timestamp >= now()

See Display Filters (KFL2) for complete syntax reference.

Queryable UI Elements

Hovering over UI elements with a green plus sign indicates they are queryable. Clicking appends the corresponding filter to your KFL statement.

Filter UI Example


Pause/Resume Dissection

Toggle L7 API dissection directly from the dashboard:

StateButtonEffect
ActivePausePause dissection
PausedResumeResume dissection

Pausing dissection does not stop Raw Capture—L4 traffic continues to be captured while the stream is paused.

See Enabling / Disabling L7 API Dissection for more details.


Shareable URLs

Queries are automatically embedded in the browser URL. Copy and share the URL to give colleagues the same filtered view of traffic.

Dashboard URL


What’s Next