AppMetrics Resource Center - FAQ's
Background - Commonly asked questions about AppMetrics
Installation - Commonly asked installation questions
Product Comparisons - Some comparisons between AppMetrics and other monitoring tools
I am using Windows Server 2003, and my disk is filling up with complustrace.log files in the \Windows\System32\Com folder. Why is it happening, and what can I do to clean up those files from the disk?
Xtremesoft AppMetrics is a product designed to monitor and analyze COM+ application performance. Depending on the stage of an application's lifecycle, AppMetrics will deliver statistical information (metrics) that provide an early warning system, production reports, diagnostics and capacity trends for COM+-built applications.
AppMetrics monitors applications that are running as COM+ server or library applications.
These applications can be packaged applications written in-house or by third parties.
The applications must be registered with COM+, but need not be marked as "Transactional". To track aborted transactions, one must mark the component as "Transactional" however.
Which platforms are supported by AppMetrics?
AppMetrics currently supports the following operating systems (listed by AppMetrics component);
AppMetrics Manager, Console, and Reports:
Please refer to Chapter 2: System Requirements of the AppMetrics Install Guide for further information.
AppMetrics focuses on the logic tiers of multi-tier applications. Typically, a three-tier application has a web browser in the first tier, business logic in a middle tier, and a database or legacy system as the third tier. Unlike system monitoring products, AppMetrics examines what's happening with the application. Instead of obtaining metrics on system data such as network traffic, AppMetrics helps you assess how successfully your business is being transacted by monitoring the activities of components running within COM+ applicatons.
No modifications to the application are required for COM+ applications.
For .Net Serviced Components however, some attributes may need to be set and the interface needs to be made public in order for those components to be monitored. These are relatively minor changes. Please refer to the .Net Serviced Component guidelines in the AppMetrics Installation Guide (Appendix A) for more information.
AppMetrics provides a Microsoft Management Console (MMC) user interface, making it accessible remotely on your network. System management information is easy to access, easy to understand, and most importantly, easy to act upon.
AppMetrics can be used as an integral part of your enterprise management architecture and strategy. The product integrates seamlessly with most commercially available enterprise application frameworks.
For those using Microsoft Systems Center Operations Manager 2007 for system management, AppMetrics offers out-of-box integration allowing them to use the AppManager Console to alert, report, and store data for important mission critical metrics.
Users developing in-house management solutions can integrate with AppMetrics by querying against a fully documented database schema.
Xtremesoft AppMetrics utilizes an Agent/Manager architecture that is designed to minimize impact on system resources.Xtremesoft AppMetrics utilizes an Agent/Manager architecture that is designed to minimize impact on system resources.
The AppMetrics Agent resides on the COM+ server, where it collects data and routes it to the AppMetrics Manager. We have surveyed customers, and they report little impact from the AppMetrics Agent on their production applications.
The AppMetrics Manager resides on a separate machine, away from production servers. The AppMetrics Manager undertakes the data analysis, alerting, reporting and interpretation functions on its own, non-production machine.
When diagnostic detail is required, an authorized user can increase the amount of data the AppMetrics Agent collects in a controlled manner, one component at a time. The impact on the system during problem resolution can vary significantly, depending on the number of users, the number of components, and the relative length of each method call to the mix of calls. However, by ensuring precise control, problems are resolved efficiently while the impact to the system is low.
Yes. This is the process used to detect component memory leaks:
--> Charts for Applications that are leaking should display a linear rise.
AppMetrics may be used to either recycle or shutdown hung COM+ applications. Please refer to the following link for more information.
AppMetrics uses the DCOM (Distributed COM) protocol to communicate. It is necessary to open up the DCOM Service Control Manager port 135, along with a specified range of dynamic ports in order for AppMetrics to communicate between the AppMetrics Manager and Agents properly.
The dynamic range depends on how many monitors you wish to use, and whether or not you intend to use another application which makes use of DCOM. You should always ensure that there are a sufficient number of ports available for your existing needs, then add the number of ports needed for AppMetrics to that value.
Here are some guidelines on what you need to do in order to ensure proper connectivity between the AppMetrics Manager and Agent computers, along with the number of dynamic ports you'll need to open in relation to the number of monitors you wish to run:
The port range will then need to be configured in the firewall settings to allow TCP/IP connections within that range.
Note 1: It is recommended that port numbers in the range 49152–65535 be used for DCOM port allocation.
Note 2: A minimum of 100 ports should be assigned to DCOM, unless there are security concerns which require a smaller range. Some applications may fail if the number of available ports is too low, so if you notice errors after making this change, you can increase the value until the errors cease to occur.
Additional information can be found in the AppMetrics Installation Guide, Chapter 3: Security Requirements, Distributed COM (DCOM) Security
This error indicated that your MMC is a newer version than that in which AppMetrics created its MMC files. These MMC files were created in an older version to meet ‘lowest common denominator’. Click the OK button to this message, because there is no reason not to upgrade.
AppMetrics will average the CPU utilization across all processors in the server. For example, if AppMetrics determines that package/application Foo is using 60% of one processor in a two-processor server configuration, it will average this utilization across all processors (i.e. divide by two) to yield a CPU percentage value of 30%.
What happens is the agent collects the data and sends it over to the manager, which keeps the collected data in log files. The default to upload this data into SQL Server is every fifteen minutes. If you would like to see this data sooner you can go to the "Logging Options" in the user interface of the monitor in question. There is a button called "Upload the AppMetrics Log files to the Database Now". If you click this button then all the data collected up to that point would then be uploaded into the SQL Server database.
One thing to look at is whether the components of your application supports events and statistics. In order to do this you have to go into component services on the agent machine and open up the application that you are monitoring.
Open up the components in that application, and right click a component and go into the properties. There is an "activation" tab. click on that and then check to make sure the "components supports events and statistics" is checked. If it is not check it and click "apply". This change will not take effect until your application is shutdown and restarted.
There is no easy answer to this question.
The size of your database depends on what is being monitored, for how long, how many applications, how many components per application and the detail requested. The eventing system generates a massive number of events per physical transaction, sometimes of the order of ten to one, so the only answer is to focus the requests as tightly as possible. Our field techs are experts in helping you in this area.
In general the lower detail results in smaller volumes of data. So that:
The Diagnostic monitor collects all it can for everything it is monitoring and cannot be changed. In general time control is the major control.
Each one of these is a contributor to the size of your database
In the configuration of the monitors (Production and Diagnostic) you can configure the database for how many days of data to keep in the database. Once the data has reached that limit then the oldest days data will be purged from the database before the new days data is uploaded. At that time the database should not change in size and should be consistent.
Xtremesoft suggests collecting data for a specified amount of time to get an idea of how YOUR monitoring will affect the size of your database and then plan accordingly
AppMetrics utilizes Windows Authentication for SQL Server db operations, so the AppMetrics service account will need to be given SQL Server access. This is done automatically at install time in most situations..
The AppMetrics service account does not need to be a domain account, but it is much easier to configure AppMetrics if it is. It may also run under the local system account with some additional configuration steps.
The service account needs to be placed into the Windows Administrators Group and the AppMetrics Administrators Group on the AppMetrics Manager and the AppMetrics Agent machines. This is done automatically at install time.
Further info is provided in the AppMetrics Installation Guide, Chapter 3: Security Requirements.
We use ADO to access the report data from SQL Server. As such, the following MSDN article may help you configure your firewall in order to allow you to connect to your AppMetrics manager database from outside the firewall.
There are ways to embed Excel objects into a web client. Microsoft’s FMStocks example code shows how to go about embedding Excel objects into ASP pages.
As far as AppMetrics reports, you can easily bring up the AppMetrics.xls report file by opening the file in Internet Explorer. A URL to the file can be hyperlinked from a webpage and opened as long as the client has MS Excel installed, and there is connectivity to an AppMetrics database.
Additionally, report data can be stored in the AppMetrics Excel report file, and viewed by dismissing the report dialog and navigating the report tabs.
In certain situations it may be necessary to install AppMetrics
in environments where there is no trusted domain available. This can
be accomplished as follows:
AppMetrics comes with a sample component script already configured to respond to alerts. This feature is described in the AppMetrics documentation in Chapter 3, Page 37. The sample component script is called XSNotification.wsc, and is located in the AppMetrics program folder, which is \Program Files\Xtremesoft\AppMetrics for Transactions by default.
The work done by the sample component script is purely for illustration purposes – it writes out the parameters that have been passed to it into a log file (C:\XSNotificationLogFile.log). The work that you want the component to do is customizable by you.
You may also use the following provided scripts to either recycle or to shutdown hung COM+ applications;
You can find an Overview of Sample Reports here.
Check the name of the monitor you are trying to create. It is possible that the name is reserved in SQL such as "asc" and "desc". Beginning the monitor name with a number may also cause issues.
Try a different name for the monitor.
Yes. Using Excel 2007 or higher, you can save a report page using the Save As function, selecting PDF as the file format.
This will generate a PDF file which you can then send to other people.
SQL Server | SCOM | W2K8 | .NET | VMWARE
Yes, both the 32-bit and 64-bit versions of SQL Server 2008 are supported. SQL Express and Workgroup editions are not supported however due to their lack of SQL Server Integration Services.
In order for AppMetrics to function correctly with SQL Server 2008 64-bit editions, the Management Tools - Complete feature needs to be selected at install time or added by running SQL Server setup in maintenance mode. This installs the 32-bit version of SQL Server Integration Services, which AppMetrics requires.
The Microsoft SQL Server 2005 Backward Compatibility Components package will need to be downloaded and run in order to install SQL Distributed Management Objects (SQL-DMO) and is necessary for the proper operation of AppMetrics.
The package is available on the SQL Server 2008 installation DVD, as well as from the Microsoft SQL Server 2008 Feature Pack webpage, located at the following link:
Scroll down to the section entitled "Microsoft SQL Server 2005 Backward Compatibility Components". Select the appropriate link, depending on whether you are using 32-bit or 64-bit SQL Server 2008, and run the install file, SQLServer2005_BC.msi.
After accepting the license, the install program will display a selection screen. Ensure that the SQL Distributed Management Objects (SQL-DMO) item is selected. The other components are optional, and may be deselected if so desired.
Continue the install by clicking the Next button and following the remaining instructions given in the setup program.
Once finished, AppMetrics can then be installed. Please refer to the SQL Server section under the AppMetrics Manager Requirements in Chapter 2 of the AppMetrics Install Guide for additional details on requirements specific to your version of SQL Server.
Please refer to the SQL Server Security section in Chapter 3 of the AppMetrics Install Guide for information on SQL Server roles.
The AppMetrics Manager needs to have a SQL Server database instance present locally or remotely when it is installed. It is an integral part of the AppMetrics Application and is used for a variety of purposes.
If not already installed, install SQL Server onto a dedicated AppMetrics manager workstation or onto a separate computer reserved for use as an AppMetrics database server. The remote option may be desirable if large volumes of AppMetrics data are required to be stored for extended periods of time for analysis by multiple users.
Locating the AppMetrics database instance onto a different machine than production database servers is the optimum configuration, since there is no impact on production data integrity or performance. You can then set up security as desired without impacting the production environement.
AppMetrics data is derived from collected COM+ events and
process performance information from monitored applications. There is no customer or important internal data collected as such.
Additional AppMetrics SQL Server Security requirements are listed in the AppMetrics InstallGuide, Chapter 3.
Effective April 1, 2007, Microsoft is implementing changes to the definition of "manage" that will broaden the requirements for Management Licenses and ensure consistency across products that work with System Center products. Purchases of any System Center products after this date will be subject to this new definition of manage, which is as follows:
For purposes of this paragraph, to “manage” a device means to
You do not need a management license for any of your devices
This effectively means that no matter how information about any device on a network gets into a System Center product’s management data repository, that device will require a Management License, except for servers licensed to run the System Center product’s management server software, or devices functioning only as network infrastructure devices (OSI layer 3 or below).
Yes. Xtremesoft will continue to support new Microsoft OS's and architectures as they are deployed by our customers. We expect Windows Server 2008 to advance Microsoft’s success in the enterprise, support of it is therefore a priority for Xtremesoft.
The implementation of ASP.NET is quite different from the implementation of ASP. There is more integration between ASP and COM+ than there is between ASP.NET and COM+. As a result, there are no COM+ Identity Events fired when ASP.NET is calling COM+ applications. AppMetrics depends on these COM+ events in order to report the Client IP and ASP URL.
For Server Applications:
For .NET Serviced Components, some attributes may need to be set to public in order for those components to be monitored. These are minor changes. Please refer to the .NET Serviced Component guidelines in the AppMetrics Installation Guide, Appendix A: Monitoring .Net Serviced Components with AppMetrics for more information.
For Library Applications:
Microsoft has confirmed that there is an issue with Library Applications implemented with .NET Serviced Components when more than one such Library Application is executed under the same process. The responsible Microsoft team has filed a design change request for Vista to address this issue. Note: This issue does not arise with .NET Serviced Components deployed as COM+ Server Applications.
So that your application can be managed, we recommend that you either use Server Applications instead of Library Applications for your .NET Serviced Components or use unmanaged code for your Library Application.
If you have only one Library Application being executed, then follow the process for Server Applications.
Click here to find out.
All reporting functions appear to be correct, though we do not warranty on this platform as we are not be in control of the internals of a third party product.
AppMetrics is an ideal way to measure the applications "before" and "after" performance after an implementation of VMWare.
The following may be of interest in this process:
Assuming the server (Before and after) are running the same application, with a similar load then the only performance difference is that the server is now running one to six VMWare virtual machines.
As a reference, this blog points to how processing is degraded over multiple VMWare machines.
We believe that the AppMetrics timings are accurate and that you are simply observing what would be expected from an application running on a six-way virtual machine.
A virtual machine shares actual hardware resources on the physical machine with not only the physical machine itself, but with the other virtual machines running on that system. It is normal for processing times to increase since there is less actual CPU time available than when running by itself directly on the physical machine. The processing time would be directly proportional to the number of virtual machines running on any one physical machine.
AppMetrics is simply showing the real degradation of your application caused by utilizing one to six virtual machines. Remember one physical and six virtual machines result in a total of 7 slices of the CPU and associated overhead.
Showing you how an application, at its core, is impacted by server/OS/code changes is one of the major values of AppMetrics.
The document above shows how performance is adversely affected with each additional VM instance and we believe that AppMetrics is simply showing you what you would expect.
AppMetrics is performing its role in identifying the degradation in performance.
Sometimes AppSight is mistakenly believed to provide the same capabilities as Xtremesoft’s AppMetrics, when in fact, the two products solve very different and separate problems.
AppMetrics focuses on the quantity, quality and performance of the Business Transactions that are taking place within a production application, with the goal of keeping that application running longer than it would without the software being present. (Incidentally, it does this job very well!) It alerts you when transactions are either failing, slowing down, or when there are too many transactions occurring at one time for the system to handle. AppMetrics does this by monitoring your COM+ components and then producing metrics representing these business transactions.
Identity Software's product is targeted at tracing application crashes. AppSight collects an application's system level interactions and creates a recording of all these low level operations. It enables a programmer to analyze what was going on when the crash occurred. Additional software also allows you to ‘playback’ what has happened. AppSight is development focused - it helps you trace the execution of the application through its interaction with system level operations.
In a production environment transactions can utterly fail without anything resembling an application crash even occurring. If, for instance, your credit card processing vendor’s system is running very slowly, or is not responding, this could cause a business transaction to fail. However, this is clearly a very serious and business critical application issue and the administrator needs to know of the problem, before they get a call from the business unit. AppMetrics is predominantly production focused - it keeps your application running better and longer. See our Customer story about a failed dot.com
Maintaining a healthy application using a product like AppMetrics improves the production uptime of your application. If crashes do appear in your production applications, then application development tools like AppSite or those from Numega can be employed to debug the crash.
The main purpose of Application Center Server is for the deployment and maintenance of applications built on IIS and COM+. This includes setting up clusters of machines onto which Application Center Server can deploy content and configure load balancing for such applications.
Application Center Server has a module in it called "Health Monitor" which was developed by Xtremesoft under contract for Microsoft. Health Monitor collects performance information from a variety of sources, one of which is COM+. Health Monitor collects data on an COM+ Application-wide basis (e.g. total aborted transactions, total committed, etc.).
AppMetrics, on the other hand, lets you monitor on an individual-transaction basis (i.e. by each component within the COM+ Application, and in some cases provides detail down to a method-invoked level).
I am using Windows Server 2003, and my disk is filling up with complustrace.log files in the \Windows\System32\Com folder. Why is it happening, and what can I do to clean up those files from the disk?
The complustrace.log files are created when an application subscribes to COM+ instrumentation events. AppMetrics subscribes to those events in order to collect instrumentation data from monitored applications.
There is always at least one current log file plus any number of archived log files on the system, with a minimum of one, where ten is the default value.
The number of archived log files can be adjusted by editing the following registry key;
This is mentioned on the following Microsoft support page;
The manner in which these files are created is that whenever a COM+ subscription is made, such as starting an AppMetrics agent on an application server, the current log file is archived by appending a time stamp to the file name, the number of archived files are trimmed to the value set in the registry, and a new complustrace.log file is created.
When the subscription terminates, such as when an active AppMetrics agent is stopped, the current log file is closed. No further action takes place until a new subscription is made, where the above process repeats itself.
This is assuming that you are running Windows 2003 Service Pack 2, which resolves an earlier Microsoft issue with COM+ trace log files not being deleted. If you aren't running Service Pack 2, you'll either need to upgrade to that service pack, or install the following hotfix;
No. AppMetrics does not invoke or contribute toward the vulnerabilities documented in CERT Advisory CA-2002-03.
This advisory documents decoding and processing vulnerabilities in SNMP Service handling of SNMP request messages (SNMP managers to SNMP agents), and SNMP trap messages (SNMP agents to SNMP managers).
AppMetrics does not decode SNMP request messages, and the processing vulnerabilities documented by CERT occur outside of the extension agent in the SNMP service (which processes request messages related to AppMetrics objects). AppMetrics does not decode or process SNMP traps.
Xtremesoft recommends the application of any appropriate patches from Microsoft and any other vendor's SNMP service they currently have implemented.
AppMetrics will work with workgroups. You need to create the same userid with the same password on each of the machines you are using. (Manager, Agent) Then during install you will use that userid for the "Run As" account and the local machine name for the domain name.
There are a few things to check in regards to security.