Skip to content

Commit 4db6a28

Browse files
committed
style: добавлены пробелы для улучшения читаемости кода
1 parent 9503d60 commit 4db6a28

14 files changed

Lines changed: 81 additions & 49 deletions

examples/ВекторСЛейблами.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@ Prometheus.Добавить(СчетчикPOST, 3);
3232

3333
Семейства = Prometheus.СобратьМетрики();
3434
Текст = Prometheus.СериализоватьВТекст(Семейства);
35+
3536
Сообщить(Текст);

examples/ГистограммаИРезюме.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ Prometheus.Наблюдать(Резюме, 300);
3030

3131
Семейства = Prometheus.СобратьМетрики();
3232
Текст = Prometheus.СериализоватьВТекст(Семейства);
33+
3334
Сообщить(Текст);

examples/Простой.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,5 @@ Prometheus.Добавить(СчетчикPOST, 2);
4343
// --- Сбор всех метрик и вывод в текстовом формате Prometheus ---
4444
Семейства = Prometheus.СобратьМетрики();
4545
Текст = Prometheus.СериализоватьВТекст(Семейства);
46+
4647
Сообщить(Текст);

examples/СчетчикИИндикатор.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ Prometheus.Декремент(Индикатор);
2222

2323
Семейства = Prometheus.СобратьМетрики();
2424
Текст = Prometheus.СериализоватьВТекст(Семейства);
25+
2526
Сообщить(Текст);

src/Классы/CollectorRegistry.os

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
Если Индекс = Неопределено Тогда
2929
Возврат Ложь;
3030
КонецЕсли;
31+
3132
Коллекторы.Удалить(Индекс);
3233

3334
Возврат Истина;
@@ -47,6 +48,6 @@
4748
ВсеСемейства.Добавить(Семейство);
4849
КонецЦикла;
4950
КонецЦикла;
50-
51+
5152
Возврат ВсеСемейства;
5253
КонецФункции

src/Модули/Prometheus.os

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
Возврат PrometheusRegistry.ПолучитьРеестрПоУмолчанию();
66
КонецФункции
77

8+
// --- Скалярные метрики (счётчик, индикатор, гистограмма, резюме) ---
9+
810
Функция НовыйСчетчик(Имя, Справка = "", КонстантныеЛейблы = Неопределено) Экспорт
911
Опции = Новый Структура("Имя, Справка", Имя, Справка);
1012
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
@@ -29,6 +31,34 @@
2931
Возврат Индикатор;
3032
КонецФункции
3133

34+
Функция НоваяГистограмма(Имя, Справка = "", ВерхниеГраницыБакетов = Неопределено, КонстантныеЛейблы = Неопределено) Экспорт
35+
Границы = ?(ТипЗнч(ВерхниеГраницыБакетов) = Тип("Массив"), ВерхниеГраницыБакетов, Новый Массив);
36+
Опции = Новый Структура("Имя, Справка, ВерхниеГраницыБакетов", Имя, Справка, Границы);
37+
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
38+
Опции.Вставить("КонстантныеЛейблы", КонстантныеЛейблы);
39+
КонецЕсли;
40+
41+
Гистограмма = PrometheusMetrics.НоваяГистограмма(Опции);
42+
PrometheusRegistry.ЗарегистрироватьОбязательно(Гистограмма);
43+
44+
Возврат Гистограмма;
45+
КонецФункции
46+
47+
Функция НовоеРезюме(Имя, Справка = "", Квантили = Неопределено, КонстантныеЛейблы = Неопределено) Экспорт
48+
Кв = ?(ТипЗнч(Квантили) = Тип("Массив"), Квантили, Новый Массив);
49+
Опции = Новый Структура("Имя, Справка, Квантили", Имя, Справка, Кв);
50+
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
51+
Опции.Вставить("КонстантныеЛейблы", КонстантныеЛейблы);
52+
КонецЕсли;
53+
54+
Резюме = PrometheusMetrics.НовоеРезюме(Опции);
55+
PrometheusRegistry.ЗарегистрироватьОбязательно(Резюме);
56+
57+
Возврат Резюме;
58+
КонецФункции
59+
60+
// --- Векторы (фабрики с лейблами) ---
61+
3262
Функция НовыйСчетчикВектор(Имя, Справка, ИменаЛейблов, КонстантныеЛейблы = Неопределено) Экспорт
3363
Опции = Новый Структура("Имя, Справка, ИменаПеременныхЛейблов", Имя, Справка, ИменаЛейблов);
3464
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
@@ -85,8 +115,8 @@
85115
Возврат Вектор;
86116
КонецФункции
87117

