prometheus_1C_exporter

command module
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2025 License: MPL-2.0 Imports: 18 Imported by: 0

README ΒΆ

Prometheus 1C Exporter

ΠœΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ экспортСр ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ 1Π‘ для Prometheus с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями управлСния сбором Π΄Π°Π½Π½Ρ‹Ρ….

πŸ” ВозмоТности

  • Π‘Π±ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ 1Π‘ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ rac:

    • ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ
    • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСров ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
    • АктивныС соСдинСния ΠΈ сСансы
    • РСсурсы процСссов (ΠΏΠ°ΠΌΡΡ‚ΡŒ, CPU)
    • БостояниС дисковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (IOPS, latency)
    • Бтатус Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ
    • И Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • Π“ΠΈΠ±ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сбором ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ:

    • Выборочная приостановка сбора
    • АвтоматичСскоС Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
    • Π Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ эндпоинты для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ
  • Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Grafana

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² качСствС слуТбы (Windows/Linux)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π° ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСров

πŸ“¦ Установка

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования
  • Go 1.19+ (для сборки ΠΈΠ· исходников)
  • Доступ ΠΊ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ rac
  • Prometheus 2.0+
Бпособы установки:
  1. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ:
    Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ послСдний Ρ€Π΅Π»ΠΈΠ·

  2. Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· исходников:

    git clone https://github.com/LazarenkoA/prometheus_1C_exporter
    cd prometheus_1C_exporter
    go build -o "1C_exporter"
    

πŸš€ Запуск

Linux:

./1C_exporter -port=9095 --settings=/path/to/settings.yaml

Windows:

./1C_exporter.exe -port=9095 --settings=/path/to/settings.yaml

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настроСк examples_settings.yaml

βš™οΈ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Prometheus

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² prometheus.yml:

scrape_configs:
  - job_name: '1c_metrics'
    scrape_interval: 30s
    metrics_path: '/metrics'
    static_configs:
      - targets: ['1c-server1:9091', '1c-server2:9091']

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ: Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ задания для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

scrape_configs:
  - job_name: '1c_os_metrics'
    scrape_interval: 10s
    metrics_path: '/metrics_os'
    static_configs:
      - targets: ['1c-server1:9091']

  - job_name: '1c_rac_metrics'
    scrape_interval: 30s
    metrics_path: '/metrics_rac'
    static_configs:
      - targets: ['1c-server1:9091']

πŸ›  Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сбором ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

ΠœΠ΅Ρ‚ΠΎΠ΄ URL-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
GET /Pause metricNames
offsetMin (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
GET /Continue metricNames

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сбор Π½Π° 5 ΠΌΠΈΠ½ΡƒΡ‚:

http://host:9091/Pause?metricNames=processes,connections&offsetMin=5

Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сбор:

http://host:9091/Continue?metricNames=disk_metrics

πŸ“Š ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚
БистСмныС CPU, ΠΏΠ°ΠΌΡΡ‚ΡŒ, диски /metrics_os
RAC-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ, соСдинСния, сСансы /metrics_rac
ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ВсС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ /metrics
ДСтализация ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ
ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ОписаниС Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…
available_performance Доступная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ хоста HistogramVec
sessions_data ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ сСссий ΠΈΠ· кластСра 1Π‘ HistogramVec
session БСссии 1Б HistogramVec
connect БоСдинСния 1Б HistogramVec
client_lic ΠšΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ 1Π‘ HistogramVec
shedule_job БостояниС Π³Π°Π»ΠΊΠΈ "Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ", Ссли Π³Π°Π»ΠΊΠ° установлСна Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 1 ΠΈΠ½Π°Ρ‡Π΅ 0 ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Gauge
cpu ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ CPU ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссора" HistogramVec
processes ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ CPU/памяти Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ процСссов HistogramVec
disk ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ дисков HistogramVec

πŸ“ˆ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов PromQL

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ:

sum by (licSRV) (client_lic{quantile="0.99", licSRV=~"(?i).+sys.+"})

БрСдняя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU:

avg_over_time(CPU{quantile="0.99"} [1m])

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ процСссов:

topk(10, sum(avg_over_time(Processes{quantile="0.99", metrics="cpu"}[1m])) by (procName) )

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠžΠ—Π£ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ процСссов:

topk(10, sum(avg_over_time(Processes{quantile="0.99", metrics="memoryRSS"}[1m])) by (procName) )

Доступная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 1Π‘:

avg_over_time(AvailablePerformance{quantile="0.99"}[10m])

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ сСансов Π² 1Π‘:

Session{quantile="0.99"}

⚠️ Локализация ошибок

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  • Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ RAC-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹
  • ΠŸΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹ Π² firewall
  • Π›ΠΎΠ³ΠΈ прилоТСния (Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· установку уровня логирования LogLevel: 5 Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅)

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
mock
Package mock_models is a generated GoMock package.
Package mock_models is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL