Categorygithub.com/borgkun/mongo-query-exporter
modulepackage
0.0.1
Repository: https://github.com/borgkun/mongo-query-exporter.git
Documentation: pkg.go.dev

# README

mongo-query-exporter

Prometheus экспортёр, который выполняет запросы в mongodb и возвращает метрики.

Сборка

Для зависимостей используется go-dep

    dep ensure
    go build -o mongo-query-exporter  main.go collector.go

Запуск

            ./mongo-query-exporter --help 
            usage: mongo-query-exporter --port=PORT [<flags>]

            Flags:
            --help           Show context-sensitive help (also try --help-long and --help-man).
            --port=PORT      Prometheus exporter listen port
            --config=CONFIG  Prometheus exporter listen port
            --version        Show application version.

--port обязательный аргумент

--config по умолчанию используется config.yaml, можно указать путь к другому файлу.

Конфигурация

Пример


collector_name: mongo-dev
database_uri: mongodb://mongo.dev/
metrics:
  - metric_name: esia_users # Название метрики
    type: gauge # Не импользуется
    function: aggregate # Не импользуется
    database: user # База данных
    collection: user # Коллекция
    interval: 5s # Время жизни кэша. После выполнения запроса он попадает в кэш на время interval. 
    value: count # Значение. `{ "_id" : null, "count" : 20 }`
    query: |
      [ {$match: {$and:[{"some_user_id": {$ne: null}}, { $or: [{"some_date": {$lte: "2019-02-28 23:59:59"} },{"some_date": null}]}]}}, { $group: { _id: "$id", count: {$sum:1} } }]

interval - в формате golang time.Duration. Например можно использовать: 1s,1m,1h,1d

Дата/Время

Поддерживается указание даты в форматах:

(new Date("2016-01-01 23:59:59"))
ISODate("2019-01-01 23:59:59")

Указанные даты парсятся, конвертируюся в EXT JSON в формате {$date:{$numberLong:"134234234234"}}, далее преобразуются в bson запрос.

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author