En este artículo, veremos los conceptos comunes con los que trabajamos en la API Insights de la serie Series de tiempo e intentamos proporcionar una explicación intuitiva de lo que representan.
Evento
Un evento es un dato y la entrada sin procesar con la que funciona la API Insights de Timeseries. Conceptualmente representa una acción que ha realizado un agente (como una transacción de un cliente o la publicación de un artículo de noticias) o una observación (por ejemplo, las lecturas de un sensor de temperatura o el uso de la CPU en un máquina).
Un evento contiene lo siguiente:
- Un conjunto de valores en diferentes dimensiones, que representan propiedades que describen el evento, como etiquetas o mediciones numéricas.
- Marca de tiempo que representa la hora en que se ha producido el evento. Esta marca de tiempo se usa al colocar eventos en una serie temporal.
- Un ID de grupo.
Dimensión
Las dimensiones representan los tipos de propiedades de los eventos de los conjuntos de datos y los dominios que pueden tener. Las dimensiones pueden ser:
- Categórica. Una propiedad de evento de esta dimensión puede contener uno de los valores limitados o limitados, normalmente cadenas. Por ejemplo: el nombre del país o del editor en un conjunto de datos con artículos de noticias, el nombre del equipo en un conjunto de datos con datos de supervisión de producción.
- Numérica. Una medición o una propiedad numérica general para un evento. Ejemplos: número de páginas vistas de artículos de noticias, uso de CPU o número de errores de datos de monitorización de producción.
Conjunto de datos
Un conjunto de datos es una colección de eventos.
Grupo
Los eventos se pueden agrupar si se especifica el mismo ID de grupo (consulta Event.group_id
).
La finalidad del grupo es calcular las correlaciones entre los eventos del mismo grupo, pero la versión actual de la API no expone esta función. Por ejemplo, si tu conjunto de datos contiene datos de supervisión (como el porcentaje de CPU, la RAM, etc.), un grupo podría retener todos los datos de supervisión en un solo proceso. De esta forma, podemos detectar que un aumento en el porcentaje de CPU se relaciona con otro evento, como una actualización de la versión binaria de un momento anterior.
Si no estás seguro o no te interesa distribuir estos tipos de correlaciones, cada evento debe tener un ID de grupo único global.
fragmento
Una porción es el subconjunto de todos los eventos de un conjunto de datos que tienen los mismos valores en algunoscategórico (dimensiones) en tu teléfono Android.
Supongamos que tenemos un conjunto de datos con las ventas de un comercio internacional y cada evento es una venta con estas dimensiones categóricas: el país donde se realizó la venta, el nombre del producto, { 101}nombre de la empresa que creó el producto. En este caso, se especifican algunos ejemplos de este tipo: las ventas de un producto determinado, las ventas de un país determinado para todos los productos de una empresa determinada.
Series temporales
Una serie temporal es una secuencia de eventos agregados que se sitúa en segmentos de tiempo igual. Se calcula tomando la siguiente información:
- Una porción y, por tanto, todos los eventos de esa sección.
- Intervalo de tiempo en el que empieza la serie temporal y cuándo debe finalizar. En el caso de un objeto
QueryDataSetRequest
, estos límites son [tested_interval.start_time - forecast_params.forecast_history
,tested_interval.start_time + tested_interval.length
]. Solo seleccionaremos eventos de la porción que tengan susEvent.event_time
en estos límites a la hora de definir la serie temporal. - La duración de cada segmento de tiempo de la serie temporal. Para un objeto
QueryDataSetRequest
determinado, esta longitud es igual atested_interval.length
. - Un método de agregación para los eventos. Actualmente, se admiten dos métodos de agregación: contar los eventos o resumir una dimensión numérica que esté presente en todos los eventos (especificado por
forecast_params.aggregated_dimension
).
Previsión
El proceso de predecir valores futuros de una serie temporal determinada.
Bloqueo
La retención es la última parte de la serie temporal (normalmente la del 5 al 10 %) que sirve para evaluar el rendimiento de nuestro modelo de previsión. Si se producen más errores de previsión durante el periodo de espera, reduciremos la confianza de nuestra previsión ampliando los límites de la previsión.
Horizonte
Vamos a prever los valores de una serie temporal desde el intervalo probado hasta el horizonte temporal (indicado por el campo ForecastParams.horizon_time
).
Intervalo probado
El intervalo probado (QueryDataSetRequest.tested_interval
) es un intervalo de tiempo durante el cual queremos detectar cualquier porción de nuestro conjunto de datos que tiene valores inesperados (durante el intervalo probado) en comparación con el tiempo histórico. de la serie.
Anomalía
Una parte se marca como una anomalía si, después de la previsión, tenemos un valor previsto durante el intervalo probado que se encuentra fuera del intervalo esperado por un configurable. .
Siguientes pasos
- Guía de inicio rápido de la API Insights de Timeseries
- Un tutorial más detallado
- Una guía de creación de consultas.
- Más información sobre la API REST