As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Esta seção explica como executar um servidor Prometheus com gravação remota em uma instância do Amazon Elastic Compute Cloud ( EC2Amazon). Ela explica como coletar métricas de um aplicativo de demonstração escrito em Go e enviá-las para um espaço de trabalho do Amazon Managed Service for Prometheus.
Pré-requisitos
Importante
Antes de começar, você deve ter instalado o Prometheus v2.26 ou posterior. Presumimos que você esteja familiarizado com o Prometheus, a Amazon e o EC2 Amazon Managed Service for Prometheus. Para obter informações sobre como instalar o Prometheus, consulte os Conceitos básicos
Se você não estiver familiarizado com a Amazon EC2 ou o Amazon Managed Service for Prometheus, recomendamos que você comece lendo as seguintes seções:
Crie uma função do IAM para a Amazon EC2
Para transmitir métricas, primeiro você deve criar uma função do IAM com a política AWS gerenciada AmazonPrometheusRemoteWriteAccess. Em seguida, você pode iniciar uma instância com o perfil e transmitir métricas para o seu espaço de trabalho do Amazon Managed Service for Prometheus.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Roles (Funções) e Create role (Criar função).
-
Para o tipo de entidade confiável, selecione AWS serviço. Para o caso de uso, escolha EC2. Escolha Próximo: Permissões.
-
Na barra de pesquisa, insira AmazonPrometheusRemoteWriteAccess. Em Nome da política AmazonPrometheusRemoteWriteAccess, selecione e escolha Anexar política. Selecione Next: Tags (Próximo: tags).
-
(Opcional) Crie tags do IAM para seu perfil do IAM. Escolha Próximo: revisar.
-
Insira um nome para o seu perfil. Escolha Criar política.
Execute uma EC2 instância da Amazon
Para iniciar uma EC2 instância da Amazon, siga as instruções em Iniciar uma instância no Guia do usuário do Amazon Elastic Compute Cloud para instâncias Linux.
Execute o aplicativo de demonstração
Depois de criar sua função do IAM e iniciar uma EC2 instância com a função, você pode executar um aplicativo de demonstração para vê-lo funcionar.
Para executar um aplicativo de demonstração e métricas de teste
-
Use o modelo a seguir para criar um arquivo Go chamado
main.go
.package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil) }
-
Execute os seguintes comandos para instalar as dependências corretas.
sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
-
Execute o aplicativo de demonstração.
go run main.go
O aplicativo de demonstração deve ser executado na porta 8000 e mostrar todas as métricas expostas do Prometheus. A seguir, veja um exemplo dessas métricas.
curl -s http://localhost:8000/metrics ... process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 1 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0
Criar um espaço de trabalho do Amazon Managed Service for Prometheus
Para criar um espaço de trabalho do Amazon Managed Service for Prometheus, siga as instruções em Create a espaço de trabalho.
Executar um servidor Prometheus
-
Use o seguinte exemplo de arquivo YAML como modelo para criar um novo arquivo chamado
prometheus.yaml
. Paraurl
,my-region
substitua pelo valor da sua região emy-workspace-id
pelo ID do espaço de trabalho que o Amazon Managed Service for Prometheus gerou para você. Pararegion
,my-region
substitua pelo valor da sua região.Exemplo: arquivo YAML
global: scrape_interval: 15s external_labels: monitor: 'prometheus' scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:8000'] remote_write: - url: https://aps-workspaces.
my-region
.amazonaws.com/workspaces/my-workspace-id
/api/v1/remote_write queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500 sigv4: region:my-region
-
Execute o servidor Prometheus para enviar as métricas do aplicativo de demonstração para seu espaço de trabalho do Amazon Managed Service for Prometheus.
prometheus --config.file=prometheus.yaml
O servidor Prometheus agora deverá enviar as métricas do aplicativo de demonstração para seu espaço de trabalho do Amazon Managed Service for Prometheus.