├── .bsl-language-server.json ├── .github └── workflows │ └── sonar-scanner.yml ├── .gitignore ├── .project ├── .settings └── org.eclipse.core.resources.prefs ├── DT-INF └── PROJECT.PMF ├── README.md ├── sonar-project.properties └── src ├── Catalogs └── пэмМетрики │ ├── Forms │ ├── ФормаСписка │ │ ├── Attributes │ │ │ └── Список │ │ │ │ └── ExtInfo │ │ │ │ └── ListSettings.dcss │ │ └── Form.form │ └── ФормаЭлемента │ │ ├── Form.form │ │ ├── Help │ │ └── ru.html │ │ └── Module.bsl │ ├── Help │ └── ru.html │ ├── ManagerModule.bsl │ ├── ObjectModule.bsl │ └── пэмМетрики.mdo ├── CommonCommands └── пэмНастройки │ ├── CommandModule.bsl │ └── пэмНастройки.mdo ├── CommonForms └── пэмНастройкиМетрик │ ├── Form.form │ ├── Help │ └── ru.html │ ├── Module.bsl │ └── пэмНастройкиМетрик.mdo ├── CommonModules ├── пэмМетрикиВызовСервера │ ├── Module.bsl │ └── пэмМетрикиВызовСервера.mdo ├── пэмМетрикиКлиент │ ├── Module.bsl │ └── пэмМетрикиКлиент.mdo ├── пэмМетрикиСервер │ ├── Module.bsl │ └── пэмМетрикиСервер.mdo └── пэмМетрикиСерверПовтИсп │ ├── Module.bsl │ └── пэмМетрикиСерверПовтИсп.mdo ├── CommonPictures ├── пэмPrometheusLogo │ ├── Picture.png │ └── пэмPrometheusLogo.mdo ├── пэмPullGreen │ ├── Picture.png │ └── пэмPullGreen.mdo ├── пэмPullRed │ ├── Picture.png │ └── пэмPullRed.mdo ├── пэмPushGreen │ ├── Picture.png │ └── пэмPushGreen.mdo └── пэмPushRed │ ├── Picture.png │ └── пэмPushRed.mdo ├── Configuration └── Configuration.mdo ├── Constants ├── пэмАдресСервераPushgateway │ └── пэмАдресСервераPushgateway.mdo ├── пэмИспользоватьPushgateway │ └── пэмИспользоватьPushgateway.mdo ├── пэмМногопоточныйРасчетМетрик │ └── пэмМногопоточныйРасчетМетрик.mdo ├── пэмПервоначальноеЗаполнениеВыполнено │ └── пэмПервоначальноеЗаполнениеВыполнено.mdo ├── пэмПортСервераPushgateway │ └── пэмПортСервераPushgateway.mdo └── пэмПутьНаСервереPushgateway │ └── пэмПутьНаСервереPushgateway.mdo ├── Enums ├── пэмМетодыПолученияМетрик │ └── пэмМетодыПолученияМетрик.mdo └── пэмТипыМетрик │ └── пэмТипыМетрик.mdo ├── HTTPServices └── Prometheus │ ├── Module.bsl │ └── Prometheus.mdo ├── InformationRegisters └── пэмСостояниеМетрик │ ├── ManagerModule.bsl │ └── пэмСостояниеМетрик.mdo ├── Reports └── пэмСостояниеМетрик │ ├── Templates │ └── MainDataCompositionSchema │ │ └── Template.dcs │ └── пэмСостояниеМетрик.mdo ├── Roles ├── пэмНастройкаМетрик │ ├── Rights.rights │ └── пэмНастройкаМетрик.mdo └── пэмПолучениеМетрик │ ├── Rights.rights │ └── пэмПолучениеМетрик.mdo ├── ScheduledJobs ├── пэмВыполнитьРасчетМетрик │ ├── Schedule.schedule │ └── пэмВыполнитьРасчетМетрик.mdo └── пэмРегламентныеОперации │ ├── Schedule.schedule │ └── пэмРегламентныеОперации.mdo └── Subsystems └── Prometheus ├── CommandInterface.cmi └── Prometheus.mdo /.bsl-language-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/1c-syntax/bsl-language-server/master/src/main/resources/com/github/_1c_syntax/bsl/languageserver/configuration/schema.json", 3 | "diagnostics": { 4 | "computeTrigger": "onType", 5 | "parameters": { 6 | "Typo": { 7 | "minWordLength": 4, 8 | "userWordsToIgnore": "Выводитель" 9 | }, 10 | "LineLength": { 11 | "maxLineLength": 140 12 | }, 13 | "ConsecutiveEmptyLines": { 14 | "allowedEmptyLinesCount": 2 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.github/workflows/sonar-scanner.yml: -------------------------------------------------------------------------------- 1 | name: sonar-scanner 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | push: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | SonarScanner: 13 | if: github.repository == 'freewms/PDE' 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v1 18 | with: 19 | fetch-depth: 0 20 | - name: Configure env vars for SonarCloud scan 21 | env: 22 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true 23 | run: | 24 | echo "::set-env name=PATH::/opt/sonar-scanner/bin:$PATH" 25 | 26 | - name: Compute branch name 27 | env: 28 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true 29 | uses: nixel2007/branch-name@v3 30 | 31 | - name: Извлечение версии 32 | shell: bash 33 | run: echo "##[set-output name=version;]` cat ./src/Configuration/Configuration.mdo | grep -oP '(?<=).*(?=)'`" 34 | id: extract_version 35 | 36 | - name: SonarCloud Scan on push 37 | if: github.event_name == 'push' 38 | uses: nixel2007/sonarcloud-github-action@v1.4 39 | env: 40 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true 41 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 42 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 43 | with: 44 | args: > 45 | -Dsonar.host.url=https://sonar.openbsl.ru 46 | -Dsonar.branch.name=${{ env.BRANCH_NAME }} 47 | -Dsonar.projectVersion=${{ steps.extract_version.outputs.version }} 48 | 49 | - name: SonarCloud Scan on PR 50 | if: github.event_name == 'pull_request' 51 | uses: nixel2007/sonarcloud-github-action@v1.4 52 | env: 53 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true 54 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 55 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 56 | with: 57 | args: > 58 | -Dsonar.host.url=https://sonar.openbsl.ru 59 | -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} 60 | -Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }} 61 | -Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }} 62 | -Dsonar.scm.revision=${{ github.event.pull_request.head.sha }} 63 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .scannerwork/ 3 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | PDE 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.xtext.ui.shared.xtextBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.xtext.ui.shared.xtextNature 16 | com._1c.g5.v8.dt.core.V8ConfigurationNature 17 | 18 | 19 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /DT-INF/PROJECT.PMF: -------------------------------------------------------------------------------- 1 | Runtime-Version: 8.3.16 2 | Manifest-Version: 1.0 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Prometheus data exporter (PDE) 2 | 3 | [![Quality Gate Status](https://sonar.openbsl.ru/api/project_badges/measure?project=PDE&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=PDE) 4 | [![Reliability Rating](https://sonar.openbsl.ru/api/project_badges/measure?project=PDE&metric=reliability_rating)](https://sonar.openbsl.ru/dashboard?id=PDE) 5 | [![Security Rating](https://sonar.openbsl.ru/api/project_badges/measure?project=PDE&metric=security_rating)](https://sonar.openbsl.ru/dashboard?id=PDE) 6 | [![Stars](https://img.shields.io/github/stars/freewms/PDE.svg?label=Github%20%E2%98%85&a)](https://github.com/freewms/PDE/stargazers) 7 | [![Release](https://img.shields.io/github/tag/freewms/PDE.svg?label=Last%20release&a)](https://github.com/freewms/PDE/releases) 8 | [![Downloads](https://img.shields.io/github/downloads/freewms/PDE/total)](https://github.com/freewms/PDE/releases) 9 | 10 | Встраиваемая конфигурация на платформе "1С:Предприятия" для сбора и передачи метрик в систему мониторинга "Prometheus" 11 | 12 | ## Описание 13 | 14 | Статья на [Инфостарт](https://infostart.ru/public/811821/) 15 | 16 | ## Настройка 17 | 18 | Добавление цели для Prometheus. Пути указаны для ОС Debian. 19 | 20 | ### При наличии авторизации на стороне 1С 21 | 22 | ```bash 23 | cat >> /etc/prometheus/prometheus.yml <> /etc/prometheus/prometheus.yml < 2 | 3 | 4 | Normal 5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb 6 | 7 | 8 | Normal 9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4 10 | 11 | 12 | Normal 13 | b75fecce-942b-4aed-abc9-e6a02e460fb3 14 | 15 | Normal 16 | 911b6018-f537-43e8-a417-da56b22f9aec 17 | 18 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/Forms/ФормаСписка/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | СписокКомпоновщикНастроекПользовательскиеНастройки 5 | 1 6 | true 7 | true 8 | 9 | true 10 | 11 | 12 | <key>ru</key> 13 | <value>User settings group</value> 14 | 15 | false 16 | 17 | СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка 18 | 2 19 | true 20 | true 21 | 22 | true 23 | 24 | Label 25 | true 26 | true 27 | 28 | Left 29 | 30 | 31 | UsualGroup 32 | 33 | Vertical 34 | WeakSeparation 35 | true 36 | true 37 | Auto 38 | Auto 39 | 40 | 41 | 42 | Список 43 | 3 44 | true 45 | true 46 | 47 | true 48 | 49 | 50 | Список 51 | 52 | true 53 | None 54 | 55 | Активность 56 | 25 57 | true 58 | true 59 | 60 | true 61 | 62 | 63 | 64 | Список.Активность 65 | 66 | 67 | 68 | АктивностьРасширеннаяПодсказка 69 | 27 70 | true 71 | true 72 | 73 | true 74 | 75 | Label 76 | true 77 | true 78 | 79 | Left 80 | 81 | 82 | 83 | АктивностьКонтекстноеМеню 84 | 26 85 | true 86 | true 87 | 88 | true 89 | 90 | true 91 | 92 | CheckBoxField 93 | Enter 94 | true 95 | Left 96 | true 97 | 98 | 99 | 100 | Наименование 101 | 19 102 | 103 | <key>ru</key> 104 | <value>Наименование</value> 105 | 106 | true 107 | true 108 | 109 | true 110 | 111 | 112 | 113 | Список.Description 114 | 115 | 116 | 117 | НаименованиеРасширеннаяПодсказка 118 | 21 119 | true 120 | true 121 | 122 | true 123 | 124 | Label 125 | true 126 | true 127 | 128 | Left 129 | 130 | 131 | 132 | НаименованиеКонтекстноеМеню 133 | 20 134 | true 135 | true 136 | 137 | true 138 | 139 | true 140 | 141 | LabelField 142 | Enter 143 | true 144 | Left 145 | true 146 | 147 | true 148 | true 149 | 150 | 151 | 152 | ТипМетрики 153 | 31 154 | 155 | <key>ru</key> 156 | <value>Тип</value> 157 | 158 | true 159 | true 160 | 161 | true 162 | 163 | 164 | 165 | Список.ТипМетрики 166 | 167 | 168 | 169 | ТипМетрикиРасширеннаяПодсказка 170 | 33 171 | true 172 | true 173 | 174 | true 175 | 176 | Label 177 | true 178 | true 179 | 180 | Left 181 | 182 | 183 | 184 | ТипМетрикиКонтекстноеМеню 185 | 32 186 | true 187 | true 188 | 189 | true 190 | 191 | true 192 | 193 | InputField 194 | Enter 195 | true 196 | Left 197 | true 198 | 199 | true 200 | true 201 | true 202 | true 203 | true 204 | true 205 | 206 | 207 | 208 | МетодПолученияМетрики 209 | 28 210 | 211 | <key>ru</key> 212 | <value>Метод</value> 213 | 214 | true 215 | true 216 | 217 | true 218 | 219 | 220 | 221 | Список.МетодПолученияМетрики 222 | 223 | 224 | 225 | МетодПолученияМетрикиРасширеннаяПодсказка 226 | 30 227 | true 228 | true 229 | 230 | true 231 | 232 | Label 233 | true 234 | true 235 | 236 | Left 237 | 238 | 239 | 240 | МетодПолученияМетрикиКонтекстноеМеню 241 | 29 242 | true 243 | true 244 | 245 | true 246 | 247 | true 248 | 249 | InputField 250 | Enter 251 | true 252 | Left 253 | true 254 | 255 | true 256 | true 257 | true 258 | true 259 | true 260 | true 261 | 262 | 263 | 264 | Ссылка 265 | 22 266 | true 267 | true 268 | 269 | 270 | Role.пэмНастройкаМетрик 271 | 272 | 273 | Role.пэмПолучениеМетрик 274 | 275 | 276 | 277 | 278 | Список.Ref 279 | 280 | 281 | 282 | СсылкаРасширеннаяПодсказка 283 | 24 284 | true 285 | true 286 | 287 | true 288 | 289 | Label 290 | true 291 | true 292 | 293 | Left 294 | 295 | 296 | 297 | СсылкаКонтекстноеМеню 298 | 23 299 | true 300 | true 301 | 302 | true 303 | 304 | true 305 | 306 | InputField 307 | Enter 308 | true 309 | Left 310 | true 311 | 312 | true 313 | true 314 | true 315 | true 316 | true 317 | true 318 | 319 | 320 | None 321 | 322 | СписокКоманднаяПанель 323 | 5 324 | true 325 | true 326 | 327 | true 328 | 329 | Left 330 | 331 | 332 | true 333 | true 334 | 335 | true 336 | 337 | СписокСтрокаПоиска 338 | 7 339 | 340 | СписокСтрокаПоискаРасширеннаяПодсказка 341 | 9 342 | true 343 | true 344 | 345 | true 346 | 347 | Label 348 | true 349 | true 350 | 351 | Left 352 | 353 | 354 | 355 | СписокСтрокаПоискаКонтекстноеМеню 356 | 8 357 | true 358 | true 359 | 360 | true 361 | 362 | true 363 | 364 | 365 | true 366 | 367 | 368 | 369 | true 370 | true 371 | 372 | true 373 | 374 | СписокСостояниеПросмотра 375 | 10 376 | 377 | СписокСостояниеПросмотраРасширеннаяПодсказка 378 | 12 379 | true 380 | true 381 | 382 | true 383 | 384 | Label 385 | true 386 | true 387 | 388 | Left 389 | 390 | 391 | 392 | СписокСостояниеПросмотраКонтекстноеМеню 393 | 11 394 | true 395 | true 396 | 397 | true 398 | 399 | true 400 | 401 | ViewStatusAddition 402 | 403 | true 404 | Left 405 | 406 | 407 | 408 | true 409 | true 410 | 411 | true 412 | 413 | СписокУправлениеПоиском 414 | 13 415 | 416 | СписокУправлениеПоискомРасширеннаяПодсказка 417 | 15 418 | true 419 | true 420 | 421 | true 422 | 423 | Label 424 | true 425 | true 426 | 427 | Left 428 | 429 | 430 | 431 | СписокУправлениеПоискомКонтекстноеМеню 432 | 14 433 | true 434 | true 435 | 436 | true 437 | 438 | true 439 | 440 | SearchControlAddition 441 | 442 | true 443 | 444 | 445 | 446 | СписокРасширеннаяПодсказка 447 | 6 448 | true 449 | true 450 | 451 | true 452 | 453 | Label 454 | true 455 | true 456 | 457 | Left 458 | 459 | 460 | 461 | СписокКонтекстноеМеню 462 | 4 463 | true 464 | true 465 | 466 | true 467 | 468 | true 469 | 470 | HierarchicalList 471 | true 472 | true 473 | true 474 | true 475 | true 476 | MultiRow 477 |
true
478 | 1 479 | 1 480 | AutoUse 481 | AutoUse 482 | true 483 | true 484 | true 485 | Auto 486 | Auto 487 | true 488 | true 489 | true 490 | true 491 | 492 | Список.DefaultPicture 493 | 494 | 495 | 60 496 | 497 | 0001-01-01T00:00:00 498 | 0001-01-01T00:00:00 499 | 500 | 501 | true 502 | СписокКомпоновщикНастроекПользовательскиеНастройки 503 | 504 |
505 | 506 | ФормаКоманднаяПанель 507 | -1 508 | true 509 | true 510 | 511 | true 512 | 513 | Left 514 | true 515 | 516 | true 517 | true 518 | Vertical 519 | true 520 | true 521 | true 522 | true 523 | true 524 | 525 | Список 526 | 1 527 | 528 | DynamicList 529 | 530 | 531 | true 532 | 533 | 534 | true 535 | 536 |
true
537 | 538 | Catalog.пэмМетрики 539 | true 540 | true 541 | true 542 | true 543 | 544 |
545 | 546 | 547 | 548 | 549 | 550 |
551 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/Forms/ФормаЭлемента/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ГруппаШапка 5 | 17 6 | 7 | ГруппаОсновное 8 | 47 9 | 10 | Код 11 | 39 12 | 13 | <key>ru</key> 14 | <value>Имя метрики</value> 15 | 16 | true 17 | true 18 | 19 | true 20 | 21 | 22 | 23 | Объект.Code 24 | 25 | 26 | 27 | КодРасширеннаяПодсказка 28 | 41 29 | true 30 | true 31 | 32 | true 33 | 34 | Label 35 | true 36 | true 37 | 38 | Left 39 | 40 | 41 | 42 | КодКонтекстноеМеню 43 | 40 44 | true 45 | true 46 | 47 | true 48 | 49 | true 50 | 51 | InputField 52 | Enter 53 | true 54 | Left 55 | true 56 | 57 | true 58 | true 59 | true 60 | true 61 | true 62 | 63 | 64 | 65 | Активность 66 | 25 67 | true 68 | true 69 | 70 | true 71 | 72 | 73 | 74 | Объект.Активность 75 | 76 | 77 | Right 78 | 79 | OnChange 80 | АктивностьПриИзменении 81 | 82 | 83 | АктивностьРасширеннаяПодсказка 84 | 27 85 | true 86 | true 87 | 88 | true 89 | 90 | Label 91 | true 92 | true 93 | 94 | Left 95 | 96 | 97 | 98 | АктивностьКонтекстноеМеню 99 | 26 100 | true 101 | true 102 | 103 | true 104 | 105 | true 106 | 107 | CheckBoxField 108 | Enter 109 | true 110 | Left 111 | true 112 | 113 | 114 | true 115 | true 116 | 117 | true 118 | 119 | 120 | ГруппаОсновноеРасширеннаяПодсказка 121 | 48 122 | true 123 | true 124 | 125 | true 126 | 127 | Label 128 | true 129 | true 130 | 131 | Left 132 | 133 | 134 | UsualGroup 135 | 136 | HorizontalIfPossible 137 | true 138 | true 139 | Auto 140 | Auto 141 | 142 | 143 | 144 | ГруппаШапкаОписание 145 | 60 146 | 147 | Наименование 148 | 4 149 | true 150 | true 151 | 152 | true 153 | 154 | 155 | 156 | Объект.Description 157 | 158 | 159 | 160 | НаименованиеРасширеннаяПодсказка 161 | 6 162 | true 163 | true 164 | 165 | true 166 | 167 | Label 168 | true 169 | true 170 | 171 | Left 172 | 173 | 174 | 175 | НаименованиеКонтекстноеМеню 176 | 5 177 | true 178 | true 179 | 180 | true 181 | 182 | true 183 | 184 | InputField 185 | EnterOnInput 186 | true 187 | Left 188 | true 189 | 190 | true 191 | true 192 | true 193 | true 194 | true 195 | 196 | 197 | 198 | ТипМетрики 199 | 7 200 | 201 | <key>ru</key> 202 | <value>Тип</value> 203 | 204 | true 205 | true 206 | 207 | true 208 | 209 | 210 | 211 | Объект.ТипМетрики 212 | 213 | 214 | 215 | ТипМетрикиРасширеннаяПодсказка 216 | 9 217 | true 218 | true 219 | 220 | true 221 | 222 | Label 223 | true 224 | true 225 | 226 | Left 227 | 228 | 229 | 230 | ТипМетрикиКонтекстноеМеню 231 | 8 232 | true 233 | true 234 | 235 | true 236 | 237 | true 238 | 239 | InputField 240 | EnterOnInput 241 | true 242 | Left 243 | true 244 | 245 | true 246 | true 247 | true 248 | true 249 | true 250 | 251 | 252 | 253 | ГруппаШапкаМетод 254 | 49 255 | 256 | МетодПолученияМетрики 257 | 19 258 | 259 | <key>ru</key> 260 | <value>Метод</value> 261 | 262 | true 263 | true 264 | 265 | true 266 | 267 | 268 | 269 | Объект.МетодПолученияМетрики 270 | 271 | 272 | 273 | OnChange 274 | МетодПолученияМетрикиПриИзменении 275 | 276 | 277 | МетодПолученияМетрикиРасширеннаяПодсказка 278 | 21 279 | true 280 | true 281 | 282 | true 283 | 284 | Label 285 | true 286 | true 287 | 288 | Left 289 | 290 | 291 | 292 | МетодПолученияМетрикиКонтекстноеМеню 293 | 20 294 | true 295 | true 296 | 297 | true 298 | 299 | true 300 | 301 | InputField 302 | Enter 303 | true 304 | Left 305 | true 306 | 307 | true 308 | true 309 | true 310 | true 311 | true 312 | 313 | 314 | 315 | ПерсональноеРасписание 316 | 57 317 | true 318 | true 319 | 320 | true 321 | 322 | 323 | 324 | ПерсональноеРасписание 325 | 326 | 327 | Right 328 | 329 | OnChange 330 | ПерсональноеРасписаниеПриИзменении 331 | 332 | 333 | ПерсональноеРасписаниеРасширеннаяПодсказка 334 | 59 335 | true 336 | true 337 | 338 | true 339 | 340 | Label 341 | true 342 | true 343 | 344 | Left 345 | 346 | 347 | 348 | ПерсональноеРасписаниеКонтекстноеМеню 349 | 58 350 | true 351 | true 352 | 353 | true 354 | 355 | true 356 | 357 | CheckBoxField 358 | Enter 359 | true 360 | Left 361 | true 362 | 363 | 364 | true 365 | true 366 | 367 | true 368 | 369 | true 370 | Left 371 | 372 | ГруппаШапкаМетодРасширеннаяПодсказка 373 | 50 374 | true 375 | true 376 | 377 | true 378 | 379 | Label 380 | true 381 | true 382 | 383 | Left 384 | 385 | 386 | UsualGroup 387 | 388 | AlwaysHorizontal 389 | NormalSeparation 390 | true 391 | true 392 | Auto 393 | 394 | 395 | true 396 | true 397 | 398 | true 399 | 400 | 401 | ГруппаШапкаОписаниеРасширеннаяПодсказка 402 | 61 403 | true 404 | true 405 | 406 | true 407 | 408 | Label 409 | true 410 | true 411 | 412 | Left 413 | 414 | 415 | UsualGroup 416 | 417 | Vertical 418 | true 419 | true 420 | Auto 421 | 422 | 423 | 424 | ГруппаШапкаСостояние 425 | 71 426 | 427 | СостояниеМетодаДоставки 428 | 68 429 | 430 | <key>ru</key> 431 | <value>Состояние метода доставки</value> 432 | 433 | true 434 | true 435 | 436 | true 437 | 438 | 439 | СостояниеМетодаДоставкиРасширеннаяПодсказка 440 | 70 441 | true 442 | true 443 | 444 | true 445 | 446 | Label 447 | true 448 | true 449 | 450 | Left 451 | 452 | 453 | 454 | СостояниеМетодаДоставкиКонтекстноеМеню 455 | 69 456 | true 457 | true 458 | 459 | true 460 | 461 | true 462 | 463 | 9 464 | 2 465 | true 466 | 467 | Proportionally 468 | AsFileRef 469 | 470 | 471 | 472 | ОписаниеМетодаДоставкиМетрики 473 | 44 474 | 475 | <key>ru</key> 476 | <value>Описание метода доставки метрики</value> 477 | 478 | true 479 | true 480 | 481 | true 482 | 483 | 484 | ОписаниеМетодаДоставкиМетрикиРасширеннаяПодсказка 485 | 46 486 | true 487 | true 488 | 489 | true 490 | 491 | Label 492 | true 493 | true 494 | 495 | Left 496 | 497 | 498 | 499 | ОписаниеМетодаДоставкиМетрикиКонтекстноеМеню 500 | 45 501 | true 502 | true 503 | 504 | true 505 | 506 | true 507 | 508 | Label 509 | true 510 | true 511 | true 512 | Center 513 | 514 | 515 | Click 516 | ОписаниеМетодаДоставкиМетрикиНажатие 517 | 518 | true 519 | Left 520 | 521 | 522 | true 523 | true 524 | 525 | true 526 | 527 | true 528 | 529 | ГруппаШапкаСостояниеРасширеннаяПодсказка 530 | 72 531 | true 532 | true 533 | 534 | true 535 | 536 | Label 537 | true 538 | true 539 | 540 | Left 541 | 542 | 543 | UsualGroup 544 | 545 | AlwaysHorizontal 546 | true 547 | true 548 | Auto 549 | Auto 550 | 551 | 552 | true 553 | true 554 | 555 | true 556 | 557 | 558 | ГруппаШапкаРасширеннаяПодсказка 559 | 18 560 | true 561 | true 562 | 563 | true 564 | 565 | Label 566 | true 567 | true 568 | 569 | Left 570 | 571 | 572 | UsualGroup 573 | 574 | Vertical 575 | true 576 | true 577 | Auto 578 | Auto 579 | 580 | 581 | 582 | Алгоритм 583 | 33 584 | true 585 | true 586 | 587 | true 588 | 589 | 590 | 591 | Объект.Алгоритм 592 | 593 | 594 | None 595 | 596 | АлгоритмРасширеннаяПодсказка 597 | 35 598 | true 599 | true 600 | 601 | true 602 | 603 | Label 604 | true 605 | true 606 | 607 | Left 608 | 609 | 610 | 611 | АлгоритмКонтекстноеМеню 612 | 34 613 | true 614 | true 615 | 616 | true 617 | 618 | true 619 | 620 | InputField 621 | Enter 622 | true 623 | Left 624 | true 625 | 626 | true 627 | true 628 | true 629 | true 630 | true 631 | true 632 | true 633 | 634 | 635 | 636 | ФормаКоманднаяПанель 637 | -1 638 | 639 | ФормаВыполнитьПроверкуАлгоритма 640 | 42 641 | 642 | <key>ru</key> 643 | <value>Проверить алгоритм</value> 644 | 645 | true 646 | true 647 | 648 | true 649 | 650 | 651 | ФормаВыполнитьПроверкуАлгоритмаРасширеннаяПодсказка 652 | 43 653 | true 654 | true 655 | 656 | true 657 | 658 | Label 659 | true 660 | true 661 | 662 | Left 663 | 664 | 665 | Form.Command.ВыполнитьПроверкуАлгоритма 666 | Auto 667 | true 668 | true 669 | UserCmds 670 | Auto 671 | 672 | true 673 | true 674 | 675 | true 676 | 677 | Left 678 | true 679 | 680 | 681 | OnOpen 682 | ПриОткрытии 683 | 684 | 685 | OnCreateAtServer 686 | ПриСозданииНаСервере 687 | 688 | 689 | FillCheckProcessingAtServer 690 | ОбработкаПроверкиЗаполненияНаСервере 691 | 692 | LockOwnerWindow 693 | true 694 | true 695 | Vertical 696 | true 697 | true 698 | true 699 | true 700 | true 701 | 702 | Объект 703 | 1 704 | 705 | CatalogObject.пэмМетрики 706 | 707 | 708 | true 709 | 710 | 711 | true 712 | 713 |
true
714 | true 715 |
716 | 717 | ПредставлениеРасписания 718 | 719 | <key>ru</key> 720 | <value>Представление расписания</value> 721 | 722 | 3 723 | 724 | String 725 | 726 | 727 | 728 | true 729 | 730 | 731 | true 732 | 733 | 734 | 735 | ПерсональноеРасписание 736 | 737 | <key>ru</key> 738 | <value>Персональное расписание</value> 739 | 740 | 5 741 | 742 | Boolean 743 | 744 | 745 | true 746 | 747 | 748 | true 749 | 750 | 751 | 752 | ПараметрыРегламентногоЗадания 753 | 754 | <key>ru</key> 755 | <value>Параметры регламентного задания</value> 756 | 757 | 4 758 | 759 | 760 | true 761 | 762 | 763 | true 764 | 765 | 766 | 767 | ВыполнитьПроверкуАлгоритма 768 | 769 | <key>ru</key> 770 | <value>Выполнить проверку алгоритма</value> 771 | 772 | 1 773 | 774 | ru 775 | Выполнить проверку алгоритма 776 | 777 | 778 | true 779 | 780 | 781 | 782 | ВыполнитьПроверкуАлгоритма 783 | 784 | 785 | Auto 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | BeforeWriteAtServer 794 | ПередЗаписьюНаСервере 795 | 796 | 797 |
798 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/Forms/ФормаЭлемента/Help/ru.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/Forms/ФормаЭлемента/Module.bsl: -------------------------------------------------------------------------------- 1 | &НаКлиенте 2 | Процедура МетодПолученияМетрикиПриИзменении(Элемент) 3 | 4 | ПерсональноеРасписание = Ложь; 5 | ПараметрыРегламентногоЗадания.Предопределенное = НЕ ПерсональноеРасписание; 6 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 7 | 8 | КонецПроцедуры 9 | 10 | &НаСервере 11 | Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) 12 | 13 | МаскаИмениМетрики = "[a-zA-Z_:][a-zA-Z0-9_:]*"; 14 | 15 | Результат = пэмМетрикиСервер.ПроверитьСтрокуНаСоответствиеМаске(Объект.Код, МаскаИмениМетрики); 16 | Если Результат.ЕстьОшибка Тогда 17 | Отказ = Истина; 18 | Сообщить("Имя метрики не соответствует маске: " + МаскаИмениМетрики); 19 | КонецЕсли; 20 | 21 | КонецПроцедуры 22 | 23 | &НаКлиенте 24 | Процедура ПерсональноеРасписаниеПриИзменении(Элемент) 25 | 26 | ПараметрыРегламентногоЗадания.Предопределенное = НЕ ПерсональноеРасписание; 27 | Если ПерсональноеРасписание Тогда 28 | ПараметрыРегламентногоЗадания.Использование = Истина; 29 | КонецЕсли; 30 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 31 | 32 | КонецПроцедуры 33 | 34 | &НаСервере 35 | Процедура ВыполнитьПроверкуАлгоритмаРасчетаНаСервере() 36 | 37 | Если Модифицированность ИЛИ НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда 38 | Сообщить("Перед выполнением проверки объект необходимо записать."); 39 | Возврат; 40 | КонецЕсли; 41 | 42 | сткВозврат = пэмМетрикиСервер.СформироватьМетрику(Объект.Алгоритм); 43 | Если сткВозврат.Ошибка Тогда 44 | 45 | Сообщить("Процесс проверки расчета завершен с ошибкой на этапе расчета. 46 | |Описание ошибки: 47 | |" + сткВозврат.ОписаниеОшибки); 48 | 49 | Возврат; 50 | 51 | КонецЕсли; 52 | 53 | сткВозврат = пэмМетрикиСервер.ПривестиТаблицуРасчетаМетрикиКСтрокеPrometheus( 54 | Объект.Код, 55 | Объект.ТипМетрики, 56 | сткВозврат.МетрикаТаблицей); 57 | 58 | Если сткВозврат.Ошибка Тогда 59 | 60 | Шаблон = "Процесс проверки расчета завершен с ошибкой на этапе преобразования. 61 | |Итоговая метрика: 62 | |%1 63 | |Описание ошибки: 64 | |%2 "; 65 | 66 | Сообщить(СтрШаблон(Шаблон, сткВозврат.МетрикаСтрокой, сткВозврат.ОписаниеОшибки)); 67 | 68 | Возврат; 69 | 70 | КонецЕсли; 71 | 72 | Сообщить("Проверка алгоритма расчета завершена. 73 | |Итоговая метрика: 74 | |" + сткВозврат.МетрикаСтрокой); 75 | 76 | КонецПроцедуры 77 | 78 | &НаКлиенте 79 | Процедура ВыполнитьПроверкуАлгоритма(Команда) 80 | 81 | ВыполнитьПроверкуАлгоритмаРасчетаНаСервере(); 82 | 83 | КонецПроцедуры 84 | 85 | &НаКлиенте 86 | Процедура ПриОткрытии(Отказ) 87 | 88 | Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда 89 | 90 | Объект.Алгоритм = " 91 | |// В результате работы алгоритма должна получиться таблица значений с именем ""ТаблицаЗначений"" 92 | |// Обязательным является наличие колонки ""value"" 93 | |// В случае необходимости можно добавить дополнительные колонки, выполняющие фунции разделителей метрик 94 | |// Имена колонок должны состоять только из латинских символов 95 | |// Тип содержимого колонки ""value"" - ""Число"" 96 | |// Тип содержимого остальных колонок - ""Строка"" 97 | | 98 | |// Пример: | 99 | |ТаблицаЗначений = Новый ТаблицаЗначений; 100 | |ТаблицаЗначений.Колонки.Добавить(""label"", Новый ОписаниеТипов(""Строка"")); 101 | |ТаблицаЗначений.Колонки.Добавить(""value"", Новый ОписаниеТипов(""Число"")); 102 | | 103 | |ГСЧ = Новый ГенераторСлучайныхЧисел(); 104 | | 105 | |НоваяСтрока = ТаблицаЗначений.добавить(); 106 | |НоваяСтрока.label = ""Показатель_1""; 107 | |НоваяСтрока.value = ГСЧ.СлучайноеЧисло(0,100); 108 | | 109 | |НоваяСтрока = ТаблицаЗначений.добавить(); 110 | |НоваяСтрока.label = ""Показатель_2""; 111 | |НоваяСтрока.value = ГСЧ.СлучайноеЧисло(0,50);"; 112 | 113 | КонецЕсли; 114 | 115 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 116 | 117 | КонецПроцедуры 118 | 119 | &НаКлиенте 120 | Процедура ОбновитьСостояниеФормы() Экспорт 121 | 122 | КартинкаСостояниеМетодаДоставки = БиблиотекаКартинок.пэмPullRed; 123 | ПерсональноеРасписание = НЕ ПараметрыРегламентногоЗадания.Предопределенное; 124 | 125 | Если Объект.МетодПолученияМетрики = ПредопределенноеЗначение("Перечисление.пэмМетодыПолученияМетрик.Pull") Тогда 126 | Если Объект.Активность Тогда 127 | КартинкаСостояниеМетодаДоставки = БиблиотекаКартинок.пэмPullGreen; 128 | Иначе 129 | КартинкаСостояниеМетодаДоставки = БиблиотекаКартинок.пэмPullRed; 130 | КонецЕсли; 131 | ДоступенВыборПерсональногоРасписания = Ложь; 132 | ПредставлениеРасписания = НСтр("ru = 'Расписание доставки определяется настройками Prometheus'"); 133 | Иначе 134 | Если Объект.Активность 135 | И ПараметрыРегламентногоЗадания.Использование 136 | И пэмМетрикиВызовСервера.РазрешеноИспользованиеМетодаPush() Тогда 137 | КартинкаСостояниеМетодаДоставки = БиблиотекаКартинок.пэмPushGreen; 138 | Иначе 139 | КартинкаСостояниеМетодаДоставки = БиблиотекаКартинок.пэмPushRed; 140 | КонецЕсли; 141 | ПредставлениеРасписания = пэмМетрикиКлиент.ПолучитьПредставлениеРасписания(ПараметрыРегламентногоЗадания); 142 | ДоступенВыборПерсональногоРасписания = Истина; 143 | КонецЕсли; 144 | 145 | Элементы.ОписаниеМетодаДоставкиМетрики.Заголовок = ПредставлениеРасписания; 146 | Элементы.ПерсональноеРасписание.Доступность = ДоступенВыборПерсональногоРасписания; 147 | Элементы.СостояниеМетодаДоставки.Картинка = КартинкаСостояниеМетодаДоставки; 148 | 149 | КонецПроцедуры 150 | 151 | &НаКлиенте 152 | Процедура ОписаниеМетодаДоставкиМетрикиНажатие(Элемент) 153 | 154 | Если ПараметрыРегламентногоЗадания.Предопределенное Тогда 155 | ОткрытьФорму("ОбщаяФорма.пэмНастройкиМетрик"); 156 | Иначе 157 | пэмМетрикиКлиент.ОбработатьИзменениеРасписания(ПараметрыРегламентногоЗадания, ЭтотОбъект); 158 | КонецЕсли; 159 | 160 | КонецПроцедуры 161 | 162 | &НаКлиенте 163 | Процедура АктивностьПриИзменении(Элемент) 164 | 165 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 166 | 167 | КонецПроцедуры 168 | 169 | &НаСервере 170 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 171 | 172 | ПараметрыРегламентногоЗадания = пэмМетрикиСервер.ПолучитьПараметрыРегламентногоЗадания(Объект.ИдентификаторРегламента); 173 | 174 | КонецПроцедуры 175 | 176 | &НаСервере 177 | Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) 178 | 179 | Если ПараметрыРегламентногоЗадания.Предопределенное Тогда 180 | ПараметрыРегламентногоЗадания.Наименование = Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик.Наименование; 181 | ПараметрыРегламентногоЗадания.Ключ = Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик.Ключ; 182 | ПараметрыРегламентногоЗадания.Параметры = Неопределено; 183 | Иначе 184 | НаименованиеРегламента = Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик.Наименование; 185 | НаименованиеРегламента = СтрЗаменить(НаименованиеРегламента, "(Общий регламент)", "(Метрика: " + ТекущийОбъект.Код + ")"); 186 | ПараметрыРегламентногоЗадания.Наименование = НаименованиеРегламента; 187 | 188 | КлючРегламента = Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик.Ключ + " " + ТекущийОбъект.Код; 189 | ПараметрыРегламентногоЗадания.Ключ = КлючРегламента; 190 | 191 | ПараметрыРегламента = Новый Массив; 192 | ПараметрыРегламента.Добавить(ТекущийОбъект.Код); 193 | ПараметрыРегламентногоЗадания.Параметры = ПараметрыРегламента; 194 | 195 | ПараметрыРегламентногоЗадания.Использование = ТекущийОбъект.Активность; 196 | КонецЕсли; 197 | 198 | пэмМетрикиСервер.ОбновитьРегламентноеЗадание(ПараметрыРегламентногоЗадания); 199 | ТекущийОбъект.ИдентификаторРегламента = ПараметрыРегламентногоЗадания.УникальныйИдентификатор; 200 | 201 | КонецПроцедуры -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/Help/ru.html: -------------------------------------------------------------------------------- 1 | Скоро будет справка 2 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/ManagerModule.bsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/Catalogs/пэмМетрики/ManagerModule.bsl -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | Процедура ПриЗаписи(Отказ) 2 | 3 | Если ОбменДанными.Загрузка Тогда 4 | Возврат; 5 | КонецЕсли; 6 | 7 | Если Активность = Ложь Тогда 8 | РегистрыСведений.пэмСостояниеМетрик.УдалитьЗапись(ЭтотОбъект); 9 | КонецЕсли; 10 | 11 | КонецПроцедуры 12 | 13 | -------------------------------------------------------------------------------- /src/Catalogs/пэмМетрики/пэмМетрики.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | пэмМетрики 11 | 12 | ru 13 | Метрики 14 | 15 | true 16 | Catalog.пэмМетрики.StandardAttribute.Code 17 | Catalog.пэмМетрики.StandardAttribute.Description 18 | DontUse 19 | Use 20 | 21 | 22 | ru 23 | 24 | 25 | Managed 26 | Use 27 | 2 28 | true 29 | 50 30 | 100 31 | String 32 | Variable 33 | true 34 | AsDescription 35 | 36 | 37 | pde_last_refresh 38 | 39 | pde_last_refresh 40 | 41 | 42 | 43 | pde_scrape_duration 44 | 45 | pde_scrape_duration 46 | 47 | 48 | 49 | InDialog 50 | BothWays 51 | Catalog.пэмМетрики.Form.ФормаЭлемента 52 | Catalog.пэмМетрики.Form.ФормаСписка 53 | 54 | ТипМетрики 55 | 56 | ru 57 | Тип метрики 58 | 59 | 60 | EnumRef.пэмТипыМетрик 61 | 62 | 63 | 64 | ShowError 65 | 66 | Enum.пэмТипыМетрик.EnumValue.Gauge 67 | 68 | 69 | 70 | МетодПолученияМетрики 71 | 72 | ru 73 | Метод получения метрики 74 | 75 | 76 | EnumRef.пэмМетодыПолученияМетрик 77 | 78 | 79 | 80 | 81 | Enum.пэмМетодыПолученияМетрик.EnumValue.Pull 82 | 83 | Index 84 | 85 | 86 | Активность 87 | 88 | ru 89 | Активность 90 | 91 | 92 | Boolean 93 | 94 | 95 | 96 | 97 | 98 | 99 | Алгоритм 100 | 101 | ru 102 | Алгоритм 103 | 104 | 105 | String 106 | 107 | 108 | 109 | 110 | ShowError 111 | 112 | 113 | 114 | 115 | 116 | ИдентификаторРегламента 117 | 118 | ru 119 | Идентификатор регламента 120 | 121 | 122 | UUID 123 | 124 | 125 | 126 | 127 | 128 | 129 | ФормаЭлемента 130 | 131 | ru 132 | Форма элемента 133 | 134 | 135 | 136 | ru 137 | 138 | 139 | PersonalComputer 140 | MobileDevice 141 | 142 | 143 | ФормаСписка 144 | 145 | ru 146 | Форма списка 147 | 148 | PersonalComputer 149 | MobileDevice 150 | 151 | 152 | -------------------------------------------------------------------------------- /src/CommonCommands/пэмНастройки/CommandModule.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиСобытий 2 | 3 | &НаКлиенте 4 | Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) 5 | 6 | ПараметрыФормы = Новый Структура(); 7 | ОткрытьФорму( 8 | "ОбщаяФорма.пэмНастройкиМетрик", 9 | ПараметрыФормы, 10 | ПараметрыВыполненияКоманды.Источник, 11 | ПараметрыВыполненияКоманды.Уникальность, 12 | ПараметрыВыполненияКоманды.Окно, 13 | ПараметрыВыполненияКоманды.НавигационнаяСсылка); 14 | 15 | КонецПроцедуры 16 | 17 | #КонецОбласти -------------------------------------------------------------------------------- /src/CommonCommands/пэмНастройки/пэмНастройки.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмНастройки 4 | 5 | ru 6 | Настройки 7 | 8 | ActionsPanelTools 9 | 10 | Auto 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/CommonForms/пэмНастройкиМетрик/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ГруппаPushgateway 5 | 4 6 | 7 | пэмИспользоватьPushgateway 8 | 63 9 | 10 | <key>ru</key> 11 | <value>Разрешить доставку методом PUSH</value> 12 | 13 | true 14 | true 15 | 16 | true 17 | 18 | 19 | 20 | Константы.пэмИспользоватьPushgateway 21 | 22 | 23 | Right 24 | 25 | OnChange 26 | пэмИспользоватьPushgatewayПриИзменении 27 | 28 | 29 | пэмИспользоватьPushgatewayРасширеннаяПодсказка 30 | 65 31 | true 32 | true 33 | 34 | true 35 | 36 | Label 37 | true 38 | true 39 | 40 | Left 41 | 42 | 43 | 44 | пэмИспользоватьPushgatewayКонтекстноеМеню 45 | 64 46 | true 47 | true 48 | 49 | true 50 | 51 | true 52 | 53 | CheckBoxField 54 | Enter 55 | true 56 | Left 57 | true 58 | 59 | 60 | 61 | ГруппаPushgatewayСервер 62 | 30 63 | 64 | ГруппаPushgatewayАдресПорт 65 | 37 66 | 67 | пэмАдресСервераPushgateway 68 | 9 69 | 70 | <key>ru</key> 71 | <value>Адрес</value> 72 | 73 | true 74 | true 75 | 76 | true 77 | 78 | 79 | 80 | Константы.пэмАдресСервераPushgateway 81 | 82 | 83 | 84 | пэмАдресСервераPushgatewayРасширеннаяПодсказка 85 | 11 86 | true 87 | true 88 | 89 | true 90 | 91 | Label 92 | true 93 | true 94 | 95 | Left 96 | 97 | 98 | 99 | пэмАдресСервераPushgatewayКонтекстноеМеню 100 | 10 101 | true 102 | true 103 | 104 | true 105 | 106 | true 107 | 108 | InputField 109 | Enter 110 | true 111 | Left 112 | true 113 | 114 | true 115 | true 116 | true 117 | true 118 | true 119 | true 120 | true 121 | 122 | 123 | 124 | пэмПортСервераPushgateway 125 | 6 126 | 127 | <key>ru</key> 128 | <value>Порт</value> 129 | 130 | true 131 | true 132 | 133 | true 134 | 135 | 136 | 137 | Константы.пэмПортСервераPushgateway 138 | 139 | 140 | 141 | пэмПортСервераPushgatewayРасширеннаяПодсказка 142 | 8 143 | true 144 | true 145 | 146 | true 147 | 148 | Label 149 | true 150 | true 151 | 152 | Left 153 | 154 | 155 | 156 | пэмПортСервераPushgatewayКонтекстноеМеню 157 | 7 158 | true 159 | true 160 | 161 | true 162 | 163 | true 164 | 165 | InputField 166 | Enter 167 | true 168 | Left 169 | true 170 | 171 | true 172 | true 173 | true 174 | 175 | ru 176 | ЧН=; ЧГ=0 177 | 178 | true 179 | true 180 | true 181 | 182 | 183 | true 184 | true 185 | 186 | true 187 | 188 | 189 | <key>ru</key> 190 | <value>Параметры подключения к Pushgateway</value> 191 | 192 | 193 | ru 194 | Группа pushgateway адрес порт 195 | 196 | 197 | ГруппаPushgatewayАдресПортРасширеннаяПодсказка 198 | 38 199 | true 200 | true 201 | 202 | true 203 | 204 | Label 205 | true 206 | true 207 | 208 | Left 209 | 210 | 211 | UsualGroup 212 | 213 | HorizontalIfPossible 214 | true 215 | true 216 | true 217 | Auto 218 | Auto 219 | 220 | 221 | 222 | пэмПутьНаСервереPushgateway 223 | 34 224 | 225 | <key>ru</key> 226 | <value>Путь</value> 227 | 228 | true 229 | true 230 | 231 | true 232 | 233 | 234 | 235 | Константы.пэмПутьНаСервереPushgateway 236 | 237 | 238 | 239 | пэмПутьНаСервереPushgatewayРасширеннаяПодсказка 240 | 36 241 | true 242 | true 243 | 244 | true 245 | 246 | Label 247 | true 248 | true 249 | 250 | Left 251 | 252 | 253 | 254 | пэмПутьНаСервереPushgatewayКонтекстноеМеню 255 | 35 256 | true 257 | true 258 | 259 | true 260 | 261 | true 262 | 263 | InputField 264 | Enter 265 | true 266 | Left 267 | true 268 | 269 | true 270 | true 271 | true 272 | true 273 | true 274 | true 275 | 276 | 277 | 278 | ГруппаНастройкиРегламентногоЗадания 279 | 49 280 | 281 | ИспользоватьОбщийРегламент 282 | 60 283 | 284 | <key>ru</key> 285 | <value>Использовать общий регламент</value> 286 | 287 | true 288 | true 289 | 290 | true 291 | 292 | 293 | 294 | Использование 295 | 296 | 297 | Right 298 | 299 | OnChange 300 | ИспользоватьОбщийРегламентПриИзменении 301 | 302 | 303 | ИспользоватьОбщийРегламентРасширеннаяПодсказка 304 | 62 305 | true 306 | true 307 | 308 | true 309 | 310 | Label 311 | true 312 | true 313 | 314 | Left 315 | 316 | 317 | 318 | ИспользоватьОбщийРегламентКонтекстноеМеню 319 | 61 320 | true 321 | true 322 | 323 | true 324 | 325 | true 326 | 327 | CheckBoxField 328 | Enter 329 | true 330 | Left 331 | true 332 | 333 | 334 | 335 | ОписаниеРасписанияМетрики 336 | 71 337 | 338 | <key>ru</key> 339 | <value>Описание расписания метрики</value> 340 | 341 | true 342 | true 343 | 344 | true 345 | 346 | 347 | ОписаниеРасписанияМетрикиРасширеннаяПодсказка 348 | 73 349 | true 350 | true 351 | 352 | true 353 | 354 | Label 355 | true 356 | true 357 | 358 | Left 359 | 360 | 361 | 362 | ОписаниеРасписанияМетрикиКонтекстноеМеню 363 | 72 364 | true 365 | true 366 | 367 | true 368 | 369 | true 370 | 371 | Label 372 | true 373 | true 374 | true 375 | Center 376 | 377 | 378 | Click 379 | ОписаниеРасписанияМетрикиНажатие 380 | 381 | true 382 | Left 383 | 384 | 385 | true 386 | true 387 | 388 | true 389 | 390 | 391 | <key>ru</key> 392 | <value>Параметры доставки по-умолчанию</value> 393 | 394 | 395 | ГруппаНастройкиРегламентногоЗаданияРасширеннаяПодсказка 396 | 50 397 | true 398 | true 399 | 400 | true 401 | 402 | Label 403 | true 404 | true 405 | 406 | Left 407 | 408 | 409 | UsualGroup 410 | 411 | Vertical 412 | true 413 | true 414 | true 415 | Auto 416 | Auto 417 | 418 | 419 | true 420 | true 421 | 422 | true 423 | 424 | 425 | ГруппаPushgatewayСерверРасширеннаяПодсказка 426 | 31 427 | true 428 | true 429 | 430 | true 431 | 432 | Label 433 | true 434 | true 435 | 436 | Left 437 | 438 | 439 | UsualGroup 440 | 441 | Vertical 442 | true 443 | true 444 | Auto 445 | Auto 446 | 447 | 448 | true 449 | true 450 | 451 | true 452 | 453 | 454 | <key>ru</key> 455 | <value>Настройки метода PUSH</value> 456 | 457 | 458 | ГруппаPushgatewayРасширеннаяПодсказка 459 | 5 460 | true 461 | true 462 | 463 | true 464 | 465 | Label 466 | true 467 | true 468 | 469 | Left 470 | 471 | 472 | UsualGroup 473 | 474 | Vertical 475 | WeakSeparation 476 | true 477 | true 478 | true 479 | Auto 480 | Auto 481 | 482 | 483 | 484 | ГруппаМногопоточность 485 | 20 486 | 487 | пэмМногопоточныйРасчетМетрик 488 | 14 489 | 490 | <key>ru</key> 491 | <value>Использовать многопоточный расчет</value> 492 | 493 | true 494 | true 495 | 496 | true 497 | 498 | 499 | 500 | Константы.пэмМногопоточныйРасчетМетрик 501 | 502 | 503 | Right 504 | 505 | пэмМногопоточныйРасчетМетрикРасширеннаяПодсказка 506 | 16 507 | true 508 | true 509 | 510 | true 511 | 512 | Label 513 | true 514 | true 515 | 516 | Left 517 | 518 | 519 | 520 | пэмМногопоточныйРасчетМетрикКонтекстноеМеню 521 | 15 522 | true 523 | true 524 | 525 | true 526 | 527 | true 528 | 529 | CheckBoxField 530 | Enter 531 | true 532 | Left 533 | true 534 | 535 | 536 | true 537 | true 538 | 539 | true 540 | 541 | 542 | <key>ru</key> 543 | <value>Многопоточная обработка</value> 544 | 545 | 546 | ГруппаМногопоточностьРасширеннаяПодсказка 547 | 21 548 | true 549 | true 550 | 551 | true 552 | 553 | Label 554 | true 555 | true 556 | 557 | Left 558 | 559 | 560 | UsualGroup 561 | 562 | AlwaysHorizontal 563 | WeakSeparation 564 | true 565 | true 566 | true 567 | Auto 568 | Auto 569 | 570 | 571 | 572 | ФормаКоманднаяПанель 573 | -1 574 | 575 | ФормаВыполнитьПервоначальноеЗаполнение 576 | 32 577 | 578 | <key>ru</key> 579 | <value>Первоначальное заполнение</value> 580 | 581 | true 582 | true 583 | 584 | true 585 | 586 | 587 | ФормаВыполнитьПервоначальноеЗаполнениеРасширеннаяПодсказка 588 | 33 589 | true 590 | true 591 | 592 | true 593 | 594 | Label 595 | true 596 | true 597 | 598 | Left 599 | 600 | 601 | Form.Command.ВыполнитьПервоначальноеЗаполнение 602 | Auto 603 | true 604 | true 605 | UserCmds 606 | Auto 607 | 608 | true 609 | true 610 | 611 | true 612 | 613 | Left 614 | true 615 | 616 | 617 | OnOpen 618 | ПриОткрытии 619 | 620 | 621 | OnCreateAtServer 622 | ПриСозданииНаСервере 623 | 624 | 625 | FillCheckProcessingAtServer 626 | ОбработкаПроверкиЗаполненияНаСервере 627 | 628 | true 629 | true 630 | Vertical 631 | true 632 | true 633 | true 634 | true 635 | true 636 | 637 | Константы 638 | 639 | <key>ru</key> 640 | <value>Константы</value> 641 | 642 | 1 643 | 644 | ConstantsSet 645 | 646 | 647 | true 648 | 649 | 650 | true 651 | 652 |
true
653 |
654 | 655 | Использование 656 | 657 | <key>ru</key> 658 | <value>Использование</value> 659 | 660 | 6 661 | 662 | Boolean 663 | 664 | 665 | true 666 | 667 | 668 | true 669 | 670 | 671 | 672 | ПараметрыРегламентногоЗадания 673 | 674 | <key>ru</key> 675 | <value>Параметры регламентного задания</value> 676 | 677 | 3 678 | 679 | 680 | true 681 | 682 | 683 | true 684 | 685 | 686 | 687 | ВыполнитьПервоначальноеЗаполнение 688 | 689 | <key>ru</key> 690 | <value>Выполнить первоначальное заполнение</value> 691 | 692 | 1 693 | 694 | ru 695 | Выполнить первоначальное заполнение 696 | 697 | 698 | true 699 | 700 | 701 | 702 | ВыполнитьПервоначальноеЗаполнение 703 | 704 | 705 | Auto 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | OnWriteAtServer 714 | ПриЗаписиНаСервере 715 | 716 | 717 |
718 | -------------------------------------------------------------------------------- /src/CommonForms/пэмНастройкиМетрик/Help/ru.html: -------------------------------------------------------------------------------- 1 | 2 |  3 |

Настройки Pushgateway:

4 |
5 |
6 |
7 |

Параметры подключения к службе Pushgateway для отправки метрик 8 | методом Push.

9 |
10 |
11 |
12 |
13 |

Многопоточная обработка:

14 |
15 |
16 |
17 |
18 |

Используется для параллельного расчета метрик. Может вызывать 19 | повышенную нагрузку на сервер. Использовать с осторожностью!

20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /src/CommonForms/пэмНастройкиМетрик/Module.bsl: -------------------------------------------------------------------------------- 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 | Элементы.ГруппаPushgatewayСервер.Доступность = Константы.пэмИспользоватьPushgateway; 29 | Элементы.ОписаниеРасписанияМетрики.Заголовок = ПредставлениеРасписания; 30 | 31 | КонецПроцедуры 32 | 33 | &НаКлиенте 34 | Процедура ПриОткрытии(Отказ) 35 | 36 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 37 | 38 | КонецПроцедуры 39 | 40 | &НаСервере 41 | Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) 42 | 43 | Если НЕ Константы.пэмИспользоватьPushgateway Тогда 44 | Индекс = ПроверяемыеРеквизиты.Найти("Константы"); 45 | ПроверяемыеРеквизиты.Удалить(Индекс); 46 | КонецЕсли; 47 | 48 | КонецПроцедуры 49 | 50 | &НаКлиенте 51 | Процедура ИспользоватьОбщийРегламентПриИзменении(Элемент) 52 | 53 | ПараметрыРегламентногоЗадания.Использование = Использование; 54 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 55 | 56 | КонецПроцедуры 57 | 58 | &НаКлиенте 59 | Процедура пэмИспользоватьPushgatewayПриИзменении(Элемент) 60 | 61 | Если Константы.пэмИспользоватьPushgateway Тогда 62 | Константы.пэмПутьНаСервереPushgateway = "/metrics/job/pushgateway/instance/product"; 63 | Константы.пэмАдресСервераPushgateway = ""; 64 | Константы.пэмПортСервераPushgateway = 9091; 65 | Иначе 66 | Константы.пэмПутьНаСервереPushgateway = ""; 67 | Константы.пэмАдресСервераPushgateway = ""; 68 | Константы.пэмПортСервераPushgateway = 0; 69 | ПараметрыРегламентногоЗадания.Использование = Ложь; 70 | КонецЕсли; 71 | 72 | ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы", 0.1, Истина); 73 | 74 | КонецПроцедуры 75 | 76 | &НаСервере 77 | Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) 78 | 79 | пэмМетрикиСервер.ОбновитьРегламентноеЗадание(ПараметрыРегламентногоЗадания); 80 | 81 | КонецПроцедуры 82 | 83 | &НаКлиенте 84 | Процедура ОписаниеРасписанияМетрикиНажатие(Элемент) 85 | 86 | пэмМетрикиКлиент.ОбработатьИзменениеРасписания(ПараметрыРегламентногоЗадания, ЭтотОбъект); 87 | 88 | КонецПроцедуры -------------------------------------------------------------------------------- /src/CommonForms/пэмНастройкиМетрик/пэмНастройкиМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмНастройкиМетрик 4 | 5 | ru 6 | Настройки метрик 7 | 8 | 9 | 10 | ru 11 | 12 | 13 | PersonalComputer 14 | MobileDevice 15 | 16 | -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиВызовСервера/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область Служебный_программный_интерфейс 2 | 3 | Функция РазрешеноИспользованиеМетодаPush() Экспорт 4 | 5 | Возврат пэмМетрикиСерверПовтИсп.РазрешеноИспользованиеМетодаPush(); 6 | 7 | КонецФункции 8 | 9 | #КонецОбласти -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиВызовСервера/пэмМетрикиВызовСервера.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмМетрикиВызовСервера 4 | 5 | ru 6 | Метрики вызов сервера 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиКлиент/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область Программный_интерфейс 2 | 3 | Процедура ОбработатьИзменениеРасписания(ПараметрыРегламентногоЗадания, Форма) Экспорт 4 | 5 | Если ПараметрыРегламентногоЗадания.Расписание = Неопределено Тогда 6 | ПараметрыРегламентногоЗадания.Расписание = Новый РасписаниеРегламентногоЗадания(); 7 | КонецЕсли; 8 | 9 | ДополнительныеПараметрыОповещения = Новый Структура(); 10 | ДополнительныеПараметрыОповещения.Вставить("ПараметрыРегламентногоЗадания",ПараметрыРегламентногоЗадания); 11 | ДополнительныеПараметрыОповещения.Вставить("Форма",Форма); 12 | ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьИзменениеРасписанияЗавершение",ЭтотОбъект,ДополнительныеПараметрыОповещения); 13 | 14 | Диалог = Новый ДиалогРасписанияРегламентногоЗадания(ПараметрыРегламентногоЗадания.Расписание); 15 | Диалог.Показать(ОписаниеОповещения); 16 | 17 | КонецПроцедуры 18 | 19 | Функция ПолучитьПредставлениеРасписания(ОписаниеРегламентногоЗадания) Экспорт 20 | 21 | Если ОписаниеРегламентногоЗадания = Неопределено Тогда 22 | Возврат НСтр("ru = '<Расписание не задано>'"); 23 | КонецЕсли; 24 | 25 | Если ОписаниеРегламентногоЗадания.Использование Тогда 26 | ПрефиксАктивности = НСтр("ru = ''"); 27 | Иначе 28 | ПрефиксАктивности = НСтр("ru = '(НЕ АКТИВНО) '"); 29 | КонецЕсли; 30 | 31 | Если ОписаниеРегламентногоЗадания.Предопределенное Тогда 32 | ПрефиксТипРасписания = НСтр("ru = 'Общее расписание: '"); 33 | Иначе 34 | ПрефиксТипРасписания = НСтр("ru = 'Индивидуальное расписание: '"); 35 | КонецЕсли; 36 | 37 | Возврат ПрефиксАктивности + ПрефиксТипРасписания + Строка(ОписаниеРегламентногоЗадания.Расписание); 38 | 39 | КонецФункции 40 | 41 | #КонецОбласти 42 | 43 | #Область Служебные_процедуры_и_Функции 44 | 45 | Процедура ОбработатьИзменениеРасписанияЗавершение(Расписание, ДополнительныеПараметры) Экспорт 46 | 47 | Если Расписание = Неопределено Тогда 48 | Возврат; 49 | КонецЕсли; 50 | 51 | ДополнительныеПараметры.ПараметрыРегламентногоЗадания.Расписание = Расписание; 52 | ДополнительныеПараметры.Форма.ПодключитьОбработчикОжидания("ОбновитьСостояниеФормы",0.1,Истина); 53 | 54 | КонецПроцедуры 55 | 56 | #КонецОбласти -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиКлиент/пэмМетрикиКлиент.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмМетрикиКлиент 4 | 5 | ru 6 | Пэм метрики клиент 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиСервер/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область Push 2 | 3 | Процедура СформироватьМетрикиРегламентнымЗаданием(Метрика = Неопределено) Экспорт 4 | 5 | Если НЕ пэмМетрикиСерверПовтИсп.РазрешеноИспользованиеМетодаPush() Тогда 6 | Возврат; 7 | КонецЕсли; 8 | 9 | АдресСервера = Константы.пэмАдресСервераPushgateway.Получить(); 10 | ПортСервера = Константы.пэмПортСервераPushgateway.Получить(); 11 | ПутьНаСервере = Константы.пэмПутьНаСервереPushgateway.Получить(); 12 | 13 | Метрики = ПолучитьМетрики(Перечисления.пэмМетодыПолученияМетрик.Push, Метрика); 14 | HTTPСоединение = Новый HTTPСоединение(АдресСервера, ПортСервера, , , , 30); 15 | HTTPЗапрос = Новый HTTPЗапрос(ПутьНаСервере); 16 | HTTPЗапрос.Заголовки.Вставить("Content-Type", "text/plain; version=0.0.4"); 17 | 18 | HTTPЗапрос.УстановитьТелоИзСтроки(Метрики, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); 19 | 20 | Результат = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос); 21 | 22 | Если Результат.КодСостояния > 300 Тогда 23 | ЗаписьЖурналаРегистрации("Prometheus data exporter", 24 | УровеньЖурналаРегистрации.Ошибка, 25 | , 26 | , 27 | "Ошибка отправки метрик. Код ответа Pushgateway: " + Результат.КодСостояния); 28 | КонецЕсли; 29 | 30 | КонецПроцедуры 31 | 32 | #КонецОбласти 33 | 34 | #Область Pull 35 | 36 | Функция СформироватьМетрикиПоЗапросу() Экспорт 37 | 38 | Возврат ПолучитьМетрики(Перечисления.пэмМетодыПолученияМетрик.Pull, Неопределено); 39 | 40 | КонецФункции 41 | 42 | #КонецОбласти 43 | 44 | #Область Описание_сервиса 45 | 46 | Функция ВернутьОписаниеСервиса() Экспорт 47 | 48 | Ответ = Новый HTTPСервисОтвет(200); 49 | 50 | Ответ.Заголовки.Вставить("Content-Type", "text/html;charset=UTF-8"); 51 | Ответ.Заголовки.Вставить("Pragma", "no-cache"); 52 | Ответ.Заголовки.Вставить("Cache-Control", "no-cache"); 53 | Ответ.Заголовки.Вставить("Cache-Control", "no-store"); 54 | Ответ.Заголовки.Вставить("Content-Language", "en"); 55 | 56 | Запрос = Новый Запрос; 57 | Запрос.Текст = 58 | "ВЫБРАТЬ 59 | | пэмМетрики.Ссылка КАК Ссылка, 60 | | пэмМетрики.МетодПолученияМетрики КАК МетодПолученияМетрики, 61 | | пэмМетрики.Активность КАК Активность 62 | |ПОМЕСТИТЬ втСправочникМетрик 63 | |ИЗ 64 | | Справочник.пэмМетрики КАК пэмМетрики 65 | |; 66 | | 67 | |//////////////////////////////////////////////////////////////////////////////// 68 | |ВЫБРАТЬ 69 | | втСправочникМетрик.МетодПолученияМетрики КАК Type, 70 | | ""Active"" КАК State, 71 | | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втСправочникМетрик.Ссылка) КАК Count 72 | |ИЗ 73 | | втСправочникМетрик КАК втСправочникМетрик 74 | |ГДЕ 75 | | втСправочникМетрик.Активность = ИСТИНА 76 | | 77 | |СГРУППИРОВАТЬ ПО 78 | | втСправочникМетрик.МетодПолученияМетрики 79 | | 80 | |ОБЪЕДИНИТЬ ВСЕ 81 | | 82 | |ВЫБРАТЬ 83 | | втСправочникМетрик.МетодПолученияМетрики, 84 | | ""Inactive"", 85 | | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втСправочникМетрик.Ссылка) 86 | |ИЗ 87 | | втСправочникМетрик КАК втСправочникМетрик 88 | |ГДЕ 89 | | втСправочникМетрик.Активность = ЛОЖЬ 90 | | 91 | |СГРУППИРОВАТЬ ПО 92 | | втСправочникМетрик.МетодПолученияМетрики"; 93 | Результат = Запрос.Выполнить().Выгрузить(); 94 | 95 | СтрокаHTML = 96 | "

