An AppDynamics Machine Agent add-on to report metrics from a Tibco EMS Server and its queues.
Tibco EMS is messaging middleware that provides persistent queues as well as a publish/subscribe mechanism. It can be used as a JMS provider, or it can be used directly via native API’s.
This extension requires the Java Machine Agent.
Before the extension is installed, the prerequisites mentioned here need to be met. Please do not proceed with the extension installation if the specified prerequisites are not met.
Before starting this monitor, make sure your EMS server is configured to report statistics. You can do this by editing the file
tibemsd.conf in your
TIBCO_HOME, or by using the
tibemsadmin command line utility.
Add the following line to
statistics = enabled
Restart Tibco EMS.
tibemsadmin utility to change the server configuration.
root# tibemsadmin -server localhost:7222 TIBCO Enterprise Message Service Administration Tool. Copyright 2003-2013 by TIBCO Software Inc. All rights reserved. Version 8.0.0 V9 6/7/2013 Login name (admin): Password: Connected to: tcp://localhost:7222 Type 'help' for commands help, 'exit' to exit: tcp://localhost:7222> set server statistics=enabled Server parameters have been changed tcp://localhost:7222> quit bye
<MachineAgent_Dir>/monitors/The metricPrefix of the extension has to be configured as specified here. Please make sure that the right metricPrefix is chosen based on your machine agent deployment, otherwise this could lead to metrics not being visible in the controller.
$MACHINE_AGENT_HOME/monitors/TibcoEMSMonitor, edit the file
config.ymland configure the extension for your Tibco EMS installation.
Configuration for this monitor is in the
config.yml file in the monitor directory.
######### ## If you are using SSL to connect to EMS, make sure you also set the following: ## ## sslIdentityFile: path to the private key and client certificate file (example: conf/client_identity.p12) ## sslIdentityPassword: password to decrypt the private key ## sslTrustedCerts: path to the server certificate file (example: conf/server_cert.pem) ########## servers: # Keep the display name blank if Tibco EMS Extension is monitoring only one Tibco Server. - displayName: "Local EMS" host: "192.168.1.11" port: "6222" # Supports tcp and ssl protocol: "tcp" #Add fault Tolerant servers faultTolerantServers: ["192.168.1.11:7222"] user: "admin" # password or encryptedPassword and encryptionKey are required password: "admin" encryptedPassword: encryptionKey: #We are going to remove support for .* in next release. Other regex's are still supported. includeQueues: [".*"] includeTopics: [".*"] includeDurables: [".*"] includeRoutes: [".*"] includeProducers: [".*"] includeConsumers: [".*"] sslIdentityFile: sslIdentityPassword: sslIdentityEncryptedPassword: sslTrustedCerts: #ssl config optional settings sslCiphers: "" sslDebug: sslVerifyHost: sslVerifyHostName: sslVendor: # Each server instance needs 9 threads, one for the server instance itself, and others for collecting metrics from connection, consumer, durable, producer, queue, route, server and topic. # So, please change the value accordingly(Based on the number of server instances you are monitoring). numberOfThreads: 15 #Enabling this will display dynamic ids like ProducerID and Consumer ID in the metric path. But this will also increase the stale metrics as the ids are dynamic and they change continuously. #Disabling this will aggregate all the values from the destinations ( Producers, Consumers ) and print that value to the controller displayDynamicIdsInMetricPath: false #This will create this metric in all the tiers, under this path. Please make sure to have a trailing | #metricPrefix: "Custom Metrics|Tibco EMS|" #This will create it in specific Tier aka Component. Replace
. Please make sure to have a trailing |. #To find out the COMPONENT_ID, please see the screen shot here https://docs.appdynamics.com/display/PRO42/Build+a+Monitoring+Extension+Using+Java metricPrefix: "Server|Component: |Custom Metrics|Tibco EMS|" # If any of the following fields are not set, the values of the specific fields are set from the system properties of the corresponding fields as specified in the comments. # If the system properties are not set for the field, then the data is retrieved from machine agent configFile. Please refer to ControllerInfoFactory for more details. # Values provided here can be overridden if the same field is configured in either controller-info.xml or system properties. controllerInfo: controllerHost: "" # -Dappdynamics.controller.hostName controllerPort: # -Dappdynamics.controller.port controllerSslEnabled: false # -Dappdynamics.controller.ssl.enabled enableOrchestration: false # N/A uniqueHostId: "" # -Dappdynamics.agent.uniqueHostId username: "admin" # -Dappdynamics.agent.monitors.controller.username password: "" # -Dappdynamics.agent.monitors.controller.password encryptedPassword: "j+0oxTzUtw2xAdaq4UUq/Q==" # -Dappdynamics.agent.monitors.controller.encryptedPassword accountAccessKey: "" # -Dappdynamics.agent.accountAccessKey account: "" # -Dappdynamics.agent.accountName machinePath: "" # -Dappdynamics.machine.agent.hierarchyPath simEnabled: false # -Dappdynamics.sim.enabled applicationName: "" # -Dappdynamics.agent.applicationName tierName: "" # -Dappdynamics.agent.tierName nodeName: "" # -Dappdynamics.agent.nodeName #Encryption key for your controllerInfo password encryptionKey: "abcd"
Please look at the troubleshooting document and make sure that everything is followed correctly.
This monitor can potentially register hundred of new metrics, depending on how many queues are in EMS. By default, the Machine Agent will only report 200 metrics to the controller, so you may need to increase that limit when installing this monitor. To increase the metric limit, you must add a parameter when starting the Machine Agent, like this:
java -Dappdynamics.agent.maxMetrics=1000 -jar machineagent.jar
For any questions or feature requests, please contact the AppDynamics Center of Excellence.
Controller Compatibility: 3.6 or later
Last Updated: 4 May 2020
sslVerifyHostName. Please check the
monitor.xmlbundled with this release for details.
queuesToExcludeoption to configuration.