This page enables you to monitor a standalone Trino deployment on Kubernetes by:
- Enabling JMX export via jmxtrans agent (coordinator + workers)
- Enabling Acceldata Trino event listener for query events streaming to Pulse
- Deploying Trino Connector. For details about deploying Trino Connector on Pulse Kubernetes, see Deploy Pulse Add-on Services.
For details, see the following pages.
- Prerequisites
- ConfigMap Changes Trino Coordinator
- ConfigMap Changes Trino Worker
- PVC for Extra Files (If Not Already Present)
- Deployment Changes (Coordinator + Worker)
Prerequisites
Artifacts Required
JMX Agent JAR: jmxtrans-agent-x.x.x.jar (from Acceldata License Portal)
JMX XML config files (shared by Acceldata):
- Coordinator: vm_trino_coordinator.xml
- Worker: vm_trino_worker.xml
- Ensure naming/case matches the file you mount
Trino Event Listener JAR (from Acceldata):
- Example: ad-trino-event-listener-x.x.jar (actual filename may differ)
- This file must be placed where Trino can load plugins.
Pulse Endpoint
- Pulse event streaming endpoint:
- <Pulse IP>:19009
Storage for extra files
You must make the JAR/XML files available inside both coordinator and worker pods under:
- /opt/trino-extra/ (for jmxtrans jar + XML)
- /usr/lib/trino/plugin/... (for event listener plugin jar)
Preferred approach: PV/PVC + volumeMounts
If you already have a PV/PVC attached to pods, reuse it; otherwise, create one.
ConfigMap Changes Trino Coordinator
Search for the Configmap on the Trino namespace corresponding to Trino Coordinator.
- Update Trino Coordinator jvm.config
Add the javaagent line in the jvm.config block:
-javaagent:/opt/trino-extra/jmxtrans-agent-1.0.0.jar=/opt/trino-extra/vm_trino_coordinator.xml- Ensure plugin path exists/
In node.properties, ensure:
plugin.dir=/usr/lib/trino/pluginConfigure event-listener.properties.
Update (or add) event-listener.properties:
event-listener.name=ad-trino-event-listener.jarad.cluster=adclusterad.events.streaming.servers=<Pulse IP>:19009- event-listener.name: The name of the Trino JAR provided by Acceldata.
- Ad.cluster: The name of the cluster
- Ad.events.streaming.servers: <Pulse IP>:19009
Example JVM.Config (Coordinator):
config.properties: | coordinator=false http-server.http.port=8080 query.max-memory=4GB query.max-memory-per-node=1GB discovery.uri=http://trino-cluster-1-trino:8080 jvm.config: | -server -agentpath:/usr/lib/trino/bin/libjvmkill.so -Xmx8G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:ReservedCodeCacheSize=512M -XX:PerMethodRecompilationCutoff=10000 -XX:PerBytecodeRecompilationCutoff=10000 -Djdk.attach.allowAttachSelf=true -Djdk.nio.maxCachedBufferSize=2000000 # Allow loading dynamic agent used by JOL -XX:+EnableDynamicAgentLoading -javaagent:/opt/trino-extra/jmxtrans-agent-1.0.0.jar=/opt/trino-extra/vm_trino_coordinator.xml log.properties: | io.trino=INFO node.properties: | node.environment=production node.data-dir=/data/trino plugin.dir=/usr/lib/trino/plugin event-listener.properties: | event-listener.name = ad-trino-event-listener.jar ad.cluster = adcluster ad.events.streaming.servers = <Pulse IP>:19009ConfigMap Changes Trino Worker
Search for the Configmap on the Trino namespace corresponding to Trino Worker.
- Update the Trino Worker jvm.config
Add the javaagent line in the jvm.config block:
-javaagent:/opt/trino-extra/jmxtrans-agent-1.0.0.jar=/opt/trino-extra/vm_trino_worker.xml- Ensure plugin path exists
In node.properties ensure:
plugin.dir=/usr/lib/trino/plugin- Configure event-listener.properties.
Update (or add) event-listener.properties:
event-listener.name=ad-trino-event-listener.jarad.cluster=adclusterad.events.streaming.servers=<Pulse IP>:19009- event-listener.name: The name of the Trino JAR provided by Acceldata.
- Ad.cluster: The name of the cluster
- Ad.events.streaming.servers: <Pulse IP>:19009
Example JVM.Config (Worker):
config.properties: | coordinator=false http-server.http.port=8080 query.max-memory=4GB query.max-memory-per-node=1GB discovery.uri=http://trino-cluster-1-trino:8080 jvm.config: | -server -agentpath:/usr/lib/trino/bin/libjvmkill.so -Xmx8G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:ReservedCodeCacheSize=512M -XX:PerMethodRecompilationCutoff=10000 -XX:PerBytecodeRecompilationCutoff=10000 -Djdk.attach.allowAttachSelf=true -Djdk.nio.maxCachedBufferSize=2000000 # Allow loading dynamic agent used by JOL -XX:+EnableDynamicAgentLoading -javaagent:/opt/trino-extra/jmxtrans-agent-1.0.0.jar=/opt/trino-extra/vm_trino_worker.xml log.properties: | io.trino=INFO node.properties: | node.environment=production node.data-dir=/data/trino plugin.dir=/usr/lib/trino/plugin event-listener.properties: | event-listener.name = ad-trino-event-listener.jar ad.cluster = adcluster ad.events.streaming.servers = <Pulse IP>:19009PVC for Extra Files (If Not Already Present)
The JMX Agent JAR and XML configuration files must be accessible within the Trino Coordinator and Worker pods.
If an existing PV/PVC is already mounted to these pods, it can be reused to store the required files. Otherwise, create a new PVC and mount it into both the Coordinator and Worker pods to host the JMX agent, XML configuration files, and the Trino event listener JAR.
Example PVC:
apiVersion: v1kind: PersistentVolumeClaimmetadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"trino-extra-files-pvc","namespace":"trino"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"1Gi"}}}} pv.kubernetes.io/bind-completed: "yes" pv.kubernetes.io/bound-by-controller: "yes" volume.beta.kubernetes.io/storage-provisioner: ebs.csi.aws.com volume.kubernetes.io/selected-node: ip-10-0-43-150.ap-south-2.compute.internal volume.kubernetes.io/storage-provisioner: ebs.csi.aws.com creationTimestamp: "2025-09-09T11:39:12Z" finalizers: - kubernetes.io/pvc-protection name: trino-extra-files-pvc namespace: trino resourceVersion: "56712449" uid: 45e7e95a-86fc-41ee-8678-46f45f27a112spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: gp3-csi volumeMode: Filesystem volumeName: pvc-45e7e95a-86fc-41ee-8678-46f45f27a112status: accessModes: - ReadWriteOnce capacity: storage: 1Gi phase: BoundDeployment Changes (Coordinator + Worker)
- Update Trino Coordinator and Worker Deployments
If you created a new PVC for the JMX agent and configuration files, you must mount it in both the Trino Coordinator and Worker deployment specs.
- Add volumeMounts and volumes
Mount the PVC at /opt/trino-extra and mount the Acceldata event listener JAR into the Trino plugin directory using subPath.
Reference the ConfigMaps and the PVC in the pod spec.
volumeMounts: - mountPath: /etc/trino name: config-volume - mountPath: /etc/trino/catalog name: catalog-volume - mountPath: /etc/trino/schemas name: schemas-volume # Extra files for JMX agent + XML configuration - mountPath: /opt/trino-extra name: extra-files-volume # Acceldata Trino event listener JAR (mounted into plugin directory) - mountPath: /usr/lib/trino/plugin/ad-trino-event-listener/ad-trino-event-listener-1.0.jar name: extra-files-volume subPath: ad-trino-event-listener-1.0.jarvolumes: - name: config-volume configMap: defaultMode: 420 name: trino-cluster-1-trino-coordinator - name: catalog-volume configMap: defaultMode: 420 name: trino-cluster-1-trino-catalog - name: schemas-volume configMap: defaultMode: 420 name: trino-cluster-1-trino-schemas-volume-coordinator # PVC containing JMX agent, XMLs, and event listener JAR - name: extra-files-volume persistentVolumeClaim: claimName: trino-extra-files-pvc- Apply and Restart
Apply the updated deployment manifests for both Coordinator and Worker, then restart pods so the new mounts take effect.
Validation: After a restart, confirm the following paths exist inside the pods:
- /opt/trino-extra/jmxtrans-agent-x.x.x.jar
- /opt/trino-extra/vm_trino_ coordinator.xml (Coordinator) -
- /opt/trino-extra/vm_trino_ worker.xml (Worker)
- /usr/lib/trino/plugin/ad-trino-event-listener/ad-trino-event-listener-x.x.jar