имя файла отправителя убрано из журнала приёма
- расширение приводится к перечню известных форматов прежде метки метрики: страница метрик открыта, и хвост имени уезжал на неё дословно - проверки приёма перехватывают все три потока журнала и читают реестр метрик, каждая падает при снятии того, что сторожит
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/metrics"
|
||||
)
|
||||
|
||||
// Умолчание расширения живёт в этом пакете, а перечень значений метки — в
|
||||
// пакете метрик, и связывает их только совпадение двух литералов. Компилятор
|
||||
// расхождения не поймает: смена умолчания просто сложит все записи без
|
||||
// расширения в общее значение, и метка перестанет отличать «расширения не было»
|
||||
// от чужого хвоста в имени.
|
||||
func TestDefaultAudioExtIsKnownToMetrics(t *testing.T) {
|
||||
if got := metrics.FormatLabel(defaultAudioExt); got == metrics.OtherFormatLabel {
|
||||
t.Fatalf("умолчание %q не входит в перечень известных форматов: метка отдаёт %q",
|
||||
defaultAudioExt, got)
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -102,9 +101,10 @@ func (s *TranscribeService) createTranscribeJob(job *entity.TranscribeJob, file
|
||||
storageFileName := fmt.Sprintf("%s%s", fileId, ext)
|
||||
storageFilePath := filepath.Join(s.storagePath, storageFileName)
|
||||
|
||||
// Имя, данное отправителем, в журнал не идёт: инвариант приватности.
|
||||
// Расширение из него уже стоит в собственном имени файла на диске.
|
||||
s.logger.Info("Creating transcribe job",
|
||||
"file_id", fileId,
|
||||
"file_name", fileName,
|
||||
"storage_path", storageFilePath)
|
||||
|
||||
// Создаем файл на диске
|
||||
@@ -139,7 +139,7 @@ func (s *TranscribeService) createTranscribeJob(job *entity.TranscribeJob, file
|
||||
"duration_seconds", info.Seconds)
|
||||
|
||||
metrics.InputFileDurationHistogram.WithLabelValues().Observe(float64(info.Seconds))
|
||||
metrics.InputFileSizeHistogram.WithLabelValues(ext).Observe(float64(size))
|
||||
metrics.ObserveInputFileSize(ext, size)
|
||||
|
||||
// Создаем запись в таблице files
|
||||
fileRecord := &entity.File{
|
||||
@@ -207,9 +207,7 @@ func (s *TranscribeService) FindAndRunConversionJob() error {
|
||||
conversionDuration := time.Since(startTime)
|
||||
|
||||
// Записываем метрику времени конвертации
|
||||
metrics.ConversionDurationHistogram.
|
||||
WithLabelValues(srcExt, "ogg", strconv.FormatBool(err != nil)).
|
||||
Observe(conversionDuration.Seconds())
|
||||
metrics.ObserveConversionDuration(srcExt, "ogg", err != nil, conversionDuration.Seconds())
|
||||
|
||||
if err != nil {
|
||||
s.logger.Error("File conversion failed",
|
||||
|
||||
Reference in New Issue
Block a user