add chance for adding build data for logging

This commit is contained in:
Pavel 2024-05-22 18:04:54 +03:00
parent a38a88019c
commit c008ab69fb
3 changed files with 32 additions and 6 deletions

1
.gitignore vendored

@ -6,3 +6,4 @@ vendor/
main main
/versionrecover.bolt /versionrecover.bolt
/recover.bolt

@ -4,18 +4,33 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"log" "log"
"os"
"time"
"go.uber.org/zap" "go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
) )
var (
commit string = os.Getenv("COMMIT")
buildTime string = os.Getenv("BUILD_TIME")
version string = os.Getenv("VERSION")
)
// $env:COMMIT=$(git rev-parse --short HEAD); $env:BUILD_TIME=$(Get-Date -UFormat "%Y-%m-%dT%H:%M:%SZ"); $env:VERSION=$(git describe --tags); go run cmd/app/main.go
func main() { func main() {
logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel)) logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel))
if err != nil { if err != nil {
log.Fatalf("failed to init zap logger: %v", err) log.Fatalf("failed to init zap logger: %v", err)
} }
ptime, err := time.Parse(time.RFC3339, buildTime)
if err != nil {
logger.Fatal("Error parsing build time:", zap.Error(err))
}
config, err := initialize.Configuration(".env.test") config, err := initialize.Configuration(".env.test")
if err != nil { if err != nil {
logger.Fatal("failed to init config: %v", zap.Error(err)) logger.Fatal("failed to init config: %v", zap.Error(err))
@ -28,7 +43,11 @@ func main() {
fmt.Println("env configuration: \n", string(configJSON)) fmt.Println("env configuration: \n", string(configJSON))
if err := app.Run(config, logger); err != nil { if err := app.Run(config, logger, app.Build{
Commit: commit,
Version: version,
BuildTime: ptime.Unix(),
}); err != nil {
logger.Fatal("failed to run app: %v", zap.Error(err)) logger.Fatal("failed to run app: %v", zap.Error(err))
} }
} }

@ -28,7 +28,13 @@ const (
shutdownTimeout = 5 * time.Second shutdownTimeout = 5 * time.Second
) )
func Run(config *models.Config, logger *zap.Logger) (appErr error) { type Build struct {
Commit string
Version string
BuildTime int64
}
func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error) {
defer func() { defer func() {
if recovered := recover(); recovered != nil { if recovered := recover(); recovered != nil {
appErr = errors.New("recovered panic on application run") appErr = errors.New("recovered panic on application run")
@ -41,7 +47,7 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) {
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer cancel() defer cancel()
clickHouseLogger, err := zaptrashlog.NewCore(ctx, zap.InfoLevel, config.Service.TrashLogHost, "version", "Commit", time.Now().Unix()) clickHouseLogger, err := zaptrashlog.NewCore(ctx, zap.InfoLevel, config.Service.TrashLogHost, build.Version, build.Commit, build.BuildTime)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -49,9 +55,9 @@ func Run(config *models.Config, logger *zap.Logger) (appErr error) {
//telegrammLogger, err := zaptg.NewCore(ctx, //telegrammLogger, err := zaptg.NewCore(ctx,
// zap.InfoLevel, // zap.InfoLevel,
// "1408111289:AAHfWZRiBQRncb2gl2LtU8OeASjfJi4e8YE", // "1408111289:AAHfWZRiBQRncb2gl2LtU8OeASjfJi4e8YE",
// "version.Release", // build.Version,
// "version.Commit", // build.Commit,
// 0, // build.BuildTime,
// -1001256687920, // -1001256687920,
//) //)
//if err != nil { //if err != nil {