This repository was archived by the owner on Jul 20, 2024. It is now read-only.
forked from splunk/splunk-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMonitorInput.java
More file actions
356 lines (323 loc) · 10.4 KB
/
MonitorInput.java
File metadata and controls
356 lines (323 loc) · 10.4 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
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
/*
* Copyright 2012 Splunk, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"): you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.splunk;
/**
* The {@code MonitorInput} class represents a monitor input, which is a file,
* directory, script, or network port that is monitored for new data.
*/
public class MonitorInput extends Input {
/**
* Class constructor.
*
* @param service The connected {@code Service} instance.
* @param path The monitor input endpoint.
*/
MonitorInput(Service service, String path) {
super(service, path);
}
/**
* Returns a regular expression for a file path that when matched is not
* indexed.
*
* @return The regex for a file path.
*/
public String getBlacklist() {
return getString("blacklist", null);
}
/**
* Returns a string that is used to force Splunk to index files that have a
* matching cyclic redundancy check (CRC).
*
* When set, this string is added to the CRC. If the string is
* "{@code <SOURCE>}", the full source path is added to the CRC, ensuring
* that each file being monitored has a unique CRC. For more info, see the
* <a href="http://docs.splunk.com/Documentation/Splunk/latest/Data/Editinputs.conf"
* target="_blank">Edit inputs.conf</a>
* topic in the Getting Data In manual.
*
* @return The string that is added to the CRC, or {@code null} if not set.
*/
public String getCrcSalt() {
return getString("crcSalt", null);
}
/**
* Returns the file count of this monitor input.
*
* @return The file count.
*/
public int getFileCount() {
return getInteger("filecount", -1);
}
/**
* Indicates whether files that are seen for the first time will be read
* from the end.
*
* @return {@code true} if new files are read from the end, {@code false} if
* not.
*/
public boolean getFollowTail() {
return getBoolean("followTail", false);
}
/**
* Returns the host for this monitor input.
*
* @return The host, or {@code null} if not specified.
*/
public String getHost() {
return getString("host", null);
}
/**
* Returns the regular expression for a file path to determine the host.
* If the path for a file matches this regular expression, the captured
* value is used to populate the <b>host</b> field for events from this
* monitor input. The regular expression must have one capture group.
*
* @return The regular expression for a file path.
*/
public String getHostRegex() {
return getString("host_regex", null);
}
/**
* Returns a time value that defines a rolling time window for monitoring
* files. If the modification time of a file being monitored falls outside
* of this rolling time window, the file is no longer being monitored.
*
* @return The time value.
*/
public String getIgnoreOlderThan() {
return getString("ignoreOlderThan", null);
}
/**
* Gets the index where events from this monitor input are stored.
*
* @return The index name.
*/
public String getIndex() {
return getString("index");
}
/**
* Returns the type of monitor input.
*
* @return The input kind.
*/
public InputKind getKind() {
return InputKind.Monitor;
}
/**
* Returns the queue for this monitor input. Valid values are "parsingQueue"
* and "indexQueue".
*
* @return The queue, or {@code null} if not specified.
*/
public String getQueue() {
return getString("queue", null);
}
/**
* Indicates whether sub-directories are monitored within this monitor
* input.
*
* @return {@code true} if sub-directories are monitored, {@code false} if
* not.
*/
public boolean getRecursive() {
return getBoolean("recursive", false);
}
/**
* @deprecated Returns the value of the {@code _rcvbuf} attribute for this
* monitor input.
*
* @return The {@code _rcvbuf} value.
*/
public int getRcvBuf() {
return getInteger("_rcvbuf");
}
/**
* Returns the source of events from this monitor input.
*
* @return The source name.
*/
public String getSource() {
return getString("source", null);
}
/**
* Returns the source type of events from this monitor input.
*
* @return The source type.
*/
public String getSourceType() {
return getString("sourcetype", null);
}
/**
* Returns the time period for keeping a file open.
*
* @return The time to keep a file open, in seconds.
*/
public int getTimeBeforeClose() {
return getInteger("time_before_close", -1);
}
/**
* Returns a regular expression for a file path that, when matched, is
* indexed.
*
* @return The regular expression for a file path.
*/
public String getWhitelist() {
return getString("whitelist", null);
}
/**
* Sets a regular expression for a file path that, when matched, is not
* indexed.
*
* @param blacklist The regular expression for a file path.
*/
public void setBlacklist(String blacklist) {
setCacheValue("blacklist", blacklist);
}
/**
* Sets whether the {@code index} value is checked to ensure that it is the
* name of a valid index.
*
* @param index {@code true} to verify {@code index}, {@code false} if not.
*/
public void setCheckIndex(boolean index) {
setCacheValue("check-index", index);
}
/**
* Sets whether the {@code name} value is checked to ensure that it exists.
*
* @param path {@code true} to verify {@code name}, {@code false} if not.
*/
public void setCheckPath(boolean path) {
setCacheValue("check-path", path);
}
/**
* Sets a string that is used to force Splunk to index files that have a
* matching cyclic redundancy check (CRC).
*
* When set, this string is added to the CRC. If the string is
* "{@code <SOURCE>}", the full source path is added to the CRC, ensuring
* that each file being monitored has a unique CRC. For more info, see the
* <a href="http://docs.splunk.com/Documentation/Splunk/latest/Data/Editinputs.conf"
* target="_blank">Edit inputs.conf</a>
* topic in the Getting Data In manual.
*
* @param salt The string that is added to the CRC.
*/
public void setCrcSalt(String salt) {
setCacheValue("crc-salt", salt);
}
/**
* Sets whether files that are seen for the first time will be read from
* the end.
*
* @param followTail {@code true} to read new files from the end,
* {@code false} if not.
*/
public void setFollowTail(boolean followTail) {
setCacheValue("followTail", followTail);
}
/**
* Sets the value to populate in the <b>host</b> field for events from this
* monitor input.
*
* @param host The value for the <b>host</b> field.
*/
public void setHost(String host) {
setCacheValue("host", host);
}
/**
* Set the regular expression for a file path to determine the host.
* If the path for a file matches this regular expression, the captured
* value is used to populate the <b>host</b> field for events from this
* monitor input. The regular expression must have one capture group.
*
* @param regex The regular expression for a file path.
*/
public void setHostRegex(String regex) {
setCacheValue("host_regex", regex);
}
/**
* Sets the specified slash-separate segment of the file path as the
* <b>host</b> field value.
*
* @param segment The slash-separate segment.
*/
public void setHostSegment(String segment) {
setCacheValue("host_segment", segment);
}
/**
* Sets a time value that defines a rolling time window for monitoring
* files. If the modification time of a file being monitored falls outside
* of this rolling time window, the file is no longer being monitored.
*
* @param time The time value.
*/
public void setIgnoreOlderThan(String time) {
setCacheValue("ignore-older-than", time);
}
/**
* Sets the index where events from this monitor input are stored.
*
* @param index The index name.
*/
public void setIndex(String index) {
setCacheValue("index", index);
}
/**
* Sets whether to monitor sub-directories within this monitor input.
*
* @param recursive {@code true} to monitor sub-directories, {@code false}
* if not.
*/
public void setRecursive(boolean recursive) {
setCacheValue("recursive", recursive);
}
/**
* Sets the name to populate in the <b>source</b> field for events
* from this monitor input. The same source name should not be used for
* multiple data inputs.
*
* @param name The source name.
*/
public void setRenameSource(String name) {
setCacheValue("rename-source", name);
}
/**
* Sets the source type to populate in the <b>sourcetype</b> field for
* events from this monitor input.
*
* @param sourcetype The source type.
*/
public void setSourcetype(String sourcetype) {
setCacheValue("sourcetype", sourcetype);
}
/**
* Sets the time period for keeping a file open.
*
* @param period The time to keep a file open, in seconds.
*/
public void setTimeBeforeClose(int period) {
setCacheValue("time-before-close", period);
}
/**
* Sets a regular expression for a file path that, when matched, is indexed.
*
* @param whitelist The regular expression for the file path.
*/
public void setWhitelist(String whitelist) {
setCacheValue("whitelist", whitelist);
}
}