Skip to content
Arnab Nandy edited this page Sep 3, 2026 · 2 revisions

BugDNA Wiki

BugDNA turns Java exceptions into deterministic, searchable fingerprints such as BUGDNA-7A3F21. Use those IDs to group recurring failures, compare deployments, enrich logs and traces, and connect known failures to owners and runbooks.

Fingerprint fingerprint = BugDna.generate(exception);

System.out.println(fingerprint.getId());
System.out.println(fingerprint.explain());

What BugDNA Provides

Capability What it is for Where to begin
Deterministic fingerprinting Turn equivalent Java exceptions into stable IDs without hashing exception messages Core Library
Failure aggregation Count, rank, cluster, and inspect failures in memory Failure Tracking
Spring Boot integration Automatically capture MVC and WebFlux failures and expose managed services Spring Boot Starter
Observability Add fingerprints to logs, MDC, OpenTelemetry spans, Actuator, and Micrometer Observability
Offline log analysis Summarize and compare BugDNA IDs in existing log files Command-Line Interface
Build validation Detect exception-handling hazards from Maven or Gradle Build-Time Validation

Choose Your Path

I want to add BugDNA to a Java application

Start with Getting Started, then use the Core Library guide for fingerprint generation, classification, similarity, and comparisons.

I use Spring Boot

Read Core vs Spring Boot Starter, install the starter, and follow Spring Boot Starter. All settings are collected in the Configuration Reference.

I operate a service in production

Use Failure Tracking for aggregation and deployment comparisons, Observability for telemetry, and Architecture and Data Handling for lifecycle, privacy, and memory behavior.

I maintain or contribute to BugDNA

See Development and Releases, Contributing, the API Reference, and the Changelog.

Recommended Reading Order

New users can follow the wiki from concepts to operation in this sequence:

  1. Getting Started — choose an artifact and generate a first fingerprint.
  2. Core vs Spring Boot Starter — decide between explicit framework-free use and managed integration.
  3. Core Library — understand fingerprinting, classification, similarity, and comparison.
  4. Failure Tracking — aggregate occurrences, detect bursts, drift, and regressions.
  5. Spring Boot Starter — enable automatic MVC or WebFlux capture.
  6. Configuration Reference — configure starter behavior and management exposure.
  7. Observability — integrate logs, MDC, tracing, Actuator, and metrics.
  8. Command-Line Interface — inspect existing logs outside the application.
  9. Build-Time Validation — add source scanning to Maven or Gradle.
  10. Architecture and Data Handling — review determinism, concurrency, memory, privacy, and lifecycle.
  11. API Reference — look up individual public types and methods.

Every page ends with previous, home, and next links following this order. Task-oriented pages remain directly accessible from the sidebar.

Compatibility

Artifact Minimum runtime Purpose
io.github.arnabnandy7:bugdna Java 8 Framework-free core API
io.github.arnabnandy7:bugdna-build-scanner Java 8 Shared scanner engine
io.github.arnabnandy7:bugdna-maven-plugin Java 8 and Maven Maven scan goal
io.github.arnabnandy7:bugdna-spring-boot-starter Java 17 and Spring Boot 4.x Spring integrations
io.github.arnabnandy7:bugdna-cli Java 8 Log analysis and comparison
Gradle plugin io.github.arnabnandy7.bugdna Java 8 and Gradle Gradle scan task

The version documented by this wiki is 1.1.2. Review Migration Guide and Changelog when upgrading.

Important Operational Properties

  • Fingerprint identity uses the deepest exception type and up to five normalized stack frames.
  • Exception messages, line numbers, timestamps, request IDs, and user identifiers are excluded from fingerprint identity.
  • Trackers and recent-fingerprint repositories are in memory; counts reset when the process restarts.
  • Automatic Spring capture observes failures but does not replace Spring's error-response handling.
  • Actuator output can reveal application class and method names and should receive normal management-endpoint protection.

Help and Project Links

Clone this wiki locally