package storage import ( "context" client "monitoring/app/storage/clickhouse" "time" "github.com/ClickHouse/clickhouse-go/v2/lib/driver" ) type EndpointMetric struct { Timestamp time.Time `json:"timestamp"` Service string `json:"service"` Endpoint string `json:"endpoint"` StatusCode int `json:"status_code"` ResponseTime int `json:"response_time"` Method string `json:"method"` } func AddEndpointMetric(metric EndpointMetric) error { batch, err := connection().PrepareBatch(context.Background(), "INSERT INTO endpoints") if err != nil { return err } err = batch.Append( metric.Timestamp, metric.Service, metric.Endpoint, metric.StatusCode, metric.ResponseTime, metric.Method, ) if err != nil { return err } return batch.Send() } func connection() driver.Conn { return client.Connection }