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

Reviewed-on: https://gitea.chocomarsh.com/self/monitoring/pulls/21
This commit is contained in:
emmatveev 2025-06-15 22:26:55 +03:00
commit 2a296a0838
4 changed files with 64 additions and 0 deletions

View File

@ -5,6 +5,7 @@ services:
image: mathwave/sprint-repo:monitoring
networks:
- clickhouse
- monitoring
environment:
CLICKHOUSE_PASSWORD: $CLICKHOUSE_PASSWORD_PROD
deploy:
@ -18,3 +19,5 @@ services:
networks:
clickhouse:
external: true
monitoring:
external: true

View File

@ -0,0 +1,25 @@
package routers
import (
"encoding/json"
"log"
increments "monitoring/app/storage/clickhouse/tables"
"net/http"
)
func AddIncrementMetric(r *http.Request) (interface{}, int) {
d := json.NewDecoder(r.Body)
body := increments.IncrementMetric{}
err := d.Decode(&body)
if err != nil {
return nil, http.StatusBadRequest
}
err = increments.AddIncrementMetric(body)
if err != nil {
log.Print(err.Error())
return nil, http.StatusInternalServerError
}
return nil, http.StatusAccepted
}

View File

@ -0,0 +1,34 @@
package storage
import (
"context"
"time"
)
type IncrementMetric struct {
Timestamp time.Time `json:"timestamp"`
Service string `json:"service"`
Environment string `json:"environment"`
Name string `json:"name"`
Count int `json:"count"`
}
func AddIncrementMetric(metric IncrementMetric) error {
batch, err := connection().PrepareBatch(context.Background(), "INSERT INTO increments")
if err != nil {
return err
}
err = batch.Append(
metric.Timestamp,
metric.Service,
metric.Environment,
metric.Name,
metric.Count,
)
if err != nil {
return err
}
return batch.Send()
}

View File

@ -4,6 +4,7 @@ import (
"encoding/json"
"log"
endpoint "monitoring/app/routers/metrics"
increment "monitoring/app/routers/metrics"
task "monitoring/app/routers/metrics"
client "monitoring/app/storage/clickhouse"
"net/http"
@ -43,6 +44,7 @@ func main() {
http.HandleFunc("/api/v1/metrics/endpoint", handlerWrapper(endpoint.AddEndpointMetric))
http.HandleFunc("/api/v1/metrics/task", handlerWrapper(task.AddTaskMetric))
http.HandleFunc("/api/v1/metrics/increment", handlerWrapper(increment.AddIncrementMetric))
log.Printf("Server started")
http.ListenAndServe(":1237", nil)
}