88-
// --- Экземпляр по лейблам (ниже — для счётчика, индикатора, гистограммы, резюме) ---
89-
// ЗначенияЛейблов: массив значений в порядке имён лейблов или Соответствие (имя → значение).
118+
// --- Экземпляр по лейблам (вектор → счётчик/индикатор/гистограмма/резюме с заданными лейблами) ---
119+
// ЗначенияЛейблов: массив в порядке имён лейблов или Соответствие (имя → значение).
90120

91121
Функция СчетчикСЛейблами(ВекторСчетчика, ЗначенияЛейблов) Экспорт
92122
Возврат PrometheusVec.СчетчикВекторСМетками(ВекторСчетчика, ЗначенияЛейблов);
@@ -104,31 +134,7 @@
104134
Возврат PrometheusVec.РезюмеВекторСМетками(ВекторРезюме, ЗначенияЛейблов);
105135
КонецФункции
106136

107-
Функция НоваяГистограмма(Имя, Справка = "", ВерхниеГраницыБакетов = Неопределено, КонстантныеЛейблы = Неопределено) Экспорт
108-
Границы = ?(ТипЗнч(ВерхниеГраницыБакетов) = Тип("Массив"), ВерхниеГраницыБакетов, Новый Массив);
109-
Опции = Новый Структура("Имя, Справка, ВерхниеГраницыБакетов", Имя, Справка, Границы);
110-
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
111-
Опции.Вставить("КонстантныеЛейблы", КонстантныеЛейблы);
112-
КонецЕсли;
113-
114-
Гистограмма = PrometheusMetrics.НоваяГистограмма(Опции);
115-
PrometheusRegistry.ЗарегистрироватьОбязательно(Гистограмма);
116-
117-
Возврат Гистограмма;
118-
КонецФункции
119-
120-
Функция НовоеРезюме(Имя, Справка = "", Квантили = Неопределено, КонстантныеЛейблы = Неопределено) Экспорт
121-
Кв = ?(ТипЗнч(Квантили) = Тип("Массив"), Квантили, Новый Массив);
122-
Опции = Новый Структура("Имя, Справка, Квантили", Имя, Справка, Кв);
123-
Если ТипЗнч(КонстантныеЛейблы) = Тип("Соответствие") Тогда
124-
Опции.Вставить("КонстантныеЛейблы", КонстантныеЛейблы);
125-
КонецЕсли;
126-
127-
Резюме = PrometheusMetrics.НовоеРезюме(Опции);
128-
PrometheusRegistry.ЗарегистрироватьОбязательно(Резюме);
129-
130-
Возврат Резюме;
131-
КонецФункции
137+
// --- Сбор и экспорт ---
132138

133139
Функция СобратьМетрики(Реестр = Неопределено) Экспорт
134140
Если Реестр = Неопределено Тогда

src/Модули/PrometheusMetrics.os

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,13 @@
221221
Для Каждого Зн Из Резюме.Наблюдения Цикл
222222
Отсортированные.Добавить(Зн);
223223
КонецЦикла;
224+
224225
СписокЗн = Новый СписокЗначений;
225226
СписокЗн.ЗагрузитьЗначения(Отсортированные);
226227
СписокЗн.СортироватьПоЗначению(НаправлениеСортировки.Возр);
227228
Отсортированные = СписокЗн.ВыгрузитьЗначения();
228229
Количество = Отсортированные.Количество();
230+
229231
Для Каждого Квантиль Из Резюме.Квантили Цикл
230232
Лейблы = Новый Соответствие;
231233
Для Каждого КлючИЗначение Из ЛейблыБаз Цикл
@@ -236,6 +238,7 @@
236238
Если Индекс >= Количество Тогда
237239
Индекс = Количество - 1;
238240
КонецЕсли;
241+
239242
Если Индекс < 0 Тогда
240243
Индекс = 0;
241244
КонецЕсли;
@@ -245,11 +248,13 @@
245248
Резюме.Имя, Резюме.Тип, Резюме.Справка, Резюме.Имя, Лейблы, ЗначениеКвантиля, Квантиль);
246249
РезультатСэмплов.Добавить(Сэмпл);
247250
КонецЦикла;
251+
248252
Лейблы = СкопироватьСоответствие(Резюме.КонстантныеЛейблы);
249253
Сэмпл = Новый Структура(
250254
"Имя, Тип, Справка, ИмяСэмпла, Лейблы, Значение",
251255
Резюме.Имя, Резюме.Тип, Резюме.Справка, Резюме.Имя + "_sum", Лейблы, Резюме.Сумма);
252256
РезультатСэмплов.Добавить(Сэмпл);
257+
253258
Сэмпл = Новый Структура(
254259
"Имя, Тип, Справка, ИмяСэмпла, Лейблы, Значение",
255260
Резюме.Имя, Резюме.Тип, Резюме.Справка, Резюме.Имя + "_count", Лейблы, Резюме.Наблюдения.Количество());

