-
Johannes Grohmann authoredJohannes Grohmann authored
tstore.lifecycle 45.93 KiB
<?xml version="1.0" encoding="UTF-8"?>
<librede-lifecycle:LifeCycleConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:librede="http://www.descartes-research.net/librede/configuration/1.0" xmlns:librede-lifecycle="http://tools/descartes/librede/rrde/lifecycle" xmlns:librede-optimization="http://tools/descartes/librede/rrde/optimization" xmlns:librede-recommendation="http://tools/descartes/librede/rrde/recommendation" recommendationLoopTime="-1" optimizationLoopTime="20" selectionLoopTime="-1" estimationLoopTime="5">
<recommendationConfiguration>
<validator validateEstimates="true">
<validators type="tools.descartes.librede.validation.ResponseTimeValidator"/>
<validators type="tools.descartes.librede.validation.UtilizationValidator"/>
</validator>
<trainingData rootFolder="C:\Users\Johannes\Desktop\librede\short traces\">
<input>
<dataSources name="NS CSV" type="tools.descartes.librede.datasource.csv.CsvDataSource">
<parameters name="TimestampFormat" value="[ns]"/>
</dataSources>
<dataSources name="MS CSV" type="tools.descartes.librede.datasource.csv.CsvDataSource">
<parameters name="TimestampFormat" value="[ms]"/>
</dataSources>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.8"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.7"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.3"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.5"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.4"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.6"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.1" file="10.1.3.32.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.1" file="10.1.3.37.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.1" file="10.1.3.42.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.8"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.7"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.3"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.5"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.4"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@recommendationConfiguration/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.6"/>
</observations>
</input>
<workloadDescription>
<resources name="C32" numberOfServers="12" demands="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.0/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.1/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.2/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.3/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.4/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.5/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.6/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.7/@tasks.0 //@recommendationConfiguration/@trainingData.0/@workloadDescription/@services.8/@tasks.0"/>
<resources name="C37" numberOfServers="4"/>
<resources name="C42" numberOfServers="12"/>
<services name="tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById" resource="//@recommendationConfiguration/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
</workloadDescription>
</trainingData>
<featureAlgorithm featureExtractor="tools.descartes.librede.rrde.util.extract.ReducedFeatureExtractor">
<rateUnit href="librede:units#REQUESTS_PER_MINUTE"/>
<aggregation value="60.0">
<unit href="librede:units#SECONDS"/>
</aggregation>
</featureAlgorithm>
<learningAlgorithm xsi:type="librede-recommendation:NeuralNetworkAlgorithmSpecifier" algorithmName="tools.descartes.librede.rrde.recommendation.algorithm.impl.SmileNN"/>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.ServiceDemandLawApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization"/>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.ResponseTimeApproximationApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization"/>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.WangKalmanFilterApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization"/>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.UtilizationRegressionApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization"/>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.KumarKalmanFilterApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization"/>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.MenasceOptimizationApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization">
<parameters name="PrintLevel" value="0"/>
</algorithms>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.LiuOptimizationApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization">
<parameters name="PrintLevel" value="0"/>
</algorithms>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
<estimators window="60">
<approaches type="tools.descartes.librede.approach.ResponseTimeRegressionApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter"/>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization">
<parameters name="PrintLevel" value="0"/>
</algorithms>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370087520861E9">
<unit href="librede:units#SECONDS"/>
</startTimestamp>
<endTimestamp value="1.370090939129E9">
<unit href="librede:units#SECONDS"/>
</endTimestamp>
</estimators>
</recommendationConfiguration>
<optimizationConfiguration>
<containsOf>
<algorithm xsi:type="librede-optimization:IterativeParameterOptimizerSpecifier" algorithmName="tools.descartes.librede.rrde.optimization.algorithm.impl.IterativeParameterOptimizationAlgorithm" numberOfSplits="10" numberOfExplorations="5" numberOfIterations="3"/>
<!--<algorithm xsi:type="librede-optimization:LocalSearchSpecifier" algorithmName="tools.descartes.librede.rrde.optimization.algorithm.impl.HillClimbingAlgorithm"/>-->
<trainingData rootFolder="C:\Users\Johannes\Desktop\librede\long traces\">
<input>
<dataSources name="NS CSV" type="tools.descartes.librede.datasource.csv.CsvDataSource">
<parameters name="TimestampFormat" value="[ns]"/>
</dataSources>
<dataSources name="MS CSV" type="tools.descartes.librede.datasource.csv.CsvDataSource">
<parameters name="TimestampFormat" value="[ms]"/>
</dataSources>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.8"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.7"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.3"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.5"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.4"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="residencetime-tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESIDENCE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.6"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.1" file="10.1.3.32.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.1" file="10.1.3.37.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" aggregation="AVERAGE" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.1" file="10.1.3.42.csv">
<metric href="librede:metrics#UTILIZATION"/>
<unit href="librede:units#NONE"/>
<interval value="1.0">
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.8"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.7"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.1"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.0"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.2"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.3"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.5"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.4"/>
</observations>
<observations xsi:type="librede:FileTraceConfiguration" dataSource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@input/@dataSources.0" file="responsetime-tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById.csv">
<metric href="librede:metrics#RESPONSE_TIME"/>
<unit href="librede:units#NANOSECONDS"/>
<interval>
<unit href="librede:units#SECONDS"/>
</interval>
<mappings entity="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.6"/>
</observations>
</input>
<workloadDescription>
<resources name="C32" numberOfServers="12" demands="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.0/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.1/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.2/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.3/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.4/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.5/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.6/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.7/@tasks.0 //@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@services.8/@tasks.0"/>
<resources name="C37" numberOfServers="4"/>
<resources name="C42" numberOfServers="12"/>
<services name="tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderEndpoint.listAllForUser" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderEndpoint.createEntity" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.OrderItemEndpoint.createEntity" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.countForCategory" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.listAllForCategory" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.ProductEndpoint.findEntityById" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.UserEndpoint.findEntityById" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.listAllEntities" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
<services name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById">
<tasks xsi:type="librede:ResourceDemand" name="tools.descartes.teastore.persistence.rest.CategoryEndpoint.findEntityById" resource="//@optimizationConfiguration/@containsOf.0/@trainingData.0/@workloadDescription/@resources.0"/>
</services>
</workloadDescription>
</trainingData>
<settings>
<validator validateEstimates="true">
<validators type="tools.descartes.librede.validation.ResponseTimeValidator"/>
</validator>
<!--<parametersToOptimize xsi:type="librede-optimization:GenericParameter" startValue="0.01" parameter="//@optimizationConfiguration/@containsOf.0/@estimation/@algorithms.0/@parameters.1"/>-->
<!--<parametersToOptimize xsi:type="librede-optimization:GenericParameter" upperBound="0.1" startValue="0.01" parameter="//@optimizationConfiguration/@containsOf.0/@estimation/@algorithms.0/@parameters.4"/>-->
<!--<parametersToOptimize xsi:type="librede-optimization:GenericParameter" upperBound="0.1" startValue="0.01" parameter="//@optimizationConfiguration/@containsOf.0/@estimation/@algorithms.0/@parameters.0"/>-->
<!--<parametersToOptimize xsi:type="librede-optimization:GenericParameter" upperBound="2.0" startValue="0.01" parameter="//@optimizationConfiguration/@containsOf.0/@estimation/@algorithms.0/@parameters.3"/>-->
<!--<parametersToOptimize xsi:type="librede-optimization:GenericParameter" upperBound="2.0" startValue="0.01" parameter="//@optimizationConfiguration/@containsOf.0/@estimation/@algorithms.0/@parameters.2"/>-->
<!--<parametersToOptimize xsi:type="librede-optimization:StepSizeRelWindow" lowerBound="20.0" upperBound="360.0" startValue="60.0" productMaxValue="7200.0"/>-->
<parametersToOptimize xsi:type="librede-optimization:StepSize" lowerBound="10.0" upperBound="360.0" startValue="60.0"/>
<parametersToOptimize xsi:type="librede-optimization:WindowSize" lowerBound="1.0" upperBound="60" startValue="5"/>
</settings>
<estimation window="60">
<approaches type="tools.descartes.librede.approach.ResponseTimeRegressionApproach"/>
<approaches type="tools.descartes.librede.approach.KumarKalmanFilterApproach"/>
<approaches type="tools.descartes.librede.approach.UtilizationRegressionApproach"/>
<approaches type="tools.descartes.librede.approach.ServiceDemandLawApproach"/>
<approaches type="tools.descartes.librede.approach.ResponseTimeApproximationApproach"/>
<approaches type="tools.descartes.librede.approach.WangKalmanFilterApproach"/>
<approaches type="tools.descartes.librede.approach.LiuOptimizationApproach"/>
<approaches type="tools.descartes.librede.approach.MenasceOptimizationApproach"/>
<algorithms type="tools.descartes.librede.bayesplusplus.ExtendedKalmanFilter">
<parameters name="ObserveNoiseCovariance" value="0.0001"/>
<parameters name="BoundsFactor" value="0.9"/>
<parameters name="StateNoiseCovariance" value="1.0"/>
<parameters name="StateNoiseCoupling" value="1.0"/>
<parameters name="InitialBoundsDistance" value="0.0001"/>
</algorithms>
<algorithms type="tools.descartes.librede.nnls.LeastSquaresRegression"/>
<algorithms type="tools.descartes.librede.ipopt.java.RecursiveOptimization">
<parameters name="PrintLevel" value="0"/>
</algorithms>
<algorithms type="tools.descartes.librede.algorithm.SimpleApproximation"/>
<stepSize value="60.0">
<unit href="librede:units#SECONDS"/>
</stepSize>
<startTimestamp value="1.370160271015E12">
<unit href="librede:units#MILLISECONDS"/>
</startTimestamp>
<endTimestamp value="1.370163842435E12">
<unit href="librede:units#MILLISECONDS"/>
</endTimestamp>
</estimation>
</containsOf>
</optimizationConfiguration>
</librede-lifecycle:LifeCycleConfiguration>