Skip to content

exasol/telemetry-java

Repository files navigation

telemetry-java

telemetry-java is a minimal Java library for collecting feature-usage telemetry and sending it to a server over HTTP.

Build Status Maven Central – telemetry-java

Quality Gate Status

Security Rating Reliability Rating Maintainability Rating Technical Debt

Code Smells Coverage Duplicated Lines (%) Lines of Code

The project is intended for application developers who want a small, auditable telemetry client with zero runtime dependencies. It focuses on feature usage only and deliberately excludes broader SDK behavior such as log collection, stack traces, high-frequency event streams, numeric measurements, or persistent local storage.

Status

This repository currently contains the MVP implementation and the corresponding recorded specs.

The project uses speq skills and recorded specs to drive planning, implementation, verification, and spec recording.

Features

  • Non-blocking telemetry recording through an in-memory queue and background sender
  • JSON-over-HTTP POST delivery
  • Protocol-compatible message format with category, protocol version, productVersion, timestamp, and features
  • Exponential backoff with retry timeout
  • Clean shutdown via AutoCloseable
  • Environment-variable control for disabling telemetry and overriding the endpoint
  • Lifecycle log messages for enabled, disabled, sent-count, and stopped telemetry states
  • Zero runtime dependencies

Quick Start

import com.exasol.telemetry.TelemetryClient;
import com.exasol.telemetry.TelemetryConfig;
TelemetryConfig config = TelemetryConfig.builder("my-app", "1.2.3").build();

try (TelemetryClient client = TelemetryClient.create(config)) {
    client.track("startup");
}

Environment Variables

  • EXASOL_TELEMETRY_DISABLE Disables telemetry collection and delivery when set to any non-empty value.
  • EXASOL_TELEMETRY_ENDPOINT Overrides the endpoint configured in code.

The default endpoint is https://metrics.exasol.com.

Documentation

Specifications

About

Client-side telemetry counters for Java

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages