backend/analyzer/entities/ThreadDumps.go (35 lines of code) (raw):
package entities
import (
"log_analyzer/backend/analyzer"
"os"
"path/filepath"
"strings"
)
func init() {
CurrentAnalyzer.AddDynamicEntity(analyzer.DynamicEntity{
Name: "Thread Dumps",
ConvertPathToLogs: getLogEntry,
CheckPath: isThreadDump,
GetDisplayName: analyzer.GetThreadDumpDisplayName,
LineHighlightingColor: "#faa379",
})
}
func isThreadDump(path string) bool {
if strings.Contains(path, "threadDump") {
fileInfo, _ := os.Stat(path)
if fileInfo.IsDir() {
return true
}
}
return false
}
//getLogEntry represents ThreadDump folder as a Log entry.
func getLogEntry(path string) analyzer.Logs {
logToPass := []analyzer.LogEntry{}
fileName := filepath.Base(path)
logToPass = append(logToPass, analyzer.LogEntry{
Severity: "FREEZE",
Time: analyzer.GetTimeStampFromThreadDump(path),
Text: "Freeze started: " + fileName,
})
return logToPass
}