> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> يُقيِّم استعلام Prometheus باستخدام بيانات من جدول TimeSeries.

# prometheusQueryRange

يُقيِّم استعلام Prometheus باستخدام بيانات من جدول TimeSeries عبر نطاق من أزمنة التقييم.

## البنية

```sql theme={null}
prometheusQueryRange('db_name', 'time_series_table', 'promql_query', start_time, end_time, step)
prometheusQueryRange(db_name.time_series_table, 'promql_query', start_time, end_time, step)
prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time, step)
```

## المعاملات

* `db_name` - اسم قاعدة البيانات التي يوجد فيها جدول TimeSeries.
* `time_series_table` - اسم جدول TimeSeries.
* `promql_query` - استعلام مكتوب [بصياغة PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/).
* `start_time` - وقت بداية نطاق التقييم.
* `end_time` - وقت نهاية نطاق التقييم.
* `step` - الخطوة المستخدَمة للتنقّل عبر وقت التقييم من `start_time` إلى `end_time` (شاملاً).

## القيمة المُعادة

يمكن أن تُرجِع الدالة أعمدة مختلفة بناءً على نوع نتيجة الاستعلام المُمرَّر إلى المَعلمة `promql_query`:

| نوع النتيجة | أعمدة النتيجة | مثال |
| - | - | - |
| vector | tags Array(Tuple(String, String)), timestamp TimestampType, value ValueType | prometheusQuery(mytable, 'up') |
| matrix | tags Array(Tuple(String, String)), samples Array(Tuple(TimestampType, ValueType)) | prometheusQuery(mytable, 'up\[1m]') |
| scalar | scalar ValueType | prometheusQuery(mytable, '1h30m') |
| string | string String | prometheusQuery(mytable, '"abc"') |

يُسمّى العمود `samples` باسم `time_series` إذا كان جدول `TimeSeries` من [version](/ar/reference/engines/table-engines/integrations/time-series#schema-versioning) 2 أو أقدم.

## الميزات المدعومة في PromQL

### المحددات

المحددات اللحظية، ومحددات النطاق، ومطابقات الوسوم (`=`, `!=`, `=~`, `!~`)، ومُعدِّلات الإزاحة، ومُعدِّلات الطابع الزمني `@`، والاستعلامات الفرعية.

### الدوال

| الفئة | الدوال |
| - | - |
| النطاق | `rate`, `irate`, `delta`, `idelta`, `increase`, `last_over_time`, `sum_over_time`, `avg_over_time`, `count_over_time`, `max_over_time`, `min_over_time`, `ts_of_max_over_time`, `ts_of_min_over_time`, `deriv`, `changes`, `resets`, `present_over_time`, `absent_over_time`, `quantile_over_time`, `predict_linear` |
| الرياضيات | `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`, `absent` |

**ملاحظة**: تستخدم `histogram_quantile` الاستيفاء الخطي على حاويات المُدرَّج التكراري التقليدية (التي يحدّدها الوسم `le`). المُدرَّجات التكرارية الأصلية غير مدعومة. يجب أن تكون قيمة الوسيط `phi` (مستوى الكوانتايل) قيمة `scalar` ثابتة. تُرفَض التعبيرات التي تتغيّر في كل خطوة، مثل `histogram_quantile(time() / 1000, ...)`، مع ظهور استثناء `NOT_IMPLEMENTED`.

**ملاحظة**: الدالتان `ts_of_min_over_time` و`ts_of_max_over_time` تجريبيتان في Prometheus (تُفعَّلان هناك باستخدام `--enable-feature=promql-experimental-functions`)؛ ويقيّمهما ClickHouse دون اشتراط هذا الخيار.

### العوامل

العوامل الثنائية الحسابية (`+`, `-`, `*`, `/`, `%`, `^`, `atan2`) وعوامل المقارنة (`==`, `!=`, `<`, `>`, `<=`, `>=` مع `bool` اختياري)، مع المعدِّلات `on()`/`ignoring()` و`group_left()`/`group_right()`.

عوامل المجموعات المنطقية `and` و`or` و`unless`، مع المعدِّلات `on()`/`ignoring()`.

العاملان الأحاديان `+` و`-`.

### عوامل التجميع

`sum`, `avg`, `min`, `max`, `count`, `count_values`, `stddev`, `stdvar`, `group`, `quantile`, `topk`, `bottomk`, `limitk` — مع معدِّلات اختيارية `by()` أو `without()`.

### غير مدعوم حاليًا

* دوال النطاق `stddev_over_time`، `stdvar_over_time`، `mad_over_time`، `first_over_time`، `ts_of_last_over_time`، `ts_of_first_over_time`

## مثال

```sql theme={null}
SELECT * FROM prometheusQueryRange(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now() - INTERVAL 10 MINUTES, now(), INTERVAL 1 MINUTE)
```
