Install Guide
Overview
The JENNIFER APM app calls the JENNIFER management API (Open API) at intervals and collects the performance of finished transactions. It collects the time spent in each part - response time, CPU time, SQL time and so on - along with the error type, and a query command reads the list of running services in real time.
From 1.1.2610.0 the app adds the JENNIFER console. The same dashboard, analysis and statistics screens as the JENNIFER web console open inside Logpresso Sonar, and query commands read the same console data to narrow down the cause of a performance anomaly. The app therefore comes in two parts that use different credentials.
| Item | Transaction collection | Console screens and console query commands |
|---|---|---|
| App version | 1.0.2607.0 or later | 1.1.2610.0 or later |
| Credential | JENNIFER Open API token | JENNIFER console account ID and password |
| Connect profile type | JENNIFER APM | JENNIFER Console |
| What you get | The 제니퍼 APM 트랜잭션 (JENNIFER APM Transaction) collection model, the jennifer-apm-transaction-time and jennifer-apm-active-service-list query commands | The Dashboard, Analysis and Statistics menus, jennifer-instances and six more query commands, AI agent root cause analysis |
Scope
Choosing what to set up
The two parts are independent. Work through only the sections the features you want need.
| What you want | Sections to follow |
|---|---|
| Collect transactions into a table only | Transaction collection under Requirements, JENNIFER APM setup, Logpresso collection setup, transaction collection under Verify the installation |
| Console screens and console query commands only | Console screens and console query commands under Requirements, Console setup, console screens and console query commands under Verify the installation |
| Both | All of the above. You create one connect profile of each type, two in all |
Requirements
Transaction collection
| Item | Requirement | Note |
|---|---|---|
| JENNIFER account/permission | Permission to call the JENNIFER Open API | Missing permission may leave gaps in collection |
| Credential to issue | JENNIFER Open API token | Issued in the JENNIFER management console |
| Information to look up | Domain ID to collect, instance IDs (optional) | Found in the JENNIFER management console |
| Network | HTTPS/443 (Sonar collection node → JENNIFER server, outbound) | Firewall policy must allow it |
Console screens and console query commands
| Item | Requirement | Note |
|---|---|---|
| App version | JENNIFER APM 1.1.2610.0 or later | Earlier versions have no console menus or commands |
| Console account | An account ID and password that can sign in to the JENNIFER web console | It must be able to see the domains you monitor. A dedicated account is recommended |
| Information to look up | The JENNIFER view server (web console) address, e.g. https://jennifer.example.com:7900 | The address you open the console with in a browser |
| Network | Sonar server → JENNIFER view server, HTTP(S) and WebSocket on the console port (outbound) | Firewall and proxy policy must allow it |
JENNIFER APM setup
These steps are for transaction collection.
Step 1: Issue an Open API token
Issue a token for Open API calls in the JENNIFER management console. Keep the token string somewhere safe; you enter it when you register the Sonar connect profile.
Step 2: Find the domain ID
Find the ID of the domain to collect. The domain ID is a required collector setting.
Step 3: Find instance IDs (optional)
To collect only certain instances, find their IDs. Without instance IDs, every instance in the domain is collected.
Logpresso collection setup
Step 1: Add a connect profile
Under System > Connect Profiles, click Add and enter the values below.
| Kind | Item | Setting |
|---|---|---|
| Required | Name | A unique name for the connect profile |
| Required | Identifier | The profile's unique identifier, used in Logpresso queries and elsewhere, e.g. jennifer_apm |
| Required | Type | Select JENNIFER APM |
| Required | Token | The Open API token issued in JENNIFER APM setup step 1 |
| Required | Endpoint | JENNIFER server URL, e.g. https://example.com:7900 |
| Optional | HTTP proxy | IP:PORT |
| Optional | Connection timeout | Milliseconds. 30000, the default, is recommended |
Step 2: Add a collector
Under Collection > Collectors, click Add and enter the values below.
| Kind | Item | Setting |
|---|---|---|
| Required | Name | A unique name for the collector |
| Required | Interval | 60 seconds recommended |
| Required | Storage/collection node | The node that suits your Logpresso platform layout |
| Required | Collection model | Select 제니퍼 APM 트랜잭션 (JENNIFER APM Transaction) |
| Required | Table | The table to store collected data in. To keep domains apart, suffix the domain ID (e.g. APM_JENNIFER) |
| Required | Connect profile | The profile identifier from step 1 |
| Required | Domain ID | The domain ID found in JENNIFER APM setup step 2 |
| Optional | Instance ID | Several may be given, comma separated, e.g. 10000,10001. All instances when omitted |
| Optional | Scan Days | 0 to 90. How many days back the first collection reaches. 0 collects from now on (default) |
| Optional | Delay time | Seconds. Queries that far behind the current time (default 0) |
Console setup
These steps are for the console screens and console query commands. The app signs in to the JENNIFER web console with the console account and receives the data the screens and query commands use.
Step 1: Check the app version
In the App Store, check that the JENNIFER APM app is 1.1.2610.0 or later, and update it if an earlier version is installed. JENNIFER APM connect profiles and collectors you already have stay as they are.
Step 2: Prepare a console account
Prepare the account this app will use in the JENNIFER console.
- It must be able to see the domains and instances you monitor in the console. Whatever the account cannot see in the console does not show up in the screens or query commands either
- A dedicated account for this app is recommended over a person's account. When the account's password changes, the connect profile has to change too
- Some buttons on the screens appear only when the account has the permission for them. Grant only what the screens are meant for
JENNIFER Console connect profiles that user is granted, and send the user's requests as the profile's console account. If the account holds the permissions below, a Sonar user granted the profile can actually change JENNIFER from the screens. These actions appear on the screens only when the account has the matching permission. Grant the connect profile only to the users who need it.
| Screen | Action | What happens in JENNIFER |
|---|---|---|
| Heap memory chart | Run GC | Runs a GC on the target instance's JVM |
⋯ menu of the statistics and X-View analysis screens | 시작 화면으로 설정 (Set as start screen) | Changes the console account's start page |
| Event chart on the dashboards | Recovery | Marks the instance's event as recovered |
| X-View transaction call tree | Method, class and package profile settings | Changes JENNIFER's method profiling settings |
| X-View transactions | Background export (profile text, stack trace) | Creates a background job for the console account |
| X-View transactions | SQL 성능 상세 보기 (SQL performance details, Sherpa for Oracle link) | Asks the console for the SQL's Sherpa for Oracle link |
| X-View transactions | Talk sharing | Posts to the console's Talk board as the console account |
| X-View analysis | X-View 패턴 등록 (Register X-View pattern) | Registers an X-View pattern on the server |
To rule out write actions, use a read-only account without these permissions. The query commands only read, whatever the permissions.
Step 3: Check the network
The app connects to the JENNIFER view server from the Sonar server, not from the user's browser. Allow outbound connections from the Sonar server to the console address's port.
| Used for | Path | Protocol |
|---|---|---|
| Sign-in, statistics and analysis data | Web paths of the console address | HTTP(S) |
| Realtime charts | /ws/realtime | WebSocket on the same port |
| X-View points, X-View transactions | /ws/bigdata | WebSocket on the same port |
If a proxy or security device sits in between, check that it allows the WebSocket upgrade. With only HTTP getting through, the statistics screens open but the realtime charts and X-View stay empty.
Step 4: Add a connect profile
Under System > Connect Profiles, click Add and enter the values below.
| Kind | Item | Setting |
|---|---|---|
| Required | Name | A unique name for the profile. It appears in the console screens' profile list and is what the query commands' profile option takes |
| Required | Identifier | The profile's unique identifier, e.g. jennifer_console |
| Required | Type | Select JENNIFER Console |
| Required | Endpoint | JENNIFER view server URL, e.g. https://jennifer.example.com:7900 |
| Required | Account ID | The console account ID prepared in step 2 |
| Required | Account password | The console account's password. Stored as a protected value |
| Optional | HTTP proxy | IP:PORT |
| Optional | Connect timeout | Seconds. 30 by default |
| Optional | Read timeout | Seconds. 30 by default |
JENNIFER APM profile is in milliseconds; the timeouts of a JENNIFER Console profile are in seconds.
The console screens and query commands share one sign-in with the profile's account. When the sign-in expires, the app signs in again by itself. Changing the profile's endpoint, account, password or proxy makes it sign in afresh with the new values.
With several JENNIFER consoles, create one profile per console.
Step 5: Check the menus
With app 1.1.2610.0 or later, the following menus appear under JENNIFER APM in the left menu.
| Menu | Screens |
|---|---|
| Dashboard | System Admin, Application Insights, Memory, System Resource |
| Analysis | X-View, Stacktrace Flight Recorder (SFR) |
| Statistics | Daily System Performance, Monthly System Performance |
When you open a screen and there is one JENNIFER Console profile, it opens with that profile straight away. With two or more, a list of profile names and endpoints appears first; the one you pick stays in the address as ?profile= and carries over as you move between screens.
Verify the installation
Transaction collection
Under Collection > Collectors, check that the collector you added is running, and query the table after a cycle or two. Replace the table name with the one you gave the collector.
Console screens and console query commands
Opening one screen and running one command checks sign-in, the realtime connection and data reads all at once.
- Open Dashboard > System Admin. When instance names appear in the domain bar at the top and charts such as TPS and response time refresh every few seconds, sign-in and the realtime connection work
- See whether points appear in the X-View chart on the same screen. If they do, the X-View data connection works too
- Open Statistics > Daily System Performance and search yesterday. When the table and charts fill in, statistics reads work
- Run the command below on the query screen. When domains and instances come back, the query commands work
JENNIFER Console profiles the user running the query may use. Without the profile option they use every such profile, so name one with profile when there are several.
Troubleshooting
| Symptom | Cause | What to do |
|---|---|---|
| No Dashboard, Analysis or Statistics in the left menu | App version below 1.1.2610.0 | Update the app |
| The screen says "사용할 수 있는 JENNIFER 콘솔 접속 프로파일이 없습니다" (no usable JENNIFER Console connect profile) | No profile of the JENNIFER Console type, or the user is not granted one | Add one as in console setup step 4, or grant the user the profile. A JENNIFER APM (token) profile is not used by the screens |
jennifer: login rejected, check account id and password | Wrong account ID or password | Sign in to the console directly with the same account, then fix the profile |
jennifer: login failed with status ... | The endpoint is not the web console address | Put in the address (scheme, host, port) at which a browser shows the console's login screen |
jennifer: unauthorized for ..., check account id and password | The console refuses requests even after signing in again | Check the account's state and password in the console and fix the profile |
| Screens or commands fail with a connection timeout | The Sonar server cannot reach the console | Check the firewall and the HTTP proxy setting |
| Statistics open but realtime charts and X-View are empty | A device in between blocks WebSocket | Allow the WebSocket upgrade for /ws/realtime and /ws/bigdata |
| Query error 207910 (no available JENNIFER console profile) | No profile, or the user may not use it | Add a profile or grant the user permission on it |
Query error 207916 (specify one profile in the profile option) | domain_id was given while several profiles are usable | Name one profile with the profile option |
207902 or 207903 from jennifer-apm-transaction-time | No period given | Give duration, or from and to |
References
With the installation done, see the User Guide for how to use the screens and query commands.


