Trazar serie cronológica
Cree tableros y seleccione la serie cronológica que desea trazar. Utilice consultas personalizadas y funciones avanzadas como filtrado, agregación, granularidad, operaciones aritméticas y funciones para trabajar con series cronológicas.
Crear un tablero
Para crear un tablero con datos de series cronológicas de Cognite Data Fusion (CDF):
-
Inicie sesión en
Grafanay cree un tablero. -
Utilice las pestañas de consulta debajo del área del gráfico principal para seleccionar series cronológicas para su tablero:
-
Búsqueda de serie cronológica: recupere los datos de una serie cronológica específica. Comience a escribir el nombre o la descripción de la serie cronológica y selecciónelo de la lista desplegable.
Especifique agregación y granularidad directamente en la consulta. De forma predeterminada, la agregación se establece en promedio y la granularidad está determinada por el intervalo de tiempo seleccionado del gráfico.
consejoOpcionalmente, establezca una etiqueta personalizada y use el formato
{{property}}
para extraer datos de la serie cronológica. Puede utilizar todas las propiedades de la serie cronológica disponibles para definir una etiqueta, por ejemplo,{{name}} - {{description}}
o{{metadata.key1}}
. -
Serie cronológica desde el activo: recupere los datos de la serie cronológica relacionada con un activo específico. Comience a escribir el nombre o la descripción del activo y selecciónelo de la lista desplegable. Opcionalmente, decida si desea incluir series cronológicas de activos secundarios.
-
Consulta personalizada de serie cronológica: recupere las series cronológicas que coincidan con una consulta.
-
-
La serie cronológica que coincide con su selección se representará en el área del gráfico. Ajuste el lapso de tiempo según sea necesario para mostrar datos relevantes.
Usar consultas personalizadas
Las consultas personalizadas ofrecen un control detallado sobre la selección de datos de series cronológicas. Puede utilizar operaciones aritméticas, funciones y una sintaxis especial para recuperar series cronológicas sintéticas. Esta sección también describe las limitaciones relacionadas con el filtrado de datos y cómo utilizar con eficacia los filtros de expresiones regulares y del lado del servidor.
Definir una consulta
Para solicitar series cronológicas, especifique una consulta con los parámetros incluidos. Por ejemplo, para consultar una serie cronológica en la que el id
es igual a 123
, especifique ts{id=123}
.
Puede solicitar series cronológicas utilizando id
, externalId
o filtros de series cronológicas.
Para series cronológicas sintéticas, puede especificar varios tipos de propiedades:
bool
:ts{isString=true}
ots{isStep=false}
string
onumber
:ts{id=123}
ots{externalId='external_123'}
array
:ts{assetIds=[123, 456]}
object
:ts{metadata={key1="value1", key2="value2"}}
Para crear series cronológicas sintéticas complejas, puede combinar los tipos en una sola consulta:
ts{name="test", assetSubtreeIds=[{id=123}, {externalId="external_123"}]}
Filtrado
Las consultas también admiten el filtrado basado en propiedades de series cronológicas que se aplican como una AND
lógica. Por ejemplo, la siguiente consulta encuentra series cronológicas:
- que pertenecen a un activo con una
id
igual a123
- en la que
name
comienza con"Begin"
- en la que
name
no termina con"end"
- en la que
name
no es igual a"Begin query"
ts{assetIds=[123], name=~"Begin.*", name!~".*end", name!="Begin query"}
La sintaxis de la consulta contiene diferentes tipos de operadores de igualdad:
=
: igualdad estricta. Especifica parámetros para la solicitud de serie cronológica aCDF. Úsela con atributos de filtrado.=!
: desigualdad estricta. Filtra las series cronológicas recuperadas por propiedades que no sean iguales a la cadena. Admite valores de cadena, numéricos y booleanos.=~
: igualdad de expresiones regulares. Filtra las series cronológicas recuperadas por propiedades que coincidan con la expresión regular. Admite valores de cadena.!~
: desigualdad de expresiones regulares. Filtra las series cronológicas recuperadas por propiedades que no coincidan con la expresión regular. Admite valores de cadena.
También puede filtrar por metadatos:
ts{externalIdPrefix="test", metadata={key1="value1", key2=~"value2.*"}}
La consulta anterior solicita series cronológicas en las que:
externalIdPrefix
es igual a"test"
metadata.key1
es igual a"value1"
metadata.key2
comienza con"value2"
Limitaciones de consulta
Al realizar consultas personalizadas, es importante comprender las limitaciones subyacentes para recuperar series cronológicas:
-
Filtrado del lado del cliente: El conector aplica consultas de expresiones regulares (
=~
para coincidencias y!~
para exclusiones) y filtros de desigualdad inexactos (=!
) del lado del cliente. Este proceso se produce después de la recuperación inicial de hasta 1000 elementos de series cronológicas de Cognite Data Fusion (CDF). Debido a este enfoque, existe la posibilidad de que no todas las series cronológicas relevantes se incluyan en el subconjunto obtenido si el número total supera 1000. -
Filtrado del lado del servidor: Para mitigar esta limitación, se recomienda utilizar filtrado del lado del servidor, siempre que sea posible. Esto se puede lograr aplicando filtros de igualdad estrictos (
=
) en propiedades de filtro de series cronológicas específicas. Al hacerlo, se reduce de manera eficaz el conjunto de series cronológicas recuperadas de CDF, lo que garantiza que los filtros posteriores del lado del cliente se apliquen a un conjunto de datos más específico. Esto es particularmente útil para garantizar que todas las series cronológicas relevantes, especialmente aquellas de interés, se incluyan en el conjunto de datos inicial obtenido del CDF.
Combine el filtrado del lado del servidor con atributos o metadatos específicos para refinar el alcance de su consulta antes de aplicar expresiones regulares u otros filtros del lado del cliente. Este enfoque aumenta considerablemente las posibilidades de seleccionar todas las series cronológicas de interés en su panel de Grafana.
Agregación, granularidad y alineación
Puede especificar la agregación y la granularidad para cada serie cronológica mediante los menús desplegables de la interfaz de usuario.
Si, por ejemplo, la agregación se establece en average
y la granularidad es igual a 1h
, todas las consultas solicitan puntos de datos con la agregación y la granularidad seleccionadas. De forma predeterminada, la agregación con series cronológicas sintéticas se alinea con el jueves 00:00:00 UTC, 1 de enero de 1970.
Con la sintaxis de consulta de serie cronológica sintética, puede definir la agregación, la granularidad y la alineación para cada serie cronológica por separado:
ts{externalId='houston.ro.REMOTE_AI[34]', alignment=1599609600000, aggregate='average', granularity='24h'}
La consulta anterior anula los valores de agregación y granularidad establecidos en la interfaz de usuario. Consulte la documentación de la API para obtener una lista de agregados compatibles.
Operaciones aritméticas
Puede aplicar operaciones aritméticas para combinar series cronológicas. Por ejemplo:
ts{id=123} + ts{externalId="test"}
El resultado de la consulta anterior es un gráfico único en el que los puntos de datos son valores sumados de cada serie cronológica.
En este ejemplo, la consulta ts{name~="test1.*"}
puede devolver más de una serie cronológica, pero supongamos que devuelve tres series cronológicas con ID 111
, 222
y 333
:
ts{name~="test1.*"} + ts{id=123}
El resultado de la consulta son tres gráficos, una combinación de valores de series cronológicas sumados devueltos por la primera y la segunda expresión de la consulta. Los gráficos resultantes representan estas consultas:
ts{id=111} + ts{id=123}
ts{id=222} + ts{id=123}
ts{id=333} + ts{id=123}
Puede ver un ejemplo de este comportamiento (cada expresión ts{}
devuelve dos series cronológicas) en la imagen a continuación (observe las etiquetas debajo del gráfico).
Functions
Admitimos una amplia gama de funciones que puede aplicar a series cronológicas sintéticas:
- Trigonométricas:
sin(ts{})
,cos(ts{})
,pi()
. - Funciones de longitud variable:
max(ts{}, ...)
,min(ts{}, ...)
,avg(ts{}, ...)
. - Algebraicas:
ln(ts{})
,pow(ts{}, exponent)
,sqrt(ts{})
,exp(ts{})
,abs(ts{})
. - Gestión de errores:
on_error(ts{}, default_value)
. Consulte Gestión de errores para cálculos. - Serie cronológica de cadena:
map(expression, [list of strings to map from], [list of values to map to], default_value)
. Consulte Serie cronológica de cadena.
Gestión de errores para cálculos
La función on_error(ts{...})
permite la representación de gráficos incluso si aparece alguna excepción. Maneja errores como:
BAD_DOMAIN
, si se proporcionan rangos de entrada incorrectos. Por ejemplo, la división por cero o la raíz cuadrada de un número negativo.OVERFLOW
, si el resultado es más de 10^100 en valor absoluto.
Si se encuentra alguno de estos, en lugar de devolver un valor para la marca de tiempo, CDF devuelve un campo de error con un mensaje de error. Para evitar esto, puede incluir la (sub)expresión en la función on_error()
:
on_error(1/ts{externalId='canBeZero'}, 0)
Serie cronológica de cadena
La función map()
puede manejar series cronológicas con valores de cadena para convertir cadenas en dobles. Si, por ejemplo, una serie cronológica para una válvula puede tener los valores "OPEN"
o "CLOSED"
, puede convertirlo en un número con:
map(TS{externalId='stringstate'}, ['OPEN', 'CLOSED'], [1, 0], -1)
"OPEN"
se asigna a 1, "CLOSED"
a 0 y todo lo demás a –1.
Actualmente los agregados en series cronológicas de cadenas no son compatibles. Todas las series cronológicas de cadenas se consideran series cronológicas escalonadas.
Conversión de unidades
Si una serie cronológica tiene un unitExternalId
definido, puede convertir sus valores a una unidad diferente dentro de la misma cantidad al consultar datos mediante consultas personalizadas.
Ejemplo:
{ts{externalId='temperature_f_houston', targetUnit='temperature:deg_c'} + ts{id='123', targetUnitSystem='SI'}}
Puede elegir targetUnit
o targetUnitSystem
para cada serie cronológica o agregado. La unidad de destino que elija debe ser compatible con la unidad original.
Al consultar puntos de datos utilizando series cronológicas sintéticas, no se conservarán las unidades de los valores. Esto significa que es posible agregar valores de una serie cronológica de temperatura a una serie cronológica de distancia, aunque no sea físicamente exacto.
Tenga en cuenta que, si intenta acceder a las propiedades unit
o unitExternalId
de cada serie cronológica en el campo etiqueta, Grafana devolverá la unidad original de la serie cronológica, no la unidad de los puntos de datos.
Mostrar datos de series cronológicas de instancias de modelos de datos
Puede mostrar datos de series cronológicas de instancias de modelos de datos de CDF:
-
En la pestaña Modelos de datos, seleccione el modelo de datos y la versión.
-
Especifique la consulta.
importanteAgregue
__typename
yexternalId
debajo de los campos que contienen la serie cronológica. En este ejemplo, debajo detemperature
ypressure
:{
listPump {
items {
temperature {
__typename
externalId
}
pressure {
__typename
externalId
}
}
}
}