63 lines
2.4 KiB
YAML
63 lines
2.4 KiB
YAML
# ═══════════════════════════════════════════════════════════
|
|
# 🐍 OPHION - Java Auto-Instrumentation Example
|
|
# Demonstrates automatic tracing for Java applications
|
|
# ═══════════════════════════════════════════════════════════
|
|
#
|
|
# Usage:
|
|
# docker-compose up -d
|
|
#
|
|
# This example shows how to instrument ANY Java app without
|
|
# code changes using the OpenTelemetry Java Agent
|
|
# ═══════════════════════════════════════════════════════════
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
java-app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "8081:8080"
|
|
environment:
|
|
# ════════════════════════════════════════════════════
|
|
# OpenTelemetry Auto-Instrumentation Configuration
|
|
# ════════════════════════════════════════════════════
|
|
|
|
# Service identification
|
|
- OTEL_SERVICE_NAME=java-example-app
|
|
- OTEL_SERVICE_VERSION=1.0.0
|
|
|
|
# OTLP Exporter configuration (pointing to Ophion collector)
|
|
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
|
|
- OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
|
|
- OTEL_TRACES_EXPORTER=otlp
|
|
- OTEL_METRICS_EXPORTER=otlp
|
|
- OTEL_LOGS_EXPORTER=otlp
|
|
|
|
# Resource attributes
|
|
- OTEL_RESOURCE_ATTRIBUTES=deployment.environment=development,service.namespace=ophion-examples
|
|
|
|
# Sampling (1.0 = 100% of traces)
|
|
- OTEL_TRACES_SAMPLER=parentbased_traceidratio
|
|
- OTEL_TRACES_SAMPLER_ARG=1.0
|
|
|
|
# Propagation format
|
|
- OTEL_PROPAGATORS=tracecontext,baggage,b3multi
|
|
|
|
# Java Agent path (set in Dockerfile JAVA_TOOL_OPTIONS)
|
|
- JAVA_TOOL_OPTIONS=-javaagent:/opt/opentelemetry-javaagent.jar
|
|
|
|
networks:
|
|
- ophion
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
networks:
|
|
ophion:
|
|
external: true
|