From 0e55b143d6bbea658b4bff9581e47253f670ceae Mon Sep 17 00:00:00 2001 From: mxssl Date: Sun, 11 Feb 2024 01:04:18 +0300 Subject: [PATCH] goreleaser experiment --- .goreleaser.yml | 7 +++---- Dockerfile | 23 +++++++++++------------ README.md | 21 ++++++++++----------- docker-compose.yml | 3 +-- main.go | 4 ++-- 5 files changed, 27 insertions(+), 31 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 8a25138..d566338 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -14,10 +14,9 @@ snapshot: name_template: "{{ .Tag }}" changelog: sort: asc - filters: - exclude: - - '^docs:' - - '^test:' +archives: + - name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}" + format: tar.gz dockers: - goos: linux goarch: amd64 diff --git a/Dockerfile b/Dockerfile index cce6c67..f271672 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,21 @@ +# syntax=docker/dockerfile:1 FROM golang:1.21.6-alpine3.18 as builder - -ENV GO111MODULE=on - WORKDIR /go/src/github.com/mxssl/selectel-billing-exporter COPY . . - -RUN apk add --no-cache \ - ca-certificates \ - curl \ - git - -RUN CGO_ENABLED=0 \ +RUN < ``` Запускаем экспортер: ```sh -docker-compose up -d +docker compose up -d ``` Проверить работу экспортера: ```sh -docker-compose ps -docker-compose logs +docker compose ps +docker compose logs ``` Метрики доступны по url `your_ip:6789/metrics` @@ -68,7 +67,7 @@ spec: spec: containers: - name: exporter - image: mxssl/selectel-billing-exporter:1.1.1 + image: mxssl/selectel-billing-exporter:1.1.3 command: ["./app"] ports: - containerPort: 80 @@ -95,7 +94,7 @@ spec: kubectl apply -n exporters -f your-file.yaml ``` -Для namespace exporters метрики будут доступны по адресу `selectel-billing.exporters:6789/metrics` +Внутри кластера метрики будут доступны по адресу `selectel-billing.exporters.svc.cluster.local:6789/metrics` ## Настройка для prometheus @@ -103,7 +102,7 @@ kubectl apply -n exporters -f your-file.yaml - job_name: 'selectel_billing' scrape_interval: 60m static_configs: - - targets: ['exporter_ip:6789'] + - targets: ['exporter_address:6789'] ``` ## Пример алерта для alertmanager @@ -115,8 +114,8 @@ kubectl apply -n exporters -f your-file.yaml labels: severity: warning annotations: - summary: "{{ $labels.instance }}: В облаке Selectel на счете меньше 30 тыс рублей" - description: "Необходимо пополнить счет облака Selectel" + summary: "{{ $labels.instance }}: В хостинге Selectel на счете меньше 30 000 рублей" + description: "Необходимо пополнить счет в хостинге Selectel" ``` ## Дашборд для графаны diff --git a/docker-compose.yml b/docker-compose.yml index 8ca6ceb..2a45fea 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,9 @@ version: '3' - services: selectel-billing-exporter: container_name: selectel-billing-exporter build: . - image: mxssl/selectel-billing-exporter:1.0.2 + image: mxssl/selectel-billing-exporter:1.0.3 ports: - "6789:80" restart: always diff --git a/main.go b/main.go index b69a61b..16fe27e 100644 --- a/main.go +++ b/main.go @@ -14,7 +14,7 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" ) -// TOKEN for selectel API +// TOKEN для Selectel API var TOKEN string type selectelBillingResponse struct { @@ -55,7 +55,7 @@ func main() { log.Fatal(srv.ListenAndServe()) }() - log.Println("Экспортер готов принимать запросы от прометеуса на /metrics") + log.Println("Экспортер готов принимать запросы от Prometheus на /metrics") c := make(chan os.Signal, 1)