-
-
Notifications
You must be signed in to change notification settings - Fork 28
Example: Scripts Pipeline
Lorenzo Mangani edited this page Jan 9, 2018
·
11 revisions
paStash can serve all sorts of script emitting JSON objects for distribution and post-processing.
In this example, we'll use the input of ppsguard
to power a gauge
using the statsd
protocol.
input {
udp {
host => 127.0.0.1
port => 1234
}
}
filter {
json_fields {}
}
output {
studout {}
statsd {
host => localhost
port => 8125
metric_type => gauge
metric_key => pps
}
}
npm install -g ppsguard
ppsguard --max_pps=100 --interface eth0 --udp 127.0.0.1:1234
0|pastash | [STDOUT] {
0|pastash | "cpu": 1.50927734375,
0|pastash | "pps": 101.996651754871111,
0|pastash | "mean": 141.236352751854155,
0|pastash | "message": "WARNING!"
0|pastash | "timestamp": "2018-01-02T17:33:44.737Z",
0|pastash | }
input {
udp {
host => 127.0.0.1
port => 18911
}
}
filter {
json_fields {}
}
output {
splunk {
token => "XXX-YYY-ZZZ"
source => "ppsGuard"
index => "your-lovely-index"
sourcetype => "_json"
splunk_url => "https://your-own-id.splunkcloud.com:443/services/collector/event"
flat => true
}
}
apps:
- script : pastash
name: 'pastash_pps'
watch: true
args: ['--config_file=/opt/pastash/ppsguard.conf']
pm2 start /opt/pastash/pastash_pps.yml
verify the service:
pm2 show pastash_pps
apps:
- script : ppsguard
name: 'ppsguard'
args: ['--interface', 'eth0', '--max_pps=1', '--max_cpu=2', '--limit_every', 'second', '--udp', '127.0.0.1:18911']
pm2 start /opt/pastash/ppsguard.yml
pm2 show ppsguard