Visite prometheus.io para obter a documentação completa, exemplos e guias.
Prometheus, um projeto da Cloud Native Computing Foundation, é um sistema de monitoramento de sistemas e serviços. Ele coleta métricas de alvos configurados em determinados intervalos, avalia expressões de regras, exibe os resultados e pode acionar alertas quando condições especificadas são observadas.
Os recursos que distinguem o Prometheus de outras métricas e sistemas de monitoramento são:
Um modelo de dados multidimensional (séries temporais definidas pelo nome da métrica e conjunto de dimensões de chave/valor)
PromQL, uma linguagem de consulta poderosa e flexível para aproveitar essa dimensionalidade
Nenhuma dependência de armazenamento distribuído; nós de servidor único são autônomos
Um modelo pull HTTP para coleta de série temporal
O envio de séries temporais é suportado por meio de um gateway intermediário para trabalhos em lote
Os alvos são descobertos por meio de descoberta de serviço ou configuração estática
Vários modos de suporte a gráficos e painéis
Suporte para federação hierárquica e horizontal
Existem várias maneiras de instalar o Prometheus.
Binários pré-compilados para versões lançadas estão disponíveis na seção de download em prometheus.io. Usar o binário de produção mais recente é a maneira recomendada de instalar o Prometheus. Consulte o capítulo Instalação na documentação para todos os detalhes.
As imagens Docker estão disponíveis em Quay.io ou Docker Hub.
Você pode iniciar um contêiner do Prometheus para testá-lo
docker run --name prometheus -d -p 127.0.0.1:9090:9090 baile/prometheus
O Prometheus agora estará acessível em http://localhost:9090/.
Para construir o Prometheus a partir do código-fonte, você precisa de:
Vá para a versão 1.17 ou superior.
NodeJS versão 16 ou superior.
npm versão 7 ou superior.
Comece clonando o repositório:
clone do git https://github.com/prometheus/prometheus.gitcd prometheus
Você pode usar a ferramenta go
para criar e instalar os binários prometheus
e promtool
em seu GOPATH
:
GO111MODULE = vá instalar github.com/prometheus/prometheus/cmd/... prometheus --config.file=seu_config.yml
No entanto , ao usar go install
para construir o Prometheus, o Prometheus espera poder ler seus ativos da web nos diretórios do sistema de arquivos local em web/ui/static
e web/ui/templates
. Para que esses ativos sejam encontrados, você terá que executar o Prometheus a partir da raiz do repositório clonado. Observe também que esses diretórios não incluem a UI do React, a menos que ela tenha sido construída explicitamente usando make assets
ou make build
.
Um exemplo do arquivo de configuração acima pode ser encontrado aqui.
Você também pode construir usando make build
, que irá compilar nos ativos da web para que o Prometheus possa ser executado de qualquer lugar:
fazer construir ./prometheus --config.file=seu_config.yml
O Makefile fornece vários alvos:
build : constrói os binários prometheus
e promtool
(inclui construção e compilação em ativos da web)
test : execute os testes
test-short : executa os testes curtos
format : formata o código fonte
vet : verifique o código-fonte em busca de erros comuns
ativos : construa a UI do React
O Prometheus vem com muitos plug-ins de descoberta de serviço. Ao criar o Prometheus a partir do código-fonte, você pode editar o arquivo plugins.yml para desabilitar algumas descobertas de serviço. O arquivo é uma lista formatada em yaml do caminho de importação go que será incorporada ao binário do Prometheus.
Depois de alterar o arquivo, você precisa executar make build
novamente.
Se você estiver usando outro método para compilar o Prometheus, make plugins
irá gerar o arquivo de plugins de acordo.
Se você adicionar plug-ins fora da árvore, que não endossamos no momento, etapas adicionais poderão ser necessárias para ajustar os arquivos go.mod
e go.sum
. Como sempre, tenha muito cuidado ao carregar código de terceiros.
O destino make docker
foi projetado para uso em nosso sistema CI. Você pode construir uma imagem docker localmente com os seguintes comandos:
fazer promoção promu crossbuild -p linux/amd64 faça npm_licenses faça common-docker-amd64
Estamos publicando nosso protocolo Remote Write de forma independente em buf.build.
Você pode usar isso como uma biblioteca:
vá buscar buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
Isso é experimental.
Para cumprir as regras do go mod, o número de lançamento do Prometheus não corresponde exatamente aos lançamentos do módulo Go. Para as versões do Prometheus v2.yz, estamos publicando tags v0.yz equivalentes.
Portanto, um usuário que queira usar o Prometheus v2.35.0 como uma biblioteca poderia fazer:
acesse github.com/prometheus/[email protected]
Esta solução deixa claro que podemos quebrar nossas APIs Go internas entre versões secundárias voltadas para o usuário, já que alterações significativas são permitidas na versão principal zero.
Para obter mais informações sobre construção, execução e desenvolvimento na UI baseada em React, consulte o README.md do aplicativo React.
A documentação do Godoc está disponível em pkg.go.dev. Devido às peculiaridades dos Módulos Go, v2.xy será exibido como v0.xy
Consulte a página da comunidade para saber como entrar em contato com os desenvolvedores e usuários do Prometheus em vários canais de comunicação.
Consulte CONTRIBUTING.md
Licença Apache 2.0, consulte LICENÇA.