Giter VIP home page Giter VIP logo

mq-monitoring's Introduction

mq-monitoring

Library for monitoring of Monique components.

MongoDB

Для того чтобы монитроинговый компонент Monique мог работать, на машине, на которой он запускается, должна быть установлена MongoDB.

Если на машине установлен докер, то сделать это можно простой командой:

docker run -it --name monique -p <порт>:27017 -d mongo --auth

Порт в данной команде должен соответствовать порту, указанному пользователем в config.json в поле port секции "deploy -> mongo".

В самой базе данных необходимо создать пользователя, который обладает правами на чтение из запись. По умолчанию имя и пароль пользователя совпадают с названием базы данных.

Создание пользователя в MongoDB

Для создания пользователя в самой MongoDB необходимо выполнить описанные ниже шаги.

  1. Если база абсолютно новая и в ней нет пользователей категории admin, то необходимо создать такового:
# Подключиться к контейнеру через bash
sudo docker exec -it monique bash

# Подключиться к локальной для контейнера монге
mongo

# Создать первого админа
use admin
db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]})

# Выйти из MongoDB
exit

# Выйти из контейнера
exit
  1. После того, как у нас появился пользователь категории admin, можно сделать следующее:
# Подключиться к MongoDB с авторизацией под admin
mongo -u "root" -p "root" localhost --authenticationDatabase "admin"

# Создать дефолтного пользователя для базы monique
use monique
db.createUser({user:"monique", pwd:"monique",roles:["readWrite"]})

Компонент

Мониторинговый компонент, ответственный за сбор и запись мониторинговых сообщений в базу, запускается следующей последовательностью команд:

stack build
stack exec mq-monitoring

Данные будут записываться в коллекцию monitoring схемы monique.

REST-ручка

На машине с запущенным монитринговым компонентом, кроме него самого, предлагается поднимать ручку, которая общается с внешним миром по REST-протоколу и предоставляет удобный интерфейс взаимодействия с базой мониторинговых сообщений.

Ручка поднимается следующими командами:

stack build
stack exec mq-monitoring-handler

Порт

По умолчанию ручка поднимается на 3000 порту. Чтобы изменить порт, нужно соответствующим образом поменять поле port секции "params -> mq_monitoring_handler" в config.json:

"params": {
  "mq_monitoring_handler": {
    "port": <мой_порт>
  }
}

Использование

Ручка предоставляет пользователю возможность по GET запросу получать мониторинговые сообщения из базы.

У запроса monitoring есть следующие параметры:

  • name определяет то, к какому компоненту будут относиться возвращённые сообщения; если параметр name не заполнен, то будут возвращены сообщения от всех компонентов;
  • since представляет из себя UNIX Timestamp в миллисекундах и определяет то, за какой период времени мы хотим получить мониторинговые сообщения; если параметр since не заполнен, то будут возвращены сообщения за последние 24 часа;ы
  • last является не принимающим никаких параметров флагом, наличие которого ограничивает выдачу сообщений для выбранного name самым последним сообщением; если параметр name не заполнен, то будут возвращены последние сообщения от всех компонентов.

Запрос формируется следующим образом:

# Все сообщения от компонента с заданного момента времени
<хост>:<порт>/v1/monitoring?name=<имя_компонента>&since=<нижняя_временная_отсечка>

# Последнее сообщение от заданного компонента
<хост>:<порт>/v1/monitoring?name=<имя_компонента>&last

# Последнее сообщение от каждого из компонентов
<хост>:<порт>/v1/monitoring?last

mq-monitoring's People

Contributors

alexkanerus avatar

Watchers

 avatar  avatar

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.