Search in sources :

Example 6 with Metric

use of com.thinkbiganalytics.metadata.sla.api.Metric in project kylo by Teradata.

the class ServiceLevelAgreementMetricTransformerHelper method getServiceLevelAgreement.

public ServiceLevelAgreement getServiceLevelAgreement(ServiceLevelAgreementGroup serviceLevelAgreement) {
    ServiceLevelAgreement transformedSla = new ServiceLevelAgreement();
    transformedSla.setId(serviceLevelAgreement.getId());
    transformedSla.setName(serviceLevelAgreement.getName());
    transformedSla.setDescription(serviceLevelAgreement.getDescription());
    for (ServiceLevelAgreementRule rule : serviceLevelAgreement.getRules()) {
        try {
            ObligationGroup group = new ObligationGroup();
            Metric policy = ServiceLevelAgreementMetricTransformer.instance().fromUiModel(rule);
            Obligation obligation = new Obligation(policy.getDescription());
            obligation.setMetrics(Lists.newArrayList(policy));
            group.addObligation(obligation);
            group.setCondition(rule.getCondition().name());
            transformedSla.addGroup(group);
        } catch (PolicyTransformException e) {
            throw new RuntimeException(e);
        }
    }
    return transformedSla;
}
Also used : Obligation(com.thinkbiganalytics.metadata.rest.model.sla.Obligation) ServiceLevelAgreement(com.thinkbiganalytics.metadata.rest.model.sla.ServiceLevelAgreement) Metric(com.thinkbiganalytics.metadata.sla.api.Metric) PolicyTransformException(com.thinkbiganalytics.policy.PolicyTransformException) ObligationGroup(com.thinkbiganalytics.metadata.rest.model.sla.ObligationGroup)

Example 7 with Metric

use of com.thinkbiganalytics.metadata.sla.api.Metric in project kylo by Teradata.

the class FeedExecutedSinceFeeds method buildPreconditionObligation.

/**
 * Builds the ObligationGroup that holds the metric that will be used to assess if this precondition is met or not
 */
public com.thinkbiganalytics.metadata.rest.model.sla.ObligationGroup buildPreconditionObligation() {
    Set<Metric> metrics = new HashSet<>();
    for (String categoryAndFeed : categoryAndFeedList) {
        FeedExecutedSinceFeed metric = new FeedExecutedSinceFeed(sinceCategoryAndFeedName, categoryAndFeed);
        metrics.add(metric);
    }
    Obligation obligation = new Obligation();
    obligation.setMetrics(Lists.newArrayList(metrics));
    com.thinkbiganalytics.metadata.rest.model.sla.ObligationGroup group = new com.thinkbiganalytics.metadata.rest.model.sla.ObligationGroup();
    group.addObligation(obligation);
    group.setCondition(ObligationGroup.Condition.REQUIRED.name());
    return group;
}
Also used : Obligation(com.thinkbiganalytics.metadata.rest.model.sla.Obligation) FeedExecutedSinceFeed(com.thinkbiganalytics.metadata.api.sla.FeedExecutedSinceFeed) Metric(com.thinkbiganalytics.metadata.sla.api.Metric) ObligationGroup(com.thinkbiganalytics.metadata.sla.api.ObligationGroup) HashSet(java.util.HashSet)

Example 8 with Metric

use of com.thinkbiganalytics.metadata.sla.api.Metric in project kylo by Teradata.

the class DebugController method exampleMetrics.

/**
 * returns a list of metrics for debugging
 *
 * @return a list of metrics
 */
