New Relic admite consultas de estilo PromQL, y nuestro generador de consultas ofrece un modo de consulta de estilo PromQL que traduce la sintaxis de consulta de PromQL a la aproximación NRQL más cercana. Aunque el método de aproximación significa que un puñado de casos extremos no son totalmente compatibles, proporciona cobertura para una abrumadora mayoría de consultas, admitiendo más del 99,5 % de las consultas en los 7,8 millones de descargas principales dashboard de Grafana.
Continúe leyendo para conocer cómo trabajamos con PromQL consulta, así como las diferencias entre PromQL estándar y nuestro lenguaje de consulta similar a PromQL que queremos que conozca.
Importante
Para obtener información general sobre la consulta y los operadores de Prometheus, consulte la documentación de Prometheus.io .
Característica admitida
Admitimos las siguientes funciones de agregación, aritméticas, matemáticas y similares a tasas. A medida que sigamos ampliando el soporte para Prometheus y PromQL, esta lista se actualizará.
Resolución de problemas PromQL
Esta sección describe las diferencias de comportamiento entre PromQL y nuestro comportamiento de consulta estilo PromQL y cómo trabajar con y alrededor de estas diferencias. Esto es particularmente relevante si desea utilizar consulta avanzada y nuestro modo estilo PromQL en el generador de consultas.
Tipos métricos
Las recomendaciones de Prometheus señalan que solo debes usar algunas funciones, como delta(), en el medidor, y solo usar otras como rate() y increase() en los contadores, pero las consultas en Prometheus aún funcionan la mayor parte del tiempo incluso si no lo hacen. siga esas instrucciones.
Sin embargo, debido a que NRDB convierte contadores acumulativos de estilo PromQL en contadores delta
, nuestra implementación es implacable cuando se utilizan estas funciones en el tipo de datos incorrecto y producirá respuestas diferentes o incorrectas.
Por este motivo, es mejor seguir todas las recomendaciones de Prometheus cuando trabaje con nuestra consulta estilo PromQL, incluso si no sigue estas recomendaciones en Prometheus.
Límites
- Para garantizar la estabilidad y el rendimiento de nuestro sistema para todos los usuarios, ponemos algunos límites sobre qué consulta se puede ejecutar. En todos los casos, aplicamos un límite de 366 pasos en el rango de consulta. También por defecto devolvemos solo 100 series temporales de consulta de forma predeterminada.
- Si desea ver más (o menos), debe agregar explícitamente un
topk()
a su consulta. (Tenga en cuenta que la implementacióntopk()
en nuestra consulta de estilo PromQL es diferente de la de Prometheus). - Limitamos la memoria total que puede utilizar una consulta. Esto significa que las solicitudes de grandes cantidades de pasos de tiempo o grandes cantidades de series de tiempo pueden rechazarse, particularmente si se combinan con una agregación como
count
oquantile
única, que requiere mucha más memoria para calcular que las agregaciones aritméticas simples.
Selectores de vectores de rango (ventanas deslizantes y comportamiento de suavizado)
Brindamos soporte para agregaciones de series temporales de ventana deslizante. Para obtener más información, consulte nuestra referencia de NRQL y el análisis profundo de las ventanas corredizas.
Para obtener información sobre la traducción entre NRQL y nuestro lenguaje estilo PromQL, consulte Traducir la consulta de PromQL a NRQL.
Rango de consulta e intervalos de extracción de datos
- El rango de su consulta en PromQL debe ser mayor que la duración del tamaño del paso de la consulta para evitar el error "El tamaño del depósito
TIMESERIES
es mayor que la ventana de tiempo actual". - Inspeccionamos datos de hasta un minuto de antigüedad cuando realizamos consultas instantáneas. Si el intervalo de raspado es superior a 1 minuto, alguna consulta puede resultar en No data found. Evite esto enviando datos al menos una vez por minuto.
- Si la unidad de serie temporal para su consulta NRQL es menor que el intervalo de raspado para su aplicación, algunos períodos carecerán de datos y el gráfico resultante puede ser irregular o contener picos y valles. En general, establezca el tamaño del paso según su intervalo de raspado o superior.