Metrics Aggregator Protocol

Protocol definition between Metrics Aggrgator Daemon and Metrics Cluster Aggregator.

License

License

Categories

Categories

Net Metrics Application Testing & Monitoring Monitoring Networking
GroupId

GroupId

com.arpnetworking.metrics
ArtifactId

ArtifactId

metrics-aggregator-protocol
Last Version

Last Version

1.0.10
Release Date

Release Date

Type

Type

jar
Description

Description

Metrics Aggregator Protocol
Protocol definition between Metrics Aggrgator Daemon and Metrics Cluster Aggregator.
Project URL

Project URL

https://github.com/ArpNetworking/metrics-aggregator-protocol
Source Code Management

Source Code Management

https://github.com/arpnetworking/metrics-aggregator-protocol

Download metrics-aggregator-protocol

How to add to project

<!-- https://jarcasting.com/artifacts/com.arpnetworking.metrics/metrics-aggregator-protocol/ -->
<dependency>
    <groupId>com.arpnetworking.metrics</groupId>
    <artifactId>metrics-aggregator-protocol</artifactId>
    <version>1.0.10</version>
</dependency>
// https://jarcasting.com/artifacts/com.arpnetworking.metrics/metrics-aggregator-protocol/
implementation 'com.arpnetworking.metrics:metrics-aggregator-protocol:1.0.10'
// https://jarcasting.com/artifacts/com.arpnetworking.metrics/metrics-aggregator-protocol/
implementation ("com.arpnetworking.metrics:metrics-aggregator-protocol:1.0.10")
'com.arpnetworking.metrics:metrics-aggregator-protocol:jar:1.0.10'
<dependency org="com.arpnetworking.metrics" name="metrics-aggregator-protocol" rev="1.0.10">
  <artifact name="metrics-aggregator-protocol" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.arpnetworking.metrics', module='metrics-aggregator-protocol', version='1.0.10')
)
libraryDependencies += "com.arpnetworking.metrics" % "metrics-aggregator-protocol" % "1.0.10"
[com.arpnetworking.metrics/metrics-aggregator-protocol "1.0.10"]

Dependencies

compile (1)

Group / Artifact Type Version
com.google.protobuf : protobuf-java jar 3.10.0

provided (1)

Group / Artifact Type Version
com.arpnetworking.build : build-resources jar 2.0.2

Project Modules

There are no modules declared in this project.

Metrics Aggregator Protocol

License: Apache 2 Travis Build Maven Artifact

Defines the protocol between Metrics Aggregator Daemon and Metrics Cluster Aggregator.

Framing

Since protobuf does not have a message framing system, a prefix message length and message type has been added to the protocol.

Each message in the stream is prefixed with a 32-bit, big endian size (in bytes) of the message (including the size header). After the size comes a variable length message type. Currently, only 1 and 2 byte types are used. The message types are listed below.

Code Type
0x01 HostIdentification
0x03 Heartbeat
0x04 StatisticsSet
0x05 SampleSupportingData

Only SampleSupportingData currently has a subtype, which describes how to deserialize the supporting data.

Type and Subtype Code SubType
0x05 0x01 Samples supporting data
0x05 0x02 Sparse histogram supporting data

The full message format is:

 | 4 byte size | 1 byte type | [ 1 byte subtype (optional) ] | n byte protobuf payload

Building

Prerequisites:

Building:

metrics-aggregator-protocol> ./mvnw verify

To use the local version you must first install it locally:

metrics-aggregator-protocol> ./mvnw install

You can determine the version of the local build from the pom file. Using the local version is intended only for testing or development.

You may also need to add the local repository to your build in order to pick-up the local version:

  • Maven - Included by default.
  • Gradle - Add mavenLocal() to build.gradle in the repositories block.
  • SBT - Add resolvers += Resolver.mavenLocal into project/plugins.sbt.

License

Published under Apache Software License 2.0, see LICENSE

© Groupon Inc., 2016

Versions

Version
1.0.10
1.0.9
1.0.8
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2