jennifer-xview
Search the individual transactions (X-View points) of a JENNIFER domain, one row per finished transaction, as the console's X-View analysis screen does. Use it as the evidence step of root cause analysis: once jennifer-metrics, jennifer-problems, jennifer-app-summary or jennifer-errors have narrowed down the time window, instance or application, list the slow or failed transactions there and see where their time went (sql_time, fetch_time, external_call_time, cpu_time against response_time). Then pass a transaction's domain_id, txid and times to jennifer-profile to read its call profile.
- profile=VALUE
- Optional. Name of the JENNIFER console connect profile (type jennifer-apm-console). Every such profile you are granted is used when omitted. With domain_id, which is an id of one console, exactly one profile must be used: name it when you are granted several.
- domain_id=VALUE
- Required. e.g. 1000. The domain (sid) to search; jennifer-instances lists them.
- instance_ids=VALUE
- Optional. e.g. 75553,75555. Comma separated instance ids (oid) of the domain. Every instance with data in the period is searched when omitted.
- duration=VALUE
- Optional. e.g. 10m for the last 10 minutes. Recent period up to now, in s(second), m(minute), h(hour), d(day) units. The last 10 minutes when no period is given. At most one day. Transactions are selected by collection_time, when the console collected them.
- from=VALUE
- Optional. Start of the period, yyyyMMddHHmmss. Omitted digits are padded with zero. Overrides duration.
- to=VALUE
- Optional. End of the period, yyyyMMddHHmmss. Omitted digits are padded with zero. Now when omitted.
- min_response_time=VALUE
- Optional. e.g. 3000. Only transactions whose response time is at least this many milliseconds. 0 (all) by default. Filtered by the console, so it is the way to cut rows on a busy period.
- errors_only=VALUE
- Optional. t or f. t returns only transactions that ended with an error (the console's "show only exceptions" condition). f by default.
- limit=VALUE
- Optional. e.g. 50000. Maximum rows to return, 10000 by default. Rows come oldest first, so when the limit is reached the latest part of the period is missing; narrow the period or raise min_response_time rather than raising it.
Notes
- Keep the window short (minutes around the problem) and use min_response_time or errors_only on busy periods: a small server records about 6,000 transactions per 10 minutes. The period is at most one day.
- Rows come in the order the console collected them, oldest first, and stop at limit (10000 by default); a result of exactly limit rows is cut short. Sort and aggregate with Logpresso commands.
- Durations (response_time, sql_time and the like) are milliseconds. _time and end_time are the transaction's end, start_time its start, collection_time when the console collected it (what the period options select on).
Output fields
| Field | Type | Name | Description |
|---|---|---|---|
| _time | Date | End time | e.g. 2026-10-27 03:13:59. When the transaction ended, by the agent's clock (end_time). |
| profile | String | Connect profile | e.g. jennifer-prod |
| domain_id | Integer | Domain ID | e.g. 1000 |
| instance_id | Long | Instance ID | e.g. 75553. The instance (oid) that ran it. |
| instance_name | String | Instance name | e.g. siem-mon-console-1 |
| inst_id | Long | Instance key | e.g. 10017. The console's instId of the instance, which transaction detail calls take. |
| application | String | Application | e.g. /api/orders. The service name (URL). |
| txid | String | Transaction ID | e.g. -2271545734455864799. Identifies the transaction within the domain; jennifer-profile takes it with domain_id and the times of the row. |
| response_time | Integer | Response time | e.g. 18719. Milliseconds. |
| sql_time | Integer | SQL time | e.g. 43. Milliseconds spent in SQL. |
| fetch_time | Integer | Fetch time | e.g. 0. Milliseconds spent fetching SQL results. |
| external_call_time | Integer | External call time | e.g. 197. Milliseconds spent in calls to other services. |
| cpu_time | Integer | CPU time | e.g. 26. Milliseconds. |
| frontend_time | Integer | Front end time | e.g. 0. Browser time, when front end monitoring is on. |
| network_time | Integer | Network time | e.g. 0. Milliseconds. |
| error_code | Integer | Error code | e.g. 1020. 0 when the transaction had no error. |
| error_name | String | Error type | e.g. SQL_EXCEPTION, SERVICE_EXCEPTION, EXTERNALCALL_EXCEPTION, BAD_RESPONSE_TIME_APPLICATION. Null without an error. |
| http_status | Integer | HTTP status | e.g. 200. Null when not recorded. |
| client_ip | String | Client IP | e.g. 10.10.26.233 |
| client_id | String | Client ID | e.g. 3109098555655530894. The console's wmonId. |
| user_id | String | User ID | e.g. alice. Null when not collected. |
| guid | String | GUID | Global transaction id shared by linked transactions across services. Null when not set. |
| start_time | Date | Start time | end_time less response_time. |
| end_time | Date | End time | The agent's end time. |
| collection_time | Date | Collection time | When the console collected the transaction, a few milliseconds after end_time. The period options select on it, and transaction detail calls take it to find the transaction. |
| async | Boolean | Async | e.g. false |
| linked | Boolean | Linked | e.g. false. Calls or was called by another monitored service. |
| stacked | Boolean | Stacked | e.g. true. Stack traces were sampled while it ran. |
Usage
Slowest transactions of the last 10 minutes:
jennifer-xview domain_id=1000 duration=10m min_response_time=3000 | sort limit=20 -response_time | fields _time, instance_name, application, response_time, sql_time, external_call_time, cpu_time, error_name, txid
Where the time of slow transactions goes, by application:
jennifer-xview domain_id=1000 from=20261027030000 to=20261027031000 min_response_time=1000 | stats count, avg(response_time) as rt, avg(sql_time) as sql, avg(fetch_time) as fetch, avg(external_call_time) as ext, avg(cpu_time) as cpu by application | sort limit=10 -rt
Errors of the last 30 minutes by type and application:
jennifer-xview domain_id=1000 duration=30m errors_only=t | stats count, max(_time) as last_seen by error_name, application, instance_name | sort -count
Response time per minute of two instances: