mirror of
https://github.com/ManyakRus/telegram_loki.git
synced 2025-01-20 09:09:25 +02:00
сделал DeveloperName
This commit is contained in:
parent
cdd755f66e
commit
de09e82e9a
@ -1 +1 @@
|
|||||||
2024-11-07 07:04:59.532
|
2024-11-07 10:31:28.391
|
2
bin/sql/scripts.txt
Normal file
2
bin/sql/scripts.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
00163
|
00165
|
@ -18,7 +18,7 @@ func main() {
|
|||||||
func StartApp() {
|
func StartApp() {
|
||||||
config_main.LoadENV_or_SettingsTXT()
|
config_main.LoadENV_or_SettingsTXT()
|
||||||
config.FillSettings()
|
config.FillSettings()
|
||||||
load_json.LoadJSON()
|
load_json.LoadJSON_All()
|
||||||
|
|
||||||
stopapp.StartWaitStop()
|
stopapp.StartWaitStop()
|
||||||
|
|
||||||
|
@ -4,34 +4,56 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/ManyakRus/starter/log"
|
"github.com/ManyakRus/starter/log"
|
||||||
"github.com/ManyakRus/starter/micro"
|
"github.com/ManyakRus/starter/micro"
|
||||||
|
"github.com/ManyakRus/telegram_loki/internal/config"
|
||||||
"github.com/ManyakRus/telegram_loki/internal/types"
|
"github.com/ManyakRus/telegram_loki/internal/types"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
// LoadJSON - загружает 2 файла в формате .json в map
|
// LoadJSON_All - загружает 2 файла в формате .json в map
|
||||||
func LoadJSON() {
|
func LoadJSON_All() {
|
||||||
var err error
|
var err error
|
||||||
dir := micro.ProgramDir_bin()
|
dir := micro.ProgramDir_bin()
|
||||||
|
|
||||||
log.Info("app directory: ", dir)
|
log.Info("app directory: ", dir)
|
||||||
|
|
||||||
//главный файл
|
//services.txt
|
||||||
FileName := dir + "settings" + micro.SeparatorFile() + "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"
|
FileName = dir + "settings" + micro.SeparatorFile() + "services_add.txt"
|
||||||
ok, err := micro.FileExists(FileName)
|
ok, err := micro.FileExists(FileName)
|
||||||
if ok == true {
|
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 {
|
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
|
var err error
|
||||||
|
|
||||||
//чтение файла
|
//чтение файла
|
||||||
@ -55,3 +77,29 @@ func LoadJSON_from_file(FileName string) error {
|
|||||||
|
|
||||||
return err
|
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
|
||||||
|
}
|
||||||
|
@ -33,7 +33,7 @@ func TestLoadJSON_from_file(t *testing.T) {
|
|||||||
|
|
||||||
//главный файл
|
//главный файл
|
||||||
FileName := dir + "settings" + micro.SeparatorFile() + "connections.txt"
|
FileName := dir + "settings" + micro.SeparatorFile() + "connections.txt"
|
||||||
err := LoadJSON_from_file(FileName)
|
err := LoadJSON_Services(FileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error("TestLoadJSON_from_file() error: ", err)
|
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"
|
FileName = dir + "settings" + micro.SeparatorFile() + "connections_add.txt"
|
||||||
err = LoadJSON_from_file(FileName)
|
err = LoadJSON_Services(FileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error("TestLoadJSON_from_file() error: ", err)
|
t.Error("TestLoadJSON_from_file() error: ", err)
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ func TestStart_period(t *testing.T) {
|
|||||||
|
|
||||||
telegram_client.CreateTelegramClient(nil)
|
telegram_client.CreateTelegramClient(nil)
|
||||||
telegram_client.ConnectTelegram()
|
telegram_client.ConnectTelegram()
|
||||||
load_json.LoadJSON()
|
load_json.LoadJSON_All()
|
||||||
|
|
||||||
date2 := time.Now()
|
date2 := time.Now()
|
||||||
date1 := carbon.Time2Carbon(date2).AddDays(-2).Carbon2Time()
|
date1 := carbon.Time2Carbon(date2).AddDays(-2).Carbon2Time()
|
||||||
|
@ -21,6 +21,9 @@ var LastReadTime time.Time
|
|||||||
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
|
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
|
||||||
var Ticker *time.Ticker
|
var Ticker *time.Ticker
|
||||||
|
|
||||||
|
// MapLastErrors - хранит предыдущие ошибки
|
||||||
|
var MapLastErrors = make(map[string]string)
|
||||||
|
|
||||||
// Start - старт работы чтения логов LOKI
|
// Start - старт работы чтения логов LOKI
|
||||||
func Start() {
|
func Start() {
|
||||||
|
|
||||||
@ -95,7 +98,7 @@ loop_for:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start_period1 - запускает чтение логов одного сервиса за период
|
// 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
|
var err error
|
||||||
|
|
||||||
ctxMain := contextmain.GetContext()
|
ctxMain := contextmain.GetContext()
|
||||||
@ -141,6 +144,19 @@ func Start_period1(ServiceName, DeveloperName string, DateFrom, DateTo time.Time
|
|||||||
}
|
}
|
||||||
Date := time.Unix(0, iDate)
|
Date := time.Unix(0, iDate)
|
||||||
TextDate := Date.Format(constants.Layout)
|
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
|
Text := ServiceName + " " + TextDate + " " + DeveloperName + "\n" + TextLog
|
||||||
|
|
||||||
_, err = telegram_client.SendMessage(config.Settings.TELEGRAM_CHAT_NAME, Text)
|
_, 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
|
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
|
||||||
|
}
|
||||||
|
@ -20,6 +20,9 @@ import (
|
|||||||
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
|
// Ticker - таймер, запускается каждые INTERVAL_SEND_MINUTES (10) минут
|
||||||
var Ticker *time.Ticker
|
var Ticker *time.Ticker
|
||||||
|
|
||||||
|
// MapLastErrors - хранит предыдущие ошибки
|
||||||
|
var MapLastErrors = make(map[string]string)
|
||||||
|
|
||||||
// Start - старт работы чтения логов LOKI
|
// Start - старт работы чтения логов LOKI
|
||||||
func Start() {
|
func Start() {
|
||||||
RunSQL_and_Send()
|
RunSQL_and_Send()
|
||||||
@ -91,6 +94,12 @@ func RunSQL() error {
|
|||||||
Name1, ok := types.MapServiceDeveloper[FilenemeShort]
|
Name1, ok := types.MapServiceDeveloper[FilenemeShort]
|
||||||
if ok {
|
if ok {
|
||||||
DeveloperName = DeveloperName + Name1
|
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)
|
FilenameShort := path.Base(Filename)
|
||||||
err = fmt.Errorf(`скрипт "%s" вернул значение: %s`, FilenameShort, ResultSQL)
|
err = fmt.Errorf(`скрипт "%s" вернул значение: %s`, FilenameShort, ResultSQL)
|
||||||
|
|
||||||
|
//запомним последнюю ошибку
|
||||||
|
MapLastErrors[FilenameShort] = err.Error()
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -70,3 +70,6 @@ type Message struct {
|
|||||||
|
|
||||||
// MapServiceDeveloper - карта Имя сервиса - telegram логин программиста
|
// MapServiceDeveloper - карта Имя сервиса - telegram логин программиста
|
||||||
var MapServiceDeveloper = make(map[string]string)
|
var MapServiceDeveloper = make(map[string]string)
|
||||||
|
|
||||||
|
// MapSQLDeveloper - карта Имя сервиса - telegram логин программиста
|
||||||
|
var MapSQLDeveloper = make(map[string]string)
|
||||||
|
@ -1 +1 @@
|
|||||||
e268705 2024-11-06 15:40:41 +0300
|
cdd755f 2024-11-07 10:05:34 +0300
|
||||||
|
Loading…
x
Reference in New Issue
Block a user