Search in sources :

Example 1 with Metric

use of com.axibase.tsd.api.model.metric.Metric in project atsd-api-test by axibase.

the class SeriesQueryTest method testXTextFieldLastVersion.

@Issue("3480")
@Test
public void testXTextFieldLastVersion() throws Exception {
    String entityName = "e-text-overwritten-versioning-1";
    String metricName = "m-text-overwritten-versioning-1";
    Series series = new Series(entityName, metricName);
    Metric metric = new Metric(metricName);
    metric.setVersioned(true);
    MetricMethod.createOrReplaceMetricCheck(metric);
    String[] data = new String[] { "1", "2" };
    for (String x : data) {
        Sample sample = Sample.ofDateIntegerText("2016-10-11T13:00:00.000Z", 1, x);
        series.setSamples(Collections.singleton(sample));
        insertSeriesCheck(Collections.singletonList(series));
    }
    SeriesQuery seriesQuery = new SeriesQuery(series);
    List<Series> seriesList = querySeriesAsList(seriesQuery);
    assertFalse("No series", seriesList.isEmpty());
    assertFalse("No series data", seriesList.get(0).getData().isEmpty());
    String received = seriesList.get(0).getData().get(0).getText();
    assertEquals("Last version of text field incorrect", data[data.length - 1], received);
}
Also used : Series(com.axibase.tsd.api.model.series.Series) SeriesQuery(com.axibase.tsd.api.model.series.query.SeriesQuery) Sample(com.axibase.tsd.api.model.series.Sample) Metric(com.axibase.tsd.api.model.metric.Metric) Issue(io.qameta.allure.Issue) Test(org.testng.annotations.Test)

Example 2 with Metric

use of com.axibase.tsd.api.model.metric.Metric in project atsd-api-test by axibase.

the class SeriesInsertTest method testXTextFieldVersioned.

@Issue("3740")
@Test
public void testXTextFieldVersioned() throws Exception {
    String entityName = entity();
    String metricName = metric();
    Series series = new Series(entityName, metricName);
    Metric metric = new Metric(metricName);
    metric.setVersioned(true);
    MetricMethod.createOrReplaceMetricCheck(metric);
    String[] data = new String[] { "1", "2", "3", "4" };
    for (String x : data) {
        Sample sample = Sample.ofDateIntegerText("2016-10-11T13:00:00.000Z", 1, x);
        series.setSamples(Collections.singleton(sample));
        insertSeriesCheck(Collections.singletonList(series));
    }
    SeriesQuery seriesQueryVersioned = new SeriesQuery(series);
    seriesQueryVersioned.setVersioned(true);
    seriesQueryVersioned.setExactMatch(false);
    List<Series> seriesListVersioned = querySeriesAsList(seriesQueryVersioned);
    List<String> textValuesVersioned = new ArrayList<>();
    for (Sample s : seriesListVersioned.get(0).getData()) {
        textValuesVersioned.add(s.getText());
    }
    assertEquals("Text field versioning is corrupted", Arrays.asList(data), textValuesVersioned);
}
Also used : Series(com.axibase.tsd.api.model.series.Series) SeriesQuery(com.axibase.tsd.api.model.series.query.SeriesQuery) Sample(com.axibase.tsd.api.model.series.Sample) ArrayList(java.util.ArrayList) Metric(com.axibase.tsd.api.model.metric.Metric) Issue(io.qameta.allure.Issue) Test(org.testng.annotations.Test)

Example 3 with Metric

use of com.axibase.tsd.api.model.metric.Metric in project atsd-api-test by axibase.

the class SeriesInsertTest method testPrecisionAfterCompaction.

@Issue("2871")
@Test(dataProvider = "afterCompactionDataProvider")
public void testPrecisionAfterCompaction(DataType type, BigDecimal valueBefore) throws Exception {
    Metric metric = new Metric(metric());
    metric.setDataType(type);
    long time = MILLS_TIME;
    Series series = new Series(entity(), metric.getName());
    series.addSamples(Sample.ofDateDecimal(Util.ISOFormat(time), valueBefore));
    MetricMethod.createOrReplaceMetricCheck(metric);
    SeriesMethod.insertSeriesCheck(series);
    CompactionMethod.performCompaction();
    SeriesQuery seriesQuery = new SeriesQuery(series.getEntity(), series.getMetric(), time, time + 1);
    List<Series> seriesList = querySeriesAsList(seriesQuery);
    BigDecimal actualValue = seriesList.get(0).getData().get(0).getValue();
    assertDecimals("Stored value precision incorrect", valueBefore, actualValue);
}
Also used : Series(com.axibase.tsd.api.model.series.Series) SeriesQuery(com.axibase.tsd.api.model.series.query.SeriesQuery) Metric(com.axibase.tsd.api.model.metric.Metric) BigDecimal(java.math.BigDecimal) Issue(io.qameta.allure.Issue) Test(org.testng.annotations.Test)

