-
Notifications
You must be signed in to change notification settings - Fork 39
JavaAPI
Jesse White edited this page Apr 30, 2015
·
6 revisions
Example:
import org.opennms.newts.api.*;
...
// Create a collection of Sample objects
List<Sample> samples = new ArrayList<Sample>();
samples.add(
new Sample(
Timestamp.now(),
new Resource("/devices/sw1/interfaces"),
"ifInOctets",
MetricType.COUNTER,
123456789000
)
);
...
// Create new Cassandra session instance
CassandraSession session = new CassandraSession("newts", "localhost", 9042, "NONE");
// Number of seconds to keep samples for
int ttl = 86400 * 365;
// Codahale metric registry (http://metrics.dropwizard.io).xs
MetricRegistry registry = new MetricRegistry();
// Create an empty sample processor service
SampleProcessorService processors = new SampleProcessorService(32, Collections.emptySet());
// Sample repositories are used for reading/writing
SampleRepository repo = new CassandraSampleRepository(session, ttl, registry, processors);
// Insert!
repo.insert(samples);
Example:
Resource resource = new Resource("/devices/sw1/interfaces");
Timestamp start, end;
end = Timestamp.now();
start = Timestamp.minus(Duration.minutes(120));
// Select raw samples
Results<Sample> samples = repo.select(resource, Optional.of(start), Optional.of(end));
Example:
Resource resource = new Resource("/devices/sw1/interfaces");
Timestamp start, end;
end = Timestamp.now();
start = Timestamp.minus(Duration.minutes(120));
// Create a result descriptor with a 5 minute sample interval (300 seconds).
// Generate averages for the metrics named "ifInOctets" and "ifOutOctets",
// with a heartbeat of 600 seconds; Name the aggregates "in" and "out"
// respectively, and export them both.
ResultDescriptor descriptor = new ResultDescriptor(300)
.datasource("in", "ifInOctets", Duration.seconds(600), StandardAggregateFunctions.AVERAGE)
.datasource("out", "ifOutOctets", Duration.seconds(600), StandardAggregateFunctions.AVERAGE)
.export("in", "out");
Duration duration = Duration.minutes(15);
// Select aggregated measurements
Results<Measurement> measurements = repo.select(resource, Optional.of(start), Optional.of(end), descriptor, duration);
- Getting Started
- Data Model
- Running a REST Service
- Using the Java API
- Aggregation
- Search
- API Reference * Java * REST
- Hacking Newts