Common Understanding Wiki

Common Understanding Wiki

A Common Knowledge Source of Terms and Definitions

Evaluation...

Harvesting Engine

(Esta es una una versión archivada de esta página. (2.2), Ir a la última versión.)

Summary

The Harvesting Engine is a composite component in the BPaaS Evaluation Environment which is dedicated to:(a) the collection of deployment, monitoring and registry information from the BPaaS Execution Environment and the Repository Manager; (b) the semantic transformation and linking of that information; (c) the storage of that information in the Semantic KB.

While this component is independent of the analysis components in the BPaaS Evaluation Environment, it actually enables them as it provides the proper information via which the corresponding analysis can be performed. To this end, by also considering that the information to be collected does not need to be harvested very frequently in order not to overwhelm the environment, this component is run periodically in order to perform its harvesting, semantic linking and storage job in the form of a Java thread.

The Harvesting Engine is the component which also enables multi-tenancy in the BPaaS Evaluation Environment. As the sole user of that environment is the CloudSocket broker, multi-tenancy is offered in the form of the capability to simultaneously handle multiple brokers. This is achieved by the careful storage of the harvested information into disjoint, broker-specific fragments in the Semantic KB that only the corresponding broker can see and reason about. To this end, by knowing exactly which broker makes the respective analysis request, the corresponding analysis components in the BPaaS Evaluation Environment can focus their analysis only on the fragment attributed to the broker concerned.

The information harvesting is performed by invoking the REST APIs offered by corresponding components in the CloudSocket platform. As such, the information sources currently exploited span: (a) the Workflow Engine (for collecting workflow modelling, task-to-service deployment & instance-based information); (b) the Cloud Provider Engine (for collecting service-to-IaaS deployment & monitoring definition information); (c) the Monitoring Engine (for collecting produced monitoring information); (d) the Repository Manager (for collecting information from the Abstract Service, Concrete Service and Software Component Registries).

The collected information is semantically transformed and linked by conforming to the Evaluation and OWL-Q (KPI Extension) ontologies. This means that the information is triplified according to the schema of these ontologies by also handling the corresponding links between the rdf resources generated for cross-points between the two ontologies. Such linking enables to connect deployment and monitoring information in order to allow the posing of suitable KPI metric evaluation queries which aggregates measurements only for those BPaaS elements that are correlated with a certain deployment hierarchy.

This component is not easily replaceable as it is the glue point between BPaaS evaluation-related and many other CloudSocket components in other environments. As such, the internal logic of that component could be quite hard to reproduce unless there is a deep knowledge of all the components from which this component has to extract information. In addition, there is the need to possess a good level of expertise in semantic technologies to realise this component due to the requirement to structure and link the harvested information based on the two ontologies considered.

The following table indicates the details of the component.

Type of ownership Creation
Original tool New component developed in the context of this project
Planned OS license Mozilla Public Licence 2.0.
Reference community ADOxx Community.


Consist of

  • Harvester (main orchestration component run in the form of a Java thread)

Depends on

  • Semantic KB
  • Workflow Engine
  • Cloud Provider Engine
  • Monitoring Engine
  • Repository Manager (only the aforementioned registries which are directly accessed via their REST API)

Component responsible

Developer Email Company
Kyriakos Kritikos kritikos@ics.forth.gr FORTH

Architecture Design

The Harvesting Engine is coloured in purple in the overall BPaaS Evaluation Environment depicted in the figure below. As it has been already stated, this is an independent component (inside the BPaaS Evaluation Environment) which only communicates with the Semantic KB in order to store the information collected and semantically lifted.

