Saltar al contenido principal

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):

  1. Inicie sesión en Grafana y cree un tablero.

  2. 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ónela 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.

      consejo

      Opcionalmente, 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.

  3. 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.

Ajustar el lapso de tiempo

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.

Consulta personalizada

Para series cronológicas sintéticas, puede especificar varios tipos de propiedades:

  • bool: ts{isString=true} o ts{isStep=false}
  • string o number: ts{id=123} o ts{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 a 123
  • en las que name comienza con "Begin"
  • en las que name no termina con "end"
  • en las 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 a CDF. Ú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).

Matemáticas de consulta personalizada

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 errores, 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 convertirlos 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:

  1. En la pestaña Modelos de datos, seleccione el modelo de datos y la versión.

  2. Especifique la consulta.

    importante

    Agregue __typename y externalId debajo de los campos que contienen la serie cronológica. En este ejemplo, debajo de temperature y pressure:

    {
    listPump {
    items {
    temperature {
    __typename
    externalId
    }
    pressure {
    __typename
    externalId
    }
    }
    }
    }
    Modelo de datos de consulta personalizado