Skip to main content

04 Job Monitoring

Job Monitoring first answers whether the work was completed, then helps locate where and when batch impact is concentrated.

Operations Job Monitoring with anonymized data
Job Monitoring domain with anonymized batch signals.

What appears​

PanelmetricId or datasetReading
Failed jobs · Last 15 minfailed-jobsBatch-error increments during the 15 minutes before the selected range end
Canceled jobs · Last 15 mincanceled-jobsUnique canceled executions during the 15 minutes before the selected range end
Long-running jobs · Current · >120 minlong-running-jobsCurrent snapshot of jobs running for more than 120 minutes
Long-running work processes by serverlong-running-work-processesCCMS duration in seconds, separated by server
Maximum long-running work processes (24 h)long-running-work-processesReal maximum duration over 24 hours by server; the donut contains only real servers
Background work processesjob-metricsNumberOfWpBTC capacity by server as a stepped line
Background work-process errorsfailed-jobsErrorsInWpBTC increments by server as bars
Job familiesJobsExact SAP-name families with activity in the selected range
Job RunsJobsExecutions within a family and their detail
Job EventsEventsJob-related events

Failed jobs does not expose the cumulative SAP ErrorsInWpBTC counter directly. SPOT deduplicates each observation by TID and calculates positive increments per server. After a counter reset, the new value is the increment; when there is no recent predecessor or the gap exceeds 15 minutes, the result is UNKNOWN. Zero is shown only when valid coverage exists.

Canceled jobs counts unique job_run executions with SAP state A in (to-15m, to]; it does not depend on Job Log. Failed jobs uses the same range end: its KPI represents that rolling window, while its chart retains the complete selected range. The terminal timestamp and server come from the authoritative execution itself.

Long-running jobs uses per-server XBP snapshots. The connector selects SAP jobs in state R and counts only those running for strictly more than 120 minutes: exactly 120:00 is excluded and 120:01 is included. A fresh zero is a valid observation; UNKNOWN means missing data, an error, or lost freshness. SPOT does not substitute Work Process data, demo data, or an invented zero.

When SAP represents a valid selection with no results, SPOT publishes zero only after validating both the return code and a present, empty result table. Every other response remains UNKNOWN: a general SAP error is never converted into zero.

SPOT collects the complete Job Log for a terminal execution asynchronously. The log queue does not stop later job observations. In the detail, the manifest shows Queued, Collecting, Retrying, Complete, No entries, Too large, Not authorized, Unavailable, or Collection failed. SPOT never presents a partial log as complete: it waits until lines are confirmed before marking it Complete. If a log is too large or SAP does not provide it, the execution, lifecycle, and the rest of the investigation remain available.

Long-running work processes is a duration signal in seconds, not a process count and not a substitute for running jobs.

The three functional outcomes appear as equivalent KPIs. The Long-running work processes detail shares a composition with its 24-hour maximum in an 8/4 ratio. The Background processing by server composition keeps two separate synchronized charts: NumberOfWpBTC capacity above and error deltas below. They share a time cursor, legend, and server colors, while using independent integer axes from zero. When every covered delta is zero, the panel explicitly reports that no errors occurred; an UNKNOWN bucket prevents that message. Job Runs and Job Events keep their own panels; dumps are investigated exclusively in Work Process.

In Job families, each row is an exact JOBNAME: an operational family for investigation, not an immutable SAP scheduler definition. Separate columns show status and last activity alongside the latest execution's duration (Last run time). A real zero duration appears as 0 s; if that execution has no valid duration, the value is —. Selecting a family opens its dedicated full-width workspace with the active source, host filter, and time range. The duration chronology covers the complete scoped family, independently of the paginated ledger. With up to 1,000 executions it shows every exact point; for larger families it summarizes time intervals while retaining real minimum, maximum, and representative executions plus status counts. The ledger remains the exhaustive paginated view and keeps the SAP identity JOBNAME + JOBCOUNT, status, start, end, duration, and EXECSERVER. Unknown durations remain unknown and are never converted to zero. As point density rises, visible marks shrink gradually while their hit area and keyboard or pointer highlight remain accessible.

Select a JOBCOUNT or an exact chart point to open the execution detail directly. Its summary remains visible at all times, with only two tabs: Job Log, selected on open, and Retained history. Escape closes it and returns focus to the invoking control. Use All job families to return to the list with its filters, page, and reading position intact.

Job family workspace with anonymized chronology and ledger
The complete chronology and paginated ledger share the same source, host, and time scope.

Selection and retained evidence​

The global range, selected SAP connection, the source it represents, and the host filter determine whether an execution can be selected. Once SPOT validates the execution in that context, it retrieves its complete retained lifecycle, manifest state, and Job Log, even if those records were collected outside the visible time window. This retrieval never broadens scope: it always keeps the same connection/source, tenant, and host.

A family's host summary covers the complete family within the selected range, not just the runs on the current ledger page. SAP names are handled as exact names; you can search for a family whose name uses punctuation, such as +.

A shared link can contain both a family and an execution. If that execution belongs to another family or is no longer available in the active context, SPOT keeps the family, clears only the execution, and never shows another family's Job Log. Select an execution from the table to continue the investigation.

Anonymized batch execution detail
Investigation overlay with summary, lifecycle, and historical Job Log lines when available.

How to interpret it​

  • OK: there are no relevant failures or cancellations in the observed interval.
  • WARN: failures repeat, cancellations grow, or batch pressure concentrates on one server.
  • KO: impact on critical work is sustained, or job degradation coincides with batch-capacity degradation.
  • UNKNOWN: a fresh signal is missing. For Long-running jobs, check XBP permissions, the connection time zone, and Agent logs.

A 0 in Canceled jobs is valid when the interval was observed with no cancellations through a successful query. If the logs Data Stream is not available or the producer is not schema v2, the result is UNKNOWN or producer_upgrade_required, not zero. In Long-running jobs, 0 is also valid, but only when it comes from a successful XBP snapshot. The same canceled execution is deduplicated by job_run identity.

Filters and next screens​

Filter by global range, text or exact name, status, and host. Start with a family, then compare the JOBCOUNT values across hosts and open an execution that diverges from p50/p95. If the manifest is not Complete, check its state before deciding that there were no messages. Use Job Events for current related messages. Cross-check Work Process for batch capacity and dumps, DB for latency, and Filesystem when the job writes spool or exports.

Operational use​

Job Monitoring summarizes the batch outcome without requiring you to open the full table first. The three functional KPIs also appear on Landing; the remaining panels provide per-server detail and history.

For repeated failures, cancellations, or slow executions by job name, open the family and compare each execution and its events. If they coincide with high DB request time or missing batch processes, cross-check DB and Work Process before attributing the issue only to the job.