All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.axibase.tsd.example.AbstractAtsdClientExample Maven / Gradle / Ivy

Go to download

The ATSD Client for Java enables Java developers to easily read and write statistics and metadata from Axibase Time-Series Database. Build reporting, analytics, and alerting solutions with minimal effort.

There is a newer version: 1.1.0
Show newest version
/*
 * Copyright 2016 Axibase Corporation or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 * https://www.axibase.com/atsd/axibase-apache-2.0.pdf
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.axibase.tsd.example;

import com.axibase.tsd.client.ClientConfigurationFactory;
import com.axibase.tsd.client.DataService;
import com.axibase.tsd.client.HttpClientManager;
import com.axibase.tsd.client.MetaDataService;
import com.axibase.tsd.model.data.series.Sample;
import com.axibase.tsd.model.data.series.Series;
import com.axibase.tsd.model.system.ClientConfiguration;
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.text.DateFormat;
import java.util.Date;
import java.util.List;

//import org.springframework.context.ApplicationContext;
//import org.springframework.context.support.ClassPathXmlApplicationContext;


public abstract class AbstractAtsdClientExample {
    protected Logger logger = LoggerFactory.getLogger(AbstractAtsdClientExample.class);
    protected DataService dataService;
    protected MetaDataService metaDataService;

    public DateFormat getDateFormat() {
        return new ISO8601DateFormat();
    }

    public void setDataService(DataService dataService) {
        this.dataService = dataService;
    }

    public void setMetaDataService(MetaDataService metaDataService) {
        this.metaDataService = metaDataService;
    }

    // Client Configuration -- way 1
    protected void configure() {
        logger.info("Getting Started with Axibase TSD");
        ClientConfiguration clientConfiguration = ClientConfigurationFactory.createInstance().createClientConfiguration();
        logger.info("Connecting to ATSD: " + clientConfiguration.getMetadataUrl());
        HttpClientManager httpClientManager = new HttpClientManager(clientConfiguration);
        dataService = new DataService(httpClientManager);
        metaDataService = new MetaDataService(httpClientManager);
    }

    // Client Configuration -- way 2
    protected void pureJavaConfigure() {
        ClientConfigurationFactory configurationFactory = new ClientConfigurationFactory(
                "http", "writeyourownservername.com", 8088, // serverPort
                "/api/v1", "/api/v1",
                "username", "pwd",
                3000, // connectTimeout
                3000, // readTimeout
                600000, // pingTimeout
                false, // ignoreSSLErrors
                false, // skipStreamingControl
                false //enableGzipCompression
        );
        ClientConfiguration clientConfiguration = configurationFactory.createClientConfiguration();
        logger.info("Connecting to ATSD: " + clientConfiguration.getMetadataUrl());
        HttpClientManager httpClientManager = new HttpClientManager(clientConfiguration);

        GenericObjectPoolConfig objectPoolConfig = new GenericObjectPoolConfig();
        objectPoolConfig.setMaxTotal(5);
        objectPoolConfig.setMaxIdle(5);

        httpClientManager.setObjectPoolConfig(objectPoolConfig);
        httpClientManager.setBorrowMaxWaitMillis(1000);

        dataService = new DataService(httpClientManager);
        metaDataService = new MetaDataService(httpClientManager);
    }

    // Client Configuration -- way 3
//    public static void main(String[] args) {
//        Add to your pom.xml:
//        
//        org.springframework
//        spring-context
//        4.0.3.RELEASE
//        

//        Uncomment springframework imports and code below
//        ApplicationContext context = new ClassPathXmlApplicationContext("example-beans.xml");
//        AtsdClientWriteExample example =(AtsdClientWriteExample)context.getBean("example");
//        example.writeData();
//        example.printData();
//    }

    protected String toISODate(long time) {
        return getDateFormat().format(new Date(time));
    }

    protected void print(Series series) {
        logger.info("Time Sample Key: " + series.getTimeSeriesKey());
        List data = series.getData();
        for (Sample sample : data) {
            long ts = sample.getTimeMillis();
            logger.info(toISODate(ts) + "\t" + sample.getNumericValueAsDouble() + (StringUtils.isNotEmpty(sample.getTextValue()) ? "\t" + sample.getTextValue() : ""));
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy