aboutsummaryrefslogtreecommitdiffstats
path: root/vespalog/README.events
blob: c3dfa3a94384db4870d0f299770239c2860e94cc (plain) (blame)
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Quick Specification for VESPA Log Events
========================================

Events are a machine-readable form of log messages, intended for
automated monitoring.

Each event has an event type, a version and an optional payload.

In the log format, event types are expressed as a single word,
versions as a simple integer, and the payload as a set of key=value
pairs.

The event payload is backslash-quoted just like log messages are in
general.  This means that events may be double-quoted during
transport.  Double-quote delimiters are not supported.

These are the supported event types and their usage.  You can find
more details about each of the event types further below.

  Event Type     Description
============================================================================
  starting       Sent by a process starting another process
  started        Sent by a process when it has started
  stopping       Sent by a process that will exit
  stopped        Sent by the calling process when a sub-process has exited
  reloading      Sent when some form of reloading starts
  reloaded       Sent when the reload is complete
  crash          Sent by the calling process when a sub-process crashes
  progress       For tracking any type of progress
  count          For tracking any type of counter (queries served etc)
  value          For tracking any type of value (qps, queue-length, etc..)
  collection     For tracking events related to collections (collection out of sync etc)

Event: starting
---------------
Payload: name=<name>

This event is sent by processes when they are about to start another
process.  Typical for, but not limited to, shell scripts.  This event
is not required to track processes, but is useful in cases where a
sub-process may fail during startup.

Example:
starting name=dispatch


Event: started
--------------
Payload: name=<name>
The "started" event is sent by a process that just started up.

Example:
started name=dispatch


Event: stopping
---------------
Payload: name=<name> why=<why>
The "stopping" event is sent by a process that is about to exit.

Example:
stopping name=dispatch why="clean exit"


Event: stopped
--------------
Payload: name=<name> pid=<pid> exitcode=<exitcode>

This event is sent by a process monitoring when a sub-process exits.

Example:
stopped name=dispatch pid=76512


Event: reloading
----------------
Payload: name=<name>

This event is used to signal that a process is about to start some
kind of reloading operation.

The "name" payload attribute says what kind of reload operation that
is being done, and is specific for each library/application.  The
"reloading" event is optional for reloads, for a simple reload that
doesn't fail, you can use "reloaded" directly.

Example:
reloading name=partitions


Event: reloaded
---------------
The "reloaded" event is sent after the reload is complete (and
successful).  Any "reloading" event must have a matching "reloaded" event

Example:

reloaded name=crawler.configfile:$VESPA_HOME/var/mms/docproccfg.xml


Event: crash
------------
Payload: name=<appname> pid=<pid> signal=<signal>

Submitted by a process monitoring a sub-process when the sub-process
crashes (dumps core etc.)

Example:

crash name=fastcrawler pid=12345 signal=11


Event: progress
---------------
Payload: name=<name> value=<value> [total=<total>]

Somewhat general event for tracking progress.  The <name> is specific
to each library/application.

Example:
progress name=indexing.autoindex value=17 total=90


Event: count
------------
Payload: name=<name> value=<value>

Somewhat general event for counting stuff.  As with "progress", the
<name> is specific to each library/application. Counters are asssumed
to increase with time, counting the number of events since the program
was started for example.


Event: value
------------
Payload: name=<name> value=<value>

General event for values. "Value is for values that cannot be counts"
Typical values are queue lengths, transaction frequencies and so on.


Examples:
count name=queue-length value=2346235

Event: collection
-----------------

Payload: collectionid=<id> name=<name> <params>

Represents events related to collections. The name describes what
happened to the collection ("syncrows", "created", etc). params
is a string on the form param1=... param2=... that holds various
parameters for the event. For "syncrows", the parameters are:
column, badrow, goodrow.

Examples:
collection collectionid=1111111111 name=syncrows column=1 badrow=0 goodrow=1