jennifer-app-summary
Summarize every transaction of a JENNIFER domain by application (service URL): calls, errors, average and deviation of response time, and the average time of one SQL execution and one external call, as the application map of the console's X-View transaction screen computes them. Use it to scope root cause analysis to the applications: once jennifer-metrics or jennifer-problems point at a time window, compare that window with a normal one to find the applications whose calls, errors or response time changed, then read their transactions with jennifer-xview.
- One row per application and window. span cuts the period into windows (1h by default); to compare before and after, use a span such as 10m and look at how a value moves across _time.
- The whole domain is summarized; there is no per instance breakdown (use jennifer-xview for that).
- avg_sql_time and avg_external_call_time are per SQL execution and per call, not per transaction. To combine windows, sum calls and errors and weight avg_response_time by calls.
- The period is at most one day; each window is one call to the console.
- 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 summarize; jennifer-instances lists them.
- 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 hour when no period is given. At most one day.
- 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.
- span=VALUE
- Optional. e.g. 10m. Length of each summary window, in m(minute) or h(hour); the period is cut into windows from its start and each window is summarized on its own row per application. 1h by default, so a period of an hour or less gives one row per application. At most 288 windows.
Output fields
| Field | Type | Name | Description |
|---|---|---|---|
| _time | Date | Window start | e.g. 2026-10-27 03:00:00 |
| end_time | Date | Window end | e.g. 2026-10-27 04:00:00 |
| profile | String | Connect profile | e.g. jennifer-prod |
| domain_id | Integer | Domain ID | e.g. 1000 |
| application | String | Application | e.g. /api/orders. The service name (URL), as jennifer-xview names it. |
| calls | Long | Calls | e.g. 2580. Finished transactions in the window. |
| errors | Long | Errors | e.g. 3. Transactions that ended with an error. |
| error_rate | Double | Error rate | e.g. 0.12. errors / calls in percent. |
| avg_response_time | Double | Average response time | e.g. 2.94. Milliseconds per transaction. |
| stddev_response_time | Double | Response time deviation | e.g. 3.43. Population standard deviation in milliseconds; far above the average means a few very slow transactions. |
| total_response_time | Long | Total response time | e.g. 7585. calls × avg_response_time in milliseconds: the time the application took in all; rank by it to find what costs the most. |
| avg_sql_time | Double | Average SQL time | e.g. 1.67. Milliseconds per SQL execution, not per transaction. |
| avg_external_call_time | Double | Average external call time | e.g. 98.5. Milliseconds per external call, not per transaction. |
| abnormal | Boolean | Abnormal | e.g. false. The console marks it abnormal (drawn red in its application map). |
Usage
Applications that cost the most time in the last hour:
jennifer-app-summary domain_id=1000 duration=1h | sort limit=10 -total_response_time | fields application, calls, errors, error_rate, avg_response_time, stddev_response_time, avg_sql_time, avg_external_call_time
Incident hour against the hour before it, by application:
jennifer-app-summary domain_id=1000 from=20261027020000 to=20261027040000 span=1h | eval period = if(_time >= date("20261027030000", "yyyyMMddHHmmss"), "incident", "baseline") | stats sum(calls) as calls, sum(errors) as errors, sum(total_response_time) as total by application, period | eval avg_rt = round(total / calls, 1)
Applications with errors in the last 30 minutes:
One application per 10 minutes: