يُنفِّذ استعلام Prometheus باستخدام بيانات من جدول TimeSeries.
البنية
prometheusQuery('db_name', 'time_series_table', 'promql_query', evaluation_time)
prometheusQuery(db_name.time_series_table, 'promql_query', evaluation_time)
prometheusQuery('time_series_table', 'promql_query', evaluation_time)الوسيطات
db_name- اسم قاعدة البيانات التي يوجد فيها جدول TimeSeries.time_series_table- اسم جدول TimeSeries.promql_query- استعلام مكتوب بصيغة PromQL.evaluation_time - الطابع الزمني للتقييم. لتقييم استعلام في الوقت الحالي، استخدمnow()باعتبارهevaluation_time`.
القيمة المُعادة
يمكن أن تُرجع الدالة أعمدة مختلفة بحسب نوع نتيجة الاستعلام المُمرَّر إلى المعامل promql_query:
| نوع النتيجة | أعمدة النتيجة | مثال |
|---|---|---|
| vector | tags Array(Tuple(String, String)), timestamp TimestampType, value ValueType | prometheusQuery(mytable, 'up') |
| matrix | tags Array(Tuple(String, String)), time_series Array(Tuple(TimestampType, ValueType)) | prometheusQuery(mytable, 'up[1m]') |
| scalar | scalar ValueType | prometheusQuery(mytable, '1h30m') |
| string | string String | prometheusQuery(mytable, '"abc"') |
الميزات المدعومة في PromQL
المُحدِّدات
المُحدِّدات الآنية، ومُحدِّدات النطاق، ومطابقات التسميات (=, !=, =~, !~)، ومُعدِّلات الإزاحة، ومُعدِّلات الطابع الزمني @، والاستعلامات الفرعية.
الدوال
| الفئة | الدوال |
|---|---|
| النطاق | rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets |
| الرياضيات | abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg, round, clamp, clamp_min, clamp_max |
| المثلثات | sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh |
| DateTime | day_of_week, day_of_month, days_in_month, day_of_year, minute, hour, month, year |
| الوسم | label_replace, label_join |
| النوع | scalar, vector |
| مُدرَّج تكراري | histogram_quantile |
| أخرى | time, pi |
ملاحظة: تستخدم histogram_quantile الاستيفاء الخطي على حاويات المُدرَّج التكراري التقليدي (التي يحدّدها الوسم le). لا يتم دعم المُدرَّجات التكرارية الأصلية. يجب أن تكون قيمة المعامل phi (مستوى quantile) scalar ثابتًا. وتُرفض التعبيرات التي تتغيّر في كل خطوة، مثل histogram_quantile(time() / 1000, ...)، مع استثناء NOT_IMPLEMENTED.
العوامل
العوامل الثنائية الحسابية (+, -, *, /, %, ^, atan2) وعوامل المقارنة (==, !=, <, >, <=, >= مع bool اختياري)، مع مُعدِّلات on()/ignoring() وgroup_left()/group_right().
عوامل المجموعات المنطقية and وor وunless، مع مُعدِّلات on()/ignoring().
والعوامل الأحادية + و-.
عوامل التجميع
sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — مع مُعدِّلات اختيارية من نوع by() أو without().
غير مدعوم حاليًا
- عامل التجميع
count_values - دوال النطاق
predict_linear،avg_over_time،min_over_time،max_over_time،sum_over_time،count_over_time،quantile_over_time،stddev_over_time،stdvar_over_time،present_over_time،absent_over_time،mad_over_time،first_over_time،ts_of_min_over_time،ts_of_max_over_time،ts_of_last_over_time،ts_of_first_over_time - الدالة
absent
مثال
SELECT * FROM prometheusQuery(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now())