Skip to main content

Top Call Stats

How to use with FMPerception

If you place a TopCallStats.log file in the same folder as the DDR, FMPerception will parse it during the DDR open/refresh process. Then, you will gain access to a new query at the bottom of the top-level query list (just above the Report Card) called "Top Call Stats Log (Slow)".


There are a series of sub-queries which slice and dice the data in different ways, but as FileMaker developers it can be easiest to think of these as different sub-summaries:

  • TopCallStats.log Remapped - This is the flat TopCallStats data, except the Target column has been remapped to display the name of all referenced elements (plus a couple other small tweaks). This is what you'll want to export if you want to use your own tools for analysis, but still have easy access to remapped IDs. In 'Summary' terms, this is the sorted data without sub-summary sections.
  • By Sample Period - Useful if you want to target a specific time period. When looking at a log file there can be between and 1 and 25 lines per sample period. The precision on the timestamp can make it difficult to isolate a single sample period.
  • By Operation - What is the Server doing (in general) that's eating up all that time?
  • By User Name - If users move around a lot, it can be helpful to isolate a single user's activities, regardless of where they are (or what device they're using).
  • By IP Address - Is one particular subnet demonstrating particularly slow performance?
  • By Machine Name - If users move between machines (or the machines move around the network), it can be helpful to isolate a single machine, regardless of where it is on the network, and to compare machines, regardless of who's using them at the time.
  • By Client Name - The provided Client Name in the log combines User Name, IP Address, and Account Name into a single column. Helpful if users move between machines or subnets (i.e. Karl only has problems when he's in XYZ facility).
  • By Target - This is the remapped Target, so it's displaying the FileMaker items by name rather than by ID. An event that targets a table, and another event that targets a field in that table, are kept isolated from each other (in contrast with the "FileMaker Pro Element" query described below).
  • By FileMaker Pro Element - This resolves the Target chain to an actual FileMaker database object. It also respects the hierarchy, so that any Top Call Stats lines that reference a field in a table will also be included in the collection for the table itself. Useful if, for example, you get a bunch of hits against different fields in a single table, this will report them each separately, and roll them up as part of the reported usage for the table itself.

If the icon is grayed out, it means that a TopCallStats.log file was not found in the proper location / with the proper name. It needs to be called "TopCallStats.log", and it needs to be in the same folder as the Summary.xml file (regardless of what you may have named it.) Please let us know if you have any problems.

And as you dig into this further, please let us know what else you would like to be able to discern from looking at the Top Call Stats.

Advice for doing Top Call analysis:

  • Use small log files. The Top Call Stats logging process captures a lot of data per sample. The max log size is 100 MB, but working with a 100MB file is arduous, and the more data you capture, the more 'noise' will surround the info you're really interested in. If your users are having performance issues when connecting first thing in the morning, turn on logging for 2 hours in the morning, rather than all day for a week. It will be easier to find what you're looking for. NOTE: A 100 MB TopCallStats.log file is about 650,000 lines of data. Often in our FileMaker work, more data makes it easier to find the aberration. I would suggest the inverse is true when looking at Top Call Stats.
  • Use longer sample times. If you're trying to find out what's happening with a layout that takes 30 seconds to refresh, don't set your sample duration to 1 second. That will record lots and lots of smaller events that you don't care about. A sample duration of 20 seconds will generate 1/20th the noise, and still capture the information you need about the 25 most time consuming server events during that time. Only decrease the sample time if the longer duration isn't capturing enough detail.

Super-special thanks to Radu-Dan Sabau and Lisette Wilson, without whose invaluable assistance this feature would have taken forever.

Language Support

The TopCallStats.log files generated by FileMaker Server are localized to the language of the server. This caused some difficulties in turning the FileMaker-internal IDs in the Target column into understandable element names.

  • FMPerception's TopCallStats.log analysis currently supports English and Italian.
  • If your language is not supported, everything still works except for:
    • The 'Target Mapped' column. It will display the same data as is in the Target column (i.e. the Target will not get remapped).
    • The 'FileMaker Pro Element' sub-query. Without language support, FMPerception can not (for example) tell when an ID is for a table or a field.
  • If you would like to have your language supported, I need a sample TopCallStats.log and the matching DDR for testing purposes. Once I've done my initial analysis, we'll have a short email conversation about confirming that I'm mapping everything properly. For a number of reasons, this is an extremely complicated process without the assistance of a multi-lingual FileMaker developer. With a little bit of help, this becomes trivial (for everyone involved).