Discussion Feed
10-26-2020
02:48 PM
1 Kudo
What do I need to know about using the sample script to build my own Puppet module?
Every deployment is different, so this task doesn't lend itself to one all-inclusive Puppet script maintained by AppDynamics. However, the attached sample script can help you get started on your own Puppet module.
Table of Contents
Puppet sample environment and components
Puppet configuration essentials
Guidelines for creating a custom Puppet module from the Sample
What do I need to know about the Puppet sample’s environment and components
This sample script is intended for a Linux/Tomcat deployment. The script is relatively straightforward, and is intended to serve as a rough framework for building a script appropriate for your specific environment. Definitely edit it as appropriate for your environment and test out your config!
Puppet configuration essentials
If you haven't used Puppet before, we recommend running through the first two sections of the Puppet Quick Start Guide.
What guidelines are there for creating my own Puppet module from the sample?
The java_agent.zip file needs to be unzipped into the prospect's Puppet modules directory ( /etc/puppet/environments/production/modules/ by default). It contains 4 subdirectories: manifests, templates, files, and tests:
/manifests contains the main Puppet script, init.pp
/templates contains the catalina.sh template file (see lines 236-238) for how the init.pp variables are inserted. Common system variables you would use can be found here: https://puppet.com/docs/puppet/6.19/lang_variables.html
/files contains the AppServerAgent.zip — Replace this with the version of AppServerAgent.zip that you'd like to deploy
/tests is not used for this module
Within init.pp you see the list of variables used for the deployment. You need to set these as appropriate for the target system. For SaaS or other configurations, be sure to add the appropriate Java configuration properties to the command line.
If you already deploy a customized catalina.sh , you may want to inherit that template file or you may need to get more creative. A simple line replace should suffice.
... View more
- Find more articles tagged with:
- Configuration management
Labels:
12-12-2017
11:20 AM
First a note of information, the Univeral Agent is intended for use in large-scale deployments. To understand some details for the rulebooks, please refer the 4.4 documentation on rulebooks: https://docs.appdynamics.com/display/PRO44/Universal+Agent+Rulebooks
... View more
10-19-2017
02:25 PM
Hi Wahyu,
I would add to Steve's reply that you can find a simple getting started procedure here: https://docs.appdynamics.com/display/PRO43/AppDynamics+Universal+Agent#AppDynamicsUniversalAgent-GettingStarted.
... View more
07-12-2017
05:14 PM
I do not. re: IIS - check with the .NET team.
... View more
06-27-2017
03:06 PM
The Universal Agent documenation for rulebooks has been revised. https://docs.appdynamics.com/display/PRO43/Universal+Agent+Rulebook
... View more
08-14-2015
09:11 AM
2 Kudos
What is the best way to setup Alerts for App Agent Status and Machine Agent Status?
When the Agent is turned off, the Agent Status stops reporting any values. So what, then, is the best approach for setting up a Health Rule?
Solution 1 - Machine Agent's Metric
The machine agent posts a metric you can use:
Application Infrastructure Performance|FrontEnd|Agent| Machine|Availability
Solution 2 - App Agent Status
You can also use the App Agent Status for app agent availability.
But note that, in addition to the app pool recycles that take place by default every 29 hours, there is also an app pool idle time out that occurs if there’s no traffic on the app after 20 minutes. If that idle occurs, then the agent will be unloaded, will no longer report and trigger this alert, and look like a false alert (App|Availability = 0).
You can address this by turning that setting off by setting the timeout value to 0.
Read about this here under the section Idle Time Out.
... View more
- Find more articles tagged with:
- .NET
- alerts
- availability
- machine agent
Labels:
07-20-2015
02:32 PM
Issue
Java agent is unable to connect to the controller due to a certificate chaining error. This might be seen with IBM WebSphere.
Errors similar to the following:
[AD Thread Pool-Global0] 10 Jun 2015 20:12:52,848 WARN XMLConfigManager - Certificate chain validation failed com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert Global Root CA, OU= www.digicert.com<http://www.digicert.com >, O=DigiCert Inc, C=US is not trusted; internal cause is: java.security.cert.CertPathValidatorException: Certificate chaining error attempting validation. [AD Thread Pool-Global0] 10 Jun 2015 20:12:52,849 ERROR ConfigurationChannel - Fatal transport error: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert Global Root CA, OU= www.digicert.com<http://www.digicert.com >, O=DigiCert Inc, C=US is not trusted; internal cause is: java.security.cert.CertPathValidatorException: Certificate chaining error [AD Thread Pool-Global0] 10 Jun 2015 20:12:52,849 WARN ConfigurationChannel - Could not connect to the controller/invalid response from controller, cannot get initialization information, controller host [stelo.saas.appdynamics.com< http://stelo.saas.appdynamics.com> ], port[443], exception [Fatal transport error: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert Global Root CA, OU= www.digicert.com<http://www.digicert.com >, O=DigiCert Inc, C=US is not trusted; internal cause is: java.security.cert.CertPathValidatorException: Certificate chaining error]
Solution
The java agent is using the IBM JVM's jre/lib/security/cacerts file to validate the controller's certificate.
There are two ways to solve this problem: 1.) Use keytool to import the root of your controller's certificate chain, (the FTB CA's root cert), into jre/lib/security/cacerts 2.) Start your application with following JVM arguments: -Djavax.net.ssl.trustStore=/path/to/FTB_custom_trustStore.jks -Djavax.net.ssl.trustStorePassword=somepassword and make sure FTB_custom_trustStore.jks contains the FTB Certificate Authority root cert.
... View more
- Find more articles tagged with:
- certificate
- SaaS
- troubleshooting
Labels:
06-12-2015
03:37 PM
Question
Does the JavaScript agent for EUM (adrum.js) always need to be placed in the header of the web page? Won't this potentially cause latency and load delays in loading the web page?
Answer
Our Engineering team has gone to great lengths to ensure that the initial adrum.js is very lightweight.
Additionally, the loading of adrum.js is synchronous and minimal filesize to prevent page loading interruptions. It calls out to the extension script, adrum-ext.js, asynchronously to allow rest of the page to load.
For most modern browsers, it does not matter where you copy adrum.js file on the page because they support navigation timing, which is what we use for the timings. So loading in the body for them is ok.
If you care about accurate timing for older browsers, mostly older IE and Safari, then you need to load the tag as early possible so the fall back timer can be started.
Using the adrum-start-time property gets us around the timing issues with older browsers. Place this JS snippet in the page's <head> and then place adrum.js at the bottom like so window["adrum-start-time"] = new Date().getTime(); More code examples here.
IE browsers tips:
adrum.js loading placement in relation to <meta> tags definitely impacts pre-IE 9 browsers, therefore the recommended location for adrum.js is AFTER any <meta> tags
With older browsers, load adrum.js as early as possible to avoid missing resource timing data
Intranet settings in IE can prevent the JS agent from functioning properly
Browsers that support the navigation timing API can be found here: Browser Support for Navigation Timing API.
... View more
Labels:
06-11-2015
09:51 AM
Symptoms
While trying to enable the End User Experience in the Controller, it returns an error similar to the following:
EUM license usage retrieval failed (Error fetching license usage information [org.apache.http.conn.HttpHostConnectException
For example, in an environment using the AppDynamics SaaS EUM the full error might read:
EUM license usage retrieval failed (Error fetching license usage information [org.apache.http.conn.HttpHostConnectException: Connect to agg.eum-appdynamics.com:443 [agg.eum-appdynamics.com/52.10.146.82, agg.eum-appdynamics.com/54.186.213.46, agg.eum-appdynamics.com/54.148.146.12, agg.eum-appdynamics.com/54.191.252.35, agg.eum-appdynamics.com/54.213.8.211, agg.eum-appdynamics.com/54.69.27.161] failed: Connection refused while calling 'https://agg.eum-appdynamics.com/eumaggregator/licenseUsage'] )
Diagnosis
To use EUM, you must have port 443 open on the Controller machine so the Controller can access the EUM cloud to collect EUM metrics. The EUM cloud can be the AppDynamics Cloud or your own if you have set up an on-premise EUM Server.
For EUM in AppDynamics Cloud Environment
The Controller needs to access agg.eum-appdynamics.com through internet using HTTP over SSL on port :443.
For On-Premises EUM
the URL agg.eum-appdynamics.com will be different, but the issue is the same. Make sure port 443 is open.
Solution
Confirm that port 443 is open and is not blocked by a firewall.
If you have a proxy in between the Controller and your EUM cloud, configure the proxy as described in the following doc: Configure On-Prem Controller HTTP Proxy Settings.
Related documenation:
Install and+Configure the On-Premise EUM Server.
... View more
- Find more articles tagged with:
- troubleshooting
Labels:
06-05-2015
02:09 PM
Use Case Description
Using the flight search sample application, this example shows the use of the validation configuration. Prior to applying the custom correlation configuration with validation, the flow map shows the following.
Flow Map Without Correlation
Flow Map With Correlation and Validation
Providing custom correlation configuration along with validation that specifies correlation for the requests for United Airlines searches, indicated by the value "UA232" in the getter chain configuration, we get the following flow map.
The validator configuration is specified in the validator-config element in addition to the standard producer and consumer XML shown in other examples. This XML snippet just shows the validator-config for this example. Place this element and its associated attributes and child elements inside the <intrumentation> element of your producer or consumer XML.
Validation XML Example
Consumer XML configuration for custom-activity-correlation.xml
<instrumentation> ... <validator-config>
<validator class-match-type="MATCHES_CLASS" match-pattern="java.util.HashMap">
<data-match-config>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</data-match-config>
</validator>
<!-- no data match conditions with a class match validation -->
<validator match-type="NOT_EMPTY">
<data-match-config>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>get(object/UA232)</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</data-match-config>
</validator>
</validator-config> </instrumentation>
... View more
- Find more articles tagged with:
- correlation
- Custom Correlation
Latest Activity
- Got a Kudo for What is the best way to set up alerts for App agent and Machine agent status?. 02-24-2021 03:39 AM
- Posted How do I use Puppet for AppDynamics agent deployment? on Knowledge Base. 10-26-2020 02:48 PM
- Got a Kudo for Custom Correlation for Java Applications. 10-22-2020 10:37 AM
- Got a Kudo for How do I enable DEBUG level logging?. 10-09-2020 10:53 AM
- Got a Kudo for Why don't I see expected MBeans in the MBean Browser?. 04-24-2020 04:55 AM
- Got a Kudo for How do I use Puppet for AppDynamics agent deployment?. 01-20-2020 04:53 PM
- Got a Kudo for How do I find and configure missing entry points?. 07-18-2019 01:55 AM
- Got a Kudo for What is the best way to set up alerts for App agent and Machine agent status?. 05-28-2019 11:31 PM
- Got a Kudo for What should I do if expected errors or exceptions are not showing up?. 03-19-2019 06:46 AM
- Got a Kudo for Why don't I see expected MBeans in the MBean Browser?. 11-15-2018 04:29 AM
- Got a Kudo for How do I enable DEBUG level logging?. 11-02-2018 01:27 AM
- Got a Kudo for Why don't I see expected MBeans in the MBean Browser?. 10-09-2018 01:15 PM
- Got a Kudo for Why am I receiving the error "Controller Metric Data Buffer Overflow"?. 07-24-2018 09:15 PM
- Got a Kudo for Why is the Machine Agent not reporting properly?. 06-20-2018 05:33 AM
- Got a Kudo for What is the Business Transaction discovery life cycle?. 06-16-2018 03:47 AM
- Got a Kudo for Instrumenting TIBCO ActiveMatrix BusinessWorks. 06-06-2018 07:42 AM
- Got a Kudo for How do I find and configure missing entry points?. 03-30-2018 08:54 AM
- Got a Kudo for Transaction Correlation Overview. 03-11-2018 06:31 AM
- Got a Kudo for What is the Business Transaction discovery life cycle?. 01-27-2018 11:21 AM
- Posted Re: Universal agent Controller rulebook on Java (Java Agent, Installation, JVM, and Controller Installation). 12-12-2017 11:20 AM
Community Stats
Date Registered | 12-14-2012 09:22 AM |
Date Last Visited | 07-10-2018 05:44 PM |
Total Messages Posted | 450 |
Total Kudos Received | 32 |