The final, internal architecture of the Harvesting Engine, which is depicted below, comprises 9 main components:

  • Harvester: This is the main component that coordinates the harvesting of the information to be collected from the BPaaS Execution Environment and the Repository Manager. Such a harvesting follows a 3 step process: (a) first IaaS service & cloud information is collected from the Cloud Provider Engine; (b) then workflow, deployment and monitoring definition information is collected from the Workflow Engine and the Cloud Provider Engine; (c) finally, monitoring information is collected from the Monitoring Engine. The component also takes care of how to enforce multitenancy by appropriately managing the broker-specific fragments and populating them with either general, cross-broker information or information that pertains only to the broker concerned.
  • 5 components are extraction components which collect information from different CloudSocket components by calling their REST APIs. These components include: (a) the Deployment Extractor (deployment information collection); (b) the WF Engine Extractor (workflow-related information extraction); (c) Registry Extractor (registry information collection); (d) Monitoring Extractor (monitoring information extraction); (e) Marketplace Extractor (marketplace information collection -- not yet implemented).
  • BPMN Parser: takes care of parsing the BPMN model of the BPaaS workflow that has been collected from the WF Engine Extractor and of enforcing the triplification of the workflow-related information
  • CAMEL Parser: this component extracts the CAMEL model of the BPaaS workflow in order to obtain component and component-to-VM/IaaS deployment information as well as is capable of transforming the monitoring and KPI definition part of CAMEL into an OWL-Q model which is stored in the Semantic KB.
  • Triple Importer: this is the component which takes care of the triplification of the collected information, its semantic linking based on the schema of the two ontologies and the storage of this information in the Semantic KB

harvester.png

Installation Manual

