Overview
TelemetryDataSet is the core concept in UModel for defining and managing observable data. It provides a unified data modeling framework that supports multiple types of observable data, such as logs, metrics, traces, events, and profiles.
TelemetryDataSet inherits the basic attributes of a node from graph theory. It also adds a time dimension and observation attributes for observable data. All specific dataset types, such as LogSet, TraceSet, EventSet, ProfileSet, and MetricSet, are extended from TelemetryDataSet.
Core features
Time dimension support: All observable data includes a time field to support time series analysis.
Field classification management: Supports the classification of fields as displayed fields, hidden fields, and tag fields.
Flexible sorting mechanism: Allows you to define default sort fields and sort orders.
Unified data structure: Provides consistent data modeling syntax and standards.
Extensible design: Supports extending the capabilities of specific data types through an inheritance mechanism.
General configuration structure
All TelemetryDataSet types include the following basic configurations:
Field | Type | Required | Description |
| Array | Yes | A list of field definitions. Defines all fields for the dataset. |
| String | No | The name of the time field. Used for time series analysis and sorting. |
| Array | No | The display name fields, sorted by importance. |
| Array | No | The tag fields. Used for aggregated display and analysis. |
| Array | No | The hidden fields. Not displayed in the interface. |
| Array | No | A list of sort fields. |
| Enum | No | The default sort order (asc/desc). |
LogSet modeling
LogSet defines the structure and attributes of log data and is one of the most flexible dataset types. It inherits all the basic capabilities of TelemetryDataSet and is suitable for modeling various types of log data.
Note: LogSet does not add extra fields compared to TelemetryDataSet. This makes it highly flexible and general-purpose. However, it does not provide advanced features for specific structured data, such as time series forecasting or trace summaries.
TraceSet modeling
TraceSet is specifically for defining distributed tracing data. It includes fields and protocol support unique to tracing. It is the abstract representation of tracing standards, such as OpenTelemetry, in UModel.
Protocol support
TraceSet supports configurations for multiple tracing protocols:
Protocol | Description | Field requirements |
opentelemetry | OpenTelemetry standard (default, recommended) | traceId, spanId, parentSpanId |
jaeger | Jaeger tracing format | traceID, spanID, parentSpanID |
zipkin | Zipkin tracing format | traceId, spanId, parentSpanId |
Additional field configurations
TraceSet has additional field requirements related to tracing:
Field | Description | Constraint |
| The trace ID field name | Required. Default: "traceId" |
| The span ID field name | Required. Default: "spanId" |
| The parent span ID field name | Optional. Default: "parentSpanId" |
| The tracing protocol | Optional. Default: "opentelemetry" |
Note: In Observability 2.0, TraceSet has a fixed structure that follows the OpenTelemetry specification. It must be stored in a Simple Log Service Logstore. This provides visualization and analysis capabilities for various types of app performance analytics data.
EventSet modeling
EventSet defines the structure of event data. It is suitable for scenarios such as alert events, system events, and business events. It provides flexible capabilities for defining event types and managing states.
Note: EventSet does not add extra fields compared to TelemetryDataSet. In the UModel system, an EventSet and a Simple Log Service Logstore are created by default to store data such as system events and alert events. The format follows the CloudEvents specification.
ProfileSet modeling
ProfileSet defines performance profiling data. It supports data modeling for various performance metrics, such as CPU, memory, and network. It is primarily used for app performance analytics and system performance optimization.
Additional field configurations
ProfileSet has the following additional field requirements:
Field | Description | Constraint |
| The performance profiling protocol | Required. Default: "pprof". Currently, only this protocol is supported. |
Note: In Observability 2.0, ProfileSet has a fixed structure that follows the pprof specification. It must be stored in a Simple Log Service Logstore to provide visualization and analysis capabilities for various types of app performance analytics data.