Giter Site home page Giter Site logo

dropsonde-protocol's Introduction

dropsonde-protocol

Dropsonde is a two-way protocol for emitting events and metrics in one direction. Messages are encoded in the Google Protocol Buffer binary wire format.

It is a goal of the system to reduce the need for low-level metric events (e.g. ValueMetric and CounterEvent messages). Though in the early stages, we include types such as HttpStartEvent, HttpStopEvent and HttpStartStopEvent to allow metric generation and aggregation at a higher level of abstraction, and to offload the work of aggregation to downstream receivers. Emitting applications should focus on delivering events, not processing them or computing statistics.

This protocol forms the backbone of the Doppler system of Cloud Foundry.

Message types

Please see the following for detailed descriptions of each type:

Library using this protocol

  • Sonde-Go is a generated Go library for components that wish to emit messages to or consume messages from the Cloud Foundry metric system.

Generating code

Note: Due to maps not being supported in protoc v2.X, the proto definitions in this repository require protoc v3.0.0 or higher.

Go

Code generation for Go has moved to the Sonde-Go library.

Java

  1. Build the go code first (see above) so that all the imports are available

  2. Generate the Java code (optionally providing a target path as a directory)

    ./generate-java.sh [TARGET_PATH]
    

Other languages

For C++ and Python, Google provides tutorials.

Please see this list for working with protocol buffers in other languages.

Message documentation

Each package's documentation is auto-generated with protoc-gen-doc. After installing the tool, run:

cd events
protoc --doc_out=markdown,README.md:. *.proto

Communication protocols

Event emission

Dropsonde is intended to be a "fire and forget" protocol, in the sense that an emitter should send events to its receiver with no expectation of acknowledgement. There is no "handshake" step; the emitter simply begins emitting to a known address of an expected recipient.

dropsonde-protocol's People

Contributors

roxtar avatar ajackson avatar lvarvel avatar cwlbraa avatar geapi avatar jtuchscherer avatar wfernandes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.