Giter VIP home page Giter VIP logo

prometheus_1c_exporter's Introduction

prometheus_1c_exporter's People

Contributors

dependabot[bot] avatar gygabites avatar khorevaa avatar lazarenkoa avatar onokonem avatar shalimski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prometheus_1c_exporter's Issues

Подключение к нескольким RAS

Возможна ли реализация подключения exporter'a к нескольким RAS для одновременного сбора метрик с нескольких кластеров?

Процесс экспортера завершается с ошибкой

После совсем непродолжительной работы, процесс экспортера завершается ошибкой
Используется последний релиз

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x751899]

goroutine 36 [running]:
github.com/LazarenkoA/LogrusRotate.(*watcher).Cancel(0x0)
        /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:99 +0x19
github.com/LazarenkoA/LogrusRotate.(*Rotate).DeleteEmptyFile(0xc00021a810, 0xc0002149c8)
        /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:287 +0x47a
github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2.1({0xc000028aa0, 0x20}, {0xa3c770, 0xc0003a8d00}, {0x100?, 0xffffffffffffff9c?})
        /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:219 +0xa5
path/filepath.walk({0xc000028aa0, 0x20}, {0xa3c770, 0xc0003a8d00}, 0xc000105fb0)
        /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:438 +0xba
path/filepath.walk({0xc000249278, 0x15}, {0xa3c770, 0xc0003a8a90}, 0xc000105fb0)
        /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:458 +0x285
path/filepath.Walk({0xc000249278, 0x15}, 0xc000105fb0)
        /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:521 +0x6c
github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2()
        /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:208 +0xba
created by github.com/LazarenkoA/LogrusRotate.(*Rotate).Start
        /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:206 +0x445

Не стартует экспортер под линукс ubuntu20.04

Сам сервер и база находятся в докере, при старте экспортера получаю в статусе такое:

`1c_exporter.service - Prometheus 1C exporter
Loaded: loaded (/etc/systemd/system/1c_exporter.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2023-11-10 05:53:16 UTC; 7min ago
Process: 2140480 ExecStart=/usr/local/bin/1c_exporter --settings=/opt/1cexporter/settings.yaml (code=exited, status=2)
Main PID: 2140480 (code=exited, status=2)

Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerConnects).StartExplore.func1(0xc0002961c0, {0xc0000c0270, 0x14})
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/Connects.go:68 +0x103
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerConnects).StartExplore(0xc0002961c0)
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/Connects.go:86 +0x2c7
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*BaseExplorer).Start(0xc0002961c0, {0x7f588c69aa10, 0xc0002961c0})
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/BaseExplorer.go:158 +0x135
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: created by main.main.func1
Nov 10 05:53:16 1c-server-stage-ams3 1c_exporter[2140480]: /home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:66 +0x139
Nov 10 05:53:16 1c-server-stage-ams3 systemd[1]: 1c_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Nov 10 05:53:16 1c-server-stage-ams3 systemd[1]: 1c_exporter.service: Failed with result 'exit-code'.`

Настройки:

`Explorers:

  • Name: ClientLic
    Property:
    timerNotify: 60
  • Name: AvailablePerformance
    Property:
    timerNotify: 10
  • Name: CPU
    Property:
    timerNotify: 10
  • Name: disk
    Property:
    timerNotify: 10
  • Name: SheduleJob
    Property:
    timerNotify: 10
  • Name: Session
    Property:
    timerNotify: 60
  • Name: Connect
    Property:
    timerNotify: 60
  • Name: SessionsData
    Property:
    timerNotify: 10
  • Name: ProcData
    Property:
    processes:
    - rphost
    - ragent
    - rmngr
    timerNotify: 10

http сервис который возвращает массив json с кредами к БД

нужно для метрики SheduleJob

пример json:

#[

{

"Name": "hrmcorp-n17",

"UserName": "",

"UserPass": ""

}

#]
#DBCredentials: # Не обязательный параметр

URL: http://ca-fr-web-1/fresh/int/sm/hs/PTG_SysExchange/GetDatabase

User: ""

Password: ""

TLSSkipVerify: true # если true при обращении к сервису будут игнорироваться ошибки проверки сертификата

#RAC:
#Path: "C:\Program Files\1cv8\8.3.21.1644\bin\rac.exe"
#Port: "1545" # Не обязательный параметр
#Host: "localhost" # Не обязательный параметр
#Login: "" # Не обязательный параметр
#Pass: "" # Не обязательный параметр

LogDir: "/var/log/1cexporter/"
LogLevel: 5`

