<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
<version>1.0.0</version>
</dependency>
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.metrics.DoubleCounter;
import io.opentelemetry.api.metrics.DoubleCounterBuilder;
public class Monitor {
private DoubleCounter requestCounter;
public Monitor() {
Meter meter = io.opentelemetry.api.metrics.MetricsProvider.getMeter("my-library");
DoubleCounterBuilder counterBuilder = meter.doubleCounterBuilder("requests");
requestCounter = counterBuilder.build();
}
public void recordRequest() {
requestCounter.add(1.0);
}
}
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Span;
public class Alert {
public void checkThreshold(double threshold) {
Span span = GlobalOpenTelemetry.getTracer("my-library").spanBuilder("checkThreshold").startSpan();
// Perform threshold check logic here
if (/* threshold exceeded */) {
span.addEvent("Threshold Exceeded");
// Trigger alert
}
span.end();
}
}
exporter:
logging:
logLevel: INFO
trace:
enabled: true
sampling:
ratio: 1.0
metrics:
enabled: true
exporter:
otelColTraceExporter:
endpoint: http://localhost:14268/api/traces