1
0
mirror of https://github.com/ManyakRus/telegram_loki.git synced 2025-01-20 09:09:25 +02:00

сделал DeveloperName

This commit is contained in:
Nikitin Aleksandr 2024-11-07 13:31:47 +03:00
parent cdd755f66e
commit de09e82e9a
11 changed files with 109 additions and 16 deletions

View File

@ -1 +1 @@
2024-11-07 07:04:59.532
2024-11-07 10:31:28.391

2
bin/sql/scripts.txt Normal file
View File

@ -0,0 +1,2 @@
{
}

View File

@ -1 +1 @@
00163
00165

View File

@ -18,7 +18,7 @@ func main() {
func StartApp() {
config_main.LoadENV_or_SettingsTXT()
config.FillSettings()
load_json.LoadJSON()
load_json.LoadJSON_All()
stopapp.StartWaitStop()

View File

@ -4,34 +4,56 @@ import (
"encoding/json"
"github.com/ManyakRus/starter/log"
"github.com/ManyakRus/starter/micro"
"github.com/ManyakRus/telegram_loki/internal/config"
"github.com/ManyakRus/telegram_loki/internal/types"
"os"
)
// LoadJSON - загружает 2 файла в формате .json в map
func LoadJSON() {
// LoadJSON_All - загружает 2 файла в формате .json в map
func LoadJSON_All() {
var err error
dir := micro.ProgramDir_bin()
log.Info("app directory: ", dir)
//главный файл
//services.txt
FileName := dir + "settings" + micro.SeparatorFile() + "services.txt"
err = LoadJSON_from_file(FileName)
err = LoadJSON_Services(FileName)
if err != nil {
log.Panic("LoadJSON_Services() error: ", err)
}
//дополнительный файл, необязательный
//services_add.txt, дополнительный файл, необязательный
FileName = dir + "settings" + micro.SeparatorFile() + "services_add.txt"
ok, err := micro.FileExists(FileName)
if ok == true {
err = LoadJSON_from_file(FileName)
err = LoadJSON_Services(FileName)
if err != nil {
log.Debug("LoadJSON_Services() warning: ", err)
}
}
//scripts.txt
FileName = dir + config.Settings.SQL_FILES_FOLDER + micro.SeparatorFile() + "scripts.txt"
err = LoadJSON_SQL(FileName)
if err != nil {
log.Panic("LoadJSON_Services() error: ", err)
}
//scripts_add.txt, дополнительный файл, необязательный
FileName = dir + config.Settings.SQL_FILES_FOLDER + micro.SeparatorFile() + "scripts_add.txt"
ok, err = micro.FileExists(FileName)
if ok == true {
err = LoadJSON_SQL(FileName)
if err != nil {
log.Debug("LoadJSON_Services() warning: ", err)
}
}
}
func LoadJSON_from_file(FileName string) error {
// LoadJSON_Services - загружает файл в формате .json в map, services.txt и services_add.txt
func LoadJSON_Services(FileName string) error {
var err error
//чтение файла
@ -55,3 +77,29 @@ func LoadJSON_from_file(FileName string) error {
return err
}
// LoadJSON_SQL - загружает файл в формате .json в map, services.txt и services_add.txt
func LoadJSON_SQL(FileName string) error {
var err error
//чтение файла
bytes, err := os.ReadFile(FileName)
if err != nil {
log.Error("ReadFile() error: ", err)
return err
}
//json в map
var MapServiceURL2 = make(map[string]string)
err = json.Unmarshal(bytes, &MapServiceURL2)
if err != nil {
log.Panic("Unmarshal() error: ", err)
}
//заполнение главного map
for k, v := range MapServiceURL2 {
types.MapSQLDeveloper[k] = v
}
return err
}

View File

@ -33,7 +33,7 @@ func TestLoadJSON_from_file(t *testing.T) {
//главный файл
FileName := dir + "settings" + micro.SeparatorFile() + "connections.txt"
err := LoadJSON_from_file(FileName)
err := LoadJSON_Services(FileName)
if err != nil {
t.Error("TestLoadJSON_from_file() error: ", err)
}
@ -44,7 +44,7 @@ func TestLoadJSON_from_file(t *testing.T) {
//дополнительный файл
FileName = dir + "settings" + micro.SeparatorFile() + "connections_add.txt"
err = LoadJSON_from_file(FileName)
err = LoadJSON_Services(FileName)
if err != nil {
t.Error("TestLoadJSON_from_file() error: ", err)
}

View File

@ -18,7 +18,7 @@ func TestStart_period(t *testing.T) {
telegram_client.CreateTelegramClient(nil)
telegram_client.ConnectTelegram()
load_json.LoadJSON()
load_json.LoadJSON_All()
date2 := time.Now()
date1 := carbon.Time2Carbon(date2).AddDays(-2).Carbon2Time()

View File

@ -21,6 +21,9 @@ var LastReadTime time.Time
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
var Ticker *time.Ticker
// MapLastErrors - хранит предыдущие ошибки
var MapLastErrors = make(map[string]string)
// Start - старт работы чтения логов LOKI
func Start() {
@ -95,7 +98,7 @@ loop_for:
}
// Start_period1 - запускает чтение логов одного сервиса за период
func Start_period1(ServiceName, DeveloperName string, DateFrom, DateTo time.Time) error {
func Start_period1(ServiceName, DeveloperName0 string, DateFrom, DateTo time.Time) error {
var err error
ctxMain := contextmain.GetContext()
@ -141,6 +144,19 @@ func Start_period1(ServiceName, DeveloperName string, DateFrom, DateTo time.Time
}
Date := time.Unix(0, iDate)
TextDate := Date.Format(constants.Layout)
DeveloperName := DeveloperName0
//если такая же ошибка то не пишем имя разработчика
TextLogWithoutTime := TextLogWithoutTime(TextLog)
LastError, IsFind2 := MapLastErrors[ServiceName]
if IsFind2 == true && LastError == TextLogWithoutTime {
DeveloperName = ""
}
//запомним последнюю ошибку
MapLastErrors[ServiceName] = TextLogWithoutTime
//
Text := ServiceName + " " + TextDate + " " + DeveloperName + "\n" + TextLog
_, err = telegram_client.SendMessage(config.Settings.TELEGRAM_CHAT_NAME, Text)
@ -162,3 +178,15 @@ func FindURLLoki(ServiceName string, DateFrom, DateTo time.Time) string {
return Otvet
}
// TextLogWithoutTime - убирает время в логе, для этого берём текст после 2 пробела
// time="2024-11-07 04:30:53.709" level=error msg="GetExtractEgripEgrul INN: 519300250706 Result: map[address: fullName: shortName: state:] Error: 404 Нет данных по данному ИНН: 519300250706" func="TakeMessageAsync()\t" file=" nats.go:194\t"
// 2024/11/01 04:35:07.872721 [ERROR] syncMessage, contractId: 7802, error: NewBriefCase, initInvoices, error: there is no documents for this contract
func TextLogWithoutTime(TextLog string) string {
Otvet := TextLog
Otvet = micro.StringAfter(Otvet, " ")
Otvet = micro.StringAfter(Otvet, " ")
return Otvet
}

View File

@ -20,6 +20,9 @@ import (
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
var Ticker *time.Ticker
// MapLastErrors - хранит предыдущие ошибки
var MapLastErrors = make(map[string]string)
// Start - старт работы чтения логов LOKI
func Start() {
RunSQL_and_Send()
@ -91,6 +94,12 @@ func RunSQL() error {
Name1, ok := types.MapServiceDeveloper[FilenemeShort]
if ok {
DeveloperName = DeveloperName + Name1
//если такая же ошибка то не пишем имя разработчика
LastError, IsFind2 := MapLastErrors[FilenemeShort]
if IsFind2 == true && LastError == err.Error() {
DeveloperName = ""
}
}
//запускаем скрипт
@ -149,5 +158,8 @@ func RunSQL1(Filename string) error {
FilenameShort := path.Base(Filename)
err = fmt.Errorf(`скрипт "%s" вернул значение: %s`, FilenameShort, ResultSQL)
//запомним последнюю ошибку
MapLastErrors[FilenameShort] = err.Error()
return err
}

View File

@ -70,3 +70,6 @@ type Message struct {
// MapServiceDeveloper - карта Имя сервиса - telegram логин программиста
var MapServiceDeveloper = make(map[string]string)
// MapSQLDeveloper - карта Имя сервиса - telegram логин программиста
var MapSQLDeveloper = make(map[string]string)

View File

@ -1 +1 @@
e268705 2024-11-06 15:40:41 +0300
cdd755f 2024-11-07 10:05:34 +0300