Define and capture telemetry

Telemetry refers to the collection of metrics for monitoring the system to observe and understand its behavior. Telemetry is used to: 

  • Measure the performance of the system to define and compare baselines 
  • Validate that the system meets or exceeds requirements needed to support defined workflows 
  • Identify discrepancies with latency, indexes, bottlenecks, and the overall health of the system 
  • Inform the optimization of the system to enhance the end-user experience 

IT infrastructure monitoring tools can be leveraged to capture system logs and user experience to gather holistic metrics. If your ArcGIS implementation is in the public cloud, there are services for overall system monitoring, such as AWS CloudWatch or Azure Monitor. Additionally, system performance monitoring tools like Windows Performance Monitor (PerfMon) are helpful for capturing fundamental characteristics in real time such as CPU, Memory RAM, Network, Disk as well as logs to track trends and long-term issues. 

Different levels of telemetry granularity will be appropriate during different phases of testing and environment of capture. For example, while performing verbose logging in a test environment can help with troubleshooting, doing so in your production environment could negatively impact performance for end-users. 

When to capture

System telemetry is valuable for monitoring and managing the performance, health, and overall behavior of a system. Consider capturing telemetry: 

  • In real-time for ongoing system management and proactive issue detection 
  • For long-term trend analysis, collecting telemetry over extended periods can inform strategic decisions about system optimization, hardware upgrades, or software improvements. 
  • During performance and load tests to understand the performance of a system in a holistic way and to design the future architecture such that potential issues and risks are mitigated.  
  • Apache JMeter is an open-source tool that can be used to simulate a heavy load on servers, a network or an object to test its strength or to analyze overall performance under different load types. 
  • When troubleshooting or debugging, telemetry can provide indispensable information for diagnosing issues.

There are several tooling options that can be used for capturing and analyzing telemetry for different components of ArcGIS. One of these tools, ArcGIS Monitor, collects metrics on components across the system, like servers, services, portals, and geodatabases. Please note that additional examples are provided below, however it’s not intended to be a complete list of tools that can be used to capture telemetry.

Client telemetry

In the client environment, performance issues can look like slow map rendering or excessive wait times. 

  • ArcGIS Pro Performance Assessment Tool (PAT): Performs tests that assesses a computer’s ability to run key ArcGIS Pro workflows. You can use it to investigate a perceived performance issue on its own or with the help of Esri Technical Support. 
  • ArcGIS Pro Diagnostic Monitor: Can help diagnose various application problems including unresponsive conditions, resource over-consumption, function failures, and performance degradation. 
  • Fiddler Logs: Helps monitor web traffic when consuming services from client applications.  
  • Screen captures: In addition to quantitative telemetry, consider capturing qualitative metrics by observing the experience of users while they work to evaluate performance. 

Web analytics

One common practice for capturing telemetry is the use of client JavaScript libraries embedded in web pages, which are loaded in the client browser and then send telemetry information to a centralized collection or aggregation service. These approaches are usually enabled by a commercial provider or an open source framework or pattern, which include examples such as Google Analytics, Adobe Experience Cloud, or others. Most services include an analytical experience for querying and working with the collected data.

Web analytics are usually tracked through cookies and other browser components, which may have privacy constraints to consider, so be sure to understand the implications of enabling web analytics by working closely with your web hosting or IT team. Web analytics have full access to the user’s behavior on a web page, including their mouse movements, interactions, and inputs, and can be very useful to understand how users work through a process, how they move between pages, and which pages and interactions drive longer or more detailed sessions on your site. In custom applications, specific indicators can be sent to web analytics systems through JavaScript, so you could for example indicate how many times a user panned a map, the most common zoom extent, or the most commonly-queried features, for example.

Web analytics are usually implemented by adding a <script> tag to the <head> tag of an HTML document or web page. This can be easily accomplished when deploying a custom-developed web page or applications, but for working with ArcGIS off-the-shelf web applications, the implementation of web analytics can be limited as these pages do not support editing the default HTML or page index. Currently, support for inserting web analytics in ArcGIS off-the-shelf web applications is limited to:

  • ArcGIS Hub, which supports insertion of Google Analytics 4, Adobe Analytics and Siteimprove analytics, further described in the documentation.
  • ArcGIS Instant Apps, which supports insertion of Google Analytics and Adobe Analytics tracking, as described in the documentation.
  • and ArcGIS Story Maps, which supports Google Analytics and Adobe Analytics, including specific properties sent to Adobe Analytics, as described in the Story Maps documentation.

ArcGIS Enterprise

In ArcGIS Enterprise, look for severe errors in the server and portal components, such as services crashing or other events that affect performance or disrupt service.  

  • ArcGIS Server logs: Monitor and troubleshoot problems with the server site. Logs will help to identify errors and provide context on how to address problems.  

Databases

At the database level, telemetry allows you to look for issues like poorly performing SQL queries or long system wait times. RDBMS tools generally provide built-in options for identifying and troubleshooting issues. For example, SQL Server Query Store is a feature that helps database administrators monitor and manage the performance of queries conducted on a SQL Server database. Reports and alerts can be configured which can identify problematic user activity, issues with database server or instance configuration, or opportunities to optimize the performance of queries using indexes, caches, partitioning or other techniques.

Top