Merge pull request 'master' (#18) from master into dev

Reviewed-on: https://gitea.chocomarsh.com/self/monitoring/pulls/18
This commit is contained in:
emmatveev 2025-06-14 03:28:18 +03:00
commit 50459bcb64
5 changed files with 60 additions and 14 deletions

View File

@ -1,23 +1,20 @@
version: "3.4"
services:
queues:
monitoring:
image: mathwave/sprint-repo:monitoring
networks:
- monitoring
- clickhouse
environment:
MONGO_HOST: "mongo.sprinthub.ru"
MONGO_PASSWORD: $MONGO_PASSWORD_PROD
CLICKHOUSE_PASSWORD: $CLICKHOUSE_PASSWORD_PROD
deploy:
mode: replicated
restart_policy:
condition: any
placement:
constraints: [node.labels.stage == production]
update_config:
parallelism: 1
order: start-first
networks:
queues:
external: true
clickhouse:
external: true

View File

@ -0,0 +1,43 @@
name: Deploy Prod
on:
pull_request:
branches:
- prod
types: [closed]
jobs:
build:
name: Build
runs-on: [dev]
steps:
- name: login
run: docker login -u mathwave -p ${{ secrets.DOCKERHUB_PASSWORD }}
- name: checkout
uses: actions/checkout@v4
with:
ref: prod
- name: build
run: docker build -t mathwave/sprint-repo:monitoring .
push:
name: Push
runs-on: [dev]
needs: build
steps:
- name: push
run: docker push mathwave/sprint-repo:monitoring
deploy-prod:
name: Deploy prod
runs-on: [prod]
needs: push
steps:
- name: login
run: docker login -u mathwave -p ${{ secrets.DOCKERHUB_PASSWORD }}
- name: checkout
uses: actions/checkout@v4
with:
ref: prod
- name: deploy
env:
CLICKHOUSE_PASSWORD_PROD: ${{ secrets.CLICKHOUSE_PASSWORD_PROD }}
run: docker stack deploy --with-registry-auth -c ./.deploy/deploy-prod.yaml infra

View File

@ -57,15 +57,16 @@ func Migrate() error {
context.TODO(),
`CREATE TABLE IF NOT EXISTS endpoints (
timestamp DateTime,
service_name LowCardinality(String),
service LowCardinality(String),
environment LowCardinality(String),
endpoint LowCardinality(String),
status_code UInt16,
response_time_ms UInt32,
request_method LowCardinality(String)
method LowCardinality(String)
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(timestamp)
ORDER BY (service_name, endpoint, request_method, timestamp);`,
ORDER BY (service, environment, endpoint, request_method, timestamp);`,
)
if err != nil {
log.Fatal(err)
@ -76,14 +77,15 @@ func Migrate() error {
context.TODO(),
`CREATE TABLE IF NOT EXISTS tasks (
timestamp DateTime,
service_name LowCardinality(String),
queue_name LowCardinality(String),
service LowCardinality(String),
environment LowCardinality(String),
queue LowCardinality(String),
success Bool,
execution_time_ms UInt32
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(timestamp)
ORDER BY (service_name, queue_name, timestamp);`,
ORDER BY (service, environment, queue, timestamp);`,
)
if err != nil {
log.Fatal(err)

View File

@ -11,6 +11,7 @@ import (
type EndpointMetric struct {
Timestamp time.Time `json:"timestamp"`
Service string `json:"service"`
Environment string `json:"environment"`
Endpoint string `json:"endpoint"`
StatusCode int `json:"status_code"`
ResponseTime int `json:"response_time"`
@ -26,6 +27,7 @@ func AddEndpointMetric(metric EndpointMetric) error {
err = batch.Append(
metric.Timestamp,
metric.Service,
metric.Environment,
metric.Endpoint,
metric.StatusCode,
metric.ResponseTime,

View File

@ -8,6 +8,7 @@ import (
type TaskMetric struct {
Timestamp time.Time `json:"timestamp"`
Service string `json:"service"`
Environment string `json:"environment"`
Queue string `json:"queue"`
Success bool `json:"success"`
ExecutionTimeMs int `json:"execution_time_ms"`
@ -22,6 +23,7 @@ func AddTaskMetric(metric TaskMetric) error {
err = batch.Append(
metric.Timestamp,
metric.Service,
metric.Environment,
metric.Queue,
metric.Success,
metric.ExecutionTimeMs,