Telemetry refers to the collection of metrics for monitoring the system to observe and understand its behavior. Telemetry is used to:
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.
System telemetry is valuable for monitoring and managing the performance, health, and overall behavior of a system. Consider capturing telemetry:
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.
In the client environment, performance issues can look like slow map rendering or excessive wait times.
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:
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.
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.