Este es el comando rrdgraph_rpn que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
rrdgraph_rpn - Acerca de RPN Math en rrdtool graph
SINOPSIS
RPN expresión:=nombrev|operador|propuesta de[,RPN expresión]
DESCRIPCIÓN
Si alguna vez ha utilizado una calculadora HP tradicional, ya lo sabe RPN (Polaco inverso
Notación). La idea detrás RPN es que tiene una pila y envía sus datos a este
apilar. Siempre que ejecuta una operación, toma tantos elementos de la pila como
necesario. La inserción se realiza implícitamente, por lo que siempre que especifica un número o una variable,
se empuja a la pila automáticamente.
Al final del cálculo, debe quedar uno y solo un valor en la pila.
Este es el resultado de la función y esto es lo que se pone en el nombrev. For CDEF
instrucciones, la pila se procesa para cada punto de datos en el gráfico. VDEF las instrucciones
trabajar en un conjunto de datos completo en una sola ejecución. Tenga en cuenta que actualmente VDEF solo instrucciones de apoyo
una lista limitada de funciones.
Ejemplo: "VDEF: máximo = mydata, MAXIMUM"
Esto establecerá la variable "máxima" que ahora puede usar en el resto de su script RRD.
Ejemplo: "CDEF: mydatabits = mydata, 8, *"
Esto significa: empujar variable mis datos, presione el número 8, ejecute el operador *. El operador
necesita dos elementos y los usa para devolver un valor. Este valor luego se almacena en
misbitsdedatos. Como habrás adivinado, esta instrucción no significa más que misbitsdedatos
= mis datos * 8. El verdadero poder de RPN radica en el hecho de que siempre está claro en qué
para procesar la entrada. Para expresiones como "a = b + 3 * 5" necesitas multiplicar 3
con 5 primero antes de agregar b para obtener a. Sin embargo, entre paréntesis puede cambiar esto
orden: "a = (b + 3) * 5". En RPN, haría "a = b, 3, +, 5, *" sin la necesidad de
paréntesis.
OPERADORES
operadores booleanos
LT, LA, GT, GE, Ecualizador NE
Menor que, Menor o igual, Mayor que, Mayor o igual, Igual, No igual todos pop dos
elementos de la pila, compárelos para la condición seleccionada y devuelva 1 para verdadero
o 0 para falso. Comparando un desconocido o un infinito el valor resultará en desconocido
devuelto ... que también será tratado como falso por el IF llamada.
NACIONES UNIDAS, isinf
Saque un elemento de la pila, compare esto con desconocido respectivamente a positivo or
negativas infinito. Devuelve 1 para verdadero o 0 para falso.
IF
Saca tres elementos de la pila. Si el último elemento que apareció es 0 (falso), el
El valor que aparece primero se devuelve a la pila; de lo contrario, el valor que aparece en segundo lugar es
retrasado. De hecho, esto significa que cualquier valor distinto de 0 se considera
verdadera.
Ejemplo: "A, B, C, IF" debe leerse como "si (A) entonces (B) si no (C)"
Comparación de valores
MÍN., MAX
Saca dos elementos de la pila y devuelve el más pequeño o más grande, respectivamente.
Tenga en cuenta que infinito es más grande que cualquier otra cosa. Si uno de los números de entrada es
desconocido entonces el resultado de la operación será desconocido
Minnan, MAXNAN
Versión segura para NAN de MIN y MAX. Si uno de los números de entrada es desconocido entonces el
El resultado de la operación será el otro. Si ambos son desconocido, entonces el resultado de
la operación es desconocido.
LIMITE LAS
Saca dos elementos de la pila y los usa para definir un rango. Entonces aparece
otro elemento y si cae dentro del rango, se empuja hacia atrás. Si no, un
desconocido es empujado.
El rango definido incluye los dos límites (entonces: un número igual a uno de los
los límites serán empujados hacia atrás). Si alguno de los tres números involucrados es
desconocido or infinito esta función siempre devolverá un desconocido
Ejemplo: "CDEF: a = alpha, 0,100, LIMIT" devolverá desconocido si alfa es menor que 0 o si
es superior a 100.
Aritmética
+, -, *, /, %
Sumar, restar, multiplicar, dividir, módulo
ADDNAN
Adición segura para NAN. Si un parámetro es NAN / UNKNOWN, se tratará como cero. Si ambos
los parámetros son NAN / DESCONOCIDO, se devolverá NAN / DESCONOCIDO.
PECADO, porque, INICIAR SESIÓN, EXP, SQRT
Seno y coseno (entrada en radianes), log y exp (logaritmo natural), raíz cuadrada.
ATAN
Arctangent (salida en radianes).
ATAN2
Arcotangente de componentes y, x (salida en radianes). Esto saca un elemento del
pila, el componente x (coseno), y luego un segundo, que es el componente y (seno).
Luego empuja el arcangente de su proporción, resolviendo la ambigüedad entre
cuadrantes.
Ejemplo: "CDEF: angle = Y, X, ATAN2, RAD2DEG" convertirá los componentes "X, Y" en un ángulo en
grados.
SUELO, HACER TECHO
Redondea hacia abajo o hacia arriba al número entero más cercano.
DEG2RAD, RAD2DEG
Convierta el ángulo en grados a radianes o radianes a grados.
ABS
Toma el valor absoluto.
Establecer operaciones
CLASIFICAR, REV
Saca un elemento de la pila. Este es el contar de elementos a clasificar (o
invertido). La parte superior contar de los elementos restantes se ordenan (o invierten) en
colocar en la pila.
Ejemplo: "CDEF: x = v1, v2, v3, v4, v5, v6,6, SORT, POP, 5, REV, POP, +, +, +, 4, /" calculará el
promedio de los valores v1 a v6 después de eliminar el más pequeño y el más grande.
AVG
Pop un elemento (contar) de la pila. Ahora pop contar elementos y construir el promedio,
ignorando todos los valores DESCONOCIDOS en el proceso.
Ejemplo: "CDEF: x = a, b, c, d, 4, AVG"
MEDIAN
hacer estallar un elementocontar) de la pila. Ahora pop contar elementos y encontrar la mediana,
ignorando todos los valores DESCONOCIDOS en el proceso. Si hay un número par de no DESCONOCIDOS
valores, el promedio de los dos del medio se colocará en la pila.
Ejemplo: "CDEF: x = a, b, c, d, 4, MEDIAN"
TENDENCIA, TENDENCIA
Cree un promedio de "ventana deslizante" de otra serie de datos.
Uso: CDEF: suavizado = x, 1800, TENDENCIA
Esto creará un promedio de ventana deslizante de media hora (1800 segundos) de x. La media
se calcula esencialmente como se muestra aquí:
+ ---! ---! ---! ---! ---! ---! ---! ---! --->
ahora
retraso t0
<--------------->
retraso t1
<--------------->
retraso t2
<--------------->
El valor en la muestra (t0) será el promedio entre (t0-retraso) y (t0)
El valor en la muestra (t1) será el promedio entre (t1-retraso) y (t1)
El valor en la muestra (t2) será el promedio entre (t2-retraso) y (t2)
TRENDNAN es, a diferencia de TREND, seguro para NAN. Si usa TREND y un valor de fuente
es NAN, la ventana deslizante completa se ve afectada. La operación TRENDNAN ignora todos
NAN-valores en una ventana deslizante y calcula el promedio de los valores restantes.
PREDECIR, PREDICTIGMA, PREDICTPERC
Cree un promedio / sigma / percentil de "ventana deslizante" de otra serie de datos, que también
También cambia la serie de datos por períodos de tiempo dados.
Uso: cambios de declaración explícitos: "CDEF: predecir = , ...,
1>, n, , x, PREDECIR "" CDEF: sigma = , ...,
1>, n, , x, PREDICTSIGMA "" CDEF: perc = , ...,
1>, n, , , x, PREDICTPERC "
Uso: turnos definidos como un turno base y varias veces que se aplica
"CDEF: predecir = ,-norte, , x, PREDECIR "" CDEF: sigma =
multiplicador>, - n, , x, PREDICTSIGMA "" CDEF: sigma =
multiplicador>, - n, , , x, PREDICTPERC "
Ejemplo: CDEF: predict = 172800,86400,2,1800, x, PREDICT
Esto creará un promedio de ventana deslizante de media hora (1800 segundos) / sigma de x, que
el promedio se calcula esencialmente como se muestra aquí:
+ ---! ---! ---! ---! ---! ---! ---! ---! ---! ---! ---! ---! - -! ---! ---! ---! ---! --->
ahora
turno 1 t0
<----------------------->
ventana
<--------------->
turno 2
<----------------------------------------------->
ventana
<--------------->
turno 1 t1
<----------------------->
ventana
<--------------->
turno 2
<----------------------------------------------->
ventana
<--------------->
El valor en la muestra (t0) será el promedio entre (t0-shift1-window) y (t0-shift1)
y entre (t0-shift2-window) y (t0-shift2)
El valor en la muestra (t1) será el promedio entre (t1-shift1-window) y (t1-shift1)
y entre (t1-shift2-window) y (t1-shift2)
La función es segura para NAN por diseño. Esto también permite la extrapolación al
futuro (digamos unos días): es posible que deba definir la serie de datos con el opcional
start = parámetro, de modo que la serie de datos de origen tenga suficientes datos para proporcionar predicción
también al principio de un gráfico ...
El percentil puede estar entre [-100: +100]. Los percentiles positivos se interpolan
entre valores mientras que el negativo tomará el más cercano.
Ejemplo: ejecuta 7 turnos con una ventana de 1800 segundos. Suponiendo que el archivo rrd tiene
un tamaño de paso de 300 segundos, esto significa que tenemos que hacer el cálculo de percentiles basado
en un máximo de 42 valores distintos (menos si tiene NAN). eso significa que en el mejor de los casos
obtiene una tasa de paso entre valores de 2.4 por ciento. así que si pides el 99
percentil, entonces necesitaría mirar el valor 41.59. Como solo tenemos
enteros, ya sea el valor 41 o 42.
Con el percentil positivo se hace una interpolación lineal entre los 2 valores para
obtenga el valor efectivo.
El negativo devuelve el valor más cercano a la distancia, por lo que en el caso anterior 42o
valor, que efectivamente devuelve el Percentile100 o el máximo de los 7 anteriores
días en la ventana.
Aquí un ejemplo, que creará un gráfico de 10 días que también muestra la predicción de 3 días.
hacia el futuro con su valor de incertidumbre (como se define por avg + -4 * sigma) Esto también
muestra si se supera la predicción en un punto determinado.
rrdtool graph image.png --imgformat = PNG \
--start = -7days --end = + 3days --width = 1000 --height = 200 --alt-autoscale-max \
DEF: valor = valor.rrd: valor: PROMEDIO: inicio = -14 días \
LINE1: valor # ff0000: valor \
CDEF: predecir = 86400, -7,1800, valor, PREDICT \
CDEF: sigma = 86400, -7,1800, valor, PREDICTSIGMA \
CDEF: superior = predecir, sigma, 3, *, + \
CDEF: inferior = predecir, sigma, 3, *, - \
LINE1: predecir # 00ff00: predicción \
LINE1: superior # 0000ff: superior \ certeza \ límite \
LINE1: menor # 0000ff: menor \ certeza \ límite \
CDEF: excede = valor, UN, 0, valor, inferior, superior, LIMIT, UN, IF \
TICK: excede # aa000080: 1 \
CDEF: perc95 = 86400, -7,1800,95, valor, PREDICTPERC \
LINE1: perc95 # ffff00: 95th_percentile
Nota: La experiencia ha demostrado que un factor entre 3 y 5 para escalar sigma es un buen
discriminador para detectar comportamientos anormales. Esto obviamente depende también del tipo de
datos y qué tan "ruidosa" es la serie de datos.
También tenga en cuenta el uso explícito de start = en el CDEF; esto es necesario para cargar todos los
datos necesarios (incluso si no se muestran)
Esta predicción solo se puede utilizar para extrapolaciones a corto plazo, digamos unos días después
el futuro.
Valores especiales
DESCONOCIDO
Coloca un valor desconocido en la pila
INF, NEGINF
Coloca un valor infinito positivo o negativo en la pila. Cuando tal valor es
graficado, aparece en la parte superior o inferior del gráfico, sin importar el valor real
en el eje y es.
ANTERIOR
Empuja un desconocido valor si este es el primer valor de un conjunto de datos o de lo contrario el
resultado de esto CDEF en el paso de tiempo anterior. Esto le permite hacer cálculos
a través de los datos. Esta función no se puede utilizar en VDEF instrucciones.
PREV (nombrev)
Empuja un desconocido valor si este es el primer valor de un conjunto de datos o de lo contrario el
resultado de la variable vname en el paso de tiempo anterior. Esto te permite hacer
cálculos a través de los datos. Esta función no se puede utilizar en VDEF instrucciones.
COUNT
Empuja el número 1 si este es el primer valor del conjunto de datos, el número 2 si es
el segundo, y así sucesivamente. Este valor especial le permite realizar cálculos basados en el
posición del valor dentro del conjunto de datos. Esta función no se puede utilizar en VDEF
instrucciones.
Hora
El tiempo dentro de RRDtool se mide en segundos desde la época. La época se define como
"Thu Jan 1 00:00:00 UTC 1970".
AHORA
Coloca la hora actual en la pila.
ANCHO DE PASO
El con del paso actual en segundos. Puede usar esto para volver de la tarifa basada
presentaciones a números absolutos
CDEF: abs = tasa, ANCHO DE PASO, *, PREF, ADDNAN
NUEVO DÍA,NUEVA SEMANA,NUEVO MES,AÑO NUEVO
Estos tres operadores devolverán 1.0 siempre que un paso sea el primero de los dados.
período. Los periodos se determinan de acuerdo con la zona horaria local Y el "LC_TIME"
configuración.
CDEF: mtotal = tasa, STEPWIDTH, *, NEWMONTH, PREV, 0, IF, ADDNAN
Captura de
Inserta la hora a la que se tomó el valor procesado actualmente en la pila.
TIEMPO ÚLTIMO
Toma el tiempo definido por Captura de, aplica el desplazamiento de zona horaria válido en ese momento
incluyendo el horario de verano si su sistema operativo lo admite, y empuja el resultado en el
apilar. Hay un ejemplo elaborado en la sección de ejemplos a continuación sobre cómo usar
esta.
Procesando la pila directamente
DUP, MÚSICA POP, EXC
Duplique el elemento superior, elimine el elemento superior, intercambie los dos elementos superiores.
PROFUNDIDAD
empuja la profundidad actual de la pila a la pila
a, b, PROFUNDIDAD -> a, b, 2
n,COPIA
empujar una copia de los n elementos superiores en la pila
a, b, c, d, 2, COPY => a, b, c, d, c, d
n,ÍNDICE
Empuje el elemento n en la pila.
a, b, c, d, 3, INDICE -> a, b, c, d, b
Nuevo Méjico,ROLLO
rotar los n elementos superiores de la pila en m
a, b, c, d, 3,1, ROLL => a, d, b, c
a, b, c, d, 3, -1, ROLL => a, c, d, b
VARIABLES
Estos operadores solo funcionan en VDEF declaraciones. Tenga en cuenta que actualmente SOLO estos funcionan para
VDEF.
MÁXIMO, MÍNIMO, PROMEDIO
Devuelve el valor correspondiente, MAXIMUM y MINIMUM también devuelven la primera aparición
de ese valor en el componente de tiempo.
Ejemplo: "VDEF: avg = mydata, AVERAGE"
STDEV
Devuelve la desviación estándar de los valores.
Ejemplo: "VDEF: stdev = mydata, STDEV"
ÚLTIMO PRIMERO
Devuelve el último / primer valor no nanométrico o infinito para el flujo de datos seleccionado,
incluyendo su marca de tiempo.
Ejemplo: "VDEF: primero = mydata, FIRST"
TOTAL
Devuelve la tasa de cada intervalo de tiempo definido multiplicado por el tamaño del paso. Esto puede,
por ejemplo, devuelva el total de bytes transferidos cuando haya registrado bytes por segundo.
El componente de tiempo devuelve el número de segundos.
Ejemplo: "VDEF: total = mydata, TOTAL"
PORCENTAJE, PORCENTAJE
Esto debe seguir un DEF or CDEF nombrev. nombrev aparece, aparece otro número
que es un cierto porcentaje (0..100). A continuación, el conjunto de datos se ordena y el valor
devuelto se elige de tal manera que porcentaje el porcentaje de los valores es menor o igual que
el resultado. Para PERCENTNAN Desconocido los valores se ignoran, pero para PERCENT Desconocido valores
se consideran más bajos que cualquier número finito para este propósito, por lo que si este operador
devuelve un desconocido tiene muchos de ellos en sus datos. Inflos números iniciales son
menores, o más, que los números finitos y siempre son más que los Desconocido números.
(NaN <-INF <valores finitos <INF)
Ejemplo: "VDEF: perc95 = mydata, 95, PERCENT"
"VDEF: percnan95 = mydata, 95, PERCENTNAN"
SLSLOPE, LSLINT, LSLCORREL
Devuelve los parámetros de un Leste Scuadrados Line (y = mx + b) que se aproximan al
conjunto de datos proporcionado. LSLSLOPE es la pendiente (metro) de la línea relacionada con la posición COUNT
de los datos. LSLINT es la intersección con el eje y (B), que también es el primer dato
punto en el gráfico. LSLCORREL es el coeficiente de correlación (también conocido como Pearson
Coeficiente de correlación del momento del producto). Estará en el rango de 0 a +/- 1 y representa
la calidad de ajuste para la aproximación.
Ejemplo: "VDEF: pendiente = mydata, LSLSLOPE"
Use rrdgraph_rpn en línea usando los servicios de onworks.net