Metrics Client Protocol

Protocol definition between a metrics client and an aggregator or storage system.

License

License

Categories

Categories

CLI User Interface Metrics Application Testing & Monitoring Monitoring
GroupId

GroupId

io.inscopemetrics.client
ArtifactId

ArtifactId

protocol
Last Version

Last Version

0.12.0
Release Date

Release Date

Type

Type

jar
Description

Description

Metrics Client Protocol
Protocol definition between a metrics client and an aggregator or storage system.
Project URL

Project URL

https://github.com/InscopeMetrics/client-protocol
Source Code Management

Source Code Management

https://github.com/InscopeMetrics/client-protocol

Download protocol

How to add to project

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

Dependencies

compile (1)

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

provided (1)

Group / Artifact Type Version
com.inscopemetrics.build : build-resources jar 2.0.1

Project Modules

There are no modules declared in this project.

Metrics Client Protocol

License: Apache 2 Travis Build Maven Artifact

Defines a protocol for transmitting metric samples or statistics from a client to an aggregator.

Features

Dimensions

Encode each record's dimensions as a key-value pair of identifiers. The dimensions on a Record apply to all samples and statistics on that Record.

Samples

Encode each metric's measurements into each MetricSampleEntry instance. The samples are all of one type. Currently, only double values are supported for samples.

Statistics

Encode each metric's statistic into each MetricStatisticsEntry instance. Encoding a statistic and samples for the same metric is valid so long as the statistic and samples are of compatible types. Currently, only AugmentedHistogram statistic is supported and can be paired with DoubleSamples type samples.

Identifiers

Even under intensive (broad and frequent) measurement, the identifiers in a payload occupy a non-trivial amount of static space in each request. Instead, of clients sending the actual string identifiers with each request this format will support sending identifiers instead. The client and server would agree on a int64 id to use during a session for a particular string. This feature is not yet implemented.

Building

Prerequisites:

  • None

Building:

client-protocol> ./jdk-wrapper.sh ./mvnw verify

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

client-protocol> ./jdk-wrapper.sh ./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

© Inscope Metrics Inc., 2016

io.inscopemetrics.client

Inscope Metrics

Versions

Version
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0