Systemd Unit:
`[Unit]
Description=Prometheus 1C exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/1c_exporter --settings=/opt/1cexporter/settings.yaml
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target`

Без рута таймаут ожидания результатов от rac

Подумал я, что не комильфо чтобы экспортер работал из под рута.
Сделал запуск службы от пользователя одинэсс.

[Service]
Type=simple
User=usr1cv8
Group=grp1cv8

С версией 8.3.20.1838 всё работало более менее, изредка возникали таймауты.
С версией 8.3.23.1688 получил что около 90% запусков rac завершаются по таймауту.
Настройки "частоты" как в примере

При запуске службы экспортера от рута таймауты отсутствуют.
Предположу, что это может быть связано с какими-нибудь ограничениями для простых пользвателей (может быть на частый запуск процессов или чем-нибудь похожим).
OS Debian 11.7.

{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:05+05:
00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:05+05:00"}
{"Name":"Connect","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 connection list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"Name":"Session","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:20+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Произошла ошибка","time":"2023-06-29T10:24:35+05:00"}
{"Name":"ClientLic","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --licenses --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T10:24:35+05:00"}

panic: runtime error: invalid memory address or nil pointer dereference

июн 26 22:03:22 srv1c systemd[1]: Started Prometheus 1C exporter.
июн 26 22:03:22 srv1c 1c_exporter[3582990]: port : 9091
июн 27 22:00:22 srv1c 1c_exporter[3582990]: panic: runtime error: invalid memory address or nil pointer dereference
июн 27 22:00:22 srv1c 1c_exporter[3582990]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x751899]
июн 27 22:00:22 srv1c 1c_exporter[3582990]: goroutine 38 [running]:
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*watcher).Cancel(0x0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:99 +0x19
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).DeleteEmptyFile(0xc0001e4bd0, 0xc000012120)
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:287 +0x47a
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2.1({0xc00012c2e0, 0x1f}, {0xa3c770, 0xc000113a00}, {0x100?, 0xffffffffffffff9c?})
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:219 +0xa5
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.walk({0xc00012c2e0, 0x1f}, {0xa3c770, 0xc000113a00}, 0xc000229fb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:438 +0xba
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.walk({0xc00013e3c0, 0x14}, {0xa3c770, 0xc00030c1a0}, 0xc000229fb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:458 +0x285
июн 27 22:00:22 srv1c 1c_exporter[3582990]: path/filepath.Walk({0xc00013e3c0, 0x14}, 0xc0015affb0)
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /opt/hostedtoolcache/go/1.19.9/x64/src/path/filepath/path.go:521 +0x6c
июн 27 22:00:22 srv1c 1c_exporter[3582990]: github.com/LazarenkoA/LogrusRotate.(*Rotate).Start.func2()
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:208 +0xba
июн 27 22:00:22 srv1c 1c_exporter[3582990]: created by github.com/LazarenkoA/LogrusRotate.(*Rotate).Start
июн 27 22:00:22 srv1c 1c_exporter[3582990]:         /home/runner/go/pkg/mod/github.com/!lazarenko!a/[email protected]/rotate.go:206 +0x445
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Failed with result 'exit-code'.
июн 27 22:00:22 srv1c systemd[1]: 1c_exporter.service: Consumed 23h 21min 51.635s CPU time.

Возможно это связано с тем, что днем (июн 27) служба сервера 1с сожрала всю память сервера и её прибил OOM-killer.

В качестве костыля добавил с Unit сервиса рестарт

Restart=always
RestartSec=30s

AvailablePerformance добавить идентификтор кластера и PID рабочего процесса

Что бы отслеживать нагрузку - на каждый кластер и процесс хотелось бы видеть отдельные метрики
Так как в кластере могут работать несколько рабочих процессов с различной моделью нагрузки - среднее значение не отображает полноценную картину.
Так же на одном хосте могут работать разные кластера - с различной моделью нагрузки.

ClusterUser&ClusterPwd

Добрый день!

Обнаружил также проблему с подключением к кластеру после запуска из релизного exe. Потом увидел сообщение о этой проблеме. Хотя обращение и закрыто, но в исходниках ошибка осталась, отсутствует блок добавления пароля и логина в строку параметров
image

Но я не опытный специалист по GIT и Go, поэтому могу ошибаться.

У себя запустил вставив недостающие блоки посмотрев изменения в одном из релизов. Все работает!

Спасибо!

При запуске на windows

{"L":"ERROR","T":"2024-02-13T11:56:46.044+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:56:56.046+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:56:56.811+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:56:56.811+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:56:57.533+0300","N":"SessionsData","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:56:58.938+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:56:58.938+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:56:59.751+0300","N":"AvailablePerformance","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 process list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:56:59.751+0300","N":"AvailablePerformance","M":"Произошла ошибка: Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 process list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:06.045+0300","N":"base","M":"ОС windows не поддерживается"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.062+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.791+0300","N":"Session","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.797+0300","N":"ClientLic","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --licenses --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:11.799+0300","N":"Connect","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 connection list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}
{"L":"ERROR","T":"2024-02-13T11:57:12.546+0300","M":"Произошла ошибка:\n\t Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 cluster list]\n\t\n"}
{"L":"ERROR","T":"2024-02-13T11:57:12.546+0300","M":"Произошла ошибка:\n\t Не удалось получить идентификатор кластера\n"}
{"L":"ERROR","T":"2024-02-13T11:57:13.426+0300","N":"SessionsData","M":"Произошла ошибка запуска:\n\terr:exit status 0xffffffff\n\tПараметры: [C:\Program Files\1cv8\8.3.18.1698\bin\rac.exe localhost:1540 session list --cluster=]\n\tStdErr:\ufffd訡\ufffd\ufffd ࠧ\ufffd\ufffd\ufffd\ufffd \ufffd\ufffdࠬ\ufffd\ufffd\ufffd\ufffd: cluster\r\n\n"}

Экспортёр не запускается в виде службы.

sc create "1c_exporter" ""C:\1c_exporter\prometheus_1C_exporter.exe" --settings=settings.yaml"
(гитхаб съел экранированные при помощи слэша кавычки)

При запуске службы пишет:
"Ошибка 1053: Сервис не ответил на запрос своевременно"

При этом если запускать просто из под консоли, не в виде службы, то работает нормально.

AvailablePerformance NaN

Релиз 1.4.6
Два рабочих сервера, что то пошло не по плану?))

AvailablePerformance{host="dsds",type="available",quantile="0.5"} NaN
AvailablePerformance{host="dsds",type="available",quantile="0.9"} NaN
AvailablePerformance{host="dsds",type="available",quantile="0.99"} NaN
AvailablePerformance_sum{host="dsds",type="available"} NaN
AvailablePerformance_count{host="dsds",type="available"} 1

Пустая base="" в SessionsData

Я могу ошибаться, но у меня сложилось впечатление, что экспортер пытается узнать список баз кластера только один раз запуске.
То есть если в запуске экспортера rac завершился по таймауту, то в SessionsData база будет незаполненной.

Были случаи, что несколько часов экспортер не заполняет базу и лечится это только рестартом экспортера.

SessionsData{appid="BackgroundJob",base="",datatype="deadtime",host="1c-crm",id="19291",servicename="",startedat="2023-06-29 08:23:17",user="DefUser",quantile="0.5"} 2.8004101

Лог

{"level":"info","msg":"Сбор метрик:AvailablePerformance,Session,Connect,SessionsData,ClientLic","time":"2023-06-29T08:08:15+05:00"}
{"error":"Произошла ошибка выполнения при попытки получить идентификатор кластера: \n\tВыполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 cluster list]\n\t","level":"error","msg":"","time":"2023-06-29T08:08:30+05:00"}
{"error":"Не удалось получить идентификатор кластера","level":"error","msg":"","time":"2023-06-29T08:08:30+05:00"}
{"Name":"Connect","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=]\n\tStdErr:Ошибка разбора параметра: cluster\n\n","level":"error","msg":"Ошибка получения списка баз","time":"2023-06-29T08:08:44+05:00"}
{"Name":"Connect","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=]\n\tStdErr:Ошибка разбора параметра: cluster\n\n","level":"warning","msg":"Не удалось получить список баз","time":"2023-06-29T08:08:44+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Ошибка получения списка баз","time":"2023-06-29T08:08:45+05:00"}
{"Name":"SessionsData","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 infobase summary list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"warning","msg":"Не удалось получить список баз","time":"2023-06-29T08:08:45+05:00"}
{"Name":"ClientLic","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --licenses --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:08:45+05:00"}
{"Name":"Session","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 session list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:09:00+05:00"}
{"Name":"Connect","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 connection list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:09:29+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"","time":"2023-06-29T08:10:26+05:00"}
{"Name":"AvailablePerformance","error":"Выполнение команды прервано по таймауту\n\tПараметры: [/opt/1cv8/x86_64/8.3.23.1688/rac localhost:1545 process list --cluster=2029820c-f1fe-4920-853b-a35579bd2a7f]\n\t","level":"error","msg":"Произошла ошибка","time":"2023-06-29T08:10:26+05:00"}

не удается запустить службу

файл настроек:
Explorers:

  • Name: ClientLic
    Property:
    timerNotyfy: 60
  • Name: AvailablePerformance
    Property:
    timerNotyfy: 10
  • Name: CPU
    Property:
    timerNotyfy: 10
  • Name: disk
    Property:
    timerNotyfy: 10
  • Name: SheduleJob
    Property:
    timerNotyfy: 10
  • Name: Session
    Property:
    timerNotyfy: 60
  • Name: Connect
    Property:
    timerNotyfy: 60
  • Name: SessionsData
    Property:
    timerNotyfy: 10
  • Name: ProcData
    Property:
    processes:
    - rphost
    - ragent
    - rmngr
    timerNotyfy: 10

RAC:
Path: "C:\Program Files\1cv8\8.3.22.1923\bin\rac.exe"
Port: "1545" # Не обязательный параметр
Host: "localhost" # Не обязательный параметр
Login: "" # Не обязательный параметр
Pass: "" # Не обязательный параметр

LogDir: # Если на задан логи будут писаться в каталог с исполняемым файлом
LogLevel: 5 # Уровень логирования от 2 до 6, где 2 - ошибка, 3 - предупреждение, 4 - информация, 5 - дебаг, 6 - трейс
TimeRotate: 1 # Время в часах через которое будет создаваться новый файл логов
TTLLogs: 8 # Время жизни логов в часах

///////////ошибка запуска
C:\Program Files\1c_exporter>1c_exporter.exe --settings=C:\Program Files\1c_exporter\settings.yaml
panic: Файл настроек "C:\Program" не найден

goroutine 1 [running]:
main.loadSettings(0xc00001a36b, 0xa, 0x2)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/settings.go:75 +0x3cc
main.main()
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:49 +0x29b

host в метрике

Добрый день, в метрике host подставляется значение "имя сервера", а не хоста на котором запущенна сессия.
Подскажите так и задумано?
SessionsData{appid="1CV8C",base="base",datatype="memorytotal",host="1csrv",id="46",servicename="",startedat="2024-02-08 13:29:00",user="user",quantile="0.5"} 5.255222024e+09

При этом в логе host указывается верно
{"L":"DEBUG","T":"2024-02-15T09:20:57.636+0300","N":"Session","M":"Парс результата","strIn":"\nsession : a63cd205-4afd-44ef-be34-aa1a902fc245\nsession-id 132270\ncnuser-name: user\nhost: srv-terminal\napp-id: 1CV8C

Grafana бесконечно потребляет ОЗУ

Начали тестировать мониторинг 1С средствами связки prometheus_1C_exporter + Prometheus + Grafana и столкнулись с бесконечным потреблением ОЗУ браузером (Chrome, Firefox) при использовании Time series графиков в Grafana по периоду "Last 6 hours" и обновлением данных раз в 30 секунд (или 5 минут).
Память растет на глазах и в скором времени браузер отваливается по ошибке "Out of Memory".
Как Вы решаете эту проблему?

З.Ы. У нас Prometheus 2.35.0-rc0.windows-amd65 + Grafana 8.4.7. Использовали как Chrome, так и Firefox.

Запуск в качестве службы Windows

Установил службу Windows через install.bat, но при попытке запуска сразу завершается.
Логи даже не успевают записаться.
Из журнала Windows:

  • "Превышение времени ожидания (30000 мс) при ожидании подключения службы "1C Prometheus exporter".";
  • "Сбой при запуске службы "1C Prometheus exporter" из-за ошибки
    Служба не ответила на запрос своевременно.".

SheduleJob - Проверка галки "блокировка регламентных заданий"

Добрый день, удалось все запустить, но не получается параметр SheduleJob.
В настроечном файле указан какой то json который требуется для получения этого параметра, но как правильно его использовать?

http сервис который возвращает массив json с кредами к БД

нужно для метрики SheduleJob

пример json:

#[

{

"Name": "hrmcorp-n17",

"UserName": "",

"UserPass": ""

}

#]

Имя базы и логин/пароль заполняю, комменты снимаю, но ругается на синтаксис. Есть пример правильного использования этого http сервиса?

нет параметров -cluster-user --cluster-pwd

Добрый день
До этого работал на Windows. Все отлично. Установил последний релиз (1.4.10) на Linux (Oracle Linux Server release 8.4)
В settings.yaml заполнил поля
Login: "1cadmin" # Не обязательный параметр
Pass: "12345" # Не обязательный параметр

В логах нет параметров -cluster-user=1cadmin --cluster-pwd=12345
{"Name":"SessionsData","error":"Произошла ошибка запуска:\n\terr:exit status 255\n\tПараметры: [/opt/1cv8/x86_64/8.3.20.1710/rac kronos-nsk-1c-app-el-01:1545 session list --cluster=a9fc75d6-b050-4727-ae98-07c6211743a3]\n\tStdErr:Ошибка операции администрирования\nАдминистратор кластера не аутентифицирован\n\n","

Пример настроенных Дашбордов

Воспользовался Вашим экспортером в связи с необходимостью оперативного мониторинга сервера 1С:

А нельзя ли привести или выложить используемые вами Дашборды для графаны, чтобы без особого погружения взять их за шаблон и перенастроить под себя ?

Получение метрик по всем кластерам одного сервера приложений

Добрый день!

Подскажите, есть ли возможность указания в конфигурационном файле, что необходимо собирать метрики со всех кластеров на одном сервере.
На текущий момент, на сколько я смог разобраться, метрики собираются только с одного кластера, даже при наличии нескольких.

Спасибо!

panic: label value "s\x94" is not valid UTF-8

Добрый день!
Столкнулись с проблемой при запуске. Примечательно, что проблема возникла на одном сервере, когда отсутствует на другом тестовом сервере, то есть ошибка может зависеть от настройки окружения.
Можете прокомментировать?
Спасибо!
//Алексей

1C_exporter.exe -port=9095 --settings=c:\TOOLS\Prometheus\1cExporter\settings.yaml
port : 9095
panic: label value "s\x94" is not valid UTF-8

goroutine 58 [running]:
github.com/prometheus/client_golang/prometheus.(*SummaryVec).WithLabelValues(0xc00018a190, 0xc0004faf00, 0x8, 0x8, 0xc000555f18, 0xc000384400)
/home/runner/go/pkg/mod/github.com/prometheus/[email protected]/prometheus/summary.go:610 +0xe6
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerSessionsMemory).StartExplore.func1(0xc0002362a0, 0xc000018508, 0x4)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/SessionsData.go:73 +0x2013
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*ExplorerSessionsMemory).StartExplore(0xc0002362a0)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/SessionsData.go:97 +0x4ab
github.com/LazarenkoA/prometheus_1C_exporter/explorers.(*BaseExplorer).Start(0xc0002362a0, 0x11c4380, 0xc0002362a0)
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/explorers/BaseExplorer.go:178 +0x9e
created by main.main.func1
/home/runner/work/prometheus_1C_exporter/prometheus_1C_exporter/main.go:62 +0xfa

Исходные коды мастера не соответствуют ветке последних изменений

Смотрим исходные коды мастера и не находим изменений, связанных с "параметры rac --cluster-user и --cluster-pwd" - эти строки просто отсутствуют.
Смотрим другую ветку и видим там все необходимые изменения.
Поэтому последний релиз (exe) не принимает параметры Login и Pass и не использует их. Авторизация администратора кластера не проходит.
Просьба поправить и пересобрать снова релиз. Спасибо, автор!

SheduleJob not worked on windows

Запустилось только после отключения SheduleJob
CPU,Procdata,disk - отключены намеренно

Explorers:
  - Name: ClientLic
    Property:
      timerNotyfy: 60
  - Name: AvailablePerformance
    Property:
      timerNotyfy: 10
#  - Name: CPU
#    Property:
#      timerNotyfy: 10
#  - Name: SheduleJob
#    Property:
#      timerNotyfy: 10
  - Name: Session
    Property:
      timerNotyfy: 60
  - Name: Connect
    Property:
      timerNotyfy: 60
  - Name: SessionsData
    Property:
      timerNotyfy: 10
#  - Name: ProcData
#    Property:
#      processes:
#        - rphost
#        - ragent
#        - rmngr
#      timerNotyfy: 10
#  - Name: disk
#    Property:
#      timerNotyfy: 10

Есть функционал отправки метрик как push сообщений?

Prometheus использует модель pull запросов для получения показателей. Такой подход удобен, если prometheus и наблюдаемый сервер находятся "рядом", но при необходимости сбора показателей на "удаленных" серверах гораздо удобнее и безопаснее использовать модель push запросов.

Планируется или может быть есть уже такой функционал?

Для подобных push сообщений для мониторинга ОС использую приложение telegraf и экспортирование в формате graphite, а на стороне prometheus - graphite-exporter.

Ошибка десириализации настроек

Добрый день.
Думаю что не я один такой)
Прошу подсказать как правильно настроить ваш экспортер на windows 2012 сервере.
Что сделал:

  • Установил git и go
  • Скачал вашу репу
  • Сделал go build -o "1с_exporter.exe"
  • После поправил файл конфига указав пути до RAC

image

  • больше не правил никаких параметров (возможно нужно что-то еще)

  • Пытаюсь запустить экспортера командой 1с_exporter.exe -port=9095 --settings=C:\prometheus_1c_exporter\settings.yaml

  • И получаю след. ошибку

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.