Skip to main content
An execution is one run of work in your application. For an API service, an execution is usually one HTTP request. For a worker, it may be one job, message, scheduled task, or background operation. Foveus uses executions to show what happened, when it happened, how long it took, and what evidence was captured.

Why executions matter

Logs tell you what was written. Metrics tell you what changed. Traces show request flow. Executions show the actual unit of work you need to inspect. An execution can include:
  • service name
  • endpoint or operation
  • request context
  • response context
  • duration
  • outcome
  • logs
  • failure details
  • linked issue, if Foveus grouped it into one

Execution examples

An HTTP API request:
GET /orders/ord_12345
Each one can be represented as an execution.

What Foveus captures

The exact data depends on your SDK configuration and service type. A typical HTTP execution can include:
FieldDescription
serviceThe service that produced the execution.
environmentThe deployment environment, such as development, staging, or production.
modeThe Foveus data mode: test or live.
endpointThe HTTP path or operation name.
methodThe HTTP method, such as GET or POST.
durationHow long the execution took.
outcomeWhether the execution succeeded, failed, or is unknown.
contextSafe request, response, query, or custom context fields.
logsLogs correlated to the execution, if configured.
issueThe issue linked to the execution, if Foveus grouped it.

Service name

Foveus uses the service name to group executions by logical service. If you do not set ServiceName, Foveus uses your project assembly name. You can override it:
builder.Services.AddFoveus(options =>
{
    options.ApiKey = builder.Configuration["Foveus:ApiKey"];
    options.ServiceName = "orders-api";
});
Use a stable logical service name.
orders-api
payments-api
identity-api
Avoid putting the environment inside the service name.
orders-api-production
orders-api-staging
orders-api-dev
Instead, keep the service name stable and use Environment.
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}

Environment

Use Environment to describe where the service is running. Examples:
development
test
staging
production
This helps you separate the same service across deployments.
service:orders-api environment:production

Mode

Foveus has two modes:
ModeUse for
testSandbox, development, QA, and onboarding
liveProduction telemetry
Foveus defaults to test. Set Mode only when sending live telemetry.
{
  "Foveus": {
    "ApiKey": "fov_live_...",
    "ServiceName": "orders-api",
    "Environment": "production",
    "Mode": "live"
  }
}

Outcomes

An execution can have an outcome such as:
OutcomeMeaning
successThe execution completed successfully.
failedThe execution failed or returned a failure response.
unknownFoveus could not confidently classify the outcome.
Foveus can use HTTP status codes, response fields, exception data, and configured outcome semantics to determine the outcome.

Context

Execution context is structured data captured from the request, response, query string, or custom context. For example:
{
  "customerId": "cus_12345",
  "orderStatus": {
    "value": 1,
    "label": "Confirmed"
  }
}
You can search indexed context fields:
service:orders-api context:customerId="cus_12345"
Search nested fields with dotted paths:
service:orders-api context:orderStatus.value=1
Strings should use quotes. Numbers and booleans do not need quotes.
Execution Context Search uses indexed execution context. It does not scan arbitrary raw request bodies.

Linked logs

If logging is configured, Foveus can show logs related to an execution. This helps you inspect the log lines that occurred during the same unit of work instead of searching through unrelated log streams.

Linked issues

Foveus can group failed executions into issues. An issue is a repeated or meaningful failure pattern. For example, several failed executions on the same endpoint may become one issue.
HTTP 500 in orders-api
Open the issue to see:
  • failure pattern
  • representative execution
  • linked executions
  • recent activity
  • lifecycle
  • comments and activity history

Search executions

The Executions page is query-first because execution data can be high-volume. Common searches:
service:orders-api
service:orders-api method:POST endpoint:/orders
service:orders-api status:failed
service:orders-api context:customerId="cus_12345"
service:orders-api context:orderStatus.value=1
For best performance and precision, start with a service filter when searching by context.

When to use executions

Use executions when you need to:
  • investigate a support complaint
  • find a request by customer ID or request ID
  • inspect request and response context
  • understand why a request failed
  • move from an issue to the exact failed execution
  • correlate logs with a unit of work

What to do next