Prometheus data exporter

97 | |%1 98 | |

 

"; 99 | 100 | Если Результат.Количество() Тогда 101 | Данные = 102 | "

Metrics information:

103 | | 104 | | 105 | | "; 106 | Для Каждого Колонка Из Результат.Колонки Цикл 107 | Данные = Данные + Символы.ПС + ""; 108 | КонецЦикла; 109 | Данные = Данные + Символы.ПС + ""; 110 | Для Каждого Строка Из Результат Цикл 111 | Данные = Данные + Символы.ПС + ""; 112 | Для Каждого КолонкаСтроки Из Строка Цикл 113 | Данные = Данные + Символы.ПС + ""; 114 | КонецЦикла; 115 | Данные = Данные + Символы.ПС + ""; 116 | КонецЦикла; 117 | Данные = Данные + " 118 | | 119 | |

" + Колонка.Заголовок + "

" + КолонкаСтроки + "
"; 120 | Иначе 121 | Данные = "

Metrics is not set yet

"; 122 | КонецЕсли; 123 | 124 | СтрокаHTML = СтрЗаменить(СтрокаHTML, "%1", Данные); 125 | 126 | Ответ.УстановитьТелоИзСтроки(СтрокаHTML); 127 | 128 | Возврат Ответ; 129 | 130 | КонецФункции 131 | 132 | #КонецОбласти 133 | 134 | #Область Формирование_метрик 135 | 136 | Функция ПолучитьМетрики(МетодПолученияМетрики, Метрика) Экспорт 137 | 138 | Метрики = ""; 139 | Асинхронно = Константы.пэмМногопоточныйРасчетМетрик.Получить(); 140 | 141 | Запрос = Новый Запрос; 142 | Запрос.Текст = 143 | "ВЫБРАТЬ 144 | | пэмМетрики.Код КАК ИмяМетрики, 145 | | пэмМетрики.Алгоритм КАК Алгоритм, 146 | | пэмМетрики.ТипМетрики КАК ТипМетрики, 147 | | пэмМетрики.Ссылка КАК Метрика 148 | |ИЗ 149 | | Справочник.пэмМетрики КАК пэмМетрики 150 | |ГДЕ 151 | | ИСТИНА=ИСТИНА"; 152 | 153 | Если Метрика = Неопределено Тогда 154 | УсловиеЗапроса = "пэмМетрики.Активность = ИСТИНА 155 | | И пэмМетрики.МетодПолученияМетрики = &МетодПолученияМетрики 156 | | И пэмМетрики.ИдентификаторРегламента = &ПустойИдентификатор"; 157 | Иначе 158 | УсловиеЗапроса = "пэмМетрики.Активность = ИСТИНА 159 | | И пэмМетрики.МетодПолученияМетрики = &МетодПолученияМетрики 160 | | И пэмМетрики.Код = &КодМетрики"; 161 | КонецЕсли; 162 | Запрос.Текст = СтрЗаменить(Запрос.Текст,"ИСТИНА=ИСТИНА",УсловиеЗапроса); 163 | Запрос.УстановитьПараметр("КодМетрики",Метрика); 164 | Запрос.УстановитьПараметр("МетодПолученияМетрики", МетодПолученияМетрики); 165 | Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса()); 166 | Запрос.УстановитьПараметр("ПустойИдентификатор",Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); 167 | Выборка = Запрос.Выполнить().Выбрать(); 168 | 169 | Если Асинхронно Тогда 170 | Метрики = СформироватьМетрикиАсинхронно(Выборка, МетодПолученияМетрики); 171 | Иначе 172 | Метрики = СформироватьМетрикиСинхронно(Выборка, МетодПолученияМетрики); 173 | КонецЕсли; 174 | 175 | Возврат Метрики; 176 | 177 | КонецФункции 178 | 179 | Функция СформироватьМетрикиАсинхронно(Выборка, МетодПолученияМетрики) 180 | 181 | МетрикиСтрокой = ""; 182 | МассивФоновыхЗаданий = Новый Массив; 183 | МассивПараметров = Новый Массив; 184 | 185 | // старт расчета 186 | Пока Выборка.Следующий() Цикл 187 | 188 | УникальныйИдентификатор = Новый УникальныйИдентификатор; 189 | АдресВХранилище = ПоместитьВоВременноеХранилище("", УникальныйИдентификатор); 190 | 191 | МассивПараметров.Очистить(); 192 | МассивПараметров.Добавить(Выборка.ИмяМетрики); 193 | МассивПараметров.Добавить(Выборка.ТипМетрики); 194 | МассивПараметров.Добавить(Выборка.Алгоритм); 195 | МассивПараметров.Добавить(АдресВХранилище); 196 | МассивПараметров.Добавить(Выборка.Метрика); 197 | 198 | ФоновоеЗадание = ФоновыеЗадания.Выполнить("пэмМетрикиСервер.СформироватьМетрикуФоновымЗаданием", МассивПараметров, АдресВХранилище); 199 | МассивФоновыхЗаданий.Добавить(ФоновоеЗадание); 200 | 201 | КонецЦикла; 202 | 203 | Если НЕ МассивФоновыхЗаданий.Количество() Тогда 204 | Возврат МетрикиСтрокой; 205 | КонецЕсли; 206 | 207 | // Ожидание окончания расчета всех метрик 208 | МассивЗаданийКУдалению = Новый Массив; 209 | Пока Истина Цикл 210 | 211 | Пауза(1); 212 | МассивЗаданийКУдалению.Очистить(); 213 | Для Каждого ФоновоеЗадание Из МассивФоновыхЗаданий Цикл 214 | 215 | Если ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Состояние = СостояниеФоновогоЗадания.Активно Тогда 216 | Продолжить; 217 | КонецЕсли; 218 | 219 | Попытка 220 | сткВозврат = ПолучитьИзВременногоХранилища(ФоновоеЗадание.Ключ); 221 | Если НЕ сткВозврат.Ошибка Тогда 222 | МетрикиСтрокой = МетрикиСтрокой + сткВозврат.МетрикаСтрокой; 223 | КонецЕсли; 224 | Исключение 225 | МетрикиСтрокой = МетрикиСтрокой + ""; 226 | КонецПопытки; 227 | 228 | МассивЗаданийКУдалению.Добавить(ФоновоеЗадание); 229 | КонецЦикла; 230 | 231 | // Удаление уже расчитаных метрик из массива контроля 232 | Для Каждого ЗаданиеКУдалению Из МассивЗаданийКУдалению Цикл 233 | МассивФоновыхЗаданий.Удалить(МассивФоновыхЗаданий.Найти(ЗаданиеКУдалению)); 234 | КонецЦикла; 235 | 236 | // Если нечего больше ждать - завершаем общее ожидание 237 | Если НЕ МассивФоновыхЗаданий.Количество() Тогда 238 | Прервать; 239 | КонецЕсли; 240 | 241 | КонецЦикла; 242 | 243 | Возврат МетрикиСтрокой; 244 | 245 | КонецФункции 246 | 247 | Функция СформироватьМетрикиСинхронно(Выборка, МетодПолученияМетрики) 248 | 249 | СтрокаМетрик = ""; 250 | 251 | Пока Выборка.Следующий() Цикл 252 | 253 | ДатаНачалаРасчета = ТекущаяДатаСеанса(); 254 | ДатаНачалаРасчетаВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах(); 255 | 256 | сткВозврат = СформироватьМетрику(Выборка.Алгоритм); 257 | Если сткВозврат.Ошибка Тогда 258 | Продолжить; 259 | КонецЕсли; 260 | 261 | сткВозврат = ПривестиТаблицуРасчетаМетрикиКСтрокеPrometheus(Выборка.ИмяМетрики, Выборка.ТипМетрики, сткВозврат.МетрикаТаблицей); 262 | Если сткВозврат.Ошибка Тогда 263 | Продолжить; 264 | КонецЕсли; 265 | 266 | СтрокаМетрик = СтрокаМетрик + сткВозврат.МетрикаСтрокой; 267 | 268 | ЗаписатьИнформациюОРасчетеМетрикиФоновымЗаданием(Выборка.Метрика, ДатаНачалаРасчетаВМиллисекундах, ДатаНачалаРасчета); 269 | 270 | КонецЦикла; 271 | 272 | Возврат СтрокаМетрик; 273 | 274 | КонецФункции 275 | 276 | Процедура СформироватьМетрикуФоновымЗаданием(ИмяМетрики, ТипМетрики, Алгоритм, ИдентификаторХранилища, Метрика) Экспорт 277 | 278 | ДатаНачалаРасчета = ТекущаяДатаСеанса(); 279 | ДатаНачалаРасчетаВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах(); 280 | 281 | сткВозврат = СформироватьМетрику(Алгоритм); 282 | Если сткВозврат.Ошибка Тогда 283 | ПоместитьВоВременноеХранилище(сткВозврат, ИдентификаторХранилища); 284 | Возврат; 285 | КонецЕсли; 286 | 287 | сткВозврат = ПривестиТаблицуРасчетаМетрикиКСтрокеPrometheus(ИмяМетрики, ТипМетрики, сткВозврат.МетрикаТаблицей); 288 | Если сткВозврат.Ошибка Тогда 289 | ПоместитьВоВременноеХранилище(сткВозврат, ИдентификаторХранилища); 290 | Возврат; 291 | КонецЕсли; 292 | 293 | ПоместитьВоВременноеХранилище(сткВозврат, ИдентификаторХранилища); 294 | ЗаписатьИнформациюОРасчетеМетрикиФоновымЗаданием(Метрика, ДатаНачалаРасчетаВМиллисекундах, ДатаНачалаРасчета); 295 | 296 | КонецПроцедуры 297 | 298 | Функция СформироватьМетрику(Алгоритм) Экспорт 299 | 300 | сткВозврат = Новый Структура; 301 | сткВозврат.Вставить("МетрикаТаблицей", Новый ТаблицаЗначений); 302 | сткВозврат.Вставить("ОписаниеОшибки", ""); 303 | сткВозврат.Вставить("Ошибка", Ложь); 304 | 305 | ТаблицаЗначений = Новый ТаблицаЗначений; 306 | 307 | Попытка 308 | УстановитьПривилегированныйРежим(Истина); 309 | Выполнить(Алгоритм); 310 | УстановитьПривилегированныйРежим(Ложь); 311 | Исключение 312 | ОписаниеОшибки = ОписаниеОшибки(); 313 | ЗаписьЖурналаРегистрации("Prometheus data exporter", 314 | УровеньЖурналаРегистрации.Ошибка, 315 | , 316 | , 317 | ОписаниеОшибки); 318 | сткВозврат.Ошибка = Истина; 319 | сткВозврат.ОписаниеОшибки = ОписаниеОшибки; 320 | Возврат сткВозврат; 321 | КонецПопытки; 322 | 323 | сткВозврат.МетрикаТаблицей = ТаблицаЗначений; 324 | 325 | Возврат сткВозврат; 326 | 327 | КонецФункции 328 | 329 | Функция ПривестиТаблицуРасчетаМетрикиКСтрокеPrometheus(ИмяМетрики, ТипМетрики, МетрикаТаблицейЗначений) Экспорт 330 | 331 | сткВозврат = Новый Структура(); 332 | сткВозврат.Вставить("МетрикаСтрокой", ""); 333 | сткВозврат.Вставить("Ошибка", Ложь); 334 | сткВозврат.Вставить("ОписаниеОшибки", ""); 335 | 336 | Если НЕ МетрикаТаблицейЗначений.Количество() Тогда 337 | сткВозврат.Ошибка = Истина; 338 | сткВозврат.ОписаниеОшибки = "Пустая метрика"; 339 | Возврат сткВозврат; 340 | КонецЕсли; 341 | 342 | Попытка 343 | 344 | ЗаписьJSON = Новый ЗаписьJSON; 345 | ЗаписьJSON.УстановитьСтроку(); 346 | 347 | Если ЗначениеЗаполнено(ТипМетрики) Тогда 348 | ЗаписьJSON.ЗаписатьБезОбработки("# TYPE "); 349 | ЗаписьJSON.ЗаписатьБезОбработки(ИмяМетрики); 350 | ЗаписьJSON.ЗаписатьБезОбработки(" "); 351 | ЗаписьJSON.ЗаписатьБезОбработки(Метаданные.Перечисления.пэмТипыМетрик.ЗначенияПеречисления[Перечисления.пэмТипыМетрик.Индекс(ТипМетрики)].Синоним); 352 | ЗаписьJSON.ЗаписатьБезОбработки(Символы.ПС); 353 | КонецЕсли; 354 | 355 | Если МетрикаТаблицейЗначений.Колонки.Найти("value") = Неопределено Тогда 356 | ВызватьИсключение "Метрика " + ИмяМетрики + " не содержит колонки value"; 357 | КонецЕсли; 358 | 359 | Для Каждого Строка Из МетрикаТаблицейЗначений Цикл 360 | 361 | ЗаписьJSON.ЗаписатьБезОбработки(ИмяМетрики); 362 | ЗаписьJSON.ЗаписатьБезОбработки("{"); 363 | 364 | ВыводительРазделитель = Неопределено; 365 | 366 | Для Каждого Колонка Из МетрикаТаблицейЗначений.Колонки Цикл 367 | Если Колонка.Имя = "value" Тогда 368 | Продолжить; 369 | КонецЕсли; 370 | 371 | Если ВыводительРазделитель = Истина Тогда 372 | ЗаписьJSON.ЗаписатьБезОбработки(", "); 373 | КонецЕсли; 374 | 375 | ЗаписьJSON.ЗаписатьБезОбработки(Колонка.Имя); 376 | ЗаписьJSON.ЗаписатьБезОбработки("="""); 377 | ЗаписьJSON.ЗаписатьБезОбработки(Строка[Колонка.Имя]); 378 | ЗаписьJSON.ЗаписатьБезОбработки(""""); 379 | 380 | Если ВыводительРазделитель = Неопределено Тогда 381 | ВыводительРазделитель = Истина; 382 | КонецЕсли; 383 | 384 | КонецЦикла; 385 | 386 | ЗаписьJSON.ЗаписатьБезОбработки("} "); 387 | ЗаписьJSON.ЗаписатьБезОбработки(Строка(Формат(Строка["value"], "ЧРД=.; ЧРГ=; ЧДЦ=4; ЧН=; ЧГ=;"))); 388 | ЗаписьJSON.ЗаписатьБезОбработки(Символы.ПС); 389 | 390 | КонецЦикла; 391 | Исключение 392 | ОписаниеОшибки = ОписаниеОшибки(); 393 | ЗаписьЖурналаРегистрации("Prometheus data exporter", 394 | УровеньЖурналаРегистрации.Ошибка, 395 | , 396 | , 397 | ОписаниеОшибки); 398 | сткВозврат.Ошибка = Истина; 399 | сткВозврат.ОписаниеОшибки = ОписаниеОшибки; 400 | Возврат сткВозврат; 401 | КонецПопытки; 402 | 403 | сткВозврат.МетрикаСтрокой = ЗаписьJSON.Закрыть(); 404 | 405 | Возврат сткВозврат; 406 | 407 | КонецФункции 408 | 409 | // Таймаут - число. Квант равен 1 секунде 410 | Процедура Пауза(Знач Таймаут) Экспорт 411 | 412 | СистемнаяИнформация = Новый СистемнаяИнформация(); 413 | ЭтоWindows = (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86) 414 | Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64); 415 | 416 | Таймаут = Таймаут + 1; 417 | 418 | Если ЭтоWindows Тогда 419 | ШаблонКоманды = "ping localhost -n " + Таймаут + " -w 1000"; 420 | Иначе 421 | ШаблонКоманды = "ping -c " + Таймаут + " -w 1000 localhost"; 422 | КонецЕсли; 423 | 424 | ЗапуститьПриложение(ШаблонКоманды, , Истина); 425 | 426 | КонецПроцедуры 427 | 428 | Процедура ЗаписатьИнформациюОРасчетеМетрикиФоновымЗаданием(Метрика, ДатаНачалаРасчетаВМиллисекундах, ДатаНачалаРасчета) 429 | 430 | МассивПараметровРасчетаМетрик = Новый Массив; 431 | МассивПараметровРасчетаМетрик.Добавить(Метрика); 432 | МассивПараметровРасчетаМетрик.Добавить(ДатаНачалаРасчетаВМиллисекундах); 433 | МассивПараметровРасчетаМетрик.Добавить(ТекущаяУниверсальнаяДатаВМиллисекундах()); 434 | МассивПараметровРасчетаМетрик.Добавить(ДатаНачалаРасчета); 435 | ФоновыеЗадания.Выполнить("пэмМетрикиСервер.ЗаписатьИнформациюОРасчетеМетрики", МассивПараметровРасчетаМетрик); 436 | 437 | КонецПроцедуры 438 | 439 | Процедура ЗаписатьИнформациюОРасчетеМетрики(Метрика, ДатаНачалаРасчетаВМиллисекундах, ДатаОкончанияРасчетаВМиллисекундах, ДатаНачалаРасчета) Экспорт 440 | 441 | МенеджерЗаписи = РегистрыСведений.пэмСостояниеМетрик.СоздатьМенеджерЗаписи(); 442 | МенеджерЗаписи.Метрика = Метрика; 443 | МенеджерЗаписи.Прочитать(); 444 | 445 | МенеджерЗаписи.Метрика = Метрика; 446 | МенеджерЗаписи.ДатаРасчета = ДатаНачалаРасчета; 447 | МенеджерЗаписи.Длительность = ДатаОкончанияРасчетаВМиллисекундах - ДатаНачалаРасчетаВМиллисекундах; 448 | 449 | МенеджерЗаписи.Записать(); 450 | 451 | КонецПроцедуры 452 | 453 | // Маска - текстовая строка. Допустимы следующие символы: 454 | // . - любой символ 455 | // + - один или более раз, пример ".+" - один или более любой символ. 456 | // * - ноль или более раз, пример ".*" - любое количество любых символов (даже ни одного). 457 | // [n-m] - символ от m до n. Например: [a-zA-Z_:]* - строка любой длины, состоящая из больших и маленьких латинских символов, знаков "_" и ":" , Еще пример: "[0-9]+" - одна или более цифр(а). 458 | // \d - цифра, пример 459 | // \d+ - одна или более цифр(а). 460 | // \D - не цифра. 461 | // \s - пробельный символ - ТАБ, пробел, перенос строки, возврат каретки и т.п. 462 | // \S - непробельный символ. 463 | // \w - буква, цифра, подчеркивание. 464 | // \W - не буква, не цифра и не подчеркивание соответственно. 465 | // ^ - начало текста, например "^\d+" - строка начинается с цифры. 466 | // $ - конец текста, например "\D+$" - строка заканчивается НЕ цифрой. 467 | // {m,n} - шаблон для от m до n символов, например "\d{2,4}" - от двух до четырех цифр. Можно указать одну и всего цифру для строгого соответвия. 468 | // \ - экранирует спецсимволы. Например, "\." - символ точки. 469 | Функция ПроверитьСтрокуНаСоответствиеМаске(Строка, Маска) Экспорт 470 | 471 | сткВозврат = Новый Структура; 472 | сткВозврат.Вставить("ЕстьОшибка", Истина); 473 | сткВозврат.Вставить("ОписаниеОшибки", "Ошибка в коде"); 474 | сткВозврат.Вставить("Результат", Неопределено); 475 | 476 | Чтение = Новый ЧтениеXML; 477 | Чтение.УстановитьСтроку( 478 | " 479 | | 480 | | 481 | |" + Маска + " 482 | | 483 | | 484 | | 485 | | 486 | | 487 | |"); 488 | 489 | Модель = ФабрикаXDTO.ПрочитатьXML(Чтение); 490 | 491 | Попытка 492 | МояФабрикаXDTO = Новый ФабрикаXDTO(Модель); 493 | Исключение 494 | сткВозврат.ЕстьОшибка = Истина; 495 | сткВозврат.ОписаниеОшибки = "Ошибка маски"; 496 | Возврат сткВозврат; 497 | КонецПопытки; 498 | 499 | Пакет = МояФабрикаXDTO.Пакеты.Получить("sample-my-package"); 500 | Тест = МояФабрикаXDTO.Создать(Пакет.Получить("TestObj")); 501 | 502 | Попытка 503 | Тест.TestItem = Строка; 504 | Исключение 505 | сткВозврат.ЕстьОшибка = Истина; 506 | сткВозврат.ОписаниеОшибки = "Строка не соответствует маске"; 507 | сткВозврат.Результат = Ложь; 508 | Возврат сткВозврат; 509 | КонецПопытки; 510 | 511 | сткВозврат.ЕстьОшибка = Ложь; 512 | сткВозврат.ОписаниеОшибки = ""; 513 | сткВозврат.Результат = Истина; 514 | Возврат сткВозврат; 515 | 516 | КонецФункции 517 | 518 | #КонецОбласти 519 | 520 | #Область Служебный_программный_интерфейс 521 | 522 | Процедура ВыполнитьПервоначальноеЗаполнение() Экспорт 523 | 524 | МассивМетрикДляЗаписи = Новый Массив; 525 | 526 | ОписаниеМетрики = Справочники.пэмМетрики.pde_scrape_duration.ПолучитьОбъект(); 527 | ОписаниеМетрики.Наименование = "Длительность расчета метрик (миллисекунд)"; 528 | ОписаниеМетрики.ТипМетрики = Перечисления.пэмТипыМетрик.Gauge; 529 | ОписаниеМетрики.МетодПолученияМетрики = Перечисления.пэмМетодыПолученияМетрик.Pull; 530 | ОписаниеМетрики.Активность = Истина; 531 | ОписаниеМетрики.ИдентификаторРегламента = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); 532 | ОписаниеМетрики.Алгоритм = " 533 | |ТаблицаЗначений = Новый ТаблицаЗначений; 534 | |ТаблицаЗначений.Колонки.Добавить(""label"", Новый ОписаниеТипов(""Строка"")); 535 | |ТаблицаЗначений.Колонки.Добавить(""value"", Новый ОписаниеТипов(""Число"")); 536 | | 537 | |Запрос = Новый Запрос; 538 | |Запрос.Текст = 539 | |""ВЫБРАТЬ 540 | || пэмСостояниеМетрик.Метрика.Код КАК label, 541 | || пэмСостояниеМетрик.Длительность КАК value 542 | ||ИЗ 543 | || РегистрСведений.пэмСостояниеМетрик КАК пэмСостояниеМетрик""; 544 | |Результат = Запрос.Выполнить(); 545 | | 546 | |Если НЕ Результат.Пустой() Тогда 547 | | ТаблицаЗначений = Результат.Выгрузить(); 548 | |КонецЕсли; 549 | |"; 550 | МассивМетрикДляЗаписи.Добавить(ОписаниеМетрики); 551 | 552 | ОписаниеМетрики = Справочники.пэмМетрики.pde_last_refresh.ПолучитьОбъект(); 553 | ОписаниеМетрики.Наименование = "Задержка обновления метрик (секунд)"; 554 | ОписаниеМетрики.ТипМетрики = Перечисления.пэмТипыМетрик.Counter; 555 | ОписаниеМетрики.МетодПолученияМетрики = Перечисления.пэмМетодыПолученияМетрик.Pull; 556 | ОписаниеМетрики.Активность = Истина; 557 | ОписаниеМетрики.ИдентификаторРегламента = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); 558 | ОписаниеМетрики.Алгоритм = " 559 | |ТаблицаЗначений = Новый ТаблицаЗначений; 560 | |ТаблицаЗначений.Колонки.Добавить(""label"", Новый ОписаниеТипов(""Строка"")); 561 | |ТаблицаЗначений.Колонки.Добавить(""value"", Новый ОписаниеТипов(""Число"")); 562 | | 563 | |Запрос = Новый Запрос; 564 | |Запрос.Текст = 565 | |""ВЫБРАТЬ 566 | || пэмСостояниеМетрик.Метрика.Код КАК label, 567 | || РАЗНОСТЬДАТ(пэмСостояниеМетрик.ДатаРасчета, &ТекущаяДата, СЕКУНДА) КАК value 568 | ||ИЗ 569 | || РегистрСведений.пэмСостояниеМетрик КАК пэмСостояниеМетрик""; 570 | |Запрос.УстановитьПараметр(""ТекущаяДата"",ТекущаяДата()); 571 | |Результат = Запрос.Выполнить(); 572 | | 573 | |Если НЕ Результат.Пустой() Тогда 574 | | ТаблицаЗначений = Результат.Выгрузить(); 575 | |КонецЕсли; 576 | |"; 577 | МассивМетрикДляЗаписи.Добавить(ОписаниеМетрики); 578 | 579 | НачатьТранзакцию(); 580 | Попытка 581 | Константы.пэмПервоначальноеЗаполнениеВыполнено.Установить(Истина); 582 | Для Каждого Метрика Из МассивМетрикДляЗаписи Цикл 583 | Метрика.Записать(); 584 | КонецЦикла; 585 | ЗафиксироватьТранзакцию(); 586 | Исключение 587 | ОтменитьТранзакцию(); 588 | Возврат; 589 | КонецПопытки; 590 | 591 | КонецПроцедуры 592 | 593 | Процедура РегламентныеОперации() Экспорт 594 | 595 | УстановитьПривилегированныйРежим(Истина); 596 | 597 | Если НЕ Константы.пэмПервоначальноеЗаполнениеВыполнено.Получить() Тогда 598 | ВыполнитьПервоначальноеЗаполнение(); 599 | КонецЕсли; 600 | 601 | ЗаписьРегистраСостояний = РегистрыСведений.пэмСостояниеМетрик.СоздатьМенеджерЗаписи(); 602 | ЗаписьРегистраСостояний.Метрика = Справочники.пэмМетрики.ПустаяСсылка(); 603 | ЗаписьРегистраСостояний.Прочитать(); 604 | Если ЗаписьРегистраСостояний.Выбран() Тогда 605 | ЗаписьРегистраСостояний.Удалить(); 606 | КонецЕсли; 607 | 608 | Запрос = Новый Запрос; 609 | Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ 610 | | пэмСостояниеМетрик.Метрика КАК Метрика 611 | |ИЗ 612 | | РегистрСведений.пэмСостояниеМетрик КАК пэмСостояниеМетрик 613 | |ГДЕ 614 | | пэмСостояниеМетрик.Метрика.Активность = ЛОЖЬ"; 615 | Выборка = Запрос.Выполнить().Выбрать(); 616 | Пока Выборка.Следующий() Цикл 617 | ЗаписьРегистраСостояний.Метрика = Выборка.Метрика; 618 | ЗаписьРегистраСостояний.Удалить(); 619 | КонецЦикла; 620 | 621 | УстановитьПривилегированныйРежим(Ложь); 622 | 623 | КонецПроцедуры 624 | 625 | Функция ПолучитьПараметрыРегламентногоЗадания(Идентификатор = Неопределено) Экспорт 626 | 627 | ОписаниеРегламентногоЗадания = ПолучитьОписаниеПараметровРегламентногоЗадания(); 628 | РегламентноеЗадание = ПолучитьРегламентноеЗаданиеПоИдентификатору(Идентификатор); 629 | 630 | ЗаполнитьЗначенияСвойств(ОписаниеРегламентногоЗадания, РегламентноеЗадание); 631 | 632 | Возврат ОписаниеРегламентногоЗадания; 633 | 634 | КонецФункции 635 | 636 | Процедура ОбновитьРегламентноеЗадание(ПараметрыРегламентногоЗадания) Экспорт 637 | 638 | УстановитьПривилегированныйРежим(Истина); 639 | 640 | Если 641 | (ПараметрыРегламентногоЗадания.Предопределенное 642 | И ЗначениеЗаполнено(ПараметрыРегламентногоЗадания.УникальныйИдентификатор)) 643 | ИЛИ 644 | (НЕ ПараметрыРегламентногоЗадания.Предопределенное 645 | И ЗначениеЗаполнено(ПараметрыРегламентногоЗадания.УникальныйИдентификатор) 646 | И НЕ ПараметрыРегламентногоЗадания.Использование) 647 | Тогда 648 | УдалитьРегламентноеЗаданиеПоИдентификатору(ПараметрыРегламентногоЗадания.УникальныйИдентификатор); 649 | ПараметрыРегламентногоЗадания.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); 650 | КонецЕсли; 651 | 652 | Если НЕ ПараметрыРегламентногоЗадания.Предопределенное И НЕ ПараметрыРегламентногоЗадания.Использование Тогда 653 | ПараметрыРегламентногоЗадания.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); 654 | Возврат; 655 | КонецЕсли; 656 | 657 | Если ПараметрыРегламентногоЗадания.Предопределенное Тогда 658 | РегламентноеЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик); 659 | Иначе 660 | Попытка 661 | РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ПараметрыРегламентногоЗадания.УникальныйИдентификатор); 662 | Если РегламентноеЗадание.Предопределенное Тогда 663 | РегламентноеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик); 664 | КонецЕсли; 665 | Исключение 666 | РегламентноеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик); 667 | КонецПопытки; 668 | КонецЕсли; 669 | 670 | ЗаполнитьЗначенияСвойств(РегламентноеЗадание, ПараметрыРегламентногоЗадания,,"УникальныйИдентификатор"); 671 | РегламентноеЗадание.Записать(); 672 | 673 | Если ПараметрыРегламентногоЗадания.Предопределенное Тогда 674 | ПараметрыРегламентногоЗадания.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); 675 | Иначе 676 | ПараметрыРегламентногоЗадания.УникальныйИдентификатор = РегламентноеЗадание.УникальныйИдентификатор; 677 | КонецЕсли; 678 | 679 | УстановитьПривилегированныйРежим(Ложь); 680 | 681 | КонецПроцедуры 682 | 683 | Функция ПолучитьРегламентноеЗаданиеПоИдентификатору(Идентификатор = Неопределено) 684 | 685 | УстановитьПривилегированныйРежим(Истина); 686 | 687 | Если ЗначениеЗаполнено(Идентификатор) Тогда 688 | Попытка 689 | РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); 690 | Исключение 691 | РегламентноеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик); 692 | КонецПопытки; 693 | Иначе 694 | РегламентноеЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.пэмВыполнитьРасчетМетрик); 695 | КонецЕсли; 696 | 697 | УстановитьПривилегированныйРежим(Ложь); 698 | 699 | Возврат РегламентноеЗадание; 700 | 701 | КонецФункции 702 | 703 | Функция УдалитьРегламентноеЗаданиеПоИдентификатору(Идентификатор) 704 | 705 | Результат = Ложь; 706 | 707 | Попытка 708 | РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); 709 | РегламентноеЗадание.Удалить(); 710 | Результат = Истина; 711 | Исключение 712 | Результат = Истина; 713 | КонецПопытки; 714 | 715 | Возврат Результат; 716 | 717 | КонецФункции 718 | 719 | #КонецОбласти 720 | 721 | #Область Служебные_процедуры_и_функции 722 | 723 | Функция ПолучитьОписаниеПараметровРегламентногоЗадания() 724 | 725 | сткПараметрыЗадания = Новый Структура; 726 | сткПараметрыЗадания.Вставить("Использование", Ложь); 727 | сткПараметрыЗадания.Вставить("Предопределенное", Ложь); 728 | сткПараметрыЗадания.Вставить("Расписание", Новый РасписаниеРегламентногоЗадания); 729 | сткПараметрыЗадания.Вставить("Наименование", ""); 730 | сткПараметрыЗадания.Вставить("Ключ", ""); 731 | сткПараметрыЗадания.Вставить("Параметры", Неопределено); 732 | сткПараметрыЗадания.Вставить("УникальныйИдентификатор", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); 733 | 734 | Возврат сткПараметрыЗадания; 735 | 736 | КонецФункции 737 | 738 | #КонецОбласти 739 | -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиСервер/пэмМетрикиСервер.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмМетрикиСервер 4 | 5 | ru 6 | Метрики сервер 7 | 8 | true 9 | true 10 | true 11 | 12 | -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиСерверПовтИсп/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область Служебный_программный_интерфейс 2 | 3 | Функция РазрешеноИспользованиеМетодаPush() Экспорт 4 | 5 | Возврат Константы.пэмИспользоватьPushgateway.Получить(); 6 | 7 | КонецФункции 8 | 9 | #КонецОбласти -------------------------------------------------------------------------------- /src/CommonModules/пэмМетрикиСерверПовтИсп/пэмМетрикиСерверПовтИсп.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмМетрикиСерверПовтИсп 4 | 5 | ru 6 | Метрики сервер повторное использование 7 | 8 | true 9 | true 10 | true 11 | 12 | -------------------------------------------------------------------------------- /src/CommonPictures/пэмPrometheusLogo/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/CommonPictures/пэмPrometheusLogo/Picture.png -------------------------------------------------------------------------------- /src/CommonPictures/пэмPrometheusLogo/пэмPrometheusLogo.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмPrometheusLogo 4 | 5 | ru 6 | Prometheus logo 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/CommonPictures/пэмPullGreen/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/CommonPictures/пэмPullGreen/Picture.png -------------------------------------------------------------------------------- /src/CommonPictures/пэмPullGreen/пэмPullGreen.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмPullGreen 4 | 5 | ru 6 | Пэм pull green 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/CommonPictures/пэмPullRed/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/CommonPictures/пэмPullRed/Picture.png -------------------------------------------------------------------------------- /src/CommonPictures/пэмPullRed/пэмPullRed.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмPullRed 4 | 5 | ru 6 | Пэм pull red 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/CommonPictures/пэмPushGreen/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/CommonPictures/пэмPushGreen/Picture.png -------------------------------------------------------------------------------- /src/CommonPictures/пэмPushGreen/пэмPushGreen.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмPushGreen 4 | 5 | ru 6 | Пэм push green 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/CommonPictures/пэмPushRed/Picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freewms/PDE/6a2f9e747b64df1d8265dd3e1ee35e721329f58d/src/CommonPictures/пэмPushRed/Picture.png -------------------------------------------------------------------------------- /src/CommonPictures/пэмPushRed/пэмPushRed.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмPushRed 4 | 5 | ru 6 | Пэм push red 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Configuration/Configuration.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | PDE 4 | 5 | ru 6 | Prometheus data exporter 7 | 8 | Конфигурация для сбора и передачи метрик в систему мониторинга "Prometheus" 9 | 10 | 11 | 12 | 13 | 14 | 15 | 8.3.16 16 | ManagedApplication 17 | PersonalComputer 18 | Russian 19 | http://defbyte.ru 20 | 1.3.8 21 | 22 | AllowOSBackup 23 | true 24 | 25 | Language.Русский 26 | 27 | ru 28 | https://github.com/freewms 29 | 30 | 31 | ru 32 | https://github.com/freewms/PDE 33 | 34 | Managed 35 | NotAutoFree 36 | DontUse 37 | DontUse 38 | DontUse 39 | 8.3.12 40 | 41 | Русский 42 | 43 | ru 44 | Русский 45 | 46 | ru 47 | 48 | Subsystem.Prometheus 49 | CommonPicture.пэмPrometheusLogo 50 | CommonPicture.пэмPullGreen 51 | CommonPicture.пэмPullRed 52 | CommonPicture.пэмPushGreen 53 | CommonPicture.пэмPushRed 54 | Role.пэмНастройкаМетрик 55 | Role.пэмПолучениеМетрик 56 | CommonModule.пэмМетрикиСервер 57 | CommonModule.пэмМетрикиКлиент 58 | CommonModule.пэмМетрикиСерверПовтИсп 59 | CommonModule.пэмМетрикиВызовСервера 60 | HTTPService.Prometheus 61 | ScheduledJob.пэмВыполнитьРасчетМетрик 62 | ScheduledJob.пэмРегламентныеОперации 63 | CommonCommand.пэмНастройки 64 | Constant.пэмАдресСервераPushgateway 65 | Constant.пэмПортСервераPushgateway 66 | Constant.пэмИспользоватьPushgateway 67 | Constant.пэмМногопоточныйРасчетМетрик 68 | Constant.пэмПутьНаСервереPushgateway 69 | Constant.пэмПервоначальноеЗаполнениеВыполнено 70 | CommonForm.пэмНастройкиМетрик 71 | Catalog.пэмМетрики 72 | Enum.пэмТипыМетрик 73 | Enum.пэмМетодыПолученияМетрик 74 | Report.пэмСостояниеМетрик 75 | InformationRegister.пэмСостояниеМетрик 76 | 77 | -------------------------------------------------------------------------------- /src/Constants/пэмАдресСервераPushgateway/пэмАдресСервераPushgateway.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмАдресСервераPushgateway 9 | 10 | ru 11 | PDE: Адрес сервера pushgateway 12 | 13 | 14 | String 15 | 16 | 17 | true 18 | 19 | 20 | ShowError 21 | Managed 22 | 23 | -------------------------------------------------------------------------------- /src/Constants/пэмИспользоватьPushgateway/пэмИспользоватьPushgateway.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмИспользоватьPushgateway 9 | 10 | ru 11 | PDE: Разрешено использовать pushgateway 12 | 13 | 14 | Boolean 15 | 16 | true 17 | 18 | 19 | Managed 20 | 21 | -------------------------------------------------------------------------------- /src/Constants/пэмМногопоточныйРасчетМетрик/пэмМногопоточныйРасчетМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмМногопоточныйРасчетМетрик 9 | 10 | ru 11 | PDE: Разрешен многопоточный расчет метрик 12 | 13 | 14 | Boolean 15 | 16 | true 17 | 18 | 19 | Managed 20 | 21 | -------------------------------------------------------------------------------- /src/Constants/пэмПервоначальноеЗаполнениеВыполнено/пэмПервоначальноеЗаполнениеВыполнено.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмПервоначальноеЗаполнениеВыполнено 9 | 10 | ru 11 | PDE: Первоначальное заполнение выполнено 12 | 13 | 14 | Boolean 15 | 16 | true 17 | 18 | 19 | Managed 20 | 21 | -------------------------------------------------------------------------------- /src/Constants/пэмПортСервераPushgateway/пэмПортСервераPushgateway.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмПортСервераPushgateway 9 | 10 | ru 11 | PDE: Порт сервера pushgateway 12 | 13 | 14 | Number 15 | 16 | 5 17 | true 18 | 19 | 20 | true 21 | 22 | 23 | ShowError 24 | Managed 25 | 26 | -------------------------------------------------------------------------------- /src/Constants/пэмПутьНаСервереPushgateway/пэмПутьНаСервереPushgateway.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмПутьНаСервереPushgateway 9 | 10 | ru 11 | PDE: Путь на сервере pushgateway 12 | 13 | 14 | String 15 | 16 | 17 | true 18 | 19 | 20 | Managed 21 | 22 | -------------------------------------------------------------------------------- /src/Enums/пэмМетодыПолученияМетрик/пэмМетодыПолученияМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмМетодыПолученияМетрик 9 | 10 | ru 11 | Методы получения метрик 12 | 13 | true 14 | BothWays 15 | 16 | Pull 17 | 18 | ru 19 | Pull 20 | 21 | 22 | 23 | Push 24 | 25 | ru 26 | Push 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/Enums/пэмТипыМетрик/пэмТипыМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | пэмТипыМетрик 9 | 10 | ru 11 | Типы метрик 12 | 13 | true 14 | BothWays 15 | 16 | Counter 17 | 18 | ru 19 | counter 20 | 21 | 22 | 23 | Gauge 24 | 25 | ru 26 | gauge 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/HTTPServices/Prometheus/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиСобытий 2 | 3 | Функция PollingGet(Запрос) 4 | 5 | УстановитьПривилегированныйРежим(Истина); 6 | 7 | //UserAgent = Запрос.Заголовки.Получить("User-Agent"); 8 | //Accept = Запрос.Заголовки.Получить("Accept"); 9 | 10 | //Если UserAgent = Неопределено ИЛИ Accept = Неопределено Тогда 11 | // Возврат Новый HTTPСервисОтвет(400); 12 | //ИначеЕсли НЕ UserAgent = "Go-http-client/1.1" Тогда 13 | // Возврат пэмМетрикиСервер.ВернутьОписаниеСервиса(); 14 | //КонецЕсли; 15 | 16 | //Если (СтрНайти(Accept,"text/plain") = 0) Тогда 17 | // Возврат Новый HTTPСервисОтвет(405); 18 | //КонецЕсли; 19 | 20 | МетрикиСтрокой = пэмМетрикиСервер.СформироватьМетрикиПоЗапросу(); 21 | 22 | Если НЕ ЗначениеЗаполнено(МетрикиСтрокой) Тогда 23 | Возврат Новый HTTPСервисОтвет(204); 24 | КонецЕсли; 25 | 26 | Ответ = Новый HTTPСервисОтвет(200); 27 | Ответ.УстановитьТелоИзСтроки(МетрикиСтрокой, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); 28 | 29 | Возврат Ответ; 30 | 31 | КонецФункции 32 | 33 | #КонецОбласти -------------------------------------------------------------------------------- /src/HTTPServices/Prometheus/Prometheus.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | Prometheus 4 | 5 | ru 6 | Phrometeus REST API 7 | 8 | prometheus 9 | AutoUse 10 | 20 11 | 12 | Polling 13 | 14 | ru 15 | Polling 16 | 17 | 18 | 19 | Get 20 | 21 | ru 22 | Get 23 | 24 | PollingGet 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/InformationRegisters/пэмСостояниеМетрик/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | #Область Служебный_программный_интерфейс 2 | 3 | Процедура УдалитьЗапись(Метрика) Экспорт 4 | 5 | МенеджерЗаписи = РегистрыСведений.пэмСостояниеМетрик.СоздатьМенеджерЗаписи(); 6 | МенеджерЗаписи.Метрика = Метрика.Ссылка; 7 | МенеджерЗаписи.Удалить(); 8 | 9 | КонецПроцедуры 10 | 11 | #КонецОбласти -------------------------------------------------------------------------------- /src/InformationRegisters/пэмСостояниеМетрик/пэмСостояниеМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | пэмСостояниеМетрик 13 | 14 | ru 15 | Состояние метрик 16 | 17 | true 18 | Managed 19 | 20 | ДатаРасчета 21 | 22 | ru 23 | Дата расчета 24 | 25 | 26 | Date 27 | 28 | 29 | 30 | 31 | 32 | Index 33 | 34 | 35 | Длительность 36 | 37 | ru 38 | Длительность 39 | 40 | 41 | Number 42 | 43 | 10 44 | true 45 | 46 | 47 | 48 | 49 | 50 | Index 51 | 52 | 53 | Метрика 54 | 55 | ru 56 | Метрика 57 | 58 | 59 | CatalogRef.пэмМетрики 60 | 61 | 62 | 63 | Use 64 | 65 | true 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/Reports/пэмСостояниеМетрик/Templates/MainDataCompositionSchema/Template.dcs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ИсточникДанных1 5 | Local 6 | 7 | 8 | НаборДанных1 9 | 10 | Метрика 11 | Метрика 12 | 13 | true 14 | 15 | 16 | 17 | ДатаРасчета 18 | ДатаРасчета 19 | 20 | 21 | Длительность 22 | Длительность 23 | 24 | ИсточникДанных1 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 | 51 | 52 | Метрика.Код 53 | Asc 54 | 55 | 56 | 57 | 58 | 59 | 60 | Метрика.Код 61 | 62 | 63 | 64 | 65 | 66 | Текст 67 | 68 | 69 | ru 70 | Метрика 71 | 72 | 73 | 74 | 75 | DontUse 76 | DontUse 77 | DontUse 78 | 79 | 80 | 81 | 82 | Метрика.Наименование 83 | 84 | 85 | 86 | 87 | 88 | Текст 89 | 90 | 91 | ru 92 | Наименование 93 | 94 | 95 | 96 | 97 | DontUse 98 | DontUse 99 | DontUse 100 | 101 | 102 | 103 | 104 | Длительность 105 | 106 | 107 | 108 | 109 | 110 | Текст 111 | 112 | 113 | ru 114 | Длительность расчета (миллисекунд) 115 | 116 | 117 | 118 | 119 | DontUse 120 | DontUse 121 | DontUse 122 | 123 | 124 | 125 | 126 | ДатаРасчета 127 | 128 | 129 | 130 | 131 | 132 | Текст 133 | 134 | 135 | ru 136 | Дата последнего расчета 137 | 138 | 139 | 140 | 141 | DontUse 142 | DontUse 143 | DontUse 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /src/Reports/пэмСостояниеМетрик/пэмСостояниеМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | пэмСостояниеМетрик 8 | 9 | ru 10 | Состояние метрик 11 | 12 | true 13 | Report.пэмСостояниеМетрик.Template.MainDataCompositionSchema 14 | 15 | MainDataCompositionSchema 16 | 17 | ru 18 | Main data composition schema 19 | 20 | DataCompositionSchema 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/Roles/пэмНастройкаМетрик/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Constant.пэмАдресСервераPushgateway 8 | 9 | Read 10 | true 11 | 12 | 13 | Update 14 | true 15 | 16 | 17 | View 18 | true 19 | 20 | 21 | 22 | InformationRegister.пэмСостояниеМетрик.Resource.ДатаРасчета 23 | 24 | Edit 25 | false 26 | 27 | 28 | 29 | Catalog.пэмМетрики 30 | 31 | Read 32 | true 33 | 34 | 35 | Insert 36 | true 37 | 38 | 39 | Update 40 | true 41 | 42 | 43 | Delete 44 | true 45 | 46 | 47 | View 48 | true 49 | 50 | 51 | InteractiveInsert 52 | true 53 | 54 | 55 | Edit 56 | true 57 | 58 | 59 | InteractiveDelete 60 | true 61 | 62 | 63 | InteractiveSetDeletionMark 64 | true 65 | 66 | 67 | InteractiveClearDeletionMark 68 | true 69 | 70 | 71 | InputByString 72 | true 73 | 74 | 75 | InteractiveSetDeletionMarkPredefinedData 76 | true 77 | 78 | 79 | InteractiveClearDeletionMarkPredefinedData 80 | true 81 | 82 | 83 | ReadDataHistory 84 | true 85 | 86 | 87 | UpdateDataHistorySettings 88 | true 89 | 90 | 91 | ViewDataHistory 92 | true 93 | 94 | 95 | SwitchToDataHistoryVersion 96 | true 97 | 98 | 99 | 100 | Configuration.PDE 101 | 102 | ThinClient 103 | true 104 | 105 | 106 | WebClient 107 | true 108 | 109 | 110 | MobileClient 111 | true 112 | 113 | 114 | MainWindowModeNormal 115 | true 116 | 117 | 118 | MainWindowModeWorkplace 119 | true 120 | 121 | 122 | MainWindowModeEmbeddedWorkplace 123 | true 124 | 125 | 126 | MainWindowModeFullscreenWorkplace 127 | true 128 | 129 | 130 | MainWindowModeKiosk 131 | true 132 | 133 | 134 | SaveUserData 135 | true 136 | 137 | 138 | Output 139 | true 140 | 141 | 142 | 143 | Subsystem.Prometheus 144 | 145 | View 146 | true 147 | 148 | 149 | 150 | InformationRegister.пэмСостояниеМетрик.Dimension.Метрика 151 | 152 | Edit 153 | false 154 | 155 | 156 | 157 | CommonCommand.пэмНастройки 158 | 159 | View 160 | true 161 | 162 | 163 | 164 | Constant.пэмМногопоточныйРасчетМетрик 165 | 166 | Read 167 | true 168 | 169 | 170 | Update 171 | true 172 | 173 | 174 | View 175 | true 176 | 177 | 178 | 179 | Constant.пэмИспользоватьPushgateway 180 | 181 | Read 182 | true 183 | 184 | 185 | Update 186 | true 187 | 188 | 189 | View 190 | true 191 | 192 | 193 | 194 | CommonForm.пэмНастройкиМетрик 195 | 196 | View 197 | true 198 | 199 | 200 | 201 | Constant.пэмПортСервераPushgateway 202 | 203 | Read 204 | true 205 | 206 | 207 | Update 208 | true 209 | 210 | 211 | View 212 | true 213 | 214 | 215 | 216 | InformationRegister.пэмСостояниеМетрик 217 | 218 | Read 219 | true 220 | 221 | 222 | View 223 | true 224 | 225 | 226 | 227 | InformationRegister.пэмСостояниеМетрик.StandardAttribute.Active 228 | 229 | Edit 230 | false 231 | 232 | 233 | 234 | InformationRegister.пэмСостояниеМетрик.StandardAttribute.LineNumber 235 | 236 | Edit 237 | false 238 | 239 | 240 | 241 | InformationRegister.пэмСостояниеМетрик.StandardAttribute.Recorder 242 | 243 | Edit 244 | false 245 | 246 | 247 | 248 | InformationRegister.пэмСостояниеМетрик.StandardAttribute.Period 249 | 250 | Edit 251 | false 252 | 253 | 254 | 255 | -------------------------------------------------------------------------------- /src/Roles/пэмНастройкаМетрик/пэмНастройкаМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмНастройкаМетрик 4 | 5 | ru 6 | PDE: Настройка метрик 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Roles/пэмПолучениеМетрик/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Configuration.PDE 8 | 9 | ThinClient 10 | true 11 | 12 | 13 | WebClient 14 | true 15 | 16 | 17 | MobileClient 18 | true 19 | 20 | 21 | MainWindowModeNormal 22 | true 23 | 24 | 25 | MainWindowModeWorkplace 26 | true 27 | 28 | 29 | MainWindowModeEmbeddedWorkplace 30 | true 31 | 32 | 33 | MainWindowModeFullscreenWorkplace 34 | true 35 | 36 | 37 | MainWindowModeKiosk 38 | true 39 | 40 | 41 | SaveUserData 42 | true 43 | 44 | 45 | Output 46 | true 47 | 48 | 49 | 50 | HTTPService.Prometheus.URLTemplate.Polling.Method.Get 51 | 52 | Use 53 | true 54 | 55 | 56 | 57 | InformationRegister.пэмСостояниеМетрик 58 | 59 | Read 60 | true 61 | 62 | 63 | Update 64 | true 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/Roles/пэмПолучениеМетрик/пэмПолучениеМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмПолучениеМетрик 4 | 5 | ru 6 | PDE: Получение метрик 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/ScheduledJobs/пэмВыполнитьРасчетМетрик/Schedule.schedule: -------------------------------------------------------------------------------- 1 | 2 | 3 | Mon 4 | Tue 5 | Wed 6 | Thu 7 | Fri 8 | Sat 9 | Sun 10 | Jan 11 | Feb 12 | Mar 13 | Apr 14 | May 15 | Jun 16 | Jul 17 | Aug 18 | Sep 19 | Oct 20 | Nov 21 | Dec 22 | 23 | -------------------------------------------------------------------------------- /src/ScheduledJobs/пэмВыполнитьРасчетМетрик/пэмВыполнитьРасчетМетрик.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмВыполнитьРасчетМетрик 4 | 5 | ru 6 | Расчет метрик Prometheus 7 | 8 | CommonModule.пэмМетрикиСервер.СформироватьМетрикиРегламентнымЗаданием 9 | Расчет метрик Prometheus (Общий регламент) 10 | пэмМетрикиСерверСформироватьМетрикиРегламентнымЗаданием 11 | true 12 | 13 | -------------------------------------------------------------------------------- /src/ScheduledJobs/пэмРегламентныеОперации/Schedule.schedule: -------------------------------------------------------------------------------- 1 | 2 | 3 | Mon 4 | Tue 5 | Wed 6 | Thu 7 | Fri 8 | Sat 9 | Sun 10 | Jan 11 | Feb 12 | Mar 13 | Apr 14 | May 15 | Jun 16 | Jul 17 | Aug 18 | Sep 19 | Oct 20 | Nov 21 | Dec 22 | 23 | -------------------------------------------------------------------------------- /src/ScheduledJobs/пэмРегламентныеОперации/пэмРегламентныеОперации.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | пэмРегламентныеОперации 4 | 5 | ru 6 | Регламентные операции Prometheus 7 | 8 | CommonModule.пэмМетрикиСервер.РегламентныеОперации 9 | Регламентные операции Prometheus 10 | пэмМетрикиСервер.РегламентныеОперации 11 | true 12 | true 13 | 3 14 | 10 15 | 16 | -------------------------------------------------------------------------------- /src/Subsystems/Prometheus/CommandInterface.cmi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | InformationRegister.пэмСостояниеМетрик.StandardCommand.OpenList 6 | 7 | 8 | 9 | Constant.пэмАдресСервераPushgateway.StandardCommand.Open 10 | 11 | 12 | 13 | Constant.пэмИспользоватьPushgateway.StandardCommand.Open 14 | 15 | 16 | 17 | Constant.пэмМногопоточныйРасчетМетрик.StandardCommand.Open 18 | 19 | 20 | 21 | Constant.пэмПортСервераPushgateway.StandardCommand.Open 22 | 23 | 24 | 25 | Constant.пэмПутьНаСервереPushgateway.StandardCommand.Open 26 | 27 | 28 | 29 | Constant.пэмПервоначальноеЗаполнениеВыполнено.StandardCommand.Open 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/Subsystems/Prometheus/Prometheus.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | Prometheus 4 | 5 | ru 6 | Prometheus 7 | 8 | true 9 | true 10 | 11 | CommonPicture.пэмPrometheusLogo 12 | 13 | CommonForm.пэмНастройкиМетрик 14 | CommonCommand.пэмНастройки 15 | Catalog.пэмМетрики 16 | InformationRegister.пэмСостояниеМетрик 17 | Constant.пэмАдресСервераPushgateway 18 | Constant.пэмПортСервераPushgateway 19 | Constant.пэмИспользоватьPushgateway 20 | Constant.пэмМногопоточныйРасчетМетрик 21 | CommonModule.пэмМетрикиСервер 22 | Role.пэмНастройкаМетрик 23 | Role.пэмПолучениеМетрик 24 | ScheduledJob.пэмВыполнитьРасчетМетрик 25 | CommonPicture.пэмPrometheusLogo 26 | HTTPService.Prometheus 27 | Enum.пэмТипыМетрик 28 | Enum.пэмМетодыПолученияМетрик 29 | Report.пэмСостояниеМетрик 30 | Constant.пэмПутьНаСервереPushgateway 31 | Constant.пэмПервоначальноеЗаполнениеВыполнено 32 | CommonModule.пэмМетрикиКлиент 33 | CommonModule.пэмМетрикиСерверПовтИсп 34 | CommonModule.пэмМетрикиВызовСервера 35 | ScheduledJob.пэмРегламентныеОперации 36 | CommonPicture.пэмPullGreen 37 | CommonPicture.пэмPullRed 38 | CommonPicture.пэмPushGreen 39 | CommonPicture.пэмPushRed 40 | 41 | --------------------------------------------------------------------------------