Skip to main content

Observability

Monitor application performance through metrics and observability data.

Overview

The Observability API provides access to:

  • Application Metrics — Performance, throughput, latency
  • JVM Metrics — Memory, GC, threads
  • Business Metrics — Transformation counts, error rates
  • Prometheus Format — Compatible with popular monitoring stacks

Integration with Monitoring Stack

This API integrates with:

Operations

Common Metrics

transform_files_processed_total        — Total files transformed
transform_records_published_total — Total records published to Kafka
transform_errors_total — Total transformation errors
transform_duration_seconds — Duration of transformations
jvm_memory_used_bytes — JVM heap memory in use
jvm_threads_current — Active JVM threads
http_requests_total — Total HTTP requests
http_request_duration_seconds — HTTP request latency

Example: Query Metrics

# List all available metrics
curl http://localhost:8080/actuator/metrics

# Get a specific metric (JVM memory)
curl http://localhost:8080/actuator/metrics/jvm.memory.used

# Prometheus-compatible format (scrape by Prometheus)
curl http://localhost:8080/actuator/prometheus

Prometheus Configuration

Add to prometheus.yml:

scrape_configs:
- job_name: "transform-platform"
static_configs:
- targets: ["localhost:8080"]
metrics_path: "/actuator/prometheus"
scrape_interval: 15s

Grafana Dashboards

Pre-built dashboards available:

  • JVM Performance
  • Application Throughput
  • Error Rates
  • Kafka Publishing Metrics

Custom Metrics

Application publishes custom metrics:

  • transform.files.processed — Gauge
  • transform.records.published — Counter
  • transform.errors — Counter
  • transform.duration — Timer

Access via Prometheus queries:

rate(transform_files_processed_total[5m])      # 5-min throughput
transform_errors_total # Total errors
transform_duration_seconds_bucket{le="+Inf"} # Duration percentiles