Discussion Feed
08-08-2019
01:44 AM
Hi Hurshid,
You can perform the following to remove the instrumentation.
tab-install-dir/bin>tabadmin set vizportal.vmopts
tab-install-dir/bin>tabadmin config
tab-install-dir/bin>tabadmin restart
Set the default .vmopts for all the instrumented processes by removing "-javaagent:C:\vizportal\javaagent.jar'" from the command.
Regards,
Anka
... View more
12-29-2017
03:06 AM
1 Kudo
Hi,
Though we do not have any reference of DBAgent overhead , but it could be very minimal in terms of either cpu or memory.
Weight %, The percentage of the total time consumed by the query for the selected time duration.
The reason for currentOp() command showing top because it will be executed by the agent at every minute to get the current statistics for the running queries. It could be the case that there is not much activity on the mongo caused in showing it as top query.
So, as far as I know there should not be much impact on the database for execution of this query by the agent.
You can further drill down down to the queries windows sections to see the complete details about the query execution.
https://docs.appdynamics.com/display/PRO44/Database+Query+Details+Window
Please do let us know if there are any further clarifications required.
Regards,
Anka
... View more
12-13-2017
05:53 PM
Question
Is AppDynamics able to monitor MemSQL DB?
Answer
Yes.
MemSQL is wire-compatible with MySQL.
MemSQL uses the MySQL jdbc libraries for connectivity.
AppDynamics database agent can monitor the MemSQL DB if configured like this:
1. Install database agent
https://docs.appdynamics.com/display/PRO43/Install+the+Database+Agent
2. Configure a collector using the following details: (refer memsql-collector.png) https://docs.appdynamics.com/display/PRO43/Configure+MySQL+Collectors
Database Type - MySQL
Host - MemSQL db host
Port - MemSQL db listener port
user name & password - should be entered
3. User permissions should be as mentioned in the document: https://docs.appdynamics.com/display/PRO43/Configure+MySQL+Collectors#ConfigureMySQLCollectors-permisUserPermissionsforMySQL
4. Upon successful installation and configuration, the data will be reported as shown in the following screenshots.
Note the above is tested with following artifacts:
1. MemSQL Enterprise Trial version
2. Database agent 4.3.1.x
3. Controller version 4.3.3.x
References:
https://en.wikipedia.org/wiki/MemSQL
https://www.memsql.com/content/architecture
https://docs.memsql.com/
______________________________________ Was this helpful? Give it kudos [click on the thumbs up icon at the end of the article, bottom left corner] to let others know too!
Do you have a question or need clarification? [Post Your Comment] Below.
... View more
- Find more articles tagged with:
- infrastructure
- Java
Labels:
12-11-2017
11:01 AM
2 Kudos
Instrumenting Tableau Server (through version 10.5) for Java Agent
Tableau Server installer spawns a number of processes. You’ll need to identify which processes to monitor based on your need.
For example, to monitor these processes execute the following commands to attach the Java Agent to the intended Java processes.
clustercontroller
searchserver
backgrounder
vizportal
vizqlserver
Make sure that each Java process (node) is associated to a different tier.
Example: - Dappdynamics.agent.tierName=vizportal
Step 1 - Edit these 5 JVM options to attach Java Agent
tab-install-dir/bin>tabadmin set vizqlserver.vmopts "'-XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:SurvivorRatio=6 -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -javaagent:C:\vizqlserver\javaagent.jar -Dappdynamics.agent.tierName=vizqlserver'" tab-install-dir/bin>tabadmin set vizportal.vmopts "'-XX:+UseConcMarkSweepGC -XX:+ExitOnOutOfMemoryError -javaagent:C:\vizportal\javaagent.jar -Dappdynamics.agent.tierName=vizportal'" tab-install-dir/bin>tabadmin set backgrounder.vmopts "'-XX:+UseConcMarkSweepGC -Xmx512m -Xms256m -javaagent:C:\backgrounder\javaagent.jar -Dappdynamics.agent.tierName=backgrounder’” tab-install-dir/bin>tabadmin set clustercontroller.vmopts "'-XX:+UseConcMarkSweepGC -Xmx512m -Xms64m -Djna.nosys=true -XX:+ExitOnOutOfMemoryError -javaagent:C:\Anka\4\ver4.3.0.2\javaagent.jar'" tab-install-dir/bin>tabadmin set searchserver.vmopts "'-XX:+UseConcMarkSweepGC -Xmx512m -Xms256m -XX:+ExitOnOutOfMemoryError -javaagent:C:\Anka\1\ver4.3.0.2\javaagent.jar'"
For each set command execution, the result should be shown as below to indicate the successful update of arguments.
-- value for key <process-name>.vmopts has been set
Example:
-- value for key vizportal.vmopts has been set
Step 2 - Flush configuration to all the gateways of the Tableau server
tab-install-dir/bin>tabadmin set config
Expected output without errors:
===== Wrote configuration files to C:/ProgramData/Tableau/Tableau Server/data/tabsvc/config
-- Web data connectors were distributed to all gateways.
Step 3 - Restart the Tableau server
To effect the changes, restart the Tableau server using the appropriate steps, depending on your version of Tableau:
How do I restart Tableau Server prior to version 10.5?
How do I restart Tableau Server version 10.5 and later?
How do I restart Tableau Server prior to version 10.5?
Restart the Tableau server so the changes go into effect:
tab-install-dir/bin>tabadmin restart
Expected output without any errors:
Status: RUNNING
On successful instrumentation of the 5 java processes listed in step 1, the Agents should collect and show an application flow map similar to this:
(refer app-dashboard.png).
Potential issues while attaching the agent to the Java process.
If the Java Agent does not attach properly to the Java process, you may see a process startup failure, such as:
tab-install-dir/bin>tabadmin set vizportal.vmopts “-javaagent:C:\app\4.3.5\ver4.3.5\vizportal\javaagent.jar’”
tab-install-dir/bin>tabadmin config
Execution shows similarly to:
*** Configuration used: -XX:+UseConcMarkSweepGC -XX:+ExitOnOutOfMemoryError
-javaagent:C:\app\4.3.5… -Xmx512m -Xms256m
In the above example, the Java Agent location is not properly taken by Tableau when updating the JVM arguments. To fix the error, make sure that the Java Agent location doesn’t contain “ - ” (hyphen), “ . ”(dot), or “ _ ” (underscore) . The example command should work properly if formatted correctly:
Reference Sample Cmd
tab-install-dir/bin>tabadmin set vizportal.vmopts "-javaagent:C:\vizportal\javaagent.jar'"
tab-install-dir/bin>tabadmin config
Execution should show something similar to:
*** Configuration used: -XX:+UseConcMarkSweepGC -XX:+ExitOnOutOfMemoryError -javaagent:C:\vizportal\javaagent.jar -Xmx512m -Xms256m
How do I restart Tableau Server version 10.5+?
As of Tableau version 10.5, the tabadmin utility deprecated along with the Tableau Server Configuration utility was replaced by Tableau Services Manager (TSM). If you’re using Tableau 10.5+, use something similar to the following with TSM to restart the server, so the changes go into effect:
<Tableau_Home>\bin> tsm configuration set -k vizportal.vmopts -v "-javaagent:C:\vizportal\javaagent.jar'"
For more information, see https://help.tableau.com/current/server/en-us/cli_configuration-set_tsm.htm
... View more
- Find more articles tagged with:
- instrumentation
- Java
- tableau
Labels:
08-18-2017
05:54 AM
Hi Indrajit,
Can you please share the complete db agent logs for quick review once?
I hope, you might have gone through the following document on the permissions side for ms sql server monitoring.
https://docs.appdynamics.com/display/PRO43/Configure+Microsoft+SQL+Server+Collectors
I would suggest you use host/port configuration instead custom jdbc url on the collector configuration for ms sql.
Regards,
Anka
... View more
08-17-2017
02:13 PM
An admin user can configure a regular Windows user to access Windows Management Instrumentation (WMI) information by adding the regular user account to the Distributed COM Users and the Performance Monitor Users group (u sing lusrmgr.msc ) , and then configure the DCOM security settings to allow the groups to access the system remotely (using dcomcnfg ).
Steps for Windows 2003 R2 SP2 Server & Windows 2008 R2 Datacenter:
Click Start > Run..., type lusrmgr.msc and click OK.
In the Users folder, right click the user to bring up the menu, and select Properties .
Click on the Member Of tab, and click Add...
Under " Enter the object names to select" , add the Distributed COM Users group, click Check Names , and then click OK .
Click Add...
Repeat step 4 for the Performance Monitor Users group. Next, configure the DCOM Security Settings to allow the groups to access the system remotely.
Click Start > Run... , type dcomcnfg and click OK .
Drill down into the Component Services tree until you get to My Computer . Right-click " My Computer " to bring up the menu, and click Properties .
Click the COM Security tab, then click Edit Limits under the Launch and Activation Permissions section.
Click Add...
Under Enter the object names to select , type Distributed COM Users , click Check Names , then click OK .
Click Add...
Under Enter the object names to select , type Performance Monitor Users , click Check Names , then click OK .
Check Allow for each of the permissions (Local Launch, Remote Launch, Local Activation, Remote Activation) for each of these groups, and click OK .
Finally, set the WMI Control security settings to be applied to all namespaces.
Click Start > Run... , type wmimgmt.msc and click OK
Right-click WMI Control (Local) to bring up the menu, and click Properties .
Click over to the Security tab, then click Root , and click the Security button.
Click Add...
Under Enter the object names to select , type Distributed COM Users , click Check Names , then click OK .
Click Advanced .
Highlight the row with Distributed COM Users in it and click Edit...
From the drop-down list, select " This namespace and sub namespaces"
Under the Allow column check Execute Methods , Enable Account , and Remote Enable .
Repeat steps 12-17 for the Performance Monitor Users group.
Click OK to close all windows.
NOTE: If you are using Windows Server 2003 SP1 or later, you will have to run the following steps to access the Win32_Service class due to a known issue ( http://support.microsoft.com/kb/907460 ).
Click Start > Run... , type cmd and click OK .
Type the following command at the command prompt and then press Enter:
sc sdset SCMANAGER D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
You can now perform WMI monitoring on this Windows host with a regular user account instead of an admin account.
Alternatively, in simple words:
Administrative Tools > Component Services > Computers > My Computer > Properties > COM Security
Access Permissions > Edit Limits > add user + Local Access + Remote Access
Launch and Activation Permissions > Edit Limits > add user + Local Access + Remote Access
wmimgmt.msc
On the Security tab, highlight Root/CIMV2, click Security > add user and enable the options: Execute Methods, Enable Account and Remote Enable.
The above permissions work for Windows 2012 as well.
Verify WMI connectivity:
Once the user is able to connect using the WMI test, the DB agent can connect and monitor the data.
... View more
Labels:
08-16-2017
12:54 AM
To execute the script in Windows Environment:
1. Install CYGWIN (https://cygwin.com/install.html) 2. Run expiryfix.sh
The above will not required to modify the script if the controller installed in windows.
Regards,
Anka
... View more
08-03-2017
08:53 AM
Hi John,
Please comment and add the AGENT_OPTIONS sections like below.
# commenting below
# AGENT_OPTIONS = ""
# Adding the unique host id of the dbagent installed machine
AGENT_OPTIONS="appdynamics.agent.uniqueHostId='DBAgent-Server-Name'"
You can also add the properties as listed document based on the need.
https://docs.appdynamics.com/display/PRO43/Database+Agent+Configuration+Properties
Save and Now check the behavior.
Regards,
Anka
... View more
07-18-2017
01:48 PM
Problem:
The user is unable to view queries and query wait states information in the Controller UI, even though the information has been captured and sent to the Controller by the Database Agent.
Database logs show the following error messages:
Example 1:
[Event-Uploader-Scheduler-1] 31 May 2017 16:56:09,956 WARN DBMeasurementUploader - Fail to upload Query Stats Measurements:
com.singularity.ee.rest.ResponseReadException: Error in controller in processing binary request Write Query Stats - null at com.singularity.ee.rest.controller.request.ABinaryControllerRequest.<init>(ABinaryControllerRequest.java:65) at com.singularity.ee.rest.controller.request.dbmon.WriteQueryStatsRequest.<init (WriteQueryStatsRequest.java:30) at com.singularity.ee.agent.dbagent.task.reporter.DBMeasurementUploader.uploadrQueryStats(DBMeasurementUploader.java:119)
Example 2:
[Event-Uploader-Scheduler-2] 13 Jul 2017 15:18:09,356 WARN DBMeasurementUploader - Fail to upload Wait Time Measurements:
com.singularity.ee.rest.ResponseReadException: Error in controller in processing binary request Wait Time Measurement - null
at com.singularity.ee.rest.controller.request.ABinaryControllerRequest.<init>(ABinaryControllerRequest.java:65)
at com.singularity.ee.rest.controller.request.dbmon.WaitTimeMeasurementCollectorRequest.<init>(WaitTimeMeasurementCollectorRequest.java:34)
The corresponding Controller server.log file may show the following messages:
[#|2017-07-13T14:46:01.397+0500|WARNING|glassfish4.1|com.appdynamics.dbmon.core.writer.MeasurementWriter|_ThreadID=368;_ThreadName=http-listener-1(5);_TimeMillis=1499939161397;_LevelValue=900;|Failed to persist 'dbmon-query-stat' measurements for account'customer1_39714636-eec0-4331-932d-1394d05fabd3'. Marking account for reregistration.|#]
[#|2017-07-13T14:46:01.397+0500|SEVERE|glassfish4.1|com.singularity.ee.controller.beans.ExceptionHandlingInterceptor|_ThreadID=368;_ThreadName=http-listener-1(5);_TimeMillis=1499939161397;_LevelValue=1000;Encountered runtime exception RestException(statusCode=406, code=Expired.EventType, errorMessage=Eventtype [dbmon-query-stat] for account [customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on [2017-06-30T07:00:00.000Z], developerMessage=Event type[dbmon-query-stat] for account[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z]) at com.appdynamics.analytics.shared.rest.exceptions.RestExceptionFactory.makeException(RestExceptionFactory.java:47)
[#|2017-07-13T14:46:01.365+0500|WARNING|glassfish 4.1|com.appdynamics.dbmon.core.writer.MeasurementWriter|_ThreadID=369;_ThreadName=http-listener-1(6);_TimeMillis=1499939161365;_LevelValue=900;|Failed to persist 'dbmon-wait-time' measurements for account
'customer1_39714636-eec0-4331-932d-1394d05fabd3'. Marking account forreregistration.|#]
[#|2017-07-13T14:46:01.366+0500|SEVERE|glassfish4.1|com.singularity.ee.controller.beans.ExceptionHandlingInterceptor|_ThreadID=369;_ThreadName=http-listener-1(6);_TimeMillis=1499939161366;_LevelValue=1000;|Encountered runtime exception
RestException(statusCode=406, code=Expired.EventType, errorMessage=Eventtype [dbmon-wait-time] for account
[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z], developerMessage=Event type[dbmon-wait-time] for account[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z]) at com.appdynamics.analytics.shared.rest .exceptions.RestExceptionFactory.makeException(RestExceptionFactory.java:47)
Solution:
On-Premise Controllers:
Execute the attached file (expiryfix.sh) by providing the following details:
Controller Key: This value is located in the controller admin.jsp page under the Controller Settings tab, associated with the key: appdynamics.on.premise.event.service.key
Global Account Name: This value is located in the admin.jsp page under the Accounts tab. Search and select the account to find the Global Account Name value for that account.
Expiration Date: To find this value, execute the following SQL query on the Controller database, located under lt;controller-install-dir>/bin$ ./controller.sh login-db .
select expiration_date from account where name='<account name>';
Note: Ideally the account name is "customer1" unless using a multi-tenant Controller.
The returned value will be a timestamp in milliseconds. Convert this value to Zulu Time Format. (For example, 2017-07-15T07:00:00.000Z)
The URL http://localhost:9080 in the attached script should be replaced by the actual Events Service host name & port number.
SaaS Controllers:
Contact AppDynamics support.
... View more
Labels:
07-11-2017
03:13 PM
Problem:
Scenario 1:
The Agent stops collecting or sending metrics to the Controller intermittently, but the Agent is shown as "running." All, or nearly all collectors are temporarily disabled via the UI.
Agent logs include error messages similar to the following:
[<Athene Database - Prod>-Scheduler-1] 14 May 2017 09:08:28,910 INFO ADBCollector - DB Collector Athene Database - Prod is temporarily disabled.
[<35111_CDW_DB_PROD>-Monitor-Scheduler-3] 29 Jun 2017 00:59:27,047 ERROR ManagedMonitorDelegate - Fatal transport error while connecting to URL [/controller/instance/317/events]: java.net.SocketException: Broken pipe
Scenario 2:
The Database Agent has crashed abruptly, or has crashed with Out Of Memory
errors.
Solution:
1. First, determine if the Database Agent is running with heap settings.
Database Agent logs should contain a parameter similar to -Xmx1536m in the INFO DBAgent - JVM Args: section.
If this parameter is not listed, the user needs to add the heap settings to the startup script for the Agent.
Example:
java -Xmx1536m -Djava.library.path=E:\dbagent_Prod\auth\x64 -Ddbagent.name=FCA -Database -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=taskkill /F /PID %p -jar db-agent.jar
2. Once the heap settings are provided, then check if the settings match the Database Agent systems requirements.
Documentation: Database Visibility Requirements and Supported Environments
Recommendation: 1 GB of heap space and an additional 256 MB of heap space for each collector.
When monitoring production databases, the heap usage per collector may reach 512 MB.
3. Increase the heap value based on the number of collectors.
Example: Monitoring 5 databases instances requires ( 5 x 256 MB ) + 1024 MB = 2,304 MB
4. Database Agent restart is required for the above changes.
... View more
Labels:
Latest Activity
- Got a Kudo for Re: MongoDB monitoring shows "currentOp()" as top query, which is from AppD?. 05-05-2020 03:12 PM
- Got a Kudo for How do I instrument the Tableau Server?. 05-05-2020 02:16 AM
- Posted Re: How do I instrument the Tableau Server? on Knowledge Base. 08-08-2019 01:44 AM
- Got a Kudo for How do I instrument the Tableau Server?. 08-06-2019 11:10 PM
- Got a Kudo for How to resolve Database Collector not reporting metrics. 02-27-2019 12:47 AM
- Got a Kudo for How to resolve Database Collector not reporting metrics. 01-09-2018 03:15 PM
- Posted Re: MongoDB monitoring shows "currentOp()" as top query, which is from AppD? on Infrastructure (Server, Network, Database). 12-29-2017 03:06 AM
- Posted Is AppDynamics able to monitor MemSQL DB? on Knowledge Base. 12-13-2017 05:53 PM
- Posted How do I instrument the Tableau Server? on Knowledge Base. 12-11-2017 11:01 AM
- Kudoed How does EUM component compatibility work? for Gaurav.Soni. 09-07-2017 11:49 PM
- Posted Re: Appdynamcis DB agent issue on Controller (SaaS, On Premise). 08-18-2017 05:54 AM
- Posted Windows Hardware Monitoring - How do I configure a non-admin user account for WMI? on Knowledge Base. 08-17-2017 02:13 PM
- Posted Re: Why can't I view query information in the Controller UI? on Knowledge Base. 08-16-2017 12:54 AM
- Posted Re: Init file for Linux on Infrastructure (Server, Network, Database). 08-03-2017 08:53 AM
- Posted Why can't I view query information in the Controller UI? on Knowledge Base. 07-18-2017 01:48 PM
- Posted How to resolve Database Agent intermittently stops sending metrics to the Controller on Knowledge Base. 07-11-2017 03:13 PM
- Posted How to disable SSL certification validation in communication between Agent and Controller on Knowledge Base. 07-11-2017 02:47 PM
- Posted How to resolve Database Collector not reporting metrics on Knowledge Base. 07-06-2017 01:24 PM
- Posted How do I set up a Database agent with High Availability? on Knowledge Base. 07-06-2017 01:19 PM
- Posted How do I troubleshoot a MySQL Database Collector that will not start? on Knowledge Base. 07-05-2017 02:16 PM
Community Stats
Date Registered | 06-18-2017 10:42 PM |
Date Last Visited | 03-05-2021 06:39 AM |
Total Messages Posted | 15 |
Total Kudos Received | 5 |