APM Web Application
A simple application built using Wt. Similar to the Desktop application, the primary purpose of this application is to display APM records as forrests that follow the function call chain for instrumented services/applications.
This application is intended to deploy in the same network as QuestDb. Unlike the desktop application, this application connects to QuestDB over the Postgres Wire Protocol, to retrieve data.
Features
The application provides two views:
List View Display the parent APM records (generally those where the
type
column isnull
) in a table. The query used to retrieve the parent APM records is editable. Change the query as appropriate to filter by additional conditions, time range, etc. Double-click a row to display a tree view with all the child process records for the parent APM record.** Tree View** Display a tree with all the child process records for the latest parent APM records. Select rows in the tree to view all available data for the record.
Configuration
The application has very minimal configuration options. The following environment variables can be used to control the aspects that are configurable.
APM_USERNAME
Theusername
to use to log in to the application. Defaults toapmuser
.APM_PASSWORD
Thepassword
to use to log in to the application.QUESTDB_URI
The PostgreSQL connection URI. Defaultpostgresql://user:quest@localhost:8812/qdb
APM_TABLE
The database table that holds the APM records. Defaults towebapm
. Only one table is supported by the application at present.SECURE_COOKIE
Specifytrue
to set secure cookies (requireshttps
). Cookies are used to track login sessions.
Authentication
There is a rudimentary (and quite insecure) authentication layer for the application. This is just to ensure that the application is not publicly accessible if deployed on the internet. Ideally, the application is deployed in a private network, and accessible only over VPN. The username
and password
combination for logging in can be controlled via environment variables.
Build
Wt is the primary dependency for building the project.
Install Wt
Install Wt and the dependencies needed by Wt.
Install Application
Check out the sources and use cmake
to build the application.
Run the application using a command similar to the following:
Docker
A docker image is available for the web application.
Environment variables
The following variables can be used to customise the service. The QuestDB URI variable as specified earlier, except there is no default value.
QUESTDB_URI
The PostgreSQL connection URI.PORT
Specify the port on which the server listens to. Default8000
.
It is recommended to volume mount a /tmp/apm-sessions.json
file, which is used to track sessions. This allows sessions to survive service restarts.
Once started, the application can be accessed at http://localhost:8000/a
Screen captures