src/Модули/PrometheusRegistry.os

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@
3636
Если Сэмпл.Свойство("Квантиль") Тогда
3737
СэмплДляСемейства.Вставить("Квантиль", Сэмпл.Квантиль);
3838
КонецЕсли;
39+
3940
Если Сэмпл.Свойство("ВерхняяГраница") Тогда
4041
СэмплДляСемейства.Вставить("ВерхняяГраница", Сэмпл.ВерхняяГраница);
4142
КонецЕсли;
43+
4244
Семейство.Сэмплы.Добавить(СэмплДляСемейства);
4345
КонецЦикла;
4446

@@ -93,6 +95,7 @@
9395
Иначе
9496
PrometheusMetrics.СобратьКоллектор(Коллектор, РезультатСэмплов);
9597
КонецЕсли;
98+
9699
Семейства = СформироватьСемействаИзСэмплов(РезультатСэмплов);
97100
Для Каждого Семейство Из Семейства Цикл
98101
Результат.Добавить(Семейство);

src/Модули/PrometheusTextFormat.os

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
Если Значение = Неопределено Или ТипЗнч(Значение) <> Тип("Строка") Тогда
2020
Возврат Строка(Значение);
2121
КонецЕсли;
22+
2223
Результат = Значение;
2324
Результат = СтрЗаменить(Результат, "\", "\\");
2425
Результат = СтрЗаменить(Результат, Символ(10), "\n");
@@ -31,11 +32,13 @@
3132
Если Лейблы = Неопределено Или Не ТипЗнч(Лейблы) = Тип("Соответствие") Тогда
3233
Возврат "";
3334
КонецЕсли;
35+
3436
Части = Новый Массив;
3537
Для Каждого КлючИЗначение Из Лейблы Цикл
3638
Экр = ЭкранироватьЗначениеЛейбла(КлючИЗначение.Значение);
3739
Части.Добавить(КлючИЗначение.Ключ + "=""" + Экр + """");
3840
КонецЦикла;
41+
3942
Если Части.Количество() = 0 Тогда
4043
Возврат "";
4144
КонецЕсли;
@@ -58,6 +61,7 @@
5861
Если Значение = Неопределено Тогда
5962
Возврат "0";
6063
КонецЕсли;
64+
6165
Стр = Строка(Значение);
6266
Стр = СтрЗаменить(Стр, ",", ".");
6367

@@ -68,15 +72,18 @@
6872
Если Объект = Неопределено Тогда
6973
Возврат ЗначениеПоУмолчанию;
7074
КонецЕсли;
75+
7176
Если ТипЗнч(Объект) = Тип("Структура") Тогда
7277
Если Объект.Свойство(Ключ) Тогда
7378
Возврат Объект[Ключ];
7479
КонецЕсли;
80+
7581
ИначеЕсли ТипЗнч(Объект) = Тип("Соответствие") Тогда
7682
ЗначениеИзСоответствия = Объект.Получить(Ключ);
7783
Если ЗначениеИзСоответствия <> Неопределено Тогда
7884
Возврат ЗначениеИзСоответствия;
7985
КонецЕсли;
86+
8087
КонецЕсли;
8188

8289
Возврат ЗначениеПоУмолчанию;
@@ -111,22 +118,27 @@
111118
Количество = С;
112119
КонецЕсли;
113120
КонецЦикла;
121+
114122
ЧисловыеГраницы = Новый Массив;
115123
Для Каждого КлючИЗначение Из БакетыЧисла Цикл
116124
ЧисловыеГраницы.Добавить(КлючИЗначение.Ключ);
117125
КонецЦикла;
118126

119127
ЧисловыеГраницы = УпорядочитьМассив(ЧисловыеГраницы);
120128
Результат = Новый Массив;
129+
121130
Для Каждого Гр Из ЧисловыеГраницы Цикл
122131
Результат.Добавить(БакетыЧисла.Получить(Гр));
123132
КонецЦикла;
133+
124134
Если БакетПлюсInf <> Неопределено Тогда
125135
Результат.Добавить(БакетПлюсInf);
126136
КонецЕсли;
137+
127138
Если Сумма <> Неопределено Тогда
128139
Результат.Добавить(Сумма);
129140
КонецЕсли;
141+
130142
Если Количество <> Неопределено Тогда
131143
Результат.Добавить(Количество);
132144
КонецЕсли;
@@ -166,9 +178,11 @@
166178
Для Каждого К Из КвантилиСписок Цикл
167179
Результат.Добавить(К.Сэмпл);
168180
КонецЦикла;
181+
169182
Если Сумма <> Неопределено Тогда
170183
Результат.Добавить(Сумма);
171184
КонецЕсли;
185+
172186
Если Количество <> Неопределено Тогда
173187
Результат.Добавить(Количество);
174188
КонецЕсли;
@@ -181,18 +195,21 @@
181195
Если Семейства = Неопределено Или Не ТипЗнч(Семейства) = Тип("Массив") Тогда
182196
Возврат "";
183197
КонецЕсли;
198+
184199
СоответствиеИмяСемейство = Новый Соответствие;
185200
Для Каждого Семейство Из Семейства Цикл
186201
Имя = ПолучитьЗначение(Семейство, "Имя", "");
187202
СоответствиеИмяСемейство.Вставить(Имя, Семейство);
188203
КонецЦикла;
204+
189205
Имена = Новый Массив;
190206
Для Каждого КлючИЗначение Из СоответствиеИмяСемейство Цикл
191207
Имена.Добавить(КлючИЗначение.Ключ);
192208
КонецЦикла;
193209
Имена = УпорядочитьМассив(Имена);
194210

195211
Строки = Новый Массив;
212+
196213
Для Каждого Имя Из Имена Цикл
197214
Семейство = СоответствиеИмяСемейство.Получить(Имя);
198215
Имя = ПолучитьЗначение(Семейство, "Имя", "");
@@ -202,16 +219,19 @@
202219
Если Не ТипЗнч(Сэмплы) = Тип("Массив") Тогда
203220
Продолжить;
204221
КонецЕсли;
222+
205223
Если ТипМетрики = "histogram" Тогда
206224
Сэмплы = СортироватьСэмплыГистограммы(Сэмплы, Имя);
207225
ИначеЕсли ТипМетрики = "summary" Тогда
208226
Сэмплы = СортироватьСэмплыРезюме(Сэмплы, Имя);
209227
КонецЕсли;
228+
210229
Если Не ПустаяСтрока(Справка) Тогда
211230
СправкаЭкр = СтрЗаменить(Справка, "\", "\\");
212231
СправкаЭкр = СтрЗаменить(СправкаЭкр, Символ(10), "\n");
213232
Строки.Добавить("# HELP " + Имя + " " + СправкаЭкр);
214233
КонецЕсли;
234+
215235
Строки.Добавить("# TYPE " + Имя + " " + ТипМетрики);
216236
Для Каждого Сэмпл Из Сэмплы Цикл
217237
ИмяСэмпла = ПолучитьЗначение(Сэмпл, "ИмяСэмпла", Имя);

src/Модули/PrometheusVec.os

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -88,25 +88,11 @@
8888
Экземпляр = Вектор.Экземпляры.Получить(Ключ);
8989
Если Экземпляр = Неопределено Тогда
9090
Лейблы = СкопироватьСоответствие(Вектор.КонстантныеЛейблы);
91-
ЗначенияОстаток = Новый Массив;
92-
Для ИндЗ = 0 По 127 Цикл
93-
Попытка
94-
ЗначенияОстаток.Добавить(ЗначенияЛейблов[ИндЗ]);
95-
Исключение
96-
Прервать;
97-
КонецПопытки;
98-
КонецЦикла;
99-
Для ИндИмен = 0 По 127 Цикл
100-
Попытка
101-
ИмяЛейбла = Вектор.ИменаПеременныхЛейблов[ИндИмен];
102-
Исключение
103-
Прервать;
104-
КонецПопытки;
105-
ЗначениеЛейбла = "";
106-
Попытка
107-
ЗначениеЛейбла = Строка(ЗначенияОстаток[ИндИмен]);
108-
Исключение
109-
КонецПопытки;
91+
ВерхняяГраницаИмен = Вектор.ИменаПеременныхЛейблов.Количество() - 1;
92+
ВерхняяГраницаЗначений = ЗначенияЛейблов.Количество() - 1;
93+
Для Индекс = 0 По ВерхняяГраницаИмен Цикл
94+
ИмяЛейбла = Вектор.ИменаПеременныхЛейблов[Индекс];
95+
ЗначениеЛейбла = ?(Индекс <= ВерхняяГраницаЗначений, Строка(ЗначенияЛейблов[Индекс]), "");
11096
Лейблы.Вставить(ИмяЛейбла, ЗначениеЛейбла);
11197
КонецЦикла;
11298

@@ -217,6 +203,7 @@
217203
ЗначениеЛейбла = ?(Индекс <= ВерхняяГраницаЗначений, ЗначенияЛейблов[Индекс], "");
218204
Лейблы.Вставить(ИмяЛейбла, ЗначениеЛейбла);
219205
КонецЦикла;
206+
220207
ОпцииЭкз = Новый Структура(
221208
"Имя, Справка, КонстантныеЛейблы, ВерхниеГраницыБакетов",
222209
Вектор.Имя, Вектор.Справка, Лейблы, Вектор.ВерхниеГраницыБакетов);

0 commit comments

Comments
 (0)