Java / Kotlin SDK
JVM SDK for JustAnalytics distributed tracing and error tracking.
Installation#
Add the JitPack repository to your build file:
Gradle (Kotlin DSL)#
// settings.gradle.kts
dependencyResolutionManagement {
repositories {
mavenCentral()
maven("https://jitpack.io")
}
}
// build.gradle.kts
dependencies {
implementation("com.github.specifiedcodes.justanalytics-java:justanalytics-core:0.1.0")
}
Gradle (Groovy)#
// settings.gradle
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
// build.gradle
dependencies {
implementation 'com.github.specifiedcodes.justanalytics-java:justanalytics-core:0.1.0'
}
Maven#
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.specifiedcodes.justanalytics-java</groupId>
<artifactId>justanalytics-core</artifactId>
<version>0.1.0</version>
</dependency>
Quick Start (Kotlin)#
import com.justanalytics.JustAnalytics
fun main() {
JustAnalytics.init(
siteId = System.getenv("JUSTANALYTICS_SITE_ID"),
apiKey = System.getenv("JUSTANALYTICS_API_KEY"),
serviceName = "kotlin-api",
environment = "production"
)
}
Quick Start (Java)#
import com.justanalytics.JustAnalytics;
public class Application {
public static void main(String[] args) {
JustAnalytics.init(JustAnalytics.Options.builder()
.siteId(System.getenv("JUSTANALYTICS_SITE_ID"))
.apiKey(System.getenv("JUSTANALYTICS_API_KEY"))
.serviceName("java-api")
.environment("production")
.build());
}
}
Tracing (Kotlin)#
val result = JustAnalytics.startSpan("process-order") { span ->
span.setAttribute("order.id", orderId)
val user = JustAnalytics.startSpan("fetch-user") {
userRepository.findById(userId)
}
ProcessResult(success = true, user = user)
}
Tracing (Java)#
var result = JustAnalytics.startSpan("process-order", span -> {
span.setAttribute("order.id", orderId);
var user = JustAnalytics.startSpan("fetch-user", s -> {
return userRepository.findById(userId);
});
return new ProcessResult(true, user);
});
Error Tracking#
try {
riskyOperation()
} catch (e: Exception) {
JustAnalytics.captureException(e, mapOf("module" to "payments"))
}
Spring Boot Integration#
// application.yml
justanalytics:
site-id: ${JUSTANALYTICS_SITE_ID}
api-key: ${JUSTANALYTICS_API_KEY}
service-name: spring-boot-app
// Auto-instruments:
// - Spring MVC / WebFlux requests
// - JDBC queries
// - Spring Data repositories
// - RestTemplate / WebClient HTTP calls
// - Scheduled tasks
Custom Metrics#
JustAnalytics.recordMetric("custom.queue_size", 42.0, mapOf("queue" to "emails"))
Requirements#
- Java 17+ / Kotlin 1.8+
- Spring Boot 3.0+ (for Spring integration)