@GET
@Path("metrics")
@Produces(MediaType.APPLICATION_JSON)
public List<Metric> exampleMetrics() {
    List<Metric> metrics = new ArrayList<>();
    FeedExecutedSinceSchedule feedExecutedSinceSchedule = null;
    try {
        feedExecutedSinceSchedule = new FeedExecutedSinceSchedule("category", "Feed", "* * * * * ? *");
        metrics.add(feedExecutedSinceSchedule);
        WithinSchedule withinSchedule = new com.thinkbiganalytics.metadata.api.sla.WithinSchedule("* * * * * ? *", "4 hours");
        metrics.add(withinSchedule);
    } catch (ParseException e) {
        throw new RuntimeException(e);
    }
    return metrics;
}
Also used : ArrayList(java.util.ArrayList) FeedExecutedSinceSchedule(com.thinkbiganalytics.metadata.api.sla.FeedExecutedSinceSchedule) Metric(com.thinkbiganalytics.metadata.sla.api.Metric) ParseException(java.text.ParseException) WithinSchedule(com.thinkbiganalytics.metadata.api.sla.WithinSchedule) Path(javax.ws.rs.Path) JcrPath(com.thinkbiganalytics.metadata.modeshape.support.JcrPath) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 9 with Metric

use of com.thinkbiganalytics.metadata.sla.api.Metric in project kylo by Teradata.

the class JcrObligation method setMetrics.

public void setMetrics(Set<Metric> metrics) {
    try {
        NodeIterator nodes = this.node.getNodes(METRICS);
        while (nodes.hasNext()) {
            Node metricNode = (Node) nodes.next();
            metricNode.remove();
        }
        for (Metric metric : metrics) {
            Node metricNode = this.node.addNode(METRICS, METRIC_TYPE);
            JcrPropertyUtil.setProperty(metricNode, NAME, metric.getClass().getSimpleName());
            JcrPropertyUtil.setProperty(metricNode, DESCRIPTION, metric.getDescription());
            JcrUtil.addGenericJson(metricNode, JSON, metric);
        }
    } catch (RepositoryException e) {
        throw new MetadataRepositoryException("Failed to retrieve the metric nodes", e);
    }
}
Also used : NodeIterator(javax.jcr.NodeIterator) MetadataRepositoryException(com.thinkbiganalytics.metadata.modeshape.MetadataRepositoryException) Node(javax.jcr.Node) Metric(com.thinkbiganalytics.metadata.sla.api.Metric) MetadataRepositoryException(com.thinkbiganalytics.metadata.modeshape.MetadataRepositoryException) RepositoryException(javax.jcr.RepositoryException)

Aggregations

Metric (com.thinkbiganalytics.metadata.sla.api.Metric)9 Obligation (com.thinkbiganalytics.metadata.rest.model.sla.Obligation)3 TestMetric (com.thinkbiganalytics.metadata.api.sla.TestMetric)2 ObligationGroup (com.thinkbiganalytics.metadata.rest.model.sla.ObligationGroup)2 InMemorySLAProvider (com.thinkbiganalytics.metadata.sla.spi.core.InMemorySLAProvider)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 Path (javax.ws.rs.Path)2 Produces (javax.ws.rs.Produces)2 VelocityEmailTemplate (com.thinkbiganalytics.common.velocity.model.VelocityEmailTemplate)1 DatasourceUpdatedSinceFeedExecuted (com.thinkbiganalytics.metadata.api.sla.DatasourceUpdatedSinceFeedExecuted)1 FeedExecutedSinceFeed (com.thinkbiganalytics.metadata.api.sla.FeedExecutedSinceFeed)1 FeedExecutedSinceSchedule (com.thinkbiganalytics.metadata.api.sla.FeedExecutedSinceSchedule)1 WithinSchedule (com.thinkbiganalytics.metadata.api.sla.WithinSchedule)1 MetadataRepositoryException (com.thinkbiganalytics.metadata.modeshape.MetadataRepositoryException)1 JcrPath (com.thinkbiganalytics.metadata.modeshape.support.JcrPath)1 ServiceLevelAgreement (com.thinkbiganalytics.metadata.rest.model.sla.ServiceLevelAgreement)1 ServiceLevelAgreementCheck (com.thinkbiganalytics.metadata.rest.model.sla.ServiceLevelAgreementCheck)1 AssessmentResult (com.thinkbiganalytics.metadata.sla.api.AssessmentResult)1 MetricAssessment (com.thinkbiganalytics.metadata.sla.api.MetricAssessment)1