forked from yellow-hammer/prometheus
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathПростой.os
More file actions
50 lines (42 loc) · 3.2 KB
/
Простой.os
File metadata and controls
50 lines (42 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// =============================================================================
// ПРИМЕР: Полный обзор - счётчик, индикатор, вектор с лейблами, сбор в текст
// =============================================================================
//
// Что делает: создаёт три вида метрик, меняет их значения и выводит результат
// в формате Prometheus (такой текст обычно отдают по HTTP на /metrics).
//
// Термины:
// Счётчик (Counter) - число, которое только растёт (запросы, ошибки).
// Индикатор (Gauge) - число, которое можно ставить и менять (очередь, температура).
// Вектор - одна метрика с разными «сериями» по лейблам (например метод + код ответа).
// =============================================================================
#Использовать ".."
// BSLLS:MagicNumber-off
// BSLLS:DuplicateStringLiteral-off
// --- Счётчик: только увеличение (инкремент на 1 или добавить число) ---
Счетчик = Prometheus.НовыйСчетчик("my_requests_total", "Всего запросов");
Prometheus.Инкремент(Счетчик);
Prometheus.Добавить(Счетчик, 5);
// --- Индикатор: можно установить значение, увеличить/уменьшить ---
Индикатор = Prometheus.НовыйИндикатор("active_jobs", "Активные задания");
Prometheus.Установить(Индикатор, 3);
// --- Вектор счётчика: одна метрика, несколько серий по лейблам (method, code).
// Лейблы задаём Соответствием - порядок имён не важен. ---
ИменаЛейблов = Новый Массив;
ИменаЛейблов.Добавить("method");
ИменаЛейблов.Добавить("code");
ВекторЗапросов = Prometheus.НовыйСчетчикВектор("http_requests_total", "Запросы по методу и коду", ИменаЛейблов);
ЛейблыGET = Новый Соответствие;
ЛейблыGET.Вставить("method", "GET");
ЛейблыGET.Вставить("code", "200");
СчетчикGET = Prometheus.СчетчикСЛейблами(ВекторЗапросов, ЛейблыGET);
Prometheus.Инкремент(СчетчикGET);
ЛейблыPOST = Новый Соответствие;
ЛейблыPOST.Вставить("method", "POST");
ЛейблыPOST.Вставить("code", "201");
СчетчикPOST = Prometheus.СчетчикСЛейблами(ВекторЗапросов, ЛейблыPOST);
Prometheus.Добавить(СчетчикPOST, 2);
// --- Сбор всех метрик и вывод в текстовом формате Prometheus ---
Семейства = Prometheus.СобратьМетрики();
Текст = Prometheus.СериализоватьВТекст(Семейства);
Сообщить(Текст);