Посетите prometheus.io для получения полной документации, примеров и руководств.
Prometheus, проект Cloud Native Computing Foundation, представляет собой систему мониторинга систем и сервисов. Он собирает метрики из настроенных целевых объектов через определенные промежутки времени, оценивает выражения правил, отображает результаты и может активировать оповещения при соблюдении определенных условий.
Особенности, которые отличают Prometheus от других систем метрик и мониторинга:
Многомерная модель данных (временной ряд, определяемый именем метрики и набором измерений ключ/значение).
PromQL, мощный и гибкий язык запросов для использования этой размерности.
Нет зависимости от распределенного хранилища; отдельные серверные узлы автономны
Модель HTTP-вытягивания для сбора временных рядов
Отправка временных рядов поддерживается через промежуточный шлюз для пакетных заданий.
Цели обнаруживаются посредством обнаружения служб или статической конфигурации.
Поддержка нескольких режимов построения графиков и информационных панелей.
Поддержка иерархической и горизонтальной федерации
Существуют различные способы установки Прометея.
Предварительно скомпилированные двоичные файлы выпущенных версий доступны в разделе загрузки на сайте prometheus.io. Рекомендуемый способ установки Prometheus — использовать последнюю версию двоичного файла. Подробности см. в главе «Установка» документации.
Образы Docker доступны на Quay.io или Docker Hub.
Вы можете запустить контейнер Prometheus и опробовать его с помощью
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Теперь Prometheus будет доступен по адресу http://localhost:9090/.
Чтобы собрать Прометей из исходного кода, вам необходимо:
Go версии 1.17 или выше.
NodeJS версии 16 или выше.
npm версии 7 или выше.
Начните с клонирования репозитория:
git клон https://github.com/prometheus/prometheus.gitcd Прометей
Вы можете использовать инструмент go
для сборки и установки двоичных файлов prometheus
и promtool
в свой GOPATH
:
GO111MODULE=начнём с установки github.com/prometheus/prometheus/cmd/... прометей --config.file=your_config.yml
Однако при использовании go install
для сборки Prometheus Prometheus будет ожидать, что сможет читать свои веб-ресурсы из каталогов локальной файловой системы в разделах web/ui/static
и web/ui/templates
. Чтобы эти ресурсы были найдены, вам придется запустить Prometheus из корня клонированного репозитория. Также обратите внимание, что эти каталоги не включают пользовательский интерфейс React, если он не был создан явно с помощью make assets
или make build
.
Пример приведенного выше файла конфигурации можно найти здесь.
Вы также можете выполнить сборку с помощью make build
, который скомпилирует веб-ресурсы, чтобы Prometheus можно было запускать откуда угодно:
сделать сборку ./prometheus --config.file=your_config.yml
Makefile предоставляет несколько целей:
build : сборка двоичных файлов prometheus
и promtool
(включая сборку и компиляцию в веб-ресурсах)
тест : запустить тесты
test-short : запустить короткие тесты
format : отформатируйте исходный код
ветеринар : проверьте исходный код на наличие распространенных ошибок.
активы : создайте пользовательский интерфейс React
Prometheus поставляется со многими плагинами обнаружения сервисов. При сборке Prometheus из исходного кода вы можете отредактировать файл plugins.yml, чтобы отключить обнаружение некоторых сервисов. Файл представляет собой список путей импорта go в формате yaml, который будет встроен в двоичный файл Prometheus.
После того, как вы изменили файл, вам нужно снова запустить make build
.
Если вы используете другой метод для компиляции Prometheus, make plugins
соответствующим образом сгенерирует файл плагинов.
Если вы добавите дополнительные плагины, которые мы на данный момент не поддерживаем, могут потребоваться дополнительные действия для настройки файлов go.mod
и go.sum
. Как всегда, будьте особенно осторожны при загрузке стороннего кода.
Цель make docker
предназначена для использования в нашей системе CI. Вы можете создать образ Docker локально с помощью следующих команд:
сделать промо promu crossbuild -p linux/amd64 сделать npm_licenses сделать common-docker-amd64
Мы публикуем наш protobuf для удаленной записи самостоятельно на сайте buf.build.
Вы можете использовать это как библиотеку:
иди и возьми buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
Это экспериментально.
Чтобы соответствовать правилам модов Go, номера выпусков Prometheus не совсем совпадают с выпусками модулей Go. Для выпусков Prometheus v2.yz мы публикуем эквивалентные теги v0.yz.
Таким образом, пользователь, желающий использовать Prometheus v2.35.0 в качестве библиотеки, может сделать:
иди на github.com/prometheus/[email protected]
Это решение ясно дает понять, что мы можем нарушить работу наших внутренних API Go между второстепенными выпусками, ориентированными на пользователя, поскольку критические изменения разрешены в нулевой основной версии.
Дополнительную информацию о создании, запуске и разработке пользовательского интерфейса на основе React см. в README.md приложения React.
Документация Godoc доступна на pkg.go.dev. Из-за особенностей модулей Go v2.xy будет отображаться как v0.xy.
См. страницу сообщества, чтобы узнать, как связаться с разработчиками и пользователями Prometheus по различным каналам связи.
Обратитесь к CONTRIBUTING.md.
Лицензия Apache 2.0, см. ЛИЦЕНЗИЮ.