How to use Java to operate OpenTSDB

To operate OpenTSDB using Java, the following Maven dependencies need to be added: <dependencies> <dependency> <groupId>net.opentsdb</groupId> <artifactId>opentsdb-client</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> </dependencies> The following is a sample code for Java implementation of data addition, deletion, modification, and query: 1. Add data import net.opentsdb.client.HttpClientImpl; import net.opentsdb.client.HttpClientImpl.HttpDataPointsBuilder; import net.opentsdb.client.builder.MetricBuilder; import net.opentsdb.client.response.Response; import java.io.IOException; import java.util.Date; class OpenTSDBExample { public static void main(String[] args) throws IOException { //OpenTSDB Connection Configuration String opentsdbHost = "http://localhost"; int opentsdbPort = 4242; //Create Connection HttpClientImpl httpClient = new HttpClientImpl(opentsdbHost, opentsdbPort); //Building data MetricBuilder builder = MetricBuilder.getInstance(); builder.addMetric("metric_name") .setDataPoint(new Date(), 100) .addTag("tag1", "value1") .addTag("tag2", "value2"); //Sending data HttpDataPointsBuilder httpBuilder = httpClient.createDataPoints(); httpBuilder.metric(builder); Response response = httpBuilder.execute(); System.out.println("Response: " + response.getStatusCode() + " " + response.getContent()); //Close Connection httpClient.close(); } } 2. Query data import com.fasterxml.jackson.databind.ObjectMapper; import net.opentsdb.client.HttpClientImpl; import net.opentsdb.client.HttpQueryClientImpl; import net.opentsdb.client.builder.Aggregator; import net.opentsdb.client.builder.QueryBuilder; import net.opentsdb.client.response.Response; import net.opentsdb.client.util.Aggregators; import java.io.IOException; import java.util.Date; class OpenTSDBExample { public static void main(String[] args) throws IOException { //OpenTSDB Connection Configuration String opentsdbHost = "http://localhost"; int opentsdbPort = 4242; //Create Connection HttpClientImpl httpClient = new HttpClientImpl(opentsdbHost, opentsdbPort); HttpQueryClientImpl queryClient = new HttpQueryClientImpl(httpClient); //Build Query Date startDate = new Date(); Date endDate = new Date(); QueryBuilder queryBuilder = QueryBuilder.getInstance(); queryBuilder .get() .sum() .aggregator(Aggregator.builder().name(Aggregators.SUM).build()) .metric("metric_name") .tag("tag1", "value1") .tag("tag2", "value2") .downsample("5m-avg") .downsample("5m-sum") .start(startDate) .end(endDate); //Send query request Response response = queryClient.query(queryBuilder); System.out.println("Response: " + response.getStatusCode() + " " + response.getContent()); //Parsing query results ObjectMapper objectMapper = new ObjectMapper(); QueryResult queryResult = objectMapper.readValue(response.getContent(), QueryResult.class); //Process Query Results //Close Connection httpClient.close(); } } The above code examples are for reference only and need to be adapted according to the specific configuration and data model of OpenTSDB during actual use.