-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathcore.go
More file actions
116 lines (88 loc) · 3.31 KB
/
Copy pathcore.go
File metadata and controls
116 lines (88 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package core
import "time"
const (
// MaxNumLinesDefault is a default for QueryLogsParams.MaxNumLines below.
MaxNumLinesDefault = 250
)
type QueryLogsParams struct {
// maxNumLines is how many log lines the nerdlog_agent.sh will return at
// most.
MaxNumLines int
From time.Time
To time.Time
Query string
// If LoadEarlier is true, it means we're only loading the logs _before_ the ones
// we already had.
LoadEarlier bool
// If DontAddHistoryItem is true, the browser-like history will not be
// populated with a new item (it should be used exactly when we're navigating
// this browser-like history back and forth)
DontAddHistoryItem bool
// If RefreshIndex is true, we'll drop the index file for all logstreams, and
// rebuild it from scratch (no-op for journalctl logstreams, because there's
// no nerdlog-maintained index for journalctl).
RefreshIndex bool
}
// LogResp is a log response from a single logstream
type LogResp struct {
// MinuteStats is a map from the unix timestamp (in seconds) to the stats for
// the minute starting at this timestamp.
MinuteStats map[int64]MinuteStatsItem
Logs []LogMsg
// NumMsgsTotal is the total number of messages in the time range (and
// included in MinuteStats). This number is usually larger than len(Logs).
NumMsgsTotal int
// DebugInfo contains info collected during this particular query.
DebugInfo LogstreamDebugInfo
}
type LogstreamDebugInfo struct {
// AgentStdout and AgentStderr contain arbitrary human-readable debugging
// info printed by the agent script.
AgentStdout []string
AgentStderr []string
}
// LogRespTotal is a log response from a LStreamsManager. It's merged from
// multiple LogResp's and it also contains some extra field(s), e.g. LoadedEarlier.
type LogRespTotal struct {
// If LoadedEarlier is true, it means we've just loaded more logs instead of replacing
// the logs (the Logs slice still contains everything though).
LoadedEarlier bool
// MinuteStats is a map from the unix timestamp (in seconds) to the stats for
// the minute starting at this timestamp.
MinuteStats map[int64]MinuteStatsItem
Logs []LogMsg
// NumMsgsTotal is the total number of messages in the time range (and
// included in MinuteStats). This number is usually larger than len(Logs).
NumMsgsTotal int
Errs []error
// DebugInfo is a map from the logstream name to the corresponding debug info
// collected during this particular query.
DebugInfo map[string]LogstreamDebugInfo
// QueryDur shows how long the query took.
QueryDur time.Duration
}
type MinuteStatsItem struct {
NumMsgs int
}
type LogMsg struct {
Time time.Time
DecreasedTimestamp bool
// LogFilename and LogLinenumber are file ane line number in that file
LogFilename string
LogLinenumber int
// CombinedLinenumber is the line number in pseudo-file: all (actually just
// two) log files concatenated. This is the linenumbers output by the
// nerdlog_agent.sh for every "msg:" line, and this is the linenumber
// which should be used for --lines-until param.
CombinedLinenumber int
Msg string
Context map[string]string
Level LogLevel
OrigLine string
}
type LogLevel string
const LogLevelUnknown LogLevel = ""
const LogLevelDebug LogLevel = "debug"
const LogLevelInfo LogLevel = "info"
const LogLevelWarn LogLevel = "warn"
const LogLevelError LogLevel = "error"