-
-
Notifications
You must be signed in to change notification settings - Fork 28
Example: Scripts Pipeline
Lorenzo Mangani edited this page Apr 6, 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
}
influxdb {
host => localhost
port => 8089
protocol => udp
metric_type => counter
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 | }
This example will produce PPS/CPU metrics using ppsguard
and ship them to Splunk using 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: ppsguard
name: 'ppsguard'
autorestart: true
args: ['--interface', 'eth0', '--max_pps', '100', '--limit_every', 'second', '--udp', '127.0.0.1:18911']
- script: pastash
name: 'pastash_pps'
autorestart: true
args: ['--config_file=/opt/pastash/ppsguard.conf']
pm2 start /opt/pastash/ppsguard_init.yml
pm2 list