Skip to content

Telemetry Collection Recommendation

Authors: Paul Walton

Reviewers:

Last Reviewed: December 2024

What Is Telemetry?

Generally, Telemetry automatically collects, transmits and measures data from various sources, using sensors and other devices to collect data. It uses communication systems to transmit the data back to a central location. Subsequently, the data is analyzed to monitor and control the remote system.

Specifically in software, telemetry is the automatic collection, measurement, and transmission of software usage and data from applications to a central location for processing. Thus it helps to enhance application management since collected data can be summarized and analyzed in a consistent fashion.

Software Telemetry vs Monitoring

While software monitoring is focused on SLA performance and failures, telemetry is focussed on observability, the ability to understand the internal state of a system by examining its telemetry data in the form of traces, metrics, and logs.

With the rise of cloud computing, microservices architectures, and increasingly complex business requirements, the need for software and infrastructure observability is greater than ever.

Enabling Observability

To make a system observable, it must be instrumented. That is, the code must emit traces, metrics, and logs. The instrumented data must then be sent to an observability backend.

It is also beneficial to design systems with observability in mind. Adding observability after the fact can be challenging.

Why Standardize?

We have a wide range of different vendors, tools, and processes to manage telemetry. Having a standard across Trimble for how we communicate this observability data allows us to connect and scale more effectively by allowing us to share tools, knowledge, and interoperate across systems. The ability to perform distributed tracing will help troubleshoot problems with integrations as the data manipulation can be observed. Without a standard like this, it becomes exponentially more difficult to trace across systems distributed across multiple business divisions. It also allows us to act more efficiently because we can more easily migrate our data between vendors with less lock-in.

OpenTelemetry

OpenTelemetry is an Observability framework and toolkit designed to create and manage telemetry data such as traces, metrics, and logs. It is not an observability backend, it is focused on the generation, collection, management, and export of telemetry.

A major goal of OpenTelemetry is that you can easily instrument your applications or systems, no matter their language, infrastructure, or runtime environment. Crucially, the storage and visualization of telemetry is intentionally left to other tools.

Benefits of OpenTelemetry

OpenTelemetry satisfies the need for observability while following two key principles:

  1. You own the data that you generate. There’s no vendor lock-in, it’s managed by the Cloud Native Computing Foundation (CNCF).
  2. You only have to learn a single set of APIs and conventions.

These principles mean OpenTelemetry is:

  • Easy to use, set reasonable defaults yet allow for customization, with excellent documentation and a top-tier overall developer experience.
  • Universal, protocols and conventions unified across languages and signal types (tracing, metrics, logging)
  • Vendor-neutral, avoid lock-in to any vendor, and interoperate with other OSS projects in the telemetry and observability ecosystem.
  • Loosely Coupled, pick and choose from the pieces users want without bringing in the rest of the project.
  • Easily Integrated, high-quality telemetry can be built into the entire software stack.
  • Extensible, designed to be extensible at nearly every level.

Trimble Adoption

The recommendation is for groups at Trimble to include observability with the addition of OpenTelemetry in their applications.

As of November 2024, the following Trimble groups have or are in the midst of OpenTelemetry adoption:

  • CMS: MEP Content, Estimation MEP, Viewpoint Prism, B2W, ProjectSight
  • xOps
  • Cloud Core

Trimble Tracing Standards

Recognition of the need for a standardized observability framework at Trimble is a first step. Our next motion must be to provide more prescriptive guidance on the “hows” and “whats” of OpenTelemetry implementation. This will be done as a follow-on exercise in a similar spirit to the Trimble API Standard.

Further References