vapord is an all-in-one metric collection and visualization system. Its main feature is simplicity -- no persistence, a simple protocol, and a limited conceptual model. Metrics are kept in memory and dropped after a configurable period of time.
It's currently very minimal and contains the minimal amount of features necessary to aid in monitoring a UDP-based audio system I'm developing for use at the Longshore household. More to come as needed.
Run the daemon. You can find a list of versions on DockerHub:
docker run --rm -p 13542:13542 -p 13542:13542/udp appalachian/vapord:<version>
Send a gauge:
netcat -u localhost 13542
g/test/1234
Send an event:
netcat -u localhost
e/test
View some data:
A gauge is a recording of a distinct integer value that is timestamped on arrival.
case class Gauge(name: String, value: Long)
An event signifies the occurrence of some arbitrary event. These are collected and summed over a specified aggregation period by the UDP server.
case class Event(name: String, rollUpPeriod: Option[Long])
This project uses sbt for its daemon.
This is currently harder than it needs to be.
- Fresh clone from upstream
cd vapor/backend
sbt release
git checkout v<version>
cd ../frontend; npm run build
cd ../backend; sbt assembly
cd ..
docker build -t appalachian/vapord:<version> .
docker push appalachian/vapord:<version>
Jason Longshore hello@jasonlongshore.com
Copyright (C) 2018 Jason Longshore (https://www.jasonlongshore.com/).
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project 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.