mirror of https://github.com/statping/statping
commit
1f5472d35b
|
@ -1,3 +1,11 @@
|
|||
# 0.90.79 (01-24-2022)
|
||||
- Updated Russian Language - Thanks meatlayer
|
||||
- Docker file fix for BASE_PATH and health checks - Thanks michaelkrieger
|
||||
- Removed statping emailer notifier (not SMTP Mail)
|
||||
- Fixes for notification failures (Issue statping#911) - Thanks glanchow
|
||||
- Updated Home page uptime wording (24hr/7days) - Thanks Jonathanrbarney & thatInfrastructureGuy
|
||||
- [GITHUB] Removed mailer tests
|
||||
|
||||
# 0.90.78 (09-15-2021)
|
||||
- HTTP Webhooks accept multiple HTTP Headers
|
||||
- Modified Telegram notifier to allow chat_ids
|
||||
|
|
|
@ -60,9 +60,10 @@ ENV IS_DOCKER=true
|
|||
ENV SASS=/usr/local/bin/sassc
|
||||
ENV STATPING_DIR=/app
|
||||
ENV PORT=8080
|
||||
ENV BASE_PATH=""
|
||||
|
||||
EXPOSE $PORT
|
||||
|
||||
HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD curl -s "http://localhost:$PORT/health" | jq -r -e ".online==true"
|
||||
HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD if [ -z "$BASE_PATH" ]; then HEALTHPATH="/health"; else HEALTHPATH="/$BASE_PATH/health" ; fi && curl -s "http://localhost:80$HEALTHPATH" | jq -r -e ".online==true"
|
||||
|
||||
CMD statping --port $PORT
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -6,11 +6,11 @@
|
|||
</div>
|
||||
<div class="col-4">
|
||||
<span class="font-5 d-block font-weight-bold">{{service.online_24_hours}} %</span>
|
||||
<span class="font-1 subtitle">{{$t('last_uptime', [24, $tc('hour', 24)])}}</span>
|
||||
<span class="font-1 subtitle">{{$t('last_uptime')}} 24 {{$tc('hour', 24)}}</span>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<span class="font-5 d-block font-weight-bold">{{service.online_7_days}} %</span>
|
||||
<span class="font-1 subtitle">{{$t('last_uptime', [7, $tc('day', 7)])}}</span>
|
||||
<span class="font-1 subtitle">{{$t('last_uptime')}} 7 {{$tc('day', 7)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -52,8 +52,8 @@ const chinese = {
|
|||
days_ago: "天前",
|
||||
today: "今天",
|
||||
week: "周",
|
||||
month: "月份",
|
||||
day: "日",
|
||||
month: "月份 | 月数",
|
||||
day: "日 | 天数",
|
||||
hour: "小时",
|
||||
minute: "分钟",
|
||||
failures_24_hours: "过去 24 小时失败",
|
||||
|
@ -139,4 +139,4 @@ const chinese = {
|
|||
service_create: "创建服务"
|
||||
}
|
||||
|
||||
export default chinese
|
||||
export default chinese
|
||||
|
|
|
@ -51,11 +51,11 @@ const english = {
|
|||
service_offline_time: "Service has been offline for",
|
||||
days_ago: "Days Ago",
|
||||
today: "Today",
|
||||
week: "Week",
|
||||
month: "Month",
|
||||
day: "Day",
|
||||
hour: "Hour",
|
||||
minute: "Minute",
|
||||
week: "Week | Weeks",
|
||||
month: "Month | Months",
|
||||
day: "Day | Days",
|
||||
hour: "Hour | Hours",
|
||||
minute: "Minute | Minutes",
|
||||
failures_24_hours: "Failures last 24 hours",
|
||||
no_services: "You currently don't have any services!",
|
||||
theme: "Theme",
|
||||
|
@ -139,4 +139,4 @@ const english = {
|
|||
service_create: "Create Service"
|
||||
}
|
||||
|
||||
export default english
|
||||
export default english
|
||||
|
|
|
@ -51,11 +51,11 @@ const french = {
|
|||
service_offline_time: "Le service a été hors ligne pour",
|
||||
days_ago: "Il y a jours",
|
||||
today: "Aujourd'hui",
|
||||
week: "Semaine",
|
||||
week: "Semaine | Semaines",
|
||||
month: "Mois",
|
||||
day: "Jour",
|
||||
hour: "Heure",
|
||||
minute: "Minute",
|
||||
day: "Jour | Jours",
|
||||
hour: "Heure | Heures",
|
||||
minute: "Minute | Minutes",
|
||||
failures_24_hours: "Les échecs durent 24 heures",
|
||||
no_services: "Vous n'avez actuellement aucun service !",
|
||||
theme: "Thème",
|
||||
|
@ -109,7 +109,7 @@ const french = {
|
|||
notify_before: "Avertir avant",
|
||||
message_create: "Créer une annonce",
|
||||
message_edit: "Modifier l'annonce",
|
||||
minutes: "Procès-Verbal",
|
||||
minutes: "Minutes",
|
||||
hours: "Heures",
|
||||
days: "Jours",
|
||||
user_create: "Créer un utilisateur",
|
||||
|
@ -139,4 +139,4 @@ const french = {
|
|||
service_create: "Créer un service"
|
||||
}
|
||||
|
||||
export default french
|
||||
export default french
|
||||
|
|
|
@ -51,11 +51,11 @@ const german = {
|
|||
service_offline_time: "Dienst war offline für",
|
||||
days_ago: "Tage vergangen",
|
||||
today: "Heute",
|
||||
week: "Woche",
|
||||
month: "Monat",
|
||||
day: "Tag",
|
||||
hour: "Stunde",
|
||||
minute: "Minute",
|
||||
week: "Woche | Wochen",
|
||||
month: "Monat | Monate",
|
||||
day: "Tag | Tage",
|
||||
hour: "Stunde | Stunden",
|
||||
minute: "Minute | Minuten",
|
||||
failures_24_hours: "Ausfälle letzte 24 Stunden",
|
||||
no_services: "Sie haben derzeit keine Dienste!",
|
||||
theme: "Thema",
|
||||
|
|
|
@ -51,10 +51,10 @@ const italian = {
|
|||
service_offline_time: "Il servizio è stato offline per",
|
||||
days_ago: "Giorni fa",
|
||||
today: "Oggi",
|
||||
week: "Settimana",
|
||||
month: "Mese",
|
||||
day: "Giorno",
|
||||
hour: "Ora",
|
||||
week: "Settimana | Settimane",
|
||||
month: "Mese | Mesi",
|
||||
day: "Giorno | Giorni",
|
||||
hour: "Ora | Ore",
|
||||
minute: "Minuti",
|
||||
failures_24_hours: "Errori nelle ultime 24 ore",
|
||||
no_services: "Al momento non hai alcun servizio!",
|
||||
|
@ -139,4 +139,4 @@ const italian = {
|
|||
service_create: "Crea servizio"
|
||||
}
|
||||
|
||||
export default italian
|
||||
export default italian
|
||||
|
|
|
@ -51,11 +51,11 @@ const japanese = {
|
|||
service_offline_time: "のサービスがオフラインになりました",
|
||||
days_ago: "日前",
|
||||
today: "今日",
|
||||
week: "週数",
|
||||
month: "月",
|
||||
day: "日",
|
||||
hour: "アワー",
|
||||
minute: "分",
|
||||
week: "週数 | 週",
|
||||
month: "月 | ヶ月",
|
||||
day: "日 | 日数",
|
||||
hour: "アワー | 時間",
|
||||
minute: "分 | 議事録",
|
||||
failures_24_hours: "過去 24 時間の障害",
|
||||
no_services: "現在、サービスをお持ちになりません。",
|
||||
theme: "テーマ",
|
||||
|
@ -139,4 +139,4 @@ const japanese = {
|
|||
service_create: "サービスの作成"
|
||||
}
|
||||
|
||||
export default japanese
|
||||
export default japanese
|
||||
|
|
|
@ -55,7 +55,7 @@ const korean = {
|
|||
month: "월",
|
||||
day: "일",
|
||||
hour: "시간",
|
||||
minute: "분",
|
||||
minute: "분 | 의사록",
|
||||
failures_24_hours: "지난 24시간 동안 장애 발생",
|
||||
no_services: "현재 서비스가 없습니다!",
|
||||
theme: "테마",
|
||||
|
@ -139,4 +139,4 @@ const korean = {
|
|||
service_create: "서비스 만들기"
|
||||
}
|
||||
|
||||
export default korean
|
||||
export default korean
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
const russian = {
|
||||
settings: "Настройки",
|
||||
dashboard: "Панель управления",
|
||||
services: "служб",
|
||||
service: "обслуживания",
|
||||
dashboard: "Панель",
|
||||
services: "Сервисы",
|
||||
service: "Сервис",
|
||||
failures: "Сбои",
|
||||
users: "Пользователи",
|
||||
login: "Войти",
|
||||
logout: "Выход из системы",
|
||||
logout: "Выход",
|
||||
online: "Онлайн",
|
||||
offline: "Оффлайн",
|
||||
configs: "Конфигурация",
|
||||
|
@ -22,42 +22,42 @@ const russian = {
|
|||
regen_api: "Регенерация ключей API",
|
||||
regen_desc: "API Secret используется для чтения создания обновлений и удаления маршрутов. Вы можете регенерировать ключи API, если вам нужно.",
|
||||
visibility: "Видимость",
|
||||
group: "Группы",
|
||||
group: "Группа",
|
||||
group_create: "Создать группу",
|
||||
group_update: "Обновить группу",
|
||||
group_public_desc: "Показать групповые услуги публике",
|
||||
group_public_desc: "Показавать группу публично всем",
|
||||
groups: "Группы",
|
||||
no_group: "Нет группы",
|
||||
public: "Общественный",
|
||||
private: "Частные",
|
||||
public: "Публичный",
|
||||
private: "Приватный",
|
||||
announcements: "Объявления",
|
||||
notifiers: "Уведомлятели",
|
||||
notifiers: "Способы уведомлений",
|
||||
logs: "Журналы",
|
||||
help: "Помогите",
|
||||
help: "Помощь",
|
||||
type: "Тип",
|
||||
edit: "Редактировать",
|
||||
update: "Обновить",
|
||||
create: "Создайте",
|
||||
create: "Создать",
|
||||
view: "Посмотреть",
|
||||
save: "Сохранить",
|
||||
title: "Название",
|
||||
status: "положению",
|
||||
begins: "Начинается",
|
||||
total_services: "Всего услуг",
|
||||
status: "Статус",
|
||||
begins: "Начало",
|
||||
total_services: "Всего сервисов",
|
||||
online_services: "Онлайн-сервисы",
|
||||
request_timeout: "Тайм-аут запроса",
|
||||
service_never_online: "Сервис никогда не был в сети",
|
||||
service_online_check: "Проверено онлайн",
|
||||
service_offline_time: "Служба была отключена для",
|
||||
service_offline_time: "Сервис был отключен для",
|
||||
days_ago: "Дней назад",
|
||||
today: "Сегодня",
|
||||
week: "Недели",
|
||||
month: "Месяц",
|
||||
day: "День",
|
||||
hour: "Час",
|
||||
minute: "Минута",
|
||||
month: "Месяц | Месяцы",
|
||||
day: "День | Дней",
|
||||
hour: "Час | Часов",
|
||||
minute: "Минута | Минуты",
|
||||
failures_24_hours: "Сбои за 24 часа",
|
||||
no_services: "В настоящее время у вас нет услуг!",
|
||||
no_services: "В настоящее время у вас нет сервисов!",
|
||||
theme: "Тема",
|
||||
cache: "Кэш",
|
||||
authentication: "Проверка подлинности",
|
||||
|
@ -76,20 +76,20 @@ const russian = {
|
|||
db_password: "Пароль базы данных",
|
||||
db_database: "Имя базы данных",
|
||||
send_reports: "Отправка отчетов об ошибках",
|
||||
send_reports_desc: "Отправить ошибки в Statping для отладки",
|
||||
send_reports_desc: "Отправлять ошибки в Statping для отладки",
|
||||
project_name: "Имя страницы состояния",
|
||||
description: "Описание",
|
||||
domain: "Домен",
|
||||
enable_cdn: "Включить CDN",
|
||||
newsletter: "Информационный бюллетень",
|
||||
newsletter_note: "Мы отправим вам только сообщение по электронной почте для серьезных изменений",
|
||||
newsletter: "Рассылка новостей",
|
||||
newsletter_note: "Мы отправим вам электронное письмо только в случае серьезных изменений",
|
||||
loading: "Загрузка",
|
||||
save_settings: "Сохранить настройки",
|
||||
average_response: "Средний ответ",
|
||||
last_uptime: "Время безотказной работы",
|
||||
sign_in: "Войти",
|
||||
last_login: "Последний вход",
|
||||
admin: "Администратор",
|
||||
admin: "Админ",
|
||||
user: "Пользователя",
|
||||
failed: "Не удалось",
|
||||
wrong_login: "Неверное имя пользователя или пароль",
|
||||
|
@ -99,7 +99,7 @@ const russian = {
|
|||
assets_btn: "Включить локальные ресурсы",
|
||||
assets_loading: "Создание компонентов",
|
||||
assets_dir: "Каталог активов",
|
||||
footer: "Подколонтитул",
|
||||
footer: "Нижний колонтитул (footer)",
|
||||
footer_notes: "Вы можете использовать HTML-теги в нижнем колонтитуле",
|
||||
global_announcement: "Глобальное объявление",
|
||||
announcement_date: "Диапазон дат объявления",
|
||||
|
@ -114,29 +114,29 @@ const russian = {
|
|||
days: "Дни",
|
||||
user_create: "Создать пользователя",
|
||||
user_update: "Обновить пользователя",
|
||||
administrator: "Администратора",
|
||||
checkins: "Чеккинс",
|
||||
administrator: "Администратор",
|
||||
checkins: "Проверки",
|
||||
incidents: "Инциденты",
|
||||
service_info: "Информация о сервисе",
|
||||
service_name: "Имя службы",
|
||||
service_type: "Тип услуги",
|
||||
service_name: "Имя сервиса",
|
||||
service_type: "Тип сервиса",
|
||||
permalink: "URL-адрес Постоянной ссылки",
|
||||
service_public: "Государственная служба",
|
||||
service_public: "Видимость публично",
|
||||
check_interval: "Интервал проверки",
|
||||
service_endpoint: "Конечная точка службы",
|
||||
service_check: "Тип проверки службы",
|
||||
service_endpoint: "Адрес проверяемого хоста",
|
||||
service_check: "Тип проверки",
|
||||
service_timeout: "Тайм-аут запроса",
|
||||
expected_resp: "Ожидаемый ответ",
|
||||
expected_code: "Код ожидаемого состояния",
|
||||
follow_redir: "Следуйте за перенаправленными",
|
||||
verify_ssl: "Проверить SSL",
|
||||
follow_redir: "Вкл. следование по редиректам",
|
||||
verify_ssl: "Проверять SSL",
|
||||
tls_cert: "Использовать сертификат TLS",
|
||||
notification_opts: "Параметры уведомления",
|
||||
notifications_enable: "Включить уведомления",
|
||||
notify_after: "Уведомлять после сбоев",
|
||||
notify_all: "Уведомлять обо всех изменениях",
|
||||
service_update: "Обновить службу",
|
||||
service_create: "Создать службу"
|
||||
service_update: "Обновить сервис",
|
||||
service_create: "Создать сервис"
|
||||
}
|
||||
|
||||
export default russian
|
||||
export default russian
|
||||
|
|
|
@ -51,11 +51,11 @@ const spanish = {
|
|||
service_offline_time: "El servicio ha estado desconectado para",
|
||||
days_ago: "Hace días",
|
||||
today: "Hoy",
|
||||
week: "Semana",
|
||||
month: "Mes",
|
||||
day: "Día",
|
||||
hour: "Hora",
|
||||
minute: "Minuto",
|
||||
week: "Semana | Semanas",
|
||||
month: "Mes | Meses",
|
||||
day: "Día | Días",
|
||||
hour: "Hora | Horas",
|
||||
minute: "Minuto | Minutos",
|
||||
failures_24_hours: "Fallos de las últimas 24 horas",
|
||||
no_services: "¡Actualmente no tienes ningún servicio!",
|
||||
theme: "Tema",
|
||||
|
@ -139,4 +139,4 @@ const spanish = {
|
|||
service_create: "Crear servicio"
|
||||
}
|
||||
|
||||
export default spanish
|
||||
export default spanish
|
||||
|
|
|
@ -36,7 +36,6 @@ func InitNotifiers() {
|
|||
Webhook,
|
||||
Mobile,
|
||||
Pushover,
|
||||
statpingMailer,
|
||||
Gotify,
|
||||
AmazonSNS,
|
||||
)
|
||||
|
|
|
@ -1,106 +0,0 @@
|
|||
package notifiers
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/statping-ng/statping-ng/types/core"
|
||||
"github.com/statping-ng/statping-ng/types/failures"
|
||||
"github.com/statping-ng/statping-ng/types/notifications"
|
||||
"github.com/statping-ng/statping-ng/types/notifier"
|
||||
"github.com/statping-ng/statping-ng/types/services"
|
||||
"github.com/statping-ng/statping-ng/utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
var _ notifier.Notifier = (*statpingEmailer)(nil)
|
||||
|
||||
const (
|
||||
statpingEmailerName = "statping_emailer"
|
||||
statpingEmailerHost = "https://news.statping.com"
|
||||
)
|
||||
|
||||
type statpingEmailer struct {
|
||||
*notifications.Notification
|
||||
}
|
||||
|
||||
func (s *statpingEmailer) Select() *notifications.Notification {
|
||||
return s.Notification
|
||||
}
|
||||
|
||||
func (s *statpingEmailer) Valid(values notifications.Values) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var statpingMailer = &statpingEmailer{¬ifications.Notification{
|
||||
Method: statpingEmailerName,
|
||||
Title: "Email",
|
||||
Description: "Send an email when a service becomes offline or back online using Statping's email service. You will need to verify your email address.",
|
||||
Author: "Hunter Long",
|
||||
AuthorUrl: "https://github.com/hunterlong",
|
||||
Delay: time.Duration(10 * time.Second),
|
||||
Icon: "fas envelope-square",
|
||||
Limits: 60,
|
||||
Form: []notifications.NotificationForm{{
|
||||
Type: "email",
|
||||
Title: "Send to Email Address",
|
||||
Placeholder: "info@statping.com",
|
||||
DbField: "Host",
|
||||
Required: true,
|
||||
}}},
|
||||
}
|
||||
|
||||
// Send will send a HTTP Post to the slack webhooker API. It accepts type: string
|
||||
func (s *statpingEmailer) sendStatpingEmail(msg statpingMail) (string, error) {
|
||||
data, _ := json.Marshal(msg)
|
||||
resp, _, err := utils.HttpRequest(statpingEmailerHost+"/notifier", "POST", "application/json", nil, bytes.NewBuffer(data), time.Duration(10*time.Second), true, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(resp), nil
|
||||
}
|
||||
|
||||
func (s *statpingEmailer) OnTest() (string, error) {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
type statpingMail struct {
|
||||
Email string `json:"email"`
|
||||
Core core.Core `json:"core,omitempty"`
|
||||
Service services.Service `json:"service,omitempty"`
|
||||
Failure failures.Failure `json:"failure,omitempty"`
|
||||
}
|
||||
|
||||
// OnFailure will trigger failing service
|
||||
func (s *statpingEmailer) OnFailure(srv services.Service, f failures.Failure) (string, error) {
|
||||
ee := statpingMail{
|
||||
Email: s.Host.String,
|
||||
Core: *core.App,
|
||||
Service: srv,
|
||||
Failure: f,
|
||||
}
|
||||
return s.sendStatpingEmail(ee)
|
||||
}
|
||||
|
||||
// OnSuccess will trigger successful service
|
||||
func (s *statpingEmailer) OnSuccess(srv services.Service) (string, error) {
|
||||
ee := statpingMail{
|
||||
Email: s.Host.String,
|
||||
Core: *core.App,
|
||||
Service: srv,
|
||||
Failure: failures.Failure{},
|
||||
}
|
||||
return s.sendStatpingEmail(ee)
|
||||
}
|
||||
|
||||
// OnSave will trigger when this notifier is saved
|
||||
func (s *statpingEmailer) OnSave() (string, error) {
|
||||
ee := statpingMail{
|
||||
Email: s.Host.String,
|
||||
Core: *core.App,
|
||||
Service: services.Service{},
|
||||
Failure: failures.Failure{},
|
||||
}
|
||||
out, err := s.sendStatpingEmail(ee)
|
||||
log.Println("statping emailer response", out)
|
||||
return out, err
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
package notifiers
|
||||
|
||||
import (
|
||||
"github.com/statping-ng/statping-ng/database"
|
||||
"github.com/statping-ng/statping-ng/types/core"
|
||||
"github.com/statping-ng/statping-ng/types/failures"
|
||||
"github.com/statping-ng/statping-ng/types/notifications"
|
||||
"github.com/statping-ng/statping-ng/types/null"
|
||||
"github.com/statping-ng/statping-ng/types/services"
|
||||
"github.com/statping-ng/statping-ng/utils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
testEmail string
|
||||
)
|
||||
|
||||
func TestStatpingEmailerNotifier(t *testing.T) {
|
||||
err := utils.InitLogs()
|
||||
require.Nil(t, err)
|
||||
|
||||
t.Parallel()
|
||||
db, err := database.OpenTester()
|
||||
require.Nil(t, err)
|
||||
db.AutoMigrate(¬ifications.Notification{})
|
||||
notifications.SetDB(db)
|
||||
core.Example()
|
||||
|
||||
testEmail = utils.Params.GetString("TEST_EMAIL")
|
||||
statpingMailer.Host = null.NewNullString(testEmail)
|
||||
statpingMailer.Enabled = null.NewNullBool(true)
|
||||
|
||||
if testEmail == "" {
|
||||
t.Log("statping email notifier testing skipped, missing TEST_EMAIL environment variable")
|
||||
t.SkipNow()
|
||||
}
|
||||
|
||||
t.Run("Load statping emailer", func(t *testing.T) {
|
||||
statpingMailer.Host = null.NewNullString(testEmail)
|
||||
statpingMailer.Delay = time.Duration(100 * time.Millisecond)
|
||||
statpingMailer.Limits = 3
|
||||
Add(statpingMailer)
|
||||
assert.Equal(t, "Hunter Long", statpingMailer.Author)
|
||||
assert.Equal(t, testEmail, statpingMailer.Host.String)
|
||||
})
|
||||
|
||||
t.Run("statping emailer Within Limits", func(t *testing.T) {
|
||||
ok := statpingMailer.CanSend()
|
||||
assert.True(t, ok)
|
||||
})
|
||||
|
||||
t.Run("statping emailer OnSave", func(t *testing.T) {
|
||||
_, err := statpingMailer.OnSave()
|
||||
assert.Nil(t, err)
|
||||
})
|
||||
|
||||
t.Run("statping emailer OnFailure", func(t *testing.T) {
|
||||
_, err := statpingMailer.OnFailure(services.Example(false), failures.Example())
|
||||
assert.Nil(t, err)
|
||||
})
|
||||
|
||||
t.Run("statping emailer OnSuccess", func(t *testing.T) {
|
||||
_, err := statpingMailer.OnSuccess(services.Example(true))
|
||||
assert.Nil(t, err)
|
||||
})
|
||||
|
||||
}
|
|
@ -23,9 +23,12 @@ func sendSuccess(s *Service) {
|
|||
return
|
||||
}
|
||||
|
||||
s.notifyAfterCount = 0
|
||||
|
||||
if s.prevOnline == s.Online {
|
||||
return
|
||||
}
|
||||
s.prevOnline = true
|
||||
|
||||
for _, n := range allNotifiers {
|
||||
notif := n.Select()
|
||||
|
@ -42,9 +45,6 @@ func sendSuccess(s *Service) {
|
|||
notif.LastSent = utils.Now()
|
||||
}
|
||||
}
|
||||
|
||||
s.prevOnline = true
|
||||
s.notifyAfterCount++
|
||||
}
|
||||
|
||||
func sendFailure(s *Service, f *failures.Failure) {
|
||||
|
@ -63,6 +63,8 @@ func sendFailure(s *Service, f *failures.Failure) {
|
|||
}
|
||||
}
|
||||
|
||||
s.prevOnline = false
|
||||
|
||||
for _, n := range allNotifiers {
|
||||
notif := n.Select()
|
||||
if notif.CanSend() {
|
||||
|
@ -78,9 +80,6 @@ func sendFailure(s *Service, f *failures.Failure) {
|
|||
notif.LastSent = utils.Now()
|
||||
}
|
||||
}
|
||||
|
||||
s.prevOnline = false
|
||||
s.notifyAfterCount++
|
||||
}
|
||||
|
||||
func logMessage(method string, msg string, error error, onSuccesss bool, serviceId int64) {
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.90.78
|
||||
0.90.79
|
||||
|
|
Loading…
Reference in New Issue