The component has been implemented purely in java. It depends on other external components / frameworks like jersey (for making REST requests to the CloudSocket APIs) and sesame/open rdf (for the semantic storage of the triplified information in the Semantic KB. It also depends on an internal component developed in the context of this project, the owl-q one which enables the parsing of OWL-Q models into domain-specific objects as well as their writing. The following figure explicates the sole artefact generated mapping to this component as well as its dependencies on other artefacts (at a coarse-grained level to simplify the figure).

harvester-artifacts.png

Maven has been exploited as the main build automation tool, prescribing how the component/artefact can be built and its main dependencies. Such a tool facilitates the building and automatic generation of this artefact for the different CloudSocket environments (development and production) and their configuration. A complete description of how such artefact building and generation can be performed for the different environments is given in the installation manual below.

Development

Currently, the following requirements hold for this component:

  • Oracle's 1.7.x JDK or higher
  • Maven tool for code compilation and packaging

The installation procedure to be followed is the one given below:

  1. Download source code from https://omi-gitlab.e-technik.uni-ulm.de/cloudsocket/harvester/repository/archive.tar?ref=master
  2. Unzip code with tar (or any other tool)
  3. Go to the root directory of the installed code
  4. Change the configuration file to provide the right connection information to all the information sources exploited
  5. Run:
    mvn clean install
    
    to compile the source code
  6. Run:
    mvn exec:java -Deu.cloudsocket.configdir=.
    
    to run the component as a Java thread which is configured by reading the "eu.cloudsocket.evaluation.dd.properties" configuration file from the current directory
  7. As the component runs in command line mode, it is easy to check whether the component is running normally. In case that you need to examine the content that it generates, you should connect to the Triple Store of the Semantic KB and pose some SPARQL queries to draw and inspect it. This can be more easily done when the Triple Store is immediately empty.

Production

The same instructions as above hold for this component

Test Cases

As this component runs as a Java thread, it can be immediately inspected if it exhibits any bug (by, e.g., taking care of creating a log out of the printed output). In order to check also the content that it generates, a set of SPARQL queries can be posed over the Triple Store of the Semantic KB. If this triple store is developed locally, then you can connect to the local Virtuoso (Triple) Server endpoint (at http://localhost:8890/sparql) and then pose the queries from there, especially as it exhibits a nice interface to run SPARQL queries and visualise their results. If you desire to exhibit an existing endpoint, you can direct your queries at: http://134.60.64.222:8890/sparql.

The SPARQL queries, which act as test cases that can be posed and inspect if they produce a respective result, involve the following:

  • Get all BPaaS workflow tasks and their input and output parameters
    PREFIX eval: <http://www.cloudsocket.eu/evaluation#>
    SELECT ?name ?id1 ?id2 from <http://www.cloudsocket.eu/evaluation/bwcon>
    WHERE {
       ?t eval:name ?name.
        ?v1 eval:id ?id1.
        ?v2 eval:id ?id2.
        optional{?t eval:inputVariable ?v1.}
        optional{?t eval:outputVariable ?v2.}
    }
    

User Manual

API Specification

The reader should refer to the API web page of swagger for browsing an on-line documentation with the capability to execute the API methods. In the following, the API methods of the Conceptual Analytics Service are analysed below:

evaluateKPI

This method enables to produce current and historical measurements for a certain KPI in the context of a specific BPaaS. As multi-tenancy is supported, the id of the broker needs to be specified in order to set the appropriate context for the method execution.

POST ca/evaluateKPI/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the evaluation needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle for which the evaluation needs to be performed (optional)
  • kpiName: denotes the name of the KPI to be evaluated (obligatory)
  • kpiPeriod: denotes the (history) period of the evaluation. If this parameter is specified, then a set of KPI evaluation values and not just one can be returned matching the respective period provided. The value should conform to String-based Java periods (e.g., "P1M" which declares a period of 1 month until now) (optional)
  • tenant: denotes the id of the tenant for which the KPI can be evaluated. In this way, the KPI is assessed only for this tenant and not across all tenants that have purchased the respective BPaaS (optional)
  • maxRows: denotes the maximum number of KPI values to return. Default value is 0 indicating that all possible values can be returned (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in both json and xml formats. A sample for a json output is given below:

{
  "results": [
    {
      "bundleId": "SendInvoiceSaaSEurope",
      "value": "0.8010364041400798e0",
      "instant": "2016-01-27T11:43:38.588Z"
    }
  ]
}
evaluateMetric

This method enables the production of current and historic measurements for a KPI metric. It is similar to the "evaluateKPI" method but requires from the broker to appropriately specify the KPI metric in two different ways: (a) the metric and its context are passed as input parameters; (b) the name of an existing metric is provided:

POST ca/evaluateMetric/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the evaluation needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • metricName: denotes the name of the existing metric for which the evaluation needs to be performed. This parameter is optional as there is an alternative way of determining the KPI metric to be evaluated (optional)
  • metric: provides a CompositeMetric specification in OWL-Q for the metric to be evaluated. As a composite metric is associated to a specific metric context, the "metricContext" parameter does not need to be provided in this case (optional)
  • metricContext: provides the MetricContext specification in OWL-Q for the metric to be evaluated. This metric context includes scheduling and window information for the metric at hand. This parameter is optional and might be provided in case that we need to modify the context of an existing metric (whose name is specified in the "metricName" parameter) temporarily for the context of this evaluation (optional)
  • bundleId: denotes the id of the BPaaS bundle for which the evaluation needs to be performed (optional)
  • kpiPeriod: denotes the (history) period of the evaluation. If this parameter is specified, then a set of metric measurement values and not just one can be returned matching the respective period provided. The value should conform to String-based Java periods (e.g., "P1M" which declares a period of 1 month until now) (optional)
  • tenant: denotes the id of the tenant for which the identified metric can be evaluated. In this way, the metric measurements are only produced for this tenant and not across all tenants that have purchased the respective BPaaS (optional)
  • maxRows: denotes the maximum number of metric measurements values to return. Default value is 0 indicating that all possible values can be returned (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in both json and xml formats. A sample for a json output is given below:

{
  "results": [
    {
      "bundleId": "SendInvoiceSaaSEurope",
      "value": "0.8010364041400798e0",
      "instant": "2016-01-27T11:43:38.588Z"
    }
  ]
}
kpiDrillDown

This method enables to perform a drill-down over a certain KPI for a specific BPaaS (again under the context of a specific broker). The drill-down results can be provided in a tree-based form in both JSON & XML formats, where each result contains information which is equivalent to that of the aforementioned methods:

POST ca/kpiDrillDown/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the KPI drill-down needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle for which the KPI drill-down needs to be performed (optional)
  • kpiName: denotes the name of the KPI for which the KPI drill-down needs to be performed (obligatory)
  • kpiPeriod: denotes the (history) period of the drill-down. If this parameter is specified, then a set of drill-down values and not just one can be returned matching the respective period provided. The value should conform to String-based Java periods (e.g., "P1M" which declares a period of 1 month until now) (optional)
  • tenant: denotes the id of the tenant for which the identified KPI needs to be drilled down. In this way, the respective KPI measurements and their drill-down are only produced for this tenant and not across all tenants that have purchased the respective BPaaS (optional)
  • maxRows: denotes the maximum number of drill-down values to return. Default value is 0 indicating that all possible values can be returned (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in both json and xml formats. A sample for a json output is given below:

{
  "results": [
    {
      "bundleId": "SendInvoiceSaaSEurope",
      "kpi": "MeanKPIAvailability",
      "value": "0.8010364041400798e0",
      "instant": "2016-01-27T11:43:38.588Z",
      "subRows": [
        {
         "bundleId": "SendInvoiceSaaSEurope",
         "kpi": "MeanIaaSKPIAvailability",
         "value": "0.8526374638629035e0",
         "instant": "2016-01-27T11:43:37.466Z",
         "subRows": []
        } 
      ]
    }
  ]
}
kpiHistory

This method enables to query the historical measurements for a certain KPI in the context of a specific BPaaS. As multi-tenancy is supported, the id of the broker needs to be specified in order to set the appropriate context for the method execution. The results are equivalent to those returned by the "evaluateKPI" method. Please note that the content of the history fragment of the broker concerned needs to be populated via the "evaluateKPI" method in order to be able to obtain any result.

POST ca/kpiHistory/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the historical query over the broker-specific historical fragment needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle for which the historical query needs to be performed (optional)
  • kpiName: denotes the name of the KPI for which historical measurements need to be obtained (obligatory)
  • kpiPeriod: denotes the (history) period. If this parameter is specified, then a set of KPI historical measurement values and not just one can be returned matching the respective period provided. The value should conform to String-based Java periods (e.g., "P1M" which declares a period of 1 month until now) (optional)
  • tenant: denotes the id of the tenant for which the KPI history query can be evaluated. In this way, the required historical KPI values to be retrieved map only to this tenant and do not cross all tenants that have purchased the respective BPaaS (optional)
  • maxRows: denotes the maximum number of KPI historical measurement values to return. Default value is 0 indicating that all possible values can be returned (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in both json and xml formats. A sample for a json output is given below:

{
  "results": [
    {
      "bundleId": "SendInvoiceSaaSEurope",
      "value": "0.8010364041400798e0",
      "instant": "2016-01-27T11:43:38.588Z"
    }
  ]
}
kpiQuery

This method enables to retrieve the list of KPIs that have been defined in the context of a specific broker. When the id of the BPaaS is also provided, then the KPI list is filtered to include only those KPIs that have been specified for the BPaaS.

POST ca/kpiQuery/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the KPI query needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle for which the defined KPIs need to be retrieved - as stated, if not given, then this maps to obtaining all the KPIs that have been defined for all BPaaSes of a certain broker (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in both json and xml formats. A sample for a json output is given below:

[
  {
    "name": "MeanIaaSAvailabilityKPI",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "constraintContext": null,
    "obliged": null,
    "firstArgument": {
      "name": "MeanIaaSAvailability",
      "description": null,
      "abbreviation": null,
      "synonym": null,
      "scale": null,
      "monotonicity": "POSITIVE",
      "unit": null,
      "valueType": null,
      "aggregationType": null,
      "measuredObject": "http://www.cloudsocket.eu/evaluation#IaaS1",
      "attribute": null,
      "level": 2,
      "metricContext": {
        "name": "MC1",
        "description": null,
        "abbreviation": null,
        "synonym": null,
        "window": null,
        "schedule": {
          "name": "OneDaySchedule",
          "description": null,
          "abbreviation": null,
          "synonym": null,
          "interval": 1,
          "repetition": 0,
          "scheduleType": "FIXED_RATE",
          "timeUnit": {
            "name": "Day",
            "description": null,
            "abbreviation": null,
            "synonym": null,
            "scale": null,
            "monotonicity": null,
            "quantity": null,
            "quantityKind": null,
            "unitType": "SINGLE",
            "unitMappings": null,
            "uri": "http://www.cloudsocket.eu/evaluation#Day"
          },
          "uri": "http://www.cloudsocket.eu/evaluation#OneDaySchedule"
        },
        "uri": "http://www.cloudsocket.eu/evaluation#MC1"
      },
      "formula": {
        "name": "mean_iaas_availability",
        "description": null,
        "abbreviation": null,
        "synonym": null,
        "function": "MEAN",
        "functionURI": null,
        "argumentList": [
          {
            "RawMetric": {
              "name": "IaaSAvailability",
              "description": null,
              "abbreviation": null,
              "synonym": null,
              "scale": null,
              "monotonicity": "POSITIVE",
              "unit": null,
              "valueType": null,
              "aggregationType": null,
              "measuredObject": "http://www.cloudsocket.eu/evaluation#IaaS1",
              "attribute": null,
              "level": 1,
              "metricContext": null,
              "sensor": null,
              "measurementDirective": null,
              "manual": true,
              "uri": "http://www.cloudsocket.eu/metrics/IaaSAvailability"
            }
          }
        ],
        "uri": "http://www.cloudsocket.eu/formulas/mean_iaas_availability"
      },
      "metricList": [
        {
          "RawMetric": {
            "name": "IaaSAvailability",
            "description": null,
            "abbreviation": null,
            "synonym": null,
            "scale": null,
            "monotonicity": "POSITIVE",
            "unit": null,
            "valueType": null,
            "aggregationType": null,
            "measuredObject": "http://www.cloudsocket.eu/evaluation#IaaS1",
            "attribute": null,
            "level": 1,
            "metricContext": null,
            "sensor": null,
            "measurementDirective": null,
            "manual": true,
            "uri": "http://www.cloudsocket.eu/metrics/IaaSAvailability"
          }
        }
      ],
      "uri": "http://www.cloudsocket.eu/metrics/MeanIaaSAvailability"
    },
    "comparisonOperator": "GREATER_EQUAL_THAN",
    "optimisationOperator": null,
    "secondArgument": 0.9,
    "warningThreshold": 0.8,
    "validity": null,
    "childKPIs": null,
    "bundleURI": "http://www.cloudsocket.eu/evaluation/bwcon#SendInvoice",
    "qualifyingCondition": false,
    "uri": "http://www.cloudsocket.eu/kpis/MeanIaaSAvailabilityKPI"
  }
]
kpiTenantQuery

This method enables to retrieve the list of tenants/customers for which there exist measurements for a certain KPI for the BPaaSes that they have purchased in the context of a specific broker. When the id of the BPaaS is also provided, then the tenant list is filtered to include only those tenants which have purchased the respective BPaaS.

POST ca/kpiTenantQuery/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the KPI tenant query needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle that must have been purchased by the tenants to be returned (optional)
  • kpiName: denotes the name of the KPI for which measurements should have been produced for the tenants to be returned (obligatory)
  • kpiPeriod: denotes the historical period for which KPI measurements should have been produced. The value should conform to String-based Java periods (e.g., "P1M" which declares a period of 1 month until now) (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported
  • 500 -- Internal server error exception

The output can be in both json and xml formats. A sample for a json output is given below:

[
  {
    3c1ab6ac-6a7e-4791-8c16-f8f6d400231c
  }
]
ldQuery

This method enables to pose an arbitrary query over the broker-specific fragment of the Semantic KB. Such a query should only be posed by an expert on semantic technologies which should have an appropriate knowledge of SPARQL as well as of the Evaluation and OWL-Q (KPI Extension) ontologies that have been developed in the context of WP3 in CloudSocket.

POST ca/ldQuery/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the KPI tenant query needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • query: signifies the SPARQL query to be posed over the Semantic KB (obligatory)
  • timeout: specifies the maximum amount time for waiting (in milliseconds) until a response can be obtained from the Semantic KB. A value of 0, which is the default, denotes that the broker can wait indefinitely (optional)
  • maxRows: denotes the maximum number of rows to be produced by the query. A value of 0, which is the default, denotes that all rows should be returned. As SPARQL has the LIMIT construct, the broker should be careful of not specifying SPARQL queries including this construct that are evaluated via this method for which has a positive value for this parameter has been provided. In this latter case, the outcome would depend on the correlation between the values for the LIMIT construct and this parameter, i.e., if LIMIT is X and parameter value is Y, >= X, then X values will be returned. If Y < X, then Y values will be returned. In other words, the lowest from the values provided will prevail (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found
  • 406 -- The format requested for the method output is not supported

The output can be in "application/sparql-results+xml", "application/sparql-results+json", "text/csv" and "text/tab-separated-values". A sample for the "application/sparql-results+json" output is given below:

{ "head": { "link": [], "vars": ["bpaas", "id"] },
  "results": { "distinct": false, "ordered": true, "bindings": [
    { "bpaas": { "type": "uri", "value": "http://www.cloudsocket.eu/evaluation#BPaaS_bwcon_SendInvoiceSaaSEurope" }	, "id": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#string", "value": "SendInvoiceSaaSEurope" }},
    { "bpaas": { "type": "uri", "value": "http://www.cloudsocket.eu/evaluation#BPaaS_bwcon_SendInvoiceSaaSWorldwide" }	, "id": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#string", "value": "SendInvoiceSaaSWorldwide" }},
    { "bpaas": { "type": "uri", "value": "http://www.cloudsocket.eu/evaluation#BPaaS_bwcon_SendInvoiceIaaSEurope" }	, "id": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#string", "value": "SendInvoiceIaaSEurope" }} ] } }
rawMetricQuery

This method enables to obtain all the raw metrics that have been defined in OWL-Q for a certain broker. In case that a respective BPaaS is also determined, then the raw metric list is filtered to contain only those raw metrics that have been defined for this BPaaS. As has been already stated, this method is a utility one which enables the broker to construct KPI metric specifications out of those returned by this method in order to subsequently make evaluation queries for those KPI metrics via the "evaluateMetric" method and thus better explore the possible KPI metric space.

POST ca/rawMetricQuery/{brokerId}

The expected input format is multipart/form-data. The following input parameters are expected:

  • brokerId: denotes the id of the broker for which the raw metric query needs to be performed. It is a path parameter as it can be seen from the method relative URL (obligatory)
  • bundleId: denotes the id of the BPaaS bundle in order to restrain the raw metric list to be obtained to contain only those metrics that have been defined for this bundle (optional)

The following response codes can be returned depending on whether the API method execution was successful or not:

  • 200 -- The method execution was successful
  • 400 -- Wrong parameter values have been provided
  • 404 -- The resource requested (i.e., the broker) was not found

The output can be in XML or JSON form. A sample of an output in JSON form is given below:

[
  {
    "name": "CycleTime",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "NEGATIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#Workflow_SendInvoice",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/CycleTime"
  },
  {
    "name": "EmailNotSent",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "NEGATIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#Workflow_SendInvoice",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/EmailNotSent"
  },
  {
    "name": "EmailSent",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "POSITIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#Workflow_SendInvoice",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/EmailSent"
  },
  {
    "name": "SaaSAvailability",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "POSITIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#ExternalSaaS1",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/SaaSAvailability"
  },
  {
    "name": "CustomerSatisfaction",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "POSITIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#Workflow_SendInvoice",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/CustomerSatisfaction"
  },
  {
    "name": "IaaSAvailability",
    "description": null,
    "abbreviation": null,
    "synonym": null,
    "scale": null,
    "monotonicity": "POSITIVE",
    "unit": null,
    "valueType": null,
    "aggregationType": null,
    "measuredObject": "http://www.cloudsocket.eu/evaluation#IaaS1",
    "attribute": null,
    "level": 1,
    "metricContext": null,
    "sensor": null,
    "measurementDirective": null,
    "manual": true,
    "uri": "http://www.cloudsocket.eu/metrics/IaaSAvailability"
  }
]

Handbook

2 archivos adjuntos
62302 Accesos
Promedio (0 Votos)
Comentarios
No hay ningún comentario aún. Sea usted el primero.