On this page

Monitor your data with observe

A common challenge for data, product, and growth teams is a lack of visibility into the state of their data collection. Teams often rely on manual testing, broken charts, and personal instincts to validate their product analytics.

Without a way to enforce or verify event tracking, downstream systems collect missing properties, wrong data types, incorrect naming conventions, and more, resulting in poor data quality. This often results in a lack of confidence in analytics, accumulated technical debt, and hours spent cleaning and preparing data for analysis.

Amplitude Data's Observe feature lets you inspect, analyze, and monitor your event tracking continuously. There are no code changes to make. You don't even have to switch anything on. Observe runs automatically in the background, surfacing data issues as they occur and keeping your code in sync with your tracking plan.

Observe listens to your existing event stream and turns your tracking code into a living document, so you get a holistic view of your data collection across platforms.

You and your teams get immediate insight into anything broken or that needs attention. With an intuitive, collaborative workflow, your teams can work together to instrument fixes and keep your tracking plan in shape.

View and update your event statuses

To access your event stream, go to Data > Events. This displays all your events.

The first time you view your tracking plan, Amplitude displays all events and properties received and processed. By default, Amplitude categorizes all events and properties as Unexpected. To add them to your tracking plan, check the box next to the event name and click Add to plan.

Do this anytime you want to add an unexpected event to your tracking plan. Click Publish to complete the process. From this point on, Observe alerts you about any changes to this event or any properties associated with it.

Your events always have one of four statuses:

  • Unexpected: Any event or property not yet added to your tracking plan.
  • Valid (and Current): Any event or property that matches (in name and schema) the latest version of an existing event. If Observe doesn't know the version of the event, it only ensures that the event shape matches your current tracking plan.
  • Invalid: Any event or property that doesn't match your current tracking plan.
  • Out of Date: Any event or property that matches a previous version of an existing event or property (only applicable when using Amplitude SDKs).

Observe only surfaces data as it occurs. If you have legacy tracking or events that fire infrequently, they may not appear in your tracking plan. If you know of events that aren't surfaced by Observe, you can add them manually to your plan, or trigger the events yourself.

If you're blocking, filtering, or transforming your data upstream of Amplitude, Observe can't access this data. For this reason, ensure that you send all your data to Amplitude.

Observe and the Ampli CLI

If you've instrumented all your event tracking using Amplitude's SDKs, you already benefit from type-safe analytics libraries, client-side validation, and continuous integration (CI) for clean, accurate data you can trust.

Observe still adds value by surfacing and alerting you to runtime validation errors in the web app. This is specifically relevant for JavaScript, because it isn't a type-safe language, and checks only happen at runtime. Refer to the Amplitude Data developer documentation for more details.

Overlay your tracking plan with observed events and issues

You can overlay your tracking plan with your event stream.

If you're using the Amplitude SDK, you also have the option to overlay your tracking plan with your event stream from an environment, but only data sent to the specific branch you're on. This is useful for debugging when multiple teams send data to the environment.

You can also set a specific time range to use for overlaying your event stream with your tracking plan. You can choose from:

  • Five minutes.
  • One hour.
  • 12 hours.
  • Seven days.
  • 14 days.

Note that changing this range can determine whether Observe considers an event valid or invalid. For example, if you had a bug seven days ago, choosing Last 7 days causes the event to show up as invalid. If you fixed it at any point between seven days ago and 12 hours ago, and then choose Last 12 hours, Observe considers it valid.

Act on your Observe insights

Observe surfaces missing and invalid properties on an event. The property rows show this information in a few ways:

  • Status tooltip: Indicates if an event was invalid at the point Amplitude received it (if Observe receives the version, it compares the event to the version; otherwise, it compares the event to your current tracking plan).
  • % Seen indicator: Red if the property is required (published or unpublished) and Amplitude received the event without the property within the selected timeframe. The indicator can be red while the status is green if you have unpublished changes, or if the event was recently modified.
  • Type indicator: Red if Amplitude received the property with a type other than what's currently selected (published or unpublished) within the selected timeframe. The indicator can be red while the status is green if you have unpublished changes, or if the event was recently modified.

Observe automatically detects the source of each event (based on the library) and displays those sources in the event detail pane. This is especially helpful when you have multiple sources managed by different teams, because you can identify which source is sending invalid data.

The sparkline to the right of the source name shows both total and invalid event volume to quantify the amount of data with errors.

You can also create and assign multiple SDK sources with the same library. For example, if you have a marketing site and a web app that use the Browser SDK, you can create two different sources and assign the correct source to each event. Using Ampli also lets you see each source's volume and validation data separately. If you're not using Ampli, you see the volume for both sources rolled up into a single row with the library name (in this case, "Browser SDK".)

Scope and limitations

Observe works by default if you're sending data to Amplitude. Observe is limited by how you're sending data to Amplitude. If you're using Amplitude's SDKs (current source support: JavaScript, Node.js, Android, and iOS), Observe can attribute your event stream to its respective source (web, iOS, backend, and so on).

If Observe can determine the version of your event, it validates against that version's schema. When Observe doesn't know the version, it validates against the schema of the latest version in your tracking plan.

Was this helpful?