-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathmanual_batching.js
92 lines (82 loc) · 2.33 KB
/
manual_batching.js
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
/*
* Copyright 2015 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.
*/
/**
* This example shows how to batch events with the
* SplunkLogger by manually calling flush.
*
* By setting maxbatchCount=0, events will be queued
* until flush() is called.
*/
// Change to require("splunk-logging").Logger;
var SplunkLogger = require("../index").Logger;
/**
* Only the token property is required.
*
* Here, maxBatchCount is set to 0.
*/
var config = {
token: "your-token-here",
url: "https://localhost:8088",
maxBatchCount: 0 // Manually flush events
};
// Create a new logger
var Logger = new SplunkLogger(config);
Logger.error = function(err, context) {
// Handle errors here
console.log("error", err, "context", context);
};
// Define the payload to send to Splunk's Event Collector
var payload = {
// Message can be anything, doesn't have to be an object
message: {
temperature: "70F",
chickenCount: 500
},
// Metadata is optional
metadata: {
source: "chicken coop",
sourcetype: "httpevent",
index: "main",
host: "farm.local"
},
// Severity is also optional
severity: "info"
};
console.log("Queuing payload", payload);
// Don't need a callback here
Logger.send(payload);
var payload2 = {
message: {
temperature: "75F",
chickenCount: 600,
note: "New chickens have arrived"
},
metadata: payload.metadata
};
console.log("Queuing second payload", payload2);
// Don't need a callback here
Logger.send(payload2);
/**
* Call flush manually.
* This will send both payloads in a single
* HTTP request.
*
* The same callback can work for send() and flush().
*/
Logger.flush(function(err, resp, body) {
// If successful, body will be { text: 'Success', code: 0 }
console.log("Response from Splunk", body);
});