Migration

2.0 Migration Guide

KronoGraph 2.0 changes the way data is displayed and how users interact with it. This guide gives an overview of these changes to help you upgrade and make the most of the new features.

The key changes are:

  • KronoGraph uses a new lens to visualize and examine large datasets.
  • The concept of closed groups and any related API are removed.

Introducing lens

In earlier versions, when the timeline contained more entities than could fit on the screen, KronoGraph collapsed entities into 'runs', or, if you've defined types or groups in your data, 'closed groups'. Both were opened using the expand control.

Our users suggested that closed groups could sometimes open and close unpredictably when navigating the timeline, and that the design of narrow bands of data with lots of white space above and below could be improved.

KronoGraph 2.0 draws all entities and their events, even if there isn't enough space to display each entity label. This results in an immediate visual impact from a dataset, with heatmaps that convey all your data from the first glance.

If there are too many rows to label, instead of groups users can now open and close the lens. The lens enlarges a small set of entities in the timeline center and lets you scroll up and down through the whole dataset.

Migration tips

For any help implementing the changes, please contact support.

Below is a list of suggestions to help you migrate:

If you don't have types or groups defined in your data, consider adding them to visually split up large datasets and to label the split data when there isn't enough space to label individual entities.

New lens event returns the id of the entity at the center of the lens. Use the event to track the data that is currently in view.

New lens property returned with the onTimelineChange object provides the id of the entity at the center of the lens. Use the property to track the data that is currently in view.

New 'lensScrollbar' and 'lensControl' targetType values are returned from pointer events when the user interacts with the lens scroll bar or the lens control. Check your event handler code to ensure the behavior is as you expect during the user interaction.

New 'lensScrollBar' dragType is returned from pointer events when the user interacts with the lens scroll bar. Check your event handler code to ensure the behavior is as you expect during the user interaction.

A new label property is added to the object passed to pointer event handlers which helps you determine if an entity is drawn large enough for labels and interactions, or if it's too small to be shown fully. For example, if you're adding tooltips or annotations, you may want to only display them against entities that have a label.

Although we strongly recommend using the new lens feature, you can still recreate 'closed groups' of entities by manipulating your data.

To force a group of entities into a single row, you can replace their ids in the entityIds property of events with a new entity id representing a summary row and add this new entity to your entity list.

Removed APIs

All APIs referencing open and closed groups have been removed. If you have any code which references them, you'll need to remove or modify it:

  • expand event

  • expandedRowId

  • expand option of controls

  • targetType values: 'collapse', 'expand', 'entityGroupMore', 'entityGroupRun'

In addition, the priority option of entityType remains in the API for file format compatibility but it doesn't have any effect.

Other API changes

We've removed support for the focus action on groups, based on feedback that users were unsure what focusing a group meant or how to undo it. We recommend using filtering instead - if you want the user to see only the events associated with a certain group, filter other events out of your data. You can also programmatically focus all the entities in a group using the focus API. You can also programmatically focus all the entities in a group using the focus API.

The pointer-move event now fires when the timeline moves beneath the pointer, as well as when the pointer moves over the timeline. This synchronizes your tooltips and annotations with moving timeline. No migration is required, but you can check that your tooltips and annotations behave as expected.

The onTimeLinePointerMove event is now invoked when the timeline moves beneath the pointer, as well as when the pointer moves over the timeline. This synchronizes your tooltips and annotations with moving timeline. No migration is required, but you can check that your tooltips and annotations behave as expected.

We've changed some default settings to reduce visual clutter and make our event folds feature for simultaneous events more discoverable:

APIDefault before 2.0KronoGraph 2.0 default
color'inverse''entity'
heatmapPaddingfalsetrue
heatmapThreshold250100
showCirclestruefalse
showEventFoldsfalsetrue
showLines'always''individualEvents'
standardRowHeight1824

Terms of use

These terms do not alter or supersede any existing agreements between you (or your employer) and us.

By accessing or using any Content you agree to be bound by these Terms of Use. Please review these terms carefully before using the website.

The contents of this website, including but not limited to any text, code samples, API references, schemas, interactive tools, and other materials (collectively, the 'Content'), are made available for informational and internal evaluation purposes only. All intellectual property rights in the Content are reserved. No licence is granted to use the Content for any commercial purpose, or to copy, distribute, modify, reverse-engineer, or incorporate any part of the Content into any product or service, without our prior written consent.

This Content is provided “as is” and “as available,” without any representations, warranties, or guarantees of any kind, whether express or implied, including but not limited to implied warranties of merchantability, fitness for a particular purpose, non-infringement, or accuracy. To the fullest extent permitted by applicable law, we expressly exclude and disclaim all implied warranties, conditions, and other terms that might otherwise be implied.

We disclaim all liability for any loss or damage, whether direct, indirect, incidental, consequential, or otherwise, arising from any reliance placed on the Content or from your use of it, to the fullest extent permitted by applicable law. By continuing to access or use the Content, you acknowledge and agree to these terms.