Example 4 with Metric

use of com.axibase.tsd.api.model.metric.Metric in project atsd-api-test by axibase.

the class MetricSeriesTest method testMetricNameContainsSlash.

@Issue("1278")
@Test
public void testMetricNameContainsSlash() throws Exception {
    final Metric metric = new Metric("series/metric-2");
    createOrReplaceMetricCheck(metric);
    assertTrue("series array should be empty", compareJsonString("[]", queryMetricSeriesResponse(metric.getName()).readEntity(String.class)));
}
Also used : Metric(com.axibase.tsd.api.model.metric.Metric) Issue(io.qameta.allure.Issue) Test(org.testng.annotations.Test)

Example 5 with Metric

use of com.axibase.tsd.api.model.metric.Metric in project atsd-api-test by axibase.

the class MetricUpdateTest method testMetricTagNameIsLowerCased.

@Issue("3141")
@Test
public void testMetricTagNameIsLowerCased() throws Exception {
    final String TAG_NAME = "NeWtAg";
    final String TAG_VALUE = "value";
    Metric metric = new Metric("update-metric-with-tag");
    Response createResponse = createOrReplaceMetric(metric);
    assertSame("Failed to create metric", Response.Status.Family.SUCCESSFUL, Util.responseFamily(createResponse));
    createOrReplaceMetricCheck(metric);
    Map<String, String> tags = new HashMap<>();
    tags.put("NeWtAg", "value");
    metric.setTags(tags);
    Response updateResponse = updateMetric(metric);
    assertSame("Failed to update metric", Response.Status.Family.SUCCESSFUL, Util.responseFamily(updateResponse));
    Response queryResponse = queryMetric(metric.getName());
    assertSame("Failed to query metric", Response.Status.Family.SUCCESSFUL, Util.responseFamily(queryResponse));
    Metric updatedMetric = queryResponse.readEntity(Metric.class);
    assertEquals("Wrong metric name", metric.getName(), updatedMetric.getName());
    Map<String, String> expectedTags = new HashMap<>();
    expectedTags.put(TAG_NAME.toLowerCase(), TAG_VALUE);
    assertEquals("Wrong metric tags", expectedTags, updatedMetric.getTags());
}
Also used : Response(javax.ws.rs.core.Response) HashMap(java.util.HashMap) Metric(com.axibase.tsd.api.model.metric.Metric) Issue(io.qameta.allure.Issue) Test(org.testng.annotations.Test)

Aggregations

Metric (com.axibase.tsd.api.model.metric.Metric)88 Test (org.testng.annotations.Test)69 Issue (io.qameta.allure.Issue)61 Series (com.axibase.tsd.api.model.series.Series)36 Entity (com.axibase.tsd.api.model.entity.Entity)21 Response (javax.ws.rs.core.Response)18 BeforeClass (org.testng.annotations.BeforeClass)16 MetricCheck (com.axibase.tsd.api.method.checks.MetricCheck)14 SeriesQuery (com.axibase.tsd.api.model.series.query.SeriesQuery)13 SqlTest (com.axibase.tsd.api.method.sql.SqlTest)11 MetricCommand (com.axibase.tsd.api.model.command.MetricCommand)11 BigDecimal (java.math.BigDecimal)7 MetricTest (com.axibase.tsd.api.method.metric.MetricTest)5 HashMap (java.util.HashMap)5 Sample (com.axibase.tsd.api.model.series.Sample)4 File (java.io.File)4 ArrayList (java.util.ArrayList)4 SeriesSearchResultRecord (com.axibase.tsd.api.model.series.search.SeriesSearchResultRecord)3 Period (com.axibase.tsd.api.model.Period)2 Aggregate (com.axibase.tsd.api.model.series.query.transformation.aggregate.Aggregate)2